@capybara-hq/kernel 0.1.0-rc.3 → 0.1.0-rc.5

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 (604) hide show
  1. package/bootstrap.json +61 -5
  2. package/dist/admin/admin.controller.d.ts +47 -16
  3. package/dist/admin/admin.controller.js +44 -19
  4. package/dist/admin/extensions.controller.d.ts +24 -3
  5. package/dist/admin/extensions.controller.js +48 -8
  6. package/dist/admin/setup-lock.d.ts +1 -1
  7. package/dist/admin/setup-lock.js +1 -1
  8. package/dist/admin/setup.controller.d.ts +1 -1
  9. package/dist/admin/setup.controller.js +1 -1
  10. package/dist/admin/setup.service.d.ts +4 -4
  11. package/dist/admin/setup.service.js +8 -8
  12. package/dist/agents/agent-lookup.d.ts +19 -0
  13. package/dist/agents/agent-lookup.js +21 -0
  14. package/dist/agents/agent-profile.service.d.ts +29 -0
  15. package/dist/agents/agent-profile.service.js +117 -0
  16. package/dist/agents/agents.controller.d.ts +168 -3
  17. package/dist/agents/agents.controller.js +201 -12
  18. package/dist/agents/agents.module.d.ts +4 -1
  19. package/dist/agents/agents.module.js +36 -6
  20. package/dist/agents/agents.service.d.ts +64 -27
  21. package/dist/agents/agents.service.js +199 -74
  22. package/dist/agents/definition.d.ts +53 -0
  23. package/dist/agents/definition.js +55 -0
  24. package/dist/agents/from-template.d.ts +106 -0
  25. package/dist/agents/from-template.js +649 -0
  26. package/dist/agents/from-template.service.d.ts +60 -0
  27. package/dist/agents/from-template.service.js +161 -0
  28. package/dist/agents/instruction-files.d.ts +60 -0
  29. package/dist/agents/instruction-files.js +111 -0
  30. package/dist/agents/models.controller.d.ts +9 -3
  31. package/dist/agents/models.controller.js +19 -4
  32. package/dist/agents/org-templates.d.ts +176 -0
  33. package/dist/agents/org-templates.js +827 -0
  34. package/dist/agents/pending-connector-requests.d.ts +77 -0
  35. package/dist/agents/pending-connector-requests.js +215 -0
  36. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  37. package/dist/agents/pending-connectors.controller.js +91 -0
  38. package/dist/agents/pending-connectors.service.d.ts +62 -0
  39. package/dist/agents/pending-connectors.service.js +282 -0
  40. package/dist/agents/profile.d.ts +96 -0
  41. package/dist/agents/profile.js +51 -0
  42. package/dist/agents/readiness.controller.d.ts +26 -0
  43. package/dist/agents/readiness.controller.js +56 -0
  44. package/dist/agents/templates.controller.d.ts +86 -5
  45. package/dist/agents/templates.controller.js +171 -7
  46. package/dist/agents/templates.d.ts +127 -23
  47. package/dist/agents/templates.js +476 -53
  48. package/dist/background/background.controller.d.ts +38 -0
  49. package/dist/background/background.controller.js +87 -0
  50. package/dist/background/background.module.d.ts +10 -0
  51. package/dist/background/background.module.js +39 -0
  52. package/dist/background/finish.d.ts +44 -0
  53. package/dist/background/finish.js +94 -0
  54. package/dist/background/launch-lock.d.ts +15 -0
  55. package/dist/background/launch-lock.js +40 -0
  56. package/dist/background/launch.d.ts +36 -0
  57. package/dist/background/launch.js +70 -0
  58. package/dist/background/poll.job.d.ts +56 -0
  59. package/dist/background/poll.job.js +190 -0
  60. package/dist/background/render.d.ts +23 -0
  61. package/dist/background/render.js +48 -0
  62. package/dist/background/session.d.ts +48 -0
  63. package/dist/background/session.js +79 -0
  64. package/dist/background/status.d.ts +35 -0
  65. package/dist/background/status.js +57 -0
  66. package/dist/background/stop.d.ts +68 -0
  67. package/dist/background/stop.js +243 -0
  68. package/dist/background/store.d.ts +162 -0
  69. package/dist/background/store.js +357 -0
  70. package/dist/background/store.module.d.ts +6 -0
  71. package/dist/background/store.module.js +22 -0
  72. package/dist/background/tasks.service.d.ts +77 -0
  73. package/dist/background/tasks.service.js +211 -0
  74. package/dist/background/wake-rules.d.ts +66 -0
  75. package/dist/background/wake-rules.js +113 -0
  76. package/dist/background/wake.d.ts +30 -0
  77. package/dist/background/wake.js +63 -0
  78. package/dist/catalog/admin-catalog.controller.d.ts +129 -30
  79. package/dist/catalog/admin-catalog.controller.js +213 -42
  80. package/dist/catalog/catalog-content.d.ts +58 -32
  81. package/dist/catalog/catalog-content.js +34 -8
  82. package/dist/catalog/catalog-import.module.d.ts +7 -0
  83. package/dist/catalog/catalog-import.module.js +60 -0
  84. package/dist/catalog/catalog-items.d.ts +111 -7
  85. package/dist/catalog/catalog-items.js +279 -13
  86. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  87. package/dist/catalog/catalog-scope.service.js +1116 -0
  88. package/dist/catalog/catalog.module.d.ts +7 -9
  89. package/dist/catalog/catalog.module.js +41 -31
  90. package/dist/catalog/catalog.service.d.ts +101 -29
  91. package/dist/catalog/catalog.service.js +104 -106
  92. package/dist/catalog/claude/agents.js +2 -0
  93. package/dist/catalog/cli.d.ts +11 -1
  94. package/dist/catalog/cli.js +26 -1
  95. package/dist/catalog/component-promotion.d.ts +96 -0
  96. package/dist/catalog/component-promotion.js +395 -0
  97. package/dist/catalog/component-scope.controller.d.ts +152 -0
  98. package/dist/catalog/component-scope.controller.js +287 -0
  99. package/dist/catalog/component-scope.service.d.ts +303 -0
  100. package/dist/catalog/component-scope.service.js +936 -0
  101. package/dist/catalog/component-state.d.ts +174 -0
  102. package/dist/catalog/component-state.js +437 -0
  103. package/dist/catalog/job-ids.d.ts +30 -0
  104. package/dist/catalog/job-ids.js +25 -0
  105. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  106. package/dist/catalog/marketplaces.controller.d.ts +22 -5
  107. package/dist/catalog/marketplaces.controller.js +56 -7
  108. package/dist/catalog/marketplaces.service.d.ts +54 -14
  109. package/dist/catalog/marketplaces.service.js +71 -22
  110. package/dist/catalog/org-catalog.controller.d.ts +125 -34
  111. package/dist/catalog/org-catalog.controller.js +181 -65
  112. package/dist/catalog/org-catalog.service.d.ts +65 -33
  113. package/dist/catalog/org-catalog.service.js +324 -157
  114. package/dist/catalog/org-extension-switch.d.ts +41 -0
  115. package/dist/catalog/org-extension-switch.js +115 -0
  116. package/dist/catalog/org-extension.controller.d.ts +119 -0
  117. package/dist/catalog/org-extension.controller.js +266 -0
  118. package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
  119. package/dist/catalog/org-plugin-uploads.controller.js +213 -0
  120. package/dist/catalog/org-plugin-uploads.d.ts +63 -0
  121. package/dist/catalog/org-plugin-uploads.js +116 -0
  122. package/dist/catalog/owned-items.d.ts +184 -0
  123. package/dist/catalog/owned-items.js +789 -0
  124. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  125. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  126. package/dist/catalog/ownership.d.ts +172 -0
  127. package/dist/catalog/ownership.js +326 -0
  128. package/dist/catalog/platform-components.d.ts +221 -0
  129. package/dist/catalog/platform-components.js +761 -0
  130. package/dist/catalog/platform-migration.d.ts +115 -0
  131. package/dist/catalog/platform-migration.js +582 -0
  132. package/dist/catalog/plugin-import.d.ts +178 -34
  133. package/dist/catalog/plugin-import.js +623 -83
  134. package/dist/catalog/plugin-install.d.ts +185 -41
  135. package/dist/catalog/plugin-install.js +758 -126
  136. package/dist/catalog/plugin-upgrade.d.ts +260 -225
  137. package/dist/catalog/plugin-upgrade.js +1148 -1137
  138. package/dist/catalog/request-rules.d.ts +65 -0
  139. package/dist/catalog/request-rules.js +217 -0
  140. package/dist/catalog/requests.service.d.ts +193 -118
  141. package/dist/catalog/requests.service.js +526 -343
  142. package/dist/catalog/reserved-names.d.ts +8 -0
  143. package/dist/catalog/reserved-names.js +42 -0
  144. package/dist/catalog/scope-orgs.d.ts +21 -0
  145. package/dist/catalog/scope-orgs.js +67 -0
  146. package/dist/catalog/scope-state.d.ts +35 -0
  147. package/dist/catalog/scope-state.js +87 -0
  148. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  149. package/dist/catalog/scope-sync-workers.js +29 -0
  150. package/dist/catalog/scope-sync.d.ts +176 -0
  151. package/dist/catalog/scope-sync.js +576 -0
  152. package/dist/catalog/scope.d.ts +42 -0
  153. package/dist/catalog/scope.js +42 -0
  154. package/dist/catalog/unshare.d.ts +22 -0
  155. package/dist/catalog/unshare.js +118 -0
  156. package/dist/channels/actions.js +1 -0
  157. package/dist/channels/cards.js +21 -3
  158. package/dist/channels/channels.module.js +2 -0
  159. package/dist/channels/connections.service.d.ts +16 -1
  160. package/dist/channels/connections.service.js +38 -4
  161. package/dist/channels/inbound.d.ts +9 -1
  162. package/dist/channels/inbound.js +67 -5
  163. package/dist/channels/phrases.d.ts +35 -0
  164. package/dist/channels/phrases.js +29 -0
  165. package/dist/channels/threads.d.ts +5 -0
  166. package/dist/channels/threads.js +8 -0
  167. package/dist/config/docs.js +3 -1
  168. package/dist/config/schema.d.ts +24 -2
  169. package/dist/config/schema.js +145 -19
  170. package/dist/conversations/access.d.ts +6 -4
  171. package/dist/conversations/access.js +29 -5
  172. package/dist/conversations/agent-tree.d.ts +46 -0
  173. package/dist/conversations/agent-tree.js +92 -0
  174. package/dist/conversations/attachments.service.d.ts +30 -0
  175. package/dist/conversations/attachments.service.js +130 -5
  176. package/dist/conversations/conversations.controller.d.ts +79 -23
  177. package/dist/conversations/conversations.controller.js +141 -50
  178. package/dist/conversations/conversations.module.d.ts +1 -1
  179. package/dist/conversations/conversations.module.js +10 -7
  180. package/dist/conversations/conversations.service.d.ts +108 -9
  181. package/dist/conversations/conversations.service.js +237 -30
  182. package/dist/conversations/environment-status.d.ts +24 -0
  183. package/dist/conversations/environment-status.js +71 -0
  184. package/dist/conversations/event-log.d.ts +21 -6
  185. package/dist/conversations/event-log.js +70 -1
  186. package/dist/conversations/events.d.ts +140 -0
  187. package/dist/conversations/events.js +142 -13
  188. package/dist/conversations/queue.d.ts +3 -1
  189. package/dist/conversations/queue.js +13 -2
  190. package/dist/conversations/queue.service.d.ts +1 -1
  191. package/dist/conversations/queue.service.js +8 -1
  192. package/dist/conversations/titles.d.ts +12 -3
  193. package/dist/conversations/titles.js +36 -8
  194. package/dist/conversations/tree.d.ts +17 -0
  195. package/dist/conversations/tree.js +42 -0
  196. package/dist/ctx/create-ctx.d.ts +5 -0
  197. package/dist/ctx/create-ctx.js +15 -5
  198. package/dist/db/kernel-schema.d.ts +420 -20
  199. package/dist/db/pool.d.ts +5 -0
  200. package/dist/db/pool.js +3 -0
  201. package/dist/environments/access.d.ts +41 -0
  202. package/dist/environments/access.js +77 -0
  203. package/dist/environments/conversation-environments.d.ts +61 -0
  204. package/dist/environments/conversation-environments.js +170 -0
  205. package/dist/environments/dto.d.ts +25 -0
  206. package/dist/environments/dto.js +12 -0
  207. package/dist/environments/environments.controller.d.ts +33 -0
  208. package/dist/environments/environments.controller.js +110 -0
  209. package/dist/environments/environments.module.d.ts +8 -0
  210. package/dist/environments/environments.module.js +27 -0
  211. package/dist/environments/environments.service.d.ts +153 -0
  212. package/dist/environments/environments.service.js +541 -0
  213. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  214. package/dist/environments/legacy-cleanup.job.js +141 -0
  215. package/dist/errors.d.ts +90 -2
  216. package/dist/errors.js +90 -2
  217. package/dist/evals/reconstruct.d.ts +18 -9
  218. package/dist/evals/reconstruct.js +26 -7
  219. package/dist/evals/run-replay.d.ts +7 -2
  220. package/dist/evals/run-replay.js +42 -7
  221. package/dist/evals/step-replay.d.ts +2 -5
  222. package/dist/evals/step-replay.js +13 -7
  223. package/dist/evals/trajectory.js +1 -1
  224. package/dist/evals/trajectory.service.d.ts +8 -3
  225. package/dist/evals/trajectory.service.js +26 -14
  226. package/dist/evals/worker.d.ts +5 -5
  227. package/dist/evals/worker.js +9 -3
  228. package/dist/extensions/admin-ops.d.ts +36 -10
  229. package/dist/extensions/admin-ops.js +67 -42
  230. package/dist/extensions/admin-view.d.ts +39 -10
  231. package/dist/extensions/admin-view.js +111 -20
  232. package/dist/extensions/blobs.js +1 -0
  233. package/dist/extensions/bootstrap.d.ts +17 -4
  234. package/dist/extensions/bootstrap.js +70 -9
  235. package/dist/extensions/cli.d.ts +12 -0
  236. package/dist/extensions/cli.js +11 -2
  237. package/dist/extensions/config-issues.d.ts +13 -1
  238. package/dist/extensions/config-issues.js +22 -5
  239. package/dist/extensions/config-json-schema.d.ts +43 -7
  240. package/dist/extensions/config-json-schema.js +124 -58
  241. package/dist/extensions/deployment-config-store.d.ts +6 -0
  242. package/dist/extensions/deployment-config.d.ts +78 -8
  243. package/dist/extensions/deployment-config.js +172 -34
  244. package/dist/extensions/display-name.d.ts +22 -0
  245. package/dist/extensions/display-name.js +77 -0
  246. package/dist/extensions/effective-config.d.ts +127 -0
  247. package/dist/extensions/effective-config.js +368 -0
  248. package/dist/extensions/extensions.module.js +14 -2
  249. package/dist/extensions/hooks.d.ts +37 -4
  250. package/dist/extensions/hooks.js +82 -16
  251. package/dist/extensions/host.d.ts +45 -2
  252. package/dist/extensions/host.js +112 -16
  253. package/dist/extensions/installs.d.ts +20 -8
  254. package/dist/extensions/installs.js +37 -15
  255. package/dist/extensions/org-config.d.ts +81 -6
  256. package/dist/extensions/org-config.js +195 -44
  257. package/dist/extensions/org-levels.d.ts +37 -0
  258. package/dist/extensions/org-levels.js +71 -0
  259. package/dist/extensions/org-overrides.d.ts +151 -0
  260. package/dist/extensions/org-overrides.js +524 -0
  261. package/dist/extensions/package.d.ts +14 -1
  262. package/dist/extensions/package.js +51 -2
  263. package/dist/extensions/permission-view.d.ts +19 -4
  264. package/dist/extensions/permission-view.js +4 -4
  265. package/dist/extensions/plugin-items.d.ts +21 -0
  266. package/dist/extensions/plugin-items.js +42 -0
  267. package/dist/extensions/point-defaults.controller.d.ts +34 -0
  268. package/dist/extensions/point-defaults.controller.js +71 -0
  269. package/dist/extensions/point-defaults.d.ts +71 -0
  270. package/dist/extensions/point-defaults.js +234 -0
  271. package/dist/extensions/registry.d.ts +1 -1
  272. package/dist/extensions/registry.js +2 -0
  273. package/dist/extensions/resolve.d.ts +5 -1
  274. package/dist/extensions/resolve.js +15 -2
  275. package/dist/files/previewers.d.ts +8 -1
  276. package/dist/files/previewers.js +35 -6
  277. package/dist/http/api.module.js +31 -3
  278. package/dist/http/app.d.ts +11 -2
  279. package/dist/http/app.js +31 -5
  280. package/dist/http/nest-logger.d.ts +6 -5
  281. package/dist/http/nest-logger.js +24 -10
  282. package/dist/identity/accounts.d.ts +29 -29
  283. package/dist/identity/accounts.js +47 -47
  284. package/dist/identity/audit.d.ts +2 -1
  285. package/dist/identity/auth.controller.js +9 -5
  286. package/dist/identity/auth.guard.d.ts +13 -5
  287. package/dist/identity/auth.guard.js +26 -9
  288. package/dist/identity/cookies.d.ts +20 -5
  289. package/dist/identity/cookies.js +44 -6
  290. package/dist/identity/identity.module.d.ts +1 -1
  291. package/dist/identity/identity.module.js +4 -4
  292. package/dist/identity/me.controller.d.ts +5 -1
  293. package/dist/identity/me.controller.js +12 -3
  294. package/dist/identity/principal.d.ts +3 -3
  295. package/dist/identity/principal.js +3 -3
  296. package/dist/identity/sessions.d.ts +12 -0
  297. package/dist/identity/sessions.js +45 -0
  298. package/dist/identity/settings.d.ts +22 -11
  299. package/dist/identity/settings.js +53 -18
  300. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  301. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  302. package/dist/inbox/inbox.module.d.ts +4 -1
  303. package/dist/inbox/inbox.module.js +7 -3
  304. package/dist/inbox/inbox.service.d.ts +62 -3
  305. package/dist/inbox/inbox.service.js +74 -4
  306. package/dist/inbox/org-notices.d.ts +63 -0
  307. package/dist/inbox/org-notices.js +91 -0
  308. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  309. package/dist/inbox/platform-inbox.controller.js +58 -0
  310. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  311. package/dist/inbox/platform-inbox.service.js +263 -0
  312. package/dist/inbox/platform-notices.d.ts +19 -0
  313. package/dist/inbox/platform-notices.js +9 -0
  314. package/dist/index.d.ts +2 -2
  315. package/dist/index.js +1 -1
  316. package/dist/infra/cli/kernel-cli.module.js +9 -1
  317. package/dist/infra/config/kernel-config.service.js +27 -1
  318. package/dist/infra/database/database.module.js +1 -0
  319. package/dist/infra/database/xact-lock.d.ts +1 -1
  320. package/dist/infra/database/xact-lock.js +1 -1
  321. package/dist/infra/events/kernel-events.d.ts +19 -2
  322. package/dist/infra/lifecycle/process-guards.js +4 -0
  323. package/dist/infra/logging/logging.module.d.ts +4 -2
  324. package/dist/infra/logging/logging.module.js +24 -6
  325. package/dist/infra/queue/add-job-once.d.ts +14 -0
  326. package/dist/infra/queue/add-job-once.js +16 -0
  327. package/dist/infra/queue/redis-connection.d.ts +6 -0
  328. package/dist/infra/queue/redis-connection.js +7 -0
  329. package/dist/infra/redis/redis.module.js +6 -2
  330. package/dist/infra/tokens.d.ts +6 -1
  331. package/dist/infra/tokens.js +6 -1
  332. package/dist/kernel.module.js +6 -0
  333. package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
  334. package/dist/lifecycle/kernel-lifecycle.js +4 -4
  335. package/dist/log.d.ts +13 -1
  336. package/dist/log.js +93 -17
  337. package/dist/models/prices.d.ts +5 -5
  338. package/dist/models/prices.js +4 -4
  339. package/dist/models/purposes.controller.d.ts +6 -4
  340. package/dist/models/purposes.controller.js +13 -7
  341. package/dist/models/purposes.d.ts +43 -9
  342. package/dist/models/purposes.js +48 -18
  343. package/dist/orgs/directory-sync.d.ts +14 -5
  344. package/dist/orgs/directory-sync.js +41 -17
  345. package/dist/orgs/offboarding.d.ts +12 -8
  346. package/dist/orgs/offboarding.js +54 -33
  347. package/dist/orgs/org-lock.d.ts +5 -0
  348. package/dist/orgs/org-lock.js +13 -0
  349. package/dist/orgs/org.guard.d.ts +10 -0
  350. package/dist/orgs/org.guard.js +43 -32
  351. package/dist/orgs/orgs.module.js +3 -0
  352. package/dist/orgs/orgs.service.d.ts +20 -7
  353. package/dist/orgs/orgs.service.js +32 -12
  354. package/dist/orgs/roles.d.ts +1 -1
  355. package/dist/orgs/roles.js +5 -1
  356. package/dist/orgs/settings.controller.d.ts +1 -1
  357. package/dist/orgs/settings.service.d.ts +20 -3
  358. package/dist/orgs/settings.service.js +19 -4
  359. package/dist/overrides.d.ts +3 -0
  360. package/dist/overrides.js +2 -0
  361. package/dist/platform/actor.d.ts +48 -0
  362. package/dist/platform/actor.js +100 -0
  363. package/dist/platform/agent-docs.d.ts +18 -0
  364. package/dist/platform/agent-docs.js +59 -0
  365. package/dist/platform/availability.d.ts +14 -0
  366. package/dist/platform/availability.js +43 -0
  367. package/dist/platform/errors.d.ts +11 -0
  368. package/dist/platform/errors.js +26 -0
  369. package/dist/platform/exclusions.d.ts +12 -0
  370. package/dist/platform/exclusions.js +1387 -0
  371. package/dist/platform/method.d.ts +6 -0
  372. package/dist/platform/method.js +15 -0
  373. package/dist/platform/operation.d.ts +92 -0
  374. package/dist/platform/operation.js +35 -0
  375. package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
  376. package/dist/platform/ops/agent-templates.ops.js +92 -0
  377. package/dist/platform/ops/agents.ops.d.ts +19 -0
  378. package/dist/platform/ops/agents.ops.js +294 -0
  379. package/dist/platform/ops/connectors.ops.d.ts +15 -0
  380. package/dist/platform/ops/connectors.ops.js +126 -0
  381. package/dist/platform/ops/errors.d.ts +11 -0
  382. package/dist/platform/ops/errors.js +22 -0
  383. package/dist/platform/ops/extensions.ops.d.ts +19 -0
  384. package/dist/platform/ops/extensions.ops.js +116 -0
  385. package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
  386. package/dist/platform/ops/marketplaces.ops.js +157 -0
  387. package/dist/platform/ops/paging.d.ts +14 -0
  388. package/dist/platform/ops/paging.js +20 -0
  389. package/dist/platform/ops/platform.ops.d.ts +23 -0
  390. package/dist/platform/ops/platform.ops.js +158 -0
  391. package/dist/platform/ops/plugins.ops.d.ts +33 -0
  392. package/dist/platform/ops/plugins.ops.js +377 -0
  393. package/dist/platform/ops/requests.ops.d.ts +14 -0
  394. package/dist/platform/ops/requests.ops.js +153 -0
  395. package/dist/platform/ops/role.d.ts +4 -0
  396. package/dist/platform/ops/role.js +10 -0
  397. package/dist/platform/ops/skills.ops.d.ts +13 -0
  398. package/dist/platform/ops/skills.ops.js +98 -0
  399. package/dist/platform/ops/summary.d.ts +10 -0
  400. package/dist/platform/ops/summary.js +18 -0
  401. package/dist/platform/platform-ops.module.d.ts +7 -0
  402. package/dist/platform/platform-ops.module.js +55 -0
  403. package/dist/platform/platform.module.d.ts +8 -0
  404. package/dist/platform/platform.module.js +25 -0
  405. package/dist/platform/redact-orgs.d.ts +7 -0
  406. package/dist/platform/redact-orgs.js +52 -0
  407. package/dist/platform/registry.d.ts +30 -0
  408. package/dist/platform/registry.js +111 -0
  409. package/dist/roles/worker-role.d.ts +6 -4
  410. package/dist/roles/worker-role.js +14 -7
  411. package/dist/roles/worker.module.d.ts +1 -1
  412. package/dist/roles/worker.module.js +15 -1
  413. package/dist/runtime/context/build.d.ts +11 -7
  414. package/dist/runtime/context/build.js +46 -19
  415. package/dist/runtime/context/claude-tools.d.ts +3 -1
  416. package/dist/runtime/context/claude-tools.js +8 -6
  417. package/dist/runtime/context/compaction.js +13 -0
  418. package/dist/runtime/context/reminders.d.ts +2 -0
  419. package/dist/runtime/context/reminders.js +2 -0
  420. package/dist/runtime/context/skills.js +9 -2
  421. package/dist/runtime/context/tool-changes.d.ts +27 -0
  422. package/dist/runtime/context/tool-changes.js +60 -0
  423. package/dist/runtime/hook-calls.js +2 -0
  424. package/dist/runtime/langgraph-loop.d.ts +3 -1
  425. package/dist/runtime/langgraph-loop.js +36 -17
  426. package/dist/runtime/loop.d.ts +34 -5
  427. package/dist/runtime/maintenance.d.ts +9 -4
  428. package/dist/runtime/maintenance.js +35 -8
  429. package/dist/runtime/model-call.d.ts +46 -8
  430. package/dist/runtime/model-call.js +72 -21
  431. package/dist/runtime/providers.d.ts +6 -0
  432. package/dist/runtime/providers.js +8 -0
  433. package/dist/runtime/run-control.d.ts +11 -1
  434. package/dist/runtime/run-control.js +12 -0
  435. package/dist/runtime/run-drafts.d.ts +85 -0
  436. package/dist/runtime/run-drafts.js +230 -0
  437. package/dist/runtime/run-jobs.d.ts +3 -5
  438. package/dist/runtime/run-jobs.js +3 -7
  439. package/dist/runtime/run-queue.d.ts +59 -2
  440. package/dist/runtime/run-queue.js +311 -38
  441. package/dist/runtime/run-worker.d.ts +11 -5
  442. package/dist/runtime/run-worker.js +69 -33
  443. package/dist/runtime/runtime.module.js +11 -3
  444. package/dist/runtime/step-log.d.ts +15 -4
  445. package/dist/runtime/step-log.js +24 -7
  446. package/dist/runtime/stream.controller.d.ts +23 -1
  447. package/dist/runtime/stream.controller.js +60 -3
  448. package/dist/runtime/stream.d.ts +4 -1
  449. package/dist/runtime/stream.js +27 -3
  450. package/dist/runtime/subagents/child.d.ts +55 -7
  451. package/dist/runtime/subagents/child.js +105 -7
  452. package/dist/runtime/subagents/definition.d.ts +12 -3
  453. package/dist/runtime/subagents/definition.js +44 -28
  454. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  455. package/dist/runtime/subagents/deliveries.js +228 -0
  456. package/dist/runtime/subagents/dispatch.d.ts +115 -26
  457. package/dist/runtime/subagents/dispatch.js +212 -141
  458. package/dist/runtime/subagents/limits.d.ts +24 -5
  459. package/dist/runtime/subagents/limits.js +40 -6
  460. package/dist/runtime/subagents/messages.d.ts +95 -0
  461. package/dist/runtime/subagents/messages.js +328 -0
  462. package/dist/runtime/subagents/preamble.d.ts +4 -4
  463. package/dist/runtime/subagents/preamble.js +9 -7
  464. package/dist/runtime/subagents/progress.d.ts +8 -6
  465. package/dist/runtime/subagents/progress.js +11 -6
  466. package/dist/runtime/subagents/render.d.ts +30 -0
  467. package/dist/runtime/subagents/render.js +53 -0
  468. package/dist/runtime/subagents/roster.d.ts +24 -7
  469. package/dist/runtime/subagents/roster.js +47 -11
  470. package/dist/runtime/subagents/skill-fork.d.ts +3 -2
  471. package/dist/runtime/subagents/skill-fork.js +8 -4
  472. package/dist/runtime/subagents/status.d.ts +14 -0
  473. package/dist/runtime/subagents/status.js +23 -0
  474. package/dist/runtime/subagents/subagents.service.d.ts +7 -4
  475. package/dist/runtime/subagents/subagents.service.js +11 -6
  476. package/dist/runtime/usage-report.d.ts +2 -1
  477. package/dist/runtime/usage-report.js +19 -13
  478. package/dist/runtime/waits.d.ts +145 -36
  479. package/dist/runtime/waits.js +423 -109
  480. package/dist/sandbox/jobs.d.ts +40 -13
  481. package/dist/sandbox/jobs.js +57 -20
  482. package/dist/sandbox/leases.d.ts +37 -54
  483. package/dist/sandbox/leases.js +71 -115
  484. package/dist/sandbox/providers.d.ts +2 -2
  485. package/dist/sandbox/providers.js +1 -1
  486. package/dist/sandbox/sandbox.module.d.ts +3 -2
  487. package/dist/sandbox/sandbox.module.js +10 -4
  488. package/dist/sandbox/sandbox.service.d.ts +282 -129
  489. package/dist/sandbox/sandbox.service.js +736 -381
  490. package/dist/skills/catalog.d.ts +3 -2
  491. package/dist/skills/catalog.js +21 -43
  492. package/dist/skills/changes.controller.d.ts +7 -0
  493. package/dist/skills/changes.controller.js +19 -1
  494. package/dist/skills/invoke.js +8 -3
  495. package/dist/skills/package.d.ts +20 -1
  496. package/dist/skills/package.js +28 -1
  497. package/dist/skills/skills.controller.d.ts +39 -4
  498. package/dist/skills/skills.controller.js +88 -10
  499. package/dist/skills/skills.module.js +10 -1
  500. package/dist/skills/skills.service.d.ts +106 -26
  501. package/dist/skills/skills.service.js +421 -75
  502. package/dist/skills/usable.d.ts +81 -0
  503. package/dist/skills/usable.js +379 -0
  504. package/dist/tools/approvals.service.d.ts +20 -2
  505. package/dist/tools/approvals.service.js +25 -4
  506. package/dist/tools/builtin-names.d.ts +41 -7
  507. package/dist/tools/builtin-names.js +59 -7
  508. package/dist/tools/builtins/agent.d.ts +23 -21
  509. package/dist/tools/builtins/agent.js +62 -55
  510. package/dist/tools/builtins/builtin-tools.d.ts +19 -1
  511. package/dist/tools/builtins/builtin-tools.js +59 -2
  512. package/dist/tools/builtins/handback.d.ts +28 -0
  513. package/dist/tools/builtins/handback.js +53 -0
  514. package/dist/tools/builtins/platform.d.ts +34 -0
  515. package/dist/tools/builtins/platform.js +362 -0
  516. package/dist/tools/builtins/sandbox/bash.d.ts +1 -1
  517. package/dist/tools/builtins/sandbox/bash.js +241 -4
  518. package/dist/tools/builtins/sandbox/common.d.ts +69 -27
  519. package/dist/tools/builtins/sandbox/common.js +87 -48
  520. package/dist/tools/builtins/sandbox/deliver.js +1 -1
  521. package/dist/tools/builtins/sandbox/edit.js +2 -2
  522. package/dist/tools/builtins/sandbox/glob.js +2 -2
  523. package/dist/tools/builtins/sandbox/grep.js +2 -4
  524. package/dist/tools/builtins/sandbox/index.d.ts +3 -1
  525. package/dist/tools/builtins/sandbox/index.js +7 -1
  526. package/dist/tools/builtins/sandbox/read.js +1 -1
  527. package/dist/tools/builtins/sandbox/task-output.d.ts +74 -0
  528. package/dist/tools/builtins/sandbox/task-output.js +329 -0
  529. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  530. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  531. package/dist/tools/builtins/sandbox/write.js +2 -2
  532. package/dist/tools/builtins/send-message.d.ts +56 -0
  533. package/dist/tools/builtins/send-message.js +100 -0
  534. package/dist/tools/builtins/skill-load.d.ts +22 -14
  535. package/dist/tools/builtins/skill-load.js +86 -57
  536. package/dist/tools/builtins/skill-write.js +1 -1
  537. package/dist/tools/builtins/web/errors.d.ts +8 -0
  538. package/dist/tools/builtins/web/errors.js +53 -0
  539. package/dist/tools/builtins/web/extract.d.ts +62 -0
  540. package/dist/tools/builtins/web/extract.js +271 -0
  541. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  542. package/dist/tools/builtins/web/fetch.js +175 -0
  543. package/dist/tools/builtins/web/index.d.ts +13 -0
  544. package/dist/tools/builtins/web/index.js +12 -0
  545. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  546. package/dist/tools/builtins/web/page-cache.js +77 -0
  547. package/dist/tools/builtins/web/search.d.ts +25 -0
  548. package/dist/tools/builtins/web/search.js +210 -0
  549. package/dist/tools/builtins/web/url.d.ts +17 -0
  550. package/dist/tools/builtins/web/url.js +43 -0
  551. package/dist/tools/connectors.controller.d.ts +10 -0
  552. package/dist/tools/connectors.controller.js +12 -0
  553. package/dist/tools/connectors.service.d.ts +46 -5
  554. package/dist/tools/connectors.service.js +94 -15
  555. package/dist/tools/extension-tools.controller.d.ts +14 -0
  556. package/dist/tools/extension-tools.controller.js +37 -0
  557. package/dist/tools/info.d.ts +42 -1
  558. package/dist/tools/info.js +64 -1
  559. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  560. package/dist/tools/oauth/flow-paths.js +1 -1
  561. package/dist/tools/org-tool-switches.d.ts +74 -0
  562. package/dist/tools/org-tool-switches.js +184 -0
  563. package/dist/tools/pipeline.d.ts +46 -40
  564. package/dist/tools/pipeline.js +202 -364
  565. package/dist/tools/policy.d.ts +1 -1
  566. package/dist/tools/policy.js +36 -16
  567. package/dist/tools/registry.d.ts +120 -8
  568. package/dist/tools/registry.js +112 -19
  569. package/dist/tools/tools.module.js +24 -2
  570. package/dist/tools/validate.js +1 -1
  571. package/dist/ui/views.d.ts +2 -1
  572. package/dist/ui/views.js +17 -3
  573. package/package.json +3 -3
  574. package/src/migrations/0064_account_last_org.sql +7 -0
  575. package/src/migrations/0065_conversation_archive.sql +8 -0
  576. package/src/migrations/0066_extension_display_name.sql +4 -0
  577. package/src/migrations/0067_agent_profiles.sql +20 -0
  578. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  579. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  580. package/src/migrations/0070_background_tasks.sql +37 -0
  581. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  582. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  583. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  584. package/src/migrations/0074_subagent_tree.sql +50 -0
  585. package/src/migrations/0075_plugin_scope.sql +61 -0
  586. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  587. package/src/migrations/0077_scope_requests.sql +52 -0
  588. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  589. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  590. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  591. package/src/migrations/0081_platform_components.sql +129 -0
  592. package/src/migrations/0082_platform_migration.sql +33 -0
  593. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  594. package/src/migrations/0084_org_owned_items.sql +85 -0
  595. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  596. package/src/migrations/0086_org_layering.sql +30 -0
  597. package/src/migrations/0087_approval_summary.sql +6 -0
  598. package/src/migrations/0088_environments.sql +80 -0
  599. package/dist/catalog/upgrade-targets.d.ts +0 -56
  600. package/dist/catalog/upgrade-targets.js +0 -90
  601. package/dist/conversations/sandbox-status.d.ts +0 -24
  602. package/dist/conversations/sandbox-status.js +0 -52
  603. package/dist/extensions/org-config.controller.d.ts +0 -24
  604. package/dist/extensions/org-config.controller.js +0 -62
@@ -0,0 +1,287 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { Controller, Get, HttpCode, Inject, Post, Put, Req } from "@nestjs/common";
11
+ import { z } from "zod";
12
+ import { ApiError } from "../errors.js";
13
+ import { CurrentPrincipal, patTokenId, requireUser, SuperAdmin, } from "../identity/principal.js";
14
+ import { createZodDto } from "../infra/validation/create-zod-dto.js";
15
+ import { ZBody, ZParam, ZQuery } from "../infra/validation/zod-params.js";
16
+ import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
17
+ import { ComponentScopeService, } from "./component-scope.service.js";
18
+ import { COMPONENT_KINDS } from "./component-state.js";
19
+ import { PlatformComponents } from "./platform-components.js";
20
+ const Kind = z.enum(COMPONENT_KINDS);
21
+ const Scope = z.enum(["all", "optional", "named"]);
22
+ const Orgs = z.array(z.string().min(1).max(128)).max(1000);
23
+ const Hash = z.string().min(1).max(128);
24
+ const ComponentParams = z.object({ kind: Kind, id: z.string().min(1).max(128) });
25
+ const ListQuery = z.object({ kind: Kind }).strict();
26
+ const OrgListQuery = z
27
+ .object({ kind: Kind.optional(), itemId: z.string().uuid().optional() })
28
+ .strict();
29
+ /** `{ scope, orgs? }`, `{ disabled: true }` or `{ follow: true }`: exactly one. */
30
+ const PreviewBody = z
31
+ .object({
32
+ scope: Scope.optional(),
33
+ orgs: Orgs.optional(),
34
+ disabled: z.literal(true).optional(),
35
+ follow: z.literal(true).optional(),
36
+ })
37
+ .strict()
38
+ .refine((b) => [b.scope !== undefined, b.disabled === true, b.follow === true].filter(Boolean).length === 1, { message: "send exactly one of scope (with orgs for named), disabled: true or follow: true" })
39
+ .refine((b) => b.scope !== undefined || b.orgs === undefined, {
40
+ message: "orgs: only allowed with scope named",
41
+ path: ["orgs"],
42
+ });
43
+ /** `{ scope, orgs?, scopeHash }` or `{ follow: true, scopeHash }`. */
44
+ const ScopeBody = z
45
+ .object({
46
+ scope: Scope.optional(),
47
+ orgs: Orgs.optional(),
48
+ follow: z.literal(true).optional(),
49
+ scopeHash: Hash,
50
+ })
51
+ .strict()
52
+ .refine((b) => (b.scope !== undefined) !== (b.follow === true), {
53
+ message: "send either scope (with orgs for named) or follow: true",
54
+ })
55
+ .refine((b) => b.scope !== undefined || b.orgs === undefined, {
56
+ message: "orgs: only allowed with scope named",
57
+ path: ["orgs"],
58
+ });
59
+ const DisabledBody = z.object({ disabled: z.boolean(), scopeHash: Hash.optional() }).strict();
60
+ const ShownBody = z.object({ shownToOthers: z.boolean() }).strict();
61
+ const SwitchBody = z
62
+ .object({
63
+ enabled: z.boolean(),
64
+ confirm: z
65
+ .string()
66
+ .regex(/^[0-9a-f]{64}$/)
67
+ .optional(),
68
+ })
69
+ .strict();
70
+ const IdParams = z.object({ id: z.string().min(1).max(128) });
71
+ const TemplateVersionBody = z.object({ content: z.string().min(1).max(400_000) }).strict();
72
+ class ComponentIdParams extends createZodDto(IdParams, "ComponentIdParams") {
73
+ }
74
+ class TemplateVersionDto extends createZodDto(TemplateVersionBody, "TemplateVersionBody") {
75
+ }
76
+ class ComponentParamsDto extends createZodDto(ComponentParams, "ComponentParams") {
77
+ }
78
+ class ComponentListQuery extends createZodDto(ListQuery, "ComponentListQuery") {
79
+ }
80
+ class OrgComponentListQuery extends createZodDto(OrgListQuery, "OrgComponentListQuery") {
81
+ }
82
+ class ComponentScopePreviewBody extends createZodDto(PreviewBody, "ComponentScopePreviewBody") {
83
+ }
84
+ class ComponentScopeBody extends createZodDto(ScopeBody, "ComponentScopeBody") {
85
+ }
86
+ class ComponentDisabledBody extends createZodDto(DisabledBody, "ComponentDisabledBody") {
87
+ }
88
+ class ComponentShownBody extends createZodDto(ShownBody, "ComponentShownBody") {
89
+ }
90
+ class ComponentSwitchBody extends createZodDto(SwitchBody, "ComponentSwitchBody") {
91
+ }
92
+ const actorOpts = (actor) => {
93
+ const tokenId = patTokenId(actor);
94
+ return tokenId !== undefined ? { actorTokenId: tokenId } : {};
95
+ };
96
+ /**
97
+ * Platform components (`/api/v1/admin/components/*`, super admins; plugin scope phase 2, Task 6):
98
+ * the global list of skills, agent templates and connector templates, and each one's own scope,
99
+ * disable and visibility (spec §5 rules 2, 4, 8, 10). Changes that take something away are
100
+ * previewed (`POST …/scope/preview`) and confirmed with `scopeHash`.
101
+ */
102
+ let AdminComponentsController = class AdminComponentsController {
103
+ scope;
104
+ components;
105
+ constructor(scope, components) {
106
+ this.scope = scope;
107
+ this.components = components;
108
+ }
109
+ /**
110
+ * Updates a platform skill on its own (spec §7.2): the skill package (zip) as the raw body
111
+ * (`application/octet-stream`, at most `packages.maxBytes`). The package keeps the skill's name
112
+ * (400 `validation_failed`), is checked like an org upload (400 `skill.invalid_package`), and
113
+ * becomes the next version, flagged as updated on its own; it keeps its plugin and serves in
114
+ * orgs at once. Unknown component -> 404 `component.not_found`. Audits `component.version_uploaded`.
115
+ */
116
+ uploadSkillVersion(principal, p, req) {
117
+ const actor = requireUser(principal);
118
+ const body = req.body;
119
+ if (!Buffer.isBuffer(body) || body.byteLength === 0) {
120
+ throw new ApiError("unsupported_media_type", "Send the skill package (.zip) as the request body with content-type application/octet-stream");
121
+ }
122
+ return this.components.uploadSkillVersion({ accountId: actor.account.id, ...actorOpts(actor) }, p.id, new Uint8Array(body.buffer, body.byteOffset, body.byteLength));
123
+ }
124
+ /** Updates a platform agent template on its own: `{ content }` is the template markdown file. */
125
+ uploadAgentTemplateVersion(principal, p, body) {
126
+ const actor = requireUser(principal);
127
+ return this.components.uploadAgentTemplateVersion({ accountId: actor.account.id, ...actorOpts(actor) }, p.id, body.content);
128
+ }
129
+ /** `GET ?kind=`: every platform component of the kind (plugin, owner, scope, version, orgs on). */
130
+ async list(q) {
131
+ return { components: await this.scope.list(q.kind) };
132
+ }
133
+ /**
134
+ * A component's versions, newest first: `{ versions: [{ version, catalogVersion, updatedOnOwn,
135
+ * createdAt }] }` (a connector template keeps no history: its current version only). Unknown or
136
+ * removed -> 404 `component.not_found`.
137
+ */
138
+ async versions(p) {
139
+ return { versions: await this.scope.versions(p.kind, p.id) };
140
+ }
141
+ /**
142
+ * What a component scope change (`{ scope, orgs? }`), a disable (`{ disabled: true }`) or a
143
+ * return to its plugin's scope (`{ follow: true }`) would do: `{ affected: [{ orgId, orgName,
144
+ * agents }], conflicts: [{ orgId, orgName, name, skills }], scopeHash }`. Unknown component ->
145
+ * 404 `component.not_found`; of a builtin plugin -> 409 `plugin.builtin`.
146
+ */
147
+ preview(p, body) {
148
+ return this.scope.preview(p.kind, p.id, body.scope !== undefined
149
+ ? { scope: body.scope, ...(body.orgs !== undefined && { orgs: body.orgs }) }
150
+ : body.disabled === true
151
+ ? { disabled: true }
152
+ : { follow: true });
153
+ }
154
+ /**
155
+ * Gives the component its own scope, or makes it follow its plugin again, confirmed with the
156
+ * preview's `scopeHash` (a difference -> 409 `plugin.scope_stale`); an org whose own skill has
157
+ * its name would newly be offered it -> 409 `plugin.skill_conflict`. Audits
158
+ * `component.scope_changed`.
159
+ */
160
+ setScope(principal, p, body) {
161
+ const actor = requireUser(principal);
162
+ return this.scope.setScope(actor.account.id, p.kind, p.id, body.scope !== undefined
163
+ ? {
164
+ scope: body.scope,
165
+ scopeHash: body.scopeHash,
166
+ ...(body.orgs !== undefined && { orgs: body.orgs }),
167
+ }
168
+ : { follow: true, scopeHash: body.scopeHash }, actorOpts(actor));
169
+ }
170
+ /** Disables the component on the deployment (`scopeHash` required) or enables it again. */
171
+ setDisabled(principal, p, body) {
172
+ const actor = requireUser(principal);
173
+ return this.scope.setDisabled(actor.account.id, p.kind, p.id, {
174
+ disabled: body.disabled,
175
+ ...(body.scopeHash !== undefined && { scopeHash: body.scopeHash }),
176
+ }, actorOpts(actor));
177
+ }
178
+ /** Shows or hides the component to orgs outside its `named` list. */
179
+ setShown(principal, p, body) {
180
+ const actor = requireUser(principal);
181
+ return this.scope.setShown(actor.account.id, p.kind, p.id, body.shownToOthers, actorOpts(actor));
182
+ }
183
+ };
184
+ __decorate([
185
+ Post("skill/:id/versions"),
186
+ HttpCode(201),
187
+ __param(0, CurrentPrincipal()),
188
+ __param(1, ZParam(ComponentIdParams)),
189
+ __param(2, Req())
190
+ ], AdminComponentsController.prototype, "uploadSkillVersion", null);
191
+ __decorate([
192
+ Post("agent_template/:id/versions"),
193
+ HttpCode(201),
194
+ __param(0, CurrentPrincipal()),
195
+ __param(1, ZParam(ComponentIdParams)),
196
+ __param(2, ZBody(TemplateVersionDto))
197
+ ], AdminComponentsController.prototype, "uploadAgentTemplateVersion", null);
198
+ __decorate([
199
+ Get(),
200
+ __param(0, ZQuery(ComponentListQuery))
201
+ ], AdminComponentsController.prototype, "list", null);
202
+ __decorate([
203
+ Get(":kind/:id/versions"),
204
+ __param(0, ZParam(ComponentParamsDto))
205
+ ], AdminComponentsController.prototype, "versions", null);
206
+ __decorate([
207
+ Post(":kind/:id/scope/preview"),
208
+ HttpCode(200),
209
+ __param(0, ZParam(ComponentParamsDto)),
210
+ __param(1, ZBody(ComponentScopePreviewBody))
211
+ ], AdminComponentsController.prototype, "preview", null);
212
+ __decorate([
213
+ Put(":kind/:id/scope"),
214
+ __param(0, CurrentPrincipal()),
215
+ __param(1, ZParam(ComponentParamsDto)),
216
+ __param(2, ZBody(ComponentScopeBody))
217
+ ], AdminComponentsController.prototype, "setScope", null);
218
+ __decorate([
219
+ Put(":kind/:id/disabled"),
220
+ __param(0, CurrentPrincipal()),
221
+ __param(1, ZParam(ComponentParamsDto)),
222
+ __param(2, ZBody(ComponentDisabledBody))
223
+ ], AdminComponentsController.prototype, "setDisabled", null);
224
+ __decorate([
225
+ Put(":kind/:id/shown"),
226
+ __param(0, CurrentPrincipal()),
227
+ __param(1, ZParam(ComponentParamsDto)),
228
+ __param(2, ZBody(ComponentShownBody))
229
+ ], AdminComponentsController.prototype, "setShown", null);
230
+ AdminComponentsController = __decorate([
231
+ Controller("api/v1/admin/components"),
232
+ SuperAdmin(),
233
+ __param(0, Inject(ComponentScopeService)),
234
+ __param(1, Inject(PlatformComponents))
235
+ ], AdminComponentsController);
236
+ export { AdminComponentsController };
237
+ /**
238
+ * An org admin's switch of one platform component (`PUT orgs/:orgId/components/:kind/:id/switch`,
239
+ * spec §5 rule 5, §13.5): `{ enabled: true }` -> 200 `{ component }`; `{ enabled: false }` on a
240
+ * component in use -> 200 `{ preview: { agents }, confirm }`, then with `confirm` -> `{ component }`.
241
+ * The route needs `catalog.read`; the service re-checks the kind's manage action (org admins).
242
+ */
243
+ let OrgComponentsController = class OrgComponentsController {
244
+ scope;
245
+ constructor(scope) {
246
+ this.scope = scope;
247
+ }
248
+ /**
249
+ * The platform components offered to the org (`?kind=`, `?itemId=`: only those; Task 10): each
250
+ * with its state in the org (`on`, `locked` for `all`, the org's `switch`) and whether an org
251
+ * admin may switch it. Members read it (the workspace pages are read-only for them).
252
+ */
253
+ async list(org, q) {
254
+ return {
255
+ components: await this.scope.orgList(org.orgId, {
256
+ ...(q.kind !== undefined && { kind: q.kind }),
257
+ ...(q.itemId !== undefined && { itemId: q.itemId }),
258
+ }),
259
+ };
260
+ }
261
+ async setSwitch(principal, org, p, body) {
262
+ const actor = requireUser(principal);
263
+ const r = await this.scope.setSwitch(org.orgId, actor.account.id, p.kind, p.id, { enabled: body.enabled, ...(body.confirm !== undefined && { confirm: body.confirm }) }, patTokenId(actor));
264
+ return r.kind === "done"
265
+ ? { component: r.component }
266
+ : { preview: r.preview, confirm: r.confirm };
267
+ }
268
+ };
269
+ __decorate([
270
+ Get(),
271
+ OrgAction("catalog.read"),
272
+ __param(0, CurrentOrg()),
273
+ __param(1, ZQuery(OrgComponentListQuery))
274
+ ], OrgComponentsController.prototype, "list", null);
275
+ __decorate([
276
+ Put(":kind/:id/switch"),
277
+ OrgAction("catalog.read"),
278
+ __param(0, CurrentPrincipal()),
279
+ __param(1, CurrentOrg()),
280
+ __param(2, ZParam(ComponentParamsDto)),
281
+ __param(3, ZBody(ComponentSwitchBody))
282
+ ], OrgComponentsController.prototype, "setSwitch", null);
283
+ OrgComponentsController = __decorate([
284
+ Controller("api/v1/orgs/:orgId/components"),
285
+ __param(0, Inject(ComponentScopeService))
286
+ ], OrgComponentsController);
287
+ export { OrgComponentsController };
@@ -0,0 +1,303 @@
1
+ import { ApiError } from "../errors.js";
2
+ import { SuperAdminLock } from "../identity/super-admin.js";
3
+ import { KernelDb } from "../infra/database/kernel-db.js";
4
+ import { TransactionHost } from "../infra/database/transaction-host.js";
5
+ import { OrgLock } from "../orgs/org-lock.js";
6
+ import type { ActorOpts } from "./catalog.service.js";
7
+ import { ComponentPromotion } from "./component-promotion.js";
8
+ import { type ComponentKind } from "./component-state.js";
9
+ import { type Owner } from "./ownership.js";
10
+ import type { PluginScope } from "./scope.js";
11
+ /**
12
+ * What a component scope change, a component disable or a switch back to its plugin's scope would
13
+ * do (spec §5 rules 8 and 10): the orgs where it is on now and would be off, with their agents that
14
+ * use it (by its id or an org copy linked to it), and the orgs it would newly be offered to whose
15
+ * own skills already use its name (the change is refused while there are any). `scopeHash` is
16
+ * confirmed with the change.
17
+ */
18
+ export interface ComponentScopePreview {
19
+ affected: {
20
+ orgId: string;
21
+ orgName: string;
22
+ agents: {
23
+ id: string;
24
+ name: string;
25
+ }[];
26
+ /** A connector template: the org's connectors made from it, which stay as the org's own. */
27
+ connectorsKept: number;
28
+ }[];
29
+ /**
30
+ * `skills`: the clashing skill ids (org skills, other platform skills; for an agent template the
31
+ * clashing template ids, `name` its roster type, ruling P4-13); `plugins`: theirs.
32
+ */
33
+ conflicts: {
34
+ orgId: string;
35
+ orgName: string;
36
+ name: string;
37
+ skills: string[];
38
+ plugins: string[];
39
+ /** An agent template's: the owner of each clashing template, in `skills`' order. */
40
+ owners?: Owner[];
41
+ }[];
42
+ scopeHash: string;
43
+ }
44
+ /** A component's own scope (`orgs` only with `named`), a disable, or following its plugin again. */
45
+ export type ComponentTarget = {
46
+ scope: PluginScope;
47
+ orgs?: string[];
48
+ } | {
49
+ disabled: boolean;
50
+ } | {
51
+ follow: true;
52
+ };
53
+ /**
54
+ * A component in the admin list (`GET admin/components`): a platform component, or (ruling P2-11)
55
+ * an org's own skill or agent template, listed read-only (`owner` = the org; its scope fields
56
+ * say it is on in that org only; scope, disable and uploads are platform-only, 404 for it).
57
+ */
58
+ export interface ComponentView {
59
+ kind: ComponentKind;
60
+ id: string;
61
+ name: string;
62
+ description: string | null;
63
+ /** The plugin it came from (null: none). */
64
+ plugin: string | null;
65
+ itemId: string | null;
66
+ /** The platform, or the org that owns it (ruling P3-1). */
67
+ owner: Owner;
68
+ /** Its owner shares it with other orgs (the share gate; always false for the platform's). */
69
+ shareable: boolean;
70
+ /**
71
+ * A platform row created from an org's own skill or agent template when it was first shared
72
+ * (promote on share, ruling P3-3); false for an org row and for a plugin's component.
73
+ */
74
+ promoted: boolean;
75
+ /** Of a builtin plugin: on everywhere, its scope cannot be changed nor disabled (409). */
76
+ builtin: boolean;
77
+ scopeMode: "follow" | "own";
78
+ /** The effective scope: the plugin's (builtin: `all`) when following it, else its own. */
79
+ scope: PluginScope;
80
+ /** The effective `named` list (the plugin's when following it), sorted. */
81
+ orgs: string[];
82
+ disabled: boolean;
83
+ /** The plugin is disabled or deleted: the component is off everywhere. */
84
+ pluginStopped: boolean;
85
+ shownToOthers: boolean;
86
+ version: string;
87
+ /** The orgs it is on in now, sorted. */
88
+ onIn: string[];
89
+ /**
90
+ * Orgs whose admin switched it off while its effective scope is `all` (layering spec §4); 0 for
91
+ * other scopes, builtin plugins and orgs' own rows.
92
+ */
93
+ offCount: number;
94
+ }
95
+ /** One version of a platform component (`GET admin/components/:kind/:id/versions`). */
96
+ export interface ComponentVersionView {
97
+ /** The component's own version counter (a connector template: its catalog version). */
98
+ version: string;
99
+ /** The plugin version it came from (null: uploaded on its own). */
100
+ catalogVersion: string | null;
101
+ /** Written by an upload of the component on its own (spec §7.2). */
102
+ updatedOnOwn: boolean;
103
+ createdAt: string;
104
+ }
105
+ /** An org's view of one component after its switch. */
106
+ export interface OrgComponentView {
107
+ kind: ComponentKind;
108
+ id: string;
109
+ name: string;
110
+ plugin: string | null;
111
+ /** The org's switch (null: never switched). */
112
+ switch: boolean | null;
113
+ on: boolean;
114
+ /** Of a builtin plugin: it cannot be switched off (an `all` one can, layering spec §4). */
115
+ locked: boolean;
116
+ }
117
+ /**
118
+ * A platform component offered to an org (`GET orgs/:orgId/components`, Task 10): on there, or one
119
+ * an org admin could switch on; what the workspace 技能 / 智能体模板 pages and the plugin detail
120
+ * show with their switches. Never a component the org cannot see.
121
+ */
122
+ export interface OrgOfferedComponentView extends OrgComponentView {
123
+ description: string | null;
124
+ itemId: string | null;
125
+ version: string;
126
+ scopeMode: "follow" | "own";
127
+ /** A `follow` component's plugin is on in the org (always true for `own`). */
128
+ pluginOn: boolean;
129
+ /**
130
+ * An org admin may switch it now: not locked, and (`follow`) its plugin is on in the org (a
131
+ * component of a plugin that is off is switched on with the plugin, spec §5 rule 5).
132
+ */
133
+ switchable: boolean;
134
+ /** On by platform default: the effective scope (its own, or its plugin's) is `all` and it is not builtin. */
135
+ platformDefault: boolean;
136
+ /**
137
+ * The org's copies linked to it without a pin (skills, agent templates): agents that select one
138
+ * of these ids use this component, and lose it while it is off (spec §5 rule 8).
139
+ */
140
+ linkedIds: string[];
141
+ /**
142
+ * The platform, or the org that owns it (an org's upload, ruling P3-1): what the workspace pages
143
+ * name as its owner (本组织 for the viewing org's own, the owner's name for another org's).
144
+ */
145
+ owner: Owner;
146
+ }
147
+ /** The result of an org switch: the component, or (switching off without `confirm`) the preview. */
148
+ export type ComponentSwitchResult = {
149
+ kind: "done";
150
+ component: OrgComponentView;
151
+ } | {
152
+ kind: "preview";
153
+ preview: {
154
+ agents: {
155
+ id: string;
156
+ name: string;
157
+ refs: string[];
158
+ }[];
159
+ connectorsKept: number;
160
+ };
161
+ confirm: string;
162
+ };
163
+ /**
164
+ * 409 `plugin.skill_conflict` listing the orgs whose own skills use a component's name (rule 10);
165
+ * for an agent template 409 `agent_template.name_taken` listing the orgs that already use its
166
+ * roster type (ruling P4-13; details `[{ orgId, type, templateId, owner }]`, one per clashing
167
+ * template, `owner` as save-as names it).
168
+ */
169
+ export declare function nameConflictError(conflicts: ComponentScopePreview["conflicts"], kind?: ComponentKind): ApiError;
170
+ /**
171
+ * Component scope and org switches (plugin scope phase 2, Task 6; spec §5 rules 2, 5, 8, 10, 11,
172
+ * §13.5). The super admin gives a platform component its own scope (`all` / `optional` / `named`),
173
+ * sends it back to following its plugin, disables it on the whole deployment or shows it to other
174
+ * orgs; each change that takes something away is previewed and confirmed with `scopeHash`
175
+ * (recomputed under the component row lock; a difference -> 409 `plugin.scope_stale`), and one that
176
+ * would offer a skill to an org whose own skill has its name is refused (409 `plugin.skill_conflict`).
177
+ * An org admin switches one component on or off in the org (only that component, rule 5); one of a
178
+ * builtin plugin -> 409 `plugin.scope_locked` (an `all` one may go off, layering spec §4); switching
179
+ * off something in use is previewed with its agents first.
180
+ * Name clashes are checked for skills only: an org agent template always carries its plugin's
181
+ * type, so one with a platform template's type is a copy of it. Components are resolved at read
182
+ * time (skills/usable.ts, agents/templates.ts), so nothing is enqueued. Stateless, shared by every
183
+ * replica.
184
+ */
185
+ export declare class ComponentScopeService {
186
+ private readonly kdb;
187
+ private readonly adminLock;
188
+ /** The org row lock (orgs/org-lock.ts): joins the caller's transaction. */
189
+ private readonly orgLock;
190
+ /** Promote on share (ruling P3-3): an org row shown or associated becomes a platform row. */
191
+ private readonly promotion;
192
+ readonly txHost: TransactionHost;
193
+ constructor(kdb: KernelDb, adminLock: SuperAdminLock,
194
+ /** The org row lock (orgs/org-lock.ts): joins the caller's transaction. */
195
+ orgLock: OrgLock,
196
+ /** Promote on share (ruling P3-3): an org row shown or associated becomes a platform row. */
197
+ promotion: ComponentPromotion, txHost: TransactionHost);
198
+ private get db();
199
+ /**
200
+ * What the admin routes act on (ruling P3-23): the platform component `id`, an org row the org
201
+ * promoted already (its platform row), or an org's own row not promoted yet. A connector
202
+ * template has no org rows; anything else -> 404 `component.not_found`.
203
+ */
204
+ private resolve;
205
+ /**
206
+ * Runs `write` with the org row prepared for promotion ({@link ComponentPromotion.prepare}, files
207
+ * copied before the transaction), preparing again when the row changed meanwhile.
208
+ */
209
+ private withPromotion;
210
+ /** The platform components of `kind`, with their effective scope and the orgs they are on in. */
211
+ list(kind: ComponentKind): Promise<ComponentView[]>;
212
+ /**
213
+ * The platform components offered to the org (`kind` / `itemId`: only those), by kind then name:
214
+ * on there, or visible to it and not stopped on the deployment (spec §5 rules 5, 11, §13.5).
215
+ */
216
+ orgList(orgId: string, filter: {
217
+ kind?: ComponentKind;
218
+ itemId?: string;
219
+ }): Promise<OrgOfferedComponentView[]>;
220
+ /**
221
+ * The org's copies of platform skills or agent templates linked without a pin (ruling B2), by
222
+ * platform id: they resolve to it, so agents that select them use it (none for connector
223
+ * templates).
224
+ */
225
+ private linkedCopies;
226
+ /**
227
+ * The orgs' own skills (org scope) and agent templates, not linked to a platform component
228
+ * (ruling P2-11): listed read-only, on in their org only. Connector templates have none.
229
+ */
230
+ private orgOwned;
231
+ /** The preview of a scope change, a disable or a return to following the plugin (nothing written). */
232
+ preview(kind: ComponentKind, id: string, target: ComponentTarget): Promise<ComponentScopePreview>;
233
+ /** Gives the component its own scope, or makes it follow its plugin again, after its preview. */
234
+ setScope(actor: string, kind: ComponentKind, id: string, body: ({
235
+ scope: PluginScope;
236
+ orgs?: string[];
237
+ } | {
238
+ follow: true;
239
+ }) & {
240
+ scopeHash: string;
241
+ }, opts?: ActorOpts): Promise<ComponentView>;
242
+ /**
243
+ * Disables the component on the whole deployment (after its preview, `scopeHash` required) or
244
+ * enables it again (no hash; refused while an org it would be offered to has a skill of its name).
245
+ */
246
+ setDisabled(actor: string, kind: ComponentKind, id: string, body: {
247
+ disabled: boolean;
248
+ scopeHash?: string;
249
+ }, opts?: ActorOpts): Promise<ComponentView>;
250
+ /** Shows or hides the component to orgs outside its `named` list (never makes it usable). */
251
+ setShown(actor: string, kind: ComponentKind, id: string, shown: boolean, opts?: ActorOpts): Promise<ComponentView>;
252
+ /**
253
+ * The org admin's switch of one component (`PUT orgs/:orgId/components/:kind/:id/switch`): only
254
+ * this component (rule 5). A component not offered to the org -> 404. On: refused while the
255
+ * component or its plugin is disabled (`plugin.disabled`) or an own skill of the org has its name
256
+ * (`plugin.skill_conflict`, rule 10). Off: of a builtin plugin -> `plugin.scope_locked`; while it
257
+ * is on, without `confirm` the preview (agents that use it) and its hash are returned, with the
258
+ * current hash the switch is written (a changed preview -> `plugin.switch_stale`).
259
+ */
260
+ setSwitch(orgId: string, actor: string, kind: ComponentKind, id: string, body: {
261
+ enabled: boolean;
262
+ confirm?: string;
263
+ }, actorTokenId?: string): Promise<ComponentSwitchResult>;
264
+ /**
265
+ * `x.hashId`: the id the preview was asked for (an org row's id before its promotion);
266
+ * `x.promote`: the org row to promote first, in this transaction. Returns the id written.
267
+ */
268
+ private writeScope;
269
+ private writeDisabled;
270
+ /** `promote`: the org row to promote first, in this transaction. Returns the id written. */
271
+ private writeShown;
272
+ /**
273
+ * A live component's versions, newest first. A connector template keeps no history: its one entry
274
+ * is the current version. Missing (or removed) -> 404 `component.not_found`.
275
+ */
276
+ versions(kind: ComponentKind, id: string): Promise<ComponentVersionView[]>;
277
+ /** An org-owned skill's or agent template's versions (ruling P2-11); else 404. */
278
+ private orgOwnedVersions;
279
+ private view;
280
+ /** The live component (row locked with `forUpdate`); missing -> 404, of a builtin plugin -> 409. */
281
+ private component;
282
+ /**
283
+ * The scope that offers the component now: its own (`listed`: its own list), or for `follow` its
284
+ * plugin's (`all` for a builtin or deleted plugin: the widest, so nothing counts as widening).
285
+ */
286
+ private effectiveScope;
287
+ /** The component's own `named` list, sorted. */
288
+ private listed;
289
+ /**
290
+ * The state after the change: `orgs` only with `named`, each a live org. `listed`: the list now
291
+ * (an org row not promoted yet: `[owner]`), else read.
292
+ */
293
+ private targetOf;
294
+ /** Live orgs (`only`: that one), sorted by id. */
295
+ private liveOrgs;
296
+ private on;
297
+ /**
298
+ * The preview of moving `c` to `target` (read through the current context). `x.hashId`: the id
299
+ * the hash names (the one the preview was asked for); `x.listed`: the list now of an org row not
300
+ * promoted yet (`[owner]`).
301
+ */
302
+ private compute;
303
+ }