@c4a/context

中文文档
0.7.95发布于 2026/11/09MITTypeScriptES Module构建来源已验证近 30 天下载 5618

为背景知识来源、工作流程、审查和一揽子产出申报SDK

中文使用文档
文档目录5 节
  1. 项目边界
  2. 主要 API
  3. 知识与知识包
  4. 状态边界
  5. 参考文档

Context SDK

English

@c4a/context 是 Context 知识工作区使用的声明式 SDK。多数用户通过 Context Agent 和 CLI 工作;项目作者使用本包声明来源采集与知识包输出。

知识生产只有一条路径,即 Indexer 生命周期。src/indexers.yaml 只保存已确认的 读者需求、授权来源与排除项;已安装的 Indexer 技能按任务在临时生产计划中选用。 src/index.ts 中的项目阶段不再负责生产代码或 Markdown 知识。

项目边界

sources/{repo,file,lark}/index.yaml   已登记的来源边界
sources/{note,sessions}/YYYYMMDD/*.md 保存的笔记与会话总结
src/index.ts               采集与知识包声明
src/indexers.yaml          知识生产的唯一权威配置
knowledge/                 已批准、可读的知识
dist/                      面向读者的知识包产物
.tmp/context-runtime/      可恢复运行态(不提交)

src/index.ts 可以声明:

  • source() / allSources() 来源引用;
  • captureFile()、captureLark() 文档快照阶段;
  • 不发布知识的 customPhase() 项目编排;
  • kbPackage()、llmsPackage() 输出。

示例:

import {
  captureFile,
  defineProject,
  kbPackage,
  source,
} from "@c4a/context";

const docs = source("20260901/product-docs", { type: "file" });

export default defineProject({
  sources: [docs],
  phases: [captureFile({ source: docs })],
  packages: [
    kbPackage({
      name: "product-kb",
      template: "src/package-templates/kb",
      select: { collections: ["product", "architecture"] },
    }),
  ],
});

Context 生命周期负责发现或更新 src/indexers.yaml,以有界批次运行彼此独立、可恢复 的语义任务,展示可读 Candidate 供审核,只写入批准后的知识,最后构建声明的知识包。 批次标识和运行耗时不会进入知识身份或知识包产物。

主要 API

API用途
defineProject()声明项目边界。
source() / allSources()引用已登记的代码/文件/飞书来源,或明确选择保存的 Note/Sessions。
captureFile() / captureLark()生成确定性的文档快照。
mdxJsonDocs()配置 MDX/JSON 文档采集处理器。
customPhase()执行不生产知识的项目编排。
kbPackage()构建 Agent 可读的知识包。
llmsPackage()构建供模型或检索使用的文本包。

本包也导出 Provider 作者和 Context 运行时使用的 Indexer Schema 与校验器。它们 描述的仍是同一套 src/indexers.yaml 生命周期,不是第二条用户流程。

@c4a/extract-ts、@c4a/extract-go、@c4a/extract-rush 等解析包属于 Indexer Provider 的实现依赖,工作区不再把它们包装成项目阶段。

知识与知识包

批准后的知识位于 knowledge/<collection>/,目录和文件名面向人阅读,例如:

knowledge/codeindex/ui-kit/avatar.md
knowledge/architecture/product-guides/component-input-fields.md

工作区页面只保留后续重建或更新所需的元数据。dist/ 中的知识包页面使用更小的 读者投影:有用的标题、类型、摘要/标签(存在时)和正文。内部证据 ID 与摘要除非 恢复需要,否则只留在运行时 Artifact 中。

知识包模板位于 src/package-templates/;安装后的示例位于 node_modules/@c4a/context/templates/package-templates/。

状态边界

不要直接修改 .tmp/context-runtime/ 下的生命周期文件。Candidate 状态、审核应用、 恢复、close、验证与构建由 CLI 管理。来源注册表、src/index.ts、 src/indexers.yaml、批准后的 knowledge/、保存的 Note/Sessions 和知识包模板是长期项目输入。 structure.yaml 保留范围级更新基线;会话的可选 commit/MR 关联放在来源文件, 不重复添加到知识页头部。保存来源不会自动开始索引。

参考文档

版本与发布记录

@c4a/context 共发布 92 个版本,首次发布于 2026/06/28;过去 12 个月发布了 92 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.7.95latest2026/11/09今天
0.7.942026/11/08今天
0.7.932026/11/08今天
0.7.922026/11/071 天前
0.7.912026/11/026 天前
0.7.902026/10/2811 天前

其他发布通道:alpha → 0.7.10-alpha.2,beta → 0.7.14-beta.1。

关于 @c4a/context 的常见问题

@c4a/context 是什么?

为背景知识来源、工作流程、审查和一揽子产出申报SDK

如何安装 @c4a/context?

在项目目录运行 npm install @c4a/context,或使用 pnpm add / yarn add / bun add。

@c4a/context 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@c4a/context 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@c4a/context 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@c4a/context 可以商用吗?

@c4a/context 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@c4a/context 的下载量有多少?

根据 npm 官方下载统计,@c4a/context 在 2026/10/09 – 2026/11/07 这 30 天内被下载 5,618 次,日均约 187 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@c4a/context 还在维护吗?

最新版本 0.7.95 发布于 2026/11/09(今天);至今共发布 92 个版本,其中过去 12 个月发布了 92 个;首次发布于 2026/06/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。