@cleocode/core 2026.4.31 → 2026.4.35

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 (985) hide show
  1. package/dist/adapters/adapter-registry.js +64 -0
  2. package/dist/adapters/adapter-registry.js.map +1 -0
  3. package/dist/adapters/discovery.js +83 -0
  4. package/dist/adapters/discovery.js.map +1 -0
  5. package/dist/adapters/index.js +9 -0
  6. package/dist/adapters/index.js.map +1 -0
  7. package/dist/adapters/manager.js +260 -0
  8. package/dist/adapters/manager.js.map +1 -0
  9. package/dist/admin/export-tasks.js +171 -0
  10. package/dist/admin/export-tasks.js.map +1 -0
  11. package/dist/admin/export.js +103 -0
  12. package/dist/admin/export.js.map +1 -0
  13. package/dist/admin/help.js +106 -0
  14. package/dist/admin/help.js.map +1 -0
  15. package/dist/admin/import-tasks.js +182 -0
  16. package/dist/admin/import-tasks.js.map +1 -0
  17. package/dist/admin/import.js +129 -0
  18. package/dist/admin/import.js.map +1 -0
  19. package/dist/admin/index.js +13 -0
  20. package/dist/admin/index.js.map +1 -0
  21. package/dist/adrs/find.js +134 -0
  22. package/dist/adrs/find.js.map +1 -0
  23. package/dist/adrs/index.js +15 -0
  24. package/dist/adrs/index.js.map +1 -0
  25. package/dist/adrs/link-pipeline.js +160 -0
  26. package/dist/adrs/link-pipeline.js.map +1 -0
  27. package/dist/adrs/list.js +43 -0
  28. package/dist/adrs/list.js.map +1 -0
  29. package/dist/adrs/parse.js +51 -0
  30. package/dist/adrs/parse.js.map +1 -0
  31. package/dist/adrs/show.js +22 -0
  32. package/dist/adrs/show.js.map +1 -0
  33. package/dist/adrs/sync.js +232 -0
  34. package/dist/adrs/sync.js.map +1 -0
  35. package/dist/adrs/types.js +9 -0
  36. package/dist/adrs/types.js.map +1 -0
  37. package/dist/adrs/validate.js +57 -0
  38. package/dist/adrs/validate.js.map +1 -0
  39. package/dist/agents/agent-registry.js +288 -0
  40. package/dist/agents/agent-registry.js.map +1 -0
  41. package/dist/agents/agent-schema.js +82 -0
  42. package/dist/agents/agent-schema.js.map +1 -0
  43. package/dist/agents/capacity.js +116 -0
  44. package/dist/agents/capacity.js.map +1 -0
  45. package/dist/agents/execution-learning.js +474 -0
  46. package/dist/agents/execution-learning.js.map +1 -0
  47. package/dist/agents/health-monitor.js +217 -0
  48. package/dist/agents/health-monitor.js.map +1 -0
  49. package/dist/agents/index.js +29 -0
  50. package/dist/agents/index.js.map +1 -0
  51. package/dist/agents/registry.js +314 -0
  52. package/dist/agents/registry.js.map +1 -0
  53. package/dist/agents/retry.js +215 -0
  54. package/dist/agents/retry.js.map +1 -0
  55. package/dist/audit-prune.js +94 -0
  56. package/dist/audit-prune.js.map +1 -0
  57. package/dist/audit.js +68 -0
  58. package/dist/audit.js.map +1 -0
  59. package/dist/backfill/index.js +229 -0
  60. package/dist/backfill/index.js.map +1 -0
  61. package/dist/bootstrap.js +435 -0
  62. package/dist/bootstrap.js.map +1 -0
  63. package/dist/caamp/adapter.js +259 -0
  64. package/dist/caamp/adapter.js.map +1 -0
  65. package/dist/caamp/capability-check.js +38 -0
  66. package/dist/caamp/capability-check.js.map +1 -0
  67. package/dist/caamp/index.js +21 -0
  68. package/dist/caamp/index.js.map +1 -0
  69. package/dist/caamp-init.js +16 -0
  70. package/dist/caamp-init.js.map +1 -0
  71. package/dist/cleo.js +322 -0
  72. package/dist/cleo.js.map +1 -0
  73. package/dist/code/index.js +14 -0
  74. package/dist/code/index.js.map +1 -0
  75. package/dist/code/outline.js +165 -0
  76. package/dist/code/outline.js.map +1 -0
  77. package/dist/code/parser.js +420 -0
  78. package/dist/code/parser.js.map +1 -0
  79. package/dist/code/search.js +135 -0
  80. package/dist/code/search.js.map +1 -0
  81. package/dist/code/unfold.js +155 -0
  82. package/dist/code/unfold.js.map +1 -0
  83. package/dist/codebase-map/analyzers/architecture.js +129 -0
  84. package/dist/codebase-map/analyzers/architecture.js.map +1 -0
  85. package/dist/codebase-map/analyzers/concerns.js +122 -0
  86. package/dist/codebase-map/analyzers/concerns.js.map +1 -0
  87. package/dist/codebase-map/analyzers/conventions.js +149 -0
  88. package/dist/codebase-map/analyzers/conventions.js.map +1 -0
  89. package/dist/codebase-map/analyzers/integrations.js +108 -0
  90. package/dist/codebase-map/analyzers/integrations.js.map +1 -0
  91. package/dist/codebase-map/analyzers/stack.js +117 -0
  92. package/dist/codebase-map/analyzers/stack.js.map +1 -0
  93. package/dist/codebase-map/analyzers/structure.js +137 -0
  94. package/dist/codebase-map/analyzers/structure.js.map +1 -0
  95. package/dist/codebase-map/analyzers/testing.js +118 -0
  96. package/dist/codebase-map/analyzers/testing.js.map +1 -0
  97. package/dist/codebase-map/index.js +57 -0
  98. package/dist/codebase-map/index.js.map +1 -0
  99. package/dist/codebase-map/store.js +122 -0
  100. package/dist/codebase-map/store.js.map +1 -0
  101. package/dist/codebase-map/summary.js +152 -0
  102. package/dist/codebase-map/summary.js.map +1 -0
  103. package/dist/compliance/index.js +288 -0
  104. package/dist/compliance/index.js.map +1 -0
  105. package/dist/compliance/protocol-enforcement.js +332 -0
  106. package/dist/compliance/protocol-enforcement.js.map +1 -0
  107. package/dist/compliance/protocol-rules.js +786 -0
  108. package/dist/compliance/protocol-rules.js.map +1 -0
  109. package/dist/compliance/protocol-types.js +79 -0
  110. package/dist/compliance/protocol-types.js.map +1 -0
  111. package/dist/compliance/store.js +53 -0
  112. package/dist/compliance/store.js.map +1 -0
  113. package/dist/conduit/conduit-client.js +107 -0
  114. package/dist/conduit/conduit-client.js.map +1 -0
  115. package/dist/conduit/factory.js +52 -0
  116. package/dist/conduit/factory.js.map +1 -0
  117. package/dist/conduit/http-transport.js +155 -0
  118. package/dist/conduit/http-transport.js.map +1 -0
  119. package/dist/conduit/index.js +15 -0
  120. package/dist/conduit/index.js.map +1 -0
  121. package/dist/conduit/local-transport.js +255 -0
  122. package/dist/conduit/local-transport.js.map +1 -0
  123. package/dist/conduit/sse-transport.js +299 -0
  124. package/dist/conduit/sse-transport.js.map +1 -0
  125. package/dist/config/build-config.js +29 -0
  126. package/dist/config/build-config.js.map +1 -0
  127. package/dist/config.js +400 -0
  128. package/dist/config.js.map +1 -0
  129. package/dist/constants.js +18 -0
  130. package/dist/constants.js.map +1 -0
  131. package/dist/context/index.js +137 -0
  132. package/dist/context/index.js.map +1 -0
  133. package/dist/crypto/credentials.js +219 -0
  134. package/dist/crypto/credentials.js.map +1 -0
  135. package/dist/discovery.js +182 -0
  136. package/dist/discovery.js.map +1 -0
  137. package/dist/engine-result.js +12 -0
  138. package/dist/engine-result.js.map +1 -0
  139. package/dist/error-catalog.js +404 -0
  140. package/dist/error-catalog.js.map +1 -0
  141. package/dist/error-registry.js +393 -0
  142. package/dist/error-registry.js.map +1 -0
  143. package/dist/errors.js +173 -0
  144. package/dist/errors.js.map +1 -0
  145. package/dist/hooks/handlers/agent-hooks.js +106 -0
  146. package/dist/hooks/handlers/agent-hooks.js.map +1 -0
  147. package/dist/hooks/handlers/context-hooks.js +111 -0
  148. package/dist/hooks/handlers/context-hooks.js.map +1 -0
  149. package/dist/hooks/handlers/error-hooks.js +52 -0
  150. package/dist/hooks/handlers/error-hooks.js.map +1 -0
  151. package/dist/hooks/handlers/file-hooks.js +104 -0
  152. package/dist/hooks/handlers/file-hooks.js.map +1 -0
  153. package/dist/hooks/handlers/handler-helpers.js +61 -0
  154. package/dist/hooks/handlers/handler-helpers.js.map +1 -0
  155. package/dist/hooks/handlers/index.d.ts +4 -0
  156. package/dist/hooks/handlers/index.d.ts.map +1 -1
  157. package/dist/hooks/handlers/index.js +34 -0
  158. package/dist/hooks/handlers/index.js.map +1 -0
  159. package/dist/hooks/handlers/intelligence-hooks.d.ts +26 -0
  160. package/dist/hooks/handlers/intelligence-hooks.d.ts.map +1 -0
  161. package/dist/hooks/handlers/intelligence-hooks.js +69 -0
  162. package/dist/hooks/handlers/intelligence-hooks.js.map +1 -0
  163. package/dist/hooks/handlers/memory-bridge-refresh.js +42 -0
  164. package/dist/hooks/handlers/memory-bridge-refresh.js.map +1 -0
  165. package/dist/hooks/handlers/notification-hooks.js +62 -0
  166. package/dist/hooks/handlers/notification-hooks.js.map +1 -0
  167. package/dist/hooks/handlers/session-hooks.d.ts +16 -0
  168. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  169. package/dist/hooks/handlers/session-hooks.js +157 -0
  170. package/dist/hooks/handlers/session-hooks.js.map +1 -0
  171. package/dist/hooks/handlers/task-hooks.js +65 -0
  172. package/dist/hooks/handlers/task-hooks.js.map +1 -0
  173. package/dist/hooks/handlers/watchdog-hooks.d.ts +49 -0
  174. package/dist/hooks/handlers/watchdog-hooks.d.ts.map +1 -0
  175. package/dist/hooks/handlers/watchdog-hooks.js +162 -0
  176. package/dist/hooks/handlers/watchdog-hooks.js.map +1 -0
  177. package/dist/hooks/handlers/work-capture-hooks.js +165 -0
  178. package/dist/hooks/handlers/work-capture-hooks.js.map +1 -0
  179. package/dist/hooks/index.js +13 -0
  180. package/dist/hooks/index.js.map +1 -0
  181. package/dist/hooks/payload-schemas.js +220 -0
  182. package/dist/hooks/payload-schemas.js.map +1 -0
  183. package/dist/hooks/provider-hooks.js +66 -0
  184. package/dist/hooks/provider-hooks.js.map +1 -0
  185. package/dist/hooks/registry.js +229 -0
  186. package/dist/hooks/registry.js.map +1 -0
  187. package/dist/hooks/types.js +66 -0
  188. package/dist/hooks/types.js.map +1 -0
  189. package/dist/hooks.js +136 -0
  190. package/dist/hooks.js.map +1 -0
  191. package/dist/index.js +3828 -2167
  192. package/dist/index.js.map +4 -4
  193. package/dist/init.js +920 -0
  194. package/dist/init.js.map +1 -0
  195. package/dist/inject/index.js +82 -0
  196. package/dist/inject/index.js.map +1 -0
  197. package/dist/injection.d.ts +13 -1
  198. package/dist/injection.d.ts.map +1 -1
  199. package/dist/injection.js +377 -0
  200. package/dist/injection.js.map +1 -0
  201. package/dist/intelligence/adaptive-validation.js +497 -0
  202. package/dist/intelligence/adaptive-validation.js.map +1 -0
  203. package/dist/intelligence/impact.js +675 -0
  204. package/dist/intelligence/impact.js.map +1 -0
  205. package/dist/intelligence/index.js +22 -0
  206. package/dist/intelligence/index.js.map +1 -0
  207. package/dist/intelligence/patterns.js +492 -0
  208. package/dist/intelligence/patterns.js.map +1 -0
  209. package/dist/intelligence/prediction.js +499 -0
  210. package/dist/intelligence/prediction.js.map +1 -0
  211. package/dist/intelligence/types.js +13 -0
  212. package/dist/intelligence/types.js.map +1 -0
  213. package/dist/internal.d.ts +8 -3
  214. package/dist/internal.d.ts.map +1 -1
  215. package/dist/internal.js +320 -0
  216. package/dist/internal.js.map +1 -0
  217. package/dist/issue/create.js +121 -0
  218. package/dist/issue/create.js.map +1 -0
  219. package/dist/issue/diagnostics.js +59 -0
  220. package/dist/issue/diagnostics.js.map +1 -0
  221. package/dist/issue/index.js +10 -0
  222. package/dist/issue/index.js.map +1 -0
  223. package/dist/issue/template-parser.js +267 -0
  224. package/dist/issue/template-parser.js.map +1 -0
  225. package/dist/json-schema-validator.js +76 -0
  226. package/dist/json-schema-validator.js.map +1 -0
  227. package/dist/lib/index.js +11 -0
  228. package/dist/lib/index.js.map +1 -0
  229. package/dist/lib/retry.js +152 -0
  230. package/dist/lib/retry.js.map +1 -0
  231. package/dist/lib/tree-sitter-languages.js +75 -0
  232. package/dist/lib/tree-sitter-languages.js.map +1 -0
  233. package/dist/lifecycle/chain-composition.js +152 -0
  234. package/dist/lifecycle/chain-composition.js.map +1 -0
  235. package/dist/lifecycle/chain-store.js +246 -0
  236. package/dist/lifecycle/chain-store.js.map +1 -0
  237. package/dist/lifecycle/consolidate-rcasd.js +352 -0
  238. package/dist/lifecycle/consolidate-rcasd.js.map +1 -0
  239. package/dist/lifecycle/default-chain.js +176 -0
  240. package/dist/lifecycle/default-chain.js.map +1 -0
  241. package/dist/lifecycle/evidence.js +180 -0
  242. package/dist/lifecycle/evidence.js.map +1 -0
  243. package/dist/lifecycle/frontmatter.js +363 -0
  244. package/dist/lifecycle/frontmatter.js.map +1 -0
  245. package/dist/lifecycle/index.js +756 -0
  246. package/dist/lifecycle/index.js.map +1 -0
  247. package/dist/lifecycle/pipeline.js +656 -0
  248. package/dist/lifecycle/pipeline.js.map +1 -0
  249. package/dist/lifecycle/rcasd-index.js +326 -0
  250. package/dist/lifecycle/rcasd-index.js.map +1 -0
  251. package/dist/lifecycle/rcasd-paths.js +220 -0
  252. package/dist/lifecycle/rcasd-paths.js.map +1 -0
  253. package/dist/lifecycle/resume.js +864 -0
  254. package/dist/lifecycle/resume.js.map +1 -0
  255. package/dist/lifecycle/stage-artifacts.js +94 -0
  256. package/dist/lifecycle/stage-artifacts.js.map +1 -0
  257. package/dist/lifecycle/stage-guidance.js +234 -0
  258. package/dist/lifecycle/stage-guidance.js.map +1 -0
  259. package/dist/lifecycle/stages.js +534 -0
  260. package/dist/lifecycle/stages.js.map +1 -0
  261. package/dist/lifecycle/state-machine.js +516 -0
  262. package/dist/lifecycle/state-machine.js.map +1 -0
  263. package/dist/lifecycle/tessera-engine.js +249 -0
  264. package/dist/lifecycle/tessera-engine.js.map +1 -0
  265. package/dist/logger.js +140 -0
  266. package/dist/logger.js.map +1 -0
  267. package/dist/memory/auto-extract.js +96 -0
  268. package/dist/memory/auto-extract.js.map +1 -0
  269. package/dist/memory/brain-backfill.js +389 -0
  270. package/dist/memory/brain-backfill.js.map +1 -0
  271. package/dist/memory/brain-consolidator.d.ts +48 -0
  272. package/dist/memory/brain-consolidator.d.ts.map +1 -0
  273. package/dist/memory/brain-consolidator.js +294 -0
  274. package/dist/memory/brain-consolidator.js.map +1 -0
  275. package/dist/memory/brain-embedding.js +66 -0
  276. package/dist/memory/brain-embedding.js.map +1 -0
  277. package/dist/memory/brain-lifecycle.d.ts +83 -2
  278. package/dist/memory/brain-lifecycle.d.ts.map +1 -1
  279. package/dist/memory/brain-lifecycle.js +807 -0
  280. package/dist/memory/brain-lifecycle.js.map +1 -0
  281. package/dist/memory/brain-links.js +161 -0
  282. package/dist/memory/brain-links.js.map +1 -0
  283. package/dist/memory/brain-maintenance.js +114 -0
  284. package/dist/memory/brain-maintenance.js.map +1 -0
  285. package/dist/memory/brain-migration.js +149 -0
  286. package/dist/memory/brain-migration.js.map +1 -0
  287. package/dist/memory/brain-purge.js +243 -0
  288. package/dist/memory/brain-purge.js.map +1 -0
  289. package/dist/memory/brain-reasoning.js +215 -0
  290. package/dist/memory/brain-reasoning.js.map +1 -0
  291. package/dist/memory/brain-retrieval.d.ts +69 -1
  292. package/dist/memory/brain-retrieval.d.ts.map +1 -1
  293. package/dist/memory/brain-retrieval.js +912 -0
  294. package/dist/memory/brain-retrieval.js.map +1 -0
  295. package/dist/memory/brain-row-types.js +10 -0
  296. package/dist/memory/brain-row-types.js.map +1 -0
  297. package/dist/memory/brain-search.d.ts.map +1 -1
  298. package/dist/memory/brain-search.js +528 -0
  299. package/dist/memory/brain-search.js.map +1 -0
  300. package/dist/memory/brain-similarity.js +145 -0
  301. package/dist/memory/brain-similarity.js.map +1 -0
  302. package/dist/memory/claude-mem-migration.js +277 -0
  303. package/dist/memory/claude-mem-migration.js.map +1 -0
  304. package/dist/memory/decisions.d.ts.map +1 -1
  305. package/dist/memory/decisions.js +218 -0
  306. package/dist/memory/decisions.js.map +1 -0
  307. package/dist/memory/embedding-local.js +102 -0
  308. package/dist/memory/embedding-local.js.map +1 -0
  309. package/dist/memory/embedding-queue.js +271 -0
  310. package/dist/memory/embedding-queue.js.map +1 -0
  311. package/dist/memory/embedding-worker.js +58 -0
  312. package/dist/memory/embedding-worker.js.map +1 -0
  313. package/dist/memory/engine-compat.d.ts.map +1 -1
  314. package/dist/memory/engine-compat.js +1564 -0
  315. package/dist/memory/engine-compat.js.map +1 -0
  316. package/dist/memory/extraction-gate.d.ts +139 -0
  317. package/dist/memory/extraction-gate.d.ts.map +1 -0
  318. package/dist/memory/extraction-gate.js +459 -0
  319. package/dist/memory/extraction-gate.js.map +1 -0
  320. package/dist/memory/graph-auto-populate.js +148 -0
  321. package/dist/memory/graph-auto-populate.js.map +1 -0
  322. package/dist/memory/graph-queries.js +290 -0
  323. package/dist/memory/graph-queries.js.map +1 -0
  324. package/dist/memory/index.d.ts +2 -0
  325. package/dist/memory/index.d.ts.map +1 -1
  326. package/dist/memory/index.js +1144 -0
  327. package/dist/memory/index.js.map +1 -0
  328. package/dist/memory/learnings.d.ts +14 -0
  329. package/dist/memory/learnings.d.ts.map +1 -1
  330. package/dist/memory/learnings.js +178 -0
  331. package/dist/memory/learnings.js.map +1 -0
  332. package/dist/memory/memory-bridge.js +370 -0
  333. package/dist/memory/memory-bridge.js.map +1 -0
  334. package/dist/memory/mental-model-injection.js +61 -0
  335. package/dist/memory/mental-model-injection.js.map +1 -0
  336. package/dist/memory/mental-model-queue.js +211 -0
  337. package/dist/memory/mental-model-queue.js.map +1 -0
  338. package/dist/memory/patterns.d.ts +24 -4
  339. package/dist/memory/patterns.d.ts.map +1 -1
  340. package/dist/memory/patterns.js +174 -0
  341. package/dist/memory/patterns.js.map +1 -0
  342. package/dist/memory/pipeline-manifest-sqlite.js +975 -0
  343. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -0
  344. package/dist/memory/quality-scoring.d.ts +42 -5
  345. package/dist/memory/quality-scoring.d.ts.map +1 -1
  346. package/dist/memory/quality-scoring.js +182 -0
  347. package/dist/memory/quality-scoring.js.map +1 -0
  348. package/dist/memory/session-memory.js +331 -0
  349. package/dist/memory/session-memory.js.map +1 -0
  350. package/dist/metrics/ab-test.js +260 -0
  351. package/dist/metrics/ab-test.js.map +1 -0
  352. package/dist/metrics/aggregation.js +363 -0
  353. package/dist/metrics/aggregation.js.map +1 -0
  354. package/dist/metrics/common.js +64 -0
  355. package/dist/metrics/common.js.map +1 -0
  356. package/dist/metrics/enums.js +78 -0
  357. package/dist/metrics/enums.js.map +1 -0
  358. package/dist/metrics/index.js +19 -0
  359. package/dist/metrics/index.js.map +1 -0
  360. package/dist/metrics/model-provider-registry.js +88 -0
  361. package/dist/metrics/model-provider-registry.js.map +1 -0
  362. package/dist/metrics/otel-integration.js +263 -0
  363. package/dist/metrics/otel-integration.js.map +1 -0
  364. package/dist/metrics/provider-detection.js +103 -0
  365. package/dist/metrics/provider-detection.js.map +1 -0
  366. package/dist/metrics/token-estimation.js +253 -0
  367. package/dist/metrics/token-estimation.js.map +1 -0
  368. package/dist/metrics/token-service.js +450 -0
  369. package/dist/metrics/token-service.js.map +1 -0
  370. package/dist/migration/agent-outputs.js +316 -0
  371. package/dist/migration/agent-outputs.js.map +1 -0
  372. package/dist/migration/checksum.js +92 -0
  373. package/dist/migration/checksum.js.map +1 -0
  374. package/dist/migration/index.js +282 -0
  375. package/dist/migration/index.js.map +1 -0
  376. package/dist/migration/logger.js +360 -0
  377. package/dist/migration/logger.js.map +1 -0
  378. package/dist/migration/preflight.js +9 -0
  379. package/dist/migration/preflight.js.map +1 -0
  380. package/dist/migration/state.js +421 -0
  381. package/dist/migration/state.js.map +1 -0
  382. package/dist/migration/validate.js +241 -0
  383. package/dist/migration/validate.js.map +1 -0
  384. package/dist/mvi-helpers.js +73 -0
  385. package/dist/mvi-helpers.js.map +1 -0
  386. package/dist/nexus/deps.js +375 -0
  387. package/dist/nexus/deps.js.map +1 -0
  388. package/dist/nexus/discover.js +288 -0
  389. package/dist/nexus/discover.js.map +1 -0
  390. package/dist/nexus/hash.js +10 -0
  391. package/dist/nexus/hash.js.map +1 -0
  392. package/dist/nexus/index.js +40 -0
  393. package/dist/nexus/index.js.map +1 -0
  394. package/dist/nexus/migrate-json-to-sqlite.js +115 -0
  395. package/dist/nexus/migrate-json-to-sqlite.js.map +1 -0
  396. package/dist/nexus/nexus-bridge.d.ts +51 -0
  397. package/dist/nexus/nexus-bridge.d.ts.map +1 -0
  398. package/dist/nexus/nexus-bridge.js +321 -0
  399. package/dist/nexus/nexus-bridge.js.map +1 -0
  400. package/dist/nexus/permissions.js +105 -0
  401. package/dist/nexus/permissions.js.map +1 -0
  402. package/dist/nexus/query.js +175 -0
  403. package/dist/nexus/query.js.map +1 -0
  404. package/dist/nexus/registry.js +584 -0
  405. package/dist/nexus/registry.js.map +1 -0
  406. package/dist/nexus/sharing/index.js +288 -0
  407. package/dist/nexus/sharing/index.js.map +1 -0
  408. package/dist/nexus/transfer-types.js +8 -0
  409. package/dist/nexus/transfer-types.js.map +1 -0
  410. package/dist/nexus/transfer.js +271 -0
  411. package/dist/nexus/transfer.js.map +1 -0
  412. package/dist/nexus/workspace.js +355 -0
  413. package/dist/nexus/workspace.js.map +1 -0
  414. package/dist/observability/index.js +103 -0
  415. package/dist/observability/index.js.map +1 -0
  416. package/dist/observability/log-filter.js +63 -0
  417. package/dist/observability/log-filter.js.map +1 -0
  418. package/dist/observability/log-parser.js +99 -0
  419. package/dist/observability/log-parser.js.map +1 -0
  420. package/dist/observability/log-reader.js +139 -0
  421. package/dist/observability/log-reader.js.map +1 -0
  422. package/dist/observability/types.js +19 -0
  423. package/dist/observability/types.js.map +1 -0
  424. package/dist/orchestration/analyze.js +107 -0
  425. package/dist/orchestration/analyze.js.map +1 -0
  426. package/dist/orchestration/bootstrap.js +132 -0
  427. package/dist/orchestration/bootstrap.js.map +1 -0
  428. package/dist/orchestration/context.js +56 -0
  429. package/dist/orchestration/context.js.map +1 -0
  430. package/dist/orchestration/critical-path.js +100 -0
  431. package/dist/orchestration/critical-path.js.map +1 -0
  432. package/dist/orchestration/hierarchy.js +183 -0
  433. package/dist/orchestration/hierarchy.js.map +1 -0
  434. package/dist/orchestration/index.js +287 -0
  435. package/dist/orchestration/index.js.map +1 -0
  436. package/dist/orchestration/parallel.js +89 -0
  437. package/dist/orchestration/parallel.js.map +1 -0
  438. package/dist/orchestration/protocol-validators.js +815 -0
  439. package/dist/orchestration/protocol-validators.js.map +1 -0
  440. package/dist/orchestration/skill-ops.js +98 -0
  441. package/dist/orchestration/skill-ops.js.map +1 -0
  442. package/dist/orchestration/status.js +107 -0
  443. package/dist/orchestration/status.js.map +1 -0
  444. package/dist/orchestration/unblock.js +103 -0
  445. package/dist/orchestration/unblock.js.map +1 -0
  446. package/dist/orchestration/validate-spawn.js +67 -0
  447. package/dist/orchestration/validate-spawn.js.map +1 -0
  448. package/dist/orchestration/waves.js +86 -0
  449. package/dist/orchestration/waves.js.map +1 -0
  450. package/dist/otel/index.js +163 -0
  451. package/dist/otel/index.js.map +1 -0
  452. package/dist/output.js +164 -0
  453. package/dist/output.js.map +1 -0
  454. package/dist/pagination.js +64 -0
  455. package/dist/pagination.js.map +1 -0
  456. package/dist/paths.js +882 -0
  457. package/dist/paths.js.map +1 -0
  458. package/dist/phases/deps.js +372 -0
  459. package/dist/phases/deps.js.map +1 -0
  460. package/dist/phases/index.js +349 -0
  461. package/dist/phases/index.js.map +1 -0
  462. package/dist/pipeline/index.js +10 -0
  463. package/dist/pipeline/index.js.map +1 -0
  464. package/dist/pipeline/phase.js +45 -0
  465. package/dist/pipeline/phase.js.map +1 -0
  466. package/dist/platform.js +211 -0
  467. package/dist/platform.js.map +1 -0
  468. package/dist/project-info.js +84 -0
  469. package/dist/project-info.js.map +1 -0
  470. package/dist/reconciliation/index.js +10 -0
  471. package/dist/reconciliation/index.js.map +1 -0
  472. package/dist/reconciliation/link-store.js +175 -0
  473. package/dist/reconciliation/link-store.js.map +1 -0
  474. package/dist/reconciliation/reconciliation-engine.js +298 -0
  475. package/dist/reconciliation/reconciliation-engine.js.map +1 -0
  476. package/dist/release/artifacts.js +427 -0
  477. package/dist/release/artifacts.js.map +1 -0
  478. package/dist/release/changelog-writer.js +151 -0
  479. package/dist/release/changelog-writer.js.map +1 -0
  480. package/dist/release/channel.js +144 -0
  481. package/dist/release/channel.js.map +1 -0
  482. package/dist/release/ci.js +166 -0
  483. package/dist/release/ci.js.map +1 -0
  484. package/dist/release/github-pr.js +225 -0
  485. package/dist/release/github-pr.js.map +1 -0
  486. package/dist/release/guards.js +116 -0
  487. package/dist/release/guards.js.map +1 -0
  488. package/dist/release/index.js +22 -0
  489. package/dist/release/index.js.map +1 -0
  490. package/dist/release/release-config.js +158 -0
  491. package/dist/release/release-config.js.map +1 -0
  492. package/dist/release/release-manifest.js +1019 -0
  493. package/dist/release/release-manifest.js.map +1 -0
  494. package/dist/release/version-bump.js +255 -0
  495. package/dist/release/version-bump.js.map +1 -0
  496. package/dist/remote/index.js +257 -0
  497. package/dist/remote/index.js.map +1 -0
  498. package/dist/repair.js +130 -0
  499. package/dist/repair.js.map +1 -0
  500. package/dist/research/index.js +2 -0
  501. package/dist/research/index.js.map +1 -0
  502. package/dist/roadmap/index.js +59 -0
  503. package/dist/roadmap/index.js.map +1 -0
  504. package/dist/routing/capability-matrix.js +1556 -0
  505. package/dist/routing/capability-matrix.js.map +1 -0
  506. package/dist/routing/index.js +9 -0
  507. package/dist/routing/index.js.map +1 -0
  508. package/dist/scaffold.d.ts +18 -0
  509. package/dist/scaffold.d.ts.map +1 -1
  510. package/dist/scaffold.js +1798 -0
  511. package/dist/scaffold.js.map +1 -0
  512. package/dist/schema-management.js +295 -0
  513. package/dist/schema-management.js.map +1 -0
  514. package/dist/security/index.js +9 -0
  515. package/dist/security/index.js.map +1 -0
  516. package/dist/security/input-sanitization.js +326 -0
  517. package/dist/security/input-sanitization.js.map +1 -0
  518. package/dist/sequence/index.js +295 -0
  519. package/dist/sequence/index.js.map +1 -0
  520. package/dist/sessions/assumptions.js +54 -0
  521. package/dist/sessions/assumptions.js.map +1 -0
  522. package/dist/sessions/briefing.js +377 -0
  523. package/dist/sessions/briefing.js.map +1 -0
  524. package/dist/sessions/context-alert.js +222 -0
  525. package/dist/sessions/context-alert.js.map +1 -0
  526. package/dist/sessions/context-inject.js +61 -0
  527. package/dist/sessions/context-inject.js.map +1 -0
  528. package/dist/sessions/context-monitor.js +98 -0
  529. package/dist/sessions/context-monitor.js.map +1 -0
  530. package/dist/sessions/decisions.js +65 -0
  531. package/dist/sessions/decisions.js.map +1 -0
  532. package/dist/sessions/find.js +65 -0
  533. package/dist/sessions/find.js.map +1 -0
  534. package/dist/sessions/handoff.js +328 -0
  535. package/dist/sessions/handoff.js.map +1 -0
  536. package/dist/sessions/hitl-warnings.js +254 -0
  537. package/dist/sessions/hitl-warnings.js.map +1 -0
  538. package/dist/sessions/index.js +327 -0
  539. package/dist/sessions/index.js.map +1 -0
  540. package/dist/sessions/session-archive.js +40 -0
  541. package/dist/sessions/session-archive.js.map +1 -0
  542. package/dist/sessions/session-cleanup.js +59 -0
  543. package/dist/sessions/session-cleanup.js.map +1 -0
  544. package/dist/sessions/session-drift.js +134 -0
  545. package/dist/sessions/session-drift.js.map +1 -0
  546. package/dist/sessions/session-enforcement.js +144 -0
  547. package/dist/sessions/session-enforcement.js.map +1 -0
  548. package/dist/sessions/session-grade.js +253 -0
  549. package/dist/sessions/session-grade.js.map +1 -0
  550. package/dist/sessions/session-history.js +42 -0
  551. package/dist/sessions/session-history.js.map +1 -0
  552. package/dist/sessions/session-id.js +81 -0
  553. package/dist/sessions/session-id.js.map +1 -0
  554. package/dist/sessions/session-memory-bridge.js +30 -0
  555. package/dist/sessions/session-memory-bridge.js.map +1 -0
  556. package/dist/sessions/session-show.js +24 -0
  557. package/dist/sessions/session-show.js.map +1 -0
  558. package/dist/sessions/session-stats.js +69 -0
  559. package/dist/sessions/session-stats.js.map +1 -0
  560. package/dist/sessions/session-suspend.js +39 -0
  561. package/dist/sessions/session-suspend.js.map +1 -0
  562. package/dist/sessions/session-switch.js +51 -0
  563. package/dist/sessions/session-switch.js.map +1 -0
  564. package/dist/sessions/session-view.js +76 -0
  565. package/dist/sessions/session-view.js.map +1 -0
  566. package/dist/sessions/snapshot.js +213 -0
  567. package/dist/sessions/snapshot.js.map +1 -0
  568. package/dist/sessions/statusline-setup.js +85 -0
  569. package/dist/sessions/statusline-setup.js.map +1 -0
  570. package/dist/sessions/types.js +8 -0
  571. package/dist/sessions/types.js.map +1 -0
  572. package/dist/skills/agents/config.js +94 -0
  573. package/dist/skills/agents/config.js.map +1 -0
  574. package/dist/skills/agents/install.js +116 -0
  575. package/dist/skills/agents/install.js.map +1 -0
  576. package/dist/skills/agents/registry.js +161 -0
  577. package/dist/skills/agents/registry.js.map +1 -0
  578. package/dist/skills/discovery.js +333 -0
  579. package/dist/skills/discovery.js.map +1 -0
  580. package/dist/skills/dispatch.js +347 -0
  581. package/dist/skills/dispatch.js.map +1 -0
  582. package/dist/skills/dynamic-skill-generator.js +87 -0
  583. package/dist/skills/dynamic-skill-generator.js.map +1 -0
  584. package/dist/skills/index.js +44 -0
  585. package/dist/skills/index.js.map +1 -0
  586. package/dist/skills/injection/subagent.js +195 -0
  587. package/dist/skills/injection/subagent.js.map +1 -0
  588. package/dist/skills/injection/token.js +260 -0
  589. package/dist/skills/injection/token.js.map +1 -0
  590. package/dist/skills/install.js +40 -0
  591. package/dist/skills/install.js.map +1 -0
  592. package/dist/skills/manifests/contribution.js +175 -0
  593. package/dist/skills/manifests/contribution.js.map +1 -0
  594. package/dist/skills/manifests/research.js +281 -0
  595. package/dist/skills/manifests/research.js.map +1 -0
  596. package/dist/skills/manifests/resolver.js +146 -0
  597. package/dist/skills/manifests/resolver.js.map +1 -0
  598. package/dist/skills/marketplace.js +90 -0
  599. package/dist/skills/marketplace.js.map +1 -0
  600. package/dist/skills/orchestrator/spawn.js +178 -0
  601. package/dist/skills/orchestrator/spawn.js.map +1 -0
  602. package/dist/skills/orchestrator/startup.js +451 -0
  603. package/dist/skills/orchestrator/startup.js.map +1 -0
  604. package/dist/skills/orchestrator/validator.js +301 -0
  605. package/dist/skills/orchestrator/validator.js.map +1 -0
  606. package/dist/skills/precedence-integration.js +73 -0
  607. package/dist/skills/precedence-integration.js.map +1 -0
  608. package/dist/skills/precedence-types.js +16 -0
  609. package/dist/skills/precedence-types.js.map +1 -0
  610. package/dist/skills/routing-table.js +63 -0
  611. package/dist/skills/routing-table.js.map +1 -0
  612. package/dist/skills/skill-paths.js +217 -0
  613. package/dist/skills/skill-paths.js.map +1 -0
  614. package/dist/skills/test-utility.js +55 -0
  615. package/dist/skills/test-utility.js.map +1 -0
  616. package/dist/skills/types.js +118 -0
  617. package/dist/skills/types.js.map +1 -0
  618. package/dist/skills/validation.js +183 -0
  619. package/dist/skills/validation.js.map +1 -0
  620. package/dist/skills/version.js +57 -0
  621. package/dist/skills/version.js.map +1 -0
  622. package/dist/snapshot/index.js +188 -0
  623. package/dist/snapshot/index.js.map +1 -0
  624. package/dist/spawn/adapter-registry.js +246 -0
  625. package/dist/spawn/adapter-registry.js.map +1 -0
  626. package/dist/spawn/index.js +10 -0
  627. package/dist/spawn/index.js.map +1 -0
  628. package/dist/stats/index.d.ts.map +1 -1
  629. package/dist/stats/index.js +350 -0
  630. package/dist/stats/index.js.map +1 -0
  631. package/dist/stats/workflow-telemetry.js +400 -0
  632. package/dist/stats/workflow-telemetry.js.map +1 -0
  633. package/dist/sticky/archive.js +47 -0
  634. package/dist/sticky/archive.js.map +1 -0
  635. package/dist/sticky/convert.js +235 -0
  636. package/dist/sticky/convert.js.map +1 -0
  637. package/dist/sticky/create.js +48 -0
  638. package/dist/sticky/create.js.map +1 -0
  639. package/dist/sticky/id.js +35 -0
  640. package/dist/sticky/id.js.map +1 -0
  641. package/dist/sticky/index.js +16 -0
  642. package/dist/sticky/index.js.map +1 -0
  643. package/dist/sticky/list.js +57 -0
  644. package/dist/sticky/list.js.map +1 -0
  645. package/dist/sticky/purge.js +45 -0
  646. package/dist/sticky/purge.js.map +1 -0
  647. package/dist/sticky/show.js +42 -0
  648. package/dist/sticky/show.js.map +1 -0
  649. package/dist/sticky/types.js +10 -0
  650. package/dist/sticky/types.js.map +1 -0
  651. package/dist/store/agent-registry-accessor.js +886 -0
  652. package/dist/store/agent-registry-accessor.js.map +1 -0
  653. package/dist/store/api-key-kdf.js +84 -0
  654. package/dist/store/api-key-kdf.js.map +1 -0
  655. package/dist/store/atomic.js +167 -0
  656. package/dist/store/atomic.js.map +1 -0
  657. package/dist/store/backup-crypto.js +184 -0
  658. package/dist/store/backup-crypto.js.map +1 -0
  659. package/dist/store/backup-pack.js +581 -0
  660. package/dist/store/backup-pack.js.map +1 -0
  661. package/dist/store/backup-unpack.js +449 -0
  662. package/dist/store/backup-unpack.js.map +1 -0
  663. package/dist/store/backup.js +94 -0
  664. package/dist/store/backup.js.map +1 -0
  665. package/dist/store/brain-accessor.js +429 -0
  666. package/dist/store/brain-accessor.js.map +1 -0
  667. package/dist/store/brain-schema.d.ts +496 -3
  668. package/dist/store/brain-schema.d.ts.map +1 -1
  669. package/dist/store/brain-schema.js +549 -0
  670. package/dist/store/brain-schema.js.map +1 -0
  671. package/dist/store/brain-sqlite.d.ts.map +1 -1
  672. package/dist/store/brain-sqlite.js +257 -0
  673. package/dist/store/brain-sqlite.js.map +1 -0
  674. package/dist/store/cache.js +168 -0
  675. package/dist/store/cache.js.map +1 -0
  676. package/dist/store/chain-schema.js +51 -0
  677. package/dist/store/chain-schema.js.map +1 -0
  678. package/dist/store/cleanup-legacy.js +171 -0
  679. package/dist/store/cleanup-legacy.js.map +1 -0
  680. package/dist/store/conduit-sqlite.js +570 -0
  681. package/dist/store/conduit-sqlite.js.map +1 -0
  682. package/dist/store/converters.js +124 -0
  683. package/dist/store/converters.js.map +1 -0
  684. package/dist/store/cross-db-cleanup.js +319 -0
  685. package/dist/store/cross-db-cleanup.js.map +1 -0
  686. package/dist/store/data-accessor.js +26 -0
  687. package/dist/store/data-accessor.js.map +1 -0
  688. package/dist/store/data-safety-central.js +269 -0
  689. package/dist/store/data-safety-central.js.map +1 -0
  690. package/dist/store/data-safety.js +274 -0
  691. package/dist/store/data-safety.js.map +1 -0
  692. package/dist/store/db-helpers.js +224 -0
  693. package/dist/store/db-helpers.js.map +1 -0
  694. package/dist/store/export.js +155 -0
  695. package/dist/store/export.js.map +1 -0
  696. package/dist/store/file-utils.js +270 -0
  697. package/dist/store/file-utils.js.map +1 -0
  698. package/dist/store/git-checkpoint.js +365 -0
  699. package/dist/store/git-checkpoint.js.map +1 -0
  700. package/dist/store/global-salt.js +147 -0
  701. package/dist/store/global-salt.js.map +1 -0
  702. package/dist/store/import-logging.js +139 -0
  703. package/dist/store/import-logging.js.map +1 -0
  704. package/dist/store/import-remap.js +145 -0
  705. package/dist/store/import-remap.js.map +1 -0
  706. package/dist/store/import-sort.js +121 -0
  707. package/dist/store/import-sort.js.map +1 -0
  708. package/dist/store/index.js +29 -0
  709. package/dist/store/index.js.map +1 -0
  710. package/dist/store/json.js +208 -0
  711. package/dist/store/json.js.map +1 -0
  712. package/dist/store/lifecycle-store.js +249 -0
  713. package/dist/store/lifecycle-store.js.map +1 -0
  714. package/dist/store/lock.js +70 -0
  715. package/dist/store/lock.js.map +1 -0
  716. package/dist/store/migrate-signaldock-to-conduit.js +562 -0
  717. package/dist/store/migrate-signaldock-to-conduit.js.map +1 -0
  718. package/dist/store/migration-manager.d.ts +5 -1
  719. package/dist/store/migration-manager.d.ts.map +1 -1
  720. package/dist/store/migration-manager.js +288 -0
  721. package/dist/store/migration-manager.js.map +1 -0
  722. package/dist/store/migration-sqlite.js +676 -0
  723. package/dist/store/migration-sqlite.js.map +1 -0
  724. package/dist/store/nexus-schema.js +268 -0
  725. package/dist/store/nexus-schema.js.map +1 -0
  726. package/dist/store/nexus-sqlite.js +242 -0
  727. package/dist/store/nexus-sqlite.js.map +1 -0
  728. package/dist/store/nexus-validation-schemas.js +40 -0
  729. package/dist/store/nexus-validation-schemas.js.map +1 -0
  730. package/dist/store/parsers.js +37 -0
  731. package/dist/store/parsers.js.map +1 -0
  732. package/dist/store/project-detect.js +457 -0
  733. package/dist/store/project-detect.js.map +1 -0
  734. package/dist/store/provider.js +101 -0
  735. package/dist/store/provider.js.map +1 -0
  736. package/dist/store/regenerators.js +207 -0
  737. package/dist/store/regenerators.js.map +1 -0
  738. package/dist/store/restore-conflict-report.js +206 -0
  739. package/dist/store/restore-conflict-report.js.map +1 -0
  740. package/dist/store/restore-json-merge.js +454 -0
  741. package/dist/store/restore-json-merge.js.map +1 -0
  742. package/dist/store/safety-data-accessor.js +257 -0
  743. package/dist/store/safety-data-accessor.js.map +1 -0
  744. package/dist/store/schema.js +7 -0
  745. package/dist/store/schema.js.map +1 -0
  746. package/dist/store/session-store.js +219 -0
  747. package/dist/store/session-store.js.map +1 -0
  748. package/dist/store/signaldock-sqlite.js +550 -0
  749. package/dist/store/signaldock-sqlite.js.map +1 -0
  750. package/dist/store/sqlite-backup.js +498 -0
  751. package/dist/store/sqlite-backup.js.map +1 -0
  752. package/dist/store/sqlite-data-accessor.js +787 -0
  753. package/dist/store/sqlite-data-accessor.js.map +1 -0
  754. package/dist/store/sqlite.js +483 -0
  755. package/dist/store/sqlite.js.map +1 -0
  756. package/dist/store/status-registry.js +8 -0
  757. package/dist/store/status-registry.js.map +1 -0
  758. package/dist/store/t310-readiness.js +115 -0
  759. package/dist/store/t310-readiness.js.map +1 -0
  760. package/dist/store/task-store.js +358 -0
  761. package/dist/store/task-store.js.map +1 -0
  762. package/dist/store/tasks-schema.d.ts +1 -1
  763. package/dist/store/tasks-schema.js +610 -0
  764. package/dist/store/tasks-schema.js.map +1 -0
  765. package/dist/store/typed-query.js +15 -0
  766. package/dist/store/typed-query.js.map +1 -0
  767. package/dist/store/validation-schemas.d.ts +6 -6
  768. package/dist/store/validation-schemas.js +278 -0
  769. package/dist/store/validation-schemas.js.map +1 -0
  770. package/dist/system/archive-analytics.js +277 -0
  771. package/dist/system/archive-analytics.js.map +1 -0
  772. package/dist/system/archive-stats.js +64 -0
  773. package/dist/system/archive-stats.js.map +1 -0
  774. package/dist/system/audit.js +145 -0
  775. package/dist/system/audit.js.map +1 -0
  776. package/dist/system/backup.js +280 -0
  777. package/dist/system/backup.js.map +1 -0
  778. package/dist/system/cleanup.js +134 -0
  779. package/dist/system/cleanup.js.map +1 -0
  780. package/dist/system/dependencies.js +466 -0
  781. package/dist/system/dependencies.js.map +1 -0
  782. package/dist/system/health.d.ts.map +1 -1
  783. package/dist/system/health.js +1206 -0
  784. package/dist/system/health.js.map +1 -0
  785. package/dist/system/index.js +18 -0
  786. package/dist/system/index.js.map +1 -0
  787. package/dist/system/inject-generate.js +122 -0
  788. package/dist/system/inject-generate.js.map +1 -0
  789. package/dist/system/labels.js +38 -0
  790. package/dist/system/labels.js.map +1 -0
  791. package/dist/system/metrics.js +61 -0
  792. package/dist/system/metrics.js.map +1 -0
  793. package/dist/system/migrate.js +43 -0
  794. package/dist/system/migrate.js.map +1 -0
  795. package/dist/system/platform-paths.js +80 -0
  796. package/dist/system/platform-paths.js.map +1 -0
  797. package/dist/system/runtime.js +161 -0
  798. package/dist/system/runtime.js.map +1 -0
  799. package/dist/system/safestop.js +89 -0
  800. package/dist/system/safestop.js.map +1 -0
  801. package/dist/system/storage-preflight.js +123 -0
  802. package/dist/system/storage-preflight.js.map +1 -0
  803. package/dist/task-work/index.js +159 -0
  804. package/dist/task-work/index.js.map +1 -0
  805. package/dist/tasks/add.js +837 -0
  806. package/dist/tasks/add.js.map +1 -0
  807. package/dist/tasks/analyze.js +85 -0
  808. package/dist/tasks/analyze.js.map +1 -0
  809. package/dist/tasks/archive.js +90 -0
  810. package/dist/tasks/archive.js.map +1 -0
  811. package/dist/tasks/atomicity.js +83 -0
  812. package/dist/tasks/atomicity.js.map +1 -0
  813. package/dist/tasks/cancel-ops.js +83 -0
  814. package/dist/tasks/cancel-ops.js.map +1 -0
  815. package/dist/tasks/complete.js +229 -0
  816. package/dist/tasks/complete.js.map +1 -0
  817. package/dist/tasks/crossref-extract.js +73 -0
  818. package/dist/tasks/crossref-extract.js.map +1 -0
  819. package/dist/tasks/delete-preview.js +192 -0
  820. package/dist/tasks/delete-preview.js.map +1 -0
  821. package/dist/tasks/delete.js +120 -0
  822. package/dist/tasks/delete.js.map +1 -0
  823. package/dist/tasks/deletion-strategy.js +200 -0
  824. package/dist/tasks/deletion-strategy.js.map +1 -0
  825. package/dist/tasks/dependency-check.js +278 -0
  826. package/dist/tasks/dependency-check.js.map +1 -0
  827. package/dist/tasks/deps-ready.js +32 -0
  828. package/dist/tasks/deps-ready.js.map +1 -0
  829. package/dist/tasks/enforcement.js +86 -0
  830. package/dist/tasks/enforcement.js.map +1 -0
  831. package/dist/tasks/epic-enforcement.js +294 -0
  832. package/dist/tasks/epic-enforcement.js.map +1 -0
  833. package/dist/tasks/find.js +163 -0
  834. package/dist/tasks/find.js.map +1 -0
  835. package/dist/tasks/graph-cache.js +127 -0
  836. package/dist/tasks/graph-cache.js.map +1 -0
  837. package/dist/tasks/graph-ops.d.ts.map +1 -1
  838. package/dist/tasks/graph-ops.js +173 -0
  839. package/dist/tasks/graph-ops.js.map +1 -0
  840. package/dist/tasks/graph-rag.js +328 -0
  841. package/dist/tasks/graph-rag.js.map +1 -0
  842. package/dist/tasks/hierarchy-policy.js +149 -0
  843. package/dist/tasks/hierarchy-policy.js.map +1 -0
  844. package/dist/tasks/hierarchy.js +185 -0
  845. package/dist/tasks/hierarchy.js.map +1 -0
  846. package/dist/tasks/id-generator.js +65 -0
  847. package/dist/tasks/id-generator.js.map +1 -0
  848. package/dist/tasks/index.js +14 -0
  849. package/dist/tasks/index.js.map +1 -0
  850. package/dist/tasks/labels.js +55 -0
  851. package/dist/tasks/labels.js.map +1 -0
  852. package/dist/tasks/list.js +75 -0
  853. package/dist/tasks/list.js.map +1 -0
  854. package/dist/tasks/phase-tracking.js +133 -0
  855. package/dist/tasks/phase-tracking.js.map +1 -0
  856. package/dist/tasks/pipeline-stage.js +248 -0
  857. package/dist/tasks/pipeline-stage.js.map +1 -0
  858. package/dist/tasks/plan.js +268 -0
  859. package/dist/tasks/plan.js.map +1 -0
  860. package/dist/tasks/relates.js +101 -0
  861. package/dist/tasks/relates.js.map +1 -0
  862. package/dist/tasks/show.js +83 -0
  863. package/dist/tasks/show.js.map +1 -0
  864. package/dist/tasks/size-weighting.js +86 -0
  865. package/dist/tasks/size-weighting.js.map +1 -0
  866. package/dist/tasks/staleness.js +86 -0
  867. package/dist/tasks/staleness.js.map +1 -0
  868. package/dist/tasks/task-ops.js +1741 -0
  869. package/dist/tasks/task-ops.js.map +1 -0
  870. package/dist/tasks/update.js +303 -0
  871. package/dist/tasks/update.js.map +1 -0
  872. package/dist/templates/index.js +10 -0
  873. package/dist/templates/index.js.map +1 -0
  874. package/dist/templates/parser.js +254 -0
  875. package/dist/templates/parser.js.map +1 -0
  876. package/dist/ui/aliases.js +153 -0
  877. package/dist/ui/aliases.js.map +1 -0
  878. package/dist/ui/changelog.js +184 -0
  879. package/dist/ui/changelog.js.map +1 -0
  880. package/dist/ui/command-registry.js +168 -0
  881. package/dist/ui/command-registry.js.map +1 -0
  882. package/dist/ui/flags.js +94 -0
  883. package/dist/ui/flags.js.map +1 -0
  884. package/dist/ui/index.js +24 -0
  885. package/dist/ui/index.js.map +1 -0
  886. package/dist/upgrade.js +1148 -0
  887. package/dist/upgrade.js.map +1 -0
  888. package/dist/validation/chain-validation.js +146 -0
  889. package/dist/validation/chain-validation.js.map +1 -0
  890. package/dist/validation/compliance.js +155 -0
  891. package/dist/validation/compliance.js.map +1 -0
  892. package/dist/validation/docs-sync.js +212 -0
  893. package/dist/validation/docs-sync.js.map +1 -0
  894. package/dist/validation/doctor/checks.js +1069 -0
  895. package/dist/validation/doctor/checks.js.map +1 -0
  896. package/dist/validation/doctor/index.js +9 -0
  897. package/dist/validation/doctor/index.js.map +1 -0
  898. package/dist/validation/doctor/project-cache.js +160 -0
  899. package/dist/validation/doctor/project-cache.js.map +1 -0
  900. package/dist/validation/doctor/utils.js +155 -0
  901. package/dist/validation/doctor/utils.js.map +1 -0
  902. package/dist/validation/engine.js +914 -0
  903. package/dist/validation/engine.js.map +1 -0
  904. package/dist/validation/gap-check.js +175 -0
  905. package/dist/validation/gap-check.js.map +1 -0
  906. package/dist/validation/index.js +40 -0
  907. package/dist/validation/index.js.map +1 -0
  908. package/dist/validation/manifest.js +237 -0
  909. package/dist/validation/manifest.js.map +1 -0
  910. package/dist/validation/operation-gate-validators.js +724 -0
  911. package/dist/validation/operation-gate-validators.js.map +1 -0
  912. package/dist/validation/operation-verification-gates.js +532 -0
  913. package/dist/validation/operation-verification-gates.js.map +1 -0
  914. package/dist/validation/param-utils.js +141 -0
  915. package/dist/validation/param-utils.js.map +1 -0
  916. package/dist/validation/protocol-common.js +300 -0
  917. package/dist/validation/protocol-common.js.map +1 -0
  918. package/dist/validation/protocols/_shared.js +82 -0
  919. package/dist/validation/protocols/_shared.js.map +1 -0
  920. package/dist/validation/protocols/architecture-decision.js +31 -0
  921. package/dist/validation/protocols/architecture-decision.js.map +1 -0
  922. package/dist/validation/protocols/artifact-publish.js +28 -0
  923. package/dist/validation/protocols/artifact-publish.js.map +1 -0
  924. package/dist/validation/protocols/consensus.js +41 -0
  925. package/dist/validation/protocols/consensus.js.map +1 -0
  926. package/dist/validation/protocols/contribution.js +27 -0
  927. package/dist/validation/protocols/contribution.js.map +1 -0
  928. package/dist/validation/protocols/decomposition.js +28 -0
  929. package/dist/validation/protocols/decomposition.js.map +1 -0
  930. package/dist/validation/protocols/implementation.js +24 -0
  931. package/dist/validation/protocols/implementation.js.map +1 -0
  932. package/dist/validation/protocols/provenance.js +29 -0
  933. package/dist/validation/protocols/provenance.js.map +1 -0
  934. package/dist/validation/protocols/release.js +29 -0
  935. package/dist/validation/protocols/release.js.map +1 -0
  936. package/dist/validation/protocols/research.js +24 -0
  937. package/dist/validation/protocols/research.js.map +1 -0
  938. package/dist/validation/protocols/specification.js +27 -0
  939. package/dist/validation/protocols/specification.js.map +1 -0
  940. package/dist/validation/protocols/testing.js +30 -0
  941. package/dist/validation/protocols/testing.js.map +1 -0
  942. package/dist/validation/protocols/validation.js +30 -0
  943. package/dist/validation/protocols/validation.js.map +1 -0
  944. package/dist/validation/schema-integrity.js +170 -0
  945. package/dist/validation/schema-integrity.js.map +1 -0
  946. package/dist/validation/schema-validator.js +176 -0
  947. package/dist/validation/schema-validator.js.map +1 -0
  948. package/dist/validation/validate-ops.js +937 -0
  949. package/dist/validation/validate-ops.js.map +1 -0
  950. package/dist/validation/validation-rules.js +226 -0
  951. package/dist/validation/validation-rules.js.map +1 -0
  952. package/dist/validation/verification.js +321 -0
  953. package/dist/validation/verification.js.map +1 -0
  954. package/migrations/drizzle-brain/20260411000001_t528-graph-schema-expansion/migration.sql +47 -0
  955. package/migrations/drizzle-brain/20260412000001_t531-quality-score-typed-tables/migration.sql +23 -0
  956. package/migrations/drizzle-brain/20260413000001_t549-tiered-typed-memory/migration.sql +195 -0
  957. package/migrations/drizzle-nexus/20260412000001_t529-nexus-graph-tables/migration.sql +49 -0
  958. package/package.json +8 -8
  959. package/src/hooks/handlers/index.ts +6 -0
  960. package/src/hooks/handlers/intelligence-hooks.ts +80 -0
  961. package/src/hooks/handlers/session-hooks.ts +41 -0
  962. package/src/hooks/handlers/watchdog-hooks.ts +187 -0
  963. package/src/injection.ts +41 -2
  964. package/src/internal.ts +31 -2
  965. package/src/memory/brain-consolidator.ts +344 -0
  966. package/src/memory/brain-lifecycle.ts +636 -2
  967. package/src/memory/brain-retrieval.ts +445 -2
  968. package/src/memory/brain-search.ts +38 -4
  969. package/src/memory/decisions.ts +21 -1
  970. package/src/memory/engine-compat.ts +9 -11
  971. package/src/memory/extraction-gate.ts +574 -0
  972. package/src/memory/index.ts +6 -2
  973. package/src/memory/learnings.ts +33 -1
  974. package/src/memory/patterns.ts +30 -1
  975. package/src/memory/quality-scoring.ts +93 -9
  976. package/src/nexus/nexus-bridge.ts +444 -0
  977. package/src/scaffold.ts +42 -0
  978. package/src/stats/index.ts +11 -3
  979. package/src/store/brain-schema.ts +238 -0
  980. package/src/store/brain-sqlite.ts +55 -0
  981. package/src/store/migration-manager.ts +83 -12
  982. package/src/system/health.ts +17 -0
  983. package/src/tasks/graph-ops.ts +1 -0
  984. package/src/tasks/task-ops.ts +1 -1
  985. package/templates/CLEO-INJECTION.md +15 -0
package/dist/paths.js ADDED
@@ -0,0 +1,882 @@
1
+ /**
2
+ * XDG-compliant path resolution for CLEO V2.
3
+ *
4
+ * Global data directory is resolved via env-paths (XDG on Linux, platform
5
+ * conventions on macOS and Windows):
6
+ * Linux: ~/.local/share/cleo
7
+ * macOS: ~/Library/Application Support/cleo
8
+ * Windows: %LOCALAPPDATA%\cleo
9
+ *
10
+ * Environment variables:
11
+ * CLEO_HOME - Override global installation directory
12
+ * CLEO_DIR - Project data directory (default: .cleo)
13
+ *
14
+ * @epic T4454
15
+ * @task T4458
16
+ */
17
+ import { AsyncLocalStorage } from 'node:async_hooks';
18
+ import { existsSync, readFileSync } from 'node:fs';
19
+ import { homedir } from 'node:os';
20
+ import { dirname, join, resolve } from 'node:path';
21
+ import { ExitCode } from '@cleocode/contracts';
22
+ import { CleoError } from './errors.js';
23
+ import { getPlatformPaths } from './system/platform-paths.js';
24
+ /**
25
+ * AsyncLocalStorage instance that carries the active {@link WorktreeScope}
26
+ * for the current async execution context.
27
+ *
28
+ * @remarks
29
+ * Set by the spawn adapter (or any caller that wants to redirect CLEO path
30
+ * resolution to a worktree directory) before invoking subagent logic.
31
+ * `getProjectRoot()` checks this store BEFORE the `CLEO_ROOT` env-var and
32
+ * ancestor-walk, so scoped callers transparently receive the worktree root.
33
+ *
34
+ * Callers outside a worktree context receive `undefined` from
35
+ * `worktreeScope.getStore()` and fall through to the existing resolution
36
+ * order unchanged.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * import { worktreeScope } from '@cleocode/core/paths';
41
+ *
42
+ * worktreeScope.run(
43
+ * { worktreeRoot: '/path/to/worktree', projectHash: 'abc123' },
44
+ * async () => {
45
+ * const root = getProjectRoot(); // returns '/path/to/worktree'
46
+ * }
47
+ * );
48
+ * ```
49
+ *
50
+ * @task T380
51
+ * @public
52
+ */
53
+ export const worktreeScope = new AsyncLocalStorage();
54
+ /**
55
+ * Check if a CLEO project is initialized at the given root.
56
+ * Checks for tasks.db.
57
+ *
58
+ * @param projectRoot - Absolute path to check; defaults to the resolved project root
59
+ * @returns True if .cleo/ and tasks.db exist at the given root
60
+ *
61
+ * @remarks
62
+ * A project is considered initialized when both the .cleo/ directory and
63
+ * the tasks.db SQLite database file are present.
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * if (isProjectInitialized('/my/project')) {
68
+ * console.log('CLEO project found');
69
+ * }
70
+ * ```
71
+ */
72
+ export function isProjectInitialized(projectRoot) {
73
+ const root = projectRoot ?? getProjectRoot();
74
+ const cleoDir = join(root, '.cleo');
75
+ return existsSync(cleoDir) && existsSync(join(cleoDir, 'tasks.db'));
76
+ }
77
+ /**
78
+ * Get the global CLEO home directory.
79
+ * Respects CLEO_HOME env var; otherwise uses the OS-appropriate data path
80
+ * via env-paths (XDG_DATA_HOME on Linux, Library/Application Support on macOS,
81
+ * %LOCALAPPDATA% on Windows).
82
+ *
83
+ * @returns Absolute path to the global CLEO data directory
84
+ *
85
+ * @remarks
86
+ * Delegates to `getPlatformPaths().data` which uses the `env-paths` package
87
+ * for XDG-compliant path resolution across operating systems.
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * const home = getCleoHome(); // e.g. "/home/user/.local/share/cleo"
92
+ * ```
93
+ */
94
+ export function getCleoHome() {
95
+ return getPlatformPaths().data;
96
+ }
97
+ /**
98
+ * Get the global CLEO templates directory.
99
+ *
100
+ * @returns Absolute path to the templates directory under CLEO home
101
+ *
102
+ * @remarks
103
+ * Returns `{cleoHome}/templates` where CLEO-INJECTION.md and other global
104
+ * templates are stored.
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const dir = getCleoTemplatesDir(); // e.g. "/home/user/.local/share/cleo/templates"
109
+ * ```
110
+ */
111
+ export function getCleoTemplatesDir() {
112
+ return join(getCleoHome(), 'templates');
113
+ }
114
+ /**
115
+ * Get the global CLEO schemas directory.
116
+ *
117
+ * @returns Absolute path to the schemas directory under CLEO home
118
+ *
119
+ * @remarks
120
+ * Returns `{cleoHome}/schemas`. Note that schemas are typically read at
121
+ * runtime from the npm package root, not this global directory.
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * const dir = getCleoSchemasDir();
126
+ * ```
127
+ */
128
+ export function getCleoSchemasDir() {
129
+ return join(getCleoHome(), 'schemas');
130
+ }
131
+ /**
132
+ * Get the global CLEO docs directory.
133
+ *
134
+ * @returns Absolute path to the docs directory under CLEO home
135
+ *
136
+ * @remarks
137
+ * Returns `{cleoHome}/docs` for global documentation storage.
138
+ *
139
+ * @example
140
+ * ```typescript
141
+ * const dir = getCleoDocsDir();
142
+ * ```
143
+ */
144
+ export function getCleoDocsDir() {
145
+ return join(getCleoHome(), 'docs');
146
+ }
147
+ /**
148
+ * Get the project CLEO data directory (relative).
149
+ * Respects CLEO_DIR env var, defaults to ".cleo".
150
+ *
151
+ * @param cwd - Optional working directory; when provided, returns absolute path
152
+ * @returns Relative or absolute path to the project's .cleo directory
153
+ *
154
+ * @remarks
155
+ * If `cwd` is provided, delegates to `getCleoDirAbsolute`. Otherwise returns
156
+ * the `CLEO_DIR` env var or the default ".cleo" relative path.
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * const rel = getCleoDir(); // ".cleo"
161
+ * const abs = getCleoDir('/project'); // "/project/.cleo"
162
+ * ```
163
+ */
164
+ export function getCleoDir(cwd) {
165
+ if (cwd) {
166
+ return getCleoDirAbsolute(cwd);
167
+ }
168
+ return process.env['CLEO_DIR'] ?? '.cleo';
169
+ }
170
+ /**
171
+ * Get the absolute path to the project CLEO directory.
172
+ *
173
+ * @param cwd - Optional working directory to resolve against; defaults to process.cwd()
174
+ * @returns Absolute path to the project's .cleo directory
175
+ *
176
+ * @remarks
177
+ * If CLEO_DIR is already absolute, returns it directly. Otherwise resolves
178
+ * it relative to the provided cwd or process.cwd().
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * const dir = getCleoDirAbsolute('/my/project'); // "/my/project/.cleo"
183
+ * ```
184
+ */
185
+ export function getCleoDirAbsolute(cwd) {
186
+ const cleoDir = getCleoDir();
187
+ if (isAbsolutePath(cleoDir)) {
188
+ return cleoDir;
189
+ }
190
+ return resolve(cwd ?? process.cwd(), cleoDir);
191
+ }
192
+ /**
193
+ * Get the project root by walking ancestor directories for `.cleo/` or `.git/`.
194
+ *
195
+ * Stops at the **first** ancestor directory that contains either sentinel
196
+ * directory and never drifts past it — even when multiple nested projects
197
+ * exist above the starting directory.
198
+ *
199
+ * Resolution order:
200
+ * 1. `CLEO_ROOT` env var — bypasses walk entirely (CI / test override)
201
+ * 2. `CLEO_DIR` env var (absolute path only) — derives project root from dirname
202
+ * 3. Walk ancestors from `cwd` (or `process.cwd()`) toward filesystem root:
203
+ * - `.cleo/` found → return that directory (project root)
204
+ * - `.git/` found (without `.cleo/` sibling) → throw `E_NOT_INITIALIZED`
205
+ * 4. Filesystem root reached without either → throw `E_NO_PROJECT`
206
+ *
207
+ * @param cwd - Optional starting directory; defaults to `process.cwd()`
208
+ * @returns Absolute path to the project root directory (parent of `.cleo/`)
209
+ * @throws {CleoError} `ExitCode.CONFIG_ERROR` (`E_NOT_INITIALIZED`) when a
210
+ * `.git/` is found but no `.cleo/` is present at that level.
211
+ * @throws {CleoError} `ExitCode.NOT_FOUND` (`E_NO_PROJECT`) when neither
212
+ * sentinel is found in any ancestor.
213
+ *
214
+ * @remarks
215
+ * `CLEO_ROOT` is an absolute-path escape hatch for environments where the
216
+ * working directory is unrelated to the project (CI tmpdirs, monorepo scripts,
217
+ * test harnesses). When set it is returned as-is without scanning ancestors.
218
+ *
219
+ * `CLEO_DIR` set to an absolute path (e.g. `/project/.cleo`) also bypasses
220
+ * the walk: the project root is derived as its `dirname`. This preserves
221
+ * backward compatibility for test harnesses that use `CLEO_DIR` to pin the
222
+ * project root.
223
+ *
224
+ * NEVER auto-creates `.cleo/`. Project initialisation is an explicit opt-in
225
+ * via `cleo init`.
226
+ *
227
+ * @example
228
+ * ```typescript
229
+ * // Running from packages/core inside the monorepo:
230
+ * const root = getProjectRoot(); // "/mnt/projects/cleocode"
231
+ * ```
232
+ */
233
+ export function getProjectRoot(cwd) {
234
+ // 0. AsyncLocalStorage worktree scope (T380/ADR-041 §D3) — checked FIRST.
235
+ // When a spawn adapter wraps execution in worktreeScope.run(...), the
236
+ // scoped root wins over all env-var and walk-based resolution.
237
+ const scope = worktreeScope.getStore();
238
+ if (scope !== undefined) {
239
+ return scope.worktreeRoot;
240
+ }
241
+ // 1. Honour CLEO_ROOT / CLEO_PROJECT_ROOT env var — bypass walk entirely.
242
+ // CLEO_PROJECT_ROOT is the agent-friendly alias (T090).
243
+ const envRoot = process.env['CLEO_ROOT'] ?? process.env['CLEO_PROJECT_ROOT'];
244
+ if (envRoot) {
245
+ return envRoot;
246
+ }
247
+ // 2. If CLEO_DIR is an absolute path, derive the project root from it.
248
+ // This preserves backward compatibility for test harnesses that set
249
+ // CLEO_DIR=/some/absolute/path/.cleo to pin the project root.
250
+ const cleoDirEnv = process.env['CLEO_DIR'];
251
+ if (cleoDirEnv && isAbsolutePath(cleoDirEnv)) {
252
+ if (cleoDirEnv.endsWith('/.cleo') || cleoDirEnv.endsWith('\\.cleo')) {
253
+ return dirname(cleoDirEnv);
254
+ }
255
+ return cleoDirEnv;
256
+ }
257
+ const start = resolve(cwd ?? process.cwd());
258
+ let current = start;
259
+ // 2. Walk ancestors toward filesystem root
260
+ while (true) {
261
+ const cleoDir = join(current, '.cleo');
262
+ const gitDir = join(current, '.git');
263
+ if (existsSync(cleoDir)) {
264
+ // .cleo/ found — this is the project root
265
+ return current;
266
+ }
267
+ if (existsSync(gitDir)) {
268
+ // .git/ found but no .cleo/ sibling — not initialised
269
+ throw new CleoError(ExitCode.CONFIG_ERROR, `Run cleo init at ${current}`, {
270
+ fix: `cd ${current} && cleo init`,
271
+ });
272
+ }
273
+ // Move up one level
274
+ const parent = dirname(current);
275
+ if (parent === current) {
276
+ // Reached filesystem root without finding either sentinel
277
+ break;
278
+ }
279
+ current = parent;
280
+ }
281
+ // 3. No sentinel found in any ancestor
282
+ throw new CleoError(ExitCode.NOT_FOUND, 'Not inside a CLEO project. Run cleo init or cd to an existing project', {
283
+ fix: 'cleo init',
284
+ });
285
+ }
286
+ /**
287
+ * Resolve a project-relative path to an absolute path.
288
+ *
289
+ * @param relativePath - Path to resolve (relative, absolute, or tilde-prefixed)
290
+ * @param cwd - Optional working directory for project root resolution
291
+ * @returns Absolute resolved path
292
+ *
293
+ * @remarks
294
+ * Returns absolute paths unchanged. Expands leading tilde (`~/`) to the user's
295
+ * home directory. Resolves other relative paths against the project root.
296
+ *
297
+ * @example
298
+ * ```typescript
299
+ * resolveProjectPath('src/index.ts'); // "/project/src/index.ts"
300
+ * resolveProjectPath('~/notes.md'); // "/home/user/notes.md"
301
+ * resolveProjectPath('/absolute/path'); // "/absolute/path"
302
+ * ```
303
+ */
304
+ export function resolveProjectPath(relativePath, cwd) {
305
+ if (isAbsolutePath(relativePath)) {
306
+ return relativePath;
307
+ }
308
+ // Expand leading tilde (handles both ~/ on Unix and ~\ on Windows)
309
+ if (relativePath.startsWith('~/') || relativePath.startsWith('~\\') || relativePath === '~') {
310
+ return resolve(homedir(), relativePath.slice(2));
311
+ }
312
+ return resolve(getProjectRoot(cwd), relativePath);
313
+ }
314
+ /**
315
+ * Get the path to the project's tasks.db file (SQLite database).
316
+ * @deprecated Use getAccessor() from './store/data-accessor.js' instead. This function
317
+ * returns the database file path for legacy compatibility, but all task data access
318
+ * should go through the DataAccessor interface to ensure proper SQLite interaction.
319
+ * Example:
320
+ * // OLD (deprecated):
321
+ * const taskPath = getTaskPath(cwd);
322
+ * const data = await readJsonFile<TaskFile>(taskPath);
323
+ * // NEW (correct):
324
+ * const accessor = await getAccessor(cwd);
325
+ * const data = await accessor.queryTasks({});
326
+ *
327
+ * @param cwd - Optional working directory for path resolution
328
+ * @returns Absolute path to the tasks.db file
329
+ *
330
+ * @remarks
331
+ * Returns `{cleoDir}/tasks.db`. Prefer `getAccessor()` for actual data access.
332
+ *
333
+ * @example
334
+ * ```typescript
335
+ * const dbPath = getTaskPath('/project');
336
+ * ```
337
+ */
338
+ export function getTaskPath(cwd) {
339
+ return join(getCleoDirAbsolute(cwd), 'tasks.db');
340
+ }
341
+ /**
342
+ * Get the path to the project's config.json file.
343
+ *
344
+ * @param cwd - Optional working directory for path resolution
345
+ * @returns Absolute path to the project config.json
346
+ *
347
+ * @remarks
348
+ * Returns `{cleoDir}/config.json`.
349
+ *
350
+ * @example
351
+ * ```typescript
352
+ * const configPath = getConfigPath('/project');
353
+ * ```
354
+ */
355
+ export function getConfigPath(cwd) {
356
+ return join(getCleoDirAbsolute(cwd), 'config.json');
357
+ }
358
+ /**
359
+ * Get the path to the project's sessions.json file.
360
+ *
361
+ * @param cwd - Optional working directory for path resolution
362
+ * @returns Absolute path to the sessions.json file
363
+ *
364
+ * @remarks
365
+ * Returns `{cleoDir}/sessions.json`.
366
+ *
367
+ * @example
368
+ * ```typescript
369
+ * const sessionsPath = getSessionsPath('/project');
370
+ * ```
371
+ */
372
+ export function getSessionsPath(cwd) {
373
+ return join(getCleoDirAbsolute(cwd), 'sessions.json');
374
+ }
375
+ /**
376
+ * Get the path to the project's archive file.
377
+ *
378
+ * @param cwd - Optional working directory for path resolution
379
+ * @returns Absolute path to the tasks-archive.json file
380
+ *
381
+ * @remarks
382
+ * Returns `{cleoDir}/tasks-archive.json` where archived tasks are stored.
383
+ *
384
+ * @example
385
+ * ```typescript
386
+ * const archivePath = getArchivePath('/project');
387
+ * ```
388
+ */
389
+ export function getArchivePath(cwd) {
390
+ return join(getCleoDirAbsolute(cwd), 'tasks-archive.json');
391
+ }
392
+ /**
393
+ * Get the path to the project's log file.
394
+ * Canonical structured runtime log path (pino).
395
+ *
396
+ * @param cwd - Optional working directory for path resolution
397
+ * @returns Absolute path to the cleo.log file
398
+ *
399
+ * @remarks
400
+ * Returns `{cleoDir}/logs/cleo.log`. Used by pino for structured JSON logging.
401
+ *
402
+ * @example
403
+ * ```typescript
404
+ * const logPath = getLogPath('/project');
405
+ * ```
406
+ *
407
+ * @task T4644
408
+ */
409
+ export function getLogPath(cwd) {
410
+ return join(getCleoDirAbsolute(cwd), 'logs', 'cleo.log');
411
+ }
412
+ /**
413
+ * Get the backup directory for operational backups.
414
+ *
415
+ * @param cwd - Optional working directory for path resolution
416
+ * @returns Absolute path to the operational backups directory
417
+ *
418
+ * @remarks
419
+ * Returns `{cleoDir}/backups/operational`.
420
+ *
421
+ * @example
422
+ * ```typescript
423
+ * const backupDir = getBackupDir('/project');
424
+ * ```
425
+ */
426
+ export function getBackupDir(cwd) {
427
+ return join(getCleoDirAbsolute(cwd), 'backups', 'operational');
428
+ }
429
+ /**
430
+ * Get the global config file path.
431
+ *
432
+ * @returns Absolute path to the global config.json in CLEO home
433
+ *
434
+ * @remarks
435
+ * Returns `{cleoHome}/config.json` for global CLEO configuration.
436
+ *
437
+ * @example
438
+ * ```typescript
439
+ * const globalConfig = getGlobalConfigPath();
440
+ * ```
441
+ */
442
+ export function getGlobalConfigPath() {
443
+ return join(getCleoHome(), 'config.json');
444
+ }
445
+ // ============================================================================
446
+ // CleoOS Hub Paths (Phase 1)
447
+ // ============================================================================
448
+ /**
449
+ * Get the Global Justfile Hub directory.
450
+ *
451
+ * The hub stores cross-project recipe libraries agents can run in ANY project
452
+ * (cleo-bootstrap, rcasd-init, schema-validate, lint-standard). Both humans
453
+ * (via editor) and the meta Cleo Chef Agent write recipes here.
454
+ *
455
+ * @returns Absolute path to the global-recipes directory under CLEO home
456
+ *
457
+ * @remarks
458
+ * Returns `{cleoHome}/global-recipes`. Created by `ensureGlobalHome()`.
459
+ *
460
+ * @example
461
+ * ```typescript
462
+ * const dir = getCleoGlobalRecipesDir();
463
+ * // Linux: "/home/user/.local/share/cleo/global-recipes"
464
+ * ```
465
+ */
466
+ export function getCleoGlobalRecipesDir() {
467
+ return join(getCleoHome(), 'global-recipes');
468
+ }
469
+ /**
470
+ * Get the absolute path to the primary global justfile.
471
+ *
472
+ * @returns Absolute path to `{cleoHome}/global-recipes/justfile`
473
+ *
474
+ * @remarks
475
+ * This is the single-file entry point for the Justfile Hub. Additional
476
+ * domain-specific justfiles live alongside it in the same directory.
477
+ *
478
+ * @example
479
+ * ```typescript
480
+ * const path = getCleoGlobalJustfilePath();
481
+ * ```
482
+ */
483
+ export function getCleoGlobalJustfilePath() {
484
+ return join(getCleoGlobalRecipesDir(), 'justfile');
485
+ }
486
+ /**
487
+ * Get the Global Pi Extensions Hub directory.
488
+ *
489
+ * Houses the Pi extensions that drive the CleoOS UI and tools:
490
+ * orchestrator.ts (Conductor Loop), project-manager.ts (TUI dashboard),
491
+ * tilldone.ts (work visualization), cant-bridge.ts (CANT runtime),
492
+ * stage-guide.ts (before_agent_start hook).
493
+ *
494
+ * @returns Absolute path to the pi-extensions directory under CLEO home
495
+ *
496
+ * @remarks
497
+ * Returns `{cleoHome}/pi-extensions`. Pi is configured to load extensions
498
+ * from this directory via settings.json or the PI extension path setting.
499
+ *
500
+ * @example
501
+ * ```typescript
502
+ * const dir = getCleoPiExtensionsDir();
503
+ * // Linux: "/home/user/.local/share/cleo/pi-extensions"
504
+ * ```
505
+ */
506
+ export function getCleoPiExtensionsDir() {
507
+ return join(getCleoHome(), 'pi-extensions');
508
+ }
509
+ /**
510
+ * Get the Global CANT Workflows Hub directory.
511
+ *
512
+ * Stores compiled and parsed `.cant` workflows that agents can invoke
513
+ * globally across projects. Project-local agents still live in `.cleo/agents/`.
514
+ *
515
+ * @returns Absolute path to the cant-workflows directory under CLEO home
516
+ *
517
+ * @remarks
518
+ * Returns `{cleoHome}/cant-workflows`. Used by the CANT runtime bridge
519
+ * to resolve globally-available workflow definitions.
520
+ *
521
+ * @example
522
+ * ```typescript
523
+ * const dir = getCleoCantWorkflowsDir();
524
+ * ```
525
+ */
526
+ export function getCleoCantWorkflowsDir() {
527
+ return join(getCleoHome(), 'cant-workflows');
528
+ }
529
+ /**
530
+ * Get the Global CLEO Agents directory.
531
+ *
532
+ * Holds globally-available CANT agent definitions (`.cant` files).
533
+ * Project-local agents still live in `{projectRoot}/.cleo/agents/`.
534
+ *
535
+ * @returns Absolute path to the agents directory under CLEO home
536
+ *
537
+ * @remarks
538
+ * Returns `{cleoHome}/agents`. Loaded when `cleo agent start <id>` resolves
539
+ * agent IDs that aren't found in the project-local registry.
540
+ *
541
+ * @example
542
+ * ```typescript
543
+ * const dir = getCleoGlobalAgentsDir();
544
+ * ```
545
+ */
546
+ export function getCleoGlobalAgentsDir() {
547
+ return join(getCleoHome(), 'agents');
548
+ }
549
+ // ============================================================================
550
+ // Agent Outputs
551
+ // ============================================================================
552
+ const DEFAULT_AGENT_OUTPUTS_DIR = '.cleo/agent-outputs';
553
+ /**
554
+ * Get the agent outputs directory (relative path) from config or default.
555
+ *
556
+ * Config lookup priority:
557
+ * 1. config.agentOutputs.directory
558
+ * 2. config.research.outputDir (deprecated)
559
+ * 3. config.directories.agentOutputs (deprecated)
560
+ * 4. Default: '.cleo/agent-outputs'
561
+ *
562
+ * @param cwd - Optional working directory for path resolution
563
+ * @returns Relative or absolute path to the agent outputs directory
564
+ *
565
+ * @remarks
566
+ * Checks config fields in priority order: `agentOutputs.directory`, `research.outputDir`,
567
+ * `directories.agentOutputs`. Falls back to `.cleo/agent-outputs`.
568
+ *
569
+ * @example
570
+ * ```typescript
571
+ * const dir = getAgentOutputsDir('/project');
572
+ * ```
573
+ *
574
+ * @task T4700
575
+ */
576
+ export function getAgentOutputsDir(cwd) {
577
+ const projectRoot = getProjectRoot(cwd);
578
+ const configPath = join(projectRoot, '.cleo', 'config.json');
579
+ if (existsSync(configPath)) {
580
+ try {
581
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
582
+ // Priority 1: agentOutputs.directory (canonical)
583
+ if (typeof config.agentOutputs === 'object' && config.agentOutputs?.directory) {
584
+ return config.agentOutputs.directory;
585
+ }
586
+ // Also support agentOutputs as a plain string
587
+ if (typeof config.agentOutputs === 'string' && config.agentOutputs) {
588
+ return config.agentOutputs;
589
+ }
590
+ // Priority 2: research.outputDir (deprecated)
591
+ if (config.research?.outputDir) {
592
+ return config.research.outputDir;
593
+ }
594
+ // Priority 3: directories.agentOutputs (deprecated)
595
+ if (config.directories?.agentOutputs) {
596
+ return config.directories.agentOutputs;
597
+ }
598
+ }
599
+ catch {
600
+ // fallback to default
601
+ }
602
+ }
603
+ return DEFAULT_AGENT_OUTPUTS_DIR;
604
+ }
605
+ /**
606
+ * Get the absolute path to the agent outputs directory.
607
+ *
608
+ * @param cwd - Optional working directory for path resolution
609
+ * @returns Absolute path to the agent outputs directory
610
+ *
611
+ * @remarks
612
+ * Resolves the output of `getAgentOutputsDir()` against the project root
613
+ * if it is not already absolute.
614
+ *
615
+ * @example
616
+ * ```typescript
617
+ * const absDir = getAgentOutputsAbsolute('/project');
618
+ * ```
619
+ *
620
+ * @task T4700
621
+ */
622
+ export function getAgentOutputsAbsolute(cwd) {
623
+ const dir = getAgentOutputsDir(cwd);
624
+ if (isAbsolutePath(dir)) {
625
+ return dir;
626
+ }
627
+ return resolve(getProjectRoot(cwd), dir);
628
+ }
629
+ /**
630
+ * Get the absolute path to the MANIFEST.jsonl file.
631
+ *
632
+ * Checks config.agentOutputs.manifestFile for custom filename,
633
+ * defaults to 'MANIFEST.jsonl'.
634
+ *
635
+ * @param cwd - Optional working directory for path resolution
636
+ * @returns Absolute path to the MANIFEST.jsonl file
637
+ *
638
+ * @remarks
639
+ * Checks `config.agentOutputs.manifestFile` for a custom filename,
640
+ * defaults to `MANIFEST.jsonl` in the agent outputs directory.
641
+ *
642
+ * @example
643
+ * ```typescript
644
+ * const manifestPath = getManifestPath('/project');
645
+ * ```
646
+ *
647
+ * @task T4700
648
+ */
649
+ export function getManifestPath(cwd) {
650
+ const outputDir = getAgentOutputsDir(cwd);
651
+ const projectRoot = getProjectRoot(cwd);
652
+ const configPath = join(projectRoot, '.cleo', 'config.json');
653
+ let manifestFile = 'MANIFEST.jsonl';
654
+ if (existsSync(configPath)) {
655
+ try {
656
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
657
+ const customFile = config.agentOutputs?.manifestFile ?? config.research?.manifestFile;
658
+ if (customFile) {
659
+ manifestFile = customFile;
660
+ }
661
+ }
662
+ catch {
663
+ // fallback
664
+ }
665
+ }
666
+ return resolve(projectRoot, outputDir, manifestFile);
667
+ }
668
+ /**
669
+ * Get the absolute path to the MANIFEST.archive.jsonl file.
670
+ *
671
+ * @param cwd - Optional working directory for path resolution
672
+ * @returns Absolute path to the MANIFEST.archive.jsonl file
673
+ *
674
+ * @remarks
675
+ * Returns the archive manifest path in the agent outputs directory.
676
+ *
677
+ * @example
678
+ * ```typescript
679
+ * const archivePath = getManifestArchivePath('/project');
680
+ * ```
681
+ *
682
+ * @task T4700
683
+ */
684
+ export function getManifestArchivePath(cwd) {
685
+ const outputDir = getAgentOutputsDir(cwd);
686
+ const projectRoot = getProjectRoot(cwd);
687
+ return resolve(projectRoot, outputDir, 'MANIFEST.archive.jsonl');
688
+ }
689
+ // ============================================================================
690
+ // Path Utilities
691
+ // ============================================================================
692
+ /**
693
+ * Check if a path is absolute (POSIX or Windows).
694
+ *
695
+ * @param path - Filesystem path to check
696
+ * @returns True if the path is absolute on any supported OS
697
+ *
698
+ * @remarks
699
+ * Recognizes POSIX absolute paths (`/...`), Windows drive letters (`C:\...`),
700
+ * and UNC paths (`\\...`).
701
+ *
702
+ * @example
703
+ * ```typescript
704
+ * isAbsolutePath('/usr/bin'); // true
705
+ * isAbsolutePath('C:\\Users'); // true
706
+ * isAbsolutePath('./relative'); // false
707
+ * ```
708
+ */
709
+ export function isAbsolutePath(path) {
710
+ // POSIX absolute
711
+ if (path.startsWith('/'))
712
+ return true;
713
+ // Windows drive letter (C:\, D:/)
714
+ if (/^[A-Za-z]:[\\/]/.test(path))
715
+ return true;
716
+ // UNC path
717
+ if (path.startsWith('\\\\'))
718
+ return true;
719
+ return false;
720
+ }
721
+ // ============================================================================
722
+ // OS-Aware Global Paths (via env-paths)
723
+ // ============================================================================
724
+ /**
725
+ * Get the OS log directory for CLEO global logs.
726
+ * Linux: ~/.local/state/cleo | macOS: ~/Library/Logs/cleo | Windows: %LOCALAPPDATA%\cleo\Log
727
+ *
728
+ * @returns Absolute path to the OS-appropriate log directory
729
+ *
730
+ * @remarks
731
+ * Delegates to `getPlatformPaths().log` for XDG-compliant resolution.
732
+ *
733
+ * @example
734
+ * ```typescript
735
+ * const logDir = getCleoLogDir();
736
+ * ```
737
+ */
738
+ export function getCleoLogDir() {
739
+ return getPlatformPaths().log;
740
+ }
741
+ /**
742
+ * Get the OS cache directory for CLEO.
743
+ * Linux: ~/.cache/cleo | macOS: ~/Library/Caches/cleo | Windows: %LOCALAPPDATA%\cleo\Cache
744
+ *
745
+ * @returns Absolute path to the OS-appropriate cache directory
746
+ *
747
+ * @remarks
748
+ * Delegates to `getPlatformPaths().cache` for XDG-compliant resolution.
749
+ *
750
+ * @example
751
+ * ```typescript
752
+ * const cacheDir = getCleoCacheDir();
753
+ * ```
754
+ */
755
+ export function getCleoCacheDir() {
756
+ return getPlatformPaths().cache;
757
+ }
758
+ /**
759
+ * Get the OS temp directory for CLEO ephemeral files.
760
+ *
761
+ * @returns Absolute path to the OS-appropriate temp directory
762
+ *
763
+ * @remarks
764
+ * Delegates to `getPlatformPaths().temp` for platform-specific resolution.
765
+ *
766
+ * @example
767
+ * ```typescript
768
+ * const tempDir = getCleoTempDir();
769
+ * ```
770
+ */
771
+ export function getCleoTempDir() {
772
+ return getPlatformPaths().temp;
773
+ }
774
+ /**
775
+ * Get the OS config directory for CLEO.
776
+ * Linux: ~/.config/cleo | macOS: ~/Library/Preferences/cleo | Windows: %APPDATA%\cleo\Config
777
+ *
778
+ * @returns Absolute path to the OS-appropriate config directory
779
+ *
780
+ * @remarks
781
+ * Delegates to `getPlatformPaths().config` for XDG-compliant resolution.
782
+ *
783
+ * @example
784
+ * ```typescript
785
+ * const configDir = getCleoConfigDir();
786
+ * ```
787
+ */
788
+ export function getCleoConfigDir() {
789
+ return getPlatformPaths().config;
790
+ }
791
+ /**
792
+ * Get the CLEO templates directory as a tilde-prefixed path for use
793
+ * in `@` references (AGENTS.md, CLAUDE.md, etc.). Cross-platform:
794
+ * replaces the user's home directory with `~` so the reference works
795
+ * when loaded by LLM providers that resolve `~` at runtime.
796
+ *
797
+ * Linux: ~/.local/share/cleo/templates
798
+ * macOS: ~/Library/Application Support/cleo/templates
799
+ * Windows: ~/AppData/Local/cleo/Data/templates (approximate)
800
+ *
801
+ * @returns Tilde-prefixed path like "~/.local/share/cleo/templates"
802
+ *
803
+ * @remarks
804
+ * Returns the absolute path if the home directory is not a prefix
805
+ * (unlikely but handled). Always uses forward slashes after the tilde
806
+ * for cross-platform compatibility in `@`-reference resolution.
807
+ *
808
+ * @example
809
+ * ```typescript
810
+ * const tildePath = getCleoTemplatesTildePath();
811
+ * // "~/.local/share/cleo/templates"
812
+ * ```
813
+ */
814
+ export function getCleoTemplatesTildePath() {
815
+ const absPath = getCleoTemplatesDir();
816
+ const home = homedir();
817
+ if (absPath.startsWith(home)) {
818
+ // Always use forward slash after tilde for cross-platform @-reference resolution
819
+ const relative = absPath.slice(home.length).replace(/\\/g, '/');
820
+ return `~${relative}`;
821
+ }
822
+ return absPath;
823
+ }
824
+ // ============================================================================
825
+ // Third-Party Tool Paths (OS-aware)
826
+ // ============================================================================
827
+ /**
828
+ * Get the global agents hub directory.
829
+ * Respects AGENTS_HOME env var, defaults to ~/.agents.
830
+ *
831
+ * @returns Absolute path to the agents hub directory
832
+ *
833
+ * @remarks
834
+ * Returns `AGENTS_HOME` env var if set, otherwise `~/.agents`.
835
+ *
836
+ * @example
837
+ * ```typescript
838
+ * const agentsHome = getAgentsHome(); // "/home/user/.agents"
839
+ * ```
840
+ */
841
+ export function getAgentsHome() {
842
+ return process.env['AGENTS_HOME'] ?? join(homedir(), '.agents');
843
+ }
844
+ /**
845
+ * Get the Claude Code agents directory (~/.claude/agents by default).
846
+ *
847
+ * @returns Absolute path to the Claude agents directory
848
+ *
849
+ * @remarks
850
+ * Respects `CLAUDE_HOME` env var for the parent directory.
851
+ *
852
+ * @example
853
+ * ```typescript
854
+ * const dir = getClaudeAgentsDir();
855
+ * ```
856
+ *
857
+ * @deprecated Use AdapterPathProvider.getAgentInstallDir() from the active adapter instead.
858
+ */
859
+ export function getClaudeAgentsDir() {
860
+ const claudeDir = process.env['CLAUDE_HOME'] ?? join(homedir(), '.claude');
861
+ return join(claudeDir, 'agents');
862
+ }
863
+ /**
864
+ * Get the claude-mem SQLite database path.
865
+ *
866
+ * @returns Absolute path to the claude-mem.db file
867
+ *
868
+ * @remarks
869
+ * Respects `CLAUDE_MEM_DB` env var, defaults to `~/.claude-mem/claude-mem.db`.
870
+ * This is a third-party tool path; homedir() is correct here (no env-paths standard).
871
+ *
872
+ * @example
873
+ * ```typescript
874
+ * const dbPath = getClaudeMemDbPath();
875
+ * ```
876
+ *
877
+ * @deprecated Use AdapterPathProvider.getMemoryDbPath() from the active adapter instead.
878
+ */
879
+ export function getClaudeMemDbPath() {
880
+ return process.env['CLAUDE_MEM_DB'] ?? join(homedir(), '.claude-mem', 'claude-mem.db');
881
+ }
882
+ //# sourceMappingURL=paths.js.map