@capybara-hq/kernel 0.1.0-rc.0 → 0.1.0-rc.10

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 (1152) hide show
  1. package/bootstrap.json +92 -8
  2. package/dist/admin/admin.controller.d.ts +52 -71
  3. package/dist/admin/admin.controller.js +117 -63
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/admin.schemas.d.ts +57 -0
  7. package/dist/admin/admin.schemas.js +50 -0
  8. package/dist/admin/extensions.controller.d.ts +47 -16
  9. package/dist/admin/extensions.controller.js +94 -23
  10. package/dist/admin/extensions.schemas.d.ts +7 -0
  11. package/dist/admin/extensions.schemas.js +10 -0
  12. package/dist/admin/limit-defaults.d.ts +20 -0
  13. package/dist/admin/limit-defaults.js +10 -0
  14. package/dist/admin/setup-lock.d.ts +16 -0
  15. package/dist/admin/setup-lock.js +47 -0
  16. package/dist/admin/setup.controller.d.ts +9 -9
  17. package/dist/admin/setup.controller.js +28 -26
  18. package/dist/admin/setup.service.d.ts +20 -28
  19. package/dist/admin/setup.service.js +65 -65
  20. package/dist/agents/agent-lookup.d.ts +72 -0
  21. package/dist/agents/agent-lookup.js +208 -0
  22. package/dist/agents/agent-profile.service.d.ts +31 -0
  23. package/dist/agents/agent-profile.service.js +122 -0
  24. package/dist/agents/agents.controller.d.ts +54 -169
  25. package/dist/agents/agents.controller.js +172 -37
  26. package/dist/agents/agents.module.d.ts +10 -0
  27. package/dist/agents/agents.module.js +71 -0
  28. package/dist/agents/agents.schemas.d.ts +389 -0
  29. package/dist/agents/agents.schemas.js +126 -0
  30. package/dist/agents/agents.service.d.ts +104 -76
  31. package/dist/agents/agents.service.js +509 -383
  32. package/dist/agents/definition.d.ts +133 -21
  33. package/dist/agents/definition.js +361 -41
  34. package/dist/agents/from-template.d.ts +106 -0
  35. package/dist/agents/from-template.js +680 -0
  36. package/dist/agents/from-template.service.d.ts +72 -0
  37. package/dist/agents/from-template.service.js +178 -0
  38. package/dist/agents/instruction-files.d.ts +60 -0
  39. package/dist/agents/instruction-files.js +111 -0
  40. package/dist/agents/models.controller.d.ts +44 -6
  41. package/dist/agents/models.controller.js +84 -8
  42. package/dist/agents/org-templates.d.ts +186 -0
  43. package/dist/agents/org-templates.js +868 -0
  44. package/dist/agents/pending-connector-requests.d.ts +79 -0
  45. package/dist/agents/pending-connector-requests.js +215 -0
  46. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  47. package/dist/agents/pending-connectors.controller.js +91 -0
  48. package/dist/agents/pending-connectors.service.d.ts +62 -0
  49. package/dist/agents/pending-connectors.service.js +282 -0
  50. package/dist/agents/profile.d.ts +114 -0
  51. package/dist/agents/profile.js +55 -0
  52. package/dist/agents/readiness.controller.d.ts +26 -0
  53. package/dist/agents/readiness.controller.js +56 -0
  54. package/dist/agents/templates.controller.d.ts +78 -6
  55. package/dist/agents/templates.controller.js +154 -8
  56. package/dist/agents/templates.d.ts +132 -30
  57. package/dist/agents/templates.js +500 -46
  58. package/dist/agents/templates.schemas.d.ts +20 -0
  59. package/dist/agents/templates.schemas.js +45 -0
  60. package/dist/app.d.ts +93 -0
  61. package/dist/app.js +150 -0
  62. package/dist/background/background.controller.d.ts +38 -0
  63. package/dist/background/background.controller.js +88 -0
  64. package/dist/background/background.module.d.ts +10 -0
  65. package/dist/background/background.module.js +39 -0
  66. package/dist/background/background.schemas.d.ts +10 -0
  67. package/dist/background/background.schemas.js +16 -0
  68. package/dist/background/finish.d.ts +44 -0
  69. package/dist/background/finish.js +95 -0
  70. package/dist/background/launch-lock.d.ts +15 -0
  71. package/dist/background/launch-lock.js +40 -0
  72. package/dist/background/launch.d.ts +42 -0
  73. package/dist/background/launch.js +77 -0
  74. package/dist/background/poll.job.d.ts +56 -0
  75. package/dist/background/poll.job.js +195 -0
  76. package/dist/background/render.d.ts +23 -0
  77. package/dist/background/render.js +48 -0
  78. package/dist/background/session.d.ts +48 -0
  79. package/dist/background/session.js +80 -0
  80. package/dist/background/status.d.ts +35 -0
  81. package/dist/background/status.js +57 -0
  82. package/dist/background/stop.d.ts +68 -0
  83. package/dist/background/stop.js +244 -0
  84. package/dist/background/store.d.ts +167 -0
  85. package/dist/background/store.js +361 -0
  86. package/dist/background/store.module.d.ts +6 -0
  87. package/dist/background/store.module.js +22 -0
  88. package/dist/background/tasks.service.d.ts +77 -0
  89. package/dist/background/tasks.service.js +216 -0
  90. package/dist/background/wake-rules.d.ts +66 -0
  91. package/dist/background/wake-rules.js +113 -0
  92. package/dist/background/wake.d.ts +30 -0
  93. package/dist/background/wake.js +63 -0
  94. package/dist/catalog/admin-catalog.controller.d.ts +102 -52
  95. package/dist/catalog/admin-catalog.controller.js +222 -67
  96. package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
  97. package/dist/catalog/admin-catalog.schemas.js +92 -0
  98. package/dist/catalog/catalog-content.d.ts +232 -0
  99. package/dist/catalog/catalog-content.js +367 -0
  100. package/dist/catalog/catalog-files.d.ts +41 -0
  101. package/dist/catalog/catalog-files.js +86 -0
  102. package/dist/catalog/catalog-import.module.d.ts +7 -0
  103. package/dist/catalog/catalog-import.module.js +60 -0
  104. package/dist/catalog/catalog-items.d.ts +290 -0
  105. package/dist/catalog/catalog-items.js +676 -0
  106. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  107. package/dist/catalog/catalog-scope.service.js +1124 -0
  108. package/dist/catalog/catalog.module.d.ts +12 -0
  109. package/dist/catalog/catalog.module.js +81 -0
  110. package/dist/catalog/catalog.service.d.ts +141 -206
  111. package/dist/catalog/catalog.service.js +237 -528
  112. package/dist/catalog/claude/agents.js +15 -10
  113. package/dist/catalog/cli.d.ts +14 -3
  114. package/dist/catalog/cli.js +39 -32
  115. package/dist/catalog/component-promotion.d.ts +96 -0
  116. package/dist/catalog/component-promotion.js +395 -0
  117. package/dist/catalog/component-scope.controller.d.ts +90 -0
  118. package/dist/catalog/component-scope.controller.js +234 -0
  119. package/dist/catalog/component-scope.schemas.d.ts +114 -0
  120. package/dist/catalog/component-scope.schemas.js +97 -0
  121. package/dist/catalog/component-scope.service.d.ts +327 -0
  122. package/dist/catalog/component-scope.service.js +990 -0
  123. package/dist/catalog/component-state.d.ts +188 -0
  124. package/dist/catalog/component-state.js +455 -0
  125. package/dist/catalog/git-source.d.ts +9 -1
  126. package/dist/catalog/git-source.js +29 -2
  127. package/dist/catalog/job-ids.d.ts +45 -0
  128. package/dist/catalog/job-ids.js +40 -0
  129. package/dist/catalog/jobs.d.ts +27 -0
  130. package/dist/catalog/jobs.js +70 -0
  131. package/dist/catalog/locks.d.ts +24 -0
  132. package/dist/catalog/locks.js +63 -0
  133. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  134. package/dist/catalog/marketplace-icons.d.ts +64 -0
  135. package/dist/catalog/marketplace-icons.js +131 -0
  136. package/dist/catalog/marketplaces.controller.d.ts +53 -44
  137. package/dist/catalog/marketplaces.controller.js +146 -51
  138. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  139. package/dist/catalog/marketplaces.schemas.js +53 -0
  140. package/dist/catalog/marketplaces.service.d.ts +136 -26
  141. package/dist/catalog/marketplaces.service.js +663 -281
  142. package/dist/catalog/org-catalog.controller.d.ts +115 -63
  143. package/dist/catalog/org-catalog.controller.js +207 -100
  144. package/dist/catalog/org-catalog.schemas.d.ts +88 -0
  145. package/dist/catalog/org-catalog.schemas.js +93 -0
  146. package/dist/catalog/org-catalog.service.d.ts +89 -216
  147. package/dist/catalog/org-catalog.service.js +431 -472
  148. package/dist/catalog/org-extension-switch.d.ts +41 -0
  149. package/dist/catalog/org-extension-switch.js +115 -0
  150. package/dist/catalog/org-extension.controller.d.ts +113 -0
  151. package/dist/catalog/org-extension.controller.js +271 -0
  152. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  153. package/dist/catalog/org-extension.schemas.js +22 -0
  154. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  155. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  156. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  157. package/dist/catalog/org-plugin-uploads.js +122 -0
  158. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  159. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  160. package/dist/catalog/owned-items.d.ts +188 -0
  161. package/dist/catalog/owned-items.js +801 -0
  162. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  163. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  164. package/dist/catalog/ownership.d.ts +172 -0
  165. package/dist/catalog/ownership.js +326 -0
  166. package/dist/catalog/platform-components.d.ts +223 -0
  167. package/dist/catalog/platform-components.js +763 -0
  168. package/dist/catalog/platform-migration.d.ts +115 -0
  169. package/dist/catalog/platform-migration.js +582 -0
  170. package/dist/catalog/plugin-import.d.ts +270 -68
  171. package/dist/catalog/plugin-import.js +1004 -277
  172. package/dist/catalog/plugin-install.d.ts +251 -65
  173. package/dist/catalog/plugin-install.js +1128 -344
  174. package/dist/catalog/plugin-package.js +14 -1
  175. package/dist/catalog/plugin-upgrade.d.ts +301 -188
  176. package/dist/catalog/plugin-upgrade.js +1256 -1068
  177. package/dist/catalog/request-rules.d.ts +65 -0
  178. package/dist/catalog/request-rules.js +217 -0
  179. package/dist/catalog/requests.service.d.ts +205 -117
  180. package/dist/catalog/requests.service.js +612 -369
  181. package/dist/catalog/reserved-names.d.ts +8 -0
  182. package/dist/catalog/reserved-names.js +42 -0
  183. package/dist/catalog/scope-orgs.d.ts +21 -0
  184. package/dist/catalog/scope-orgs.js +67 -0
  185. package/dist/catalog/scope-state.d.ts +35 -0
  186. package/dist/catalog/scope-state.js +87 -0
  187. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  188. package/dist/catalog/scope-sync-workers.js +29 -0
  189. package/dist/catalog/scope-sync.d.ts +176 -0
  190. package/dist/catalog/scope-sync.js +576 -0
  191. package/dist/catalog/scope.d.ts +42 -0
  192. package/dist/catalog/scope.js +42 -0
  193. package/dist/catalog/unshare.d.ts +22 -0
  194. package/dist/catalog/unshare.js +118 -0
  195. package/dist/channels/actions.d.ts +6 -4
  196. package/dist/channels/actions.js +11 -4
  197. package/dist/channels/cards.d.ts +33 -11
  198. package/dist/channels/cards.js +96 -24
  199. package/dist/channels/channels.module.d.ts +40 -0
  200. package/dist/channels/channels.module.js +130 -0
  201. package/dist/channels/channels.schemas.d.ts +37 -0
  202. package/dist/channels/channels.schemas.js +38 -0
  203. package/dist/channels/connections.controller.d.ts +44 -37
  204. package/dist/channels/connections.controller.js +83 -38
  205. package/dist/channels/connections.service.d.ts +101 -30
  206. package/dist/channels/connections.service.js +380 -147
  207. package/dist/channels/inbound.d.ts +44 -38
  208. package/dist/channels/inbound.js +190 -44
  209. package/dist/channels/job-ids.d.ts +10 -0
  210. package/dist/channels/job-ids.js +10 -0
  211. package/dist/channels/jobs.d.ts +85 -0
  212. package/dist/channels/jobs.js +157 -0
  213. package/dist/channels/outbound.d.ts +71 -80
  214. package/dist/channels/outbound.js +219 -201
  215. package/dist/channels/phrases.d.ts +33 -2
  216. package/dist/channels/phrases.js +29 -1
  217. package/dist/channels/supervisor.d.ts +88 -46
  218. package/dist/channels/supervisor.js +230 -132
  219. package/dist/channels/threads.d.ts +34 -8
  220. package/dist/channels/threads.js +79 -13
  221. package/dist/channels/webhook.d.ts +20 -14
  222. package/dist/channels/webhook.js +51 -20
  223. package/dist/config/docs.js +5 -1
  224. package/dist/config/load.d.ts +3 -2
  225. package/dist/config/load.js +3 -2
  226. package/dist/config/nacos-source.js +11 -2
  227. package/dist/config/schema.d.ts +51 -3
  228. package/dist/config/schema.js +269 -27
  229. package/dist/conversations/access.d.ts +31 -0
  230. package/dist/conversations/access.js +110 -0
  231. package/dist/conversations/agent-tree.d.ts +46 -0
  232. package/dist/conversations/agent-tree.js +92 -0
  233. package/dist/conversations/artifacts.d.ts +11 -11
  234. package/dist/conversations/artifacts.js +36 -10
  235. package/dist/conversations/attachments.controller.d.ts +1 -1
  236. package/dist/conversations/attachments.controller.js +8 -6
  237. package/dist/conversations/attachments.module.d.ts +7 -0
  238. package/dist/conversations/attachments.module.js +25 -0
  239. package/dist/conversations/attachments.service.d.ts +60 -22
  240. package/dist/conversations/attachments.service.js +249 -51
  241. package/dist/conversations/conversations.controller.d.ts +86 -50
  242. package/dist/conversations/conversations.controller.js +184 -103
  243. package/dist/conversations/conversations.module.d.ts +8 -0
  244. package/dist/conversations/conversations.module.js +72 -0
  245. package/dist/conversations/conversations.schemas.d.ts +52 -0
  246. package/dist/conversations/conversations.schemas.js +79 -0
  247. package/dist/conversations/conversations.service.d.ts +166 -49
  248. package/dist/conversations/conversations.service.js +383 -179
  249. package/dist/conversations/environment-status.d.ts +24 -0
  250. package/dist/conversations/environment-status.js +71 -0
  251. package/dist/conversations/event-log.d.ts +64 -27
  252. package/dist/conversations/event-log.js +167 -31
  253. package/dist/conversations/events.d.ts +252 -9
  254. package/dist/conversations/events.js +243 -32
  255. package/dist/conversations/files.d.ts +10 -10
  256. package/dist/conversations/files.js +37 -11
  257. package/dist/conversations/idem-keys.d.ts +5 -0
  258. package/dist/conversations/idem-keys.js +5 -0
  259. package/dist/conversations/job-ids.d.ts +6 -0
  260. package/dist/conversations/job-ids.js +6 -0
  261. package/dist/conversations/message-context.d.ts +79 -0
  262. package/dist/conversations/message-context.js +145 -0
  263. package/dist/conversations/outputs-read.d.ts +11 -11
  264. package/dist/conversations/outputs-read.js +31 -7
  265. package/dist/conversations/queue.d.ts +53 -58
  266. package/dist/conversations/queue.js +37 -293
  267. package/dist/conversations/queue.service.d.ts +60 -0
  268. package/dist/conversations/queue.service.js +350 -0
  269. package/dist/conversations/titles.d.ts +83 -27
  270. package/dist/conversations/titles.js +195 -70
  271. package/dist/conversations/tree.d.ts +17 -0
  272. package/dist/conversations/tree.js +42 -0
  273. package/dist/ctx/bus.js +9 -3
  274. package/dist/ctx/create-ctx.d.ts +26 -1
  275. package/dist/ctx/create-ctx.js +45 -16
  276. package/dist/ctx/lock.d.ts +7 -3
  277. package/dist/ctx/lock.js +9 -20
  278. package/dist/ctx/queue.js +3 -2
  279. package/dist/ctx/secrets.d.ts +10 -2
  280. package/dist/ctx/secrets.js +7 -3
  281. package/dist/db/kernel-schema.d.ts +550 -25
  282. package/dist/db/pool.d.ts +10 -0
  283. package/dist/db/pool.js +4 -0
  284. package/dist/devices/device-auth.controller.d.ts +42 -0
  285. package/dist/devices/device-auth.controller.js +116 -0
  286. package/dist/devices/device-auth.d.ts +119 -0
  287. package/dist/devices/device-auth.js +403 -0
  288. package/dist/devices/device-auth.module.d.ts +7 -0
  289. package/dist/devices/device-auth.module.js +25 -0
  290. package/dist/devices/device-gateway.d.ts +128 -0
  291. package/dist/devices/device-gateway.js +530 -0
  292. package/dist/devices/device-provider.d.ts +89 -0
  293. package/dist/devices/device-provider.js +151 -0
  294. package/dist/devices/device-routes.d.ts +36 -0
  295. package/dist/devices/device-routes.js +90 -0
  296. package/dist/devices/devices.module.d.ts +16 -0
  297. package/dist/devices/devices.module.js +44 -0
  298. package/dist/devices/dto.d.ts +66 -0
  299. package/dist/devices/dto.js +44 -0
  300. package/dist/devices/keys.d.ts +25 -0
  301. package/dist/devices/keys.js +25 -0
  302. package/dist/devices/machines.d.ts +118 -0
  303. package/dist/devices/machines.js +366 -0
  304. package/dist/devices/relay.d.ts +100 -0
  305. package/dist/devices/relay.js +373 -0
  306. package/dist/devices/targets.d.ts +28 -0
  307. package/dist/devices/targets.js +73 -0
  308. package/dist/environments/access.d.ts +66 -0
  309. package/dist/environments/access.js +113 -0
  310. package/dist/environments/conversation-environments.d.ts +75 -0
  311. package/dist/environments/conversation-environments.js +231 -0
  312. package/dist/environments/dto.d.ts +25 -0
  313. package/dist/environments/dto.js +12 -0
  314. package/dist/environments/environments.controller.d.ts +36 -0
  315. package/dist/environments/environments.controller.js +124 -0
  316. package/dist/environments/environments.module.d.ts +8 -0
  317. package/dist/environments/environments.module.js +31 -0
  318. package/dist/environments/environments.schemas.d.ts +3 -0
  319. package/dist/environments/environments.schemas.js +14 -0
  320. package/dist/environments/environments.service.d.ts +251 -0
  321. package/dist/environments/environments.service.js +791 -0
  322. package/dist/environments/label.d.ts +11 -0
  323. package/dist/environments/label.js +25 -0
  324. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  325. package/dist/environments/legacy-cleanup.job.js +141 -0
  326. package/dist/errors.d.ts +136 -2
  327. package/dist/errors.js +136 -2
  328. package/dist/evals/budget.d.ts +42 -21
  329. package/dist/evals/budget.js +114 -62
  330. package/dist/evals/evals.module.d.ts +31 -0
  331. package/dist/evals/evals.module.js +114 -0
  332. package/dist/evals/evals.schemas.d.ts +110 -0
  333. package/dist/evals/evals.schemas.js +107 -0
  334. package/dist/evals/jobs.d.ts +20 -0
  335. package/dist/evals/jobs.js +45 -0
  336. package/dist/evals/reconstruct.d.ts +18 -9
  337. package/dist/evals/reconstruct.js +36 -10
  338. package/dist/evals/recorded-tools.d.ts +37 -1
  339. package/dist/evals/recorded-tools.js +120 -10
  340. package/dist/evals/run-replay.d.ts +75 -10
  341. package/dist/evals/run-replay.js +218 -94
  342. package/dist/evals/runs.controller.d.ts +3 -58
  343. package/dist/evals/runs.controller.js +18 -50
  344. package/dist/evals/runs.service.d.ts +31 -52
  345. package/dist/evals/runs.service.js +281 -255
  346. package/dist/evals/sets.controller.d.ts +3 -29
  347. package/dist/evals/sets.controller.js +18 -39
  348. package/dist/evals/sets.service.d.ts +29 -13
  349. package/dist/evals/sets.service.js +262 -202
  350. package/dist/evals/snapshot.d.ts +5 -4
  351. package/dist/evals/snapshot.js +17 -4
  352. package/dist/evals/step-replay.d.ts +6 -8
  353. package/dist/evals/step-replay.js +17 -10
  354. package/dist/evals/trajectory.controller.d.ts +1 -1
  355. package/dist/evals/trajectory.controller.js +11 -7
  356. package/dist/evals/trajectory.d.ts +2 -2
  357. package/dist/evals/trajectory.js +1 -1
  358. package/dist/evals/trajectory.service.d.ts +13 -7
  359. package/dist/evals/trajectory.service.js +56 -21
  360. package/dist/evals/worker.d.ts +48 -31
  361. package/dist/evals/worker.js +229 -123
  362. package/dist/extensions/admin-ops.d.ts +133 -41
  363. package/dist/extensions/admin-ops.js +378 -172
  364. package/dist/extensions/admin-view.d.ts +82 -32
  365. package/dist/extensions/admin-view.js +284 -71
  366. package/dist/extensions/approvals.d.ts +24 -10
  367. package/dist/extensions/approvals.js +73 -46
  368. package/dist/extensions/blobs.d.ts +27 -10
  369. package/dist/extensions/blobs.js +112 -45
  370. package/dist/extensions/bootstrap.d.ts +136 -46
  371. package/dist/extensions/bootstrap.js +417 -167
  372. package/dist/extensions/cli.d.ts +32 -10
  373. package/dist/extensions/cli.js +52 -98
  374. package/dist/extensions/config-hash.d.ts +10 -0
  375. package/dist/extensions/config-hash.js +38 -0
  376. package/dist/extensions/config-issues.d.ts +19 -0
  377. package/dist/extensions/config-issues.js +48 -0
  378. package/dist/extensions/config-json-schema.d.ts +43 -7
  379. package/dist/extensions/config-json-schema.js +124 -58
  380. package/dist/extensions/deployment-config-store.d.ts +55 -0
  381. package/dist/extensions/deployment-config-store.js +133 -0
  382. package/dist/extensions/deployment-config.d.ts +146 -70
  383. package/dist/extensions/deployment-config.js +439 -246
  384. package/dist/extensions/display-name.d.ts +22 -0
  385. package/dist/extensions/display-name.js +77 -0
  386. package/dist/extensions/effective-config.d.ts +127 -0
  387. package/dist/extensions/effective-config.js +368 -0
  388. package/dist/extensions/enabled.d.ts +5 -5
  389. package/dist/extensions/extensions.module.d.ts +8 -0
  390. package/dist/extensions/extensions.module.js +96 -0
  391. package/dist/extensions/hooks.d.ts +40 -6
  392. package/dist/extensions/hooks.js +83 -17
  393. package/dist/extensions/host.d.ts +161 -80
  394. package/dist/extensions/host.js +505 -213
  395. package/dist/extensions/installs.d.ts +73 -19
  396. package/dist/extensions/installs.js +174 -37
  397. package/dist/extensions/job-ids.d.ts +6 -0
  398. package/dist/extensions/job-ids.js +6 -0
  399. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  400. package/dist/extensions/lifecycle-topics.js +18 -0
  401. package/dist/extensions/lifecycle.d.ts +35 -47
  402. package/dist/extensions/lifecycle.js +103 -39
  403. package/dist/extensions/locks.d.ts +45 -0
  404. package/dist/extensions/locks.js +112 -0
  405. package/dist/extensions/migrate-lock.d.ts +3 -4
  406. package/dist/extensions/org-config.d.ts +141 -49
  407. package/dist/extensions/org-config.js +471 -243
  408. package/dist/extensions/org-levels.d.ts +37 -0
  409. package/dist/extensions/org-levels.js +71 -0
  410. package/dist/extensions/org-overrides.d.ts +151 -0
  411. package/dist/extensions/org-overrides.js +524 -0
  412. package/dist/extensions/package.d.ts +14 -1
  413. package/dist/extensions/package.js +51 -2
  414. package/dist/extensions/permission-view.d.ts +59 -6
  415. package/dist/extensions/permission-view.js +7 -5
  416. package/dist/extensions/plugin-guides.d.ts +129 -0
  417. package/dist/extensions/plugin-guides.js +283 -0
  418. package/dist/extensions/plugin-icons.d.ts +54 -0
  419. package/dist/extensions/plugin-icons.js +125 -0
  420. package/dist/extensions/plugin-items.d.ts +21 -0
  421. package/dist/extensions/plugin-items.js +42 -0
  422. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  423. package/dist/extensions/point-defaults.controller.js +69 -0
  424. package/dist/extensions/point-defaults.d.ts +73 -0
  425. package/dist/extensions/point-defaults.js +236 -0
  426. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  427. package/dist/extensions/point-defaults.schemas.js +14 -0
  428. package/dist/extensions/registry.d.ts +50 -2
  429. package/dist/extensions/registry.js +91 -4
  430. package/dist/extensions/resolve.d.ts +51 -1
  431. package/dist/extensions/resolve.js +85 -3
  432. package/dist/extensions/single-provider.d.ts +92 -0
  433. package/dist/extensions/single-provider.js +180 -0
  434. package/dist/extensions/sources.d.ts +19 -10
  435. package/dist/extensions/sources.js +34 -13
  436. package/dist/extensions/state.module.d.ts +9 -0
  437. package/dist/extensions/state.module.js +38 -0
  438. package/dist/extensions/unavailable.d.ts +50 -0
  439. package/dist/extensions/unavailable.js +115 -0
  440. package/dist/files/files.module.d.ts +3 -0
  441. package/dist/files/files.module.js +22 -0
  442. package/dist/files/previewers.controller.d.ts +7 -2
  443. package/dist/files/previewers.controller.js +19 -12
  444. package/dist/files/previewers.d.ts +21 -19
  445. package/dist/files/previewers.js +114 -38
  446. package/dist/files/previewers.schemas.d.ts +10 -0
  447. package/dist/files/previewers.schemas.js +9 -0
  448. package/dist/http/adapter.d.ts +3 -0
  449. package/dist/http/adapter.js +25 -0
  450. package/dist/http/api.module.d.ts +3 -110
  451. package/dist/http/api.module.js +86 -358
  452. package/dist/http/app.d.ts +22 -17
  453. package/dist/http/app.js +83 -52
  454. package/dist/http/error-filter.module.d.ts +5 -0
  455. package/dist/http/error-filter.module.js +18 -0
  456. package/dist/http/error.filter.js +2 -2
  457. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  458. package/dist/http/gateway-routes.js +16 -0
  459. package/dist/http/nest-logger.d.ts +6 -5
  460. package/dist/http/nest-logger.js +24 -10
  461. package/dist/http/plugin-dispatch.d.ts +4 -1
  462. package/dist/http/plugin-dispatch.js +14 -2
  463. package/dist/identity/accounts.d.ts +130 -38
  464. package/dist/identity/accounts.js +373 -186
  465. package/dist/identity/api-tokens.d.ts +11 -7
  466. package/dist/identity/api-tokens.js +71 -44
  467. package/dist/identity/audit.d.ts +9 -5
  468. package/dist/identity/audit.js +5 -1
  469. package/dist/identity/auth.controller.d.ts +11 -10
  470. package/dist/identity/auth.controller.js +40 -30
  471. package/dist/identity/auth.guard.d.ts +16 -8
  472. package/dist/identity/auth.guard.js +41 -13
  473. package/dist/identity/binding.d.ts +9 -11
  474. package/dist/identity/binding.js +41 -13
  475. package/dist/identity/cookies.d.ts +26 -5
  476. package/dist/identity/cookies.js +58 -6
  477. package/dist/identity/external-identity-lock.d.ts +17 -0
  478. package/dist/identity/external-identity-lock.js +39 -0
  479. package/dist/identity/external.d.ts +19 -15
  480. package/dist/identity/external.js +163 -125
  481. package/dist/identity/identity.module.d.ts +6 -0
  482. package/dist/identity/identity.module.js +59 -0
  483. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  484. package/dist/identity/initial-passwords.controller.js +49 -0
  485. package/dist/identity/initial-passwords.d.ts +61 -0
  486. package/dist/identity/initial-passwords.job.d.ts +16 -0
  487. package/dist/identity/initial-passwords.job.js +46 -0
  488. package/dist/identity/initial-passwords.js +159 -0
  489. package/dist/identity/me.controller.d.ts +32 -15
  490. package/dist/identity/me.controller.js +78 -33
  491. package/dist/identity/me.schemas.d.ts +14 -0
  492. package/dist/identity/me.schemas.js +17 -0
  493. package/dist/identity/principal.d.ts +11 -3
  494. package/dist/identity/principal.js +11 -3
  495. package/dist/identity/sessions.d.ts +24 -10
  496. package/dist/identity/sessions.js +119 -42
  497. package/dist/identity/settings.d.ts +42 -23
  498. package/dist/identity/settings.js +137 -72
  499. package/dist/identity/sso.controller.d.ts +7 -7
  500. package/dist/identity/sso.controller.js +13 -9
  501. package/dist/identity/sso.d.ts +9 -12
  502. package/dist/identity/sso.js +54 -24
  503. package/dist/identity/super-admin.d.ts +20 -0
  504. package/dist/identity/super-admin.js +81 -0
  505. package/dist/inbox/inbox.module.d.ts +6 -0
  506. package/dist/inbox/inbox.module.js +26 -0
  507. package/dist/inbox/inbox.schemas.d.ts +8 -0
  508. package/dist/inbox/inbox.schemas.js +11 -0
  509. package/dist/inbox/inbox.service.d.ts +68 -11
  510. package/dist/inbox/inbox.service.js +104 -13
  511. package/dist/inbox/org-notices.d.ts +63 -0
  512. package/dist/inbox/org-notices.js +91 -0
  513. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  514. package/dist/inbox/platform-inbox.controller.js +58 -0
  515. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  516. package/dist/inbox/platform-inbox.service.js +263 -0
  517. package/dist/inbox/platform-notices.d.ts +19 -0
  518. package/dist/inbox/platform-notices.js +9 -0
  519. package/dist/index.d.ts +25 -14
  520. package/dist/index.js +20 -9
  521. package/dist/infra/cache/cache.module.d.ts +3 -0
  522. package/dist/infra/cache/cache.module.js +16 -0
  523. package/dist/infra/cache/cache.service.d.ts +21 -0
  524. package/dist/infra/cache/cache.service.js +80 -0
  525. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  526. package/dist/infra/cache/cacheable.decorator.js +83 -0
  527. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  528. package/dist/infra/cli/kernel-cli.module.js +173 -0
  529. package/dist/infra/close-within.d.ts +15 -0
  530. package/dist/infra/close-within.js +36 -0
  531. package/dist/infra/config/config.module.d.ts +13 -0
  532. package/dist/infra/config/config.module.js +39 -0
  533. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  534. package/dist/infra/config/kernel-config.service.js +157 -0
  535. package/dist/infra/database/after-commit.d.ts +6 -0
  536. package/dist/infra/database/after-commit.js +9 -0
  537. package/dist/infra/database/database.module.d.ts +25 -0
  538. package/dist/infra/database/database.module.js +91 -0
  539. package/dist/infra/database/kernel-db.d.ts +22 -0
  540. package/dist/infra/database/kernel-db.js +65 -0
  541. package/dist/infra/database/transaction-host.d.ts +50 -0
  542. package/dist/infra/database/transaction-host.js +125 -0
  543. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  544. package/dist/infra/database/transactional.decorator.js +27 -0
  545. package/dist/infra/database/xact-lock.d.ts +17 -0
  546. package/dist/infra/database/xact-lock.js +43 -0
  547. package/dist/infra/events/kernel-events.d.ts +121 -0
  548. package/dist/infra/events/kernel-events.js +65 -0
  549. package/dist/infra/health/health.controller.d.ts +26 -0
  550. package/dist/infra/health/health.controller.js +104 -0
  551. package/dist/infra/health/health.module.d.ts +9 -0
  552. package/dist/infra/health/health.module.js +24 -0
  553. package/dist/infra/health/health.options.d.ts +10 -0
  554. package/dist/infra/health/health.options.js +15 -0
  555. package/dist/infra/health/shutdown-state.d.ts +6 -0
  556. package/dist/infra/health/shutdown-state.js +2 -0
  557. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  560. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  561. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  562. package/dist/infra/lifecycle/process-guards.js +90 -0
  563. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  564. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  565. package/dist/infra/lock/key-template.d.ts +13 -0
  566. package/dist/infra/lock/key-template.js +46 -0
  567. package/dist/infra/lock/lock.module.d.ts +3 -0
  568. package/dist/infra/lock/lock.module.js +16 -0
  569. package/dist/infra/lock/lock.service.d.ts +120 -0
  570. package/dist/infra/lock/lock.service.js +343 -0
  571. package/dist/infra/lock/shared-lease.d.ts +44 -0
  572. package/dist/infra/lock/shared-lease.js +121 -0
  573. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  574. package/dist/infra/lock/with-lock.decorator.js +49 -0
  575. package/dist/infra/logging/logging.module.d.ts +18 -0
  576. package/dist/infra/logging/logging.module.js +52 -0
  577. package/dist/infra/queue/add-job-once.d.ts +14 -0
  578. package/dist/infra/queue/add-job-once.js +16 -0
  579. package/dist/infra/queue/configured-processor.d.ts +18 -0
  580. package/dist/infra/queue/configured-processor.js +23 -0
  581. package/dist/infra/queue/job-failure.d.ts +18 -0
  582. package/dist/infra/queue/job-failure.js +26 -0
  583. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  584. package/dist/infra/queue/queue-shutdown.js +81 -0
  585. package/dist/infra/queue/queue.module.d.ts +16 -0
  586. package/dist/infra/queue/queue.module.js +61 -0
  587. package/dist/infra/queue/redis-connection.d.ts +13 -0
  588. package/dist/infra/queue/redis-connection.js +25 -0
  589. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  590. package/dist/infra/queue/retired-schedulers.js +9 -0
  591. package/dist/infra/queue/run-job.d.ts +16 -0
  592. package/dist/infra/queue/run-job.js +19 -0
  593. package/dist/infra/redis/redis.module.d.ts +24 -0
  594. package/dist/infra/redis/redis.module.js +91 -0
  595. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  596. package/dist/infra/schedule/cron-tick.js +25 -0
  597. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  598. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  599. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  600. package/dist/infra/schedule/locked-interval.js +190 -0
  601. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  602. package/dist/infra/schedule/locked-tick.js +137 -0
  603. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  604. package/dist/infra/schedule/schedule.module.js +27 -0
  605. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  606. package/dist/infra/schedule/scheduled-runs.js +163 -0
  607. package/dist/infra/swagger/swagger.d.ts +16 -0
  608. package/dist/infra/swagger/swagger.js +31 -0
  609. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  610. package/dist/infra/throttler/credential-throttler.js +77 -0
  611. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  612. package/dist/infra/throttler/named-throttlers.js +157 -0
  613. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  614. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  615. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  616. package/dist/infra/throttler/throttler.guard.js +68 -0
  617. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  618. package/dist/infra/throttler/throttler.module.js +53 -0
  619. package/dist/infra/tokens.d.ts +20 -0
  620. package/dist/infra/tokens.js +20 -0
  621. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  622. package/dist/infra/validation/create-zod-dto.js +35 -0
  623. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  624. package/dist/infra/validation/parse-with-zod.js +12 -0
  625. package/dist/infra/validation/validation.module.d.ts +3 -0
  626. package/dist/infra/validation/validation.module.js +16 -0
  627. package/dist/infra/validation/zod-params.d.ts +7 -0
  628. package/dist/infra/validation/zod-params.js +42 -0
  629. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  630. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  631. package/dist/kernel.d.ts +9 -241
  632. package/dist/kernel.js +8 -1305
  633. package/dist/kernel.module.d.ts +17 -0
  634. package/dist/kernel.module.js +145 -0
  635. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  636. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  637. package/dist/lifecycle/tokens.d.ts +3 -0
  638. package/dist/lifecycle/tokens.js +3 -0
  639. package/dist/log-config.d.ts +9 -0
  640. package/dist/log-config.js +27 -0
  641. package/dist/log-context.d.ts +34 -0
  642. package/dist/log-context.js +44 -0
  643. package/dist/log-loki.d.ts +34 -0
  644. package/dist/log-loki.js +145 -0
  645. package/dist/log.d.ts +53 -10
  646. package/dist/log.js +168 -18
  647. package/dist/models/embeddings.d.ts +82 -0
  648. package/dist/models/embeddings.js +326 -0
  649. package/dist/models/enablement.controller.d.ts +40 -0
  650. package/dist/models/enablement.controller.js +74 -0
  651. package/dist/models/enablement.d.ts +101 -0
  652. package/dist/models/enablement.js +264 -0
  653. package/dist/models/models.module.d.ts +7 -0
  654. package/dist/models/models.module.js +36 -0
  655. package/dist/models/org-models.schemas.d.ts +8 -0
  656. package/dist/models/org-models.schemas.js +22 -0
  657. package/dist/models/prices.d.ts +13 -5
  658. package/dist/models/prices.js +69 -39
  659. package/dist/models/purposes.controller.d.ts +6 -4
  660. package/dist/models/purposes.controller.js +16 -11
  661. package/dist/models/purposes.d.ts +103 -23
  662. package/dist/models/purposes.js +208 -77
  663. package/dist/net/public-address.js +3 -2
  664. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  665. package/dist/orgs/directory-sync.controller.js +2 -2
  666. package/dist/orgs/directory-sync.d.ts +74 -35
  667. package/dist/orgs/directory-sync.js +243 -132
  668. package/dist/orgs/invitations.controller.d.ts +8 -8
  669. package/dist/orgs/invitations.controller.js +27 -26
  670. package/dist/orgs/invitations.service.d.ts +12 -9
  671. package/dist/orgs/invitations.service.js +130 -92
  672. package/dist/orgs/job-ids.d.ts +8 -0
  673. package/dist/orgs/job-ids.js +8 -0
  674. package/dist/orgs/members.service.d.ts +19 -12
  675. package/dist/orgs/members.service.js +161 -117
  676. package/dist/orgs/offboarding.d.ts +61 -60
  677. package/dist/orgs/offboarding.js +206 -95
  678. package/dist/orgs/org-lock.d.ts +33 -19
  679. package/dist/orgs/org-lock.js +94 -35
  680. package/dist/orgs/org.guard.d.ts +11 -1
  681. package/dist/orgs/org.guard.js +45 -34
  682. package/dist/orgs/orgs.controller.d.ts +13 -16
  683. package/dist/orgs/orgs.controller.js +29 -20
  684. package/dist/orgs/orgs.module.d.ts +6 -0
  685. package/dist/orgs/orgs.module.js +71 -0
  686. package/dist/orgs/orgs.schemas.d.ts +8 -0
  687. package/dist/orgs/orgs.schemas.js +16 -0
  688. package/dist/orgs/orgs.service.d.ts +47 -21
  689. package/dist/orgs/orgs.service.js +166 -91
  690. package/dist/orgs/roles.d.ts +1 -1
  691. package/dist/orgs/roles.js +5 -1
  692. package/dist/orgs/settings.controller.d.ts +2 -2
  693. package/dist/orgs/settings.controller.js +8 -6
  694. package/dist/orgs/settings.service.d.ts +45 -14
  695. package/dist/orgs/settings.service.js +110 -51
  696. package/dist/overrides.d.ts +63 -0
  697. package/dist/overrides.js +34 -0
  698. package/dist/platform/actor.d.ts +48 -0
  699. package/dist/platform/actor.js +100 -0
  700. package/dist/platform/agent-docs.d.ts +18 -0
  701. package/dist/platform/agent-docs.js +59 -0
  702. package/dist/platform/availability.d.ts +14 -0
  703. package/dist/platform/availability.js +43 -0
  704. package/dist/platform/errors.d.ts +28 -0
  705. package/dist/platform/errors.js +65 -0
  706. package/dist/platform/exclusions.d.ts +11 -0
  707. package/dist/platform/exclusions.js +667 -0
  708. package/dist/platform/method.d.ts +6 -0
  709. package/dist/platform/method.js +15 -0
  710. package/dist/platform/operation.d.ts +169 -0
  711. package/dist/platform/operation.js +90 -0
  712. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  713. package/dist/platform/ops/accounts.ops.js +291 -0
  714. package/dist/platform/ops/admin.ops.d.ts +36 -0
  715. package/dist/platform/ops/admin.ops.js +389 -0
  716. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  717. package/dist/platform/ops/agent-skills.ops.js +226 -0
  718. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  719. package/dist/platform/ops/agent-templates.ops.js +272 -0
  720. package/dist/platform/ops/agents.ops.d.ts +37 -0
  721. package/dist/platform/ops/agents.ops.js +717 -0
  722. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  723. package/dist/platform/ops/approvals.ops.js +116 -0
  724. package/dist/platform/ops/background.ops.d.ts +14 -0
  725. package/dist/platform/ops/background.ops.js +134 -0
  726. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  727. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  728. package/dist/platform/ops/channels.ops.d.ts +16 -0
  729. package/dist/platform/ops/channels.ops.js +195 -0
  730. package/dist/platform/ops/components.ops.d.ts +46 -0
  731. package/dist/platform/ops/components.ops.js +853 -0
  732. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  733. package/dist/platform/ops/connectors.ops.js +188 -0
  734. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  735. package/dist/platform/ops/conversations.ops.js +470 -0
  736. package/dist/platform/ops/environments.ops.d.ts +26 -0
  737. package/dist/platform/ops/environments.ops.js +311 -0
  738. package/dist/platform/ops/errors.d.ts +16 -0
  739. package/dist/platform/ops/errors.js +30 -0
  740. package/dist/platform/ops/evals.ops.d.ts +28 -0
  741. package/dist/platform/ops/evals.ops.js +783 -0
  742. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  743. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  744. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  745. package/dist/platform/ops/extensions.ops.js +347 -0
  746. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  747. package/dist/platform/ops/inbox.ops.js +378 -0
  748. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  749. package/dist/platform/ops/marketplaces.ops.js +466 -0
  750. package/dist/platform/ops/models.ops.d.ts +25 -0
  751. package/dist/platform/ops/models.ops.js +232 -0
  752. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  753. package/dist/platform/ops/org-plugins.ops.js +329 -0
  754. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  755. package/dist/platform/ops/org-settings.ops.js +102 -0
  756. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  757. package/dist/platform/ops/orgs.ops.js +295 -0
  758. package/dist/platform/ops/other-orgs.d.ts +20 -0
  759. package/dist/platform/ops/other-orgs.js +72 -0
  760. package/dist/platform/ops/paging.d.ts +14 -0
  761. package/dist/platform/ops/paging.js +20 -0
  762. package/dist/platform/ops/platform.ops.d.ts +28 -0
  763. package/dist/platform/ops/platform.ops.js +204 -0
  764. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  765. package/dist/platform/ops/plugins.ops.js +476 -0
  766. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  767. package/dist/platform/ops/previewers.ops.js +109 -0
  768. package/dist/platform/ops/requests.ops.d.ts +14 -0
  769. package/dist/platform/ops/requests.ops.js +191 -0
  770. package/dist/platform/ops/role.d.ts +4 -0
  771. package/dist/platform/ops/role.js +10 -0
  772. package/dist/platform/ops/skills.ops.d.ts +17 -0
  773. package/dist/platform/ops/skills.ops.js +216 -0
  774. package/dist/platform/ops/summary.d.ts +10 -0
  775. package/dist/platform/ops/summary.js +18 -0
  776. package/dist/platform/ops/unavailable.d.ts +23 -0
  777. package/dist/platform/ops/unavailable.js +118 -0
  778. package/dist/platform/parity.d.ts +33 -0
  779. package/dist/platform/parity.js +272 -0
  780. package/dist/platform/platform-ops.module.d.ts +39 -0
  781. package/dist/platform/platform-ops.module.js +122 -0
  782. package/dist/platform/platform.module.d.ts +8 -0
  783. package/dist/platform/platform.module.js +25 -0
  784. package/dist/platform/registry.d.ts +30 -0
  785. package/dist/platform/registry.js +111 -0
  786. package/dist/platform/route-schemas.d.ts +18 -0
  787. package/dist/platform/route-schemas.js +63 -0
  788. package/dist/roles/gateway-role.d.ts +54 -0
  789. package/dist/roles/gateway-role.js +118 -0
  790. package/dist/roles/gateway.module.d.ts +9 -0
  791. package/dist/roles/gateway.module.js +31 -0
  792. package/dist/roles/worker-role.d.ts +65 -0
  793. package/dist/roles/worker-role.js +151 -0
  794. package/dist/roles/worker.module.d.ts +14 -0
  795. package/dist/roles/worker.module.js +106 -0
  796. package/dist/runtime/abort.js +19 -2
  797. package/dist/runtime/checkpointer.d.ts +8 -3
  798. package/dist/runtime/checkpointer.js +87 -55
  799. package/dist/runtime/context/build.d.ts +21 -13
  800. package/dist/runtime/context/build.js +106 -29
  801. package/dist/runtime/context/claude-tools.d.ts +4 -1
  802. package/dist/runtime/context/claude-tools.js +13 -12
  803. package/dist/runtime/context/compaction.js +24 -1
  804. package/dist/runtime/context/environment-paths.d.ts +40 -0
  805. package/dist/runtime/context/environment-paths.js +48 -0
  806. package/dist/runtime/context/legacy-text.d.ts +22 -0
  807. package/dist/runtime/context/legacy-text.js +37 -0
  808. package/dist/runtime/context/reminders.d.ts +2 -0
  809. package/dist/runtime/context/reminders.js +2 -0
  810. package/dist/runtime/context/run-context.d.ts +65 -0
  811. package/dist/runtime/context/run-context.js +215 -0
  812. package/dist/runtime/context/skills.d.ts +29 -11
  813. package/dist/runtime/context/skills.js +46 -32
  814. package/dist/runtime/context/tool-changes.d.ts +27 -0
  815. package/dist/runtime/context/tool-changes.js +60 -0
  816. package/dist/runtime/conversation-lock.d.ts +20 -11
  817. package/dist/runtime/conversation-lock.js +62 -72
  818. package/dist/runtime/hook-calls.d.ts +11 -4
  819. package/dist/runtime/hook-calls.js +41 -13
  820. package/dist/runtime/job-ids.d.ts +10 -0
  821. package/dist/runtime/job-ids.js +10 -0
  822. package/dist/runtime/langgraph-loop.d.ts +3 -1
  823. package/dist/runtime/langgraph-loop.js +37 -18
  824. package/dist/runtime/loop.d.ts +42 -6
  825. package/dist/runtime/loop.js +14 -0
  826. package/dist/runtime/maintenance-queue.d.ts +10 -0
  827. package/dist/runtime/maintenance-queue.js +10 -0
  828. package/dist/runtime/maintenance.d.ts +50 -74
  829. package/dist/runtime/maintenance.js +166 -136
  830. package/dist/runtime/model-call.d.ts +61 -15
  831. package/dist/runtime/model-call.js +128 -84
  832. package/dist/runtime/providers.d.ts +158 -27
  833. package/dist/runtime/providers.js +373 -63
  834. package/dist/runtime/quota.d.ts +17 -3
  835. package/dist/runtime/quota.js +27 -2
  836. package/dist/runtime/retired-schedulers.d.ts +7 -0
  837. package/dist/runtime/retired-schedulers.js +31 -0
  838. package/dist/runtime/run-context.service.d.ts +65 -0
  839. package/dist/runtime/run-context.service.js +236 -0
  840. package/dist/runtime/run-control.d.ts +43 -0
  841. package/dist/runtime/run-control.js +89 -0
  842. package/dist/runtime/run-drafts.d.ts +85 -0
  843. package/dist/runtime/run-drafts.js +230 -0
  844. package/dist/runtime/run-finish.d.ts +27 -18
  845. package/dist/runtime/run-finish.js +98 -51
  846. package/dist/runtime/run-jobs.d.ts +46 -0
  847. package/dist/runtime/run-jobs.js +91 -0
  848. package/dist/runtime/run-processors.d.ts +60 -0
  849. package/dist/runtime/run-processors.js +185 -0
  850. package/dist/runtime/run-queue.d.ts +90 -58
  851. package/dist/runtime/run-queue.js +566 -297
  852. package/dist/runtime/run-steps.d.ts +39 -0
  853. package/dist/runtime/run-steps.js +96 -0
  854. package/dist/runtime/run-worker.d.ts +134 -77
  855. package/dist/runtime/run-worker.js +412 -236
  856. package/dist/runtime/runtime.module.d.ts +10 -0
  857. package/dist/runtime/runtime.module.js +122 -0
  858. package/dist/runtime/step-log.d.ts +51 -0
  859. package/dist/runtime/step-log.js +111 -0
  860. package/dist/runtime/stream.controller.d.ts +28 -9
  861. package/dist/runtime/stream.controller.js +72 -13
  862. package/dist/runtime/stream.d.ts +27 -6
  863. package/dist/runtime/stream.js +102 -7
  864. package/dist/runtime/subagents/child.d.ts +58 -51
  865. package/dist/runtime/subagents/child.js +105 -86
  866. package/dist/runtime/subagents/definition.d.ts +32 -28
  867. package/dist/runtime/subagents/definition.js +89 -143
  868. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  869. package/dist/runtime/subagents/deliveries.js +228 -0
  870. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  871. package/dist/runtime/subagents/dispatch.js +336 -270
  872. package/dist/runtime/subagents/limits.d.ts +32 -8
  873. package/dist/runtime/subagents/limits.js +44 -8
  874. package/dist/runtime/subagents/messages.d.ts +95 -0
  875. package/dist/runtime/subagents/messages.js +328 -0
  876. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  877. package/dist/runtime/subagents/org-agents.js +3 -2
  878. package/dist/runtime/subagents/preamble.d.ts +4 -4
  879. package/dist/runtime/subagents/preamble.js +9 -7
  880. package/dist/runtime/subagents/progress.d.ts +10 -8
  881. package/dist/runtime/subagents/progress.js +11 -6
  882. package/dist/runtime/subagents/render.d.ts +30 -0
  883. package/dist/runtime/subagents/render.js +53 -0
  884. package/dist/runtime/subagents/roster.d.ts +27 -10
  885. package/dist/runtime/subagents/roster.js +49 -13
  886. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  887. package/dist/runtime/subagents/skill-fork.js +23 -8
  888. package/dist/runtime/subagents/status.d.ts +14 -0
  889. package/dist/runtime/subagents/status.js +23 -0
  890. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  891. package/dist/runtime/subagents/subagents.service.js +106 -0
  892. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  893. package/dist/runtime/usage-report-jobs.js +158 -0
  894. package/dist/runtime/usage-report.d.ts +121 -83
  895. package/dist/runtime/usage-report.js +355 -180
  896. package/dist/runtime/waits.d.ts +258 -81
  897. package/dist/runtime/waits.js +800 -263
  898. package/dist/sandbox/job-ids.d.ts +10 -0
  899. package/dist/sandbox/job-ids.js +10 -0
  900. package/dist/sandbox/jobs.d.ts +68 -0
  901. package/dist/sandbox/jobs.js +150 -0
  902. package/dist/sandbox/leases.d.ts +73 -82
  903. package/dist/sandbox/leases.js +162 -346
  904. package/dist/sandbox/providers.d.ts +46 -0
  905. package/dist/sandbox/providers.js +83 -0
  906. package/dist/sandbox/sandbox.module.d.ts +9 -0
  907. package/dist/sandbox/sandbox.module.js +36 -0
  908. package/dist/sandbox/sandbox.service.d.ts +359 -151
  909. package/dist/sandbox/sandbox.service.js +950 -435
  910. package/dist/sandbox/unreachable.d.ts +30 -0
  911. package/dist/sandbox/unreachable.js +108 -0
  912. package/dist/skills/catalog.d.ts +40 -26
  913. package/dist/skills/catalog.js +120 -99
  914. package/dist/skills/changes.controller.d.ts +11 -4
  915. package/dist/skills/changes.controller.js +34 -9
  916. package/dist/skills/changes.service.d.ts +31 -21
  917. package/dist/skills/changes.service.js +426 -368
  918. package/dist/skills/invocable.controller.d.ts +2 -2
  919. package/dist/skills/invocable.controller.js +10 -7
  920. package/dist/skills/invocation-keys.d.ts +1 -1
  921. package/dist/skills/invocation-keys.js +1 -1
  922. package/dist/skills/invoke.d.ts +19 -18
  923. package/dist/skills/invoke.js +68 -24
  924. package/dist/skills/package.d.ts +20 -1
  925. package/dist/skills/package.js +28 -1
  926. package/dist/skills/skills.controller.d.ts +33 -7
  927. package/dist/skills/skills.controller.js +79 -12
  928. package/dist/skills/skills.module.d.ts +6 -0
  929. package/dist/skills/skills.module.js +39 -0
  930. package/dist/skills/skills.schemas.d.ts +48 -0
  931. package/dist/skills/skills.schemas.js +61 -0
  932. package/dist/skills/skills.service.d.ts +151 -44
  933. package/dist/skills/skills.service.js +636 -204
  934. package/dist/skills/usable.d.ts +81 -0
  935. package/dist/skills/usable.js +379 -0
  936. package/dist/storage/job-ids.d.ts +6 -0
  937. package/dist/storage/job-ids.js +6 -0
  938. package/dist/storage/purge.d.ts +22 -7
  939. package/dist/storage/purge.js +55 -3
  940. package/dist/storage/storage.module.d.ts +6 -0
  941. package/dist/storage/storage.module.js +23 -0
  942. package/dist/storage/storage.service.d.ts +18 -4
  943. package/dist/storage/storage.service.js +44 -3
  944. package/dist/time-zone.d.ts +5 -0
  945. package/dist/time-zone.js +19 -0
  946. package/dist/tools/approvals.controller.d.ts +1 -1
  947. package/dist/tools/approvals.controller.js +14 -11
  948. package/dist/tools/approvals.schemas.d.ts +21 -0
  949. package/dist/tools/approvals.schemas.js +15 -0
  950. package/dist/tools/approvals.service.d.ts +53 -27
  951. package/dist/tools/approvals.service.js +365 -260
  952. package/dist/tools/breaker.d.ts +2 -2
  953. package/dist/tools/breaker.js +21 -3
  954. package/dist/tools/builtin-names.d.ts +109 -0
  955. package/dist/tools/builtin-names.js +173 -0
  956. package/dist/tools/builtins/agent.d.ts +27 -25
  957. package/dist/tools/builtins/agent.js +66 -63
  958. package/dist/tools/builtins/ask-user.d.ts +3 -3
  959. package/dist/tools/builtins/ask-user.js +3 -3
  960. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  961. package/dist/tools/builtins/builtin-tools.js +151 -0
  962. package/dist/tools/builtins/current-time.d.ts +26 -0
  963. package/dist/tools/builtins/current-time.js +99 -0
  964. package/dist/tools/builtins/handback.d.ts +28 -0
  965. package/dist/tools/builtins/handback.js +53 -0
  966. package/dist/tools/builtins/platform.d.ts +51 -0
  967. package/dist/tools/builtins/platform.js +451 -0
  968. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  969. package/dist/tools/builtins/read-tool-output.js +3 -3
  970. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  971. package/dist/tools/builtins/sandbox/bash.js +293 -41
  972. package/dist/tools/builtins/sandbox/common.d.ts +142 -40
  973. package/dist/tools/builtins/sandbox/common.js +227 -65
  974. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  975. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  976. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  977. package/dist/tools/builtins/sandbox/edit.js +65 -51
  978. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  979. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  980. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  981. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  982. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  983. package/dist/tools/builtins/sandbox/glob.js +19 -14
  984. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  985. package/dist/tools/builtins/sandbox/grep.js +155 -36
  986. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  987. package/dist/tools/builtins/sandbox/index.js +13 -5
  988. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  989. package/dist/tools/builtins/sandbox/read.js +30 -20
  990. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  991. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  992. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  993. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  994. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  995. package/dist/tools/builtins/sandbox/write.js +52 -45
  996. package/dist/tools/builtins/send-message.d.ts +56 -0
  997. package/dist/tools/builtins/send-message.js +100 -0
  998. package/dist/tools/builtins/skill-load.d.ts +32 -21
  999. package/dist/tools/builtins/skill-load.js +125 -74
  1000. package/dist/tools/builtins/skill-write.d.ts +4 -4
  1001. package/dist/tools/builtins/skill-write.js +12 -12
  1002. package/dist/tools/builtins/tool-search.d.ts +13 -9
  1003. package/dist/tools/builtins/tool-search.js +25 -14
  1004. package/dist/tools/builtins/web/errors.d.ts +8 -0
  1005. package/dist/tools/builtins/web/errors.js +53 -0
  1006. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1007. package/dist/tools/builtins/web/extract.js +271 -0
  1008. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1009. package/dist/tools/builtins/web/fetch.js +175 -0
  1010. package/dist/tools/builtins/web/index.d.ts +13 -0
  1011. package/dist/tools/builtins/web/index.js +12 -0
  1012. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1013. package/dist/tools/builtins/web/page-cache.js +77 -0
  1014. package/dist/tools/builtins/web/search.d.ts +25 -0
  1015. package/dist/tools/builtins/web/search.js +210 -0
  1016. package/dist/tools/builtins/web/url.d.ts +17 -0
  1017. package/dist/tools/builtins/web/url.js +43 -0
  1018. package/dist/tools/canonical-json.d.ts +6 -0
  1019. package/dist/tools/canonical-json.js +16 -0
  1020. package/dist/tools/connector-content.controller.d.ts +1 -1
  1021. package/dist/tools/connector-content.controller.js +11 -6
  1022. package/dist/tools/connector-content.d.ts +12 -15
  1023. package/dist/tools/connector-content.js +53 -18
  1024. package/dist/tools/connectors.controller.d.ts +16 -3
  1025. package/dist/tools/connectors.controller.js +34 -14
  1026. package/dist/tools/connectors.schemas.d.ts +12 -0
  1027. package/dist/tools/connectors.schemas.js +19 -0
  1028. package/dist/tools/connectors.service.d.ts +80 -18
  1029. package/dist/tools/connectors.service.js +529 -358
  1030. package/dist/tools/credentials.d.ts +20 -20
  1031. package/dist/tools/credentials.js +55 -34
  1032. package/dist/tools/display-names.d.ts +9 -0
  1033. package/dist/tools/display-names.js +24 -0
  1034. package/dist/tools/drift.d.ts +29 -41
  1035. package/dist/tools/drift.js +116 -84
  1036. package/dist/tools/elicitation.js +1 -1
  1037. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1038. package/dist/tools/extension-tools.controller.js +37 -0
  1039. package/dist/tools/info.d.ts +73 -13
  1040. package/dist/tools/info.js +151 -39
  1041. package/dist/tools/job-ids.d.ts +13 -0
  1042. package/dist/tools/job-ids.js +15 -0
  1043. package/dist/tools/jobs.d.ts +24 -0
  1044. package/dist/tools/jobs.js +69 -0
  1045. package/dist/tools/legacy-data.d.ts +34 -0
  1046. package/dist/tools/legacy-data.js +76 -0
  1047. package/dist/tools/legacy-keys.d.ts +51 -0
  1048. package/dist/tools/legacy-keys.js +115 -0
  1049. package/dist/tools/naming.d.ts +1 -5
  1050. package/dist/tools/naming.js +1 -7
  1051. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1052. package/dist/tools/oauth/flow-paths.js +38 -0
  1053. package/dist/tools/oauth/flow.d.ts +30 -30
  1054. package/dist/tools/oauth/flow.js +109 -81
  1055. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1056. package/dist/tools/oauth/oauth.controller.js +12 -9
  1057. package/dist/tools/oauth/tokens.d.ts +45 -10
  1058. package/dist/tools/oauth/tokens.js +70 -24
  1059. package/dist/tools/org-tool-switches.d.ts +88 -0
  1060. package/dist/tools/org-tool-switches.js +201 -0
  1061. package/dist/tools/outputs.d.ts +13 -4
  1062. package/dist/tools/outputs.js +48 -4
  1063. package/dist/tools/pipeline.d.ts +108 -80
  1064. package/dist/tools/pipeline.js +396 -409
  1065. package/dist/tools/policy.d.ts +4 -17
  1066. package/dist/tools/policy.js +49 -35
  1067. package/dist/tools/questions.controller.d.ts +2 -2
  1068. package/dist/tools/questions.controller.js +9 -6
  1069. package/dist/tools/questions.service.d.ts +26 -25
  1070. package/dist/tools/questions.service.js +201 -142
  1071. package/dist/tools/registry.d.ts +215 -84
  1072. package/dist/tools/registry.js +382 -264
  1073. package/dist/tools/resources.d.ts +1 -1
  1074. package/dist/tools/resources.js +1 -1
  1075. package/dist/tools/specs.d.ts +5 -4
  1076. package/dist/tools/specs.js +3 -1
  1077. package/dist/tools/tools.module.d.ts +10 -0
  1078. package/dist/tools/tools.module.js +113 -0
  1079. package/dist/tools/validate.js +1 -1
  1080. package/dist/ui/call-extension.d.ts +16 -0
  1081. package/dist/ui/call-extension.js +38 -0
  1082. package/dist/ui/embed-token.d.ts +9 -5
  1083. package/dist/ui/embed-token.js +34 -6
  1084. package/dist/ui/ui-stream.d.ts +22 -17
  1085. package/dist/ui/ui-stream.js +72 -12
  1086. package/dist/ui/ui.module.d.ts +7 -0
  1087. package/dist/ui/ui.module.js +28 -0
  1088. package/dist/ui/views.controller.d.ts +14 -12
  1089. package/dist/ui/views.controller.js +32 -25
  1090. package/dist/ui/views.d.ts +10 -57
  1091. package/dist/ui/views.js +58 -46
  1092. package/package.json +15 -3
  1093. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1094. package/src/migrations/0064_account_last_org.sql +7 -0
  1095. package/src/migrations/0065_conversation_archive.sql +8 -0
  1096. package/src/migrations/0066_extension_display_name.sql +4 -0
  1097. package/src/migrations/0067_agent_profiles.sql +20 -0
  1098. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1099. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1100. package/src/migrations/0070_background_tasks.sql +37 -0
  1101. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1102. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1103. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1104. package/src/migrations/0074_subagent_tree.sql +50 -0
  1105. package/src/migrations/0075_plugin_scope.sql +61 -0
  1106. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1107. package/src/migrations/0077_scope_requests.sql +52 -0
  1108. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1109. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1110. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1111. package/src/migrations/0081_platform_components.sql +129 -0
  1112. package/src/migrations/0082_platform_migration.sql +33 -0
  1113. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1114. package/src/migrations/0084_org_owned_items.sql +85 -0
  1115. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1116. package/src/migrations/0086_org_layering.sql +30 -0
  1117. package/src/migrations/0087_approval_summary.sql +6 -0
  1118. package/src/migrations/0088_environments.sql +80 -0
  1119. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1120. package/src/migrations/0090_initial_passwords.sql +27 -0
  1121. package/src/migrations/0091_account_time_zone.sql +4 -0
  1122. package/src/migrations/0092_tools_default_on.sql +27 -0
  1123. package/src/migrations/0093_connected_environments.sql +37 -0
  1124. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1125. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1126. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1127. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1128. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1129. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1130. package/src/migrations/0100_catalog_files.sql +13 -0
  1131. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1132. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1133. package/dist/catalog/upgrade-targets.js +0 -90
  1134. package/dist/conversations/sandbox-status.d.ts +0 -21
  1135. package/dist/conversations/sandbox-status.js +0 -24
  1136. package/dist/extensions/org-config.controller.d.ts +0 -24
  1137. package/dist/extensions/org-config.controller.js +0 -59
  1138. package/dist/http/gateway.module.js +0 -13
  1139. package/dist/http/health.controller.d.ts +0 -26
  1140. package/dist/http/health.controller.js +0 -79
  1141. package/dist/http/tokens.d.ts +0 -131
  1142. package/dist/http/tokens.js +0 -131
  1143. package/dist/http/zod.pipe.d.ts +0 -8
  1144. package/dist/http/zod.pipe.js +0 -14
  1145. package/dist/identity/enterprise-admin.d.ts +0 -14
  1146. package/dist/identity/enterprise-admin.js +0 -27
  1147. package/dist/identity/rate-limit.d.ts +0 -55
  1148. package/dist/identity/rate-limit.js +0 -121
  1149. package/dist/sandbox/lifecycle.d.ts +0 -21
  1150. package/dist/sandbox/lifecycle.js +0 -68
  1151. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1152. package/dist/tools/builtins/sandbox/names.js +0 -20
@@ -1,20 +1,36 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
1
10
  import { randomUUID } from "node:crypto";
2
- import { ToolError, } from "@capybara-hq/plugin-sdk";
11
+ import { connectorToolKey, ToolError, } from "@capybara-hq/plugin-sdk";
12
+ import { Inject, Injectable } from "@nestjs/common";
3
13
  import { sql } from "kysely";
4
14
  import { z } from "zod";
5
- import { assertItemInstallable } from "../catalog/requests.service.js";
15
+ import { connectorTemplateState } from "../catalog/component-state.js";
16
+ import { assertItemInstallable } from "../catalog/request-rules.js";
6
17
  import { ApiError } from "../errors.js";
18
+ import { ExtensionRegistry } from "../extensions/registry.js";
7
19
  import { audit } from "../identity/audit.js";
8
20
  import { assertCustomAllowed } from "../identity/settings.js";
9
- import { lockOrgAndAuthorize } from "../orgs/org-lock.js";
10
- import { CredentialMissing, isOAuth, } from "./credentials.js";
11
- import { snapshot, toolIssue, } from "./drift.js";
21
+ import { KernelConfigService } from "../infra/config/kernel-config.service.js";
22
+ import { KernelDb } from "../infra/database/kernel-db.js";
23
+ import { TransactionHost } from "../infra/database/transaction-host.js";
24
+ import { Transactional } from "../infra/database/transactional.decorator.js";
25
+ import { OrgLock } from "../orgs/org-lock.js";
26
+ import { CredentialMissing, Credentials, isOAuth, } from "./credentials.js";
27
+ import { snapshot, ToolDrift, toolIssue, } from "./drift.js";
12
28
  import { endpointCredentialIssues, endpointView } from "./endpoint.js";
13
- import { deriveSlug, isValidSlug, SLUG_RULE, toolKey } from "./naming.js";
29
+ import { deriveSlug, isValidSlug, SLUG_RULE } from "./naming.js";
14
30
  import { checkOAuthUrl, discoverMcp, OAuthSetupError, oauthHttpOptions, pickAuthMethod, registerClient, } from "./oauth/discovery.js";
15
- import { callbackUrl, publicUrlRequired } from "./oauth/flow.js";
31
+ import { callbackUrl, publicUrlRequired } from "./oauth/flow-paths.js";
16
32
  import { OAuthGrantError, OAuthUnavailable, tokenRequest, } from "./oauth/tokens.js";
17
- import { policyFromAnnotations } from "./registry.js";
33
+ import { policyFromAnnotations, ToolRegistry } from "./registry.js";
18
34
  import { recordToolSpecs } from "./specs.js";
19
35
  /** 预览时没给 slug、也推导不出时,拼 key 用的占位 slug。 */
20
36
  const PREVIEW_SLUG = "app";
@@ -68,20 +84,32 @@ const unannotated = (a) => a?.readOnlyHint === undefined && a?.destructiveHint =
68
84
  * 连接器(远端服务实例)与其工具快照、凭据。写操作都在组织行锁内复核发起人权限并写审计
69
85
  * (detail 只有凭据类型与归属,没有值)。连接器会话按操作打开、用完即关,不在进程内缓存。
70
86
  */
71
- export class ConnectorsService {
72
- db;
87
+ let ConnectorsService = class ConnectorsService {
88
+ kdb;
73
89
  registry;
74
- host;
90
+ extensions;
75
91
  credentials;
76
92
  config;
77
93
  drift;
78
- constructor(db, registry, host, credentials, config, drift) {
79
- this.db = db;
94
+ orgLock;
95
+ txHost;
96
+ constructor(kdb, registry,
97
+ /** Extension manifests (a slug may not take an extension's name). */
98
+ extensions, credentials, config, drift,
99
+ /** The org row lock (orgs/org-lock.ts): joins the caller's transaction. */
100
+ orgLock, txHost) {
101
+ this.kdb = kdb;
80
102
  this.registry = registry;
81
- this.host = host;
103
+ this.extensions = extensions;
82
104
  this.credentials = credentials;
83
105
  this.config = config;
84
106
  this.drift = drift;
107
+ this.orgLock = orgLock;
108
+ this.txHost = txHost;
109
+ }
110
+ /** The kernel-schema handle of the current context (its transaction, else the pool). */
111
+ get db() {
112
+ return this.kdb.db;
85
113
  }
86
114
  /**
87
115
  * 校验连接器存在、端点按其 schema 合法、不含凭据样式的头 / query 参数 / URL 用户信息(端点对成员可见,
@@ -115,6 +143,34 @@ export class ConnectorsService {
115
143
  .executeTakeFirst();
116
144
  return row !== undefined;
117
145
  }
146
+ /**
147
+ * The first free default name and slug ({@link CreateConnectorInput.slugDefault}), read in the
148
+ * caller's transaction under the org lock.
149
+ */
150
+ async freeName(t, orgId, d) {
151
+ const base = deriveSlug(d.name ?? d.display) ?? deriveSlug(d.display);
152
+ if (base === null) {
153
+ throw fail("slug", `Cannot derive a slug from the name; provide one. ${SLUG_RULE}`);
154
+ }
155
+ const taken = new Set((await t
156
+ .selectFrom("connectors")
157
+ .select("slug")
158
+ .where("org_id", "=", orgId)
159
+ .where("deleted_at", "is", null)
160
+ .execute()).map((r) => r.slug));
161
+ for (const m of this.extensions.manifests())
162
+ taken.add(m.name);
163
+ for (let n = 1;; n++) {
164
+ const suffix = n === 1 ? "" : `_${n}`;
165
+ const slug = `${base.slice(0, 24 - suffix.length).replace(/_+$/, "")}${suffix}`;
166
+ if (!isValidSlug(slug) || taken.has(slug))
167
+ continue;
168
+ const nth = ` ${n}`;
169
+ const name = d.name ??
170
+ (n === 1 ? d.display : `${[...d.display].slice(0, 80 - nth.length).join("")}${nth}`);
171
+ return { name: [...name].slice(0, 80).join(""), slug };
172
+ }
173
+ }
118
174
  resolveSlug(input) {
119
175
  if (input.slug !== undefined) {
120
176
  if (!isValidSlug(input.slug))
@@ -133,7 +189,7 @@ export class ConnectorsService {
133
189
  * 外连失败一律 502 `connector.connect_failed`(details 带原因码),什么都不写。
134
190
  */
135
191
  async prepareOAuth(auth, endpoint, credential, publicUrl) {
136
- const http = oauthHttpOptions(this.config());
192
+ const http = oauthHttpOptions(this.config.get());
137
193
  const parseClient = (requireSecret) => parseOAuthClient(credential, requireSecret);
138
194
  const checked = (path, url) => {
139
195
  try {
@@ -154,7 +210,7 @@ export class ConnectorsService {
154
210
  ...(auth.scopes && { scopes: auth.scopes }),
155
211
  };
156
212
  try {
157
- const tokens = await tokenRequest(client, { grant_type: "client_credentials", scope: auth.scopes?.join(" ") }, http);
213
+ const tokens = await tokenRequest(client, { grant_type: "client_credentials", scope: auth.scopes?.join(" ") }, http, { tokenTypes: auth.tokenTypes });
158
214
  return { client, tokens };
159
215
  }
160
216
  catch (e) {
@@ -226,7 +282,8 @@ export class ConnectorsService {
226
282
  checkCreateInput(actorAccountId, input) {
227
283
  const slug = this.resolveSlug(input);
228
284
  const endpoint = this.parseEndpoint(input.connector, input.endpoint);
229
- if (this.host.manifests().some((m) => m.name === slug)) {
285
+ // a defaulted slug skips plugin names itself (`freeName`)
286
+ if (!input.slugDefault && this.extensions.manifests().some((m) => m.name === slug)) {
230
287
  throw fail("slug", `Slug "${slug}" is the name of an installed plugin; choose another`);
231
288
  }
232
289
  const auth = input.auth;
@@ -240,9 +297,9 @@ export class ConnectorsService {
240
297
  this.credentials.validate(auth, owner, credential);
241
298
  return { slug, endpoint, owner, secret: credential };
242
299
  }
243
- if (!this.config().http.publicUrl)
300
+ if (!this.config.get().http.publicUrl)
244
301
  throw publicUrlRequired();
245
- const http = oauthHttpOptions(this.config());
302
+ const http = oauthHttpOptions(this.config.get());
246
303
  const checked = (path, url) => {
247
304
  try {
248
305
  checkOAuthUrl(url, http);
@@ -284,21 +341,21 @@ export class ConnectorsService {
284
341
  // 自建被禁止时先拒绝(事务里再复核一次):不该为此触发外连
285
342
  if (!input.template)
286
343
  await assertCustomAllowed(this.db, "customConnectors");
344
+ await this.assertKindAvailable(orgId, input.connector);
287
345
  const { slug, endpoint, owner, secret } = this.checkCreateInput(actorAccountId, input);
288
346
  const id = randomUUID();
289
347
  const auth = input.auth;
290
- const publicUrl = this.config().http.publicUrl;
291
- // 先做不需要连接的检查:冲突的 slug 不该触发一次外连
292
- if (await this.slugTaken(this.db, orgId, slug)) {
348
+ const publicUrl = this.config.get().http.publicUrl;
349
+ // 先做不需要连接的检查:冲突的 slug 不该触发一次外连 (a defaulted slug is chosen under the lock)
350
+ if (!input.slugDefault && (await this.slugTaken(this.db, orgId, slug))) {
293
351
  throw new ApiError("connector.slug_taken", "Connector slug is already taken");
294
352
  }
295
353
  const oauth = isOAuth(auth)
296
354
  ? await this.prepareOAuth(auth, endpoint, input.credential, publicUrl)
297
355
  : undefined;
298
- let rows = [];
299
- let issues = [];
356
+ let listed;
300
357
  if (auth.type !== "oauth_code") {
301
- const listed = await this.drift.listTools(input.connector, endpoint, async () => {
358
+ listed = await this.drift.listTools(input.connector, endpoint, async () => {
302
359
  if (auth.type === "none")
303
360
  return { headers: {} };
304
361
  if (oauth?.tokens) {
@@ -308,76 +365,119 @@ export class ConnectorsService {
308
365
  throw new CredentialMissing(id, auth.ownership);
309
366
  return this.credentials.injectionFor(id, auth, secret);
310
367
  }, { orgId, slug });
311
- ({ rows, issues } = snapshot(slug, listed.specs, listed.resources));
312
368
  }
313
- return this.db.transaction().execute(async (t) => {
314
- await lockOrgAndAuthorize(t, orgId, actorAccountId, "connectors.manage");
315
- if (input.template) {
316
- await assertItemInstallable(t, orgId, input.template.itemId, input.template.approvedBy ?? input.template.itemId);
369
+ return this.createIn(orgId, actorAccountId, input, actorTokenId, {
370
+ id,
371
+ slug,
372
+ endpoint,
373
+ owner,
374
+ secret,
375
+ oauth,
376
+ listed,
377
+ });
378
+ }
379
+ /** The org-locked, re-checked insert of {@link create} (the outbound checks ran before). */
380
+ async createIn(orgId, actorAccountId, input, actorTokenId, c) {
381
+ const { id, endpoint, owner, secret, oauth } = c;
382
+ const auth = input.auth;
383
+ const t = this.db;
384
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "connectors.manage");
385
+ if (input.template) {
386
+ await assertItemInstallable(t, orgId, input.template.itemId, input.template.approvedBy ?? input.template.itemId);
387
+ }
388
+ else
389
+ await assertCustomAllowed(t, "customConnectors");
390
+ let slug = c.slug;
391
+ let name = input.name;
392
+ if (input.slugDefault)
393
+ ({ slug, name } = await this.freeName(t, orgId, input.slugDefault));
394
+ else if (await this.slugTaken(t, orgId, slug)) {
395
+ throw new ApiError("connector.slug_taken", "Connector slug is already taken");
396
+ }
397
+ // the snapshot's keys name the final slug
398
+ const { rows, issues } = c.listed === undefined
399
+ ? { rows: [], issues: [] }
400
+ : snapshot(slug, c.listed.specs, c.listed.resources);
401
+ // A connector made from a platform connector template stays linked to it (ruling E2)
402
+ const tpl = input.template;
403
+ const platformTemplate = tpl?.templateId !== undefined
404
+ ? await t
405
+ .selectFrom("platform_connector_templates")
406
+ .select("id")
407
+ .where("catalog_item_id", "=", tpl.itemId)
408
+ .where("template_id", "=", tpl.templateId)
409
+ .where("deleted_at", "is", null)
410
+ .executeTakeFirst()
411
+ : undefined;
412
+ if (tpl?.mustBeOn) {
413
+ const state = platformTemplate === undefined
414
+ ? "absent"
415
+ : await connectorTemplateState(t, orgId, platformTemplate.id);
416
+ if (state === "absent") {
417
+ throw new ApiError("component.not_found", "The connector template does not exist or is not available in this organization");
317
418
  }
318
- else
319
- await assertCustomAllowed(t, "customConnectors");
320
- if (await this.slugTaken(t, orgId, slug)) {
321
- throw new ApiError("connector.slug_taken", "Connector slug is already taken");
419
+ if (state === "off") {
420
+ throw new ApiError("component.off", "This connector template is off in this organization; switch it (or its plugin) on first");
322
421
  }
323
- await t
324
- .insertInto("connectors")
325
- .values({
326
- id,
327
- org_id: orgId,
422
+ }
423
+ await t
424
+ .insertInto("connectors")
425
+ .values({
426
+ id,
427
+ org_id: orgId,
428
+ slug,
429
+ name,
430
+ connector: input.connector,
431
+ endpoint: JSON.stringify(endpoint),
432
+ auth: JSON.stringify(auth),
433
+ created_by: actorAccountId,
434
+ catalog_item_id: input.template?.itemId ?? null,
435
+ catalog_version: input.template?.version ?? null,
436
+ platform_template_id: platformTemplate?.id ?? null,
437
+ // 授权码连接器安装时没有快照:模板的默认策略留到首个快照时应用
438
+ template_tool_policies: input.template?.defaultToolPolicies
439
+ ? JSON.stringify(input.template.defaultToolPolicies)
440
+ : null,
441
+ // 授权码连接器安装时不拍快照(A16):留空,首个快照按安装处理
442
+ ...(auth.type !== "oauth_code" && { tools_synced_at: sql `now()` }),
443
+ })
444
+ .execute();
445
+ await this.insertTools(id, rows, input.template?.defaultToolPolicies);
446
+ if (secret && owner)
447
+ await this.credentials.setStatic(orgId, id, auth, owner, secret);
448
+ if (oauth) {
449
+ await this.credentials.setOAuthClient(orgId, id, oauth.client);
450
+ if (oauth.tokens) {
451
+ await this.credentials.setOAuthTokens(orgId, id, { kind: "org" }, oauth.tokens);
452
+ }
453
+ }
454
+ await audit(t, {
455
+ actorAccountId,
456
+ ...(actorTokenId !== undefined && { actorTokenId }),
457
+ orgId,
458
+ action: "connector.created",
459
+ target: id,
460
+ detail: {
328
461
  slug,
329
- name: input.name,
330
462
  connector: input.connector,
331
- endpoint: JSON.stringify(endpoint),
332
- auth: JSON.stringify(auth),
333
- created_by: actorAccountId,
334
- catalog_item_id: input.template?.itemId ?? null,
335
- catalog_version: input.template?.version ?? null,
336
- // 授权码连接器安装时没有快照:模板的默认策略留到首个快照时应用
337
- template_tool_policies: input.template?.defaultToolPolicies
338
- ? JSON.stringify(input.template.defaultToolPolicies)
339
- : null,
340
- // 授权码连接器安装时不拍快照(A16):留空,首个快照按安装处理
341
- ...(auth.type !== "oauth_code" && { tools_synced_at: sql `now()` }),
342
- })
343
- .execute();
344
- await this.insertTools(t, id, rows, input.template?.defaultToolPolicies);
345
- if (secret && owner)
346
- await this.credentials.setStatic(orgId, id, auth, owner, secret, t);
347
- if (oauth) {
348
- await this.credentials.setOAuthClient(orgId, id, oauth.client, t);
349
- if (oauth.tokens) {
350
- await this.credentials.setOAuthTokens(orgId, id, { kind: "org" }, oauth.tokens, t);
351
- }
352
- }
353
- await audit(t, {
354
- actorAccountId,
355
- ...(actorTokenId !== undefined && { actorTokenId }),
356
- orgId,
357
- action: "connector.created",
358
- target: id,
359
- detail: {
360
- slug,
361
- connector: input.connector,
362
- auth: { type: auth.type, ...(auth.type !== "none" && { ownership: auth.ownership }) },
363
- tools: rows.length,
364
- credentialProvided: secret !== undefined || oauth !== undefined,
365
- ...(input.template && {
366
- catalog: {
367
- itemId: input.template.itemId,
368
- version: input.template.version,
369
- ...(input.template.templateId !== undefined && {
370
- templateId: input.template.templateId,
371
- }),
372
- },
373
- }),
374
- },
375
- });
376
- return { connector: await this.detail(t, orgId, id, actorAccountId), issues };
463
+ auth: { type: auth.type, ...(auth.type !== "none" && { ownership: auth.ownership }) },
464
+ tools: rows.length,
465
+ credentialProvided: secret !== undefined || oauth !== undefined,
466
+ ...(input.template && {
467
+ catalog: {
468
+ itemId: input.template.itemId,
469
+ version: input.template.version,
470
+ ...(input.template.templateId !== undefined && {
471
+ templateId: input.template.templateId,
472
+ }),
473
+ },
474
+ }),
475
+ },
377
476
  });
477
+ return { connector: await this.detail(t, orgId, id, actorAccountId), issues };
378
478
  }
379
479
  /**
380
- * Checks a template update before anything is written (an org plugin upgrade): the endpoint
480
+ * Checks a template update before anything is written (the platform plugin update): the endpoint
381
481
  * against the connector's schema, and with `resetCredentials` the new credential's shape, or for
382
482
  * OAuth the client setup (discovery, dynamic registration or the client credentials token; an
383
483
  * outbound failure -> 502 `connector.connect_failed`). Writes nothing.
@@ -398,7 +498,7 @@ export class ConnectorsService {
398
498
  this.credentials.validate(auth, owner, credential);
399
499
  return { ...out, owner, secret: credential };
400
500
  }
401
- const publicUrl = this.config().http.publicUrl;
501
+ const publicUrl = this.config.get().http.publicUrl;
402
502
  if (!publicUrl)
403
503
  throw publicUrlRequired();
404
504
  return { ...out, oauth: await this.prepareOAuth(auth, endpoint, credential, publicUrl) };
@@ -412,7 +512,8 @@ export class ConnectorsService {
412
512
  * unnamed `derived` tools and the org's own (`admin`) stay (spec §10). Tool definitions are untouched (the next refresh takes the new endpoint through drift review). With `resetCredentials` the credentials are replaced.
413
513
  * Audits `connector.template_applied`. Deleted / missing -> `connector.not_found`.
414
514
  */
415
- async applyTemplateIn(t, orgId, connectorId, actorAccountId, p, actorTokenId) {
515
+ async applyTemplateIn(orgId, connectorId, actorAccountId, p, actorTokenId) {
516
+ const t = this.db;
416
517
  await this.row(t, orgId, connectorId, true);
417
518
  const { input } = p;
418
519
  const policies = input.template.defaultToolPolicies;
@@ -457,14 +558,14 @@ export class ConnectorsService {
457
558
  }
458
559
  }
459
560
  if (input.resetCredentials) {
460
- await this.credentials.clearConnector(orgId, connectorId, t);
561
+ await this.credentials.clearConnector(orgId, connectorId);
461
562
  if (p.secret && p.owner) {
462
- await this.credentials.setStatic(orgId, connectorId, input.auth, p.owner, p.secret, t);
563
+ await this.credentials.setStatic(orgId, connectorId, input.auth, p.owner, p.secret);
463
564
  }
464
565
  if (p.oauth) {
465
- await this.credentials.setOAuthClient(orgId, connectorId, p.oauth.client, t);
566
+ await this.credentials.setOAuthClient(orgId, connectorId, p.oauth.client);
466
567
  if (p.oauth.tokens) {
467
- await this.credentials.setOAuthTokens(orgId, connectorId, { kind: "org" }, p.oauth.tokens, t);
568
+ await this.credentials.setOAuthTokens(orgId, connectorId, { kind: "org" }, p.oauth.tokens);
468
569
  }
469
570
  }
470
571
  }
@@ -492,6 +593,21 @@ export class ConnectorsService {
492
593
  },
493
594
  });
494
595
  }
596
+ /** Refuses a loaded kind whose extension is not enabled in the org (the same notion as {@link kinds}). */
597
+ async assertKindAvailable(orgId, kind) {
598
+ if (!this.registry.findConnector(kind))
599
+ return; // unknown kinds fail in parseEndpoint
600
+ if (!(await this.registry.connectorKindAvailable(orgId, kind))) {
601
+ throw new ApiError("connector.kind_unavailable", `Connector kind "${kind}" is not enabled for this organization; enable its plugin first`);
602
+ }
603
+ }
604
+ /**
605
+ * The connector kinds the org can create connectors of (the install wizard's protocol step): a
606
+ * kind is listed when its `connector@1` extension is loaded and enabled in the org.
607
+ */
608
+ kinds(orgId) {
609
+ return this.registry.connectorKindsFor(orgId);
610
+ }
495
611
  /**
496
612
  * Previews a connector (Ruling A20, for the install wizard): after checking the connector, the
497
613
  * endpoint (credential pattern check included) and the credential shape, reads the endpoint
@@ -506,6 +622,7 @@ export class ConnectorsService {
506
622
  async preview(orgId, input) {
507
623
  // 部署禁止组织自建连接器时也不替组织去连任意端点(目录安装不走预览)
508
624
  await assertCustomAllowed(this.db, "customConnectors");
625
+ await this.assertKindAvailable(orgId, input.connector);
509
626
  const endpoint = this.parseEndpoint(input.connector, input.endpoint);
510
627
  const connector = this.registry.findConnector(input.connector);
511
628
  if (!connector)
@@ -547,7 +664,7 @@ export class ConnectorsService {
547
664
  else if (auth.type === "oauth_client" && credential !== undefined && credential !== null) {
548
665
  oauthClient = true;
549
666
  }
550
- const timeoutMs = this.config().tools.timeoutMs;
667
+ const timeoutMs = this.config.get().tools.timeoutMs;
551
668
  let inspection;
552
669
  if (connector.inspect) {
553
670
  try {
@@ -561,7 +678,7 @@ export class ConnectorsService {
561
678
  }
562
679
  }
563
680
  if (oauthClient && auth?.type === "oauth_client") {
564
- const oauth = await this.prepareOAuth(auth, endpoint, credential, this.config().http.publicUrl ?? "");
681
+ const oauth = await this.prepareOAuth(auth, endpoint, credential, this.config.get().http.publicUrl ?? "");
565
682
  const token = oauth.tokens?.access_token;
566
683
  if (token)
567
684
  inject = async () => this.credentials.injectionFor("preview", auth, { token });
@@ -577,7 +694,7 @@ export class ConnectorsService {
577
694
  issues = snap.issues;
578
695
  tools = snap.rows.map((r) => ({
579
696
  name: r.name,
580
- key: toolKey(slug, r.name),
697
+ key: connectorToolKey(slug, r.name),
581
698
  description: r.spec.description,
582
699
  inputSchema: r.spec.inputSchema,
583
700
  annotations: r.spec.annotations ?? null,
@@ -593,9 +710,10 @@ export class ConnectorsService {
593
710
  ...(inspection?.operations !== undefined && { operations: inspection.operations }),
594
711
  };
595
712
  }
596
- async insertTools(t, connectorId, rows, templatePolicies) {
713
+ async insertTools(connectorId, rows, templatePolicies) {
597
714
  if (rows.length === 0)
598
715
  return;
716
+ const t = this.db;
599
717
  await recordToolSpecs(t, rows);
600
718
  const fromTemplate = (name) => templatePolicies && Object.hasOwn(templatePolicies, name)
601
719
  ? templatePolicies[name]
@@ -641,6 +759,7 @@ export class ConnectorsService {
641
759
  endpoint: endpointView(r.endpoint),
642
760
  auth: r.auth,
643
761
  status: r.status,
762
+ platformTemplateId: r.platform_template_id ?? null,
644
763
  createdBy: r.created_by,
645
764
  createdAt: r.created_at,
646
765
  updatedAt: r.updated_at,
@@ -669,7 +788,7 @@ export class ConnectorsService {
669
788
  .execute();
670
789
  const s = this.summary(r);
671
790
  const auth = s.auth;
672
- const status = await this.credentials.status(orgId, connectorId, auth, viewerAccountId, db === this.db ? undefined : db);
791
+ const status = await this.credentials.status(orgId, connectorId, auth, viewerAccountId);
673
792
  return {
674
793
  ...s,
675
794
  tools: tools.map((t) => {
@@ -677,7 +796,8 @@ export class ConnectorsService {
677
796
  const next = t.pending_spec;
678
797
  return {
679
798
  name: t.name,
680
- key: toolKey(r.slug, t.name),
799
+ key: connectorToolKey(r.slug, t.name),
800
+ title: typeof spec.title === "string" ? spec.title : null,
681
801
  description: spec.description,
682
802
  inputSchema: spec.inputSchema,
683
803
  annotations: spec.annotations ?? null,
@@ -722,143 +842,145 @@ export class ConnectorsService {
722
842
  }
723
843
  /** 改名、启停连接器、工具启停与默认策略、批量把无注解工具改为 allow(`connectors.manage`)。 */
724
844
  async update(orgId, connectorId, actorAccountId, patch, actorTokenId) {
725
- return this.db.transaction().execute(async (t) => {
726
- await lockOrgAndAuthorize(t, orgId, actorAccountId, "connectors.manage");
727
- const app = await this.row(t, orgId, connectorId, true);
728
- const current = await t
729
- .selectFrom("connector_tools")
730
- .select([
731
- "name",
732
- "spec",
733
- "status",
734
- "default_policy",
735
- "missing_since",
736
- "pending_spec_hash",
737
- "reviewed_at",
738
- ])
739
- .where("connector_id", "=", connectorId)
740
- .forUpdate()
741
- .execute();
742
- const byName = new Map(current.map((c) => [c.name, c]));
743
- const toolChanges = Object.entries(patch.tools ?? {});
744
- const problems = [];
745
- for (const [name, change] of toolChanges) {
746
- const c = byName.get(name);
747
- if (!c) {
748
- problems.push({ path: `tools.${name}`, message: "No such tool in this connector" });
845
+ const t = this.db;
846
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "connectors.manage");
847
+ const app = await this.row(t, orgId, connectorId, true);
848
+ const current = await t
849
+ .selectFrom("connector_tools")
850
+ .select([
851
+ "name",
852
+ "spec",
853
+ "status",
854
+ "default_policy",
855
+ "missing_since",
856
+ "pending_spec_hash",
857
+ "reviewed_at",
858
+ ])
859
+ .where("connector_id", "=", connectorId)
860
+ .forUpdate()
861
+ .execute();
862
+ const byName = new Map(current.map((c) => [c.name, c]));
863
+ const toolChanges = Object.entries(patch.tools ?? {});
864
+ const problems = [];
865
+ for (const [name, change] of toolChanges) {
866
+ const c = byName.get(name);
867
+ if (!c) {
868
+ problems.push({ path: `tools.${name}`, message: "No such tool in this connector" });
869
+ continue;
870
+ }
871
+ if (change.status === "enabled") {
872
+ const path = `tools.${name}.status`;
873
+ // 待复核(新增或定义变了)的工具只能经复核接口启用:这里启用会绕过复核、或把旧定义暴露给模型
874
+ if (c.status === "pending_review" || c.pending_spec_hash !== null) {
875
+ problems.push({
876
+ path,
877
+ message: `Tool is pending review; approve it with POST /connectors/${connectorId}/tools/${name}/review`,
878
+ });
749
879
  continue;
750
880
  }
751
- if (change.status === "enabled") {
752
- const path = `tools.${name}.status`;
753
- // 待复核(新增或定义变了)的工具只能经复核接口启用:这里启用会绕过复核、或把旧定义暴露给模型
754
- if (c.status === "pending_review" || c.pending_spec_hash !== null) {
755
- problems.push({
756
- path,
757
- message: `Tool is pending review; approve it with POST /connectors/${connectorId}/tools/${name}/review`,
758
- });
759
- continue;
760
- }
761
- if (c.missing_since !== null) {
762
- problems.push({ path, message: "The connector no longer provides this tool" });
763
- continue;
764
- }
765
- // 从未复核过的工具(如被拒绝的新工具):启用等于跳过复核,只能经复核接口批准
766
- if (c.reviewed_at === null) {
767
- problems.push({
768
- path,
769
- message: `Tool has never been reviewed; approve it with POST /connectors/${connectorId}/tools/${name}/review`,
770
- });
771
- continue;
772
- }
773
- const issue = toolIssue(app.slug, c.spec);
774
- if (issue)
775
- problems.push({ path, message: issue });
881
+ if (c.missing_since !== null) {
882
+ problems.push({ path, message: "The connector no longer provides this tool" });
883
+ continue;
776
884
  }
777
- }
778
- if (problems.length > 0) {
779
- throw new ApiError("validation_failed", "Request validation failed", problems);
780
- }
781
- if (patch.name !== undefined || patch.status !== undefined) {
782
- await t
783
- .updateTable("connectors")
784
- .set({
785
- ...(patch.name !== undefined && { name: patch.name }),
786
- ...(patch.status !== undefined && { status: patch.status }),
787
- updated_at: sql `now()`,
788
- })
789
- .where("id", "=", connectorId)
790
- .execute();
791
- }
792
- const allowed = [];
793
- if (patch.allowUnannotated) {
794
- for (const c of current) {
795
- const explicit = patch.tools?.[c.name]?.defaultPolicy !== undefined;
796
- if (!explicit &&
797
- c.default_policy === "ask" &&
798
- unannotated(c.spec.annotations)) {
799
- allowed.push(c.name);
800
- }
885
+ // 从未复核过的工具(如被拒绝的新工具):启用等于跳过复核,只能经复核接口批准
886
+ if (c.reviewed_at === null) {
887
+ problems.push({
888
+ path,
889
+ message: `Tool has never been reviewed; approve it with POST /connectors/${connectorId}/tools/${name}/review`,
890
+ });
891
+ continue;
801
892
  }
802
- if (allowed.length > 0) {
803
- await t
804
- .updateTable("connector_tools")
805
- .set({ default_policy: "allow", policy_source: "admin" })
806
- .where("connector_id", "=", connectorId)
807
- .where("name", "in", allowed)
808
- .execute();
893
+ const issue = toolIssue(app.slug, c.spec);
894
+ if (issue)
895
+ problems.push({ path, message: issue });
896
+ }
897
+ }
898
+ if (problems.length > 0) {
899
+ throw new ApiError("validation_failed", "Request validation failed", problems);
900
+ }
901
+ if (patch.name !== undefined || patch.status !== undefined) {
902
+ await t
903
+ .updateTable("connectors")
904
+ .set({
905
+ ...(patch.name !== undefined && { name: patch.name }),
906
+ ...(patch.status !== undefined && { status: patch.status }),
907
+ updated_at: sql `now()`,
908
+ })
909
+ .where("id", "=", connectorId)
910
+ .execute();
911
+ }
912
+ const allowed = [];
913
+ if (patch.allowUnannotated) {
914
+ for (const c of current) {
915
+ const explicit = patch.tools?.[c.name]?.defaultPolicy !== undefined;
916
+ if (!explicit &&
917
+ c.default_policy === "ask" &&
918
+ unannotated(c.spec.annotations)) {
919
+ allowed.push(c.name);
809
920
  }
810
921
  }
811
- for (const [name, change] of toolChanges) {
812
- if (change.status === undefined && change.defaultPolicy === undefined)
813
- continue;
922
+ if (allowed.length > 0) {
814
923
  await t
815
924
  .updateTable("connector_tools")
816
- .set({
817
- ...(change.status !== undefined && { status: change.status }),
818
- ...(change.defaultPolicy !== undefined && {
819
- default_policy: change.defaultPolicy,
820
- policy_source: "admin",
821
- }),
822
- })
925
+ .set({ default_policy: "allow", policy_source: "admin" })
823
926
  .where("connector_id", "=", connectorId)
824
- .where("name", "=", name)
927
+ .where("name", "in", allowed)
825
928
  .execute();
826
929
  }
827
- await audit(t, {
828
- actorAccountId,
829
- ...(actorTokenId !== undefined && { actorTokenId }),
830
- orgId,
831
- action: "connector.updated",
832
- target: connectorId,
833
- detail: {
834
- ...(patch.name !== undefined && { name: { from: app.name, to: patch.name } }),
835
- ...(patch.status !== undefined && { status: { from: app.status, to: patch.status } }),
836
- ...(toolChanges.length > 0 && { tools: Object.fromEntries(toolChanges) }),
837
- ...(allowed.length > 0 && { allowedUnannotated: allowed }),
838
- },
839
- });
840
- return this.detail(t, orgId, connectorId, actorAccountId);
930
+ }
931
+ for (const [name, change] of toolChanges) {
932
+ if (change.status === undefined && change.defaultPolicy === undefined)
933
+ continue;
934
+ await t
935
+ .updateTable("connector_tools")
936
+ .set({
937
+ ...(change.status !== undefined && { status: change.status }),
938
+ ...(change.defaultPolicy !== undefined && {
939
+ default_policy: change.defaultPolicy,
940
+ policy_source: "admin",
941
+ }),
942
+ })
943
+ .where("connector_id", "=", connectorId)
944
+ .where("name", "=", name)
945
+ .execute();
946
+ }
947
+ await audit(t, {
948
+ actorAccountId,
949
+ ...(actorTokenId !== undefined && { actorTokenId }),
950
+ orgId,
951
+ action: "connector.updated",
952
+ target: connectorId,
953
+ detail: {
954
+ ...(patch.name !== undefined && { name: { from: app.name, to: patch.name } }),
955
+ ...(patch.status !== undefined && { status: { from: app.status, to: patch.status } }),
956
+ ...(toolChanges.length > 0 && { tools: Object.fromEntries(toolChanges) }),
957
+ ...(allowed.length > 0 && { allowedUnannotated: allowed }),
958
+ },
841
959
  });
960
+ return this.detail(t, orgId, connectorId, actorAccountId);
842
961
  }
843
962
  /** 软删除,并删除该连接器的全部凭据(`connectors.manage`)。 */
844
- async remove(orgId, connectorId, actorAccountId, actorTokenId) {
845
- await this.db.transaction().execute(async (t) => {
846
- await lockOrgAndAuthorize(t, orgId, actorAccountId, "connectors.manage");
847
- await this.removeIn(t, orgId, connectorId, actorAccountId, actorTokenId);
848
- });
963
+ async remove(orgId, connectorId, actorAccountId, actorTokenId, auditDetail) {
964
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "connectors.manage");
965
+ await this.removeIn(orgId, connectorId, actorAccountId, actorTokenId, undefined, auditDetail);
849
966
  }
850
967
  /**
851
968
  * 在调用方事务里软删除连接器(调用方已锁组织行并按需复核角色;应用安装的回滚与卸载用):删全部凭据与授权,
852
969
  * 审计 `connector.deleted`(`reason` 并进 detail)。已删除 / 不存在 → `connector.not_found`。
853
970
  */
854
- async removeIn(t, orgId, connectorId, actorAccountId, actorTokenId, reason) {
971
+ async removeIn(orgId, connectorId,
972
+ /** null: the kernel itself (the plugin scope sync uninstalling a plugin). */
973
+ actorAccountId, actorTokenId, reason,
974
+ /** Merged into the audit detail (a write made through the Platform tool). */
975
+ auditDetail) {
976
+ const t = this.db;
855
977
  const app = await this.row(t, orgId, connectorId, true);
856
978
  await t
857
979
  .updateTable("connectors")
858
980
  .set({ deleted_at: sql `now()`, updated_at: sql `now()` })
859
981
  .where("id", "=", connectorId)
860
982
  .execute();
861
- await this.credentials.clearConnector(orgId, connectorId, t);
983
+ await this.credentials.clearConnector(orgId, connectorId);
862
984
  // 授权绑定连接器 id(软删除不触发外键级联):一并删掉,不留给任何后来的连接器
863
985
  await t.deleteFrom("tool_grants").where("connector_id", "=", connectorId).execute();
864
986
  await t
@@ -871,7 +993,7 @@ export class ConnectorsService {
871
993
  orgId,
872
994
  action: "connector.deleted",
873
995
  target: connectorId,
874
- detail: { slug: app.slug, ...(reason !== undefined && { reason }) },
996
+ detail: { slug: app.slug, ...(reason !== undefined && { reason }), ...auditDetail },
875
997
  });
876
998
  }
877
999
  /**
@@ -886,37 +1008,40 @@ export class ConnectorsService {
886
1008
  const auth = app.auth;
887
1009
  const { specs, resources } = await this.drift.listTools(app.connector, app.endpoint, () => this.credentials.injection(orgId, connectorId, auth, actorAccountId), { orgId, connectorId }, (last) => this.credentials.onUnauthorized(orgId, connectorId, auth, actorAccountId, last));
888
1010
  const { rows, issues } = snapshot(app.slug, specs, resources);
889
- return this.db.transaction().execute(async (t) => {
890
- await lockOrgAndAuthorize(t, orgId, actorAccountId, opts.trigger === "first_connect" ? "connectors.use" : "connectors.manage");
891
- const locked = await this.row(t, orgId, connectorId, true);
892
- const changes = await this.drift.apply(t, locked, rows);
893
- // 首个快照(授权码连接器首个成员连接后):按目录模板的 defaultToolPolicies 设默认策略(policy_source 'template')
894
- const templatePolicies = locked.template_tool_policies;
895
- if (locked.tools_synced_at === null && templatePolicies) {
896
- for (const [name, policy] of Object.entries(templatePolicies)) {
897
- await t
898
- .updateTable("connector_tools")
899
- .set({ default_policy: policy, policy_source: "template" })
900
- .where("connector_id", "=", connectorId)
901
- .where("name", "=", name)
902
- .where("policy_source", "=", "derived")
903
- .execute();
904
- }
1011
+ return this.refreshIn(orgId, connectorId, actorAccountId, actorTokenId, opts, rows, issues);
1012
+ }
1013
+ /** The org-locked compare-and-write of {@link refresh} (the tool list was fetched before). */
1014
+ async refreshIn(orgId, connectorId, actorAccountId, actorTokenId, opts, rows, issues) {
1015
+ const t = this.db;
1016
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, opts.trigger === "first_connect" ? "connectors.use" : "connectors.manage");
1017
+ const locked = await this.row(t, orgId, connectorId, true);
1018
+ const changes = await this.drift.apply(locked, rows);
1019
+ // 首个快照(授权码连接器首个成员连接后):按目录模板的 defaultToolPolicies 设默认策略(policy_source 'template')
1020
+ const templatePolicies = locked.template_tool_policies;
1021
+ if (locked.tools_synced_at === null && templatePolicies) {
1022
+ for (const [name, policy] of Object.entries(templatePolicies)) {
1023
+ await t
1024
+ .updateTable("connector_tools")
1025
+ .set({ default_policy: policy, policy_source: "template" })
1026
+ .where("connector_id", "=", connectorId)
1027
+ .where("name", "=", name)
1028
+ .where("policy_source", "=", "derived")
1029
+ .execute();
905
1030
  }
906
- await audit(t, {
907
- actorAccountId,
908
- ...(actorTokenId !== undefined && { actorTokenId }),
909
- orgId,
910
- action: "connector.tools_refreshed",
911
- target: connectorId,
912
- detail: { ...changes, ...(opts.trigger && { trigger: opts.trigger }) },
913
- });
914
- return {
915
- connector: await this.detail(t, orgId, connectorId, actorAccountId),
916
- issues,
917
- changes,
918
- };
1031
+ }
1032
+ await audit(t, {
1033
+ actorAccountId,
1034
+ ...(actorTokenId !== undefined && { actorTokenId }),
1035
+ orgId,
1036
+ action: "connector.tools_refreshed",
1037
+ target: connectorId,
1038
+ detail: { ...changes, ...(opts.trigger && { trigger: opts.trigger }), ...opts.auditDetail },
919
1039
  });
1040
+ return {
1041
+ connector: await this.detail(t, orgId, connectorId, actorAccountId),
1042
+ issues,
1043
+ changes,
1044
+ };
920
1045
  }
921
1046
  /**
922
1047
  * 复核一个待复核的工具(`connectors.manage`,spec 7.3)。`approve`:采用待复核的新定义(若有)并启用,
@@ -926,81 +1051,80 @@ export class ConnectorsService {
926
1051
  * 采用新定义即换了指纹:旧的「以后都允许」/「本会话都允许」授权按指纹比对自然失效(D8)。审计 `connector.tool_reviewed`。
927
1052
  */
928
1053
  async reviewTool(orgId, connectorId, name, action, actorAccountId, actorTokenId) {
929
- return this.db.transaction().execute(async (t) => {
930
- await lockOrgAndAuthorize(t, orgId, actorAccountId, "connectors.manage");
931
- const app = await this.row(t, orgId, connectorId, true);
932
- const tool = await t
933
- .selectFrom("connector_tools")
934
- .select([
935
- "status",
936
- "source",
937
- "spec",
938
- "policy_source",
939
- "pending_spec",
940
- "pending_spec_hash",
941
- "pending_source",
942
- "reviewed_at",
943
- "missing_since",
944
- ])
945
- .where("connector_id", "=", connectorId)
946
- .where("name", "=", name)
947
- .forUpdate()
948
- .executeTakeFirst();
949
- if (!tool)
950
- throw new ApiError("connector.tool_not_found", "Tool not found in this connector");
951
- // 可复核:待复核、有待复核的新定义,或从未复核过(如被拒绝的新工具,仍可再批准);已消失的不可复核
952
- const reviewable = tool.status === "pending_review" ||
953
- tool.pending_spec_hash !== null ||
954
- tool.reviewed_at === null;
955
- if (!reviewable || tool.missing_since !== null) {
956
- throw new ApiError("connector.tool_not_pending", "Tool is not pending review");
957
- }
958
- const next = (tool.pending_spec ?? tool.spec);
959
- const nextSource = tool.pending_source ?? tool.source;
960
- if (action === "approve") {
961
- const issue = toolIssue(app.slug, next);
962
- if (issue)
963
- throw fail("action", issue);
964
- }
965
- const rederive = tool.policy_source === "derived" || nextSource !== tool.source;
966
- await t
967
- .updateTable("connector_tools")
968
- .set({
969
- ...(action === "approve"
970
- ? {
971
- status: "enabled",
972
- ...(tool.pending_spec_hash !== null && {
973
- spec: JSON.stringify(next),
974
- spec_hash: tool.pending_spec_hash,
975
- source: nextSource,
976
- }),
977
- ...(rederive && {
978
- default_policy: policyFromAnnotations(next.annotations),
979
- policy_source: "derived",
980
- }),
981
- }
982
- : { status: "disabled" }),
983
- pending_spec: null,
984
- pending_spec_hash: null,
985
- pending_source: null,
986
- // 拒绝从未复核过的工具不算「复核通过过」:reviewed_at 保持为空(之后不能经 PATCH 启用)
987
- ...((action === "approve" || tool.reviewed_at !== null) && {
988
- reviewed_at: sql `now()`,
989
- }),
990
- })
991
- .where("connector_id", "=", connectorId)
992
- .where("name", "=", name)
993
- .execute();
994
- await audit(t, {
995
- actorAccountId,
996
- ...(actorTokenId !== undefined && { actorTokenId }),
997
- orgId,
998
- action: "connector.tool_reviewed",
999
- target: connectorId,
1000
- detail: { tool: name, action },
1001
- });
1002
- return this.detail(t, orgId, connectorId, actorAccountId);
1054
+ const t = this.db;
1055
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "connectors.manage");
1056
+ const app = await this.row(t, orgId, connectorId, true);
1057
+ const tool = await t
1058
+ .selectFrom("connector_tools")
1059
+ .select([
1060
+ "status",
1061
+ "source",
1062
+ "spec",
1063
+ "policy_source",
1064
+ "pending_spec",
1065
+ "pending_spec_hash",
1066
+ "pending_source",
1067
+ "reviewed_at",
1068
+ "missing_since",
1069
+ ])
1070
+ .where("connector_id", "=", connectorId)
1071
+ .where("name", "=", name)
1072
+ .forUpdate()
1073
+ .executeTakeFirst();
1074
+ if (!tool)
1075
+ throw new ApiError("connector.tool_not_found", "Tool not found in this connector");
1076
+ // 可复核:待复核、有待复核的新定义,或从未复核过(如被拒绝的新工具,仍可再批准);已消失的不可复核
1077
+ const reviewable = tool.status === "pending_review" ||
1078
+ tool.pending_spec_hash !== null ||
1079
+ tool.reviewed_at === null;
1080
+ if (!reviewable || tool.missing_since !== null) {
1081
+ throw new ApiError("connector.tool_not_pending", "Tool is not pending review");
1082
+ }
1083
+ const next = (tool.pending_spec ?? tool.spec);
1084
+ const nextSource = tool.pending_source ?? tool.source;
1085
+ if (action === "approve") {
1086
+ const issue = toolIssue(app.slug, next);
1087
+ if (issue)
1088
+ throw fail("action", issue);
1089
+ }
1090
+ const rederive = tool.policy_source === "derived" || nextSource !== tool.source;
1091
+ await t
1092
+ .updateTable("connector_tools")
1093
+ .set({
1094
+ ...(action === "approve"
1095
+ ? {
1096
+ status: "enabled",
1097
+ ...(tool.pending_spec_hash !== null && {
1098
+ spec: JSON.stringify(next),
1099
+ spec_hash: tool.pending_spec_hash,
1100
+ source: nextSource,
1101
+ }),
1102
+ ...(rederive && {
1103
+ default_policy: policyFromAnnotations(next.annotations),
1104
+ policy_source: "derived",
1105
+ }),
1106
+ }
1107
+ : { status: "disabled" }),
1108
+ pending_spec: null,
1109
+ pending_spec_hash: null,
1110
+ pending_source: null,
1111
+ // 拒绝从未复核过的工具不算「复核通过过」:reviewed_at 保持为空(之后不能经 PATCH 启用)
1112
+ ...((action === "approve" || tool.reviewed_at !== null) && {
1113
+ reviewed_at: sql `now()`,
1114
+ }),
1115
+ })
1116
+ .where("connector_id", "=", connectorId)
1117
+ .where("name", "=", name)
1118
+ .execute();
1119
+ await audit(t, {
1120
+ actorAccountId,
1121
+ ...(actorTokenId !== undefined && { actorTokenId }),
1122
+ orgId,
1123
+ action: "connector.tool_reviewed",
1124
+ target: connectorId,
1125
+ detail: { tool: name, action },
1003
1126
  });
1127
+ return this.detail(t, orgId, connectorId, actorAccountId);
1004
1128
  }
1005
1129
  /**
1006
1130
  * 写凭据(组织凭据:`connectors.manage`;个人凭据:`connectors.use`,只写发起人自己的那一条)。
@@ -1015,21 +1139,24 @@ export class ConnectorsService {
1015
1139
  return;
1016
1140
  }
1017
1141
  }
1018
- await this.db.transaction().execute(async (t) => {
1019
- await lockOrgAndAuthorize(t, orgId, actorAccountId, ownership === "org" ? "connectors.manage" : "connectors.use");
1020
- const app = await this.row(t, orgId, connectorId);
1021
- const auth = app.auth;
1022
- const owner = ownership === "org" ? { kind: "org" } : { kind: "user", accountId: actorAccountId };
1023
- this.credentials.validate(auth, owner, value);
1024
- await this.credentials.setStatic(orgId, connectorId, auth, owner, value, t);
1025
- await audit(t, {
1026
- actorAccountId,
1027
- ...(actorTokenId !== undefined && { actorTokenId }),
1028
- orgId,
1029
- action: "connector.credential.set",
1030
- target: connectorId,
1031
- detail: { type: auth.type, ownership },
1032
- });
1142
+ await this.setCredentialIn(orgId, connectorId, actorAccountId, ownership, value, actorTokenId);
1143
+ }
1144
+ /** The org-locked static credential write of {@link setCredential}. */
1145
+ async setCredentialIn(orgId, connectorId, actorAccountId, ownership, value, actorTokenId) {
1146
+ const t = this.db;
1147
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, ownership === "org" ? "connectors.manage" : "connectors.use");
1148
+ const app = await this.row(t, orgId, connectorId);
1149
+ const auth = app.auth;
1150
+ const owner = ownership === "org" ? { kind: "org" } : { kind: "user", accountId: actorAccountId };
1151
+ this.credentials.validate(auth, owner, value);
1152
+ await this.credentials.setStatic(orgId, connectorId, auth, owner, value);
1153
+ await audit(t, {
1154
+ actorAccountId,
1155
+ ...(actorTokenId !== undefined && { actorTokenId }),
1156
+ orgId,
1157
+ action: "connector.credential.set",
1158
+ target: connectorId,
1159
+ detail: { type: auth.type, ownership },
1033
1160
  });
1034
1161
  }
1035
1162
  /**
@@ -1061,42 +1188,86 @@ export class ConnectorsService {
1061
1188
  let tokens;
1062
1189
  if (auth.type === "oauth_client") {
1063
1190
  try {
1064
- tokens = await tokenRequest(client, { grant_type: "client_credentials", scope: (auth.scopes ?? client.scopes)?.join(" ") }, oauthHttpOptions(this.config()));
1191
+ tokens = await tokenRequest(client, { grant_type: "client_credentials", scope: (auth.scopes ?? client.scopes)?.join(" ") }, oauthHttpOptions(this.config.get()), { tokenTypes: auth.tokenTypes });
1065
1192
  }
1066
1193
  catch (e) {
1067
1194
  throw connectFailed(e);
1068
1195
  }
1069
1196
  }
1070
- await this.db.transaction().execute(async (t) => {
1071
- await lockOrgAndAuthorize(t, orgId, actorAccountId, "connectors.manage");
1072
- await this.row(t, orgId, connectorId, true);
1073
- await this.credentials.setOAuthClient(orgId, connectorId, client, t);
1074
- if (tokens)
1075
- await this.credentials.setOAuthTokens(orgId, connectorId, { kind: "org" }, tokens, t);
1076
- await audit(t, {
1077
- actorAccountId,
1078
- ...(actorTokenId !== undefined && { actorTokenId }),
1079
- orgId,
1080
- action: "connector.credential.set",
1081
- target: connectorId,
1082
- detail: { type: auth.type, ownership: "org" },
1083
- });
1197
+ await this.storeOAuthClient(orgId, connectorId, actorAccountId, auth, client, tokens, actorTokenId);
1198
+ }
1199
+ /** The org-locked client (and token) write of {@link rotateOAuthClient}. */
1200
+ async storeOAuthClient(orgId, connectorId, actorAccountId, auth, client, tokens, actorTokenId) {
1201
+ const t = this.db;
1202
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "connectors.manage");
1203
+ await this.row(t, orgId, connectorId, true);
1204
+ await this.credentials.setOAuthClient(orgId, connectorId, client);
1205
+ if (tokens)
1206
+ await this.credentials.setOAuthTokens(orgId, connectorId, { kind: "org" }, tokens);
1207
+ await audit(t, {
1208
+ actorAccountId,
1209
+ ...(actorTokenId !== undefined && { actorTokenId }),
1210
+ orgId,
1211
+ action: "connector.credential.set",
1212
+ target: connectorId,
1213
+ detail: { type: auth.type, ownership: "org" },
1084
1214
  });
1085
1215
  }
1086
1216
  /** 删除发起人自己的个人凭据(`connectors.use`);本来就没有也成功。 */
1087
1217
  async clearMyCredential(orgId, connectorId, actorAccountId, actorTokenId) {
1088
- await this.db.transaction().execute(async (t) => {
1089
- await lockOrgAndAuthorize(t, orgId, actorAccountId, "connectors.use");
1090
- const app = await this.row(t, orgId, connectorId);
1091
- await this.credentials.clear(orgId, connectorId, { kind: "user", accountId: actorAccountId }, t);
1092
- await audit(t, {
1093
- actorAccountId,
1094
- ...(actorTokenId !== undefined && { actorTokenId }),
1095
- orgId,
1096
- action: "connector.credential.cleared",
1097
- target: connectorId,
1098
- detail: { type: app.auth.type, ownership: "personal" },
1099
- });
1218
+ const t = this.db;
1219
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "connectors.use");
1220
+ const app = await this.row(t, orgId, connectorId);
1221
+ await this.credentials.clear(orgId, connectorId, { kind: "user", accountId: actorAccountId });
1222
+ await audit(t, {
1223
+ actorAccountId,
1224
+ ...(actorTokenId !== undefined && { actorTokenId }),
1225
+ orgId,
1226
+ action: "connector.credential.cleared",
1227
+ target: connectorId,
1228
+ detail: { type: app.auth.type, ownership: "personal" },
1100
1229
  });
1101
1230
  }
1102
- }
1231
+ };
1232
+ __decorate([
1233
+ Transactional()
1234
+ ], ConnectorsService.prototype, "createIn", null);
1235
+ __decorate([
1236
+ Transactional({ propagation: "mandatory" })
1237
+ ], ConnectorsService.prototype, "applyTemplateIn", null);
1238
+ __decorate([
1239
+ Transactional()
1240
+ ], ConnectorsService.prototype, "update", null);
1241
+ __decorate([
1242
+ Transactional()
1243
+ ], ConnectorsService.prototype, "remove", null);
1244
+ __decorate([
1245
+ Transactional({ propagation: "mandatory" })
1246
+ ], ConnectorsService.prototype, "removeIn", null);
1247
+ __decorate([
1248
+ Transactional()
1249
+ ], ConnectorsService.prototype, "refreshIn", null);
1250
+ __decorate([
1251
+ Transactional()
1252
+ ], ConnectorsService.prototype, "reviewTool", null);
1253
+ __decorate([
1254
+ Transactional()
1255
+ ], ConnectorsService.prototype, "setCredentialIn", null);
1256
+ __decorate([
1257
+ Transactional()
1258
+ ], ConnectorsService.prototype, "storeOAuthClient", null);
1259
+ __decorate([
1260
+ Transactional()
1261
+ ], ConnectorsService.prototype, "clearMyCredential", null);
1262
+ ConnectorsService = __decorate([
1263
+ Injectable(),
1264
+ __param(0, Inject(KernelDb)),
1265
+ __param(1, Inject(ToolRegistry)),
1266
+ __param(2, Inject(ExtensionRegistry)),
1267
+ __param(3, Inject(Credentials)),
1268
+ __param(4, Inject(KernelConfigService)),
1269
+ __param(5, Inject(ToolDrift)),
1270
+ __param(6, Inject(OrgLock)),
1271
+ __param(7, Inject(TransactionHost))
1272
+ ], ConnectorsService);
1273
+ export { ConnectorsService };