@cleocode/core 2026.4.5 → 2026.4.7

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 (782) hide show
  1. package/dist/discovery.d.ts +69 -0
  2. package/dist/discovery.d.ts.map +1 -0
  3. package/dist/index.d.ts +3 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1643 -2349
  6. package/dist/index.js.map +4 -4
  7. package/dist/init.d.ts +51 -0
  8. package/dist/init.d.ts.map +1 -1
  9. package/dist/internal.d.ts +9 -1
  10. package/dist/internal.d.ts.map +1 -1
  11. package/dist/lifecycle/default-chain.d.ts +8 -2
  12. package/dist/lifecycle/default-chain.d.ts.map +1 -1
  13. package/dist/lifecycle/index.d.ts +1 -0
  14. package/dist/lifecycle/index.d.ts.map +1 -1
  15. package/dist/lifecycle/stage-guidance.d.ts +140 -0
  16. package/dist/lifecycle/stage-guidance.d.ts.map +1 -0
  17. package/dist/orchestration/protocol-validators.d.ts +122 -3
  18. package/dist/orchestration/protocol-validators.d.ts.map +1 -1
  19. package/dist/paths.d.ts +91 -0
  20. package/dist/paths.d.ts.map +1 -1
  21. package/dist/scaffold.d.ts +31 -1
  22. package/dist/scaffold.d.ts.map +1 -1
  23. package/dist/skills/dispatch.d.ts +1 -1
  24. package/dist/skills/skill-paths.d.ts +9 -6
  25. package/dist/skills/skill-paths.d.ts.map +1 -1
  26. package/dist/validation/protocols/_shared.d.ts +40 -0
  27. package/dist/validation/protocols/_shared.d.ts.map +1 -0
  28. package/dist/validation/protocols/architecture-decision.d.ts +23 -0
  29. package/dist/validation/protocols/architecture-decision.d.ts.map +1 -0
  30. package/dist/validation/protocols/artifact-publish.d.ts +22 -0
  31. package/dist/validation/protocols/artifact-publish.d.ts.map +1 -0
  32. package/dist/validation/protocols/consensus.d.ts +11 -17
  33. package/dist/validation/protocols/consensus.d.ts.map +1 -1
  34. package/dist/validation/protocols/contribution.d.ts +12 -17
  35. package/dist/validation/protocols/contribution.d.ts.map +1 -1
  36. package/dist/validation/protocols/decomposition.d.ts +18 -21
  37. package/dist/validation/protocols/decomposition.d.ts.map +1 -1
  38. package/dist/validation/protocols/implementation.d.ts +9 -17
  39. package/dist/validation/protocols/implementation.d.ts.map +1 -1
  40. package/dist/validation/protocols/provenance.d.ts +23 -0
  41. package/dist/validation/protocols/provenance.d.ts.map +1 -0
  42. package/dist/validation/protocols/release.d.ts +25 -0
  43. package/dist/validation/protocols/release.d.ts.map +1 -0
  44. package/dist/validation/protocols/research.d.ts +9 -17
  45. package/dist/validation/protocols/research.d.ts.map +1 -1
  46. package/dist/validation/protocols/specification.d.ts +7 -17
  47. package/dist/validation/protocols/specification.d.ts.map +1 -1
  48. package/dist/validation/protocols/testing.d.ts +22 -0
  49. package/dist/validation/protocols/testing.d.ts.map +1 -0
  50. package/dist/validation/protocols/validation.d.ts +22 -0
  51. package/dist/validation/protocols/validation.d.ts.map +1 -0
  52. package/package.json +7 -7
  53. package/src/discovery.ts +235 -0
  54. package/src/index.ts +16 -0
  55. package/src/init.ts +196 -0
  56. package/src/internal.ts +31 -1
  57. package/src/lifecycle/default-chain.ts +11 -2
  58. package/src/lifecycle/index.ts +10 -0
  59. package/src/lifecycle/stage-guidance.ts +282 -0
  60. package/src/orchestration/__tests__/protocol-validators.test.ts +259 -7
  61. package/src/orchestration/protocol-validators.ts +419 -4
  62. package/src/paths.ts +110 -0
  63. package/src/scaffold.ts +240 -4
  64. package/src/skills/dispatch.ts +6 -6
  65. package/src/skills/skill-paths.ts +27 -23
  66. package/src/validation/protocols/_shared.ts +88 -0
  67. package/src/validation/protocols/architecture-decision.ts +52 -0
  68. package/src/validation/protocols/artifact-publish.ts +49 -0
  69. package/src/validation/protocols/consensus.ts +44 -74
  70. package/src/validation/protocols/contribution.ts +28 -65
  71. package/src/validation/protocols/decomposition.ts +37 -64
  72. package/src/validation/protocols/implementation.ts +25 -65
  73. package/src/validation/protocols/protocols-markdown/architecture-decision.md +303 -0
  74. package/src/validation/protocols/protocols-markdown/artifact-publish.md +600 -0
  75. package/src/validation/protocols/protocols-markdown/consensus.md +322 -0
  76. package/src/validation/protocols/protocols-markdown/contribution.md +388 -0
  77. package/src/validation/protocols/protocols-markdown/decomposition.md +421 -0
  78. package/src/validation/protocols/protocols-markdown/implementation.md +357 -0
  79. package/src/validation/protocols/protocols-markdown/provenance.md +613 -0
  80. package/src/validation/protocols/protocols-markdown/release.md +783 -0
  81. package/src/validation/protocols/protocols-markdown/research.md +261 -0
  82. package/src/validation/protocols/protocols-markdown/specification.md +300 -0
  83. package/src/validation/protocols/protocols-markdown/testing.md +287 -0
  84. package/src/validation/protocols/protocols-markdown/validation.md +242 -0
  85. package/src/validation/protocols/provenance.ts +50 -0
  86. package/src/validation/protocols/release.ts +44 -0
  87. package/src/validation/protocols/research.ts +25 -87
  88. package/src/validation/protocols/specification.ts +27 -89
  89. package/src/validation/protocols/testing.ts +46 -0
  90. package/src/validation/protocols/validation.ts +46 -0
  91. package/dist/cant/approval.d.ts +0 -110
  92. package/dist/cant/approval.d.ts.map +0 -1
  93. package/dist/cant/context-builder.d.ts +0 -79
  94. package/dist/cant/context-builder.d.ts.map +0 -1
  95. package/dist/cant/discretion.d.ts +0 -95
  96. package/dist/cant/discretion.d.ts.map +0 -1
  97. package/dist/cant/index.d.ts +0 -25
  98. package/dist/cant/index.d.ts.map +0 -1
  99. package/dist/cant/parallel-runner.d.ts +0 -38
  100. package/dist/cant/parallel-runner.d.ts.map +0 -1
  101. package/dist/cant/types.d.ts +0 -127
  102. package/dist/cant/types.d.ts.map +0 -1
  103. package/dist/cant/workflow-executor.d.ts +0 -105
  104. package/dist/cant/workflow-executor.d.ts.map +0 -1
  105. package/dist/validation/protocols/release-protocol.d.ts +0 -27
  106. package/dist/validation/protocols/release-protocol.d.ts.map +0 -1
  107. package/dist/validation/protocols/testing-protocol.d.ts +0 -27
  108. package/dist/validation/protocols/testing-protocol.d.ts.map +0 -1
  109. package/dist/validation/protocols/validation-protocol.d.ts +0 -27
  110. package/dist/validation/protocols/validation-protocol.d.ts.map +0 -1
  111. package/schemas/agent-configs.schema.json +0 -120
  112. package/schemas/agent-registry.schema.json +0 -132
  113. package/schemas/archive.schema.json +0 -450
  114. package/schemas/brain-decision.schema.json +0 -69
  115. package/schemas/brain-learning.schema.json +0 -57
  116. package/schemas/brain-pattern.schema.json +0 -72
  117. package/schemas/critical-path.schema.json +0 -246
  118. package/schemas/deps-cache.schema.json +0 -97
  119. package/schemas/doctor-output.schema.json +0 -283
  120. package/schemas/error.schema.json +0 -161
  121. package/schemas/global-config.schema.json +0 -219
  122. package/schemas/grade.schema.json +0 -49
  123. package/schemas/log.schema.json +0 -250
  124. package/schemas/metrics.schema.json +0 -328
  125. package/schemas/migrations.schema.json +0 -150
  126. package/schemas/nexus-registry.schema.json +0 -90
  127. package/schemas/operation-constitution.schema.json +0 -438
  128. package/schemas/output.schema.json +0 -164
  129. package/schemas/projects-registry.schema.json +0 -107
  130. package/schemas/protocol-frontmatter.schema.json +0 -72
  131. package/schemas/rcasd-consensus-report.schema.json +0 -10
  132. package/schemas/rcasd-evidence.schema.json +0 -42
  133. package/schemas/rcasd-gate-result.schema.json +0 -46
  134. package/schemas/rcasd-hitl-resolution.schema.json +0 -10
  135. package/schemas/rcasd-index.schema.json +0 -10
  136. package/schemas/rcasd-manifest.schema.json +0 -10
  137. package/schemas/rcasd-research-output.schema.json +0 -10
  138. package/schemas/rcasd-spec-frontmatter.schema.json +0 -10
  139. package/schemas/rcasd-stage-transition.schema.json +0 -38
  140. package/schemas/releases.schema.json +0 -267
  141. package/schemas/skills-manifest.schema.json +0 -91
  142. package/schemas/spec-index.schema.json +0 -196
  143. package/schemas/system-flow-atlas.schema.json +0 -125
  144. package/src/__tests__/audit-prune.test.d.ts.map +0 -1
  145. package/src/__tests__/audit-prune.test.js +0 -162
  146. package/src/__tests__/audit-prune.test.js.map +0 -1
  147. package/src/__tests__/caamp-skill-install.test.d.ts.map +0 -1
  148. package/src/__tests__/caamp-skill-install.test.js +0 -147
  149. package/src/__tests__/caamp-skill-install.test.js.map +0 -1
  150. package/src/__tests__/cli-parity.test.d.ts.map +0 -1
  151. package/src/__tests__/cli-parity.test.js +0 -209
  152. package/src/__tests__/cli-parity.test.js.map +0 -1
  153. package/src/__tests__/config.test.d.ts.map +0 -1
  154. package/src/__tests__/config.test.js +0 -144
  155. package/src/__tests__/config.test.js.map +0 -1
  156. package/src/__tests__/core-parity.test.d.ts.map +0 -1
  157. package/src/__tests__/core-parity.test.js +0 -645
  158. package/src/__tests__/core-parity.test.js.map +0 -1
  159. package/src/__tests__/error-catalog.test.d.ts.map +0 -1
  160. package/src/__tests__/error-catalog.test.js +0 -127
  161. package/src/__tests__/error-catalog.test.js.map +0 -1
  162. package/src/__tests__/golden-parity.test.d.ts.map +0 -1
  163. package/src/__tests__/golden-parity.test.js +0 -212
  164. package/src/__tests__/golden-parity.test.js.map +0 -1
  165. package/src/__tests__/hooks.test.d.ts.map +0 -1
  166. package/src/__tests__/hooks.test.js +0 -201
  167. package/src/__tests__/hooks.test.js.map +0 -1
  168. package/src/__tests__/human-output.test.d.ts.map +0 -1
  169. package/src/__tests__/human-output.test.js +0 -158
  170. package/src/__tests__/human-output.test.js.map +0 -1
  171. package/src/__tests__/index-api-compat.test.d.ts.map +0 -1
  172. package/src/__tests__/index-api-compat.test.js +0 -16
  173. package/src/__tests__/index-api-compat.test.js.map +0 -1
  174. package/src/__tests__/init-e2e.test.d.ts.map +0 -1
  175. package/src/__tests__/init-e2e.test.js +0 -221
  176. package/src/__tests__/init-e2e.test.js.map +0 -1
  177. package/src/__tests__/injection-chain.test.d.ts.map +0 -1
  178. package/src/__tests__/injection-chain.test.js +0 -234
  179. package/src/__tests__/injection-chain.test.js.map +0 -1
  180. package/src/__tests__/injection-mvi-tiers.test.d.ts.map +0 -1
  181. package/src/__tests__/injection-mvi-tiers.test.js +0 -152
  182. package/src/__tests__/injection-mvi-tiers.test.js.map +0 -1
  183. package/src/__tests__/injection-shared.test.d.ts.map +0 -1
  184. package/src/__tests__/injection-shared.test.js +0 -194
  185. package/src/__tests__/injection-shared.test.js.map +0 -1
  186. package/src/__tests__/lafs-conformance.test.d.ts.map +0 -1
  187. package/src/__tests__/lafs-conformance.test.js +0 -786
  188. package/src/__tests__/lafs-conformance.test.js.map +0 -1
  189. package/src/__tests__/logger.test.d.ts.map +0 -1
  190. package/src/__tests__/logger.test.js +0 -75
  191. package/src/__tests__/logger.test.js.map +0 -1
  192. package/src/__tests__/paths.test.d.ts.map +0 -1
  193. package/src/__tests__/paths.test.js +0 -327
  194. package/src/__tests__/paths.test.js.map +0 -1
  195. package/src/__tests__/project-info.test.d.ts.map +0 -1
  196. package/src/__tests__/project-info.test.js +0 -156
  197. package/src/__tests__/project-info.test.js.map +0 -1
  198. package/src/__tests__/rcsd-pipeline-e2e.test.d.ts.map +0 -1
  199. package/src/__tests__/rcsd-pipeline-e2e.test.js +0 -263
  200. package/src/__tests__/rcsd-pipeline-e2e.test.js.map +0 -1
  201. package/src/__tests__/remote.test.d.ts.map +0 -1
  202. package/src/__tests__/remote.test.js +0 -149
  203. package/src/__tests__/remote.test.js.map +0 -1
  204. package/src/__tests__/scaffold.test.d.ts.map +0 -1
  205. package/src/__tests__/scaffold.test.js +0 -474
  206. package/src/__tests__/scaffold.test.js.map +0 -1
  207. package/src/__tests__/schema-management.test.d.ts.map +0 -1
  208. package/src/__tests__/schema-management.test.js +0 -287
  209. package/src/__tests__/schema-management.test.js.map +0 -1
  210. package/src/__tests__/schema.test.d.ts.map +0 -1
  211. package/src/__tests__/schema.test.js +0 -51
  212. package/src/__tests__/schema.test.js.map +0 -1
  213. package/src/__tests__/sharing.test.d.ts.map +0 -1
  214. package/src/__tests__/sharing.test.js +0 -160
  215. package/src/__tests__/sharing.test.js.map +0 -1
  216. package/src/__tests__/snapshot.test.d.ts.map +0 -1
  217. package/src/__tests__/snapshot.test.js +0 -72
  218. package/src/__tests__/snapshot.test.js.map +0 -1
  219. package/src/__tests__/upgrade.test.d.ts.map +0 -1
  220. package/src/__tests__/upgrade.test.js +0 -321
  221. package/src/__tests__/upgrade.test.js.map +0 -1
  222. package/src/adapters/__tests__/discovery.test.d.ts.map +0 -1
  223. package/src/adapters/__tests__/discovery.test.js +0 -56
  224. package/src/adapters/__tests__/discovery.test.js.map +0 -1
  225. package/src/adapters/__tests__/manager.test.d.ts.map +0 -1
  226. package/src/adapters/__tests__/manager.test.js +0 -260
  227. package/src/adapters/__tests__/manager.test.js.map +0 -1
  228. package/src/agents/__tests__/agent-registry.test.d.ts.map +0 -1
  229. package/src/agents/__tests__/agent-registry.test.js +0 -262
  230. package/src/agents/__tests__/agent-registry.test.js.map +0 -1
  231. package/src/agents/__tests__/capacity.test.d.ts.map +0 -1
  232. package/src/agents/__tests__/capacity.test.js +0 -173
  233. package/src/agents/__tests__/capacity.test.js.map +0 -1
  234. package/src/agents/__tests__/execution-learning.test.d.ts.map +0 -1
  235. package/src/agents/__tests__/execution-learning.test.js +0 -533
  236. package/src/agents/__tests__/execution-learning.test.js.map +0 -1
  237. package/src/agents/__tests__/health-monitor.test.d.ts.map +0 -1
  238. package/src/agents/__tests__/health-monitor.test.js +0 -259
  239. package/src/agents/__tests__/health-monitor.test.js.map +0 -1
  240. package/src/agents/__tests__/registry.test.d.ts.map +0 -1
  241. package/src/agents/__tests__/registry.test.js +0 -373
  242. package/src/agents/__tests__/registry.test.js.map +0 -1
  243. package/src/agents/__tests__/retry.test.d.ts.map +0 -1
  244. package/src/agents/__tests__/retry.test.js +0 -225
  245. package/src/agents/__tests__/retry.test.js.map +0 -1
  246. package/src/cant/__tests__/cant-agent-parse.test.d.ts.map +0 -1
  247. package/src/cant/__tests__/cant-agent-parse.test.js +0 -77
  248. package/src/cant/__tests__/cant-agent-parse.test.js.map +0 -1
  249. package/src/cant/__tests__/cant-agent-parse.test.ts +0 -94
  250. package/src/cant/approval.ts +0 -218
  251. package/src/cant/context-builder.ts +0 -135
  252. package/src/cant/discretion.ts +0 -149
  253. package/src/cant/index.ts +0 -58
  254. package/src/cant/parallel-runner.ts +0 -205
  255. package/src/cant/types.ts +0 -158
  256. package/src/cant/workflow-executor.ts +0 -618
  257. package/src/compliance/__tests__/sync.test.d.ts.map +0 -1
  258. package/src/compliance/__tests__/sync.test.js +0 -119
  259. package/src/compliance/__tests__/sync.test.js.map +0 -1
  260. package/src/conduit/__tests__/dual-api-e2e.test.d.ts.map +0 -1
  261. package/src/conduit/__tests__/dual-api-e2e.test.js +0 -178
  262. package/src/conduit/__tests__/dual-api-e2e.test.js.map +0 -1
  263. package/src/conduit/__tests__/dual-api-e2e.test.ts +0 -212
  264. package/src/conduit/__tests__/local-credential-flow.test.d.ts.map +0 -1
  265. package/src/conduit/__tests__/local-credential-flow.test.js +0 -185
  266. package/src/conduit/__tests__/local-credential-flow.test.js.map +0 -1
  267. package/src/conduit/__tests__/local-transport.test.d.ts.map +0 -1
  268. package/src/conduit/__tests__/local-transport.test.js +0 -404
  269. package/src/conduit/__tests__/local-transport.test.js.map +0 -1
  270. package/src/conduit/__tests__/sse-transport.test.d.ts.map +0 -1
  271. package/src/conduit/__tests__/sse-transport.test.js +0 -291
  272. package/src/conduit/__tests__/sse-transport.test.js.map +0 -1
  273. package/src/hooks/__tests__/provider-hooks.test.d.ts.map +0 -1
  274. package/src/hooks/__tests__/provider-hooks.test.js +0 -33
  275. package/src/hooks/__tests__/provider-hooks.test.js.map +0 -1
  276. package/src/hooks/__tests__/registry.test.d.ts.map +0 -1
  277. package/src/hooks/__tests__/registry.test.js +0 -37
  278. package/src/hooks/__tests__/registry.test.js.map +0 -1
  279. package/src/hooks/handlers/__tests__/error-hooks.test.d.ts.map +0 -1
  280. package/src/hooks/handlers/__tests__/error-hooks.test.js +0 -90
  281. package/src/hooks/handlers/__tests__/error-hooks.test.js.map +0 -1
  282. package/src/hooks/handlers/__tests__/file-hooks.test.d.ts.map +0 -1
  283. package/src/hooks/handlers/__tests__/file-hooks.test.js +0 -128
  284. package/src/hooks/handlers/__tests__/file-hooks.test.js.map +0 -1
  285. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.d.ts.map +0 -1
  286. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js +0 -501
  287. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js.map +0 -1
  288. package/src/hooks/handlers/__tests__/session-hooks.test.d.ts.map +0 -1
  289. package/src/hooks/handlers/__tests__/session-hooks.test.js +0 -54
  290. package/src/hooks/handlers/__tests__/session-hooks.test.js.map +0 -1
  291. package/src/hooks/handlers/__tests__/task-hooks.test.d.ts.map +0 -1
  292. package/src/hooks/handlers/__tests__/task-hooks.test.js +0 -77
  293. package/src/hooks/handlers/__tests__/task-hooks.test.js.map +0 -1
  294. package/src/intelligence/__tests__/adaptive-validation.test.d.ts.map +0 -1
  295. package/src/intelligence/__tests__/adaptive-validation.test.js +0 -517
  296. package/src/intelligence/__tests__/adaptive-validation.test.js.map +0 -1
  297. package/src/intelligence/__tests__/impact.test.d.ts.map +0 -1
  298. package/src/intelligence/__tests__/impact.test.js +0 -515
  299. package/src/intelligence/__tests__/impact.test.js.map +0 -1
  300. package/src/intelligence/__tests__/patterns.test.d.ts.map +0 -1
  301. package/src/intelligence/__tests__/patterns.test.js +0 -370
  302. package/src/intelligence/__tests__/patterns.test.js.map +0 -1
  303. package/src/intelligence/__tests__/prediction.test.d.ts.map +0 -1
  304. package/src/intelligence/__tests__/prediction.test.js +0 -314
  305. package/src/intelligence/__tests__/prediction.test.js.map +0 -1
  306. package/src/lib/__tests__/retry.test.d.ts.map +0 -1
  307. package/src/lib/__tests__/retry.test.js +0 -225
  308. package/src/lib/__tests__/retry.test.js.map +0 -1
  309. package/src/lifecycle/__tests__/chain-store.test.d.ts.map +0 -1
  310. package/src/lifecycle/__tests__/chain-store.test.js +0 -243
  311. package/src/lifecycle/__tests__/chain-store.test.js.map +0 -1
  312. package/src/lifecycle/__tests__/consolidate-rcasd.test.d.ts.map +0 -1
  313. package/src/lifecycle/__tests__/consolidate-rcasd.test.js +0 -210
  314. package/src/lifecycle/__tests__/consolidate-rcasd.test.js.map +0 -1
  315. package/src/lifecycle/__tests__/default-chain.test.d.ts.map +0 -1
  316. package/src/lifecycle/__tests__/default-chain.test.js +0 -74
  317. package/src/lifecycle/__tests__/default-chain.test.js.map +0 -1
  318. package/src/lifecycle/__tests__/frontmatter.test.d.ts.map +0 -1
  319. package/src/lifecycle/__tests__/frontmatter.test.js +0 -229
  320. package/src/lifecycle/__tests__/frontmatter.test.js.map +0 -1
  321. package/src/lifecycle/__tests__/lifecycle.test.d.ts.map +0 -1
  322. package/src/lifecycle/__tests__/lifecycle.test.js +0 -126
  323. package/src/lifecycle/__tests__/lifecycle.test.js.map +0 -1
  324. package/src/lifecycle/__tests__/pipeline.integration.test.d.ts.map +0 -1
  325. package/src/lifecycle/__tests__/pipeline.integration.test.js +0 -977
  326. package/src/lifecycle/__tests__/pipeline.integration.test.js.map +0 -1
  327. package/src/lifecycle/__tests__/rcasd-paths.test.d.ts.map +0 -1
  328. package/src/lifecycle/__tests__/rcasd-paths.test.js +0 -206
  329. package/src/lifecycle/__tests__/rcasd-paths.test.js.map +0 -1
  330. package/src/lifecycle/__tests__/resume-schema-contract.test.d.ts.map +0 -1
  331. package/src/lifecycle/__tests__/resume-schema-contract.test.js +0 -246
  332. package/src/lifecycle/__tests__/resume-schema-contract.test.js.map +0 -1
  333. package/src/lifecycle/__tests__/stage-record-provenance.integration.test.d.ts.map +0 -1
  334. package/src/lifecycle/__tests__/stage-record-provenance.integration.test.js +0 -95
  335. package/src/lifecycle/__tests__/stage-record-provenance.integration.test.js.map +0 -1
  336. package/src/lifecycle/__tests__/tessera-engine.test.d.ts.map +0 -1
  337. package/src/lifecycle/__tests__/tessera-engine.test.js +0 -392
  338. package/src/lifecycle/__tests__/tessera-engine.test.js.map +0 -1
  339. package/src/memory/__tests__/auto-extract.test.d.ts.map +0 -1
  340. package/src/memory/__tests__/auto-extract.test.js +0 -197
  341. package/src/memory/__tests__/auto-extract.test.js.map +0 -1
  342. package/src/memory/__tests__/brain-automation.test.d.ts.map +0 -1
  343. package/src/memory/__tests__/brain-automation.test.js +0 -730
  344. package/src/memory/__tests__/brain-automation.test.js.map +0 -1
  345. package/src/memory/__tests__/brain-embedding.test.d.ts.map +0 -1
  346. package/src/memory/__tests__/brain-embedding.test.js +0 -92
  347. package/src/memory/__tests__/brain-embedding.test.js.map +0 -1
  348. package/src/memory/__tests__/brain-links.test.d.ts.map +0 -1
  349. package/src/memory/__tests__/brain-links.test.js +0 -221
  350. package/src/memory/__tests__/brain-links.test.js.map +0 -1
  351. package/src/memory/__tests__/brain-migration.test.d.ts.map +0 -1
  352. package/src/memory/__tests__/brain-migration.test.js +0 -180
  353. package/src/memory/__tests__/brain-migration.test.js.map +0 -1
  354. package/src/memory/__tests__/brain-retrieval.test.d.ts.map +0 -1
  355. package/src/memory/__tests__/brain-retrieval.test.js +0 -701
  356. package/src/memory/__tests__/brain-retrieval.test.js.map +0 -1
  357. package/src/memory/__tests__/brain-search.test.d.ts.map +0 -1
  358. package/src/memory/__tests__/brain-search.test.js +0 -180
  359. package/src/memory/__tests__/brain-search.test.js.map +0 -1
  360. package/src/memory/__tests__/claude-mem-migration.test.d.ts.map +0 -1
  361. package/src/memory/__tests__/claude-mem-migration.test.js +0 -424
  362. package/src/memory/__tests__/claude-mem-migration.test.js.map +0 -1
  363. package/src/memory/__tests__/decisions.test.d.ts.map +0 -1
  364. package/src/memory/__tests__/decisions.test.js +0 -253
  365. package/src/memory/__tests__/decisions.test.js.map +0 -1
  366. package/src/memory/__tests__/engine-compat.test.d.ts.map +0 -1
  367. package/src/memory/__tests__/engine-compat.test.js +0 -331
  368. package/src/memory/__tests__/engine-compat.test.js.map +0 -1
  369. package/src/memory/__tests__/memory-bridge.test.d.ts.map +0 -1
  370. package/src/memory/__tests__/memory-bridge.test.js +0 -231
  371. package/src/memory/__tests__/memory-bridge.test.js.map +0 -1
  372. package/src/memory/__tests__/pipeline-manifest-sqlite.test.d.ts.map +0 -1
  373. package/src/memory/__tests__/pipeline-manifest-sqlite.test.js +0 -516
  374. package/src/memory/__tests__/pipeline-manifest-sqlite.test.js.map +0 -1
  375. package/src/memory/__tests__/session-memory.test.d.ts.map +0 -1
  376. package/src/memory/__tests__/session-memory.test.js +0 -387
  377. package/src/memory/__tests__/session-memory.test.js.map +0 -1
  378. package/src/metrics/__tests__/model-provider-registry.test.d.ts.map +0 -1
  379. package/src/metrics/__tests__/model-provider-registry.test.js +0 -45
  380. package/src/metrics/__tests__/model-provider-registry.test.js.map +0 -1
  381. package/src/metrics/__tests__/provider-detection.test.d.ts.map +0 -1
  382. package/src/metrics/__tests__/provider-detection.test.js +0 -111
  383. package/src/metrics/__tests__/provider-detection.test.js.map +0 -1
  384. package/src/migration/__tests__/checksum.test.d.ts.map +0 -1
  385. package/src/migration/__tests__/checksum.test.js +0 -216
  386. package/src/migration/__tests__/checksum.test.js.map +0 -1
  387. package/src/migration/__tests__/logger.test.d.ts.map +0 -1
  388. package/src/migration/__tests__/logger.test.js +0 -256
  389. package/src/migration/__tests__/logger.test.js.map +0 -1
  390. package/src/migration/__tests__/migration-failure.integration.test.d.ts.map +0 -1
  391. package/src/migration/__tests__/migration-failure.integration.test.js +0 -515
  392. package/src/migration/__tests__/migration-failure.integration.test.js.map +0 -1
  393. package/src/migration/__tests__/migration.test.d.ts.map +0 -1
  394. package/src/migration/__tests__/migration.test.js +0 -82
  395. package/src/migration/__tests__/migration.test.js.map +0 -1
  396. package/src/migration/__tests__/state.test.d.ts.map +0 -1
  397. package/src/migration/__tests__/state.test.js +0 -330
  398. package/src/migration/__tests__/state.test.js.map +0 -1
  399. package/src/migration/__tests__/validate.test.d.ts.map +0 -1
  400. package/src/migration/__tests__/validate.test.js +0 -258
  401. package/src/migration/__tests__/validate.test.js.map +0 -1
  402. package/src/nexus/__tests__/deps.test.d.ts.map +0 -1
  403. package/src/nexus/__tests__/deps.test.js +0 -283
  404. package/src/nexus/__tests__/deps.test.js.map +0 -1
  405. package/src/nexus/__tests__/nexus-e2e.test.d.ts.map +0 -1
  406. package/src/nexus/__tests__/nexus-e2e.test.js +0 -1220
  407. package/src/nexus/__tests__/nexus-e2e.test.js.map +0 -1
  408. package/src/nexus/__tests__/permissions.test.d.ts.map +0 -1
  409. package/src/nexus/__tests__/permissions.test.js +0 -119
  410. package/src/nexus/__tests__/permissions.test.js.map +0 -1
  411. package/src/nexus/__tests__/query.test.d.ts.map +0 -1
  412. package/src/nexus/__tests__/query.test.js +0 -168
  413. package/src/nexus/__tests__/query.test.js.map +0 -1
  414. package/src/nexus/__tests__/reconcile.test.d.ts.map +0 -1
  415. package/src/nexus/__tests__/reconcile.test.js +0 -135
  416. package/src/nexus/__tests__/reconcile.test.js.map +0 -1
  417. package/src/nexus/__tests__/registry.test.d.ts.map +0 -1
  418. package/src/nexus/__tests__/registry.test.js +0 -229
  419. package/src/nexus/__tests__/registry.test.js.map +0 -1
  420. package/src/nexus/__tests__/transfer.test.d.ts.map +0 -1
  421. package/src/nexus/__tests__/transfer.test.js +0 -372
  422. package/src/nexus/__tests__/transfer.test.js.map +0 -1
  423. package/src/observability/__tests__/index.test.d.ts.map +0 -1
  424. package/src/observability/__tests__/index.test.js +0 -288
  425. package/src/observability/__tests__/index.test.js.map +0 -1
  426. package/src/observability/__tests__/log-filter.test.d.ts.map +0 -1
  427. package/src/observability/__tests__/log-filter.test.js +0 -151
  428. package/src/observability/__tests__/log-filter.test.js.map +0 -1
  429. package/src/observability/__tests__/log-parser.test.d.ts.map +0 -1
  430. package/src/observability/__tests__/log-parser.test.js +0 -170
  431. package/src/observability/__tests__/log-parser.test.js.map +0 -1
  432. package/src/observability/__tests__/log-reader.test.d.ts.map +0 -1
  433. package/src/observability/__tests__/log-reader.test.js +0 -150
  434. package/src/observability/__tests__/log-reader.test.js.map +0 -1
  435. package/src/orchestration/__tests__/autonomous-spec.test.d.ts.map +0 -1
  436. package/src/orchestration/__tests__/autonomous-spec.test.js +0 -419
  437. package/src/orchestration/__tests__/autonomous-spec.test.js.map +0 -1
  438. package/src/orchestration/__tests__/orchestration.test.d.ts.map +0 -1
  439. package/src/orchestration/__tests__/orchestration.test.js +0 -205
  440. package/src/orchestration/__tests__/orchestration.test.js.map +0 -1
  441. package/src/orchestration/__tests__/protocol-validators.test.d.ts.map +0 -1
  442. package/src/orchestration/__tests__/protocol-validators.test.js +0 -382
  443. package/src/orchestration/__tests__/protocol-validators.test.js.map +0 -1
  444. package/src/phases/__tests__/deps.test.d.ts.map +0 -1
  445. package/src/phases/__tests__/deps.test.js +0 -210
  446. package/src/phases/__tests__/deps.test.js.map +0 -1
  447. package/src/phases/__tests__/phases.test.d.ts.map +0 -1
  448. package/src/phases/__tests__/phases.test.js +0 -215
  449. package/src/phases/__tests__/phases.test.js.map +0 -1
  450. package/src/release/__tests__/artifacts.test.d.ts.map +0 -1
  451. package/src/release/__tests__/artifacts.test.js +0 -65
  452. package/src/release/__tests__/artifacts.test.js.map +0 -1
  453. package/src/release/__tests__/cancel-release.test.d.ts.map +0 -1
  454. package/src/release/__tests__/cancel-release.test.js +0 -154
  455. package/src/release/__tests__/cancel-release.test.js.map +0 -1
  456. package/src/release/__tests__/changelog-writer.test.d.ts.map +0 -1
  457. package/src/release/__tests__/changelog-writer.test.js +0 -132
  458. package/src/release/__tests__/changelog-writer.test.js.map +0 -1
  459. package/src/release/__tests__/push-policy.test.d.ts.map +0 -1
  460. package/src/release/__tests__/push-policy.test.js +0 -142
  461. package/src/release/__tests__/push-policy.test.js.map +0 -1
  462. package/src/release/__tests__/release.test.d.ts.map +0 -1
  463. package/src/release/__tests__/release.test.js +0 -25
  464. package/src/release/__tests__/release.test.js.map +0 -1
  465. package/src/sequence/__tests__/allocate.test.d.ts.map +0 -1
  466. package/src/sequence/__tests__/allocate.test.js +0 -113
  467. package/src/sequence/__tests__/allocate.test.js.map +0 -1
  468. package/src/sessions/__tests__/briefing-blocked.test.d.ts.map +0 -1
  469. package/src/sessions/__tests__/briefing-blocked.test.js +0 -117
  470. package/src/sessions/__tests__/briefing-blocked.test.js.map +0 -1
  471. package/src/sessions/__tests__/briefing.test.d.ts.map +0 -1
  472. package/src/sessions/__tests__/briefing.test.js +0 -336
  473. package/src/sessions/__tests__/briefing.test.js.map +0 -1
  474. package/src/sessions/__tests__/handoff-integration.test.d.ts.map +0 -1
  475. package/src/sessions/__tests__/handoff-integration.test.js +0 -264
  476. package/src/sessions/__tests__/handoff-integration.test.js.map +0 -1
  477. package/src/sessions/__tests__/handoff.test.d.ts.map +0 -1
  478. package/src/sessions/__tests__/handoff.test.js +0 -435
  479. package/src/sessions/__tests__/handoff.test.js.map +0 -1
  480. package/src/sessions/__tests__/index.test.d.ts.map +0 -1
  481. package/src/sessions/__tests__/index.test.js +0 -82
  482. package/src/sessions/__tests__/index.test.js.map +0 -1
  483. package/src/sessions/__tests__/session-cleanup.test.d.ts.map +0 -1
  484. package/src/sessions/__tests__/session-cleanup.test.js +0 -201
  485. package/src/sessions/__tests__/session-cleanup.test.js.map +0 -1
  486. package/src/sessions/__tests__/session-edge-cases.test.d.ts.map +0 -1
  487. package/src/sessions/__tests__/session-edge-cases.test.js +0 -251
  488. package/src/sessions/__tests__/session-edge-cases.test.js.map +0 -1
  489. package/src/sessions/__tests__/session-find.test.d.ts.map +0 -1
  490. package/src/sessions/__tests__/session-find.test.js +0 -210
  491. package/src/sessions/__tests__/session-find.test.js.map +0 -1
  492. package/src/sessions/__tests__/session-grade.integration.test.d.ts.map +0 -1
  493. package/src/sessions/__tests__/session-grade.integration.test.js +0 -287
  494. package/src/sessions/__tests__/session-grade.integration.test.js.map +0 -1
  495. package/src/sessions/__tests__/session-grade.test.d.ts.map +0 -1
  496. package/src/sessions/__tests__/session-grade.test.js +0 -630
  497. package/src/sessions/__tests__/session-grade.test.js.map +0 -1
  498. package/src/sessions/__tests__/session-memory-bridge.test.d.ts.map +0 -1
  499. package/src/sessions/__tests__/session-memory-bridge.test.js +0 -52
  500. package/src/sessions/__tests__/session-memory-bridge.test.js.map +0 -1
  501. package/src/sessions/__tests__/sessions.test.d.ts.map +0 -1
  502. package/src/sessions/__tests__/sessions.test.js +0 -113
  503. package/src/sessions/__tests__/sessions.test.js.map +0 -1
  504. package/src/skills/__tests__/discovery.test.d.ts.map +0 -1
  505. package/src/skills/__tests__/discovery.test.js +0 -171
  506. package/src/skills/__tests__/discovery.test.js.map +0 -1
  507. package/src/skills/__tests__/dispatch.test.d.ts.map +0 -1
  508. package/src/skills/__tests__/dispatch.test.js +0 -99
  509. package/src/skills/__tests__/dispatch.test.js.map +0 -1
  510. package/src/skills/__tests__/dynamic-skill-generator.test.d.ts.map +0 -1
  511. package/src/skills/__tests__/dynamic-skill-generator.test.js +0 -77
  512. package/src/skills/__tests__/dynamic-skill-generator.test.js.map +0 -1
  513. package/src/skills/__tests__/manifests.test.d.ts.map +0 -1
  514. package/src/skills/__tests__/manifests.test.js +0 -121
  515. package/src/skills/__tests__/manifests.test.js.map +0 -1
  516. package/src/skills/__tests__/precedence.test.d.ts.map +0 -1
  517. package/src/skills/__tests__/precedence.test.js +0 -325
  518. package/src/skills/__tests__/precedence.test.js.map +0 -1
  519. package/src/skills/__tests__/routing-table.test.d.ts.map +0 -1
  520. package/src/skills/__tests__/routing-table.test.js +0 -91
  521. package/src/skills/__tests__/routing-table.test.js.map +0 -1
  522. package/src/skills/__tests__/skill-paths.test.d.ts.map +0 -1
  523. package/src/skills/__tests__/skill-paths.test.js +0 -71
  524. package/src/skills/__tests__/skill-paths.test.js.map +0 -1
  525. package/src/skills/__tests__/test-utility.test.d.ts.map +0 -1
  526. package/src/skills/__tests__/test-utility.test.js +0 -59
  527. package/src/skills/__tests__/test-utility.test.js.map +0 -1
  528. package/src/skills/__tests__/token.test.d.ts.map +0 -1
  529. package/src/skills/__tests__/token.test.js +0 -135
  530. package/src/skills/__tests__/token.test.js.map +0 -1
  531. package/src/skills/__tests__/validation.test.d.ts.map +0 -1
  532. package/src/skills/__tests__/validation.test.js +0 -108
  533. package/src/skills/__tests__/validation.test.js.map +0 -1
  534. package/src/skills/__tests__/version.test.d.ts.map +0 -1
  535. package/src/skills/__tests__/version.test.js +0 -71
  536. package/src/skills/__tests__/version.test.js.map +0 -1
  537. package/src/skills/injection/__tests__/subagent.test.d.ts.map +0 -1
  538. package/src/skills/injection/__tests__/subagent.test.js +0 -122
  539. package/src/skills/injection/__tests__/subagent.test.js.map +0 -1
  540. package/src/skills/orchestrator/__tests__/spawn-tier.test.d.ts.map +0 -1
  541. package/src/skills/orchestrator/__tests__/spawn-tier.test.js +0 -228
  542. package/src/skills/orchestrator/__tests__/spawn-tier.test.js.map +0 -1
  543. package/src/spawn/__tests__/adapter-registry.test.d.ts.map +0 -1
  544. package/src/spawn/__tests__/adapter-registry.test.js +0 -76
  545. package/src/spawn/__tests__/adapter-registry.test.js.map +0 -1
  546. package/src/stats/__tests__/stats.test.d.ts.map +0 -1
  547. package/src/stats/__tests__/stats.test.js +0 -374
  548. package/src/stats/__tests__/stats.test.js.map +0 -1
  549. package/src/sticky/__tests__/purge.test.d.ts.map +0 -1
  550. package/src/sticky/__tests__/purge.test.js +0 -64
  551. package/src/sticky/__tests__/purge.test.js.map +0 -1
  552. package/src/store/__tests__/atomic.test.d.ts.map +0 -1
  553. package/src/store/__tests__/atomic.test.js +0 -81
  554. package/src/store/__tests__/atomic.test.js.map +0 -1
  555. package/src/store/__tests__/backup.test.d.ts.map +0 -1
  556. package/src/store/__tests__/backup.test.js +0 -131
  557. package/src/store/__tests__/backup.test.js.map +0 -1
  558. package/src/store/__tests__/brain-accessor-pageindex.test.d.ts.map +0 -1
  559. package/src/store/__tests__/brain-accessor-pageindex.test.js +0 -179
  560. package/src/store/__tests__/brain-accessor-pageindex.test.js.map +0 -1
  561. package/src/store/__tests__/brain-accessor.test.d.ts.map +0 -1
  562. package/src/store/__tests__/brain-accessor.test.js +0 -398
  563. package/src/store/__tests__/brain-accessor.test.js.map +0 -1
  564. package/src/store/__tests__/brain-pageindex.test.d.ts.map +0 -1
  565. package/src/store/__tests__/brain-pageindex.test.js +0 -137
  566. package/src/store/__tests__/brain-pageindex.test.js.map +0 -1
  567. package/src/store/__tests__/brain-schema.test.d.ts.map +0 -1
  568. package/src/store/__tests__/brain-schema.test.js +0 -137
  569. package/src/store/__tests__/brain-schema.test.js.map +0 -1
  570. package/src/store/__tests__/brain-vec.test.d.ts.map +0 -1
  571. package/src/store/__tests__/brain-vec.test.js +0 -100
  572. package/src/store/__tests__/brain-vec.test.js.map +0 -1
  573. package/src/store/__tests__/collision-detection.test.d.ts.map +0 -1
  574. package/src/store/__tests__/collision-detection.test.js +0 -165
  575. package/src/store/__tests__/collision-detection.test.js.map +0 -1
  576. package/src/store/__tests__/data-safety-central.test.d.ts.map +0 -1
  577. package/src/store/__tests__/data-safety-central.test.js +0 -408
  578. package/src/store/__tests__/data-safety-central.test.js.map +0 -1
  579. package/src/store/__tests__/db-helpers.test.d.ts.map +0 -1
  580. package/src/store/__tests__/db-helpers.test.js +0 -101
  581. package/src/store/__tests__/db-helpers.test.js.map +0 -1
  582. package/src/store/__tests__/e2e-safety-integration.test.d.ts.map +0 -1
  583. package/src/store/__tests__/e2e-safety-integration.test.js +0 -402
  584. package/src/store/__tests__/e2e-safety-integration.test.js.map +0 -1
  585. package/src/store/__tests__/git-checkpoint.test.d.ts.map +0 -1
  586. package/src/store/__tests__/git-checkpoint.test.js +0 -133
  587. package/src/store/__tests__/git-checkpoint.test.js.map +0 -1
  588. package/src/store/__tests__/idempotent-migration.test.d.ts.map +0 -1
  589. package/src/store/__tests__/idempotent-migration.test.js +0 -172
  590. package/src/store/__tests__/idempotent-migration.test.js.map +0 -1
  591. package/src/store/__tests__/import-logging.test.d.ts.map +0 -1
  592. package/src/store/__tests__/import-logging.test.js +0 -92
  593. package/src/store/__tests__/import-logging.test.js.map +0 -1
  594. package/src/store/__tests__/import-sort.test.d.ts.map +0 -1
  595. package/src/store/__tests__/import-sort.test.js +0 -109
  596. package/src/store/__tests__/import-sort.test.js.map +0 -1
  597. package/src/store/__tests__/json.test.d.ts.map +0 -1
  598. package/src/store/__tests__/json.test.js +0 -98
  599. package/src/store/__tests__/json.test.js.map +0 -1
  600. package/src/store/__tests__/lifecycle-schema-parity.test.d.ts.map +0 -1
  601. package/src/store/__tests__/lifecycle-schema-parity.test.js +0 -90
  602. package/src/store/__tests__/lifecycle-schema-parity.test.js.map +0 -1
  603. package/src/store/__tests__/migration-integration.test.d.ts.map +0 -1
  604. package/src/store/__tests__/migration-integration.test.js +0 -238
  605. package/src/store/__tests__/migration-integration.test.js.map +0 -1
  606. package/src/store/__tests__/migration-retry.test.d.ts.map +0 -1
  607. package/src/store/__tests__/migration-retry.test.js +0 -178
  608. package/src/store/__tests__/migration-retry.test.js.map +0 -1
  609. package/src/store/__tests__/migration-safety.test.d.ts.map +0 -1
  610. package/src/store/__tests__/migration-safety.test.js +0 -756
  611. package/src/store/__tests__/migration-safety.test.js.map +0 -1
  612. package/src/store/__tests__/migration-sqlite.test.d.ts.map +0 -1
  613. package/src/store/__tests__/migration-sqlite.test.js +0 -544
  614. package/src/store/__tests__/migration-sqlite.test.js.map +0 -1
  615. package/src/store/__tests__/performance-safety.test.d.ts.map +0 -1
  616. package/src/store/__tests__/performance-safety.test.js +0 -157
  617. package/src/store/__tests__/performance-safety.test.js.map +0 -1
  618. package/src/store/__tests__/project-detect.test.d.ts.map +0 -1
  619. package/src/store/__tests__/project-detect.test.js +0 -609
  620. package/src/store/__tests__/project-detect.test.js.map +0 -1
  621. package/src/store/__tests__/project-registry.test.d.ts.map +0 -1
  622. package/src/store/__tests__/project-registry.test.js +0 -28
  623. package/src/store/__tests__/project-registry.test.js.map +0 -1
  624. package/src/store/__tests__/provider.test.d.ts.map +0 -1
  625. package/src/store/__tests__/provider.test.js +0 -15
  626. package/src/store/__tests__/provider.test.js.map +0 -1
  627. package/src/store/__tests__/relations.test.d.ts.map +0 -1
  628. package/src/store/__tests__/relations.test.js +0 -318
  629. package/src/store/__tests__/relations.test.js.map +0 -1
  630. package/src/store/__tests__/safety-accessor.test.d.ts.map +0 -1
  631. package/src/store/__tests__/safety-accessor.test.js +0 -219
  632. package/src/store/__tests__/safety-accessor.test.js.map +0 -1
  633. package/src/store/__tests__/sequence-validation.test.d.ts.map +0 -1
  634. package/src/store/__tests__/sequence-validation.test.js +0 -94
  635. package/src/store/__tests__/sequence-validation.test.js.map +0 -1
  636. package/src/store/__tests__/session-store.test.d.ts.map +0 -1
  637. package/src/store/__tests__/session-store.test.js +0 -463
  638. package/src/store/__tests__/session-store.test.js.map +0 -1
  639. package/src/store/__tests__/sqlite-backup.test.d.ts.map +0 -1
  640. package/src/store/__tests__/sqlite-backup.test.js +0 -72
  641. package/src/store/__tests__/sqlite-backup.test.js.map +0 -1
  642. package/src/store/__tests__/sqlite.test.d.ts.map +0 -1
  643. package/src/store/__tests__/sqlite.test.js +0 -256
  644. package/src/store/__tests__/sqlite.test.js.map +0 -1
  645. package/src/store/__tests__/task-store.test.d.ts.map +0 -1
  646. package/src/store/__tests__/task-store.test.js +0 -514
  647. package/src/store/__tests__/task-store.test.js.map +0 -1
  648. package/src/store/__tests__/test-db-helper.d.ts.map +0 -1
  649. package/src/store/__tests__/test-db-helper.js +0 -110
  650. package/src/store/__tests__/test-db-helper.js.map +0 -1
  651. package/src/store/__tests__/write-verification.test.d.ts.map +0 -1
  652. package/src/store/__tests__/write-verification.test.js +0 -185
  653. package/src/store/__tests__/write-verification.test.js.map +0 -1
  654. package/src/system/__tests__/cleanup.test.d.ts.map +0 -1
  655. package/src/system/__tests__/cleanup.test.js +0 -87
  656. package/src/system/__tests__/cleanup.test.js.map +0 -1
  657. package/src/system/__tests__/health.test.d.ts.map +0 -1
  658. package/src/system/__tests__/health.test.js +0 -55
  659. package/src/system/__tests__/health.test.js.map +0 -1
  660. package/src/task-work/__tests__/start-deps.test.d.ts.map +0 -1
  661. package/src/task-work/__tests__/start-deps.test.js +0 -152
  662. package/src/task-work/__tests__/start-deps.test.js.map +0 -1
  663. package/src/tasks/__tests__/add.test.d.ts.map +0 -1
  664. package/src/tasks/__tests__/add.test.js +0 -226
  665. package/src/tasks/__tests__/add.test.js.map +0 -1
  666. package/src/tasks/__tests__/archive.test.d.ts.map +0 -1
  667. package/src/tasks/__tests__/archive.test.js +0 -196
  668. package/src/tasks/__tests__/archive.test.js.map +0 -1
  669. package/src/tasks/__tests__/assignee.test.d.ts.map +0 -1
  670. package/src/tasks/__tests__/assignee.test.js +0 -125
  671. package/src/tasks/__tests__/assignee.test.js.map +0 -1
  672. package/src/tasks/__tests__/atomicity.test.d.ts.map +0 -1
  673. package/src/tasks/__tests__/atomicity.test.js +0 -192
  674. package/src/tasks/__tests__/atomicity.test.js.map +0 -1
  675. package/src/tasks/__tests__/cancel-ops.test.d.ts.map +0 -1
  676. package/src/tasks/__tests__/cancel-ops.test.js +0 -115
  677. package/src/tasks/__tests__/cancel-ops.test.js.map +0 -1
  678. package/src/tasks/__tests__/complete-unblocks.test.d.ts.map +0 -1
  679. package/src/tasks/__tests__/complete-unblocks.test.js +0 -151
  680. package/src/tasks/__tests__/complete-unblocks.test.js.map +0 -1
  681. package/src/tasks/__tests__/complete.test.d.ts.map +0 -1
  682. package/src/tasks/__tests__/complete.test.js +0 -230
  683. package/src/tasks/__tests__/complete.test.js.map +0 -1
  684. package/src/tasks/__tests__/delete.test.d.ts.map +0 -1
  685. package/src/tasks/__tests__/delete.test.js +0 -183
  686. package/src/tasks/__tests__/delete.test.js.map +0 -1
  687. package/src/tasks/__tests__/dependency-check.test.d.ts.map +0 -1
  688. package/src/tasks/__tests__/dependency-check.test.js +0 -293
  689. package/src/tasks/__tests__/dependency-check.test.js.map +0 -1
  690. package/src/tasks/__tests__/deps-ready.test.d.ts.map +0 -1
  691. package/src/tasks/__tests__/deps-ready.test.js +0 -68
  692. package/src/tasks/__tests__/deps-ready.test.js.map +0 -1
  693. package/src/tasks/__tests__/epic-enforcement.test.d.ts.map +0 -1
  694. package/src/tasks/__tests__/epic-enforcement.test.js +0 -669
  695. package/src/tasks/__tests__/epic-enforcement.test.js.map +0 -1
  696. package/src/tasks/__tests__/find.test.d.ts.map +0 -1
  697. package/src/tasks/__tests__/find.test.js +0 -163
  698. package/src/tasks/__tests__/find.test.js.map +0 -1
  699. package/src/tasks/__tests__/graph-ops.test.d.ts.map +0 -1
  700. package/src/tasks/__tests__/graph-ops.test.js +0 -174
  701. package/src/tasks/__tests__/graph-ops.test.js.map +0 -1
  702. package/src/tasks/__tests__/hierarchy-policy.test.d.ts.map +0 -1
  703. package/src/tasks/__tests__/hierarchy-policy.test.js +0 -399
  704. package/src/tasks/__tests__/hierarchy-policy.test.js.map +0 -1
  705. package/src/tasks/__tests__/hierarchy.test.d.ts.map +0 -1
  706. package/src/tasks/__tests__/hierarchy.test.js +0 -302
  707. package/src/tasks/__tests__/hierarchy.test.js.map +0 -1
  708. package/src/tasks/__tests__/id-generator.test.d.ts.map +0 -1
  709. package/src/tasks/__tests__/id-generator.test.js +0 -59
  710. package/src/tasks/__tests__/id-generator.test.js.map +0 -1
  711. package/src/tasks/__tests__/labels.test.d.ts.map +0 -1
  712. package/src/tasks/__tests__/labels.test.js +0 -173
  713. package/src/tasks/__tests__/labels.test.js.map +0 -1
  714. package/src/tasks/__tests__/list.test.d.ts.map +0 -1
  715. package/src/tasks/__tests__/list.test.js +0 -272
  716. package/src/tasks/__tests__/list.test.js.map +0 -1
  717. package/src/tasks/__tests__/minimal-test.test.d.ts.map +0 -1
  718. package/src/tasks/__tests__/minimal-test.test.js +0 -25
  719. package/src/tasks/__tests__/minimal-test.test.js.map +0 -1
  720. package/src/tasks/__tests__/phase-tracking.test.d.ts.map +0 -1
  721. package/src/tasks/__tests__/phase-tracking.test.js +0 -209
  722. package/src/tasks/__tests__/phase-tracking.test.js.map +0 -1
  723. package/src/tasks/__tests__/pipeline-stage.test.d.ts.map +0 -1
  724. package/src/tasks/__tests__/pipeline-stage.test.js +0 -277
  725. package/src/tasks/__tests__/pipeline-stage.test.js.map +0 -1
  726. package/src/tasks/__tests__/plan-priority.test.d.ts.map +0 -1
  727. package/src/tasks/__tests__/plan-priority.test.js +0 -133
  728. package/src/tasks/__tests__/plan-priority.test.js.map +0 -1
  729. package/src/tasks/__tests__/priority-normalization.test.d.ts.map +0 -1
  730. package/src/tasks/__tests__/priority-normalization.test.js +0 -117
  731. package/src/tasks/__tests__/priority-normalization.test.js.map +0 -1
  732. package/src/tasks/__tests__/relates.test.d.ts.map +0 -1
  733. package/src/tasks/__tests__/relates.test.js +0 -84
  734. package/src/tasks/__tests__/relates.test.js.map +0 -1
  735. package/src/tasks/__tests__/show-deps.test.d.ts.map +0 -1
  736. package/src/tasks/__tests__/show-deps.test.js +0 -182
  737. package/src/tasks/__tests__/show-deps.test.js.map +0 -1
  738. package/src/tasks/__tests__/show.test.d.ts.map +0 -1
  739. package/src/tasks/__tests__/show.test.js +0 -126
  740. package/src/tasks/__tests__/show.test.js.map +0 -1
  741. package/src/tasks/__tests__/staleness.test.d.ts.map +0 -1
  742. package/src/tasks/__tests__/staleness.test.js +0 -154
  743. package/src/tasks/__tests__/staleness.test.js.map +0 -1
  744. package/src/tasks/__tests__/task-ops-depends.test.d.ts.map +0 -1
  745. package/src/tasks/__tests__/task-ops-depends.test.js +0 -118
  746. package/src/tasks/__tests__/task-ops-depends.test.js.map +0 -1
  747. package/src/tasks/__tests__/update.test.d.ts.map +0 -1
  748. package/src/tasks/__tests__/update.test.js +0 -320
  749. package/src/tasks/__tests__/update.test.js.map +0 -1
  750. package/src/validation/__tests__/chain-validation.test.d.ts.map +0 -1
  751. package/src/validation/__tests__/chain-validation.test.js +0 -204
  752. package/src/validation/__tests__/chain-validation.test.js.map +0 -1
  753. package/src/validation/__tests__/compliance.test.d.ts.map +0 -1
  754. package/src/validation/__tests__/compliance.test.js +0 -83
  755. package/src/validation/__tests__/compliance.test.js.map +0 -1
  756. package/src/validation/__tests__/docs-sync.test.d.ts.map +0 -1
  757. package/src/validation/__tests__/docs-sync.test.js +0 -243
  758. package/src/validation/__tests__/docs-sync.test.js.map +0 -1
  759. package/src/validation/__tests__/doctor-gitignore.test.d.ts.map +0 -1
  760. package/src/validation/__tests__/doctor-gitignore.test.js +0 -154
  761. package/src/validation/__tests__/doctor-gitignore.test.js.map +0 -1
  762. package/src/validation/__tests__/doctor-injection.test.d.ts.map +0 -1
  763. package/src/validation/__tests__/doctor-injection.test.js +0 -230
  764. package/src/validation/__tests__/doctor-injection.test.js.map +0 -1
  765. package/src/validation/__tests__/doctor.test.d.ts.map +0 -1
  766. package/src/validation/__tests__/doctor.test.js +0 -202
  767. package/src/validation/__tests__/doctor.test.js.map +0 -1
  768. package/src/validation/__tests__/engine.test.d.ts.map +0 -1
  769. package/src/validation/__tests__/engine.test.js +0 -346
  770. package/src/validation/__tests__/engine.test.js.map +0 -1
  771. package/src/validation/__tests__/manifest.test.d.ts.map +0 -1
  772. package/src/validation/__tests__/manifest.test.js +0 -244
  773. package/src/validation/__tests__/manifest.test.js.map +0 -1
  774. package/src/validation/__tests__/protocol-common.test.d.ts.map +0 -1
  775. package/src/validation/__tests__/protocol-common.test.js +0 -112
  776. package/src/validation/__tests__/protocol-common.test.js.map +0 -1
  777. package/src/validation/__tests__/verification.test.d.ts.map +0 -1
  778. package/src/validation/__tests__/verification.test.js +0 -277
  779. package/src/validation/__tests__/verification.test.js.map +0 -1
  780. package/src/validation/protocols/release-protocol.ts +0 -80
  781. package/src/validation/protocols/testing-protocol.ts +0 -93
  782. package/src/validation/protocols/validation-protocol.ts +0 -93
@@ -1,645 +0,0 @@
1
- /**
2
- * CLI/MCP Core Parity Integration Tests
3
- *
4
- * Verifies that MCP engine functions delegate to src/core/ modules
5
- * and that both paths produce equivalent results for shared operations.
6
- *
7
- * Test categories:
8
- * 1. Import graph verification — engine files import from core
9
- * 2. Task CRUD data parity — core vs engine return identical task data
10
- * 3. Session operations parity — core vs engine session state
11
- * 4. Lifecycle operations parity — core vs engine lifecycle info
12
- *
13
- * @task T4796
14
- * @epic T4654
15
- */
16
- import { mkdir, mkdtemp, readFile, rm } from 'node:fs/promises';
17
- import { tmpdir } from 'node:os';
18
- import { join } from 'node:path';
19
- import { afterEach, beforeEach, describe, expect, it } from 'vitest';
20
- import { closeLogger, initLogger } from '../logger.js';
21
- // ============================================================================
22
- // Section 1: Import Graph Verification
23
- //
24
- // Verifies that engine files delegate to src/core/ rather than duplicating
25
- // business logic inline. This is a structural test that reads source files.
26
- //
27
- // Note: Multi-line import statements like:
28
- // import {
29
- // foo,
30
- // } from '../../core/bar.js';
31
- // have `from` on a separate line from `import`, so we match `from` lines.
32
- // ============================================================================
33
- describe('Import Graph Verification (T4796)', () => {
34
- const ENGINE_FILES = [
35
- // task-engine.ts deleted — moved to src/dispatch/engines/task-engine.ts (T5100)
36
- // session-engine.ts deleted — moved to src/dispatch/engines/session-engine.ts
37
- // lifecycle-engine.ts deleted — moved to src/dispatch/engines/lifecycle-engine.ts
38
- // system-engine.ts deleted — moved to src/dispatch/engines/system-engine.ts (T5107)
39
- // orchestrate-engine.ts deleted — moved to src/dispatch/engines/orchestrate-engine.ts (T5108)
40
- // validate-engine.ts deleted — moved to src/dispatch/engines/validate-engine.ts (T5109-T5111)
41
- ];
42
- const ENGINE_DIR = join(process.cwd(), 'src', 'mcp', 'engine');
43
- for (const file of ENGINE_FILES) {
44
- describe(`${file}`, () => {
45
- it('imports from @cleocode/core or ../../store/', async () => {
46
- const filePath = join(ENGINE_DIR, file);
47
- const content = await readFile(filePath, 'utf-8');
48
- // Match `from '...'` lines (handles multi-line imports)
49
- // T5718: engines now import via @cleocode/core (not relative ../../core/)
50
- const fromLines = content.split('\n').filter((line) => line.match(/from\s+['"]/));
51
- const coreImports = fromLines.filter((line) => line.includes("'@cleocode/core'") || line.includes('../store/'));
52
- // Every engine file should have at least one core/store import
53
- expect(coreImports.length).toBeGreaterThanOrEqual(1);
54
- });
55
- it('has meaningful core delegation', async () => {
56
- const filePath = join(ENGINE_DIR, file);
57
- const content = await readFile(filePath, 'utf-8');
58
- // Match all `from '...'` lines
59
- // T5718: engines import core via @cleocode/core package
60
- const fromLines = content
61
- .split('\n')
62
- .filter((line) => line.match(/from\s+['"]/))
63
- .filter((line) => !line.includes("'node:"))
64
- .filter((line) => !line.includes("'vitest"));
65
- // Count @cleocode/core + store imports
66
- const coreImports = fromLines.filter((line) => line.includes("'@cleocode/core'") || line.includes('../store/'));
67
- // Core imports should exist
68
- if (fromLines.length > 0) {
69
- expect(coreImports.length).toBeGreaterThanOrEqual(1);
70
- }
71
- });
72
- });
73
- }
74
- it('task-engine.ts imports core CRUD functions via @cleocode/core', async () => {
75
- // task-engine.ts moved to src/dispatch/engines/task-engine.ts (T5100)
76
- // T5718: imports rewired from relative ../../core/ to @cleocode/core
77
- const dispatchEngineDir = join(process.cwd(), 'src', 'dispatch', 'engines');
78
- const content = await readFile(join(dispatchEngineDir, 'task-engine.ts'), 'utf-8');
79
- // Core task functions are now imported via @cleocode/core (T5718)
80
- expect(content).toContain("from '@cleocode/core'");
81
- // Verify the key task functions are imported
82
- expect(content).toContain('addTask');
83
- expect(content).toContain('showTask');
84
- expect(content).toContain('listTasks');
85
- expect(content).toContain('findTasks');
86
- expect(content).toContain('updateTask');
87
- expect(content).toContain('deleteTask');
88
- expect(content).toContain('archiveTasks');
89
- });
90
- it('dispatch session-engine.ts imports core session/task-work functions via @cleocode/core', async () => {
91
- // T5718: imports rewired from relative ../../core/ to @cleocode/core
92
- const dispatchEngineDir = join(process.cwd(), 'src', 'dispatch', 'engines');
93
- const content = await readFile(join(dispatchEngineDir, 'session-engine.ts'), 'utf-8');
94
- expect(content).toContain("from '@cleocode/core'");
95
- // Verify session and task-work functions are present
96
- // (session engine builds sessions via parseScope/generateSessionId rather than startSession/endSession)
97
- expect(content).toContain('parseScope');
98
- expect(content).toContain('computeHandoff');
99
- expect(content).toContain('startTask');
100
- expect(content).toContain('stopTask');
101
- });
102
- it('lifecycle-engine.ts imports core lifecycle functions via @cleocode/core', async () => {
103
- // lifecycle-engine.ts moved to src/dispatch/engines/lifecycle-engine.ts
104
- // T5718: imports rewired from relative ../../core/ to @cleocode/core
105
- const dispatchEngineDir = join(process.cwd(), 'src', 'dispatch', 'engines');
106
- const content = await readFile(join(dispatchEngineDir, 'lifecycle-engine.ts'), 'utf-8');
107
- expect(content).toContain("from '@cleocode/core'");
108
- expect(content).toContain('getLifecycleStatus');
109
- expect(content).toContain('recordStageProgress');
110
- });
111
- it('validate-engine.ts imports core validation functions via @cleocode/core', async () => {
112
- // T5718: imports rewired from relative ../../core/ to @cleocode/core
113
- const dispatchEngineDir = join(process.cwd(), 'src', 'dispatch', 'engines');
114
- const content = await readFile(join(dispatchEngineDir, 'validate-engine.ts'), 'utf-8');
115
- expect(content).toContain("from '@cleocode/core'");
116
- expect(content).toContain('coreValidateSchema');
117
- expect(content).toContain('coreValidateTask');
118
- });
119
- it('system-engine.ts imports core system functions via @cleocode/core', async () => {
120
- // T5718: imports rewired from relative ../../core/ to @cleocode/core
121
- const dispatchEngineDir = join(process.cwd(), 'src', 'dispatch', 'engines');
122
- const content = await readFile(join(dispatchEngineDir, 'system-engine.ts'), 'utf-8');
123
- expect(content).toContain("from '@cleocode/core'");
124
- expect(content).toContain('getProjectStats');
125
- expect(content).toContain('getSystemHealth');
126
- });
127
- it('orchestrate-engine.ts imports core orchestration functions via @cleocode/core', async () => {
128
- // T5718: imports rewired from relative ../../core/ to @cleocode/core
129
- const dispatchEngineDir = join(process.cwd(), 'src', 'dispatch', 'engines');
130
- const content = await readFile(join(dispatchEngineDir, 'orchestrate-engine.ts'), 'utf-8');
131
- expect(content).toContain("from '@cleocode/core'");
132
- expect(content).toContain('analyzeEpic');
133
- expect(content).toContain('prepareSpawn');
134
- });
135
- // research-engine.ts has been consolidated into core/memory/engine-compat.ts
136
- });
137
- // ============================================================================
138
- // Shared fixture helper
139
- // ============================================================================
140
- /**
141
- * Create a minimal .cleo project directory with required files.
142
- * Seeds task data into SQLite (ADR-006 canonical storage).
143
- * Returns { testDir, cleoDir }.
144
- */
145
- async function createTestProject(prefix, tasksJson) {
146
- const testDir = await mkdtemp(join(tmpdir(), prefix));
147
- const cleoDir = join(testDir, '.cleo');
148
- await mkdir(cleoDir, { recursive: true });
149
- await mkdir(join(cleoDir, 'backups', 'operational'), { recursive: true });
150
- // Seed tasks into SQLite via the task store
151
- const { getDb } = await import('../store/sqlite.js');
152
- const { createTask } = await import('../store/task-store.js');
153
- await getDb(testDir);
154
- const tasks = tasksJson.tasks ?? [];
155
- for (const task of tasks) {
156
- await createTask(task, testDir);
157
- }
158
- return { testDir, cleoDir };
159
- }
160
- // ============================================================================
161
- // Section 2: Task CRUD Data Parity
162
- //
163
- // Creates a temp project dir with a valid tasks.json, then verifies that
164
- // calling core functions directly and engine wrapper functions produce
165
- // equivalent results (stripping the EngineResult wrapper).
166
- // ============================================================================
167
- describe('Task CRUD Data Parity (T4796)', () => {
168
- let testDir;
169
- let cleoDir;
170
- const TASKS_JSON = {
171
- version: '2.10.0',
172
- project: {
173
- name: 'Parity Test',
174
- phases: {
175
- core: { order: 1, name: 'Core', status: 'active' },
176
- },
177
- },
178
- lastUpdated: '2026-01-01T00:00:00Z',
179
- _meta: {
180
- schemaVersion: '2.10.0',
181
- specVersion: '0.1.0',
182
- checksum: 'abc',
183
- configVersion: '2.0.0',
184
- },
185
- focus: {},
186
- tasks: [
187
- {
188
- id: 'T001',
189
- title: 'Test task alpha',
190
- description: 'First test task for parity testing',
191
- status: 'pending',
192
- priority: 'high',
193
- phase: 'core',
194
- type: 'task',
195
- createdAt: '2026-01-01T00:00:00Z',
196
- updatedAt: null,
197
- },
198
- {
199
- id: 'T002',
200
- title: 'Test task beta',
201
- description: 'Second test task for parity testing',
202
- status: 'done',
203
- priority: 'medium',
204
- phase: 'core',
205
- type: 'task',
206
- createdAt: '2026-01-02T00:00:00Z',
207
- updatedAt: null,
208
- completedAt: '2026-01-05T00:00:00Z',
209
- },
210
- {
211
- id: 'T003',
212
- title: 'Subtask of T001',
213
- description: 'A child task',
214
- status: 'pending',
215
- priority: 'low',
216
- phase: 'core',
217
- type: 'subtask',
218
- parentId: 'T001',
219
- createdAt: '2026-01-03T00:00:00Z',
220
- updatedAt: null,
221
- },
222
- ],
223
- };
224
- beforeEach(async () => {
225
- const project = await createTestProject('cleo-parity-', TASKS_JSON);
226
- testDir = project.testDir;
227
- cleoDir = project.cleoDir;
228
- process.env['CLEO_DIR'] = cleoDir;
229
- initLogger(cleoDir, {
230
- level: 'fatal',
231
- filePath: 'logs/test.log',
232
- maxFileSize: 1024 * 1024,
233
- maxFiles: 1,
234
- });
235
- });
236
- afterEach(async () => {
237
- await closeLogger();
238
- delete process.env['CLEO_DIR'];
239
- try {
240
- const { closeAllDatabases } = await import('../store/sqlite.js');
241
- await closeAllDatabases();
242
- }
243
- catch {
244
- /* ignore */
245
- }
246
- await Promise.race([
247
- rm(testDir, { recursive: true, force: true }).catch(() => { }),
248
- new Promise((resolve) => setTimeout(resolve, 8_000)),
249
- ]);
250
- });
251
- it('taskShow returns same task data as core showTask', async () => {
252
- const { showTask } = await import('../tasks/show.js');
253
- const { taskShow } = await import('../../dispatch/engines/task-engine.js');
254
- const { getAccessor } = await import('../store/data-accessor.js');
255
- const accessor = await getAccessor(testDir);
256
- // Call core directly
257
- const coreResult = await showTask('T001', testDir, accessor);
258
- // Call engine wrapper
259
- const engineResult = await taskShow(testDir, 'T001');
260
- // Both should succeed
261
- expect(engineResult.success).toBe(true);
262
- expect(engineResult.data).toBeDefined();
263
- // Compare key fields (engine wraps core result in { task: ... })
264
- expect(engineResult.data.task.id).toBe(coreResult.id);
265
- expect(engineResult.data.task.title).toBe(coreResult.title);
266
- expect(engineResult.data.task.status).toBe(coreResult.status);
267
- expect(engineResult.data.task.priority).toBe(coreResult.priority);
268
- });
269
- it('taskShow and core showTask both fail for missing task', async () => {
270
- const { showTask } = await import('../tasks/show.js');
271
- const { taskShow } = await import('../../dispatch/engines/task-engine.js');
272
- const { getAccessor } = await import('../store/data-accessor.js');
273
- const accessor = await getAccessor(testDir);
274
- // Core should throw
275
- await expect(showTask('T999', testDir, accessor)).rejects.toThrow();
276
- // Engine should return error (may be E_NOT_FOUND or E_NOT_INITIALIZED
277
- // depending on where the error is caught in the engine)
278
- const engineResult = await taskShow(testDir, 'T999');
279
- expect(engineResult.success).toBe(false);
280
- expect(engineResult.error?.code).toMatch(/^E_/);
281
- });
282
- it('taskList returns same tasks as core listTasks', async () => {
283
- const { listTasks } = await import('../tasks/list.js');
284
- const { taskList } = await import('../../dispatch/engines/task-engine.js');
285
- const { getAccessor } = await import('../store/data-accessor.js');
286
- const accessor = await getAccessor(testDir);
287
- // Call core
288
- const coreResult = await listTasks({}, testDir, accessor);
289
- // Call engine
290
- const engineResult = await taskList(testDir);
291
- expect(engineResult.success).toBe(true);
292
- expect(engineResult.data).toBeDefined();
293
- expect(engineResult.page).toEqual(coreResult.page);
294
- // Same number of tasks
295
- expect(engineResult.data.tasks.length).toBe(coreResult.tasks.length);
296
- // Same task IDs
297
- const coreIds = coreResult.tasks.map((t) => t.id).sort();
298
- const engineIds = engineResult.data.tasks.map((t) => t.id).sort();
299
- expect(engineIds).toEqual(coreIds);
300
- });
301
- it('taskList with status filter matches core listTasks filter', async () => {
302
- const { listTasks } = await import('../tasks/list.js');
303
- const { taskList } = await import('../../dispatch/engines/task-engine.js');
304
- const { getAccessor } = await import('../store/data-accessor.js');
305
- const accessor = await getAccessor(testDir);
306
- // Filter pending tasks
307
- const coreResult = await listTasks({ status: 'pending' }, testDir, accessor);
308
- const engineResult = await taskList(testDir, { status: 'pending' });
309
- expect(engineResult.success).toBe(true);
310
- expect(engineResult.page).toEqual(coreResult.page);
311
- const coreIds = coreResult.tasks.map((t) => t.id).sort();
312
- const engineIds = engineResult.data.tasks.map((t) => t.id).sort();
313
- expect(engineIds).toEqual(coreIds);
314
- });
315
- it('taskFind returns same results as core findTasks', async () => {
316
- const { findTasks } = await import('../tasks/find.js');
317
- const { taskFind } = await import('../../dispatch/engines/task-engine.js');
318
- const { getAccessor } = await import('../store/data-accessor.js');
319
- const accessor = await getAccessor(testDir);
320
- // Search for "alpha"
321
- const coreResult = await findTasks({ query: 'alpha', limit: 20 }, testDir, accessor);
322
- const engineResult = await taskFind(testDir, 'alpha');
323
- expect(engineResult.success).toBe(true);
324
- expect(engineResult.data).toBeDefined();
325
- // Both should find T001
326
- const coreIds = coreResult.results.map((r) => r.id);
327
- const engineIds = engineResult.data.results.map((r) => r.id);
328
- expect(coreIds).toContain('T001');
329
- expect(engineIds).toContain('T001');
330
- });
331
- it('taskCreate produces a valid task via engine', async () => {
332
- const { taskCreate } = await import('../../dispatch/engines/task-engine.js');
333
- // Engine create
334
- const engineResult = await taskCreate(testDir, {
335
- title: 'Engine-created task',
336
- description: 'Created via engine for parity test',
337
- });
338
- expect(engineResult.success).toBe(true);
339
- expect(engineResult.data).toBeDefined();
340
- expect(engineResult.data.task.id).toMatch(/^T\d+$/);
341
- expect(engineResult.data.task.title).toBe('Engine-created task');
342
- expect(engineResult.data.task.status).toBe('pending');
343
- });
344
- });
345
- // ============================================================================
346
- // Section 3: Session Engine Delegation Verification
347
- //
348
- // Verifies that session-engine.ts functions delegate to core and produce
349
- // structurally valid EngineResult wrappers.
350
- // ============================================================================
351
- describe('Session Engine Delegation (T4796)', () => {
352
- let testDir;
353
- let cleoDir;
354
- const SESSION_TASKS_JSON = {
355
- version: '2.10.0',
356
- project: {
357
- name: 'Session Test',
358
- phases: {
359
- core: { order: 1, name: 'Core', status: 'active' },
360
- },
361
- },
362
- lastUpdated: '2026-01-01T00:00:00Z',
363
- _meta: {
364
- schemaVersion: '2.10.0',
365
- specVersion: '0.1.0',
366
- checksum: 'abc',
367
- configVersion: '2.0.0',
368
- },
369
- focus: {
370
- currentTask: null,
371
- currentPhase: null,
372
- },
373
- tasks: [
374
- {
375
- id: 'T010',
376
- title: 'Session test epic',
377
- description: 'Epic for session testing',
378
- status: 'pending',
379
- priority: 'high',
380
- phase: 'core',
381
- type: 'epic',
382
- createdAt: '2026-01-01T00:00:00Z',
383
- updatedAt: null,
384
- },
385
- ],
386
- };
387
- beforeEach(async () => {
388
- const project = await createTestProject('cleo-sess-', SESSION_TASKS_JSON);
389
- testDir = project.testDir;
390
- cleoDir = project.cleoDir;
391
- process.env['CLEO_DIR'] = cleoDir;
392
- initLogger(cleoDir, {
393
- level: 'fatal',
394
- filePath: 'logs/test.log',
395
- maxFileSize: 1024 * 1024,
396
- maxFiles: 1,
397
- });
398
- });
399
- afterEach(async () => {
400
- await closeLogger();
401
- delete process.env['CLEO_DIR'];
402
- try {
403
- const { closeAllDatabases } = await import('../store/sqlite.js');
404
- await closeAllDatabases();
405
- }
406
- catch {
407
- /* ignore */
408
- }
409
- await Promise.race([
410
- rm(testDir, { recursive: true, force: true }).catch(() => { }),
411
- new Promise((resolve) => setTimeout(resolve, 8_000)),
412
- ]);
413
- });
414
- it('sessionStatus returns valid EngineResult', async () => {
415
- const { sessionStatus } = await import('../../dispatch/engines/session-engine.js');
416
- const result = await sessionStatus(testDir);
417
- expect(result.success).toBe(true);
418
- expect(result.data).toBeDefined();
419
- expect(typeof result.data.hasActiveSession).toBe('boolean');
420
- });
421
- it('sessionList returns valid EngineResult with canonical list metadata', async () => {
422
- const { sessionList } = await import('../../dispatch/engines/session-engine.js');
423
- const result = await sessionList(testDir);
424
- expect(result.success).toBe(true);
425
- expect(result.data).toBeDefined();
426
- expect(Array.isArray(result.data.sessions)).toBe(true);
427
- expect(typeof result.data.total).toBe('number');
428
- expect(typeof result.data.filtered).toBe('number');
429
- expect(result.data._meta).toBeDefined();
430
- expect(typeof result.data._meta.truncated).toBe('boolean');
431
- expect(typeof result.data._meta.total).toBe('number');
432
- expect(result.page).toBeDefined();
433
- });
434
- it('sessionStart creates session and returns EngineResult', async () => {
435
- const { sessionStart } = await import('../../dispatch/engines/session-engine.js');
436
- const result = await sessionStart(testDir, {
437
- scope: 'epic:T010',
438
- name: 'Parity Test Session',
439
- autoStart: true,
440
- });
441
- expect(result.success).toBe(true);
442
- expect(result.data).toBeDefined();
443
- expect(result.data.id).toMatch(/^ses_/);
444
- expect(result.data.status).toBe('active');
445
- expect(result.data.scope.rootTaskId).toBe('T010');
446
- });
447
- it('sessionStart then sessionEnd round-trip works', async () => {
448
- const { sessionStart, sessionEnd, sessionStatus } = await import('../../dispatch/engines/session-engine.js');
449
- // Start session
450
- const startResult = await sessionStart(testDir, {
451
- scope: 'epic:T010',
452
- autoStart: true,
453
- });
454
- expect(startResult.success).toBe(true);
455
- // Verify status shows active
456
- const statusResult = await sessionStatus(testDir);
457
- expect(statusResult.success).toBe(true);
458
- expect(statusResult.data.hasActiveSession).toBe(true);
459
- // End session
460
- const endResult = await sessionEnd(testDir, 'Parity test done');
461
- expect(endResult.success).toBe(true);
462
- expect(endResult.data.ended).toBe(true);
463
- });
464
- it('taskStart and taskStop delegate to core/task-work/', async () => {
465
- const { taskStart, taskStop, taskCurrentGet } = await import('../../dispatch/engines/session-engine.js');
466
- // Start working on a task
467
- const startResult = await taskStart(testDir, 'T010');
468
- expect(startResult.success).toBe(true);
469
- expect(startResult.data.taskId).toBe('T010');
470
- // Verify current task is set
471
- const currentResult = await taskCurrentGet(testDir);
472
- expect(currentResult.success).toBe(true);
473
- expect(currentResult.data.currentTask).toBe('T010');
474
- // Stop working
475
- const stopResult = await taskStop(testDir);
476
- expect(stopResult.success).toBe(true);
477
- expect(stopResult.data.cleared).toBe(true);
478
- });
479
- });
480
- // ============================================================================
481
- // Section 4: Lifecycle Engine Parity
482
- //
483
- // Verifies lifecycle-engine.ts functions produce valid EngineResult wrappers
484
- // and use core lifecycle constants.
485
- // ============================================================================
486
- describe('Lifecycle Engine Parity (T4796)', () => {
487
- let testDir;
488
- let cleoDir;
489
- beforeEach(async () => {
490
- testDir = await mkdtemp(join(tmpdir(), 'cleo-lifecycle-'));
491
- cleoDir = join(testDir, '.cleo');
492
- await mkdir(cleoDir, { recursive: true });
493
- await mkdir(join(cleoDir, 'rcasd', 'T100'), { recursive: true });
494
- process.env['CLEO_DIR'] = cleoDir;
495
- initLogger(cleoDir, {
496
- level: 'fatal',
497
- filePath: 'logs/test.log',
498
- maxFileSize: 1024 * 1024,
499
- maxFiles: 1,
500
- });
501
- });
502
- afterEach(async () => {
503
- await closeLogger();
504
- delete process.env['CLEO_DIR'];
505
- try {
506
- const { closeAllDatabases } = await import('../store/sqlite.js');
507
- await closeAllDatabases();
508
- }
509
- catch {
510
- /* ignore */
511
- }
512
- await Promise.race([
513
- rm(testDir, { recursive: true, force: true }).catch(() => { }),
514
- new Promise((resolve) => setTimeout(resolve, 8_000)),
515
- ]);
516
- });
517
- it('lifecycle-engine uses PIPELINE_STAGES from core/lifecycle/', async () => {
518
- const engineMod = await import('../../dispatch/engines/lifecycle-engine.js');
519
- const coreMod = await import('../lifecycle/index.js');
520
- // Engine function uses PIPELINE_STAGES from core for status
521
- const result = await engineMod.lifecycleStatus('NONEXISTENT', testDir);
522
- expect(result.success).toBe(true);
523
- const data = result.data;
524
- const engineStageNames = data.stages.map((s) => s.stage);
525
- expect(engineStageNames).toEqual([...coreMod.PIPELINE_STAGES]);
526
- });
527
- it('lifecycleStatus returns valid result for uninitialized epic', async () => {
528
- const { lifecycleStatus } = await import('../../dispatch/engines/lifecycle-engine.js');
529
- const result = await lifecycleStatus('T100', testDir);
530
- expect(result.success).toBe(true);
531
- expect(result.data).toBeDefined();
532
- const data = result.data;
533
- expect(data.epicId).toBe('T100');
534
- expect(data.initialized).toBe(false);
535
- expect(data.nextStage).toBe('research');
536
- expect(Array.isArray(data.stages)).toBe(true);
537
- });
538
- it('lifecycleProgress records stage and lifecycleStatus reflects it', async () => {
539
- const { lifecycleProgress, lifecycleStatus } = await import('../../dispatch/engines/lifecycle-engine.js');
540
- // Record research as completed
541
- const progressResult = await lifecycleProgress('T100', 'research', 'completed', 'Research done', testDir);
542
- expect(progressResult.success).toBe(true);
543
- const progressData = progressResult.data;
544
- expect(progressData.recorded).toBe(true);
545
- expect(progressData.stage).toBe('research');
546
- // Now check status reflects it
547
- const statusResult = await lifecycleStatus('T100', testDir);
548
- expect(statusResult.success).toBe(true);
549
- const statusData = statusResult.data;
550
- expect(statusData.initialized).toBe(true);
551
- expect(statusData.currentStage).toBe('research');
552
- });
553
- it('lifecyclePrerequisites returns valid data', async () => {
554
- const { lifecyclePrerequisites } = await import('../../dispatch/engines/lifecycle-engine.js');
555
- const result = await lifecyclePrerequisites('specification', testDir);
556
- expect(result.success).toBe(true);
557
- const data = result.data;
558
- expect(data.targetStage).toBe('specification');
559
- expect(Array.isArray(data.prerequisites)).toBe(true);
560
- });
561
- it('lifecycleCheck validates prerequisites correctly', async () => {
562
- const { lifecycleCheck, lifecycleProgress } = await import('../../dispatch/engines/lifecycle-engine.js');
563
- // Check specification without completing research
564
- const checkResult = await lifecycleCheck('T100', 'specification', testDir);
565
- expect(checkResult.success).toBe(true);
566
- const checkData = checkResult.data;
567
- // specification requires research (at minimum), so should not be valid
568
- expect(checkData.valid).toBe(false);
569
- expect(checkData.missingPrerequisites.length).toBeGreaterThan(0);
570
- // Complete research
571
- await lifecycleProgress('T100', 'research', 'completed', 'Done', testDir);
572
- // Now the gate for consensus should be valid
573
- const checkAfter = await lifecycleCheck('T100', 'consensus', testDir);
574
- expect(checkAfter.success).toBe(true);
575
- const afterData = checkAfter.data;
576
- expect(afterData.valid).toBe(true);
577
- });
578
- it('lifecycleSkip records skip with reason', async () => {
579
- const { lifecycleSkip, lifecycleHistory } = await import('../../dispatch/engines/lifecycle-engine.js');
580
- const skipResult = await lifecycleSkip('T100', 'consensus', 'Solo developer, no consensus needed', testDir);
581
- expect(skipResult.success).toBe(true);
582
- const skipData = skipResult.data;
583
- expect(skipData.skipped).toBe(true);
584
- // History should include the skip
585
- const histResult = await lifecycleHistory('T100', testDir);
586
- expect(histResult.success).toBe(true);
587
- const histData = histResult.data;
588
- const skipEntry = histData.history.find((h) => h.stage === 'consensus' && h.action === 'skipped');
589
- expect(skipEntry).toBeDefined();
590
- });
591
- });
592
- // ============================================================================
593
- // Section 5: EngineResult Wrapper Consistency
594
- //
595
- // Verifies that all engine functions return properly structured EngineResult
596
- // objects with consistent shape.
597
- // ============================================================================
598
- describe('EngineResult Wrapper Consistency (T4796)', () => {
599
- /**
600
- * Verify EngineResult shape: { success, data?, error? }
601
- */
602
- function assertEngineResult(result) {
603
- expect(result).toBeDefined();
604
- const r = result;
605
- expect(typeof r.success).toBe('boolean');
606
- if (r.success) {
607
- expect(r.data).toBeDefined();
608
- // success results should not have error
609
- expect(r.error).toBeUndefined();
610
- }
611
- else {
612
- expect(r.error).toBeDefined();
613
- const err = r.error;
614
- expect(typeof err.code).toBe('string');
615
- expect(typeof err.message).toBe('string');
616
- }
617
- }
618
- it('task engine error results have E_ prefixed codes', async () => {
619
- const { taskShow } = await import('../../dispatch/engines/task-engine.js');
620
- // This will fail because no project dir is set up
621
- const result = await taskShow('/nonexistent', 'T999');
622
- assertEngineResult(result);
623
- if (!result.success) {
624
- expect(result.error.code).toMatch(/^E_/);
625
- }
626
- });
627
- it('session engine error results have E_ prefixed codes', async () => {
628
- const { sessionStatus } = await import('../../dispatch/engines/session-engine.js');
629
- const result = await sessionStatus('/nonexistent');
630
- assertEngineResult(result);
631
- if (!result.success) {
632
- expect(result.error.code).toMatch(/^E_/);
633
- }
634
- });
635
- it('lifecycle engine error results have E_ prefixed codes', async () => {
636
- const { lifecycleStatus } = await import('../../dispatch/engines/lifecycle-engine.js');
637
- // Empty epicId should fail
638
- const result = await lifecycleStatus('');
639
- assertEngineResult(result);
640
- if (!result.success) {
641
- expect(result.error.code).toMatch(/^E_/);
642
- }
643
- });
644
- });
645
- //# sourceMappingURL=core-parity.test.js.map