@cleocode/core 2026.4.7 → 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
@@ -0,0 +1,474 @@
1
+ /**
2
+ * Agent Execution Learning — Agent dimension BRAIN integration.
3
+ *
4
+ * Tracks which agent types succeed or fail on which task types, logs agent
5
+ * decisions to brain_decisions with structured context, provides queries to
6
+ * retrieve agent performance history, and implements basic self-healing by
7
+ * recording failure patterns as brain_observations and surfacing healing
8
+ * suggestions when the same failure pattern recurs.
9
+ *
10
+ * This module bridges the agent registry (tasks.db) with the cognitive
11
+ * memory layer (brain.db) without introducing circular dependencies:
12
+ * - Tasks.db agent tables: agent_instances, agent_error_log (agent-schema.ts)
13
+ * - Brain.db tables: brain_decisions, brain_patterns, brain_observations
14
+ *
15
+ * All brain.db writes are best-effort — failures are silently swallowed so
16
+ * agent lifecycle events never fail due to a brain.db write error.
17
+ *
18
+ * @module agents/execution-learning
19
+ * @task T034
20
+ * @epic T029
21
+ */
22
+ import { randomBytes } from 'node:crypto';
23
+ import { getBrainAccessor } from '../store/brain-accessor.js';
24
+ // ============================================================================
25
+ // ID generation helpers
26
+ // ============================================================================
27
+ /** Generate a unique brain_decisions ID with `AGT-` prefix. */
28
+ function generateDecisionId() {
29
+ return `AGT-${randomBytes(5).toString('hex')}`;
30
+ }
31
+ /** Generate a unique brain_patterns ID with `P-agt-` prefix. */
32
+ function generatePatternId() {
33
+ return `P-agt-${randomBytes(4).toString('hex')}`;
34
+ }
35
+ /** Generate a unique brain_observations ID with `O-agt-` prefix. */
36
+ function generateObservationId() {
37
+ return `O-agt-${randomBytes(4).toString('hex')}`;
38
+ }
39
+ /** Normalised ISO timestamp in SQLite-friendly format (space separator). */
40
+ function nowSql() {
41
+ return new Date().toISOString().replace('T', ' ').slice(0, 19);
42
+ }
43
+ // ============================================================================
44
+ // Execution event logging
45
+ // ============================================================================
46
+ /**
47
+ * Record an agent execution event to brain_decisions.
48
+ *
49
+ * Each event becomes a `tactical` decision entry describing which agent type
50
+ * handled which task type and whether it succeeded. This gives the BRAIN
51
+ * system a queryable history of agent-task execution for pattern extraction.
52
+ *
53
+ * The call is best-effort — if brain.db is unavailable the error is swallowed
54
+ * and null is returned so agent lifecycle code is never disrupted.
55
+ *
56
+ * @param event - Execution event to record
57
+ * @param cwd - Working directory (resolves brain.db path)
58
+ * @returns The stored decision row, or null on failure
59
+ */
60
+ export async function recordAgentExecution(event, cwd) {
61
+ try {
62
+ const brain = await getBrainAccessor(cwd);
63
+ return await _recordAgentExecutionWithAccessor(event, brain);
64
+ }
65
+ catch {
66
+ // Best-effort — never propagate brain.db write failures to callers
67
+ return null;
68
+ }
69
+ }
70
+ /**
71
+ * Internal implementation that accepts a pre-constructed accessor.
72
+ * Separated for testability without touching the real file system.
73
+ *
74
+ * @internal
75
+ */
76
+ export async function _recordAgentExecutionWithAccessor(event, brain) {
77
+ const id = generateDecisionId();
78
+ const outcomeMap = {
79
+ success: 'success',
80
+ failure: 'failure',
81
+ partial: 'mixed',
82
+ };
83
+ const decisionText = `Agent type "${event.agentType}" ${event.outcome === 'success' ? 'successfully completed' : `failed (${event.errorType ?? 'unknown'}) on`} task ${event.taskId} (type: ${event.taskType})`;
84
+ const rationale = [
85
+ `Agent: ${event.agentId}`,
86
+ `Task type: ${event.taskType}`,
87
+ `Outcome: ${event.outcome}`,
88
+ event.taskLabels?.length ? `Labels: ${event.taskLabels.join(', ')}` : null,
89
+ event.errorMessage ? `Error: ${event.errorMessage}` : null,
90
+ event.durationMs != null ? `Duration: ${event.durationMs}ms` : null,
91
+ ]
92
+ .filter(Boolean)
93
+ .join(' | ');
94
+ const alternativesJson = JSON.stringify({
95
+ agentId: event.agentId,
96
+ agentType: event.agentType,
97
+ taskType: event.taskType,
98
+ taskLabels: event.taskLabels ?? [],
99
+ errorType: event.errorType ?? null,
100
+ durationMs: event.durationMs ?? null,
101
+ sessionId: event.sessionId ?? null,
102
+ });
103
+ const row = await brain.addDecision({
104
+ id,
105
+ type: 'tactical',
106
+ decision: decisionText,
107
+ rationale,
108
+ confidence: event.outcome === 'success' ? 'high' : event.outcome === 'partial' ? 'medium' : 'low',
109
+ outcome: outcomeMap[event.outcome],
110
+ alternativesJson,
111
+ contextTaskId: event.taskId,
112
+ contextEpicId: null,
113
+ contextPhase: null,
114
+ createdAt: nowSql(),
115
+ updatedAt: null,
116
+ });
117
+ return row;
118
+ }
119
+ // ============================================================================
120
+ // Performance queries
121
+ // ============================================================================
122
+ /**
123
+ * Retrieve agent execution performance history from brain_decisions.
124
+ *
125
+ * Queries all `tactical` decisions recorded by `recordAgentExecution` and
126
+ * aggregates them into per-(agentType, taskType) performance summaries.
127
+ *
128
+ * @param filters - Optional filters to narrow results
129
+ * @param cwd - Working directory
130
+ * @returns Array of performance summaries sorted by agentType then taskType
131
+ */
132
+ export async function getAgentPerformanceHistory(filters = {}, cwd) {
133
+ try {
134
+ const brain = await getBrainAccessor(cwd);
135
+ return await _getAgentPerformanceHistoryWithAccessor(filters, brain);
136
+ }
137
+ catch {
138
+ return [];
139
+ }
140
+ }
141
+ /**
142
+ * Internal implementation with injected accessor for testability.
143
+ *
144
+ * @internal
145
+ */
146
+ export async function _getAgentPerformanceHistoryWithAccessor(filters, brain) {
147
+ const decisions = await brain.findDecisions({
148
+ type: 'tactical',
149
+ limit: filters.limit ?? 500,
150
+ });
151
+ // Only process rows that were written by recordAgentExecution
152
+ const agentDecisions = decisions.filter((d) => d.id.startsWith('AGT-'));
153
+ // Aggregate per (agentType, taskType)
154
+ const buckets = new Map();
155
+ for (const d of agentDecisions) {
156
+ let meta = {};
157
+ try {
158
+ meta = d.alternativesJson ? JSON.parse(d.alternativesJson) : {};
159
+ }
160
+ catch {
161
+ continue;
162
+ }
163
+ const agentType = meta.agentType;
164
+ const taskType = meta.taskType;
165
+ if (!agentType || !taskType)
166
+ continue;
167
+ // Apply optional filters
168
+ if (filters.agentType && agentType !== filters.agentType)
169
+ continue;
170
+ if (filters.taskType && taskType !== filters.taskType)
171
+ continue;
172
+ const key = `${agentType}::${taskType}`;
173
+ const existing = buckets.get(key) ?? {
174
+ agentType,
175
+ taskType,
176
+ successes: 0,
177
+ failures: 0,
178
+ total: 0,
179
+ lastOutcome: null,
180
+ lastSeenAt: null,
181
+ };
182
+ existing.total += 1;
183
+ const outcome = d.outcome;
184
+ if (outcome === 'success') {
185
+ existing.successes += 1;
186
+ existing.lastOutcome = 'success';
187
+ }
188
+ else if (outcome === 'failure') {
189
+ existing.failures += 1;
190
+ existing.lastOutcome = 'failure';
191
+ }
192
+ else if (outcome === 'mixed') {
193
+ existing.lastOutcome = 'partial';
194
+ }
195
+ // Track most-recent timestamp
196
+ if (!existing.lastSeenAt || (d.createdAt && d.createdAt > existing.lastSeenAt)) {
197
+ existing.lastSeenAt = d.createdAt;
198
+ }
199
+ buckets.set(key, existing);
200
+ }
201
+ return Array.from(buckets.values())
202
+ .map((b) => ({
203
+ agentType: b.agentType,
204
+ taskType: b.taskType,
205
+ totalAttempts: b.total,
206
+ successCount: b.successes,
207
+ failureCount: b.failures,
208
+ successRate: b.total > 0 ? Math.round((b.successes / b.total) * 1000) / 1000 : 0,
209
+ lastOutcome: b.lastOutcome,
210
+ lastSeenAt: b.lastSeenAt,
211
+ }))
212
+ .sort((a, b) => a.agentType.localeCompare(b.agentType) || a.taskType.localeCompare(b.taskType));
213
+ }
214
+ // ============================================================================
215
+ // Failure pattern recording
216
+ // ============================================================================
217
+ /**
218
+ * Record a task failure pattern to brain_patterns.
219
+ *
220
+ * When a task fails, the (agentType, taskType, errorType) combination is
221
+ * stored as a `failure` pattern in brain.db. On subsequent failures matching
222
+ * the same combination, the frequency counter is incremented and the success
223
+ * rate updated. This data is what powers `getSelfHealingSuggestions`.
224
+ *
225
+ * The call is best-effort and never throws.
226
+ *
227
+ * @param event - A failure execution event (outcome must be 'failure')
228
+ * @param cwd - Working directory
229
+ * @returns The upserted pattern row, or null on error
230
+ */
231
+ export async function recordFailurePattern(event, cwd) {
232
+ if (event.outcome !== 'failure')
233
+ return null;
234
+ try {
235
+ const brain = await getBrainAccessor(cwd);
236
+ return await _recordFailurePatternWithAccessor(event, brain);
237
+ }
238
+ catch {
239
+ return null;
240
+ }
241
+ }
242
+ /**
243
+ * Internal implementation with injected accessor.
244
+ *
245
+ * @internal
246
+ */
247
+ export async function _recordFailurePatternWithAccessor(event, brain) {
248
+ const errorType = event.errorType ?? 'unknown';
249
+ const patternText = `Agent type "${event.agentType}" fails on task type "${event.taskType}" with ${errorType} error`;
250
+ const contextText = `Failure pattern detected: ${event.agentType} agent encountering ${errorType} errors on ${event.taskType} tasks`;
251
+ // Look for an existing matching pattern (search by prefix naming convention)
252
+ const existing = await brain.findPatterns({ type: 'failure', limit: 200 });
253
+ const match = existing.find((p) => p.pattern === patternText);
254
+ if (match) {
255
+ // Update frequency counter and keep success_rate at 0 (all failures)
256
+ const newFrequency = match.frequency + 1;
257
+ const suggestion = buildHealingSuggestion(event.agentType, event.taskType, errorType, newFrequency);
258
+ await brain.updatePattern(match.id, {
259
+ frequency: newFrequency,
260
+ successRate: 0,
261
+ mitigation: suggestion,
262
+ });
263
+ return {
264
+ ...match,
265
+ frequency: newFrequency,
266
+ successRate: 0,
267
+ mitigation: suggestion,
268
+ };
269
+ }
270
+ // Create new failure pattern
271
+ const id = generatePatternId();
272
+ const now = nowSql();
273
+ const suggestion = buildHealingSuggestion(event.agentType, event.taskType, errorType, 1);
274
+ return brain.addPattern({
275
+ id,
276
+ type: 'failure',
277
+ pattern: patternText,
278
+ context: contextText,
279
+ frequency: 1,
280
+ successRate: 0,
281
+ impact: 'medium',
282
+ antiPattern: `${event.agentType} assigned to ${event.taskType} task with ${errorType} error risk`,
283
+ mitigation: suggestion,
284
+ examplesJson: JSON.stringify([event.taskId]),
285
+ extractedAt: now,
286
+ updatedAt: null,
287
+ });
288
+ }
289
+ // ============================================================================
290
+ // Self-healing: observation storage
291
+ // ============================================================================
292
+ /**
293
+ * Store a healing strategy observation to brain_observations.
294
+ *
295
+ * When a failure pattern reaches a significant frequency threshold (≥ 3),
296
+ * a `change` observation is recorded to represent the healing action
297
+ * recommended for future recurrences of the same pattern.
298
+ *
299
+ * The call is best-effort and never throws.
300
+ *
301
+ * @param event - The failure event that triggered healing
302
+ * @param strategy - Human-readable healing strategy description
303
+ * @param cwd - Working directory
304
+ * @returns The stored observation row, or null on error
305
+ */
306
+ export async function storeHealingStrategy(event, strategy, cwd) {
307
+ if (event.outcome !== 'failure')
308
+ return null;
309
+ try {
310
+ const brain = await getBrainAccessor(cwd);
311
+ return await _storeHealingStrategyWithAccessor(event, strategy, brain);
312
+ }
313
+ catch {
314
+ return null;
315
+ }
316
+ }
317
+ /**
318
+ * Internal implementation with injected accessor.
319
+ *
320
+ * @internal
321
+ */
322
+ export async function _storeHealingStrategyWithAccessor(event, strategy, brain) {
323
+ const id = generateObservationId();
324
+ const now = nowSql();
325
+ return brain.addObservation({
326
+ id,
327
+ type: 'change',
328
+ title: `Healing strategy: ${event.agentType} on ${event.taskType}`,
329
+ subtitle: `Error type: ${event.errorType ?? 'unknown'}`,
330
+ narrative: strategy,
331
+ factsJson: JSON.stringify([
332
+ `Agent: ${event.agentType}`,
333
+ `Task type: ${event.taskType}`,
334
+ `Error: ${event.errorMessage ?? 'unspecified'}`,
335
+ `Suggested action: ${strategy}`,
336
+ ]),
337
+ conceptsJson: JSON.stringify([
338
+ 'self-healing',
339
+ 'agent-execution',
340
+ event.agentType,
341
+ event.taskType,
342
+ ]),
343
+ project: null,
344
+ filesReadJson: null,
345
+ filesModifiedJson: null,
346
+ sourceSessionId: event.sessionId ?? null,
347
+ sourceType: 'agent',
348
+ contentHash: null,
349
+ discoveryTokens: null,
350
+ createdAt: now,
351
+ updatedAt: null,
352
+ });
353
+ }
354
+ // ============================================================================
355
+ // Self-healing: suggestion retrieval
356
+ // ============================================================================
357
+ /**
358
+ * Get self-healing suggestions for a given agent type and task type.
359
+ *
360
+ * Queries brain_patterns for known failure patterns matching the
361
+ * (agentType, taskType) combination and returns healing suggestions
362
+ * ordered by frequency (most-seen first).
363
+ *
364
+ * Returns an empty array if no failure patterns are found or brain.db
365
+ * is unavailable.
366
+ *
367
+ * @param agentType - The agent type to check
368
+ * @param taskType - The task type to check
369
+ * @param cwd - Working directory
370
+ * @returns Array of healing suggestions, highest frequency first
371
+ */
372
+ export async function getSelfHealingSuggestions(agentType, taskType, cwd) {
373
+ try {
374
+ const brain = await getBrainAccessor(cwd);
375
+ return await _getSelfHealingSuggestionsWithAccessor(agentType, taskType, brain);
376
+ }
377
+ catch {
378
+ return [];
379
+ }
380
+ }
381
+ /**
382
+ * Internal implementation with injected accessor.
383
+ *
384
+ * @internal
385
+ */
386
+ export async function _getSelfHealingSuggestionsWithAccessor(agentType, taskType, brain) {
387
+ const patterns = await brain.findPatterns({ type: 'failure', limit: 200 });
388
+ const prefix = `Agent type "${agentType}" fails on task type "${taskType}"`;
389
+ const matches = patterns.filter((p) => p.pattern.startsWith(prefix) && p.mitigation);
390
+ return matches
391
+ .map((p) => ({
392
+ patternId: p.id,
393
+ failurePattern: p.pattern,
394
+ frequency: p.frequency,
395
+ suggestion: p.mitigation,
396
+ confidence: Math.min(0.3 + p.frequency * 0.1, 0.9),
397
+ }))
398
+ .sort((a, b) => b.frequency - a.frequency);
399
+ }
400
+ // ============================================================================
401
+ // Compound: record event + update patterns + suggest healing
402
+ // ============================================================================
403
+ /**
404
+ * Full agent lifecycle event processor.
405
+ *
406
+ * Convenience function that:
407
+ * 1. Records the execution event to brain_decisions
408
+ * 2. On failure: records/updates the failure pattern in brain_patterns
409
+ * 3. On failure with frequency ≥ 3: stores a healing strategy observation
410
+ *
411
+ * Returns a structured result with the recorded IDs and any healing
412
+ * suggestions that now apply.
413
+ *
414
+ * All operations are best-effort — the call never throws.
415
+ *
416
+ * @param event - The execution event
417
+ * @param cwd - Working directory
418
+ */
419
+ export async function processAgentLifecycleEvent(event, cwd) {
420
+ const result = {
421
+ decisionId: null,
422
+ patternId: null,
423
+ observationId: null,
424
+ healingSuggestions: [],
425
+ };
426
+ try {
427
+ const brain = await getBrainAccessor(cwd);
428
+ // 1. Record decision
429
+ const decision = await _recordAgentExecutionWithAccessor(event, brain);
430
+ if (decision)
431
+ result.decisionId = decision.id;
432
+ // 2. On failure: record/update failure pattern
433
+ if (event.outcome === 'failure') {
434
+ const pattern = await _recordFailurePatternWithAccessor(event, brain);
435
+ if (pattern) {
436
+ result.patternId = pattern.id;
437
+ // 3. When pattern is well-established, store a healing strategy observation
438
+ if (pattern.frequency >= 3 && pattern.mitigation) {
439
+ const obs = await _storeHealingStrategyWithAccessor(event, pattern.mitigation, brain);
440
+ if (obs)
441
+ result.observationId = obs.id;
442
+ }
443
+ }
444
+ }
445
+ // 4. Retrieve current suggestions (applies to all outcomes — useful for
446
+ // monitoring even successful retries of previously-failing patterns)
447
+ if (event.outcome !== 'success') {
448
+ result.healingSuggestions = await _getSelfHealingSuggestionsWithAccessor(event.agentType, event.taskType, brain);
449
+ }
450
+ }
451
+ catch {
452
+ // Best-effort — never propagate failures
453
+ }
454
+ return result;
455
+ }
456
+ // ============================================================================
457
+ // Internal: healing suggestion builder
458
+ // ============================================================================
459
+ /**
460
+ * Build a human-readable healing mitigation string for a failure pattern.
461
+ */
462
+ function buildHealingSuggestion(agentType, taskType, errorType, frequency) {
463
+ if (errorType === 'retriable') {
464
+ return `Retry with exponential backoff. Consider switching to a different ${agentType} agent instance if failures exceed threshold (seen ${frequency}x).`;
465
+ }
466
+ if (errorType === 'permanent') {
467
+ return `Reassign task to a different agent type — ${agentType} has a permanent failure on ${taskType} tasks. Check permissions, inputs, and dependencies (seen ${frequency}x).`;
468
+ }
469
+ if (frequency >= 5) {
470
+ return `High-frequency unknown failure (${frequency}x): escalate to orchestrator for manual investigation of ${agentType} on ${taskType} tasks.`;
471
+ }
472
+ return `Unknown failure for ${agentType} on ${taskType} tasks (${frequency}x). Check agent logs, retry with fresh context, or reassign to a different agent type.`;
473
+ }
474
+ //# sourceMappingURL=execution-learning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-learning.js","sourceRoot":"","sources":["../../src/agents/execution-learning.ts"],"names":[],"mappings":"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"}