@winspan/claude-forge 0.5.3 → 0.6.1

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.
Files changed (206) hide show
  1. package/README.md +6 -6
  2. package/dist/ai-gateway/index.d.ts +33 -0
  3. package/dist/ai-gateway/index.d.ts.map +1 -0
  4. package/dist/ai-gateway/index.js +71 -0
  5. package/dist/ai-gateway/index.js.map +1 -0
  6. package/dist/ai-gateway/model-selector.d.ts +12 -0
  7. package/dist/ai-gateway/model-selector.d.ts.map +1 -0
  8. package/dist/ai-gateway/model-selector.js +43 -0
  9. package/dist/ai-gateway/model-selector.js.map +1 -0
  10. package/dist/ai-gateway/rate-limiter.d.ts +20 -0
  11. package/dist/ai-gateway/rate-limiter.d.ts.map +1 -0
  12. package/dist/ai-gateway/rate-limiter.js +45 -0
  13. package/dist/ai-gateway/rate-limiter.js.map +1 -0
  14. package/dist/ai-gateway/response-cache.d.ts +17 -0
  15. package/dist/ai-gateway/response-cache.d.ts.map +1 -0
  16. package/dist/ai-gateway/response-cache.js +44 -0
  17. package/dist/ai-gateway/response-cache.js.map +1 -0
  18. package/dist/ai-provider/types.d.ts +2 -0
  19. package/dist/ai-provider/types.d.ts.map +1 -1
  20. package/dist/ai-provider/types.js.map +1 -1
  21. package/dist/autopilot/intent-engine.d.ts +4 -2
  22. package/dist/autopilot/intent-engine.d.ts.map +1 -1
  23. package/dist/autopilot/intent-engine.js +18 -5
  24. package/dist/autopilot/intent-engine.js.map +1 -1
  25. package/dist/claudemd/index.js +2 -2
  26. package/dist/claudemd/index.js.map +1 -1
  27. package/dist/claudemd/prompts.d.ts.map +1 -1
  28. package/dist/claudemd/prompts.js +2 -1
  29. package/dist/claudemd/prompts.js.map +1 -1
  30. package/dist/cli/commands/logs.d.ts.map +1 -1
  31. package/dist/cli/commands/logs.js +2 -4
  32. package/dist/cli/commands/logs.js.map +1 -1
  33. package/dist/config/defaults.d.ts.map +1 -1
  34. package/dist/config/defaults.js +7 -0
  35. package/dist/config/defaults.js.map +1 -1
  36. package/dist/config/index.d.ts.map +1 -1
  37. package/dist/config/index.js +3 -0
  38. package/dist/config/index.js.map +1 -1
  39. package/dist/config/schema.d.ts +7 -0
  40. package/dist/config/schema.d.ts.map +1 -1
  41. package/dist/config/schema.js +18 -0
  42. package/dist/config/schema.js.map +1 -1
  43. package/dist/daemon/handlers/context-builder.d.ts +55 -0
  44. package/dist/daemon/handlers/context-builder.d.ts.map +1 -0
  45. package/dist/daemon/handlers/context-builder.js +429 -0
  46. package/dist/daemon/handlers/context-builder.js.map +1 -0
  47. package/dist/daemon/handlers/orchestration-context.d.ts +37 -0
  48. package/dist/daemon/handlers/orchestration-context.d.ts.map +1 -0
  49. package/dist/daemon/handlers/orchestration-context.js +2 -0
  50. package/dist/daemon/handlers/orchestration-context.js.map +1 -0
  51. package/dist/daemon/handlers/session-cleanup.js +5 -5
  52. package/dist/daemon/handlers/session-cleanup.js.map +1 -1
  53. package/dist/daemon/handlers/stages/01-failure-signal.d.ts +8 -0
  54. package/dist/daemon/handlers/stages/01-failure-signal.d.ts.map +1 -0
  55. package/dist/daemon/handlers/stages/01-failure-signal.js +39 -0
  56. package/dist/daemon/handlers/stages/01-failure-signal.js.map +1 -0
  57. package/dist/daemon/handlers/stages/02-active-intervention.d.ts +8 -0
  58. package/dist/daemon/handlers/stages/02-active-intervention.d.ts.map +1 -0
  59. package/dist/daemon/handlers/stages/02-active-intervention.js +27 -0
  60. package/dist/daemon/handlers/stages/02-active-intervention.js.map +1 -0
  61. package/dist/daemon/handlers/stages/03-init-prompt.d.ts +8 -0
  62. package/dist/daemon/handlers/stages/03-init-prompt.d.ts.map +1 -0
  63. package/dist/daemon/handlers/stages/03-init-prompt.js +24 -0
  64. package/dist/daemon/handlers/stages/03-init-prompt.js.map +1 -0
  65. package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts +8 -0
  66. package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts.map +1 -0
  67. package/dist/daemon/handlers/stages/04-skill-suggestions.js +23 -0
  68. package/dist/daemon/handlers/stages/04-skill-suggestions.js.map +1 -0
  69. package/dist/daemon/handlers/stages/05-conv-config.d.ts +10 -0
  70. package/dist/daemon/handlers/stages/05-conv-config.d.ts.map +1 -0
  71. package/dist/daemon/handlers/stages/05-conv-config.js +23 -0
  72. package/dist/daemon/handlers/stages/05-conv-config.js.map +1 -0
  73. package/dist/daemon/handlers/stages/06-engine-check.d.ts +8 -0
  74. package/dist/daemon/handlers/stages/06-engine-check.d.ts.map +1 -0
  75. package/dist/daemon/handlers/stages/06-engine-check.js +13 -0
  76. package/dist/daemon/handlers/stages/06-engine-check.js.map +1 -0
  77. package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts +9 -0
  78. package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts.map +1 -0
  79. package/dist/daemon/handlers/stages/07-pipeline-reply.js +44 -0
  80. package/dist/daemon/handlers/stages/07-pipeline-reply.js.map +1 -0
  81. package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts +9 -0
  82. package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts.map +1 -0
  83. package/dist/daemon/handlers/stages/08-esc-interrupt.js +52 -0
  84. package/dist/daemon/handlers/stages/08-esc-interrupt.js.map +1 -0
  85. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts +8 -0
  86. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts.map +1 -0
  87. package/dist/daemon/handlers/stages/09-pipeline-active.js +20 -0
  88. package/dist/daemon/handlers/stages/09-pipeline-active.js.map +1 -0
  89. package/dist/daemon/handlers/stages/10-cooldown.d.ts +9 -0
  90. package/dist/daemon/handlers/stages/10-cooldown.d.ts.map +1 -0
  91. package/dist/daemon/handlers/stages/10-cooldown.js +44 -0
  92. package/dist/daemon/handlers/stages/10-cooldown.js.map +1 -0
  93. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts +9 -0
  94. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts.map +1 -0
  95. package/dist/daemon/handlers/stages/11-intent-analysis.js +39 -0
  96. package/dist/daemon/handlers/stages/11-intent-analysis.js.map +1 -0
  97. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts +8 -0
  98. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts.map +1 -0
  99. package/dist/daemon/handlers/stages/12-strategy-advice.js +20 -0
  100. package/dist/daemon/handlers/stages/12-strategy-advice.js.map +1 -0
  101. package/dist/daemon/handlers/stages/13-template-route.d.ts +8 -0
  102. package/dist/daemon/handlers/stages/13-template-route.d.ts.map +1 -0
  103. package/dist/daemon/handlers/stages/13-template-route.js +49 -0
  104. package/dist/daemon/handlers/stages/13-template-route.js.map +1 -0
  105. package/dist/daemon/handlers/stages/14-plan-resume.d.ts +8 -0
  106. package/dist/daemon/handlers/stages/14-plan-resume.d.ts.map +1 -0
  107. package/dist/daemon/handlers/stages/14-plan-resume.js +51 -0
  108. package/dist/daemon/handlers/stages/14-plan-resume.js.map +1 -0
  109. package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts +8 -0
  110. package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts.map +1 -0
  111. package/dist/daemon/handlers/stages/15-plan-enforcement.js +41 -0
  112. package/dist/daemon/handlers/stages/15-plan-enforcement.js.map +1 -0
  113. package/dist/daemon/handlers/stages/16-intervention-level.d.ts +8 -0
  114. package/dist/daemon/handlers/stages/16-intervention-level.d.ts.map +1 -0
  115. package/dist/daemon/handlers/stages/16-intervention-level.js +24 -0
  116. package/dist/daemon/handlers/stages/16-intervention-level.js.map +1 -0
  117. package/dist/daemon/handlers/stages/17-simple-task.d.ts +8 -0
  118. package/dist/daemon/handlers/stages/17-simple-task.d.ts.map +1 -0
  119. package/dist/daemon/handlers/stages/17-simple-task.js +47 -0
  120. package/dist/daemon/handlers/stages/17-simple-task.js.map +1 -0
  121. package/dist/daemon/handlers/stages/18-complex-task.d.ts +11 -0
  122. package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -0
  123. package/dist/daemon/handlers/stages/18-complex-task.js +84 -0
  124. package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -0
  125. package/dist/daemon/handlers/stages/19-moderate-task.d.ts +8 -0
  126. package/dist/daemon/handlers/stages/19-moderate-task.d.ts.map +1 -0
  127. package/dist/daemon/handlers/stages/19-moderate-task.js +62 -0
  128. package/dist/daemon/handlers/stages/19-moderate-task.js.map +1 -0
  129. package/dist/daemon/handlers/stages/stage-interface.d.ts +26 -0
  130. package/dist/daemon/handlers/stages/stage-interface.d.ts.map +1 -0
  131. package/dist/daemon/handlers/stages/stage-interface.js +2 -0
  132. package/dist/daemon/handlers/stages/stage-interface.js.map +1 -0
  133. package/dist/daemon/handlers/stop-handler.js +2 -2
  134. package/dist/daemon/handlers/stop-handler.js.map +1 -1
  135. package/dist/daemon/handlers/user-prompt-handler.d.ts +1 -115
  136. package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
  137. package/dist/daemon/handlers/user-prompt-handler.js +76 -1085
  138. package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
  139. package/dist/daemon/index.d.ts.map +1 -1
  140. package/dist/daemon/index.js +7 -5
  141. package/dist/daemon/index.js.map +1 -1
  142. package/dist/pipeline/analyzer.js +1 -1
  143. package/dist/pipeline/analyzer.js.map +1 -1
  144. package/dist/retrospective/pattern-learner.d.ts.map +1 -1
  145. package/dist/retrospective/pattern-learner.js +7 -2
  146. package/dist/retrospective/pattern-learner.js.map +1 -1
  147. package/dist/storage/repositories/api-usage-repository.d.ts +28 -0
  148. package/dist/storage/repositories/api-usage-repository.d.ts.map +1 -0
  149. package/dist/storage/repositories/api-usage-repository.js +59 -0
  150. package/dist/storage/repositories/api-usage-repository.js.map +1 -0
  151. package/dist/storage/repositories/base-repository.d.ts +6 -0
  152. package/dist/storage/repositories/base-repository.d.ts.map +1 -0
  153. package/dist/storage/repositories/base-repository.js +7 -0
  154. package/dist/storage/repositories/base-repository.js.map +1 -0
  155. package/dist/storage/repositories/distill-repository.d.ts +36 -0
  156. package/dist/storage/repositories/distill-repository.d.ts.map +1 -0
  157. package/dist/storage/repositories/distill-repository.js +85 -0
  158. package/dist/storage/repositories/distill-repository.js.map +1 -0
  159. package/dist/storage/repositories/event-repository.d.ts +14 -0
  160. package/dist/storage/repositories/event-repository.d.ts.map +1 -0
  161. package/dist/storage/repositories/event-repository.js +171 -0
  162. package/dist/storage/repositories/event-repository.js.map +1 -0
  163. package/dist/storage/repositories/failure-repository.d.ts +22 -0
  164. package/dist/storage/repositories/failure-repository.d.ts.map +1 -0
  165. package/dist/storage/repositories/failure-repository.js +26 -0
  166. package/dist/storage/repositories/failure-repository.js.map +1 -0
  167. package/dist/storage/repositories/intent-rule-repository.d.ts +20 -0
  168. package/dist/storage/repositories/intent-rule-repository.d.ts.map +1 -0
  169. package/dist/storage/repositories/intent-rule-repository.js +38 -0
  170. package/dist/storage/repositories/intent-rule-repository.js.map +1 -0
  171. package/dist/storage/repositories/knowledge-repository.d.ts +46 -0
  172. package/dist/storage/repositories/knowledge-repository.d.ts.map +1 -0
  173. package/dist/storage/repositories/knowledge-repository.js +84 -0
  174. package/dist/storage/repositories/knowledge-repository.js.map +1 -0
  175. package/dist/storage/repositories/latency-repository.d.ts +21 -0
  176. package/dist/storage/repositories/latency-repository.d.ts.map +1 -0
  177. package/dist/storage/repositories/latency-repository.js +42 -0
  178. package/dist/storage/repositories/latency-repository.js.map +1 -0
  179. package/dist/storage/repositories/maintenance-repository.d.ts +18 -0
  180. package/dist/storage/repositories/maintenance-repository.d.ts.map +1 -0
  181. package/dist/storage/repositories/maintenance-repository.js +61 -0
  182. package/dist/storage/repositories/maintenance-repository.js.map +1 -0
  183. package/dist/storage/repositories/satisfaction-repository.d.ts +21 -0
  184. package/dist/storage/repositories/satisfaction-repository.d.ts.map +1 -0
  185. package/dist/storage/repositories/satisfaction-repository.js +26 -0
  186. package/dist/storage/repositories/satisfaction-repository.js.map +1 -0
  187. package/dist/storage/repositories/session-repository.d.ts +16 -0
  188. package/dist/storage/repositories/session-repository.d.ts.map +1 -0
  189. package/dist/storage/repositories/session-repository.js +69 -0
  190. package/dist/storage/repositories/session-repository.js.map +1 -0
  191. package/dist/storage/repositories/task-repository.d.ts +82 -0
  192. package/dist/storage/repositories/task-repository.d.ts.map +1 -0
  193. package/dist/storage/repositories/task-repository.js +198 -0
  194. package/dist/storage/repositories/task-repository.js.map +1 -0
  195. package/dist/storage/sqlite.d.ts +25 -0
  196. package/dist/storage/sqlite.d.ts.map +1 -1
  197. package/dist/storage/sqlite.js +27 -0
  198. package/dist/storage/sqlite.js.map +1 -1
  199. package/dist/utils/claude-api.d.ts.map +1 -1
  200. package/dist/utils/claude-api.js +3 -1
  201. package/dist/utils/claude-api.js.map +1 -1
  202. package/dist/utils/logger.d.ts +7 -0
  203. package/dist/utils/logger.d.ts.map +1 -1
  204. package/dist/utils/logger.js +22 -0
  205. package/dist/utils/logger.js.map +1 -1
  206. package/package.json +1 -1
package/README.md CHANGED
@@ -6,11 +6,11 @@ SDLC 智能编排引擎 — 透明旁听 Claude Code 对话,让 Claude 越用
6
6
 
7
7
  ## 核心功能
8
8
 
9
- - **意图识别**:自动分析每条指令的复杂度,决定走直接执行还是多阶段编排
10
- - **Pattern 工作流**:AI 语义匹配用户意图,按预定义多阶段 Pattern 注入结构化执行指令;支持项目级 Pattern 持久化和 Thompson Sampling 多臂老虎机策略选择(✅ 2026-04-16)
9
+ - **意图识别**:自动分析每条指令的复杂度,决定走直接执行还是多阶段编排;支持离线规则库(每 20 次 Stop 自动提炼)和负向重启回溯修正(✅ 2026-04-17)
10
+ - **Pattern 工作流**:AI 语义匹配用户意图,按预定义多阶段 Pattern 注入结构化执行指令;支持项目级 Pattern 持久化和 Thompson Sampling 多臂老虎机策略选择(✅ 2026-04-16);统一编排模板系统(TemplateRegistry + TemplateRouter)替代 PatternEngine,内置 builtin-feature/bugfix/refactor 三个模板,PatternEngine 标记废弃(✅ 2026-04-17);UserPromptHandler 重构为 19 个 Stage 流水线(OrchestrationPipeline),handle() 精简为调度循环,各 Stage 独立可测试(✅ 2026-04-17);Storage 层重构为 Repository 模式(12 个子 Repository,向后兼容)(✅ 2026-04-17);AI Gateway 统一入口(全局限流 maxConcurrent=3/minInterval=200ms + 内存缓存 TTL=5min + 分层模型策略 Haiku/Sonnet/Opus label 驱动)(✅ 2026-04-17);UserPromptHandler 单元测试补全(null 组合/冷却/pipeline 回复,8/8 通过)(✅ 2026-04-17);日志系统升级(按日期轮转 events-YYYY-MM-DD.jsonl,自动清理 7 天前旧日志,cf logs 支持实时跟踪和多维度过滤)(✅ 2026-04-17
11
11
  - **技能编排**:根据意图自动匹配并注入高质量技能(TDD、调试、重构、代码审查等)
12
12
  - **多 AI 提供商**:支持 Claude、OpenAI、Ollama 等多种 AI 提供商,可灵活切换
13
- - **Pipeline 编排**:复杂任务 AI 智能评估复杂度(simple/moderate/complex)和任务类型(bugfix/feature/refactor/performance),动态规划阶段列表(3-6 阶段),每阶段完成时自动生成结构化产物文档;AI 失败时 Forge 管理项目保守判定为需要 Pipeline;支持 profile 阶段(性能分析)、复杂度自适应推进阈值、Pipeline 强制执行;SQLite Schema v7 新增 complexity/planned_phases/phase_artifacts/reasoning 字段;ArtifactManager 统一产物目录管理(docs/YYYY-MM-DD/);Write/Edit 无 Pipeline 时硬阻断(✅ 2026-04-16);simple 路径 Forge 管理项目有代码改动时提升为 moderate + requiresPipeline(✅ 2026-04-16);阶段推进使用 plannedPhases 动态顺序,活动阈值按复杂度调整,profile 阶段完整支持(✅ 2026-04-17);AI 智能编排完整实现(analyzer/store/phase-manager/artifact-generator 全部适配 v7 schema)(✅ 2026-04-17);Daemon 事件缓冲区提升至 512KB(✅ 2026-04-17);Thompson Sampling bug 修复(✅ 2026-04-17);OpenAI/Ollama Token 追踪补全(✅ 2026-04-17);cf query stats 增强(成本汇总/满意度趋势)(✅ 2026-04-17);计划文档同步(Plan Mode 产物自动同步到 docs/YYYY-MM-DD/架构设计/)(✅ 2026-04-17);阶段产物生成支持中文文件名和阶段子目录(✅ 2026-04-17);BaseProvider 接口改造(doComplete 返回 usage 对象,支持 token 追踪和成本计算)(✅ 2026-04-17);Storage 方法扩展(getTotalCost/getCostByModel/getRecentSessions)(✅ 2026-04-17)
13
+ - **Pipeline 编排**:复杂任务 AI 智能评估复杂度(simple/moderate/complex)和任务类型(bugfix/feature/refactor/performance),动态规划阶段列表(3-6 阶段),每阶段完成时自动生成结构化产物文档;AI 失败时 Forge 管理项目保守判定为需要 Pipeline;支持 profile 阶段(性能分析)、复杂度自适应推进阈值、Pipeline 强制执行;SQLite Schema v7 新增 complexity/planned_phases/phase_artifacts/reasoning 字段;ArtifactManager 统一产物目录管理(docs/YYYY-MM-DD/);Write/Edit 无 Pipeline 时硬阻断(✅ 2026-04-16);simple 路径 Forge 管理项目有代码改动时提升为 moderate + requiresPipeline(✅ 2026-04-16);阶段推进使用 plannedPhases 动态顺序,活动阈值按复杂度调整,profile 阶段完整支持(✅ 2026-04-17);AI 智能编排完整实现(analyzer/store/phase-manager/artifact-generator 全部适配 v7 schema)(✅ 2026-04-17);Daemon 事件缓冲区提升至 512KB(✅ 2026-04-17);Thompson Sampling bug 修复(✅ 2026-04-17);OpenAI/Ollama Token 追踪补全(✅ 2026-04-17);cf query stats 增强(成本汇总/满意度趋势)(✅ 2026-04-17);计划文档同步(Plan Mode 产物自动同步到 docs/YYYY-MM-DD/架构设计/)(✅ 2026-04-17);阶段产物生成支持中文文件名和阶段子目录(✅ 2026-04-17);BaseProvider 接口改造(doComplete 返回 usage 对象,支持 token 追踪和成本计算)(✅ 2026-04-17);Storage 方法扩展(getTotalCost/getCostByModel/getRecentSessions)(✅ 2026-04-17);SQLite Schema v9 新增 daemon_state 持久化表(✅ 2026-04-17);Storage 层重构为 Repository 模式(EventRepository/SessionRepository/TaskRepository 等 12 个子 Repository,向后兼容)(✅ 2026-04-17);AI Gateway 统一入口(全局限流 maxConcurrent=3/minInterval=200ms + 内存缓存 TTL=5min + 分层模型策略 Haiku/Sonnet/Opus)(✅ 2026-04-17);端到端延迟追踪(latency_traces 表,cf logs latency 查看 P50/P95/max)(✅ 2026-04-17
14
14
  - **阶段产物生成**:Pipeline 每个阶段完成时,AI 自动生成对应文档(需求分析/PRD、架构设计/详细设计、性能分析报告、代码改动说明、测试报告、审查报告),存放在 `{project}/docs/YYYY-MM-DD/阶段名/`(统一使用项目 docs/ 目录);产物文件名自动加时间戳前缀避免冲突;支持按复杂度和任务类型动态调整产物清单;优先使用 AI 规划的 phaseArtifacts,降级到静态映射;中文文件名和阶段子目录(✅ 2026-04-17);幂等性保证(已存在则跳过)(✅ 2026-04-17);阶段产物生成失败时阻断阶段推进(✅ 2026-04-17);支持最多 2 次重试,超时延长至 90s(✅ 2026-04-17)
15
15
  - **质量门禁**:Pipeline 每阶段完成时强制触发 AI 审查,阶段质量不过则阻止推进;Stop 时有未解决 fail 项则阻断会话结束;支持 Convention must 规范注入;支持质量问题持久化和抑制规则(✅ 2026-04-16)
16
16
  - **任务复盘分析**:每次会话结束后自动分析执行质量,检测失败信号(用户不满意/迭代请求),生成 `retrospective.md` 报告,并将数据写入 SQLite 供后续模式学习;支持满意度评分和学习闭环(✅ 2026-04-16)
@@ -145,8 +145,8 @@ Claude 读取 additionalContext,按指令执行
145
145
  | `~/.claude-forge/daemon.log` | 守护进程日志 |
146
146
  | `~/.claude-forge/events.jsonl` | 结构化事件日志(JSONL,按项目分类) |
147
147
  | `~/.claude-forge/orchestration-config.json` | 技能编排关键词映射 |
148
- | `~/.claude-forge/patterns/` | Pattern 工作流定义(YAML) |
149
- | `{project}/.claude-forge/decisions.md` | 项目决策日志(含树索引 decisions.tree.json |
148
+ | `~/.claude-forge/patterns/` | Pattern 工作流定义(YAML,自动被 TemplateRegistry 加载转换为 PipelineTemplate) |
149
+ | `{project}/.claude-forge/decisions.md` | 项目决策日志(含树索引 decisions.tree.json,支持 AI 推理检索) |
150
150
  | `{project}/.claude-forge/timeline.md` | 项目时间线 |
151
151
  | `{project}/.claude-forge/retrospective.md` | 任务复盘日志(每次 Stop 自动追加) |
152
152
  | `{project}/docs/YYYY-MM-DD/阶段名/` | 阶段产物目录(Pipeline 各阶段文档,按日期+阶段二级分组,统一存放在项目 docs/ 下) |
@@ -275,7 +275,7 @@ cf logs --verbose # 查看所有事件(含 PreToolUse/Post
275
275
  cf logs -p <name> # 按项目名过滤
276
276
  cf logs -n <N> # 只看最后 N 条
277
277
  cf logs -f # 实时跟踪(follow)
278
- cf logs --daemon # 只看守护进程日志
278
+ cf logs latency [--engine <name>] [--type <type>] [--days <n>] # 查看各引擎端到端延迟统计(P50/P95/max)
279
279
  cf logs --projects # 列出所有有日志的项目名
280
280
  ```
281
281
 
@@ -0,0 +1,33 @@
1
+ import type { AIProvider, CompletionOptions } from '../ai-provider/types.js';
2
+ export interface GatewayOptions {
3
+ maxConcurrent?: number;
4
+ minIntervalMs?: number;
5
+ cacheTtlMs?: number;
6
+ /** 不缓存的 label 列表(如蒸馏、精炼等每次都需要新结果的调用) */
7
+ noCacheLabels?: string[];
8
+ /** 启用分层模型策略(Haiku/Sonnet/Opus) */
9
+ enableModelTiering?: boolean;
10
+ /** 各分层对应的模型 ID(来自配置文件) */
11
+ models?: {
12
+ haiku?: string;
13
+ sonnet?: string;
14
+ opus?: string;
15
+ };
16
+ }
17
+ /**
18
+ * AI Gateway — 包装 AIProvider,提供全局限流 + 内存缓存 + 统一日志
19
+ * 实现 AIProvider 接口,可透明替换现有调用
20
+ */
21
+ export declare class AIGateway implements AIProvider {
22
+ private inner;
23
+ private rateLimiter;
24
+ private cache;
25
+ private noCacheLabels;
26
+ private modelSelector;
27
+ private cacheTtlMs;
28
+ constructor(inner: AIProvider, opts?: GatewayOptions);
29
+ complete(prompt: string, label?: string, options?: CompletionOptions): Promise<string>;
30
+ getStats(): Readonly<import("../ai-provider/types.js").ApiCallStats>;
31
+ formatStats(): string;
32
+ }
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM7E,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0BAA0B;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7D;AAOD;;;GAGG;AACH,qBAAa,SAAU,YAAW,UAAU;IAO9B,OAAO,CAAC,KAAK;IANzB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAS;gBAEP,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,cAAmB;IAW1D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B5F,QAAQ;IAIR,WAAW,IAAI,MAAM;CAMtB"}
@@ -0,0 +1,71 @@
1
+ import { RateLimiter } from './rate-limiter.js';
2
+ import { ResponseCache } from './response-cache.js';
3
+ import { ModelSelector } from './model-selector.js';
4
+ import { logger } from '../utils/logger.js';
5
+ const DEFAULT_NO_CACHE_LABELS = new Set([
6
+ '蒸馏', 'CLAUDE.md精炼', '文档同步', '技能演化', '模式学习',
7
+ '阶段产物生成', '复盘分析', '规则提炼',
8
+ ]);
9
+ /**
10
+ * AI Gateway — 包装 AIProvider,提供全局限流 + 内存缓存 + 统一日志
11
+ * 实现 AIProvider 接口,可透明替换现有调用
12
+ */
13
+ export class AIGateway {
14
+ inner;
15
+ rateLimiter;
16
+ cache;
17
+ noCacheLabels;
18
+ modelSelector;
19
+ cacheTtlMs;
20
+ constructor(inner, opts = {}) {
21
+ this.inner = inner;
22
+ this.rateLimiter = new RateLimiter(opts.maxConcurrent ?? 3, opts.minIntervalMs ?? 200);
23
+ this.cache = new ResponseCache();
24
+ this.cacheTtlMs = opts.cacheTtlMs ?? 300_000;
25
+ this.noCacheLabels = new Set([
26
+ ...DEFAULT_NO_CACHE_LABELS,
27
+ ...(opts.noCacheLabels ?? []),
28
+ ]);
29
+ this.modelSelector = opts.enableModelTiering !== false ? new ModelSelector(opts.models) : null;
30
+ }
31
+ async complete(prompt, label, options) {
32
+ // 可缓存的调用先查缓存
33
+ const cacheable = label ? !this.noCacheLabels.has(label) : false;
34
+ // 先确定模型(用于缓存键)
35
+ const resolvedModel = this.modelSelector ? this.modelSelector.selectModel(label) : options?.model;
36
+ if (cacheable) {
37
+ const cached = this.cache.get(prompt, label, resolvedModel);
38
+ if (cached !== undefined) {
39
+ logger.debug(`[AI Gateway] 缓存命中 label=${label ?? '-'} model=${resolvedModel ?? '-'}`);
40
+ return cached;
41
+ }
42
+ }
43
+ // 限流
44
+ await this.rateLimiter.acquire();
45
+ try {
46
+ // 分层模型策略:根据 label 选择模型,注入 options.model
47
+ const tieredOptions = {
48
+ ...options,
49
+ ...(resolvedModel ? { model: resolvedModel } : {}),
50
+ };
51
+ const result = await this.inner.complete(prompt, label, tieredOptions);
52
+ if (cacheable) {
53
+ this.cache.set(prompt, label, result, this.cacheTtlMs, resolvedModel);
54
+ }
55
+ return result;
56
+ }
57
+ finally {
58
+ this.rateLimiter.release();
59
+ }
60
+ }
61
+ getStats() {
62
+ return this.inner.getStats();
63
+ }
64
+ formatStats() {
65
+ const inner = this.inner.formatStats();
66
+ const hitRate = (this.cache.hitRate * 100).toFixed(1);
67
+ const limiter = this.rateLimiter.stats;
68
+ return `${inner}\n[AI Gateway] 缓存命中率: ${hitRate}% | 缓存条目: ${this.cache.size} | 并发: ${limiter.active}/${3}`;
69
+ }
70
+ }
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai-gateway/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export type ModelTier = 'haiku' | 'sonnet' | 'opus';
2
+ export declare class ModelSelector {
3
+ private tierToModel;
4
+ constructor(models?: {
5
+ haiku?: string;
6
+ sonnet?: string;
7
+ opus?: string;
8
+ });
9
+ selectTier(label?: string): ModelTier;
10
+ selectModel(label?: string): string;
11
+ }
12
+ //# sourceMappingURL=model-selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../src/ai-gateway/model-selector.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AA4BpD,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAA4B;gBAEnC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAQvE,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS;IAKrC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;CAGpC"}
@@ -0,0 +1,43 @@
1
+ /** label → 模型分层映射 */
2
+ const LABEL_TO_TIER = {
3
+ // Haiku(快速/低成本)
4
+ '意图分析': 'haiku',
5
+ '规则匹配': 'haiku',
6
+ '缓存检查': 'haiku',
7
+ '失败信号检测': 'haiku',
8
+ '上下文压缩': 'haiku',
9
+ // Sonnet(默认)
10
+ '阶段产物生成': 'sonnet',
11
+ '蒸馏': 'sonnet',
12
+ '质量门禁': 'sonnet',
13
+ '文档同步': 'sonnet',
14
+ '技能演化': 'sonnet',
15
+ // Opus(复杂推理)
16
+ 'CLAUDE.md精炼': 'opus',
17
+ '架构分析': 'opus',
18
+ '模式学习': 'opus',
19
+ };
20
+ const DEFAULT_TIER_TO_MODEL = {
21
+ haiku: 'claude-haiku-4-5-20251001',
22
+ sonnet: 'claude-sonnet-4-6',
23
+ opus: 'claude-opus-4-6',
24
+ };
25
+ export class ModelSelector {
26
+ tierToModel;
27
+ constructor(models) {
28
+ this.tierToModel = {
29
+ haiku: models?.haiku ?? DEFAULT_TIER_TO_MODEL.haiku,
30
+ sonnet: models?.sonnet ?? DEFAULT_TIER_TO_MODEL.sonnet,
31
+ opus: models?.opus ?? DEFAULT_TIER_TO_MODEL.opus,
32
+ };
33
+ }
34
+ selectTier(label) {
35
+ if (!label)
36
+ return 'sonnet';
37
+ return LABEL_TO_TIER[label] ?? 'sonnet';
38
+ }
39
+ selectModel(label) {
40
+ return this.tierToModel[this.selectTier(label)];
41
+ }
42
+ }
43
+ //# sourceMappingURL=model-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../src/ai-gateway/model-selector.ts"],"names":[],"mappings":"AAEA,qBAAqB;AACrB,MAAM,aAAa,GAA8B;IAC/C,gBAAgB;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,OAAO;IAChB,aAAa;IACb,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,aAAa;IACb,aAAa,EAAE,MAAM;IACrB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,MAAM,qBAAqB,GAA8B;IACvD,KAAK,EAAE,2BAA2B;IAClC,MAAM,EAAE,mBAAmB;IAC3B,IAAI,EAAE,iBAAiB;CACxB,CAAC;AAEF,MAAM,OAAO,aAAa;IAChB,WAAW,CAA4B;IAE/C,YAAY,MAA2D;QACrE,IAAI,CAAC,WAAW,GAAG;YACjB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,qBAAqB,CAAC,KAAK;YACnD,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,qBAAqB,CAAC,MAAM;YACtD,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,qBAAqB,CAAC,IAAI;SACjD,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAc;QACvB,IAAI,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC;QAC5B,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * 全局 AI 调用限流器
3
+ * maxConcurrent=3:最多同时 3 个并发 AI 调用
4
+ * minIntervalMs=200:两次调用之间最小间隔 200ms
5
+ */
6
+ export declare class RateLimiter {
7
+ private maxConcurrent;
8
+ private minIntervalMs;
9
+ private activeCount;
10
+ private queue;
11
+ private lastCallAt;
12
+ constructor(maxConcurrent?: number, minIntervalMs?: number);
13
+ acquire(): Promise<void>;
14
+ release(): void;
15
+ get stats(): {
16
+ active: number;
17
+ queued: number;
18
+ };
19
+ }
20
+ //# sourceMappingURL=rate-limiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/ai-gateway/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,WAAW;IAMpB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,UAAU,CAAK;gBAGb,aAAa,SAAI,EACjB,aAAa,SAAM;IAGvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB9B,OAAO,IAAI,IAAI;IAQf,IAAI,KAAK,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAE9C;CACF"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * 全局 AI 调用限流器
3
+ * maxConcurrent=3:最多同时 3 个并发 AI 调用
4
+ * minIntervalMs=200:两次调用之间最小间隔 200ms
5
+ */
6
+ export class RateLimiter {
7
+ maxConcurrent;
8
+ minIntervalMs;
9
+ activeCount = 0;
10
+ queue = [];
11
+ lastCallAt = 0;
12
+ constructor(maxConcurrent = 3, minIntervalMs = 200) {
13
+ this.maxConcurrent = maxConcurrent;
14
+ this.minIntervalMs = minIntervalMs;
15
+ }
16
+ async acquire() {
17
+ return new Promise((resolve) => {
18
+ const tryAcquire = () => {
19
+ const now = Date.now();
20
+ const sinceLastCall = now - this.lastCallAt;
21
+ if (this.activeCount < this.maxConcurrent && sinceLastCall >= this.minIntervalMs) {
22
+ this.activeCount++;
23
+ this.lastCallAt = now;
24
+ resolve();
25
+ }
26
+ else {
27
+ const delay = Math.max(this.minIntervalMs - sinceLastCall, this.activeCount >= this.maxConcurrent ? 50 : 0);
28
+ setTimeout(tryAcquire, delay);
29
+ }
30
+ };
31
+ tryAcquire();
32
+ });
33
+ }
34
+ release() {
35
+ this.activeCount = Math.max(0, this.activeCount - 1);
36
+ if (this.queue.length > 0) {
37
+ const next = this.queue.shift();
38
+ next?.();
39
+ }
40
+ }
41
+ get stats() {
42
+ return { active: this.activeCount, queued: this.queue.length };
43
+ }
44
+ }
45
+ //# sourceMappingURL=rate-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/ai-gateway/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,WAAW;IAMZ;IACA;IANF,WAAW,GAAG,CAAC,CAAC;IAChB,KAAK,GAAsB,EAAE,CAAC;IAC9B,UAAU,GAAG,CAAC,CAAC;IAEvB,YACU,gBAAgB,CAAC,EACjB,gBAAgB,GAAG;QADnB,kBAAa,GAAb,aAAa,CAAI;QACjB,kBAAa,GAAb,aAAa,CAAM;IAC1B,CAAC;IAEJ,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,MAAM,UAAU,GAAG,GAAG,EAAE;gBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC5C,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,IAAI,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjF,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;oBACtB,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,IAAI,CAAC,aAAa,GAAG,aAAa,EAClC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC;oBACF,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC,CAAC;YACF,UAAU,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,EAAE,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * AI 响应内存缓存
3
+ * key = SHA256(prompt + label) 前 16 字符
4
+ * TTL = 5 分钟(可配置)
5
+ */
6
+ export declare class ResponseCache {
7
+ private cache;
8
+ private hits;
9
+ private misses;
10
+ get(prompt: string, label?: string, model?: string): string | undefined;
11
+ set(prompt: string, label: string | undefined, value: string, ttlMs?: number, model?: string): void;
12
+ invalidate(): void;
13
+ get hitRate(): number;
14
+ get size(): number;
15
+ private makeKey;
16
+ }
17
+ //# sourceMappingURL=response-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-cache.d.ts","sourceRoot":"","sources":["../../src/ai-gateway/response-cache.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IAEnB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAavE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAKpG,UAAU,IAAI,IAAI;IAIlB,IAAI,OAAO,IAAI,MAAM,CAGpB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,OAAO;CAGhB"}
@@ -0,0 +1,44 @@
1
+ import { createHash } from 'crypto';
2
+ /**
3
+ * AI 响应内存缓存
4
+ * key = SHA256(prompt + label) 前 16 字符
5
+ * TTL = 5 分钟(可配置)
6
+ */
7
+ export class ResponseCache {
8
+ cache = new Map();
9
+ hits = 0;
10
+ misses = 0;
11
+ get(prompt, label, model) {
12
+ const key = this.makeKey(prompt, label, model);
13
+ const entry = this.cache.get(key);
14
+ if (!entry) {
15
+ this.misses++;
16
+ return undefined;
17
+ }
18
+ if (Date.now() > entry.expiresAt) {
19
+ this.cache.delete(key);
20
+ this.misses++;
21
+ return undefined;
22
+ }
23
+ this.hits++;
24
+ return entry.value;
25
+ }
26
+ set(prompt, label, value, ttlMs = 300_000, model) {
27
+ const key = this.makeKey(prompt, label, model);
28
+ this.cache.set(key, { value, expiresAt: Date.now() + ttlMs });
29
+ }
30
+ invalidate() {
31
+ this.cache.clear();
32
+ }
33
+ get hitRate() {
34
+ const total = this.hits + this.misses;
35
+ return total === 0 ? 0 : this.hits / total;
36
+ }
37
+ get size() {
38
+ return this.cache.size;
39
+ }
40
+ makeKey(prompt, label, model) {
41
+ return createHash('sha256').update(`${model ?? ''}::${label ?? ''}::${prompt}`).digest('hex').slice(0, 16);
42
+ }
43
+ }
44
+ //# sourceMappingURL=response-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-cache.js","sourceRoot":"","sources":["../../src/ai-gateway/response-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAOpC;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAChB,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IACtC,IAAI,GAAG,CAAC,CAAC;IACT,MAAM,GAAG,CAAC,CAAC;IAEnB,GAAG,CAAC,MAAc,EAAE,KAAc,EAAE,KAAc;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;QAChD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,MAAc,EAAE,KAAyB,EAAE,KAAa,EAAE,KAAK,GAAG,OAAO,EAAE,KAAc;QAC3F,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACtC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IAC7C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAEO,OAAO,CAAC,MAAc,EAAE,KAAc,EAAE,KAAc;QAC5D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7G,CAAC;CACF"}
@@ -7,6 +7,8 @@ export interface CompletionOptions {
7
7
  timeoutMs?: number;
8
8
  maxTokens?: number;
9
9
  temperature?: number;
10
+ /** 覆盖默认模型(由 ModelSelector 注入,用于分层模型策略) */
11
+ model?: string;
10
12
  }
11
13
  export interface ApiCallStats {
12
14
  totalCalls: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai-provider/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrI;AAED,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvF;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEnC;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC;CACvB;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,SAAS,EAAE,MAAM;CAI9B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;;CAK1C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai-provider/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrI;AAED,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvF;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEnC;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC;CACvB;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,SAAS,EAAE,MAAM;CAI9B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;;CAK1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai-provider/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2CH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,SAAiB;QAC3B,KAAK,CAAC,YAAY,SAAS,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai-provider/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6CH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,SAAiB;QAC3B,KAAK,CAAC,YAAY,SAAS,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
@@ -36,6 +36,8 @@ export declare class IntentEngine {
36
36
  private structureCache;
37
37
  /** decisions.md 内容缓存,TTL=5min */
38
38
  private decisionsCache;
39
+ /** 意图规则缓存,TTL=5min,避免每次 analyze 都查 DB */
40
+ private rulesCache;
39
41
  private static readonly CACHE_TTL_MS;
40
42
  constructor(api: AIProvider, storage?: StorageEngine);
41
43
  /**
@@ -48,9 +50,9 @@ export declare class IntentEngine {
48
50
  * @param activePlan 当前活跃计划摘要(跨 session 的任务续接状态)
49
51
  */
50
52
  analyze(userPrompt: string, projectPath: string, techStack?: string, conversationHistory?: string, isForgeManaged?: boolean, activePlan?: ActivePlanSummary, userContext?: UserContext): Promise<IntentAnalysis>;
51
- /** 从 StorageEngine 获取规则库(通过 RuleDistiller storage 引用) */
53
+ /** 从 StorageEngine 获取规则库(带 TTL 缓存,避免每次 analyze 都查 DB) */
52
54
  private getRulesFromStorage;
53
- /** 清理两个缓存 Map 中已过期的条目 */
55
+ /** 清理三个缓存 Map 中已过期的条目 */
54
56
  private evictExpiredCache;
55
57
  /**
56
58
  * 快速放行:只过滤明确不涉及代码改动的操作。
@@ -1 +1 @@
1
- {"version":3,"file":"intent-engine.d.ts","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;IACjD,gBAAgB,EAAE,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;CACzD;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,aAAa,CAA8B;IACnD,mCAAmC;IACnC,OAAO,CAAC,cAAc,CAAyD;IAC/E,iCAAiC;IACjC,OAAO,CAAC,cAAc,CAAyD;IAC/E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAiB;gBAEzC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa;IAOpD;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD;;;;OAIG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,cAAc,CAAC,EAAE,OAAO,EACxB,UAAU,CAAC,EAAE,iBAAiB,EAC9B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,cAAc,CAAC;IAqC1B,2DAA2D;IAC3D,OAAO,CAAC,mBAAmB;IAM3B,yBAAyB;IACzB,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkEnB;;OAEG;YACW,SAAS;IAuGvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiD3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,aAAa;IAuBrB;;;OAGG;YACW,oBAAoB;IAqBlC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAInD,WAAW,IAAI,UAAU;IAIzB;OACG;IACH,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;CAsB3D"}
1
+ {"version":3,"file":"intent-engine.d.ts","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;IACjD,gBAAgB,EAAE,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;CACzD;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,aAAa,CAA8B;IACnD,mCAAmC;IACnC,OAAO,CAAC,cAAc,CAAyD;IAC/E,iCAAiC;IACjC,OAAO,CAAC,cAAc,CAAyD;IAC/E,yCAAyC;IACzC,OAAO,CAAC,UAAU,CAAuK;IACzL,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAiB;gBAEzC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa;IAOpD;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQxD;;;;OAIG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,cAAc,CAAC,EAAE,OAAO,EACxB,UAAU,CAAC,EAAE,iBAAiB,EAC9B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,cAAc,CAAC;IAqC1B,yDAAyD;IACzD,OAAO,CAAC,mBAAmB;IAU3B,yBAAyB;IACzB,OAAO,CAAC,iBAAiB;IAazB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkEnB;;OAEG;YACW,SAAS;IAuGvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiD3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,aAAa;IAuBrB;;;OAGG;YACW,oBAAoB;IAqBlC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAInD,WAAW,IAAI,UAAU;IAIzB;OACG;IACH,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;CAsB3D"}
@@ -18,6 +18,8 @@ export class IntentEngine {
18
18
  structureCache = new Map();
19
19
  /** decisions.md 内容缓存,TTL=5min */
20
20
  decisionsCache = new Map();
21
+ /** 意图规则缓存,TTL=5min,避免每次 analyze 都查 DB */
22
+ rulesCache = new Map();
21
23
  static CACHE_TTL_MS = 5 * 60 * 1000; // 5min
22
24
  constructor(api, storage) {
23
25
  this.api = api;
@@ -31,7 +33,10 @@ export class IntentEngine {
31
33
  async distillRules(projectPath) {
32
34
  if (!this.ruleDistiller)
33
35
  return 0;
34
- return this.ruleDistiller.distillRules(projectPath);
36
+ const count = await this.ruleDistiller.distillRules(projectPath);
37
+ // 规则更新后失效缓存,下次 analyze 重新加载
38
+ this.rulesCache.delete(projectPath);
39
+ return count;
35
40
  }
36
41
  /**
37
42
  * 分析用户输入的意图和复杂度
@@ -73,13 +78,17 @@ export class IntentEngine {
73
78
  return this.fallbackAnalyze(userPrompt, isForgeManaged);
74
79
  }
75
80
  }
76
- /** 从 StorageEngine 获取规则库(通过 RuleDistiller storage 引用) */
81
+ /** 从 StorageEngine 获取规则库(带 TTL 缓存,避免每次 analyze 都查 DB) */
77
82
  getRulesFromStorage(projectPath) {
83
+ const cached = this.rulesCache.get(projectPath);
84
+ if (cached && Date.now() < cached.expireAt)
85
+ return cached.data;
78
86
  // RuleDistiller 持有 storage 引用,通过它查询
79
- // 这里通过 ruleDistiller 内部的 storage 访问,需要暴露一个方法
80
- return this.ruleDistiller?.storage?.getIntentRules() ?? [];
87
+ const data = this.ruleDistiller?.storage?.getIntentRules() ?? [];
88
+ this.rulesCache.set(projectPath, { data, expireAt: Date.now() + IntentEngine.CACHE_TTL_MS });
89
+ return data;
81
90
  }
82
- /** 清理两个缓存 Map 中已过期的条目 */
91
+ /** 清理三个缓存 Map 中已过期的条目 */
83
92
  evictExpiredCache() {
84
93
  const now = Date.now();
85
94
  for (const [key, entry] of this.structureCache) {
@@ -90,6 +99,10 @@ export class IntentEngine {
90
99
  if (now >= entry.expireAt)
91
100
  this.decisionsCache.delete(key);
92
101
  }
102
+ for (const [key, entry] of this.rulesCache) {
103
+ if (now >= entry.expireAt)
104
+ this.rulesCache.delete(key);
105
+ }
93
106
  }
94
107
  /**
95
108
  * 快速放行:只过滤明确不涉及代码改动的操作。
@@ -1 +1 @@
1
- {"version":3,"file":"intent-engine.js","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intent-engine.js","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"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"}
@@ -188,7 +188,7 @@ export class ClaudeMdEngine {
188
188
  try {
189
189
  const profile = this.detector.detect(projectPath);
190
190
  const persona = this.getPersona(projectPath, profile);
191
- const prompt = ClaudeMdPrompts.buildRefinementPrompt(currentContent, effectiveContent, events, profile, persona, { structureSummaryOnly: true, projectPath });
191
+ const prompt = ClaudeMdPrompts.buildRefinementPrompt(currentContent, effectiveContent, events, profile, persona, { structureSummaryOnly: false, projectPath });
192
192
  const response = await this.api.complete(prompt, 'claudemd', { timeoutMs: 180_000 });
193
193
  // 解析 SHOULD_UPDATE 标志
194
194
  const shouldUpdate = this.parseShouldUpdate(response);
@@ -207,7 +207,7 @@ export class ClaudeMdEngine {
207
207
  // 提取更新内容
208
208
  const updatedContent = this.parseUpdatedContent(response);
209
209
  if (!updatedContent) {
210
- logger.warn('CLAUDE.md refinement: SHOULD_UPDATE=true but no content found');
210
+ logger.warn('CLAUDE.md 细化:SHOULD_UPDATE=true 但未找到更新内容');
211
211
  return false;
212
212
  }
213
213
  // 校验内容后写入,失败则重试
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/claudemd/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/claudemd/index.ts"],"names":[],"mappings":"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"}