@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,609 +0,0 @@
1
- /**
2
- * Tests for src/store/project-detect.ts
3
- * Verifies ecosystem detection, schema compliance, and LLM hint generation.
4
- */
5
- import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
6
- import { tmpdir } from 'node:os';
7
- import { join } from 'node:path';
8
- import { fileURLToPath } from 'node:url';
9
- import AjvModule from 'ajv';
10
- import addFormatsModule from 'ajv-formats';
11
- import { afterEach, describe, expect, it } from 'vitest';
12
- import { detectProjectType } from '../project-detect.js';
13
- // ─── Schema validator setup ───────────────────────────────────────────────────
14
- const schemaPath = fileURLToPath(new URL('../../../schemas/project-context.schema.json', import.meta.url));
15
- const schema = JSON.parse(readFileSync(schemaPath, 'utf-8'));
16
- const Ajv = AjvModule.default ?? AjvModule;
17
- const addFormats = addFormatsModule.default ?? addFormatsModule;
18
- const ajv = new Ajv({ strict: false });
19
- addFormats(ajv);
20
- const validate = ajv.compile(schema);
21
- function assertSchemaValid(result, label = '') {
22
- const valid = validate(result);
23
- if (!valid) {
24
- throw new Error(`${label ? label + ' — ' : ''}Schema invalid: ${JSON.stringify(validate.errors, null, 2)}`);
25
- }
26
- }
27
- // ─── Scaffold helper ──────────────────────────────────────────────────────────
28
- function scaffold(files) {
29
- const dir = mkdtempSync(join(tmpdir(), 'cleo-detect-'));
30
- for (const [name, content] of Object.entries(files)) {
31
- const filePath = join(dir, name);
32
- const parts = name.split('/');
33
- if (parts.length > 1) {
34
- mkdirSync(join(dir, ...parts.slice(0, -1)), { recursive: true });
35
- }
36
- writeFileSync(filePath, content);
37
- }
38
- return dir;
39
- }
40
- let dir;
41
- afterEach(() => {
42
- if (dir) {
43
- rmSync(dir, { recursive: true, force: true });
44
- }
45
- });
46
- // ─── Group 1: Ecosystem detection ────────────────────────────────────────────
47
- describe('Group 1: Ecosystem detection', () => {
48
- it('empty dir → projectTypes includes unknown', () => {
49
- dir = scaffold({});
50
- const result = detectProjectType(dir);
51
- expect(result.projectTypes).toContain('unknown');
52
- assertSchemaValid(result, 'empty dir');
53
- });
54
- it('package.json → projectTypes includes node, primaryType is node', () => {
55
- dir = scaffold({ 'package.json': '{"name":"test"}' });
56
- const result = detectProjectType(dir);
57
- expect(result.projectTypes).toContain('node');
58
- expect(result.primaryType).toBe('node');
59
- assertSchemaValid(result, 'node');
60
- });
61
- it('requirements.txt → projectTypes includes python', () => {
62
- dir = scaffold({ 'requirements.txt': 'requests==2.28.0\n' });
63
- const result = detectProjectType(dir);
64
- expect(result.projectTypes).toContain('python');
65
- expect(result.primaryType).toBe('python');
66
- assertSchemaValid(result, 'python requirements.txt');
67
- });
68
- it('pyproject.toml → projectTypes includes python', () => {
69
- dir = scaffold({ 'pyproject.toml': '[tool.poetry]\nname = "myapp"\n' });
70
- const result = detectProjectType(dir);
71
- expect(result.projectTypes).toContain('python');
72
- assertSchemaValid(result, 'python pyproject.toml');
73
- });
74
- it('setup.py → projectTypes includes python', () => {
75
- dir = scaffold({ 'setup.py': 'from setuptools import setup\nsetup(name="myapp")\n' });
76
- const result = detectProjectType(dir);
77
- expect(result.projectTypes).toContain('python');
78
- assertSchemaValid(result, 'python setup.py');
79
- });
80
- it('Cargo.toml → projectTypes includes rust, primaryType is rust', () => {
81
- dir = scaffold({ 'Cargo.toml': '[package]\nname = "myapp"\nversion = "0.1.0"\n' });
82
- const result = detectProjectType(dir);
83
- expect(result.projectTypes).toContain('rust');
84
- expect(result.primaryType).toBe('rust');
85
- assertSchemaValid(result, 'rust');
86
- });
87
- it('go.mod → projectTypes includes go, primaryType is go', () => {
88
- dir = scaffold({ 'go.mod': 'module myapp\n\ngo 1.21\n' });
89
- const result = detectProjectType(dir);
90
- expect(result.projectTypes).toContain('go');
91
- expect(result.primaryType).toBe('go');
92
- assertSchemaValid(result, 'go');
93
- });
94
- it('Gemfile → projectTypes includes ruby, primaryType is ruby', () => {
95
- dir = scaffold({ Gemfile: "source 'https://rubygems.org'\n" });
96
- const result = detectProjectType(dir);
97
- expect(result.projectTypes).toContain('ruby');
98
- expect(result.primaryType).toBe('ruby');
99
- assertSchemaValid(result, 'ruby');
100
- });
101
- it('pom.xml → projectTypes includes java', () => {
102
- dir = scaffold({ 'pom.xml': '<project></project>' });
103
- const result = detectProjectType(dir);
104
- expect(result.projectTypes).toContain('java');
105
- expect(result.primaryType).toBe('java');
106
- assertSchemaValid(result, 'java pom.xml');
107
- });
108
- it('build.gradle → projectTypes includes java', () => {
109
- dir = scaffold({ 'build.gradle': 'plugins { id "java" }\n' });
110
- const result = detectProjectType(dir);
111
- expect(result.projectTypes).toContain('java');
112
- assertSchemaValid(result, 'java build.gradle');
113
- });
114
- it('.csproj file → projectTypes includes dotnet', () => {
115
- dir = scaffold({ 'App.csproj': '<Project Sdk="Microsoft.NET.Sdk"></Project>' });
116
- const result = detectProjectType(dir);
117
- expect(result.projectTypes).toContain('dotnet');
118
- expect(result.primaryType).toBe('dotnet');
119
- assertSchemaValid(result, 'dotnet');
120
- });
121
- it('deno.json → projectTypes includes deno', () => {
122
- dir = scaffold({ 'deno.json': '{"tasks":{}}' });
123
- const result = detectProjectType(dir);
124
- expect(result.projectTypes).toContain('deno');
125
- expect(result.primaryType).toBe('deno');
126
- assertSchemaValid(result, 'deno');
127
- });
128
- it('mix.exs → projectTypes includes elixir', () => {
129
- dir = scaffold({ 'mix.exs': 'defmodule MyApp.MixProject do\nend\n' });
130
- const result = detectProjectType(dir);
131
- expect(result.projectTypes).toContain('elixir');
132
- expect(result.primaryType).toBe('elixir');
133
- assertSchemaValid(result, 'elixir');
134
- });
135
- it('composer.json → projectTypes includes php', () => {
136
- dir = scaffold({ 'composer.json': '{"name":"vendor/package"}' });
137
- const result = detectProjectType(dir);
138
- expect(result.projectTypes).toContain('php');
139
- expect(result.primaryType).toBe('php');
140
- assertSchemaValid(result, 'php');
141
- });
142
- it('install.sh + tests/ dir → projectTypes includes bash', () => {
143
- dir = scaffold({ 'install.sh': '#!/bin/bash\necho "install"\n', 'tests/.keep': '' });
144
- const result = detectProjectType(dir);
145
- expect(result.projectTypes).toContain('bash');
146
- expect(result.primaryType).toBe('bash');
147
- assertSchemaValid(result, 'bash');
148
- });
149
- });
150
- // ─── Group 2: Polyglot detection ─────────────────────────────────────────────
151
- describe('Group 2: Polyglot detection', () => {
152
- it('package.json + Cargo.toml → both node and rust detected, primaryType is node', () => {
153
- dir = scaffold({
154
- 'package.json': '{"name":"app"}',
155
- 'Cargo.toml': '[package]\nname = "app"\nversion = "0.1.0"\n',
156
- });
157
- const result = detectProjectType(dir);
158
- expect(result.projectTypes).toContain('node');
159
- expect(result.projectTypes).toContain('rust');
160
- expect(result.primaryType).toBe('node');
161
- assertSchemaValid(result, 'polyglot node+rust');
162
- });
163
- it('package.json + go.mod → both node and go detected', () => {
164
- dir = scaffold({
165
- 'package.json': '{"name":"app"}',
166
- 'go.mod': 'module myapp\n\ngo 1.21\n',
167
- });
168
- const result = detectProjectType(dir);
169
- expect(result.projectTypes).toContain('node');
170
- expect(result.projectTypes).toContain('go');
171
- expect(result.primaryType).toBe('node');
172
- assertSchemaValid(result, 'polyglot node+go');
173
- });
174
- it('Cargo.toml + go.mod → both rust and go detected', () => {
175
- dir = scaffold({
176
- 'Cargo.toml': '[package]\nname = "app"\nversion = "0.1.0"\n',
177
- 'go.mod': 'module myapp\n\ngo 1.21\n',
178
- });
179
- const result = detectProjectType(dir);
180
- expect(result.projectTypes).toContain('rust');
181
- expect(result.projectTypes).toContain('go');
182
- assertSchemaValid(result, 'polyglot rust+go');
183
- });
184
- });
185
- // ─── Group 3: Package manager detection ──────────────────────────────────────
186
- describe('Group 3: Package manager detection', () => {
187
- it('package.json only → defaults to npm (no bun/pnpm/yarn avoid hint)', () => {
188
- dir = scaffold({ 'package.json': '{"name":"app"}' });
189
- const result = detectProjectType(dir);
190
- // With npm there are no package manager avoidPatterns
191
- const avoidPatterns = result.llmHints?.avoidPatterns ?? [];
192
- expect(avoidPatterns.some((p) => p.includes('npm'))).toBe(false);
193
- assertSchemaValid(result, 'npm default');
194
- });
195
- it('package.json + bun.lockb → bun detected, avoid npm hint present', () => {
196
- dir = scaffold({ 'package.json': '{"name":"app"}', 'bun.lockb': '' });
197
- const result = detectProjectType(dir);
198
- const avoidPatterns = result.llmHints?.avoidPatterns ?? [];
199
- expect(avoidPatterns.some((p) => p.includes('npm'))).toBe(true);
200
- assertSchemaValid(result, 'bun.lockb');
201
- });
202
- it('package.json + bun.lock → bun detected', () => {
203
- dir = scaffold({ 'package.json': '{"name":"app"}', 'bun.lock': '' });
204
- const result = detectProjectType(dir);
205
- const avoidPatterns = result.llmHints?.avoidPatterns ?? [];
206
- expect(avoidPatterns.some((p) => p.includes('npm'))).toBe(true);
207
- assertSchemaValid(result, 'bun.lock');
208
- });
209
- it('package.json + pnpm-lock.yaml → pnpm detected, avoid npm hint present', () => {
210
- dir = scaffold({
211
- 'package.json': '{"name":"app"}',
212
- 'pnpm-lock.yaml': 'lockfileVersion: "6.0"\n',
213
- });
214
- const result = detectProjectType(dir);
215
- const avoidPatterns = result.llmHints?.avoidPatterns ?? [];
216
- expect(avoidPatterns.some((p) => p.includes('npm'))).toBe(true);
217
- assertSchemaValid(result, 'pnpm');
218
- });
219
- it('package.json + yarn.lock → yarn detected, avoid npm hint present', () => {
220
- dir = scaffold({ 'package.json': '{"name":"app"}', 'yarn.lock': '# yarn lockfile v1\n' });
221
- const result = detectProjectType(dir);
222
- const avoidPatterns = result.llmHints?.avoidPatterns ?? [];
223
- expect(avoidPatterns.some((p) => p.includes('npm'))).toBe(true);
224
- assertSchemaValid(result, 'yarn');
225
- });
226
- it('package.json + bun.lockb + package-lock.json → bun still wins', () => {
227
- dir = scaffold({
228
- 'package.json': '{"name":"app"}',
229
- 'bun.lockb': '',
230
- 'package-lock.json': '{"lockfileVersion":3}',
231
- });
232
- const result = detectProjectType(dir);
233
- const commonPatterns = result.llmHints?.commonPatterns ?? [];
234
- expect(commonPatterns.some((p) => p.toLowerCase().includes('bun'))).toBe(true);
235
- assertSchemaValid(result, 'bun wins over npm');
236
- });
237
- });
238
- // ─── Group 4: Test framework detection ───────────────────────────────────────
239
- describe('Group 4: Test framework detection', () => {
240
- it('vitest.config.ts → testing.framework is vitest', () => {
241
- dir = scaffold({ 'package.json': '{"name":"app"}', 'vitest.config.ts': 'export default {}' });
242
- const result = detectProjectType(dir);
243
- expect(result.testing?.framework).toBe('vitest');
244
- assertSchemaValid(result, 'vitest config');
245
- });
246
- it('jest.config.ts → testing.framework is jest', () => {
247
- dir = scaffold({ 'package.json': '{"name":"app"}', 'jest.config.ts': 'export default {}' });
248
- const result = detectProjectType(dir);
249
- expect(result.testing?.framework).toBe('jest');
250
- assertSchemaValid(result, 'jest config');
251
- });
252
- it('.mocharc.yml → testing.framework is mocha', () => {
253
- dir = scaffold({
254
- 'package.json': '{"name":"app"}',
255
- '.mocharc.yml': 'spec: test/**/*.spec.js\n',
256
- });
257
- const result = detectProjectType(dir);
258
- expect(result.testing?.framework).toBe('mocha');
259
- assertSchemaValid(result, 'mocha');
260
- });
261
- it('playwright.config.ts → testing.framework is playwright', () => {
262
- dir = scaffold({
263
- 'package.json': '{"name":"app"}',
264
- 'playwright.config.ts': 'export default {}',
265
- });
266
- const result = detectProjectType(dir);
267
- expect(result.testing?.framework).toBe('playwright');
268
- assertSchemaValid(result, 'playwright');
269
- });
270
- it('cypress.config.ts → testing.framework is cypress', () => {
271
- dir = scaffold({ 'package.json': '{"name":"app"}', 'cypress.config.ts': 'export default {}' });
272
- const result = detectProjectType(dir);
273
- expect(result.testing?.framework).toBe('cypress');
274
- assertSchemaValid(result, 'cypress');
275
- });
276
- it('go.mod → testing.framework is go', () => {
277
- dir = scaffold({ 'go.mod': 'module myapp\n\ngo 1.21\n' });
278
- const result = detectProjectType(dir);
279
- expect(result.testing?.framework).toBe('go');
280
- assertSchemaValid(result, 'go test');
281
- });
282
- it('Cargo.toml → testing.framework is cargo', () => {
283
- dir = scaffold({ 'Cargo.toml': '[package]\nname = "app"\nversion = "0.1.0"\n' });
284
- const result = detectProjectType(dir);
285
- expect(result.testing?.framework).toBe('cargo');
286
- assertSchemaValid(result, 'cargo test');
287
- });
288
- it('requirements.txt → testing.framework is pytest', () => {
289
- dir = scaffold({ 'requirements.txt': 'requests==2.28.0\n' });
290
- const result = detectProjectType(dir);
291
- expect(result.testing?.framework).toBe('pytest');
292
- assertSchemaValid(result, 'pytest');
293
- });
294
- });
295
- // ─── Group 5: Monorepo detection ─────────────────────────────────────────────
296
- describe('Group 5: Monorepo detection', () => {
297
- it('package.json + turbo.json → monorepo is true', () => {
298
- dir = scaffold({ 'package.json': '{"name":"app"}', 'turbo.json': '{"pipeline":{}}' });
299
- const result = detectProjectType(dir);
300
- expect(result.monorepo).toBe(true);
301
- assertSchemaValid(result, 'turbo monorepo');
302
- });
303
- it('package.json + nx.json → monorepo is true', () => {
304
- dir = scaffold({ 'package.json': '{"name":"app"}', 'nx.json': '{}' });
305
- const result = detectProjectType(dir);
306
- expect(result.monorepo).toBe(true);
307
- assertSchemaValid(result, 'nx monorepo');
308
- });
309
- it('package.json + pnpm-workspace.yaml → monorepo is true', () => {
310
- dir = scaffold({
311
- 'package.json': '{"name":"app"}',
312
- 'pnpm-workspace.yaml': 'packages:\n - "packages/*"\n',
313
- });
314
- const result = detectProjectType(dir);
315
- expect(result.monorepo).toBe(true);
316
- assertSchemaValid(result, 'pnpm workspace monorepo');
317
- });
318
- it('package.json + lerna.json → monorepo is true', () => {
319
- dir = scaffold({ 'package.json': '{"name":"app"}', 'lerna.json': '{"version":"independent"}' });
320
- const result = detectProjectType(dir);
321
- expect(result.monorepo).toBe(true);
322
- assertSchemaValid(result, 'lerna monorepo');
323
- });
324
- it('package.json with workspaces field → monorepo is true', () => {
325
- dir = scaffold({ 'package.json': '{"name":"app","workspaces":["packages/*"]}' });
326
- const result = detectProjectType(dir);
327
- expect(result.monorepo).toBe(true);
328
- assertSchemaValid(result, 'npm workspaces monorepo');
329
- });
330
- it('Cargo.toml with [workspace] section → monorepo is true', () => {
331
- dir = scaffold({
332
- 'Cargo.toml': '[workspace]\nmembers = ["crate-a", "crate-b"]\n\n[package]\nname = "root"\nversion = "0.1.0"\n',
333
- });
334
- const result = detectProjectType(dir);
335
- expect(result.monorepo).toBe(true);
336
- assertSchemaValid(result, 'cargo workspace monorepo');
337
- });
338
- });
339
- // ─── Group 6: LLM hints ───────────────────────────────────────────────────────
340
- describe('Group 6: LLM hints', () => {
341
- it('bun project → avoidPatterns includes "Do not use npm or npx"', () => {
342
- dir = scaffold({ 'package.json': '{"name":"app"}', 'bun.lockb': '' });
343
- const result = detectProjectType(dir);
344
- const avoidPatterns = result.llmHints?.avoidPatterns ?? [];
345
- expect(avoidPatterns).toContain('Do not use npm or npx — this project uses bun');
346
- });
347
- it('pnpm project → avoidPatterns includes "Do not use npm"', () => {
348
- dir = scaffold({
349
- 'package.json': '{"name":"app"}',
350
- 'pnpm-lock.yaml': 'lockfileVersion: "6.0"\n',
351
- });
352
- const result = detectProjectType(dir);
353
- const avoidPatterns = result.llmHints?.avoidPatterns ?? [];
354
- expect(avoidPatterns).toContain('Do not use npm — this project uses pnpm');
355
- });
356
- it('yarn project → avoidPatterns includes "Do not use npm — this project uses yarn"', () => {
357
- dir = scaffold({ 'package.json': '{"name":"app"}', 'yarn.lock': '# yarn lockfile v1\n' });
358
- const result = detectProjectType(dir);
359
- const avoidPatterns = result.llmHints?.avoidPatterns ?? [];
360
- expect(avoidPatterns).toContain('Do not use npm — this project uses yarn');
361
- });
362
- it('TypeScript project (tsconfig.json) → llmHints.typeSystem contains TypeScript', () => {
363
- dir = scaffold({
364
- 'package.json': '{"name":"app"}',
365
- 'tsconfig.json': '{"compilerOptions":{"strict":true}}',
366
- });
367
- const result = detectProjectType(dir);
368
- expect(result.llmHints?.typeSystem).toMatch(/TypeScript/);
369
- });
370
- it('ESM project (type:module) → avoidPatterns includes CommonJS warning', () => {
371
- dir = scaffold({ 'package.json': '{"name":"app","type":"module"}' });
372
- const result = detectProjectType(dir);
373
- const avoidPatterns = result.llmHints?.avoidPatterns ?? [];
374
- expect(avoidPatterns).toContain('Do not use CommonJS require()');
375
- });
376
- it('avoidPatterns is always an array when present', () => {
377
- dir = scaffold({ 'package.json': '{"name":"app"}', 'bun.lockb': '' });
378
- const result = detectProjectType(dir);
379
- if (result.llmHints?.avoidPatterns !== undefined) {
380
- expect(Array.isArray(result.llmHints.avoidPatterns)).toBe(true);
381
- }
382
- assertSchemaValid(result, 'avoidPatterns array check');
383
- });
384
- });
385
- // ─── Group 7: Schema compliance ───────────────────────────────────────────────
386
- describe('Group 7: Schema compliance', () => {
387
- it('node project output is schema-valid', () => {
388
- dir = scaffold({ 'package.json': '{"name":"app"}' });
389
- const result = detectProjectType(dir);
390
- assertSchemaValid(result, 'node schema');
391
- });
392
- it('python project output is schema-valid', () => {
393
- dir = scaffold({ 'requirements.txt': 'flask==2.0.0\n' });
394
- const result = detectProjectType(dir);
395
- assertSchemaValid(result, 'python schema');
396
- });
397
- it('rust project output is schema-valid', () => {
398
- dir = scaffold({ 'Cargo.toml': '[package]\nname = "app"\nversion = "0.1.0"\n' });
399
- const result = detectProjectType(dir);
400
- assertSchemaValid(result, 'rust schema');
401
- });
402
- it('go project output is schema-valid', () => {
403
- dir = scaffold({ 'go.mod': 'module myapp\n\ngo 1.21\n' });
404
- const result = detectProjectType(dir);
405
- assertSchemaValid(result, 'go schema');
406
- });
407
- it('polyglot (node + rust) output is schema-valid', () => {
408
- dir = scaffold({
409
- 'package.json': '{"name":"app"}',
410
- 'Cargo.toml': '[package]\nname = "app"\nversion = "0.1.0"\n',
411
- });
412
- const result = detectProjectType(dir);
413
- assertSchemaValid(result, 'polyglot schema');
414
- });
415
- it('schemaVersion is always "1.0.0"', () => {
416
- dir = scaffold({ 'package.json': '{"name":"app"}' });
417
- const result = detectProjectType(dir);
418
- expect(result.schemaVersion).toBe('1.0.0');
419
- });
420
- it('detectedAt is ISO 8601 date-time string', () => {
421
- dir = scaffold({ 'package.json': '{"name":"app"}' });
422
- const result = detectProjectType(dir);
423
- expect(() => new Date(result.detectedAt).toISOString()).not.toThrow();
424
- expect(new Date(result.detectedAt).getFullYear()).toBeGreaterThan(2020);
425
- });
426
- it('projectTypes always has at least 1 item', () => {
427
- dir = scaffold({});
428
- const result = detectProjectType(dir);
429
- expect(result.projectTypes.length).toBeGreaterThanOrEqual(1);
430
- });
431
- });
432
- // ─── Group 8: Build detection ─────────────────────────────────────────────────
433
- describe('Group 8: Build detection', () => {
434
- it('package.json with build script → build.command is populated', () => {
435
- dir = scaffold({
436
- 'package.json': '{"name":"app","scripts":{"build":"tsc","test":"vitest run"}}',
437
- });
438
- const result = detectProjectType(dir);
439
- expect(result.build?.command).toBeDefined();
440
- expect(result.build?.command).toContain('build');
441
- assertSchemaValid(result, 'node build command');
442
- });
443
- it('Cargo.toml → build.command is "cargo build"', () => {
444
- dir = scaffold({ 'Cargo.toml': '[package]\nname = "app"\nversion = "0.1.0"\n' });
445
- const result = detectProjectType(dir);
446
- expect(result.build?.command).toBe('cargo build');
447
- assertSchemaValid(result, 'rust build');
448
- });
449
- it('go.mod → build.command includes "go"', () => {
450
- dir = scaffold({ 'go.mod': 'module myapp\n\ngo 1.21\n' });
451
- const result = detectProjectType(dir);
452
- expect(result.build?.command).toContain('go');
453
- assertSchemaValid(result, 'go build');
454
- });
455
- it('package.json with build + dist dir → build.outputDir is "dist"', () => {
456
- dir = scaffold({
457
- 'package.json': '{"name":"app","scripts":{"build":"tsc"}}',
458
- 'dist/.keep': '',
459
- });
460
- const result = detectProjectType(dir);
461
- expect(result.build?.outputDir).toBe('dist');
462
- assertSchemaValid(result, 'node dist output');
463
- });
464
- });
465
- // ─── Group 9: Testing command fallback ───────────────────────────────────────
466
- describe('Group 9: Testing command fallback', () => {
467
- it('vitest config but no test script → command is "npx vitest run"', () => {
468
- dir = scaffold({ 'package.json': '{"name":"app"}', 'vitest.config.ts': 'export default {}' });
469
- const result = detectProjectType(dir);
470
- expect(result.testing?.command).toBe('npx vitest run');
471
- assertSchemaValid(result, 'vitest fallback command');
472
- });
473
- it('jest config but no test script → command is "npx jest"', () => {
474
- dir = scaffold({ 'package.json': '{"name":"app"}', 'jest.config.ts': 'export default {}' });
475
- const result = detectProjectType(dir);
476
- expect(result.testing?.command).toBe('npx jest');
477
- assertSchemaValid(result, 'jest fallback command');
478
- });
479
- it('package.json with test script → command uses npm test', () => {
480
- dir = scaffold({
481
- 'package.json': '{"name":"app","scripts":{"test":"vitest run"}}',
482
- 'vitest.config.ts': 'export default {}',
483
- });
484
- const result = detectProjectType(dir);
485
- expect(result.testing?.command).toBe('npm run test');
486
- assertSchemaValid(result, 'npm test script');
487
- });
488
- it('bun project with test script → command uses bun run test', () => {
489
- dir = scaffold({
490
- 'package.json': '{"name":"app","scripts":{"test":"vitest run"}}',
491
- 'bun.lockb': '',
492
- 'vitest.config.ts': 'export default {}',
493
- });
494
- const result = detectProjectType(dir);
495
- expect(result.testing?.command).toBe('bun run test');
496
- assertSchemaValid(result, 'bun test command');
497
- });
498
- it('pytest → command is "pytest"', () => {
499
- dir = scaffold({ 'requirements.txt': 'flask\n' });
500
- const result = detectProjectType(dir);
501
- expect(result.testing?.command).toBe('pytest');
502
- });
503
- it('cargo → command is "cargo test"', () => {
504
- dir = scaffold({ 'Cargo.toml': '[package]\nname = "app"\nversion = "0.1.0"\n' });
505
- const result = detectProjectType(dir);
506
- expect(result.testing?.command).toBe('cargo test');
507
- });
508
- it('go → command is "go test ./..."', () => {
509
- dir = scaffold({ 'go.mod': 'module myapp\n\ngo 1.21\n' });
510
- const result = detectProjectType(dir);
511
- expect(result.testing?.command).toBe('go test ./...');
512
- });
513
- });
514
- // ─── Group 10: Conventions detection ─────────────────────────────────────────
515
- describe('Group 10: Conventions detection', () => {
516
- it('package.json with type:module → importStyle is esm', () => {
517
- dir = scaffold({ 'package.json': '{"name":"app","type":"module"}' });
518
- const result = detectProjectType(dir);
519
- expect(result.conventions?.importStyle).toBe('esm');
520
- assertSchemaValid(result, 'esm import style');
521
- });
522
- it('package.json with type:commonjs → importStyle is commonjs', () => {
523
- dir = scaffold({ 'package.json': '{"name":"app","type":"commonjs"}' });
524
- const result = detectProjectType(dir);
525
- expect(result.conventions?.importStyle).toBe('commonjs');
526
- assertSchemaValid(result, 'commonjs import style');
527
- });
528
- it('TypeScript strict mode → typeSystem is "TypeScript strict"', () => {
529
- dir = scaffold({
530
- 'package.json': '{"name":"app"}',
531
- 'tsconfig.json': '{"compilerOptions":{"strict":true}}',
532
- });
533
- const result = detectProjectType(dir);
534
- expect(result.conventions?.typeSystem).toBe('TypeScript strict');
535
- assertSchemaValid(result, 'ts strict type system');
536
- });
537
- it('TypeScript without strict → typeSystem is "TypeScript"', () => {
538
- dir = scaffold({
539
- 'package.json': '{"name":"app"}',
540
- 'tsconfig.json': '{"compilerOptions":{"target":"ES2020"}}',
541
- });
542
- const result = detectProjectType(dir);
543
- expect(result.conventions?.typeSystem).toBe('TypeScript');
544
- assertSchemaValid(result, 'ts type system');
545
- });
546
- it('rust project → typeSystem is "Rust"', () => {
547
- dir = scaffold({ 'Cargo.toml': '[package]\nname = "app"\nversion = "0.1.0"\n' });
548
- const result = detectProjectType(dir);
549
- expect(result.conventions?.typeSystem).toBe('Rust');
550
- assertSchemaValid(result, 'rust type system');
551
- });
552
- it('go project → typeSystem is "Go"', () => {
553
- dir = scaffold({ 'go.mod': 'module myapp\n\ngo 1.21\n' });
554
- const result = detectProjectType(dir);
555
- expect(result.conventions?.typeSystem).toBe('Go');
556
- assertSchemaValid(result, 'go type system');
557
- });
558
- });
559
- // ─── Group 11: Directory detection ───────────────────────────────────────────
560
- describe('Group 11: Directory detection', () => {
561
- it('src/ present → directories.source is "src"', () => {
562
- dir = scaffold({ 'package.json': '{"name":"app"}', 'src/.keep': '' });
563
- const result = detectProjectType(dir);
564
- expect(result.directories?.source).toBe('src');
565
- assertSchemaValid(result, 'src directory');
566
- });
567
- it('tests/ present → directories.tests is "tests"', () => {
568
- dir = scaffold({ 'package.json': '{"name":"app"}', 'tests/.keep': '' });
569
- const result = detectProjectType(dir);
570
- expect(result.directories?.tests).toBe('tests');
571
- assertSchemaValid(result, 'tests directory');
572
- });
573
- it('docs/ present → directories.docs is "docs"', () => {
574
- dir = scaffold({ 'package.json': '{"name":"app"}', 'docs/.keep': '' });
575
- const result = detectProjectType(dir);
576
- expect(result.directories?.docs).toBe('docs');
577
- assertSchemaValid(result, 'docs directory');
578
- });
579
- it('no standard dirs → directories is undefined', () => {
580
- dir = scaffold({ 'package.json': '{"name":"app"}' });
581
- const result = detectProjectType(dir);
582
- expect(result.directories).toBeUndefined();
583
- assertSchemaValid(result, 'no directories');
584
- });
585
- });
586
- // ─── Group 12: Vitest test patterns ──────────────────────────────────────────
587
- describe('Group 12: Test file patterns', () => {
588
- it('vitest → testFilePatterns includes *.test.ts', () => {
589
- dir = scaffold({ 'package.json': '{"name":"app"}', 'vitest.config.ts': 'export default {}' });
590
- const result = detectProjectType(dir);
591
- expect(result.testing?.testFilePatterns).toContain('**/*.test.ts');
592
- });
593
- it('jest → testFilePatterns includes *.test.ts', () => {
594
- dir = scaffold({ 'package.json': '{"name":"app"}', 'jest.config.ts': 'export default {}' });
595
- const result = detectProjectType(dir);
596
- expect(result.testing?.testFilePatterns).toContain('**/*.test.ts');
597
- });
598
- it('pytest → testFilePatterns includes test_*.py', () => {
599
- dir = scaffold({ 'requirements.txt': 'pytest\n' });
600
- const result = detectProjectType(dir);
601
- expect(result.testing?.testFilePatterns).toContain('**/test_*.py');
602
- });
603
- it('mocha → testFilePatterns includes *.test.js', () => {
604
- dir = scaffold({ 'package.json': '{"name":"app"}', '.mocharc.yml': 'spec: test/*.spec.js\n' });
605
- const result = detectProjectType(dir);
606
- expect(result.testing?.testFilePatterns).toContain('**/*.test.js');
607
- });
608
- });
609
- //# sourceMappingURL=project-detect.test.js.map