@capybara-hq/kernel 0.1.0-rc.0 → 0.1.0-rc.10

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 (1152) hide show
  1. package/bootstrap.json +92 -8
  2. package/dist/admin/admin.controller.d.ts +52 -71
  3. package/dist/admin/admin.controller.js +117 -63
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/admin.schemas.d.ts +57 -0
  7. package/dist/admin/admin.schemas.js +50 -0
  8. package/dist/admin/extensions.controller.d.ts +47 -16
  9. package/dist/admin/extensions.controller.js +94 -23
  10. package/dist/admin/extensions.schemas.d.ts +7 -0
  11. package/dist/admin/extensions.schemas.js +10 -0
  12. package/dist/admin/limit-defaults.d.ts +20 -0
  13. package/dist/admin/limit-defaults.js +10 -0
  14. package/dist/admin/setup-lock.d.ts +16 -0
  15. package/dist/admin/setup-lock.js +47 -0
  16. package/dist/admin/setup.controller.d.ts +9 -9
  17. package/dist/admin/setup.controller.js +28 -26
  18. package/dist/admin/setup.service.d.ts +20 -28
  19. package/dist/admin/setup.service.js +65 -65
  20. package/dist/agents/agent-lookup.d.ts +72 -0
  21. package/dist/agents/agent-lookup.js +208 -0
  22. package/dist/agents/agent-profile.service.d.ts +31 -0
  23. package/dist/agents/agent-profile.service.js +122 -0
  24. package/dist/agents/agents.controller.d.ts +54 -169
  25. package/dist/agents/agents.controller.js +172 -37
  26. package/dist/agents/agents.module.d.ts +10 -0
  27. package/dist/agents/agents.module.js +71 -0
  28. package/dist/agents/agents.schemas.d.ts +389 -0
  29. package/dist/agents/agents.schemas.js +126 -0
  30. package/dist/agents/agents.service.d.ts +104 -76
  31. package/dist/agents/agents.service.js +509 -383
  32. package/dist/agents/definition.d.ts +133 -21
  33. package/dist/agents/definition.js +361 -41
  34. package/dist/agents/from-template.d.ts +106 -0
  35. package/dist/agents/from-template.js +680 -0
  36. package/dist/agents/from-template.service.d.ts +72 -0
  37. package/dist/agents/from-template.service.js +178 -0
  38. package/dist/agents/instruction-files.d.ts +60 -0
  39. package/dist/agents/instruction-files.js +111 -0
  40. package/dist/agents/models.controller.d.ts +44 -6
  41. package/dist/agents/models.controller.js +84 -8
  42. package/dist/agents/org-templates.d.ts +186 -0
  43. package/dist/agents/org-templates.js +868 -0
  44. package/dist/agents/pending-connector-requests.d.ts +79 -0
  45. package/dist/agents/pending-connector-requests.js +215 -0
  46. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  47. package/dist/agents/pending-connectors.controller.js +91 -0
  48. package/dist/agents/pending-connectors.service.d.ts +62 -0
  49. package/dist/agents/pending-connectors.service.js +282 -0
  50. package/dist/agents/profile.d.ts +114 -0
  51. package/dist/agents/profile.js +55 -0
  52. package/dist/agents/readiness.controller.d.ts +26 -0
  53. package/dist/agents/readiness.controller.js +56 -0
  54. package/dist/agents/templates.controller.d.ts +78 -6
  55. package/dist/agents/templates.controller.js +154 -8
  56. package/dist/agents/templates.d.ts +132 -30
  57. package/dist/agents/templates.js +500 -46
  58. package/dist/agents/templates.schemas.d.ts +20 -0
  59. package/dist/agents/templates.schemas.js +45 -0
  60. package/dist/app.d.ts +93 -0
  61. package/dist/app.js +150 -0
  62. package/dist/background/background.controller.d.ts +38 -0
  63. package/dist/background/background.controller.js +88 -0
  64. package/dist/background/background.module.d.ts +10 -0
  65. package/dist/background/background.module.js +39 -0
  66. package/dist/background/background.schemas.d.ts +10 -0
  67. package/dist/background/background.schemas.js +16 -0
  68. package/dist/background/finish.d.ts +44 -0
  69. package/dist/background/finish.js +95 -0
  70. package/dist/background/launch-lock.d.ts +15 -0
  71. package/dist/background/launch-lock.js +40 -0
  72. package/dist/background/launch.d.ts +42 -0
  73. package/dist/background/launch.js +77 -0
  74. package/dist/background/poll.job.d.ts +56 -0
  75. package/dist/background/poll.job.js +195 -0
  76. package/dist/background/render.d.ts +23 -0
  77. package/dist/background/render.js +48 -0
  78. package/dist/background/session.d.ts +48 -0
  79. package/dist/background/session.js +80 -0
  80. package/dist/background/status.d.ts +35 -0
  81. package/dist/background/status.js +57 -0
  82. package/dist/background/stop.d.ts +68 -0
  83. package/dist/background/stop.js +244 -0
  84. package/dist/background/store.d.ts +167 -0
  85. package/dist/background/store.js +361 -0
  86. package/dist/background/store.module.d.ts +6 -0
  87. package/dist/background/store.module.js +22 -0
  88. package/dist/background/tasks.service.d.ts +77 -0
  89. package/dist/background/tasks.service.js +216 -0
  90. package/dist/background/wake-rules.d.ts +66 -0
  91. package/dist/background/wake-rules.js +113 -0
  92. package/dist/background/wake.d.ts +30 -0
  93. package/dist/background/wake.js +63 -0
  94. package/dist/catalog/admin-catalog.controller.d.ts +102 -52
  95. package/dist/catalog/admin-catalog.controller.js +222 -67
  96. package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
  97. package/dist/catalog/admin-catalog.schemas.js +92 -0
  98. package/dist/catalog/catalog-content.d.ts +232 -0
  99. package/dist/catalog/catalog-content.js +367 -0
  100. package/dist/catalog/catalog-files.d.ts +41 -0
  101. package/dist/catalog/catalog-files.js +86 -0
  102. package/dist/catalog/catalog-import.module.d.ts +7 -0
  103. package/dist/catalog/catalog-import.module.js +60 -0
  104. package/dist/catalog/catalog-items.d.ts +290 -0
  105. package/dist/catalog/catalog-items.js +676 -0
  106. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  107. package/dist/catalog/catalog-scope.service.js +1124 -0
  108. package/dist/catalog/catalog.module.d.ts +12 -0
  109. package/dist/catalog/catalog.module.js +81 -0
  110. package/dist/catalog/catalog.service.d.ts +141 -206
  111. package/dist/catalog/catalog.service.js +237 -528
  112. package/dist/catalog/claude/agents.js +15 -10
  113. package/dist/catalog/cli.d.ts +14 -3
  114. package/dist/catalog/cli.js +39 -32
  115. package/dist/catalog/component-promotion.d.ts +96 -0
  116. package/dist/catalog/component-promotion.js +395 -0
  117. package/dist/catalog/component-scope.controller.d.ts +90 -0
  118. package/dist/catalog/component-scope.controller.js +234 -0
  119. package/dist/catalog/component-scope.schemas.d.ts +114 -0
  120. package/dist/catalog/component-scope.schemas.js +97 -0
  121. package/dist/catalog/component-scope.service.d.ts +327 -0
  122. package/dist/catalog/component-scope.service.js +990 -0
  123. package/dist/catalog/component-state.d.ts +188 -0
  124. package/dist/catalog/component-state.js +455 -0
  125. package/dist/catalog/git-source.d.ts +9 -1
  126. package/dist/catalog/git-source.js +29 -2
  127. package/dist/catalog/job-ids.d.ts +45 -0
  128. package/dist/catalog/job-ids.js +40 -0
  129. package/dist/catalog/jobs.d.ts +27 -0
  130. package/dist/catalog/jobs.js +70 -0
  131. package/dist/catalog/locks.d.ts +24 -0
  132. package/dist/catalog/locks.js +63 -0
  133. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  134. package/dist/catalog/marketplace-icons.d.ts +64 -0
  135. package/dist/catalog/marketplace-icons.js +131 -0
  136. package/dist/catalog/marketplaces.controller.d.ts +53 -44
  137. package/dist/catalog/marketplaces.controller.js +146 -51
  138. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  139. package/dist/catalog/marketplaces.schemas.js +53 -0
  140. package/dist/catalog/marketplaces.service.d.ts +136 -26
  141. package/dist/catalog/marketplaces.service.js +663 -281
  142. package/dist/catalog/org-catalog.controller.d.ts +115 -63
  143. package/dist/catalog/org-catalog.controller.js +207 -100
  144. package/dist/catalog/org-catalog.schemas.d.ts +88 -0
  145. package/dist/catalog/org-catalog.schemas.js +93 -0
  146. package/dist/catalog/org-catalog.service.d.ts +89 -216
  147. package/dist/catalog/org-catalog.service.js +431 -472
  148. package/dist/catalog/org-extension-switch.d.ts +41 -0
  149. package/dist/catalog/org-extension-switch.js +115 -0
  150. package/dist/catalog/org-extension.controller.d.ts +113 -0
  151. package/dist/catalog/org-extension.controller.js +271 -0
  152. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  153. package/dist/catalog/org-extension.schemas.js +22 -0
  154. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  155. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  156. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  157. package/dist/catalog/org-plugin-uploads.js +122 -0
  158. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  159. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  160. package/dist/catalog/owned-items.d.ts +188 -0
  161. package/dist/catalog/owned-items.js +801 -0
  162. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  163. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  164. package/dist/catalog/ownership.d.ts +172 -0
  165. package/dist/catalog/ownership.js +326 -0
  166. package/dist/catalog/platform-components.d.ts +223 -0
  167. package/dist/catalog/platform-components.js +763 -0
  168. package/dist/catalog/platform-migration.d.ts +115 -0
  169. package/dist/catalog/platform-migration.js +582 -0
  170. package/dist/catalog/plugin-import.d.ts +270 -68
  171. package/dist/catalog/plugin-import.js +1004 -277
  172. package/dist/catalog/plugin-install.d.ts +251 -65
  173. package/dist/catalog/plugin-install.js +1128 -344
  174. package/dist/catalog/plugin-package.js +14 -1
  175. package/dist/catalog/plugin-upgrade.d.ts +301 -188
  176. package/dist/catalog/plugin-upgrade.js +1256 -1068
  177. package/dist/catalog/request-rules.d.ts +65 -0
  178. package/dist/catalog/request-rules.js +217 -0
  179. package/dist/catalog/requests.service.d.ts +205 -117
  180. package/dist/catalog/requests.service.js +612 -369
  181. package/dist/catalog/reserved-names.d.ts +8 -0
  182. package/dist/catalog/reserved-names.js +42 -0
  183. package/dist/catalog/scope-orgs.d.ts +21 -0
  184. package/dist/catalog/scope-orgs.js +67 -0
  185. package/dist/catalog/scope-state.d.ts +35 -0
  186. package/dist/catalog/scope-state.js +87 -0
  187. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  188. package/dist/catalog/scope-sync-workers.js +29 -0
  189. package/dist/catalog/scope-sync.d.ts +176 -0
  190. package/dist/catalog/scope-sync.js +576 -0
  191. package/dist/catalog/scope.d.ts +42 -0
  192. package/dist/catalog/scope.js +42 -0
  193. package/dist/catalog/unshare.d.ts +22 -0
  194. package/dist/catalog/unshare.js +118 -0
  195. package/dist/channels/actions.d.ts +6 -4
  196. package/dist/channels/actions.js +11 -4
  197. package/dist/channels/cards.d.ts +33 -11
  198. package/dist/channels/cards.js +96 -24
  199. package/dist/channels/channels.module.d.ts +40 -0
  200. package/dist/channels/channels.module.js +130 -0
  201. package/dist/channels/channels.schemas.d.ts +37 -0
  202. package/dist/channels/channels.schemas.js +38 -0
  203. package/dist/channels/connections.controller.d.ts +44 -37
  204. package/dist/channels/connections.controller.js +83 -38
  205. package/dist/channels/connections.service.d.ts +101 -30
  206. package/dist/channels/connections.service.js +380 -147
  207. package/dist/channels/inbound.d.ts +44 -38
  208. package/dist/channels/inbound.js +190 -44
  209. package/dist/channels/job-ids.d.ts +10 -0
  210. package/dist/channels/job-ids.js +10 -0
  211. package/dist/channels/jobs.d.ts +85 -0
  212. package/dist/channels/jobs.js +157 -0
  213. package/dist/channels/outbound.d.ts +71 -80
  214. package/dist/channels/outbound.js +219 -201
  215. package/dist/channels/phrases.d.ts +33 -2
  216. package/dist/channels/phrases.js +29 -1
  217. package/dist/channels/supervisor.d.ts +88 -46
  218. package/dist/channels/supervisor.js +230 -132
  219. package/dist/channels/threads.d.ts +34 -8
  220. package/dist/channels/threads.js +79 -13
  221. package/dist/channels/webhook.d.ts +20 -14
  222. package/dist/channels/webhook.js +51 -20
  223. package/dist/config/docs.js +5 -1
  224. package/dist/config/load.d.ts +3 -2
  225. package/dist/config/load.js +3 -2
  226. package/dist/config/nacos-source.js +11 -2
  227. package/dist/config/schema.d.ts +51 -3
  228. package/dist/config/schema.js +269 -27
  229. package/dist/conversations/access.d.ts +31 -0
  230. package/dist/conversations/access.js +110 -0
  231. package/dist/conversations/agent-tree.d.ts +46 -0
  232. package/dist/conversations/agent-tree.js +92 -0
  233. package/dist/conversations/artifacts.d.ts +11 -11
  234. package/dist/conversations/artifacts.js +36 -10
  235. package/dist/conversations/attachments.controller.d.ts +1 -1
  236. package/dist/conversations/attachments.controller.js +8 -6
  237. package/dist/conversations/attachments.module.d.ts +7 -0
  238. package/dist/conversations/attachments.module.js +25 -0
  239. package/dist/conversations/attachments.service.d.ts +60 -22
  240. package/dist/conversations/attachments.service.js +249 -51
  241. package/dist/conversations/conversations.controller.d.ts +86 -50
  242. package/dist/conversations/conversations.controller.js +184 -103
  243. package/dist/conversations/conversations.module.d.ts +8 -0
  244. package/dist/conversations/conversations.module.js +72 -0
  245. package/dist/conversations/conversations.schemas.d.ts +52 -0
  246. package/dist/conversations/conversations.schemas.js +79 -0
  247. package/dist/conversations/conversations.service.d.ts +166 -49
  248. package/dist/conversations/conversations.service.js +383 -179
  249. package/dist/conversations/environment-status.d.ts +24 -0
  250. package/dist/conversations/environment-status.js +71 -0
  251. package/dist/conversations/event-log.d.ts +64 -27
  252. package/dist/conversations/event-log.js +167 -31
  253. package/dist/conversations/events.d.ts +252 -9
  254. package/dist/conversations/events.js +243 -32
  255. package/dist/conversations/files.d.ts +10 -10
  256. package/dist/conversations/files.js +37 -11
  257. package/dist/conversations/idem-keys.d.ts +5 -0
  258. package/dist/conversations/idem-keys.js +5 -0
  259. package/dist/conversations/job-ids.d.ts +6 -0
  260. package/dist/conversations/job-ids.js +6 -0
  261. package/dist/conversations/message-context.d.ts +79 -0
  262. package/dist/conversations/message-context.js +145 -0
  263. package/dist/conversations/outputs-read.d.ts +11 -11
  264. package/dist/conversations/outputs-read.js +31 -7
  265. package/dist/conversations/queue.d.ts +53 -58
  266. package/dist/conversations/queue.js +37 -293
  267. package/dist/conversations/queue.service.d.ts +60 -0
  268. package/dist/conversations/queue.service.js +350 -0
  269. package/dist/conversations/titles.d.ts +83 -27
  270. package/dist/conversations/titles.js +195 -70
  271. package/dist/conversations/tree.d.ts +17 -0
  272. package/dist/conversations/tree.js +42 -0
  273. package/dist/ctx/bus.js +9 -3
  274. package/dist/ctx/create-ctx.d.ts +26 -1
  275. package/dist/ctx/create-ctx.js +45 -16
  276. package/dist/ctx/lock.d.ts +7 -3
  277. package/dist/ctx/lock.js +9 -20
  278. package/dist/ctx/queue.js +3 -2
  279. package/dist/ctx/secrets.d.ts +10 -2
  280. package/dist/ctx/secrets.js +7 -3
  281. package/dist/db/kernel-schema.d.ts +550 -25
  282. package/dist/db/pool.d.ts +10 -0
  283. package/dist/db/pool.js +4 -0
  284. package/dist/devices/device-auth.controller.d.ts +42 -0
  285. package/dist/devices/device-auth.controller.js +116 -0
  286. package/dist/devices/device-auth.d.ts +119 -0
  287. package/dist/devices/device-auth.js +403 -0
  288. package/dist/devices/device-auth.module.d.ts +7 -0
  289. package/dist/devices/device-auth.module.js +25 -0
  290. package/dist/devices/device-gateway.d.ts +128 -0
  291. package/dist/devices/device-gateway.js +530 -0
  292. package/dist/devices/device-provider.d.ts +89 -0
  293. package/dist/devices/device-provider.js +151 -0
  294. package/dist/devices/device-routes.d.ts +36 -0
  295. package/dist/devices/device-routes.js +90 -0
  296. package/dist/devices/devices.module.d.ts +16 -0
  297. package/dist/devices/devices.module.js +44 -0
  298. package/dist/devices/dto.d.ts +66 -0
  299. package/dist/devices/dto.js +44 -0
  300. package/dist/devices/keys.d.ts +25 -0
  301. package/dist/devices/keys.js +25 -0
  302. package/dist/devices/machines.d.ts +118 -0
  303. package/dist/devices/machines.js +366 -0
  304. package/dist/devices/relay.d.ts +100 -0
  305. package/dist/devices/relay.js +373 -0
  306. package/dist/devices/targets.d.ts +28 -0
  307. package/dist/devices/targets.js +73 -0
  308. package/dist/environments/access.d.ts +66 -0
  309. package/dist/environments/access.js +113 -0
  310. package/dist/environments/conversation-environments.d.ts +75 -0
  311. package/dist/environments/conversation-environments.js +231 -0
  312. package/dist/environments/dto.d.ts +25 -0
  313. package/dist/environments/dto.js +12 -0
  314. package/dist/environments/environments.controller.d.ts +36 -0
  315. package/dist/environments/environments.controller.js +124 -0
  316. package/dist/environments/environments.module.d.ts +8 -0
  317. package/dist/environments/environments.module.js +31 -0
  318. package/dist/environments/environments.schemas.d.ts +3 -0
  319. package/dist/environments/environments.schemas.js +14 -0
  320. package/dist/environments/environments.service.d.ts +251 -0
  321. package/dist/environments/environments.service.js +791 -0
  322. package/dist/environments/label.d.ts +11 -0
  323. package/dist/environments/label.js +25 -0
  324. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  325. package/dist/environments/legacy-cleanup.job.js +141 -0
  326. package/dist/errors.d.ts +136 -2
  327. package/dist/errors.js +136 -2
  328. package/dist/evals/budget.d.ts +42 -21
  329. package/dist/evals/budget.js +114 -62
  330. package/dist/evals/evals.module.d.ts +31 -0
  331. package/dist/evals/evals.module.js +114 -0
  332. package/dist/evals/evals.schemas.d.ts +110 -0
  333. package/dist/evals/evals.schemas.js +107 -0
  334. package/dist/evals/jobs.d.ts +20 -0
  335. package/dist/evals/jobs.js +45 -0
  336. package/dist/evals/reconstruct.d.ts +18 -9
  337. package/dist/evals/reconstruct.js +36 -10
  338. package/dist/evals/recorded-tools.d.ts +37 -1
  339. package/dist/evals/recorded-tools.js +120 -10
  340. package/dist/evals/run-replay.d.ts +75 -10
  341. package/dist/evals/run-replay.js +218 -94
  342. package/dist/evals/runs.controller.d.ts +3 -58
  343. package/dist/evals/runs.controller.js +18 -50
  344. package/dist/evals/runs.service.d.ts +31 -52
  345. package/dist/evals/runs.service.js +281 -255
  346. package/dist/evals/sets.controller.d.ts +3 -29
  347. package/dist/evals/sets.controller.js +18 -39
  348. package/dist/evals/sets.service.d.ts +29 -13
  349. package/dist/evals/sets.service.js +262 -202
  350. package/dist/evals/snapshot.d.ts +5 -4
  351. package/dist/evals/snapshot.js +17 -4
  352. package/dist/evals/step-replay.d.ts +6 -8
  353. package/dist/evals/step-replay.js +17 -10
  354. package/dist/evals/trajectory.controller.d.ts +1 -1
  355. package/dist/evals/trajectory.controller.js +11 -7
  356. package/dist/evals/trajectory.d.ts +2 -2
  357. package/dist/evals/trajectory.js +1 -1
  358. package/dist/evals/trajectory.service.d.ts +13 -7
  359. package/dist/evals/trajectory.service.js +56 -21
  360. package/dist/evals/worker.d.ts +48 -31
  361. package/dist/evals/worker.js +229 -123
  362. package/dist/extensions/admin-ops.d.ts +133 -41
  363. package/dist/extensions/admin-ops.js +378 -172
  364. package/dist/extensions/admin-view.d.ts +82 -32
  365. package/dist/extensions/admin-view.js +284 -71
  366. package/dist/extensions/approvals.d.ts +24 -10
  367. package/dist/extensions/approvals.js +73 -46
  368. package/dist/extensions/blobs.d.ts +27 -10
  369. package/dist/extensions/blobs.js +112 -45
  370. package/dist/extensions/bootstrap.d.ts +136 -46
  371. package/dist/extensions/bootstrap.js +417 -167
  372. package/dist/extensions/cli.d.ts +32 -10
  373. package/dist/extensions/cli.js +52 -98
  374. package/dist/extensions/config-hash.d.ts +10 -0
  375. package/dist/extensions/config-hash.js +38 -0
  376. package/dist/extensions/config-issues.d.ts +19 -0
  377. package/dist/extensions/config-issues.js +48 -0
  378. package/dist/extensions/config-json-schema.d.ts +43 -7
  379. package/dist/extensions/config-json-schema.js +124 -58
  380. package/dist/extensions/deployment-config-store.d.ts +55 -0
  381. package/dist/extensions/deployment-config-store.js +133 -0
  382. package/dist/extensions/deployment-config.d.ts +146 -70
  383. package/dist/extensions/deployment-config.js +439 -246
  384. package/dist/extensions/display-name.d.ts +22 -0
  385. package/dist/extensions/display-name.js +77 -0
  386. package/dist/extensions/effective-config.d.ts +127 -0
  387. package/dist/extensions/effective-config.js +368 -0
  388. package/dist/extensions/enabled.d.ts +5 -5
  389. package/dist/extensions/extensions.module.d.ts +8 -0
  390. package/dist/extensions/extensions.module.js +96 -0
  391. package/dist/extensions/hooks.d.ts +40 -6
  392. package/dist/extensions/hooks.js +83 -17
  393. package/dist/extensions/host.d.ts +161 -80
  394. package/dist/extensions/host.js +505 -213
  395. package/dist/extensions/installs.d.ts +73 -19
  396. package/dist/extensions/installs.js +174 -37
  397. package/dist/extensions/job-ids.d.ts +6 -0
  398. package/dist/extensions/job-ids.js +6 -0
  399. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  400. package/dist/extensions/lifecycle-topics.js +18 -0
  401. package/dist/extensions/lifecycle.d.ts +35 -47
  402. package/dist/extensions/lifecycle.js +103 -39
  403. package/dist/extensions/locks.d.ts +45 -0
  404. package/dist/extensions/locks.js +112 -0
  405. package/dist/extensions/migrate-lock.d.ts +3 -4
  406. package/dist/extensions/org-config.d.ts +141 -49
  407. package/dist/extensions/org-config.js +471 -243
  408. package/dist/extensions/org-levels.d.ts +37 -0
  409. package/dist/extensions/org-levels.js +71 -0
  410. package/dist/extensions/org-overrides.d.ts +151 -0
  411. package/dist/extensions/org-overrides.js +524 -0
  412. package/dist/extensions/package.d.ts +14 -1
  413. package/dist/extensions/package.js +51 -2
  414. package/dist/extensions/permission-view.d.ts +59 -6
  415. package/dist/extensions/permission-view.js +7 -5
  416. package/dist/extensions/plugin-guides.d.ts +129 -0
  417. package/dist/extensions/plugin-guides.js +283 -0
  418. package/dist/extensions/plugin-icons.d.ts +54 -0
  419. package/dist/extensions/plugin-icons.js +125 -0
  420. package/dist/extensions/plugin-items.d.ts +21 -0
  421. package/dist/extensions/plugin-items.js +42 -0
  422. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  423. package/dist/extensions/point-defaults.controller.js +69 -0
  424. package/dist/extensions/point-defaults.d.ts +73 -0
  425. package/dist/extensions/point-defaults.js +236 -0
  426. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  427. package/dist/extensions/point-defaults.schemas.js +14 -0
  428. package/dist/extensions/registry.d.ts +50 -2
  429. package/dist/extensions/registry.js +91 -4
  430. package/dist/extensions/resolve.d.ts +51 -1
  431. package/dist/extensions/resolve.js +85 -3
  432. package/dist/extensions/single-provider.d.ts +92 -0
  433. package/dist/extensions/single-provider.js +180 -0
  434. package/dist/extensions/sources.d.ts +19 -10
  435. package/dist/extensions/sources.js +34 -13
  436. package/dist/extensions/state.module.d.ts +9 -0
  437. package/dist/extensions/state.module.js +38 -0
  438. package/dist/extensions/unavailable.d.ts +50 -0
  439. package/dist/extensions/unavailable.js +115 -0
  440. package/dist/files/files.module.d.ts +3 -0
  441. package/dist/files/files.module.js +22 -0
  442. package/dist/files/previewers.controller.d.ts +7 -2
  443. package/dist/files/previewers.controller.js +19 -12
  444. package/dist/files/previewers.d.ts +21 -19
  445. package/dist/files/previewers.js +114 -38
  446. package/dist/files/previewers.schemas.d.ts +10 -0
  447. package/dist/files/previewers.schemas.js +9 -0
  448. package/dist/http/adapter.d.ts +3 -0
  449. package/dist/http/adapter.js +25 -0
  450. package/dist/http/api.module.d.ts +3 -110
  451. package/dist/http/api.module.js +86 -358
  452. package/dist/http/app.d.ts +22 -17
  453. package/dist/http/app.js +83 -52
  454. package/dist/http/error-filter.module.d.ts +5 -0
  455. package/dist/http/error-filter.module.js +18 -0
  456. package/dist/http/error.filter.js +2 -2
  457. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  458. package/dist/http/gateway-routes.js +16 -0
  459. package/dist/http/nest-logger.d.ts +6 -5
  460. package/dist/http/nest-logger.js +24 -10
  461. package/dist/http/plugin-dispatch.d.ts +4 -1
  462. package/dist/http/plugin-dispatch.js +14 -2
  463. package/dist/identity/accounts.d.ts +130 -38
  464. package/dist/identity/accounts.js +373 -186
  465. package/dist/identity/api-tokens.d.ts +11 -7
  466. package/dist/identity/api-tokens.js +71 -44
  467. package/dist/identity/audit.d.ts +9 -5
  468. package/dist/identity/audit.js +5 -1
  469. package/dist/identity/auth.controller.d.ts +11 -10
  470. package/dist/identity/auth.controller.js +40 -30
  471. package/dist/identity/auth.guard.d.ts +16 -8
  472. package/dist/identity/auth.guard.js +41 -13
  473. package/dist/identity/binding.d.ts +9 -11
  474. package/dist/identity/binding.js +41 -13
  475. package/dist/identity/cookies.d.ts +26 -5
  476. package/dist/identity/cookies.js +58 -6
  477. package/dist/identity/external-identity-lock.d.ts +17 -0
  478. package/dist/identity/external-identity-lock.js +39 -0
  479. package/dist/identity/external.d.ts +19 -15
  480. package/dist/identity/external.js +163 -125
  481. package/dist/identity/identity.module.d.ts +6 -0
  482. package/dist/identity/identity.module.js +59 -0
  483. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  484. package/dist/identity/initial-passwords.controller.js +49 -0
  485. package/dist/identity/initial-passwords.d.ts +61 -0
  486. package/dist/identity/initial-passwords.job.d.ts +16 -0
  487. package/dist/identity/initial-passwords.job.js +46 -0
  488. package/dist/identity/initial-passwords.js +159 -0
  489. package/dist/identity/me.controller.d.ts +32 -15
  490. package/dist/identity/me.controller.js +78 -33
  491. package/dist/identity/me.schemas.d.ts +14 -0
  492. package/dist/identity/me.schemas.js +17 -0
  493. package/dist/identity/principal.d.ts +11 -3
  494. package/dist/identity/principal.js +11 -3
  495. package/dist/identity/sessions.d.ts +24 -10
  496. package/dist/identity/sessions.js +119 -42
  497. package/dist/identity/settings.d.ts +42 -23
  498. package/dist/identity/settings.js +137 -72
  499. package/dist/identity/sso.controller.d.ts +7 -7
  500. package/dist/identity/sso.controller.js +13 -9
  501. package/dist/identity/sso.d.ts +9 -12
  502. package/dist/identity/sso.js +54 -24
  503. package/dist/identity/super-admin.d.ts +20 -0
  504. package/dist/identity/super-admin.js +81 -0
  505. package/dist/inbox/inbox.module.d.ts +6 -0
  506. package/dist/inbox/inbox.module.js +26 -0
  507. package/dist/inbox/inbox.schemas.d.ts +8 -0
  508. package/dist/inbox/inbox.schemas.js +11 -0
  509. package/dist/inbox/inbox.service.d.ts +68 -11
  510. package/dist/inbox/inbox.service.js +104 -13
  511. package/dist/inbox/org-notices.d.ts +63 -0
  512. package/dist/inbox/org-notices.js +91 -0
  513. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  514. package/dist/inbox/platform-inbox.controller.js +58 -0
  515. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  516. package/dist/inbox/platform-inbox.service.js +263 -0
  517. package/dist/inbox/platform-notices.d.ts +19 -0
  518. package/dist/inbox/platform-notices.js +9 -0
  519. package/dist/index.d.ts +25 -14
  520. package/dist/index.js +20 -9
  521. package/dist/infra/cache/cache.module.d.ts +3 -0
  522. package/dist/infra/cache/cache.module.js +16 -0
  523. package/dist/infra/cache/cache.service.d.ts +21 -0
  524. package/dist/infra/cache/cache.service.js +80 -0
  525. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  526. package/dist/infra/cache/cacheable.decorator.js +83 -0
  527. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  528. package/dist/infra/cli/kernel-cli.module.js +173 -0
  529. package/dist/infra/close-within.d.ts +15 -0
  530. package/dist/infra/close-within.js +36 -0
  531. package/dist/infra/config/config.module.d.ts +13 -0
  532. package/dist/infra/config/config.module.js +39 -0
  533. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  534. package/dist/infra/config/kernel-config.service.js +157 -0
  535. package/dist/infra/database/after-commit.d.ts +6 -0
  536. package/dist/infra/database/after-commit.js +9 -0
  537. package/dist/infra/database/database.module.d.ts +25 -0
  538. package/dist/infra/database/database.module.js +91 -0
  539. package/dist/infra/database/kernel-db.d.ts +22 -0
  540. package/dist/infra/database/kernel-db.js +65 -0
  541. package/dist/infra/database/transaction-host.d.ts +50 -0
  542. package/dist/infra/database/transaction-host.js +125 -0
  543. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  544. package/dist/infra/database/transactional.decorator.js +27 -0
  545. package/dist/infra/database/xact-lock.d.ts +17 -0
  546. package/dist/infra/database/xact-lock.js +43 -0
  547. package/dist/infra/events/kernel-events.d.ts +121 -0
  548. package/dist/infra/events/kernel-events.js +65 -0
  549. package/dist/infra/health/health.controller.d.ts +26 -0
  550. package/dist/infra/health/health.controller.js +104 -0
  551. package/dist/infra/health/health.module.d.ts +9 -0
  552. package/dist/infra/health/health.module.js +24 -0
  553. package/dist/infra/health/health.options.d.ts +10 -0
  554. package/dist/infra/health/health.options.js +15 -0
  555. package/dist/infra/health/shutdown-state.d.ts +6 -0
  556. package/dist/infra/health/shutdown-state.js +2 -0
  557. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  560. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  561. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  562. package/dist/infra/lifecycle/process-guards.js +90 -0
  563. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  564. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  565. package/dist/infra/lock/key-template.d.ts +13 -0
  566. package/dist/infra/lock/key-template.js +46 -0
  567. package/dist/infra/lock/lock.module.d.ts +3 -0
  568. package/dist/infra/lock/lock.module.js +16 -0
  569. package/dist/infra/lock/lock.service.d.ts +120 -0
  570. package/dist/infra/lock/lock.service.js +343 -0
  571. package/dist/infra/lock/shared-lease.d.ts +44 -0
  572. package/dist/infra/lock/shared-lease.js +121 -0
  573. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  574. package/dist/infra/lock/with-lock.decorator.js +49 -0
  575. package/dist/infra/logging/logging.module.d.ts +18 -0
  576. package/dist/infra/logging/logging.module.js +52 -0
  577. package/dist/infra/queue/add-job-once.d.ts +14 -0
  578. package/dist/infra/queue/add-job-once.js +16 -0
  579. package/dist/infra/queue/configured-processor.d.ts +18 -0
  580. package/dist/infra/queue/configured-processor.js +23 -0
  581. package/dist/infra/queue/job-failure.d.ts +18 -0
  582. package/dist/infra/queue/job-failure.js +26 -0
  583. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  584. package/dist/infra/queue/queue-shutdown.js +81 -0
  585. package/dist/infra/queue/queue.module.d.ts +16 -0
  586. package/dist/infra/queue/queue.module.js +61 -0
  587. package/dist/infra/queue/redis-connection.d.ts +13 -0
  588. package/dist/infra/queue/redis-connection.js +25 -0
  589. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  590. package/dist/infra/queue/retired-schedulers.js +9 -0
  591. package/dist/infra/queue/run-job.d.ts +16 -0
  592. package/dist/infra/queue/run-job.js +19 -0
  593. package/dist/infra/redis/redis.module.d.ts +24 -0
  594. package/dist/infra/redis/redis.module.js +91 -0
  595. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  596. package/dist/infra/schedule/cron-tick.js +25 -0
  597. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  598. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  599. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  600. package/dist/infra/schedule/locked-interval.js +190 -0
  601. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  602. package/dist/infra/schedule/locked-tick.js +137 -0
  603. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  604. package/dist/infra/schedule/schedule.module.js +27 -0
  605. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  606. package/dist/infra/schedule/scheduled-runs.js +163 -0
  607. package/dist/infra/swagger/swagger.d.ts +16 -0
  608. package/dist/infra/swagger/swagger.js +31 -0
  609. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  610. package/dist/infra/throttler/credential-throttler.js +77 -0
  611. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  612. package/dist/infra/throttler/named-throttlers.js +157 -0
  613. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  614. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  615. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  616. package/dist/infra/throttler/throttler.guard.js +68 -0
  617. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  618. package/dist/infra/throttler/throttler.module.js +53 -0
  619. package/dist/infra/tokens.d.ts +20 -0
  620. package/dist/infra/tokens.js +20 -0
  621. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  622. package/dist/infra/validation/create-zod-dto.js +35 -0
  623. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  624. package/dist/infra/validation/parse-with-zod.js +12 -0
  625. package/dist/infra/validation/validation.module.d.ts +3 -0
  626. package/dist/infra/validation/validation.module.js +16 -0
  627. package/dist/infra/validation/zod-params.d.ts +7 -0
  628. package/dist/infra/validation/zod-params.js +42 -0
  629. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  630. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  631. package/dist/kernel.d.ts +9 -241
  632. package/dist/kernel.js +8 -1305
  633. package/dist/kernel.module.d.ts +17 -0
  634. package/dist/kernel.module.js +145 -0
  635. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  636. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  637. package/dist/lifecycle/tokens.d.ts +3 -0
  638. package/dist/lifecycle/tokens.js +3 -0
  639. package/dist/log-config.d.ts +9 -0
  640. package/dist/log-config.js +27 -0
  641. package/dist/log-context.d.ts +34 -0
  642. package/dist/log-context.js +44 -0
  643. package/dist/log-loki.d.ts +34 -0
  644. package/dist/log-loki.js +145 -0
  645. package/dist/log.d.ts +53 -10
  646. package/dist/log.js +168 -18
  647. package/dist/models/embeddings.d.ts +82 -0
  648. package/dist/models/embeddings.js +326 -0
  649. package/dist/models/enablement.controller.d.ts +40 -0
  650. package/dist/models/enablement.controller.js +74 -0
  651. package/dist/models/enablement.d.ts +101 -0
  652. package/dist/models/enablement.js +264 -0
  653. package/dist/models/models.module.d.ts +7 -0
  654. package/dist/models/models.module.js +36 -0
  655. package/dist/models/org-models.schemas.d.ts +8 -0
  656. package/dist/models/org-models.schemas.js +22 -0
  657. package/dist/models/prices.d.ts +13 -5
  658. package/dist/models/prices.js +69 -39
  659. package/dist/models/purposes.controller.d.ts +6 -4
  660. package/dist/models/purposes.controller.js +16 -11
  661. package/dist/models/purposes.d.ts +103 -23
  662. package/dist/models/purposes.js +208 -77
  663. package/dist/net/public-address.js +3 -2
  664. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  665. package/dist/orgs/directory-sync.controller.js +2 -2
  666. package/dist/orgs/directory-sync.d.ts +74 -35
  667. package/dist/orgs/directory-sync.js +243 -132
  668. package/dist/orgs/invitations.controller.d.ts +8 -8
  669. package/dist/orgs/invitations.controller.js +27 -26
  670. package/dist/orgs/invitations.service.d.ts +12 -9
  671. package/dist/orgs/invitations.service.js +130 -92
  672. package/dist/orgs/job-ids.d.ts +8 -0
  673. package/dist/orgs/job-ids.js +8 -0
  674. package/dist/orgs/members.service.d.ts +19 -12
  675. package/dist/orgs/members.service.js +161 -117
  676. package/dist/orgs/offboarding.d.ts +61 -60
  677. package/dist/orgs/offboarding.js +206 -95
  678. package/dist/orgs/org-lock.d.ts +33 -19
  679. package/dist/orgs/org-lock.js +94 -35
  680. package/dist/orgs/org.guard.d.ts +11 -1
  681. package/dist/orgs/org.guard.js +45 -34
  682. package/dist/orgs/orgs.controller.d.ts +13 -16
  683. package/dist/orgs/orgs.controller.js +29 -20
  684. package/dist/orgs/orgs.module.d.ts +6 -0
  685. package/dist/orgs/orgs.module.js +71 -0
  686. package/dist/orgs/orgs.schemas.d.ts +8 -0
  687. package/dist/orgs/orgs.schemas.js +16 -0
  688. package/dist/orgs/orgs.service.d.ts +47 -21
  689. package/dist/orgs/orgs.service.js +166 -91
  690. package/dist/orgs/roles.d.ts +1 -1
  691. package/dist/orgs/roles.js +5 -1
  692. package/dist/orgs/settings.controller.d.ts +2 -2
  693. package/dist/orgs/settings.controller.js +8 -6
  694. package/dist/orgs/settings.service.d.ts +45 -14
  695. package/dist/orgs/settings.service.js +110 -51
  696. package/dist/overrides.d.ts +63 -0
  697. package/dist/overrides.js +34 -0
  698. package/dist/platform/actor.d.ts +48 -0
  699. package/dist/platform/actor.js +100 -0
  700. package/dist/platform/agent-docs.d.ts +18 -0
  701. package/dist/platform/agent-docs.js +59 -0
  702. package/dist/platform/availability.d.ts +14 -0
  703. package/dist/platform/availability.js +43 -0
  704. package/dist/platform/errors.d.ts +28 -0
  705. package/dist/platform/errors.js +65 -0
  706. package/dist/platform/exclusions.d.ts +11 -0
  707. package/dist/platform/exclusions.js +667 -0
  708. package/dist/platform/method.d.ts +6 -0
  709. package/dist/platform/method.js +15 -0
  710. package/dist/platform/operation.d.ts +169 -0
  711. package/dist/platform/operation.js +90 -0
  712. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  713. package/dist/platform/ops/accounts.ops.js +291 -0
  714. package/dist/platform/ops/admin.ops.d.ts +36 -0
  715. package/dist/platform/ops/admin.ops.js +389 -0
  716. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  717. package/dist/platform/ops/agent-skills.ops.js +226 -0
  718. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  719. package/dist/platform/ops/agent-templates.ops.js +272 -0
  720. package/dist/platform/ops/agents.ops.d.ts +37 -0
  721. package/dist/platform/ops/agents.ops.js +717 -0
  722. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  723. package/dist/platform/ops/approvals.ops.js +116 -0
  724. package/dist/platform/ops/background.ops.d.ts +14 -0
  725. package/dist/platform/ops/background.ops.js +134 -0
  726. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  727. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  728. package/dist/platform/ops/channels.ops.d.ts +16 -0
  729. package/dist/platform/ops/channels.ops.js +195 -0
  730. package/dist/platform/ops/components.ops.d.ts +46 -0
  731. package/dist/platform/ops/components.ops.js +853 -0
  732. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  733. package/dist/platform/ops/connectors.ops.js +188 -0
  734. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  735. package/dist/platform/ops/conversations.ops.js +470 -0
  736. package/dist/platform/ops/environments.ops.d.ts +26 -0
  737. package/dist/platform/ops/environments.ops.js +311 -0
  738. package/dist/platform/ops/errors.d.ts +16 -0
  739. package/dist/platform/ops/errors.js +30 -0
  740. package/dist/platform/ops/evals.ops.d.ts +28 -0
  741. package/dist/platform/ops/evals.ops.js +783 -0
  742. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  743. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  744. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  745. package/dist/platform/ops/extensions.ops.js +347 -0
  746. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  747. package/dist/platform/ops/inbox.ops.js +378 -0
  748. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  749. package/dist/platform/ops/marketplaces.ops.js +466 -0
  750. package/dist/platform/ops/models.ops.d.ts +25 -0
  751. package/dist/platform/ops/models.ops.js +232 -0
  752. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  753. package/dist/platform/ops/org-plugins.ops.js +329 -0
  754. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  755. package/dist/platform/ops/org-settings.ops.js +102 -0
  756. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  757. package/dist/platform/ops/orgs.ops.js +295 -0
  758. package/dist/platform/ops/other-orgs.d.ts +20 -0
  759. package/dist/platform/ops/other-orgs.js +72 -0
  760. package/dist/platform/ops/paging.d.ts +14 -0
  761. package/dist/platform/ops/paging.js +20 -0
  762. package/dist/platform/ops/platform.ops.d.ts +28 -0
  763. package/dist/platform/ops/platform.ops.js +204 -0
  764. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  765. package/dist/platform/ops/plugins.ops.js +476 -0
  766. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  767. package/dist/platform/ops/previewers.ops.js +109 -0
  768. package/dist/platform/ops/requests.ops.d.ts +14 -0
  769. package/dist/platform/ops/requests.ops.js +191 -0
  770. package/dist/platform/ops/role.d.ts +4 -0
  771. package/dist/platform/ops/role.js +10 -0
  772. package/dist/platform/ops/skills.ops.d.ts +17 -0
  773. package/dist/platform/ops/skills.ops.js +216 -0
  774. package/dist/platform/ops/summary.d.ts +10 -0
  775. package/dist/platform/ops/summary.js +18 -0
  776. package/dist/platform/ops/unavailable.d.ts +23 -0
  777. package/dist/platform/ops/unavailable.js +118 -0
  778. package/dist/platform/parity.d.ts +33 -0
  779. package/dist/platform/parity.js +272 -0
  780. package/dist/platform/platform-ops.module.d.ts +39 -0
  781. package/dist/platform/platform-ops.module.js +122 -0
  782. package/dist/platform/platform.module.d.ts +8 -0
  783. package/dist/platform/platform.module.js +25 -0
  784. package/dist/platform/registry.d.ts +30 -0
  785. package/dist/platform/registry.js +111 -0
  786. package/dist/platform/route-schemas.d.ts +18 -0
  787. package/dist/platform/route-schemas.js +63 -0
  788. package/dist/roles/gateway-role.d.ts +54 -0
  789. package/dist/roles/gateway-role.js +118 -0
  790. package/dist/roles/gateway.module.d.ts +9 -0
  791. package/dist/roles/gateway.module.js +31 -0
  792. package/dist/roles/worker-role.d.ts +65 -0
  793. package/dist/roles/worker-role.js +151 -0
  794. package/dist/roles/worker.module.d.ts +14 -0
  795. package/dist/roles/worker.module.js +106 -0
  796. package/dist/runtime/abort.js +19 -2
  797. package/dist/runtime/checkpointer.d.ts +8 -3
  798. package/dist/runtime/checkpointer.js +87 -55
  799. package/dist/runtime/context/build.d.ts +21 -13
  800. package/dist/runtime/context/build.js +106 -29
  801. package/dist/runtime/context/claude-tools.d.ts +4 -1
  802. package/dist/runtime/context/claude-tools.js +13 -12
  803. package/dist/runtime/context/compaction.js +24 -1
  804. package/dist/runtime/context/environment-paths.d.ts +40 -0
  805. package/dist/runtime/context/environment-paths.js +48 -0
  806. package/dist/runtime/context/legacy-text.d.ts +22 -0
  807. package/dist/runtime/context/legacy-text.js +37 -0
  808. package/dist/runtime/context/reminders.d.ts +2 -0
  809. package/dist/runtime/context/reminders.js +2 -0
  810. package/dist/runtime/context/run-context.d.ts +65 -0
  811. package/dist/runtime/context/run-context.js +215 -0
  812. package/dist/runtime/context/skills.d.ts +29 -11
  813. package/dist/runtime/context/skills.js +46 -32
  814. package/dist/runtime/context/tool-changes.d.ts +27 -0
  815. package/dist/runtime/context/tool-changes.js +60 -0
  816. package/dist/runtime/conversation-lock.d.ts +20 -11
  817. package/dist/runtime/conversation-lock.js +62 -72
  818. package/dist/runtime/hook-calls.d.ts +11 -4
  819. package/dist/runtime/hook-calls.js +41 -13
  820. package/dist/runtime/job-ids.d.ts +10 -0
  821. package/dist/runtime/job-ids.js +10 -0
  822. package/dist/runtime/langgraph-loop.d.ts +3 -1
  823. package/dist/runtime/langgraph-loop.js +37 -18
  824. package/dist/runtime/loop.d.ts +42 -6
  825. package/dist/runtime/loop.js +14 -0
  826. package/dist/runtime/maintenance-queue.d.ts +10 -0
  827. package/dist/runtime/maintenance-queue.js +10 -0
  828. package/dist/runtime/maintenance.d.ts +50 -74
  829. package/dist/runtime/maintenance.js +166 -136
  830. package/dist/runtime/model-call.d.ts +61 -15
  831. package/dist/runtime/model-call.js +128 -84
  832. package/dist/runtime/providers.d.ts +158 -27
  833. package/dist/runtime/providers.js +373 -63
  834. package/dist/runtime/quota.d.ts +17 -3
  835. package/dist/runtime/quota.js +27 -2
  836. package/dist/runtime/retired-schedulers.d.ts +7 -0
  837. package/dist/runtime/retired-schedulers.js +31 -0
  838. package/dist/runtime/run-context.service.d.ts +65 -0
  839. package/dist/runtime/run-context.service.js +236 -0
  840. package/dist/runtime/run-control.d.ts +43 -0
  841. package/dist/runtime/run-control.js +89 -0
  842. package/dist/runtime/run-drafts.d.ts +85 -0
  843. package/dist/runtime/run-drafts.js +230 -0
  844. package/dist/runtime/run-finish.d.ts +27 -18
  845. package/dist/runtime/run-finish.js +98 -51
  846. package/dist/runtime/run-jobs.d.ts +46 -0
  847. package/dist/runtime/run-jobs.js +91 -0
  848. package/dist/runtime/run-processors.d.ts +60 -0
  849. package/dist/runtime/run-processors.js +185 -0
  850. package/dist/runtime/run-queue.d.ts +90 -58
  851. package/dist/runtime/run-queue.js +566 -297
  852. package/dist/runtime/run-steps.d.ts +39 -0
  853. package/dist/runtime/run-steps.js +96 -0
  854. package/dist/runtime/run-worker.d.ts +134 -77
  855. package/dist/runtime/run-worker.js +412 -236
  856. package/dist/runtime/runtime.module.d.ts +10 -0
  857. package/dist/runtime/runtime.module.js +122 -0
  858. package/dist/runtime/step-log.d.ts +51 -0
  859. package/dist/runtime/step-log.js +111 -0
  860. package/dist/runtime/stream.controller.d.ts +28 -9
  861. package/dist/runtime/stream.controller.js +72 -13
  862. package/dist/runtime/stream.d.ts +27 -6
  863. package/dist/runtime/stream.js +102 -7
  864. package/dist/runtime/subagents/child.d.ts +58 -51
  865. package/dist/runtime/subagents/child.js +105 -86
  866. package/dist/runtime/subagents/definition.d.ts +32 -28
  867. package/dist/runtime/subagents/definition.js +89 -143
  868. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  869. package/dist/runtime/subagents/deliveries.js +228 -0
  870. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  871. package/dist/runtime/subagents/dispatch.js +336 -270
  872. package/dist/runtime/subagents/limits.d.ts +32 -8
  873. package/dist/runtime/subagents/limits.js +44 -8
  874. package/dist/runtime/subagents/messages.d.ts +95 -0
  875. package/dist/runtime/subagents/messages.js +328 -0
  876. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  877. package/dist/runtime/subagents/org-agents.js +3 -2
  878. package/dist/runtime/subagents/preamble.d.ts +4 -4
  879. package/dist/runtime/subagents/preamble.js +9 -7
  880. package/dist/runtime/subagents/progress.d.ts +10 -8
  881. package/dist/runtime/subagents/progress.js +11 -6
  882. package/dist/runtime/subagents/render.d.ts +30 -0
  883. package/dist/runtime/subagents/render.js +53 -0
  884. package/dist/runtime/subagents/roster.d.ts +27 -10
  885. package/dist/runtime/subagents/roster.js +49 -13
  886. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  887. package/dist/runtime/subagents/skill-fork.js +23 -8
  888. package/dist/runtime/subagents/status.d.ts +14 -0
  889. package/dist/runtime/subagents/status.js +23 -0
  890. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  891. package/dist/runtime/subagents/subagents.service.js +106 -0
  892. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  893. package/dist/runtime/usage-report-jobs.js +158 -0
  894. package/dist/runtime/usage-report.d.ts +121 -83
  895. package/dist/runtime/usage-report.js +355 -180
  896. package/dist/runtime/waits.d.ts +258 -81
  897. package/dist/runtime/waits.js +800 -263
  898. package/dist/sandbox/job-ids.d.ts +10 -0
  899. package/dist/sandbox/job-ids.js +10 -0
  900. package/dist/sandbox/jobs.d.ts +68 -0
  901. package/dist/sandbox/jobs.js +150 -0
  902. package/dist/sandbox/leases.d.ts +73 -82
  903. package/dist/sandbox/leases.js +162 -346
  904. package/dist/sandbox/providers.d.ts +46 -0
  905. package/dist/sandbox/providers.js +83 -0
  906. package/dist/sandbox/sandbox.module.d.ts +9 -0
  907. package/dist/sandbox/sandbox.module.js +36 -0
  908. package/dist/sandbox/sandbox.service.d.ts +359 -151
  909. package/dist/sandbox/sandbox.service.js +950 -435
  910. package/dist/sandbox/unreachable.d.ts +30 -0
  911. package/dist/sandbox/unreachable.js +108 -0
  912. package/dist/skills/catalog.d.ts +40 -26
  913. package/dist/skills/catalog.js +120 -99
  914. package/dist/skills/changes.controller.d.ts +11 -4
  915. package/dist/skills/changes.controller.js +34 -9
  916. package/dist/skills/changes.service.d.ts +31 -21
  917. package/dist/skills/changes.service.js +426 -368
  918. package/dist/skills/invocable.controller.d.ts +2 -2
  919. package/dist/skills/invocable.controller.js +10 -7
  920. package/dist/skills/invocation-keys.d.ts +1 -1
  921. package/dist/skills/invocation-keys.js +1 -1
  922. package/dist/skills/invoke.d.ts +19 -18
  923. package/dist/skills/invoke.js +68 -24
  924. package/dist/skills/package.d.ts +20 -1
  925. package/dist/skills/package.js +28 -1
  926. package/dist/skills/skills.controller.d.ts +33 -7
  927. package/dist/skills/skills.controller.js +79 -12
  928. package/dist/skills/skills.module.d.ts +6 -0
  929. package/dist/skills/skills.module.js +39 -0
  930. package/dist/skills/skills.schemas.d.ts +48 -0
  931. package/dist/skills/skills.schemas.js +61 -0
  932. package/dist/skills/skills.service.d.ts +151 -44
  933. package/dist/skills/skills.service.js +636 -204
  934. package/dist/skills/usable.d.ts +81 -0
  935. package/dist/skills/usable.js +379 -0
  936. package/dist/storage/job-ids.d.ts +6 -0
  937. package/dist/storage/job-ids.js +6 -0
  938. package/dist/storage/purge.d.ts +22 -7
  939. package/dist/storage/purge.js +55 -3
  940. package/dist/storage/storage.module.d.ts +6 -0
  941. package/dist/storage/storage.module.js +23 -0
  942. package/dist/storage/storage.service.d.ts +18 -4
  943. package/dist/storage/storage.service.js +44 -3
  944. package/dist/time-zone.d.ts +5 -0
  945. package/dist/time-zone.js +19 -0
  946. package/dist/tools/approvals.controller.d.ts +1 -1
  947. package/dist/tools/approvals.controller.js +14 -11
  948. package/dist/tools/approvals.schemas.d.ts +21 -0
  949. package/dist/tools/approvals.schemas.js +15 -0
  950. package/dist/tools/approvals.service.d.ts +53 -27
  951. package/dist/tools/approvals.service.js +365 -260
  952. package/dist/tools/breaker.d.ts +2 -2
  953. package/dist/tools/breaker.js +21 -3
  954. package/dist/tools/builtin-names.d.ts +109 -0
  955. package/dist/tools/builtin-names.js +173 -0
  956. package/dist/tools/builtins/agent.d.ts +27 -25
  957. package/dist/tools/builtins/agent.js +66 -63
  958. package/dist/tools/builtins/ask-user.d.ts +3 -3
  959. package/dist/tools/builtins/ask-user.js +3 -3
  960. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  961. package/dist/tools/builtins/builtin-tools.js +151 -0
  962. package/dist/tools/builtins/current-time.d.ts +26 -0
  963. package/dist/tools/builtins/current-time.js +99 -0
  964. package/dist/tools/builtins/handback.d.ts +28 -0
  965. package/dist/tools/builtins/handback.js +53 -0
  966. package/dist/tools/builtins/platform.d.ts +51 -0
  967. package/dist/tools/builtins/platform.js +451 -0
  968. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  969. package/dist/tools/builtins/read-tool-output.js +3 -3
  970. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  971. package/dist/tools/builtins/sandbox/bash.js +293 -41
  972. package/dist/tools/builtins/sandbox/common.d.ts +142 -40
  973. package/dist/tools/builtins/sandbox/common.js +227 -65
  974. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  975. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  976. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  977. package/dist/tools/builtins/sandbox/edit.js +65 -51
  978. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  979. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  980. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  981. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  982. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  983. package/dist/tools/builtins/sandbox/glob.js +19 -14
  984. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  985. package/dist/tools/builtins/sandbox/grep.js +155 -36
  986. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  987. package/dist/tools/builtins/sandbox/index.js +13 -5
  988. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  989. package/dist/tools/builtins/sandbox/read.js +30 -20
  990. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  991. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  992. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  993. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  994. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  995. package/dist/tools/builtins/sandbox/write.js +52 -45
  996. package/dist/tools/builtins/send-message.d.ts +56 -0
  997. package/dist/tools/builtins/send-message.js +100 -0
  998. package/dist/tools/builtins/skill-load.d.ts +32 -21
  999. package/dist/tools/builtins/skill-load.js +125 -74
  1000. package/dist/tools/builtins/skill-write.d.ts +4 -4
  1001. package/dist/tools/builtins/skill-write.js +12 -12
  1002. package/dist/tools/builtins/tool-search.d.ts +13 -9
  1003. package/dist/tools/builtins/tool-search.js +25 -14
  1004. package/dist/tools/builtins/web/errors.d.ts +8 -0
  1005. package/dist/tools/builtins/web/errors.js +53 -0
  1006. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1007. package/dist/tools/builtins/web/extract.js +271 -0
  1008. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1009. package/dist/tools/builtins/web/fetch.js +175 -0
  1010. package/dist/tools/builtins/web/index.d.ts +13 -0
  1011. package/dist/tools/builtins/web/index.js +12 -0
  1012. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1013. package/dist/tools/builtins/web/page-cache.js +77 -0
  1014. package/dist/tools/builtins/web/search.d.ts +25 -0
  1015. package/dist/tools/builtins/web/search.js +210 -0
  1016. package/dist/tools/builtins/web/url.d.ts +17 -0
  1017. package/dist/tools/builtins/web/url.js +43 -0
  1018. package/dist/tools/canonical-json.d.ts +6 -0
  1019. package/dist/tools/canonical-json.js +16 -0
  1020. package/dist/tools/connector-content.controller.d.ts +1 -1
  1021. package/dist/tools/connector-content.controller.js +11 -6
  1022. package/dist/tools/connector-content.d.ts +12 -15
  1023. package/dist/tools/connector-content.js +53 -18
  1024. package/dist/tools/connectors.controller.d.ts +16 -3
  1025. package/dist/tools/connectors.controller.js +34 -14
  1026. package/dist/tools/connectors.schemas.d.ts +12 -0
  1027. package/dist/tools/connectors.schemas.js +19 -0
  1028. package/dist/tools/connectors.service.d.ts +80 -18
  1029. package/dist/tools/connectors.service.js +529 -358
  1030. package/dist/tools/credentials.d.ts +20 -20
  1031. package/dist/tools/credentials.js +55 -34
  1032. package/dist/tools/display-names.d.ts +9 -0
  1033. package/dist/tools/display-names.js +24 -0
  1034. package/dist/tools/drift.d.ts +29 -41
  1035. package/dist/tools/drift.js +116 -84
  1036. package/dist/tools/elicitation.js +1 -1
  1037. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1038. package/dist/tools/extension-tools.controller.js +37 -0
  1039. package/dist/tools/info.d.ts +73 -13
  1040. package/dist/tools/info.js +151 -39
  1041. package/dist/tools/job-ids.d.ts +13 -0
  1042. package/dist/tools/job-ids.js +15 -0
  1043. package/dist/tools/jobs.d.ts +24 -0
  1044. package/dist/tools/jobs.js +69 -0
  1045. package/dist/tools/legacy-data.d.ts +34 -0
  1046. package/dist/tools/legacy-data.js +76 -0
  1047. package/dist/tools/legacy-keys.d.ts +51 -0
  1048. package/dist/tools/legacy-keys.js +115 -0
  1049. package/dist/tools/naming.d.ts +1 -5
  1050. package/dist/tools/naming.js +1 -7
  1051. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1052. package/dist/tools/oauth/flow-paths.js +38 -0
  1053. package/dist/tools/oauth/flow.d.ts +30 -30
  1054. package/dist/tools/oauth/flow.js +109 -81
  1055. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1056. package/dist/tools/oauth/oauth.controller.js +12 -9
  1057. package/dist/tools/oauth/tokens.d.ts +45 -10
  1058. package/dist/tools/oauth/tokens.js +70 -24
  1059. package/dist/tools/org-tool-switches.d.ts +88 -0
  1060. package/dist/tools/org-tool-switches.js +201 -0
  1061. package/dist/tools/outputs.d.ts +13 -4
  1062. package/dist/tools/outputs.js +48 -4
  1063. package/dist/tools/pipeline.d.ts +108 -80
  1064. package/dist/tools/pipeline.js +396 -409
  1065. package/dist/tools/policy.d.ts +4 -17
  1066. package/dist/tools/policy.js +49 -35
  1067. package/dist/tools/questions.controller.d.ts +2 -2
  1068. package/dist/tools/questions.controller.js +9 -6
  1069. package/dist/tools/questions.service.d.ts +26 -25
  1070. package/dist/tools/questions.service.js +201 -142
  1071. package/dist/tools/registry.d.ts +215 -84
  1072. package/dist/tools/registry.js +382 -264
  1073. package/dist/tools/resources.d.ts +1 -1
  1074. package/dist/tools/resources.js +1 -1
  1075. package/dist/tools/specs.d.ts +5 -4
  1076. package/dist/tools/specs.js +3 -1
  1077. package/dist/tools/tools.module.d.ts +10 -0
  1078. package/dist/tools/tools.module.js +113 -0
  1079. package/dist/tools/validate.js +1 -1
  1080. package/dist/ui/call-extension.d.ts +16 -0
  1081. package/dist/ui/call-extension.js +38 -0
  1082. package/dist/ui/embed-token.d.ts +9 -5
  1083. package/dist/ui/embed-token.js +34 -6
  1084. package/dist/ui/ui-stream.d.ts +22 -17
  1085. package/dist/ui/ui-stream.js +72 -12
  1086. package/dist/ui/ui.module.d.ts +7 -0
  1087. package/dist/ui/ui.module.js +28 -0
  1088. package/dist/ui/views.controller.d.ts +14 -12
  1089. package/dist/ui/views.controller.js +32 -25
  1090. package/dist/ui/views.d.ts +10 -57
  1091. package/dist/ui/views.js +58 -46
  1092. package/package.json +15 -3
  1093. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1094. package/src/migrations/0064_account_last_org.sql +7 -0
  1095. package/src/migrations/0065_conversation_archive.sql +8 -0
  1096. package/src/migrations/0066_extension_display_name.sql +4 -0
  1097. package/src/migrations/0067_agent_profiles.sql +20 -0
  1098. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1099. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1100. package/src/migrations/0070_background_tasks.sql +37 -0
  1101. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1102. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1103. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1104. package/src/migrations/0074_subagent_tree.sql +50 -0
  1105. package/src/migrations/0075_plugin_scope.sql +61 -0
  1106. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1107. package/src/migrations/0077_scope_requests.sql +52 -0
  1108. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1109. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1110. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1111. package/src/migrations/0081_platform_components.sql +129 -0
  1112. package/src/migrations/0082_platform_migration.sql +33 -0
  1113. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1114. package/src/migrations/0084_org_owned_items.sql +85 -0
  1115. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1116. package/src/migrations/0086_org_layering.sql +30 -0
  1117. package/src/migrations/0087_approval_summary.sql +6 -0
  1118. package/src/migrations/0088_environments.sql +80 -0
  1119. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1120. package/src/migrations/0090_initial_passwords.sql +27 -0
  1121. package/src/migrations/0091_account_time_zone.sql +4 -0
  1122. package/src/migrations/0092_tools_default_on.sql +27 -0
  1123. package/src/migrations/0093_connected_environments.sql +37 -0
  1124. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1125. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1126. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1127. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1128. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1129. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1130. package/src/migrations/0100_catalog_files.sql +13 -0
  1131. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1132. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1133. package/dist/catalog/upgrade-targets.js +0 -90
  1134. package/dist/conversations/sandbox-status.d.ts +0 -21
  1135. package/dist/conversations/sandbox-status.js +0 -24
  1136. package/dist/extensions/org-config.controller.d.ts +0 -24
  1137. package/dist/extensions/org-config.controller.js +0 -59
  1138. package/dist/http/gateway.module.js +0 -13
  1139. package/dist/http/health.controller.d.ts +0 -26
  1140. package/dist/http/health.controller.js +0 -79
  1141. package/dist/http/tokens.d.ts +0 -131
  1142. package/dist/http/tokens.js +0 -131
  1143. package/dist/http/zod.pipe.d.ts +0 -8
  1144. package/dist/http/zod.pipe.js +0 -14
  1145. package/dist/identity/enterprise-admin.d.ts +0 -14
  1146. package/dist/identity/enterprise-admin.js +0 -27
  1147. package/dist/identity/rate-limit.d.ts +0 -55
  1148. package/dist/identity/rate-limit.js +0 -121
  1149. package/dist/sandbox/lifecycle.d.ts +0 -21
  1150. package/dist/sandbox/lifecycle.js +0 -68
  1151. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1152. package/dist/tools/builtins/sandbox/names.js +0 -20
@@ -1,249 +1,457 @@
1
- import { type Logger, type SandboxHandle, type SandboxProvider } from "@capybara-hq/plugin-sdk";
1
+ import { type ExecResult, type SandboxActor, type SandboxHandle, type SandboxLimits, type SandboxProvider, type SandboxRoots } from "@capybara-hq/plugin-sdk";
2
2
  import type { Redis } from "ioredis";
3
3
  import { type Selectable } from "kysely";
4
+ import { BackgroundTaskStore } from "../background/store.js";
4
5
  import { type KernelConfig } from "../config/schema.js";
5
- import type { KernelDb, SandboxesTable } from "../db/kernel-schema.js";
6
+ import type { EnvironmentInstancesTable } from "../db/kernel-schema.js";
6
7
  import { ApiError } from "../errors.js";
8
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
9
+ import { KernelDb } from "../infra/database/kernel-db.js";
10
+ import type { KernelLogger } from "../log.js";
7
11
  import { SandboxLeases, type SandboxPathLease } from "./leases.js";
8
- export { SANDBOX_BUSY_PREFIX, SANDBOX_LOCK_PREFIX, SANDBOX_LOCK_TTL_MS, SandboxLockLostError, sandboxBusy, } from "./leases.js";
9
- /** `withSandbox` 回调的第三个参数。 */
12
+ import { SandboxProviders } from "./providers.js";
13
+ export { SANDBOX_LOCK_PREFIX, SANDBOX_LOCK_TTL_MS, SandboxLockLostError, sandboxBusy, } from "./leases.js";
14
+ /** The third argument of the `withSandbox` callback. */
10
15
  export interface SandboxUseInfo {
11
- /** 本次调用新建了沙箱(首次使用或重建)。 */
16
+ /** This call created the instance (first use, or a rebuild). */
12
17
  fresh: boolean;
13
- /** 之前有过实例、但已不在(被销毁、提供方返回 gone、换了提供方),这是重建的空沙箱。 */
14
- recreated: boolean;
15
- }
16
- /** 当前的 `sandbox@1` 提供方:插件名与实现。 */
17
- export interface SandboxProviderEntry {
18
- plugin: string;
19
- impl: SandboxProvider;
18
+ /**
19
+ * The environment had an instance before that is no longer there (destroyed after inactivity,
20
+ * gone at the provider, or rebuilt by another holder since this holder last used it): this is a
21
+ * new instance on the kept files, so earlier processes are gone.
22
+ */
23
+ restarted: boolean;
24
+ /**
25
+ * The environment's files were reset since this holder last used it (on request, or after they
26
+ * were lost): earlier files are gone too. Set only when true; `restarted` is then false.
27
+ */
28
+ filesReset?: true;
29
+ /**
30
+ * The instance's roots ({@link rootsOf} of its handle): every model-visible path is built from
31
+ * them (environments spec §13.1; a connected machine's real paths).
32
+ */
33
+ roots: SandboxRoots;
20
34
  }
21
- export interface SandboxServiceDeps {
22
- db: KernelDb;
23
- redis: Redis;
24
- /** 每次调用时取(提供方在插件加载后才就绪);没有提供方为 undefined。 */
25
- provider: () => SandboxProviderEntry | undefined;
26
- /** 按插件名找仍加载着的提供方(销毁换提供方前的旧实例);省略则视为找不到。 */
27
- lookup?: (plugin: string) => SandboxProvider | undefined;
28
- config: () => Pick<KernelConfig, "sandbox">;
29
- log: Pick<Logger, "info" | "warn">;
30
- /** Poll interval while waiting for a lease (ms), default 100; tests make it shorter. */
31
- lockPollMs?: number;
32
- /** Lease TTL (ms), default {@link SANDBOX_LOCK_TTL_MS}; tests make it shorter to notice a lost lease quickly. */
33
- lockTtlMs?: number;
34
- /** Lease implementation, default a {@link SandboxLeases} on `redis` (tests may wrap one). */
35
- leases?: SandboxLeases;
35
+ /** Who uses the sandbox in {@link SandboxService.withSandbox}. */
36
+ export interface SandboxUseContext {
37
+ orgId: string;
38
+ environmentId: string;
39
+ /** The agent conversation using it (a sub-agent's own for a child): what it last saw is tracked. */
40
+ holderConversationId: string;
41
+ /** Passed with every `exec` (audit and attribution). */
42
+ actor: SandboxActor;
36
43
  }
37
- type Row = Selectable<SandboxesTable>;
44
+ export type { SandboxProviderEntry } from "./providers.js";
45
+ type Row = Selectable<EnvironmentInstancesTable>;
46
+ type ExecArgs = Parameters<SandboxProvider["exec"]>[1];
38
47
  /**
39
- * One instance of a conversation's sandbox: its handle and the row's `created_at`, which the
40
- * fenced write after every `create` sets. The handle alone is not enough: sandbox-docker's handle
41
- * is the instance name, the same after a rebuild (spec §10.10).
48
+ * One instance of an environment: its handle and the row's `created_at`, which the fenced write
49
+ * after every `create` sets. The handle alone is not enough: sandbox-docker's handle is the
50
+ * instance name, the same after a rebuild (spec §10.10).
42
51
  */
43
52
  interface Instance {
44
53
  handle: SandboxHandle;
45
54
  createdAt: number;
46
55
  }
56
+ /**
57
+ * The provider {@link SandboxService.withSandbox} passes to its callback: every `exec` carries the
58
+ * holder's tag and the caller's actor, so the callback passes neither.
59
+ */
60
+ export type HeldProvider = Omit<SandboxProvider, "exec"> & {
61
+ exec(h: SandboxHandle, args: Omit<ExecArgs, "tag" | "actor">): Promise<ExecResult>;
62
+ };
63
+ /**
64
+ * The provider {@link SandboxService.ifRunning} passes to its callback: every `exec` carries the
65
+ * holder's tag; the caller names the actor.
66
+ */
67
+ export type TaggedProvider = Omit<SandboxProvider, "exec"> & {
68
+ exec(h: SandboxHandle, args: Omit<ExecArgs, "tag">): Promise<ExecResult>;
69
+ };
70
+ /** What {@link SandboxService.ifRunning} did. */
71
+ export type IfRunningResult<T> = {
72
+ kind: "ran";
73
+ value: T;
74
+ }
75
+ /**
76
+ * No instance, or it is not running: `status` is the instance row's (`none`, `suspended`,
77
+ * `creating`, `destroyed`, or `running` recorded with another provider), `gone` without a row.
78
+ */
79
+ | {
80
+ kind: "not_running";
81
+ status: Row["status"] | "gone";
82
+ }
83
+ /** The environment now records another instance (a rebuild). */
84
+ | {
85
+ kind: "other_instance";
86
+ };
87
+ /** The provider-side name of an environment's file system and instance. */
88
+ export declare const environmentResourceName: (environmentId: string) => string;
89
+ /** The environment is missing, deleted, or not in the caller's org (404; ids cannot be probed). */
90
+ export declare const environmentNotFound: () => ApiError;
91
+ /**
92
+ * The environment's file system is gone at the provider (409); never replaced silently. On a
93
+ * connected machine (`device`, details `[{ source: "device" }]`) the directory is the machine
94
+ * owner's: `capybara-device logout`, then `login` into the environment, recreates it (ruling R24).
95
+ */
96
+ export declare const environmentFilesLost: (device?: boolean) => ApiError;
47
97
  /**
48
98
  * The row still records the instance `gone` (same handle and same `created_at`). Handles compare
49
99
  * canonically: a jsonb round trip reorders a multi-key handle's keys (final review m9).
50
100
  */
51
101
  export declare const isInstance: (row: Pick<Row, "handle" | "created_at">, gone: Instance | null) => boolean;
52
102
  /**
53
- * Concurrent commands a provider gets (spec §10.7): `max` when it declares both `concurrentExec`
54
- * and `killTagged`, else 1 (one call at a time, the behavior before phase C).
55
- */
56
- export declare function sandboxConcurrency(impl: Pick<SandboxProvider, "concurrentExec" | "killTagged">, max: number): number;
57
- /**
58
- * 启动时要提醒运维的沙箱配置问题(英文日志):
59
- * - `runtime.maxRunSeconds` 小于 `sandbox.limits.maxCommandSeconds`:长命令会被运行时限截断(Ruling M20);
60
- * - `sandbox.limits.egress` 为 open、但当前提供方插件没打开 `allowOpenEgress`:每次创建沙箱都会被拒。
61
- * 两个时限都是默认值(900 < 7200,已知的取舍)时只记 info;运维改过其中一个却仍不一致时才 warn。
62
- * - the provider declares only one of `concurrentExec` and `killTagged`: it is used one call at a
63
- * time (spec §10.7).
103
+ * Sandbox config problems to tell operators at startup (English log lines):
104
+ * - `runtime.maxRunSeconds` below `sandbox.limits.maxCommandSeconds`: long commands are cut by the
105
+ * run time limit (Ruling M20);
106
+ * - `sandbox.limits.egress` is open but the current provider plugin has no `allowOpenEgress`: every
107
+ * instance creation is refused.
108
+ * With both time limits at their defaults (900 < 7200, a known trade-off) it is only info; warn
109
+ * when an operator changed one and they still disagree.
64
110
  */
65
- export declare function sandboxConfigWarnings(cfg: Pick<KernelConfig, "runtime" | "sandbox" | "extensionConfig">, providerPlugin?: string, impl?: Pick<SandboxProvider, "concurrentExec" | "killTagged">): {
111
+ export declare function sandboxConfigWarnings(cfg: Pick<KernelConfig, "runtime" | "sandbox" | "extensionConfig">, providerPlugin?: string): {
66
112
  level: "info" | "warn";
67
113
  message: string;
68
114
  }[];
69
- /** 没有沙箱提供方时的错误(503)。 */
115
+ /** No sandbox provider (503). */
70
116
  export declare const sandboxUnavailable: () => ApiError;
71
117
  /**
72
- * 内核的沙箱服务(M5 T7):在 `sandbox@1` 提供方之上,每个对话一个沙箱。
118
+ * The kernel's sandbox service over the `sandbox@2` provider, keyed by **environment** (spec
119
+ * 2026-11-07-environments-design §4.2, §5.1): one file system kept until the environment is
120
+ * deleted, plus one instance attached to it that comes and goes; all conversations bound to the
121
+ * environment (and their sub-agents) share both.
73
122
  *
74
- * - **懒创建**:第一次 {@link withSandbox} 才创建;状态在 PG 表 `sandboxes`。
75
- * - **Leases** (phase C, spec §10, {@link SandboxLeases}): using a sandbox recorded `running` with
76
- * the current provider takes a **shared** lease, so up to `sandbox.maxConcurrentCommands` holders
77
- * (commands of parallel sub-agents) run at once ({@link sandboxConcurrency}: 1 for a provider
78
- * without `concurrentExec` + `killTagged`). Every lifecycle change (create, resume, rebuild,
79
- * suspend, destroy) takes the **exclusive** lease, alone; a caller that needs one on the use path
80
- * sets the intent so new shared leases wait for it, and downgrades to a shared lease to run its
81
- * own command once the sandbox is running. Waiting is capped at `sandbox.lockWaitSeconds`
82
- * (`sandbox.busy`); two replicas using it for the first time at once still build only one.
83
- * - **防护**:exclusive holders read `generation` and compare-and-increment it with every write of
84
- * status / handle ({@link SandboxLockLostError}); every acquisition (shared ones too) bumps it
85
- * first, so a stale exclusive holder's later writes fail. Shared holders write nothing else but
86
- * `last_used_at` (monotonic). A lost
87
- * lease aborts the signal passed to `fn` and to maintenance provider calls.
88
- * - **休眠与销毁**由维护队列定期调用 {@link suspendIdle} / {@link destroyInactive};它们只试一次 exclusive
89
- * lease and skip a sandbox with any holder; a sandbox past `maxRunningMinutes` gets the intent for
90
- * a short window (about a second) so the suspension can get in when its commands end.
91
- * - **透明恢复**:已休眠的在下次使用时恢复;恢复返回 `gone`、已销毁、记录的提供方不是当前提供方、
92
- * 或 `fn` 抛 `SandboxGoneError`(重试一次)时重建空沙箱,`recreated` 为 true(工具层告诉模型「之前的文件已不在」)。
93
- * Several holders hitting `gone` together rebuild once: the others find the new instance.
94
- * - **Takeover** (spec §10.5): every holder records itself in `capk:sandbox-holders:<conv>` (again
95
- * before each `exec`) and its commands carry its lease token as `tag`. An acquirer that finds a
96
- * record without a live lease (a crashed holder) kills its commands: `killTagged` on the shared
97
- * path whenever the provider has it (else `killAll` only while it is the one shared holder),
98
- * `killAll` under the exclusive lease (no live sibling can exist). The single marker
99
- * `capk:sandbox-busy:<conv>` of kernels before phase C sends the next use down the exclusive
100
- * path, which `killAll`s; holders of this kernel write it as `v2` for older replicas (§10.8),
101
- * which this kernel ignores. A sandbox just resumed from `suspended` is `killAll`ed too. Failures
102
- * are only warned (the in-sandbox time limit is the backstop).
123
+ * - **Lazy creation**: the first {@link withSandbox} creates the file system
124
+ * (`createFileSystem`, name `cap-env-<environmentId>`) and then the instance on it; state lives
125
+ * in `environment_instances`. A file system gone at the provider is never replaced silently:
126
+ * `fs_status` becomes `lost` and uses fail with `environment.files_lost` until
127
+ * {@link resetFileSystem}.
128
+ * - **Leases** (phase C, spec §10, {@link SandboxLeases}), keyed by environment id: using an
129
+ * instance recorded `running` with the current provider takes a **shared** lease, so up to
130
+ * `sandbox.maxConcurrentCommands` holders (all sessions of the environment) run at once. Every
131
+ * lifecycle change (create, resume, rebuild, suspend, destroy, reset) takes the **exclusive**
132
+ * lease, alone; a caller that needs one on the use path sets the intent so new shared leases wait
133
+ * for it, and downgrades to a shared lease to run its own command once the instance runs.
134
+ * Waiting is capped at `sandbox.lockWaitSeconds` (`sandbox.busy`); two replicas using it for the
135
+ * first time at once still build only one.
136
+ * - **Fencing**: exclusive holders read `generation` and compare-and-increment it with every state
137
+ * write ({@link SandboxLockLostError}); every acquisition (shared ones too) bumps it first, so a
138
+ * stale exclusive holder's later writes fail. Shared holders write nothing else but
139
+ * `last_used_at` (monotonic). A lost lease aborts the signal passed to `fn` and to maintenance
140
+ * provider calls.
141
+ * - **Suspension and destruction**: the sweeps (`SandboxSweepJobs`, crons) call
142
+ * {@link suspendIdle} / {@link destroyInactive}; they try the exclusive lease once and skip an
143
+ * environment with any holder; one past `maxRunningMinutes` gets the intent for a short window
144
+ * (about a second) so the suspension can get in when its commands end. Inactivity destroys only
145
+ * the instance (files kept); a deleted environment or org loses its files too.
146
+ * - **Transparent recovery**: a suspended instance is resumed on next use; when `resume` returns
147
+ * `gone`, the instance was destroyed, or `fn` throws `SandboxGoneError` (retried once), a new
148
+ * instance is created on the kept files and `restarted` is true. Several holders hitting `gone`
149
+ * together rebuild once: the others find the new instance.
150
+ * - **Takeover** (spec §10.5; environments spec §4.2): every holder records itself in
151
+ * `capk:sandbox-holders:<env>` (again before each `exec`) and its commands carry its lease token
152
+ * as `tag`. An acquirer that finds a record without a live lease (a crashed holder) kills only
153
+ * that holder's commands (`killTagged`): other conversations of the environment may be running
154
+ * commands. `killAll` runs only under the exclusive lease, before the downgrade, on an instance
155
+ * this holder just resumed from `suspended` (nobody else can hold it; a provider that keeps
156
+ * memory across a pause brings old commands back); it also covers crashed holders' records,
157
+ * which it claims. A freshly created instance has nothing to kill. Failures are only warned (the
158
+ * in-sandbox time limit is the backstop).
103
159
  * - **Instance identity**: a holder that hits `gone` names the instance by its handle and the
104
160
  * row's `created_at` (set by the fenced write after each `create`); the handle alone is the same
105
161
  * after a rebuild on providers whose handle is the instance name (sandbox-docker).
106
162
  *
107
- * 换提供方会泄漏旧实例:新提供方销毁不了旧提供方的实例,只有旧提供方仍加载时才能清理(记在 `prev_*` 列)。
108
- * 没有提供方时 {@link available} 为 false,使用时抛 `sandbox.unavailable`(503)。本身无进程内状态,可多副本共用。
163
+ * - **Provider per environment** (environments spec §6): each call resolves the provider from
164
+ * the environment's `environments.provider` ({@link providerForEnvironment}): a `device`
165
+ * environment runs on the kernel-internal `@device` provider (never the cloud one), a cloud
166
+ * environment on the loaded `sandbox@2` extension. A `@device` instance is never suspended or
167
+ * destroyed for inactivity; a deleted `@device` environment (or one of a deleted org) is
168
+ * destroyed by the sweep like any other.
169
+ *
170
+ * Files kept by another provider than the current one make the environment unusable
171
+ * (`environment.unavailable`) until that provider is back; deleting it still works while that
172
+ * provider is loaded ({@link SandboxProviders.forName}). Without the environment's provider
173
+ * {@link availableFor} is false and uses throw `sandbox.unavailable` (503). No in-process state:
174
+ * replicas share it through PG and Redis.
109
175
  */
110
176
  export declare class SandboxService {
111
- private readonly d;
177
+ private readonly db;
178
+ /** The record of the instance each holder last used (`capk:sandbox-seen:…`). */
179
+ private readonly redis;
112
180
  private readonly leases;
113
- private readonly pollMs;
114
- constructor(d: SandboxServiceDeps);
115
- /** 是否有沙箱提供方。 */
116
- get available(): boolean;
117
- /** Concurrent holders the provider gets ({@link sandboxConcurrency} with the current config). */
118
- effectiveCap(p: SandboxProviderEntry): number;
181
+ /** The providers (read at every call: providers are ready after the extension load). */
182
+ private readonly providers;
183
+ private readonly config;
184
+ private readonly log;
185
+ /** Background tasks lost while their process may live on (killed after a resume). */
186
+ private readonly background;
187
+ constructor(db: KernelDb,
188
+ /** The record of the instance each holder last used (`capk:sandbox-seen:…`). */
189
+ redis: Pick<Redis, "set">, leases: SandboxLeases,
190
+ /** The providers (read at every call: providers are ready after the extension load). */
191
+ providers: Pick<SandboxProviders, "cloud" | "forName">, config: Pick<KernelConfigService, "get">, log: Pick<KernelLogger, "info" | "warn">,
192
+ /** Background tasks lost while their process may live on (killed after a resume). */
193
+ background: Pick<BackgroundTaskStore, "pendingKills" | "clearKill">);
194
+ /** Poll interval while waiting for a lease (the leases' own). */
195
+ private get pollMs();
196
+ /**
197
+ * Whether there is a cloud sandbox provider (a loaded `sandbox@2` extension). For gates that have
198
+ * no environment yet (tool listing, skill files); a call on an environment asks
199
+ * {@link availableFor}.
200
+ */
201
+ get cloudAvailable(): boolean;
202
+ /** Whether the environment's provider is there (`@device` registered, or a cloud provider). */
203
+ availableFor(environmentId: string): Promise<boolean>;
119
204
  /**
120
- * 该对话沙箱的对外状态(只读,不拿锁):`running` / `suspended` 与最近使用时间。
121
- * 还没有、已销毁、或停在 `creating`(正在创建,或创建失败等下次使用重建)的都返回 null(界面显示「未创建」)。
205
+ * The provider the environment works with, read from its row ({@link providerForEnvironment});
206
+ * a missing row (or one of another org, with `orgId`) reads as a cloud environment, whose use
207
+ * then fails as not found.
122
208
  */
123
- status(orgId: string, conversationId: string): Promise<{
209
+ private providerOf;
210
+ /** {@link providerOf}, or `sandbox.unavailable` (503) without it. */
211
+ private require;
212
+ /** Concurrent holders of one environment (`sandbox.maxConcurrentCommands`, read at every use). */
213
+ private get cap();
214
+ /**
215
+ * The org's effective sandbox limits (spec §8.4): the deployment's `sandbox.limits`, egress
216
+ * narrowed by the org setting `sandboxEgress` (Ruling M19), cpu / memory per the super admin's
217
+ * org override (C19 / Ruling M16). Instances are created with them; phase 1 environments use
218
+ * them unchanged.
219
+ */
220
+ orgLimits(orgId: string): Promise<SandboxLimits>;
221
+ /**
222
+ * The environment's instance state as shown to people (read only, no lease): `running` /
223
+ * `suspended` and the last use. No instance, a destroyed one, or one stuck in `creating` (being
224
+ * created, or a failed create the next use retries) is null.
225
+ */
226
+ status(orgId: string, environmentId: string): Promise<{
124
227
  status: "running" | "suspended";
125
228
  lastUsedAt: Date;
126
229
  } | null>;
127
230
  /**
128
- * A short lease on one path of the conversation's sandbox around the kernel's own
129
- * read-modify-write of that file (spec §10.4); waits up to 30 s, then throws
130
- * `SandboxPathBusyError`. Its `signal` aborts when a renewal finds it lost.
131
- */
132
- pathLease(conversationId: string, path: string, signal: AbortSignal): Promise<SandboxPathLease>;
133
- /**
134
- * 在该对话(the sandbox conversation)的沙箱上执行 `fn`: take a lease → make sure the sandbox runs
135
- * (create / resume / rebuild, under the exclusive lease) → `fn` under a shared lease → update
136
- * `last_used_at` → release.
137
- * - 等待超过 `sandbox.lockWaitSeconds` 抛 `sandbox.busy`(409);`signal` 中止等待与创建 / 恢复。
138
- * - `fn` 的第四个参数是 `signal` 与「lease 已丢失」的合并:执行命令时用它,lease 丢失就中止。
139
- * - The provider passed to `fn` labels every `exec` with this holder's tag.
140
- * - `fn` 抛 `SandboxGoneError`(实例已不在)时重建(or take the instance another holder rebuilt)、
141
- * 以 `recreated: true` 再调用一次;再次 gone 则抛出。其余错误原样抛出。
142
- * - `holderConversationId` (default `conversationId`): the agent conversation using it, a
143
- * sub-agent's own for a child. When that holder last used another instance (another holder
144
- * rebuilt it meanwhile), `info.recreated` is true, so it learns its files are gone (final
145
- * review m5).
146
- */
147
- withSandbox<T>(ctx: {
148
- orgId: string;
149
- conversationId: string;
150
- holderConversationId?: string;
151
- }, fn: (h: SandboxHandle, p: SandboxProvider, info: SandboxUseInfo, signal: AbortSignal) => Promise<T>, signal: AbortSignal): Promise<T>;
152
- /**
153
- * Records that `holder` uses the instance of `e` (`capk:sandbox-seen:<conv>:<holder>`, its
154
- * `created_at`, with a TTL of the inactivity destruction plus a day) and marks `e` recreated
155
- * when the holder last used another instance. Best effort: a Redis error only logs.
231
+ * The instance the environment records now (its `created_at`), while it has one that runs or is
232
+ * suspended; null otherwise. Read without a lease: a caller inside `withSandbox` reads the
233
+ * instance its own lease keeps.
234
+ */
235
+ currentInstance(environmentId: string): Promise<{
236
+ createdAt: Date;
237
+ } | null>;
238
+ /**
239
+ * Runs `fn` on the environment's instance only while it runs the instance created at
240
+ * `instance.createdAt` (background tasks, spec 2026-11-05-background-bash-design §4.3). It never
241
+ * creates, resumes or rebuilds one: an instance that is missing, suspended, being created or
242
+ * destroyed (or recorded with another provider) is `not_running`, one that records another
243
+ * instance is `other_instance`. Otherwise `fn` runs under a shared lease, as a `withSandbox`
244
+ * holder does (its tag on every exec, crashed holders' commands killed), and `last_used_at`
245
+ * moves forward when it ends. Waits for the lease up to `sandbox.lockWaitSeconds`
246
+ * (`sandbox.busy`); `signal` (optional) ends the wait with its abort reason. The signal passed
247
+ * to `fn` aborts with `signal` or when the lease is lost. Errors of `fn` (`SandboxGoneError`
248
+ * too) are thrown as they are.
249
+ */
250
+ ifRunning<T>(environmentId: string, instance: {
251
+ createdAt: Date;
252
+ }, fn: (p: TaggedProvider, h: SandboxHandle, signal: AbortSignal) => Promise<T>, signal?: AbortSignal): Promise<IfRunningResult<T>>;
253
+ /**
254
+ * A short lease on one path of the environment around the kernel's own read-modify-write of
255
+ * that file (spec §10.4); waits up to 30 s, then throws `SandboxPathBusyError`. Its `signal`
256
+ * aborts when a renewal finds it lost.
257
+ */
258
+ pathLease(environmentId: string, path: string, signal: AbortSignal): Promise<SandboxPathLease>;
259
+ /**
260
+ * Runs `fn` on the environment's instance: take a lease → make sure the instance runs (file
261
+ * system, create / resume / rebuild, under the exclusive lease) → `fn` under a shared lease →
262
+ * update `last_used_at` → release.
263
+ * - Waiting longer than `sandbox.lockWaitSeconds` throws `sandbox.busy` (409); `signal` aborts
264
+ * the wait and the creation / resume.
265
+ * - The fourth argument of `fn` combines `signal` with the lease's: use it for commands, so they
266
+ * stop when the lease is lost.
267
+ * - The provider passed to `fn` labels every `exec` with this holder's tag and `ctx.actor`.
268
+ * - When `fn` throws `SandboxGoneError` (the instance is gone) the instance is rebuilt on the
269
+ * kept files (or the one another holder rebuilt is taken) and `fn` runs once more with
270
+ * `restarted: true`; a second `gone` is thrown. Other errors are thrown as they are.
271
+ * - Lost files throw `environment.files_lost` (409), also when `fn` throws
272
+ * `FileSystemGoneError` (the files are then recorded lost, ruling R24).
273
+ * - When `ctx.holderConversationId` last used another instance (another holder rebuilt it
274
+ * meanwhile), `info.restarted` is true, so it learns its processes are gone (final review m5).
275
+ */
276
+ withSandbox<T>(ctx: SandboxUseContext, fn: (h: SandboxHandle, p: HeldProvider, info: SandboxUseInfo, signal: AbortSignal) => Promise<T>, signal: AbortSignal): Promise<T>;
277
+ /**
278
+ * Ruling R24: an operation on the held instance `e` found its file system gone. Records
279
+ * `fs_status = 'lost'` while the row still records that instance on its file system (the
280
+ * instance handle stays, so a reset still destroys it), moving the fence on, and returns
281
+ * `environment.files_lost` to throw. Uses then fail until the files are reset (a connected
282
+ * machine: until a new login, which resets the row). A failed write only logs.
283
+ */
284
+ private filesGone;
285
+ /**
286
+ * Records that `holder` uses the instance of `e` (`capk:sandbox-seen:<env>:<holder>` =
287
+ * `<created_at>:<fs_resets>`, with a TTL of the inactivity destruction plus a day). When the
288
+ * holder last used another instance under the same reset count `e` is marked restarted (files
289
+ * kept); under another count it is marked `filesReset` instead. The count, not the provider's
290
+ * file system id, tells them apart: a provider may give the new file system the old id
291
+ * (sandbox-docker's volumes are named after the environment). Best effort: a Redis error only
292
+ * logs.
156
293
  */
157
294
  private seenBy;
158
- /** Runs `fn` as the holder `e`: its tag on every exec, its lease's signal. */
295
+ /** Runs `fn` as the holder `e`: its tag and the caller's actor on every exec, its lease's signal. */
159
296
  private runAs;
160
297
  /**
161
298
  * Becomes a holder: loops until it has a shared lease on a running instance, or `sandbox.busy`.
162
- * A sandbox recorded `running` (with the current provider, not the `gone` instance, and no legacy
163
- * busy marker) is used under a shared lease; otherwise the exclusive lease (with intent) makes it
164
- * run and is downgraded. One token serves both, so the waiter passes its own intent.
299
+ * An instance recorded `running` (with the current provider, not the `gone` instance) is used
300
+ * under a shared lease; otherwise the exclusive lease (with intent) makes it run and is
301
+ * downgraded. One token serves both, so the waiter passes its own intent.
165
302
  */
166
303
  private enter;
167
304
  private clearIntent;
168
305
  private readRow;
169
- /** Recorded running with the current provider, and not the instance found gone. */
306
+ /** The instance row belongs to another org: reported as not found, so ids cannot be probed. */
307
+ private foreign;
308
+ /**
309
+ * Recorded running with the current provider on files not lost (lost ones go through the
310
+ * exclusive path, which refuses them), and not the instance found gone.
311
+ */
170
312
  private usable;
171
313
  /**
172
- * Under a just-taken shared lease: confirms the row is still usable (else releases and returns
173
- * null), records the holder and kills crashed holders' commands.
314
+ * Under a just-taken shared lease: confirms the row is still `accept`ed (else releases and
315
+ * returns null), records the holder and kills crashed holders' commands.
174
316
  */
175
317
  private asShared;
176
318
  /**
177
- * Under a just-taken exclusive lease: makes the sandbox run (create / resume / rebuild when the
178
- * recorded instance is the one found gone), kills leftovers, then downgrades to a shared lease.
319
+ * Under a just-taken exclusive lease: makes the instance run (file system, create / resume /
320
+ * rebuild when the recorded instance is the one found gone), kills leftovers, then downgrades to
321
+ * a shared lease. Crashed holders' records are claimed here: on an instance just resumed from
322
+ * `suspended` one `killAll` covers them and anything else left (nobody else holds the instance),
323
+ * on a new instance there is nothing to kill, and on one that already ran their tags are killed.
179
324
  */
180
325
  private asExclusive;
181
326
  /** Ends a holder: unregisters it before releasing its lease, then moves `last_used_at` forward. */
182
327
  private leave;
183
328
  private register;
184
329
  private unregister;
185
- /**
186
- * Crashed holders' tags (claimed), and an older kernel's busy marker when `exclusiveToken` is
187
- * the caller's exclusive lease; a Redis error counts as none.
188
- */
330
+ /** Crashed holders' tags (claimed); a Redis error counts as none. */
189
331
  private claim;
332
+ /** Kills the commands of crashed holders by their tags (`killTagged`); nothing without tags. */
333
+ private killTagged;
190
334
  /** Runs one kill call: gone and abort are thrown, other failures only warned. */
191
335
  private kill;
192
336
  /**
193
- * 休眠:空闲超过 `suspendAfterIdleMinutes`、或连续运行超过 `maxRunningMinutes` 的运行中沙箱。
194
- * Skips a sandbox with any holder; one past `maxRunningMinutes` gets the intent for one poll
195
- * window (about a second) first. 返回本次休眠的个数。由维护队列每分钟调用。
337
+ * Suspends running instances idle longer than `suspendAfterIdleMinutes` or running continuously
338
+ * longer than `maxRunningMinutes`. Skips an environment with any holder; one past
339
+ * `maxRunningMinutes` gets the intent for one poll window (about a second) first. Returns how
340
+ * many it suspended. Called every minute by the `sandbox-suspend-idle` cron.
196
341
  */
197
342
  suspendIdle(now: Date): Promise<number>;
198
343
  /**
199
- * 销毁:超过 `destroyAfterInactiveDays` 没用过的、所属组织已删除的、对话已不存在的沙箱
200
- * (对话已不存在的,销毁后删掉记录)。有 holder 的跳过。返回本次销毁的个数。由维护队列每小时调用。
344
+ * Destruction sweep: an instance unused for longer than `destroyAfterInactiveDays` is destroyed
345
+ * (the instance only; the file system is kept and the next use builds a new instance on it); an
346
+ * environment that was deleted, or whose org was deleted, loses its instance and its file system
347
+ * and its row is deleted (as {@link destroyEnvironment} does). Environments with any holder are
348
+ * skipped. Inactivity never destroys a `@device` instance; a gone `@device` environment is
349
+ * destroyed like any other while `@device` is registered. Returns how many it destroyed. Called
350
+ * hourly by the `sandbox-destroy-inactive` cron.
201
351
  */
202
352
  destroyInactive(now: Date): Promise<number>;
203
353
  /**
204
- * 立即销毁该对话的沙箱(对话删除、离职处理时调用);没有沙箱或已销毁时什么也不做。
205
- * Waits for the exclusive lease (with intent, so running commands finish and new ones wait) up
206
- * to 10 minutes. 没有提供方时只记 warn。
354
+ * Destroys the environment's instance, then its file system, then deletes its instance row
355
+ * (environment deletion, offboarding); nothing to do without a row. Waits for the exclusive lease
356
+ * (with intent, so running commands finish and new ones wait) up to 10 minutes. Without the
357
+ * environment's provider it throws and the row stays, marked `sweep_failed_at` (the job is
358
+ * retried, and the destruction sweep finishes a deleted environment once the provider is back).
359
+ * Files kept by another provider that is not loaded cannot be destroyed: it throws and the row
360
+ * stays.
361
+ */
362
+ destroyEnvironment(environmentId: string): Promise<void>;
363
+ /**
364
+ * Starts the environment over with empty files (after `environment.files_lost`, or on request):
365
+ * under the exclusive lease (waited for like {@link destroyEnvironment}) destroys any instance and
366
+ * the file system (a `lost` one is only dropped), and records no file system; the next use
367
+ * creates a new one. Nothing to do without a row. Throws `sandbox.unavailable` without a provider.
207
368
  */
208
- destroyFor(conversationId: string): Promise<void>;
369
+ resetFileSystem(environmentId: string): Promise<void>;
209
370
  /**
210
- * 接手前任:杀掉沙箱里遗留的全部命令(killAll)。实例已不在(SandboxGoneError)与中止照常抛出(交给 withSandbox 重建 /
211
- * 结束);其余失败只记 warn。提供方没有 `killAll` 时只记 info。
371
+ * Under the exclusive lease (before the downgrade), on an instance just resumed from
372
+ * `suspended`: kills every command left in it (`killAll`), crashed holders' (`dead`, already
373
+ * claimed) included. Never on the shared path: other holders may be running commands. A gone
374
+ * instance (`SandboxGoneError`) and an abort are thrown (`withSandbox` rebuilds / ends); other
375
+ * failures are only warned.
212
376
  */
213
377
  private killLeftovers;
214
- private require;
215
378
  /**
216
- * 防护写入:lease 仍在、且记录的 generation 仍是锁内读到的值时才写(并加一);否则抛 {@link SandboxLockLostError}。
379
+ * Under the exclusive lease, right after a resume or a (re)build: kills the sessions of the
380
+ * background tasks marked lost while their process may live on (`kill_pending`), in one exec of
381
+ * `pkill -KILL -s <sid>`, then clears their flags. Tasks of another instance have no process
382
+ * here and are only cleared. A gone instance and an abort are thrown; another failure is warned
383
+ * and leaves the flags of this instance's tasks for the next resume.
384
+ */
385
+ private killPendingTasks;
386
+ /**
387
+ * A fenced write: only while the lease holds and the row's generation is still the one read
388
+ * under it (and incremented); otherwise {@link SandboxLockLostError}.
217
389
  */
218
390
  private fenced;
219
- /** 扫描的候选:上次扫描失败的排在后面,其余按最久未用在前。 */
391
+ /** Sweep candidates: those whose last sweep failed come last, the rest least recently used first. */
220
392
  private candidates;
221
393
  /**
222
394
  * One try at the exclusive lease: null → false; else runs `fn`. With `overdue` (past
223
- * `maxRunningMinutes`) a busy sandbox gets the intent for about a second, so new commands wait
224
- * briefly and the sweep gets in if the running ones end. Failures are warned, recorded in
395
+ * `maxRunningMinutes`) a busy environment gets the intent for about a second, so new commands
396
+ * wait briefly and the sweep gets in if the running ones end. Failures are warned, recorded in
225
397
  * `sweep_failed_at` (sorted last next time) and return false.
226
398
  */
227
399
  private tryLocked;
228
400
  /**
229
- * Under the exclusive lease: make the conversation's sandbox run. `gone`: the instance a holder
401
+ * Under the exclusive lease: make the environment's instance run. `gone`: the instance a holder
230
402
  * found gone; when it is still the recorded one it is rebuilt, when another holder already
231
403
  * rebuilt it the new one is used.
232
404
  */
233
405
  private ensure;
234
406
  /**
235
- * 在锁内创建:先防护地重置为 creating,再调提供方,最后防护地写入句柄。
236
- * 写句柄时发现锁已丢失:尽力销毁刚建好的实例,再抛 {@link SandboxLockLostError}。
407
+ * Under the lease: fenced reset to `creating`, the file system when there is none
408
+ * (`createFileSystem`, its handle written fenced), then the instance on it, then a fenced write
409
+ * of the instance handle. `FileSystemGoneError` from `create` records `fs_status = 'lost'` and
410
+ * throws `environment.files_lost`. When the instance handle cannot be written (lease lost), the
411
+ * new instance is destroyed (best effort) before {@link SandboxLockLostError} is thrown.
237
412
  */
238
413
  private create;
239
414
  /**
240
- * 用旧提供方销毁别的提供方创建的实例:旧提供方仍加载且销毁成功 → false;否则 warn 并返回 true(需要留着记录)。
415
+ * Destroys the file system another provider may have made under the environment's name without
416
+ * the kernel recording it (`destroyFileSystemByName`; not there is success). That provider not
417
+ * loaded, or a failure, is only warned (the files may leak there) so the environment stays
418
+ * usable; an abort is thrown.
419
+ */
420
+ private dropUnrecordedFiles;
421
+ /**
422
+ * Destroys an instance of another provider with that provider: still loaded and destroyed →
423
+ * false; otherwise warns and returns true (the record must be kept).
241
424
  */
242
425
  private retire;
243
- /** 在锁内:销毁实例(与遗留的旧提供方实例);对话已不存在的删掉记录,否则标记 destroyed。 */
426
+ /**
427
+ * Under the lease: destroys the row's instance (and a leaked one of an earlier provider). An
428
+ * instance without a handle (a create that ended before the handle was recorded) is destroyed by
429
+ * name. Returns the `prev_*` patch for instances that could not be destroyed.
430
+ */
431
+ private destroyInstance;
432
+ /**
433
+ * Under the lease: destroys the row's file system with the provider that made it (by name when
434
+ * no handle was recorded: `createFileSystem` may have finished before the kernel stopped). With
435
+ * that provider not loaded it throws (the row must stay for a retry), or with `lenient` only
436
+ * warns (the files leak at that provider).
437
+ */
438
+ private destroyFiles;
439
+ /**
440
+ * Under the lease: `instance` destroys the instance and marks the row `destroyed` (the file
441
+ * system stays); `environment` also destroys the file system and deletes the row.
442
+ */
244
443
  private destroyRow;
245
- /** 该休眠的:本提供方创建、运行中,且空闲到期或连续运行超时。 */
444
+ /** Due for suspension: made by this provider, running, and idle or running for too long. */
246
445
  private suspendDue;
247
- /** 该销毁的:未销毁,且不活跃到期、组织已删除或对话已不存在。 */
248
- private destroyDue;
446
+ /** The provider of an instance row: an internal one (`@device`) by name, else the cloud one. */
447
+ private rowProvider;
448
+ /**
449
+ * A row the idle sweeps may touch: not on a kernel-internal provider (`@device` instances live on
450
+ * people's machines and are never suspended or destroyed for inactivity).
451
+ */
452
+ private cloudRow;
453
+ /** The environment was deleted, or its org was: the instance and the files go. */
454
+ private environmentGone;
455
+ /** Due for instance destruction: an instance (or a create in progress) unused for too long. */
456
+ private instanceDue;
249
457
  }