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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1039) hide show
  1. package/bootstrap.json +85 -5
  2. package/dist/admin/admin-agents.controller.d.ts +28 -0
  3. package/dist/admin/admin-agents.controller.js +79 -0
  4. package/dist/admin/admin-connectors.controller.d.ts +29 -0
  5. package/dist/admin/admin-connectors.controller.js +79 -0
  6. package/dist/admin/admin-items.schemas.d.ts +42 -0
  7. package/dist/admin/admin-items.schemas.js +48 -0
  8. package/dist/admin/admin.controller.d.ts +52 -80
  9. package/dist/admin/admin.controller.js +112 -81
  10. package/dist/admin/admin.module.d.ts +4 -1
  11. package/dist/admin/admin.module.js +50 -4
  12. package/dist/admin/admin.schemas.d.ts +69 -0
  13. package/dist/admin/admin.schemas.js +53 -0
  14. package/dist/admin/audit.controller.d.ts +14 -0
  15. package/dist/admin/audit.controller.js +42 -0
  16. package/dist/admin/audit.schemas.d.ts +8 -0
  17. package/dist/admin/audit.schemas.js +17 -0
  18. package/dist/admin/extensions.controller.d.ts +34 -3
  19. package/dist/admin/extensions.controller.js +66 -8
  20. package/dist/admin/extensions.schemas.d.ts +7 -0
  21. package/dist/admin/extensions.schemas.js +10 -0
  22. package/dist/admin/health.service.d.ts +104 -0
  23. package/dist/admin/health.service.js +246 -0
  24. package/dist/admin/limit-defaults.d.ts +20 -0
  25. package/dist/admin/limit-defaults.js +10 -0
  26. package/dist/admin/overview.controller.d.ts +31 -0
  27. package/dist/admin/overview.controller.js +78 -0
  28. package/dist/admin/overview.schemas.d.ts +8 -0
  29. package/dist/admin/overview.schemas.js +13 -0
  30. package/dist/admin/overview.service.d.ts +112 -0
  31. package/dist/admin/overview.service.js +223 -0
  32. package/dist/admin/platform-audit.service.d.ts +41 -0
  33. package/dist/admin/platform-audit.service.js +70 -0
  34. package/dist/admin/setup-lock.d.ts +1 -1
  35. package/dist/admin/setup-lock.js +1 -1
  36. package/dist/admin/setup.controller.d.ts +1 -1
  37. package/dist/admin/setup.controller.js +1 -1
  38. package/dist/admin/setup.service.d.ts +4 -4
  39. package/dist/admin/setup.service.js +8 -8
  40. package/dist/admin/usage.service.d.ts +149 -0
  41. package/dist/admin/usage.service.js +321 -0
  42. package/dist/agents/admin-agents.d.ts +92 -0
  43. package/dist/agents/admin-agents.js +170 -0
  44. package/dist/agents/agent-lookup.d.ts +24 -0
  45. package/dist/agents/agent-lookup.js +46 -2
  46. package/dist/agents/agent-profile.service.d.ts +31 -0
  47. package/dist/agents/agent-profile.service.js +122 -0
  48. package/dist/agents/agents.controller.d.ts +53 -168
  49. package/dist/agents/agents.controller.js +163 -34
  50. package/dist/agents/agents.module.d.ts +6 -2
  51. package/dist/agents/agents.module.js +41 -7
  52. package/dist/agents/agents.schemas.d.ts +392 -0
  53. package/dist/agents/agents.schemas.js +126 -0
  54. package/dist/agents/agents.service.d.ts +121 -36
  55. package/dist/agents/agents.service.js +411 -121
  56. package/dist/agents/definition.d.ts +142 -21
  57. package/dist/agents/definition.js +389 -43
  58. package/dist/agents/from-template.d.ts +106 -0
  59. package/dist/agents/from-template.js +680 -0
  60. package/dist/agents/from-template.service.d.ts +72 -0
  61. package/dist/agents/from-template.service.js +178 -0
  62. package/dist/agents/instruction-files.d.ts +60 -0
  63. package/dist/agents/instruction-files.js +111 -0
  64. package/dist/agents/models.controller.d.ts +44 -6
  65. package/dist/agents/models.controller.js +84 -8
  66. package/dist/agents/org-templates.d.ts +186 -0
  67. package/dist/agents/org-templates.js +876 -0
  68. package/dist/agents/pending-connector-requests.d.ts +79 -0
  69. package/dist/agents/pending-connector-requests.js +215 -0
  70. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  71. package/dist/agents/pending-connectors.controller.js +91 -0
  72. package/dist/agents/pending-connectors.service.d.ts +62 -0
  73. package/dist/agents/pending-connectors.service.js +282 -0
  74. package/dist/agents/profile.d.ts +114 -0
  75. package/dist/agents/profile.js +55 -0
  76. package/dist/agents/readiness.controller.d.ts +26 -0
  77. package/dist/agents/readiness.controller.js +56 -0
  78. package/dist/agents/templates.controller.d.ts +77 -5
  79. package/dist/agents/templates.controller.js +153 -7
  80. package/dist/agents/templates.d.ts +127 -23
  81. package/dist/agents/templates.js +482 -44
  82. package/dist/agents/templates.schemas.d.ts +20 -0
  83. package/dist/agents/templates.schemas.js +45 -0
  84. package/dist/background/background.controller.d.ts +38 -0
  85. package/dist/background/background.controller.js +88 -0
  86. package/dist/background/background.module.d.ts +10 -0
  87. package/dist/background/background.module.js +39 -0
  88. package/dist/background/background.schemas.d.ts +10 -0
  89. package/dist/background/background.schemas.js +16 -0
  90. package/dist/background/finish.d.ts +44 -0
  91. package/dist/background/finish.js +95 -0
  92. package/dist/background/launch-lock.d.ts +15 -0
  93. package/dist/background/launch-lock.js +40 -0
  94. package/dist/background/launch.d.ts +42 -0
  95. package/dist/background/launch.js +77 -0
  96. package/dist/background/poll.job.d.ts +56 -0
  97. package/dist/background/poll.job.js +195 -0
  98. package/dist/background/render.d.ts +23 -0
  99. package/dist/background/render.js +48 -0
  100. package/dist/background/session.d.ts +48 -0
  101. package/dist/background/session.js +80 -0
  102. package/dist/background/status.d.ts +35 -0
  103. package/dist/background/status.js +57 -0
  104. package/dist/background/stop.d.ts +68 -0
  105. package/dist/background/stop.js +244 -0
  106. package/dist/background/store.d.ts +167 -0
  107. package/dist/background/store.js +361 -0
  108. package/dist/background/store.module.d.ts +6 -0
  109. package/dist/background/store.module.js +22 -0
  110. package/dist/background/tasks.service.d.ts +109 -0
  111. package/dist/background/tasks.service.js +271 -0
  112. package/dist/background/wake-rules.d.ts +66 -0
  113. package/dist/background/wake-rules.js +113 -0
  114. package/dist/background/wake.d.ts +30 -0
  115. package/dist/background/wake.js +63 -0
  116. package/dist/catalog/admin-catalog.controller.d.ts +136 -52
  117. package/dist/catalog/admin-catalog.controller.js +275 -65
  118. package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
  119. package/dist/catalog/admin-catalog.schemas.js +99 -0
  120. package/dist/catalog/appearance.schemas.d.ts +10 -0
  121. package/dist/catalog/appearance.schemas.js +20 -0
  122. package/dist/catalog/appearance.service.d.ts +105 -0
  123. package/dist/catalog/appearance.service.js +306 -0
  124. package/dist/catalog/catalog-content.d.ts +122 -35
  125. package/dist/catalog/catalog-content.js +122 -14
  126. package/dist/catalog/catalog-files.d.ts +42 -0
  127. package/dist/catalog/catalog-files.js +89 -0
  128. package/dist/catalog/catalog-import.module.d.ts +7 -0
  129. package/dist/catalog/catalog-import.module.js +63 -0
  130. package/dist/catalog/catalog-items.d.ts +122 -7
  131. package/dist/catalog/catalog-items.js +301 -13
  132. package/dist/catalog/catalog-scope.service.d.ts +293 -0
  133. package/dist/catalog/catalog-scope.service.js +1236 -0
  134. package/dist/catalog/catalog.module.d.ts +7 -9
  135. package/dist/catalog/catalog.module.js +47 -31
  136. package/dist/catalog/catalog.service.d.ts +122 -31
  137. package/dist/catalog/catalog.service.js +177 -105
  138. package/dist/catalog/claude/agents.js +15 -10
  139. package/dist/catalog/claude/translate.js +3 -0
  140. package/dist/catalog/cli.d.ts +11 -1
  141. package/dist/catalog/cli.js +29 -1
  142. package/dist/catalog/component-promotion.d.ts +96 -0
  143. package/dist/catalog/component-promotion.js +395 -0
  144. package/dist/catalog/component-scope.controller.d.ts +102 -0
  145. package/dist/catalog/component-scope.controller.js +257 -0
  146. package/dist/catalog/component-scope.schemas.d.ts +118 -0
  147. package/dist/catalog/component-scope.schemas.js +97 -0
  148. package/dist/catalog/component-scope.service.d.ts +394 -0
  149. package/dist/catalog/component-scope.service.js +1133 -0
  150. package/dist/catalog/component-state.d.ts +207 -0
  151. package/dist/catalog/component-state.js +484 -0
  152. package/dist/catalog/git-source.d.ts +9 -1
  153. package/dist/catalog/git-source.js +29 -2
  154. package/dist/catalog/job-ids.d.ts +30 -0
  155. package/dist/catalog/job-ids.js +25 -0
  156. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  157. package/dist/catalog/marketplace-icons.d.ts +64 -0
  158. package/dist/catalog/marketplace-icons.js +131 -0
  159. package/dist/catalog/marketplaces.controller.d.ts +50 -41
  160. package/dist/catalog/marketplaces.controller.js +130 -46
  161. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  162. package/dist/catalog/marketplaces.schemas.js +53 -0
  163. package/dist/catalog/marketplaces.service.d.ts +110 -17
  164. package/dist/catalog/marketplaces.service.js +337 -29
  165. package/dist/catalog/org-catalog.controller.d.ts +114 -62
  166. package/dist/catalog/org-catalog.controller.js +191 -98
  167. package/dist/catalog/org-catalog.schemas.d.ts +104 -0
  168. package/dist/catalog/org-catalog.schemas.js +107 -0
  169. package/dist/catalog/org-catalog.service.d.ts +72 -33
  170. package/dist/catalog/org-catalog.service.js +367 -158
  171. package/dist/catalog/org-extension-switch.d.ts +41 -0
  172. package/dist/catalog/org-extension-switch.js +115 -0
  173. package/dist/catalog/org-extension.controller.d.ts +133 -0
  174. package/dist/catalog/org-extension.controller.js +313 -0
  175. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  176. package/dist/catalog/org-extension.schemas.js +22 -0
  177. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  178. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  179. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  180. package/dist/catalog/org-plugin-uploads.js +122 -0
  181. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  182. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  183. package/dist/catalog/owned-items.d.ts +188 -0
  184. package/dist/catalog/owned-items.js +808 -0
  185. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  186. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  187. package/dist/catalog/ownership.d.ts +172 -0
  188. package/dist/catalog/ownership.js +326 -0
  189. package/dist/catalog/platform-components.d.ts +243 -0
  190. package/dist/catalog/platform-components.js +872 -0
  191. package/dist/catalog/platform-migration.d.ts +115 -0
  192. package/dist/catalog/platform-migration.js +583 -0
  193. package/dist/catalog/plugin-import.d.ts +254 -47
  194. package/dist/catalog/plugin-import.js +810 -112
  195. package/dist/catalog/plugin-install.d.ts +205 -42
  196. package/dist/catalog/plugin-install.js +828 -126
  197. package/dist/catalog/plugin-package.d.ts +43 -4
  198. package/dist/catalog/plugin-package.js +194 -7
  199. package/dist/catalog/plugin-upgrade.d.ts +308 -225
  200. package/dist/catalog/plugin-upgrade.js +1325 -1131
  201. package/dist/catalog/request-rules.d.ts +65 -0
  202. package/dist/catalog/request-rules.js +217 -0
  203. package/dist/catalog/requests.service.d.ts +194 -118
  204. package/dist/catalog/requests.service.js +530 -343
  205. package/dist/catalog/reserved-names.d.ts +8 -0
  206. package/dist/catalog/reserved-names.js +42 -0
  207. package/dist/catalog/scope-orgs.d.ts +21 -0
  208. package/dist/catalog/scope-orgs.js +67 -0
  209. package/dist/catalog/scope-state.d.ts +35 -0
  210. package/dist/catalog/scope-state.js +87 -0
  211. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  212. package/dist/catalog/scope-sync-workers.js +29 -0
  213. package/dist/catalog/scope-sync.d.ts +176 -0
  214. package/dist/catalog/scope-sync.js +576 -0
  215. package/dist/catalog/scope.d.ts +42 -0
  216. package/dist/catalog/scope.js +42 -0
  217. package/dist/catalog/unshare.d.ts +22 -0
  218. package/dist/catalog/unshare.js +119 -0
  219. package/dist/channels/actions.js +10 -3
  220. package/dist/channels/cards.d.ts +36 -10
  221. package/dist/channels/cards.js +100 -25
  222. package/dist/channels/channels.module.js +13 -2
  223. package/dist/channels/channels.schemas.d.ts +41 -0
  224. package/dist/channels/channels.schemas.js +40 -0
  225. package/dist/channels/connections.controller.d.ts +46 -37
  226. package/dist/channels/connections.controller.js +76 -34
  227. package/dist/channels/connections.service.d.ts +102 -10
  228. package/dist/channels/connections.service.js +271 -24
  229. package/dist/channels/inbound.d.ts +11 -1
  230. package/dist/channels/inbound.js +87 -7
  231. package/dist/channels/outbound.d.ts +14 -1
  232. package/dist/channels/outbound.js +64 -15
  233. package/dist/channels/phrases.d.ts +33 -2
  234. package/dist/channels/phrases.js +29 -1
  235. package/dist/channels/supervisor.d.ts +2 -0
  236. package/dist/channels/supervisor.js +4 -0
  237. package/dist/channels/threads.d.ts +5 -0
  238. package/dist/channels/threads.js +8 -0
  239. package/dist/channels/webhook.d.ts +21 -1
  240. package/dist/channels/webhook.js +39 -4
  241. package/dist/client/client-access.service.d.ts +102 -0
  242. package/dist/client/client-access.service.js +303 -0
  243. package/dist/client/client-builds.service.d.ts +109 -0
  244. package/dist/client/client-builds.service.js +229 -0
  245. package/dist/client/client-delivery.controller.d.ts +25 -0
  246. package/dist/client/client-delivery.controller.js +66 -0
  247. package/dist/client/client-files.d.ts +48 -0
  248. package/dist/client/client-files.js +136 -0
  249. package/dist/client/client-reports.cron.d.ts +13 -0
  250. package/dist/client/client-reports.cron.js +42 -0
  251. package/dist/client/client-reports.service.d.ts +30 -0
  252. package/dist/client/client-reports.service.js +102 -0
  253. package/dist/client/client-sign-in.service.d.ts +21 -0
  254. package/dist/client/client-sign-in.service.js +49 -0
  255. package/dist/client/client.controller.d.ts +49 -0
  256. package/dist/client/client.controller.js +129 -0
  257. package/dist/client/client.module.d.ts +8 -0
  258. package/dist/client/client.module.js +28 -0
  259. package/dist/client/client.schemas.d.ts +61 -0
  260. package/dist/client/client.schemas.js +27 -0
  261. package/dist/config/docs.js +5 -1
  262. package/dist/config/schema.d.ts +35 -2
  263. package/dist/config/schema.js +216 -21
  264. package/dist/conversations/access.d.ts +6 -4
  265. package/dist/conversations/access.js +29 -5
  266. package/dist/conversations/agent-tree.d.ts +46 -0
  267. package/dist/conversations/agent-tree.js +92 -0
  268. package/dist/conversations/artifacts.d.ts +1 -1
  269. package/dist/conversations/artifacts.js +1 -1
  270. package/dist/conversations/attachments.service.d.ts +30 -0
  271. package/dist/conversations/attachments.service.js +130 -5
  272. package/dist/conversations/conversations.controller.d.ts +79 -44
  273. package/dist/conversations/conversations.controller.js +133 -82
  274. package/dist/conversations/conversations.module.d.ts +1 -1
  275. package/dist/conversations/conversations.module.js +10 -7
  276. package/dist/conversations/conversations.schemas.d.ts +52 -0
  277. package/dist/conversations/conversations.schemas.js +79 -0
  278. package/dist/conversations/conversations.service.d.ts +161 -13
  279. package/dist/conversations/conversations.service.js +329 -57
  280. package/dist/conversations/device-status.d.ts +24 -0
  281. package/dist/conversations/device-status.js +71 -0
  282. package/dist/conversations/event-log.d.ts +45 -9
  283. package/dist/conversations/event-log.js +113 -6
  284. package/dist/conversations/events.d.ts +255 -9
  285. package/dist/conversations/events.js +250 -34
  286. package/dist/conversations/message-context.d.ts +79 -0
  287. package/dist/conversations/message-context.js +145 -0
  288. package/dist/conversations/queue.d.ts +5 -2
  289. package/dist/conversations/queue.js +24 -4
  290. package/dist/conversations/queue.service.d.ts +2 -2
  291. package/dist/conversations/queue.service.js +21 -3
  292. package/dist/conversations/titles.d.ts +12 -3
  293. package/dist/conversations/titles.js +40 -16
  294. package/dist/conversations/tree.d.ts +17 -0
  295. package/dist/conversations/tree.js +42 -0
  296. package/dist/ctx/create-ctx.d.ts +48 -5
  297. package/dist/ctx/create-ctx.js +174 -34
  298. package/dist/db/kernel-schema.d.ts +668 -27
  299. package/dist/db/pool.d.ts +5 -0
  300. package/dist/db/pool.js +3 -0
  301. package/dist/devices/access.d.ts +66 -0
  302. package/dist/devices/access.js +113 -0
  303. package/dist/devices/conversation-devices.d.ts +75 -0
  304. package/dist/devices/conversation-devices.js +230 -0
  305. package/dist/devices/devices.controller.d.ts +36 -0
  306. package/dist/devices/devices.controller.js +124 -0
  307. package/dist/devices/devices.module.d.ts +8 -0
  308. package/dist/devices/devices.module.js +34 -0
  309. package/dist/devices/devices.schemas.d.ts +3 -0
  310. package/dist/devices/devices.schemas.js +14 -0
  311. package/dist/devices/devices.service.d.ts +251 -0
  312. package/dist/devices/devices.service.js +791 -0
  313. package/dist/devices/dto.d.ts +25 -0
  314. package/dist/devices/dto.js +12 -0
  315. package/dist/devices/label.d.ts +11 -0
  316. package/dist/devices/label.js +25 -0
  317. package/dist/devices/legacy-cleanup.job.d.ts +34 -0
  318. package/dist/devices/legacy-cleanup.job.js +141 -0
  319. package/dist/errors.d.ts +215 -3
  320. package/dist/errors.js +215 -3
  321. package/dist/evals/evals.module.js +11 -2
  322. package/dist/evals/evals.schemas.d.ts +110 -0
  323. package/dist/evals/evals.schemas.js +107 -0
  324. package/dist/evals/reconstruct.d.ts +18 -9
  325. package/dist/evals/reconstruct.js +36 -10
  326. package/dist/evals/recorded-tools.d.ts +37 -1
  327. package/dist/evals/recorded-tools.js +120 -10
  328. package/dist/evals/run-replay.d.ts +20 -3
  329. package/dist/evals/run-replay.js +78 -14
  330. package/dist/evals/runs.controller.d.ts +2 -57
  331. package/dist/evals/runs.controller.js +1 -42
  332. package/dist/evals/runs.service.d.ts +8 -7
  333. package/dist/evals/runs.service.js +45 -30
  334. package/dist/evals/sets.controller.d.ts +2 -28
  335. package/dist/evals/sets.controller.js +1 -31
  336. package/dist/evals/sets.service.d.ts +7 -7
  337. package/dist/evals/sets.service.js +23 -17
  338. package/dist/evals/snapshot.d.ts +3 -2
  339. package/dist/evals/snapshot.js +17 -4
  340. package/dist/evals/step-replay.d.ts +4 -6
  341. package/dist/evals/step-replay.js +16 -9
  342. package/dist/evals/trajectory.d.ts +5 -3
  343. package/dist/evals/trajectory.js +4 -1
  344. package/dist/evals/trajectory.service.d.ts +8 -3
  345. package/dist/evals/trajectory.service.js +26 -14
  346. package/dist/evals/worker.d.ts +5 -5
  347. package/dist/evals/worker.js +9 -3
  348. package/dist/extensions/admin-ops.d.ts +81 -14
  349. package/dist/extensions/admin-ops.js +181 -47
  350. package/dist/extensions/admin-view.d.ts +57 -10
  351. package/dist/extensions/admin-view.js +249 -27
  352. package/dist/extensions/approvals.d.ts +12 -2
  353. package/dist/extensions/blobs.d.ts +14 -1
  354. package/dist/extensions/blobs.js +49 -5
  355. package/dist/extensions/bootstrap.d.ts +41 -5
  356. package/dist/extensions/bootstrap.js +121 -19
  357. package/dist/extensions/cli.d.ts +12 -0
  358. package/dist/extensions/cli.js +11 -2
  359. package/dist/extensions/config-hash.d.ts +10 -0
  360. package/dist/extensions/config-hash.js +38 -0
  361. package/dist/extensions/config-issues.d.ts +13 -1
  362. package/dist/extensions/config-issues.js +22 -5
  363. package/dist/extensions/config-json-schema.d.ts +43 -7
  364. package/dist/extensions/config-json-schema.js +124 -58
  365. package/dist/extensions/deployment-config-store.d.ts +6 -0
  366. package/dist/extensions/deployment-config.d.ts +94 -9
  367. package/dist/extensions/deployment-config.js +255 -34
  368. package/dist/extensions/display-name.d.ts +22 -0
  369. package/dist/extensions/display-name.js +77 -0
  370. package/dist/extensions/effective-config.d.ts +133 -0
  371. package/dist/extensions/effective-config.js +379 -0
  372. package/dist/extensions/extensions.module.js +31 -12
  373. package/dist/extensions/guide-places.d.ts +68 -0
  374. package/dist/extensions/guide-places.js +152 -0
  375. package/dist/extensions/hooks.d.ts +37 -4
  376. package/dist/extensions/hooks.js +82 -16
  377. package/dist/extensions/host.d.ts +105 -12
  378. package/dist/extensions/host.js +372 -87
  379. package/dist/extensions/installs.d.ts +30 -9
  380. package/dist/extensions/installs.js +57 -16
  381. package/dist/extensions/instance.d.ts +17 -2
  382. package/dist/extensions/instance.js +21 -0
  383. package/dist/extensions/ledger.d.ts +1 -1
  384. package/dist/extensions/locks.d.ts +12 -0
  385. package/dist/extensions/locks.js +26 -0
  386. package/dist/extensions/org-config.d.ts +97 -7
  387. package/dist/extensions/org-config.js +215 -45
  388. package/dist/extensions/org-levels.d.ts +37 -0
  389. package/dist/extensions/org-levels.js +71 -0
  390. package/dist/extensions/org-overrides.d.ts +151 -0
  391. package/dist/extensions/org-overrides.js +524 -0
  392. package/dist/extensions/package.d.ts +18 -4
  393. package/dist/extensions/package.js +56 -3
  394. package/dist/extensions/permission-set.d.ts +35 -5
  395. package/dist/extensions/permission-set.js +36 -5
  396. package/dist/extensions/permission-view.d.ts +106 -13
  397. package/dist/extensions/permission-view.js +33 -15
  398. package/dist/extensions/plugin-guides.d.ts +282 -0
  399. package/dist/extensions/plugin-guides.js +554 -0
  400. package/dist/extensions/plugin-icons.d.ts +54 -0
  401. package/dist/extensions/plugin-icons.js +125 -0
  402. package/dist/extensions/plugin-items.d.ts +21 -0
  403. package/dist/extensions/plugin-items.js +42 -0
  404. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  405. package/dist/extensions/point-defaults.controller.js +69 -0
  406. package/dist/extensions/point-defaults.d.ts +73 -0
  407. package/dist/extensions/point-defaults.js +236 -0
  408. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  409. package/dist/extensions/point-defaults.schemas.js +14 -0
  410. package/dist/extensions/registry.d.ts +1 -1
  411. package/dist/extensions/registry.js +2 -0
  412. package/dist/extensions/resolve.d.ts +51 -1
  413. package/dist/extensions/resolve.js +85 -3
  414. package/dist/extensions/single-provider.d.ts +92 -0
  415. package/dist/extensions/single-provider.js +180 -0
  416. package/dist/extensions/sources.d.ts +13 -2
  417. package/dist/extensions/sources.js +2 -0
  418. package/dist/extensions/state.module.d.ts +9 -0
  419. package/dist/extensions/state.module.js +46 -0
  420. package/dist/extensions/unavailable.d.ts +50 -0
  421. package/dist/extensions/unavailable.js +115 -0
  422. package/dist/files/previewers.controller.js +2 -3
  423. package/dist/files/previewers.d.ts +10 -3
  424. package/dist/files/previewers.js +40 -11
  425. package/dist/files/previewers.schemas.d.ts +10 -0
  426. package/dist/files/previewers.schemas.js +9 -0
  427. package/dist/http/api.module.js +76 -4
  428. package/dist/http/app.d.ts +11 -2
  429. package/dist/http/app.js +31 -5
  430. package/dist/http/gateway-routes.d.ts +7 -3
  431. package/dist/http/gateway-routes.js +6 -3
  432. package/dist/http/nest-logger.d.ts +6 -5
  433. package/dist/http/nest-logger.js +24 -10
  434. package/dist/http/plugin-dispatch.d.ts +4 -1
  435. package/dist/http/plugin-dispatch.js +14 -2
  436. package/dist/identity/accounts.d.ts +77 -31
  437. package/dist/identity/accounts.js +133 -52
  438. package/dist/identity/audit.d.ts +2 -1
  439. package/dist/identity/auth.controller.js +9 -5
  440. package/dist/identity/auth.guard.d.ts +13 -5
  441. package/dist/identity/auth.guard.js +35 -9
  442. package/dist/identity/cookies.d.ts +26 -5
  443. package/dist/identity/cookies.js +58 -6
  444. package/dist/identity/identity.module.d.ts +1 -1
  445. package/dist/identity/identity.module.js +7 -4
  446. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  447. package/dist/identity/initial-passwords.controller.js +49 -0
  448. package/dist/identity/initial-passwords.d.ts +61 -0
  449. package/dist/identity/initial-passwords.job.d.ts +16 -0
  450. package/dist/identity/initial-passwords.job.js +46 -0
  451. package/dist/identity/initial-passwords.js +159 -0
  452. package/dist/identity/me.controller.d.ts +17 -1
  453. package/dist/identity/me.controller.js +45 -4
  454. package/dist/identity/me.schemas.d.ts +24 -0
  455. package/dist/identity/me.schemas.js +25 -0
  456. package/dist/identity/principal.d.ts +11 -3
  457. package/dist/identity/principal.js +11 -3
  458. package/dist/identity/sessions.d.ts +12 -0
  459. package/dist/identity/sessions.js +45 -0
  460. package/dist/identity/settings.d.ts +99 -12
  461. package/dist/identity/settings.js +234 -25
  462. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  463. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  464. package/dist/identity/write-actor.d.ts +11 -0
  465. package/dist/identity/write-actor.js +7 -0
  466. package/dist/inbox/inbox.module.d.ts +4 -1
  467. package/dist/inbox/inbox.module.js +7 -3
  468. package/dist/inbox/inbox.schemas.d.ts +8 -0
  469. package/dist/inbox/inbox.schemas.js +11 -0
  470. package/dist/inbox/inbox.service.d.ts +64 -4
  471. package/dist/inbox/inbox.service.js +74 -4
  472. package/dist/inbox/org-notices.d.ts +63 -0
  473. package/dist/inbox/org-notices.js +91 -0
  474. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  475. package/dist/inbox/platform-inbox.controller.js +58 -0
  476. package/dist/inbox/platform-inbox.service.d.ts +157 -0
  477. package/dist/inbox/platform-inbox.service.js +281 -0
  478. package/dist/inbox/platform-notices.d.ts +19 -0
  479. package/dist/inbox/platform-notices.js +9 -0
  480. package/dist/index.d.ts +6 -2
  481. package/dist/index.js +7 -1
  482. package/dist/infra/cli/kernel-cli.module.js +9 -1
  483. package/dist/infra/config/kernel-config.service.js +32 -1
  484. package/dist/infra/database/database.module.js +1 -0
  485. package/dist/infra/database/xact-lock.d.ts +1 -1
  486. package/dist/infra/database/xact-lock.js +1 -1
  487. package/dist/infra/events/kernel-events.d.ts +31 -3
  488. package/dist/infra/lifecycle/process-guards.js +4 -0
  489. package/dist/infra/lock/lock.service.d.ts +8 -0
  490. package/dist/infra/lock/lock.service.js +27 -0
  491. package/dist/infra/logging/logging.module.d.ts +4 -2
  492. package/dist/infra/logging/logging.module.js +24 -6
  493. package/dist/infra/presence/presence.module.d.ts +6 -0
  494. package/dist/infra/presence/presence.module.js +22 -0
  495. package/dist/infra/presence/replica-presence.d.ts +87 -0
  496. package/dist/infra/presence/replica-presence.js +189 -0
  497. package/dist/infra/queue/add-job-once.d.ts +14 -0
  498. package/dist/infra/queue/add-job-once.js +16 -0
  499. package/dist/infra/queue/redis-connection.d.ts +6 -0
  500. package/dist/infra/queue/redis-connection.js +7 -0
  501. package/dist/infra/redis/redis.module.js +6 -2
  502. package/dist/infra/throttler/named-throttlers.d.ts +12 -0
  503. package/dist/infra/throttler/named-throttlers.js +67 -0
  504. package/dist/infra/throttler/throttler.guard.js +1 -1
  505. package/dist/infra/tokens.d.ts +6 -1
  506. package/dist/infra/tokens.js +6 -1
  507. package/dist/kernel.module.js +15 -0
  508. package/dist/lifecycle/kernel-lifecycle.d.ts +4 -2
  509. package/dist/lifecycle/kernel-lifecycle.js +35 -7
  510. package/dist/local-devices/device-auth.controller.d.ts +42 -0
  511. package/dist/local-devices/device-auth.controller.js +116 -0
  512. package/dist/local-devices/device-auth.d.ts +119 -0
  513. package/dist/local-devices/device-auth.js +401 -0
  514. package/dist/local-devices/device-auth.module.d.ts +7 -0
  515. package/dist/local-devices/device-auth.module.js +25 -0
  516. package/dist/local-devices/device-routes.d.ts +36 -0
  517. package/dist/local-devices/device-routes.js +90 -0
  518. package/dist/local-devices/dto.d.ts +66 -0
  519. package/dist/local-devices/dto.js +44 -0
  520. package/dist/local-devices/keys.d.ts +25 -0
  521. package/dist/local-devices/keys.js +25 -0
  522. package/dist/local-devices/local-device-gateway.d.ts +134 -0
  523. package/dist/local-devices/local-device-gateway.js +542 -0
  524. package/dist/local-devices/local-device-provider.d.ts +89 -0
  525. package/dist/local-devices/local-device-provider.js +151 -0
  526. package/dist/local-devices/local-devices.module.d.ts +16 -0
  527. package/dist/local-devices/local-devices.module.js +44 -0
  528. package/dist/local-devices/machines.d.ts +118 -0
  529. package/dist/local-devices/machines.js +366 -0
  530. package/dist/local-devices/relay.d.ts +100 -0
  531. package/dist/local-devices/relay.js +373 -0
  532. package/dist/local-devices/targets.d.ts +28 -0
  533. package/dist/local-devices/targets.js +73 -0
  534. package/dist/log.d.ts +13 -1
  535. package/dist/log.js +93 -17
  536. package/dist/models/embeddings.d.ts +82 -0
  537. package/dist/models/embeddings.js +326 -0
  538. package/dist/models/enablement.controller.d.ts +40 -0
  539. package/dist/models/enablement.controller.js +74 -0
  540. package/dist/models/enablement.d.ts +101 -0
  541. package/dist/models/enablement.js +264 -0
  542. package/dist/models/models.module.d.ts +5 -1
  543. package/dist/models/models.module.js +16 -4
  544. package/dist/models/org-models.schemas.d.ts +8 -0
  545. package/dist/models/org-models.schemas.js +22 -0
  546. package/dist/models/prices.d.ts +8 -6
  547. package/dist/models/prices.js +11 -9
  548. package/dist/models/purposes.controller.d.ts +6 -4
  549. package/dist/models/purposes.controller.js +13 -7
  550. package/dist/models/purposes.d.ts +72 -14
  551. package/dist/models/purposes.js +115 -34
  552. package/dist/orgs/directory-sync.d.ts +14 -5
  553. package/dist/orgs/directory-sync.js +41 -17
  554. package/dist/orgs/offboarding.d.ts +12 -8
  555. package/dist/orgs/offboarding.js +54 -33
  556. package/dist/orgs/org-lock.d.ts +5 -0
  557. package/dist/orgs/org-lock.js +13 -0
  558. package/dist/orgs/org.guard.d.ts +10 -0
  559. package/dist/orgs/org.guard.js +43 -32
  560. package/dist/orgs/orgs.controller.d.ts +2 -5
  561. package/dist/orgs/orgs.controller.js +3 -6
  562. package/dist/orgs/orgs.module.js +3 -0
  563. package/dist/orgs/orgs.schemas.d.ts +8 -0
  564. package/dist/orgs/orgs.schemas.js +16 -0
  565. package/dist/orgs/orgs.service.d.ts +23 -8
  566. package/dist/orgs/orgs.service.js +38 -16
  567. package/dist/orgs/roles.d.ts +1 -1
  568. package/dist/orgs/roles.js +5 -1
  569. package/dist/orgs/settings.controller.d.ts +1 -1
  570. package/dist/orgs/settings.service.d.ts +66 -6
  571. package/dist/orgs/settings.service.js +89 -10
  572. package/dist/overrides.d.ts +16 -1
  573. package/dist/overrides.js +10 -0
  574. package/dist/platform/actor.d.ts +48 -0
  575. package/dist/platform/actor.js +100 -0
  576. package/dist/platform/agent-docs.d.ts +18 -0
  577. package/dist/platform/agent-docs.js +59 -0
  578. package/dist/platform/availability.d.ts +14 -0
  579. package/dist/platform/availability.js +43 -0
  580. package/dist/platform/errors.d.ts +28 -0
  581. package/dist/platform/errors.js +65 -0
  582. package/dist/platform/exclusions.d.ts +11 -0
  583. package/dist/platform/exclusions.js +774 -0
  584. package/dist/platform/method.d.ts +6 -0
  585. package/dist/platform/method.js +15 -0
  586. package/dist/platform/operation.d.ts +169 -0
  587. package/dist/platform/operation.js +102 -0
  588. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  589. package/dist/platform/ops/accounts.ops.js +291 -0
  590. package/dist/platform/ops/admin-items.ops.d.ts +37 -0
  591. package/dist/platform/ops/admin-items.ops.js +278 -0
  592. package/dist/platform/ops/admin.ops.d.ts +38 -0
  593. package/dist/platform/ops/admin.ops.js +497 -0
  594. package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
  595. package/dist/platform/ops/agent-skills.ops.js +509 -0
  596. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  597. package/dist/platform/ops/agent-templates.ops.js +272 -0
  598. package/dist/platform/ops/agents.ops.d.ts +37 -0
  599. package/dist/platform/ops/agents.ops.js +730 -0
  600. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  601. package/dist/platform/ops/approvals.ops.js +116 -0
  602. package/dist/platform/ops/background.ops.d.ts +14 -0
  603. package/dist/platform/ops/background.ops.js +134 -0
  604. package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
  605. package/dist/platform/ops/catalog-admin.ops.js +682 -0
  606. package/dist/platform/ops/channels.ops.d.ts +16 -0
  607. package/dist/platform/ops/channels.ops.js +195 -0
  608. package/dist/platform/ops/components.ops.d.ts +46 -0
  609. package/dist/platform/ops/components.ops.js +854 -0
  610. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  611. package/dist/platform/ops/connectors.ops.js +190 -0
  612. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  613. package/dist/platform/ops/conversations.ops.js +470 -0
  614. package/dist/platform/ops/devices.ops.d.ts +26 -0
  615. package/dist/platform/ops/devices.ops.js +311 -0
  616. package/dist/platform/ops/errors.d.ts +16 -0
  617. package/dist/platform/ops/errors.js +30 -0
  618. package/dist/platform/ops/evals.ops.d.ts +28 -0
  619. package/dist/platform/ops/evals.ops.js +783 -0
  620. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  621. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  622. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  623. package/dist/platform/ops/extensions.ops.js +347 -0
  624. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  625. package/dist/platform/ops/inbox.ops.js +381 -0
  626. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  627. package/dist/platform/ops/marketplaces.ops.js +466 -0
  628. package/dist/platform/ops/models.ops.d.ts +25 -0
  629. package/dist/platform/ops/models.ops.js +232 -0
  630. package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
  631. package/dist/platform/ops/org-plugins.ops.js +388 -0
  632. package/dist/platform/ops/org-settings.ops.d.ts +18 -0
  633. package/dist/platform/ops/org-settings.ops.js +127 -0
  634. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  635. package/dist/platform/ops/orgs.ops.js +298 -0
  636. package/dist/platform/ops/other-orgs.d.ts +20 -0
  637. package/dist/platform/ops/other-orgs.js +72 -0
  638. package/dist/platform/ops/paging.d.ts +14 -0
  639. package/dist/platform/ops/paging.js +20 -0
  640. package/dist/platform/ops/platform.ops.d.ts +30 -0
  641. package/dist/platform/ops/platform.ops.js +231 -0
  642. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  643. package/dist/platform/ops/plugins.ops.js +476 -0
  644. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  645. package/dist/platform/ops/previewers.ops.js +109 -0
  646. package/dist/platform/ops/requests.ops.d.ts +14 -0
  647. package/dist/platform/ops/requests.ops.js +191 -0
  648. package/dist/platform/ops/role.d.ts +4 -0
  649. package/dist/platform/ops/role.js +10 -0
  650. package/dist/platform/ops/setup.ops.d.ts +24 -0
  651. package/dist/platform/ops/setup.ops.js +212 -0
  652. package/dist/platform/ops/skills.ops.d.ts +17 -0
  653. package/dist/platform/ops/skills.ops.js +160 -0
  654. package/dist/platform/ops/summary.d.ts +10 -0
  655. package/dist/platform/ops/summary.js +18 -0
  656. package/dist/platform/ops/themes.ops.d.ts +14 -0
  657. package/dist/platform/ops/themes.ops.js +47 -0
  658. package/dist/platform/ops/ui.ops.d.ts +8 -0
  659. package/dist/platform/ops/ui.ops.js +41 -0
  660. package/dist/platform/ops/unavailable.d.ts +23 -0
  661. package/dist/platform/ops/unavailable.js +118 -0
  662. package/dist/platform/parity.d.ts +33 -0
  663. package/dist/platform/parity.js +272 -0
  664. package/dist/platform/platform-ops.module.d.ts +43 -0
  665. package/dist/platform/platform-ops.module.js +142 -0
  666. package/dist/platform/platform.module.d.ts +8 -0
  667. package/dist/platform/platform.module.js +25 -0
  668. package/dist/platform/registry.d.ts +30 -0
  669. package/dist/platform/registry.js +111 -0
  670. package/dist/platform/route-schemas.d.ts +18 -0
  671. package/dist/platform/route-schemas.js +85 -0
  672. package/dist/roles/gateway-role.d.ts +18 -3
  673. package/dist/roles/gateway-role.js +33 -5
  674. package/dist/roles/gateway.module.d.ts +2 -1
  675. package/dist/roles/gateway.module.js +6 -3
  676. package/dist/roles/worker-role.d.ts +6 -4
  677. package/dist/roles/worker-role.js +14 -7
  678. package/dist/roles/worker.module.d.ts +1 -1
  679. package/dist/roles/worker.module.js +21 -1
  680. package/dist/runtime/context/build.d.ts +21 -13
  681. package/dist/runtime/context/build.js +106 -29
  682. package/dist/runtime/context/claude-tools.d.ts +4 -1
  683. package/dist/runtime/context/claude-tools.js +13 -12
  684. package/dist/runtime/context/compaction.js +24 -1
  685. package/dist/runtime/context/device-paths.d.ts +40 -0
  686. package/dist/runtime/context/device-paths.js +48 -0
  687. package/dist/runtime/context/legacy-text.d.ts +22 -0
  688. package/dist/runtime/context/legacy-text.js +37 -0
  689. package/dist/runtime/context/reminders.d.ts +2 -0
  690. package/dist/runtime/context/reminders.js +2 -0
  691. package/dist/runtime/context/run-context.d.ts +65 -0
  692. package/dist/runtime/context/run-context.js +215 -0
  693. package/dist/runtime/context/skills.d.ts +29 -11
  694. package/dist/runtime/context/skills.js +46 -32
  695. package/dist/runtime/context/tool-changes.d.ts +27 -0
  696. package/dist/runtime/context/tool-changes.js +60 -0
  697. package/dist/runtime/hook-calls.d.ts +8 -1
  698. package/dist/runtime/hook-calls.js +40 -7
  699. package/dist/runtime/langgraph-loop.d.ts +3 -1
  700. package/dist/runtime/langgraph-loop.js +36 -17
  701. package/dist/runtime/loop.d.ts +35 -6
  702. package/dist/runtime/maintenance.d.ts +9 -4
  703. package/dist/runtime/maintenance.js +35 -8
  704. package/dist/runtime/model-call.d.ts +54 -11
  705. package/dist/runtime/model-call.js +105 -28
  706. package/dist/runtime/providers.d.ts +149 -29
  707. package/dist/runtime/providers.js +332 -63
  708. package/dist/runtime/run-context.service.d.ts +65 -0
  709. package/dist/runtime/run-context.service.js +236 -0
  710. package/dist/runtime/run-control.d.ts +11 -1
  711. package/dist/runtime/run-control.js +12 -0
  712. package/dist/runtime/run-drafts.d.ts +85 -0
  713. package/dist/runtime/run-drafts.js +230 -0
  714. package/dist/runtime/run-finish.d.ts +1 -1
  715. package/dist/runtime/run-jobs.d.ts +3 -5
  716. package/dist/runtime/run-jobs.js +7 -9
  717. package/dist/runtime/run-queue.d.ts +62 -5
  718. package/dist/runtime/run-queue.js +313 -40
  719. package/dist/runtime/run-worker.d.ts +19 -8
  720. package/dist/runtime/run-worker.js +105 -44
  721. package/dist/runtime/runtime.module.js +13 -3
  722. package/dist/runtime/step-log.d.ts +15 -4
  723. package/dist/runtime/step-log.js +24 -7
  724. package/dist/runtime/stream.controller.d.ts +23 -1
  725. package/dist/runtime/stream.controller.js +60 -3
  726. package/dist/runtime/stream.d.ts +4 -1
  727. package/dist/runtime/stream.js +27 -3
  728. package/dist/runtime/subagents/child.d.ts +55 -7
  729. package/dist/runtime/subagents/child.js +105 -7
  730. package/dist/runtime/subagents/definition.d.ts +31 -26
  731. package/dist/runtime/subagents/definition.js +89 -142
  732. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  733. package/dist/runtime/subagents/deliveries.js +228 -0
  734. package/dist/runtime/subagents/dispatch.d.ts +116 -27
  735. package/dist/runtime/subagents/dispatch.js +213 -142
  736. package/dist/runtime/subagents/limits.d.ts +24 -5
  737. package/dist/runtime/subagents/limits.js +40 -6
  738. package/dist/runtime/subagents/messages.d.ts +95 -0
  739. package/dist/runtime/subagents/messages.js +328 -0
  740. package/dist/runtime/subagents/org-agents.js +2 -1
  741. package/dist/runtime/subagents/preamble.d.ts +4 -4
  742. package/dist/runtime/subagents/preamble.js +9 -7
  743. package/dist/runtime/subagents/progress.d.ts +8 -6
  744. package/dist/runtime/subagents/progress.js +11 -6
  745. package/dist/runtime/subagents/render.d.ts +30 -0
  746. package/dist/runtime/subagents/render.js +53 -0
  747. package/dist/runtime/subagents/roster.d.ts +25 -8
  748. package/dist/runtime/subagents/roster.js +48 -12
  749. package/dist/runtime/subagents/skill-fork.d.ts +4 -3
  750. package/dist/runtime/subagents/skill-fork.js +9 -5
  751. package/dist/runtime/subagents/status.d.ts +14 -0
  752. package/dist/runtime/subagents/status.js +23 -0
  753. package/dist/runtime/subagents/subagents.service.d.ts +9 -6
  754. package/dist/runtime/subagents/subagents.service.js +13 -8
  755. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  756. package/dist/runtime/usage-report-jobs.js +158 -0
  757. package/dist/runtime/usage-report.d.ts +35 -39
  758. package/dist/runtime/usage-report.js +171 -97
  759. package/dist/runtime/waits.d.ts +148 -39
  760. package/dist/runtime/waits.js +426 -112
  761. package/dist/sandbox/jobs.d.ts +40 -13
  762. package/dist/sandbox/jobs.js +57 -20
  763. package/dist/sandbox/leases.d.ts +37 -54
  764. package/dist/sandbox/leases.js +71 -115
  765. package/dist/sandbox/providers.d.ts +34 -7
  766. package/dist/sandbox/providers.js +54 -9
  767. package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
  768. package/dist/sandbox/sandbox-file-reader.js +98 -0
  769. package/dist/sandbox/sandbox.module.d.ts +3 -2
  770. package/dist/sandbox/sandbox.module.js +10 -4
  771. package/dist/sandbox/sandbox.service.d.ts +345 -132
  772. package/dist/sandbox/sandbox.service.js +883 -399
  773. package/dist/sandbox/unreachable.d.ts +30 -0
  774. package/dist/sandbox/unreachable.js +108 -0
  775. package/dist/setup/kernel-checks.d.ts +91 -0
  776. package/dist/setup/kernel-checks.js +295 -0
  777. package/dist/setup/oauth-token-probe.d.ts +47 -0
  778. package/dist/setup/oauth-token-probe.js +108 -0
  779. package/dist/setup/redact-check.d.ts +18 -0
  780. package/dist/setup/redact-check.js +46 -0
  781. package/dist/setup/setup-check-registry.d.ts +86 -0
  782. package/dist/setup/setup-check-registry.js +75 -0
  783. package/dist/setup/setup-checks.controller.d.ts +28 -0
  784. package/dist/setup/setup-checks.controller.js +78 -0
  785. package/dist/setup/setup-checks.schemas.d.ts +38 -0
  786. package/dist/setup/setup-checks.schemas.js +43 -0
  787. package/dist/setup/setup-checks.service.d.ts +144 -0
  788. package/dist/setup/setup-checks.service.js +683 -0
  789. package/dist/setup/setup-guides.controller.d.ts +18 -0
  790. package/dist/setup/setup-guides.controller.js +48 -0
  791. package/dist/setup/setup-guides.schemas.d.ts +10 -0
  792. package/dist/setup/setup-guides.schemas.js +6 -0
  793. package/dist/setup/setup-guides.service.d.ts +126 -0
  794. package/dist/setup/setup-guides.service.js +315 -0
  795. package/dist/setup/setup.module.d.ts +8 -0
  796. package/dist/setup/setup.module.js +31 -0
  797. package/dist/skills/agent-skills.controller.d.ts +48 -0
  798. package/dist/skills/agent-skills.controller.js +131 -0
  799. package/dist/skills/agent-skills.service.d.ts +262 -0
  800. package/dist/skills/agent-skills.service.js +996 -0
  801. package/dist/skills/catalog.d.ts +14 -11
  802. package/dist/skills/catalog.js +32 -50
  803. package/dist/skills/changes.controller.d.ts +12 -22
  804. package/dist/skills/changes.controller.js +27 -56
  805. package/dist/skills/changes.service.d.ts +69 -115
  806. package/dist/skills/changes.service.js +249 -598
  807. package/dist/skills/conversation-catalog.d.ts +53 -0
  808. package/dist/skills/conversation-catalog.js +149 -0
  809. package/dist/skills/invocable.controller.d.ts +1 -1
  810. package/dist/skills/invocable.controller.js +2 -2
  811. package/dist/skills/invocation-keys.d.ts +1 -1
  812. package/dist/skills/invocation-keys.js +1 -1
  813. package/dist/skills/invoke.d.ts +3 -3
  814. package/dist/skills/invoke.js +21 -8
  815. package/dist/skills/package.d.ts +15 -1
  816. package/dist/skills/package.js +14 -1
  817. package/dist/skills/skills.controller.d.ts +32 -6
  818. package/dist/skills/skills.controller.js +64 -11
  819. package/dist/skills/skills.module.js +25 -3
  820. package/dist/skills/skills.schemas.d.ts +44 -0
  821. package/dist/skills/skills.schemas.js +68 -0
  822. package/dist/skills/skills.service.d.ts +123 -26
  823. package/dist/skills/skills.service.js +493 -76
  824. package/dist/skills/usable.d.ts +82 -0
  825. package/dist/skills/usable.js +388 -0
  826. package/dist/themes/render-css.d.ts +13 -0
  827. package/dist/themes/render-css.js +135 -0
  828. package/dist/themes/theme-delivery.service.d.ts +36 -0
  829. package/dist/themes/theme-delivery.service.js +116 -0
  830. package/dist/themes/theme-state.d.ts +116 -0
  831. package/dist/themes/theme-state.js +221 -0
  832. package/dist/themes/theme-usage.d.ts +61 -0
  833. package/dist/themes/theme-usage.js +98 -0
  834. package/dist/themes/themes-public.controller.d.ts +33 -0
  835. package/dist/themes/themes-public.controller.js +98 -0
  836. package/dist/themes/themes.controller.d.ts +13 -0
  837. package/dist/themes/themes.controller.js +38 -0
  838. package/dist/themes/themes.module.d.ts +3 -0
  839. package/dist/themes/themes.module.js +21 -0
  840. package/dist/themes/themes.schemas.d.ts +3 -0
  841. package/dist/themes/themes.schemas.js +2 -0
  842. package/dist/themes/themes.service.d.ts +50 -0
  843. package/dist/themes/themes.service.js +99 -0
  844. package/dist/time-zone.d.ts +5 -0
  845. package/dist/time-zone.js +19 -0
  846. package/dist/tools/admin-connectors.d.ts +69 -0
  847. package/dist/tools/admin-connectors.js +135 -0
  848. package/dist/tools/approvals.controller.js +2 -3
  849. package/dist/tools/approvals.schemas.d.ts +21 -0
  850. package/dist/tools/approvals.schemas.js +15 -0
  851. package/dist/tools/approvals.service.d.ts +26 -2
  852. package/dist/tools/approvals.service.js +44 -5
  853. package/dist/tools/builtin-names.d.ts +104 -0
  854. package/dist/tools/builtin-names.js +164 -0
  855. package/dist/tools/builtins/agent.d.ts +27 -25
  856. package/dist/tools/builtins/agent.js +66 -63
  857. package/dist/tools/builtins/ask-user.d.ts +1 -1
  858. package/dist/tools/builtins/ask-user.js +5 -4
  859. package/dist/tools/builtins/builtin-tools.d.ts +23 -4
  860. package/dist/tools/builtins/builtin-tools.js +78 -12
  861. package/dist/tools/builtins/current-time.d.ts +26 -0
  862. package/dist/tools/builtins/current-time.js +99 -0
  863. package/dist/tools/builtins/handback.d.ts +28 -0
  864. package/dist/tools/builtins/handback.js +53 -0
  865. package/dist/tools/builtins/platform.d.ts +51 -0
  866. package/dist/tools/builtins/platform.js +451 -0
  867. package/dist/tools/builtins/read-tool-output.d.ts +1 -1
  868. package/dist/tools/builtins/read-tool-output.js +2 -2
  869. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  870. package/dist/tools/builtins/sandbox/bash.js +291 -39
  871. package/dist/tools/builtins/sandbox/common.d.ts +135 -36
  872. package/dist/tools/builtins/sandbox/common.js +222 -62
  873. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  874. package/dist/tools/builtins/sandbox/deliver.js +19 -16
  875. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  876. package/dist/tools/builtins/sandbox/edit.js +64 -50
  877. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  878. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  879. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  880. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  881. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  882. package/dist/tools/builtins/sandbox/glob.js +17 -12
  883. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  884. package/dist/tools/builtins/sandbox/grep.js +153 -34
  885. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  886. package/dist/tools/builtins/sandbox/index.js +13 -5
  887. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  888. package/dist/tools/builtins/sandbox/read.js +29 -19
  889. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  890. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  891. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  892. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  893. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  894. package/dist/tools/builtins/sandbox/write.js +51 -44
  895. package/dist/tools/builtins/send-message.d.ts +56 -0
  896. package/dist/tools/builtins/send-message.js +100 -0
  897. package/dist/tools/builtins/skill-load.d.ts +29 -18
  898. package/dist/tools/builtins/skill-load.js +125 -73
  899. package/dist/tools/builtins/tool-search.d.ts +13 -9
  900. package/dist/tools/builtins/tool-search.js +25 -14
  901. package/dist/tools/builtins/web/errors.d.ts +8 -0
  902. package/dist/tools/builtins/web/errors.js +53 -0
  903. package/dist/tools/builtins/web/extract.d.ts +62 -0
  904. package/dist/tools/builtins/web/extract.js +271 -0
  905. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  906. package/dist/tools/builtins/web/fetch.js +175 -0
  907. package/dist/tools/builtins/web/index.d.ts +13 -0
  908. package/dist/tools/builtins/web/index.js +12 -0
  909. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  910. package/dist/tools/builtins/web/page-cache.js +77 -0
  911. package/dist/tools/builtins/web/search.d.ts +25 -0
  912. package/dist/tools/builtins/web/search.js +210 -0
  913. package/dist/tools/builtins/web/url.d.ts +17 -0
  914. package/dist/tools/builtins/web/url.js +43 -0
  915. package/dist/tools/connector-account-policies.d.ts +51 -0
  916. package/dist/tools/connector-account-policies.js +165 -0
  917. package/dist/tools/connectors.controller.d.ts +74 -9
  918. package/dist/tools/connectors.controller.js +133 -16
  919. package/dist/tools/connectors.schemas.d.ts +27 -0
  920. package/dist/tools/connectors.schemas.js +34 -0
  921. package/dist/tools/connectors.service.d.ts +101 -8
  922. package/dist/tools/connectors.service.js +266 -28
  923. package/dist/tools/credentials.d.ts +23 -0
  924. package/dist/tools/credentials.js +90 -1
  925. package/dist/tools/display-names.d.ts +9 -0
  926. package/dist/tools/display-names.js +24 -0
  927. package/dist/tools/drift.js +5 -5
  928. package/dist/tools/elicitation.js +1 -1
  929. package/dist/tools/extension-tools.controller.d.ts +14 -0
  930. package/dist/tools/extension-tools.controller.js +37 -0
  931. package/dist/tools/info.d.ts +61 -4
  932. package/dist/tools/info.js +119 -33
  933. package/dist/tools/legacy-data.d.ts +34 -0
  934. package/dist/tools/legacy-data.js +76 -0
  935. package/dist/tools/legacy-keys.d.ts +51 -0
  936. package/dist/tools/legacy-keys.js +114 -0
  937. package/dist/tools/naming.d.ts +1 -5
  938. package/dist/tools/naming.js +1 -7
  939. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  940. package/dist/tools/oauth/flow-paths.js +1 -1
  941. package/dist/tools/oauth/flow.js +1 -1
  942. package/dist/tools/oauth/tokens.d.ts +54 -7
  943. package/dist/tools/oauth/tokens.js +87 -17
  944. package/dist/tools/org-tool-switches.d.ts +89 -0
  945. package/dist/tools/org-tool-switches.js +201 -0
  946. package/dist/tools/outputs.js +1 -1
  947. package/dist/tools/pipeline.d.ts +67 -47
  948. package/dist/tools/pipeline.js +319 -380
  949. package/dist/tools/policy.d.ts +30 -23
  950. package/dist/tools/policy.js +142 -64
  951. package/dist/tools/questions.controller.d.ts +1 -1
  952. package/dist/tools/questions.controller.js +1 -1
  953. package/dist/tools/questions.service.d.ts +23 -2
  954. package/dist/tools/questions.service.js +104 -2
  955. package/dist/tools/registry.d.ts +189 -68
  956. package/dist/tools/registry.js +318 -236
  957. package/dist/tools/resources.d.ts +1 -1
  958. package/dist/tools/resources.js +1 -1
  959. package/dist/tools/tools.module.js +31 -3
  960. package/dist/tools/validate.js +1 -1
  961. package/dist/ui/admin-ui.controller.d.ts +56 -0
  962. package/dist/ui/admin-ui.controller.js +192 -0
  963. package/dist/ui/arrangement.d.ts +65 -0
  964. package/dist/ui/arrangement.js +171 -0
  965. package/dist/ui/embed-token.d.ts +2 -2
  966. package/dist/ui/embed-token.js +30 -5
  967. package/dist/ui/registry.d.ts +42 -17
  968. package/dist/ui/registry.js +46 -14
  969. package/dist/ui/slots.controller.d.ts +11 -0
  970. package/dist/ui/slots.controller.js +25 -0
  971. package/dist/ui/ui-stream.d.ts +20 -3
  972. package/dist/ui/ui-stream.js +25 -7
  973. package/dist/ui/ui.schemas.d.ts +70 -0
  974. package/dist/ui/ui.schemas.js +65 -0
  975. package/dist/ui/views.controller.d.ts +35 -49
  976. package/dist/ui/views.controller.js +48 -70
  977. package/dist/ui/views.d.ts +112 -18
  978. package/dist/ui/views.js +254 -47
  979. package/package.json +6 -3
  980. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  981. package/src/migrations/0064_account_last_org.sql +7 -0
  982. package/src/migrations/0065_conversation_archive.sql +8 -0
  983. package/src/migrations/0066_extension_display_name.sql +4 -0
  984. package/src/migrations/0067_agent_profiles.sql +20 -0
  985. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  986. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  987. package/src/migrations/0070_background_tasks.sql +37 -0
  988. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  989. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  990. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  991. package/src/migrations/0074_subagent_tree.sql +50 -0
  992. package/src/migrations/0075_plugin_scope.sql +61 -0
  993. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  994. package/src/migrations/0077_scope_requests.sql +52 -0
  995. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  996. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  997. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  998. package/src/migrations/0081_platform_components.sql +129 -0
  999. package/src/migrations/0082_platform_migration.sql +33 -0
  1000. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1001. package/src/migrations/0084_org_owned_items.sql +85 -0
  1002. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1003. package/src/migrations/0086_org_layering.sql +30 -0
  1004. package/src/migrations/0087_approval_summary.sql +6 -0
  1005. package/src/migrations/0088_environments.sql +80 -0
  1006. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1007. package/src/migrations/0090_initial_passwords.sql +27 -0
  1008. package/src/migrations/0091_account_time_zone.sql +4 -0
  1009. package/src/migrations/0092_tools_default_on.sql +27 -0
  1010. package/src/migrations/0093_connected_environments.sql +37 -0
  1011. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1012. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1013. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1014. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1015. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1016. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1017. package/src/migrations/0100_catalog_files.sql +13 -0
  1018. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1019. package/src/migrations/0102_themes.sql +64 -0
  1020. package/src/migrations/0103_ui_theme_setting.sql +7 -0
  1021. package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
  1022. package/src/migrations/0105_devices_rename.sql +136 -0
  1023. package/src/migrations/0106_setup_guides_v2.sql +10 -0
  1024. package/src/migrations/0107_extension_client_builds.sql +50 -0
  1025. package/src/migrations/0108_question_skipped.sql +6 -0
  1026. package/src/migrations/0109_audit_platform_idx.sql +5 -0
  1027. package/src/migrations/0110_usage_time_idx.sql +8 -0
  1028. package/src/migrations/0111_agent_skill_sharing.sql +22 -0
  1029. package/src/migrations/0112_skill_share_requests.sql +4 -0
  1030. package/dist/catalog/upgrade-targets.d.ts +0 -56
  1031. package/dist/catalog/upgrade-targets.js +0 -90
  1032. package/dist/conversations/sandbox-status.d.ts +0 -24
  1033. package/dist/conversations/sandbox-status.js +0 -52
  1034. package/dist/extensions/org-config.controller.d.ts +0 -24
  1035. package/dist/extensions/org-config.controller.js +0 -62
  1036. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1037. package/dist/tools/builtins/sandbox/names.js +0 -20
  1038. package/dist/tools/builtins/skill-write.d.ts +0 -59
  1039. package/dist/tools/builtins/skill-write.js +0 -244
@@ -8,7 +8,10 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
10
  import { createHash } from "node:crypto";
11
+ import { connectorToolKey, extensionToolKey } from "@capybara-hq/plugin-sdk";
11
12
  import { Inject, Injectable } from "@nestjs/common";
13
+ import { builtinDisabled, connectorToolDisabled, extensionToolDisabled, } from "../agents/definition.js";
14
+ import { EffectiveConfigs, NEEDS_CONFIG_REASON } from "../extensions/effective-config.js";
12
15
  import { ExtensionHost } from "../extensions/host.js";
13
16
  import { ExtensionRegistry } from "../extensions/registry.js";
14
17
  import { KernelConfigService } from "../infra/config/kernel-config.service.js";
@@ -17,27 +20,15 @@ import { readOrgSettings } from "../orgs/settings.service.js";
17
20
  import { estimateTokens } from "../runtime/context/tokens.js";
18
21
  import { SUBAGENT_LIMIT_DEFAULTS, subagentLimits } from "../runtime/subagents/limits.js";
19
22
  import { resolveRoster } from "../runtime/subagents/roster.js";
20
- import { AGENT_TOOL, agentToolSpec } from "./builtins/agent.js";
23
+ import { AGENT_BUILTIN_NAMES, AGENT_TOOL, BASH_COMPANION_TOOLS, BUILTIN, SEND_MESSAGE, SKILL_LOAD, SUBAGENT_HANDBACK, TOOL_SEARCH, } from "./builtin-names.js";
24
+ import { agentToolSpec } from "./builtins/agent.js";
21
25
  import { BuiltinTools } from "./builtins/builtin-tools.js";
22
- import { SANDBOX_TOOL_NAMES } from "./builtins/sandbox/names.js";
23
26
  import { canonicalJson } from "./canonical-json.js";
24
- import { toolKey, toolKeyIssue } from "./naming.js";
27
+ import { legacyKeySaveText } from "./legacy-keys.js";
28
+ import { toolKeyIssue } from "./naming.js";
29
+ import { OrgToolSwitches, toolTurnedOffReason } from "./org-tool-switches.js";
30
+ export { BUILTIN_TOOL_NAMES } from "./builtin-names.js";
25
31
  export { canonicalJson } from "./canonical-json.js";
26
- /**
27
- * 内核内置工具的名字(Task 10 / Task 19 实现;M5 T8 加沙箱工具)。保存 agent 时内置工具引用按这份清单校验,
28
- * 不依赖当前是否已注册,避免实现落地顺序影响已保存的定义;运行时未注册的照常报不可用。
29
- * `skill_write`(M5 T15)由 agent 定义显式引用才可用(负责人决定 agent 能否改自己的技能)。
30
- */
31
- export const BUILTIN_TOOL_NAMES = [
32
- "ask_user",
33
- "read_tool_output",
34
- "tool_search",
35
- "skill_load",
36
- "skill_write",
37
- ...SANDBOX_TOOL_NAMES,
38
- // phase C: dispatches sub-agents; its description is built per agent from the roster
39
- "agent",
40
- ];
41
32
  /** The first 16 hex digits of sha256(canonicalJson(v)): a fingerprint independent of key order. */
42
33
  export function contentHash(v) {
43
34
  return createHash("sha256").update(canonicalJson(v)).digest("hex").slice(0, 16);
@@ -68,10 +59,8 @@ export function specHash(spec) {
68
59
  export function policyFromAnnotations(a) {
69
60
  return a?.readOnlyHint === true ? "allow" : "ask";
70
61
  }
71
- /** 内置 `tool_search` 的名字(由注册表按组织设置与阈值自动加入,不进 agent 定义)。 */
72
- const TOOL_SEARCH = "tool_search";
73
- /** 内置 `skill_load` 的名字(对话日志里有技能目录快照时由注册表自动加入,不进 agent 定义)。 */
74
- const SKILL_LOAD = "skill_load";
62
+ // `ToolSearch` is added by the registry by org setting and threshold, `Skill` when the log has a
63
+ // skills catalog snapshot; neither comes from agent definitions (`./builtin-names.ts`).
75
64
  /** 工具定义(模型可见三项)的估算 token 数(与请求估算同一口径)。 */
76
65
  function estimateToolTokens(tools) {
77
66
  return estimateTokens([], [], tools.map((t) => ({
@@ -85,28 +74,41 @@ const sourceId = (s) => s.kind === "builtin"
85
74
  : s.kind === "plugin"
86
75
  ? `plugin:${s.plugin}:${s.name}`
87
76
  : `connector:${s.connectorId}:${s.name}`;
77
+ /** A builtin as a resolved tool (with `spec`, which `Agent` builds per definition). */
78
+ const builtinTool = (b, spec) => ({
79
+ key: b.spec.name,
80
+ source: { kind: "builtin", name: b.spec.name },
81
+ spec,
82
+ specHash: specHash(spec),
83
+ defaultPolicy: b.defaultPolicy,
84
+ ...(b.timeoutMs !== undefined && { timeoutMs: b.timeoutMs }),
85
+ ...(b.spillChars !== undefined && { spillChars: b.spillChars }),
86
+ ...(b.callPolicy !== undefined && { callPolicy: b.callPolicy }),
87
+ });
88
88
  /**
89
- * Tool registry: resolves the references in an agent definition into the tools available for this
90
- * run. Not cached (reads PG and the host live every time), so changes take effect right away across
91
- * replicas.
89
+ * Tool registry: resolves what an agent has for this run (tools default-on spec §4): everything
90
+ * the org offers minus the definition's `disabledTools`. Not cached (reads PG and the host live
91
+ * every time), so changes take effect right away across replicas.
92
92
  *
93
- * Availability:
94
- * - builtin: in `builtins`;
95
- * - extension tools: the extension is loaded and registered the tool, and this org enabled the
96
- * extension (`extension_org_configs.enabled`, spec 2.2 "installed at deployment level, enabled at
97
- * org level"; required bootstrap plugins are enabled in every org, `enabled.ts`);
98
- * - connector tools: the connector belongs to this org, is not deleted or disabled, the connector is
99
- * installed, the tool status is `enabled` and the key is valid.
100
- * `tools: "all"` takes only enabled tools; disabled / pending-review ones count as deliberately
101
- * turned off by an admin and are not reported; named tools report their reason one by one.
102
- * Only the first of a key is kept; the same source referenced twice is deduplicated silently,
103
- * different sources with the same key report a duplicate.
93
+ * What is offered:
94
+ * - builtins: every {@link AGENT_BUILTIN_NAMES} entry registered here that can run (`unavailable`
95
+ * says why not), `TaskOutput` / `TaskStop` with `Bash`, `Agent` while its roster is not empty;
96
+ * - extension tools: every tool registered by an extension loaded on this replica and enabled in
97
+ * the org (`extension_org_configs.enabled`; required bootstrap plugins are enabled in every org,
98
+ * `enabled.ts`), whose effective config for the org is valid (layering spec A §6) and that the
99
+ * org did not switch off (§7: the org's switch wins);
100
+ * - connector tools: every enabled tool of every live, active connector of the org whose
101
+ * connector extension is installed, with a valid key.
102
+ * What cannot be offered goes to `hidden` with the reason; nothing is reported to the model as
103
+ * unavailable except two sources with one key (the first wins).
104
104
  */
105
105
  let ToolRegistry = class ToolRegistry {
106
106
  db;
107
107
  host;
108
108
  extensions;
109
109
  builtinTools;
110
+ effective;
111
+ switches;
110
112
  config;
111
113
  constructor(db,
112
114
  /** Extension tools and the organization's enabled extensions. */
@@ -114,7 +116,14 @@ let ToolRegistry = class ToolRegistry {
114
116
  /** The installed connectors (`connector@1`, from the extension registry). */
115
117
  extensions, builtinTools,
116
118
  /**
117
- * `tools.searchThreshold*` and the sub-agent limits. Absent (some tests): `tool_search` is never
119
+ * The extensions' effective config per org (layering spec A §6): an extension tool is
120
+ * unavailable in an org whose effective config is not valid.
121
+ */
122
+ effective,
123
+ /** The org's switches of single extension tools (layering spec A §7). */
124
+ switches,
125
+ /**
126
+ * `tools.searchThreshold*` and the sub-agent limits. Absent (some tests): `ToolSearch` is never
118
127
  * offered and the sub-agent limits are the schema defaults.
119
128
  */
120
129
  config) {
@@ -122,9 +131,11 @@ let ToolRegistry = class ToolRegistry {
122
131
  this.host = host;
123
132
  this.extensions = extensions;
124
133
  this.builtinTools = builtinTools;
134
+ this.effective = effective;
135
+ this.switches = switches;
125
136
  this.config = config;
126
137
  }
127
- /** The kernel's builtin tools (`tool_search` is added by {@link forAgent}, not by definitions). */
138
+ /** The kernel's builtin tools (`ToolSearch` is added by {@link forAgent}, not by definitions). */
128
139
  get builtins() {
129
140
  return this.builtinTools.list();
130
141
  }
@@ -178,81 +189,128 @@ let ToolRegistry = class ToolRegistry {
178
189
  return [...new Set(this.extensions.list("connector").map((e) => e.impl.kind))];
179
190
  }
180
191
  /**
181
- * 保存 agent 时校验工具引用(只看「存在」,停用 / 待复核 / 插件未启用等运行时状态不拒绝,由 `forAgent` 报不可用):
182
- * - 内置:名字在 {@link BUILTIN_TOOL_NAMES} 中;
183
- * - 插件:插件已加载且注册了该工具,key 合法;
184
- * - 连接器:连接器属于本组织且未删除;点名的工具必须在连接器的工具快照中。
185
- * 不同来源拼出同一个 key 也报出来(不截断、不猜)。
186
- * 返回 `keys`:这些引用可能产生的全部工具 key(`"all"` 含连接器当前所有工具,不论状态),供校验 `toolPolicies`。
192
+ * The connector kinds `orgId` can create connectors of: the `connector@1` implementations loaded
193
+ * on this replica whose extension is enabled in the org (the first implementation of a kind, as
194
+ * {@link findConnector} picks it), sorted by kind.
195
+ */
196
+ async connectorKindsFor(orgId) {
197
+ const enabled = await this.enabledPlugins(orgId);
198
+ const out = new Map();
199
+ for (const e of this.extensions.list("connector")) {
200
+ const kind = e.impl?.kind;
201
+ if (typeof kind !== "string" || out.has(kind))
202
+ continue;
203
+ out.set(kind, e.plugin);
204
+ }
205
+ return [...out]
206
+ .filter(([, plugin]) => enabled.has(plugin))
207
+ .map(([kind, plugin]) => ({ kind, plugin }))
208
+ .sort((a, b) => a.kind.localeCompare(b.kind));
209
+ }
210
+ /** True when `kind` is one of {@link connectorKindsFor}: loaded here and enabled in the org. */
211
+ async connectorKindAvailable(orgId, kind) {
212
+ return (await this.connectorKindsFor(orgId)).some((k) => k.kind === kind);
213
+ }
214
+ /**
215
+ * Checks a definition's `disabledTools` on save (existence only): a builtin an agent can turn off
216
+ * ({@link AGENT_BUILTIN_NAMES}), an extension loaded here and the tools it registered, a live
217
+ * connector of the org and tools of its snapshot. An entry equal to one of `kept` (the current
218
+ * version's) is not re-checked: a connector deleted or an extension uninstalled later never
219
+ * blocks other edits. Returns `keys`: every tool key the agent could have, on or turned off (all
220
+ * its builtins, every loaded extension's tools, every tool of the org's live connectors in any
221
+ * status), the keys `toolPolicies` may use.
187
222
  */
188
- async checkRefs(orgId, refs) {
223
+ async checkDisabled(orgId, disabled, kept = []) {
189
224
  const issues = [];
190
- const owner = new Map();
225
+ const keys = new Set();
226
+ for (const name of AGENT_BUILTIN_NAMES)
227
+ keys.add(name);
228
+ for (const name of BASH_COMPANION_TOOLS)
229
+ keys.add(name);
191
230
  const pluginTools = this.host.tools();
192
- const connectorIds = [
193
- ...new Set(refs.flatMap((r) => (r.kind === "connector" ? [r.connectorId] : []))),
194
- ];
195
- const apps = await this.loadConnectors(orgId, connectorIds);
196
- const claim = (path, key, source) => {
197
- const prev = owner.get(key);
198
- if (prev === undefined)
199
- owner.set(key, source);
200
- else if (prev !== source) {
201
- issues.push({ path, message: `Tool key "${key}" is already used by another tool` });
202
- }
203
- };
204
- refs.forEach((ref, i) => {
205
- const path = `tools.${i}`;
231
+ for (const t of pluginTools)
232
+ keys.add(extensionToolKey(t.plugin, t.spec.name));
233
+ const apps = await this.loadOrgConnectors(orgId, { includeDeleted: false });
234
+ for (const app of apps)
235
+ for (const t of app.tools)
236
+ keys.add(connectorToolKey(app.slug, t.name));
237
+ const builtins = new Set(AGENT_BUILTIN_NAMES);
238
+ const keptJson = new Set(kept.map((r) => canonicalJson(r)));
239
+ disabled.forEach((ref, i) => {
240
+ const path = `disabledTools.${i}`;
241
+ if (keptJson.has(canonicalJson(ref)))
242
+ return;
206
243
  if (ref.kind === "builtin") {
207
- if (!BUILTIN_TOOL_NAMES.includes(ref.name)) {
208
- issues.push({ path, message: `Built-in tool "${ref.name}" does not exist` });
209
- return;
244
+ if (!builtins.has(ref.name)) {
245
+ const renamed = legacyKeySaveText(ref.name);
246
+ issues.push({
247
+ path,
248
+ message: renamed !== null
249
+ ? `Built-in tool ${renamed}`
250
+ : `"${ref.name}" is not a built-in tool an agent can turn off`,
251
+ });
210
252
  }
211
- claim(path, ref.name, `builtin:${ref.name}`);
212
253
  }
213
254
  else if (ref.kind === "plugin") {
214
- const key = toolKey(ref.plugin, ref.name);
215
- if (!pluginTools.some((x) => x.plugin === ref.plugin && x.spec.name === ref.name)) {
216
- issues.push({ path, message: `Plugin tool "${key}" does not exist` });
255
+ const own = pluginTools.filter((x) => x.plugin === ref.plugin);
256
+ if (own.length === 0) {
257
+ issues.push({ path, message: `Extension "${ref.plugin}" has no tools` });
217
258
  return;
218
259
  }
219
- const issue = toolKeyIssue(key);
220
- if (issue) {
221
- issues.push({ path, message: issue });
260
+ if (ref.tools === "all")
222
261
  return;
262
+ for (const name of ref.tools) {
263
+ if (!own.some((x) => x.spec.name === name)) {
264
+ issues.push({
265
+ path,
266
+ message: `Extension tool "${extensionToolKey(ref.plugin, name)}" does not exist`,
267
+ });
268
+ }
223
269
  }
224
- claim(path, key, `plugin:${ref.plugin}:${ref.name}`);
225
270
  }
226
271
  else {
227
- const app = apps.get(ref.connectorId);
228
- if (!app || app.deleted) {
272
+ const app = apps.find((a) => a.id === ref.connectorId);
273
+ if (!app) {
229
274
  issues.push({ path, message: `Connector "${ref.connectorId}" does not exist` });
230
275
  return;
231
276
  }
232
- const names = ref.tools === "all" ? app.tools.map((t) => t.name) : [...new Set(ref.tools)];
233
- for (const name of names) {
277
+ if (ref.tools === "all")
278
+ return;
279
+ for (const name of ref.tools) {
234
280
  if (!app.tools.some((t) => t.name === name)) {
235
281
  issues.push({
236
282
  path,
237
283
  message: `Tool "${name}" does not exist in connector ${app.slug}`,
238
284
  });
239
- continue;
240
285
  }
241
- claim(path, toolKey(app.slug, name), `connector:${app.id}:${name}`);
242
286
  }
243
287
  }
244
288
  });
245
- return { keys: new Set(owner.keys()), issues };
289
+ return { keys, issues };
246
290
  }
247
291
  /**
248
- * 解析 agent 引用的工具(见类注释),再判定是否启用 `tool_search`:组织设置 `toolSearch === "on"`,且
249
- * 可用工具数 > `tools.searchThresholdTools` 或其定义的估算 token > `tools.searchThresholdTokens`。
250
- * 启用时把内置 `tool_search` 追加到末尾。定义里显式引用的 `tool_search` 忽略(由这里按设置管理)。
251
- * `skillLoad`:对话日志里有技能目录快照(`skills_catalog`,Ruling M17)→ 加入内置 `skill_load`(始终完整加载);
252
- * 定义里显式引用的 `skill_load` 同样忽略。
292
+ * Resolves what the agent has (see the class comment), then decides on `ToolSearch`: the org
293
+ * setting `toolSearch === "on"` and more than `tools.searchThresholdTools` tools or more than
294
+ * `tools.searchThresholdTokens` estimated definition tokens; when on, the builtin `ToolSearch` is
295
+ * appended. `skillLoad`: the log has a skills catalog snapshot (`skills_catalog`, Ruling M17) →
296
+ * the builtin `Skill` is added (always fully loaded).
253
297
  */
254
298
  async forAgent(orgId, def) {
255
- const { tools, unavailable, hidden } = await this.resolve(orgId, def);
299
+ const resolved = await this.resolve(orgId, def);
300
+ const { unavailable, hidden } = resolved;
301
+ const tools = filterSubagentTools(resolved.tools, def.subagentTools);
302
+ // `SendMessage` to an agent that has `Agent` (to reach its sub-agents) or a parent;
303
+ // `SubagentHandback` to a sub-agent only; a fork invocation's child reports by its reply
304
+ const toParent = def.child === true && def.forkChild !== true;
305
+ const messageTools = [
306
+ ...(toParent || tools.some((t) => t.key === AGENT_TOOL) ? [SEND_MESSAGE] : []),
307
+ ...(toParent ? [SUBAGENT_HANDBACK] : []),
308
+ ];
309
+ for (const name of messageTools) {
310
+ const b = this.builtins.find((x) => x.spec.name === name);
311
+ if (b)
312
+ tools.push(builtinTool(b, b.spec));
313
+ }
256
314
  const sl = def.skillLoad === true && this.builtins.find((x) => x.spec.name === SKILL_LOAD);
257
315
  if (sl) {
258
316
  tools.push({
@@ -277,7 +335,7 @@ let ToolRegistry = class ToolRegistry {
277
335
  }
278
336
  return { tools, unavailable, hidden, toolSearch };
279
337
  }
280
- /** 是否启用 `tool_search`(见 {@link forAgent});先比阈值,超过才读组织设置。 */
338
+ /** 是否启用 `ToolSearch`(见 {@link forAgent});先比阈值,超过才读组织设置。 */
281
339
  async searchActive(orgId, tools) {
282
340
  const cfg = this.config?.get().tools;
283
341
  if (!cfg || !this.builtins.some((b) => b.spec.name === TOOL_SEARCH))
@@ -289,6 +347,15 @@ let ToolRegistry = class ToolRegistry {
289
347
  return (await readOrgSettings(this.db.db, orgId)).toolSearch === "on";
290
348
  }
291
349
  async resolve(orgId, def) {
350
+ const disabled = def.disabledTools ?? [];
351
+ const scope = {
352
+ orgId,
353
+ ...(def.sandboxConversationId !== undefined && {
354
+ conversationId: def.sandboxConversationId,
355
+ }),
356
+ ...(def.replay === true && { replay: true }),
357
+ memo: new Map(),
358
+ };
292
359
  const tools = [];
293
360
  const unavailable = [];
294
361
  const hidden = [];
@@ -307,140 +374,141 @@ let ToolRegistry = class ToolRegistry {
307
374
  });
308
375
  }
309
376
  };
310
- const enabledPlugins = def.tools.some((r) => r.kind === "plugin")
311
- ? await this.enabledPlugins(orgId)
312
- : new Set();
313
- const connectorIds = [
314
- ...new Set(def.tools.flatMap((r) => (r.kind === "connector" ? [r.connectorId] : []))),
315
- ];
316
- const apps = await this.loadConnectors(orgId, connectorIds);
317
- const pluginTools = this.host.tools();
318
- for (const ref of def.tools) {
319
- if (ref.kind === "builtin") {
320
- if (ref.name === TOOL_SEARCH || ref.name === SKILL_LOAD)
321
- continue;
322
- const b = this.builtins.find((x) => x.spec.name === ref.name);
323
- if (!b) {
324
- unavailable.push({ ref: ref.name, reason: "Built-in tool does not exist" });
325
- continue;
326
- }
327
- const why = b.unavailable?.() ?? null;
328
- if (why !== null) {
329
- unavailable.push({ ref: ref.name, reason: why });
377
+ // builtins
378
+ for (const name of AGENT_BUILTIN_NAMES) {
379
+ if (builtinDisabled(disabled, name))
380
+ continue;
381
+ const b = this.builtins.find((x) => x.spec.name === name);
382
+ if (!b)
383
+ continue;
384
+ const why = (await b.unavailable?.(scope)) ?? null;
385
+ if (why !== null) {
386
+ hidden.push({ ref: name, reason: why });
387
+ continue;
388
+ }
389
+ // `Agent`: the description lists this definition's roster (sub-agents spec §4.3); with an
390
+ // empty roster there is nothing to dispatch, so the tool is not offered at all
391
+ let spec = b.spec;
392
+ if (name === AGENT_TOOL) {
393
+ const roster = await resolveRoster(this.db.db, orgId, { subagents: def.subagents });
394
+ if (roster.length === 0)
330
395
  continue;
396
+ spec = agentToolSpec(roster, await this.maxConcurrentSubagents(orgId));
397
+ }
398
+ add(builtinTool(b, spec));
399
+ // `TaskOutput` and `TaskStop` come with an available `Bash` (background Bash spec §2)
400
+ if (name === BUILTIN.Bash) {
401
+ for (const companion of BASH_COMPANION_TOOLS) {
402
+ const c = this.builtins.find((x) => x.spec.name === companion);
403
+ if (c && ((await c.unavailable?.(scope)) ?? null) === null) {
404
+ add(builtinTool(c, c.spec));
405
+ }
331
406
  }
332
- // `agent`: the description lists this definition's roster (sub-agents spec §4.3); with an
333
- // empty roster there is nothing to dispatch, so the tool is not offered at all
334
- let spec = b.spec;
335
- if (b.spec.name === AGENT_TOOL) {
336
- const roster = await resolveRoster(this.db.db, orgId, { subagents: def.subagents });
337
- if (roster.length === 0)
338
- continue;
339
- spec = agentToolSpec(roster, await this.maxConcurrentSubagents(orgId));
340
- }
341
- add({
342
- key: b.spec.name,
343
- source: { kind: "builtin", name: b.spec.name },
344
- spec,
345
- specHash: specHash(spec),
346
- defaultPolicy: b.defaultPolicy,
347
- ...(b.timeoutMs !== undefined && { timeoutMs: b.timeoutMs }),
348
- ...(b.spillChars !== undefined && { spillChars: b.spillChars }),
349
- });
350
407
  }
351
- else if (ref.kind === "plugin") {
352
- const key = toolKey(ref.plugin, ref.name);
353
- const t = pluginTools.find((x) => x.plugin === ref.plugin && x.spec.name === ref.name);
354
- if (!t) {
355
- unavailable.push({ ref: key, reason: "Plugin tool does not exist" });
408
+ }
409
+ // extension tools: the extensions enabled in the org
410
+ const pluginTools = this.host.tools();
411
+ if (pluginTools.length > 0) {
412
+ const [enabledPlugins, offKeys] = await Promise.all([
413
+ this.enabledPlugins(orgId),
414
+ this.switches.offKeys(orgId),
415
+ ]);
416
+ // one effective config read per extension and resolution, however many tools it has
417
+ const configured = new Map();
418
+ const configuredIn = (plugin) => {
419
+ let ok = configured.get(plugin);
420
+ if (!ok) {
421
+ ok = this.effective.get(orgId, plugin).then((e) => e.ok);
422
+ configured.set(plugin, ok);
423
+ }
424
+ return ok;
425
+ };
426
+ for (const t of pluginTools) {
427
+ if (!enabledPlugins.has(t.plugin))
428
+ continue;
429
+ if (extensionToolDisabled(disabled, t.plugin, t.spec.name))
430
+ continue;
431
+ const key = extensionToolKey(t.plugin, t.spec.name);
432
+ // the pipeline refuses such calls too (a resumed step), this keeps them from the model
433
+ if (offKeys.has(key)) {
434
+ hidden.push({ ref: key, reason: toolTurnedOffReason(key) });
356
435
  continue;
357
436
  }
358
- if (!enabledPlugins.has(ref.plugin)) {
359
- unavailable.push({
360
- ref: key,
361
- reason: `Plugin ${ref.plugin} is not enabled in this organization`,
362
- });
437
+ if (!(await configuredIn(t.plugin))) {
438
+ hidden.push({ ref: key, reason: `Plugin ${t.plugin} ${NEEDS_CONFIG_REASON}` });
363
439
  continue;
364
440
  }
365
441
  const issue = toolKeyIssue(key);
366
442
  if (issue) {
367
- unavailable.push({ ref: key, reason: issue });
443
+ hidden.push({ ref: key, reason: issue });
368
444
  continue;
369
445
  }
370
446
  add({
371
447
  key,
372
- source: { kind: "plugin", plugin: ref.plugin, name: ref.name },
448
+ source: { kind: "plugin", plugin: t.plugin, name: t.spec.name },
373
449
  spec: t.spec,
374
450
  specHash: specHash(t.spec),
375
451
  defaultPolicy: t.spec.defaultPolicy ?? policyFromAnnotations(t.spec.annotations),
376
452
  });
377
453
  }
378
- else {
379
- const app = apps.get(ref.connectorId);
380
- if (!app) {
381
- unavailable.push({ ref: `app:${ref.connectorId}`, reason: "App does not exist" });
454
+ }
455
+ // connector tools: the org's live connectors
456
+ for (const app of await this.loadOrgConnectors(orgId, { includeDeleted: false })) {
457
+ if (disabled.some((r) => r.kind === "connector" && r.connectorId === app.id && r.tools === "all")) {
458
+ continue;
459
+ }
460
+ const all = connectorToolKey(app.slug, "*");
461
+ if (app.status !== "active") {
462
+ hidden.push({ ref: all, reason: `App ${app.slug} is disabled` });
463
+ continue;
464
+ }
465
+ if (!this.findConnector(app.connector)) {
466
+ hidden.push({
467
+ ref: all,
468
+ reason: `Connector ${app.connector} for app ${app.slug} is not installed`,
469
+ });
470
+ continue;
471
+ }
472
+ for (const t of app.tools) {
473
+ if (connectorToolDisabled(disabled, app.id, t.name))
382
474
  continue;
383
- }
384
- const all = toolKey(app.slug, "*");
385
- if (app.deleted) {
386
- unavailable.push({ ref: all, reason: `App ${app.slug} was deleted` });
475
+ const key = connectorToolKey(app.slug, t.name);
476
+ // 远端已不再提供(漂移检测置停用并标记,见 drift.ts)
477
+ if (t.gone) {
478
+ hidden.push({ ref: key, reason: `Tool no longer exists in app ${app.slug}` });
387
479
  continue;
388
480
  }
389
- if (app.status !== "active") {
390
- unavailable.push({ ref: all, reason: `App ${app.slug} is disabled` });
481
+ if (t.status === "disabled") {
482
+ hidden.push({ ref: key, reason: "Tool is disabled" });
391
483
  continue;
392
484
  }
393
- if (!this.findConnector(app.connector)) {
394
- unavailable.push({
395
- ref: all,
396
- reason: `Connector ${app.connector} for app ${app.slug} is not installed`,
397
- });
485
+ if (t.status === "pending_review") {
486
+ hidden.push({ ref: key, reason: "Tool is pending review" });
398
487
  continue;
399
488
  }
400
- const wanted = ref.tools === "all"
401
- ? app.tools
402
- : ref.tools.map((name) => app.tools.find((t) => t.name === name) ?? { name, missing: true });
403
- // 「all」里未启用的工具不算 agent 点名要的,不进 unavailable(不提醒),只记进 hidden 备查
404
- const notEnabled = ref.tools === "all" ? hidden : unavailable;
405
- for (const t of wanted) {
406
- const key = toolKey(app.slug, t.name);
407
- // 远端已不再提供(漂移检测置停用并标记,见 drift.ts):与「没有这一行」同一个事实
408
- if ("missing" in t || t.gone) {
409
- notEnabled.push({ ref: key, reason: `Tool no longer exists in app ${app.slug}` });
410
- continue;
411
- }
412
- if (t.status === "disabled") {
413
- notEnabled.push({ ref: key, reason: "Tool is disabled" });
414
- continue;
415
- }
416
- if (t.status === "pending_review") {
417
- notEnabled.push({ ref: key, reason: "Tool is pending review" });
418
- continue;
419
- }
420
- const issue = toolKeyIssue(key);
421
- if (issue) {
422
- unavailable.push({ ref: key, reason: issue });
423
- continue;
424
- }
425
- add({
426
- key,
427
- source: {
428
- kind: "connector",
429
- connectorId: app.id,
430
- name: t.name,
431
- ...(t.source === "resources" && { resources: true }),
432
- },
433
- spec: t.spec,
434
- specHash: t.specHash,
435
- defaultPolicy: t.defaultPolicy,
436
- });
489
+ const issue = toolKeyIssue(key);
490
+ if (issue) {
491
+ hidden.push({ ref: key, reason: issue });
492
+ continue;
437
493
  }
494
+ add({
495
+ key,
496
+ source: {
497
+ kind: "connector",
498
+ connectorId: app.id,
499
+ name: t.name,
500
+ ...(t.source === "resources" && { resources: true }),
501
+ },
502
+ spec: t.spec,
503
+ specHash: t.specHash,
504
+ defaultPolicy: t.defaultPolicy,
505
+ });
438
506
  }
439
507
  }
440
508
  return { tools, unavailable, hidden };
441
509
  }
442
510
  /**
443
- * `subagents.maxConcurrentPerRun` with the organization's override, for the `agent` tool's
511
+ * `subagents.maxConcurrentPerConversation` with the organization's override, for the `Agent` tool's
444
512
  * description (§4.3). A change of the limit changes the tool's spec hash; replays read the
445
513
  * definition logged by hash, so no drift reason is involved. Without config (some tests): the
446
514
  * schema default.
@@ -448,62 +516,60 @@ let ToolRegistry = class ToolRegistry {
448
516
  async maxConcurrentSubagents(orgId) {
449
517
  const cfg = this.config;
450
518
  const config = cfg ?? { get: () => ({ subagents: SUBAGENT_LIMIT_DEFAULTS }) };
451
- return (await subagentLimits(this.db.db, config, orgId)).maxConcurrentPerRun;
519
+ return (await subagentLimits(this.db.db, config, orgId)).maxConcurrentPerConversation;
520
+ }
521
+ /** The extensions enabled in the org (`extensions/enabled.ts`, through the host). */
522
+ async enabledExtensions(orgId) {
523
+ return this.host.enabledPlugins(orgId);
452
524
  }
453
525
  /** Plugins the organization enabled (built-in plugins always count as enabled, C14). */
454
526
  async enabledPlugins(orgId) {
455
527
  return this.host.enabledPlugins(orgId);
456
528
  }
457
- async loadConnectors(orgId, ids) {
458
- const out = new Map();
459
- if (ids.length === 0)
460
- return out;
461
- // 软删除的连接器也读出来,只为给出「已删除」这个更准确的原因(slug 可能已被新连接器复用,按 id 区分)
529
+ /** The org's connectors (live ones, sorted by slug) with their tool snapshots (by name). */
530
+ async loadOrgConnectors(orgId, _opts) {
462
531
  const apps = await this.db
463
532
  .selectFrom("connectors")
464
- .select(["id", "slug", "connector", "status", "deleted_at"])
533
+ .select(["id", "slug", "connector", "status"])
465
534
  .where("org_id", "=", orgId)
466
- .where("id", "in", ids)
535
+ .where("deleted_at", "is", null)
536
+ .orderBy("slug")
537
+ .orderBy("id")
467
538
  .execute();
468
- const live = apps.filter((a) => a.deleted_at === null).map((a) => a.id);
469
- const toolRows = live.length === 0
470
- ? []
471
- : await this.db
472
- .selectFrom("connector_tools")
473
- .select([
474
- "connector_id",
475
- "name",
476
- "spec",
477
- "spec_hash",
478
- "status",
479
- "default_policy",
480
- "source",
481
- "missing_since",
482
- ])
483
- .where("connector_id", "in", live)
484
- .orderBy("name")
485
- .execute();
486
- for (const a of apps) {
487
- out.set(a.id, {
488
- id: a.id,
489
- slug: a.slug,
490
- connector: a.connector,
491
- status: a.status,
492
- deleted: a.deleted_at !== null,
493
- tools: toolRows
494
- .filter((t) => t.connector_id === a.id)
495
- .map((t) => ({
496
- name: t.name,
497
- spec: t.spec,
498
- specHash: t.spec_hash,
499
- status: t.status,
500
- defaultPolicy: t.default_policy,
501
- source: t.source,
502
- gone: t.missing_since !== null,
503
- })),
504
- });
505
- }
506
- return out;
539
+ if (apps.length === 0)
540
+ return [];
541
+ const toolRows = await this.db
542
+ .selectFrom("connector_tools")
543
+ .select([
544
+ "connector_id",
545
+ "name",
546
+ "spec",
547
+ "spec_hash",
548
+ "status",
549
+ "default_policy",
550
+ "source",
551
+ "missing_since",
552
+ ])
553
+ .where("connector_id", "in", apps.map((a) => a.id))
554
+ .orderBy("name")
555
+ .execute();
556
+ return apps.map((a) => ({
557
+ id: a.id,
558
+ slug: a.slug,
559
+ connector: a.connector,
560
+ status: a.status,
561
+ tools: toolRows
562
+ .filter((t) => t.connector_id === a.id)
563
+ .map((t) => ({
564
+ name: t.name,
565
+ spec: t.spec,
566
+ specHash: t.spec_hash,
567
+ status: t.status,
568
+ defaultPolicy: t.default_policy,
569
+ source: t.source,
570
+ gone: t.missing_since !== null,
571
+ })),
572
+ }));
507
573
  }
508
574
  };
509
575
  ToolRegistry = __decorate([
@@ -512,6 +578,22 @@ ToolRegistry = __decorate([
512
578
  __param(1, Inject(ExtensionHost)),
513
579
  __param(2, Inject(ExtensionRegistry)),
514
580
  __param(3, Inject(BuiltinTools)),
515
- __param(4, Inject(KernelConfigService))
581
+ __param(4, Inject(EffectiveConfigs)),
582
+ __param(5, Inject(OrgToolSwitches)),
583
+ __param(6, Inject(KernelConfigService))
516
584
  ], ToolRegistry);
517
585
  export { ToolRegistry };
586
+ /**
587
+ * `tools` narrowed by a sub-agent's key filter (tools default-on spec §4): `deny` keys removed,
588
+ * and with `allow` only its keys kept. `TaskOutput` / `TaskStop` follow `Bash`, as they come with
589
+ * it. Without a filter the list is returned as it is.
590
+ */
591
+ export function filterSubagentTools(tools, filter) {
592
+ if (filter === undefined)
593
+ return tools;
594
+ const companions = new Set(BASH_COMPANION_TOOLS);
595
+ const deny = new Set(filter.deny ?? []);
596
+ const allow = filter.allow === undefined ? null : new Set(filter.allow);
597
+ const keep = (key) => !deny.has(key) && (allow === null || allow.has(key));
598
+ return tools.filter((t) => (companions.has(t.key) ? keep(BUILTIN.Bash) : keep(t.key)));
599
+ }