@cleocode/core 2026.3.76 → 2026.4.0

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 (957) 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.map +1 -1
  42. package/dist/agents/agent-schema.js +85 -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 +367 -0
  63. package/dist/bootstrap.js.map +1 -0
  64. package/dist/caamp/adapter.js +434 -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 +23 -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/cant/approval.js +185 -0
  73. package/dist/cant/approval.js.map +1 -0
  74. package/dist/cant/context-builder.js +117 -0
  75. package/dist/cant/context-builder.js.map +1 -0
  76. package/dist/cant/discretion.js +116 -0
  77. package/dist/cant/discretion.js.map +1 -0
  78. package/dist/cant/index.js +23 -0
  79. package/dist/cant/index.js.map +1 -0
  80. package/dist/cant/parallel-runner.js +173 -0
  81. package/dist/cant/parallel-runner.js.map +1 -0
  82. package/dist/cant/types.js +11 -0
  83. package/dist/cant/types.js.map +1 -0
  84. package/dist/cant/workflow-executor.js +440 -0
  85. package/dist/cant/workflow-executor.js.map +1 -0
  86. package/dist/cleo.js +322 -0
  87. package/dist/cleo.js.map +1 -0
  88. package/dist/code/index.d.ts +10 -0
  89. package/dist/code/index.d.ts.map +1 -0
  90. package/dist/code/outline.d.ts +51 -0
  91. package/dist/code/outline.d.ts.map +1 -0
  92. package/dist/code/parser.d.ts +30 -0
  93. package/dist/code/parser.d.ts.map +1 -0
  94. package/dist/code/search.d.ts +42 -0
  95. package/dist/code/search.d.ts.map +1 -0
  96. package/dist/code/unfold.d.ts +44 -0
  97. package/dist/code/unfold.d.ts.map +1 -0
  98. package/dist/codebase-map/analyzers/architecture.js +130 -0
  99. package/dist/codebase-map/analyzers/architecture.js.map +1 -0
  100. package/dist/codebase-map/analyzers/concerns.js +122 -0
  101. package/dist/codebase-map/analyzers/concerns.js.map +1 -0
  102. package/dist/codebase-map/analyzers/conventions.js +149 -0
  103. package/dist/codebase-map/analyzers/conventions.js.map +1 -0
  104. package/dist/codebase-map/analyzers/integrations.js +108 -0
  105. package/dist/codebase-map/analyzers/integrations.js.map +1 -0
  106. package/dist/codebase-map/analyzers/stack.js +117 -0
  107. package/dist/codebase-map/analyzers/stack.js.map +1 -0
  108. package/dist/codebase-map/analyzers/structure.js +137 -0
  109. package/dist/codebase-map/analyzers/structure.js.map +1 -0
  110. package/dist/codebase-map/analyzers/testing.js +118 -0
  111. package/dist/codebase-map/analyzers/testing.js.map +1 -0
  112. package/dist/codebase-map/index.js +57 -0
  113. package/dist/codebase-map/index.js.map +1 -0
  114. package/dist/codebase-map/store.js +122 -0
  115. package/dist/codebase-map/store.js.map +1 -0
  116. package/dist/codebase-map/summary.js +152 -0
  117. package/dist/codebase-map/summary.js.map +1 -0
  118. package/dist/compliance/index.js +288 -0
  119. package/dist/compliance/index.js.map +1 -0
  120. package/dist/compliance/protocol-enforcement.js +332 -0
  121. package/dist/compliance/protocol-enforcement.js.map +1 -0
  122. package/dist/compliance/protocol-rules.js +786 -0
  123. package/dist/compliance/protocol-rules.js.map +1 -0
  124. package/dist/compliance/protocol-types.js +80 -0
  125. package/dist/compliance/protocol-types.js.map +1 -0
  126. package/dist/compliance/store.js +53 -0
  127. package/dist/compliance/store.js.map +1 -0
  128. package/dist/conduit/conduit-client.d.ts +9 -0
  129. package/dist/conduit/conduit-client.d.ts.map +1 -1
  130. package/dist/conduit/conduit-client.js +94 -0
  131. package/dist/conduit/conduit-client.js.map +1 -0
  132. package/dist/conduit/factory.d.ts +3 -1
  133. package/dist/conduit/factory.d.ts.map +1 -1
  134. package/dist/conduit/factory.js +35 -0
  135. package/dist/conduit/factory.js.map +1 -0
  136. package/dist/conduit/http-transport.d.ts +17 -5
  137. package/dist/conduit/http-transport.d.ts.map +1 -1
  138. package/dist/conduit/http-transport.js +165 -0
  139. package/dist/conduit/http-transport.js.map +1 -0
  140. package/dist/conduit/index.d.ts +5 -2
  141. package/dist/conduit/index.d.ts.map +1 -1
  142. package/dist/conduit/index.js +12 -0
  143. package/dist/conduit/index.js.map +1 -0
  144. package/dist/conduit/local-transport.d.ts +91 -0
  145. package/dist/conduit/local-transport.d.ts.map +1 -0
  146. package/dist/conduit/sse-transport.d.ts +68 -0
  147. package/dist/conduit/sse-transport.d.ts.map +1 -0
  148. package/dist/config/build-config.js +29 -0
  149. package/dist/config/build-config.js.map +1 -0
  150. package/dist/config.js +401 -0
  151. package/dist/config.js.map +1 -0
  152. package/dist/constants.js +18 -0
  153. package/dist/constants.js.map +1 -0
  154. package/dist/context/index.js +137 -0
  155. package/dist/context/index.js.map +1 -0
  156. package/dist/crypto/credentials.js +144 -0
  157. package/dist/crypto/credentials.js.map +1 -0
  158. package/dist/engine-result.js +12 -0
  159. package/dist/engine-result.js.map +1 -0
  160. package/dist/error-catalog.js +404 -0
  161. package/dist/error-catalog.js.map +1 -0
  162. package/dist/error-registry.js +393 -0
  163. package/dist/error-registry.js.map +1 -0
  164. package/dist/errors.js +167 -0
  165. package/dist/errors.js.map +1 -0
  166. package/dist/hooks/handlers/agent-hooks.js +106 -0
  167. package/dist/hooks/handlers/agent-hooks.js.map +1 -0
  168. package/dist/hooks/handlers/context-hooks.js +111 -0
  169. package/dist/hooks/handlers/context-hooks.js.map +1 -0
  170. package/dist/hooks/handlers/error-hooks.js +52 -0
  171. package/dist/hooks/handlers/error-hooks.js.map +1 -0
  172. package/dist/hooks/handlers/file-hooks.js +104 -0
  173. package/dist/hooks/handlers/file-hooks.js.map +1 -0
  174. package/dist/hooks/handlers/handler-helpers.js +61 -0
  175. package/dist/hooks/handlers/handler-helpers.js.map +1 -0
  176. package/dist/hooks/handlers/index.js +28 -0
  177. package/dist/hooks/handlers/index.js.map +1 -0
  178. package/dist/hooks/handlers/mcp-hooks.js +147 -0
  179. package/dist/hooks/handlers/mcp-hooks.js.map +1 -0
  180. package/dist/hooks/handlers/memory-bridge-refresh.js +42 -0
  181. package/dist/hooks/handlers/memory-bridge-refresh.js.map +1 -0
  182. package/dist/hooks/handlers/session-hooks.js +104 -0
  183. package/dist/hooks/handlers/session-hooks.js.map +1 -0
  184. package/dist/hooks/handlers/task-hooks.js +65 -0
  185. package/dist/hooks/handlers/task-hooks.js.map +1 -0
  186. package/dist/hooks/handlers/work-capture-hooks.js +165 -0
  187. package/dist/hooks/handlers/work-capture-hooks.js.map +1 -0
  188. package/dist/hooks/index.js +13 -0
  189. package/dist/hooks/index.js.map +1 -0
  190. package/dist/hooks/payload-schemas.js +220 -0
  191. package/dist/hooks/payload-schemas.js.map +1 -0
  192. package/dist/hooks/provider-hooks.js +66 -0
  193. package/dist/hooks/provider-hooks.js.map +1 -0
  194. package/dist/hooks/registry.js +229 -0
  195. package/dist/hooks/registry.js.map +1 -0
  196. package/dist/hooks/types.js +66 -0
  197. package/dist/hooks/types.js.map +1 -0
  198. package/dist/hooks.js +136 -0
  199. package/dist/hooks.js.map +1 -0
  200. package/dist/index.d.ts +1 -0
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/index.js +4605 -3042
  203. package/dist/index.js.map +4 -4
  204. package/dist/init.js +723 -0
  205. package/dist/init.js.map +1 -0
  206. package/dist/inject/index.js +82 -0
  207. package/dist/inject/index.js.map +1 -0
  208. package/dist/injection.js +343 -0
  209. package/dist/injection.js.map +1 -0
  210. package/dist/intelligence/adaptive-validation.js +497 -0
  211. package/dist/intelligence/adaptive-validation.js.map +1 -0
  212. package/dist/intelligence/impact.js +675 -0
  213. package/dist/intelligence/impact.js.map +1 -0
  214. package/dist/intelligence/index.js +22 -0
  215. package/dist/intelligence/index.js.map +1 -0
  216. package/dist/intelligence/patterns.js +492 -0
  217. package/dist/intelligence/patterns.js.map +1 -0
  218. package/dist/intelligence/prediction.js +499 -0
  219. package/dist/intelligence/prediction.js.map +1 -0
  220. package/dist/intelligence/types.js +13 -0
  221. package/dist/intelligence/types.js.map +1 -0
  222. package/dist/internal.d.ts +5 -2
  223. package/dist/internal.d.ts.map +1 -1
  224. package/dist/internal.js +286 -0
  225. package/dist/internal.js.map +1 -0
  226. package/dist/issue/create.js +121 -0
  227. package/dist/issue/create.js.map +1 -0
  228. package/dist/issue/diagnostics.js +59 -0
  229. package/dist/issue/diagnostics.js.map +1 -0
  230. package/dist/issue/index.js +10 -0
  231. package/dist/issue/index.js.map +1 -0
  232. package/dist/issue/template-parser.js +267 -0
  233. package/dist/issue/template-parser.js.map +1 -0
  234. package/dist/json-schema-validator.js +76 -0
  235. package/dist/json-schema-validator.js.map +1 -0
  236. package/dist/lib/index.d.ts +1 -0
  237. package/dist/lib/index.d.ts.map +1 -1
  238. package/dist/lib/index.js +10 -0
  239. package/dist/lib/index.js.map +1 -0
  240. package/dist/lib/retry.js +152 -0
  241. package/dist/lib/retry.js.map +1 -0
  242. package/dist/lib/tree-sitter-languages.d.ts +29 -0
  243. package/dist/lib/tree-sitter-languages.d.ts.map +1 -0
  244. package/dist/lifecycle/chain-composition.js +152 -0
  245. package/dist/lifecycle/chain-composition.js.map +1 -0
  246. package/dist/lifecycle/chain-store.js +246 -0
  247. package/dist/lifecycle/chain-store.js.map +1 -0
  248. package/dist/lifecycle/consolidate-rcasd.js +352 -0
  249. package/dist/lifecycle/consolidate-rcasd.js.map +1 -0
  250. package/dist/lifecycle/default-chain.js +167 -0
  251. package/dist/lifecycle/default-chain.js.map +1 -0
  252. package/dist/lifecycle/evidence.js +180 -0
  253. package/dist/lifecycle/evidence.js.map +1 -0
  254. package/dist/lifecycle/frontmatter.js +363 -0
  255. package/dist/lifecycle/frontmatter.js.map +1 -0
  256. package/dist/lifecycle/index.js +753 -0
  257. package/dist/lifecycle/index.js.map +1 -0
  258. package/dist/lifecycle/pipeline.js +656 -0
  259. package/dist/lifecycle/pipeline.js.map +1 -0
  260. package/dist/lifecycle/rcasd-index.js +326 -0
  261. package/dist/lifecycle/rcasd-index.js.map +1 -0
  262. package/dist/lifecycle/rcasd-paths.js +220 -0
  263. package/dist/lifecycle/rcasd-paths.js.map +1 -0
  264. package/dist/lifecycle/resume.js +864 -0
  265. package/dist/lifecycle/resume.js.map +1 -0
  266. package/dist/lifecycle/stage-artifacts.js +94 -0
  267. package/dist/lifecycle/stage-artifacts.js.map +1 -0
  268. package/dist/lifecycle/stages.js +534 -0
  269. package/dist/lifecycle/stages.js.map +1 -0
  270. package/dist/lifecycle/state-machine.js +516 -0
  271. package/dist/lifecycle/state-machine.js.map +1 -0
  272. package/dist/lifecycle/tessera-engine.js +249 -0
  273. package/dist/lifecycle/tessera-engine.js.map +1 -0
  274. package/dist/logger.js +140 -0
  275. package/dist/logger.js.map +1 -0
  276. package/dist/mcp/index.js +146 -0
  277. package/dist/mcp/index.js.map +1 -0
  278. package/dist/memory/auto-extract.js +177 -0
  279. package/dist/memory/auto-extract.js.map +1 -0
  280. package/dist/memory/brain-embedding.js +66 -0
  281. package/dist/memory/brain-embedding.js.map +1 -0
  282. package/dist/memory/brain-lifecycle.js +298 -0
  283. package/dist/memory/brain-lifecycle.js.map +1 -0
  284. package/dist/memory/brain-links.d.ts.map +1 -1
  285. package/dist/memory/brain-links.js +148 -0
  286. package/dist/memory/brain-links.js.map +1 -0
  287. package/dist/memory/brain-maintenance.d.ts +13 -0
  288. package/dist/memory/brain-maintenance.d.ts.map +1 -1
  289. package/dist/memory/brain-maintenance.js +98 -0
  290. package/dist/memory/brain-maintenance.js.map +1 -0
  291. package/dist/memory/brain-migration.js +149 -0
  292. package/dist/memory/brain-migration.js.map +1 -0
  293. package/dist/memory/brain-reasoning.js +215 -0
  294. package/dist/memory/brain-reasoning.js.map +1 -0
  295. package/dist/memory/brain-retrieval.d.ts.map +1 -1
  296. package/dist/memory/brain-retrieval.js +526 -0
  297. package/dist/memory/brain-retrieval.js.map +1 -0
  298. package/dist/memory/brain-row-types.js +10 -0
  299. package/dist/memory/brain-row-types.js.map +1 -0
  300. package/dist/memory/brain-search.js +519 -0
  301. package/dist/memory/brain-search.js.map +1 -0
  302. package/dist/memory/brain-similarity.js +145 -0
  303. package/dist/memory/brain-similarity.js.map +1 -0
  304. package/dist/memory/claude-mem-migration.js +277 -0
  305. package/dist/memory/claude-mem-migration.js.map +1 -0
  306. package/dist/memory/decisions.d.ts.map +1 -1
  307. package/dist/memory/decisions.js +148 -0
  308. package/dist/memory/decisions.js.map +1 -0
  309. package/dist/memory/embedding-local.js +97 -0
  310. package/dist/memory/embedding-local.js.map +1 -0
  311. package/dist/memory/embedding-queue.js +271 -0
  312. package/dist/memory/embedding-queue.js.map +1 -0
  313. package/dist/memory/embedding-worker.js +58 -0
  314. package/dist/memory/embedding-worker.js.map +1 -0
  315. package/dist/memory/engine-compat.js +1030 -0
  316. package/dist/memory/engine-compat.js.map +1 -0
  317. package/dist/memory/index.js +773 -0
  318. package/dist/memory/index.js.map +1 -0
  319. package/dist/memory/learnings.js +121 -0
  320. package/dist/memory/learnings.js.map +1 -0
  321. package/dist/memory/memory-bridge.js +370 -0
  322. package/dist/memory/memory-bridge.js.map +1 -0
  323. package/dist/memory/patterns.js +122 -0
  324. package/dist/memory/patterns.js.map +1 -0
  325. package/dist/memory/pipeline-manifest-sqlite.js +975 -0
  326. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -0
  327. package/dist/memory/session-memory.js +331 -0
  328. package/dist/memory/session-memory.js.map +1 -0
  329. package/dist/metrics/ab-test.js +260 -0
  330. package/dist/metrics/ab-test.js.map +1 -0
  331. package/dist/metrics/aggregation.js +363 -0
  332. package/dist/metrics/aggregation.js.map +1 -0
  333. package/dist/metrics/common.js +64 -0
  334. package/dist/metrics/common.js.map +1 -0
  335. package/dist/metrics/enums.js +78 -0
  336. package/dist/metrics/enums.js.map +1 -0
  337. package/dist/metrics/index.js +19 -0
  338. package/dist/metrics/index.js.map +1 -0
  339. package/dist/metrics/model-provider-registry.js +88 -0
  340. package/dist/metrics/model-provider-registry.js.map +1 -0
  341. package/dist/metrics/otel-integration.js +263 -0
  342. package/dist/metrics/otel-integration.js.map +1 -0
  343. package/dist/metrics/provider-detection.js +103 -0
  344. package/dist/metrics/provider-detection.js.map +1 -0
  345. package/dist/metrics/token-estimation.js +253 -0
  346. package/dist/metrics/token-estimation.js.map +1 -0
  347. package/dist/metrics/token-service.js +450 -0
  348. package/dist/metrics/token-service.js.map +1 -0
  349. package/dist/migration/agent-outputs.js +316 -0
  350. package/dist/migration/agent-outputs.js.map +1 -0
  351. package/dist/migration/checksum.js +92 -0
  352. package/dist/migration/checksum.js.map +1 -0
  353. package/dist/migration/index.js +282 -0
  354. package/dist/migration/index.js.map +1 -0
  355. package/dist/migration/logger.js +360 -0
  356. package/dist/migration/logger.js.map +1 -0
  357. package/dist/migration/preflight.js +9 -0
  358. package/dist/migration/preflight.js.map +1 -0
  359. package/dist/migration/state.js +421 -0
  360. package/dist/migration/state.js.map +1 -0
  361. package/dist/migration/validate.js +241 -0
  362. package/dist/migration/validate.js.map +1 -0
  363. package/dist/mvi-helpers.js +74 -0
  364. package/dist/mvi-helpers.js.map +1 -0
  365. package/dist/nexus/deps.js +375 -0
  366. package/dist/nexus/deps.js.map +1 -0
  367. package/dist/nexus/discover.js +288 -0
  368. package/dist/nexus/discover.js.map +1 -0
  369. package/dist/nexus/hash.js +10 -0
  370. package/dist/nexus/hash.js.map +1 -0
  371. package/dist/nexus/index.js +40 -0
  372. package/dist/nexus/index.js.map +1 -0
  373. package/dist/nexus/migrate-json-to-sqlite.js +115 -0
  374. package/dist/nexus/migrate-json-to-sqlite.js.map +1 -0
  375. package/dist/nexus/permissions.js +105 -0
  376. package/dist/nexus/permissions.js.map +1 -0
  377. package/dist/nexus/query.js +175 -0
  378. package/dist/nexus/query.js.map +1 -0
  379. package/dist/nexus/registry.js +584 -0
  380. package/dist/nexus/registry.js.map +1 -0
  381. package/dist/nexus/sharing/index.js +288 -0
  382. package/dist/nexus/sharing/index.js.map +1 -0
  383. package/dist/nexus/transfer-types.js +8 -0
  384. package/dist/nexus/transfer-types.js.map +1 -0
  385. package/dist/nexus/transfer.js +263 -0
  386. package/dist/nexus/transfer.js.map +1 -0
  387. package/dist/nexus/workspace.js +355 -0
  388. package/dist/nexus/workspace.js.map +1 -0
  389. package/dist/observability/index.js +103 -0
  390. package/dist/observability/index.js.map +1 -0
  391. package/dist/observability/log-filter.js +63 -0
  392. package/dist/observability/log-filter.js.map +1 -0
  393. package/dist/observability/log-parser.js +99 -0
  394. package/dist/observability/log-parser.js.map +1 -0
  395. package/dist/observability/log-reader.js +139 -0
  396. package/dist/observability/log-reader.js.map +1 -0
  397. package/dist/observability/types.js +19 -0
  398. package/dist/observability/types.js.map +1 -0
  399. package/dist/orchestration/analyze.js +107 -0
  400. package/dist/orchestration/analyze.js.map +1 -0
  401. package/dist/orchestration/bootstrap.js +132 -0
  402. package/dist/orchestration/bootstrap.js.map +1 -0
  403. package/dist/orchestration/context.js +56 -0
  404. package/dist/orchestration/context.js.map +1 -0
  405. package/dist/orchestration/critical-path.js +100 -0
  406. package/dist/orchestration/critical-path.js.map +1 -0
  407. package/dist/orchestration/hierarchy.d.ts +32 -0
  408. package/dist/orchestration/hierarchy.d.ts.map +1 -0
  409. package/dist/orchestration/index.d.ts +1 -0
  410. package/dist/orchestration/index.d.ts.map +1 -1
  411. package/dist/orchestration/index.js +286 -0
  412. package/dist/orchestration/index.js.map +1 -0
  413. package/dist/orchestration/parallel.js +89 -0
  414. package/dist/orchestration/parallel.js.map +1 -0
  415. package/dist/orchestration/protocol-validators.js +524 -0
  416. package/dist/orchestration/protocol-validators.js.map +1 -0
  417. package/dist/orchestration/skill-ops.js +98 -0
  418. package/dist/orchestration/skill-ops.js.map +1 -0
  419. package/dist/orchestration/status.js +107 -0
  420. package/dist/orchestration/status.js.map +1 -0
  421. package/dist/orchestration/unblock.js +103 -0
  422. package/dist/orchestration/unblock.js.map +1 -0
  423. package/dist/orchestration/validate-spawn.js +67 -0
  424. package/dist/orchestration/validate-spawn.js.map +1 -0
  425. package/dist/orchestration/waves.js +86 -0
  426. package/dist/orchestration/waves.js.map +1 -0
  427. package/dist/otel/index.js +163 -0
  428. package/dist/otel/index.js.map +1 -0
  429. package/dist/output.js +164 -0
  430. package/dist/output.js.map +1 -0
  431. package/dist/pagination.js +64 -0
  432. package/dist/pagination.js.map +1 -0
  433. package/dist/paths.js +337 -0
  434. package/dist/paths.js.map +1 -0
  435. package/dist/phases/deps.js +372 -0
  436. package/dist/phases/deps.js.map +1 -0
  437. package/dist/phases/index.js +349 -0
  438. package/dist/phases/index.js.map +1 -0
  439. package/dist/pipeline/index.js +10 -0
  440. package/dist/pipeline/index.js.map +1 -0
  441. package/dist/pipeline/phase.js +45 -0
  442. package/dist/pipeline/phase.js.map +1 -0
  443. package/dist/platform.js +211 -0
  444. package/dist/platform.js.map +1 -0
  445. package/dist/project-info.js +84 -0
  446. package/dist/project-info.js.map +1 -0
  447. package/dist/reconciliation/index.js +10 -0
  448. package/dist/reconciliation/index.js.map +1 -0
  449. package/dist/reconciliation/link-store.js +129 -0
  450. package/dist/reconciliation/link-store.js.map +1 -0
  451. package/dist/reconciliation/reconciliation-engine.js +298 -0
  452. package/dist/reconciliation/reconciliation-engine.js.map +1 -0
  453. package/dist/release/artifacts.js +427 -0
  454. package/dist/release/artifacts.js.map +1 -0
  455. package/dist/release/changelog-writer.js +151 -0
  456. package/dist/release/changelog-writer.js.map +1 -0
  457. package/dist/release/channel.js +144 -0
  458. package/dist/release/channel.js.map +1 -0
  459. package/dist/release/ci.js +166 -0
  460. package/dist/release/ci.js.map +1 -0
  461. package/dist/release/github-pr.js +225 -0
  462. package/dist/release/github-pr.js.map +1 -0
  463. package/dist/release/guards.js +116 -0
  464. package/dist/release/guards.js.map +1 -0
  465. package/dist/release/index.js +22 -0
  466. package/dist/release/index.js.map +1 -0
  467. package/dist/release/release-config.js +158 -0
  468. package/dist/release/release-config.js.map +1 -0
  469. package/dist/release/release-manifest.js +1019 -0
  470. package/dist/release/release-manifest.js.map +1 -0
  471. package/dist/release/version-bump.js +255 -0
  472. package/dist/release/version-bump.js.map +1 -0
  473. package/dist/remote/index.js +257 -0
  474. package/dist/remote/index.js.map +1 -0
  475. package/dist/repair.js +130 -0
  476. package/dist/repair.js.map +1 -0
  477. package/dist/research/index.js +2 -0
  478. package/dist/research/index.js.map +1 -0
  479. package/dist/roadmap/index.js +59 -0
  480. package/dist/roadmap/index.js.map +1 -0
  481. package/dist/routing/capability-matrix.js +1557 -0
  482. package/dist/routing/capability-matrix.js.map +1 -0
  483. package/dist/routing/index.js +9 -0
  484. package/dist/routing/index.js.map +1 -0
  485. package/dist/scaffold.js +1178 -0
  486. package/dist/scaffold.js.map +1 -0
  487. package/dist/schema-management.js +295 -0
  488. package/dist/schema-management.js.map +1 -0
  489. package/dist/security/index.js +9 -0
  490. package/dist/security/index.js.map +1 -0
  491. package/dist/security/input-sanitization.js +321 -0
  492. package/dist/security/input-sanitization.js.map +1 -0
  493. package/dist/sequence/index.js +295 -0
  494. package/dist/sequence/index.js.map +1 -0
  495. package/dist/sessions/assumptions.js +54 -0
  496. package/dist/sessions/assumptions.js.map +1 -0
  497. package/dist/sessions/briefing.js +377 -0
  498. package/dist/sessions/briefing.js.map +1 -0
  499. package/dist/sessions/context-alert.js +222 -0
  500. package/dist/sessions/context-alert.js.map +1 -0
  501. package/dist/sessions/context-inject.js +61 -0
  502. package/dist/sessions/context-inject.js.map +1 -0
  503. package/dist/sessions/context-monitor.js +98 -0
  504. package/dist/sessions/context-monitor.js.map +1 -0
  505. package/dist/sessions/decisions.js +65 -0
  506. package/dist/sessions/decisions.js.map +1 -0
  507. package/dist/sessions/find.js +65 -0
  508. package/dist/sessions/find.js.map +1 -0
  509. package/dist/sessions/handoff.js +328 -0
  510. package/dist/sessions/handoff.js.map +1 -0
  511. package/dist/sessions/hitl-warnings.js +254 -0
  512. package/dist/sessions/hitl-warnings.js.map +1 -0
  513. package/dist/sessions/index.js +321 -0
  514. package/dist/sessions/index.js.map +1 -0
  515. package/dist/sessions/session-archive.js +40 -0
  516. package/dist/sessions/session-archive.js.map +1 -0
  517. package/dist/sessions/session-cleanup.js +59 -0
  518. package/dist/sessions/session-cleanup.js.map +1 -0
  519. package/dist/sessions/session-drift.js +134 -0
  520. package/dist/sessions/session-drift.js.map +1 -0
  521. package/dist/sessions/session-enforcement.js +144 -0
  522. package/dist/sessions/session-enforcement.js.map +1 -0
  523. package/dist/sessions/session-grade.js +253 -0
  524. package/dist/sessions/session-grade.js.map +1 -0
  525. package/dist/sessions/session-history.js +42 -0
  526. package/dist/sessions/session-history.js.map +1 -0
  527. package/dist/sessions/session-id.js +81 -0
  528. package/dist/sessions/session-id.js.map +1 -0
  529. package/dist/sessions/session-memory-bridge.js +52 -0
  530. package/dist/sessions/session-memory-bridge.js.map +1 -0
  531. package/dist/sessions/session-show.js +24 -0
  532. package/dist/sessions/session-show.js.map +1 -0
  533. package/dist/sessions/session-stats.js +69 -0
  534. package/dist/sessions/session-stats.js.map +1 -0
  535. package/dist/sessions/session-suspend.js +39 -0
  536. package/dist/sessions/session-suspend.js.map +1 -0
  537. package/dist/sessions/session-switch.js +51 -0
  538. package/dist/sessions/session-switch.js.map +1 -0
  539. package/dist/sessions/session-view.js +76 -0
  540. package/dist/sessions/session-view.js.map +1 -0
  541. package/dist/sessions/snapshot.js +213 -0
  542. package/dist/sessions/snapshot.js.map +1 -0
  543. package/dist/sessions/statusline-setup.js +85 -0
  544. package/dist/sessions/statusline-setup.js.map +1 -0
  545. package/dist/sessions/types.js +8 -0
  546. package/dist/sessions/types.js.map +1 -0
  547. package/dist/signaldock/claude-code-transport.d.ts +34 -0
  548. package/dist/signaldock/claude-code-transport.d.ts.map +1 -0
  549. package/dist/signaldock/claude-code-transport.js +107 -0
  550. package/dist/signaldock/claude-code-transport.js.map +1 -0
  551. package/dist/signaldock/factory.d.ts +22 -0
  552. package/dist/signaldock/factory.d.ts.map +1 -0
  553. package/dist/signaldock/factory.js +25 -0
  554. package/dist/signaldock/factory.js.map +1 -0
  555. package/dist/signaldock/index.d.ts +13 -0
  556. package/dist/signaldock/index.d.ts.map +1 -0
  557. package/dist/signaldock/index.js +9 -0
  558. package/dist/signaldock/index.js.map +1 -0
  559. package/dist/signaldock/signaldock-transport.d.ts +45 -0
  560. package/dist/signaldock/signaldock-transport.d.ts.map +1 -0
  561. package/dist/signaldock/signaldock-transport.js +122 -0
  562. package/dist/signaldock/signaldock-transport.js.map +1 -0
  563. package/dist/signaldock/transport.d.ts +49 -0
  564. package/dist/signaldock/transport.d.ts.map +1 -0
  565. package/dist/signaldock/transport.js +11 -0
  566. package/dist/signaldock/transport.js.map +1 -0
  567. package/dist/signaldock/types.d.ts +88 -0
  568. package/dist/signaldock/types.d.ts.map +1 -0
  569. package/dist/signaldock/types.js +11 -0
  570. package/dist/signaldock/types.js.map +1 -0
  571. package/dist/skills/agents/config.js +94 -0
  572. package/dist/skills/agents/config.js.map +1 -0
  573. package/dist/skills/agents/install.js +116 -0
  574. package/dist/skills/agents/install.js.map +1 -0
  575. package/dist/skills/agents/registry.js +161 -0
  576. package/dist/skills/agents/registry.js.map +1 -0
  577. package/dist/skills/discovery.js +333 -0
  578. package/dist/skills/discovery.js.map +1 -0
  579. package/dist/skills/dispatch.js +347 -0
  580. package/dist/skills/dispatch.js.map +1 -0
  581. package/dist/skills/dynamic-skill-generator.js +100 -0
  582. package/dist/skills/dynamic-skill-generator.js.map +1 -0
  583. package/dist/skills/index.js +44 -0
  584. package/dist/skills/index.js.map +1 -0
  585. package/dist/skills/injection/subagent.js +195 -0
  586. package/dist/skills/injection/subagent.js.map +1 -0
  587. package/dist/skills/injection/token.js +260 -0
  588. package/dist/skills/injection/token.js.map +1 -0
  589. package/dist/skills/install.js +40 -0
  590. package/dist/skills/install.js.map +1 -0
  591. package/dist/skills/manifests/contribution.js +175 -0
  592. package/dist/skills/manifests/contribution.js.map +1 -0
  593. package/dist/skills/manifests/research.js +281 -0
  594. package/dist/skills/manifests/research.js.map +1 -0
  595. package/dist/skills/manifests/resolver.js +146 -0
  596. package/dist/skills/manifests/resolver.js.map +1 -0
  597. package/dist/skills/marketplace.js +90 -0
  598. package/dist/skills/marketplace.js.map +1 -0
  599. package/dist/skills/orchestrator/spawn.js +178 -0
  600. package/dist/skills/orchestrator/spawn.js.map +1 -0
  601. package/dist/skills/orchestrator/startup.js +451 -0
  602. package/dist/skills/orchestrator/startup.js.map +1 -0
  603. package/dist/skills/orchestrator/validator.js +301 -0
  604. package/dist/skills/orchestrator/validator.js.map +1 -0
  605. package/dist/skills/precedence-integration.js +73 -0
  606. package/dist/skills/precedence-integration.js.map +1 -0
  607. package/dist/skills/precedence-types.js +16 -0
  608. package/dist/skills/precedence-types.js.map +1 -0
  609. package/dist/skills/routing-table.js +63 -0
  610. package/dist/skills/routing-table.js.map +1 -0
  611. package/dist/skills/skill-paths.js +220 -0
  612. package/dist/skills/skill-paths.js.map +1 -0
  613. package/dist/skills/test-utility.js +55 -0
  614. package/dist/skills/test-utility.js.map +1 -0
  615. package/dist/skills/types.js +118 -0
  616. package/dist/skills/types.js.map +1 -0
  617. package/dist/skills/validation.js +183 -0
  618. package/dist/skills/validation.js.map +1 -0
  619. package/dist/skills/version.js +57 -0
  620. package/dist/skills/version.js.map +1 -0
  621. package/dist/snapshot/index.js +188 -0
  622. package/dist/snapshot/index.js.map +1 -0
  623. package/dist/spawn/adapter-registry.js +246 -0
  624. package/dist/spawn/adapter-registry.js.map +1 -0
  625. package/dist/spawn/index.js +10 -0
  626. package/dist/spawn/index.js.map +1 -0
  627. package/dist/stats/index.js +343 -0
  628. package/dist/stats/index.js.map +1 -0
  629. package/dist/stats/workflow-telemetry.js +400 -0
  630. package/dist/stats/workflow-telemetry.js.map +1 -0
  631. package/dist/sticky/archive.js +47 -0
  632. package/dist/sticky/archive.js.map +1 -0
  633. package/dist/sticky/convert.js +235 -0
  634. package/dist/sticky/convert.js.map +1 -0
  635. package/dist/sticky/create.js +48 -0
  636. package/dist/sticky/create.js.map +1 -0
  637. package/dist/sticky/id.js +35 -0
  638. package/dist/sticky/id.js.map +1 -0
  639. package/dist/sticky/index.js +16 -0
  640. package/dist/sticky/index.js.map +1 -0
  641. package/dist/sticky/list.js +44 -0
  642. package/dist/sticky/list.js.map +1 -0
  643. package/dist/sticky/purge.js +45 -0
  644. package/dist/sticky/purge.js.map +1 -0
  645. package/dist/sticky/show.js +42 -0
  646. package/dist/sticky/show.js.map +1 -0
  647. package/dist/sticky/types.js +10 -0
  648. package/dist/sticky/types.js.map +1 -0
  649. package/dist/store/agent-registry-accessor.d.ts +10 -433
  650. package/dist/store/agent-registry-accessor.d.ts.map +1 -1
  651. package/dist/store/agent-registry-accessor.js +169 -0
  652. package/dist/store/agent-registry-accessor.js.map +1 -0
  653. package/dist/store/atomic.js +167 -0
  654. package/dist/store/atomic.js.map +1 -0
  655. package/dist/store/backup.js +94 -0
  656. package/dist/store/backup.js.map +1 -0
  657. package/dist/store/brain-accessor.js +397 -0
  658. package/dist/store/brain-accessor.js.map +1 -0
  659. package/dist/store/brain-schema.js +215 -0
  660. package/dist/store/brain-schema.js.map +1 -0
  661. package/dist/store/brain-sqlite.js +222 -0
  662. package/dist/store/brain-sqlite.js.map +1 -0
  663. package/dist/store/cache.js +168 -0
  664. package/dist/store/cache.js.map +1 -0
  665. package/dist/store/chain-schema.js +51 -0
  666. package/dist/store/chain-schema.js.map +1 -0
  667. package/dist/store/converters.js +124 -0
  668. package/dist/store/converters.js.map +1 -0
  669. package/dist/store/cross-db-cleanup.d.ts +34 -0
  670. package/dist/store/cross-db-cleanup.d.ts.map +1 -1
  671. package/dist/store/cross-db-cleanup.js +169 -0
  672. package/dist/store/cross-db-cleanup.js.map +1 -0
  673. package/dist/store/data-accessor.js +26 -0
  674. package/dist/store/data-accessor.js.map +1 -0
  675. package/dist/store/data-safety-central.js +269 -0
  676. package/dist/store/data-safety-central.js.map +1 -0
  677. package/dist/store/data-safety.js +274 -0
  678. package/dist/store/data-safety.js.map +1 -0
  679. package/dist/store/db-helpers.js +224 -0
  680. package/dist/store/db-helpers.js.map +1 -0
  681. package/dist/store/export.js +155 -0
  682. package/dist/store/export.js.map +1 -0
  683. package/dist/store/file-utils.js +270 -0
  684. package/dist/store/file-utils.js.map +1 -0
  685. package/dist/store/git-checkpoint.js +365 -0
  686. package/dist/store/git-checkpoint.js.map +1 -0
  687. package/dist/store/import-logging.js +139 -0
  688. package/dist/store/import-logging.js.map +1 -0
  689. package/dist/store/import-remap.js +145 -0
  690. package/dist/store/import-remap.js.map +1 -0
  691. package/dist/store/import-sort.js +121 -0
  692. package/dist/store/import-sort.js.map +1 -0
  693. package/dist/store/index.js +28 -0
  694. package/dist/store/index.js.map +1 -0
  695. package/dist/store/json.js +208 -0
  696. package/dist/store/json.js.map +1 -0
  697. package/dist/store/lifecycle-store.js +249 -0
  698. package/dist/store/lifecycle-store.js.map +1 -0
  699. package/dist/store/lock.js +70 -0
  700. package/dist/store/lock.js.map +1 -0
  701. package/dist/store/migration-manager.js +151 -0
  702. package/dist/store/migration-manager.js.map +1 -0
  703. package/dist/store/migration-sqlite.js +676 -0
  704. package/dist/store/migration-sqlite.js.map +1 -0
  705. package/dist/store/nexus-schema.js +62 -0
  706. package/dist/store/nexus-schema.js.map +1 -0
  707. package/dist/store/nexus-sqlite.js +217 -0
  708. package/dist/store/nexus-sqlite.js.map +1 -0
  709. package/dist/store/nexus-validation-schemas.js +40 -0
  710. package/dist/store/nexus-validation-schemas.js.map +1 -0
  711. package/dist/store/parsers.js +37 -0
  712. package/dist/store/parsers.js.map +1 -0
  713. package/dist/store/project-detect.js +457 -0
  714. package/dist/store/project-detect.js.map +1 -0
  715. package/dist/store/provider.js +101 -0
  716. package/dist/store/provider.js.map +1 -0
  717. package/dist/store/safety-data-accessor.js +257 -0
  718. package/dist/store/safety-data-accessor.js.map +1 -0
  719. package/dist/store/schema.js +7 -0
  720. package/dist/store/schema.js.map +1 -0
  721. package/dist/store/session-store.js +219 -0
  722. package/dist/store/session-store.js.map +1 -0
  723. package/dist/store/signaldock-sqlite.d.ts.map +1 -1
  724. package/dist/store/signaldock-sqlite.js +178 -0
  725. package/dist/store/signaldock-sqlite.js.map +1 -0
  726. package/dist/store/sqlite-backup.js +105 -0
  727. package/dist/store/sqlite-backup.js.map +1 -0
  728. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  729. package/dist/store/sqlite-data-accessor.js +784 -0
  730. package/dist/store/sqlite-data-accessor.js.map +1 -0
  731. package/dist/store/sqlite.js +465 -0
  732. package/dist/store/sqlite.js.map +1 -0
  733. package/dist/store/status-registry.js +8 -0
  734. package/dist/store/status-registry.js.map +1 -0
  735. package/dist/store/task-store.d.ts.map +1 -1
  736. package/dist/store/task-store.js +350 -0
  737. package/dist/store/task-store.js.map +1 -0
  738. package/dist/store/tasks-schema.d.ts +0 -224
  739. package/dist/store/tasks-schema.d.ts.map +1 -1
  740. package/dist/store/tasks-schema.js +637 -0
  741. package/dist/store/tasks-schema.js.map +1 -0
  742. package/dist/store/typed-query.js +15 -0
  743. package/dist/store/typed-query.js.map +1 -0
  744. package/dist/store/validation-schemas.js +278 -0
  745. package/dist/store/validation-schemas.js.map +1 -0
  746. package/dist/system/archive-analytics.js +277 -0
  747. package/dist/system/archive-analytics.js.map +1 -0
  748. package/dist/system/archive-stats.js +64 -0
  749. package/dist/system/archive-stats.js.map +1 -0
  750. package/dist/system/audit.js +145 -0
  751. package/dist/system/audit.js.map +1 -0
  752. package/dist/system/backup.js +141 -0
  753. package/dist/system/backup.js.map +1 -0
  754. package/dist/system/cleanup.js +134 -0
  755. package/dist/system/cleanup.js.map +1 -0
  756. package/dist/system/health.d.ts +1 -1
  757. package/dist/system/health.d.ts.map +1 -1
  758. package/dist/system/health.js +1089 -0
  759. package/dist/system/health.js.map +1 -0
  760. package/dist/system/index.js +18 -0
  761. package/dist/system/index.js.map +1 -0
  762. package/dist/system/inject-generate.js +122 -0
  763. package/dist/system/inject-generate.js.map +1 -0
  764. package/dist/system/labels.js +38 -0
  765. package/dist/system/labels.js.map +1 -0
  766. package/dist/system/metrics.js +61 -0
  767. package/dist/system/metrics.js.map +1 -0
  768. package/dist/system/migrate.js +43 -0
  769. package/dist/system/migrate.js.map +1 -0
  770. package/dist/system/platform-paths.js +80 -0
  771. package/dist/system/platform-paths.js.map +1 -0
  772. package/dist/system/runtime.js +161 -0
  773. package/dist/system/runtime.js.map +1 -0
  774. package/dist/system/safestop.js +99 -0
  775. package/dist/system/safestop.js.map +1 -0
  776. package/dist/system/storage-preflight.js +123 -0
  777. package/dist/system/storage-preflight.js.map +1 -0
  778. package/dist/task-work/index.js +159 -0
  779. package/dist/task-work/index.js.map +1 -0
  780. package/dist/tasks/add.js +661 -0
  781. package/dist/tasks/add.js.map +1 -0
  782. package/dist/tasks/analyze.js +85 -0
  783. package/dist/tasks/analyze.js.map +1 -0
  784. package/dist/tasks/archive.js +90 -0
  785. package/dist/tasks/archive.js.map +1 -0
  786. package/dist/tasks/atomicity.js +83 -0
  787. package/dist/tasks/atomicity.js.map +1 -0
  788. package/dist/tasks/cancel-ops.js +83 -0
  789. package/dist/tasks/cancel-ops.js.map +1 -0
  790. package/dist/tasks/complete.js +211 -0
  791. package/dist/tasks/complete.js.map +1 -0
  792. package/dist/tasks/crossref-extract.js +73 -0
  793. package/dist/tasks/crossref-extract.js.map +1 -0
  794. package/dist/tasks/delete-preview.js +192 -0
  795. package/dist/tasks/delete-preview.js.map +1 -0
  796. package/dist/tasks/delete.js +120 -0
  797. package/dist/tasks/delete.js.map +1 -0
  798. package/dist/tasks/deletion-strategy.js +200 -0
  799. package/dist/tasks/deletion-strategy.js.map +1 -0
  800. package/dist/tasks/dependency-check.js +278 -0
  801. package/dist/tasks/dependency-check.js.map +1 -0
  802. package/dist/tasks/deps-ready.js +32 -0
  803. package/dist/tasks/deps-ready.js.map +1 -0
  804. package/dist/tasks/enforcement.js +86 -0
  805. package/dist/tasks/enforcement.js.map +1 -0
  806. package/dist/tasks/epic-enforcement.js +294 -0
  807. package/dist/tasks/epic-enforcement.js.map +1 -0
  808. package/dist/tasks/find.js +154 -0
  809. package/dist/tasks/find.js.map +1 -0
  810. package/dist/tasks/graph-cache.js +127 -0
  811. package/dist/tasks/graph-cache.js.map +1 -0
  812. package/dist/tasks/graph-ops.js +171 -0
  813. package/dist/tasks/graph-ops.js.map +1 -0
  814. package/dist/tasks/graph-rag.js +328 -0
  815. package/dist/tasks/graph-rag.js.map +1 -0
  816. package/dist/tasks/hierarchy-policy.js +149 -0
  817. package/dist/tasks/hierarchy-policy.js.map +1 -0
  818. package/dist/tasks/hierarchy.js +185 -0
  819. package/dist/tasks/hierarchy.js.map +1 -0
  820. package/dist/tasks/id-generator.js +65 -0
  821. package/dist/tasks/id-generator.js.map +1 -0
  822. package/dist/tasks/index.js +14 -0
  823. package/dist/tasks/index.js.map +1 -0
  824. package/dist/tasks/labels.js +52 -0
  825. package/dist/tasks/labels.js.map +1 -0
  826. package/dist/tasks/list.js +75 -0
  827. package/dist/tasks/list.js.map +1 -0
  828. package/dist/tasks/phase-tracking.js +133 -0
  829. package/dist/tasks/phase-tracking.js.map +1 -0
  830. package/dist/tasks/pipeline-stage.js +248 -0
  831. package/dist/tasks/pipeline-stage.js.map +1 -0
  832. package/dist/tasks/plan.js +268 -0
  833. package/dist/tasks/plan.js.map +1 -0
  834. package/dist/tasks/relates.js +89 -0
  835. package/dist/tasks/relates.js.map +1 -0
  836. package/dist/tasks/show.js +80 -0
  837. package/dist/tasks/show.js.map +1 -0
  838. package/dist/tasks/size-weighting.js +86 -0
  839. package/dist/tasks/size-weighting.js.map +1 -0
  840. package/dist/tasks/staleness.js +86 -0
  841. package/dist/tasks/staleness.js.map +1 -0
  842. package/dist/tasks/task-ops.js +1340 -0
  843. package/dist/tasks/task-ops.js.map +1 -0
  844. package/dist/tasks/update.js +271 -0
  845. package/dist/tasks/update.js.map +1 -0
  846. package/dist/templates/index.js +10 -0
  847. package/dist/templates/index.js.map +1 -0
  848. package/dist/templates/parser.js +254 -0
  849. package/dist/templates/parser.js.map +1 -0
  850. package/dist/ui/aliases.js +153 -0
  851. package/dist/ui/aliases.js.map +1 -0
  852. package/dist/ui/changelog.js +184 -0
  853. package/dist/ui/changelog.js.map +1 -0
  854. package/dist/ui/command-registry.js +168 -0
  855. package/dist/ui/command-registry.js.map +1 -0
  856. package/dist/ui/flags.js +94 -0
  857. package/dist/ui/flags.js.map +1 -0
  858. package/dist/ui/index.js +24 -0
  859. package/dist/ui/index.js.map +1 -0
  860. package/dist/upgrade.js +1159 -0
  861. package/dist/upgrade.js.map +1 -0
  862. package/dist/validation/chain-validation.js +146 -0
  863. package/dist/validation/chain-validation.js.map +1 -0
  864. package/dist/validation/compliance.js +155 -0
  865. package/dist/validation/compliance.js.map +1 -0
  866. package/dist/validation/docs-sync.js +212 -0
  867. package/dist/validation/docs-sync.js.map +1 -0
  868. package/dist/validation/doctor/checks.js +1069 -0
  869. package/dist/validation/doctor/checks.js.map +1 -0
  870. package/dist/validation/doctor/index.js +9 -0
  871. package/dist/validation/doctor/index.js.map +1 -0
  872. package/dist/validation/doctor/project-cache.js +160 -0
  873. package/dist/validation/doctor/project-cache.js.map +1 -0
  874. package/dist/validation/doctor/utils.js +155 -0
  875. package/dist/validation/doctor/utils.js.map +1 -0
  876. package/dist/validation/engine.js +902 -0
  877. package/dist/validation/engine.js.map +1 -0
  878. package/dist/validation/gap-check.js +175 -0
  879. package/dist/validation/gap-check.js.map +1 -0
  880. package/dist/validation/index.js +40 -0
  881. package/dist/validation/index.js.map +1 -0
  882. package/dist/validation/manifest.js +237 -0
  883. package/dist/validation/manifest.js.map +1 -0
  884. package/dist/validation/operation-gate-validators.js +724 -0
  885. package/dist/validation/operation-gate-validators.js.map +1 -0
  886. package/dist/validation/operation-verification-gates.js +532 -0
  887. package/dist/validation/operation-verification-gates.js.map +1 -0
  888. package/dist/validation/param-utils.js +139 -0
  889. package/dist/validation/param-utils.js.map +1 -0
  890. package/dist/validation/protocol-common.js +300 -0
  891. package/dist/validation/protocol-common.js.map +1 -0
  892. package/dist/validation/protocols/consensus.js +71 -0
  893. package/dist/validation/protocols/consensus.js.map +1 -0
  894. package/dist/validation/protocols/contribution.js +59 -0
  895. package/dist/validation/protocols/contribution.js.map +1 -0
  896. package/dist/validation/protocols/decomposition.js +59 -0
  897. package/dist/validation/protocols/decomposition.js.map +1 -0
  898. package/dist/validation/protocols/implementation.js +59 -0
  899. package/dist/validation/protocols/implementation.js.map +1 -0
  900. package/dist/validation/protocols/release-protocol.js +60 -0
  901. package/dist/validation/protocols/release-protocol.js.map +1 -0
  902. package/dist/validation/protocols/research.js +77 -0
  903. package/dist/validation/protocols/research.js.map +1 -0
  904. package/dist/validation/protocols/specification.js +84 -0
  905. package/dist/validation/protocols/specification.js.map +1 -0
  906. package/dist/validation/protocols/testing-protocol.js +70 -0
  907. package/dist/validation/protocols/testing-protocol.js.map +1 -0
  908. package/dist/validation/protocols/validation-protocol.js +70 -0
  909. package/dist/validation/protocols/validation-protocol.js.map +1 -0
  910. package/dist/validation/schema-integrity.js +170 -0
  911. package/dist/validation/schema-integrity.js.map +1 -0
  912. package/dist/validation/schema-validator.js +176 -0
  913. package/dist/validation/schema-validator.js.map +1 -0
  914. package/dist/validation/validate-ops.js +937 -0
  915. package/dist/validation/validate-ops.js.map +1 -0
  916. package/dist/validation/validation-rules.js +226 -0
  917. package/dist/validation/validation-rules.js.map +1 -0
  918. package/dist/validation/verification.js +321 -0
  919. package/dist/validation/verification.js.map +1 -0
  920. package/package.json +17 -7
  921. package/src/agents/agent-schema.ts +2 -5
  922. package/src/code/index.ts +10 -0
  923. package/src/code/outline.ts +214 -0
  924. package/src/code/parser.ts +299 -0
  925. package/src/code/search.ts +173 -0
  926. package/src/code/unfold.ts +204 -0
  927. package/src/conduit/__tests__/dual-api-e2e.test.ts +212 -0
  928. package/src/conduit/__tests__/local-credential-flow.test.ts +230 -0
  929. package/src/conduit/__tests__/local-transport.test.ts +320 -0
  930. package/src/conduit/__tests__/sse-transport.test.ts +344 -0
  931. package/src/conduit/conduit-client.ts +9 -0
  932. package/src/conduit/factory.ts +9 -5
  933. package/src/conduit/http-transport.ts +76 -15
  934. package/src/conduit/index.ts +5 -2
  935. package/src/conduit/local-transport.ts +309 -0
  936. package/src/conduit/sse-transport.ts +382 -0
  937. package/src/index.ts +1 -0
  938. package/src/internal.ts +6 -1
  939. package/src/lib/index.ts +8 -0
  940. package/src/lib/tree-sitter-languages.ts +88 -0
  941. package/src/memory/__tests__/brain-links.test.ts +14 -0
  942. package/src/memory/__tests__/brain-retrieval.test.ts +10 -0
  943. package/src/memory/__tests__/session-memory.test.ts +17 -0
  944. package/src/memory/brain-links.ts +17 -0
  945. package/src/memory/brain-maintenance.ts +33 -1
  946. package/src/memory/brain-retrieval.ts +18 -2
  947. package/src/memory/decisions.ts +18 -2
  948. package/src/orchestration/hierarchy.ts +202 -0
  949. package/src/orchestration/index.ts +1 -0
  950. package/src/store/agent-registry-accessor.ts +284 -108
  951. package/src/store/cross-db-cleanup.ts +175 -1
  952. package/src/store/signaldock-sqlite.ts +262 -60
  953. package/src/store/sqlite-data-accessor.ts +3 -0
  954. package/src/store/task-store.ts +8 -1
  955. package/src/store/tasks-schema.ts +3 -38
  956. package/src/system/__tests__/health.test.ts +2 -2
  957. package/src/system/health.ts +34 -15
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Agent Health Monitoring -- Heartbeat and crash detection for live agent instances.
3
+ *
4
+ * Provides the public-facing health API specified by T039:
5
+ * - `recordHeartbeat` — update last_heartbeat for a live agent
6
+ * - `checkAgentHealth` — check health of a specific agent by ID
7
+ * - `detectStaleAgents` — find agents whose heartbeat is older than threshold
8
+ * - `detectCrashedAgents` — find active agents with no heartbeat for >3 min
9
+ *
10
+ * These functions delegate to the lower-level `registry.ts` primitives
11
+ * (`heartbeat`, `checkAgentHealth`, `listAgentInstances`) and add the
12
+ * named, task-spec-aligned surface required for T039.
13
+ *
14
+ * @module agents/health-monitor
15
+ * @task T039
16
+ * @epic T038
17
+ */
18
+ import { heartbeat, listAgentInstances, markCrashed } from './registry.js';
19
+ // ============================================================================
20
+ // Constants
21
+ // ============================================================================
22
+ /** Default heartbeat interval (30 seconds) per BRAIN spec. */
23
+ export const HEARTBEAT_INTERVAL_MS = 30_000;
24
+ /** Default staleness threshold: 3 minutes without a heartbeat. */
25
+ export const STALE_THRESHOLD_MS = 3 * 60_000;
26
+ /** Statuses considered "alive" for health-check purposes. */
27
+ const ALIVE_STATUSES = ['starting', 'active', 'idle'];
28
+ // ============================================================================
29
+ // recordHeartbeat
30
+ // ============================================================================
31
+ /**
32
+ * Record a heartbeat for an agent instance.
33
+ *
34
+ * Updates `last_heartbeat` to the current time and returns the agent's
35
+ * current {@link AgentInstanceStatus}. Returns `null` if the agent does not
36
+ * exist or is already in a terminal state (`stopped` / `crashed`).
37
+ *
38
+ * This is the primary mechanism by which long-running agents signal liveness.
39
+ * Call this every {@link HEARTBEAT_INTERVAL_MS} (30 s) from the agent loop.
40
+ *
41
+ * @param agentId - The agent instance ID (e.g. `agt_20260322120000_a1b2c3`)
42
+ * @param cwd - Working directory used to resolve the tasks.db path (optional)
43
+ * @returns The agent's current status, or `null` if not found / terminal
44
+ *
45
+ * @remarks
46
+ * Terminal agents (`stopped`, `crashed`) will NOT have their heartbeat
47
+ * updated — the existing status is returned as-is so callers can detect
48
+ * external shutdown signals.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * // Inside the agent's main loop:
53
+ * const heartbeatTimer = setInterval(async () => {
54
+ * const status = await recordHeartbeat(agentId);
55
+ * if (status === 'stopped' || status === null) {
56
+ * // Orchestrator shut us down — exit cleanly
57
+ * clearInterval(heartbeatTimer);
58
+ * process.exit(0);
59
+ * }
60
+ * }, HEARTBEAT_INTERVAL_MS);
61
+ * ```
62
+ */
63
+ export async function recordHeartbeat(agentId, cwd) {
64
+ return heartbeat(agentId, cwd);
65
+ }
66
+ // ============================================================================
67
+ // checkAgentHealth
68
+ // ============================================================================
69
+ /**
70
+ * Check the health of a specific agent instance by ID.
71
+ *
72
+ * Queries the agent's current record and returns a structured
73
+ * {@link AgentHealthStatus} describing staleness, heartbeat age, and
74
+ * whether the agent is considered healthy relative to `thresholdMs`.
75
+ *
76
+ * Returns `null` if the agent ID is not found in the database.
77
+ *
78
+ * @param agentId - The agent instance ID to check
79
+ * @param thresholdMs - Staleness threshold in milliseconds (default: 3 minutes)
80
+ * @param cwd - Working directory used to resolve the tasks.db path (optional)
81
+ * @returns {@link AgentHealthStatus} or `null` if the agent does not exist
82
+ *
83
+ * @remarks
84
+ * Returns null if the agent is not found. A non-null result includes
85
+ * staleness status based on the threshold comparison.
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * const health = await checkAgentHealth('agt_20260322120000_a1b2c3');
90
+ * if (health && health.stale) {
91
+ * console.log(`Agent stale for ${health.heartbeatAgeMs}ms — presumed crashed`);
92
+ * }
93
+ * ```
94
+ */
95
+ export async function checkAgentHealth(agentId, thresholdMs = STALE_THRESHOLD_MS, cwd) {
96
+ const all = await listAgentInstances(undefined, cwd);
97
+ const agent = all.find((a) => a.id === agentId);
98
+ if (!agent)
99
+ return null;
100
+ return buildHealthStatus(agent, thresholdMs);
101
+ }
102
+ // ============================================================================
103
+ // detectStaleAgents
104
+ // ============================================================================
105
+ /**
106
+ * Find all non-terminal agents whose last heartbeat is older than `thresholdMs`.
107
+ *
108
+ * "Stale" means an agent with status `starting`, `active`, or `idle` has
109
+ * not sent a heartbeat within the threshold window. This is a precursor to
110
+ * crash detection — a stale agent may still recover if it is under heavy load.
111
+ *
112
+ * Agents with status `stopped` or `crashed` are excluded — they are already
113
+ * in a terminal state and do not participate in the heartbeat protocol.
114
+ *
115
+ * @param thresholdMs - Staleness threshold in ms (default: 3 minutes / 180 000 ms)
116
+ * @param cwd - Working directory used to resolve the tasks.db path (optional)
117
+ * @returns Array of {@link AgentHealthStatus} for each stale agent, sorted by
118
+ * heartbeat age descending (most-stale first)
119
+ *
120
+ * @remarks
121
+ * The default threshold matches the crash-detection window specified in T039:
122
+ * "timeout detection after 3 minutes".
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * const stale = await detectStaleAgents();
127
+ * for (const s of stale) {
128
+ * console.log(`${s.agentId} has been stale for ${s.heartbeatAgeMs / 1000}s`);
129
+ * }
130
+ * ```
131
+ */
132
+ export async function detectStaleAgents(thresholdMs = STALE_THRESHOLD_MS, cwd) {
133
+ const agents = await listAgentInstances({ status: ALIVE_STATUSES }, cwd);
134
+ return agents
135
+ .map((a) => buildHealthStatus(a, thresholdMs))
136
+ .filter((s) => s.stale)
137
+ .sort((a, b) => b.heartbeatAgeMs - a.heartbeatAgeMs);
138
+ }
139
+ // ============================================================================
140
+ // detectCrashedAgents
141
+ // ============================================================================
142
+ /**
143
+ * Find agents with status `active` whose heartbeat has been silent for
144
+ * longer than `thresholdMs`, and mark them as `crashed` in the database.
145
+ *
146
+ * An agent is considered crashed when it:
147
+ * 1. Has status `active` (not `idle`, `starting`, `stopped`, or `crashed`)
148
+ * 2. Has not sent a heartbeat for longer than `thresholdMs`
149
+ *
150
+ * Each detected agent is immediately marked `crashed` via {@link markCrashed},
151
+ * incrementing its error count and writing a reason to `agent_error_log`.
152
+ *
153
+ * @param thresholdMs - Crash threshold in ms (default: 3 minutes / 180 000 ms)
154
+ * @param cwd - Working directory used to resolve the tasks.db path (optional)
155
+ * @returns Array of agent instance rows for each agent that was just marked
156
+ * `crashed`, sorted by last heartbeat ascending (oldest first).
157
+ *
158
+ * @remarks
159
+ * This function is WRITE-side: it mutates the database. Callers should run
160
+ * it on a schedule (e.g. every 60 s) from an orchestrator or health watchdog.
161
+ * For a read-only view, use {@link detectStaleAgents} instead.
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * // Inside an orchestrator health watchdog:
166
+ * const crashed = await detectCrashedAgents();
167
+ * if (crashed.length > 0) {
168
+ * logger.warn({ crashed: crashed.map(a => a.id) }, 'Agents marked crashed');
169
+ * }
170
+ * ```
171
+ */
172
+ export async function detectCrashedAgents(thresholdMs = STALE_THRESHOLD_MS, cwd) {
173
+ // Only consider agents that are explicitly 'active' — idle/starting agents
174
+ // may not yet have established a regular heartbeat interval.
175
+ const activeAgents = await listAgentInstances({ status: 'active' }, cwd);
176
+ const cutoff = new Date(Date.now() - thresholdMs).toISOString();
177
+ const crashed = [];
178
+ for (const agent of activeAgents) {
179
+ if (agent.lastHeartbeat < cutoff) {
180
+ const updated = await markCrashed(agent.id, `Heartbeat timeout — no heartbeat for >${Math.round(thresholdMs / 1000)}s`, cwd);
181
+ if (updated) {
182
+ crashed.push(updated);
183
+ }
184
+ }
185
+ }
186
+ // Sort oldest-heartbeat first (most severely stale)
187
+ crashed.sort((a, b) => {
188
+ const aHb = a.lastHeartbeat ?? '';
189
+ const bHb = b.lastHeartbeat ?? '';
190
+ return aHb < bHb ? -1 : aHb > bHb ? 1 : 0;
191
+ });
192
+ return crashed;
193
+ }
194
+ // ============================================================================
195
+ // Internal helpers
196
+ // ============================================================================
197
+ /**
198
+ * Build an {@link AgentHealthStatus} from a raw agent row.
199
+ */
200
+ function buildHealthStatus(agent, thresholdMs) {
201
+ const lastHeartbeatMs = new Date(agent.lastHeartbeat).getTime();
202
+ const heartbeatAgeMs = Date.now() - lastHeartbeatMs;
203
+ const stale = ALIVE_STATUSES.includes(agent.status)
204
+ ? heartbeatAgeMs > thresholdMs
205
+ : false;
206
+ const healthy = !stale && ALIVE_STATUSES.includes(agent.status);
207
+ return {
208
+ agentId: agent.id,
209
+ status: agent.status,
210
+ lastHeartbeat: agent.lastHeartbeat,
211
+ heartbeatAgeMs,
212
+ healthy,
213
+ stale,
214
+ thresholdMs,
215
+ };
216
+ }
217
+ //# sourceMappingURL=health-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/agents/health-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Agent dimension -- runtime tracking, health monitoring, self-healing, and capacity.
3
+ *
4
+ * This module provides the complete Agent dimension for the BRAIN specification:
5
+ *
6
+ * - **Registry**: CRUD for agent instances (register, deregister, heartbeat, queries)
7
+ * - **Health**: Crash detection via heartbeat protocol, health reports
8
+ * - **Self-Healing**: Retry with exponential backoff, crashed agent recovery
9
+ * - **Capacity**: Load awareness, least-loaded agent selection, overload detection
10
+ *
11
+ * @module agents
12
+ */
13
+ // Load-balancing registry: task-count capacity, specializations, performance recording
14
+ export { getAgentCapacity, getAgentSpecializations, getAgentsByCapacity, MAX_TASKS_PER_AGENT, recordAgentPerformance, updateAgentSpecializations, } from './agent-registry.js';
15
+ // Schema & types
16
+ export { AGENT_INSTANCE_STATUSES, AGENT_TYPES, agentErrorLog, agentInstances, } from './agent-schema.js';
17
+ // Capacity tracking
18
+ export { findLeastLoadedAgent, getAvailableCapacity, getCapacitySummary, isOverloaded, updateCapacity, } from './capacity.js';
19
+ // Execution learning, failure pattern tracking, and self-healing
20
+ export { getAgentPerformanceHistory, getSelfHealingSuggestions, processAgentLifecycleEvent, recordAgentExecution, recordFailurePattern, storeHealingStrategy, } from './execution-learning.js';
21
+ // Health monitoring (T039)
22
+ export { checkAgentHealth, detectCrashedAgents, detectStaleAgents, HEARTBEAT_INTERVAL_MS, recordHeartbeat, STALE_THRESHOLD_MS, } from './health-monitor.js';
23
+ // Registry (CRUD, heartbeat, health, errors)
24
+ // Note: registry.checkAgentHealth (thresholdMs, cwd) -> AgentInstanceRow[] is exported
25
+ // as findStaleAgentRows to avoid conflict with health-monitor.checkAgentHealth (T039).
26
+ export { checkAgentHealth as findStaleAgentRows, classifyError, deregisterAgent, generateAgentId, getAgentErrorHistory, getAgentInstance, getHealthReport, heartbeat, incrementTasksCompleted, listAgentInstances, markCrashed, registerAgent, updateAgentStatus, } from './registry.js';
27
+ // Retry & self-healing
28
+ export { calculateDelay, createRetryPolicy, DEFAULT_RETRY_POLICY, recoverCrashedAgents, shouldRetry, withRetry, } from './retry.js';
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,uFAAuF;AACvF,OAAO,EAGL,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,iBAAiB;AACjB,OAAO,EACL,uBAAuB,EACvB,WAAW,EAMX,aAAa,EACb,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAC3B,oBAAoB;AACpB,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,iEAAiE;AACjE,OAAO,EAIL,0BAA0B,EAC1B,yBAAyB,EAEzB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,2BAA2B;AAC3B,OAAO,EAEL,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,6CAA6C;AAC7C,uFAAuF;AACvF,uFAAuF;AACvF,OAAO,EAEL,gBAAgB,IAAI,kBAAkB,EACtC,aAAa,EACb,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,uBAAuB,EAEvB,kBAAkB,EAClB,WAAW,EAEX,aAAa,EAEb,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,uBAAuB;AACvB,OAAO,EAEL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EAGpB,oBAAoB,EACpB,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC"}
@@ -0,0 +1,314 @@
1
+ /**
2
+ * Agent instance registry -- runtime tracking of live agent processes.
3
+ *
4
+ * Provides CRUD operations for the `agent_instances` table:
5
+ * registration, deregistration, heartbeat, status updates, and queries.
6
+ *
7
+ * This is the DB-backed runtime registry for live agent *instances*.
8
+ * The file-based registry in `skills/agents/registry.ts` tracks installed
9
+ * agent *definitions* -- those are complementary, not competing, concepts.
10
+ *
11
+ * @module agents/registry
12
+ */
13
+ import { randomBytes } from 'node:crypto';
14
+ import { and, eq, inArray, lt, sql } from 'drizzle-orm';
15
+ import { getDb } from '../store/sqlite.js';
16
+ import { agentErrorLog, agentInstances, } from './agent-schema.js';
17
+ // ============================================================================
18
+ // ID generation
19
+ // ============================================================================
20
+ /**
21
+ * Generate a unique agent instance ID.
22
+ * Format: `agt_{YYYYMMDDHHmmss}_{6hex}`
23
+ */
24
+ export function generateAgentId() {
25
+ const now = new Date();
26
+ const ts = now.toISOString().replace(/[-:T]/g, '').substring(0, 14);
27
+ const hex = randomBytes(3).toString('hex');
28
+ return `agt_${ts}_${hex}`;
29
+ }
30
+ /**
31
+ * Register a new agent instance in the database.
32
+ * Sets initial status to 'starting' and records the first heartbeat.
33
+ */
34
+ export async function registerAgent(opts, cwd) {
35
+ const db = await getDb(cwd);
36
+ const id = generateAgentId();
37
+ const now = new Date().toISOString();
38
+ const row = {
39
+ id,
40
+ agentType: opts.agentType,
41
+ status: 'starting',
42
+ sessionId: opts.sessionId ?? null,
43
+ taskId: opts.taskId ?? null,
44
+ startedAt: now,
45
+ lastHeartbeat: now,
46
+ stoppedAt: null,
47
+ errorCount: 0,
48
+ totalTasksCompleted: 0,
49
+ capacity: '1.0',
50
+ metadataJson: opts.metadata ? JSON.stringify(opts.metadata) : '{}',
51
+ parentAgentId: opts.parentAgentId ?? null,
52
+ };
53
+ await db.insert(agentInstances).values(row);
54
+ return row;
55
+ }
56
+ /**
57
+ * Deregister (stop) an agent instance.
58
+ * Sets status to 'stopped' and records the stop timestamp.
59
+ */
60
+ export async function deregisterAgent(id, cwd) {
61
+ const db = await getDb(cwd);
62
+ const now = new Date().toISOString();
63
+ const existing = await db.select().from(agentInstances).where(eq(agentInstances.id, id)).get();
64
+ if (!existing)
65
+ return null;
66
+ // Already stopped -- idempotent
67
+ if (existing.status === 'stopped')
68
+ return existing;
69
+ await db
70
+ .update(agentInstances)
71
+ .set({ status: 'stopped', stoppedAt: now })
72
+ .where(eq(agentInstances.id, id));
73
+ return { ...existing, status: 'stopped', stoppedAt: now };
74
+ }
75
+ // ============================================================================
76
+ // Heartbeat
77
+ // ============================================================================
78
+ /**
79
+ * Record a heartbeat for an agent instance.
80
+ * Updates `last_heartbeat` and returns the current status so the agent
81
+ * can detect if it has been externally marked for shutdown.
82
+ */
83
+ export async function heartbeat(id, cwd) {
84
+ const db = await getDb(cwd);
85
+ const now = new Date().toISOString();
86
+ const existing = await db.select().from(agentInstances).where(eq(agentInstances.id, id)).get();
87
+ if (!existing)
88
+ return null;
89
+ // Do not update heartbeat for terminal states
90
+ if (existing.status === 'stopped' || existing.status === 'crashed') {
91
+ return existing.status;
92
+ }
93
+ await db.update(agentInstances).set({ lastHeartbeat: now }).where(eq(agentInstances.id, id));
94
+ return existing.status;
95
+ }
96
+ /**
97
+ * Update agent status with optional error tracking.
98
+ * When status is 'error' or 'crashed', increments the error count
99
+ * and logs the error to the agent_error_log table.
100
+ */
101
+ export async function updateAgentStatus(id, opts, cwd) {
102
+ const db = await getDb(cwd);
103
+ const existing = await db.select().from(agentInstances).where(eq(agentInstances.id, id)).get();
104
+ if (!existing)
105
+ return null;
106
+ const updates = {
107
+ status: opts.status,
108
+ };
109
+ if (opts.taskId !== undefined) {
110
+ updates.taskId = opts.taskId;
111
+ }
112
+ // If transitioning to active, update heartbeat
113
+ if (opts.status === 'active') {
114
+ updates.lastHeartbeat = new Date().toISOString();
115
+ }
116
+ // Track errors
117
+ if (opts.status === 'error' || opts.status === 'crashed') {
118
+ updates.errorCount = existing.errorCount + 1;
119
+ if (opts.error) {
120
+ const errorType = classifyError(new Error(opts.error));
121
+ await db.insert(agentErrorLog).values({
122
+ agentId: id,
123
+ errorType,
124
+ message: opts.error,
125
+ occurredAt: new Date().toISOString(),
126
+ });
127
+ }
128
+ }
129
+ // If stopped, set stoppedAt
130
+ if (opts.status === 'stopped') {
131
+ updates.stoppedAt = new Date().toISOString();
132
+ }
133
+ await db.update(agentInstances).set(updates).where(eq(agentInstances.id, id));
134
+ return { ...existing, ...updates };
135
+ }
136
+ /**
137
+ * Increment the completed task count for an agent.
138
+ */
139
+ export async function incrementTasksCompleted(id, cwd) {
140
+ const db = await getDb(cwd);
141
+ await db
142
+ .update(agentInstances)
143
+ .set({ totalTasksCompleted: sql `${agentInstances.totalTasksCompleted} + 1` })
144
+ .where(eq(agentInstances.id, id));
145
+ }
146
+ /**
147
+ * List agent instances with optional filters.
148
+ */
149
+ export async function listAgentInstances(filters, cwd) {
150
+ const db = await getDb(cwd);
151
+ const conditions = [];
152
+ if (filters?.status) {
153
+ const statuses = Array.isArray(filters.status) ? filters.status : [filters.status];
154
+ conditions.push(inArray(agentInstances.status, statuses));
155
+ }
156
+ if (filters?.agentType) {
157
+ const types = Array.isArray(filters.agentType) ? filters.agentType : [filters.agentType];
158
+ conditions.push(inArray(agentInstances.agentType, types));
159
+ }
160
+ if (filters?.sessionId) {
161
+ conditions.push(eq(agentInstances.sessionId, filters.sessionId));
162
+ }
163
+ if (filters?.parentAgentId) {
164
+ conditions.push(eq(agentInstances.parentAgentId, filters.parentAgentId));
165
+ }
166
+ if (conditions.length === 0) {
167
+ return db.select().from(agentInstances).all();
168
+ }
169
+ return db
170
+ .select()
171
+ .from(agentInstances)
172
+ .where(and(...conditions))
173
+ .all();
174
+ }
175
+ /**
176
+ * Get a single agent instance by ID.
177
+ */
178
+ export async function getAgentInstance(id, cwd) {
179
+ const db = await getDb(cwd);
180
+ const row = await db.select().from(agentInstances).where(eq(agentInstances.id, id)).get();
181
+ return row ?? null;
182
+ }
183
+ // ============================================================================
184
+ // Error classification
185
+ // ============================================================================
186
+ /** Patterns indicating retriable errors. */
187
+ const RETRIABLE_PATTERNS = [
188
+ /timeout/i,
189
+ /ECONNREFUSED/,
190
+ /ECONNRESET/,
191
+ /EPIPE/,
192
+ /ETIMEDOUT/,
193
+ /rate.?limit/i,
194
+ /429/,
195
+ /503/,
196
+ /502/,
197
+ /SQLITE_BUSY/i,
198
+ /database is locked/i,
199
+ /temporarily unavailable/i,
200
+ /too many requests/i,
201
+ /network/i,
202
+ /socket hang up/i,
203
+ ];
204
+ /** Patterns indicating permanent (non-retriable) errors. */
205
+ const PERMANENT_PATTERNS = [
206
+ /permission denied/i,
207
+ /EACCES/,
208
+ /authentication/i,
209
+ /unauthorized/i,
210
+ /401/,
211
+ /403/,
212
+ /404/,
213
+ /not found/i,
214
+ /invalid.*token/i,
215
+ /SQLITE_CONSTRAINT/i,
216
+ /syntax error/i,
217
+ /type error/i,
218
+ /reference error/i,
219
+ ];
220
+ /**
221
+ * Classify an error as retriable, permanent, or unknown.
222
+ *
223
+ * Retriable errors are transient conditions (network, rate limits, locks)
224
+ * where a retry may succeed. Permanent errors are structural (auth,
225
+ * not found, constraint violations) where retrying is pointless.
226
+ */
227
+ export function classifyError(error) {
228
+ const message = error instanceof Error ? error.message : String(error);
229
+ for (const pattern of RETRIABLE_PATTERNS) {
230
+ if (pattern.test(message))
231
+ return 'retriable';
232
+ }
233
+ for (const pattern of PERMANENT_PATTERNS) {
234
+ if (pattern.test(message))
235
+ return 'permanent';
236
+ }
237
+ return 'unknown';
238
+ }
239
+ /**
240
+ * Get the error history for a specific agent.
241
+ */
242
+ export async function getAgentErrorHistory(agentId, cwd) {
243
+ const db = await getDb(cwd);
244
+ return db.select().from(agentErrorLog).where(eq(agentErrorLog.agentId, agentId)).all();
245
+ }
246
+ // ============================================================================
247
+ // Health Monitoring
248
+ // ============================================================================
249
+ /**
250
+ * Check agent health by finding instances whose last heartbeat exceeds the threshold.
251
+ * Default threshold: 30000ms (30 seconds) as specified by the BRAIN spec.
252
+ *
253
+ * Returns agents that appear to have crashed (stale heartbeat).
254
+ */
255
+ export async function checkAgentHealth(thresholdMs = 30_000, cwd) {
256
+ const db = await getDb(cwd);
257
+ const cutoff = new Date(Date.now() - thresholdMs).toISOString();
258
+ return db
259
+ .select()
260
+ .from(agentInstances)
261
+ .where(and(inArray(agentInstances.status, ['active', 'idle', 'starting']), lt(agentInstances.lastHeartbeat, cutoff)))
262
+ .all();
263
+ }
264
+ /**
265
+ * Mark an agent instance as crashed.
266
+ * Increments error count and sets status to 'crashed'.
267
+ */
268
+ export async function markCrashed(id, reason, cwd) {
269
+ return updateAgentStatus(id, { status: 'crashed', error: reason ?? 'Heartbeat timeout — agent presumed crashed' }, cwd);
270
+ }
271
+ /**
272
+ * Generate a health report summarizing all agent instances.
273
+ * Includes counts by status and identifies stale agents.
274
+ */
275
+ export async function getHealthReport(thresholdMs = 30_000, cwd) {
276
+ const allAgents = await listAgentInstances(undefined, cwd);
277
+ const staleAgents = await checkAgentHealth(thresholdMs, cwd);
278
+ const report = {
279
+ total: allAgents.length,
280
+ active: 0,
281
+ idle: 0,
282
+ starting: 0,
283
+ error: 0,
284
+ crashed: 0,
285
+ stopped: 0,
286
+ totalErrors: 0,
287
+ staleAgents,
288
+ };
289
+ for (const agent of allAgents) {
290
+ switch (agent.status) {
291
+ case 'active':
292
+ report.active++;
293
+ break;
294
+ case 'idle':
295
+ report.idle++;
296
+ break;
297
+ case 'starting':
298
+ report.starting++;
299
+ break;
300
+ case 'error':
301
+ report.error++;
302
+ break;
303
+ case 'crashed':
304
+ report.crashed++;
305
+ break;
306
+ case 'stopped':
307
+ report.stopped++;
308
+ break;
309
+ }
310
+ report.totalErrors += agent.errorCount;
311
+ }
312
+ return report;
313
+ }
314
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"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"}