@cleocode/core 2026.4.9 → 2026.4.11

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