@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
@@ -12,6 +12,7 @@ import { Inject, Injectable, Optional } from "@nestjs/common";
12
12
  import { sql } from "kysely";
13
13
  import { ConversationFiles } from "../conversations/files.js";
14
14
  import { ApiError } from "../errors.js";
15
+ import { EffectiveConfigs } from "../extensions/effective-config.js";
15
16
  import { ExtensionHost } from "../extensions/host.js";
16
17
  import { audit } from "../identity/audit.js";
17
18
  import { KernelDb } from "../infra/database/kernel-db.js";
@@ -71,7 +72,7 @@ let PreviewerRegistry = class PreviewerRegistry {
71
72
  txHost;
72
73
  timeoutMs;
73
74
  d;
74
- constructor(kdb, host, files, storage, log, txHost, timeoutMs = FILE_PREVIEW_TIMEOUT_MS) {
75
+ constructor(kdb, host, files, storage, effective, log, txHost, timeoutMs = FILE_PREVIEW_TIMEOUT_MS) {
75
76
  this.txHost = txHost;
76
77
  this.timeoutMs = timeoutMs;
77
78
  this.d = {
@@ -82,6 +83,7 @@ let PreviewerRegistry = class PreviewerRegistry {
82
83
  enabledPlugins: (orgId) => host.enabledPlugins(orgId),
83
84
  files,
84
85
  storage,
86
+ effective,
85
87
  log,
86
88
  };
87
89
  }
@@ -186,8 +188,33 @@ let PreviewerRegistry = class PreviewerRegistry {
186
188
  const file = await this.d.files.file(orgId, conversationId, viewer, fileId);
187
189
  return (await this.accepting(orgId, file)).map(item);
188
190
  }
191
+ /**
192
+ * The org's enabled previewers that take the file, each with its extension's effective config
193
+ * for the org. An extension whose effective config is not valid in the org (or cannot be read)
194
+ * previews nothing there (layering spec A §6): its previewers are left out, so the next one or a
195
+ * built-in takes the file.
196
+ */
189
197
  async accepting(orgId, file) {
190
- return (await this.ordered(orgId)).filter((l) => !l.disabled && previewerAccepts(l.previewer, file));
198
+ const taking = (await this.ordered(orgId)).filter((l) => !l.disabled && previewerAccepts(l.previewer, file));
199
+ const configs = new Map();
200
+ for (const plugin of new Set(taking.map((l) => l.plugin))) {
201
+ try {
202
+ const e = await this.d.effective.get(orgId, plugin);
203
+ configs.set(plugin, e.ok ? { config: e.config } : null);
204
+ }
205
+ catch (err) {
206
+ this.d.log.warn("file previewer left out: cannot read its effective config", {
207
+ orgId,
208
+ plugin,
209
+ err,
210
+ });
211
+ configs.set(plugin, null);
212
+ }
213
+ }
214
+ return taking.flatMap((l) => {
215
+ const c = configs.get(l.plugin);
216
+ return c ? [{ ...l, config: c.config }] : [];
217
+ });
191
218
  }
192
219
  /**
193
220
  * Renders a view previewer for one file: 404 `ui.not_found` when it does not take the file (or is
@@ -224,6 +251,7 @@ let PreviewerRegistry = class PreviewerRegistry {
224
251
  accountId: t.accountId,
225
252
  conversationId: t.conversationId,
226
253
  locale: t.locale,
254
+ config: l.config,
227
255
  signal: s,
228
256
  file: {
229
257
  id: file.id,
@@ -289,9 +317,10 @@ PreviewerRegistry = __decorate([
289
317
  __param(1, Inject(ExtensionHost)),
290
318
  __param(2, Inject(ConversationFiles)),
291
319
  __param(3, Inject(StorageService)),
292
- __param(4, Inject(KERNEL_LOGGER)),
293
- __param(5, Inject(TransactionHost)),
294
- __param(6, Optional()),
295
- __param(6, Inject(FILE_PREVIEW_TIMEOUT))
320
+ __param(4, Inject(EffectiveConfigs)),
321
+ __param(5, Inject(KERNEL_LOGGER)),
322
+ __param(6, Inject(TransactionHost)),
323
+ __param(7, Optional()),
324
+ __param(7, Inject(FILE_PREVIEW_TIMEOUT))
296
325
  ], PreviewerRegistry);
297
326
  export { PreviewerRegistry };
@@ -13,22 +13,31 @@ import { SetupController } from "../admin/setup.controller.js";
13
13
  import { AgentsController } from "../agents/agents.controller.js";
14
14
  import { AgentsModule } from "../agents/agents.module.js";
15
15
  import { ModelsController } from "../agents/models.controller.js";
16
- import { AgentTemplatesController } from "../agents/templates.controller.js";
16
+ import { PendingConnectorsController } from "../agents/pending-connectors.controller.js";
17
+ import { ReadinessController } from "../agents/readiness.controller.js";
18
+ import { AgentSaveAsTemplateController, AgentTemplatesController, } from "../agents/templates.controller.js";
19
+ import { BackgroundController } from "../background/background.controller.js";
20
+ import { BackgroundModule } from "../background/background.module.js";
17
21
  import { AdminCatalogController } from "../catalog/admin-catalog.controller.js";
18
22
  import { CatalogModule } from "../catalog/catalog.module.js";
19
- import { MarketplacesController } from "../catalog/marketplaces.controller.js";
23
+ import { AdminComponentsController, OrgComponentsController, } from "../catalog/component-scope.controller.js";
24
+ import { MarketplacesController, OrgMarketplacesController, } from "../catalog/marketplaces.controller.js";
20
25
  import { AdminCatalogRequestsController, OrgCatalogController, } from "../catalog/org-catalog.controller.js";
26
+ import { OrgExtensionConfigsController, OrgExtensionOverridesController, OrgExtensionToolSwitchesController, } from "../catalog/org-extension.controller.js";
27
+ import { OrgOwnedPluginsController, OrgPluginUploadsController, } from "../catalog/org-plugin-uploads.controller.js";
21
28
  import { ChannelsModule } from "../channels/channels.module.js";
22
29
  import { ChannelConnectionsController } from "../channels/connections.controller.js";
23
30
  import { AttachmentsController } from "../conversations/attachments.controller.js";
24
31
  import { ConversationsController } from "../conversations/conversations.controller.js";
25
32
  import { ConversationsModule } from "../conversations/conversations.module.js";
33
+ import { EnvironmentsController } from "../environments/environments.controller.js";
34
+ import { EnvironmentsModule } from "../environments/environments.module.js";
26
35
  import { EvalsModule } from "../evals/evals.module.js";
27
36
  import { EvalRunsController } from "../evals/runs.controller.js";
28
37
  import { EvalSetsController } from "../evals/sets.controller.js";
29
38
  import { TrajectoryController } from "../evals/trajectory.controller.js";
30
39
  import { ExtensionsModule } from "../extensions/extensions.module.js";
31
- import { OrgExtensionConfigsController } from "../extensions/org-config.controller.js";
40
+ import { ExtensionPointDefaultsController } from "../extensions/point-defaults.controller.js";
32
41
  import { FilesModule } from "../files/files.module.js";
33
42
  import { FilePreviewersController } from "../files/previewers.controller.js";
34
43
  import { AuthController } from "../identity/auth.controller.js";
@@ -37,6 +46,7 @@ import { IdentityModule } from "../identity/identity.module.js";
37
46
  import { MeController } from "../identity/me.controller.js";
38
47
  import { BindController, MeIdentitiesController, SsoController, } from "../identity/sso.controller.js";
39
48
  import { InboxModule } from "../inbox/inbox.module.js";
49
+ import { PlatformInboxController } from "../inbox/platform-inbox.controller.js";
40
50
  import { ModelsModule } from "../models/models.module.js";
41
51
  import { ModelPurposesController } from "../models/purposes.controller.js";
42
52
  import { DirectorySyncController } from "../orgs/directory-sync.controller.js";
@@ -54,6 +64,7 @@ import { StorageModule } from "../storage/storage.module.js";
54
64
  import { ApprovalsController, ToolGrantsController } from "../tools/approvals.controller.js";
55
65
  import { ConnectorContentController } from "../tools/connector-content.controller.js";
56
66
  import { ConnectorsController } from "../tools/connectors.controller.js";
67
+ import { ExtensionToolsController } from "../tools/extension-tools.controller.js";
57
68
  import { OAuthCallbackController, OAuthConnectController, } from "../tools/oauth/oauth.controller.js";
58
69
  import { QuestionsController } from "../tools/questions.controller.js";
59
70
  import { ToolsModule } from "../tools/tools.module.js";
@@ -70,24 +81,35 @@ const CONTROLLERS = [
70
81
  AdminController,
71
82
  AdminExtensionsController,
72
83
  AdminCatalogController,
84
+ AdminComponentsController,
73
85
  MarketplacesController,
86
+ OrgMarketplacesController,
74
87
  OrgExtensionConfigsController,
88
+ OrgExtensionOverridesController,
89
+ OrgExtensionToolSwitchesController,
75
90
  AgentsController,
76
91
  AgentTemplatesController,
92
+ AgentSaveAsTemplateController,
93
+ PendingConnectorsController,
77
94
  ModelsController,
95
+ ReadinessController,
78
96
  ConversationsController,
97
+ BackgroundController,
98
+ EnvironmentsController,
79
99
  AttachmentsController,
80
100
  SkillsController,
81
101
  SkillChangesController,
82
102
  AgentSkillsController,
83
103
  InvocableSkillsController,
84
104
  InboxController,
105
+ PlatformInboxController,
85
106
  ConversationStreamController,
86
107
  ConnectorContentController,
87
108
  ConnectorsController,
88
109
  ApprovalsController,
89
110
  ToolGrantsController,
90
111
  QuestionsController,
112
+ ExtensionToolsController,
91
113
  OAuthConnectController,
92
114
  OAuthCallbackController,
93
115
  SsoController,
@@ -97,11 +119,15 @@ const CONTROLLERS = [
97
119
  DirectorySyncController,
98
120
  UiController,
99
121
  FilePreviewersController,
122
+ ExtensionPointDefaultsController,
100
123
  TrajectoryController,
101
124
  EvalSetsController,
102
125
  EvalRunsController,
103
126
  ModelPurposesController,
104
127
  OrgCatalogController,
128
+ OrgPluginUploadsController,
129
+ OrgOwnedPluginsController,
130
+ OrgComponentsController,
105
131
  AdminCatalogRequestsController,
106
132
  ];
107
133
  /**
@@ -126,6 +152,8 @@ ApiModule = __decorate([
126
152
  ToolsModule,
127
153
  AgentsModule,
128
154
  ConversationsModule,
155
+ BackgroundModule,
156
+ EnvironmentsModule,
129
157
  RuntimeModule,
130
158
  ChannelsModule,
131
159
  EvalsModule,
@@ -45,7 +45,7 @@ export interface CreateHttpAppOptions {
45
45
  replicaId?: string | undefined;
46
46
  /**
47
47
  * The size limit for package uploads ({@link PACKAGE_UPLOAD_ROUTES}: extension packages and
48
- * enterprise catalog packages, `application/octet-stream`), i.e. `packages.maxBytes`. The route
48
+ * platform catalog packages, `application/octet-stream`), i.e. `packages.maxBytes`. The route
49
49
  * bodyLimit is one byte more: a package exactly one byte over reaches the handler and returns
50
50
  * `extension.package_too_large`; larger ones are refused by Fastify itself (413
51
51
  * `payload_too_large`).
@@ -56,11 +56,20 @@ export interface CreateHttpAppOptions {
56
56
  export declare const EXTENSION_PACKAGE_UPLOAD_ROUTE = "/api/v1/admin/extensions/packages/file";
57
57
  /** The plugin package upload route of the catalog import (Fastify route template). */
58
58
  export declare const CATALOG_UPLOAD_ROUTE = "/api/v1/admin/catalog/import/file";
59
+ /** The platform skill version upload route (a skill package zip as the raw body). */
60
+ export declare const COMPONENT_SKILL_UPLOAD_ROUTE = "/api/v1/admin/components/skill/:id/versions";
59
61
  /**
60
62
  * The upload routes that take raw bytes (`application/octet-stream`, limit `packages.maxBytes`,
61
- * the enterprise admin is authenticated before the body is read).
63
+ * the super admin is authenticated before the body is read).
62
64
  */
63
65
  export declare const PACKAGE_UPLOAD_ROUTES: ReadonlySet<string>;
66
+ /** An org admin's plugin package upload (spec §14, ruling P3-7; a tgz as the raw body). */
67
+ export declare const ORG_PLUGIN_UPLOAD_ROUTE = "/api/v1/orgs/:orgId/catalog/uploads/file";
68
+ /**
69
+ * The org routes that take raw package bytes (limit `packages.maxBytes`): before the body is read
70
+ * the caller is authenticated as a person with the org role of `catalog.upload` (ruling P3-29).
71
+ */
72
+ export declare const ORG_PACKAGE_UPLOAD_ROUTES: ReadonlySet<string>;
64
73
  /**
65
74
  * Sets up the Fastify side of the kernel's Nest application (built by `buildKernelApp` from
66
75
  * `KernelModule`, which provides the health endpoints and the API) without connecting to anything,
package/dist/http/app.js CHANGED
@@ -3,9 +3,11 @@ import fastifyCookie from "@fastify/cookie";
3
3
  import { ApiError, errorBody } from "../errors.js";
4
4
  import { AccountsService } from "../identity/accounts.js";
5
5
  import { ApiTokenService } from "../identity/api-tokens.js";
6
- import { authorizeEnterpriseAdmin } from "../identity/auth.guard.js";
6
+ import { authenticateOrgUploader, authorizeSuperAdmin, } from "../identity/auth.guard.js";
7
7
  import { SessionService } from "../identity/sessions.js";
8
+ import { KernelDb } from "../infra/database/kernel-db.js";
8
9
  import { withLogContext } from "../log-context.js";
10
+ import { authorizeOrgAction } from "../orgs/org.guard.js";
9
11
  import { redactPath } from "./error.filter.js";
10
12
  import { registerGatewayRoutes } from "./gateway-routes.js";
11
13
  import { createPluginRouter, registerPluginDispatch, staticRouteTable, } from "./plugin-dispatch.js";
@@ -13,14 +15,24 @@ import { createPluginRouter, registerPluginDispatch, staticRouteTable, } from ".
13
15
  export const EXTENSION_PACKAGE_UPLOAD_ROUTE = "/api/v1/admin/extensions/packages/file";
14
16
  /** The plugin package upload route of the catalog import (Fastify route template). */
15
17
  export const CATALOG_UPLOAD_ROUTE = "/api/v1/admin/catalog/import/file";
18
+ /** The platform skill version upload route (a skill package zip as the raw body). */
19
+ export const COMPONENT_SKILL_UPLOAD_ROUTE = "/api/v1/admin/components/skill/:id/versions";
16
20
  /**
17
21
  * The upload routes that take raw bytes (`application/octet-stream`, limit `packages.maxBytes`,
18
- * the enterprise admin is authenticated before the body is read).
22
+ * the super admin is authenticated before the body is read).
19
23
  */
20
24
  export const PACKAGE_UPLOAD_ROUTES = new Set([
21
25
  EXTENSION_PACKAGE_UPLOAD_ROUTE,
22
26
  CATALOG_UPLOAD_ROUTE,
27
+ COMPONENT_SKILL_UPLOAD_ROUTE,
23
28
  ]);
29
+ /** An org admin's plugin package upload (spec §14, ruling P3-7; a tgz as the raw body). */
30
+ export const ORG_PLUGIN_UPLOAD_ROUTE = "/api/v1/orgs/:orgId/catalog/uploads/file";
31
+ /**
32
+ * The org routes that take raw package bytes (limit `packages.maxBytes`): before the body is read
33
+ * the caller is authenticated as a person with the org role of `catalog.upload` (ruling P3-29).
34
+ */
35
+ export const ORG_PACKAGE_UPLOAD_ROUTES = new Set([ORG_PLUGIN_UPLOAD_ROUTE]);
24
36
  /** Paths without an access log line (probes). */
25
37
  const QUIET_PATHS = new Set(["/healthz", "/readyz"]);
26
38
  /**
@@ -92,11 +104,12 @@ export async function createHttpApp(opts, app) {
92
104
  if (LARGE_BODY_ROUTES.has(r.url) && [r.method].flat().includes("POST")) {
93
105
  r.bodyLimit = LARGE_BODY_LIMIT;
94
106
  }
95
- if (PACKAGE_UPLOAD_ROUTES.has(r.url) && opts.packageMaxBytes !== undefined) {
107
+ const upload = PACKAGE_UPLOAD_ROUTES.has(r.url) || ORG_PACKAGE_UPLOAD_ROUTES.has(r.url);
108
+ if (upload && opts.packageMaxBytes !== undefined) {
96
109
  r.bodyLimit = opts.packageMaxBytes + 1;
97
110
  }
98
111
  });
99
- // 读请求体之前:包上传(插件包、企业目录包)先认证(未认证 / 非企业管理员的大请求体不读进内存);其余内核路由不收
112
+ // 读请求体之前:包上传(插件包、平台目录包)先认证(未认证 / 非超级管理员的大请求体不读进内存);其余内核路由不收
100
113
  // application/octet-stream(415)。插件路由 /plugins/* 在自己的作用域里收任何类型,不受影响
101
114
  let authServices;
102
115
  const services = () => {
@@ -119,7 +132,20 @@ export async function createHttpApp(opts, app) {
119
132
  return;
120
133
  if (req.method === "POST" && PACKAGE_UPLOAD_ROUTES.has(req.routeOptions.url ?? "")) {
121
134
  try {
122
- await authorizeEnterpriseAdmin(req, services());
135
+ await authorizeSuperAdmin(req, services());
136
+ }
137
+ catch (e) {
138
+ return sendError(reply, e, req.method, req.url);
139
+ }
140
+ return;
141
+ }
142
+ if (req.method === "POST" && ORG_PACKAGE_UPLOAD_ROUTES.has(req.routeOptions.url ?? "")) {
143
+ try {
144
+ // the org admin role before the body (ruling P3-29): no one else makes the kernel buffer
145
+ // a package-sized body
146
+ const principal = await authenticateOrgUploader(req, services());
147
+ const orgId = req.params.orgId ?? "";
148
+ await authorizeOrgAction(app.get(KernelDb, { strict: false }).db, principal, orgId, "catalog.upload");
123
149
  }
124
150
  catch (e) {
125
151
  return sendError(reply, e, req.method, req.url);
@@ -1,12 +1,13 @@
1
1
  import type { Logger } from "@capybara-hq/plugin-sdk";
2
2
  import type { LoggerService } from "@nestjs/common";
3
- /** 可选带 debug 的 logger(内核 logger 有 debug;插件契约的 Logger 没有)。 */
3
+ /** A logger with an optional debug (the kernel logger has one; the SDK Logger does not). */
4
4
  type MaybeDebugLogger = Logger & {
5
5
  debug?: (msg: string, fields?: Record<string, unknown>) => void;
6
6
  };
7
7
  /**
8
- * 把 Nest 自身的日志转给内核 logger:`log`(启动时的模块加载、路由映射等,每次启动几十行)降为 debug,
9
- * `warn` / `error` 原级别转发,`debug` / `verbose` 丢弃。logger 没有 debug 时 `log` 也丢弃。
8
+ * Forwards Nest's own log lines to the kernel logger, as octok does: `log` (module loading,
9
+ * the `Mapped {/api/v1/…, GET} route` lines at startup) at info, `warn` / `error` as they are,
10
+ * `debug` / `verbose` at debug. Nest's context name becomes the record's `context`.
10
11
  */
11
12
  export declare class NestLogAdapter implements LoggerService {
12
13
  private readonly logger;
@@ -14,7 +15,7 @@ export declare class NestLogAdapter implements LoggerService {
14
15
  log(message: unknown, ...params: unknown[]): void;
15
16
  warn(message: unknown, ...params: unknown[]): void;
16
17
  error(message: unknown, ...params: unknown[]): void;
17
- debug(): void;
18
- verbose(): void;
18
+ debug(message: unknown, ...params: unknown[]): void;
19
+ verbose(message: unknown, ...params: unknown[]): void;
19
20
  }
20
21
  export {};
@@ -1,6 +1,7 @@
1
1
  /**
2
- * 把 Nest 自身的日志转给内核 logger:`log`(启动时的模块加载、路由映射等,每次启动几十行)降为 debug,
3
- * `warn` / `error` 原级别转发,`debug` / `verbose` 丢弃。logger 没有 debug 时 `log` 也丢弃。
2
+ * Forwards Nest's own log lines to the kernel logger, as octok does: `log` (module loading,
3
+ * the `Mapped {/api/v1/…, GET} route` lines at startup) at info, `warn` / `error` as they are,
4
+ * `debug` / `verbose` at debug. Nest's context name becomes the record's `context`.
4
5
  */
5
6
  export class NestLogAdapter {
6
7
  logger;
@@ -8,7 +9,7 @@ export class NestLogAdapter {
8
9
  this.logger = logger;
9
10
  }
10
11
  log(message, ...params) {
11
- this.logger.debug?.(String(message), fields(params));
12
+ this.logger.info(String(message), fields(params));
12
13
  }
13
14
  warn(message, ...params) {
14
15
  this.logger.warn(String(message), fields(params));
@@ -16,13 +17,26 @@ export class NestLogAdapter {
16
17
  error(message, ...params) {
17
18
  this.logger.error(String(message), fields(params));
18
19
  }
19
- debug() { }
20
- verbose() { }
20
+ debug(message, ...params) {
21
+ this.logger.debug?.(String(message), fields(params));
22
+ }
23
+ verbose(message, ...params) {
24
+ this.logger.debug?.(String(message), fields(params));
25
+ }
21
26
  }
22
- /** Nest 把上下文名(如 `RoutesResolver`)、错误堆栈作为额外参数传入。 */
27
+ /**
28
+ * Nest passes its context name (e.g. `RoutesResolver`) last and, for errors, the stack before it. The
29
+ * name becomes `context` (the pretty `[context=…]`), anything else `nest`.
30
+ */
23
31
  function fields(params) {
24
- const ctx = params.filter((p) => p !== undefined);
25
- if (ctx.length === 0)
26
- return undefined;
27
- return { nest: ctx.length === 1 ? ctx[0] : ctx };
32
+ const rest = params.filter((p) => p !== undefined);
33
+ const last = rest.at(-1);
34
+ const out = {};
35
+ if (typeof last === "string" && /^[A-Za-z][\w.-]*$/.test(last)) {
36
+ out.context = last;
37
+ rest.pop();
38
+ }
39
+ if (rest.length > 0)
40
+ out.nest = rest.length === 1 ? rest[0] : rest;
41
+ return Object.keys(out).length > 0 ? out : undefined;
28
42
  }
@@ -3,31 +3,31 @@ import { SetupLock } from "../admin/setup-lock.js";
3
3
  import type { AccountsTable } from "../db/kernel-schema.js";
4
4
  import { KernelDb } from "../infra/database/kernel-db.js";
5
5
  import { TransactionHost } from "../infra/database/transaction-host.js";
6
- import { EnterpriseAdminLock } from "./enterprise-admin.js";
6
+ import { SuperAdminLock } from "./super-admin.js";
7
7
  export interface Account {
8
8
  id: string;
9
9
  displayName: string;
10
10
  email: string | null;
11
11
  status: "active" | "disabled";
12
- isEnterpriseAdmin: boolean;
12
+ isSuperAdmin: boolean;
13
13
  createdAt: Date;
14
14
  }
15
- /** 企业管理员可改的账号字段。 */
15
+ /** 超级管理员可改的账号字段。 */
16
16
  export type AccountPatch = {
17
17
  displayName?: string;
18
18
  status?: "active" | "disabled";
19
- isEnterpriseAdmin?: boolean;
19
+ isSuperAdmin?: boolean;
20
20
  };
21
21
  /** 构造 `Account` 所需的 accounts 列(供跨表查询 select 使用)。 */
22
- export declare const ACCOUNT_COLUMNS: readonly ["accounts.id", "accounts.display_name", "accounts.email", "accounts.status", "accounts.is_enterprise_admin", "accounts.created_at"];
23
- type AccountRow = Pick<Selectable<AccountsTable>, "id" | "display_name" | "email" | "status" | "is_enterprise_admin" | "created_at">;
22
+ export declare const ACCOUNT_COLUMNS: readonly ["accounts.id", "accounts.display_name", "accounts.email", "accounts.status", "accounts.is_super_admin", "accounts.created_at"];
23
+ type AccountRow = Pick<Selectable<AccountsTable>, "id" | "display_name" | "email" | "status" | "is_super_admin" | "created_at">;
24
24
  export declare function toAccount(r: AccountRow): Account;
25
25
  export interface LocalAccountInput {
26
26
  login: string;
27
27
  password: string;
28
28
  displayName: string;
29
29
  email?: string;
30
- enterpriseAdmin?: boolean;
30
+ superAdmin?: boolean;
31
31
  }
32
32
  /**
33
33
  * Accounts: local account creation, authentication and administration. Every write is
@@ -39,7 +39,7 @@ export declare class AccountsService {
39
39
  readonly txHost: TransactionHost;
40
40
  private readonly adminLock;
41
41
  private readonly setupLock;
42
- constructor(db: KernelDb, txHost: TransactionHost, adminLock: EnterpriseAdminLock, setupLock: SetupLock);
42
+ constructor(db: KernelDb, txHost: TransactionHost, adminLock: SuperAdminLock, setupLock: SetupLock);
43
43
  /** Checks the password length and hashes it (scrypt, slow): for callers that hash before their transaction opens. */
44
44
  hashNewPassword(password: string): Promise<string>;
45
45
  /**
@@ -49,28 +49,28 @@ export declare class AccountsService {
49
49
  */
50
50
  createLocal(input: LocalAccountInput, passwordHash?: string): Promise<Account>;
51
51
  /**
52
- * An enterprise admin creates a local account (optionally an enterprise admin): under the
53
- * enterprise admin lock, re-checks that the actor is still an active enterprise admin (else
52
+ * A super admin creates a local account (optionally a super admin): under the
53
+ * super admin lock, re-checks that the actor is still an active super admin (else
54
54
  * `forbidden`), creates the account and audits `account.created`. The hash is computed before
55
55
  * the lock.
56
56
  */
57
57
  createByAdmin(input: LocalAccountInput, actorAccountId: string, actorTokenId?: string): Promise<Account>;
58
58
  private createByAdminIn;
59
59
  /**
60
- * CLI: creates an enterprise admin without checking whether the deployment is set up; a taken
60
+ * CLI: creates a super admin without checking whether the deployment is set up; a taken
61
61
  * login → `account.login_taken`.
62
62
  */
63
- createEnterpriseAdmin(input: EnterpriseAdminInput): Promise<Account>;
63
+ createSuperAdmin(input: SuperAdminInput): Promise<Account>;
64
64
  /**
65
- * CLI `admin create --if-none`: creates an enterprise admin only when no active one exists. The
65
+ * CLI `admin create --if-none`: creates a super admin only when no active one exists. The
66
66
  * check and the insert run in one transaction under {@link SetupLock}, the lock the web setup
67
67
  * takes, so concurrent runs (and a concurrent web setup) create exactly one. Returns undefined
68
- * when an active enterprise admin already exists; a taken login still throws
68
+ * when an active super admin already exists; a taken login still throws
69
69
  * `account.login_taken`.
70
70
  */
71
- createEnterpriseAdminIfNone(input: EnterpriseAdminInput): Promise<Account | undefined>;
72
- private createEnterpriseAdminIfNoneIn;
73
- private insertEnterpriseAdmin;
71
+ createSuperAdminIfNone(input: SuperAdminInput): Promise<Account | undefined>;
72
+ private createSuperAdminIfNoneIn;
73
+ private insertSuperAdmin;
74
74
  authenticateLocal(login: string, password: string): Promise<Account | null>;
75
75
  /** 按账号 id 校验本地密码(改密码时核对旧密码);没有本地密码、超长或不符 → false。 */
76
76
  verifyPassword(accountId: string, password: string): Promise<boolean>;
@@ -92,7 +92,7 @@ export declare class AccountsService {
92
92
  private changePasswordIn;
93
93
  update(id: string, patch: AccountPatch, actorAccountId: string, actorTokenId?: string): Promise<Account>;
94
94
  /**
95
- * An enterprise admin changes an account. Disabling (`status: "disabled"`) revokes the
95
+ * A super admin changes an account. Disabling (`status: "disabled"`) revokes the
96
96
  * account's sessions (`sessions.revoked_at`) and personal tokens in **the same PG transaction**,
97
97
  * all or nothing; returns the revoked session ids, whose Redis markers the caller writes after
98
98
  * the commit (the fast path; a failure is only a warning: auth reads PG).
@@ -102,35 +102,35 @@ export declare class AccountsService {
102
102
  revokedSessionIds: string[];
103
103
  }>;
104
104
  /**
105
- * The CLI's `capybara admin grant|revoke <login>` (no actor account): changes the enterprise
106
- * admin flag by local login under the enterprise admin lock; revoking keeps the
107
- * {@link updateAccount} "last active enterprise admin" check (`account.last_enterprise_admin`),
105
+ * The CLI's `capybara admin grant|revoke <login>` (no actor account): changes the super
106
+ * admin flag by local login under the super admin lock; revoking keeps the
107
+ * {@link updateAccount} "last active super admin" check (`account.last_super_admin`),
108
108
  * decided under the lock, so it cannot race a web revoke into none. Audit `account.updated`
109
109
  * without an actor, `detail.via = "cli"`. Already in the target state → no change and no audit
110
110
  * (`changed: false`). Unknown login → `account.not_found`.
111
111
  */
112
- setEnterpriseAdminByLogin(login: string, isEnterpriseAdmin: boolean): Promise<{
112
+ setSuperAdminByLogin(login: string, isSuperAdmin: boolean): Promise<{
113
113
  account: Account;
114
114
  changed: boolean;
115
115
  }>;
116
- private setEnterpriseAdminIn;
116
+ private setSuperAdminIn;
117
117
  /** 全部账号数(含停用的;后台概览)。 */
118
118
  count(): Promise<number>;
119
- /** Active (status = active) enterprise admins, in the context's transaction when there is one. */
120
- countEnterpriseAdmins(): Promise<number>;
119
+ /** Active (status = active) super admins, in the context's transaction when there is one. */
120
+ countSuperAdmins(): Promise<number>;
121
121
  /** Inserts the account, its local identity and password; a taken login → `account.login_taken`. */
122
122
  private insertLocal;
123
123
  /** Writes (or replaces) the local password hash; a missing account → `account.not_found`. */
124
124
  private writePassword;
125
125
  /**
126
- * Changes the account under the enterprise admin lock the caller holds: updates the row,
127
- * re-checks "the last active enterprise admin", audits `account.updated`; disabling revokes the
126
+ * Changes the account under the super admin lock the caller holds: updates the row,
127
+ * re-checks "the last active super admin", audits `account.updated`; disabling revokes the
128
128
  * account's sessions and personal tokens.
129
129
  */
130
130
  private applyUpdate;
131
131
  }
132
- /** Input of the CLI enterprise admin creation. */
133
- export interface EnterpriseAdminInput {
132
+ /** Input of the CLI super admin creation. */
133
+ export interface SuperAdminInput {
134
134
  login: string;
135
135
  password: string;
136
136
  displayName: string;