@capybara-hq/kernel 0.0.0-stage → 0.1.0-rc.0

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 (631) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +2 -0
  3. package/README.md +20 -2
  4. package/bootstrap.json +22 -0
  5. package/dist/admin/admin.controller.d.ts +139 -0
  6. package/dist/admin/admin.controller.js +238 -0
  7. package/dist/admin/extensions.controller.d.ts +100 -0
  8. package/dist/admin/extensions.controller.js +226 -0
  9. package/dist/admin/setup.controller.d.ts +36 -0
  10. package/dist/admin/setup.controller.js +106 -0
  11. package/dist/admin/setup.service.d.ts +47 -0
  12. package/dist/admin/setup.service.js +90 -0
  13. package/dist/agents/agents.controller.d.ts +205 -0
  14. package/dist/agents/agents.controller.js +144 -0
  15. package/dist/agents/agents.service.d.ts +177 -0
  16. package/dist/agents/agents.service.js +677 -0
  17. package/dist/agents/definition.d.ts +198 -0
  18. package/dist/agents/definition.js +152 -0
  19. package/dist/agents/models.controller.d.ts +13 -0
  20. package/dist/agents/models.controller.js +31 -0
  21. package/dist/agents/templates.controller.d.ts +15 -0
  22. package/dist/agents/templates.controller.js +37 -0
  23. package/dist/agents/templates.d.ts +83 -0
  24. package/dist/agents/templates.js +173 -0
  25. package/dist/catalog/admin-catalog.controller.d.ts +143 -0
  26. package/dist/catalog/admin-catalog.controller.js +245 -0
  27. package/dist/catalog/catalog.service.d.ts +430 -0
  28. package/dist/catalog/catalog.service.js +882 -0
  29. package/dist/catalog/claude/agents.d.ts +27 -0
  30. package/dist/catalog/claude/agents.js +270 -0
  31. package/dist/catalog/claude/commands.d.ts +50 -0
  32. package/dist/catalog/claude/commands.js +179 -0
  33. package/dist/catalog/claude/manifest.d.ts +69 -0
  34. package/dist/catalog/claude/manifest.js +134 -0
  35. package/dist/catalog/claude/marketplace.d.ts +35 -0
  36. package/dist/catalog/claude/marketplace.js +194 -0
  37. package/dist/catalog/claude/mcp.d.ts +33 -0
  38. package/dist/catalog/claude/mcp.js +226 -0
  39. package/dist/catalog/claude/report.d.ts +86 -0
  40. package/dist/catalog/claude/report.js +121 -0
  41. package/dist/catalog/claude/translate.d.ts +56 -0
  42. package/dist/catalog/claude/translate.js +857 -0
  43. package/dist/catalog/cli.d.ts +46 -0
  44. package/dist/catalog/cli.js +211 -0
  45. package/dist/catalog/git-source.d.ts +127 -0
  46. package/dist/catalog/git-source.js +520 -0
  47. package/dist/catalog/marketplace-fetch.d.ts +99 -0
  48. package/dist/catalog/marketplace-fetch.js +203 -0
  49. package/dist/catalog/marketplaces.controller.d.ts +97 -0
  50. package/dist/catalog/marketplaces.controller.js +197 -0
  51. package/dist/catalog/marketplaces.service.d.ts +340 -0
  52. package/dist/catalog/marketplaces.service.js +1217 -0
  53. package/dist/catalog/org-catalog.controller.d.ts +128 -0
  54. package/dist/catalog/org-catalog.controller.js +277 -0
  55. package/dist/catalog/org-catalog.service.d.ts +246 -0
  56. package/dist/catalog/org-catalog.service.js +625 -0
  57. package/dist/catalog/plugin-import.d.ts +436 -0
  58. package/dist/catalog/plugin-import.js +1069 -0
  59. package/dist/catalog/plugin-install.d.ts +447 -0
  60. package/dist/catalog/plugin-install.js +1333 -0
  61. package/dist/catalog/plugin-package.d.ts +143 -0
  62. package/dist/catalog/plugin-package.js +382 -0
  63. package/dist/catalog/plugin-upgrade.d.ts +222 -0
  64. package/dist/catalog/plugin-upgrade.js +1219 -0
  65. package/dist/catalog/requests.service.d.ts +162 -0
  66. package/dist/catalog/requests.service.js +504 -0
  67. package/dist/catalog/schema-path.d.ts +7 -0
  68. package/dist/catalog/schema-path.js +63 -0
  69. package/dist/catalog/upgrade-targets.d.ts +59 -0
  70. package/dist/catalog/upgrade-targets.js +90 -0
  71. package/dist/catalog/versions.d.ts +31 -0
  72. package/dist/catalog/versions.js +44 -0
  73. package/dist/channels/actions.d.ts +37 -0
  74. package/dist/channels/actions.js +121 -0
  75. package/dist/channels/cards.d.ts +44 -0
  76. package/dist/channels/cards.js +156 -0
  77. package/dist/channels/connections.controller.d.ts +59 -0
  78. package/dist/channels/connections.controller.js +115 -0
  79. package/dist/channels/connections.service.d.ts +187 -0
  80. package/dist/channels/connections.service.js +534 -0
  81. package/dist/channels/features.d.ts +12 -0
  82. package/dist/channels/features.js +22 -0
  83. package/dist/channels/inbound.d.ts +120 -0
  84. package/dist/channels/inbound.js +332 -0
  85. package/dist/channels/outbound.d.ts +140 -0
  86. package/dist/channels/outbound.js +1125 -0
  87. package/dist/channels/phrases.d.ts +100 -0
  88. package/dist/channels/phrases.js +81 -0
  89. package/dist/channels/supervisor.d.ts +182 -0
  90. package/dist/channels/supervisor.js +625 -0
  91. package/dist/channels/threads.d.ts +29 -0
  92. package/dist/channels/threads.js +104 -0
  93. package/dist/channels/webhook-url.d.ts +16 -0
  94. package/dist/channels/webhook-url.js +34 -0
  95. package/dist/channels/webhook.controller.d.ts +19 -0
  96. package/dist/channels/webhook.controller.js +72 -0
  97. package/dist/channels/webhook.d.ts +73 -0
  98. package/dist/channels/webhook.js +274 -0
  99. package/dist/config/docs.d.ts +9 -0
  100. package/dist/config/docs.js +85 -0
  101. package/dist/config/env.d.ts +6 -0
  102. package/dist/config/env.js +73 -0
  103. package/dist/config/fields.d.ts +42 -0
  104. package/dist/config/fields.js +214 -0
  105. package/dist/config/file-source.d.ts +3 -0
  106. package/dist/config/file-source.js +31 -0
  107. package/dist/config/load.d.ts +20 -0
  108. package/dist/config/load.js +98 -0
  109. package/dist/config/nacos-source.d.ts +31 -0
  110. package/dist/config/nacos-source.js +229 -0
  111. package/dist/config/schema.d.ts +223 -0
  112. package/dist/config/schema.js +1151 -0
  113. package/dist/config/sources.d.ts +18 -0
  114. package/dist/config/sources.js +59 -0
  115. package/dist/config/types.d.ts +9 -0
  116. package/dist/config/types.js +7 -0
  117. package/dist/conversations/artifacts.d.ts +52 -0
  118. package/dist/conversations/artifacts.js +137 -0
  119. package/dist/conversations/attachments.controller.d.ts +28 -0
  120. package/dist/conversations/attachments.controller.js +96 -0
  121. package/dist/conversations/attachments.service.d.ts +180 -0
  122. package/dist/conversations/attachments.service.js +578 -0
  123. package/dist/conversations/conversations.controller.d.ts +288 -0
  124. package/dist/conversations/conversations.controller.js +607 -0
  125. package/dist/conversations/conversations.service.d.ts +321 -0
  126. package/dist/conversations/conversations.service.js +754 -0
  127. package/dist/conversations/event-log.d.ts +122 -0
  128. package/dist/conversations/event-log.js +259 -0
  129. package/dist/conversations/events.d.ts +856 -0
  130. package/dist/conversations/events.js +639 -0
  131. package/dist/conversations/files.d.ts +92 -0
  132. package/dist/conversations/files.js +213 -0
  133. package/dist/conversations/outputs-read.d.ts +34 -0
  134. package/dist/conversations/outputs-read.js +37 -0
  135. package/dist/conversations/queue.d.ts +169 -0
  136. package/dist/conversations/queue.js +527 -0
  137. package/dist/conversations/sandbox-status.d.ts +21 -0
  138. package/dist/conversations/sandbox-status.js +24 -0
  139. package/dist/conversations/selection.d.ts +46 -0
  140. package/dist/conversations/selection.js +75 -0
  141. package/dist/conversations/titles.d.ts +93 -0
  142. package/dist/conversations/titles.js +422 -0
  143. package/dist/ctx/bus.d.ts +16 -0
  144. package/dist/ctx/bus.js +101 -0
  145. package/dist/ctx/create-ctx.d.ts +109 -0
  146. package/dist/ctx/create-ctx.js +592 -0
  147. package/dist/ctx/kv.d.ts +4 -0
  148. package/dist/ctx/kv.js +31 -0
  149. package/dist/ctx/lock.d.ts +4 -0
  150. package/dist/ctx/lock.js +39 -0
  151. package/dist/ctx/namespace.d.ts +6 -0
  152. package/dist/ctx/namespace.js +12 -0
  153. package/dist/ctx/queue.d.ts +25 -0
  154. package/dist/ctx/queue.js +150 -0
  155. package/dist/ctx/secrets.d.ts +45 -0
  156. package/dist/ctx/secrets.js +175 -0
  157. package/dist/db/kernel-schema.d.ts +1122 -0
  158. package/dist/db/kernel-schema.js +5 -0
  159. package/dist/db/migrator.d.ts +28 -0
  160. package/dist/db/migrator.js +140 -0
  161. package/dist/db/pool.d.ts +21 -0
  162. package/dist/db/pool.js +28 -0
  163. package/dist/db/sql-statements.d.ts +34 -0
  164. package/dist/db/sql-statements.js +168 -0
  165. package/dist/errors.d.ts +210 -0
  166. package/dist/errors.js +212 -0
  167. package/dist/evals/budget.d.ts +61 -0
  168. package/dist/evals/budget.js +181 -0
  169. package/dist/evals/diff.d.ts +55 -0
  170. package/dist/evals/diff.js +133 -0
  171. package/dist/evals/judge.d.ts +53 -0
  172. package/dist/evals/judge.js +149 -0
  173. package/dist/evals/plan.d.ts +47 -0
  174. package/dist/evals/plan.js +77 -0
  175. package/dist/evals/reconstruct.d.ts +137 -0
  176. package/dist/evals/reconstruct.js +322 -0
  177. package/dist/evals/recorded-tools.d.ts +54 -0
  178. package/dist/evals/recorded-tools.js +167 -0
  179. package/dist/evals/run-replay.d.ts +86 -0
  180. package/dist/evals/run-replay.js +502 -0
  181. package/dist/evals/runs.controller.d.ts +100 -0
  182. package/dist/evals/runs.controller.js +199 -0
  183. package/dist/evals/runs.service.d.ts +275 -0
  184. package/dist/evals/runs.service.js +836 -0
  185. package/dist/evals/sets.controller.d.ts +61 -0
  186. package/dist/evals/sets.controller.js +183 -0
  187. package/dist/evals/sets.service.d.ts +128 -0
  188. package/dist/evals/sets.service.js +558 -0
  189. package/dist/evals/snapshot.d.ts +76 -0
  190. package/dist/evals/snapshot.js +207 -0
  191. package/dist/evals/step-replay.d.ts +113 -0
  192. package/dist/evals/step-replay.js +181 -0
  193. package/dist/evals/trajectory.controller.d.ts +41 -0
  194. package/dist/evals/trajectory.controller.js +88 -0
  195. package/dist/evals/trajectory.d.ts +144 -0
  196. package/dist/evals/trajectory.js +338 -0
  197. package/dist/evals/trajectory.service.d.ts +108 -0
  198. package/dist/evals/trajectory.service.js +323 -0
  199. package/dist/evals/worker.d.ts +101 -0
  200. package/dist/evals/worker.js +789 -0
  201. package/dist/extensions/admin-ops.d.ts +105 -0
  202. package/dist/extensions/admin-ops.js +353 -0
  203. package/dist/extensions/admin-view.d.ts +79 -0
  204. package/dist/extensions/admin-view.js +327 -0
  205. package/dist/extensions/approvals.d.ts +119 -0
  206. package/dist/extensions/approvals.js +205 -0
  207. package/dist/extensions/blobs.d.ts +45 -0
  208. package/dist/extensions/blobs.js +160 -0
  209. package/dist/extensions/bootstrap.d.ts +149 -0
  210. package/dist/extensions/bootstrap.js +441 -0
  211. package/dist/extensions/cli.d.ts +61 -0
  212. package/dist/extensions/cli.js +165 -0
  213. package/dist/extensions/config-json-schema.d.ts +9 -0
  214. package/dist/extensions/config-json-schema.js +73 -0
  215. package/dist/extensions/deployment-config.d.ts +138 -0
  216. package/dist/extensions/deployment-config.js +394 -0
  217. package/dist/extensions/enabled.d.ts +31 -0
  218. package/dist/extensions/enabled.js +55 -0
  219. package/dist/extensions/hooks.d.ts +161 -0
  220. package/dist/extensions/hooks.js +425 -0
  221. package/dist/extensions/host.d.ts +577 -0
  222. package/dist/extensions/host.js +2071 -0
  223. package/dist/extensions/inflight.d.ts +69 -0
  224. package/dist/extensions/inflight.js +277 -0
  225. package/dist/extensions/installs.d.ts +166 -0
  226. package/dist/extensions/installs.js +253 -0
  227. package/dist/extensions/instance.d.ts +167 -0
  228. package/dist/extensions/instance.js +329 -0
  229. package/dist/extensions/ledger.d.ts +30 -0
  230. package/dist/extensions/ledger.js +50 -0
  231. package/dist/extensions/lifecycle.d.ts +80 -0
  232. package/dist/extensions/lifecycle.js +152 -0
  233. package/dist/extensions/migrate-lock.d.ts +51 -0
  234. package/dist/extensions/migrate-lock.js +100 -0
  235. package/dist/extensions/org-config.controller.d.ts +24 -0
  236. package/dist/extensions/org-config.controller.js +59 -0
  237. package/dist/extensions/org-config.d.ts +169 -0
  238. package/dist/extensions/org-config.js +520 -0
  239. package/dist/extensions/package.d.ts +115 -0
  240. package/dist/extensions/package.js +246 -0
  241. package/dist/extensions/permission-set.d.ts +117 -0
  242. package/dist/extensions/permission-set.js +184 -0
  243. package/dist/extensions/permission-view.d.ts +194 -0
  244. package/dist/extensions/permission-view.js +284 -0
  245. package/dist/extensions/registry.d.ts +24 -0
  246. package/dist/extensions/registry.js +56 -0
  247. package/dist/extensions/resolve.d.ts +12 -0
  248. package/dist/extensions/resolve.js +71 -0
  249. package/dist/extensions/sources.d.ts +69 -0
  250. package/dist/extensions/sources.js +120 -0
  251. package/dist/extensions/sync.d.ts +40 -0
  252. package/dist/extensions/sync.js +242 -0
  253. package/dist/files/previewers.controller.d.ts +46 -0
  254. package/dist/files/previewers.controller.js +105 -0
  255. package/dist/files/previewers.d.ts +100 -0
  256. package/dist/files/previewers.js +250 -0
  257. package/dist/http/api.module.d.ts +114 -0
  258. package/dist/http/api.module.js +448 -0
  259. package/dist/http/app.d.ts +77 -0
  260. package/dist/http/app.js +170 -0
  261. package/dist/http/error.filter.d.ts +21 -0
  262. package/dist/http/error.filter.js +85 -0
  263. package/dist/http/gateway.module.d.ts +15 -0
  264. package/dist/http/gateway.module.js +13 -0
  265. package/dist/http/health.controller.d.ts +26 -0
  266. package/dist/http/health.controller.js +79 -0
  267. package/dist/http/nest-logger.d.ts +20 -0
  268. package/dist/http/nest-logger.js +28 -0
  269. package/dist/http/plugin-dispatch.d.ts +68 -0
  270. package/dist/http/plugin-dispatch.js +200 -0
  271. package/dist/http/tokens.d.ts +131 -0
  272. package/dist/http/tokens.js +131 -0
  273. package/dist/http/zod.pipe.d.ts +8 -0
  274. package/dist/http/zod.pipe.js +14 -0
  275. package/dist/identity/accounts.d.ts +93 -0
  276. package/dist/identity/accounts.js +367 -0
  277. package/dist/identity/api-tokens.d.ts +73 -0
  278. package/dist/identity/api-tokens.js +197 -0
  279. package/dist/identity/audit.d.ts +23 -0
  280. package/dist/identity/audit.js +41 -0
  281. package/dist/identity/auth.controller.d.ts +40 -0
  282. package/dist/identity/auth.controller.js +130 -0
  283. package/dist/identity/auth.guard.d.ts +41 -0
  284. package/dist/identity/auth.guard.js +162 -0
  285. package/dist/identity/binding.d.ts +47 -0
  286. package/dist/identity/binding.js +84 -0
  287. package/dist/identity/cookies.d.ts +16 -0
  288. package/dist/identity/cookies.js +32 -0
  289. package/dist/identity/credential-check.d.ts +17 -0
  290. package/dist/identity/credential-check.js +24 -0
  291. package/dist/identity/enterprise-admin.d.ts +14 -0
  292. package/dist/identity/enterprise-admin.js +27 -0
  293. package/dist/identity/external.d.ts +106 -0
  294. package/dist/identity/external.js +337 -0
  295. package/dist/identity/hash.d.ts +2 -0
  296. package/dist/identity/hash.js +3 -0
  297. package/dist/identity/login.d.ts +6 -0
  298. package/dist/identity/login.js +20 -0
  299. package/dist/identity/me.controller.d.ts +61 -0
  300. package/dist/identity/me.controller.js +159 -0
  301. package/dist/identity/passwords.d.ts +6 -0
  302. package/dist/identity/passwords.js +37 -0
  303. package/dist/identity/principal.d.ts +56 -0
  304. package/dist/identity/principal.js +38 -0
  305. package/dist/identity/rate-limit.d.ts +55 -0
  306. package/dist/identity/rate-limit.js +121 -0
  307. package/dist/identity/sessions.d.ts +84 -0
  308. package/dist/identity/sessions.js +306 -0
  309. package/dist/identity/settings.d.ts +121 -0
  310. package/dist/identity/settings.js +248 -0
  311. package/dist/identity/sso.controller.d.ts +59 -0
  312. package/dist/identity/sso.controller.js +192 -0
  313. package/dist/identity/sso.d.ts +83 -0
  314. package/dist/identity/sso.js +202 -0
  315. package/dist/inbox/inbox.service.d.ts +43 -0
  316. package/dist/inbox/inbox.service.js +57 -0
  317. package/dist/index.d.ts +67 -0
  318. package/dist/index.js +65 -0
  319. package/dist/kernel.d.ts +256 -0
  320. package/dist/kernel.js +1326 -0
  321. package/dist/log.d.ts +48 -0
  322. package/dist/log.js +229 -0
  323. package/dist/models/prices.d.ts +53 -0
  324. package/dist/models/prices.js +121 -0
  325. package/dist/models/purposes.controller.d.ts +19 -0
  326. package/dist/models/purposes.controller.js +56 -0
  327. package/dist/models/purposes.d.ts +140 -0
  328. package/dist/models/purposes.js +267 -0
  329. package/dist/net/proxy.d.ts +44 -0
  330. package/dist/net/proxy.js +162 -0
  331. package/dist/net/public-address.d.ts +60 -0
  332. package/dist/net/public-address.js +271 -0
  333. package/dist/net/safe-fetch.d.ts +38 -0
  334. package/dist/net/safe-fetch.js +140 -0
  335. package/dist/orgs/directory-sync.controller.d.ts +14 -0
  336. package/dist/orgs/directory-sync.controller.js +40 -0
  337. package/dist/orgs/directory-sync.d.ts +166 -0
  338. package/dist/orgs/directory-sync.js +558 -0
  339. package/dist/orgs/invitations.controller.d.ts +58 -0
  340. package/dist/orgs/invitations.controller.js +137 -0
  341. package/dist/orgs/invitations.service.d.ts +80 -0
  342. package/dist/orgs/invitations.service.js +217 -0
  343. package/dist/orgs/members.service.d.ts +63 -0
  344. package/dist/orgs/members.service.js +234 -0
  345. package/dist/orgs/offboarding.d.ts +141 -0
  346. package/dist/orgs/offboarding.js +398 -0
  347. package/dist/orgs/org-lock.d.ts +32 -0
  348. package/dist/orgs/org-lock.js +46 -0
  349. package/dist/orgs/org.guard.d.ts +35 -0
  350. package/dist/orgs/org.guard.js +95 -0
  351. package/dist/orgs/orgs.controller.d.ts +78 -0
  352. package/dist/orgs/orgs.controller.js +192 -0
  353. package/dist/orgs/orgs.service.d.ts +61 -0
  354. package/dist/orgs/orgs.service.js +209 -0
  355. package/dist/orgs/roles.d.ts +13 -0
  356. package/dist/orgs/roles.js +58 -0
  357. package/dist/orgs/settings.controller.d.ts +20 -0
  358. package/dist/orgs/settings.controller.js +53 -0
  359. package/dist/orgs/settings.service.d.ts +120 -0
  360. package/dist/orgs/settings.service.js +178 -0
  361. package/dist/packages/npm.d.ts +50 -0
  362. package/dist/packages/npm.js +218 -0
  363. package/dist/packages/provenance.d.ts +47 -0
  364. package/dist/packages/provenance.js +147 -0
  365. package/dist/packages/tgz.d.ts +76 -0
  366. package/dist/packages/tgz.js +225 -0
  367. package/dist/runtime/abort.d.ts +32 -0
  368. package/dist/runtime/abort.js +71 -0
  369. package/dist/runtime/checkpointer.d.ts +32 -0
  370. package/dist/runtime/checkpointer.js +243 -0
  371. package/dist/runtime/context/build.d.ts +254 -0
  372. package/dist/runtime/context/build.js +693 -0
  373. package/dist/runtime/context/claude-tools.d.ts +11 -0
  374. package/dist/runtime/context/claude-tools.js +24 -0
  375. package/dist/runtime/context/compaction.d.ts +26 -0
  376. package/dist/runtime/context/compaction.js +195 -0
  377. package/dist/runtime/context/pairing.d.ts +11 -0
  378. package/dist/runtime/context/pairing.js +82 -0
  379. package/dist/runtime/context/reminders.d.ts +5 -0
  380. package/dist/runtime/context/reminders.js +11 -0
  381. package/dist/runtime/context/skills.d.ts +105 -0
  382. package/dist/runtime/context/skills.js +283 -0
  383. package/dist/runtime/context/tokens.d.ts +19 -0
  384. package/dist/runtime/context/tokens.js +104 -0
  385. package/dist/runtime/conversation-lock.d.ts +40 -0
  386. package/dist/runtime/conversation-lock.js +97 -0
  387. package/dist/runtime/hook-calls.d.ts +84 -0
  388. package/dist/runtime/hook-calls.js +136 -0
  389. package/dist/runtime/langgraph-loop.d.ts +52 -0
  390. package/dist/runtime/langgraph-loop.js +247 -0
  391. package/dist/runtime/loop.d.ts +93 -0
  392. package/dist/runtime/loop.js +7 -0
  393. package/dist/runtime/maintenance.d.ts +80 -0
  394. package/dist/runtime/maintenance.js +147 -0
  395. package/dist/runtime/media-cache.d.ts +21 -0
  396. package/dist/runtime/media-cache.js +51 -0
  397. package/dist/runtime/model-call.d.ts +176 -0
  398. package/dist/runtime/model-call.js +1049 -0
  399. package/dist/runtime/providers.d.ts +86 -0
  400. package/dist/runtime/providers.js +224 -0
  401. package/dist/runtime/quota.d.ts +29 -0
  402. package/dist/runtime/quota.js +70 -0
  403. package/dist/runtime/run-finish.d.ts +45 -0
  404. package/dist/runtime/run-finish.js +69 -0
  405. package/dist/runtime/run-queue.d.ts +121 -0
  406. package/dist/runtime/run-queue.js +493 -0
  407. package/dist/runtime/run-worker.d.ts +138 -0
  408. package/dist/runtime/run-worker.js +805 -0
  409. package/dist/runtime/stream.controller.d.ts +34 -0
  410. package/dist/runtime/stream.controller.js +122 -0
  411. package/dist/runtime/stream.d.ts +63 -0
  412. package/dist/runtime/stream.js +262 -0
  413. package/dist/runtime/subagents/child.d.ts +80 -0
  414. package/dist/runtime/subagents/child.js +225 -0
  415. package/dist/runtime/subagents/definition.d.ts +103 -0
  416. package/dist/runtime/subagents/definition.js +392 -0
  417. package/dist/runtime/subagents/dispatch.d.ts +69 -0
  418. package/dist/runtime/subagents/dispatch.js +502 -0
  419. package/dist/runtime/subagents/limits.d.ts +23 -0
  420. package/dist/runtime/subagents/limits.js +34 -0
  421. package/dist/runtime/subagents/org-agents.d.ts +50 -0
  422. package/dist/runtime/subagents/org-agents.js +70 -0
  423. package/dist/runtime/subagents/preamble.d.ts +7 -0
  424. package/dist/runtime/subagents/preamble.js +11 -0
  425. package/dist/runtime/subagents/progress.d.ts +26 -0
  426. package/dist/runtime/subagents/progress.js +36 -0
  427. package/dist/runtime/subagents/roster.d.ts +55 -0
  428. package/dist/runtime/subagents/roster.js +111 -0
  429. package/dist/runtime/subagents/skill-fork.d.ts +123 -0
  430. package/dist/runtime/subagents/skill-fork.js +259 -0
  431. package/dist/runtime/usage-report.d.ts +163 -0
  432. package/dist/runtime/usage-report.js +550 -0
  433. package/dist/runtime/waits.d.ts +233 -0
  434. package/dist/runtime/waits.js +883 -0
  435. package/dist/sandbox/leases.d.ts +169 -0
  436. package/dist/sandbox/leases.js +515 -0
  437. package/dist/sandbox/lifecycle.d.ts +21 -0
  438. package/dist/sandbox/lifecycle.js +68 -0
  439. package/dist/sandbox/sandbox.service.d.ts +249 -0
  440. package/dist/sandbox/sandbox.service.js +908 -0
  441. package/dist/skills/catalog.d.ts +149 -0
  442. package/dist/skills/catalog.js +405 -0
  443. package/dist/skills/changes.controller.d.ts +56 -0
  444. package/dist/skills/changes.controller.js +136 -0
  445. package/dist/skills/changes.service.d.ts +175 -0
  446. package/dist/skills/changes.service.js +805 -0
  447. package/dist/skills/invocable.controller.d.ts +23 -0
  448. package/dist/skills/invocable.controller.js +50 -0
  449. package/dist/skills/invocation-keys.d.ts +23 -0
  450. package/dist/skills/invocation-keys.js +44 -0
  451. package/dist/skills/invoke.d.ts +135 -0
  452. package/dist/skills/invoke.js +286 -0
  453. package/dist/skills/package.d.ts +87 -0
  454. package/dist/skills/package.js +227 -0
  455. package/dist/skills/skills.controller.d.ts +40 -0
  456. package/dist/skills/skills.controller.js +110 -0
  457. package/dist/skills/skills.service.d.ts +192 -0
  458. package/dist/skills/skills.service.js +567 -0
  459. package/dist/storage/prefix.d.ts +36 -0
  460. package/dist/storage/prefix.js +104 -0
  461. package/dist/storage/purge.d.ts +27 -0
  462. package/dist/storage/purge.js +75 -0
  463. package/dist/storage/storage.service.d.ts +44 -0
  464. package/dist/storage/storage.service.js +145 -0
  465. package/dist/text.d.ts +13 -0
  466. package/dist/text.js +13 -0
  467. package/dist/tools/approvals.controller.d.ts +53 -0
  468. package/dist/tools/approvals.controller.js +128 -0
  469. package/dist/tools/approvals.service.d.ts +172 -0
  470. package/dist/tools/approvals.service.js +568 -0
  471. package/dist/tools/breaker.d.ts +28 -0
  472. package/dist/tools/breaker.js +72 -0
  473. package/dist/tools/builtins/agent.d.ts +81 -0
  474. package/dist/tools/builtins/agent.js +223 -0
  475. package/dist/tools/builtins/ask-user.d.ts +28 -0
  476. package/dist/tools/builtins/ask-user.js +139 -0
  477. package/dist/tools/builtins/read-tool-output.d.ts +18 -0
  478. package/dist/tools/builtins/read-tool-output.js +108 -0
  479. package/dist/tools/builtins/sandbox/bash.d.ts +16 -0
  480. package/dist/tools/builtins/sandbox/bash.js +137 -0
  481. package/dist/tools/builtins/sandbox/common.d.ts +114 -0
  482. package/dist/tools/builtins/sandbox/common.js +304 -0
  483. package/dist/tools/builtins/sandbox/deliver.d.ts +5 -0
  484. package/dist/tools/builtins/sandbox/deliver.js +180 -0
  485. package/dist/tools/builtins/sandbox/edit.d.ts +4 -0
  486. package/dist/tools/builtins/sandbox/edit.js +98 -0
  487. package/dist/tools/builtins/sandbox/glob-match.d.ts +25 -0
  488. package/dist/tools/builtins/sandbox/glob-match.js +240 -0
  489. package/dist/tools/builtins/sandbox/glob.d.ts +4 -0
  490. package/dist/tools/builtins/sandbox/glob.js +104 -0
  491. package/dist/tools/builtins/sandbox/grep.d.ts +9 -0
  492. package/dist/tools/builtins/sandbox/grep.js +133 -0
  493. package/dist/tools/builtins/sandbox/index.d.ts +12 -0
  494. package/dist/tools/builtins/sandbox/index.js +27 -0
  495. package/dist/tools/builtins/sandbox/names.d.ts +7 -0
  496. package/dist/tools/builtins/sandbox/names.js +20 -0
  497. package/dist/tools/builtins/sandbox/read.d.ts +8 -0
  498. package/dist/tools/builtins/sandbox/read.js +121 -0
  499. package/dist/tools/builtins/sandbox/write.d.ts +4 -0
  500. package/dist/tools/builtins/sandbox/write.js +88 -0
  501. package/dist/tools/builtins/skill-load.d.ts +53 -0
  502. package/dist/tools/builtins/skill-load.js +446 -0
  503. package/dist/tools/builtins/skill-write.d.ts +59 -0
  504. package/dist/tools/builtins/skill-write.js +244 -0
  505. package/dist/tools/builtins/tool-search.d.ts +31 -0
  506. package/dist/tools/builtins/tool-search.js +171 -0
  507. package/dist/tools/connector-content.controller.d.ts +34 -0
  508. package/dist/tools/connector-content.controller.js +78 -0
  509. package/dist/tools/connector-content.d.ts +104 -0
  510. package/dist/tools/connector-content.js +267 -0
  511. package/dist/tools/connectors.controller.d.ts +210 -0
  512. package/dist/tools/connectors.controller.js +234 -0
  513. package/dist/tools/connectors.service.d.ts +303 -0
  514. package/dist/tools/connectors.service.js +1102 -0
  515. package/dist/tools/credentials.d.ts +139 -0
  516. package/dist/tools/credentials.js +351 -0
  517. package/dist/tools/drift.d.ts +141 -0
  518. package/dist/tools/drift.js +539 -0
  519. package/dist/tools/elicitation.d.ts +81 -0
  520. package/dist/tools/elicitation.js +266 -0
  521. package/dist/tools/endpoint.d.ts +18 -0
  522. package/dist/tools/endpoint.js +115 -0
  523. package/dist/tools/info.d.ts +67 -0
  524. package/dist/tools/info.js +113 -0
  525. package/dist/tools/naming.d.ts +27 -0
  526. package/dist/tools/naming.js +47 -0
  527. package/dist/tools/oauth/discovery.d.ts +65 -0
  528. package/dist/tools/oauth/discovery.js +307 -0
  529. package/dist/tools/oauth/flow.d.ts +63 -0
  530. package/dist/tools/oauth/flow.js +237 -0
  531. package/dist/tools/oauth/oauth.controller.d.ts +31 -0
  532. package/dist/tools/oauth/oauth.controller.js +95 -0
  533. package/dist/tools/oauth/tokens.d.ts +111 -0
  534. package/dist/tools/oauth/tokens.js +258 -0
  535. package/dist/tools/outputs.d.ts +61 -0
  536. package/dist/tools/outputs.js +156 -0
  537. package/dist/tools/pipeline.d.ts +322 -0
  538. package/dist/tools/pipeline.js +1236 -0
  539. package/dist/tools/policy.d.ts +60 -0
  540. package/dist/tools/policy.js +236 -0
  541. package/dist/tools/questions.controller.d.ts +24 -0
  542. package/dist/tools/questions.controller.js +58 -0
  543. package/dist/tools/questions.service.d.ts +103 -0
  544. package/dist/tools/questions.service.js +295 -0
  545. package/dist/tools/redact.d.ts +20 -0
  546. package/dist/tools/redact.js +60 -0
  547. package/dist/tools/registry.d.ts +246 -0
  548. package/dist/tools/registry.js +481 -0
  549. package/dist/tools/resources.d.ts +16 -0
  550. package/dist/tools/resources.js +76 -0
  551. package/dist/tools/specs.d.ts +14 -0
  552. package/dist/tools/specs.js +31 -0
  553. package/dist/tools/validate.d.ts +20 -0
  554. package/dist/tools/validate.js +183 -0
  555. package/dist/tools/view.d.ts +43 -0
  556. package/dist/tools/view.js +225 -0
  557. package/dist/ui/embed-token.d.ts +31 -0
  558. package/dist/ui/embed-token.js +132 -0
  559. package/dist/ui/registry.d.ts +58 -0
  560. package/dist/ui/registry.js +90 -0
  561. package/dist/ui/ui-stream.d.ts +37 -0
  562. package/dist/ui/ui-stream.js +162 -0
  563. package/dist/ui/views.controller.d.ts +81 -0
  564. package/dist/ui/views.controller.js +261 -0
  565. package/dist/ui/views.d.ts +155 -0
  566. package/dist/ui/views.js +306 -0
  567. package/dist/version.d.ts +5 -0
  568. package/dist/version.js +6 -0
  569. package/package.json +67 -3
  570. package/src/migrations/0001_init.sql +8 -0
  571. package/src/migrations/0002_secrets.sql +8 -0
  572. package/src/migrations/0003_identity.sql +117 -0
  573. package/src/migrations/0004_plugin_org_config_nullable.sql +3 -0
  574. package/src/migrations/0005_agents.sql +27 -0
  575. package/src/migrations/0006_conversations.sql +37 -0
  576. package/src/migrations/0007_checkpoints.sql +26 -0
  577. package/src/migrations/0008_runs_trigger_seq.sql +3 -0
  578. package/src/migrations/0009_runs_active_unique.sql +4 -0
  579. package/src/migrations/0010_tools.sql +125 -0
  580. package/src/migrations/0011_approvals_spec.sql +10 -0
  581. package/src/migrations/0012_run_waits.sql +24 -0
  582. package/src/migrations/0013_app_tools_source.sql +4 -0
  583. package/src/migrations/0014_tool_specs.sql +8 -0
  584. package/src/migrations/0015_tool_drift.sql +20 -0
  585. package/src/migrations/0016_plugin_permissions.sql +11 -0
  586. package/src/migrations/0017_identity_sources.sql +6 -0
  587. package/src/migrations/0018_channels.sql +74 -0
  588. package/src/migrations/0019_identity_trust.sql +17 -0
  589. package/src/migrations/0020_channel_card_lookup.sql +10 -0
  590. package/src/migrations/0021_org_storage_purge.sql +9 -0
  591. package/src/migrations/0022_attachments.sql +29 -0
  592. package/src/migrations/0023_sandboxes.sql +37 -0
  593. package/src/migrations/0024_skills.sql +46 -0
  594. package/src/migrations/0025_skills_catalog_idx.sql +6 -0
  595. package/src/migrations/0026_skill_changes.sql +34 -0
  596. package/src/migrations/0027_model_prices.sql +18 -0
  597. package/src/migrations/0028_evals.sql +105 -0
  598. package/src/migrations/0029_model_purposes.sql +18 -0
  599. package/src/migrations/0030_plugin_installs.sql +73 -0
  600. package/src/migrations/0031_plugin_snapshot_source.sql +6 -0
  601. package/src/migrations/0032_plugin_deployment_configs.sql +10 -0
  602. package/src/migrations/0033_rename_apps_to_connectors.sql +25 -0
  603. package/src/migrations/0034_directory.sql +49 -0
  604. package/src/migrations/0035_catalogs.sql +40 -0
  605. package/src/migrations/0036_app_import_staging.sql +17 -0
  606. package/src/migrations/0037_directory_installs.sql +92 -0
  607. package/src/migrations/0038_channel_inbound_mode.sql +6 -0
  608. package/src/migrations/0039_channel_card_pending.sql +8 -0
  609. package/src/migrations/0040_usage_report_sweep.sql +10 -0
  610. package/src/migrations/0041_rename_plugins_to_extensions.sql +38 -0
  611. package/src/migrations/0042_rename_directory_to_catalog.sql +80 -0
  612. package/src/migrations/0043_rename_app_installs_to_plugin_installs.sql +20 -0
  613. package/src/migrations/0044_catalog_one_kind.sql +90 -0
  614. package/src/migrations/0045_plugin_dependencies.sql +9 -0
  615. package/src/migrations/0046_git_sources.sql +25 -0
  616. package/src/migrations/0047_marketplace_entry_heads.sql +7 -0
  617. package/src/migrations/0048_marketplace_entry_trees.sql +8 -0
  618. package/src/migrations/0049_plugin_upgrades.sql +37 -0
  619. package/src/migrations/0050_bootstrap.sql +53 -0
  620. package/src/migrations/0051_claude_compat.sql +26 -0
  621. package/src/migrations/0052_conversations_account_agent_idx.sql +5 -0
  622. package/src/migrations/0053_subagents.sql +73 -0
  623. package/src/migrations/0054_subagent_wait_expiry.sql +7 -0
  624. package/src/migrations/0055_subagent_parent_indexes.sql +10 -0
  625. package/src/migrations/0056_approval_reason.sql +3 -0
  626. package/src/migrations/0057_conversation_titles.sql +11 -0
  627. package/src/migrations/0058_conversation_selection.sql +4 -0
  628. package/src/migrations/0059_conversation_queue.sql +22 -0
  629. package/src/migrations/0060_file_previewers.sql +10 -0
  630. package/src/migrations/0061_queue_selection.sql +5 -0
  631. package/src/migrations/0062_queued_skill.sql +8 -0
@@ -0,0 +1,639 @@
1
+ import { DOCUMENT_MEDIA_TYPES, hasControlChars, IMAGE_MEDIA_TYPES, isAttachmentId, isSkillName, MEDIA_NAME_MAX_CHARS, } from "@capybara-hq/plugin-sdk";
2
+ import { z } from "zod";
3
+ import { AgentDefinitionSchema, AgentToolRef, ModelRef } from "../agents/definition.js";
4
+ import { TOOL_VIEW_DIFF_MAX_LINES, TOOL_VIEW_LINE_MAX_CHARS, TOOL_VIEW_PATH_MAX_CHARS, } from "../tools/view.js";
5
+ /** 供应商私有数据(`ProviderOpaque`):原样保存、只回放给同一供应商。 */
6
+ const ProviderOpaqueSchema = z.object({
7
+ provider: z.string(),
8
+ model: z.string(),
9
+ data: z.unknown(),
10
+ });
11
+ /**
12
+ * 日志里的媒体来源:只有附件引用。字节(`base64`)绝不进事件日志——日志是事实源、字节不是;
13
+ * 构建模型请求时内核按 `attachmentId` 取字节换成 `base64`(见 {@link LogContentBlock})。
14
+ */
15
+ const AttachmentIdSchema = z.string().refine(isAttachmentId, "attachmentId must be a UUID");
16
+ const RefMediaSourceSchema = z.object({
17
+ kind: z.literal("ref"),
18
+ attachmentId: AttachmentIdSchema,
19
+ });
20
+ /** The longest deny reason (characters): the decision route's limit and `approval_decided.reason`'s. */
21
+ export const APPROVAL_DENY_REASON_MAX_CHARS = 500;
22
+ /** 一条 `media_excluded` 事件最多的附件数。 */
23
+ export const MEDIA_EXCLUDED_MAX_IDS = 50;
24
+ /** 一份 `skills_catalog` 快照最多的技能数(组织技能引用上限 100,余量给 agent 自己的技能)。 */
25
+ export const SKILLS_CATALOG_MAX = 1000;
26
+ /** The longest pinned skill body in a `skills_catalog` snapshot (the pinned total is ≤ 32768 bytes). */
27
+ export const PINNED_BODY_MAX_CHARS = 32768;
28
+ /** 媒体块的名字:与 plugin-sdk `validateMediaBlock` 同规则(≤255 字符、不含控制字符)。 */
29
+ const MediaNameSchema = z
30
+ .string()
31
+ .max(MEDIA_NAME_MAX_CHARS)
32
+ .refine((s) => !hasControlChars(s), "name must not contain control characters");
33
+ const ArtifactNameSchema = MediaNameSchema.min(1);
34
+ /** 产物名(`artifact_created.name`)是否合法:与日志 schema 同一规则(非空、≤255、不含控制字符)。 */
35
+ export const isValidArtifactName = (name) => ArtifactNameSchema.safeParse(name).success;
36
+ /**
37
+ * 日志里的内容块:plugin-sdk 的 `ContentBlock`,但 image / document 的 `source` 只能是 `ref`
38
+ * (写入时用这个 schema 校验,带 `base64` 的块被拒绝)。
39
+ */
40
+ export const ContentBlockSchema = z.discriminatedUnion("type", [
41
+ z.object({ type: z.literal("text"), text: z.string(), opaque: ProviderOpaqueSchema.optional() }),
42
+ z.object({
43
+ type: z.literal("thinking"),
44
+ text: z.string(),
45
+ opaque: ProviderOpaqueSchema.optional(),
46
+ }),
47
+ z.object({
48
+ type: z.literal("tool_call"),
49
+ id: z.string(),
50
+ name: z.string(),
51
+ input: z.unknown(),
52
+ opaque: ProviderOpaqueSchema.optional(),
53
+ }),
54
+ z.object({
55
+ type: z.literal("tool_result"),
56
+ callId: z.string(),
57
+ content: z.string(),
58
+ isError: z.boolean(),
59
+ }),
60
+ z.object({
61
+ type: z.literal("image"),
62
+ mediaType: z.enum(IMAGE_MEDIA_TYPES),
63
+ source: RefMediaSourceSchema,
64
+ name: MediaNameSchema.optional(),
65
+ }),
66
+ z.object({
67
+ type: z.literal("document"),
68
+ mediaType: z.enum(DOCUMENT_MEDIA_TYPES),
69
+ source: RefMediaSourceSchema,
70
+ name: MediaNameSchema.optional(),
71
+ }),
72
+ ]);
73
+ const STOP_REASONS = ["end_turn", "tool_use", "max_tokens", "refusal", "other"];
74
+ /** The standard effort values (plugin-sdk `EFFORT_VALUES`, as a tuple for zod). */
75
+ const EFFORT_ENUM = ["low", "medium", "high", "xhigh", "max"];
76
+ const seqNo = z.number().int().nonnegative();
77
+ const count = z.number().int().nonnegative();
78
+ /**
79
+ * Structured view of a builtin tool's result (UI refresh B, spec §5.5 / §5.9): display only, like
80
+ * `display`. `command`: `sandbox_bash` (the model's `description`, the exit code, null when the
81
+ * command was stopped, and whether it timed out; the web shows "Failed" for a non-zero exit even
82
+ * though `isError` stays false); `edit`: `sandbox_edit` / `sandbox_write` (a capped line diff);
83
+ * `read`: `sandbox_read` (the line range shown).
84
+ */
85
+ export const ToolViewSchema = z.discriminatedUnion("kind", [
86
+ z.object({
87
+ kind: z.literal("command"),
88
+ description: z.string().max(120).optional(),
89
+ exitCode: z.number().int().nullable(),
90
+ timedOut: z.boolean(),
91
+ }),
92
+ z.object({
93
+ kind: z.literal("edit"),
94
+ path: z.string().max(TOOL_VIEW_PATH_MAX_CHARS),
95
+ created: z.boolean(),
96
+ added: count,
97
+ removed: count,
98
+ truncated: z.boolean(),
99
+ hunks: z
100
+ .array(z.object({
101
+ oldStart: count,
102
+ newStart: count,
103
+ lines: z
104
+ .array(z.object({
105
+ kind: z.enum(["ctx", "add", "del"]),
106
+ text: z.string().max(TOOL_VIEW_LINE_MAX_CHARS),
107
+ }))
108
+ .max(TOOL_VIEW_DIFF_MAX_LINES),
109
+ }))
110
+ .max(TOOL_VIEW_DIFF_MAX_LINES),
111
+ }),
112
+ z.object({
113
+ kind: z.literal("read"),
114
+ path: z.string().max(TOOL_VIEW_PATH_MAX_CHARS),
115
+ fromLine: count.optional(),
116
+ toLine: count.optional(),
117
+ }),
118
+ ]);
119
+ const ModelUsageShape = {
120
+ inputTokens: count,
121
+ outputTokens: count,
122
+ cacheReadTokens: count,
123
+ cacheWriteTokens: count,
124
+ };
125
+ /** 双语或纯文本(plugin-sdk `InputForm` 的文案字段)。 */
126
+ const FormTextSchema = z.union([z.string(), z.object({ zh: z.string(), en: z.string() })]);
127
+ /** 交互表单(plugin-sdk 的 `InputForm`;字段 schema 已由 `validateInputForm` 校验过,这里只记形状)。 */
128
+ const InputFormSchema = z.object({
129
+ title: FormTextSchema,
130
+ /** 需要用户在浏览器里打开的外部页面(MCP URL 模式的 elicitation)。较早的事件没有。 */
131
+ url: z.string().optional(),
132
+ fields: z.array(z.object({
133
+ key: z.string(),
134
+ label: FormTextSchema,
135
+ description: FormTextSchema.optional(),
136
+ schema: z.record(z.string(), z.unknown()),
137
+ multiSelect: z.boolean().optional(),
138
+ allowOther: z.boolean().optional(),
139
+ required: z.boolean().optional(),
140
+ })),
141
+ });
142
+ /** 表单答案(plugin-sdk 的 `FormAnswer`)。 */
143
+ const FormAnswerSchema = z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.array(z.string())]));
144
+ const ev = (type, payload) => z.object({ type: z.literal(type), payload });
145
+ /**
146
+ * 会话事件(`type` + `payload`)的判别联合。事件日志只追加,写入前用它校验 payload;
147
+ * 读出时按写入时的形状原样返回。
148
+ */
149
+ export const ConversationEventSchema = z.discriminatedUnion("type", [
150
+ ev("user_message", z.object({
151
+ content: z.array(ContentBlockSchema),
152
+ /**
153
+ * `@` 资源引用的附件元数据:第 i 个附件的正文是 `content[i + 1]`(`content[0]` 是用户输入的文本)。
154
+ * 界面据此把附件显示为条目而不是正文。较早的事件没有。`appId` / `appName` 是连接器的 id 与名称:
155
+ * 「应用」改名「连接器」后字段名不变(D17 / C27:日志确定性)。
156
+ */
157
+ attachments: z
158
+ .array(z.object({ appId: z.string(), appName: z.string(), uri: z.string(), name: z.string() }))
159
+ .optional(),
160
+ authorAccountId: z.string(),
161
+ clientMessageId: z.string().optional(),
162
+ /**
163
+ * A retry after a failed run (UI refresh B): the seq of the message it repeats. Display only
164
+ * (the page folds it into the failed divider); the model sees the message itself.
165
+ */
166
+ retryOf: seqNo.optional(),
167
+ /**
168
+ * A person's skill invocation (`/name args`, phase D spec §4.3): which skill version was
169
+ * rendered into `content[0]`, with the arguments as typed (trimmed). Not model-visible (the
170
+ * rendered text is); the web renders the chip and the arguments from it. `name` is the
171
+ * skill's bare name, `plugin` its catalog item; `agentType` is set for `mode: "fork"`.
172
+ */
173
+ skill: z
174
+ .object({
175
+ id: z.string(),
176
+ version: z.number().int(),
177
+ source: z.string(),
178
+ name: z.string(),
179
+ plugin: z.string().optional(),
180
+ arguments: z.string(),
181
+ mode: z.enum(["inline", "fork"]),
182
+ agentType: z.string().optional(),
183
+ })
184
+ .optional(),
185
+ /**
186
+ * Set on a sub-agent's task message (phase C, spec §6.3): which parent call dispatched it.
187
+ * Not model-visible; the web renders the message as the task block.
188
+ */
189
+ dispatch: z
190
+ .object({
191
+ parentConversationId: z.string(),
192
+ parentRunId: z.string(),
193
+ callId: z.string(),
194
+ /**
195
+ * A follow-up (`resume`, final review I1): the frozen tools and org skills intersected
196
+ * with the current version (`narrowFollowUp`); the child's run uses these instead of
197
+ * the frozen ones. Absent on a first dispatch and in older logs.
198
+ */
199
+ narrowed: z
200
+ .object({
201
+ tools: z.array(AgentToolRef),
202
+ skills: z
203
+ .object({ orgSkills: z.array(z.string()), pinned: z.array(z.string()).optional() })
204
+ .optional(),
205
+ })
206
+ .optional(),
207
+ })
208
+ .optional(),
209
+ })),
210
+ /**
211
+ * The person switched the conversation's model or effort (UI refresh B), written just before the
212
+ * message that carried the switch; or the kernel fell back to the agent's model because the
213
+ * switched-to one no longer resolves (`reason: "unavailable"`, `byAccountId: null`, written by
214
+ * that run before its `run_started`). Applies from the next run that starts (`selectionAt`). Not
215
+ * model-visible itself: its effect is recorded per request in `model_call` (model and params).
216
+ */
217
+ ev("model_switched", z.object({
218
+ /** null = back to the agent's model. */
219
+ model: ModelRef.nullable(),
220
+ /** null = the agent's saved effort or the model's default. */
221
+ effort: z.enum(EFFORT_ENUM).nullable(),
222
+ /** null = the kernel (fallback). */
223
+ byAccountId: z.string().nullable(),
224
+ reason: z.enum(["user", "unavailable"]),
225
+ })),
226
+ ev("run_started", z.object({
227
+ agentVersion: z.number().int().positive(),
228
+ model: ModelRef,
229
+ triggerAccountId: z.string(),
230
+ })),
231
+ ev("model_call", z.object({
232
+ step: count,
233
+ attempt: count,
234
+ provider: z.string(),
235
+ model: z.string(),
236
+ fallback: z.boolean(),
237
+ request: z.object({
238
+ fromSeq: seqNo,
239
+ toSeq: seqNo,
240
+ summarySeq: seqNo.nullable(),
241
+ systemHash: z.string(),
242
+ reminderSeqs: z.array(seqNo),
243
+ /** 本次请求的输出上限(`min(模型上限, maxOutputTokens 旋钮 ?? runtime.maxOutputTokens)`)。较早的事件可能没有。 */
244
+ maxOutputTokens: count.optional(),
245
+ /**
246
+ * 本次请求的模型参数(`ModelRequest.params`):agent 保存的参数按该模型声明 sanitize 后的结果
247
+ * (已补默认值)。主模型尝试来自 `modelParams`,兜底尝试来自 `fallbackParams`。较早的事件可能没有。
248
+ */
249
+ params: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional(),
250
+ /** sanitize 时丢弃的参数键(未声明或值不再合法,如插件升级后);没有丢弃时不写。 */
251
+ droppedParams: z.array(z.string()).optional(),
252
+ /**
253
+ * 发出请求时的输入 token 估算(未校正)。与随后 `usage.inputTokens` 一起供下一次
254
+ * `calibrate` 使用。较早的事件可能没有。
255
+ */
256
+ estimatedInputTokens: count.optional(),
257
+ /**
258
+ * 发出请求时 loop 已吸收到的 user_message seq(R31):seq 更大的 user_message 不进本次请求
259
+ * (由后续步骤吸收或触发下一轮)。还原请求时据此放置 / 排除用户消息。较早的事件可能没有。
260
+ */
261
+ absorbedUpToSeq: seqNo.optional(),
262
+ /**
263
+ * 本次请求带给模型的工具(按发送顺序:未启用 tool_search 时按 key 排序;启用时为内置工具按 key 排序,
264
+ * 其后是已加载工具按首次加载顺序)及其定义指纹(`ResolvedTool.specHash`)。
265
+ * 模型不支持工具时为空数组。较早的事件可能没有。
266
+ */
267
+ tools: z.array(z.object({ key: z.string(), specHash: z.string() })).optional(),
268
+ /**
269
+ * 启用 tool_search 时 system 第二块目录里的工具(按 key 排序)及定义指纹;定义同样存在
270
+ * `capybara.tool_specs`,目录文本可由它们还原。未启用时不写。
271
+ */
272
+ catalog: z.array(z.object({ key: z.string(), specHash: z.string() })).optional(),
273
+ /**
274
+ * 本次请求的 `toolChoice`:收尾调用为 `"none"`(照常带工具,但不得调用);普通步骤不写(由模型决定)。
275
+ * 定义本身按 specHash 存在 `capybara.tool_specs`。
276
+ */
277
+ toolChoice: z.enum(["auto", "none"]).optional(),
278
+ /**
279
+ * 请求里每个附件的处理结果(Ruling M8,按首次出现,同一附件一条):发了字节(`bytes`,带 finalize 时的
280
+ * etag)、内联文本、模型不支持的占位、因请求媒体预算省略(`omitted`)、图片太多(`too_many_images`)、
281
+ * 单个超过供应商上限(`too_large`)、不再可用、PDF 页数太多、
282
+ * 被 `media_excluded` 排除。没有媒体时不写;较早的事件没有。
283
+ */
284
+ media: z
285
+ .array(z.object({
286
+ attachmentId: AttachmentIdSchema,
287
+ outcome: z.enum([
288
+ "bytes",
289
+ "inline",
290
+ "placeholder_unsupported",
291
+ "omitted",
292
+ "too_many_images",
293
+ "too_large",
294
+ "unavailable",
295
+ "too_many_pages",
296
+ "excluded",
297
+ ]),
298
+ etag: z.string().max(1024).optional(),
299
+ }))
300
+ .optional(),
301
+ /**
302
+ * 本次请求的媒体字节预算(`attachments.requestMediaBytes`,见 planMedia):请求里有媒体时才写,
303
+ * 还原时用它重现同样的省略结果。较早的事件没有。
304
+ */
305
+ mediaBudgetBytes: count.optional(),
306
+ }),
307
+ })),
308
+ ev("assistant_message", z.object({
309
+ step: count,
310
+ content: z.array(ContentBlockSchema),
311
+ stopReason: z.enum([...STOP_REASONS, "aborted"]),
312
+ })),
313
+ /**
314
+ * Usage of one model call. Absent `purpose` = the step's call (written with its
315
+ * `assistant_message`); `compaction` = the compaction call before the step (I-1: billed and
316
+ * reported, but no step consumer may pair it with the step's `model_call`); `title` = the
317
+ * conversation title call (UI refresh B: no run, `step` 0, not model-visible, billed and reported).
318
+ */
319
+ ev("usage", z.object({
320
+ step: count,
321
+ provider: z.string(),
322
+ model: z.string(),
323
+ ...ModelUsageShape,
324
+ purpose: z.enum(["compaction", "title"]).optional(),
325
+ })),
326
+ ev("reminder", z.object({ step: count, text: z.string() })),
327
+ /** 工具调用开始执行之前写入(续跑时「有开始无结果」的调用记为结果未知,不再执行)。 */
328
+ ev("tool_call_started", z.object({ step: count, callId: z.string(), toolKey: z.string(), specHash: z.string() })),
329
+ /**
330
+ * 工具调用的结果(模型看到的文本)。构建请求时还原为紧随该步 assistant 消息的 user 消息中的
331
+ * `tool_result` 块。`outputId`:超长结果转存后的存档 id;`contentTypes`:结果里出现的内容类型。
332
+ */
333
+ ev("tool_result", z.object({
334
+ step: count,
335
+ callId: z.string(),
336
+ toolKey: z.string(),
337
+ content: z.string(),
338
+ isError: z.boolean(),
339
+ outputId: z.string().optional(),
340
+ contentTypes: z.array(z.string()).optional(),
341
+ /**
342
+ * `tool_search` 本次加载的工具 key(没有匹配时不写)。已加载集合 = 会话中全部 tool_result 的
343
+ * `loadedTools` 并集(含已被摘要覆盖的部分),构建请求时由日志还原,不放进程内存。
344
+ */
345
+ loadedTools: z.array(z.string()).optional(),
346
+ /**
347
+ * 工具给的一句话说明(`ToolResult.display`,中英文),只给界面显示:不进模型请求(重建请求只用
348
+ * callId / content / isError),也不进压缩记录。插件 / 内置工具给出且通过 `validateToolDisplay` 时才写。
349
+ */
350
+ display: z.object({ summary: z.object({ zh: z.string(), en: z.string() }) }).optional(),
351
+ /** Structured view ({@link ToolViewSchema}); builtins only, display only, not in compaction. */
352
+ view: ToolViewSchema.optional(),
353
+ /**
354
+ * An inline card under the call (`ToolResult.card`, UI refresh B): an `inline` ui contribution
355
+ * of the extension that ran the tool. Display only: never in the model request or compaction.
356
+ */
357
+ card: z
358
+ .object({
359
+ plugin: z.string().min(1).max(100),
360
+ view: z.string().min(1).max(100),
361
+ key: z.string().min(1).max(200).optional(),
362
+ })
363
+ .optional(),
364
+ })),
365
+ /**
366
+ * 工具调用时发现发起人尚未连接个人凭据的连接器:界面据此显示连接卡片(不进模型请求;模型看到的是
367
+ * 同一调用的 tool_result 错误说明)。组织凭据缺失不写此事件。`appId` / `appName` 是连接器的 id 与名称,
368
+ * 改名后字段名不变(D17 / C27)。
369
+ */
370
+ ev("connection_required", z.object({ step: count, callId: z.string(), appId: z.string(), appName: z.string() })),
371
+ /**
372
+ * 工具调用需要人审批(策略为 `ask`):审批记录已建,run 暂停等待处理。界面据此显示审批卡片
373
+ * (不进模型请求;该调用的结果在审批处理后写入)。
374
+ */
375
+ ev("approval_requested", z.object({
376
+ step: count,
377
+ callId: z.string(),
378
+ approvalId: z.string(),
379
+ toolKey: z.string(),
380
+ expiresAt: z.string(),
381
+ /** Which rule asked (UI refresh B; display only, absent in older logs). */
382
+ policy: z.enum(["agent", "connector", "default", "role", "org", "fixed"]).optional(),
383
+ })),
384
+ /** 审批已处理(批准 / 拒绝 / 超时 / 取消);`scope` 只在批准时出现,`byAccountId` 为处理人(超时 / 取消为 null)。 */
385
+ ev("approval_decided", z.object({
386
+ approvalId: z.string(),
387
+ callId: z.string(),
388
+ decision: z.enum(["approved", "denied", "expired", "cancelled"]),
389
+ scope: z.enum(["once", "session", "always"]).optional(),
390
+ byAccountId: z.string().nullable(),
391
+ /**
392
+ * The reason given with a denial (UI refresh B; display only here: the model sees it in the
393
+ * denied call's `tool_result`).
394
+ */
395
+ reason: z.string().max(APPROVAL_DENY_REASON_MAX_CHARS).optional(),
396
+ })),
397
+ /**
398
+ * 工具调用需要用户输入(`ask_user`、插件工具的 `input_required`、MCP elicitation):输入请求已建,
399
+ * run 暂停等待回答。界面据此显示表单卡片(不进模型请求)。
400
+ */
401
+ ev("question_asked", z.object({
402
+ step: count,
403
+ callId: z.string(),
404
+ questionId: z.string(),
405
+ form: InputFormSchema,
406
+ expiresAt: z.string(),
407
+ })),
408
+ /** 输入请求已结束:回答 / 超时 / 取消(后两者 `answer` 与 `byAccountId` 为 null)。 */
409
+ ev("question_answered", z.object({
410
+ questionId: z.string(),
411
+ callId: z.string(),
412
+ answer: FormAnswerSchema.nullable(),
413
+ byAccountId: z.string().nullable(),
414
+ outcome: z.enum(["answered", "expired", "cancelled"]),
415
+ })),
416
+ /**
417
+ * 带媒体的模型请求被供应商以不可重试的 `invalid_request` / `context_overflow` 拒绝(Ruling M8):这些附件
418
+ * (该请求里发了字节的)此后一律换成「被供应商拒绝」的占位,会话不会因同一个附件永久卡住。不进模型请求
419
+ * 本身,只影响之后的请求构建(可由日志推出)。
420
+ */
421
+ ev("media_excluded", z.object({
422
+ attachmentIds: z.array(AttachmentIdSchema).min(1).max(MEDIA_EXCLUDED_MAX_IDS),
423
+ reason: z.enum(["provider_rejected"]),
424
+ })),
425
+ /**
426
+ * agent 经 `sandbox_deliver` 把沙箱里的文件交付给用户(M5 T8,C3):字节在对象存储
427
+ * `kernel/<orgId>/<objectKey>`(`objectKey` = `artifacts/<conversationId>/<artifactId>`,相对内核前缀),
428
+ * 这里只有元数据。网页从日志重建产物列表;不进模型请求(模型看到的是同一调用的 tool_result 确认)。
429
+ */
430
+ ev("artifact_created", z.object({
431
+ artifactId: z.uuid(),
432
+ name: ArtifactNameSchema,
433
+ contentType: z.string().min(1).max(200),
434
+ size: z.number().int().nonnegative(),
435
+ objectKey: z.string().min(1),
436
+ sourcePath: z.string().min(1),
437
+ callId: z.string(),
438
+ })),
439
+ /**
440
+ * 本对话此刻生效的技能(M5 T14,Ruling M17):运行开始时内核解析生效的技能集合(agent 版本选中的组织技能 +
441
+ * agent 自己的技能,未删除,取 current_version),与日志里上一份快照不同才写。模型看到的技能目录只来自这里:
442
+ * 第一份(在任何 `model_call` 之前)进 system 缓存段,之后的在所在位置渲染为英文变更提醒;`skill_load` 按最新一份
443
+ * 把名字解析为 id 与版本。按 name 排序。
444
+ */
445
+ ev("skills_catalog", z.object({
446
+ skills: z
447
+ .array(z.object({
448
+ id: z.string().min(1).max(100),
449
+ name: z.string().refine(isSkillName, "invalid skill name"),
450
+ description: z.string().max(4096),
451
+ version: z.number().int().positive(),
452
+ /**
453
+ * 内容来源(对象前缀,T15):已生成的版本为 `skill_versions.object_prefix`,试用中的草稿为申请的
454
+ * `object_prefix`。同号的草稿与正式版本靠它区分;`skill_load` 只按它解析。
455
+ */
456
+ source: z.string().min(1).max(512),
457
+ /**
458
+ * The catalog item (plugin) name the skill came from (phase B); absent for the org's
459
+ * own and the agent's skills, and in snapshots written before phase B. `skill_load`
460
+ * resolves `<plugin>:<name>` with it; it is not model-visible otherwise.
461
+ */
462
+ plugin: z.string().min(1).max(64).optional(),
463
+ }))
464
+ .max(SKILLS_CATALOG_MAX),
465
+ /**
466
+ * Pinned skills (phase B, spec §9.1) in the agent's order: each a skill of `skills` (same
467
+ * id, version and source) with its SKILL.md body as read at run start or written by
468
+ * skill_write. Absent means none (every snapshot before phase B).
469
+ */
470
+ pinned: z
471
+ .array(z.object({
472
+ id: z.string().min(1).max(100),
473
+ version: z.number().int().positive(),
474
+ name: z.string().refine(isSkillName, "invalid skill name"),
475
+ source: z.string().min(1).max(512),
476
+ body: z.string().max(PINNED_BODY_MAX_CHARS),
477
+ }))
478
+ .max(3)
479
+ .optional(),
480
+ /**
481
+ * The Claude Code tool-name map text (`CLAUDE_CODE_TOOL_MAP`), present iff a skill in
482
+ * `skills` came from a Claude Code plugin.
483
+ */
484
+ toolMap: z.string().max(4000).optional(),
485
+ })),
486
+ /**
487
+ * A plugin policy hook denied a model request or a tool call (E6). Not model-visible: request building
488
+ * skips it; the model sees only `reason`, inside the tool error of a denied tool call (and nothing for a
489
+ * denied model request, whose run fails with `run.hook_denied`). No raw hook error here (Ruling R12):
490
+ * the events API reaches conversation participants, so the raw text lives in the `hook.denied` audit
491
+ * row only.
492
+ */
493
+ ev("hook_denied", z.object({
494
+ mount: z.enum(["model.request", "tool.preExecute"]),
495
+ plugin: z.string(),
496
+ reason: z.string().max(500),
497
+ cause: z.enum(["deny", "hook_error", "timeout"]),
498
+ step: count,
499
+ attempt: count.optional(),
500
+ callId: z.string().optional(),
501
+ })),
502
+ /**
503
+ * The first event of a sub-agent's (child) conversation (phase C, spec §6.3), written once in the
504
+ * dispatch transaction. Request building for a `subagent` conversation takes the definition and
505
+ * the preamble from here, never from `agent_versions`, so later changes never alter an old
506
+ * child's request. The event itself is not rendered as a message.
507
+ */
508
+ ev("subagent_started", z.object({
509
+ parent: z.object({
510
+ conversationId: z.string(),
511
+ runId: z.string(),
512
+ callId: z.string(),
513
+ step: count,
514
+ }),
515
+ agentType: z.string().min(1).max(130),
516
+ template: z.object({
517
+ source: z.enum(["general", "inline", "plugin", "agent"]),
518
+ id: z.string().optional(),
519
+ version: z.number().int().positive().optional(),
520
+ plugin: z.string().optional(),
521
+ /**
522
+ * Phase D: the child runs a forked skill a person invoked (display and eval metadata, not
523
+ * model-visible).
524
+ */
525
+ invokedSkill: z
526
+ .object({ id: z.string(), version: z.number().int(), name: z.string() })
527
+ .optional(),
528
+ }),
529
+ /** The effective (narrowed) definition, frozen at dispatch. */
530
+ definition: AgentDefinitionSchema,
531
+ /** `SUBAGENT_PREAMBLE` at dispatch time. */
532
+ preamble: z.string(),
533
+ maxSteps: z.number().int().positive(),
534
+ warnings: z.array(z.string()).optional(),
535
+ })),
536
+ /**
537
+ * Parent log (phase C, spec §14.1): the `agent` call `callId` started (or resumed) the sub-agent
538
+ * `subagentId` (its child conversation id) with run `childRunId`. Not model-visible: the model
539
+ * sees the call's tool_call / tool_result pair.
540
+ */
541
+ ev("subagent_dispatched", z.object({
542
+ step: count,
543
+ callId: z.string(),
544
+ subagentId: z.string(),
545
+ childRunId: z.string(),
546
+ agentType: z.string(),
547
+ description: z.string(),
548
+ resumed: z.boolean(),
549
+ model: z.object({ provider: z.string(), model: z.string() }),
550
+ tierFallback: z.boolean().optional(),
551
+ /**
552
+ * Phase D: the seq of the person's fork invocation this dispatch runs (`callId` is
553
+ * `skill-<seq>`, step 0, no tool call); absent for an `agent` call.
554
+ */
555
+ invokedSeq: seqNo.optional(),
556
+ })),
557
+ /** Parent log: a sub-agent waits for a person (approval, input or a connection). Not model-visible. */
558
+ ev("subagent_waiting", z.object({
559
+ subagentId: z.string(),
560
+ childRunId: z.string(),
561
+ kind: z.enum(["approval", "input", "connect"]),
562
+ approvalId: z.string().optional(),
563
+ questionId: z.string().optional(),
564
+ toolKey: z.string(),
565
+ expiresAt: z.string().optional(),
566
+ })),
567
+ /** Parent log: a sub-agent's run ended. Not model-visible (its reply is the call's tool_result). */
568
+ ev("subagent_finished", z.object({
569
+ subagentId: z.string(),
570
+ childRunId: z.string(),
571
+ callId: z.string(),
572
+ /** `timed_out`: stopped by the parent's sub-agents wait timeout (`run_aborted.detail`). */
573
+ status: z.enum([
574
+ "completed",
575
+ "max_steps",
576
+ "max_duration",
577
+ "budget",
578
+ "aborted",
579
+ "timed_out",
580
+ "failed",
581
+ ]),
582
+ errorCode: z.string().optional(),
583
+ toolCalls: count,
584
+ durationMs: count,
585
+ usage: z.object(ModelUsageShape),
586
+ })),
587
+ /**
588
+ * Phase D (spec §6.3): the report of the sub-agent that ran a person's fork invocation
589
+ * (`invokedSeq`), written once (idem `skill_fork_result:<seq>`) before the parent's next model
590
+ * call. **Model-visible**: request building renders `text` as user content right after the
591
+ * invocation message. `subagentId` / `childRunId` are absent when no sub-agent ran (refused, or
592
+ * the run ended before it started).
593
+ */
594
+ ev("skill_fork_result", z.object({
595
+ invokedSeq: seqNo,
596
+ subagentId: z.string().optional(),
597
+ childRunId: z.string().optional(),
598
+ text: z.string(),
599
+ })),
600
+ ev("compaction_summary", z.object({ coversUpToSeq: seqNo, text: z.string() })),
601
+ ev("compaction_failed", z.object({ attempt: count, reason: z.string() })),
602
+ ev("run_finished", z.object({
603
+ /** `budget`: a sub-agent stopped at its parent run's token cap (phase C, spec §8.3). */
604
+ reason: z.enum(["completed", "max_steps", "max_duration", "budget"]),
605
+ consumedUpToSeq: seqNo,
606
+ })),
607
+ ev("run_failed", z.object({ error: z.object({ code: z.string(), message: z.string() }) })),
608
+ ev("run_aborted", z.object({
609
+ byAccountId: z.string().nullable(),
610
+ /** `eval_stopped`:评测整轮回放被评测运行停下(只出现在 `kind = 'eval'` 的对话里),原因见 `detail`。 */
611
+ reason: z.enum(["user", "shutdown_exhausted", "eval_stopped"]),
612
+ /**
613
+ * Why an eval replay stopped (`eval_stopped`), or `wait_timeout`: a sub-agent run stopped
614
+ * (`user`, no account) because its parent's sub-agents wait timed out (phase C).
615
+ */
616
+ detail: z
617
+ .enum(["cancelled", "capped", "too_many_errors", "claim_lost", "shutdown", "wait_timeout"])
618
+ .optional(),
619
+ })),
620
+ ]);
621
+ /**
622
+ * What the person typed for a skill invocation (phase D): `/<plugin>:<name> <arguments>` (no
623
+ * plugin: `/<name>`). Titles and eval case titles use it instead of the rendered skill in
624
+ * `content[0]`.
625
+ */
626
+ export const typedInvocation = (skill) => `/${skill.plugin === undefined ? "" : `${skill.plugin}:`}${skill.name}${skill.arguments === "" ? "" : ` ${skill.arguments}`}`;
627
+ // 日志 schema 对的是收窄后的 LogContentBlock(媒体块只认 ref);再核对它确是 ContentBlock 的子类型。
628
+ const _blocks = true;
629
+ const _logIsBlock = true;
630
+ const _stop = true;
631
+ const _effort = true;
632
+ void _effort;
633
+ const _usage = true;
634
+ const _toolResult = true;
635
+ void _toolResult;
636
+ void _blocks;
637
+ void _logIsBlock;
638
+ void _stop;
639
+ void _usage;