@winspan/claude-forge 8.54.4 → 9.2.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 (880) hide show
  1. package/DEVELOPMENT.md +649 -33
  2. package/README.md +154 -16
  3. package/dist/catalogs/agents.json +72 -0
  4. package/dist/catalogs/skills.json +194 -0
  5. package/dist/claudemd/claudemd-generator.d.ts +45 -45
  6. package/dist/claudemd/claudemd-generator.d.ts.map +1 -1
  7. package/dist/claudemd/claudemd-generator.js +128 -449
  8. package/dist/claudemd/claudemd-generator.js.map +1 -1
  9. package/dist/claudemd/index.d.ts +14 -4
  10. package/dist/claudemd/index.d.ts.map +1 -1
  11. package/dist/claudemd/index.js +15 -4
  12. package/dist/claudemd/index.js.map +1 -1
  13. package/dist/claudemd/resume-manager.d.ts.map +1 -1
  14. package/dist/claudemd/resume-manager.js +37 -9
  15. package/dist/claudemd/resume-manager.js.map +1 -1
  16. package/dist/claudemd/templates/swarm-protocol.md +35 -186
  17. package/dist/claudemd/violations-manager.d.ts +40 -0
  18. package/dist/claudemd/violations-manager.d.ts.map +1 -0
  19. package/dist/claudemd/violations-manager.js +106 -0
  20. package/dist/claudemd/violations-manager.js.map +1 -0
  21. package/dist/cli/commands/admin.d.ts +15 -0
  22. package/dist/cli/commands/admin.d.ts.map +1 -0
  23. package/dist/cli/commands/admin.js +177 -0
  24. package/dist/cli/commands/admin.js.map +1 -0
  25. package/dist/cli/commands/agents.d.ts +18 -0
  26. package/dist/cli/commands/agents.d.ts.map +1 -0
  27. package/dist/cli/commands/agents.js +160 -0
  28. package/dist/cli/commands/agents.js.map +1 -0
  29. package/dist/cli/commands/bypass.d.ts +18 -0
  30. package/dist/cli/commands/bypass.d.ts.map +1 -0
  31. package/dist/cli/commands/bypass.js +87 -0
  32. package/dist/cli/commands/bypass.js.map +1 -0
  33. package/dist/cli/commands/claudemd.d.ts +60 -0
  34. package/dist/cli/commands/claudemd.d.ts.map +1 -1
  35. package/dist/cli/commands/claudemd.js +174 -37
  36. package/dist/cli/commands/claudemd.js.map +1 -1
  37. package/dist/cli/commands/config.d.ts.map +1 -1
  38. package/dist/cli/commands/config.js +94 -1
  39. package/dist/cli/commands/config.js.map +1 -1
  40. package/dist/cli/commands/daemon.d.ts +39 -0
  41. package/dist/cli/commands/daemon.d.ts.map +1 -1
  42. package/dist/cli/commands/daemon.js +167 -20
  43. package/dist/cli/commands/daemon.js.map +1 -1
  44. package/dist/cli/commands/decisions.d.ts +129 -0
  45. package/dist/cli/commands/decisions.d.ts.map +1 -0
  46. package/dist/cli/commands/decisions.js +669 -0
  47. package/dist/cli/commands/decisions.js.map +1 -0
  48. package/dist/cli/commands/doctor.d.ts +29 -0
  49. package/dist/cli/commands/doctor.d.ts.map +1 -0
  50. package/dist/cli/commands/doctor.js +124 -0
  51. package/dist/cli/commands/doctor.js.map +1 -0
  52. package/dist/cli/commands/entropy.d.ts +35 -0
  53. package/dist/cli/commands/entropy.d.ts.map +1 -0
  54. package/dist/cli/commands/entropy.js +121 -0
  55. package/dist/cli/commands/entropy.js.map +1 -0
  56. package/dist/cli/commands/executions.d.ts +1 -0
  57. package/dist/cli/commands/executions.d.ts.map +1 -1
  58. package/dist/cli/commands/executions.js +10 -1
  59. package/dist/cli/commands/executions.js.map +1 -1
  60. package/dist/cli/commands/fix.d.ts +31 -0
  61. package/dist/cli/commands/fix.d.ts.map +1 -0
  62. package/dist/cli/commands/fix.js +108 -0
  63. package/dist/cli/commands/fix.js.map +1 -0
  64. package/dist/cli/commands/governance.d.ts +21 -0
  65. package/dist/cli/commands/governance.d.ts.map +1 -0
  66. package/dist/cli/commands/governance.js +60 -0
  67. package/dist/cli/commands/governance.js.map +1 -0
  68. package/dist/cli/commands/init.d.ts +27 -0
  69. package/dist/cli/commands/init.d.ts.map +1 -1
  70. package/dist/cli/commands/init.js +158 -146
  71. package/dist/cli/commands/init.js.map +1 -1
  72. package/dist/cli/commands/insights-goal-check.d.ts +50 -0
  73. package/dist/cli/commands/insights-goal-check.d.ts.map +1 -0
  74. package/dist/cli/commands/insights-goal-check.js +318 -0
  75. package/dist/cli/commands/insights-goal-check.js.map +1 -0
  76. package/dist/cli/commands/insights.d.ts +15 -0
  77. package/dist/cli/commands/insights.d.ts.map +1 -0
  78. package/dist/cli/commands/insights.js +127 -0
  79. package/dist/cli/commands/insights.js.map +1 -0
  80. package/dist/cli/commands/knowledge.d.ts +66 -0
  81. package/dist/cli/commands/knowledge.d.ts.map +1 -0
  82. package/dist/cli/commands/knowledge.js +897 -0
  83. package/dist/cli/commands/knowledge.js.map +1 -0
  84. package/dist/cli/commands/mcp.d.ts +0 -12
  85. package/dist/cli/commands/mcp.d.ts.map +1 -1
  86. package/dist/cli/commands/mcp.js +11 -5
  87. package/dist/cli/commands/mcp.js.map +1 -1
  88. package/dist/cli/commands/menu.d.ts.map +1 -1
  89. package/dist/cli/commands/menu.js +10 -184
  90. package/dist/cli/commands/menu.js.map +1 -1
  91. package/dist/cli/commands/project.d.ts +98 -0
  92. package/dist/cli/commands/project.d.ts.map +1 -0
  93. package/dist/cli/commands/project.js +382 -0
  94. package/dist/cli/commands/project.js.map +1 -0
  95. package/dist/cli/commands/skills.d.ts.map +1 -1
  96. package/dist/cli/commands/skills.js +14 -128
  97. package/dist/cli/commands/skills.js.map +1 -1
  98. package/dist/cli/commands/spec.d.ts +40 -0
  99. package/dist/cli/commands/spec.d.ts.map +1 -0
  100. package/dist/cli/commands/spec.js +49 -0
  101. package/dist/cli/commands/spec.js.map +1 -0
  102. package/dist/cli/commands/stats.d.ts.map +1 -1
  103. package/dist/cli/commands/stats.js +3 -2
  104. package/dist/cli/commands/stats.js.map +1 -1
  105. package/dist/cli/commands/status.d.ts.map +1 -1
  106. package/dist/cli/commands/status.js +17 -2
  107. package/dist/cli/commands/status.js.map +1 -1
  108. package/dist/cli/commands/trace.d.ts.map +1 -1
  109. package/dist/cli/commands/trace.js +4 -9
  110. package/dist/cli/commands/trace.js.map +1 -1
  111. package/dist/cli/commands/violations.d.ts +14 -0
  112. package/dist/cli/commands/violations.d.ts.map +1 -0
  113. package/dist/cli/commands/violations.js +43 -0
  114. package/dist/cli/commands/violations.js.map +1 -0
  115. package/dist/cli/index.js +26 -0
  116. package/dist/cli/index.js.map +1 -1
  117. package/dist/cli/init/hook-manager.d.ts +1 -1
  118. package/dist/cli/init/hook-manager.d.ts.map +1 -1
  119. package/dist/cli/init/hook-manager.js +6 -0
  120. package/dist/cli/init/hook-manager.js.map +1 -1
  121. package/dist/cli/utils/resolve-session.d.ts +32 -0
  122. package/dist/cli/utils/resolve-session.d.ts.map +1 -0
  123. package/dist/cli/utils/resolve-session.js +39 -0
  124. package/dist/cli/utils/resolve-session.js.map +1 -0
  125. package/dist/core/config.d.ts +4 -1
  126. package/dist/core/config.d.ts.map +1 -1
  127. package/dist/core/config.js +11 -23
  128. package/dist/core/config.js.map +1 -1
  129. package/dist/core/constants.d.ts +14 -13
  130. package/dist/core/constants.d.ts.map +1 -1
  131. package/dist/core/constants.js +20 -13
  132. package/dist/core/constants.js.map +1 -1
  133. package/dist/core/diagnostics/checks.d.ts +151 -0
  134. package/dist/core/diagnostics/checks.d.ts.map +1 -0
  135. package/dist/core/diagnostics/checks.js +765 -0
  136. package/dist/core/diagnostics/checks.js.map +1 -0
  137. package/dist/core/diagnostics/daemon-status.d.ts +77 -0
  138. package/dist/core/diagnostics/daemon-status.d.ts.map +1 -0
  139. package/dist/core/diagnostics/daemon-status.js +113 -0
  140. package/dist/core/diagnostics/daemon-status.js.map +1 -0
  141. package/dist/core/diagnostics/entropy-checks.d.ts +82 -0
  142. package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -0
  143. package/dist/core/diagnostics/entropy-checks.js +395 -0
  144. package/dist/core/diagnostics/entropy-checks.js.map +1 -0
  145. package/dist/core/diagnostics/fix-runner.d.ts +54 -0
  146. package/dist/core/diagnostics/fix-runner.d.ts.map +1 -0
  147. package/dist/core/diagnostics/fix-runner.js +90 -0
  148. package/dist/core/diagnostics/fix-runner.js.map +1 -0
  149. package/dist/core/diagnostics/knip-runner.d.ts +49 -0
  150. package/dist/core/diagnostics/knip-runner.d.ts.map +1 -0
  151. package/dist/core/diagnostics/knip-runner.js +100 -0
  152. package/dist/core/diagnostics/knip-runner.js.map +1 -0
  153. package/dist/core/diagnostics/markers.d.ts +96 -0
  154. package/dist/core/diagnostics/markers.d.ts.map +1 -0
  155. package/dist/core/diagnostics/markers.js +153 -0
  156. package/dist/core/diagnostics/markers.js.map +1 -0
  157. package/dist/core/governance/global-inject.d.ts +60 -0
  158. package/dist/core/governance/global-inject.d.ts.map +1 -0
  159. package/dist/core/governance/global-inject.js +129 -0
  160. package/dist/core/governance/global-inject.js.map +1 -0
  161. package/dist/core/queue/index.d.ts +16 -3
  162. package/dist/core/queue/index.d.ts.map +1 -1
  163. package/dist/core/queue/index.js +14 -3
  164. package/dist/core/queue/index.js.map +1 -1
  165. package/dist/core/storage/base.d.ts +158 -0
  166. package/dist/core/storage/base.d.ts.map +1 -1
  167. package/dist/core/storage/base.js +570 -0
  168. package/dist/core/storage/base.js.map +1 -1
  169. package/dist/core/storage/codec/tool-input-codec.d.ts +93 -0
  170. package/dist/core/storage/codec/tool-input-codec.d.ts.map +1 -0
  171. package/dist/core/storage/codec/tool-input-codec.js +159 -0
  172. package/dist/core/storage/codec/tool-input-codec.js.map +1 -0
  173. package/dist/core/storage/decisions.d.ts +362 -0
  174. package/dist/core/storage/decisions.d.ts.map +1 -0
  175. package/dist/core/storage/decisions.js +502 -0
  176. package/dist/core/storage/decisions.js.map +1 -0
  177. package/dist/core/storage/events.d.ts +112 -8
  178. package/dist/core/storage/events.d.ts.map +1 -1
  179. package/dist/core/storage/events.js +390 -39
  180. package/dist/core/storage/events.js.map +1 -1
  181. package/dist/core/storage/feedback.d.ts +131 -0
  182. package/dist/core/storage/feedback.d.ts.map +1 -0
  183. package/dist/core/storage/feedback.js +187 -0
  184. package/dist/core/storage/feedback.js.map +1 -0
  185. package/dist/core/storage/forge-config.d.ts +40 -0
  186. package/dist/core/storage/forge-config.d.ts.map +1 -0
  187. package/dist/core/storage/forge-config.js +65 -0
  188. package/dist/core/storage/forge-config.js.map +1 -0
  189. package/dist/core/storage/injections.d.ts +28 -0
  190. package/dist/core/storage/injections.d.ts.map +1 -1
  191. package/dist/core/storage/injections.js +62 -5
  192. package/dist/core/storage/injections.js.map +1 -1
  193. package/dist/core/storage/knowledge.d.ts +106 -0
  194. package/dist/core/storage/knowledge.d.ts.map +1 -0
  195. package/dist/core/storage/knowledge.js +202 -0
  196. package/dist/core/storage/knowledge.js.map +1 -0
  197. package/dist/core/storage/maintenance.d.ts +36 -9
  198. package/dist/core/storage/maintenance.d.ts.map +1 -1
  199. package/dist/core/storage/maintenance.js +56 -24
  200. package/dist/core/storage/maintenance.js.map +1 -1
  201. package/dist/core/storage/pipeline-rollup.d.ts +117 -0
  202. package/dist/core/storage/pipeline-rollup.d.ts.map +1 -0
  203. package/dist/core/storage/pipeline-rollup.js +471 -0
  204. package/dist/core/storage/pipeline-rollup.js.map +1 -0
  205. package/dist/core/storage/routing.d.ts +16 -3
  206. package/dist/core/storage/routing.d.ts.map +1 -1
  207. package/dist/core/storage/routing.js +39 -8
  208. package/dist/core/storage/routing.js.map +1 -1
  209. package/dist/core/storage/rows.d.ts +50 -7
  210. package/dist/core/storage/rows.d.ts.map +1 -1
  211. package/dist/core/storage/schema.sql +302 -23
  212. package/dist/core/storage/sessions.d.ts +136 -0
  213. package/dist/core/storage/sessions.d.ts.map +1 -1
  214. package/dist/core/storage/sessions.js +351 -15
  215. package/dist/core/storage/sessions.js.map +1 -1
  216. package/dist/core/storage/skills.d.ts +1 -0
  217. package/dist/core/storage/skills.d.ts.map +1 -1
  218. package/dist/core/storage/skills.js +21 -6
  219. package/dist/core/storage/skills.js.map +1 -1
  220. package/dist/core/storage/sqlite.d.ts +253 -20
  221. package/dist/core/storage/sqlite.d.ts.map +1 -1
  222. package/dist/core/storage/sqlite.js +425 -16
  223. package/dist/core/storage/sqlite.js.map +1 -1
  224. package/dist/core/storage/tasks.d.ts +474 -2
  225. package/dist/core/storage/tasks.d.ts.map +1 -1
  226. package/dist/core/storage/tasks.js +1213 -18
  227. package/dist/core/storage/tasks.js.map +1 -1
  228. package/dist/core/storage/tool-intercepts.d.ts +69 -0
  229. package/dist/core/storage/tool-intercepts.d.ts.map +1 -0
  230. package/dist/core/storage/tool-intercepts.js +116 -0
  231. package/dist/core/storage/tool-intercepts.js.map +1 -0
  232. package/dist/core/storage/workflow-recommendations.d.ts +124 -0
  233. package/dist/core/storage/workflow-recommendations.d.ts.map +1 -0
  234. package/dist/core/storage/workflow-recommendations.js +274 -0
  235. package/dist/core/storage/workflow-recommendations.js.map +1 -0
  236. package/dist/core/types.d.ts +112 -17
  237. package/dist/core/types.d.ts.map +1 -1
  238. package/dist/core/types.js +12 -0
  239. package/dist/core/types.js.map +1 -1
  240. package/dist/core/utils/backup.d.ts +81 -0
  241. package/dist/core/utils/backup.d.ts.map +1 -0
  242. package/dist/core/utils/backup.js +98 -0
  243. package/dist/core/utils/backup.js.map +1 -0
  244. package/dist/core/utils/binary-paths.d.ts +92 -0
  245. package/dist/core/utils/binary-paths.d.ts.map +1 -0
  246. package/dist/core/utils/binary-paths.js +166 -0
  247. package/dist/core/utils/binary-paths.js.map +1 -0
  248. package/dist/core/utils/bypass-token.d.ts +75 -0
  249. package/dist/core/utils/bypass-token.d.ts.map +1 -0
  250. package/dist/core/utils/bypass-token.js +133 -0
  251. package/dist/core/utils/bypass-token.js.map +1 -0
  252. package/dist/core/utils/cc-builtin-agents.d.ts +3 -0
  253. package/dist/core/utils/cc-builtin-agents.d.ts.map +1 -0
  254. package/dist/core/utils/cc-builtin-agents.js +29 -0
  255. package/dist/core/utils/cc-builtin-agents.js.map +1 -0
  256. package/dist/core/utils/claude-cli-spawn.d.ts +106 -0
  257. package/dist/core/utils/claude-cli-spawn.d.ts.map +1 -0
  258. package/dist/core/utils/claude-cli-spawn.js +219 -0
  259. package/dist/core/utils/claude-cli-spawn.js.map +1 -0
  260. package/dist/core/utils/forge-resume-block.d.ts.map +1 -1
  261. package/dist/core/utils/forge-resume-block.js +3 -2
  262. package/dist/core/utils/forge-resume-block.js.map +1 -1
  263. package/dist/core/utils/logger.d.ts +15 -3
  264. package/dist/core/utils/logger.d.ts.map +1 -1
  265. package/dist/core/utils/logger.js +20 -2
  266. package/dist/core/utils/logger.js.map +1 -1
  267. package/dist/core/utils/noise-prompt.d.ts +97 -0
  268. package/dist/core/utils/noise-prompt.d.ts.map +1 -0
  269. package/dist/core/utils/noise-prompt.js +127 -0
  270. package/dist/core/utils/noise-prompt.js.map +1 -0
  271. package/dist/core/utils/path.d.ts +0 -4
  272. package/dist/core/utils/path.d.ts.map +1 -1
  273. package/dist/core/utils/path.js +0 -7
  274. package/dist/core/utils/path.js.map +1 -1
  275. package/dist/core/utils/time.d.ts +41 -0
  276. package/dist/core/utils/time.d.ts.map +1 -1
  277. package/dist/core/utils/time.js +114 -0
  278. package/dist/core/utils/time.js.map +1 -1
  279. package/dist/daemon/agent-sync.d.ts +24 -0
  280. package/dist/daemon/agent-sync.d.ts.map +1 -0
  281. package/dist/daemon/agent-sync.js +114 -0
  282. package/dist/daemon/agent-sync.js.map +1 -0
  283. package/dist/daemon/config-store.d.ts +55 -0
  284. package/dist/daemon/config-store.d.ts.map +1 -0
  285. package/dist/daemon/config-store.js +137 -0
  286. package/dist/daemon/config-store.js.map +1 -0
  287. package/dist/daemon/event-parser.d.ts +22 -0
  288. package/dist/daemon/event-parser.d.ts.map +1 -1
  289. package/dist/daemon/event-parser.js +49 -3
  290. package/dist/daemon/event-parser.js.map +1 -1
  291. package/dist/daemon/handlers/history-exporter.d.ts.map +1 -1
  292. package/dist/daemon/handlers/history-exporter.js +9 -8
  293. package/dist/daemon/handlers/history-exporter.js.map +1 -1
  294. package/dist/daemon/handlers/post-tool-use.d.ts +58 -4
  295. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
  296. package/dist/daemon/handlers/post-tool-use.js +261 -8
  297. package/dist/daemon/handlers/post-tool-use.js.map +1 -1
  298. package/dist/daemon/handlers/pre-tool-use.d.ts +156 -0
  299. package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -0
  300. package/dist/daemon/handlers/pre-tool-use.js +585 -0
  301. package/dist/daemon/handlers/pre-tool-use.js.map +1 -0
  302. package/dist/daemon/handlers/stop.d.ts +35 -7
  303. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  304. package/dist/daemon/handlers/stop.js +157 -8
  305. package/dist/daemon/handlers/stop.js.map +1 -1
  306. package/dist/daemon/handlers/user-prompt.d.ts +36 -14
  307. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  308. package/dist/daemon/handlers/user-prompt.js +135 -48
  309. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  310. package/dist/daemon/hook-sync.d.ts.map +1 -1
  311. package/dist/daemon/hook-sync.js +2 -1
  312. package/dist/daemon/hook-sync.js.map +1 -1
  313. package/dist/daemon/index.d.ts.map +1 -1
  314. package/dist/daemon/index.js +471 -43
  315. package/dist/daemon/index.js.map +1 -1
  316. package/dist/daemon/lifecycle.d.ts +48 -1
  317. package/dist/daemon/lifecycle.d.ts.map +1 -1
  318. package/dist/daemon/lifecycle.js +98 -2
  319. package/dist/daemon/lifecycle.js.map +1 -1
  320. package/dist/daemon/router.d.ts +4 -1
  321. package/dist/daemon/router.d.ts.map +1 -1
  322. package/dist/daemon/router.js +4 -2
  323. package/dist/daemon/router.js.map +1 -1
  324. package/dist/daemon/rules/defaults.d.ts +20 -0
  325. package/dist/daemon/rules/defaults.d.ts.map +1 -0
  326. package/dist/daemon/rules/defaults.js +692 -0
  327. package/dist/daemon/rules/defaults.js.map +1 -0
  328. package/dist/daemon/rules/registry.d.ts +47 -0
  329. package/dist/daemon/rules/registry.d.ts.map +1 -0
  330. package/dist/daemon/rules/registry.js +84 -0
  331. package/dist/daemon/rules/registry.js.map +1 -0
  332. package/dist/daemon/rules/types.d.ts +170 -0
  333. package/dist/daemon/rules/types.d.ts.map +1 -0
  334. package/dist/daemon/rules/types.js +15 -0
  335. package/dist/daemon/rules/types.js.map +1 -0
  336. package/dist/daemon/rules/whitelist.d.ts +101 -0
  337. package/dist/daemon/rules/whitelist.d.ts.map +1 -0
  338. package/dist/daemon/rules/whitelist.js +210 -0
  339. package/dist/daemon/rules/whitelist.js.map +1 -0
  340. package/dist/daemon/rules/workflow-defaults.d.ts +52 -0
  341. package/dist/daemon/rules/workflow-defaults.d.ts.map +1 -0
  342. package/dist/daemon/rules/workflow-defaults.js +521 -0
  343. package/dist/daemon/rules/workflow-defaults.js.map +1 -0
  344. package/dist/daemon/server.d.ts +11 -1
  345. package/dist/daemon/server.d.ts.map +1 -1
  346. package/dist/daemon/server.js +7 -1
  347. package/dist/daemon/server.js.map +1 -1
  348. package/dist/daemon/services/context-injector.d.ts +34 -0
  349. package/dist/daemon/services/context-injector.d.ts.map +1 -0
  350. package/dist/daemon/services/context-injector.js +61 -0
  351. package/dist/daemon/services/context-injector.js.map +1 -0
  352. package/dist/daemon/services/decision-hint.d.ts +203 -0
  353. package/dist/daemon/services/decision-hint.d.ts.map +1 -0
  354. package/dist/daemon/services/decision-hint.js +487 -0
  355. package/dist/daemon/services/decision-hint.js.map +1 -0
  356. package/dist/daemon/services/event-ttl-sweep.d.ts +86 -0
  357. package/dist/daemon/services/event-ttl-sweep.d.ts.map +1 -0
  358. package/dist/daemon/services/event-ttl-sweep.js +123 -0
  359. package/dist/daemon/services/event-ttl-sweep.js.map +1 -0
  360. package/dist/daemon/services/experience-extractor.d.ts +67 -0
  361. package/dist/daemon/services/experience-extractor.d.ts.map +1 -0
  362. package/dist/daemon/services/experience-extractor.js +323 -0
  363. package/dist/daemon/services/experience-extractor.js.map +1 -0
  364. package/dist/daemon/services/feedback-aggregator.d.ts +179 -0
  365. package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -0
  366. package/dist/daemon/services/feedback-aggregator.js +455 -0
  367. package/dist/daemon/services/feedback-aggregator.js.map +1 -0
  368. package/dist/daemon/services/heartbeat-writer.d.ts +55 -0
  369. package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -0
  370. package/dist/daemon/services/heartbeat-writer.js +111 -0
  371. package/dist/daemon/services/heartbeat-writer.js.map +1 -0
  372. package/dist/daemon/services/idle-session-sweeper.d.ts +61 -0
  373. package/dist/daemon/services/idle-session-sweeper.d.ts.map +1 -0
  374. package/dist/daemon/services/idle-session-sweeper.js +94 -0
  375. package/dist/daemon/services/idle-session-sweeper.js.map +1 -0
  376. package/dist/daemon/services/idle-task-budget.d.ts +50 -0
  377. package/dist/daemon/services/idle-task-budget.d.ts.map +1 -0
  378. package/dist/daemon/services/idle-task-budget.js +72 -0
  379. package/dist/daemon/services/idle-task-budget.js.map +1 -0
  380. package/dist/daemon/services/intercept-revive.d.ts +60 -0
  381. package/dist/daemon/services/intercept-revive.d.ts.map +1 -0
  382. package/dist/daemon/services/intercept-revive.js +86 -0
  383. package/dist/daemon/services/intercept-revive.js.map +1 -0
  384. package/dist/daemon/services/intercept-rollback-guard.d.ts +105 -0
  385. package/dist/daemon/services/intercept-rollback-guard.d.ts.map +1 -0
  386. package/dist/daemon/services/intercept-rollback-guard.js +152 -0
  387. package/dist/daemon/services/intercept-rollback-guard.js.map +1 -0
  388. package/dist/daemon/services/intercept-timeout-sweeper.d.ts +58 -0
  389. package/dist/daemon/services/intercept-timeout-sweeper.d.ts.map +1 -0
  390. package/dist/daemon/services/intercept-timeout-sweeper.js +83 -0
  391. package/dist/daemon/services/intercept-timeout-sweeper.js.map +1 -0
  392. package/dist/daemon/services/kb-injector.d.ts +57 -0
  393. package/dist/daemon/services/kb-injector.d.ts.map +1 -0
  394. package/dist/daemon/services/kb-injector.js +140 -0
  395. package/dist/daemon/services/kb-injector.js.map +1 -0
  396. package/dist/daemon/services/outcome-classification-service.d.ts +49 -0
  397. package/dist/daemon/services/outcome-classification-service.d.ts.map +1 -0
  398. package/dist/daemon/services/outcome-classification-service.js +214 -0
  399. package/dist/daemon/services/outcome-classification-service.js.map +1 -0
  400. package/dist/daemon/services/outcome-classifier.d.ts +136 -0
  401. package/dist/daemon/services/outcome-classifier.d.ts.map +1 -0
  402. package/dist/daemon/services/outcome-classifier.js +178 -0
  403. package/dist/daemon/services/outcome-classifier.js.map +1 -0
  404. package/dist/daemon/services/outcome-nudge.d.ts +107 -0
  405. package/dist/daemon/services/outcome-nudge.d.ts.map +1 -0
  406. package/dist/daemon/services/outcome-nudge.js +242 -0
  407. package/dist/daemon/services/outcome-nudge.js.map +1 -0
  408. package/dist/daemon/services/spec-approval.d.ts +127 -0
  409. package/dist/daemon/services/spec-approval.d.ts.map +1 -0
  410. package/dist/daemon/services/spec-approval.js +216 -0
  411. package/dist/daemon/services/spec-approval.js.map +1 -0
  412. package/dist/daemon/services/spec-gate.d.ts +54 -0
  413. package/dist/daemon/services/spec-gate.d.ts.map +1 -0
  414. package/dist/daemon/services/spec-gate.js +113 -0
  415. package/dist/daemon/services/spec-gate.js.map +1 -0
  416. package/dist/daemon/services/task-boundary-classifier.d.ts +78 -0
  417. package/dist/daemon/services/task-boundary-classifier.d.ts.map +1 -0
  418. package/dist/daemon/services/task-boundary-classifier.js +202 -0
  419. package/dist/daemon/services/task-boundary-classifier.js.map +1 -0
  420. package/dist/daemon/services/task-segmenter.d.ts +219 -1
  421. package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
  422. package/dist/daemon/services/task-segmenter.js +481 -17
  423. package/dist/daemon/services/task-segmenter.js.map +1 -1
  424. package/dist/daemon/services/violation-reporter.d.ts +130 -0
  425. package/dist/daemon/services/violation-reporter.d.ts.map +1 -0
  426. package/dist/daemon/services/violation-reporter.js +339 -0
  427. package/dist/daemon/services/violation-reporter.js.map +1 -0
  428. package/dist/daemon/skill-sync.d.ts +7 -2
  429. package/dist/daemon/skill-sync.d.ts.map +1 -1
  430. package/dist/daemon/skill-sync.js +114 -9
  431. package/dist/daemon/skill-sync.js.map +1 -1
  432. package/dist/daemon/templates/agents/claudemd-writer.md +101 -0
  433. package/dist/daemon/templates/agents/coder.md +105 -0
  434. package/dist/daemon/templates/agents/decision-maker.md +460 -0
  435. package/dist/daemon/templates/agents/doc-reviewer.md +115 -0
  436. package/dist/daemon/templates/agents/harness-debug-full.md +114 -0
  437. package/dist/daemon/templates/agents/harness-hotfix.md +99 -0
  438. package/dist/daemon/templates/agents/hybrid-feature-with-safety.md +104 -0
  439. package/dist/daemon/templates/agents/knowledge-builder.md +119 -0
  440. package/dist/daemon/templates/agents/patch-applier.md +144 -0
  441. package/dist/daemon/templates/agents/planner.md +165 -0
  442. package/dist/daemon/templates/agents/refactor-specialist.md +98 -0
  443. package/dist/daemon/templates/agents/skill-distiller.md +113 -0
  444. package/dist/daemon/templates/agents/task-boundary-classifier.md +64 -0
  445. package/dist/daemon/templates/agents/verify-agent.md +136 -0
  446. package/dist/daemon/utils/inject-block.d.ts +39 -0
  447. package/dist/daemon/utils/inject-block.d.ts.map +1 -0
  448. package/dist/daemon/utils/inject-block.js +25 -0
  449. package/dist/daemon/utils/inject-block.js.map +1 -0
  450. package/dist/hooks/hook-lib.sh +8 -0
  451. package/dist/hooks/notification.sh +19 -8
  452. package/dist/hooks/post-tool-use.sh +41 -23
  453. package/dist/hooks/pre-tool-use.sh +54 -23
  454. package/dist/hooks/session-start.sh +68 -0
  455. package/dist/hooks/stop.sh +24 -10
  456. package/dist/hooks/user-prompt-submit.sh +37 -21
  457. package/dist/knowledge/adapters/go-adapter.d.ts +65 -0
  458. package/dist/knowledge/adapters/go-adapter.d.ts.map +1 -0
  459. package/dist/knowledge/adapters/go-adapter.js +294 -0
  460. package/dist/knowledge/adapters/go-adapter.js.map +1 -0
  461. package/dist/knowledge/adapters/index.d.ts +41 -0
  462. package/dist/knowledge/adapters/index.d.ts.map +1 -0
  463. package/dist/knowledge/adapters/index.js +71 -0
  464. package/dist/knowledge/adapters/index.js.map +1 -0
  465. package/dist/knowledge/adapters/java-adapter.d.ts +66 -0
  466. package/dist/knowledge/adapters/java-adapter.d.ts.map +1 -0
  467. package/dist/knowledge/adapters/java-adapter.js +260 -0
  468. package/dist/knowledge/adapters/java-adapter.js.map +1 -0
  469. package/dist/knowledge/adapters/js-vue-adapter.d.ts +56 -0
  470. package/dist/knowledge/adapters/js-vue-adapter.d.ts.map +1 -0
  471. package/dist/knowledge/adapters/js-vue-adapter.js +203 -0
  472. package/dist/knowledge/adapters/js-vue-adapter.js.map +1 -0
  473. package/dist/knowledge/adapters/kotlin-adapter.d.ts +55 -0
  474. package/dist/knowledge/adapters/kotlin-adapter.d.ts.map +1 -0
  475. package/dist/knowledge/adapters/kotlin-adapter.js +209 -0
  476. package/dist/knowledge/adapters/kotlin-adapter.js.map +1 -0
  477. package/dist/knowledge/adapters/monorepo-adapter.d.ts +77 -0
  478. package/dist/knowledge/adapters/monorepo-adapter.d.ts.map +1 -0
  479. package/dist/knowledge/adapters/monorepo-adapter.js +170 -0
  480. package/dist/knowledge/adapters/monorepo-adapter.js.map +1 -0
  481. package/dist/knowledge/adapters/python-adapter.d.ts +89 -0
  482. package/dist/knowledge/adapters/python-adapter.d.ts.map +1 -0
  483. package/dist/knowledge/adapters/python-adapter.js +358 -0
  484. package/dist/knowledge/adapters/python-adapter.js.map +1 -0
  485. package/dist/knowledge/adapters/rust-adapter.d.ts +73 -0
  486. package/dist/knowledge/adapters/rust-adapter.d.ts.map +1 -0
  487. package/dist/knowledge/adapters/rust-adapter.js +329 -0
  488. package/dist/knowledge/adapters/rust-adapter.js.map +1 -0
  489. package/dist/knowledge/adapters/types.d.ts +99 -0
  490. package/dist/knowledge/adapters/types.d.ts.map +1 -0
  491. package/dist/knowledge/adapters/types.js +17 -0
  492. package/dist/knowledge/adapters/types.js.map +1 -0
  493. package/dist/knowledge/adapters/typescript-adapter.d.ts +57 -0
  494. package/dist/knowledge/adapters/typescript-adapter.d.ts.map +1 -0
  495. package/dist/knowledge/adapters/typescript-adapter.js +171 -0
  496. package/dist/knowledge/adapters/typescript-adapter.js.map +1 -0
  497. package/dist/knowledge/audit-applier.d.ts +70 -0
  498. package/dist/knowledge/audit-applier.d.ts.map +1 -0
  499. package/dist/knowledge/audit-applier.js +251 -0
  500. package/dist/knowledge/audit-applier.js.map +1 -0
  501. package/dist/knowledge/builder.d.ts +261 -0
  502. package/dist/knowledge/builder.d.ts.map +1 -0
  503. package/dist/knowledge/builder.js +937 -0
  504. package/dist/knowledge/builder.js.map +1 -0
  505. package/dist/knowledge/cli-provider.d.ts +151 -0
  506. package/dist/knowledge/cli-provider.d.ts.map +1 -0
  507. package/dist/knowledge/cli-provider.js +313 -0
  508. package/dist/knowledge/cli-provider.js.map +1 -0
  509. package/dist/knowledge/constants.d.ts +73 -0
  510. package/dist/knowledge/constants.d.ts.map +1 -0
  511. package/dist/knowledge/constants.js +93 -0
  512. package/dist/knowledge/constants.js.map +1 -0
  513. package/dist/knowledge/cross-module.d.ts +139 -0
  514. package/dist/knowledge/cross-module.d.ts.map +1 -0
  515. package/dist/knowledge/cross-module.js +370 -0
  516. package/dist/knowledge/cross-module.js.map +1 -0
  517. package/dist/knowledge/git-hooks.d.ts +67 -0
  518. package/dist/knowledge/git-hooks.d.ts.map +1 -0
  519. package/dist/knowledge/git-hooks.js +258 -0
  520. package/dist/knowledge/git-hooks.js.map +1 -0
  521. package/dist/knowledge/module-hash.d.ts +88 -0
  522. package/dist/knowledge/module-hash.d.ts.map +1 -0
  523. package/dist/knowledge/module-hash.js +162 -0
  524. package/dist/knowledge/module-hash.js.map +1 -0
  525. package/dist/knowledge/project-detector.d.ts +101 -0
  526. package/dist/knowledge/project-detector.d.ts.map +1 -0
  527. package/dist/knowledge/project-detector.js +223 -0
  528. package/dist/knowledge/project-detector.js.map +1 -0
  529. package/dist/knowledge/prompt.d.ts +228 -0
  530. package/dist/knowledge/prompt.d.ts.map +1 -0
  531. package/dist/knowledge/prompt.js +404 -0
  532. package/dist/knowledge/prompt.js.map +1 -0
  533. package/dist/knowledge/query.d.ts +105 -0
  534. package/dist/knowledge/query.d.ts.map +1 -0
  535. package/dist/knowledge/query.js +341 -0
  536. package/dist/knowledge/query.js.map +1 -0
  537. package/dist/knowledge/repo-map.d.ts +91 -0
  538. package/dist/knowledge/repo-map.d.ts.map +1 -0
  539. package/dist/knowledge/repo-map.js +408 -0
  540. package/dist/knowledge/repo-map.js.map +1 -0
  541. package/dist/knowledge/tools/index.d.ts +14 -0
  542. package/dist/knowledge/tools/index.d.ts.map +1 -0
  543. package/dist/knowledge/tools/index.js +11 -0
  544. package/dist/knowledge/tools/index.js.map +1 -0
  545. package/dist/knowledge/tools/knowledge-get-page.d.ts +46 -0
  546. package/dist/knowledge/tools/knowledge-get-page.d.ts.map +1 -0
  547. package/dist/knowledge/tools/knowledge-get-page.js +101 -0
  548. package/dist/knowledge/tools/knowledge-get-page.js.map +1 -0
  549. package/dist/knowledge/tools/knowledge-query.d.ts +77 -0
  550. package/dist/knowledge/tools/knowledge-query.d.ts.map +1 -0
  551. package/dist/knowledge/tools/knowledge-query.js +104 -0
  552. package/dist/knowledge/tools/knowledge-query.js.map +1 -0
  553. package/dist/knowledge/tools/repo-map-lookup.d.ts +45 -0
  554. package/dist/knowledge/tools/repo-map-lookup.d.ts.map +1 -0
  555. package/dist/knowledge/tools/repo-map-lookup.js +82 -0
  556. package/dist/knowledge/tools/repo-map-lookup.js.map +1 -0
  557. package/dist/knowledge/types.d.ts +269 -0
  558. package/dist/knowledge/types.d.ts.map +1 -0
  559. package/dist/knowledge/types.js +10 -0
  560. package/dist/knowledge/types.js.map +1 -0
  561. package/dist/knowledge/validator.d.ts +90 -0
  562. package/dist/knowledge/validator.d.ts.map +1 -0
  563. package/dist/knowledge/validator.js +288 -0
  564. package/dist/knowledge/validator.js.map +1 -0
  565. package/dist/mcp/server.d.ts.map +1 -1
  566. package/dist/mcp/server.js +222 -1
  567. package/dist/mcp/server.js.map +1 -1
  568. package/dist/skills/builtin-skills.d.ts +35 -0
  569. package/dist/skills/builtin-skills.d.ts.map +1 -0
  570. package/dist/skills/builtin-skills.js +68 -0
  571. package/dist/skills/builtin-skills.js.map +1 -0
  572. package/dist/skills/distill/attribution.d.ts +59 -0
  573. package/dist/skills/distill/attribution.d.ts.map +1 -0
  574. package/dist/skills/distill/attribution.js +101 -0
  575. package/dist/skills/distill/attribution.js.map +1 -0
  576. package/dist/skills/distill/claude-cli-resolver.d.ts +26 -0
  577. package/dist/skills/distill/claude-cli-resolver.d.ts.map +1 -0
  578. package/dist/skills/distill/claude-cli-resolver.js +115 -0
  579. package/dist/skills/distill/claude-cli-resolver.js.map +1 -0
  580. package/dist/skills/distill/distiller.d.ts +161 -0
  581. package/dist/skills/distill/distiller.d.ts.map +1 -0
  582. package/dist/skills/distill/distiller.js +461 -0
  583. package/dist/skills/distill/distiller.js.map +1 -0
  584. package/dist/skills/distill/index.d.ts +223 -0
  585. package/dist/skills/distill/index.d.ts.map +1 -0
  586. package/dist/skills/distill/index.js +466 -0
  587. package/dist/skills/distill/index.js.map +1 -0
  588. package/dist/skills/distill/project-anchor-guard.d.ts +116 -0
  589. package/dist/skills/distill/project-anchor-guard.d.ts.map +1 -0
  590. package/dist/skills/distill/project-anchor-guard.js +334 -0
  591. package/dist/skills/distill/project-anchor-guard.js.map +1 -0
  592. package/dist/skills/distill/topic-deduper.d.ts +77 -0
  593. package/dist/skills/distill/topic-deduper.d.ts.map +1 -0
  594. package/dist/skills/distill/topic-deduper.js +119 -0
  595. package/dist/skills/distill/topic-deduper.js.map +1 -0
  596. package/dist/skills/distill/upstream-fetcher.d.ts +71 -0
  597. package/dist/skills/distill/upstream-fetcher.d.ts.map +1 -0
  598. package/dist/skills/distill/upstream-fetcher.js +202 -0
  599. package/dist/skills/distill/upstream-fetcher.js.map +1 -0
  600. package/dist/skills/distilled/distilled-api-design.md +491 -0
  601. package/dist/skills/distilled/distilled-architecture-decision.md +173 -0
  602. package/dist/skills/distilled/distilled-creator.md +178 -0
  603. package/dist/skills/distilled/distilled-db-schema-design.md +245 -0
  604. package/dist/skills/distilled/distilled-defi-amm-security.md +293 -0
  605. package/dist/skills/distilled/distilled-executing-plans.md +113 -0
  606. package/dist/skills/distilled/distilled-harness-engineering.md +242 -0
  607. package/dist/skills/distilled/distilled-karpathy-guidelines.md +104 -0
  608. package/dist/skills/distilled/distilled-performance-optimization.md +175 -0
  609. package/dist/skills/distilled/distilled-spec-driven-design.md +193 -0
  610. package/dist/skills/distilled/distilled-systematic-debugging.md +306 -0
  611. package/dist/skills/distilled/distilled-verification-before-completion.md +203 -0
  612. package/dist/skills/keyword-score.d.ts +29 -0
  613. package/dist/skills/keyword-score.d.ts.map +1 -0
  614. package/dist/skills/keyword-score.js +54 -0
  615. package/dist/skills/keyword-score.js.map +1 -0
  616. package/dist/skills/registry.d.ts +64 -20
  617. package/dist/skills/registry.d.ts.map +1 -1
  618. package/dist/skills/registry.js +102 -105
  619. package/dist/skills/registry.js.map +1 -1
  620. package/dist/skills/tools/pipeline-suggest.js +14 -14
  621. package/dist/skills/tools/skill-invoke.d.ts +1 -1
  622. package/dist/skills/tools/skill-invoke.js +1 -1
  623. package/dist/web/routes/agent-content.d.ts +30 -0
  624. package/dist/web/routes/agent-content.d.ts.map +1 -0
  625. package/dist/web/routes/agent-content.js +139 -0
  626. package/dist/web/routes/agent-content.js.map +1 -0
  627. package/dist/web/routes/decisions.d.ts +15 -0
  628. package/dist/web/routes/decisions.d.ts.map +1 -0
  629. package/dist/web/routes/decisions.js +181 -0
  630. package/dist/web/routes/decisions.js.map +1 -0
  631. package/dist/web/routes/diagnostics.d.ts +61 -0
  632. package/dist/web/routes/diagnostics.d.ts.map +1 -0
  633. package/dist/web/routes/diagnostics.js +203 -0
  634. package/dist/web/routes/diagnostics.js.map +1 -0
  635. package/dist/web/routes/events.d.ts.map +1 -1
  636. package/dist/web/routes/events.js +24 -0
  637. package/dist/web/routes/events.js.map +1 -1
  638. package/dist/web/routes/health.d.ts +33 -0
  639. package/dist/web/routes/health.d.ts.map +1 -0
  640. package/dist/web/routes/health.js +37 -0
  641. package/dist/web/routes/health.js.map +1 -0
  642. package/dist/web/routes/insights.d.ts +0 -5
  643. package/dist/web/routes/insights.d.ts.map +1 -1
  644. package/dist/web/routes/insights.js +783 -2
  645. package/dist/web/routes/insights.js.map +1 -1
  646. package/dist/web/routes/knowledge.d.ts +16 -0
  647. package/dist/web/routes/knowledge.d.ts.map +1 -0
  648. package/dist/web/routes/knowledge.js +661 -0
  649. package/dist/web/routes/knowledge.js.map +1 -0
  650. package/dist/web/routes/patch.d.ts +60 -1
  651. package/dist/web/routes/patch.d.ts.map +1 -1
  652. package/dist/web/routes/patch.js +170 -64
  653. package/dist/web/routes/patch.js.map +1 -1
  654. package/dist/web/routes/pipeline.d.ts +37 -0
  655. package/dist/web/routes/pipeline.d.ts.map +1 -0
  656. package/dist/web/routes/pipeline.js +149 -0
  657. package/dist/web/routes/pipeline.js.map +1 -0
  658. package/dist/web/routes/rules.d.ts.map +1 -1
  659. package/dist/web/routes/rules.js +6 -1
  660. package/dist/web/routes/rules.js.map +1 -1
  661. package/dist/web/routes/sessions.d.ts.map +1 -1
  662. package/dist/web/routes/sessions.js +9 -1
  663. package/dist/web/routes/sessions.js.map +1 -1
  664. package/dist/web/routes/skill-content.d.ts +30 -0
  665. package/dist/web/routes/skill-content.d.ts.map +1 -0
  666. package/dist/web/routes/skill-content.js +117 -0
  667. package/dist/web/routes/skill-content.js.map +1 -0
  668. package/dist/web/routes/skills-distill.d.ts +29 -0
  669. package/dist/web/routes/skills-distill.d.ts.map +1 -0
  670. package/dist/web/routes/skills-distill.js +552 -0
  671. package/dist/web/routes/skills-distill.js.map +1 -0
  672. package/dist/web/routes/skills.js +7 -7
  673. package/dist/web/routes/skills.js.map +1 -1
  674. package/dist/web/routes/task-timeline.d.ts +102 -0
  675. package/dist/web/routes/task-timeline.d.ts.map +1 -0
  676. package/dist/web/routes/task-timeline.js +274 -0
  677. package/dist/web/routes/task-timeline.js.map +1 -0
  678. package/dist/web/routes/tasks.d.ts.map +1 -1
  679. package/dist/web/routes/tasks.js +355 -8
  680. package/dist/web/routes/tasks.js.map +1 -1
  681. package/dist/web/routes/trace.d.ts.map +1 -1
  682. package/dist/web/routes/trace.js +3 -2
  683. package/dist/web/routes/trace.js.map +1 -1
  684. package/dist/web/routes/types.d.ts +0 -4
  685. package/dist/web/routes/types.d.ts.map +1 -1
  686. package/dist/web/routes/types.js +1 -1
  687. package/dist/web/routes/types.js.map +1 -1
  688. package/dist/web/routes/violations.d.ts +14 -0
  689. package/dist/web/routes/violations.d.ts.map +1 -0
  690. package/dist/web/routes/violations.js +111 -0
  691. package/dist/web/routes/violations.js.map +1 -0
  692. package/dist/web/server.d.ts.map +1 -1
  693. package/dist/web/server.js +79 -19
  694. package/dist/web/server.js.map +1 -1
  695. package/dist/web/services/build-manager.d.ts +72 -0
  696. package/dist/web/services/build-manager.d.ts.map +1 -0
  697. package/dist/web/services/build-manager.js +189 -0
  698. package/dist/web/services/build-manager.js.map +1 -0
  699. package/dist/web/services/distill-manager.d.ts +125 -0
  700. package/dist/web/services/distill-manager.d.ts.map +1 -0
  701. package/dist/web/services/distill-manager.js +308 -0
  702. package/dist/web/services/distill-manager.js.map +1 -0
  703. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js +2 -0
  704. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js.map +1 -0
  705. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js +2 -0
  706. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js.map +1 -0
  707. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js +3 -0
  708. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js.map +1 -0
  709. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js +2 -0
  710. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js.map +1 -0
  711. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js +2 -0
  712. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js.map +1 -0
  713. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js +2 -0
  714. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js.map +1 -0
  715. package/dist/web/static/assets/DriftTab-DqpepOhI.js +2 -0
  716. package/dist/web/static/assets/DriftTab-DqpepOhI.js.map +1 -0
  717. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js +3 -0
  718. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js.map +1 -0
  719. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js +2 -0
  720. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js.map +1 -0
  721. package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js +3 -0
  722. package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js.map +1 -0
  723. package/dist/web/static/assets/NotFound-BQPh0vaF.js +2 -0
  724. package/dist/web/static/assets/NotFound-BQPh0vaF.js.map +1 -0
  725. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js +2 -0
  726. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js.map +1 -0
  727. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js +2 -0
  728. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js.map +1 -0
  729. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js +2 -0
  730. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js.map +1 -0
  731. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js +2 -0
  732. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js.map +1 -0
  733. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js +2 -0
  734. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js.map +1 -0
  735. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js +6 -0
  736. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js.map +1 -0
  737. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js +3 -0
  738. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js.map +1 -0
  739. package/dist/web/static/assets/arco-Bhi3a6Qp.js +14 -0
  740. package/dist/web/static/assets/arco-Bhi3a6Qp.js.map +1 -0
  741. package/dist/web/static/assets/arco-DFQA6dO_.css +1 -0
  742. package/dist/web/static/assets/charts-BuHQWDbQ.js +37 -0
  743. package/dist/web/static/assets/charts-BuHQWDbQ.js.map +1 -0
  744. package/dist/web/static/assets/date-fns-sbWH3_uq.js +2 -0
  745. package/dist/web/static/assets/date-fns-sbWH3_uq.js.map +1 -0
  746. package/dist/web/static/assets/index-7bl3kbcx.css +1 -0
  747. package/dist/web/static/assets/index-BIYnq1Dx.js +4 -0
  748. package/dist/web/static/assets/index-BIYnq1Dx.js.map +1 -0
  749. package/dist/web/static/assets/lucide-CnlPQoG8.js +72 -0
  750. package/dist/web/static/assets/lucide-CnlPQoG8.js.map +1 -0
  751. package/dist/web/static/assets/outcome-DUn1NjlC.js +2 -0
  752. package/dist/web/static/assets/outcome-DUn1NjlC.js.map +1 -0
  753. package/dist/web/static/assets/query-S6X1S7K9.js +2 -0
  754. package/dist/web/static/assets/{query-C99w429o.js.map → query-S6X1S7K9.js.map} +1 -1
  755. package/dist/web/static/assets/{react-router-r79dBVy4.js → react-router-JVUrkhdd.js} +3 -3
  756. package/dist/web/static/assets/{react-router-r79dBVy4.js.map → react-router-JVUrkhdd.js.map} +1 -1
  757. package/dist/web/static/assets/react-vendor-tkvCrao7.js +57 -0
  758. package/dist/web/static/assets/react-vendor-tkvCrao7.js.map +1 -0
  759. package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js +6 -0
  760. package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js.map +1 -0
  761. package/dist/web/static/assets/useTabsParam-k8qte_0C.js +2 -0
  762. package/dist/web/static/assets/useTabsParam-k8qte_0C.js.map +1 -0
  763. package/dist/web/static/assets/vendor-DWgdB1eY.js +65 -0
  764. package/dist/web/static/assets/vendor-DWgdB1eY.js.map +1 -0
  765. package/dist/web/static/index.html +12 -8
  766. package/package.json +14 -3
  767. package/dist/core/ai/provider.d.ts +0 -63
  768. package/dist/core/ai/provider.d.ts.map +0 -1
  769. package/dist/core/ai/provider.js +0 -241
  770. package/dist/core/ai/provider.js.map +0 -1
  771. package/dist/core/ai/types.d.ts +0 -43
  772. package/dist/core/ai/types.d.ts.map +0 -1
  773. package/dist/core/ai/types.js +0 -5
  774. package/dist/core/ai/types.js.map +0 -1
  775. package/dist/core/storage/token-usage.d.ts +0 -36
  776. package/dist/core/storage/token-usage.d.ts.map +0 -1
  777. package/dist/core/storage/token-usage.js +0 -59
  778. package/dist/core/storage/token-usage.js.map +0 -1
  779. package/dist/core/utils/token-tracker.d.ts +0 -39
  780. package/dist/core/utils/token-tracker.d.ts.map +0 -1
  781. package/dist/core/utils/token-tracker.js +0 -69
  782. package/dist/core/utils/token-tracker.js.map +0 -1
  783. package/dist/skills/index.d.ts +0 -3
  784. package/dist/skills/index.d.ts.map +0 -1
  785. package/dist/skills/index.js +0 -3
  786. package/dist/skills/index.js.map +0 -1
  787. package/dist/skills/matcher.d.ts +0 -26
  788. package/dist/skills/matcher.d.ts.map +0 -1
  789. package/dist/skills/matcher.js +0 -113
  790. package/dist/skills/matcher.js.map +0 -1
  791. package/dist/skills/official/code-simplifier.md +0 -52
  792. package/dist/skills/official/find-skills.md +0 -142
  793. package/dist/skills/official/official-api-design.md +0 -30
  794. package/dist/skills/official/official-architecture-decision.md +0 -41
  795. package/dist/skills/official/official-bmad.md +0 -118
  796. package/dist/skills/official/official-db-schema-design.md +0 -34
  797. package/dist/skills/official/official-debug.md +0 -25
  798. package/dist/skills/official/official-doc-driven.md +0 -31
  799. package/dist/skills/official/official-harness-engineering.md +0 -108
  800. package/dist/skills/official/official-openspec.md +0 -89
  801. package/dist/skills/official/official-performance-optimization.md +0 -30
  802. package/dist/skills/official/official-pr-review.md +0 -35
  803. package/dist/skills/official/official-release-checklist.md +0 -30
  804. package/dist/skills/official/official-security-hardening.md +0 -32
  805. package/dist/skills/official/official-spec-driven-design.md +0 -31
  806. package/dist/skills/official/planning-with-files.md +0 -241
  807. package/dist/skills/official/ui-ux-pro-max.md +0 -105
  808. package/dist/skills/official/webapp-testing.md +0 -96
  809. package/dist/skills/official-skills.d.ts +0 -26
  810. package/dist/skills/official-skills.d.ts.map +0 -1
  811. package/dist/skills/official-skills.js +0 -74
  812. package/dist/skills/official-skills.js.map +0 -1
  813. package/dist/skills/semantic-matcher.d.ts +0 -60
  814. package/dist/skills/semantic-matcher.d.ts.map +0 -1
  815. package/dist/skills/semantic-matcher.js +0 -192
  816. package/dist/skills/semantic-matcher.js.map +0 -1
  817. package/dist/skills/upgrade-engine.d.ts +0 -93
  818. package/dist/skills/upgrade-engine.d.ts.map +0 -1
  819. package/dist/skills/upgrade-engine.js +0 -447
  820. package/dist/skills/upgrade-engine.js.map +0 -1
  821. package/dist/skills/upgrade-prompt.d.ts +0 -20
  822. package/dist/skills/upgrade-prompt.d.ts.map +0 -1
  823. package/dist/skills/upgrade-prompt.js +0 -75
  824. package/dist/skills/upgrade-prompt.js.map +0 -1
  825. package/dist/web/routes/ai.d.ts +0 -10
  826. package/dist/web/routes/ai.d.ts.map +0 -1
  827. package/dist/web/routes/ai.js +0 -186
  828. package/dist/web/routes/ai.js.map +0 -1
  829. package/dist/web/routes/token-usage.d.ts +0 -7
  830. package/dist/web/routes/token-usage.d.ts.map +0 -1
  831. package/dist/web/routes/token-usage.js +0 -18
  832. package/dist/web/routes/token-usage.js.map +0 -1
  833. package/dist/web/ssrf-guard.d.ts +0 -35
  834. package/dist/web/ssrf-guard.d.ts.map +0 -1
  835. package/dist/web/ssrf-guard.js +0 -93
  836. package/dist/web/ssrf-guard.js.map +0 -1
  837. package/dist/web/static/assets/AIConfig-CdDWzJyO.js +0 -2
  838. package/dist/web/static/assets/AIConfig-CdDWzJyO.js.map +0 -1
  839. package/dist/web/static/assets/Dashboard-CoEmmIDt.js +0 -2
  840. package/dist/web/static/assets/Dashboard-CoEmmIDt.js.map +0 -1
  841. package/dist/web/static/assets/Drawer-DdRTzlLB.js +0 -2
  842. package/dist/web/static/assets/Drawer-DdRTzlLB.js.map +0 -1
  843. package/dist/web/static/assets/Events-DrIq1SUS.js +0 -2
  844. package/dist/web/static/assets/Events-DrIq1SUS.js.map +0 -1
  845. package/dist/web/static/assets/Reports-DFBM3MDK.js +0 -2
  846. package/dist/web/static/assets/Reports-DFBM3MDK.js.map +0 -1
  847. package/dist/web/static/assets/SearchInput-qCj_jAcf.js +0 -2
  848. package/dist/web/static/assets/SearchInput-qCj_jAcf.js.map +0 -1
  849. package/dist/web/static/assets/SessionDetail-CCzwdoT7.js +0 -2
  850. package/dist/web/static/assets/SessionDetail-CCzwdoT7.js.map +0 -1
  851. package/dist/web/static/assets/Sessions-FfLYkAw9.js +0 -2
  852. package/dist/web/static/assets/Sessions-FfLYkAw9.js.map +0 -1
  853. package/dist/web/static/assets/Skills-C8Gvs3Qa.js +0 -2
  854. package/dist/web/static/assets/Skills-C8Gvs3Qa.js.map +0 -1
  855. package/dist/web/static/assets/TaskDetail-BS8pYhaR.js +0 -2
  856. package/dist/web/static/assets/TaskDetail-BS8pYhaR.js.map +0 -1
  857. package/dist/web/static/assets/Tasks-CyuhizG8.js +0 -2
  858. package/dist/web/static/assets/Tasks-CyuhizG8.js.map +0 -1
  859. package/dist/web/static/assets/charts-CLrM0_uM.js +0 -37
  860. package/dist/web/static/assets/charts-CLrM0_uM.js.map +0 -1
  861. package/dist/web/static/assets/date-fns-CZ_bHujz.js +0 -2
  862. package/dist/web/static/assets/date-fns-CZ_bHujz.js.map +0 -1
  863. package/dist/web/static/assets/export-L_VBD2p1.js +0 -4
  864. package/dist/web/static/assets/export-L_VBD2p1.js.map +0 -1
  865. package/dist/web/static/assets/index-CBX47X8l.js +0 -3
  866. package/dist/web/static/assets/index-CBX47X8l.js.map +0 -1
  867. package/dist/web/static/assets/index-DjIoMdoR.css +0 -1
  868. package/dist/web/static/assets/lucide-Bs_edTLa.js +0 -232
  869. package/dist/web/static/assets/lucide-Bs_edTLa.js.map +0 -1
  870. package/dist/web/static/assets/query-C99w429o.js +0 -2
  871. package/dist/web/static/assets/react-vendor-CSp-GLFF.js +0 -49
  872. package/dist/web/static/assets/react-vendor-CSp-GLFF.js.map +0 -1
  873. package/dist/web/static/assets/syntax-highlighter-44FakypI.js +0 -9
  874. package/dist/web/static/assets/syntax-highlighter-44FakypI.js.map +0 -1
  875. package/dist/web/static/assets/task-title-BhOcemuR.js +0 -2
  876. package/dist/web/static/assets/task-title-BhOcemuR.js.map +0 -1
  877. package/dist/web/static/assets/time-Bxuk0M-C.js +0 -2
  878. package/dist/web/static/assets/time-Bxuk0M-C.js.map +0 -1
  879. package/dist/web/static/assets/vendor-CMMjVdZs.js +0 -64
  880. package/dist/web/static/assets/vendor-CMMjVdZs.js.map +0 -1
@@ -3,16 +3,81 @@ import { logger } from '../../core/utils/logger.js';
3
3
  import { timestampToMs } from '../../core/utils/time.js';
4
4
  import { truncateSessionId } from '../../core/utils/session.js';
5
5
  import { truncateString } from '../../core/utils/format.js';
6
+ import { isNoisePrompt, classifyPromptKind } from '../../core/utils/noise-prompt.js';
6
7
  const NEW_TASK_KEYWORDS = [
7
8
  '帮我', '实现', '修复', '添加', '重构', '优化', '创建', '删除',
8
9
  '升级', '迁移', '部署', '配置', '设计', '提交', '推送',
9
10
  'fix', 'add', 'implement', 'refactor', 'create', 'delete', 'deploy',
10
11
  ];
11
- const CONTINUE_KEYWORDS = [
12
- '继续', '然后', '还有', '另外', '这个', '那个', '它',
13
- '对', '好的', '可以', '是的', '不是', '不对', '改一下',
12
+ /**
13
+ * decision c6613590 P0 缺陷 A: continuation/ack tokens — the SINGLE source of
14
+ * truth for "is this prompt a pure continuation/ack?", consumed by
15
+ * {@link isContinuationPrompt}, which in turn is used by BOTH the smart-window
16
+ * resume gate (processPrompt) AND the active-task boundary (shouldStartNewTask).
17
+ *
18
+ * This deliberately TIGHT list replaces the retired `CONTINUE_KEYWORDS` table:
19
+ * the easily-collided substrings ('这个'/'那个'/'它'/'不是'/'不对') are REMOVED
20
+ * because they fire inside ordinary questions:
21
+ * • "现在全链路是不是都顺了?" contains '不是'
22
+ * • "这个任务怎么又丢了?" contains '这个'
23
+ * Those are NEW questions, not continuations, yet the old substring match
24
+ * resumed a stale task and merged them in. The resume gate now also requires
25
+ * the prompt to be SHORT and ack-dominated (see isContinuationPrompt) so a
26
+ * long sentence that merely happens to contain '好的'/'可以' isn't swallowed.
27
+ */
28
+ const ACK_CONTINUE_KEYWORDS = [
29
+ '继续', '然后', '还有', '另外',
30
+ '好的', '可以', '是的', '对', '改一下',
31
+ 'ok', 'go', 'yes', 'continue', '批准', '同意',
14
32
  ];
15
- const TASK_SWITCH_MINUTES = 10;
33
+ /**
34
+ * decision c6613590 P0 缺陷 A: max trimmed length for a prompt to even be
35
+ * considered a pure continuation/ack. Real acks ("继续" / "好的,这样可以" /
36
+ * "对对对" / "好的可以这样做") are all short; the false-positive questions
37
+ * ("现在全链路是不是都顺了?知识库、skill都正常了吗", "这个任务怎么又丢了?
38
+ * 老是丢数据不行啊") are well past this. 16 chars comfortably covers the
39
+ * real acks in the safety-net fixtures while excluding the merge bugs.
40
+ */
41
+ const ACK_MAX_LEN = 16;
42
+ /**
43
+ * spec 1713 (2026-05-28) §10.2: hard "reset" markers — an EXPLICIT user signal
44
+ * that they're starting a different topic, not a heuristic. Kept deliberately
45
+ * tiny so it never false-fires on normal continuations. These force a new task
46
+ * synchronously regardless of the time gap.
47
+ */
48
+ const RESET_KEYWORDS = [
49
+ '首先', '换个话题', '新问题', '换个',
50
+ 'another question', 'new topic', 'new task',
51
+ ];
52
+ /**
53
+ * spec 1713 §10.2 / §3: synchronous hard-window fallback (minutes). Catches the
54
+ * obvious "user walked away for >5 min" case as an explicit boundary signal.
55
+ */
56
+ const HARD_TIME_WINDOW_MIN = 5;
57
+ // Threshold for forcing a new task purely based on inactivity.
58
+ // Raised from 10→30 (2026-05-25) to accommodate long background-agent runs
59
+ // (spawn-and-wait flows of 15-30 min are common). With linkEvent() now also
60
+ // updating lastTime on every tool call, this constant primarily acts as a
61
+ // fallback for sessions where the user genuinely walked away >30 min.
62
+ const TASK_SWITCH_MINUTES = 30;
63
+ // B+ smart window resume: reuse TASK_SWITCH_MINUTES as the look-back window
64
+ // so resume threshold == idle-split threshold (both 30min).
65
+ const TASK_RESUME_WINDOW_MS = TASK_SWITCH_MINUTES * 60 * 1000;
66
+ /**
67
+ * Task-tracking overhaul (2026-05-27 spec §3.3 / §R4).
68
+ *
69
+ * Bug 3 orphan recovery window. When linkEvent fires without an active
70
+ * task (e.g. Stop already closed it but sub-agent PostToolUse is still
71
+ * landing), we attach the event to the most recently completed task on
72
+ * the session IF it ended within this window. Default 5 min — short
73
+ * enough to avoid cross-task mis-attribution, long enough to absorb
74
+ * typical async sub-agent tool flushes (observed 1-4 min in production).
75
+ *
76
+ * Exported as `const` (not env-tunable) on purpose: changing it changes
77
+ * KPI semantics and should be a code review event. R4 mitigation: pure
78
+ * attachment, end_time is NOT updated by the fallback path (Q3).
79
+ */
80
+ export const ORPHAN_RECOVERY_WINDOW_MS = 5 * 60_000;
16
81
  export class TaskSegmenter {
17
82
  storage;
18
83
  currentTasks = new Map();
@@ -20,38 +85,197 @@ export class TaskSegmenter {
20
85
  this.storage = storage;
21
86
  }
22
87
  processPrompt(sessionId, prompt, timestamp, eventId) {
88
+ return this.processPromptWithBoundary(sessionId, prompt, timestamp, eventId).taskId;
89
+ }
90
+ /**
91
+ * decision 265f59d5: same synchronous best-effort segmentation as
92
+ * {@link processPrompt}, but also reports whether the result was an AMBIGUOUS
93
+ * merge so the daemon can enqueue an async LLM re-attribution. The hot path is
94
+ * unchanged — this returns immediately; the LLM call (if any) is the caller's
95
+ * fire-and-forget responsibility.
96
+ */
97
+ processPromptWithBoundary(sessionId, prompt, timestamp, eventId) {
23
98
  const key = sessionId;
24
- const current = this.currentTasks.get(key) ?? this.recoverActiveTask(key);
99
+ const current = this.getTrustedCurrent(key);
25
100
  const now = timestampToMs(timestamp);
101
+ // spec b1480935 (2026-06-01 Option A): every prompt creates a task. The
102
+ // previous noise short-circuit is gone — callback / image / system
103
+ // envelopes now surface as their own task rows with `task_kind != 'user'`
104
+ // so Web can show them muted instead of swallowing them. This fixes the
105
+ // bug where a `<task-notification>` envelope on a session without an
106
+ // active task would be silently dropped (or worse, "recover" a stale
107
+ // completed task and turn it into an events black hole).
108
+ //
109
+ // Key invariant (OQ #2): NON-user tasks NEVER enter `currentTasks` map
110
+ // so a real user prompt immediately following a callback always starts
111
+ // its own task, never gets absorbed by the callback row.
112
+ const kind = classifyPromptKind(prompt);
113
+ if (kind !== 'user') {
114
+ // Callback / image / system envelope. Create its own task row but DO
115
+ // NOT touch `currentTasks` (so continuation logic ignores it) and DO
116
+ // NOT close any active user task (the human is still working).
117
+ const taskId = this.createTask(sessionId, prompt, timestamp, kind);
118
+ if (eventId)
119
+ this.storage.linkEventToTask(taskId, eventId);
120
+ logger.debug(`[TaskSegmenter] Non-user task created kind=${kind} ${truncateString(taskId, 8)} (session=${truncateSessionId(sessionId)})`);
121
+ return { taskId };
122
+ }
26
123
  if (!current || this.shouldStartNewTask(prompt, now, current)) {
27
124
  if (current) {
28
125
  this.storage.updateTask(current.id, { status: 'completed', end_time: timestamp });
29
126
  }
30
- const taskId = this.createTask(sessionId, prompt, timestamp);
127
+ // B+ smart window resume: when no active task, check for a recently-completed
128
+ // task within TASK_RESUME_WINDOW_MS (30min). Uses findCompletedTaskForOrphanSmart
129
+ // (spec §3.A) which also guards against cross-topic mis-attribution via the
130
+ // "no newer task started in the gap" predicate. Only fires when current==null;
131
+ // when shouldStartNewTask triggered with an existing current, we've already
132
+ // moved on intentionally.
133
+ //
134
+ // Issue #1 fix (2026-05-29 task-lost): require POSITIVE continuation evidence
135
+ // (isContinuationPrompt) before resuming. The old gate "absence of NEW_TASK_KEYWORDS"
136
+ // resumed nearly every keyword-free follow-up prompt ("搞一个新文件存放对比说明",
137
+ // "前面的属性也加上注释说明"), merging dozens of distinct user intents into one
138
+ // mega-task spanning hours/days. Real-world impact: session b832930b on
139
+ // 2026-05-28 had task e559c003 accumulate 91 events / 12 hours / 7 distinct
140
+ // user prompts before finally being closed — the user saw "task lost" because
141
+ // each new question failed to surface as a new task card. Now resume only
142
+ // fires when the user explicitly signals continuation ("继续/然后/对/可以/..."),
143
+ // which is the actual semantic the smart-window was intended to capture.
144
+ if (!current && isContinuationPrompt(prompt)) {
145
+ const eventTsIso = timestamp ?? new Date().toISOString();
146
+ const candidate = this.storage.findCompletedTaskForOrphanSmart({
147
+ session_id: sessionId,
148
+ event_ts_iso: eventTsIso,
149
+ });
150
+ if (candidate && candidate.end_time) {
151
+ const gapMs = Date.parse(eventTsIso) - Date.parse(candidate.end_time);
152
+ if (gapMs <= TASK_RESUME_WINDOW_MS) {
153
+ this.storage.resumeTask(candidate.id);
154
+ this.currentTasks.set(key, { id: candidate.id, lastTime: now });
155
+ if (eventId)
156
+ this.storage.linkEventToTask(candidate.id, eventId);
157
+ logger.info(`[TaskSegmenter] Resumed task ${truncateString(candidate.id, 8)} (gap=${Math.round(gapMs / 60000)} min, session=${truncateSessionId(sessionId)})`);
158
+ return { taskId: candidate.id };
159
+ }
160
+ }
161
+ }
162
+ const taskId = this.createTask(sessionId, prompt, timestamp, 'user');
31
163
  this.currentTasks.set(key, { id: taskId, lastTime: now });
32
164
  if (eventId)
33
165
  this.storage.linkEventToTask(taskId, eventId);
34
- return taskId;
166
+ return { taskId };
35
167
  }
168
+ // Continuation: attach to the current task.
36
169
  current.lastTime = now;
37
170
  if (eventId)
38
171
  this.storage.linkEventToTask(current.id, eventId);
39
- return current.id;
172
+ // decision 265f59d5: detect the AMBIGUOUS merge. We merged into the active
173
+ // task, but if the prompt is neither a clear ack (isContinuationPrompt) nor
174
+ // carries a NEW_TASK_KEYWORD, the lexical signal was inconclusive — flag it
175
+ // for the async LLM classifier. Hard signals (5-min / RESET / agent-return)
176
+ // already routed to the new-task branch above, so reaching here means none
177
+ // fired. We require a real eventId (nothing to re-attribute otherwise).
178
+ const ambiguous = eventId !== undefined &&
179
+ !isContinuationPrompt(prompt) &&
180
+ !NEW_TASK_KEYWORDS.some(kw => prompt.includes(kw));
181
+ return {
182
+ taskId: current.id,
183
+ ...(ambiguous
184
+ ? {
185
+ ambiguous: {
186
+ sessionId,
187
+ mergedTaskId: current.id,
188
+ eventId,
189
+ prompt,
190
+ timestamp,
191
+ },
192
+ }
193
+ : {}),
194
+ };
40
195
  }
41
- linkEvent(sessionId, eventId) {
42
- const current = this.currentTasks.get(sessionId) ?? this.recoverActiveTask(sessionId);
196
+ /**
197
+ * Attach a non-prompt event (PostToolUse / PreToolUse / Stop / spawn …) to the
198
+ * session's currently-open task and refresh `lastTime`.
199
+ *
200
+ * Refreshing `lastTime` here is the critical part of the long-flow fix
201
+ * (2026-05-25): without it, `shouldStartNewTask` only sees the gap between
202
+ * user prompts, so a 20-minute background-agent run with hundreds of tool
203
+ * calls looks identical to the user walking away. The next prompt then trips
204
+ * `TASK_SWITCH_MINUTES` and the post-spawn work gets re-attributed to a
205
+ * brand-new task — exactly the symptom seen in task 36471706.
206
+ *
207
+ * `timestamp` is optional for backward compatibility; callers that already
208
+ * know the event timestamp should pass it (we trust hook timestamps more
209
+ * than wall-clock here because event delivery can be queued/replayed).
210
+ */
211
+ linkEvent(sessionId, eventId, timestamp, opts) {
212
+ const current = this.getTrustedCurrent(sessionId);
43
213
  if (current) {
44
214
  this.storage.linkEventToTask(current.id, eventId);
215
+ current.lastTime = timestamp ? timestampToMs(timestamp) : Date.now();
216
+ // spec 1713 §10.2 sub-agent boundary: a completed Task tool-call means a
217
+ // sub-agent just returned. Arm the one-shot flag so the NEXT user prompt
218
+ // starts a fresh task (the post-spawn work and the follow-up question are
219
+ // almost always distinct intents). Cleared on consume in
220
+ // shouldStartNewTaskHard.
221
+ if (opts?.hookType === 'PostToolUse' && opts?.toolName === 'Task') {
222
+ current.agentJustReturned = true;
223
+ }
224
+ return;
225
+ }
226
+ // Task-tracking deep fix (spec 1551 §3.A): smart-window orphan recovery.
227
+ // Primary path: smart algorithm finds the most recently completed task
228
+ // with no newer task blocking the gap (no fixed 5-min cap).
229
+ // Fallback: if smart SQL fails or returns null, fall back to the old
230
+ // ORPHAN_RECOVERY_WINDOW_MS=5min path (Q4 = retain as defensive fallback).
231
+ //
232
+ // Q3 (spec §11): do NOT update task.end_time — pure attachment only.
233
+ // Updating end_time would stretch duration KPI for every orphan.
234
+ const eventTsIso = timestamp ?? new Date().toISOString();
235
+ // Primary: smart window (no fixed time cap)
236
+ let recovered = this.storage.findCompletedTaskForOrphanSmart({
237
+ session_id: sessionId,
238
+ event_ts_iso: eventTsIso,
239
+ });
240
+ // Fallback: legacy 5-min window (Q4 — retained for SQL error resilience)
241
+ if (!recovered) {
242
+ recovered = this.storage.findRecentCompletedTaskForOrphan({
243
+ session_id: sessionId,
244
+ event_ts_iso: eventTsIso,
245
+ sinceMs: ORPHAN_RECOVERY_WINDOW_MS,
246
+ });
247
+ if (recovered) {
248
+ logger.debug(`[TaskSegmenter] Orphan-recovery (5min fallback): attached event to ` +
249
+ `${truncateString(recovered.id, 8)} (session=${truncateSessionId(sessionId)})`);
250
+ }
251
+ }
252
+ if (recovered) {
253
+ this.storage.attachEventToTask(recovered.id, eventId);
254
+ logger.debug(`[TaskSegmenter] Orphan-recovery (smart-window): attached event to ` +
255
+ `${truncateString(recovered.id, 8)} (session=${truncateSessionId(sessionId)})`);
45
256
  }
46
257
  }
47
258
  /**
48
259
  * 从数据库恢复 session 的 active 任务到内存 Map。
49
260
  * 用于 daemon 重启后内存丢失场景的 lazy 恢复。
50
261
  * 找不到 active 任务时返回 null(不报错)。
262
+ *
263
+ * spec b1480935 (2026-06-01 Option A): only `task_kind='user'` tasks are
264
+ * eligible — callback / image / system rows MUST NOT be re-installed as
265
+ * the session's "current task" or every subsequent event would attach
266
+ * to an envelope row. The legacy `!is_noise` guard is preserved as a
267
+ * fallback for rows where backfill hasn't yet promoted task_kind.
268
+ *
269
+ * Orphan-event robustness fix (2026-06-01): switched from
270
+ * `queryTasks(limit:5).find(...)` to a DIRECT `getActiveUserTask()` SQL
271
+ * lookup. The old path took the most-recent 5 rows THEN filtered — on a
272
+ * high-task-count session a burst of newer agent-callback / completed rows
273
+ * pushed the active user task out of the top-5, so `.find()` returned null
274
+ * and every event after it orphaned. The direct query applies the predicate
275
+ * at the DB layer with no LIMIT truncation.
51
276
  */
52
277
  recoverActiveTask(sessionId) {
53
- const tasks = this.storage.queryTasks({ session_id: sessionId, limit: 5 });
54
- const activeTask = tasks.find(t => t.status === 'active');
278
+ const activeTask = this.storage.getActiveUserTask(sessionId);
55
279
  if (!activeTask)
56
280
  return null;
57
281
  const anchor = activeTask.end_time ?? activeTask.start_time;
@@ -61,6 +285,100 @@ export class TaskSegmenter {
61
285
  logger.info(`[TaskSegmenter] Recovered active task ${truncateString(activeTask.id, 8)} for session ${truncateSessionId(sessionId)} from DB`);
62
286
  return entry;
63
287
  }
288
+ /**
289
+ * Orphan-event robustness fix (2026-06-01): proactively re-populate the
290
+ * in-memory `currentTasks` map from the DB at daemon startup.
291
+ *
292
+ * Problem: after a daemon restart `currentTasks` is empty, so every event
293
+ * relies on per-event lazy `recoverActiveTask`. During the restart window a
294
+ * burst of buffered + replayed events arrives; any whose recovery heuristic
295
+ * doesn't fire (e.g. the orphan-recovery smart window finds no completed
296
+ * task) gets dropped. Hydrating up-front means those events hit the fast
297
+ * `currentTasks.get()` path instead.
298
+ *
299
+ * Idempotent + fault-tolerant: safe to call multiple times (it overwrites
300
+ * with the same DB-derived state) and never throws — a query failure logs
301
+ * and leaves the map untouched so the daemon still starts.
302
+ *
303
+ * @returns number of sessions hydrated (useful for the startup log line).
304
+ */
305
+ hydrateActiveTasks() {
306
+ try {
307
+ const rows = this.storage.queryActiveUserTaskSessions();
308
+ let count = 0;
309
+ for (const row of rows) {
310
+ if (!row.session_id || !row.task_id)
311
+ continue;
312
+ this.currentTasks.set(row.session_id, {
313
+ id: row.task_id,
314
+ lastTime: timestampToMs(row.start_time),
315
+ });
316
+ count += 1;
317
+ }
318
+ if (count > 0) {
319
+ logger.info(`[TaskSegmenter] Hydrated ${count} active user task(s) from DB on startup`);
320
+ }
321
+ return count;
322
+ }
323
+ catch (err) {
324
+ logger.warn(`[TaskSegmenter] hydrateActiveTasks failed (non-fatal): ${err}`);
325
+ return 0;
326
+ }
327
+ }
328
+ /**
329
+ * decision c6613590 P0 缺陷 B: trusted map-hit accessor.
330
+ *
331
+ * The in-memory `currentTasks` map can hold a DANGLING pointer to a task the
332
+ * stale-task GC (daemon/index.ts `completeStaleActiveTasks`) already flipped
333
+ * to status='completed' in the DB. The old code trusted any map hit blindly,
334
+ * so a new prompt / late event would `linkEventToTask` onto that completed
335
+ * row — advancing its end_time and merging independent prompts into a stale
336
+ * task.
337
+ *
338
+ * Two defences run together (spec: "两个都修最稳"):
339
+ * 1. daemon evicts GC'd ids from the map (see {@link evictTasks}); but a
340
+ * daemon that never restarts can still race the 5-min GC tick.
341
+ * 2. THIS guard PK-rechecks `status='active'` before trusting a map hit.
342
+ * If the row is no longer active, we drop the stale entry and fall back
343
+ * to `recoverActiveTask` (DB-authoritative). This makes the map a cache,
344
+ * never an authority, for the active-task invariant.
345
+ */
346
+ getTrustedCurrent(sessionId) {
347
+ const cached = this.currentTasks.get(sessionId);
348
+ if (cached) {
349
+ if (this.storage.isTaskActive(cached.id))
350
+ return cached;
351
+ // Dangling pointer to a GC'd / closed task — evict and re-derive from DB.
352
+ this.currentTasks.delete(sessionId);
353
+ logger.debug(`[TaskSegmenter] Dropped stale currentTasks entry ${truncateString(cached.id, 8)} ` +
354
+ `(no longer active in DB, session=${truncateSessionId(sessionId)})`);
355
+ }
356
+ return this.recoverActiveTask(sessionId);
357
+ }
358
+ /**
359
+ * decision c6613590 P0 缺陷 B: evict the given task ids from the in-memory
360
+ * `currentTasks` map. Called by the daemon's stale-task GC after it flips
361
+ * those tasks to 'completed' in the DB, so the map never keeps a dangling
362
+ * pointer that drags a closed task's end_time forward.
363
+ *
364
+ * Keyed by sessionId (the map's key), but we also verify the mapped task id
365
+ * matches before deleting — a session whose active task was already replaced
366
+ * by a newer one must NOT have its live entry evicted just because an older
367
+ * task on the same session was GC'd.
368
+ *
369
+ * @returns number of map entries actually evicted (for the daemon log line).
370
+ */
371
+ evictTasks(closed) {
372
+ let evicted = 0;
373
+ for (const { id, session_id } of closed) {
374
+ const entry = this.currentTasks.get(session_id);
375
+ if (entry && entry.id === id) {
376
+ this.currentTasks.delete(session_id);
377
+ evicted += 1;
378
+ }
379
+ }
380
+ return evicted;
381
+ }
64
382
  getCurrentTaskId(sessionId) {
65
383
  return this.currentTasks.get(sessionId)?.id ?? null;
66
384
  }
@@ -74,21 +392,84 @@ export class TaskSegmenter {
74
392
  });
75
393
  this.currentTasks.delete(sessionId);
76
394
  }
395
+ /**
396
+ * Boundary decision for the synchronous path.
397
+ *
398
+ * spec 1713 (2026-05-28) introduced the hard-signal boundary
399
+ * ({@link shouldStartNewTaskHard}); spec b1480935 (2026-06-01) kept the
400
+ * legacy keyword heuristic for the live daemon. We UNION the two so the
401
+ * decision is the strictly-more-eager of the pair: a new task starts if
402
+ * EITHER an explicit hard signal fires (5-min window / RESET_KEYWORDS /
403
+ * sub-agent return) OR the legacy keyword heuristic asks for it. This keeps
404
+ * every previously-passing keyword case green while satisfying the spec-1713
405
+ * hard-signal contract. The async classifier (when wired) corrects any
406
+ * over- or under-split after the fact.
407
+ */
77
408
  shouldStartNewTask(prompt, now, current) {
409
+ // Hard signals first — these consume the agentJustReturned flag.
410
+ if (this.shouldStartNewTaskHard(prompt, now, current))
411
+ return true;
412
+ // Legacy keyword heuristic (spec b1480935 live contract).
78
413
  const minutesDiff = (now - current.lastTime) / 60000;
79
414
  if (minutesDiff > TASK_SWITCH_MINUTES)
80
415
  return true;
81
- const hasContinue = CONTINUE_KEYWORDS.some(kw => prompt.includes(kw));
82
- if (hasContinue)
416
+ // decision c6613590 P0 缺陷 A (verify follow-up): the continuation gate here
417
+ // MUST use the SAME tightened predicate as the smart-window resume path
418
+ // (isContinuationPrompt), not a raw CONTINUE_KEYWORDS substring match. The
419
+ // old `CONTINUE_KEYWORDS.some(kw => prompt.includes(kw))` fired on '不是'/
420
+ // '这个'/'它' inside ordinary active-window follow-up questions
421
+ // ("现在全链路是不是都顺了…", "这个任务怎么又丢了…"), returning false here
422
+ // and merging those distinct prompts into the still-active task. Single
423
+ // source of truth: both the resume gate (processPrompt) and this active-task
424
+ // boundary now defer to isContinuationPrompt (length gate ≤16 +
425
+ // ACK_CONTINUE_KEYWORDS), so there is no second substring matcher to drift.
426
+ if (isContinuationPrompt(prompt))
83
427
  return false;
84
428
  const hasNewTask = NEW_TASK_KEYWORDS.some(kw => prompt.includes(kw));
85
429
  return hasNewTask;
86
430
  }
87
- createTask(sessionId, prompt, timestamp) {
431
+ /**
432
+ * spec 1713 §10.2: the hard-signal boundary. Returns true when an OBJECTIVE
433
+ * marker says "new task":
434
+ * 1. a sub-agent just returned (agentJustReturned flag) → consumes the flag
435
+ * 2. gap > HARD_TIME_WINDOW_MIN (5 min)
436
+ * 3. an explicit RESET_KEYWORD appears in the prompt
437
+ *
438
+ * Pure of keyword *heuristics* (NEW_TASK_KEYWORDS) — those live in the legacy
439
+ * path. Mutates `current.agentJustReturned` (clears it) by design: the flag
440
+ * is a one-shot that only forces the immediately-following prompt.
441
+ */
442
+ shouldStartNewTaskHard(prompt, now, current) {
443
+ if (current.agentJustReturned) {
444
+ current.agentJustReturned = false; // one-shot — clear on consume
445
+ return true;
446
+ }
447
+ const minutesDiff = (now - current.lastTime) / 60000;
448
+ if (minutesDiff > HARD_TIME_WINDOW_MIN)
449
+ return true;
450
+ if (RESET_KEYWORDS.some(kw => prompt.includes(kw)))
451
+ return true;
452
+ return false;
453
+ }
454
+ createTask(sessionId, prompt, timestamp, kind) {
88
455
  const taskId = randomUUID();
89
456
  const title = this.extractTitle(prompt);
90
- this.storage.writeTask({ id: taskId, session_id: sessionId, title, start_time: timestamp });
91
- logger.info(`[TaskSegmenter] New task: "${title}" (${truncateString(taskId, 8)})`);
457
+ // spec b1480935 (2026-06-01): is_noise is now deprecated. We KEEP writing
458
+ // it during the transition window so any consumer that hasn't switched to
459
+ // task_kind yet still sees the right value (a callback row is is_noise=1
460
+ // AND task_kind='agent-callback'). The boolean comes from the same
461
+ // heuristic for backward compat — envelope/short titles still get is_noise=1.
462
+ const isNoise = computeIsNoise(title) || kind !== 'user';
463
+ this.storage.writeTask({
464
+ id: taskId,
465
+ session_id: sessionId,
466
+ title,
467
+ start_time: timestamp,
468
+ is_noise: isNoise,
469
+ task_kind: kind,
470
+ });
471
+ logger.info(`[TaskSegmenter] New task kind=${kind} "${title}" (${truncateString(taskId, 8)})` +
472
+ (isNoise ? ' [noise]' : ''));
92
473
  return taskId;
93
474
  }
94
475
  extractTitle(prompt) {
@@ -99,4 +480,87 @@ export class TaskSegmenter {
99
480
  return truncateString(firstLine, 60);
100
481
  }
101
482
  }
483
+ /**
484
+ * Task-tracking overhaul (2026-05-27 spec §3.2).
485
+ *
486
+ * Compute the is_noise flag for a freshly-extracted task title. Three
487
+ * heuristics, all conservative — the goal is to drop obvious envelope /
488
+ * sub-3-char / slash-command noise WITHOUT eating real user prompts:
489
+ *
490
+ * • length(trim(title)) < 3 — sub-3-char titles ('好的'=2, 'ok'=2,
491
+ * single CJK char). Note: spec §3.2 lists '好的' as expected-noise
492
+ * and '推送吧'=3 as expected-real; this matches.
493
+ * • title matches one of NOISE_PROMPT_PREFIXES (envelope tags emitted
494
+ * by the framework on UserPromptSubmit).
495
+ * • title is a single-word slash command (`/help`, `/login`, …) — the
496
+ * user didn't actually start a new task, they fired a CC slash menu.
497
+ *
498
+ * What this DOES NOT flag (intentional — spec §3.2):
499
+ * - Semantic acknowledgements like '批准' / 'approve' / 'ok' / '可以'.
500
+ * Those titles should never reach createTask once SpecGate.handle
501
+ * Approval is wired in Step 6. If they DO arrive in the meantime
502
+ * (e.g. test seeds, legacy bug, race), Web shows them so the user
503
+ * can spot the regression rather than silently dropping them.
504
+ *
505
+ * Exported for unit-test reuse; the production caller is
506
+ * TaskSegmenter.createTask above.
507
+ */
508
+ export function computeIsNoise(title) {
509
+ const trimmed = title.trim();
510
+ if (trimmed.length === 0)
511
+ return true;
512
+ if (trimmed.length < 3)
513
+ return true;
514
+ // Envelope detection reuses the canonical isNoisePrompt utility so the
515
+ // prefix list stays a single source of truth (see core/utils/noise-prompt.ts).
516
+ if (isNoisePrompt(trimmed))
517
+ return true;
518
+ // Single-word slash command (starts with /, contains no whitespace).
519
+ if (trimmed.startsWith('/') && !/\s/.test(trimmed))
520
+ return true;
521
+ return false;
522
+ }
523
+ /**
524
+ * True if the prompt is actually a tool-generated envelope (task-notification,
525
+ * system-reminder, image attachment, etc.) rather than a real human prompt.
526
+ *
527
+ * Thin wrapper over the canonical {@link isNoisePrompt} (core/utils). Kept
528
+ * as a named export so existing imports stay stable; each consumer's
529
+ * "what to do with noise" decision still lives at the call site (spec-gate
530
+ * skips auto-spec, here we skip task creation).
531
+ */
532
+ export function isNoisePromptForSegmenter(prompt) {
533
+ return isNoisePrompt(prompt);
534
+ }
535
+ /**
536
+ * True if the prompt is a genuine short continuation / acknowledgement
537
+ * ("继续" / "好的,这样可以" / "对对对" / "ok" / "批准" …) that should resume
538
+ * a recently-completed task via the B+ smart-window gate.
539
+ *
540
+ * decision c6613590 P0 缺陷 A — the old implementation (and the now-retired
541
+ * `CONTINUE_KEYWORDS` table) was `CONTINUE_KEYWORDS.some(kw => prompt.includes(kw))`,
542
+ * a pure SUBSTRING match.
543
+ * Because the keyword list contained '不是' / '这个' / '那个' / '它' / '不对',
544
+ * ordinary NEW questions were mis-classified as continuations and merged into
545
+ * a stale task:
546
+ * • "现在全链路是不是都顺了?知识库、skill都正常了吗" → '不是' matched
547
+ * • "这个任务怎么又丢了?老是丢数据不行啊" → '这个' matched
548
+ *
549
+ * The fix has two layers, BOTH must hold:
550
+ * 1. Length gate — the trimmed prompt must be ≤ ACK_MAX_LEN. A genuine ack
551
+ * is short; a multi-clause question is not.
552
+ * 2. Ack-token presence — an ACK_CONTINUE_KEYWORD (collision-prone tokens
553
+ * removed) must appear in the (short) prompt.
554
+ *
555
+ * This keeps every real ack a continuation ("继续"/"好的,这样可以"/"对对对"/
556
+ * "好的可以这样做") while the two real-world merge bugs above now return false
557
+ * and correctly start a new task. Exported for unit-test reuse.
558
+ */
559
+ export function isContinuationPrompt(prompt) {
560
+ const trimmed = prompt.trim();
561
+ if (trimmed.length === 0 || trimmed.length > ACK_MAX_LEN)
562
+ return false;
563
+ const lower = trimmed.toLowerCase();
564
+ return ACK_CONTINUE_KEYWORDS.some(kw => lower.includes(kw.toLowerCase()));
565
+ }
102
566
  //# sourceMappingURL=task-segmenter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-segmenter.js","sourceRoot":"","sources":["../../../src/daemon/services/task-segmenter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-segmenter.js","sourceRoot":"","sources":["../../../src/daemon/services/task-segmenter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAsB,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAmB,MAAM,kCAAkC,CAAC;AAGtG,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACxC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;CACpE,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,qBAAqB,GAAG;IAC5B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACtB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK;IAC5B,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI;CAC1C,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;;;;GAKG;AACH,MAAM,cAAc,GAAG;IACrB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI;IACzB,kBAAkB,EAAE,WAAW,EAAE,UAAU;CAC5C,CAAC;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,+DAA+D;AAC/D,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,sEAAsE;AACtE,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,4EAA4E;AAC5E,4DAA4D;AAC5D,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,MAAM,CAAC;AA0BpD,MAAM,OAAO,aAAa;IAGJ;IAFZ,YAAY,GAAG,IAAI,GAAG,EAAyE,CAAC;IAExG,YAAoB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAE9C,aAAa,CAAC,SAAiB,EAAE,MAAc,EAAE,SAAiB,EAAE,OAAgB;QAClF,OAAO,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IACtF,CAAC;IAED;;;;;;OAMG;IACH,yBAAyB,CACvB,SAAiB,EACjB,MAAc,EACd,SAAiB,EACjB,OAAgB;QAEhB,MAAM,GAAG,GAAG,SAAS,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAErC,wEAAwE;QACxE,mEAAmE;QACnE,0EAA0E;QAC1E,wEAAwE;QACxE,qEAAqE;QACrE,qEAAqE;QACrE,yDAAyD;QACzD,EAAE;QACF,uEAAuE;QACvE,uEAAuE;QACvE,yDAAyD;QACzD,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,qEAAqE;YACrE,qEAAqE;YACrE,+DAA+D;YAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YACnE,IAAI,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CACV,8CAA8C,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,aAAa,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAC5H,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9D,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;YACpF,CAAC;YAED,8EAA8E;YAC9E,kFAAkF;YAClF,4EAA4E;YAC5E,+EAA+E;YAC/E,4EAA4E;YAC5E,0BAA0B;YAC1B,EAAE;YACF,8EAA8E;YAC9E,sFAAsF;YACtF,sEAAsE;YACtE,oEAAoE;YACpE,wEAAwE;YACxE,4EAA4E;YAC5E,8EAA8E;YAC9E,0EAA0E;YAC1E,0EAA0E;YAC1E,yEAAyE;YACzE,IAAI,CAAC,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACzD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC;oBAC7D,UAAU,EAAE,SAAS;oBACrB,YAAY,EAAE,UAAU;iBACzB,CAAC,CAAC;gBACH,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACtE,IAAI,KAAK,IAAI,qBAAqB,EAAE,CAAC;wBACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACtC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;wBAChE,IAAI,OAAO;4BAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;wBACjE,MAAM,CAAC,IAAI,CACT,gCAAgC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,iBAAiB,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAClJ,CAAC;wBACF,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACrE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1D,IAAI,OAAO;gBAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QAED,4CAA4C;QAC5C,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC;QACvB,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAE/D,2EAA2E;QAC3E,4EAA4E;QAC5E,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,wEAAwE;QACxE,MAAM,SAAS,GACb,OAAO,KAAK,SAAS;YACrB,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAC7B,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAErD,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,EAAE;YAClB,GAAG,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,SAAS,EAAE;wBACT,SAAS;wBACT,YAAY,EAAE,OAAO,CAAC,EAAE;wBACxB,OAAO;wBACP,MAAM;wBACN,SAAS;qBACV;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CACP,SAAiB,EACjB,OAAe,EACf,SAAkB,EAClB,IAA+C;QAE/C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACrE,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,yDAAyD;YACzD,0BAA0B;YAC1B,IAAI,IAAI,EAAE,QAAQ,KAAK,aAAa,IAAI,IAAI,EAAE,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAClE,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACnC,CAAC;YACD,OAAO;QACT,CAAC;QACD,yEAAyE;QACzE,uEAAuE;QACvE,4DAA4D;QAC5D,qEAAqE;QACrE,2EAA2E;QAC3E,EAAE;QACF,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,UAAU,GAAG,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEzD,4CAA4C;QAC5C,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC;YAC3D,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;QAEH,yEAAyE;QACzE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC;gBACxD,UAAU,EAAE,SAAS;gBACrB,YAAY,EAAE,UAAU;gBACxB,OAAO,EAAE,yBAAyB;aACnC,CAAC,CAAC;YACH,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CACV,qEAAqE;oBACnE,GAAG,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,iBAAiB,CAAC,SAAS,CAAC,GAAG,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,CACV,oEAAoE;gBAClE,GAAG,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,iBAAiB,CAAC,SAAS,CAAC,GAAG,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACK,iBAAiB,CAAC,SAAiB;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAE7B,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,UAAU,CAAC;QAC5D,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CACT,yCAAyC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAChI,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB;QAChB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC;YACxD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,OAAO;oBAAE,SAAS;gBAC9C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE;oBACpC,EAAE,EAAE,GAAG,CAAC,OAAO;oBACf,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;iBACxC,CAAC,CAAC;gBACH,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;YACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,4BAA4B,KAAK,yCAAyC,CAAC,CAAC;YAC1F,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,0DAA0D,GAAG,EAAE,CAAC,CAAC;YAC7E,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACK,iBAAiB,CACvB,SAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBAAE,OAAO,MAAM,CAAC;YACxD,0EAA0E;YAC1E,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CACV,oDAAoD,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG;gBACjF,oCAAoC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,MAAiD;QAC1D,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,MAAM,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;IACtD,CAAC;IAED,mBAAmB,CAAC,SAAiB,EAAE,SAAiB;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACtF,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE;YAClC,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,kBAAkB,CACxB,MAAc,EACd,GAAW,EACX,OAA0D;QAE1D,iEAAiE;QACjE,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnE,0DAA0D;QAC1D,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACrD,IAAI,WAAW,GAAG,mBAAmB;YAAE,OAAO,IAAI,CAAC;QAEnD,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,yEAAyE;QACzE,6DAA6D;QAC7D,uDAAuD;QACvD,wEAAwE;QACxE,6EAA6E;QAC7E,gEAAgE;QAChE,4EAA4E;QAC5E,IAAI,oBAAoB,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAE/C,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;;OAUG;IACK,sBAAsB,CAC5B,MAAc,EACd,GAAW,EACX,OAA0D;QAE1D,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC,8BAA8B;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACrD,IAAI,WAAW,GAAG,oBAAoB;YAAE,OAAO,IAAI,CAAC;QACpD,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,UAAU,CAChB,SAAiB,EACjB,MAAc,EACd,SAAiB,EACjB,IAAc;QAEd,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACxC,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,mEAAmE;QACnE,8EAA8E;QAC9E,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACrB,EAAE,EAAE,MAAM;YACV,UAAU,EAAE,SAAS;YACrB,KAAK;YACL,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CACT,iCAAiC,IAAI,KAAK,KAAK,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG;YAC/E,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAC9B,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,MAAc;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE;YAAE,OAAO,SAAS,IAAI,OAAO,CAAC;QACxD,OAAO,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,uEAAuE;IACvE,+EAA+E;IAC/E,IAAI,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,qEAAqE;IACrE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACtD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW;QAAE,OAAO,KAAK,CAAC;IACvE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC"}