@cleocode/core 2026.6.12 → 2026.6.14

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 (730) hide show
  1. package/dist/admin/ops.d.ts +4 -0
  2. package/dist/admin/ops.d.ts.map +1 -1
  3. package/dist/check/index.d.ts +12 -0
  4. package/dist/check/index.d.ts.map +1 -0
  5. package/dist/check/index.js +12 -0
  6. package/dist/check/index.js.map +1 -0
  7. package/dist/check/pr-gate.d.ts +179 -0
  8. package/dist/check/pr-gate.d.ts.map +1 -0
  9. package/dist/check/pr-gate.js +366 -0
  10. package/dist/check/pr-gate.js.map +1 -0
  11. package/dist/conduit/delivery-router.d.ts +134 -0
  12. package/dist/conduit/delivery-router.d.ts.map +1 -0
  13. package/dist/conduit/delivery-router.js +0 -0
  14. package/dist/conduit/delivery-router.js.map +1 -0
  15. package/dist/conduit/index.d.ts +5 -2
  16. package/dist/conduit/index.d.ts.map +1 -1
  17. package/dist/conduit/index.js +5 -2
  18. package/dist/conduit/index.js.map +1 -1
  19. package/dist/conduit/local-transport.d.ts +12 -0
  20. package/dist/conduit/local-transport.d.ts.map +1 -1
  21. package/dist/conduit/local-transport.js +53 -23
  22. package/dist/conduit/local-transport.js.map +1 -1
  23. package/dist/conduit/local-tui-adapter.d.ts +89 -0
  24. package/dist/conduit/local-tui-adapter.d.ts.map +1 -0
  25. package/dist/conduit/local-tui-adapter.js +225 -0
  26. package/dist/conduit/local-tui-adapter.js.map +1 -0
  27. package/dist/config/registry.d.ts +54 -0
  28. package/dist/config/registry.d.ts.map +1 -1
  29. package/dist/config/registry.js +94 -2
  30. package/dist/config/registry.js.map +1 -1
  31. package/dist/crypto/credentials.d.ts +37 -0
  32. package/dist/crypto/credentials.d.ts.map +1 -1
  33. package/dist/crypto/credentials.js +110 -0
  34. package/dist/crypto/credentials.js.map +1 -1
  35. package/dist/deriver/queue-manager.d.ts +30 -2
  36. package/dist/deriver/queue-manager.d.ts.map +1 -1
  37. package/dist/deriver/queue-manager.js +54 -9
  38. package/dist/deriver/queue-manager.js.map +1 -1
  39. package/dist/dispatch/config-domain-handler.d.ts +125 -0
  40. package/dist/dispatch/config-domain-handler.d.ts.map +1 -0
  41. package/dist/dispatch/config-domain-handler.js +160 -0
  42. package/dist/dispatch/config-domain-handler.js.map +1 -0
  43. package/dist/dispatch/contracts/derive-output-contract.d.ts +86 -0
  44. package/dist/dispatch/contracts/derive-output-contract.d.ts.map +1 -0
  45. package/dist/dispatch/contracts/derive-output-contract.js +347 -0
  46. package/dist/dispatch/contracts/derive-output-contract.js.map +1 -0
  47. package/dist/dispatch/contracts/ensures-schema.d.ts +77 -0
  48. package/dist/dispatch/contracts/ensures-schema.d.ts.map +1 -0
  49. package/dist/dispatch/contracts/ensures-schema.js +91 -0
  50. package/dist/dispatch/contracts/ensures-schema.js.map +1 -0
  51. package/dist/dispatch/contracts/input-contracts.d.ts.map +1 -1
  52. package/dist/dispatch/contracts/input-contracts.js +19 -1
  53. package/dist/dispatch/contracts/input-contracts.js.map +1 -1
  54. package/dist/dispatch/contracts/output-contracts.d.ts +27 -5
  55. package/dist/dispatch/contracts/output-contracts.d.ts.map +1 -1
  56. package/dist/dispatch/contracts/output-contracts.js +29 -6
  57. package/dist/dispatch/contracts/output-contracts.js.map +1 -1
  58. package/dist/docs/export-document.js +5413 -1345
  59. package/dist/docs/export-document.js.map +3 -3
  60. package/dist/gateway-client/client.d.ts +123 -0
  61. package/dist/gateway-client/client.d.ts.map +1 -0
  62. package/dist/gateway-client/client.js +93 -0
  63. package/dist/gateway-client/client.js.map +1 -0
  64. package/dist/gateway-client/generated/client/client.gen.d.ts +3 -0
  65. package/dist/gateway-client/generated/client/client.gen.d.ts.map +1 -0
  66. package/dist/gateway-client/generated/client/client.gen.js +217 -0
  67. package/dist/gateway-client/generated/client/client.gen.js.map +1 -0
  68. package/dist/gateway-client/generated/client/index.d.ts +11 -0
  69. package/dist/gateway-client/generated/client/index.d.ts.map +1 -0
  70. package/dist/gateway-client/generated/client/index.js +7 -0
  71. package/dist/gateway-client/generated/client/index.js.map +1 -0
  72. package/dist/gateway-client/generated/client/types.gen.d.ts +121 -0
  73. package/dist/gateway-client/generated/client/types.gen.d.ts.map +1 -0
  74. package/dist/gateway-client/generated/client/types.gen.js +3 -0
  75. package/dist/gateway-client/generated/client/types.gen.js.map +1 -0
  76. package/dist/gateway-client/generated/client/utils.gen.d.ts +38 -0
  77. package/dist/gateway-client/generated/client/utils.gen.d.ts.map +1 -0
  78. package/dist/gateway-client/generated/client/utils.gen.js +229 -0
  79. package/dist/gateway-client/generated/client/utils.gen.js.map +1 -0
  80. package/dist/gateway-client/generated/client.gen.d.ts +13 -0
  81. package/dist/gateway-client/generated/client.gen.d.ts.map +1 -0
  82. package/dist/gateway-client/generated/client.gen.js +4 -0
  83. package/dist/gateway-client/generated/client.gen.js.map +1 -0
  84. package/dist/gateway-client/generated/core/auth.gen.d.ts +26 -0
  85. package/dist/gateway-client/generated/core/auth.gen.d.ts.map +1 -0
  86. package/dist/gateway-client/generated/core/auth.gen.js +15 -0
  87. package/dist/gateway-client/generated/core/auth.gen.js.map +1 -0
  88. package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts +26 -0
  89. package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts.map +1 -0
  90. package/dist/gateway-client/generated/core/bodySerializer.gen.js +58 -0
  91. package/dist/gateway-client/generated/core/bodySerializer.gen.js.map +1 -0
  92. package/dist/gateway-client/generated/core/params.gen.d.ts +44 -0
  93. package/dist/gateway-client/generated/core/params.gen.d.ts.map +1 -0
  94. package/dist/gateway-client/generated/core/params.gen.js +101 -0
  95. package/dist/gateway-client/generated/core/params.gen.js.map +1 -0
  96. package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts +34 -0
  97. package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts.map +1 -0
  98. package/dist/gateway-client/generated/core/pathSerializer.gen.js +107 -0
  99. package/dist/gateway-client/generated/core/pathSerializer.gen.js.map +1 -0
  100. package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts +19 -0
  101. package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
  102. package/dist/gateway-client/generated/core/queryKeySerializer.gen.js +93 -0
  103. package/dist/gateway-client/generated/core/queryKeySerializer.gen.js.map +1 -0
  104. package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts +72 -0
  105. package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts.map +1 -0
  106. package/dist/gateway-client/generated/core/serverSentEvents.gen.js +133 -0
  107. package/dist/gateway-client/generated/core/serverSentEvents.gen.js.map +1 -0
  108. package/dist/gateway-client/generated/core/types.gen.d.ts +84 -0
  109. package/dist/gateway-client/generated/core/types.gen.d.ts.map +1 -0
  110. package/dist/gateway-client/generated/core/types.gen.js +3 -0
  111. package/dist/gateway-client/generated/core/types.gen.js.map +1 -0
  112. package/dist/gateway-client/generated/core/utils.gen.d.ts +20 -0
  113. package/dist/gateway-client/generated/core/utils.gen.d.ts.map +1 -0
  114. package/dist/gateway-client/generated/core/utils.gen.js +88 -0
  115. package/dist/gateway-client/generated/core/utils.gen.js.map +1 -0
  116. package/dist/gateway-client/generated/index.d.ts +3 -0
  117. package/dist/gateway-client/generated/index.d.ts.map +1 -0
  118. package/dist/gateway-client/generated/index.js +3 -0
  119. package/dist/gateway-client/generated/index.js.map +1 -0
  120. package/dist/gateway-client/generated/namespaces.gen.d.ts +512 -0
  121. package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -0
  122. package/dist/gateway-client/generated/namespaces.gen.js +521 -0
  123. package/dist/gateway-client/generated/namespaces.gen.js.map +1 -0
  124. package/dist/gateway-client/generated/sdk.gen.d.ts +1780 -0
  125. package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -0
  126. package/dist/gateway-client/generated/sdk.gen.js +3811 -0
  127. package/dist/gateway-client/generated/sdk.gen.js.map +1 -0
  128. package/dist/gateway-client/generated/types.gen.d.ts +14681 -0
  129. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -0
  130. package/dist/gateway-client/generated/types.gen.js +3 -0
  131. package/dist/gateway-client/generated/types.gen.js.map +1 -0
  132. package/dist/gateway-client/index.d.ts +27 -0
  133. package/dist/gateway-client/index.d.ts.map +1 -0
  134. package/dist/gateway-client/index.js +25 -0
  135. package/dist/gateway-client/index.js.map +1 -0
  136. package/dist/go/driver.d.ts +132 -7
  137. package/dist/go/driver.d.ts.map +1 -1
  138. package/dist/go/driver.js +135 -10
  139. package/dist/go/driver.js.map +1 -1
  140. package/dist/go/index.d.ts +1 -1
  141. package/dist/go/index.d.ts.map +1 -1
  142. package/dist/go/index.js +1 -1
  143. package/dist/go/index.js.map +1 -1
  144. package/dist/index.d.ts +11 -0
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +25 -0
  147. package/dist/index.js.map +1 -1
  148. package/dist/init.d.ts.map +1 -1
  149. package/dist/init.js +28 -0
  150. package/dist/init.js.map +1 -1
  151. package/dist/internal.d.ts +23 -11
  152. package/dist/internal.d.ts.map +1 -1
  153. package/dist/internal.js +29 -12
  154. package/dist/internal.js.map +1 -1
  155. package/dist/lifecycle/engine-ops.d.ts.map +1 -1
  156. package/dist/lifecycle/engine-ops.js +7 -4
  157. package/dist/lifecycle/engine-ops.js.map +1 -1
  158. package/dist/lifecycle/ivtr-loop.d.ts +108 -183
  159. package/dist/lifecycle/ivtr-loop.d.ts.map +1 -1
  160. package/dist/lifecycle/ivtr-loop.js +207 -522
  161. package/dist/lifecycle/ivtr-loop.js.map +1 -1
  162. package/dist/llm/auxiliary-fallback.js +1 -1
  163. package/dist/llm/auxiliary-fallback.js.map +1 -1
  164. package/dist/llm/catalog-model-resolver.d.ts +19 -0
  165. package/dist/llm/catalog-model-resolver.d.ts.map +1 -1
  166. package/dist/llm/catalog-model-resolver.js +36 -0
  167. package/dist/llm/catalog-model-resolver.js.map +1 -1
  168. package/dist/llm/catalog-resolver.d.ts +112 -0
  169. package/dist/llm/catalog-resolver.d.ts.map +1 -0
  170. package/dist/llm/catalog-resolver.js +207 -0
  171. package/dist/llm/catalog-resolver.js.map +1 -0
  172. package/dist/llm/catalog-seeder.d.ts +96 -0
  173. package/dist/llm/catalog-seeder.d.ts.map +1 -0
  174. package/dist/llm/catalog-seeder.js +189 -0
  175. package/dist/llm/catalog-seeder.js.map +1 -0
  176. package/dist/llm/cli-ops.d.ts +14 -1
  177. package/dist/llm/cli-ops.d.ts.map +1 -1
  178. package/dist/llm/cli-ops.js +46 -17
  179. package/dist/llm/cli-ops.js.map +1 -1
  180. package/dist/llm/complexity-classifier.d.ts +208 -0
  181. package/dist/llm/complexity-classifier.d.ts.map +1 -0
  182. package/dist/llm/complexity-classifier.js +359 -0
  183. package/dist/llm/complexity-classifier.js.map +1 -0
  184. package/dist/llm/concrete-session.d.ts.map +1 -1
  185. package/dist/llm/concrete-session.js +4 -0
  186. package/dist/llm/concrete-session.js.map +1 -1
  187. package/dist/llm/credential-pool.d.ts +2 -0
  188. package/dist/llm/credential-pool.d.ts.map +1 -1
  189. package/dist/llm/credential-pool.js +5 -2
  190. package/dist/llm/credential-pool.js.map +1 -1
  191. package/dist/llm/credentials-store.d.ts +10 -14
  192. package/dist/llm/credentials-store.d.ts.map +1 -1
  193. package/dist/llm/credentials-store.js.map +1 -1
  194. package/dist/llm/credentials.d.ts +35 -0
  195. package/dist/llm/credentials.d.ts.map +1 -1
  196. package/dist/llm/credentials.js +49 -0
  197. package/dist/llm/credentials.js.map +1 -1
  198. package/dist/llm/entity-ops.d.ts +299 -0
  199. package/dist/llm/entity-ops.d.ts.map +1 -0
  200. package/dist/llm/entity-ops.js +441 -0
  201. package/dist/llm/entity-ops.js.map +1 -0
  202. package/dist/llm/index.d.ts +19 -0
  203. package/dist/llm/index.d.ts.map +1 -1
  204. package/dist/llm/index.js +12 -0
  205. package/dist/llm/index.js.map +1 -1
  206. package/dist/llm/llm-queue-admit.d.ts +118 -0
  207. package/dist/llm/llm-queue-admit.d.ts.map +1 -0
  208. package/dist/llm/llm-queue-admit.js +275 -0
  209. package/dist/llm/llm-queue-admit.js.map +1 -0
  210. package/dist/llm/oauth/device-code.d.ts.map +1 -1
  211. package/dist/llm/oauth/device-code.js +2 -8
  212. package/dist/llm/oauth/device-code.js.map +1 -1
  213. package/dist/llm/oauth/google-pkce.d.ts.map +1 -1
  214. package/dist/llm/oauth/google-pkce.js +2 -18
  215. package/dist/llm/oauth/google-pkce.js.map +1 -1
  216. package/dist/llm/oauth/pkce.d.ts +70 -0
  217. package/dist/llm/oauth/pkce.d.ts.map +1 -1
  218. package/dist/llm/oauth/pkce.js +106 -29
  219. package/dist/llm/oauth/pkce.js.map +1 -1
  220. package/dist/llm/onboarding/front-door.d.ts +146 -0
  221. package/dist/llm/onboarding/front-door.d.ts.map +1 -0
  222. package/dist/llm/onboarding/front-door.js +153 -0
  223. package/dist/llm/onboarding/front-door.js.map +1 -0
  224. package/dist/llm/onboarding/login-engine.d.ts +175 -0
  225. package/dist/llm/onboarding/login-engine.d.ts.map +1 -0
  226. package/dist/llm/onboarding/login-engine.js +286 -0
  227. package/dist/llm/onboarding/login-engine.js.map +1 -0
  228. package/dist/llm/pi/gondolin-loader.d.ts +241 -0
  229. package/dist/llm/pi/gondolin-loader.d.ts.map +1 -0
  230. package/dist/llm/pi/gondolin-loader.js +195 -0
  231. package/dist/llm/pi/gondolin-loader.js.map +1 -0
  232. package/dist/llm/pi/index.d.ts +28 -0
  233. package/dist/llm/pi/index.d.ts.map +1 -0
  234. package/dist/llm/pi/index.js +27 -0
  235. package/dist/llm/pi/index.js.map +1 -0
  236. package/dist/llm/pi/pi-agent-adapter.d.ts +135 -0
  237. package/dist/llm/pi/pi-agent-adapter.d.ts.map +1 -0
  238. package/dist/llm/pi/pi-agent-adapter.js +329 -0
  239. package/dist/llm/pi/pi-agent-adapter.js.map +1 -0
  240. package/dist/llm/pi/pi-errors.d.ts +161 -0
  241. package/dist/llm/pi/pi-errors.d.ts.map +1 -0
  242. package/dist/llm/pi/pi-errors.js +296 -0
  243. package/dist/llm/pi/pi-errors.js.map +1 -0
  244. package/dist/llm/pi/pi-execution-env.d.ts +286 -0
  245. package/dist/llm/pi/pi-execution-env.d.ts.map +1 -0
  246. package/dist/llm/pi/pi-execution-env.js +406 -0
  247. package/dist/llm/pi/pi-execution-env.js.map +1 -0
  248. package/dist/llm/pi/pi-gondolin-env.d.ts +250 -0
  249. package/dist/llm/pi/pi-gondolin-env.d.ts.map +1 -0
  250. package/dist/llm/pi/pi-gondolin-env.js +541 -0
  251. package/dist/llm/pi/pi-gondolin-env.js.map +1 -0
  252. package/dist/llm/pi/pi-session-storage.d.ts +154 -0
  253. package/dist/llm/pi/pi-session-storage.d.ts.map +1 -0
  254. package/dist/llm/pi/pi-session-storage.js +314 -0
  255. package/dist/llm/pi/pi-session-storage.js.map +1 -0
  256. package/dist/llm/pi/pi-stream-fn.d.ts +124 -0
  257. package/dist/llm/pi/pi-stream-fn.d.ts.map +1 -0
  258. package/dist/llm/pi/pi-stream-fn.js +504 -0
  259. package/dist/llm/pi/pi-stream-fn.js.map +1 -0
  260. package/dist/llm/pi/pi-tool-bridge.d.ts +99 -0
  261. package/dist/llm/pi/pi-tool-bridge.d.ts.map +1 -0
  262. package/dist/llm/pi/pi-tool-bridge.js +117 -0
  263. package/dist/llm/pi/pi-tool-bridge.js.map +1 -0
  264. package/dist/llm/pi/pi-types.d.ts +56 -0
  265. package/dist/llm/pi/pi-types.d.ts.map +1 -0
  266. package/dist/llm/pi/pi-types.js +16 -0
  267. package/dist/llm/pi/pi-types.js.map +1 -0
  268. package/dist/llm/pi/resolve-execution-env.d.ts +194 -0
  269. package/dist/llm/pi/resolve-execution-env.d.ts.map +1 -0
  270. package/dist/llm/pi/resolve-execution-env.js +132 -0
  271. package/dist/llm/pi/resolve-execution-env.js.map +1 -0
  272. package/dist/llm/plugin-facade.js +5472 -1331
  273. package/dist/llm/plugin-facade.js.map +3 -3
  274. package/dist/llm/provider-registry/builtin/anthropic.d.ts.map +1 -1
  275. package/dist/llm/provider-registry/builtin/anthropic.js +23 -10
  276. package/dist/llm/provider-registry/builtin/anthropic.js.map +1 -1
  277. package/dist/llm/provider-registry/provider-alias.d.ts +62 -0
  278. package/dist/llm/provider-registry/provider-alias.d.ts.map +1 -0
  279. package/dist/llm/provider-registry/provider-alias.js +85 -0
  280. package/dist/llm/provider-registry/provider-alias.js.map +1 -0
  281. package/dist/llm/provider-registry/provider-defs.d.ts +45 -0
  282. package/dist/llm/provider-registry/provider-defs.d.ts.map +1 -0
  283. package/dist/llm/provider-registry/provider-defs.js +145 -0
  284. package/dist/llm/provider-registry/provider-defs.js.map +1 -0
  285. package/dist/llm/provider-registry/provider-seed.d.ts +78 -0
  286. package/dist/llm/provider-registry/provider-seed.d.ts.map +1 -0
  287. package/dist/llm/provider-registry/provider-seed.js +113 -0
  288. package/dist/llm/provider-registry/provider-seed.js.map +1 -0
  289. package/dist/llm/role-executor.d.ts.map +1 -1
  290. package/dist/llm/role-executor.js +44 -5
  291. package/dist/llm/role-executor.js.map +1 -1
  292. package/dist/llm/role-resolver.d.ts +46 -14
  293. package/dist/llm/role-resolver.d.ts.map +1 -1
  294. package/dist/llm/role-resolver.js +185 -20
  295. package/dist/llm/role-resolver.js.map +1 -1
  296. package/dist/llm/sealed-credential.d.ts +125 -0
  297. package/dist/llm/sealed-credential.d.ts.map +1 -0
  298. package/dist/llm/sealed-credential.js +133 -0
  299. package/dist/llm/sealed-credential.js.map +1 -0
  300. package/dist/llm/session-factory.d.ts.map +1 -1
  301. package/dist/llm/session-factory.js +6 -2
  302. package/dist/llm/session-factory.js.map +1 -1
  303. package/dist/llm/system-key.d.ts +67 -0
  304. package/dist/llm/system-key.d.ts.map +1 -0
  305. package/dist/llm/system-key.js +87 -0
  306. package/dist/llm/system-key.js.map +1 -0
  307. package/dist/llm/system-of-use-registry.d.ts +119 -0
  308. package/dist/llm/system-of-use-registry.d.ts.map +1 -0
  309. package/dist/llm/system-of-use-registry.js +200 -0
  310. package/dist/llm/system-of-use-registry.js.map +1 -0
  311. package/dist/llm/system-resolver.d.ts +32 -10
  312. package/dist/llm/system-resolver.d.ts.map +1 -1
  313. package/dist/llm/system-resolver.js +138 -35
  314. package/dist/llm/system-resolver.js.map +1 -1
  315. package/dist/memory/brain-writer-thread.d.ts.map +1 -1
  316. package/dist/memory/brain-writer-thread.js +116 -11
  317. package/dist/memory/brain-writer-thread.js.map +1 -1
  318. package/dist/memory/claude-mem-migration.d.ts.map +1 -1
  319. package/dist/memory/claude-mem-migration.js +21 -0
  320. package/dist/memory/claude-mem-migration.js.map +1 -1
  321. package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
  322. package/dist/memory/graph-memory-bridge.js +32 -25
  323. package/dist/memory/graph-memory-bridge.js.map +1 -1
  324. package/dist/memory/learnings.d.ts +4 -0
  325. package/dist/memory/learnings.d.ts.map +1 -1
  326. package/dist/memory/llm-backend-resolver.js +23 -5
  327. package/dist/memory/llm-backend-resolver.js.map +1 -1
  328. package/dist/memory/patterns.d.ts +4 -0
  329. package/dist/memory/patterns.d.ts.map +1 -1
  330. package/dist/metrics/index.d.ts +2 -0
  331. package/dist/metrics/index.d.ts.map +1 -1
  332. package/dist/metrics/index.js +1 -0
  333. package/dist/metrics/index.js.map +1 -1
  334. package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
  335. package/dist/nexus/migrations/M-split-graph.js +60 -53
  336. package/dist/nexus/migrations/M-split-graph.js.map +1 -1
  337. package/dist/orchestrate/pivot.d.ts.map +1 -1
  338. package/dist/orchestrate/pivot.js +20 -2
  339. package/dist/orchestrate/pivot.js.map +1 -1
  340. package/dist/orchestration/spawn.d.ts +89 -0
  341. package/dist/orchestration/spawn.d.ts.map +1 -1
  342. package/dist/orchestration/spawn.js +68 -0
  343. package/dist/orchestration/spawn.js.map +1 -1
  344. package/dist/playbooks/cantbook-profile.d.ts +96 -0
  345. package/dist/playbooks/cantbook-profile.d.ts.map +1 -0
  346. package/dist/playbooks/cantbook-profile.js +97 -0
  347. package/dist/playbooks/cantbook-profile.js.map +1 -0
  348. package/dist/playbooks/guarded-deterministic-runner.d.ts +153 -0
  349. package/dist/playbooks/guarded-deterministic-runner.d.ts.map +1 -0
  350. package/dist/playbooks/guarded-deterministic-runner.js +155 -0
  351. package/dist/playbooks/guarded-deterministic-runner.js.map +1 -0
  352. package/dist/playbooks/index.d.ts +2 -0
  353. package/dist/playbooks/index.d.ts.map +1 -1
  354. package/dist/playbooks/index.js +10 -0
  355. package/dist/playbooks/index.js.map +1 -1
  356. package/dist/playbooks/pi-runner-wiring.d.ts +75 -0
  357. package/dist/playbooks/pi-runner-wiring.d.ts.map +1 -0
  358. package/dist/playbooks/pi-runner-wiring.js +82 -0
  359. package/dist/playbooks/pi-runner-wiring.js.map +1 -0
  360. package/dist/release/engine-ops.js +2 -2
  361. package/dist/release/engine-ops.js.map +1 -1
  362. package/dist/routing/capability-matrix.d.ts.map +1 -1
  363. package/dist/routing/capability-matrix.js +0 -57
  364. package/dist/routing/capability-matrix.js.map +1 -1
  365. package/dist/runtime/openapi/generate-openapi.d.ts +211 -0
  366. package/dist/runtime/openapi/generate-openapi.d.ts.map +1 -0
  367. package/dist/runtime/openapi/generate-openapi.js +300 -0
  368. package/dist/runtime/openapi/generate-openapi.js.map +1 -0
  369. package/dist/runtime/openapi/index.d.ts +16 -0
  370. package/dist/runtime/openapi/index.d.ts.map +1 -0
  371. package/dist/runtime/openapi/index.js +16 -0
  372. package/dist/runtime/openapi/index.js.map +1 -0
  373. package/dist/selfimprove/budget.d.ts +206 -0
  374. package/dist/selfimprove/budget.d.ts.map +1 -0
  375. package/dist/selfimprove/budget.js +203 -0
  376. package/dist/selfimprove/budget.js.map +1 -0
  377. package/dist/selfimprove/dhq-adapter.d.ts +105 -0
  378. package/dist/selfimprove/dhq-adapter.d.ts.map +1 -0
  379. package/dist/selfimprove/dhq-adapter.js +95 -0
  380. package/dist/selfimprove/dhq-adapter.js.map +1 -0
  381. package/dist/selfimprove/draft-pr.d.ts +129 -0
  382. package/dist/selfimprove/draft-pr.d.ts.map +1 -0
  383. package/dist/selfimprove/draft-pr.js +158 -0
  384. package/dist/selfimprove/draft-pr.js.map +1 -0
  385. package/dist/selfimprove/envelope-diff.d.ts +162 -0
  386. package/dist/selfimprove/envelope-diff.d.ts.map +1 -0
  387. package/dist/selfimprove/envelope-diff.js +321 -0
  388. package/dist/selfimprove/envelope-diff.js.map +1 -0
  389. package/dist/selfimprove/replay.d.ts +121 -0
  390. package/dist/selfimprove/replay.d.ts.map +1 -0
  391. package/dist/selfimprove/replay.js +109 -0
  392. package/dist/selfimprove/replay.js.map +1 -0
  393. package/dist/selfimprove/run-loop.d.ts +148 -0
  394. package/dist/selfimprove/run-loop.d.ts.map +1 -0
  395. package/dist/selfimprove/run-loop.js +240 -0
  396. package/dist/selfimprove/run-loop.js.map +1 -0
  397. package/dist/selfimprove/scenario.d.ts +145 -0
  398. package/dist/selfimprove/scenario.d.ts.map +1 -0
  399. package/dist/selfimprove/scenario.js +243 -0
  400. package/dist/selfimprove/scenario.js.map +1 -0
  401. package/dist/selfimprove/scenarios/dhq-replay-find/golden.json +32 -0
  402. package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +18 -0
  403. package/dist/sentient/daemon-entry.js +5 -0
  404. package/dist/sentient/daemon-entry.js.map +1 -1
  405. package/dist/sentient/daemon.d.ts.map +1 -1
  406. package/dist/sentient/daemon.js +19 -0
  407. package/dist/sentient/daemon.js.map +1 -1
  408. package/dist/sentient/hygiene-scan.d.ts.map +1 -1
  409. package/dist/sentient/hygiene-scan.js +14 -6
  410. package/dist/sentient/hygiene-scan.js.map +1 -1
  411. package/dist/sessions/briefing.d.ts.map +1 -1
  412. package/dist/sessions/briefing.js +13 -9
  413. package/dist/sessions/briefing.js.map +1 -1
  414. package/dist/sessions/connection-session-handle.d.ts +161 -0
  415. package/dist/sessions/connection-session-handle.d.ts.map +1 -0
  416. package/dist/sessions/connection-session-handle.js +168 -0
  417. package/dist/sessions/connection-session-handle.js.map +1 -0
  418. package/dist/sessions/handoff.d.ts.map +1 -1
  419. package/dist/sessions/handoff.js +9 -0
  420. package/dist/sessions/handoff.js.map +1 -1
  421. package/dist/sessions/index.d.ts +4 -1
  422. package/dist/sessions/index.d.ts.map +1 -1
  423. package/dist/sessions/index.js +31 -1
  424. package/dist/sessions/index.js.map +1 -1
  425. package/dist/sessions/session-id.d.ts +34 -0
  426. package/dist/sessions/session-id.d.ts.map +1 -1
  427. package/dist/sessions/session-id.js +37 -0
  428. package/dist/sessions/session-id.js.map +1 -1
  429. package/dist/sessions/session-manifest-mirror.d.ts +115 -0
  430. package/dist/sessions/session-manifest-mirror.d.ts.map +1 -0
  431. package/dist/sessions/session-manifest-mirror.js +250 -0
  432. package/dist/sessions/session-manifest-mirror.js.map +1 -0
  433. package/dist/sessions/session-switch.d.ts.map +1 -1
  434. package/dist/sessions/session-switch.js +5 -2
  435. package/dist/sessions/session-switch.js.map +1 -1
  436. package/dist/setup/config-json-merge.d.ts.map +1 -1
  437. package/dist/setup/config-json-merge.js +14 -0
  438. package/dist/setup/config-json-merge.js.map +1 -1
  439. package/dist/setup/index.d.ts +23 -11
  440. package/dist/setup/index.d.ts.map +1 -1
  441. package/dist/setup/index.js +25 -12
  442. package/dist/setup/index.js.map +1 -1
  443. package/dist/setup/sections/llm.d.ts +28 -1
  444. package/dist/setup/sections/llm.d.ts.map +1 -1
  445. package/dist/setup/sections/llm.js +27 -6
  446. package/dist/setup/sections/llm.js.map +1 -1
  447. package/dist/setup/sections/models-roles.d.ts +40 -0
  448. package/dist/setup/sections/models-roles.d.ts.map +1 -0
  449. package/dist/setup/sections/models-roles.js +219 -0
  450. package/dist/setup/sections/models-roles.js.map +1 -0
  451. package/dist/setup/wizard.d.ts +19 -1
  452. package/dist/setup/wizard.d.ts.map +1 -1
  453. package/dist/setup/wizard.js.map +1 -1
  454. package/dist/store/converters.d.ts.map +1 -1
  455. package/dist/store/converters.js +2 -0
  456. package/dist/store/converters.js.map +1 -1
  457. package/dist/store/db-helpers.d.ts.map +1 -1
  458. package/dist/store/db-helpers.js +2 -0
  459. package/dist/store/db-helpers.js.map +1 -1
  460. package/dist/store/dual-scope-db.d.ts.map +1 -1
  461. package/dist/store/dual-scope-db.js +87 -47
  462. package/dist/store/dual-scope-db.js.map +1 -1
  463. package/dist/store/pi-session-store.d.ts +151 -0
  464. package/dist/store/pi-session-store.d.ts.map +1 -0
  465. package/dist/store/pi-session-store.js +166 -0
  466. package/dist/store/pi-session-store.js.map +1 -0
  467. package/dist/store/safety-data-accessor.d.ts +1 -0
  468. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  469. package/dist/store/safety-data-accessor.js +5 -0
  470. package/dist/store/safety-data-accessor.js.map +1 -1
  471. package/dist/store/schedule-schema.d.ts +195 -0
  472. package/dist/store/schedule-schema.d.ts.map +1 -0
  473. package/dist/store/schedule-schema.js +84 -0
  474. package/dist/store/schedule-schema.js.map +1 -0
  475. package/dist/store/schedule-store.d.ts +144 -0
  476. package/dist/store/schedule-store.d.ts.map +1 -0
  477. package/dist/store/schedule-store.js +162 -0
  478. package/dist/store/schedule-store.js.map +1 -0
  479. package/dist/store/schema/attachments.d.ts +1 -1
  480. package/dist/store/schema/cleo-global/accounts.d.ts +357 -0
  481. package/dist/store/schema/cleo-global/accounts.d.ts.map +1 -0
  482. package/dist/store/schema/cleo-global/accounts.js +136 -0
  483. package/dist/store/schema/cleo-global/accounts.js.map +1 -0
  484. package/dist/store/schema/cleo-global/index.d.ts +5 -0
  485. package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
  486. package/dist/store/schema/cleo-global/index.js +7 -0
  487. package/dist/store/schema/cleo-global/index.js.map +1 -1
  488. package/dist/store/schema/cleo-global/models-catalog.d.ts +359 -0
  489. package/dist/store/schema/cleo-global/models-catalog.d.ts.map +1 -0
  490. package/dist/store/schema/cleo-global/models-catalog.js +114 -0
  491. package/dist/store/schema/cleo-global/models-catalog.js.map +1 -0
  492. package/dist/store/schema/cleo-global/providers.d.ts +279 -0
  493. package/dist/store/schema/cleo-global/providers.d.ts.map +1 -0
  494. package/dist/store/schema/cleo-global/providers.js +94 -0
  495. package/dist/store/schema/cleo-global/providers.js.map +1 -0
  496. package/dist/store/schema/cleo-global/services.d.ts +493 -0
  497. package/dist/store/schema/cleo-global/services.d.ts.map +1 -0
  498. package/dist/store/schema/cleo-global/services.js +200 -0
  499. package/dist/store/schema/cleo-global/services.js.map +1 -0
  500. package/dist/store/schema/cleo-global/session-manifest.d.ts +217 -0
  501. package/dist/store/schema/cleo-global/session-manifest.d.ts.map +1 -0
  502. package/dist/store/schema/cleo-global/session-manifest.js +99 -0
  503. package/dist/store/schema/cleo-global/session-manifest.js.map +1 -0
  504. package/dist/store/schema/cleo-project/docs.d.ts +1 -1
  505. package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
  506. package/dist/store/schema/cleo-project/tasks-core.d.ts +16 -0
  507. package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
  508. package/dist/store/schema/cleo-project/tasks-core.js +14 -0
  509. package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
  510. package/dist/store/schema/cleo-shared/brain.d.ts +2 -2
  511. package/dist/store/schema/memory-schema.d.ts +182 -2
  512. package/dist/store/schema/memory-schema.d.ts.map +1 -1
  513. package/dist/store/schema/memory-schema.js +111 -2
  514. package/dist/store/schema/memory-schema.js.map +1 -1
  515. package/dist/store/schema/provenance/releases.d.ts +1 -1
  516. package/dist/store/schema/tasks.d.ts +16 -0
  517. package/dist/store/schema/tasks.d.ts.map +1 -1
  518. package/dist/store/schema/tasks.js +10 -0
  519. package/dist/store/schema/tasks.js.map +1 -1
  520. package/dist/store/selfimprove-dhq-schema.d.ts +284 -0
  521. package/dist/store/selfimprove-dhq-schema.d.ts.map +1 -0
  522. package/dist/store/selfimprove-dhq-schema.js +128 -0
  523. package/dist/store/selfimprove-dhq-schema.js.map +1 -0
  524. package/dist/store/selfimprove-dhq-store.d.ts +175 -0
  525. package/dist/store/selfimprove-dhq-store.d.ts.map +1 -0
  526. package/dist/store/selfimprove-dhq-store.js +182 -0
  527. package/dist/store/selfimprove-dhq-store.js.map +1 -0
  528. package/dist/store/service-connections-accessor.d.ts +313 -0
  529. package/dist/store/service-connections-accessor.d.ts.map +1 -0
  530. package/dist/store/service-connections-accessor.js +464 -0
  531. package/dist/store/service-connections-accessor.js.map +1 -0
  532. package/dist/store/service-host-matcher.d.ts +70 -0
  533. package/dist/store/service-host-matcher.d.ts.map +1 -0
  534. package/dist/store/service-host-matcher.js +127 -0
  535. package/dist/store/service-host-matcher.js.map +1 -0
  536. package/dist/store/service-injection.d.ts +152 -0
  537. package/dist/store/service-injection.d.ts.map +1 -0
  538. package/dist/store/service-injection.js +225 -0
  539. package/dist/store/service-injection.js.map +1 -0
  540. package/dist/store/service-oauth.d.ts +287 -0
  541. package/dist/store/service-oauth.d.ts.map +1 -0
  542. package/dist/store/service-oauth.js +524 -0
  543. package/dist/store/service-oauth.js.map +1 -0
  544. package/dist/store/service-trust-gate.d.ts +164 -0
  545. package/dist/store/service-trust-gate.d.ts.map +1 -0
  546. package/dist/store/service-trust-gate.js +122 -0
  547. package/dist/store/service-trust-gate.js.map +1 -0
  548. package/dist/store/session-store.d.ts +52 -13
  549. package/dist/store/session-store.d.ts.map +1 -1
  550. package/dist/store/session-store.js +71 -13
  551. package/dist/store/session-store.js.map +1 -1
  552. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  553. package/dist/store/sqlite-data-accessor.js +7 -0
  554. package/dist/store/sqlite-data-accessor.js.map +1 -1
  555. package/dist/store/umbrella-data-accessor.d.ts +1 -0
  556. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  557. package/dist/store/umbrella-data-accessor.js +5 -0
  558. package/dist/store/umbrella-data-accessor.js.map +1 -1
  559. package/dist/store/validation-schemas.d.ts +36 -4
  560. package/dist/store/validation-schemas.d.ts.map +1 -1
  561. package/dist/store/writer-lease-schema.d.ts +392 -0
  562. package/dist/store/writer-lease-schema.d.ts.map +1 -0
  563. package/dist/store/writer-lease-schema.js +142 -0
  564. package/dist/store/writer-lease-schema.js.map +1 -0
  565. package/dist/store/writer-lease.d.ts +368 -0
  566. package/dist/store/writer-lease.d.ts.map +1 -0
  567. package/dist/store/writer-lease.js +1002 -0
  568. package/dist/store/writer-lease.js.map +1 -0
  569. package/dist/tasks/agent-lifecycle-lane.d.ts +175 -0
  570. package/dist/tasks/agent-lifecycle-lane.d.ts.map +1 -0
  571. package/dist/tasks/agent-lifecycle-lane.js +176 -0
  572. package/dist/tasks/agent-lifecycle-lane.js.map +1 -0
  573. package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
  574. package/dist/tasks/backfill-child-projections.js +14 -9
  575. package/dist/tasks/backfill-child-projections.js.map +1 -1
  576. package/dist/tasks/complete.d.ts +17 -0
  577. package/dist/tasks/complete.d.ts.map +1 -1
  578. package/dist/tasks/complete.js +60 -20
  579. package/dist/tasks/complete.js.map +1 -1
  580. package/dist/tasks/depends-waiver-audit.d.ts +52 -0
  581. package/dist/tasks/depends-waiver-audit.d.ts.map +1 -0
  582. package/dist/tasks/depends-waiver-audit.js +36 -0
  583. package/dist/tasks/depends-waiver-audit.js.map +1 -0
  584. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  585. package/dist/tasks/duplicate-detector.js +14 -7
  586. package/dist/tasks/duplicate-detector.js.map +1 -1
  587. package/dist/tasks/engine-wrap.d.ts +36 -2
  588. package/dist/tasks/engine-wrap.d.ts.map +1 -1
  589. package/dist/tasks/engine-wrap.js +44 -2
  590. package/dist/tasks/engine-wrap.js.map +1 -1
  591. package/dist/tasks/index.d.ts +1 -0
  592. package/dist/tasks/index.d.ts.map +1 -1
  593. package/dist/tasks/index.js +1 -0
  594. package/dist/tasks/index.js.map +1 -1
  595. package/dist/tasks/ops.d.ts +3 -0
  596. package/dist/tasks/ops.d.ts.map +1 -1
  597. package/dist/tasks/task-ops.d.ts +1 -1
  598. package/dist/tasks/task-ops.d.ts.map +1 -1
  599. package/dist/tasks/task-ops.js +3 -1
  600. package/dist/tasks/task-ops.js.map +1 -1
  601. package/dist/tasks/task-reparent.d.ts +90 -0
  602. package/dist/tasks/task-reparent.d.ts.map +1 -1
  603. package/dist/tasks/task-reparent.js +171 -0
  604. package/dist/tasks/task-reparent.js.map +1 -1
  605. package/dist/telemetry/index.d.ts.map +1 -1
  606. package/dist/telemetry/index.js +10 -4
  607. package/dist/telemetry/index.js.map +1 -1
  608. package/dist/tools/agent-registry.d.ts +250 -0
  609. package/dist/tools/agent-registry.d.ts.map +1 -0
  610. package/dist/tools/agent-registry.js +292 -0
  611. package/dist/tools/agent-registry.js.map +1 -0
  612. package/dist/tools/agent-tool-families.d.ts +107 -0
  613. package/dist/tools/agent-tool-families.d.ts.map +1 -0
  614. package/dist/tools/agent-tool-families.js +527 -0
  615. package/dist/tools/agent-tool-families.js.map +1 -0
  616. package/dist/tools/browser-driver.d.ts +183 -0
  617. package/dist/tools/browser-driver.d.ts.map +1 -0
  618. package/dist/tools/browser-driver.js +242 -0
  619. package/dist/tools/browser-driver.js.map +1 -0
  620. package/dist/tools/builtin-agent-tools.d.ts +36 -0
  621. package/dist/tools/builtin-agent-tools.d.ts.map +1 -0
  622. package/dist/tools/builtin-agent-tools.js +191 -0
  623. package/dist/tools/builtin-agent-tools.js.map +1 -0
  624. package/dist/tools/dispatch.d.ts +370 -0
  625. package/dist/tools/dispatch.d.ts.map +1 -0
  626. package/dist/tools/dispatch.js +505 -0
  627. package/dist/tools/dispatch.js.map +1 -0
  628. package/dist/tools/env-scrub.d.ts +93 -0
  629. package/dist/tools/env-scrub.d.ts.map +1 -0
  630. package/dist/tools/env-scrub.js +176 -0
  631. package/dist/tools/env-scrub.js.map +1 -0
  632. package/dist/tools/exec-code-agent-tool.d.ts +179 -0
  633. package/dist/tools/exec-code-agent-tool.d.ts.map +1 -0
  634. package/dist/tools/exec-code-agent-tool.js +239 -0
  635. package/dist/tools/exec-code-agent-tool.js.map +1 -0
  636. package/dist/tools/fs.d.ts +30 -0
  637. package/dist/tools/fs.d.ts.map +1 -1
  638. package/dist/tools/fs.js +55 -2
  639. package/dist/tools/fs.js.map +1 -1
  640. package/dist/tools/guard.d.ts +15 -0
  641. package/dist/tools/guard.d.ts.map +1 -1
  642. package/dist/tools/guard.js +49 -12
  643. package/dist/tools/guard.js.map +1 -1
  644. package/dist/tools/index.d.ts +16 -0
  645. package/dist/tools/index.d.ts.map +1 -1
  646. package/dist/tools/index.js +52 -0
  647. package/dist/tools/index.js.map +1 -1
  648. package/dist/tools/mcp-agent-tool.d.ts +189 -0
  649. package/dist/tools/mcp-agent-tool.d.ts.map +1 -0
  650. package/dist/tools/mcp-agent-tool.js +243 -0
  651. package/dist/tools/mcp-agent-tool.js.map +1 -0
  652. package/dist/tools/media-agent-tools.d.ts +105 -0
  653. package/dist/tools/media-agent-tools.d.ts.map +1 -0
  654. package/dist/tools/media-agent-tools.js +255 -0
  655. package/dist/tools/media-agent-tools.js.map +1 -0
  656. package/dist/tools/memory-agent-tools.d.ts +99 -0
  657. package/dist/tools/memory-agent-tools.d.ts.map +1 -0
  658. package/dist/tools/memory-agent-tools.js +190 -0
  659. package/dist/tools/memory-agent-tools.js.map +1 -0
  660. package/dist/tools/pty.d.ts +45 -0
  661. package/dist/tools/pty.d.ts.map +1 -0
  662. package/dist/tools/pty.js +166 -0
  663. package/dist/tools/pty.js.map +1 -0
  664. package/dist/tools/schedule-agent-tools.d.ts +151 -0
  665. package/dist/tools/schedule-agent-tools.d.ts.map +1 -0
  666. package/dist/tools/schedule-agent-tools.js +238 -0
  667. package/dist/tools/schedule-agent-tools.js.map +1 -0
  668. package/dist/tools/schema-gen.d.ts +57 -0
  669. package/dist/tools/schema-gen.d.ts.map +1 -0
  670. package/dist/tools/schema-gen.js +52 -0
  671. package/dist/tools/schema-gen.js.map +1 -0
  672. package/dist/tools/shell.d.ts +12 -0
  673. package/dist/tools/shell.d.ts.map +1 -1
  674. package/dist/tools/shell.js +14 -1
  675. package/dist/tools/shell.js.map +1 -1
  676. package/dist/tools/skill-agent-tool.d.ts +108 -0
  677. package/dist/tools/skill-agent-tool.d.ts.map +1 -0
  678. package/dist/tools/skill-agent-tool.js +135 -0
  679. package/dist/tools/skill-agent-tool.js.map +1 -0
  680. package/dist/tools/web-agent-tools.d.ts +72 -0
  681. package/dist/tools/web-agent-tools.d.ts.map +1 -0
  682. package/dist/tools/web-agent-tools.js +393 -0
  683. package/dist/tools/web-agent-tools.js.map +1 -0
  684. package/dist/tools/web-search-backends.d.ts +156 -0
  685. package/dist/tools/web-search-backends.d.ts.map +1 -0
  686. package/dist/tools/web-search-backends.js +290 -0
  687. package/dist/tools/web-search-backends.js.map +1 -0
  688. package/dist/validation/engine-ops.d.ts.map +1 -1
  689. package/dist/validation/engine-ops.js +17 -1
  690. package/dist/validation/engine-ops.js.map +1 -1
  691. package/dist/validation/ops.d.ts +1 -15
  692. package/dist/validation/ops.d.ts.map +1 -1
  693. package/dist/validation/ops.js +0 -20
  694. package/dist/validation/ops.js.map +1 -1
  695. package/migrations/drizzle-brain/20260610000001_t10405-bitemporal-network-columns/migration.sql +71 -0
  696. package/migrations/drizzle-cleo-global/20260607000000_t11891-writer-leases/migration.sql +55 -0
  697. package/migrations/drizzle-cleo-global/20260607010000_t11639-session-manifest/migration.sql +43 -0
  698. package/migrations/drizzle-cleo-global/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
  699. package/migrations/drizzle-cleo-global/20260608010000_t11709-accounts-credential-pool/migration.sql +72 -0
  700. package/migrations/drizzle-cleo-global/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
  701. package/migrations/drizzle-cleo-global/20260609000000_t11937-service-vault/migration.sql +93 -0
  702. package/migrations/drizzle-cleo-global/20260609010000_t11733-models-catalog/migration.sql +65 -0
  703. package/migrations/drizzle-cleo-global/20260609020000_t11703-providers/migration.sql +52 -0
  704. package/migrations/drizzle-cleo-global/20260610000000_t11962-schedules/migration.sql +48 -0
  705. package/migrations/drizzle-cleo-project/20260607000000_t11891-writer-leases/migration.sql +55 -0
  706. package/migrations/drizzle-cleo-project/20260607010000_t11639-session-parent/migration.sql +22 -0
  707. package/migrations/drizzle-cleo-project/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
  708. package/migrations/drizzle-cleo-project/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
  709. package/migrations/drizzle-cleo-project/20260610000000_t11962-schedules/migration.sql +48 -0
  710. package/package.json +26 -14
  711. package/dist/lifecycle/chain-composition.d.ts +0 -30
  712. package/dist/lifecycle/chain-composition.d.ts.map +0 -1
  713. package/dist/lifecycle/chain-composition.js +0 -152
  714. package/dist/lifecycle/chain-composition.js.map +0 -1
  715. package/dist/lifecycle/chain-store.d.ts +0 -70
  716. package/dist/lifecycle/chain-store.d.ts.map +0 -1
  717. package/dist/lifecycle/chain-store.js +0 -246
  718. package/dist/lifecycle/chain-store.js.map +0 -1
  719. package/dist/lifecycle/default-chain.d.ts +0 -39
  720. package/dist/lifecycle/default-chain.d.ts.map +0 -1
  721. package/dist/lifecycle/default-chain.js +0 -176
  722. package/dist/lifecycle/default-chain.js.map +0 -1
  723. package/dist/lifecycle/tessera-engine.d.ts +0 -48
  724. package/dist/lifecycle/tessera-engine.d.ts.map +0 -1
  725. package/dist/lifecycle/tessera-engine.js +0 -249
  726. package/dist/lifecycle/tessera-engine.js.map +0 -1
  727. package/dist/validation/chain-validation.d.ts +0 -43
  728. package/dist/validation/chain-validation.d.ts.map +0 -1
  729. package/dist/validation/chain-validation.js +0 -146
  730. package/dist/validation/chain-validation.js.map +0 -1
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Memory (BRAIN) agent-tool family — `memory_search` / `memory_observe` /
3
+ * `memory_fetch` / `memory_timeline` (T11947 · M7 · epic T11456 · SG-TOOLS).
4
+ *
5
+ * Surfaces the EXISTING BRAIN cognitive-memory operations to the agent loop as
6
+ * `agent`-toolset tools, mirroring the `cleo memory find|observe|fetch|timeline`
7
+ * CLI verbs. It adds NO new store, NO new SQL, and NO new schema: each tool
8
+ * DELEGATES to the established memory ops in
9
+ * {@link import('../memory/engine-compat.js')}
10
+ * ({@link memoryFind} / {@link memoryObserve} / {@link memoryFetch} /
11
+ * {@link memoryTimeline}), which themselves route through the BRAIN retrieval
12
+ * accessors + the store chokepoint. The agent loop never re-implements brain
13
+ * retrieval — it reuses the SAME path the CLI and the orchestrator use.
14
+ *
15
+ * ## Why a seam, not a hardcoded import (AC5 + Gate-11)
16
+ *
17
+ * The four memory ops are injected through the {@link MemoryOps} seam, defaulting
18
+ * to the real `engine-compat` functions. This lets the unit test inject a FAKE
19
+ * Brain surface and assert delegation + schema validation WITHOUT opening a real
20
+ * `brain.db`. Production binds the real ops. The tools are DEFINED here under
21
+ * `packages/core/src/tools` and CONSUME the memory subsystem — they construct no
22
+ * new atomic primitive (Gate-11).
23
+ *
24
+ * ## Availability (AC4)
25
+ *
26
+ * BRAIN read/write is a LOCAL SQLite operation through the store chokepoint — no
27
+ * credential, no network, no daemon. Every memory tool is therefore
28
+ * {@link ALWAYS_AVAILABLE}: it works daemon-OFF and credential-OFF.
29
+ *
30
+ * ## Gate-13
31
+ *
32
+ * No model/transport/provider client is constructed here — BRAIN search is a
33
+ * local FTS/SQLite query, not an LLM call. There is no chokepoint concern.
34
+ *
35
+ * @epic T11456
36
+ * @task T11947
37
+ * @see ../memory/engine-compat.js — the memory ops this family delegates to
38
+ * @see ./exec-code-agent-tool.js — the injectable-seam + self-registering-marker pattern mirrored here
39
+ */
40
+ import type { EngineResult } from '../engine-result.js';
41
+ import { type AgentToolRegistry } from './agent-registry.js';
42
+ /**
43
+ * The BRAIN memory operations the family delegates to. Each member has the SAME
44
+ * signature as the corresponding `engine-compat` function — `(params, root?) →
45
+ * Promise<EngineResult>`. Injectable so the unit test can supply a fake Brain
46
+ * surface; defaults to the real ops in production.
47
+ */
48
+ export interface MemoryOps {
49
+ /** Token-efficient compact search (→ `cleo memory find`). */
50
+ readonly find: (params: {
51
+ query: string;
52
+ limit?: number;
53
+ }, projectRoot?: string) => Promise<EngineResult>;
54
+ /** Append an observation (→ `cleo memory observe`). */
55
+ readonly observe: (params: {
56
+ text: string;
57
+ title?: string;
58
+ }, projectRoot?: string) => Promise<EngineResult>;
59
+ /** Batch fetch entries by ID (→ `cleo memory fetch`). */
60
+ readonly fetch: (params: {
61
+ ids: string[];
62
+ }, projectRoot?: string) => Promise<EngineResult>;
63
+ /** Chronological context around an anchor (→ `cleo memory timeline`). */
64
+ readonly timeline: (params: {
65
+ anchor: string;
66
+ depthBefore?: number;
67
+ depthAfter?: number;
68
+ }, projectRoot?: string) => Promise<EngineResult>;
69
+ }
70
+ /** Options for {@link registerMemoryAgentTools} — all injectable for testing. */
71
+ export interface MemoryAgentToolOptions {
72
+ /** The memory ops seam. Defaults to the real `engine-compat` functions. */
73
+ readonly memory?: MemoryOps;
74
+ /**
75
+ * The project root threaded into every op (defaults to the resolved project
76
+ * root via {@link resolveOrCwd} — never a bare `process.cwd()` in core, T9584).
77
+ */
78
+ readonly projectRoot?: string;
79
+ }
80
+ /**
81
+ * Register the memory (BRAIN) agent-tool family into `registry`. Pure
82
+ * registration — no `brain.db` is opened, no query runs here; all of that happens
83
+ * later inside each tool's `execute` through the injected (or default) ops.
84
+ * Import-time side-effect-free.
85
+ *
86
+ * @param registry - The registry to populate.
87
+ * @param options - Injectable memory ops / project root (for testing).
88
+ */
89
+ export declare function registerMemoryAgentTools(registry: AgentToolRegistry, options?: MemoryAgentToolOptions): void;
90
+ /**
91
+ * Self-registration marker (AC1) — the identifier the
92
+ * {@link AgentToolRegistry.discover} bounded source scan greps for. Aliases
93
+ * {@link registerMemoryAgentTools} so a future scan-dir discovery (or the
94
+ * built-in aggregator) can call it uniformly with the other agent-tool modules.
95
+ *
96
+ * @param registry - The registry to populate.
97
+ */
98
+ export declare function registerAgentTools(registry: AgentToolRegistry): void;
99
+ //# sourceMappingURL=memory-agent-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-agent-tools.d.ts","sourceRoot":"","sources":["../../src/tools/memory-agent-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQxD,OAAO,EAAE,KAAK,iBAAiB,EAAoB,MAAM,qBAAqB,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,CACb,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EACzC,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,CAChB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EACxC,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3F,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,CACjB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EACrE,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5B;AAUD,iFAAiF;AACjF,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAgBD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,sBAA2B,GACnC,IAAI,CAgHN;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAEpE"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Memory (BRAIN) agent-tool family — `memory_search` / `memory_observe` /
3
+ * `memory_fetch` / `memory_timeline` (T11947 · M7 · epic T11456 · SG-TOOLS).
4
+ *
5
+ * Surfaces the EXISTING BRAIN cognitive-memory operations to the agent loop as
6
+ * `agent`-toolset tools, mirroring the `cleo memory find|observe|fetch|timeline`
7
+ * CLI verbs. It adds NO new store, NO new SQL, and NO new schema: each tool
8
+ * DELEGATES to the established memory ops in
9
+ * {@link import('../memory/engine-compat.js')}
10
+ * ({@link memoryFind} / {@link memoryObserve} / {@link memoryFetch} /
11
+ * {@link memoryTimeline}), which themselves route through the BRAIN retrieval
12
+ * accessors + the store chokepoint. The agent loop never re-implements brain
13
+ * retrieval — it reuses the SAME path the CLI and the orchestrator use.
14
+ *
15
+ * ## Why a seam, not a hardcoded import (AC5 + Gate-11)
16
+ *
17
+ * The four memory ops are injected through the {@link MemoryOps} seam, defaulting
18
+ * to the real `engine-compat` functions. This lets the unit test inject a FAKE
19
+ * Brain surface and assert delegation + schema validation WITHOUT opening a real
20
+ * `brain.db`. Production binds the real ops. The tools are DEFINED here under
21
+ * `packages/core/src/tools` and CONSUME the memory subsystem — they construct no
22
+ * new atomic primitive (Gate-11).
23
+ *
24
+ * ## Availability (AC4)
25
+ *
26
+ * BRAIN read/write is a LOCAL SQLite operation through the store chokepoint — no
27
+ * credential, no network, no daemon. Every memory tool is therefore
28
+ * {@link ALWAYS_AVAILABLE}: it works daemon-OFF and credential-OFF.
29
+ *
30
+ * ## Gate-13
31
+ *
32
+ * No model/transport/provider client is constructed here — BRAIN search is a
33
+ * local FTS/SQLite query, not an LLM call. There is no chokepoint concern.
34
+ *
35
+ * @epic T11456
36
+ * @task T11947
37
+ * @see ../memory/engine-compat.js — the memory ops this family delegates to
38
+ * @see ./exec-code-agent-tool.js — the injectable-seam + self-registering-marker pattern mirrored here
39
+ */
40
+ import { z } from 'zod';
41
+ import { memoryFetch as realMemoryFetch, memoryFind as realMemoryFind, memoryObserve as realMemoryObserve, memoryTimeline as realMemoryTimeline, } from '../memory/engine-compat.js';
42
+ import { resolveOrCwd } from '../paths.js';
43
+ import { ALWAYS_AVAILABLE } from './agent-registry.js';
44
+ /** The real BRAIN memory ops — the production default for {@link MemoryOps}. */
45
+ const REAL_MEMORY_OPS = {
46
+ find: realMemoryFind,
47
+ observe: realMemoryObserve,
48
+ fetch: realMemoryFetch,
49
+ timeline: realMemoryTimeline,
50
+ };
51
+ /**
52
+ * Coerce an {@link EngineResult} into the opaque value the loop serialises back
53
+ * to the model. On success the `data` payload is returned as-is; on failure a
54
+ * stable `{ ok: false, error }` shape is returned (the op never throws for an
55
+ * expected failure — it returns a typed `EngineFailure`).
56
+ *
57
+ * @param result - The op's EngineResult.
58
+ * @returns The success data, or a typed failure object.
59
+ */
60
+ function unwrapEngineResult(result) {
61
+ if (result.success)
62
+ return result.data;
63
+ return { ok: false, error: result.error };
64
+ }
65
+ /**
66
+ * Register the memory (BRAIN) agent-tool family into `registry`. Pure
67
+ * registration — no `brain.db` is opened, no query runs here; all of that happens
68
+ * later inside each tool's `execute` through the injected (or default) ops.
69
+ * Import-time side-effect-free.
70
+ *
71
+ * @param registry - The registry to populate.
72
+ * @param options - Injectable memory ops / project root (for testing).
73
+ */
74
+ export function registerMemoryAgentTools(registry, options = {}) {
75
+ const memory = options.memory ?? REAL_MEMORY_OPS;
76
+ const projectRoot = resolveOrCwd(options.projectRoot);
77
+ // --- memory_search (→ memoryFind) ----------------------------------------
78
+ registry.register({
79
+ name: 'memory_search',
80
+ // 'search' — a local read-query of the BRAIN store (no side effect beyond reading).
81
+ class: 'search',
82
+ description: 'Search BRAIN cognitive memory (decisions / patterns / learnings / observations) ' +
83
+ 'for entries matching a query, returning compact hits (IDs + titles). Use memory_fetch ' +
84
+ 'to retrieve full details for a hit.',
85
+ toolset: 'agent',
86
+ stateless: true,
87
+ available: ALWAYS_AVAILABLE,
88
+ parameters: z.object({
89
+ query: z.string().describe('Free-text search query.'),
90
+ limit: z
91
+ .number()
92
+ .int()
93
+ .positive()
94
+ .optional()
95
+ .describe('Maximum number of compact hits to return.'),
96
+ }),
97
+ execute: async (rawArgs) => {
98
+ const query = String(rawArgs.query);
99
+ const limit = typeof rawArgs.limit === 'number' ? rawArgs.limit : undefined;
100
+ const result = await memory.find({ query, limit }, projectRoot);
101
+ return unwrapEngineResult(result);
102
+ },
103
+ });
104
+ // --- memory_observe (→ memoryObserve) ------------------------------------
105
+ registry.register({
106
+ name: 'memory_observe',
107
+ // 'fs' — persists a row to the local BRAIN store (its strongest side-effect surface).
108
+ class: 'fs',
109
+ description: 'Append a new observation to BRAIN memory (an O-prefixed entry). Use after a ' +
110
+ 'non-trivial step to record a learning or decision for future sessions.',
111
+ toolset: 'agent',
112
+ stateless: false,
113
+ available: ALWAYS_AVAILABLE,
114
+ parameters: z.object({
115
+ text: z.string().describe('The observation body to store.'),
116
+ title: z.string().optional().describe('A short title for the observation.'),
117
+ }),
118
+ execute: async (rawArgs) => {
119
+ const text = String(rawArgs.text);
120
+ const title = rawArgs.title === undefined ? undefined : String(rawArgs.title);
121
+ const result = await memory.observe({ text, title }, projectRoot);
122
+ return unwrapEngineResult(result);
123
+ },
124
+ });
125
+ // --- memory_fetch (→ memoryFetch) ----------------------------------------
126
+ registry.register({
127
+ name: 'memory_fetch',
128
+ class: 'search',
129
+ description: 'Fetch full details for one or more BRAIN entries by ID (e.g. O-abc123, D-def456). ' +
130
+ 'Use after memory_search to expand a compact hit.',
131
+ toolset: 'agent',
132
+ stateless: true,
133
+ available: ALWAYS_AVAILABLE,
134
+ parameters: z.object({
135
+ ids: z
136
+ .array(z.string())
137
+ .min(1)
138
+ .describe('One or more BRAIN entry IDs to fetch (e.g. ["O-abc123"]).'),
139
+ }),
140
+ execute: async (rawArgs) => {
141
+ const ids = Array.isArray(rawArgs.ids) ? rawArgs.ids.map(String) : [];
142
+ const result = await memory.fetch({ ids }, projectRoot);
143
+ return unwrapEngineResult(result);
144
+ },
145
+ });
146
+ // --- memory_timeline (→ memoryTimeline) ----------------------------------
147
+ registry.register({
148
+ name: 'memory_timeline',
149
+ class: 'search',
150
+ description: 'Retrieve chronological context around a BRAIN entry — the entries recorded before ' +
151
+ 'and after a given anchor ID — to understand the sequence of observations and decisions.',
152
+ toolset: 'agent',
153
+ stateless: true,
154
+ available: ALWAYS_AVAILABLE,
155
+ parameters: z.object({
156
+ anchor: z.string().describe('The BRAIN entry ID to anchor the timeline window on.'),
157
+ depthBefore: z
158
+ .number()
159
+ .int()
160
+ .nonnegative()
161
+ .optional()
162
+ .describe('How many entries before the anchor to include.'),
163
+ depthAfter: z
164
+ .number()
165
+ .int()
166
+ .nonnegative()
167
+ .optional()
168
+ .describe('How many entries after the anchor to include.'),
169
+ }),
170
+ execute: async (rawArgs) => {
171
+ const anchor = String(rawArgs.anchor);
172
+ const depthBefore = typeof rawArgs.depthBefore === 'number' ? rawArgs.depthBefore : undefined;
173
+ const depthAfter = typeof rawArgs.depthAfter === 'number' ? rawArgs.depthAfter : undefined;
174
+ const result = await memory.timeline({ anchor, depthBefore, depthAfter }, projectRoot);
175
+ return unwrapEngineResult(result);
176
+ },
177
+ });
178
+ }
179
+ /**
180
+ * Self-registration marker (AC1) — the identifier the
181
+ * {@link AgentToolRegistry.discover} bounded source scan greps for. Aliases
182
+ * {@link registerMemoryAgentTools} so a future scan-dir discovery (or the
183
+ * built-in aggregator) can call it uniformly with the other agent-tool modules.
184
+ *
185
+ * @param registry - The registry to populate.
186
+ */
187
+ export function registerAgentTools(registry) {
188
+ registerMemoryAgentTools(registry);
189
+ }
190
+ //# sourceMappingURL=memory-agent-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-agent-tools.js","sourceRoot":"","sources":["../../src/tools/memory-agent-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Pseudo-terminal (PTY) shell runner (T1741 · epic T11456 · SG-TOOLS).
3
+ *
4
+ * The `terminal` toolset's execution backend. Runs a command under a PTY when
5
+ * the OPTIONAL `node-pty` native dependency is loadable, otherwise transparently
6
+ * degrades to a plain `child_process.spawn` (the {@link defaultShellExecutor}
7
+ * path) so the tool ALWAYS works without a heavy native dep. `node-pty` is
8
+ * loaded lazily via dynamic `import()` inside the runner — NEVER at module
9
+ * import — so this file is import-time side-effect-free (and adds no startup
10
+ * cost / hard dependency).
11
+ *
12
+ * The child runs under the SCRUBBED, explicitly-constructed environment from
13
+ * {@link scrubSubprocessEnv} (same security posture as the non-PTY path): the
14
+ * daemon's secrets are never inherited and a Pi-controlled loader hook / PATH
15
+ * can never reach the spawned process. This runner is invoked ONLY from the
16
+ * guard chokepoint ({@link ./guard.js}), so the command denylist applies before
17
+ * any process is spawned — there is no raw bypass.
18
+ *
19
+ * @epic T11456
20
+ * @task T1741
21
+ * @see ./guard.js — the deny-first chokepoint that wraps this runner
22
+ */
23
+ import type { RunShellInput, RunShellResult } from '@cleocode/contracts/tools/agent-tools';
24
+ /**
25
+ * Run a command under a PTY when possible, else a non-PTY spawn.
26
+ *
27
+ * - `spawn` mode → always {@link runSpawn}.
28
+ * - `pty` / `auto` mode → attempt {@link loadNodePty}; on success {@link runWithPty},
29
+ * otherwise degrade to {@link runSpawn} with `ptyFellBack: true`.
30
+ *
31
+ * The actual process is always launched under the scrubbed subprocess env. This
32
+ * function performs NO policy decision of its own — it is the executor the guard
33
+ * chokepoint ({@link ./guard.js}) invokes AFTER its denylist check passes.
34
+ *
35
+ * @param input - {@link RunShellInput}.
36
+ * @returns The {@link RunShellResult}.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * const res = await runPty({ command: 'echo', args: ['hi'], mode: 'auto' });
41
+ * // res.mode === 'pty' when node-pty is installed, else 'spawn' (ptyFellBack: true)
42
+ * ```
43
+ */
44
+ export declare function runPty(input: RunShellInput): Promise<RunShellResult>;
45
+ //# sourceMappingURL=pty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/tools/pty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AA+I3F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAU1E"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Pseudo-terminal (PTY) shell runner (T1741 · epic T11456 · SG-TOOLS).
3
+ *
4
+ * The `terminal` toolset's execution backend. Runs a command under a PTY when
5
+ * the OPTIONAL `node-pty` native dependency is loadable, otherwise transparently
6
+ * degrades to a plain `child_process.spawn` (the {@link defaultShellExecutor}
7
+ * path) so the tool ALWAYS works without a heavy native dep. `node-pty` is
8
+ * loaded lazily via dynamic `import()` inside the runner — NEVER at module
9
+ * import — so this file is import-time side-effect-free (and adds no startup
10
+ * cost / hard dependency).
11
+ *
12
+ * The child runs under the SCRUBBED, explicitly-constructed environment from
13
+ * {@link scrubSubprocessEnv} (same security posture as the non-PTY path): the
14
+ * daemon's secrets are never inherited and a Pi-controlled loader hook / PATH
15
+ * can never reach the spawned process. This runner is invoked ONLY from the
16
+ * guard chokepoint ({@link ./guard.js}), so the command denylist applies before
17
+ * any process is spawned — there is no raw bypass.
18
+ *
19
+ * @epic T11456
20
+ * @task T1741
21
+ * @see ./guard.js — the deny-first chokepoint that wraps this runner
22
+ */
23
+ import { spawn } from 'node:child_process';
24
+ import { getLogger } from '../logger.js';
25
+ import { scrubSubprocessEnv } from './env-scrub.js';
26
+ const log = getLogger('tool-pty');
27
+ /** Default PTY geometry. */
28
+ const DEFAULT_COLS = 80;
29
+ const DEFAULT_ROWS = 24;
30
+ /**
31
+ * Attempt to lazily load `node-pty`. Returns `null` when the optional dep is not
32
+ * installed or fails to load (any reason), so the caller can degrade to spawn.
33
+ *
34
+ * The import specifier is held in a variable so bundlers/TS do not treat the
35
+ * missing optional dep as a hard, statically-resolved dependency.
36
+ *
37
+ * @returns The loaded module shape, or `null` when unavailable.
38
+ */
39
+ async function loadNodePty() {
40
+ const specifier = 'node-pty';
41
+ try {
42
+ const mod = await import(specifier);
43
+ const candidate = mod.default ?? mod;
44
+ if (candidate !== null &&
45
+ typeof candidate === 'object' &&
46
+ typeof candidate.spawn === 'function') {
47
+ return candidate;
48
+ }
49
+ return null;
50
+ }
51
+ catch (err) {
52
+ log.debug({ err }, 'node-pty not loadable — falling back to non-PTY spawn');
53
+ return null;
54
+ }
55
+ }
56
+ /**
57
+ * Run a command under a non-PTY `spawn`, capturing stdout/stderr/exit-code.
58
+ * This is the always-available fallback when `node-pty` is absent or `spawn`
59
+ * mode was explicitly requested.
60
+ *
61
+ * @param input - {@link RunShellInput}.
62
+ * @param ptyFellBack - Whether this spawn is a fallback from a requested PTY.
63
+ * @returns The {@link RunShellResult} (`mode: 'spawn'`).
64
+ */
65
+ function runSpawn(input, ptyFellBack) {
66
+ return new Promise((resolve, reject) => {
67
+ const child = spawn(input.command, [...(input.args ?? [])], {
68
+ cwd: input.cwd,
69
+ env: scrubSubprocessEnv({ extra: input.env }),
70
+ timeout: input.timeoutMs,
71
+ shell: false,
72
+ });
73
+ let stdout = '';
74
+ let stderr = '';
75
+ child.stdout?.on('data', (d) => {
76
+ stdout += d.toString('utf8');
77
+ });
78
+ child.stderr?.on('data', (d) => {
79
+ stderr += d.toString('utf8');
80
+ });
81
+ child.on('error', reject);
82
+ child.on('close', (code) => {
83
+ resolve({ stdout, stderr, code, mode: 'spawn', ptyFellBack });
84
+ });
85
+ });
86
+ }
87
+ /**
88
+ * Run a command under a PTY via the lazily-loaded `node-pty`. The PTY interleaves
89
+ * stdout + stderr on a single stream (as a real terminal does), so the result's
90
+ * `stderr` is empty and all output lands in `stdout`.
91
+ *
92
+ * @param pty - The loaded `node-pty` module.
93
+ * @param input - {@link RunShellInput}.
94
+ * @returns The {@link RunShellResult} (`mode: 'pty'`).
95
+ */
96
+ function runWithPty(pty, input) {
97
+ return new Promise((resolve, reject) => {
98
+ let proc;
99
+ try {
100
+ proc = pty.spawn(input.command, [...(input.args ?? [])], {
101
+ name: 'xterm-256color',
102
+ cols: input.cols ?? DEFAULT_COLS,
103
+ rows: input.rows ?? DEFAULT_ROWS,
104
+ cwd: input.cwd,
105
+ env: scrubSubprocessEnv({ extra: input.env }),
106
+ });
107
+ }
108
+ catch (err) {
109
+ reject(err instanceof Error ? err : new Error(String(err)));
110
+ return;
111
+ }
112
+ let stdout = '';
113
+ let timer;
114
+ if (typeof input.timeoutMs === 'number' && input.timeoutMs > 0) {
115
+ timer = setTimeout(() => {
116
+ proc.kill();
117
+ }, input.timeoutMs);
118
+ }
119
+ proc.onData((data) => {
120
+ stdout += data;
121
+ });
122
+ proc.onExit(({ exitCode, signal }) => {
123
+ if (timer)
124
+ clearTimeout(timer);
125
+ resolve({
126
+ stdout,
127
+ stderr: '',
128
+ code: typeof signal === 'number' && signal > 0 ? null : exitCode,
129
+ mode: 'pty',
130
+ ptyFellBack: false,
131
+ });
132
+ });
133
+ });
134
+ }
135
+ /**
136
+ * Run a command under a PTY when possible, else a non-PTY spawn.
137
+ *
138
+ * - `spawn` mode → always {@link runSpawn}.
139
+ * - `pty` / `auto` mode → attempt {@link loadNodePty}; on success {@link runWithPty},
140
+ * otherwise degrade to {@link runSpawn} with `ptyFellBack: true`.
141
+ *
142
+ * The actual process is always launched under the scrubbed subprocess env. This
143
+ * function performs NO policy decision of its own — it is the executor the guard
144
+ * chokepoint ({@link ./guard.js}) invokes AFTER its denylist check passes.
145
+ *
146
+ * @param input - {@link RunShellInput}.
147
+ * @returns The {@link RunShellResult}.
148
+ *
149
+ * @example
150
+ * ```ts
151
+ * const res = await runPty({ command: 'echo', args: ['hi'], mode: 'auto' });
152
+ * // res.mode === 'pty' when node-pty is installed, else 'spawn' (ptyFellBack: true)
153
+ * ```
154
+ */
155
+ export async function runPty(input) {
156
+ const mode = input.mode ?? 'auto';
157
+ if (mode === 'spawn') {
158
+ return runSpawn(input, false);
159
+ }
160
+ const pty = await loadNodePty();
161
+ if (pty === null) {
162
+ return runSpawn(input, true);
163
+ }
164
+ return runWithPty(pty, input);
165
+ }
166
+ //# sourceMappingURL=pty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/tools/pty.ts"],"names":[],"mappings":"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"}