@winspan/claude-forge 9.2.0 → 9.12.0

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 (591) hide show
  1. package/DEVELOPMENT.md +80 -19
  2. package/README.md +13 -6
  3. package/dist/catalogs/agents.json +19 -24
  4. package/dist/catalogs/skills.json +139 -27
  5. package/dist/claudemd/templates/swarm-protocol.md +1 -1
  6. package/dist/cli/commands/agent.d.ts +169 -0
  7. package/dist/cli/commands/agent.d.ts.map +1 -0
  8. package/dist/cli/commands/agent.js +690 -0
  9. package/dist/cli/commands/agent.js.map +1 -0
  10. package/dist/cli/commands/codegraph.d.ts +17 -0
  11. package/dist/cli/commands/codegraph.d.ts.map +1 -0
  12. package/dist/cli/commands/codegraph.js +263 -0
  13. package/dist/cli/commands/codegraph.js.map +1 -0
  14. package/dist/cli/commands/decisions.d.ts.map +1 -1
  15. package/dist/cli/commands/decisions.js +46 -9
  16. package/dist/cli/commands/decisions.js.map +1 -1
  17. package/dist/cli/commands/executions.d.ts.map +1 -1
  18. package/dist/cli/commands/executions.js +2 -1
  19. package/dist/cli/commands/executions.js.map +1 -1
  20. package/dist/cli/commands/insights-goal-check.d.ts +5 -1
  21. package/dist/cli/commands/insights-goal-check.d.ts.map +1 -1
  22. package/dist/cli/commands/insights-goal-check.js +15 -15
  23. package/dist/cli/commands/insights-goal-check.js.map +1 -1
  24. package/dist/cli/commands/knowledge.d.ts +51 -0
  25. package/dist/cli/commands/knowledge.d.ts.map +1 -1
  26. package/dist/cli/commands/knowledge.js +202 -29
  27. package/dist/cli/commands/knowledge.js.map +1 -1
  28. package/dist/cli/commands/loop.d.ts +95 -0
  29. package/dist/cli/commands/loop.d.ts.map +1 -0
  30. package/dist/cli/commands/loop.js +408 -0
  31. package/dist/cli/commands/loop.js.map +1 -0
  32. package/dist/cli/commands/maintenance.d.ts +33 -0
  33. package/dist/cli/commands/maintenance.d.ts.map +1 -0
  34. package/dist/cli/commands/maintenance.js +75 -0
  35. package/dist/cli/commands/maintenance.js.map +1 -0
  36. package/dist/cli/commands/mcp.d.ts +23 -0
  37. package/dist/cli/commands/mcp.d.ts.map +1 -1
  38. package/dist/cli/commands/mcp.js +82 -0
  39. package/dist/cli/commands/mcp.js.map +1 -1
  40. package/dist/cli/commands/skills.d.ts +131 -0
  41. package/dist/cli/commands/skills.d.ts.map +1 -1
  42. package/dist/cli/commands/skills.js +409 -9
  43. package/dist/cli/commands/skills.js.map +1 -1
  44. package/dist/cli/commands/stats.d.ts.map +1 -1
  45. package/dist/cli/commands/stats.js +9 -2
  46. package/dist/cli/commands/stats.js.map +1 -1
  47. package/dist/cli/index.js +8 -0
  48. package/dist/cli/index.js.map +1 -1
  49. package/dist/core/constants.d.ts +37 -0
  50. package/dist/core/constants.d.ts.map +1 -1
  51. package/dist/core/constants.js +43 -0
  52. package/dist/core/constants.js.map +1 -1
  53. package/dist/core/diagnostics/checks.d.ts.map +1 -1
  54. package/dist/core/diagnostics/checks.js +2 -1
  55. package/dist/core/diagnostics/checks.js.map +1 -1
  56. package/dist/core/diagnostics/daemon-status.d.ts +1 -1
  57. package/dist/core/diagnostics/daemon-status.d.ts.map +1 -1
  58. package/dist/core/diagnostics/daemon-status.js +1 -1
  59. package/dist/core/diagnostics/daemon-status.js.map +1 -1
  60. package/dist/core/diagnostics/entropy-checks.d.ts +3 -2
  61. package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -1
  62. package/dist/core/diagnostics/entropy-checks.js +10 -5
  63. package/dist/core/diagnostics/entropy-checks.js.map +1 -1
  64. package/dist/core/diagnostics/heartbeat-reader.d.ts +28 -0
  65. package/dist/core/diagnostics/heartbeat-reader.d.ts.map +1 -0
  66. package/dist/core/diagnostics/heartbeat-reader.js +50 -0
  67. package/dist/core/diagnostics/heartbeat-reader.js.map +1 -0
  68. package/dist/core/event-fields.d.ts +27 -0
  69. package/dist/core/event-fields.d.ts.map +1 -1
  70. package/dist/core/event-fields.js +43 -0
  71. package/dist/core/event-fields.js.map +1 -1
  72. package/dist/core/governance/global-inject.d.ts +34 -4
  73. package/dist/core/governance/global-inject.d.ts.map +1 -1
  74. package/dist/core/governance/global-inject.js +80 -25
  75. package/dist/core/governance/global-inject.js.map +1 -1
  76. package/dist/core/insights/agent-anchor-guard.d.ts +77 -0
  77. package/dist/core/insights/agent-anchor-guard.d.ts.map +1 -0
  78. package/dist/core/insights/agent-anchor-guard.js +119 -0
  79. package/dist/core/insights/agent-anchor-guard.js.map +1 -0
  80. package/dist/core/insights/agent-distill-context.d.ts +55 -0
  81. package/dist/core/insights/agent-distill-context.d.ts.map +1 -0
  82. package/dist/core/insights/agent-distill-context.js +146 -0
  83. package/dist/core/insights/agent-distill-context.js.map +1 -0
  84. package/dist/core/insights/agent-distill-spawn.d.ts +56 -0
  85. package/dist/core/insights/agent-distill-spawn.d.ts.map +1 -0
  86. package/dist/core/insights/agent-distill-spawn.js +179 -0
  87. package/dist/core/insights/agent-distill-spawn.js.map +1 -0
  88. package/dist/core/insights/agent-drift.d.ts +66 -0
  89. package/dist/core/insights/agent-drift.d.ts.map +1 -0
  90. package/dist/core/insights/agent-drift.js +109 -0
  91. package/dist/core/insights/agent-drift.js.map +1 -0
  92. package/dist/core/insights/agent-evolution-sources.d.ts +21 -0
  93. package/dist/core/insights/agent-evolution-sources.d.ts.map +1 -0
  94. package/dist/core/insights/agent-evolution-sources.js +36 -0
  95. package/dist/core/insights/agent-evolution-sources.js.map +1 -0
  96. package/dist/core/insights/agent-health.d.ts +142 -0
  97. package/dist/core/insights/agent-health.d.ts.map +1 -0
  98. package/dist/core/insights/agent-health.js +296 -0
  99. package/dist/core/insights/agent-health.js.map +1 -0
  100. package/dist/core/insights/agent-patch-apply.d.ts +45 -0
  101. package/dist/core/insights/agent-patch-apply.d.ts.map +1 -0
  102. package/dist/core/insights/agent-patch-apply.js +165 -0
  103. package/dist/core/insights/agent-patch-apply.js.map +1 -0
  104. package/dist/core/insights/agent-suggest.d.ts +128 -0
  105. package/dist/core/insights/agent-suggest.d.ts.map +1 -0
  106. package/dist/core/insights/agent-suggest.js +284 -0
  107. package/dist/core/insights/agent-suggest.js.map +1 -0
  108. package/dist/core/insights/coverage-tiers.d.ts +46 -0
  109. package/dist/core/insights/coverage-tiers.d.ts.map +1 -0
  110. package/dist/core/insights/coverage-tiers.js +95 -0
  111. package/dist/core/insights/coverage-tiers.js.map +1 -0
  112. package/dist/{daemon/services → core/insights}/experience-extractor.d.ts +0 -7
  113. package/dist/core/insights/experience-extractor.d.ts.map +1 -0
  114. package/dist/{daemon/services → core/insights}/experience-extractor.js +5 -9
  115. package/dist/core/insights/experience-extractor.js.map +1 -0
  116. package/dist/{daemon/services → core/insights}/violation-reporter.d.ts +20 -1
  117. package/dist/core/insights/violation-reporter.d.ts.map +1 -0
  118. package/dist/{daemon/services → core/insights}/violation-reporter.js +56 -4
  119. package/dist/core/insights/violation-reporter.js.map +1 -0
  120. package/dist/core/loop/loop-engine.d.ts +140 -0
  121. package/dist/core/loop/loop-engine.d.ts.map +1 -0
  122. package/dist/core/loop/loop-engine.js +266 -0
  123. package/dist/core/loop/loop-engine.js.map +1 -0
  124. package/dist/core/queue/index.d.ts.map +1 -1
  125. package/dist/core/queue/index.js +2 -1
  126. package/dist/core/queue/index.js.map +1 -1
  127. package/dist/core/storage/base.d.ts +159 -0
  128. package/dist/core/storage/base.d.ts.map +1 -1
  129. package/dist/core/storage/base.js +523 -0
  130. package/dist/core/storage/base.js.map +1 -1
  131. package/dist/core/storage/codegraph-types.d.ts +79 -0
  132. package/dist/core/storage/codegraph-types.d.ts.map +1 -0
  133. package/dist/core/storage/codegraph-types.js +14 -0
  134. package/dist/core/storage/codegraph-types.js.map +1 -0
  135. package/dist/core/storage/codegraph.d.ts +186 -0
  136. package/dist/core/storage/codegraph.d.ts.map +1 -0
  137. package/dist/core/storage/codegraph.js +452 -0
  138. package/dist/core/storage/codegraph.js.map +1 -0
  139. package/dist/core/storage/decisions.d.ts +30 -5
  140. package/dist/core/storage/decisions.d.ts.map +1 -1
  141. package/dist/core/storage/decisions.js +45 -13
  142. package/dist/core/storage/decisions.js.map +1 -1
  143. package/dist/core/storage/events.d.ts +127 -0
  144. package/dist/core/storage/events.d.ts.map +1 -1
  145. package/dist/core/storage/events.js +318 -3
  146. package/dist/core/storage/events.js.map +1 -1
  147. package/dist/core/storage/feedback.d.ts +3 -23
  148. package/dist/core/storage/feedback.d.ts.map +1 -1
  149. package/dist/core/storage/feedback.js +37 -38
  150. package/dist/core/storage/feedback.js.map +1 -1
  151. package/dist/core/storage/injections.d.ts +40 -0
  152. package/dist/core/storage/injections.d.ts.map +1 -1
  153. package/dist/core/storage/injections.js +69 -0
  154. package/dist/core/storage/injections.js.map +1 -1
  155. package/dist/core/storage/knowledge.d.ts +226 -0
  156. package/dist/core/storage/knowledge.d.ts.map +1 -1
  157. package/dist/core/storage/knowledge.js +391 -4
  158. package/dist/core/storage/knowledge.js.map +1 -1
  159. package/dist/core/storage/pipeline-rollup.d.ts +1 -7
  160. package/dist/core/storage/pipeline-rollup.d.ts.map +1 -1
  161. package/dist/core/storage/pipeline-rollup.js +18 -57
  162. package/dist/core/storage/pipeline-rollup.js.map +1 -1
  163. package/dist/core/storage/routing.d.ts +34 -0
  164. package/dist/core/storage/routing.d.ts.map +1 -1
  165. package/dist/core/storage/routing.js +92 -2
  166. package/dist/core/storage/routing.js.map +1 -1
  167. package/dist/core/storage/rows.d.ts +5 -25
  168. package/dist/core/storage/rows.d.ts.map +1 -1
  169. package/dist/core/storage/schema.sql +92 -27
  170. package/dist/core/storage/sessions.d.ts.map +1 -1
  171. package/dist/core/storage/sessions.js +2 -1
  172. package/dist/core/storage/sessions.js.map +1 -1
  173. package/dist/core/storage/skills.d.ts +159 -0
  174. package/dist/core/storage/skills.d.ts.map +1 -1
  175. package/dist/core/storage/skills.js +350 -4
  176. package/dist/core/storage/skills.js.map +1 -1
  177. package/dist/core/storage/sqlite.d.ts +81 -25
  178. package/dist/core/storage/sqlite.d.ts.map +1 -1
  179. package/dist/core/storage/sqlite.js +143 -45
  180. package/dist/core/storage/sqlite.js.map +1 -1
  181. package/dist/core/storage/tasks.d.ts +270 -0
  182. package/dist/core/storage/tasks.d.ts.map +1 -1
  183. package/dist/core/storage/tasks.js +495 -16
  184. package/dist/core/storage/tasks.js.map +1 -1
  185. package/dist/core/storage/tool-intercepts.d.ts +1 -1
  186. package/dist/core/storage/tool-intercepts.js +1 -1
  187. package/dist/core/types.d.ts +26 -3
  188. package/dist/core/types.d.ts.map +1 -1
  189. package/dist/core/types.js +1 -3
  190. package/dist/core/types.js.map +1 -1
  191. package/dist/core/utils/binary-paths.d.ts +32 -0
  192. package/dist/core/utils/binary-paths.d.ts.map +1 -1
  193. package/dist/core/utils/binary-paths.js +52 -0
  194. package/dist/core/utils/binary-paths.js.map +1 -1
  195. package/dist/core/utils/claude-cli-resolver.d.ts.map +1 -0
  196. package/dist/{skills/distill → core/utils}/claude-cli-resolver.js +1 -1
  197. package/dist/core/utils/claude-cli-resolver.js.map +1 -0
  198. package/dist/core/utils/claude-cli-spawn.d.ts +1 -1
  199. package/dist/core/utils/claude-cli-spawn.js +2 -2
  200. package/dist/core/utils/claude-cli-spawn.js.map +1 -1
  201. package/dist/core/utils/noise-prompt.d.ts +1 -1
  202. package/dist/core/utils/noise-prompt.js +1 -1
  203. package/dist/core/utils/time.d.ts +26 -0
  204. package/dist/core/utils/time.d.ts.map +1 -1
  205. package/dist/core/utils/time.js +33 -0
  206. package/dist/core/utils/time.js.map +1 -1
  207. package/dist/daemon/config-store.d.ts.map +1 -1
  208. package/dist/daemon/config-store.js +14 -5
  209. package/dist/daemon/config-store.js.map +1 -1
  210. package/dist/daemon/event-parser.d.ts.map +1 -1
  211. package/dist/daemon/event-parser.js +5 -0
  212. package/dist/daemon/event-parser.js.map +1 -1
  213. package/dist/daemon/handlers/post-tool-use.d.ts +24 -16
  214. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
  215. package/dist/daemon/handlers/post-tool-use.js +76 -116
  216. package/dist/daemon/handlers/post-tool-use.js.map +1 -1
  217. package/dist/daemon/handlers/pre-tool-use.d.ts +35 -10
  218. package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -1
  219. package/dist/daemon/handlers/pre-tool-use.js +71 -38
  220. package/dist/daemon/handlers/pre-tool-use.js.map +1 -1
  221. package/dist/daemon/handlers/stop.d.ts +20 -0
  222. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  223. package/dist/daemon/handlers/stop.js +96 -8
  224. package/dist/daemon/handlers/stop.js.map +1 -1
  225. package/dist/daemon/handlers/user-prompt.d.ts +16 -1
  226. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  227. package/dist/daemon/handlers/user-prompt.js +97 -56
  228. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  229. package/dist/daemon/handlers/violation-content-backfill.d.ts +76 -0
  230. package/dist/daemon/handlers/violation-content-backfill.d.ts.map +1 -0
  231. package/dist/daemon/handlers/violation-content-backfill.js +167 -0
  232. package/dist/daemon/handlers/violation-content-backfill.js.map +1 -0
  233. package/dist/daemon/index.d.ts +19 -0
  234. package/dist/daemon/index.d.ts.map +1 -1
  235. package/dist/daemon/index.js +125 -200
  236. package/dist/daemon/index.js.map +1 -1
  237. package/dist/daemon/rules/defaults.d.ts.map +1 -1
  238. package/dist/daemon/rules/defaults.js +151 -64
  239. package/dist/daemon/rules/defaults.js.map +1 -1
  240. package/dist/daemon/rules/types.d.ts +28 -22
  241. package/dist/daemon/rules/types.d.ts.map +1 -1
  242. package/dist/daemon/rules/workflow-defaults.js +9 -9
  243. package/dist/daemon/rules/workflow-defaults.js.map +1 -1
  244. package/dist/daemon/services/codegraph-sync.d.ts +94 -0
  245. package/dist/daemon/services/codegraph-sync.d.ts.map +1 -0
  246. package/dist/daemon/services/codegraph-sync.js +159 -0
  247. package/dist/daemon/services/codegraph-sync.js.map +1 -0
  248. package/dist/daemon/services/decision-hint.d.ts +47 -10
  249. package/dist/daemon/services/decision-hint.d.ts.map +1 -1
  250. package/dist/daemon/services/decision-hint.js +99 -24
  251. package/dist/daemon/services/decision-hint.js.map +1 -1
  252. package/dist/daemon/services/event-ttl-sweep.d.ts.map +1 -1
  253. package/dist/daemon/services/event-ttl-sweep.js +3 -2
  254. package/dist/daemon/services/event-ttl-sweep.js.map +1 -1
  255. package/dist/daemon/services/feedback-aggregator.d.ts +14 -26
  256. package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -1
  257. package/dist/daemon/services/feedback-aggregator.js +23 -63
  258. package/dist/daemon/services/feedback-aggregator.js.map +1 -1
  259. package/dist/daemon/services/heartbeat-writer.d.ts +6 -15
  260. package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -1
  261. package/dist/daemon/services/heartbeat-writer.js +7 -36
  262. package/dist/daemon/services/heartbeat-writer.js.map +1 -1
  263. package/dist/daemon/services/kb-injector.d.ts +1 -1
  264. package/dist/daemon/services/kb-injector.d.ts.map +1 -1
  265. package/dist/daemon/services/kb-injector.js +10 -2
  266. package/dist/daemon/services/kb-injector.js.map +1 -1
  267. package/dist/daemon/services/kb-rebuild-scheduler.d.ts +95 -0
  268. package/dist/daemon/services/kb-rebuild-scheduler.d.ts.map +1 -0
  269. package/dist/daemon/services/kb-rebuild-scheduler.js +149 -0
  270. package/dist/daemon/services/kb-rebuild-scheduler.js.map +1 -0
  271. package/dist/daemon/services/loop-hint.d.ts +139 -0
  272. package/dist/daemon/services/loop-hint.d.ts.map +1 -0
  273. package/dist/daemon/services/loop-hint.js +272 -0
  274. package/dist/daemon/services/loop-hint.js.map +1 -0
  275. package/dist/daemon/services/outcome-classification-service.js +1 -1
  276. package/dist/daemon/services/outcome-classification-service.js.map +1 -1
  277. package/dist/daemon/services/task-segmenter.d.ts +11 -0
  278. package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
  279. package/dist/daemon/services/task-segmenter.js +48 -2
  280. package/dist/daemon/services/task-segmenter.js.map +1 -1
  281. package/dist/daemon/startup/maintenance-schedulers.d.ts +68 -0
  282. package/dist/daemon/startup/maintenance-schedulers.d.ts.map +1 -0
  283. package/dist/daemon/startup/maintenance-schedulers.js +294 -0
  284. package/dist/daemon/startup/maintenance-schedulers.js.map +1 -0
  285. package/dist/daemon/templates/agents/agent-retro-distiller.md +106 -0
  286. package/dist/daemon/templates/agents/claudemd-writer.md +1 -0
  287. package/dist/daemon/templates/agents/coder.md +165 -8
  288. package/dist/daemon/templates/agents/decision-maker.md +107 -21
  289. package/dist/daemon/templates/agents/doc-reviewer.md +4 -1
  290. package/dist/daemon/templates/agents/harness-debug-full.md +85 -3
  291. package/dist/daemon/templates/agents/knowledge-builder.md +1 -0
  292. package/dist/daemon/templates/agents/patch-applier.md +1 -0
  293. package/dist/daemon/templates/agents/planner.md +55 -3
  294. package/dist/daemon/templates/agents/safety-net-implementer.md +278 -0
  295. package/dist/daemon/templates/agents/skill-distiller.md +1 -0
  296. package/dist/daemon/templates/agents/task-boundary-classifier.md +1 -0
  297. package/dist/daemon/templates/agents/verify-agent.md +128 -5
  298. package/dist/hooks/stop.sh +7 -1
  299. package/dist/knowledge/builder.js +36 -7
  300. package/dist/knowledge/builder.js.map +1 -1
  301. package/dist/knowledge/constants.d.ts +10 -5
  302. package/dist/knowledge/constants.d.ts.map +1 -1
  303. package/dist/knowledge/constants.js +10 -5
  304. package/dist/knowledge/constants.js.map +1 -1
  305. package/dist/knowledge/graph/edge-extractor.d.ts +45 -0
  306. package/dist/knowledge/graph/edge-extractor.d.ts.map +1 -0
  307. package/dist/knowledge/graph/edge-extractor.js +242 -0
  308. package/dist/knowledge/graph/edge-extractor.js.map +1 -0
  309. package/dist/knowledge/graph/impact.d.ts +73 -0
  310. package/dist/knowledge/graph/impact.d.ts.map +1 -0
  311. package/dist/knowledge/graph/impact.js +94 -0
  312. package/dist/knowledge/graph/impact.js.map +1 -0
  313. package/dist/knowledge/graph/types.d.ts +22 -0
  314. package/dist/knowledge/graph/types.d.ts.map +1 -0
  315. package/dist/knowledge/graph/types.js +13 -0
  316. package/dist/knowledge/graph/types.js.map +1 -0
  317. package/dist/knowledge/prompt.d.ts +9 -0
  318. package/dist/knowledge/prompt.d.ts.map +1 -1
  319. package/dist/knowledge/prompt.js +17 -5
  320. package/dist/knowledge/prompt.js.map +1 -1
  321. package/dist/knowledge/query.d.ts +13 -0
  322. package/dist/knowledge/query.d.ts.map +1 -1
  323. package/dist/knowledge/query.js +107 -10
  324. package/dist/knowledge/query.js.map +1 -1
  325. package/dist/knowledge/repo-map.d.ts +11 -5
  326. package/dist/knowledge/repo-map.d.ts.map +1 -1
  327. package/dist/knowledge/repo-map.js +42 -3
  328. package/dist/knowledge/repo-map.js.map +1 -1
  329. package/dist/knowledge/validator.d.ts.map +1 -1
  330. package/dist/knowledge/validator.js +69 -2
  331. package/dist/knowledge/validator.js.map +1 -1
  332. package/dist/mcp/server.d.ts +64 -8
  333. package/dist/mcp/server.d.ts.map +1 -1
  334. package/dist/mcp/server.js +233 -18
  335. package/dist/mcp/server.js.map +1 -1
  336. package/dist/skills/distill/distiller.js +1 -1
  337. package/dist/skills/distill/distiller.js.map +1 -1
  338. package/dist/skills/distilled/distilled-api-design.md +4 -0
  339. package/dist/skills/distilled/distilled-brainstorming.md +79 -0
  340. package/dist/skills/distilled/distilled-brand-guidelines.md +86 -0
  341. package/dist/skills/distilled/distilled-canvas-design.md +128 -0
  342. package/dist/skills/distilled/distilled-claude-api.md +185 -0
  343. package/dist/skills/distilled/distilled-creator.md +5 -2
  344. package/dist/skills/distilled/distilled-dispatching-parallel-agents.md +136 -0
  345. package/dist/skills/distilled/distilled-doc-coauthoring.md +144 -0
  346. package/dist/skills/distilled/distilled-docx.md +231 -0
  347. package/dist/skills/distilled/distilled-executing-plans.md +85 -50
  348. package/dist/skills/distilled/distilled-finishing-a-development-branch.md +213 -0
  349. package/dist/skills/distilled/distilled-frontend-design.md +118 -0
  350. package/dist/skills/distilled/distilled-harness-engineering.md +1 -1
  351. package/dist/skills/distilled/distilled-receiving-code-review.md +185 -0
  352. package/dist/skills/distilled/distilled-subagent-driven-development.md +124 -0
  353. package/dist/skills/distilled/distilled-systematic-debugging.md +108 -260
  354. package/dist/skills/distilled/distilled-test-driven-development.md +432 -0
  355. package/dist/skills/distilled/distilled-using-superpowers.md +134 -0
  356. package/dist/skills/distilled/distilled-verification-before-completion.md +88 -78
  357. package/dist/skills/distilled/distilled-writing-skills.md +175 -0
  358. package/dist/skills/registry.d.ts +10 -50
  359. package/dist/skills/registry.d.ts.map +1 -1
  360. package/dist/skills/registry.js +7 -118
  361. package/dist/skills/registry.js.map +1 -1
  362. package/dist/skills/tools/pipeline-suggest.js +2 -2
  363. package/dist/skills/tools/pipeline-suggest.js.map +1 -1
  364. package/dist/skills/tools/skill-invoke.d.ts +2 -1
  365. package/dist/skills/tools/skill-invoke.d.ts.map +1 -1
  366. package/dist/skills/tools/skill-invoke.js +3 -1
  367. package/dist/skills/tools/skill-invoke.js.map +1 -1
  368. package/dist/web/analytics/anti-pattern-detector.d.ts.map +1 -1
  369. package/dist/web/analytics/anti-pattern-detector.js +6 -1
  370. package/dist/web/analytics/anti-pattern-detector.js.map +1 -1
  371. package/dist/web/analytics/drift-detector.d.ts +6 -0
  372. package/dist/web/analytics/drift-detector.d.ts.map +1 -1
  373. package/dist/web/analytics/drift-detector.js +15 -8
  374. package/dist/web/analytics/drift-detector.js.map +1 -1
  375. package/dist/web/analytics/weekly-report.d.ts +13 -0
  376. package/dist/web/analytics/weekly-report.d.ts.map +1 -1
  377. package/dist/web/analytics/weekly-report.js +17 -3
  378. package/dist/web/analytics/weekly-report.js.map +1 -1
  379. package/dist/web/routes/_helpers.d.ts +31 -0
  380. package/dist/web/routes/_helpers.d.ts.map +1 -1
  381. package/dist/web/routes/_helpers.js +33 -0
  382. package/dist/web/routes/_helpers.js.map +1 -1
  383. package/dist/web/routes/agent-distill.d.ts +49 -0
  384. package/dist/web/routes/agent-distill.d.ts.map +1 -0
  385. package/dist/web/routes/agent-distill.js +526 -0
  386. package/dist/web/routes/agent-distill.js.map +1 -0
  387. package/dist/web/routes/config.d.ts +56 -0
  388. package/dist/web/routes/config.d.ts.map +1 -0
  389. package/dist/web/routes/config.js +243 -0
  390. package/dist/web/routes/config.js.map +1 -0
  391. package/dist/web/routes/decisions.js +1 -1
  392. package/dist/web/routes/decisions.js.map +1 -1
  393. package/dist/web/routes/error-handler.d.ts +0 -4
  394. package/dist/web/routes/error-handler.d.ts.map +1 -1
  395. package/dist/web/routes/error-handler.js +0 -8
  396. package/dist/web/routes/error-handler.js.map +1 -1
  397. package/dist/web/routes/events.d.ts.map +1 -1
  398. package/dist/web/routes/events.js +2 -1
  399. package/dist/web/routes/events.js.map +1 -1
  400. package/dist/web/routes/insights.d.ts.map +1 -1
  401. package/dist/web/routes/insights.js +0 -0
  402. package/dist/web/routes/insights.js.map +1 -1
  403. package/dist/web/routes/knowledge.d.ts +43 -2
  404. package/dist/web/routes/knowledge.d.ts.map +1 -1
  405. package/dist/web/routes/knowledge.js +117 -6
  406. package/dist/web/routes/knowledge.js.map +1 -1
  407. package/dist/web/routes/pipeline.d.ts +0 -9
  408. package/dist/web/routes/pipeline.d.ts.map +1 -1
  409. package/dist/web/routes/pipeline.js +0 -4
  410. package/dist/web/routes/pipeline.js.map +1 -1
  411. package/dist/web/routes/rules.d.ts.map +1 -1
  412. package/dist/web/routes/rules.js +20 -6
  413. package/dist/web/routes/rules.js.map +1 -1
  414. package/dist/web/routes/sessions.d.ts.map +1 -1
  415. package/dist/web/routes/sessions.js +8 -7
  416. package/dist/web/routes/sessions.js.map +1 -1
  417. package/dist/web/routes/skill-stats.d.ts.map +1 -1
  418. package/dist/web/routes/skill-stats.js +153 -16
  419. package/dist/web/routes/skill-stats.js.map +1 -1
  420. package/dist/web/routes/skills-distill.js +1 -1
  421. package/dist/web/routes/skills-distill.js.map +1 -1
  422. package/dist/web/routes/stats.d.ts.map +1 -1
  423. package/dist/web/routes/stats.js +2 -1
  424. package/dist/web/routes/stats.js.map +1 -1
  425. package/dist/web/routes/task-timeline.d.ts +95 -19
  426. package/dist/web/routes/task-timeline.d.ts.map +1 -1
  427. package/dist/web/routes/task-timeline.js +344 -88
  428. package/dist/web/routes/task-timeline.js.map +1 -1
  429. package/dist/web/routes/tasks.d.ts.map +1 -1
  430. package/dist/web/routes/tasks.js +52 -30
  431. package/dist/web/routes/tasks.js.map +1 -1
  432. package/dist/web/routes/violations.d.ts +1 -1
  433. package/dist/web/routes/violations.d.ts.map +1 -1
  434. package/dist/web/routes/violations.js +3 -2
  435. package/dist/web/routes/violations.js.map +1 -1
  436. package/dist/web/server.d.ts.map +1 -1
  437. package/dist/web/server.js +20 -0
  438. package/dist/web/server.js.map +1 -1
  439. package/dist/web/services/agent-distill-manager.d.ts +122 -0
  440. package/dist/web/services/agent-distill-manager.d.ts.map +1 -0
  441. package/dist/web/services/agent-distill-manager.js +397 -0
  442. package/dist/web/services/agent-distill-manager.js.map +1 -0
  443. package/dist/web/services/distill-manager.d.ts +47 -0
  444. package/dist/web/services/distill-manager.d.ts.map +1 -1
  445. package/dist/web/services/distill-manager.js +103 -0
  446. package/dist/web/services/distill-manager.js.map +1 -1
  447. package/dist/web/static/assets/AgentDetailPage-DlUeA1sX.js +2 -0
  448. package/dist/web/static/assets/AgentDetailPage-DlUeA1sX.js.map +1 -0
  449. package/dist/web/static/assets/AgentDistillRunPage-Cybo4bii.js +3 -0
  450. package/dist/web/static/assets/AgentDistillRunPage-Cybo4bii.js.map +1 -0
  451. package/dist/web/static/assets/AgentsPage-Qd9FExLG.js +2 -0
  452. package/dist/web/static/assets/AgentsPage-Qd9FExLG.js.map +1 -0
  453. package/dist/web/static/assets/DaemonHealthPage-DTSVqtrI.js +2 -0
  454. package/dist/web/static/assets/DaemonHealthPage-DTSVqtrI.js.map +1 -0
  455. package/dist/web/static/assets/DecisionDetailPage-b4BA8dhc.js +2 -0
  456. package/dist/web/static/assets/DecisionDetailPage-b4BA8dhc.js.map +1 -0
  457. package/dist/web/static/assets/DecisionsPage-a3NRo_T7.js +2 -0
  458. package/dist/web/static/assets/DecisionsPage-a3NRo_T7.js.map +1 -0
  459. package/dist/web/static/assets/DiagnosticsPage-DIVdiIQG.js +2 -0
  460. package/dist/web/static/assets/DiagnosticsPage-DIVdiIQG.js.map +1 -0
  461. package/dist/web/static/assets/DistillDetailPage-U6a3l2iP.js +4 -0
  462. package/dist/web/static/assets/DistillDetailPage-U6a3l2iP.js.map +1 -0
  463. package/dist/web/static/assets/DistillPage-O7BHtRN8.js +2 -0
  464. package/dist/web/static/assets/DistillPage-O7BHtRN8.js.map +1 -0
  465. package/dist/web/static/assets/DistillRunPage-D1JuRWWr.js +2 -0
  466. package/dist/web/static/assets/DistillRunPage-D1JuRWWr.js.map +1 -0
  467. package/dist/web/static/assets/GlobalScopeHint-Q3wTJx3F.js +2 -0
  468. package/dist/web/static/assets/GlobalScopeHint-Q3wTJx3F.js.map +1 -0
  469. package/dist/web/static/assets/IssueDetailPage-BDfrtk2C.js +2 -0
  470. package/dist/web/static/assets/IssueDetailPage-BDfrtk2C.js.map +1 -0
  471. package/dist/web/static/assets/IssuesPage-SKmhlCrw.js +2 -0
  472. package/dist/web/static/assets/IssuesPage-SKmhlCrw.js.map +1 -0
  473. package/dist/web/static/assets/KbDetailPage-Yna86Na8.js +2 -0
  474. package/dist/web/static/assets/KbDetailPage-Yna86Na8.js.map +1 -0
  475. package/dist/web/static/assets/KbHitsPage-Cljl7H9p.js +2 -0
  476. package/dist/web/static/assets/KbHitsPage-Cljl7H9p.js.map +1 -0
  477. package/dist/web/static/assets/{MarkdownRenderer-DZmTl-8J.js → MarkdownRenderer-DlDQNihj.js} +2 -2
  478. package/dist/web/static/assets/{MarkdownRenderer-DZmTl-8J.js.map → MarkdownRenderer-DlDQNihj.js.map} +1 -1
  479. package/dist/web/static/assets/NotFound-LMzbP51V.js +2 -0
  480. package/dist/web/static/assets/{NotFound-BQPh0vaF.js.map → NotFound-LMzbP51V.js.map} +1 -1
  481. package/dist/web/static/assets/SettingsPage-DzoK4PKg.js +2 -0
  482. package/dist/web/static/assets/SettingsPage-DzoK4PKg.js.map +1 -0
  483. package/dist/web/static/assets/SkillDetailPage-BuBJJ_NX.js +2 -0
  484. package/dist/web/static/assets/SkillDetailPage-BuBJJ_NX.js.map +1 -0
  485. package/dist/web/static/assets/SkillsPage-aojkJpBc.js +2 -0
  486. package/dist/web/static/assets/SkillsPage-aojkJpBc.js.map +1 -0
  487. package/dist/web/static/assets/TaskDetailPage-1ckxnGhw.js +4 -0
  488. package/dist/web/static/assets/TaskDetailPage-1ckxnGhw.js.map +1 -0
  489. package/dist/web/static/assets/TasksHubPage-C2PLh3eg.js +6 -0
  490. package/dist/web/static/assets/TasksHubPage-C2PLh3eg.js.map +1 -0
  491. package/dist/web/static/assets/WorkplacePage-DHrp5VxS.js +2 -0
  492. package/dist/web/static/assets/WorkplacePage-DHrp5VxS.js.map +1 -0
  493. package/dist/web/static/assets/arco-DV6xCLhr.js +14 -0
  494. package/dist/web/static/assets/arco-DV6xCLhr.js.map +1 -0
  495. package/dist/web/static/assets/charts-BSV4cyC4.js +37 -0
  496. package/dist/web/static/assets/charts-BSV4cyC4.js.map +1 -0
  497. package/dist/web/static/assets/{index-7bl3kbcx.css → index-B_v_MKlb.css} +1 -1
  498. package/dist/web/static/assets/index-DileOOE4.js +4 -0
  499. package/dist/web/static/assets/index-DileOOE4.js.map +1 -0
  500. package/dist/web/static/assets/markdown-CA7ePUts.js +30 -0
  501. package/dist/web/static/assets/markdown-CA7ePUts.js.map +1 -0
  502. package/dist/web/static/assets/{outcome-DUn1NjlC.js → outcome-BKGy9azt.js} +2 -2
  503. package/dist/web/static/assets/{outcome-DUn1NjlC.js.map → outcome-BKGy9azt.js.map} +1 -1
  504. package/dist/web/static/assets/{query-S6X1S7K9.js → query-CgCOpYWf.js} +2 -2
  505. package/dist/web/static/assets/{query-S6X1S7K9.js.map → query-CgCOpYWf.js.map} +1 -1
  506. package/dist/web/static/assets/{react-router-JVUrkhdd.js → react-router-Cxmg8RuL.js} +3 -3
  507. package/dist/web/static/assets/{react-router-JVUrkhdd.js.map → react-router-Cxmg8RuL.js.map} +1 -1
  508. package/dist/web/static/assets/{syntax-highlighter-BkZfCDsz.js → syntax-highlighter-BDYycNja.js} +3 -3
  509. package/dist/web/static/assets/{syntax-highlighter-BkZfCDsz.js.map → syntax-highlighter-BDYycNja.js.map} +1 -1
  510. package/dist/web/static/assets/task-title-BhOcemuR.js +2 -0
  511. package/dist/web/static/assets/task-title-BhOcemuR.js.map +1 -0
  512. package/dist/web/static/assets/useAgentStats-B-uTgqBd.js +2 -0
  513. package/dist/web/static/assets/useAgentStats-B-uTgqBd.js.map +1 -0
  514. package/dist/web/static/assets/useDecisions-D-G2Ft5T.js +2 -0
  515. package/dist/web/static/assets/useDecisions-D-G2Ft5T.js.map +1 -0
  516. package/dist/web/static/assets/useDistill-21dZkXlT.js +3 -0
  517. package/dist/web/static/assets/useDistill-21dZkXlT.js.map +1 -0
  518. package/dist/web/static/assets/useEffectiveProject-DQiyX54y.js +2 -0
  519. package/dist/web/static/assets/useEffectiveProject-DQiyX54y.js.map +1 -0
  520. package/dist/web/static/assets/useIssuesFeed-CFiyQkAL.js +2 -0
  521. package/dist/web/static/assets/useIssuesFeed-CFiyQkAL.js.map +1 -0
  522. package/dist/web/static/assets/useKbHits-xKXWgqh9.js +2 -0
  523. package/dist/web/static/assets/useKbHits-xKXWgqh9.js.map +1 -0
  524. package/dist/web/static/assets/useSkillStats-B5hbIwdf.js +2 -0
  525. package/dist/web/static/assets/useSkillStats-B5hbIwdf.js.map +1 -0
  526. package/dist/web/static/assets/vendor-DS-q4Eyc.js +36 -0
  527. package/dist/web/static/assets/vendor-DS-q4Eyc.js.map +1 -0
  528. package/dist/web/static/index.html +6 -6
  529. package/package.json +5 -3
  530. package/dist/core/storage/workflow-recommendations.d.ts +0 -124
  531. package/dist/core/storage/workflow-recommendations.d.ts.map +0 -1
  532. package/dist/core/storage/workflow-recommendations.js +0 -274
  533. package/dist/core/storage/workflow-recommendations.js.map +0 -1
  534. package/dist/daemon/services/experience-extractor.d.ts.map +0 -1
  535. package/dist/daemon/services/experience-extractor.js.map +0 -1
  536. package/dist/daemon/services/violation-reporter.d.ts.map +0 -1
  537. package/dist/daemon/services/violation-reporter.js.map +0 -1
  538. package/dist/daemon/templates/agents/harness-hotfix.md +0 -99
  539. package/dist/daemon/templates/agents/hybrid-feature-with-safety.md +0 -104
  540. package/dist/daemon/templates/agents/refactor-specialist.md +0 -98
  541. package/dist/skills/distill/claude-cli-resolver.d.ts.map +0 -1
  542. package/dist/skills/distill/claude-cli-resolver.js.map +0 -1
  543. package/dist/skills/distilled/distilled-defi-amm-security.md +0 -293
  544. package/dist/skills/keyword-score.d.ts +0 -29
  545. package/dist/skills/keyword-score.d.ts.map +0 -1
  546. package/dist/skills/keyword-score.js +0 -54
  547. package/dist/skills/keyword-score.js.map +0 -1
  548. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js +0 -2
  549. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js.map +0 -1
  550. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js +0 -2
  551. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js.map +0 -1
  552. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js +0 -3
  553. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js.map +0 -1
  554. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js +0 -2
  555. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js.map +0 -1
  556. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js +0 -2
  557. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js.map +0 -1
  558. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js +0 -2
  559. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js.map +0 -1
  560. package/dist/web/static/assets/DriftTab-DqpepOhI.js +0 -2
  561. package/dist/web/static/assets/DriftTab-DqpepOhI.js.map +0 -1
  562. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js +0 -3
  563. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js.map +0 -1
  564. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js +0 -2
  565. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js.map +0 -1
  566. package/dist/web/static/assets/NotFound-BQPh0vaF.js +0 -2
  567. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js +0 -2
  568. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js.map +0 -1
  569. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js +0 -2
  570. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js.map +0 -1
  571. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js +0 -2
  572. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js.map +0 -1
  573. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js +0 -2
  574. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js.map +0 -1
  575. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js +0 -2
  576. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js.map +0 -1
  577. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js +0 -6
  578. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js.map +0 -1
  579. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js +0 -3
  580. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js.map +0 -1
  581. package/dist/web/static/assets/arco-Bhi3a6Qp.js +0 -14
  582. package/dist/web/static/assets/arco-Bhi3a6Qp.js.map +0 -1
  583. package/dist/web/static/assets/charts-BuHQWDbQ.js +0 -37
  584. package/dist/web/static/assets/charts-BuHQWDbQ.js.map +0 -1
  585. package/dist/web/static/assets/index-BIYnq1Dx.js +0 -4
  586. package/dist/web/static/assets/index-BIYnq1Dx.js.map +0 -1
  587. package/dist/web/static/assets/useTabsParam-k8qte_0C.js +0 -2
  588. package/dist/web/static/assets/useTabsParam-k8qte_0C.js.map +0 -1
  589. package/dist/web/static/assets/vendor-DWgdB1eY.js +0 -65
  590. package/dist/web/static/assets/vendor-DWgdB1eY.js.map +0 -1
  591. /package/dist/{skills/distill → core/utils}/claude-cli-resolver.d.ts +0 -0
@@ -1,4 +1,25 @@
1
1
  import { getUserPrompt } from '../../core/event-fields.js';
2
+ import { classifyPromptKind } from '../../core/utils/noise-prompt.js';
3
+ /**
4
+ * Compute the timeline `kind_label` for a user_prompt row (decision ed5c3e93,
5
+ * Q2 fix). `classifyPromptKind` has a "substantive-content carve-out" designed
6
+ * for `[Image #N]\n<caption>` — an envelope followed by a newline + real text
7
+ * is treated as a real human prompt. But a `<task-notification>` machine refill
8
+ * ALWAYS carries substantive remainder (`\n<task-id>…<tool-use-id>…`), so it
9
+ * hits that carve-out and is mislabeled `'user'`, making the frontend render it
10
+ * as a「人工输入第 K 轮」instead of folding it into「系统回灌」.
11
+ *
12
+ * Fix at the single source (this backend label): `<task-notification>` is
13
+ * UNCONDITIONALLY a machine callback regardless of remainder length. We do NOT
14
+ * touch `classifyPromptKind` itself — it is shared cross-project for
15
+ * routing/segmentation and must keep its carve-out semantics. For every other
16
+ * prefix the carve-out still applies via classifyPromptKind.
17
+ */
18
+ function timelinePromptKind(text) {
19
+ if (text.trimStart().startsWith('<task-notification>'))
20
+ return 'agent-callback';
21
+ return classifyPromptKind(text);
22
+ }
2
23
  // ── Artifact classifier (path → bucket) ──────────────────────────────────────
3
24
  // Pure helper, exported for unit testing.
4
25
  export function classifyArtifact(path) {
@@ -33,23 +54,50 @@ function extractCommitHash(output) {
33
54
  const m = String(text).match(GIT_COMMIT_HASH_RE);
34
55
  return m ? m[0] : null;
35
56
  }
36
- function extractCommitMessage(input) {
57
+ /**
58
+ * Upper bound for the full commit message we return. Commit messages are small
59
+ * (a few lines), but a pathological `git commit -m "<huge blob>"` could bloat
60
+ * the payload — mirror the 8KB OUTPUT_CAP order of magnitude used by
61
+ * tasks.ts agentSpawns. message_preview stays at 200 for overview/list use.
62
+ */
63
+ const COMMIT_MESSAGE_CAP = 8000;
64
+ const COMMIT_MESSAGE_PREVIEW_LEN = 200;
65
+ /**
66
+ * Extract the raw commit message body from a Bash `git commit` tool_input.
67
+ * Returns the full `-m"..."` payload (or first command line as a fallback),
68
+ * uncapped here — callers cap via {@link buildCommitMessage}.
69
+ */
70
+ function extractCommitMessageRaw(input) {
37
71
  const cmd = input?.command;
38
72
  if (typeof cmd !== 'string')
39
73
  return '';
40
74
  // Try to pull the -m"..." or -m '...' payload; fall back to first line.
41
75
  const mm = cmd.match(/-m\s*(['"])([\s\S]*?)\1/);
42
76
  if (mm)
43
- return mm[2].slice(0, 200);
44
- return cmd.split('\n')[0].slice(0, 200);
77
+ return mm[2];
78
+ return cmd.split('\n')[0];
79
+ }
80
+ /**
81
+ * Build the commit-event message fields from a Bash git-commit tool_input:
82
+ * - message_preview: first ≤200 chars (unchanged overview semantics)
83
+ * - message_full: full body capped at COMMIT_MESSAGE_CAP
84
+ * - message_truncated: whether the cap clipped the full body
85
+ */
86
+ function buildCommitMessage(input) {
87
+ const raw = extractCommitMessageRaw(input);
88
+ const truncated = raw.length > COMMIT_MESSAGE_CAP;
89
+ return {
90
+ preview: raw.slice(0, COMMIT_MESSAGE_PREVIEW_LEN),
91
+ full: truncated ? raw.slice(0, COMMIT_MESSAGE_CAP) : raw,
92
+ truncated,
93
+ };
45
94
  }
46
95
  // ── Stable secondary sort: by at then by kind priority ───────────────────────
47
96
  // Same-millisecond events get an order so the UI doesn't visually flicker
48
- // across reloads. Priority chosen so user→hint→enforce→spawn→commit reads top
97
+ // across reloads. Priority chosen so user→enforce→spawn→commit reads top
49
98
  // down even when the daemon writes them in the same tick.
50
99
  const KIND_PRIORITY = {
51
100
  user_prompt: 0,
52
- daemon_hint: 1,
53
101
  daemon_enforce: 2,
54
102
  agent_spawn: 3,
55
103
  commit: 4,
@@ -60,6 +108,159 @@ function compareEvents(a, b) {
60
108
  return a.at < b.at ? -1 : 1;
61
109
  return KIND_PRIORITY[a.kind] - KIND_PRIORITY[b.kind];
62
110
  }
111
+ /**
112
+ * Tail grace window for commit best-effort attribution (decision c425f26f,
113
+ * Batch 2, user ruling #4 / spec Open-Q Q1): commits within [first workflow
114
+ * spawn, last workflow spawn + 30min] of the same session are attributed to the
115
+ * workflow. 30min aligns with the task resume window (TASK_RESUME_WINDOW_MS).
116
+ */
117
+ const COMMIT_GRACE_MS = 30 * 60_000;
118
+ /**
119
+ * Pair Pre/Post Task spawns into agent_spawn TimelineEvents. Shared by the
120
+ * single-task path (legacy) and the cross-task aggregated path (Batch 2).
121
+ *
122
+ * `taskEndMs` provides the task_end duration fallback (single-task only — for
123
+ * the aggregated path it is null since spawns span multiple tasks). `withTaskId`
124
+ * toggles whether `task_id` is emitted on each event (aggregated path only).
125
+ */
126
+ function buildAgentSpawnEvents(spawns, opts) {
127
+ const out = [];
128
+ const preTasks = spawns.filter((e) => e.hook_type === 'PreToolUse');
129
+ const postTasks = spawns.filter((e) => e.hook_type === 'PostToolUse');
130
+ const consumedPostIds = new Set();
131
+ for (const pre of preTasks) {
132
+ const ti = pre.tool_input ?? {};
133
+ // subagent_type now lives in the plaintext column (aggregated path) OR in
134
+ // tool_input (single-task path) — prefer the explicit field, fall back to
135
+ // tool_input.
136
+ const subagentType = typeof pre.subagent_type === 'string'
137
+ ? pre.subagent_type
138
+ : typeof ti.subagent_type === 'string'
139
+ ? ti.subagent_type
140
+ : null;
141
+ const name = typeof ti.name === 'string' ? ti.name : null;
142
+ const promptFull = typeof ti.prompt === 'string' ? ti.prompt : '';
143
+ const post = postTasks.find((p) => !consumedPostIds.has(p.event_id ?? p.timestamp) &&
144
+ p.timestamp >= pre.timestamp &&
145
+ (!subagentType ||
146
+ (typeof (p.subagent_type ?? p.tool_input?.subagent_type) === 'string'
147
+ ? (p.subagent_type ?? p.tool_input?.subagent_type) === subagentType
148
+ : true)));
149
+ if (post)
150
+ consumedPostIds.add(post.event_id ?? post.timestamp);
151
+ const outputStr = post?.tool_output
152
+ ? typeof post.tool_output === 'string'
153
+ ? post.tool_output
154
+ : JSON.stringify(post.tool_output)
155
+ : '';
156
+ let durationMs = null;
157
+ let durationSource = 'unknown';
158
+ const preMs = new Date(pre.timestamp).getTime();
159
+ if (post && post.timestamp) {
160
+ durationMs = new Date(post.timestamp).getTime() - preMs;
161
+ durationSource = 'paired';
162
+ }
163
+ else if (opts.taskEndMs !== null && opts.taskEndMs >= preMs) {
164
+ durationMs = opts.taskEndMs - preMs;
165
+ durationSource = 'task_end';
166
+ }
167
+ out.push({
168
+ kind: 'agent_spawn',
169
+ at: pre.timestamp,
170
+ subagent_type: subagentType,
171
+ name,
172
+ duration_ms: durationMs,
173
+ duration_source: durationSource,
174
+ prompt_preview: promptFull.slice(0, 500),
175
+ prompt_length: promptFull.length,
176
+ output_preview: outputStr.slice(0, 500),
177
+ output_length: outputStr.length,
178
+ ...(opts.withTaskId ? { task_id: pre.task_id ?? null } : {}),
179
+ });
180
+ }
181
+ return out;
182
+ }
183
+ /**
184
+ * Shared best-effort commit attribution for an aggregated workflow (decision
185
+ * c425f26f Batch 2 + f47c2c90 二期B). Both the decision_id (A) and parent_task
186
+ * (B) aggregation paths attribute commits the SAME way: git commits carry no
187
+ * decision_id / task chain, so we pick PostToolUse Bash `git commit` rows in the
188
+ * same session within [first workflow spawn, last workflow spawn + grace]. NEVER
189
+ * drives outcome (core-belief). Mutates `events` + `seenCommitEventIds` in place.
190
+ *
191
+ * Extracted to a helper so A and B share one implementation (spec 1711 §3.2 —
192
+ * "把现有 A 分支的时间窗 commit 逻辑抽成共享 helper").
193
+ */
194
+ function appendBestEffortCommits(opts) {
195
+ const sorted = opts.spawnTimestamps.filter(Boolean).sort();
196
+ if (sorted.length === 0)
197
+ return;
198
+ const firstTs = sorted[0];
199
+ const lastTs = sorted[sorted.length - 1];
200
+ const graceTo = new Date(new Date(lastTs).getTime() + COMMIT_GRACE_MS).toISOString();
201
+ const candidateCommits = opts.storage
202
+ .queryEvents({
203
+ session_id: opts.sessionId,
204
+ hook_type: 'PostToolUse',
205
+ since: firstTs,
206
+ limit: 2000,
207
+ })
208
+ .filter((e) => e.timestamp <= graceTo);
209
+ for (const e of candidateCommits) {
210
+ if (e.tool_name !== 'Bash')
211
+ continue;
212
+ if (e.event_id && opts.seenCommitEventIds.has(e.event_id))
213
+ continue;
214
+ const cmd = e.tool_input?.command;
215
+ if (typeof cmd !== 'string' || !/\bgit\s+commit\b/.test(cmd))
216
+ continue;
217
+ if (e.event_id)
218
+ opts.seenCommitEventIds.add(e.event_id);
219
+ const hash = extractCommitHash(e.tool_output);
220
+ const msg = buildCommitMessage(e.tool_input);
221
+ opts.events.push({
222
+ kind: 'commit',
223
+ at: e.timestamp,
224
+ hash: hash ?? `(commit @ ${e.timestamp.slice(11, 19)})`,
225
+ message_preview: msg.preview,
226
+ message_full: msg.full,
227
+ message_truncated: msg.truncated,
228
+ attribution: 'best-effort',
229
+ });
230
+ }
231
+ }
232
+ /**
233
+ * Collect the per-turn human inputs for a cross-task aggregated workflow
234
+ * (decision ed5c3e93, spec 0909). Both the decision_id (A) and parent_task (B)
235
+ * arms call this with the distinct task_id set of their spawn rows: a workflow's
236
+ * later turns live in OTHER per-prompt tasks, so the originating task's own
237
+ * UserPromptSubmit rows aren't enough. Reads PLAINTEXT user_prompt (never gzip),
238
+ * pushes `user_prompt` TimelineEvents carrying event_id + task_id + kind_label,
239
+ * deduped by event_id via the shared `seenUserPromptEventIds` set. Mutates
240
+ * `events` in place.
241
+ */
242
+ function appendAggregatedUserPrompts(opts) {
243
+ if (opts.taskIds.size === 0)
244
+ return;
245
+ const rows = opts.storage.queryUserPromptsByTaskIds([...opts.taskIds]);
246
+ for (const row of rows) {
247
+ if (!row.user_prompt)
248
+ continue;
249
+ if (row.event_id) {
250
+ if (opts.seenUserPromptEventIds.has(row.event_id))
251
+ continue;
252
+ opts.seenUserPromptEventIds.add(row.event_id);
253
+ }
254
+ opts.events.push({
255
+ kind: 'user_prompt',
256
+ at: row.timestamp,
257
+ text: row.user_prompt.slice(0, 1000),
258
+ event_id: row.event_id,
259
+ task_id: row.task_id,
260
+ kind_label: timelinePromptKind(row.user_prompt),
261
+ });
262
+ }
263
+ }
63
264
  // ── Route registration ──────────────────────────────────────────────────────
64
265
  export function registerTaskTimelineRoutes(app, ctx) {
65
266
  const { storage } = ctx;
@@ -79,6 +280,11 @@ export function registerTaskTimelineRoutes(app, ctx) {
79
280
  const winFromN = normTs(winFrom);
80
281
  const winToN = normTs(winTo);
81
282
  const events = [];
283
+ // Shared dedup set for user_prompt events keyed by event_id (decision
284
+ // ed5c3e93). The single-task arm and the two cross-task aggregation arms all
285
+ // run through this set so the SAME UserPromptSubmit event surfaces at most
286
+ // once. Rows without an event_id are pushed unconditionally (legacy-safe).
287
+ const seenUserPromptEventIds = new Set();
82
288
  const artifacts = {
83
289
  spec: [],
84
290
  archive: [],
@@ -102,33 +308,50 @@ export function registerTaskTimelineRoutes(app, ctx) {
102
308
  }
103
309
  // ── 1. Raw events (UserPromptSubmit + Pre/PostToolUse) ────────────────
104
310
  const taskEvents = storage.queryEventsByTaskIdWithFallback(taskId, { limit: 5000 });
105
- // user_prompt events
311
+ // user_prompt events (single-task arm). Records event_id into the shared
312
+ // dedup set so the cross-task aggregation arms below don't re-push the same
313
+ // turn. kind_label is filled by classifyPromptKind (single-source口径).
106
314
  for (const e of taskEvents) {
107
315
  if (e.hook_type !== 'UserPromptSubmit')
108
316
  continue;
109
317
  const text = getUserPrompt(e);
110
318
  if (!text)
111
319
  continue;
320
+ if (e.event_id) {
321
+ if (seenUserPromptEventIds.has(e.event_id))
322
+ continue;
323
+ seenUserPromptEventIds.add(e.event_id);
324
+ }
112
325
  events.push({
113
326
  kind: 'user_prompt',
114
327
  at: e.timestamp,
115
328
  text: text.slice(0, 1000),
116
329
  event_id: e.event_id,
330
+ kind_label: timelinePromptKind(text),
117
331
  });
118
332
  }
119
- // commit events (PostToolUse Bash with git commit)
333
+ // commit events (PostToolUse Bash with git commit) — exact attribution
334
+ // (linked into THIS task's own window). The cross-task aggregated path below
335
+ // adds extra best-effort commits keyed off the workflow time window.
336
+ const seenCommitEventIds = new Set();
120
337
  for (const e of taskEvents) {
121
338
  if (e.hook_type !== 'PostToolUse' || e.tool_name !== 'Bash')
122
339
  continue;
123
340
  const cmd = e.tool_input?.command;
124
341
  if (typeof cmd !== 'string' || !/\bgit\s+commit\b/.test(cmd))
125
342
  continue;
343
+ if (e.event_id)
344
+ seenCommitEventIds.add(e.event_id);
126
345
  const hash = extractCommitHash(e.tool_output);
346
+ const msg = buildCommitMessage(e.tool_input);
127
347
  events.push({
128
348
  kind: 'commit',
129
349
  at: e.timestamp,
130
350
  hash: hash ?? `(commit @ ${e.timestamp.slice(11, 19)})`,
131
- message_preview: extractCommitMessage(e.tool_input),
351
+ message_preview: msg.preview,
352
+ message_full: msg.full,
353
+ message_truncated: msg.truncated,
354
+ attribution: 'exact',
132
355
  });
133
356
  }
134
357
  // file artifacts (PreToolUse Edit/Write file_path)
@@ -141,90 +364,122 @@ export function registerTaskTimelineRoutes(app, ctx) {
141
364
  if (typeof fp === 'string' && fp.length > 0)
142
365
  pushArtifact(fp);
143
366
  }
144
- // ── 2. Agent spawn pairs (Pre/Post Task) ──────────────────────────────
145
- // workflow_recommendations comes first because we need it to compute
146
- // was_recommended_by_daemon for each spawn.
147
- const workflowRecs = storage
148
- .queryWorkflowRecommendations({ session_id: task.session_id, limit: 100 })
149
- .filter((r) => r.timestamp >= winFrom && r.timestamp <= winTo);
150
- for (const r of workflowRecs) {
151
- events.push({
152
- kind: 'daemon_hint',
153
- at: r.timestamp,
154
- rule_id: r.rule_id,
155
- recommended_workflow: r.recommended_workflow,
156
- recommended_agent_type: r.recommended_agent_type,
157
- reason: r.reason,
158
- source: r.source,
367
+ // ── 2. Agent spawn pairs — cross-task workflow aggregation (c425f26f) ───
368
+ //
369
+ // Resolve this task's home decision_id from its own spawns' plaintext column.
370
+ // When present, the implement / verify (and decision/planner) spawns of the
371
+ // SAME workflow may live in OTHER per-prompt tasks; aggregate them all by
372
+ // decision_id so the four segments are no longer fragmented. When absent,
373
+ // fall back to the legacy single-task pairing (aggregated:false).
374
+ const taskEndMs = task.end_time ? new Date(task.end_time).getTime() : null;
375
+ const decisionId = storage.queryTaskDecisionId(taskId);
376
+ let workflow;
377
+ if (decisionId) {
378
+ // Aggregated path: pull the whole workflow's spawns (plaintext column,
379
+ // LEFT JOIN task_events for task_id; no gzip — strictly per spawn row's
380
+ // own decision_id, R5-safe). Duration falls back to task_end only in the
381
+ // single-task path, so taskEndMs=null here (spawns span tasks).
382
+ const agg = storage.queryWorkflowSpawnsByDecisionId(decisionId);
383
+ const spawnEvents = buildAgentSpawnEvents(agg.spawns.map((s) => ({
384
+ event_id: s.event_id,
385
+ timestamp: s.timestamp,
386
+ hook_type: s.hook_type,
387
+ subagent_type: s.subagent_type,
388
+ tool_input: s.tool_input,
389
+ tool_output: s.tool_output,
390
+ task_id: s.task_id,
391
+ })), { taskEndMs: null, withTaskId: true });
392
+ for (const ev of spawnEvents)
393
+ events.push(ev);
394
+ workflow = {
395
+ decision_id: decisionId,
396
+ aggregated: true,
397
+ turn_count: agg.task_count,
398
+ source: 'decision_id',
399
+ };
400
+ // per-turn human input: collect UserPromptSubmit rows across the whole
401
+ // workflow's distinct tasks (decision ed5c3e93). Later turns live in other
402
+ // per-prompt tasks not visible to the single-task arm above.
403
+ appendAggregatedUserPrompts({
404
+ storage,
405
+ taskIds: new Set(agg.spawns.map((s) => s.task_id).filter((t) => !!t)),
406
+ events,
407
+ seenUserPromptEventIds,
408
+ });
409
+ // commit best-effort: same session + [first workflow spawn, last workflow
410
+ // spawn + grace] window (user ruling #4). NOT linked by decision_id (git
411
+ // commits carry none). Standalone — NEVER drives outcome (core-belief).
412
+ appendBestEffortCommits({
413
+ storage,
414
+ sessionId: task.session_id,
415
+ spawnTimestamps: agg.spawns.map((s) => s.timestamp),
416
+ events,
417
+ seenCommitEventIds,
159
418
  });
160
419
  }
161
- const preTasks = taskEvents.filter((e) => (e.tool_name === 'Task' || e.tool_name === 'Agent') && e.hook_type === 'PreToolUse');
162
- const postTasks = taskEvents.filter((e) => (e.tool_name === 'Task' || e.tool_name === 'Agent') && e.hook_type === 'PostToolUse');
163
- // Polish-1 (2026-05-29): proper Pre/Post pairing.
164
- // Bug: `postTasks.find()` reused the same post for every pre with the
165
- // same subagent_type spawns 2..N all got duration_ms based on the
166
- // FIRST post (often == 0ms for back-to-back spawns).
167
- // Fix: consume posts as we pair (one post → one pre), preserving order.
168
- // Fallback: when no post exists for a pre, derive duration from
169
- // task.end_time (agent likely still running or PostToolUse log lost).
170
- const taskEndMs = task.end_time ? new Date(task.end_time).getTime() : null;
171
- const consumedPostIds = new Set();
172
- for (const pre of preTasks) {
173
- const ti = pre.tool_input ?? {};
174
- const subagentType = typeof ti.subagent_type === 'string' ? ti.subagent_type : null;
175
- const name = typeof ti.name === 'string' ? ti.name : null;
176
- const promptFull = typeof ti.prompt === 'string' ? ti.prompt : '';
177
- // Pair with the FIRST unconsumed post after this pre.timestamp, preferring
178
- // same subagent_type if both pre and post carry it. Then mark consumed so
179
- // the next pre can't re-pair to the same post. Falls back to timestamp
180
- // as the key when event_id is absent (defensive — should never happen).
181
- const post = postTasks.find((p) => !consumedPostIds.has(p.event_id ?? p.timestamp) &&
182
- p.timestamp >= pre.timestamp &&
183
- (!subagentType ||
184
- (typeof p.tool_input?.subagent_type === 'string'
185
- ? p.tool_input.subagent_type === subagentType
186
- : true)));
187
- if (post)
188
- consumedPostIds.add(post.event_id ?? post.timestamp);
189
- const outputStr = post?.tool_output
190
- ? typeof post.tool_output === 'string'
191
- ? post.tool_output
192
- : JSON.stringify(post.tool_output)
193
- : '';
194
- // Duration derivation w/ fallback (Polish-1).
195
- let durationMs = null;
196
- let durationSource = 'unknown';
197
- const preMs = new Date(pre.timestamp).getTime();
198
- if (post && post.timestamp) {
199
- durationMs = new Date(post.timestamp).getTime() - preMs;
200
- durationSource = 'paired';
420
+ else {
421
+ // No decision_id. decision f47c2c90 (二期B): try the parent_task_id chain
422
+ // fallback FIRST. Aggregate spawns across the whole parent/child chain this
423
+ // task belongs to, exactly like the A path but keyed off the structural
424
+ // link instead of decision_id. STRICTLY mutually exclusive with A (we only
425
+ // reach here when decisionId is null), so no double aggregation (R3).
426
+ const chain = storage.queryParentTaskChainSpawns(taskId);
427
+ if (chain.task_count > 1 && chain.spawns.length > 0) {
428
+ const spawnEvents = buildAgentSpawnEvents(chain.spawns.map((s) => ({
429
+ event_id: s.event_id,
430
+ timestamp: s.timestamp,
431
+ hook_type: s.hook_type,
432
+ subagent_type: s.subagent_type,
433
+ tool_input: s.tool_input,
434
+ tool_output: s.tool_output,
435
+ task_id: s.task_id,
436
+ })), { taskEndMs: null, withTaskId: true });
437
+ for (const ev of spawnEvents)
438
+ events.push(ev);
439
+ workflow = {
440
+ decision_id: null,
441
+ aggregated: true,
442
+ turn_count: chain.task_count,
443
+ source: 'parent_task',
444
+ };
445
+ // per-turn human input across the parent_task chain (decision ed5c3e93).
446
+ appendAggregatedUserPrompts({
447
+ storage,
448
+ taskIds: new Set(chain.spawns.map((s) => s.task_id).filter((t) => !!t)),
449
+ events,
450
+ seenUserPromptEventIds,
451
+ });
452
+ // Same best-effort commit attribution as A (shared helper).
453
+ appendBestEffortCommits({
454
+ storage,
455
+ sessionId: task.session_id,
456
+ spawnTimestamps: chain.spawns.map((s) => s.timestamp),
457
+ events,
458
+ seenCommitEventIds,
459
+ });
201
460
  }
202
- else if (taskEndMs !== null && taskEndMs >= preMs) {
203
- durationMs = taskEndMs - preMs;
204
- durationSource = 'task_end';
461
+ else {
462
+ // True single task (no decision_id AND no parent chain). Legacy behavior
463
+ // unchanged: pair Pre/Post within this task's events only, task_end
464
+ // duration fallback. aggregated:false, source:null.
465
+ const singleTaskSpawns = taskEvents
466
+ .filter((e) => (e.tool_name === 'Task' || e.tool_name === 'Agent') &&
467
+ (e.hook_type === 'PreToolUse' || e.hook_type === 'PostToolUse'))
468
+ .map((e) => ({
469
+ event_id: e.event_id,
470
+ timestamp: e.timestamp,
471
+ hook_type: e.hook_type,
472
+ tool_input: e.tool_input,
473
+ tool_output: e.tool_output,
474
+ }));
475
+ const spawnEvents = buildAgentSpawnEvents(singleTaskSpawns, {
476
+ taskEndMs,
477
+ withTaskId: false,
478
+ });
479
+ for (const ev of spawnEvents)
480
+ events.push(ev);
481
+ workflow = { decision_id: null, aggregated: false, turn_count: 1, source: null };
205
482
  }
206
- // Painpoint B: was this spawn recommended by daemon? True iff any
207
- // workflow_rec before pre.timestamp had matching agent_type.
208
- const earlierRec = workflowRecs.find((r) => r.timestamp <= pre.timestamp &&
209
- subagentType !== null &&
210
- r.recommended_agent_type === subagentType);
211
- const lastRecBeforeSpawn = workflowRecs
212
- .filter((r) => r.timestamp <= pre.timestamp)
213
- .sort((a, b) => (a.timestamp < b.timestamp ? 1 : -1))[0];
214
- events.push({
215
- kind: 'agent_spawn',
216
- at: pre.timestamp,
217
- subagent_type: subagentType,
218
- name,
219
- duration_ms: durationMs,
220
- duration_source: durationSource,
221
- prompt_preview: promptFull.slice(0, 500),
222
- prompt_length: promptFull.length,
223
- output_preview: outputStr.slice(0, 500),
224
- output_length: outputStr.length,
225
- was_recommended_by_daemon: !!earlierRec,
226
- recommended_agent_type_before: lastRecBeforeSpawn?.recommended_agent_type ?? null,
227
- });
228
483
  }
229
484
  // ── 3. Tool intercepts (daemon_enforce: deny / warn / bypass / dry_run) ──
230
485
  const intercepts = storage
@@ -267,6 +522,7 @@ export function registerTaskTimelineRoutes(app, ctx) {
267
522
  task_id: taskId,
268
523
  events,
269
524
  artifacts,
525
+ workflow,
270
526
  };
271
527
  res.json(response);
272
528
  });
@@ -1 +1 @@
1
- {"version":3,"file":"task-timeline.js","sourceRoot":"","sources":["../../../src/web/routes/task-timeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-timeline.js","sourceRoot":"","sources":["../../../src/web/routes/task-timeline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/web/routes/tasks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAyC/C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAsjB7E"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/web/routes/tasks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA0C/C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CA4kB7E"}