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

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 +94 -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 +85 -10
  356. package/dist/extensions/bootstrap.js +215 -36
  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 +9 -3
  509. package/dist/lifecycle/kernel-lifecycle.js +51 -11
  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
@@ -8,12 +8,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
10
  import { randomUUID } from "node:crypto";
11
- import { ToolError, } from "@capybara-hq/plugin-sdk";
11
+ import { connectorToolKey, ToolError, } from "@capybara-hq/plugin-sdk";
12
12
  import { Inject, Injectable } from "@nestjs/common";
13
13
  import { sql } from "kysely";
14
14
  import { z } from "zod";
15
- import { assertItemInstallable } from "../catalog/requests.service.js";
15
+ import { connectorTemplateState } from "../catalog/component-state.js";
16
+ import { assertItemInstallable } from "../catalog/request-rules.js";
16
17
  import { ApiError } from "../errors.js";
18
+ import { PluginGuides, } from "../extensions/plugin-guides.js";
17
19
  import { ExtensionRegistry } from "../extensions/registry.js";
18
20
  import { audit } from "../identity/audit.js";
19
21
  import { assertCustomAllowed } from "../identity/settings.js";
@@ -25,7 +27,7 @@ import { OrgLock } from "../orgs/org-lock.js";
25
27
  import { CredentialMissing, Credentials, isOAuth, } from "./credentials.js";
26
28
  import { snapshot, ToolDrift, toolIssue, } from "./drift.js";
27
29
  import { endpointCredentialIssues, endpointView } from "./endpoint.js";
28
- import { deriveSlug, isValidSlug, SLUG_RULE, toolKey } from "./naming.js";
30
+ import { deriveSlug, isValidSlug, SLUG_RULE } from "./naming.js";
29
31
  import { checkOAuthUrl, discoverMcp, OAuthSetupError, oauthHttpOptions, pickAuthMethod, registerClient, } from "./oauth/discovery.js";
30
32
  import { callbackUrl, publicUrlRequired } from "./oauth/flow-paths.js";
31
33
  import { OAuthGrantError, OAuthUnavailable, tokenRequest, } from "./oauth/tokens.js";
@@ -92,11 +94,14 @@ let ConnectorsService = class ConnectorsService {
92
94
  drift;
93
95
  orgLock;
94
96
  txHost;
97
+ guides;
95
98
  constructor(kdb, registry,
96
99
  /** Extension manifests (a slug may not take an extension's name). */
97
100
  extensions, credentials, config, drift,
98
101
  /** The org row lock (orgs/org-lock.ts): joins the caller's transaction. */
99
- orgLock, txHost) {
102
+ orgLock, txHost,
103
+ /** Setup guides of connector templates (spec 2026-11-09-setup-guides-v2-design.md §11). */
104
+ guides) {
100
105
  this.kdb = kdb;
101
106
  this.registry = registry;
102
107
  this.extensions = extensions;
@@ -105,6 +110,7 @@ let ConnectorsService = class ConnectorsService {
105
110
  this.drift = drift;
106
111
  this.orgLock = orgLock;
107
112
  this.txHost = txHost;
113
+ this.guides = guides;
108
114
  }
109
115
  /** The kernel-schema handle of the current context (its transaction, else the pool). */
110
116
  get db() {
@@ -142,6 +148,34 @@ let ConnectorsService = class ConnectorsService {
142
148
  .executeTakeFirst();
143
149
  return row !== undefined;
144
150
  }
151
+ /**
152
+ * The first free default name and slug ({@link CreateConnectorInput.slugDefault}), read in the
153
+ * caller's transaction under the org lock.
154
+ */
155
+ async freeName(t, orgId, d) {
156
+ const base = deriveSlug(d.name ?? d.display) ?? deriveSlug(d.display);
157
+ if (base === null) {
158
+ throw fail("slug", `Cannot derive a slug from the name; provide one. ${SLUG_RULE}`);
159
+ }
160
+ const taken = new Set((await t
161
+ .selectFrom("connectors")
162
+ .select("slug")
163
+ .where("org_id", "=", orgId)
164
+ .where("deleted_at", "is", null)
165
+ .execute()).map((r) => r.slug));
166
+ for (const m of this.extensions.manifests())
167
+ taken.add(m.name);
168
+ for (let n = 1;; n++) {
169
+ const suffix = n === 1 ? "" : `_${n}`;
170
+ const slug = `${base.slice(0, 24 - suffix.length).replace(/_+$/, "")}${suffix}`;
171
+ if (!isValidSlug(slug) || taken.has(slug))
172
+ continue;
173
+ const nth = ` ${n}`;
174
+ const name = d.name ??
175
+ (n === 1 ? d.display : `${[...d.display].slice(0, 80 - nth.length).join("")}${nth}`);
176
+ return { name: [...name].slice(0, 80).join(""), slug };
177
+ }
178
+ }
145
179
  resolveSlug(input) {
146
180
  if (input.slug !== undefined) {
147
181
  if (!isValidSlug(input.slug))
@@ -181,7 +215,7 @@ let ConnectorsService = class ConnectorsService {
181
215
  ...(auth.scopes && { scopes: auth.scopes }),
182
216
  };
183
217
  try {
184
- const tokens = await tokenRequest(client, { grant_type: "client_credentials", scope: auth.scopes?.join(" ") }, http);
218
+ const tokens = await tokenRequest(client, { grant_type: "client_credentials", scope: auth.scopes?.join(" ") }, http, { tokenTypes: auth.tokenTypes });
185
219
  return { client, tokens };
186
220
  }
187
221
  catch (e) {
@@ -253,7 +287,8 @@ let ConnectorsService = class ConnectorsService {
253
287
  checkCreateInput(actorAccountId, input) {
254
288
  const slug = this.resolveSlug(input);
255
289
  const endpoint = this.parseEndpoint(input.connector, input.endpoint);
256
- if (this.extensions.manifests().some((m) => m.name === slug)) {
290
+ // a defaulted slug skips plugin names itself (`freeName`)
291
+ if (!input.slugDefault && this.extensions.manifests().some((m) => m.name === slug)) {
257
292
  throw fail("slug", `Slug "${slug}" is the name of an installed plugin; choose another`);
258
293
  }
259
294
  const auth = input.auth;
@@ -311,21 +346,21 @@ let ConnectorsService = class ConnectorsService {
311
346
  // 自建被禁止时先拒绝(事务里再复核一次):不该为此触发外连
312
347
  if (!input.template)
313
348
  await assertCustomAllowed(this.db, "customConnectors");
349
+ await this.assertKindAvailable(orgId, input.connector);
314
350
  const { slug, endpoint, owner, secret } = this.checkCreateInput(actorAccountId, input);
315
351
  const id = randomUUID();
316
352
  const auth = input.auth;
317
353
  const publicUrl = this.config.get().http.publicUrl;
318
- // 先做不需要连接的检查:冲突的 slug 不该触发一次外连
319
- if (await this.slugTaken(this.db, orgId, slug)) {
354
+ // 先做不需要连接的检查:冲突的 slug 不该触发一次外连 (a defaulted slug is chosen under the lock)
355
+ if (!input.slugDefault && (await this.slugTaken(this.db, orgId, slug))) {
320
356
  throw new ApiError("connector.slug_taken", "Connector slug is already taken");
321
357
  }
322
358
  const oauth = isOAuth(auth)
323
359
  ? await this.prepareOAuth(auth, endpoint, input.credential, publicUrl)
324
360
  : undefined;
325
- let rows = [];
326
- let issues = [];
361
+ let listed;
327
362
  if (auth.type !== "oauth_code") {
328
- const listed = await this.drift.listTools(input.connector, endpoint, async () => {
363
+ listed = await this.drift.listTools(input.connector, endpoint, async () => {
329
364
  if (auth.type === "none")
330
365
  return { headers: {} };
331
366
  if (oauth?.tokens) {
@@ -335,8 +370,12 @@ let ConnectorsService = class ConnectorsService {
335
370
  throw new CredentialMissing(id, auth.ownership);
336
371
  return this.credentials.injectionFor(id, auth, secret);
337
372
  }, { orgId, slug });
338
- ({ rows, issues } = snapshot(slug, listed.specs, listed.resources));
339
373
  }
374
+ // the guide the wizard and 补充配置 showed: the template's current one (spec §11)
375
+ const tpl = input.template;
376
+ const guideAck = tpl?.templateId !== undefined
377
+ ? await this.guides.templateAck(tpl.itemId, tpl.templateId)
378
+ : null;
340
379
  return this.createIn(orgId, actorAccountId, input, actorTokenId, {
341
380
  id,
342
381
  slug,
@@ -344,13 +383,13 @@ let ConnectorsService = class ConnectorsService {
344
383
  owner,
345
384
  secret,
346
385
  oauth,
347
- rows,
348
- issues,
386
+ listed,
387
+ guideAck,
349
388
  });
350
389
  }
351
390
  /** The org-locked, re-checked insert of {@link create} (the outbound checks ran before). */
352
391
  async createIn(orgId, actorAccountId, input, actorTokenId, c) {
353
- const { id, slug, endpoint, owner, secret, oauth, rows, issues } = c;
392
+ const { id, endpoint, owner, secret, oauth } = c;
354
393
  const auth = input.auth;
355
394
  const t = this.db;
356
395
  await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "connectors.manage");
@@ -359,22 +398,55 @@ let ConnectorsService = class ConnectorsService {
359
398
  }
360
399
  else
361
400
  await assertCustomAllowed(t, "customConnectors");
362
- if (await this.slugTaken(t, orgId, slug)) {
401
+ let slug = c.slug;
402
+ let name = input.name;
403
+ if (input.slugDefault)
404
+ ({ slug, name } = await this.freeName(t, orgId, input.slugDefault));
405
+ else if (await this.slugTaken(t, orgId, slug)) {
363
406
  throw new ApiError("connector.slug_taken", "Connector slug is already taken");
364
407
  }
408
+ // the snapshot's keys name the final slug
409
+ const { rows, issues } = c.listed === undefined
410
+ ? { rows: [], issues: [] }
411
+ : snapshot(slug, c.listed.specs, c.listed.resources);
412
+ // A connector made from a platform connector template stays linked to it (ruling E2)
413
+ const tpl = input.template;
414
+ const platformTemplate = tpl?.templateId !== undefined
415
+ ? await t
416
+ .selectFrom("platform_connector_templates")
417
+ .select("id")
418
+ .where("catalog_item_id", "=", tpl.itemId)
419
+ .where("template_id", "=", tpl.templateId)
420
+ .where("deleted_at", "is", null)
421
+ .executeTakeFirst()
422
+ : undefined;
423
+ if (tpl?.mustBeOn) {
424
+ const state = platformTemplate === undefined
425
+ ? "absent"
426
+ : await connectorTemplateState(t, orgId, platformTemplate.id);
427
+ if (state === "absent") {
428
+ throw new ApiError("component.not_found", "The connector template does not exist or is not available in this organization");
429
+ }
430
+ if (state === "off") {
431
+ throw new ApiError("component.off", "This connector template is off in this organization; switch it (or its plugin) on first");
432
+ }
433
+ }
365
434
  await t
366
435
  .insertInto("connectors")
367
436
  .values({
368
437
  id,
369
438
  org_id: orgId,
370
439
  slug,
371
- name: input.name,
440
+ name,
372
441
  connector: input.connector,
373
442
  endpoint: JSON.stringify(endpoint),
374
443
  auth: JSON.stringify(auth),
375
444
  created_by: actorAccountId,
376
445
  catalog_item_id: input.template?.itemId ?? null,
377
446
  catalog_version: input.template?.version ?? null,
447
+ platform_template_id: platformTemplate?.id ?? null,
448
+ // linked to its template only through the platform component (drift is judged there)
449
+ guide_ack: platformTemplate !== undefined && c.guideAck !== null ? JSON.stringify(c.guideAck) : null,
378
450
  // 授权码连接器安装时没有快照:模板的默认策略留到首个快照时应用
379
451
  template_tool_policies: input.template?.defaultToolPolicies
380
452
  ? JSON.stringify(input.template.defaultToolPolicies)
@@ -418,7 +490,7 @@ let ConnectorsService = class ConnectorsService {
418
490
  return { connector: await this.detail(t, orgId, id, actorAccountId), issues };
419
491
  }
420
492
  /**
421
- * Checks a template update before anything is written (an org plugin upgrade): the endpoint
493
+ * Checks a template update before anything is written (the platform plugin update): the endpoint
422
494
  * against the connector's schema, and with `resetCredentials` the new credential's shape, or for
423
495
  * OAuth the client setup (discovery, dynamic registration or the client credentials token; an
424
496
  * outbound failure -> 502 `connector.connect_failed`). Writes nothing.
@@ -534,6 +606,21 @@ let ConnectorsService = class ConnectorsService {
534
606
  },
535
607
  });
536
608
  }
609
+ /** Refuses a loaded kind whose extension is not enabled in the org (the same notion as {@link kinds}). */
610
+ async assertKindAvailable(orgId, kind) {
611
+ if (!this.registry.findConnector(kind))
612
+ return; // unknown kinds fail in parseEndpoint
613
+ if (!(await this.registry.connectorKindAvailable(orgId, kind))) {
614
+ throw new ApiError("connector.kind_unavailable", `Connector kind "${kind}" is not enabled for this organization; enable its plugin first`);
615
+ }
616
+ }
617
+ /**
618
+ * The connector kinds the org can create connectors of (the install wizard's protocol step): a
619
+ * kind is listed when its `connector@1` extension is loaded and enabled in the org.
620
+ */
621
+ kinds(orgId) {
622
+ return this.registry.connectorKindsFor(orgId);
623
+ }
537
624
  /**
538
625
  * Previews a connector (Ruling A20, for the install wizard): after checking the connector, the
539
626
  * endpoint (credential pattern check included) and the credential shape, reads the endpoint
@@ -548,6 +635,7 @@ let ConnectorsService = class ConnectorsService {
548
635
  async preview(orgId, input) {
549
636
  // 部署禁止组织自建连接器时也不替组织去连任意端点(目录安装不走预览)
550
637
  await assertCustomAllowed(this.db, "customConnectors");
638
+ await this.assertKindAvailable(orgId, input.connector);
551
639
  const endpoint = this.parseEndpoint(input.connector, input.endpoint);
552
640
  const connector = this.registry.findConnector(input.connector);
553
641
  if (!connector)
@@ -619,7 +707,7 @@ let ConnectorsService = class ConnectorsService {
619
707
  issues = snap.issues;
620
708
  tools = snap.rows.map((r) => ({
621
709
  name: r.name,
622
- key: toolKey(slug, r.name),
710
+ key: connectorToolKey(slug, r.name),
623
711
  description: r.spec.description,
624
712
  inputSchema: r.spec.inputSchema,
625
713
  annotations: r.spec.annotations ?? null,
@@ -684,6 +772,8 @@ let ConnectorsService = class ConnectorsService {
684
772
  endpoint: endpointView(r.endpoint),
685
773
  auth: r.auth,
686
774
  status: r.status,
775
+ platformTemplateId: r.platform_template_id ?? null,
776
+ catalogItemId: r.catalog_item_id ?? null,
687
777
  createdBy: r.created_by,
688
778
  createdAt: r.created_at,
689
779
  updatedAt: r.updated_at,
@@ -720,7 +810,8 @@ let ConnectorsService = class ConnectorsService {
720
810
  const next = t.pending_spec;
721
811
  return {
722
812
  name: t.name,
723
- key: toolKey(r.slug, t.name),
813
+ key: connectorToolKey(r.slug, t.name),
814
+ title: typeof spec.title === "string" ? spec.title : null,
724
815
  description: spec.description,
725
816
  inputSchema: spec.inputSchema,
726
817
  annotations: spec.annotations ?? null,
@@ -748,7 +839,85 @@ let ConnectorsService = class ConnectorsService {
748
839
  credential: { ownership: auth.type === "none" ? null : auth.ownership, status },
749
840
  };
750
841
  }
751
- /** 本组织未删除的连接器(按创建时间)。 */
842
+ /**
843
+ * The setup guide fields of the org's connectors (`setupGuide`, `guideDrift`; spec
844
+ * 2026-11-09-setup-guides-v2-design.md §9.3, §11): resolved through each connector's platform
845
+ * template to its item's guide for that template; custom connectors get nulls.
846
+ */
847
+ async guideStates(org, connectorIds) {
848
+ if (connectorIds.length === 0)
849
+ return new Map();
850
+ const rows = await this.db
851
+ .selectFrom("connectors as c")
852
+ .leftJoin("platform_connector_templates as t", "t.id", "c.platform_template_id")
853
+ .select(["c.id", "c.guide_ack", "t.catalog_item_id", "t.template_id"])
854
+ .where("c.org_id", "=", org.orgId)
855
+ .where("c.id", "in", [...new Set(connectorIds)])
856
+ .where("c.deleted_at", "is", null)
857
+ .execute();
858
+ return this.guides.connectorStates(rows.map((r) => ({
859
+ id: r.id,
860
+ itemId: r.catalog_item_id ?? null,
861
+ templateId: r.template_id ?? null,
862
+ guideAck: r.guide_ack ?? null,
863
+ })), org);
864
+ }
865
+ /**
866
+ * 「我已更新应用」 for a connector made from a template: records the template's current guide as
867
+ * the one it is set up with. `hash` is the admin drift hash of the guide the person was shown;
868
+ * when the plugin moved on since, 409 `connector.guide_changed` (show the new guide first). A
869
+ * connector without a template guide, or whose item the org's catalog does not show -> 404
870
+ * `catalog.guide_not_found`.
871
+ */
872
+ async ackGuide(org, connectorId, hash, actorAccountId, actorTokenId) {
873
+ const { orgId } = org;
874
+ const r = await this.db
875
+ .selectFrom("connectors as c")
876
+ .leftJoin("platform_connector_templates as t", "t.id", "c.platform_template_id")
877
+ .select(["c.id", "t.catalog_item_id", "t.template_id"])
878
+ .where("c.id", "=", connectorId)
879
+ .where("c.org_id", "=", orgId)
880
+ .where("c.deleted_at", "is", null)
881
+ .executeTakeFirst();
882
+ if (!r)
883
+ throw notFound();
884
+ const ack = r.catalog_item_id && r.template_id
885
+ ? // the guide read's visibility: an item the org's catalog does not show has no guide
886
+ await this.guides.templateAck(r.catalog_item_id, r.template_id, org)
887
+ : null;
888
+ if (ack === null) {
889
+ throw new ApiError("catalog.guide_not_found", "The connector has no template setup guide");
890
+ }
891
+ if (ack.hash !== hash) {
892
+ throw new ApiError("connector.guide_changed", "The connector template's setup guide changed since it was shown; review the new guide first");
893
+ }
894
+ return this.ackIn(orgId, connectorId, ack, actorAccountId, actorTokenId);
895
+ }
896
+ /** The row and audit of {@link ackGuide}, in one transaction under the org lock. */
897
+ async ackIn(orgId, connectorId, ack, actorAccountId, actorTokenId) {
898
+ const t = this.db;
899
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "connectors.manage");
900
+ const updated = await t
901
+ .updateTable("connectors")
902
+ .set({ guide_ack: JSON.stringify(ack), updated_at: sql `now()` })
903
+ .where("id", "=", connectorId)
904
+ .where("org_id", "=", orgId)
905
+ .where("deleted_at", "is", null)
906
+ .returning("id")
907
+ .executeTakeFirst();
908
+ if (!updated)
909
+ throw notFound();
910
+ await audit(t, {
911
+ actorAccountId,
912
+ ...(actorTokenId !== undefined && { actorTokenId }),
913
+ orgId,
914
+ action: "connector.guide_confirmed",
915
+ target: connectorId,
916
+ detail: { guideId: ack.guideId, version: ack.version },
917
+ });
918
+ return this.detail(t, orgId, connectorId, actorAccountId);
919
+ }
920
+ /** The org's connectors that are not deleted (by creation time). */
752
921
  async list(orgId) {
753
922
  const rows = await this.db
754
923
  .selectFrom("connectors")
@@ -882,16 +1051,75 @@ let ConnectorsService = class ConnectorsService {
882
1051
  });
883
1052
  return this.detail(t, orgId, connectorId, actorAccountId);
884
1053
  }
1054
+ /**
1055
+ * The org id of a live connector of a live org (the platform paths address a connector by its
1056
+ * global id); else `connector.not_found`.
1057
+ */
1058
+ async liveOrgOf(connectorId) {
1059
+ const r = await this.db
1060
+ .selectFrom("connectors as c")
1061
+ .innerJoin("orgs as o", "o.id", "c.org_id")
1062
+ .select("c.org_id")
1063
+ .where("c.id", "=", connectorId)
1064
+ .where("c.deleted_at", "is", null)
1065
+ .where("o.deleted_at", "is", null)
1066
+ .executeTakeFirst();
1067
+ if (!r)
1068
+ throw notFound();
1069
+ return r.org_id;
1070
+ }
1071
+ /**
1072
+ * Disables or enables a connector on the platform's behalf (a super admin who need not be a
1073
+ * member of the org; the caller checks the super admin): org row lock, the status update, audit
1074
+ * `connector.updated` with `via: "platform"`. `auditDetail` (a Platform tool write's
1075
+ * `viaAgent`) is merged into the detail; `via` stays `"platform"`.
1076
+ */
1077
+ async setStatusAsPlatform(connectorId, status, actor, auditDetail) {
1078
+ const t = this.db;
1079
+ const orgId = await this.liveOrgOf(connectorId);
1080
+ await this.orgLock.lock(orgId);
1081
+ const app = await this.row(t, orgId, connectorId, true);
1082
+ await t
1083
+ .updateTable("connectors")
1084
+ .set({ status, updated_at: sql `now()` })
1085
+ .where("id", "=", connectorId)
1086
+ .execute();
1087
+ await audit(t, {
1088
+ actorAccountId: actor.accountId,
1089
+ ...(actor.tokenId !== undefined && { actorTokenId: actor.tokenId }),
1090
+ orgId,
1091
+ action: "connector.updated",
1092
+ target: connectorId,
1093
+ detail: { ...auditDetail, status: { from: app.status, to: status }, via: "platform" },
1094
+ });
1095
+ }
1096
+ /**
1097
+ * Deletes a connector on the platform's behalf (see {@link setStatusAsPlatform}): org row lock,
1098
+ * then {@link removeIn} with `via: "platform"` in the audit detail (merged over `auditDetail`,
1099
+ * a Platform tool write's `viaAgent`).
1100
+ */
1101
+ async removeAsPlatform(connectorId, actor, auditDetail) {
1102
+ const orgId = await this.liveOrgOf(connectorId);
1103
+ await this.orgLock.lock(orgId);
1104
+ await this.removeIn(orgId, connectorId, actor.accountId, actor.tokenId, undefined, {
1105
+ ...auditDetail,
1106
+ via: "platform",
1107
+ });
1108
+ }
885
1109
  /** 软删除,并删除该连接器的全部凭据(`connectors.manage`)。 */
886
- async remove(orgId, connectorId, actorAccountId, actorTokenId) {
1110
+ async remove(orgId, connectorId, actorAccountId, actorTokenId, auditDetail) {
887
1111
  await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "connectors.manage");
888
- await this.removeIn(orgId, connectorId, actorAccountId, actorTokenId);
1112
+ await this.removeIn(orgId, connectorId, actorAccountId, actorTokenId, undefined, auditDetail);
889
1113
  }
890
1114
  /**
891
1115
  * 在调用方事务里软删除连接器(调用方已锁组织行并按需复核角色;应用安装的回滚与卸载用):删全部凭据与授权,
892
1116
  * 审计 `connector.deleted`(`reason` 并进 detail)。已删除 / 不存在 → `connector.not_found`。
893
1117
  */
894
- async removeIn(orgId, connectorId, actorAccountId, actorTokenId, reason) {
1118
+ async removeIn(orgId, connectorId,
1119
+ /** null: the kernel itself (the plugin scope sync uninstalling a plugin). */
1120
+ actorAccountId, actorTokenId, reason,
1121
+ /** Merged into the audit detail (a write made through the Platform tool). */
1122
+ auditDetail) {
895
1123
  const t = this.db;
896
1124
  const app = await this.row(t, orgId, connectorId, true);
897
1125
  await t
@@ -912,7 +1140,7 @@ let ConnectorsService = class ConnectorsService {
912
1140
  orgId,
913
1141
  action: "connector.deleted",
914
1142
  target: connectorId,
915
- detail: { slug: app.slug, ...(reason !== undefined && { reason }) },
1143
+ detail: { slug: app.slug, ...(reason !== undefined && { reason }), ...auditDetail },
916
1144
  });
917
1145
  }
918
1146
  /**
@@ -954,7 +1182,7 @@ let ConnectorsService = class ConnectorsService {
954
1182
  orgId,
955
1183
  action: "connector.tools_refreshed",
956
1184
  target: connectorId,
957
- detail: { ...changes, ...(opts.trigger && { trigger: opts.trigger }) },
1185
+ detail: { ...changes, ...(opts.trigger && { trigger: opts.trigger }), ...opts.auditDetail },
958
1186
  });
959
1187
  return {
960
1188
  connector: await this.detail(t, orgId, connectorId, actorAccountId),
@@ -1107,7 +1335,7 @@ let ConnectorsService = class ConnectorsService {
1107
1335
  let tokens;
1108
1336
  if (auth.type === "oauth_client") {
1109
1337
  try {
1110
- tokens = await tokenRequest(client, { grant_type: "client_credentials", scope: (auth.scopes ?? client.scopes)?.join(" ") }, oauthHttpOptions(this.config.get()));
1338
+ tokens = await tokenRequest(client, { grant_type: "client_credentials", scope: (auth.scopes ?? client.scopes)?.join(" ") }, oauthHttpOptions(this.config.get()), { tokenTypes: auth.tokenTypes });
1111
1339
  }
1112
1340
  catch (e) {
1113
1341
  throw connectFailed(e);
@@ -1154,9 +1382,18 @@ __decorate([
1154
1382
  __decorate([
1155
1383
  Transactional({ propagation: "mandatory" })
1156
1384
  ], ConnectorsService.prototype, "applyTemplateIn", null);
1385
+ __decorate([
1386
+ Transactional()
1387
+ ], ConnectorsService.prototype, "ackIn", null);
1157
1388
  __decorate([
1158
1389
  Transactional()
1159
1390
  ], ConnectorsService.prototype, "update", null);
1391
+ __decorate([
1392
+ Transactional()
1393
+ ], ConnectorsService.prototype, "setStatusAsPlatform", null);
1394
+ __decorate([
1395
+ Transactional()
1396
+ ], ConnectorsService.prototype, "removeAsPlatform", null);
1160
1397
  __decorate([
1161
1398
  Transactional()
1162
1399
  ], ConnectorsService.prototype, "remove", null);
@@ -1187,6 +1424,7 @@ ConnectorsService = __decorate([
1187
1424
  __param(4, Inject(KernelConfigService)),
1188
1425
  __param(5, Inject(ToolDrift)),
1189
1426
  __param(6, Inject(OrgLock)),
1190
- __param(7, Inject(TransactionHost))
1427
+ __param(7, Inject(TransactionHost)),
1428
+ __param(8, Inject(PluginGuides))
1191
1429
  ], ConnectorsService);
1192
1430
  export { ConnectorsService };
@@ -42,12 +42,15 @@ export type OAuthAuth = {
42
42
  client: "dcr" | "manual";
43
43
  /** 令牌端点的客户端认证方式(有密钥时),默认 client_secret_basic。 */
44
44
  tokenAuthMethod?: "client_secret_basic" | "client_secret_post" | undefined;
45
+ /** More `token_type` values accepted as bearer tokens (besides Bearer and `user`). */
46
+ tokenTypes?: string[] | undefined;
45
47
  } | {
46
48
  type: "oauth_client";
47
49
  ownership: "org";
48
50
  tokenUrl: string;
49
51
  scopes?: string[] | undefined;
50
52
  tokenAuthMethod?: "client_secret_basic" | "client_secret_post" | undefined;
53
+ tokenTypes?: string[] | undefined;
51
54
  };
52
55
  export type ConnectorAuth = StaticAuth | OAuthAuth;
53
56
  export declare const isOAuth: (auth: ConnectorAuth) => auth is OAuthAuth;
@@ -116,6 +119,26 @@ export declare class Credentials {
116
119
  * 都会更新写入时间),最多 `limit` 个。漂移检查用它挑个人凭据型连接器的凭据。
117
120
  */
118
121
  personalHolders(orgId: string, connectorId: string, limit: number): Promise<string[]>;
122
+ /**
123
+ * For setup checks (setup guides v2 §10.4): the input revision of a connector's credentials,
124
+ * the `updated_at` of its OAuth client row, its org credential row and, given `accountId`, that
125
+ * member's row (ISO), never a value. Reads no secret.
126
+ */
127
+ checkRevision(orgId: string, connectorId: string, accountId: string | null): Promise<string>;
128
+ /**
129
+ * For setup checks (setup guides v2 §10.8), never refreshing or writing anything: every stored
130
+ * credential value of a connector (decrypted: the OAuth client secret and DCR registration
131
+ * token, the org credential, every member's access and refresh tokens or static values) that a
132
+ * check result is redacted by, with the forms they are sent in (what `injectionSecrets` covers
133
+ * for a tool call: the Basic header value, its base64 token and decoded `user:pass`, the
134
+ * `encodeURIComponent` forms; for the client also the `client_secret_basic` header the token
135
+ * request sends and the raw `id:secret`), and the stored OAuth client id (null without a
136
+ * client). Never echo the values; a plugin check gets only a manual client's id.
137
+ */
138
+ checkMaterial(orgId: string, connectorId: string): Promise<{
139
+ secrets: string[];
140
+ clientId: string | null;
141
+ }>;
119
142
  /** 只看与 auth.ownership 对应的那一条凭据是否存在(不解密);none 恒为 connected。 */
120
143
  status(orgId: string, connectorId: string, auth: ConnectorAuth, accountId: string): Promise<"connected" | "missing">;
121
144
  /** 返回本次请求要注入的头 / 查询参数;缺凭据抛 CredentialMissing。 */
@@ -17,7 +17,7 @@ import { KernelDb } from "../infra/database/kernel-db.js";
17
17
  import { LockService } from "../infra/lock/lock.service.js";
18
18
  import { KERNEL_LOGGER, KEYRING, REDIS } from "../infra/tokens.js";
19
19
  import { oauthHttpOptions } from "./oauth/discovery.js";
20
- import { OAuthReconnectRequired, OAuthTokens, } from "./oauth/tokens.js";
20
+ import { basicClientAuth, OAuthReconnectRequired, OAuthTokens, } from "./oauth/tokens.js";
21
21
  import { injectionSecrets } from "./redact.js";
22
22
  export const isOAuth = (auth) => auth.type === "oauth_code" || auth.type === "oauth_client";
23
23
  /** 缺凭据:只带连接器 id 与归属,绝不带值。 */
@@ -239,6 +239,95 @@ let Credentials = class Credentials {
239
239
  LIMIT ${limit}`.execute(this.db.db);
240
240
  return rows.rows.map((r) => r.account_id);
241
241
  }
242
+ /**
243
+ * For setup checks (setup guides v2 §10.4): the input revision of a connector's credentials,
244
+ * the `updated_at` of its OAuth client row, its org credential row and, given `accountId`, that
245
+ * member's row (ISO), never a value. Reads no secret.
246
+ */
247
+ async checkRevision(orgId, connectorId, accountId) {
248
+ const keys = [clientKey(connectorId), orgKey(connectorId)];
249
+ if (accountId !== null)
250
+ keys.push(userKey(connectorId, accountId));
251
+ const rows = await this.db
252
+ .selectFrom("secrets")
253
+ .select(["key", "updated_at"])
254
+ .where("namespace", "=", NAMESPACE)
255
+ .where("org_id", "=", orgId)
256
+ .where("key", "in", keys)
257
+ .execute();
258
+ const at = new Map(rows.map((r) => [r.key, new Date(r.updated_at).toISOString()]));
259
+ return keys.map((k) => at.get(k) ?? "-").join("|");
260
+ }
261
+ /**
262
+ * For setup checks (setup guides v2 §10.8), never refreshing or writing anything: every stored
263
+ * credential value of a connector (decrypted: the OAuth client secret and DCR registration
264
+ * token, the org credential, every member's access and refresh tokens or static values) that a
265
+ * check result is redacted by, with the forms they are sent in (what `injectionSecrets` covers
266
+ * for a tool call: the Basic header value, its base64 token and decoded `user:pass`, the
267
+ * `encodeURIComponent` forms; for the client also the `client_secret_basic` header the token
268
+ * request sends and the raw `id:secret`), and the stored OAuth client id (null without a
269
+ * client). Never echo the values; a plugin check gets only a manual client's id.
270
+ */
271
+ async checkMaterial(orgId, connectorId) {
272
+ const prefix = orgKey(connectorId).slice(0, -"org".length);
273
+ const rows = await this.db
274
+ .selectFrom("secrets")
275
+ .select("key")
276
+ .where("namespace", "=", NAMESPACE)
277
+ .where("org_id", "=", orgId)
278
+ .where(sql `left(key, ${prefix.length})`, "=", prefix)
279
+ .execute();
280
+ const secrets = new Set();
281
+ const push = (...vs) => {
282
+ for (const v of vs) {
283
+ if (typeof v !== "string" || v === "")
284
+ continue;
285
+ // the value and the forms an injection carries it in (`Bearer`, query, percent-encoded)
286
+ for (const s of injectionSecrets({ headers: { a: `Bearer ${v}` }, query: { q: v } })) {
287
+ secrets.add(s);
288
+ }
289
+ }
290
+ };
291
+ const pushBasic = (user, password) => {
292
+ const header = `Basic ${Buffer.from(`${user}:${password}`).toString("base64")}`;
293
+ for (const s of injectionSecrets({ headers: { a: header } }))
294
+ secrets.add(s);
295
+ };
296
+ let clientId = null;
297
+ for (const r of rows) {
298
+ const v = (await this.readJson(orgId, r.key, connectorId));
299
+ if (v === null || typeof v !== "object")
300
+ continue;
301
+ if (r.key === clientKey(connectorId)) {
302
+ // the client id is not a secret (a plugin check gets it); the secret and DCR token are
303
+ if (typeof v.clientId === "string")
304
+ clientId = v.clientId;
305
+ push(v.clientSecret, v.registration?.accessToken);
306
+ if (typeof v.clientId === "string" && typeof v.clientSecret === "string") {
307
+ // as the token request sends it (both parts form-encoded), and as typed
308
+ const header = basicClientAuth(v.clientId, v.clientSecret);
309
+ for (const s of injectionSecrets({ headers: { a: header } }))
310
+ secrets.add(s);
311
+ pushBasic(v.clientId, v.clientSecret);
312
+ }
313
+ }
314
+ else if (typeof v.access_token === "string") {
315
+ push(v.access_token, v.refresh_token);
316
+ }
317
+ else {
318
+ push(v.token, v.password);
319
+ if (typeof v.username === "string" && typeof v.password === "string") {
320
+ pushBasic(v.username, v.password);
321
+ }
322
+ if (typeof v.headers === "object" && v.headers !== null) {
323
+ const headers = Object.fromEntries(Object.entries(v.headers).filter((e) => typeof e[1] === "string"));
324
+ for (const s of injectionSecrets({ headers }))
325
+ secrets.add(s);
326
+ }
327
+ }
328
+ }
329
+ return { secrets: [...secrets], clientId };
330
+ }
242
331
  /** 只看与 auth.ownership 对应的那一条凭据是否存在(不解密);none 恒为 connected。 */
243
332
  async status(orgId, connectorId, auth, accountId) {
244
333
  if (auth.type === "none")
@@ -0,0 +1,9 @@
1
+ import type { LocalizedName } from "@capybara-hq/plugin-sdk";
2
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
3
+ /**
4
+ * The display names of plugins, for naming their extensions' tools (`<display name> [<tool>]`,
5
+ * tool naming spec §7): the live catalog item's `displayName`, else the plugin name in both
6
+ * languages (a bootstrap or uploaded plugin without a catalog item, or one without a display name).
7
+ * Display only.
8
+ */
9
+ export declare function pluginDisplayNames(db: KernelSchemaDb, names: readonly string[]): Promise<Map<string, LocalizedName>>;