eve 0.75.1 → 0.76.2

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 (720) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/src/_virtual/_rolldown/runtime.js +1 -1
  3. package/dist/src/acp/adapter.js +1 -1
  4. package/dist/src/channel/channel-address.d.ts +3 -1
  5. package/dist/src/channel/channel-address.js +1 -1
  6. package/dist/src/channel/session-stranded-error.d.ts +25 -0
  7. package/dist/src/channel/session-stranded-error.js +1 -0
  8. package/dist/src/channel/session.d.ts +13 -6
  9. package/dist/src/channel/task-card.js +1 -1
  10. package/dist/src/channel/tool-eligibility.d.ts +1 -2
  11. package/dist/src/channel/types.d.ts +29 -1
  12. package/dist/src/chunks/{use-eve-agent-DK_T88EP.js → use-eve-agent-BtKWTEpm.js} +99 -24
  13. package/dist/src/chunks/{use-eve-agent-B2Kne9z6.js → use-eve-agent-jI6EsYAu.js} +99 -24
  14. package/dist/src/cli/commands/registry-project.d.ts +10 -3
  15. package/dist/src/cli/commands/registry-project.js +2 -2
  16. package/dist/src/cli/commands/registry.js +1 -1
  17. package/dist/src/cli/dev/environment.d.ts +0 -6
  18. package/dist/src/cli/dev/environment.js +1 -1
  19. package/dist/src/cli/dev/tui/conversation-view.js +1 -1
  20. package/dist/src/cli/dev/tui/runner.js +3 -3
  21. package/dist/src/cli/dev/tui/stranded-session.d.ts +9 -0
  22. package/dist/src/cli/dev/tui/stranded-session.js +1 -0
  23. package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
  24. package/dist/src/cli/dev/tui/transcript.js +1 -1
  25. package/dist/src/client/client-error.d.ts +16 -0
  26. package/dist/src/client/client-error.js +1 -1
  27. package/dist/src/client/client.js +1 -1
  28. package/dist/src/client/index.d.ts +3 -2
  29. package/dist/src/client/index.js +1 -1
  30. package/dist/src/client/message-action-parts.d.ts +3 -0
  31. package/dist/src/client/message-action-parts.js +1 -1
  32. package/dist/src/client/message-reducer-types.d.ts +6 -1
  33. package/dist/src/client/message-reducer.js +1 -1
  34. package/dist/src/client/open-stream.d.ts +5 -3
  35. package/dist/src/client/open-stream.js +1 -1
  36. package/dist/src/client/session-controls.js +1 -1
  37. package/dist/src/client/session.js +1 -1
  38. package/dist/src/client/transcript-reducer.d.ts +46 -0
  39. package/dist/src/client/transcript-reducer.js +2 -0
  40. package/dist/src/compiled/.vendor-stamp.json +3 -2
  41. package/dist/src/compiled/@eve/catalog/index.js +1 -1
  42. package/dist/src/compiled/@vercel/queue/index.d.ts +1066 -0
  43. package/dist/src/compiled/@vercel/queue/index.js +47 -0
  44. package/dist/src/compiler/connection-ownership.d.ts +6 -0
  45. package/dist/src/compiler/connection-ownership.js +1 -0
  46. package/dist/src/compiler/default-tool-policy.d.ts +0 -3
  47. package/dist/src/compiler/default-tool-policy.js +1 -1
  48. package/dist/src/compiler/extension-compatibility.d.ts +23 -22
  49. package/dist/src/compiler/extension-compatibility.js +1 -1
  50. package/dist/src/compiler/manifest.d.ts +9 -6
  51. package/dist/src/compiler/manifest.js +1 -1
  52. package/dist/src/compiler/normalize-agent-config.js +1 -1
  53. package/dist/src/compiler/normalize-connection.js +1 -1
  54. package/dist/src/compiler/normalize-manifest.js +1 -1
  55. package/dist/src/compiler/normalize-skill.d.ts +5 -0
  56. package/dist/src/compiler/normalize-skill.js +1 -1
  57. package/dist/src/compiler/normalize-subagent.d.ts +2 -1
  58. package/dist/src/compiler/normalize-subagent.js +1 -1
  59. package/dist/src/compiler/normalize-tool.js +1 -1
  60. package/dist/src/compiler/remote-agent-node.d.ts +2 -1
  61. package/dist/src/compiler/remote-agent-node.js +1 -1
  62. package/dist/src/connections/ownership.d.ts +18 -0
  63. package/dist/src/connections/ownership.js +1 -0
  64. package/dist/src/context/accessors.d.ts +1 -1
  65. package/dist/src/context/build-callback-context.js +1 -1
  66. package/dist/src/context/build-dynamic-tools.d.ts +3 -9
  67. package/dist/src/context/build-dynamic-tools.js +1 -1
  68. package/dist/src/context/dynamic-connection-lifecycle.js +1 -1
  69. package/dist/src/context/dynamic-resolve-context.js +1 -1
  70. package/dist/src/context/dynamic-skill-lifecycle.d.ts +2 -11
  71. package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
  72. package/dist/src/context/dynamic-subagent-lifecycle.js +1 -1
  73. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  74. package/dist/src/context/dynamic-tool-metadata.d.ts +1 -0
  75. package/dist/src/context/keys.d.ts +10 -4
  76. package/dist/src/context/keys.js +1 -1
  77. package/dist/src/context/memory-tools.js +1 -1
  78. package/dist/src/context/providers/session.d.ts +1 -0
  79. package/dist/src/context/providers/session.js +1 -1
  80. package/dist/src/context/schedule-collection-tools.js +1 -1
  81. package/dist/src/context/session-context.d.ts +8 -2
  82. package/dist/src/discover/grammar.d.ts +11 -0
  83. package/dist/src/discover/grammar.js +1 -1
  84. package/dist/src/discover/manifest.d.ts +1 -0
  85. package/dist/src/discover/manifest.js +1 -1
  86. package/dist/src/discover/skills.d.ts +1 -0
  87. package/dist/src/discover/skills.js +1 -1
  88. package/dist/src/dynamic/definition.d.ts +14 -6
  89. package/dist/src/evals/assertions/collector.d.ts +4 -0
  90. package/dist/src/evals/assertions/collector.js +1 -1
  91. package/dist/src/evals/assertions/run.d.ts +2 -3
  92. package/dist/src/evals/assertions/run.js +2 -2
  93. package/dist/src/evals/assertions/scoped.js +1 -1
  94. package/dist/src/evals/index.d.ts +1 -1
  95. package/dist/src/evals/match.d.ts +9 -6
  96. package/dist/src/evals/reported-tool-name.d.ts +9 -0
  97. package/dist/src/evals/reported-tool-name.js +1 -0
  98. package/dist/src/evals/runner/derive-run-facts.d.ts +3 -3
  99. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  100. package/dist/src/evals/runner/execute-task.js +1 -1
  101. package/dist/src/evals/runner/reporters/braintrust.js +1 -1
  102. package/dist/src/evals/runner/reporters/datadog-runtime-trace-links.d.ts +11 -0
  103. package/dist/src/evals/runner/reporters/datadog-runtime-trace-links.js +1 -0
  104. package/dist/src/evals/runner/reporters/datadog.js +2 -2
  105. package/dist/src/evals/session.js +2 -2
  106. package/dist/src/evals/target.d.ts +7 -0
  107. package/dist/src/evals/target.js +1 -1
  108. package/dist/src/evals/types.d.ts +19 -2
  109. package/dist/src/eve-channel/index.js +1 -1
  110. package/dist/src/eve-channel/request.js +2 -2
  111. package/dist/src/eve-channel/support.d.ts +2 -0
  112. package/dist/src/eve-channel/support.js +1 -1
  113. package/dist/src/execution/agent-sessions/remote.js +1 -1
  114. package/dist/src/execution/agent-sessions/steps.js +1 -1
  115. package/dist/src/execution/catalog/connection-auth.d.ts +41 -0
  116. package/dist/src/execution/catalog/connection-auth.js +1 -0
  117. package/dist/src/execution/catalog/connection-entry.d.ts +16 -0
  118. package/dist/src/execution/catalog/connection-entry.js +1 -0
  119. package/dist/src/execution/catalog/listing.d.ts +9 -0
  120. package/dist/src/execution/catalog/listing.js +3 -0
  121. package/dist/src/execution/catalog/rank.d.ts +44 -0
  122. package/dist/src/execution/catalog/rank.js +1 -0
  123. package/dist/src/execution/catalog/search.d.ts +28 -0
  124. package/dist/src/execution/catalog/search.js +1 -0
  125. package/dist/src/execution/catalog/signatures.d.ts +11 -0
  126. package/dist/src/execution/catalog/signatures.js +1 -0
  127. package/dist/src/execution/catalog/skills.d.ts +24 -0
  128. package/dist/src/execution/catalog/skills.js +1 -0
  129. package/dist/src/execution/catalog/step-catalog.d.ts +51 -0
  130. package/dist/src/execution/catalog/step-catalog.js +1 -0
  131. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  132. package/dist/src/execution/dynamic-connections.js +1 -1
  133. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  134. package/dist/src/execution/eve-workflow-attributes.d.ts +15 -0
  135. package/dist/src/execution/eve-workflow-attributes.js +1 -1
  136. package/dist/src/execution/install-workflow-world.d.ts +7 -0
  137. package/dist/src/execution/install-workflow-world.js +1 -0
  138. package/dist/src/execution/invoke-tool.js +1 -1
  139. package/dist/src/execution/legacy-session/authorization.js +1 -1
  140. package/dist/src/execution/legacy-session/inbox.js +1 -1
  141. package/dist/src/execution/legacy-session/turn-workflow.js +1 -1
  142. package/dist/src/execution/node-step.js +1 -1
  143. package/dist/src/execution/session/active-turn.d.ts +1 -1
  144. package/dist/src/execution/session/entry.js +1 -1
  145. package/dist/src/execution/session/handoff-steps.d.ts +11 -0
  146. package/dist/src/execution/session/handoff-steps.js +1 -1
  147. package/dist/src/execution/session/pending-turn-state.js +1 -1
  148. package/dist/src/execution/session/program.js +1 -1
  149. package/dist/src/execution/session/timeout-steps.js +1 -1
  150. package/dist/src/execution/session/turn-step.js +1 -1
  151. package/dist/src/execution/session/turn.d.ts +5 -5
  152. package/dist/src/execution/session/turn.js +1 -1
  153. package/dist/src/execution/session-event-stream.d.ts +6 -0
  154. package/dist/src/execution/session-event-stream.js +1 -1
  155. package/dist/src/execution/session-inbox/address.d.ts +4 -0
  156. package/dist/src/execution/session-inbox/address.js +1 -1
  157. package/dist/src/execution/session-inbox/end-stranded-session.d.ts +22 -0
  158. package/dist/src/execution/session-inbox/end-stranded-session.js +1 -0
  159. package/dist/src/execution/session-inbox/hook-release.d.ts +4 -0
  160. package/dist/src/execution/session-inbox/hook-release.js +1 -0
  161. package/dist/src/execution/session-inbox/owner.d.ts +48 -0
  162. package/dist/src/execution/session-inbox/owner.js +1 -0
  163. package/dist/src/execution/session-inbox/resume.d.ts +12 -0
  164. package/dist/src/execution/session-inbox/resume.js +1 -1
  165. package/dist/src/execution/session-inbox/runnable-owner.d.ts +13 -0
  166. package/dist/src/execution/session-inbox/runnable-owner.js +1 -0
  167. package/dist/src/execution/session-inbox/stranded-replay-guard.d.ts +16 -0
  168. package/dist/src/execution/session-inbox/stranded-replay-guard.js +1 -0
  169. package/dist/src/execution/session.js +1 -1
  170. package/dist/src/execution/skills/instructions.d.ts +20 -10
  171. package/dist/src/execution/skills/instructions.js +2 -2
  172. package/dist/src/execution/tasks/calls.d.ts +6 -5
  173. package/dist/src/execution/tasks/calls.js +1 -1
  174. package/dist/src/execution/tasks/model-step.d.ts +10 -10
  175. package/dist/src/execution/tasks/model-step.js +1 -1
  176. package/dist/src/execution/tasks/render.d.ts +3 -3
  177. package/dist/src/execution/tasks/render.js +3 -3
  178. package/dist/src/execution/tasks/session.d.ts +2 -1
  179. package/dist/src/execution/tasks/table.d.ts +1 -1
  180. package/dist/src/execution/tasks/tool-entry-point.d.ts +1 -1
  181. package/dist/src/execution/tool-auth.js +1 -1
  182. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  183. package/dist/src/execution/tools/workflow/harness-definition.js +1 -1
  184. package/dist/src/execution/workflow-runtime.d.ts +5 -1
  185. package/dist/src/execution/workflow-runtime.js +1 -1
  186. package/dist/src/extensions/code/extension/extension.d.ts +4 -18
  187. package/dist/src/extensions/code/extension/instructions/github.d.ts +3 -0
  188. package/dist/src/extensions/code/extension/instructions/github.js +1 -0
  189. package/dist/src/extensions/code/extension/instructions.md +1 -13
  190. package/dist/src/extensions/code/extension/lib/diagnostics.d.ts +4 -2
  191. package/dist/src/extensions/code/extension/lib/diagnostics.js +3 -3
  192. package/dist/src/extensions/code/extension/lib/github-compat.d.ts +28 -0
  193. package/dist/src/extensions/code/extension/lib/github-compat.js +1 -0
  194. package/dist/src/extensions/code/extension/lib/grep-search.d.ts +3 -13
  195. package/dist/src/extensions/code/extension/lib/grep-search.js +2 -2
  196. package/dist/src/extensions/code/extension/lib/patch.d.ts +8 -2
  197. package/dist/src/extensions/code/extension/lib/patch.js +4 -4
  198. package/dist/src/extensions/code/extension/lib/repository-root.d.ts +3 -4
  199. package/dist/src/extensions/code/extension/lib/repository-root.js +1 -1
  200. package/dist/src/extensions/code/extension/lib/sandbox.d.ts +2 -1
  201. package/dist/src/extensions/code/extension/lib/sandbox.js +1 -1
  202. package/dist/src/extensions/code/extension/lib/tooling.d.ts +4 -4
  203. package/dist/src/extensions/code/extension/lib/tooling.js +7 -7
  204. package/dist/src/extensions/code/extension/lib/workspace-root.d.ts +31 -0
  205. package/dist/src/extensions/code/extension/lib/workspace-root.js +1 -0
  206. package/dist/src/extensions/code/extension/skills/pr.d.ts +6 -0
  207. package/dist/src/extensions/code/extension/skills/pr.js +1 -0
  208. package/dist/src/extensions/code/extension/tools/apply_patch.d.ts +2 -2
  209. package/dist/src/extensions/code/extension/tools/apply_patch.js +2 -2
  210. package/dist/src/extensions/code/extension/tools/gh.d.ts +4 -3
  211. package/dist/src/extensions/code/extension/tools/gh.js +1 -1
  212. package/dist/src/extensions/code/extension/tools/grep.js +1 -1
  213. package/dist/src/extensions/code/tools.d.ts +2 -1
  214. package/dist/src/extensions/code/tools.js +1 -1
  215. package/dist/src/extensions/git/extension/extension.d.ts +12 -0
  216. package/dist/src/extensions/git/extension/extension.js +1 -0
  217. package/dist/src/extensions/git/extension/instructions/github.d.ts +2 -0
  218. package/dist/src/extensions/git/extension/instructions/github.js +1 -0
  219. package/dist/src/extensions/git/extension/lib/gh-tool.d.ts +29 -0
  220. package/dist/src/extensions/git/extension/lib/gh-tool.js +1 -0
  221. package/dist/src/extensions/git/extension/lib/github-guidance.d.ts +3 -0
  222. package/dist/src/extensions/git/extension/lib/github-guidance.js +49 -0
  223. package/dist/src/extensions/{code → git}/extension/lib/github-shell.d.ts +1 -1
  224. package/dist/src/extensions/git/extension/lib/github-shell.js +1 -0
  225. package/dist/src/extensions/git/extension/lib/repository-root.d.ts +5 -0
  226. package/dist/src/extensions/git/extension/lib/repository-root.js +1 -0
  227. package/dist/src/extensions/git/extension/lib/sandbox.d.ts +6 -0
  228. package/dist/src/extensions/git/extension/lib/sandbox.js +1 -0
  229. package/dist/src/extensions/git/extension/lib/shell.d.ts +1 -0
  230. package/dist/src/extensions/git/extension/lib/shell.js +1 -0
  231. package/dist/src/extensions/git/extension/lib/tooling.d.ts +4 -0
  232. package/dist/src/extensions/git/extension/lib/tooling.js +1 -0
  233. package/dist/src/extensions/git/extension/skills/pr.d.ts +5 -0
  234. package/dist/src/extensions/git/extension/skills/pr.js +1 -0
  235. package/dist/src/extensions/git/extension/tools/gh.d.ts +28 -0
  236. package/dist/src/extensions/git/extension/tools/gh.js +1 -0
  237. package/dist/src/extensions/git/tools.d.ts +27 -0
  238. package/dist/src/extensions/git/tools.js +1 -0
  239. package/dist/src/framework/sources/registry.js +1 -1
  240. package/dist/src/harness/action-presentation.d.ts +2 -2
  241. package/dist/src/harness/action-result-helpers.d.ts +10 -2
  242. package/dist/src/harness/action-result-helpers.js +1 -1
  243. package/dist/src/harness/announcements.d.ts +2 -8
  244. package/dist/src/harness/announcements.js +1 -1
  245. package/dist/src/harness/compaction/step.js +1 -1
  246. package/dist/src/harness/coordination.d.ts +11 -11
  247. package/dist/src/harness/coordination.js +1 -1
  248. package/dist/src/harness/current-messages.d.ts +1 -5
  249. package/dist/src/harness/current-messages.js +1 -1
  250. package/dist/src/harness/emission.d.ts +2 -2
  251. package/dist/src/harness/emission.js +1 -1
  252. package/dist/src/harness/execute-call.d.ts +48 -0
  253. package/dist/src/harness/execute-call.js +1 -0
  254. package/dist/src/harness/execute-tool.d.ts +3 -1
  255. package/dist/src/harness/final-output.d.ts +2 -6
  256. package/dist/src/harness/final-output.js +1 -1
  257. package/dist/src/harness/hitl/approvals.d.ts +5 -0
  258. package/dist/src/harness/hitl/approvals.js +1 -1
  259. package/dist/src/harness/hitl/approved-calls.d.ts +3 -2
  260. package/dist/src/harness/hitl/approved-calls.js +1 -1
  261. package/dist/src/harness/hitl/candidates.d.ts +13 -2
  262. package/dist/src/harness/hitl/candidates.js +1 -1
  263. package/dist/src/harness/hitl/coordinator.d.ts +3 -3
  264. package/dist/src/harness/hitl/coordinator.js +1 -1
  265. package/dist/src/harness/hitl/index.d.ts +6 -4
  266. package/dist/src/harness/hitl/index.js +1 -1
  267. package/dist/src/harness/hitl/intake.d.ts +3 -3
  268. package/dist/src/harness/hitl/intake.js +1 -1
  269. package/dist/src/harness/input-extraction.d.ts +4 -1
  270. package/dist/src/harness/input-extraction.js +1 -1
  271. package/dist/src/harness/input-request-resolution.d.ts +15 -0
  272. package/dist/src/harness/input-request-resolution.js +1 -1
  273. package/dist/src/harness/model-call/call.d.ts +4 -6
  274. package/dist/src/harness/model-call/call.js +1 -1
  275. package/dist/src/harness/model-call/errors.d.ts +5 -6
  276. package/dist/src/harness/model-call/errors.js +1 -1
  277. package/dist/src/harness/model-call/recovery.d.ts +4 -3
  278. package/dist/src/harness/model-call/request.d.ts +5 -3
  279. package/dist/src/harness/model-call/request.js +1 -1
  280. package/dist/src/harness/model-call/response.d.ts +2 -1
  281. package/dist/src/harness/model-call/response.js +1 -1
  282. package/dist/src/harness/model-call/run.d.ts +5 -3
  283. package/dist/src/harness/model-call/run.js +1 -1
  284. package/dist/src/harness/model-call/tools.d.ts +12 -21
  285. package/dist/src/harness/model-call/tools.js +1 -1
  286. package/dist/src/harness/model-profile.d.ts +15 -3
  287. package/dist/src/harness/model-profile.js +1 -1
  288. package/dist/src/harness/prompt-cache.d.ts +6 -3
  289. package/dist/src/harness/prompt-cache.js +1 -1
  290. package/dist/src/harness/provider-safety.d.ts +2 -1
  291. package/dist/src/harness/provider-safety.js +1 -1
  292. package/dist/src/harness/provider-tools.d.ts +7 -6
  293. package/dist/src/harness/provider-tools.js +1 -1
  294. package/dist/src/harness/session-machine/commit.js +1 -1
  295. package/dist/src/harness/session-machine/transitions.d.ts +8 -3
  296. package/dist/src/harness/session-machine/transitions.js +1 -1
  297. package/dist/src/harness/step/after-model.js +1 -1
  298. package/dist/src/harness/step/context.js +1 -1
  299. package/dist/src/harness/step-hooks.d.ts +4 -6
  300. package/dist/src/harness/step-hooks.js +1 -1
  301. package/dist/src/harness/tool-call-input-errors.d.ts +2 -2
  302. package/dist/src/harness/tool-call-io.d.ts +3 -0
  303. package/dist/src/harness/tool-call-io.js +1 -1
  304. package/dist/src/harness/tools.d.ts +22 -19
  305. package/dist/src/harness/tools.js +1 -1
  306. package/dist/src/harness/types.d.ts +14 -0
  307. package/dist/src/instrumentation/lifecycle.d.ts +0 -1
  308. package/dist/src/instrumentation/native-events.js +1 -1
  309. package/dist/src/instrumentation/runtime.d.ts +2 -1
  310. package/dist/src/internal/application/compiled-artifacts.js +4 -4
  311. package/dist/src/internal/application/package.d.ts +1 -1
  312. package/dist/src/internal/application/package.js +1 -1
  313. package/dist/src/internal/application/stamped-package-version.d.ts +5 -0
  314. package/dist/src/internal/application/stamped-package-version.js +1 -0
  315. package/dist/src/internal/authored-definition/core.d.ts +3 -0
  316. package/dist/src/internal/authored-definition/core.js +1 -1
  317. package/dist/src/internal/authored-definition/schedule-collection.js +1 -1
  318. package/dist/src/internal/authored-definition/schema-backed.d.ts +2 -2
  319. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  320. package/dist/src/internal/authored-module.d.ts +2 -1
  321. package/dist/src/internal/authored-module.js +1 -1
  322. package/dist/src/internal/helpers/markdown.js +1 -1
  323. package/dist/src/internal/mcp/skills.js +1 -1
  324. package/dist/src/internal/model-auth/available-models.js +1 -1
  325. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  326. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  327. package/dist/src/internal/nitro/host/local-schedules-runtime-plugin.d.ts +5 -0
  328. package/dist/src/internal/nitro/host/local-schedules-runtime-plugin.js +1 -0
  329. package/dist/src/internal/nitro/routes/schedule-collection-consumer.d.ts +6 -0
  330. package/dist/src/internal/nitro/routes/schedule-collection-consumer.js +1 -1
  331. package/dist/src/internal/schedules/consumer-route.d.ts +2 -0
  332. package/dist/src/internal/schedules/consumer-route.js +1 -1
  333. package/dist/src/internal/schedules/dev-environment.d.ts +2 -0
  334. package/dist/src/internal/schedules/dev-environment.js +1 -0
  335. package/dist/src/internal/vercel-agent-summary.d.ts +2 -2
  336. package/dist/src/internal/workflow/development-run-unavailable-error.d.ts +15 -0
  337. package/dist/src/internal/workflow/development-run-unavailable-error.js +1 -0
  338. package/dist/src/internal/workflow/development-world-server.js +1 -1
  339. package/dist/src/internal/workflow/vercel-world-defaults.d.ts +1 -1
  340. package/dist/src/internal/workflow/vercel-world-defaults.js +1 -1
  341. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  342. package/dist/src/protocol/catalog-tools.d.ts +12 -0
  343. package/dist/src/protocol/catalog-tools.js +1 -0
  344. package/dist/src/protocol/message-version.js +1 -1
  345. package/dist/src/protocol/message.d.ts +15 -1
  346. package/dist/src/protocol/message.js +1 -1
  347. package/dist/src/protocol/remote-agent-protocol.d.ts +2 -0
  348. package/dist/src/protocol/remote-agent-protocol.js +1 -1
  349. package/dist/src/protocol/reply-tool.d.ts +2 -0
  350. package/dist/src/protocol/reply-tool.js +1 -0
  351. package/dist/src/protocol/runtime-tools.d.ts +6 -0
  352. package/dist/src/protocol/runtime-tools.js +1 -0
  353. package/dist/src/protocol/session-projection.js +1 -1
  354. package/dist/src/protocol/task-tools.d.ts +4 -4
  355. package/dist/src/protocol/task-tools.js +1 -1
  356. package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -1
  357. package/dist/src/public/channels/index.d.ts +1 -1
  358. package/dist/src/public/channels/index.js +1 -1
  359. package/dist/src/public/channels/linear/defaults.js +2 -2
  360. package/dist/src/public/channels/slack/action-status.d.ts +0 -9
  361. package/dist/src/public/channels/slack/action-status.js +1 -1
  362. package/dist/src/public/channels/slack/defaults.js +2 -2
  363. package/dist/src/public/channels/slack/task-card.d.ts +1 -1
  364. package/dist/src/public/context/index.d.ts +1 -1
  365. package/dist/src/public/definitions/callback-context.d.ts +1 -1
  366. package/dist/src/public/definitions/channel.d.ts +1 -0
  367. package/dist/src/public/definitions/channel.js +1 -1
  368. package/dist/src/public/definitions/connections/mcp.d.ts +4 -4
  369. package/dist/src/public/definitions/connections/openapi.d.ts +6 -7
  370. package/dist/src/public/definitions/remote-agent.d.ts +6 -3
  371. package/dist/src/public/definitions/workspace-agent.d.ts +6 -3
  372. package/dist/src/public/experimental/schedules/index.d.ts +1 -1
  373. package/dist/src/public/models/openai/chatgpt/model.js +1 -1
  374. package/dist/src/public/models/openai/chatgpt/transport.js +1 -1
  375. package/dist/src/public/schedules/providers/in-memory.js +1 -1
  376. package/dist/src/public/schedules/providers/vercel.js +1 -1
  377. package/dist/src/public/schedules/subscription.d.ts +36 -16
  378. package/dist/src/public/tanstack/index.d.ts +40 -0
  379. package/dist/src/public/tanstack/index.js +1 -0
  380. package/dist/src/public/tools/web-search.d.ts +1 -1
  381. package/dist/src/runtime/agent/bootstrap.d.ts +2 -1
  382. package/dist/src/runtime/agent/bootstrap.js +1 -1
  383. package/dist/src/runtime/agent/mock-model-adapter.js +2 -2
  384. package/dist/src/runtime/agent/mock-model-fixtures.js +2 -2
  385. package/dist/src/runtime/agent/mock-model-skill-selection.d.ts +2 -0
  386. package/dist/src/runtime/agent/mock-model-skill-selection.js +2 -2
  387. package/dist/src/runtime/agent/mock-structured-output.d.ts +1 -1
  388. package/dist/src/runtime/agent/resolve-model.js +1 -1
  389. package/dist/src/runtime/connections/mcp-client.js +1 -1
  390. package/dist/src/runtime/connections/registry.js +1 -1
  391. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  392. package/dist/src/runtime/connections/tool-result.d.ts +2 -2
  393. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  394. package/dist/src/runtime/resolve-agent.js +1 -1
  395. package/dist/src/runtime/resolve-tool.js +1 -1
  396. package/dist/src/runtime/schedules/collection-client.d.ts +12 -3
  397. package/dist/src/runtime/schedules/collection-client.js +1 -1
  398. package/dist/src/runtime/subagents/dynamic-agent-config.d.ts +2 -2
  399. package/dist/src/runtime/subagents/dynamic-remote-agent-config.d.ts +2 -1
  400. package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
  401. package/dist/src/runtime/subagents/registry.d.ts +2 -1
  402. package/dist/src/runtime/subagents/registry.js +1 -1
  403. package/dist/src/runtime/tools/registry.d.ts +2 -0
  404. package/dist/src/runtime/tools/registry.js +1 -1
  405. package/dist/src/runtime/types.d.ts +3 -3
  406. package/dist/src/setup/connection-connector.js +1 -2
  407. package/dist/src/setup/flows/model-login.js +1 -1
  408. package/dist/src/setup/index.d.ts +1 -1
  409. package/dist/src/setup/index.js +1 -1
  410. package/dist/src/setup/integrations/slack/setup.d.ts +23 -3
  411. package/dist/src/setup/integrations/slack/setup.js +1 -1
  412. package/dist/src/setup/integrations/web/framework.d.ts +8 -0
  413. package/dist/src/setup/integrations/web/framework.js +1 -0
  414. package/dist/src/setup/integrations/web/hosting.d.ts +43 -0
  415. package/dist/src/setup/integrations/web/hosting.js +15 -0
  416. package/dist/src/setup/integrations/web/setup.d.ts +6 -10
  417. package/dist/src/setup/integrations/web/setup.js +23 -17
  418. package/dist/src/setup/primitives/process-output.d.ts +5 -0
  419. package/dist/src/setup/primitives/process-output.js +2 -1
  420. package/dist/src/setup/scaffold/create/project.js +1 -1
  421. package/dist/src/setup/scaffold/create/web-template.d.ts +7 -3
  422. package/dist/src/setup/scaffold/create/web-template.js +40 -3
  423. package/dist/src/setup/scaffold/update/channels.js +1 -1
  424. package/dist/src/setup/scaffold/update/update-slack-channel.d.ts +17 -0
  425. package/dist/src/setup/scaffold/update/update-slack-channel.js +1 -1
  426. package/dist/src/setup/slack-connect-create.d.ts +10 -2
  427. package/dist/src/setup/slack-connect-create.js +1 -1
  428. package/dist/src/setup/slack-connect-lifecycle.d.ts +92 -44
  429. package/dist/src/setup/slack-connect-lifecycle.js +1 -1
  430. package/dist/src/setup/slack-connect.d.ts +30 -11
  431. package/dist/src/setup/slack-connect.js +1 -1
  432. package/dist/src/setup/slack-setup-plan.d.ts +72 -0
  433. package/dist/src/setup/slack-setup-plan.js +1 -0
  434. package/dist/src/setup/slackbot.d.ts +75 -35
  435. package/dist/src/setup/slackbot.js +2 -1
  436. package/dist/src/setup/vercel-project-framework.js +1 -1
  437. package/dist/src/shared/action-label.d.ts +10 -0
  438. package/dist/src/shared/action-label.js +1 -0
  439. package/dist/src/shared/action-request-name.d.ts +3 -1
  440. package/dist/src/shared/action-request-name.js +1 -1
  441. package/dist/src/shared/action-types.d.ts +7 -8
  442. package/dist/src/shared/action-types.js +1 -1
  443. package/dist/src/shared/agent-definition.d.ts +36 -3
  444. package/dist/src/shared/agent-definition.js +1 -1
  445. package/dist/src/shared/chatgpt-model.d.ts +8 -0
  446. package/dist/src/shared/chatgpt-model.js +1 -1
  447. package/dist/src/shared/development-env-files.d.ts +4 -0
  448. package/dist/src/shared/development-env-files.js +1 -0
  449. package/dist/src/shared/input.d.ts +0 -1
  450. package/dist/src/shared/map-with-concurrency.d.ts +2 -0
  451. package/dist/src/shared/map-with-concurrency.js +1 -0
  452. package/dist/src/shared/skill-definition.d.ts +6 -0
  453. package/dist/src/shared/skill-package.d.ts +1 -0
  454. package/dist/src/shared/skill-package.js +1 -1
  455. package/dist/src/shared/web-search.d.ts +15 -2
  456. package/dist/src/shared/web-search.js +1 -1
  457. package/dist/src/subagents/callback-route.js +1 -1
  458. package/dist/src/svelte/index.js +1 -1
  459. package/dist/src/svelte/use-eve-agent.js +1 -1
  460. package/dist/src/tool-stubs/execute.d.ts +0 -3
  461. package/dist/src/tool-stubs/execute.js +1 -1
  462. package/dist/src/tool-stubs/rules.js +1 -1
  463. package/dist/src/tool-stubs/validate-targets.js +1 -1
  464. package/dist/src/tools/behavior.d.ts +3 -6
  465. package/dist/src/tools/definition.d.ts +5 -0
  466. package/dist/src/tools/dynamic.d.ts +5 -2
  467. package/dist/src/tools/provided/ask-question-workflow.js +1 -1
  468. package/dist/src/tools/provided/sleep-workflow.js +1 -1
  469. package/dist/src/tools/provided/task-cancel.d.ts +1 -1
  470. package/dist/src/tools/provided/task-wait.d.ts +1 -1
  471. package/dist/src/tools/provided/web-search.d.ts +20 -7
  472. package/dist/src/tools/provided/web-search.js +1 -1
  473. package/dist/src/tools/schema.d.ts +5 -0
  474. package/dist/src/tools/schema.js +1 -1
  475. package/dist/src/{runtime/connections/tool-signature.d.ts → tools/signature.d.ts} +2 -2
  476. package/dist/src/tools/workflow-definition.d.ts +1 -1
  477. package/dist/src/tracing/agent-approval-instrumentation.js +1 -1
  478. package/dist/src/tracing/agent-otel-provider.js +2 -2
  479. package/dist/src/tracing/agent-otel-runtime-context.d.ts +1 -0
  480. package/dist/src/tracing/agent-otel-runtime-context.js +1 -1
  481. package/dist/src/tracing/agent-otel-turn-state.d.ts +6 -0
  482. package/dist/src/tracing/agent-otel-turn-state.js +1 -0
  483. package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
  484. package/dist/src/tracing/agent-trace-context-codec.js +1 -1
  485. package/dist/src/tracing/agent-trace-state.d.ts +4 -1
  486. package/dist/src/vue/index.js +1 -1
  487. package/dist/src/vue/use-eve-agent.js +1 -1
  488. package/docs/agent-config.md +39 -8
  489. package/docs/channels/chat-sdk.mdx +1 -1
  490. package/docs/channels/custom.mdx +26 -0
  491. package/docs/channels/eve.mdx +8 -5
  492. package/docs/channels/slack.mdx +32 -82
  493. package/docs/code-extension.mdx +28 -7
  494. package/docs/concepts/built-in-tools.md +60 -43
  495. package/docs/concepts/context-control.md +1 -1
  496. package/docs/concepts/execution-model-and-durability.mdx +101 -1
  497. package/docs/concepts/project-structure.mdx +2 -2
  498. package/docs/concepts/sessions-runs-and-streaming.md +40 -38
  499. package/docs/connections/mcp.mdx +5 -5
  500. package/docs/connections/openapi.mdx +1 -1
  501. package/docs/connections/overview.mdx +4 -2
  502. package/docs/evals/assertions.mdx +5 -3
  503. package/docs/evals/reporters.mdx +3 -1
  504. package/docs/evals/tool-stubs.mdx +3 -1
  505. package/docs/extensions.md +2 -0
  506. package/docs/guides/client/messages.mdx +10 -1
  507. package/docs/guides/deployment/overview.md +2 -2
  508. package/docs/guides/dev-tui.md +4 -2
  509. package/docs/guides/dynamic-capabilities.md +14 -4
  510. package/docs/guides/frontend/meta.json +9 -1
  511. package/docs/guides/frontend/nextjs.mdx +1 -1
  512. package/docs/guides/frontend/overview.mdx +10 -9
  513. package/docs/guides/frontend/tanstack.mdx +201 -0
  514. package/docs/guides/remote-agents.md +10 -3
  515. package/docs/guides/session-context.md +1 -0
  516. package/docs/install-integrations.mdx +1 -1
  517. package/docs/instructions.mdx +6 -6
  518. package/docs/reference/cli.md +2 -2
  519. package/docs/reference/typescript-api.md +4 -4
  520. package/docs/skills.mdx +19 -4
  521. package/docs/subagents/index.mdx +5 -3
  522. package/docs/tools/human-in-the-loop.md +2 -0
  523. package/docs/tools/overview.mdx +22 -1
  524. package/docs/tools/tasks-upgrade.md +1 -1
  525. package/docs/tools/tasks.md +32 -32
  526. package/docs/tools/workflows.mdx +6 -6
  527. package/docs/tutorial/ship-it.mdx +1 -1
  528. package/docs/tutorial/team-playbooks.mdx +2 -2
  529. package/package.json +28 -6
  530. package/dist/src/execution/connection-announcement.d.ts +0 -7
  531. package/dist/src/execution/connection-announcement.js +0 -4
  532. package/dist/src/execution/tools/connection-approval.d.ts +0 -25
  533. package/dist/src/execution/tools/connection-approval.js +0 -1
  534. package/dist/src/execution/tools/connection-search-rank.d.ts +0 -21
  535. package/dist/src/execution/tools/connection-search-rank.js +0 -1
  536. package/dist/src/execution/tools/connection-target.d.ts +0 -18
  537. package/dist/src/execution/tools/connection-target.js +0 -1
  538. package/dist/src/execution/tools/connection-tools.d.ts +0 -4
  539. package/dist/src/execution/tools/connection-tools.js +0 -2
  540. package/dist/src/execution/tools/load-skill.d.ts +0 -10
  541. package/dist/src/execution/tools/load-skill.js +0 -1
  542. package/dist/src/extensions/code/extension/lib/github-shell.js +0 -1
  543. package/dist/src/extensions/code/extension/skills/pr/SKILL.md +0 -53
  544. package/dist/src/extensions/code/extension/subagents/worker/tools/load_skill.d.ts +0 -2
  545. package/dist/src/extensions/code/extension/subagents/worker/tools/load_skill.js +0 -1
  546. package/dist/src/harness/advertised-tools.d.ts +0 -26
  547. package/dist/src/harness/advertised-tools.js +0 -1
  548. package/dist/src/harness/nested-actions.d.ts +0 -23
  549. package/dist/src/harness/nested-actions.js +0 -1
  550. package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/cli-config.js +0 -1
  551. package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/cred-storage.js +0 -1
  552. package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/index.js +0 -1
  553. package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/schema.js +0 -1
  554. package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/schema.zod.js +0 -1
  555. package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.2.0/node_modules/@vercel/cli-config/dist/types.js +0 -1
  556. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/envpath.js +0 -1
  557. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/errors.js +0 -2
  558. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/errutils.js +0 -1
  559. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/exec.js +0 -1
  560. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/fsutils.js +0 -1
  561. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/index.js +0 -1
  562. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/lookup.js +0 -1
  563. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.0/node_modules/@vercel/cli-exec/dist/safety.js +0 -1
  564. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/auth-errors.js +0 -1
  565. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/exchange-vercel-oidc-token.js +0 -1
  566. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/get-context.js +0 -1
  567. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/get-vercel-oidc-token-sync.js +0 -1
  568. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/get-vercel-oidc-token-with-refresh.js +0 -2
  569. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/index.js +0 -1
  570. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/oauth.js +0 -1
  571. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/token-error.js +0 -1
  572. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/token-io.js +0 -1
  573. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/token-util.js +0 -2
  574. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/token.js +0 -1
  575. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/verify-vercel-oidc-token.js +0 -1
  576. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.0/node_modules/@vercel/oidc/dist/version.js +0 -1
  577. package/dist/src/node_modules/.pnpm/@vercel_queue@0.5.1_@opentelemetry_api@1.9.1/node_modules/@vercel/queue/dist/index.js +0 -36
  578. package/dist/src/node_modules/.pnpm/balanced-match@4.0.4/node_modules/balanced-match/dist/esm/index.js +0 -1
  579. package/dist/src/node_modules/.pnpm/brace-expansion@5.0.12/node_modules/brace-expansion/dist/esm/index.js +0 -1
  580. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js +0 -1
  581. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js +0 -1
  582. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js +0 -1
  583. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js +0 -1
  584. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js +0 -1
  585. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -1
  586. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/index.js +0 -1
  587. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/command.js +0 -1
  588. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/error.js +0 -2
  589. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/kill.js +0 -1
  590. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/promise.js +0 -1
  591. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stdio.js +0 -1
  592. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stream.js +0 -1
  593. package/dist/src/node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/buffer-stream.js +0 -1
  594. package/dist/src/node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/index.js +0 -1
  595. package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/core.js +0 -1
  596. package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/main.js +0 -1
  597. package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/realtime.js +0 -1
  598. package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/signals.js +0 -1
  599. package/dist/src/node_modules/.pnpm/is-stream@2.0.1/node_modules/is-stream/index.js +0 -1
  600. package/dist/src/node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js +0 -1
  601. package/dist/src/node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js +0 -1
  602. package/dist/src/node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js +0 -1
  603. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/index.js +0 -1
  604. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/compact/decrypt.js +0 -1
  605. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/compact/encrypt.js +0 -1
  606. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/flattened/decrypt.js +0 -1
  607. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/flattened/encrypt.js +0 -1
  608. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/general/decrypt.js +0 -1
  609. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/general/encrypt.js +0 -1
  610. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwk/embedded.js +0 -1
  611. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwk/thumbprint.js +0 -1
  612. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwks/local.js +0 -1
  613. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwks/remote.js +0 -1
  614. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/compact/sign.js +0 -1
  615. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/compact/verify.js +0 -1
  616. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/flattened/sign.js +0 -1
  617. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/flattened/verify.js +0 -1
  618. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/general/sign.js +0 -1
  619. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/general/verify.js +0 -1
  620. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/decrypt.js +0 -1
  621. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/encrypt.js +0 -1
  622. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/produce.js +0 -1
  623. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/sign.js +0 -1
  624. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/unsecured.js +0 -1
  625. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/verify.js +0 -1
  626. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/export.js +0 -1
  627. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/generate_key_pair.js +0 -1
  628. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/generate_secret.js +0 -1
  629. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/import.js +0 -1
  630. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/aesgcmkw.js +0 -1
  631. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/buffer_utils.js +0 -1
  632. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/cek.js +0 -1
  633. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_iv_length.js +0 -1
  634. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_key_type.js +0 -1
  635. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_p2s.js +0 -1
  636. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/crypto_key.js +0 -1
  637. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/decrypt_key_management.js +0 -1
  638. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/encrypt_key_management.js +0 -1
  639. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/epoch.js +0 -1
  640. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/invalid_key_input.js +0 -1
  641. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_disjoint.js +0 -1
  642. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_jwk.js +0 -1
  643. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_object.js +0 -1
  644. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/iv.js +0 -1
  645. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/jwt_claims_set.js +0 -1
  646. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/private_symbols.js +0 -1
  647. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/secs.js +0 -1
  648. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/validate_algorithms.js +0 -1
  649. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/validate_crit.js +0 -1
  650. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/aeskw.js +0 -1
  651. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/asn1.js +0 -1
  652. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/base64url.js +0 -1
  653. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/cbc_tag.js +0 -1
  654. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/check_cek_length.js +0 -1
  655. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/check_key_length.js +0 -1
  656. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/ciphers.js +0 -1
  657. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/decrypt.js +0 -1
  658. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/digest.js +0 -1
  659. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/dsa_digest.js +0 -1
  660. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/ecdhes.js +0 -1
  661. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/encrypt.js +0 -1
  662. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/fetch_jwks.js +0 -1
  663. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/generate.js +0 -1
  664. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/get_named_curve.js +0 -1
  665. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/get_sign_verify_key.js +0 -1
  666. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/hmac_digest.js +0 -1
  667. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/is_key_like.js +0 -1
  668. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/is_key_object.js +0 -1
  669. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/jwk_to_key.js +0 -1
  670. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/key_to_jwk.js +0 -1
  671. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/node_key.js +0 -1
  672. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/normalize_key.js +0 -1
  673. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/pbes2kw.js +0 -1
  674. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/random.js +0 -1
  675. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/rsaes.js +0 -1
  676. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/runtime.js +0 -1
  677. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/sign.js +0 -1
  678. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/timing_safe_equal.js +0 -1
  679. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/verify.js +0 -1
  680. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/webcrypto.js +0 -1
  681. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/base64url.js +0 -1
  682. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/decode_jwt.js +0 -1
  683. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/decode_protected_header.js +0 -1
  684. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/errors.js +0 -1
  685. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/runtime.js +0 -1
  686. package/dist/src/node_modules/.pnpm/merge-stream@2.0.0/node_modules/merge-stream/index.js +0 -1
  687. package/dist/src/node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js +0 -1
  688. package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -1
  689. package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/ast.js +0 -1
  690. package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/brace-expressions.js +0 -1
  691. package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/escape.js +0 -1
  692. package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/index.js +0 -1
  693. package/dist/src/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/esm/unescape.js +0 -1
  694. package/dist/src/node_modules/.pnpm/mixpart@0.0.6/node_modules/mixpart/dist/index.js +0 -7
  695. package/dist/src/node_modules/.pnpm/npm-run-path@4.0.1/node_modules/npm-run-path/index.js +0 -1
  696. package/dist/src/node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js +0 -1
  697. package/dist/src/node_modules/.pnpm/os-paths@4.4.0/node_modules/os-paths/src/lib/index.js +0 -1
  698. package/dist/src/node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js +0 -1
  699. package/dist/src/node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js +0 -1
  700. package/dist/src/node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js +0 -1
  701. package/dist/src/node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js +0 -1
  702. package/dist/src/node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js +0 -1
  703. package/dist/src/node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js +0 -1
  704. package/dist/src/node_modules/.pnpm/strip-final-newline@2.0.0/node_modules/strip-final-newline/index.js +0 -2
  705. package/dist/src/node_modules/.pnpm/which@2.0.2/node_modules/which/which.js +0 -1
  706. package/dist/src/node_modules/.pnpm/xdg-app-paths@5.5.1/node_modules/xdg-app-paths/src/lib/index.js +0 -1
  707. package/dist/src/node_modules/.pnpm/xdg-portable@7.3.0/node_modules/xdg-portable/src/lib/index.js +0 -1
  708. package/dist/src/public/tools/load-skill.d.ts +0 -3
  709. package/dist/src/public/tools/load-skill.js +0 -1
  710. package/dist/src/runtime/skills/fragment-context.d.ts +0 -4
  711. package/dist/src/runtime/skills/fragment-context.js +0 -1
  712. package/dist/src/tools/framework/connection-tools.d.ts +0 -3
  713. package/dist/src/tools/framework/connection-tools.js +0 -1
  714. package/dist/src/tools/provided/load-skill.d.ts +0 -2
  715. package/dist/src/tools/provided/load-skill.js +0 -1
  716. /package/dist/src/extensions/{code → git}/extension/lib/github-shell-schema.d.ts +0 -0
  717. /package/dist/src/extensions/{code → git}/extension/lib/github-shell-schema.js +0 -0
  718. /package/dist/src/extensions/{code → git}/extension/lib/signed-commit.d.ts +0 -0
  719. /package/dist/src/extensions/{code → git}/extension/lib/signed-commit.js +0 -0
  720. /package/dist/src/{runtime/connections/tool-signature.js → tools/signature.js} +0 -0
package/docs/skills.mdx CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  title: "Skills"
3
- description: "Author load-on-demand procedures the model pulls into context with load_skill."
3
+ description: "Author load-on-demand procedures the model pulls into context with eve__skill."
4
4
  ---
5
5
 
6
6
  A skill is a model-loadable procedure that follows the `SKILL.md` convention. It is a markdown document, optionally a packaged directory with supporting files, that the model pulls into context on demand rather than carrying on every turn. eve advertises each skill's description, and the model loads the full body only when a turn calls for it. This is progressive disclosure, the same model the broader Agent Skills standard uses, so a skill authored against that standard ports over as-is.
7
7
 
8
8
  ## How loading works
9
9
 
10
- eve scans the files under `agent/skills/` and exposes each one's description to the model alongside a framework-owned `load_skill` tool. When a request matches a skill's description (or you name the skill outright), the model calls `load_skill`, and eve appends that skill's markdown to the active turn's context.
10
+ eve scans the files under `agent/skills/` and lists each one's name and description in the system prompt. When a request matches a skill's description (or you name the skill outright), the model loads it with `eve__skill({ name })`, and the skill's markdown becomes the call's result in the active turn. An agent with skills always has the [`eve__skill` tool](./concepts/built-in-tools#eve__search-eve__tool-and-eve__skill). A load reports a `load-skill` action named for the skill, and `t.loadedSkill` asserts it in [evals](./evals/assertions).
11
11
 
12
- Listing skills and loading their instructions do not require a sandbox: `load_skill` returns static instructions from the compiled agent and dynamic instructions from session state. Only access to supporting package files requires a sandbox. Builds may also prewarm sandbox templates that contain static package files. Supporting files are available under `$HOME/.agents/skills/<skill>/`, with `/workspace/skills/<skill>/` as the fallback when `$HOME` is unavailable. Sibling references inside `SKILL.md`, such as `references/checklist.md`, are relative to the directory containing that specific `SKILL.md`.
12
+ Listing skills and loading their instructions do not require a sandbox: loading returns static instructions from the compiled agent and dynamic instructions from session state. Only access to supporting package files requires a sandbox. Builds may also prewarm sandbox templates that contain static package files. Supporting files are available under `$HOME/.agents/skills/<skill>/`, with `/workspace/skills/<skill>/` as the fallback when `$HOME` is unavailable. Sibling references inside `SKILL.md`, such as `references/checklist.md`, are relative to the directory containing that specific `SKILL.md`.
13
13
 
14
14
  The description is a routing hint, not a label. Write it as the task that should trigger activation:
15
15
 
@@ -19,6 +19,19 @@ Use when the user needs a release checklist or changelog workflow.
19
19
 
20
20
  Loading a skill adds instructions, never a new execution surface. Tools stay visible whether a skill is loaded or not. If you need typed runtime behavior, reach for a [tool](./tools) instead.
21
21
 
22
+ ## Deferred skills
23
+
24
+ An agent with many skills can keep most of them out of the system prompt. Set `deferred: true` in the frontmatter or on `defineSkill`:
25
+
26
+ ```md title="agent/skills/pdf-forms/SKILL.md"
27
+ ---
28
+ description: Fill and validate PDF forms.
29
+ deferred: true
30
+ ---
31
+ ```
32
+
33
+ A deferred skill isn't named in context; the catalog listing only says that deferred skills exist, and their namespaces. The model finds a deferred skill with `eve__search`, which ranks skills and tools together, and loads it with `eve__skill({ name })`. Its markdown, supporting files, and eval assertions work as they do for any other skill. Dynamic skills accept `deferred` too; see [Dynamic capabilities](./guides/dynamic-capabilities#dynamic-skills).
34
+
22
35
  ## Markdown vs `defineSkill`
23
36
 
24
37
  The smallest skill is a flat markdown file. The content is the procedure, and the name comes from the path.
@@ -27,6 +40,8 @@ The smallest skill is a flat markdown file. The content is the procedure, and th
27
40
  Use the weather tool before answering forecast or temperature questions.
28
41
  ```
29
42
 
43
+ A skill's name comes from its path and must use only ASCII letters, digits, underscores, and dashes, start with a letter or digit, and have at most 64 characters. The compiler rejects any other name.
44
+
30
45
  A flat markdown skill can skip the `description` frontmatter. When it does, eve advertises the first non-empty, non-code-fence line of the body with any leading `#`, `>`, `*`, or `-` marker stripped. If the body has no such line, eve falls back to the literal `Instructions for the <name> skill.`, which is a weak routing hint, so add a `description` when you want the model to route on intent.
31
46
 
32
47
  A packaged skill is a directory with a `SKILL.md` plus sibling files like `references/`, `assets/`, and `scripts/`. The packaged `SKILL.md` must carry `description` frontmatter; it has no filename slug to fall back on.
@@ -40,7 +55,7 @@ When the task is novel or ambiguous, gather evidence first, then answer with the
40
55
  key facts and the remaining uncertainty.
41
56
  ```
42
57
 
43
- eve reads `description`, optional `license`, and string `metadata`; other `SKILL.md` frontmatter is accepted as a no-op.
58
+ eve reads `description`, optional `license`, string `metadata`, and `deferred`; other `SKILL.md` frontmatter is accepted as a no-op.
44
59
 
45
60
  When markdown can't express what you need (typed values, generated content, or inline sibling files), author the skill in TypeScript with `defineSkill` from `eve/skills`:
46
61
 
@@ -74,7 +74,9 @@ export default defineAgent({
74
74
 
75
75
  The parent can alternatively export `disableTool()` from a same-named tool path, such as `agent/tools/researcher.ts`. This suppresses the derived model tool without removing `researcher` from the workflow invocation registry. A same-named authored tool replaces the model-facing surface while the workflow can still call the underlying subagent with `ctx.agent("researcher", ...)`.
76
76
 
77
- A declared local or remote subagent call returns a receipt, and the child's reply arrives as the task's result. Human input requests from the child surface on the parent session while the task works. `task_cancel` with the task's `taskId` cancels the child's current turn, and so does cancelling the calling turn.
77
+ Set `tool: "deferred"` to keep the subagent out of the parent model's tool list while the model can still call it. eve doesn't name the subagent in the parent's context; the model finds it with [`eve__search`](/docs/concepts/built-in-tools#eve__search-eve__tool-and-eve__skill) and calls it with `eve__tool`. The call then runs exactly like a direct subagent call. Use this when a parent has many specialists and you want to keep its tool list short.
78
+
79
+ A declared local or remote subagent call returns a receipt, and the child's reply arrives as the task's result. Human input requests from the child surface on the parent session while the task works. `eve__task_cancel` with the task's `taskId` cancels the child's current turn, and so does cancelling the calling turn.
78
80
 
79
81
  A mounted extension can also contribute declared subagents from `extension/subagents/`. The mount namespace prefixes the subagent visible to the consuming agent node: mounting an extension as `crm` exposes its `reviewer` subagent as `crm__reviewer`. The contributed subagent keeps its own isolated tools, connections, skills, hooks, instructions, sandbox, and nested subagents, and its modules can read configuration from the extension handle. See [Extensions](./extensions#add-a-subagent) for the authoring and override behavior.
80
82
 
@@ -225,7 +227,7 @@ A directly declared subagent's tool name is the bare path-derived name, with no
225
227
 
226
228
  The tool's description is the subagent's `description` followed by a sentence telling the model that the agent does not see the conversation and that `taskId` continues an agent task.
227
229
 
228
- By default, a subagent named `researcher` collides with an authored tool named `researcher`. Set the subagent's `tool` to `false` when the authored tool intentionally wraps that subagent; the authored tool becomes the model-facing capability while `ctx.agent("researcher", ...)` continues to address the child. A same-named `disableTool()` removes the model-facing capability entirely. Other static and active dynamic collisions remain errors.
230
+ By default, a subagent named `researcher` collides with an authored tool named `researcher`. Set the subagent's `tool` to `false` when the authored tool intentionally wraps that subagent; the authored tool becomes the model-facing capability while `ctx.agent("researcher", ...)` continues to address the child. A same-named `disableTool()` removes the model-facing capability entirely. The same holds for dynamic subagents and dynamic tools: a dynamic subagent whose resolved config sets `tool: false` can be wrapped by an authored tool, and a dynamic tool can wrap a static subagent hidden either way. Any other collision is an error: eve rejects a static one when the deployment builds, and logs a dynamic one and skips that resolver's result.
229
231
 
230
232
  Do not rely on subagent delegation by itself as an approval boundary. Put sensitive tools behind `approval`, connection approval, route/session authorization, or other controls wherever those tools can be called.
231
233
 
@@ -241,7 +243,7 @@ Subagent model calls automatically retry classified transient provider failures,
241
243
 
242
244
  A child parks after answering instead of terminating, keeping its session and conversation history alive. Pass the task's `taskId` to the same subagent tool with a new `message` to continue that session. Omitting `taskId` always starts a new child. When a child's turn fails, the call fails and the task ends. A `taskId` that names no task of that subagent tool, including one that ended, fails with `UNKNOWN_TASK`. Any later turn can continue the child, and each continuation runs with the auth of the caller that sends it.
243
245
 
244
- A call with the `taskId` of a child that is still working joins the child's current turn, and that turn's final reply settles both calls. If the turn ends before the child reads the message, the message starts the child's next turn, and that turn's reply settles both calls. Use it to correct or add to work in progress. `task_cancel` with the task's `taskId` cancels the child's current turn and keeps its conversation, so a later call with the same `taskId` continues where it left off.
246
+ A call with the `taskId` of a child that is still working joins the child's current turn, and that turn's final reply settles both calls. If the turn ends before the child reads the message, the message starts the child's next turn, and that turn's reply settles both calls. Use it to correct or add to work in progress. `eve__task_cancel` with the task's `taskId` cancels the child's current turn and keeps its conversation, so a later call with the same `taskId` continues where it left off.
245
247
 
246
248
  eve adds a framework-injected `[Tasks]` note to the conversation that lists the working and idle tasks by `taskId` and tool, so the model can find a child to continue. See [Tasks](./tools/tasks) for how the model waits for, corrects, and cancels agent tasks.
247
249
 
@@ -219,6 +219,8 @@ Approvals and questions share one protocol:
219
219
  3. The run parks durably, for as long as it takes. The turn stays open: the stream emits `turn.waiting`, and after the answer the turn resumes under the same `turnId`. That `turn.waiting` carries `on: "input"`, since a person must act.
220
220
  4. The client answers with `inputResponses` (structured, keyed by `requestId`) or a normal follow-up `message`. A follow-up whose text matches an option ID, option label, or numeric option index resolves automatically, including approval options such as `approve` and `cancel`.
221
221
 
222
+ To tell the model why a call was denied, send `text` with the `cancel` response, for example `{ requestId, optionId: "cancel", text: "Only the three-pack." }`. The model receives the note quoted in the denial result, marked as written by the person who denied the call, who may not be the user. The note is also visible to anyone who can read the session stream, in `input.resolved`.
223
+
222
224
  For `ctx.ask()` questions from tools and prompts proxied from subagents, a follow-up message answers the first open request, as described in [Several requests at once](#several-requests-at-once). The message must match an option, or the question must allow free text. Otherwise the message follows the session's `turnPolicy`. A steering message, the default, aborts the `ctx.abortSignal` of each `execute` workflow tool call the turn waits on, so a question such a call asked, such as `ask_question`'s, is withdrawn and resolves as `cancelled`. The model reads the message once those calls settle.
223
225
 
224
226
  Each request includes a `kind` discriminator: `tool-approval`, `question`, or
@@ -58,6 +58,25 @@ export default defineTool({
58
58
 
59
59
  The option defaults to `true` and works with `defineTool` and `defineWorkflowTool`. A root copy does not receive a tool with this option, and a tool authored inside a declared subagent is unavailable because that agent runs in a delegated session. This controls tool availability only; it does not add or remove entries from a workflow's `ctx.agents` registry.
60
60
 
61
+ ### Keep a tool out of the tool list
62
+
63
+ Set `deferred: true` when the model needs a tool only occasionally, or when an agent has more tools than you want in every model request:
64
+
65
+ ```ts title="agent/tools/export_report.ts"
66
+ export default defineTool({
67
+ deferred: true,
68
+ description: "Export a finished report as a PDF.",
69
+ inputSchema: z.object({ reportId: z.string() }),
70
+ execute({ reportId }) {
71
+ return exportReport(reportId);
72
+ },
73
+ });
74
+ ```
75
+
76
+ A deferred tool is not in the model's tool list, and eve doesn't name it in context. The model finds its name, description, and signature with [`eve__search`](/docs/concepts/built-in-tools#eve__search-eve__tool-and-eve__skill) and calls it with `eve__tool({ name: "export_report", input })`. After that, the call runs exactly like a direct call: approvals, `endsTurn`, `toModelOutput`, hooks, and stream events see `export_report`, not `execute`.
77
+
78
+ The option works with `defineTool`, `defineWorkflowTool`, and dynamic tool entries. Provider tools such as `webSearch()` cannot be deferred, because the provider has to see their definition; the compiler rejects `deferred` on them. To defer an agent, set [`tool: "deferred"`](/docs/subagents#declared-subagents) on its `defineAgent` definition.
79
+
61
80
  Compiled tools preserve Zod schema composition, including input and output schemas imported from helper modules. Durable replay metadata stays separate from the original schema, so adding it does not mutate shared schema objects.
62
81
 
63
82
  ### End the turn after a tool call
@@ -128,7 +147,9 @@ export default defineTool({
128
147
 
129
148
  The label is presentation only. It does not replace the path-derived tool name, enter model input, or change execution. eve records the bounded label on the corresponding public action event so activity renderers and other authorized stream consumers can use it without interpreting raw tool data. Built-in channel activity can show `Deploy storefront to production` instead of `Deploy`; if the callback throws or returns an empty label, activity falls back to a readable form of the tool name, such as `Sync accounts` for `sync_accounts`.
130
149
 
131
- Provided tools define labels for `bash`, `glob`, `grep`, `load_skill`, `read_file`, `web_fetch`, `web_search`, and `write_file`.
150
+ Provided tools define labels for `bash`, `glob`, `grep`, `read_file`, `web_fetch`, `web_search`, and `write_file`.
151
+
152
+ Calls the model makes through the [catalog](/docs/concepts/built-in-tools#eve__search-eve__tool-and-eve__skill) read the same way. A deferred tool, agent, or connection tool called through `eve__tool` shows its own label, exactly as a direct call would. An `eve__search` call shows `Search tools for “linear issues”`, then `Searched tools for “linear issues”, found 5` when it returns. A skill load shows `Load skill release-notes`, then `Loaded skill release-notes`, and a connection's sign-in entry shows `Sign in to Linear`.
132
153
 
133
154
  ### Stream preliminary tool results
134
155
 
@@ -148,7 +148,7 @@ The eval assertion `t.calledSubagent(name, { status })` keeps its API and reads
148
148
  A turn doesn't end while tasks are working, so one turn can span a wait. The stream
149
149
  reports each wait with the new `turn.waiting` event, which carries the open turn's `turnId`:
150
150
 
151
- - **Held turns.** When the model ends its text while its tasks work, and when `task_wait` has no
151
+ - **Held turns.** When the model ends its text while its tasks work, and when `eve__task_wait` has no
152
152
  result yet, the stream emits `turn.waiting`. The next `step.started` for the same `turnId` means
153
153
  the turn resumed. In a root session, the text before the wait completes as a normal
154
154
  `message.completed`; in child sessions and a schedule's sessions, that step reports
@@ -31,7 +31,7 @@ Defining none of the three, or more than one, throws when the tool is defined.
31
31
  | `execute` workflow tool, including `sleep` and `ask_question` | Tool call; the turn waits | The tool result | Aborts the call's `abortSignal` |
32
32
  | `task` workflow tool, including `agentRouter()` and the `workflow` tool | Task | A receipt, then a `task.result` message | Nothing |
33
33
  | `serve` workflow tool, including every agent tool | Resumable task | A receipt, then a `task.result` message per reply | Nothing |
34
- | `task_wait` | Wait inside the turn | Which tasks settled | Ends the wait |
34
+ | `eve__task_wait` | Wait inside the turn | Which tasks settled | Ends the wait |
35
35
  | Plain and MCP tools | Inside the model step | The tool result | Applied at the next step boundary |
36
36
 
37
37
  Waiting alone doesn't need a task. A question, a `sleep`, or an approval inside an `execute` call
@@ -97,7 +97,7 @@ conversation should continue while the review runs.
97
97
  A workflow tool body receives its signals from its context or, in a `serve` body, from each call
98
98
  `receive()` resolves:
99
99
 
100
- - **`abortSignal`** aborts when the call's work should stop: by `task_cancel`, `session.cancel()`,
100
+ - **`abortSignal`** aborts when the call's work should stop: by `eve__task_cancel`, `session.cancel()`,
101
101
  a cancelled or failed turn, or the end of the session, and, for an `execute` call, by a steering
102
102
  message that arrives while the turn waits on it. `execute` and `task` bodies read it as
103
103
  `ctx.abortSignal`. In a `serve` body, each call from `receive()` carries its own `abortSignal`;
@@ -134,12 +134,12 @@ provided `sleep` tool races its timer against the signal.
134
134
 
135
135
  ## What the model sees
136
136
 
137
- eve adds `task_wait`, `task_cancel`, and a short system prompt block that explains tasks whenever
137
+ eve adds `eve__task_wait`, `eve__task_cancel`, and a short system prompt block that explains tasks whenever
138
138
  the agent has an agent tool or a `task` or `serve` workflow tool. The block tells the model to call
139
- `task_wait` when it has nothing to say until a result arrives, and to reply when the person should
139
+ `eve__task_wait` when it has nothing to say until a result arrives, and to reply when the person should
140
140
  hear from it first, such as a confirmation that work is underway. In a child session or a
141
141
  schedule's session, where only the final reply reaches the caller, it tells the model to call
142
- `task_wait` instead of replying while tasks work.
142
+ `eve__task_wait` instead of replying while tasks work.
143
143
 
144
144
  **Receipts.** A call that starts a task returns a receipt as its tool result. Task ids are the tool
145
145
  name and six characters. A resumable task's receipt tells the model how to reach it again, and a
@@ -152,7 +152,7 @@ Sent to task researcher-7k2m9q. Its reply will arrive in a <task_result> message
152
152
  ```
153
153
 
154
154
  **Results.** Each result arrives once, as a `<task_result>` block in a `task.result` message that
155
- eve appends at the next step boundary, right after `task_wait` returns, or when a held turn
155
+ eve appends at the next step boundary, right after `eve__task_wait` returns, or when a held turn
156
156
  resumes. The body is the tool's `toModelOutput` projection of the output, or the error message for
157
157
  a failed call. All results in one message share a budget of 50 KB and 2,000 lines, after which the
158
158
  text is cut and marked `[truncated]`.
@@ -161,7 +161,7 @@ text is cut and marked `[truncated]`.
161
161
  <task_result id="deploy-4hd8sa" tool="deploy" status="completed">{"url":"https://…"}</task_result>
162
162
  ```
163
163
 
164
- **`task_wait({ timeoutSeconds? })`** controls when the model replies. The model should call it
164
+ **`eve__task_wait({ timeoutSeconds? })`** controls when the model replies. The model should call it
165
165
  sparingly, only when it deliberately wants to withhold a message from the user while waiting for
166
166
  a task result. Tasks keep running and their results reach the model without this call; the model
167
167
  can reply now if the user should hear from it.
@@ -175,9 +175,9 @@ model reads which tasks settled and which are still working, for example:
175
175
  deploy-4hd8sa completed; its result follows. 1 task is still working: researcher-7k2m9q.
176
176
  ```
177
177
 
178
- **`task_cancel({ taskId })`** stops a task's current work and says so. A resumable task's answer
178
+ **`eve__task_cancel({ taskId })`** stops a task's current work and says so. A resumable task's answer
179
179
  also tells the model how to give it new work. When the task has no work to stop, because it already
180
- finished or is an idle resumable task, `task_cancel` says that instead:
180
+ finished or is an idle resumable task, `eve__task_cancel` says that instead:
181
181
 
182
182
  ```text
183
183
  Stopped deploy-4hd8sa; it won't report back.
@@ -201,22 +201,22 @@ lists the working tasks and the 10 most recently used idle resumable tasks. The
201
201
 
202
202
  **Errors.** Two error codes are specific to tasks:
203
203
 
204
- | Code | When |
205
- | ---------------- | ---------------------------------------------------------------------------------- |
206
- | `UNKNOWN_TASK` | A call's `taskId` names no unfinished resumable task that the same tool started |
207
- | `UNKNOWN_TASK` | `task_cancel`'s `taskId` names no task; a finished or idle one has no work to stop |
208
- | `TOO_MANY_TASKS` | A call would start a task, or make an idle one work, while 32 tasks are working |
204
+ | Code | When |
205
+ | ---------------- | --------------------------------------------------------------------------------------- |
206
+ | `UNKNOWN_TASK` | A call's `taskId` names no unfinished resumable task that the same tool started |
207
+ | `UNKNOWN_TASK` | `eve__task_cancel`'s `taskId` names no task; a finished or idle one has no work to stop |
208
+ | `TOO_MANY_TASKS` | A call would start a task, or make an idle one work, while 32 tasks are working |
209
209
 
210
- A `final_output` call made while tasks are working returns an error that names them.
210
+ An `eve__reply` call made while tasks are working returns an error that names them.
211
211
 
212
212
  ## Turns wait for their tasks
213
213
 
214
214
  No turn ends while any task is working. When the model ends a turn early, eve waits as
215
- `task_wait` does: it parks until one of the tasks settles or the turn's own caller steers it,
215
+ `eve__task_wait` does: it parks until one of the tasks settles or the turn's own caller steers it,
216
216
  appends the results, and calls the model again in the same turn. No result ever starts a turn on
217
217
  its own. An idle resumable task isn't working, so it doesn't hold the turn.
218
218
 
219
- A held turn stays open. Each time it parks, when eve holds it or when `task_wait` has no result
219
+ A held turn stays open. Each time it parks, when eve holds it or when `eve__task_wait` has no result
220
220
  yet, the stream emits `turn.waiting` with the turn's `turnId`. The next `step.started` for the
221
221
  same `turnId` means the turn resumed, and `session.waiting` comes only after the turn ends. The
222
222
  model's text before the wait depends on the session:
@@ -240,14 +240,14 @@ ordinary reply, then post the reply after the results as another message. Slack
240
240
  turn's tasks in a live [task card](/docs/channels/slack#task-card).
241
241
 
242
242
  A steering message from the turn's own caller, one sent with `turnPolicy: "steer"`, the default,
243
- ends a `task_wait` and aborts the `abortSignal` of any `execute` call the turn waits on, but it
243
+ ends an `eve__task_wait` and aborts the `abortSignal` of any `execute` call the turn waits on, but it
244
244
  never interrupts a task. The model reads the message and decides whether to keep each task,
245
- correct an agent by calling it again with its `taskId`, or stop a task with `task_cancel`. A
245
+ correct an agent by calling it again with its `taskId`, or stop a task with `eve__task_cancel`. A
246
246
  `"queue"` message, or a message from another caller, waits for the turn to end.
247
247
 
248
248
  ## Cancel a task
249
249
 
250
- - **`task_cancel`** stops one task's current work.
250
+ - **`eve__task_cancel`** stops one task's current work.
251
251
  - **`session.cancel()`** cancels the turn, the `execute` calls it waits on, and every working task
252
252
  in the session.
253
253
  - **A failed turn** cancels every working task.
@@ -263,12 +263,12 @@ same `taskId` continues where it left off. A `serve` body that doesn't return to
263
263
 
264
264
  ## Stream events
265
265
 
266
- | Event | When | Data |
267
- | --------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
268
- | `task.started` | A call starts a task, or reaches a resumable task by its `taskId` | `taskId`, `callId`, `turnId`, the tool `name`, and `kind` |
269
- | `task.settled` | A reply, return, failure, or cancel settles one call | `taskId`, `callId`, `turnId`, `name`, `kind`, `status`, and `output`, `error`, or `cancel` |
270
- | `agent.started` | A workflow run, including an agent tool's, opens a session with an agent | `callId`, `turnId`, `taskId`, `name`, `sessionId`, `streamPath` |
271
- | `turn.waiting` | An open turn parks on its tasks, a `task_wait`, a question, a sign-in, or an approval | `turnId`, `sequence`, and `on`: `"input"` when a person must act, otherwise `"tasks"` |
266
+ | Event | When | Data |
267
+ | --------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
268
+ | `task.started` | A call starts a task, or reaches a resumable task by its `taskId` | `taskId`, `callId`, `turnId`, the tool `name`, and `kind` |
269
+ | `task.settled` | A reply, return, failure, or cancel settles one call | `taskId`, `callId`, `turnId`, `name`, `kind`, `status`, and `output`, `error`, or `cancel` |
270
+ | `agent.started` | A workflow run, including an agent tool's, opens a session with an agent | `callId`, `turnId`, `taskId`, `name`, `sessionId`, `streamPath` |
271
+ | `turn.waiting` | An open turn parks on its tasks, an `eve__task_wait`, a question, a sign-in, or an approval | `turnId`, `sequence`, and `on`: `"input"` when a person must act, otherwise `"tasks"` |
272
272
 
273
273
  `task.started` and `task.settled` come once each per call, and `(taskId, callId)` identifies the
274
274
  call. Both carry that call's `turnId`, which for a resumable task's later call can be a later turn
@@ -276,7 +276,7 @@ than the one that started the task, and the task's tool `name` and `kind`. `kind
276
276
  an agent tool's call and `"tool"` otherwise. Events recorded by earlier eve versions omit `name`
277
277
  and `kind` on `task.settled`; match those to their `task.started` by `callId`. `status` is `"completed"`, `"failed"`, or `"cancelled"`. A completed call carries
278
278
  `output`, a failed call carries `error`, and a cancelled call carries `cancel.reason`:
279
- `"task_cancel"` when the model called `task_cancel`, `"turn_cancelled"` when someone cancelled
279
+ `"task_cancel"` when the model called `eve__task_cancel`, `"turn_cancelled"` when someone cancelled
280
280
  the turn, or the working tasks between turns, or `"turn_ended"` when the turn ended, such as by
281
281
  failing, while the task still worked. `cancel` is absent when the task's run stopped on its own, and on events recorded by
282
282
  earlier eve versions.
@@ -284,9 +284,9 @@ earlier eve versions.
284
284
  when an `execute` call opened it. Results reach the model as a message in its history, not as a
285
285
  stream event, so read outcomes from `task.settled`. An `input.requested`,
286
286
  `authorization.required`, or `authorization.completed` event from a task's run carries its
287
- `taskId`. Hooks subscribe to the same events. The stream also carries the model's `task_wait` and
288
- `task_cancel` calls as ordinary `actions.requested` tool calls, so evals can assert on them. The
289
- `eve dev` terminal UI and Slack typing indicators leave those calls out; the terminal UI shows each
287
+ `taskId`. Hooks subscribe to the same events. The stream also carries the model's `eve__task_wait` and
288
+ `eve__task_cancel` calls as ordinary `actions.requested` tool calls, so evals can assert on them. The
289
+ `eve dev` terminal UI, channel activity such as Slack's status line, and ACP clients leave those calls out; the terminal UI shows each
290
290
  task's start and end instead. See
291
291
  [Sessions, runs, and streaming](/docs/concepts/sessions-runs-and-streaming#task-events) and
292
292
  [Follow a subagent](/docs/guides/client/streaming#follow-a-subagent).
@@ -294,12 +294,12 @@ task's start and end instead. See
294
294
  ## Ownership and limits
295
295
 
296
296
  - **Ownership.** Tasks belong to the session's open turn, not to the caller that started them. A
297
- session has at most one open turn, so `task_wait`, `task_cancel`, task results, and the `[Tasks]`
297
+ session has at most one open turn, so `eve__task_wait`, `eve__task_cancel`, task results, and the `[Tasks]`
298
298
  note cover every task in the session. Any later turn can continue an idle resumable task by its
299
299
  `taskId`, and that call runs with its own caller's auth. Only the turn's own caller steers it;
300
300
  anonymous callers share one identity.
301
301
  eve doesn't check which caller started a task: in a session with several people, such as a
302
- shared Slack thread, the model working for one person can continue or `task_cancel` a task
302
+ shared Slack thread, the model working for one person can continue or `eve__task_cancel` a task
303
303
  another person started. A continued `serve` task keeps the state its body built for earlier
304
304
  calls, so [key per-caller data on the principal](/docs/tools/workflows#resumable-tasks-serve)
305
305
  and enforce per-person access inside the tool.
@@ -273,8 +273,8 @@ Each call is a task with its own id, `<tool>-<6 characters>`:
273
273
  `task.result` message, which eve appends at the next step boundary. `toModelOutput` projects the
274
274
  result, not the receipt.
275
275
 
276
- The model waits for results with `task_wait` and stops a task with `task_cancel`, and a turn can't
277
- end while tasks are working. `task_cancel`, `session.cancel()`, a failed turn, and the
276
+ The model waits for results with `eve__task_wait` and stops a task with `eve__task_cancel`, and a turn can't
277
+ end while tasks are working. `eve__task_cancel`, `session.cancel()`, a failed turn, and the
278
278
  end of the session abort the call's `abortSignal`; the run waits up to 30 seconds for the body to
279
279
  finish unwinding, then ends as cancelled. See [Tasks](/docs/tools/tasks) for what the model sees,
280
280
  how held turns look on the stream, steering, events, and limits.
@@ -370,9 +370,9 @@ described in [Tasks](/docs/tools/tasks). What differs:
370
370
  - **One `abortSignal` per stretch of work:** a stretch starts when a call reaches an idle task and
371
371
  ends when a reply or a cancel settles its calls. Calls that arrive during a stretch share its
372
372
  signal, and the next stretch gets a new one, so a task can be cancelled any number of times.
373
- - **Cancellation:** `task_cancel`, `session.cancel()`, and a failed turn settle the task's waiting
373
+ - **Cancellation:** `eve__task_cancel`, `session.cancel()`, and a failed turn settle the task's waiting
374
374
  calls as `cancelled` and abort the stretch's `abortSignal`. The run keeps waiting for more calls,
375
- so the task becomes idle and stays available. `task_cancel` on an idle task says the task had no
375
+ so the task becomes idle and stays available. `eve__task_cancel` on an idle task says the task had no
376
376
  work to stop. To stay available, a body must catch its stretch's abort and
377
377
  return to `receive()`, as the example does; an abort that escapes the body finishes the task. A
378
378
  body that ignores the signal keeps working and its reply is dropped, but a body that doesn't
@@ -408,7 +408,7 @@ async function readRepository(ctx: WorkflowStepToolContext, repository: string)
408
408
  }
409
409
  ```
410
410
 
411
- Connection tools called through `connection_execute`, ordinary tools, and workflow steps use the same
411
+ Connection tools, ordinary tools, and workflow steps use the same
412
412
  authorization machinery for requester identity, token caching, callback completion, and rejection
413
413
  after sign-in. The execution runtime owns the wait: an agent returns to its model after authorization,
414
414
  while a workflow retries the interrupted step and continues the authored body.
@@ -709,7 +709,7 @@ Use [`ctx.ask`](#ask-a-human-ctxask) when the workflow needs a human answer. See
709
709
  ## Cancel and clean up: `ctx.abortSignal`
710
710
 
711
711
  `ctx.abortSignal` aborts when the call is cancelled: by `session.cancel()`, or, for a task, by
712
- `task_cancel`, a failed turn, or the end of the session. A steering message also aborts it for an
712
+ `eve__task_cancel`, a failed turn, or the end of the session. A steering message also aborts it for an
713
713
  `execute` call; see [Stop early for a new message](#stop-early-for-a-new-message). It is durable:
714
714
  it survives replay, and a step that receives it observes the abort. Pass it into the steps that
715
715
  should stop, and clean up in `try/finally`:
@@ -7,7 +7,7 @@ The analytics assistant runs in the TUI. Now add a web dashboard and deploy a pr
7
7
 
8
8
  ## Add the Web Chat app
9
9
 
10
- Step 1 scaffolded the agent without a web frontend. Add one now with `eve add channel/web`, run from the `analytics-assistant/` directory:
10
+ Step 1 scaffolded the agent without a web frontend. Add one now with `eve add channel/web`, run from the `analytics-assistant/` directory, and choose **Next.js** when it asks which framework to use:
11
11
 
12
12
  ```bash
13
13
  npx eve add channel/web
@@ -5,7 +5,7 @@ description: "Part 6 of the Build an Agent tutorial. Load the caller's team play
5
5
 
6
6
  The glossary from [Step 5](./remember-definitions) is per-session. But your teams have standing analysis conventions for the analytics assistant (Growth groups revenue by date, Finance reconciles customer totals), and those shouldn't bleed across tenants. Load the right team's playbook for whoever is asking.
7
7
 
8
- A skill is an on-demand procedure. The model pulls it in with `load_skill` only when a turn needs it. Make it dynamic and the skill gets decided at runtime instead of baked in. A `defineDynamic` resolver reads the session and returns a `defineSkill` (or nothing). Here you key that decision on the caller's identity in `ctx.session.auth`.
8
+ A skill is an on-demand procedure. The model pulls it in with `eve__skill({ name })` only when a turn needs it. Make it dynamic and the skill gets decided at runtime instead of baked in. A `defineDynamic` resolver reads the session and returns a `defineSkill` (or nothing). Here you key that decision on the caller's identity in `ctx.session.auth`.
9
9
 
10
10
  ## A playbook per principal
11
11
 
@@ -75,7 +75,7 @@ export default eveChannel({
75
75
  });
76
76
  ```
77
77
 
78
- Restart with `npm run dev` and ask "Summarize May 2026 revenue using our team's playbook." The model calls `load_skill`, queries the sample data, and applies Growth's daily and plan groupings. Switch `team` to `"finance"`, restart, and start a new session before asking again. The resolver runs at `session.started`, so changing the team does not replace the playbook in an existing session. The same question in the new session uses Finance's reconciliation rules.
78
+ Restart with `npm run dev` and ask "Summarize May 2026 revenue using our team's playbook." The model loads the skill with `eve__skill`, queries the sample data, and applies Growth's daily and plan groupings. Switch `team` to `"finance"`, restart, and start a new session before asking again. The resolver runs at `session.started`, so changing the team does not replace the playbook in an existing session. The same question in the new session uses Finance's reconciliation rules.
79
79
 
80
80
  Because the team comes from authenticated claims, not from the message, one tenant can't borrow another's playbook through the message content.
81
81
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eve",
3
- "version": "0.75.1",
3
+ "version": "0.76.2",
4
4
  "private": false,
5
5
  "description": "Filesystem-first framework for durable backend AI agents that run anywhere.",
6
6
  "keywords": [
@@ -16,6 +16,7 @@
16
16
  "observability",
17
17
  "react",
18
18
  "serverless",
19
+ "tanstack",
19
20
  "tools",
20
21
  "vercel",
21
22
  "workflow"
@@ -102,6 +103,11 @@
102
103
  "import": "./dist/src/public/sveltekit/index.js",
103
104
  "default": "./dist/src/public/sveltekit/index.js"
104
105
  },
106
+ "./tanstack": {
107
+ "types": "./dist/src/public/tanstack/index.d.ts",
108
+ "import": "./dist/src/public/tanstack/index.js",
109
+ "default": "./dist/src/public/tanstack/index.js"
110
+ },
105
111
  "./tools/approval": {
106
112
  "types": "./dist/src/public/tools/approval/index.d.ts",
107
113
  "import": "./dist/src/public/tools/approval/index.js",
@@ -182,11 +188,6 @@
182
188
  "import": "./dist/src/public/tools/web-search.js",
183
189
  "default": "./dist/src/public/tools/web-search.js"
184
190
  },
185
- "./tools/load_skill": {
186
- "types": "./dist/src/public/tools/load-skill.d.ts",
187
- "import": "./dist/src/public/tools/load-skill.js",
188
- "default": "./dist/src/public/tools/load-skill.js"
189
- },
190
191
  "./tools/glob": {
191
192
  "types": "./dist/src/public/tools/glob.d.ts",
192
193
  "import": "./dist/src/public/tools/glob.js",
@@ -381,6 +382,24 @@
381
382
  "import": "./dist/src/extensions/code/extension/lib/prwatch.js",
382
383
  "default": "./dist/src/extensions/code/extension/lib/prwatch.js"
383
384
  },
385
+ "./extensions/git": {
386
+ "eve-source": "./dist/src/extensions/git/extension/extension.js",
387
+ "types": "./dist/src/extensions/git/extension/extension.d.ts",
388
+ "import": "./dist/src/extensions/git/extension/extension.js",
389
+ "default": "./dist/src/extensions/git/extension/extension.js"
390
+ },
391
+ "./extensions/git/tools": {
392
+ "eve-source": "./dist/src/extensions/git/tools.js",
393
+ "types": "./dist/src/extensions/git/tools.d.ts",
394
+ "import": "./dist/src/extensions/git/tools.js",
395
+ "default": "./dist/src/extensions/git/tools.js"
396
+ },
397
+ "./extensions/git/sandbox": {
398
+ "eve-source": "./dist/src/extensions/git/extension/lib/sandbox.js",
399
+ "types": "./dist/src/extensions/git/extension/lib/sandbox.d.ts",
400
+ "import": "./dist/src/extensions/git/extension/lib/sandbox.js",
401
+ "default": "./dist/src/extensions/git/extension/lib/sandbox.js"
402
+ },
384
403
  "./computer-use": {
385
404
  "eve-source": "./dist/src/computer-use/extension/extension.js",
386
405
  "types": "./dist/src/computer-use/extension/extension.d.ts",
@@ -662,6 +681,9 @@
662
681
  "./extensions/code": {
663
682
  "dist": "./dist/src/extensions/code/extension"
664
683
  },
684
+ "./extensions/git": {
685
+ "dist": "./dist/src/extensions/git/extension"
686
+ },
665
687
  "./computer-use": {
666
688
  "dist": "./dist/src/computer-use/extension"
667
689
  }
@@ -1,7 +0,0 @@
1
- import type { ContextContainer } from "#context/container.js";
2
- /**
3
- * Announces the agent's connections for the current step: a baseline listing
4
- * the first time, then only what changed. Tool names and signatures stay out
5
- * of the listing; `connection_search` returns them.
6
- */
7
- export declare function announceConnections(ctx: ContextContainer): void;
@@ -1,4 +0,0 @@
1
- import{ConnectionRegistryKey}from"#context/providers/connection-key.js";import{setPendingAnnouncement}from"#harness/announcements.js";const ANNOUNCEMENT_KEY=`connections`;function announceConnections(e){let t=e.get(ConnectionRegistryKey);if(t===void 0){setPendingAnnouncement(e,ANNOUNCEMENT_KEY,void 0);return}let n=t.getConnections().map(e=>({description:e.description,name:e.connectionName})).sort((e,t)=>e.name.localeCompare(t.name));setPendingAnnouncement(e,ANNOUNCEMENT_KEY,{value:JSON.stringify(n),render:e=>renderConnectionsAnnouncement(parseListing(e),n)})}function renderConnectionsAnnouncement(e,t){if(e===void 0||e.length===0)return t.length===0?void 0:renderListing(t);if(t.length===0)return`Connections changed. No connections are available now; do not call connection_execute.`;let n=new Map(e.map(e=>[e.name,e])),r=new Set(t.map(e=>e.name)),i=t.filter(e=>n.get(e.name)?.description!==e.description),a=e.filter(e=>!r.has(e.name)),o=[`Connections changed.`];i.length>0&&o.push([`Added or updated:`,...i.map(formatEntry)].join(`
2
- `)),a.length>0&&o.push(`No longer available, do not call: ${a.map(e=>e.name).join(`, `)}`);let s=o.join(`
3
- `),c=`Connections changed. This list replaces the previous one.\n${renderListing(t)}`;return s.length<c.length?s:c}function renderListing(e){return[`Connections. Find their tools with connection_search and call them with connection_execute.`,...e.map(formatEntry)].join(`
4
- `)}function formatEntry(e){return e.description.length===0?`- ${e.name}`:`- ${e.name}: ${e.description}`}function parseListing(e){if(e!==void 0)try{let t=JSON.parse(e);return Array.isArray(t)?t:void 0}catch{return}}export{announceConnections};
@@ -1,25 +0,0 @@
1
- /**
2
- * Approval for `connection_execute`: each call is approved under the called
3
- * connection's own policy, keyed by connection and tool, and an approved call
4
- * runs only against the connection instance it was approved for.
5
- */
6
- import { type Approval, type ApprovalContext, type ApprovalResponseContext, type ApprovalResponseDecision, type ApprovalStatus } from "#approval/definition.js";
7
- import type { ResolvedConnectionDefinition } from "#runtime/types.js";
8
- /**
9
- * Delegates approval to the called connection's policy. The request and
10
- * response phases exist only when some registered connection defines them,
11
- * so connections without a response policy keep the default response flow
12
- * unless another connection in the same agent defines one.
13
- */
14
- export declare function connectionExecuteApproval(approvals: readonly Approval[]): {
15
- approvalKey?: undefined;
16
- approval?: undefined;
17
- } | {
18
- approvalKey: (input: unknown) => string;
19
- approval: ((context: ApprovalContext<Record<string, unknown>>) => Promise<ApprovalStatus>) | {
20
- request: (context: ApprovalContext<Record<string, unknown>>) => Promise<ApprovalStatus>;
21
- response: (context: ApprovalResponseContext<Record<string, unknown>>) => Promise<ApprovalResponseDecision>;
22
- };
23
- };
24
- /** Consumes the call's approval pin, rejecting the call if its connection changed. */
25
- export declare function releaseApprovalPin(callId: string, connection: ResolvedConnectionDefinition): void;
@@ -1 +0,0 @@
1
- import{CONNECTION_EXECUTE_TOOL_NAME,findConnection,qualifiedToolName,readExecuteTarget}from"./connection-target.js";import{loadContext}from"#context/container.js";import{defineDurableCallback}from"#tools/durable-callbacks.js";import{ContextKey}from"#context/key.js";import{ConnectionRegistryKey}from"#context/providers/connection-key.js";import{resolveApprovalPolicy}from"#approval/definition.js";import{isApprovalRecheck}from"#harness/approval-recheck.js";const ConnectionApprovalPinsKey=new ContextKey(`eve.connectionApprovalPins`);function connectionExecuteApproval(e){if(e.length===0)return{};let t=defineDurableCallback({callback:requestConnectionApproval,closure:{}}),n=e.some(e=>typeof e!=`function`&&e.response!==void 0);return{approvalKey:defineDurableCallback({callback:connectionApprovalKey,closure:{}}),approval:n?{request:t,response:defineDurableCallback({callback:authorizeConnectionApprovalResponse,closure:{}})}:t}}function connectionApprovalKey(e,t){let n=readExecuteTarget(t);return n===void 0?CONNECTION_EXECUTE_TOOL_NAME:approvalKeyFor(n)}function approvalKeyFor(e){return JSON.stringify([e.connection,e.tool])}function policyApprovedTools(e,t){let n=qualifiedToolName(t),r=new Set([...e].filter(e=>e!==n));return e.has(approvalKeyFor(t))&&r.add(n),r}async function requestConnectionApproval(e,t){let n=readExecuteTarget(t.toolInput),r=loadContext().get(ConnectionRegistryKey);if(n===void 0||r===void 0)return`not-applicable`;let i=findConnection(r,n.connection),a=i===void 0?void 0:r.getConnectionApproval(i.connectionName);if(i===void 0||a===void 0)return`not-applicable`;isApprovalRecheck(t)&&!matchesApprovalPin(t.callId,i)&&markApprovalPinChanged(t.callId);let o=await resolveApprovalPolicy(a)({...t,approvedTools:policyApprovedTools(t.approvedTools,n),toolInput:n.input,toolName:qualifiedToolName(n)});return!isApprovalRecheck(t)&&parksForApproval(o)&&pinApprovedInstance(t.callId,i),o}function parksForApproval(e){return e===!0||e===`user-approval`||typeof e==`object`&&e.type===`user-approval`}async function authorizeConnectionApprovalResponse(e,t){let n=readExecuteTarget(t.request.toolInput),r=loadContext().get(ConnectionRegistryKey),i=n===void 0||r===void 0?void 0:findConnection(r,n.connection);if(n===void 0||r===void 0||i===void 0)return{reason:`The connection for this tool call is unavailable.`,status:`rejected`};if(!matchesApprovalPin(t.request.callId,i))return{reason:CONNECTION_CHANGED_MESSAGE,status:`rejected`};let a=r.getConnectionApproval(i.connectionName),o=a===void 0||typeof a==`function`?void 0:a.response;return o===void 0?{status:`allowed`}:await o({...t,request:{...t.request,toolInput:n.input,toolName:qualifiedToolName(n)}})}const CONNECTION_CHANGED_MESSAGE=`The connection for this tool call changed or is unavailable. Request a new tool call and approval.`;function pinApprovedInstance(e,t){let n=t.instanceId??``,r=loadContext();r.get(ConnectionApprovalPinsKey)?.[e]===void 0&&r.set(ConnectionApprovalPinsKey,(t={})=>Object.fromEntries([...Object.entries(t).slice(-49),[e,n]]))}function matchesApprovalPin(e,t){let n=loadContext().get(ConnectionApprovalPinsKey)?.[e];return n!==void 0&&n===(t.instanceId??``)}function markApprovalPinChanged(e){loadContext().set(ConnectionApprovalPinsKey,(t={})=>({...t,[e]:`\0changed`}))}function releaseApprovalPin(e,t){let n=loadContext(),r=n.get(ConnectionApprovalPinsKey);if(r?.[e]===void 0)return;let{[e]:i,...a}=r;if(n.set(ConnectionApprovalPinsKey,a),i!==(t.instanceId??``))throw Error(CONNECTION_CHANGED_MESSAGE)}export{connectionExecuteApproval,releaseApprovalPin};
@@ -1,21 +0,0 @@
1
- /**
2
- * Keyword ranking for `connection_search` and for `connection_execute`'s
3
- * suggestions when a tool name is unknown. Query and field text split into
4
- * lowercase words (camelCase and punctuation are boundaries); a query word
5
- * matches a field word when either is a prefix of the other, so `repo` finds
6
- * `repositories` and `issues` finds `issue`. Each query word adds the weight of
7
- * every field it matches, so broad fields rank below a tool's own name.
8
- */
9
- import type { ResolvedConnectionDefinition } from "#runtime/types.js";
10
- import type { ConnectionToolMetadata } from "#shared/connection-types.js";
11
- export interface RankCandidate {
12
- readonly connection: Pick<ResolvedConnectionDefinition, "connectionName" | "description">;
13
- readonly tool: ConnectionToolMetadata;
14
- }
15
- /** Candidates matching `query`, best first. An empty query matches every candidate. */
16
- export declare function rankConnectionTools<T extends RankCandidate>(query: string, candidates: readonly T[]): T[];
17
- /**
18
- * Names of one connection's tools closest to an unknown `name`. Only the tools'
19
- * own fields count, since every candidate shares the connection.
20
- */
21
- export declare function closestToolNames(name: string, tools: readonly ConnectionToolMetadata[], limit: number): string[];
@@ -1 +0,0 @@
1
- import{isObject}from"#shared/guards.js";function rankConnectionTools(e,t){let n=tokenize(e);return t.map(e=>({candidate:e,score:n.length===0?1:scoreFields(n,[...toolFields(e.tool),[tokenize(e.connection.connectionName),4],[tokenize(e.connection.description),1]])})).filter(e=>e.score>0).sort((e,t)=>t.score-e.score||e.candidate.connection.connectionName.localeCompare(t.candidate.connection.connectionName)||e.candidate.tool.name.localeCompare(t.candidate.tool.name)).map(e=>e.candidate)}function closestToolNames(e,t,n){let r=tokenize(e);return r.length===0?[]:t.map(e=>({name:e.name,score:scoreFields(r,toolFields(e))})).filter(e=>e.score>0).sort((e,t)=>t.score-e.score||e.name.localeCompare(t.name)).slice(0,n).map(e=>e.name)}function toolFields(e){let t=isObject(e.inputSchema.properties)?Object.entries(e.inputSchema.properties):[],n=t.flatMap(([,e])=>isObject(e)&&typeof e.description==`string`?[e.description]:[]);return[[tokenize(e.name),6],[t.flatMap(([e])=>tokenize(e)),3],[tokenize(e.description),2],[n.flatMap(tokenize),1]]}function scoreFields(e,t){let n=0;for(let r of e)for(let[e,i]of t)e.some(e=>matchesWord(e,r))&&(n+=i);return n}function matchesWord(e,t){return e.startsWith(t)||e.length>=3&&t.startsWith(e)}function tokenize(e){return e.replaceAll(/([a-z0-9])([A-Z])/gu,`$1 $2`).toLowerCase().split(/[^a-z0-9]+/u).filter(e=>e.length>1)}export{closestToolNames,rankConnectionTools};
@@ -1,18 +0,0 @@
1
- /** The `connection_execute` call target, shared by execution and approval. */
2
- import type { ConnectionRegistry } from "#runtime/connections/registry-types.js";
3
- import type { ResolvedConnectionDefinition } from "#runtime/types.js";
4
- import type { JsonObject } from "#shared/json.js";
5
- export declare const CONNECTION_EXECUTE_TOOL_NAME = "connection_execute";
6
- export interface ExecuteTarget {
7
- readonly connection: string;
8
- readonly input: JsonObject;
9
- readonly tool: string;
10
- }
11
- export declare function readExecuteTarget(value: unknown): ExecuteTarget | undefined;
12
- export declare function qualifiedToolName(target: Pick<ExecuteTarget, "connection" | "tool">): string;
13
- /**
14
- * How a tool call reads to a person: `Linear: List issues` for a
15
- * `connection_execute` call, otherwise the tool's display title.
16
- */
17
- export declare function toolCallDisplayName(toolName: string, input: unknown): string;
18
- export declare function findConnection(registry: ConnectionRegistry, name: string): ResolvedConnectionDefinition | undefined;
@@ -1 +0,0 @@
1
- import{isObject}from"#shared/guards.js";import{displayProperName,displayTitle}from"#shared/display-name.js";const CONNECTION_EXECUTE_TOOL_NAME=`connection_execute`;function readExecuteTarget(e){if(!isObject(e))return;let{connection:t,input:n,tool:r}=e;if(typeof t==`string`&&typeof r==`string`)return{connection:t,input:isObject(n)?n:{},tool:r}}function qualifiedToolName(e){return`${e.connection}__${e.tool}`}function toolCallDisplayName(e,t){let n=e===`connection_execute`?readExecuteTarget(t):void 0;return n===void 0?displayTitle(e):`${displayProperName(n.connection)}: ${displayTitle(n.tool)}`}function findConnection(e,t){return e.getConnections().find(e=>e.connectionName===t)}export{CONNECTION_EXECUTE_TOOL_NAME,findConnection,qualifiedToolName,readExecuteTarget,toolCallDisplayName};
@@ -1,4 +0,0 @@
1
- import type { DynamicToolSet } from "#tools/dynamic.js";
2
- export declare const CONNECTION_SEARCH_TOOL_NAME = "connection_search";
3
- /** Builds both tools for the current step, or `null` when the agent has no connections. */
4
- export declare function resolveConnectionTools(): DynamicToolSet | null;