@cat-kit/agent-context 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,32 @@
1
+ function e(){return`# implement
2
+
3
+ 实施当前计划 \`.agent-context/{scope}/plan-{number}/plan.md\` 中的全部步骤,通过验证循环后将状态更新为「已执行」。
4
+
5
+ 不接受额外描述。
6
+
7
+ ## 前置检查
8
+
9
+ - 运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
10
+ - 带描述 → 提示 implement 不接受额外描述,按用户选择执行。
11
+ - 当前计划不存在 → 提示需先创建计划,按用户选择执行。
12
+ - 当前计划状态为 \`已执行\` → 提示计划已执行不可重复实施,按用户选择执行。
13
+ - \`## 目标\` 或 \`## 内容\` 为空 → 向用户获取缺失内容后更新 plan.md 并继续执行。
14
+ - 存在多个当前计划 → 向用户确认保留哪个计划,清理后继续执行。
15
+ - 仅操作当前计划,不直接操作 \`preparing/\` 中的计划。
16
+ - 遇到阻塞问题应向用户报告,不可静默跳过。
17
+
18
+ ## 执行步骤
19
+
20
+ 1. **读取计划**:读取当前 \`plan.md\`,理解 \`## 目标\` 与 \`## 内容\`。
21
+ 2. **实施变更**:依据 \`## 内容\` 的步骤逐项实施。
22
+ 3. **验证循环(WHILE 循环检查)**:
23
+ - **3.1 检查对照**:对照 \`## 内容\`,确保每个步骤均已实施完毕,无遗漏。
24
+ - **3.2 运行验证**:
25
+ - **IF** (编码任务) **THEN**:必须运行代码检查(Lint/Typecheck)与相关测试命令。
26
+ - **ELSE IF** (非编码任务,如纯文档修改或项目规划) **THEN**:无需运行外部命令,仅凭逻辑和视觉排版审阅是否符合验收标准。
27
+ - **3.3 结果判断**:
28
+ - **IF** (存在未通过的验证报错、未完成项或遗漏项) **THEN**:修复发现的问题,然后 **GOTO 3.1**(重新检查)。
29
+ - **ELSE IF** (验证全部通过 或 非编码任务验收合格) **THEN**:退出验证循环,即 **GOTO 4** 继续执行。
30
+ 4. **更新状态**:将 \`plan.md\` 的状态行修改为 \`> 状态: 已执行\`。
31
+ 5. **记录范围**:更新 \`## 影响范围\`,详细记录本次变动的具体文件路径。\`.agent-context/\` 目录下的文件不计入影响范围。
32
+ `}export{e as renderImplement};
@@ -0,0 +1 @@
1
+ import{renderInit as e}from"./init.js";import{renderPlan as t}from"./plan.js";import{renderReplan as n}from"./replan.js";import{renderImplement as r}from"./implement.js";import{renderPatch as i}from"./patch.js";import{renderRush as a}from"./rush.js";const o=[`init`,`plan`,`replan`,`implement`,`patch`,`rush`],s={init:e,plan:t,replan:n,implement:r,patch:i,rush:a};export{o as ACTION_NAMES,s as ACTION_RENDERERS};
@@ -0,0 +1,46 @@
1
+ function e(){return`# init
2
+
3
+ 初始化项目的 Agent Context 上下文。根据新旧项目类型处理 \`AGENTS.md\`,新项目会自动进入计划创建流程。
4
+
5
+ 可附带描述参数,用于补充项目背景、技术栈、特殊约束。
6
+
7
+ ## 前置检查
8
+
9
+ - 若已存在 \`.agent-context/\`:运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
10
+ - 若 \`.agent-context/\` 不存在:确认这是首次初始化场景;若目录残缺或状态异常,向用户报告,不可继续假设。
11
+ - 新项目缺少关键决策信息时,必须通过 AskUserQuestion 主动提问或确认,不可直接生成 \`AGENTS.md\` 或进入 plan。
12
+ - 遇到阻塞问题应通过 \`AskUserQuestion\` 工具向用户报告并请求决策,不可静默跳过。
13
+
14
+ ## 执行步骤
15
+
16
+ 1. **判断项目类型**:检测根目录是否存在有效代码文件和目录结构。
17
+ - 新项目:无实质代码,或用户明确说明是新项目。
18
+ - 旧项目:已有代码、配置文件和目录结构。
19
+ - 无法判断 → 通过 AskUserQuestion 向用户确认项目类型,不可假设。
20
+
21
+ 2. **处理 AGENTS.md**:
22
+ - 新项目:
23
+ 1. 通过 AskUserQuestion 收集或确认以下信息,其中前两类属于**必须主动确认**的决策项,即使描述已部分涵盖也不能整体跳过;可基于描述用确认式问题补问,而不是完全重问:
24
+ - 必须主动确认:技术栈与版本(语言、运行时、框架、构建/测试工具等)
25
+ - 必须主动确认:架构偏好(目录结构、分层模式、关键框架或方案选型)
26
+ - 可基于描述补充:项目目标与核心功能
27
+ - 可基于描述补充:代码规范与工具链细节(lint、formatter、测试约定等)
28
+ 2. 对高价值决策类问题必须在计划前通过 AskUserQuestion 澄清,例如:是否使用 monorepo、前后端如何拆分、采用哪个框架与测试工具。
29
+ 3. 生成高质量 \`AGENTS.md\`(须满足下方质量标准,不满足则重新优化直至满足)。
30
+ 4. 继续执行 plan 创建初始计划。
31
+ - 旧项目:
32
+ 1. 若不存在 \`AGENTS.md\`:优先通过代码与配置读取收集信息;仅对无法可靠判断的内容通过 \`AskUserQuestion\` 提问后生成。
33
+ 2. 若已存在 \`AGENTS.md\`:按质量标准评估,不足时增补优化。
34
+ 3. 默认不创建计划(除非用户明确要求)。
35
+
36
+ 3. **输出反馈**:向用户报告项目类型判定结果、AGENTS.md 处理结果、是否需要后续计划。
37
+
38
+ ## 高质量 AGENTS.md 标准
39
+
40
+ - 常用命令与约束前置,降低代理执行歧义。
41
+ - 明确列出目录结构(至少到第二层)。
42
+ - 明确标注技术栈及版本。
43
+ - 明确代码风格约束(命名规范、格式化工具、lint 配置)。
44
+ - 内容精简,无冗余段落或模板化填充。
45
+ - 大型单体仓库按子包拆分维护本地 \`AGENTS.md\`。
46
+ `}export{e as renderInit};
@@ -0,0 +1,45 @@
1
+ function e(){return`# patch
2
+
3
+ 基于当前已执行计划创建增量补丁,修复问题或追加变更。
4
+
5
+ 必须附带补丁描述。
6
+
7
+ ## 前置检查
8
+
9
+ - 运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
10
+ - 描述为空 → 向用户获取描述后继续执行。
11
+ - 当前计划不存在 → 提示需先创建计划,按用户选择执行。
12
+ - 当前计划状态为 \`未执行\` → 提示计划未执行需先实施,按用户选择执行。
13
+ - 存在多个当前计划 → 向用户确认保留哪个计划,清理后继续执行。
14
+ - 补丁需求与当前计划的关联性不确定 → 向用户确认需求与当前计划的关联性,按用户选择执行。
15
+ - 补丁需求与当前计划完全无关 → 提示需求与当前计划无关需先归档,按用户选择执行。
16
+ - 补丁不改变计划状态,完成后保持 \`已执行\`。
17
+
18
+ ## 执行步骤
19
+
20
+ 1. 阅读 \`plan.md\` 与已有 \`patch-{number}.md\`,了解上下文与历史,避免重复修复。
21
+ 2. 根据描述执行补丁所需的代码变更。
22
+ 3. 完成验证:
23
+ - **IF** (编码任务) **THEN**:运行相关测试,以及必要的 Lint/Typecheck。
24
+ - **ELSE IF** (非编码任务,如纯文档修改) **THEN**:仅凭逻辑与排版审阅确认验收通过。
25
+ 4. 创建 \`patch-{number}.md\`(编号:扫描当前计划目录已有补丁取 max+1),遵循下方模板。
26
+ 5. 回写 \`plan.md\`:
27
+ - \`## 历史补丁\`:追加 \`- patch-{number}: {补丁名称}\`,按编号去重。
28
+ - \`## 影响范围\`:合并本次变更路径,按路径去重。\`.agent-context/\` 目录下的文件不计入影响范围。
29
+
30
+ ## patch.md 模板
31
+
32
+ \`\`\`markdown
33
+ # {补丁名称}
34
+
35
+ ## 补丁内容
36
+
37
+ {修改了什么、为什么修改}
38
+
39
+ ## 影响范围
40
+
41
+ - 新增文件: \`/path/to/file\`
42
+ - 修改文件: \`/path/to/file\`
43
+ - 删除文件: \`/path/to/file\`
44
+ \`\`\`
45
+ `}export{e as renderPatch};
@@ -0,0 +1,51 @@
1
+ function e(){return`# plan
2
+
3
+ 创建新的执行计划,写入 \`.agent-context/{scope}/plan-{number}/plan.md\`。按复杂度可拆分为多个计划,维护「单当前计划 + preparing 队列」结构。
4
+
5
+ 必须附带计划描述。
6
+
7
+ ## 前置检查
8
+
9
+ - 运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
10
+ - 描述为空 → 向用户获取描述后继续执行。
11
+ - 存在未归档的已执行当前计划 → 向用户确认如何处理已执行计划后按选择执行。
12
+ - 存在多个当前计划 → 向用户确认保留哪个计划,清理后继续执行。
13
+
14
+ ## 执行步骤
15
+
16
+ 1. **需求澄清**(存在以下任一歧义时通过 AskUserQuestion 提问,否则跳到步骤 2):
17
+ - 范围边界不清:无法判定影响哪些文件或模块。
18
+ - 存在显著不同的技术路径需用户决策。
19
+ - 验收标准不明确:无法判断何时算"完成"。
20
+ 2. 按复杂度决定单计划或多计划拆分。
21
+ 3. 多计划拆分时:最小编号进入 \`.agent-context/{scope}/\` 作为当前计划,其余进入 \`.agent-context/{scope}/preparing/\`。单计划直接创建。
22
+ 4. 每个计划创建 \`plan.md\`,遵循下方模板。
23
+ 5. **自检**(不通过则修改后重新检查):
24
+ - 每个步骤可独立执行且有明确完成标准。
25
+ - 不存在过度拆分或拆分不足。
26
+ - 影响范围可预估。
27
+
28
+ ## plan.md 模板
29
+
30
+ \`\`\`markdown
31
+ # {计划名称}
32
+
33
+ > 状态: 未执行
34
+
35
+ ## 目标
36
+
37
+ {明确的目标描述}
38
+
39
+ ## 内容
40
+
41
+ {详细的实施步骤}
42
+
43
+ ## 影响范围
44
+
45
+ ## 历史补丁
46
+ \`\`\`
47
+
48
+ - 状态行唯一,仅允许 \`未执行\` 或 \`已执行\`。
49
+ - \`## 目标\` 与 \`## 内容\` 不可为空。
50
+ - \`## 影响范围\` 与 \`## 历史补丁\` 创建时留空,后续由 implement 和 patch 写入。
51
+ `}export{e as renderPlan};
@@ -0,0 +1,32 @@
1
+ function e(){return`# replan
2
+
3
+ 重新规划已有的未实施计划,保持「单当前计划 + preparing 队列」结构不变。
4
+
5
+ 必须附带重规划描述。
6
+
7
+ ## 前置检查
8
+
9
+ - 运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
10
+ - 描述为空 → 向用户获取重规划描述后继续执行。
11
+ - 无未实施计划 → 提示无未实施计划可供重规划,按用户选择执行。
12
+ - 存在多个当前计划 → 向用户确认保留哪个计划,清理后继续执行。
13
+ - 目标计划编号不存在 → 列出可选计划供用户选择后继续执行。
14
+ - 目标计划已执行 → 提示已执行计划不可重规划,按用户选择执行。
15
+
16
+ ## 作用域
17
+
18
+ - 默认作用域:\`.agent-context/{scope}/preparing/\` 中全部未实施计划。
19
+ - 可通过描述指定仅重规划部分计划(如"重规划 plan-3 和 plan-5")。
20
+ - 当前计划为 \`已执行\` → 禁止重写,仅允许重规划 \`{scope}/preparing/\` 队列。
21
+ - 当前计划为 \`未执行\` 且用户明确要求 → 可纳入重规划范围。
22
+
23
+ ## 执行步骤
24
+
25
+ 1. 解析描述,确定重规划目标范围。若描述存在以下歧义,通过 AskUserQuestion 提问澄清后再继续:
26
+ - 无法确定用户期望重规划哪些计划。
27
+ - 重规划方向不明确(拆分方式、优先级调整、范围增减等)。
28
+ 2. 读取目标计划 \`plan.md\`,理解现有意图。
29
+ 3. 生成新的拆分方案,保持「单当前计划 + 若干 preparing 计划」结构。
30
+ 4. 新增计划编号:全局 max(N)+1 递增分配;未改动计划保持原编号。
31
+ 5. 更新目录结构,确保每个新计划的 \`plan.md\` 遵循标准模板。
32
+ `}export{e as renderReplan};
@@ -0,0 +1,28 @@
1
+ function e(){return`# rush
2
+
3
+ 快速通道:创建计划并立即实施,适合范围明确、无需多轮规划的任务。
4
+
5
+ 必须附带任务描述。
6
+
7
+ ## 前置检查
8
+
9
+ - 运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
10
+ - 描述为空 → 向用户获取描述后继续执行。
11
+ - 描述仍存在范围边界、技术路径或验收标准歧义 → 提示 rush 要求明确无歧义的描述,按用户选择执行。
12
+ - 存在未归档的已执行当前计划 → 向用户确认如何处理已执行计划后按选择执行。
13
+ - 存在未实施的当前计划 → 提示存在未实施计划需先处理,按用户选择执行。
14
+
15
+ ## 执行步骤
16
+
17
+ > rush = plan + implement 的连续执行,下方仅列出差异点,未提及的步骤按原协议执行。
18
+
19
+ ### 阶段一:plan(差异)
20
+
21
+ - 仅在描述本身已足够明确时跳过「需求澄清」步骤;否则不得继续 rush。
22
+ - 强制单计划,不拆分,不进入 preparing 队列。
23
+ - 完成 plan 后**不等待用户确认**,直接进入阶段二。
24
+
25
+ ### 阶段二:implement
26
+
27
+ - 按 \`implement\` 协议**完整执行**(读取计划 → 实施变更 → 验证循环 → 更新状态与影响范围),无任何裁剪。
28
+ `}export{e as renderRush};
@@ -1,4 +1,4 @@
1
- import{ACTION_NAMES as e,ACTION_RENDERERS as t}from"./actions.js";function n(n){let i=[{relativePath:`SKILL.md`,body:r(n)},...e.map(e=>({relativePath:`actions/${e}.md`,body:t[e]()}))];return n.metadataFiles.includes(`openai`)&&i.push({relativePath:`agents/openai.yaml`,body:a()}),{files:i}}function r(e){return`${i(e)}
1
+ import{ACTION_NAMES as e,ACTION_RENDERERS as t}from"./actions/index.js";function n(n){let i=[{relativePath:`SKILL.md`,body:r(n)},...e.map(e=>({relativePath:`actions/${e}.md`,body:t[e]()}))];return n.metadataFiles.includes(`openai`)&&i.push({relativePath:`agents/openai.yaml`,body:a()}),{files:i}}function r(e){return`${i(e)}
2
2
  # Agent Context
3
3
 
4
4
  管理项目中的 \`.agent-context/\` 计划生命周期。匹配用户意图后,**必须先读取对应协议文件的完整内容**,再严格按协议步骤逐项执行。
@@ -51,6 +51,8 @@ import{ACTION_NAMES as e,ACTION_RENDERERS as t}from"./actions.js";function n(n){
51
51
  \`\`\`
52
52
 
53
53
  编号规则:在当前 scope 内扫描全部 \`plan-N\` 目录取 \`max(N)+1\`。
54
+
55
+ ${o()}
54
56
  `}function i(e){let t=[`---`,`name: ac-workflow`,`description: 管理 .agent-context 计划生命周期,按 init、plan、replan、implement、patch、rush、done 协议推进任务。`];return e.frontmatterProfile!==`copilot`&&t.push(`argument-hint: [request]`),e.frontmatterProfile===`copilot`&&t.push(`license: MIT`),t.push(`---`,``),`${t.join(`
55
57
  `)}\n`}function a(){return`interface:
56
58
  display_name: "Agent Context Workflow"
@@ -59,4 +61,11 @@ import{ACTION_NAMES as e,ACTION_RENDERERS as t}from"./actions.js";function n(n){
59
61
 
60
62
  policy:
61
63
  allow_implicit_invocation: true
64
+ `}function o(){return`## AskUserQuestion 规范
65
+
66
+ 所有协议在通过 **AskUserQuestion** 向用户提问时必须遵守:
67
+
68
+ - 提问通俗易懂,不废话
69
+ - 单选选项须标注推荐项并说明理由
70
+ - 选项编号使用从 1 开始的正整数
62
71
  `}export{n as renderSkillArtifacts};
package/dist/stats.html CHANGED
@@ -4930,7 +4930,7 @@ var drawChart = (function (exports) {
4930
4930
  </script>
4931
4931
  <script>
4932
4932
  /*<!--*/
4933
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"cli.d.ts","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/cli.d.ts","uid":"e9c35142-1"}]},{"name":"cli.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/cli.ts","uid":"e9c35142-3"}]},{"name":"commands/done.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/done.ts","uid":"e9c35142-5"}]},{"name":"commands/index-cmd.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/index-cmd.ts","uid":"e9c35142-7"}]},{"name":"commands/init.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/init.ts","uid":"e9c35142-9"}]},{"name":"commands/install.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/install.ts","uid":"e9c35142-11"}]},{"name":"commands/printer.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/printer.ts","uid":"e9c35142-13"}]},{"name":"commands/status.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/status.ts","uid":"e9c35142-15"}]},{"name":"commands/sync.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/sync.ts","uid":"e9c35142-17"}]},{"name":"commands/validate.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/validate.ts","uid":"e9c35142-19"}]},{"name":"content/actions.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions.ts","uid":"e9c35142-21"}]},{"name":"content/index.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/content/index.ts","uid":"e9c35142-23"}]},{"name":"context/archiver.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/context/archiver.ts","uid":"e9c35142-25"}]},{"name":"context/indexer.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/context/indexer.ts","uid":"e9c35142-27"}]},{"name":"context/reader.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/context/reader.ts","uid":"e9c35142-29"}]},{"name":"context/scope.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/context/scope.ts","uid":"e9c35142-31"}]},{"name":"context/validator.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/context/validator.ts","uid":"e9c35142-33"}]},{"name":"runner.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/runner.ts","uid":"e9c35142-35"}]},{"name":"tools.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/tools.ts","uid":"e9c35142-37"}]}],"isRoot":true},"nodeParts":{"e9c35142-1":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-0"},"e9c35142-3":{"renderedLength":1891,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-2"},"e9c35142-5":{"renderedLength":1508,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-4"},"e9c35142-7":{"renderedLength":629,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-6"},"e9c35142-9":{"renderedLength":718,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-8"},"e9c35142-11":{"renderedLength":1005,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-10"},"e9c35142-13":{"renderedLength":909,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-12"},"e9c35142-15":{"renderedLength":993,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-14"},"e9c35142-17":{"renderedLength":765,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-16"},"e9c35142-19":{"renderedLength":813,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-18"},"e9c35142-21":{"renderedLength":11445,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-20"},"e9c35142-23":{"renderedLength":4355,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-22"},"e9c35142-25":{"renderedLength":1012,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-24"},"e9c35142-27":{"renderedLength":1274,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-26"},"e9c35142-29":{"renderedLength":2276,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-28"},"e9c35142-31":{"renderedLength":1479,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-30"},"e9c35142-33":{"renderedLength":1905,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-32"},"e9c35142-35":{"renderedLength":2037,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-34"},"e9c35142-37":{"renderedLength":2509,"gzipLength":0,"brotliLength":0,"metaUid":"e9c35142-36"}},"nodeMetas":{"e9c35142-0":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/cli.d.ts","moduleParts":{"cli.d.ts":"e9c35142-1"},"imported":[],"importedBy":[],"isEntry":true},"e9c35142-2":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/cli.ts","moduleParts":{"cli.js":"e9c35142-3"},"imported":[{"uid":"e9c35142-38"},{"uid":"e9c35142-39"},{"uid":"e9c35142-4"},{"uid":"e9c35142-6"},{"uid":"e9c35142-8"},{"uid":"e9c35142-10"},{"uid":"e9c35142-14"},{"uid":"e9c35142-16"},{"uid":"e9c35142-18"}],"importedBy":[],"isEntry":true},"e9c35142-4":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/done.ts","moduleParts":{"commands/done.js":"e9c35142-5"},"imported":[{"uid":"e9c35142-40"},{"uid":"e9c35142-41"},{"uid":"e9c35142-42"}],"importedBy":[{"uid":"e9c35142-2"}]},"e9c35142-6":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/index-cmd.ts","moduleParts":{"commands/index-cmd.js":"e9c35142-7"},"imported":[{"uid":"e9c35142-40"},{"uid":"e9c35142-42"}],"importedBy":[{"uid":"e9c35142-2"}]},"e9c35142-8":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/init.ts","moduleParts":{"commands/init.js":"e9c35142-9"},"imported":[{"uid":"e9c35142-38"},{"uid":"e9c35142-43"},{"uid":"e9c35142-40"},{"uid":"e9c35142-41"},{"uid":"e9c35142-30"}],"importedBy":[{"uid":"e9c35142-2"}]},"e9c35142-10":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/install.ts","moduleParts":{"commands/install.js":"e9c35142-11"},"imported":[{"uid":"e9c35142-41"},{"uid":"e9c35142-34"},{"uid":"e9c35142-36"},{"uid":"e9c35142-12"}],"importedBy":[{"uid":"e9c35142-2"}]},"e9c35142-12":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/printer.ts","moduleParts":{"commands/printer.js":"e9c35142-13"},"imported":[{"uid":"e9c35142-40"}],"importedBy":[{"uid":"e9c35142-10"},{"uid":"e9c35142-16"}]},"e9c35142-14":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/status.ts","moduleParts":{"commands/status.js":"e9c35142-15"},"imported":[{"uid":"e9c35142-42"}],"importedBy":[{"uid":"e9c35142-2"}]},"e9c35142-16":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/sync.ts","moduleParts":{"commands/sync.js":"e9c35142-17"},"imported":[{"uid":"e9c35142-34"},{"uid":"e9c35142-36"},{"uid":"e9c35142-12"}],"importedBy":[{"uid":"e9c35142-2"}]},"e9c35142-18":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/validate.ts","moduleParts":{"commands/validate.js":"e9c35142-19"},"imported":[{"uid":"e9c35142-42"}],"importedBy":[{"uid":"e9c35142-2"}]},"e9c35142-20":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions.ts","moduleParts":{"content/actions.js":"e9c35142-21"},"imported":[],"importedBy":[{"uid":"e9c35142-22"}]},"e9c35142-22":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/content/index.ts","moduleParts":{"content/index.js":"e9c35142-23"},"imported":[{"uid":"e9c35142-20"}],"importedBy":[{"uid":"e9c35142-34"}]},"e9c35142-24":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/archiver.ts","moduleParts":{"context/archiver.js":"e9c35142-25"},"imported":[{"uid":"e9c35142-43"},{"uid":"e9c35142-40"}],"importedBy":[{"uid":"e9c35142-42"}]},"e9c35142-26":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/indexer.ts","moduleParts":{"context/indexer.js":"e9c35142-27"},"imported":[{"uid":"e9c35142-38"},{"uid":"e9c35142-43"},{"uid":"e9c35142-40"}],"importedBy":[{"uid":"e9c35142-42"}]},"e9c35142-28":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/reader.ts","moduleParts":{"context/reader.js":"e9c35142-29"},"imported":[{"uid":"e9c35142-38"},{"uid":"e9c35142-43"},{"uid":"e9c35142-40"},{"uid":"e9c35142-30"}],"importedBy":[{"uid":"e9c35142-42"}]},"e9c35142-30":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/scope.ts","moduleParts":{"context/scope.js":"e9c35142-31"},"imported":[{"uid":"e9c35142-44"},{"uid":"e9c35142-38"},{"uid":"e9c35142-43"},{"uid":"e9c35142-40"}],"importedBy":[{"uid":"e9c35142-8"},{"uid":"e9c35142-42"},{"uid":"e9c35142-28"}]},"e9c35142-32":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/validator.ts","moduleParts":{"context/validator.js":"e9c35142-33"},"imported":[{"uid":"e9c35142-38"},{"uid":"e9c35142-40"}],"importedBy":[{"uid":"e9c35142-42"}]},"e9c35142-34":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/runner.ts","moduleParts":{"runner.js":"e9c35142-35"},"imported":[{"uid":"e9c35142-38"},{"uid":"e9c35142-43"},{"uid":"e9c35142-40"},{"uid":"e9c35142-22"},{"uid":"e9c35142-36"}],"importedBy":[{"uid":"e9c35142-10"},{"uid":"e9c35142-16"}]},"e9c35142-36":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/tools.ts","moduleParts":{"tools.js":"e9c35142-37"},"imported":[{"uid":"e9c35142-38"},{"uid":"e9c35142-40"}],"importedBy":[{"uid":"e9c35142-10"},{"uid":"e9c35142-16"},{"uid":"e9c35142-34"}]},"e9c35142-38":{"id":"node:fs","moduleParts":{},"imported":[],"importedBy":[{"uid":"e9c35142-2"},{"uid":"e9c35142-8"},{"uid":"e9c35142-30"},{"uid":"e9c35142-34"},{"uid":"e9c35142-36"},{"uid":"e9c35142-28"},{"uid":"e9c35142-32"},{"uid":"e9c35142-26"}]},"e9c35142-39":{"id":"commander","moduleParts":{},"imported":[],"importedBy":[{"uid":"e9c35142-2"}]},"e9c35142-40":{"id":"node:path","moduleParts":{},"imported":[],"importedBy":[{"uid":"e9c35142-4"},{"uid":"e9c35142-6"},{"uid":"e9c35142-8"},{"uid":"e9c35142-30"},{"uid":"e9c35142-34"},{"uid":"e9c35142-36"},{"uid":"e9c35142-12"},{"uid":"e9c35142-28"},{"uid":"e9c35142-32"},{"uid":"e9c35142-24"},{"uid":"e9c35142-26"}]},"e9c35142-41":{"id":"@inquirer/prompts","moduleParts":{},"imported":[],"importedBy":[{"uid":"e9c35142-4"},{"uid":"e9c35142-8"},{"uid":"e9c35142-10"}]},"e9c35142-42":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/index.ts","moduleParts":{},"imported":[{"uid":"e9c35142-28"},{"uid":"e9c35142-32"},{"uid":"e9c35142-24"},{"uid":"e9c35142-26"},{"uid":"e9c35142-30"}],"importedBy":[{"uid":"e9c35142-4"},{"uid":"e9c35142-6"},{"uid":"e9c35142-14"},{"uid":"e9c35142-18"}]},"e9c35142-43":{"id":"node:fs/promises","moduleParts":{},"imported":[],"importedBy":[{"uid":"e9c35142-8"},{"uid":"e9c35142-30"},{"uid":"e9c35142-34"},{"uid":"e9c35142-28"},{"uid":"e9c35142-24"},{"uid":"e9c35142-26"}]},"e9c35142-44":{"id":"node:child_process","moduleParts":{},"imported":[],"importedBy":[{"uid":"e9c35142-30"}]}},"env":{"rollup":"4.23.0"},"options":{"gzip":false,"brotli":false,"sourcemap":false}};
4933
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"cli.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/cli.ts","uid":"d3873e88-1"}]},{"name":"commands/done.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/done.ts","uid":"d3873e88-3"}]},{"name":"commands/index-cmd.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/index-cmd.ts","uid":"d3873e88-5"}]},{"name":"commands/init.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/init.ts","uid":"d3873e88-7"}]},{"name":"commands/install.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/install.ts","uid":"d3873e88-9"}]},{"name":"commands/printer.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/printer.ts","uid":"d3873e88-11"}]},{"name":"commands/status.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/status.ts","uid":"d3873e88-13"}]},{"name":"commands/sync.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/sync.ts","uid":"d3873e88-15"}]},{"name":"commands/validate.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/commands/validate.ts","uid":"d3873e88-17"}]},{"name":"content/actions/implement.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/implement.ts","uid":"d3873e88-19"}]},{"name":"content/actions/index.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/index.ts","uid":"d3873e88-21"}]},{"name":"content/actions/init.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/init.ts","uid":"d3873e88-23"}]},{"name":"content/actions/patch.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/patch.ts","uid":"d3873e88-25"}]},{"name":"content/actions/plan.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/plan.ts","uid":"d3873e88-27"}]},{"name":"content/actions/replan.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/replan.ts","uid":"d3873e88-29"}]},{"name":"content/actions/rush.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/rush.ts","uid":"d3873e88-31"}]},{"name":"content/index.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/content/index.ts","uid":"d3873e88-33"}]},{"name":"context/archiver.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/context/archiver.ts","uid":"d3873e88-35"}]},{"name":"context/indexer.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/context/indexer.ts","uid":"d3873e88-37"}]},{"name":"context/reader.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/context/reader.ts","uid":"d3873e88-39"}]},{"name":"context/scope.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/context/scope.ts","uid":"d3873e88-41"}]},{"name":"context/validator.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/context/validator.ts","uid":"d3873e88-43"}]},{"name":"runner.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/runner.ts","uid":"d3873e88-45"}]},{"name":"tools.js","children":[{"name":"Users/whj/Codes/cat-kit/packages/agent-context/src/tools.ts","uid":"d3873e88-47"}]}],"isRoot":true},"nodeParts":{"d3873e88-1":{"renderedLength":1891,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-0"},"d3873e88-3":{"renderedLength":1508,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-2"},"d3873e88-5":{"renderedLength":629,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-4"},"d3873e88-7":{"renderedLength":718,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-6"},"d3873e88-9":{"renderedLength":1005,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-8"},"d3873e88-11":{"renderedLength":909,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-10"},"d3873e88-13":{"renderedLength":993,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-12"},"d3873e88-15":{"renderedLength":765,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-14"},"d3873e88-17":{"renderedLength":813,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-16"},"d3873e88-19":{"renderedLength":2309,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-18"},"d3873e88-21":{"renderedLength":298,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-20"},"d3873e88-23":{"renderedLength":3140,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-22"},"d3873e88-25":{"renderedLength":2078,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-24"},"d3873e88-27":{"renderedLength":1974,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-26"},"d3873e88-29":{"renderedLength":1872,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-28"},"d3873e88-31":{"renderedLength":1422,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-30"},"d3873e88-33":{"renderedLength":4674,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-32"},"d3873e88-35":{"renderedLength":1012,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-34"},"d3873e88-37":{"renderedLength":1274,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-36"},"d3873e88-39":{"renderedLength":2276,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-38"},"d3873e88-41":{"renderedLength":1479,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-40"},"d3873e88-43":{"renderedLength":1905,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-42"},"d3873e88-45":{"renderedLength":2037,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-44"},"d3873e88-47":{"renderedLength":2509,"gzipLength":0,"brotliLength":0,"metaUid":"d3873e88-46"}},"nodeMetas":{"d3873e88-0":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/cli.ts","moduleParts":{"cli.js":"d3873e88-1"},"imported":[{"uid":"d3873e88-48"},{"uid":"d3873e88-49"},{"uid":"d3873e88-2"},{"uid":"d3873e88-4"},{"uid":"d3873e88-6"},{"uid":"d3873e88-8"},{"uid":"d3873e88-12"},{"uid":"d3873e88-14"},{"uid":"d3873e88-16"}],"importedBy":[],"isEntry":true},"d3873e88-2":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/done.ts","moduleParts":{"commands/done.js":"d3873e88-3"},"imported":[{"uid":"d3873e88-50"},{"uid":"d3873e88-51"},{"uid":"d3873e88-52"}],"importedBy":[{"uid":"d3873e88-0"}]},"d3873e88-4":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/index-cmd.ts","moduleParts":{"commands/index-cmd.js":"d3873e88-5"},"imported":[{"uid":"d3873e88-50"},{"uid":"d3873e88-52"}],"importedBy":[{"uid":"d3873e88-0"}]},"d3873e88-6":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/init.ts","moduleParts":{"commands/init.js":"d3873e88-7"},"imported":[{"uid":"d3873e88-48"},{"uid":"d3873e88-53"},{"uid":"d3873e88-50"},{"uid":"d3873e88-51"},{"uid":"d3873e88-40"}],"importedBy":[{"uid":"d3873e88-0"}]},"d3873e88-8":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/install.ts","moduleParts":{"commands/install.js":"d3873e88-9"},"imported":[{"uid":"d3873e88-51"},{"uid":"d3873e88-44"},{"uid":"d3873e88-46"},{"uid":"d3873e88-10"}],"importedBy":[{"uid":"d3873e88-0"}]},"d3873e88-10":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/printer.ts","moduleParts":{"commands/printer.js":"d3873e88-11"},"imported":[{"uid":"d3873e88-50"}],"importedBy":[{"uid":"d3873e88-8"},{"uid":"d3873e88-14"}]},"d3873e88-12":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/status.ts","moduleParts":{"commands/status.js":"d3873e88-13"},"imported":[{"uid":"d3873e88-52"}],"importedBy":[{"uid":"d3873e88-0"}]},"d3873e88-14":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/sync.ts","moduleParts":{"commands/sync.js":"d3873e88-15"},"imported":[{"uid":"d3873e88-44"},{"uid":"d3873e88-46"},{"uid":"d3873e88-10"}],"importedBy":[{"uid":"d3873e88-0"}]},"d3873e88-16":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/commands/validate.ts","moduleParts":{"commands/validate.js":"d3873e88-17"},"imported":[{"uid":"d3873e88-52"}],"importedBy":[{"uid":"d3873e88-0"}]},"d3873e88-18":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/implement.ts","moduleParts":{"content/actions/implement.js":"d3873e88-19"},"imported":[],"importedBy":[{"uid":"d3873e88-20"}]},"d3873e88-20":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/index.ts","moduleParts":{"content/actions/index.js":"d3873e88-21"},"imported":[{"uid":"d3873e88-22"},{"uid":"d3873e88-26"},{"uid":"d3873e88-28"},{"uid":"d3873e88-18"},{"uid":"d3873e88-24"},{"uid":"d3873e88-30"}],"importedBy":[{"uid":"d3873e88-32"}]},"d3873e88-22":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/init.ts","moduleParts":{"content/actions/init.js":"d3873e88-23"},"imported":[],"importedBy":[{"uid":"d3873e88-20"}]},"d3873e88-24":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/patch.ts","moduleParts":{"content/actions/patch.js":"d3873e88-25"},"imported":[],"importedBy":[{"uid":"d3873e88-20"}]},"d3873e88-26":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/plan.ts","moduleParts":{"content/actions/plan.js":"d3873e88-27"},"imported":[],"importedBy":[{"uid":"d3873e88-20"}]},"d3873e88-28":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/replan.ts","moduleParts":{"content/actions/replan.js":"d3873e88-29"},"imported":[],"importedBy":[{"uid":"d3873e88-20"}]},"d3873e88-30":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/content/actions/rush.ts","moduleParts":{"content/actions/rush.js":"d3873e88-31"},"imported":[],"importedBy":[{"uid":"d3873e88-20"}]},"d3873e88-32":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/content/index.ts","moduleParts":{"content/index.js":"d3873e88-33"},"imported":[{"uid":"d3873e88-20"}],"importedBy":[{"uid":"d3873e88-44"}]},"d3873e88-34":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/archiver.ts","moduleParts":{"context/archiver.js":"d3873e88-35"},"imported":[{"uid":"d3873e88-53"},{"uid":"d3873e88-50"}],"importedBy":[{"uid":"d3873e88-52"}]},"d3873e88-36":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/indexer.ts","moduleParts":{"context/indexer.js":"d3873e88-37"},"imported":[{"uid":"d3873e88-48"},{"uid":"d3873e88-53"},{"uid":"d3873e88-50"}],"importedBy":[{"uid":"d3873e88-52"}]},"d3873e88-38":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/reader.ts","moduleParts":{"context/reader.js":"d3873e88-39"},"imported":[{"uid":"d3873e88-48"},{"uid":"d3873e88-53"},{"uid":"d3873e88-50"},{"uid":"d3873e88-40"}],"importedBy":[{"uid":"d3873e88-52"}]},"d3873e88-40":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/scope.ts","moduleParts":{"context/scope.js":"d3873e88-41"},"imported":[{"uid":"d3873e88-54"},{"uid":"d3873e88-48"},{"uid":"d3873e88-53"},{"uid":"d3873e88-50"}],"importedBy":[{"uid":"d3873e88-6"},{"uid":"d3873e88-52"},{"uid":"d3873e88-38"}]},"d3873e88-42":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/validator.ts","moduleParts":{"context/validator.js":"d3873e88-43"},"imported":[{"uid":"d3873e88-48"},{"uid":"d3873e88-50"}],"importedBy":[{"uid":"d3873e88-52"}]},"d3873e88-44":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/runner.ts","moduleParts":{"runner.js":"d3873e88-45"},"imported":[{"uid":"d3873e88-48"},{"uid":"d3873e88-53"},{"uid":"d3873e88-50"},{"uid":"d3873e88-32"},{"uid":"d3873e88-46"}],"importedBy":[{"uid":"d3873e88-8"},{"uid":"d3873e88-14"}]},"d3873e88-46":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/tools.ts","moduleParts":{"tools.js":"d3873e88-47"},"imported":[{"uid":"d3873e88-48"},{"uid":"d3873e88-50"}],"importedBy":[{"uid":"d3873e88-8"},{"uid":"d3873e88-14"},{"uid":"d3873e88-44"}]},"d3873e88-48":{"id":"node:fs","moduleParts":{},"imported":[],"importedBy":[{"uid":"d3873e88-0"},{"uid":"d3873e88-6"},{"uid":"d3873e88-40"},{"uid":"d3873e88-44"},{"uid":"d3873e88-46"},{"uid":"d3873e88-38"},{"uid":"d3873e88-42"},{"uid":"d3873e88-36"}]},"d3873e88-49":{"id":"commander","moduleParts":{},"imported":[],"importedBy":[{"uid":"d3873e88-0"}]},"d3873e88-50":{"id":"node:path","moduleParts":{},"imported":[],"importedBy":[{"uid":"d3873e88-2"},{"uid":"d3873e88-4"},{"uid":"d3873e88-6"},{"uid":"d3873e88-40"},{"uid":"d3873e88-44"},{"uid":"d3873e88-46"},{"uid":"d3873e88-10"},{"uid":"d3873e88-38"},{"uid":"d3873e88-42"},{"uid":"d3873e88-34"},{"uid":"d3873e88-36"}]},"d3873e88-51":{"id":"@inquirer/prompts","moduleParts":{},"imported":[],"importedBy":[{"uid":"d3873e88-2"},{"uid":"d3873e88-6"},{"uid":"d3873e88-8"}]},"d3873e88-52":{"id":"/Users/whj/Codes/cat-kit/packages/agent-context/src/context/index.ts","moduleParts":{},"imported":[{"uid":"d3873e88-38"},{"uid":"d3873e88-42"},{"uid":"d3873e88-34"},{"uid":"d3873e88-36"},{"uid":"d3873e88-40"}],"importedBy":[{"uid":"d3873e88-2"},{"uid":"d3873e88-4"},{"uid":"d3873e88-12"},{"uid":"d3873e88-16"}]},"d3873e88-53":{"id":"node:fs/promises","moduleParts":{},"imported":[],"importedBy":[{"uid":"d3873e88-6"},{"uid":"d3873e88-40"},{"uid":"d3873e88-44"},{"uid":"d3873e88-38"},{"uid":"d3873e88-34"},{"uid":"d3873e88-36"}]},"d3873e88-54":{"id":"node:child_process","moduleParts":{},"imported":[],"importedBy":[{"uid":"d3873e88-40"}]}},"env":{"rollup":"4.23.0"},"options":{"gzip":false,"brotli":false,"sourcemap":false}};
4934
4934
 
4935
4935
  const run = () => {
4936
4936
  const width = window.innerWidth;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-kit/agent-context",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "代理上下文管理工具",
5
5
  "bin": {
6
6
  "agent-context": "./dist/cli.js"
@@ -0,0 +1,34 @@
1
+ export function renderImplement(): string {
2
+ return `# implement
3
+
4
+ 实施当前计划 \`.agent-context/{scope}/plan-{number}/plan.md\` 中的全部步骤,通过验证循环后将状态更新为「已执行」。
5
+
6
+ 不接受额外描述。
7
+
8
+ ## 前置检查
9
+
10
+ - 运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
11
+ - 带描述 → 提示 implement 不接受额外描述,按用户选择执行。
12
+ - 当前计划不存在 → 提示需先创建计划,按用户选择执行。
13
+ - 当前计划状态为 \`已执行\` → 提示计划已执行不可重复实施,按用户选择执行。
14
+ - \`## 目标\` 或 \`## 内容\` 为空 → 向用户获取缺失内容后更新 plan.md 并继续执行。
15
+ - 存在多个当前计划 → 向用户确认保留哪个计划,清理后继续执行。
16
+ - 仅操作当前计划,不直接操作 \`preparing/\` 中的计划。
17
+ - 遇到阻塞问题应向用户报告,不可静默跳过。
18
+
19
+ ## 执行步骤
20
+
21
+ 1. **读取计划**:读取当前 \`plan.md\`,理解 \`## 目标\` 与 \`## 内容\`。
22
+ 2. **实施变更**:依据 \`## 内容\` 的步骤逐项实施。
23
+ 3. **验证循环(WHILE 循环检查)**:
24
+ - **3.1 检查对照**:对照 \`## 内容\`,确保每个步骤均已实施完毕,无遗漏。
25
+ - **3.2 运行验证**:
26
+ - **IF** (编码任务) **THEN**:必须运行代码检查(Lint/Typecheck)与相关测试命令。
27
+ - **ELSE IF** (非编码任务,如纯文档修改或项目规划) **THEN**:无需运行外部命令,仅凭逻辑和视觉排版审阅是否符合验收标准。
28
+ - **3.3 结果判断**:
29
+ - **IF** (存在未通过的验证报错、未完成项或遗漏项) **THEN**:修复发现的问题,然后 **GOTO 3.1**(重新检查)。
30
+ - **ELSE IF** (验证全部通过 或 非编码任务验收合格) **THEN**:退出验证循环,即 **GOTO 4** 继续执行。
31
+ 4. **更新状态**:将 \`plan.md\` 的状态行修改为 \`> 状态: 已执行\`。
32
+ 5. **记录范围**:更新 \`## 影响范围\`,详细记录本次变动的具体文件路径。\`.agent-context/\` 目录下的文件不计入影响范围。
33
+ `
34
+ }
@@ -0,0 +1,18 @@
1
+ import { renderInit } from './init.js'
2
+ import { renderPlan } from './plan.js'
3
+ import { renderReplan } from './replan.js'
4
+ import { renderImplement } from './implement.js'
5
+ import { renderPatch } from './patch.js'
6
+ import { renderRush } from './rush.js'
7
+
8
+ export const ACTION_NAMES = ['init', 'plan', 'replan', 'implement', 'patch', 'rush'] as const
9
+ type ActionName = (typeof ACTION_NAMES)[number]
10
+
11
+ export const ACTION_RENDERERS: Record<ActionName, () => string> = {
12
+ init: renderInit,
13
+ plan: renderPlan,
14
+ replan: renderReplan,
15
+ implement: renderImplement,
16
+ patch: renderPatch,
17
+ rush: renderRush
18
+ }
@@ -0,0 +1,48 @@
1
+ export function renderInit(): string {
2
+ return `# init
3
+
4
+ 初始化项目的 Agent Context 上下文。根据新旧项目类型处理 \`AGENTS.md\`,新项目会自动进入计划创建流程。
5
+
6
+ 可附带描述参数,用于补充项目背景、技术栈、特殊约束。
7
+
8
+ ## 前置检查
9
+
10
+ - 若已存在 \`.agent-context/\`:运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
11
+ - 若 \`.agent-context/\` 不存在:确认这是首次初始化场景;若目录残缺或状态异常,向用户报告,不可继续假设。
12
+ - 新项目缺少关键决策信息时,必须通过 AskUserQuestion 主动提问或确认,不可直接生成 \`AGENTS.md\` 或进入 plan。
13
+ - 遇到阻塞问题应通过 \`AskUserQuestion\` 工具向用户报告并请求决策,不可静默跳过。
14
+
15
+ ## 执行步骤
16
+
17
+ 1. **判断项目类型**:检测根目录是否存在有效代码文件和目录结构。
18
+ - 新项目:无实质代码,或用户明确说明是新项目。
19
+ - 旧项目:已有代码、配置文件和目录结构。
20
+ - 无法判断 → 通过 AskUserQuestion 向用户确认项目类型,不可假设。
21
+
22
+ 2. **处理 AGENTS.md**:
23
+ - 新项目:
24
+ 1. 通过 AskUserQuestion 收集或确认以下信息,其中前两类属于**必须主动确认**的决策项,即使描述已部分涵盖也不能整体跳过;可基于描述用确认式问题补问,而不是完全重问:
25
+ - 必须主动确认:技术栈与版本(语言、运行时、框架、构建/测试工具等)
26
+ - 必须主动确认:架构偏好(目录结构、分层模式、关键框架或方案选型)
27
+ - 可基于描述补充:项目目标与核心功能
28
+ - 可基于描述补充:代码规范与工具链细节(lint、formatter、测试约定等)
29
+ 2. 对高价值决策类问题必须在计划前通过 AskUserQuestion 澄清,例如:是否使用 monorepo、前后端如何拆分、采用哪个框架与测试工具。
30
+ 3. 生成高质量 \`AGENTS.md\`(须满足下方质量标准,不满足则重新优化直至满足)。
31
+ 4. 继续执行 plan 创建初始计划。
32
+ - 旧项目:
33
+ 1. 若不存在 \`AGENTS.md\`:优先通过代码与配置读取收集信息;仅对无法可靠判断的内容通过 \`AskUserQuestion\` 提问后生成。
34
+ 2. 若已存在 \`AGENTS.md\`:按质量标准评估,不足时增补优化。
35
+ 3. 默认不创建计划(除非用户明确要求)。
36
+
37
+ 3. **输出反馈**:向用户报告项目类型判定结果、AGENTS.md 处理结果、是否需要后续计划。
38
+
39
+ ## 高质量 AGENTS.md 标准
40
+
41
+ - 常用命令与约束前置,降低代理执行歧义。
42
+ - 明确列出目录结构(至少到第二层)。
43
+ - 明确标注技术栈及版本。
44
+ - 明确代码风格约束(命名规范、格式化工具、lint 配置)。
45
+ - 内容精简,无冗余段落或模板化填充。
46
+ - 大型单体仓库按子包拆分维护本地 \`AGENTS.md\`。
47
+ `
48
+ }
@@ -0,0 +1,47 @@
1
+ export function renderPatch(): string {
2
+ return `# patch
3
+
4
+ 基于当前已执行计划创建增量补丁,修复问题或追加变更。
5
+
6
+ 必须附带补丁描述。
7
+
8
+ ## 前置检查
9
+
10
+ - 运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
11
+ - 描述为空 → 向用户获取描述后继续执行。
12
+ - 当前计划不存在 → 提示需先创建计划,按用户选择执行。
13
+ - 当前计划状态为 \`未执行\` → 提示计划未执行需先实施,按用户选择执行。
14
+ - 存在多个当前计划 → 向用户确认保留哪个计划,清理后继续执行。
15
+ - 补丁需求与当前计划的关联性不确定 → 向用户确认需求与当前计划的关联性,按用户选择执行。
16
+ - 补丁需求与当前计划完全无关 → 提示需求与当前计划无关需先归档,按用户选择执行。
17
+ - 补丁不改变计划状态,完成后保持 \`已执行\`。
18
+
19
+ ## 执行步骤
20
+
21
+ 1. 阅读 \`plan.md\` 与已有 \`patch-{number}.md\`,了解上下文与历史,避免重复修复。
22
+ 2. 根据描述执行补丁所需的代码变更。
23
+ 3. 完成验证:
24
+ - **IF** (编码任务) **THEN**:运行相关测试,以及必要的 Lint/Typecheck。
25
+ - **ELSE IF** (非编码任务,如纯文档修改) **THEN**:仅凭逻辑与排版审阅确认验收通过。
26
+ 4. 创建 \`patch-{number}.md\`(编号:扫描当前计划目录已有补丁取 max+1),遵循下方模板。
27
+ 5. 回写 \`plan.md\`:
28
+ - \`## 历史补丁\`:追加 \`- patch-{number}: {补丁名称}\`,按编号去重。
29
+ - \`## 影响范围\`:合并本次变更路径,按路径去重。\`.agent-context/\` 目录下的文件不计入影响范围。
30
+
31
+ ## patch.md 模板
32
+
33
+ \`\`\`markdown
34
+ # {补丁名称}
35
+
36
+ ## 补丁内容
37
+
38
+ {修改了什么、为什么修改}
39
+
40
+ ## 影响范围
41
+
42
+ - 新增文件: \`/path/to/file\`
43
+ - 修改文件: \`/path/to/file\`
44
+ - 删除文件: \`/path/to/file\`
45
+ \`\`\`
46
+ `
47
+ }
@@ -0,0 +1,53 @@
1
+ export function renderPlan(): string {
2
+ return `# plan
3
+
4
+ 创建新的执行计划,写入 \`.agent-context/{scope}/plan-{number}/plan.md\`。按复杂度可拆分为多个计划,维护「单当前计划 + preparing 队列」结构。
5
+
6
+ 必须附带计划描述。
7
+
8
+ ## 前置检查
9
+
10
+ - 运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
11
+ - 描述为空 → 向用户获取描述后继续执行。
12
+ - 存在未归档的已执行当前计划 → 向用户确认如何处理已执行计划后按选择执行。
13
+ - 存在多个当前计划 → 向用户确认保留哪个计划,清理后继续执行。
14
+
15
+ ## 执行步骤
16
+
17
+ 1. **需求澄清**(存在以下任一歧义时通过 AskUserQuestion 提问,否则跳到步骤 2):
18
+ - 范围边界不清:无法判定影响哪些文件或模块。
19
+ - 存在显著不同的技术路径需用户决策。
20
+ - 验收标准不明确:无法判断何时算"完成"。
21
+ 2. 按复杂度决定单计划或多计划拆分。
22
+ 3. 多计划拆分时:最小编号进入 \`.agent-context/{scope}/\` 作为当前计划,其余进入 \`.agent-context/{scope}/preparing/\`。单计划直接创建。
23
+ 4. 每个计划创建 \`plan.md\`,遵循下方模板。
24
+ 5. **自检**(不通过则修改后重新检查):
25
+ - 每个步骤可独立执行且有明确完成标准。
26
+ - 不存在过度拆分或拆分不足。
27
+ - 影响范围可预估。
28
+
29
+ ## plan.md 模板
30
+
31
+ \`\`\`markdown
32
+ # {计划名称}
33
+
34
+ > 状态: 未执行
35
+
36
+ ## 目标
37
+
38
+ {明确的目标描述}
39
+
40
+ ## 内容
41
+
42
+ {详细的实施步骤}
43
+
44
+ ## 影响范围
45
+
46
+ ## 历史补丁
47
+ \`\`\`
48
+
49
+ - 状态行唯一,仅允许 \`未执行\` 或 \`已执行\`。
50
+ - \`## 目标\` 与 \`## 内容\` 不可为空。
51
+ - \`## 影响范围\` 与 \`## 历史补丁\` 创建时留空,后续由 implement 和 patch 写入。
52
+ `
53
+ }
@@ -0,0 +1,34 @@
1
+ export function renderReplan(): string {
2
+ return `# replan
3
+
4
+ 重新规划已有的未实施计划,保持「单当前计划 + preparing 队列」结构不变。
5
+
6
+ 必须附带重规划描述。
7
+
8
+ ## 前置检查
9
+
10
+ - 运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
11
+ - 描述为空 → 向用户获取重规划描述后继续执行。
12
+ - 无未实施计划 → 提示无未实施计划可供重规划,按用户选择执行。
13
+ - 存在多个当前计划 → 向用户确认保留哪个计划,清理后继续执行。
14
+ - 目标计划编号不存在 → 列出可选计划供用户选择后继续执行。
15
+ - 目标计划已执行 → 提示已执行计划不可重规划,按用户选择执行。
16
+
17
+ ## 作用域
18
+
19
+ - 默认作用域:\`.agent-context/{scope}/preparing/\` 中全部未实施计划。
20
+ - 可通过描述指定仅重规划部分计划(如"重规划 plan-3 和 plan-5")。
21
+ - 当前计划为 \`已执行\` → 禁止重写,仅允许重规划 \`{scope}/preparing/\` 队列。
22
+ - 当前计划为 \`未执行\` 且用户明确要求 → 可纳入重规划范围。
23
+
24
+ ## 执行步骤
25
+
26
+ 1. 解析描述,确定重规划目标范围。若描述存在以下歧义,通过 AskUserQuestion 提问澄清后再继续:
27
+ - 无法确定用户期望重规划哪些计划。
28
+ - 重规划方向不明确(拆分方式、优先级调整、范围增减等)。
29
+ 2. 读取目标计划 \`plan.md\`,理解现有意图。
30
+ 3. 生成新的拆分方案,保持「单当前计划 + 若干 preparing 计划」结构。
31
+ 4. 新增计划编号:全局 max(N)+1 递增分配;未改动计划保持原编号。
32
+ 5. 更新目录结构,确保每个新计划的 \`plan.md\` 遵循标准模板。
33
+ `
34
+ }
@@ -0,0 +1,30 @@
1
+ export function renderRush(): string {
2
+ return `# rush
3
+
4
+ 快速通道:创建计划并立即实施,适合范围明确、无需多轮规划的任务。
5
+
6
+ 必须附带任务描述。
7
+
8
+ ## 前置检查
9
+
10
+ - 运行 \`agent-context validate\`,若不通过则根据错误信息修正对应内容(如修复状态行格式、补全缺失文件等),修正后重新运行验证,重复直至通过。
11
+ - 描述为空 → 向用户获取描述后继续执行。
12
+ - 描述仍存在范围边界、技术路径或验收标准歧义 → 提示 rush 要求明确无歧义的描述,按用户选择执行。
13
+ - 存在未归档的已执行当前计划 → 向用户确认如何处理已执行计划后按选择执行。
14
+ - 存在未实施的当前计划 → 提示存在未实施计划需先处理,按用户选择执行。
15
+
16
+ ## 执行步骤
17
+
18
+ > rush = plan + implement 的连续执行,下方仅列出差异点,未提及的步骤按原协议执行。
19
+
20
+ ### 阶段一:plan(差异)
21
+
22
+ - 仅在描述本身已足够明确时跳过「需求澄清」步骤;否则不得继续 rush。
23
+ - 强制单计划,不拆分,不进入 preparing 队列。
24
+ - 完成 plan 后**不等待用户确认**,直接进入阶段二。
25
+
26
+ ### 阶段二:implement
27
+
28
+ - 按 \`implement\` 协议**完整执行**(读取计划 → 实施变更 → 验证循环 → 更新状态与影响范围),无任何裁剪。
29
+ `
30
+ }
@@ -1,5 +1,5 @@
1
1
  import type { SkillArtifacts, ToolTarget } from '../types.js'
2
- import { ACTION_NAMES, ACTION_RENDERERS } from './actions.js'
2
+ import { ACTION_NAMES, ACTION_RENDERERS } from './actions/index.js'
3
3
 
4
4
  const SKILL_NAME = 'ac-workflow'
5
5
  const SKILL_DESCRIPTION =
@@ -77,6 +77,8 @@ function renderNavigator(target: ToolTarget): string {
77
77
  \`\`\`
78
78
 
79
79
  编号规则:在当前 scope 内扫描全部 \`plan-N\` 目录取 \`max(N)+1\`。
80
+
81
+ ${renderAskQuestionGuidelines()}
80
82
  `
81
83
  }
82
84
 
@@ -107,3 +109,16 @@ policy:
107
109
  allow_implicit_invocation: true
108
110
  `
109
111
  }
112
+
113
+ // ── AskUserQuestion Guidelines ──────────────────────
114
+
115
+ function renderAskQuestionGuidelines(): string {
116
+ return `## AskUserQuestion 规范
117
+
118
+ 所有协议在通过 **AskUserQuestion** 向用户提问时必须遵守:
119
+
120
+ - 提问通俗易懂,不废话
121
+ - 单选选项须标注推荐项并说明理由
122
+ - 选项编号使用从 1 开始的正整数
123
+ `
124
+ }
package/dist/cli.d.ts DELETED
@@ -1 +0,0 @@
1
- export { };
@@ -1,199 +0,0 @@
1
- const e=[`init`,`plan`,`replan`,`implement`,`patch`,`rush`],t={init:n,plan:r,replan:i,implement:a,patch:o,rush:s};function n(){return`# init
2
-
3
- 初始化项目的 Agent Context 上下文。根据新旧项目类型处理 \`AGENTS.md\`,新项目会自动进入计划创建流程。
4
-
5
- 可附带描述参数,用于补充项目背景、技术栈、特殊约束。
6
-
7
- ## 前置检查
8
-
9
- - 若已存在 \`.agent-context/\`:运行 \`agent-context validate\`,不通过则中止并报告错误。
10
- - 若 \`.agent-context/\` 不存在:确认这是首次初始化场景;若目录残缺或状态异常,向用户报告,不可继续假设。
11
- - 新项目缺少关键决策信息时,必须主动提问或确认,不可直接生成 \`AGENTS.md\` 或进入 plan。
12
- - 遇到阻塞问题应向用户报告,不可静默跳过。
13
-
14
- ## 执行步骤
15
-
16
- 1. **判断项目类型**:检测根目录是否存在有效代码文件和目录结构。
17
- - 新项目:无实质代码,或用户明确说明是新项目。
18
- - 旧项目:已有代码、配置文件和目录结构。
19
- - 无法判断 → 向用户提问澄清,不可假设。
20
-
21
- 2. **处理 AGENTS.md**:
22
- - 新项目:
23
- 1. 先收集或确认以下信息,其中前两类属于**必须主动确认**的决策项,即使描述已部分涵盖也不能整体跳过;可基于描述用确认式问题补问,而不是完全重问。
24
- - 必须主动确认:技术栈与版本(语言、运行时、框架、构建/测试工具等)
25
- - 必须主动确认:架构偏好(目录结构、分层模式、关键框架或方案选型)
26
- - 可基于描述补充:项目目标与核心功能
27
- - 可基于描述补充:代码规范与工具链细节(lint、formatter、测试约定等)
28
- 2. 对高价值决策类问题必须在计划前澄清,例如:是否使用 monorepo、前后端如何拆分、采用哪个框架与测试工具。
29
- 3. 生成高质量 \`AGENTS.md\`(须满足下方质量标准,不满足则重新优化直至满足)。
30
- 4. 继续执行 plan 创建初始计划。
31
- - 旧项目:
32
- 1. 若不存在 \`AGENTS.md\`:优先通过代码与配置读取收集信息;仅对无法可靠判断的内容提问后生成。
33
- 2. 若已存在 \`AGENTS.md\`:按质量标准评估,不足时增补优化。
34
- 3. 默认不创建计划(除非用户明确要求)。
35
-
36
- 3. **输出反馈**:向用户报告项目类型判定结果、AGENTS.md 处理结果、是否需要后续计划。
37
-
38
- ## 高质量 AGENTS.md 标准
39
-
40
- - 常用命令与约束前置,降低代理执行歧义。
41
- - 明确列出目录结构(至少到第二层)。
42
- - 明确标注技术栈及版本。
43
- - 明确代码风格约束(命名规范、格式化工具、lint 配置)。
44
- - 内容精简,无冗余段落或模板化填充。
45
- - 大型单体仓库按子包拆分维护本地 \`AGENTS.md\`。
46
- `}function r(){return`# plan
47
-
48
- 创建新的执行计划,写入 \`.agent-context/{scope}/plan-{number}/plan.md\`。按复杂度可拆分为多个计划,维护「单当前计划 + preparing 队列」结构。
49
-
50
- 必须附带计划描述。
51
-
52
- ## 前置检查
53
-
54
- - 运行 \`agent-context validate\`,不通过则中止并报告错误。
55
- - 描述为空 → 拒绝执行。
56
- - 存在未归档的已执行当前计划 → 判断新需求与当前计划的关联性:
57
- - 相关联或用户本意是修补 → 拒绝执行,提示改用 patch。
58
- - 完全无关 → 拒绝执行,提示先运行 \`agent-context done\` 归档后再创建新计划。
59
- - 存在多个当前计划 → 拒绝执行,提示恢复单活跃状态。
60
-
61
- ## 执行步骤
62
-
63
- 1. **需求澄清**(存在以下任一歧义时必须提问,否则跳到步骤 2):
64
- - 范围边界不清:无法判定影响哪些文件或模块。
65
- - 存在显著不同的技术路径需用户决策。
66
- - 验收标准不明确:无法判断何时算"完成"。
67
- 2. 按复杂度决定单计划或多计划拆分。
68
- 3. 多计划拆分时:最小编号进入 \`.agent-context/{scope}/\` 作为当前计划,其余进入 \`.agent-context/{scope}/preparing/\`。单计划直接创建。
69
- 4. 每个计划创建 \`plan.md\`,遵循下方模板。
70
- 5. **自检**(不通过则修改后重新检查):
71
- - 每个步骤可独立执行且有明确完成标准。
72
- - 不存在过度拆分或拆分不足。
73
- - 影响范围可预估。
74
-
75
- ## plan.md 模板
76
-
77
- \`\`\`markdown
78
- # {计划名称}
79
-
80
- > 状态: 未执行
81
-
82
- ## 目标
83
-
84
- {明确的目标描述}
85
-
86
- ## 内容
87
-
88
- {详细的实施步骤}
89
-
90
- ## 影响范围
91
-
92
- ## 历史补丁
93
- \`\`\`
94
-
95
- - 状态行唯一,仅允许 \`未执行\` 或 \`已执行\`。
96
- - \`## 目标\` 与 \`## 内容\` 不可为空。
97
- - \`## 影响范围\` 与 \`## 历史补丁\` 创建时留空,后续由 implement 和 patch 写入。
98
- `}function i(){return`# replan
99
-
100
- 重新规划已有的未实施计划,保持「单当前计划 + preparing 队列」结构不变。
101
-
102
- 必须附带重规划描述。
103
-
104
- ## 前置检查
105
-
106
- - 运行 \`agent-context validate\`,不通过则中止并报告错误。
107
- - 描述为空 → 拒绝执行。
108
- - 无未实施计划 → 拒绝执行,提示使用 plan 创建。
109
- - 存在多个当前计划 → 拒绝执行,提示恢复单活跃状态。
110
- - 目标计划编号不存在 → 拒绝执行,列出可选编号。
111
- - 目标计划已执行 → 拒绝执行,提示使用 patch。
112
-
113
- ## 作用域
114
-
115
- - 默认作用域:\`.agent-context/{scope}/preparing/\` 中全部未实施计划。
116
- - 可通过描述指定仅重规划部分计划(如"重规划 plan-3 和 plan-5")。
117
- - 当前计划为 \`已执行\` → 禁止重写,仅允许重规划 \`{scope}/preparing/\` 队列。
118
- - 当前计划为 \`未执行\` 且用户明确要求 → 可纳入重规划范围。
119
-
120
- ## 执行步骤
121
-
122
- 1. 解析描述,确定重规划目标范围。
123
- 2. 读取目标计划 \`plan.md\`,理解现有意图。
124
- 3. 生成新的拆分方案,保持「单当前计划 + 若干 preparing 计划」结构。
125
- 4. 新增计划编号:全局 max(N)+1 递增分配;未改动计划保持原编号。
126
- 5. 更新目录结构,确保每个新计划的 \`plan.md\` 遵循标准模板。
127
- `}function a(){return"# implement\n\n实施当前计划 `.agent-context/{scope}/plan-{number}/plan.md` 中的全部步骤,通过验证循环后将状态更新为「已执行」。\n\n不接受额外描述。\n\n## 前置检查\n\n- 运行 `agent-context validate`,不通过则中止并报告错误。\n- 带描述 → 拒绝执行。\n- 当前计划不存在 → 拒绝执行,提示先创建计划。\n- 当前计划状态为 `已执行` → 拒绝执行,提示使用 patch 修补或运行 `agent-context done` 归档。\n- `## 目标` 或 `## 内容` 为空 → 拒绝执行,提示补充。\n- 存在多个当前计划 → 拒绝执行,提示恢复单活跃状态。\n- 仅操作当前计划,不直接操作 `preparing/` 中的计划。\n- 遇到阻塞问题应向用户报告,不可静默跳过。\n\n## 执行步骤\n\n1. **读取计划**:读取当前 `plan.md`,理解 `## 目标` 与 `## 内容`。\n2. **实施变更**:依据 `## 内容` 的步骤逐项实施。\n3. **验证循环(WHILE 循环检查)**:\n - **3.1 检查对照**:对照 `## 内容`,确保每个步骤均已实施完毕,无遗漏。\n - **3.2 运行验证**:\n - **IF** (编码任务) **THEN**:必须运行代码检查(Lint/Typecheck)与相关测试命令。\n - **ELSE IF** (非编码任务,如纯文档修改或项目规划) **THEN**:无需运行外部命令,仅凭逻辑和视觉排版审阅是否符合验收标准。\n - **3.3 结果判断**:\n - **IF** (存在未通过的验证报错、未完成项或遗漏项) **THEN**:修复发现的问题,然后 **GOTO 3.1**(重新检查)。\n - **ELSE IF** (验证全部通过 或 非编码任务验收合格) **THEN**:退出验证循环,即 **GOTO 4** 继续执行。\n4. **更新状态**:将 `plan.md` 的状态行修改为 `> 状态: 已执行`。\n5. **记录范围**:更新 `## 影响范围`,详细记录本次变动的具体文件路径。`.agent-context/` 目录下的文件不计入影响范围。\n"}function o(){return`# patch
128
-
129
- 基于当前已执行计划创建增量补丁,修复问题或追加变更。
130
-
131
- 必须附带补丁描述。
132
-
133
- ## 前置检查
134
-
135
- - 运行 \`agent-context validate\`,不通过则中止并报告错误。
136
- - 描述为空 → 拒绝执行。
137
- - 当前计划不存在 → 拒绝执行,提示先创建计划。
138
- - 当前计划状态为 \`未执行\` → 拒绝执行,提示先实施。
139
- - 存在多个当前计划 → 拒绝执行,提示恢复单活跃状态。
140
- - 补丁需求与当前计划完全无关 → 拒绝执行,提示先运行 \`agent-context done\` 归档后再创建新计划。
141
- - 补丁不改变计划状态,完成后保持 \`已执行\`。
142
-
143
- ## 执行步骤
144
-
145
- 1. 阅读 \`plan.md\` 与已有 \`patch-{number}.md\`,了解上下文与历史,避免重复修复。
146
- 2. 根据描述执行补丁所需的代码变更。
147
- 3. 完成验证:
148
- - **IF** (编码任务) **THEN**:运行相关测试,以及必要的 Lint/Typecheck。
149
- - **ELSE IF** (非编码任务,如纯文档修改) **THEN**:仅凭逻辑与排版审阅确认验收通过。
150
- 4. 创建 \`patch-{number}.md\`(编号:扫描当前计划目录已有补丁取 max+1),遵循下方模板。
151
- 5. 回写 \`plan.md\`:
152
- - \`## 历史补丁\`:追加 \`- patch-{number}: {补丁名称}\`,按编号去重。
153
- - \`## 影响范围\`:合并本次变更路径,按路径去重。\`.agent-context/\` 目录下的文件不计入影响范围。
154
-
155
- ## patch.md 模板
156
-
157
- \`\`\`markdown
158
- # {补丁名称}
159
-
160
- ## 补丁内容
161
-
162
- {修改了什么、为什么修改}
163
-
164
- ## 影响范围
165
-
166
- - 新增文件: \`/path/to/file\`
167
- - 修改文件: \`/path/to/file\`
168
- - 删除文件: \`/path/to/file\`
169
- \`\`\`
170
- `}function s(){return`# rush
171
-
172
- 快速通道:创建计划并立即实施,适合范围明确、无需多轮规划的任务。
173
-
174
- 必须附带任务描述。
175
-
176
- ## 前置检查
177
-
178
- - 运行 \`agent-context validate\`,不通过则中止并报告错误。
179
- - 描述为空 → 拒绝执行。
180
- - 描述仍存在范围边界、技术路径或验收标准歧义 → 拒绝执行,提示改用 \`plan\`。
181
- - 存在未归档的已执行当前计划 → 判断新需求与当前计划的关联性:
182
- - 相关联或用户本意是修补 → 拒绝执行,提示改用 patch。
183
- - 完全无关 → 拒绝执行,提示先运行 \`agent-context done\` 归档后再创建新计划。
184
- - 存在未实施的当前计划 → 拒绝执行,提示先 implement 或 replan。
185
-
186
- ## 执行步骤
187
-
188
- > rush = plan + implement 的连续执行,下方仅列出差异点,未提及的步骤按原协议执行。
189
-
190
- ### 阶段一:plan(差异)
191
-
192
- - 仅在描述本身已足够明确时跳过「需求澄清」步骤;否则不得继续 rush。
193
- - 强制单计划,不拆分,不进入 preparing 队列。
194
- - 完成 plan 后**不等待用户确认**,直接进入阶段二。
195
-
196
- ### 阶段二:implement
197
-
198
- - 按 \`implement\` 协议**完整执行**(读取计划 → 实施变更 → 验证循环 → 更新状态与影响范围),无任何裁剪。
199
- `}export{e as ACTION_NAMES,t as ACTION_RENDERERS};
@@ -1,264 +0,0 @@
1
- export const ACTION_NAMES = ['init', 'plan', 'replan', 'implement', 'patch', 'rush'] as const
2
- type ActionName = (typeof ACTION_NAMES)[number]
3
-
4
- export const ACTION_RENDERERS: Record<ActionName, () => string> = {
5
- init: renderInit,
6
- plan: renderPlan,
7
- replan: renderReplan,
8
- implement: renderImplement,
9
- patch: renderPatch,
10
- rush: renderRush
11
- }
12
-
13
- function renderInit(): string {
14
- return `# init
15
-
16
- 初始化项目的 Agent Context 上下文。根据新旧项目类型处理 \`AGENTS.md\`,新项目会自动进入计划创建流程。
17
-
18
- 可附带描述参数,用于补充项目背景、技术栈、特殊约束。
19
-
20
- ## 前置检查
21
-
22
- - 若已存在 \`.agent-context/\`:运行 \`agent-context validate\`,不通过则中止并报告错误。
23
- - 若 \`.agent-context/\` 不存在:确认这是首次初始化场景;若目录残缺或状态异常,向用户报告,不可继续假设。
24
- - 新项目缺少关键决策信息时,必须主动提问或确认,不可直接生成 \`AGENTS.md\` 或进入 plan。
25
- - 遇到阻塞问题应向用户报告,不可静默跳过。
26
-
27
- ## 执行步骤
28
-
29
- 1. **判断项目类型**:检测根目录是否存在有效代码文件和目录结构。
30
- - 新项目:无实质代码,或用户明确说明是新项目。
31
- - 旧项目:已有代码、配置文件和目录结构。
32
- - 无法判断 → 向用户提问澄清,不可假设。
33
-
34
- 2. **处理 AGENTS.md**:
35
- - 新项目:
36
- 1. 先收集或确认以下信息,其中前两类属于**必须主动确认**的决策项,即使描述已部分涵盖也不能整体跳过;可基于描述用确认式问题补问,而不是完全重问。
37
- - 必须主动确认:技术栈与版本(语言、运行时、框架、构建/测试工具等)
38
- - 必须主动确认:架构偏好(目录结构、分层模式、关键框架或方案选型)
39
- - 可基于描述补充:项目目标与核心功能
40
- - 可基于描述补充:代码规范与工具链细节(lint、formatter、测试约定等)
41
- 2. 对高价值决策类问题必须在计划前澄清,例如:是否使用 monorepo、前后端如何拆分、采用哪个框架与测试工具。
42
- 3. 生成高质量 \`AGENTS.md\`(须满足下方质量标准,不满足则重新优化直至满足)。
43
- 4. 继续执行 plan 创建初始计划。
44
- - 旧项目:
45
- 1. 若不存在 \`AGENTS.md\`:优先通过代码与配置读取收集信息;仅对无法可靠判断的内容提问后生成。
46
- 2. 若已存在 \`AGENTS.md\`:按质量标准评估,不足时增补优化。
47
- 3. 默认不创建计划(除非用户明确要求)。
48
-
49
- 3. **输出反馈**:向用户报告项目类型判定结果、AGENTS.md 处理结果、是否需要后续计划。
50
-
51
- ## 高质量 AGENTS.md 标准
52
-
53
- - 常用命令与约束前置,降低代理执行歧义。
54
- - 明确列出目录结构(至少到第二层)。
55
- - 明确标注技术栈及版本。
56
- - 明确代码风格约束(命名规范、格式化工具、lint 配置)。
57
- - 内容精简,无冗余段落或模板化填充。
58
- - 大型单体仓库按子包拆分维护本地 \`AGENTS.md\`。
59
- `
60
- }
61
-
62
- function renderPlan(): string {
63
- return `# plan
64
-
65
- 创建新的执行计划,写入 \`.agent-context/{scope}/plan-{number}/plan.md\`。按复杂度可拆分为多个计划,维护「单当前计划 + preparing 队列」结构。
66
-
67
- 必须附带计划描述。
68
-
69
- ## 前置检查
70
-
71
- - 运行 \`agent-context validate\`,不通过则中止并报告错误。
72
- - 描述为空 → 拒绝执行。
73
- - 存在未归档的已执行当前计划 → 判断新需求与当前计划的关联性:
74
- - 相关联或用户本意是修补 → 拒绝执行,提示改用 patch。
75
- - 完全无关 → 拒绝执行,提示先运行 \`agent-context done\` 归档后再创建新计划。
76
- - 存在多个当前计划 → 拒绝执行,提示恢复单活跃状态。
77
-
78
- ## 执行步骤
79
-
80
- 1. **需求澄清**(存在以下任一歧义时必须提问,否则跳到步骤 2):
81
- - 范围边界不清:无法判定影响哪些文件或模块。
82
- - 存在显著不同的技术路径需用户决策。
83
- - 验收标准不明确:无法判断何时算"完成"。
84
- 2. 按复杂度决定单计划或多计划拆分。
85
- 3. 多计划拆分时:最小编号进入 \`.agent-context/{scope}/\` 作为当前计划,其余进入 \`.agent-context/{scope}/preparing/\`。单计划直接创建。
86
- 4. 每个计划创建 \`plan.md\`,遵循下方模板。
87
- 5. **自检**(不通过则修改后重新检查):
88
- - 每个步骤可独立执行且有明确完成标准。
89
- - 不存在过度拆分或拆分不足。
90
- - 影响范围可预估。
91
-
92
- ## plan.md 模板
93
-
94
- \`\`\`markdown
95
- # {计划名称}
96
-
97
- > 状态: 未执行
98
-
99
- ## 目标
100
-
101
- {明确的目标描述}
102
-
103
- ## 内容
104
-
105
- {详细的实施步骤}
106
-
107
- ## 影响范围
108
-
109
- ## 历史补丁
110
- \`\`\`
111
-
112
- - 状态行唯一,仅允许 \`未执行\` 或 \`已执行\`。
113
- - \`## 目标\` 与 \`## 内容\` 不可为空。
114
- - \`## 影响范围\` 与 \`## 历史补丁\` 创建时留空,后续由 implement 和 patch 写入。
115
- `
116
- }
117
-
118
- function renderReplan(): string {
119
- return `# replan
120
-
121
- 重新规划已有的未实施计划,保持「单当前计划 + preparing 队列」结构不变。
122
-
123
- 必须附带重规划描述。
124
-
125
- ## 前置检查
126
-
127
- - 运行 \`agent-context validate\`,不通过则中止并报告错误。
128
- - 描述为空 → 拒绝执行。
129
- - 无未实施计划 → 拒绝执行,提示使用 plan 创建。
130
- - 存在多个当前计划 → 拒绝执行,提示恢复单活跃状态。
131
- - 目标计划编号不存在 → 拒绝执行,列出可选编号。
132
- - 目标计划已执行 → 拒绝执行,提示使用 patch。
133
-
134
- ## 作用域
135
-
136
- - 默认作用域:\`.agent-context/{scope}/preparing/\` 中全部未实施计划。
137
- - 可通过描述指定仅重规划部分计划(如"重规划 plan-3 和 plan-5")。
138
- - 当前计划为 \`已执行\` → 禁止重写,仅允许重规划 \`{scope}/preparing/\` 队列。
139
- - 当前计划为 \`未执行\` 且用户明确要求 → 可纳入重规划范围。
140
-
141
- ## 执行步骤
142
-
143
- 1. 解析描述,确定重规划目标范围。
144
- 2. 读取目标计划 \`plan.md\`,理解现有意图。
145
- 3. 生成新的拆分方案,保持「单当前计划 + 若干 preparing 计划」结构。
146
- 4. 新增计划编号:全局 max(N)+1 递增分配;未改动计划保持原编号。
147
- 5. 更新目录结构,确保每个新计划的 \`plan.md\` 遵循标准模板。
148
- `
149
- }
150
-
151
- function renderImplement(): string {
152
- return `# implement
153
-
154
- 实施当前计划 \`.agent-context/{scope}/plan-{number}/plan.md\` 中的全部步骤,通过验证循环后将状态更新为「已执行」。
155
-
156
- 不接受额外描述。
157
-
158
- ## 前置检查
159
-
160
- - 运行 \`agent-context validate\`,不通过则中止并报告错误。
161
- - 带描述 → 拒绝执行。
162
- - 当前计划不存在 → 拒绝执行,提示先创建计划。
163
- - 当前计划状态为 \`已执行\` → 拒绝执行,提示使用 patch 修补或运行 \`agent-context done\` 归档。
164
- - \`## 目标\` 或 \`## 内容\` 为空 → 拒绝执行,提示补充。
165
- - 存在多个当前计划 → 拒绝执行,提示恢复单活跃状态。
166
- - 仅操作当前计划,不直接操作 \`preparing/\` 中的计划。
167
- - 遇到阻塞问题应向用户报告,不可静默跳过。
168
-
169
- ## 执行步骤
170
-
171
- 1. **读取计划**:读取当前 \`plan.md\`,理解 \`## 目标\` 与 \`## 内容\`。
172
- 2. **实施变更**:依据 \`## 内容\` 的步骤逐项实施。
173
- 3. **验证循环(WHILE 循环检查)**:
174
- - **3.1 检查对照**:对照 \`## 内容\`,确保每个步骤均已实施完毕,无遗漏。
175
- - **3.2 运行验证**:
176
- - **IF** (编码任务) **THEN**:必须运行代码检查(Lint/Typecheck)与相关测试命令。
177
- - **ELSE IF** (非编码任务,如纯文档修改或项目规划) **THEN**:无需运行外部命令,仅凭逻辑和视觉排版审阅是否符合验收标准。
178
- - **3.3 结果判断**:
179
- - **IF** (存在未通过的验证报错、未完成项或遗漏项) **THEN**:修复发现的问题,然后 **GOTO 3.1**(重新检查)。
180
- - **ELSE IF** (验证全部通过 或 非编码任务验收合格) **THEN**:退出验证循环,即 **GOTO 4** 继续执行。
181
- 4. **更新状态**:将 \`plan.md\` 的状态行修改为 \`> 状态: 已执行\`。
182
- 5. **记录范围**:更新 \`## 影响范围\`,详细记录本次变动的具体文件路径。\`.agent-context/\` 目录下的文件不计入影响范围。
183
- `
184
- }
185
-
186
- function renderPatch(): string {
187
- return `# patch
188
-
189
- 基于当前已执行计划创建增量补丁,修复问题或追加变更。
190
-
191
- 必须附带补丁描述。
192
-
193
- ## 前置检查
194
-
195
- - 运行 \`agent-context validate\`,不通过则中止并报告错误。
196
- - 描述为空 → 拒绝执行。
197
- - 当前计划不存在 → 拒绝执行,提示先创建计划。
198
- - 当前计划状态为 \`未执行\` → 拒绝执行,提示先实施。
199
- - 存在多个当前计划 → 拒绝执行,提示恢复单活跃状态。
200
- - 补丁需求与当前计划完全无关 → 拒绝执行,提示先运行 \`agent-context done\` 归档后再创建新计划。
201
- - 补丁不改变计划状态,完成后保持 \`已执行\`。
202
-
203
- ## 执行步骤
204
-
205
- 1. 阅读 \`plan.md\` 与已有 \`patch-{number}.md\`,了解上下文与历史,避免重复修复。
206
- 2. 根据描述执行补丁所需的代码变更。
207
- 3. 完成验证:
208
- - **IF** (编码任务) **THEN**:运行相关测试,以及必要的 Lint/Typecheck。
209
- - **ELSE IF** (非编码任务,如纯文档修改) **THEN**:仅凭逻辑与排版审阅确认验收通过。
210
- 4. 创建 \`patch-{number}.md\`(编号:扫描当前计划目录已有补丁取 max+1),遵循下方模板。
211
- 5. 回写 \`plan.md\`:
212
- - \`## 历史补丁\`:追加 \`- patch-{number}: {补丁名称}\`,按编号去重。
213
- - \`## 影响范围\`:合并本次变更路径,按路径去重。\`.agent-context/\` 目录下的文件不计入影响范围。
214
-
215
- ## patch.md 模板
216
-
217
- \`\`\`markdown
218
- # {补丁名称}
219
-
220
- ## 补丁内容
221
-
222
- {修改了什么、为什么修改}
223
-
224
- ## 影响范围
225
-
226
- - 新增文件: \`/path/to/file\`
227
- - 修改文件: \`/path/to/file\`
228
- - 删除文件: \`/path/to/file\`
229
- \`\`\`
230
- `
231
- }
232
-
233
- function renderRush(): string {
234
- return `# rush
235
-
236
- 快速通道:创建计划并立即实施,适合范围明确、无需多轮规划的任务。
237
-
238
- 必须附带任务描述。
239
-
240
- ## 前置检查
241
-
242
- - 运行 \`agent-context validate\`,不通过则中止并报告错误。
243
- - 描述为空 → 拒绝执行。
244
- - 描述仍存在范围边界、技术路径或验收标准歧义 → 拒绝执行,提示改用 \`plan\`。
245
- - 存在未归档的已执行当前计划 → 判断新需求与当前计划的关联性:
246
- - 相关联或用户本意是修补 → 拒绝执行,提示改用 patch。
247
- - 完全无关 → 拒绝执行,提示先运行 \`agent-context done\` 归档后再创建新计划。
248
- - 存在未实施的当前计划 → 拒绝执行,提示先 implement 或 replan。
249
-
250
- ## 执行步骤
251
-
252
- > rush = plan + implement 的连续执行,下方仅列出差异点,未提及的步骤按原协议执行。
253
-
254
- ### 阶段一:plan(差异)
255
-
256
- - 仅在描述本身已足够明确时跳过「需求澄清」步骤;否则不得继续 rush。
257
- - 强制单计划,不拆分,不进入 preparing 队列。
258
- - 完成 plan 后**不等待用户确认**,直接进入阶段二。
259
-
260
- ### 阶段二:implement
261
-
262
- - 按 \`implement\` 协议**完整执行**(读取计划 → 实施变更 → 验证循环 → 更新状态与影响范围),无任何裁剪。
263
- `
264
- }