@capybara-hq/kernel 0.1.0-rc.2 → 0.1.0-rc.21

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 (1039) hide show
  1. package/bootstrap.json +94 -5
  2. package/dist/admin/admin-agents.controller.d.ts +28 -0
  3. package/dist/admin/admin-agents.controller.js +79 -0
  4. package/dist/admin/admin-connectors.controller.d.ts +29 -0
  5. package/dist/admin/admin-connectors.controller.js +79 -0
  6. package/dist/admin/admin-items.schemas.d.ts +42 -0
  7. package/dist/admin/admin-items.schemas.js +48 -0
  8. package/dist/admin/admin.controller.d.ts +52 -80
  9. package/dist/admin/admin.controller.js +112 -81
  10. package/dist/admin/admin.module.d.ts +4 -1
  11. package/dist/admin/admin.module.js +50 -4
  12. package/dist/admin/admin.schemas.d.ts +69 -0
  13. package/dist/admin/admin.schemas.js +53 -0
  14. package/dist/admin/audit.controller.d.ts +14 -0
  15. package/dist/admin/audit.controller.js +42 -0
  16. package/dist/admin/audit.schemas.d.ts +8 -0
  17. package/dist/admin/audit.schemas.js +17 -0
  18. package/dist/admin/extensions.controller.d.ts +34 -3
  19. package/dist/admin/extensions.controller.js +66 -8
  20. package/dist/admin/extensions.schemas.d.ts +7 -0
  21. package/dist/admin/extensions.schemas.js +10 -0
  22. package/dist/admin/health.service.d.ts +104 -0
  23. package/dist/admin/health.service.js +246 -0
  24. package/dist/admin/limit-defaults.d.ts +20 -0
  25. package/dist/admin/limit-defaults.js +10 -0
  26. package/dist/admin/overview.controller.d.ts +31 -0
  27. package/dist/admin/overview.controller.js +78 -0
  28. package/dist/admin/overview.schemas.d.ts +8 -0
  29. package/dist/admin/overview.schemas.js +13 -0
  30. package/dist/admin/overview.service.d.ts +112 -0
  31. package/dist/admin/overview.service.js +223 -0
  32. package/dist/admin/platform-audit.service.d.ts +41 -0
  33. package/dist/admin/platform-audit.service.js +70 -0
  34. package/dist/admin/setup-lock.d.ts +1 -1
  35. package/dist/admin/setup-lock.js +1 -1
  36. package/dist/admin/setup.controller.d.ts +1 -1
  37. package/dist/admin/setup.controller.js +1 -1
  38. package/dist/admin/setup.service.d.ts +4 -4
  39. package/dist/admin/setup.service.js +8 -8
  40. package/dist/admin/usage.service.d.ts +149 -0
  41. package/dist/admin/usage.service.js +321 -0
  42. package/dist/agents/admin-agents.d.ts +92 -0
  43. package/dist/agents/admin-agents.js +170 -0
  44. package/dist/agents/agent-lookup.d.ts +24 -0
  45. package/dist/agents/agent-lookup.js +46 -2
  46. package/dist/agents/agent-profile.service.d.ts +31 -0
  47. package/dist/agents/agent-profile.service.js +122 -0
  48. package/dist/agents/agents.controller.d.ts +53 -168
  49. package/dist/agents/agents.controller.js +163 -34
  50. package/dist/agents/agents.module.d.ts +6 -2
  51. package/dist/agents/agents.module.js +41 -7
  52. package/dist/agents/agents.schemas.d.ts +392 -0
  53. package/dist/agents/agents.schemas.js +126 -0
  54. package/dist/agents/agents.service.d.ts +121 -36
  55. package/dist/agents/agents.service.js +411 -121
  56. package/dist/agents/definition.d.ts +142 -21
  57. package/dist/agents/definition.js +389 -43
  58. package/dist/agents/from-template.d.ts +106 -0
  59. package/dist/agents/from-template.js +680 -0
  60. package/dist/agents/from-template.service.d.ts +72 -0
  61. package/dist/agents/from-template.service.js +178 -0
  62. package/dist/agents/instruction-files.d.ts +60 -0
  63. package/dist/agents/instruction-files.js +111 -0
  64. package/dist/agents/models.controller.d.ts +44 -6
  65. package/dist/agents/models.controller.js +84 -8
  66. package/dist/agents/org-templates.d.ts +186 -0
  67. package/dist/agents/org-templates.js +876 -0
  68. package/dist/agents/pending-connector-requests.d.ts +79 -0
  69. package/dist/agents/pending-connector-requests.js +215 -0
  70. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  71. package/dist/agents/pending-connectors.controller.js +91 -0
  72. package/dist/agents/pending-connectors.service.d.ts +62 -0
  73. package/dist/agents/pending-connectors.service.js +282 -0
  74. package/dist/agents/profile.d.ts +114 -0
  75. package/dist/agents/profile.js +55 -0
  76. package/dist/agents/readiness.controller.d.ts +26 -0
  77. package/dist/agents/readiness.controller.js +56 -0
  78. package/dist/agents/templates.controller.d.ts +77 -5
  79. package/dist/agents/templates.controller.js +153 -7
  80. package/dist/agents/templates.d.ts +127 -23
  81. package/dist/agents/templates.js +482 -44
  82. package/dist/agents/templates.schemas.d.ts +20 -0
  83. package/dist/agents/templates.schemas.js +45 -0
  84. package/dist/background/background.controller.d.ts +38 -0
  85. package/dist/background/background.controller.js +88 -0
  86. package/dist/background/background.module.d.ts +10 -0
  87. package/dist/background/background.module.js +39 -0
  88. package/dist/background/background.schemas.d.ts +10 -0
  89. package/dist/background/background.schemas.js +16 -0
  90. package/dist/background/finish.d.ts +44 -0
  91. package/dist/background/finish.js +95 -0
  92. package/dist/background/launch-lock.d.ts +15 -0
  93. package/dist/background/launch-lock.js +40 -0
  94. package/dist/background/launch.d.ts +42 -0
  95. package/dist/background/launch.js +77 -0
  96. package/dist/background/poll.job.d.ts +56 -0
  97. package/dist/background/poll.job.js +195 -0
  98. package/dist/background/render.d.ts +23 -0
  99. package/dist/background/render.js +48 -0
  100. package/dist/background/session.d.ts +48 -0
  101. package/dist/background/session.js +80 -0
  102. package/dist/background/status.d.ts +35 -0
  103. package/dist/background/status.js +57 -0
  104. package/dist/background/stop.d.ts +68 -0
  105. package/dist/background/stop.js +244 -0
  106. package/dist/background/store.d.ts +167 -0
  107. package/dist/background/store.js +361 -0
  108. package/dist/background/store.module.d.ts +6 -0
  109. package/dist/background/store.module.js +22 -0
  110. package/dist/background/tasks.service.d.ts +109 -0
  111. package/dist/background/tasks.service.js +271 -0
  112. package/dist/background/wake-rules.d.ts +66 -0
  113. package/dist/background/wake-rules.js +113 -0
  114. package/dist/background/wake.d.ts +30 -0
  115. package/dist/background/wake.js +63 -0
  116. package/dist/catalog/admin-catalog.controller.d.ts +136 -52
  117. package/dist/catalog/admin-catalog.controller.js +275 -65
  118. package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
  119. package/dist/catalog/admin-catalog.schemas.js +99 -0
  120. package/dist/catalog/appearance.schemas.d.ts +10 -0
  121. package/dist/catalog/appearance.schemas.js +20 -0
  122. package/dist/catalog/appearance.service.d.ts +105 -0
  123. package/dist/catalog/appearance.service.js +306 -0
  124. package/dist/catalog/catalog-content.d.ts +122 -35
  125. package/dist/catalog/catalog-content.js +122 -14
  126. package/dist/catalog/catalog-files.d.ts +42 -0
  127. package/dist/catalog/catalog-files.js +89 -0
  128. package/dist/catalog/catalog-import.module.d.ts +7 -0
  129. package/dist/catalog/catalog-import.module.js +63 -0
  130. package/dist/catalog/catalog-items.d.ts +122 -7
  131. package/dist/catalog/catalog-items.js +301 -13
  132. package/dist/catalog/catalog-scope.service.d.ts +293 -0
  133. package/dist/catalog/catalog-scope.service.js +1236 -0
  134. package/dist/catalog/catalog.module.d.ts +7 -9
  135. package/dist/catalog/catalog.module.js +47 -31
  136. package/dist/catalog/catalog.service.d.ts +122 -31
  137. package/dist/catalog/catalog.service.js +177 -105
  138. package/dist/catalog/claude/agents.js +15 -10
  139. package/dist/catalog/claude/translate.js +3 -0
  140. package/dist/catalog/cli.d.ts +11 -1
  141. package/dist/catalog/cli.js +29 -1
  142. package/dist/catalog/component-promotion.d.ts +96 -0
  143. package/dist/catalog/component-promotion.js +395 -0
  144. package/dist/catalog/component-scope.controller.d.ts +102 -0
  145. package/dist/catalog/component-scope.controller.js +257 -0
  146. package/dist/catalog/component-scope.schemas.d.ts +118 -0
  147. package/dist/catalog/component-scope.schemas.js +97 -0
  148. package/dist/catalog/component-scope.service.d.ts +394 -0
  149. package/dist/catalog/component-scope.service.js +1133 -0
  150. package/dist/catalog/component-state.d.ts +207 -0
  151. package/dist/catalog/component-state.js +484 -0
  152. package/dist/catalog/git-source.d.ts +9 -1
  153. package/dist/catalog/git-source.js +29 -2
  154. package/dist/catalog/job-ids.d.ts +30 -0
  155. package/dist/catalog/job-ids.js +25 -0
  156. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  157. package/dist/catalog/marketplace-icons.d.ts +64 -0
  158. package/dist/catalog/marketplace-icons.js +131 -0
  159. package/dist/catalog/marketplaces.controller.d.ts +50 -41
  160. package/dist/catalog/marketplaces.controller.js +130 -46
  161. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  162. package/dist/catalog/marketplaces.schemas.js +53 -0
  163. package/dist/catalog/marketplaces.service.d.ts +110 -17
  164. package/dist/catalog/marketplaces.service.js +337 -29
  165. package/dist/catalog/org-catalog.controller.d.ts +114 -62
  166. package/dist/catalog/org-catalog.controller.js +191 -98
  167. package/dist/catalog/org-catalog.schemas.d.ts +104 -0
  168. package/dist/catalog/org-catalog.schemas.js +107 -0
  169. package/dist/catalog/org-catalog.service.d.ts +72 -33
  170. package/dist/catalog/org-catalog.service.js +367 -158
  171. package/dist/catalog/org-extension-switch.d.ts +41 -0
  172. package/dist/catalog/org-extension-switch.js +115 -0
  173. package/dist/catalog/org-extension.controller.d.ts +133 -0
  174. package/dist/catalog/org-extension.controller.js +313 -0
  175. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  176. package/dist/catalog/org-extension.schemas.js +22 -0
  177. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  178. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  179. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  180. package/dist/catalog/org-plugin-uploads.js +122 -0
  181. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  182. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  183. package/dist/catalog/owned-items.d.ts +188 -0
  184. package/dist/catalog/owned-items.js +808 -0
  185. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  186. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  187. package/dist/catalog/ownership.d.ts +172 -0
  188. package/dist/catalog/ownership.js +326 -0
  189. package/dist/catalog/platform-components.d.ts +243 -0
  190. package/dist/catalog/platform-components.js +872 -0
  191. package/dist/catalog/platform-migration.d.ts +115 -0
  192. package/dist/catalog/platform-migration.js +583 -0
  193. package/dist/catalog/plugin-import.d.ts +254 -47
  194. package/dist/catalog/plugin-import.js +810 -112
  195. package/dist/catalog/plugin-install.d.ts +205 -42
  196. package/dist/catalog/plugin-install.js +828 -126
  197. package/dist/catalog/plugin-package.d.ts +43 -4
  198. package/dist/catalog/plugin-package.js +194 -7
  199. package/dist/catalog/plugin-upgrade.d.ts +308 -225
  200. package/dist/catalog/plugin-upgrade.js +1325 -1131
  201. package/dist/catalog/request-rules.d.ts +65 -0
  202. package/dist/catalog/request-rules.js +217 -0
  203. package/dist/catalog/requests.service.d.ts +194 -118
  204. package/dist/catalog/requests.service.js +530 -343
  205. package/dist/catalog/reserved-names.d.ts +8 -0
  206. package/dist/catalog/reserved-names.js +42 -0
  207. package/dist/catalog/scope-orgs.d.ts +21 -0
  208. package/dist/catalog/scope-orgs.js +67 -0
  209. package/dist/catalog/scope-state.d.ts +35 -0
  210. package/dist/catalog/scope-state.js +87 -0
  211. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  212. package/dist/catalog/scope-sync-workers.js +29 -0
  213. package/dist/catalog/scope-sync.d.ts +176 -0
  214. package/dist/catalog/scope-sync.js +576 -0
  215. package/dist/catalog/scope.d.ts +42 -0
  216. package/dist/catalog/scope.js +42 -0
  217. package/dist/catalog/unshare.d.ts +22 -0
  218. package/dist/catalog/unshare.js +119 -0
  219. package/dist/channels/actions.js +10 -3
  220. package/dist/channels/cards.d.ts +36 -10
  221. package/dist/channels/cards.js +100 -25
  222. package/dist/channels/channels.module.js +13 -2
  223. package/dist/channels/channels.schemas.d.ts +41 -0
  224. package/dist/channels/channels.schemas.js +40 -0
  225. package/dist/channels/connections.controller.d.ts +46 -37
  226. package/dist/channels/connections.controller.js +76 -34
  227. package/dist/channels/connections.service.d.ts +102 -10
  228. package/dist/channels/connections.service.js +271 -24
  229. package/dist/channels/inbound.d.ts +11 -1
  230. package/dist/channels/inbound.js +87 -7
  231. package/dist/channels/outbound.d.ts +14 -1
  232. package/dist/channels/outbound.js +64 -15
  233. package/dist/channels/phrases.d.ts +33 -2
  234. package/dist/channels/phrases.js +29 -1
  235. package/dist/channels/supervisor.d.ts +2 -0
  236. package/dist/channels/supervisor.js +4 -0
  237. package/dist/channels/threads.d.ts +5 -0
  238. package/dist/channels/threads.js +8 -0
  239. package/dist/channels/webhook.d.ts +21 -1
  240. package/dist/channels/webhook.js +39 -4
  241. package/dist/client/client-access.service.d.ts +102 -0
  242. package/dist/client/client-access.service.js +303 -0
  243. package/dist/client/client-builds.service.d.ts +109 -0
  244. package/dist/client/client-builds.service.js +229 -0
  245. package/dist/client/client-delivery.controller.d.ts +25 -0
  246. package/dist/client/client-delivery.controller.js +66 -0
  247. package/dist/client/client-files.d.ts +48 -0
  248. package/dist/client/client-files.js +136 -0
  249. package/dist/client/client-reports.cron.d.ts +13 -0
  250. package/dist/client/client-reports.cron.js +42 -0
  251. package/dist/client/client-reports.service.d.ts +30 -0
  252. package/dist/client/client-reports.service.js +102 -0
  253. package/dist/client/client-sign-in.service.d.ts +21 -0
  254. package/dist/client/client-sign-in.service.js +49 -0
  255. package/dist/client/client.controller.d.ts +49 -0
  256. package/dist/client/client.controller.js +129 -0
  257. package/dist/client/client.module.d.ts +8 -0
  258. package/dist/client/client.module.js +28 -0
  259. package/dist/client/client.schemas.d.ts +61 -0
  260. package/dist/client/client.schemas.js +27 -0
  261. package/dist/config/docs.js +5 -1
  262. package/dist/config/schema.d.ts +35 -2
  263. package/dist/config/schema.js +216 -21
  264. package/dist/conversations/access.d.ts +6 -4
  265. package/dist/conversations/access.js +29 -5
  266. package/dist/conversations/agent-tree.d.ts +46 -0
  267. package/dist/conversations/agent-tree.js +92 -0
  268. package/dist/conversations/artifacts.d.ts +1 -1
  269. package/dist/conversations/artifacts.js +1 -1
  270. package/dist/conversations/attachments.service.d.ts +30 -0
  271. package/dist/conversations/attachments.service.js +130 -5
  272. package/dist/conversations/conversations.controller.d.ts +79 -44
  273. package/dist/conversations/conversations.controller.js +133 -82
  274. package/dist/conversations/conversations.module.d.ts +1 -1
  275. package/dist/conversations/conversations.module.js +10 -7
  276. package/dist/conversations/conversations.schemas.d.ts +52 -0
  277. package/dist/conversations/conversations.schemas.js +79 -0
  278. package/dist/conversations/conversations.service.d.ts +161 -13
  279. package/dist/conversations/conversations.service.js +329 -57
  280. package/dist/conversations/device-status.d.ts +24 -0
  281. package/dist/conversations/device-status.js +71 -0
  282. package/dist/conversations/event-log.d.ts +45 -9
  283. package/dist/conversations/event-log.js +113 -6
  284. package/dist/conversations/events.d.ts +255 -9
  285. package/dist/conversations/events.js +250 -34
  286. package/dist/conversations/message-context.d.ts +79 -0
  287. package/dist/conversations/message-context.js +145 -0
  288. package/dist/conversations/queue.d.ts +5 -2
  289. package/dist/conversations/queue.js +24 -4
  290. package/dist/conversations/queue.service.d.ts +2 -2
  291. package/dist/conversations/queue.service.js +21 -3
  292. package/dist/conversations/titles.d.ts +12 -3
  293. package/dist/conversations/titles.js +40 -16
  294. package/dist/conversations/tree.d.ts +17 -0
  295. package/dist/conversations/tree.js +42 -0
  296. package/dist/ctx/create-ctx.d.ts +48 -5
  297. package/dist/ctx/create-ctx.js +174 -34
  298. package/dist/db/kernel-schema.d.ts +668 -27
  299. package/dist/db/pool.d.ts +5 -0
  300. package/dist/db/pool.js +3 -0
  301. package/dist/devices/access.d.ts +66 -0
  302. package/dist/devices/access.js +113 -0
  303. package/dist/devices/conversation-devices.d.ts +75 -0
  304. package/dist/devices/conversation-devices.js +230 -0
  305. package/dist/devices/devices.controller.d.ts +36 -0
  306. package/dist/devices/devices.controller.js +124 -0
  307. package/dist/devices/devices.module.d.ts +8 -0
  308. package/dist/devices/devices.module.js +34 -0
  309. package/dist/devices/devices.schemas.d.ts +3 -0
  310. package/dist/devices/devices.schemas.js +14 -0
  311. package/dist/devices/devices.service.d.ts +251 -0
  312. package/dist/devices/devices.service.js +791 -0
  313. package/dist/devices/dto.d.ts +25 -0
  314. package/dist/devices/dto.js +12 -0
  315. package/dist/devices/label.d.ts +11 -0
  316. package/dist/devices/label.js +25 -0
  317. package/dist/devices/legacy-cleanup.job.d.ts +34 -0
  318. package/dist/devices/legacy-cleanup.job.js +141 -0
  319. package/dist/errors.d.ts +215 -3
  320. package/dist/errors.js +215 -3
  321. package/dist/evals/evals.module.js +11 -2
  322. package/dist/evals/evals.schemas.d.ts +110 -0
  323. package/dist/evals/evals.schemas.js +107 -0
  324. package/dist/evals/reconstruct.d.ts +18 -9
  325. package/dist/evals/reconstruct.js +36 -10
  326. package/dist/evals/recorded-tools.d.ts +37 -1
  327. package/dist/evals/recorded-tools.js +120 -10
  328. package/dist/evals/run-replay.d.ts +20 -3
  329. package/dist/evals/run-replay.js +78 -14
  330. package/dist/evals/runs.controller.d.ts +2 -57
  331. package/dist/evals/runs.controller.js +1 -42
  332. package/dist/evals/runs.service.d.ts +8 -7
  333. package/dist/evals/runs.service.js +45 -30
  334. package/dist/evals/sets.controller.d.ts +2 -28
  335. package/dist/evals/sets.controller.js +1 -31
  336. package/dist/evals/sets.service.d.ts +7 -7
  337. package/dist/evals/sets.service.js +23 -17
  338. package/dist/evals/snapshot.d.ts +3 -2
  339. package/dist/evals/snapshot.js +17 -4
  340. package/dist/evals/step-replay.d.ts +4 -6
  341. package/dist/evals/step-replay.js +16 -9
  342. package/dist/evals/trajectory.d.ts +5 -3
  343. package/dist/evals/trajectory.js +4 -1
  344. package/dist/evals/trajectory.service.d.ts +8 -3
  345. package/dist/evals/trajectory.service.js +26 -14
  346. package/dist/evals/worker.d.ts +5 -5
  347. package/dist/evals/worker.js +9 -3
  348. package/dist/extensions/admin-ops.d.ts +81 -14
  349. package/dist/extensions/admin-ops.js +181 -47
  350. package/dist/extensions/admin-view.d.ts +57 -10
  351. package/dist/extensions/admin-view.js +249 -27
  352. package/dist/extensions/approvals.d.ts +12 -2
  353. package/dist/extensions/blobs.d.ts +14 -1
  354. package/dist/extensions/blobs.js +49 -5
  355. package/dist/extensions/bootstrap.d.ts +85 -10
  356. package/dist/extensions/bootstrap.js +215 -36
  357. package/dist/extensions/cli.d.ts +12 -0
  358. package/dist/extensions/cli.js +11 -2
  359. package/dist/extensions/config-hash.d.ts +10 -0
  360. package/dist/extensions/config-hash.js +38 -0
  361. package/dist/extensions/config-issues.d.ts +13 -1
  362. package/dist/extensions/config-issues.js +22 -5
  363. package/dist/extensions/config-json-schema.d.ts +43 -7
  364. package/dist/extensions/config-json-schema.js +124 -58
  365. package/dist/extensions/deployment-config-store.d.ts +6 -0
  366. package/dist/extensions/deployment-config.d.ts +94 -9
  367. package/dist/extensions/deployment-config.js +255 -34
  368. package/dist/extensions/display-name.d.ts +22 -0
  369. package/dist/extensions/display-name.js +77 -0
  370. package/dist/extensions/effective-config.d.ts +133 -0
  371. package/dist/extensions/effective-config.js +379 -0
  372. package/dist/extensions/extensions.module.js +31 -12
  373. package/dist/extensions/guide-places.d.ts +68 -0
  374. package/dist/extensions/guide-places.js +152 -0
  375. package/dist/extensions/hooks.d.ts +37 -4
  376. package/dist/extensions/hooks.js +82 -16
  377. package/dist/extensions/host.d.ts +105 -12
  378. package/dist/extensions/host.js +372 -87
  379. package/dist/extensions/installs.d.ts +30 -9
  380. package/dist/extensions/installs.js +57 -16
  381. package/dist/extensions/instance.d.ts +17 -2
  382. package/dist/extensions/instance.js +21 -0
  383. package/dist/extensions/ledger.d.ts +1 -1
  384. package/dist/extensions/locks.d.ts +12 -0
  385. package/dist/extensions/locks.js +26 -0
  386. package/dist/extensions/org-config.d.ts +97 -7
  387. package/dist/extensions/org-config.js +215 -45
  388. package/dist/extensions/org-levels.d.ts +37 -0
  389. package/dist/extensions/org-levels.js +71 -0
  390. package/dist/extensions/org-overrides.d.ts +151 -0
  391. package/dist/extensions/org-overrides.js +524 -0
  392. package/dist/extensions/package.d.ts +18 -4
  393. package/dist/extensions/package.js +56 -3
  394. package/dist/extensions/permission-set.d.ts +35 -5
  395. package/dist/extensions/permission-set.js +36 -5
  396. package/dist/extensions/permission-view.d.ts +106 -13
  397. package/dist/extensions/permission-view.js +33 -15
  398. package/dist/extensions/plugin-guides.d.ts +282 -0
  399. package/dist/extensions/plugin-guides.js +554 -0
  400. package/dist/extensions/plugin-icons.d.ts +54 -0
  401. package/dist/extensions/plugin-icons.js +125 -0
  402. package/dist/extensions/plugin-items.d.ts +21 -0
  403. package/dist/extensions/plugin-items.js +42 -0
  404. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  405. package/dist/extensions/point-defaults.controller.js +69 -0
  406. package/dist/extensions/point-defaults.d.ts +73 -0
  407. package/dist/extensions/point-defaults.js +236 -0
  408. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  409. package/dist/extensions/point-defaults.schemas.js +14 -0
  410. package/dist/extensions/registry.d.ts +1 -1
  411. package/dist/extensions/registry.js +2 -0
  412. package/dist/extensions/resolve.d.ts +51 -1
  413. package/dist/extensions/resolve.js +85 -3
  414. package/dist/extensions/single-provider.d.ts +92 -0
  415. package/dist/extensions/single-provider.js +180 -0
  416. package/dist/extensions/sources.d.ts +13 -2
  417. package/dist/extensions/sources.js +2 -0
  418. package/dist/extensions/state.module.d.ts +9 -0
  419. package/dist/extensions/state.module.js +46 -0
  420. package/dist/extensions/unavailable.d.ts +50 -0
  421. package/dist/extensions/unavailable.js +115 -0
  422. package/dist/files/previewers.controller.js +2 -3
  423. package/dist/files/previewers.d.ts +10 -3
  424. package/dist/files/previewers.js +40 -11
  425. package/dist/files/previewers.schemas.d.ts +10 -0
  426. package/dist/files/previewers.schemas.js +9 -0
  427. package/dist/http/api.module.js +76 -4
  428. package/dist/http/app.d.ts +11 -2
  429. package/dist/http/app.js +31 -5
  430. package/dist/http/gateway-routes.d.ts +7 -3
  431. package/dist/http/gateway-routes.js +6 -3
  432. package/dist/http/nest-logger.d.ts +6 -5
  433. package/dist/http/nest-logger.js +24 -10
  434. package/dist/http/plugin-dispatch.d.ts +4 -1
  435. package/dist/http/plugin-dispatch.js +14 -2
  436. package/dist/identity/accounts.d.ts +77 -31
  437. package/dist/identity/accounts.js +133 -52
  438. package/dist/identity/audit.d.ts +2 -1
  439. package/dist/identity/auth.controller.js +9 -5
  440. package/dist/identity/auth.guard.d.ts +13 -5
  441. package/dist/identity/auth.guard.js +35 -9
  442. package/dist/identity/cookies.d.ts +26 -5
  443. package/dist/identity/cookies.js +58 -6
  444. package/dist/identity/identity.module.d.ts +1 -1
  445. package/dist/identity/identity.module.js +7 -4
  446. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  447. package/dist/identity/initial-passwords.controller.js +49 -0
  448. package/dist/identity/initial-passwords.d.ts +61 -0
  449. package/dist/identity/initial-passwords.job.d.ts +16 -0
  450. package/dist/identity/initial-passwords.job.js +46 -0
  451. package/dist/identity/initial-passwords.js +159 -0
  452. package/dist/identity/me.controller.d.ts +17 -1
  453. package/dist/identity/me.controller.js +45 -4
  454. package/dist/identity/me.schemas.d.ts +24 -0
  455. package/dist/identity/me.schemas.js +25 -0
  456. package/dist/identity/principal.d.ts +11 -3
  457. package/dist/identity/principal.js +11 -3
  458. package/dist/identity/sessions.d.ts +12 -0
  459. package/dist/identity/sessions.js +45 -0
  460. package/dist/identity/settings.d.ts +99 -12
  461. package/dist/identity/settings.js +234 -25
  462. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  463. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  464. package/dist/identity/write-actor.d.ts +11 -0
  465. package/dist/identity/write-actor.js +7 -0
  466. package/dist/inbox/inbox.module.d.ts +4 -1
  467. package/dist/inbox/inbox.module.js +7 -3
  468. package/dist/inbox/inbox.schemas.d.ts +8 -0
  469. package/dist/inbox/inbox.schemas.js +11 -0
  470. package/dist/inbox/inbox.service.d.ts +64 -4
  471. package/dist/inbox/inbox.service.js +74 -4
  472. package/dist/inbox/org-notices.d.ts +63 -0
  473. package/dist/inbox/org-notices.js +91 -0
  474. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  475. package/dist/inbox/platform-inbox.controller.js +58 -0
  476. package/dist/inbox/platform-inbox.service.d.ts +157 -0
  477. package/dist/inbox/platform-inbox.service.js +281 -0
  478. package/dist/inbox/platform-notices.d.ts +19 -0
  479. package/dist/inbox/platform-notices.js +9 -0
  480. package/dist/index.d.ts +6 -2
  481. package/dist/index.js +7 -1
  482. package/dist/infra/cli/kernel-cli.module.js +9 -1
  483. package/dist/infra/config/kernel-config.service.js +32 -1
  484. package/dist/infra/database/database.module.js +1 -0
  485. package/dist/infra/database/xact-lock.d.ts +1 -1
  486. package/dist/infra/database/xact-lock.js +1 -1
  487. package/dist/infra/events/kernel-events.d.ts +31 -3
  488. package/dist/infra/lifecycle/process-guards.js +4 -0
  489. package/dist/infra/lock/lock.service.d.ts +8 -0
  490. package/dist/infra/lock/lock.service.js +27 -0
  491. package/dist/infra/logging/logging.module.d.ts +4 -2
  492. package/dist/infra/logging/logging.module.js +24 -6
  493. package/dist/infra/presence/presence.module.d.ts +6 -0
  494. package/dist/infra/presence/presence.module.js +22 -0
  495. package/dist/infra/presence/replica-presence.d.ts +87 -0
  496. package/dist/infra/presence/replica-presence.js +189 -0
  497. package/dist/infra/queue/add-job-once.d.ts +14 -0
  498. package/dist/infra/queue/add-job-once.js +16 -0
  499. package/dist/infra/queue/redis-connection.d.ts +6 -0
  500. package/dist/infra/queue/redis-connection.js +7 -0
  501. package/dist/infra/redis/redis.module.js +6 -2
  502. package/dist/infra/throttler/named-throttlers.d.ts +12 -0
  503. package/dist/infra/throttler/named-throttlers.js +67 -0
  504. package/dist/infra/throttler/throttler.guard.js +1 -1
  505. package/dist/infra/tokens.d.ts +6 -1
  506. package/dist/infra/tokens.js +6 -1
  507. package/dist/kernel.module.js +15 -0
  508. package/dist/lifecycle/kernel-lifecycle.d.ts +9 -3
  509. package/dist/lifecycle/kernel-lifecycle.js +51 -11
  510. package/dist/local-devices/device-auth.controller.d.ts +42 -0
  511. package/dist/local-devices/device-auth.controller.js +116 -0
  512. package/dist/local-devices/device-auth.d.ts +119 -0
  513. package/dist/local-devices/device-auth.js +401 -0
  514. package/dist/local-devices/device-auth.module.d.ts +7 -0
  515. package/dist/local-devices/device-auth.module.js +25 -0
  516. package/dist/local-devices/device-routes.d.ts +36 -0
  517. package/dist/local-devices/device-routes.js +90 -0
  518. package/dist/local-devices/dto.d.ts +66 -0
  519. package/dist/local-devices/dto.js +44 -0
  520. package/dist/local-devices/keys.d.ts +25 -0
  521. package/dist/local-devices/keys.js +25 -0
  522. package/dist/local-devices/local-device-gateway.d.ts +134 -0
  523. package/dist/local-devices/local-device-gateway.js +542 -0
  524. package/dist/local-devices/local-device-provider.d.ts +89 -0
  525. package/dist/local-devices/local-device-provider.js +151 -0
  526. package/dist/local-devices/local-devices.module.d.ts +16 -0
  527. package/dist/local-devices/local-devices.module.js +44 -0
  528. package/dist/local-devices/machines.d.ts +118 -0
  529. package/dist/local-devices/machines.js +366 -0
  530. package/dist/local-devices/relay.d.ts +100 -0
  531. package/dist/local-devices/relay.js +373 -0
  532. package/dist/local-devices/targets.d.ts +28 -0
  533. package/dist/local-devices/targets.js +73 -0
  534. package/dist/log.d.ts +13 -1
  535. package/dist/log.js +93 -17
  536. package/dist/models/embeddings.d.ts +82 -0
  537. package/dist/models/embeddings.js +326 -0
  538. package/dist/models/enablement.controller.d.ts +40 -0
  539. package/dist/models/enablement.controller.js +74 -0
  540. package/dist/models/enablement.d.ts +101 -0
  541. package/dist/models/enablement.js +264 -0
  542. package/dist/models/models.module.d.ts +5 -1
  543. package/dist/models/models.module.js +16 -4
  544. package/dist/models/org-models.schemas.d.ts +8 -0
  545. package/dist/models/org-models.schemas.js +22 -0
  546. package/dist/models/prices.d.ts +8 -6
  547. package/dist/models/prices.js +11 -9
  548. package/dist/models/purposes.controller.d.ts +6 -4
  549. package/dist/models/purposes.controller.js +13 -7
  550. package/dist/models/purposes.d.ts +72 -14
  551. package/dist/models/purposes.js +115 -34
  552. package/dist/orgs/directory-sync.d.ts +14 -5
  553. package/dist/orgs/directory-sync.js +41 -17
  554. package/dist/orgs/offboarding.d.ts +12 -8
  555. package/dist/orgs/offboarding.js +54 -33
  556. package/dist/orgs/org-lock.d.ts +5 -0
  557. package/dist/orgs/org-lock.js +13 -0
  558. package/dist/orgs/org.guard.d.ts +10 -0
  559. package/dist/orgs/org.guard.js +43 -32
  560. package/dist/orgs/orgs.controller.d.ts +2 -5
  561. package/dist/orgs/orgs.controller.js +3 -6
  562. package/dist/orgs/orgs.module.js +3 -0
  563. package/dist/orgs/orgs.schemas.d.ts +8 -0
  564. package/dist/orgs/orgs.schemas.js +16 -0
  565. package/dist/orgs/orgs.service.d.ts +23 -8
  566. package/dist/orgs/orgs.service.js +38 -16
  567. package/dist/orgs/roles.d.ts +1 -1
  568. package/dist/orgs/roles.js +5 -1
  569. package/dist/orgs/settings.controller.d.ts +1 -1
  570. package/dist/orgs/settings.service.d.ts +66 -6
  571. package/dist/orgs/settings.service.js +89 -10
  572. package/dist/overrides.d.ts +16 -1
  573. package/dist/overrides.js +10 -0
  574. package/dist/platform/actor.d.ts +48 -0
  575. package/dist/platform/actor.js +100 -0
  576. package/dist/platform/agent-docs.d.ts +18 -0
  577. package/dist/platform/agent-docs.js +59 -0
  578. package/dist/platform/availability.d.ts +14 -0
  579. package/dist/platform/availability.js +43 -0
  580. package/dist/platform/errors.d.ts +28 -0
  581. package/dist/platform/errors.js +65 -0
  582. package/dist/platform/exclusions.d.ts +11 -0
  583. package/dist/platform/exclusions.js +774 -0
  584. package/dist/platform/method.d.ts +6 -0
  585. package/dist/platform/method.js +15 -0
  586. package/dist/platform/operation.d.ts +169 -0
  587. package/dist/platform/operation.js +102 -0
  588. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  589. package/dist/platform/ops/accounts.ops.js +291 -0
  590. package/dist/platform/ops/admin-items.ops.d.ts +37 -0
  591. package/dist/platform/ops/admin-items.ops.js +278 -0
  592. package/dist/platform/ops/admin.ops.d.ts +38 -0
  593. package/dist/platform/ops/admin.ops.js +497 -0
  594. package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
  595. package/dist/platform/ops/agent-skills.ops.js +509 -0
  596. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  597. package/dist/platform/ops/agent-templates.ops.js +272 -0
  598. package/dist/platform/ops/agents.ops.d.ts +37 -0
  599. package/dist/platform/ops/agents.ops.js +730 -0
  600. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  601. package/dist/platform/ops/approvals.ops.js +116 -0
  602. package/dist/platform/ops/background.ops.d.ts +14 -0
  603. package/dist/platform/ops/background.ops.js +134 -0
  604. package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
  605. package/dist/platform/ops/catalog-admin.ops.js +682 -0
  606. package/dist/platform/ops/channels.ops.d.ts +16 -0
  607. package/dist/platform/ops/channels.ops.js +195 -0
  608. package/dist/platform/ops/components.ops.d.ts +46 -0
  609. package/dist/platform/ops/components.ops.js +854 -0
  610. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  611. package/dist/platform/ops/connectors.ops.js +190 -0
  612. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  613. package/dist/platform/ops/conversations.ops.js +470 -0
  614. package/dist/platform/ops/devices.ops.d.ts +26 -0
  615. package/dist/platform/ops/devices.ops.js +311 -0
  616. package/dist/platform/ops/errors.d.ts +16 -0
  617. package/dist/platform/ops/errors.js +30 -0
  618. package/dist/platform/ops/evals.ops.d.ts +28 -0
  619. package/dist/platform/ops/evals.ops.js +783 -0
  620. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  621. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  622. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  623. package/dist/platform/ops/extensions.ops.js +347 -0
  624. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  625. package/dist/platform/ops/inbox.ops.js +381 -0
  626. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  627. package/dist/platform/ops/marketplaces.ops.js +466 -0
  628. package/dist/platform/ops/models.ops.d.ts +25 -0
  629. package/dist/platform/ops/models.ops.js +232 -0
  630. package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
  631. package/dist/platform/ops/org-plugins.ops.js +388 -0
  632. package/dist/platform/ops/org-settings.ops.d.ts +18 -0
  633. package/dist/platform/ops/org-settings.ops.js +127 -0
  634. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  635. package/dist/platform/ops/orgs.ops.js +298 -0
  636. package/dist/platform/ops/other-orgs.d.ts +20 -0
  637. package/dist/platform/ops/other-orgs.js +72 -0
  638. package/dist/platform/ops/paging.d.ts +14 -0
  639. package/dist/platform/ops/paging.js +20 -0
  640. package/dist/platform/ops/platform.ops.d.ts +30 -0
  641. package/dist/platform/ops/platform.ops.js +231 -0
  642. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  643. package/dist/platform/ops/plugins.ops.js +476 -0
  644. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  645. package/dist/platform/ops/previewers.ops.js +109 -0
  646. package/dist/platform/ops/requests.ops.d.ts +14 -0
  647. package/dist/platform/ops/requests.ops.js +191 -0
  648. package/dist/platform/ops/role.d.ts +4 -0
  649. package/dist/platform/ops/role.js +10 -0
  650. package/dist/platform/ops/setup.ops.d.ts +24 -0
  651. package/dist/platform/ops/setup.ops.js +212 -0
  652. package/dist/platform/ops/skills.ops.d.ts +17 -0
  653. package/dist/platform/ops/skills.ops.js +160 -0
  654. package/dist/platform/ops/summary.d.ts +10 -0
  655. package/dist/platform/ops/summary.js +18 -0
  656. package/dist/platform/ops/themes.ops.d.ts +14 -0
  657. package/dist/platform/ops/themes.ops.js +47 -0
  658. package/dist/platform/ops/ui.ops.d.ts +8 -0
  659. package/dist/platform/ops/ui.ops.js +41 -0
  660. package/dist/platform/ops/unavailable.d.ts +23 -0
  661. package/dist/platform/ops/unavailable.js +118 -0
  662. package/dist/platform/parity.d.ts +33 -0
  663. package/dist/platform/parity.js +272 -0
  664. package/dist/platform/platform-ops.module.d.ts +43 -0
  665. package/dist/platform/platform-ops.module.js +142 -0
  666. package/dist/platform/platform.module.d.ts +8 -0
  667. package/dist/platform/platform.module.js +25 -0
  668. package/dist/platform/registry.d.ts +30 -0
  669. package/dist/platform/registry.js +111 -0
  670. package/dist/platform/route-schemas.d.ts +18 -0
  671. package/dist/platform/route-schemas.js +85 -0
  672. package/dist/roles/gateway-role.d.ts +18 -3
  673. package/dist/roles/gateway-role.js +33 -5
  674. package/dist/roles/gateway.module.d.ts +2 -1
  675. package/dist/roles/gateway.module.js +6 -3
  676. package/dist/roles/worker-role.d.ts +6 -4
  677. package/dist/roles/worker-role.js +14 -7
  678. package/dist/roles/worker.module.d.ts +1 -1
  679. package/dist/roles/worker.module.js +21 -1
  680. package/dist/runtime/context/build.d.ts +21 -13
  681. package/dist/runtime/context/build.js +106 -29
  682. package/dist/runtime/context/claude-tools.d.ts +4 -1
  683. package/dist/runtime/context/claude-tools.js +13 -12
  684. package/dist/runtime/context/compaction.js +24 -1
  685. package/dist/runtime/context/device-paths.d.ts +40 -0
  686. package/dist/runtime/context/device-paths.js +48 -0
  687. package/dist/runtime/context/legacy-text.d.ts +22 -0
  688. package/dist/runtime/context/legacy-text.js +37 -0
  689. package/dist/runtime/context/reminders.d.ts +2 -0
  690. package/dist/runtime/context/reminders.js +2 -0
  691. package/dist/runtime/context/run-context.d.ts +65 -0
  692. package/dist/runtime/context/run-context.js +215 -0
  693. package/dist/runtime/context/skills.d.ts +29 -11
  694. package/dist/runtime/context/skills.js +46 -32
  695. package/dist/runtime/context/tool-changes.d.ts +27 -0
  696. package/dist/runtime/context/tool-changes.js +60 -0
  697. package/dist/runtime/hook-calls.d.ts +8 -1
  698. package/dist/runtime/hook-calls.js +40 -7
  699. package/dist/runtime/langgraph-loop.d.ts +3 -1
  700. package/dist/runtime/langgraph-loop.js +36 -17
  701. package/dist/runtime/loop.d.ts +35 -6
  702. package/dist/runtime/maintenance.d.ts +9 -4
  703. package/dist/runtime/maintenance.js +35 -8
  704. package/dist/runtime/model-call.d.ts +54 -11
  705. package/dist/runtime/model-call.js +105 -28
  706. package/dist/runtime/providers.d.ts +149 -29
  707. package/dist/runtime/providers.js +332 -63
  708. package/dist/runtime/run-context.service.d.ts +65 -0
  709. package/dist/runtime/run-context.service.js +236 -0
  710. package/dist/runtime/run-control.d.ts +11 -1
  711. package/dist/runtime/run-control.js +12 -0
  712. package/dist/runtime/run-drafts.d.ts +85 -0
  713. package/dist/runtime/run-drafts.js +230 -0
  714. package/dist/runtime/run-finish.d.ts +1 -1
  715. package/dist/runtime/run-jobs.d.ts +3 -5
  716. package/dist/runtime/run-jobs.js +7 -9
  717. package/dist/runtime/run-queue.d.ts +62 -5
  718. package/dist/runtime/run-queue.js +313 -40
  719. package/dist/runtime/run-worker.d.ts +19 -8
  720. package/dist/runtime/run-worker.js +105 -44
  721. package/dist/runtime/runtime.module.js +13 -3
  722. package/dist/runtime/step-log.d.ts +15 -4
  723. package/dist/runtime/step-log.js +24 -7
  724. package/dist/runtime/stream.controller.d.ts +23 -1
  725. package/dist/runtime/stream.controller.js +60 -3
  726. package/dist/runtime/stream.d.ts +4 -1
  727. package/dist/runtime/stream.js +27 -3
  728. package/dist/runtime/subagents/child.d.ts +55 -7
  729. package/dist/runtime/subagents/child.js +105 -7
  730. package/dist/runtime/subagents/definition.d.ts +31 -26
  731. package/dist/runtime/subagents/definition.js +89 -142
  732. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  733. package/dist/runtime/subagents/deliveries.js +228 -0
  734. package/dist/runtime/subagents/dispatch.d.ts +116 -27
  735. package/dist/runtime/subagents/dispatch.js +213 -142
  736. package/dist/runtime/subagents/limits.d.ts +24 -5
  737. package/dist/runtime/subagents/limits.js +40 -6
  738. package/dist/runtime/subagents/messages.d.ts +95 -0
  739. package/dist/runtime/subagents/messages.js +328 -0
  740. package/dist/runtime/subagents/org-agents.js +2 -1
  741. package/dist/runtime/subagents/preamble.d.ts +4 -4
  742. package/dist/runtime/subagents/preamble.js +9 -7
  743. package/dist/runtime/subagents/progress.d.ts +8 -6
  744. package/dist/runtime/subagents/progress.js +11 -6
  745. package/dist/runtime/subagents/render.d.ts +30 -0
  746. package/dist/runtime/subagents/render.js +53 -0
  747. package/dist/runtime/subagents/roster.d.ts +25 -8
  748. package/dist/runtime/subagents/roster.js +48 -12
  749. package/dist/runtime/subagents/skill-fork.d.ts +4 -3
  750. package/dist/runtime/subagents/skill-fork.js +9 -5
  751. package/dist/runtime/subagents/status.d.ts +14 -0
  752. package/dist/runtime/subagents/status.js +23 -0
  753. package/dist/runtime/subagents/subagents.service.d.ts +9 -6
  754. package/dist/runtime/subagents/subagents.service.js +13 -8
  755. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  756. package/dist/runtime/usage-report-jobs.js +158 -0
  757. package/dist/runtime/usage-report.d.ts +35 -39
  758. package/dist/runtime/usage-report.js +171 -97
  759. package/dist/runtime/waits.d.ts +148 -39
  760. package/dist/runtime/waits.js +426 -112
  761. package/dist/sandbox/jobs.d.ts +40 -13
  762. package/dist/sandbox/jobs.js +57 -20
  763. package/dist/sandbox/leases.d.ts +37 -54
  764. package/dist/sandbox/leases.js +71 -115
  765. package/dist/sandbox/providers.d.ts +34 -7
  766. package/dist/sandbox/providers.js +54 -9
  767. package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
  768. package/dist/sandbox/sandbox-file-reader.js +98 -0
  769. package/dist/sandbox/sandbox.module.d.ts +3 -2
  770. package/dist/sandbox/sandbox.module.js +10 -4
  771. package/dist/sandbox/sandbox.service.d.ts +345 -132
  772. package/dist/sandbox/sandbox.service.js +883 -399
  773. package/dist/sandbox/unreachable.d.ts +30 -0
  774. package/dist/sandbox/unreachable.js +108 -0
  775. package/dist/setup/kernel-checks.d.ts +91 -0
  776. package/dist/setup/kernel-checks.js +295 -0
  777. package/dist/setup/oauth-token-probe.d.ts +47 -0
  778. package/dist/setup/oauth-token-probe.js +108 -0
  779. package/dist/setup/redact-check.d.ts +18 -0
  780. package/dist/setup/redact-check.js +46 -0
  781. package/dist/setup/setup-check-registry.d.ts +86 -0
  782. package/dist/setup/setup-check-registry.js +75 -0
  783. package/dist/setup/setup-checks.controller.d.ts +28 -0
  784. package/dist/setup/setup-checks.controller.js +78 -0
  785. package/dist/setup/setup-checks.schemas.d.ts +38 -0
  786. package/dist/setup/setup-checks.schemas.js +43 -0
  787. package/dist/setup/setup-checks.service.d.ts +144 -0
  788. package/dist/setup/setup-checks.service.js +683 -0
  789. package/dist/setup/setup-guides.controller.d.ts +18 -0
  790. package/dist/setup/setup-guides.controller.js +48 -0
  791. package/dist/setup/setup-guides.schemas.d.ts +10 -0
  792. package/dist/setup/setup-guides.schemas.js +6 -0
  793. package/dist/setup/setup-guides.service.d.ts +126 -0
  794. package/dist/setup/setup-guides.service.js +315 -0
  795. package/dist/setup/setup.module.d.ts +8 -0
  796. package/dist/setup/setup.module.js +31 -0
  797. package/dist/skills/agent-skills.controller.d.ts +48 -0
  798. package/dist/skills/agent-skills.controller.js +131 -0
  799. package/dist/skills/agent-skills.service.d.ts +262 -0
  800. package/dist/skills/agent-skills.service.js +996 -0
  801. package/dist/skills/catalog.d.ts +14 -11
  802. package/dist/skills/catalog.js +32 -50
  803. package/dist/skills/changes.controller.d.ts +12 -22
  804. package/dist/skills/changes.controller.js +27 -56
  805. package/dist/skills/changes.service.d.ts +69 -115
  806. package/dist/skills/changes.service.js +249 -598
  807. package/dist/skills/conversation-catalog.d.ts +53 -0
  808. package/dist/skills/conversation-catalog.js +149 -0
  809. package/dist/skills/invocable.controller.d.ts +1 -1
  810. package/dist/skills/invocable.controller.js +2 -2
  811. package/dist/skills/invocation-keys.d.ts +1 -1
  812. package/dist/skills/invocation-keys.js +1 -1
  813. package/dist/skills/invoke.d.ts +3 -3
  814. package/dist/skills/invoke.js +21 -8
  815. package/dist/skills/package.d.ts +15 -1
  816. package/dist/skills/package.js +14 -1
  817. package/dist/skills/skills.controller.d.ts +32 -6
  818. package/dist/skills/skills.controller.js +64 -11
  819. package/dist/skills/skills.module.js +25 -3
  820. package/dist/skills/skills.schemas.d.ts +44 -0
  821. package/dist/skills/skills.schemas.js +68 -0
  822. package/dist/skills/skills.service.d.ts +123 -26
  823. package/dist/skills/skills.service.js +493 -76
  824. package/dist/skills/usable.d.ts +82 -0
  825. package/dist/skills/usable.js +388 -0
  826. package/dist/themes/render-css.d.ts +13 -0
  827. package/dist/themes/render-css.js +135 -0
  828. package/dist/themes/theme-delivery.service.d.ts +36 -0
  829. package/dist/themes/theme-delivery.service.js +116 -0
  830. package/dist/themes/theme-state.d.ts +116 -0
  831. package/dist/themes/theme-state.js +221 -0
  832. package/dist/themes/theme-usage.d.ts +61 -0
  833. package/dist/themes/theme-usage.js +98 -0
  834. package/dist/themes/themes-public.controller.d.ts +33 -0
  835. package/dist/themes/themes-public.controller.js +98 -0
  836. package/dist/themes/themes.controller.d.ts +13 -0
  837. package/dist/themes/themes.controller.js +38 -0
  838. package/dist/themes/themes.module.d.ts +3 -0
  839. package/dist/themes/themes.module.js +21 -0
  840. package/dist/themes/themes.schemas.d.ts +3 -0
  841. package/dist/themes/themes.schemas.js +2 -0
  842. package/dist/themes/themes.service.d.ts +50 -0
  843. package/dist/themes/themes.service.js +99 -0
  844. package/dist/time-zone.d.ts +5 -0
  845. package/dist/time-zone.js +19 -0
  846. package/dist/tools/admin-connectors.d.ts +69 -0
  847. package/dist/tools/admin-connectors.js +135 -0
  848. package/dist/tools/approvals.controller.js +2 -3
  849. package/dist/tools/approvals.schemas.d.ts +21 -0
  850. package/dist/tools/approvals.schemas.js +15 -0
  851. package/dist/tools/approvals.service.d.ts +26 -2
  852. package/dist/tools/approvals.service.js +44 -5
  853. package/dist/tools/builtin-names.d.ts +104 -0
  854. package/dist/tools/builtin-names.js +164 -0
  855. package/dist/tools/builtins/agent.d.ts +27 -25
  856. package/dist/tools/builtins/agent.js +66 -63
  857. package/dist/tools/builtins/ask-user.d.ts +1 -1
  858. package/dist/tools/builtins/ask-user.js +5 -4
  859. package/dist/tools/builtins/builtin-tools.d.ts +23 -4
  860. package/dist/tools/builtins/builtin-tools.js +78 -12
  861. package/dist/tools/builtins/current-time.d.ts +26 -0
  862. package/dist/tools/builtins/current-time.js +99 -0
  863. package/dist/tools/builtins/handback.d.ts +28 -0
  864. package/dist/tools/builtins/handback.js +53 -0
  865. package/dist/tools/builtins/platform.d.ts +51 -0
  866. package/dist/tools/builtins/platform.js +451 -0
  867. package/dist/tools/builtins/read-tool-output.d.ts +1 -1
  868. package/dist/tools/builtins/read-tool-output.js +2 -2
  869. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  870. package/dist/tools/builtins/sandbox/bash.js +291 -39
  871. package/dist/tools/builtins/sandbox/common.d.ts +135 -36
  872. package/dist/tools/builtins/sandbox/common.js +222 -62
  873. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  874. package/dist/tools/builtins/sandbox/deliver.js +19 -16
  875. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  876. package/dist/tools/builtins/sandbox/edit.js +64 -50
  877. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  878. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  879. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  880. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  881. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  882. package/dist/tools/builtins/sandbox/glob.js +17 -12
  883. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  884. package/dist/tools/builtins/sandbox/grep.js +153 -34
  885. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  886. package/dist/tools/builtins/sandbox/index.js +13 -5
  887. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  888. package/dist/tools/builtins/sandbox/read.js +29 -19
  889. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  890. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  891. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  892. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  893. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  894. package/dist/tools/builtins/sandbox/write.js +51 -44
  895. package/dist/tools/builtins/send-message.d.ts +56 -0
  896. package/dist/tools/builtins/send-message.js +100 -0
  897. package/dist/tools/builtins/skill-load.d.ts +29 -18
  898. package/dist/tools/builtins/skill-load.js +125 -73
  899. package/dist/tools/builtins/tool-search.d.ts +13 -9
  900. package/dist/tools/builtins/tool-search.js +25 -14
  901. package/dist/tools/builtins/web/errors.d.ts +8 -0
  902. package/dist/tools/builtins/web/errors.js +53 -0
  903. package/dist/tools/builtins/web/extract.d.ts +62 -0
  904. package/dist/tools/builtins/web/extract.js +271 -0
  905. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  906. package/dist/tools/builtins/web/fetch.js +175 -0
  907. package/dist/tools/builtins/web/index.d.ts +13 -0
  908. package/dist/tools/builtins/web/index.js +12 -0
  909. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  910. package/dist/tools/builtins/web/page-cache.js +77 -0
  911. package/dist/tools/builtins/web/search.d.ts +25 -0
  912. package/dist/tools/builtins/web/search.js +210 -0
  913. package/dist/tools/builtins/web/url.d.ts +17 -0
  914. package/dist/tools/builtins/web/url.js +43 -0
  915. package/dist/tools/connector-account-policies.d.ts +51 -0
  916. package/dist/tools/connector-account-policies.js +165 -0
  917. package/dist/tools/connectors.controller.d.ts +74 -9
  918. package/dist/tools/connectors.controller.js +133 -16
  919. package/dist/tools/connectors.schemas.d.ts +27 -0
  920. package/dist/tools/connectors.schemas.js +34 -0
  921. package/dist/tools/connectors.service.d.ts +101 -8
  922. package/dist/tools/connectors.service.js +266 -28
  923. package/dist/tools/credentials.d.ts +23 -0
  924. package/dist/tools/credentials.js +90 -1
  925. package/dist/tools/display-names.d.ts +9 -0
  926. package/dist/tools/display-names.js +24 -0
  927. package/dist/tools/drift.js +5 -5
  928. package/dist/tools/elicitation.js +1 -1
  929. package/dist/tools/extension-tools.controller.d.ts +14 -0
  930. package/dist/tools/extension-tools.controller.js +37 -0
  931. package/dist/tools/info.d.ts +61 -4
  932. package/dist/tools/info.js +119 -33
  933. package/dist/tools/legacy-data.d.ts +34 -0
  934. package/dist/tools/legacy-data.js +76 -0
  935. package/dist/tools/legacy-keys.d.ts +51 -0
  936. package/dist/tools/legacy-keys.js +114 -0
  937. package/dist/tools/naming.d.ts +1 -5
  938. package/dist/tools/naming.js +1 -7
  939. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  940. package/dist/tools/oauth/flow-paths.js +1 -1
  941. package/dist/tools/oauth/flow.js +1 -1
  942. package/dist/tools/oauth/tokens.d.ts +54 -7
  943. package/dist/tools/oauth/tokens.js +87 -17
  944. package/dist/tools/org-tool-switches.d.ts +89 -0
  945. package/dist/tools/org-tool-switches.js +201 -0
  946. package/dist/tools/outputs.js +1 -1
  947. package/dist/tools/pipeline.d.ts +67 -47
  948. package/dist/tools/pipeline.js +319 -380
  949. package/dist/tools/policy.d.ts +30 -23
  950. package/dist/tools/policy.js +142 -64
  951. package/dist/tools/questions.controller.d.ts +1 -1
  952. package/dist/tools/questions.controller.js +1 -1
  953. package/dist/tools/questions.service.d.ts +23 -2
  954. package/dist/tools/questions.service.js +104 -2
  955. package/dist/tools/registry.d.ts +189 -68
  956. package/dist/tools/registry.js +318 -236
  957. package/dist/tools/resources.d.ts +1 -1
  958. package/dist/tools/resources.js +1 -1
  959. package/dist/tools/tools.module.js +31 -3
  960. package/dist/tools/validate.js +1 -1
  961. package/dist/ui/admin-ui.controller.d.ts +56 -0
  962. package/dist/ui/admin-ui.controller.js +192 -0
  963. package/dist/ui/arrangement.d.ts +65 -0
  964. package/dist/ui/arrangement.js +171 -0
  965. package/dist/ui/embed-token.d.ts +2 -2
  966. package/dist/ui/embed-token.js +30 -5
  967. package/dist/ui/registry.d.ts +42 -17
  968. package/dist/ui/registry.js +46 -14
  969. package/dist/ui/slots.controller.d.ts +11 -0
  970. package/dist/ui/slots.controller.js +25 -0
  971. package/dist/ui/ui-stream.d.ts +20 -3
  972. package/dist/ui/ui-stream.js +25 -7
  973. package/dist/ui/ui.schemas.d.ts +70 -0
  974. package/dist/ui/ui.schemas.js +65 -0
  975. package/dist/ui/views.controller.d.ts +35 -49
  976. package/dist/ui/views.controller.js +48 -70
  977. package/dist/ui/views.d.ts +112 -18
  978. package/dist/ui/views.js +254 -47
  979. package/package.json +6 -3
  980. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  981. package/src/migrations/0064_account_last_org.sql +7 -0
  982. package/src/migrations/0065_conversation_archive.sql +8 -0
  983. package/src/migrations/0066_extension_display_name.sql +4 -0
  984. package/src/migrations/0067_agent_profiles.sql +20 -0
  985. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  986. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  987. package/src/migrations/0070_background_tasks.sql +37 -0
  988. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  989. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  990. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  991. package/src/migrations/0074_subagent_tree.sql +50 -0
  992. package/src/migrations/0075_plugin_scope.sql +61 -0
  993. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  994. package/src/migrations/0077_scope_requests.sql +52 -0
  995. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  996. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  997. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  998. package/src/migrations/0081_platform_components.sql +129 -0
  999. package/src/migrations/0082_platform_migration.sql +33 -0
  1000. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1001. package/src/migrations/0084_org_owned_items.sql +85 -0
  1002. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1003. package/src/migrations/0086_org_layering.sql +30 -0
  1004. package/src/migrations/0087_approval_summary.sql +6 -0
  1005. package/src/migrations/0088_environments.sql +80 -0
  1006. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1007. package/src/migrations/0090_initial_passwords.sql +27 -0
  1008. package/src/migrations/0091_account_time_zone.sql +4 -0
  1009. package/src/migrations/0092_tools_default_on.sql +27 -0
  1010. package/src/migrations/0093_connected_environments.sql +37 -0
  1011. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1012. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1013. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1014. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1015. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1016. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1017. package/src/migrations/0100_catalog_files.sql +13 -0
  1018. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1019. package/src/migrations/0102_themes.sql +64 -0
  1020. package/src/migrations/0103_ui_theme_setting.sql +7 -0
  1021. package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
  1022. package/src/migrations/0105_devices_rename.sql +136 -0
  1023. package/src/migrations/0106_setup_guides_v2.sql +10 -0
  1024. package/src/migrations/0107_extension_client_builds.sql +50 -0
  1025. package/src/migrations/0108_question_skipped.sql +6 -0
  1026. package/src/migrations/0109_audit_platform_idx.sql +5 -0
  1027. package/src/migrations/0110_usage_time_idx.sql +8 -0
  1028. package/src/migrations/0111_agent_skill_sharing.sql +22 -0
  1029. package/src/migrations/0112_skill_share_requests.sql +4 -0
  1030. package/dist/catalog/upgrade-targets.d.ts +0 -56
  1031. package/dist/catalog/upgrade-targets.js +0 -90
  1032. package/dist/conversations/sandbox-status.d.ts +0 -24
  1033. package/dist/conversations/sandbox-status.js +0 -52
  1034. package/dist/extensions/org-config.controller.d.ts +0 -24
  1035. package/dist/extensions/org-config.controller.js +0 -62
  1036. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1037. package/dist/tools/builtins/sandbox/names.js +0 -20
  1038. package/dist/tools/builtins/skill-write.d.ts +0 -59
  1039. package/dist/tools/builtins/skill-write.js +0 -244
@@ -0,0 +1,808 @@
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
+ // The owner org's own catalog items (plugin scope phase 3, spec §14, rulings P3-2, P3-17 to
11
+ // P3-20; pre-flight F13 to F16, F19): 可共享, delete after a preview, and the one rule an owner
12
+ // delete and an org deletion share: an item another org uses is transferred to the platform, any
13
+ // other one is removed (a plugin's extension then taken out by `OwnedPluginCleanup`). Plugins and,
14
+ // since Task 8, the org's own skills and agent templates (promoted ones through their platform
15
+ // rows, ruling P3-3).
16
+ import { createHash } from "node:crypto";
17
+ import { getQueueToken } from "@nestjs/bullmq";
18
+ import { Inject, Injectable } from "@nestjs/common";
19
+ import { sql } from "kysely";
20
+ import { loadTemplates, readOwnTemplate, softDeleteTemplateIn } from "../agents/templates.js";
21
+ import { ApiError } from "../errors.js";
22
+ import { audit } from "../identity/audit.js";
23
+ import { addPlatformNotice } from "../inbox/platform-notices.js";
24
+ import { afterCommit } from "../infra/database/after-commit.js";
25
+ import { KernelDb } from "../infra/database/kernel-db.js";
26
+ import { TransactionHost } from "../infra/database/transaction-host.js";
27
+ import { Transactional } from "../infra/database/transactional.decorator.js";
28
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
29
+ import { OrgLock } from "../orgs/org-lock.js";
30
+ import { MAINTENANCE_QUEUE_NAME } from "../runtime/maintenance-queue.js";
31
+ import { SkillsService } from "../skills/skills.service.js";
32
+ import { assertNotPlatformDefault } from "../themes/theme-usage.js";
33
+ import { CatalogService } from "./catalog.service.js";
34
+ import { CatalogScopeService } from "./catalog-scope.service.js";
35
+ import { notOwnedError } from "./component-promotion.js";
36
+ import { agentsUsing, COMPONENT_KINDS, componentOn, listedIn, loadComponents, loadScopeState, pluginFactsOf, switchOf, } from "./component-state.js";
37
+ import { ownedPluginCleanupJob } from "./job-ids.js";
38
+ import { orgsUsing } from "./ownership.js";
39
+ import { PluginInstaller } from "./plugin-install.js";
40
+ import { ScopeStillWanted } from "./scope-state.js";
41
+ import { narrowComponentOnUnshare } from "./unshare.js";
42
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
43
+ const notFound = () => new ApiError("catalog.item_not_found", "Catalog item not found");
44
+ const previewStale = () => new ApiError("catalog.preview_stale", "What deleting this plugin does has changed since the preview; preview it again and confirm the new hash");
45
+ const skillNotFound = () => new ApiError("skill.not_found", "Skill not found");
46
+ const componentNotFound = () => new ApiError("component.not_found", "Component not found");
47
+ const COMPONENT_TABLES = [
48
+ "platform_skills",
49
+ "platform_agent_templates",
50
+ "platform_connector_templates",
51
+ "platform_themes",
52
+ ];
53
+ const TABLE_OF = {
54
+ skill: "platform_skills",
55
+ agent_template: "platform_agent_templates",
56
+ connector_template: "platform_connector_templates",
57
+ theme: "platform_themes",
58
+ };
59
+ /** The hash of a delete preview: sha256 over its outcome and sorted ids. */
60
+ function previewHashOf(p) {
61
+ return createHash("sha256")
62
+ .update(JSON.stringify({
63
+ outcome: p.outcome,
64
+ orgs: p.orgs.map((o) => o.id).sort(),
65
+ agents: p.agents.map((a) => a.id).sort(),
66
+ }))
67
+ .digest("hex");
68
+ }
69
+ /**
70
+ * The owner org's actions on the items it owns (P3-17: it toggles 可共享, switches the item off in
71
+ * its own org and deletes it; it never changes the scope or the list). The org admin is re-checked
72
+ * under the org row lock; another org's or a platform item -> 404. Stateless, shared by every
73
+ * replica.
74
+ */
75
+ let OwnedItems = class OwnedItems {
76
+ kdb;
77
+ orgLock;
78
+ catalog;
79
+ scope;
80
+ installer;
81
+ skills;
82
+ queue;
83
+ log;
84
+ txHost;
85
+ constructor(kdb, orgLock, catalog, scope,
86
+ /** The owner org's own uninstall of a removed plugin (ruling P3-41). */
87
+ installer,
88
+ /** The owner's org skill row, soft-deleted after its promoted platform row leaves it. */
89
+ skills,
90
+ /** The removed plugin's cleanup job (`owned-plugin-cleanup-<itemId>`, P3-20). */
91
+ queue, log, txHost) {
92
+ this.kdb = kdb;
93
+ this.orgLock = orgLock;
94
+ this.catalog = catalog;
95
+ this.scope = scope;
96
+ this.installer = installer;
97
+ this.skills = skills;
98
+ this.queue = queue;
99
+ this.log = log;
100
+ this.txHost = txHost;
101
+ }
102
+ get db() {
103
+ return this.kdb.db;
104
+ }
105
+ /**
106
+ * The owner org's 可共享 flag of its item, written on the item and (a plugin) every component
107
+ * row in one transaction (ruling P3-2; turning it off narrows as ruling P3-25 says). A skill or
108
+ * an agent template is named by the org row's id (`skills.manage` / `agents.manage`): only the
109
+ * org's own rows (ruling P3-6: not an agent's skill, not a copy of another owner's platform item:
110
+ * 409 `catalog.not_owned`); one it promoted writes its platform row too (pre-flight F16). Audits
111
+ * `catalog.shareable_changed`.
112
+ */
113
+ async setShareable(orgId, actor, ref, shareable, opts = {}) {
114
+ if (ref.kind !== "plugin") {
115
+ await this.setComponentShareable(orgId, actor, ref.kind, ref.id, shareable, opts);
116
+ return;
117
+ }
118
+ await this.orgLock.lockAndAuthorize(orgId, actor, "catalog.upload");
119
+ const item = await this.ownedRow(orgId, ref.id, true);
120
+ await this.scope.setShareable(item.id, shareable, actor);
121
+ await audit(this.db, {
122
+ actorAccountId: actor,
123
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
124
+ orgId,
125
+ action: "catalog.shareable_changed",
126
+ target: item.id,
127
+ detail: { name: item.name, shareable, ...opts.auditDetail },
128
+ });
129
+ }
130
+ /** {@link setShareable} of an org skill or agent template (named by the org row's id). */
131
+ async setComponentShareable(orgId, actor, kind, id, shareable, opts) {
132
+ // the action that manages the kind (the component scope ACTION map; ruling P4-12 for
133
+ // templates, like their edit and delete)
134
+ await this.orgLock.lockAndAuthorize(orgId, actor, kind === "skill" ? "skills.manage" : "agents.manage");
135
+ const row = await this.ownedComponent(orgId, kind, id, true);
136
+ if (kind === "skill") {
137
+ await this.db.updateTable("skills").set({ shareable }).where("id", "=", row.id).execute();
138
+ }
139
+ else {
140
+ await this.db
141
+ .updateTable("agent_templates")
142
+ .set({ shareable })
143
+ .where("id", "=", row.id)
144
+ .execute();
145
+ }
146
+ // promoted: the platform row is the one every gate reads (ruling P3-2), written in this
147
+ // transaction; turning it off narrows an optional / all scope (ruling P3-25)
148
+ if (row.link !== null) {
149
+ const [c] = await loadComponents(this.db, kind, { ids: [row.link], forUpdate: true });
150
+ if (c) {
151
+ await this.db
152
+ .updateTable(TABLE_OF[kind])
153
+ .set({ shareable, updated_at: sql `now()` })
154
+ .where("id", "=", c.id)
155
+ .execute();
156
+ if (!shareable)
157
+ await narrowComponentOnUnshare(this.db, actor, c);
158
+ }
159
+ }
160
+ await audit(this.db, {
161
+ actorAccountId: actor,
162
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
163
+ orgId,
164
+ action: "catalog.shareable_changed",
165
+ target: row.id,
166
+ detail: {
167
+ kind,
168
+ name: row.name,
169
+ shareable,
170
+ ...(row.link !== null && { platformId: row.link }),
171
+ ...opts.auditDetail,
172
+ },
173
+ });
174
+ }
175
+ /** The other live orgs the item is on in (P3-18, {@link orgsUsing}), by name. */
176
+ async usedByOthers(ref) {
177
+ const row = ref.kind === "plugin"
178
+ ? await this.db
179
+ .selectFrom("catalog_items")
180
+ .select("owner_org_id")
181
+ .where("id", "=", ref.id)
182
+ .where("deleted_at", "is", null)
183
+ .executeTakeFirst()
184
+ : await this.db
185
+ .selectFrom(TABLE_OF[ref.kind])
186
+ .select("owner_org_id")
187
+ .where("id", "=", ref.id)
188
+ .where("deleted_at", "is", null)
189
+ .executeTakeFirst();
190
+ if (!row)
191
+ return [];
192
+ return orgsUsing(this.db, ref, { except: row.owner_org_id });
193
+ }
194
+ /**
195
+ * What deleting the org's skill `skillId` does (pre-flight F19, P3-19): one it promoted that
196
+ * another org uses is `transferred` (`orgs`: those orgs), else `removed`; `agents`: the org's
197
+ * agents that lose it (by its id, or its platform id). Not an org-scope skill of the org -> 404
198
+ * `skill.not_found`.
199
+ */
200
+ async previewSkillDelete(orgId, skillId) {
201
+ const row = await this.orgSkill(orgId, skillId, false);
202
+ const orgs = row.link === null
203
+ ? []
204
+ : await orgsUsing(this.db, { kind: "skill", id: row.link }, {
205
+ except: orgId,
206
+ });
207
+ const agents = await agentsUsing(this.db, orgId, "skill", [row.link ?? row.id]);
208
+ return {
209
+ outcome: orgs.length > 0 ? "transferred" : "removed",
210
+ orgs,
211
+ agents: agents
212
+ .map((a) => ({ id: a.id, name: a.name }))
213
+ .sort((a, b) => a.name.localeCompare(b.name) || a.id.localeCompare(b.id)),
214
+ };
215
+ }
216
+ /**
217
+ * The owner deletes its org skill (`DELETE orgs/:orgId/skills/:id`, `skills.manage` re-checked
218
+ * under the org row lock): one it promoted goes through {@link transferOrRemove} with reason
219
+ * `owner_deleted` (another org using it keeps it, now the platform's), then the org row is
220
+ * soft-deleted as before (audit `skill.deleted`). Not an org-scope skill of the org -> 404.
221
+ */
222
+ async deleteSkill(orgId, actor, skillId, opts = {}) {
223
+ await this.orgLock.lockAndAuthorize(orgId, actor, "skills.manage");
224
+ const row = await this.orgSkill(orgId, skillId, true);
225
+ const outcome = row.link === null
226
+ ? "removed"
227
+ : await this.transferOrRemove({ kind: "skill", id: row.link }, "owner_deleted", actor, opts);
228
+ await this.skills.deleteOrgSkillIn(orgId, row.id, actor, opts.actorTokenId, opts.auditDetail);
229
+ return outcome;
230
+ }
231
+ /**
232
+ * What deleting the org's own agent template `id` does (ruling P4-12, as
233
+ * {@link previewSkillDelete}): one it promoted that another org uses is `transferred` (`orgs`:
234
+ * those orgs), else `removed`; `agents`: the org's agents whose roster loses it. Not the org's
235
+ * own -> 409 `catalog.not_owned`; missing -> 404 `component.not_found`.
236
+ */
237
+ async previewAgentTemplateDelete(orgId, id) {
238
+ const row = await this.ownedComponent(orgId, "agent_template", id, false);
239
+ const orgs = row.link === null
240
+ ? []
241
+ : await orgsUsing(this.db, { kind: "agent_template", id: row.link }, { except: orgId });
242
+ const agents = await agentsUsing(this.db, orgId, "agent_template", [row.link ?? row.id]);
243
+ return {
244
+ outcome: orgs.length > 0 ? "transferred" : "removed",
245
+ orgs,
246
+ agents: agents
247
+ .map((a) => ({ id: a.id, name: a.name }))
248
+ .sort((a, b) => a.name.localeCompare(b.name) || a.id.localeCompare(b.id)),
249
+ };
250
+ }
251
+ /**
252
+ * The owner deletes its org template (`DELETE orgs/:orgId/agent-templates/:id`, ruling P4-12;
253
+ * `agents.manage` re-checked under the org row lock), by the P3 owner rules: one it promoted
254
+ * goes through {@link transferOrRemove} with reason `owner_deleted` (another org using it keeps
255
+ * it, now the platform's, ruling P3-19), then the org row is soft-deleted (sub-agents already
256
+ * started keep their frozen definition; the roster skips it). Agents created from it are never
257
+ * touched (ruling P4-3). Audits `agent_template.deleted`. Not the org's own -> 409
258
+ * `catalog.not_owned`; missing -> 404.
259
+ */
260
+ async deleteAgentTemplate(orgId, actor, id, opts = {}) {
261
+ await this.orgLock.lockAndAuthorize(orgId, actor, "agents.manage");
262
+ const row = await this.ownedComponent(orgId, "agent_template", id, true);
263
+ const outcome = row.link === null
264
+ ? "removed"
265
+ : await this.transferOrRemove({ kind: "agent_template", id: row.link }, "owner_deleted", actor, opts);
266
+ await softDeleteTemplateIn(this.db, orgId, row.id);
267
+ await audit(this.db, {
268
+ actorAccountId: actor,
269
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
270
+ orgId,
271
+ action: "agent_template.deleted",
272
+ target: row.id,
273
+ detail: {
274
+ name: row.name,
275
+ outcome,
276
+ ...(row.link !== null && { platformId: row.link }),
277
+ ...opts.auditDetail,
278
+ },
279
+ });
280
+ return outcome;
281
+ }
282
+ /**
283
+ * The org-scope skill `skillId` of the org (`forUpdate`: row locked), with the platform row it
284
+ * promoted (`link`; a copy of another owner's platform skill has none here). Missing -> 404.
285
+ */
286
+ async orgSkill(orgId, skillId, forUpdate) {
287
+ let q = this.db
288
+ .selectFrom("skills as s")
289
+ .leftJoin("platform_skills as p", "p.id", "s.platform_skill_id")
290
+ .select(["s.id", "s.name", "s.platform_skill_id", "s.pinned_version", "p.owner_org_id"])
291
+ .where("s.id", "=", skillId)
292
+ .where("s.org_id", "=", orgId)
293
+ .where("s.scope", "=", "org")
294
+ .where("s.deleted_at", "is", null);
295
+ if (forUpdate)
296
+ q = q.forUpdate("s");
297
+ const r = await q.executeTakeFirst();
298
+ if (!r)
299
+ throw skillNotFound();
300
+ const promoted = r.platform_skill_id !== null && r.pinned_version === null && r.owner_org_id === orgId;
301
+ return { id: r.id, name: r.name, link: promoted ? r.platform_skill_id : null };
302
+ }
303
+ /**
304
+ * The org's own skill or agent template `id` (ruling P3-6), locked with `forUpdate`: missing
305
+ * (or another org's) -> 404; an agent's own skill, or a copy linked to a platform item another
306
+ * owner has (or pinned to one) -> 409 `catalog.not_owned`. `link`: the platform row it promoted.
307
+ */
308
+ async ownedComponent(orgId, kind, id, forUpdate) {
309
+ if (kind === "agent_template") {
310
+ // the one predicate of the template routes (rulings P3-6, P4-13)
311
+ const t = await readOwnTemplate(this.db, orgId, id, forUpdate);
312
+ if (t === undefined) {
313
+ // a template the org uses but has no row of (another owner's platform template)
314
+ const used = (await loadTemplates(this.db, orgId, [id])).get(id);
315
+ if (used)
316
+ throw notOwnedError(used.name);
317
+ throw componentNotFound();
318
+ }
319
+ if (!("link" in t))
320
+ throw notOwnedError(t.name);
321
+ return { id: t.id, name: t.name, link: t.link };
322
+ }
323
+ let q = this.db
324
+ .selectFrom("skills as s")
325
+ .leftJoin("platform_skills as p", "p.id", "s.platform_skill_id")
326
+ .select([
327
+ "s.id",
328
+ "s.name",
329
+ "s.scope",
330
+ "s.platform_skill_id as link",
331
+ "s.pinned_version",
332
+ "s.catalog_item_id",
333
+ "p.owner_org_id",
334
+ ])
335
+ .where("s.id", "=", id)
336
+ .where("s.org_id", "=", orgId)
337
+ .where("s.deleted_at", "is", null);
338
+ if (forUpdate)
339
+ q = q.forUpdate("s");
340
+ const r = await q.executeTakeFirst();
341
+ if (!r)
342
+ throw skillNotFound();
343
+ if (r.scope !== "org")
344
+ throw notOwnedError(`Skill ${r.name} belongs to an agent and`);
345
+ // only content the org created itself (ruling P3-46): no plugin provenance
346
+ if (r.catalog_item_id !== null)
347
+ throw notOwnedError(r.name);
348
+ if (r.link === null)
349
+ return { id: r.id, name: r.name, link: null };
350
+ if (r.pinned_version !== null || r.owner_org_id !== orgId)
351
+ throw notOwnedError(r.name);
352
+ return { id: r.id, name: r.name, link: r.link };
353
+ }
354
+ /** The preview of deleting the org's own plugin (nothing written). */
355
+ async previewDelete(orgId, itemId) {
356
+ return this.computeDelete(orgId, await this.ownedRow(orgId, itemId, false));
357
+ }
358
+ /**
359
+ * Deletes the org's own plugin after its preview (P3-19): the preview recomputed under the item
360
+ * row lock must give `previewHash` (else 409 `catalog.preview_stale`), then
361
+ * {@link transferOrRemove} with reason `owner_deleted`.
362
+ */
363
+ async delete(orgId, actor, itemId, previewHash, opts = {}) {
364
+ await this.orgLock.lockAndAuthorize(orgId, actor, "catalog.upload");
365
+ const item = await this.ownedRow(orgId, itemId, true);
366
+ if ((await this.computeDelete(orgId, item)).previewHash !== previewHash)
367
+ throw previewStale();
368
+ return this.transferOrRemove({ kind: "plugin", id: itemId }, "owner_deleted", actor, opts);
369
+ }
370
+ /**
371
+ * The owner leaves its item, in the caller's transaction (P3-19, P3-20; pre-flight F14, F15).
372
+ * Another live org uses it ({@link orgsUsing}) -> `transferred`: the item and its components
373
+ * become platform-owned, a pending version is cleared, `shown_to_others` is turned off when the
374
+ * owner had not made it shareable (no exposure the owner switched off), the former owner leaves
375
+ * the list and its switches (an `all` scope, the item's or a component's own, is narrowed to
376
+ * `named` = the orgs using it, ruling P3-39; an `optional` item stays `optional`, ruling P3-40:
377
+ * it passed the share gate already, so every org could see it, and the former owner is then an
378
+ * ordinary org that may switch it on again), written
379
+ * directly rather than through the guarded scope writer (ruling P3-27); platform notice
380
+ * `ownership_transferred`, audit `catalog.ownership_transferred`, the scope sync enqueued after
381
+ * the commit (it uninstalls the former owner's install). Otherwise -> `removed`: the soft delete
382
+ * of `catalog.remove` ({@link CatalogService.removeIn}) and, after the commit, the cleanup job
383
+ * `owned-plugin-cleanup-<itemId>` that takes its extension out; an owner delete
384
+ * (`owner_deleted`) also uninstalls it in the owner org through the normal uninstall, keeping the
385
+ * connectors it created as the org's own (ruling P3-41). A first upload still waiting is never
386
+ * transferred. A gone or platform item -> 404.
387
+ */
388
+ async transferOrRemove(ref, reason, actor, opts = {}) {
389
+ if (ref.kind !== "plugin")
390
+ return this.transferOrRemoveComponent(ref.kind, ref.id, reason, actor, opts);
391
+ const t = this.db;
392
+ const item = await t
393
+ .selectFrom("catalog_items")
394
+ .select(["id", "name", "owner_org_id", "shareable", "scope", "awaiting_confirmation"])
395
+ .where("id", "=", ref.id)
396
+ .where("deleted_at", "is", null)
397
+ .forUpdate()
398
+ .executeTakeFirst();
399
+ if (!item || item.owner_org_id === null)
400
+ throw notFound();
401
+ const owner = item.owner_org_id;
402
+ const others = item.awaiting_confirmation ? [] : await orgsUsing(t, ref, { except: owner });
403
+ if (others.length === 0) {
404
+ await this.catalog.removeIn(actor, item.id, { ...opts, reason });
405
+ if (reason === "owner_deleted")
406
+ await this.uninstallInOwner(owner, actor, item.id, opts);
407
+ afterCommit(() => this.enqueueCleanup(item.id));
408
+ return "removed";
409
+ }
410
+ // A transfer leaves none of its themes `all` (an `all` scope is narrowed, P3-39): refused
411
+ // while one is the platform default (themes spec §7), before anything changes
412
+ // (its theme rows FOR UPDATE first: the theme lock order is item, theme row, `uiTheme`)
413
+ await assertNotPlatformDefault(t, (await loadComponents(t, "theme", { itemId: item.id, forUpdate: true })).map((c) => c.id), () => "narrower");
414
+ // Read before anything changes: where each own-scope `all` component is on (P3-39)
415
+ const narrow = [];
416
+ for (const kind of COMPONENT_KINDS) {
417
+ for (const c of await loadComponents(t, kind, { itemId: item.id, forUpdate: true })) {
418
+ if (c.scopeMode === "own" && c.scope === "all") {
419
+ narrow.push({ c, orgs: await this.componentOrgsOn(c, owner) });
420
+ }
421
+ }
422
+ }
423
+ const now = sql `now()`;
424
+ await t
425
+ .updateTable("catalog_items")
426
+ .set({
427
+ owner_org_id: null,
428
+ pending_version: null,
429
+ pending_by: null,
430
+ pending_at: null,
431
+ ...(!item.shareable && { shown_to_others: false }),
432
+ ...(item.scope === "all" && { scope: "named" }),
433
+ scope_version: sql `scope_version + 1`,
434
+ updated_at: now,
435
+ })
436
+ .where("id", "=", item.id)
437
+ .execute();
438
+ if (item.scope === "all") {
439
+ await t.deleteFrom("catalog_item_scope_orgs").where("item_id", "=", item.id).execute();
440
+ await t
441
+ .insertInto("catalog_item_scope_orgs")
442
+ .values(others.map((o) => ({ item_id: item.id, org_id: o.id })))
443
+ .execute();
444
+ }
445
+ else {
446
+ await t
447
+ .deleteFrom("catalog_item_scope_orgs")
448
+ .where("item_id", "=", item.id)
449
+ .where("org_id", "=", owner)
450
+ .execute();
451
+ }
452
+ await t
453
+ .deleteFrom("catalog_item_org_switches")
454
+ .where("item_id", "=", item.id)
455
+ .where("org_id", "=", owner)
456
+ .execute();
457
+ for (const table of COMPONENT_TABLES) {
458
+ await t
459
+ .updateTable(table)
460
+ .set({ owner_org_id: null, ...(!item.shareable && { shown_to_others: false }) })
461
+ .where("catalog_item_id", "=", item.id)
462
+ .execute();
463
+ }
464
+ for (const kind of COMPONENT_KINDS) {
465
+ const ids = (await loadComponents(t, kind, { itemId: item.id })).map((c) => c.id);
466
+ if (ids.length === 0)
467
+ continue;
468
+ for (const table of ["component_scope_orgs", "component_org_switches"]) {
469
+ await t
470
+ .deleteFrom(table)
471
+ .where("kind", "=", kind)
472
+ .where("component_id", "in", ids)
473
+ .where("org_id", "=", owner)
474
+ .execute();
475
+ }
476
+ }
477
+ for (const { c, orgs } of narrow) {
478
+ await t
479
+ .updateTable(TABLE_OF[c.kind])
480
+ .set({ scope: "named", scope_version: sql `scope_version + 1`, updated_at: now })
481
+ .where("id", "=", c.id)
482
+ .execute();
483
+ await t
484
+ .deleteFrom("component_scope_orgs")
485
+ .where("kind", "=", c.kind)
486
+ .where("component_id", "=", c.id)
487
+ .execute();
488
+ if (orgs.length > 0) {
489
+ await t
490
+ .insertInto("component_scope_orgs")
491
+ .values(orgs.map((org_id) => ({ kind: c.kind, component_id: c.id, org_id })))
492
+ .execute();
493
+ }
494
+ await audit(t, {
495
+ actorAccountId: actor,
496
+ action: "component.scope_changed",
497
+ target: c.id,
498
+ detail: {
499
+ kind: c.kind,
500
+ name: c.name,
501
+ plugin: c.plugin,
502
+ from: { scopeMode: "own", scope: "all", orgs: [] },
503
+ to: { scopeMode: "own", scope: "named", orgs },
504
+ reason: "ownership_transferred",
505
+ },
506
+ });
507
+ }
508
+ const from = await t
509
+ .selectFrom("orgs")
510
+ .select(["id", "name"])
511
+ .where("id", "=", owner)
512
+ .executeTakeFirst();
513
+ await addPlatformNotice(t, "ownership_transferred", {
514
+ ref,
515
+ name: item.name,
516
+ fromOrg: from ?? { id: owner, name: owner },
517
+ reason,
518
+ usedBy: others.length,
519
+ });
520
+ await audit(t, {
521
+ actorAccountId: actor,
522
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
523
+ orgId: owner,
524
+ action: "catalog.ownership_transferred",
525
+ target: item.id,
526
+ detail: {
527
+ name: item.name,
528
+ fromOrgId: owner,
529
+ reason,
530
+ usedBy: others.map((o) => o.id),
531
+ ...opts.auditDetail,
532
+ },
533
+ });
534
+ afterCommit(() => this.scope.enqueueSync(item.id));
535
+ return "transferred";
536
+ }
537
+ /**
538
+ * An org is deleted (P3-20), in `OrgsService.softDeleteIn`'s transaction (PG writes only; the
539
+ * org row is already marked deleted, so it counts as no user): the org's live plugins and the
540
+ * platform skills and agent templates it promoted (ruling P3-3) are locked `FOR UPDATE`, then
541
+ * each goes through {@link transferOrRemove} with reason `org_deleted`. A first upload still
542
+ * waiting is removed and its extension name released here (nothing is installed under it,
543
+ * pre-flight F10); a pending new version of a transferred plugin is cleared; a removed plugin's
544
+ * extension is taken out by the cleanup job after the commit. The org's unpromoted rows (its own
545
+ * skills, copies, installs) are left: they go with the org as before. Must not inject
546
+ * `OrgsService` (it calls this).
547
+ */
548
+ async onOrgDeleted(orgId, actor, opts = {}) {
549
+ const t = this.db;
550
+ const plugins = await t
551
+ .selectFrom("catalog_items")
552
+ .select("id")
553
+ .where("owner_org_id", "=", orgId)
554
+ .where("deleted_at", "is", null)
555
+ .orderBy("id")
556
+ .forUpdate()
557
+ .execute();
558
+ // promoted rows only: a plugin's components (`catalog_item_id` set) follow their plugin
559
+ const skills = await t
560
+ .selectFrom("platform_skills")
561
+ .select("id")
562
+ .where("owner_org_id", "=", orgId)
563
+ .where("catalog_item_id", "is", null)
564
+ .where("deleted_at", "is", null)
565
+ .orderBy("id")
566
+ .forUpdate()
567
+ .execute();
568
+ const templates = await t
569
+ .selectFrom("platform_agent_templates")
570
+ .select("id")
571
+ .where("owner_org_id", "=", orgId)
572
+ .where("catalog_item_id", "is", null)
573
+ .where("deleted_at", "is", null)
574
+ .orderBy("id")
575
+ .forUpdate()
576
+ .execute();
577
+ const refs = [
578
+ ...plugins.map((r) => ({ kind: "plugin", id: r.id })),
579
+ ...skills.map((r) => ({ kind: "skill", id: r.id })),
580
+ ...templates.map((r) => ({ kind: "agent_template", id: r.id })),
581
+ ];
582
+ const counts = { transferred: 0, removed: 0 };
583
+ for (const ref of refs) {
584
+ counts[await this.transferOrRemove(ref, "org_deleted", actor, opts)] += 1;
585
+ }
586
+ return counts;
587
+ }
588
+ /**
589
+ * {@link transferOrRemove} of a platform skill or agent template the org promoted (ruling P3-3;
590
+ * `id` its platform id): another live org uses it -> `transferred`: platform-owned, not shown
591
+ * when the owner had not made it shareable, an `all` scope narrowed to `named` = the orgs using
592
+ * it (ruling P3-39), the former owner off its list and switches, platform notice
593
+ * `ownership_transferred`, audit `catalog.ownership_transferred`. Otherwise `removed`: the
594
+ * platform row is soft-deleted (audit `component.removed`). The owner's org row is the caller's
595
+ * (an owner delete soft-deletes it). Gone or platform-owned -> 404.
596
+ */
597
+ async transferOrRemoveComponent(kind, id, reason, actor, opts) {
598
+ const t = this.db;
599
+ const [c] = await loadComponents(t, kind, { ids: [id], forUpdate: true });
600
+ if (!c || c.ownerOrgId === null)
601
+ throw componentNotFound();
602
+ const owner = c.ownerOrgId;
603
+ const ref = { kind, id };
604
+ const others = await orgsUsing(t, ref, { except: owner });
605
+ const now = sql `now()`;
606
+ const table = TABLE_OF[kind];
607
+ if (others.length === 0) {
608
+ await t
609
+ .updateTable(table)
610
+ .set({ deleted_at: now, updated_at: now })
611
+ .where("id", "=", id)
612
+ .execute();
613
+ await audit(t, {
614
+ actorAccountId: actor,
615
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
616
+ orgId: owner,
617
+ action: "component.removed",
618
+ target: id,
619
+ detail: { kind, name: c.name, reason },
620
+ });
621
+ return "removed";
622
+ }
623
+ // read before anything changes: where an own `all` scope is on (P3-39)
624
+ const narrowTo = c.scopeMode === "own" && c.scope === "all" ? await this.componentOrgsOn(c, owner) : null;
625
+ await t
626
+ .updateTable(table)
627
+ .set({
628
+ owner_org_id: null,
629
+ ...(!c.shareable && { shown_to_others: false }),
630
+ ...(narrowTo !== null && {
631
+ scope: "named",
632
+ scope_version: sql `scope_version + 1`,
633
+ }),
634
+ updated_at: now,
635
+ })
636
+ .where("id", "=", id)
637
+ .execute();
638
+ if (narrowTo !== null) {
639
+ await t
640
+ .deleteFrom("component_scope_orgs")
641
+ .where("kind", "=", kind)
642
+ .where("component_id", "=", id)
643
+ .execute();
644
+ if (narrowTo.length > 0) {
645
+ await t
646
+ .insertInto("component_scope_orgs")
647
+ .values(narrowTo.map((org_id) => ({ kind, component_id: id, org_id })))
648
+ .execute();
649
+ }
650
+ }
651
+ for (const list of ["component_scope_orgs", "component_org_switches"]) {
652
+ await t
653
+ .deleteFrom(list)
654
+ .where("kind", "=", kind)
655
+ .where("component_id", "=", id)
656
+ .where("org_id", "=", owner)
657
+ .execute();
658
+ }
659
+ const from = await t
660
+ .selectFrom("orgs")
661
+ .select(["id", "name"])
662
+ .where("id", "=", owner)
663
+ .executeTakeFirst();
664
+ await addPlatformNotice(t, "ownership_transferred", {
665
+ ref,
666
+ name: c.name,
667
+ fromOrg: from ?? { id: owner, name: owner },
668
+ reason,
669
+ usedBy: others.length,
670
+ });
671
+ await audit(t, {
672
+ actorAccountId: actor,
673
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
674
+ orgId: owner,
675
+ action: "catalog.ownership_transferred",
676
+ target: id,
677
+ detail: {
678
+ kind,
679
+ name: c.name,
680
+ fromOrgId: owner,
681
+ reason,
682
+ usedBy: others.map((o) => o.id),
683
+ ...(narrowTo !== null && { narrowedTo: narrowTo }),
684
+ },
685
+ });
686
+ return "transferred";
687
+ }
688
+ /** The live orgs other than `except` where component `c` is on now ({@link componentOn}). */
689
+ async componentOrgsOn(c, except) {
690
+ const st = await loadScopeState(this.db, c.kind, [c]);
691
+ const orgs = await this.db
692
+ .selectFrom("orgs")
693
+ .select("id")
694
+ .where("deleted_at", "is", null)
695
+ .where("id", "!=", except)
696
+ .orderBy("id")
697
+ .execute();
698
+ return orgs
699
+ .map((o) => o.id)
700
+ .filter((o) => componentOn(c, pluginFactsOf(st, c.itemId, o), listedIn(st, c.id, o), switchOf(st, c.id, o)));
701
+ }
702
+ /**
703
+ * The owner org's live install of a removed plugin, uninstalled in the caller's transaction
704
+ * through the normal uninstall (ruling P3-41): `via: "scope"` (the item is gone, so no scope
705
+ * wants it), which keeps the connectors it created as the org's own. One that another install
706
+ * still depends on, or one still installing, stays (logged).
707
+ */
708
+ async uninstallInOwner(owner, actor, itemId, opts) {
709
+ const live = await this.db
710
+ .selectFrom("plugin_installs")
711
+ .select("id")
712
+ .where("org_id", "=", owner)
713
+ .where("item_id", "=", itemId)
714
+ .where("status", "=", "installed")
715
+ .executeTakeFirst();
716
+ if (live === undefined)
717
+ return;
718
+ try {
719
+ await this.installer.uninstall(owner, actor, live.id, {
720
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
721
+ via: "scope",
722
+ });
723
+ }
724
+ catch (e) {
725
+ if (!(e instanceof ScopeStillWanted))
726
+ throw e;
727
+ this.log.info("the removed plugin's install stays: another install depends on it", {
728
+ orgId: owner,
729
+ itemId,
730
+ });
731
+ }
732
+ }
733
+ /** Enqueues the removed plugin's cleanup; a failure only warns (the daily sweep repairs it). */
734
+ async enqueueCleanup(itemId) {
735
+ const job = ownedPluginCleanupJob(itemId);
736
+ try {
737
+ await this.queue.add(job.name, job.data, job.opts);
738
+ }
739
+ catch (err) {
740
+ this.log.warn("enqueueing the owned plugin cleanup failed", { itemId, err });
741
+ }
742
+ }
743
+ async computeDelete(orgId, item) {
744
+ const ref = { kind: "plugin", id: item.id };
745
+ const orgs = item.awaiting_confirmation ? [] : await orgsUsing(this.db, ref, { except: orgId });
746
+ const agents = new Map();
747
+ for (const kind of COMPONENT_KINDS) {
748
+ const ids = (await loadComponents(this.db, kind, { itemId: item.id })).map((c) => c.id);
749
+ for (const a of await agentsUsing(this.db, orgId, kind, ids))
750
+ agents.set(a.id, a.name);
751
+ }
752
+ const p = {
753
+ outcome: orgs.length > 0 ? "transferred" : "removed",
754
+ orgs,
755
+ agents: [...agents]
756
+ .map(([id, name]) => ({ id, name }))
757
+ .sort((a, b) => a.name.localeCompare(b.name) || a.id.localeCompare(b.id)),
758
+ };
759
+ return { ...p, previewHash: previewHashOf(p) };
760
+ }
761
+ /** The org's own live plugin (`forUpdate`: row locked); another org's or a platform one -> 404. */
762
+ async ownedRow(orgId, itemId, forUpdate) {
763
+ if (!UUID_RE.test(itemId))
764
+ throw notFound();
765
+ let q = this.db
766
+ .selectFrom("catalog_items")
767
+ .select(["id", "name", "owner_org_id", "shareable", "scope", "awaiting_confirmation"])
768
+ .where("id", "=", itemId)
769
+ .where("deleted_at", "is", null);
770
+ if (forUpdate)
771
+ q = q.forUpdate();
772
+ const row = await q.executeTakeFirst();
773
+ if (!row || row.owner_org_id !== orgId)
774
+ throw notFound();
775
+ return row;
776
+ }
777
+ };
778
+ __decorate([
779
+ Transactional()
780
+ ], OwnedItems.prototype, "setShareable", null);
781
+ __decorate([
782
+ Transactional()
783
+ ], OwnedItems.prototype, "deleteSkill", null);
784
+ __decorate([
785
+ Transactional()
786
+ ], OwnedItems.prototype, "deleteAgentTemplate", null);
787
+ __decorate([
788
+ Transactional()
789
+ ], OwnedItems.prototype, "delete", null);
790
+ __decorate([
791
+ Transactional({ propagation: "mandatory" })
792
+ ], OwnedItems.prototype, "transferOrRemove", null);
793
+ __decorate([
794
+ Transactional({ propagation: "mandatory" })
795
+ ], OwnedItems.prototype, "onOrgDeleted", null);
796
+ OwnedItems = __decorate([
797
+ Injectable(),
798
+ __param(0, Inject(KernelDb)),
799
+ __param(1, Inject(OrgLock)),
800
+ __param(2, Inject(CatalogService)),
801
+ __param(3, Inject(CatalogScopeService)),
802
+ __param(4, Inject(PluginInstaller)),
803
+ __param(5, Inject(SkillsService)),
804
+ __param(6, Inject(getQueueToken(MAINTENANCE_QUEUE_NAME))),
805
+ __param(7, Inject(KERNEL_LOGGER)),
806
+ __param(8, Inject(TransactionHost))
807
+ ], OwnedItems);
808
+ export { OwnedItems };