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

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 (604) hide show
  1. package/bootstrap.json +61 -5
  2. package/dist/admin/admin.controller.d.ts +47 -16
  3. package/dist/admin/admin.controller.js +44 -19
  4. package/dist/admin/extensions.controller.d.ts +24 -3
  5. package/dist/admin/extensions.controller.js +48 -8
  6. package/dist/admin/setup-lock.d.ts +1 -1
  7. package/dist/admin/setup-lock.js +1 -1
  8. package/dist/admin/setup.controller.d.ts +1 -1
  9. package/dist/admin/setup.controller.js +1 -1
  10. package/dist/admin/setup.service.d.ts +4 -4
  11. package/dist/admin/setup.service.js +8 -8
  12. package/dist/agents/agent-lookup.d.ts +19 -0
  13. package/dist/agents/agent-lookup.js +21 -0
  14. package/dist/agents/agent-profile.service.d.ts +29 -0
  15. package/dist/agents/agent-profile.service.js +117 -0
  16. package/dist/agents/agents.controller.d.ts +168 -3
  17. package/dist/agents/agents.controller.js +201 -12
  18. package/dist/agents/agents.module.d.ts +4 -1
  19. package/dist/agents/agents.module.js +36 -6
  20. package/dist/agents/agents.service.d.ts +64 -27
  21. package/dist/agents/agents.service.js +199 -74
  22. package/dist/agents/definition.d.ts +53 -0
  23. package/dist/agents/definition.js +55 -0
  24. package/dist/agents/from-template.d.ts +106 -0
  25. package/dist/agents/from-template.js +649 -0
  26. package/dist/agents/from-template.service.d.ts +60 -0
  27. package/dist/agents/from-template.service.js +161 -0
  28. package/dist/agents/instruction-files.d.ts +60 -0
  29. package/dist/agents/instruction-files.js +111 -0
  30. package/dist/agents/models.controller.d.ts +9 -3
  31. package/dist/agents/models.controller.js +19 -4
  32. package/dist/agents/org-templates.d.ts +176 -0
  33. package/dist/agents/org-templates.js +827 -0
  34. package/dist/agents/pending-connector-requests.d.ts +77 -0
  35. package/dist/agents/pending-connector-requests.js +215 -0
  36. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  37. package/dist/agents/pending-connectors.controller.js +91 -0
  38. package/dist/agents/pending-connectors.service.d.ts +62 -0
  39. package/dist/agents/pending-connectors.service.js +282 -0
  40. package/dist/agents/profile.d.ts +96 -0
  41. package/dist/agents/profile.js +51 -0
  42. package/dist/agents/readiness.controller.d.ts +26 -0
  43. package/dist/agents/readiness.controller.js +56 -0
  44. package/dist/agents/templates.controller.d.ts +86 -5
  45. package/dist/agents/templates.controller.js +171 -7
  46. package/dist/agents/templates.d.ts +127 -23
  47. package/dist/agents/templates.js +476 -53
  48. package/dist/background/background.controller.d.ts +38 -0
  49. package/dist/background/background.controller.js +87 -0
  50. package/dist/background/background.module.d.ts +10 -0
  51. package/dist/background/background.module.js +39 -0
  52. package/dist/background/finish.d.ts +44 -0
  53. package/dist/background/finish.js +94 -0
  54. package/dist/background/launch-lock.d.ts +15 -0
  55. package/dist/background/launch-lock.js +40 -0
  56. package/dist/background/launch.d.ts +36 -0
  57. package/dist/background/launch.js +70 -0
  58. package/dist/background/poll.job.d.ts +56 -0
  59. package/dist/background/poll.job.js +190 -0
  60. package/dist/background/render.d.ts +23 -0
  61. package/dist/background/render.js +48 -0
  62. package/dist/background/session.d.ts +48 -0
  63. package/dist/background/session.js +79 -0
  64. package/dist/background/status.d.ts +35 -0
  65. package/dist/background/status.js +57 -0
  66. package/dist/background/stop.d.ts +68 -0
  67. package/dist/background/stop.js +243 -0
  68. package/dist/background/store.d.ts +162 -0
  69. package/dist/background/store.js +357 -0
  70. package/dist/background/store.module.d.ts +6 -0
  71. package/dist/background/store.module.js +22 -0
  72. package/dist/background/tasks.service.d.ts +77 -0
  73. package/dist/background/tasks.service.js +211 -0
  74. package/dist/background/wake-rules.d.ts +66 -0
  75. package/dist/background/wake-rules.js +113 -0
  76. package/dist/background/wake.d.ts +30 -0
  77. package/dist/background/wake.js +63 -0
  78. package/dist/catalog/admin-catalog.controller.d.ts +129 -30
  79. package/dist/catalog/admin-catalog.controller.js +213 -42
  80. package/dist/catalog/catalog-content.d.ts +58 -32
  81. package/dist/catalog/catalog-content.js +34 -8
  82. package/dist/catalog/catalog-import.module.d.ts +7 -0
  83. package/dist/catalog/catalog-import.module.js +60 -0
  84. package/dist/catalog/catalog-items.d.ts +111 -7
  85. package/dist/catalog/catalog-items.js +279 -13
  86. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  87. package/dist/catalog/catalog-scope.service.js +1116 -0
  88. package/dist/catalog/catalog.module.d.ts +7 -9
  89. package/dist/catalog/catalog.module.js +41 -31
  90. package/dist/catalog/catalog.service.d.ts +101 -29
  91. package/dist/catalog/catalog.service.js +104 -106
  92. package/dist/catalog/claude/agents.js +2 -0
  93. package/dist/catalog/cli.d.ts +11 -1
  94. package/dist/catalog/cli.js +26 -1
  95. package/dist/catalog/component-promotion.d.ts +96 -0
  96. package/dist/catalog/component-promotion.js +395 -0
  97. package/dist/catalog/component-scope.controller.d.ts +152 -0
  98. package/dist/catalog/component-scope.controller.js +287 -0
  99. package/dist/catalog/component-scope.service.d.ts +303 -0
  100. package/dist/catalog/component-scope.service.js +936 -0
  101. package/dist/catalog/component-state.d.ts +174 -0
  102. package/dist/catalog/component-state.js +437 -0
  103. package/dist/catalog/job-ids.d.ts +30 -0
  104. package/dist/catalog/job-ids.js +25 -0
  105. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  106. package/dist/catalog/marketplaces.controller.d.ts +22 -5
  107. package/dist/catalog/marketplaces.controller.js +56 -7
  108. package/dist/catalog/marketplaces.service.d.ts +54 -14
  109. package/dist/catalog/marketplaces.service.js +71 -22
  110. package/dist/catalog/org-catalog.controller.d.ts +125 -34
  111. package/dist/catalog/org-catalog.controller.js +181 -65
  112. package/dist/catalog/org-catalog.service.d.ts +65 -33
  113. package/dist/catalog/org-catalog.service.js +324 -157
  114. package/dist/catalog/org-extension-switch.d.ts +41 -0
  115. package/dist/catalog/org-extension-switch.js +115 -0
  116. package/dist/catalog/org-extension.controller.d.ts +119 -0
  117. package/dist/catalog/org-extension.controller.js +266 -0
  118. package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
  119. package/dist/catalog/org-plugin-uploads.controller.js +213 -0
  120. package/dist/catalog/org-plugin-uploads.d.ts +63 -0
  121. package/dist/catalog/org-plugin-uploads.js +116 -0
  122. package/dist/catalog/owned-items.d.ts +184 -0
  123. package/dist/catalog/owned-items.js +789 -0
  124. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  125. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  126. package/dist/catalog/ownership.d.ts +172 -0
  127. package/dist/catalog/ownership.js +326 -0
  128. package/dist/catalog/platform-components.d.ts +221 -0
  129. package/dist/catalog/platform-components.js +761 -0
  130. package/dist/catalog/platform-migration.d.ts +115 -0
  131. package/dist/catalog/platform-migration.js +582 -0
  132. package/dist/catalog/plugin-import.d.ts +178 -34
  133. package/dist/catalog/plugin-import.js +623 -83
  134. package/dist/catalog/plugin-install.d.ts +185 -41
  135. package/dist/catalog/plugin-install.js +758 -126
  136. package/dist/catalog/plugin-upgrade.d.ts +260 -225
  137. package/dist/catalog/plugin-upgrade.js +1148 -1137
  138. package/dist/catalog/request-rules.d.ts +65 -0
  139. package/dist/catalog/request-rules.js +217 -0
  140. package/dist/catalog/requests.service.d.ts +193 -118
  141. package/dist/catalog/requests.service.js +526 -343
  142. package/dist/catalog/reserved-names.d.ts +8 -0
  143. package/dist/catalog/reserved-names.js +42 -0
  144. package/dist/catalog/scope-orgs.d.ts +21 -0
  145. package/dist/catalog/scope-orgs.js +67 -0
  146. package/dist/catalog/scope-state.d.ts +35 -0
  147. package/dist/catalog/scope-state.js +87 -0
  148. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  149. package/dist/catalog/scope-sync-workers.js +29 -0
  150. package/dist/catalog/scope-sync.d.ts +176 -0
  151. package/dist/catalog/scope-sync.js +576 -0
  152. package/dist/catalog/scope.d.ts +42 -0
  153. package/dist/catalog/scope.js +42 -0
  154. package/dist/catalog/unshare.d.ts +22 -0
  155. package/dist/catalog/unshare.js +118 -0
  156. package/dist/channels/actions.js +1 -0
  157. package/dist/channels/cards.js +21 -3
  158. package/dist/channels/channels.module.js +2 -0
  159. package/dist/channels/connections.service.d.ts +16 -1
  160. package/dist/channels/connections.service.js +38 -4
  161. package/dist/channels/inbound.d.ts +9 -1
  162. package/dist/channels/inbound.js +67 -5
  163. package/dist/channels/phrases.d.ts +35 -0
  164. package/dist/channels/phrases.js +29 -0
  165. package/dist/channels/threads.d.ts +5 -0
  166. package/dist/channels/threads.js +8 -0
  167. package/dist/config/docs.js +3 -1
  168. package/dist/config/schema.d.ts +24 -2
  169. package/dist/config/schema.js +145 -19
  170. package/dist/conversations/access.d.ts +6 -4
  171. package/dist/conversations/access.js +29 -5
  172. package/dist/conversations/agent-tree.d.ts +46 -0
  173. package/dist/conversations/agent-tree.js +92 -0
  174. package/dist/conversations/attachments.service.d.ts +30 -0
  175. package/dist/conversations/attachments.service.js +130 -5
  176. package/dist/conversations/conversations.controller.d.ts +79 -23
  177. package/dist/conversations/conversations.controller.js +141 -50
  178. package/dist/conversations/conversations.module.d.ts +1 -1
  179. package/dist/conversations/conversations.module.js +10 -7
  180. package/dist/conversations/conversations.service.d.ts +108 -9
  181. package/dist/conversations/conversations.service.js +237 -30
  182. package/dist/conversations/environment-status.d.ts +24 -0
  183. package/dist/conversations/environment-status.js +71 -0
  184. package/dist/conversations/event-log.d.ts +21 -6
  185. package/dist/conversations/event-log.js +70 -1
  186. package/dist/conversations/events.d.ts +140 -0
  187. package/dist/conversations/events.js +142 -13
  188. package/dist/conversations/queue.d.ts +3 -1
  189. package/dist/conversations/queue.js +13 -2
  190. package/dist/conversations/queue.service.d.ts +1 -1
  191. package/dist/conversations/queue.service.js +8 -1
  192. package/dist/conversations/titles.d.ts +12 -3
  193. package/dist/conversations/titles.js +36 -8
  194. package/dist/conversations/tree.d.ts +17 -0
  195. package/dist/conversations/tree.js +42 -0
  196. package/dist/ctx/create-ctx.d.ts +5 -0
  197. package/dist/ctx/create-ctx.js +15 -5
  198. package/dist/db/kernel-schema.d.ts +420 -20
  199. package/dist/db/pool.d.ts +5 -0
  200. package/dist/db/pool.js +3 -0
  201. package/dist/environments/access.d.ts +41 -0
  202. package/dist/environments/access.js +77 -0
  203. package/dist/environments/conversation-environments.d.ts +61 -0
  204. package/dist/environments/conversation-environments.js +170 -0
  205. package/dist/environments/dto.d.ts +25 -0
  206. package/dist/environments/dto.js +12 -0
  207. package/dist/environments/environments.controller.d.ts +33 -0
  208. package/dist/environments/environments.controller.js +110 -0
  209. package/dist/environments/environments.module.d.ts +8 -0
  210. package/dist/environments/environments.module.js +27 -0
  211. package/dist/environments/environments.service.d.ts +153 -0
  212. package/dist/environments/environments.service.js +541 -0
  213. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  214. package/dist/environments/legacy-cleanup.job.js +141 -0
  215. package/dist/errors.d.ts +90 -2
  216. package/dist/errors.js +90 -2
  217. package/dist/evals/reconstruct.d.ts +18 -9
  218. package/dist/evals/reconstruct.js +26 -7
  219. package/dist/evals/run-replay.d.ts +7 -2
  220. package/dist/evals/run-replay.js +42 -7
  221. package/dist/evals/step-replay.d.ts +2 -5
  222. package/dist/evals/step-replay.js +13 -7
  223. package/dist/evals/trajectory.js +1 -1
  224. package/dist/evals/trajectory.service.d.ts +8 -3
  225. package/dist/evals/trajectory.service.js +26 -14
  226. package/dist/evals/worker.d.ts +5 -5
  227. package/dist/evals/worker.js +9 -3
  228. package/dist/extensions/admin-ops.d.ts +36 -10
  229. package/dist/extensions/admin-ops.js +67 -42
  230. package/dist/extensions/admin-view.d.ts +39 -10
  231. package/dist/extensions/admin-view.js +111 -20
  232. package/dist/extensions/blobs.js +1 -0
  233. package/dist/extensions/bootstrap.d.ts +17 -4
  234. package/dist/extensions/bootstrap.js +70 -9
  235. package/dist/extensions/cli.d.ts +12 -0
  236. package/dist/extensions/cli.js +11 -2
  237. package/dist/extensions/config-issues.d.ts +13 -1
  238. package/dist/extensions/config-issues.js +22 -5
  239. package/dist/extensions/config-json-schema.d.ts +43 -7
  240. package/dist/extensions/config-json-schema.js +124 -58
  241. package/dist/extensions/deployment-config-store.d.ts +6 -0
  242. package/dist/extensions/deployment-config.d.ts +78 -8
  243. package/dist/extensions/deployment-config.js +172 -34
  244. package/dist/extensions/display-name.d.ts +22 -0
  245. package/dist/extensions/display-name.js +77 -0
  246. package/dist/extensions/effective-config.d.ts +127 -0
  247. package/dist/extensions/effective-config.js +368 -0
  248. package/dist/extensions/extensions.module.js +14 -2
  249. package/dist/extensions/hooks.d.ts +37 -4
  250. package/dist/extensions/hooks.js +82 -16
  251. package/dist/extensions/host.d.ts +45 -2
  252. package/dist/extensions/host.js +112 -16
  253. package/dist/extensions/installs.d.ts +20 -8
  254. package/dist/extensions/installs.js +37 -15
  255. package/dist/extensions/org-config.d.ts +81 -6
  256. package/dist/extensions/org-config.js +195 -44
  257. package/dist/extensions/org-levels.d.ts +37 -0
  258. package/dist/extensions/org-levels.js +71 -0
  259. package/dist/extensions/org-overrides.d.ts +151 -0
  260. package/dist/extensions/org-overrides.js +524 -0
  261. package/dist/extensions/package.d.ts +14 -1
  262. package/dist/extensions/package.js +51 -2
  263. package/dist/extensions/permission-view.d.ts +19 -4
  264. package/dist/extensions/permission-view.js +4 -4
  265. package/dist/extensions/plugin-items.d.ts +21 -0
  266. package/dist/extensions/plugin-items.js +42 -0
  267. package/dist/extensions/point-defaults.controller.d.ts +34 -0
  268. package/dist/extensions/point-defaults.controller.js +71 -0
  269. package/dist/extensions/point-defaults.d.ts +71 -0
  270. package/dist/extensions/point-defaults.js +234 -0
  271. package/dist/extensions/registry.d.ts +1 -1
  272. package/dist/extensions/registry.js +2 -0
  273. package/dist/extensions/resolve.d.ts +5 -1
  274. package/dist/extensions/resolve.js +15 -2
  275. package/dist/files/previewers.d.ts +8 -1
  276. package/dist/files/previewers.js +35 -6
  277. package/dist/http/api.module.js +31 -3
  278. package/dist/http/app.d.ts +11 -2
  279. package/dist/http/app.js +31 -5
  280. package/dist/http/nest-logger.d.ts +6 -5
  281. package/dist/http/nest-logger.js +24 -10
  282. package/dist/identity/accounts.d.ts +29 -29
  283. package/dist/identity/accounts.js +47 -47
  284. package/dist/identity/audit.d.ts +2 -1
  285. package/dist/identity/auth.controller.js +9 -5
  286. package/dist/identity/auth.guard.d.ts +13 -5
  287. package/dist/identity/auth.guard.js +26 -9
  288. package/dist/identity/cookies.d.ts +20 -5
  289. package/dist/identity/cookies.js +44 -6
  290. package/dist/identity/identity.module.d.ts +1 -1
  291. package/dist/identity/identity.module.js +4 -4
  292. package/dist/identity/me.controller.d.ts +5 -1
  293. package/dist/identity/me.controller.js +12 -3
  294. package/dist/identity/principal.d.ts +3 -3
  295. package/dist/identity/principal.js +3 -3
  296. package/dist/identity/sessions.d.ts +12 -0
  297. package/dist/identity/sessions.js +45 -0
  298. package/dist/identity/settings.d.ts +22 -11
  299. package/dist/identity/settings.js +53 -18
  300. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  301. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  302. package/dist/inbox/inbox.module.d.ts +4 -1
  303. package/dist/inbox/inbox.module.js +7 -3
  304. package/dist/inbox/inbox.service.d.ts +62 -3
  305. package/dist/inbox/inbox.service.js +74 -4
  306. package/dist/inbox/org-notices.d.ts +63 -0
  307. package/dist/inbox/org-notices.js +91 -0
  308. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  309. package/dist/inbox/platform-inbox.controller.js +58 -0
  310. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  311. package/dist/inbox/platform-inbox.service.js +263 -0
  312. package/dist/inbox/platform-notices.d.ts +19 -0
  313. package/dist/inbox/platform-notices.js +9 -0
  314. package/dist/index.d.ts +2 -2
  315. package/dist/index.js +1 -1
  316. package/dist/infra/cli/kernel-cli.module.js +9 -1
  317. package/dist/infra/config/kernel-config.service.js +27 -1
  318. package/dist/infra/database/database.module.js +1 -0
  319. package/dist/infra/database/xact-lock.d.ts +1 -1
  320. package/dist/infra/database/xact-lock.js +1 -1
  321. package/dist/infra/events/kernel-events.d.ts +19 -2
  322. package/dist/infra/lifecycle/process-guards.js +4 -0
  323. package/dist/infra/logging/logging.module.d.ts +4 -2
  324. package/dist/infra/logging/logging.module.js +24 -6
  325. package/dist/infra/queue/add-job-once.d.ts +14 -0
  326. package/dist/infra/queue/add-job-once.js +16 -0
  327. package/dist/infra/queue/redis-connection.d.ts +6 -0
  328. package/dist/infra/queue/redis-connection.js +7 -0
  329. package/dist/infra/redis/redis.module.js +6 -2
  330. package/dist/infra/tokens.d.ts +6 -1
  331. package/dist/infra/tokens.js +6 -1
  332. package/dist/kernel.module.js +6 -0
  333. package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
  334. package/dist/lifecycle/kernel-lifecycle.js +4 -4
  335. package/dist/log.d.ts +13 -1
  336. package/dist/log.js +93 -17
  337. package/dist/models/prices.d.ts +5 -5
  338. package/dist/models/prices.js +4 -4
  339. package/dist/models/purposes.controller.d.ts +6 -4
  340. package/dist/models/purposes.controller.js +13 -7
  341. package/dist/models/purposes.d.ts +43 -9
  342. package/dist/models/purposes.js +48 -18
  343. package/dist/orgs/directory-sync.d.ts +14 -5
  344. package/dist/orgs/directory-sync.js +41 -17
  345. package/dist/orgs/offboarding.d.ts +12 -8
  346. package/dist/orgs/offboarding.js +54 -33
  347. package/dist/orgs/org-lock.d.ts +5 -0
  348. package/dist/orgs/org-lock.js +13 -0
  349. package/dist/orgs/org.guard.d.ts +10 -0
  350. package/dist/orgs/org.guard.js +43 -32
  351. package/dist/orgs/orgs.module.js +3 -0
  352. package/dist/orgs/orgs.service.d.ts +20 -7
  353. package/dist/orgs/orgs.service.js +32 -12
  354. package/dist/orgs/roles.d.ts +1 -1
  355. package/dist/orgs/roles.js +5 -1
  356. package/dist/orgs/settings.controller.d.ts +1 -1
  357. package/dist/orgs/settings.service.d.ts +20 -3
  358. package/dist/orgs/settings.service.js +19 -4
  359. package/dist/overrides.d.ts +3 -0
  360. package/dist/overrides.js +2 -0
  361. package/dist/platform/actor.d.ts +48 -0
  362. package/dist/platform/actor.js +100 -0
  363. package/dist/platform/agent-docs.d.ts +18 -0
  364. package/dist/platform/agent-docs.js +59 -0
  365. package/dist/platform/availability.d.ts +14 -0
  366. package/dist/platform/availability.js +43 -0
  367. package/dist/platform/errors.d.ts +11 -0
  368. package/dist/platform/errors.js +26 -0
  369. package/dist/platform/exclusions.d.ts +12 -0
  370. package/dist/platform/exclusions.js +1387 -0
  371. package/dist/platform/method.d.ts +6 -0
  372. package/dist/platform/method.js +15 -0
  373. package/dist/platform/operation.d.ts +92 -0
  374. package/dist/platform/operation.js +35 -0
  375. package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
  376. package/dist/platform/ops/agent-templates.ops.js +92 -0
  377. package/dist/platform/ops/agents.ops.d.ts +19 -0
  378. package/dist/platform/ops/agents.ops.js +294 -0
  379. package/dist/platform/ops/connectors.ops.d.ts +15 -0
  380. package/dist/platform/ops/connectors.ops.js +126 -0
  381. package/dist/platform/ops/errors.d.ts +11 -0
  382. package/dist/platform/ops/errors.js +22 -0
  383. package/dist/platform/ops/extensions.ops.d.ts +19 -0
  384. package/dist/platform/ops/extensions.ops.js +116 -0
  385. package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
  386. package/dist/platform/ops/marketplaces.ops.js +157 -0
  387. package/dist/platform/ops/paging.d.ts +14 -0
  388. package/dist/platform/ops/paging.js +20 -0
  389. package/dist/platform/ops/platform.ops.d.ts +23 -0
  390. package/dist/platform/ops/platform.ops.js +158 -0
  391. package/dist/platform/ops/plugins.ops.d.ts +33 -0
  392. package/dist/platform/ops/plugins.ops.js +377 -0
  393. package/dist/platform/ops/requests.ops.d.ts +14 -0
  394. package/dist/platform/ops/requests.ops.js +153 -0
  395. package/dist/platform/ops/role.d.ts +4 -0
  396. package/dist/platform/ops/role.js +10 -0
  397. package/dist/platform/ops/skills.ops.d.ts +13 -0
  398. package/dist/platform/ops/skills.ops.js +98 -0
  399. package/dist/platform/ops/summary.d.ts +10 -0
  400. package/dist/platform/ops/summary.js +18 -0
  401. package/dist/platform/platform-ops.module.d.ts +7 -0
  402. package/dist/platform/platform-ops.module.js +55 -0
  403. package/dist/platform/platform.module.d.ts +8 -0
  404. package/dist/platform/platform.module.js +25 -0
  405. package/dist/platform/redact-orgs.d.ts +7 -0
  406. package/dist/platform/redact-orgs.js +52 -0
  407. package/dist/platform/registry.d.ts +30 -0
  408. package/dist/platform/registry.js +111 -0
  409. package/dist/roles/worker-role.d.ts +6 -4
  410. package/dist/roles/worker-role.js +14 -7
  411. package/dist/roles/worker.module.d.ts +1 -1
  412. package/dist/roles/worker.module.js +15 -1
  413. package/dist/runtime/context/build.d.ts +11 -7
  414. package/dist/runtime/context/build.js +46 -19
  415. package/dist/runtime/context/claude-tools.d.ts +3 -1
  416. package/dist/runtime/context/claude-tools.js +8 -6
  417. package/dist/runtime/context/compaction.js +13 -0
  418. package/dist/runtime/context/reminders.d.ts +2 -0
  419. package/dist/runtime/context/reminders.js +2 -0
  420. package/dist/runtime/context/skills.js +9 -2
  421. package/dist/runtime/context/tool-changes.d.ts +27 -0
  422. package/dist/runtime/context/tool-changes.js +60 -0
  423. package/dist/runtime/hook-calls.js +2 -0
  424. package/dist/runtime/langgraph-loop.d.ts +3 -1
  425. package/dist/runtime/langgraph-loop.js +36 -17
  426. package/dist/runtime/loop.d.ts +34 -5
  427. package/dist/runtime/maintenance.d.ts +9 -4
  428. package/dist/runtime/maintenance.js +35 -8
  429. package/dist/runtime/model-call.d.ts +46 -8
  430. package/dist/runtime/model-call.js +72 -21
  431. package/dist/runtime/providers.d.ts +6 -0
  432. package/dist/runtime/providers.js +8 -0
  433. package/dist/runtime/run-control.d.ts +11 -1
  434. package/dist/runtime/run-control.js +12 -0
  435. package/dist/runtime/run-drafts.d.ts +85 -0
  436. package/dist/runtime/run-drafts.js +230 -0
  437. package/dist/runtime/run-jobs.d.ts +3 -5
  438. package/dist/runtime/run-jobs.js +3 -7
  439. package/dist/runtime/run-queue.d.ts +59 -2
  440. package/dist/runtime/run-queue.js +311 -38
  441. package/dist/runtime/run-worker.d.ts +11 -5
  442. package/dist/runtime/run-worker.js +69 -33
  443. package/dist/runtime/runtime.module.js +11 -3
  444. package/dist/runtime/step-log.d.ts +15 -4
  445. package/dist/runtime/step-log.js +24 -7
  446. package/dist/runtime/stream.controller.d.ts +23 -1
  447. package/dist/runtime/stream.controller.js +60 -3
  448. package/dist/runtime/stream.d.ts +4 -1
  449. package/dist/runtime/stream.js +27 -3
  450. package/dist/runtime/subagents/child.d.ts +55 -7
  451. package/dist/runtime/subagents/child.js +105 -7
  452. package/dist/runtime/subagents/definition.d.ts +12 -3
  453. package/dist/runtime/subagents/definition.js +44 -28
  454. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  455. package/dist/runtime/subagents/deliveries.js +228 -0
  456. package/dist/runtime/subagents/dispatch.d.ts +115 -26
  457. package/dist/runtime/subagents/dispatch.js +212 -141
  458. package/dist/runtime/subagents/limits.d.ts +24 -5
  459. package/dist/runtime/subagents/limits.js +40 -6
  460. package/dist/runtime/subagents/messages.d.ts +95 -0
  461. package/dist/runtime/subagents/messages.js +328 -0
  462. package/dist/runtime/subagents/preamble.d.ts +4 -4
  463. package/dist/runtime/subagents/preamble.js +9 -7
  464. package/dist/runtime/subagents/progress.d.ts +8 -6
  465. package/dist/runtime/subagents/progress.js +11 -6
  466. package/dist/runtime/subagents/render.d.ts +30 -0
  467. package/dist/runtime/subagents/render.js +53 -0
  468. package/dist/runtime/subagents/roster.d.ts +24 -7
  469. package/dist/runtime/subagents/roster.js +47 -11
  470. package/dist/runtime/subagents/skill-fork.d.ts +3 -2
  471. package/dist/runtime/subagents/skill-fork.js +8 -4
  472. package/dist/runtime/subagents/status.d.ts +14 -0
  473. package/dist/runtime/subagents/status.js +23 -0
  474. package/dist/runtime/subagents/subagents.service.d.ts +7 -4
  475. package/dist/runtime/subagents/subagents.service.js +11 -6
  476. package/dist/runtime/usage-report.d.ts +2 -1
  477. package/dist/runtime/usage-report.js +19 -13
  478. package/dist/runtime/waits.d.ts +145 -36
  479. package/dist/runtime/waits.js +423 -109
  480. package/dist/sandbox/jobs.d.ts +40 -13
  481. package/dist/sandbox/jobs.js +57 -20
  482. package/dist/sandbox/leases.d.ts +37 -54
  483. package/dist/sandbox/leases.js +71 -115
  484. package/dist/sandbox/providers.d.ts +2 -2
  485. package/dist/sandbox/providers.js +1 -1
  486. package/dist/sandbox/sandbox.module.d.ts +3 -2
  487. package/dist/sandbox/sandbox.module.js +10 -4
  488. package/dist/sandbox/sandbox.service.d.ts +282 -129
  489. package/dist/sandbox/sandbox.service.js +736 -381
  490. package/dist/skills/catalog.d.ts +3 -2
  491. package/dist/skills/catalog.js +21 -43
  492. package/dist/skills/changes.controller.d.ts +7 -0
  493. package/dist/skills/changes.controller.js +19 -1
  494. package/dist/skills/invoke.js +8 -3
  495. package/dist/skills/package.d.ts +20 -1
  496. package/dist/skills/package.js +28 -1
  497. package/dist/skills/skills.controller.d.ts +39 -4
  498. package/dist/skills/skills.controller.js +88 -10
  499. package/dist/skills/skills.module.js +10 -1
  500. package/dist/skills/skills.service.d.ts +106 -26
  501. package/dist/skills/skills.service.js +421 -75
  502. package/dist/skills/usable.d.ts +81 -0
  503. package/dist/skills/usable.js +379 -0
  504. package/dist/tools/approvals.service.d.ts +20 -2
  505. package/dist/tools/approvals.service.js +25 -4
  506. package/dist/tools/builtin-names.d.ts +41 -7
  507. package/dist/tools/builtin-names.js +59 -7
  508. package/dist/tools/builtins/agent.d.ts +23 -21
  509. package/dist/tools/builtins/agent.js +62 -55
  510. package/dist/tools/builtins/builtin-tools.d.ts +19 -1
  511. package/dist/tools/builtins/builtin-tools.js +59 -2
  512. package/dist/tools/builtins/handback.d.ts +28 -0
  513. package/dist/tools/builtins/handback.js +53 -0
  514. package/dist/tools/builtins/platform.d.ts +34 -0
  515. package/dist/tools/builtins/platform.js +362 -0
  516. package/dist/tools/builtins/sandbox/bash.d.ts +1 -1
  517. package/dist/tools/builtins/sandbox/bash.js +241 -4
  518. package/dist/tools/builtins/sandbox/common.d.ts +69 -27
  519. package/dist/tools/builtins/sandbox/common.js +87 -48
  520. package/dist/tools/builtins/sandbox/deliver.js +1 -1
  521. package/dist/tools/builtins/sandbox/edit.js +2 -2
  522. package/dist/tools/builtins/sandbox/glob.js +2 -2
  523. package/dist/tools/builtins/sandbox/grep.js +2 -4
  524. package/dist/tools/builtins/sandbox/index.d.ts +3 -1
  525. package/dist/tools/builtins/sandbox/index.js +7 -1
  526. package/dist/tools/builtins/sandbox/read.js +1 -1
  527. package/dist/tools/builtins/sandbox/task-output.d.ts +74 -0
  528. package/dist/tools/builtins/sandbox/task-output.js +329 -0
  529. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  530. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  531. package/dist/tools/builtins/sandbox/write.js +2 -2
  532. package/dist/tools/builtins/send-message.d.ts +56 -0
  533. package/dist/tools/builtins/send-message.js +100 -0
  534. package/dist/tools/builtins/skill-load.d.ts +22 -14
  535. package/dist/tools/builtins/skill-load.js +86 -57
  536. package/dist/tools/builtins/skill-write.js +1 -1
  537. package/dist/tools/builtins/web/errors.d.ts +8 -0
  538. package/dist/tools/builtins/web/errors.js +53 -0
  539. package/dist/tools/builtins/web/extract.d.ts +62 -0
  540. package/dist/tools/builtins/web/extract.js +271 -0
  541. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  542. package/dist/tools/builtins/web/fetch.js +175 -0
  543. package/dist/tools/builtins/web/index.d.ts +13 -0
  544. package/dist/tools/builtins/web/index.js +12 -0
  545. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  546. package/dist/tools/builtins/web/page-cache.js +77 -0
  547. package/dist/tools/builtins/web/search.d.ts +25 -0
  548. package/dist/tools/builtins/web/search.js +210 -0
  549. package/dist/tools/builtins/web/url.d.ts +17 -0
  550. package/dist/tools/builtins/web/url.js +43 -0
  551. package/dist/tools/connectors.controller.d.ts +10 -0
  552. package/dist/tools/connectors.controller.js +12 -0
  553. package/dist/tools/connectors.service.d.ts +46 -5
  554. package/dist/tools/connectors.service.js +94 -15
  555. package/dist/tools/extension-tools.controller.d.ts +14 -0
  556. package/dist/tools/extension-tools.controller.js +37 -0
  557. package/dist/tools/info.d.ts +42 -1
  558. package/dist/tools/info.js +64 -1
  559. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  560. package/dist/tools/oauth/flow-paths.js +1 -1
  561. package/dist/tools/org-tool-switches.d.ts +74 -0
  562. package/dist/tools/org-tool-switches.js +184 -0
  563. package/dist/tools/pipeline.d.ts +46 -40
  564. package/dist/tools/pipeline.js +202 -364
  565. package/dist/tools/policy.d.ts +1 -1
  566. package/dist/tools/policy.js +36 -16
  567. package/dist/tools/registry.d.ts +120 -8
  568. package/dist/tools/registry.js +112 -19
  569. package/dist/tools/tools.module.js +24 -2
  570. package/dist/tools/validate.js +1 -1
  571. package/dist/ui/views.d.ts +2 -1
  572. package/dist/ui/views.js +17 -3
  573. package/package.json +3 -3
  574. package/src/migrations/0064_account_last_org.sql +7 -0
  575. package/src/migrations/0065_conversation_archive.sql +8 -0
  576. package/src/migrations/0066_extension_display_name.sql +4 -0
  577. package/src/migrations/0067_agent_profiles.sql +20 -0
  578. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  579. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  580. package/src/migrations/0070_background_tasks.sql +37 -0
  581. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  582. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  583. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  584. package/src/migrations/0074_subagent_tree.sql +50 -0
  585. package/src/migrations/0075_plugin_scope.sql +61 -0
  586. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  587. package/src/migrations/0077_scope_requests.sql +52 -0
  588. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  589. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  590. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  591. package/src/migrations/0081_platform_components.sql +129 -0
  592. package/src/migrations/0082_platform_migration.sql +33 -0
  593. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  594. package/src/migrations/0084_org_owned_items.sql +85 -0
  595. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  596. package/src/migrations/0086_org_layering.sql +30 -0
  597. package/src/migrations/0087_approval_summary.sql +6 -0
  598. package/src/migrations/0088_environments.sql +80 -0
  599. package/dist/catalog/upgrade-targets.d.ts +0 -56
  600. package/dist/catalog/upgrade-targets.js +0 -90
  601. package/dist/conversations/sandbox-status.d.ts +0 -24
  602. package/dist/conversations/sandbox-status.js +0 -52
  603. package/dist/extensions/org-config.controller.d.ts +0 -24
  604. package/dist/extensions/org-config.controller.js +0 -62
@@ -21,17 +21,40 @@ export declare const BUILTIN: {
21
21
  readonly ReadToolOutput: "ReadToolOutput";
22
22
  readonly ToolSearch: "ToolSearch";
23
23
  readonly Agent: "Agent";
24
+ readonly SendMessage: "SendMessage";
25
+ readonly SubagentHandback: "SubagentHandback";
26
+ readonly TaskOutput: "TaskOutput";
27
+ readonly TaskStop: "TaskStop";
28
+ readonly WebSearch: "WebSearch";
29
+ readonly WebFetch: "WebFetch";
30
+ readonly Platform: "Platform";
24
31
  };
25
32
  export type BuiltinName = (typeof BUILTIN)[keyof typeof BUILTIN];
26
- /** The builtin tools that run in the conversation's sandbox. */
33
+ /**
34
+ * The builtin tools that run in the conversation's sandbox. `TaskOutput` and `TaskStop` read and
35
+ * stop the background tasks `Bash` started (background Bash spec §2.2, §2.3).
36
+ */
27
37
  export declare const SANDBOX_TOOL_NAMES: readonly BuiltinName[];
28
- /** Sandbox tools that need approval when the org setting `sandboxToolPolicy` is `ask` (not the read-only ones). */
38
+ /** The builtin tools that reach the web through the org's web-search / web-fetch providers. */
39
+ export declare const WEB_TOOL_NAMES: readonly BuiltinName[];
40
+ /**
41
+ * The tools offered with `Bash` whenever it is offered (background Bash: a model that can start a
42
+ * background task can read and stop it). `ToolRegistry` adds them; an explicit ref is harmless.
43
+ */
44
+ export declare const BASH_COMPANION_TOOLS: readonly BuiltinName[];
45
+ /**
46
+ * Sandbox tools that need approval when the org setting `sandboxToolPolicy` is `ask` (not the
47
+ * read-only ones). Not `TaskOutput` or `TaskStop`: they only read or stop a task whose launch
48
+ * already went through `Bash`'s policy (background Bash spec §4.5).
49
+ */
29
50
  export declare const SANDBOX_ASK_TOOL_NAMES: ReadonlySet<string>;
30
51
  /**
31
52
  * Every builtin name. Saving an agent checks builtin refs against this list, not against what is
32
53
  * registered now, so the order the implementations land in never affects a saved definition.
33
54
  * `SkillWrite` is available only when a definition names it; `ToolSearch` and `Skill` are added
34
- * by the registry; `Agent` dispatches sub-agents and its description is built per agent.
55
+ * by the registry; `Agent` dispatches sub-agents and its description is built per agent;
56
+ * `SendMessage` and `SubagentHandback` are added by the registry ({@link SUBAGENT_MESSAGE_TOOLS}).
57
+ * `Platform` calls the platform's own operations as the run's person (Platform tool spec).
35
58
  */
36
59
  export declare const BUILTIN_TOOL_NAMES: readonly BuiltinName[];
37
60
  /** The builtin that loads a skill (added by the registry when the log has a skills catalog). */
@@ -40,6 +63,16 @@ export declare const SKILL_LOAD: "Skill";
40
63
  export declare const TOOL_SEARCH: "ToolSearch";
41
64
  /** The builtin that dispatches sub-agents. */
42
65
  export declare const AGENT_TOOL: "Agent";
66
+ /** The builtin that sends a message to one of the caller's sub-agents or to its parent. */
67
+ export declare const SEND_MESSAGE: "SendMessage";
68
+ /** The builtin that hands a sub-agent's report back to its parent (sub-agents only). */
69
+ export declare const SUBAGENT_HANDBACK: "SubagentHandback";
70
+ /**
71
+ * The tools between the agents of one tree (agent map spec §4.2, §4.3), added by the registry
72
+ * whatever a definition names: `SendMessage` to an agent that has `Agent` or a parent, and
73
+ * `SubagentHandback` to a sub-agent. A definition's ref to either is ignored.
74
+ */
75
+ export declare const SUBAGENT_MESSAGE_TOOLS: ReadonlySet<string>;
43
76
  /**
44
77
  * Tool keys on the spec 3.6 R3 fixed list ("allowed is not confirmed"): their policy is at least
45
78
  * `ask` and remembered grants never let them through. `SkillWrite` changes shared skills.
@@ -52,14 +85,15 @@ export declare const R3_FIXED_ASK_TOOL_KEYS: ReadonlySet<string>;
52
85
  */
53
86
  export declare const R3_SHARED_AGENT_ONLY_TOOL_KEYS: ReadonlySet<string>;
54
87
  /**
55
- * Tools a sub-agent never gets (sub-agents spec §5.3, §5.5): `Agent` (depth 1), `AskUserQuestion`
56
- * (the person does not see the child), `Deliver` (delivering files is the parent's job) and
57
- * `SkillWrite`.
88
+ * Tools a sub-agent never gets (sub-agents spec §5.3, §5.5): `AskUserQuestion` (the person does
89
+ * not see the child), `Deliver` (delivering files is the parent's job) and `SkillWrite`. `Agent`
90
+ * is removed only from a child at `subagents.maxDepth` (agent map spec §4.1, `effectiveDefinition`).
58
91
  */
59
- export declare const CHILD_REMOVED_TOOLS: readonly ["Agent", "AskUserQuestion", "Deliver", "SkillWrite"];
92
+ export declare const CHILD_REMOVED_TOOLS: readonly ["AskUserQuestion", "Deliver", "SkillWrite"];
60
93
  /**
61
94
  * The tools of a new agent created without `tools` (`ToolSearch` is added by the registry, never
62
95
  * by a definition). Only for create requests; updates and stored versions get no defaults.
96
+ * `Platform` is on by default (Platform tool spec §3: reads are harmless, every write confirmed).
63
97
  */
64
98
  export declare const DEFAULT_AGENT_TOOLS: AgentToolRef[];
65
99
  /** Kinds of the builtin tools (display only); a builtin missing here is a plain `tool`. */
@@ -19,8 +19,18 @@ export const BUILTIN = {
19
19
  ReadToolOutput: "ReadToolOutput",
20
20
  ToolSearch: "ToolSearch",
21
21
  Agent: "Agent",
22
+ SendMessage: "SendMessage",
23
+ SubagentHandback: "SubagentHandback",
24
+ TaskOutput: "TaskOutput",
25
+ TaskStop: "TaskStop",
26
+ WebSearch: "WebSearch",
27
+ WebFetch: "WebFetch",
28
+ Platform: "Platform",
22
29
  };
23
- /** The builtin tools that run in the conversation's sandbox. */
30
+ /**
31
+ * The builtin tools that run in the conversation's sandbox. `TaskOutput` and `TaskStop` read and
32
+ * stop the background tasks `Bash` started (background Bash spec §2.2, §2.3).
33
+ */
24
34
  export const SANDBOX_TOOL_NAMES = [
25
35
  BUILTIN.Bash,
26
36
  BUILTIN.Read,
@@ -29,8 +39,21 @@ export const SANDBOX_TOOL_NAMES = [
29
39
  BUILTIN.Glob,
30
40
  BUILTIN.Grep,
31
41
  BUILTIN.Deliver,
42
+ BUILTIN.TaskOutput,
43
+ BUILTIN.TaskStop,
32
44
  ];
33
- /** Sandbox tools that need approval when the org setting `sandboxToolPolicy` is `ask` (not the read-only ones). */
45
+ /** The builtin tools that reach the web through the org's web-search / web-fetch providers. */
46
+ export const WEB_TOOL_NAMES = [BUILTIN.WebSearch, BUILTIN.WebFetch];
47
+ /**
48
+ * The tools offered with `Bash` whenever it is offered (background Bash: a model that can start a
49
+ * background task can read and stop it). `ToolRegistry` adds them; an explicit ref is harmless.
50
+ */
51
+ export const BASH_COMPANION_TOOLS = [BUILTIN.TaskOutput, BUILTIN.TaskStop];
52
+ /**
53
+ * Sandbox tools that need approval when the org setting `sandboxToolPolicy` is `ask` (not the
54
+ * read-only ones). Not `TaskOutput` or `TaskStop`: they only read or stop a task whose launch
55
+ * already went through `Bash`'s policy (background Bash spec §4.5).
56
+ */
34
57
  export const SANDBOX_ASK_TOOL_NAMES = new Set([
35
58
  BUILTIN.Bash,
36
59
  BUILTIN.Write,
@@ -41,7 +64,9 @@ export const SANDBOX_ASK_TOOL_NAMES = new Set([
41
64
  * Every builtin name. Saving an agent checks builtin refs against this list, not against what is
42
65
  * registered now, so the order the implementations land in never affects a saved definition.
43
66
  * `SkillWrite` is available only when a definition names it; `ToolSearch` and `Skill` are added
44
- * by the registry; `Agent` dispatches sub-agents and its description is built per agent.
67
+ * by the registry; `Agent` dispatches sub-agents and its description is built per agent;
68
+ * `SendMessage` and `SubagentHandback` are added by the registry ({@link SUBAGENT_MESSAGE_TOOLS}).
69
+ * `Platform` calls the platform's own operations as the run's person (Platform tool spec).
45
70
  */
46
71
  export const BUILTIN_TOOL_NAMES = [
47
72
  BUILTIN.AskUserQuestion,
@@ -51,6 +76,10 @@ export const BUILTIN_TOOL_NAMES = [
51
76
  BUILTIN.SkillWrite,
52
77
  ...SANDBOX_TOOL_NAMES,
53
78
  BUILTIN.Agent,
79
+ BUILTIN.SendMessage,
80
+ BUILTIN.SubagentHandback,
81
+ ...WEB_TOOL_NAMES,
82
+ BUILTIN.Platform,
54
83
  ];
55
84
  /** The builtin that loads a skill (added by the registry when the log has a skills catalog). */
56
85
  export const SKILL_LOAD = BUILTIN.Skill;
@@ -58,6 +87,19 @@ export const SKILL_LOAD = BUILTIN.Skill;
58
87
  export const TOOL_SEARCH = BUILTIN.ToolSearch;
59
88
  /** The builtin that dispatches sub-agents. */
60
89
  export const AGENT_TOOL = BUILTIN.Agent;
90
+ /** The builtin that sends a message to one of the caller's sub-agents or to its parent. */
91
+ export const SEND_MESSAGE = BUILTIN.SendMessage;
92
+ /** The builtin that hands a sub-agent's report back to its parent (sub-agents only). */
93
+ export const SUBAGENT_HANDBACK = BUILTIN.SubagentHandback;
94
+ /**
95
+ * The tools between the agents of one tree (agent map spec §4.2, §4.3), added by the registry
96
+ * whatever a definition names: `SendMessage` to an agent that has `Agent` or a parent, and
97
+ * `SubagentHandback` to a sub-agent. A definition's ref to either is ignored.
98
+ */
99
+ export const SUBAGENT_MESSAGE_TOOLS = new Set([
100
+ SEND_MESSAGE,
101
+ SUBAGENT_HANDBACK,
102
+ ]);
61
103
  /**
62
104
  * Tool keys on the spec 3.6 R3 fixed list ("allowed is not confirmed"): their policy is at least
63
105
  * `ask` and remembered grants never let them through. `SkillWrite` changes shared skills.
@@ -72,12 +114,11 @@ export const R3_SHARED_AGENT_ONLY_TOOL_KEYS = new Set([
72
114
  BUILTIN.SkillWrite,
73
115
  ]);
74
116
  /**
75
- * Tools a sub-agent never gets (sub-agents spec §5.3, §5.5): `Agent` (depth 1), `AskUserQuestion`
76
- * (the person does not see the child), `Deliver` (delivering files is the parent's job) and
77
- * `SkillWrite`.
117
+ * Tools a sub-agent never gets (sub-agents spec §5.3, §5.5): `AskUserQuestion` (the person does
118
+ * not see the child), `Deliver` (delivering files is the parent's job) and `SkillWrite`. `Agent`
119
+ * is removed only from a child at `subagents.maxDepth` (agent map spec §4.1, `effectiveDefinition`).
78
120
  */
79
121
  export const CHILD_REMOVED_TOOLS = [
80
- BUILTIN.Agent,
81
122
  BUILTIN.AskUserQuestion,
82
123
  BUILTIN.Deliver,
83
124
  BUILTIN.SkillWrite,
@@ -85,10 +126,12 @@ export const CHILD_REMOVED_TOOLS = [
85
126
  /**
86
127
  * The tools of a new agent created without `tools` (`ToolSearch` is added by the registry, never
87
128
  * by a definition). Only for create requests; updates and stored versions get no defaults.
129
+ * `Platform` is on by default (Platform tool spec §3: reads are harmless, every write confirmed).
88
130
  */
89
131
  export const DEFAULT_AGENT_TOOLS = [
90
132
  { kind: "builtin", name: BUILTIN.AskUserQuestion },
91
133
  { kind: "builtin", name: BUILTIN.ReadToolOutput },
134
+ { kind: "builtin", name: BUILTIN.Platform },
92
135
  ];
93
136
  /** Kinds of the builtin tools (display only); a builtin missing here is a plain `tool`. */
94
137
  export const BUILTIN_TOOL_KINDS = {
@@ -99,11 +142,18 @@ export const BUILTIN_TOOL_KINDS = {
99
142
  [BUILTIN.Glob]: "search",
100
143
  [BUILTIN.Grep]: "search",
101
144
  [BUILTIN.Deliver]: "tool",
145
+ [BUILTIN.TaskOutput]: "read",
146
+ [BUILTIN.TaskStop]: "command",
102
147
  [BUILTIN.ToolSearch]: "meta",
103
148
  [BUILTIN.Skill]: "meta",
104
149
  [BUILTIN.SkillWrite]: "meta",
105
150
  [BUILTIN.ReadToolOutput]: "meta",
106
151
  [BUILTIN.AskUserQuestion]: "meta",
152
+ [BUILTIN.SendMessage]: "meta",
153
+ [BUILTIN.SubagentHandback]: "meta",
154
+ [BUILTIN.WebSearch]: "search",
155
+ [BUILTIN.WebFetch]: "read",
156
+ [BUILTIN.Platform]: "tool",
107
157
  };
108
158
  /**
109
159
  * Input fields left out when matching a replayed call with a recorded one (full-run replay), per
@@ -112,5 +162,7 @@ export const BUILTIN_TOOL_KINDS = {
112
162
  * with one (or a different wording) still match.
113
163
  */
114
164
  export const MATCH_IGNORED_FIELDS = {
165
+ // `run_in_background` is matched on purpose: it changes what the call did (a launch that
166
+ // returns at once instead of the command's output; background Bash spec §4.4)
115
167
  [BUILTIN.Bash]: ["description"],
116
168
  };
@@ -1,16 +1,16 @@
1
1
  import type { ToolSpec } from "@capybara-hq/plugin-sdk";
2
2
  import { z } from "zod";
3
- import type { EventPayload } from "../../conversations/events.js";
4
3
  import { type RosterEntry } from "../../runtime/subagents/roster.js";
4
+ import { type SubagentAbortedBy, type SubagentStatus } from "../../runtime/subagents/status.js";
5
5
  import type { BuiltinTool } from "../registry.js";
6
6
  export { AGENT_TOOL } from "../builtin-names.js";
7
7
  /**
8
- * The `Agent` builtin tool (sub-agents spec §4): dispatches a sub-agent. Its description is built
9
- * per parent agent version from the roster ({@link agentToolSpec}); the tool pipeline handles the
10
- * call itself (dispatch, suspend, resume), so {@link agentTool}'s `run` is only a guard.
8
+ * The `Agent` builtin tool (sub-agents spec §4, agent map spec §4.1): dispatches a sub-agent in
9
+ * the background. Its description is built per parent agent version from the roster
10
+ * ({@link agentToolSpec}); the tool pipeline handles the call itself (the dispatch writes the
11
+ * call's result, {@link agentStartedText}), so {@link agentTool}'s `run` is only a guard. The
12
+ * sub-agent's reports and its finish reach the parent as `subagent_delivery` events.
11
13
  */
12
- /** How a sub-agent's run ended (`subagent_finished.status`). */
13
- export type SubagentStatus = EventPayload<"subagent_finished">["status"];
14
14
  /** The input of an `Agent` call (§4.2). */
15
15
  export declare const AgentToolInput: z.ZodObject<{
16
16
  description: z.ZodString;
@@ -22,7 +22,6 @@ export declare const AgentToolInput: z.ZodObject<{
22
22
  inherit: "inherit";
23
23
  standard: "standard";
24
24
  }>>;
25
- resume: z.ZodOptional<z.ZodString>;
26
25
  }, z.core.$strict>;
27
26
  export type AgentToolInputT = z.infer<typeof AgentToolInput>;
28
27
  /**
@@ -37,21 +36,29 @@ export declare const AGENT_REFUSALS: {
37
36
  readonly tooManyConcurrent: (n: number) => string;
38
37
  readonly tooManyDispatches: (n: number) => string;
39
38
  readonly budget: (n: number) => string;
40
- readonly noSuchAgent: (id: string) => string;
41
- readonly stillRunning: (id: string) => string;
42
- readonly resumeWithType: "resume cannot be combined with subagent_type or model.";
39
+ readonly depthLimit: (maxDepth: number) => string;
43
40
  readonly notAvailableHere: "Sub-agents are not available in this conversation.";
44
41
  readonly agentNotAvailable: (name: string) => string;
45
42
  };
46
43
  /**
47
- * The parent run was stopped while this sub-agent worked (§4.4, §12): the result of a stopped
48
- * parent's open `Agent` call, and the text of a child stopped with its parent.
44
+ * The run was stopped while this sub-agent worked (§4.4, §12): the report of a stopped run's fork
45
+ * invocation whose sub-agent was still active (it is stopped with the run).
49
46
  */
50
47
  export declare const AGENT_STOPPED_WITH_RUN_TEXT = "The run was stopped while this sub-agent was working; it was stopped too.";
51
48
  /**
52
- * The tool result of a finished sub-agent (§4.4): the text for how its run ended, a blank line, and
53
- * the status line with its `agentId`. `ownModel`: an org agent dispatched with a `model` that was
54
- * ignored. `abortedBy: "parent"`: stopped together with the parent run (seen only in logs).
49
+ * The immediate result of an `Agent` call (agent map spec §4.1): the sub-agent runs in the
50
+ * background, its reports and its finish arrive later as notifications (`subagent_delivery`).
51
+ * `ownModel`: an org agent dispatched with a `model`, which runs on its own model instead.
52
+ */
53
+ export declare const agentStartedText: (agentId: string, opts?: {
54
+ ownModel?: boolean;
55
+ }) => string;
56
+ /**
57
+ * The result text of a finished sub-agent (§4.4): the text for how its run ended, a blank line, and
58
+ * the status line with its `agentId`. Used for a fork invocation's report (phase D); a background
59
+ * `Agent` call's sub-agent reports through `subagent_delivery` instead. `ownModel`: an org agent
60
+ * dispatched with a `model` that was ignored. `abortedBy: "parent"`: stopped together with the
61
+ * parent run.
55
62
  */
56
63
  export declare function agentResultText(r: {
57
64
  reply: string;
@@ -63,12 +70,7 @@ export declare function agentResultText(r: {
63
70
  durationMs: number;
64
71
  tokens: number;
65
72
  ownModel?: boolean;
66
- abortedBy?: "user" | "parent";
67
- /**
68
- * Phase D: the report of a person's fork invocation, whose parent need not have the `Agent`
69
- * tool: the status line leaves out the resume hint (batch 3 review m2).
70
- */
71
- noResumeHint?: boolean;
73
+ abortedBy?: SubagentAbortedBy;
72
74
  }): {
73
75
  content: string;
74
76
  isError: boolean;
@@ -1,7 +1,15 @@
1
1
  import { z } from "zod";
2
2
  import { ROSTER_DESCRIPTION_MAX } from "../../runtime/subagents/roster.js";
3
+ import { subagentStatusText, } from "../../runtime/subagents/status.js";
3
4
  import { AGENT_TOOL } from "../builtin-names.js";
4
5
  export { AGENT_TOOL } from "../builtin-names.js";
6
+ /**
7
+ * The `Agent` builtin tool (sub-agents spec §4, agent map spec §4.1): dispatches a sub-agent in
8
+ * the background. Its description is built per parent agent version from the roster
9
+ * ({@link agentToolSpec}); the tool pipeline handles the call itself (the dispatch writes the
10
+ * call's result, {@link agentStartedText}), so {@link agentTool}'s `run` is only a guard. The
11
+ * sub-agent's reports and its finish reach the parent as `subagent_delivery` events.
12
+ */
5
13
  /** The input of an `Agent` call (§4.2). */
6
14
  export const AgentToolInput = z
7
15
  .object({
@@ -9,7 +17,6 @@ export const AgentToolInput = z
9
17
  prompt: z.string().min(1).max(100_000),
10
18
  subagent_type: z.string().min(1).max(130).optional(),
11
19
  model: z.enum(["inherit", "fast", "standard", "capable"]).optional(),
12
- resume: z.string().max(64).optional(),
13
20
  })
14
21
  .strict();
15
22
  /** Display only (UI refresh B): the task name, then the type; never sent to the model. */
@@ -28,7 +35,7 @@ const INPUT_SCHEMA = {
28
35
  minLength: 1,
29
36
  maxLength: 100000,
30
37
  description: "The complete task for the sub-agent. It sees nothing else of this conversation: include " +
31
- "every fact, file path and constraint it needs, and say what its final reply must contain.",
38
+ "every fact, file path and constraint it needs, and say what its report must contain.",
32
39
  },
33
40
  subagent_type: {
34
41
  type: "string",
@@ -44,25 +51,22 @@ const INPUT_SCHEMA = {
44
51
  "integration and judgment, capable for design and final reviews. Defaults to the agent " +
45
52
  "type's own setting, else your model.",
46
53
  },
47
- resume: {
48
- type: "string",
49
- maxLength: 64,
50
- description: "The agentId from an earlier result of this tool: sends prompt to that sub-agent as a " +
51
- "follow-up, with its earlier context intact. Leave subagent_type and model unset.",
52
- },
53
54
  },
54
55
  required: ["description", "prompt"],
55
56
  additionalProperties: false,
56
57
  };
57
- /** The text before the roster (§4.3), with the concurrency limit. */
58
- const head = (maxConcurrent) => "Dispatch a sub-agent: a fresh agent with its own context that works on one task and returns its " +
59
- "final reply as this tool's result. The sub-agent sees only your prompt, not this conversation, so " +
60
- "include everything it needs and say what its final reply must contain. It shares your sandbox " +
61
- "files. You wait until it finishes. To run several at once, call this tool several times in the " +
62
- `same response (at most ${maxConcurrent} at a time); their commands run in the sandbox at the ` +
63
- "same time, so give parallel sub-agents separate files or directories. Sub-agents cannot " +
64
- "dispatch sub-agents or ask the user questions. To send a finished sub-agent a follow-up while " +
65
- "keeping its context, pass the agentId from its result as resume.\n" +
58
+ /** The text before the roster (§4.3, agent map spec §4.1), with the concurrency limit. */
59
+ const head = (maxConcurrent) => "Dispatch a sub-agent: a fresh agent with its own context that works on one task in the " +
60
+ "background. This tool returns at once with the sub-agent's agentId; keep working or end your " +
61
+ "turn, and do not wait for it. When the sub-agent hands back a report or finishes, its result " +
62
+ "arrives in this conversation as a notification. The sub-agent sees only your prompt, not this " +
63
+ "conversation, so include everything it needs and say what its report must contain. It shares " +
64
+ "your sandbox files. To run several at once, call this tool several times (at most " +
65
+ `${maxConcurrent} of your sub-agents run at a time); their commands run in the sandbox at the ` +
66
+ "same time, so give parallel sub-agents separate files or directories. To give a sub-agent more " +
67
+ "instructions while it works, or a follow-up after it finished, use SendMessage with its " +
68
+ "agentId. Sub-agents can dispatch sub-agents of their own up to the nesting limit; they cannot " +
69
+ "ask the user questions.\n" +
66
70
  "\n" +
67
71
  "Agent types (subagent_type):\n";
68
72
  /**
@@ -96,20 +100,23 @@ export function agentToolSpec(roster, maxConcurrent) {
96
100
  }
97
101
  /**
98
102
  * The static definition: the rendering for a roster of only general-purpose at the default
99
- * `subagents.maxConcurrentPerRun` (what an agent without `subagents` gets under the defaults).
103
+ * `subagents.maxConcurrentPerConversation` (what an agent without `subagents` gets under the defaults).
100
104
  * Written out as a literal for the tool design check; a test pins it equal to
101
105
  * `agentToolSpec([general-purpose], 4)`.
102
106
  */
103
107
  const SPEC = {
104
108
  name: "Agent",
105
- description: "Dispatch a sub-agent: a fresh agent with its own context that works on one task and returns its " +
106
- "final reply as this tool's result. The sub-agent sees only your prompt, not this conversation, so " +
107
- "include everything it needs and say what its final reply must contain. It shares your sandbox " +
108
- "files. You wait until it finishes. To run several at once, call this tool several times in the " +
109
- "same response (at most 4 at a time); their commands run in the sandbox at the same time, so give " +
110
- "parallel sub-agents separate files or directories. Sub-agents cannot dispatch sub-agents or ask " +
111
- "the user questions. To send a finished sub-agent a follow-up while keeping its context, pass the " +
112
- "agentId from its result as resume.\n" +
109
+ description: "Dispatch a sub-agent: a fresh agent with its own context that works on one task in the " +
110
+ "background. This tool returns at once with the sub-agent's agentId; keep working or end your " +
111
+ "turn, and do not wait for it. When the sub-agent hands back a report or finishes, its result " +
112
+ "arrives in this conversation as a notification. The sub-agent sees only your prompt, not this " +
113
+ "conversation, so include everything it needs and say what its report must contain. It shares " +
114
+ "your sandbox files. To run several at once, call this tool several times (at most 4 of your " +
115
+ "sub-agents run at a time); their commands run in the sandbox at the same time, so give " +
116
+ "parallel sub-agents separate files or directories. To give a sub-agent more instructions " +
117
+ "while it works, or a follow-up after it finished, use SendMessage with its agentId. " +
118
+ "Sub-agents can dispatch sub-agents of their own up to the nesting limit; they cannot ask the " +
119
+ "user questions.\n" +
113
120
  "\n" +
114
121
  "Agent types (subagent_type):\n" +
115
122
  "- general-purpose: a copy of you with your tools and skills, for multi-step work.",
@@ -119,18 +126,16 @@ const SPEC = {
119
126
  /** Refusals (§4.5): `isError` results written without starting anything (model-visible). */
120
127
  export const AGENT_REFUSALS = {
121
128
  unknownType: (x, roster) => `Unknown subagent_type "${x}". Available: ${roster.join(", ")}.`,
122
- tooManyConcurrent: (n) => `At most ${n} sub-agents can run at once in this run; dispatch the remaining tasks after these finish.`,
123
- tooManyDispatches: (n) => `This run has dispatched ${n} sub-agents, the limit; do the remaining work yourself.`,
124
- budget: (n) => `Sub-agents of this run have used their token budget (${count(n)} tokens); do the remaining work yourself.`,
125
- noSuchAgent: (id) => `No sub-agent with agentId "${id}" in this conversation.`,
126
- stillRunning: (id) => `Sub-agent "${id}" is still running; wait for its result before sending a follow-up.`,
127
- resumeWithType: "resume cannot be combined with subagent_type or model.",
129
+ tooManyConcurrent: (n) => `At most ${n} of your sub-agents can run at once in this conversation; dispatch the remaining tasks after one of them finishes.`,
130
+ tooManyDispatches: (n) => `${n} sub-agents have been dispatched since the user's latest message, counted across all levels of sub-agents; that is the limit, so do the remaining work yourself.`,
131
+ budget: (n) => `Sub-agents have used their token budget since the user's latest message (${count(n)} tokens, counted across all levels of sub-agents); do the remaining work yourself.`,
132
+ depthLimit: (maxDepth) => `Sub-agents can be nested at most ${maxDepth} levels deep, and you are at the deepest level; do this task yourself.`,
128
133
  notAvailableHere: "Sub-agents are not available in this conversation.",
129
134
  agentNotAvailable: (name) => `The agent "${name}" is not available to the person who started this conversation; do this task yourself or use another agent type.`,
130
135
  };
131
136
  /**
132
- * The parent run was stopped while this sub-agent worked (§4.4, §12): the result of a stopped
133
- * parent's open `Agent` call, and the text of a child stopped with its parent.
137
+ * The run was stopped while this sub-agent worked (§4.4, §12): the report of a stopped run's fork
138
+ * invocation whose sub-agent was still active (it is stopped with the run).
134
139
  */
135
140
  export const AGENT_STOPPED_WITH_RUN_TEXT = "The run was stopped while this sub-agent was working; it was stopped too.";
136
141
  /** `12345` → `12,345` (no locale data involved, so the text is the same on every replica). */
@@ -145,46 +150,50 @@ function duration(ms) {
145
150
  return `${Math.floor(s / 3600)}h ${String(Math.floor((s % 3600) / 60)).padStart(2, "0")}m`;
146
151
  }
147
152
  /**
148
- * The tool result of a finished sub-agent (§4.4): the text for how its run ended, a blank line, and
149
- * the status line with its `agentId`. `ownModel`: an org agent dispatched with a `model` that was
150
- * ignored. `abortedBy: "parent"`: stopped together with the parent run (seen only in logs).
153
+ * The immediate result of an `Agent` call (agent map spec §4.1): the sub-agent runs in the
154
+ * background, its reports and its finish arrive later as notifications (`subagent_delivery`).
155
+ * `ownModel`: an org agent dispatched with a `model`, which runs on its own model instead.
156
+ */
157
+ export const agentStartedText = (agentId, opts = {}) => `agentId: ${agentId} (running in the background)\n` +
158
+ "The sub-agent is working on the task. Its result arrives in this conversation as a " +
159
+ "notification when it hands back a report or finishes; keep working or end your turn. To send " +
160
+ "it more instructions, use SendMessage with this agentId." +
161
+ (opts.ownModel === true ? " It runs on its own model; the model you passed was ignored." : "");
162
+ /**
163
+ * The result text of a finished sub-agent (§4.4): the text for how its run ended, a blank line, and
164
+ * the status line with its `agentId`. Used for a fork invocation's report (phase D); a background
165
+ * `Agent` call's sub-agent reports through `subagent_delivery` instead. `ownModel`: an org agent
166
+ * dispatched with a `model` that was ignored. `abortedBy: "parent"`: stopped together with the
167
+ * parent run.
151
168
  */
152
169
  export function agentResultText(r) {
153
170
  const reply = r.reply.trim();
154
- let status;
171
+ const status = subagentStatusText(r.status, r);
155
172
  let text;
156
173
  let isError = true;
157
174
  switch (r.status) {
158
175
  case "completed":
159
- [status, text, isError] = ["completed", reply, false];
176
+ [text, isError] = [reply, false];
160
177
  break;
161
178
  case "max_steps":
162
- [status, text, isError] = [
163
- "stopped at the step limit; the reply may be partial",
164
- reply,
165
- false,
166
- ];
179
+ [text, isError] = [reply, false];
167
180
  break;
168
181
  case "max_duration":
169
- status = "stopped at the time limit; the reply may be partial";
170
182
  text = reply === "" ? "The sub-agent produced no reply before the time limit." : reply;
171
183
  isError = false;
172
184
  break;
173
185
  case "budget":
174
- [status, text] = ["stopped: token budget used up", reply];
186
+ text = reply;
175
187
  break;
176
188
  case "aborted":
177
- [status, text] =
178
- r.abortedBy === "parent"
179
- ? ["stopped with this run", AGENT_STOPPED_WITH_RUN_TEXT]
180
- : ["stopped by the user", "The user stopped this sub-agent."];
189
+ text =
190
+ r.abortedBy === "parent" ? AGENT_STOPPED_WITH_RUN_TEXT : "The user stopped this sub-agent.";
181
191
  break;
182
192
  case "timed_out":
183
193
  // the parent's sub-agents wait timed out (§7.2) and stopped it; the parent goes on
184
- [status, text] = ["timed out", "stopped: the sub-agent wait timed out"];
194
+ text = "stopped: the sub-agent wait timed out";
185
195
  break;
186
196
  case "failed":
187
- status = r.errorCode === undefined ? "failed" : `failed (${r.errorCode})`;
188
197
  text =
189
198
  r.errorMessage === undefined
190
199
  ? "The sub-agent failed."
@@ -197,9 +206,7 @@ export function agentResultText(r) {
197
206
  ...(r.ownModel === true ? ["model: the agent's own"] : []),
198
207
  `${r.toolCalls} tool ${r.toolCalls === 1 ? "call" : "calls"}`,
199
208
  duration(r.durationMs),
200
- r.noResumeHint === true
201
- ? `${count(r.tokens)} tokens.`
202
- : `${count(r.tokens)} tokens. Pass the agentId as resume to send this sub-agent a follow-up.`,
209
+ `${count(r.tokens)} tokens.`,
203
210
  ];
204
211
  const line = `[${parts.join(" · ")}]`;
205
212
  return { content: text === "" ? line : `${text}\n\n${line}`, isError };
@@ -1,12 +1,26 @@
1
+ import type { Logger } from "@capybara-hq/plugin-sdk";
2
+ import { BackgroundTaskFinisher } from "../../background/finish.js";
3
+ import { BackgroundTaskStopper } from "../../background/stop.js";
4
+ import { BackgroundTaskStore } from "../../background/store.js";
1
5
  import { AttachmentsService } from "../../conversations/attachments.service.js";
2
6
  import { EventLog } from "../../conversations/event-log.js";
7
+ import { ConversationEnvironments } from "../../environments/conversation-environments.js";
8
+ import { ExtensionPointDefaults } from "../../extensions/point-defaults.js";
3
9
  import { KernelConfigService } from "../../infra/config/kernel-config.service.js";
4
10
  import { KernelDb } from "../../infra/database/kernel-db.js";
11
+ import { ModelPurposesService } from "../../models/purposes.js";
12
+ import { PlatformActor } from "../../platform/actor.js";
13
+ import { AgentDocs } from "../../platform/agent-docs.js";
14
+ import { PlatformOperations } from "../../platform/registry.js";
15
+ import type { HookRunner } from "../../runtime/hook-calls.js";
16
+ import { StepLog } from "../../runtime/step-log.js";
17
+ import { UsageReporter } from "../../runtime/usage-report.js";
5
18
  import { SandboxService } from "../../sandbox/sandbox.service.js";
6
19
  import { SkillChangesService } from "../../skills/changes.service.js";
7
20
  import { StorageService } from "../../storage/storage.service.js";
8
21
  import { ToolOutputs } from "../outputs.js";
9
22
  import type { BuiltinTool } from "../registry.js";
23
+ import { WebPages } from "./web/index.js";
10
24
  /**
11
25
  * The kernel's builtin tools, built once from the injected services (their specs: names,
12
26
  * descriptions and schemas, are the factories' own and unchanged). `ToolSearch` and `Skill`
@@ -15,7 +29,11 @@ import type { BuiltinTool } from "../registry.js";
15
29
  */
16
30
  export declare class BuiltinTools {
17
31
  private readonly tools;
18
- constructor(db: KernelDb, config: KernelConfigService, outputs: ToolOutputs, storage: StorageService, skillChanges: SkillChangesService, attachments: AttachmentsService, eventLog: EventLog, sandbox: SandboxService);
32
+ constructor(db: KernelDb, config: KernelConfigService, outputs: ToolOutputs, storage: StorageService, skillChanges: SkillChangesService, attachments: AttachmentsService, eventLog: EventLog, sandbox: SandboxService, environments: ConversationEnvironments, points: ExtensionPointDefaults, webPages: WebPages,
33
+ /** The WebFetch extraction call: the `web_fetch` purpose, its hooks, usage and denials. */
34
+ purposes: ModelPurposesService, host: {
35
+ readonly hooks?: HookRunner;
36
+ } | undefined, usageReport: UsageReporter, stepLog: StepLog, log: Logger, background: BackgroundTaskStore, finisher: BackgroundTaskFinisher, stopper: BackgroundTaskStopper, platformOps: PlatformOperations, platformActor: PlatformActor, agentDocs: AgentDocs);
19
37
  /** The builtin tools, in a fixed order. */
20
38
  list(): readonly BuiltinTool[];
21
39
  }