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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1152) hide show
  1. package/bootstrap.json +92 -8
  2. package/dist/admin/admin.controller.d.ts +52 -71
  3. package/dist/admin/admin.controller.js +117 -63
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/admin.schemas.d.ts +57 -0
  7. package/dist/admin/admin.schemas.js +50 -0
  8. package/dist/admin/extensions.controller.d.ts +47 -16
  9. package/dist/admin/extensions.controller.js +94 -23
  10. package/dist/admin/extensions.schemas.d.ts +7 -0
  11. package/dist/admin/extensions.schemas.js +10 -0
  12. package/dist/admin/limit-defaults.d.ts +20 -0
  13. package/dist/admin/limit-defaults.js +10 -0
  14. package/dist/admin/setup-lock.d.ts +16 -0
  15. package/dist/admin/setup-lock.js +47 -0
  16. package/dist/admin/setup.controller.d.ts +9 -9
  17. package/dist/admin/setup.controller.js +28 -26
  18. package/dist/admin/setup.service.d.ts +20 -28
  19. package/dist/admin/setup.service.js +65 -65
  20. package/dist/agents/agent-lookup.d.ts +72 -0
  21. package/dist/agents/agent-lookup.js +208 -0
  22. package/dist/agents/agent-profile.service.d.ts +31 -0
  23. package/dist/agents/agent-profile.service.js +122 -0
  24. package/dist/agents/agents.controller.d.ts +54 -169
  25. package/dist/agents/agents.controller.js +172 -37
  26. package/dist/agents/agents.module.d.ts +10 -0
  27. package/dist/agents/agents.module.js +71 -0
  28. package/dist/agents/agents.schemas.d.ts +389 -0
  29. package/dist/agents/agents.schemas.js +126 -0
  30. package/dist/agents/agents.service.d.ts +104 -76
  31. package/dist/agents/agents.service.js +509 -383
  32. package/dist/agents/definition.d.ts +133 -21
  33. package/dist/agents/definition.js +361 -41
  34. package/dist/agents/from-template.d.ts +106 -0
  35. package/dist/agents/from-template.js +680 -0
  36. package/dist/agents/from-template.service.d.ts +72 -0
  37. package/dist/agents/from-template.service.js +178 -0
  38. package/dist/agents/instruction-files.d.ts +60 -0
  39. package/dist/agents/instruction-files.js +111 -0
  40. package/dist/agents/models.controller.d.ts +44 -6
  41. package/dist/agents/models.controller.js +84 -8
  42. package/dist/agents/org-templates.d.ts +186 -0
  43. package/dist/agents/org-templates.js +868 -0
  44. package/dist/agents/pending-connector-requests.d.ts +79 -0
  45. package/dist/agents/pending-connector-requests.js +215 -0
  46. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  47. package/dist/agents/pending-connectors.controller.js +91 -0
  48. package/dist/agents/pending-connectors.service.d.ts +62 -0
  49. package/dist/agents/pending-connectors.service.js +282 -0
  50. package/dist/agents/profile.d.ts +114 -0
  51. package/dist/agents/profile.js +55 -0
  52. package/dist/agents/readiness.controller.d.ts +26 -0
  53. package/dist/agents/readiness.controller.js +56 -0
  54. package/dist/agents/templates.controller.d.ts +78 -6
  55. package/dist/agents/templates.controller.js +154 -8
  56. package/dist/agents/templates.d.ts +132 -30
  57. package/dist/agents/templates.js +500 -46
  58. package/dist/agents/templates.schemas.d.ts +20 -0
  59. package/dist/agents/templates.schemas.js +45 -0
  60. package/dist/app.d.ts +93 -0
  61. package/dist/app.js +150 -0
  62. package/dist/background/background.controller.d.ts +38 -0
  63. package/dist/background/background.controller.js +88 -0
  64. package/dist/background/background.module.d.ts +10 -0
  65. package/dist/background/background.module.js +39 -0
  66. package/dist/background/background.schemas.d.ts +10 -0
  67. package/dist/background/background.schemas.js +16 -0
  68. package/dist/background/finish.d.ts +44 -0
  69. package/dist/background/finish.js +95 -0
  70. package/dist/background/launch-lock.d.ts +15 -0
  71. package/dist/background/launch-lock.js +40 -0
  72. package/dist/background/launch.d.ts +42 -0
  73. package/dist/background/launch.js +77 -0
  74. package/dist/background/poll.job.d.ts +56 -0
  75. package/dist/background/poll.job.js +195 -0
  76. package/dist/background/render.d.ts +23 -0
  77. package/dist/background/render.js +48 -0
  78. package/dist/background/session.d.ts +48 -0
  79. package/dist/background/session.js +80 -0
  80. package/dist/background/status.d.ts +35 -0
  81. package/dist/background/status.js +57 -0
  82. package/dist/background/stop.d.ts +68 -0
  83. package/dist/background/stop.js +244 -0
  84. package/dist/background/store.d.ts +167 -0
  85. package/dist/background/store.js +361 -0
  86. package/dist/background/store.module.d.ts +6 -0
  87. package/dist/background/store.module.js +22 -0
  88. package/dist/background/tasks.service.d.ts +77 -0
  89. package/dist/background/tasks.service.js +216 -0
  90. package/dist/background/wake-rules.d.ts +66 -0
  91. package/dist/background/wake-rules.js +113 -0
  92. package/dist/background/wake.d.ts +30 -0
  93. package/dist/background/wake.js +63 -0
  94. package/dist/catalog/admin-catalog.controller.d.ts +102 -52
  95. package/dist/catalog/admin-catalog.controller.js +222 -67
  96. package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
  97. package/dist/catalog/admin-catalog.schemas.js +92 -0
  98. package/dist/catalog/catalog-content.d.ts +232 -0
  99. package/dist/catalog/catalog-content.js +367 -0
  100. package/dist/catalog/catalog-files.d.ts +41 -0
  101. package/dist/catalog/catalog-files.js +86 -0
  102. package/dist/catalog/catalog-import.module.d.ts +7 -0
  103. package/dist/catalog/catalog-import.module.js +60 -0
  104. package/dist/catalog/catalog-items.d.ts +290 -0
  105. package/dist/catalog/catalog-items.js +676 -0
  106. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  107. package/dist/catalog/catalog-scope.service.js +1124 -0
  108. package/dist/catalog/catalog.module.d.ts +12 -0
  109. package/dist/catalog/catalog.module.js +81 -0
  110. package/dist/catalog/catalog.service.d.ts +141 -206
  111. package/dist/catalog/catalog.service.js +237 -528
  112. package/dist/catalog/claude/agents.js +15 -10
  113. package/dist/catalog/cli.d.ts +14 -3
  114. package/dist/catalog/cli.js +39 -32
  115. package/dist/catalog/component-promotion.d.ts +96 -0
  116. package/dist/catalog/component-promotion.js +395 -0
  117. package/dist/catalog/component-scope.controller.d.ts +90 -0
  118. package/dist/catalog/component-scope.controller.js +234 -0
  119. package/dist/catalog/component-scope.schemas.d.ts +114 -0
  120. package/dist/catalog/component-scope.schemas.js +97 -0
  121. package/dist/catalog/component-scope.service.d.ts +327 -0
  122. package/dist/catalog/component-scope.service.js +990 -0
  123. package/dist/catalog/component-state.d.ts +188 -0
  124. package/dist/catalog/component-state.js +455 -0
  125. package/dist/catalog/git-source.d.ts +9 -1
  126. package/dist/catalog/git-source.js +29 -2
  127. package/dist/catalog/job-ids.d.ts +45 -0
  128. package/dist/catalog/job-ids.js +40 -0
  129. package/dist/catalog/jobs.d.ts +27 -0
  130. package/dist/catalog/jobs.js +70 -0
  131. package/dist/catalog/locks.d.ts +24 -0
  132. package/dist/catalog/locks.js +63 -0
  133. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  134. package/dist/catalog/marketplace-icons.d.ts +64 -0
  135. package/dist/catalog/marketplace-icons.js +131 -0
  136. package/dist/catalog/marketplaces.controller.d.ts +53 -44
  137. package/dist/catalog/marketplaces.controller.js +146 -51
  138. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  139. package/dist/catalog/marketplaces.schemas.js +53 -0
  140. package/dist/catalog/marketplaces.service.d.ts +136 -26
  141. package/dist/catalog/marketplaces.service.js +663 -281
  142. package/dist/catalog/org-catalog.controller.d.ts +115 -63
  143. package/dist/catalog/org-catalog.controller.js +207 -100
  144. package/dist/catalog/org-catalog.schemas.d.ts +88 -0
  145. package/dist/catalog/org-catalog.schemas.js +93 -0
  146. package/dist/catalog/org-catalog.service.d.ts +89 -216
  147. package/dist/catalog/org-catalog.service.js +431 -472
  148. package/dist/catalog/org-extension-switch.d.ts +41 -0
  149. package/dist/catalog/org-extension-switch.js +115 -0
  150. package/dist/catalog/org-extension.controller.d.ts +113 -0
  151. package/dist/catalog/org-extension.controller.js +271 -0
  152. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  153. package/dist/catalog/org-extension.schemas.js +22 -0
  154. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  155. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  156. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  157. package/dist/catalog/org-plugin-uploads.js +122 -0
  158. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  159. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  160. package/dist/catalog/owned-items.d.ts +188 -0
  161. package/dist/catalog/owned-items.js +801 -0
  162. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  163. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  164. package/dist/catalog/ownership.d.ts +172 -0
  165. package/dist/catalog/ownership.js +326 -0
  166. package/dist/catalog/platform-components.d.ts +223 -0
  167. package/dist/catalog/platform-components.js +763 -0
  168. package/dist/catalog/platform-migration.d.ts +115 -0
  169. package/dist/catalog/platform-migration.js +582 -0
  170. package/dist/catalog/plugin-import.d.ts +270 -68
  171. package/dist/catalog/plugin-import.js +1004 -277
  172. package/dist/catalog/plugin-install.d.ts +251 -65
  173. package/dist/catalog/plugin-install.js +1128 -344
  174. package/dist/catalog/plugin-package.js +14 -1
  175. package/dist/catalog/plugin-upgrade.d.ts +301 -188
  176. package/dist/catalog/plugin-upgrade.js +1256 -1068
  177. package/dist/catalog/request-rules.d.ts +65 -0
  178. package/dist/catalog/request-rules.js +217 -0
  179. package/dist/catalog/requests.service.d.ts +205 -117
  180. package/dist/catalog/requests.service.js +612 -369
  181. package/dist/catalog/reserved-names.d.ts +8 -0
  182. package/dist/catalog/reserved-names.js +42 -0
  183. package/dist/catalog/scope-orgs.d.ts +21 -0
  184. package/dist/catalog/scope-orgs.js +67 -0
  185. package/dist/catalog/scope-state.d.ts +35 -0
  186. package/dist/catalog/scope-state.js +87 -0
  187. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  188. package/dist/catalog/scope-sync-workers.js +29 -0
  189. package/dist/catalog/scope-sync.d.ts +176 -0
  190. package/dist/catalog/scope-sync.js +576 -0
  191. package/dist/catalog/scope.d.ts +42 -0
  192. package/dist/catalog/scope.js +42 -0
  193. package/dist/catalog/unshare.d.ts +22 -0
  194. package/dist/catalog/unshare.js +118 -0
  195. package/dist/channels/actions.d.ts +6 -4
  196. package/dist/channels/actions.js +11 -4
  197. package/dist/channels/cards.d.ts +33 -11
  198. package/dist/channels/cards.js +96 -24
  199. package/dist/channels/channels.module.d.ts +40 -0
  200. package/dist/channels/channels.module.js +130 -0
  201. package/dist/channels/channels.schemas.d.ts +37 -0
  202. package/dist/channels/channels.schemas.js +38 -0
  203. package/dist/channels/connections.controller.d.ts +44 -37
  204. package/dist/channels/connections.controller.js +83 -38
  205. package/dist/channels/connections.service.d.ts +101 -30
  206. package/dist/channels/connections.service.js +380 -147
  207. package/dist/channels/inbound.d.ts +44 -38
  208. package/dist/channels/inbound.js +190 -44
  209. package/dist/channels/job-ids.d.ts +10 -0
  210. package/dist/channels/job-ids.js +10 -0
  211. package/dist/channels/jobs.d.ts +85 -0
  212. package/dist/channels/jobs.js +157 -0
  213. package/dist/channels/outbound.d.ts +71 -80
  214. package/dist/channels/outbound.js +219 -201
  215. package/dist/channels/phrases.d.ts +33 -2
  216. package/dist/channels/phrases.js +29 -1
  217. package/dist/channels/supervisor.d.ts +88 -46
  218. package/dist/channels/supervisor.js +230 -132
  219. package/dist/channels/threads.d.ts +34 -8
  220. package/dist/channels/threads.js +79 -13
  221. package/dist/channels/webhook.d.ts +20 -14
  222. package/dist/channels/webhook.js +51 -20
  223. package/dist/config/docs.js +5 -1
  224. package/dist/config/load.d.ts +3 -2
  225. package/dist/config/load.js +3 -2
  226. package/dist/config/nacos-source.js +11 -2
  227. package/dist/config/schema.d.ts +51 -3
  228. package/dist/config/schema.js +269 -27
  229. package/dist/conversations/access.d.ts +31 -0
  230. package/dist/conversations/access.js +110 -0
  231. package/dist/conversations/agent-tree.d.ts +46 -0
  232. package/dist/conversations/agent-tree.js +92 -0
  233. package/dist/conversations/artifacts.d.ts +11 -11
  234. package/dist/conversations/artifacts.js +36 -10
  235. package/dist/conversations/attachments.controller.d.ts +1 -1
  236. package/dist/conversations/attachments.controller.js +8 -6
  237. package/dist/conversations/attachments.module.d.ts +7 -0
  238. package/dist/conversations/attachments.module.js +25 -0
  239. package/dist/conversations/attachments.service.d.ts +60 -22
  240. package/dist/conversations/attachments.service.js +249 -51
  241. package/dist/conversations/conversations.controller.d.ts +86 -50
  242. package/dist/conversations/conversations.controller.js +184 -103
  243. package/dist/conversations/conversations.module.d.ts +8 -0
  244. package/dist/conversations/conversations.module.js +72 -0
  245. package/dist/conversations/conversations.schemas.d.ts +52 -0
  246. package/dist/conversations/conversations.schemas.js +79 -0
  247. package/dist/conversations/conversations.service.d.ts +166 -49
  248. package/dist/conversations/conversations.service.js +383 -179
  249. package/dist/conversations/environment-status.d.ts +24 -0
  250. package/dist/conversations/environment-status.js +71 -0
  251. package/dist/conversations/event-log.d.ts +64 -27
  252. package/dist/conversations/event-log.js +167 -31
  253. package/dist/conversations/events.d.ts +252 -9
  254. package/dist/conversations/events.js +243 -32
  255. package/dist/conversations/files.d.ts +10 -10
  256. package/dist/conversations/files.js +37 -11
  257. package/dist/conversations/idem-keys.d.ts +5 -0
  258. package/dist/conversations/idem-keys.js +5 -0
  259. package/dist/conversations/job-ids.d.ts +6 -0
  260. package/dist/conversations/job-ids.js +6 -0
  261. package/dist/conversations/message-context.d.ts +79 -0
  262. package/dist/conversations/message-context.js +145 -0
  263. package/dist/conversations/outputs-read.d.ts +11 -11
  264. package/dist/conversations/outputs-read.js +31 -7
  265. package/dist/conversations/queue.d.ts +53 -58
  266. package/dist/conversations/queue.js +37 -293
  267. package/dist/conversations/queue.service.d.ts +60 -0
  268. package/dist/conversations/queue.service.js +350 -0
  269. package/dist/conversations/titles.d.ts +83 -27
  270. package/dist/conversations/titles.js +195 -70
  271. package/dist/conversations/tree.d.ts +17 -0
  272. package/dist/conversations/tree.js +42 -0
  273. package/dist/ctx/bus.js +9 -3
  274. package/dist/ctx/create-ctx.d.ts +26 -1
  275. package/dist/ctx/create-ctx.js +45 -16
  276. package/dist/ctx/lock.d.ts +7 -3
  277. package/dist/ctx/lock.js +9 -20
  278. package/dist/ctx/queue.js +3 -2
  279. package/dist/ctx/secrets.d.ts +10 -2
  280. package/dist/ctx/secrets.js +7 -3
  281. package/dist/db/kernel-schema.d.ts +550 -25
  282. package/dist/db/pool.d.ts +10 -0
  283. package/dist/db/pool.js +4 -0
  284. package/dist/devices/device-auth.controller.d.ts +42 -0
  285. package/dist/devices/device-auth.controller.js +116 -0
  286. package/dist/devices/device-auth.d.ts +119 -0
  287. package/dist/devices/device-auth.js +403 -0
  288. package/dist/devices/device-auth.module.d.ts +7 -0
  289. package/dist/devices/device-auth.module.js +25 -0
  290. package/dist/devices/device-gateway.d.ts +128 -0
  291. package/dist/devices/device-gateway.js +530 -0
  292. package/dist/devices/device-provider.d.ts +89 -0
  293. package/dist/devices/device-provider.js +151 -0
  294. package/dist/devices/device-routes.d.ts +36 -0
  295. package/dist/devices/device-routes.js +90 -0
  296. package/dist/devices/devices.module.d.ts +16 -0
  297. package/dist/devices/devices.module.js +44 -0
  298. package/dist/devices/dto.d.ts +66 -0
  299. package/dist/devices/dto.js +44 -0
  300. package/dist/devices/keys.d.ts +25 -0
  301. package/dist/devices/keys.js +25 -0
  302. package/dist/devices/machines.d.ts +118 -0
  303. package/dist/devices/machines.js +366 -0
  304. package/dist/devices/relay.d.ts +100 -0
  305. package/dist/devices/relay.js +373 -0
  306. package/dist/devices/targets.d.ts +28 -0
  307. package/dist/devices/targets.js +73 -0
  308. package/dist/environments/access.d.ts +66 -0
  309. package/dist/environments/access.js +113 -0
  310. package/dist/environments/conversation-environments.d.ts +75 -0
  311. package/dist/environments/conversation-environments.js +231 -0
  312. package/dist/environments/dto.d.ts +25 -0
  313. package/dist/environments/dto.js +12 -0
  314. package/dist/environments/environments.controller.d.ts +36 -0
  315. package/dist/environments/environments.controller.js +124 -0
  316. package/dist/environments/environments.module.d.ts +8 -0
  317. package/dist/environments/environments.module.js +31 -0
  318. package/dist/environments/environments.schemas.d.ts +3 -0
  319. package/dist/environments/environments.schemas.js +14 -0
  320. package/dist/environments/environments.service.d.ts +251 -0
  321. package/dist/environments/environments.service.js +791 -0
  322. package/dist/environments/label.d.ts +11 -0
  323. package/dist/environments/label.js +25 -0
  324. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  325. package/dist/environments/legacy-cleanup.job.js +141 -0
  326. package/dist/errors.d.ts +136 -2
  327. package/dist/errors.js +136 -2
  328. package/dist/evals/budget.d.ts +42 -21
  329. package/dist/evals/budget.js +114 -62
  330. package/dist/evals/evals.module.d.ts +31 -0
  331. package/dist/evals/evals.module.js +114 -0
  332. package/dist/evals/evals.schemas.d.ts +110 -0
  333. package/dist/evals/evals.schemas.js +107 -0
  334. package/dist/evals/jobs.d.ts +20 -0
  335. package/dist/evals/jobs.js +45 -0
  336. package/dist/evals/reconstruct.d.ts +18 -9
  337. package/dist/evals/reconstruct.js +36 -10
  338. package/dist/evals/recorded-tools.d.ts +37 -1
  339. package/dist/evals/recorded-tools.js +120 -10
  340. package/dist/evals/run-replay.d.ts +75 -10
  341. package/dist/evals/run-replay.js +218 -94
  342. package/dist/evals/runs.controller.d.ts +3 -58
  343. package/dist/evals/runs.controller.js +18 -50
  344. package/dist/evals/runs.service.d.ts +31 -52
  345. package/dist/evals/runs.service.js +281 -255
  346. package/dist/evals/sets.controller.d.ts +3 -29
  347. package/dist/evals/sets.controller.js +18 -39
  348. package/dist/evals/sets.service.d.ts +29 -13
  349. package/dist/evals/sets.service.js +262 -202
  350. package/dist/evals/snapshot.d.ts +5 -4
  351. package/dist/evals/snapshot.js +17 -4
  352. package/dist/evals/step-replay.d.ts +6 -8
  353. package/dist/evals/step-replay.js +17 -10
  354. package/dist/evals/trajectory.controller.d.ts +1 -1
  355. package/dist/evals/trajectory.controller.js +11 -7
  356. package/dist/evals/trajectory.d.ts +2 -2
  357. package/dist/evals/trajectory.js +1 -1
  358. package/dist/evals/trajectory.service.d.ts +13 -7
  359. package/dist/evals/trajectory.service.js +56 -21
  360. package/dist/evals/worker.d.ts +48 -31
  361. package/dist/evals/worker.js +229 -123
  362. package/dist/extensions/admin-ops.d.ts +133 -41
  363. package/dist/extensions/admin-ops.js +378 -172
  364. package/dist/extensions/admin-view.d.ts +82 -32
  365. package/dist/extensions/admin-view.js +284 -71
  366. package/dist/extensions/approvals.d.ts +24 -10
  367. package/dist/extensions/approvals.js +73 -46
  368. package/dist/extensions/blobs.d.ts +27 -10
  369. package/dist/extensions/blobs.js +112 -45
  370. package/dist/extensions/bootstrap.d.ts +136 -46
  371. package/dist/extensions/bootstrap.js +417 -167
  372. package/dist/extensions/cli.d.ts +32 -10
  373. package/dist/extensions/cli.js +52 -98
  374. package/dist/extensions/config-hash.d.ts +10 -0
  375. package/dist/extensions/config-hash.js +38 -0
  376. package/dist/extensions/config-issues.d.ts +19 -0
  377. package/dist/extensions/config-issues.js +48 -0
  378. package/dist/extensions/config-json-schema.d.ts +43 -7
  379. package/dist/extensions/config-json-schema.js +124 -58
  380. package/dist/extensions/deployment-config-store.d.ts +55 -0
  381. package/dist/extensions/deployment-config-store.js +133 -0
  382. package/dist/extensions/deployment-config.d.ts +146 -70
  383. package/dist/extensions/deployment-config.js +439 -246
  384. package/dist/extensions/display-name.d.ts +22 -0
  385. package/dist/extensions/display-name.js +77 -0
  386. package/dist/extensions/effective-config.d.ts +127 -0
  387. package/dist/extensions/effective-config.js +368 -0
  388. package/dist/extensions/enabled.d.ts +5 -5
  389. package/dist/extensions/extensions.module.d.ts +8 -0
  390. package/dist/extensions/extensions.module.js +96 -0
  391. package/dist/extensions/hooks.d.ts +40 -6
  392. package/dist/extensions/hooks.js +83 -17
  393. package/dist/extensions/host.d.ts +161 -80
  394. package/dist/extensions/host.js +505 -213
  395. package/dist/extensions/installs.d.ts +73 -19
  396. package/dist/extensions/installs.js +174 -37
  397. package/dist/extensions/job-ids.d.ts +6 -0
  398. package/dist/extensions/job-ids.js +6 -0
  399. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  400. package/dist/extensions/lifecycle-topics.js +18 -0
  401. package/dist/extensions/lifecycle.d.ts +35 -47
  402. package/dist/extensions/lifecycle.js +103 -39
  403. package/dist/extensions/locks.d.ts +45 -0
  404. package/dist/extensions/locks.js +112 -0
  405. package/dist/extensions/migrate-lock.d.ts +3 -4
  406. package/dist/extensions/org-config.d.ts +141 -49
  407. package/dist/extensions/org-config.js +471 -243
  408. package/dist/extensions/org-levels.d.ts +37 -0
  409. package/dist/extensions/org-levels.js +71 -0
  410. package/dist/extensions/org-overrides.d.ts +151 -0
  411. package/dist/extensions/org-overrides.js +524 -0
  412. package/dist/extensions/package.d.ts +14 -1
  413. package/dist/extensions/package.js +51 -2
  414. package/dist/extensions/permission-view.d.ts +59 -6
  415. package/dist/extensions/permission-view.js +7 -5
  416. package/dist/extensions/plugin-guides.d.ts +129 -0
  417. package/dist/extensions/plugin-guides.js +283 -0
  418. package/dist/extensions/plugin-icons.d.ts +54 -0
  419. package/dist/extensions/plugin-icons.js +125 -0
  420. package/dist/extensions/plugin-items.d.ts +21 -0
  421. package/dist/extensions/plugin-items.js +42 -0
  422. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  423. package/dist/extensions/point-defaults.controller.js +69 -0
  424. package/dist/extensions/point-defaults.d.ts +73 -0
  425. package/dist/extensions/point-defaults.js +236 -0
  426. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  427. package/dist/extensions/point-defaults.schemas.js +14 -0
  428. package/dist/extensions/registry.d.ts +50 -2
  429. package/dist/extensions/registry.js +91 -4
  430. package/dist/extensions/resolve.d.ts +51 -1
  431. package/dist/extensions/resolve.js +85 -3
  432. package/dist/extensions/single-provider.d.ts +92 -0
  433. package/dist/extensions/single-provider.js +180 -0
  434. package/dist/extensions/sources.d.ts +19 -10
  435. package/dist/extensions/sources.js +34 -13
  436. package/dist/extensions/state.module.d.ts +9 -0
  437. package/dist/extensions/state.module.js +38 -0
  438. package/dist/extensions/unavailable.d.ts +50 -0
  439. package/dist/extensions/unavailable.js +115 -0
  440. package/dist/files/files.module.d.ts +3 -0
  441. package/dist/files/files.module.js +22 -0
  442. package/dist/files/previewers.controller.d.ts +7 -2
  443. package/dist/files/previewers.controller.js +19 -12
  444. package/dist/files/previewers.d.ts +21 -19
  445. package/dist/files/previewers.js +114 -38
  446. package/dist/files/previewers.schemas.d.ts +10 -0
  447. package/dist/files/previewers.schemas.js +9 -0
  448. package/dist/http/adapter.d.ts +3 -0
  449. package/dist/http/adapter.js +25 -0
  450. package/dist/http/api.module.d.ts +3 -110
  451. package/dist/http/api.module.js +86 -358
  452. package/dist/http/app.d.ts +22 -17
  453. package/dist/http/app.js +83 -52
  454. package/dist/http/error-filter.module.d.ts +5 -0
  455. package/dist/http/error-filter.module.js +18 -0
  456. package/dist/http/error.filter.js +2 -2
  457. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  458. package/dist/http/gateway-routes.js +16 -0
  459. package/dist/http/nest-logger.d.ts +6 -5
  460. package/dist/http/nest-logger.js +24 -10
  461. package/dist/http/plugin-dispatch.d.ts +4 -1
  462. package/dist/http/plugin-dispatch.js +14 -2
  463. package/dist/identity/accounts.d.ts +130 -38
  464. package/dist/identity/accounts.js +373 -186
  465. package/dist/identity/api-tokens.d.ts +11 -7
  466. package/dist/identity/api-tokens.js +71 -44
  467. package/dist/identity/audit.d.ts +9 -5
  468. package/dist/identity/audit.js +5 -1
  469. package/dist/identity/auth.controller.d.ts +11 -10
  470. package/dist/identity/auth.controller.js +40 -30
  471. package/dist/identity/auth.guard.d.ts +16 -8
  472. package/dist/identity/auth.guard.js +41 -13
  473. package/dist/identity/binding.d.ts +9 -11
  474. package/dist/identity/binding.js +41 -13
  475. package/dist/identity/cookies.d.ts +26 -5
  476. package/dist/identity/cookies.js +58 -6
  477. package/dist/identity/external-identity-lock.d.ts +17 -0
  478. package/dist/identity/external-identity-lock.js +39 -0
  479. package/dist/identity/external.d.ts +19 -15
  480. package/dist/identity/external.js +163 -125
  481. package/dist/identity/identity.module.d.ts +6 -0
  482. package/dist/identity/identity.module.js +59 -0
  483. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  484. package/dist/identity/initial-passwords.controller.js +49 -0
  485. package/dist/identity/initial-passwords.d.ts +61 -0
  486. package/dist/identity/initial-passwords.job.d.ts +16 -0
  487. package/dist/identity/initial-passwords.job.js +46 -0
  488. package/dist/identity/initial-passwords.js +159 -0
  489. package/dist/identity/me.controller.d.ts +32 -15
  490. package/dist/identity/me.controller.js +78 -33
  491. package/dist/identity/me.schemas.d.ts +14 -0
  492. package/dist/identity/me.schemas.js +17 -0
  493. package/dist/identity/principal.d.ts +11 -3
  494. package/dist/identity/principal.js +11 -3
  495. package/dist/identity/sessions.d.ts +24 -10
  496. package/dist/identity/sessions.js +119 -42
  497. package/dist/identity/settings.d.ts +42 -23
  498. package/dist/identity/settings.js +137 -72
  499. package/dist/identity/sso.controller.d.ts +7 -7
  500. package/dist/identity/sso.controller.js +13 -9
  501. package/dist/identity/sso.d.ts +9 -12
  502. package/dist/identity/sso.js +54 -24
  503. package/dist/identity/super-admin.d.ts +20 -0
  504. package/dist/identity/super-admin.js +81 -0
  505. package/dist/inbox/inbox.module.d.ts +6 -0
  506. package/dist/inbox/inbox.module.js +26 -0
  507. package/dist/inbox/inbox.schemas.d.ts +8 -0
  508. package/dist/inbox/inbox.schemas.js +11 -0
  509. package/dist/inbox/inbox.service.d.ts +68 -11
  510. package/dist/inbox/inbox.service.js +104 -13
  511. package/dist/inbox/org-notices.d.ts +63 -0
  512. package/dist/inbox/org-notices.js +91 -0
  513. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  514. package/dist/inbox/platform-inbox.controller.js +58 -0
  515. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  516. package/dist/inbox/platform-inbox.service.js +263 -0
  517. package/dist/inbox/platform-notices.d.ts +19 -0
  518. package/dist/inbox/platform-notices.js +9 -0
  519. package/dist/index.d.ts +25 -14
  520. package/dist/index.js +20 -9
  521. package/dist/infra/cache/cache.module.d.ts +3 -0
  522. package/dist/infra/cache/cache.module.js +16 -0
  523. package/dist/infra/cache/cache.service.d.ts +21 -0
  524. package/dist/infra/cache/cache.service.js +80 -0
  525. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  526. package/dist/infra/cache/cacheable.decorator.js +83 -0
  527. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  528. package/dist/infra/cli/kernel-cli.module.js +173 -0
  529. package/dist/infra/close-within.d.ts +15 -0
  530. package/dist/infra/close-within.js +36 -0
  531. package/dist/infra/config/config.module.d.ts +13 -0
  532. package/dist/infra/config/config.module.js +39 -0
  533. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  534. package/dist/infra/config/kernel-config.service.js +157 -0
  535. package/dist/infra/database/after-commit.d.ts +6 -0
  536. package/dist/infra/database/after-commit.js +9 -0
  537. package/dist/infra/database/database.module.d.ts +25 -0
  538. package/dist/infra/database/database.module.js +91 -0
  539. package/dist/infra/database/kernel-db.d.ts +22 -0
  540. package/dist/infra/database/kernel-db.js +65 -0
  541. package/dist/infra/database/transaction-host.d.ts +50 -0
  542. package/dist/infra/database/transaction-host.js +125 -0
  543. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  544. package/dist/infra/database/transactional.decorator.js +27 -0
  545. package/dist/infra/database/xact-lock.d.ts +17 -0
  546. package/dist/infra/database/xact-lock.js +43 -0
  547. package/dist/infra/events/kernel-events.d.ts +121 -0
  548. package/dist/infra/events/kernel-events.js +65 -0
  549. package/dist/infra/health/health.controller.d.ts +26 -0
  550. package/dist/infra/health/health.controller.js +104 -0
  551. package/dist/infra/health/health.module.d.ts +9 -0
  552. package/dist/infra/health/health.module.js +24 -0
  553. package/dist/infra/health/health.options.d.ts +10 -0
  554. package/dist/infra/health/health.options.js +15 -0
  555. package/dist/infra/health/shutdown-state.d.ts +6 -0
  556. package/dist/infra/health/shutdown-state.js +2 -0
  557. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  560. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  561. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  562. package/dist/infra/lifecycle/process-guards.js +90 -0
  563. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  564. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  565. package/dist/infra/lock/key-template.d.ts +13 -0
  566. package/dist/infra/lock/key-template.js +46 -0
  567. package/dist/infra/lock/lock.module.d.ts +3 -0
  568. package/dist/infra/lock/lock.module.js +16 -0
  569. package/dist/infra/lock/lock.service.d.ts +120 -0
  570. package/dist/infra/lock/lock.service.js +343 -0
  571. package/dist/infra/lock/shared-lease.d.ts +44 -0
  572. package/dist/infra/lock/shared-lease.js +121 -0
  573. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  574. package/dist/infra/lock/with-lock.decorator.js +49 -0
  575. package/dist/infra/logging/logging.module.d.ts +18 -0
  576. package/dist/infra/logging/logging.module.js +52 -0
  577. package/dist/infra/queue/add-job-once.d.ts +14 -0
  578. package/dist/infra/queue/add-job-once.js +16 -0
  579. package/dist/infra/queue/configured-processor.d.ts +18 -0
  580. package/dist/infra/queue/configured-processor.js +23 -0
  581. package/dist/infra/queue/job-failure.d.ts +18 -0
  582. package/dist/infra/queue/job-failure.js +26 -0
  583. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  584. package/dist/infra/queue/queue-shutdown.js +81 -0
  585. package/dist/infra/queue/queue.module.d.ts +16 -0
  586. package/dist/infra/queue/queue.module.js +61 -0
  587. package/dist/infra/queue/redis-connection.d.ts +13 -0
  588. package/dist/infra/queue/redis-connection.js +25 -0
  589. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  590. package/dist/infra/queue/retired-schedulers.js +9 -0
  591. package/dist/infra/queue/run-job.d.ts +16 -0
  592. package/dist/infra/queue/run-job.js +19 -0
  593. package/dist/infra/redis/redis.module.d.ts +24 -0
  594. package/dist/infra/redis/redis.module.js +91 -0
  595. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  596. package/dist/infra/schedule/cron-tick.js +25 -0
  597. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  598. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  599. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  600. package/dist/infra/schedule/locked-interval.js +190 -0
  601. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  602. package/dist/infra/schedule/locked-tick.js +137 -0
  603. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  604. package/dist/infra/schedule/schedule.module.js +27 -0
  605. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  606. package/dist/infra/schedule/scheduled-runs.js +163 -0
  607. package/dist/infra/swagger/swagger.d.ts +16 -0
  608. package/dist/infra/swagger/swagger.js +31 -0
  609. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  610. package/dist/infra/throttler/credential-throttler.js +77 -0
  611. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  612. package/dist/infra/throttler/named-throttlers.js +157 -0
  613. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  614. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  615. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  616. package/dist/infra/throttler/throttler.guard.js +68 -0
  617. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  618. package/dist/infra/throttler/throttler.module.js +53 -0
  619. package/dist/infra/tokens.d.ts +20 -0
  620. package/dist/infra/tokens.js +20 -0
  621. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  622. package/dist/infra/validation/create-zod-dto.js +35 -0
  623. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  624. package/dist/infra/validation/parse-with-zod.js +12 -0
  625. package/dist/infra/validation/validation.module.d.ts +3 -0
  626. package/dist/infra/validation/validation.module.js +16 -0
  627. package/dist/infra/validation/zod-params.d.ts +7 -0
  628. package/dist/infra/validation/zod-params.js +42 -0
  629. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  630. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  631. package/dist/kernel.d.ts +9 -241
  632. package/dist/kernel.js +8 -1305
  633. package/dist/kernel.module.d.ts +17 -0
  634. package/dist/kernel.module.js +145 -0
  635. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  636. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  637. package/dist/lifecycle/tokens.d.ts +3 -0
  638. package/dist/lifecycle/tokens.js +3 -0
  639. package/dist/log-config.d.ts +9 -0
  640. package/dist/log-config.js +27 -0
  641. package/dist/log-context.d.ts +34 -0
  642. package/dist/log-context.js +44 -0
  643. package/dist/log-loki.d.ts +34 -0
  644. package/dist/log-loki.js +145 -0
  645. package/dist/log.d.ts +53 -10
  646. package/dist/log.js +168 -18
  647. package/dist/models/embeddings.d.ts +82 -0
  648. package/dist/models/embeddings.js +326 -0
  649. package/dist/models/enablement.controller.d.ts +40 -0
  650. package/dist/models/enablement.controller.js +74 -0
  651. package/dist/models/enablement.d.ts +101 -0
  652. package/dist/models/enablement.js +264 -0
  653. package/dist/models/models.module.d.ts +7 -0
  654. package/dist/models/models.module.js +36 -0
  655. package/dist/models/org-models.schemas.d.ts +8 -0
  656. package/dist/models/org-models.schemas.js +22 -0
  657. package/dist/models/prices.d.ts +13 -5
  658. package/dist/models/prices.js +69 -39
  659. package/dist/models/purposes.controller.d.ts +6 -4
  660. package/dist/models/purposes.controller.js +16 -11
  661. package/dist/models/purposes.d.ts +103 -23
  662. package/dist/models/purposes.js +208 -77
  663. package/dist/net/public-address.js +3 -2
  664. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  665. package/dist/orgs/directory-sync.controller.js +2 -2
  666. package/dist/orgs/directory-sync.d.ts +74 -35
  667. package/dist/orgs/directory-sync.js +243 -132
  668. package/dist/orgs/invitations.controller.d.ts +8 -8
  669. package/dist/orgs/invitations.controller.js +27 -26
  670. package/dist/orgs/invitations.service.d.ts +12 -9
  671. package/dist/orgs/invitations.service.js +130 -92
  672. package/dist/orgs/job-ids.d.ts +8 -0
  673. package/dist/orgs/job-ids.js +8 -0
  674. package/dist/orgs/members.service.d.ts +19 -12
  675. package/dist/orgs/members.service.js +161 -117
  676. package/dist/orgs/offboarding.d.ts +61 -60
  677. package/dist/orgs/offboarding.js +206 -95
  678. package/dist/orgs/org-lock.d.ts +33 -19
  679. package/dist/orgs/org-lock.js +94 -35
  680. package/dist/orgs/org.guard.d.ts +11 -1
  681. package/dist/orgs/org.guard.js +45 -34
  682. package/dist/orgs/orgs.controller.d.ts +13 -16
  683. package/dist/orgs/orgs.controller.js +29 -20
  684. package/dist/orgs/orgs.module.d.ts +6 -0
  685. package/dist/orgs/orgs.module.js +71 -0
  686. package/dist/orgs/orgs.schemas.d.ts +8 -0
  687. package/dist/orgs/orgs.schemas.js +16 -0
  688. package/dist/orgs/orgs.service.d.ts +47 -21
  689. package/dist/orgs/orgs.service.js +166 -91
  690. package/dist/orgs/roles.d.ts +1 -1
  691. package/dist/orgs/roles.js +5 -1
  692. package/dist/orgs/settings.controller.d.ts +2 -2
  693. package/dist/orgs/settings.controller.js +8 -6
  694. package/dist/orgs/settings.service.d.ts +45 -14
  695. package/dist/orgs/settings.service.js +110 -51
  696. package/dist/overrides.d.ts +63 -0
  697. package/dist/overrides.js +34 -0
  698. package/dist/platform/actor.d.ts +48 -0
  699. package/dist/platform/actor.js +100 -0
  700. package/dist/platform/agent-docs.d.ts +18 -0
  701. package/dist/platform/agent-docs.js +59 -0
  702. package/dist/platform/availability.d.ts +14 -0
  703. package/dist/platform/availability.js +43 -0
  704. package/dist/platform/errors.d.ts +28 -0
  705. package/dist/platform/errors.js +65 -0
  706. package/dist/platform/exclusions.d.ts +11 -0
  707. package/dist/platform/exclusions.js +667 -0
  708. package/dist/platform/method.d.ts +6 -0
  709. package/dist/platform/method.js +15 -0
  710. package/dist/platform/operation.d.ts +169 -0
  711. package/dist/platform/operation.js +90 -0
  712. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  713. package/dist/platform/ops/accounts.ops.js +291 -0
  714. package/dist/platform/ops/admin.ops.d.ts +36 -0
  715. package/dist/platform/ops/admin.ops.js +389 -0
  716. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  717. package/dist/platform/ops/agent-skills.ops.js +226 -0
  718. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  719. package/dist/platform/ops/agent-templates.ops.js +272 -0
  720. package/dist/platform/ops/agents.ops.d.ts +37 -0
  721. package/dist/platform/ops/agents.ops.js +717 -0
  722. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  723. package/dist/platform/ops/approvals.ops.js +116 -0
  724. package/dist/platform/ops/background.ops.d.ts +14 -0
  725. package/dist/platform/ops/background.ops.js +134 -0
  726. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  727. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  728. package/dist/platform/ops/channels.ops.d.ts +16 -0
  729. package/dist/platform/ops/channels.ops.js +195 -0
  730. package/dist/platform/ops/components.ops.d.ts +46 -0
  731. package/dist/platform/ops/components.ops.js +853 -0
  732. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  733. package/dist/platform/ops/connectors.ops.js +188 -0
  734. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  735. package/dist/platform/ops/conversations.ops.js +470 -0
  736. package/dist/platform/ops/environments.ops.d.ts +26 -0
  737. package/dist/platform/ops/environments.ops.js +311 -0
  738. package/dist/platform/ops/errors.d.ts +16 -0
  739. package/dist/platform/ops/errors.js +30 -0
  740. package/dist/platform/ops/evals.ops.d.ts +28 -0
  741. package/dist/platform/ops/evals.ops.js +783 -0
  742. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  743. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  744. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  745. package/dist/platform/ops/extensions.ops.js +347 -0
  746. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  747. package/dist/platform/ops/inbox.ops.js +378 -0
  748. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  749. package/dist/platform/ops/marketplaces.ops.js +466 -0
  750. package/dist/platform/ops/models.ops.d.ts +25 -0
  751. package/dist/platform/ops/models.ops.js +232 -0
  752. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  753. package/dist/platform/ops/org-plugins.ops.js +329 -0
  754. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  755. package/dist/platform/ops/org-settings.ops.js +102 -0
  756. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  757. package/dist/platform/ops/orgs.ops.js +295 -0
  758. package/dist/platform/ops/other-orgs.d.ts +20 -0
  759. package/dist/platform/ops/other-orgs.js +72 -0
  760. package/dist/platform/ops/paging.d.ts +14 -0
  761. package/dist/platform/ops/paging.js +20 -0
  762. package/dist/platform/ops/platform.ops.d.ts +28 -0
  763. package/dist/platform/ops/platform.ops.js +204 -0
  764. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  765. package/dist/platform/ops/plugins.ops.js +476 -0
  766. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  767. package/dist/platform/ops/previewers.ops.js +109 -0
  768. package/dist/platform/ops/requests.ops.d.ts +14 -0
  769. package/dist/platform/ops/requests.ops.js +191 -0
  770. package/dist/platform/ops/role.d.ts +4 -0
  771. package/dist/platform/ops/role.js +10 -0
  772. package/dist/platform/ops/skills.ops.d.ts +17 -0
  773. package/dist/platform/ops/skills.ops.js +216 -0
  774. package/dist/platform/ops/summary.d.ts +10 -0
  775. package/dist/platform/ops/summary.js +18 -0
  776. package/dist/platform/ops/unavailable.d.ts +23 -0
  777. package/dist/platform/ops/unavailable.js +118 -0
  778. package/dist/platform/parity.d.ts +33 -0
  779. package/dist/platform/parity.js +272 -0
  780. package/dist/platform/platform-ops.module.d.ts +39 -0
  781. package/dist/platform/platform-ops.module.js +122 -0
  782. package/dist/platform/platform.module.d.ts +8 -0
  783. package/dist/platform/platform.module.js +25 -0
  784. package/dist/platform/registry.d.ts +30 -0
  785. package/dist/platform/registry.js +111 -0
  786. package/dist/platform/route-schemas.d.ts +18 -0
  787. package/dist/platform/route-schemas.js +63 -0
  788. package/dist/roles/gateway-role.d.ts +54 -0
  789. package/dist/roles/gateway-role.js +118 -0
  790. package/dist/roles/gateway.module.d.ts +9 -0
  791. package/dist/roles/gateway.module.js +31 -0
  792. package/dist/roles/worker-role.d.ts +65 -0
  793. package/dist/roles/worker-role.js +151 -0
  794. package/dist/roles/worker.module.d.ts +14 -0
  795. package/dist/roles/worker.module.js +106 -0
  796. package/dist/runtime/abort.js +19 -2
  797. package/dist/runtime/checkpointer.d.ts +8 -3
  798. package/dist/runtime/checkpointer.js +87 -55
  799. package/dist/runtime/context/build.d.ts +21 -13
  800. package/dist/runtime/context/build.js +106 -29
  801. package/dist/runtime/context/claude-tools.d.ts +4 -1
  802. package/dist/runtime/context/claude-tools.js +13 -12
  803. package/dist/runtime/context/compaction.js +24 -1
  804. package/dist/runtime/context/environment-paths.d.ts +40 -0
  805. package/dist/runtime/context/environment-paths.js +48 -0
  806. package/dist/runtime/context/legacy-text.d.ts +22 -0
  807. package/dist/runtime/context/legacy-text.js +37 -0
  808. package/dist/runtime/context/reminders.d.ts +2 -0
  809. package/dist/runtime/context/reminders.js +2 -0
  810. package/dist/runtime/context/run-context.d.ts +65 -0
  811. package/dist/runtime/context/run-context.js +215 -0
  812. package/dist/runtime/context/skills.d.ts +29 -11
  813. package/dist/runtime/context/skills.js +46 -32
  814. package/dist/runtime/context/tool-changes.d.ts +27 -0
  815. package/dist/runtime/context/tool-changes.js +60 -0
  816. package/dist/runtime/conversation-lock.d.ts +20 -11
  817. package/dist/runtime/conversation-lock.js +62 -72
  818. package/dist/runtime/hook-calls.d.ts +11 -4
  819. package/dist/runtime/hook-calls.js +41 -13
  820. package/dist/runtime/job-ids.d.ts +10 -0
  821. package/dist/runtime/job-ids.js +10 -0
  822. package/dist/runtime/langgraph-loop.d.ts +3 -1
  823. package/dist/runtime/langgraph-loop.js +37 -18
  824. package/dist/runtime/loop.d.ts +42 -6
  825. package/dist/runtime/loop.js +14 -0
  826. package/dist/runtime/maintenance-queue.d.ts +10 -0
  827. package/dist/runtime/maintenance-queue.js +10 -0
  828. package/dist/runtime/maintenance.d.ts +50 -74
  829. package/dist/runtime/maintenance.js +166 -136
  830. package/dist/runtime/model-call.d.ts +61 -15
  831. package/dist/runtime/model-call.js +128 -84
  832. package/dist/runtime/providers.d.ts +158 -27
  833. package/dist/runtime/providers.js +373 -63
  834. package/dist/runtime/quota.d.ts +17 -3
  835. package/dist/runtime/quota.js +27 -2
  836. package/dist/runtime/retired-schedulers.d.ts +7 -0
  837. package/dist/runtime/retired-schedulers.js +31 -0
  838. package/dist/runtime/run-context.service.d.ts +65 -0
  839. package/dist/runtime/run-context.service.js +236 -0
  840. package/dist/runtime/run-control.d.ts +43 -0
  841. package/dist/runtime/run-control.js +89 -0
  842. package/dist/runtime/run-drafts.d.ts +85 -0
  843. package/dist/runtime/run-drafts.js +230 -0
  844. package/dist/runtime/run-finish.d.ts +27 -18
  845. package/dist/runtime/run-finish.js +98 -51
  846. package/dist/runtime/run-jobs.d.ts +46 -0
  847. package/dist/runtime/run-jobs.js +91 -0
  848. package/dist/runtime/run-processors.d.ts +60 -0
  849. package/dist/runtime/run-processors.js +185 -0
  850. package/dist/runtime/run-queue.d.ts +90 -58
  851. package/dist/runtime/run-queue.js +566 -297
  852. package/dist/runtime/run-steps.d.ts +39 -0
  853. package/dist/runtime/run-steps.js +96 -0
  854. package/dist/runtime/run-worker.d.ts +134 -77
  855. package/dist/runtime/run-worker.js +412 -236
  856. package/dist/runtime/runtime.module.d.ts +10 -0
  857. package/dist/runtime/runtime.module.js +122 -0
  858. package/dist/runtime/step-log.d.ts +51 -0
  859. package/dist/runtime/step-log.js +111 -0
  860. package/dist/runtime/stream.controller.d.ts +28 -9
  861. package/dist/runtime/stream.controller.js +72 -13
  862. package/dist/runtime/stream.d.ts +27 -6
  863. package/dist/runtime/stream.js +102 -7
  864. package/dist/runtime/subagents/child.d.ts +58 -51
  865. package/dist/runtime/subagents/child.js +105 -86
  866. package/dist/runtime/subagents/definition.d.ts +32 -28
  867. package/dist/runtime/subagents/definition.js +89 -143
  868. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  869. package/dist/runtime/subagents/deliveries.js +228 -0
  870. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  871. package/dist/runtime/subagents/dispatch.js +336 -270
  872. package/dist/runtime/subagents/limits.d.ts +32 -8
  873. package/dist/runtime/subagents/limits.js +44 -8
  874. package/dist/runtime/subagents/messages.d.ts +95 -0
  875. package/dist/runtime/subagents/messages.js +328 -0
  876. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  877. package/dist/runtime/subagents/org-agents.js +3 -2
  878. package/dist/runtime/subagents/preamble.d.ts +4 -4
  879. package/dist/runtime/subagents/preamble.js +9 -7
  880. package/dist/runtime/subagents/progress.d.ts +10 -8
  881. package/dist/runtime/subagents/progress.js +11 -6
  882. package/dist/runtime/subagents/render.d.ts +30 -0
  883. package/dist/runtime/subagents/render.js +53 -0
  884. package/dist/runtime/subagents/roster.d.ts +27 -10
  885. package/dist/runtime/subagents/roster.js +49 -13
  886. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  887. package/dist/runtime/subagents/skill-fork.js +23 -8
  888. package/dist/runtime/subagents/status.d.ts +14 -0
  889. package/dist/runtime/subagents/status.js +23 -0
  890. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  891. package/dist/runtime/subagents/subagents.service.js +106 -0
  892. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  893. package/dist/runtime/usage-report-jobs.js +158 -0
  894. package/dist/runtime/usage-report.d.ts +121 -83
  895. package/dist/runtime/usage-report.js +355 -180
  896. package/dist/runtime/waits.d.ts +258 -81
  897. package/dist/runtime/waits.js +800 -263
  898. package/dist/sandbox/job-ids.d.ts +10 -0
  899. package/dist/sandbox/job-ids.js +10 -0
  900. package/dist/sandbox/jobs.d.ts +68 -0
  901. package/dist/sandbox/jobs.js +150 -0
  902. package/dist/sandbox/leases.d.ts +73 -82
  903. package/dist/sandbox/leases.js +162 -346
  904. package/dist/sandbox/providers.d.ts +46 -0
  905. package/dist/sandbox/providers.js +83 -0
  906. package/dist/sandbox/sandbox.module.d.ts +9 -0
  907. package/dist/sandbox/sandbox.module.js +36 -0
  908. package/dist/sandbox/sandbox.service.d.ts +359 -151
  909. package/dist/sandbox/sandbox.service.js +950 -435
  910. package/dist/sandbox/unreachable.d.ts +30 -0
  911. package/dist/sandbox/unreachable.js +108 -0
  912. package/dist/skills/catalog.d.ts +40 -26
  913. package/dist/skills/catalog.js +120 -99
  914. package/dist/skills/changes.controller.d.ts +11 -4
  915. package/dist/skills/changes.controller.js +34 -9
  916. package/dist/skills/changes.service.d.ts +31 -21
  917. package/dist/skills/changes.service.js +426 -368
  918. package/dist/skills/invocable.controller.d.ts +2 -2
  919. package/dist/skills/invocable.controller.js +10 -7
  920. package/dist/skills/invocation-keys.d.ts +1 -1
  921. package/dist/skills/invocation-keys.js +1 -1
  922. package/dist/skills/invoke.d.ts +19 -18
  923. package/dist/skills/invoke.js +68 -24
  924. package/dist/skills/package.d.ts +20 -1
  925. package/dist/skills/package.js +28 -1
  926. package/dist/skills/skills.controller.d.ts +33 -7
  927. package/dist/skills/skills.controller.js +79 -12
  928. package/dist/skills/skills.module.d.ts +6 -0
  929. package/dist/skills/skills.module.js +39 -0
  930. package/dist/skills/skills.schemas.d.ts +48 -0
  931. package/dist/skills/skills.schemas.js +61 -0
  932. package/dist/skills/skills.service.d.ts +151 -44
  933. package/dist/skills/skills.service.js +636 -204
  934. package/dist/skills/usable.d.ts +81 -0
  935. package/dist/skills/usable.js +379 -0
  936. package/dist/storage/job-ids.d.ts +6 -0
  937. package/dist/storage/job-ids.js +6 -0
  938. package/dist/storage/purge.d.ts +22 -7
  939. package/dist/storage/purge.js +55 -3
  940. package/dist/storage/storage.module.d.ts +6 -0
  941. package/dist/storage/storage.module.js +23 -0
  942. package/dist/storage/storage.service.d.ts +18 -4
  943. package/dist/storage/storage.service.js +44 -3
  944. package/dist/time-zone.d.ts +5 -0
  945. package/dist/time-zone.js +19 -0
  946. package/dist/tools/approvals.controller.d.ts +1 -1
  947. package/dist/tools/approvals.controller.js +14 -11
  948. package/dist/tools/approvals.schemas.d.ts +21 -0
  949. package/dist/tools/approvals.schemas.js +15 -0
  950. package/dist/tools/approvals.service.d.ts +53 -27
  951. package/dist/tools/approvals.service.js +365 -260
  952. package/dist/tools/breaker.d.ts +2 -2
  953. package/dist/tools/breaker.js +21 -3
  954. package/dist/tools/builtin-names.d.ts +109 -0
  955. package/dist/tools/builtin-names.js +173 -0
  956. package/dist/tools/builtins/agent.d.ts +27 -25
  957. package/dist/tools/builtins/agent.js +66 -63
  958. package/dist/tools/builtins/ask-user.d.ts +3 -3
  959. package/dist/tools/builtins/ask-user.js +3 -3
  960. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  961. package/dist/tools/builtins/builtin-tools.js +151 -0
  962. package/dist/tools/builtins/current-time.d.ts +26 -0
  963. package/dist/tools/builtins/current-time.js +99 -0
  964. package/dist/tools/builtins/handback.d.ts +28 -0
  965. package/dist/tools/builtins/handback.js +53 -0
  966. package/dist/tools/builtins/platform.d.ts +51 -0
  967. package/dist/tools/builtins/platform.js +451 -0
  968. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  969. package/dist/tools/builtins/read-tool-output.js +3 -3
  970. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  971. package/dist/tools/builtins/sandbox/bash.js +293 -41
  972. package/dist/tools/builtins/sandbox/common.d.ts +142 -40
  973. package/dist/tools/builtins/sandbox/common.js +227 -65
  974. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  975. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  976. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  977. package/dist/tools/builtins/sandbox/edit.js +65 -51
  978. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  979. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  980. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  981. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  982. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  983. package/dist/tools/builtins/sandbox/glob.js +19 -14
  984. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  985. package/dist/tools/builtins/sandbox/grep.js +155 -36
  986. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  987. package/dist/tools/builtins/sandbox/index.js +13 -5
  988. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  989. package/dist/tools/builtins/sandbox/read.js +30 -20
  990. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  991. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  992. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  993. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  994. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  995. package/dist/tools/builtins/sandbox/write.js +52 -45
  996. package/dist/tools/builtins/send-message.d.ts +56 -0
  997. package/dist/tools/builtins/send-message.js +100 -0
  998. package/dist/tools/builtins/skill-load.d.ts +32 -21
  999. package/dist/tools/builtins/skill-load.js +125 -74
  1000. package/dist/tools/builtins/skill-write.d.ts +4 -4
  1001. package/dist/tools/builtins/skill-write.js +12 -12
  1002. package/dist/tools/builtins/tool-search.d.ts +13 -9
  1003. package/dist/tools/builtins/tool-search.js +25 -14
  1004. package/dist/tools/builtins/web/errors.d.ts +8 -0
  1005. package/dist/tools/builtins/web/errors.js +53 -0
  1006. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1007. package/dist/tools/builtins/web/extract.js +271 -0
  1008. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1009. package/dist/tools/builtins/web/fetch.js +175 -0
  1010. package/dist/tools/builtins/web/index.d.ts +13 -0
  1011. package/dist/tools/builtins/web/index.js +12 -0
  1012. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1013. package/dist/tools/builtins/web/page-cache.js +77 -0
  1014. package/dist/tools/builtins/web/search.d.ts +25 -0
  1015. package/dist/tools/builtins/web/search.js +210 -0
  1016. package/dist/tools/builtins/web/url.d.ts +17 -0
  1017. package/dist/tools/builtins/web/url.js +43 -0
  1018. package/dist/tools/canonical-json.d.ts +6 -0
  1019. package/dist/tools/canonical-json.js +16 -0
  1020. package/dist/tools/connector-content.controller.d.ts +1 -1
  1021. package/dist/tools/connector-content.controller.js +11 -6
  1022. package/dist/tools/connector-content.d.ts +12 -15
  1023. package/dist/tools/connector-content.js +53 -18
  1024. package/dist/tools/connectors.controller.d.ts +16 -3
  1025. package/dist/tools/connectors.controller.js +34 -14
  1026. package/dist/tools/connectors.schemas.d.ts +12 -0
  1027. package/dist/tools/connectors.schemas.js +19 -0
  1028. package/dist/tools/connectors.service.d.ts +80 -18
  1029. package/dist/tools/connectors.service.js +529 -358
  1030. package/dist/tools/credentials.d.ts +20 -20
  1031. package/dist/tools/credentials.js +55 -34
  1032. package/dist/tools/display-names.d.ts +9 -0
  1033. package/dist/tools/display-names.js +24 -0
  1034. package/dist/tools/drift.d.ts +29 -41
  1035. package/dist/tools/drift.js +116 -84
  1036. package/dist/tools/elicitation.js +1 -1
  1037. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1038. package/dist/tools/extension-tools.controller.js +37 -0
  1039. package/dist/tools/info.d.ts +73 -13
  1040. package/dist/tools/info.js +151 -39
  1041. package/dist/tools/job-ids.d.ts +13 -0
  1042. package/dist/tools/job-ids.js +15 -0
  1043. package/dist/tools/jobs.d.ts +24 -0
  1044. package/dist/tools/jobs.js +69 -0
  1045. package/dist/tools/legacy-data.d.ts +34 -0
  1046. package/dist/tools/legacy-data.js +76 -0
  1047. package/dist/tools/legacy-keys.d.ts +51 -0
  1048. package/dist/tools/legacy-keys.js +115 -0
  1049. package/dist/tools/naming.d.ts +1 -5
  1050. package/dist/tools/naming.js +1 -7
  1051. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1052. package/dist/tools/oauth/flow-paths.js +38 -0
  1053. package/dist/tools/oauth/flow.d.ts +30 -30
  1054. package/dist/tools/oauth/flow.js +109 -81
  1055. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1056. package/dist/tools/oauth/oauth.controller.js +12 -9
  1057. package/dist/tools/oauth/tokens.d.ts +45 -10
  1058. package/dist/tools/oauth/tokens.js +70 -24
  1059. package/dist/tools/org-tool-switches.d.ts +88 -0
  1060. package/dist/tools/org-tool-switches.js +201 -0
  1061. package/dist/tools/outputs.d.ts +13 -4
  1062. package/dist/tools/outputs.js +48 -4
  1063. package/dist/tools/pipeline.d.ts +108 -80
  1064. package/dist/tools/pipeline.js +396 -409
  1065. package/dist/tools/policy.d.ts +4 -17
  1066. package/dist/tools/policy.js +49 -35
  1067. package/dist/tools/questions.controller.d.ts +2 -2
  1068. package/dist/tools/questions.controller.js +9 -6
  1069. package/dist/tools/questions.service.d.ts +26 -25
  1070. package/dist/tools/questions.service.js +201 -142
  1071. package/dist/tools/registry.d.ts +215 -84
  1072. package/dist/tools/registry.js +382 -264
  1073. package/dist/tools/resources.d.ts +1 -1
  1074. package/dist/tools/resources.js +1 -1
  1075. package/dist/tools/specs.d.ts +5 -4
  1076. package/dist/tools/specs.js +3 -1
  1077. package/dist/tools/tools.module.d.ts +10 -0
  1078. package/dist/tools/tools.module.js +113 -0
  1079. package/dist/tools/validate.js +1 -1
  1080. package/dist/ui/call-extension.d.ts +16 -0
  1081. package/dist/ui/call-extension.js +38 -0
  1082. package/dist/ui/embed-token.d.ts +9 -5
  1083. package/dist/ui/embed-token.js +34 -6
  1084. package/dist/ui/ui-stream.d.ts +22 -17
  1085. package/dist/ui/ui-stream.js +72 -12
  1086. package/dist/ui/ui.module.d.ts +7 -0
  1087. package/dist/ui/ui.module.js +28 -0
  1088. package/dist/ui/views.controller.d.ts +14 -12
  1089. package/dist/ui/views.controller.js +32 -25
  1090. package/dist/ui/views.d.ts +10 -57
  1091. package/dist/ui/views.js +58 -46
  1092. package/package.json +15 -3
  1093. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1094. package/src/migrations/0064_account_last_org.sql +7 -0
  1095. package/src/migrations/0065_conversation_archive.sql +8 -0
  1096. package/src/migrations/0066_extension_display_name.sql +4 -0
  1097. package/src/migrations/0067_agent_profiles.sql +20 -0
  1098. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1099. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1100. package/src/migrations/0070_background_tasks.sql +37 -0
  1101. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1102. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1103. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1104. package/src/migrations/0074_subagent_tree.sql +50 -0
  1105. package/src/migrations/0075_plugin_scope.sql +61 -0
  1106. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1107. package/src/migrations/0077_scope_requests.sql +52 -0
  1108. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1109. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1110. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1111. package/src/migrations/0081_platform_components.sql +129 -0
  1112. package/src/migrations/0082_platform_migration.sql +33 -0
  1113. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1114. package/src/migrations/0084_org_owned_items.sql +85 -0
  1115. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1116. package/src/migrations/0086_org_layering.sql +30 -0
  1117. package/src/migrations/0087_approval_summary.sql +6 -0
  1118. package/src/migrations/0088_environments.sql +80 -0
  1119. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1120. package/src/migrations/0090_initial_passwords.sql +27 -0
  1121. package/src/migrations/0091_account_time_zone.sql +4 -0
  1122. package/src/migrations/0092_tools_default_on.sql +27 -0
  1123. package/src/migrations/0093_connected_environments.sql +37 -0
  1124. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1125. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1126. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1127. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1128. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1129. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1130. package/src/migrations/0100_catalog_files.sql +13 -0
  1131. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1132. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1133. package/dist/catalog/upgrade-targets.js +0 -90
  1134. package/dist/conversations/sandbox-status.d.ts +0 -21
  1135. package/dist/conversations/sandbox-status.js +0 -24
  1136. package/dist/extensions/org-config.controller.d.ts +0 -24
  1137. package/dist/extensions/org-config.controller.js +0 -59
  1138. package/dist/http/gateway.module.js +0 -13
  1139. package/dist/http/health.controller.d.ts +0 -26
  1140. package/dist/http/health.controller.js +0 -79
  1141. package/dist/http/tokens.d.ts +0 -131
  1142. package/dist/http/tokens.js +0 -131
  1143. package/dist/http/zod.pipe.d.ts +0 -8
  1144. package/dist/http/zod.pipe.js +0 -14
  1145. package/dist/identity/enterprise-admin.d.ts +0 -14
  1146. package/dist/identity/enterprise-admin.js +0 -27
  1147. package/dist/identity/rate-limit.d.ts +0 -55
  1148. package/dist/identity/rate-limit.js +0 -121
  1149. package/dist/sandbox/lifecycle.d.ts +0 -21
  1150. package/dist/sandbox/lifecycle.js +0 -68
  1151. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1152. package/dist/tools/builtins/sandbox/names.js +0 -20
@@ -0,0 +1,791 @@
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 { Inject, Injectable } from "@nestjs/common";
12
+ import { sql } from "kysely";
13
+ import { deviceLeaseKey } from "../devices/keys.js";
14
+ import { MachinesService } from "../devices/machines.js";
15
+ import { ApiError } from "../errors.js";
16
+ import { ExtensionDisplayNames } from "../extensions/display-name.js";
17
+ import { audit } from "../identity/audit.js";
18
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
19
+ import { afterCommit } from "../infra/database/after-commit.js";
20
+ import { KernelDb } from "../infra/database/kernel-db.js";
21
+ import { TransactionHost } from "../infra/database/transaction-host.js";
22
+ import { Transactional } from "../infra/database/transactional.decorator.js";
23
+ import { LockService } from "../infra/lock/lock.service.js";
24
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
25
+ import { SandboxJobs } from "../sandbox/jobs.js";
26
+ import { DEVICE_PROVIDER, isInternalProvider, SandboxProviders } from "../sandbox/providers.js";
27
+ import { environmentNotFound, SandboxService } from "../sandbox/sandbox.service.js";
28
+ import { demotedProvider, EnvironmentAccess, environmentProvider, environmentUnavailable, inUseForDefault, } from "./access.js";
29
+ const isUniqueViolation = (e, constraint) => typeof e === "object" &&
30
+ e !== null &&
31
+ e.code === "23505" &&
32
+ e.constraint === constraint;
33
+ const nameTaken = () => new ApiError("environment.name_taken", "You already have an environment with this name");
34
+ /**
35
+ * Personal environments (spec 2026-11-07-environments-design §4.2 items 7, 12, 13; §6; §9):
36
+ * cloud ones on the deployment's sandbox provider and `device` ones on a connected machine; a
37
+ * person's environments in an org, visible and usable only by their owner (anyone else gets
38
+ * `environment.not_found`). Deleting one soft-deletes it and destroys its instance and files in a
39
+ * `sandbox-destroy-for` job after the commit.
40
+ */
41
+ let EnvironmentsService = class EnvironmentsService {
42
+ db;
43
+ txHost;
44
+ config;
45
+ providers;
46
+ sandbox;
47
+ sandboxJobs;
48
+ access;
49
+ displayNames;
50
+ log;
51
+ locks;
52
+ machines;
53
+ constructor(db, txHost, config, providers, sandbox, sandboxJobs, access, displayNames, log,
54
+ /** Reads the device relay's lease (`online`). */
55
+ locks, machines) {
56
+ this.db = db;
57
+ this.txHost = txHost;
58
+ this.config = config;
59
+ this.providers = providers;
60
+ this.sandbox = sandbox;
61
+ this.sandboxJobs = sandboxJobs;
62
+ this.access = access;
63
+ this.displayNames = displayNames;
64
+ this.log = log;
65
+ this.locks = locks;
66
+ this.machines = machines;
67
+ }
68
+ /**
69
+ * The person's live environments in the org, the default first, then by creation. With a
70
+ * current sandbox provider the default environment is created first if missing (its first need,
71
+ * spec §4.2 item 7; an existing one is only read).
72
+ */
73
+ async list(orgId, accountId) {
74
+ const cloudAvailable = this.providers.cloud() !== undefined;
75
+ const defaultId = cloudAvailable ? await this.ensureDefault(orgId, accountId) : null;
76
+ const items = await this.views(orgId, accountId);
77
+ const last = await this.db
78
+ .selectFrom("conversations as c")
79
+ .innerJoin("environments as e", "e.id", "c.environment_id")
80
+ .select("c.environment_id")
81
+ .where("c.org_id", "=", orgId)
82
+ .where("c.account_id", "=", accountId)
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
+ .orderBy("c.updated_at", "desc")
88
+ .limit(1)
89
+ .executeTakeFirst();
90
+ return {
91
+ items,
92
+ defaultId: defaultId ?? items.find((v) => v.isDefault)?.id ?? null,
93
+ lastUsedId: last?.environment_id ?? null,
94
+ cloudAvailable,
95
+ };
96
+ }
97
+ /** One of the person's live environments; anyone else's (or a missing one) → `not_found`. */
98
+ async get(orgId, accountId, id) {
99
+ const [view] = await this.views(orgId, accountId, id);
100
+ if (!view)
101
+ throw environmentNotFound();
102
+ return view;
103
+ }
104
+ /**
105
+ * A new personal cloud environment, ready at once (its instance and files are made on first
106
+ * use). Needs a current sandbox provider (`environment.unavailable`); a live name of the person's
107
+ * (case-insensitive) → `environment.name_taken`; `environments.maxPersonal` live ones (the
108
+ * default counts) → `environment.limit_reached`. Serialized per person by their membership row.
109
+ */
110
+ async create(orgId, accountId, input, actorTokenId, auditDetail) {
111
+ const id = await this.insert(orgId, accountId, input.name, actorTokenId, auditDetail);
112
+ return this.get(orgId, accountId, id);
113
+ }
114
+ async insert(orgId, accountId, name, actorTokenId, auditDetail) {
115
+ const current = this.providers.cloud();
116
+ if (!current)
117
+ throw environmentUnavailable(null);
118
+ return this.insertNamed(orgId, accountId, name, "cloud", current.plugin, actorTokenId, auditDetail ?? {});
119
+ }
120
+ /**
121
+ * A new personal `device` environment for a machine being connected (provider `@device`; the
122
+ * machine row is the caller's). Joins the caller's transaction (the device authorization's).
123
+ * Counted against `environments.maxPersonal` (`environment.limit_reached`); a live name of the
124
+ * person's → `environment.name_taken`. Needs no cloud provider.
125
+ */
126
+ async createDevice(orgId, accountId, name) {
127
+ const id = await this.insertNamed(orgId, accountId, name, "device", DEVICE_PROVIDER, undefined, {
128
+ source: "device",
129
+ });
130
+ return { id };
131
+ }
132
+ /**
133
+ * Inserts a named personal environment under the person's membership lock, after the limit
134
+ * and name checks, and audits `environment.created`. Runs in the caller's transaction.
135
+ */
136
+ async insertNamed(orgId, accountId, name, source, provider, actorTokenId, auditDetail) {
137
+ await this.lockMember(orgId, accountId);
138
+ const { n } = await this.db
139
+ .selectFrom("environments")
140
+ .select((eb) => eb.fn.countAll().as("n"))
141
+ .where("org_id", "=", orgId)
142
+ .where("owner_kind", "=", "personal")
143
+ .where("owner_account_id", "=", accountId)
144
+ .where("deleted_at", "is", null)
145
+ .executeTakeFirstOrThrow();
146
+ const max = this.config.get().environments.maxPersonal;
147
+ if (Number(n) >= max) {
148
+ throw new ApiError("environment.limit_reached", `You already have ${max} environments in this organization; delete one to create another`);
149
+ }
150
+ await this.assertNameFree(orgId, accountId, name);
151
+ const id = randomUUID();
152
+ try {
153
+ await this.db
154
+ .insertInto("environments")
155
+ .values({
156
+ id,
157
+ org_id: orgId,
158
+ owner_kind: "personal",
159
+ owner_account_id: accountId,
160
+ name,
161
+ source,
162
+ provider,
163
+ })
164
+ .execute();
165
+ }
166
+ catch (e) {
167
+ if (isUniqueViolation(e, "environments_name_uq"))
168
+ throw nameTaken();
169
+ throw e;
170
+ }
171
+ await audit(this.db.db, {
172
+ actorAccountId: accountId,
173
+ ...(actorTokenId !== undefined && { actorTokenId }),
174
+ orgId,
175
+ action: "environment.created",
176
+ target: id,
177
+ detail: { name, ...auditDetail },
178
+ });
179
+ return id;
180
+ }
181
+ /**
182
+ * The refusals {@link create} would raise, read without locks or writes (a precheck before a
183
+ * confirmation card): no sandbox provider, the person's limit, a name already taken. Throws the
184
+ * same {@link ApiError}s; a race still ends in `create`'s own refusal.
185
+ */
186
+ async checkCreate(orgId, accountId, name) {
187
+ if (!this.providers.cloud())
188
+ throw environmentUnavailable(null);
189
+ const { n } = await this.db
190
+ .selectFrom("environments")
191
+ .select((eb) => eb.fn.countAll().as("n"))
192
+ .where("org_id", "=", orgId)
193
+ .where("owner_kind", "=", "personal")
194
+ .where("owner_account_id", "=", accountId)
195
+ .where("deleted_at", "is", null)
196
+ .executeTakeFirstOrThrow();
197
+ const max = this.config.get().environments.maxPersonal;
198
+ if (Number(n) >= max) {
199
+ throw new ApiError("environment.limit_reached", `You already have ${max} environments in this organization; delete one to create another`);
200
+ }
201
+ await this.assertNameFree(orgId, accountId, name);
202
+ }
203
+ /** How many of the person's conversations work in the environment (read only). */
204
+ async boundConversations(orgId, accountId, id) {
205
+ const { n } = await this.db
206
+ .selectFrom("conversations")
207
+ .select((eb) => eb.fn.countAll().as("n"))
208
+ .where("org_id", "=", orgId)
209
+ .where("account_id", "=", accountId)
210
+ .where("environment_id", "=", id)
211
+ .executeTakeFirstOrThrow();
212
+ return Number(n);
213
+ }
214
+ /**
215
+ * The refusals {@link resetFiles} would raise (not found, its provider not current, a connected
216
+ * environment), read only.
217
+ */
218
+ async checkReset(orgId, accountId, id) {
219
+ refuseDeviceReset(await this.access.usable(orgId, accountId, id));
220
+ }
221
+ /** The refusals {@link rename} would raise, read without locks (see {@link checkCreate}). */
222
+ async checkRename(orgId, accountId, id, name) {
223
+ const before = await this.get(orgId, accountId, id);
224
+ if (before.name?.toLowerCase() !== name.toLowerCase()) {
225
+ await this.assertNameFree(orgId, accountId, name);
226
+ }
227
+ }
228
+ /**
229
+ * Renames one of the person's live environments (the default too); see {@link create}. A
230
+ * renamed former default is the person's own from then on: it loses its demotion mark, so a
231
+ * switch back to its provider no longer restores it.
232
+ */
233
+ async rename(orgId, accountId, id, name, actorTokenId, auditDetail) {
234
+ await this.renameIn(orgId, accountId, id, name, actorTokenId, auditDetail);
235
+ return this.get(orgId, accountId, id);
236
+ }
237
+ async renameIn(orgId, accountId, id, name, actorTokenId, auditDetail) {
238
+ const before = await this.lockOwn(orgId, accountId, id);
239
+ if (before.name === name)
240
+ return;
241
+ // the same name in another case is this environment's own: the index allows it
242
+ if (before.name?.toLowerCase() !== name.toLowerCase()) {
243
+ await this.assertNameFree(orgId, accountId, name);
244
+ }
245
+ try {
246
+ await this.db
247
+ .updateTable("environments")
248
+ .set({ name, demoted_from_provider: null, updated_at: sql `now()` })
249
+ .where("id", "=", id)
250
+ .execute();
251
+ }
252
+ catch (e) {
253
+ if (isUniqueViolation(e, "environments_name_uq"))
254
+ throw nameTaken();
255
+ throw e;
256
+ }
257
+ await audit(this.db.db, {
258
+ actorAccountId: accountId,
259
+ ...(actorTokenId !== undefined && { actorTokenId }),
260
+ orgId,
261
+ action: "environment.renamed",
262
+ target: id,
263
+ detail: { from: before.name, to: name, ...auditDetail },
264
+ });
265
+ }
266
+ /**
267
+ * Deletes one of the person's live environments: soft delete, its IM default row cleared, and
268
+ * after the commit a `sandbox-destroy-for` job (the worker waits for running commands, then
269
+ * destroys the instance and the files). Conversations bound to it keep pointing at it; their
270
+ * sandbox tools then fail with `environment.not_found`. A device environment's machine is
271
+ * revoked in the same transaction; after the commit it is told `stop { reason: "deleted" }`
272
+ * (while connected) and its connection is closed.
273
+ */
274
+ async remove(orgId, accountId, id, actorTokenId, auditDetail) {
275
+ const before = await this.lockOwn(orgId, accountId, id);
276
+ await this.db
277
+ .updateTable("environments")
278
+ .set({ deleted_at: sql `now()`, updated_at: sql `now()` })
279
+ .where("id", "=", id)
280
+ .execute();
281
+ await this.db
282
+ .deleteFrom("environment_defaults")
283
+ .where("org_id", "=", orgId)
284
+ .where("account_id", "=", accountId)
285
+ .where("environment_id", "=", id)
286
+ .execute();
287
+ await this.machines.revokeActive(id, "deleted");
288
+ await audit(this.db.db, {
289
+ actorAccountId: accountId,
290
+ ...(actorTokenId !== undefined && { actorTokenId }),
291
+ orgId,
292
+ action: "environment.deleted",
293
+ target: id,
294
+ detail: { name: before.name, isDefault: before.is_default, ...auditDetail },
295
+ });
296
+ afterCommit(async () => {
297
+ try {
298
+ await this.sandboxJobs.destroy([id]);
299
+ }
300
+ catch (err) {
301
+ // the hourly destruction sweep destroys deleted environments too
302
+ this.log.warn("cannot schedule environment destruction", { environmentId: id, err });
303
+ }
304
+ });
305
+ }
306
+ /**
307
+ * Disconnects the machine of one of the person's own device environments (it must sign in
308
+ * again); see {@link MachinesService.revoke}.
309
+ */
310
+ async revokeMachine(orgId, accountId, id, actorTokenId) {
311
+ await this.machines.revoke(orgId, accountId, id, actorTokenId);
312
+ }
313
+ /**
314
+ * Starts one of the person's environments over with empty files (after
315
+ * `environment.files_lost`): records the request (audit), then, after the commit, enqueues the
316
+ * `sandbox-reset-files` job (deterministic id per environment), whose worker waits for running
317
+ * commands and destroys any instance and the file system; the next use creates new ones. Its
318
+ * provider must be the current one (`environment.unavailable`); a connected environment's files
319
+ * are its machine owner's (`environment.files_on_device`). An enqueue failure is thrown
320
+ * (the request can be repeated: the reset is idempotent).
321
+ */
322
+ async resetFiles(orgId, accountId, id, actorTokenId, auditDetail) {
323
+ await this.recordReset(orgId, accountId, id, actorTokenId, auditDetail);
324
+ await this.sandboxJobs.resetFiles(id);
325
+ }
326
+ /** The check and audit row of {@link resetFiles}, committed before the job is enqueued. */
327
+ async recordReset(orgId, accountId, id, actorTokenId, auditDetail) {
328
+ refuseDeviceReset(await this.access.usable(orgId, accountId, id));
329
+ await audit(this.db.db, {
330
+ actorAccountId: accountId,
331
+ ...(actorTokenId !== undefined && { actorTokenId }),
332
+ orgId,
333
+ action: "environment.files_reset",
334
+ target: id,
335
+ ...(auditDetail !== undefined && { detail: auditDetail }),
336
+ });
337
+ }
338
+ /**
339
+ * The person's default environment in the org, created when missing (named by the UI, `name`
340
+ * NULL). An existing usable one is read without locking. A live default whose files or
341
+ * instance are kept by a provider that is not the current one (a provider switch, spec §4.2
342
+ * item 13) is stranded: it is demoted (marked with the provider it was demoted from; the UI
343
+ * names it 「个人环境(<provider display name>)」) and stays listed as unavailable and deletable.
344
+ * Its replacement is the person's former default demoted from the current provider when there
345
+ * is one (switching back restores it, with its files), else a fresh default. A live default
346
+ * not in use yet (no healthy files, no instance, none being created: {@link inUseForDefault})
347
+ * is likewise swapped for a former default holding healthy files at the current provider; it is
348
+ * demoted (from the provider it was made under) so it can come back in turn. A former default
349
+ * belongs to the provider holding its resources once it holds any, else to the one it was
350
+ * demoted from ({@link demotedProvider}), so one swapped out empty and used afterwards is
351
+ * labelled and restored by where its files are.
352
+ * All of it in one transaction: switching back and forth never adds environments.
353
+ *
354
+ * Replacing one first takes the person's membership row (`FOR SHARE`, after the org row), so an
355
+ * offboarding that removes them cannot leave a live default behind; not a member (any more) →
356
+ * `org.not_found`. Idempotent under concurrency: the live default row and the person's former
357
+ * defaults of the current provider are locked (`FOR NO KEY UPDATE`) and the live default re-read
358
+ * after them, the partial unique index on the live default makes a racing insert do nothing, and
359
+ * the select that follows reads the winner. Needs a current sandbox provider
360
+ * (`environment.unavailable`). It is the person's baseline, so it is created even at
361
+ * `environments.maxPersonal`.
362
+ */
363
+ async ensureDefault(orgId, accountId) {
364
+ const live = await this.defaultOf(orgId, accountId);
365
+ if (live && !this.stranded(live)) {
366
+ const current = this.providers.cloud()?.plugin;
367
+ if (inUseForDefault(live) || current === undefined)
368
+ return live.id;
369
+ const former = await this.formerDefaults(orgId, accountId, current);
370
+ if (!former.some((f) => f.holdsFiles))
371
+ return live.id;
372
+ }
373
+ return this.insertDefault(orgId, accountId);
374
+ }
375
+ async insertDefault(orgId, accountId) {
376
+ const current = this.providers.cloud();
377
+ if (!current)
378
+ throw environmentUnavailable(null);
379
+ await this.lockMember(orgId, accountId, "share");
380
+ const locked = await this.defaultOf(orgId, accountId, true);
381
+ const former = await this.formerDefaults(orgId, accountId, current.plugin, true);
382
+ // a racing replacement committed while this waited: its default is the answer
383
+ const live = locked ?? (await this.defaultOf(orgId, accountId));
384
+ if (live && live !== locked)
385
+ return live.id;
386
+ const stranded = live !== undefined && this.stranded(live);
387
+ const withFiles = former.find((f) => f.holdsFiles);
388
+ if (live && !stranded && (inUseForDefault(live) || withFiles === undefined))
389
+ return live.id;
390
+ // a default is needed (none, or a stranded one): any former default will do, files first
391
+ const restore = withFiles ?? (live === undefined || stranded ? former[0] : undefined);
392
+ if (live) {
393
+ const from = stranded
394
+ ? (environmentProvider(live, current.plugin) ?? "unknown")
395
+ : (live.provider ?? current.plugin);
396
+ await this.demote(live.id, from);
397
+ }
398
+ if (restore) {
399
+ await this.db
400
+ .updateTable("environments")
401
+ .set({ is_default: true, demoted_from_provider: null, updated_at: sql `now()` })
402
+ .where("id", "=", restore.id)
403
+ .execute();
404
+ return restore.id;
405
+ }
406
+ await this.db
407
+ .insertInto("environments")
408
+ .values({
409
+ id: randomUUID(),
410
+ org_id: orgId,
411
+ owner_kind: "personal",
412
+ owner_account_id: accountId,
413
+ name: null,
414
+ is_default: true,
415
+ source: "cloud",
416
+ provider: current.plugin,
417
+ })
418
+ .onConflict((oc) => oc
419
+ .columns(["org_id", "owner_account_id"])
420
+ .where(sql `is_default AND deleted_at IS NULL`)
421
+ .doNothing())
422
+ .execute();
423
+ const row = await this.defaultOf(orgId, accountId);
424
+ if (row === undefined)
425
+ throw new Error("the default environment was not created");
426
+ return row.id;
427
+ }
428
+ /**
429
+ * Turns the live default into an ordinary environment marked as demoted from `provider`; a name
430
+ * the person gave it stays. Runs under the person's membership lock and the default row's lock,
431
+ * before any other row becomes the default (the partial unique index).
432
+ */
433
+ async demote(id, provider) {
434
+ await this.db
435
+ .updateTable("environments")
436
+ .set({ is_default: false, demoted_from_provider: provider, updated_at: sql `now()` })
437
+ .where("id", "=", id)
438
+ .execute();
439
+ }
440
+ /**
441
+ * The person's live former defaults of `provider` ({@link demotedProvider}: files or an instance
442
+ * kept by `provider`, or none and demoted from it), the ones holding healthy files first (lost
443
+ * files count as none), then the most recently used, then the most recently demoted. `lock`
444
+ * takes their rows (`FOR NO KEY UPDATE`, in id order, so racing replacements queue on the same
445
+ * rows).
446
+ */
447
+ async formerDefaults(orgId, accountId, provider, lock = false) {
448
+ const rows = await this.db
449
+ .selectFrom("environments as e")
450
+ .leftJoin("environment_instances as i", "i.environment_id", "e.id")
451
+ .select([
452
+ "e.id",
453
+ "e.provider",
454
+ "e.updated_at",
455
+ "i.provider as instance_provider",
456
+ "i.fs_status",
457
+ "e.demoted_from_provider",
458
+ "i.handle",
459
+ "i.status",
460
+ "i.last_used_at",
461
+ ])
462
+ .where("e.org_id", "=", orgId)
463
+ .where("e.owner_kind", "=", "personal")
464
+ .where("e.owner_account_id", "=", accountId)
465
+ .where("e.is_default", "=", false)
466
+ .where("e.demoted_from_provider", "is not", null)
467
+ .where((eb) => eb.or([eb("e.demoted_from_provider", "=", provider), eb("i.provider", "=", provider)]))
468
+ .where("e.deleted_at", "is", null)
469
+ .orderBy("e.id")
470
+ .$if(lock, (q) => q.forNoKeyUpdate("e"))
471
+ .execute();
472
+ const time = (d) => d?.getTime() ?? 0;
473
+ return rows
474
+ .map((r) => {
475
+ const facts = {
476
+ provider: r.provider,
477
+ instanceProvider: r.instance_provider,
478
+ fsStatus: r.fs_status,
479
+ hasInstance: r.handle !== null,
480
+ };
481
+ return {
482
+ r,
483
+ holdsFiles: inUseForDefault({ ...facts, status: r.status }),
484
+ belongs: demotedProvider(r.demoted_from_provider, facts) === provider,
485
+ };
486
+ })
487
+ .filter(({ belongs }) => belongs)
488
+ .sort((a, b) => Number(b.holdsFiles) - Number(a.holdsFiles) ||
489
+ time(b.r.last_used_at) - time(a.r.last_used_at) ||
490
+ time(b.r.updated_at) - time(a.r.updated_at))
491
+ .map(({ r, holdsFiles }) => ({ id: r.id, holdsFiles }));
492
+ }
493
+ /**
494
+ * The person's IM default (what `/env` set): the environment their next new IM conversation
495
+ * uses. Null when none was set, or the chosen one is deleted (the row is cleared with it).
496
+ */
497
+ async imDefault(orgId, accountId) {
498
+ const row = await this.db
499
+ .selectFrom("environment_defaults as d")
500
+ .innerJoin("environments as e", "e.id", "d.environment_id")
501
+ .select("e.id")
502
+ .where("d.org_id", "=", orgId)
503
+ .where("d.account_id", "=", accountId)
504
+ .where("e.org_id", "=", orgId)
505
+ .where("e.owner_kind", "=", "personal")
506
+ .where("e.owner_account_id", "=", accountId)
507
+ .where("e.deleted_at", "is", null)
508
+ .executeTakeFirst();
509
+ return row?.id ?? null;
510
+ }
511
+ /**
512
+ * Sets the person's IM default. Only one of their own live environments in the org, usable now
513
+ * (`environment.not_found` / `environment.unavailable` otherwise); the row is written by one
514
+ * statement that re-checks the environment is live. There is no row lock, so a delete racing
515
+ * past that check can leave a stale row; reads ignore it ({@link imDefault} joins on
516
+ * `deleted_at IS NULL`).
517
+ */
518
+ async setImDefault(orgId, accountId, environmentId) {
519
+ await this.access.usable(orgId, accountId, environmentId);
520
+ const written = await this.db
521
+ .insertInto("environment_defaults")
522
+ .columns(["org_id", "account_id", "environment_id"])
523
+ .expression(this.db
524
+ .selectFrom("environments")
525
+ .select([
526
+ sql `${orgId}::text`.as("org_id"),
527
+ sql `${accountId}::text`.as("account_id"),
528
+ "id",
529
+ ])
530
+ .where("id", "=", environmentId)
531
+ .where("org_id", "=", orgId)
532
+ .where("owner_kind", "=", "personal")
533
+ .where("owner_account_id", "=", accountId)
534
+ .where("deleted_at", "is", null))
535
+ .onConflict((oc) => oc
536
+ .columns(["org_id", "account_id"])
537
+ .doUpdateSet({ environment_id: environmentId, updated_at: new Date() }))
538
+ .executeTakeFirst();
539
+ if (Number(written.numInsertedOrUpdatedRows ?? 0) === 0)
540
+ throw environmentNotFound();
541
+ }
542
+ /**
543
+ * The person's live default environment in the org, if any, with what decides its provider;
544
+ * `lock` takes its row (`FOR NO KEY UPDATE`; a racing demotion makes it read none).
545
+ */
546
+ async defaultOf(orgId, accountId, lock = false) {
547
+ const row = await this.db
548
+ .selectFrom("environments as e")
549
+ .leftJoin("environment_instances as i", "i.environment_id", "e.id")
550
+ .select([
551
+ "e.id",
552
+ "e.provider",
553
+ "i.provider as instance_provider",
554
+ "i.fs_status",
555
+ "i.handle",
556
+ "i.status",
557
+ ])
558
+ .where("e.org_id", "=", orgId)
559
+ .where("e.owner_kind", "=", "personal")
560
+ .where("e.owner_account_id", "=", accountId)
561
+ .where("e.is_default", "=", true)
562
+ .where("e.deleted_at", "is", null)
563
+ .$if(lock, (q) => q.forNoKeyUpdate("e"))
564
+ .executeTakeFirst();
565
+ return (row && {
566
+ id: row.id,
567
+ provider: row.provider,
568
+ instanceProvider: row.instance_provider,
569
+ fsStatus: row.fs_status,
570
+ hasInstance: row.handle !== null,
571
+ status: row.status,
572
+ });
573
+ }
574
+ /** Its files or instance are kept by a provider that is not the current one. */
575
+ stranded(f) {
576
+ const current = this.providers.cloud()?.plugin;
577
+ return current !== undefined && environmentProvider(f, current) !== current;
578
+ }
579
+ /** The person's live environments (or the one `id`) as views. */
580
+ async views(orgId, accountId, id) {
581
+ // all of them even for one `id`: a former default's ordinal counts its siblings
582
+ const all = await this.db
583
+ .selectFrom("environments as e")
584
+ .leftJoin("environment_instances as i", "i.environment_id", "e.id")
585
+ .leftJoin("environment_machines as m", (j) => j.onRef("m.environment_id", "=", "e.id").on("m.revoked_at", "is", null))
586
+ .select([
587
+ "e.id",
588
+ "e.name",
589
+ "e.is_default",
590
+ "e.source",
591
+ "e.provider",
592
+ "e.demoted_from_provider",
593
+ "e.created_at",
594
+ "m.id as machine_id",
595
+ "m.name as machine_name",
596
+ "m.os as machine_os",
597
+ "m.mode as machine_mode",
598
+ "m.program_version as machine_program_version",
599
+ "m.last_seen_at as machine_last_seen_at",
600
+ "m.session_isolation as machine_session_isolation",
601
+ "i.provider as instance_provider",
602
+ "i.fs_status",
603
+ "i.handle",
604
+ "i.status",
605
+ "i.last_used_at",
606
+ ])
607
+ .where("e.org_id", "=", orgId)
608
+ .where("e.owner_kind", "=", "personal")
609
+ .where("e.owner_account_id", "=", accountId)
610
+ .where("e.deleted_at", "is", null)
611
+ .orderBy("e.is_default", "desc")
612
+ .orderBy("e.created_at")
613
+ .orderBy("e.id")
614
+ .execute();
615
+ const rows = id === undefined ? all : all.filter((r) => r.id === id);
616
+ if (rows.length === 0)
617
+ return [];
618
+ const factsOf = (r) => ({
619
+ provider: r.provider,
620
+ instanceProvider: r.instance_provider,
621
+ fsStatus: r.fs_status,
622
+ hasInstance: r.handle !== null,
623
+ });
624
+ // a former default is labelled after the provider holding its resources, else its marker
625
+ const demoted = new Map(all.map((r) => [r.id, demotedProvider(r.demoted_from_provider, factsOf(r))]));
626
+ const ordinals = new Map();
627
+ const seen = new Map();
628
+ for (const r of [...all].sort((a, b) => a.created_at.getTime() - b.created_at.getTime() || a.id.localeCompare(b.id))) {
629
+ const from = demoted.get(r.id) ?? null;
630
+ if (from === null || r.name !== null)
631
+ continue;
632
+ const n = (seen.get(from) ?? 0) + 1;
633
+ seen.set(from, n);
634
+ ordinals.set(r.id, n);
635
+ }
636
+ const demotedProviders = [
637
+ ...new Set(rows.flatMap((r) => (demoted.get(r.id) ? [demoted.get(r.id)] : []))),
638
+ ];
639
+ const [limits, names] = await Promise.all([
640
+ this.sandbox.orgLimits(orgId),
641
+ this.displayNames.many(demotedProviders),
642
+ ]);
643
+ const current = this.providers.cloud()?.plugin;
644
+ // a device environment is online while a replica holds its machine's connection lease
645
+ const online = new Map(await Promise.all(rows
646
+ .filter((r) => r.source === "device")
647
+ .map(async (r) => [r.id, (await this.locks.holderOf(deviceLeaseKey(r.id))) !== null])));
648
+ return rows.map((r) => {
649
+ const provider = environmentProvider(factsOf(r), current);
650
+ const live = (r.status === "running" || r.status === "suspended") && r.last_used_at;
651
+ const from = demoted.get(r.id) ?? null;
652
+ return {
653
+ id: r.id,
654
+ name: r.name,
655
+ isDefault: r.is_default,
656
+ demotedFrom: from === null
657
+ ? null
658
+ : {
659
+ provider: from,
660
+ displayName: names.get(from) ?? null,
661
+ ordinal: ordinals.get(r.id) ?? 1,
662
+ },
663
+ ownerKind: "personal",
664
+ source: r.source,
665
+ provider,
666
+ available: provider !== null && isInternalProvider(provider)
667
+ ? this.providers.forName(provider) !== undefined
668
+ : current !== undefined && provider === current,
669
+ online: r.source === "device" ? (online.get(r.id) ?? false) : null,
670
+ machine: r.machine_id !== null && r.machine_name !== null && r.machine_os !== null
671
+ ? {
672
+ id: r.machine_id,
673
+ name: r.machine_name,
674
+ os: r.machine_os,
675
+ mode: r.machine_mode,
676
+ programVersion: r.machine_program_version,
677
+ lastSeenAt: r.machine_last_seen_at?.toISOString() ?? null,
678
+ }
679
+ : null,
680
+ // a device environment's machine decides it; cloud environments have none in phase 2
681
+ sessionIsolation: r.machine_session_isolation ?? false,
682
+ filesLost: r.fs_status === "lost",
683
+ instance: live
684
+ ? {
685
+ status: r.status,
686
+ lastUsedAt: r.last_used_at.toISOString(),
687
+ }
688
+ : null,
689
+ limits: { ...limits, allowHosts: [...limits.allowHosts] },
690
+ createdAt: r.created_at.toISOString(),
691
+ };
692
+ });
693
+ }
694
+ /**
695
+ * Serializes the person's environment writes in the org: the org row (`FOR SHARE`), then their
696
+ * membership row (`FOR NO KEY UPDATE`, or `FOR SHARE` with `mode` share: enough to keep the
697
+ * membership from being removed meanwhile), the order member removal locks them in. Not a
698
+ * member (any more) → `org.not_found`, as the org guard answers.
699
+ */
700
+ async lockMember(orgId, accountId, mode = "update") {
701
+ const org = await this.db
702
+ .selectFrom("orgs")
703
+ .select("id")
704
+ .where("id", "=", orgId)
705
+ .where("deleted_at", "is", null)
706
+ .forShare()
707
+ .executeTakeFirst();
708
+ const m = org &&
709
+ (await this.db
710
+ .selectFrom("memberships")
711
+ .select("account_id")
712
+ .where("org_id", "=", orgId)
713
+ .where("account_id", "=", accountId)
714
+ .$if(mode === "update", (q) => q.forNoKeyUpdate())
715
+ .$if(mode === "share", (q) => q.forShare())
716
+ .executeTakeFirst());
717
+ if (!m)
718
+ throw new ApiError("org.not_found", "Organization not found");
719
+ }
720
+ /** Locks one of the person's live environments (after their membership); else `not_found`. */
721
+ async lockOwn(orgId, accountId, id) {
722
+ await this.lockMember(orgId, accountId);
723
+ const row = await this.db
724
+ .selectFrom("environments")
725
+ .select(["name", "is_default"])
726
+ .where("id", "=", id)
727
+ .where("org_id", "=", orgId)
728
+ .where("owner_kind", "=", "personal")
729
+ .where("owner_account_id", "=", accountId)
730
+ .where("deleted_at", "is", null)
731
+ .forNoKeyUpdate()
732
+ .executeTakeFirst();
733
+ if (!row)
734
+ throw environmentNotFound();
735
+ return row;
736
+ }
737
+ async assertNameFree(orgId, accountId, name) {
738
+ const clash = await this.db
739
+ .selectFrom("environments")
740
+ .select("id")
741
+ .where("org_id", "=", orgId)
742
+ .where("owner_account_id", "=", accountId)
743
+ .where("deleted_at", "is", null)
744
+ .where(sql `lower(name) = lower(${name})`)
745
+ .executeTakeFirst();
746
+ if (clash)
747
+ throw nameTaken();
748
+ }
749
+ };
750
+ __decorate([
751
+ Transactional()
752
+ ], EnvironmentsService.prototype, "insert", null);
753
+ __decorate([
754
+ Transactional()
755
+ ], EnvironmentsService.prototype, "createDevice", null);
756
+ __decorate([
757
+ Transactional()
758
+ ], EnvironmentsService.prototype, "renameIn", null);
759
+ __decorate([
760
+ Transactional()
761
+ ], EnvironmentsService.prototype, "remove", null);
762
+ __decorate([
763
+ Transactional()
764
+ ], EnvironmentsService.prototype, "recordReset", null);
765
+ __decorate([
766
+ Transactional()
767
+ ], EnvironmentsService.prototype, "insertDefault", null);
768
+ EnvironmentsService = __decorate([
769
+ Injectable(),
770
+ __param(0, Inject(KernelDb)),
771
+ __param(1, Inject(TransactionHost)),
772
+ __param(2, Inject(KernelConfigService)),
773
+ __param(3, Inject(SandboxProviders)),
774
+ __param(4, Inject(SandboxService)),
775
+ __param(5, Inject(SandboxJobs)),
776
+ __param(6, Inject(EnvironmentAccess)),
777
+ __param(7, Inject(ExtensionDisplayNames)),
778
+ __param(8, Inject(KERNEL_LOGGER)),
779
+ __param(9, Inject(LockService)),
780
+ __param(10, Inject(MachinesService))
781
+ ], EnvironmentsService);
782
+ export { EnvironmentsService };
783
+ /**
784
+ * Ruling R24: a connected environment's files are in a directory on its machine, which the
785
+ * platform never wipes; a lost directory comes back with `capybara-device logout` and a new `login` on the machine.
786
+ */
787
+ function refuseDeviceReset(env) {
788
+ if (env.provider === DEVICE_PROVIDER) {
789
+ throw new ApiError("environment.files_on_device", "This environment's files are in a directory on its connected machine and cannot be reset from here. To start over, run capybara-device logout, then capybara-device login into this environment, on that machine.");
790
+ }
791
+ }