@cleocode/core 2026.5.134 → 2026.6.1

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 (557) hide show
  1. package/binaries/README.md +49 -27
  2. package/dist/agents/{agent-registry.d.ts → agent-capacity-tracker.d.ts} +2 -2
  3. package/dist/agents/agent-capacity-tracker.d.ts.map +1 -0
  4. package/dist/agents/{agent-registry.js → agent-capacity-tracker.js} +2 -2
  5. package/dist/agents/agent-capacity-tracker.js.map +1 -0
  6. package/dist/agents/index.d.ts +1 -1
  7. package/dist/agents/index.d.ts.map +1 -1
  8. package/dist/agents/index.js +4 -2
  9. package/dist/agents/index.js.map +1 -1
  10. package/dist/agents/seed-install.d.ts +1 -1
  11. package/dist/agents/seed-install.d.ts.map +1 -1
  12. package/dist/agents/seed-install.js +42 -36
  13. package/dist/agents/seed-install.js.map +1 -1
  14. package/dist/caamp-export.d.ts +18 -0
  15. package/dist/caamp-export.d.ts.map +1 -0
  16. package/dist/caamp-export.js +18 -0
  17. package/dist/caamp-export.js.map +1 -0
  18. package/dist/conduit/http-transport.d.ts +7 -13
  19. package/dist/conduit/http-transport.d.ts.map +1 -1
  20. package/dist/conduit/http-transport.js +12 -59
  21. package/dist/conduit/http-transport.js.map +1 -1
  22. package/dist/conduit/local-transport.d.ts +1 -1
  23. package/dist/conduit/local-transport.d.ts.map +1 -1
  24. package/dist/conduit/local-transport.js +69 -43
  25. package/dist/conduit/local-transport.js.map +1 -1
  26. package/dist/dispatch/mutate-projection.d.ts.map +1 -1
  27. package/dist/dispatch/mutate-projection.js +11 -0
  28. package/dist/dispatch/mutate-projection.js.map +1 -1
  29. package/dist/docs/docs-read-model.d.ts +7 -0
  30. package/dist/docs/docs-read-model.d.ts.map +1 -1
  31. package/dist/docs/docs-read-model.js +5 -0
  32. package/dist/docs/docs-read-model.js.map +1 -1
  33. package/dist/docs/export-document.js +40526 -281
  34. package/dist/docs/export-document.js.map +6 -1
  35. package/dist/docs/supersede.d.ts.map +1 -1
  36. package/dist/docs/supersede.js +12 -7
  37. package/dist/docs/supersede.js.map +1 -1
  38. package/dist/doctor/db-substrate.d.ts.map +1 -1
  39. package/dist/doctor/db-substrate.js +10 -9
  40. package/dist/doctor/db-substrate.js.map +1 -1
  41. package/dist/git-shim-export.d.ts +18 -0
  42. package/dist/git-shim-export.d.ts.map +1 -0
  43. package/dist/git-shim-export.js +18 -0
  44. package/dist/git-shim-export.js.map +1 -0
  45. package/dist/hooks/payload-schemas.d.ts +2 -2
  46. package/dist/init.d.ts.map +1 -1
  47. package/dist/init.js +39 -32
  48. package/dist/init.js.map +1 -1
  49. package/dist/internal.d.ts +11 -3
  50. package/dist/internal.d.ts.map +1 -1
  51. package/dist/internal.js +14 -5
  52. package/dist/internal.js.map +1 -1
  53. package/dist/lafs-export.d.ts +18 -0
  54. package/dist/lafs-export.d.ts.map +1 -0
  55. package/dist/lafs-export.js +18 -0
  56. package/dist/lafs-export.js.map +1 -0
  57. package/dist/lifecycle/effective-stage.js +1 -1
  58. package/dist/lifecycle/index.js +1 -1
  59. package/dist/lifecycle/index.js.map +1 -1
  60. package/dist/lifecycle/rollup.js +1 -1
  61. package/dist/llm/credential-pool.d.ts +17 -0
  62. package/dist/llm/credential-pool.d.ts.map +1 -1
  63. package/dist/llm/credential-pool.js +40 -1
  64. package/dist/llm/credential-pool.js.map +1 -1
  65. package/dist/llm/plugin-facade.d.ts.map +1 -1
  66. package/dist/llm/plugin-facade.js +43392 -354
  67. package/dist/llm/plugin-facade.js.map +6 -1
  68. package/dist/llm/role-executor.d.ts +8 -0
  69. package/dist/llm/role-executor.d.ts.map +1 -1
  70. package/dist/llm/role-executor.js +96 -4
  71. package/dist/llm/role-executor.js.map +1 -1
  72. package/dist/llm/role-resolver.d.ts.map +1 -1
  73. package/dist/llm/role-resolver.js +56 -1
  74. package/dist/llm/role-resolver.js.map +1 -1
  75. package/dist/llm/transports/codex-oauth-headers.d.ts +51 -0
  76. package/dist/llm/transports/codex-oauth-headers.d.ts.map +1 -0
  77. package/dist/llm/transports/codex-oauth-headers.js +89 -0
  78. package/dist/llm/transports/codex-oauth-headers.js.map +1 -0
  79. package/dist/memory/claude-mem-migration.d.ts.map +1 -1
  80. package/dist/memory/claude-mem-migration.js +1 -3
  81. package/dist/memory/claude-mem-migration.js.map +1 -1
  82. package/dist/memory/decisions.d.ts.map +1 -1
  83. package/dist/memory/decisions.js +77 -23
  84. package/dist/memory/decisions.js.map +1 -1
  85. package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
  86. package/dist/memory/graph-memory-bridge.js +12 -6
  87. package/dist/memory/graph-memory-bridge.js.map +1 -1
  88. package/dist/memory/learnings.d.ts +2 -2
  89. package/dist/memory/nexus-plasticity.d.ts +21 -9
  90. package/dist/memory/nexus-plasticity.d.ts.map +1 -1
  91. package/dist/memory/nexus-plasticity.js +44 -22
  92. package/dist/memory/nexus-plasticity.js.map +1 -1
  93. package/dist/memory/patterns.d.ts +2 -2
  94. package/dist/memory/redaction.d.ts +19 -3
  95. package/dist/memory/redaction.d.ts.map +1 -1
  96. package/dist/memory/redaction.js +64 -129
  97. package/dist/memory/redaction.js.map +6 -1
  98. package/dist/metrics/token-service.d.ts +8 -2
  99. package/dist/metrics/token-service.d.ts.map +1 -1
  100. package/dist/metrics/token-service.js +1 -1
  101. package/dist/metrics/token-service.js.map +1 -1
  102. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  103. package/dist/nexus/analyze-orchestrator.js +6 -8
  104. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  105. package/dist/nexus/api-extractors/http-extractor.d.ts.map +1 -1
  106. package/dist/nexus/api-extractors/http-extractor.js +3 -3
  107. package/dist/nexus/api-extractors/http-extractor.js.map +1 -1
  108. package/dist/nexus/clusters.d.ts.map +1 -1
  109. package/dist/nexus/clusters.js +3 -2
  110. package/dist/nexus/clusters.js.map +1 -1
  111. package/dist/nexus/context.d.ts.map +1 -1
  112. package/dist/nexus/context.js +10 -16
  113. package/dist/nexus/context.js.map +1 -1
  114. package/dist/nexus/diff.d.ts.map +1 -1
  115. package/dist/nexus/diff.js +6 -4
  116. package/dist/nexus/diff.js.map +1 -1
  117. package/dist/nexus/export.d.ts.map +1 -1
  118. package/dist/nexus/export.js +7 -4
  119. package/dist/nexus/export.js.map +1 -1
  120. package/dist/nexus/flows.d.ts.map +1 -1
  121. package/dist/nexus/flows.js +3 -1
  122. package/dist/nexus/flows.js.map +1 -1
  123. package/dist/nexus/impact.d.ts +1 -1
  124. package/dist/nexus/impact.d.ts.map +1 -1
  125. package/dist/nexus/impact.js +31 -17
  126. package/dist/nexus/impact.js.map +1 -1
  127. package/dist/nexus/living-brain.d.ts.map +1 -1
  128. package/dist/nexus/living-brain.js +27 -15
  129. package/dist/nexus/living-brain.js.map +1 -1
  130. package/dist/nexus/nexus-bridge.d.ts.map +1 -1
  131. package/dist/nexus/nexus-bridge.js +28 -29
  132. package/dist/nexus/nexus-bridge.js.map +1 -1
  133. package/dist/nexus/plasticity-queries.d.ts +4 -2
  134. package/dist/nexus/plasticity-queries.d.ts.map +1 -1
  135. package/dist/nexus/plasticity-queries.js +27 -15
  136. package/dist/nexus/plasticity-queries.js.map +1 -1
  137. package/dist/nexus/query.d.ts.map +1 -1
  138. package/dist/nexus/query.js +6 -2
  139. package/dist/nexus/query.js.map +1 -1
  140. package/dist/nexus/registry.d.ts.map +1 -1
  141. package/dist/nexus/registry.js +65 -30
  142. package/dist/nexus/registry.js.map +1 -1
  143. package/dist/nexus/route-analysis.d.ts +3 -2
  144. package/dist/nexus/route-analysis.d.ts.map +1 -1
  145. package/dist/nexus/route-analysis.js +11 -10
  146. package/dist/nexus/route-analysis.js.map +1 -1
  147. package/dist/nexus/sigil.d.ts.map +1 -1
  148. package/dist/nexus/sigil.js +60 -13
  149. package/dist/nexus/sigil.js.map +1 -1
  150. package/dist/nexus/user-profile.d.ts +2 -1
  151. package/dist/nexus/user-profile.d.ts.map +1 -1
  152. package/dist/nexus/user-profile.js +8 -4
  153. package/dist/nexus/user-profile.js.map +1 -1
  154. package/dist/orchestrate/index.d.ts +1 -1
  155. package/dist/orchestrate/index.d.ts.map +1 -1
  156. package/dist/orchestrate/index.js +1 -1
  157. package/dist/orchestrate/index.js.map +1 -1
  158. package/dist/orchestrate/plan.d.ts +3 -3
  159. package/dist/orchestrate/plan.d.ts.map +1 -1
  160. package/dist/orchestrate/plan.js +7 -7
  161. package/dist/orchestrate/plan.js.map +1 -1
  162. package/dist/orchestrate/spawn-ops.js +2 -2
  163. package/dist/orchestrate/spawn-ops.js.map +1 -1
  164. package/dist/orchestration/classify.d.ts +2 -2
  165. package/dist/orchestration/classify.js +3 -3
  166. package/dist/orchestration/classify.js.map +1 -1
  167. package/dist/orchestration/validate-spawn.d.ts.map +1 -1
  168. package/dist/orchestration/validate-spawn.js +5 -5
  169. package/dist/orchestration/validate-spawn.js.map +1 -1
  170. package/dist/paths-export.d.ts +18 -0
  171. package/dist/paths-export.d.ts.map +1 -0
  172. package/dist/paths-export.js +18 -0
  173. package/dist/paths-export.js.map +1 -0
  174. package/dist/paths.d.ts.map +1 -1
  175. package/dist/paths.js +24 -11
  176. package/dist/paths.js.map +1 -1
  177. package/dist/playbooks/index.d.ts +1 -0
  178. package/dist/playbooks/index.d.ts.map +1 -1
  179. package/dist/playbooks/index.js +4 -0
  180. package/dist/playbooks/index.js.map +1 -1
  181. package/dist/playbooks/skill-node-executor.d.ts +155 -0
  182. package/dist/playbooks/skill-node-executor.d.ts.map +1 -0
  183. package/dist/playbooks/skill-node-executor.js +156 -0
  184. package/dist/playbooks/skill-node-executor.js.map +1 -0
  185. package/dist/repair.d.ts +3 -7
  186. package/dist/repair.d.ts.map +1 -1
  187. package/dist/repair.js +5 -43
  188. package/dist/repair.js.map +1 -1
  189. package/dist/sagas/migrate-containment.js +7 -7
  190. package/dist/sagas/migrate-containment.js.map +1 -1
  191. package/dist/scaffold/ensure-dirs.d.ts +8 -2
  192. package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
  193. package/dist/scaffold/ensure-dirs.js +24 -11
  194. package/dist/scaffold/ensure-dirs.js.map +1 -1
  195. package/dist/scaffold/project-detection.d.ts +5 -1
  196. package/dist/scaffold/project-detection.d.ts.map +1 -1
  197. package/dist/scaffold/project-detection.js +9 -5
  198. package/dist/scaffold/project-detection.js.map +1 -1
  199. package/dist/sentient/hygiene-scan.js +6 -6
  200. package/dist/sentient/hygiene-scan.js.map +1 -1
  201. package/dist/sentient/proposal-dedup.js +2 -2
  202. package/dist/sentient/proposal-rate-limiter.js +1 -1
  203. package/dist/sentient/propose-tick.js +5 -5
  204. package/dist/sentient/propose-tick.js.map +1 -1
  205. package/dist/sentient/stage-drift-tick.js +3 -3
  206. package/dist/sentient/stage-drift-tick.js.map +1 -1
  207. package/dist/sequence/index.d.ts.map +1 -1
  208. package/dist/sequence/index.js +6 -2
  209. package/dist/sequence/index.js.map +1 -1
  210. package/dist/sessions/briefing.d.ts.map +1 -1
  211. package/dist/sessions/briefing.js +18 -4
  212. package/dist/sessions/briefing.js.map +1 -1
  213. package/dist/setup/sections/verification.js +2 -2
  214. package/dist/setup/sections/verification.js.map +1 -1
  215. package/dist/shutdown.d.ts +91 -0
  216. package/dist/shutdown.d.ts.map +1 -0
  217. package/dist/shutdown.js +120 -0
  218. package/dist/shutdown.js.map +1 -0
  219. package/dist/skills/index.d.ts +2 -0
  220. package/dist/skills/index.d.ts.map +1 -1
  221. package/dist/skills/index.js +1 -0
  222. package/dist/skills/index.js.map +1 -1
  223. package/dist/skills/skill-executor-adapter.d.ts +136 -0
  224. package/dist/skills/skill-executor-adapter.d.ts.map +1 -0
  225. package/dist/skills/skill-executor-adapter.js +137 -0
  226. package/dist/skills/skill-executor-adapter.js.map +1 -0
  227. package/dist/skills/usage-recorder.d.ts.map +1 -1
  228. package/dist/skills/usage-recorder.js +30 -0
  229. package/dist/skills/usage-recorder.js.map +1 -1
  230. package/dist/skills-export.d.ts +23 -0
  231. package/dist/skills-export.d.ts.map +1 -0
  232. package/dist/skills-export.js +23 -0
  233. package/dist/skills-export.js.map +1 -0
  234. package/dist/stats/index.d.ts.map +1 -1
  235. package/dist/stats/index.js +8 -3
  236. package/dist/stats/index.js.map +1 -1
  237. package/dist/store/agent-doctor.d.ts +3 -3
  238. package/dist/store/agent-doctor.d.ts.map +1 -1
  239. package/dist/store/agent-doctor.js +18 -13
  240. package/dist/store/agent-doctor.js.map +1 -1
  241. package/dist/store/agent-install.d.ts +6 -5
  242. package/dist/store/agent-install.d.ts.map +1 -1
  243. package/dist/store/agent-install.js +20 -16
  244. package/dist/store/agent-install.js.map +1 -1
  245. package/dist/store/agent-registry-accessor.d.ts +66 -28
  246. package/dist/store/agent-registry-accessor.d.ts.map +1 -1
  247. package/dist/store/agent-registry-accessor.js +248 -167
  248. package/dist/store/agent-registry-accessor.js.map +1 -1
  249. package/dist/store/agent-registry-store.d.ts +242 -0
  250. package/dist/store/agent-registry-store.d.ts.map +1 -0
  251. package/dist/store/agent-registry-store.js +501 -0
  252. package/dist/store/agent-registry-store.js.map +1 -0
  253. package/dist/store/agent-resolver.d.ts +8 -8
  254. package/dist/store/agent-resolver.d.ts.map +1 -1
  255. package/dist/store/agent-resolver.js +19 -17
  256. package/dist/store/agent-resolver.js.map +1 -1
  257. package/dist/store/backup-pack.d.ts.map +1 -1
  258. package/dist/store/backup-pack.js +24 -8
  259. package/dist/store/backup-pack.js.map +1 -1
  260. package/dist/store/conduit-sqlite.d.ts +181 -74
  261. package/dist/store/conduit-sqlite.d.ts.map +1 -1
  262. package/dist/store/conduit-sqlite.js +307 -528
  263. package/dist/store/conduit-sqlite.js.map +1 -1
  264. package/dist/store/cross-db-cleanup.d.ts +5 -5
  265. package/dist/store/cross-db-cleanup.d.ts.map +1 -1
  266. package/dist/store/cross-db-cleanup.js +12 -10
  267. package/dist/store/cross-db-cleanup.js.map +1 -1
  268. package/dist/store/data-accessor.d.ts +4 -4
  269. package/dist/store/data-accessor.js +5 -5
  270. package/dist/store/data-accessor.js.map +1 -1
  271. package/dist/store/data-safety-central.d.ts +83 -1
  272. package/dist/store/data-safety-central.d.ts.map +1 -1
  273. package/dist/store/data-safety-central.js +257 -0
  274. package/dist/store/data-safety-central.js.map +1 -1
  275. package/dist/store/db-helpers.d.ts +8 -2
  276. package/dist/store/db-helpers.d.ts.map +1 -1
  277. package/dist/store/db-helpers.js +6 -2
  278. package/dist/store/db-helpers.js.map +1 -1
  279. package/dist/store/dual-scope-db.d.ts +46 -4
  280. package/dist/store/dual-scope-db.d.ts.map +1 -1
  281. package/dist/store/dual-scope-db.js +103 -9
  282. package/dist/store/dual-scope-db.js.map +1 -1
  283. package/dist/store/exodus/__fixtures__/representative-fixture.d.ts +116 -0
  284. package/dist/store/exodus/__fixtures__/representative-fixture.d.ts.map +1 -0
  285. package/dist/store/exodus/__fixtures__/representative-fixture.js +274 -0
  286. package/dist/store/exodus/__fixtures__/representative-fixture.js.map +1 -0
  287. package/dist/store/exodus/index.d.ts +3 -1
  288. package/dist/store/exodus/index.d.ts.map +1 -1
  289. package/dist/store/exodus/index.js +3 -1
  290. package/dist/store/exodus/index.js.map +1 -1
  291. package/dist/store/exodus/migrate.d.ts +120 -1
  292. package/dist/store/exodus/migrate.d.ts.map +1 -1
  293. package/dist/store/exodus/migrate.js +923 -119
  294. package/dist/store/exodus/migrate.js.map +1 -1
  295. package/dist/store/exodus/on-open.d.ts +189 -0
  296. package/dist/store/exodus/on-open.d.ts.map +1 -0
  297. package/dist/store/exodus/on-open.js +464 -0
  298. package/dist/store/exodus/on-open.js.map +1 -0
  299. package/dist/store/exodus/table-name-map.d.ts +173 -0
  300. package/dist/store/exodus/table-name-map.d.ts.map +1 -0
  301. package/dist/store/exodus/table-name-map.js +660 -0
  302. package/dist/store/exodus/table-name-map.js.map +1 -0
  303. package/dist/store/exodus/verify-migration.d.ts +72 -0
  304. package/dist/store/exodus/verify-migration.d.ts.map +1 -0
  305. package/dist/store/exodus/verify-migration.js +678 -0
  306. package/dist/store/exodus/verify-migration.js.map +1 -0
  307. package/dist/store/exodus/verify.d.ts +32 -8
  308. package/dist/store/exodus/verify.d.ts.map +1 -1
  309. package/dist/store/exodus/verify.js +48 -142
  310. package/dist/store/exodus/verify.js.map +1 -1
  311. package/dist/store/index.d.ts +2 -3
  312. package/dist/store/index.d.ts.map +1 -1
  313. package/dist/store/index.js +2 -3
  314. package/dist/store/index.js.map +1 -1
  315. package/dist/store/memory-accessor.d.ts +31 -0
  316. package/dist/store/memory-accessor.d.ts.map +1 -1
  317. package/dist/store/memory-accessor.js +38 -0
  318. package/dist/store/memory-accessor.js.map +1 -1
  319. package/dist/store/memory-sqlite.d.ts +86 -13
  320. package/dist/store/memory-sqlite.d.ts.map +1 -1
  321. package/dist/store/memory-sqlite.js +326 -528
  322. package/dist/store/memory-sqlite.js.map +1 -1
  323. package/dist/store/migrate-signaldock-to-conduit.d.ts +1 -1
  324. package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -1
  325. package/dist/store/migrate-signaldock-to-conduit.js +126 -35
  326. package/dist/store/migrate-signaldock-to-conduit.js.map +1 -1
  327. package/dist/store/migration-manager.d.ts +49 -0
  328. package/dist/store/migration-manager.d.ts.map +1 -1
  329. package/dist/store/migration-manager.js +167 -67
  330. package/dist/store/migration-manager.js.map +1 -1
  331. package/dist/store/migration-sqlite.d.ts +1 -1
  332. package/dist/store/migration-sqlite.d.ts.map +1 -1
  333. package/dist/store/migration-sqlite.js +32 -3
  334. package/dist/store/migration-sqlite.js.map +1 -1
  335. package/dist/store/nexus-sqlite.d.ts +152 -29
  336. package/dist/store/nexus-sqlite.d.ts.map +1 -1
  337. package/dist/store/nexus-sqlite.js +496 -177
  338. package/dist/store/nexus-sqlite.js.map +1 -1
  339. package/dist/store/nexus-validation-schemas.d.ts +32 -32
  340. package/dist/store/open-cleo-db.d.ts +37 -40
  341. package/dist/store/open-cleo-db.d.ts.map +1 -1
  342. package/dist/store/open-cleo-db.js +76 -153
  343. package/dist/store/open-cleo-db.js.map +1 -1
  344. package/dist/store/role-accessors-impl.d.ts +4 -4
  345. package/dist/store/role-accessors-impl.d.ts.map +1 -1
  346. package/dist/store/role-accessors-impl.js +18 -15
  347. package/dist/store/role-accessors-impl.js.map +1 -1
  348. package/dist/store/schema/{signaldock-schema.d.ts → agent-registry-schema.d.ts} +15 -5
  349. package/dist/store/schema/agent-registry-schema.d.ts.map +1 -0
  350. package/dist/store/schema/{signaldock-schema.js → agent-registry-schema.js} +15 -5
  351. package/dist/store/schema/agent-registry-schema.js.map +1 -0
  352. package/dist/store/schema/agent-schema.d.ts +1 -1
  353. package/dist/store/schema/agent-schema.js +4 -4
  354. package/dist/store/schema/agent-schema.js.map +1 -1
  355. package/dist/store/schema/attachments.d.ts +1 -1
  356. package/dist/store/schema/audit.d.ts +15 -5
  357. package/dist/store/schema/audit.d.ts.map +1 -1
  358. package/dist/store/schema/audit.js +12 -2
  359. package/dist/store/schema/audit.js.map +1 -1
  360. package/dist/store/schema/background-jobs.d.ts +1 -1
  361. package/dist/store/schema/cleo-global/{signaldock.d.ts → agent-registry.d.ts} +277 -271
  362. package/dist/store/schema/cleo-global/agent-registry.d.ts.map +1 -0
  363. package/dist/store/schema/cleo-global/{signaldock.js → agent-registry.js} +136 -125
  364. package/dist/store/schema/cleo-global/agent-registry.js.map +1 -0
  365. package/dist/store/schema/cleo-global/index.d.ts +29 -22
  366. package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
  367. package/dist/store/schema/cleo-global/index.js +29 -22
  368. package/dist/store/schema/cleo-global/index.js.map +1 -1
  369. package/dist/store/schema/cleo-global/nexus.d.ts +36 -1034
  370. package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
  371. package/dist/store/schema/cleo-global/nexus.js +32 -337
  372. package/dist/store/schema/cleo-global/nexus.js.map +1 -1
  373. package/dist/store/schema/cleo-global/skills.d.ts +16 -0
  374. package/dist/store/schema/cleo-global/skills.d.ts.map +1 -1
  375. package/dist/store/schema/cleo-global/skills.js +11 -0
  376. package/dist/store/schema/cleo-global/skills.js.map +1 -1
  377. package/dist/store/schema/{cleo-project → cleo-global}/telemetry.d.ts +33 -17
  378. package/dist/store/schema/cleo-global/telemetry.d.ts.map +1 -0
  379. package/dist/store/schema/{cleo-project → cleo-global}/telemetry.js +30 -18
  380. package/dist/store/schema/cleo-global/telemetry.js.map +1 -0
  381. package/dist/store/schema/cleo-project/audit.d.ts +8 -8
  382. package/dist/store/schema/cleo-project/audit.d.ts.map +1 -1
  383. package/dist/store/schema/cleo-project/audit.js +2 -6
  384. package/dist/store/schema/cleo-project/audit.js.map +1 -1
  385. package/dist/store/schema/cleo-project/docs.d.ts +1 -1
  386. package/dist/store/schema/cleo-project/index.d.ts +29 -12
  387. package/dist/store/schema/cleo-project/index.d.ts.map +1 -1
  388. package/dist/store/schema/cleo-project/index.js +29 -12
  389. package/dist/store/schema/cleo-project/index.js.map +1 -1
  390. package/dist/store/schema/cleo-project/lifecycle.d.ts +2 -2
  391. package/dist/store/schema/cleo-project/nexus-graph.d.ts +1067 -0
  392. package/dist/store/schema/cleo-project/nexus-graph.d.ts.map +1 -0
  393. package/dist/store/schema/cleo-project/nexus-graph.js +407 -0
  394. package/dist/store/schema/cleo-project/nexus-graph.js.map +1 -0
  395. package/dist/store/schema/cleo-project/provenance-orphans.d.ts +385 -0
  396. package/dist/store/schema/cleo-project/provenance-orphans.d.ts.map +1 -0
  397. package/dist/store/schema/cleo-project/provenance-orphans.js +142 -0
  398. package/dist/store/schema/cleo-project/provenance-orphans.js.map +1 -0
  399. package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
  400. package/dist/store/schema/cleo-project/runtime.d.ts +1 -1
  401. package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +1 -1
  402. package/dist/store/schema/cleo-project/tasks-core.d.ts +3 -3
  403. package/dist/store/schema/cleo-shared/brain.d.ts +711 -494
  404. package/dist/store/schema/cleo-shared/brain.d.ts.map +1 -1
  405. package/dist/store/schema/cleo-shared/brain.js +215 -134
  406. package/dist/store/schema/cleo-shared/brain.js.map +1 -1
  407. package/dist/store/schema/conduit-schema.d.ts +63 -51
  408. package/dist/store/schema/conduit-schema.d.ts.map +1 -1
  409. package/dist/store/schema/conduit-schema.js +23 -11
  410. package/dist/store/schema/conduit-schema.js.map +1 -1
  411. package/dist/store/schema/goal.d.ts +3 -2
  412. package/dist/store/schema/goal.d.ts.map +1 -1
  413. package/dist/store/schema/goal.js +3 -2
  414. package/dist/store/schema/goal.js.map +1 -1
  415. package/dist/store/schema/index.d.ts +1 -0
  416. package/dist/store/schema/index.d.ts.map +1 -1
  417. package/dist/store/schema/index.js +1 -0
  418. package/dist/store/schema/index.js.map +1 -1
  419. package/dist/store/schema/lifecycle.d.ts +2 -2
  420. package/dist/store/schema/memory-schema.d.ts +2 -2
  421. package/dist/store/schema/nexus-schema.d.ts +174 -115
  422. package/dist/store/schema/nexus-schema.d.ts.map +1 -1
  423. package/dist/store/schema/nexus-schema.js +175 -55
  424. package/dist/store/schema/nexus-schema.js.map +1 -1
  425. package/dist/store/schema/provenance/releases.d.ts +1 -1
  426. package/dist/store/schema/schema-utils.d.ts +78 -0
  427. package/dist/store/schema/schema-utils.d.ts.map +1 -0
  428. package/dist/store/schema/schema-utils.js +49 -0
  429. package/dist/store/schema/schema-utils.js.map +1 -0
  430. package/dist/store/schema/skills-schema.d.ts +81 -44
  431. package/dist/store/schema/skills-schema.d.ts.map +1 -1
  432. package/dist/store/schema/skills-schema.js +49 -16
  433. package/dist/store/schema/skills-schema.js.map +1 -1
  434. package/dist/store/schema/tasks.d.ts +3 -3
  435. package/dist/store/skills-db.d.ts +90 -50
  436. package/dist/store/skills-db.d.ts.map +1 -1
  437. package/dist/store/skills-db.js +132 -146
  438. package/dist/store/skills-db.js.map +1 -1
  439. package/dist/store/sqlite-backup.d.ts +2 -2
  440. package/dist/store/sqlite-backup.d.ts.map +1 -1
  441. package/dist/store/sqlite-backup.js +11 -10
  442. package/dist/store/sqlite-backup.js.map +1 -1
  443. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  444. package/dist/store/sqlite-data-accessor.js +25 -18
  445. package/dist/store/sqlite-data-accessor.js.map +1 -1
  446. package/dist/store/sqlite.d.ts +72 -12
  447. package/dist/store/sqlite.d.ts.map +1 -1
  448. package/dist/store/sqlite.js +153 -89
  449. package/dist/store/sqlite.js.map +1 -1
  450. package/dist/store/tasks-schema.d.ts +4 -0
  451. package/dist/store/tasks-schema.d.ts.map +1 -1
  452. package/dist/store/tasks-schema.js +60 -0
  453. package/dist/store/tasks-schema.js.map +1 -1
  454. package/dist/store/tasks-sqlite.d.ts +2 -2
  455. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  456. package/dist/store/tasks-sqlite.js +10 -5
  457. package/dist/store/tasks-sqlite.js.map +1 -1
  458. package/dist/store/umbrella-data-accessor.d.ts +17 -6
  459. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  460. package/dist/store/umbrella-data-accessor.js +8 -8
  461. package/dist/store/umbrella-data-accessor.js.map +1 -1
  462. package/dist/store/validation-schemas.d.ts +241 -208
  463. package/dist/store/validation-schemas.d.ts.map +1 -1
  464. package/dist/system/health.d.ts.map +1 -1
  465. package/dist/system/health.js +11 -6
  466. package/dist/system/health.js.map +1 -1
  467. package/dist/system/project-health.d.ts.map +1 -1
  468. package/dist/system/project-health.js +58 -12
  469. package/dist/system/project-health.js.map +1 -1
  470. package/dist/tasks/add.d.ts +8 -0
  471. package/dist/tasks/add.d.ts.map +1 -1
  472. package/dist/tasks/add.js +101 -0
  473. package/dist/tasks/add.js.map +1 -1
  474. package/dist/tasks/cancelled-child-waiver-audit.d.ts +47 -0
  475. package/dist/tasks/cancelled-child-waiver-audit.d.ts.map +1 -0
  476. package/dist/tasks/cancelled-child-waiver-audit.js +34 -0
  477. package/dist/tasks/cancelled-child-waiver-audit.js.map +1 -0
  478. package/dist/tasks/complete.d.ts +22 -2
  479. package/dist/tasks/complete.d.ts.map +1 -1
  480. package/dist/tasks/complete.js +71 -6
  481. package/dist/tasks/complete.js.map +1 -1
  482. package/dist/tasks/compute-task-view.js +1 -1
  483. package/dist/tasks/session-scope.d.ts +5 -0
  484. package/dist/tasks/session-scope.d.ts.map +1 -1
  485. package/dist/tasks/session-scope.js +4 -0
  486. package/dist/tasks/session-scope.js.map +1 -1
  487. package/dist/tools/guard.d.ts +71 -1
  488. package/dist/tools/guard.d.ts.map +1 -1
  489. package/dist/tools/guard.js +73 -1
  490. package/dist/tools/guard.js.map +1 -1
  491. package/dist/tools/index.d.ts +21 -0
  492. package/dist/tools/index.d.ts.map +1 -1
  493. package/dist/tools/index.js +25 -0
  494. package/dist/tools/index.js.map +1 -1
  495. package/dist/upgrade.d.ts.map +1 -1
  496. package/dist/upgrade.js +22 -13
  497. package/dist/upgrade.js.map +1 -1
  498. package/dist/workgraph/containment.js +18 -18
  499. package/dist/workgraph/relations.js +2 -2
  500. package/dist/worktree/list.d.ts +1 -1
  501. package/dist/worktree/list.d.ts.map +1 -1
  502. package/dist/worktree/list.js +19 -21
  503. package/dist/worktree/list.js.map +1 -1
  504. package/dist/worktree-export.d.ts +18 -0
  505. package/dist/worktree-export.d.ts.map +1 -0
  506. package/dist/worktree-export.js +18 -0
  507. package/dist/worktree-export.js.map +1 -0
  508. package/migrations/drizzle-agent-registry/20260412000000_initial-global-agent-registry/migration.sql +29 -0
  509. package/migrations/drizzle-brain/20260601000001_t11522-brain-task-observations/migration.sql +28 -0
  510. package/migrations/drizzle-brain/20260601000002_t11522-inline-only-brain-tables/migration.sql +75 -0
  511. package/migrations/drizzle-cleo-global/20260531000001_t11363-consolidation-cleo-global/migration.sql +49 -144
  512. package/migrations/drizzle-cleo-global/20260531000001_t11363-consolidation-cleo-global/snapshot.json +8 -8
  513. package/migrations/drizzle-cleo-global/20260531000002_t11546-brain-usage-log/migration.sql +16 -0
  514. package/migrations/drizzle-cleo-global/20260601000001_t11544-skills-usage-project-id/migration.sql +12 -0
  515. package/migrations/drizzle-cleo-global/20260602000001_t11622-agent-registry-rename/migration.sql +80 -0
  516. package/migrations/drizzle-cleo-project/20260531000001_t11363-consolidation-cleo-project/migration.sql +26 -167
  517. package/migrations/drizzle-cleo-project/20260531000001_t11363-consolidation-cleo-project/snapshot.json +8 -8
  518. package/migrations/drizzle-cleo-project/20260531000002_t11546-brain-usage-log/migration.sql +21 -0
  519. package/migrations/drizzle-cleo-project/20260601000001_t11549-agent-credentials-brain-release-links/migration.sql +49 -0
  520. package/migrations/drizzle-cleo-project/20260601000002_t11538-project-nexus-graph/migration.sql +140 -0
  521. package/migrations/drizzle-cleo-project/20260602000002_t11649-token-usage-transport-mcp/migration.sql +146 -0
  522. package/migrations/drizzle-conduit/20260601000003_t11523-conduit-inline-schema/migration.sql +82 -0
  523. package/migrations/drizzle-nexus/20260421200001_t1165-baseline-reset/migration.sql +26 -8
  524. package/migrations/drizzle-nexus/20260601000001_t11545-nexus-relation-weights-partition/migration.sql +97 -0
  525. package/package.json +45 -13
  526. package/scripts/install-supervisor-binary.mjs +50 -201
  527. package/scripts/napi-binary-picker.mjs +267 -0
  528. package/dist/agents/agent-registry.d.ts.map +0 -1
  529. package/dist/agents/agent-registry.js.map +0 -1
  530. package/dist/store/data-safety.d.ts +0 -92
  531. package/dist/store/data-safety.d.ts.map +0 -1
  532. package/dist/store/data-safety.js +0 -274
  533. package/dist/store/data-safety.js.map +0 -1
  534. package/dist/store/schema/cleo-global/signaldock.d.ts.map +0 -1
  535. package/dist/store/schema/cleo-global/signaldock.js.map +0 -1
  536. package/dist/store/schema/cleo-project/telemetry.d.ts.map +0 -1
  537. package/dist/store/schema/cleo-project/telemetry.js.map +0 -1
  538. package/dist/store/schema/signaldock-schema.d.ts.map +0 -1
  539. package/dist/store/schema/signaldock-schema.js.map +0 -1
  540. package/dist/store/signaldock-sqlite.d.ts +0 -173
  541. package/dist/store/signaldock-sqlite.d.ts.map +0 -1
  542. package/dist/store/signaldock-sqlite.js +0 -445
  543. package/dist/store/signaldock-sqlite.js.map +0 -1
  544. package/migrations/drizzle-nexus/20260318205558_initial/migration.sql +0 -46
  545. package/migrations/drizzle-nexus/20260412000001_t529-nexus-graph-tables/migration.sql +0 -49
  546. package/migrations/drizzle-nexus/20260415000001_t622-project-registry-paths/migration.sql +0 -12
  547. package/migrations/drizzle-nexus/20260419000001_t998-nexus-plasticity/migration.sql +0 -13
  548. package/migrations/drizzle-nexus/20260423052640_t1077-add-user-profile-table/migration.sql +0 -16
  549. package/migrations/drizzle-nexus/20260423052640_t1077-add-user-profile-table/snapshot.json +0 -1531
  550. package/migrations/drizzle-nexus/20260424140538_t1148-add-sigils-table/migration.sql +0 -13
  551. package/migrations/drizzle-nexus/20260424140538_t1148-add-sigils-table/snapshot.json +0 -1652
  552. package/migrations/drizzle-nexus/20260504000001_t1839-fts5-nexus-symbols/migration.sql +0 -68
  553. package/migrations/drizzle-nexus/20260507135519_t9163-nexus-is-external/migration.sql +0 -20
  554. package/migrations/drizzle-nexus/20260507135519_t9163-nexus-is-external/snapshot.json +0 -1652
  555. package/migrations/drizzle-nexus/20260526222449_t11025-project-id-aliases/migration.sql +0 -16
  556. package/migrations/drizzle-signaldock/20260412000000_initial-global-signaldock/migration.sql +0 -209
  557. package/migrations/drizzle-signaldock/20260412000000_initial-global-signaldock/snapshot.json +0 -2060
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Coordinated process-lifetime teardown for short-lived CLI invocations.
3
+ *
4
+ * ## Why this exists (T11568 — post-E6 process hang)
5
+ *
6
+ * The CLEO CLI's success path does NOT call `process.exit()` — it emits the
7
+ * LAFS envelope and returns, relying on the libuv event loop draining naturally
8
+ * so the process exits with code 0 (see `runMainWithLafsEnvelope` in
9
+ * `packages/cleo/src/cli/index.ts`). That contract only holds while every
10
+ * resource opened during the command is released by the time the handler
11
+ * resolves.
12
+ *
13
+ * Three process-lifetime singletons violate that contract because they own a
14
+ * `worker_threads.Worker` whose `MessagePort` keeps the event loop alive:
15
+ *
16
+ * 1. **The BRAIN single-writer worker** ({@link shutdownBrainWriter}). Every
17
+ * hot-path write to `brain.db` (`cleo memory observe`, decisions, the
18
+ * dialectic pipeline) is funneled through a `worker_threads.Worker`
19
+ * (T10351). The worker is created lazily on first write and registered for
20
+ * a `process.on('exit')` flush — but that exit handler can never fire
21
+ * because the worker's `MessagePort` is itself what keeps the loop alive,
22
+ * so a `cleo memory observe` printed its success envelope and then hung
23
+ * (rc:124) until the shell timed it out.
24
+ * 2. **The embedding queue worker** ({@link resetEmbeddingQueue}). The
25
+ * {@link EmbeddingQueue} singleton (T134/T137) lazily spawns a
26
+ * `worker_threads.Worker` to batch transformers.js embeddings off the main
27
+ * thread. Its live `MessagePort` keeps the loop alive exactly like the
28
+ * brain writer — and the opportunistic dream in `cleo briefing` could feed
29
+ * it (or, in the worker-unavailable fallback, run embeddings inline on the
30
+ * main thread), the residual hang/spin path tracked in T11655.
31
+ * 3. **The pino-roll log transport** ({@link closeLogger}). `pino.transport()`
32
+ * backs a worker thread too; its rotation timer + port keep the loop alive
33
+ * in the same way once `initLogger` has run.
34
+ *
35
+ * Installed builds where the worker file was not resolvable fell back to the
36
+ * inline executor (no worker) and exited cleanly — masking the defect until the
37
+ * E6 build shipped a resolvable `brain-writer-worker.js`.
38
+ *
39
+ * {@link shutdownCliRuntime} is the single chokepoint the CLI calls from its
40
+ * success-path `finally` (after the envelope has been written to stdout) so the
41
+ * loop can drain and the process exits rc:0. It is best-effort and idempotent:
42
+ * every teardown is wrapped so one failure cannot mask another, and calling it
43
+ * twice is a no-op for already-closed handles.
44
+ *
45
+ * This is NOT a `process.exit()` band-aid: the established CLI exit contract is
46
+ * "drain the loop, then exit". Forcing teardown of the long-lived handles
47
+ * restores that contract instead of papering over it. Mid-operation handles
48
+ * (shared dual-scope `cleo.db`) are released here too, honoring the L4/L5
49
+ * shared-handle rule that they close at PROCESS EXIT, not mid-operation.
50
+ *
51
+ * @module
52
+ * @task T11568
53
+ */
54
+ /**
55
+ * Tear down every process-lifetime resource that would otherwise keep the libuv
56
+ * event loop alive after a short-lived CLI command resolves.
57
+ *
58
+ * Call this from the CLI's success-path `finally`, AFTER the command's LAFS
59
+ * envelope has been emitted to stdout. The CLI does not `process.exit()` on
60
+ * success (ADR-039 / T9633), so without this the brain-writer worker thread
61
+ * (T10351) or the pino-roll transport worker can keep the process hanging at
62
+ * rc:124.
63
+ *
64
+ * Order:
65
+ * 1. {@link shutdownBrainWriter} — terminate the BRAIN single-writer worker
66
+ * thread (the `MessagePort` proven to hang `cleo memory observe`).
67
+ * 2. {@link resetEmbeddingQueue} — flush + terminate the embedding queue
68
+ * worker thread (T11655 — the second live `MessagePort` that can keep a
69
+ * one-shot CLI command alive after its envelope is emitted).
70
+ * 3. {@link closeAllDatabases} — close the dual-scope `cleo.db` + brain/nexus
71
+ * native handles (releases file locks; required on Windows).
72
+ * 4. {@link closeLogger} — flush + terminate the pino-roll transport worker.
73
+ *
74
+ * Every step is best-effort and idempotent — safe to call once per process at
75
+ * exit, and harmless if a given subsystem was never initialized.
76
+ *
77
+ * @returns A promise that resolves once all teardown steps have settled.
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * try {
82
+ * await runCommand(cmd, { rawArgs });
83
+ * } finally {
84
+ * await shutdownCliRuntime();
85
+ * }
86
+ * ```
87
+ *
88
+ * @task T11568
89
+ */
90
+ export declare function shutdownCliRuntime(): Promise<void>;
91
+ //# sourceMappingURL=shutdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAmBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBxD"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Coordinated process-lifetime teardown for short-lived CLI invocations.
3
+ *
4
+ * ## Why this exists (T11568 — post-E6 process hang)
5
+ *
6
+ * The CLEO CLI's success path does NOT call `process.exit()` — it emits the
7
+ * LAFS envelope and returns, relying on the libuv event loop draining naturally
8
+ * so the process exits with code 0 (see `runMainWithLafsEnvelope` in
9
+ * `packages/cleo/src/cli/index.ts`). That contract only holds while every
10
+ * resource opened during the command is released by the time the handler
11
+ * resolves.
12
+ *
13
+ * Three process-lifetime singletons violate that contract because they own a
14
+ * `worker_threads.Worker` whose `MessagePort` keeps the event loop alive:
15
+ *
16
+ * 1. **The BRAIN single-writer worker** ({@link shutdownBrainWriter}). Every
17
+ * hot-path write to `brain.db` (`cleo memory observe`, decisions, the
18
+ * dialectic pipeline) is funneled through a `worker_threads.Worker`
19
+ * (T10351). The worker is created lazily on first write and registered for
20
+ * a `process.on('exit')` flush — but that exit handler can never fire
21
+ * because the worker's `MessagePort` is itself what keeps the loop alive,
22
+ * so a `cleo memory observe` printed its success envelope and then hung
23
+ * (rc:124) until the shell timed it out.
24
+ * 2. **The embedding queue worker** ({@link resetEmbeddingQueue}). The
25
+ * {@link EmbeddingQueue} singleton (T134/T137) lazily spawns a
26
+ * `worker_threads.Worker` to batch transformers.js embeddings off the main
27
+ * thread. Its live `MessagePort` keeps the loop alive exactly like the
28
+ * brain writer — and the opportunistic dream in `cleo briefing` could feed
29
+ * it (or, in the worker-unavailable fallback, run embeddings inline on the
30
+ * main thread), the residual hang/spin path tracked in T11655.
31
+ * 3. **The pino-roll log transport** ({@link closeLogger}). `pino.transport()`
32
+ * backs a worker thread too; its rotation timer + port keep the loop alive
33
+ * in the same way once `initLogger` has run.
34
+ *
35
+ * Installed builds where the worker file was not resolvable fell back to the
36
+ * inline executor (no worker) and exited cleanly — masking the defect until the
37
+ * E6 build shipped a resolvable `brain-writer-worker.js`.
38
+ *
39
+ * {@link shutdownCliRuntime} is the single chokepoint the CLI calls from its
40
+ * success-path `finally` (after the envelope has been written to stdout) so the
41
+ * loop can drain and the process exits rc:0. It is best-effort and idempotent:
42
+ * every teardown is wrapped so one failure cannot mask another, and calling it
43
+ * twice is a no-op for already-closed handles.
44
+ *
45
+ * This is NOT a `process.exit()` band-aid: the established CLI exit contract is
46
+ * "drain the loop, then exit". Forcing teardown of the long-lived handles
47
+ * restores that contract instead of papering over it. Mid-operation handles
48
+ * (shared dual-scope `cleo.db`) are released here too, honoring the L4/L5
49
+ * shared-handle rule that they close at PROCESS EXIT, not mid-operation.
50
+ *
51
+ * @module
52
+ * @task T11568
53
+ */
54
+ import { closeLogger } from './logger.js';
55
+ import { shutdownBrainWriter } from './memory/brain-writer-thread.js';
56
+ import { resetEmbeddingQueue } from './memory/embedding-queue.js';
57
+ import { closeAllDatabases } from './store/sqlite.js';
58
+ /**
59
+ * Run a teardown step, swallowing any error so a single failure cannot abort
60
+ * the remaining teardown steps. Best-effort by design.
61
+ */
62
+ async function safely(step) {
63
+ try {
64
+ await step();
65
+ }
66
+ catch {
67
+ // Best-effort teardown — never let cleanup throw out of the CLI exit path.
68
+ }
69
+ }
70
+ /**
71
+ * Tear down every process-lifetime resource that would otherwise keep the libuv
72
+ * event loop alive after a short-lived CLI command resolves.
73
+ *
74
+ * Call this from the CLI's success-path `finally`, AFTER the command's LAFS
75
+ * envelope has been emitted to stdout. The CLI does not `process.exit()` on
76
+ * success (ADR-039 / T9633), so without this the brain-writer worker thread
77
+ * (T10351) or the pino-roll transport worker can keep the process hanging at
78
+ * rc:124.
79
+ *
80
+ * Order:
81
+ * 1. {@link shutdownBrainWriter} — terminate the BRAIN single-writer worker
82
+ * thread (the `MessagePort` proven to hang `cleo memory observe`).
83
+ * 2. {@link resetEmbeddingQueue} — flush + terminate the embedding queue
84
+ * worker thread (T11655 — the second live `MessagePort` that can keep a
85
+ * one-shot CLI command alive after its envelope is emitted).
86
+ * 3. {@link closeAllDatabases} — close the dual-scope `cleo.db` + brain/nexus
87
+ * native handles (releases file locks; required on Windows).
88
+ * 4. {@link closeLogger} — flush + terminate the pino-roll transport worker.
89
+ *
90
+ * Every step is best-effort and idempotent — safe to call once per process at
91
+ * exit, and harmless if a given subsystem was never initialized.
92
+ *
93
+ * @returns A promise that resolves once all teardown steps have settled.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * try {
98
+ * await runCommand(cmd, { rawArgs });
99
+ * } finally {
100
+ * await shutdownCliRuntime();
101
+ * }
102
+ * ```
103
+ *
104
+ * @task T11568
105
+ */
106
+ export async function shutdownCliRuntime() {
107
+ // 1. BRAIN single-writer worker thread — the live MessagePort that hangs
108
+ // `cleo memory observe` / `cleo docs add` / any brain.db write path.
109
+ await safely(() => shutdownBrainWriter());
110
+ // 2. Embedding queue worker thread (T11655) — the second live MessagePort.
111
+ // Flushes in-flight batches then terminates the worker, so an opportunistic
112
+ // embed enqueued during the command cannot keep the loop alive at exit.
113
+ await safely(() => resetEmbeddingQueue());
114
+ // 3. Close DB singletons (dual-scope cleo.db + brain/nexus native handles).
115
+ // Releases SQLite file handles — required before tmpdir cleanup on Windows.
116
+ await safely(() => closeAllDatabases());
117
+ // 4. Flush + terminate the pino-roll transport worker thread.
118
+ await safely(() => closeLogger());
119
+ }
120
+ //# sourceMappingURL=shutdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;GAGG;AACH,KAAK,UAAU,MAAM,CAAC,IAAgC;IACpD,IAAI,CAAC;QACH,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,yEAAyE;IACzE,wEAAwE;IACxE,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAE1C,2EAA2E;IAC3E,+EAA+E;IAC/E,2EAA2E;IAC3E,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAE1C,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAExC,8DAA8D;IAC9D,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACpC,CAAC"}
@@ -45,6 +45,8 @@ export { analyzeDependencies, generateHitlSummary, getContextState, getNextTask,
45
45
  export { validateManifestIntegrity, validateOrchestratorCompliance, validateSubagentOutput, verifyCompliance, } from './orchestrator/validator.js';
46
46
  export type { CommandRunner, ProposeCanonicalPatchArgs, ProposeCanonicalPatchDryRun, ProposeCanonicalPatchErrorCode, ProposeCanonicalPatchFailure, ProposeCanonicalPatchOk, ProposeCanonicalPatchResult, } from './propose-patch.js';
47
47
  export { proposeCanonicalPatch } from './propose-patch.js';
48
+ export type { SkillExecutorAdapterOptions, SkillRunner, } from './skill-executor-adapter.js';
49
+ export { defaultSkillRunner, SkillExecutorAdapter } from './skill-executor-adapter.js';
48
50
  export type { SkillSearchPath as MultiSourceSkillSearchPath, SkillSourceMode, SkillSourceType, } from './skill-paths.js';
49
51
  export { getSkillSearchPaths as getMultiSourceSkillPaths, getSkillSourceType, resolveProtocolPath, resolveSharedPath, resolveSkillPath, } from './skill-paths.js';
50
52
  export type { IsCanonicalOptions, SkillSourceType as SkillRootSourceType } from './skill-root.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ export { buildPrompt, canParallelize, spawn, spawnBatch } from './orchestrator/s
41
41
  export { analyzeDependencies, generateHitlSummary, getContextState, getNextTask, getReadyTasks, getThresholds, sessionInit, shouldPause, } from './orchestrator/startup.js';
42
42
  export { validateManifestIntegrity, validateOrchestratorCompliance, validateSubagentOutput, verifyCompliance, } from './orchestrator/validator.js';
43
43
  export { proposeCanonicalPatch } from './propose-patch.js';
44
+ export { defaultSkillRunner, SkillExecutorAdapter } from './skill-executor-adapter.js';
44
45
  // Skill paths (multi-source resolver)
45
46
  export { getSkillSearchPaths as getMultiSourceSkillPaths, getSkillSourceType, resolveProtocolPath, resolveSharedPath, resolveSkillPath, } from './skill-paths.js';
46
47
  export { AGENTS_SKILLS_BRIDGE_PATH, CLAUDE_SKILLS_AGENTS_SHARED_PATH, is_canonical, resolveSkillsRoot, } from './skill-root.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * `SkillExecutorAdapter` — concrete in-process implementation of the
3
+ * Dependency-Inversion seam declared in
4
+ * `@cleocode/contracts/tools/skill-executor` ({@link SkillExecutor}).
5
+ *
6
+ * ## What it does (T11477 acceptance)
7
+ *
8
+ * - **AC1** — resolves a `ct-*` skill by id (via {@link findSkill}, the existing
9
+ * in-process discovery mechanism) and runs it over the injected
10
+ * {@link GuardedToolSurface}, returning a `{ status, output, error }` envelope.
11
+ * - **AC4** — the skill→tool joint is **in-process**: the adapter loads the skill
12
+ * definition and exercises the guarded primitives directly. There is NO
13
+ * process boundary between resolving the skill and touching the tools — the
14
+ * subprocess-spawn path (`orchestrateSpawnExecute`) is reserved for isolation
15
+ * nodes and is wired separately (see {@link createSkillNodeExecutor}).
16
+ *
17
+ * ## Why a DIP adapter (not a direct import)
18
+ *
19
+ * The skill dispatcher (`CoreAgentDispatcher`, a high-level orchestration
20
+ * concern) depends on the abstract {@link SkillExecutor} interface, NOT on this
21
+ * concrete class. This adapter is INJECTED as
22
+ * `CoreAgentDispatcherOptions.executor` so the dispatch policy and the execution
23
+ * mechanism both depend on the contract, not on each other — the classic
24
+ * Dependency-Inversion move (T11476 charter).
25
+ *
26
+ * ## Execution model + extension point
27
+ *
28
+ * `SkillExecutorAdapter.execute()` resolves the skill, validates it exists, and
29
+ * runs the supplied {@link SkillRunner} over the guarded tool surface. The
30
+ * default runner ({@link defaultSkillRunner}) loads the skill content
31
+ * in-process and records resolution metadata — a deterministic, side-effect-free
32
+ * baseline that wires the seam end-to-end without booting an LLM/GenKit flow.
33
+ * The actual model-driven execution (GenKit phase, P1) plugs in here by passing
34
+ * a richer {@link SkillRunner} — the seam, routing, and tool injection are all
35
+ * already in place.
36
+ *
37
+ * @epic T11391
38
+ * @task T11477
39
+ * @saga T11387
40
+ * @see ./skill-executor-adapter.ts — this file
41
+ * @see @cleocode/contracts/tools/skill-executor — the DIP abstraction
42
+ */
43
+ import type { SkillExecuteInput, SkillExecuteResult, SkillExecutor } from '@cleocode/contracts/tools/skill-executor';
44
+ import type { Skill } from './types.js';
45
+ /**
46
+ * Pluggable strategy that performs the actual in-process work for a resolved
47
+ * skill over the guarded tool surface.
48
+ *
49
+ * The {@link SkillExecutorAdapter} owns resolution + the success/failure
50
+ * envelope; the runner owns "what running this skill means". This keeps the
51
+ * adapter open for extension (a future GenKit/LLM runner) and closed for
52
+ * modification (the DIP seam, routing, and tool injection never change) —
53
+ * Open/Closed Principle.
54
+ *
55
+ * @param skill - The resolved skill definition (frontmatter + content).
56
+ * @param input - The original execution envelope (skill id, context, tools).
57
+ * @returns The terminal {@link SkillExecuteResult} for this execution.
58
+ */
59
+ export type SkillRunner = (skill: Skill, input: SkillExecuteInput) => Promise<SkillExecuteResult>;
60
+ /**
61
+ * Default in-process skill runner.
62
+ *
63
+ * Loads the resolved skill in-process and returns a success envelope carrying
64
+ * resolution metadata (skill id, directory, frontmatter name/protocol). It is
65
+ * deterministic and performs no model inference — the baseline execution path
66
+ * that proves the skill→tool joint is in-process and lets callers (tests,
67
+ * dry-run playbook traversals) assert against a stable shape.
68
+ *
69
+ * It is the documented EXTENSION POINT: a model-driven runner (GenKit phase)
70
+ * sequences the atomic tool primitives via `input.tools` and returns its own
71
+ * `output` — without changing the adapter, the DIP seam, or the dispatcher
72
+ * wiring.
73
+ *
74
+ * @param skill - The resolved skill definition.
75
+ * @param input - The original execution envelope.
76
+ * @returns A success envelope with resolution metadata in `output`.
77
+ */
78
+ export declare const defaultSkillRunner: SkillRunner;
79
+ /**
80
+ * Options accepted by {@link SkillExecutorAdapter}.
81
+ *
82
+ * @task T11477
83
+ */
84
+ export interface SkillExecutorAdapterOptions {
85
+ /**
86
+ * Working directory used to resolve the skill search paths (project-custom,
87
+ * agent-skills, marketplace). Defaults to the process cwd via {@link findSkill}.
88
+ */
89
+ readonly cwd?: string;
90
+ /**
91
+ * Strategy that performs the actual in-process execution of a resolved skill.
92
+ * Defaults to {@link defaultSkillRunner}. The GenKit-phase model runner is
93
+ * supplied here without touching the adapter or the DIP seam.
94
+ */
95
+ readonly runner?: SkillRunner;
96
+ }
97
+ /**
98
+ * Concrete in-process implementation of the {@link SkillExecutor} DIP seam.
99
+ *
100
+ * Resolves a `ct-*` skill by id and runs it over the injected
101
+ * {@link GuardedToolSurface} — no subprocess, no process boundary (AC4). The
102
+ * dispatcher depends on the {@link SkillExecutor} abstraction and receives this
103
+ * adapter by injection (AC2).
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * const adapter = new SkillExecutorAdapter({ cwd: projectRoot });
108
+ * const tools = createToolGuard({ allowedRoots: [projectRoot] });
109
+ * const result = await adapter.execute({ skillId: 'ct-validator', context: {}, tools });
110
+ * // result.status === 'success' when the skill resolves in-process
111
+ * ```
112
+ *
113
+ * @task T11477
114
+ */
115
+ export declare class SkillExecutorAdapter implements SkillExecutor {
116
+ private readonly cwd;
117
+ private readonly runner;
118
+ /**
119
+ * @param opts - Resolution cwd and an optional in-process runner strategy.
120
+ */
121
+ constructor(opts?: SkillExecutorAdapterOptions);
122
+ /**
123
+ * Resolve `input.skillId` to a `ct-*` skill and run it in-process over the
124
+ * injected guarded tool surface.
125
+ *
126
+ * Returns `status: 'failure'` (never throws) when the skill cannot be
127
+ * resolved or the runner rejects — mirroring the playbook runtime's
128
+ * non-throwing dispatch contract so retry / escalation semantics stay intact.
129
+ *
130
+ * @param input - Skill identity, accumulated context, and the guarded tool
131
+ * surface the skill is permitted to use.
132
+ * @returns The terminal {@link SkillExecuteResult}.
133
+ */
134
+ execute(input: SkillExecuteInput): Promise<SkillExecuteResult>;
135
+ }
136
+ //# sourceMappingURL=skill-executor-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-executor-adapter.d.ts","sourceRoot":"","sources":["../../src/skills/skill-executor-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAEV,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACd,MAAM,0CAA0C,CAAC;AAGlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIxC;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAElG;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAgBhC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC;;OAEG;gBACS,IAAI,GAAE,2BAAgC;IAKlD;;;;;;;;;;;OAWG;IACU,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAgB5E"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * `SkillExecutorAdapter` — concrete in-process implementation of the
3
+ * Dependency-Inversion seam declared in
4
+ * `@cleocode/contracts/tools/skill-executor` ({@link SkillExecutor}).
5
+ *
6
+ * ## What it does (T11477 acceptance)
7
+ *
8
+ * - **AC1** — resolves a `ct-*` skill by id (via {@link findSkill}, the existing
9
+ * in-process discovery mechanism) and runs it over the injected
10
+ * {@link GuardedToolSurface}, returning a `{ status, output, error }` envelope.
11
+ * - **AC4** — the skill→tool joint is **in-process**: the adapter loads the skill
12
+ * definition and exercises the guarded primitives directly. There is NO
13
+ * process boundary between resolving the skill and touching the tools — the
14
+ * subprocess-spawn path (`orchestrateSpawnExecute`) is reserved for isolation
15
+ * nodes and is wired separately (see {@link createSkillNodeExecutor}).
16
+ *
17
+ * ## Why a DIP adapter (not a direct import)
18
+ *
19
+ * The skill dispatcher (`CoreAgentDispatcher`, a high-level orchestration
20
+ * concern) depends on the abstract {@link SkillExecutor} interface, NOT on this
21
+ * concrete class. This adapter is INJECTED as
22
+ * `CoreAgentDispatcherOptions.executor` so the dispatch policy and the execution
23
+ * mechanism both depend on the contract, not on each other — the classic
24
+ * Dependency-Inversion move (T11476 charter).
25
+ *
26
+ * ## Execution model + extension point
27
+ *
28
+ * `SkillExecutorAdapter.execute()` resolves the skill, validates it exists, and
29
+ * runs the supplied {@link SkillRunner} over the guarded tool surface. The
30
+ * default runner ({@link defaultSkillRunner}) loads the skill content
31
+ * in-process and records resolution metadata — a deterministic, side-effect-free
32
+ * baseline that wires the seam end-to-end without booting an LLM/GenKit flow.
33
+ * The actual model-driven execution (GenKit phase, P1) plugs in here by passing
34
+ * a richer {@link SkillRunner} — the seam, routing, and tool injection are all
35
+ * already in place.
36
+ *
37
+ * @epic T11391
38
+ * @task T11477
39
+ * @saga T11387
40
+ * @see ./skill-executor-adapter.ts — this file
41
+ * @see @cleocode/contracts/tools/skill-executor — the DIP abstraction
42
+ */
43
+ import { getLogger } from '../logger.js';
44
+ import { findSkill } from './discovery.js';
45
+ const log = getLogger('skill-executor-adapter');
46
+ /**
47
+ * Default in-process skill runner.
48
+ *
49
+ * Loads the resolved skill in-process and returns a success envelope carrying
50
+ * resolution metadata (skill id, directory, frontmatter name/protocol). It is
51
+ * deterministic and performs no model inference — the baseline execution path
52
+ * that proves the skill→tool joint is in-process and lets callers (tests,
53
+ * dry-run playbook traversals) assert against a stable shape.
54
+ *
55
+ * It is the documented EXTENSION POINT: a model-driven runner (GenKit phase)
56
+ * sequences the atomic tool primitives via `input.tools` and returns its own
57
+ * `output` — without changing the adapter, the DIP seam, or the dispatcher
58
+ * wiring.
59
+ *
60
+ * @param skill - The resolved skill definition.
61
+ * @param input - The original execution envelope.
62
+ * @returns A success envelope with resolution metadata in `output`.
63
+ */
64
+ export const defaultSkillRunner = async (skill, input) => {
65
+ // The guarded tool surface is in-process and ready; the baseline runner does
66
+ // not perform side effects, but the binding is asserted so the seam is real.
67
+ const _tools = input.tools;
68
+ void _tools;
69
+ return {
70
+ status: 'success',
71
+ output: {
72
+ skillId: input.skillId,
73
+ resolved: true,
74
+ dirName: skill.dirName,
75
+ skillName: skill.frontmatter.name,
76
+ ...(skill.frontmatter.protocol !== undefined ? { protocol: skill.frontmatter.protocol } : {}),
77
+ },
78
+ };
79
+ };
80
+ /**
81
+ * Concrete in-process implementation of the {@link SkillExecutor} DIP seam.
82
+ *
83
+ * Resolves a `ct-*` skill by id and runs it over the injected
84
+ * {@link GuardedToolSurface} — no subprocess, no process boundary (AC4). The
85
+ * dispatcher depends on the {@link SkillExecutor} abstraction and receives this
86
+ * adapter by injection (AC2).
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * const adapter = new SkillExecutorAdapter({ cwd: projectRoot });
91
+ * const tools = createToolGuard({ allowedRoots: [projectRoot] });
92
+ * const result = await adapter.execute({ skillId: 'ct-validator', context: {}, tools });
93
+ * // result.status === 'success' when the skill resolves in-process
94
+ * ```
95
+ *
96
+ * @task T11477
97
+ */
98
+ export class SkillExecutorAdapter {
99
+ cwd;
100
+ runner;
101
+ /**
102
+ * @param opts - Resolution cwd and an optional in-process runner strategy.
103
+ */
104
+ constructor(opts = {}) {
105
+ this.cwd = opts.cwd;
106
+ this.runner = opts.runner ?? defaultSkillRunner;
107
+ }
108
+ /**
109
+ * Resolve `input.skillId` to a `ct-*` skill and run it in-process over the
110
+ * injected guarded tool surface.
111
+ *
112
+ * Returns `status: 'failure'` (never throws) when the skill cannot be
113
+ * resolved or the runner rejects — mirroring the playbook runtime's
114
+ * non-throwing dispatch contract so retry / escalation semantics stay intact.
115
+ *
116
+ * @param input - Skill identity, accumulated context, and the guarded tool
117
+ * surface the skill is permitted to use.
118
+ * @returns The terminal {@link SkillExecuteResult}.
119
+ */
120
+ async execute(input) {
121
+ const skill = findSkill(input.skillId, this.cwd);
122
+ if (skill === null) {
123
+ const error = `skill "${input.skillId}" not found in any skill search path`;
124
+ log.warn({ skillId: input.skillId }, error);
125
+ return { status: 'failure', output: {}, error };
126
+ }
127
+ try {
128
+ return await this.runner(skill, input);
129
+ }
130
+ catch (err) {
131
+ const error = err instanceof Error ? err.message : String(err);
132
+ log.warn({ skillId: input.skillId, error }, 'skill runner threw');
133
+ return { status: 'failure', output: {}, error };
134
+ }
135
+ }
136
+ }
137
+ //# sourceMappingURL=skill-executor-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-executor-adapter.js","sourceRoot":"","sources":["../../src/skills/skill-executor-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAQH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,GAAG,GAAG,SAAS,CAAC,wBAAwB,CAAC,CAAC;AAkBhD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IACpE,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,MAAM,GAAuB,KAAK,CAAC,KAAK,CAAC;IAC/C,KAAK,MAAM,CAAC;IAEZ,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE;YACN,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;YACjC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9F;KACF,CAAC;AACJ,CAAC,CAAC;AAqBF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,oBAAoB;IACd,GAAG,CAAqB;IACxB,MAAM,CAAc;IAErC;;OAEG;IACH,YAAY,OAAoC,EAAE;QAChD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,OAAO,CAAC,KAAwB;QAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,UAAU,KAAK,CAAC,OAAO,sCAAsC,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QAClD,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,oBAAoB,CAAC,CAAC;YAClE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"usage-recorder.d.ts","sourceRoot":"","sources":["../../src/skills/usage-recorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;CAChF;AASD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAErE;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAEvD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAqBN"}
1
+ {"version":3,"file":"usage-recorder.d.ts","sourceRoot":"","sources":["../../src/skills/usage-recorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAgCH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;CAChF;AASD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAErE;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAEvD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAwBN"}
@@ -17,7 +17,34 @@
17
17
  * @saga T9560
18
18
  * @architecture docs/architecture/SG-CLEO-SKILLS-architecture-v3.md §5
19
19
  */
20
+ import { resolveProjectByCwd } from '@cleocode/paths';
20
21
  import { enqueueSkillUsage } from '../store/skills-usage-queue.js';
22
+ /**
23
+ * Best-effort resolution of the active project's canonical ID from `cwd`.
24
+ *
25
+ * Stamped onto every usage row (`project_id`) so cross-project skill-usage
26
+ * analytics can attribute usage to the project the skill was loaded under
27
+ * (T11544). Returns `null` whenever there is no resolvable CLEO project
28
+ * (global usage outside any repo, corrupt `project-info.json`, etc.) — the
29
+ * column is nullable by design, and telemetry MUST NOT throw on the hot path.
30
+ *
31
+ * The paths-package resolver is itself non-throwing (returns `null`), but the
32
+ * `try/catch` guards against any unexpected fs/parse error so the recorder
33
+ * contract (never break skill loading) holds unconditionally.
34
+ *
35
+ * @returns The canonical projectId, or `null` when no project context exists.
36
+ *
37
+ * @task T11544
38
+ */
39
+ function resolveActiveProjectId() {
40
+ try {
41
+ return resolveProjectByCwd()?.projectId ?? null;
42
+ }
43
+ catch {
44
+ /* swallowed — telemetry MUST NOT block skill loading (architecture v3 §5) */
45
+ return null;
46
+ }
47
+ }
21
48
  /**
22
49
  * Internal flag — set to `true` in tests via {@link __setSkillUsageRecorderEnabled}
23
50
  * so unit tests can verify the recorder fires without depending on global
@@ -76,6 +103,9 @@ export function recordSkillUsage(name, action, context) {
76
103
  skillName: name,
77
104
  eventKind: action,
78
105
  taskId: context?.taskId ?? null,
106
+ // T11544: attribute the usage event to the active project (null when
107
+ // running outside any resolvable CLEO project — global usage stays valid).
108
+ projectId: resolveActiveProjectId(),
79
109
  modelId: context?.modelId ?? null,
80
110
  metadata: JSON.stringify(metadataObj),
81
111
  };
@@ -1 +1 @@
1
- {"version":3,"file":"usage-recorder.js","sourceRoot":"","sources":["../../src/skills/usage-recorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAiCnE;;;;GAIG;AACH,IAAI,QAAQ,GAAG,IAAI,CAAC;AAEpB;;;;;;;;;GASG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,QAAQ,GAAG,OAAO,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,MAAwB,EACxB,OAA2B;IAE3B,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,WAAW,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAqB;QAC5B,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,MAAM;QACjB,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI;QAC/B,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;QACjC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KACtC,CAAC;IAEF,oEAAoE;IACpE,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,CAAC;QACH,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,6EAA6E;IAC/E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"usage-recorder.js","sourceRoot":"","sources":["../../src/skills/usage-recorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,sBAAsB;IAC7B,IAAI,CAAC;QACH,OAAO,mBAAmB,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,6EAA6E;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAiCD;;;;GAIG;AACH,IAAI,QAAQ,GAAG,IAAI,CAAC;AAEpB;;;;;;;;;GASG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,QAAQ,GAAG,OAAO,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,MAAwB,EACxB,OAA2B;IAE3B,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,WAAW,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAqB;QAC5B,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,MAAM;QACjB,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI;QAC/B,qEAAqE;QACrE,2EAA2E;QAC3E,SAAS,EAAE,sBAAsB,EAAE;QACnC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;QACjC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KACtC,CAAC;IAEF,oEAAoE;IACpE,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,CAAC;QACH,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,6EAA6E;IAC/E,CAAC;AACH,CAAC"}