@capybara-hq/kernel 0.1.0-rc.4 → 0.1.0-rc.6

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 (534) hide show
  1. package/bootstrap.json +61 -5
  2. package/dist/admin/admin.controller.d.ts +51 -14
  3. package/dist/admin/admin.controller.js +60 -19
  4. package/dist/admin/extensions.controller.d.ts +16 -2
  5. package/dist/admin/extensions.controller.js +26 -6
  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 +16 -0
  13. package/dist/agents/agent-lookup.js +11 -0
  14. package/dist/agents/agents.controller.d.ts +76 -1
  15. package/dist/agents/agents.controller.js +90 -11
  16. package/dist/agents/agents.module.d.ts +4 -1
  17. package/dist/agents/agents.module.js +32 -6
  18. package/dist/agents/agents.service.d.ts +54 -23
  19. package/dist/agents/agents.service.js +180 -76
  20. package/dist/agents/definition.d.ts +49 -0
  21. package/dist/agents/definition.js +45 -0
  22. package/dist/agents/from-template.d.ts +106 -0
  23. package/dist/agents/from-template.js +649 -0
  24. package/dist/agents/from-template.service.d.ts +60 -0
  25. package/dist/agents/from-template.service.js +161 -0
  26. package/dist/agents/models.controller.d.ts +34 -5
  27. package/dist/agents/models.controller.js +50 -6
  28. package/dist/agents/org-templates.d.ts +176 -0
  29. package/dist/agents/org-templates.js +827 -0
  30. package/dist/agents/pending-connector-requests.d.ts +77 -0
  31. package/dist/agents/pending-connector-requests.js +215 -0
  32. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  33. package/dist/agents/pending-connectors.controller.js +91 -0
  34. package/dist/agents/pending-connectors.service.d.ts +62 -0
  35. package/dist/agents/pending-connectors.service.js +282 -0
  36. package/dist/agents/readiness.controller.d.ts +5 -5
  37. package/dist/agents/readiness.controller.js +6 -6
  38. package/dist/agents/templates.controller.d.ts +86 -5
  39. package/dist/agents/templates.controller.js +171 -7
  40. package/dist/agents/templates.d.ts +127 -23
  41. package/dist/agents/templates.js +475 -52
  42. package/dist/background/background.module.js +8 -1
  43. package/dist/background/finish.d.ts +3 -2
  44. package/dist/background/launch-lock.d.ts +4 -3
  45. package/dist/background/launch-lock.js +4 -3
  46. package/dist/background/poll.job.d.ts +9 -6
  47. package/dist/background/poll.job.js +30 -22
  48. package/dist/background/session.d.ts +13 -2
  49. package/dist/background/session.js +13 -0
  50. package/dist/background/stop.d.ts +12 -6
  51. package/dist/background/stop.js +57 -39
  52. package/dist/background/store.d.ts +18 -6
  53. package/dist/background/store.js +12 -6
  54. package/dist/background/tasks.service.d.ts +15 -5
  55. package/dist/background/tasks.service.js +42 -17
  56. package/dist/background/wake-rules.d.ts +27 -18
  57. package/dist/background/wake-rules.js +52 -22
  58. package/dist/background/wake.d.ts +13 -11
  59. package/dist/background/wake.js +20 -14
  60. package/dist/catalog/admin-catalog.controller.d.ts +129 -30
  61. package/dist/catalog/admin-catalog.controller.js +213 -42
  62. package/dist/catalog/catalog-content.d.ts +58 -32
  63. package/dist/catalog/catalog-content.js +34 -8
  64. package/dist/catalog/catalog-import.module.d.ts +7 -0
  65. package/dist/catalog/catalog-import.module.js +60 -0
  66. package/dist/catalog/catalog-items.d.ts +111 -7
  67. package/dist/catalog/catalog-items.js +279 -13
  68. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  69. package/dist/catalog/catalog-scope.service.js +1116 -0
  70. package/dist/catalog/catalog.module.d.ts +7 -9
  71. package/dist/catalog/catalog.module.js +41 -31
  72. package/dist/catalog/catalog.service.d.ts +101 -29
  73. package/dist/catalog/catalog.service.js +104 -106
  74. package/dist/catalog/cli.d.ts +11 -1
  75. package/dist/catalog/cli.js +26 -1
  76. package/dist/catalog/component-promotion.d.ts +96 -0
  77. package/dist/catalog/component-promotion.js +395 -0
  78. package/dist/catalog/component-scope.controller.d.ts +152 -0
  79. package/dist/catalog/component-scope.controller.js +287 -0
  80. package/dist/catalog/component-scope.service.d.ts +303 -0
  81. package/dist/catalog/component-scope.service.js +936 -0
  82. package/dist/catalog/component-state.d.ts +174 -0
  83. package/dist/catalog/component-state.js +437 -0
  84. package/dist/catalog/job-ids.d.ts +30 -0
  85. package/dist/catalog/job-ids.js +25 -0
  86. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  87. package/dist/catalog/marketplaces.controller.d.ts +22 -5
  88. package/dist/catalog/marketplaces.controller.js +56 -7
  89. package/dist/catalog/marketplaces.service.d.ts +54 -14
  90. package/dist/catalog/marketplaces.service.js +71 -22
  91. package/dist/catalog/org-catalog.controller.d.ts +125 -34
  92. package/dist/catalog/org-catalog.controller.js +181 -65
  93. package/dist/catalog/org-catalog.service.d.ts +65 -33
  94. package/dist/catalog/org-catalog.service.js +324 -157
  95. package/dist/catalog/org-extension-switch.d.ts +41 -0
  96. package/dist/catalog/org-extension-switch.js +115 -0
  97. package/dist/catalog/org-extension.controller.d.ts +119 -0
  98. package/dist/catalog/org-extension.controller.js +266 -0
  99. package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
  100. package/dist/catalog/org-plugin-uploads.controller.js +213 -0
  101. package/dist/catalog/org-plugin-uploads.d.ts +63 -0
  102. package/dist/catalog/org-plugin-uploads.js +116 -0
  103. package/dist/catalog/owned-items.d.ts +184 -0
  104. package/dist/catalog/owned-items.js +789 -0
  105. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  106. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  107. package/dist/catalog/ownership.d.ts +172 -0
  108. package/dist/catalog/ownership.js +326 -0
  109. package/dist/catalog/platform-components.d.ts +221 -0
  110. package/dist/catalog/platform-components.js +761 -0
  111. package/dist/catalog/platform-migration.d.ts +115 -0
  112. package/dist/catalog/platform-migration.js +582 -0
  113. package/dist/catalog/plugin-import.d.ts +178 -34
  114. package/dist/catalog/plugin-import.js +622 -82
  115. package/dist/catalog/plugin-install.d.ts +185 -41
  116. package/dist/catalog/plugin-install.js +758 -126
  117. package/dist/catalog/plugin-upgrade.d.ts +260 -225
  118. package/dist/catalog/plugin-upgrade.js +1147 -1136
  119. package/dist/catalog/request-rules.d.ts +65 -0
  120. package/dist/catalog/request-rules.js +217 -0
  121. package/dist/catalog/requests.service.d.ts +193 -118
  122. package/dist/catalog/requests.service.js +526 -343
  123. package/dist/catalog/reserved-names.d.ts +8 -0
  124. package/dist/catalog/reserved-names.js +42 -0
  125. package/dist/catalog/scope-orgs.d.ts +21 -0
  126. package/dist/catalog/scope-orgs.js +67 -0
  127. package/dist/catalog/scope-state.d.ts +35 -0
  128. package/dist/catalog/scope-state.js +87 -0
  129. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  130. package/dist/catalog/scope-sync-workers.js +29 -0
  131. package/dist/catalog/scope-sync.d.ts +176 -0
  132. package/dist/catalog/scope-sync.js +576 -0
  133. package/dist/catalog/scope.d.ts +42 -0
  134. package/dist/catalog/scope.js +42 -0
  135. package/dist/catalog/unshare.d.ts +22 -0
  136. package/dist/catalog/unshare.js +118 -0
  137. package/dist/channels/actions.js +1 -0
  138. package/dist/channels/cards.js +20 -2
  139. package/dist/channels/channels.module.js +2 -0
  140. package/dist/channels/inbound.d.ts +9 -1
  141. package/dist/channels/inbound.js +67 -5
  142. package/dist/channels/phrases.d.ts +35 -0
  143. package/dist/channels/phrases.js +29 -0
  144. package/dist/config/docs.js +3 -1
  145. package/dist/config/schema.d.ts +10 -2
  146. package/dist/config/schema.js +70 -22
  147. package/dist/conversations/access.d.ts +6 -4
  148. package/dist/conversations/access.js +27 -5
  149. package/dist/conversations/agent-tree.d.ts +46 -0
  150. package/dist/conversations/agent-tree.js +92 -0
  151. package/dist/conversations/conversations.controller.d.ts +43 -18
  152. package/dist/conversations/conversations.controller.js +79 -38
  153. package/dist/conversations/conversations.module.d.ts +1 -1
  154. package/dist/conversations/conversations.module.js +7 -7
  155. package/dist/conversations/conversations.service.d.ts +73 -15
  156. package/dist/conversations/conversations.service.js +115 -35
  157. package/dist/conversations/environment-status.d.ts +24 -0
  158. package/dist/conversations/environment-status.js +71 -0
  159. package/dist/conversations/event-log.d.ts +20 -5
  160. package/dist/conversations/event-log.js +60 -0
  161. package/dist/conversations/events.d.ts +84 -2
  162. package/dist/conversations/events.js +91 -17
  163. package/dist/conversations/queue.service.d.ts +1 -1
  164. package/dist/conversations/queue.service.js +5 -0
  165. package/dist/conversations/titles.d.ts +5 -3
  166. package/dist/conversations/titles.js +21 -8
  167. package/dist/conversations/tree.d.ts +17 -0
  168. package/dist/conversations/tree.js +42 -0
  169. package/dist/ctx/create-ctx.d.ts +20 -1
  170. package/dist/ctx/create-ctx.js +38 -7
  171. package/dist/db/kernel-schema.d.ts +386 -18
  172. package/dist/environments/access.d.ts +41 -0
  173. package/dist/environments/access.js +77 -0
  174. package/dist/environments/conversation-environments.d.ts +61 -0
  175. package/dist/environments/conversation-environments.js +170 -0
  176. package/dist/environments/dto.d.ts +25 -0
  177. package/dist/environments/dto.js +12 -0
  178. package/dist/environments/environments.controller.d.ts +33 -0
  179. package/dist/environments/environments.controller.js +110 -0
  180. package/dist/environments/environments.module.d.ts +8 -0
  181. package/dist/environments/environments.module.js +27 -0
  182. package/dist/environments/environments.service.d.ts +153 -0
  183. package/dist/environments/environments.service.js +541 -0
  184. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  185. package/dist/environments/legacy-cleanup.job.js +141 -0
  186. package/dist/errors.d.ts +85 -2
  187. package/dist/errors.js +85 -2
  188. package/dist/evals/reconstruct.d.ts +18 -9
  189. package/dist/evals/reconstruct.js +26 -7
  190. package/dist/evals/run-replay.d.ts +4 -2
  191. package/dist/evals/run-replay.js +20 -6
  192. package/dist/evals/runs.service.d.ts +2 -1
  193. package/dist/evals/runs.service.js +13 -12
  194. package/dist/evals/step-replay.d.ts +4 -6
  195. package/dist/evals/step-replay.js +4 -3
  196. package/dist/evals/trajectory.service.d.ts +8 -3
  197. package/dist/evals/trajectory.service.js +26 -14
  198. package/dist/evals/worker.d.ts +5 -5
  199. package/dist/evals/worker.js +9 -3
  200. package/dist/extensions/admin-ops.d.ts +36 -10
  201. package/dist/extensions/admin-ops.js +65 -42
  202. package/dist/extensions/admin-view.d.ts +37 -10
  203. package/dist/extensions/admin-view.js +103 -20
  204. package/dist/extensions/bootstrap.d.ts +17 -4
  205. package/dist/extensions/bootstrap.js +70 -9
  206. package/dist/extensions/cli.d.ts +12 -0
  207. package/dist/extensions/cli.js +11 -2
  208. package/dist/extensions/config-hash.d.ts +10 -0
  209. package/dist/extensions/config-hash.js +38 -0
  210. package/dist/extensions/deployment-config.d.ts +28 -5
  211. package/dist/extensions/deployment-config.js +48 -7
  212. package/dist/extensions/effective-config.d.ts +127 -0
  213. package/dist/extensions/effective-config.js +368 -0
  214. package/dist/extensions/extensions.module.js +11 -11
  215. package/dist/extensions/hooks.d.ts +37 -4
  216. package/dist/extensions/hooks.js +82 -16
  217. package/dist/extensions/host.d.ts +24 -10
  218. package/dist/extensions/host.js +49 -54
  219. package/dist/extensions/installs.d.ts +20 -8
  220. package/dist/extensions/installs.js +37 -15
  221. package/dist/extensions/org-config.d.ts +75 -6
  222. package/dist/extensions/org-config.js +184 -32
  223. package/dist/extensions/org-levels.d.ts +37 -0
  224. package/dist/extensions/org-levels.js +71 -0
  225. package/dist/extensions/org-overrides.d.ts +151 -0
  226. package/dist/extensions/org-overrides.js +524 -0
  227. package/dist/extensions/permission-view.d.ts +16 -4
  228. package/dist/extensions/permission-view.js +4 -4
  229. package/dist/extensions/plugin-items.d.ts +21 -0
  230. package/dist/extensions/plugin-items.js +42 -0
  231. package/dist/extensions/point-defaults.d.ts +12 -5
  232. package/dist/extensions/point-defaults.js +37 -9
  233. package/dist/extensions/resolve.d.ts +5 -1
  234. package/dist/extensions/resolve.js +15 -2
  235. package/dist/extensions/state.module.d.ts +9 -0
  236. package/dist/extensions/state.module.js +38 -0
  237. package/dist/files/previewers.d.ts +8 -1
  238. package/dist/files/previewers.js +35 -6
  239. package/dist/http/api.module.js +25 -3
  240. package/dist/http/app.d.ts +11 -2
  241. package/dist/http/app.js +31 -5
  242. package/dist/http/plugin-dispatch.d.ts +4 -1
  243. package/dist/http/plugin-dispatch.js +14 -2
  244. package/dist/identity/accounts.d.ts +29 -29
  245. package/dist/identity/accounts.js +47 -47
  246. package/dist/identity/audit.d.ts +2 -1
  247. package/dist/identity/auth.guard.d.ts +13 -5
  248. package/dist/identity/auth.guard.js +26 -9
  249. package/dist/identity/identity.module.d.ts +1 -1
  250. package/dist/identity/identity.module.js +4 -4
  251. package/dist/identity/me.controller.js +1 -1
  252. package/dist/identity/principal.d.ts +3 -3
  253. package/dist/identity/principal.js +3 -3
  254. package/dist/identity/settings.d.ts +22 -11
  255. package/dist/identity/settings.js +53 -18
  256. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  257. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  258. package/dist/inbox/inbox.module.d.ts +4 -1
  259. package/dist/inbox/inbox.module.js +7 -3
  260. package/dist/inbox/inbox.service.d.ts +62 -3
  261. package/dist/inbox/inbox.service.js +74 -4
  262. package/dist/inbox/org-notices.d.ts +63 -0
  263. package/dist/inbox/org-notices.js +91 -0
  264. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  265. package/dist/inbox/platform-inbox.controller.js +58 -0
  266. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  267. package/dist/inbox/platform-inbox.service.js +263 -0
  268. package/dist/inbox/platform-notices.d.ts +19 -0
  269. package/dist/inbox/platform-notices.js +9 -0
  270. package/dist/index.d.ts +1 -1
  271. package/dist/index.js +1 -1
  272. package/dist/infra/cli/kernel-cli.module.js +9 -1
  273. package/dist/infra/config/kernel-config.service.js +24 -1
  274. package/dist/infra/database/xact-lock.d.ts +1 -1
  275. package/dist/infra/database/xact-lock.js +1 -1
  276. package/dist/infra/events/kernel-events.d.ts +19 -2
  277. package/dist/infra/queue/add-job-once.d.ts +14 -0
  278. package/dist/infra/queue/add-job-once.js +16 -0
  279. package/dist/kernel.module.js +6 -0
  280. package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
  281. package/dist/lifecycle/kernel-lifecycle.js +4 -4
  282. package/dist/models/embeddings.d.ts +82 -0
  283. package/dist/models/embeddings.js +326 -0
  284. package/dist/models/enablement.controller.d.ts +40 -0
  285. package/dist/models/enablement.controller.js +74 -0
  286. package/dist/models/enablement.d.ts +99 -0
  287. package/dist/models/enablement.js +263 -0
  288. package/dist/models/models.module.d.ts +5 -1
  289. package/dist/models/models.module.js +16 -4
  290. package/dist/models/prices.d.ts +5 -5
  291. package/dist/models/prices.js +4 -4
  292. package/dist/models/purposes.controller.d.ts +6 -4
  293. package/dist/models/purposes.controller.js +13 -7
  294. package/dist/models/purposes.d.ts +37 -12
  295. package/dist/models/purposes.js +63 -17
  296. package/dist/orgs/directory-sync.d.ts +14 -5
  297. package/dist/orgs/directory-sync.js +41 -17
  298. package/dist/orgs/offboarding.d.ts +9 -7
  299. package/dist/orgs/offboarding.js +28 -17
  300. package/dist/orgs/org-lock.d.ts +5 -0
  301. package/dist/orgs/org-lock.js +13 -0
  302. package/dist/orgs/org.guard.d.ts +10 -0
  303. package/dist/orgs/org.guard.js +43 -32
  304. package/dist/orgs/orgs.module.js +3 -0
  305. package/dist/orgs/orgs.service.d.ts +20 -7
  306. package/dist/orgs/orgs.service.js +32 -12
  307. package/dist/orgs/roles.d.ts +1 -1
  308. package/dist/orgs/roles.js +5 -1
  309. package/dist/orgs/settings.controller.d.ts +1 -1
  310. package/dist/orgs/settings.service.d.ts +15 -3
  311. package/dist/orgs/settings.service.js +6 -2
  312. package/dist/overrides.d.ts +3 -0
  313. package/dist/overrides.js +2 -0
  314. package/dist/platform/actor.d.ts +48 -0
  315. package/dist/platform/actor.js +100 -0
  316. package/dist/platform/agent-docs.d.ts +18 -0
  317. package/dist/platform/agent-docs.js +59 -0
  318. package/dist/platform/availability.d.ts +14 -0
  319. package/dist/platform/availability.js +43 -0
  320. package/dist/platform/errors.d.ts +11 -0
  321. package/dist/platform/errors.js +26 -0
  322. package/dist/platform/exclusions.d.ts +12 -0
  323. package/dist/platform/exclusions.js +1405 -0
  324. package/dist/platform/method.d.ts +6 -0
  325. package/dist/platform/method.js +15 -0
  326. package/dist/platform/operation.d.ts +92 -0
  327. package/dist/platform/operation.js +35 -0
  328. package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
  329. package/dist/platform/ops/agent-templates.ops.js +92 -0
  330. package/dist/platform/ops/agents.ops.d.ts +19 -0
  331. package/dist/platform/ops/agents.ops.js +294 -0
  332. package/dist/platform/ops/connectors.ops.d.ts +15 -0
  333. package/dist/platform/ops/connectors.ops.js +126 -0
  334. package/dist/platform/ops/errors.d.ts +11 -0
  335. package/dist/platform/ops/errors.js +22 -0
  336. package/dist/platform/ops/extensions.ops.d.ts +19 -0
  337. package/dist/platform/ops/extensions.ops.js +116 -0
  338. package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
  339. package/dist/platform/ops/marketplaces.ops.js +157 -0
  340. package/dist/platform/ops/paging.d.ts +14 -0
  341. package/dist/platform/ops/paging.js +20 -0
  342. package/dist/platform/ops/platform.ops.d.ts +23 -0
  343. package/dist/platform/ops/platform.ops.js +158 -0
  344. package/dist/platform/ops/plugins.ops.d.ts +33 -0
  345. package/dist/platform/ops/plugins.ops.js +377 -0
  346. package/dist/platform/ops/requests.ops.d.ts +14 -0
  347. package/dist/platform/ops/requests.ops.js +153 -0
  348. package/dist/platform/ops/role.d.ts +4 -0
  349. package/dist/platform/ops/role.js +10 -0
  350. package/dist/platform/ops/skills.ops.d.ts +13 -0
  351. package/dist/platform/ops/skills.ops.js +98 -0
  352. package/dist/platform/ops/summary.d.ts +10 -0
  353. package/dist/platform/ops/summary.js +18 -0
  354. package/dist/platform/platform-ops.module.d.ts +7 -0
  355. package/dist/platform/platform-ops.module.js +55 -0
  356. package/dist/platform/platform.module.d.ts +8 -0
  357. package/dist/platform/platform.module.js +25 -0
  358. package/dist/platform/redact-orgs.d.ts +7 -0
  359. package/dist/platform/redact-orgs.js +52 -0
  360. package/dist/platform/registry.d.ts +30 -0
  361. package/dist/platform/registry.js +111 -0
  362. package/dist/roles/worker-role.d.ts +6 -4
  363. package/dist/roles/worker-role.js +14 -7
  364. package/dist/roles/worker.module.d.ts +1 -1
  365. package/dist/roles/worker.module.js +9 -1
  366. package/dist/runtime/context/build.d.ts +6 -4
  367. package/dist/runtime/context/build.js +26 -7
  368. package/dist/runtime/context/claude-tools.d.ts +2 -1
  369. package/dist/runtime/context/claude-tools.js +5 -4
  370. package/dist/runtime/context/compaction.js +9 -0
  371. package/dist/runtime/context/reminders.d.ts +2 -0
  372. package/dist/runtime/context/reminders.js +2 -0
  373. package/dist/runtime/context/skills.js +9 -2
  374. package/dist/runtime/context/tool-changes.d.ts +27 -0
  375. package/dist/runtime/context/tool-changes.js +60 -0
  376. package/dist/runtime/hook-calls.d.ts +8 -1
  377. package/dist/runtime/hook-calls.js +40 -7
  378. package/dist/runtime/langgraph-loop.d.ts +3 -1
  379. package/dist/runtime/langgraph-loop.js +35 -17
  380. package/dist/runtime/loop.d.ts +32 -4
  381. package/dist/runtime/maintenance.d.ts +7 -4
  382. package/dist/runtime/maintenance.js +23 -8
  383. package/dist/runtime/model-call.d.ts +38 -11
  384. package/dist/runtime/model-call.js +97 -24
  385. package/dist/runtime/providers.d.ts +146 -32
  386. package/dist/runtime/providers.js +321 -67
  387. package/dist/runtime/run-control.d.ts +11 -1
  388. package/dist/runtime/run-control.js +12 -0
  389. package/dist/runtime/run-drafts.d.ts +85 -0
  390. package/dist/runtime/run-drafts.js +230 -0
  391. package/dist/runtime/run-jobs.d.ts +3 -5
  392. package/dist/runtime/run-jobs.js +3 -7
  393. package/dist/runtime/run-queue.d.ts +37 -3
  394. package/dist/runtime/run-queue.js +188 -11
  395. package/dist/runtime/run-worker.d.ts +12 -6
  396. package/dist/runtime/run-worker.js +58 -35
  397. package/dist/runtime/runtime.module.js +3 -0
  398. package/dist/runtime/step-log.d.ts +9 -4
  399. package/dist/runtime/step-log.js +8 -5
  400. package/dist/runtime/stream.controller.d.ts +23 -1
  401. package/dist/runtime/stream.controller.js +60 -3
  402. package/dist/runtime/stream.d.ts +4 -1
  403. package/dist/runtime/stream.js +27 -3
  404. package/dist/runtime/subagents/child.d.ts +55 -7
  405. package/dist/runtime/subagents/child.js +105 -7
  406. package/dist/runtime/subagents/definition.d.ts +12 -3
  407. package/dist/runtime/subagents/definition.js +46 -32
  408. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  409. package/dist/runtime/subagents/deliveries.js +228 -0
  410. package/dist/runtime/subagents/dispatch.d.ts +115 -26
  411. package/dist/runtime/subagents/dispatch.js +212 -141
  412. package/dist/runtime/subagents/limits.d.ts +24 -5
  413. package/dist/runtime/subagents/limits.js +40 -6
  414. package/dist/runtime/subagents/messages.d.ts +95 -0
  415. package/dist/runtime/subagents/messages.js +328 -0
  416. package/dist/runtime/subagents/preamble.d.ts +4 -4
  417. package/dist/runtime/subagents/preamble.js +9 -7
  418. package/dist/runtime/subagents/progress.d.ts +8 -6
  419. package/dist/runtime/subagents/progress.js +11 -6
  420. package/dist/runtime/subagents/render.d.ts +30 -0
  421. package/dist/runtime/subagents/render.js +53 -0
  422. package/dist/runtime/subagents/roster.d.ts +24 -7
  423. package/dist/runtime/subagents/roster.js +47 -11
  424. package/dist/runtime/subagents/skill-fork.d.ts +3 -2
  425. package/dist/runtime/subagents/skill-fork.js +8 -4
  426. package/dist/runtime/subagents/status.d.ts +14 -0
  427. package/dist/runtime/subagents/status.js +23 -0
  428. package/dist/runtime/subagents/subagents.service.d.ts +7 -4
  429. package/dist/runtime/subagents/subagents.service.js +11 -6
  430. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  431. package/dist/runtime/usage-report-jobs.js +158 -0
  432. package/dist/runtime/usage-report.d.ts +33 -38
  433. package/dist/runtime/usage-report.js +169 -96
  434. package/dist/runtime/waits.d.ts +140 -37
  435. package/dist/runtime/waits.js +394 -106
  436. package/dist/sandbox/jobs.d.ts +40 -13
  437. package/dist/sandbox/jobs.js +57 -20
  438. package/dist/sandbox/leases.d.ts +37 -54
  439. package/dist/sandbox/leases.js +71 -115
  440. package/dist/sandbox/providers.d.ts +2 -2
  441. package/dist/sandbox/providers.js +1 -1
  442. package/dist/sandbox/sandbox.module.d.ts +3 -2
  443. package/dist/sandbox/sandbox.module.js +4 -3
  444. package/dist/sandbox/sandbox.service.d.ts +229 -134
  445. package/dist/sandbox/sandbox.service.js +630 -409
  446. package/dist/skills/catalog.d.ts +3 -2
  447. package/dist/skills/catalog.js +21 -43
  448. package/dist/skills/changes.controller.d.ts +7 -0
  449. package/dist/skills/changes.controller.js +19 -1
  450. package/dist/skills/invoke.js +8 -3
  451. package/dist/skills/package.d.ts +20 -1
  452. package/dist/skills/package.js +28 -1
  453. package/dist/skills/skills.controller.d.ts +39 -4
  454. package/dist/skills/skills.controller.js +88 -10
  455. package/dist/skills/skills.module.js +10 -1
  456. package/dist/skills/skills.service.d.ts +106 -26
  457. package/dist/skills/skills.service.js +421 -75
  458. package/dist/skills/usable.d.ts +81 -0
  459. package/dist/skills/usable.js +379 -0
  460. package/dist/tools/approvals.service.d.ts +20 -2
  461. package/dist/tools/approvals.service.js +23 -4
  462. package/dist/tools/builtin-names.d.ts +21 -5
  463. package/dist/tools/builtin-names.js +30 -5
  464. package/dist/tools/builtins/agent.d.ts +23 -21
  465. package/dist/tools/builtins/agent.js +62 -55
  466. package/dist/tools/builtins/builtin-tools.d.ts +6 -2
  467. package/dist/tools/builtins/builtin-tools.js +37 -12
  468. package/dist/tools/builtins/handback.d.ts +28 -0
  469. package/dist/tools/builtins/handback.js +53 -0
  470. package/dist/tools/builtins/platform.d.ts +34 -0
  471. package/dist/tools/builtins/platform.js +362 -0
  472. package/dist/tools/builtins/sandbox/bash.js +13 -3
  473. package/dist/tools/builtins/sandbox/common.d.ts +43 -24
  474. package/dist/tools/builtins/sandbox/common.js +80 -45
  475. package/dist/tools/builtins/sandbox/edit.js +2 -2
  476. package/dist/tools/builtins/sandbox/glob.js +2 -2
  477. package/dist/tools/builtins/sandbox/grep.js +2 -4
  478. package/dist/tools/builtins/sandbox/index.d.ts +1 -1
  479. package/dist/tools/builtins/sandbox/index.js +1 -1
  480. package/dist/tools/builtins/sandbox/read.js +1 -1
  481. package/dist/tools/builtins/sandbox/task-output.d.ts +14 -3
  482. package/dist/tools/builtins/sandbox/task-output.js +30 -5
  483. package/dist/tools/builtins/sandbox/task-stop.js +2 -1
  484. package/dist/tools/builtins/sandbox/write.js +2 -2
  485. package/dist/tools/builtins/send-message.d.ts +56 -0
  486. package/dist/tools/builtins/send-message.js +100 -0
  487. package/dist/tools/builtins/skill-load.d.ts +22 -14
  488. package/dist/tools/builtins/skill-load.js +86 -57
  489. package/dist/tools/builtins/skill-write.js +1 -1
  490. package/dist/tools/builtins/web/extract.js +5 -1
  491. package/dist/tools/builtins/web/fetch.js +1 -0
  492. package/dist/tools/builtins/web/search.js +1 -0
  493. package/dist/tools/connectors.controller.d.ts +10 -0
  494. package/dist/tools/connectors.controller.js +12 -0
  495. package/dist/tools/connectors.service.d.ts +46 -5
  496. package/dist/tools/connectors.service.js +94 -15
  497. package/dist/tools/extension-tools.controller.d.ts +14 -0
  498. package/dist/tools/extension-tools.controller.js +37 -0
  499. package/dist/tools/info.d.ts +42 -1
  500. package/dist/tools/info.js +64 -1
  501. package/dist/tools/org-tool-switches.d.ts +74 -0
  502. package/dist/tools/org-tool-switches.js +184 -0
  503. package/dist/tools/pipeline.d.ts +46 -40
  504. package/dist/tools/pipeline.js +193 -364
  505. package/dist/tools/policy.d.ts +1 -1
  506. package/dist/tools/policy.js +36 -16
  507. package/dist/tools/registry.d.ts +98 -5
  508. package/dist/tools/registry.js +87 -9
  509. package/dist/tools/tools.module.js +12 -2
  510. package/dist/ui/views.d.ts +2 -1
  511. package/dist/ui/views.js +17 -3
  512. package/package.json +3 -3
  513. package/src/migrations/0074_subagent_tree.sql +50 -0
  514. package/src/migrations/0075_plugin_scope.sql +61 -0
  515. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  516. package/src/migrations/0077_scope_requests.sql +52 -0
  517. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  518. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  519. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  520. package/src/migrations/0081_platform_components.sql +129 -0
  521. package/src/migrations/0082_platform_migration.sql +33 -0
  522. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  523. package/src/migrations/0084_org_owned_items.sql +85 -0
  524. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  525. package/src/migrations/0086_org_layering.sql +30 -0
  526. package/src/migrations/0087_approval_summary.sql +6 -0
  527. package/src/migrations/0088_environments.sql +80 -0
  528. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  529. package/dist/catalog/upgrade-targets.d.ts +0 -56
  530. package/dist/catalog/upgrade-targets.js +0 -90
  531. package/dist/conversations/sandbox-status.d.ts +0 -24
  532. package/dist/conversations/sandbox-status.js +0 -52
  533. package/dist/extensions/org-config.controller.d.ts +0 -32
  534. package/dist/extensions/org-config.controller.js +0 -70
@@ -2,18 +2,31 @@ import type { FastifyReply } from "fastify";
2
2
  import { z } from "zod";
3
3
  import { type Principal } from "../identity/principal.js";
4
4
  import { type OrgContext } from "../orgs/org.guard.js";
5
- import type { CatalogIcon, OrgCatalogDetail, OrgCatalogItem, OrgInstallResult, OrgUpgradeResult } from "./catalog-content.js";
5
+ import type { ConnectorDetail, ToolIssue } from "../tools/connectors.service.js";
6
+ import type { MarketplaceImportResult } from "./catalog.service.js";
7
+ import type { CatalogIcon, OrgCatalogDetail, OrgCatalogItem, OrgInstallResult } from "./catalog-content.js";
6
8
  import { OrgCatalogService } from "./org-catalog.service.js";
7
- import { PluginInstaller, type PluginInstallView, type UninstallReport } from "./plugin-install.js";
8
- import type { UpgradePreview } from "./plugin-upgrade.js";
9
+ import { PluginInstaller, type PluginInstallView, type UninstallPreview, type UninstallReport } from "./plugin-install.js";
9
10
  import { CatalogRequestsService, type CatalogRequestView } from "./requests.service.js";
10
11
  declare const RequestBody: z.ZodObject<{
12
+ kind: z.ZodEnum<{
13
+ access: "access";
14
+ enable: "enable";
15
+ }>;
16
+ note: z.ZodOptional<z.ZodString>;
17
+ }, z.core.$strict>;
18
+ /** An org admin's request for a marketplace entry not in the catalog yet. */
19
+ declare const MarketplaceRequestBody: z.ZodObject<{
20
+ marketplaceId: z.ZodString;
21
+ name: z.ZodString;
22
+ version: z.ZodString;
11
23
  note: z.ZodOptional<z.ZodString>;
12
- version: z.ZodOptional<z.ZodString>;
13
24
  }, z.core.$strict>;
14
- /** The org install body: the version (default the latest), template input, the extension's org config. */
25
+ /**
26
+ * The org install body: template input, the extension's org config. No version: an org installs the
27
+ * platform version (one per deployment, ruling P2-17).
28
+ */
15
29
  declare const InstallBody: z.ZodObject<{
16
- version: z.ZodOptional<z.ZodString>;
17
30
  connectors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
18
31
  name: z.ZodOptional<z.ZodString>;
19
32
  slug: z.ZodOptional<z.ZodString>;
@@ -26,16 +39,28 @@ declare const InstallBody: z.ZodObject<{
26
39
  }, z.core.$strict>>>;
27
40
  extensionConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
28
41
  }, z.core.$strict>;
29
- /** The upgrade preview body: the target version. */
30
- declare const UpgradePreviewBody: z.ZodObject<{
31
- version: z.ZodString;
42
+ /** The connectors body (ruling P2-10): the input of missing connectors, by template id, as at install. */
43
+ declare const ConnectorsBody: z.ZodObject<{
44
+ inputs: z.ZodObject<{
45
+ connectors: z.ZodRecord<z.ZodString, z.ZodObject<{
46
+ name: z.ZodOptional<z.ZodString>;
47
+ slug: z.ZodOptional<z.ZodString>;
48
+ endpoint: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
49
+ credential: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
50
+ client: z.ZodOptional<z.ZodObject<{
51
+ clientId: z.ZodString;
52
+ clientSecret: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strict>>;
54
+ }, z.core.$strict>>;
55
+ }, z.core.$strict>;
32
56
  }, z.core.$strict>;
33
- /** The upgrade body: the target version, the preview's diffHash, the inputs it listed. */
34
- declare const UpgradeBody: z.ZodObject<{
35
- version: z.ZodString;
36
- diffHash: z.ZodString;
37
- connectors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
38
- name: z.ZodOptional<z.ZodString>;
57
+ /**
58
+ * One more connector from a platform connector template (ruling P4-T6-8): its name and an
59
+ * install's connector input (`config`).
60
+ */
61
+ declare const TemplateConnectorBody: z.ZodObject<{
62
+ name: z.ZodOptional<z.ZodString>;
63
+ config: z.ZodObject<{
39
64
  slug: z.ZodOptional<z.ZodString>;
40
65
  endpoint: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
41
66
  credential: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -43,8 +68,25 @@ declare const UpgradeBody: z.ZodObject<{
43
68
  clientId: z.ZodString;
44
69
  clientSecret: z.ZodOptional<z.ZodString>;
45
70
  }, z.core.$strict>>;
46
- }, z.core.$strict>>>;
47
- extensionConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
71
+ }, z.core.$strict>;
72
+ }, z.core.$strict>;
73
+ /** The switch body: on (with the install inputs), or off (with the preview's hash to confirm). */
74
+ declare const SwitchBody: z.ZodObject<{
75
+ enabled: z.ZodBoolean;
76
+ inputs: z.ZodOptional<z.ZodObject<{
77
+ connectors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
78
+ name: z.ZodOptional<z.ZodString>;
79
+ slug: z.ZodOptional<z.ZodString>;
80
+ endpoint: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
81
+ credential: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
82
+ client: z.ZodOptional<z.ZodObject<{
83
+ clientId: z.ZodString;
84
+ clientSecret: z.ZodOptional<z.ZodString>;
85
+ }, z.core.$strict>>;
86
+ }, z.core.$strict>>>;
87
+ extensionConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
88
+ }, z.core.$strict>>;
89
+ confirm: z.ZodOptional<z.ZodString>;
48
90
  }, z.core.$strict>;
49
91
  /**
50
92
  * 条目图标的响应头:图标可能是 SVG(可含脚本),只许网页以 `<img>` 显示;直接打开时 CSP sandbox 禁止脚本与一切外部
@@ -52,10 +94,8 @@ declare const UpgradeBody: z.ZodObject<{
52
94
  */
53
95
  export declare function sendCatalogIcon(reply: FastifyReply, icon: CatalogIcon): Promise<void>;
54
96
  declare const DecideBody: z.ZodObject<{
55
- decision: z.ZodEnum<{
56
- approve: "approve";
57
- reject: "reject";
58
- }>;
97
+ approve: z.ZodBoolean;
98
+ reason: z.ZodOptional<z.ZodString>;
59
99
  }, z.core.$strict>;
60
100
  declare const AdminListQuery: z.ZodObject<{
61
101
  status: z.ZodOptional<z.ZodEnum<{
@@ -66,21 +106,27 @@ declare const AdminListQuery: z.ZodObject<{
66
106
  }>>;
67
107
  }, z.core.$strip>;
68
108
  /**
69
- * The enterprise catalog from an organization's view (`/api/v1/orgs/:orgId/...`, human users only):
109
+ * The platform catalog from an organization's view (`/api/v1/orgs/:orgId/...`, human users only):
70
110
  * - `GET catalog` (`catalog.read`, member and up; members do not see disabled items);
71
- * - `POST catalog/:itemId/requests` (`catalog.request`): a member request, into the org admins'
72
- * inbox;
73
- * - `POST catalog/:itemId/install`: the route only requires `catalog.read`; the service re-checks
111
+ * - `POST catalog/:itemId/requests` (`catalog.request`; `access` needs an org admin): requests
112
+ * under plugin scope (spec §5.1), `enable` into the org admins' inbox, `access` to the super
113
+ * admin; `POST marketplace-requests` (org admins): an `import` request for a marketplace entry;
114
+ * - `PUT catalog/:itemId/switch` (scope phase 1): `{ enabled: true, inputs? }` installs -> 200 `{ item }`;
115
+ * `{ enabled: false, confirm? }` -> 200 `{ preview, confirm }`, then with the hash 200 `{ item }`;
116
+ * - `POST catalog/:itemId/install` (an alias of switching on, no longer creates requests): the route only requires `catalog.read`; the service re-checks
74
117
  * the plugin's component actions (`org.extensions.manage` for an extension, `connectors.manage`
75
118
  * for templates, `skills.manage` for skills) inside the org row lock; needs_approval without a
76
119
  * grant -> 202 `{ request }`, otherwise 201 `{ installed, install }` (the install view);
77
120
  * - `GET / DELETE plugin-installs[/:installId]` (`org.extensions.manage`; uninstall re-checks the
78
121
  * plugin's component actions in the service);
79
- * - `POST plugin-installs/:installId/upgrade/preview` and `.../upgrade` (spec §10; the route only
80
- * requires `catalog.read`, the service re-checks the component actions of both versions):
81
- * preview -> 200 `{ from, to, diffHash, components, inputs, templates }`; upgrade -> 200 `{ install }`, or
82
- * 202 `{ request }` for a needs_approval item without a grant;
83
- * - `POST catalog-requests/:id/decide` (`catalog.decide`, org admins).
122
+ * - no per-org upgrade: a platform plugin has one version for the deployment, updated by the super
123
+ * admin (`PUT /admin/catalog/items/:id/update`, ruling F2);
124
+ * - `POST connector-templates/:templateId/connectors` (`connectors.manage`): one more connector
125
+ * from a platform connector template on in the org (ruling P4-T6-8);
126
+ * - `POST catalog-requests/:id/decide` (`catalog.decide`, org admins; `enable` and
127
+ * `connector_setup` requests, `{ approve, reason? }`; a `connector_setup` request is only
128
+ * rejected here, ruling P4-T6-6), `POST catalog-requests/:id/dismiss` (the requester, a decided
129
+ * request).
84
130
  */
85
131
  export declare class OrgCatalogController {
86
132
  private readonly catalog;
@@ -100,22 +146,66 @@ export declare class OrgCatalogController {
100
146
  * -> 404 `catalog.icon_not_found`; members do not see disabled items.
101
147
  */
102
148
  icon(org: OrgContext, itemId: string, reply: FastifyReply): Promise<void>;
149
+ /**
150
+ * A request for an item (spec §5.1): `enable` (members and up, an item that is off) or `access`
151
+ * (org admins, a `named` item shown to the org) -> 201 `{ request }`.
152
+ */
103
153
  request(principal: Principal, org: OrgContext, itemId: string, body: z.infer<typeof RequestBody>): Promise<{
104
154
  request: CatalogRequestView;
105
- created: boolean;
155
+ }>;
156
+ /**
157
+ * An org admin asks for a marketplace entry to be imported (deployment setting
158
+ * `orgMarketplaceBrowse`) -> 201 `{ request }`.
159
+ */
160
+ marketplaceRequest(principal: Principal, org: OrgContext, body: z.infer<typeof MarketplaceRequestBody>): Promise<{
161
+ request: CatalogRequestView;
162
+ }>;
163
+ setSwitch(principal: Principal, org: OrgContext, itemId: string, body: z.infer<typeof SwitchBody>): Promise<{
164
+ item: OrgCatalogItem;
165
+ } | {
166
+ preview: UninstallPreview;
167
+ confirm: string;
106
168
  }>;
107
169
  install(principal: Principal, org: OrgContext, itemId: string, body: z.infer<typeof InstallBody>, reply: FastifyReply): Promise<Omit<OrgInstallResult, "status">>;
170
+ /**
171
+ * Creates the connectors an installed plugin is missing (ruling P2-10: a connector template on
172
+ * in the org without a connector there, e.g. added by a platform update; the plugin shows
173
+ * `needs_config`): `{ inputs: { connectors: { <templateId>: input } } }` with the same input
174
+ * checks as an install; recorded on the install -> 201 `{ connectors: [{ templateId,
175
+ * connectorId }] }`. Not installed -> 404 `plugin.install_not_found`; a template not missing ->
176
+ * 400 `validation_failed`.
177
+ */
178
+ configureConnectors(principal: Principal, org: OrgContext, itemId: string, body: z.infer<typeof ConnectorsBody>): Promise<{
179
+ connectors: {
180
+ templateId: string;
181
+ connectorId: string;
182
+ }[];
183
+ }>;
184
+ /**
185
+ * One more connector from a platform connector template on in the org (rulings P4-7, P4-T6-8):
186
+ * `{ name?, config: { slug?, endpoint?, credential?, client? } }` with the checks of an install
187
+ * -> 201 `{ connector, issues }` (as `POST connectors`). A template not usable in the org -> 404
188
+ * `component.not_found`; off there -> 409 `component.off`; input errors -> 400 at `config.*`.
189
+ */
190
+ templateConnector(principal: Principal, org: OrgContext, templateId: string, body: z.infer<typeof TemplateConnectorBody>): Promise<{
191
+ connector: ConnectorDetail;
192
+ issues: ToolIssue[];
193
+ }>;
108
194
  listInstalls(org: OrgContext): Promise<{
109
195
  installs: PluginInstallView[];
110
196
  }>;
111
197
  uninstall(principal: Principal, org: OrgContext, installId: string): Promise<UninstallReport>;
112
- upgradePreview(principal: Principal, org: OrgContext, installId: string, body: z.infer<typeof UpgradePreviewBody>): Promise<UpgradePreview>;
113
- upgrade(principal: Principal, org: OrgContext, installId: string, body: z.infer<typeof UpgradeBody>, reply: FastifyReply): Promise<Omit<OrgUpgradeResult, "status">>;
114
198
  decide(principal: Principal, org: OrgContext, id: string, body: z.infer<typeof DecideBody>): Promise<{
115
199
  request: CatalogRequestView;
116
200
  }>;
201
+ /** The requester dismisses a decided request from the inbox -> 204. */
202
+ dismiss(principal: Principal, org: OrgContext, id: string): Promise<void>;
117
203
  }
118
- /** Enterprise admins decide deployment-level catalog requests (`/api/v1/admin/catalog/requests`). */
204
+ /**
205
+ * Super admins decide `access` and `import` requests (`/api/v1/admin/catalog/requests`):
206
+ * approving an `import` returns the prepared import (`import: { stagingId, review, ... }`), confirmed
207
+ * with `POST /api/v1/admin/catalog/imports/:stagingId/confirm`.
208
+ */
119
209
  export declare class AdminCatalogRequestsController {
120
210
  private readonly requests;
121
211
  constructor(requests: CatalogRequestsService);
@@ -124,6 +214,7 @@ export declare class AdminCatalogRequestsController {
124
214
  }>;
125
215
  decide(principal: Principal, id: string, body: z.infer<typeof DecideBody>): Promise<{
126
216
  request: CatalogRequestView;
217
+ import?: MarketplaceImportResult;
127
218
  }>;
128
219
  }
129
220
  export {};
@@ -7,21 +7,30 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
- import { Controller, Delete, Get, HttpCode, Inject, Param, Post, Res } from "@nestjs/common";
10
+ import { Controller, Delete, Get, HttpCode, Inject, Param, Post, Put, Res } from "@nestjs/common";
11
11
  import { z } from "zod";
12
- import { CurrentPrincipal, EnterpriseAdmin, patTokenId, requireUser, } from "../identity/principal.js";
12
+ import { CurrentPrincipal, patTokenId, requireUser, SuperAdmin, } from "../identity/principal.js";
13
13
  import { createZodDto } from "../infra/validation/create-zod-dto.js";
14
14
  import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
15
15
  import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
16
16
  import { roleAtLeast } from "../orgs/roles.js";
17
17
  import { CredentialValue } from "../tools/connectors.controller.js";
18
18
  import { OrgCatalogService } from "./org-catalog.service.js";
19
- import { PluginInstaller } from "./plugin-install.js";
19
+ import { PluginInstaller, } from "./plugin-install.js";
20
20
  import { CatalogRequestsService } from "./requests.service.js";
21
21
  const RequestBody = z
22
22
  .object({
23
+ kind: z.enum(["access", "enable"]),
24
+ note: z.string().max(1000).optional(),
25
+ })
26
+ .strict();
27
+ /** An org admin's request for a marketplace entry not in the catalog yet. */
28
+ const MarketplaceRequestBody = z
29
+ .object({
30
+ marketplaceId: z.string().min(1).max(100),
31
+ name: z.string().min(1).max(214),
32
+ version: z.string().min(1).max(256),
23
33
  note: z.string().max(1000).optional(),
24
- version: z.string().min(1).max(256).optional(),
25
34
  })
26
35
  .strict();
27
36
  const ConnectorInput = z
@@ -39,23 +48,41 @@ const ConnectorInput = z
39
48
  .optional(),
40
49
  })
41
50
  .strict();
42
- /** The org install body: the version (default the latest), template input, the extension's org config. */
51
+ /**
52
+ * The org install body: template input, the extension's org config. No version: an org installs the
53
+ * platform version (one per deployment, ruling P2-17).
54
+ */
43
55
  const InstallBody = z
44
56
  .object({
45
- version: z.string().min(1).max(256).optional(),
46
57
  connectors: z.record(z.string(), ConnectorInput).optional(),
47
58
  extensionConfig: z.record(z.string(), z.unknown()).optional(),
48
59
  })
49
60
  .strict();
50
- /** The upgrade preview body: the target version. */
51
- const UpgradePreviewBody = z.object({ version: z.string().min(1).max(256) }).strict();
52
- /** The upgrade body: the target version, the preview's diffHash, the inputs it listed. */
53
- const UpgradeBody = z
61
+ /** The connectors body (ruling P2-10): the input of missing connectors, by template id, as at install. */
62
+ const ConnectorsBody = z
54
63
  .object({
55
- version: z.string().min(1).max(256),
56
- diffHash: z.string().regex(/^[0-9a-f]{64}$/),
57
- connectors: z.record(z.string(), ConnectorInput).optional(),
58
- extensionConfig: z.record(z.string(), z.unknown()).optional(),
64
+ inputs: z.object({ connectors: z.record(z.string(), ConnectorInput) }).strict(),
65
+ })
66
+ .strict();
67
+ /**
68
+ * One more connector from a platform connector template (ruling P4-T6-8): its name and an
69
+ * install's connector input (`config`).
70
+ */
71
+ const TemplateConnectorBody = z
72
+ .object({
73
+ name: z.string().trim().min(1).max(80).optional(),
74
+ config: ConnectorInput.omit({ name: true }),
75
+ })
76
+ .strict();
77
+ /** The switch body: on (with the install inputs), or off (with the preview's hash to confirm). */
78
+ const SwitchBody = z
79
+ .object({
80
+ enabled: z.boolean(),
81
+ inputs: InstallBody.optional(),
82
+ confirm: z
83
+ .string()
84
+ .regex(/^[0-9a-f]{64}$/)
85
+ .optional(),
59
86
  })
60
87
  .strict();
61
88
  /**
@@ -70,7 +97,9 @@ export async function sendCatalogIcon(reply, icon) {
70
97
  .header("cache-control", "private, max-age=300")
71
98
  .send(Buffer.from(icon.data.buffer, icon.data.byteOffset, icon.data.byteLength));
72
99
  }
73
- const DecideBody = z.object({ decision: z.enum(["approve", "reject"]) }).strict();
100
+ const DecideBody = z
101
+ .object({ approve: z.boolean(), reason: z.string().max(1000).optional() })
102
+ .strict();
74
103
  const AdminListQuery = z.object({
75
104
  status: z.enum(["pending", "approved", "rejected", "cancelled"]).optional(),
76
105
  });
@@ -80,28 +109,38 @@ class CatalogDecideBody extends createZodDto(DecideBody, "CatalogDecideBody") {
80
109
  }
81
110
  class OrgPluginInstallBody extends createZodDto(InstallBody, "OrgPluginInstallBody") {
82
111
  }
83
- class CatalogRequestBody extends createZodDto(RequestBody, "CatalogRequestBody") {
112
+ class OrgPluginConnectorsBody extends createZodDto(ConnectorsBody, "OrgPluginConnectorsBody") {
113
+ }
114
+ class OrgPluginSwitchBody extends createZodDto(SwitchBody, "OrgPluginSwitchBody") {
84
115
  }
85
- class OrgPluginUpgradeBody extends createZodDto(UpgradeBody, "OrgPluginUpgradeBody") {
116
+ class OrgTemplateConnectorBody extends createZodDto(TemplateConnectorBody, "OrgTemplateConnectorBody") {
86
117
  }
87
- class OrgPluginUpgradePreviewBody extends createZodDto(UpgradePreviewBody, "OrgPluginUpgradePreviewBody") {
118
+ class CatalogRequestBody extends createZodDto(RequestBody, "CatalogRequestBody") {
119
+ }
120
+ class CatalogMarketplaceRequestBody extends createZodDto(MarketplaceRequestBody, "CatalogMarketplaceRequestBody") {
88
121
  }
89
122
  /**
90
- * The enterprise catalog from an organization's view (`/api/v1/orgs/:orgId/...`, human users only):
123
+ * The platform catalog from an organization's view (`/api/v1/orgs/:orgId/...`, human users only):
91
124
  * - `GET catalog` (`catalog.read`, member and up; members do not see disabled items);
92
- * - `POST catalog/:itemId/requests` (`catalog.request`): a member request, into the org admins'
93
- * inbox;
94
- * - `POST catalog/:itemId/install`: the route only requires `catalog.read`; the service re-checks
125
+ * - `POST catalog/:itemId/requests` (`catalog.request`; `access` needs an org admin): requests
126
+ * under plugin scope (spec §5.1), `enable` into the org admins' inbox, `access` to the super
127
+ * admin; `POST marketplace-requests` (org admins): an `import` request for a marketplace entry;
128
+ * - `PUT catalog/:itemId/switch` (scope phase 1): `{ enabled: true, inputs? }` installs -> 200 `{ item }`;
129
+ * `{ enabled: false, confirm? }` -> 200 `{ preview, confirm }`, then with the hash 200 `{ item }`;
130
+ * - `POST catalog/:itemId/install` (an alias of switching on, no longer creates requests): the route only requires `catalog.read`; the service re-checks
95
131
  * the plugin's component actions (`org.extensions.manage` for an extension, `connectors.manage`
96
132
  * for templates, `skills.manage` for skills) inside the org row lock; needs_approval without a
97
133
  * grant -> 202 `{ request }`, otherwise 201 `{ installed, install }` (the install view);
98
134
  * - `GET / DELETE plugin-installs[/:installId]` (`org.extensions.manage`; uninstall re-checks the
99
135
  * plugin's component actions in the service);
100
- * - `POST plugin-installs/:installId/upgrade/preview` and `.../upgrade` (spec §10; the route only
101
- * requires `catalog.read`, the service re-checks the component actions of both versions):
102
- * preview -> 200 `{ from, to, diffHash, components, inputs, templates }`; upgrade -> 200 `{ install }`, or
103
- * 202 `{ request }` for a needs_approval item without a grant;
104
- * - `POST catalog-requests/:id/decide` (`catalog.decide`, org admins).
136
+ * - no per-org upgrade: a platform plugin has one version for the deployment, updated by the super
137
+ * admin (`PUT /admin/catalog/items/:id/update`, ruling F2);
138
+ * - `POST connector-templates/:templateId/connectors` (`connectors.manage`): one more connector
139
+ * from a platform connector template on in the org (ruling P4-T6-8);
140
+ * - `POST catalog-requests/:id/decide` (`catalog.decide`, org admins; `enable` and
141
+ * `connector_setup` requests, `{ approve, reason? }`; a `connector_setup` request is only
142
+ * rejected here, ruling P4-T6-6), `POST catalog-requests/:id/dismiss` (the requester, a decided
143
+ * request).
105
144
  */
106
145
  let OrgCatalogController = class OrgCatalogController {
107
146
  catalog;
@@ -129,13 +168,42 @@ let OrgCatalogController = class OrgCatalogController {
129
168
  * -> 404 `catalog.icon_not_found`; members do not see disabled items.
130
169
  */
131
170
  async icon(org, itemId, reply) {
132
- const icon = await this.catalog.icon(itemId, roleAtLeast(org.role, "admin"));
171
+ const icon = await this.catalog.icon(itemId, roleAtLeast(org.role, "admin"), org.orgId);
133
172
  await sendCatalogIcon(reply, icon);
134
173
  }
174
+ /**
175
+ * A request for an item (spec §5.1): `enable` (members and up, an item that is off) or `access`
176
+ * (org admins, a `named` item shown to the org) -> 201 `{ request }`.
177
+ */
135
178
  async request(principal, org, itemId, body) {
136
179
  const p = requireUser(principal);
137
180
  const tokenId = patTokenId(p);
138
- return this.requests.request(org.orgId, p.account.id, itemId, body, tokenId !== undefined ? { actorTokenId: tokenId } : {});
181
+ return {
182
+ request: await this.requests.requestItem(org.orgId, p.account.id, itemId, body, tokenId !== undefined ? { actorTokenId: tokenId } : {}),
183
+ };
184
+ }
185
+ /**
186
+ * An org admin asks for a marketplace entry to be imported (deployment setting
187
+ * `orgMarketplaceBrowse`) -> 201 `{ request }`.
188
+ */
189
+ async marketplaceRequest(principal, org, body) {
190
+ const p = requireUser(principal);
191
+ const tokenId = patTokenId(p);
192
+ return {
193
+ request: await this.requests.requestImport(org.orgId, p.account.id, body, tokenId !== undefined ? { actorTokenId: tokenId } : {}),
194
+ };
195
+ }
196
+ async setSwitch(principal, org, itemId, body) {
197
+ const p = requireUser(principal);
198
+ const r = await this.catalog.setSwitch(org.orgId, p.account.id, itemId, body.enabled
199
+ ? {
200
+ enabled: true,
201
+ ...(body.inputs !== undefined && {
202
+ inputs: body.inputs,
203
+ }),
204
+ }
205
+ : { enabled: false, ...(body.confirm !== undefined && { confirm: body.confirm }) }, patTokenId(p));
206
+ return r.kind === "done" ? { item: r.item } : { preview: r.preview, confirm: r.confirm };
139
207
  }
140
208
  async install(principal, org, itemId, body, reply) {
141
209
  const p = requireUser(principal);
@@ -144,32 +212,55 @@ let OrgCatalogController = class OrgCatalogController {
144
212
  const { status: _status, ...rest } = r;
145
213
  return rest;
146
214
  }
147
- async listInstalls(org) {
148
- return { installs: await this.pluginInstaller.list(org.orgId) };
149
- }
150
- async uninstall(principal, org, installId) {
215
+ /**
216
+ * Creates the connectors an installed plugin is missing (ruling P2-10: a connector template on
217
+ * in the org without a connector there, e.g. added by a platform update; the plugin shows
218
+ * `needs_config`): `{ inputs: { connectors: { <templateId>: input } } }` with the same input
219
+ * checks as an install; recorded on the install -> 201 `{ connectors: [{ templateId,
220
+ * connectorId }] }`. Not installed -> 404 `plugin.install_not_found`; a template not missing ->
221
+ * 400 `validation_failed`.
222
+ */
223
+ async configureConnectors(principal, org, itemId, body) {
151
224
  const p = requireUser(principal);
152
225
  const tokenId = patTokenId(p);
153
- return this.pluginInstaller.uninstall(org.orgId, p.account.id, installId, tokenId !== undefined ? { actorTokenId: tokenId } : {});
226
+ return {
227
+ connectors: await this.pluginInstaller.configureConnectors(org.orgId, p.account.id, itemId, body.inputs, tokenId !== undefined ? { actorTokenId: tokenId } : {}),
228
+ };
154
229
  }
155
- upgradePreview(principal, org, installId, body) {
230
+ /**
231
+ * One more connector from a platform connector template on in the org (rulings P4-7, P4-T6-8):
232
+ * `{ name?, config: { slug?, endpoint?, credential?, client? } }` with the checks of an install
233
+ * -> 201 `{ connector, issues }` (as `POST connectors`). A template not usable in the org -> 404
234
+ * `component.not_found`; off there -> 409 `component.off`; input errors -> 400 at `config.*`.
235
+ */
236
+ async templateConnector(principal, org, templateId, body) {
156
237
  const p = requireUser(principal);
157
- return this.catalog.upgradePreview(org.orgId, p.account.id, installId, body.version);
238
+ const tokenId = patTokenId(p);
239
+ return this.pluginInstaller.addTemplateConnector(org.orgId, p.account.id, templateId, {
240
+ config: body.config,
241
+ ...(body.name !== undefined && { name: body.name }),
242
+ }, tokenId !== undefined ? { actorTokenId: tokenId } : {});
243
+ }
244
+ async listInstalls(org) {
245
+ return { installs: await this.pluginInstaller.list(org.orgId) };
158
246
  }
159
- async upgrade(principal, org, installId, body, reply) {
247
+ async uninstall(principal, org, installId) {
160
248
  const p = requireUser(principal);
161
- const r = await this.catalog.upgrade(org.orgId, p.account.id, installId, body, patTokenId(p));
162
- reply.status(r.status);
163
- const { status: _status, ...rest } = r;
164
- return rest;
249
+ const tokenId = patTokenId(p);
250
+ return this.catalog.uninstall(org.orgId, p.account.id, installId, tokenId);
165
251
  }
166
252
  async decide(principal, org, id, body) {
167
253
  const p = requireUser(principal);
168
254
  const tokenId = patTokenId(p);
169
255
  return {
170
- request: await this.requests.decideOrg(org.orgId, p.account.id, id, body.decision, tokenId !== undefined ? { actorTokenId: tokenId } : {}),
256
+ request: await this.requests.decideOrg(org.orgId, p.account.id, id, body, tokenId !== undefined ? { actorTokenId: tokenId } : {}),
171
257
  };
172
258
  }
259
+ /** The requester dismisses a decided request from the inbox -> 204. */
260
+ async dismiss(principal, org, id) {
261
+ const p = requireUser(principal);
262
+ await this.requests.dismiss(org.orgId, p.account.id, id);
263
+ }
173
264
  };
174
265
  __decorate([
175
266
  Get("catalog"),
@@ -193,12 +284,29 @@ __decorate([
193
284
  ], OrgCatalogController.prototype, "icon", null);
194
285
  __decorate([
195
286
  Post("catalog/:itemId/requests"),
287
+ HttpCode(201),
196
288
  OrgAction("catalog.request"),
197
289
  __param(0, CurrentPrincipal()),
198
290
  __param(1, CurrentOrg()),
199
291
  __param(2, Param("itemId")),
200
292
  __param(3, ZBody(CatalogRequestBody))
201
293
  ], OrgCatalogController.prototype, "request", null);
294
+ __decorate([
295
+ Post("marketplace-requests"),
296
+ HttpCode(201),
297
+ OrgAction("catalog.decide"),
298
+ __param(0, CurrentPrincipal()),
299
+ __param(1, CurrentOrg()),
300
+ __param(2, ZBody(CatalogMarketplaceRequestBody))
301
+ ], OrgCatalogController.prototype, "marketplaceRequest", null);
302
+ __decorate([
303
+ Put("catalog/:itemId/switch"),
304
+ OrgAction("catalog.read"),
305
+ __param(0, CurrentPrincipal()),
306
+ __param(1, CurrentOrg()),
307
+ __param(2, Param("itemId")),
308
+ __param(3, ZBody(OrgPluginSwitchBody))
309
+ ], OrgCatalogController.prototype, "setSwitch", null);
202
310
  __decorate([
203
311
  Post("catalog/:itemId/install"),
204
312
  OrgAction("catalog.read"),
@@ -208,6 +316,22 @@ __decorate([
208
316
  __param(3, ZBody(OrgPluginInstallBody)),
209
317
  __param(4, Res({ passthrough: true }))
210
318
  ], OrgCatalogController.prototype, "install", null);
319
+ __decorate([
320
+ Post("catalog/:itemId/connectors"),
321
+ OrgAction("connectors.manage"),
322
+ __param(0, CurrentPrincipal()),
323
+ __param(1, CurrentOrg()),
324
+ __param(2, Param("itemId")),
325
+ __param(3, ZBody(OrgPluginConnectorsBody))
326
+ ], OrgCatalogController.prototype, "configureConnectors", null);
327
+ __decorate([
328
+ Post("connector-templates/:templateId/connectors"),
329
+ OrgAction("connectors.manage"),
330
+ __param(0, CurrentPrincipal()),
331
+ __param(1, CurrentOrg()),
332
+ __param(2, Param("templateId")),
333
+ __param(3, ZBody(OrgTemplateConnectorBody))
334
+ ], OrgCatalogController.prototype, "templateConnector", null);
211
335
  __decorate([
212
336
  Get("plugin-installs"),
213
337
  OrgAction("org.extensions.manage"),
@@ -220,24 +344,6 @@ __decorate([
220
344
  __param(1, CurrentOrg()),
221
345
  __param(2, Param("installId"))
222
346
  ], OrgCatalogController.prototype, "uninstall", null);
223
- __decorate([
224
- Post("plugin-installs/:installId/upgrade/preview"),
225
- HttpCode(200),
226
- OrgAction("catalog.read"),
227
- __param(0, CurrentPrincipal()),
228
- __param(1, CurrentOrg()),
229
- __param(2, Param("installId")),
230
- __param(3, ZBody(OrgPluginUpgradePreviewBody))
231
- ], OrgCatalogController.prototype, "upgradePreview", null);
232
- __decorate([
233
- Post("plugin-installs/:installId/upgrade"),
234
- OrgAction("catalog.read"),
235
- __param(0, CurrentPrincipal()),
236
- __param(1, CurrentOrg()),
237
- __param(2, Param("installId")),
238
- __param(3, ZBody(OrgPluginUpgradeBody)),
239
- __param(4, Res({ passthrough: true }))
240
- ], OrgCatalogController.prototype, "upgrade", null);
241
347
  __decorate([
242
348
  Post("catalog-requests/:id/decide"),
243
349
  HttpCode(200),
@@ -247,6 +353,14 @@ __decorate([
247
353
  __param(2, Param("id")),
248
354
  __param(3, ZBody(CatalogDecideBody))
249
355
  ], OrgCatalogController.prototype, "decide", null);
356
+ __decorate([
357
+ Post("catalog-requests/:id/dismiss"),
358
+ HttpCode(204),
359
+ OrgAction("catalog.read"),
360
+ __param(0, CurrentPrincipal()),
361
+ __param(1, CurrentOrg()),
362
+ __param(2, Param("id"))
363
+ ], OrgCatalogController.prototype, "dismiss", null);
250
364
  OrgCatalogController = __decorate([
251
365
  Controller("api/v1/orgs/:orgId"),
252
366
  __param(0, Inject(OrgCatalogService)),
@@ -254,7 +368,11 @@ OrgCatalogController = __decorate([
254
368
  __param(2, Inject(PluginInstaller))
255
369
  ], OrgCatalogController);
256
370
  export { OrgCatalogController };
257
- /** Enterprise admins decide deployment-level catalog requests (`/api/v1/admin/catalog/requests`). */
371
+ /**
372
+ * Super admins decide `access` and `import` requests (`/api/v1/admin/catalog/requests`):
373
+ * approving an `import` returns the prepared import (`import: { stagingId, review, ... }`), confirmed
374
+ * with `POST /api/v1/admin/catalog/imports/:stagingId/confirm`.
375
+ */
258
376
  let AdminCatalogRequestsController = class AdminCatalogRequestsController {
259
377
  requests;
260
378
  constructor(requests) {
@@ -268,9 +386,7 @@ let AdminCatalogRequestsController = class AdminCatalogRequestsController {
268
386
  async decide(principal, id, body) {
269
387
  const p = requireUser(principal);
270
388
  const tokenId = patTokenId(p);
271
- return {
272
- request: await this.requests.decideDeployment(p.account.id, id, body.decision, tokenId !== undefined ? { actorTokenId: tokenId } : {}),
273
- };
389
+ return this.requests.decideDeployment(p.account.id, id, body, tokenId !== undefined ? { actorTokenId: tokenId } : {});
274
390
  }
275
391
  };
276
392
  __decorate([
@@ -286,7 +402,7 @@ __decorate([
286
402
  ], AdminCatalogRequestsController.prototype, "decide", null);
287
403
  AdminCatalogRequestsController = __decorate([
288
404
  Controller("api/v1/admin/catalog/requests"),
289
- EnterpriseAdmin(),
405
+ SuperAdmin(),
290
406
  __param(0, Inject(CatalogRequestsService))
291
407
  ], AdminCatalogRequestsController);
292
408
  export { AdminCatalogRequestsController };