@cleocode/core 2026.3.73 → 2026.3.76

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 (1093) hide show
  1. package/README.md +1 -1
  2. package/dist/cant/approval.d.ts +110 -0
  3. package/dist/cant/approval.d.ts.map +1 -0
  4. package/dist/cant/context-builder.d.ts +79 -0
  5. package/dist/cant/context-builder.d.ts.map +1 -0
  6. package/dist/cant/discretion.d.ts +95 -0
  7. package/dist/cant/discretion.d.ts.map +1 -0
  8. package/dist/cant/index.d.ts +25 -0
  9. package/dist/cant/index.d.ts.map +1 -0
  10. package/dist/cant/parallel-runner.d.ts +38 -0
  11. package/dist/cant/parallel-runner.d.ts.map +1 -0
  12. package/dist/cant/types.d.ts +127 -0
  13. package/dist/cant/types.d.ts.map +1 -0
  14. package/dist/cant/workflow-executor.d.ts +105 -0
  15. package/dist/cant/workflow-executor.d.ts.map +1 -0
  16. package/dist/cleo.d.ts.map +1 -1
  17. package/dist/conduit/conduit-client.d.ts +26 -0
  18. package/dist/conduit/conduit-client.d.ts.map +1 -0
  19. package/dist/conduit/factory.d.ts +13 -0
  20. package/dist/conduit/factory.d.ts.map +1 -0
  21. package/dist/conduit/http-transport.d.ts +32 -0
  22. package/dist/conduit/http-transport.d.ts.map +1 -0
  23. package/dist/conduit/index.d.ts +12 -0
  24. package/dist/conduit/index.d.ts.map +1 -0
  25. package/dist/crypto/credentials.d.ts +40 -0
  26. package/dist/crypto/credentials.d.ts.map +1 -0
  27. package/dist/engine-result.d.ts +1 -1
  28. package/dist/engine-result.d.ts.map +1 -1
  29. package/dist/error-catalog.d.ts +1 -1
  30. package/dist/error-catalog.d.ts.map +1 -1
  31. package/dist/error-registry.d.ts +1 -1
  32. package/dist/error-registry.d.ts.map +1 -1
  33. package/dist/errors.d.ts +1 -1
  34. package/dist/errors.d.ts.map +1 -1
  35. package/dist/hooks/handlers/agent-hooks.d.ts.map +1 -1
  36. package/dist/hooks/handlers/context-hooks.d.ts.map +1 -1
  37. package/dist/hooks/handlers/error-hooks.d.ts +14 -5
  38. package/dist/hooks/handlers/error-hooks.d.ts.map +1 -1
  39. package/dist/hooks/handlers/file-hooks.d.ts.map +1 -1
  40. package/dist/hooks/handlers/handler-helpers.d.ts +41 -0
  41. package/dist/hooks/handlers/handler-helpers.d.ts.map +1 -0
  42. package/dist/hooks/handlers/mcp-hooks.d.ts.map +1 -1
  43. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  44. package/dist/hooks/handlers/task-hooks.d.ts.map +1 -1
  45. package/dist/hooks/handlers/work-capture-hooks.d.ts.map +1 -1
  46. package/dist/index.d.ts +3 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +2766 -939
  49. package/dist/index.js.map +4 -4
  50. package/dist/init.d.ts.map +1 -1
  51. package/dist/internal.d.ts +7 -0
  52. package/dist/internal.d.ts.map +1 -1
  53. package/dist/memory/brain-retrieval.d.ts +3 -0
  54. package/dist/memory/brain-retrieval.d.ts.map +1 -1
  55. package/dist/mvi-helpers.d.ts +52 -0
  56. package/dist/mvi-helpers.d.ts.map +1 -0
  57. package/dist/nexus/index.d.ts +2 -0
  58. package/dist/nexus/index.d.ts.map +1 -1
  59. package/dist/nexus/workspace.d.ts +128 -0
  60. package/dist/nexus/workspace.d.ts.map +1 -0
  61. package/dist/output.d.ts +2 -2
  62. package/dist/output.d.ts.map +1 -1
  63. package/dist/pagination.d.ts +1 -1
  64. package/dist/pagination.d.ts.map +1 -1
  65. package/dist/sessions/find.d.ts +3 -0
  66. package/dist/sessions/find.d.ts.map +1 -1
  67. package/dist/sessions/index.d.ts.map +1 -1
  68. package/dist/store/agent-registry-accessor.d.ts +454 -0
  69. package/dist/store/agent-registry-accessor.d.ts.map +1 -0
  70. package/dist/store/converters.d.ts.map +1 -1
  71. package/dist/store/db-helpers.d.ts.map +1 -1
  72. package/dist/store/safety-data-accessor.d.ts +7 -0
  73. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  74. package/dist/store/signaldock-sqlite.d.ts +48 -0
  75. package/dist/store/signaldock-sqlite.d.ts.map +1 -0
  76. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  77. package/dist/store/sqlite.d.ts.map +1 -1
  78. package/dist/store/task-store.d.ts.map +1 -1
  79. package/dist/store/tasks-schema.d.ts +240 -0
  80. package/dist/store/tasks-schema.d.ts.map +1 -1
  81. package/dist/store/validation-schemas.d.ts +32 -0
  82. package/dist/store/validation-schemas.d.ts.map +1 -1
  83. package/dist/system/health.d.ts.map +1 -1
  84. package/dist/task-work/index.d.ts.map +1 -1
  85. package/dist/tasks/find.d.ts +3 -0
  86. package/dist/tasks/find.d.ts.map +1 -1
  87. package/dist/tasks/list.d.ts +5 -2
  88. package/dist/tasks/list.d.ts.map +1 -1
  89. package/dist/tasks/show.d.ts +3 -0
  90. package/dist/tasks/show.d.ts.map +1 -1
  91. package/dist/upgrade.d.ts.map +1 -1
  92. package/migrations/drizzle-tasks/20260324000000_assignee-column/migration.sql +6 -0
  93. package/migrations/drizzle-tasks/20260324000000_assignee-column/snapshot.json +9 -0
  94. package/migrations/drizzle-tasks/20260327000000_agent-credentials/migration.sql +23 -0
  95. package/package.json +7 -7
  96. package/src/__tests__/cli-parity.test.js +11 -1
  97. package/src/__tests__/cli-parity.test.js.map +1 -1
  98. package/src/__tests__/cli-parity.test.ts +17 -1
  99. package/src/__tests__/human-output.test.js +11 -1
  100. package/src/__tests__/human-output.test.js.map +1 -1
  101. package/src/__tests__/human-output.test.ts +18 -1
  102. package/src/__tests__/injection-chain.test.js +3 -2
  103. package/src/__tests__/injection-chain.test.js.map +1 -1
  104. package/src/__tests__/injection-mvi-tiers.test.d.ts +2 -2
  105. package/src/__tests__/injection-mvi-tiers.test.js +15 -15
  106. package/src/__tests__/injection-mvi-tiers.test.js.map +1 -1
  107. package/src/__tests__/lafs-conformance.test.d.ts +1 -1
  108. package/src/__tests__/lafs-conformance.test.js +2 -2
  109. package/src/__tests__/sharing.test.js +19 -0
  110. package/src/__tests__/sharing.test.js.map +1 -1
  111. package/src/agents/__tests__/agent-registry.test.d.ts +12 -0
  112. package/src/agents/__tests__/agent-registry.test.d.ts.map +1 -0
  113. package/src/agents/__tests__/agent-registry.test.js +262 -0
  114. package/src/agents/__tests__/agent-registry.test.js.map +1 -0
  115. package/src/agents/__tests__/execution-learning.test.d.ts +14 -0
  116. package/src/agents/__tests__/execution-learning.test.d.ts.map +1 -0
  117. package/src/agents/__tests__/execution-learning.test.js +533 -0
  118. package/src/agents/__tests__/execution-learning.test.js.map +1 -0
  119. package/src/agents/__tests__/health-monitor.test.d.ts +10 -0
  120. package/src/agents/__tests__/health-monitor.test.d.ts.map +1 -0
  121. package/src/agents/__tests__/health-monitor.test.js +259 -0
  122. package/src/agents/__tests__/health-monitor.test.js.map +1 -0
  123. package/src/agents/__tests__/registry.test.js +27 -2
  124. package/src/agents/__tests__/registry.test.js.map +1 -1
  125. package/src/cant/__tests__/cant-agent-parse.test.ts +94 -0
  126. package/src/cant/approval.ts +218 -0
  127. package/src/cant/context-builder.ts +135 -0
  128. package/src/cant/discretion.ts +149 -0
  129. package/src/cant/index.ts +58 -0
  130. package/src/cant/parallel-runner.ts +205 -0
  131. package/src/cant/types.ts +158 -0
  132. package/src/cant/workflow-executor.ts +618 -0
  133. package/src/cleo.ts +14 -0
  134. package/src/conduit/conduit-client.ts +114 -0
  135. package/src/conduit/factory.ts +45 -0
  136. package/src/conduit/http-transport.ts +140 -0
  137. package/src/conduit/index.ts +12 -0
  138. package/src/crypto/credentials.ts +166 -0
  139. package/src/engine-result.ts +1 -1
  140. package/src/error-catalog.ts +1 -1
  141. package/src/error-registry.ts +1 -1
  142. package/src/errors.ts +1 -1
  143. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.d.ts +13 -0
  144. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.d.ts.map +1 -0
  145. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js +501 -0
  146. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js.map +1 -0
  147. package/src/hooks/handlers/agent-hooks.ts +1 -30
  148. package/src/hooks/handlers/context-hooks.ts +1 -30
  149. package/src/hooks/handlers/error-hooks.ts +14 -5
  150. package/src/hooks/handlers/file-hooks.ts +1 -6
  151. package/src/hooks/handlers/handler-helpers.ts +62 -0
  152. package/src/hooks/handlers/mcp-hooks.ts +2 -14
  153. package/src/hooks/handlers/session-hooks.ts +1 -6
  154. package/src/hooks/handlers/task-hooks.ts +1 -6
  155. package/src/hooks/handlers/work-capture-hooks.ts +1 -10
  156. package/src/index.ts +11 -1
  157. package/src/init.ts +12 -0
  158. package/src/intelligence/__tests__/adaptive-validation.test.d.ts +11 -0
  159. package/src/intelligence/__tests__/adaptive-validation.test.d.ts.map +1 -0
  160. package/src/intelligence/__tests__/adaptive-validation.test.js +517 -0
  161. package/src/intelligence/__tests__/adaptive-validation.test.js.map +1 -0
  162. package/src/intelligence/__tests__/impact.test.d.ts +1 -0
  163. package/src/intelligence/__tests__/impact.test.d.ts.map +1 -1
  164. package/src/intelligence/__tests__/impact.test.js +132 -1
  165. package/src/intelligence/__tests__/impact.test.js.map +1 -1
  166. package/src/internal.ts +17 -0
  167. package/src/lib/__tests__/retry.test.d.ts +7 -0
  168. package/src/lib/__tests__/retry.test.d.ts.map +1 -0
  169. package/src/lib/__tests__/retry.test.js +225 -0
  170. package/src/lib/__tests__/retry.test.js.map +1 -0
  171. package/src/lifecycle/__tests__/chain-store.test.js +6 -0
  172. package/src/lifecycle/__tests__/chain-store.test.js.map +1 -1
  173. package/src/lifecycle/__tests__/tessera-engine.test.js +52 -0
  174. package/src/lifecycle/__tests__/tessera-engine.test.js.map +1 -1
  175. package/src/memory/__tests__/brain-automation.test.d.ts +11 -0
  176. package/src/memory/__tests__/brain-automation.test.d.ts.map +1 -0
  177. package/src/memory/__tests__/brain-automation.test.js +730 -0
  178. package/src/memory/__tests__/brain-automation.test.js.map +1 -0
  179. package/src/memory/brain-retrieval.ts +9 -0
  180. package/src/mvi-helpers.ts +81 -0
  181. package/src/nexus/index.ts +15 -0
  182. package/src/nexus/workspace.ts +520 -0
  183. package/src/output.ts +43 -10
  184. package/src/pagination.ts +1 -1
  185. package/src/sessions/__tests__/session-edge-cases.test.js +20 -1
  186. package/src/sessions/__tests__/session-edge-cases.test.js.map +1 -1
  187. package/src/sessions/__tests__/session-find.test.js +1 -1
  188. package/src/sessions/__tests__/session-find.test.js.map +1 -1
  189. package/src/sessions/__tests__/session-find.test.ts +1 -1
  190. package/src/sessions/find.ts +6 -1
  191. package/src/sessions/index.ts +9 -0
  192. package/src/store/__tests__/migration-safety.test.js +3 -0
  193. package/src/store/__tests__/migration-safety.test.js.map +1 -1
  194. package/src/store/__tests__/session-store.test.js +128 -1
  195. package/src/store/__tests__/session-store.test.js.map +1 -1
  196. package/src/store/__tests__/task-store.test.js +18 -1
  197. package/src/store/__tests__/task-store.test.js.map +1 -1
  198. package/src/store/__tests__/test-db-helper.d.ts.map +1 -1
  199. package/src/store/__tests__/test-db-helper.js +12 -0
  200. package/src/store/__tests__/test-db-helper.js.map +1 -1
  201. package/src/store/agent-registry-accessor.ts +199 -0
  202. package/src/store/converters.ts +2 -0
  203. package/src/store/db-helpers.ts +1 -0
  204. package/src/store/safety-data-accessor.ts +23 -0
  205. package/src/store/signaldock-sqlite.ts +227 -0
  206. package/src/store/sqlite-data-accessor.ts +69 -0
  207. package/src/store/sqlite.ts +4 -1
  208. package/src/store/task-store.ts +1 -0
  209. package/src/store/tasks-schema.ts +42 -0
  210. package/src/system/health.ts +33 -0
  211. package/src/task-work/index.ts +5 -0
  212. package/src/tasks/__tests__/add.test.js +19 -1
  213. package/src/tasks/__tests__/add.test.js.map +1 -1
  214. package/src/tasks/__tests__/assignee.test.d.ts +14 -0
  215. package/src/tasks/__tests__/assignee.test.d.ts.map +1 -0
  216. package/src/tasks/__tests__/assignee.test.js +125 -0
  217. package/src/tasks/__tests__/assignee.test.js.map +1 -0
  218. package/src/tasks/__tests__/assignee.test.ts +162 -0
  219. package/src/tasks/__tests__/complete-unblocks.test.js +13 -1
  220. package/src/tasks/__tests__/complete-unblocks.test.js.map +1 -1
  221. package/src/tasks/__tests__/complete.test.js +28 -7
  222. package/src/tasks/__tests__/complete.test.js.map +1 -1
  223. package/src/tasks/__tests__/epic-enforcement.test.d.ts +15 -0
  224. package/src/tasks/__tests__/epic-enforcement.test.d.ts.map +1 -0
  225. package/src/tasks/__tests__/epic-enforcement.test.js +669 -0
  226. package/src/tasks/__tests__/epic-enforcement.test.js.map +1 -0
  227. package/src/tasks/__tests__/hierarchy-policy.test.js +5 -0
  228. package/src/tasks/__tests__/hierarchy-policy.test.js.map +1 -1
  229. package/src/tasks/__tests__/minimal-test.test.d.ts +2 -0
  230. package/src/tasks/__tests__/minimal-test.test.d.ts.map +1 -0
  231. package/src/tasks/__tests__/minimal-test.test.js +25 -0
  232. package/src/tasks/__tests__/minimal-test.test.js.map +1 -0
  233. package/src/tasks/__tests__/pipeline-stage.test.d.ts +14 -0
  234. package/src/tasks/__tests__/pipeline-stage.test.d.ts.map +1 -0
  235. package/src/tasks/__tests__/pipeline-stage.test.js +277 -0
  236. package/src/tasks/__tests__/pipeline-stage.test.js.map +1 -0
  237. package/src/tasks/__tests__/update.test.js +43 -6
  238. package/src/tasks/__tests__/update.test.js.map +1 -1
  239. package/src/tasks/find.ts +11 -1
  240. package/src/tasks/list.ts +14 -3
  241. package/src/tasks/show.ts +6 -0
  242. package/src/upgrade.ts +16 -0
  243. package/dist/adapters/adapter-registry.js +0 -64
  244. package/dist/adapters/adapter-registry.js.map +0 -1
  245. package/dist/adapters/discovery.js +0 -83
  246. package/dist/adapters/discovery.js.map +0 -1
  247. package/dist/adapters/index.js +0 -9
  248. package/dist/adapters/index.js.map +0 -1
  249. package/dist/adapters/manager.js +0 -260
  250. package/dist/adapters/manager.js.map +0 -1
  251. package/dist/admin/export-tasks.js +0 -171
  252. package/dist/admin/export-tasks.js.map +0 -1
  253. package/dist/admin/export.js +0 -103
  254. package/dist/admin/export.js.map +0 -1
  255. package/dist/admin/help.js +0 -106
  256. package/dist/admin/help.js.map +0 -1
  257. package/dist/admin/import-tasks.js +0 -182
  258. package/dist/admin/import-tasks.js.map +0 -1
  259. package/dist/admin/import.js +0 -129
  260. package/dist/admin/import.js.map +0 -1
  261. package/dist/admin/index.js +0 -13
  262. package/dist/admin/index.js.map +0 -1
  263. package/dist/adrs/find.js +0 -134
  264. package/dist/adrs/find.js.map +0 -1
  265. package/dist/adrs/index.js +0 -15
  266. package/dist/adrs/index.js.map +0 -1
  267. package/dist/adrs/link-pipeline.js +0 -160
  268. package/dist/adrs/link-pipeline.js.map +0 -1
  269. package/dist/adrs/list.js +0 -43
  270. package/dist/adrs/list.js.map +0 -1
  271. package/dist/adrs/parse.js +0 -51
  272. package/dist/adrs/parse.js.map +0 -1
  273. package/dist/adrs/show.js +0 -22
  274. package/dist/adrs/show.js.map +0 -1
  275. package/dist/adrs/sync.js +0 -188
  276. package/dist/adrs/sync.js.map +0 -1
  277. package/dist/adrs/types.js +0 -9
  278. package/dist/adrs/types.js.map +0 -1
  279. package/dist/adrs/validate.js +0 -57
  280. package/dist/adrs/validate.js.map +0 -1
  281. package/dist/agents/agent-registry.js +0 -288
  282. package/dist/agents/agent-registry.js.map +0 -1
  283. package/dist/agents/agent-schema.js +0 -85
  284. package/dist/agents/agent-schema.js.map +0 -1
  285. package/dist/agents/capacity.js +0 -116
  286. package/dist/agents/capacity.js.map +0 -1
  287. package/dist/agents/execution-learning.js +0 -474
  288. package/dist/agents/execution-learning.js.map +0 -1
  289. package/dist/agents/health-monitor.js +0 -217
  290. package/dist/agents/health-monitor.js.map +0 -1
  291. package/dist/agents/index.js +0 -29
  292. package/dist/agents/index.js.map +0 -1
  293. package/dist/agents/registry.js +0 -314
  294. package/dist/agents/registry.js.map +0 -1
  295. package/dist/agents/retry.js +0 -210
  296. package/dist/agents/retry.js.map +0 -1
  297. package/dist/audit-prune.js +0 -94
  298. package/dist/audit-prune.js.map +0 -1
  299. package/dist/audit.js +0 -68
  300. package/dist/audit.js.map +0 -1
  301. package/dist/backfill/index.js +0 -229
  302. package/dist/backfill/index.js.map +0 -1
  303. package/dist/bootstrap.js +0 -367
  304. package/dist/bootstrap.js.map +0 -1
  305. package/dist/caamp/adapter.js +0 -434
  306. package/dist/caamp/adapter.js.map +0 -1
  307. package/dist/caamp/capability-check.js +0 -38
  308. package/dist/caamp/capability-check.js.map +0 -1
  309. package/dist/caamp/index.js +0 -23
  310. package/dist/caamp/index.js.map +0 -1
  311. package/dist/caamp-init.js +0 -16
  312. package/dist/caamp-init.js.map +0 -1
  313. package/dist/cleo.js +0 -302
  314. package/dist/cleo.js.map +0 -1
  315. package/dist/codebase-map/analyzers/architecture.js +0 -130
  316. package/dist/codebase-map/analyzers/architecture.js.map +0 -1
  317. package/dist/codebase-map/analyzers/concerns.js +0 -122
  318. package/dist/codebase-map/analyzers/concerns.js.map +0 -1
  319. package/dist/codebase-map/analyzers/conventions.js +0 -149
  320. package/dist/codebase-map/analyzers/conventions.js.map +0 -1
  321. package/dist/codebase-map/analyzers/integrations.js +0 -108
  322. package/dist/codebase-map/analyzers/integrations.js.map +0 -1
  323. package/dist/codebase-map/analyzers/stack.js +0 -117
  324. package/dist/codebase-map/analyzers/stack.js.map +0 -1
  325. package/dist/codebase-map/analyzers/structure.js +0 -137
  326. package/dist/codebase-map/analyzers/structure.js.map +0 -1
  327. package/dist/codebase-map/analyzers/testing.js +0 -118
  328. package/dist/codebase-map/analyzers/testing.js.map +0 -1
  329. package/dist/codebase-map/index.js +0 -57
  330. package/dist/codebase-map/index.js.map +0 -1
  331. package/dist/codebase-map/store.js +0 -122
  332. package/dist/codebase-map/store.js.map +0 -1
  333. package/dist/codebase-map/summary.js +0 -152
  334. package/dist/codebase-map/summary.js.map +0 -1
  335. package/dist/compliance/index.js +0 -288
  336. package/dist/compliance/index.js.map +0 -1
  337. package/dist/compliance/protocol-enforcement.js +0 -332
  338. package/dist/compliance/protocol-enforcement.js.map +0 -1
  339. package/dist/compliance/protocol-rules.js +0 -786
  340. package/dist/compliance/protocol-rules.js.map +0 -1
  341. package/dist/compliance/protocol-types.js +0 -80
  342. package/dist/compliance/protocol-types.js.map +0 -1
  343. package/dist/compliance/store.js +0 -53
  344. package/dist/compliance/store.js.map +0 -1
  345. package/dist/config/build-config.js +0 -29
  346. package/dist/config/build-config.js.map +0 -1
  347. package/dist/config.js +0 -400
  348. package/dist/config.js.map +0 -1
  349. package/dist/constants.js +0 -18
  350. package/dist/constants.js.map +0 -1
  351. package/dist/context/index.js +0 -137
  352. package/dist/context/index.js.map +0 -1
  353. package/dist/engine-result.js +0 -12
  354. package/dist/engine-result.js.map +0 -1
  355. package/dist/error-catalog.js +0 -404
  356. package/dist/error-catalog.js.map +0 -1
  357. package/dist/error-registry.js +0 -393
  358. package/dist/error-registry.js.map +0 -1
  359. package/dist/errors.js +0 -167
  360. package/dist/errors.js.map +0 -1
  361. package/dist/hooks/handlers/error-hooks.js +0 -43
  362. package/dist/hooks/handlers/error-hooks.js.map +0 -1
  363. package/dist/hooks/handlers/file-hooks.js +0 -80
  364. package/dist/hooks/handlers/file-hooks.js.map +0 -1
  365. package/dist/hooks/handlers/index.js +0 -19
  366. package/dist/hooks/handlers/index.js.map +0 -1
  367. package/dist/hooks/handlers/mcp-hooks.js +0 -80
  368. package/dist/hooks/handlers/mcp-hooks.js.map +0 -1
  369. package/dist/hooks/handlers/memory-bridge-refresh.js +0 -42
  370. package/dist/hooks/handlers/memory-bridge-refresh.js.map +0 -1
  371. package/dist/hooks/handlers/session-hooks.js +0 -109
  372. package/dist/hooks/handlers/session-hooks.js.map +0 -1
  373. package/dist/hooks/handlers/task-hooks.js +0 -70
  374. package/dist/hooks/handlers/task-hooks.js.map +0 -1
  375. package/dist/hooks/index.js +0 -13
  376. package/dist/hooks/index.js.map +0 -1
  377. package/dist/hooks/payload-schemas.js +0 -163
  378. package/dist/hooks/payload-schemas.js.map +0 -1
  379. package/dist/hooks/provider-hooks.js +0 -34
  380. package/dist/hooks/provider-hooks.js.map +0 -1
  381. package/dist/hooks/registry.js +0 -176
  382. package/dist/hooks/registry.js.map +0 -1
  383. package/dist/hooks/types.js +0 -62
  384. package/dist/hooks/types.js.map +0 -1
  385. package/dist/hooks.js +0 -136
  386. package/dist/hooks.js.map +0 -1
  387. package/dist/init.js +0 -711
  388. package/dist/init.js.map +0 -1
  389. package/dist/inject/index.js +0 -82
  390. package/dist/inject/index.js.map +0 -1
  391. package/dist/injection.js +0 -343
  392. package/dist/injection.js.map +0 -1
  393. package/dist/intelligence/adaptive-validation.js +0 -497
  394. package/dist/intelligence/adaptive-validation.js.map +0 -1
  395. package/dist/intelligence/impact.js +0 -675
  396. package/dist/intelligence/impact.js.map +0 -1
  397. package/dist/intelligence/index.js +0 -22
  398. package/dist/intelligence/index.js.map +0 -1
  399. package/dist/intelligence/patterns.js +0 -492
  400. package/dist/intelligence/patterns.js.map +0 -1
  401. package/dist/intelligence/prediction.js +0 -499
  402. package/dist/intelligence/prediction.js.map +0 -1
  403. package/dist/intelligence/types.js +0 -13
  404. package/dist/intelligence/types.js.map +0 -1
  405. package/dist/internal.js +0 -276
  406. package/dist/internal.js.map +0 -1
  407. package/dist/issue/create.js +0 -121
  408. package/dist/issue/create.js.map +0 -1
  409. package/dist/issue/diagnostics.js +0 -59
  410. package/dist/issue/diagnostics.js.map +0 -1
  411. package/dist/issue/index.js +0 -10
  412. package/dist/issue/index.js.map +0 -1
  413. package/dist/issue/template-parser.js +0 -267
  414. package/dist/issue/template-parser.js.map +0 -1
  415. package/dist/json-schema-validator.js +0 -76
  416. package/dist/json-schema-validator.js.map +0 -1
  417. package/dist/lib/index.js +0 -10
  418. package/dist/lib/index.js.map +0 -1
  419. package/dist/lib/retry.js +0 -152
  420. package/dist/lib/retry.js.map +0 -1
  421. package/dist/lifecycle/chain-composition.js +0 -152
  422. package/dist/lifecycle/chain-composition.js.map +0 -1
  423. package/dist/lifecycle/chain-store.js +0 -246
  424. package/dist/lifecycle/chain-store.js.map +0 -1
  425. package/dist/lifecycle/consolidate-rcasd.js +0 -352
  426. package/dist/lifecycle/consolidate-rcasd.js.map +0 -1
  427. package/dist/lifecycle/default-chain.js +0 -167
  428. package/dist/lifecycle/default-chain.js.map +0 -1
  429. package/dist/lifecycle/evidence.js +0 -180
  430. package/dist/lifecycle/evidence.js.map +0 -1
  431. package/dist/lifecycle/frontmatter.js +0 -363
  432. package/dist/lifecycle/frontmatter.js.map +0 -1
  433. package/dist/lifecycle/index.js +0 -753
  434. package/dist/lifecycle/index.js.map +0 -1
  435. package/dist/lifecycle/pipeline.js +0 -656
  436. package/dist/lifecycle/pipeline.js.map +0 -1
  437. package/dist/lifecycle/rcasd-index.js +0 -326
  438. package/dist/lifecycle/rcasd-index.js.map +0 -1
  439. package/dist/lifecycle/rcasd-paths.js +0 -220
  440. package/dist/lifecycle/rcasd-paths.js.map +0 -1
  441. package/dist/lifecycle/resume.js +0 -864
  442. package/dist/lifecycle/resume.js.map +0 -1
  443. package/dist/lifecycle/stage-artifacts.js +0 -94
  444. package/dist/lifecycle/stage-artifacts.js.map +0 -1
  445. package/dist/lifecycle/stages.js +0 -534
  446. package/dist/lifecycle/stages.js.map +0 -1
  447. package/dist/lifecycle/state-machine.js +0 -516
  448. package/dist/lifecycle/state-machine.js.map +0 -1
  449. package/dist/lifecycle/tessera-engine.js +0 -249
  450. package/dist/lifecycle/tessera-engine.js.map +0 -1
  451. package/dist/logger.js +0 -140
  452. package/dist/logger.js.map +0 -1
  453. package/dist/mcp/index.js +0 -146
  454. package/dist/mcp/index.js.map +0 -1
  455. package/dist/memory/auto-extract.js +0 -177
  456. package/dist/memory/auto-extract.js.map +0 -1
  457. package/dist/memory/brain-embedding.js +0 -66
  458. package/dist/memory/brain-embedding.js.map +0 -1
  459. package/dist/memory/brain-lifecycle.js +0 -298
  460. package/dist/memory/brain-lifecycle.js.map +0 -1
  461. package/dist/memory/brain-links.js +0 -148
  462. package/dist/memory/brain-links.js.map +0 -1
  463. package/dist/memory/brain-maintenance.js +0 -98
  464. package/dist/memory/brain-maintenance.js.map +0 -1
  465. package/dist/memory/brain-migration.js +0 -149
  466. package/dist/memory/brain-migration.js.map +0 -1
  467. package/dist/memory/brain-reasoning.js +0 -215
  468. package/dist/memory/brain-reasoning.js.map +0 -1
  469. package/dist/memory/brain-retrieval.js +0 -521
  470. package/dist/memory/brain-retrieval.js.map +0 -1
  471. package/dist/memory/brain-row-types.js +0 -10
  472. package/dist/memory/brain-row-types.js.map +0 -1
  473. package/dist/memory/brain-search.js +0 -519
  474. package/dist/memory/brain-search.js.map +0 -1
  475. package/dist/memory/brain-similarity.js +0 -145
  476. package/dist/memory/brain-similarity.js.map +0 -1
  477. package/dist/memory/claude-mem-migration.js +0 -277
  478. package/dist/memory/claude-mem-migration.js.map +0 -1
  479. package/dist/memory/decisions.js +0 -148
  480. package/dist/memory/decisions.js.map +0 -1
  481. package/dist/memory/embedding-local.js +0 -97
  482. package/dist/memory/embedding-local.js.map +0 -1
  483. package/dist/memory/embedding-queue.js +0 -271
  484. package/dist/memory/embedding-queue.js.map +0 -1
  485. package/dist/memory/embedding-worker.js +0 -58
  486. package/dist/memory/embedding-worker.js.map +0 -1
  487. package/dist/memory/engine-compat.js +0 -1030
  488. package/dist/memory/engine-compat.js.map +0 -1
  489. package/dist/memory/index.js +0 -773
  490. package/dist/memory/index.js.map +0 -1
  491. package/dist/memory/learnings.js +0 -121
  492. package/dist/memory/learnings.js.map +0 -1
  493. package/dist/memory/memory-bridge.js +0 -370
  494. package/dist/memory/memory-bridge.js.map +0 -1
  495. package/dist/memory/patterns.js +0 -122
  496. package/dist/memory/patterns.js.map +0 -1
  497. package/dist/memory/pipeline-manifest-sqlite.js +0 -975
  498. package/dist/memory/pipeline-manifest-sqlite.js.map +0 -1
  499. package/dist/memory/session-memory.js +0 -331
  500. package/dist/memory/session-memory.js.map +0 -1
  501. package/dist/metrics/ab-test.js +0 -260
  502. package/dist/metrics/ab-test.js.map +0 -1
  503. package/dist/metrics/aggregation.js +0 -363
  504. package/dist/metrics/aggregation.js.map +0 -1
  505. package/dist/metrics/common.js +0 -64
  506. package/dist/metrics/common.js.map +0 -1
  507. package/dist/metrics/enums.js +0 -78
  508. package/dist/metrics/enums.js.map +0 -1
  509. package/dist/metrics/index.js +0 -19
  510. package/dist/metrics/index.js.map +0 -1
  511. package/dist/metrics/model-provider-registry.js +0 -88
  512. package/dist/metrics/model-provider-registry.js.map +0 -1
  513. package/dist/metrics/otel-integration.js +0 -263
  514. package/dist/metrics/otel-integration.js.map +0 -1
  515. package/dist/metrics/provider-detection.js +0 -103
  516. package/dist/metrics/provider-detection.js.map +0 -1
  517. package/dist/metrics/token-estimation.js +0 -253
  518. package/dist/metrics/token-estimation.js.map +0 -1
  519. package/dist/metrics/token-service.js +0 -450
  520. package/dist/metrics/token-service.js.map +0 -1
  521. package/dist/migration/agent-outputs.js +0 -316
  522. package/dist/migration/agent-outputs.js.map +0 -1
  523. package/dist/migration/checksum.js +0 -92
  524. package/dist/migration/checksum.js.map +0 -1
  525. package/dist/migration/index.js +0 -282
  526. package/dist/migration/index.js.map +0 -1
  527. package/dist/migration/logger.js +0 -360
  528. package/dist/migration/logger.js.map +0 -1
  529. package/dist/migration/preflight.js +0 -9
  530. package/dist/migration/preflight.js.map +0 -1
  531. package/dist/migration/state.js +0 -421
  532. package/dist/migration/state.js.map +0 -1
  533. package/dist/migration/validate.js +0 -241
  534. package/dist/migration/validate.js.map +0 -1
  535. package/dist/nexus/deps.js +0 -375
  536. package/dist/nexus/deps.js.map +0 -1
  537. package/dist/nexus/discover.js +0 -288
  538. package/dist/nexus/discover.js.map +0 -1
  539. package/dist/nexus/hash.js +0 -10
  540. package/dist/nexus/hash.js.map +0 -1
  541. package/dist/nexus/index.js +0 -38
  542. package/dist/nexus/index.js.map +0 -1
  543. package/dist/nexus/migrate-json-to-sqlite.js +0 -115
  544. package/dist/nexus/migrate-json-to-sqlite.js.map +0 -1
  545. package/dist/nexus/permissions.js +0 -105
  546. package/dist/nexus/permissions.js.map +0 -1
  547. package/dist/nexus/query.js +0 -175
  548. package/dist/nexus/query.js.map +0 -1
  549. package/dist/nexus/registry.js +0 -584
  550. package/dist/nexus/registry.js.map +0 -1
  551. package/dist/nexus/sharing/index.js +0 -288
  552. package/dist/nexus/sharing/index.js.map +0 -1
  553. package/dist/nexus/transfer-types.js +0 -8
  554. package/dist/nexus/transfer-types.js.map +0 -1
  555. package/dist/nexus/transfer.js +0 -263
  556. package/dist/nexus/transfer.js.map +0 -1
  557. package/dist/observability/index.js +0 -103
  558. package/dist/observability/index.js.map +0 -1
  559. package/dist/observability/log-filter.js +0 -63
  560. package/dist/observability/log-filter.js.map +0 -1
  561. package/dist/observability/log-parser.js +0 -99
  562. package/dist/observability/log-parser.js.map +0 -1
  563. package/dist/observability/log-reader.js +0 -139
  564. package/dist/observability/log-reader.js.map +0 -1
  565. package/dist/observability/types.js +0 -19
  566. package/dist/observability/types.js.map +0 -1
  567. package/dist/orchestration/analyze.js +0 -107
  568. package/dist/orchestration/analyze.js.map +0 -1
  569. package/dist/orchestration/bootstrap.js +0 -132
  570. package/dist/orchestration/bootstrap.js.map +0 -1
  571. package/dist/orchestration/context.js +0 -56
  572. package/dist/orchestration/context.js.map +0 -1
  573. package/dist/orchestration/critical-path.js +0 -100
  574. package/dist/orchestration/critical-path.js.map +0 -1
  575. package/dist/orchestration/index.js +0 -286
  576. package/dist/orchestration/index.js.map +0 -1
  577. package/dist/orchestration/parallel.js +0 -89
  578. package/dist/orchestration/parallel.js.map +0 -1
  579. package/dist/orchestration/protocol-validators.js +0 -524
  580. package/dist/orchestration/protocol-validators.js.map +0 -1
  581. package/dist/orchestration/skill-ops.js +0 -98
  582. package/dist/orchestration/skill-ops.js.map +0 -1
  583. package/dist/orchestration/status.js +0 -107
  584. package/dist/orchestration/status.js.map +0 -1
  585. package/dist/orchestration/unblock.js +0 -103
  586. package/dist/orchestration/unblock.js.map +0 -1
  587. package/dist/orchestration/validate-spawn.js +0 -67
  588. package/dist/orchestration/validate-spawn.js.map +0 -1
  589. package/dist/orchestration/waves.js +0 -86
  590. package/dist/orchestration/waves.js.map +0 -1
  591. package/dist/otel/index.js +0 -163
  592. package/dist/otel/index.js.map +0 -1
  593. package/dist/output.js +0 -132
  594. package/dist/output.js.map +0 -1
  595. package/dist/pagination.js +0 -64
  596. package/dist/pagination.js.map +0 -1
  597. package/dist/paths.js +0 -337
  598. package/dist/paths.js.map +0 -1
  599. package/dist/phases/deps.js +0 -372
  600. package/dist/phases/deps.js.map +0 -1
  601. package/dist/phases/index.js +0 -349
  602. package/dist/phases/index.js.map +0 -1
  603. package/dist/pipeline/index.js +0 -10
  604. package/dist/pipeline/index.js.map +0 -1
  605. package/dist/pipeline/phase.js +0 -45
  606. package/dist/pipeline/phase.js.map +0 -1
  607. package/dist/platform.js +0 -211
  608. package/dist/platform.js.map +0 -1
  609. package/dist/project-info.js +0 -84
  610. package/dist/project-info.js.map +0 -1
  611. package/dist/reconciliation/index.js +0 -10
  612. package/dist/reconciliation/index.js.map +0 -1
  613. package/dist/reconciliation/link-store.js +0 -129
  614. package/dist/reconciliation/link-store.js.map +0 -1
  615. package/dist/reconciliation/reconciliation-engine.js +0 -298
  616. package/dist/reconciliation/reconciliation-engine.js.map +0 -1
  617. package/dist/release/artifacts.js +0 -427
  618. package/dist/release/artifacts.js.map +0 -1
  619. package/dist/release/changelog-writer.js +0 -151
  620. package/dist/release/changelog-writer.js.map +0 -1
  621. package/dist/release/channel.js +0 -144
  622. package/dist/release/channel.js.map +0 -1
  623. package/dist/release/ci.js +0 -166
  624. package/dist/release/ci.js.map +0 -1
  625. package/dist/release/github-pr.js +0 -225
  626. package/dist/release/github-pr.js.map +0 -1
  627. package/dist/release/guards.js +0 -116
  628. package/dist/release/guards.js.map +0 -1
  629. package/dist/release/index.js +0 -22
  630. package/dist/release/index.js.map +0 -1
  631. package/dist/release/release-config.js +0 -158
  632. package/dist/release/release-config.js.map +0 -1
  633. package/dist/release/release-manifest.js +0 -1019
  634. package/dist/release/release-manifest.js.map +0 -1
  635. package/dist/release/version-bump.js +0 -255
  636. package/dist/release/version-bump.js.map +0 -1
  637. package/dist/remote/index.js +0 -257
  638. package/dist/remote/index.js.map +0 -1
  639. package/dist/repair.js +0 -130
  640. package/dist/repair.js.map +0 -1
  641. package/dist/research/index.js +0 -2
  642. package/dist/research/index.js.map +0 -1
  643. package/dist/roadmap/index.js +0 -59
  644. package/dist/roadmap/index.js.map +0 -1
  645. package/dist/routing/capability-matrix.js +0 -1557
  646. package/dist/routing/capability-matrix.js.map +0 -1
  647. package/dist/routing/index.js +0 -9
  648. package/dist/routing/index.js.map +0 -1
  649. package/dist/scaffold.js +0 -1178
  650. package/dist/scaffold.js.map +0 -1
  651. package/dist/schema-management.js +0 -295
  652. package/dist/schema-management.js.map +0 -1
  653. package/dist/security/index.js +0 -9
  654. package/dist/security/index.js.map +0 -1
  655. package/dist/security/input-sanitization.js +0 -321
  656. package/dist/security/input-sanitization.js.map +0 -1
  657. package/dist/sequence/index.js +0 -295
  658. package/dist/sequence/index.js.map +0 -1
  659. package/dist/sessions/assumptions.js +0 -54
  660. package/dist/sessions/assumptions.js.map +0 -1
  661. package/dist/sessions/briefing.js +0 -377
  662. package/dist/sessions/briefing.js.map +0 -1
  663. package/dist/sessions/context-alert.js +0 -222
  664. package/dist/sessions/context-alert.js.map +0 -1
  665. package/dist/sessions/context-inject.js +0 -61
  666. package/dist/sessions/context-inject.js.map +0 -1
  667. package/dist/sessions/context-monitor.js +0 -98
  668. package/dist/sessions/context-monitor.js.map +0 -1
  669. package/dist/sessions/decisions.js +0 -65
  670. package/dist/sessions/decisions.js.map +0 -1
  671. package/dist/sessions/find.js +0 -63
  672. package/dist/sessions/find.js.map +0 -1
  673. package/dist/sessions/handoff.js +0 -328
  674. package/dist/sessions/handoff.js.map +0 -1
  675. package/dist/sessions/hitl-warnings.js +0 -254
  676. package/dist/sessions/hitl-warnings.js.map +0 -1
  677. package/dist/sessions/index.js +0 -314
  678. package/dist/sessions/index.js.map +0 -1
  679. package/dist/sessions/session-archive.js +0 -40
  680. package/dist/sessions/session-archive.js.map +0 -1
  681. package/dist/sessions/session-cleanup.js +0 -59
  682. package/dist/sessions/session-cleanup.js.map +0 -1
  683. package/dist/sessions/session-drift.js +0 -134
  684. package/dist/sessions/session-drift.js.map +0 -1
  685. package/dist/sessions/session-enforcement.js +0 -144
  686. package/dist/sessions/session-enforcement.js.map +0 -1
  687. package/dist/sessions/session-grade.js +0 -253
  688. package/dist/sessions/session-grade.js.map +0 -1
  689. package/dist/sessions/session-history.js +0 -42
  690. package/dist/sessions/session-history.js.map +0 -1
  691. package/dist/sessions/session-id.js +0 -81
  692. package/dist/sessions/session-id.js.map +0 -1
  693. package/dist/sessions/session-memory-bridge.js +0 -52
  694. package/dist/sessions/session-memory-bridge.js.map +0 -1
  695. package/dist/sessions/session-show.js +0 -24
  696. package/dist/sessions/session-show.js.map +0 -1
  697. package/dist/sessions/session-stats.js +0 -69
  698. package/dist/sessions/session-stats.js.map +0 -1
  699. package/dist/sessions/session-suspend.js +0 -39
  700. package/dist/sessions/session-suspend.js.map +0 -1
  701. package/dist/sessions/session-switch.js +0 -51
  702. package/dist/sessions/session-switch.js.map +0 -1
  703. package/dist/sessions/session-view.js +0 -76
  704. package/dist/sessions/session-view.js.map +0 -1
  705. package/dist/sessions/statusline-setup.js +0 -85
  706. package/dist/sessions/statusline-setup.js.map +0 -1
  707. package/dist/sessions/types.js +0 -8
  708. package/dist/sessions/types.js.map +0 -1
  709. package/dist/signaldock/claude-code-transport.d.ts +0 -34
  710. package/dist/signaldock/claude-code-transport.d.ts.map +0 -1
  711. package/dist/signaldock/claude-code-transport.js +0 -107
  712. package/dist/signaldock/claude-code-transport.js.map +0 -1
  713. package/dist/signaldock/factory.d.ts +0 -22
  714. package/dist/signaldock/factory.d.ts.map +0 -1
  715. package/dist/signaldock/factory.js +0 -25
  716. package/dist/signaldock/factory.js.map +0 -1
  717. package/dist/signaldock/index.d.ts +0 -13
  718. package/dist/signaldock/index.d.ts.map +0 -1
  719. package/dist/signaldock/index.js +0 -9
  720. package/dist/signaldock/index.js.map +0 -1
  721. package/dist/signaldock/signaldock-transport.d.ts +0 -45
  722. package/dist/signaldock/signaldock-transport.d.ts.map +0 -1
  723. package/dist/signaldock/signaldock-transport.js +0 -122
  724. package/dist/signaldock/signaldock-transport.js.map +0 -1
  725. package/dist/signaldock/transport.d.ts +0 -49
  726. package/dist/signaldock/transport.d.ts.map +0 -1
  727. package/dist/signaldock/transport.js +0 -11
  728. package/dist/signaldock/transport.js.map +0 -1
  729. package/dist/signaldock/types.d.ts +0 -88
  730. package/dist/signaldock/types.d.ts.map +0 -1
  731. package/dist/signaldock/types.js +0 -11
  732. package/dist/signaldock/types.js.map +0 -1
  733. package/dist/skills/agents/config.js +0 -94
  734. package/dist/skills/agents/config.js.map +0 -1
  735. package/dist/skills/agents/install.js +0 -116
  736. package/dist/skills/agents/install.js.map +0 -1
  737. package/dist/skills/agents/registry.js +0 -161
  738. package/dist/skills/agents/registry.js.map +0 -1
  739. package/dist/skills/discovery.js +0 -333
  740. package/dist/skills/discovery.js.map +0 -1
  741. package/dist/skills/dispatch.js +0 -347
  742. package/dist/skills/dispatch.js.map +0 -1
  743. package/dist/skills/dynamic-skill-generator.js +0 -100
  744. package/dist/skills/dynamic-skill-generator.js.map +0 -1
  745. package/dist/skills/index.js +0 -44
  746. package/dist/skills/index.js.map +0 -1
  747. package/dist/skills/injection/subagent.js +0 -195
  748. package/dist/skills/injection/subagent.js.map +0 -1
  749. package/dist/skills/injection/token.js +0 -260
  750. package/dist/skills/injection/token.js.map +0 -1
  751. package/dist/skills/install.js +0 -40
  752. package/dist/skills/install.js.map +0 -1
  753. package/dist/skills/manifests/contribution.js +0 -175
  754. package/dist/skills/manifests/contribution.js.map +0 -1
  755. package/dist/skills/manifests/research.js +0 -281
  756. package/dist/skills/manifests/research.js.map +0 -1
  757. package/dist/skills/manifests/resolver.js +0 -146
  758. package/dist/skills/manifests/resolver.js.map +0 -1
  759. package/dist/skills/marketplace.js +0 -90
  760. package/dist/skills/marketplace.js.map +0 -1
  761. package/dist/skills/orchestrator/spawn.js +0 -178
  762. package/dist/skills/orchestrator/spawn.js.map +0 -1
  763. package/dist/skills/orchestrator/startup.js +0 -451
  764. package/dist/skills/orchestrator/startup.js.map +0 -1
  765. package/dist/skills/orchestrator/validator.js +0 -301
  766. package/dist/skills/orchestrator/validator.js.map +0 -1
  767. package/dist/skills/precedence-integration.js +0 -73
  768. package/dist/skills/precedence-integration.js.map +0 -1
  769. package/dist/skills/precedence-types.js +0 -16
  770. package/dist/skills/precedence-types.js.map +0 -1
  771. package/dist/skills/routing-table.js +0 -63
  772. package/dist/skills/routing-table.js.map +0 -1
  773. package/dist/skills/skill-paths.js +0 -220
  774. package/dist/skills/skill-paths.js.map +0 -1
  775. package/dist/skills/test-utility.js +0 -55
  776. package/dist/skills/test-utility.js.map +0 -1
  777. package/dist/skills/types.js +0 -118
  778. package/dist/skills/types.js.map +0 -1
  779. package/dist/skills/validation.js +0 -183
  780. package/dist/skills/validation.js.map +0 -1
  781. package/dist/skills/version.js +0 -57
  782. package/dist/skills/version.js.map +0 -1
  783. package/dist/snapshot/index.js +0 -188
  784. package/dist/snapshot/index.js.map +0 -1
  785. package/dist/spawn/adapter-registry.js +0 -246
  786. package/dist/spawn/adapter-registry.js.map +0 -1
  787. package/dist/spawn/index.js +0 -10
  788. package/dist/spawn/index.js.map +0 -1
  789. package/dist/stats/index.js +0 -343
  790. package/dist/stats/index.js.map +0 -1
  791. package/dist/stats/workflow-telemetry.js +0 -400
  792. package/dist/stats/workflow-telemetry.js.map +0 -1
  793. package/dist/sticky/archive.js +0 -47
  794. package/dist/sticky/archive.js.map +0 -1
  795. package/dist/sticky/convert.js +0 -235
  796. package/dist/sticky/convert.js.map +0 -1
  797. package/dist/sticky/create.js +0 -48
  798. package/dist/sticky/create.js.map +0 -1
  799. package/dist/sticky/id.js +0 -35
  800. package/dist/sticky/id.js.map +0 -1
  801. package/dist/sticky/index.js +0 -16
  802. package/dist/sticky/index.js.map +0 -1
  803. package/dist/sticky/list.js +0 -44
  804. package/dist/sticky/list.js.map +0 -1
  805. package/dist/sticky/purge.js +0 -45
  806. package/dist/sticky/purge.js.map +0 -1
  807. package/dist/sticky/show.js +0 -42
  808. package/dist/sticky/show.js.map +0 -1
  809. package/dist/sticky/types.js +0 -10
  810. package/dist/sticky/types.js.map +0 -1
  811. package/dist/store/atomic.js +0 -167
  812. package/dist/store/atomic.js.map +0 -1
  813. package/dist/store/backup.js +0 -94
  814. package/dist/store/backup.js.map +0 -1
  815. package/dist/store/brain-accessor.js +0 -397
  816. package/dist/store/brain-accessor.js.map +0 -1
  817. package/dist/store/brain-schema.js +0 -215
  818. package/dist/store/brain-schema.js.map +0 -1
  819. package/dist/store/brain-sqlite.js +0 -222
  820. package/dist/store/brain-sqlite.js.map +0 -1
  821. package/dist/store/cache.js +0 -168
  822. package/dist/store/cache.js.map +0 -1
  823. package/dist/store/chain-schema.js +0 -51
  824. package/dist/store/chain-schema.js.map +0 -1
  825. package/dist/store/converters.js +0 -122
  826. package/dist/store/converters.js.map +0 -1
  827. package/dist/store/cross-db-cleanup.js +0 -169
  828. package/dist/store/cross-db-cleanup.js.map +0 -1
  829. package/dist/store/data-accessor.js +0 -26
  830. package/dist/store/data-accessor.js.map +0 -1
  831. package/dist/store/data-safety-central.js +0 -269
  832. package/dist/store/data-safety-central.js.map +0 -1
  833. package/dist/store/data-safety.js +0 -274
  834. package/dist/store/data-safety.js.map +0 -1
  835. package/dist/store/db-helpers.js +0 -223
  836. package/dist/store/db-helpers.js.map +0 -1
  837. package/dist/store/export.js +0 -155
  838. package/dist/store/export.js.map +0 -1
  839. package/dist/store/file-utils.js +0 -270
  840. package/dist/store/file-utils.js.map +0 -1
  841. package/dist/store/git-checkpoint.js +0 -365
  842. package/dist/store/git-checkpoint.js.map +0 -1
  843. package/dist/store/import-logging.js +0 -139
  844. package/dist/store/import-logging.js.map +0 -1
  845. package/dist/store/import-remap.js +0 -145
  846. package/dist/store/import-remap.js.map +0 -1
  847. package/dist/store/import-sort.js +0 -121
  848. package/dist/store/import-sort.js.map +0 -1
  849. package/dist/store/index.js +0 -28
  850. package/dist/store/index.js.map +0 -1
  851. package/dist/store/json.js +0 -208
  852. package/dist/store/json.js.map +0 -1
  853. package/dist/store/lifecycle-store.js +0 -249
  854. package/dist/store/lifecycle-store.js.map +0 -1
  855. package/dist/store/lock.js +0 -70
  856. package/dist/store/lock.js.map +0 -1
  857. package/dist/store/migration-manager.js +0 -151
  858. package/dist/store/migration-manager.js.map +0 -1
  859. package/dist/store/migration-sqlite.js +0 -676
  860. package/dist/store/migration-sqlite.js.map +0 -1
  861. package/dist/store/nexus-schema.js +0 -62
  862. package/dist/store/nexus-schema.js.map +0 -1
  863. package/dist/store/nexus-sqlite.js +0 -217
  864. package/dist/store/nexus-sqlite.js.map +0 -1
  865. package/dist/store/nexus-validation-schemas.js +0 -40
  866. package/dist/store/nexus-validation-schemas.js.map +0 -1
  867. package/dist/store/parsers.js +0 -37
  868. package/dist/store/parsers.js.map +0 -1
  869. package/dist/store/project-detect.js +0 -457
  870. package/dist/store/project-detect.js.map +0 -1
  871. package/dist/store/provider.js +0 -101
  872. package/dist/store/provider.js.map +0 -1
  873. package/dist/store/safety-data-accessor.js +0 -243
  874. package/dist/store/safety-data-accessor.js.map +0 -1
  875. package/dist/store/schema.js +0 -7
  876. package/dist/store/schema.js.map +0 -1
  877. package/dist/store/session-store.js +0 -219
  878. package/dist/store/session-store.js.map +0 -1
  879. package/dist/store/sqlite-backup.js +0 -105
  880. package/dist/store/sqlite-backup.js.map +0 -1
  881. package/dist/store/sqlite-data-accessor.js +0 -734
  882. package/dist/store/sqlite-data-accessor.js.map +0 -1
  883. package/dist/store/sqlite.js +0 -436
  884. package/dist/store/sqlite.js.map +0 -1
  885. package/dist/store/status-registry.js +0 -8
  886. package/dist/store/status-registry.js.map +0 -1
  887. package/dist/store/task-store.js +0 -348
  888. package/dist/store/task-store.js.map +0 -1
  889. package/dist/store/tasks-schema.js +0 -604
  890. package/dist/store/tasks-schema.js.map +0 -1
  891. package/dist/store/typed-query.js +0 -15
  892. package/dist/store/typed-query.js.map +0 -1
  893. package/dist/store/validation-schemas.js +0 -278
  894. package/dist/store/validation-schemas.js.map +0 -1
  895. package/dist/system/archive-analytics.js +0 -277
  896. package/dist/system/archive-analytics.js.map +0 -1
  897. package/dist/system/archive-stats.js +0 -64
  898. package/dist/system/archive-stats.js.map +0 -1
  899. package/dist/system/audit.js +0 -145
  900. package/dist/system/audit.js.map +0 -1
  901. package/dist/system/backup.js +0 -141
  902. package/dist/system/backup.js.map +0 -1
  903. package/dist/system/cleanup.js +0 -134
  904. package/dist/system/cleanup.js.map +0 -1
  905. package/dist/system/health.js +0 -1054
  906. package/dist/system/health.js.map +0 -1
  907. package/dist/system/index.js +0 -18
  908. package/dist/system/index.js.map +0 -1
  909. package/dist/system/inject-generate.js +0 -122
  910. package/dist/system/inject-generate.js.map +0 -1
  911. package/dist/system/labels.js +0 -38
  912. package/dist/system/labels.js.map +0 -1
  913. package/dist/system/metrics.js +0 -61
  914. package/dist/system/metrics.js.map +0 -1
  915. package/dist/system/migrate.js +0 -43
  916. package/dist/system/migrate.js.map +0 -1
  917. package/dist/system/platform-paths.js +0 -80
  918. package/dist/system/platform-paths.js.map +0 -1
  919. package/dist/system/runtime.js +0 -161
  920. package/dist/system/runtime.js.map +0 -1
  921. package/dist/system/safestop.js +0 -99
  922. package/dist/system/safestop.js.map +0 -1
  923. package/dist/system/storage-preflight.js +0 -123
  924. package/dist/system/storage-preflight.js.map +0 -1
  925. package/dist/task-work/index.js +0 -155
  926. package/dist/task-work/index.js.map +0 -1
  927. package/dist/tasks/add.js +0 -661
  928. package/dist/tasks/add.js.map +0 -1
  929. package/dist/tasks/analyze.js +0 -85
  930. package/dist/tasks/analyze.js.map +0 -1
  931. package/dist/tasks/archive.js +0 -90
  932. package/dist/tasks/archive.js.map +0 -1
  933. package/dist/tasks/atomicity.js +0 -83
  934. package/dist/tasks/atomicity.js.map +0 -1
  935. package/dist/tasks/cancel-ops.js +0 -83
  936. package/dist/tasks/cancel-ops.js.map +0 -1
  937. package/dist/tasks/complete.js +0 -208
  938. package/dist/tasks/complete.js.map +0 -1
  939. package/dist/tasks/crossref-extract.js +0 -73
  940. package/dist/tasks/crossref-extract.js.map +0 -1
  941. package/dist/tasks/delete-preview.js +0 -192
  942. package/dist/tasks/delete-preview.js.map +0 -1
  943. package/dist/tasks/delete.js +0 -120
  944. package/dist/tasks/delete.js.map +0 -1
  945. package/dist/tasks/deletion-strategy.js +0 -200
  946. package/dist/tasks/deletion-strategy.js.map +0 -1
  947. package/dist/tasks/dependency-check.js +0 -278
  948. package/dist/tasks/dependency-check.js.map +0 -1
  949. package/dist/tasks/deps-ready.js +0 -32
  950. package/dist/tasks/deps-ready.js.map +0 -1
  951. package/dist/tasks/enforcement.js +0 -86
  952. package/dist/tasks/enforcement.js.map +0 -1
  953. package/dist/tasks/epic-enforcement.js +0 -294
  954. package/dist/tasks/epic-enforcement.js.map +0 -1
  955. package/dist/tasks/find.js +0 -148
  956. package/dist/tasks/find.js.map +0 -1
  957. package/dist/tasks/graph-cache.js +0 -127
  958. package/dist/tasks/graph-cache.js.map +0 -1
  959. package/dist/tasks/graph-ops.js +0 -171
  960. package/dist/tasks/graph-ops.js.map +0 -1
  961. package/dist/tasks/graph-rag.js +0 -328
  962. package/dist/tasks/graph-rag.js.map +0 -1
  963. package/dist/tasks/hierarchy-policy.js +0 -149
  964. package/dist/tasks/hierarchy-policy.js.map +0 -1
  965. package/dist/tasks/hierarchy.js +0 -185
  966. package/dist/tasks/hierarchy.js.map +0 -1
  967. package/dist/tasks/id-generator.js +0 -65
  968. package/dist/tasks/id-generator.js.map +0 -1
  969. package/dist/tasks/index.js +0 -14
  970. package/dist/tasks/index.js.map +0 -1
  971. package/dist/tasks/labels.js +0 -52
  972. package/dist/tasks/labels.js.map +0 -1
  973. package/dist/tasks/list.js +0 -68
  974. package/dist/tasks/list.js.map +0 -1
  975. package/dist/tasks/phase-tracking.js +0 -133
  976. package/dist/tasks/phase-tracking.js.map +0 -1
  977. package/dist/tasks/pipeline-stage.js +0 -248
  978. package/dist/tasks/pipeline-stage.js.map +0 -1
  979. package/dist/tasks/plan.js +0 -268
  980. package/dist/tasks/plan.js.map +0 -1
  981. package/dist/tasks/relates.js +0 -89
  982. package/dist/tasks/relates.js.map +0 -1
  983. package/dist/tasks/reparent.d.ts +0 -38
  984. package/dist/tasks/reparent.d.ts.map +0 -1
  985. package/dist/tasks/show.js +0 -78
  986. package/dist/tasks/show.js.map +0 -1
  987. package/dist/tasks/size-weighting.js +0 -86
  988. package/dist/tasks/size-weighting.js.map +0 -1
  989. package/dist/tasks/staleness.js +0 -86
  990. package/dist/tasks/staleness.js.map +0 -1
  991. package/dist/tasks/task-ops.js +0 -1340
  992. package/dist/tasks/task-ops.js.map +0 -1
  993. package/dist/tasks/update.js +0 -271
  994. package/dist/tasks/update.js.map +0 -1
  995. package/dist/templates/index.js +0 -10
  996. package/dist/templates/index.js.map +0 -1
  997. package/dist/templates/parser.js +0 -254
  998. package/dist/templates/parser.js.map +0 -1
  999. package/dist/ui/aliases.js +0 -153
  1000. package/dist/ui/aliases.js.map +0 -1
  1001. package/dist/ui/changelog.js +0 -184
  1002. package/dist/ui/changelog.js.map +0 -1
  1003. package/dist/ui/command-registry.js +0 -168
  1004. package/dist/ui/command-registry.js.map +0 -1
  1005. package/dist/ui/flags.js +0 -94
  1006. package/dist/ui/flags.js.map +0 -1
  1007. package/dist/ui/index.js +0 -24
  1008. package/dist/ui/index.js.map +0 -1
  1009. package/dist/ui/injection-legacy.d.ts +0 -26
  1010. package/dist/ui/injection-legacy.d.ts.map +0 -1
  1011. package/dist/ui/injection-legacy.js +0 -42
  1012. package/dist/ui/injection-legacy.js.map +0 -1
  1013. package/dist/upgrade.js +0 -1144
  1014. package/dist/upgrade.js.map +0 -1
  1015. package/dist/validation/chain-validation.js +0 -146
  1016. package/dist/validation/chain-validation.js.map +0 -1
  1017. package/dist/validation/compliance.js +0 -155
  1018. package/dist/validation/compliance.js.map +0 -1
  1019. package/dist/validation/docs-sync.js +0 -212
  1020. package/dist/validation/docs-sync.js.map +0 -1
  1021. package/dist/validation/doctor/checks.js +0 -1069
  1022. package/dist/validation/doctor/checks.js.map +0 -1
  1023. package/dist/validation/doctor/index.js +0 -9
  1024. package/dist/validation/doctor/index.js.map +0 -1
  1025. package/dist/validation/doctor/project-cache.js +0 -160
  1026. package/dist/validation/doctor/project-cache.js.map +0 -1
  1027. package/dist/validation/doctor/utils.js +0 -155
  1028. package/dist/validation/doctor/utils.js.map +0 -1
  1029. package/dist/validation/engine.js +0 -902
  1030. package/dist/validation/engine.js.map +0 -1
  1031. package/dist/validation/gap-check.js +0 -175
  1032. package/dist/validation/gap-check.js.map +0 -1
  1033. package/dist/validation/index.js +0 -40
  1034. package/dist/validation/index.js.map +0 -1
  1035. package/dist/validation/manifest.js +0 -237
  1036. package/dist/validation/manifest.js.map +0 -1
  1037. package/dist/validation/operation-gate-validators.js +0 -724
  1038. package/dist/validation/operation-gate-validators.js.map +0 -1
  1039. package/dist/validation/operation-verification-gates.js +0 -532
  1040. package/dist/validation/operation-verification-gates.js.map +0 -1
  1041. package/dist/validation/param-utils.js +0 -139
  1042. package/dist/validation/param-utils.js.map +0 -1
  1043. package/dist/validation/protocol-common.js +0 -300
  1044. package/dist/validation/protocol-common.js.map +0 -1
  1045. package/dist/validation/protocols/consensus.js +0 -71
  1046. package/dist/validation/protocols/consensus.js.map +0 -1
  1047. package/dist/validation/protocols/contribution.js +0 -59
  1048. package/dist/validation/protocols/contribution.js.map +0 -1
  1049. package/dist/validation/protocols/decomposition.js +0 -59
  1050. package/dist/validation/protocols/decomposition.js.map +0 -1
  1051. package/dist/validation/protocols/implementation.js +0 -59
  1052. package/dist/validation/protocols/implementation.js.map +0 -1
  1053. package/dist/validation/protocols/release-protocol.js +0 -60
  1054. package/dist/validation/protocols/release-protocol.js.map +0 -1
  1055. package/dist/validation/protocols/research.js +0 -77
  1056. package/dist/validation/protocols/research.js.map +0 -1
  1057. package/dist/validation/protocols/specification.js +0 -84
  1058. package/dist/validation/protocols/specification.js.map +0 -1
  1059. package/dist/validation/protocols/testing-protocol.js +0 -70
  1060. package/dist/validation/protocols/testing-protocol.js.map +0 -1
  1061. package/dist/validation/protocols/validation-protocol.js +0 -70
  1062. package/dist/validation/protocols/validation-protocol.js.map +0 -1
  1063. package/dist/validation/schema-integrity.js +0 -170
  1064. package/dist/validation/schema-integrity.js.map +0 -1
  1065. package/dist/validation/schema-validator.js +0 -176
  1066. package/dist/validation/schema-validator.js.map +0 -1
  1067. package/dist/validation/validate-ops.js +0 -937
  1068. package/dist/validation/validate-ops.js.map +0 -1
  1069. package/dist/validation/validation-rules.js +0 -226
  1070. package/dist/validation/validation-rules.js.map +0 -1
  1071. package/dist/validation/verification.js +0 -321
  1072. package/dist/validation/verification.js.map +0 -1
  1073. package/src/signaldock/__tests__/claude-code-transport.test.d.ts +0 -7
  1074. package/src/signaldock/__tests__/claude-code-transport.test.d.ts.map +0 -1
  1075. package/src/signaldock/__tests__/claude-code-transport.test.js +0 -147
  1076. package/src/signaldock/__tests__/claude-code-transport.test.js.map +0 -1
  1077. package/src/signaldock/__tests__/claude-code-transport.test.ts +0 -180
  1078. package/src/signaldock/__tests__/factory.test.d.ts +0 -7
  1079. package/src/signaldock/__tests__/factory.test.d.ts.map +0 -1
  1080. package/src/signaldock/__tests__/factory.test.js +0 -55
  1081. package/src/signaldock/__tests__/factory.test.js.map +0 -1
  1082. package/src/signaldock/__tests__/factory.test.ts +0 -61
  1083. package/src/signaldock/__tests__/signaldock-transport.test.d.ts +0 -9
  1084. package/src/signaldock/__tests__/signaldock-transport.test.d.ts.map +0 -1
  1085. package/src/signaldock/__tests__/signaldock-transport.test.js +0 -321
  1086. package/src/signaldock/__tests__/signaldock-transport.test.js.map +0 -1
  1087. package/src/signaldock/__tests__/signaldock-transport.test.ts +0 -421
  1088. package/src/signaldock/claude-code-transport.ts +0 -137
  1089. package/src/signaldock/factory.ts +0 -39
  1090. package/src/signaldock/index.ts +0 -28
  1091. package/src/signaldock/signaldock-transport.ts +0 -194
  1092. package/src/signaldock/transport.ts +0 -78
  1093. package/src/signaldock/types.ts +0 -100
@@ -0,0 +1,501 @@
1
+ /**
2
+ * E2E integration tests: hook automation fires across lifecycle events
3
+ *
4
+ * Verifies that brain automation hooks actually dispatch and call observeBrain
5
+ * with the correct payloads for all lifecycle event types. Tests use mock
6
+ * adapters and direct handler invocation to exercise the full handler logic
7
+ * without requiring a real SQLite database.
8
+ *
9
+ * @task T168
10
+ * @epic T134
11
+ */
12
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
13
+ // ---------------------------------------------------------------------------
14
+ // Mock setup — must come before any handler imports.
15
+ // vi.mock is hoisted; factory fns must use vi.fn() inline (not outer vars).
16
+ // After imports, use vi.mocked() to get typed refs to the mock instances.
17
+ // ---------------------------------------------------------------------------
18
+ vi.mock('../../../memory/brain-retrieval.js', () => ({
19
+ observeBrain: vi.fn(),
20
+ }));
21
+ vi.mock('../../../config.js', () => ({
22
+ loadConfig: vi.fn(),
23
+ }));
24
+ vi.mock('../memory-bridge-refresh.js', () => ({
25
+ maybeRefreshMemoryBridge: vi.fn(),
26
+ }));
27
+ // ---------------------------------------------------------------------------
28
+ // Handler imports — after mock setup
29
+ // ---------------------------------------------------------------------------
30
+ import * as configModule from '../../../config.js';
31
+ import * as brainRetrieval from '../../../memory/brain-retrieval.js';
32
+ import { handleSubagentStart, handleSubagentStop } from '../agent-hooks.js';
33
+ import { handlePostCompact, handlePreCompact } from '../context-hooks.js';
34
+ import { handleSystemNotification } from '../mcp-hooks.js';
35
+ import * as bridgeRefresh from '../memory-bridge-refresh.js';
36
+ import { handleSessionEnd, handleSessionStart } from '../session-hooks.js';
37
+ import { handleToolComplete, handleToolStart } from '../task-hooks.js';
38
+ import { handleWorkPromptSubmit, handleWorkResponseComplete } from '../work-capture-hooks.js';
39
+ // Typed mock refs — assigned after imports resolve
40
+ const observeBrainMock = vi.mocked(brainRetrieval.observeBrain);
41
+ const loadConfigMock = vi.mocked(configModule.loadConfig);
42
+ const maybeRefreshMemoryBridgeMock = vi.mocked(bridgeRefresh.maybeRefreshMemoryBridge);
43
+ // ---------------------------------------------------------------------------
44
+ // Shared config factories
45
+ // ---------------------------------------------------------------------------
46
+ /** Returns a minimal CleoConfig with brain.autoCapture and brain.captureWork enabled. */
47
+ function makeConfig(overrides = {}) {
48
+ return {
49
+ brain: {
50
+ autoCapture: overrides.autoCapture ?? true,
51
+ captureWork: overrides.captureWork ?? false,
52
+ captureFiles: overrides.captureFiles ?? false,
53
+ captureMcp: overrides.captureMcp ?? false,
54
+ memoryBridge: { autoRefresh: overrides.autoRefresh ?? false },
55
+ embedding: { enabled: false, provider: 'local' },
56
+ summarization: { enabled: false },
57
+ },
58
+ };
59
+ }
60
+ const PROJECT_ROOT = '/tmp/e2e-test-project';
61
+ const TIMESTAMP = '2026-03-24T00:00:00.000Z';
62
+ // ---------------------------------------------------------------------------
63
+ // Test suite
64
+ // ---------------------------------------------------------------------------
65
+ describe('hook automation E2E', () => {
66
+ beforeEach(() => {
67
+ observeBrainMock.mockReset().mockResolvedValue(undefined);
68
+ loadConfigMock.mockReset().mockResolvedValue(makeConfig());
69
+ maybeRefreshMemoryBridgeMock.mockReset().mockResolvedValue(undefined);
70
+ // Clear work-capture env var
71
+ delete process.env['CLEO_BRAIN_CAPTURE_WORK'];
72
+ delete process.env['CLEO_BRAIN_CAPTURE_MCP'];
73
+ });
74
+ afterEach(() => {
75
+ delete process.env['CLEO_BRAIN_CAPTURE_WORK'];
76
+ delete process.env['CLEO_BRAIN_CAPTURE_MCP'];
77
+ });
78
+ // -------------------------------------------------------------------------
79
+ // 1. SessionStart dispatches and brain handler fires (bridge refresh)
80
+ // -------------------------------------------------------------------------
81
+ describe('SessionStart', () => {
82
+ it('fires brain observation on session start', async () => {
83
+ await handleSessionStart(PROJECT_ROOT, {
84
+ timestamp: TIMESTAMP,
85
+ sessionId: 'ses-e2e-1',
86
+ name: 'E2E Session',
87
+ scope: 'T168',
88
+ agent: 'claude-sonnet',
89
+ });
90
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
91
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
92
+ title: 'Session start: E2E Session',
93
+ type: 'discovery',
94
+ sourceSessionId: 'ses-e2e-1',
95
+ sourceType: 'agent',
96
+ }));
97
+ });
98
+ it('triggers memory bridge refresh after session start', async () => {
99
+ await handleSessionStart(PROJECT_ROOT, {
100
+ timestamp: TIMESTAMP,
101
+ sessionId: 'ses-e2e-refresh',
102
+ name: 'Bridge Refresh Test',
103
+ scope: 'global',
104
+ });
105
+ expect(maybeRefreshMemoryBridgeMock).toHaveBeenCalledWith(PROJECT_ROOT);
106
+ });
107
+ });
108
+ // -------------------------------------------------------------------------
109
+ // 2. SessionEnd dispatches and brain handler fires (summarization + bridge)
110
+ // -------------------------------------------------------------------------
111
+ describe('SessionEnd', () => {
112
+ it('fires brain observation on session end', async () => {
113
+ await handleSessionEnd(PROJECT_ROOT, {
114
+ timestamp: TIMESTAMP,
115
+ sessionId: 'ses-e2e-2',
116
+ duration: 1800,
117
+ tasksCompleted: ['T166', 'T168'],
118
+ });
119
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
120
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
121
+ title: 'Session end: ses-e2e-2',
122
+ type: 'change',
123
+ sourceSessionId: 'ses-e2e-2',
124
+ sourceType: 'agent',
125
+ }));
126
+ });
127
+ it('includes task list in session end observation text', async () => {
128
+ await handleSessionEnd(PROJECT_ROOT, {
129
+ timestamp: TIMESTAMP,
130
+ sessionId: 'ses-e2e-tasks',
131
+ duration: 600,
132
+ tasksCompleted: ['T100', 'T101'],
133
+ });
134
+ const callText = observeBrainMock.mock.calls[0][1].text;
135
+ expect(callText).toContain('T100');
136
+ expect(callText).toContain('T101');
137
+ });
138
+ it('triggers memory bridge refresh after session end', async () => {
139
+ await handleSessionEnd(PROJECT_ROOT, {
140
+ timestamp: TIMESTAMP,
141
+ sessionId: 'ses-e2e-bridge',
142
+ duration: 300,
143
+ tasksCompleted: [],
144
+ });
145
+ expect(maybeRefreshMemoryBridgeMock).toHaveBeenCalledWith(PROJECT_ROOT);
146
+ });
147
+ });
148
+ // -------------------------------------------------------------------------
149
+ // 3. PreToolUse dispatches and brain handler fires (observation created)
150
+ // -------------------------------------------------------------------------
151
+ describe('PreToolUse', () => {
152
+ it('fires brain observation when a tool starts', async () => {
153
+ await handleToolStart(PROJECT_ROOT, {
154
+ timestamp: TIMESTAMP,
155
+ taskId: 'T168',
156
+ taskTitle: 'E2E integration tests',
157
+ });
158
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
159
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
160
+ text: 'Started work on T168: E2E integration tests',
161
+ title: 'Task start: T168',
162
+ type: 'change',
163
+ sourceType: 'agent',
164
+ }));
165
+ });
166
+ });
167
+ // -------------------------------------------------------------------------
168
+ // 4. PostToolUse dispatches and brain handler fires (completion observation)
169
+ // -------------------------------------------------------------------------
170
+ describe('PostToolUse', () => {
171
+ it('fires brain observation when a tool completes', async () => {
172
+ await handleToolComplete(PROJECT_ROOT, {
173
+ timestamp: TIMESTAMP,
174
+ taskId: 'T168',
175
+ taskTitle: 'E2E integration tests',
176
+ status: 'done',
177
+ });
178
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
179
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
180
+ text: 'Task T168 completed with status: done',
181
+ title: 'Task complete: T168',
182
+ type: 'change',
183
+ sourceType: 'agent',
184
+ }));
185
+ });
186
+ it('triggers memory bridge refresh after tool completes', async () => {
187
+ await handleToolComplete(PROJECT_ROOT, {
188
+ timestamp: TIMESTAMP,
189
+ taskId: 'T168',
190
+ taskTitle: 'E2E integration tests',
191
+ status: 'done',
192
+ });
193
+ expect(maybeRefreshMemoryBridgeMock).toHaveBeenCalledWith(PROJECT_ROOT);
194
+ });
195
+ });
196
+ // -------------------------------------------------------------------------
197
+ // 5. PromptSubmit dispatches for mutations only (work-capture filter)
198
+ // -------------------------------------------------------------------------
199
+ describe('PromptSubmit (work-capture)', () => {
200
+ it('captures mutate operations in CAPTURE_OPERATIONS set', async () => {
201
+ process.env['CLEO_BRAIN_CAPTURE_WORK'] = 'true';
202
+ await handleWorkPromptSubmit(PROJECT_ROOT, {
203
+ timestamp: TIMESTAMP,
204
+ gateway: 'mutate',
205
+ domain: 'tasks',
206
+ operation: 'add',
207
+ source: 'agent-alpha',
208
+ });
209
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
210
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
211
+ title: 'Work intent: tasks.add',
212
+ type: 'discovery',
213
+ sourceType: 'agent',
214
+ }));
215
+ });
216
+ // -----------------------------------------------------------------------
217
+ // 6. PromptSubmit skips queries (smart filtering)
218
+ // -----------------------------------------------------------------------
219
+ it('skips query gateway operations', async () => {
220
+ process.env['CLEO_BRAIN_CAPTURE_WORK'] = 'true';
221
+ await handleWorkPromptSubmit(PROJECT_ROOT, {
222
+ timestamp: TIMESTAMP,
223
+ gateway: 'query',
224
+ domain: 'tasks',
225
+ operation: 'find',
226
+ });
227
+ expect(observeBrainMock).not.toHaveBeenCalled();
228
+ });
229
+ it('skips mutate operations NOT in CAPTURE_OPERATIONS (e.g. tasks.complete)', async () => {
230
+ process.env['CLEO_BRAIN_CAPTURE_WORK'] = 'true';
231
+ await handleWorkPromptSubmit(PROJECT_ROOT, {
232
+ timestamp: TIMESTAMP,
233
+ gateway: 'mutate',
234
+ domain: 'tasks',
235
+ operation: 'complete',
236
+ });
237
+ expect(observeBrainMock).not.toHaveBeenCalled();
238
+ });
239
+ });
240
+ // -------------------------------------------------------------------------
241
+ // 7. ResponseComplete dispatches for successes only
242
+ // -------------------------------------------------------------------------
243
+ describe('ResponseComplete (work-capture)', () => {
244
+ it('captures successful mutate operations in CAPTURE_OPERATIONS', async () => {
245
+ process.env['CLEO_BRAIN_CAPTURE_WORK'] = 'true';
246
+ await handleWorkResponseComplete(PROJECT_ROOT, {
247
+ timestamp: TIMESTAMP,
248
+ gateway: 'mutate',
249
+ domain: 'tasks',
250
+ operation: 'add',
251
+ success: true,
252
+ durationMs: 42,
253
+ });
254
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
255
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
256
+ title: 'Work done: tasks.add',
257
+ type: 'change',
258
+ sourceType: 'agent',
259
+ }));
260
+ });
261
+ it('skips failed operations', async () => {
262
+ process.env['CLEO_BRAIN_CAPTURE_WORK'] = 'true';
263
+ await handleWorkResponseComplete(PROJECT_ROOT, {
264
+ timestamp: TIMESTAMP,
265
+ gateway: 'mutate',
266
+ domain: 'tasks',
267
+ operation: 'add',
268
+ success: false,
269
+ });
270
+ expect(observeBrainMock).not.toHaveBeenCalled();
271
+ });
272
+ });
273
+ // -------------------------------------------------------------------------
274
+ // 8. SubagentStart creates brain observation
275
+ // -------------------------------------------------------------------------
276
+ describe('SubagentStart', () => {
277
+ it('creates brain observation when subagent spawns', async () => {
278
+ await handleSubagentStart(PROJECT_ROOT, {
279
+ timestamp: TIMESTAMP,
280
+ agentId: 'agent-worker-1',
281
+ role: 'implementer',
282
+ taskId: 'T166',
283
+ sessionId: 'ses-e2e-1',
284
+ });
285
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
286
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
287
+ title: 'Subagent start: agent-worker-1',
288
+ type: 'discovery',
289
+ sourceType: 'agent',
290
+ sourceSessionId: 'ses-e2e-1',
291
+ }));
292
+ const callText = observeBrainMock.mock.calls[0][1].text;
293
+ expect(callText).toContain('agent-worker-1');
294
+ expect(callText).toContain('role=implementer');
295
+ expect(callText).toContain('task=T166');
296
+ });
297
+ it('creates observation with minimal payload (no role or task)', async () => {
298
+ await handleSubagentStart(PROJECT_ROOT, {
299
+ timestamp: TIMESTAMP,
300
+ agentId: 'agent-minimal',
301
+ });
302
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
303
+ const callText = observeBrainMock.mock.calls[0][1].text;
304
+ expect(callText).toContain('agent-minimal');
305
+ expect(callText).not.toContain('role=');
306
+ expect(callText).not.toContain('task=');
307
+ });
308
+ it('creates observation for SubagentStop with completion status', async () => {
309
+ await handleSubagentStop(PROJECT_ROOT, {
310
+ timestamp: TIMESTAMP,
311
+ agentId: 'agent-worker-1',
312
+ status: 'complete',
313
+ taskId: 'T166',
314
+ summary: 'All handlers wired',
315
+ sessionId: 'ses-e2e-1',
316
+ });
317
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
318
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
319
+ title: 'Subagent stop: agent-worker-1',
320
+ type: 'change',
321
+ sourceType: 'agent',
322
+ sourceSessionId: 'ses-e2e-1',
323
+ }));
324
+ const callText = observeBrainMock.mock.calls[0][1].text;
325
+ expect(callText).toContain('status=complete');
326
+ expect(callText).toContain('task=T166');
327
+ expect(callText).toContain('All handlers wired');
328
+ });
329
+ });
330
+ // -------------------------------------------------------------------------
331
+ // 9. PreCompact creates context snapshot observation
332
+ // -------------------------------------------------------------------------
333
+ describe('PreCompact', () => {
334
+ it('creates context snapshot observation before compaction', async () => {
335
+ await handlePreCompact(PROJECT_ROOT, {
336
+ timestamp: TIMESTAMP,
337
+ tokensBefore: 80000,
338
+ reason: 'context-limit',
339
+ sessionId: 'ses-e2e-1',
340
+ });
341
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
342
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
343
+ title: 'Pre-compaction context snapshot',
344
+ type: 'discovery',
345
+ sourceType: 'agent',
346
+ sourceSessionId: 'ses-e2e-1',
347
+ }));
348
+ const callText = observeBrainMock.mock.calls[0][1].text;
349
+ expect(callText).toContain('80,000');
350
+ expect(callText).toContain('context-limit');
351
+ });
352
+ it('creates PostCompact record after compaction', async () => {
353
+ await handlePostCompact(PROJECT_ROOT, {
354
+ timestamp: TIMESTAMP,
355
+ tokensBefore: 80000,
356
+ tokensAfter: 20000,
357
+ success: true,
358
+ sessionId: 'ses-e2e-1',
359
+ });
360
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
361
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
362
+ title: 'Post-compaction record',
363
+ type: 'change',
364
+ sourceType: 'agent',
365
+ }));
366
+ const callText = observeBrainMock.mock.calls[0][1].text;
367
+ expect(callText).toContain('succeeded');
368
+ expect(callText).toContain('80,000');
369
+ expect(callText).toContain('20,000');
370
+ });
371
+ });
372
+ // -------------------------------------------------------------------------
373
+ // 10. Config gating: handler skips when brain.autoCapture=false
374
+ // -------------------------------------------------------------------------
375
+ describe('config gating', () => {
376
+ it('SubagentStart skips when brain.autoCapture=false', async () => {
377
+ loadConfigMock.mockResolvedValue(makeConfig({ autoCapture: false }));
378
+ await handleSubagentStart(PROJECT_ROOT, {
379
+ timestamp: TIMESTAMP,
380
+ agentId: 'agent-gated',
381
+ role: 'tester',
382
+ });
383
+ expect(observeBrainMock).not.toHaveBeenCalled();
384
+ });
385
+ it('PreCompact skips when brain.autoCapture=false', async () => {
386
+ loadConfigMock.mockResolvedValue(makeConfig({ autoCapture: false }));
387
+ await handlePreCompact(PROJECT_ROOT, {
388
+ timestamp: TIMESTAMP,
389
+ tokensBefore: 50000,
390
+ });
391
+ expect(observeBrainMock).not.toHaveBeenCalled();
392
+ });
393
+ it('PostCompact skips when brain.autoCapture=false', async () => {
394
+ loadConfigMock.mockResolvedValue(makeConfig({ autoCapture: false }));
395
+ await handlePostCompact(PROJECT_ROOT, {
396
+ timestamp: TIMESTAMP,
397
+ success: true,
398
+ });
399
+ expect(observeBrainMock).not.toHaveBeenCalled();
400
+ });
401
+ it('SubagentStop skips when brain.autoCapture=false', async () => {
402
+ loadConfigMock.mockResolvedValue(makeConfig({ autoCapture: false }));
403
+ await handleSubagentStop(PROJECT_ROOT, {
404
+ timestamp: TIMESTAMP,
405
+ agentId: 'agent-gated',
406
+ status: 'complete',
407
+ });
408
+ expect(observeBrainMock).not.toHaveBeenCalled();
409
+ });
410
+ it('work-capture skips when captureWork=false and env not set', async () => {
411
+ // No env override + captureWork=false in config
412
+ loadConfigMock.mockResolvedValue(makeConfig({ captureWork: false }));
413
+ await handleWorkPromptSubmit(PROJECT_ROOT, {
414
+ timestamp: TIMESTAMP,
415
+ gateway: 'mutate',
416
+ domain: 'tasks',
417
+ operation: 'add',
418
+ });
419
+ expect(observeBrainMock).not.toHaveBeenCalled();
420
+ });
421
+ });
422
+ // -------------------------------------------------------------------------
423
+ // 11. Dedup: PostToolUse doesn't double-capture what session-hooks handles
424
+ // -------------------------------------------------------------------------
425
+ describe('dedup (no double-capture)', () => {
426
+ it('PostToolUse and SessionEnd are separate calls — no overlap', async () => {
427
+ // Simulate a session ending after a task completes
428
+ await handleToolComplete(PROJECT_ROOT, {
429
+ timestamp: TIMESTAMP,
430
+ taskId: 'T168',
431
+ taskTitle: 'E2E tests',
432
+ status: 'done',
433
+ });
434
+ observeBrainMock.mockClear();
435
+ await handleSessionEnd(PROJECT_ROOT, {
436
+ timestamp: TIMESTAMP,
437
+ sessionId: 'ses-dedup',
438
+ duration: 300,
439
+ tasksCompleted: ['T168'],
440
+ });
441
+ // Each handler fires exactly once — no double-capture for the same event
442
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
443
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({ title: 'Session end: ses-dedup' }));
444
+ });
445
+ it('work-capture and mcp-hooks register on same event but use different config keys', async () => {
446
+ // work-capture is keyed on captureWork; mcp-hooks keyed on captureMcp
447
+ // When both are disabled (default), neither fires
448
+ await handleWorkPromptSubmit(PROJECT_ROOT, {
449
+ timestamp: TIMESTAMP,
450
+ gateway: 'mutate',
451
+ domain: 'tasks',
452
+ operation: 'add',
453
+ });
454
+ expect(observeBrainMock).not.toHaveBeenCalled();
455
+ });
456
+ });
457
+ // -------------------------------------------------------------------------
458
+ // 12. Notification — system notification captured as observation
459
+ // -------------------------------------------------------------------------
460
+ describe('Notification (system)', () => {
461
+ it('captures message-bearing system notifications', async () => {
462
+ await handleSystemNotification(PROJECT_ROOT, {
463
+ timestamp: TIMESTAMP,
464
+ message: 'CLEO session limit approaching (80% used)',
465
+ sessionId: 'ses-e2e-1',
466
+ });
467
+ expect(observeBrainMock).toHaveBeenCalledTimes(1);
468
+ expect(observeBrainMock).toHaveBeenCalledWith(PROJECT_ROOT, expect.objectContaining({
469
+ type: 'discovery',
470
+ sourceType: 'agent',
471
+ sourceSessionId: 'ses-e2e-1',
472
+ }));
473
+ const callText = observeBrainMock.mock.calls[0][1].text;
474
+ expect(callText).toContain('CLEO session limit approaching');
475
+ });
476
+ it('skips file-change notifications (handled by file-hooks)', async () => {
477
+ await handleSystemNotification(PROJECT_ROOT, {
478
+ timestamp: TIMESTAMP,
479
+ filePath: 'src/core/tasks.ts',
480
+ changeType: 'write',
481
+ message: 'some extra message',
482
+ });
483
+ expect(observeBrainMock).not.toHaveBeenCalled();
484
+ });
485
+ it('skips notifications with no message and no filePath', async () => {
486
+ await handleSystemNotification(PROJECT_ROOT, {
487
+ timestamp: TIMESTAMP,
488
+ });
489
+ expect(observeBrainMock).not.toHaveBeenCalled();
490
+ });
491
+ it('skips when brain.autoCapture=false', async () => {
492
+ loadConfigMock.mockResolvedValue(makeConfig({ autoCapture: false }));
493
+ await handleSystemNotification(PROJECT_ROOT, {
494
+ timestamp: TIMESTAMP,
495
+ message: 'Should be skipped',
496
+ });
497
+ expect(observeBrainMock).not.toHaveBeenCalled();
498
+ });
499
+ });
500
+ });
501
+ //# sourceMappingURL=hook-automation-e2e.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-automation-e2e.test.js","sourceRoot":"","sources":["hook-automation-e2e.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,8EAA8E;AAC9E,qDAAqD;AACrD,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAE9E,EAAE,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;CACtB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;CACpB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,wBAAwB,EAAE,EAAE,CAAC,EAAE,EAAE;CAClC,CAAC,CAAC,CAAC;AAEJ,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE9F,mDAAmD;AACnD,MAAM,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAChE,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AAC1D,MAAM,4BAA4B,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;AAEvF,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,yFAAyF;AACzF,SAAS,UAAU,CACjB,YAMI,EAAE;IAEN,OAAO;QACL,KAAK,EAAE;YACL,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,IAAI;YAC1C,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,KAAK;YAC3C,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,KAAK;YAC7C,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,KAAK;YACzC,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,KAAK,EAAE;YAC7D,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE;YAChD,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SAClC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAC7C,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAE7C,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,UAAU,CAAC,GAAG,EAAE;QACd,gBAAgB,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC1D,cAAc,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3D,4BAA4B,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACtE,6BAA6B;QAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,sEAAsE;IACtE,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,kBAAkB,CAAC,YAAY,EAAE;gBACrC,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,WAAW;gBACtB,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,eAAe;aACvB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE,4BAA4B;gBACnC,IAAI,EAAE,WAAW;gBACjB,eAAe,EAAE,WAAW;gBAC5B,UAAU,EAAE,OAAO;aACpB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,kBAAkB,CAAC,YAAY,EAAE;gBACrC,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,iBAAiB;gBAC5B,IAAI,EAAE,qBAAqB;gBAC3B,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YAEH,MAAM,CAAC,4BAA4B,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,gBAAgB,CAAC,YAAY,EAAE;gBACnC,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,WAAW;gBACtB,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;aACjC,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE,wBAAwB;gBAC/B,IAAI,EAAE,QAAQ;gBACd,eAAe,EAAE,WAAW;gBAC5B,UAAU,EAAE,OAAO;aACpB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,gBAAgB,CAAC,YAAY,EAAE;gBACnC,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,eAAe;gBAC1B,QAAQ,EAAE,GAAG;gBACb,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;aACjC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC;YAClE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,gBAAgB,CAAC,YAAY,EAAE;gBACnC,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,gBAAgB;gBAC3B,QAAQ,EAAE,GAAG;gBACb,cAAc,EAAE,EAAE;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,4BAA4B,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,yEAAyE;IACzE,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,eAAe,CAAC,YAAY,EAAE;gBAClC,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,uBAAuB;aACnC,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,IAAI,EAAE,6CAA6C;gBACnD,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,OAAO;aACpB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,kBAAkB,CAAC,YAAY,EAAE;gBACrC,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,uBAAuB;gBAClC,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,IAAI,EAAE,uCAAuC;gBAC7C,KAAK,EAAE,qBAAqB;gBAC5B,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,OAAO;aACpB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,kBAAkB,CAAC,YAAY,EAAE;gBACrC,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,uBAAuB;gBAClC,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YAEH,MAAM,CAAC,4BAA4B,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,sEAAsE;IACtE,4EAA4E;IAC5E,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC;YAEhD,MAAM,sBAAsB,CAAC,YAAY,EAAE;gBACzC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE,wBAAwB;gBAC/B,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,OAAO;aACpB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,0EAA0E;QAC1E,kDAAkD;QAClD,0EAA0E;QAC1E,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC;YAEhD,MAAM,sBAAsB,CAAC,YAAY,EAAE;gBACzC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,MAAM;aAClB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;YACvF,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC;YAEhD,MAAM,sBAAsB,CAAC,YAAY,EAAE;gBACzC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,oDAAoD;IACpD,4EAA4E;IAC5E,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC;YAEhD,MAAM,0BAA0B,CAAC,YAAY,EAAE;gBAC7C,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,OAAO;aACpB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC;YAEhD,MAAM,0BAA0B,CAAC,YAAY,EAAE;gBAC7C,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,6CAA6C;IAC7C,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,mBAAmB,CAAC,YAAY,EAAE;gBACtC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,gBAAgB;gBACzB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE,gCAAgC;gBACvC,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE,WAAW;aAC7B,CAAC,CACH,CAAC;YAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC;YAClE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,mBAAmB,CAAC,YAAY,EAAE;gBACtC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,eAAe;aACzB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC;YAClE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,kBAAkB,CAAC,YAAY,EAAE;gBACrC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,gBAAgB;gBACzB,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,oBAAoB;gBAC7B,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE,+BAA+B;gBACtC,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE,WAAW;aAC7B,CAAC,CACH,CAAC;YAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC;YAClE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,qDAAqD;IACrD,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,gBAAgB,CAAC,YAAY,EAAE;gBACnC,SAAS,EAAE,SAAS;gBACpB,YAAY,EAAE,KAAK;gBACnB,MAAM,EAAE,eAAe;gBACvB,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE,iCAAiC;gBACxC,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE,WAAW;aAC7B,CAAC,CACH,CAAC;YAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC;YAClE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,iBAAiB,CAAC,YAAY,EAAE;gBACpC,SAAS,EAAE,SAAS;gBACpB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE,wBAAwB;gBAC/B,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,OAAO;aACpB,CAAC,CACH,CAAC;YAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC;YAClE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,gEAAgE;IAChE,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAErE,MAAM,mBAAmB,CAAC,YAAY,EAAE;gBACtC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAErE,MAAM,gBAAgB,CAAC,YAAY,EAAE;gBACnC,SAAS,EAAE,SAAS;gBACpB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAErE,MAAM,iBAAiB,CAAC,YAAY,EAAE;gBACpC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAErE,MAAM,kBAAkB,CAAC,YAAY,EAAE;gBACrC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,aAAa;gBACtB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,gDAAgD;YAChD,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAErE,MAAM,sBAAsB,CAAC,YAAY,EAAE;gBACzC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,mDAAmD;YACnD,MAAM,kBAAkB,CAAC,YAAY,EAAE;gBACrC,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,WAAW;gBACtB,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YAEH,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAE7B,MAAM,gBAAgB,CAAC,YAAY,EAAE;gBACnC,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,WAAW;gBACtB,QAAQ,EAAE,GAAG;gBACb,cAAc,EAAE,CAAC,MAAM,CAAC;aACzB,CAAC,CAAC;YAEH,yEAAyE;YACzE,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;YAC/F,sEAAsE;YACtE,kDAAkD;YAClD,MAAM,sBAAsB,CAAC,YAAY,EAAE;gBACzC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,iEAAiE;IACjE,4EAA4E;IAC5E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,wBAAwB,CAAC,YAAY,EAAE;gBAC3C,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,2CAA2C;gBACpD,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,YAAY,EACZ,MAAM,CAAC,gBAAgB,CAAC;gBACtB,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE,WAAW;aAC7B,CAAC,CACH,CAAC;YAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC;YAClE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,wBAAwB,CAAC,YAAY,EAAE;gBAC3C,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,mBAAmB;gBAC7B,UAAU,EAAE,OAAO;gBACnB,OAAO,EAAE,oBAAoB;aAC9B,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,wBAAwB,CAAC,YAAY,EAAE;gBAC3C,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAErE,MAAM,wBAAwB,CAAC,YAAY,EAAE;gBAC3C,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,mBAAmB;aAC7B,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -17,36 +17,7 @@
17
17
 
18
18
  import { hooks } from '../registry.js';
19
19
  import type { SubagentStartPayload, SubagentStopPayload } from '../types.js';
20
-
21
- // ---------------------------------------------------------------------------
22
- // Shared helpers
23
- // ---------------------------------------------------------------------------
24
-
25
- function isMissingBrainSchemaError(err: unknown): boolean {
26
- if (!(err instanceof Error)) return false;
27
- const message = String(err.message || '').toLowerCase();
28
- return message.includes('no such table') && message.includes('brain_');
29
- }
30
-
31
- /**
32
- * Check whether brain auto-capture is enabled.
33
- *
34
- * Resolution order (first truthy wins):
35
- * 1. brain.autoCapture project config value (via loadConfig cascade)
36
- *
37
- * Defaults to false when config is unreadable.
38
- *
39
- * @param projectRoot - Absolute path to the project root directory.
40
- */
41
- async function isAutoCaptureEnabled(projectRoot: string): Promise<boolean> {
42
- try {
43
- const { loadConfig } = await import('../../config.js');
44
- const config = await loadConfig(projectRoot);
45
- return config.brain?.autoCapture ?? false;
46
- } catch {
47
- return false;
48
- }
49
- }
20
+ import { isAutoCaptureEnabled, isMissingBrainSchemaError } from './handler-helpers.js';
50
21
 
51
22
  // ---------------------------------------------------------------------------
52
23
  // Handlers
@@ -20,36 +20,7 @@
20
20
 
21
21
  import { hooks } from '../registry.js';
22
22
  import type { PostCompactPayload, PreCompactPayload } from '../types.js';
23
-
24
- // ---------------------------------------------------------------------------
25
- // Shared helpers
26
- // ---------------------------------------------------------------------------
27
-
28
- function isMissingBrainSchemaError(err: unknown): boolean {
29
- if (!(err instanceof Error)) return false;
30
- const message = String(err.message || '').toLowerCase();
31
- return message.includes('no such table') && message.includes('brain_');
32
- }
33
-
34
- /**
35
- * Check whether brain auto-capture is enabled.
36
- *
37
- * Resolution order (first truthy wins):
38
- * 1. brain.autoCapture project config value (via loadConfig cascade)
39
- *
40
- * Defaults to false when config is unreadable.
41
- *
42
- * @param projectRoot - Absolute path to the project root directory.
43
- */
44
- async function isAutoCaptureEnabled(projectRoot: string): Promise<boolean> {
45
- try {
46
- const { loadConfig } = await import('../../config.js');
47
- const config = await loadConfig(projectRoot);
48
- return config.brain?.autoCapture ?? false;
49
- } catch {
50
- return false;
51
- }
52
- }
23
+ import { isAutoCaptureEnabled, isMissingBrainSchemaError } from './handler-helpers.js';
53
24
 
54
25
  // ---------------------------------------------------------------------------
55
26
  // Handlers
@@ -10,12 +10,21 @@ import { hooks } from '../registry.js';
10
10
  import type { PostToolUseFailurePayload } from '../types.js';
11
11
 
12
12
  /**
13
- * Handle PostToolUseFailure - capture operation errors to BRAIN
13
+ * Handle PostToolUseFailure capture operation errors to BRAIN.
14
14
  *
15
- * Includes infinite-loop guard: if the payload has _fromHook marker,
16
- * the handler skips to prevent PostToolUseFailure -> observeBrain -> PostToolUseFailure loops.
17
- * Additionally, ALL observeBrain errors are silently suppressed to prevent
18
- * re-entrant hook firing.
15
+ * Includes an infinite-loop guard: if the payload carries a `_fromHook`
16
+ * metadata marker the handler skips immediately to prevent the cycle
17
+ * `PostToolUseFailure observeBrain PostToolUseFailure`. All
18
+ * `observeBrain` errors are also silently suppressed for the same reason.
19
+ *
20
+ * Never throws. All brain-write errors are swallowed so error hooks
21
+ * never block the original error path.
22
+ *
23
+ * @param projectRoot - Absolute path to the project root directory.
24
+ * @param payload - PostToolUseFailure event payload.
25
+ *
26
+ * @task T166
27
+ * @epic T134
19
28
  */
20
29
  export async function handleError(
21
30
  projectRoot: string,
@@ -13,12 +13,7 @@
13
13
  import { isAbsolute, relative } from 'node:path';
14
14
  import { hooks } from '../registry.js';
15
15
  import type { NotificationPayload } from '../types.js';
16
-
17
- function isMissingBrainSchemaError(err: unknown): boolean {
18
- if (!(err instanceof Error)) return false;
19
- const message = String(err.message || '').toLowerCase();
20
- return message.includes('no such table') && message.includes('brain_');
21
- }
16
+ import { isMissingBrainSchemaError } from './handler-helpers.js';
22
17
 
23
18
  /** 5-second dedup map: filePath -> last dispatch timestamp */
24
19
  const recentWrites = new Map<string, number>();