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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1146) hide show
  1. package/bootstrap.json +85 -5
  2. package/dist/admin/admin.controller.d.ts +52 -71
  3. package/dist/admin/admin.controller.js +117 -63
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/admin.schemas.d.ts +57 -0
  7. package/dist/admin/admin.schemas.js +50 -0
  8. package/dist/admin/extensions.controller.d.ts +47 -16
  9. package/dist/admin/extensions.controller.js +94 -23
  10. package/dist/admin/extensions.schemas.d.ts +7 -0
  11. package/dist/admin/extensions.schemas.js +10 -0
  12. package/dist/admin/limit-defaults.d.ts +20 -0
  13. package/dist/admin/limit-defaults.js +10 -0
  14. package/dist/admin/setup-lock.d.ts +16 -0
  15. package/dist/admin/setup-lock.js +47 -0
  16. package/dist/admin/setup.controller.d.ts +9 -9
  17. package/dist/admin/setup.controller.js +28 -26
  18. package/dist/admin/setup.service.d.ts +20 -28
  19. package/dist/admin/setup.service.js +65 -65
  20. package/dist/agents/agent-lookup.d.ts +72 -0
  21. package/dist/agents/agent-lookup.js +208 -0
  22. package/dist/agents/agent-profile.service.d.ts +31 -0
  23. package/dist/agents/agent-profile.service.js +122 -0
  24. package/dist/agents/agents.controller.d.ts +54 -169
  25. package/dist/agents/agents.controller.js +172 -37
  26. package/dist/agents/agents.module.d.ts +10 -0
  27. package/dist/agents/agents.module.js +71 -0
  28. package/dist/agents/agents.schemas.d.ts +389 -0
  29. package/dist/agents/agents.schemas.js +126 -0
  30. package/dist/agents/agents.service.d.ts +104 -76
  31. package/dist/agents/agents.service.js +509 -383
  32. package/dist/agents/definition.d.ts +133 -21
  33. package/dist/agents/definition.js +361 -41
  34. package/dist/agents/from-template.d.ts +106 -0
  35. package/dist/agents/from-template.js +680 -0
  36. package/dist/agents/from-template.service.d.ts +72 -0
  37. package/dist/agents/from-template.service.js +178 -0
  38. package/dist/agents/instruction-files.d.ts +60 -0
  39. package/dist/agents/instruction-files.js +111 -0
  40. package/dist/agents/models.controller.d.ts +44 -6
  41. package/dist/agents/models.controller.js +84 -8
  42. package/dist/agents/org-templates.d.ts +186 -0
  43. package/dist/agents/org-templates.js +868 -0
  44. package/dist/agents/pending-connector-requests.d.ts +79 -0
  45. package/dist/agents/pending-connector-requests.js +215 -0
  46. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  47. package/dist/agents/pending-connectors.controller.js +91 -0
  48. package/dist/agents/pending-connectors.service.d.ts +62 -0
  49. package/dist/agents/pending-connectors.service.js +282 -0
  50. package/dist/agents/profile.d.ts +114 -0
  51. package/dist/agents/profile.js +55 -0
  52. package/dist/agents/readiness.controller.d.ts +26 -0
  53. package/dist/agents/readiness.controller.js +56 -0
  54. package/dist/agents/templates.controller.d.ts +78 -6
  55. package/dist/agents/templates.controller.js +154 -8
  56. package/dist/agents/templates.d.ts +132 -30
  57. package/dist/agents/templates.js +500 -46
  58. package/dist/agents/templates.schemas.d.ts +20 -0
  59. package/dist/agents/templates.schemas.js +45 -0
  60. package/dist/app.d.ts +93 -0
  61. package/dist/app.js +150 -0
  62. package/dist/background/background.controller.d.ts +38 -0
  63. package/dist/background/background.controller.js +88 -0
  64. package/dist/background/background.module.d.ts +10 -0
  65. package/dist/background/background.module.js +39 -0
  66. package/dist/background/background.schemas.d.ts +10 -0
  67. package/dist/background/background.schemas.js +16 -0
  68. package/dist/background/finish.d.ts +44 -0
  69. package/dist/background/finish.js +95 -0
  70. package/dist/background/launch-lock.d.ts +15 -0
  71. package/dist/background/launch-lock.js +40 -0
  72. package/dist/background/launch.d.ts +42 -0
  73. package/dist/background/launch.js +77 -0
  74. package/dist/background/poll.job.d.ts +56 -0
  75. package/dist/background/poll.job.js +195 -0
  76. package/dist/background/render.d.ts +23 -0
  77. package/dist/background/render.js +48 -0
  78. package/dist/background/session.d.ts +48 -0
  79. package/dist/background/session.js +80 -0
  80. package/dist/background/status.d.ts +35 -0
  81. package/dist/background/status.js +57 -0
  82. package/dist/background/stop.d.ts +68 -0
  83. package/dist/background/stop.js +244 -0
  84. package/dist/background/store.d.ts +167 -0
  85. package/dist/background/store.js +361 -0
  86. package/dist/background/store.module.d.ts +6 -0
  87. package/dist/background/store.module.js +22 -0
  88. package/dist/background/tasks.service.d.ts +77 -0
  89. package/dist/background/tasks.service.js +216 -0
  90. package/dist/background/wake-rules.d.ts +66 -0
  91. package/dist/background/wake-rules.js +113 -0
  92. package/dist/background/wake.d.ts +30 -0
  93. package/dist/background/wake.js +63 -0
  94. package/dist/catalog/admin-catalog.controller.d.ts +102 -52
  95. package/dist/catalog/admin-catalog.controller.js +222 -67
  96. package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
  97. package/dist/catalog/admin-catalog.schemas.js +92 -0
  98. package/dist/catalog/catalog-content.d.ts +232 -0
  99. package/dist/catalog/catalog-content.js +367 -0
  100. package/dist/catalog/catalog-files.d.ts +41 -0
  101. package/dist/catalog/catalog-files.js +86 -0
  102. package/dist/catalog/catalog-import.module.d.ts +7 -0
  103. package/dist/catalog/catalog-import.module.js +60 -0
  104. package/dist/catalog/catalog-items.d.ts +290 -0
  105. package/dist/catalog/catalog-items.js +676 -0
  106. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  107. package/dist/catalog/catalog-scope.service.js +1124 -0
  108. package/dist/catalog/catalog.module.d.ts +12 -0
  109. package/dist/catalog/catalog.module.js +81 -0
  110. package/dist/catalog/catalog.service.d.ts +141 -206
  111. package/dist/catalog/catalog.service.js +237 -528
  112. package/dist/catalog/claude/agents.js +15 -10
  113. package/dist/catalog/cli.d.ts +14 -3
  114. package/dist/catalog/cli.js +39 -32
  115. package/dist/catalog/component-promotion.d.ts +96 -0
  116. package/dist/catalog/component-promotion.js +395 -0
  117. package/dist/catalog/component-scope.controller.d.ts +90 -0
  118. package/dist/catalog/component-scope.controller.js +234 -0
  119. package/dist/catalog/component-scope.schemas.d.ts +114 -0
  120. package/dist/catalog/component-scope.schemas.js +97 -0
  121. package/dist/catalog/component-scope.service.d.ts +327 -0
  122. package/dist/catalog/component-scope.service.js +990 -0
  123. package/dist/catalog/component-state.d.ts +188 -0
  124. package/dist/catalog/component-state.js +455 -0
  125. package/dist/catalog/git-source.d.ts +9 -1
  126. package/dist/catalog/git-source.js +29 -2
  127. package/dist/catalog/job-ids.d.ts +45 -0
  128. package/dist/catalog/job-ids.js +40 -0
  129. package/dist/catalog/jobs.d.ts +27 -0
  130. package/dist/catalog/jobs.js +70 -0
  131. package/dist/catalog/locks.d.ts +24 -0
  132. package/dist/catalog/locks.js +63 -0
  133. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  134. package/dist/catalog/marketplace-icons.d.ts +64 -0
  135. package/dist/catalog/marketplace-icons.js +131 -0
  136. package/dist/catalog/marketplaces.controller.d.ts +53 -44
  137. package/dist/catalog/marketplaces.controller.js +146 -51
  138. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  139. package/dist/catalog/marketplaces.schemas.js +53 -0
  140. package/dist/catalog/marketplaces.service.d.ts +136 -26
  141. package/dist/catalog/marketplaces.service.js +663 -281
  142. package/dist/catalog/org-catalog.controller.d.ts +115 -63
  143. package/dist/catalog/org-catalog.controller.js +207 -100
  144. package/dist/catalog/org-catalog.schemas.d.ts +88 -0
  145. package/dist/catalog/org-catalog.schemas.js +93 -0
  146. package/dist/catalog/org-catalog.service.d.ts +89 -216
  147. package/dist/catalog/org-catalog.service.js +431 -472
  148. package/dist/catalog/org-extension-switch.d.ts +41 -0
  149. package/dist/catalog/org-extension-switch.js +115 -0
  150. package/dist/catalog/org-extension.controller.d.ts +113 -0
  151. package/dist/catalog/org-extension.controller.js +271 -0
  152. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  153. package/dist/catalog/org-extension.schemas.js +22 -0
  154. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  155. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  156. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  157. package/dist/catalog/org-plugin-uploads.js +122 -0
  158. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  159. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  160. package/dist/catalog/owned-items.d.ts +188 -0
  161. package/dist/catalog/owned-items.js +801 -0
  162. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  163. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  164. package/dist/catalog/ownership.d.ts +172 -0
  165. package/dist/catalog/ownership.js +326 -0
  166. package/dist/catalog/platform-components.d.ts +223 -0
  167. package/dist/catalog/platform-components.js +763 -0
  168. package/dist/catalog/platform-migration.d.ts +115 -0
  169. package/dist/catalog/platform-migration.js +582 -0
  170. package/dist/catalog/plugin-import.d.ts +270 -68
  171. package/dist/catalog/plugin-import.js +1004 -277
  172. package/dist/catalog/plugin-install.d.ts +251 -65
  173. package/dist/catalog/plugin-install.js +1128 -344
  174. package/dist/catalog/plugin-package.js +14 -1
  175. package/dist/catalog/plugin-upgrade.d.ts +301 -188
  176. package/dist/catalog/plugin-upgrade.js +1256 -1068
  177. package/dist/catalog/request-rules.d.ts +65 -0
  178. package/dist/catalog/request-rules.js +217 -0
  179. package/dist/catalog/requests.service.d.ts +205 -117
  180. package/dist/catalog/requests.service.js +612 -369
  181. package/dist/catalog/reserved-names.d.ts +8 -0
  182. package/dist/catalog/reserved-names.js +42 -0
  183. package/dist/catalog/scope-orgs.d.ts +21 -0
  184. package/dist/catalog/scope-orgs.js +67 -0
  185. package/dist/catalog/scope-state.d.ts +35 -0
  186. package/dist/catalog/scope-state.js +87 -0
  187. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  188. package/dist/catalog/scope-sync-workers.js +29 -0
  189. package/dist/catalog/scope-sync.d.ts +176 -0
  190. package/dist/catalog/scope-sync.js +576 -0
  191. package/dist/catalog/scope.d.ts +42 -0
  192. package/dist/catalog/scope.js +42 -0
  193. package/dist/catalog/unshare.d.ts +22 -0
  194. package/dist/catalog/unshare.js +118 -0
  195. package/dist/channels/actions.d.ts +6 -4
  196. package/dist/channels/actions.js +11 -4
  197. package/dist/channels/cards.d.ts +33 -11
  198. package/dist/channels/cards.js +96 -24
  199. package/dist/channels/channels.module.d.ts +40 -0
  200. package/dist/channels/channels.module.js +130 -0
  201. package/dist/channels/channels.schemas.d.ts +37 -0
  202. package/dist/channels/channels.schemas.js +38 -0
  203. package/dist/channels/connections.controller.d.ts +44 -37
  204. package/dist/channels/connections.controller.js +83 -38
  205. package/dist/channels/connections.service.d.ts +101 -30
  206. package/dist/channels/connections.service.js +380 -147
  207. package/dist/channels/inbound.d.ts +44 -38
  208. package/dist/channels/inbound.js +190 -44
  209. package/dist/channels/job-ids.d.ts +10 -0
  210. package/dist/channels/job-ids.js +10 -0
  211. package/dist/channels/jobs.d.ts +85 -0
  212. package/dist/channels/jobs.js +157 -0
  213. package/dist/channels/outbound.d.ts +71 -80
  214. package/dist/channels/outbound.js +219 -202
  215. package/dist/channels/phrases.d.ts +33 -2
  216. package/dist/channels/phrases.js +29 -1
  217. package/dist/channels/supervisor.d.ts +88 -46
  218. package/dist/channels/supervisor.js +230 -132
  219. package/dist/channels/threads.d.ts +34 -8
  220. package/dist/channels/threads.js +79 -13
  221. package/dist/channels/webhook.d.ts +20 -14
  222. package/dist/channels/webhook.js +51 -20
  223. package/dist/config/docs.js +5 -1
  224. package/dist/config/load.d.ts +3 -2
  225. package/dist/config/load.js +3 -2
  226. package/dist/config/nacos-source.js +11 -2
  227. package/dist/config/schema.d.ts +36 -2
  228. package/dist/config/schema.js +226 -25
  229. package/dist/conversations/access.d.ts +31 -0
  230. package/dist/conversations/access.js +110 -0
  231. package/dist/conversations/agent-tree.d.ts +46 -0
  232. package/dist/conversations/agent-tree.js +92 -0
  233. package/dist/conversations/artifacts.d.ts +11 -11
  234. package/dist/conversations/artifacts.js +36 -10
  235. package/dist/conversations/attachments.controller.d.ts +1 -1
  236. package/dist/conversations/attachments.controller.js +8 -6
  237. package/dist/conversations/attachments.module.d.ts +7 -0
  238. package/dist/conversations/attachments.module.js +25 -0
  239. package/dist/conversations/attachments.service.d.ts +60 -22
  240. package/dist/conversations/attachments.service.js +249 -51
  241. package/dist/conversations/conversations.controller.d.ts +86 -50
  242. package/dist/conversations/conversations.controller.js +184 -103
  243. package/dist/conversations/conversations.module.d.ts +8 -0
  244. package/dist/conversations/conversations.module.js +72 -0
  245. package/dist/conversations/conversations.schemas.d.ts +52 -0
  246. package/dist/conversations/conversations.schemas.js +79 -0
  247. package/dist/conversations/conversations.service.d.ts +166 -49
  248. package/dist/conversations/conversations.service.js +383 -179
  249. package/dist/conversations/environment-status.d.ts +24 -0
  250. package/dist/conversations/environment-status.js +71 -0
  251. package/dist/conversations/event-log.d.ts +64 -27
  252. package/dist/conversations/event-log.js +167 -31
  253. package/dist/conversations/events.d.ts +252 -9
  254. package/dist/conversations/events.js +243 -32
  255. package/dist/conversations/files.d.ts +10 -10
  256. package/dist/conversations/files.js +37 -11
  257. package/dist/conversations/idem-keys.d.ts +5 -0
  258. package/dist/conversations/idem-keys.js +5 -0
  259. package/dist/conversations/job-ids.d.ts +6 -0
  260. package/dist/conversations/job-ids.js +6 -0
  261. package/dist/conversations/message-context.d.ts +79 -0
  262. package/dist/conversations/message-context.js +145 -0
  263. package/dist/conversations/outputs-read.d.ts +11 -11
  264. package/dist/conversations/outputs-read.js +31 -7
  265. package/dist/conversations/queue.d.ts +53 -58
  266. package/dist/conversations/queue.js +37 -293
  267. package/dist/conversations/queue.service.d.ts +60 -0
  268. package/dist/conversations/queue.service.js +350 -0
  269. package/dist/conversations/titles.d.ts +83 -27
  270. package/dist/conversations/titles.js +195 -71
  271. package/dist/conversations/tree.d.ts +17 -0
  272. package/dist/conversations/tree.js +42 -0
  273. package/dist/ctx/bus.js +9 -3
  274. package/dist/ctx/create-ctx.d.ts +26 -1
  275. package/dist/ctx/create-ctx.js +45 -16
  276. package/dist/ctx/lock.d.ts +7 -3
  277. package/dist/ctx/lock.js +9 -20
  278. package/dist/ctx/secrets.d.ts +10 -2
  279. package/dist/ctx/secrets.js +7 -3
  280. package/dist/db/kernel-schema.d.ts +550 -25
  281. package/dist/db/pool.d.ts +10 -0
  282. package/dist/db/pool.js +4 -0
  283. package/dist/devices/device-auth.controller.d.ts +42 -0
  284. package/dist/devices/device-auth.controller.js +116 -0
  285. package/dist/devices/device-auth.d.ts +119 -0
  286. package/dist/devices/device-auth.js +403 -0
  287. package/dist/devices/device-auth.module.d.ts +7 -0
  288. package/dist/devices/device-auth.module.js +25 -0
  289. package/dist/devices/device-gateway.d.ts +128 -0
  290. package/dist/devices/device-gateway.js +530 -0
  291. package/dist/devices/device-provider.d.ts +89 -0
  292. package/dist/devices/device-provider.js +151 -0
  293. package/dist/devices/device-routes.d.ts +36 -0
  294. package/dist/devices/device-routes.js +90 -0
  295. package/dist/devices/devices.module.d.ts +16 -0
  296. package/dist/devices/devices.module.js +44 -0
  297. package/dist/devices/dto.d.ts +66 -0
  298. package/dist/devices/dto.js +44 -0
  299. package/dist/devices/keys.d.ts +25 -0
  300. package/dist/devices/keys.js +25 -0
  301. package/dist/devices/machines.d.ts +118 -0
  302. package/dist/devices/machines.js +366 -0
  303. package/dist/devices/relay.d.ts +100 -0
  304. package/dist/devices/relay.js +373 -0
  305. package/dist/devices/targets.d.ts +28 -0
  306. package/dist/devices/targets.js +73 -0
  307. package/dist/environments/access.d.ts +66 -0
  308. package/dist/environments/access.js +113 -0
  309. package/dist/environments/conversation-environments.d.ts +75 -0
  310. package/dist/environments/conversation-environments.js +231 -0
  311. package/dist/environments/dto.d.ts +25 -0
  312. package/dist/environments/dto.js +12 -0
  313. package/dist/environments/environments.controller.d.ts +36 -0
  314. package/dist/environments/environments.controller.js +124 -0
  315. package/dist/environments/environments.module.d.ts +8 -0
  316. package/dist/environments/environments.module.js +31 -0
  317. package/dist/environments/environments.schemas.d.ts +3 -0
  318. package/dist/environments/environments.schemas.js +14 -0
  319. package/dist/environments/environments.service.d.ts +251 -0
  320. package/dist/environments/environments.service.js +791 -0
  321. package/dist/environments/label.d.ts +11 -0
  322. package/dist/environments/label.js +25 -0
  323. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  324. package/dist/environments/legacy-cleanup.job.js +141 -0
  325. package/dist/errors.d.ts +135 -2
  326. package/dist/errors.js +135 -2
  327. package/dist/evals/budget.d.ts +42 -21
  328. package/dist/evals/budget.js +114 -62
  329. package/dist/evals/evals.module.d.ts +31 -0
  330. package/dist/evals/evals.module.js +114 -0
  331. package/dist/evals/evals.schemas.d.ts +110 -0
  332. package/dist/evals/evals.schemas.js +107 -0
  333. package/dist/evals/jobs.d.ts +20 -0
  334. package/dist/evals/jobs.js +45 -0
  335. package/dist/evals/reconstruct.d.ts +18 -9
  336. package/dist/evals/reconstruct.js +36 -10
  337. package/dist/evals/recorded-tools.d.ts +37 -1
  338. package/dist/evals/recorded-tools.js +120 -10
  339. package/dist/evals/run-replay.d.ts +75 -10
  340. package/dist/evals/run-replay.js +218 -94
  341. package/dist/evals/runs.controller.d.ts +3 -58
  342. package/dist/evals/runs.controller.js +18 -50
  343. package/dist/evals/runs.service.d.ts +31 -52
  344. package/dist/evals/runs.service.js +281 -255
  345. package/dist/evals/sets.controller.d.ts +3 -29
  346. package/dist/evals/sets.controller.js +18 -39
  347. package/dist/evals/sets.service.d.ts +29 -13
  348. package/dist/evals/sets.service.js +262 -202
  349. package/dist/evals/snapshot.d.ts +5 -4
  350. package/dist/evals/snapshot.js +17 -4
  351. package/dist/evals/step-replay.d.ts +6 -8
  352. package/dist/evals/step-replay.js +17 -10
  353. package/dist/evals/trajectory.controller.d.ts +1 -1
  354. package/dist/evals/trajectory.controller.js +11 -7
  355. package/dist/evals/trajectory.d.ts +2 -2
  356. package/dist/evals/trajectory.js +1 -1
  357. package/dist/evals/trajectory.service.d.ts +13 -7
  358. package/dist/evals/trajectory.service.js +56 -21
  359. package/dist/evals/worker.d.ts +48 -31
  360. package/dist/evals/worker.js +229 -124
  361. package/dist/extensions/admin-ops.d.ts +133 -41
  362. package/dist/extensions/admin-ops.js +378 -172
  363. package/dist/extensions/admin-view.d.ts +82 -32
  364. package/dist/extensions/admin-view.js +284 -71
  365. package/dist/extensions/approvals.d.ts +24 -10
  366. package/dist/extensions/approvals.js +73 -46
  367. package/dist/extensions/blobs.d.ts +27 -10
  368. package/dist/extensions/blobs.js +112 -45
  369. package/dist/extensions/bootstrap.d.ts +99 -36
  370. package/dist/extensions/bootstrap.js +290 -134
  371. package/dist/extensions/cli.d.ts +32 -10
  372. package/dist/extensions/cli.js +52 -98
  373. package/dist/extensions/config-hash.d.ts +10 -0
  374. package/dist/extensions/config-hash.js +38 -0
  375. package/dist/extensions/config-issues.d.ts +19 -0
  376. package/dist/extensions/config-issues.js +48 -0
  377. package/dist/extensions/config-json-schema.d.ts +43 -7
  378. package/dist/extensions/config-json-schema.js +124 -58
  379. package/dist/extensions/deployment-config-store.d.ts +55 -0
  380. package/dist/extensions/deployment-config-store.js +133 -0
  381. package/dist/extensions/deployment-config.d.ts +146 -70
  382. package/dist/extensions/deployment-config.js +439 -246
  383. package/dist/extensions/display-name.d.ts +22 -0
  384. package/dist/extensions/display-name.js +77 -0
  385. package/dist/extensions/effective-config.d.ts +127 -0
  386. package/dist/extensions/effective-config.js +368 -0
  387. package/dist/extensions/enabled.d.ts +5 -5
  388. package/dist/extensions/extensions.module.d.ts +8 -0
  389. package/dist/extensions/extensions.module.js +96 -0
  390. package/dist/extensions/hooks.d.ts +40 -6
  391. package/dist/extensions/hooks.js +83 -17
  392. package/dist/extensions/host.d.ts +161 -80
  393. package/dist/extensions/host.js +505 -213
  394. package/dist/extensions/installs.d.ts +73 -19
  395. package/dist/extensions/installs.js +174 -37
  396. package/dist/extensions/job-ids.d.ts +6 -0
  397. package/dist/extensions/job-ids.js +6 -0
  398. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  399. package/dist/extensions/lifecycle-topics.js +18 -0
  400. package/dist/extensions/lifecycle.d.ts +35 -47
  401. package/dist/extensions/lifecycle.js +103 -39
  402. package/dist/extensions/locks.d.ts +45 -0
  403. package/dist/extensions/locks.js +112 -0
  404. package/dist/extensions/migrate-lock.d.ts +3 -4
  405. package/dist/extensions/org-config.d.ts +141 -49
  406. package/dist/extensions/org-config.js +471 -243
  407. package/dist/extensions/org-levels.d.ts +37 -0
  408. package/dist/extensions/org-levels.js +71 -0
  409. package/dist/extensions/org-overrides.d.ts +151 -0
  410. package/dist/extensions/org-overrides.js +524 -0
  411. package/dist/extensions/package.d.ts +14 -1
  412. package/dist/extensions/package.js +51 -2
  413. package/dist/extensions/permission-view.d.ts +59 -6
  414. package/dist/extensions/permission-view.js +7 -5
  415. package/dist/extensions/plugin-guides.d.ts +129 -0
  416. package/dist/extensions/plugin-guides.js +283 -0
  417. package/dist/extensions/plugin-icons.d.ts +54 -0
  418. package/dist/extensions/plugin-icons.js +125 -0
  419. package/dist/extensions/plugin-items.d.ts +21 -0
  420. package/dist/extensions/plugin-items.js +42 -0
  421. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  422. package/dist/extensions/point-defaults.controller.js +69 -0
  423. package/dist/extensions/point-defaults.d.ts +73 -0
  424. package/dist/extensions/point-defaults.js +236 -0
  425. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  426. package/dist/extensions/point-defaults.schemas.js +14 -0
  427. package/dist/extensions/registry.d.ts +50 -2
  428. package/dist/extensions/registry.js +91 -4
  429. package/dist/extensions/resolve.d.ts +51 -1
  430. package/dist/extensions/resolve.js +85 -3
  431. package/dist/extensions/single-provider.d.ts +92 -0
  432. package/dist/extensions/single-provider.js +180 -0
  433. package/dist/extensions/sources.d.ts +19 -10
  434. package/dist/extensions/sources.js +34 -13
  435. package/dist/extensions/state.module.d.ts +9 -0
  436. package/dist/extensions/state.module.js +38 -0
  437. package/dist/extensions/unavailable.d.ts +50 -0
  438. package/dist/extensions/unavailable.js +115 -0
  439. package/dist/files/files.module.d.ts +3 -0
  440. package/dist/files/files.module.js +22 -0
  441. package/dist/files/previewers.controller.d.ts +7 -2
  442. package/dist/files/previewers.controller.js +19 -12
  443. package/dist/files/previewers.d.ts +21 -19
  444. package/dist/files/previewers.js +114 -38
  445. package/dist/files/previewers.schemas.d.ts +10 -0
  446. package/dist/files/previewers.schemas.js +9 -0
  447. package/dist/http/adapter.d.ts +3 -0
  448. package/dist/http/adapter.js +25 -0
  449. package/dist/http/api.module.d.ts +3 -110
  450. package/dist/http/api.module.js +86 -358
  451. package/dist/http/app.d.ts +22 -17
  452. package/dist/http/app.js +46 -65
  453. package/dist/http/error-filter.module.d.ts +5 -0
  454. package/dist/http/error-filter.module.js +18 -0
  455. package/dist/http/error.filter.js +2 -2
  456. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  457. package/dist/http/gateway-routes.js +16 -0
  458. package/dist/http/nest-logger.d.ts +6 -5
  459. package/dist/http/nest-logger.js +24 -10
  460. package/dist/http/plugin-dispatch.d.ts +4 -1
  461. package/dist/http/plugin-dispatch.js +14 -2
  462. package/dist/identity/accounts.d.ts +130 -38
  463. package/dist/identity/accounts.js +373 -186
  464. package/dist/identity/api-tokens.d.ts +11 -7
  465. package/dist/identity/api-tokens.js +71 -44
  466. package/dist/identity/audit.d.ts +9 -5
  467. package/dist/identity/audit.js +5 -1
  468. package/dist/identity/auth.controller.d.ts +11 -10
  469. package/dist/identity/auth.controller.js +40 -30
  470. package/dist/identity/auth.guard.d.ts +16 -8
  471. package/dist/identity/auth.guard.js +41 -13
  472. package/dist/identity/binding.d.ts +9 -11
  473. package/dist/identity/binding.js +41 -13
  474. package/dist/identity/cookies.d.ts +26 -5
  475. package/dist/identity/cookies.js +58 -6
  476. package/dist/identity/external-identity-lock.d.ts +17 -0
  477. package/dist/identity/external-identity-lock.js +39 -0
  478. package/dist/identity/external.d.ts +19 -15
  479. package/dist/identity/external.js +163 -125
  480. package/dist/identity/identity.module.d.ts +6 -0
  481. package/dist/identity/identity.module.js +59 -0
  482. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  483. package/dist/identity/initial-passwords.controller.js +49 -0
  484. package/dist/identity/initial-passwords.d.ts +61 -0
  485. package/dist/identity/initial-passwords.job.d.ts +16 -0
  486. package/dist/identity/initial-passwords.job.js +46 -0
  487. package/dist/identity/initial-passwords.js +159 -0
  488. package/dist/identity/me.controller.d.ts +32 -15
  489. package/dist/identity/me.controller.js +78 -33
  490. package/dist/identity/me.schemas.d.ts +14 -0
  491. package/dist/identity/me.schemas.js +17 -0
  492. package/dist/identity/principal.d.ts +11 -3
  493. package/dist/identity/principal.js +11 -3
  494. package/dist/identity/sessions.d.ts +24 -10
  495. package/dist/identity/sessions.js +119 -42
  496. package/dist/identity/settings.d.ts +42 -23
  497. package/dist/identity/settings.js +137 -72
  498. package/dist/identity/sso.controller.d.ts +7 -7
  499. package/dist/identity/sso.controller.js +13 -9
  500. package/dist/identity/sso.d.ts +9 -12
  501. package/dist/identity/sso.js +54 -24
  502. package/dist/identity/super-admin.d.ts +20 -0
  503. package/dist/identity/super-admin.js +81 -0
  504. package/dist/inbox/inbox.module.d.ts +6 -0
  505. package/dist/inbox/inbox.module.js +26 -0
  506. package/dist/inbox/inbox.schemas.d.ts +8 -0
  507. package/dist/inbox/inbox.schemas.js +11 -0
  508. package/dist/inbox/inbox.service.d.ts +68 -11
  509. package/dist/inbox/inbox.service.js +104 -13
  510. package/dist/inbox/org-notices.d.ts +63 -0
  511. package/dist/inbox/org-notices.js +91 -0
  512. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  513. package/dist/inbox/platform-inbox.controller.js +58 -0
  514. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  515. package/dist/inbox/platform-inbox.service.js +263 -0
  516. package/dist/inbox/platform-notices.d.ts +19 -0
  517. package/dist/inbox/platform-notices.js +9 -0
  518. package/dist/index.d.ts +22 -13
  519. package/dist/index.js +16 -7
  520. package/dist/infra/cache/cache.module.d.ts +3 -0
  521. package/dist/infra/cache/cache.module.js +16 -0
  522. package/dist/infra/cache/cache.service.d.ts +21 -0
  523. package/dist/infra/cache/cache.service.js +80 -0
  524. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  525. package/dist/infra/cache/cacheable.decorator.js +83 -0
  526. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  527. package/dist/infra/cli/kernel-cli.module.js +173 -0
  528. package/dist/infra/close-within.d.ts +15 -0
  529. package/dist/infra/close-within.js +36 -0
  530. package/dist/infra/config/config.module.d.ts +13 -0
  531. package/dist/infra/config/config.module.js +39 -0
  532. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  533. package/dist/infra/config/kernel-config.service.js +157 -0
  534. package/dist/infra/database/after-commit.d.ts +6 -0
  535. package/dist/infra/database/after-commit.js +9 -0
  536. package/dist/infra/database/database.module.d.ts +25 -0
  537. package/dist/infra/database/database.module.js +91 -0
  538. package/dist/infra/database/kernel-db.d.ts +22 -0
  539. package/dist/infra/database/kernel-db.js +65 -0
  540. package/dist/infra/database/transaction-host.d.ts +50 -0
  541. package/dist/infra/database/transaction-host.js +125 -0
  542. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  543. package/dist/infra/database/transactional.decorator.js +27 -0
  544. package/dist/infra/database/xact-lock.d.ts +17 -0
  545. package/dist/infra/database/xact-lock.js +43 -0
  546. package/dist/infra/events/kernel-events.d.ts +121 -0
  547. package/dist/infra/events/kernel-events.js +65 -0
  548. package/dist/infra/health/health.controller.d.ts +26 -0
  549. package/dist/infra/health/health.controller.js +104 -0
  550. package/dist/infra/health/health.module.d.ts +9 -0
  551. package/dist/infra/health/health.module.js +24 -0
  552. package/dist/infra/health/health.options.d.ts +10 -0
  553. package/dist/infra/health/health.options.js +15 -0
  554. package/dist/infra/health/shutdown-state.d.ts +6 -0
  555. package/dist/infra/health/shutdown-state.js +2 -0
  556. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  557. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  560. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  561. package/dist/infra/lifecycle/process-guards.js +90 -0
  562. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  563. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  564. package/dist/infra/lock/key-template.d.ts +13 -0
  565. package/dist/infra/lock/key-template.js +46 -0
  566. package/dist/infra/lock/lock.module.d.ts +3 -0
  567. package/dist/infra/lock/lock.module.js +16 -0
  568. package/dist/infra/lock/lock.service.d.ts +120 -0
  569. package/dist/infra/lock/lock.service.js +343 -0
  570. package/dist/infra/lock/shared-lease.d.ts +44 -0
  571. package/dist/infra/lock/shared-lease.js +121 -0
  572. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  573. package/dist/infra/lock/with-lock.decorator.js +49 -0
  574. package/dist/infra/logging/logging.module.d.ts +18 -0
  575. package/dist/infra/logging/logging.module.js +52 -0
  576. package/dist/infra/queue/add-job-once.d.ts +14 -0
  577. package/dist/infra/queue/add-job-once.js +16 -0
  578. package/dist/infra/queue/configured-processor.d.ts +18 -0
  579. package/dist/infra/queue/configured-processor.js +23 -0
  580. package/dist/infra/queue/job-failure.d.ts +18 -0
  581. package/dist/infra/queue/job-failure.js +26 -0
  582. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  583. package/dist/infra/queue/queue-shutdown.js +81 -0
  584. package/dist/infra/queue/queue.module.d.ts +16 -0
  585. package/dist/infra/queue/queue.module.js +61 -0
  586. package/dist/infra/queue/redis-connection.d.ts +13 -0
  587. package/dist/infra/queue/redis-connection.js +25 -0
  588. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  589. package/dist/infra/queue/retired-schedulers.js +9 -0
  590. package/dist/infra/queue/run-job.d.ts +16 -0
  591. package/dist/infra/queue/run-job.js +19 -0
  592. package/dist/infra/redis/redis.module.d.ts +24 -0
  593. package/dist/infra/redis/redis.module.js +91 -0
  594. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  595. package/dist/infra/schedule/cron-tick.js +25 -0
  596. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  597. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  598. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  599. package/dist/infra/schedule/locked-interval.js +190 -0
  600. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  601. package/dist/infra/schedule/locked-tick.js +137 -0
  602. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  603. package/dist/infra/schedule/schedule.module.js +27 -0
  604. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  605. package/dist/infra/schedule/scheduled-runs.js +163 -0
  606. package/dist/infra/swagger/swagger.d.ts +16 -0
  607. package/dist/infra/swagger/swagger.js +31 -0
  608. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  609. package/dist/infra/throttler/credential-throttler.js +77 -0
  610. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  611. package/dist/infra/throttler/named-throttlers.js +157 -0
  612. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  613. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  614. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  615. package/dist/infra/throttler/throttler.guard.js +68 -0
  616. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  617. package/dist/infra/throttler/throttler.module.js +53 -0
  618. package/dist/infra/tokens.d.ts +20 -0
  619. package/dist/infra/tokens.js +20 -0
  620. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  621. package/dist/infra/validation/create-zod-dto.js +35 -0
  622. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  623. package/dist/infra/validation/parse-with-zod.js +12 -0
  624. package/dist/infra/validation/validation.module.d.ts +3 -0
  625. package/dist/infra/validation/validation.module.js +16 -0
  626. package/dist/infra/validation/zod-params.d.ts +7 -0
  627. package/dist/infra/validation/zod-params.js +42 -0
  628. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  629. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  630. package/dist/kernel.d.ts +9 -244
  631. package/dist/kernel.js +8 -1305
  632. package/dist/kernel.module.d.ts +17 -0
  633. package/dist/kernel.module.js +145 -0
  634. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  635. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  636. package/dist/lifecycle/tokens.d.ts +3 -0
  637. package/dist/lifecycle/tokens.js +3 -0
  638. package/dist/log-context.d.ts +2 -0
  639. package/dist/log-context.js +4 -0
  640. package/dist/log.d.ts +13 -1
  641. package/dist/log.js +93 -17
  642. package/dist/models/embeddings.d.ts +82 -0
  643. package/dist/models/embeddings.js +326 -0
  644. package/dist/models/enablement.controller.d.ts +40 -0
  645. package/dist/models/enablement.controller.js +74 -0
  646. package/dist/models/enablement.d.ts +101 -0
  647. package/dist/models/enablement.js +264 -0
  648. package/dist/models/models.module.d.ts +7 -0
  649. package/dist/models/models.module.js +36 -0
  650. package/dist/models/org-models.schemas.d.ts +8 -0
  651. package/dist/models/org-models.schemas.js +22 -0
  652. package/dist/models/prices.d.ts +13 -5
  653. package/dist/models/prices.js +69 -39
  654. package/dist/models/purposes.controller.d.ts +6 -4
  655. package/dist/models/purposes.controller.js +16 -11
  656. package/dist/models/purposes.d.ts +103 -23
  657. package/dist/models/purposes.js +208 -77
  658. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  659. package/dist/orgs/directory-sync.controller.js +2 -2
  660. package/dist/orgs/directory-sync.d.ts +74 -35
  661. package/dist/orgs/directory-sync.js +243 -132
  662. package/dist/orgs/invitations.controller.d.ts +8 -8
  663. package/dist/orgs/invitations.controller.js +27 -26
  664. package/dist/orgs/invitations.service.d.ts +12 -9
  665. package/dist/orgs/invitations.service.js +130 -92
  666. package/dist/orgs/job-ids.d.ts +8 -0
  667. package/dist/orgs/job-ids.js +8 -0
  668. package/dist/orgs/members.service.d.ts +19 -12
  669. package/dist/orgs/members.service.js +161 -117
  670. package/dist/orgs/offboarding.d.ts +61 -60
  671. package/dist/orgs/offboarding.js +206 -95
  672. package/dist/orgs/org-lock.d.ts +33 -19
  673. package/dist/orgs/org-lock.js +94 -35
  674. package/dist/orgs/org.guard.d.ts +11 -1
  675. package/dist/orgs/org.guard.js +45 -34
  676. package/dist/orgs/orgs.controller.d.ts +13 -16
  677. package/dist/orgs/orgs.controller.js +29 -20
  678. package/dist/orgs/orgs.module.d.ts +6 -0
  679. package/dist/orgs/orgs.module.js +71 -0
  680. package/dist/orgs/orgs.schemas.d.ts +8 -0
  681. package/dist/orgs/orgs.schemas.js +16 -0
  682. package/dist/orgs/orgs.service.d.ts +47 -21
  683. package/dist/orgs/orgs.service.js +166 -91
  684. package/dist/orgs/roles.d.ts +1 -1
  685. package/dist/orgs/roles.js +5 -1
  686. package/dist/orgs/settings.controller.d.ts +2 -2
  687. package/dist/orgs/settings.controller.js +8 -6
  688. package/dist/orgs/settings.service.d.ts +45 -14
  689. package/dist/orgs/settings.service.js +110 -51
  690. package/dist/overrides.d.ts +63 -0
  691. package/dist/overrides.js +34 -0
  692. package/dist/platform/actor.d.ts +48 -0
  693. package/dist/platform/actor.js +100 -0
  694. package/dist/platform/agent-docs.d.ts +18 -0
  695. package/dist/platform/agent-docs.js +59 -0
  696. package/dist/platform/availability.d.ts +14 -0
  697. package/dist/platform/availability.js +43 -0
  698. package/dist/platform/errors.d.ts +28 -0
  699. package/dist/platform/errors.js +65 -0
  700. package/dist/platform/exclusions.d.ts +11 -0
  701. package/dist/platform/exclusions.js +667 -0
  702. package/dist/platform/method.d.ts +6 -0
  703. package/dist/platform/method.js +15 -0
  704. package/dist/platform/operation.d.ts +169 -0
  705. package/dist/platform/operation.js +90 -0
  706. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  707. package/dist/platform/ops/accounts.ops.js +291 -0
  708. package/dist/platform/ops/admin.ops.d.ts +36 -0
  709. package/dist/platform/ops/admin.ops.js +389 -0
  710. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  711. package/dist/platform/ops/agent-skills.ops.js +226 -0
  712. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  713. package/dist/platform/ops/agent-templates.ops.js +272 -0
  714. package/dist/platform/ops/agents.ops.d.ts +37 -0
  715. package/dist/platform/ops/agents.ops.js +717 -0
  716. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  717. package/dist/platform/ops/approvals.ops.js +116 -0
  718. package/dist/platform/ops/background.ops.d.ts +14 -0
  719. package/dist/platform/ops/background.ops.js +134 -0
  720. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  721. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  722. package/dist/platform/ops/channels.ops.d.ts +16 -0
  723. package/dist/platform/ops/channels.ops.js +195 -0
  724. package/dist/platform/ops/components.ops.d.ts +46 -0
  725. package/dist/platform/ops/components.ops.js +853 -0
  726. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  727. package/dist/platform/ops/connectors.ops.js +188 -0
  728. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  729. package/dist/platform/ops/conversations.ops.js +470 -0
  730. package/dist/platform/ops/environments.ops.d.ts +26 -0
  731. package/dist/platform/ops/environments.ops.js +311 -0
  732. package/dist/platform/ops/errors.d.ts +16 -0
  733. package/dist/platform/ops/errors.js +30 -0
  734. package/dist/platform/ops/evals.ops.d.ts +28 -0
  735. package/dist/platform/ops/evals.ops.js +783 -0
  736. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  737. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  738. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  739. package/dist/platform/ops/extensions.ops.js +347 -0
  740. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  741. package/dist/platform/ops/inbox.ops.js +378 -0
  742. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  743. package/dist/platform/ops/marketplaces.ops.js +466 -0
  744. package/dist/platform/ops/models.ops.d.ts +25 -0
  745. package/dist/platform/ops/models.ops.js +232 -0
  746. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  747. package/dist/platform/ops/org-plugins.ops.js +329 -0
  748. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  749. package/dist/platform/ops/org-settings.ops.js +102 -0
  750. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  751. package/dist/platform/ops/orgs.ops.js +295 -0
  752. package/dist/platform/ops/other-orgs.d.ts +20 -0
  753. package/dist/platform/ops/other-orgs.js +72 -0
  754. package/dist/platform/ops/paging.d.ts +14 -0
  755. package/dist/platform/ops/paging.js +20 -0
  756. package/dist/platform/ops/platform.ops.d.ts +28 -0
  757. package/dist/platform/ops/platform.ops.js +204 -0
  758. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  759. package/dist/platform/ops/plugins.ops.js +476 -0
  760. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  761. package/dist/platform/ops/previewers.ops.js +109 -0
  762. package/dist/platform/ops/requests.ops.d.ts +14 -0
  763. package/dist/platform/ops/requests.ops.js +191 -0
  764. package/dist/platform/ops/role.d.ts +4 -0
  765. package/dist/platform/ops/role.js +10 -0
  766. package/dist/platform/ops/skills.ops.d.ts +17 -0
  767. package/dist/platform/ops/skills.ops.js +216 -0
  768. package/dist/platform/ops/summary.d.ts +10 -0
  769. package/dist/platform/ops/summary.js +18 -0
  770. package/dist/platform/ops/unavailable.d.ts +23 -0
  771. package/dist/platform/ops/unavailable.js +118 -0
  772. package/dist/platform/parity.d.ts +33 -0
  773. package/dist/platform/parity.js +272 -0
  774. package/dist/platform/platform-ops.module.d.ts +39 -0
  775. package/dist/platform/platform-ops.module.js +122 -0
  776. package/dist/platform/platform.module.d.ts +8 -0
  777. package/dist/platform/platform.module.js +25 -0
  778. package/dist/platform/registry.d.ts +30 -0
  779. package/dist/platform/registry.js +111 -0
  780. package/dist/platform/route-schemas.d.ts +18 -0
  781. package/dist/platform/route-schemas.js +63 -0
  782. package/dist/roles/gateway-role.d.ts +54 -0
  783. package/dist/roles/gateway-role.js +118 -0
  784. package/dist/roles/gateway.module.d.ts +9 -0
  785. package/dist/roles/gateway.module.js +31 -0
  786. package/dist/roles/worker-role.d.ts +65 -0
  787. package/dist/roles/worker-role.js +151 -0
  788. package/dist/roles/worker.module.d.ts +14 -0
  789. package/dist/roles/worker.module.js +106 -0
  790. package/dist/runtime/abort.js +19 -2
  791. package/dist/runtime/checkpointer.d.ts +8 -3
  792. package/dist/runtime/checkpointer.js +87 -55
  793. package/dist/runtime/context/build.d.ts +21 -13
  794. package/dist/runtime/context/build.js +106 -29
  795. package/dist/runtime/context/claude-tools.d.ts +4 -1
  796. package/dist/runtime/context/claude-tools.js +13 -12
  797. package/dist/runtime/context/compaction.js +24 -1
  798. package/dist/runtime/context/environment-paths.d.ts +40 -0
  799. package/dist/runtime/context/environment-paths.js +48 -0
  800. package/dist/runtime/context/legacy-text.d.ts +22 -0
  801. package/dist/runtime/context/legacy-text.js +37 -0
  802. package/dist/runtime/context/reminders.d.ts +2 -0
  803. package/dist/runtime/context/reminders.js +2 -0
  804. package/dist/runtime/context/run-context.d.ts +65 -0
  805. package/dist/runtime/context/run-context.js +215 -0
  806. package/dist/runtime/context/skills.d.ts +29 -11
  807. package/dist/runtime/context/skills.js +46 -32
  808. package/dist/runtime/context/tool-changes.d.ts +27 -0
  809. package/dist/runtime/context/tool-changes.js +60 -0
  810. package/dist/runtime/conversation-lock.d.ts +20 -11
  811. package/dist/runtime/conversation-lock.js +62 -72
  812. package/dist/runtime/hook-calls.d.ts +11 -4
  813. package/dist/runtime/hook-calls.js +41 -13
  814. package/dist/runtime/job-ids.d.ts +10 -0
  815. package/dist/runtime/job-ids.js +10 -0
  816. package/dist/runtime/langgraph-loop.d.ts +3 -1
  817. package/dist/runtime/langgraph-loop.js +37 -18
  818. package/dist/runtime/loop.d.ts +42 -6
  819. package/dist/runtime/loop.js +14 -0
  820. package/dist/runtime/maintenance-queue.d.ts +10 -0
  821. package/dist/runtime/maintenance-queue.js +10 -0
  822. package/dist/runtime/maintenance.d.ts +50 -74
  823. package/dist/runtime/maintenance.js +166 -137
  824. package/dist/runtime/model-call.d.ts +61 -15
  825. package/dist/runtime/model-call.js +128 -84
  826. package/dist/runtime/providers.d.ts +158 -27
  827. package/dist/runtime/providers.js +373 -63
  828. package/dist/runtime/quota.d.ts +17 -3
  829. package/dist/runtime/quota.js +27 -2
  830. package/dist/runtime/retired-schedulers.d.ts +7 -0
  831. package/dist/runtime/retired-schedulers.js +31 -0
  832. package/dist/runtime/run-context.service.d.ts +65 -0
  833. package/dist/runtime/run-context.service.js +236 -0
  834. package/dist/runtime/run-control.d.ts +43 -0
  835. package/dist/runtime/run-control.js +89 -0
  836. package/dist/runtime/run-drafts.d.ts +85 -0
  837. package/dist/runtime/run-drafts.js +230 -0
  838. package/dist/runtime/run-finish.d.ts +27 -18
  839. package/dist/runtime/run-finish.js +98 -51
  840. package/dist/runtime/run-jobs.d.ts +46 -0
  841. package/dist/runtime/run-jobs.js +91 -0
  842. package/dist/runtime/run-processors.d.ts +60 -0
  843. package/dist/runtime/run-processors.js +185 -0
  844. package/dist/runtime/run-queue.d.ts +90 -58
  845. package/dist/runtime/run-queue.js +566 -297
  846. package/dist/runtime/run-steps.d.ts +39 -0
  847. package/dist/runtime/run-steps.js +96 -0
  848. package/dist/runtime/run-worker.d.ts +134 -77
  849. package/dist/runtime/run-worker.js +412 -237
  850. package/dist/runtime/runtime.module.d.ts +10 -0
  851. package/dist/runtime/runtime.module.js +122 -0
  852. package/dist/runtime/step-log.d.ts +51 -0
  853. package/dist/runtime/step-log.js +111 -0
  854. package/dist/runtime/stream.controller.d.ts +28 -9
  855. package/dist/runtime/stream.controller.js +72 -13
  856. package/dist/runtime/stream.d.ts +27 -6
  857. package/dist/runtime/stream.js +102 -7
  858. package/dist/runtime/subagents/child.d.ts +58 -51
  859. package/dist/runtime/subagents/child.js +105 -86
  860. package/dist/runtime/subagents/definition.d.ts +32 -28
  861. package/dist/runtime/subagents/definition.js +89 -143
  862. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  863. package/dist/runtime/subagents/deliveries.js +228 -0
  864. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  865. package/dist/runtime/subagents/dispatch.js +336 -270
  866. package/dist/runtime/subagents/limits.d.ts +32 -8
  867. package/dist/runtime/subagents/limits.js +44 -8
  868. package/dist/runtime/subagents/messages.d.ts +95 -0
  869. package/dist/runtime/subagents/messages.js +328 -0
  870. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  871. package/dist/runtime/subagents/org-agents.js +3 -2
  872. package/dist/runtime/subagents/preamble.d.ts +4 -4
  873. package/dist/runtime/subagents/preamble.js +9 -7
  874. package/dist/runtime/subagents/progress.d.ts +10 -8
  875. package/dist/runtime/subagents/progress.js +11 -6
  876. package/dist/runtime/subagents/render.d.ts +30 -0
  877. package/dist/runtime/subagents/render.js +53 -0
  878. package/dist/runtime/subagents/roster.d.ts +27 -10
  879. package/dist/runtime/subagents/roster.js +49 -13
  880. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  881. package/dist/runtime/subagents/skill-fork.js +23 -8
  882. package/dist/runtime/subagents/status.d.ts +14 -0
  883. package/dist/runtime/subagents/status.js +23 -0
  884. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  885. package/dist/runtime/subagents/subagents.service.js +106 -0
  886. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  887. package/dist/runtime/usage-report-jobs.js +158 -0
  888. package/dist/runtime/usage-report.d.ts +121 -83
  889. package/dist/runtime/usage-report.js +355 -181
  890. package/dist/runtime/waits.d.ts +258 -81
  891. package/dist/runtime/waits.js +800 -263
  892. package/dist/sandbox/job-ids.d.ts +10 -0
  893. package/dist/sandbox/job-ids.js +10 -0
  894. package/dist/sandbox/jobs.d.ts +68 -0
  895. package/dist/sandbox/jobs.js +150 -0
  896. package/dist/sandbox/leases.d.ts +73 -82
  897. package/dist/sandbox/leases.js +162 -346
  898. package/dist/sandbox/providers.d.ts +46 -0
  899. package/dist/sandbox/providers.js +83 -0
  900. package/dist/sandbox/sandbox.module.d.ts +9 -0
  901. package/dist/sandbox/sandbox.module.js +36 -0
  902. package/dist/sandbox/sandbox.service.d.ts +359 -151
  903. package/dist/sandbox/sandbox.service.js +950 -435
  904. package/dist/sandbox/unreachable.d.ts +30 -0
  905. package/dist/sandbox/unreachable.js +108 -0
  906. package/dist/skills/catalog.d.ts +40 -26
  907. package/dist/skills/catalog.js +120 -99
  908. package/dist/skills/changes.controller.d.ts +11 -4
  909. package/dist/skills/changes.controller.js +34 -9
  910. package/dist/skills/changes.service.d.ts +31 -21
  911. package/dist/skills/changes.service.js +426 -368
  912. package/dist/skills/invocable.controller.d.ts +2 -2
  913. package/dist/skills/invocable.controller.js +10 -7
  914. package/dist/skills/invocation-keys.d.ts +1 -1
  915. package/dist/skills/invocation-keys.js +1 -1
  916. package/dist/skills/invoke.d.ts +19 -18
  917. package/dist/skills/invoke.js +68 -24
  918. package/dist/skills/package.d.ts +20 -1
  919. package/dist/skills/package.js +28 -1
  920. package/dist/skills/skills.controller.d.ts +33 -7
  921. package/dist/skills/skills.controller.js +79 -12
  922. package/dist/skills/skills.module.d.ts +6 -0
  923. package/dist/skills/skills.module.js +39 -0
  924. package/dist/skills/skills.schemas.d.ts +48 -0
  925. package/dist/skills/skills.schemas.js +61 -0
  926. package/dist/skills/skills.service.d.ts +151 -44
  927. package/dist/skills/skills.service.js +636 -204
  928. package/dist/skills/usable.d.ts +81 -0
  929. package/dist/skills/usable.js +379 -0
  930. package/dist/storage/job-ids.d.ts +6 -0
  931. package/dist/storage/job-ids.js +6 -0
  932. package/dist/storage/purge.d.ts +22 -7
  933. package/dist/storage/purge.js +55 -3
  934. package/dist/storage/storage.module.d.ts +6 -0
  935. package/dist/storage/storage.module.js +23 -0
  936. package/dist/storage/storage.service.d.ts +18 -4
  937. package/dist/storage/storage.service.js +44 -3
  938. package/dist/time-zone.d.ts +5 -0
  939. package/dist/time-zone.js +19 -0
  940. package/dist/tools/approvals.controller.d.ts +1 -1
  941. package/dist/tools/approvals.controller.js +14 -11
  942. package/dist/tools/approvals.schemas.d.ts +21 -0
  943. package/dist/tools/approvals.schemas.js +15 -0
  944. package/dist/tools/approvals.service.d.ts +53 -27
  945. package/dist/tools/approvals.service.js +365 -260
  946. package/dist/tools/breaker.d.ts +2 -2
  947. package/dist/tools/breaker.js +21 -3
  948. package/dist/tools/builtin-names.d.ts +109 -0
  949. package/dist/tools/builtin-names.js +173 -0
  950. package/dist/tools/builtins/agent.d.ts +27 -25
  951. package/dist/tools/builtins/agent.js +66 -63
  952. package/dist/tools/builtins/ask-user.d.ts +3 -3
  953. package/dist/tools/builtins/ask-user.js +3 -3
  954. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  955. package/dist/tools/builtins/builtin-tools.js +151 -0
  956. package/dist/tools/builtins/current-time.d.ts +26 -0
  957. package/dist/tools/builtins/current-time.js +99 -0
  958. package/dist/tools/builtins/handback.d.ts +28 -0
  959. package/dist/tools/builtins/handback.js +53 -0
  960. package/dist/tools/builtins/platform.d.ts +51 -0
  961. package/dist/tools/builtins/platform.js +451 -0
  962. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  963. package/dist/tools/builtins/read-tool-output.js +3 -3
  964. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  965. package/dist/tools/builtins/sandbox/bash.js +293 -41
  966. package/dist/tools/builtins/sandbox/common.d.ts +137 -37
  967. package/dist/tools/builtins/sandbox/common.js +222 -62
  968. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  969. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  970. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  971. package/dist/tools/builtins/sandbox/edit.js +65 -51
  972. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  973. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  974. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  975. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  976. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  977. package/dist/tools/builtins/sandbox/glob.js +19 -14
  978. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  979. package/dist/tools/builtins/sandbox/grep.js +155 -36
  980. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  981. package/dist/tools/builtins/sandbox/index.js +13 -5
  982. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  983. package/dist/tools/builtins/sandbox/read.js +30 -20
  984. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  985. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  986. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  987. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  988. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  989. package/dist/tools/builtins/sandbox/write.js +52 -45
  990. package/dist/tools/builtins/send-message.d.ts +56 -0
  991. package/dist/tools/builtins/send-message.js +100 -0
  992. package/dist/tools/builtins/skill-load.d.ts +32 -21
  993. package/dist/tools/builtins/skill-load.js +125 -74
  994. package/dist/tools/builtins/skill-write.d.ts +4 -4
  995. package/dist/tools/builtins/skill-write.js +12 -12
  996. package/dist/tools/builtins/tool-search.d.ts +13 -9
  997. package/dist/tools/builtins/tool-search.js +25 -14
  998. package/dist/tools/builtins/web/errors.d.ts +8 -0
  999. package/dist/tools/builtins/web/errors.js +53 -0
  1000. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1001. package/dist/tools/builtins/web/extract.js +271 -0
  1002. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1003. package/dist/tools/builtins/web/fetch.js +175 -0
  1004. package/dist/tools/builtins/web/index.d.ts +13 -0
  1005. package/dist/tools/builtins/web/index.js +12 -0
  1006. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1007. package/dist/tools/builtins/web/page-cache.js +77 -0
  1008. package/dist/tools/builtins/web/search.d.ts +25 -0
  1009. package/dist/tools/builtins/web/search.js +210 -0
  1010. package/dist/tools/builtins/web/url.d.ts +17 -0
  1011. package/dist/tools/builtins/web/url.js +43 -0
  1012. package/dist/tools/canonical-json.d.ts +6 -0
  1013. package/dist/tools/canonical-json.js +16 -0
  1014. package/dist/tools/connector-content.controller.d.ts +1 -1
  1015. package/dist/tools/connector-content.controller.js +11 -6
  1016. package/dist/tools/connector-content.d.ts +12 -15
  1017. package/dist/tools/connector-content.js +53 -18
  1018. package/dist/tools/connectors.controller.d.ts +16 -3
  1019. package/dist/tools/connectors.controller.js +34 -14
  1020. package/dist/tools/connectors.schemas.d.ts +12 -0
  1021. package/dist/tools/connectors.schemas.js +19 -0
  1022. package/dist/tools/connectors.service.d.ts +80 -18
  1023. package/dist/tools/connectors.service.js +529 -358
  1024. package/dist/tools/credentials.d.ts +20 -20
  1025. package/dist/tools/credentials.js +55 -34
  1026. package/dist/tools/display-names.d.ts +9 -0
  1027. package/dist/tools/display-names.js +24 -0
  1028. package/dist/tools/drift.d.ts +29 -41
  1029. package/dist/tools/drift.js +116 -84
  1030. package/dist/tools/elicitation.js +1 -1
  1031. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1032. package/dist/tools/extension-tools.controller.js +37 -0
  1033. package/dist/tools/info.d.ts +73 -13
  1034. package/dist/tools/info.js +151 -39
  1035. package/dist/tools/job-ids.d.ts +13 -0
  1036. package/dist/tools/job-ids.js +15 -0
  1037. package/dist/tools/jobs.d.ts +24 -0
  1038. package/dist/tools/jobs.js +69 -0
  1039. package/dist/tools/legacy-data.d.ts +34 -0
  1040. package/dist/tools/legacy-data.js +76 -0
  1041. package/dist/tools/legacy-keys.d.ts +51 -0
  1042. package/dist/tools/legacy-keys.js +115 -0
  1043. package/dist/tools/naming.d.ts +1 -5
  1044. package/dist/tools/naming.js +1 -7
  1045. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1046. package/dist/tools/oauth/flow-paths.js +38 -0
  1047. package/dist/tools/oauth/flow.d.ts +30 -30
  1048. package/dist/tools/oauth/flow.js +109 -81
  1049. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1050. package/dist/tools/oauth/oauth.controller.js +12 -9
  1051. package/dist/tools/oauth/tokens.d.ts +45 -10
  1052. package/dist/tools/oauth/tokens.js +70 -24
  1053. package/dist/tools/org-tool-switches.d.ts +88 -0
  1054. package/dist/tools/org-tool-switches.js +201 -0
  1055. package/dist/tools/outputs.d.ts +13 -4
  1056. package/dist/tools/outputs.js +48 -4
  1057. package/dist/tools/pipeline.d.ts +108 -80
  1058. package/dist/tools/pipeline.js +396 -409
  1059. package/dist/tools/policy.d.ts +4 -17
  1060. package/dist/tools/policy.js +49 -35
  1061. package/dist/tools/questions.controller.d.ts +2 -2
  1062. package/dist/tools/questions.controller.js +9 -6
  1063. package/dist/tools/questions.service.d.ts +26 -25
  1064. package/dist/tools/questions.service.js +201 -142
  1065. package/dist/tools/registry.d.ts +215 -84
  1066. package/dist/tools/registry.js +382 -264
  1067. package/dist/tools/resources.d.ts +1 -1
  1068. package/dist/tools/resources.js +1 -1
  1069. package/dist/tools/specs.d.ts +5 -4
  1070. package/dist/tools/specs.js +3 -1
  1071. package/dist/tools/tools.module.d.ts +10 -0
  1072. package/dist/tools/tools.module.js +113 -0
  1073. package/dist/tools/validate.js +1 -1
  1074. package/dist/ui/call-extension.d.ts +16 -0
  1075. package/dist/ui/call-extension.js +38 -0
  1076. package/dist/ui/embed-token.d.ts +9 -5
  1077. package/dist/ui/embed-token.js +34 -6
  1078. package/dist/ui/ui-stream.d.ts +22 -17
  1079. package/dist/ui/ui-stream.js +72 -12
  1080. package/dist/ui/ui.module.d.ts +7 -0
  1081. package/dist/ui/ui.module.js +28 -0
  1082. package/dist/ui/views.controller.d.ts +14 -12
  1083. package/dist/ui/views.controller.js +32 -25
  1084. package/dist/ui/views.d.ts +10 -57
  1085. package/dist/ui/views.js +58 -46
  1086. package/package.json +13 -3
  1087. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1088. package/src/migrations/0064_account_last_org.sql +7 -0
  1089. package/src/migrations/0065_conversation_archive.sql +8 -0
  1090. package/src/migrations/0066_extension_display_name.sql +4 -0
  1091. package/src/migrations/0067_agent_profiles.sql +20 -0
  1092. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1093. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1094. package/src/migrations/0070_background_tasks.sql +37 -0
  1095. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1096. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1097. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1098. package/src/migrations/0074_subagent_tree.sql +50 -0
  1099. package/src/migrations/0075_plugin_scope.sql +61 -0
  1100. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1101. package/src/migrations/0077_scope_requests.sql +52 -0
  1102. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1103. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1104. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1105. package/src/migrations/0081_platform_components.sql +129 -0
  1106. package/src/migrations/0082_platform_migration.sql +33 -0
  1107. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1108. package/src/migrations/0084_org_owned_items.sql +85 -0
  1109. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1110. package/src/migrations/0086_org_layering.sql +30 -0
  1111. package/src/migrations/0087_approval_summary.sql +6 -0
  1112. package/src/migrations/0088_environments.sql +80 -0
  1113. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1114. package/src/migrations/0090_initial_passwords.sql +27 -0
  1115. package/src/migrations/0091_account_time_zone.sql +4 -0
  1116. package/src/migrations/0092_tools_default_on.sql +27 -0
  1117. package/src/migrations/0093_connected_environments.sql +37 -0
  1118. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1119. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1120. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1121. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1122. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1123. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1124. package/src/migrations/0100_catalog_files.sql +13 -0
  1125. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1126. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1127. package/dist/catalog/upgrade-targets.js +0 -90
  1128. package/dist/conversations/sandbox-status.d.ts +0 -21
  1129. package/dist/conversations/sandbox-status.js +0 -24
  1130. package/dist/extensions/org-config.controller.d.ts +0 -24
  1131. package/dist/extensions/org-config.controller.js +0 -59
  1132. package/dist/http/gateway.module.js +0 -13
  1133. package/dist/http/health.controller.d.ts +0 -26
  1134. package/dist/http/health.controller.js +0 -79
  1135. package/dist/http/tokens.d.ts +0 -131
  1136. package/dist/http/tokens.js +0 -131
  1137. package/dist/http/zod.pipe.d.ts +0 -8
  1138. package/dist/http/zod.pipe.js +0 -14
  1139. package/dist/identity/enterprise-admin.d.ts +0 -14
  1140. package/dist/identity/enterprise-admin.js +0 -27
  1141. package/dist/identity/rate-limit.d.ts +0 -55
  1142. package/dist/identity/rate-limit.js +0 -121
  1143. package/dist/sandbox/lifecycle.d.ts +0 -21
  1144. package/dist/sandbox/lifecycle.js +0 -68
  1145. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1146. package/dist/tools/builtins/sandbox/names.js +0 -20
@@ -0,0 +1,990 @@
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 { createHash } from "node:crypto";
11
+ import { Inject, Injectable } from "@nestjs/common";
12
+ import { sql } from "kysely";
13
+ import { templateTypeClashes, templateTypeOf } from "../agents/templates.js";
14
+ import { ApiError } from "../errors.js";
15
+ import { audit } from "../identity/audit.js";
16
+ import { SuperAdminLock } from "../identity/super-admin.js";
17
+ import { notifyItemShared } from "../inbox/org-notices.js";
18
+ import { KernelDb } from "../infra/database/kernel-db.js";
19
+ import { TransactionHost } from "../infra/database/transaction-host.js";
20
+ import { Transactional } from "../infra/database/transactional.decorator.js";
21
+ import { OrgLock } from "../orgs/org-lock.js";
22
+ import { assertOrgsExist } from "./catalog-items.js";
23
+ import { ComponentPromotion, notOwnedError, PROMOTION_ATTEMPTS, PromotionStale, promotionStaleError, } from "./component-promotion.js";
24
+ import { agentsUsing, COMPONENT_KINDS, componentLocked, componentOffered, componentOn, componentPluginOn, connectorsMadeFrom, listedIn, loadComponents, loadScopeState, pluginFactsOf, skillNameClashes, switchOf, } from "./component-state.js";
25
+ import { assertOwnerListed, assertShareable, assertShareableTarget, newlySharedWith, ownerOf, ownersOf, } from "./ownership.js";
26
+ const notFound = () => new ApiError("component.not_found", "Component not found");
27
+ const staleError = () => new ApiError("plugin.scope_stale", "What this change affects has changed since the preview; preview it again and confirm the new hash");
28
+ const builtinError = () => new ApiError("plugin.builtin", "This component belongs to a built-in plugin: it is on in every organization and its scope cannot be changed or disabled");
29
+ /** The org action that manages a kind of component (the org admin's). */
30
+ const ACTION = {
31
+ skill: "skills.manage",
32
+ agent_template: "agents.manage",
33
+ connector_template: "connectors.manage",
34
+ };
35
+ /**
36
+ * 409 `plugin.skill_conflict` listing the orgs whose own skills use a component's name (rule 10);
37
+ * for an agent template 409 `agent_template.name_taken` listing the orgs that already use its
38
+ * roster type (ruling P4-13; details `[{ orgId, type, templateId, owner }]`, one per clashing
39
+ * template, `owner` as save-as names it).
40
+ */
41
+ export function nameConflictError(conflicts, kind = "skill") {
42
+ if (kind === "agent_template") {
43
+ // the save-as wording (ruling P4-9), naming each clashing template's owner
44
+ const whose = (o, orgId) => o === undefined || o.kind === "platform"
45
+ ? "the platform's"
46
+ : o.orgId === orgId
47
+ ? "its own"
48
+ : `from organization ${o.name}`;
49
+ return new ApiError("agent_template.name_taken", conflicts
50
+ .map((c) => `An agent template named ${c.name} is already used in organization ${c.orgName} (${c.skills.map((_, i) => whose(c.owners?.[i], c.orgId)).join(", ")}); one name cannot be offered there twice.`)
51
+ .join("\n"), conflicts.flatMap((c) => c.skills.map((templateId, i) => ({
52
+ orgId: c.orgId,
53
+ type: c.name,
54
+ templateId,
55
+ owner: c.owners?.[i] ?? { kind: "platform" },
56
+ }))));
57
+ }
58
+ return new ApiError("plugin.skill_conflict", conflicts
59
+ .map((c) => `Skill "${c.name}" is already used in organization ${c.orgName} (${c.plugins.length > 0 ? `plugin "${c.plugins.join('", "')}"` : "its own skill"}); it would be offered there twice.`)
60
+ .join("\n"), conflicts.map((c) => ({
61
+ skill: c.name,
62
+ orgId: c.orgId,
63
+ skills: c.skills,
64
+ source: c.plugins.length > 0
65
+ ? { kind: "plugin", name: c.plugins[0], version: "" }
66
+ : { kind: "org" },
67
+ })));
68
+ }
69
+ /** The hash of a preview: sha256 over its sorted JSON, the target included. */
70
+ function previewHash(c, target, p) {
71
+ return createHash("sha256")
72
+ .update(JSON.stringify({
73
+ component: { kind: c.kind, id: c.id },
74
+ target: { ...target, orgs: [...target.orgs].sort() },
75
+ affected: [...p.affected]
76
+ .sort((a, b) => a.orgId.localeCompare(b.orgId))
77
+ .map((a) => ({ ...a, agents: [...a.agents].sort((x, y) => x.id.localeCompare(y.id)) })),
78
+ conflicts: [...p.conflicts].sort((a, b) => a.orgId.localeCompare(b.orgId)),
79
+ }))
80
+ .digest("hex");
81
+ }
82
+ /** The confirm hash of an org switch-off preview. */
83
+ function switchHash(orgId, c, preview) {
84
+ return createHash("sha256")
85
+ .update(JSON.stringify({ orgId, kind: c.kind, id: c.id, ...preview }))
86
+ .digest("hex");
87
+ }
88
+ /**
89
+ * Component scope and org switches (plugin scope phase 2, Task 6; spec §5 rules 2, 5, 8, 10, 11,
90
+ * §13.5). The super admin gives a platform component its own scope (`all` / `optional` / `named`),
91
+ * sends it back to following its plugin, disables it on the whole deployment or shows it to other
92
+ * orgs; each change that takes something away is previewed and confirmed with `scopeHash`
93
+ * (recomputed under the component row lock; a difference -> 409 `plugin.scope_stale`), and one that
94
+ * would offer a skill to an org whose own skill has its name is refused (409 `plugin.skill_conflict`).
95
+ * An org admin switches one component on or off in the org (only that component, rule 5); one of a
96
+ * builtin plugin -> 409 `plugin.scope_locked` (an `all` one may go off, layering spec §4); switching
97
+ * off something in use is previewed with its agents first.
98
+ * Name clashes are checked for skills only: an org agent template always carries its plugin's
99
+ * type, so one with a platform template's type is a copy of it. Components are resolved at read
100
+ * time (skills/usable.ts, agents/templates.ts), so nothing is enqueued. Stateless, shared by every
101
+ * replica.
102
+ */
103
+ let ComponentScopeService = class ComponentScopeService {
104
+ kdb;
105
+ adminLock;
106
+ orgLock;
107
+ promotion;
108
+ txHost;
109
+ constructor(kdb, adminLock,
110
+ /** The org row lock (orgs/org-lock.ts): joins the caller's transaction. */
111
+ orgLock,
112
+ /** Promote on share (ruling P3-3): an org row shown or associated becomes a platform row. */
113
+ promotion, txHost) {
114
+ this.kdb = kdb;
115
+ this.adminLock = adminLock;
116
+ this.orgLock = orgLock;
117
+ this.promotion = promotion;
118
+ this.txHost = txHost;
119
+ }
120
+ get db() {
121
+ return this.kdb.db;
122
+ }
123
+ /**
124
+ * What the admin routes act on (ruling P3-23): the platform component `id`, an org row the org
125
+ * promoted already (its platform row), or an org's own row not promoted yet. A connector
126
+ * template has no org rows; anything else -> 404 `component.not_found`.
127
+ */
128
+ async resolve(kind, id) {
129
+ const [c] = await loadComponents(this.db, kind, { ids: [id] });
130
+ if (c)
131
+ return { c };
132
+ if (kind === "connector_template")
133
+ throw notFound();
134
+ const org = await this.promotion.orgRow(kind, id);
135
+ if (!org)
136
+ throw notFound();
137
+ if (org.link === null)
138
+ return { org };
139
+ const [linked] = await loadComponents(this.db, kind, { ids: [org.link] });
140
+ if (!linked)
141
+ throw notFound();
142
+ return { c: linked };
143
+ }
144
+ /**
145
+ * Runs `write` with the org row prepared for promotion ({@link ComponentPromotion.prepare}, files
146
+ * copied before the transaction), preparing again when the row changed meanwhile.
147
+ */
148
+ async withPromotion(kind, orgRowId, write) {
149
+ for (let attempt = 1;; attempt++) {
150
+ const prepared = await this.promotion.prepare(kind, orgRowId);
151
+ try {
152
+ return await write(prepared);
153
+ }
154
+ catch (e) {
155
+ await this.promotion.discard(prepared);
156
+ if (!(e instanceof PromotionStale))
157
+ throw e;
158
+ if (attempt >= PROMOTION_ATTEMPTS)
159
+ throw promotionStaleError();
160
+ }
161
+ }
162
+ }
163
+ /** The platform components of `kind`, with their effective scope and the orgs they are on in. */
164
+ async list(kind) {
165
+ const comps = await loadComponents(this.db, kind);
166
+ const st = await loadScopeState(this.db, kind, comps);
167
+ const orgs = await this.liveOrgs();
168
+ const owners = await ownersOf(this.db, comps.flatMap((c) => (c.ownerOrgId === null ? [] : [c.ownerOrgId])));
169
+ const platform = comps.map((c) => {
170
+ const plugin = c.itemId === null ? undefined : st.plugins.get(c.itemId);
171
+ const follow = c.scopeMode === "follow" && c.itemId !== null;
172
+ const scope = follow
173
+ ? plugin?.builtin
174
+ ? "all"
175
+ : (plugin?.scope ?? c.scope)
176
+ : c.scope;
177
+ const list = follow
178
+ ? (st.pluginListed.get(c.itemId) ?? new Set())
179
+ : (st.listed.get(c.id) ?? new Set());
180
+ return {
181
+ kind,
182
+ id: c.id,
183
+ name: c.name,
184
+ description: c.description,
185
+ plugin: c.plugin,
186
+ itemId: c.itemId,
187
+ owner: ownerOf(c.ownerOrgId, owners),
188
+ shareable: c.shareable,
189
+ promoted: c.itemId === null && c.originOrgId !== null,
190
+ builtin: plugin?.builtin === true,
191
+ scopeMode: c.scopeMode,
192
+ scope,
193
+ orgs: scope === "named" ? [...list].sort() : [],
194
+ disabled: c.disabled,
195
+ pluginStopped: c.itemId !== null && (plugin === undefined || plugin.disabled),
196
+ shownToOthers: c.shownToOthers,
197
+ version: c.version,
198
+ onIn: orgs
199
+ .filter((o) => this.on(c, st, o.id))
200
+ .map((o) => o.id)
201
+ .sort(),
202
+ offCount: scope === "all" && plugin?.builtin !== true
203
+ ? orgs.filter((o) => switchOf(st, c.id, o.id) === false).length
204
+ : 0,
205
+ };
206
+ });
207
+ const owned = await this.orgOwned(kind, orgs);
208
+ return [...platform, ...owned].sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : a.id < b.id ? -1 : a.id > b.id ? 1 : 0);
209
+ }
210
+ /**
211
+ * The platform components offered to the org (`kind` / `itemId`: only those), by kind then name:
212
+ * on there, or visible to it and not stopped on the deployment (spec §5 rules 5, 11, §13.5).
213
+ */
214
+ async orgList(orgId, filter) {
215
+ const out = [];
216
+ for (const kind of filter.kind !== undefined ? [filter.kind] : COMPONENT_KINDS) {
217
+ const comps = await loadComponents(this.db, kind, filter.itemId !== undefined ? { itemId: filter.itemId } : {});
218
+ const st = await loadScopeState(this.db, kind, comps);
219
+ const linked = await this.linkedCopies(orgId, kind);
220
+ const owners = await ownersOf(this.db, comps.flatMap((c) => (c.ownerOrgId === null ? [] : [c.ownerOrgId])));
221
+ const rows = [];
222
+ for (const c of comps) {
223
+ const p = pluginFactsOf(st, c.itemId, orgId);
224
+ const listed = listedIn(st, c.id, orgId);
225
+ const sw = switchOf(st, c.id, orgId);
226
+ const on = componentOn(c, p, listed, sw);
227
+ if (!on && !componentOffered(c, p, listed))
228
+ continue;
229
+ const locked = componentLocked(c, p);
230
+ const pluginOn = componentPluginOn(c, p);
231
+ rows.push({
232
+ kind,
233
+ id: c.id,
234
+ name: c.name,
235
+ description: c.description,
236
+ plugin: c.plugin,
237
+ itemId: c.itemId,
238
+ version: c.version,
239
+ scopeMode: c.scopeMode,
240
+ switch: sw,
241
+ on,
242
+ locked,
243
+ pluginOn,
244
+ switchable: !locked && pluginOn,
245
+ platformDefault: !locked && (c.scopeMode === "follow" ? p?.scope === "all" : c.scope === "all"),
246
+ linkedIds: linked.get(c.id) ?? [],
247
+ owner: ownerOf(c.ownerOrgId, owners),
248
+ });
249
+ }
250
+ rows.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : a.id < b.id ? -1 : a.id > b.id ? 1 : 0);
251
+ out.push(...rows);
252
+ }
253
+ return out;
254
+ }
255
+ /**
256
+ * The org's copies of platform skills or agent templates linked without a pin (ruling B2), by
257
+ * platform id: they resolve to it, so agents that select them use it (none for connector
258
+ * templates).
259
+ */
260
+ async linkedCopies(orgId, kind) {
261
+ const out = new Map();
262
+ if (kind === "connector_template")
263
+ return out;
264
+ const rows = kind === "skill"
265
+ ? await this.db
266
+ .selectFrom("skills")
267
+ .select(["id", "platform_skill_id as link"])
268
+ .where("org_id", "=", orgId)
269
+ .where("scope", "=", "org")
270
+ .where("deleted_at", "is", null)
271
+ .where("pinned_version", "is", null)
272
+ .where("platform_skill_id", "is not", null)
273
+ .orderBy("id")
274
+ .execute()
275
+ : await this.db
276
+ .selectFrom("agent_templates")
277
+ .select(["id", "platform_template_id as link"])
278
+ .where("org_id", "=", orgId)
279
+ .where("deleted_at", "is", null)
280
+ .where("pinned_version", "is", null)
281
+ .where("platform_template_id", "is not", null)
282
+ .orderBy("id")
283
+ .execute();
284
+ for (const r of rows) {
285
+ const k = r.link;
286
+ out.set(k, [...(out.get(k) ?? []), r.id]);
287
+ }
288
+ return out;
289
+ }
290
+ /**
291
+ * The orgs' own skills (org scope) and agent templates, not linked to a platform component
292
+ * (ruling P2-11): listed read-only, on in their org only. Connector templates have none.
293
+ */
294
+ async orgOwned(kind, orgs) {
295
+ if (kind === "connector_template")
296
+ return [];
297
+ const live = new Set(orgs.map((o) => o.id));
298
+ const rows = kind === "skill"
299
+ ? await this.db
300
+ .selectFrom("skills as s")
301
+ .leftJoin("catalog_items as c", "c.id", "s.catalog_item_id")
302
+ .select([
303
+ "s.id",
304
+ "s.org_id",
305
+ "s.name",
306
+ "s.description",
307
+ "s.current_version",
308
+ "s.catalog_item_id",
309
+ "s.shareable",
310
+ "c.name as plugin",
311
+ ])
312
+ .where("s.scope", "=", "org")
313
+ .where("s.deleted_at", "is", null)
314
+ .where("s.platform_skill_id", "is", null)
315
+ .execute()
316
+ : (await this.db
317
+ .selectFrom("agent_templates")
318
+ .select([
319
+ "id",
320
+ "org_id",
321
+ "name",
322
+ "current_version",
323
+ "catalog_item_id",
324
+ "shareable",
325
+ "plugin_name as plugin",
326
+ ])
327
+ .where("deleted_at", "is", null)
328
+ .where("platform_template_id", "is", null)
329
+ .execute()).map((r) => ({ ...r, description: null }));
330
+ const kept = rows.filter((r) => live.has(r.org_id));
331
+ const owners = await ownersOf(this.db, kept.map((r) => r.org_id));
332
+ return kept.map((r) => ({
333
+ kind,
334
+ id: r.id,
335
+ name: r.name,
336
+ description: r.description,
337
+ plugin: r.plugin,
338
+ itemId: r.catalog_item_id,
339
+ owner: ownerOf(r.org_id, owners),
340
+ shareable: r.shareable,
341
+ promoted: false,
342
+ builtin: false,
343
+ scopeMode: "own",
344
+ scope: "named",
345
+ orgs: [r.org_id],
346
+ disabled: false,
347
+ pluginStopped: false,
348
+ shownToOthers: false,
349
+ version: String(r.current_version),
350
+ onIn: [r.org_id],
351
+ offCount: 0,
352
+ }));
353
+ }
354
+ /** The preview of a scope change, a disable or a return to following the plugin (nothing written). */
355
+ async preview(kind, id, target) {
356
+ const r = await this.resolve(kind, id);
357
+ if ("c" in r) {
358
+ const c = await this.component(kind, r.c.id, false);
359
+ return this.compute(c, await this.targetOf(c, target), { hashId: id });
360
+ }
361
+ // an org row not promoted yet (P3-23): as the platform row it would become, `named: [owner]`;
362
+ // a disable is platform-only
363
+ if ("disabled" in target)
364
+ throw notFound();
365
+ const v = virtualOf(r.org);
366
+ const listed = [r.org.orgId];
367
+ return this.compute(v, await this.targetOf(v, target, listed), { hashId: id, listed });
368
+ }
369
+ /** Gives the component its own scope, or makes it follow its plugin again, after its preview. */
370
+ async setScope(actor, kind, id, body, opts = {}) {
371
+ const { scopeHash, ...target } = body;
372
+ const r = await this.resolve(kind, id);
373
+ if ("c" in r) {
374
+ await this.writeScope(actor, kind, r.c.id, target, scopeHash, opts, { hashId: id });
375
+ return this.view(kind, r.c.id);
376
+ }
377
+ // An org row not promoted yet (P3-23): a change that shows it to another org promotes it first
378
+ // (ruling P3-3), after the owner and share gate checks on the org row and the preview's hash
379
+ const v = virtualOf(r.org);
380
+ const listed = [r.org.orgId];
381
+ const t = await this.targetOf(v, target, listed);
382
+ if (t.scopeMode === "own" && t.scope === "named" && t.orgs.join() === listed.join()) {
383
+ return this.view(kind, id);
384
+ }
385
+ assertPromotable(r.org);
386
+ assertOwnerListed(gateRow(v), t);
387
+ assertShareable(gateRow(v));
388
+ const p = await this.compute(v, t, { hashId: id, listed });
389
+ if (p.scopeHash !== scopeHash)
390
+ throw staleError();
391
+ if (p.conflicts.length > 0)
392
+ throw nameConflictError(p.conflicts, kind);
393
+ const promotable = kind;
394
+ const written = await this.withPromotion(promotable, id, (prepared) => this.writeScope(actor, kind, prepared.platformId, target, scopeHash, opts, {
395
+ hashId: id,
396
+ promote: prepared,
397
+ }));
398
+ return this.view(kind, written);
399
+ }
400
+ /**
401
+ * Disables the component on the whole deployment (after its preview, `scopeHash` required) or
402
+ * enables it again (no hash; refused while an org it would be offered to has a skill of its name).
403
+ */
404
+ async setDisabled(actor, kind, id, body, opts = {}) {
405
+ if (body.disabled && body.scopeHash === undefined) {
406
+ throw new ApiError("validation_failed", "scopeHash: required when disabling (from POST scope/preview with disabled: true)", [{ path: "scopeHash", message: "required when disabling" }]);
407
+ }
408
+ await this.writeDisabled(actor, kind, id, body.disabled, body.scopeHash, opts);
409
+ return this.view(kind, id);
410
+ }
411
+ /** Shows or hides the component to orgs outside its `named` list (never makes it usable). */
412
+ async setShown(actor, kind, id, shown, opts = {}) {
413
+ const r = await this.resolve(kind, id);
414
+ if ("c" in r) {
415
+ await this.writeShown(actor, kind, r.c.id, shown, opts);
416
+ return this.view(kind, r.c.id);
417
+ }
418
+ // An org row not promoted yet is shown to nobody: hiding it changes nothing; showing it goes
419
+ // through the share gate on the org row, then promotes it (rulings P3-3, P3-23)
420
+ if (!shown)
421
+ return this.view(kind, id);
422
+ assertPromotable(r.org);
423
+ assertShareable(gateRow(virtualOf(r.org)));
424
+ const written = await this.withPromotion(kind, id, (prepared) => this.writeShown(actor, kind, prepared.platformId, true, opts, prepared));
425
+ return this.view(kind, written);
426
+ }
427
+ /**
428
+ * The org admin's switch of one component (`PUT orgs/:orgId/components/:kind/:id/switch`): only
429
+ * this component (rule 5). A component not offered to the org -> 404. On: refused while the
430
+ * component or its plugin is disabled (`plugin.disabled`) or an own skill of the org has its name
431
+ * (`plugin.skill_conflict`, rule 10). Off: of a builtin plugin -> `plugin.scope_locked`; while it
432
+ * is on, without `confirm` the preview (agents that use it) and its hash are returned, with the
433
+ * current hash the switch is written (a changed preview -> `plugin.switch_stale`).
434
+ */
435
+ async setSwitch(orgId, actor, kind, id, body, actorTokenId, auditDetail) {
436
+ await this.orgLock.lockAndAuthorize(orgId, actor, ACTION[kind]);
437
+ // The rows an unshare narrows (ruling P3-25) are locked before the scope is read, in its order
438
+ // (plugin, then component): a switch-on never commits against a scope narrowed meanwhile
439
+ const [found] = await loadComponents(this.db, kind, { ids: [id] });
440
+ if (!found)
441
+ throw notFound();
442
+ if (found.itemId !== null)
443
+ await lockItemShared(this.db, found.itemId);
444
+ const [c] = await loadComponents(this.db, kind, { ids: [id], forUpdate: true });
445
+ if (!c)
446
+ throw notFound();
447
+ const st = await loadScopeState(this.db, kind, [c]);
448
+ const p = pluginFactsOf(st, c.itemId, orgId);
449
+ const listed = listedIn(st, c.id, orgId);
450
+ const sw = switchOf(st, c.id, orgId);
451
+ const on = componentOn(c, p, listed, sw);
452
+ // Disabled on the deployment (the component or its plugin): it keeps its scope, so the org's
453
+ // switch can still be turned off, never on; one its scope does not offer the org is unknown
454
+ const stopped = c.disabled || (p?.live === true && p.disabled);
455
+ const offered = componentOffered({ ...c, disabled: false }, p && { ...p, disabled: false }, listed);
456
+ if (!on && !offered)
457
+ throw notFound();
458
+ if (body.enabled && stopped) {
459
+ throw new ApiError("plugin.disabled", "This component is disabled by the super admin and cannot be switched on");
460
+ }
461
+ if (body.enabled) {
462
+ if (kind !== "connector_template" && !on) {
463
+ const clash = kind === "skill"
464
+ ? await skillNameClashes(this.db, orgId, c, c.name)
465
+ : await templateTypeClashes(this.db, orgId, c);
466
+ if (clash.skills.length > 0) {
467
+ const [org] = await this.liveOrgs(orgId);
468
+ const name = kind === "skill" ? c.name : templateTypeOf(c.plugin, c.name);
469
+ throw nameConflictError([{ orgId, orgName: org?.name ?? orgId, name, ...clash }], kind);
470
+ }
471
+ }
472
+ }
473
+ else {
474
+ if (componentLocked(c, p)) {
475
+ throw new ApiError("plugin.scope_locked", "This component belongs to a built-in plugin: it is on for every organization and cannot be switched off here");
476
+ }
477
+ if (on) {
478
+ const preview = {
479
+ agents: await agentsUsing(this.db, orgId, kind, [c.id]),
480
+ connectorsKept: kind === "connector_template" ? await connectorsMadeFrom(this.db, orgId, c.id) : 0,
481
+ };
482
+ const confirm = switchHash(orgId, c, preview);
483
+ if (body.confirm === undefined)
484
+ return { kind: "preview", preview, confirm };
485
+ if (body.confirm !== confirm) {
486
+ throw new ApiError("plugin.switch_stale", "What switching this component off affects has changed; review it and confirm again");
487
+ }
488
+ }
489
+ }
490
+ if (sw !== body.enabled) {
491
+ await this.db
492
+ .insertInto("component_org_switches")
493
+ .values({
494
+ kind,
495
+ component_id: c.id,
496
+ org_id: orgId,
497
+ enabled: body.enabled,
498
+ updated_by: actor,
499
+ })
500
+ .onConflict((oc) => oc.columns(["kind", "component_id", "org_id"]).doUpdateSet({
501
+ enabled: body.enabled,
502
+ updated_by: actor,
503
+ updated_at: sql `now()`,
504
+ }))
505
+ .execute();
506
+ await audit(this.db, {
507
+ actorAccountId: actor,
508
+ ...(actorTokenId !== undefined && { actorTokenId }),
509
+ orgId,
510
+ action: "component.org_switched",
511
+ target: c.id,
512
+ detail: {
513
+ kind,
514
+ name: c.name,
515
+ plugin: c.plugin,
516
+ from: sw,
517
+ to: body.enabled,
518
+ ...auditDetail,
519
+ },
520
+ });
521
+ }
522
+ return {
523
+ kind: "done",
524
+ component: {
525
+ kind,
526
+ id: c.id,
527
+ name: c.name,
528
+ plugin: c.plugin,
529
+ switch: body.enabled,
530
+ on: componentOn(c, p, listed, body.enabled),
531
+ locked: componentLocked(c, p),
532
+ },
533
+ };
534
+ }
535
+ /**
536
+ * What {@link setSwitch} would do to the org's switch, read-only (the Platform tool's preview):
537
+ * the component as the org sees it, whether it is `stopped` on the deployment, and for one that
538
+ * is on and can be switched off the preview of the agents that lose it with the `confirm` hash
539
+ * the switch-off needs (both null otherwise). Unknown or not offered -> 404 `component.not_found`.
540
+ */
541
+ async switchPreview(orgId, kind, id) {
542
+ const [c] = await loadComponents(this.db, kind, { ids: [id] });
543
+ if (!c)
544
+ throw notFound();
545
+ const st = await loadScopeState(this.db, kind, [c]);
546
+ const p = pluginFactsOf(st, c.itemId, orgId);
547
+ const listed = listedIn(st, c.id, orgId);
548
+ const sw = switchOf(st, c.id, orgId);
549
+ const on = componentOn(c, p, listed, sw);
550
+ const stopped = c.disabled || (p?.live === true && p.disabled);
551
+ const offered = componentOffered({ ...c, disabled: false }, p && { ...p, disabled: false }, listed);
552
+ if (!on && !offered)
553
+ throw notFound();
554
+ const locked = componentLocked(c, p);
555
+ let preview = null;
556
+ let confirm = null;
557
+ if (on && !locked) {
558
+ preview = {
559
+ agents: await agentsUsing(this.db, orgId, kind, [c.id]),
560
+ connectorsKept: kind === "connector_template" ? await connectorsMadeFrom(this.db, orgId, c.id) : 0,
561
+ };
562
+ confirm = switchHash(orgId, c, preview);
563
+ }
564
+ return {
565
+ component: { kind, id: c.id, name: c.name, plugin: c.plugin, switch: sw, on, locked },
566
+ stopped,
567
+ preview,
568
+ confirm,
569
+ };
570
+ }
571
+ /**
572
+ * `x.hashId`: the id the preview was asked for (an org row's id before its promotion);
573
+ * `x.promote`: the org row to promote first, in this transaction. Returns the id written.
574
+ */
575
+ async writeScope(actor, kind, id, target, hash, opts, x) {
576
+ await this.adminLock.lockAndAuthorize(actor);
577
+ if (x.promote)
578
+ id = await this.promotion.promote(x.promote, actor);
579
+ const c = await this.component(kind, id, true);
580
+ const t = await this.targetOf(c, target);
581
+ const from = await this.listed(kind, id);
582
+ // Its own scope: the owner stays listed (P3-17), widening goes through the share gate (P3-16);
583
+ // following the plugin again takes the plugin's scope, which its own writer gates
584
+ if (t.scopeMode === "own") {
585
+ assertOwnerListed(gateRow(c), t);
586
+ assertShareableTarget(gateRow(c), await this.effectiveScope(c, from), t);
587
+ }
588
+ const p = await this.compute(c, t, { hashId: x.hashId });
589
+ if (p.scopeHash !== hash)
590
+ throw staleError();
591
+ if (p.conflicts.length > 0)
592
+ throw nameConflictError(p.conflicts, kind);
593
+ if (c.scopeMode === t.scopeMode && c.scope === t.scope && from.join() === t.orgs.join()) {
594
+ return id;
595
+ }
596
+ const before = await this.effectiveScope(c, from);
597
+ await this.db
598
+ .updateTable(TABLE[kind])
599
+ .set({
600
+ scope_mode: t.scopeMode,
601
+ scope: t.scope,
602
+ scope_version: sql `scope_version + 1`,
603
+ updated_at: sql `now()`,
604
+ })
605
+ .where("id", "=", id)
606
+ .execute();
607
+ await this.db
608
+ .deleteFrom("component_scope_orgs")
609
+ .where("kind", "=", kind)
610
+ .where("component_id", "=", id)
611
+ .execute();
612
+ if (t.scopeMode === "own" && t.orgs.length > 0) {
613
+ await this.db
614
+ .insertInto("component_scope_orgs")
615
+ .values(t.orgs.map((org_id) => ({ kind, component_id: id, org_id })))
616
+ .execute();
617
+ }
618
+ // An own scope that newly shows an org-owned component tells its owner (P3-22)
619
+ if (t.scopeMode === "own" && kind !== "connector_template") {
620
+ const shared = newlySharedWith(before, t);
621
+ if (shared === "all_orgs" || shared.length > 0) {
622
+ await notifyItemShared(this.db, c.ownerOrgId, { kind, id }, c.name, shared);
623
+ }
624
+ }
625
+ await audit(this.db, {
626
+ actorAccountId: actor,
627
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
628
+ action: "component.scope_changed",
629
+ target: id,
630
+ detail: {
631
+ kind,
632
+ name: c.name,
633
+ plugin: c.plugin,
634
+ from: { scopeMode: c.scopeMode, scope: c.scope, orgs: from },
635
+ to: { scopeMode: t.scopeMode, scope: t.scope, orgs: t.orgs },
636
+ ...opts.auditDetail,
637
+ },
638
+ });
639
+ return id;
640
+ }
641
+ async writeDisabled(actor, kind, id, disabled, hash, opts) {
642
+ await this.adminLock.lockAndAuthorize(actor);
643
+ const c = await this.component(kind, id, true);
644
+ if (c.disabled === disabled)
645
+ return;
646
+ const p = await this.compute(c, await this.targetOf(c, { disabled }));
647
+ if (disabled && p.scopeHash !== hash)
648
+ throw staleError();
649
+ if (p.conflicts.length > 0)
650
+ throw nameConflictError(p.conflicts, kind);
651
+ await this.db
652
+ .updateTable(TABLE[kind])
653
+ .set({
654
+ disabled,
655
+ scope_version: sql `scope_version + 1`,
656
+ updated_at: sql `now()`,
657
+ })
658
+ .where("id", "=", id)
659
+ .execute();
660
+ await audit(this.db, {
661
+ actorAccountId: actor,
662
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
663
+ action: "component.scope_changed",
664
+ target: id,
665
+ detail: {
666
+ kind,
667
+ name: c.name,
668
+ plugin: c.plugin,
669
+ disabled: { from: c.disabled, to: disabled },
670
+ ...opts.auditDetail,
671
+ },
672
+ });
673
+ }
674
+ /** `promote`: the org row to promote first, in this transaction. Returns the id written. */
675
+ async writeShown(actor, kind, id, shown, opts, promote) {
676
+ await this.adminLock.lockAndAuthorize(actor);
677
+ if (promote)
678
+ id = await this.promotion.promote(promote, actor);
679
+ const [c] = await loadComponents(this.db, kind, { ids: [id], forUpdate: true });
680
+ if (!c)
681
+ throw notFound();
682
+ // Showing goes through the share gate (P3-16); hiding is always allowed
683
+ if (shown)
684
+ assertShareable(gateRow(c));
685
+ if (c.shownToOthers === shown)
686
+ return id;
687
+ await this.db
688
+ .updateTable(TABLE[kind])
689
+ .set({ shown_to_others: shown, updated_at: sql `now()` })
690
+ .where("id", "=", id)
691
+ .execute();
692
+ await audit(this.db, {
693
+ actorAccountId: actor,
694
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
695
+ action: "component.shown_changed",
696
+ target: id,
697
+ detail: {
698
+ kind,
699
+ name: c.name,
700
+ plugin: c.plugin,
701
+ from: c.shownToOthers,
702
+ to: shown,
703
+ ...opts.auditDetail,
704
+ },
705
+ });
706
+ return id;
707
+ }
708
+ /**
709
+ * A live component's versions, newest first. A connector template keeps no history: its one entry
710
+ * is the current version. Missing (or removed) -> 404 `component.not_found`.
711
+ */
712
+ async versions(kind, id) {
713
+ const r = await this.resolve(kind, id);
714
+ if ("org" in r)
715
+ return this.orgOwnedVersions(kind, id);
716
+ const c = r.c;
717
+ id = c.id;
718
+ if (kind === "connector_template") {
719
+ const row = await this.db
720
+ .selectFrom("platform_connector_templates")
721
+ .select("updated_at")
722
+ .where("id", "=", id)
723
+ .executeTakeFirstOrThrow();
724
+ return [
725
+ {
726
+ version: c.version,
727
+ catalogVersion: c.version,
728
+ updatedOnOwn: false,
729
+ createdAt: row.updated_at.toISOString(),
730
+ },
731
+ ];
732
+ }
733
+ const rows = kind === "skill"
734
+ ? await this.db
735
+ .selectFrom("platform_skill_versions")
736
+ .select(["version", "catalog_version", "updated_on_own", "created_at"])
737
+ .where("skill_id", "=", id)
738
+ .orderBy("version", "desc")
739
+ .execute()
740
+ : await this.db
741
+ .selectFrom("platform_agent_template_versions")
742
+ .select(["version", "catalog_version", "updated_on_own", "created_at"])
743
+ .where("template_id", "=", id)
744
+ .orderBy("version", "desc")
745
+ .execute();
746
+ return rows.map((r) => ({
747
+ version: String(r.version),
748
+ catalogVersion: r.catalog_version,
749
+ updatedOnOwn: r.updated_on_own,
750
+ createdAt: r.created_at.toISOString(),
751
+ }));
752
+ }
753
+ /** An org-owned skill's or agent template's versions (ruling P2-11); else 404. */
754
+ async orgOwnedVersions(kind, id) {
755
+ const owned = (await this.list(kind)).find((x) => x.id === id && x.owner.kind === "org");
756
+ if (!owned)
757
+ throw notFound();
758
+ const rows = kind === "skill"
759
+ ? await this.db
760
+ .selectFrom("skill_versions")
761
+ .select(["version", "catalog_version", "created_at"])
762
+ .where("skill_id", "=", id)
763
+ .orderBy("version", "desc")
764
+ .execute()
765
+ : await this.db
766
+ .selectFrom("agent_template_versions")
767
+ .select(["version", "catalog_version", "created_at"])
768
+ .where("template_id", "=", id)
769
+ .orderBy("version", "desc")
770
+ .execute();
771
+ return rows.map((r) => ({
772
+ version: String(r.version),
773
+ catalogVersion: r.catalog_version,
774
+ updatedOnOwn: false,
775
+ createdAt: r.created_at.toISOString(),
776
+ }));
777
+ }
778
+ async view(kind, id) {
779
+ const v = (await this.list(kind)).find((x) => x.id === id);
780
+ if (!v)
781
+ throw notFound();
782
+ return v;
783
+ }
784
+ /** The live component (row locked with `forUpdate`); missing -> 404, of a builtin plugin -> 409. */
785
+ async component(kind, id, forUpdate) {
786
+ const [c] = await loadComponents(this.db, kind, { ids: [id], forUpdate });
787
+ if (!c)
788
+ throw notFound();
789
+ if (c.itemId !== null) {
790
+ const item = await this.db
791
+ .selectFrom("catalog_items")
792
+ .select("builtin")
793
+ .where("id", "=", c.itemId)
794
+ .executeTakeFirst();
795
+ if (item?.builtin)
796
+ throw builtinError();
797
+ }
798
+ return c;
799
+ }
800
+ /**
801
+ * The scope that offers the component now: its own (`listed`: its own list), or for `follow` its
802
+ * plugin's (`all` for a builtin or deleted plugin: the widest, so nothing counts as widening).
803
+ */
804
+ async effectiveScope(c, listed) {
805
+ if (c.scopeMode === "own" || c.itemId === null)
806
+ return { scope: c.scope, orgs: listed };
807
+ const item = await this.db
808
+ .selectFrom("catalog_items")
809
+ .select(["scope", "builtin"])
810
+ .where("id", "=", c.itemId)
811
+ .where("deleted_at", "is", null)
812
+ .executeTakeFirst();
813
+ if (!item || item.builtin)
814
+ return { scope: "all", orgs: [] };
815
+ const rows = await this.db
816
+ .selectFrom("catalog_item_scope_orgs")
817
+ .select("org_id")
818
+ .where("item_id", "=", c.itemId)
819
+ .execute();
820
+ return { scope: item.scope, orgs: rows.map((r) => r.org_id) };
821
+ }
822
+ /** The component's own `named` list, sorted. */
823
+ async listed(kind, id) {
824
+ const rows = await this.db
825
+ .selectFrom("component_scope_orgs")
826
+ .select("org_id")
827
+ .where("kind", "=", kind)
828
+ .where("component_id", "=", id)
829
+ .orderBy("org_id")
830
+ .execute();
831
+ return rows.map((r) => r.org_id);
832
+ }
833
+ /**
834
+ * The state after the change: `orgs` only with `named`, each a live org. `listed`: the list now
835
+ * (an org row not promoted yet: `[owner]`), else read.
836
+ */
837
+ async targetOf(c, target, listed) {
838
+ const now = {
839
+ scopeMode: c.scopeMode,
840
+ scope: c.scope,
841
+ orgs: listed ?? (await this.listed(c.kind, c.id)),
842
+ disabled: c.disabled,
843
+ };
844
+ if ("disabled" in target)
845
+ return { ...now, disabled: target.disabled };
846
+ if ("follow" in target) {
847
+ if (c.itemId === null) {
848
+ throw new ApiError("validation_failed", "follow: this component has no plugin to follow", [
849
+ { path: "follow", message: "the component has no plugin" },
850
+ ]);
851
+ }
852
+ return { ...now, scopeMode: "follow", orgs: [] };
853
+ }
854
+ if (target.orgs !== undefined && target.scope !== "named") {
855
+ throw new ApiError("validation_failed", "orgs: only allowed with scope named", [
856
+ { path: "orgs", message: "only allowed with scope named" },
857
+ ]);
858
+ }
859
+ const orgs = [...new Set(target.orgs ?? [])].sort();
860
+ await assertOrgsExist(this.db, orgs);
861
+ return { scopeMode: "own", scope: target.scope, orgs, disabled: c.disabled };
862
+ }
863
+ /** Live orgs (`only`: that one), sorted by id. */
864
+ async liveOrgs(only) {
865
+ let q = this.db
866
+ .selectFrom("orgs")
867
+ .select(["id", "name"])
868
+ .where("deleted_at", "is", null)
869
+ .orderBy("id");
870
+ if (only !== undefined)
871
+ q = q.where("id", "=", only);
872
+ return q.execute();
873
+ }
874
+ on(c, st, orgId) {
875
+ return componentOn(c, pluginFactsOf(st, c.itemId, orgId), listedIn(st, c.id, orgId), switchOf(st, c.id, orgId));
876
+ }
877
+ /**
878
+ * The preview of moving `c` to `target` (read through the current context). `x.hashId`: the id
879
+ * the hash names (the one the preview was asked for); `x.listed`: the list now of an org row not
880
+ * promoted yet (`[owner]`).
881
+ */
882
+ async compute(c, target, x = {}) {
883
+ const st = await loadScopeState(this.db, c.kind, [c]);
884
+ if (x.listed !== undefined)
885
+ st.listed.set(c.id, new Set(x.listed));
886
+ const after = {
887
+ scopeMode: target.scopeMode,
888
+ scope: target.scope,
889
+ disabled: target.disabled,
890
+ itemId: c.itemId,
891
+ // a template shipped off stays so: following its plugin again, it is off without a switch
892
+ ...(c.defaultOff === true && { defaultOff: true }),
893
+ };
894
+ const listedAfter = new Set(target.orgs);
895
+ const affected = [];
896
+ const conflicts = [];
897
+ for (const org of await this.liveOrgs()) {
898
+ const p = pluginFactsOf(st, c.itemId, org.id);
899
+ const listed = listedIn(st, c.id, org.id);
900
+ const sw = switchOf(st, c.id, org.id);
901
+ if (componentOn(c, p, listed, sw) && !componentOn(after, p, listedAfter.has(org.id), sw)) {
902
+ const agents = await agentsUsing(this.db, org.id, c.kind, [c.id]);
903
+ affected.push({
904
+ orgId: org.id,
905
+ orgName: org.name,
906
+ agents: agents.map((a) => ({ id: a.id, name: a.name })),
907
+ connectorsKept: c.kind === "connector_template" ? await connectorsMadeFrom(this.db, org.id, c.id) : 0,
908
+ });
909
+ }
910
+ if (c.kind !== "connector_template" &&
911
+ componentOffered(after, p, listedAfter.has(org.id)) &&
912
+ !componentOffered(c, p, listed)) {
913
+ // rule 10: a skill by its name, an agent template by its roster type (ruling P4-13)
914
+ const clash = c.kind === "skill"
915
+ ? await skillNameClashes(this.db, org.id, c, c.name)
916
+ : await templateTypeClashes(this.db, org.id, c);
917
+ if (clash.skills.length > 0) {
918
+ const name = c.kind === "skill" ? c.name : templateTypeOf(c.plugin, c.name);
919
+ conflicts.push({ orgId: org.id, orgName: org.name, name, ...clash });
920
+ }
921
+ }
922
+ }
923
+ const p = { affected, conflicts };
924
+ return { ...p, scopeHash: previewHash({ kind: c.kind, id: x.hashId ?? c.id }, target, p) };
925
+ }
926
+ };
927
+ __decorate([
928
+ Transactional()
929
+ ], ComponentScopeService.prototype, "setSwitch", null);
930
+ __decorate([
931
+ Transactional()
932
+ ], ComponentScopeService.prototype, "writeScope", null);
933
+ __decorate([
934
+ Transactional()
935
+ ], ComponentScopeService.prototype, "writeDisabled", null);
936
+ __decorate([
937
+ Transactional()
938
+ ], ComponentScopeService.prototype, "writeShown", null);
939
+ ComponentScopeService = __decorate([
940
+ Injectable(),
941
+ __param(0, Inject(KernelDb)),
942
+ __param(1, Inject(SuperAdminLock)),
943
+ __param(2, Inject(OrgLock)),
944
+ __param(3, Inject(ComponentPromotion)),
945
+ __param(4, Inject(TransactionHost))
946
+ ], ComponentScopeService);
947
+ export { ComponentScopeService };
948
+ /** The plugin row FOR SHARE (exclusive with its scope writers and an unshare, which hold it FOR UPDATE). */
949
+ async function lockItemShared(db, itemId) {
950
+ await db.selectFrom("catalog_items").select("id").where("id", "=", itemId).forShare().execute();
951
+ }
952
+ /**
953
+ * An org row not promoted yet as the platform row it would become (ruling P3-3): its own scope
954
+ * `named: [owner]`, not shown, owned and created by its org.
955
+ */
956
+ const virtualOf = (o) => ({
957
+ kind: o.kind,
958
+ id: o.id,
959
+ name: o.name,
960
+ plugin: o.plugin,
961
+ version: String(o.version),
962
+ description: null,
963
+ itemId: null,
964
+ scopeMode: "own",
965
+ scope: "named",
966
+ disabled: false,
967
+ shownToOthers: false,
968
+ ownerOrgId: o.orgId,
969
+ originOrgId: o.orgId,
970
+ shareable: o.shareable,
971
+ });
972
+ /**
973
+ * 409 `catalog.not_owned` unless the org row is content its org created itself (ruling P3-46): a
974
+ * skill without plugin provenance, an org template (no plugin, no catalog item; ruling P4-13).
975
+ */
976
+ function assertPromotable(o) {
977
+ if (!o.ownable)
978
+ throw notOwnedError(o.name);
979
+ }
980
+ /** The share gate's view of a component row. */
981
+ const gateRow = (c) => ({
982
+ owner_org_id: c.ownerOrgId,
983
+ shareable: c.shareable,
984
+ name: c.name,
985
+ });
986
+ const TABLE = {
987
+ skill: "platform_skills",
988
+ agent_template: "platform_agent_templates",
989
+ connector_template: "platform_connector_templates",
990
+ };