@capybara-hq/kernel 0.1.0-rc.1 → 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 (1146) hide show
  1. package/bootstrap.json +85 -5
  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 -202
  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 +36 -2
  228. package/dist/config/schema.js +226 -25
  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 -71
  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/secrets.d.ts +10 -2
  279. package/dist/ctx/secrets.js +7 -3
  280. package/dist/db/kernel-schema.d.ts +550 -25
  281. package/dist/db/pool.d.ts +10 -0
  282. package/dist/db/pool.js +4 -0
  283. package/dist/devices/device-auth.controller.d.ts +42 -0
  284. package/dist/devices/device-auth.controller.js +116 -0
  285. package/dist/devices/device-auth.d.ts +119 -0
  286. package/dist/devices/device-auth.js +403 -0
  287. package/dist/devices/device-auth.module.d.ts +7 -0
  288. package/dist/devices/device-auth.module.js +25 -0
  289. package/dist/devices/device-gateway.d.ts +128 -0
  290. package/dist/devices/device-gateway.js +530 -0
  291. package/dist/devices/device-provider.d.ts +89 -0
  292. package/dist/devices/device-provider.js +151 -0
  293. package/dist/devices/device-routes.d.ts +36 -0
  294. package/dist/devices/device-routes.js +90 -0
  295. package/dist/devices/devices.module.d.ts +16 -0
  296. package/dist/devices/devices.module.js +44 -0
  297. package/dist/devices/dto.d.ts +66 -0
  298. package/dist/devices/dto.js +44 -0
  299. package/dist/devices/keys.d.ts +25 -0
  300. package/dist/devices/keys.js +25 -0
  301. package/dist/devices/machines.d.ts +118 -0
  302. package/dist/devices/machines.js +366 -0
  303. package/dist/devices/relay.d.ts +100 -0
  304. package/dist/devices/relay.js +373 -0
  305. package/dist/devices/targets.d.ts +28 -0
  306. package/dist/devices/targets.js +73 -0
  307. package/dist/environments/access.d.ts +66 -0
  308. package/dist/environments/access.js +113 -0
  309. package/dist/environments/conversation-environments.d.ts +75 -0
  310. package/dist/environments/conversation-environments.js +231 -0
  311. package/dist/environments/dto.d.ts +25 -0
  312. package/dist/environments/dto.js +12 -0
  313. package/dist/environments/environments.controller.d.ts +36 -0
  314. package/dist/environments/environments.controller.js +124 -0
  315. package/dist/environments/environments.module.d.ts +8 -0
  316. package/dist/environments/environments.module.js +31 -0
  317. package/dist/environments/environments.schemas.d.ts +3 -0
  318. package/dist/environments/environments.schemas.js +14 -0
  319. package/dist/environments/environments.service.d.ts +251 -0
  320. package/dist/environments/environments.service.js +791 -0
  321. package/dist/environments/label.d.ts +11 -0
  322. package/dist/environments/label.js +25 -0
  323. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  324. package/dist/environments/legacy-cleanup.job.js +141 -0
  325. package/dist/errors.d.ts +135 -2
  326. package/dist/errors.js +135 -2
  327. package/dist/evals/budget.d.ts +42 -21
  328. package/dist/evals/budget.js +114 -62
  329. package/dist/evals/evals.module.d.ts +31 -0
  330. package/dist/evals/evals.module.js +114 -0
  331. package/dist/evals/evals.schemas.d.ts +110 -0
  332. package/dist/evals/evals.schemas.js +107 -0
  333. package/dist/evals/jobs.d.ts +20 -0
  334. package/dist/evals/jobs.js +45 -0
  335. package/dist/evals/reconstruct.d.ts +18 -9
  336. package/dist/evals/reconstruct.js +36 -10
  337. package/dist/evals/recorded-tools.d.ts +37 -1
  338. package/dist/evals/recorded-tools.js +120 -10
  339. package/dist/evals/run-replay.d.ts +75 -10
  340. package/dist/evals/run-replay.js +218 -94
  341. package/dist/evals/runs.controller.d.ts +3 -58
  342. package/dist/evals/runs.controller.js +18 -50
  343. package/dist/evals/runs.service.d.ts +31 -52
  344. package/dist/evals/runs.service.js +281 -255
  345. package/dist/evals/sets.controller.d.ts +3 -29
  346. package/dist/evals/sets.controller.js +18 -39
  347. package/dist/evals/sets.service.d.ts +29 -13
  348. package/dist/evals/sets.service.js +262 -202
  349. package/dist/evals/snapshot.d.ts +5 -4
  350. package/dist/evals/snapshot.js +17 -4
  351. package/dist/evals/step-replay.d.ts +6 -8
  352. package/dist/evals/step-replay.js +17 -10
  353. package/dist/evals/trajectory.controller.d.ts +1 -1
  354. package/dist/evals/trajectory.controller.js +11 -7
  355. package/dist/evals/trajectory.d.ts +2 -2
  356. package/dist/evals/trajectory.js +1 -1
  357. package/dist/evals/trajectory.service.d.ts +13 -7
  358. package/dist/evals/trajectory.service.js +56 -21
  359. package/dist/evals/worker.d.ts +48 -31
  360. package/dist/evals/worker.js +229 -124
  361. package/dist/extensions/admin-ops.d.ts +133 -41
  362. package/dist/extensions/admin-ops.js +378 -172
  363. package/dist/extensions/admin-view.d.ts +82 -32
  364. package/dist/extensions/admin-view.js +284 -71
  365. package/dist/extensions/approvals.d.ts +24 -10
  366. package/dist/extensions/approvals.js +73 -46
  367. package/dist/extensions/blobs.d.ts +27 -10
  368. package/dist/extensions/blobs.js +112 -45
  369. package/dist/extensions/bootstrap.d.ts +99 -36
  370. package/dist/extensions/bootstrap.js +290 -134
  371. package/dist/extensions/cli.d.ts +32 -10
  372. package/dist/extensions/cli.js +52 -98
  373. package/dist/extensions/config-hash.d.ts +10 -0
  374. package/dist/extensions/config-hash.js +38 -0
  375. package/dist/extensions/config-issues.d.ts +19 -0
  376. package/dist/extensions/config-issues.js +48 -0
  377. package/dist/extensions/config-json-schema.d.ts +43 -7
  378. package/dist/extensions/config-json-schema.js +124 -58
  379. package/dist/extensions/deployment-config-store.d.ts +55 -0
  380. package/dist/extensions/deployment-config-store.js +133 -0
  381. package/dist/extensions/deployment-config.d.ts +146 -70
  382. package/dist/extensions/deployment-config.js +439 -246
  383. package/dist/extensions/display-name.d.ts +22 -0
  384. package/dist/extensions/display-name.js +77 -0
  385. package/dist/extensions/effective-config.d.ts +127 -0
  386. package/dist/extensions/effective-config.js +368 -0
  387. package/dist/extensions/enabled.d.ts +5 -5
  388. package/dist/extensions/extensions.module.d.ts +8 -0
  389. package/dist/extensions/extensions.module.js +96 -0
  390. package/dist/extensions/hooks.d.ts +40 -6
  391. package/dist/extensions/hooks.js +83 -17
  392. package/dist/extensions/host.d.ts +161 -80
  393. package/dist/extensions/host.js +505 -213
  394. package/dist/extensions/installs.d.ts +73 -19
  395. package/dist/extensions/installs.js +174 -37
  396. package/dist/extensions/job-ids.d.ts +6 -0
  397. package/dist/extensions/job-ids.js +6 -0
  398. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  399. package/dist/extensions/lifecycle-topics.js +18 -0
  400. package/dist/extensions/lifecycle.d.ts +35 -47
  401. package/dist/extensions/lifecycle.js +103 -39
  402. package/dist/extensions/locks.d.ts +45 -0
  403. package/dist/extensions/locks.js +112 -0
  404. package/dist/extensions/migrate-lock.d.ts +3 -4
  405. package/dist/extensions/org-config.d.ts +141 -49
  406. package/dist/extensions/org-config.js +471 -243
  407. package/dist/extensions/org-levels.d.ts +37 -0
  408. package/dist/extensions/org-levels.js +71 -0
  409. package/dist/extensions/org-overrides.d.ts +151 -0
  410. package/dist/extensions/org-overrides.js +524 -0
  411. package/dist/extensions/package.d.ts +14 -1
  412. package/dist/extensions/package.js +51 -2
  413. package/dist/extensions/permission-view.d.ts +59 -6
  414. package/dist/extensions/permission-view.js +7 -5
  415. package/dist/extensions/plugin-guides.d.ts +129 -0
  416. package/dist/extensions/plugin-guides.js +283 -0
  417. package/dist/extensions/plugin-icons.d.ts +54 -0
  418. package/dist/extensions/plugin-icons.js +125 -0
  419. package/dist/extensions/plugin-items.d.ts +21 -0
  420. package/dist/extensions/plugin-items.js +42 -0
  421. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  422. package/dist/extensions/point-defaults.controller.js +69 -0
  423. package/dist/extensions/point-defaults.d.ts +73 -0
  424. package/dist/extensions/point-defaults.js +236 -0
  425. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  426. package/dist/extensions/point-defaults.schemas.js +14 -0
  427. package/dist/extensions/registry.d.ts +50 -2
  428. package/dist/extensions/registry.js +91 -4
  429. package/dist/extensions/resolve.d.ts +51 -1
  430. package/dist/extensions/resolve.js +85 -3
  431. package/dist/extensions/single-provider.d.ts +92 -0
  432. package/dist/extensions/single-provider.js +180 -0
  433. package/dist/extensions/sources.d.ts +19 -10
  434. package/dist/extensions/sources.js +34 -13
  435. package/dist/extensions/state.module.d.ts +9 -0
  436. package/dist/extensions/state.module.js +38 -0
  437. package/dist/extensions/unavailable.d.ts +50 -0
  438. package/dist/extensions/unavailable.js +115 -0
  439. package/dist/files/files.module.d.ts +3 -0
  440. package/dist/files/files.module.js +22 -0
  441. package/dist/files/previewers.controller.d.ts +7 -2
  442. package/dist/files/previewers.controller.js +19 -12
  443. package/dist/files/previewers.d.ts +21 -19
  444. package/dist/files/previewers.js +114 -38
  445. package/dist/files/previewers.schemas.d.ts +10 -0
  446. package/dist/files/previewers.schemas.js +9 -0
  447. package/dist/http/adapter.d.ts +3 -0
  448. package/dist/http/adapter.js +25 -0
  449. package/dist/http/api.module.d.ts +3 -110
  450. package/dist/http/api.module.js +86 -358
  451. package/dist/http/app.d.ts +22 -17
  452. package/dist/http/app.js +46 -65
  453. package/dist/http/error-filter.module.d.ts +5 -0
  454. package/dist/http/error-filter.module.js +18 -0
  455. package/dist/http/error.filter.js +2 -2
  456. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  457. package/dist/http/gateway-routes.js +16 -0
  458. package/dist/http/nest-logger.d.ts +6 -5
  459. package/dist/http/nest-logger.js +24 -10
  460. package/dist/http/plugin-dispatch.d.ts +4 -1
  461. package/dist/http/plugin-dispatch.js +14 -2
  462. package/dist/identity/accounts.d.ts +130 -38
  463. package/dist/identity/accounts.js +373 -186
  464. package/dist/identity/api-tokens.d.ts +11 -7
  465. package/dist/identity/api-tokens.js +71 -44
  466. package/dist/identity/audit.d.ts +9 -5
  467. package/dist/identity/audit.js +5 -1
  468. package/dist/identity/auth.controller.d.ts +11 -10
  469. package/dist/identity/auth.controller.js +40 -30
  470. package/dist/identity/auth.guard.d.ts +16 -8
  471. package/dist/identity/auth.guard.js +41 -13
  472. package/dist/identity/binding.d.ts +9 -11
  473. package/dist/identity/binding.js +41 -13
  474. package/dist/identity/cookies.d.ts +26 -5
  475. package/dist/identity/cookies.js +58 -6
  476. package/dist/identity/external-identity-lock.d.ts +17 -0
  477. package/dist/identity/external-identity-lock.js +39 -0
  478. package/dist/identity/external.d.ts +19 -15
  479. package/dist/identity/external.js +163 -125
  480. package/dist/identity/identity.module.d.ts +6 -0
  481. package/dist/identity/identity.module.js +59 -0
  482. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  483. package/dist/identity/initial-passwords.controller.js +49 -0
  484. package/dist/identity/initial-passwords.d.ts +61 -0
  485. package/dist/identity/initial-passwords.job.d.ts +16 -0
  486. package/dist/identity/initial-passwords.job.js +46 -0
  487. package/dist/identity/initial-passwords.js +159 -0
  488. package/dist/identity/me.controller.d.ts +32 -15
  489. package/dist/identity/me.controller.js +78 -33
  490. package/dist/identity/me.schemas.d.ts +14 -0
  491. package/dist/identity/me.schemas.js +17 -0
  492. package/dist/identity/principal.d.ts +11 -3
  493. package/dist/identity/principal.js +11 -3
  494. package/dist/identity/sessions.d.ts +24 -10
  495. package/dist/identity/sessions.js +119 -42
  496. package/dist/identity/settings.d.ts +42 -23
  497. package/dist/identity/settings.js +137 -72
  498. package/dist/identity/sso.controller.d.ts +7 -7
  499. package/dist/identity/sso.controller.js +13 -9
  500. package/dist/identity/sso.d.ts +9 -12
  501. package/dist/identity/sso.js +54 -24
  502. package/dist/identity/super-admin.d.ts +20 -0
  503. package/dist/identity/super-admin.js +81 -0
  504. package/dist/inbox/inbox.module.d.ts +6 -0
  505. package/dist/inbox/inbox.module.js +26 -0
  506. package/dist/inbox/inbox.schemas.d.ts +8 -0
  507. package/dist/inbox/inbox.schemas.js +11 -0
  508. package/dist/inbox/inbox.service.d.ts +68 -11
  509. package/dist/inbox/inbox.service.js +104 -13
  510. package/dist/inbox/org-notices.d.ts +63 -0
  511. package/dist/inbox/org-notices.js +91 -0
  512. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  513. package/dist/inbox/platform-inbox.controller.js +58 -0
  514. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  515. package/dist/inbox/platform-inbox.service.js +263 -0
  516. package/dist/inbox/platform-notices.d.ts +19 -0
  517. package/dist/inbox/platform-notices.js +9 -0
  518. package/dist/index.d.ts +22 -13
  519. package/dist/index.js +16 -7
  520. package/dist/infra/cache/cache.module.d.ts +3 -0
  521. package/dist/infra/cache/cache.module.js +16 -0
  522. package/dist/infra/cache/cache.service.d.ts +21 -0
  523. package/dist/infra/cache/cache.service.js +80 -0
  524. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  525. package/dist/infra/cache/cacheable.decorator.js +83 -0
  526. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  527. package/dist/infra/cli/kernel-cli.module.js +173 -0
  528. package/dist/infra/close-within.d.ts +15 -0
  529. package/dist/infra/close-within.js +36 -0
  530. package/dist/infra/config/config.module.d.ts +13 -0
  531. package/dist/infra/config/config.module.js +39 -0
  532. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  533. package/dist/infra/config/kernel-config.service.js +157 -0
  534. package/dist/infra/database/after-commit.d.ts +6 -0
  535. package/dist/infra/database/after-commit.js +9 -0
  536. package/dist/infra/database/database.module.d.ts +25 -0
  537. package/dist/infra/database/database.module.js +91 -0
  538. package/dist/infra/database/kernel-db.d.ts +22 -0
  539. package/dist/infra/database/kernel-db.js +65 -0
  540. package/dist/infra/database/transaction-host.d.ts +50 -0
  541. package/dist/infra/database/transaction-host.js +125 -0
  542. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  543. package/dist/infra/database/transactional.decorator.js +27 -0
  544. package/dist/infra/database/xact-lock.d.ts +17 -0
  545. package/dist/infra/database/xact-lock.js +43 -0
  546. package/dist/infra/events/kernel-events.d.ts +121 -0
  547. package/dist/infra/events/kernel-events.js +65 -0
  548. package/dist/infra/health/health.controller.d.ts +26 -0
  549. package/dist/infra/health/health.controller.js +104 -0
  550. package/dist/infra/health/health.module.d.ts +9 -0
  551. package/dist/infra/health/health.module.js +24 -0
  552. package/dist/infra/health/health.options.d.ts +10 -0
  553. package/dist/infra/health/health.options.js +15 -0
  554. package/dist/infra/health/shutdown-state.d.ts +6 -0
  555. package/dist/infra/health/shutdown-state.js +2 -0
  556. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  557. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  560. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  561. package/dist/infra/lifecycle/process-guards.js +90 -0
  562. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  563. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  564. package/dist/infra/lock/key-template.d.ts +13 -0
  565. package/dist/infra/lock/key-template.js +46 -0
  566. package/dist/infra/lock/lock.module.d.ts +3 -0
  567. package/dist/infra/lock/lock.module.js +16 -0
  568. package/dist/infra/lock/lock.service.d.ts +120 -0
  569. package/dist/infra/lock/lock.service.js +343 -0
  570. package/dist/infra/lock/shared-lease.d.ts +44 -0
  571. package/dist/infra/lock/shared-lease.js +121 -0
  572. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  573. package/dist/infra/lock/with-lock.decorator.js +49 -0
  574. package/dist/infra/logging/logging.module.d.ts +18 -0
  575. package/dist/infra/logging/logging.module.js +52 -0
  576. package/dist/infra/queue/add-job-once.d.ts +14 -0
  577. package/dist/infra/queue/add-job-once.js +16 -0
  578. package/dist/infra/queue/configured-processor.d.ts +18 -0
  579. package/dist/infra/queue/configured-processor.js +23 -0
  580. package/dist/infra/queue/job-failure.d.ts +18 -0
  581. package/dist/infra/queue/job-failure.js +26 -0
  582. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  583. package/dist/infra/queue/queue-shutdown.js +81 -0
  584. package/dist/infra/queue/queue.module.d.ts +16 -0
  585. package/dist/infra/queue/queue.module.js +61 -0
  586. package/dist/infra/queue/redis-connection.d.ts +13 -0
  587. package/dist/infra/queue/redis-connection.js +25 -0
  588. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  589. package/dist/infra/queue/retired-schedulers.js +9 -0
  590. package/dist/infra/queue/run-job.d.ts +16 -0
  591. package/dist/infra/queue/run-job.js +19 -0
  592. package/dist/infra/redis/redis.module.d.ts +24 -0
  593. package/dist/infra/redis/redis.module.js +91 -0
  594. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  595. package/dist/infra/schedule/cron-tick.js +25 -0
  596. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  597. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  598. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  599. package/dist/infra/schedule/locked-interval.js +190 -0
  600. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  601. package/dist/infra/schedule/locked-tick.js +137 -0
  602. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  603. package/dist/infra/schedule/schedule.module.js +27 -0
  604. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  605. package/dist/infra/schedule/scheduled-runs.js +163 -0
  606. package/dist/infra/swagger/swagger.d.ts +16 -0
  607. package/dist/infra/swagger/swagger.js +31 -0
  608. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  609. package/dist/infra/throttler/credential-throttler.js +77 -0
  610. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  611. package/dist/infra/throttler/named-throttlers.js +157 -0
  612. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  613. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  614. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  615. package/dist/infra/throttler/throttler.guard.js +68 -0
  616. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  617. package/dist/infra/throttler/throttler.module.js +53 -0
  618. package/dist/infra/tokens.d.ts +20 -0
  619. package/dist/infra/tokens.js +20 -0
  620. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  621. package/dist/infra/validation/create-zod-dto.js +35 -0
  622. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  623. package/dist/infra/validation/parse-with-zod.js +12 -0
  624. package/dist/infra/validation/validation.module.d.ts +3 -0
  625. package/dist/infra/validation/validation.module.js +16 -0
  626. package/dist/infra/validation/zod-params.d.ts +7 -0
  627. package/dist/infra/validation/zod-params.js +42 -0
  628. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  629. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  630. package/dist/kernel.d.ts +9 -244
  631. package/dist/kernel.js +8 -1305
  632. package/dist/kernel.module.d.ts +17 -0
  633. package/dist/kernel.module.js +145 -0
  634. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  635. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  636. package/dist/lifecycle/tokens.d.ts +3 -0
  637. package/dist/lifecycle/tokens.js +3 -0
  638. package/dist/log-context.d.ts +2 -0
  639. package/dist/log-context.js +4 -0
  640. package/dist/log.d.ts +13 -1
  641. package/dist/log.js +93 -17
  642. package/dist/models/embeddings.d.ts +82 -0
  643. package/dist/models/embeddings.js +326 -0
  644. package/dist/models/enablement.controller.d.ts +40 -0
  645. package/dist/models/enablement.controller.js +74 -0
  646. package/dist/models/enablement.d.ts +101 -0
  647. package/dist/models/enablement.js +264 -0
  648. package/dist/models/models.module.d.ts +7 -0
  649. package/dist/models/models.module.js +36 -0
  650. package/dist/models/org-models.schemas.d.ts +8 -0
  651. package/dist/models/org-models.schemas.js +22 -0
  652. package/dist/models/prices.d.ts +13 -5
  653. package/dist/models/prices.js +69 -39
  654. package/dist/models/purposes.controller.d.ts +6 -4
  655. package/dist/models/purposes.controller.js +16 -11
  656. package/dist/models/purposes.d.ts +103 -23
  657. package/dist/models/purposes.js +208 -77
  658. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  659. package/dist/orgs/directory-sync.controller.js +2 -2
  660. package/dist/orgs/directory-sync.d.ts +74 -35
  661. package/dist/orgs/directory-sync.js +243 -132
  662. package/dist/orgs/invitations.controller.d.ts +8 -8
  663. package/dist/orgs/invitations.controller.js +27 -26
  664. package/dist/orgs/invitations.service.d.ts +12 -9
  665. package/dist/orgs/invitations.service.js +130 -92
  666. package/dist/orgs/job-ids.d.ts +8 -0
  667. package/dist/orgs/job-ids.js +8 -0
  668. package/dist/orgs/members.service.d.ts +19 -12
  669. package/dist/orgs/members.service.js +161 -117
  670. package/dist/orgs/offboarding.d.ts +61 -60
  671. package/dist/orgs/offboarding.js +206 -95
  672. package/dist/orgs/org-lock.d.ts +33 -19
  673. package/dist/orgs/org-lock.js +94 -35
  674. package/dist/orgs/org.guard.d.ts +11 -1
  675. package/dist/orgs/org.guard.js +45 -34
  676. package/dist/orgs/orgs.controller.d.ts +13 -16
  677. package/dist/orgs/orgs.controller.js +29 -20
  678. package/dist/orgs/orgs.module.d.ts +6 -0
  679. package/dist/orgs/orgs.module.js +71 -0
  680. package/dist/orgs/orgs.schemas.d.ts +8 -0
  681. package/dist/orgs/orgs.schemas.js +16 -0
  682. package/dist/orgs/orgs.service.d.ts +47 -21
  683. package/dist/orgs/orgs.service.js +166 -91
  684. package/dist/orgs/roles.d.ts +1 -1
  685. package/dist/orgs/roles.js +5 -1
  686. package/dist/orgs/settings.controller.d.ts +2 -2
  687. package/dist/orgs/settings.controller.js +8 -6
  688. package/dist/orgs/settings.service.d.ts +45 -14
  689. package/dist/orgs/settings.service.js +110 -51
  690. package/dist/overrides.d.ts +63 -0
  691. package/dist/overrides.js +34 -0
  692. package/dist/platform/actor.d.ts +48 -0
  693. package/dist/platform/actor.js +100 -0
  694. package/dist/platform/agent-docs.d.ts +18 -0
  695. package/dist/platform/agent-docs.js +59 -0
  696. package/dist/platform/availability.d.ts +14 -0
  697. package/dist/platform/availability.js +43 -0
  698. package/dist/platform/errors.d.ts +28 -0
  699. package/dist/platform/errors.js +65 -0
  700. package/dist/platform/exclusions.d.ts +11 -0
  701. package/dist/platform/exclusions.js +667 -0
  702. package/dist/platform/method.d.ts +6 -0
  703. package/dist/platform/method.js +15 -0
  704. package/dist/platform/operation.d.ts +169 -0
  705. package/dist/platform/operation.js +90 -0
  706. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  707. package/dist/platform/ops/accounts.ops.js +291 -0
  708. package/dist/platform/ops/admin.ops.d.ts +36 -0
  709. package/dist/platform/ops/admin.ops.js +389 -0
  710. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  711. package/dist/platform/ops/agent-skills.ops.js +226 -0
  712. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  713. package/dist/platform/ops/agent-templates.ops.js +272 -0
  714. package/dist/platform/ops/agents.ops.d.ts +37 -0
  715. package/dist/platform/ops/agents.ops.js +717 -0
  716. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  717. package/dist/platform/ops/approvals.ops.js +116 -0
  718. package/dist/platform/ops/background.ops.d.ts +14 -0
  719. package/dist/platform/ops/background.ops.js +134 -0
  720. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  721. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  722. package/dist/platform/ops/channels.ops.d.ts +16 -0
  723. package/dist/platform/ops/channels.ops.js +195 -0
  724. package/dist/platform/ops/components.ops.d.ts +46 -0
  725. package/dist/platform/ops/components.ops.js +853 -0
  726. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  727. package/dist/platform/ops/connectors.ops.js +188 -0
  728. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  729. package/dist/platform/ops/conversations.ops.js +470 -0
  730. package/dist/platform/ops/environments.ops.d.ts +26 -0
  731. package/dist/platform/ops/environments.ops.js +311 -0
  732. package/dist/platform/ops/errors.d.ts +16 -0
  733. package/dist/platform/ops/errors.js +30 -0
  734. package/dist/platform/ops/evals.ops.d.ts +28 -0
  735. package/dist/platform/ops/evals.ops.js +783 -0
  736. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  737. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  738. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  739. package/dist/platform/ops/extensions.ops.js +347 -0
  740. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  741. package/dist/platform/ops/inbox.ops.js +378 -0
  742. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  743. package/dist/platform/ops/marketplaces.ops.js +466 -0
  744. package/dist/platform/ops/models.ops.d.ts +25 -0
  745. package/dist/platform/ops/models.ops.js +232 -0
  746. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  747. package/dist/platform/ops/org-plugins.ops.js +329 -0
  748. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  749. package/dist/platform/ops/org-settings.ops.js +102 -0
  750. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  751. package/dist/platform/ops/orgs.ops.js +295 -0
  752. package/dist/platform/ops/other-orgs.d.ts +20 -0
  753. package/dist/platform/ops/other-orgs.js +72 -0
  754. package/dist/platform/ops/paging.d.ts +14 -0
  755. package/dist/platform/ops/paging.js +20 -0
  756. package/dist/platform/ops/platform.ops.d.ts +28 -0
  757. package/dist/platform/ops/platform.ops.js +204 -0
  758. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  759. package/dist/platform/ops/plugins.ops.js +476 -0
  760. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  761. package/dist/platform/ops/previewers.ops.js +109 -0
  762. package/dist/platform/ops/requests.ops.d.ts +14 -0
  763. package/dist/platform/ops/requests.ops.js +191 -0
  764. package/dist/platform/ops/role.d.ts +4 -0
  765. package/dist/platform/ops/role.js +10 -0
  766. package/dist/platform/ops/skills.ops.d.ts +17 -0
  767. package/dist/platform/ops/skills.ops.js +216 -0
  768. package/dist/platform/ops/summary.d.ts +10 -0
  769. package/dist/platform/ops/summary.js +18 -0
  770. package/dist/platform/ops/unavailable.d.ts +23 -0
  771. package/dist/platform/ops/unavailable.js +118 -0
  772. package/dist/platform/parity.d.ts +33 -0
  773. package/dist/platform/parity.js +272 -0
  774. package/dist/platform/platform-ops.module.d.ts +39 -0
  775. package/dist/platform/platform-ops.module.js +122 -0
  776. package/dist/platform/platform.module.d.ts +8 -0
  777. package/dist/platform/platform.module.js +25 -0
  778. package/dist/platform/registry.d.ts +30 -0
  779. package/dist/platform/registry.js +111 -0
  780. package/dist/platform/route-schemas.d.ts +18 -0
  781. package/dist/platform/route-schemas.js +63 -0
  782. package/dist/roles/gateway-role.d.ts +54 -0
  783. package/dist/roles/gateway-role.js +118 -0
  784. package/dist/roles/gateway.module.d.ts +9 -0
  785. package/dist/roles/gateway.module.js +31 -0
  786. package/dist/roles/worker-role.d.ts +65 -0
  787. package/dist/roles/worker-role.js +151 -0
  788. package/dist/roles/worker.module.d.ts +14 -0
  789. package/dist/roles/worker.module.js +106 -0
  790. package/dist/runtime/abort.js +19 -2
  791. package/dist/runtime/checkpointer.d.ts +8 -3
  792. package/dist/runtime/checkpointer.js +87 -55
  793. package/dist/runtime/context/build.d.ts +21 -13
  794. package/dist/runtime/context/build.js +106 -29
  795. package/dist/runtime/context/claude-tools.d.ts +4 -1
  796. package/dist/runtime/context/claude-tools.js +13 -12
  797. package/dist/runtime/context/compaction.js +24 -1
  798. package/dist/runtime/context/environment-paths.d.ts +40 -0
  799. package/dist/runtime/context/environment-paths.js +48 -0
  800. package/dist/runtime/context/legacy-text.d.ts +22 -0
  801. package/dist/runtime/context/legacy-text.js +37 -0
  802. package/dist/runtime/context/reminders.d.ts +2 -0
  803. package/dist/runtime/context/reminders.js +2 -0
  804. package/dist/runtime/context/run-context.d.ts +65 -0
  805. package/dist/runtime/context/run-context.js +215 -0
  806. package/dist/runtime/context/skills.d.ts +29 -11
  807. package/dist/runtime/context/skills.js +46 -32
  808. package/dist/runtime/context/tool-changes.d.ts +27 -0
  809. package/dist/runtime/context/tool-changes.js +60 -0
  810. package/dist/runtime/conversation-lock.d.ts +20 -11
  811. package/dist/runtime/conversation-lock.js +62 -72
  812. package/dist/runtime/hook-calls.d.ts +11 -4
  813. package/dist/runtime/hook-calls.js +41 -13
  814. package/dist/runtime/job-ids.d.ts +10 -0
  815. package/dist/runtime/job-ids.js +10 -0
  816. package/dist/runtime/langgraph-loop.d.ts +3 -1
  817. package/dist/runtime/langgraph-loop.js +37 -18
  818. package/dist/runtime/loop.d.ts +42 -6
  819. package/dist/runtime/loop.js +14 -0
  820. package/dist/runtime/maintenance-queue.d.ts +10 -0
  821. package/dist/runtime/maintenance-queue.js +10 -0
  822. package/dist/runtime/maintenance.d.ts +50 -74
  823. package/dist/runtime/maintenance.js +166 -137
  824. package/dist/runtime/model-call.d.ts +61 -15
  825. package/dist/runtime/model-call.js +128 -84
  826. package/dist/runtime/providers.d.ts +158 -27
  827. package/dist/runtime/providers.js +373 -63
  828. package/dist/runtime/quota.d.ts +17 -3
  829. package/dist/runtime/quota.js +27 -2
  830. package/dist/runtime/retired-schedulers.d.ts +7 -0
  831. package/dist/runtime/retired-schedulers.js +31 -0
  832. package/dist/runtime/run-context.service.d.ts +65 -0
  833. package/dist/runtime/run-context.service.js +236 -0
  834. package/dist/runtime/run-control.d.ts +43 -0
  835. package/dist/runtime/run-control.js +89 -0
  836. package/dist/runtime/run-drafts.d.ts +85 -0
  837. package/dist/runtime/run-drafts.js +230 -0
  838. package/dist/runtime/run-finish.d.ts +27 -18
  839. package/dist/runtime/run-finish.js +98 -51
  840. package/dist/runtime/run-jobs.d.ts +46 -0
  841. package/dist/runtime/run-jobs.js +91 -0
  842. package/dist/runtime/run-processors.d.ts +60 -0
  843. package/dist/runtime/run-processors.js +185 -0
  844. package/dist/runtime/run-queue.d.ts +90 -58
  845. package/dist/runtime/run-queue.js +566 -297
  846. package/dist/runtime/run-steps.d.ts +39 -0
  847. package/dist/runtime/run-steps.js +96 -0
  848. package/dist/runtime/run-worker.d.ts +134 -77
  849. package/dist/runtime/run-worker.js +412 -237
  850. package/dist/runtime/runtime.module.d.ts +10 -0
  851. package/dist/runtime/runtime.module.js +122 -0
  852. package/dist/runtime/step-log.d.ts +51 -0
  853. package/dist/runtime/step-log.js +111 -0
  854. package/dist/runtime/stream.controller.d.ts +28 -9
  855. package/dist/runtime/stream.controller.js +72 -13
  856. package/dist/runtime/stream.d.ts +27 -6
  857. package/dist/runtime/stream.js +102 -7
  858. package/dist/runtime/subagents/child.d.ts +58 -51
  859. package/dist/runtime/subagents/child.js +105 -86
  860. package/dist/runtime/subagents/definition.d.ts +32 -28
  861. package/dist/runtime/subagents/definition.js +89 -143
  862. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  863. package/dist/runtime/subagents/deliveries.js +228 -0
  864. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  865. package/dist/runtime/subagents/dispatch.js +336 -270
  866. package/dist/runtime/subagents/limits.d.ts +32 -8
  867. package/dist/runtime/subagents/limits.js +44 -8
  868. package/dist/runtime/subagents/messages.d.ts +95 -0
  869. package/dist/runtime/subagents/messages.js +328 -0
  870. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  871. package/dist/runtime/subagents/org-agents.js +3 -2
  872. package/dist/runtime/subagents/preamble.d.ts +4 -4
  873. package/dist/runtime/subagents/preamble.js +9 -7
  874. package/dist/runtime/subagents/progress.d.ts +10 -8
  875. package/dist/runtime/subagents/progress.js +11 -6
  876. package/dist/runtime/subagents/render.d.ts +30 -0
  877. package/dist/runtime/subagents/render.js +53 -0
  878. package/dist/runtime/subagents/roster.d.ts +27 -10
  879. package/dist/runtime/subagents/roster.js +49 -13
  880. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  881. package/dist/runtime/subagents/skill-fork.js +23 -8
  882. package/dist/runtime/subagents/status.d.ts +14 -0
  883. package/dist/runtime/subagents/status.js +23 -0
  884. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  885. package/dist/runtime/subagents/subagents.service.js +106 -0
  886. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  887. package/dist/runtime/usage-report-jobs.js +158 -0
  888. package/dist/runtime/usage-report.d.ts +121 -83
  889. package/dist/runtime/usage-report.js +355 -181
  890. package/dist/runtime/waits.d.ts +258 -81
  891. package/dist/runtime/waits.js +800 -263
  892. package/dist/sandbox/job-ids.d.ts +10 -0
  893. package/dist/sandbox/job-ids.js +10 -0
  894. package/dist/sandbox/jobs.d.ts +68 -0
  895. package/dist/sandbox/jobs.js +150 -0
  896. package/dist/sandbox/leases.d.ts +73 -82
  897. package/dist/sandbox/leases.js +162 -346
  898. package/dist/sandbox/providers.d.ts +46 -0
  899. package/dist/sandbox/providers.js +83 -0
  900. package/dist/sandbox/sandbox.module.d.ts +9 -0
  901. package/dist/sandbox/sandbox.module.js +36 -0
  902. package/dist/sandbox/sandbox.service.d.ts +359 -151
  903. package/dist/sandbox/sandbox.service.js +950 -435
  904. package/dist/sandbox/unreachable.d.ts +30 -0
  905. package/dist/sandbox/unreachable.js +108 -0
  906. package/dist/skills/catalog.d.ts +40 -26
  907. package/dist/skills/catalog.js +120 -99
  908. package/dist/skills/changes.controller.d.ts +11 -4
  909. package/dist/skills/changes.controller.js +34 -9
  910. package/dist/skills/changes.service.d.ts +31 -21
  911. package/dist/skills/changes.service.js +426 -368
  912. package/dist/skills/invocable.controller.d.ts +2 -2
  913. package/dist/skills/invocable.controller.js +10 -7
  914. package/dist/skills/invocation-keys.d.ts +1 -1
  915. package/dist/skills/invocation-keys.js +1 -1
  916. package/dist/skills/invoke.d.ts +19 -18
  917. package/dist/skills/invoke.js +68 -24
  918. package/dist/skills/package.d.ts +20 -1
  919. package/dist/skills/package.js +28 -1
  920. package/dist/skills/skills.controller.d.ts +33 -7
  921. package/dist/skills/skills.controller.js +79 -12
  922. package/dist/skills/skills.module.d.ts +6 -0
  923. package/dist/skills/skills.module.js +39 -0
  924. package/dist/skills/skills.schemas.d.ts +48 -0
  925. package/dist/skills/skills.schemas.js +61 -0
  926. package/dist/skills/skills.service.d.ts +151 -44
  927. package/dist/skills/skills.service.js +636 -204
  928. package/dist/skills/usable.d.ts +81 -0
  929. package/dist/skills/usable.js +379 -0
  930. package/dist/storage/job-ids.d.ts +6 -0
  931. package/dist/storage/job-ids.js +6 -0
  932. package/dist/storage/purge.d.ts +22 -7
  933. package/dist/storage/purge.js +55 -3
  934. package/dist/storage/storage.module.d.ts +6 -0
  935. package/dist/storage/storage.module.js +23 -0
  936. package/dist/storage/storage.service.d.ts +18 -4
  937. package/dist/storage/storage.service.js +44 -3
  938. package/dist/time-zone.d.ts +5 -0
  939. package/dist/time-zone.js +19 -0
  940. package/dist/tools/approvals.controller.d.ts +1 -1
  941. package/dist/tools/approvals.controller.js +14 -11
  942. package/dist/tools/approvals.schemas.d.ts +21 -0
  943. package/dist/tools/approvals.schemas.js +15 -0
  944. package/dist/tools/approvals.service.d.ts +53 -27
  945. package/dist/tools/approvals.service.js +365 -260
  946. package/dist/tools/breaker.d.ts +2 -2
  947. package/dist/tools/breaker.js +21 -3
  948. package/dist/tools/builtin-names.d.ts +109 -0
  949. package/dist/tools/builtin-names.js +173 -0
  950. package/dist/tools/builtins/agent.d.ts +27 -25
  951. package/dist/tools/builtins/agent.js +66 -63
  952. package/dist/tools/builtins/ask-user.d.ts +3 -3
  953. package/dist/tools/builtins/ask-user.js +3 -3
  954. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  955. package/dist/tools/builtins/builtin-tools.js +151 -0
  956. package/dist/tools/builtins/current-time.d.ts +26 -0
  957. package/dist/tools/builtins/current-time.js +99 -0
  958. package/dist/tools/builtins/handback.d.ts +28 -0
  959. package/dist/tools/builtins/handback.js +53 -0
  960. package/dist/tools/builtins/platform.d.ts +51 -0
  961. package/dist/tools/builtins/platform.js +451 -0
  962. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  963. package/dist/tools/builtins/read-tool-output.js +3 -3
  964. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  965. package/dist/tools/builtins/sandbox/bash.js +293 -41
  966. package/dist/tools/builtins/sandbox/common.d.ts +137 -37
  967. package/dist/tools/builtins/sandbox/common.js +222 -62
  968. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  969. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  970. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  971. package/dist/tools/builtins/sandbox/edit.js +65 -51
  972. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  973. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  974. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  975. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  976. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  977. package/dist/tools/builtins/sandbox/glob.js +19 -14
  978. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  979. package/dist/tools/builtins/sandbox/grep.js +155 -36
  980. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  981. package/dist/tools/builtins/sandbox/index.js +13 -5
  982. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  983. package/dist/tools/builtins/sandbox/read.js +30 -20
  984. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  985. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  986. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  987. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  988. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  989. package/dist/tools/builtins/sandbox/write.js +52 -45
  990. package/dist/tools/builtins/send-message.d.ts +56 -0
  991. package/dist/tools/builtins/send-message.js +100 -0
  992. package/dist/tools/builtins/skill-load.d.ts +32 -21
  993. package/dist/tools/builtins/skill-load.js +125 -74
  994. package/dist/tools/builtins/skill-write.d.ts +4 -4
  995. package/dist/tools/builtins/skill-write.js +12 -12
  996. package/dist/tools/builtins/tool-search.d.ts +13 -9
  997. package/dist/tools/builtins/tool-search.js +25 -14
  998. package/dist/tools/builtins/web/errors.d.ts +8 -0
  999. package/dist/tools/builtins/web/errors.js +53 -0
  1000. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1001. package/dist/tools/builtins/web/extract.js +271 -0
  1002. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1003. package/dist/tools/builtins/web/fetch.js +175 -0
  1004. package/dist/tools/builtins/web/index.d.ts +13 -0
  1005. package/dist/tools/builtins/web/index.js +12 -0
  1006. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1007. package/dist/tools/builtins/web/page-cache.js +77 -0
  1008. package/dist/tools/builtins/web/search.d.ts +25 -0
  1009. package/dist/tools/builtins/web/search.js +210 -0
  1010. package/dist/tools/builtins/web/url.d.ts +17 -0
  1011. package/dist/tools/builtins/web/url.js +43 -0
  1012. package/dist/tools/canonical-json.d.ts +6 -0
  1013. package/dist/tools/canonical-json.js +16 -0
  1014. package/dist/tools/connector-content.controller.d.ts +1 -1
  1015. package/dist/tools/connector-content.controller.js +11 -6
  1016. package/dist/tools/connector-content.d.ts +12 -15
  1017. package/dist/tools/connector-content.js +53 -18
  1018. package/dist/tools/connectors.controller.d.ts +16 -3
  1019. package/dist/tools/connectors.controller.js +34 -14
  1020. package/dist/tools/connectors.schemas.d.ts +12 -0
  1021. package/dist/tools/connectors.schemas.js +19 -0
  1022. package/dist/tools/connectors.service.d.ts +80 -18
  1023. package/dist/tools/connectors.service.js +529 -358
  1024. package/dist/tools/credentials.d.ts +20 -20
  1025. package/dist/tools/credentials.js +55 -34
  1026. package/dist/tools/display-names.d.ts +9 -0
  1027. package/dist/tools/display-names.js +24 -0
  1028. package/dist/tools/drift.d.ts +29 -41
  1029. package/dist/tools/drift.js +116 -84
  1030. package/dist/tools/elicitation.js +1 -1
  1031. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1032. package/dist/tools/extension-tools.controller.js +37 -0
  1033. package/dist/tools/info.d.ts +73 -13
  1034. package/dist/tools/info.js +151 -39
  1035. package/dist/tools/job-ids.d.ts +13 -0
  1036. package/dist/tools/job-ids.js +15 -0
  1037. package/dist/tools/jobs.d.ts +24 -0
  1038. package/dist/tools/jobs.js +69 -0
  1039. package/dist/tools/legacy-data.d.ts +34 -0
  1040. package/dist/tools/legacy-data.js +76 -0
  1041. package/dist/tools/legacy-keys.d.ts +51 -0
  1042. package/dist/tools/legacy-keys.js +115 -0
  1043. package/dist/tools/naming.d.ts +1 -5
  1044. package/dist/tools/naming.js +1 -7
  1045. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1046. package/dist/tools/oauth/flow-paths.js +38 -0
  1047. package/dist/tools/oauth/flow.d.ts +30 -30
  1048. package/dist/tools/oauth/flow.js +109 -81
  1049. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1050. package/dist/tools/oauth/oauth.controller.js +12 -9
  1051. package/dist/tools/oauth/tokens.d.ts +45 -10
  1052. package/dist/tools/oauth/tokens.js +70 -24
  1053. package/dist/tools/org-tool-switches.d.ts +88 -0
  1054. package/dist/tools/org-tool-switches.js +201 -0
  1055. package/dist/tools/outputs.d.ts +13 -4
  1056. package/dist/tools/outputs.js +48 -4
  1057. package/dist/tools/pipeline.d.ts +108 -80
  1058. package/dist/tools/pipeline.js +396 -409
  1059. package/dist/tools/policy.d.ts +4 -17
  1060. package/dist/tools/policy.js +49 -35
  1061. package/dist/tools/questions.controller.d.ts +2 -2
  1062. package/dist/tools/questions.controller.js +9 -6
  1063. package/dist/tools/questions.service.d.ts +26 -25
  1064. package/dist/tools/questions.service.js +201 -142
  1065. package/dist/tools/registry.d.ts +215 -84
  1066. package/dist/tools/registry.js +382 -264
  1067. package/dist/tools/resources.d.ts +1 -1
  1068. package/dist/tools/resources.js +1 -1
  1069. package/dist/tools/specs.d.ts +5 -4
  1070. package/dist/tools/specs.js +3 -1
  1071. package/dist/tools/tools.module.d.ts +10 -0
  1072. package/dist/tools/tools.module.js +113 -0
  1073. package/dist/tools/validate.js +1 -1
  1074. package/dist/ui/call-extension.d.ts +16 -0
  1075. package/dist/ui/call-extension.js +38 -0
  1076. package/dist/ui/embed-token.d.ts +9 -5
  1077. package/dist/ui/embed-token.js +34 -6
  1078. package/dist/ui/ui-stream.d.ts +22 -17
  1079. package/dist/ui/ui-stream.js +72 -12
  1080. package/dist/ui/ui.module.d.ts +7 -0
  1081. package/dist/ui/ui.module.js +28 -0
  1082. package/dist/ui/views.controller.d.ts +14 -12
  1083. package/dist/ui/views.controller.js +32 -25
  1084. package/dist/ui/views.d.ts +10 -57
  1085. package/dist/ui/views.js +58 -46
  1086. package/package.json +13 -3
  1087. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1088. package/src/migrations/0064_account_last_org.sql +7 -0
  1089. package/src/migrations/0065_conversation_archive.sql +8 -0
  1090. package/src/migrations/0066_extension_display_name.sql +4 -0
  1091. package/src/migrations/0067_agent_profiles.sql +20 -0
  1092. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1093. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1094. package/src/migrations/0070_background_tasks.sql +37 -0
  1095. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1096. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1097. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1098. package/src/migrations/0074_subagent_tree.sql +50 -0
  1099. package/src/migrations/0075_plugin_scope.sql +61 -0
  1100. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1101. package/src/migrations/0077_scope_requests.sql +52 -0
  1102. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1103. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1104. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1105. package/src/migrations/0081_platform_components.sql +129 -0
  1106. package/src/migrations/0082_platform_migration.sql +33 -0
  1107. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1108. package/src/migrations/0084_org_owned_items.sql +85 -0
  1109. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1110. package/src/migrations/0086_org_layering.sql +30 -0
  1111. package/src/migrations/0087_approval_summary.sql +6 -0
  1112. package/src/migrations/0088_environments.sql +80 -0
  1113. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1114. package/src/migrations/0090_initial_passwords.sql +27 -0
  1115. package/src/migrations/0091_account_time_zone.sql +4 -0
  1116. package/src/migrations/0092_tools_default_on.sql +27 -0
  1117. package/src/migrations/0093_connected_environments.sql +37 -0
  1118. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1119. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1120. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1121. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1122. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1123. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1124. package/src/migrations/0100_catalog_files.sql +13 -0
  1125. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1126. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1127. package/dist/catalog/upgrade-targets.js +0 -90
  1128. package/dist/conversations/sandbox-status.d.ts +0 -21
  1129. package/dist/conversations/sandbox-status.js +0 -24
  1130. package/dist/extensions/org-config.controller.d.ts +0 -24
  1131. package/dist/extensions/org-config.controller.js +0 -59
  1132. package/dist/http/gateway.module.js +0 -13
  1133. package/dist/http/health.controller.d.ts +0 -26
  1134. package/dist/http/health.controller.js +0 -79
  1135. package/dist/http/tokens.d.ts +0 -131
  1136. package/dist/http/tokens.js +0 -131
  1137. package/dist/http/zod.pipe.d.ts +0 -8
  1138. package/dist/http/zod.pipe.js +0 -14
  1139. package/dist/identity/enterprise-admin.d.ts +0 -14
  1140. package/dist/identity/enterprise-admin.js +0 -27
  1141. package/dist/identity/rate-limit.d.ts +0 -55
  1142. package/dist/identity/rate-limit.js +0 -121
  1143. package/dist/sandbox/lifecycle.d.ts +0 -21
  1144. package/dist/sandbox/lifecycle.js +0 -68
  1145. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1146. package/dist/tools/builtins/sandbox/names.js +0 -20
@@ -0,0 +1,373 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { randomUUID } from "node:crypto";
11
+ import { DeviceProtocolError, FileSystemGoneError, parseDeviceFrame, parseOpResult, SandboxGoneError, ToolError, } from "@capybara-hq/plugin-sdk";
12
+ import { Inject, Injectable } from "@nestjs/common";
13
+ import { ApiError } from "../errors.js";
14
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
15
+ import { LockService } from "../infra/lock/lock.service.js";
16
+ import { KERNEL_BUS, KERNEL_LOGGER, REDIS } from "../infra/tokens.js";
17
+ import { environmentNotFound } from "../sandbox/sandbox.service.js";
18
+ import { deviceLeaseKey, deviceReqKey, deviceReqTopic, deviceResKey, deviceResTopic, } from "./keys.js";
19
+ import { DeviceTargets } from "./targets.js";
20
+ /** The environment's connected machine is not connected (no replica holds its lease). */
21
+ export const environmentOffline = () => new ApiError("environment.offline", "The connected machine of this environment is offline. Start capybara-device on that machine, or pick another environment.");
22
+ /**
23
+ * The environment's machine was disconnected (revoked, signed out): 403 `environment.forbidden`
24
+ * with `details: [{ reason: "machine_revoked" }]`, so the tools tell the model what to ask for.
25
+ */
26
+ export const machineRevoked = () => new ApiError("environment.forbidden", "The connected machine of this environment was disconnected. Run capybara-device logout, then capybara-device login on it, or pick another environment.", [{ reason: "machine_revoked" }]);
27
+ /** The text a machine's `error` result reaches the model with (ruling R28). */
28
+ export const ON_MACHINE_PREFIX = "On the connected machine: ";
29
+ /** The longest one lease check of a waiting caller may take before it counts as "unknown". */
30
+ export const LEASE_CHECK_TIMEOUT_MS = 2000;
31
+ /** How often a waiting caller checks that a replica still holds the machine's connection. */
32
+ export const HOLDER_POLL_MS = 5000;
33
+ /**
34
+ * How much longer than the caller's wait a queued request lives: giving up must still find an
35
+ * untaken request on the list (an expired one would look taken and get a needless cancel).
36
+ */
37
+ export const LIST_TTL_MARGIN_MS = 30_000;
38
+ /**
39
+ * Appends one frame to the request list and makes sure the list lives at least `ARGV[2]` ms
40
+ * (never shortens the TTL a request with a longer deadline set). Atomic, so the list never exists
41
+ * without a TTL.
42
+ */
43
+ const PUSH_WITH_TTL = `
44
+ redis.call('RPUSH', KEYS[1], ARGV[1])
45
+ if redis.call('PTTL', KEYS[1]) < tonumber(ARGV[2]) then
46
+ redis.call('PEXPIRE', KEYS[1], ARGV[2])
47
+ end
48
+ return 1
49
+ `;
50
+ /**
51
+ * Gives up on a request (ruling R15): removes the exact request frame `ARGV[1]` from the list; only
52
+ * when it is no longer queued (the machine already took it) appends the cancel `ARGV[2]`, with the
53
+ * TTL rule of {@link PUSH_WITH_TTL}. Returns 1 when a cancel was queued.
54
+ */
55
+ const GIVE_UP = `
56
+ if redis.call('LREM', KEYS[1], 1, ARGV[1]) > 0 then
57
+ return 0
58
+ end
59
+ redis.call('RPUSH', KEYS[1], ARGV[2])
60
+ if redis.call('PTTL', KEYS[1]) < tonumber(ARGV[3]) then
61
+ redis.call('PEXPIRE', KEYS[1], ARGV[3])
62
+ end
63
+ return 1
64
+ `;
65
+ /** Why a call stopped waiting without a result. */
66
+ const ABORTED = Symbol("aborted");
67
+ const GRACE_EXPIRED = Symbol("grace expired");
68
+ const errMsg = (e) => (e instanceof Error ? e.message : String(e));
69
+ /**
70
+ * The caller side of the device relay (environments spec §13.4). A request goes onto the
71
+ * environment's Redis list (`capk:device-req:<environmentId>`) and is announced on
72
+ * `device.req.<environmentId>`; whichever gateway replica holds the machine's lease drains the
73
+ * list and forwards the frames to the machine.
74
+ *
75
+ * **The holder's half of the wire** (Task 6 follows it): items on the list are `KernelReq` or
76
+ * `KernelCancel` frames as JSON text, to be parsed with `parseDeviceFrame(item, "kernel")`; the
77
+ * nudge's payload is `{ id }`. For each `res` frame the machine sends, the holder writes the frame
78
+ * (the JSON text as validated by `parseDeviceFrame(…, "device")`) under
79
+ * `capk:device-res:<requestId>` with a TTL and publishes the same frame object on
80
+ * `device.res.<requestId>`.
81
+ *
82
+ * The caller subscribes to its result topic before pushing and reads the result key once after,
83
+ * and once more before giving up (the run-abort pattern; a publish lost while the subscriber
84
+ * reconnects is still found). It waits within its own call for at most `deadlineMs` plus
85
+ * `environments.device.reconnectGraceSeconds`; when the lease disappears meanwhile (checked every
86
+ * {@link HOLDER_POLL_MS}) the wait ends at most one grace later. A result produced while the
87
+ * machine was disconnected arrives after it reconnects. Giving up (grace, abort, a bad result)
88
+ * removes the request from the list, or queues a `cancel` when the machine already took it
89
+ * (ruling R15). Nothing is kept in process memory beyond the call.
90
+ */
91
+ let DeviceRelay = class DeviceRelay {
92
+ redis;
93
+ bus;
94
+ locks;
95
+ config;
96
+ log;
97
+ targets;
98
+ constructor(redis, bus, locks, config, log, targets) {
99
+ this.redis = redis;
100
+ this.bus = bus;
101
+ this.locks = locks;
102
+ this.config = config;
103
+ this.log = log;
104
+ this.targets = targets;
105
+ }
106
+ /** Whether a gateway replica holds the machine's connection now. */
107
+ async holderLive(environmentId) {
108
+ return (await this.locks.holderOf(deviceLeaseKey(environmentId))) !== null;
109
+ }
110
+ /**
111
+ * Queues `op` for the machine without waiting for an answer (ruling R14: `stop`). The caller
112
+ * checks {@link holderLive} first; the frame waits on the list for the grace like any request.
113
+ */
114
+ async send(environmentId, op, args, deadlineMs) {
115
+ const id = randomUUID();
116
+ const d = Math.max(1, Math.ceil(deadlineMs));
117
+ const req = { type: "req", id, op, args, deadlineMs: d };
118
+ await this.push(environmentId, JSON.stringify(req), this.graceMs() + d + LIST_TTL_MARGIN_MS);
119
+ await this.bus.publish(deviceReqTopic(environmentId), { id });
120
+ }
121
+ /**
122
+ * Runs `op` on the environment's machine and returns its validated result. Throws
123
+ * `environment.offline` when no replica holds the machine at send time or when the wait ran
124
+ * out, but `environment.forbidden` ({@link machineRevoked}) when the machine was revoked and
125
+ * `environment.not_found` when the environment was deleted (checked whenever the connection is
126
+ * missing, ruling R27); the machine's failures map to `SandboxGoneError` (`gone`),
127
+ * `FileSystemGoneError` (`fs_gone`) or a `ToolError` (`policy`, and `error` prefixed
128
+ * {@link ON_MACHINE_PREFIX}); an invalid answer throws a `DeviceProtocolError`. On abort the
129
+ * abort reason is thrown.
130
+ */
131
+ async call(environmentId, op, args, opts) {
132
+ const { signal } = opts;
133
+ signal.throwIfAborted();
134
+ if (!(await this.holderLive(environmentId))) {
135
+ throw this.goneError(await this.targetState(environmentId)) ?? environmentOffline();
136
+ }
137
+ signal.throwIfAborted();
138
+ const id = randomUUID();
139
+ const deadlineMs = Math.max(1, Math.ceil(opts.deadlineMs));
140
+ const graceMs = this.graceMs();
141
+ const listTtlMs = graceMs + deadlineMs + LIST_TTL_MARGIN_MS;
142
+ const reqJson = JSON.stringify({ type: "req", id, op, args, deadlineMs });
143
+ let settle;
144
+ const outcome = new Promise((resolve) => {
145
+ let done = false;
146
+ settle = (r) => {
147
+ if (done)
148
+ return;
149
+ done = true;
150
+ resolve(r);
151
+ };
152
+ });
153
+ const onStored = (raw) => {
154
+ if (raw !== null)
155
+ settle(this.parseRes(raw, id));
156
+ };
157
+ const onAbort = () => settle({ error: ABORTED });
158
+ const unsubscribe = await this.bus.subscribe(deviceResTopic(id), (payload) => {
159
+ onStored(JSON.stringify(payload));
160
+ });
161
+ let timer;
162
+ let stopped = false;
163
+ try {
164
+ signal.addEventListener("abort", onAbort, { once: true });
165
+ // aborted while subscribing: nothing was sent yet
166
+ signal.throwIfAborted();
167
+ await this.push(environmentId, reqJson, listTtlMs);
168
+ this.nudge(environmentId, id);
169
+ onStored(await this.redis.get(deviceResKey(id)));
170
+ // wait until the result, the abort, or `giveUpAt`. The lease is checked every poll: its loss
171
+ // caps `giveUpAt` at one grace from then (never extending it); a reconnect within that grace
172
+ // restores the full wait, so a long command whose machine blipped keeps its deadline
173
+ const fullGiveUpAt = Date.now() + deadlineMs + graceMs;
174
+ let giveUpAt = fullGiveUpAt;
175
+ let capped = false;
176
+ const tick = async () => {
177
+ if (stopped)
178
+ return;
179
+ try {
180
+ // a stalled Redis must not hold the give-up back: no answer in time means "unknown"
181
+ const live = await this.leaseCheck(environmentId);
182
+ if (live === true && capped) {
183
+ capped = false;
184
+ giveUpAt = fullGiveUpAt;
185
+ }
186
+ else if (live === false && !capped) {
187
+ capped = true;
188
+ giveUpAt = Math.min(giveUpAt, Date.now() + graceMs);
189
+ }
190
+ if (live === false) {
191
+ // a revoked machine or a deleted environment never comes back: fail at once
192
+ const gone = this.goneError(await this.targetState(environmentId));
193
+ if (gone) {
194
+ settle({ error: gone });
195
+ return;
196
+ }
197
+ }
198
+ }
199
+ catch (e) {
200
+ this.log.warn("device relay lease check failed", { environmentId, error: errMsg(e) });
201
+ }
202
+ if (stopped)
203
+ return;
204
+ if (Date.now() >= giveUpAt) {
205
+ // a last look at the key: the publish may have been lost while the subscriber reconnected
206
+ this.redis.get(deviceResKey(id)).then((raw) => (raw !== null ? onStored(raw) : settle({ error: GRACE_EXPIRED })), () => settle({ error: GRACE_EXPIRED }));
207
+ return;
208
+ }
209
+ schedule();
210
+ };
211
+ const schedule = () => {
212
+ if (stopped)
213
+ return;
214
+ const wait = Math.max(0, Math.min(HOLDER_POLL_MS, giveUpAt - Date.now()));
215
+ timer = setTimeout(() => void tick(), wait);
216
+ };
217
+ schedule();
218
+ const r = await outcome;
219
+ stopped = true;
220
+ clearTimeout(timer);
221
+ if ("res" in r) {
222
+ await this.quietly("delete the result", environmentId, () => this.redis.del(deviceResKey(id)));
223
+ return this.resultOf(op, r.res);
224
+ }
225
+ if (r.error instanceof Error) {
226
+ // a bad answer: drop it, give the request up, report the protocol error
227
+ await this.quietly("delete the result", environmentId, () => this.redis.del(deviceResKey(id)));
228
+ }
229
+ await this.giveUp(environmentId, id, reqJson, listTtlMs);
230
+ if (r.error === ABORTED)
231
+ throw signal.reason;
232
+ if (r.error === GRACE_EXPIRED)
233
+ throw environmentOffline();
234
+ throw r.error;
235
+ }
236
+ finally {
237
+ stopped = true;
238
+ clearTimeout(timer);
239
+ signal.removeEventListener("abort", onAbort);
240
+ await this.quietly("unsubscribe", environmentId, unsubscribe);
241
+ }
242
+ }
243
+ /** {@link holderLive}, or undefined when it takes longer than {@link LEASE_CHECK_TIMEOUT_MS}. */
244
+ async leaseCheck(environmentId) {
245
+ let timer;
246
+ const check = this.holderLive(environmentId);
247
+ check.catch(() => { }); // a late failure after the timeout is not unhandled
248
+ try {
249
+ return await Promise.race([
250
+ check,
251
+ new Promise((resolve) => {
252
+ timer = setTimeout(() => resolve(undefined), LEASE_CHECK_TIMEOUT_MS);
253
+ }),
254
+ ]);
255
+ }
256
+ finally {
257
+ clearTimeout(timer);
258
+ }
259
+ }
260
+ /**
261
+ * The environment's state ({@link DeviceTargets}), or undefined when it cannot be read within
262
+ * {@link LEASE_CHECK_TIMEOUT_MS} (a failure only logs: the caller keeps its other rules).
263
+ */
264
+ async targetState(environmentId) {
265
+ let timer;
266
+ const read = this.targets.state(environmentId);
267
+ read.catch(() => { });
268
+ try {
269
+ return await Promise.race([
270
+ read,
271
+ new Promise((resolve) => {
272
+ timer = setTimeout(() => resolve(undefined), LEASE_CHECK_TIMEOUT_MS);
273
+ }),
274
+ ]);
275
+ }
276
+ catch (e) {
277
+ this.log.warn("device relay could not read the environment state", {
278
+ environmentId,
279
+ error: errMsg(e),
280
+ });
281
+ return undefined;
282
+ }
283
+ finally {
284
+ clearTimeout(timer);
285
+ }
286
+ }
287
+ /** The error of a state that never comes back; undefined for `active` or unknown. */
288
+ goneError(state) {
289
+ if (state === "deleted")
290
+ return environmentNotFound();
291
+ if (state === "revoked")
292
+ return machineRevoked();
293
+ return undefined;
294
+ }
295
+ graceMs() {
296
+ return this.config.get().environments.device.reconnectGraceSeconds * 1000;
297
+ }
298
+ async push(environmentId, frame, ttlMs) {
299
+ await this.redis.eval(PUSH_WITH_TTL, 1, deviceReqKey(environmentId), frame, String(ttlMs));
300
+ }
301
+ /** Announces new frames to the holder; a lost nudge is picked up on the holder's next drain. */
302
+ nudge(environmentId, id) {
303
+ this.bus.publish(deviceReqTopic(environmentId), { id }).catch((e) => {
304
+ this.log.warn("device relay nudge failed", { environmentId, error: errMsg(e) });
305
+ });
306
+ }
307
+ /** Removes the request from the list, or queues a cancel when the machine took it (R15). */
308
+ async giveUp(environmentId, id, reqJson, ttlMs) {
309
+ const cancel = JSON.stringify({ type: "cancel", id });
310
+ await this.quietly("give the request up", environmentId, async () => {
311
+ const queued = await this.redis.eval(GIVE_UP, 1, deviceReqKey(environmentId), reqJson, cancel, String(ttlMs));
312
+ if (queued === 1)
313
+ this.nudge(environmentId, id);
314
+ });
315
+ }
316
+ /** Runs a side step whose failure must not replace the call's outcome: logged, swallowed. */
317
+ async quietly(what, environmentId, fn) {
318
+ try {
319
+ await fn();
320
+ }
321
+ catch (e) {
322
+ this.log.warn(`device relay could not ${what}`, { environmentId, error: errMsg(e) });
323
+ }
324
+ }
325
+ /** A stored / published `res` frame for request `id`, or the protocol error it carries. */
326
+ parseRes(raw, id) {
327
+ try {
328
+ const f = parseDeviceFrame(raw, "device");
329
+ if (f.type !== "res" || f.id !== id) {
330
+ return { error: new DeviceProtocolError("the connected machine sent an unexpected frame") };
331
+ }
332
+ return { res: f };
333
+ }
334
+ catch (e) {
335
+ return {
336
+ error: e instanceof DeviceProtocolError
337
+ ? e
338
+ : new DeviceProtocolError(`the connected machine sent an invalid frame: ${errMsg(e)}`),
339
+ };
340
+ }
341
+ }
342
+ resultOf(op, res) {
343
+ if (res.ok) {
344
+ try {
345
+ return parseOpResult(op, res.result);
346
+ }
347
+ catch (e) {
348
+ throw new DeviceProtocolError(`The connected machine sent an invalid ${op} result: ${errMsg(e)}`);
349
+ }
350
+ }
351
+ const { kind, message } = res.error;
352
+ switch (kind) {
353
+ case "gone":
354
+ throw new SandboxGoneError(message);
355
+ case "fs_gone":
356
+ throw new FileSystemGoneError(message);
357
+ case "policy":
358
+ throw new ToolError(`Refused by the machine's local policy: ${message}`);
359
+ default:
360
+ throw new ToolError(`${ON_MACHINE_PREFIX}${message}`);
361
+ }
362
+ }
363
+ };
364
+ DeviceRelay = __decorate([
365
+ Injectable(),
366
+ __param(0, Inject(REDIS)),
367
+ __param(1, Inject(KERNEL_BUS)),
368
+ __param(2, Inject(LockService)),
369
+ __param(3, Inject(KernelConfigService)),
370
+ __param(4, Inject(KERNEL_LOGGER)),
371
+ __param(5, Inject(DeviceTargets))
372
+ ], DeviceRelay);
373
+ export { DeviceRelay };
@@ -0,0 +1,28 @@
1
+ import type { SandboxRoots } from "@capybara-hq/plugin-sdk";
2
+ import { KernelDb } from "../infra/database/kernel-db.js";
3
+ /**
4
+ * Whether a device environment can still be served: `active` (live and an unrevoked machine),
5
+ * `revoked` (live, no active machine: disconnected or signed out) or `deleted` (missing or
6
+ * deleted, or its org deleted).
7
+ */
8
+ export type DeviceTargetState = "active" | "revoked" | "deleted";
9
+ /** Whether two sets of roots name the same three directories. */
10
+ export declare const sameRoots: (a: SandboxRoots, b: SandboxRoots) => boolean;
11
+ /**
12
+ * Reads a device environment and its machine from PG for the relay and the `@device` provider.
13
+ * The relay asks {@link state} when a machine has no connection, so a revoked machine or a deleted
14
+ * environment fails a waiting call at once instead of after the reconnect grace (ruling R27).
15
+ * Kept apart from `MachinesService` (which depends on the relay) so there is no dependency cycle.
16
+ */
17
+ export declare class DeviceTargets {
18
+ private readonly db;
19
+ constructor(db: KernelDb);
20
+ state(environmentId: string): Promise<DeviceTargetState>;
21
+ /** The org of a live environment, or null (missing or deleted). */
22
+ orgOf(environmentId: string): Promise<string | null>;
23
+ /**
24
+ * The roots the environment's active machine last reported in its hello frame, or null (no
25
+ * active machine, or none reported yet).
26
+ */
27
+ machineRoots(environmentId: string): Promise<SandboxRoots | null>;
28
+ }
@@ -0,0 +1,73 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { Inject, Injectable } from "@nestjs/common";
11
+ import { KernelDb } from "../infra/database/kernel-db.js";
12
+ const ROOT_KEYS = ["workspace", "skills", "tmp"];
13
+ /** Whether two sets of roots name the same three directories. */
14
+ export const sameRoots = (a, b) => ROOT_KEYS.every((k) => a[k] === b[k]);
15
+ /**
16
+ * Reads a device environment and its machine from PG for the relay and the `@device` provider.
17
+ * The relay asks {@link state} when a machine has no connection, so a revoked machine or a deleted
18
+ * environment fails a waiting call at once instead of after the reconnect grace (ruling R27).
19
+ * Kept apart from `MachinesService` (which depends on the relay) so there is no dependency cycle.
20
+ */
21
+ let DeviceTargets = class DeviceTargets {
22
+ db;
23
+ constructor(db) {
24
+ this.db = db;
25
+ }
26
+ async state(environmentId) {
27
+ const row = await this.db
28
+ .selectFrom("environments as e")
29
+ .innerJoin("orgs as o", "o.id", "e.org_id")
30
+ .leftJoin("environment_machines as m", (j) => j.onRef("m.environment_id", "=", "e.id").on("m.revoked_at", "is", null))
31
+ .select(["e.id", "m.id as machine_id"])
32
+ .where("e.id", "=", environmentId)
33
+ .where("e.deleted_at", "is", null)
34
+ .where("o.deleted_at", "is", null)
35
+ .executeTakeFirst();
36
+ if (!row)
37
+ return "deleted";
38
+ return row.machine_id === null ? "revoked" : "active";
39
+ }
40
+ /** The org of a live environment, or null (missing or deleted). */
41
+ async orgOf(environmentId) {
42
+ const row = await this.db
43
+ .selectFrom("environments")
44
+ .select("org_id")
45
+ .where("id", "=", environmentId)
46
+ .where("deleted_at", "is", null)
47
+ .executeTakeFirst();
48
+ return row?.org_id ?? null;
49
+ }
50
+ /**
51
+ * The roots the environment's active machine last reported in its hello frame, or null (no
52
+ * active machine, or none reported yet).
53
+ */
54
+ async machineRoots(environmentId) {
55
+ const row = await this.db
56
+ .selectFrom("environment_machines")
57
+ .select("roots")
58
+ .where("environment_id", "=", environmentId)
59
+ .where("revoked_at", "is", null)
60
+ .executeTakeFirst();
61
+ const r = row?.roots;
62
+ if (!r || typeof r !== "object")
63
+ return null;
64
+ if (!ROOT_KEYS.every((k) => typeof r[k] === "string"))
65
+ return null;
66
+ return r;
67
+ }
68
+ };
69
+ DeviceTargets = __decorate([
70
+ Injectable(),
71
+ __param(0, Inject(KernelDb))
72
+ ], DeviceTargets);
73
+ export { DeviceTargets };
@@ -0,0 +1,66 @@
1
+ import { ApiError } from "../errors.js";
2
+ import { KernelDb } from "../infra/database/kernel-db.js";
3
+ import { SandboxProviders } from "../sandbox/providers.js";
4
+ /** What decides an environment's provider: its own record and its instance row's (if any). */
5
+ export interface ProviderFacts {
6
+ /** `environments.provider`: the provider current when it was created. */
7
+ provider: string | null;
8
+ /** `environment_instances.provider`; null without an instance row. */
9
+ instanceProvider: string | null;
10
+ /** The instance row's `fs_status`; null without an instance row. */
11
+ fsStatus: "none" | "ready" | "lost" | null;
12
+ /** The instance row records an instance handle. */
13
+ hasInstance: boolean;
14
+ }
15
+ /**
16
+ * The provider an environment works with: a kernel-internal one (`@device`) as recorded; for a
17
+ * cloud environment the one keeping its files or instance once it has any (they are never
18
+ * migrated, spec §4.2 item 13); before that, the current cloud provider (its first use creates
19
+ * them there), else the one recorded at creation. The same rule as `SandboxService`'s use.
20
+ */
21
+ export declare function environmentProvider(f: ProviderFacts, current: string | undefined): string | null;
22
+ /** It has files or an instance at some provider (a file system, even a lost one, or a handle). */
23
+ export declare const holdsResources: (f: ProviderFacts) => boolean;
24
+ /** `environment_instances.status`. */
25
+ export type InstanceStatus = "none" | "creating" | "running" | "suspended" | "destroyed";
26
+ /**
27
+ * For replacing a default (which one is the person's default): it holds healthy files or an
28
+ * instance, or an instance row is under way (`creating`, `running`, `suspended`: a first use may
29
+ * be creating the instance before any file system or handle is recorded). Lost files count as
30
+ * none here, unlike {@link holdsResources}, which decides the provider.
31
+ */
32
+ export declare const inUseForDefault: (f: ProviderFacts & {
33
+ status: InstanceStatus | null;
34
+ }) => boolean;
35
+ /**
36
+ * The provider a former default belongs to (its label and the provider whose switch back restores
37
+ * it): the one holding its resources once it holds any, else the one it was demoted from (the
38
+ * marker). A former default demoted while empty and used afterwards keeps a stale marker; its
39
+ * resources decide. null for an environment that is not a former default.
40
+ */
41
+ export declare function demotedProvider(marker: string | null, f: ProviderFacts): string | null;
42
+ /**
43
+ * The environment's provider is not the current one, or there is no provider (503); for an
44
+ * internal provider (`@device`), this kernel does not serve it.
45
+ */
46
+ export declare const environmentUnavailable: (provider: string | null) => ApiError;
47
+ /**
48
+ * Who may use an environment (spec §4.2 item 12): in phase 1 only the owner of a personal
49
+ * environment. Anyone else gets `environment.not_found`, never `forbidden`, so ids cannot be
50
+ * probed. Read live on every call (PG, no cache); phase 3 adds project membership.
51
+ */
52
+ export declare class EnvironmentAccess {
53
+ private readonly db;
54
+ private readonly providers;
55
+ constructor(db: KernelDb, providers: Pick<SandboxProviders, "cloud" | "forName">);
56
+ /**
57
+ * The environment if `accountId` may use it in `orgId` now: `environment.not_found` when it is
58
+ * missing, deleted, in another org or someone else's; `environment.unavailable` when its
59
+ * provider is not the current one (or there is none). A `device` environment is usable while
60
+ * `@device` is registered: whether its machine is online is the relay's concern, not access.
61
+ */
62
+ usable(orgId: string, accountId: string, environmentId: string): Promise<{
63
+ id: string;
64
+ provider: string | null;
65
+ }>;
66
+ }
@@ -0,0 +1,113 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { Inject, Injectable } from "@nestjs/common";
11
+ import { ApiError } from "../errors.js";
12
+ import { KernelDb } from "../infra/database/kernel-db.js";
13
+ import { isInternalProvider, SandboxProviders } from "../sandbox/providers.js";
14
+ import { environmentNotFound } from "../sandbox/sandbox.service.js";
15
+ /**
16
+ * The provider an environment works with: a kernel-internal one (`@device`) as recorded; for a
17
+ * cloud environment the one keeping its files or instance once it has any (they are never
18
+ * migrated, spec §4.2 item 13); before that, the current cloud provider (its first use creates
19
+ * them there), else the one recorded at creation. The same rule as `SandboxService`'s use.
20
+ */
21
+ export function environmentProvider(f, current) {
22
+ if (f.provider !== null && isInternalProvider(f.provider))
23
+ return f.provider;
24
+ if (holdsResources(f))
25
+ return f.instanceProvider;
26
+ return current ?? f.provider;
27
+ }
28
+ /** It has files or an instance at some provider (a file system, even a lost one, or a handle). */
29
+ export const holdsResources = (f) => f.fsStatus !== null && (f.fsStatus !== "none" || f.hasInstance);
30
+ /**
31
+ * For replacing a default (which one is the person's default): it holds healthy files or an
32
+ * instance, or an instance row is under way (`creating`, `running`, `suspended`: a first use may
33
+ * be creating the instance before any file system or handle is recorded). Lost files count as
34
+ * none here, unlike {@link holdsResources}, which decides the provider.
35
+ */
36
+ export const inUseForDefault = (f) => f.fsStatus === "ready" ||
37
+ f.hasInstance ||
38
+ (f.status !== null && f.status !== "none" && f.status !== "destroyed");
39
+ /**
40
+ * The provider a former default belongs to (its label and the provider whose switch back restores
41
+ * it): the one holding its resources once it holds any, else the one it was demoted from (the
42
+ * marker). A former default demoted while empty and used afterwards keeps a stale marker; its
43
+ * resources decide. null for an environment that is not a former default.
44
+ */
45
+ export function demotedProvider(marker, f) {
46
+ if (marker === null)
47
+ return null;
48
+ return (holdsResources(f) ? f.instanceProvider : null) ?? marker;
49
+ }
50
+ /**
51
+ * The environment's provider is not the current one, or there is no provider (503); for an
52
+ * internal provider (`@device`), this kernel does not serve it.
53
+ */
54
+ export const environmentUnavailable = (provider) => new ApiError("environment.unavailable", provider === null
55
+ ? "No cloud sandbox is available in this deployment; ask the super admin to enable a sandbox plugin"
56
+ : isInternalProvider(provider)
57
+ ? `This environment runs on a connected machine (${provider}), which this deployment does not serve`
58
+ : `This environment is kept by the sandbox provider ${provider}, which is not the current provider; it can be used again once ${provider} is the deployment's sandbox provider`);
59
+ /**
60
+ * Who may use an environment (spec §4.2 item 12): in phase 1 only the owner of a personal
61
+ * environment. Anyone else gets `environment.not_found`, never `forbidden`, so ids cannot be
62
+ * probed. Read live on every call (PG, no cache); phase 3 adds project membership.
63
+ */
64
+ let EnvironmentAccess = class EnvironmentAccess {
65
+ db;
66
+ providers;
67
+ constructor(db, providers) {
68
+ this.db = db;
69
+ this.providers = providers;
70
+ }
71
+ /**
72
+ * The environment if `accountId` may use it in `orgId` now: `environment.not_found` when it is
73
+ * missing, deleted, in another org or someone else's; `environment.unavailable` when its
74
+ * provider is not the current one (or there is none). A `device` environment is usable while
75
+ * `@device` is registered: whether its machine is online is the relay's concern, not access.
76
+ */
77
+ async usable(orgId, accountId, environmentId) {
78
+ const row = await this.db
79
+ .selectFrom("environments as e")
80
+ .leftJoin("environment_instances as i", "i.environment_id", "e.id")
81
+ .select(["e.id", "e.provider", "i.provider as instance_provider", "i.fs_status", "i.handle"])
82
+ .where("e.id", "=", environmentId)
83
+ .where("e.org_id", "=", orgId)
84
+ .where("e.owner_kind", "=", "personal")
85
+ .where("e.owner_account_id", "=", accountId)
86
+ .where("e.deleted_at", "is", null)
87
+ .executeTakeFirst();
88
+ if (!row)
89
+ throw environmentNotFound();
90
+ if (row.provider !== null && isInternalProvider(row.provider)) {
91
+ if (this.providers.forName(row.provider) === undefined) {
92
+ throw environmentUnavailable(row.provider);
93
+ }
94
+ return { id: row.id, provider: row.provider };
95
+ }
96
+ const current = this.providers.cloud()?.plugin;
97
+ const provider = environmentProvider({
98
+ provider: row.provider,
99
+ instanceProvider: row.instance_provider,
100
+ fsStatus: row.fs_status,
101
+ hasInstance: row.handle !== null,
102
+ }, current);
103
+ if (current === undefined || provider !== current)
104
+ throw environmentUnavailable(provider);
105
+ return { id: row.id, provider };
106
+ }
107
+ };
108
+ EnvironmentAccess = __decorate([
109
+ Injectable(),
110
+ __param(0, Inject(KernelDb)),
111
+ __param(1, Inject(SandboxProviders))
112
+ ], EnvironmentAccess);
113
+ export { EnvironmentAccess };