@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.11

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 (1170) hide show
  1. package/bootstrap.json +85 -5
  2. package/dist/admin/admin.controller.d.ts +52 -71
  3. package/dist/admin/admin.controller.js +117 -63
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/admin.schemas.d.ts +60 -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 +264 -0
  99. package/dist/catalog/catalog-content.js +430 -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 +677 -0
  106. package/dist/catalog/catalog-scope.service.d.ts +286 -0
  107. package/dist/catalog/catalog-scope.service.js +1196 -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 +144 -207
  111. package/dist/catalog/catalog.service.js +258 -528
  112. package/dist/catalog/claude/agents.js +15 -10
  113. package/dist/catalog/claude/translate.js +3 -0
  114. package/dist/catalog/cli.d.ts +14 -3
  115. package/dist/catalog/cli.js +39 -32
  116. package/dist/catalog/component-promotion.d.ts +96 -0
  117. package/dist/catalog/component-promotion.js +395 -0
  118. package/dist/catalog/component-scope.controller.d.ts +90 -0
  119. package/dist/catalog/component-scope.controller.js +234 -0
  120. package/dist/catalog/component-scope.schemas.d.ts +118 -0
  121. package/dist/catalog/component-scope.schemas.js +97 -0
  122. package/dist/catalog/component-scope.service.d.ts +366 -0
  123. package/dist/catalog/component-scope.service.js +1115 -0
  124. package/dist/catalog/component-state.d.ts +197 -0
  125. package/dist/catalog/component-state.js +473 -0
  126. package/dist/catalog/git-source.d.ts +9 -1
  127. package/dist/catalog/git-source.js +29 -2
  128. package/dist/catalog/job-ids.d.ts +45 -0
  129. package/dist/catalog/job-ids.js +40 -0
  130. package/dist/catalog/jobs.d.ts +27 -0
  131. package/dist/catalog/jobs.js +70 -0
  132. package/dist/catalog/locks.d.ts +24 -0
  133. package/dist/catalog/locks.js +63 -0
  134. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  135. package/dist/catalog/marketplace-icons.d.ts +64 -0
  136. package/dist/catalog/marketplace-icons.js +131 -0
  137. package/dist/catalog/marketplaces.controller.d.ts +53 -44
  138. package/dist/catalog/marketplaces.controller.js +146 -51
  139. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  140. package/dist/catalog/marketplaces.schemas.js +53 -0
  141. package/dist/catalog/marketplaces.service.d.ts +136 -26
  142. package/dist/catalog/marketplaces.service.js +663 -281
  143. package/dist/catalog/org-catalog.controller.d.ts +115 -63
  144. package/dist/catalog/org-catalog.controller.js +207 -100
  145. package/dist/catalog/org-catalog.schemas.d.ts +88 -0
  146. package/dist/catalog/org-catalog.schemas.js +93 -0
  147. package/dist/catalog/org-catalog.service.d.ts +89 -216
  148. package/dist/catalog/org-catalog.service.js +434 -472
  149. package/dist/catalog/org-extension-switch.d.ts +41 -0
  150. package/dist/catalog/org-extension-switch.js +115 -0
  151. package/dist/catalog/org-extension.controller.d.ts +113 -0
  152. package/dist/catalog/org-extension.controller.js +271 -0
  153. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  154. package/dist/catalog/org-extension.schemas.js +22 -0
  155. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  156. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  157. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  158. package/dist/catalog/org-plugin-uploads.js +122 -0
  159. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  160. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  161. package/dist/catalog/owned-items.d.ts +188 -0
  162. package/dist/catalog/owned-items.js +808 -0
  163. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  164. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  165. package/dist/catalog/ownership.d.ts +172 -0
  166. package/dist/catalog/ownership.js +326 -0
  167. package/dist/catalog/platform-components.d.ts +243 -0
  168. package/dist/catalog/platform-components.js +872 -0
  169. package/dist/catalog/platform-migration.d.ts +115 -0
  170. package/dist/catalog/platform-migration.js +583 -0
  171. package/dist/catalog/plugin-import.d.ts +293 -71
  172. package/dist/catalog/plugin-import.js +1039 -281
  173. package/dist/catalog/plugin-install.d.ts +271 -66
  174. package/dist/catalog/plugin-install.js +1198 -344
  175. package/dist/catalog/plugin-package.d.ts +41 -4
  176. package/dist/catalog/plugin-package.js +140 -7
  177. package/dist/catalog/plugin-upgrade.d.ts +312 -188
  178. package/dist/catalog/plugin-upgrade.js +1371 -1065
  179. package/dist/catalog/request-rules.d.ts +65 -0
  180. package/dist/catalog/request-rules.js +217 -0
  181. package/dist/catalog/requests.service.d.ts +205 -117
  182. package/dist/catalog/requests.service.js +612 -369
  183. package/dist/catalog/reserved-names.d.ts +8 -0
  184. package/dist/catalog/reserved-names.js +42 -0
  185. package/dist/catalog/scope-orgs.d.ts +21 -0
  186. package/dist/catalog/scope-orgs.js +67 -0
  187. package/dist/catalog/scope-state.d.ts +35 -0
  188. package/dist/catalog/scope-state.js +87 -0
  189. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  190. package/dist/catalog/scope-sync-workers.js +29 -0
  191. package/dist/catalog/scope-sync.d.ts +176 -0
  192. package/dist/catalog/scope-sync.js +576 -0
  193. package/dist/catalog/scope.d.ts +42 -0
  194. package/dist/catalog/scope.js +42 -0
  195. package/dist/catalog/unshare.d.ts +22 -0
  196. package/dist/catalog/unshare.js +119 -0
  197. package/dist/channels/actions.d.ts +6 -4
  198. package/dist/channels/actions.js +11 -4
  199. package/dist/channels/cards.d.ts +33 -11
  200. package/dist/channels/cards.js +96 -24
  201. package/dist/channels/channels.module.d.ts +40 -0
  202. package/dist/channels/channels.module.js +130 -0
  203. package/dist/channels/channels.schemas.d.ts +37 -0
  204. package/dist/channels/channels.schemas.js +38 -0
  205. package/dist/channels/connections.controller.d.ts +44 -37
  206. package/dist/channels/connections.controller.js +83 -38
  207. package/dist/channels/connections.service.d.ts +101 -30
  208. package/dist/channels/connections.service.js +380 -147
  209. package/dist/channels/inbound.d.ts +44 -38
  210. package/dist/channels/inbound.js +190 -44
  211. package/dist/channels/job-ids.d.ts +10 -0
  212. package/dist/channels/job-ids.js +10 -0
  213. package/dist/channels/jobs.d.ts +85 -0
  214. package/dist/channels/jobs.js +157 -0
  215. package/dist/channels/outbound.d.ts +71 -80
  216. package/dist/channels/outbound.js +219 -202
  217. package/dist/channels/phrases.d.ts +33 -2
  218. package/dist/channels/phrases.js +29 -1
  219. package/dist/channels/supervisor.d.ts +88 -46
  220. package/dist/channels/supervisor.js +230 -132
  221. package/dist/channels/threads.d.ts +34 -8
  222. package/dist/channels/threads.js +79 -13
  223. package/dist/channels/webhook.d.ts +20 -14
  224. package/dist/channels/webhook.js +51 -20
  225. package/dist/config/docs.js +5 -1
  226. package/dist/config/load.d.ts +3 -2
  227. package/dist/config/load.js +3 -2
  228. package/dist/config/nacos-source.js +11 -2
  229. package/dist/config/schema.d.ts +36 -2
  230. package/dist/config/schema.js +226 -25
  231. package/dist/conversations/access.d.ts +31 -0
  232. package/dist/conversations/access.js +110 -0
  233. package/dist/conversations/agent-tree.d.ts +46 -0
  234. package/dist/conversations/agent-tree.js +92 -0
  235. package/dist/conversations/artifacts.d.ts +11 -11
  236. package/dist/conversations/artifacts.js +36 -10
  237. package/dist/conversations/attachments.controller.d.ts +1 -1
  238. package/dist/conversations/attachments.controller.js +8 -6
  239. package/dist/conversations/attachments.module.d.ts +7 -0
  240. package/dist/conversations/attachments.module.js +25 -0
  241. package/dist/conversations/attachments.service.d.ts +60 -22
  242. package/dist/conversations/attachments.service.js +249 -51
  243. package/dist/conversations/conversations.controller.d.ts +86 -50
  244. package/dist/conversations/conversations.controller.js +184 -103
  245. package/dist/conversations/conversations.module.d.ts +8 -0
  246. package/dist/conversations/conversations.module.js +72 -0
  247. package/dist/conversations/conversations.schemas.d.ts +52 -0
  248. package/dist/conversations/conversations.schemas.js +79 -0
  249. package/dist/conversations/conversations.service.d.ts +166 -49
  250. package/dist/conversations/conversations.service.js +383 -179
  251. package/dist/conversations/environment-status.d.ts +24 -0
  252. package/dist/conversations/environment-status.js +71 -0
  253. package/dist/conversations/event-log.d.ts +64 -27
  254. package/dist/conversations/event-log.js +167 -31
  255. package/dist/conversations/events.d.ts +252 -9
  256. package/dist/conversations/events.js +243 -32
  257. package/dist/conversations/files.d.ts +10 -10
  258. package/dist/conversations/files.js +37 -11
  259. package/dist/conversations/idem-keys.d.ts +5 -0
  260. package/dist/conversations/idem-keys.js +5 -0
  261. package/dist/conversations/job-ids.d.ts +6 -0
  262. package/dist/conversations/job-ids.js +6 -0
  263. package/dist/conversations/message-context.d.ts +79 -0
  264. package/dist/conversations/message-context.js +145 -0
  265. package/dist/conversations/outputs-read.d.ts +11 -11
  266. package/dist/conversations/outputs-read.js +31 -7
  267. package/dist/conversations/queue.d.ts +53 -58
  268. package/dist/conversations/queue.js +37 -293
  269. package/dist/conversations/queue.service.d.ts +60 -0
  270. package/dist/conversations/queue.service.js +350 -0
  271. package/dist/conversations/titles.d.ts +83 -27
  272. package/dist/conversations/titles.js +195 -71
  273. package/dist/conversations/tree.d.ts +17 -0
  274. package/dist/conversations/tree.js +42 -0
  275. package/dist/ctx/bus.js +9 -3
  276. package/dist/ctx/create-ctx.d.ts +26 -1
  277. package/dist/ctx/create-ctx.js +45 -16
  278. package/dist/ctx/lock.d.ts +7 -3
  279. package/dist/ctx/lock.js +9 -20
  280. package/dist/ctx/secrets.d.ts +10 -2
  281. package/dist/ctx/secrets.js +7 -3
  282. package/dist/db/kernel-schema.d.ts +589 -27
  283. package/dist/db/pool.d.ts +10 -0
  284. package/dist/db/pool.js +4 -0
  285. package/dist/devices/device-auth.controller.d.ts +42 -0
  286. package/dist/devices/device-auth.controller.js +116 -0
  287. package/dist/devices/device-auth.d.ts +119 -0
  288. package/dist/devices/device-auth.js +403 -0
  289. package/dist/devices/device-auth.module.d.ts +7 -0
  290. package/dist/devices/device-auth.module.js +25 -0
  291. package/dist/devices/device-gateway.d.ts +128 -0
  292. package/dist/devices/device-gateway.js +530 -0
  293. package/dist/devices/device-provider.d.ts +89 -0
  294. package/dist/devices/device-provider.js +151 -0
  295. package/dist/devices/device-routes.d.ts +36 -0
  296. package/dist/devices/device-routes.js +90 -0
  297. package/dist/devices/devices.module.d.ts +16 -0
  298. package/dist/devices/devices.module.js +44 -0
  299. package/dist/devices/dto.d.ts +66 -0
  300. package/dist/devices/dto.js +44 -0
  301. package/dist/devices/keys.d.ts +25 -0
  302. package/dist/devices/keys.js +25 -0
  303. package/dist/devices/machines.d.ts +118 -0
  304. package/dist/devices/machines.js +366 -0
  305. package/dist/devices/relay.d.ts +100 -0
  306. package/dist/devices/relay.js +373 -0
  307. package/dist/devices/targets.d.ts +28 -0
  308. package/dist/devices/targets.js +73 -0
  309. package/dist/environments/access.d.ts +66 -0
  310. package/dist/environments/access.js +113 -0
  311. package/dist/environments/conversation-environments.d.ts +75 -0
  312. package/dist/environments/conversation-environments.js +231 -0
  313. package/dist/environments/dto.d.ts +25 -0
  314. package/dist/environments/dto.js +12 -0
  315. package/dist/environments/environments.controller.d.ts +36 -0
  316. package/dist/environments/environments.controller.js +124 -0
  317. package/dist/environments/environments.module.d.ts +8 -0
  318. package/dist/environments/environments.module.js +31 -0
  319. package/dist/environments/environments.schemas.d.ts +3 -0
  320. package/dist/environments/environments.schemas.js +14 -0
  321. package/dist/environments/environments.service.d.ts +251 -0
  322. package/dist/environments/environments.service.js +791 -0
  323. package/dist/environments/label.d.ts +11 -0
  324. package/dist/environments/label.js +25 -0
  325. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  326. package/dist/environments/legacy-cleanup.job.js +141 -0
  327. package/dist/errors.d.ts +160 -2
  328. package/dist/errors.js +160 -2
  329. package/dist/evals/budget.d.ts +42 -21
  330. package/dist/evals/budget.js +114 -62
  331. package/dist/evals/evals.module.d.ts +31 -0
  332. package/dist/evals/evals.module.js +114 -0
  333. package/dist/evals/evals.schemas.d.ts +110 -0
  334. package/dist/evals/evals.schemas.js +107 -0
  335. package/dist/evals/jobs.d.ts +20 -0
  336. package/dist/evals/jobs.js +45 -0
  337. package/dist/evals/reconstruct.d.ts +18 -9
  338. package/dist/evals/reconstruct.js +36 -10
  339. package/dist/evals/recorded-tools.d.ts +37 -1
  340. package/dist/evals/recorded-tools.js +120 -10
  341. package/dist/evals/run-replay.d.ts +75 -10
  342. package/dist/evals/run-replay.js +218 -94
  343. package/dist/evals/runs.controller.d.ts +3 -58
  344. package/dist/evals/runs.controller.js +18 -50
  345. package/dist/evals/runs.service.d.ts +31 -52
  346. package/dist/evals/runs.service.js +281 -255
  347. package/dist/evals/sets.controller.d.ts +3 -29
  348. package/dist/evals/sets.controller.js +18 -39
  349. package/dist/evals/sets.service.d.ts +29 -13
  350. package/dist/evals/sets.service.js +262 -202
  351. package/dist/evals/snapshot.d.ts +5 -4
  352. package/dist/evals/snapshot.js +17 -4
  353. package/dist/evals/step-replay.d.ts +6 -8
  354. package/dist/evals/step-replay.js +17 -10
  355. package/dist/evals/trajectory.controller.d.ts +1 -1
  356. package/dist/evals/trajectory.controller.js +11 -7
  357. package/dist/evals/trajectory.d.ts +2 -2
  358. package/dist/evals/trajectory.js +1 -1
  359. package/dist/evals/trajectory.service.d.ts +13 -7
  360. package/dist/evals/trajectory.service.js +56 -21
  361. package/dist/evals/worker.d.ts +48 -31
  362. package/dist/evals/worker.js +229 -124
  363. package/dist/extensions/admin-ops.d.ts +133 -41
  364. package/dist/extensions/admin-ops.js +378 -172
  365. package/dist/extensions/admin-view.d.ts +82 -32
  366. package/dist/extensions/admin-view.js +284 -71
  367. package/dist/extensions/approvals.d.ts +24 -10
  368. package/dist/extensions/approvals.js +73 -46
  369. package/dist/extensions/blobs.d.ts +27 -10
  370. package/dist/extensions/blobs.js +112 -45
  371. package/dist/extensions/bootstrap.d.ts +99 -36
  372. package/dist/extensions/bootstrap.js +290 -134
  373. package/dist/extensions/cli.d.ts +32 -10
  374. package/dist/extensions/cli.js +52 -98
  375. package/dist/extensions/config-hash.d.ts +10 -0
  376. package/dist/extensions/config-hash.js +38 -0
  377. package/dist/extensions/config-issues.d.ts +19 -0
  378. package/dist/extensions/config-issues.js +48 -0
  379. package/dist/extensions/config-json-schema.d.ts +43 -7
  380. package/dist/extensions/config-json-schema.js +124 -58
  381. package/dist/extensions/deployment-config-store.d.ts +55 -0
  382. package/dist/extensions/deployment-config-store.js +133 -0
  383. package/dist/extensions/deployment-config.d.ts +146 -70
  384. package/dist/extensions/deployment-config.js +439 -246
  385. package/dist/extensions/display-name.d.ts +22 -0
  386. package/dist/extensions/display-name.js +77 -0
  387. package/dist/extensions/effective-config.d.ts +127 -0
  388. package/dist/extensions/effective-config.js +368 -0
  389. package/dist/extensions/enabled.d.ts +5 -5
  390. package/dist/extensions/extensions.module.d.ts +8 -0
  391. package/dist/extensions/extensions.module.js +96 -0
  392. package/dist/extensions/hooks.d.ts +40 -6
  393. package/dist/extensions/hooks.js +83 -17
  394. package/dist/extensions/host.d.ts +161 -80
  395. package/dist/extensions/host.js +505 -213
  396. package/dist/extensions/installs.d.ts +73 -19
  397. package/dist/extensions/installs.js +174 -37
  398. package/dist/extensions/job-ids.d.ts +6 -0
  399. package/dist/extensions/job-ids.js +6 -0
  400. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  401. package/dist/extensions/lifecycle-topics.js +18 -0
  402. package/dist/extensions/lifecycle.d.ts +35 -47
  403. package/dist/extensions/lifecycle.js +103 -39
  404. package/dist/extensions/locks.d.ts +45 -0
  405. package/dist/extensions/locks.js +112 -0
  406. package/dist/extensions/migrate-lock.d.ts +3 -4
  407. package/dist/extensions/org-config.d.ts +141 -49
  408. package/dist/extensions/org-config.js +471 -243
  409. package/dist/extensions/org-levels.d.ts +37 -0
  410. package/dist/extensions/org-levels.js +71 -0
  411. package/dist/extensions/org-overrides.d.ts +151 -0
  412. package/dist/extensions/org-overrides.js +524 -0
  413. package/dist/extensions/package.d.ts +14 -1
  414. package/dist/extensions/package.js +51 -2
  415. package/dist/extensions/permission-view.d.ts +59 -6
  416. package/dist/extensions/permission-view.js +7 -5
  417. package/dist/extensions/plugin-guides.d.ts +129 -0
  418. package/dist/extensions/plugin-guides.js +283 -0
  419. package/dist/extensions/plugin-icons.d.ts +54 -0
  420. package/dist/extensions/plugin-icons.js +125 -0
  421. package/dist/extensions/plugin-items.d.ts +21 -0
  422. package/dist/extensions/plugin-items.js +42 -0
  423. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  424. package/dist/extensions/point-defaults.controller.js +69 -0
  425. package/dist/extensions/point-defaults.d.ts +73 -0
  426. package/dist/extensions/point-defaults.js +236 -0
  427. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  428. package/dist/extensions/point-defaults.schemas.js +14 -0
  429. package/dist/extensions/registry.d.ts +50 -2
  430. package/dist/extensions/registry.js +91 -4
  431. package/dist/extensions/resolve.d.ts +51 -1
  432. package/dist/extensions/resolve.js +85 -3
  433. package/dist/extensions/single-provider.d.ts +92 -0
  434. package/dist/extensions/single-provider.js +180 -0
  435. package/dist/extensions/sources.d.ts +19 -10
  436. package/dist/extensions/sources.js +34 -13
  437. package/dist/extensions/state.module.d.ts +9 -0
  438. package/dist/extensions/state.module.js +38 -0
  439. package/dist/extensions/unavailable.d.ts +50 -0
  440. package/dist/extensions/unavailable.js +115 -0
  441. package/dist/files/files.module.d.ts +3 -0
  442. package/dist/files/files.module.js +22 -0
  443. package/dist/files/previewers.controller.d.ts +7 -2
  444. package/dist/files/previewers.controller.js +19 -12
  445. package/dist/files/previewers.d.ts +21 -19
  446. package/dist/files/previewers.js +114 -38
  447. package/dist/files/previewers.schemas.d.ts +10 -0
  448. package/dist/files/previewers.schemas.js +9 -0
  449. package/dist/http/adapter.d.ts +3 -0
  450. package/dist/http/adapter.js +25 -0
  451. package/dist/http/api.module.d.ts +3 -110
  452. package/dist/http/api.module.js +93 -358
  453. package/dist/http/app.d.ts +22 -17
  454. package/dist/http/app.js +46 -65
  455. package/dist/http/error-filter.module.d.ts +5 -0
  456. package/dist/http/error-filter.module.js +18 -0
  457. package/dist/http/error.filter.js +2 -2
  458. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  459. package/dist/http/gateway-routes.js +16 -0
  460. package/dist/http/nest-logger.d.ts +6 -5
  461. package/dist/http/nest-logger.js +24 -10
  462. package/dist/http/plugin-dispatch.d.ts +4 -1
  463. package/dist/http/plugin-dispatch.js +14 -2
  464. package/dist/identity/accounts.d.ts +137 -38
  465. package/dist/identity/accounts.js +386 -186
  466. package/dist/identity/api-tokens.d.ts +11 -7
  467. package/dist/identity/api-tokens.js +71 -44
  468. package/dist/identity/audit.d.ts +9 -5
  469. package/dist/identity/audit.js +5 -1
  470. package/dist/identity/auth.controller.d.ts +11 -10
  471. package/dist/identity/auth.controller.js +40 -30
  472. package/dist/identity/auth.guard.d.ts +16 -8
  473. package/dist/identity/auth.guard.js +41 -13
  474. package/dist/identity/binding.d.ts +9 -11
  475. package/dist/identity/binding.js +41 -13
  476. package/dist/identity/cookies.d.ts +26 -5
  477. package/dist/identity/cookies.js +58 -6
  478. package/dist/identity/external-identity-lock.d.ts +17 -0
  479. package/dist/identity/external-identity-lock.js +39 -0
  480. package/dist/identity/external.d.ts +19 -15
  481. package/dist/identity/external.js +163 -125
  482. package/dist/identity/identity.module.d.ts +6 -0
  483. package/dist/identity/identity.module.js +59 -0
  484. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  485. package/dist/identity/initial-passwords.controller.js +49 -0
  486. package/dist/identity/initial-passwords.d.ts +61 -0
  487. package/dist/identity/initial-passwords.job.d.ts +16 -0
  488. package/dist/identity/initial-passwords.job.js +46 -0
  489. package/dist/identity/initial-passwords.js +159 -0
  490. package/dist/identity/me.controller.d.ts +32 -15
  491. package/dist/identity/me.controller.js +80 -33
  492. package/dist/identity/me.schemas.d.ts +24 -0
  493. package/dist/identity/me.schemas.js +25 -0
  494. package/dist/identity/principal.d.ts +11 -3
  495. package/dist/identity/principal.js +11 -3
  496. package/dist/identity/sessions.d.ts +24 -10
  497. package/dist/identity/sessions.js +119 -42
  498. package/dist/identity/settings.d.ts +69 -23
  499. package/dist/identity/settings.js +201 -72
  500. package/dist/identity/sso.controller.d.ts +7 -7
  501. package/dist/identity/sso.controller.js +13 -9
  502. package/dist/identity/sso.d.ts +9 -12
  503. package/dist/identity/sso.js +54 -24
  504. package/dist/identity/super-admin.d.ts +20 -0
  505. package/dist/identity/super-admin.js +81 -0
  506. package/dist/inbox/inbox.module.d.ts +6 -0
  507. package/dist/inbox/inbox.module.js +26 -0
  508. package/dist/inbox/inbox.schemas.d.ts +8 -0
  509. package/dist/inbox/inbox.schemas.js +11 -0
  510. package/dist/inbox/inbox.service.d.ts +68 -11
  511. package/dist/inbox/inbox.service.js +104 -13
  512. package/dist/inbox/org-notices.d.ts +63 -0
  513. package/dist/inbox/org-notices.js +91 -0
  514. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  515. package/dist/inbox/platform-inbox.controller.js +58 -0
  516. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  517. package/dist/inbox/platform-inbox.service.js +263 -0
  518. package/dist/inbox/platform-notices.d.ts +19 -0
  519. package/dist/inbox/platform-notices.js +9 -0
  520. package/dist/index.d.ts +22 -13
  521. package/dist/index.js +16 -7
  522. package/dist/infra/cache/cache.module.d.ts +3 -0
  523. package/dist/infra/cache/cache.module.js +16 -0
  524. package/dist/infra/cache/cache.service.d.ts +21 -0
  525. package/dist/infra/cache/cache.service.js +80 -0
  526. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  527. package/dist/infra/cache/cacheable.decorator.js +83 -0
  528. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  529. package/dist/infra/cli/kernel-cli.module.js +173 -0
  530. package/dist/infra/close-within.d.ts +15 -0
  531. package/dist/infra/close-within.js +36 -0
  532. package/dist/infra/config/config.module.d.ts +13 -0
  533. package/dist/infra/config/config.module.js +39 -0
  534. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  535. package/dist/infra/config/kernel-config.service.js +157 -0
  536. package/dist/infra/database/after-commit.d.ts +6 -0
  537. package/dist/infra/database/after-commit.js +9 -0
  538. package/dist/infra/database/database.module.d.ts +25 -0
  539. package/dist/infra/database/database.module.js +91 -0
  540. package/dist/infra/database/kernel-db.d.ts +22 -0
  541. package/dist/infra/database/kernel-db.js +65 -0
  542. package/dist/infra/database/transaction-host.d.ts +50 -0
  543. package/dist/infra/database/transaction-host.js +125 -0
  544. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  545. package/dist/infra/database/transactional.decorator.js +27 -0
  546. package/dist/infra/database/xact-lock.d.ts +17 -0
  547. package/dist/infra/database/xact-lock.js +43 -0
  548. package/dist/infra/events/kernel-events.d.ts +121 -0
  549. package/dist/infra/events/kernel-events.js +65 -0
  550. package/dist/infra/health/health.controller.d.ts +26 -0
  551. package/dist/infra/health/health.controller.js +104 -0
  552. package/dist/infra/health/health.module.d.ts +9 -0
  553. package/dist/infra/health/health.module.js +24 -0
  554. package/dist/infra/health/health.options.d.ts +10 -0
  555. package/dist/infra/health/health.options.js +15 -0
  556. package/dist/infra/health/shutdown-state.d.ts +6 -0
  557. package/dist/infra/health/shutdown-state.js +2 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  560. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  561. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  562. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  563. package/dist/infra/lifecycle/process-guards.js +90 -0
  564. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  565. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  566. package/dist/infra/lock/key-template.d.ts +13 -0
  567. package/dist/infra/lock/key-template.js +46 -0
  568. package/dist/infra/lock/lock.module.d.ts +3 -0
  569. package/dist/infra/lock/lock.module.js +16 -0
  570. package/dist/infra/lock/lock.service.d.ts +120 -0
  571. package/dist/infra/lock/lock.service.js +343 -0
  572. package/dist/infra/lock/shared-lease.d.ts +44 -0
  573. package/dist/infra/lock/shared-lease.js +121 -0
  574. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  575. package/dist/infra/lock/with-lock.decorator.js +49 -0
  576. package/dist/infra/logging/logging.module.d.ts +18 -0
  577. package/dist/infra/logging/logging.module.js +52 -0
  578. package/dist/infra/queue/add-job-once.d.ts +14 -0
  579. package/dist/infra/queue/add-job-once.js +16 -0
  580. package/dist/infra/queue/configured-processor.d.ts +18 -0
  581. package/dist/infra/queue/configured-processor.js +23 -0
  582. package/dist/infra/queue/job-failure.d.ts +18 -0
  583. package/dist/infra/queue/job-failure.js +26 -0
  584. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  585. package/dist/infra/queue/queue-shutdown.js +81 -0
  586. package/dist/infra/queue/queue.module.d.ts +16 -0
  587. package/dist/infra/queue/queue.module.js +61 -0
  588. package/dist/infra/queue/redis-connection.d.ts +13 -0
  589. package/dist/infra/queue/redis-connection.js +25 -0
  590. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  591. package/dist/infra/queue/retired-schedulers.js +9 -0
  592. package/dist/infra/queue/run-job.d.ts +16 -0
  593. package/dist/infra/queue/run-job.js +19 -0
  594. package/dist/infra/redis/redis.module.d.ts +24 -0
  595. package/dist/infra/redis/redis.module.js +91 -0
  596. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  597. package/dist/infra/schedule/cron-tick.js +25 -0
  598. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  599. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  600. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  601. package/dist/infra/schedule/locked-interval.js +190 -0
  602. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  603. package/dist/infra/schedule/locked-tick.js +137 -0
  604. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  605. package/dist/infra/schedule/schedule.module.js +27 -0
  606. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  607. package/dist/infra/schedule/scheduled-runs.js +163 -0
  608. package/dist/infra/swagger/swagger.d.ts +16 -0
  609. package/dist/infra/swagger/swagger.js +31 -0
  610. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  611. package/dist/infra/throttler/credential-throttler.js +77 -0
  612. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  613. package/dist/infra/throttler/named-throttlers.js +157 -0
  614. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  615. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  616. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  617. package/dist/infra/throttler/throttler.guard.js +68 -0
  618. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  619. package/dist/infra/throttler/throttler.module.js +53 -0
  620. package/dist/infra/tokens.d.ts +20 -0
  621. package/dist/infra/tokens.js +20 -0
  622. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  623. package/dist/infra/validation/create-zod-dto.js +35 -0
  624. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  625. package/dist/infra/validation/parse-with-zod.js +12 -0
  626. package/dist/infra/validation/validation.module.d.ts +3 -0
  627. package/dist/infra/validation/validation.module.js +16 -0
  628. package/dist/infra/validation/zod-params.d.ts +7 -0
  629. package/dist/infra/validation/zod-params.js +42 -0
  630. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  631. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  632. package/dist/kernel.d.ts +9 -244
  633. package/dist/kernel.js +8 -1305
  634. package/dist/kernel.module.d.ts +17 -0
  635. package/dist/kernel.module.js +145 -0
  636. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  637. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  638. package/dist/lifecycle/tokens.d.ts +3 -0
  639. package/dist/lifecycle/tokens.js +3 -0
  640. package/dist/log-context.d.ts +2 -0
  641. package/dist/log-context.js +4 -0
  642. package/dist/log.d.ts +13 -1
  643. package/dist/log.js +93 -17
  644. package/dist/models/embeddings.d.ts +82 -0
  645. package/dist/models/embeddings.js +326 -0
  646. package/dist/models/enablement.controller.d.ts +40 -0
  647. package/dist/models/enablement.controller.js +74 -0
  648. package/dist/models/enablement.d.ts +101 -0
  649. package/dist/models/enablement.js +264 -0
  650. package/dist/models/models.module.d.ts +7 -0
  651. package/dist/models/models.module.js +36 -0
  652. package/dist/models/org-models.schemas.d.ts +8 -0
  653. package/dist/models/org-models.schemas.js +22 -0
  654. package/dist/models/prices.d.ts +13 -5
  655. package/dist/models/prices.js +69 -39
  656. package/dist/models/purposes.controller.d.ts +6 -4
  657. package/dist/models/purposes.controller.js +16 -11
  658. package/dist/models/purposes.d.ts +103 -23
  659. package/dist/models/purposes.js +208 -77
  660. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  661. package/dist/orgs/directory-sync.controller.js +2 -2
  662. package/dist/orgs/directory-sync.d.ts +74 -35
  663. package/dist/orgs/directory-sync.js +243 -132
  664. package/dist/orgs/invitations.controller.d.ts +8 -8
  665. package/dist/orgs/invitations.controller.js +27 -26
  666. package/dist/orgs/invitations.service.d.ts +12 -9
  667. package/dist/orgs/invitations.service.js +130 -92
  668. package/dist/orgs/job-ids.d.ts +8 -0
  669. package/dist/orgs/job-ids.js +8 -0
  670. package/dist/orgs/members.service.d.ts +19 -12
  671. package/dist/orgs/members.service.js +161 -117
  672. package/dist/orgs/offboarding.d.ts +61 -60
  673. package/dist/orgs/offboarding.js +206 -95
  674. package/dist/orgs/org-lock.d.ts +33 -19
  675. package/dist/orgs/org-lock.js +94 -35
  676. package/dist/orgs/org.guard.d.ts +11 -1
  677. package/dist/orgs/org.guard.js +45 -34
  678. package/dist/orgs/orgs.controller.d.ts +13 -16
  679. package/dist/orgs/orgs.controller.js +29 -20
  680. package/dist/orgs/orgs.module.d.ts +6 -0
  681. package/dist/orgs/orgs.module.js +71 -0
  682. package/dist/orgs/orgs.schemas.d.ts +8 -0
  683. package/dist/orgs/orgs.schemas.js +16 -0
  684. package/dist/orgs/orgs.service.d.ts +47 -21
  685. package/dist/orgs/orgs.service.js +166 -91
  686. package/dist/orgs/roles.d.ts +1 -1
  687. package/dist/orgs/roles.js +5 -1
  688. package/dist/orgs/settings.controller.d.ts +2 -2
  689. package/dist/orgs/settings.controller.js +8 -6
  690. package/dist/orgs/settings.service.d.ts +76 -14
  691. package/dist/orgs/settings.service.js +140 -51
  692. package/dist/overrides.d.ts +63 -0
  693. package/dist/overrides.js +34 -0
  694. package/dist/platform/actor.d.ts +48 -0
  695. package/dist/platform/actor.js +100 -0
  696. package/dist/platform/agent-docs.d.ts +18 -0
  697. package/dist/platform/agent-docs.js +59 -0
  698. package/dist/platform/availability.d.ts +14 -0
  699. package/dist/platform/availability.js +43 -0
  700. package/dist/platform/errors.d.ts +28 -0
  701. package/dist/platform/errors.js +65 -0
  702. package/dist/platform/exclusions.d.ts +11 -0
  703. package/dist/platform/exclusions.js +683 -0
  704. package/dist/platform/method.d.ts +6 -0
  705. package/dist/platform/method.js +15 -0
  706. package/dist/platform/operation.d.ts +169 -0
  707. package/dist/platform/operation.js +94 -0
  708. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  709. package/dist/platform/ops/accounts.ops.js +291 -0
  710. package/dist/platform/ops/admin.ops.d.ts +38 -0
  711. package/dist/platform/ops/admin.ops.js +407 -0
  712. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  713. package/dist/platform/ops/agent-skills.ops.js +226 -0
  714. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  715. package/dist/platform/ops/agent-templates.ops.js +272 -0
  716. package/dist/platform/ops/agents.ops.d.ts +37 -0
  717. package/dist/platform/ops/agents.ops.js +717 -0
  718. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  719. package/dist/platform/ops/approvals.ops.js +116 -0
  720. package/dist/platform/ops/background.ops.d.ts +14 -0
  721. package/dist/platform/ops/background.ops.js +134 -0
  722. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  723. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  724. package/dist/platform/ops/channels.ops.d.ts +16 -0
  725. package/dist/platform/ops/channels.ops.js +195 -0
  726. package/dist/platform/ops/components.ops.d.ts +46 -0
  727. package/dist/platform/ops/components.ops.js +854 -0
  728. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  729. package/dist/platform/ops/connectors.ops.js +188 -0
  730. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  731. package/dist/platform/ops/conversations.ops.js +470 -0
  732. package/dist/platform/ops/environments.ops.d.ts +26 -0
  733. package/dist/platform/ops/environments.ops.js +311 -0
  734. package/dist/platform/ops/errors.d.ts +16 -0
  735. package/dist/platform/ops/errors.js +30 -0
  736. package/dist/platform/ops/evals.ops.d.ts +28 -0
  737. package/dist/platform/ops/evals.ops.js +783 -0
  738. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  739. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  740. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  741. package/dist/platform/ops/extensions.ops.js +347 -0
  742. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  743. package/dist/platform/ops/inbox.ops.js +378 -0
  744. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  745. package/dist/platform/ops/marketplaces.ops.js +466 -0
  746. package/dist/platform/ops/models.ops.d.ts +25 -0
  747. package/dist/platform/ops/models.ops.js +232 -0
  748. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  749. package/dist/platform/ops/org-plugins.ops.js +329 -0
  750. package/dist/platform/ops/org-settings.ops.d.ts +18 -0
  751. package/dist/platform/ops/org-settings.ops.js +127 -0
  752. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  753. package/dist/platform/ops/orgs.ops.js +296 -0
  754. package/dist/platform/ops/other-orgs.d.ts +20 -0
  755. package/dist/platform/ops/other-orgs.js +72 -0
  756. package/dist/platform/ops/paging.d.ts +14 -0
  757. package/dist/platform/ops/paging.js +20 -0
  758. package/dist/platform/ops/platform.ops.d.ts +30 -0
  759. package/dist/platform/ops/platform.ops.js +231 -0
  760. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  761. package/dist/platform/ops/plugins.ops.js +476 -0
  762. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  763. package/dist/platform/ops/previewers.ops.js +109 -0
  764. package/dist/platform/ops/requests.ops.d.ts +14 -0
  765. package/dist/platform/ops/requests.ops.js +191 -0
  766. package/dist/platform/ops/role.d.ts +4 -0
  767. package/dist/platform/ops/role.js +10 -0
  768. package/dist/platform/ops/skills.ops.d.ts +17 -0
  769. package/dist/platform/ops/skills.ops.js +216 -0
  770. package/dist/platform/ops/summary.d.ts +10 -0
  771. package/dist/platform/ops/summary.js +18 -0
  772. package/dist/platform/ops/themes.ops.d.ts +14 -0
  773. package/dist/platform/ops/themes.ops.js +47 -0
  774. package/dist/platform/ops/unavailable.d.ts +23 -0
  775. package/dist/platform/ops/unavailable.js +118 -0
  776. package/dist/platform/parity.d.ts +33 -0
  777. package/dist/platform/parity.js +272 -0
  778. package/dist/platform/platform-ops.module.d.ts +40 -0
  779. package/dist/platform/platform-ops.module.js +127 -0
  780. package/dist/platform/platform.module.d.ts +8 -0
  781. package/dist/platform/platform.module.js +25 -0
  782. package/dist/platform/registry.d.ts +30 -0
  783. package/dist/platform/registry.js +111 -0
  784. package/dist/platform/route-schemas.d.ts +18 -0
  785. package/dist/platform/route-schemas.js +66 -0
  786. package/dist/roles/gateway-role.d.ts +54 -0
  787. package/dist/roles/gateway-role.js +118 -0
  788. package/dist/roles/gateway.module.d.ts +9 -0
  789. package/dist/roles/gateway.module.js +31 -0
  790. package/dist/roles/worker-role.d.ts +65 -0
  791. package/dist/roles/worker-role.js +151 -0
  792. package/dist/roles/worker.module.d.ts +14 -0
  793. package/dist/roles/worker.module.js +106 -0
  794. package/dist/runtime/abort.js +19 -2
  795. package/dist/runtime/checkpointer.d.ts +8 -3
  796. package/dist/runtime/checkpointer.js +87 -55
  797. package/dist/runtime/context/build.d.ts +21 -13
  798. package/dist/runtime/context/build.js +106 -29
  799. package/dist/runtime/context/claude-tools.d.ts +4 -1
  800. package/dist/runtime/context/claude-tools.js +13 -12
  801. package/dist/runtime/context/compaction.js +24 -1
  802. package/dist/runtime/context/environment-paths.d.ts +40 -0
  803. package/dist/runtime/context/environment-paths.js +48 -0
  804. package/dist/runtime/context/legacy-text.d.ts +22 -0
  805. package/dist/runtime/context/legacy-text.js +37 -0
  806. package/dist/runtime/context/reminders.d.ts +2 -0
  807. package/dist/runtime/context/reminders.js +2 -0
  808. package/dist/runtime/context/run-context.d.ts +65 -0
  809. package/dist/runtime/context/run-context.js +215 -0
  810. package/dist/runtime/context/skills.d.ts +29 -11
  811. package/dist/runtime/context/skills.js +46 -32
  812. package/dist/runtime/context/tool-changes.d.ts +27 -0
  813. package/dist/runtime/context/tool-changes.js +60 -0
  814. package/dist/runtime/conversation-lock.d.ts +20 -11
  815. package/dist/runtime/conversation-lock.js +62 -72
  816. package/dist/runtime/hook-calls.d.ts +11 -4
  817. package/dist/runtime/hook-calls.js +41 -13
  818. package/dist/runtime/job-ids.d.ts +10 -0
  819. package/dist/runtime/job-ids.js +10 -0
  820. package/dist/runtime/langgraph-loop.d.ts +3 -1
  821. package/dist/runtime/langgraph-loop.js +37 -18
  822. package/dist/runtime/loop.d.ts +42 -6
  823. package/dist/runtime/loop.js +14 -0
  824. package/dist/runtime/maintenance-queue.d.ts +10 -0
  825. package/dist/runtime/maintenance-queue.js +10 -0
  826. package/dist/runtime/maintenance.d.ts +50 -74
  827. package/dist/runtime/maintenance.js +166 -137
  828. package/dist/runtime/model-call.d.ts +61 -15
  829. package/dist/runtime/model-call.js +128 -84
  830. package/dist/runtime/providers.d.ts +158 -27
  831. package/dist/runtime/providers.js +373 -63
  832. package/dist/runtime/quota.d.ts +17 -3
  833. package/dist/runtime/quota.js +27 -2
  834. package/dist/runtime/retired-schedulers.d.ts +7 -0
  835. package/dist/runtime/retired-schedulers.js +31 -0
  836. package/dist/runtime/run-context.service.d.ts +65 -0
  837. package/dist/runtime/run-context.service.js +236 -0
  838. package/dist/runtime/run-control.d.ts +43 -0
  839. package/dist/runtime/run-control.js +89 -0
  840. package/dist/runtime/run-drafts.d.ts +85 -0
  841. package/dist/runtime/run-drafts.js +230 -0
  842. package/dist/runtime/run-finish.d.ts +27 -18
  843. package/dist/runtime/run-finish.js +98 -51
  844. package/dist/runtime/run-jobs.d.ts +46 -0
  845. package/dist/runtime/run-jobs.js +91 -0
  846. package/dist/runtime/run-processors.d.ts +60 -0
  847. package/dist/runtime/run-processors.js +185 -0
  848. package/dist/runtime/run-queue.d.ts +90 -58
  849. package/dist/runtime/run-queue.js +566 -297
  850. package/dist/runtime/run-steps.d.ts +39 -0
  851. package/dist/runtime/run-steps.js +96 -0
  852. package/dist/runtime/run-worker.d.ts +134 -77
  853. package/dist/runtime/run-worker.js +412 -237
  854. package/dist/runtime/runtime.module.d.ts +10 -0
  855. package/dist/runtime/runtime.module.js +122 -0
  856. package/dist/runtime/step-log.d.ts +51 -0
  857. package/dist/runtime/step-log.js +111 -0
  858. package/dist/runtime/stream.controller.d.ts +28 -9
  859. package/dist/runtime/stream.controller.js +72 -13
  860. package/dist/runtime/stream.d.ts +27 -6
  861. package/dist/runtime/stream.js +102 -7
  862. package/dist/runtime/subagents/child.d.ts +58 -51
  863. package/dist/runtime/subagents/child.js +105 -86
  864. package/dist/runtime/subagents/definition.d.ts +32 -28
  865. package/dist/runtime/subagents/definition.js +89 -143
  866. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  867. package/dist/runtime/subagents/deliveries.js +228 -0
  868. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  869. package/dist/runtime/subagents/dispatch.js +336 -270
  870. package/dist/runtime/subagents/limits.d.ts +32 -8
  871. package/dist/runtime/subagents/limits.js +44 -8
  872. package/dist/runtime/subagents/messages.d.ts +95 -0
  873. package/dist/runtime/subagents/messages.js +328 -0
  874. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  875. package/dist/runtime/subagents/org-agents.js +3 -2
  876. package/dist/runtime/subagents/preamble.d.ts +4 -4
  877. package/dist/runtime/subagents/preamble.js +9 -7
  878. package/dist/runtime/subagents/progress.d.ts +10 -8
  879. package/dist/runtime/subagents/progress.js +11 -6
  880. package/dist/runtime/subagents/render.d.ts +30 -0
  881. package/dist/runtime/subagents/render.js +53 -0
  882. package/dist/runtime/subagents/roster.d.ts +27 -10
  883. package/dist/runtime/subagents/roster.js +49 -13
  884. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  885. package/dist/runtime/subagents/skill-fork.js +23 -8
  886. package/dist/runtime/subagents/status.d.ts +14 -0
  887. package/dist/runtime/subagents/status.js +23 -0
  888. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  889. package/dist/runtime/subagents/subagents.service.js +106 -0
  890. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  891. package/dist/runtime/usage-report-jobs.js +158 -0
  892. package/dist/runtime/usage-report.d.ts +121 -83
  893. package/dist/runtime/usage-report.js +355 -181
  894. package/dist/runtime/waits.d.ts +258 -81
  895. package/dist/runtime/waits.js +800 -263
  896. package/dist/sandbox/job-ids.d.ts +10 -0
  897. package/dist/sandbox/job-ids.js +10 -0
  898. package/dist/sandbox/jobs.d.ts +68 -0
  899. package/dist/sandbox/jobs.js +150 -0
  900. package/dist/sandbox/leases.d.ts +73 -82
  901. package/dist/sandbox/leases.js +162 -346
  902. package/dist/sandbox/providers.d.ts +46 -0
  903. package/dist/sandbox/providers.js +83 -0
  904. package/dist/sandbox/sandbox.module.d.ts +9 -0
  905. package/dist/sandbox/sandbox.module.js +36 -0
  906. package/dist/sandbox/sandbox.service.d.ts +359 -151
  907. package/dist/sandbox/sandbox.service.js +950 -435
  908. package/dist/sandbox/unreachable.d.ts +30 -0
  909. package/dist/sandbox/unreachable.js +108 -0
  910. package/dist/skills/catalog.d.ts +40 -26
  911. package/dist/skills/catalog.js +120 -99
  912. package/dist/skills/changes.controller.d.ts +11 -4
  913. package/dist/skills/changes.controller.js +34 -9
  914. package/dist/skills/changes.service.d.ts +31 -21
  915. package/dist/skills/changes.service.js +426 -368
  916. package/dist/skills/invocable.controller.d.ts +2 -2
  917. package/dist/skills/invocable.controller.js +10 -7
  918. package/dist/skills/invocation-keys.d.ts +1 -1
  919. package/dist/skills/invocation-keys.js +1 -1
  920. package/dist/skills/invoke.d.ts +19 -18
  921. package/dist/skills/invoke.js +68 -24
  922. package/dist/skills/package.d.ts +20 -1
  923. package/dist/skills/package.js +28 -1
  924. package/dist/skills/skills.controller.d.ts +33 -7
  925. package/dist/skills/skills.controller.js +79 -12
  926. package/dist/skills/skills.module.d.ts +6 -0
  927. package/dist/skills/skills.module.js +39 -0
  928. package/dist/skills/skills.schemas.d.ts +48 -0
  929. package/dist/skills/skills.schemas.js +61 -0
  930. package/dist/skills/skills.service.d.ts +151 -44
  931. package/dist/skills/skills.service.js +636 -204
  932. package/dist/skills/usable.d.ts +81 -0
  933. package/dist/skills/usable.js +379 -0
  934. package/dist/storage/job-ids.d.ts +6 -0
  935. package/dist/storage/job-ids.js +6 -0
  936. package/dist/storage/purge.d.ts +22 -7
  937. package/dist/storage/purge.js +55 -3
  938. package/dist/storage/storage.module.d.ts +6 -0
  939. package/dist/storage/storage.module.js +23 -0
  940. package/dist/storage/storage.service.d.ts +18 -4
  941. package/dist/storage/storage.service.js +44 -3
  942. package/dist/themes/render-css.d.ts +12 -0
  943. package/dist/themes/render-css.js +132 -0
  944. package/dist/themes/theme-delivery.service.d.ts +34 -0
  945. package/dist/themes/theme-delivery.service.js +111 -0
  946. package/dist/themes/theme-state.d.ts +95 -0
  947. package/dist/themes/theme-state.js +203 -0
  948. package/dist/themes/theme-usage.d.ts +61 -0
  949. package/dist/themes/theme-usage.js +98 -0
  950. package/dist/themes/themes-public.controller.d.ts +28 -0
  951. package/dist/themes/themes-public.controller.js +92 -0
  952. package/dist/themes/themes.controller.d.ts +13 -0
  953. package/dist/themes/themes.controller.js +38 -0
  954. package/dist/themes/themes.module.d.ts +3 -0
  955. package/dist/themes/themes.module.js +21 -0
  956. package/dist/themes/themes.schemas.d.ts +3 -0
  957. package/dist/themes/themes.schemas.js +2 -0
  958. package/dist/themes/themes.service.d.ts +50 -0
  959. package/dist/themes/themes.service.js +99 -0
  960. package/dist/time-zone.d.ts +5 -0
  961. package/dist/time-zone.js +19 -0
  962. package/dist/tools/approvals.controller.d.ts +1 -1
  963. package/dist/tools/approvals.controller.js +14 -11
  964. package/dist/tools/approvals.schemas.d.ts +21 -0
  965. package/dist/tools/approvals.schemas.js +15 -0
  966. package/dist/tools/approvals.service.d.ts +53 -27
  967. package/dist/tools/approvals.service.js +365 -260
  968. package/dist/tools/breaker.d.ts +2 -2
  969. package/dist/tools/breaker.js +21 -3
  970. package/dist/tools/builtin-names.d.ts +109 -0
  971. package/dist/tools/builtin-names.js +173 -0
  972. package/dist/tools/builtins/agent.d.ts +27 -25
  973. package/dist/tools/builtins/agent.js +66 -63
  974. package/dist/tools/builtins/ask-user.d.ts +3 -3
  975. package/dist/tools/builtins/ask-user.js +3 -3
  976. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  977. package/dist/tools/builtins/builtin-tools.js +151 -0
  978. package/dist/tools/builtins/current-time.d.ts +26 -0
  979. package/dist/tools/builtins/current-time.js +99 -0
  980. package/dist/tools/builtins/handback.d.ts +28 -0
  981. package/dist/tools/builtins/handback.js +53 -0
  982. package/dist/tools/builtins/platform.d.ts +51 -0
  983. package/dist/tools/builtins/platform.js +451 -0
  984. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  985. package/dist/tools/builtins/read-tool-output.js +3 -3
  986. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  987. package/dist/tools/builtins/sandbox/bash.js +293 -41
  988. package/dist/tools/builtins/sandbox/common.d.ts +137 -37
  989. package/dist/tools/builtins/sandbox/common.js +222 -62
  990. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  991. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  992. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  993. package/dist/tools/builtins/sandbox/edit.js +65 -51
  994. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  995. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  996. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  997. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  998. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  999. package/dist/tools/builtins/sandbox/glob.js +19 -14
  1000. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  1001. package/dist/tools/builtins/sandbox/grep.js +155 -36
  1002. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  1003. package/dist/tools/builtins/sandbox/index.js +13 -5
  1004. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  1005. package/dist/tools/builtins/sandbox/read.js +30 -20
  1006. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  1007. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  1008. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  1009. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  1010. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  1011. package/dist/tools/builtins/sandbox/write.js +52 -45
  1012. package/dist/tools/builtins/send-message.d.ts +56 -0
  1013. package/dist/tools/builtins/send-message.js +100 -0
  1014. package/dist/tools/builtins/skill-load.d.ts +32 -21
  1015. package/dist/tools/builtins/skill-load.js +125 -74
  1016. package/dist/tools/builtins/skill-write.d.ts +4 -4
  1017. package/dist/tools/builtins/skill-write.js +12 -12
  1018. package/dist/tools/builtins/tool-search.d.ts +13 -9
  1019. package/dist/tools/builtins/tool-search.js +25 -14
  1020. package/dist/tools/builtins/web/errors.d.ts +8 -0
  1021. package/dist/tools/builtins/web/errors.js +53 -0
  1022. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1023. package/dist/tools/builtins/web/extract.js +271 -0
  1024. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1025. package/dist/tools/builtins/web/fetch.js +175 -0
  1026. package/dist/tools/builtins/web/index.d.ts +13 -0
  1027. package/dist/tools/builtins/web/index.js +12 -0
  1028. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1029. package/dist/tools/builtins/web/page-cache.js +77 -0
  1030. package/dist/tools/builtins/web/search.d.ts +25 -0
  1031. package/dist/tools/builtins/web/search.js +210 -0
  1032. package/dist/tools/builtins/web/url.d.ts +17 -0
  1033. package/dist/tools/builtins/web/url.js +43 -0
  1034. package/dist/tools/canonical-json.d.ts +6 -0
  1035. package/dist/tools/canonical-json.js +16 -0
  1036. package/dist/tools/connector-content.controller.d.ts +1 -1
  1037. package/dist/tools/connector-content.controller.js +11 -6
  1038. package/dist/tools/connector-content.d.ts +12 -15
  1039. package/dist/tools/connector-content.js +53 -18
  1040. package/dist/tools/connectors.controller.d.ts +16 -3
  1041. package/dist/tools/connectors.controller.js +34 -14
  1042. package/dist/tools/connectors.schemas.d.ts +12 -0
  1043. package/dist/tools/connectors.schemas.js +19 -0
  1044. package/dist/tools/connectors.service.d.ts +80 -18
  1045. package/dist/tools/connectors.service.js +529 -358
  1046. package/dist/tools/credentials.d.ts +20 -20
  1047. package/dist/tools/credentials.js +55 -34
  1048. package/dist/tools/display-names.d.ts +9 -0
  1049. package/dist/tools/display-names.js +24 -0
  1050. package/dist/tools/drift.d.ts +29 -41
  1051. package/dist/tools/drift.js +116 -84
  1052. package/dist/tools/elicitation.js +1 -1
  1053. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1054. package/dist/tools/extension-tools.controller.js +37 -0
  1055. package/dist/tools/info.d.ts +73 -13
  1056. package/dist/tools/info.js +151 -39
  1057. package/dist/tools/job-ids.d.ts +13 -0
  1058. package/dist/tools/job-ids.js +15 -0
  1059. package/dist/tools/jobs.d.ts +24 -0
  1060. package/dist/tools/jobs.js +69 -0
  1061. package/dist/tools/legacy-data.d.ts +34 -0
  1062. package/dist/tools/legacy-data.js +76 -0
  1063. package/dist/tools/legacy-keys.d.ts +51 -0
  1064. package/dist/tools/legacy-keys.js +115 -0
  1065. package/dist/tools/naming.d.ts +1 -5
  1066. package/dist/tools/naming.js +1 -7
  1067. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1068. package/dist/tools/oauth/flow-paths.js +38 -0
  1069. package/dist/tools/oauth/flow.d.ts +30 -30
  1070. package/dist/tools/oauth/flow.js +109 -81
  1071. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1072. package/dist/tools/oauth/oauth.controller.js +12 -9
  1073. package/dist/tools/oauth/tokens.d.ts +45 -10
  1074. package/dist/tools/oauth/tokens.js +70 -24
  1075. package/dist/tools/org-tool-switches.d.ts +88 -0
  1076. package/dist/tools/org-tool-switches.js +201 -0
  1077. package/dist/tools/outputs.d.ts +13 -4
  1078. package/dist/tools/outputs.js +48 -4
  1079. package/dist/tools/pipeline.d.ts +108 -80
  1080. package/dist/tools/pipeline.js +396 -409
  1081. package/dist/tools/policy.d.ts +4 -17
  1082. package/dist/tools/policy.js +49 -35
  1083. package/dist/tools/questions.controller.d.ts +2 -2
  1084. package/dist/tools/questions.controller.js +9 -6
  1085. package/dist/tools/questions.service.d.ts +26 -25
  1086. package/dist/tools/questions.service.js +201 -142
  1087. package/dist/tools/registry.d.ts +215 -84
  1088. package/dist/tools/registry.js +382 -264
  1089. package/dist/tools/resources.d.ts +1 -1
  1090. package/dist/tools/resources.js +1 -1
  1091. package/dist/tools/specs.d.ts +5 -4
  1092. package/dist/tools/specs.js +3 -1
  1093. package/dist/tools/tools.module.d.ts +10 -0
  1094. package/dist/tools/tools.module.js +113 -0
  1095. package/dist/tools/validate.js +1 -1
  1096. package/dist/ui/call-extension.d.ts +16 -0
  1097. package/dist/ui/call-extension.js +38 -0
  1098. package/dist/ui/embed-token.d.ts +9 -5
  1099. package/dist/ui/embed-token.js +34 -6
  1100. package/dist/ui/ui-stream.d.ts +22 -17
  1101. package/dist/ui/ui-stream.js +72 -12
  1102. package/dist/ui/ui.module.d.ts +7 -0
  1103. package/dist/ui/ui.module.js +28 -0
  1104. package/dist/ui/views.controller.d.ts +14 -12
  1105. package/dist/ui/views.controller.js +32 -25
  1106. package/dist/ui/views.d.ts +10 -57
  1107. package/dist/ui/views.js +58 -46
  1108. package/package.json +13 -3
  1109. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1110. package/src/migrations/0064_account_last_org.sql +7 -0
  1111. package/src/migrations/0065_conversation_archive.sql +8 -0
  1112. package/src/migrations/0066_extension_display_name.sql +4 -0
  1113. package/src/migrations/0067_agent_profiles.sql +20 -0
  1114. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1115. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1116. package/src/migrations/0070_background_tasks.sql +37 -0
  1117. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1118. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1119. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1120. package/src/migrations/0074_subagent_tree.sql +50 -0
  1121. package/src/migrations/0075_plugin_scope.sql +61 -0
  1122. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1123. package/src/migrations/0077_scope_requests.sql +52 -0
  1124. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1125. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1126. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1127. package/src/migrations/0081_platform_components.sql +129 -0
  1128. package/src/migrations/0082_platform_migration.sql +33 -0
  1129. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1130. package/src/migrations/0084_org_owned_items.sql +85 -0
  1131. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1132. package/src/migrations/0086_org_layering.sql +30 -0
  1133. package/src/migrations/0087_approval_summary.sql +6 -0
  1134. package/src/migrations/0088_environments.sql +80 -0
  1135. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1136. package/src/migrations/0090_initial_passwords.sql +27 -0
  1137. package/src/migrations/0091_account_time_zone.sql +4 -0
  1138. package/src/migrations/0092_tools_default_on.sql +27 -0
  1139. package/src/migrations/0093_connected_environments.sql +37 -0
  1140. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1141. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1142. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1143. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1144. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1145. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1146. package/src/migrations/0100_catalog_files.sql +13 -0
  1147. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1148. package/src/migrations/0102_themes.sql +64 -0
  1149. package/src/migrations/0103_ui_theme_setting.sql +7 -0
  1150. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1151. package/dist/catalog/upgrade-targets.js +0 -90
  1152. package/dist/conversations/sandbox-status.d.ts +0 -21
  1153. package/dist/conversations/sandbox-status.js +0 -24
  1154. package/dist/extensions/org-config.controller.d.ts +0 -24
  1155. package/dist/extensions/org-config.controller.js +0 -59
  1156. package/dist/http/gateway.module.js +0 -13
  1157. package/dist/http/health.controller.d.ts +0 -26
  1158. package/dist/http/health.controller.js +0 -79
  1159. package/dist/http/tokens.d.ts +0 -131
  1160. package/dist/http/tokens.js +0 -131
  1161. package/dist/http/zod.pipe.d.ts +0 -8
  1162. package/dist/http/zod.pipe.js +0 -14
  1163. package/dist/identity/enterprise-admin.d.ts +0 -14
  1164. package/dist/identity/enterprise-admin.js +0 -27
  1165. package/dist/identity/rate-limit.d.ts +0 -55
  1166. package/dist/identity/rate-limit.js +0 -121
  1167. package/dist/sandbox/lifecycle.d.ts +0 -21
  1168. package/dist/sandbox/lifecycle.js +0 -68
  1169. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1170. 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
+ }