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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1039) hide show
  1. package/bootstrap.json +85 -5
  2. package/dist/admin/admin-agents.controller.d.ts +28 -0
  3. package/dist/admin/admin-agents.controller.js +79 -0
  4. package/dist/admin/admin-connectors.controller.d.ts +29 -0
  5. package/dist/admin/admin-connectors.controller.js +79 -0
  6. package/dist/admin/admin-items.schemas.d.ts +42 -0
  7. package/dist/admin/admin-items.schemas.js +48 -0
  8. package/dist/admin/admin.controller.d.ts +52 -80
  9. package/dist/admin/admin.controller.js +112 -81
  10. package/dist/admin/admin.module.d.ts +4 -1
  11. package/dist/admin/admin.module.js +50 -4
  12. package/dist/admin/admin.schemas.d.ts +69 -0
  13. package/dist/admin/admin.schemas.js +53 -0
  14. package/dist/admin/audit.controller.d.ts +14 -0
  15. package/dist/admin/audit.controller.js +42 -0
  16. package/dist/admin/audit.schemas.d.ts +8 -0
  17. package/dist/admin/audit.schemas.js +17 -0
  18. package/dist/admin/extensions.controller.d.ts +34 -3
  19. package/dist/admin/extensions.controller.js +66 -8
  20. package/dist/admin/extensions.schemas.d.ts +7 -0
  21. package/dist/admin/extensions.schemas.js +10 -0
  22. package/dist/admin/health.service.d.ts +104 -0
  23. package/dist/admin/health.service.js +246 -0
  24. package/dist/admin/limit-defaults.d.ts +20 -0
  25. package/dist/admin/limit-defaults.js +10 -0
  26. package/dist/admin/overview.controller.d.ts +31 -0
  27. package/dist/admin/overview.controller.js +78 -0
  28. package/dist/admin/overview.schemas.d.ts +8 -0
  29. package/dist/admin/overview.schemas.js +13 -0
  30. package/dist/admin/overview.service.d.ts +112 -0
  31. package/dist/admin/overview.service.js +223 -0
  32. package/dist/admin/platform-audit.service.d.ts +41 -0
  33. package/dist/admin/platform-audit.service.js +70 -0
  34. package/dist/admin/setup-lock.d.ts +1 -1
  35. package/dist/admin/setup-lock.js +1 -1
  36. package/dist/admin/setup.controller.d.ts +1 -1
  37. package/dist/admin/setup.controller.js +1 -1
  38. package/dist/admin/setup.service.d.ts +4 -4
  39. package/dist/admin/setup.service.js +8 -8
  40. package/dist/admin/usage.service.d.ts +149 -0
  41. package/dist/admin/usage.service.js +321 -0
  42. package/dist/agents/admin-agents.d.ts +92 -0
  43. package/dist/agents/admin-agents.js +170 -0
  44. package/dist/agents/agent-lookup.d.ts +24 -0
  45. package/dist/agents/agent-lookup.js +46 -2
  46. package/dist/agents/agent-profile.service.d.ts +31 -0
  47. package/dist/agents/agent-profile.service.js +122 -0
  48. package/dist/agents/agents.controller.d.ts +53 -168
  49. package/dist/agents/agents.controller.js +163 -34
  50. package/dist/agents/agents.module.d.ts +6 -2
  51. package/dist/agents/agents.module.js +41 -7
  52. package/dist/agents/agents.schemas.d.ts +392 -0
  53. package/dist/agents/agents.schemas.js +126 -0
  54. package/dist/agents/agents.service.d.ts +121 -36
  55. package/dist/agents/agents.service.js +411 -121
  56. package/dist/agents/definition.d.ts +142 -21
  57. package/dist/agents/definition.js +389 -43
  58. package/dist/agents/from-template.d.ts +106 -0
  59. package/dist/agents/from-template.js +680 -0
  60. package/dist/agents/from-template.service.d.ts +72 -0
  61. package/dist/agents/from-template.service.js +178 -0
  62. package/dist/agents/instruction-files.d.ts +60 -0
  63. package/dist/agents/instruction-files.js +111 -0
  64. package/dist/agents/models.controller.d.ts +44 -6
  65. package/dist/agents/models.controller.js +84 -8
  66. package/dist/agents/org-templates.d.ts +186 -0
  67. package/dist/agents/org-templates.js +876 -0
  68. package/dist/agents/pending-connector-requests.d.ts +79 -0
  69. package/dist/agents/pending-connector-requests.js +215 -0
  70. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  71. package/dist/agents/pending-connectors.controller.js +91 -0
  72. package/dist/agents/pending-connectors.service.d.ts +62 -0
  73. package/dist/agents/pending-connectors.service.js +282 -0
  74. package/dist/agents/profile.d.ts +114 -0
  75. package/dist/agents/profile.js +55 -0
  76. package/dist/agents/readiness.controller.d.ts +26 -0
  77. package/dist/agents/readiness.controller.js +56 -0
  78. package/dist/agents/templates.controller.d.ts +77 -5
  79. package/dist/agents/templates.controller.js +153 -7
  80. package/dist/agents/templates.d.ts +127 -23
  81. package/dist/agents/templates.js +482 -44
  82. package/dist/agents/templates.schemas.d.ts +20 -0
  83. package/dist/agents/templates.schemas.js +45 -0
  84. package/dist/background/background.controller.d.ts +38 -0
  85. package/dist/background/background.controller.js +88 -0
  86. package/dist/background/background.module.d.ts +10 -0
  87. package/dist/background/background.module.js +39 -0
  88. package/dist/background/background.schemas.d.ts +10 -0
  89. package/dist/background/background.schemas.js +16 -0
  90. package/dist/background/finish.d.ts +44 -0
  91. package/dist/background/finish.js +95 -0
  92. package/dist/background/launch-lock.d.ts +15 -0
  93. package/dist/background/launch-lock.js +40 -0
  94. package/dist/background/launch.d.ts +42 -0
  95. package/dist/background/launch.js +77 -0
  96. package/dist/background/poll.job.d.ts +56 -0
  97. package/dist/background/poll.job.js +195 -0
  98. package/dist/background/render.d.ts +23 -0
  99. package/dist/background/render.js +48 -0
  100. package/dist/background/session.d.ts +48 -0
  101. package/dist/background/session.js +80 -0
  102. package/dist/background/status.d.ts +35 -0
  103. package/dist/background/status.js +57 -0
  104. package/dist/background/stop.d.ts +68 -0
  105. package/dist/background/stop.js +244 -0
  106. package/dist/background/store.d.ts +167 -0
  107. package/dist/background/store.js +361 -0
  108. package/dist/background/store.module.d.ts +6 -0
  109. package/dist/background/store.module.js +22 -0
  110. package/dist/background/tasks.service.d.ts +109 -0
  111. package/dist/background/tasks.service.js +271 -0
  112. package/dist/background/wake-rules.d.ts +66 -0
  113. package/dist/background/wake-rules.js +113 -0
  114. package/dist/background/wake.d.ts +30 -0
  115. package/dist/background/wake.js +63 -0
  116. package/dist/catalog/admin-catalog.controller.d.ts +136 -52
  117. package/dist/catalog/admin-catalog.controller.js +275 -65
  118. package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
  119. package/dist/catalog/admin-catalog.schemas.js +99 -0
  120. package/dist/catalog/appearance.schemas.d.ts +10 -0
  121. package/dist/catalog/appearance.schemas.js +20 -0
  122. package/dist/catalog/appearance.service.d.ts +105 -0
  123. package/dist/catalog/appearance.service.js +306 -0
  124. package/dist/catalog/catalog-content.d.ts +122 -35
  125. package/dist/catalog/catalog-content.js +122 -14
  126. package/dist/catalog/catalog-files.d.ts +42 -0
  127. package/dist/catalog/catalog-files.js +89 -0
  128. package/dist/catalog/catalog-import.module.d.ts +7 -0
  129. package/dist/catalog/catalog-import.module.js +63 -0
  130. package/dist/catalog/catalog-items.d.ts +122 -7
  131. package/dist/catalog/catalog-items.js +301 -13
  132. package/dist/catalog/catalog-scope.service.d.ts +293 -0
  133. package/dist/catalog/catalog-scope.service.js +1236 -0
  134. package/dist/catalog/catalog.module.d.ts +7 -9
  135. package/dist/catalog/catalog.module.js +47 -31
  136. package/dist/catalog/catalog.service.d.ts +122 -31
  137. package/dist/catalog/catalog.service.js +177 -105
  138. package/dist/catalog/claude/agents.js +15 -10
  139. package/dist/catalog/claude/translate.js +3 -0
  140. package/dist/catalog/cli.d.ts +11 -1
  141. package/dist/catalog/cli.js +29 -1
  142. package/dist/catalog/component-promotion.d.ts +96 -0
  143. package/dist/catalog/component-promotion.js +395 -0
  144. package/dist/catalog/component-scope.controller.d.ts +102 -0
  145. package/dist/catalog/component-scope.controller.js +257 -0
  146. package/dist/catalog/component-scope.schemas.d.ts +118 -0
  147. package/dist/catalog/component-scope.schemas.js +97 -0
  148. package/dist/catalog/component-scope.service.d.ts +394 -0
  149. package/dist/catalog/component-scope.service.js +1133 -0
  150. package/dist/catalog/component-state.d.ts +207 -0
  151. package/dist/catalog/component-state.js +484 -0
  152. package/dist/catalog/git-source.d.ts +9 -1
  153. package/dist/catalog/git-source.js +29 -2
  154. package/dist/catalog/job-ids.d.ts +30 -0
  155. package/dist/catalog/job-ids.js +25 -0
  156. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  157. package/dist/catalog/marketplace-icons.d.ts +64 -0
  158. package/dist/catalog/marketplace-icons.js +131 -0
  159. package/dist/catalog/marketplaces.controller.d.ts +50 -41
  160. package/dist/catalog/marketplaces.controller.js +130 -46
  161. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  162. package/dist/catalog/marketplaces.schemas.js +53 -0
  163. package/dist/catalog/marketplaces.service.d.ts +110 -17
  164. package/dist/catalog/marketplaces.service.js +337 -29
  165. package/dist/catalog/org-catalog.controller.d.ts +114 -62
  166. package/dist/catalog/org-catalog.controller.js +191 -98
  167. package/dist/catalog/org-catalog.schemas.d.ts +104 -0
  168. package/dist/catalog/org-catalog.schemas.js +107 -0
  169. package/dist/catalog/org-catalog.service.d.ts +72 -33
  170. package/dist/catalog/org-catalog.service.js +367 -158
  171. package/dist/catalog/org-extension-switch.d.ts +41 -0
  172. package/dist/catalog/org-extension-switch.js +115 -0
  173. package/dist/catalog/org-extension.controller.d.ts +133 -0
  174. package/dist/catalog/org-extension.controller.js +313 -0
  175. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  176. package/dist/catalog/org-extension.schemas.js +22 -0
  177. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  178. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  179. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  180. package/dist/catalog/org-plugin-uploads.js +122 -0
  181. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  182. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  183. package/dist/catalog/owned-items.d.ts +188 -0
  184. package/dist/catalog/owned-items.js +808 -0
  185. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  186. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  187. package/dist/catalog/ownership.d.ts +172 -0
  188. package/dist/catalog/ownership.js +326 -0
  189. package/dist/catalog/platform-components.d.ts +243 -0
  190. package/dist/catalog/platform-components.js +872 -0
  191. package/dist/catalog/platform-migration.d.ts +115 -0
  192. package/dist/catalog/platform-migration.js +583 -0
  193. package/dist/catalog/plugin-import.d.ts +254 -47
  194. package/dist/catalog/plugin-import.js +810 -112
  195. package/dist/catalog/plugin-install.d.ts +205 -42
  196. package/dist/catalog/plugin-install.js +828 -126
  197. package/dist/catalog/plugin-package.d.ts +43 -4
  198. package/dist/catalog/plugin-package.js +194 -7
  199. package/dist/catalog/plugin-upgrade.d.ts +308 -225
  200. package/dist/catalog/plugin-upgrade.js +1325 -1131
  201. package/dist/catalog/request-rules.d.ts +65 -0
  202. package/dist/catalog/request-rules.js +217 -0
  203. package/dist/catalog/requests.service.d.ts +194 -118
  204. package/dist/catalog/requests.service.js +530 -343
  205. package/dist/catalog/reserved-names.d.ts +8 -0
  206. package/dist/catalog/reserved-names.js +42 -0
  207. package/dist/catalog/scope-orgs.d.ts +21 -0
  208. package/dist/catalog/scope-orgs.js +67 -0
  209. package/dist/catalog/scope-state.d.ts +35 -0
  210. package/dist/catalog/scope-state.js +87 -0
  211. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  212. package/dist/catalog/scope-sync-workers.js +29 -0
  213. package/dist/catalog/scope-sync.d.ts +176 -0
  214. package/dist/catalog/scope-sync.js +576 -0
  215. package/dist/catalog/scope.d.ts +42 -0
  216. package/dist/catalog/scope.js +42 -0
  217. package/dist/catalog/unshare.d.ts +22 -0
  218. package/dist/catalog/unshare.js +119 -0
  219. package/dist/channels/actions.js +10 -3
  220. package/dist/channels/cards.d.ts +36 -10
  221. package/dist/channels/cards.js +100 -25
  222. package/dist/channels/channels.module.js +13 -2
  223. package/dist/channels/channels.schemas.d.ts +41 -0
  224. package/dist/channels/channels.schemas.js +40 -0
  225. package/dist/channels/connections.controller.d.ts +46 -37
  226. package/dist/channels/connections.controller.js +76 -34
  227. package/dist/channels/connections.service.d.ts +102 -10
  228. package/dist/channels/connections.service.js +271 -24
  229. package/dist/channels/inbound.d.ts +11 -1
  230. package/dist/channels/inbound.js +87 -7
  231. package/dist/channels/outbound.d.ts +14 -1
  232. package/dist/channels/outbound.js +64 -15
  233. package/dist/channels/phrases.d.ts +33 -2
  234. package/dist/channels/phrases.js +29 -1
  235. package/dist/channels/supervisor.d.ts +2 -0
  236. package/dist/channels/supervisor.js +4 -0
  237. package/dist/channels/threads.d.ts +5 -0
  238. package/dist/channels/threads.js +8 -0
  239. package/dist/channels/webhook.d.ts +21 -1
  240. package/dist/channels/webhook.js +39 -4
  241. package/dist/client/client-access.service.d.ts +102 -0
  242. package/dist/client/client-access.service.js +303 -0
  243. package/dist/client/client-builds.service.d.ts +109 -0
  244. package/dist/client/client-builds.service.js +229 -0
  245. package/dist/client/client-delivery.controller.d.ts +25 -0
  246. package/dist/client/client-delivery.controller.js +66 -0
  247. package/dist/client/client-files.d.ts +48 -0
  248. package/dist/client/client-files.js +136 -0
  249. package/dist/client/client-reports.cron.d.ts +13 -0
  250. package/dist/client/client-reports.cron.js +42 -0
  251. package/dist/client/client-reports.service.d.ts +30 -0
  252. package/dist/client/client-reports.service.js +102 -0
  253. package/dist/client/client-sign-in.service.d.ts +21 -0
  254. package/dist/client/client-sign-in.service.js +49 -0
  255. package/dist/client/client.controller.d.ts +49 -0
  256. package/dist/client/client.controller.js +129 -0
  257. package/dist/client/client.module.d.ts +8 -0
  258. package/dist/client/client.module.js +28 -0
  259. package/dist/client/client.schemas.d.ts +61 -0
  260. package/dist/client/client.schemas.js +27 -0
  261. package/dist/config/docs.js +5 -1
  262. package/dist/config/schema.d.ts +35 -2
  263. package/dist/config/schema.js +216 -21
  264. package/dist/conversations/access.d.ts +6 -4
  265. package/dist/conversations/access.js +29 -5
  266. package/dist/conversations/agent-tree.d.ts +46 -0
  267. package/dist/conversations/agent-tree.js +92 -0
  268. package/dist/conversations/artifacts.d.ts +1 -1
  269. package/dist/conversations/artifacts.js +1 -1
  270. package/dist/conversations/attachments.service.d.ts +30 -0
  271. package/dist/conversations/attachments.service.js +130 -5
  272. package/dist/conversations/conversations.controller.d.ts +79 -44
  273. package/dist/conversations/conversations.controller.js +133 -82
  274. package/dist/conversations/conversations.module.d.ts +1 -1
  275. package/dist/conversations/conversations.module.js +10 -7
  276. package/dist/conversations/conversations.schemas.d.ts +52 -0
  277. package/dist/conversations/conversations.schemas.js +79 -0
  278. package/dist/conversations/conversations.service.d.ts +161 -13
  279. package/dist/conversations/conversations.service.js +329 -57
  280. package/dist/conversations/device-status.d.ts +24 -0
  281. package/dist/conversations/device-status.js +71 -0
  282. package/dist/conversations/event-log.d.ts +45 -9
  283. package/dist/conversations/event-log.js +113 -6
  284. package/dist/conversations/events.d.ts +255 -9
  285. package/dist/conversations/events.js +250 -34
  286. package/dist/conversations/message-context.d.ts +79 -0
  287. package/dist/conversations/message-context.js +145 -0
  288. package/dist/conversations/queue.d.ts +5 -2
  289. package/dist/conversations/queue.js +24 -4
  290. package/dist/conversations/queue.service.d.ts +2 -2
  291. package/dist/conversations/queue.service.js +21 -3
  292. package/dist/conversations/titles.d.ts +12 -3
  293. package/dist/conversations/titles.js +40 -16
  294. package/dist/conversations/tree.d.ts +17 -0
  295. package/dist/conversations/tree.js +42 -0
  296. package/dist/ctx/create-ctx.d.ts +48 -5
  297. package/dist/ctx/create-ctx.js +174 -34
  298. package/dist/db/kernel-schema.d.ts +668 -27
  299. package/dist/db/pool.d.ts +5 -0
  300. package/dist/db/pool.js +3 -0
  301. package/dist/devices/access.d.ts +66 -0
  302. package/dist/devices/access.js +113 -0
  303. package/dist/devices/conversation-devices.d.ts +75 -0
  304. package/dist/devices/conversation-devices.js +230 -0
  305. package/dist/devices/devices.controller.d.ts +36 -0
  306. package/dist/devices/devices.controller.js +124 -0
  307. package/dist/devices/devices.module.d.ts +8 -0
  308. package/dist/devices/devices.module.js +34 -0
  309. package/dist/devices/devices.schemas.d.ts +3 -0
  310. package/dist/devices/devices.schemas.js +14 -0
  311. package/dist/devices/devices.service.d.ts +251 -0
  312. package/dist/devices/devices.service.js +791 -0
  313. package/dist/devices/dto.d.ts +25 -0
  314. package/dist/devices/dto.js +12 -0
  315. package/dist/devices/label.d.ts +11 -0
  316. package/dist/devices/label.js +25 -0
  317. package/dist/devices/legacy-cleanup.job.d.ts +34 -0
  318. package/dist/devices/legacy-cleanup.job.js +141 -0
  319. package/dist/errors.d.ts +215 -3
  320. package/dist/errors.js +215 -3
  321. package/dist/evals/evals.module.js +11 -2
  322. package/dist/evals/evals.schemas.d.ts +110 -0
  323. package/dist/evals/evals.schemas.js +107 -0
  324. package/dist/evals/reconstruct.d.ts +18 -9
  325. package/dist/evals/reconstruct.js +36 -10
  326. package/dist/evals/recorded-tools.d.ts +37 -1
  327. package/dist/evals/recorded-tools.js +120 -10
  328. package/dist/evals/run-replay.d.ts +20 -3
  329. package/dist/evals/run-replay.js +78 -14
  330. package/dist/evals/runs.controller.d.ts +2 -57
  331. package/dist/evals/runs.controller.js +1 -42
  332. package/dist/evals/runs.service.d.ts +8 -7
  333. package/dist/evals/runs.service.js +45 -30
  334. package/dist/evals/sets.controller.d.ts +2 -28
  335. package/dist/evals/sets.controller.js +1 -31
  336. package/dist/evals/sets.service.d.ts +7 -7
  337. package/dist/evals/sets.service.js +23 -17
  338. package/dist/evals/snapshot.d.ts +3 -2
  339. package/dist/evals/snapshot.js +17 -4
  340. package/dist/evals/step-replay.d.ts +4 -6
  341. package/dist/evals/step-replay.js +16 -9
  342. package/dist/evals/trajectory.d.ts +5 -3
  343. package/dist/evals/trajectory.js +4 -1
  344. package/dist/evals/trajectory.service.d.ts +8 -3
  345. package/dist/evals/trajectory.service.js +26 -14
  346. package/dist/evals/worker.d.ts +5 -5
  347. package/dist/evals/worker.js +9 -3
  348. package/dist/extensions/admin-ops.d.ts +81 -14
  349. package/dist/extensions/admin-ops.js +181 -47
  350. package/dist/extensions/admin-view.d.ts +57 -10
  351. package/dist/extensions/admin-view.js +249 -27
  352. package/dist/extensions/approvals.d.ts +12 -2
  353. package/dist/extensions/blobs.d.ts +14 -1
  354. package/dist/extensions/blobs.js +49 -5
  355. package/dist/extensions/bootstrap.d.ts +41 -5
  356. package/dist/extensions/bootstrap.js +121 -19
  357. package/dist/extensions/cli.d.ts +12 -0
  358. package/dist/extensions/cli.js +11 -2
  359. package/dist/extensions/config-hash.d.ts +10 -0
  360. package/dist/extensions/config-hash.js +38 -0
  361. package/dist/extensions/config-issues.d.ts +13 -1
  362. package/dist/extensions/config-issues.js +22 -5
  363. package/dist/extensions/config-json-schema.d.ts +43 -7
  364. package/dist/extensions/config-json-schema.js +124 -58
  365. package/dist/extensions/deployment-config-store.d.ts +6 -0
  366. package/dist/extensions/deployment-config.d.ts +94 -9
  367. package/dist/extensions/deployment-config.js +255 -34
  368. package/dist/extensions/display-name.d.ts +22 -0
  369. package/dist/extensions/display-name.js +77 -0
  370. package/dist/extensions/effective-config.d.ts +133 -0
  371. package/dist/extensions/effective-config.js +379 -0
  372. package/dist/extensions/extensions.module.js +31 -12
  373. package/dist/extensions/guide-places.d.ts +68 -0
  374. package/dist/extensions/guide-places.js +152 -0
  375. package/dist/extensions/hooks.d.ts +37 -4
  376. package/dist/extensions/hooks.js +82 -16
  377. package/dist/extensions/host.d.ts +105 -12
  378. package/dist/extensions/host.js +372 -87
  379. package/dist/extensions/installs.d.ts +30 -9
  380. package/dist/extensions/installs.js +57 -16
  381. package/dist/extensions/instance.d.ts +17 -2
  382. package/dist/extensions/instance.js +21 -0
  383. package/dist/extensions/ledger.d.ts +1 -1
  384. package/dist/extensions/locks.d.ts +12 -0
  385. package/dist/extensions/locks.js +26 -0
  386. package/dist/extensions/org-config.d.ts +97 -7
  387. package/dist/extensions/org-config.js +215 -45
  388. package/dist/extensions/org-levels.d.ts +37 -0
  389. package/dist/extensions/org-levels.js +71 -0
  390. package/dist/extensions/org-overrides.d.ts +151 -0
  391. package/dist/extensions/org-overrides.js +524 -0
  392. package/dist/extensions/package.d.ts +18 -4
  393. package/dist/extensions/package.js +56 -3
  394. package/dist/extensions/permission-set.d.ts +35 -5
  395. package/dist/extensions/permission-set.js +36 -5
  396. package/dist/extensions/permission-view.d.ts +106 -13
  397. package/dist/extensions/permission-view.js +33 -15
  398. package/dist/extensions/plugin-guides.d.ts +282 -0
  399. package/dist/extensions/plugin-guides.js +554 -0
  400. package/dist/extensions/plugin-icons.d.ts +54 -0
  401. package/dist/extensions/plugin-icons.js +125 -0
  402. package/dist/extensions/plugin-items.d.ts +21 -0
  403. package/dist/extensions/plugin-items.js +42 -0
  404. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  405. package/dist/extensions/point-defaults.controller.js +69 -0
  406. package/dist/extensions/point-defaults.d.ts +73 -0
  407. package/dist/extensions/point-defaults.js +236 -0
  408. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  409. package/dist/extensions/point-defaults.schemas.js +14 -0
  410. package/dist/extensions/registry.d.ts +1 -1
  411. package/dist/extensions/registry.js +2 -0
  412. package/dist/extensions/resolve.d.ts +51 -1
  413. package/dist/extensions/resolve.js +85 -3
  414. package/dist/extensions/single-provider.d.ts +92 -0
  415. package/dist/extensions/single-provider.js +180 -0
  416. package/dist/extensions/sources.d.ts +13 -2
  417. package/dist/extensions/sources.js +2 -0
  418. package/dist/extensions/state.module.d.ts +9 -0
  419. package/dist/extensions/state.module.js +46 -0
  420. package/dist/extensions/unavailable.d.ts +50 -0
  421. package/dist/extensions/unavailable.js +115 -0
  422. package/dist/files/previewers.controller.js +2 -3
  423. package/dist/files/previewers.d.ts +10 -3
  424. package/dist/files/previewers.js +40 -11
  425. package/dist/files/previewers.schemas.d.ts +10 -0
  426. package/dist/files/previewers.schemas.js +9 -0
  427. package/dist/http/api.module.js +76 -4
  428. package/dist/http/app.d.ts +11 -2
  429. package/dist/http/app.js +31 -5
  430. package/dist/http/gateway-routes.d.ts +7 -3
  431. package/dist/http/gateway-routes.js +6 -3
  432. package/dist/http/nest-logger.d.ts +6 -5
  433. package/dist/http/nest-logger.js +24 -10
  434. package/dist/http/plugin-dispatch.d.ts +4 -1
  435. package/dist/http/plugin-dispatch.js +14 -2
  436. package/dist/identity/accounts.d.ts +77 -31
  437. package/dist/identity/accounts.js +133 -52
  438. package/dist/identity/audit.d.ts +2 -1
  439. package/dist/identity/auth.controller.js +9 -5
  440. package/dist/identity/auth.guard.d.ts +13 -5
  441. package/dist/identity/auth.guard.js +35 -9
  442. package/dist/identity/cookies.d.ts +26 -5
  443. package/dist/identity/cookies.js +58 -6
  444. package/dist/identity/identity.module.d.ts +1 -1
  445. package/dist/identity/identity.module.js +7 -4
  446. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  447. package/dist/identity/initial-passwords.controller.js +49 -0
  448. package/dist/identity/initial-passwords.d.ts +61 -0
  449. package/dist/identity/initial-passwords.job.d.ts +16 -0
  450. package/dist/identity/initial-passwords.job.js +46 -0
  451. package/dist/identity/initial-passwords.js +159 -0
  452. package/dist/identity/me.controller.d.ts +17 -1
  453. package/dist/identity/me.controller.js +45 -4
  454. package/dist/identity/me.schemas.d.ts +24 -0
  455. package/dist/identity/me.schemas.js +25 -0
  456. package/dist/identity/principal.d.ts +11 -3
  457. package/dist/identity/principal.js +11 -3
  458. package/dist/identity/sessions.d.ts +12 -0
  459. package/dist/identity/sessions.js +45 -0
  460. package/dist/identity/settings.d.ts +99 -12
  461. package/dist/identity/settings.js +234 -25
  462. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  463. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  464. package/dist/identity/write-actor.d.ts +11 -0
  465. package/dist/identity/write-actor.js +7 -0
  466. package/dist/inbox/inbox.module.d.ts +4 -1
  467. package/dist/inbox/inbox.module.js +7 -3
  468. package/dist/inbox/inbox.schemas.d.ts +8 -0
  469. package/dist/inbox/inbox.schemas.js +11 -0
  470. package/dist/inbox/inbox.service.d.ts +64 -4
  471. package/dist/inbox/inbox.service.js +74 -4
  472. package/dist/inbox/org-notices.d.ts +63 -0
  473. package/dist/inbox/org-notices.js +91 -0
  474. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  475. package/dist/inbox/platform-inbox.controller.js +58 -0
  476. package/dist/inbox/platform-inbox.service.d.ts +157 -0
  477. package/dist/inbox/platform-inbox.service.js +281 -0
  478. package/dist/inbox/platform-notices.d.ts +19 -0
  479. package/dist/inbox/platform-notices.js +9 -0
  480. package/dist/index.d.ts +6 -2
  481. package/dist/index.js +7 -1
  482. package/dist/infra/cli/kernel-cli.module.js +9 -1
  483. package/dist/infra/config/kernel-config.service.js +32 -1
  484. package/dist/infra/database/database.module.js +1 -0
  485. package/dist/infra/database/xact-lock.d.ts +1 -1
  486. package/dist/infra/database/xact-lock.js +1 -1
  487. package/dist/infra/events/kernel-events.d.ts +31 -3
  488. package/dist/infra/lifecycle/process-guards.js +4 -0
  489. package/dist/infra/lock/lock.service.d.ts +8 -0
  490. package/dist/infra/lock/lock.service.js +27 -0
  491. package/dist/infra/logging/logging.module.d.ts +4 -2
  492. package/dist/infra/logging/logging.module.js +24 -6
  493. package/dist/infra/presence/presence.module.d.ts +6 -0
  494. package/dist/infra/presence/presence.module.js +22 -0
  495. package/dist/infra/presence/replica-presence.d.ts +87 -0
  496. package/dist/infra/presence/replica-presence.js +189 -0
  497. package/dist/infra/queue/add-job-once.d.ts +14 -0
  498. package/dist/infra/queue/add-job-once.js +16 -0
  499. package/dist/infra/queue/redis-connection.d.ts +6 -0
  500. package/dist/infra/queue/redis-connection.js +7 -0
  501. package/dist/infra/redis/redis.module.js +6 -2
  502. package/dist/infra/throttler/named-throttlers.d.ts +12 -0
  503. package/dist/infra/throttler/named-throttlers.js +67 -0
  504. package/dist/infra/throttler/throttler.guard.js +1 -1
  505. package/dist/infra/tokens.d.ts +6 -1
  506. package/dist/infra/tokens.js +6 -1
  507. package/dist/kernel.module.js +15 -0
  508. package/dist/lifecycle/kernel-lifecycle.d.ts +4 -2
  509. package/dist/lifecycle/kernel-lifecycle.js +35 -7
  510. package/dist/local-devices/device-auth.controller.d.ts +42 -0
  511. package/dist/local-devices/device-auth.controller.js +116 -0
  512. package/dist/local-devices/device-auth.d.ts +119 -0
  513. package/dist/local-devices/device-auth.js +401 -0
  514. package/dist/local-devices/device-auth.module.d.ts +7 -0
  515. package/dist/local-devices/device-auth.module.js +25 -0
  516. package/dist/local-devices/device-routes.d.ts +36 -0
  517. package/dist/local-devices/device-routes.js +90 -0
  518. package/dist/local-devices/dto.d.ts +66 -0
  519. package/dist/local-devices/dto.js +44 -0
  520. package/dist/local-devices/keys.d.ts +25 -0
  521. package/dist/local-devices/keys.js +25 -0
  522. package/dist/local-devices/local-device-gateway.d.ts +134 -0
  523. package/dist/local-devices/local-device-gateway.js +542 -0
  524. package/dist/local-devices/local-device-provider.d.ts +89 -0
  525. package/dist/local-devices/local-device-provider.js +151 -0
  526. package/dist/local-devices/local-devices.module.d.ts +16 -0
  527. package/dist/local-devices/local-devices.module.js +44 -0
  528. package/dist/local-devices/machines.d.ts +118 -0
  529. package/dist/local-devices/machines.js +366 -0
  530. package/dist/local-devices/relay.d.ts +100 -0
  531. package/dist/local-devices/relay.js +373 -0
  532. package/dist/local-devices/targets.d.ts +28 -0
  533. package/dist/local-devices/targets.js +73 -0
  534. package/dist/log.d.ts +13 -1
  535. package/dist/log.js +93 -17
  536. package/dist/models/embeddings.d.ts +82 -0
  537. package/dist/models/embeddings.js +326 -0
  538. package/dist/models/enablement.controller.d.ts +40 -0
  539. package/dist/models/enablement.controller.js +74 -0
  540. package/dist/models/enablement.d.ts +101 -0
  541. package/dist/models/enablement.js +264 -0
  542. package/dist/models/models.module.d.ts +5 -1
  543. package/dist/models/models.module.js +16 -4
  544. package/dist/models/org-models.schemas.d.ts +8 -0
  545. package/dist/models/org-models.schemas.js +22 -0
  546. package/dist/models/prices.d.ts +8 -6
  547. package/dist/models/prices.js +11 -9
  548. package/dist/models/purposes.controller.d.ts +6 -4
  549. package/dist/models/purposes.controller.js +13 -7
  550. package/dist/models/purposes.d.ts +72 -14
  551. package/dist/models/purposes.js +115 -34
  552. package/dist/orgs/directory-sync.d.ts +14 -5
  553. package/dist/orgs/directory-sync.js +41 -17
  554. package/dist/orgs/offboarding.d.ts +12 -8
  555. package/dist/orgs/offboarding.js +54 -33
  556. package/dist/orgs/org-lock.d.ts +5 -0
  557. package/dist/orgs/org-lock.js +13 -0
  558. package/dist/orgs/org.guard.d.ts +10 -0
  559. package/dist/orgs/org.guard.js +43 -32
  560. package/dist/orgs/orgs.controller.d.ts +2 -5
  561. package/dist/orgs/orgs.controller.js +3 -6
  562. package/dist/orgs/orgs.module.js +3 -0
  563. package/dist/orgs/orgs.schemas.d.ts +8 -0
  564. package/dist/orgs/orgs.schemas.js +16 -0
  565. package/dist/orgs/orgs.service.d.ts +23 -8
  566. package/dist/orgs/orgs.service.js +38 -16
  567. package/dist/orgs/roles.d.ts +1 -1
  568. package/dist/orgs/roles.js +5 -1
  569. package/dist/orgs/settings.controller.d.ts +1 -1
  570. package/dist/orgs/settings.service.d.ts +66 -6
  571. package/dist/orgs/settings.service.js +89 -10
  572. package/dist/overrides.d.ts +16 -1
  573. package/dist/overrides.js +10 -0
  574. package/dist/platform/actor.d.ts +48 -0
  575. package/dist/platform/actor.js +100 -0
  576. package/dist/platform/agent-docs.d.ts +18 -0
  577. package/dist/platform/agent-docs.js +59 -0
  578. package/dist/platform/availability.d.ts +14 -0
  579. package/dist/platform/availability.js +43 -0
  580. package/dist/platform/errors.d.ts +28 -0
  581. package/dist/platform/errors.js +65 -0
  582. package/dist/platform/exclusions.d.ts +11 -0
  583. package/dist/platform/exclusions.js +774 -0
  584. package/dist/platform/method.d.ts +6 -0
  585. package/dist/platform/method.js +15 -0
  586. package/dist/platform/operation.d.ts +169 -0
  587. package/dist/platform/operation.js +102 -0
  588. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  589. package/dist/platform/ops/accounts.ops.js +291 -0
  590. package/dist/platform/ops/admin-items.ops.d.ts +37 -0
  591. package/dist/platform/ops/admin-items.ops.js +278 -0
  592. package/dist/platform/ops/admin.ops.d.ts +38 -0
  593. package/dist/platform/ops/admin.ops.js +497 -0
  594. package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
  595. package/dist/platform/ops/agent-skills.ops.js +509 -0
  596. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  597. package/dist/platform/ops/agent-templates.ops.js +272 -0
  598. package/dist/platform/ops/agents.ops.d.ts +37 -0
  599. package/dist/platform/ops/agents.ops.js +730 -0
  600. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  601. package/dist/platform/ops/approvals.ops.js +116 -0
  602. package/dist/platform/ops/background.ops.d.ts +14 -0
  603. package/dist/platform/ops/background.ops.js +134 -0
  604. package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
  605. package/dist/platform/ops/catalog-admin.ops.js +682 -0
  606. package/dist/platform/ops/channels.ops.d.ts +16 -0
  607. package/dist/platform/ops/channels.ops.js +195 -0
  608. package/dist/platform/ops/components.ops.d.ts +46 -0
  609. package/dist/platform/ops/components.ops.js +854 -0
  610. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  611. package/dist/platform/ops/connectors.ops.js +190 -0
  612. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  613. package/dist/platform/ops/conversations.ops.js +470 -0
  614. package/dist/platform/ops/devices.ops.d.ts +26 -0
  615. package/dist/platform/ops/devices.ops.js +311 -0
  616. package/dist/platform/ops/errors.d.ts +16 -0
  617. package/dist/platform/ops/errors.js +30 -0
  618. package/dist/platform/ops/evals.ops.d.ts +28 -0
  619. package/dist/platform/ops/evals.ops.js +783 -0
  620. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  621. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  622. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  623. package/dist/platform/ops/extensions.ops.js +347 -0
  624. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  625. package/dist/platform/ops/inbox.ops.js +381 -0
  626. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  627. package/dist/platform/ops/marketplaces.ops.js +466 -0
  628. package/dist/platform/ops/models.ops.d.ts +25 -0
  629. package/dist/platform/ops/models.ops.js +232 -0
  630. package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
  631. package/dist/platform/ops/org-plugins.ops.js +388 -0
  632. package/dist/platform/ops/org-settings.ops.d.ts +18 -0
  633. package/dist/platform/ops/org-settings.ops.js +127 -0
  634. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  635. package/dist/platform/ops/orgs.ops.js +298 -0
  636. package/dist/platform/ops/other-orgs.d.ts +20 -0
  637. package/dist/platform/ops/other-orgs.js +72 -0
  638. package/dist/platform/ops/paging.d.ts +14 -0
  639. package/dist/platform/ops/paging.js +20 -0
  640. package/dist/platform/ops/platform.ops.d.ts +30 -0
  641. package/dist/platform/ops/platform.ops.js +231 -0
  642. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  643. package/dist/platform/ops/plugins.ops.js +476 -0
  644. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  645. package/dist/platform/ops/previewers.ops.js +109 -0
  646. package/dist/platform/ops/requests.ops.d.ts +14 -0
  647. package/dist/platform/ops/requests.ops.js +191 -0
  648. package/dist/platform/ops/role.d.ts +4 -0
  649. package/dist/platform/ops/role.js +10 -0
  650. package/dist/platform/ops/setup.ops.d.ts +24 -0
  651. package/dist/platform/ops/setup.ops.js +212 -0
  652. package/dist/platform/ops/skills.ops.d.ts +17 -0
  653. package/dist/platform/ops/skills.ops.js +160 -0
  654. package/dist/platform/ops/summary.d.ts +10 -0
  655. package/dist/platform/ops/summary.js +18 -0
  656. package/dist/platform/ops/themes.ops.d.ts +14 -0
  657. package/dist/platform/ops/themes.ops.js +47 -0
  658. package/dist/platform/ops/ui.ops.d.ts +8 -0
  659. package/dist/platform/ops/ui.ops.js +41 -0
  660. package/dist/platform/ops/unavailable.d.ts +23 -0
  661. package/dist/platform/ops/unavailable.js +118 -0
  662. package/dist/platform/parity.d.ts +33 -0
  663. package/dist/platform/parity.js +272 -0
  664. package/dist/platform/platform-ops.module.d.ts +43 -0
  665. package/dist/platform/platform-ops.module.js +142 -0
  666. package/dist/platform/platform.module.d.ts +8 -0
  667. package/dist/platform/platform.module.js +25 -0
  668. package/dist/platform/registry.d.ts +30 -0
  669. package/dist/platform/registry.js +111 -0
  670. package/dist/platform/route-schemas.d.ts +18 -0
  671. package/dist/platform/route-schemas.js +85 -0
  672. package/dist/roles/gateway-role.d.ts +18 -3
  673. package/dist/roles/gateway-role.js +33 -5
  674. package/dist/roles/gateway.module.d.ts +2 -1
  675. package/dist/roles/gateway.module.js +6 -3
  676. package/dist/roles/worker-role.d.ts +6 -4
  677. package/dist/roles/worker-role.js +14 -7
  678. package/dist/roles/worker.module.d.ts +1 -1
  679. package/dist/roles/worker.module.js +21 -1
  680. package/dist/runtime/context/build.d.ts +21 -13
  681. package/dist/runtime/context/build.js +106 -29
  682. package/dist/runtime/context/claude-tools.d.ts +4 -1
  683. package/dist/runtime/context/claude-tools.js +13 -12
  684. package/dist/runtime/context/compaction.js +24 -1
  685. package/dist/runtime/context/device-paths.d.ts +40 -0
  686. package/dist/runtime/context/device-paths.js +48 -0
  687. package/dist/runtime/context/legacy-text.d.ts +22 -0
  688. package/dist/runtime/context/legacy-text.js +37 -0
  689. package/dist/runtime/context/reminders.d.ts +2 -0
  690. package/dist/runtime/context/reminders.js +2 -0
  691. package/dist/runtime/context/run-context.d.ts +65 -0
  692. package/dist/runtime/context/run-context.js +215 -0
  693. package/dist/runtime/context/skills.d.ts +29 -11
  694. package/dist/runtime/context/skills.js +46 -32
  695. package/dist/runtime/context/tool-changes.d.ts +27 -0
  696. package/dist/runtime/context/tool-changes.js +60 -0
  697. package/dist/runtime/hook-calls.d.ts +8 -1
  698. package/dist/runtime/hook-calls.js +40 -7
  699. package/dist/runtime/langgraph-loop.d.ts +3 -1
  700. package/dist/runtime/langgraph-loop.js +36 -17
  701. package/dist/runtime/loop.d.ts +35 -6
  702. package/dist/runtime/maintenance.d.ts +9 -4
  703. package/dist/runtime/maintenance.js +35 -8
  704. package/dist/runtime/model-call.d.ts +54 -11
  705. package/dist/runtime/model-call.js +105 -28
  706. package/dist/runtime/providers.d.ts +149 -29
  707. package/dist/runtime/providers.js +332 -63
  708. package/dist/runtime/run-context.service.d.ts +65 -0
  709. package/dist/runtime/run-context.service.js +236 -0
  710. package/dist/runtime/run-control.d.ts +11 -1
  711. package/dist/runtime/run-control.js +12 -0
  712. package/dist/runtime/run-drafts.d.ts +85 -0
  713. package/dist/runtime/run-drafts.js +230 -0
  714. package/dist/runtime/run-finish.d.ts +1 -1
  715. package/dist/runtime/run-jobs.d.ts +3 -5
  716. package/dist/runtime/run-jobs.js +7 -9
  717. package/dist/runtime/run-queue.d.ts +62 -5
  718. package/dist/runtime/run-queue.js +313 -40
  719. package/dist/runtime/run-worker.d.ts +19 -8
  720. package/dist/runtime/run-worker.js +105 -44
  721. package/dist/runtime/runtime.module.js +13 -3
  722. package/dist/runtime/step-log.d.ts +15 -4
  723. package/dist/runtime/step-log.js +24 -7
  724. package/dist/runtime/stream.controller.d.ts +23 -1
  725. package/dist/runtime/stream.controller.js +60 -3
  726. package/dist/runtime/stream.d.ts +4 -1
  727. package/dist/runtime/stream.js +27 -3
  728. package/dist/runtime/subagents/child.d.ts +55 -7
  729. package/dist/runtime/subagents/child.js +105 -7
  730. package/dist/runtime/subagents/definition.d.ts +31 -26
  731. package/dist/runtime/subagents/definition.js +89 -142
  732. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  733. package/dist/runtime/subagents/deliveries.js +228 -0
  734. package/dist/runtime/subagents/dispatch.d.ts +116 -27
  735. package/dist/runtime/subagents/dispatch.js +213 -142
  736. package/dist/runtime/subagents/limits.d.ts +24 -5
  737. package/dist/runtime/subagents/limits.js +40 -6
  738. package/dist/runtime/subagents/messages.d.ts +95 -0
  739. package/dist/runtime/subagents/messages.js +328 -0
  740. package/dist/runtime/subagents/org-agents.js +2 -1
  741. package/dist/runtime/subagents/preamble.d.ts +4 -4
  742. package/dist/runtime/subagents/preamble.js +9 -7
  743. package/dist/runtime/subagents/progress.d.ts +8 -6
  744. package/dist/runtime/subagents/progress.js +11 -6
  745. package/dist/runtime/subagents/render.d.ts +30 -0
  746. package/dist/runtime/subagents/render.js +53 -0
  747. package/dist/runtime/subagents/roster.d.ts +25 -8
  748. package/dist/runtime/subagents/roster.js +48 -12
  749. package/dist/runtime/subagents/skill-fork.d.ts +4 -3
  750. package/dist/runtime/subagents/skill-fork.js +9 -5
  751. package/dist/runtime/subagents/status.d.ts +14 -0
  752. package/dist/runtime/subagents/status.js +23 -0
  753. package/dist/runtime/subagents/subagents.service.d.ts +9 -6
  754. package/dist/runtime/subagents/subagents.service.js +13 -8
  755. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  756. package/dist/runtime/usage-report-jobs.js +158 -0
  757. package/dist/runtime/usage-report.d.ts +35 -39
  758. package/dist/runtime/usage-report.js +171 -97
  759. package/dist/runtime/waits.d.ts +148 -39
  760. package/dist/runtime/waits.js +426 -112
  761. package/dist/sandbox/jobs.d.ts +40 -13
  762. package/dist/sandbox/jobs.js +57 -20
  763. package/dist/sandbox/leases.d.ts +37 -54
  764. package/dist/sandbox/leases.js +71 -115
  765. package/dist/sandbox/providers.d.ts +34 -7
  766. package/dist/sandbox/providers.js +54 -9
  767. package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
  768. package/dist/sandbox/sandbox-file-reader.js +98 -0
  769. package/dist/sandbox/sandbox.module.d.ts +3 -2
  770. package/dist/sandbox/sandbox.module.js +10 -4
  771. package/dist/sandbox/sandbox.service.d.ts +345 -132
  772. package/dist/sandbox/sandbox.service.js +883 -399
  773. package/dist/sandbox/unreachable.d.ts +30 -0
  774. package/dist/sandbox/unreachable.js +108 -0
  775. package/dist/setup/kernel-checks.d.ts +91 -0
  776. package/dist/setup/kernel-checks.js +295 -0
  777. package/dist/setup/oauth-token-probe.d.ts +47 -0
  778. package/dist/setup/oauth-token-probe.js +108 -0
  779. package/dist/setup/redact-check.d.ts +18 -0
  780. package/dist/setup/redact-check.js +46 -0
  781. package/dist/setup/setup-check-registry.d.ts +86 -0
  782. package/dist/setup/setup-check-registry.js +75 -0
  783. package/dist/setup/setup-checks.controller.d.ts +28 -0
  784. package/dist/setup/setup-checks.controller.js +78 -0
  785. package/dist/setup/setup-checks.schemas.d.ts +38 -0
  786. package/dist/setup/setup-checks.schemas.js +43 -0
  787. package/dist/setup/setup-checks.service.d.ts +144 -0
  788. package/dist/setup/setup-checks.service.js +683 -0
  789. package/dist/setup/setup-guides.controller.d.ts +18 -0
  790. package/dist/setup/setup-guides.controller.js +48 -0
  791. package/dist/setup/setup-guides.schemas.d.ts +10 -0
  792. package/dist/setup/setup-guides.schemas.js +6 -0
  793. package/dist/setup/setup-guides.service.d.ts +126 -0
  794. package/dist/setup/setup-guides.service.js +315 -0
  795. package/dist/setup/setup.module.d.ts +8 -0
  796. package/dist/setup/setup.module.js +31 -0
  797. package/dist/skills/agent-skills.controller.d.ts +48 -0
  798. package/dist/skills/agent-skills.controller.js +131 -0
  799. package/dist/skills/agent-skills.service.d.ts +262 -0
  800. package/dist/skills/agent-skills.service.js +996 -0
  801. package/dist/skills/catalog.d.ts +14 -11
  802. package/dist/skills/catalog.js +32 -50
  803. package/dist/skills/changes.controller.d.ts +12 -22
  804. package/dist/skills/changes.controller.js +27 -56
  805. package/dist/skills/changes.service.d.ts +69 -115
  806. package/dist/skills/changes.service.js +249 -598
  807. package/dist/skills/conversation-catalog.d.ts +53 -0
  808. package/dist/skills/conversation-catalog.js +149 -0
  809. package/dist/skills/invocable.controller.d.ts +1 -1
  810. package/dist/skills/invocable.controller.js +2 -2
  811. package/dist/skills/invocation-keys.d.ts +1 -1
  812. package/dist/skills/invocation-keys.js +1 -1
  813. package/dist/skills/invoke.d.ts +3 -3
  814. package/dist/skills/invoke.js +21 -8
  815. package/dist/skills/package.d.ts +15 -1
  816. package/dist/skills/package.js +14 -1
  817. package/dist/skills/skills.controller.d.ts +32 -6
  818. package/dist/skills/skills.controller.js +64 -11
  819. package/dist/skills/skills.module.js +25 -3
  820. package/dist/skills/skills.schemas.d.ts +44 -0
  821. package/dist/skills/skills.schemas.js +68 -0
  822. package/dist/skills/skills.service.d.ts +123 -26
  823. package/dist/skills/skills.service.js +493 -76
  824. package/dist/skills/usable.d.ts +82 -0
  825. package/dist/skills/usable.js +388 -0
  826. package/dist/themes/render-css.d.ts +13 -0
  827. package/dist/themes/render-css.js +135 -0
  828. package/dist/themes/theme-delivery.service.d.ts +36 -0
  829. package/dist/themes/theme-delivery.service.js +116 -0
  830. package/dist/themes/theme-state.d.ts +116 -0
  831. package/dist/themes/theme-state.js +221 -0
  832. package/dist/themes/theme-usage.d.ts +61 -0
  833. package/dist/themes/theme-usage.js +98 -0
  834. package/dist/themes/themes-public.controller.d.ts +33 -0
  835. package/dist/themes/themes-public.controller.js +98 -0
  836. package/dist/themes/themes.controller.d.ts +13 -0
  837. package/dist/themes/themes.controller.js +38 -0
  838. package/dist/themes/themes.module.d.ts +3 -0
  839. package/dist/themes/themes.module.js +21 -0
  840. package/dist/themes/themes.schemas.d.ts +3 -0
  841. package/dist/themes/themes.schemas.js +2 -0
  842. package/dist/themes/themes.service.d.ts +50 -0
  843. package/dist/themes/themes.service.js +99 -0
  844. package/dist/time-zone.d.ts +5 -0
  845. package/dist/time-zone.js +19 -0
  846. package/dist/tools/admin-connectors.d.ts +69 -0
  847. package/dist/tools/admin-connectors.js +135 -0
  848. package/dist/tools/approvals.controller.js +2 -3
  849. package/dist/tools/approvals.schemas.d.ts +21 -0
  850. package/dist/tools/approvals.schemas.js +15 -0
  851. package/dist/tools/approvals.service.d.ts +26 -2
  852. package/dist/tools/approvals.service.js +44 -5
  853. package/dist/tools/builtin-names.d.ts +104 -0
  854. package/dist/tools/builtin-names.js +164 -0
  855. package/dist/tools/builtins/agent.d.ts +27 -25
  856. package/dist/tools/builtins/agent.js +66 -63
  857. package/dist/tools/builtins/ask-user.d.ts +1 -1
  858. package/dist/tools/builtins/ask-user.js +5 -4
  859. package/dist/tools/builtins/builtin-tools.d.ts +23 -4
  860. package/dist/tools/builtins/builtin-tools.js +78 -12
  861. package/dist/tools/builtins/current-time.d.ts +26 -0
  862. package/dist/tools/builtins/current-time.js +99 -0
  863. package/dist/tools/builtins/handback.d.ts +28 -0
  864. package/dist/tools/builtins/handback.js +53 -0
  865. package/dist/tools/builtins/platform.d.ts +51 -0
  866. package/dist/tools/builtins/platform.js +451 -0
  867. package/dist/tools/builtins/read-tool-output.d.ts +1 -1
  868. package/dist/tools/builtins/read-tool-output.js +2 -2
  869. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  870. package/dist/tools/builtins/sandbox/bash.js +291 -39
  871. package/dist/tools/builtins/sandbox/common.d.ts +135 -36
  872. package/dist/tools/builtins/sandbox/common.js +222 -62
  873. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  874. package/dist/tools/builtins/sandbox/deliver.js +19 -16
  875. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  876. package/dist/tools/builtins/sandbox/edit.js +64 -50
  877. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  878. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  879. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  880. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  881. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  882. package/dist/tools/builtins/sandbox/glob.js +17 -12
  883. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  884. package/dist/tools/builtins/sandbox/grep.js +153 -34
  885. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  886. package/dist/tools/builtins/sandbox/index.js +13 -5
  887. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  888. package/dist/tools/builtins/sandbox/read.js +29 -19
  889. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  890. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  891. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  892. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  893. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  894. package/dist/tools/builtins/sandbox/write.js +51 -44
  895. package/dist/tools/builtins/send-message.d.ts +56 -0
  896. package/dist/tools/builtins/send-message.js +100 -0
  897. package/dist/tools/builtins/skill-load.d.ts +29 -18
  898. package/dist/tools/builtins/skill-load.js +125 -73
  899. package/dist/tools/builtins/tool-search.d.ts +13 -9
  900. package/dist/tools/builtins/tool-search.js +25 -14
  901. package/dist/tools/builtins/web/errors.d.ts +8 -0
  902. package/dist/tools/builtins/web/errors.js +53 -0
  903. package/dist/tools/builtins/web/extract.d.ts +62 -0
  904. package/dist/tools/builtins/web/extract.js +271 -0
  905. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  906. package/dist/tools/builtins/web/fetch.js +175 -0
  907. package/dist/tools/builtins/web/index.d.ts +13 -0
  908. package/dist/tools/builtins/web/index.js +12 -0
  909. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  910. package/dist/tools/builtins/web/page-cache.js +77 -0
  911. package/dist/tools/builtins/web/search.d.ts +25 -0
  912. package/dist/tools/builtins/web/search.js +210 -0
  913. package/dist/tools/builtins/web/url.d.ts +17 -0
  914. package/dist/tools/builtins/web/url.js +43 -0
  915. package/dist/tools/connector-account-policies.d.ts +51 -0
  916. package/dist/tools/connector-account-policies.js +165 -0
  917. package/dist/tools/connectors.controller.d.ts +74 -9
  918. package/dist/tools/connectors.controller.js +133 -16
  919. package/dist/tools/connectors.schemas.d.ts +27 -0
  920. package/dist/tools/connectors.schemas.js +34 -0
  921. package/dist/tools/connectors.service.d.ts +101 -8
  922. package/dist/tools/connectors.service.js +266 -28
  923. package/dist/tools/credentials.d.ts +23 -0
  924. package/dist/tools/credentials.js +90 -1
  925. package/dist/tools/display-names.d.ts +9 -0
  926. package/dist/tools/display-names.js +24 -0
  927. package/dist/tools/drift.js +5 -5
  928. package/dist/tools/elicitation.js +1 -1
  929. package/dist/tools/extension-tools.controller.d.ts +14 -0
  930. package/dist/tools/extension-tools.controller.js +37 -0
  931. package/dist/tools/info.d.ts +61 -4
  932. package/dist/tools/info.js +119 -33
  933. package/dist/tools/legacy-data.d.ts +34 -0
  934. package/dist/tools/legacy-data.js +76 -0
  935. package/dist/tools/legacy-keys.d.ts +51 -0
  936. package/dist/tools/legacy-keys.js +114 -0
  937. package/dist/tools/naming.d.ts +1 -5
  938. package/dist/tools/naming.js +1 -7
  939. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  940. package/dist/tools/oauth/flow-paths.js +1 -1
  941. package/dist/tools/oauth/flow.js +1 -1
  942. package/dist/tools/oauth/tokens.d.ts +54 -7
  943. package/dist/tools/oauth/tokens.js +87 -17
  944. package/dist/tools/org-tool-switches.d.ts +89 -0
  945. package/dist/tools/org-tool-switches.js +201 -0
  946. package/dist/tools/outputs.js +1 -1
  947. package/dist/tools/pipeline.d.ts +67 -47
  948. package/dist/tools/pipeline.js +319 -380
  949. package/dist/tools/policy.d.ts +30 -23
  950. package/dist/tools/policy.js +142 -64
  951. package/dist/tools/questions.controller.d.ts +1 -1
  952. package/dist/tools/questions.controller.js +1 -1
  953. package/dist/tools/questions.service.d.ts +23 -2
  954. package/dist/tools/questions.service.js +104 -2
  955. package/dist/tools/registry.d.ts +189 -68
  956. package/dist/tools/registry.js +318 -236
  957. package/dist/tools/resources.d.ts +1 -1
  958. package/dist/tools/resources.js +1 -1
  959. package/dist/tools/tools.module.js +31 -3
  960. package/dist/tools/validate.js +1 -1
  961. package/dist/ui/admin-ui.controller.d.ts +56 -0
  962. package/dist/ui/admin-ui.controller.js +192 -0
  963. package/dist/ui/arrangement.d.ts +65 -0
  964. package/dist/ui/arrangement.js +171 -0
  965. package/dist/ui/embed-token.d.ts +2 -2
  966. package/dist/ui/embed-token.js +30 -5
  967. package/dist/ui/registry.d.ts +42 -17
  968. package/dist/ui/registry.js +46 -14
  969. package/dist/ui/slots.controller.d.ts +11 -0
  970. package/dist/ui/slots.controller.js +25 -0
  971. package/dist/ui/ui-stream.d.ts +20 -3
  972. package/dist/ui/ui-stream.js +25 -7
  973. package/dist/ui/ui.schemas.d.ts +70 -0
  974. package/dist/ui/ui.schemas.js +65 -0
  975. package/dist/ui/views.controller.d.ts +35 -49
  976. package/dist/ui/views.controller.js +48 -70
  977. package/dist/ui/views.d.ts +112 -18
  978. package/dist/ui/views.js +254 -47
  979. package/package.json +6 -3
  980. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  981. package/src/migrations/0064_account_last_org.sql +7 -0
  982. package/src/migrations/0065_conversation_archive.sql +8 -0
  983. package/src/migrations/0066_extension_display_name.sql +4 -0
  984. package/src/migrations/0067_agent_profiles.sql +20 -0
  985. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  986. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  987. package/src/migrations/0070_background_tasks.sql +37 -0
  988. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  989. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  990. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  991. package/src/migrations/0074_subagent_tree.sql +50 -0
  992. package/src/migrations/0075_plugin_scope.sql +61 -0
  993. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  994. package/src/migrations/0077_scope_requests.sql +52 -0
  995. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  996. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  997. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  998. package/src/migrations/0081_platform_components.sql +129 -0
  999. package/src/migrations/0082_platform_migration.sql +33 -0
  1000. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1001. package/src/migrations/0084_org_owned_items.sql +85 -0
  1002. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1003. package/src/migrations/0086_org_layering.sql +30 -0
  1004. package/src/migrations/0087_approval_summary.sql +6 -0
  1005. package/src/migrations/0088_environments.sql +80 -0
  1006. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1007. package/src/migrations/0090_initial_passwords.sql +27 -0
  1008. package/src/migrations/0091_account_time_zone.sql +4 -0
  1009. package/src/migrations/0092_tools_default_on.sql +27 -0
  1010. package/src/migrations/0093_connected_environments.sql +37 -0
  1011. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1012. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1013. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1014. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1015. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1016. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1017. package/src/migrations/0100_catalog_files.sql +13 -0
  1018. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1019. package/src/migrations/0102_themes.sql +64 -0
  1020. package/src/migrations/0103_ui_theme_setting.sql +7 -0
  1021. package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
  1022. package/src/migrations/0105_devices_rename.sql +136 -0
  1023. package/src/migrations/0106_setup_guides_v2.sql +10 -0
  1024. package/src/migrations/0107_extension_client_builds.sql +50 -0
  1025. package/src/migrations/0108_question_skipped.sql +6 -0
  1026. package/src/migrations/0109_audit_platform_idx.sql +5 -0
  1027. package/src/migrations/0110_usage_time_idx.sql +8 -0
  1028. package/src/migrations/0111_agent_skill_sharing.sql +22 -0
  1029. package/src/migrations/0112_skill_share_requests.sql +4 -0
  1030. package/dist/catalog/upgrade-targets.d.ts +0 -56
  1031. package/dist/catalog/upgrade-targets.js +0 -90
  1032. package/dist/conversations/sandbox-status.d.ts +0 -24
  1033. package/dist/conversations/sandbox-status.js +0 -52
  1034. package/dist/extensions/org-config.controller.d.ts +0 -24
  1035. package/dist/extensions/org-config.controller.js +0 -62
  1036. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1037. package/dist/tools/builtins/sandbox/names.js +0 -20
  1038. package/dist/tools/builtins/skill-write.d.ts +0 -59
  1039. package/dist/tools/builtins/skill-write.js +0 -244
@@ -24,10 +24,12 @@ const B64URL = /^[A-Za-z0-9_-]+$/;
24
24
  const PLUGIN_RE = /^[a-z][a-z0-9-]{1,40}$/;
25
25
  const CLAIM_KEYS = new Set([
26
26
  "plugin",
27
+ "scope",
27
28
  "orgId",
28
29
  "accountId",
29
30
  "role",
30
31
  "conversationId",
32
+ "agentId",
31
33
  "fileId",
32
34
  "contribution",
33
35
  "exp",
@@ -44,7 +46,11 @@ function decodeStrict(s) {
44
46
  const buf = Buffer.from(s, "base64url");
45
47
  return buf.toString("base64url") === s ? buf : null;
46
48
  }
47
- /** 逐字段核对声明:只认已知字段、类型正确,返回只含已知字段的新对象。 */
49
+ /**
50
+ * 逐字段核对声明:只认已知字段、类型正确,返回只含已知字段的新对象。The scope decides the shape:
51
+ * `"platform"` exactly when `orgId` is absent and `role` is `"superAdmin"`, with no
52
+ * `conversationId` / `agentId` / `fileId`; `"org"` needs an `orgId` and one of the org roles.
53
+ */
48
54
  function parseClaims(v) {
49
55
  if (typeof v !== "object" || v === null || Array.isArray(v))
50
56
  return null;
@@ -53,22 +59,41 @@ function parseClaims(v) {
53
59
  return null;
54
60
  if (typeof c.plugin !== "string" || !PLUGIN_RE.test(c.plugin))
55
61
  return null;
56
- if (!isId(c.orgId) || !isId(c.accountId) || !isId(c.contribution))
62
+ if (!isId(c.accountId) || !isId(c.contribution))
57
63
  return null;
58
- if (!ROLES.has(c.role))
64
+ if (typeof c.exp !== "number" || !Number.isSafeInteger(c.exp))
65
+ return null;
66
+ if (c.scope === "platform") {
67
+ if (c.orgId !== undefined || c.role !== "superAdmin")
68
+ return null;
69
+ if (c.conversationId !== undefined || c.agentId !== undefined || c.fileId !== undefined) {
70
+ return null;
71
+ }
72
+ return {
73
+ plugin: c.plugin,
74
+ scope: "platform",
75
+ accountId: c.accountId,
76
+ role: "superAdmin",
77
+ contribution: c.contribution,
78
+ exp: c.exp,
79
+ };
80
+ }
81
+ if (c.scope !== "org" || !isId(c.orgId) || !ROLES.has(c.role))
59
82
  return null;
60
83
  if (c.conversationId !== undefined && !isId(c.conversationId))
61
84
  return null;
62
- if (c.fileId !== undefined && (!isId(c.fileId) || c.conversationId === undefined))
85
+ if (c.agentId !== undefined && (!isId(c.agentId) || c.conversationId !== undefined))
63
86
  return null;
64
- if (typeof c.exp !== "number" || !Number.isSafeInteger(c.exp))
87
+ if (c.fileId !== undefined && (!isId(c.fileId) || c.conversationId === undefined))
65
88
  return null;
66
89
  return {
67
90
  plugin: c.plugin,
91
+ scope: "org",
68
92
  orgId: c.orgId,
69
93
  accountId: c.accountId,
70
94
  role: c.role,
71
95
  ...(c.conversationId !== undefined && { conversationId: c.conversationId }),
96
+ ...(c.agentId !== undefined && { agentId: c.agentId }),
72
97
  ...(c.fileId !== undefined && { fileId: c.fileId }),
73
98
  contribution: c.contribution,
74
99
  exp: c.exp,
@@ -1,13 +1,13 @@
1
- import type { ExtensionManifest, UiActionArgs, UiActionResult, UiContribution, UiRenderArgs, UiView } from "@capybara-hq/plugin-sdk";
1
+ import type { ExtensionManifest, UiActionArgs, UiActionResult, UiRenderArgs, UiSlotSpec, UiView } from "@capybara-hq/plugin-sdk";
2
2
  import { type OrgRole } from "../orgs/roles.js";
3
3
  /** 会话 id 的格式(UUID)。 */
4
4
  export declare const UUID_RE: RegExp;
5
- /** 组织页面(`place: "page"`)所需的最低角色(A38):guest 只用对话位置的贡献。 */
6
- export declare const PAGE_MIN_ROLE: OrgRole;
7
- /** Places on the conversation page (everything but an org page): they need a `conversationId`. */
8
- export declare const isConversationPlace: (place: UiContribution["place"]) => boolean;
9
- /** 该角色能否使用这个位置的贡献。 */
10
- export declare const canUsePlace: (place: UiContribution["place"], role: OrgRole) => boolean;
5
+ /**
6
+ * Whether an org role may use contributions in this slot (UI slots spec §7): never a `superAdmin`
7
+ * slot (`platform.page` is served only by the org-less platform routes), else the slot's
8
+ * `minRole`. The slot's scope rule (conversation, agent, file) is checked after this.
9
+ */
10
+ export declare function canUseSlot(slot: UiSlotSpec, role: OrgRole): boolean;
11
11
  /** 插件视图的 render 函数(`ctx.ui.view` 注册)。 */
12
12
  export type UiRender = (args: UiRenderArgs) => Promise<UiView>;
13
13
  /** 插件视图的动作处理函数(`ctx.ui.action` 注册)。 */
@@ -17,7 +17,22 @@ export type UiActionHandler = (args: UiActionArgs) => Promise<UiActionResult>;
17
17
  * 对话视图的刷新走会话主题 `conv.<id>`(与事件、增量共用),见 `conversationTopic`。
18
18
  */
19
19
  export declare const orgUiTopic: (orgId: string) => string;
20
- /** 界面刷新消息:`conv.<id>` 与 `org-ui.<orgId>` 上的 `{ kind: "ui", plugin, contribution }`。 */
20
+ /**
21
+ * The kernel bus topic of the platform refresh (namespace `kernel`): `ctx.ui.invalidate` of a
22
+ * `platform.page` contribution (no `orgId`), read by `GET /api/v1/admin/ui/stream`.
23
+ */
24
+ export declare const PLATFORM_UI_TOPIC = "platform-ui";
25
+ /** A checked `ui.invalidate` target: an org's (optionally one conversation's) or the platform's. */
26
+ export type UiInvalidateTarget = {
27
+ scope: "org";
28
+ orgId: string;
29
+ conversationId?: string;
30
+ contribution: string;
31
+ } | {
32
+ scope: "platform";
33
+ contribution: string;
34
+ };
35
+ /** 界面刷新消息:`conv.<id>`、`org-ui.<orgId>` 与 `platform-ui` 上的 `{ kind: "ui", plugin, contribution }`。 */
21
36
  export interface UiBusMessage {
22
37
  kind: "ui";
23
38
  plugin: string;
@@ -30,29 +45,39 @@ export declare const uiFrame: (m: UiBusMessage) => string;
30
45
  /**
31
46
  * 单个插件在 setup 期间注册的视图与动作:进程内的静态登记(同 `ctx.tools.register`),
32
47
  * 不是跨请求的共享状态——各副本加载同一插件得到同样的登记。
33
- * id 必须是 `permissions.ui.views` 里的(与清单 `ui` 里 kind view 的贡献一一对应,`defineExtension` 已交叉核对)。
48
+ * The id must be in `permissions.ui.views` or `permissions.ui.components` (a component's server
49
+ * view, client extensions spec §5.2); `defineExtension` already cross-checked them with the
50
+ * manifest `ui`.
34
51
  */
35
52
  export declare class PluginUiRegistration {
36
53
  private readonly manifest;
37
- /** 越权(id 未在 `permissions.ui.views` 声明):抛 ExtensionPermissionError 并写审计。 */
54
+ /**
55
+ * Out of scope (the id is in neither `permissions.ui.views` nor `permissions.ui.components`):
56
+ * throws ExtensionPermissionError and writes an audit entry.
57
+ */
38
58
  private readonly deny;
39
59
  readonly views: Map<string, UiRender>;
40
60
  readonly actions: Map<string, UiActionHandler>;
41
61
  private readonly declaredViews;
42
62
  private readonly contributions;
63
+ /** The ids of the manifest's `component` contributions: their permission is `ui.components`. */
64
+ private readonly components;
43
65
  private sealed;
44
66
  constructor(manifest: ExtensionManifest,
45
- /** 越权(id 未在 `permissions.ui.views` 声明):抛 ExtensionPermissionError 并写审计。 */
67
+ /**
68
+ * Out of scope (the id is in neither `permissions.ui.views` nor `permissions.ui.components`):
69
+ * throws ExtensionPermissionError and writes an audit entry.
70
+ */
46
71
  deny: (item: string) => never);
47
72
  /** setup 结束后调用:此后 view / action 抛错。 */
48
73
  seal(): void;
49
74
  view(id: string, render: UiRender): void;
50
75
  action(id: string, handler: UiActionHandler): void;
51
- /** 校验 invalidate 的目标,返回规范化后的 `{ orgId, conversationId?, contribution }`。 */
52
- target(t: unknown): {
53
- orgId: string;
54
- conversationId?: string;
55
- contribution: string;
56
- };
76
+ /**
77
+ * 校验 invalidate 的目标。A contribution in `platform` (the ids of the extension's `platform.page`
78
+ * contributions) takes no `orgId` and no `conversationId`; every other contribution needs an
79
+ * `orgId`.
80
+ */
81
+ target(t: unknown, platform: ReadonlySet<string>): UiInvalidateTarget;
57
82
  private register;
58
83
  }
@@ -1,17 +1,24 @@
1
1
  import { roleAtLeast } from "../orgs/roles.js";
2
2
  /** 会话 id 的格式(UUID)。 */
3
3
  export const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
4
- /** 组织页面(`place: "page"`)所需的最低角色(A38):guest 只用对话位置的贡献。 */
5
- export const PAGE_MIN_ROLE = "member";
6
- /** Places on the conversation page (everything but an org page): they need a `conversationId`. */
7
- export const isConversationPlace = (place) => place !== "page";
8
- /** 该角色能否使用这个位置的贡献。 */
9
- export const canUsePlace = (place, role) => place !== "page" || roleAtLeast(role, PAGE_MIN_ROLE);
4
+ /**
5
+ * Whether an org role may use contributions in this slot (UI slots spec §7): never a `superAdmin`
6
+ * slot (`platform.page` is served only by the org-less platform routes), else the slot's
7
+ * `minRole`. The slot's scope rule (conversation, agent, file) is checked after this.
8
+ */
9
+ export function canUseSlot(slot, role) {
10
+ return slot.minRole !== "superAdmin" && roleAtLeast(role, slot.minRole);
11
+ }
10
12
  /**
11
13
  * 组织级界面刷新的内核 bus 主题(命名空间 `kernel`):`org-ui.<orgId>`。
12
14
  * 对话视图的刷新走会话主题 `conv.<id>`(与事件、增量共用),见 `conversationTopic`。
13
15
  */
14
16
  export const orgUiTopic = (orgId) => `org-ui.${orgId}`;
17
+ /**
18
+ * The kernel bus topic of the platform refresh (namespace `kernel`): `ctx.ui.invalidate` of a
19
+ * `platform.page` contribution (no `orgId`), read by `GET /api/v1/admin/ui/stream`.
20
+ */
21
+ export const PLATFORM_UI_TOPIC = "platform-ui";
15
22
  /** 是否为界面刷新消息(bus 上的消息来自其他副本,按形状核对)。 */
16
23
  export function isUiBusMessage(m) {
17
24
  if (typeof m !== "object" || m === null)
@@ -24,7 +31,9 @@ export const uiFrame = (m) => `event: ui\ndata: ${JSON.stringify({ plugin: m.plu
24
31
  /**
25
32
  * 单个插件在 setup 期间注册的视图与动作:进程内的静态登记(同 `ctx.tools.register`),
26
33
  * 不是跨请求的共享状态——各副本加载同一插件得到同样的登记。
27
- * id 必须是 `permissions.ui.views` 里的(与清单 `ui` 里 kind view 的贡献一一对应,`defineExtension` 已交叉核对)。
34
+ * The id must be in `permissions.ui.views` or `permissions.ui.components` (a component's server
35
+ * view, client extensions spec §5.2); `defineExtension` already cross-checked them with the
36
+ * manifest `ui`.
28
37
  */
29
38
  export class PluginUiRegistration {
30
39
  manifest;
@@ -33,14 +42,21 @@ export class PluginUiRegistration {
33
42
  actions = new Map();
34
43
  declaredViews;
35
44
  contributions;
45
+ /** The ids of the manifest's `component` contributions: their permission is `ui.components`. */
46
+ components;
36
47
  sealed = false;
37
48
  constructor(manifest,
38
- /** 越权(id 未在 `permissions.ui.views` 声明):抛 ExtensionPermissionError 并写审计。 */
49
+ /**
50
+ * Out of scope (the id is in neither `permissions.ui.views` nor `permissions.ui.components`):
51
+ * throws ExtensionPermissionError and writes an audit entry.
52
+ */
39
53
  deny) {
40
54
  this.manifest = manifest;
41
55
  this.deny = deny;
42
- this.declaredViews = new Set(manifest.permissions?.ui?.views ?? []);
56
+ const ui = manifest.permissions?.ui;
57
+ this.declaredViews = new Set([...(ui?.views ?? []), ...(ui?.components ?? [])]);
43
58
  this.contributions = new Set((manifest.ui ?? []).map((c) => c.id));
59
+ this.components = new Set((manifest.ui ?? []).filter((c) => c.kind === "component").map((c) => c.id));
44
60
  }
45
61
  /** setup 结束后调用:此后 view / action 抛错。 */
46
62
  seal() {
@@ -52,13 +68,15 @@ export class PluginUiRegistration {
52
68
  action(id, handler) {
53
69
  this.register("action", this.actions, id, handler);
54
70
  }
55
- /** 校验 invalidate 的目标,返回规范化后的 `{ orgId, conversationId?, contribution }`。 */
56
- target(t) {
71
+ /**
72
+ * 校验 invalidate 的目标。A contribution in `platform` (the ids of the extension's `platform.page`
73
+ * contributions) takes no `orgId` and no `conversationId`; every other contribution needs an
74
+ * `orgId`.
75
+ */
76
+ target(t, platform) {
57
77
  const name = this.manifest.name;
58
78
  const x = (typeof t === "object" && t !== null ? t : {});
59
79
  const id = (v) => typeof v === "string" && v !== "" && v.length <= 200;
60
- if (!id(x.orgId))
61
- throw new Error(`plugin ${name}: ui.invalidate needs a non-empty orgId`);
62
80
  if (x.conversationId !== undefined &&
63
81
  (typeof x.conversationId !== "string" || !UUID_RE.test(x.conversationId))) {
64
82
  throw new Error(`plugin ${name}: ui.invalidate conversationId must be a UUID`);
@@ -66,7 +84,19 @@ export class PluginUiRegistration {
66
84
  if (typeof x.contribution !== "string" || !this.contributions.has(x.contribution)) {
67
85
  throw new Error(`plugin ${name}: ui.invalidate: ${JSON.stringify(x.contribution)} is not a ui contribution in the manifest`);
68
86
  }
87
+ if (platform.has(x.contribution)) {
88
+ if (x.orgId !== undefined) {
89
+ throw new Error(`plugin ${name}: ui.invalidate: ${x.contribution} is a platform page; omit orgId`);
90
+ }
91
+ if (x.conversationId !== undefined) {
92
+ throw new Error(`plugin ${name}: ui.invalidate: ${x.contribution} is a platform page; omit conversationId`);
93
+ }
94
+ return { scope: "platform", contribution: x.contribution };
95
+ }
96
+ if (!id(x.orgId))
97
+ throw new Error(`plugin ${name}: ui.invalidate needs a non-empty orgId`);
69
98
  return {
99
+ scope: "org",
70
100
  orgId: x.orgId,
71
101
  ...(x.conversationId !== undefined && { conversationId: x.conversationId }),
72
102
  contribution: x.contribution,
@@ -78,7 +108,9 @@ export class PluginUiRegistration {
78
108
  throw new Error(`plugin ${name}: ui.${what} is only allowed during setup; setup has completed`);
79
109
  }
80
110
  if (typeof id !== "string" || !this.declaredViews.has(id)) {
81
- this.deny(`permissions.ui.views ${String(id)}`);
111
+ // name the list the id belongs in: a component's server view is declared under components
112
+ const list = typeof id === "string" && this.components.has(id) ? "components" : "views";
113
+ this.deny(`permissions.ui.${list} ${String(id)}`);
82
114
  }
83
115
  if (typeof fn !== "function") {
84
116
  throw new Error(`plugin ${name}: ui.${what} "${id}" handler must be a function`);
@@ -0,0 +1,11 @@
1
+ import { type UiSlotSpec } from "@capybara-hq/plugin-sdk";
2
+ /**
3
+ * The slot catalog (UI slots spec §3): every slot an extension can contribute to, verbatim from
4
+ * the SDK. Static, so any signed-in person may read it; no org is involved.
5
+ */
6
+ export declare class SlotsController {
7
+ /** `GET /api/v1/ui/slots` → `{ slots }`. */
8
+ slots(): {
9
+ slots: readonly UiSlotSpec[];
10
+ };
11
+ }
@@ -0,0 +1,25 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { UI_SLOTS } from "@capybara-hq/plugin-sdk";
8
+ import { Controller, Get } from "@nestjs/common";
9
+ /**
10
+ * The slot catalog (UI slots spec §3): every slot an extension can contribute to, verbatim from
11
+ * the SDK. Static, so any signed-in person may read it; no org is involved.
12
+ */
13
+ let SlotsController = class SlotsController {
14
+ /** `GET /api/v1/ui/slots` → `{ slots }`. */
15
+ slots() {
16
+ return { slots: UI_SLOTS };
17
+ }
18
+ };
19
+ __decorate([
20
+ Get("slots")
21
+ ], SlotsController.prototype, "slots", null);
22
+ SlotsController = __decorate([
23
+ Controller("api/v1/ui")
24
+ ], SlotsController);
25
+ export { SlotsController };
@@ -6,20 +6,37 @@ import { GracefulShutdown } from "../infra/lifecycle/graceful-shutdown.service.j
6
6
  import { type OrgRole } from "../orgs/roles.js";
7
7
  import { type SseOutput, type StreamBus, type StreamHandle } from "../runtime/stream.js";
8
8
  export interface OrgUiStreamParams {
9
+ scope?: "org";
9
10
  orgId: string;
10
11
  viewerAccountId: string;
11
12
  credential: CredentialCheck;
12
13
  }
14
+ /** The platform refresh stream (`GET /api/v1/admin/ui/stream`): a super admin's, no org. */
15
+ export interface PlatformUiStreamParams {
16
+ scope: "platform";
17
+ viewerAccountId: string;
18
+ credential: CredentialCheck;
19
+ }
20
+ export type UiStreamParams = OrgUiStreamParams | PlatformUiStreamParams;
13
21
  /** The org role the org UI stream re-checks. */
14
22
  export declare class UiStreamMembership {
15
23
  private readonly db;
16
24
  constructor(db: KernelDb);
17
25
  /** 组织成员角色(一条查询):组织未删除、账号 active、仍有成员关系。 */
18
26
  role(orgId: string, accountId: string): Promise<OrgRole | undefined>;
27
+ /** Whether the account is an active super admin (one query). */
28
+ superAdmin(accountId: string): Promise<boolean>;
19
29
  }
30
+ /**
31
+ * The org refresh stream is member and above (UI slots spec §7): it carries `org.page` and
32
+ * `org.settings.section` refreshes; an `agent.detail.section` a guest views refreshes on navigation.
33
+ */
34
+ export declare const ORG_STREAM_MIN_ROLE: OrgRole;
20
35
  /**
21
36
  * 组织级界面刷新流(SSE):订阅内核主题 `org-ui.<orgId>`,把插件 `ctx.ui.invalidate`(不带对话)的刷新
22
- * 转发为 `event: ui`(`data: {"plugin","contribution"}`)。跨副本只经 Redis bus;进程内只持有连接本身的资源
37
+ * 转发为 `event: ui`(`data: {"plugin","contribution"}`)。The platform variant subscribes
38
+ * `platform-ui` (`invalidate` of a `platform.page`, no org) for a super admin, re-checked on the
39
+ * same interval (losing super admin ends it with `event: error`, code `forbidden`).跨副本只经 Redis bus;进程内只持有连接本身的资源
23
40
  * (订阅、心跳与复核定时器),停机时一并关闭。
24
41
  */
25
42
  export declare class OrgUiStreams {
@@ -33,9 +50,9 @@ export declare class OrgUiStreams {
33
50
  * an event stream. Without `GracefulShutdown` (a standalone HTTP application, tests only) the
34
51
  * streams end with their connections.
35
52
  */
36
- constructor(bus: StreamBus, membership: Pick<UiStreamMembership, "role">, config: Pick<KernelConfigService, "get">, log: Pick<Logger, "warn">, shutdown?: Pick<GracefulShutdown, "signal">);
53
+ constructor(bus: StreamBus, membership: Pick<UiStreamMembership, "role" | "superAdmin">, config: Pick<KernelConfigService, "get">, log: Pick<Logger, "warn">, shutdown?: Pick<GracefulShutdown, "signal">);
37
54
  /** 复核凭据与成员关系并订阅;失败时尚未写响应,调用方按普通错误返回。 */
38
- open(p: OrgUiStreamParams, out: SseOutput): Promise<StreamHandle>;
55
+ open(p: UiStreamParams, out: SseOutput): Promise<StreamHandle>;
39
56
  /** Closes every stream of this process (at shutdown) and latches, like `ConversationStreams`. */
40
57
  closeAll(): void;
41
58
  get size(): number;
@@ -8,6 +8,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
10
  import { Inject, Injectable, Optional } from "@nestjs/common";
11
+ import { currentPlatformAccount } from "../ctx/create-ctx.js";
11
12
  import { ApiError } from "../errors.js";
12
13
  import { KernelConfigService } from "../infra/config/kernel-config.service.js";
13
14
  import { KernelDb } from "../infra/database/kernel-db.js";
@@ -15,7 +16,9 @@ import { GracefulShutdown } from "../infra/lifecycle/graceful-shutdown.service.j
15
16
  import { KERNEL_BUS, KERNEL_LOGGER } from "../infra/tokens.js";
16
17
  import { roleAtLeast } from "../orgs/roles.js";
17
18
  import { endedStream, } from "../runtime/stream.js";
18
- import { isUiBusMessage, orgUiTopic, PAGE_MIN_ROLE, uiFrame } from "./registry.js";
19
+ import { isUiBusMessage, orgUiTopic, PLATFORM_UI_TOPIC, uiFrame } from "./registry.js";
20
+ /** The log field naming the stream: its org, or the platform scope. */
21
+ const whereOf = (p) => p.scope === "platform" ? { scope: "platform" } : { orgId: p.orgId };
19
22
  /** The org role the org UI stream re-checks. */
20
23
  let UiStreamMembership = class UiStreamMembership {
21
24
  db;
@@ -36,26 +39,39 @@ let UiStreamMembership = class UiStreamMembership {
36
39
  .executeTakeFirst();
37
40
  return row?.role;
38
41
  }
42
+ /** Whether the account is an active super admin (one query). */
43
+ superAdmin(accountId) {
44
+ return currentPlatformAccount(this.db.db, accountId);
45
+ }
39
46
  };
40
47
  UiStreamMembership = __decorate([
41
48
  Injectable(),
42
49
  __param(0, Inject(KernelDb))
43
50
  ], UiStreamMembership);
44
51
  export { UiStreamMembership };
52
+ /**
53
+ * The org refresh stream is member and above (UI slots spec §7): it carries `org.page` and
54
+ * `org.settings.section` refreshes; an `agent.detail.section` a guest views refreshes on navigation.
55
+ */
56
+ export const ORG_STREAM_MIN_ROLE = "member";
45
57
  async function authorize(d, p) {
46
58
  const denied = await p.credential();
47
59
  if (denied !== null)
48
60
  return denied;
61
+ if (p.scope === "platform")
62
+ return (await d.superAdmin(p.viewerAccountId)) ? null : "forbidden";
49
63
  const role = await d.memberRole(p.orgId, p.viewerAccountId);
50
64
  if (role === undefined)
51
65
  return "org.not_found";
52
- return roleAtLeast(role, PAGE_MIN_ROLE) ? null : "ui.not_found";
66
+ return roleAtLeast(role, ORG_STREAM_MIN_ROLE) ? null : "ui.not_found";
53
67
  }
54
68
  /** 慢客户端的积压上限(刷新帧很小,超过即说明客户端不读了)。 */
55
69
  const MAX_BACKLOG_BYTES = 1024 * 1024;
56
70
  /**
57
71
  * 组织级界面刷新流(SSE):订阅内核主题 `org-ui.<orgId>`,把插件 `ctx.ui.invalidate`(不带对话)的刷新
58
- * 转发为 `event: ui`(`data: {"plugin","contribution"}`)。跨副本只经 Redis bus;进程内只持有连接本身的资源
72
+ * 转发为 `event: ui`(`data: {"plugin","contribution"}`)。The platform variant subscribes
73
+ * `platform-ui` (`invalidate` of a `platform.page`, no org) for a super admin, re-checked on the
74
+ * same interval (losing super admin ends it with `event: error`, code `forbidden`).跨副本只经 Redis bus;进程内只持有连接本身的资源
59
75
  * (订阅、心跳与复核定时器),停机时一并关闭。
60
76
  */
61
77
  let OrgUiStreams = class OrgUiStreams {
@@ -73,6 +89,7 @@ let OrgUiStreams = class OrgUiStreams {
73
89
  this.d = {
74
90
  bus,
75
91
  memberRole: (orgId, accountId) => membership.role(orgId, accountId),
92
+ superAdmin: (accountId) => membership.superAdmin(accountId),
76
93
  config,
77
94
  log,
78
95
  };
@@ -140,7 +157,8 @@ class OrgUiConnection {
140
157
  this.onClosed = onClosed;
141
158
  }
142
159
  async subscribe() {
143
- const un = await this.d.bus.subscribe(orgUiTopic(this.p.orgId), (m) => {
160
+ const topic = this.p.scope === "platform" ? PLATFORM_UI_TOPIC : orgUiTopic(this.p.orgId);
161
+ const un = await this.d.bus.subscribe(topic, (m) => {
144
162
  // begin() 之前(响应头还没写)到达的刷新丢掉:网页连上后会先取一次视图
145
163
  if (this.begun && isUiBusMessage(m))
146
164
  this.write(uiFrame(m));
@@ -166,7 +184,7 @@ class OrgUiConnection {
166
184
  this.timers = [];
167
185
  const un = this.unsubscribe;
168
186
  this.unsubscribe = undefined;
169
- un?.().catch((err) => this.d.log.warn("org ui stream unsubscribe failed", { orgId: this.p.orgId, err }));
187
+ un?.().catch((err) => this.d.log.warn("org ui stream unsubscribe failed", { ...whereOf(this.p), err }));
170
188
  if (this.begun) {
171
189
  try {
172
190
  if (mode === "abort")
@@ -191,7 +209,7 @@ class OrgUiConnection {
191
209
  return;
192
210
  }
193
211
  if (this.out.backlog() > MAX_BACKLOG_BYTES) {
194
- this.d.log.warn("org ui stream client too slow; closing", { orgId: this.p.orgId });
212
+ this.d.log.warn("org ui stream client too slow; closing", whereOf(this.p));
195
213
  this.close("abort");
196
214
  }
197
215
  }
@@ -206,7 +224,7 @@ class OrgUiConnection {
206
224
  }
207
225
  catch (err) {
208
226
  this.d.log.warn("org ui stream access re-check failed; closing", {
209
- orgId: this.p.orgId,
227
+ ...whereOf(this.p),
210
228
  err,
211
229
  });
212
230
  code = "internal";
@@ -0,0 +1,70 @@
1
+ import { z } from "zod";
2
+ import type { RouteSchemas } from "../platform/route-schemas.js";
3
+ /** The contribution named in a view / action / embed path (`:plugin/:id`). */
4
+ export declare const ContributionParams: z.ZodObject<{
5
+ plugin: z.ZodString;
6
+ id: z.ZodString;
7
+ }, z.core.$strip>;
8
+ /** `GET contributions?slot=`: one catalog slot, or every org-reachable slot when omitted. */
9
+ export declare const ContributionsQuery: z.ZodObject<{
10
+ slot: z.ZodOptional<z.ZodEnum<{
11
+ "agent.detail.section": "agent.detail.section";
12
+ "conversation.composer.frame": "conversation.composer.frame";
13
+ "conversation.empty": "conversation.empty";
14
+ "conversation.panel": "conversation.panel";
15
+ "conversation.properties.section": "conversation.properties.section";
16
+ "conversation.tool-result.card": "conversation.tool-result.card";
17
+ "file.preview": "file.preview";
18
+ "org.page": "org.page";
19
+ "org.settings.section": "org.settings.section";
20
+ "platform.page": "platform.page";
21
+ "shell.brand": "shell.brand";
22
+ "shell.overlay": "shell.overlay";
23
+ }>>;
24
+ }, z.core.$strip>;
25
+ export declare const ViewQuery: z.ZodObject<{
26
+ conversationId: z.ZodOptional<z.ZodString>;
27
+ agentId: z.ZodOptional<z.ZodUUID>;
28
+ locale: z.ZodDefault<z.ZodEnum<{
29
+ en: "en";
30
+ zh: "zh";
31
+ }>>;
32
+ item: z.ZodOptional<z.ZodString>;
33
+ callId: z.ZodOptional<z.ZodString>;
34
+ key: z.ZodOptional<z.ZodString>;
35
+ }, z.core.$strip>;
36
+ export declare const ActionBody: z.ZodObject<{
37
+ actionId: z.ZodString;
38
+ payload: z.ZodOptional<z.ZodUnknown>;
39
+ answer: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>]>>>;
40
+ conversationId: z.ZodOptional<z.ZodString>;
41
+ agentId: z.ZodOptional<z.ZodUUID>;
42
+ locale: z.ZodDefault<z.ZodEnum<{
43
+ en: "en";
44
+ zh: "zh";
45
+ }>>;
46
+ }, z.core.$strip>;
47
+ export declare const EmbedTokenBody: z.ZodDefault<z.ZodObject<{
48
+ conversationId: z.ZodOptional<z.ZodString>;
49
+ agentId: z.ZodOptional<z.ZodUUID>;
50
+ fileId: z.ZodOptional<z.ZodUUID>;
51
+ }, z.core.$strip>>;
52
+ /** `GET /api/v1/admin/ui/views/:plugin/:id?locale=`: a platform page takes no context id. */
53
+ export declare const PlatformViewQuery: z.ZodObject<{
54
+ locale: z.ZodDefault<z.ZodEnum<{
55
+ en: "en";
56
+ zh: "zh";
57
+ }>>;
58
+ }, z.core.$strip>;
59
+ /** `POST /api/v1/admin/ui/actions/:plugin/:id`: an action of a platform page (no context id). */
60
+ export declare const PlatformActionBody: z.ZodObject<{
61
+ actionId: z.ZodString;
62
+ payload: z.ZodOptional<z.ZodUnknown>;
63
+ answer: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>]>>>;
64
+ locale: z.ZodDefault<z.ZodEnum<{
65
+ en: "en";
66
+ zh: "zh";
67
+ }>>;
68
+ }, z.core.$strip>;
69
+ /** The slot catalog route the Platform operation `ui.slots` mirrors (`check:platform-ops` key). */
70
+ export declare const UI_ROUTES: readonly RouteSchemas[];
@@ -0,0 +1,65 @@
1
+ import { UI_LIMITS, UI_SLOT_IDS } from "@capybara-hq/plugin-sdk";
2
+ import { z } from "zod";
3
+ /** The DTO schemas of the org UI routes (`views.controller.ts`). */
4
+ const Locale = z.enum(["zh", "en"]).default("en");
5
+ const Id = z.string().min(1).max(100);
6
+ /** The contribution named in a view / action / embed path (`:plugin/:id`). */
7
+ export const ContributionParams = z.object({ plugin: Id, id: Id });
8
+ /** `GET contributions?slot=`: one catalog slot, or every org-reachable slot when omitted. */
9
+ export const ContributionsQuery = z.object({ slot: z.enum(UI_SLOT_IDS).optional() });
10
+ export const ViewQuery = z
11
+ .object({
12
+ conversationId: z.string().min(1).max(100).optional(),
13
+ /** Only an agent view (`agent.detail.section`). */
14
+ agentId: z.uuid().optional(),
15
+ locale: Locale,
16
+ /** A panel opened from an open target: the item to scroll to. */
17
+ item: z.string().min(1).max(200).optional(),
18
+ /** An inline card: the tool call it hangs off, and its `ToolResult.card.key`. */
19
+ callId: z.string().min(1).max(200).optional(),
20
+ key: z.string().min(1).max(200).optional(),
21
+ })
22
+ .refine((q) => q.key === undefined || q.callId !== undefined, {
23
+ message: "key needs callId",
24
+ });
25
+ /**
26
+ * 表单答案(plugin-sdk 的 `FormAnswer`)。SDK 的 InputForm 没有单独的字段数 / 选项数上限,
27
+ * 这里沿用视图的上限:键数与多选数组长度 ≤ `UI_LIMITS.tableRows`,单个文本 ≤ `UI_LIMITS.textChars`。
28
+ */
29
+ const AnswerText = z.string().max(UI_LIMITS.textChars);
30
+ const FormAnswerSchema = z
31
+ .record(z.string().max(100), z.union([AnswerText, z.number(), z.boolean(), z.array(AnswerText).max(UI_LIMITS.tableRows)]))
32
+ .refine((a) => Object.keys(a).length <= UI_LIMITS.tableRows, {
33
+ message: `answer must have at most ${UI_LIMITS.tableRows} fields`,
34
+ });
35
+ /** 按钮 payload 的 JSON 序列化后 UTF-8 字节数(与 `validateUiView` 对按钮 payload 的上限一致)。 */
36
+ const payloadBytes = (v) => Buffer.byteLength(JSON.stringify(v) ?? "", "utf8");
37
+ export const ActionBody = z.object({
38
+ actionId: z.string().min(1).max(200),
39
+ payload: z
40
+ .unknown()
41
+ .optional()
42
+ .refine((v) => v === undefined || payloadBytes(v) <= UI_LIMITS.payloadBytes, {
43
+ message: `payload must be at most ${UI_LIMITS.payloadBytes} bytes as JSON`,
44
+ }),
45
+ answer: FormAnswerSchema.optional(),
46
+ conversationId: z.string().min(1).max(100).optional(),
47
+ /** Only an agent view (`agent.detail.section`). */
48
+ agentId: z.uuid().optional(),
49
+ locale: Locale,
50
+ });
51
+ export const EmbedTokenBody = z
52
+ .object({
53
+ conversationId: z.string().min(1).max(100).optional(),
54
+ /** Only an agent embed (`agent.detail.section`). */
55
+ agentId: z.uuid().optional(),
56
+ /** Only a `file.preview` embed: the file version it previews. */
57
+ fileId: z.uuid().optional(),
58
+ })
59
+ .default({});
60
+ /** `GET /api/v1/admin/ui/views/:plugin/:id?locale=`: a platform page takes no context id. */
61
+ export const PlatformViewQuery = z.object({ locale: Locale });
62
+ /** `POST /api/v1/admin/ui/actions/:plugin/:id`: an action of a platform page (no context id). */
63
+ export const PlatformActionBody = ActionBody.omit({ conversationId: true, agentId: true });
64
+ /** The slot catalog route the Platform operation `ui.slots` mirrors (`check:platform-ops` key). */
65
+ export const UI_ROUTES = [{ route: "GET /api/v1/ui/slots" }];