@capybara-hq/kernel 0.1.0-rc.4 → 0.1.0-rc.6

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 (534) hide show
  1. package/bootstrap.json +61 -5
  2. package/dist/admin/admin.controller.d.ts +51 -14
  3. package/dist/admin/admin.controller.js +60 -19
  4. package/dist/admin/extensions.controller.d.ts +16 -2
  5. package/dist/admin/extensions.controller.js +26 -6
  6. package/dist/admin/setup-lock.d.ts +1 -1
  7. package/dist/admin/setup-lock.js +1 -1
  8. package/dist/admin/setup.controller.d.ts +1 -1
  9. package/dist/admin/setup.controller.js +1 -1
  10. package/dist/admin/setup.service.d.ts +4 -4
  11. package/dist/admin/setup.service.js +8 -8
  12. package/dist/agents/agent-lookup.d.ts +16 -0
  13. package/dist/agents/agent-lookup.js +11 -0
  14. package/dist/agents/agents.controller.d.ts +76 -1
  15. package/dist/agents/agents.controller.js +90 -11
  16. package/dist/agents/agents.module.d.ts +4 -1
  17. package/dist/agents/agents.module.js +32 -6
  18. package/dist/agents/agents.service.d.ts +54 -23
  19. package/dist/agents/agents.service.js +180 -76
  20. package/dist/agents/definition.d.ts +49 -0
  21. package/dist/agents/definition.js +45 -0
  22. package/dist/agents/from-template.d.ts +106 -0
  23. package/dist/agents/from-template.js +649 -0
  24. package/dist/agents/from-template.service.d.ts +60 -0
  25. package/dist/agents/from-template.service.js +161 -0
  26. package/dist/agents/models.controller.d.ts +34 -5
  27. package/dist/agents/models.controller.js +50 -6
  28. package/dist/agents/org-templates.d.ts +176 -0
  29. package/dist/agents/org-templates.js +827 -0
  30. package/dist/agents/pending-connector-requests.d.ts +77 -0
  31. package/dist/agents/pending-connector-requests.js +215 -0
  32. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  33. package/dist/agents/pending-connectors.controller.js +91 -0
  34. package/dist/agents/pending-connectors.service.d.ts +62 -0
  35. package/dist/agents/pending-connectors.service.js +282 -0
  36. package/dist/agents/readiness.controller.d.ts +5 -5
  37. package/dist/agents/readiness.controller.js +6 -6
  38. package/dist/agents/templates.controller.d.ts +86 -5
  39. package/dist/agents/templates.controller.js +171 -7
  40. package/dist/agents/templates.d.ts +127 -23
  41. package/dist/agents/templates.js +475 -52
  42. package/dist/background/background.module.js +8 -1
  43. package/dist/background/finish.d.ts +3 -2
  44. package/dist/background/launch-lock.d.ts +4 -3
  45. package/dist/background/launch-lock.js +4 -3
  46. package/dist/background/poll.job.d.ts +9 -6
  47. package/dist/background/poll.job.js +30 -22
  48. package/dist/background/session.d.ts +13 -2
  49. package/dist/background/session.js +13 -0
  50. package/dist/background/stop.d.ts +12 -6
  51. package/dist/background/stop.js +57 -39
  52. package/dist/background/store.d.ts +18 -6
  53. package/dist/background/store.js +12 -6
  54. package/dist/background/tasks.service.d.ts +15 -5
  55. package/dist/background/tasks.service.js +42 -17
  56. package/dist/background/wake-rules.d.ts +27 -18
  57. package/dist/background/wake-rules.js +52 -22
  58. package/dist/background/wake.d.ts +13 -11
  59. package/dist/background/wake.js +20 -14
  60. package/dist/catalog/admin-catalog.controller.d.ts +129 -30
  61. package/dist/catalog/admin-catalog.controller.js +213 -42
  62. package/dist/catalog/catalog-content.d.ts +58 -32
  63. package/dist/catalog/catalog-content.js +34 -8
  64. package/dist/catalog/catalog-import.module.d.ts +7 -0
  65. package/dist/catalog/catalog-import.module.js +60 -0
  66. package/dist/catalog/catalog-items.d.ts +111 -7
  67. package/dist/catalog/catalog-items.js +279 -13
  68. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  69. package/dist/catalog/catalog-scope.service.js +1116 -0
  70. package/dist/catalog/catalog.module.d.ts +7 -9
  71. package/dist/catalog/catalog.module.js +41 -31
  72. package/dist/catalog/catalog.service.d.ts +101 -29
  73. package/dist/catalog/catalog.service.js +104 -106
  74. package/dist/catalog/cli.d.ts +11 -1
  75. package/dist/catalog/cli.js +26 -1
  76. package/dist/catalog/component-promotion.d.ts +96 -0
  77. package/dist/catalog/component-promotion.js +395 -0
  78. package/dist/catalog/component-scope.controller.d.ts +152 -0
  79. package/dist/catalog/component-scope.controller.js +287 -0
  80. package/dist/catalog/component-scope.service.d.ts +303 -0
  81. package/dist/catalog/component-scope.service.js +936 -0
  82. package/dist/catalog/component-state.d.ts +174 -0
  83. package/dist/catalog/component-state.js +437 -0
  84. package/dist/catalog/job-ids.d.ts +30 -0
  85. package/dist/catalog/job-ids.js +25 -0
  86. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  87. package/dist/catalog/marketplaces.controller.d.ts +22 -5
  88. package/dist/catalog/marketplaces.controller.js +56 -7
  89. package/dist/catalog/marketplaces.service.d.ts +54 -14
  90. package/dist/catalog/marketplaces.service.js +71 -22
  91. package/dist/catalog/org-catalog.controller.d.ts +125 -34
  92. package/dist/catalog/org-catalog.controller.js +181 -65
  93. package/dist/catalog/org-catalog.service.d.ts +65 -33
  94. package/dist/catalog/org-catalog.service.js +324 -157
  95. package/dist/catalog/org-extension-switch.d.ts +41 -0
  96. package/dist/catalog/org-extension-switch.js +115 -0
  97. package/dist/catalog/org-extension.controller.d.ts +119 -0
  98. package/dist/catalog/org-extension.controller.js +266 -0
  99. package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
  100. package/dist/catalog/org-plugin-uploads.controller.js +213 -0
  101. package/dist/catalog/org-plugin-uploads.d.ts +63 -0
  102. package/dist/catalog/org-plugin-uploads.js +116 -0
  103. package/dist/catalog/owned-items.d.ts +184 -0
  104. package/dist/catalog/owned-items.js +789 -0
  105. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  106. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  107. package/dist/catalog/ownership.d.ts +172 -0
  108. package/dist/catalog/ownership.js +326 -0
  109. package/dist/catalog/platform-components.d.ts +221 -0
  110. package/dist/catalog/platform-components.js +761 -0
  111. package/dist/catalog/platform-migration.d.ts +115 -0
  112. package/dist/catalog/platform-migration.js +582 -0
  113. package/dist/catalog/plugin-import.d.ts +178 -34
  114. package/dist/catalog/plugin-import.js +622 -82
  115. package/dist/catalog/plugin-install.d.ts +185 -41
  116. package/dist/catalog/plugin-install.js +758 -126
  117. package/dist/catalog/plugin-upgrade.d.ts +260 -225
  118. package/dist/catalog/plugin-upgrade.js +1147 -1136
  119. package/dist/catalog/request-rules.d.ts +65 -0
  120. package/dist/catalog/request-rules.js +217 -0
  121. package/dist/catalog/requests.service.d.ts +193 -118
  122. package/dist/catalog/requests.service.js +526 -343
  123. package/dist/catalog/reserved-names.d.ts +8 -0
  124. package/dist/catalog/reserved-names.js +42 -0
  125. package/dist/catalog/scope-orgs.d.ts +21 -0
  126. package/dist/catalog/scope-orgs.js +67 -0
  127. package/dist/catalog/scope-state.d.ts +35 -0
  128. package/dist/catalog/scope-state.js +87 -0
  129. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  130. package/dist/catalog/scope-sync-workers.js +29 -0
  131. package/dist/catalog/scope-sync.d.ts +176 -0
  132. package/dist/catalog/scope-sync.js +576 -0
  133. package/dist/catalog/scope.d.ts +42 -0
  134. package/dist/catalog/scope.js +42 -0
  135. package/dist/catalog/unshare.d.ts +22 -0
  136. package/dist/catalog/unshare.js +118 -0
  137. package/dist/channels/actions.js +1 -0
  138. package/dist/channels/cards.js +20 -2
  139. package/dist/channels/channels.module.js +2 -0
  140. package/dist/channels/inbound.d.ts +9 -1
  141. package/dist/channels/inbound.js +67 -5
  142. package/dist/channels/phrases.d.ts +35 -0
  143. package/dist/channels/phrases.js +29 -0
  144. package/dist/config/docs.js +3 -1
  145. package/dist/config/schema.d.ts +10 -2
  146. package/dist/config/schema.js +70 -22
  147. package/dist/conversations/access.d.ts +6 -4
  148. package/dist/conversations/access.js +27 -5
  149. package/dist/conversations/agent-tree.d.ts +46 -0
  150. package/dist/conversations/agent-tree.js +92 -0
  151. package/dist/conversations/conversations.controller.d.ts +43 -18
  152. package/dist/conversations/conversations.controller.js +79 -38
  153. package/dist/conversations/conversations.module.d.ts +1 -1
  154. package/dist/conversations/conversations.module.js +7 -7
  155. package/dist/conversations/conversations.service.d.ts +73 -15
  156. package/dist/conversations/conversations.service.js +115 -35
  157. package/dist/conversations/environment-status.d.ts +24 -0
  158. package/dist/conversations/environment-status.js +71 -0
  159. package/dist/conversations/event-log.d.ts +20 -5
  160. package/dist/conversations/event-log.js +60 -0
  161. package/dist/conversations/events.d.ts +84 -2
  162. package/dist/conversations/events.js +91 -17
  163. package/dist/conversations/queue.service.d.ts +1 -1
  164. package/dist/conversations/queue.service.js +5 -0
  165. package/dist/conversations/titles.d.ts +5 -3
  166. package/dist/conversations/titles.js +21 -8
  167. package/dist/conversations/tree.d.ts +17 -0
  168. package/dist/conversations/tree.js +42 -0
  169. package/dist/ctx/create-ctx.d.ts +20 -1
  170. package/dist/ctx/create-ctx.js +38 -7
  171. package/dist/db/kernel-schema.d.ts +386 -18
  172. package/dist/environments/access.d.ts +41 -0
  173. package/dist/environments/access.js +77 -0
  174. package/dist/environments/conversation-environments.d.ts +61 -0
  175. package/dist/environments/conversation-environments.js +170 -0
  176. package/dist/environments/dto.d.ts +25 -0
  177. package/dist/environments/dto.js +12 -0
  178. package/dist/environments/environments.controller.d.ts +33 -0
  179. package/dist/environments/environments.controller.js +110 -0
  180. package/dist/environments/environments.module.d.ts +8 -0
  181. package/dist/environments/environments.module.js +27 -0
  182. package/dist/environments/environments.service.d.ts +153 -0
  183. package/dist/environments/environments.service.js +541 -0
  184. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  185. package/dist/environments/legacy-cleanup.job.js +141 -0
  186. package/dist/errors.d.ts +85 -2
  187. package/dist/errors.js +85 -2
  188. package/dist/evals/reconstruct.d.ts +18 -9
  189. package/dist/evals/reconstruct.js +26 -7
  190. package/dist/evals/run-replay.d.ts +4 -2
  191. package/dist/evals/run-replay.js +20 -6
  192. package/dist/evals/runs.service.d.ts +2 -1
  193. package/dist/evals/runs.service.js +13 -12
  194. package/dist/evals/step-replay.d.ts +4 -6
  195. package/dist/evals/step-replay.js +4 -3
  196. package/dist/evals/trajectory.service.d.ts +8 -3
  197. package/dist/evals/trajectory.service.js +26 -14
  198. package/dist/evals/worker.d.ts +5 -5
  199. package/dist/evals/worker.js +9 -3
  200. package/dist/extensions/admin-ops.d.ts +36 -10
  201. package/dist/extensions/admin-ops.js +65 -42
  202. package/dist/extensions/admin-view.d.ts +37 -10
  203. package/dist/extensions/admin-view.js +103 -20
  204. package/dist/extensions/bootstrap.d.ts +17 -4
  205. package/dist/extensions/bootstrap.js +70 -9
  206. package/dist/extensions/cli.d.ts +12 -0
  207. package/dist/extensions/cli.js +11 -2
  208. package/dist/extensions/config-hash.d.ts +10 -0
  209. package/dist/extensions/config-hash.js +38 -0
  210. package/dist/extensions/deployment-config.d.ts +28 -5
  211. package/dist/extensions/deployment-config.js +48 -7
  212. package/dist/extensions/effective-config.d.ts +127 -0
  213. package/dist/extensions/effective-config.js +368 -0
  214. package/dist/extensions/extensions.module.js +11 -11
  215. package/dist/extensions/hooks.d.ts +37 -4
  216. package/dist/extensions/hooks.js +82 -16
  217. package/dist/extensions/host.d.ts +24 -10
  218. package/dist/extensions/host.js +49 -54
  219. package/dist/extensions/installs.d.ts +20 -8
  220. package/dist/extensions/installs.js +37 -15
  221. package/dist/extensions/org-config.d.ts +75 -6
  222. package/dist/extensions/org-config.js +184 -32
  223. package/dist/extensions/org-levels.d.ts +37 -0
  224. package/dist/extensions/org-levels.js +71 -0
  225. package/dist/extensions/org-overrides.d.ts +151 -0
  226. package/dist/extensions/org-overrides.js +524 -0
  227. package/dist/extensions/permission-view.d.ts +16 -4
  228. package/dist/extensions/permission-view.js +4 -4
  229. package/dist/extensions/plugin-items.d.ts +21 -0
  230. package/dist/extensions/plugin-items.js +42 -0
  231. package/dist/extensions/point-defaults.d.ts +12 -5
  232. package/dist/extensions/point-defaults.js +37 -9
  233. package/dist/extensions/resolve.d.ts +5 -1
  234. package/dist/extensions/resolve.js +15 -2
  235. package/dist/extensions/state.module.d.ts +9 -0
  236. package/dist/extensions/state.module.js +38 -0
  237. package/dist/files/previewers.d.ts +8 -1
  238. package/dist/files/previewers.js +35 -6
  239. package/dist/http/api.module.js +25 -3
  240. package/dist/http/app.d.ts +11 -2
  241. package/dist/http/app.js +31 -5
  242. package/dist/http/plugin-dispatch.d.ts +4 -1
  243. package/dist/http/plugin-dispatch.js +14 -2
  244. package/dist/identity/accounts.d.ts +29 -29
  245. package/dist/identity/accounts.js +47 -47
  246. package/dist/identity/audit.d.ts +2 -1
  247. package/dist/identity/auth.guard.d.ts +13 -5
  248. package/dist/identity/auth.guard.js +26 -9
  249. package/dist/identity/identity.module.d.ts +1 -1
  250. package/dist/identity/identity.module.js +4 -4
  251. package/dist/identity/me.controller.js +1 -1
  252. package/dist/identity/principal.d.ts +3 -3
  253. package/dist/identity/principal.js +3 -3
  254. package/dist/identity/settings.d.ts +22 -11
  255. package/dist/identity/settings.js +53 -18
  256. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  257. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  258. package/dist/inbox/inbox.module.d.ts +4 -1
  259. package/dist/inbox/inbox.module.js +7 -3
  260. package/dist/inbox/inbox.service.d.ts +62 -3
  261. package/dist/inbox/inbox.service.js +74 -4
  262. package/dist/inbox/org-notices.d.ts +63 -0
  263. package/dist/inbox/org-notices.js +91 -0
  264. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  265. package/dist/inbox/platform-inbox.controller.js +58 -0
  266. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  267. package/dist/inbox/platform-inbox.service.js +263 -0
  268. package/dist/inbox/platform-notices.d.ts +19 -0
  269. package/dist/inbox/platform-notices.js +9 -0
  270. package/dist/index.d.ts +1 -1
  271. package/dist/index.js +1 -1
  272. package/dist/infra/cli/kernel-cli.module.js +9 -1
  273. package/dist/infra/config/kernel-config.service.js +24 -1
  274. package/dist/infra/database/xact-lock.d.ts +1 -1
  275. package/dist/infra/database/xact-lock.js +1 -1
  276. package/dist/infra/events/kernel-events.d.ts +19 -2
  277. package/dist/infra/queue/add-job-once.d.ts +14 -0
  278. package/dist/infra/queue/add-job-once.js +16 -0
  279. package/dist/kernel.module.js +6 -0
  280. package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
  281. package/dist/lifecycle/kernel-lifecycle.js +4 -4
  282. package/dist/models/embeddings.d.ts +82 -0
  283. package/dist/models/embeddings.js +326 -0
  284. package/dist/models/enablement.controller.d.ts +40 -0
  285. package/dist/models/enablement.controller.js +74 -0
  286. package/dist/models/enablement.d.ts +99 -0
  287. package/dist/models/enablement.js +263 -0
  288. package/dist/models/models.module.d.ts +5 -1
  289. package/dist/models/models.module.js +16 -4
  290. package/dist/models/prices.d.ts +5 -5
  291. package/dist/models/prices.js +4 -4
  292. package/dist/models/purposes.controller.d.ts +6 -4
  293. package/dist/models/purposes.controller.js +13 -7
  294. package/dist/models/purposes.d.ts +37 -12
  295. package/dist/models/purposes.js +63 -17
  296. package/dist/orgs/directory-sync.d.ts +14 -5
  297. package/dist/orgs/directory-sync.js +41 -17
  298. package/dist/orgs/offboarding.d.ts +9 -7
  299. package/dist/orgs/offboarding.js +28 -17
  300. package/dist/orgs/org-lock.d.ts +5 -0
  301. package/dist/orgs/org-lock.js +13 -0
  302. package/dist/orgs/org.guard.d.ts +10 -0
  303. package/dist/orgs/org.guard.js +43 -32
  304. package/dist/orgs/orgs.module.js +3 -0
  305. package/dist/orgs/orgs.service.d.ts +20 -7
  306. package/dist/orgs/orgs.service.js +32 -12
  307. package/dist/orgs/roles.d.ts +1 -1
  308. package/dist/orgs/roles.js +5 -1
  309. package/dist/orgs/settings.controller.d.ts +1 -1
  310. package/dist/orgs/settings.service.d.ts +15 -3
  311. package/dist/orgs/settings.service.js +6 -2
  312. package/dist/overrides.d.ts +3 -0
  313. package/dist/overrides.js +2 -0
  314. package/dist/platform/actor.d.ts +48 -0
  315. package/dist/platform/actor.js +100 -0
  316. package/dist/platform/agent-docs.d.ts +18 -0
  317. package/dist/platform/agent-docs.js +59 -0
  318. package/dist/platform/availability.d.ts +14 -0
  319. package/dist/platform/availability.js +43 -0
  320. package/dist/platform/errors.d.ts +11 -0
  321. package/dist/platform/errors.js +26 -0
  322. package/dist/platform/exclusions.d.ts +12 -0
  323. package/dist/platform/exclusions.js +1405 -0
  324. package/dist/platform/method.d.ts +6 -0
  325. package/dist/platform/method.js +15 -0
  326. package/dist/platform/operation.d.ts +92 -0
  327. package/dist/platform/operation.js +35 -0
  328. package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
  329. package/dist/platform/ops/agent-templates.ops.js +92 -0
  330. package/dist/platform/ops/agents.ops.d.ts +19 -0
  331. package/dist/platform/ops/agents.ops.js +294 -0
  332. package/dist/platform/ops/connectors.ops.d.ts +15 -0
  333. package/dist/platform/ops/connectors.ops.js +126 -0
  334. package/dist/platform/ops/errors.d.ts +11 -0
  335. package/dist/platform/ops/errors.js +22 -0
  336. package/dist/platform/ops/extensions.ops.d.ts +19 -0
  337. package/dist/platform/ops/extensions.ops.js +116 -0
  338. package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
  339. package/dist/platform/ops/marketplaces.ops.js +157 -0
  340. package/dist/platform/ops/paging.d.ts +14 -0
  341. package/dist/platform/ops/paging.js +20 -0
  342. package/dist/platform/ops/platform.ops.d.ts +23 -0
  343. package/dist/platform/ops/platform.ops.js +158 -0
  344. package/dist/platform/ops/plugins.ops.d.ts +33 -0
  345. package/dist/platform/ops/plugins.ops.js +377 -0
  346. package/dist/platform/ops/requests.ops.d.ts +14 -0
  347. package/dist/platform/ops/requests.ops.js +153 -0
  348. package/dist/platform/ops/role.d.ts +4 -0
  349. package/dist/platform/ops/role.js +10 -0
  350. package/dist/platform/ops/skills.ops.d.ts +13 -0
  351. package/dist/platform/ops/skills.ops.js +98 -0
  352. package/dist/platform/ops/summary.d.ts +10 -0
  353. package/dist/platform/ops/summary.js +18 -0
  354. package/dist/platform/platform-ops.module.d.ts +7 -0
  355. package/dist/platform/platform-ops.module.js +55 -0
  356. package/dist/platform/platform.module.d.ts +8 -0
  357. package/dist/platform/platform.module.js +25 -0
  358. package/dist/platform/redact-orgs.d.ts +7 -0
  359. package/dist/platform/redact-orgs.js +52 -0
  360. package/dist/platform/registry.d.ts +30 -0
  361. package/dist/platform/registry.js +111 -0
  362. package/dist/roles/worker-role.d.ts +6 -4
  363. package/dist/roles/worker-role.js +14 -7
  364. package/dist/roles/worker.module.d.ts +1 -1
  365. package/dist/roles/worker.module.js +9 -1
  366. package/dist/runtime/context/build.d.ts +6 -4
  367. package/dist/runtime/context/build.js +26 -7
  368. package/dist/runtime/context/claude-tools.d.ts +2 -1
  369. package/dist/runtime/context/claude-tools.js +5 -4
  370. package/dist/runtime/context/compaction.js +9 -0
  371. package/dist/runtime/context/reminders.d.ts +2 -0
  372. package/dist/runtime/context/reminders.js +2 -0
  373. package/dist/runtime/context/skills.js +9 -2
  374. package/dist/runtime/context/tool-changes.d.ts +27 -0
  375. package/dist/runtime/context/tool-changes.js +60 -0
  376. package/dist/runtime/hook-calls.d.ts +8 -1
  377. package/dist/runtime/hook-calls.js +40 -7
  378. package/dist/runtime/langgraph-loop.d.ts +3 -1
  379. package/dist/runtime/langgraph-loop.js +35 -17
  380. package/dist/runtime/loop.d.ts +32 -4
  381. package/dist/runtime/maintenance.d.ts +7 -4
  382. package/dist/runtime/maintenance.js +23 -8
  383. package/dist/runtime/model-call.d.ts +38 -11
  384. package/dist/runtime/model-call.js +97 -24
  385. package/dist/runtime/providers.d.ts +146 -32
  386. package/dist/runtime/providers.js +321 -67
  387. package/dist/runtime/run-control.d.ts +11 -1
  388. package/dist/runtime/run-control.js +12 -0
  389. package/dist/runtime/run-drafts.d.ts +85 -0
  390. package/dist/runtime/run-drafts.js +230 -0
  391. package/dist/runtime/run-jobs.d.ts +3 -5
  392. package/dist/runtime/run-jobs.js +3 -7
  393. package/dist/runtime/run-queue.d.ts +37 -3
  394. package/dist/runtime/run-queue.js +188 -11
  395. package/dist/runtime/run-worker.d.ts +12 -6
  396. package/dist/runtime/run-worker.js +58 -35
  397. package/dist/runtime/runtime.module.js +3 -0
  398. package/dist/runtime/step-log.d.ts +9 -4
  399. package/dist/runtime/step-log.js +8 -5
  400. package/dist/runtime/stream.controller.d.ts +23 -1
  401. package/dist/runtime/stream.controller.js +60 -3
  402. package/dist/runtime/stream.d.ts +4 -1
  403. package/dist/runtime/stream.js +27 -3
  404. package/dist/runtime/subagents/child.d.ts +55 -7
  405. package/dist/runtime/subagents/child.js +105 -7
  406. package/dist/runtime/subagents/definition.d.ts +12 -3
  407. package/dist/runtime/subagents/definition.js +46 -32
  408. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  409. package/dist/runtime/subagents/deliveries.js +228 -0
  410. package/dist/runtime/subagents/dispatch.d.ts +115 -26
  411. package/dist/runtime/subagents/dispatch.js +212 -141
  412. package/dist/runtime/subagents/limits.d.ts +24 -5
  413. package/dist/runtime/subagents/limits.js +40 -6
  414. package/dist/runtime/subagents/messages.d.ts +95 -0
  415. package/dist/runtime/subagents/messages.js +328 -0
  416. package/dist/runtime/subagents/preamble.d.ts +4 -4
  417. package/dist/runtime/subagents/preamble.js +9 -7
  418. package/dist/runtime/subagents/progress.d.ts +8 -6
  419. package/dist/runtime/subagents/progress.js +11 -6
  420. package/dist/runtime/subagents/render.d.ts +30 -0
  421. package/dist/runtime/subagents/render.js +53 -0
  422. package/dist/runtime/subagents/roster.d.ts +24 -7
  423. package/dist/runtime/subagents/roster.js +47 -11
  424. package/dist/runtime/subagents/skill-fork.d.ts +3 -2
  425. package/dist/runtime/subagents/skill-fork.js +8 -4
  426. package/dist/runtime/subagents/status.d.ts +14 -0
  427. package/dist/runtime/subagents/status.js +23 -0
  428. package/dist/runtime/subagents/subagents.service.d.ts +7 -4
  429. package/dist/runtime/subagents/subagents.service.js +11 -6
  430. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  431. package/dist/runtime/usage-report-jobs.js +158 -0
  432. package/dist/runtime/usage-report.d.ts +33 -38
  433. package/dist/runtime/usage-report.js +169 -96
  434. package/dist/runtime/waits.d.ts +140 -37
  435. package/dist/runtime/waits.js +394 -106
  436. package/dist/sandbox/jobs.d.ts +40 -13
  437. package/dist/sandbox/jobs.js +57 -20
  438. package/dist/sandbox/leases.d.ts +37 -54
  439. package/dist/sandbox/leases.js +71 -115
  440. package/dist/sandbox/providers.d.ts +2 -2
  441. package/dist/sandbox/providers.js +1 -1
  442. package/dist/sandbox/sandbox.module.d.ts +3 -2
  443. package/dist/sandbox/sandbox.module.js +4 -3
  444. package/dist/sandbox/sandbox.service.d.ts +229 -134
  445. package/dist/sandbox/sandbox.service.js +630 -409
  446. package/dist/skills/catalog.d.ts +3 -2
  447. package/dist/skills/catalog.js +21 -43
  448. package/dist/skills/changes.controller.d.ts +7 -0
  449. package/dist/skills/changes.controller.js +19 -1
  450. package/dist/skills/invoke.js +8 -3
  451. package/dist/skills/package.d.ts +20 -1
  452. package/dist/skills/package.js +28 -1
  453. package/dist/skills/skills.controller.d.ts +39 -4
  454. package/dist/skills/skills.controller.js +88 -10
  455. package/dist/skills/skills.module.js +10 -1
  456. package/dist/skills/skills.service.d.ts +106 -26
  457. package/dist/skills/skills.service.js +421 -75
  458. package/dist/skills/usable.d.ts +81 -0
  459. package/dist/skills/usable.js +379 -0
  460. package/dist/tools/approvals.service.d.ts +20 -2
  461. package/dist/tools/approvals.service.js +23 -4
  462. package/dist/tools/builtin-names.d.ts +21 -5
  463. package/dist/tools/builtin-names.js +30 -5
  464. package/dist/tools/builtins/agent.d.ts +23 -21
  465. package/dist/tools/builtins/agent.js +62 -55
  466. package/dist/tools/builtins/builtin-tools.d.ts +6 -2
  467. package/dist/tools/builtins/builtin-tools.js +37 -12
  468. package/dist/tools/builtins/handback.d.ts +28 -0
  469. package/dist/tools/builtins/handback.js +53 -0
  470. package/dist/tools/builtins/platform.d.ts +34 -0
  471. package/dist/tools/builtins/platform.js +362 -0
  472. package/dist/tools/builtins/sandbox/bash.js +13 -3
  473. package/dist/tools/builtins/sandbox/common.d.ts +43 -24
  474. package/dist/tools/builtins/sandbox/common.js +80 -45
  475. package/dist/tools/builtins/sandbox/edit.js +2 -2
  476. package/dist/tools/builtins/sandbox/glob.js +2 -2
  477. package/dist/tools/builtins/sandbox/grep.js +2 -4
  478. package/dist/tools/builtins/sandbox/index.d.ts +1 -1
  479. package/dist/tools/builtins/sandbox/index.js +1 -1
  480. package/dist/tools/builtins/sandbox/read.js +1 -1
  481. package/dist/tools/builtins/sandbox/task-output.d.ts +14 -3
  482. package/dist/tools/builtins/sandbox/task-output.js +30 -5
  483. package/dist/tools/builtins/sandbox/task-stop.js +2 -1
  484. package/dist/tools/builtins/sandbox/write.js +2 -2
  485. package/dist/tools/builtins/send-message.d.ts +56 -0
  486. package/dist/tools/builtins/send-message.js +100 -0
  487. package/dist/tools/builtins/skill-load.d.ts +22 -14
  488. package/dist/tools/builtins/skill-load.js +86 -57
  489. package/dist/tools/builtins/skill-write.js +1 -1
  490. package/dist/tools/builtins/web/extract.js +5 -1
  491. package/dist/tools/builtins/web/fetch.js +1 -0
  492. package/dist/tools/builtins/web/search.js +1 -0
  493. package/dist/tools/connectors.controller.d.ts +10 -0
  494. package/dist/tools/connectors.controller.js +12 -0
  495. package/dist/tools/connectors.service.d.ts +46 -5
  496. package/dist/tools/connectors.service.js +94 -15
  497. package/dist/tools/extension-tools.controller.d.ts +14 -0
  498. package/dist/tools/extension-tools.controller.js +37 -0
  499. package/dist/tools/info.d.ts +42 -1
  500. package/dist/tools/info.js +64 -1
  501. package/dist/tools/org-tool-switches.d.ts +74 -0
  502. package/dist/tools/org-tool-switches.js +184 -0
  503. package/dist/tools/pipeline.d.ts +46 -40
  504. package/dist/tools/pipeline.js +193 -364
  505. package/dist/tools/policy.d.ts +1 -1
  506. package/dist/tools/policy.js +36 -16
  507. package/dist/tools/registry.d.ts +98 -5
  508. package/dist/tools/registry.js +87 -9
  509. package/dist/tools/tools.module.js +12 -2
  510. package/dist/ui/views.d.ts +2 -1
  511. package/dist/ui/views.js +17 -3
  512. package/package.json +3 -3
  513. package/src/migrations/0074_subagent_tree.sql +50 -0
  514. package/src/migrations/0075_plugin_scope.sql +61 -0
  515. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  516. package/src/migrations/0077_scope_requests.sql +52 -0
  517. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  518. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  519. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  520. package/src/migrations/0081_platform_components.sql +129 -0
  521. package/src/migrations/0082_platform_migration.sql +33 -0
  522. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  523. package/src/migrations/0084_org_owned_items.sql +85 -0
  524. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  525. package/src/migrations/0086_org_layering.sql +30 -0
  526. package/src/migrations/0087_approval_summary.sql +6 -0
  527. package/src/migrations/0088_environments.sql +80 -0
  528. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  529. package/dist/catalog/upgrade-targets.d.ts +0 -56
  530. package/dist/catalog/upgrade-targets.js +0 -90
  531. package/dist/conversations/sandbox-status.d.ts +0 -24
  532. package/dist/conversations/sandbox-status.js +0 -52
  533. package/dist/extensions/org-config.controller.d.ts +0 -32
  534. package/dist/extensions/org-config.controller.js +0 -70
@@ -2,32 +2,59 @@ import type { Job, Queue } from "bullmq";
2
2
  import { LockService } from "../infra/lock/lock.service.js";
3
3
  import type { KernelLogger } from "../log.js";
4
4
  import { SandboxService } from "./sandbox.service.js";
5
- /** 空闲休眠扫描(每分钟,跨副本每个 tick 一次)。 */
5
+ /** The idle suspension sweep (every minute, once per tick across replicas). */
6
6
  export declare const SANDBOX_SUSPEND_JOB = "sandbox-suspend-idle";
7
- /** 不活跃销毁扫描(每小时,跨副本每个 tick 一次)。 */
7
+ /** The inactivity destruction sweep (hourly, once per tick across replicas). */
8
8
  export declare const SANDBOX_DESTROY_JOB = "sandbox-destroy-inactive";
9
- /** 一次性任务:立即销毁一批对话的沙箱(成员离职、删除 agent 后投递,数据 `{ conversationIds }`)。 */
9
+ /**
10
+ * One-off job: destroy a batch of environments now, instance and file system (environment
11
+ * deletion, offboarding; data `{ environmentIds }`).
12
+ */
10
13
  export declare const SANDBOX_DESTROY_FOR_JOB = "sandbox-destroy-for";
11
14
  /**
12
- * The producer of {@link SANDBOX_DESTROY_FOR_JOB} on the maintenance queue (BullMQ's own job ids, as
13
- * before: every enqueue is a new job, also after a batch failed all its attempts); `MaintenanceProcessor`
14
- * consumes it.
15
+ * One-off job: start an environment over with empty files (`resetFileSystem`; data
16
+ * `{ environmentId }`, job id {@link resetFilesJobId}).
17
+ */
18
+ export declare const SANDBOX_RESET_FILES_JOB = "sandbox-reset-files";
19
+ /**
20
+ * The deterministic id of an environment's reset job: a second request while one is waiting or
21
+ * running joins it (that reset still empties the files); once it ended, a new request is a new job.
22
+ */
23
+ export declare const resetFilesJobId: (environmentId: string) => string;
24
+ /**
25
+ * The producer of the sandbox maintenance jobs: {@link SANDBOX_DESTROY_FOR_JOB} (BullMQ's own job
26
+ * ids, as before: every enqueue is a new job, also after a batch failed all its attempts) and
27
+ * {@link SANDBOX_RESET_FILES_JOB}; `MaintenanceProcessor` consumes them.
15
28
  */
16
29
  export declare class SandboxJobs {
17
30
  private readonly queue;
18
31
  constructor(queue: Pick<Queue, "add">);
19
- /** Enqueues the destruction of these conversations' sandboxes: a failed batch is retried whole (destroying one already destroyed does nothing). */
20
- destroy(conversationIds: string[]): Promise<void>;
32
+ /**
33
+ * Enqueues the destruction of these environments: a failed batch is retried whole (destroying
34
+ * one already destroyed does nothing).
35
+ */
36
+ destroy(environmentIds: string[]): Promise<void>;
37
+ /**
38
+ * Enqueues the reset of an environment's files (see {@link resetFilesJobId}): retried on failure
39
+ * (the exclusive lease not obtained in time, the provider failing); a job that failed all its
40
+ * attempts is removed, so the id never blocks a later request.
41
+ */
42
+ resetFiles(environmentId: string): Promise<void>;
21
43
  }
22
44
  /**
23
- * The worker side of {@link SANDBOX_DESTROY_FOR_JOB}: `destroyFor` one by one; a failure is warned
24
- * and fails the job (the whole batch is retried) after the others were destroyed.
45
+ * The worker side of {@link SANDBOX_RESET_FILES_JOB}: `resetFileSystem` under the exclusive lease;
46
+ * a failure fails the job (retried).
47
+ */
48
+ export declare function runSandboxResetFiles(sandbox: Pick<SandboxService, "resetFileSystem">, job: Pick<Job, "data">): Promise<void>;
49
+ /**
50
+ * The worker side of {@link SANDBOX_DESTROY_FOR_JOB}: `destroyEnvironment` one by one; a failure is
51
+ * warned and fails the job (the whole batch is retried) after the others were destroyed.
25
52
  */
26
- export declare function runSandboxDestroyFor(sandbox: Pick<SandboxService, "destroyFor">, log: Pick<KernelLogger, "warn">, job: Pick<Job, "data">): Promise<void>;
53
+ export declare function runSandboxDestroyFor(sandbox: Pick<SandboxService, "destroyEnvironment">, log: Pick<KernelLogger, "warn">, job: Pick<Job, "data">): Promise<void>;
27
54
  /**
28
55
  * The sandbox sweeps (exactly once per tick across replicas): every minute the idle and overdue
29
- * running sandboxes are suspended, every hour the inactive ones and those of deleted orgs or
30
- * conversations are destroyed. Both do nothing without a sandbox provider. They replace the
56
+ * running instances are suspended, every hour the inactive instances are destroyed (files kept)
57
+ * and deleted environments, or those of deleted orgs, are destroyed with their files. Both do nothing without a sandbox provider. They replace the
31
58
  * maintenance schedulers `sandbox-suspend-idle-every-minute` and `sandbox-destroy-inactive-hourly`
32
59
  * (retired at worker start).
33
60
  */
@@ -14,31 +14,61 @@ import { LockedCron } from "../infra/schedule/locked-cron.decorator.js";
14
14
  import { KERNEL_LOGGER } from "../infra/tokens.js";
15
15
  import { MAINTENANCE_QUEUE_NAME } from "../runtime/maintenance-queue.js";
16
16
  import { SandboxService } from "./sandbox.service.js";
17
- /** 空闲休眠扫描(每分钟,跨副本每个 tick 一次)。 */
17
+ /** The idle suspension sweep (every minute, once per tick across replicas). */
18
18
  export const SANDBOX_SUSPEND_JOB = "sandbox-suspend-idle";
19
- /** 不活跃销毁扫描(每小时,跨副本每个 tick 一次)。 */
19
+ /** The inactivity destruction sweep (hourly, once per tick across replicas). */
20
20
  export const SANDBOX_DESTROY_JOB = "sandbox-destroy-inactive";
21
- /** 一次性任务:立即销毁一批对话的沙箱(成员离职、删除 agent 后投递,数据 `{ conversationIds }`)。 */
21
+ /**
22
+ * One-off job: destroy a batch of environments now, instance and file system (environment
23
+ * deletion, offboarding; data `{ environmentIds }`).
24
+ */
22
25
  export const SANDBOX_DESTROY_FOR_JOB = "sandbox-destroy-for";
23
26
  /**
24
- * The producer of {@link SANDBOX_DESTROY_FOR_JOB} on the maintenance queue (BullMQ's own job ids, as
25
- * before: every enqueue is a new job, also after a batch failed all its attempts); `MaintenanceProcessor`
26
- * consumes it.
27
+ * One-off job: start an environment over with empty files (`resetFileSystem`; data
28
+ * `{ environmentId }`, job id {@link resetFilesJobId}).
29
+ */
30
+ export const SANDBOX_RESET_FILES_JOB = "sandbox-reset-files";
31
+ /**
32
+ * The deterministic id of an environment's reset job: a second request while one is waiting or
33
+ * running joins it (that reset still empties the files); once it ended, a new request is a new job.
34
+ */
35
+ export const resetFilesJobId = (environmentId) => `${SANDBOX_RESET_FILES_JOB}-${environmentId}`;
36
+ /**
37
+ * The producer of the sandbox maintenance jobs: {@link SANDBOX_DESTROY_FOR_JOB} (BullMQ's own job
38
+ * ids, as before: every enqueue is a new job, also after a batch failed all its attempts) and
39
+ * {@link SANDBOX_RESET_FILES_JOB}; `MaintenanceProcessor` consumes them.
27
40
  */
28
41
  let SandboxJobs = class SandboxJobs {
29
42
  queue;
30
43
  constructor(queue) {
31
44
  this.queue = queue;
32
45
  }
33
- /** Enqueues the destruction of these conversations' sandboxes: a failed batch is retried whole (destroying one already destroyed does nothing). */
34
- async destroy(conversationIds) {
35
- await this.queue.add(SANDBOX_DESTROY_FOR_JOB, { conversationIds }, {
46
+ /**
47
+ * Enqueues the destruction of these environments: a failed batch is retried whole (destroying
48
+ * one already destroyed does nothing).
49
+ */
50
+ async destroy(environmentIds) {
51
+ await this.queue.add(SANDBOX_DESTROY_FOR_JOB, { environmentIds }, {
36
52
  attempts: 5,
37
53
  backoff: { type: "exponential", delay: 30_000 },
38
54
  removeOnComplete: true,
39
55
  removeOnFail: 100,
40
56
  });
41
57
  }
58
+ /**
59
+ * Enqueues the reset of an environment's files (see {@link resetFilesJobId}): retried on failure
60
+ * (the exclusive lease not obtained in time, the provider failing); a job that failed all its
61
+ * attempts is removed, so the id never blocks a later request.
62
+ */
63
+ async resetFiles(environmentId) {
64
+ await this.queue.add(SANDBOX_RESET_FILES_JOB, { environmentId }, {
65
+ jobId: resetFilesJobId(environmentId),
66
+ attempts: 5,
67
+ backoff: { type: "exponential", delay: 30_000 },
68
+ removeOnComplete: true,
69
+ removeOnFail: true,
70
+ });
71
+ }
42
72
  };
43
73
  SandboxJobs = __decorate([
44
74
  Injectable(),
@@ -46,11 +76,21 @@ SandboxJobs = __decorate([
46
76
  ], SandboxJobs);
47
77
  export { SandboxJobs };
48
78
  /**
49
- * The worker side of {@link SANDBOX_DESTROY_FOR_JOB}: `destroyFor` one by one; a failure is warned
50
- * and fails the job (the whole batch is retried) after the others were destroyed.
79
+ * The worker side of {@link SANDBOX_RESET_FILES_JOB}: `resetFileSystem` under the exclusive lease;
80
+ * a failure fails the job (retried).
81
+ */
82
+ export async function runSandboxResetFiles(sandbox, job) {
83
+ const id = job.data.environmentId;
84
+ if (typeof id !== "string")
85
+ return;
86
+ await sandbox.resetFileSystem(id);
87
+ }
88
+ /**
89
+ * The worker side of {@link SANDBOX_DESTROY_FOR_JOB}: `destroyEnvironment` one by one; a failure is
90
+ * warned and fails the job (the whole batch is retried) after the others were destroyed.
51
91
  */
52
92
  export async function runSandboxDestroyFor(sandbox, log, job) {
53
- const ids = job.data.conversationIds;
93
+ const ids = job.data.environmentIds;
54
94
  if (!Array.isArray(ids))
55
95
  return;
56
96
  let failed = 0;
@@ -58,23 +98,20 @@ export async function runSandboxDestroyFor(sandbox, log, job) {
58
98
  if (typeof id !== "string")
59
99
  continue;
60
100
  try {
61
- await sandbox.destroyFor(id);
101
+ await sandbox.destroyEnvironment(id);
62
102
  }
63
103
  catch (err) {
64
104
  failed++;
65
- log.warn("cannot destroy sandbox of an offboarded member; will retry", {
66
- conversationId: id,
67
- err,
68
- });
105
+ log.warn("cannot destroy environment; will retry", { environmentId: id, err });
69
106
  }
70
107
  }
71
108
  if (failed > 0)
72
- throw new Error(`${failed} of ${ids.length} sandboxes could not be destroyed`);
109
+ throw new Error(`${failed} of ${ids.length} environments could not be destroyed`);
73
110
  }
74
111
  /**
75
112
  * The sandbox sweeps (exactly once per tick across replicas): every minute the idle and overdue
76
- * running sandboxes are suspended, every hour the inactive ones and those of deleted orgs or
77
- * conversations are destroyed. Both do nothing without a sandbox provider. They replace the
113
+ * running instances are suspended, every hour the inactive instances are destroyed (files kept)
114
+ * and deleted environments, or those of deleted orgs, are destroyed with their files. Both do nothing without a sandbox provider. They replace the
78
115
  * maintenance schedulers `sandbox-suspend-idle-every-minute` and `sandbox-destroy-inactive-hourly`
79
116
  * (retired at worker start).
80
117
  */
@@ -3,21 +3,23 @@ import { ApiError } from "../errors.js";
3
3
  import { LockService } from "../infra/lock/lock.service.js";
4
4
  import type { KernelLogger } from "../log.js";
5
5
  /**
6
- * Shared and exclusive sandbox leases (sub-agents spec §10.3): the Redis protocol that lets several
7
- * holders use one conversation's running sandbox concurrently (shared leases: commands, file reads
8
- * and writes) while lifecycle changes (create, resume, rebuild, suspend, destroy) stay alone
9
- * (exclusive leases). Keys, conversation = the sandbox conversation:
6
+ * Shared and exclusive sandbox leases (sub-agents spec §10.3; environments spec §4.2): the Redis
7
+ * protocol that lets several holders (every conversation bound to the environment, and their
8
+ * sub-agents) use one environment's running instance concurrently (shared leases: commands, file
9
+ * reads and writes) while lifecycle changes (create, resume, rebuild, suspend, destroy, reset) stay
10
+ * alone (exclusive leases). Every `sandbox@2` provider runs commands concurrently and kills by tag,
11
+ * so there is no single-holder mode. Keys, env = the environment id:
10
12
  *
11
- * - `capk:sandbox:<conv>`: the lock key kept from before (rollout, §10.8): an exclusive holder's
12
- * token, or `shared` while shared leases exist. An older replica's `SET NX` therefore never gets
13
- * in while shared leases live, and its token blocks new shared leases.
14
- * - `capk:sandbox-users:<conv>`: sorted set of shared lease tokens scored by their expiry (ms, Redis
13
+ * - `capk:sandbox:<env>`: the lock key: an exclusive holder's token, or `shared` while shared
14
+ * leases exist.
15
+ * - `capk:sandbox-users:<env>`: sorted set of shared lease tokens scored by their expiry (ms, Redis
15
16
  * server clock).
16
- * - `capk:sandbox-intent:<conv>`: an exclusive waiter's token (writer preference); while it exists
17
+ * - `capk:sandbox-intent:<env>`: an exclusive waiter's token (writer preference); while it exists
17
18
  * no new shared lease is granted.
18
- * - `capk:sandbox-holders:<conv>`: hash token → expiry of holders that may have commands running
19
- * (the per-holder replacement of the single busy marker `capk:sandbox-busy:<conv>`, still read).
20
- * - `capk:sandbox-path:<conv>:<sha256hex(path)>`: a short per-path lease around the kernel's own
19
+ * - `capk:sandbox-holders:<env>`: hash token → expiry of holders that may have commands running;
20
+ * a record without a live lease is a crashed holder whose commands (tagged with its token) are
21
+ * killed by the next acquirer.
22
+ * - `capk:sandbox-path:<env>:<sha256hex(path)>`: a short per-path lease around the kernel's own
21
23
  * read-modify-write of one file.
22
24
  *
23
25
  * The first three keys are a {@link LockService} shared lease (`tryShared` / `tryExclusive`,
@@ -26,30 +28,17 @@ import type { KernelLogger } from "../log.js";
26
28
  * the renewal deadline (send time of the last successful renewal + 2/3 TTL): its `signal` aborts
27
29
  * with {@link SandboxLockLostError}.
28
30
  */
29
- /** Prefix of the lock key `capk:sandbox:<conversationId>`. */
31
+ /** Prefix of the lock key `capk:sandbox:<environmentId>`. */
30
32
  export declare const SANDBOX_LOCK_PREFIX = "capk:sandbox:";
31
33
  /** TTL of a lease (ms): renewed every TTL / 3 while held. */
32
34
  export declare const SANDBOX_LOCK_TTL_MS = 60000;
33
- /**
34
- * Prefix of the single "sandbox in use" marker of kernels before phase C,
35
- * `capk:sandbox-busy:<conversationId>`: present while such a holder ran commands. Found by an
36
- * exclusive acquirer, it means that holder crashed and its commands may still run.
37
- *
38
- * Holders of this kernel write it too, with the value {@link BUSY_V2}, while any holder record
39
- * exists (spec §10.8): this kernel ignores that value, and a replica from before phase C that
40
- * takes the lock after a new holder crashed sees a marker and kills everything, which is safe
41
- * because it only gets the lock when no shared lease is live.
42
- */
43
- export declare const SANDBOX_BUSY_PREFIX = "capk:sandbox-busy:";
44
- /** Value of the busy marker written by holders of this kernel (ignored by it). */
45
- export declare const BUSY_V2 = "v2";
46
- /** The sandbox of this conversation is busy: waited longer than `sandbox.lockWaitSeconds` (409). */
35
+ /** The environment's sandbox is busy: waited longer than `sandbox.lockWaitSeconds` (409). */
47
36
  export declare const sandboxBusy: () => ApiError;
48
37
  /** A lease was lost while held, or the record changed under it (generation mismatch). */
49
38
  export declare class SandboxLockLostError extends Error {
50
39
  /** `lock`: the lease was lost (renewal failed or none succeeded in time); `generation`: the record's fence changed. */
51
40
  readonly reason: "lock" | "generation";
52
- constructor(conversationId: string, reason?: "lock" | "generation");
41
+ constructor(environmentId: string, reason?: "lock" | "generation");
53
42
  }
54
43
  /** Another holder kept writing the same file longer than the path lease wait (model-visible text). */
55
44
  export declare class SandboxPathBusyError extends Error {
@@ -60,7 +49,7 @@ export type LeaseKind = "shared" | "exclusive";
60
49
  export interface SandboxLease {
61
50
  readonly kind: LeaseKind;
62
51
  readonly token: string;
63
- readonly conversationId: string;
52
+ readonly environmentId: string;
64
53
  /** Aborts with {@link SandboxLockLostError} when the lease is lost. */
65
54
  readonly signal: AbortSignal;
66
55
  /** Renews once now; false when the lease is lost (the signal then aborts). */
@@ -93,7 +82,7 @@ export declare const SANDBOX_LEASE_TIMINGS: unique symbol;
93
82
  */
94
83
  export declare class SandboxLeases {
95
84
  private readonly locks;
96
- /** The holder records and the legacy busy marker (scripts of this file). */
85
+ /** The holder records (scripts of this file). */
97
86
  private readonly redis;
98
87
  private readonly log;
99
88
  /** Lease TTL (ms). */
@@ -103,8 +92,8 @@ export declare class SandboxLeases {
103
92
  /** Path lease TTL (ms). */
104
93
  readonly pathTtlMs: number;
105
94
  constructor(locks: LockService,
106
- /** The holder records and the legacy busy marker (scripts of this file). */
107
- redis: Pick<Redis, "eval" | "get">, log: Pick<KernelLogger, "warn">, timings?: Partial<SandboxLeaseTimings>);
95
+ /** The holder records (scripts of this file). */
96
+ redis: Pick<Redis, "eval" | "hdel">, log: Pick<KernelLogger, "warn">, timings?: Partial<SandboxLeaseTimings>);
108
97
  /**
109
98
  * TTL of an intent (ms): 4 × the poll interval (a jittered wait is up to 2 × the interval plus
110
99
  * round trips), at least {@link INTENT_TTL_FLOOR_MS} so event-loop lag cannot let it lapse.
@@ -117,14 +106,14 @@ export declare class SandboxLeases {
117
106
  * `capMs`, the signal's reason when it aborts. Not granted while an exclusive lease, an older
118
107
  * replica's lock token or another caller's intent exists.
119
108
  */
120
- acquireShared(conv: string, cap: number, signal: AbortSignal, capMs: number): Promise<SandboxLease>;
109
+ acquireShared(env: string, cap: number, signal: AbortSignal, capMs: number): Promise<SandboxLease>;
121
110
  /**
122
111
  * An exclusive lease, polling until no other lease exists; `sandbox.busy` after `capMs` (no cap
123
112
  * when omitted), the signal's reason when it aborts. With `intent` the waiter sets the intent
124
113
  * (refreshed while it waits) so new shared leases stop being granted; it is cleared on success
125
114
  * and when the wait ends otherwise.
126
115
  */
127
- acquireExclusive(conv: string, signal: AbortSignal, capMs?: number, o?: {
116
+ acquireExclusive(env: string, signal: AbortSignal, capMs?: number, o?: {
128
117
  intent?: boolean;
129
118
  }): Promise<SandboxLease>;
130
119
  /**
@@ -132,7 +121,7 @@ export declare class SandboxLeases {
132
121
  * intent. With `o.token` the lease (and, when `o.intent`, the intent set on failure) carries that
133
122
  * token, so one waiter can alternate between this and {@link tryShared} with the same token.
134
123
  */
135
- tryExclusive(conv: string, o?: {
124
+ tryExclusive(env: string, o?: {
136
125
  token?: string;
137
126
  intent?: boolean;
138
127
  }): Promise<SandboxLease | null>;
@@ -141,35 +130,29 @@ export declare class SandboxLeases {
141
130
  * lease token; a waiter that set an intent with the same token is let through its own intent
142
131
  * (it should then {@link clearIntent}).
143
132
  */
144
- tryShared(conv: string, cap: number, token?: string): Promise<SandboxLease | null>;
145
- /** Deletes the conversation's intent when it is `token`'s. */
146
- clearIntent(conv: string, token: string): Promise<void>;
147
- /** Whether the single busy marker of a kernel before phase C is present (v2 does not count). */
148
- legacyMarker(conv: string): Promise<boolean>;
149
- /** Live shared leases of the conversation. */
150
- sharedCount(conv: string): Promise<number>;
133
+ tryShared(env: string, cap: number, token?: string): Promise<SandboxLease | null>;
134
+ /** Deletes the environment's intent when it is `token`'s. */
135
+ clearIntent(env: string, token: string): Promise<void>;
136
+ /** Live shared leases of the environment. */
137
+ sharedCount(env: string): Promise<number>;
151
138
  /**
152
139
  * Records (or refreshes) a holder that may run commands (before its provider calls); `ttlMs`
153
- * bounds the record. Also keeps the v2 busy marker for older replicas ({@link BUSY_V2}).
140
+ * bounds the record.
154
141
  */
155
- registerHolder(conv: string, token: string, ttlMs: number): Promise<void>;
156
- /** Deletes a holder record (after its provider calls); the v2 marker goes with the last one. */
157
- unregisterHolder(conv: string, token: string): Promise<void>;
142
+ registerHolder(env: string, token: string, ttlMs: number): Promise<void>;
143
+ /** Deletes a holder record (after its provider calls). */
144
+ unregisterHolder(env: string, token: string): Promise<void>;
158
145
  /**
159
- * Tags of holders without a live lease, plus whether an older kernel's single busy marker was
160
- * present. Atomically claims them (removes the fields) so only one caller kills. That marker is
161
- * claimed only when `exclusiveToken` is the caller's exclusive lease (no shared lease live).
146
+ * Tags of holders without a live lease, atomically claimed (their fields removed) so only one
147
+ * caller kills them.
162
148
  */
163
- claimDeadHolders(conv: string, exclusiveToken?: string): Promise<{
164
- tags: string[];
165
- legacyMarker: boolean;
166
- }>;
149
+ claimDeadHolders(env: string): Promise<string[]>;
167
150
  /**
168
151
  * A short lease on one path of the sandbox (the kernel's own read-modify-write of a file); waits
169
152
  * up to `capMs`, then throws {@link SandboxPathBusyError}. A {@link LockService.hold} lease
170
153
  * (renewed every TTL / 3): when it is lost its `signal` aborts.
171
154
  */
172
- pathLease(conv: string, path: string, signal: AbortSignal, capMs: number): Promise<SandboxPathLease>;
155
+ pathLease(env: string, path: string, signal: AbortSignal, capMs: number): Promise<SandboxPathLease>;
173
156
  /** A sandbox lease over a held {@link SharedLeaseHandle}, as its current kind. */
174
157
  private held;
175
158
  /** A lease view of `h` as `kind`; a view stops working once the lease changes kind. */