@cleocode/core 2026.3.74 → 2026.3.76

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 (1087) hide show
  1. package/README.md +1 -1
  2. package/dist/cant/approval.d.ts +110 -0
  3. package/dist/cant/approval.d.ts.map +1 -0
  4. package/dist/cant/context-builder.d.ts +79 -0
  5. package/dist/cant/context-builder.d.ts.map +1 -0
  6. package/dist/cant/discretion.d.ts +95 -0
  7. package/dist/cant/discretion.d.ts.map +1 -0
  8. package/dist/cant/index.d.ts +25 -0
  9. package/dist/cant/index.d.ts.map +1 -0
  10. package/dist/cant/parallel-runner.d.ts +38 -0
  11. package/dist/cant/parallel-runner.d.ts.map +1 -0
  12. package/dist/cant/types.d.ts +127 -0
  13. package/dist/cant/types.d.ts.map +1 -0
  14. package/dist/cant/workflow-executor.d.ts +105 -0
  15. package/dist/cant/workflow-executor.d.ts.map +1 -0
  16. package/dist/conduit/conduit-client.d.ts +26 -0
  17. package/dist/conduit/conduit-client.d.ts.map +1 -0
  18. package/dist/conduit/factory.d.ts +13 -0
  19. package/dist/conduit/factory.d.ts.map +1 -0
  20. package/dist/conduit/http-transport.d.ts +32 -0
  21. package/dist/conduit/http-transport.d.ts.map +1 -0
  22. package/dist/conduit/index.d.ts +12 -0
  23. package/dist/conduit/index.d.ts.map +1 -0
  24. package/dist/crypto/credentials.d.ts +40 -0
  25. package/dist/crypto/credentials.d.ts.map +1 -0
  26. package/dist/engine-result.d.ts +1 -1
  27. package/dist/engine-result.d.ts.map +1 -1
  28. package/dist/error-catalog.d.ts +1 -1
  29. package/dist/error-catalog.d.ts.map +1 -1
  30. package/dist/error-registry.d.ts +1 -1
  31. package/dist/error-registry.d.ts.map +1 -1
  32. package/dist/errors.d.ts +1 -1
  33. package/dist/errors.d.ts.map +1 -1
  34. package/dist/hooks/handlers/agent-hooks.d.ts.map +1 -1
  35. package/dist/hooks/handlers/context-hooks.d.ts.map +1 -1
  36. package/dist/hooks/handlers/error-hooks.d.ts +14 -5
  37. package/dist/hooks/handlers/error-hooks.d.ts.map +1 -1
  38. package/dist/hooks/handlers/file-hooks.d.ts.map +1 -1
  39. package/dist/hooks/handlers/handler-helpers.d.ts +41 -0
  40. package/dist/hooks/handlers/handler-helpers.d.ts.map +1 -0
  41. package/dist/hooks/handlers/mcp-hooks.d.ts.map +1 -1
  42. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  43. package/dist/hooks/handlers/task-hooks.d.ts.map +1 -1
  44. package/dist/hooks/handlers/work-capture-hooks.d.ts.map +1 -1
  45. package/dist/index.d.ts +3 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +2285 -767
  48. package/dist/index.js.map +4 -4
  49. package/dist/init.d.ts.map +1 -1
  50. package/dist/internal.d.ts +7 -0
  51. package/dist/internal.d.ts.map +1 -1
  52. package/dist/memory/brain-retrieval.d.ts +3 -0
  53. package/dist/memory/brain-retrieval.d.ts.map +1 -1
  54. package/dist/mvi-helpers.d.ts +52 -0
  55. package/dist/mvi-helpers.d.ts.map +1 -0
  56. package/dist/nexus/workspace.d.ts.map +1 -1
  57. package/dist/output.d.ts +2 -2
  58. package/dist/output.d.ts.map +1 -1
  59. package/dist/pagination.d.ts +1 -1
  60. package/dist/pagination.d.ts.map +1 -1
  61. package/dist/sessions/find.d.ts +3 -0
  62. package/dist/sessions/find.d.ts.map +1 -1
  63. package/dist/sessions/index.d.ts.map +1 -1
  64. package/dist/store/agent-registry-accessor.d.ts +454 -0
  65. package/dist/store/agent-registry-accessor.d.ts.map +1 -0
  66. package/dist/store/converters.d.ts.map +1 -1
  67. package/dist/store/db-helpers.d.ts.map +1 -1
  68. package/dist/store/safety-data-accessor.d.ts +7 -0
  69. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  70. package/dist/store/signaldock-sqlite.d.ts +48 -0
  71. package/dist/store/signaldock-sqlite.d.ts.map +1 -0
  72. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  73. package/dist/store/sqlite.d.ts.map +1 -1
  74. package/dist/store/task-store.d.ts.map +1 -1
  75. package/dist/store/tasks-schema.d.ts +240 -0
  76. package/dist/store/tasks-schema.d.ts.map +1 -1
  77. package/dist/store/validation-schemas.d.ts +32 -0
  78. package/dist/store/validation-schemas.d.ts.map +1 -1
  79. package/dist/system/health.d.ts.map +1 -1
  80. package/dist/task-work/index.d.ts.map +1 -1
  81. package/dist/tasks/find.d.ts +3 -0
  82. package/dist/tasks/find.d.ts.map +1 -1
  83. package/dist/tasks/list.d.ts +5 -2
  84. package/dist/tasks/list.d.ts.map +1 -1
  85. package/dist/tasks/show.d.ts +3 -0
  86. package/dist/tasks/show.d.ts.map +1 -1
  87. package/dist/upgrade.d.ts.map +1 -1
  88. package/migrations/drizzle-tasks/20260324000000_assignee-column/migration.sql +6 -0
  89. package/migrations/drizzle-tasks/20260324000000_assignee-column/snapshot.json +9 -0
  90. package/migrations/drizzle-tasks/20260327000000_agent-credentials/migration.sql +23 -0
  91. package/package.json +7 -7
  92. package/src/__tests__/cli-parity.test.js +11 -1
  93. package/src/__tests__/cli-parity.test.js.map +1 -1
  94. package/src/__tests__/cli-parity.test.ts +17 -1
  95. package/src/__tests__/human-output.test.js +11 -1
  96. package/src/__tests__/human-output.test.js.map +1 -1
  97. package/src/__tests__/human-output.test.ts +18 -1
  98. package/src/__tests__/injection-chain.test.js +3 -2
  99. package/src/__tests__/injection-chain.test.js.map +1 -1
  100. package/src/__tests__/injection-mvi-tiers.test.d.ts +2 -2
  101. package/src/__tests__/injection-mvi-tiers.test.js +15 -15
  102. package/src/__tests__/injection-mvi-tiers.test.js.map +1 -1
  103. package/src/__tests__/lafs-conformance.test.d.ts +1 -1
  104. package/src/__tests__/lafs-conformance.test.js +2 -2
  105. package/src/__tests__/sharing.test.js +19 -0
  106. package/src/__tests__/sharing.test.js.map +1 -1
  107. package/src/agents/__tests__/agent-registry.test.d.ts +12 -0
  108. package/src/agents/__tests__/agent-registry.test.d.ts.map +1 -0
  109. package/src/agents/__tests__/agent-registry.test.js +262 -0
  110. package/src/agents/__tests__/agent-registry.test.js.map +1 -0
  111. package/src/agents/__tests__/execution-learning.test.d.ts +14 -0
  112. package/src/agents/__tests__/execution-learning.test.d.ts.map +1 -0
  113. package/src/agents/__tests__/execution-learning.test.js +533 -0
  114. package/src/agents/__tests__/execution-learning.test.js.map +1 -0
  115. package/src/agents/__tests__/health-monitor.test.d.ts +10 -0
  116. package/src/agents/__tests__/health-monitor.test.d.ts.map +1 -0
  117. package/src/agents/__tests__/health-monitor.test.js +259 -0
  118. package/src/agents/__tests__/health-monitor.test.js.map +1 -0
  119. package/src/agents/__tests__/registry.test.js +27 -2
  120. package/src/agents/__tests__/registry.test.js.map +1 -1
  121. package/src/cant/__tests__/cant-agent-parse.test.ts +94 -0
  122. package/src/cant/approval.ts +218 -0
  123. package/src/cant/context-builder.ts +135 -0
  124. package/src/cant/discretion.ts +149 -0
  125. package/src/cant/index.ts +58 -0
  126. package/src/cant/parallel-runner.ts +205 -0
  127. package/src/cant/types.ts +158 -0
  128. package/src/cant/workflow-executor.ts +618 -0
  129. package/src/conduit/conduit-client.ts +114 -0
  130. package/src/conduit/factory.ts +45 -0
  131. package/src/conduit/http-transport.ts +140 -0
  132. package/src/conduit/index.ts +12 -0
  133. package/src/crypto/credentials.ts +166 -0
  134. package/src/engine-result.ts +1 -1
  135. package/src/error-catalog.ts +1 -1
  136. package/src/error-registry.ts +1 -1
  137. package/src/errors.ts +1 -1
  138. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.d.ts +13 -0
  139. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.d.ts.map +1 -0
  140. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js +501 -0
  141. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js.map +1 -0
  142. package/src/hooks/handlers/agent-hooks.ts +1 -30
  143. package/src/hooks/handlers/context-hooks.ts +1 -30
  144. package/src/hooks/handlers/error-hooks.ts +14 -5
  145. package/src/hooks/handlers/file-hooks.ts +1 -6
  146. package/src/hooks/handlers/handler-helpers.ts +62 -0
  147. package/src/hooks/handlers/mcp-hooks.ts +2 -14
  148. package/src/hooks/handlers/session-hooks.ts +1 -6
  149. package/src/hooks/handlers/task-hooks.ts +1 -6
  150. package/src/hooks/handlers/work-capture-hooks.ts +1 -10
  151. package/src/index.ts +11 -1
  152. package/src/init.ts +12 -0
  153. package/src/intelligence/__tests__/adaptive-validation.test.d.ts +11 -0
  154. package/src/intelligence/__tests__/adaptive-validation.test.d.ts.map +1 -0
  155. package/src/intelligence/__tests__/adaptive-validation.test.js +517 -0
  156. package/src/intelligence/__tests__/adaptive-validation.test.js.map +1 -0
  157. package/src/intelligence/__tests__/impact.test.d.ts +1 -0
  158. package/src/intelligence/__tests__/impact.test.d.ts.map +1 -1
  159. package/src/intelligence/__tests__/impact.test.js +132 -1
  160. package/src/intelligence/__tests__/impact.test.js.map +1 -1
  161. package/src/internal.ts +17 -0
  162. package/src/lib/__tests__/retry.test.d.ts +7 -0
  163. package/src/lib/__tests__/retry.test.d.ts.map +1 -0
  164. package/src/lib/__tests__/retry.test.js +225 -0
  165. package/src/lib/__tests__/retry.test.js.map +1 -0
  166. package/src/lifecycle/__tests__/chain-store.test.js +6 -0
  167. package/src/lifecycle/__tests__/chain-store.test.js.map +1 -1
  168. package/src/lifecycle/__tests__/tessera-engine.test.js +52 -0
  169. package/src/lifecycle/__tests__/tessera-engine.test.js.map +1 -1
  170. package/src/memory/__tests__/brain-automation.test.d.ts +11 -0
  171. package/src/memory/__tests__/brain-automation.test.d.ts.map +1 -0
  172. package/src/memory/__tests__/brain-automation.test.js +730 -0
  173. package/src/memory/__tests__/brain-automation.test.js.map +1 -0
  174. package/src/memory/brain-retrieval.ts +9 -0
  175. package/src/mvi-helpers.ts +81 -0
  176. package/src/nexus/workspace.ts +19 -7
  177. package/src/output.ts +43 -10
  178. package/src/pagination.ts +1 -1
  179. package/src/sessions/__tests__/session-edge-cases.test.js +20 -1
  180. package/src/sessions/__tests__/session-edge-cases.test.js.map +1 -1
  181. package/src/sessions/__tests__/session-find.test.js +1 -1
  182. package/src/sessions/__tests__/session-find.test.js.map +1 -1
  183. package/src/sessions/__tests__/session-find.test.ts +1 -1
  184. package/src/sessions/find.ts +6 -1
  185. package/src/sessions/index.ts +9 -0
  186. package/src/store/__tests__/migration-safety.test.js +3 -0
  187. package/src/store/__tests__/migration-safety.test.js.map +1 -1
  188. package/src/store/__tests__/session-store.test.js +128 -1
  189. package/src/store/__tests__/session-store.test.js.map +1 -1
  190. package/src/store/__tests__/task-store.test.js +18 -1
  191. package/src/store/__tests__/task-store.test.js.map +1 -1
  192. package/src/store/__tests__/test-db-helper.d.ts.map +1 -1
  193. package/src/store/__tests__/test-db-helper.js +12 -0
  194. package/src/store/__tests__/test-db-helper.js.map +1 -1
  195. package/src/store/agent-registry-accessor.ts +199 -0
  196. package/src/store/converters.ts +2 -0
  197. package/src/store/db-helpers.ts +1 -0
  198. package/src/store/safety-data-accessor.ts +23 -0
  199. package/src/store/signaldock-sqlite.ts +227 -0
  200. package/src/store/sqlite-data-accessor.ts +69 -0
  201. package/src/store/sqlite.ts +4 -1
  202. package/src/store/task-store.ts +1 -0
  203. package/src/store/tasks-schema.ts +42 -0
  204. package/src/system/health.ts +33 -0
  205. package/src/task-work/index.ts +5 -0
  206. package/src/tasks/__tests__/add.test.js +19 -1
  207. package/src/tasks/__tests__/add.test.js.map +1 -1
  208. package/src/tasks/__tests__/assignee.test.d.ts +14 -0
  209. package/src/tasks/__tests__/assignee.test.d.ts.map +1 -0
  210. package/src/tasks/__tests__/assignee.test.js +125 -0
  211. package/src/tasks/__tests__/assignee.test.js.map +1 -0
  212. package/src/tasks/__tests__/assignee.test.ts +162 -0
  213. package/src/tasks/__tests__/complete-unblocks.test.js +13 -1
  214. package/src/tasks/__tests__/complete-unblocks.test.js.map +1 -1
  215. package/src/tasks/__tests__/complete.test.js +28 -7
  216. package/src/tasks/__tests__/complete.test.js.map +1 -1
  217. package/src/tasks/__tests__/epic-enforcement.test.d.ts +15 -0
  218. package/src/tasks/__tests__/epic-enforcement.test.d.ts.map +1 -0
  219. package/src/tasks/__tests__/epic-enforcement.test.js +669 -0
  220. package/src/tasks/__tests__/epic-enforcement.test.js.map +1 -0
  221. package/src/tasks/__tests__/hierarchy-policy.test.js +5 -0
  222. package/src/tasks/__tests__/hierarchy-policy.test.js.map +1 -1
  223. package/src/tasks/__tests__/minimal-test.test.d.ts +2 -0
  224. package/src/tasks/__tests__/minimal-test.test.d.ts.map +1 -0
  225. package/src/tasks/__tests__/minimal-test.test.js +25 -0
  226. package/src/tasks/__tests__/minimal-test.test.js.map +1 -0
  227. package/src/tasks/__tests__/pipeline-stage.test.d.ts +14 -0
  228. package/src/tasks/__tests__/pipeline-stage.test.d.ts.map +1 -0
  229. package/src/tasks/__tests__/pipeline-stage.test.js +277 -0
  230. package/src/tasks/__tests__/pipeline-stage.test.js.map +1 -0
  231. package/src/tasks/__tests__/update.test.js +43 -6
  232. package/src/tasks/__tests__/update.test.js.map +1 -1
  233. package/src/tasks/find.ts +11 -1
  234. package/src/tasks/list.ts +14 -3
  235. package/src/tasks/show.ts +6 -0
  236. package/src/upgrade.ts +16 -0
  237. package/dist/adapters/adapter-registry.js +0 -64
  238. package/dist/adapters/adapter-registry.js.map +0 -1
  239. package/dist/adapters/discovery.js +0 -83
  240. package/dist/adapters/discovery.js.map +0 -1
  241. package/dist/adapters/index.js +0 -9
  242. package/dist/adapters/index.js.map +0 -1
  243. package/dist/adapters/manager.js +0 -260
  244. package/dist/adapters/manager.js.map +0 -1
  245. package/dist/admin/export-tasks.js +0 -171
  246. package/dist/admin/export-tasks.js.map +0 -1
  247. package/dist/admin/export.js +0 -103
  248. package/dist/admin/export.js.map +0 -1
  249. package/dist/admin/help.js +0 -106
  250. package/dist/admin/help.js.map +0 -1
  251. package/dist/admin/import-tasks.js +0 -182
  252. package/dist/admin/import-tasks.js.map +0 -1
  253. package/dist/admin/import.js +0 -129
  254. package/dist/admin/import.js.map +0 -1
  255. package/dist/admin/index.js +0 -13
  256. package/dist/admin/index.js.map +0 -1
  257. package/dist/adrs/find.js +0 -134
  258. package/dist/adrs/find.js.map +0 -1
  259. package/dist/adrs/index.js +0 -15
  260. package/dist/adrs/index.js.map +0 -1
  261. package/dist/adrs/link-pipeline.js +0 -160
  262. package/dist/adrs/link-pipeline.js.map +0 -1
  263. package/dist/adrs/list.js +0 -43
  264. package/dist/adrs/list.js.map +0 -1
  265. package/dist/adrs/parse.js +0 -51
  266. package/dist/adrs/parse.js.map +0 -1
  267. package/dist/adrs/show.js +0 -22
  268. package/dist/adrs/show.js.map +0 -1
  269. package/dist/adrs/sync.js +0 -188
  270. package/dist/adrs/sync.js.map +0 -1
  271. package/dist/adrs/types.js +0 -9
  272. package/dist/adrs/types.js.map +0 -1
  273. package/dist/adrs/validate.js +0 -57
  274. package/dist/adrs/validate.js.map +0 -1
  275. package/dist/agents/agent-registry.js +0 -288
  276. package/dist/agents/agent-registry.js.map +0 -1
  277. package/dist/agents/agent-schema.js +0 -85
  278. package/dist/agents/agent-schema.js.map +0 -1
  279. package/dist/agents/capacity.js +0 -116
  280. package/dist/agents/capacity.js.map +0 -1
  281. package/dist/agents/execution-learning.js +0 -474
  282. package/dist/agents/execution-learning.js.map +0 -1
  283. package/dist/agents/health-monitor.js +0 -217
  284. package/dist/agents/health-monitor.js.map +0 -1
  285. package/dist/agents/index.js +0 -29
  286. package/dist/agents/index.js.map +0 -1
  287. package/dist/agents/registry.js +0 -314
  288. package/dist/agents/registry.js.map +0 -1
  289. package/dist/agents/retry.js +0 -210
  290. package/dist/agents/retry.js.map +0 -1
  291. package/dist/audit-prune.js +0 -94
  292. package/dist/audit-prune.js.map +0 -1
  293. package/dist/audit.js +0 -68
  294. package/dist/audit.js.map +0 -1
  295. package/dist/backfill/index.js +0 -229
  296. package/dist/backfill/index.js.map +0 -1
  297. package/dist/bootstrap.js +0 -367
  298. package/dist/bootstrap.js.map +0 -1
  299. package/dist/caamp/adapter.js +0 -434
  300. package/dist/caamp/adapter.js.map +0 -1
  301. package/dist/caamp/capability-check.js +0 -38
  302. package/dist/caamp/capability-check.js.map +0 -1
  303. package/dist/caamp/index.js +0 -23
  304. package/dist/caamp/index.js.map +0 -1
  305. package/dist/caamp-init.js +0 -16
  306. package/dist/caamp-init.js.map +0 -1
  307. package/dist/cleo.js +0 -302
  308. package/dist/cleo.js.map +0 -1
  309. package/dist/codebase-map/analyzers/architecture.js +0 -130
  310. package/dist/codebase-map/analyzers/architecture.js.map +0 -1
  311. package/dist/codebase-map/analyzers/concerns.js +0 -122
  312. package/dist/codebase-map/analyzers/concerns.js.map +0 -1
  313. package/dist/codebase-map/analyzers/conventions.js +0 -149
  314. package/dist/codebase-map/analyzers/conventions.js.map +0 -1
  315. package/dist/codebase-map/analyzers/integrations.js +0 -108
  316. package/dist/codebase-map/analyzers/integrations.js.map +0 -1
  317. package/dist/codebase-map/analyzers/stack.js +0 -117
  318. package/dist/codebase-map/analyzers/stack.js.map +0 -1
  319. package/dist/codebase-map/analyzers/structure.js +0 -137
  320. package/dist/codebase-map/analyzers/structure.js.map +0 -1
  321. package/dist/codebase-map/analyzers/testing.js +0 -118
  322. package/dist/codebase-map/analyzers/testing.js.map +0 -1
  323. package/dist/codebase-map/index.js +0 -57
  324. package/dist/codebase-map/index.js.map +0 -1
  325. package/dist/codebase-map/store.js +0 -122
  326. package/dist/codebase-map/store.js.map +0 -1
  327. package/dist/codebase-map/summary.js +0 -152
  328. package/dist/codebase-map/summary.js.map +0 -1
  329. package/dist/compliance/index.js +0 -288
  330. package/dist/compliance/index.js.map +0 -1
  331. package/dist/compliance/protocol-enforcement.js +0 -332
  332. package/dist/compliance/protocol-enforcement.js.map +0 -1
  333. package/dist/compliance/protocol-rules.js +0 -786
  334. package/dist/compliance/protocol-rules.js.map +0 -1
  335. package/dist/compliance/protocol-types.js +0 -80
  336. package/dist/compliance/protocol-types.js.map +0 -1
  337. package/dist/compliance/store.js +0 -53
  338. package/dist/compliance/store.js.map +0 -1
  339. package/dist/config/build-config.js +0 -29
  340. package/dist/config/build-config.js.map +0 -1
  341. package/dist/config.js +0 -400
  342. package/dist/config.js.map +0 -1
  343. package/dist/constants.js +0 -18
  344. package/dist/constants.js.map +0 -1
  345. package/dist/context/index.js +0 -137
  346. package/dist/context/index.js.map +0 -1
  347. package/dist/engine-result.js +0 -12
  348. package/dist/engine-result.js.map +0 -1
  349. package/dist/error-catalog.js +0 -404
  350. package/dist/error-catalog.js.map +0 -1
  351. package/dist/error-registry.js +0 -393
  352. package/dist/error-registry.js.map +0 -1
  353. package/dist/errors.js +0 -167
  354. package/dist/errors.js.map +0 -1
  355. package/dist/hooks/handlers/error-hooks.js +0 -43
  356. package/dist/hooks/handlers/error-hooks.js.map +0 -1
  357. package/dist/hooks/handlers/file-hooks.js +0 -80
  358. package/dist/hooks/handlers/file-hooks.js.map +0 -1
  359. package/dist/hooks/handlers/index.js +0 -19
  360. package/dist/hooks/handlers/index.js.map +0 -1
  361. package/dist/hooks/handlers/mcp-hooks.js +0 -80
  362. package/dist/hooks/handlers/mcp-hooks.js.map +0 -1
  363. package/dist/hooks/handlers/memory-bridge-refresh.js +0 -42
  364. package/dist/hooks/handlers/memory-bridge-refresh.js.map +0 -1
  365. package/dist/hooks/handlers/session-hooks.js +0 -109
  366. package/dist/hooks/handlers/session-hooks.js.map +0 -1
  367. package/dist/hooks/handlers/task-hooks.js +0 -70
  368. package/dist/hooks/handlers/task-hooks.js.map +0 -1
  369. package/dist/hooks/index.js +0 -13
  370. package/dist/hooks/index.js.map +0 -1
  371. package/dist/hooks/payload-schemas.js +0 -163
  372. package/dist/hooks/payload-schemas.js.map +0 -1
  373. package/dist/hooks/provider-hooks.js +0 -34
  374. package/dist/hooks/provider-hooks.js.map +0 -1
  375. package/dist/hooks/registry.js +0 -176
  376. package/dist/hooks/registry.js.map +0 -1
  377. package/dist/hooks/types.js +0 -62
  378. package/dist/hooks/types.js.map +0 -1
  379. package/dist/hooks.js +0 -136
  380. package/dist/hooks.js.map +0 -1
  381. package/dist/init.js +0 -711
  382. package/dist/init.js.map +0 -1
  383. package/dist/inject/index.js +0 -82
  384. package/dist/inject/index.js.map +0 -1
  385. package/dist/injection.js +0 -343
  386. package/dist/injection.js.map +0 -1
  387. package/dist/intelligence/adaptive-validation.js +0 -497
  388. package/dist/intelligence/adaptive-validation.js.map +0 -1
  389. package/dist/intelligence/impact.js +0 -675
  390. package/dist/intelligence/impact.js.map +0 -1
  391. package/dist/intelligence/index.js +0 -22
  392. package/dist/intelligence/index.js.map +0 -1
  393. package/dist/intelligence/patterns.js +0 -492
  394. package/dist/intelligence/patterns.js.map +0 -1
  395. package/dist/intelligence/prediction.js +0 -499
  396. package/dist/intelligence/prediction.js.map +0 -1
  397. package/dist/intelligence/types.js +0 -13
  398. package/dist/intelligence/types.js.map +0 -1
  399. package/dist/internal.js +0 -276
  400. package/dist/internal.js.map +0 -1
  401. package/dist/issue/create.js +0 -121
  402. package/dist/issue/create.js.map +0 -1
  403. package/dist/issue/diagnostics.js +0 -59
  404. package/dist/issue/diagnostics.js.map +0 -1
  405. package/dist/issue/index.js +0 -10
  406. package/dist/issue/index.js.map +0 -1
  407. package/dist/issue/template-parser.js +0 -267
  408. package/dist/issue/template-parser.js.map +0 -1
  409. package/dist/json-schema-validator.js +0 -76
  410. package/dist/json-schema-validator.js.map +0 -1
  411. package/dist/lib/index.js +0 -10
  412. package/dist/lib/index.js.map +0 -1
  413. package/dist/lib/retry.js +0 -152
  414. package/dist/lib/retry.js.map +0 -1
  415. package/dist/lifecycle/chain-composition.js +0 -152
  416. package/dist/lifecycle/chain-composition.js.map +0 -1
  417. package/dist/lifecycle/chain-store.js +0 -246
  418. package/dist/lifecycle/chain-store.js.map +0 -1
  419. package/dist/lifecycle/consolidate-rcasd.js +0 -352
  420. package/dist/lifecycle/consolidate-rcasd.js.map +0 -1
  421. package/dist/lifecycle/default-chain.js +0 -167
  422. package/dist/lifecycle/default-chain.js.map +0 -1
  423. package/dist/lifecycle/evidence.js +0 -180
  424. package/dist/lifecycle/evidence.js.map +0 -1
  425. package/dist/lifecycle/frontmatter.js +0 -363
  426. package/dist/lifecycle/frontmatter.js.map +0 -1
  427. package/dist/lifecycle/index.js +0 -753
  428. package/dist/lifecycle/index.js.map +0 -1
  429. package/dist/lifecycle/pipeline.js +0 -656
  430. package/dist/lifecycle/pipeline.js.map +0 -1
  431. package/dist/lifecycle/rcasd-index.js +0 -326
  432. package/dist/lifecycle/rcasd-index.js.map +0 -1
  433. package/dist/lifecycle/rcasd-paths.js +0 -220
  434. package/dist/lifecycle/rcasd-paths.js.map +0 -1
  435. package/dist/lifecycle/resume.js +0 -864
  436. package/dist/lifecycle/resume.js.map +0 -1
  437. package/dist/lifecycle/stage-artifacts.js +0 -94
  438. package/dist/lifecycle/stage-artifacts.js.map +0 -1
  439. package/dist/lifecycle/stages.js +0 -534
  440. package/dist/lifecycle/stages.js.map +0 -1
  441. package/dist/lifecycle/state-machine.js +0 -516
  442. package/dist/lifecycle/state-machine.js.map +0 -1
  443. package/dist/lifecycle/tessera-engine.js +0 -249
  444. package/dist/lifecycle/tessera-engine.js.map +0 -1
  445. package/dist/logger.js +0 -140
  446. package/dist/logger.js.map +0 -1
  447. package/dist/mcp/index.js +0 -146
  448. package/dist/mcp/index.js.map +0 -1
  449. package/dist/memory/auto-extract.js +0 -177
  450. package/dist/memory/auto-extract.js.map +0 -1
  451. package/dist/memory/brain-embedding.js +0 -66
  452. package/dist/memory/brain-embedding.js.map +0 -1
  453. package/dist/memory/brain-lifecycle.js +0 -298
  454. package/dist/memory/brain-lifecycle.js.map +0 -1
  455. package/dist/memory/brain-links.js +0 -148
  456. package/dist/memory/brain-links.js.map +0 -1
  457. package/dist/memory/brain-maintenance.js +0 -98
  458. package/dist/memory/brain-maintenance.js.map +0 -1
  459. package/dist/memory/brain-migration.js +0 -149
  460. package/dist/memory/brain-migration.js.map +0 -1
  461. package/dist/memory/brain-reasoning.js +0 -215
  462. package/dist/memory/brain-reasoning.js.map +0 -1
  463. package/dist/memory/brain-retrieval.js +0 -521
  464. package/dist/memory/brain-retrieval.js.map +0 -1
  465. package/dist/memory/brain-row-types.js +0 -10
  466. package/dist/memory/brain-row-types.js.map +0 -1
  467. package/dist/memory/brain-search.js +0 -519
  468. package/dist/memory/brain-search.js.map +0 -1
  469. package/dist/memory/brain-similarity.js +0 -145
  470. package/dist/memory/brain-similarity.js.map +0 -1
  471. package/dist/memory/claude-mem-migration.js +0 -277
  472. package/dist/memory/claude-mem-migration.js.map +0 -1
  473. package/dist/memory/decisions.js +0 -148
  474. package/dist/memory/decisions.js.map +0 -1
  475. package/dist/memory/embedding-local.js +0 -97
  476. package/dist/memory/embedding-local.js.map +0 -1
  477. package/dist/memory/embedding-queue.js +0 -271
  478. package/dist/memory/embedding-queue.js.map +0 -1
  479. package/dist/memory/embedding-worker.js +0 -58
  480. package/dist/memory/embedding-worker.js.map +0 -1
  481. package/dist/memory/engine-compat.js +0 -1030
  482. package/dist/memory/engine-compat.js.map +0 -1
  483. package/dist/memory/index.js +0 -773
  484. package/dist/memory/index.js.map +0 -1
  485. package/dist/memory/learnings.js +0 -121
  486. package/dist/memory/learnings.js.map +0 -1
  487. package/dist/memory/memory-bridge.js +0 -370
  488. package/dist/memory/memory-bridge.js.map +0 -1
  489. package/dist/memory/patterns.js +0 -122
  490. package/dist/memory/patterns.js.map +0 -1
  491. package/dist/memory/pipeline-manifest-sqlite.js +0 -975
  492. package/dist/memory/pipeline-manifest-sqlite.js.map +0 -1
  493. package/dist/memory/session-memory.js +0 -331
  494. package/dist/memory/session-memory.js.map +0 -1
  495. package/dist/metrics/ab-test.js +0 -260
  496. package/dist/metrics/ab-test.js.map +0 -1
  497. package/dist/metrics/aggregation.js +0 -363
  498. package/dist/metrics/aggregation.js.map +0 -1
  499. package/dist/metrics/common.js +0 -64
  500. package/dist/metrics/common.js.map +0 -1
  501. package/dist/metrics/enums.js +0 -78
  502. package/dist/metrics/enums.js.map +0 -1
  503. package/dist/metrics/index.js +0 -19
  504. package/dist/metrics/index.js.map +0 -1
  505. package/dist/metrics/model-provider-registry.js +0 -88
  506. package/dist/metrics/model-provider-registry.js.map +0 -1
  507. package/dist/metrics/otel-integration.js +0 -263
  508. package/dist/metrics/otel-integration.js.map +0 -1
  509. package/dist/metrics/provider-detection.js +0 -103
  510. package/dist/metrics/provider-detection.js.map +0 -1
  511. package/dist/metrics/token-estimation.js +0 -253
  512. package/dist/metrics/token-estimation.js.map +0 -1
  513. package/dist/metrics/token-service.js +0 -450
  514. package/dist/metrics/token-service.js.map +0 -1
  515. package/dist/migration/agent-outputs.js +0 -316
  516. package/dist/migration/agent-outputs.js.map +0 -1
  517. package/dist/migration/checksum.js +0 -92
  518. package/dist/migration/checksum.js.map +0 -1
  519. package/dist/migration/index.js +0 -282
  520. package/dist/migration/index.js.map +0 -1
  521. package/dist/migration/logger.js +0 -360
  522. package/dist/migration/logger.js.map +0 -1
  523. package/dist/migration/preflight.js +0 -9
  524. package/dist/migration/preflight.js.map +0 -1
  525. package/dist/migration/state.js +0 -421
  526. package/dist/migration/state.js.map +0 -1
  527. package/dist/migration/validate.js +0 -241
  528. package/dist/migration/validate.js.map +0 -1
  529. package/dist/nexus/deps.js +0 -375
  530. package/dist/nexus/deps.js.map +0 -1
  531. package/dist/nexus/discover.js +0 -288
  532. package/dist/nexus/discover.js.map +0 -1
  533. package/dist/nexus/hash.js +0 -10
  534. package/dist/nexus/hash.js.map +0 -1
  535. package/dist/nexus/index.js +0 -38
  536. package/dist/nexus/index.js.map +0 -1
  537. package/dist/nexus/migrate-json-to-sqlite.js +0 -115
  538. package/dist/nexus/migrate-json-to-sqlite.js.map +0 -1
  539. package/dist/nexus/permissions.js +0 -105
  540. package/dist/nexus/permissions.js.map +0 -1
  541. package/dist/nexus/query.js +0 -175
  542. package/dist/nexus/query.js.map +0 -1
  543. package/dist/nexus/registry.js +0 -584
  544. package/dist/nexus/registry.js.map +0 -1
  545. package/dist/nexus/sharing/index.js +0 -288
  546. package/dist/nexus/sharing/index.js.map +0 -1
  547. package/dist/nexus/transfer-types.js +0 -8
  548. package/dist/nexus/transfer-types.js.map +0 -1
  549. package/dist/nexus/transfer.js +0 -263
  550. package/dist/nexus/transfer.js.map +0 -1
  551. package/dist/observability/index.js +0 -103
  552. package/dist/observability/index.js.map +0 -1
  553. package/dist/observability/log-filter.js +0 -63
  554. package/dist/observability/log-filter.js.map +0 -1
  555. package/dist/observability/log-parser.js +0 -99
  556. package/dist/observability/log-parser.js.map +0 -1
  557. package/dist/observability/log-reader.js +0 -139
  558. package/dist/observability/log-reader.js.map +0 -1
  559. package/dist/observability/types.js +0 -19
  560. package/dist/observability/types.js.map +0 -1
  561. package/dist/orchestration/analyze.js +0 -107
  562. package/dist/orchestration/analyze.js.map +0 -1
  563. package/dist/orchestration/bootstrap.js +0 -132
  564. package/dist/orchestration/bootstrap.js.map +0 -1
  565. package/dist/orchestration/context.js +0 -56
  566. package/dist/orchestration/context.js.map +0 -1
  567. package/dist/orchestration/critical-path.js +0 -100
  568. package/dist/orchestration/critical-path.js.map +0 -1
  569. package/dist/orchestration/index.js +0 -286
  570. package/dist/orchestration/index.js.map +0 -1
  571. package/dist/orchestration/parallel.js +0 -89
  572. package/dist/orchestration/parallel.js.map +0 -1
  573. package/dist/orchestration/protocol-validators.js +0 -524
  574. package/dist/orchestration/protocol-validators.js.map +0 -1
  575. package/dist/orchestration/skill-ops.js +0 -98
  576. package/dist/orchestration/skill-ops.js.map +0 -1
  577. package/dist/orchestration/status.js +0 -107
  578. package/dist/orchestration/status.js.map +0 -1
  579. package/dist/orchestration/unblock.js +0 -103
  580. package/dist/orchestration/unblock.js.map +0 -1
  581. package/dist/orchestration/validate-spawn.js +0 -67
  582. package/dist/orchestration/validate-spawn.js.map +0 -1
  583. package/dist/orchestration/waves.js +0 -86
  584. package/dist/orchestration/waves.js.map +0 -1
  585. package/dist/otel/index.js +0 -163
  586. package/dist/otel/index.js.map +0 -1
  587. package/dist/output.js +0 -132
  588. package/dist/output.js.map +0 -1
  589. package/dist/pagination.js +0 -64
  590. package/dist/pagination.js.map +0 -1
  591. package/dist/paths.js +0 -337
  592. package/dist/paths.js.map +0 -1
  593. package/dist/phases/deps.js +0 -372
  594. package/dist/phases/deps.js.map +0 -1
  595. package/dist/phases/index.js +0 -349
  596. package/dist/phases/index.js.map +0 -1
  597. package/dist/pipeline/index.js +0 -10
  598. package/dist/pipeline/index.js.map +0 -1
  599. package/dist/pipeline/phase.js +0 -45
  600. package/dist/pipeline/phase.js.map +0 -1
  601. package/dist/platform.js +0 -211
  602. package/dist/platform.js.map +0 -1
  603. package/dist/project-info.js +0 -84
  604. package/dist/project-info.js.map +0 -1
  605. package/dist/reconciliation/index.js +0 -10
  606. package/dist/reconciliation/index.js.map +0 -1
  607. package/dist/reconciliation/link-store.js +0 -129
  608. package/dist/reconciliation/link-store.js.map +0 -1
  609. package/dist/reconciliation/reconciliation-engine.js +0 -298
  610. package/dist/reconciliation/reconciliation-engine.js.map +0 -1
  611. package/dist/release/artifacts.js +0 -427
  612. package/dist/release/artifacts.js.map +0 -1
  613. package/dist/release/changelog-writer.js +0 -151
  614. package/dist/release/changelog-writer.js.map +0 -1
  615. package/dist/release/channel.js +0 -144
  616. package/dist/release/channel.js.map +0 -1
  617. package/dist/release/ci.js +0 -166
  618. package/dist/release/ci.js.map +0 -1
  619. package/dist/release/github-pr.js +0 -225
  620. package/dist/release/github-pr.js.map +0 -1
  621. package/dist/release/guards.js +0 -116
  622. package/dist/release/guards.js.map +0 -1
  623. package/dist/release/index.js +0 -22
  624. package/dist/release/index.js.map +0 -1
  625. package/dist/release/release-config.js +0 -158
  626. package/dist/release/release-config.js.map +0 -1
  627. package/dist/release/release-manifest.js +0 -1019
  628. package/dist/release/release-manifest.js.map +0 -1
  629. package/dist/release/version-bump.js +0 -255
  630. package/dist/release/version-bump.js.map +0 -1
  631. package/dist/remote/index.js +0 -257
  632. package/dist/remote/index.js.map +0 -1
  633. package/dist/repair.js +0 -130
  634. package/dist/repair.js.map +0 -1
  635. package/dist/research/index.js +0 -2
  636. package/dist/research/index.js.map +0 -1
  637. package/dist/roadmap/index.js +0 -59
  638. package/dist/roadmap/index.js.map +0 -1
  639. package/dist/routing/capability-matrix.js +0 -1557
  640. package/dist/routing/capability-matrix.js.map +0 -1
  641. package/dist/routing/index.js +0 -9
  642. package/dist/routing/index.js.map +0 -1
  643. package/dist/scaffold.js +0 -1178
  644. package/dist/scaffold.js.map +0 -1
  645. package/dist/schema-management.js +0 -295
  646. package/dist/schema-management.js.map +0 -1
  647. package/dist/security/index.js +0 -9
  648. package/dist/security/index.js.map +0 -1
  649. package/dist/security/input-sanitization.js +0 -321
  650. package/dist/security/input-sanitization.js.map +0 -1
  651. package/dist/sequence/index.js +0 -295
  652. package/dist/sequence/index.js.map +0 -1
  653. package/dist/sessions/assumptions.js +0 -54
  654. package/dist/sessions/assumptions.js.map +0 -1
  655. package/dist/sessions/briefing.js +0 -377
  656. package/dist/sessions/briefing.js.map +0 -1
  657. package/dist/sessions/context-alert.js +0 -222
  658. package/dist/sessions/context-alert.js.map +0 -1
  659. package/dist/sessions/context-inject.js +0 -61
  660. package/dist/sessions/context-inject.js.map +0 -1
  661. package/dist/sessions/context-monitor.js +0 -98
  662. package/dist/sessions/context-monitor.js.map +0 -1
  663. package/dist/sessions/decisions.js +0 -65
  664. package/dist/sessions/decisions.js.map +0 -1
  665. package/dist/sessions/find.js +0 -63
  666. package/dist/sessions/find.js.map +0 -1
  667. package/dist/sessions/handoff.js +0 -328
  668. package/dist/sessions/handoff.js.map +0 -1
  669. package/dist/sessions/hitl-warnings.js +0 -254
  670. package/dist/sessions/hitl-warnings.js.map +0 -1
  671. package/dist/sessions/index.js +0 -314
  672. package/dist/sessions/index.js.map +0 -1
  673. package/dist/sessions/session-archive.js +0 -40
  674. package/dist/sessions/session-archive.js.map +0 -1
  675. package/dist/sessions/session-cleanup.js +0 -59
  676. package/dist/sessions/session-cleanup.js.map +0 -1
  677. package/dist/sessions/session-drift.js +0 -134
  678. package/dist/sessions/session-drift.js.map +0 -1
  679. package/dist/sessions/session-enforcement.js +0 -144
  680. package/dist/sessions/session-enforcement.js.map +0 -1
  681. package/dist/sessions/session-grade.js +0 -253
  682. package/dist/sessions/session-grade.js.map +0 -1
  683. package/dist/sessions/session-history.js +0 -42
  684. package/dist/sessions/session-history.js.map +0 -1
  685. package/dist/sessions/session-id.js +0 -81
  686. package/dist/sessions/session-id.js.map +0 -1
  687. package/dist/sessions/session-memory-bridge.js +0 -52
  688. package/dist/sessions/session-memory-bridge.js.map +0 -1
  689. package/dist/sessions/session-show.js +0 -24
  690. package/dist/sessions/session-show.js.map +0 -1
  691. package/dist/sessions/session-stats.js +0 -69
  692. package/dist/sessions/session-stats.js.map +0 -1
  693. package/dist/sessions/session-suspend.js +0 -39
  694. package/dist/sessions/session-suspend.js.map +0 -1
  695. package/dist/sessions/session-switch.js +0 -51
  696. package/dist/sessions/session-switch.js.map +0 -1
  697. package/dist/sessions/session-view.js +0 -76
  698. package/dist/sessions/session-view.js.map +0 -1
  699. package/dist/sessions/statusline-setup.js +0 -85
  700. package/dist/sessions/statusline-setup.js.map +0 -1
  701. package/dist/sessions/types.js +0 -8
  702. package/dist/sessions/types.js.map +0 -1
  703. package/dist/signaldock/claude-code-transport.d.ts +0 -34
  704. package/dist/signaldock/claude-code-transport.d.ts.map +0 -1
  705. package/dist/signaldock/claude-code-transport.js +0 -107
  706. package/dist/signaldock/claude-code-transport.js.map +0 -1
  707. package/dist/signaldock/factory.d.ts +0 -22
  708. package/dist/signaldock/factory.d.ts.map +0 -1
  709. package/dist/signaldock/factory.js +0 -25
  710. package/dist/signaldock/factory.js.map +0 -1
  711. package/dist/signaldock/index.d.ts +0 -13
  712. package/dist/signaldock/index.d.ts.map +0 -1
  713. package/dist/signaldock/index.js +0 -9
  714. package/dist/signaldock/index.js.map +0 -1
  715. package/dist/signaldock/signaldock-transport.d.ts +0 -45
  716. package/dist/signaldock/signaldock-transport.d.ts.map +0 -1
  717. package/dist/signaldock/signaldock-transport.js +0 -122
  718. package/dist/signaldock/signaldock-transport.js.map +0 -1
  719. package/dist/signaldock/transport.d.ts +0 -49
  720. package/dist/signaldock/transport.d.ts.map +0 -1
  721. package/dist/signaldock/transport.js +0 -11
  722. package/dist/signaldock/transport.js.map +0 -1
  723. package/dist/signaldock/types.d.ts +0 -88
  724. package/dist/signaldock/types.d.ts.map +0 -1
  725. package/dist/signaldock/types.js +0 -11
  726. package/dist/signaldock/types.js.map +0 -1
  727. package/dist/skills/agents/config.js +0 -94
  728. package/dist/skills/agents/config.js.map +0 -1
  729. package/dist/skills/agents/install.js +0 -116
  730. package/dist/skills/agents/install.js.map +0 -1
  731. package/dist/skills/agents/registry.js +0 -161
  732. package/dist/skills/agents/registry.js.map +0 -1
  733. package/dist/skills/discovery.js +0 -333
  734. package/dist/skills/discovery.js.map +0 -1
  735. package/dist/skills/dispatch.js +0 -347
  736. package/dist/skills/dispatch.js.map +0 -1
  737. package/dist/skills/dynamic-skill-generator.js +0 -100
  738. package/dist/skills/dynamic-skill-generator.js.map +0 -1
  739. package/dist/skills/index.js +0 -44
  740. package/dist/skills/index.js.map +0 -1
  741. package/dist/skills/injection/subagent.js +0 -195
  742. package/dist/skills/injection/subagent.js.map +0 -1
  743. package/dist/skills/injection/token.js +0 -260
  744. package/dist/skills/injection/token.js.map +0 -1
  745. package/dist/skills/install.js +0 -40
  746. package/dist/skills/install.js.map +0 -1
  747. package/dist/skills/manifests/contribution.js +0 -175
  748. package/dist/skills/manifests/contribution.js.map +0 -1
  749. package/dist/skills/manifests/research.js +0 -281
  750. package/dist/skills/manifests/research.js.map +0 -1
  751. package/dist/skills/manifests/resolver.js +0 -146
  752. package/dist/skills/manifests/resolver.js.map +0 -1
  753. package/dist/skills/marketplace.js +0 -90
  754. package/dist/skills/marketplace.js.map +0 -1
  755. package/dist/skills/orchestrator/spawn.js +0 -178
  756. package/dist/skills/orchestrator/spawn.js.map +0 -1
  757. package/dist/skills/orchestrator/startup.js +0 -451
  758. package/dist/skills/orchestrator/startup.js.map +0 -1
  759. package/dist/skills/orchestrator/validator.js +0 -301
  760. package/dist/skills/orchestrator/validator.js.map +0 -1
  761. package/dist/skills/precedence-integration.js +0 -73
  762. package/dist/skills/precedence-integration.js.map +0 -1
  763. package/dist/skills/precedence-types.js +0 -16
  764. package/dist/skills/precedence-types.js.map +0 -1
  765. package/dist/skills/routing-table.js +0 -63
  766. package/dist/skills/routing-table.js.map +0 -1
  767. package/dist/skills/skill-paths.js +0 -220
  768. package/dist/skills/skill-paths.js.map +0 -1
  769. package/dist/skills/test-utility.js +0 -55
  770. package/dist/skills/test-utility.js.map +0 -1
  771. package/dist/skills/types.js +0 -118
  772. package/dist/skills/types.js.map +0 -1
  773. package/dist/skills/validation.js +0 -183
  774. package/dist/skills/validation.js.map +0 -1
  775. package/dist/skills/version.js +0 -57
  776. package/dist/skills/version.js.map +0 -1
  777. package/dist/snapshot/index.js +0 -188
  778. package/dist/snapshot/index.js.map +0 -1
  779. package/dist/spawn/adapter-registry.js +0 -246
  780. package/dist/spawn/adapter-registry.js.map +0 -1
  781. package/dist/spawn/index.js +0 -10
  782. package/dist/spawn/index.js.map +0 -1
  783. package/dist/stats/index.js +0 -343
  784. package/dist/stats/index.js.map +0 -1
  785. package/dist/stats/workflow-telemetry.js +0 -400
  786. package/dist/stats/workflow-telemetry.js.map +0 -1
  787. package/dist/sticky/archive.js +0 -47
  788. package/dist/sticky/archive.js.map +0 -1
  789. package/dist/sticky/convert.js +0 -235
  790. package/dist/sticky/convert.js.map +0 -1
  791. package/dist/sticky/create.js +0 -48
  792. package/dist/sticky/create.js.map +0 -1
  793. package/dist/sticky/id.js +0 -35
  794. package/dist/sticky/id.js.map +0 -1
  795. package/dist/sticky/index.js +0 -16
  796. package/dist/sticky/index.js.map +0 -1
  797. package/dist/sticky/list.js +0 -44
  798. package/dist/sticky/list.js.map +0 -1
  799. package/dist/sticky/purge.js +0 -45
  800. package/dist/sticky/purge.js.map +0 -1
  801. package/dist/sticky/show.js +0 -42
  802. package/dist/sticky/show.js.map +0 -1
  803. package/dist/sticky/types.js +0 -10
  804. package/dist/sticky/types.js.map +0 -1
  805. package/dist/store/atomic.js +0 -167
  806. package/dist/store/atomic.js.map +0 -1
  807. package/dist/store/backup.js +0 -94
  808. package/dist/store/backup.js.map +0 -1
  809. package/dist/store/brain-accessor.js +0 -397
  810. package/dist/store/brain-accessor.js.map +0 -1
  811. package/dist/store/brain-schema.js +0 -215
  812. package/dist/store/brain-schema.js.map +0 -1
  813. package/dist/store/brain-sqlite.js +0 -222
  814. package/dist/store/brain-sqlite.js.map +0 -1
  815. package/dist/store/cache.js +0 -168
  816. package/dist/store/cache.js.map +0 -1
  817. package/dist/store/chain-schema.js +0 -51
  818. package/dist/store/chain-schema.js.map +0 -1
  819. package/dist/store/converters.js +0 -122
  820. package/dist/store/converters.js.map +0 -1
  821. package/dist/store/cross-db-cleanup.js +0 -169
  822. package/dist/store/cross-db-cleanup.js.map +0 -1
  823. package/dist/store/data-accessor.js +0 -26
  824. package/dist/store/data-accessor.js.map +0 -1
  825. package/dist/store/data-safety-central.js +0 -269
  826. package/dist/store/data-safety-central.js.map +0 -1
  827. package/dist/store/data-safety.js +0 -274
  828. package/dist/store/data-safety.js.map +0 -1
  829. package/dist/store/db-helpers.js +0 -223
  830. package/dist/store/db-helpers.js.map +0 -1
  831. package/dist/store/export.js +0 -155
  832. package/dist/store/export.js.map +0 -1
  833. package/dist/store/file-utils.js +0 -270
  834. package/dist/store/file-utils.js.map +0 -1
  835. package/dist/store/git-checkpoint.js +0 -365
  836. package/dist/store/git-checkpoint.js.map +0 -1
  837. package/dist/store/import-logging.js +0 -139
  838. package/dist/store/import-logging.js.map +0 -1
  839. package/dist/store/import-remap.js +0 -145
  840. package/dist/store/import-remap.js.map +0 -1
  841. package/dist/store/import-sort.js +0 -121
  842. package/dist/store/import-sort.js.map +0 -1
  843. package/dist/store/index.js +0 -28
  844. package/dist/store/index.js.map +0 -1
  845. package/dist/store/json.js +0 -208
  846. package/dist/store/json.js.map +0 -1
  847. package/dist/store/lifecycle-store.js +0 -249
  848. package/dist/store/lifecycle-store.js.map +0 -1
  849. package/dist/store/lock.js +0 -70
  850. package/dist/store/lock.js.map +0 -1
  851. package/dist/store/migration-manager.js +0 -151
  852. package/dist/store/migration-manager.js.map +0 -1
  853. package/dist/store/migration-sqlite.js +0 -676
  854. package/dist/store/migration-sqlite.js.map +0 -1
  855. package/dist/store/nexus-schema.js +0 -62
  856. package/dist/store/nexus-schema.js.map +0 -1
  857. package/dist/store/nexus-sqlite.js +0 -217
  858. package/dist/store/nexus-sqlite.js.map +0 -1
  859. package/dist/store/nexus-validation-schemas.js +0 -40
  860. package/dist/store/nexus-validation-schemas.js.map +0 -1
  861. package/dist/store/parsers.js +0 -37
  862. package/dist/store/parsers.js.map +0 -1
  863. package/dist/store/project-detect.js +0 -457
  864. package/dist/store/project-detect.js.map +0 -1
  865. package/dist/store/provider.js +0 -101
  866. package/dist/store/provider.js.map +0 -1
  867. package/dist/store/safety-data-accessor.js +0 -243
  868. package/dist/store/safety-data-accessor.js.map +0 -1
  869. package/dist/store/schema.js +0 -7
  870. package/dist/store/schema.js.map +0 -1
  871. package/dist/store/session-store.js +0 -219
  872. package/dist/store/session-store.js.map +0 -1
  873. package/dist/store/sqlite-backup.js +0 -105
  874. package/dist/store/sqlite-backup.js.map +0 -1
  875. package/dist/store/sqlite-data-accessor.js +0 -734
  876. package/dist/store/sqlite-data-accessor.js.map +0 -1
  877. package/dist/store/sqlite.js +0 -436
  878. package/dist/store/sqlite.js.map +0 -1
  879. package/dist/store/status-registry.js +0 -8
  880. package/dist/store/status-registry.js.map +0 -1
  881. package/dist/store/task-store.js +0 -348
  882. package/dist/store/task-store.js.map +0 -1
  883. package/dist/store/tasks-schema.js +0 -604
  884. package/dist/store/tasks-schema.js.map +0 -1
  885. package/dist/store/typed-query.js +0 -15
  886. package/dist/store/typed-query.js.map +0 -1
  887. package/dist/store/validation-schemas.js +0 -278
  888. package/dist/store/validation-schemas.js.map +0 -1
  889. package/dist/system/archive-analytics.js +0 -277
  890. package/dist/system/archive-analytics.js.map +0 -1
  891. package/dist/system/archive-stats.js +0 -64
  892. package/dist/system/archive-stats.js.map +0 -1
  893. package/dist/system/audit.js +0 -145
  894. package/dist/system/audit.js.map +0 -1
  895. package/dist/system/backup.js +0 -141
  896. package/dist/system/backup.js.map +0 -1
  897. package/dist/system/cleanup.js +0 -134
  898. package/dist/system/cleanup.js.map +0 -1
  899. package/dist/system/health.js +0 -1054
  900. package/dist/system/health.js.map +0 -1
  901. package/dist/system/index.js +0 -18
  902. package/dist/system/index.js.map +0 -1
  903. package/dist/system/inject-generate.js +0 -122
  904. package/dist/system/inject-generate.js.map +0 -1
  905. package/dist/system/labels.js +0 -38
  906. package/dist/system/labels.js.map +0 -1
  907. package/dist/system/metrics.js +0 -61
  908. package/dist/system/metrics.js.map +0 -1
  909. package/dist/system/migrate.js +0 -43
  910. package/dist/system/migrate.js.map +0 -1
  911. package/dist/system/platform-paths.js +0 -80
  912. package/dist/system/platform-paths.js.map +0 -1
  913. package/dist/system/runtime.js +0 -161
  914. package/dist/system/runtime.js.map +0 -1
  915. package/dist/system/safestop.js +0 -99
  916. package/dist/system/safestop.js.map +0 -1
  917. package/dist/system/storage-preflight.js +0 -123
  918. package/dist/system/storage-preflight.js.map +0 -1
  919. package/dist/task-work/index.js +0 -155
  920. package/dist/task-work/index.js.map +0 -1
  921. package/dist/tasks/add.js +0 -661
  922. package/dist/tasks/add.js.map +0 -1
  923. package/dist/tasks/analyze.js +0 -85
  924. package/dist/tasks/analyze.js.map +0 -1
  925. package/dist/tasks/archive.js +0 -90
  926. package/dist/tasks/archive.js.map +0 -1
  927. package/dist/tasks/atomicity.js +0 -83
  928. package/dist/tasks/atomicity.js.map +0 -1
  929. package/dist/tasks/cancel-ops.js +0 -83
  930. package/dist/tasks/cancel-ops.js.map +0 -1
  931. package/dist/tasks/complete.js +0 -208
  932. package/dist/tasks/complete.js.map +0 -1
  933. package/dist/tasks/crossref-extract.js +0 -73
  934. package/dist/tasks/crossref-extract.js.map +0 -1
  935. package/dist/tasks/delete-preview.js +0 -192
  936. package/dist/tasks/delete-preview.js.map +0 -1
  937. package/dist/tasks/delete.js +0 -120
  938. package/dist/tasks/delete.js.map +0 -1
  939. package/dist/tasks/deletion-strategy.js +0 -200
  940. package/dist/tasks/deletion-strategy.js.map +0 -1
  941. package/dist/tasks/dependency-check.js +0 -278
  942. package/dist/tasks/dependency-check.js.map +0 -1
  943. package/dist/tasks/deps-ready.js +0 -32
  944. package/dist/tasks/deps-ready.js.map +0 -1
  945. package/dist/tasks/enforcement.js +0 -86
  946. package/dist/tasks/enforcement.js.map +0 -1
  947. package/dist/tasks/epic-enforcement.js +0 -294
  948. package/dist/tasks/epic-enforcement.js.map +0 -1
  949. package/dist/tasks/find.js +0 -148
  950. package/dist/tasks/find.js.map +0 -1
  951. package/dist/tasks/graph-cache.js +0 -127
  952. package/dist/tasks/graph-cache.js.map +0 -1
  953. package/dist/tasks/graph-ops.js +0 -171
  954. package/dist/tasks/graph-ops.js.map +0 -1
  955. package/dist/tasks/graph-rag.js +0 -328
  956. package/dist/tasks/graph-rag.js.map +0 -1
  957. package/dist/tasks/hierarchy-policy.js +0 -149
  958. package/dist/tasks/hierarchy-policy.js.map +0 -1
  959. package/dist/tasks/hierarchy.js +0 -185
  960. package/dist/tasks/hierarchy.js.map +0 -1
  961. package/dist/tasks/id-generator.js +0 -65
  962. package/dist/tasks/id-generator.js.map +0 -1
  963. package/dist/tasks/index.js +0 -14
  964. package/dist/tasks/index.js.map +0 -1
  965. package/dist/tasks/labels.js +0 -52
  966. package/dist/tasks/labels.js.map +0 -1
  967. package/dist/tasks/list.js +0 -68
  968. package/dist/tasks/list.js.map +0 -1
  969. package/dist/tasks/phase-tracking.js +0 -133
  970. package/dist/tasks/phase-tracking.js.map +0 -1
  971. package/dist/tasks/pipeline-stage.js +0 -248
  972. package/dist/tasks/pipeline-stage.js.map +0 -1
  973. package/dist/tasks/plan.js +0 -268
  974. package/dist/tasks/plan.js.map +0 -1
  975. package/dist/tasks/relates.js +0 -89
  976. package/dist/tasks/relates.js.map +0 -1
  977. package/dist/tasks/reparent.d.ts +0 -38
  978. package/dist/tasks/reparent.d.ts.map +0 -1
  979. package/dist/tasks/show.js +0 -78
  980. package/dist/tasks/show.js.map +0 -1
  981. package/dist/tasks/size-weighting.js +0 -86
  982. package/dist/tasks/size-weighting.js.map +0 -1
  983. package/dist/tasks/staleness.js +0 -86
  984. package/dist/tasks/staleness.js.map +0 -1
  985. package/dist/tasks/task-ops.js +0 -1340
  986. package/dist/tasks/task-ops.js.map +0 -1
  987. package/dist/tasks/update.js +0 -271
  988. package/dist/tasks/update.js.map +0 -1
  989. package/dist/templates/index.js +0 -10
  990. package/dist/templates/index.js.map +0 -1
  991. package/dist/templates/parser.js +0 -254
  992. package/dist/templates/parser.js.map +0 -1
  993. package/dist/ui/aliases.js +0 -153
  994. package/dist/ui/aliases.js.map +0 -1
  995. package/dist/ui/changelog.js +0 -184
  996. package/dist/ui/changelog.js.map +0 -1
  997. package/dist/ui/command-registry.js +0 -168
  998. package/dist/ui/command-registry.js.map +0 -1
  999. package/dist/ui/flags.js +0 -94
  1000. package/dist/ui/flags.js.map +0 -1
  1001. package/dist/ui/index.js +0 -24
  1002. package/dist/ui/index.js.map +0 -1
  1003. package/dist/ui/injection-legacy.d.ts +0 -26
  1004. package/dist/ui/injection-legacy.d.ts.map +0 -1
  1005. package/dist/ui/injection-legacy.js +0 -42
  1006. package/dist/ui/injection-legacy.js.map +0 -1
  1007. package/dist/upgrade.js +0 -1144
  1008. package/dist/upgrade.js.map +0 -1
  1009. package/dist/validation/chain-validation.js +0 -146
  1010. package/dist/validation/chain-validation.js.map +0 -1
  1011. package/dist/validation/compliance.js +0 -155
  1012. package/dist/validation/compliance.js.map +0 -1
  1013. package/dist/validation/docs-sync.js +0 -212
  1014. package/dist/validation/docs-sync.js.map +0 -1
  1015. package/dist/validation/doctor/checks.js +0 -1069
  1016. package/dist/validation/doctor/checks.js.map +0 -1
  1017. package/dist/validation/doctor/index.js +0 -9
  1018. package/dist/validation/doctor/index.js.map +0 -1
  1019. package/dist/validation/doctor/project-cache.js +0 -160
  1020. package/dist/validation/doctor/project-cache.js.map +0 -1
  1021. package/dist/validation/doctor/utils.js +0 -155
  1022. package/dist/validation/doctor/utils.js.map +0 -1
  1023. package/dist/validation/engine.js +0 -902
  1024. package/dist/validation/engine.js.map +0 -1
  1025. package/dist/validation/gap-check.js +0 -175
  1026. package/dist/validation/gap-check.js.map +0 -1
  1027. package/dist/validation/index.js +0 -40
  1028. package/dist/validation/index.js.map +0 -1
  1029. package/dist/validation/manifest.js +0 -237
  1030. package/dist/validation/manifest.js.map +0 -1
  1031. package/dist/validation/operation-gate-validators.js +0 -724
  1032. package/dist/validation/operation-gate-validators.js.map +0 -1
  1033. package/dist/validation/operation-verification-gates.js +0 -532
  1034. package/dist/validation/operation-verification-gates.js.map +0 -1
  1035. package/dist/validation/param-utils.js +0 -139
  1036. package/dist/validation/param-utils.js.map +0 -1
  1037. package/dist/validation/protocol-common.js +0 -300
  1038. package/dist/validation/protocol-common.js.map +0 -1
  1039. package/dist/validation/protocols/consensus.js +0 -71
  1040. package/dist/validation/protocols/consensus.js.map +0 -1
  1041. package/dist/validation/protocols/contribution.js +0 -59
  1042. package/dist/validation/protocols/contribution.js.map +0 -1
  1043. package/dist/validation/protocols/decomposition.js +0 -59
  1044. package/dist/validation/protocols/decomposition.js.map +0 -1
  1045. package/dist/validation/protocols/implementation.js +0 -59
  1046. package/dist/validation/protocols/implementation.js.map +0 -1
  1047. package/dist/validation/protocols/release-protocol.js +0 -60
  1048. package/dist/validation/protocols/release-protocol.js.map +0 -1
  1049. package/dist/validation/protocols/research.js +0 -77
  1050. package/dist/validation/protocols/research.js.map +0 -1
  1051. package/dist/validation/protocols/specification.js +0 -84
  1052. package/dist/validation/protocols/specification.js.map +0 -1
  1053. package/dist/validation/protocols/testing-protocol.js +0 -70
  1054. package/dist/validation/protocols/testing-protocol.js.map +0 -1
  1055. package/dist/validation/protocols/validation-protocol.js +0 -70
  1056. package/dist/validation/protocols/validation-protocol.js.map +0 -1
  1057. package/dist/validation/schema-integrity.js +0 -170
  1058. package/dist/validation/schema-integrity.js.map +0 -1
  1059. package/dist/validation/schema-validator.js +0 -176
  1060. package/dist/validation/schema-validator.js.map +0 -1
  1061. package/dist/validation/validate-ops.js +0 -937
  1062. package/dist/validation/validate-ops.js.map +0 -1
  1063. package/dist/validation/validation-rules.js +0 -226
  1064. package/dist/validation/validation-rules.js.map +0 -1
  1065. package/dist/validation/verification.js +0 -321
  1066. package/dist/validation/verification.js.map +0 -1
  1067. package/src/signaldock/__tests__/claude-code-transport.test.d.ts +0 -7
  1068. package/src/signaldock/__tests__/claude-code-transport.test.d.ts.map +0 -1
  1069. package/src/signaldock/__tests__/claude-code-transport.test.js +0 -147
  1070. package/src/signaldock/__tests__/claude-code-transport.test.js.map +0 -1
  1071. package/src/signaldock/__tests__/claude-code-transport.test.ts +0 -180
  1072. package/src/signaldock/__tests__/factory.test.d.ts +0 -7
  1073. package/src/signaldock/__tests__/factory.test.d.ts.map +0 -1
  1074. package/src/signaldock/__tests__/factory.test.js +0 -55
  1075. package/src/signaldock/__tests__/factory.test.js.map +0 -1
  1076. package/src/signaldock/__tests__/factory.test.ts +0 -61
  1077. package/src/signaldock/__tests__/signaldock-transport.test.d.ts +0 -9
  1078. package/src/signaldock/__tests__/signaldock-transport.test.d.ts.map +0 -1
  1079. package/src/signaldock/__tests__/signaldock-transport.test.js +0 -321
  1080. package/src/signaldock/__tests__/signaldock-transport.test.js.map +0 -1
  1081. package/src/signaldock/__tests__/signaldock-transport.test.ts +0 -421
  1082. package/src/signaldock/claude-code-transport.ts +0 -137
  1083. package/src/signaldock/factory.ts +0 -39
  1084. package/src/signaldock/index.ts +0 -28
  1085. package/src/signaldock/signaldock-transport.ts +0 -194
  1086. package/src/signaldock/transport.ts +0 -78
  1087. package/src/signaldock/types.ts +0 -100
@@ -39,7 +39,19 @@ export async function createTestDb() {
39
39
  verification: { enabled: false },
40
40
  });
41
41
  writeFileSync(join(cleoDir, 'config.json'), configContent);
42
+ // Verify write succeeded
43
+ const { readdirSync } = await import('node:fs');
44
+ const contents = readdirSync(cleoDir);
45
+ if (!contents.includes('config.json')) {
46
+ throw new Error(`createTestDb: config.json not found in ${cleoDir} after write (contents: ${JSON.stringify(contents)})`);
47
+ }
42
48
  const accessor = await createSqliteDataAccessor(tempDir);
49
+ // Verify config.json still exists after DB initialization
50
+ const { readdirSync: readdirSync2 } = await import('node:fs');
51
+ const contentsAfterDb = readdirSync2(cleoDir);
52
+ if (!contentsAfterDb.includes('config.json')) {
53
+ throw new Error(`createTestDb: config.json DELETED by createSqliteDataAccessor! ${cleoDir}: ${JSON.stringify(contentsAfterDb)}`);
54
+ }
43
55
  return {
44
56
  tempDir,
45
57
  cleoDir,
@@ -1 +1 @@
1
- {"version":3,"file":"test-db-helper.js","sourceRoot":"","sources":["test-db-helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AActE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC1D,oDAAoD;IACpD,YAAY,EAAE,CAAC;IAEf,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEvC,OAAO;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvB,YAAY,EAAE,CAAC;YACf,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAA4C;IACpE,OAAO,KAAK,CAAC,GAAG,CACd,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;QACC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE;QAChC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;QACvC,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;QAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ;QAChC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAClD,GAAG,CAAC;KACL,CAAS,CACb,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAsB,EACtB,KAA4C;IAE5C,+CAA+C;IAC/C,MAAM,QAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAExD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEnC,oEAAoE;IACpE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,0EAA0E;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"test-db-helper.js","sourceRoot":"","sources":["test-db-helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AActE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC1D,oDAAoD;IACpD,YAAY,EAAE,CAAC;IAEf,gFAAgF;IAChF,4EAA4E;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QACnC,WAAW,EAAE;YACX,OAAO,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE;YACrC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SAC5B;QACD,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QAC1B,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;KACjC,CAAC,CAAC;IACH,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC;IAC3D,yBAAyB;IACzB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,0CAA0C,OAAO,2BAA2B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CACxG,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAEzD,0DAA0D;IAC1D,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,kEAAkE,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAChH,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvB,YAAY,EAAE,CAAC;YACf,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAA4C;IACpE,OAAO,KAAK,CAAC,GAAG,CACd,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;QACC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE;QAChC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;QACvC,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;QAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ;QAChC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAClD,GAAG,CAAC;KACL,CAAS,CACb,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAsB,EACtB,KAA4C;IAE5C,+CAA+C;IAC/C,MAAM,QAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAExD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEnC,oEAAoE;IACpE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,0EAA0E;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Agent Registry Accessor — CRUD operations for agent credentials in SQLite.
3
+ *
4
+ * Implements the `AgentRegistryAPI` contract from `@cleocode/contracts`.
5
+ * API keys are encrypted at rest using the crypto/credentials module.
6
+ *
7
+ * @see docs/specs/SIGNALDOCK-UNIFIED-AGENT-REGISTRY.md Section 3
8
+ * @task T175
9
+ */
10
+
11
+ import type {
12
+ AgentCredential,
13
+ AgentListFilter,
14
+ AgentRegistryAPI,
15
+ TransportConfig,
16
+ } from '@cleocode/contracts';
17
+ import { desc, eq } from 'drizzle-orm';
18
+ import type { NodeSQLiteDatabase } from 'drizzle-orm/node-sqlite';
19
+ import { createInsertSchema, createSelectSchema } from 'drizzle-orm/zod';
20
+ import { decrypt, encrypt } from '../crypto/credentials.js';
21
+ import * as schema from './tasks-schema.js';
22
+
23
+ const { agentCredentials } = schema;
24
+
25
+ /** Typed database instance — preserves end-to-end type safety with the full schema. */
26
+ type TypedDb = NodeSQLiteDatabase<typeof schema>;
27
+
28
+ /** Zod validation schemas for agent credentials (drizzle-orm/zod). */
29
+ export const agentCredentialInsertSchema = createInsertSchema(agentCredentials);
30
+ export const agentCredentialSelectSchema = createSelectSchema(agentCredentials);
31
+
32
+ /** Convert a database row to an AgentCredential, decrypting the API key. */
33
+ async function rowToCredential(
34
+ row: typeof agentCredentials.$inferSelect,
35
+ projectPath: string,
36
+ ): Promise<AgentCredential> {
37
+ const apiKey = await decrypt(row.apiKeyEncrypted, projectPath);
38
+ return {
39
+ agentId: row.agentId,
40
+ displayName: row.displayName,
41
+ apiKey,
42
+ apiBaseUrl: row.apiBaseUrl,
43
+ classification: row.classification ?? undefined,
44
+ privacyTier: row.privacyTier as AgentCredential['privacyTier'],
45
+ capabilities: JSON.parse(row.capabilities) as string[],
46
+ skills: JSON.parse(row.skills) as string[],
47
+ transportConfig: JSON.parse(row.transportConfig) as TransportConfig,
48
+ isActive: row.isActive,
49
+ lastUsedAt: row.lastUsedAt ? new Date(row.lastUsedAt).toISOString() : undefined,
50
+ createdAt: new Date(row.createdAt).toISOString(),
51
+ updatedAt: new Date(row.updatedAt).toISOString(),
52
+ };
53
+ }
54
+
55
+ /** SQLite implementation of the AgentRegistryAPI. */
56
+ export class AgentRegistryAccessor implements AgentRegistryAPI {
57
+ constructor(
58
+ private db: TypedDb,
59
+ private projectPath: string,
60
+ ) {}
61
+
62
+ async register(
63
+ credential: Omit<AgentCredential, 'createdAt' | 'updatedAt'>,
64
+ ): Promise<AgentCredential> {
65
+ const now = Date.now();
66
+ const apiKeyEncrypted = await encrypt(credential.apiKey, this.projectPath);
67
+
68
+ await this.db.insert(agentCredentials).values({
69
+ agentId: credential.agentId,
70
+ displayName: credential.displayName,
71
+ apiKeyEncrypted,
72
+ apiBaseUrl: credential.apiBaseUrl,
73
+ classification: credential.classification ?? null,
74
+ privacyTier: credential.privacyTier,
75
+ capabilities: JSON.stringify(credential.capabilities),
76
+ skills: JSON.stringify(credential.skills),
77
+ transportConfig: JSON.stringify(credential.transportConfig),
78
+ isActive: credential.isActive,
79
+ lastUsedAt: credential.lastUsedAt ? new Date(credential.lastUsedAt).getTime() : null,
80
+ createdAt: now,
81
+ updatedAt: now,
82
+ });
83
+
84
+ const result = await this.get(credential.agentId);
85
+ if (!result) throw new Error(`Failed to register agent: ${credential.agentId}`);
86
+ return result;
87
+ }
88
+
89
+ async get(agentId: string): Promise<AgentCredential | null> {
90
+ const rows = await this.db
91
+ .select()
92
+ .from(agentCredentials)
93
+ .where(eq(agentCredentials.agentId, agentId));
94
+
95
+ if (rows.length === 0) return null;
96
+ return rowToCredential(rows[0]!, this.projectPath);
97
+ }
98
+
99
+ async list(filter?: AgentListFilter): Promise<AgentCredential[]> {
100
+ const query =
101
+ filter?.active !== undefined
102
+ ? this.db
103
+ .select()
104
+ .from(agentCredentials)
105
+ .where(eq(agentCredentials.isActive, filter.active))
106
+ : this.db.select().from(agentCredentials);
107
+
108
+ const rows = await query;
109
+ return Promise.all(rows.map((row) => rowToCredential(row, this.projectPath)));
110
+ }
111
+
112
+ async update(
113
+ agentId: string,
114
+ updates: Partial<Omit<AgentCredential, 'agentId' | 'createdAt'>>,
115
+ ): Promise<AgentCredential> {
116
+ // C2 fix: pre-flight check — fail fast if agent doesn't exist
117
+ const existing = await this.get(agentId);
118
+ if (!existing) throw new Error(`Agent not found: ${agentId}`);
119
+
120
+ const now = Date.now();
121
+ const values: Record<string, unknown> = { updatedAt: now };
122
+
123
+ if (updates.displayName !== undefined) values['displayName'] = updates.displayName;
124
+ if (updates.apiBaseUrl !== undefined) values['apiBaseUrl'] = updates.apiBaseUrl;
125
+ if (updates.classification !== undefined) values['classification'] = updates.classification;
126
+ if (updates.privacyTier !== undefined) values['privacyTier'] = updates.privacyTier;
127
+ if (updates.capabilities !== undefined)
128
+ values['capabilities'] = JSON.stringify(updates.capabilities);
129
+ if (updates.skills !== undefined) values['skills'] = JSON.stringify(updates.skills);
130
+ if (updates.transportConfig !== undefined)
131
+ values['transportConfig'] = JSON.stringify(updates.transportConfig);
132
+ if (updates.isActive !== undefined) values['isActive'] = updates.isActive;
133
+ if (updates.apiKey !== undefined) {
134
+ values['apiKeyEncrypted'] = await encrypt(updates.apiKey, this.projectPath);
135
+ }
136
+
137
+ await this.db.update(agentCredentials).set(values).where(eq(agentCredentials.agentId, agentId));
138
+
139
+ const result = await this.get(agentId);
140
+ if (!result) throw new Error(`Agent not found after update: ${agentId}`);
141
+ return result;
142
+ }
143
+
144
+ async remove(agentId: string): Promise<void> {
145
+ // H2 fix: pre-flight check — throw if agent doesn't exist
146
+ const existing = await this.get(agentId);
147
+ if (!existing) throw new Error(`Agent not found: ${agentId}`);
148
+
149
+ await this.db.delete(agentCredentials).where(eq(agentCredentials.agentId, agentId));
150
+ }
151
+
152
+ async rotateKey(agentId: string): Promise<{ agentId: string; newApiKey: string }> {
153
+ const credential = await this.get(agentId);
154
+ if (!credential) throw new Error(`Agent not found: ${agentId}`);
155
+
156
+ // Call cloud API to rotate key
157
+ const response = await fetch(`${credential.apiBaseUrl}/agents/${agentId}/rotate-key`, {
158
+ method: 'POST',
159
+ headers: {
160
+ Authorization: `Bearer ${credential.apiKey}`,
161
+ 'X-Agent-Id': agentId,
162
+ },
163
+ });
164
+
165
+ if (!response.ok) {
166
+ throw new Error(`Failed to rotate key on cloud: ${response.status} ${response.statusText}`);
167
+ }
168
+
169
+ const data = (await response.json()) as { data?: { apiKey?: string } };
170
+ const newApiKey = data.data?.apiKey;
171
+ if (!newApiKey) throw new Error('Cloud API did not return a new API key');
172
+
173
+ // Re-encrypt and store locally
174
+ await this.update(agentId, { apiKey: newApiKey });
175
+
176
+ // C1 fix: return only agentId, not plaintext key — callers use get() to retrieve
177
+ return { agentId, newApiKey: `${newApiKey.substring(0, 8)}...rotated` };
178
+ }
179
+
180
+ async getActive(): Promise<AgentCredential | null> {
181
+ // H3 fix: secondary orderBy(createdAt desc) for deterministic tie-breaking
182
+ const rows = await this.db
183
+ .select()
184
+ .from(agentCredentials)
185
+ .where(eq(agentCredentials.isActive, true))
186
+ .orderBy(desc(agentCredentials.lastUsedAt), desc(agentCredentials.createdAt))
187
+ .limit(1);
188
+
189
+ if (rows.length === 0) return null;
190
+ return rowToCredential(rows[0]!, this.projectPath);
191
+ }
192
+
193
+ async markUsed(agentId: string): Promise<void> {
194
+ await this.db
195
+ .update(agentCredentials)
196
+ .set({ lastUsedAt: Date.now(), updatedAt: Date.now() })
197
+ .where(eq(agentCredentials.agentId, agentId));
198
+ }
199
+ }
@@ -57,6 +57,7 @@ export function rowToTask(row: TaskRow): Task {
57
57
  }
58
58
  : undefined,
59
59
  pipelineStage: row.pipelineStage ?? undefined,
60
+ assignee: row.assignee ?? undefined,
60
61
  };
61
62
  }
62
63
 
@@ -92,6 +93,7 @@ export function taskToRow(task: Partial<Task> & { id: string }): NewTaskRow {
92
93
  modifiedBy: task.provenance?.modifiedBy ?? null,
93
94
  sessionId: task.provenance?.sessionId ?? null,
94
95
  pipelineStage: task.pipelineStage ?? null,
96
+ assignee: task.assignee ?? null,
95
97
  };
96
98
  }
97
99
 
@@ -79,6 +79,7 @@ export async function upsertTask(
79
79
  sessionId: row.sessionId,
80
80
  // T060: pipeline stage name (RCASD-IVTR+C)
81
81
  pipelineStage: row.pipelineStage ?? null,
82
+ assignee: row.assignee ?? null,
82
83
  // Always include archive metadata so unarchive clears stale values (T5034)
83
84
  archivedAt: archiveFields?.archivedAt ?? null,
84
85
  archiveReason: archiveFields?.archiveReason ?? null,
@@ -303,6 +303,29 @@ export class SafetyDataAccessor implements DataAccessor {
303
303
  return this.inner.removeSingleSession(sessionId);
304
304
  }
305
305
 
306
+ // ---- Agent instances ----
307
+
308
+ async listAgentInstances(filters?: {
309
+ status?: string | string[];
310
+ agentType?: string | string[];
311
+ }) {
312
+ return this.inner.listAgentInstances(filters);
313
+ }
314
+
315
+ async getAgentInstance(agentId: string) {
316
+ return this.inner.getAgentInstance(agentId);
317
+ }
318
+
319
+ // ---- Agent task claiming ----
320
+
321
+ async claimTask(taskId: string, agentId: string): Promise<void> {
322
+ return this.inner.claimTask(taskId, agentId);
323
+ }
324
+
325
+ async unclaimTask(taskId: string): Promise<void> {
326
+ return this.inner.unclaimTask(taskId);
327
+ }
328
+
306
329
  // ---- Lifecycle ----
307
330
 
308
331
  async close(): Promise<void> {
@@ -0,0 +1,227 @@
1
+ /**
2
+ * SQLite store for signaldock.db — local agent messaging database.
3
+ *
4
+ * Creates and manages .cleo/signaldock.db using node:sqlite directly.
5
+ * Runs the consolidated Diesel migration SQL (from signaldock-storage crate)
6
+ * to bootstrap all 22 tables for local agent infrastructure.
7
+ *
8
+ * This is the Node.js bootstrap path. In production cloud, the Rust
9
+ * signaldock-storage crate manages this DB via Diesel ORM directly.
10
+ * Locally, we create the DB here so that cleo init scaffolds the full
11
+ * .cleo/ directory with all databases ready.
12
+ *
13
+ * @task T223
14
+ */
15
+
16
+ import { existsSync, mkdirSync, readFileSync } from 'node:fs';
17
+ import { createRequire } from 'node:module';
18
+ import { dirname, join } from 'node:path';
19
+ import type { DatabaseSync } from 'node:sqlite';
20
+ import { fileURLToPath } from 'node:url';
21
+ import { getCleoDirAbsolute } from '../paths.js';
22
+
23
+ const _require = createRequire(import.meta.url);
24
+ const { DatabaseSync: DatabaseSyncClass } = _require('node:sqlite') as {
25
+ DatabaseSync: new (...args: ConstructorParameters<typeof DatabaseSync>) => DatabaseSync;
26
+ };
27
+
28
+ /** Database file name within .cleo/ directory. */
29
+ const DB_FILENAME = 'signaldock.db';
30
+
31
+ /** Schema version for signaldock databases. */
32
+ export const SIGNALDOCK_SCHEMA_VERSION = '2026.3.76';
33
+
34
+ /**
35
+ * Get the path to the signaldock.db SQLite database file.
36
+ */
37
+ export function getSignaldockDbPath(cwd?: string): string {
38
+ const cleoDir = cwd ? join(cwd, '.cleo') : getCleoDirAbsolute();
39
+ return join(cleoDir, DB_FILENAME);
40
+ }
41
+
42
+ /**
43
+ * Resolve the path to the consolidated migration SQL.
44
+ *
45
+ * The migration lives in the signaldock-storage crate at:
46
+ * crates/signaldock-storage/migrations/2026-03-28-000000_initial/up.sql
47
+ *
48
+ * We resolve it relative to the project root (monorepo layout).
49
+ */
50
+ function resolveMigrationSql(cwd?: string): string | null {
51
+ // Try monorepo layout first (development)
52
+ const projectRoot = cwd ?? process.cwd();
53
+ const monorepoPath = join(
54
+ projectRoot,
55
+ 'crates',
56
+ 'signaldock-storage',
57
+ 'migrations',
58
+ '2026-03-28-000000_initial',
59
+ 'up.sql',
60
+ );
61
+ if (existsSync(monorepoPath)) return monorepoPath;
62
+
63
+ // Try relative to this file (installed package)
64
+ const thisDir = dirname(fileURLToPath(import.meta.url));
65
+ const installedPath = join(
66
+ thisDir,
67
+ '..',
68
+ '..',
69
+ '..',
70
+ '..',
71
+ 'crates',
72
+ 'signaldock-storage',
73
+ 'migrations',
74
+ '2026-03-28-000000_initial',
75
+ 'up.sql',
76
+ );
77
+ if (existsSync(installedPath)) return installedPath;
78
+
79
+ return null;
80
+ }
81
+
82
+ /**
83
+ * Ensure signaldock.db exists and has the full schema applied.
84
+ *
85
+ * Idempotent — safe to call multiple times. Uses `CREATE TABLE IF NOT EXISTS`
86
+ * and `CREATE INDEX IF NOT EXISTS` throughout.
87
+ *
88
+ * @returns Object with action ('created' | 'exists') and the database path.
89
+ */
90
+ export async function ensureSignaldockDb(
91
+ cwd?: string,
92
+ ): Promise<{ action: 'created' | 'exists'; path: string }> {
93
+ const dbPath = getSignaldockDbPath(cwd);
94
+ const alreadyExists = existsSync(dbPath);
95
+
96
+ // Ensure parent directory exists
97
+ mkdirSync(dirname(dbPath), { recursive: true });
98
+
99
+ // Open or create the database
100
+ const db = new DatabaseSyncClass(dbPath);
101
+
102
+ try {
103
+ // Set pragmas for optimal performance
104
+ db.exec('PRAGMA journal_mode = WAL');
105
+ db.exec('PRAGMA busy_timeout = 5000');
106
+ db.exec('PRAGMA synchronous = NORMAL');
107
+ db.exec('PRAGMA foreign_keys = ON');
108
+ db.exec('PRAGMA cache_size = -64000'); // 64MB
109
+
110
+ // Check if schema already applied (agents table as sentinel)
111
+ const hasSchema = (() => {
112
+ try {
113
+ const result = db
114
+ .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agents'")
115
+ .get() as { name: string } | undefined;
116
+ return !!result;
117
+ } catch {
118
+ return false;
119
+ }
120
+ })();
121
+
122
+ if (!hasSchema) {
123
+ // Run the consolidated migration
124
+ const migrationPath = resolveMigrationSql(cwd);
125
+ if (!migrationPath) {
126
+ throw new Error(
127
+ 'signaldock-storage migration SQL not found. Ensure crates/signaldock-storage/ exists.',
128
+ );
129
+ }
130
+
131
+ const migrationSql = readFileSync(migrationPath, 'utf-8');
132
+
133
+ // Execute the full migration SQL in one shot.
134
+ // node:sqlite's exec() handles multiple statements natively.
135
+ // We wrap in a transaction for atomicity.
136
+ db.exec('BEGIN TRANSACTION');
137
+ try {
138
+ db.exec(migrationSql);
139
+ db.exec('COMMIT');
140
+ } catch (err) {
141
+ db.exec('ROLLBACK');
142
+ throw err;
143
+ }
144
+ }
145
+
146
+ // Record schema version in a metadata table
147
+ db.exec(`
148
+ CREATE TABLE IF NOT EXISTS _signaldock_meta (
149
+ key TEXT PRIMARY KEY,
150
+ value TEXT NOT NULL,
151
+ updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
152
+ )
153
+ `);
154
+ db.exec(`
155
+ INSERT OR REPLACE INTO _signaldock_meta (key, value, updated_at)
156
+ VALUES ('schema_version', '${SIGNALDOCK_SCHEMA_VERSION}', strftime('%s', 'now'))
157
+ `);
158
+
159
+ return {
160
+ action: alreadyExists && hasSchema ? 'exists' : 'created',
161
+ path: dbPath,
162
+ };
163
+ } finally {
164
+ db.close();
165
+ }
166
+ }
167
+
168
+ /**
169
+ * Check signaldock.db health — table count, WAL mode, schema version.
170
+ *
171
+ * Used by `cleo doctor` to verify signaldock.db integrity.
172
+ *
173
+ * @returns Health report object or null if DB doesn't exist.
174
+ */
175
+ export async function checkSignaldockDbHealth(cwd?: string): Promise<{
176
+ exists: boolean;
177
+ path: string;
178
+ tableCount: number;
179
+ walMode: boolean;
180
+ schemaVersion: string | null;
181
+ foreignKeysEnabled: boolean;
182
+ } | null> {
183
+ const dbPath = getSignaldockDbPath(cwd);
184
+ if (!existsSync(dbPath)) {
185
+ return {
186
+ exists: false,
187
+ path: dbPath,
188
+ tableCount: 0,
189
+ walMode: false,
190
+ schemaVersion: null,
191
+ foreignKeysEnabled: false,
192
+ };
193
+ }
194
+
195
+ const db = new DatabaseSyncClass(dbPath);
196
+ try {
197
+ const tables = db
198
+ .prepare(
199
+ "SELECT COUNT(*) as count FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'",
200
+ )
201
+ .get() as { count: number };
202
+
203
+ const journalMode = db.prepare('PRAGMA journal_mode').get() as { journal_mode: string };
204
+ const fkEnabled = db.prepare('PRAGMA foreign_keys').get() as { foreign_keys: number };
205
+
206
+ let schemaVersion: string | null = null;
207
+ try {
208
+ const meta = db
209
+ .prepare("SELECT value FROM _signaldock_meta WHERE key = 'schema_version'")
210
+ .get() as { value: string } | undefined;
211
+ schemaVersion = meta?.value ?? null;
212
+ } catch {
213
+ // Meta table may not exist
214
+ }
215
+
216
+ return {
217
+ exists: true,
218
+ path: dbPath,
219
+ tableCount: tables.count,
220
+ walMode: journalMode.journal_mode === 'wal',
221
+ schemaVersion,
222
+ foreignKeysEnabled: fkEnabled.foreign_keys === 1,
223
+ };
224
+ } finally {
225
+ db.close();
226
+ }
227
+ }
@@ -783,6 +783,7 @@ export async function createSqliteDataAccessor(cwd?: string): Promise<DataAccess
783
783
  ['createdBy', 'createdBy'],
784
784
  ['modifiedBy', 'modifiedBy'],
785
785
  ['sessionId', 'sessionId'],
786
+ ['assignee', 'assignee'],
786
787
  ];
787
788
 
788
789
  for (const [key, col] of fieldMap) {
@@ -874,6 +875,74 @@ export async function createSqliteDataAccessor(cwd?: string): Promise<DataAccess
874
875
  const meta = await getMetaValue<{ schemaVersion?: string }>(cwd, 'file_meta');
875
876
  return meta?.schemaVersion ?? null;
876
877
  },
878
+
879
+ // ---- Agent instances ----
880
+
881
+ async listAgentInstances(filters) {
882
+ const { listAgentInstances: listAgents } = await import('../agents/registry.js');
883
+ // Cast generic string filters to the specific union types expected by the agents module
884
+ return listAgents(filters as Parameters<typeof listAgents>[0], cwd);
885
+ },
886
+
887
+ async getAgentInstance(agentId) {
888
+ const { getAgentInstance: getAgent } = await import('../agents/registry.js');
889
+ return getAgent(agentId, cwd);
890
+ },
891
+
892
+ // ---- Agent task claiming ----
893
+
894
+ async claimTask(taskId: string, agentId: string): Promise<void> {
895
+ const nativeDb = getNativeTasksDb();
896
+ if (!nativeDb) {
897
+ throw new Error('Native database not initialized');
898
+ }
899
+
900
+ // Verify the task exists first
901
+ const existsRow = nativeDb.prepare('SELECT assignee FROM tasks WHERE id = ?').get(taskId) as
902
+ | { assignee: string | null }
903
+ | undefined;
904
+ if (!existsRow) {
905
+ throw new Error(`Task not found: ${taskId}`);
906
+ }
907
+
908
+ // Atomic claim: only succeeds if assignee IS NULL or already claimed by this agent.
909
+ // This prevents race conditions between concurrent agents.
910
+ const result = nativeDb
911
+ .prepare(
912
+ 'UPDATE tasks SET assignee = ?, updated_at = ? WHERE id = ? AND (assignee IS NULL OR assignee = ?)',
913
+ )
914
+ .run(agentId, new Date().toISOString(), taskId, agentId) as { changes: number };
915
+
916
+ if (result.changes === 0) {
917
+ // Row was not updated — task is claimed by a different agent
918
+ const currentRow = nativeDb
919
+ .prepare('SELECT assignee FROM tasks WHERE id = ?')
920
+ .get(taskId) as { assignee: string | null } | undefined;
921
+ throw new Error(
922
+ `Task ${taskId} is already claimed by agent: ${currentRow?.assignee ?? 'unknown'}`,
923
+ );
924
+ }
925
+ },
926
+
927
+ async unclaimTask(taskId: string): Promise<void> {
928
+ const nativeDb = getNativeTasksDb();
929
+ if (!nativeDb) {
930
+ throw new Error('Native database not initialized');
931
+ }
932
+
933
+ // Verify the task exists
934
+ const existsRow = nativeDb.prepare('SELECT id FROM tasks WHERE id = ?').get(taskId) as
935
+ | { id: string }
936
+ | undefined;
937
+ if (!existsRow) {
938
+ throw new Error(`Task not found: ${taskId}`);
939
+ }
940
+
941
+ // Clear the assignee — no-op if already null
942
+ nativeDb
943
+ .prepare('UPDATE tasks SET assignee = NULL, updated_at = ? WHERE id = ?')
944
+ .run(new Date().toISOString(), taskId);
945
+ },
877
946
  };
878
947
 
879
948
  return accessor;
@@ -403,7 +403,10 @@ export { isSqliteBusy } from './migration-manager.js';
403
403
  */
404
404
  import type { RequiredColumn } from './migration-manager.js';
405
405
 
406
- const REQUIRED_TASK_COLUMNS: RequiredColumn[] = [{ name: 'pipeline_stage', ddl: 'text' }];
406
+ const REQUIRED_TASK_COLUMNS: RequiredColumn[] = [
407
+ { name: 'pipeline_stage', ddl: 'text' },
408
+ { name: 'assignee', ddl: 'text' },
409
+ ];
407
410
 
408
411
  /**
409
412
  * Required columns that MUST exist on the sessions table before the
@@ -99,6 +99,7 @@ export async function updateTask(
99
99
  updateRow.cancellationReason = updates.cancellationReason;
100
100
  if (updates.verification !== undefined)
101
101
  updateRow.verificationJson = JSON.stringify(updates.verification);
102
+ if (updates.assignee !== undefined) updateRow.assignee = updates.assignee;
102
103
 
103
104
  db.update(schema.tasks).set(updateRow).where(eq(schema.tasks.id, taskId)).run();
104
105
 
@@ -196,6 +196,8 @@ export const tasks = sqliteTable(
196
196
  // Not referencing lifecycle_stages.id so that stage binding works without
197
197
  // requiring a lifecycle pipeline record for every task.
198
198
  pipelineStage: text('pipeline_stage'),
199
+ /** Agent ID that has claimed/is assigned to this task. */
200
+ assignee: text('assignee'),
199
201
  },
200
202
  (table) => [
201
203
  index('idx_tasks_status').on(table.status),
@@ -205,6 +207,7 @@ export const tasks = sqliteTable(
205
207
  index('idx_tasks_priority').on(table.priority),
206
208
  index('idx_tasks_session_id').on(table.sessionId),
207
209
  index('idx_tasks_pipeline_stage').on(table.pipelineStage),
210
+ index('idx_tasks_assignee').on(table.assignee),
208
211
  // T033 composite indexes
209
212
  index('idx_tasks_parent_status').on(table.parentId, table.status),
210
213
  index('idx_tasks_status_priority').on(table.status, table.priority),
@@ -850,3 +853,42 @@ export type ReleaseManifestRow = typeof releaseManifests.$inferSelect;
850
853
  export type NewReleaseManifestRow = typeof releaseManifests.$inferInsert;
851
854
  export type ExternalTaskLinkRow = typeof externalTaskLinks.$inferSelect;
852
855
  export type NewExternalTaskLinkRow = typeof externalTaskLinks.$inferInsert;
856
+
857
+ // === AGENT CREDENTIALS (Unified Agent Registry — T170/T173) ===
858
+
859
+ /**
860
+ * Agent credentials for the unified agent registry.
861
+ * Stores encrypted API keys and transport configuration for registered agents.
862
+ * Replaces loose clawmsgr-*.json config files.
863
+ *
864
+ * @see docs/specs/SIGNALDOCK-UNIFIED-AGENT-REGISTRY.md Section 3.1
865
+ */
866
+ export const agentCredentials = sqliteTable(
867
+ 'agent_credentials',
868
+ {
869
+ agentId: text('agent_id').primaryKey(),
870
+ displayName: text('display_name').notNull(),
871
+ /** API key encrypted at rest using AES-256-GCM with machine-bound key. */
872
+ apiKeyEncrypted: text('api_key_encrypted').notNull(),
873
+ apiBaseUrl: text('api_base_url').notNull().default('https://api.signaldock.io'),
874
+ classification: text('classification'),
875
+ privacyTier: text('privacy_tier').notNull().default('public'),
876
+ /** JSON array of capability slugs. */
877
+ capabilities: text('capabilities').notNull().default('[]'),
878
+ /** JSON array of skill slugs. */
879
+ skills: text('skills').notNull().default('[]'),
880
+ /** JSON object with transport-specific settings. */
881
+ transportConfig: text('transport_config').notNull().default('{}'),
882
+ isActive: integer('is_active', { mode: 'boolean' }).notNull().default(true),
883
+ lastUsedAt: integer('last_used_at'),
884
+ createdAt: integer('created_at').notNull(),
885
+ updatedAt: integer('updated_at').notNull(),
886
+ },
887
+ (table) => [
888
+ index('idx_agent_credentials_active').on(table.isActive),
889
+ index('idx_agent_credentials_last_used').on(table.lastUsedAt),
890
+ ],
891
+ );
892
+
893
+ export type AgentCredentialRow = typeof agentCredentials.$inferSelect;
894
+ export type NewAgentCredentialRow = typeof agentCredentials.$inferInsert;