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

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 (362) hide show
  1. package/bootstrap.json +27 -3
  2. package/dist/admin/admin.controller.d.ts +21 -74
  3. package/dist/admin/admin.controller.js +50 -50
  4. package/dist/admin/admin.schemas.d.ts +57 -0
  5. package/dist/admin/admin.schemas.js +50 -0
  6. package/dist/admin/extensions.controller.d.ts +10 -0
  7. package/dist/admin/extensions.controller.js +18 -0
  8. package/dist/admin/extensions.schemas.d.ts +7 -0
  9. package/dist/admin/extensions.schemas.js +10 -0
  10. package/dist/admin/limit-defaults.d.ts +20 -0
  11. package/dist/admin/limit-defaults.js +10 -0
  12. package/dist/agents/agent-profile.service.d.ts +7 -5
  13. package/dist/agents/agent-profile.service.js +14 -9
  14. package/dist/agents/agents.controller.d.ts +7 -287
  15. package/dist/agents/agents.controller.js +7 -67
  16. package/dist/agents/agents.schemas.d.ts +389 -0
  17. package/dist/agents/agents.schemas.js +126 -0
  18. package/dist/agents/agents.service.d.ts +16 -6
  19. package/dist/agents/agents.service.js +75 -19
  20. package/dist/agents/definition.d.ts +47 -19
  21. package/dist/agents/definition.js +119 -38
  22. package/dist/agents/from-template.d.ts +2 -2
  23. package/dist/agents/from-template.js +76 -45
  24. package/dist/agents/from-template.service.d.ts +12 -0
  25. package/dist/agents/from-template.service.js +23 -6
  26. package/dist/agents/models.controller.d.ts +33 -5
  27. package/dist/agents/models.controller.js +50 -6
  28. package/dist/agents/org-templates.d.ts +13 -3
  29. package/dist/agents/org-templates.js +69 -28
  30. package/dist/agents/pending-connector-requests.d.ts +2 -0
  31. package/dist/agents/pending-connector-requests.js +1 -1
  32. package/dist/agents/pending-connectors.controller.d.ts +1 -1
  33. package/dist/agents/pending-connectors.controller.js +2 -2
  34. package/dist/agents/pending-connectors.service.d.ts +2 -2
  35. package/dist/agents/pending-connectors.service.js +19 -19
  36. package/dist/agents/profile.d.ts +18 -0
  37. package/dist/agents/profile.js +5 -1
  38. package/dist/agents/readiness.controller.d.ts +5 -5
  39. package/dist/agents/readiness.controller.js +6 -6
  40. package/dist/agents/templates.controller.d.ts +8 -17
  41. package/dist/agents/templates.controller.js +13 -31
  42. package/dist/agents/templates.schemas.d.ts +20 -0
  43. package/dist/agents/templates.schemas.js +45 -0
  44. package/dist/background/background.controller.js +3 -2
  45. package/dist/background/background.schemas.d.ts +10 -0
  46. package/dist/background/background.schemas.js +16 -0
  47. package/dist/background/tasks.service.d.ts +1 -1
  48. package/dist/background/tasks.service.js +7 -2
  49. package/dist/catalog/admin-catalog.controller.d.ts +4 -57
  50. package/dist/catalog/admin-catalog.controller.js +8 -45
  51. package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
  52. package/dist/catalog/admin-catalog.schemas.js +92 -0
  53. package/dist/catalog/catalog-content.d.ts +12 -2
  54. package/dist/catalog/catalog-scope.service.js +8 -2
  55. package/dist/catalog/catalog.service.d.ts +2 -0
  56. package/dist/catalog/catalog.service.js +3 -0
  57. package/dist/catalog/component-scope.controller.d.ts +3 -65
  58. package/dist/catalog/component-scope.controller.js +3 -56
  59. package/dist/catalog/component-scope.schemas.d.ts +114 -0
  60. package/dist/catalog/component-scope.schemas.js +97 -0
  61. package/dist/catalog/component-scope.service.d.ts +28 -4
  62. package/dist/catalog/component-scope.service.js +55 -3
  63. package/dist/catalog/component-state.d.ts +9 -2
  64. package/dist/catalog/component-state.js +22 -13
  65. package/dist/catalog/marketplaces.controller.d.ts +5 -35
  66. package/dist/catalog/marketplaces.controller.js +6 -34
  67. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  68. package/dist/catalog/marketplaces.schemas.js +53 -0
  69. package/dist/catalog/marketplaces.service.d.ts +15 -1
  70. package/dist/catalog/marketplaces.service.js +22 -1
  71. package/dist/catalog/org-catalog.controller.d.ts +6 -62
  72. package/dist/catalog/org-catalog.controller.js +12 -66
  73. package/dist/catalog/org-catalog.schemas.d.ts +79 -0
  74. package/dist/catalog/org-catalog.schemas.js +82 -0
  75. package/dist/catalog/org-catalog.service.d.ts +9 -2
  76. package/dist/catalog/org-catalog.service.js +38 -5
  77. package/dist/catalog/org-extension.controller.d.ts +1 -12
  78. package/dist/catalog/org-extension.controller.js +1 -10
  79. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  80. package/dist/catalog/org-extension.schemas.js +22 -0
  81. package/dist/catalog/org-plugin-uploads.controller.d.ts +2 -19
  82. package/dist/catalog/org-plugin-uploads.controller.js +15 -28
  83. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  84. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  85. package/dist/catalog/owned-items.d.ts +6 -2
  86. package/dist/catalog/owned-items.js +16 -4
  87. package/dist/catalog/platform-components.d.ts +2 -0
  88. package/dist/catalog/platform-components.js +2 -0
  89. package/dist/catalog/plugin-import.js +1 -0
  90. package/dist/catalog/plugin-install.js +1 -1
  91. package/dist/catalog/requests.service.d.ts +2 -1
  92. package/dist/catalog/requests.service.js +6 -2
  93. package/dist/channels/channels.schemas.d.ts +33 -0
  94. package/dist/channels/channels.schemas.js +34 -0
  95. package/dist/channels/connections.controller.d.ts +2 -29
  96. package/dist/channels/connections.controller.js +1 -23
  97. package/dist/channels/connections.service.d.ts +8 -2
  98. package/dist/channels/connections.service.js +23 -5
  99. package/dist/channels/inbound.js +4 -0
  100. package/dist/config/schema.d.ts +4 -0
  101. package/dist/config/schema.js +24 -0
  102. package/dist/conversations/conversations.controller.d.ts +16 -37
  103. package/dist/conversations/conversations.controller.js +16 -56
  104. package/dist/conversations/conversations.schemas.d.ts +52 -0
  105. package/dist/conversations/conversations.schemas.js +79 -0
  106. package/dist/conversations/conversations.service.d.ts +13 -4
  107. package/dist/conversations/conversations.service.js +32 -26
  108. package/dist/conversations/events.d.ts +80 -6
  109. package/dist/conversations/events.js +60 -5
  110. package/dist/conversations/message-context.d.ts +28 -0
  111. package/dist/conversations/message-context.js +56 -0
  112. package/dist/conversations/queue.d.ts +2 -1
  113. package/dist/conversations/queue.js +11 -2
  114. package/dist/ctx/create-ctx.d.ts +15 -1
  115. package/dist/ctx/create-ctx.js +23 -2
  116. package/dist/db/kernel-schema.d.ts +44 -0
  117. package/dist/environments/environments.schemas.d.ts +3 -0
  118. package/dist/environments/environments.schemas.js +14 -0
  119. package/dist/environments/environments.service.d.ts +16 -4
  120. package/dist/environments/environments.service.js +58 -13
  121. package/dist/errors.d.ts +6 -0
  122. package/dist/errors.js +6 -0
  123. package/dist/evals/evals.schemas.d.ts +110 -0
  124. package/dist/evals/evals.schemas.js +107 -0
  125. package/dist/evals/reconstruct.js +18 -11
  126. package/dist/evals/recorded-tools.d.ts +2 -1
  127. package/dist/evals/recorded-tools.js +11 -3
  128. package/dist/evals/run-replay.d.ts +8 -1
  129. package/dist/evals/run-replay.js +17 -2
  130. package/dist/evals/runs.controller.d.ts +2 -57
  131. package/dist/evals/runs.controller.js +1 -42
  132. package/dist/evals/runs.service.d.ts +8 -7
  133. package/dist/evals/runs.service.js +45 -30
  134. package/dist/evals/sets.controller.d.ts +2 -28
  135. package/dist/evals/sets.controller.js +1 -31
  136. package/dist/evals/sets.service.d.ts +7 -7
  137. package/dist/evals/sets.service.js +23 -17
  138. package/dist/evals/snapshot.d.ts +3 -2
  139. package/dist/evals/snapshot.js +17 -4
  140. package/dist/evals/step-replay.d.ts +2 -1
  141. package/dist/evals/step-replay.js +3 -2
  142. package/dist/extensions/admin-ops.d.ts +5 -3
  143. package/dist/extensions/admin-ops.js +17 -12
  144. package/dist/extensions/config-hash.d.ts +10 -0
  145. package/dist/extensions/config-hash.js +38 -0
  146. package/dist/extensions/deployment-config.d.ts +16 -1
  147. package/dist/extensions/deployment-config.js +83 -0
  148. package/dist/extensions/extensions.module.js +9 -12
  149. package/dist/extensions/host.d.ts +39 -12
  150. package/dist/extensions/host.js +129 -51
  151. package/dist/extensions/installs.d.ts +5 -0
  152. package/dist/extensions/installs.js +12 -0
  153. package/dist/extensions/org-config.d.ts +17 -2
  154. package/dist/extensions/org-config.js +23 -4
  155. package/dist/extensions/point-defaults.controller.d.ts +2 -8
  156. package/dist/extensions/point-defaults.controller.js +1 -3
  157. package/dist/extensions/point-defaults.d.ts +3 -1
  158. package/dist/extensions/point-defaults.js +4 -2
  159. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  160. package/dist/extensions/point-defaults.schemas.js +14 -0
  161. package/dist/extensions/state.module.d.ts +9 -0
  162. package/dist/extensions/state.module.js +38 -0
  163. package/dist/extensions/unavailable.d.ts +49 -0
  164. package/dist/extensions/unavailable.js +113 -0
  165. package/dist/files/previewers.controller.js +2 -3
  166. package/dist/files/previewers.d.ts +1 -1
  167. package/dist/files/previewers.js +4 -4
  168. package/dist/files/previewers.schemas.d.ts +10 -0
  169. package/dist/files/previewers.schemas.js +9 -0
  170. package/dist/http/api.module.js +4 -0
  171. package/dist/http/plugin-dispatch.d.ts +4 -1
  172. package/dist/http/plugin-dispatch.js +14 -2
  173. package/dist/identity/accounts.d.ts +43 -4
  174. package/dist/identity/accounts.js +74 -6
  175. package/dist/identity/auth.guard.js +10 -1
  176. package/dist/identity/cookies.d.ts +6 -0
  177. package/dist/identity/cookies.js +14 -0
  178. package/dist/identity/identity.module.js +3 -0
  179. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  180. package/dist/identity/initial-passwords.controller.js +49 -0
  181. package/dist/identity/initial-passwords.d.ts +61 -0
  182. package/dist/identity/initial-passwords.job.d.ts +16 -0
  183. package/dist/identity/initial-passwords.job.js +46 -0
  184. package/dist/identity/initial-passwords.js +159 -0
  185. package/dist/identity/me.controller.d.ts +14 -0
  186. package/dist/identity/me.controller.js +39 -1
  187. package/dist/identity/principal.d.ts +8 -0
  188. package/dist/identity/principal.js +8 -0
  189. package/dist/identity/settings.d.ts +3 -1
  190. package/dist/identity/settings.js +6 -4
  191. package/dist/inbox/inbox.schemas.d.ts +8 -0
  192. package/dist/inbox/inbox.schemas.js +11 -0
  193. package/dist/inbox/platform-inbox.controller.d.ts +1 -1
  194. package/dist/inbox/platform-inbox.controller.js +2 -2
  195. package/dist/index.d.ts +4 -0
  196. package/dist/index.js +6 -0
  197. package/dist/infra/config/kernel-config.service.js +3 -0
  198. package/dist/infra/events/kernel-events.d.ts +8 -0
  199. package/dist/lifecycle/kernel-lifecycle.js +4 -0
  200. package/dist/models/embeddings.d.ts +82 -0
  201. package/dist/models/embeddings.js +326 -0
  202. package/dist/models/enablement.controller.d.ts +40 -0
  203. package/dist/models/enablement.controller.js +74 -0
  204. package/dist/models/enablement.d.ts +101 -0
  205. package/dist/models/enablement.js +264 -0
  206. package/dist/models/models.module.d.ts +5 -1
  207. package/dist/models/models.module.js +16 -4
  208. package/dist/models/org-models.schemas.d.ts +8 -0
  209. package/dist/models/org-models.schemas.js +22 -0
  210. package/dist/models/prices.d.ts +3 -1
  211. package/dist/models/prices.js +7 -5
  212. package/dist/models/purposes.d.ts +30 -6
  213. package/dist/models/purposes.js +68 -17
  214. package/dist/orgs/orgs.controller.d.ts +2 -5
  215. package/dist/orgs/orgs.controller.js +3 -6
  216. package/dist/orgs/orgs.schemas.d.ts +8 -0
  217. package/dist/orgs/orgs.schemas.js +16 -0
  218. package/dist/orgs/orgs.service.d.ts +3 -1
  219. package/dist/orgs/orgs.service.js +6 -4
  220. package/dist/orgs/settings.service.d.ts +9 -1
  221. package/dist/orgs/settings.service.js +20 -5
  222. package/dist/overrides.d.ts +4 -0
  223. package/dist/overrides.js +2 -0
  224. package/dist/platform/errors.d.ts +21 -4
  225. package/dist/platform/errors.js +45 -6
  226. package/dist/platform/exclusions.d.ts +2 -3
  227. package/dist/platform/exclusions.js +68 -831
  228. package/dist/platform/method.js +1 -1
  229. package/dist/platform/operation.d.ts +82 -5
  230. package/dist/platform/operation.js +62 -7
  231. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  232. package/dist/platform/ops/accounts.ops.js +291 -0
  233. package/dist/platform/ops/admin.ops.d.ts +36 -0
  234. package/dist/platform/ops/admin.ops.js +389 -0
  235. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  236. package/dist/platform/ops/agent-skills.ops.js +226 -0
  237. package/dist/platform/ops/agent-templates.ops.d.ts +4 -1
  238. package/dist/platform/ops/agent-templates.ops.js +194 -14
  239. package/dist/platform/ops/agents.ops.d.ts +19 -1
  240. package/dist/platform/ops/agents.ops.js +481 -58
  241. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  242. package/dist/platform/ops/approvals.ops.js +116 -0
  243. package/dist/platform/ops/background.ops.d.ts +14 -0
  244. package/dist/platform/ops/background.ops.js +134 -0
  245. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  246. package/dist/platform/ops/catalog-admin.ops.js +587 -0
  247. package/dist/platform/ops/channels.ops.d.ts +16 -0
  248. package/dist/platform/ops/channels.ops.js +195 -0
  249. package/dist/platform/ops/components.ops.d.ts +46 -0
  250. package/dist/platform/ops/components.ops.js +853 -0
  251. package/dist/platform/ops/connectors.ops.d.ts +4 -2
  252. package/dist/platform/ops/connectors.ops.js +68 -6
  253. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  254. package/dist/platform/ops/conversations.ops.js +470 -0
  255. package/dist/platform/ops/environments.ops.d.ts +26 -0
  256. package/dist/platform/ops/environments.ops.js +289 -0
  257. package/dist/platform/ops/errors.d.ts +10 -5
  258. package/dist/platform/ops/errors.js +19 -11
  259. package/dist/platform/ops/evals.ops.d.ts +28 -0
  260. package/dist/platform/ops/evals.ops.js +783 -0
  261. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  262. package/dist/platform/ops/extensions-admin.ops.js +344 -0
  263. package/dist/platform/ops/extensions.ops.d.ts +7 -1
  264. package/dist/platform/ops/extensions.ops.js +248 -17
  265. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  266. package/dist/platform/ops/inbox.ops.js +378 -0
  267. package/dist/platform/ops/marketplaces.ops.d.ts +7 -1
  268. package/dist/platform/ops/marketplaces.ops.js +326 -17
  269. package/dist/platform/ops/models.ops.d.ts +25 -0
  270. package/dist/platform/ops/models.ops.js +232 -0
  271. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  272. package/dist/platform/ops/org-plugins.ops.js +329 -0
  273. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  274. package/dist/platform/ops/org-settings.ops.js +102 -0
  275. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  276. package/dist/platform/ops/orgs.ops.js +295 -0
  277. package/dist/platform/ops/other-orgs.d.ts +20 -0
  278. package/dist/platform/ops/other-orgs.js +72 -0
  279. package/dist/platform/ops/platform.ops.d.ts +4 -4
  280. package/dist/platform/ops/platform.ops.js +23 -24
  281. package/dist/platform/ops/plugins.ops.d.ts +10 -8
  282. package/dist/platform/ops/plugins.ops.js +176 -77
  283. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  284. package/dist/platform/ops/previewers.ops.js +109 -0
  285. package/dist/platform/ops/requests.ops.js +57 -19
  286. package/dist/platform/ops/skills.ops.d.ts +5 -1
  287. package/dist/platform/ops/skills.ops.js +129 -11
  288. package/dist/platform/ops/unavailable.d.ts +23 -0
  289. package/dist/platform/ops/unavailable.js +111 -0
  290. package/dist/platform/parity.d.ts +33 -0
  291. package/dist/platform/parity.js +272 -0
  292. package/dist/platform/platform-ops.module.d.ts +32 -0
  293. package/dist/platform/platform-ops.module.js +78 -11
  294. package/dist/platform/route-schemas.d.ts +18 -0
  295. package/dist/platform/route-schemas.js +60 -0
  296. package/dist/roles/worker.module.js +2 -0
  297. package/dist/runtime/context/build.d.ts +2 -0
  298. package/dist/runtime/context/build.js +28 -2
  299. package/dist/runtime/context/compaction.js +10 -1
  300. package/dist/runtime/context/run-context.d.ts +65 -0
  301. package/dist/runtime/context/run-context.js +215 -0
  302. package/dist/runtime/hook-calls.d.ts +8 -1
  303. package/dist/runtime/hook-calls.js +40 -9
  304. package/dist/runtime/model-call.d.ts +8 -3
  305. package/dist/runtime/model-call.js +30 -6
  306. package/dist/runtime/providers.d.ts +146 -32
  307. package/dist/runtime/providers.js +328 -67
  308. package/dist/runtime/run-context.service.d.ts +65 -0
  309. package/dist/runtime/run-context.service.js +220 -0
  310. package/dist/runtime/run-worker.d.ts +6 -1
  311. package/dist/runtime/run-worker.js +35 -10
  312. package/dist/runtime/runtime.module.js +2 -0
  313. package/dist/runtime/subagents/definition.d.ts +15 -15
  314. package/dist/runtime/subagents/definition.js +49 -118
  315. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  316. package/dist/runtime/usage-report-jobs.js +158 -0
  317. package/dist/runtime/usage-report.d.ts +33 -38
  318. package/dist/runtime/usage-report.js +152 -84
  319. package/dist/skills/changes.controller.js +2 -1
  320. package/dist/skills/changes.service.d.ts +1 -1
  321. package/dist/skills/changes.service.js +4 -4
  322. package/dist/skills/invocable.controller.d.ts +1 -1
  323. package/dist/skills/invocable.controller.js +2 -2
  324. package/dist/skills/invoke.d.ts +2 -2
  325. package/dist/skills/invoke.js +8 -1
  326. package/dist/skills/skills.controller.d.ts +4 -13
  327. package/dist/skills/skills.controller.js +8 -24
  328. package/dist/skills/skills.schemas.d.ts +48 -0
  329. package/dist/skills/skills.schemas.js +61 -0
  330. package/dist/skills/skills.service.d.ts +11 -1
  331. package/dist/skills/skills.service.js +37 -14
  332. package/dist/time-zone.d.ts +5 -0
  333. package/dist/time-zone.js +19 -0
  334. package/dist/tools/approvals.controller.js +2 -3
  335. package/dist/tools/approvals.schemas.d.ts +21 -0
  336. package/dist/tools/approvals.schemas.js +15 -0
  337. package/dist/tools/builtin-names.d.ts +10 -8
  338. package/dist/tools/builtin-names.js +16 -11
  339. package/dist/tools/builtins/builtin-tools.d.ts +3 -1
  340. package/dist/tools/builtins/builtin-tools.js +15 -3
  341. package/dist/tools/builtins/current-time.d.ts +26 -0
  342. package/dist/tools/builtins/current-time.js +99 -0
  343. package/dist/tools/builtins/platform.d.ts +19 -2
  344. package/dist/tools/builtins/platform.js +105 -16
  345. package/dist/tools/connectors.controller.d.ts +1 -2
  346. package/dist/tools/connectors.controller.js +1 -4
  347. package/dist/tools/connectors.schemas.d.ts +12 -0
  348. package/dist/tools/connectors.schemas.js +19 -0
  349. package/dist/tools/connectors.service.d.ts +5 -2
  350. package/dist/tools/connectors.service.js +7 -5
  351. package/dist/tools/org-tool-switches.d.ts +16 -2
  352. package/dist/tools/org-tool-switches.js +26 -9
  353. package/dist/tools/pipeline.js +9 -1
  354. package/dist/tools/registry.d.ts +48 -51
  355. package/dist/tools/registry.js +222 -233
  356. package/package.json +3 -3
  357. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  358. package/src/migrations/0090_initial_passwords.sql +27 -0
  359. package/src/migrations/0091_account_time_zone.sql +4 -0
  360. package/src/migrations/0092_tools_default_on.sql +27 -0
  361. package/dist/platform/redact-orgs.d.ts +0 -7
  362. package/dist/platform/redact-orgs.js +0 -52
@@ -0,0 +1,114 @@
1
+ import { z } from "zod";
2
+ import type { RouteSchemas } from "../platform/route-schemas.js";
3
+ export declare const ComponentKindSchema: z.ZodEnum<{
4
+ agent_template: "agent_template";
5
+ connector_template: "connector_template";
6
+ skill: "skill";
7
+ }>;
8
+ export declare const OrgComponentListQuery: z.ZodObject<{
9
+ kind: z.ZodOptional<z.ZodEnum<{
10
+ agent_template: "agent_template";
11
+ connector_template: "connector_template";
12
+ skill: "skill";
13
+ }>>;
14
+ itemId: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strict>;
16
+ /** `?kind=` of the admin component list. */
17
+ export declare const ComponentListQuery: z.ZodObject<{
18
+ kind: z.ZodEnum<{
19
+ agent_template: "agent_template";
20
+ connector_template: "connector_template";
21
+ skill: "skill";
22
+ }>;
23
+ }, z.core.$strict>;
24
+ export declare const ComponentParams: z.ZodObject<{
25
+ kind: z.ZodEnum<{
26
+ agent_template: "agent_template";
27
+ connector_template: "connector_template";
28
+ skill: "skill";
29
+ }>;
30
+ id: z.ZodString;
31
+ }, z.core.$strip>;
32
+ /** `{ enabled, confirm? }` of the org's switch of a platform component. */
33
+ export declare const ComponentSwitchBody: z.ZodObject<{
34
+ enabled: z.ZodBoolean;
35
+ confirm: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$strict>;
37
+ declare const exactlyOnePreviewTarget: (b: {
38
+ scope?: unknown;
39
+ disabled?: true | undefined;
40
+ follow?: true | undefined;
41
+ }) => boolean;
42
+ declare const orgsNeedScope: (b: {
43
+ scope?: unknown;
44
+ orgs?: unknown;
45
+ }) => boolean;
46
+ declare const scopeXorFollow: (b: {
47
+ scope?: unknown;
48
+ follow?: true | undefined;
49
+ }) => boolean;
50
+ /** The fields of the scope preview body, before its refinements (zod 4 cannot `extend` a refined object). */
51
+ export declare const ComponentScopePreviewFields: z.ZodObject<{
52
+ scope: z.ZodOptional<z.ZodEnum<{
53
+ all: "all";
54
+ named: "named";
55
+ optional: "optional";
56
+ }>>;
57
+ orgs: z.ZodOptional<z.ZodArray<z.ZodString>>;
58
+ disabled: z.ZodOptional<z.ZodLiteral<true>>;
59
+ follow: z.ZodOptional<z.ZodLiteral<true>>;
60
+ }, z.core.$strict>;
61
+ /** `{ scope, orgs? }`, `{ disabled: true }` or `{ follow: true }`: exactly one. */
62
+ export declare const ComponentScopePreviewSchema: z.ZodObject<{
63
+ scope: z.ZodOptional<z.ZodEnum<{
64
+ all: "all";
65
+ named: "named";
66
+ optional: "optional";
67
+ }>>;
68
+ orgs: z.ZodOptional<z.ZodArray<z.ZodString>>;
69
+ disabled: z.ZodOptional<z.ZodLiteral<true>>;
70
+ follow: z.ZodOptional<z.ZodLiteral<true>>;
71
+ }, z.core.$strict>;
72
+ /** The fields of the scope body, before its refinements. */
73
+ export declare const ComponentScopeFields: z.ZodObject<{
74
+ scope: z.ZodOptional<z.ZodEnum<{
75
+ all: "all";
76
+ named: "named";
77
+ optional: "optional";
78
+ }>>;
79
+ orgs: z.ZodOptional<z.ZodArray<z.ZodString>>;
80
+ follow: z.ZodOptional<z.ZodLiteral<true>>;
81
+ scopeHash: z.ZodString;
82
+ }, z.core.$strict>;
83
+ /** `{ scope, orgs?, scopeHash }` or `{ follow: true, scopeHash }`. */
84
+ export declare const ComponentScopeSchema: z.ZodObject<{
85
+ scope: z.ZodOptional<z.ZodEnum<{
86
+ all: "all";
87
+ named: "named";
88
+ optional: "optional";
89
+ }>>;
90
+ orgs: z.ZodOptional<z.ZodArray<z.ZodString>>;
91
+ follow: z.ZodOptional<z.ZodLiteral<true>>;
92
+ scopeHash: z.ZodString;
93
+ }, z.core.$strict>;
94
+ export declare const ComponentDisabledSchema: z.ZodObject<{
95
+ disabled: z.ZodBoolean;
96
+ scopeHash: z.ZodOptional<z.ZodString>;
97
+ }, z.core.$strict>;
98
+ export declare const ComponentShownSchema: z.ZodObject<{
99
+ shownToOthers: z.ZodBoolean;
100
+ }, z.core.$strict>;
101
+ export declare const ComponentIdSchema: z.ZodObject<{
102
+ id: z.ZodString;
103
+ }, z.core.$strip>;
104
+ export declare const ComponentTemplateVersionSchema: z.ZodObject<{
105
+ content: z.ZodString;
106
+ }, z.core.$strict>;
107
+ /** The refinements of the two scope bodies, for operations that rebuild them from the fields. */
108
+ export declare const componentScopeRules: {
109
+ exactlyOnePreviewTarget: typeof exactlyOnePreviewTarget;
110
+ orgsNeedScope: typeof orgsNeedScope;
111
+ scopeXorFollow: typeof scopeXorFollow;
112
+ };
113
+ export declare const COMPONENT_SCOPE_ROUTES: readonly RouteSchemas[];
114
+ export {};
@@ -0,0 +1,97 @@
1
+ import { z } from "zod";
2
+ import { COMPONENT_KINDS } from "./component-state.js";
3
+ export const ComponentKindSchema = z.enum(COMPONENT_KINDS);
4
+ export const OrgComponentListQuery = z
5
+ .object({ kind: ComponentKindSchema.optional(), itemId: z.string().uuid().optional() })
6
+ .strict();
7
+ /** `?kind=` of the admin component list. */
8
+ export const ComponentListQuery = z.object({ kind: ComponentKindSchema }).strict();
9
+ export const ComponentParams = z.object({
10
+ kind: ComponentKindSchema,
11
+ id: z.string().min(1).max(128),
12
+ });
13
+ /** `{ enabled, confirm? }` of the org's switch of a platform component. */
14
+ export const ComponentSwitchBody = z
15
+ .object({
16
+ enabled: z.boolean(),
17
+ confirm: z
18
+ .string()
19
+ .regex(/^[0-9a-f]{64}$/)
20
+ .optional(),
21
+ })
22
+ .strict();
23
+ const Scope = z.enum(["all", "optional", "named"]);
24
+ const Orgs = z.array(z.string().min(1).max(128)).max(1000);
25
+ const Hash = z.string().min(1).max(128);
26
+ const exactlyOnePreviewTarget = (b) => [b.scope !== undefined, b.disabled === true, b.follow === true].filter(Boolean).length === 1;
27
+ const orgsNeedScope = (b) => b.scope !== undefined || b.orgs === undefined;
28
+ const scopeXorFollow = (b) => (b.scope !== undefined) !== (b.follow === true);
29
+ /** The fields of the scope preview body, before its refinements (zod 4 cannot `extend` a refined object). */
30
+ export const ComponentScopePreviewFields = z
31
+ .object({
32
+ scope: Scope.optional(),
33
+ orgs: Orgs.optional(),
34
+ disabled: z.literal(true).optional(),
35
+ follow: z.literal(true).optional(),
36
+ })
37
+ .strict();
38
+ /** `{ scope, orgs? }`, `{ disabled: true }` or `{ follow: true }`: exactly one. */
39
+ export const ComponentScopePreviewSchema = ComponentScopePreviewFields.refine(exactlyOnePreviewTarget, { message: "send exactly one of scope (with orgs for named), disabled: true or follow: true" }).refine(orgsNeedScope, { message: "orgs: only allowed with scope named", path: ["orgs"] });
40
+ /** The fields of the scope body, before its refinements. */
41
+ export const ComponentScopeFields = z
42
+ .object({
43
+ scope: Scope.optional(),
44
+ orgs: Orgs.optional(),
45
+ follow: z.literal(true).optional(),
46
+ scopeHash: Hash,
47
+ })
48
+ .strict();
49
+ /** `{ scope, orgs?, scopeHash }` or `{ follow: true, scopeHash }`. */
50
+ export const ComponentScopeSchema = ComponentScopeFields.refine(scopeXorFollow, {
51
+ message: "send either scope (with orgs for named) or follow: true",
52
+ }).refine(orgsNeedScope, { message: "orgs: only allowed with scope named", path: ["orgs"] });
53
+ export const ComponentDisabledSchema = z
54
+ .object({ disabled: z.boolean(), scopeHash: Hash.optional() })
55
+ .strict();
56
+ export const ComponentShownSchema = z.object({ shownToOthers: z.boolean() }).strict();
57
+ export const ComponentIdSchema = z.object({ id: z.string().min(1).max(128) });
58
+ export const ComponentTemplateVersionSchema = z
59
+ .object({ content: z.string().min(1).max(400_000) })
60
+ .strict();
61
+ /** The refinements of the two scope bodies, for operations that rebuild them from the fields. */
62
+ export const componentScopeRules = { exactlyOnePreviewTarget, orgsNeedScope, scopeXorFollow };
63
+ export const COMPONENT_SCOPE_ROUTES = [
64
+ { route: "GET /api/v1/orgs/:orgId/components", query: OrgComponentListQuery },
65
+ { route: "GET /api/v1/admin/components", query: ComponentListQuery },
66
+ { route: "GET /api/v1/admin/components/:kind/:id/versions", params: ComponentParams },
67
+ {
68
+ route: "POST /api/v1/admin/components/:kind/:id/scope/preview",
69
+ params: ComponentParams,
70
+ body: ComponentScopePreviewSchema,
71
+ },
72
+ {
73
+ route: "PUT /api/v1/admin/components/:kind/:id/scope",
74
+ params: ComponentParams,
75
+ body: ComponentScopeSchema,
76
+ },
77
+ {
78
+ route: "PUT /api/v1/admin/components/:kind/:id/disabled",
79
+ params: ComponentParams,
80
+ body: ComponentDisabledSchema,
81
+ },
82
+ {
83
+ route: "PUT /api/v1/admin/components/:kind/:id/shown",
84
+ params: ComponentParams,
85
+ body: ComponentShownSchema,
86
+ },
87
+ {
88
+ route: "POST /api/v1/admin/components/agent_template/:id/versions",
89
+ params: ComponentIdSchema,
90
+ body: ComponentTemplateVersionSchema,
91
+ },
92
+ {
93
+ route: "PUT /api/v1/orgs/:orgId/components/:kind/:id/switch",
94
+ params: ComponentParams,
95
+ body: ComponentSwitchBody,
96
+ },
97
+ ];
@@ -160,6 +160,10 @@ export type ComponentSwitchResult = {
160
160
  };
161
161
  confirm: string;
162
162
  };
163
+ /** Actor facts of a write: the token, and detail the caller adds to the audit row. */
164
+ type AuditOpts = ActorOpts & {
165
+ auditDetail?: Record<string, unknown>;
166
+ };
163
167
  /**
164
168
  * 409 `plugin.skill_conflict` listing the orgs whose own skills use a component's name (rule 10);
165
169
  * for an agent template 409 `agent_template.name_taken` listing the orgs that already use its
@@ -238,7 +242,7 @@ export declare class ComponentScopeService {
238
242
  follow: true;
239
243
  }) & {
240
244
  scopeHash: string;
241
- }, opts?: ActorOpts): Promise<ComponentView>;
245
+ }, opts?: AuditOpts): Promise<ComponentView>;
242
246
  /**
243
247
  * Disables the component on the whole deployment (after its preview, `scopeHash` required) or
244
248
  * enables it again (no hash; refused while an org it would be offered to has a skill of its name).
@@ -246,9 +250,9 @@ export declare class ComponentScopeService {
246
250
  setDisabled(actor: string, kind: ComponentKind, id: string, body: {
247
251
  disabled: boolean;
248
252
  scopeHash?: string;
249
- }, opts?: ActorOpts): Promise<ComponentView>;
253
+ }, opts?: AuditOpts): Promise<ComponentView>;
250
254
  /** Shows or hides the component to orgs outside its `named` list (never makes it usable). */
251
- setShown(actor: string, kind: ComponentKind, id: string, shown: boolean, opts?: ActorOpts): Promise<ComponentView>;
255
+ setShown(actor: string, kind: ComponentKind, id: string, shown: boolean, opts?: AuditOpts): Promise<ComponentView>;
252
256
  /**
253
257
  * The org admin's switch of one component (`PUT orgs/:orgId/components/:kind/:id/switch`): only
254
258
  * this component (rule 5). A component not offered to the org -> 404. On: refused while the
@@ -260,7 +264,26 @@ export declare class ComponentScopeService {
260
264
  setSwitch(orgId: string, actor: string, kind: ComponentKind, id: string, body: {
261
265
  enabled: boolean;
262
266
  confirm?: string;
263
- }, actorTokenId?: string): Promise<ComponentSwitchResult>;
267
+ }, actorTokenId?: string, auditDetail?: Record<string, unknown>): Promise<ComponentSwitchResult>;
268
+ /**
269
+ * What {@link setSwitch} would do to the org's switch, read-only (the Platform tool's preview):
270
+ * the component as the org sees it, whether it is `stopped` on the deployment, and for one that
271
+ * is on and can be switched off the preview of the agents that lose it with the `confirm` hash
272
+ * the switch-off needs (both null otherwise). Unknown or not offered -> 404 `component.not_found`.
273
+ */
274
+ switchPreview(orgId: string, kind: ComponentKind, id: string): Promise<{
275
+ component: OrgComponentView;
276
+ stopped: boolean;
277
+ preview: {
278
+ agents: {
279
+ id: string;
280
+ name: string;
281
+ refs: string[];
282
+ }[];
283
+ connectorsKept: number;
284
+ } | null;
285
+ confirm: string | null;
286
+ }>;
264
287
  /**
265
288
  * `x.hashId`: the id the preview was asked for (an org row's id before its promotion);
266
289
  * `x.promote`: the org row to promote first, in this transaction. Returns the id written.
@@ -301,3 +324,4 @@ export declare class ComponentScopeService {
301
324
  */
302
325
  private compute;
303
326
  }
327
+ export {};
@@ -432,7 +432,7 @@ let ComponentScopeService = class ComponentScopeService {
432
432
  * is on, without `confirm` the preview (agents that use it) and its hash are returned, with the
433
433
  * current hash the switch is written (a changed preview -> `plugin.switch_stale`).
434
434
  */
435
- async setSwitch(orgId, actor, kind, id, body, actorTokenId) {
435
+ async setSwitch(orgId, actor, kind, id, body, actorTokenId, auditDetail) {
436
436
  await this.orgLock.lockAndAuthorize(orgId, actor, ACTION[kind]);
437
437
  // The rows an unshare narrows (ruling P3-25) are locked before the scope is read, in its order
438
438
  // (plugin, then component): a switch-on never commits against a scope narrowed meanwhile
@@ -509,7 +509,14 @@ let ComponentScopeService = class ComponentScopeService {
509
509
  orgId,
510
510
  action: "component.org_switched",
511
511
  target: c.id,
512
- detail: { kind, name: c.name, plugin: c.plugin, from: sw, to: body.enabled },
512
+ detail: {
513
+ kind,
514
+ name: c.name,
515
+ plugin: c.plugin,
516
+ from: sw,
517
+ to: body.enabled,
518
+ ...auditDetail,
519
+ },
513
520
  });
514
521
  }
515
522
  return {
@@ -525,6 +532,42 @@ let ComponentScopeService = class ComponentScopeService {
525
532
  },
526
533
  };
527
534
  }
535
+ /**
536
+ * What {@link setSwitch} would do to the org's switch, read-only (the Platform tool's preview):
537
+ * the component as the org sees it, whether it is `stopped` on the deployment, and for one that
538
+ * is on and can be switched off the preview of the agents that lose it with the `confirm` hash
539
+ * the switch-off needs (both null otherwise). Unknown or not offered -> 404 `component.not_found`.
540
+ */
541
+ async switchPreview(orgId, kind, id) {
542
+ const [c] = await loadComponents(this.db, kind, { ids: [id] });
543
+ if (!c)
544
+ throw notFound();
545
+ const st = await loadScopeState(this.db, kind, [c]);
546
+ const p = pluginFactsOf(st, c.itemId, orgId);
547
+ const listed = listedIn(st, c.id, orgId);
548
+ const sw = switchOf(st, c.id, orgId);
549
+ const on = componentOn(c, p, listed, sw);
550
+ const stopped = c.disabled || (p?.live === true && p.disabled);
551
+ const offered = componentOffered({ ...c, disabled: false }, p && { ...p, disabled: false }, listed);
552
+ if (!on && !offered)
553
+ throw notFound();
554
+ const locked = componentLocked(c, p);
555
+ let preview = null;
556
+ let confirm = null;
557
+ if (on && !locked) {
558
+ preview = {
559
+ agents: await agentsUsing(this.db, orgId, kind, [c.id]),
560
+ connectorsKept: kind === "connector_template" ? await connectorsMadeFrom(this.db, orgId, c.id) : 0,
561
+ };
562
+ confirm = switchHash(orgId, c, preview);
563
+ }
564
+ return {
565
+ component: { kind, id: c.id, name: c.name, plugin: c.plugin, switch: sw, on, locked },
566
+ stopped,
567
+ preview,
568
+ confirm,
569
+ };
570
+ }
528
571
  /**
529
572
  * `x.hashId`: the id the preview was asked for (an org row's id before its promotion);
530
573
  * `x.promote`: the org row to promote first, in this transaction. Returns the id written.
@@ -590,6 +633,7 @@ let ComponentScopeService = class ComponentScopeService {
590
633
  plugin: c.plugin,
591
634
  from: { scopeMode: c.scopeMode, scope: c.scope, orgs: from },
592
635
  to: { scopeMode: t.scopeMode, scope: t.scope, orgs: t.orgs },
636
+ ...opts.auditDetail,
593
637
  },
594
638
  });
595
639
  return id;
@@ -623,6 +667,7 @@ let ComponentScopeService = class ComponentScopeService {
623
667
  name: c.name,
624
668
  plugin: c.plugin,
625
669
  disabled: { from: c.disabled, to: disabled },
670
+ ...opts.auditDetail,
626
671
  },
627
672
  });
628
673
  }
@@ -649,7 +694,14 @@ let ComponentScopeService = class ComponentScopeService {
649
694
  ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
650
695
  action: "component.shown_changed",
651
696
  target: id,
652
- detail: { kind, name: c.name, plugin: c.plugin, from: c.shownToOthers, to: shown },
697
+ detail: {
698
+ kind,
699
+ name: c.name,
700
+ plugin: c.plugin,
701
+ from: c.shownToOthers,
702
+ to: shown,
703
+ ...opts.auditDetail,
704
+ },
653
705
  });
654
706
  return id;
655
707
  }
@@ -101,14 +101,21 @@ export declare const switchOf: (st: ScopeState, id: string, orgId: string) => bo
101
101
  export declare const listedIn: (st: ScopeState, id: string, orgId: string) => boolean;
102
102
  /** The connectors, skills and agent templates an agent definition references. */
103
103
  export interface DefinitionRefs {
104
+ /**
105
+ * The connectors the agent uses: tools are on by default (tools default-on spec §6), so every
106
+ * one of `orgConnectors` it does not turn off as a whole.
107
+ */
104
108
  connectors: Set<string>;
105
109
  /** `skills.orgSkills`, `skills.pinned` and the inline sub-agent templates' `skills`. */
106
110
  skills: Set<string>;
107
111
  /** `subagents.templates`. */
108
112
  templates: Set<string>;
109
113
  }
110
- /** The ids an agent definition references (see {@link DefinitionRefs}). */
111
- export declare function definitionRefs(definition: unknown): DefinitionRefs;
114
+ /**
115
+ * The ids an agent definition references (see {@link DefinitionRefs}); `orgConnectors` are the
116
+ * ids of the org's live connectors.
117
+ */
118
+ export declare function definitionRefs(definition: unknown, orgConnectors?: readonly string[]): DefinitionRefs;
112
119
  /** The org's live agents with their current definitions' references, sorted by id. */
113
120
  export declare function agentDefinitionRefs(db: KernelSchemaDb, orgId: string): Promise<({
114
121
  id: string;
@@ -1,9 +1,3 @@
1
- // Component scope (plugin scope phase 2, Task 6; spec §5 rules 2, 5, 8, 10, 11, §13.5): when a platform
2
- // component (skill, agent template, connector template) is on in an org, offered to it, or locked on,
3
- // and which agents of an org use one. Pure predicates plus the reads they need; the usable sets
4
- // (skills/usable.ts, agents/templates.ts), the component scope service and the plugin scope preview
5
- // all decide with the same predicates.
6
- import { normalizeToolRef } from "../agents/definition.js";
7
1
  import { visibleTo, wantedOn } from "./scope.js";
8
2
  export const COMPONENT_KINDS = [
9
3
  "skill",
@@ -244,17 +238,25 @@ export function pluginFactsOf(st, itemId, orgId) {
244
238
  export const switchOf = (st, id, orgId) => st.switches.get(id)?.get(orgId) ?? null;
245
239
  /** Whether the org is on a component's own `named` list in a {@link ScopeState}. */
246
240
  export const listedIn = (st, id, orgId) => st.listed.get(id)?.has(orgId) ?? false;
247
- /** The ids an agent definition references (see {@link DefinitionRefs}). */
248
- export function definitionRefs(definition) {
241
+ /**
242
+ * The ids an agent definition references (see {@link DefinitionRefs}); `orgConnectors` are the
243
+ * ids of the org's live connectors.
244
+ */
245
+ export function definitionRefs(definition, orgConnectors = []) {
249
246
  const def = definition;
250
247
  const connectors = new Set();
251
248
  const skills = new Set();
252
249
  const templates = new Set();
253
- for (const ref of Array.isArray(def?.tools) ? def.tools : []) {
254
- const n = normalizeToolRef(ref);
255
- if (n?.kind === "connector" && typeof n.connectorId === "string")
256
- connectors.add(n.connectorId);
250
+ const off = new Set();
251
+ for (const ref of Array.isArray(def?.disabledTools) ? def.disabledTools : []) {
252
+ const n = ref;
253
+ if (n?.kind === "connector" && typeof n.connectorId === "string" && n.tools === "all") {
254
+ off.add(n.connectorId);
255
+ }
257
256
  }
257
+ for (const id of orgConnectors)
258
+ if (!off.has(id))
259
+ connectors.add(id);
258
260
  const strings = (xs, into) => {
259
261
  if (Array.isArray(xs))
260
262
  for (const x of xs)
@@ -280,12 +282,19 @@ export async function agentDefinitionRefs(db, orgId) {
280
282
  .where("a.deleted_at", "is", null)
281
283
  .orderBy("a.id")
282
284
  .execute();
285
+ const connectors = (await db
286
+ .selectFrom("connectors")
287
+ .select("id")
288
+ .where("org_id", "=", orgId)
289
+ .where("deleted_at", "is", null)
290
+ .orderBy("id")
291
+ .execute()).map((c) => c.id);
283
292
  return rows.map((r) => {
284
293
  const name = r.definition?.name;
285
294
  return {
286
295
  id: r.id,
287
296
  name: typeof name === "string" ? name : r.id,
288
- ...definitionRefs(r.definition),
297
+ ...definitionRefs(r.definition, connectors),
289
298
  };
290
299
  });
291
300
  }
@@ -1,40 +1,11 @@
1
- import { z } from "zod";
1
+ import type { z } from "zod";
2
2
  import { type Principal } from "../identity/principal.js";
3
3
  import { KernelConfigService } from "../infra/config/kernel-config.service.js";
4
4
  import { KernelDb } from "../infra/database/kernel-db.js";
5
5
  import { type OrgContext } from "../orgs/org.guard.js";
6
6
  import { CatalogService, type MarketplaceImportResult } from "./catalog.service.js";
7
+ import { MarketplaceImportBody as ImportBody, MarketplaceAddBody, MarketplaceEntriesQuery, MarketplacePatchBody as PatchBody } from "./marketplaces.schemas.js";
7
8
  import { type MarketplaceEntryView, MarketplacesService, type MarketplaceView } from "./marketplaces.service.js";
8
- declare const AddBody: z.ZodObject<{
9
- name: z.ZodString;
10
- url: z.ZodString;
11
- form: z.ZodOptional<z.ZodEnum<{
12
- git: "git";
13
- http: "http";
14
- }>>;
15
- ref: z.ZodOptional<z.ZodString>;
16
- mirrors: z.ZodOptional<z.ZodArray<z.ZodString>>;
17
- token: z.ZodOptional<z.ZodString>;
18
- }, z.core.$strip>;
19
- declare const PatchBody: z.ZodObject<{
20
- name: z.ZodOptional<z.ZodString>;
21
- url: z.ZodOptional<z.ZodString>;
22
- form: z.ZodOptional<z.ZodEnum<{
23
- git: "git";
24
- http: "http";
25
- }>>;
26
- ref: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
- mirrors: z.ZodOptional<z.ZodArray<z.ZodString>>;
28
- enabled: z.ZodOptional<z.ZodBoolean>;
29
- token: z.ZodOptional<z.ZodNullable<z.ZodString>>;
30
- }, z.core.$strict>;
31
- declare const EntriesQuery: z.ZodObject<{
32
- sourceId: z.ZodOptional<z.ZodString>;
33
- q: z.ZodOptional<z.ZodString>;
34
- }, z.core.$strip>;
35
- declare const ImportBody: z.ZodObject<{
36
- version: z.ZodOptional<z.ZodString>;
37
- }, z.core.$strip>;
38
9
  /**
39
10
  * Marketplaces (`/api/v1/admin/marketplaces/*`, super admins): create, update, delete and
40
11
  * refresh the official and custom marketplaces, browse entries, import from a marketplace.
@@ -55,7 +26,7 @@ export declare class MarketplacesController {
55
26
  * to the URL's origin). A git URL (`…/*.git`, `owner/repo`, or any URL with `form: "git"`) is a
56
27
  * git marketplace with an optional `ref`; anything else is a marketplace.json URL.
57
28
  */
58
- add(principal: Principal, body: z.infer<typeof AddBody>): Promise<MarketplaceView>;
29
+ add(principal: Principal, body: z.infer<typeof MarketplaceAddBody>): Promise<MarketplaceView>;
59
30
  /**
60
31
  * Browses entries (enabled marketplaces only, `sourceId` filters by marketplace; at most
61
32
  * `MARKETPLACE_ENTRIES_MAX`, `truncated` true means there are more). An entry that cannot be
@@ -63,7 +34,7 @@ export declare class MarketplacesController {
63
34
  * outside `marketplaces.allowedHosts`) or `path_needs_git_marketplace` (a path entry of an http
64
35
  * marketplace).
65
36
  */
66
- entries(q: z.infer<typeof EntriesQuery>): Promise<{
37
+ entries(q: z.infer<typeof MarketplaceEntriesQuery>): Promise<{
67
38
  items: MarketplaceEntryView[];
68
39
  truncated: boolean;
69
40
  }>;
@@ -106,9 +77,8 @@ export declare class OrgMarketplacesController {
106
77
  private readonly marketplaces;
107
78
  private readonly kdb;
108
79
  constructor(marketplaces: MarketplacesService, kdb: KernelDb);
109
- entries(org: OrgContext, q: z.infer<typeof EntriesQuery>): Promise<{
80
+ entries(org: OrgContext, q: z.infer<typeof MarketplaceEntriesQuery>): Promise<{
110
81
  items: MarketplaceEntryView[];
111
82
  truncated: boolean;
112
83
  }>;
113
84
  }
114
- export {};
@@ -8,8 +8,6 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
10
  import { Controller, Delete, Get, HttpCode, Inject, Param, Patch, Post } from "@nestjs/common";
11
- import { z } from "zod";
12
- import { MARKETPLACE_MAX_MIRRORS } from "../config/schema.js";
13
11
  import { ApiError } from "../errors.js";
14
12
  import { CurrentPrincipal, patTokenId, requireUser, SuperAdmin, } from "../identity/principal.js";
15
13
  import { readOrgMarketplaceBrowse } from "../identity/settings.js";
@@ -19,44 +17,18 @@ import { createZodDto } from "../infra/validation/create-zod-dto.js";
19
17
  import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
20
18
  import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
21
19
  import { CatalogService } from "./catalog.service.js";
20
+ import { MarketplaceImportBody as ImportBody, MarketplaceAddBody, MarketplaceEntriesQuery, MarketplacePatchBody as PatchBody, } from "./marketplaces.schemas.js";
22
21
  import { MarketplacesService, } from "./marketplaces.service.js";
23
22
  import { itemsSeenBy } from "./scope-state.js";
24
- const Url = z.string().min(1).max(2000);
25
- const Form = z.enum(["http", "git"]);
26
- const Ref = z.string().min(1).max(256);
27
- const AddBody = z.object({
28
- name: z.string().min(1).max(100),
29
- url: Url,
30
- form: Form.optional(),
31
- ref: Ref.optional(),
32
- mirrors: z.array(Url).max(MARKETPLACE_MAX_MIRRORS).optional(),
33
- token: z.string().min(1).max(4096).optional(),
34
- });
35
- const PatchBody = z
36
- .object({
37
- name: z.string().min(1).max(100).optional(),
38
- url: Url.optional(),
39
- form: Form.optional(),
40
- ref: Ref.nullable().optional(),
41
- mirrors: z.array(Url).max(MARKETPLACE_MAX_MIRRORS).optional(),
42
- enabled: z.boolean().optional(),
43
- token: z.string().min(1).max(4096).nullable().optional(),
44
- })
45
- .strict();
46
- const EntriesQuery = z.object({
47
- sourceId: z.string().min(1).max(100).optional(),
48
- q: z.string().max(200).optional(),
49
- });
50
- const ImportBody = z.object({ version: z.string().min(1).max(256).optional() });
51
23
  /** 手动刷新的总时限(每个地址另有 30 秒超时)。 */
52
24
  const REFRESH_DEADLINE_MS = 300_000;
53
25
  const actorOpts = (actor) => {
54
26
  const tokenId = patTokenId(actor);
55
27
  return tokenId !== undefined ? { actorTokenId: tokenId } : {};
56
28
  };
57
- class MarketplaceAddBody extends createZodDto(AddBody, "MarketplaceAddBody") {
29
+ class MarketplaceAddBodyDto extends createZodDto(MarketplaceAddBody, "MarketplaceAddBody") {
58
30
  }
59
- class MarketplaceEntriesQuery extends createZodDto(EntriesQuery, "MarketplaceEntriesQuery") {
31
+ class MarketplaceEntriesQueryDto extends createZodDto(MarketplaceEntriesQuery, "MarketplaceEntriesQuery") {
60
32
  }
61
33
  class MarketplaceImportBody extends createZodDto(ImportBody, "MarketplaceImportBody") {
62
34
  }
@@ -171,11 +143,11 @@ __decorate([
171
143
  Post(),
172
144
  HttpCode(201),
173
145
  __param(0, CurrentPrincipal()),
174
- __param(1, ZBody(MarketplaceAddBody))
146
+ __param(1, ZBody(MarketplaceAddBodyDto))
175
147
  ], MarketplacesController.prototype, "add", null);
176
148
  __decorate([
177
149
  Get("entries"),
178
- __param(0, ZQuery(MarketplaceEntriesQuery))
150
+ __param(0, ZQuery(MarketplaceEntriesQueryDto))
179
151
  ], MarketplacesController.prototype, "entries", null);
180
152
  __decorate([
181
153
  Patch(":id"),
@@ -247,7 +219,7 @@ __decorate([
247
219
  Get("entries"),
248
220
  OrgAction("catalog.decide"),
249
221
  __param(0, CurrentOrg()),
250
- __param(1, ZQuery(MarketplaceEntriesQuery))
222
+ __param(1, ZQuery(MarketplaceEntriesQueryDto))
251
223
  ], OrgMarketplacesController.prototype, "entries", null);
252
224
  OrgMarketplacesController = __decorate([
253
225
  Controller("api/v1/orgs/:orgId/marketplaces"),
@@ -0,0 +1,48 @@
1
+ import { z } from "zod";
2
+ import type { RouteSchemas } from "../platform/route-schemas.js";
3
+ export declare const MarketplaceUrl: z.ZodString;
4
+ export declare const MarketplaceForm: z.ZodEnum<{
5
+ git: "git";
6
+ http: "http";
7
+ }>;
8
+ export declare const MarketplaceRef: z.ZodString;
9
+ export declare const MarketplaceAddBody: z.ZodObject<{
10
+ name: z.ZodString;
11
+ url: z.ZodString;
12
+ form: z.ZodOptional<z.ZodEnum<{
13
+ git: "git";
14
+ http: "http";
15
+ }>>;
16
+ ref: z.ZodOptional<z.ZodString>;
17
+ mirrors: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
+ token: z.ZodOptional<z.ZodString>;
19
+ }, z.core.$strip>;
20
+ export declare const MarketplaceEntriesQuery: z.ZodObject<{
21
+ sourceId: z.ZodOptional<z.ZodString>;
22
+ q: z.ZodOptional<z.ZodString>;
23
+ }, z.core.$strip>;
24
+ export declare const MarketplacePatchBody: z.ZodObject<{
25
+ name: z.ZodOptional<z.ZodString>;
26
+ url: z.ZodOptional<z.ZodString>;
27
+ form: z.ZodOptional<z.ZodEnum<{
28
+ git: "git";
29
+ http: "http";
30
+ }>>;
31
+ ref: z.ZodOptional<z.ZodNullable<z.ZodString>>;
32
+ mirrors: z.ZodOptional<z.ZodArray<z.ZodString>>;
33
+ enabled: z.ZodOptional<z.ZodBoolean>;
34
+ token: z.ZodOptional<z.ZodNullable<z.ZodString>>;
35
+ }, z.core.$strict>;
36
+ export declare const MarketplaceImportBody: z.ZodObject<{
37
+ version: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strip>;
39
+ /** `:id` of a marketplace as the routes take it (`@Param`). */
40
+ export declare const MarketplaceIdPathParams: z.ZodObject<{
41
+ id: z.ZodString;
42
+ }, z.core.$strip>;
43
+ /** `:id` and the entry `:name` of the import route (`@Param`). */
44
+ export declare const MarketplaceEntryPathParams: z.ZodObject<{
45
+ id: z.ZodString;
46
+ name: z.ZodString;
47
+ }, z.core.$strip>;
48
+ export declare const MARKETPLACE_ROUTES: readonly RouteSchemas[];