@cleocode/core 2026.4.6 → 2026.4.9

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 (647) hide show
  1. package/package.json +7 -7
  2. package/dist/cant/approval.d.ts +0 -110
  3. package/dist/cant/approval.d.ts.map +0 -1
  4. package/dist/cant/context-builder.d.ts +0 -79
  5. package/dist/cant/context-builder.d.ts.map +0 -1
  6. package/dist/cant/discretion.d.ts +0 -95
  7. package/dist/cant/discretion.d.ts.map +0 -1
  8. package/dist/cant/index.d.ts +0 -25
  9. package/dist/cant/index.d.ts.map +0 -1
  10. package/dist/cant/parallel-runner.d.ts +0 -38
  11. package/dist/cant/parallel-runner.d.ts.map +0 -1
  12. package/dist/cant/types.d.ts +0 -127
  13. package/dist/cant/types.d.ts.map +0 -1
  14. package/dist/cant/workflow-executor.d.ts +0 -105
  15. package/dist/cant/workflow-executor.d.ts.map +0 -1
  16. package/src/__tests__/audit-prune.test.d.ts.map +0 -1
  17. package/src/__tests__/audit-prune.test.js +0 -162
  18. package/src/__tests__/audit-prune.test.js.map +0 -1
  19. package/src/__tests__/caamp-skill-install.test.d.ts.map +0 -1
  20. package/src/__tests__/caamp-skill-install.test.js +0 -147
  21. package/src/__tests__/caamp-skill-install.test.js.map +0 -1
  22. package/src/__tests__/cli-parity.test.d.ts.map +0 -1
  23. package/src/__tests__/cli-parity.test.js +0 -209
  24. package/src/__tests__/cli-parity.test.js.map +0 -1
  25. package/src/__tests__/config.test.d.ts.map +0 -1
  26. package/src/__tests__/config.test.js +0 -144
  27. package/src/__tests__/config.test.js.map +0 -1
  28. package/src/__tests__/core-parity.test.d.ts.map +0 -1
  29. package/src/__tests__/core-parity.test.js +0 -645
  30. package/src/__tests__/core-parity.test.js.map +0 -1
  31. package/src/__tests__/error-catalog.test.d.ts.map +0 -1
  32. package/src/__tests__/error-catalog.test.js +0 -127
  33. package/src/__tests__/error-catalog.test.js.map +0 -1
  34. package/src/__tests__/golden-parity.test.d.ts.map +0 -1
  35. package/src/__tests__/golden-parity.test.js +0 -212
  36. package/src/__tests__/golden-parity.test.js.map +0 -1
  37. package/src/__tests__/hooks.test.d.ts.map +0 -1
  38. package/src/__tests__/hooks.test.js +0 -201
  39. package/src/__tests__/hooks.test.js.map +0 -1
  40. package/src/__tests__/human-output.test.d.ts.map +0 -1
  41. package/src/__tests__/human-output.test.js +0 -158
  42. package/src/__tests__/human-output.test.js.map +0 -1
  43. package/src/__tests__/index-api-compat.test.d.ts.map +0 -1
  44. package/src/__tests__/index-api-compat.test.js +0 -16
  45. package/src/__tests__/index-api-compat.test.js.map +0 -1
  46. package/src/__tests__/init-e2e.test.d.ts.map +0 -1
  47. package/src/__tests__/init-e2e.test.js +0 -221
  48. package/src/__tests__/init-e2e.test.js.map +0 -1
  49. package/src/__tests__/injection-chain.test.d.ts.map +0 -1
  50. package/src/__tests__/injection-chain.test.js +0 -234
  51. package/src/__tests__/injection-chain.test.js.map +0 -1
  52. package/src/__tests__/injection-mvi-tiers.test.d.ts.map +0 -1
  53. package/src/__tests__/injection-mvi-tiers.test.js +0 -116
  54. package/src/__tests__/injection-mvi-tiers.test.js.map +0 -1
  55. package/src/__tests__/injection-shared.test.d.ts.map +0 -1
  56. package/src/__tests__/injection-shared.test.js +0 -194
  57. package/src/__tests__/injection-shared.test.js.map +0 -1
  58. package/src/__tests__/lafs-conformance.test.d.ts.map +0 -1
  59. package/src/__tests__/lafs-conformance.test.js +0 -786
  60. package/src/__tests__/lafs-conformance.test.js.map +0 -1
  61. package/src/__tests__/logger.test.d.ts.map +0 -1
  62. package/src/__tests__/logger.test.js +0 -75
  63. package/src/__tests__/logger.test.js.map +0 -1
  64. package/src/__tests__/paths.test.d.ts.map +0 -1
  65. package/src/__tests__/paths.test.js +0 -327
  66. package/src/__tests__/paths.test.js.map +0 -1
  67. package/src/__tests__/project-info.test.d.ts.map +0 -1
  68. package/src/__tests__/project-info.test.js +0 -156
  69. package/src/__tests__/project-info.test.js.map +0 -1
  70. package/src/__tests__/rcsd-pipeline-e2e.test.d.ts.map +0 -1
  71. package/src/__tests__/rcsd-pipeline-e2e.test.js +0 -263
  72. package/src/__tests__/rcsd-pipeline-e2e.test.js.map +0 -1
  73. package/src/__tests__/remote.test.d.ts.map +0 -1
  74. package/src/__tests__/remote.test.js +0 -149
  75. package/src/__tests__/remote.test.js.map +0 -1
  76. package/src/__tests__/scaffold.test.d.ts.map +0 -1
  77. package/src/__tests__/scaffold.test.js +0 -474
  78. package/src/__tests__/scaffold.test.js.map +0 -1
  79. package/src/__tests__/schema-management.test.d.ts.map +0 -1
  80. package/src/__tests__/schema-management.test.js +0 -287
  81. package/src/__tests__/schema-management.test.js.map +0 -1
  82. package/src/__tests__/schema.test.d.ts.map +0 -1
  83. package/src/__tests__/schema.test.js +0 -51
  84. package/src/__tests__/schema.test.js.map +0 -1
  85. package/src/__tests__/sharing.test.d.ts.map +0 -1
  86. package/src/__tests__/sharing.test.js +0 -160
  87. package/src/__tests__/sharing.test.js.map +0 -1
  88. package/src/__tests__/snapshot.test.d.ts.map +0 -1
  89. package/src/__tests__/snapshot.test.js +0 -72
  90. package/src/__tests__/snapshot.test.js.map +0 -1
  91. package/src/__tests__/upgrade.test.d.ts.map +0 -1
  92. package/src/__tests__/upgrade.test.js +0 -321
  93. package/src/__tests__/upgrade.test.js.map +0 -1
  94. package/src/adapters/__tests__/discovery.test.d.ts.map +0 -1
  95. package/src/adapters/__tests__/discovery.test.js +0 -56
  96. package/src/adapters/__tests__/discovery.test.js.map +0 -1
  97. package/src/adapters/__tests__/manager.test.d.ts.map +0 -1
  98. package/src/adapters/__tests__/manager.test.js +0 -260
  99. package/src/adapters/__tests__/manager.test.js.map +0 -1
  100. package/src/agents/__tests__/agent-registry.test.d.ts.map +0 -1
  101. package/src/agents/__tests__/agent-registry.test.js +0 -262
  102. package/src/agents/__tests__/agent-registry.test.js.map +0 -1
  103. package/src/agents/__tests__/capacity.test.d.ts.map +0 -1
  104. package/src/agents/__tests__/capacity.test.js +0 -173
  105. package/src/agents/__tests__/capacity.test.js.map +0 -1
  106. package/src/agents/__tests__/execution-learning.test.d.ts.map +0 -1
  107. package/src/agents/__tests__/execution-learning.test.js +0 -533
  108. package/src/agents/__tests__/execution-learning.test.js.map +0 -1
  109. package/src/agents/__tests__/health-monitor.test.d.ts.map +0 -1
  110. package/src/agents/__tests__/health-monitor.test.js +0 -259
  111. package/src/agents/__tests__/health-monitor.test.js.map +0 -1
  112. package/src/agents/__tests__/registry.test.d.ts.map +0 -1
  113. package/src/agents/__tests__/registry.test.js +0 -373
  114. package/src/agents/__tests__/registry.test.js.map +0 -1
  115. package/src/agents/__tests__/retry.test.d.ts.map +0 -1
  116. package/src/agents/__tests__/retry.test.js +0 -225
  117. package/src/agents/__tests__/retry.test.js.map +0 -1
  118. package/src/cant/__tests__/cant-agent-parse.test.d.ts.map +0 -1
  119. package/src/cant/__tests__/cant-agent-parse.test.js +0 -77
  120. package/src/cant/__tests__/cant-agent-parse.test.js.map +0 -1
  121. package/src/cant/__tests__/cant-agent-parse.test.ts +0 -94
  122. package/src/cant/approval.ts +0 -218
  123. package/src/cant/context-builder.ts +0 -135
  124. package/src/cant/discretion.ts +0 -149
  125. package/src/cant/index.ts +0 -58
  126. package/src/cant/parallel-runner.ts +0 -205
  127. package/src/cant/types.ts +0 -158
  128. package/src/cant/workflow-executor.ts +0 -618
  129. package/src/compliance/__tests__/sync.test.d.ts.map +0 -1
  130. package/src/compliance/__tests__/sync.test.js +0 -119
  131. package/src/compliance/__tests__/sync.test.js.map +0 -1
  132. package/src/conduit/__tests__/local-credential-flow.test.d.ts.map +0 -1
  133. package/src/conduit/__tests__/local-credential-flow.test.js +0 -185
  134. package/src/conduit/__tests__/local-credential-flow.test.js.map +0 -1
  135. package/src/conduit/__tests__/local-transport.test.d.ts.map +0 -1
  136. package/src/conduit/__tests__/local-transport.test.js +0 -404
  137. package/src/conduit/__tests__/local-transport.test.js.map +0 -1
  138. package/src/conduit/__tests__/sse-transport.test.d.ts.map +0 -1
  139. package/src/conduit/__tests__/sse-transport.test.js +0 -291
  140. package/src/conduit/__tests__/sse-transport.test.js.map +0 -1
  141. package/src/hooks/__tests__/provider-hooks.test.d.ts.map +0 -1
  142. package/src/hooks/__tests__/provider-hooks.test.js +0 -33
  143. package/src/hooks/__tests__/provider-hooks.test.js.map +0 -1
  144. package/src/hooks/__tests__/registry.test.d.ts.map +0 -1
  145. package/src/hooks/__tests__/registry.test.js +0 -37
  146. package/src/hooks/__tests__/registry.test.js.map +0 -1
  147. package/src/hooks/handlers/__tests__/error-hooks.test.d.ts.map +0 -1
  148. package/src/hooks/handlers/__tests__/error-hooks.test.js +0 -90
  149. package/src/hooks/handlers/__tests__/error-hooks.test.js.map +0 -1
  150. package/src/hooks/handlers/__tests__/file-hooks.test.d.ts.map +0 -1
  151. package/src/hooks/handlers/__tests__/file-hooks.test.js +0 -128
  152. package/src/hooks/handlers/__tests__/file-hooks.test.js.map +0 -1
  153. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.d.ts.map +0 -1
  154. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js +0 -503
  155. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js.map +0 -1
  156. package/src/hooks/handlers/__tests__/session-hooks.test.d.ts.map +0 -1
  157. package/src/hooks/handlers/__tests__/session-hooks.test.js +0 -54
  158. package/src/hooks/handlers/__tests__/session-hooks.test.js.map +0 -1
  159. package/src/hooks/handlers/__tests__/task-hooks.test.d.ts.map +0 -1
  160. package/src/hooks/handlers/__tests__/task-hooks.test.js +0 -77
  161. package/src/hooks/handlers/__tests__/task-hooks.test.js.map +0 -1
  162. package/src/intelligence/__tests__/adaptive-validation.test.d.ts.map +0 -1
  163. package/src/intelligence/__tests__/adaptive-validation.test.js +0 -517
  164. package/src/intelligence/__tests__/adaptive-validation.test.js.map +0 -1
  165. package/src/intelligence/__tests__/impact.test.d.ts.map +0 -1
  166. package/src/intelligence/__tests__/impact.test.js +0 -515
  167. package/src/intelligence/__tests__/impact.test.js.map +0 -1
  168. package/src/intelligence/__tests__/patterns.test.d.ts.map +0 -1
  169. package/src/intelligence/__tests__/patterns.test.js +0 -370
  170. package/src/intelligence/__tests__/patterns.test.js.map +0 -1
  171. package/src/intelligence/__tests__/prediction.test.d.ts.map +0 -1
  172. package/src/intelligence/__tests__/prediction.test.js +0 -314
  173. package/src/intelligence/__tests__/prediction.test.js.map +0 -1
  174. package/src/lib/__tests__/retry.test.d.ts.map +0 -1
  175. package/src/lib/__tests__/retry.test.js +0 -225
  176. package/src/lib/__tests__/retry.test.js.map +0 -1
  177. package/src/lifecycle/__tests__/chain-store.test.d.ts.map +0 -1
  178. package/src/lifecycle/__tests__/chain-store.test.js +0 -243
  179. package/src/lifecycle/__tests__/chain-store.test.js.map +0 -1
  180. package/src/lifecycle/__tests__/consolidate-rcasd.test.d.ts.map +0 -1
  181. package/src/lifecycle/__tests__/consolidate-rcasd.test.js +0 -210
  182. package/src/lifecycle/__tests__/consolidate-rcasd.test.js.map +0 -1
  183. package/src/lifecycle/__tests__/default-chain.test.d.ts.map +0 -1
  184. package/src/lifecycle/__tests__/default-chain.test.js +0 -74
  185. package/src/lifecycle/__tests__/default-chain.test.js.map +0 -1
  186. package/src/lifecycle/__tests__/frontmatter.test.d.ts.map +0 -1
  187. package/src/lifecycle/__tests__/frontmatter.test.js +0 -229
  188. package/src/lifecycle/__tests__/frontmatter.test.js.map +0 -1
  189. package/src/lifecycle/__tests__/lifecycle.test.d.ts.map +0 -1
  190. package/src/lifecycle/__tests__/lifecycle.test.js +0 -126
  191. package/src/lifecycle/__tests__/lifecycle.test.js.map +0 -1
  192. package/src/lifecycle/__tests__/pipeline.integration.test.d.ts.map +0 -1
  193. package/src/lifecycle/__tests__/pipeline.integration.test.js +0 -977
  194. package/src/lifecycle/__tests__/pipeline.integration.test.js.map +0 -1
  195. package/src/lifecycle/__tests__/rcasd-paths.test.d.ts.map +0 -1
  196. package/src/lifecycle/__tests__/rcasd-paths.test.js +0 -206
  197. package/src/lifecycle/__tests__/rcasd-paths.test.js.map +0 -1
  198. package/src/lifecycle/__tests__/resume-schema-contract.test.d.ts.map +0 -1
  199. package/src/lifecycle/__tests__/resume-schema-contract.test.js +0 -246
  200. package/src/lifecycle/__tests__/resume-schema-contract.test.js.map +0 -1
  201. package/src/lifecycle/__tests__/stage-record-provenance.integration.test.d.ts.map +0 -1
  202. package/src/lifecycle/__tests__/stage-record-provenance.integration.test.js +0 -95
  203. package/src/lifecycle/__tests__/stage-record-provenance.integration.test.js.map +0 -1
  204. package/src/lifecycle/__tests__/tessera-engine.test.d.ts.map +0 -1
  205. package/src/lifecycle/__tests__/tessera-engine.test.js +0 -392
  206. package/src/lifecycle/__tests__/tessera-engine.test.js.map +0 -1
  207. package/src/memory/__tests__/auto-extract.test.d.ts.map +0 -1
  208. package/src/memory/__tests__/auto-extract.test.js +0 -197
  209. package/src/memory/__tests__/auto-extract.test.js.map +0 -1
  210. package/src/memory/__tests__/brain-automation.test.d.ts.map +0 -1
  211. package/src/memory/__tests__/brain-automation.test.js +0 -730
  212. package/src/memory/__tests__/brain-automation.test.js.map +0 -1
  213. package/src/memory/__tests__/brain-embedding.test.d.ts.map +0 -1
  214. package/src/memory/__tests__/brain-embedding.test.js +0 -92
  215. package/src/memory/__tests__/brain-embedding.test.js.map +0 -1
  216. package/src/memory/__tests__/brain-links.test.d.ts.map +0 -1
  217. package/src/memory/__tests__/brain-links.test.js +0 -221
  218. package/src/memory/__tests__/brain-links.test.js.map +0 -1
  219. package/src/memory/__tests__/brain-migration.test.d.ts.map +0 -1
  220. package/src/memory/__tests__/brain-migration.test.js +0 -180
  221. package/src/memory/__tests__/brain-migration.test.js.map +0 -1
  222. package/src/memory/__tests__/brain-retrieval.test.d.ts.map +0 -1
  223. package/src/memory/__tests__/brain-retrieval.test.js +0 -701
  224. package/src/memory/__tests__/brain-retrieval.test.js.map +0 -1
  225. package/src/memory/__tests__/brain-search.test.d.ts.map +0 -1
  226. package/src/memory/__tests__/brain-search.test.js +0 -180
  227. package/src/memory/__tests__/brain-search.test.js.map +0 -1
  228. package/src/memory/__tests__/claude-mem-migration.test.d.ts.map +0 -1
  229. package/src/memory/__tests__/claude-mem-migration.test.js +0 -424
  230. package/src/memory/__tests__/claude-mem-migration.test.js.map +0 -1
  231. package/src/memory/__tests__/decisions.test.d.ts.map +0 -1
  232. package/src/memory/__tests__/decisions.test.js +0 -253
  233. package/src/memory/__tests__/decisions.test.js.map +0 -1
  234. package/src/memory/__tests__/engine-compat.test.d.ts.map +0 -1
  235. package/src/memory/__tests__/engine-compat.test.js +0 -331
  236. package/src/memory/__tests__/engine-compat.test.js.map +0 -1
  237. package/src/memory/__tests__/memory-bridge.test.d.ts.map +0 -1
  238. package/src/memory/__tests__/memory-bridge.test.js +0 -231
  239. package/src/memory/__tests__/memory-bridge.test.js.map +0 -1
  240. package/src/memory/__tests__/pipeline-manifest-sqlite.test.d.ts.map +0 -1
  241. package/src/memory/__tests__/pipeline-manifest-sqlite.test.js +0 -516
  242. package/src/memory/__tests__/pipeline-manifest-sqlite.test.js.map +0 -1
  243. package/src/memory/__tests__/session-memory.test.d.ts.map +0 -1
  244. package/src/memory/__tests__/session-memory.test.js +0 -387
  245. package/src/memory/__tests__/session-memory.test.js.map +0 -1
  246. package/src/metrics/__tests__/model-provider-registry.test.d.ts.map +0 -1
  247. package/src/metrics/__tests__/model-provider-registry.test.js +0 -45
  248. package/src/metrics/__tests__/model-provider-registry.test.js.map +0 -1
  249. package/src/metrics/__tests__/provider-detection.test.d.ts.map +0 -1
  250. package/src/metrics/__tests__/provider-detection.test.js +0 -123
  251. package/src/metrics/__tests__/provider-detection.test.js.map +0 -1
  252. package/src/migration/__tests__/checksum.test.d.ts.map +0 -1
  253. package/src/migration/__tests__/checksum.test.js +0 -216
  254. package/src/migration/__tests__/checksum.test.js.map +0 -1
  255. package/src/migration/__tests__/logger.test.d.ts.map +0 -1
  256. package/src/migration/__tests__/logger.test.js +0 -256
  257. package/src/migration/__tests__/logger.test.js.map +0 -1
  258. package/src/migration/__tests__/migration-failure.integration.test.d.ts.map +0 -1
  259. package/src/migration/__tests__/migration-failure.integration.test.js +0 -515
  260. package/src/migration/__tests__/migration-failure.integration.test.js.map +0 -1
  261. package/src/migration/__tests__/migration.test.d.ts.map +0 -1
  262. package/src/migration/__tests__/migration.test.js +0 -82
  263. package/src/migration/__tests__/migration.test.js.map +0 -1
  264. package/src/migration/__tests__/state.test.d.ts.map +0 -1
  265. package/src/migration/__tests__/state.test.js +0 -330
  266. package/src/migration/__tests__/state.test.js.map +0 -1
  267. package/src/migration/__tests__/validate.test.d.ts.map +0 -1
  268. package/src/migration/__tests__/validate.test.js +0 -258
  269. package/src/migration/__tests__/validate.test.js.map +0 -1
  270. package/src/nexus/__tests__/deps.test.d.ts.map +0 -1
  271. package/src/nexus/__tests__/deps.test.js +0 -283
  272. package/src/nexus/__tests__/deps.test.js.map +0 -1
  273. package/src/nexus/__tests__/nexus-e2e.test.d.ts.map +0 -1
  274. package/src/nexus/__tests__/nexus-e2e.test.js +0 -1220
  275. package/src/nexus/__tests__/nexus-e2e.test.js.map +0 -1
  276. package/src/nexus/__tests__/permissions.test.d.ts.map +0 -1
  277. package/src/nexus/__tests__/permissions.test.js +0 -119
  278. package/src/nexus/__tests__/permissions.test.js.map +0 -1
  279. package/src/nexus/__tests__/query.test.d.ts.map +0 -1
  280. package/src/nexus/__tests__/query.test.js +0 -168
  281. package/src/nexus/__tests__/query.test.js.map +0 -1
  282. package/src/nexus/__tests__/reconcile.test.d.ts.map +0 -1
  283. package/src/nexus/__tests__/reconcile.test.js +0 -135
  284. package/src/nexus/__tests__/reconcile.test.js.map +0 -1
  285. package/src/nexus/__tests__/registry.test.d.ts.map +0 -1
  286. package/src/nexus/__tests__/registry.test.js +0 -229
  287. package/src/nexus/__tests__/registry.test.js.map +0 -1
  288. package/src/nexus/__tests__/transfer.test.d.ts.map +0 -1
  289. package/src/nexus/__tests__/transfer.test.js +0 -372
  290. package/src/nexus/__tests__/transfer.test.js.map +0 -1
  291. package/src/observability/__tests__/index.test.d.ts.map +0 -1
  292. package/src/observability/__tests__/index.test.js +0 -288
  293. package/src/observability/__tests__/index.test.js.map +0 -1
  294. package/src/observability/__tests__/log-filter.test.d.ts.map +0 -1
  295. package/src/observability/__tests__/log-filter.test.js +0 -151
  296. package/src/observability/__tests__/log-filter.test.js.map +0 -1
  297. package/src/observability/__tests__/log-parser.test.d.ts.map +0 -1
  298. package/src/observability/__tests__/log-parser.test.js +0 -170
  299. package/src/observability/__tests__/log-parser.test.js.map +0 -1
  300. package/src/observability/__tests__/log-reader.test.d.ts.map +0 -1
  301. package/src/observability/__tests__/log-reader.test.js +0 -150
  302. package/src/observability/__tests__/log-reader.test.js.map +0 -1
  303. package/src/orchestration/__tests__/autonomous-spec.test.d.ts.map +0 -1
  304. package/src/orchestration/__tests__/autonomous-spec.test.js +0 -419
  305. package/src/orchestration/__tests__/autonomous-spec.test.js.map +0 -1
  306. package/src/orchestration/__tests__/orchestration.test.d.ts.map +0 -1
  307. package/src/orchestration/__tests__/orchestration.test.js +0 -205
  308. package/src/orchestration/__tests__/orchestration.test.js.map +0 -1
  309. package/src/orchestration/__tests__/protocol-validators.test.d.ts.map +0 -1
  310. package/src/orchestration/__tests__/protocol-validators.test.js +0 -602
  311. package/src/orchestration/__tests__/protocol-validators.test.js.map +0 -1
  312. package/src/phases/__tests__/deps.test.d.ts.map +0 -1
  313. package/src/phases/__tests__/deps.test.js +0 -210
  314. package/src/phases/__tests__/deps.test.js.map +0 -1
  315. package/src/phases/__tests__/phases.test.d.ts.map +0 -1
  316. package/src/phases/__tests__/phases.test.js +0 -215
  317. package/src/phases/__tests__/phases.test.js.map +0 -1
  318. package/src/release/__tests__/artifacts.test.d.ts.map +0 -1
  319. package/src/release/__tests__/artifacts.test.js +0 -65
  320. package/src/release/__tests__/artifacts.test.js.map +0 -1
  321. package/src/release/__tests__/cancel-release.test.d.ts.map +0 -1
  322. package/src/release/__tests__/cancel-release.test.js +0 -154
  323. package/src/release/__tests__/cancel-release.test.js.map +0 -1
  324. package/src/release/__tests__/changelog-writer.test.d.ts.map +0 -1
  325. package/src/release/__tests__/changelog-writer.test.js +0 -132
  326. package/src/release/__tests__/changelog-writer.test.js.map +0 -1
  327. package/src/release/__tests__/push-policy.test.d.ts.map +0 -1
  328. package/src/release/__tests__/push-policy.test.js +0 -142
  329. package/src/release/__tests__/push-policy.test.js.map +0 -1
  330. package/src/release/__tests__/release.test.d.ts.map +0 -1
  331. package/src/release/__tests__/release.test.js +0 -25
  332. package/src/release/__tests__/release.test.js.map +0 -1
  333. package/src/sequence/__tests__/allocate.test.d.ts.map +0 -1
  334. package/src/sequence/__tests__/allocate.test.js +0 -113
  335. package/src/sequence/__tests__/allocate.test.js.map +0 -1
  336. package/src/sessions/__tests__/briefing-blocked.test.d.ts.map +0 -1
  337. package/src/sessions/__tests__/briefing-blocked.test.js +0 -117
  338. package/src/sessions/__tests__/briefing-blocked.test.js.map +0 -1
  339. package/src/sessions/__tests__/briefing.test.d.ts.map +0 -1
  340. package/src/sessions/__tests__/briefing.test.js +0 -336
  341. package/src/sessions/__tests__/briefing.test.js.map +0 -1
  342. package/src/sessions/__tests__/handoff-integration.test.d.ts.map +0 -1
  343. package/src/sessions/__tests__/handoff-integration.test.js +0 -264
  344. package/src/sessions/__tests__/handoff-integration.test.js.map +0 -1
  345. package/src/sessions/__tests__/handoff.test.d.ts.map +0 -1
  346. package/src/sessions/__tests__/handoff.test.js +0 -435
  347. package/src/sessions/__tests__/handoff.test.js.map +0 -1
  348. package/src/sessions/__tests__/index.test.d.ts.map +0 -1
  349. package/src/sessions/__tests__/index.test.js +0 -82
  350. package/src/sessions/__tests__/index.test.js.map +0 -1
  351. package/src/sessions/__tests__/session-cleanup.test.d.ts.map +0 -1
  352. package/src/sessions/__tests__/session-cleanup.test.js +0 -201
  353. package/src/sessions/__tests__/session-cleanup.test.js.map +0 -1
  354. package/src/sessions/__tests__/session-edge-cases.test.d.ts.map +0 -1
  355. package/src/sessions/__tests__/session-edge-cases.test.js +0 -251
  356. package/src/sessions/__tests__/session-edge-cases.test.js.map +0 -1
  357. package/src/sessions/__tests__/session-find.test.d.ts.map +0 -1
  358. package/src/sessions/__tests__/session-find.test.js +0 -210
  359. package/src/sessions/__tests__/session-find.test.js.map +0 -1
  360. package/src/sessions/__tests__/session-grade.integration.test.d.ts.map +0 -1
  361. package/src/sessions/__tests__/session-grade.integration.test.js +0 -287
  362. package/src/sessions/__tests__/session-grade.integration.test.js.map +0 -1
  363. package/src/sessions/__tests__/session-grade.test.d.ts.map +0 -1
  364. package/src/sessions/__tests__/session-grade.test.js +0 -630
  365. package/src/sessions/__tests__/session-grade.test.js.map +0 -1
  366. package/src/sessions/__tests__/session-memory-bridge.test.d.ts.map +0 -1
  367. package/src/sessions/__tests__/session-memory-bridge.test.js +0 -52
  368. package/src/sessions/__tests__/session-memory-bridge.test.js.map +0 -1
  369. package/src/sessions/__tests__/sessions.test.d.ts.map +0 -1
  370. package/src/sessions/__tests__/sessions.test.js +0 -113
  371. package/src/sessions/__tests__/sessions.test.js.map +0 -1
  372. package/src/skills/__tests__/discovery.test.d.ts.map +0 -1
  373. package/src/skills/__tests__/discovery.test.js +0 -171
  374. package/src/skills/__tests__/discovery.test.js.map +0 -1
  375. package/src/skills/__tests__/dispatch.test.d.ts.map +0 -1
  376. package/src/skills/__tests__/dispatch.test.js +0 -99
  377. package/src/skills/__tests__/dispatch.test.js.map +0 -1
  378. package/src/skills/__tests__/dynamic-skill-generator.test.d.ts.map +0 -1
  379. package/src/skills/__tests__/dynamic-skill-generator.test.js +0 -77
  380. package/src/skills/__tests__/dynamic-skill-generator.test.js.map +0 -1
  381. package/src/skills/__tests__/manifests.test.d.ts.map +0 -1
  382. package/src/skills/__tests__/manifests.test.js +0 -121
  383. package/src/skills/__tests__/manifests.test.js.map +0 -1
  384. package/src/skills/__tests__/precedence.test.d.ts.map +0 -1
  385. package/src/skills/__tests__/precedence.test.js +0 -325
  386. package/src/skills/__tests__/precedence.test.js.map +0 -1
  387. package/src/skills/__tests__/routing-table.test.d.ts.map +0 -1
  388. package/src/skills/__tests__/routing-table.test.js +0 -91
  389. package/src/skills/__tests__/routing-table.test.js.map +0 -1
  390. package/src/skills/__tests__/skill-paths.test.d.ts.map +0 -1
  391. package/src/skills/__tests__/skill-paths.test.js +0 -71
  392. package/src/skills/__tests__/skill-paths.test.js.map +0 -1
  393. package/src/skills/__tests__/test-utility.test.d.ts.map +0 -1
  394. package/src/skills/__tests__/test-utility.test.js +0 -59
  395. package/src/skills/__tests__/test-utility.test.js.map +0 -1
  396. package/src/skills/__tests__/token.test.d.ts.map +0 -1
  397. package/src/skills/__tests__/token.test.js +0 -135
  398. package/src/skills/__tests__/token.test.js.map +0 -1
  399. package/src/skills/__tests__/validation.test.d.ts.map +0 -1
  400. package/src/skills/__tests__/validation.test.js +0 -108
  401. package/src/skills/__tests__/validation.test.js.map +0 -1
  402. package/src/skills/__tests__/version.test.d.ts.map +0 -1
  403. package/src/skills/__tests__/version.test.js +0 -71
  404. package/src/skills/__tests__/version.test.js.map +0 -1
  405. package/src/skills/injection/__tests__/subagent.test.d.ts.map +0 -1
  406. package/src/skills/injection/__tests__/subagent.test.js +0 -122
  407. package/src/skills/injection/__tests__/subagent.test.js.map +0 -1
  408. package/src/skills/orchestrator/__tests__/spawn-tier.test.d.ts.map +0 -1
  409. package/src/skills/orchestrator/__tests__/spawn-tier.test.js +0 -228
  410. package/src/skills/orchestrator/__tests__/spawn-tier.test.js.map +0 -1
  411. package/src/spawn/__tests__/adapter-registry.test.d.ts.map +0 -1
  412. package/src/spawn/__tests__/adapter-registry.test.js +0 -76
  413. package/src/spawn/__tests__/adapter-registry.test.js.map +0 -1
  414. package/src/stats/__tests__/stats.test.d.ts.map +0 -1
  415. package/src/stats/__tests__/stats.test.js +0 -374
  416. package/src/stats/__tests__/stats.test.js.map +0 -1
  417. package/src/sticky/__tests__/purge.test.d.ts.map +0 -1
  418. package/src/sticky/__tests__/purge.test.js +0 -64
  419. package/src/sticky/__tests__/purge.test.js.map +0 -1
  420. package/src/store/__tests__/atomic.test.d.ts.map +0 -1
  421. package/src/store/__tests__/atomic.test.js +0 -81
  422. package/src/store/__tests__/atomic.test.js.map +0 -1
  423. package/src/store/__tests__/backup.test.d.ts.map +0 -1
  424. package/src/store/__tests__/backup.test.js +0 -131
  425. package/src/store/__tests__/backup.test.js.map +0 -1
  426. package/src/store/__tests__/brain-accessor-pageindex.test.d.ts.map +0 -1
  427. package/src/store/__tests__/brain-accessor-pageindex.test.js +0 -179
  428. package/src/store/__tests__/brain-accessor-pageindex.test.js.map +0 -1
  429. package/src/store/__tests__/brain-accessor.test.d.ts.map +0 -1
  430. package/src/store/__tests__/brain-accessor.test.js +0 -398
  431. package/src/store/__tests__/brain-accessor.test.js.map +0 -1
  432. package/src/store/__tests__/brain-pageindex.test.d.ts.map +0 -1
  433. package/src/store/__tests__/brain-pageindex.test.js +0 -137
  434. package/src/store/__tests__/brain-pageindex.test.js.map +0 -1
  435. package/src/store/__tests__/brain-schema.test.d.ts.map +0 -1
  436. package/src/store/__tests__/brain-schema.test.js +0 -137
  437. package/src/store/__tests__/brain-schema.test.js.map +0 -1
  438. package/src/store/__tests__/brain-vec.test.d.ts.map +0 -1
  439. package/src/store/__tests__/brain-vec.test.js +0 -100
  440. package/src/store/__tests__/brain-vec.test.js.map +0 -1
  441. package/src/store/__tests__/collision-detection.test.d.ts.map +0 -1
  442. package/src/store/__tests__/collision-detection.test.js +0 -165
  443. package/src/store/__tests__/collision-detection.test.js.map +0 -1
  444. package/src/store/__tests__/data-safety-central.test.d.ts.map +0 -1
  445. package/src/store/__tests__/data-safety-central.test.js +0 -408
  446. package/src/store/__tests__/data-safety-central.test.js.map +0 -1
  447. package/src/store/__tests__/db-helpers.test.d.ts.map +0 -1
  448. package/src/store/__tests__/db-helpers.test.js +0 -101
  449. package/src/store/__tests__/db-helpers.test.js.map +0 -1
  450. package/src/store/__tests__/e2e-safety-integration.test.d.ts.map +0 -1
  451. package/src/store/__tests__/e2e-safety-integration.test.js +0 -402
  452. package/src/store/__tests__/e2e-safety-integration.test.js.map +0 -1
  453. package/src/store/__tests__/git-checkpoint.test.d.ts.map +0 -1
  454. package/src/store/__tests__/git-checkpoint.test.js +0 -133
  455. package/src/store/__tests__/git-checkpoint.test.js.map +0 -1
  456. package/src/store/__tests__/idempotent-migration.test.d.ts.map +0 -1
  457. package/src/store/__tests__/idempotent-migration.test.js +0 -172
  458. package/src/store/__tests__/idempotent-migration.test.js.map +0 -1
  459. package/src/store/__tests__/import-logging.test.d.ts.map +0 -1
  460. package/src/store/__tests__/import-logging.test.js +0 -92
  461. package/src/store/__tests__/import-logging.test.js.map +0 -1
  462. package/src/store/__tests__/import-sort.test.d.ts.map +0 -1
  463. package/src/store/__tests__/import-sort.test.js +0 -109
  464. package/src/store/__tests__/import-sort.test.js.map +0 -1
  465. package/src/store/__tests__/json.test.d.ts.map +0 -1
  466. package/src/store/__tests__/json.test.js +0 -98
  467. package/src/store/__tests__/json.test.js.map +0 -1
  468. package/src/store/__tests__/lifecycle-schema-parity.test.d.ts.map +0 -1
  469. package/src/store/__tests__/lifecycle-schema-parity.test.js +0 -90
  470. package/src/store/__tests__/lifecycle-schema-parity.test.js.map +0 -1
  471. package/src/store/__tests__/migration-integration.test.d.ts.map +0 -1
  472. package/src/store/__tests__/migration-integration.test.js +0 -238
  473. package/src/store/__tests__/migration-integration.test.js.map +0 -1
  474. package/src/store/__tests__/migration-retry.test.d.ts.map +0 -1
  475. package/src/store/__tests__/migration-retry.test.js +0 -178
  476. package/src/store/__tests__/migration-retry.test.js.map +0 -1
  477. package/src/store/__tests__/migration-safety.test.d.ts.map +0 -1
  478. package/src/store/__tests__/migration-safety.test.js +0 -756
  479. package/src/store/__tests__/migration-safety.test.js.map +0 -1
  480. package/src/store/__tests__/migration-sqlite.test.d.ts.map +0 -1
  481. package/src/store/__tests__/migration-sqlite.test.js +0 -544
  482. package/src/store/__tests__/migration-sqlite.test.js.map +0 -1
  483. package/src/store/__tests__/performance-safety.test.d.ts.map +0 -1
  484. package/src/store/__tests__/performance-safety.test.js +0 -157
  485. package/src/store/__tests__/performance-safety.test.js.map +0 -1
  486. package/src/store/__tests__/project-detect.test.d.ts.map +0 -1
  487. package/src/store/__tests__/project-detect.test.js +0 -609
  488. package/src/store/__tests__/project-detect.test.js.map +0 -1
  489. package/src/store/__tests__/project-registry.test.d.ts.map +0 -1
  490. package/src/store/__tests__/project-registry.test.js +0 -28
  491. package/src/store/__tests__/project-registry.test.js.map +0 -1
  492. package/src/store/__tests__/provider.test.d.ts.map +0 -1
  493. package/src/store/__tests__/provider.test.js +0 -15
  494. package/src/store/__tests__/provider.test.js.map +0 -1
  495. package/src/store/__tests__/relations.test.d.ts.map +0 -1
  496. package/src/store/__tests__/relations.test.js +0 -318
  497. package/src/store/__tests__/relations.test.js.map +0 -1
  498. package/src/store/__tests__/safety-accessor.test.d.ts.map +0 -1
  499. package/src/store/__tests__/safety-accessor.test.js +0 -219
  500. package/src/store/__tests__/safety-accessor.test.js.map +0 -1
  501. package/src/store/__tests__/sequence-validation.test.d.ts.map +0 -1
  502. package/src/store/__tests__/sequence-validation.test.js +0 -94
  503. package/src/store/__tests__/sequence-validation.test.js.map +0 -1
  504. package/src/store/__tests__/session-store.test.d.ts.map +0 -1
  505. package/src/store/__tests__/session-store.test.js +0 -463
  506. package/src/store/__tests__/session-store.test.js.map +0 -1
  507. package/src/store/__tests__/sqlite-backup.test.d.ts.map +0 -1
  508. package/src/store/__tests__/sqlite-backup.test.js +0 -72
  509. package/src/store/__tests__/sqlite-backup.test.js.map +0 -1
  510. package/src/store/__tests__/sqlite.test.d.ts.map +0 -1
  511. package/src/store/__tests__/sqlite.test.js +0 -256
  512. package/src/store/__tests__/sqlite.test.js.map +0 -1
  513. package/src/store/__tests__/task-store.test.d.ts.map +0 -1
  514. package/src/store/__tests__/task-store.test.js +0 -514
  515. package/src/store/__tests__/task-store.test.js.map +0 -1
  516. package/src/store/__tests__/test-db-helper.d.ts.map +0 -1
  517. package/src/store/__tests__/test-db-helper.js +0 -110
  518. package/src/store/__tests__/test-db-helper.js.map +0 -1
  519. package/src/store/__tests__/write-verification.test.d.ts.map +0 -1
  520. package/src/store/__tests__/write-verification.test.js +0 -185
  521. package/src/store/__tests__/write-verification.test.js.map +0 -1
  522. package/src/system/__tests__/cleanup.test.d.ts.map +0 -1
  523. package/src/system/__tests__/cleanup.test.js +0 -87
  524. package/src/system/__tests__/cleanup.test.js.map +0 -1
  525. package/src/system/__tests__/health.test.d.ts.map +0 -1
  526. package/src/system/__tests__/health.test.js +0 -55
  527. package/src/system/__tests__/health.test.js.map +0 -1
  528. package/src/task-work/__tests__/start-deps.test.d.ts.map +0 -1
  529. package/src/task-work/__tests__/start-deps.test.js +0 -152
  530. package/src/task-work/__tests__/start-deps.test.js.map +0 -1
  531. package/src/tasks/__tests__/add.test.d.ts.map +0 -1
  532. package/src/tasks/__tests__/add.test.js +0 -226
  533. package/src/tasks/__tests__/add.test.js.map +0 -1
  534. package/src/tasks/__tests__/archive.test.d.ts.map +0 -1
  535. package/src/tasks/__tests__/archive.test.js +0 -196
  536. package/src/tasks/__tests__/archive.test.js.map +0 -1
  537. package/src/tasks/__tests__/assignee.test.d.ts.map +0 -1
  538. package/src/tasks/__tests__/assignee.test.js +0 -125
  539. package/src/tasks/__tests__/assignee.test.js.map +0 -1
  540. package/src/tasks/__tests__/atomicity.test.d.ts.map +0 -1
  541. package/src/tasks/__tests__/atomicity.test.js +0 -192
  542. package/src/tasks/__tests__/atomicity.test.js.map +0 -1
  543. package/src/tasks/__tests__/cancel-ops.test.d.ts.map +0 -1
  544. package/src/tasks/__tests__/cancel-ops.test.js +0 -115
  545. package/src/tasks/__tests__/cancel-ops.test.js.map +0 -1
  546. package/src/tasks/__tests__/complete-unblocks.test.d.ts.map +0 -1
  547. package/src/tasks/__tests__/complete-unblocks.test.js +0 -151
  548. package/src/tasks/__tests__/complete-unblocks.test.js.map +0 -1
  549. package/src/tasks/__tests__/complete.test.d.ts.map +0 -1
  550. package/src/tasks/__tests__/complete.test.js +0 -230
  551. package/src/tasks/__tests__/complete.test.js.map +0 -1
  552. package/src/tasks/__tests__/delete.test.d.ts.map +0 -1
  553. package/src/tasks/__tests__/delete.test.js +0 -183
  554. package/src/tasks/__tests__/delete.test.js.map +0 -1
  555. package/src/tasks/__tests__/dependency-check.test.d.ts.map +0 -1
  556. package/src/tasks/__tests__/dependency-check.test.js +0 -293
  557. package/src/tasks/__tests__/dependency-check.test.js.map +0 -1
  558. package/src/tasks/__tests__/deps-ready.test.d.ts.map +0 -1
  559. package/src/tasks/__tests__/deps-ready.test.js +0 -68
  560. package/src/tasks/__tests__/deps-ready.test.js.map +0 -1
  561. package/src/tasks/__tests__/epic-enforcement.test.d.ts.map +0 -1
  562. package/src/tasks/__tests__/epic-enforcement.test.js +0 -669
  563. package/src/tasks/__tests__/epic-enforcement.test.js.map +0 -1
  564. package/src/tasks/__tests__/find.test.d.ts.map +0 -1
  565. package/src/tasks/__tests__/find.test.js +0 -163
  566. package/src/tasks/__tests__/find.test.js.map +0 -1
  567. package/src/tasks/__tests__/graph-ops.test.d.ts.map +0 -1
  568. package/src/tasks/__tests__/graph-ops.test.js +0 -174
  569. package/src/tasks/__tests__/graph-ops.test.js.map +0 -1
  570. package/src/tasks/__tests__/hierarchy-policy.test.d.ts.map +0 -1
  571. package/src/tasks/__tests__/hierarchy-policy.test.js +0 -399
  572. package/src/tasks/__tests__/hierarchy-policy.test.js.map +0 -1
  573. package/src/tasks/__tests__/hierarchy.test.d.ts.map +0 -1
  574. package/src/tasks/__tests__/hierarchy.test.js +0 -302
  575. package/src/tasks/__tests__/hierarchy.test.js.map +0 -1
  576. package/src/tasks/__tests__/id-generator.test.d.ts.map +0 -1
  577. package/src/tasks/__tests__/id-generator.test.js +0 -59
  578. package/src/tasks/__tests__/id-generator.test.js.map +0 -1
  579. package/src/tasks/__tests__/labels.test.d.ts.map +0 -1
  580. package/src/tasks/__tests__/labels.test.js +0 -173
  581. package/src/tasks/__tests__/labels.test.js.map +0 -1
  582. package/src/tasks/__tests__/list.test.d.ts.map +0 -1
  583. package/src/tasks/__tests__/list.test.js +0 -272
  584. package/src/tasks/__tests__/list.test.js.map +0 -1
  585. package/src/tasks/__tests__/minimal-test.test.d.ts.map +0 -1
  586. package/src/tasks/__tests__/minimal-test.test.js +0 -25
  587. package/src/tasks/__tests__/minimal-test.test.js.map +0 -1
  588. package/src/tasks/__tests__/phase-tracking.test.d.ts.map +0 -1
  589. package/src/tasks/__tests__/phase-tracking.test.js +0 -209
  590. package/src/tasks/__tests__/phase-tracking.test.js.map +0 -1
  591. package/src/tasks/__tests__/pipeline-stage.test.d.ts.map +0 -1
  592. package/src/tasks/__tests__/pipeline-stage.test.js +0 -277
  593. package/src/tasks/__tests__/pipeline-stage.test.js.map +0 -1
  594. package/src/tasks/__tests__/plan-priority.test.d.ts.map +0 -1
  595. package/src/tasks/__tests__/plan-priority.test.js +0 -133
  596. package/src/tasks/__tests__/plan-priority.test.js.map +0 -1
  597. package/src/tasks/__tests__/priority-normalization.test.d.ts.map +0 -1
  598. package/src/tasks/__tests__/priority-normalization.test.js +0 -117
  599. package/src/tasks/__tests__/priority-normalization.test.js.map +0 -1
  600. package/src/tasks/__tests__/relates.test.d.ts.map +0 -1
  601. package/src/tasks/__tests__/relates.test.js +0 -84
  602. package/src/tasks/__tests__/relates.test.js.map +0 -1
  603. package/src/tasks/__tests__/show-deps.test.d.ts.map +0 -1
  604. package/src/tasks/__tests__/show-deps.test.js +0 -182
  605. package/src/tasks/__tests__/show-deps.test.js.map +0 -1
  606. package/src/tasks/__tests__/show.test.d.ts.map +0 -1
  607. package/src/tasks/__tests__/show.test.js +0 -126
  608. package/src/tasks/__tests__/show.test.js.map +0 -1
  609. package/src/tasks/__tests__/staleness.test.d.ts.map +0 -1
  610. package/src/tasks/__tests__/staleness.test.js +0 -154
  611. package/src/tasks/__tests__/staleness.test.js.map +0 -1
  612. package/src/tasks/__tests__/task-ops-depends.test.d.ts.map +0 -1
  613. package/src/tasks/__tests__/task-ops-depends.test.js +0 -118
  614. package/src/tasks/__tests__/task-ops-depends.test.js.map +0 -1
  615. package/src/tasks/__tests__/update.test.d.ts.map +0 -1
  616. package/src/tasks/__tests__/update.test.js +0 -320
  617. package/src/tasks/__tests__/update.test.js.map +0 -1
  618. package/src/validation/__tests__/chain-validation.test.d.ts.map +0 -1
  619. package/src/validation/__tests__/chain-validation.test.js +0 -204
  620. package/src/validation/__tests__/chain-validation.test.js.map +0 -1
  621. package/src/validation/__tests__/compliance.test.d.ts.map +0 -1
  622. package/src/validation/__tests__/compliance.test.js +0 -83
  623. package/src/validation/__tests__/compliance.test.js.map +0 -1
  624. package/src/validation/__tests__/docs-sync.test.d.ts.map +0 -1
  625. package/src/validation/__tests__/docs-sync.test.js +0 -243
  626. package/src/validation/__tests__/docs-sync.test.js.map +0 -1
  627. package/src/validation/__tests__/doctor-gitignore.test.d.ts.map +0 -1
  628. package/src/validation/__tests__/doctor-gitignore.test.js +0 -154
  629. package/src/validation/__tests__/doctor-gitignore.test.js.map +0 -1
  630. package/src/validation/__tests__/doctor-injection.test.d.ts.map +0 -1
  631. package/src/validation/__tests__/doctor-injection.test.js +0 -230
  632. package/src/validation/__tests__/doctor-injection.test.js.map +0 -1
  633. package/src/validation/__tests__/doctor.test.d.ts.map +0 -1
  634. package/src/validation/__tests__/doctor.test.js +0 -202
  635. package/src/validation/__tests__/doctor.test.js.map +0 -1
  636. package/src/validation/__tests__/engine.test.d.ts.map +0 -1
  637. package/src/validation/__tests__/engine.test.js +0 -346
  638. package/src/validation/__tests__/engine.test.js.map +0 -1
  639. package/src/validation/__tests__/manifest.test.d.ts.map +0 -1
  640. package/src/validation/__tests__/manifest.test.js +0 -244
  641. package/src/validation/__tests__/manifest.test.js.map +0 -1
  642. package/src/validation/__tests__/protocol-common.test.d.ts.map +0 -1
  643. package/src/validation/__tests__/protocol-common.test.js +0 -112
  644. package/src/validation/__tests__/protocol-common.test.js.map +0 -1
  645. package/src/validation/__tests__/verification.test.d.ts.map +0 -1
  646. package/src/validation/__tests__/verification.test.js +0 -277
  647. package/src/validation/__tests__/verification.test.js.map +0 -1
@@ -1,291 +0,0 @@
1
- /**
2
- * SseTransport test scenarios.
3
- *
4
- * Tests for the Server-Sent Events transport implementation.
5
- * SseTransport extends HTTP polling with real-time push via SSE,
6
- * falling back to HTTP polling when SSE is unavailable.
7
- *
8
- * @see packages/contracts/src/transport.ts — Transport interface
9
- * @see packages/contracts/src/conduit.ts — ConduitState types
10
- * @task T216
11
- */
12
- import { describe, expect, it, vi } from 'vitest';
13
- import { SseTransport } from '../sse-transport.js';
14
- // ============================================================================
15
- // Test helpers
16
- // ============================================================================
17
- /** Mock SSE event source that simulates server-sent events. */
18
- function createMockEventSource() {
19
- const handlers = {};
20
- return {
21
- addEventListener: vi.fn((type, handler) => {
22
- handlers[type] = handlers[type] || [];
23
- handlers[type].push(handler);
24
- }),
25
- removeEventListener: vi.fn(),
26
- close: vi.fn(),
27
- readyState: 0, // CONNECTING
28
- /** Simulate receiving an SSE event. */
29
- _emit(type, data) {
30
- for (const h of handlers[type] || []) {
31
- h(new MessageEvent(type, { data }));
32
- }
33
- },
34
- /** Simulate connection open. */
35
- _open() {
36
- this.readyState = 1; // OPEN
37
- for (const h of handlers['open'] || []) {
38
- h(new MessageEvent('open', { data: '' }));
39
- }
40
- },
41
- /** Simulate connection error. */
42
- _error() {
43
- this.readyState = 2; // CLOSED
44
- for (const h of handlers['error'] || []) {
45
- h(new MessageEvent('error', { data: '' }));
46
- }
47
- },
48
- };
49
- }
50
- /** Standard test config for SseTransport. */
51
- const TEST_CONFIG = {
52
- agentId: 'test-agent',
53
- apiKey: 'sk_live_test123',
54
- apiBaseUrl: 'https://api.signaldock.io',
55
- sseEndpoint: 'https://api.signaldock.io/sse',
56
- };
57
- // ============================================================================
58
- // Connection lifecycle
59
- // ============================================================================
60
- describe('SseTransport', () => {
61
- describe('connect', () => {
62
- it.todo('should establish SSE connection to sseEndpoint');
63
- // Expected behavior:
64
- // - Creates EventSource to config.sseEndpoint with auth headers
65
- // - Sets transport name to 'sse'
66
- // - Transitions state: disconnected → connecting → connected
67
- // - Resolves when EventSource 'open' event fires
68
- it.todo('should fall back to HTTP polling when SSE endpoint is unreachable');
69
- // Expected behavior:
70
- // - Attempts SSE connection
71
- // - On connection error, transitions to HTTP polling mode
72
- // - State: disconnected → connecting → connected (via HTTP fallback)
73
- // - Logs warning: "SSE unavailable, falling back to HTTP polling"
74
- // - poll() still works via HTTP
75
- it.todo('should include auth headers in SSE connection');
76
- // Expected behavior:
77
- // - EventSource URL includes ?token=<apiKey> (SSE doesn't support custom headers)
78
- // - Or uses a pre-flight auth endpoint to get a session token
79
- // - X-Agent-Id is conveyed via query param or pre-flight
80
- it.todo('should reject connect when no sseEndpoint or apiBaseUrl is configured');
81
- // Expected behavior:
82
- // - Throws Error with message indicating missing config
83
- // - State remains 'disconnected'
84
- it('rejects connect when no sseEndpoint or apiBaseUrl provided', async () => {
85
- const transport = new SseTransport();
86
- await expect(transport.connect({ agentId: 'test', apiKey: 'key', apiBaseUrl: '' })).rejects.toThrow('requires');
87
- });
88
- it.todo('should reject connect when already connected');
89
- // Expected behavior:
90
- // - Second connect() call throws or is no-op
91
- // - Does not create duplicate EventSource instances
92
- it('has name "sse"', () => {
93
- const transport = new SseTransport();
94
- expect(transport.name).toBe('sse');
95
- });
96
- });
97
- // ============================================================================
98
- // Disconnect
99
- // ============================================================================
100
- describe('disconnect', () => {
101
- it.todo('should close SSE connection and clear state');
102
- // Expected behavior:
103
- // - Calls EventSource.close()
104
- // - Clears internal state
105
- // - State: connected → disconnected
106
- // - Subsequent push/poll calls throw "not connected"
107
- it.todo('should be idempotent when already disconnected');
108
- // Expected behavior:
109
- // - No error when calling disconnect() on already disconnected transport
110
- // - State remains 'disconnected'
111
- it('is safe to call disconnect when not connected', async () => {
112
- const transport = new SseTransport();
113
- await transport.disconnect(); // Should not throw
114
- await transport.disconnect(); // Still should not throw
115
- });
116
- it.todo('should cancel any pending poll timers');
117
- // Expected behavior:
118
- // - If HTTP fallback polling is active, clears interval
119
- // - No orphaned timers after disconnect
120
- });
121
- // ============================================================================
122
- // Reconnect
123
- // ============================================================================
124
- describe('reconnect', () => {
125
- it.todo('should automatically reconnect on SSE connection drop');
126
- // Expected behavior:
127
- // - When EventSource fires 'error' and readyState becomes CLOSED
128
- // - State: connected → reconnecting
129
- // - Exponential backoff: 1s, 2s, 4s, 8s, max 30s
130
- // - On successful reconnect: state → connected
131
- // - Messages received during reconnect are not lost (server-side cursor)
132
- it.todo('should fall back to HTTP polling after N failed SSE reconnects');
133
- // Expected behavior:
134
- // - After 3 failed SSE reconnect attempts
135
- // - Permanently switches to HTTP polling mode for this session
136
- // - State: reconnecting → connected (via HTTP)
137
- // - Logs: "SSE reconnect failed 3 times, switching to HTTP polling"
138
- it.todo('should preserve message cursor across reconnect');
139
- // Expected behavior:
140
- // - Tracks last received message ID or timestamp
141
- // - Reconnect URL includes ?lastEventId=<cursor>
142
- // - Server replays missed messages from cursor
143
- // - No duplicate messages delivered to consumer
144
- it.todo('should emit state change events during reconnect cycle');
145
- // Expected behavior:
146
- // - onStateChange fires: connected → reconnecting → connected
147
- // - Or: connected → reconnecting → error (if max retries exceeded)
148
- });
149
- // ============================================================================
150
- // Message receive (SSE mode)
151
- // ============================================================================
152
- describe('message receive via SSE', () => {
153
- it.todo('should deliver incoming SSE messages via poll() return');
154
- // Expected behavior:
155
- // - SSE 'message' events are buffered internally
156
- // - poll() returns buffered messages and clears buffer
157
- // - Messages conform to ConduitMessage interface
158
- it.todo('should parse SSE data field as JSON ConduitMessage');
159
- // Expected behavior:
160
- // - SSE data: {"id":"msg-1","from":"agent-a","content":"hello","timestamp":"..."}
161
- // - Parsed into ConduitMessage with all fields populated
162
- it.todo('should handle malformed SSE data gracefully');
163
- // Expected behavior:
164
- // - Invalid JSON in SSE data field does not crash transport
165
- // - Malformed messages are logged and skipped
166
- // - poll() returns only valid messages
167
- it.todo('should filter self-sent messages');
168
- // Expected behavior:
169
- // - Messages where from === config.agentId are excluded from poll()
170
- // - Prevents echo of own messages
171
- it.todo('should support SSE event types for different message categories');
172
- // Expected behavior:
173
- // - 'message' event: standard agent messages
174
- // - 'heartbeat' event: keep-alive (ignored in poll output)
175
- // - 'system' event: system notifications (e.g., agent online/offline)
176
- });
177
- // ============================================================================
178
- // Send with SSE down (fallback to HTTP)
179
- // ============================================================================
180
- describe('send (push)', () => {
181
- it.todo('should send messages via HTTP POST regardless of SSE state');
182
- // Expected behavior:
183
- // - push() always uses HTTP POST (SSE is receive-only)
184
- // - POST /conversations/{conversationId}/messages or /agents/{to}/messages
185
- // - Returns { messageId } from response
186
- // - Works whether SSE is connected, reconnecting, or fallen back to HTTP
187
- it.todo('should send messages when SSE is connected');
188
- // Expected behavior:
189
- // - SSE connection is active for receiving
190
- // - push() uses HTTP POST for sending (SSE is unidirectional)
191
- // - Both channels work simultaneously
192
- it.todo('should send messages when SSE is down and in HTTP fallback mode');
193
- // Expected behavior:
194
- // - SSE connection has failed, transport is in HTTP polling mode
195
- // - push() still works via HTTP POST
196
- // - No difference in send behavior between SSE and HTTP modes
197
- it.todo('should retry failed sends with exponential backoff');
198
- // Expected behavior:
199
- // - On HTTP 5xx or network error, retry up to 3 times
200
- // - Backoff: 500ms, 1s, 2s
201
- // - On 4xx (client error), fail immediately (no retry)
202
- // - Returns error after max retries
203
- it.todo('should throw when not connected');
204
- // Expected behavior:
205
- // - push() before connect() throws "Transport not connected"
206
- // - push() after disconnect() throws "Transport not connected"
207
- it('throws when push is called before connect', async () => {
208
- const transport = new SseTransport();
209
- await expect(transport.push('to', 'msg')).rejects.toThrow('not connected');
210
- });
211
- it('throws when poll is called before connect', async () => {
212
- const transport = new SseTransport();
213
- await expect(transport.poll()).rejects.toThrow('not connected');
214
- });
215
- it('throws when ack is called before connect', async () => {
216
- const transport = new SseTransport();
217
- await expect(transport.ack(['id'])).rejects.toThrow('not connected');
218
- });
219
- });
220
- // ============================================================================
221
- // Poll (hybrid mode)
222
- // ============================================================================
223
- describe('poll', () => {
224
- it.todo('should return SSE-buffered messages when SSE is active');
225
- // Expected behavior:
226
- // - In SSE mode, poll() drains the internal message buffer
227
- // - Does NOT make an HTTP request (messages arrive via SSE push)
228
- // - Returns empty array if no new messages since last poll
229
- it.todo('should fall back to HTTP polling when SSE is down');
230
- // Expected behavior:
231
- // - In HTTP fallback mode, poll() makes GET /messages/peek
232
- // - Behaves identically to HttpTransport.poll()
233
- // - Respects limit and since options
234
- it.todo('should respect since parameter for cursor-based retrieval');
235
- // Expected behavior:
236
- // - poll({ since: '2026-03-30T20:00:00Z' }) returns only newer messages
237
- // - In SSE mode: filters buffer by timestamp
238
- // - In HTTP mode: passes as query param
239
- });
240
- // ============================================================================
241
- // Acknowledge
242
- // ============================================================================
243
- describe('ack', () => {
244
- it.todo('should acknowledge messages via HTTP POST');
245
- // Expected behavior:
246
- // - ack(['msg-1', 'msg-2']) sends POST /messages/ack
247
- // - Works in both SSE and HTTP modes (always HTTP for ack)
248
- // - Acknowledged messages are not returned by subsequent poll()
249
- });
250
- // ============================================================================
251
- // Heartbeat
252
- // ============================================================================
253
- describe('heartbeat', () => {
254
- it.todo('should send heartbeat via HTTP POST');
255
- // Expected behavior:
256
- // - POST /agents/{agentId}/heartbeat
257
- // - Works in both SSE and HTTP modes
258
- // - Does not depend on SSE connection state
259
- it.todo('should detect SSE connection health from heartbeat response');
260
- // Expected behavior:
261
- // - Heartbeat response may include SSE connection status
262
- // - If server reports SSE session expired, trigger reconnect
263
- });
264
- // ============================================================================
265
- // Edge cases
266
- // ============================================================================
267
- describe('edge cases', () => {
268
- it.todo('should handle rapid connect/disconnect cycles');
269
- // Expected behavior:
270
- // - connect() → disconnect() → connect() in quick succession
271
- // - No resource leaks (EventSource properly closed)
272
- // - Final state is consistent
273
- it.todo('should handle server-initiated SSE close');
274
- // Expected behavior:
275
- // - Server sends SSE close/shutdown event
276
- // - Transport transitions to reconnecting or HTTP fallback
277
- // - No unhandled errors
278
- it.todo('should handle network going offline then online');
279
- // Expected behavior:
280
- // - SSE connection drops (network offline)
281
- // - Reconnect attempts fail (network offline)
282
- // - When network returns, reconnect succeeds
283
- // - Messages buffered server-side are delivered
284
- it.todo('should not leak EventSource instances on repeated reconnects');
285
- // Expected behavior:
286
- // - Each reconnect properly closes the previous EventSource
287
- // - No accumulation of open connections
288
- // - Memory usage stays constant
289
- });
290
- });
291
- //# sourceMappingURL=sse-transport.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sse-transport.test.js","sourceRoot":"","sources":["sse-transport.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-hooks.test.d.ts","sourceRoot":"","sources":["provider-hooks.test.ts"],"names":[],"mappings":""}
@@ -1,33 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- const { getProvidersByHookEventMock, getCommonHookEventsMock } = vi.hoisted(() => ({
3
- getProvidersByHookEventMock: vi.fn(),
4
- getCommonHookEventsMock: vi.fn(),
5
- }));
6
- vi.mock('@cleocode/caamp', () => ({
7
- getProvidersByHookEvent: getProvidersByHookEventMock,
8
- getCommonHookEvents: getCommonHookEventsMock,
9
- }));
10
- import { getHookCapableProviders, getSharedHookEvents } from '../provider-hooks.js';
11
- describe('provider hook capability helpers', () => {
12
- beforeEach(() => {
13
- vi.clearAllMocks();
14
- });
15
- it('returns no providers for CLEO-local coordination events', () => {
16
- const providers = getHookCapableProviders('onWorkAvailable');
17
- expect(providers).toEqual([]);
18
- expect(getProvidersByHookEventMock).not.toHaveBeenCalled();
19
- });
20
- it('delegates provider-backed hook events to CAAMP', () => {
21
- getProvidersByHookEventMock.mockReturnValue([{ id: 'claude-code' }, { id: 'opencode' }]);
22
- const providers = getHookCapableProviders('PreToolUse');
23
- expect(getProvidersByHookEventMock).toHaveBeenCalledWith('PreToolUse');
24
- expect(providers).toEqual(['claude-code', 'opencode']);
25
- });
26
- it('returns common provider hook events from CAAMP', () => {
27
- getCommonHookEventsMock.mockReturnValue(['SessionStart', 'PostToolUse']);
28
- const events = getSharedHookEvents(['claude-code', 'opencode']);
29
- expect(getCommonHookEventsMock).toHaveBeenCalledWith(['claude-code', 'opencode']);
30
- expect(events).toEqual(['SessionStart', 'PostToolUse']);
31
- });
32
- });
33
- //# sourceMappingURL=provider-hooks.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-hooks.test.js","sourceRoot":"","sources":["provider-hooks.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9D,MAAM,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjF,2BAA2B,EAAE,EAAE,CAAC,EAAE,EAAE;IACpC,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE;CACjC,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,uBAAuB,EAAE,2BAA2B;IACpD,mBAAmB,EAAE,uBAAuB;CAC7C,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,SAAS,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;QAE7D,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,2BAA2B,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAEzF,MAAM,SAAS,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAExD,MAAM,CAAC,2BAA2B,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACvE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,uBAAuB,CAAC,eAAe,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;QAEzE,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;QAEhE,MAAM,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["registry.test.ts"],"names":[],"mappings":""}
@@ -1,37 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { HookRegistry } from '../registry.js';
3
- describe('HookRegistry internal coordination events', () => {
4
- let registry;
5
- beforeEach(() => {
6
- registry = new HookRegistry();
7
- });
8
- it('enables autonomous coordination events by default', () => {
9
- expect(registry.isEnabled('onWorkAvailable')).toBe(true);
10
- expect(registry.isEnabled('onAgentSpawn')).toBe(true);
11
- expect(registry.isEnabled('onAgentComplete')).toBe(true);
12
- expect(registry.isEnabled('onCascadeStart')).toBe(true);
13
- expect(registry.isEnabled('onPatrol')).toBe(true);
14
- });
15
- it('dispatches internal coordination events to registered handlers', async () => {
16
- const handler = vi.fn();
17
- registry.register({
18
- id: 'work-available-handler',
19
- event: 'onWorkAvailable',
20
- priority: 10,
21
- handler,
22
- });
23
- await registry.dispatch('onWorkAvailable', '/tmp/project', {
24
- timestamp: '2026-03-06T05:00:00.000Z',
25
- epicId: 'T5519',
26
- taskIds: ['T5520', 'T5522'],
27
- reason: 'dependency-cleared',
28
- });
29
- expect(handler).toHaveBeenCalledTimes(1);
30
- expect(handler).toHaveBeenCalledWith('/tmp/project', expect.objectContaining({
31
- epicId: 'T5519',
32
- taskIds: ['T5520', 'T5522'],
33
- reason: 'dependency-cleared',
34
- }));
35
- });
36
- });
37
- //# sourceMappingURL=registry.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.test.js","sourceRoot":"","sources":["registry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,IAAI,QAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAExB,QAAQ,CAAC,QAAQ,CAAC;YAChB,EAAE,EAAE,wBAAwB;YAC5B,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE,EAAE;YACZ,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,cAAc,EAAE;YACzD,SAAS,EAAE,0BAA0B;YACrC,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;YAC3B,MAAM,EAAE,oBAAoB;SAC7B,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAClC,cAAc,EACd,MAAM,CAAC,gBAAgB,CAAC;YACtB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;YAC3B,MAAM,EAAE,oBAAoB;SAC7B,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-hooks.test.d.ts","sourceRoot":"","sources":["error-hooks.test.ts"],"names":[],"mappings":""}
@@ -1,90 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- const observeBrainMock = vi.fn();
3
- vi.mock('../../../memory/brain-retrieval.js', () => ({
4
- observeBrain: observeBrainMock,
5
- }));
6
- import { handleError } from '../error-hooks.js';
7
- describe('error hook handlers', () => {
8
- beforeEach(() => {
9
- observeBrainMock.mockReset();
10
- });
11
- it('calls observeBrain with error details', async () => {
12
- observeBrainMock.mockResolvedValue(undefined);
13
- await handleError('/tmp/project', {
14
- timestamp: '2026-03-04T00:00:00.000Z',
15
- errorCode: 42,
16
- message: 'Validation failed',
17
- domain: 'tasks',
18
- operation: 'add',
19
- gateway: 'mutate',
20
- });
21
- expect(observeBrainMock).toHaveBeenCalledTimes(1);
22
- expect(observeBrainMock).toHaveBeenCalledWith('/tmp/project', expect.objectContaining({
23
- text: expect.stringContaining('Error in tasks.add'),
24
- title: 'Error: tasks.add',
25
- type: 'discovery',
26
- sourceType: 'agent',
27
- }));
28
- // Verify error details are in the text
29
- const callText = observeBrainMock.mock.calls[0][1].text;
30
- expect(callText).toContain('Validation failed');
31
- expect(callText).toContain('Code: 42');
32
- expect(callText).toContain('Gateway: mutate');
33
- });
34
- it('swallows brain schema missing error', async () => {
35
- observeBrainMock.mockRejectedValue(new Error('SQLITE_ERROR: no such table: brain_observations'));
36
- await expect(handleError('/tmp/project', {
37
- timestamp: '2026-03-04T00:00:00.000Z',
38
- errorCode: 1,
39
- message: 'Something broke',
40
- domain: 'tasks',
41
- operation: 'show',
42
- })).resolves.toBeUndefined();
43
- });
44
- it('skips observation when _fromHook flag is set', async () => {
45
- await handleError('/tmp/project', {
46
- timestamp: '2026-03-04T00:00:00.000Z',
47
- errorCode: 1,
48
- message: 'Hook-triggered error',
49
- domain: 'memory',
50
- operation: 'observe',
51
- metadata: { _fromHook: true },
52
- });
53
- expect(observeBrainMock).not.toHaveBeenCalled();
54
- });
55
- it('includes domain/operation in observation text', async () => {
56
- observeBrainMock.mockResolvedValue(undefined);
57
- await handleError('/tmp/project', {
58
- timestamp: '2026-03-04T00:00:00.000Z',
59
- errorCode: 'E_NOT_FOUND',
60
- message: 'Task not found',
61
- domain: 'tasks',
62
- operation: 'show',
63
- });
64
- const callText = observeBrainMock.mock.calls[0][1].text;
65
- expect(callText).toContain('tasks.show');
66
- expect(callText).toContain('E_NOT_FOUND');
67
- });
68
- it('uses "unknown" when domain/operation are absent', async () => {
69
- observeBrainMock.mockResolvedValue(undefined);
70
- await handleError('/tmp/project', {
71
- timestamp: '2026-03-04T00:00:00.000Z',
72
- errorCode: 1,
73
- message: 'Something broke',
74
- });
75
- expect(observeBrainMock).toHaveBeenCalledWith('/tmp/project', expect.objectContaining({
76
- title: 'Error: unknown',
77
- }));
78
- });
79
- it('suppresses non-schema errors to prevent re-entrant hook firing', async () => {
80
- observeBrainMock.mockRejectedValue(new Error('database is locked'));
81
- await expect(handleError('/tmp/project', {
82
- timestamp: '2026-03-04T00:00:00.000Z',
83
- errorCode: 1,
84
- message: 'Something broke',
85
- domain: 'tasks',
86
- operation: 'add',
87
- })).resolves.toBeUndefined();
88
- });
89
- });
90
- //# sourceMappingURL=error-hooks.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-hooks.test.js","sourceRoot":"","sources":["error-hooks.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-hooks.test.d.ts","sourceRoot":"","sources":["file-hooks.test.ts"],"names":[],"mappings":""}
@@ -1,128 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
2
- const observeBrainMock = vi.fn();
3
- vi.mock('../../../memory/brain-retrieval.js', () => ({
4
- observeBrain: observeBrainMock,
5
- }));
6
- import { handleFileChange } from '../file-hooks.js';
7
- describe('file hook handlers', () => {
8
- beforeEach(() => {
9
- observeBrainMock.mockReset();
10
- vi.restoreAllMocks();
11
- // Enable file capture for tests
12
- process.env['CLEO_BRAIN_CAPTURE_FILES'] = 'true';
13
- });
14
- afterEach(() => {
15
- delete process.env['CLEO_BRAIN_CAPTURE_FILES'];
16
- });
17
- it('calls observeBrain with file path and change type', async () => {
18
- observeBrainMock.mockResolvedValue(undefined);
19
- await handleFileChange('/tmp/project', {
20
- timestamp: '2026-03-04T00:00:00.000Z',
21
- filePath: 'src/core/tasks.ts',
22
- changeType: 'write',
23
- sizeBytes: 1024,
24
- });
25
- expect(observeBrainMock).toHaveBeenCalledTimes(1);
26
- expect(observeBrainMock).toHaveBeenCalledWith('/tmp/project', expect.objectContaining({
27
- text: expect.stringContaining('File write: src/core/tasks.ts'),
28
- title: expect.stringContaining('File changed: src/core/tasks.ts'),
29
- type: 'change',
30
- sourceType: 'agent',
31
- }));
32
- const callText = observeBrainMock.mock.calls[0][1].text;
33
- expect(callText).toContain('1024 bytes');
34
- });
35
- it('deduplicates rapid writes to same file within 5s', async () => {
36
- observeBrainMock.mockResolvedValue(undefined);
37
- // Use a unique file path for this test to avoid cross-test dedup
38
- const uniquePath = `src/dedup-test-${Date.now()}.ts`;
39
- await handleFileChange('/tmp/project', {
40
- timestamp: '2026-03-04T00:00:00.000Z',
41
- filePath: uniquePath,
42
- changeType: 'write',
43
- });
44
- // Second call within 5s should be deduped
45
- await handleFileChange('/tmp/project', {
46
- timestamp: '2026-03-04T00:00:01.000Z',
47
- filePath: uniquePath,
48
- changeType: 'write',
49
- });
50
- expect(observeBrainMock).toHaveBeenCalledTimes(1);
51
- });
52
- it('allows writes to different files within 5s', async () => {
53
- observeBrainMock.mockResolvedValue(undefined);
54
- const fileA = `src/file-a-${Date.now()}.ts`;
55
- const fileB = `src/file-b-${Date.now()}.ts`;
56
- await handleFileChange('/tmp/project', {
57
- timestamp: '2026-03-04T00:00:00.000Z',
58
- filePath: fileA,
59
- changeType: 'write',
60
- });
61
- await handleFileChange('/tmp/project', {
62
- timestamp: '2026-03-04T00:00:01.000Z',
63
- filePath: fileB,
64
- changeType: 'create',
65
- });
66
- expect(observeBrainMock).toHaveBeenCalledTimes(2);
67
- });
68
- it('converts absolute path to relative', async () => {
69
- observeBrainMock.mockResolvedValue(undefined);
70
- const absPath = `/tmp/project/src/abs-test-${Date.now()}.ts`;
71
- await handleFileChange('/tmp/project', {
72
- timestamp: '2026-03-04T00:00:00.000Z',
73
- filePath: absPath,
74
- changeType: 'write',
75
- });
76
- expect(observeBrainMock).toHaveBeenCalledWith('/tmp/project', expect.objectContaining({
77
- text: expect.stringMatching(/File write: src\/abs-test-\d+\.ts/),
78
- title: expect.stringMatching(/File changed: src\/abs-test-\d+\.ts/),
79
- }));
80
- });
81
- it('swallows brain schema missing error', async () => {
82
- observeBrainMock.mockRejectedValue(new Error('no such table: brain_observations'));
83
- const uniquePath = `src/swallow-test-${Date.now()}.ts`;
84
- await expect(handleFileChange('/tmp/project', {
85
- timestamp: '2026-03-04T00:00:00.000Z',
86
- filePath: uniquePath,
87
- changeType: 'delete',
88
- })).resolves.toBeUndefined();
89
- });
90
- it('rethrows non-schema errors', async () => {
91
- observeBrainMock.mockRejectedValue(new Error('disk full'));
92
- const uniquePath = `src/rethrow-test-${Date.now()}.ts`;
93
- await expect(handleFileChange('/tmp/project', {
94
- timestamp: '2026-03-04T00:00:00.000Z',
95
- filePath: uniquePath,
96
- changeType: 'write',
97
- })).rejects.toThrow('disk full');
98
- });
99
- it('skips when CLEO_BRAIN_CAPTURE_FILES is not set', async () => {
100
- delete process.env['CLEO_BRAIN_CAPTURE_FILES'];
101
- observeBrainMock.mockResolvedValue(undefined);
102
- await handleFileChange('/tmp/project', {
103
- timestamp: '2026-03-04T00:00:00.000Z',
104
- filePath: `src/gated-test-${Date.now()}.ts`,
105
- changeType: 'write',
106
- });
107
- expect(observeBrainMock).not.toHaveBeenCalled();
108
- });
109
- it('skips .cleo/ internal files', async () => {
110
- observeBrainMock.mockResolvedValue(undefined);
111
- await handleFileChange('/tmp/project', {
112
- timestamp: '2026-03-04T00:00:00.000Z',
113
- filePath: '.cleo/sessions.json',
114
- changeType: 'write',
115
- });
116
- expect(observeBrainMock).not.toHaveBeenCalled();
117
- });
118
- it('skips test temp directory files', async () => {
119
- observeBrainMock.mockResolvedValue(undefined);
120
- await handleFileChange('/tmp/project', {
121
- timestamp: '2026-03-04T00:00:00.000Z',
122
- filePath: '/tmp/cleo-test-abc123/.cleo/tasks.db',
123
- changeType: 'write',
124
- });
125
- expect(observeBrainMock).not.toHaveBeenCalled();
126
- });
127
- });
128
- //# sourceMappingURL=file-hooks.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-hooks.test.js","sourceRoot":"","sources":["file-hooks.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook-automation-e2e.test.d.ts","sourceRoot":"","sources":["hook-automation-e2e.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}