eve 0.83.2 → 0.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1562) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +1 -5
  3. package/dist/src/_virtual/_rolldown/runtime.js +1 -1
  4. package/dist/src/acp/adapter.d.ts +8 -5
  5. package/dist/src/acp/adapter.js +1 -1
  6. package/dist/src/ai/decide.d.ts +3 -7
  7. package/dist/src/ai/decide.js +1 -1
  8. package/dist/src/ai/decision-adapter.d.ts +7 -0
  9. package/dist/src/ai/decision-adapter.js +1 -0
  10. package/dist/src/ai/decision-types.d.ts +86 -0
  11. package/dist/src/approval/definition.d.ts +5 -12
  12. package/dist/src/approval/evaluation.d.ts +48 -0
  13. package/dist/src/approval/evaluation.js +1 -0
  14. package/dist/src/approval/status.d.ts +14 -0
  15. package/dist/src/approval/status.js +1 -0
  16. package/dist/src/channel/adapter-context.d.ts +1 -3
  17. package/dist/src/channel/adapter-context.js +1 -1
  18. package/dist/src/channel/adapter.d.ts +34 -26
  19. package/dist/src/channel/adapter.js +1 -1
  20. package/dist/src/channel/audience.d.ts +0 -3
  21. package/dist/src/channel/audience.js +1 -1
  22. package/dist/src/channel/auth/definitions.d.ts +532 -0
  23. package/dist/src/channel/auth/definitions.js +1 -0
  24. package/dist/src/channel/auth/jwt-ecdsa.js +1 -1
  25. package/dist/src/channel/auth/jwt-hmac.js +1 -1
  26. package/dist/src/channel/auth/oidc.js +1 -1
  27. package/dist/src/channel/channel-address.d.ts +12 -10
  28. package/dist/src/channel/channel-address.js +1 -1
  29. package/dist/src/channel/channel-operations.d.ts +21 -22
  30. package/dist/src/channel/channel-operations.js +1 -1
  31. package/dist/src/channel/compiled-channel.d.ts +4 -4
  32. package/dist/src/channel/conversation-context.js +1 -1
  33. package/dist/src/channel/cors.d.ts +2 -2
  34. package/dist/src/channel/cors.js +1 -1
  35. package/dist/src/channel/cross-channel-receive.d.ts +3 -3
  36. package/dist/src/channel/delivery-idempotency.d.ts +6 -0
  37. package/dist/src/channel/delivery-idempotency.js +1 -1
  38. package/dist/src/channel/delivery-metadata.d.ts +2 -2
  39. package/dist/src/channel/delivery.d.ts +8 -0
  40. package/dist/src/channel/delivery.js +1 -0
  41. package/dist/src/channel/interaction-prompts.d.ts +54 -0
  42. package/dist/src/channel/interaction-prompts.js +1 -0
  43. package/dist/src/channel/invoke-tool.d.ts +11 -18
  44. package/dist/src/channel/pending-authorization.d.ts +3 -14
  45. package/dist/src/channel/pending-authorization.js +1 -1
  46. package/dist/src/channel/prompt-queue.d.ts +11 -19
  47. package/dist/src/channel/prompt-queue.js +1 -1
  48. package/dist/src/channel/resolve-text.d.ts +11 -18
  49. package/dist/src/channel/resolve-text.js +2 -2
  50. package/dist/src/channel/resolved-prompt.d.ts +7 -5
  51. package/dist/src/channel/resolved-prompt.js +1 -1
  52. package/dist/src/channel/routes.d.ts +4 -4
  53. package/dist/src/channel/schedule.d.ts +2 -2
  54. package/dist/src/channel/schedule.js +1 -1
  55. package/dist/src/channel/send-input.d.ts +3 -3
  56. package/dist/src/channel/send-input.js +1 -1
  57. package/dist/src/channel/session-callback.js +1 -1
  58. package/dist/src/channel/session-not-active-error.d.ts +8 -12
  59. package/dist/src/channel/session-not-active-error.js +1 -1
  60. package/dist/src/channel/session.d.ts +33 -59
  61. package/dist/src/channel/session.js +1 -1
  62. package/dist/src/channel/sign-in.d.ts +61 -0
  63. package/dist/src/channel/sign-in.js +3 -0
  64. package/dist/src/channel/surface.d.ts +44 -0
  65. package/dist/src/channel/surface.js +1 -0
  66. package/dist/src/channel/task-card.d.ts +24 -114
  67. package/dist/src/channel/task-card.js +1 -1
  68. package/dist/src/channel/types.d.ts +116 -110
  69. package/dist/src/channel/types.js +1 -1
  70. package/dist/src/chunks/use-eve-agent-BbbguIdB.js +5030 -0
  71. package/dist/src/chunks/use-eve-agent-DWjyzplb.js +5077 -0
  72. package/dist/src/cli/commands/logs-events.d.ts +2 -0
  73. package/dist/src/cli/commands/logs-events.js +2 -2
  74. package/dist/src/cli/dev/command.js +1 -1
  75. package/dist/src/cli/dev/remote-print.d.ts +8 -0
  76. package/dist/src/cli/dev/remote-print.js +1 -0
  77. package/dist/src/cli/dev/tui/conversation-view.d.ts +24 -19
  78. package/dist/src/cli/dev/tui/conversation-view.js +1 -1
  79. package/dist/src/cli/dev/tui/diagnostic-presentation.d.ts +0 -10
  80. package/dist/src/cli/dev/tui/diagnostic-presentation.js +2 -3
  81. package/dist/src/cli/dev/tui/errors.d.ts +9 -65
  82. package/dist/src/cli/dev/tui/errors.js +1 -1
  83. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  84. package/dist/src/cli/dev/tui/runner.js +3 -3
  85. package/dist/src/cli/dev/tui/task-records.d.ts +3 -3
  86. package/dist/src/cli/dev/tui/task-records.js +1 -1
  87. package/dist/src/cli/dev/tui/terminal-renderer.js +10 -10
  88. package/dist/src/cli/dev/tui/terminal-tool-part.d.ts +2 -2
  89. package/dist/src/cli/dev/tui/terminal-tool-part.js +1 -1
  90. package/dist/src/cli/dev/tui/test/fake-eve-server.d.ts +3 -3
  91. package/dist/src/cli/dev/tui/test/fake-eve-server.js +1 -1
  92. package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
  93. package/dist/src/cli/dev/tui/transcript-parts.d.ts +16 -16
  94. package/dist/src/cli/dev/tui/transcript-parts.js +3 -3
  95. package/dist/src/cli/dev/tui/transcript.d.ts +0 -4
  96. package/dist/src/cli/dev/tui/transcript.js +1 -1
  97. package/dist/src/cli/dev/tui/tui.js +1 -1
  98. package/dist/src/cli/run.d.ts +0 -2
  99. package/dist/src/cli/run.js +1 -1
  100. package/dist/src/cli/telemetry/index.js +1 -1
  101. package/dist/src/client/agent-base-url.d.ts +4 -0
  102. package/dist/src/client/agent-base-url.js +1 -0
  103. package/dist/src/client/agent-info-schema.d.ts +1 -923
  104. package/dist/src/client/agent-info-schema.js +1 -1
  105. package/dist/src/client/agent-info-types.d.ts +281 -0
  106. package/dist/src/client/agent-session.d.ts +19 -22
  107. package/dist/src/client/agent-session.js +1 -1
  108. package/dist/src/client/agent-stream-follower.d.ts +11 -20
  109. package/dist/src/client/agent-stream-follower.js +1 -1
  110. package/dist/src/client/client-error.d.ts +2 -1
  111. package/dist/src/client/client-error.js +1 -1
  112. package/dist/src/client/client.d.ts +1 -1
  113. package/dist/src/client/client.js +1 -1
  114. package/dist/src/client/conversation-client.d.ts +37 -28
  115. package/dist/src/client/conversation-client.js +1 -1
  116. package/dist/src/client/conversation-state.d.ts +70 -73
  117. package/dist/src/client/conversation-state.js +1 -1
  118. package/dist/src/client/conversation.d.ts +51 -0
  119. package/dist/src/client/conversation.js +1 -0
  120. package/dist/src/client/delivery-events.d.ts +3 -0
  121. package/dist/src/client/delivery-events.js +1 -0
  122. package/dist/src/client/delivery.d.ts +36 -0
  123. package/dist/src/client/delivery.js +1 -0
  124. package/dist/src/client/file-parts.d.ts +9 -4
  125. package/dist/src/client/file-parts.js +1 -1
  126. package/dist/src/client/health-schema.d.ts +1 -1
  127. package/dist/src/client/health-types.d.ts +6 -0
  128. package/dist/src/client/index.d.ts +17 -23
  129. package/dist/src/client/index.js +1 -1
  130. package/dist/src/client/message-types.d.ts +92 -0
  131. package/dist/src/client/message-types.js +1 -0
  132. package/dist/src/client/messages.d.ts +30 -0
  133. package/dist/src/client/messages.js +1 -0
  134. package/dist/src/client/ndjson.d.ts +6 -11
  135. package/dist/src/client/ndjson.js +3 -3
  136. package/dist/src/client/open-stream.d.ts +47 -20
  137. package/dist/src/client/open-stream.js +1 -1
  138. package/dist/src/client/optimistic-message-submissions.d.ts +10 -19
  139. package/dist/src/client/optimistic-message-submissions.js +1 -1
  140. package/dist/src/client/session-controls.d.ts +23 -26
  141. package/dist/src/client/session-controls.js +1 -1
  142. package/dist/src/client/session-event-stream.d.ts +5 -16
  143. package/dist/src/client/session-event-stream.js +1 -1
  144. package/dist/src/client/session-store-helpers.d.ts +8 -0
  145. package/dist/src/client/session-store-helpers.js +2 -0
  146. package/dist/src/client/session-store-state.d.ts +80 -0
  147. package/dist/src/client/session-store-state.js +1 -0
  148. package/dist/src/client/session-store.d.ts +48 -0
  149. package/dist/src/client/session-store.js +1 -0
  150. package/dist/src/client/session-utils.d.ts +45 -41
  151. package/dist/src/client/session-utils.js +2 -1
  152. package/dist/src/client/session.d.ts +32 -23
  153. package/dist/src/client/session.js +1 -1
  154. package/dist/src/client/sessions.d.ts +2 -2
  155. package/dist/src/client/stream-version.d.ts +3 -1
  156. package/dist/src/client/stream-version.js +1 -1
  157. package/dist/src/client/transcript.d.ts +43 -0
  158. package/dist/src/client/transcript.js +2 -0
  159. package/dist/src/client/types.d.ts +21 -82
  160. package/dist/src/client/url.d.ts +3 -3
  161. package/dist/src/compiled/.vendor-stamp.json +1 -1
  162. package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +34 -34
  163. package/dist/src/compiled/@ai-sdk/google/index.d.ts +15 -15
  164. package/dist/src/compiled/@ai-sdk/openai/index.d.ts +38 -38
  165. package/dist/src/compiled/@chat-adapter/slack/fetch-QqNM_Ef3.d.ts +4 -0
  166. package/dist/src/compiled/@chat-adapter/twilio/types-BaIqtt65.d.ts +100 -0
  167. package/dist/src/compiled/@linqapp/chat-sdk-adapter/adapter.d.ts +129 -0
  168. package/dist/src/compiled/@linqapp/chat-sdk-adapter/message-parser.d.ts +14 -0
  169. package/dist/src/compiled/@linqapp/chat-sdk-adapter/text-decorations.d.ts +28 -0
  170. package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +1 -1
  171. package/dist/src/compiled/@workflow/core/serialization/types.d.ts +1 -1
  172. package/dist/src/compiled/@workflow/core/serialization.d.ts +2 -2
  173. package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +2 -2
  174. package/dist/src/compiled/semver/index.d.ts +2 -0
  175. package/dist/src/compiler/development-extensions.js +1 -1
  176. package/dist/src/compiler/extension-compatibility.d.ts +19 -290
  177. package/dist/src/compiler/extension-compatibility.js +1 -1
  178. package/dist/src/compiler/manifest.d.ts +1 -9
  179. package/dist/src/compiler/manifest.js +1 -1
  180. package/dist/src/compiler/normalize-agent-config.js +1 -1
  181. package/dist/src/compiler/normalize-connection.js +1 -1
  182. package/dist/src/compiler/normalize-hook.js +1 -1
  183. package/dist/src/compiler/normalize-instructions.js +1 -1
  184. package/dist/src/compiler/normalize-manifest.js +1 -1
  185. package/dist/src/compiler/normalize-memory.js +1 -1
  186. package/dist/src/compiler/normalize-schedule.js +1 -1
  187. package/dist/src/compiler/normalize-skill.js +1 -1
  188. package/dist/src/compiler/normalize-subagent.d.ts +0 -5
  189. package/dist/src/compiler/normalize-subagent.js +1 -1
  190. package/dist/src/compiler/normalize-tool.js +1 -1
  191. package/dist/src/compiler/remote-agent-node.d.ts +1 -6
  192. package/dist/src/compiler/source-graph.d.ts +0 -1
  193. package/dist/src/compiler/source-graph.js +1 -1
  194. package/dist/src/computer-use/extension/lib/computer-use-sandbox.js +1 -1
  195. package/dist/src/computer-use/extension/lib/sandbox.d.ts +1 -1
  196. package/dist/src/computer-use/extension/lib/sandbox.js +1 -1
  197. package/dist/src/computer-use/extension/tools/computer_use.js +1 -1
  198. package/dist/src/connections/errors.d.ts +3 -3
  199. package/dist/src/context/accessors.d.ts +0 -13
  200. package/dist/src/context/accessors.js +1 -1
  201. package/dist/src/context/container.d.ts +8 -11
  202. package/dist/src/context/container.js +1 -1
  203. package/dist/src/context/key-names.d.ts +1 -0
  204. package/dist/src/context/key-names.js +1 -1
  205. package/dist/src/context/keys.d.ts +20 -104
  206. package/dist/src/context/keys.js +1 -1
  207. package/dist/src/context/memory-tools.d.ts +4 -2
  208. package/dist/src/context/memory-tools.js +1 -1
  209. package/dist/src/context/providers/connection.js +1 -1
  210. package/dist/src/context/providers/session.js +1 -1
  211. package/dist/src/context/schedule-collection-tools.d.ts +2 -2
  212. package/dist/src/context/schedule-collection-tools.js +1 -1
  213. package/dist/src/context/session-context.d.ts +4 -2
  214. package/dist/src/discover/extensions.d.ts +2 -3
  215. package/dist/src/discover/extensions.js +1 -1
  216. package/dist/src/discover/manifest.js +1 -1
  217. package/dist/src/discover/skills.js +1 -1
  218. package/dist/src/dynamic/definition.d.ts +98 -108
  219. package/dist/src/dynamic/definition.js +1 -1
  220. package/dist/src/evals/assertions/collector.js +1 -1
  221. package/dist/src/evals/assertions/run.d.ts +12 -11
  222. package/dist/src/evals/assertions/run.js +2 -2
  223. package/dist/src/evals/assertions/scoped.js +1 -1
  224. package/dist/src/evals/cli/eval-client.js +1 -1
  225. package/dist/src/evals/cli/eval.js +2 -2
  226. package/dist/src/evals/context.js +1 -1
  227. package/dist/src/evals/expect/index.d.ts +0 -1
  228. package/dist/src/evals/index.d.ts +2 -5
  229. package/dist/src/evals/judge.js +1 -1
  230. package/dist/src/evals/match.d.ts +20 -17
  231. package/dist/src/evals/match.js +1 -1
  232. package/dist/src/evals/mock-model.d.ts +5 -1
  233. package/dist/src/evals/mock-model.js +1 -1
  234. package/dist/src/evals/output.d.ts +3 -0
  235. package/dist/src/evals/output.js +1 -0
  236. package/dist/src/evals/reported-tool-name.js +1 -1
  237. package/dist/src/evals/reporters/index.d.ts +4 -4
  238. package/dist/src/evals/reporters/index.js +1 -1
  239. package/dist/src/evals/runner/artifacts.js +1 -1
  240. package/dist/src/evals/runner/derive-run-facts.d.ts +8 -40
  241. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  242. package/dist/src/evals/runner/execute-eval.js +1 -1
  243. package/dist/src/evals/runner/execute-task.d.ts +3 -1
  244. package/dist/src/evals/runner/execute-task.js +1 -1
  245. package/dist/src/evals/runner/reporters/braintrust.d.ts +1 -1
  246. package/dist/src/evals/runner/reporters/braintrust.js +2 -2
  247. package/dist/src/evals/runner/reporters/console.d.ts +1 -1
  248. package/dist/src/evals/runner/reporters/console.js +1 -1
  249. package/dist/src/evals/runner/reporters/datadog.d.ts +1 -1
  250. package/dist/src/evals/runner/reporters/datadog.js +2 -2
  251. package/dist/src/evals/runner/reporters/junit.d.ts +1 -1
  252. package/dist/src/evals/runner/reporters/junit.js +2 -2
  253. package/dist/src/evals/runner/reporters/types.d.ts +2 -2
  254. package/dist/src/evals/runner/run-evals.d.ts +1 -1
  255. package/dist/src/evals/session-cleanup.d.ts +1 -1
  256. package/dist/src/evals/session-cleanup.js +1 -1
  257. package/dist/src/evals/session-content.d.ts +2 -2
  258. package/dist/src/evals/session-content.js +2 -1
  259. package/dist/src/evals/session-manager.d.ts +3 -6
  260. package/dist/src/evals/session-manager.js +1 -1
  261. package/dist/src/evals/session.d.ts +33 -24
  262. package/dist/src/evals/session.js +2 -2
  263. package/dist/src/evals/target.js +1 -1
  264. package/dist/src/evals/types.d.ts +115 -94
  265. package/dist/src/eve-channel/create-request.d.ts +3 -5
  266. package/dist/src/eve-channel/descendant-stream.d.ts +9 -0
  267. package/dist/src/eve-channel/descendant-stream.js +1 -0
  268. package/dist/src/eve-channel/index.d.ts +2 -2
  269. package/dist/src/eve-channel/index.js +1 -1
  270. package/dist/src/eve-channel/request.d.ts +7 -6
  271. package/dist/src/eve-channel/request.js +1 -3
  272. package/dist/src/eve-channel/stream-headers.d.ts +1 -1
  273. package/dist/src/eve-channel/stream-headers.js +1 -1
  274. package/dist/src/eve-channel/support.d.ts +25 -13
  275. package/dist/src/eve-channel/support.js +2 -2
  276. package/dist/src/eve-channel/types.d.ts +7 -30
  277. package/dist/src/execution/agent-sessions/message.d.ts +4 -0
  278. package/dist/src/execution/agent-sessions/message.js +1 -0
  279. package/dist/src/execution/agent-sessions/metadata.js +1 -1
  280. package/dist/src/execution/agent-sessions/remote-credentials.d.ts +19 -0
  281. package/dist/src/execution/agent-sessions/remote-credentials.js +1 -0
  282. package/dist/src/execution/agent-sessions/remote.d.ts +35 -13
  283. package/dist/src/execution/agent-sessions/remote.js +1 -1
  284. package/dist/src/execution/agent-sessions/requests.d.ts +6 -6
  285. package/dist/src/execution/agent-sessions/requests.js +1 -1
  286. package/dist/src/execution/agent-sessions/session.js +1 -1
  287. package/dist/src/execution/agent-sessions/steps.d.ts +26 -4
  288. package/dist/src/execution/agent-sessions/steps.js +1 -1
  289. package/dist/src/execution/agent-sessions/target.d.ts +2 -1
  290. package/dist/src/execution/agent-sessions/target.js +1 -1
  291. package/dist/src/execution/agent-sessions/usage.d.ts +0 -8
  292. package/dist/src/execution/agent-sessions/usage.js +1 -1
  293. package/dist/src/execution/cancelled-model-call-batch.d.ts +4 -2
  294. package/dist/src/execution/cancelled-model-call-batch.js +1 -1
  295. package/dist/src/execution/cancelled-turn-message.d.ts +2 -2
  296. package/dist/src/execution/cancelled-turn-message.js +1 -1
  297. package/dist/src/execution/catalog/connection-auth.js +1 -1
  298. package/dist/src/execution/catalog/connection-entry.js +1 -1
  299. package/dist/src/execution/catalog/rank.js +1 -1
  300. package/dist/src/execution/catalog/search.js +1 -1
  301. package/dist/src/execution/catalog/skills.js +1 -1
  302. package/dist/src/execution/catalog/step-catalog.js +1 -1
  303. package/dist/src/execution/child-binding.d.ts +19 -0
  304. package/dist/src/execution/child-binding.js +1 -0
  305. package/dist/src/execution/close-session-stream-step.d.ts +9 -0
  306. package/dist/src/execution/close-session-stream-step.js +1 -0
  307. package/dist/src/execution/coordination-dispatch-shared.d.ts +13 -3
  308. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  309. package/dist/src/execution/coordination-dispatch-step.d.ts +9 -13
  310. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  311. package/dist/src/execution/deliver-payloads.js +1 -1
  312. package/dist/src/execution/durable-session-store.d.ts +2 -5
  313. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  314. package/dist/src/execution/dynamic-workflow/workflow.js +1 -1
  315. package/dist/src/execution/failure-summary.d.ts +11 -0
  316. package/dist/src/execution/failure-summary.js +1 -0
  317. package/dist/src/execution/forward-session-input.d.ts +2 -2
  318. package/dist/src/execution/forward-session-input.js +1 -1
  319. package/dist/src/execution/invoke-tool.js +1 -1
  320. package/dist/src/execution/legacy-session/prepare-step.js +1 -1
  321. package/dist/src/execution/legacy-session/snapshot.d.ts +4 -1
  322. package/dist/src/execution/legacy-session/snapshot.js +1 -1
  323. package/dist/src/execution/model-call-batching.d.ts +3 -3
  324. package/dist/src/execution/model-call-batching.js +1 -1
  325. package/dist/src/execution/ndjson-stream.d.ts +1 -1
  326. package/dist/src/execution/node-step.d.ts +2 -8
  327. package/dist/src/execution/node-step.js +1 -1
  328. package/dist/src/execution/proxied-deliver-step.d.ts +8 -3
  329. package/dist/src/execution/proxied-deliver-step.js +1 -1
  330. package/dist/src/execution/public-destination.d.ts +34 -0
  331. package/dist/src/execution/public-destination.js +1 -0
  332. package/dist/src/execution/publish-session-events.d.ts +98 -36
  333. package/dist/src/execution/publish-session-events.js +1 -1
  334. package/dist/src/execution/runtime-context.js +1 -1
  335. package/dist/src/execution/sandbox/abort-bound-session.js +1 -1
  336. package/dist/src/execution/sandbox/bash.js +1 -1
  337. package/dist/src/execution/sandbox/bindings/docker-connection.js +1 -1
  338. package/dist/src/execution/sandbox/bindings/docker.js +1 -1
  339. package/dist/src/execution/sandbox/bindings/eve-image.d.ts +0 -2
  340. package/dist/src/execution/sandbox/bindings/eve-image.js +1 -1
  341. package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
  342. package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
  343. package/dist/src/execution/sandbox/ensure.js +1 -1
  344. package/dist/src/{extensions/code/extension/lib → execution/sandbox}/grep-search.d.ts +3 -2
  345. package/dist/src/execution/sandbox/grep-search.js +6 -0
  346. package/dist/src/execution/sandbox/read-file.d.ts +1 -1
  347. package/dist/src/execution/sandbox/session.js +1 -1
  348. package/dist/src/execution/sandbox/workspace-root.d.ts +31 -0
  349. package/dist/src/execution/sandbox/workspace-root.js +1 -0
  350. package/dist/src/execution/session/active-turn.d.ts +12 -6
  351. package/dist/src/execution/session/active-turn.js +1 -1
  352. package/dist/src/execution/session/admission.d.ts +7 -2
  353. package/dist/src/execution/session/admission.js +1 -1
  354. package/dist/src/execution/session/answer-caller.d.ts +4 -4
  355. package/dist/src/execution/session/answer-caller.js +1 -1
  356. package/dist/src/execution/session/checkpoint-migrations.d.ts +4 -6
  357. package/dist/src/execution/session/checkpoint-migrations.js +1 -1
  358. package/dist/src/execution/session/control-delivery.d.ts +4 -0
  359. package/dist/src/execution/session/control-delivery.js +1 -0
  360. package/dist/src/execution/session/delivery-facts.d.ts +27 -0
  361. package/dist/src/execution/session/delivery-facts.js +1 -0
  362. package/dist/src/execution/session/end-sandbox-step.js +1 -1
  363. package/dist/src/execution/session/entry.js +1 -1
  364. package/dist/src/execution/session/finalization.d.ts +4 -0
  365. package/dist/src/execution/session/finalization.js +1 -1
  366. package/dist/src/execution/session/handoff-state.js +1 -1
  367. package/dist/src/execution/session/handoff-steps.d.ts +1 -8
  368. package/dist/src/execution/session/handoff-steps.js +1 -1
  369. package/dist/src/execution/session/handoff.d.ts +5 -3
  370. package/dist/src/execution/session/handoff.js +1 -1
  371. package/dist/src/execution/session/input-queue.d.ts +8 -2
  372. package/dist/src/execution/session/input-queue.js +1 -1
  373. package/dist/src/execution/session/interrupted-step.d.ts +64 -0
  374. package/dist/src/execution/session/interrupted-step.js +3 -0
  375. package/dist/src/execution/session/next-input.d.ts +7 -1
  376. package/dist/src/execution/session/next-input.js +1 -1
  377. package/dist/src/execution/session/pending-turn-state.d.ts +32 -12
  378. package/dist/src/execution/session/pending-turn-state.js +1 -1
  379. package/dist/src/execution/session/prewarm-step.d.ts +1 -1
  380. package/dist/src/execution/session/prewarm-step.js +1 -1
  381. package/dist/src/execution/session/program.js +1 -1
  382. package/dist/src/execution/session/settle-control-delivery-step.d.ts +8 -0
  383. package/dist/src/execution/session/settle-control-delivery-step.js +1 -0
  384. package/dist/src/execution/session/settle-duplicate-delivery-step.d.ts +8 -0
  385. package/dist/src/execution/session/settle-duplicate-delivery-step.js +1 -0
  386. package/dist/src/execution/session/state-delta.d.ts +2 -12
  387. package/dist/src/execution/session/state-delta.js +1 -1
  388. package/dist/src/execution/session/step-decision-check.d.ts +9 -0
  389. package/dist/src/execution/session/step-decision-check.js +1 -0
  390. package/dist/src/execution/session/step-state-delta.d.ts +16 -0
  391. package/dist/src/execution/session/step-state-delta.js +1 -0
  392. package/dist/src/execution/session/task-tool-tracing-step.d.ts +0 -3
  393. package/dist/src/execution/session/task-tool-tracing-step.js +1 -1
  394. package/dist/src/execution/session/turn-event-handler.d.ts +6 -16
  395. package/dist/src/execution/session/turn-event-handler.js +1 -1
  396. package/dist/src/execution/session/turn-step-result.d.ts +7 -2
  397. package/dist/src/execution/session/turn-step-result.js +1 -1
  398. package/dist/src/execution/session/turn-step-types.d.ts +35 -33
  399. package/dist/src/execution/session/turn-step.js +1 -1
  400. package/dist/src/execution/session/turn.d.ts +19 -32
  401. package/dist/src/execution/session/turn.js +1 -1
  402. package/dist/src/execution/session-callback-request.d.ts +7 -1
  403. package/dist/src/execution/session-callback-request.js +1 -1
  404. package/dist/src/execution/session-event-stream.d.ts +37 -16
  405. package/dist/src/execution/session-event-stream.js +1 -1
  406. package/dist/src/execution/session-inbox/end-stranded-session.d.ts +7 -1
  407. package/dist/src/execution/session-inbox/end-stranded-session.js +1 -1
  408. package/dist/src/execution/session-inbox/inbox.js +1 -1
  409. package/dist/src/execution/session-inbox/owner.d.ts +5 -2
  410. package/dist/src/execution/session-inbox/owner.js +1 -1
  411. package/dist/src/execution/session-inbox/pre-v27.d.ts +5 -0
  412. package/dist/src/execution/session-inbox/pre-v27.js +1 -0
  413. package/dist/src/execution/session-inbox/protocol.js +1 -1
  414. package/dist/src/execution/session-inbox/resume.js +1 -1
  415. package/dist/src/execution/session-inbox/stranded-replay-guard.js +1 -1
  416. package/dist/src/execution/session-workflow-tool-run.js +1 -1
  417. package/dist/src/execution/session.d.ts +3 -14
  418. package/dist/src/execution/session.js +2 -2
  419. package/dist/src/execution/settle-cancelled-turn-step.d.ts +3 -0
  420. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  421. package/dist/src/execution/stop-runs.d.ts +35 -0
  422. package/dist/src/execution/stop-runs.js +1 -0
  423. package/dist/src/execution/tasks/model-step.d.ts +5 -9
  424. package/dist/src/execution/tasks/model-step.js +1 -1
  425. package/dist/src/execution/tasks/render.d.ts +5 -2
  426. package/dist/src/execution/tasks/render.js +1 -1
  427. package/dist/src/execution/tasks/session.d.ts +6 -3
  428. package/dist/src/execution/tasks/session.js +1 -1
  429. package/dist/src/execution/tasks/start.d.ts +9 -6
  430. package/dist/src/execution/tasks/start.js +1 -1
  431. package/dist/src/execution/tasks/steps.d.ts +11 -6
  432. package/dist/src/execution/tasks/steps.js +1 -1
  433. package/dist/src/execution/tasks/table.d.ts +18 -5
  434. package/dist/src/execution/tasks/table.js +1 -1
  435. package/dist/src/execution/tasks/task-id-input.js +1 -1
  436. package/dist/src/execution/terminal-session-completion-step.d.ts +11 -1
  437. package/dist/src/execution/terminal-session-completion-step.js +1 -1
  438. package/dist/src/execution/terminal-session-failure-step.d.ts +6 -1
  439. package/dist/src/execution/terminal-session-failure-step.js +1 -1
  440. package/dist/src/execution/terminate-child-sessions-step.d.ts +5 -1
  441. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  442. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  443. package/dist/src/execution/tools/workflow/answer.d.ts +4 -5
  444. package/dist/src/execution/tools/workflow/answer.js +1 -1
  445. package/dist/src/execution/tools/workflow/apply-run-messages-step.d.ts +1 -1
  446. package/dist/src/execution/tools/workflow/apply-run-messages-step.js +1 -1
  447. package/dist/src/execution/tools/workflow/ask.d.ts +3 -3
  448. package/dist/src/execution/tools/workflow/body.js +1 -1
  449. package/dist/src/execution/tools/workflow/harness-definition.js +1 -1
  450. package/dist/src/execution/tools/workflow/messages.d.ts +25 -33
  451. package/dist/src/execution/tools/workflow/messages.js +1 -1
  452. package/dist/src/execution/tools/workflow/owner-inbox.d.ts +9 -5
  453. package/dist/src/execution/tools/workflow/owner-inbox.js +1 -1
  454. package/dist/src/execution/tools/workflow/owner.d.ts +3 -3
  455. package/dist/src/execution/tools/workflow/owner.js +1 -1
  456. package/dist/src/execution/tools/workflow/serve.js +1 -1
  457. package/dist/src/execution/tools/workflow/step.js +1 -1
  458. package/dist/src/execution/tools/workflow/withdraw-step.d.ts +2 -2
  459. package/dist/src/execution/tools/workflow/withdraw-step.js +1 -1
  460. package/dist/src/execution/v26-history.d.ts +28 -0
  461. package/dist/src/execution/v26-history.fixtures.d.ts +4 -0
  462. package/dist/src/execution/v26-history.fixtures.js +2 -0
  463. package/dist/src/execution/v26-history.js +1 -0
  464. package/dist/src/execution/web-fetch/html.js +3 -4
  465. package/dist/src/execution/web-fetch/request.js +1 -1
  466. package/dist/src/execution/workflow-errors.d.ts +5 -0
  467. package/dist/src/execution/workflow-errors.js +1 -1
  468. package/dist/src/execution/workflow-runtime.js +1 -1
  469. package/dist/src/extensions/code/extension/extension.d.ts +1 -11
  470. package/dist/src/extensions/code/extension/extension.js +1 -1
  471. package/dist/src/extensions/code/extension/lib/prwatch-github.d.ts +5 -1
  472. package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
  473. package/dist/src/extensions/code/extension/lib/repository-root.js +1 -1
  474. package/dist/src/extensions/code/extension/lib/sandbox.d.ts +0 -4
  475. package/dist/src/extensions/code/extension/lib/sandbox.js +2 -2
  476. package/dist/src/extensions/code/extension/lib/tooling.d.ts +1 -1
  477. package/dist/src/extensions/code/extension/lib/tooling.js +1 -1
  478. package/dist/src/extensions/code/extension/lib/workspace-root.d.ts +1 -31
  479. package/dist/src/extensions/code/extension/lib/workspace-root.js +1 -1
  480. package/dist/src/extensions/code/extension/subagents/worker/agent.d.ts +1 -1
  481. package/dist/src/extensions/code/extension/subagents/worker/agent.js +1 -1
  482. package/dist/src/extensions/code/extension/tools/apply_patch.js +2 -2
  483. package/dist/src/extensions/code/extension/tools/grep.d.ts +1 -28
  484. package/dist/src/extensions/code/extension/tools/grep.js +1 -1
  485. package/dist/src/extensions/code/sandbox.d.ts +1 -0
  486. package/dist/src/extensions/code/sandbox.js +1 -0
  487. package/dist/src/extensions/code/tools.d.ts +1 -5
  488. package/dist/src/extensions/code/tools.js +1 -1
  489. package/dist/src/extensions/git/extension/extension.d.ts +3 -3
  490. package/dist/src/extensions/git/extension/instructions/github.d.ts +1 -1
  491. package/dist/src/extensions/git/extension/instructions/github.js +1 -1
  492. package/dist/src/extensions/git/extension/lib/gh-tool.d.ts +2 -11
  493. package/dist/src/extensions/git/extension/lib/gh-tool.js +1 -1
  494. package/dist/src/extensions/git/extension/lib/github-shell.d.ts +13 -3
  495. package/dist/src/extensions/git/extension/lib/sandbox.d.ts +0 -4
  496. package/dist/src/extensions/git/extension/lib/sandbox.js +1 -1
  497. package/dist/src/extensions/git/extension/skills/pr.d.ts +1 -4
  498. package/dist/src/extensions/git/extension/skills/pr.js +1 -1
  499. package/dist/src/extensions/git/extension/tools/gh.d.ts +1 -26
  500. package/dist/src/extensions/git/extension/tools/gh.js +1 -1
  501. package/dist/src/framework/sources/modules/schedule-collection-wrapper.js +1 -1
  502. package/dist/src/harness/action-presentation.d.ts +3 -5
  503. package/dist/src/harness/action-presentation.js +1 -1
  504. package/dist/src/harness/action-result-helpers.d.ts +2 -8
  505. package/dist/src/harness/action-result-helpers.js +1 -1
  506. package/dist/src/harness/approval-outcome.d.ts +32 -0
  507. package/dist/src/harness/approval-outcome.js +1 -0
  508. package/dist/src/harness/attachment-staging.js +1 -1
  509. package/dist/src/harness/authorization.d.ts +2 -3
  510. package/dist/src/harness/authorization.js +1 -1
  511. package/dist/src/harness/call-executor.d.ts +118 -0
  512. package/dist/src/harness/call-executor.js +1 -0
  513. package/dist/src/harness/call-facts.d.ts +31 -0
  514. package/dist/src/harness/call-facts.js +1 -0
  515. package/dist/src/harness/call-outcome.d.ts +6 -0
  516. package/dist/src/harness/call-outcome.js +1 -0
  517. package/dist/src/harness/compaction/engine.d.ts +11 -0
  518. package/dist/src/harness/compaction/engine.js +2 -2
  519. package/dist/src/harness/compaction/over-limit-error.d.ts +7 -0
  520. package/dist/src/harness/compaction/over-limit-error.js +1 -0
  521. package/dist/src/harness/compaction/prompt.js +1 -1
  522. package/dist/src/harness/compaction/step.d.ts +34 -5
  523. package/dist/src/harness/compaction/step.js +1 -1
  524. package/dist/src/harness/coordination.js +1 -1
  525. package/dist/src/harness/current-messages.d.ts +10 -0
  526. package/dist/src/harness/current-messages.js +1 -1
  527. package/dist/src/harness/emission.d.ts +9 -15
  528. package/dist/src/harness/emission.js +1 -1
  529. package/dist/src/harness/execute-call.d.ts +6 -23
  530. package/dist/src/harness/execute-call.js +1 -1
  531. package/dist/src/harness/execute-tool.d.ts +7 -3
  532. package/dist/src/harness/facts.d.ts +82 -0
  533. package/dist/src/harness/facts.js +1 -0
  534. package/dist/src/harness/finish-reason.d.ts +6 -1
  535. package/dist/src/harness/generation-steering.d.ts +4 -2
  536. package/dist/src/harness/generation-steering.js +1 -1
  537. package/dist/src/harness/hitl/approval-prompt.d.ts +3 -3
  538. package/dist/src/harness/hitl/approval-prompt.js +3 -3
  539. package/dist/src/harness/hitl/approvals.d.ts +66 -78
  540. package/dist/src/harness/hitl/approvals.js +2 -1
  541. package/dist/src/harness/hitl/approved-calls.d.ts +14 -36
  542. package/dist/src/harness/hitl/approved-calls.js +1 -1
  543. package/dist/src/harness/hitl/budget-request.d.ts +8 -46
  544. package/dist/src/harness/hitl/budget-request.js +1 -1
  545. package/dist/src/harness/hitl/budget.d.ts +9 -8
  546. package/dist/src/harness/hitl/budget.js +1 -1
  547. package/dist/src/harness/hitl/delivery.d.ts +16 -17
  548. package/dist/src/harness/hitl/delivery.js +1 -1
  549. package/dist/src/harness/hitl/index.d.ts +14 -19
  550. package/dist/src/harness/hitl/index.js +1 -1
  551. package/dist/src/harness/hitl/intake.d.ts +32 -43
  552. package/dist/src/harness/hitl/intake.js +1 -1
  553. package/dist/src/harness/hitl/relays.d.ts +7 -51
  554. package/dist/src/harness/hitl/relays.js +1 -1
  555. package/dist/src/harness/hitl/requests.d.ts +11 -53
  556. package/dist/src/harness/hitl/requests.js +1 -1
  557. package/dist/src/harness/hitl/responders.d.ts +50 -0
  558. package/dist/src/harness/hitl/responders.js +1 -0
  559. package/dist/src/harness/hitl/sign-ins.d.ts +7 -3
  560. package/dist/src/harness/hitl/sign-ins.js +1 -1
  561. package/dist/src/harness/hitl/stale-responses.d.ts +11 -11
  562. package/dist/src/harness/hitl/stale-responses.js +3 -3
  563. package/dist/src/harness/inline-tool-authorization.d.ts +8 -9
  564. package/dist/src/harness/inline-tool-authorization.js +1 -1
  565. package/dist/src/harness/interaction-facts.d.ts +36 -0
  566. package/dist/src/harness/interaction-facts.js +1 -0
  567. package/dist/src/harness/interaction-relay.d.ts +10 -0
  568. package/dist/src/harness/interaction-relay.js +1 -0
  569. package/dist/src/harness/interrupted-attempt.d.ts +19 -0
  570. package/dist/src/harness/interrupted-attempt.js +2 -0
  571. package/dist/src/harness/messages.d.ts +28 -15
  572. package/dist/src/harness/messages.js +1 -1
  573. package/dist/src/harness/model-call/call.d.ts +31 -13
  574. package/dist/src/harness/model-call/call.js +1 -1
  575. package/dist/src/harness/model-call/errors.js +1 -1
  576. package/dist/src/harness/model-call/failure.d.ts +10 -48
  577. package/dist/src/harness/model-call/failure.js +1 -1
  578. package/dist/src/harness/model-call/model.js +1 -1
  579. package/dist/src/harness/model-call/recovery.d.ts +4 -32
  580. package/dist/src/harness/model-call/recovery.js +1 -1
  581. package/dist/src/harness/model-call/request.d.ts +0 -1
  582. package/dist/src/harness/model-call/request.js +1 -1
  583. package/dist/src/harness/model-call/response.d.ts +22 -12
  584. package/dist/src/harness/model-call/response.js +1 -1
  585. package/dist/src/harness/model-call/retry.d.ts +23 -6
  586. package/dist/src/harness/model-call/retry.js +1 -1
  587. package/dist/src/harness/model-call/run.d.ts +4 -12
  588. package/dist/src/harness/model-call/run.js +1 -1
  589. package/dist/src/harness/model-call/tools.d.ts +0 -19
  590. package/dist/src/harness/model-call/tools.js +1 -1
  591. package/dist/src/harness/model-call/unique-call-ids.d.ts +13 -0
  592. package/dist/src/harness/model-call/unique-call-ids.js +1 -0
  593. package/dist/src/harness/model-call/usage.d.ts +7 -5
  594. package/dist/src/harness/model-call/usage.js +1 -1
  595. package/dist/src/harness/ordered-stream-emitter.d.ts +1 -0
  596. package/dist/src/harness/ordered-stream-emitter.js +1 -1
  597. package/dist/src/harness/provider-tool-history.js +1 -1
  598. package/dist/src/harness/publication.d.ts +4 -0
  599. package/dist/src/harness/publication.js +1 -0
  600. package/dist/src/harness/request-envelope.d.ts +0 -3
  601. package/dist/src/harness/request-envelope.js +1 -1
  602. package/dist/src/harness/running-work.d.ts +10 -0
  603. package/dist/src/harness/running-work.js +1 -0
  604. package/dist/src/harness/session-machine/cascade.d.ts +17 -0
  605. package/dist/src/harness/session-machine/cascade.js +1 -0
  606. package/dist/src/harness/session-machine/commit.d.ts +16 -16
  607. package/dist/src/harness/session-machine/commit.js +1 -1
  608. package/dist/src/harness/session-machine/current.d.ts +25 -9
  609. package/dist/src/harness/session-machine/current.js +1 -1
  610. package/dist/src/harness/session-machine/state.d.ts +43 -16
  611. package/dist/src/harness/session-machine/state.js +1 -1
  612. package/dist/src/harness/session-machine/suspended-steps.d.ts +22 -0
  613. package/dist/src/harness/session-machine/suspended-steps.js +1 -0
  614. package/dist/src/harness/session-machine/transitions.d.ts +144 -120
  615. package/dist/src/harness/session-machine/transitions.js +1 -1
  616. package/dist/src/harness/session-machine/view.d.ts +12 -8
  617. package/dist/src/harness/session-machine/view.js +1 -1
  618. package/dist/src/harness/session-machine/waiting.d.ts +16 -0
  619. package/dist/src/harness/session-machine/waiting.js +1 -0
  620. package/dist/src/harness/session-usage.d.ts +22 -0
  621. package/dist/src/harness/session-usage.js +1 -0
  622. package/dist/src/harness/step/after-model.d.ts +1 -4
  623. package/dist/src/harness/step/after-model.js +1 -1
  624. package/dist/src/harness/step/context.d.ts +21 -21
  625. package/dist/src/harness/step/context.js +1 -1
  626. package/dist/src/harness/step/intake.d.ts +7 -8
  627. package/dist/src/harness/step/intake.js +1 -1
  628. package/dist/src/harness/step/park.d.ts +19 -0
  629. package/dist/src/harness/step/park.js +1 -0
  630. package/dist/src/harness/step/prompt.d.ts +4 -5
  631. package/dist/src/harness/step/prompt.js +1 -1
  632. package/dist/src/harness/step-hooks.d.ts +24 -24
  633. package/dist/src/harness/step-hooks.js +1 -1
  634. package/dist/src/harness/stream-actions.d.ts +3 -9
  635. package/dist/src/harness/stream-actions.js +1 -1
  636. package/dist/src/harness/token-estimate.js +1 -1
  637. package/dist/src/harness/tool-history-repair.js +1 -1
  638. package/dist/src/harness/tool-loop.js +1 -1
  639. package/dist/src/harness/tools.d.ts +22 -38
  640. package/dist/src/harness/tools.js +1 -1
  641. package/dist/src/harness/types.d.ts +69 -67
  642. package/dist/src/harness/user-parts.d.ts +4 -0
  643. package/dist/src/harness/user-parts.js +1 -0
  644. package/dist/src/harness/workflow-tool-runs.d.ts +0 -1
  645. package/dist/src/harness/workflow-tool-runs.js +1 -1
  646. package/dist/src/instrumentation/ai-sdk-hook-bridge.d.ts +2 -2
  647. package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
  648. package/dist/src/instrumentation/channel-delivery.d.ts +4 -23
  649. package/dist/src/instrumentation/channel-delivery.js +1 -1
  650. package/dist/src/instrumentation/content.d.ts +1 -7
  651. package/dist/src/instrumentation/content.js +1 -1
  652. package/dist/src/instrumentation/dispatch.js +1 -1
  653. package/dist/src/instrumentation/lifecycle.d.ts +135 -198
  654. package/dist/src/instrumentation/lifecycle.js +1 -1
  655. package/dist/src/instrumentation/memory.d.ts +4 -2
  656. package/dist/src/instrumentation/memory.js +1 -1
  657. package/dist/src/instrumentation/native-events.d.ts +17 -10
  658. package/dist/src/instrumentation/native-events.js +1 -1
  659. package/dist/src/instrumentation/prepare-trace-context.d.ts +3 -3
  660. package/dist/src/instrumentation/provider.d.ts +20 -28
  661. package/dist/src/instrumentation/providers.js +1 -1
  662. package/dist/src/instrumentation/runtime-context.d.ts +1 -0
  663. package/dist/src/instrumentation/runtime-context.js +1 -1
  664. package/dist/src/instrumentation/runtime.d.ts +9 -30
  665. package/dist/src/instrumentation/runtime.js +1 -1
  666. package/dist/src/instrumentation/scope.d.ts +6 -0
  667. package/dist/src/instrumentation/scope.js +1 -0
  668. package/dist/src/instrumentation/session-context.d.ts +1 -1
  669. package/dist/src/instrumentation/session-context.js +1 -1
  670. package/dist/src/instrumentation/session-init.js +1 -1
  671. package/dist/src/instrumentation/setup-context.d.ts +2 -2
  672. package/dist/src/instrumentation/setup-context.js +1 -1
  673. package/dist/src/instrumentation/state.d.ts +0 -21
  674. package/dist/src/instrumentation/state.js +1 -1
  675. package/dist/src/internal/application/dev-environment.d.ts +8 -2
  676. package/dist/src/internal/application/dev-environment.js +1 -1
  677. package/dist/src/internal/application/optional-package-install.js +1 -1
  678. package/dist/src/internal/application/stamped-package-version.js +1 -1
  679. package/dist/src/internal/authored-asset-import-plugin.d.ts +8 -7
  680. package/dist/src/internal/authored-asset-import-plugin.js +1 -1
  681. package/dist/src/internal/authored-definition/approval.d.ts +2 -4
  682. package/dist/src/internal/authored-definition/approval.js +1 -1
  683. package/dist/src/internal/authored-definition/connection.js +1 -1
  684. package/dist/src/internal/authored-definition/core.d.ts +1 -1
  685. package/dist/src/internal/authored-definition/core.js +1 -1
  686. package/dist/src/internal/authored-definition/memory.js +1 -1
  687. package/dist/src/internal/authored-definition/schema-backed.d.ts +0 -3
  688. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  689. package/dist/src/internal/authored-module-loader.d.ts +0 -1
  690. package/dist/src/internal/authored-module-loader.js +1 -1
  691. package/dist/src/internal/authored-package-boundary.js +1 -1
  692. package/dist/src/internal/git.d.ts +2 -0
  693. package/dist/src/internal/git.js +1 -0
  694. package/dist/src/internal/grep.d.ts +1 -0
  695. package/dist/src/internal/grep.js +1 -0
  696. package/dist/src/internal/helpers/markdown.js +1 -1
  697. package/dist/src/internal/invocation/agent-invocation.d.ts +16 -19
  698. package/dist/src/internal/invocation/metadata.d.ts +0 -2
  699. package/dist/src/internal/invocation/metadata.js +1 -1
  700. package/dist/src/internal/invocation/workflow-execution.d.ts +4 -4
  701. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  702. package/dist/src/internal/legacy-events.d.ts +5 -0
  703. package/dist/src/internal/legacy-events.js +1 -0
  704. package/dist/src/internal/logging.d.ts +0 -12
  705. package/dist/src/internal/logging.js +1 -1
  706. package/dist/src/internal/mcp/protected-resource.js +1 -1
  707. package/dist/src/internal/mcp/published-tools.js +1 -1
  708. package/dist/src/internal/model-auth/api-key.js +1 -1
  709. package/dist/src/internal/model-auth/development-broker-client.js +1 -1
  710. package/dist/src/internal/model-auth/development-broker-server.js +1 -1
  711. package/dist/src/internal/model-auth/transport.js +1 -1
  712. package/dist/src/internal/nitro/dev-client-address.d.ts +12 -0
  713. package/dist/src/internal/nitro/dev-client-address.js +1 -1
  714. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  715. package/dist/src/internal/nitro/dev-runtime-generation-metadata.js +1 -1
  716. package/dist/src/internal/nitro/host/build-extension.js +2 -2
  717. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  718. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  719. package/dist/src/internal/nitro/host/dev-server-state.js +1 -1
  720. package/dist/src/internal/nitro/host/drained-nitro-dev-server.js +1 -1
  721. package/dist/src/internal/nitro/host/start-development-server.js +1 -1
  722. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  723. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  724. package/dist/src/internal/nitro/routes/channel-request-instrumentation.d.ts +6 -3
  725. package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
  726. package/dist/src/internal/nitro/routes/channel-route-context.d.ts +8 -1
  727. package/dist/src/internal/nitro/routes/info.js +1 -1
  728. package/dist/src/internal/nitro/routes/schedule-task.js +1 -1
  729. package/dist/src/internal/scaffold.d.ts +5 -0
  730. package/dist/src/internal/scaffold.js +1 -0
  731. package/dist/src/internal/workflow/cancel-expired-development-run.js +1 -1
  732. package/dist/src/internal/workflow/development-world-client.js +1 -1
  733. package/dist/src/internal/workflow/development-world-server.js +1 -1
  734. package/dist/src/internal/workflow/local-world-data-directory.js +1 -1
  735. package/dist/src/internal/workspace.d.ts +1 -0
  736. package/dist/src/internal/workspace.js +1 -0
  737. package/dist/src/models/auto.d.ts +27 -14
  738. package/dist/src/models/auto.js +2 -2
  739. package/dist/src/protocol/delivery.d.ts +11 -0
  740. package/dist/src/protocol/delivery.js +1 -0
  741. package/dist/src/protocol/descendant-observation.d.ts +12 -0
  742. package/dist/src/protocol/descendant-observation.js +1 -0
  743. package/dist/src/protocol/interaction-json.d.ts +66 -0
  744. package/dist/src/protocol/interaction-json.js +1 -0
  745. package/dist/src/protocol/interaction-options.d.ts +4 -0
  746. package/dist/src/protocol/interaction-options.js +1 -0
  747. package/dist/src/protocol/remote-agent-protocol.d.ts +28 -1
  748. package/dist/src/protocol/remote-agent-protocol.js +1 -1
  749. package/dist/src/protocol/routes.d.ts +3 -2
  750. package/dist/src/protocol/routes.js +1 -1
  751. package/dist/src/protocol/session-event.d.ts +22 -0
  752. package/dist/src/protocol/session-event.js +1 -0
  753. package/dist/src/protocol/session-events/authoring.d.ts +2 -0
  754. package/dist/src/protocol/session-events/authoring.js +1 -0
  755. package/dist/src/protocol/session-events/catalog.d.ts +50 -0
  756. package/dist/src/protocol/session-events/catalog.js +1 -0
  757. package/dist/src/protocol/session-events/checker.d.ts +23 -0
  758. package/dist/src/protocol/session-events/checker.js +1 -0
  759. package/dist/src/protocol/session-events/common.d.ts +105 -0
  760. package/dist/src/protocol/session-events/common.js +1 -0
  761. package/dist/src/protocol/session-events/envelope.d.ts +174 -0
  762. package/dist/src/protocol/session-events/envelope.js +1 -0
  763. package/dist/src/protocol/session-events/facts.d.ts +24 -0
  764. package/dist/src/protocol/session-events/facts.js +1 -0
  765. package/dist/src/protocol/session-events/families/call.d.ts +142 -0
  766. package/dist/src/protocol/session-events/families/call.js +1 -0
  767. package/dist/src/protocol/session-events/families/child.d.ts +51 -0
  768. package/dist/src/protocol/session-events/families/child.js +1 -0
  769. package/dist/src/protocol/session-events/families/content.d.ts +56 -0
  770. package/dist/src/protocol/session-events/families/content.js +1 -0
  771. package/dist/src/protocol/session-events/families/context.d.ts +55 -0
  772. package/dist/src/protocol/session-events/families/context.js +1 -0
  773. package/dist/src/protocol/session-events/families/delivery.d.ts +86 -0
  774. package/dist/src/protocol/session-events/families/delivery.js +1 -0
  775. package/dist/src/protocol/session-events/families/interaction.d.ts +163 -0
  776. package/dist/src/protocol/session-events/families/interaction.js +1 -0
  777. package/dist/src/protocol/session-events/families/model.d.ts +88 -0
  778. package/dist/src/protocol/session-events/families/model.js +1 -0
  779. package/dist/src/protocol/session-events/families/response.d.ts +66 -0
  780. package/dist/src/protocol/session-events/families/response.js +1 -0
  781. package/dist/src/protocol/session-events/families/session.d.ts +73 -0
  782. package/dist/src/protocol/session-events/families/session.js +1 -0
  783. package/dist/src/protocol/session-events/families/task.d.ts +46 -0
  784. package/dist/src/protocol/session-events/families/task.js +1 -0
  785. package/dist/src/protocol/session-events/families/turn.d.ts +68 -0
  786. package/dist/src/protocol/session-events/families/turn.js +1 -0
  787. package/dist/src/protocol/session-events/families/usage.d.ts +30 -0
  788. package/dist/src/protocol/session-events/families/usage.js +1 -0
  789. package/dist/src/protocol/session-events/guards.d.ts +11 -0
  790. package/dist/src/protocol/session-events/guards.js +1 -0
  791. package/dist/src/protocol/session-events/index.d.ts +16 -0
  792. package/dist/src/protocol/session-events/index.js +1 -0
  793. package/dist/src/protocol/session-events/json.d.ts +20 -0
  794. package/dist/src/protocol/session-events/json.js +1 -0
  795. package/dist/src/protocol/session-events/schemas.d.ts +320 -0
  796. package/dist/src/protocol/session-events/schemas.js +1 -0
  797. package/dist/src/protocol/session-http.d.ts +7 -0
  798. package/dist/src/protocol/session-http.js +1 -0
  799. package/dist/src/protocol/session-lines.d.ts +19 -0
  800. package/dist/src/protocol/session-lines.js +1 -0
  801. package/dist/src/protocol/session-projection/fold.d.ts +75 -0
  802. package/dist/src/protocol/session-projection/fold.js +1 -0
  803. package/dist/src/protocol/session-projection/index.d.ts +4 -0
  804. package/dist/src/protocol/session-projection/index.js +1 -0
  805. package/dist/src/protocol/session-projection/observations.d.ts +150 -0
  806. package/dist/src/protocol/session-projection/observations.js +1 -0
  807. package/dist/src/protocol/session-projection/public-view.d.ts +74 -0
  808. package/dist/src/protocol/session-projection/public-view.js +1 -0
  809. package/dist/src/protocol/session-projection/reader.d.ts +62 -0
  810. package/dist/src/protocol/session-projection/reader.js +1 -0
  811. package/dist/src/protocol/session-projection/request-status.d.ts +7 -0
  812. package/dist/src/protocol/session-projection/request-status.js +1 -0
  813. package/dist/src/protocol/session-projection/selectors.d.ts +169 -0
  814. package/dist/src/protocol/session-projection/selectors.js +2 -0
  815. package/dist/src/protocol/session-projection/session-view.d.ts +18 -0
  816. package/dist/src/protocol/session-projection/session-view.js +1 -0
  817. package/dist/src/protocol/session-projection/tables.d.ts +237 -0
  818. package/dist/src/protocol/session-projection/tables.js +1 -0
  819. package/dist/src/protocol/session-projection/tree.d.ts +72 -0
  820. package/dist/src/protocol/session-projection/tree.js +1 -0
  821. package/dist/src/protocol/session-projection.d.ts +38 -157
  822. package/dist/src/protocol/session-projection.js +1 -1
  823. package/dist/src/protocol/task-tools.d.ts +8 -6
  824. package/dist/src/protocol/task-tools.js +1 -1
  825. package/dist/src/protocol/v26-interactions.d.ts +11 -0
  826. package/dist/src/protocol/v26-interactions.js +1 -0
  827. package/dist/src/protocol/v26-lines.d.ts +5 -0
  828. package/dist/src/protocol/v26-lines.js +1 -0
  829. package/dist/src/public/agents/auth.d.ts +2 -2
  830. package/dist/src/public/agents/auth.js +1 -1
  831. package/dist/src/public/ai/index.d.ts +1 -0
  832. package/dist/src/public/channels/auth.d.ts +2 -518
  833. package/dist/src/public/channels/auth.js +1 -1
  834. package/dist/src/public/channels/chat-sdk/authorization.d.ts +5 -2
  835. package/dist/src/public/channels/chat-sdk/authorization.js +1 -3
  836. package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +16 -11
  837. package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -3
  838. package/dist/src/public/channels/chat-sdk/index.d.ts +1 -1
  839. package/dist/src/public/channels/chat-sdk/index.js +1 -1
  840. package/dist/src/public/channels/chat-sdk/input-actions.d.ts +4 -4
  841. package/dist/src/public/channels/chat-sdk/input-actions.js +3 -3
  842. package/dist/src/public/channels/chat-sdk/{messageToUserContent.d.ts → message-content.d.ts} +3 -3
  843. package/dist/src/public/channels/chat-sdk/message-content.js +1 -0
  844. package/dist/src/public/channels/discord/api.d.ts +8 -11
  845. package/dist/src/public/channels/discord/api.js +1 -1
  846. package/dist/src/public/channels/discord/attachments.d.ts +2 -2
  847. package/dist/src/public/channels/discord/authorization.d.ts +3 -13
  848. package/dist/src/public/channels/discord/authorization.js +2 -2
  849. package/dist/src/public/channels/discord/credentials.d.ts +11 -0
  850. package/dist/src/public/channels/discord/credentials.js +1 -0
  851. package/dist/src/public/channels/discord/defaults.d.ts +7 -1
  852. package/dist/src/public/channels/discord/defaults.js +1 -3
  853. package/dist/src/public/channels/discord/discordChannel.d.ts +36 -48
  854. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  855. package/dist/src/public/channels/discord/hitl.d.ts +5 -4
  856. package/dist/src/public/channels/discord/hitl.js +1 -1
  857. package/dist/src/public/channels/discord/index.d.ts +4 -12
  858. package/dist/src/public/channels/discord/index.js +1 -1
  859. package/dist/src/public/channels/discord/messages.js +1 -1
  860. package/dist/src/public/channels/github/defaults.js +2 -4
  861. package/dist/src/public/channels/github/githubChannel.d.ts +23 -36
  862. package/dist/src/public/channels/github/githubChannel.js +1 -1
  863. package/dist/src/public/channels/github/index.d.ts +3 -2
  864. package/dist/src/public/channels/github/index.js +1 -1
  865. package/dist/src/public/channels/github/state.d.ts +2 -0
  866. package/dist/src/public/channels/imessage-tapbacks.d.ts +1 -1
  867. package/dist/src/public/channels/index.d.ts +16 -37
  868. package/dist/src/public/channels/index.js +1 -1
  869. package/dist/src/public/channels/linear/defaults.js +2 -4
  870. package/dist/src/public/channels/linear/hitl.d.ts +3 -3
  871. package/dist/src/public/channels/linear/hitl.js +2 -2
  872. package/dist/src/public/channels/linear/inbound-uploads.d.ts +3 -3
  873. package/dist/src/public/channels/linear/inbound-uploads.js +1 -1
  874. package/dist/src/public/channels/linear/inbound.d.ts +5 -3
  875. package/dist/src/public/channels/linear/inbound.js +1 -1
  876. package/dist/src/public/channels/linear/index.d.ts +4 -6
  877. package/dist/src/public/channels/linear/index.js +1 -1
  878. package/dist/src/public/channels/linear/linearChannel.d.ts +19 -30
  879. package/dist/src/public/channels/linear/linearChannel.js +1 -1
  880. package/dist/src/public/channels/linq/inboundContent.d.ts +2 -2
  881. package/dist/src/public/channels/linq/inboundContent.js +1 -1
  882. package/dist/src/public/channels/linq/index.d.ts +1 -1
  883. package/dist/src/public/channels/linq/linqChannel.d.ts +1 -2
  884. package/dist/src/public/channels/mcp.d.ts +2 -2
  885. package/dist/src/public/channels/mcp.js +1 -1
  886. package/dist/src/public/channels/photon/inboundContent.d.ts +2 -2
  887. package/dist/src/public/channels/photon/inboundContent.js +1 -1
  888. package/dist/src/public/channels/photon/index.d.ts +1 -1
  889. package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +1 -2
  890. package/dist/src/public/channels/reply.d.ts +22 -0
  891. package/dist/src/public/channels/reply.js +3 -0
  892. package/dist/src/public/channels/slack/action-status.js +1 -1
  893. package/dist/src/public/channels/slack/{input-response.d.ts → answers.d.ts} +5 -5
  894. package/dist/src/public/channels/slack/answers.js +1 -0
  895. package/dist/src/public/channels/slack/api.d.ts +5 -2
  896. package/dist/src/public/channels/slack/api.js +1 -1
  897. package/dist/src/public/channels/slack/approval-cards.d.ts +15 -5
  898. package/dist/src/public/channels/slack/approval-cards.js +2 -2
  899. package/dist/src/public/channels/slack/attachments.d.ts +6 -6
  900. package/dist/src/public/channels/slack/attachments.js +1 -1
  901. package/dist/src/public/channels/slack/blocks.d.ts +1 -1
  902. package/dist/src/public/channels/slack/blocks.js +1 -1
  903. package/dist/src/public/channels/slack/cards.d.ts +576 -0
  904. package/dist/src/public/channels/slack/cards.js +1 -0
  905. package/dist/src/public/channels/slack/connections.d.ts +4 -22
  906. package/dist/src/public/channels/slack/connections.js +1 -1
  907. package/dist/src/public/channels/slack/defaults.d.ts +13 -2
  908. package/dist/src/public/channels/slack/defaults.js +5 -5
  909. package/dist/src/public/channels/slack/hitl.d.ts +20 -19
  910. package/dist/src/public/channels/slack/hitl.js +3 -3
  911. package/dist/src/public/channels/slack/index.d.ts +7 -16
  912. package/dist/src/public/channels/slack/index.js +1 -1
  913. package/dist/src/public/channels/slack/interaction-cards.js +1 -1
  914. package/dist/src/public/channels/slack/interactions.d.ts +2 -2
  915. package/dist/src/public/channels/slack/interactions.js +1 -1
  916. package/dist/src/public/channels/slack/limits.js +1 -1
  917. package/dist/src/public/channels/slack/private-approval-delivery.d.ts +3 -3
  918. package/dist/src/public/channels/slack/private-approval-delivery.js +1 -1
  919. package/dist/src/public/channels/slack/renderers.d.ts +21 -27
  920. package/dist/src/public/channels/slack/renderers.js +1 -1
  921. package/dist/src/public/channels/slack/reply-delivery.d.ts +5 -11
  922. package/dist/src/public/channels/slack/reply-delivery.js +1 -1
  923. package/dist/src/public/channels/slack/session-operations.d.ts +4 -4
  924. package/dist/src/public/channels/slack/sign-in-cancel.js +1 -1
  925. package/dist/src/public/channels/slack/slackChannel.d.ts +32 -43
  926. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  927. package/dist/src/public/channels/slack/task-card.d.ts +9 -9
  928. package/dist/src/public/channels/slack/task-card.js +1 -1
  929. package/dist/src/public/channels/teams/api.d.ts +3 -7
  930. package/dist/src/public/channels/teams/attachments.d.ts +4 -4
  931. package/dist/src/public/channels/teams/authorization.d.ts +5 -9
  932. package/dist/src/public/channels/teams/authorization.js +1 -1
  933. package/dist/src/public/channels/teams/credentials.d.ts +13 -0
  934. package/dist/src/public/channels/teams/credentials.js +1 -0
  935. package/dist/src/public/channels/teams/defaults.d.ts +2 -6
  936. package/dist/src/public/channels/teams/defaults.js +1 -3
  937. package/dist/src/public/channels/teams/hitl.d.ts +8 -7
  938. package/dist/src/public/channels/teams/hitl.js +1 -1
  939. package/dist/src/public/channels/teams/index.d.ts +6 -8
  940. package/dist/src/public/channels/teams/index.js +1 -1
  941. package/dist/src/public/channels/teams/teamsChannel.d.ts +25 -44
  942. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  943. package/dist/src/public/channels/telegram/api.d.ts +3 -4
  944. package/dist/src/public/channels/telegram/attachments.d.ts +5 -5
  945. package/dist/src/public/channels/telegram/authorization-callback.js +1 -1
  946. package/dist/src/public/channels/telegram/authorization.d.ts +4 -8
  947. package/dist/src/public/channels/telegram/authorization.js +2 -2
  948. package/dist/src/public/channels/telegram/credentials.d.ts +9 -0
  949. package/dist/src/public/channels/telegram/credentials.js +1 -0
  950. package/dist/src/public/channels/telegram/defaults.js +1 -3
  951. package/dist/src/public/channels/telegram/hitl.d.ts +22 -20
  952. package/dist/src/public/channels/telegram/hitl.js +2 -2
  953. package/dist/src/public/channels/telegram/index.d.ts +5 -7
  954. package/dist/src/public/channels/telegram/index.js +1 -1
  955. package/dist/src/public/channels/telegram/telegramChannel.d.ts +23 -36
  956. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  957. package/dist/src/public/channels/text.d.ts +4 -0
  958. package/dist/src/public/channels/text.js +1 -0
  959. package/dist/src/public/channels/twilio/api.d.ts +8 -8
  960. package/dist/src/public/channels/twilio/api.js +1 -1
  961. package/dist/src/public/channels/twilio/credentials.d.ts +7 -0
  962. package/dist/src/public/channels/twilio/credentials.js +1 -0
  963. package/dist/src/public/channels/twilio/defaults.d.ts +0 -1
  964. package/dist/src/public/channels/twilio/defaults.js +1 -5
  965. package/dist/src/public/channels/twilio/inbound.d.ts +2 -2
  966. package/dist/src/public/channels/twilio/index.d.ts +4 -4
  967. package/dist/src/public/channels/twilio/index.js +1 -1
  968. package/dist/src/public/channels/twilio/twilioChannel.d.ts +24 -37
  969. package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
  970. package/dist/src/public/channels/twilio/verify.d.ts +6 -4
  971. package/dist/src/public/channels/undelivered-reply.d.ts +30 -0
  972. package/dist/src/public/channels/undelivered-reply.js +1 -0
  973. package/dist/src/public/channels/upload-policy.d.ts +7 -7
  974. package/dist/src/public/connections/index.d.ts +3 -5
  975. package/dist/src/public/context/index.d.ts +3 -2
  976. package/dist/src/public/definitions/agent.d.ts +18 -18
  977. package/dist/src/public/definitions/agent.js +1 -1
  978. package/dist/src/public/definitions/approval.d.ts +1 -1
  979. package/dist/src/public/definitions/channel.d.ts +57 -60
  980. package/dist/src/public/definitions/channel.js +1 -1
  981. package/dist/src/public/definitions/connections/dynamic.d.ts +3 -15
  982. package/dist/src/public/definitions/connections/dynamic.js +1 -1
  983. package/dist/src/public/definitions/connections/events.d.ts +9 -9
  984. package/dist/src/public/definitions/connections/mcp.d.ts +5 -3
  985. package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
  986. package/dist/src/public/definitions/extension.d.ts +2 -4
  987. package/dist/src/public/definitions/extension.js +1 -1
  988. package/dist/src/public/definitions/hook.d.ts +63 -85
  989. package/dist/src/public/definitions/hook.js +1 -1
  990. package/dist/src/public/definitions/instructions.d.ts +3 -10
  991. package/dist/src/public/definitions/instructions.js +1 -1
  992. package/dist/src/public/definitions/model.d.ts +21 -0
  993. package/dist/src/public/definitions/model.js +1 -0
  994. package/dist/src/public/definitions/removed-event-keys.d.ts +2 -0
  995. package/dist/src/public/definitions/removed-event-keys.js +1 -0
  996. package/dist/src/public/definitions/sandbox.d.ts +1 -1
  997. package/dist/src/public/definitions/schedule.d.ts +4 -4
  998. package/dist/src/public/definitions/skill.d.ts +5 -0
  999. package/dist/src/public/definitions/skill.js +1 -1
  1000. package/dist/src/public/events/index.d.ts +27 -0
  1001. package/dist/src/public/events/index.js +1 -0
  1002. package/dist/src/public/experimental/connections/index.d.ts +1 -0
  1003. package/dist/src/public/experimental/connections/index.js +1 -0
  1004. package/dist/src/public/experimental/schedules/client.js +1 -1
  1005. package/dist/src/public/hooks/index.d.ts +4 -3
  1006. package/dist/src/public/index.d.ts +3 -2
  1007. package/dist/src/public/instructions/index.d.ts +2 -2
  1008. package/dist/src/public/instrumentation/index.d.ts +9 -28
  1009. package/dist/src/public/instrumentation/index.js +1 -1
  1010. package/dist/src/public/instrumentation/otel.d.ts +1 -1
  1011. package/dist/src/public/instrumentation/otel.js +1 -1
  1012. package/dist/src/public/instrumentation/provider.d.ts +1 -1
  1013. package/dist/src/public/instrumentation/provider.js +1 -1
  1014. package/dist/src/public/local-dev.d.ts +3 -1
  1015. package/dist/src/public/memory/file/backend.d.ts +1 -1
  1016. package/dist/src/public/memory/file/backends/in-memory.js +1 -1
  1017. package/dist/src/public/memory/file/backends/vercel-blob.js +1 -1
  1018. package/dist/src/public/memory/file/provider.js +1 -1
  1019. package/dist/src/public/memory/index.d.ts +14 -20
  1020. package/dist/src/public/models/index.d.ts +3 -0
  1021. package/dist/src/public/models/index.js +1 -1
  1022. package/dist/src/public/models/openai/index.d.ts +0 -2
  1023. package/dist/src/public/models/openai/index.js +1 -1
  1024. package/dist/src/public/next/index.d.ts +5 -36
  1025. package/dist/src/public/next/index.js +1 -1
  1026. package/dist/src/public/nuxt/index.d.ts +1 -1
  1027. package/dist/src/public/nuxt/module.d.ts +5 -2
  1028. package/dist/src/public/sandbox/index.d.ts +1 -1
  1029. package/dist/src/public/sandbox/vercel-sandbox.d.ts +52 -12
  1030. package/dist/src/public/sandbox/vercel.d.ts +1 -1
  1031. package/dist/src/public/schedules/subscription.d.ts +5 -8
  1032. package/dist/src/public/server/index.d.ts +2 -14
  1033. package/dist/src/public/server/index.js +1 -1
  1034. package/dist/src/public/sessions/index.d.ts +6 -0
  1035. package/dist/src/public/sessions/index.js +1 -0
  1036. package/dist/src/public/skills/index.d.ts +2 -2
  1037. package/dist/src/public/skills/index.js +1 -1
  1038. package/dist/src/public/sveltekit/routing.d.ts +0 -4
  1039. package/dist/src/public/sveltekit/routing.js +1 -1
  1040. package/dist/src/public/tools/approval/index.d.ts +1 -1
  1041. package/dist/src/public/tools/bash.d.ts +1 -1
  1042. package/dist/src/public/tools/bash.js +1 -1
  1043. package/dist/src/public/tools/glob.d.ts +1 -1
  1044. package/dist/src/public/tools/glob.js +1 -1
  1045. package/dist/src/public/tools/grep.d.ts +1 -1
  1046. package/dist/src/public/tools/grep.js +1 -1
  1047. package/dist/src/public/tools/index.d.ts +5 -9
  1048. package/dist/src/public/tools/index.js +1 -1
  1049. package/dist/src/public/tools/read-file.d.ts +1 -1
  1050. package/dist/src/public/tools/read-file.js +1 -1
  1051. package/dist/src/public/tools/result.d.ts +17 -9
  1052. package/dist/src/public/tools/result.js +1 -1
  1053. package/dist/src/public/tools/web-fetch.d.ts +1 -1
  1054. package/dist/src/public/tools/web-fetch.js +1 -1
  1055. package/dist/src/public/tools/web-search.d.ts +1 -3
  1056. package/dist/src/public/tools/web-search.js +1 -1
  1057. package/dist/src/public/tools/write-file.d.ts +1 -1
  1058. package/dist/src/public/tools/write-file.js +1 -1
  1059. package/dist/src/public/workflow-modules.d.ts +8 -2
  1060. package/dist/src/react/index.d.ts +4 -7
  1061. package/dist/src/react/index.js +1 -1
  1062. package/dist/src/react/use-eve-agent.d.ts +68 -50
  1063. package/dist/src/react/use-eve-agent.js +1 -1
  1064. package/dist/src/reactions/bundle.d.ts +4 -0
  1065. package/dist/src/reactions/bundle.js +1 -0
  1066. package/dist/src/reactions/frame.d.ts +13 -0
  1067. package/dist/src/reactions/frame.js +1 -0
  1068. package/dist/src/reactions/intents.d.ts +22 -0
  1069. package/dist/src/reactions/intents.js +1 -0
  1070. package/dist/src/reactions/kinds/connection.d.ts +18 -0
  1071. package/dist/src/reactions/kinds/connection.js +1 -0
  1072. package/dist/src/reactions/kinds/hook.d.ts +8 -0
  1073. package/dist/src/reactions/kinds/hook.js +1 -0
  1074. package/dist/src/reactions/kinds/instructions.d.ts +21 -0
  1075. package/dist/src/reactions/kinds/instructions.js +1 -0
  1076. package/dist/src/reactions/kinds/memory.d.ts +72 -0
  1077. package/dist/src/reactions/kinds/memory.js +1 -0
  1078. package/dist/src/reactions/kinds/model.d.ts +21 -0
  1079. package/dist/src/reactions/kinds/model.js +1 -0
  1080. package/dist/src/reactions/kinds/skill.d.ts +27 -0
  1081. package/dist/src/reactions/kinds/skill.js +1 -0
  1082. package/dist/src/reactions/kinds/subagent.d.ts +16 -0
  1083. package/dist/src/reactions/kinds/subagent.js +1 -0
  1084. package/dist/src/reactions/kinds/tool.d.ts +16 -0
  1085. package/dist/src/reactions/kinds/tool.js +1 -0
  1086. package/dist/src/reactions/policy.d.ts +13 -0
  1087. package/dist/src/reactions/policy.js +1 -0
  1088. package/dist/src/reactions/reaction.d.ts +83 -0
  1089. package/dist/src/reactions/reaction.js +1 -0
  1090. package/dist/src/reactions/records.d.ts +40 -0
  1091. package/dist/src/reactions/records.js +1 -0
  1092. package/dist/src/reactions/remote.d.ts +25 -0
  1093. package/dist/src/reactions/remote.js +1 -0
  1094. package/dist/src/reactions/runner.d.ts +45 -0
  1095. package/dist/src/reactions/runner.js +1 -0
  1096. package/dist/src/reactions/state.d.ts +102 -0
  1097. package/dist/src/reactions/state.js +1 -0
  1098. package/dist/src/reactions/turn.d.ts +12 -0
  1099. package/dist/src/reactions/turn.js +2 -0
  1100. package/dist/src/runtime/agent/bootstrap.d.ts +1 -3
  1101. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  1102. package/dist/src/runtime/agent/resolve-model.js +1 -1
  1103. package/dist/src/runtime/connections/mcp-client.d.ts +5 -2
  1104. package/dist/src/runtime/connections/mcp-client.js +1 -1
  1105. package/dist/src/runtime/connections/openapi-client.js +1 -1
  1106. package/dist/src/runtime/connections/openapi-operations.d.ts +4 -0
  1107. package/dist/src/runtime/connections/openapi-operations.js +1 -1
  1108. package/dist/src/runtime/connections/openapi-schema.d.ts +19 -14
  1109. package/dist/src/runtime/connections/openapi-schema.js +1 -1
  1110. package/dist/src/runtime/connections/principal.d.ts +2 -0
  1111. package/dist/src/runtime/connections/principal.js +1 -1
  1112. package/dist/src/runtime/connections/registry.d.ts +2 -2
  1113. package/dist/src/runtime/connections/registry.js +1 -1
  1114. package/dist/src/runtime/connections/scoped-authorization.d.ts +8 -1
  1115. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  1116. package/dist/src/runtime/graph.d.ts +0 -6
  1117. package/dist/src/runtime/local-dev-capability.d.ts +4 -5
  1118. package/dist/src/runtime/local-dev-capability.js +1 -1
  1119. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  1120. package/dist/src/runtime/resolve-agent.js +1 -1
  1121. package/dist/src/runtime/resolve-connection.js +1 -1
  1122. package/dist/src/runtime/resolve-dynamic.d.ts +9 -0
  1123. package/dist/src/runtime/resolve-dynamic.js +1 -0
  1124. package/dist/src/runtime/resolve-hook.js +1 -1
  1125. package/dist/src/runtime/resolve-memory.js +1 -1
  1126. package/dist/src/runtime/resolve-tool.js +1 -1
  1127. package/dist/src/runtime/schedules/collection-client.js +1 -1
  1128. package/dist/src/runtime/schedules/dispatch-occurrence.js +1 -1
  1129. package/dist/src/runtime/sessions/compiled-agent-cache.d.ts +0 -2
  1130. package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
  1131. package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
  1132. package/dist/src/runtime/subagents/dynamic-remote-agent-config.d.ts +16 -3
  1133. package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
  1134. package/dist/src/runtime/subagents/workflow.js +1 -1
  1135. package/dist/src/runtime/types.d.ts +22 -39
  1136. package/dist/src/sandbox/provider.d.ts +3 -3
  1137. package/dist/src/sandbox/providers/default.d.ts +4 -2
  1138. package/dist/src/sandbox/providers/default.js +1 -1
  1139. package/dist/src/self-modification/agent.d.ts +3 -3
  1140. package/dist/src/self-modification/agent.js +1 -1
  1141. package/dist/src/self-modification/config.d.ts +1 -1
  1142. package/dist/src/self-modification/config.js +1 -1
  1143. package/dist/src/self-modification/deployed-sandbox.js +1 -1
  1144. package/dist/src/self-modification/extension/extension.d.ts +1 -0
  1145. package/dist/src/self-modification/extension/local-only.d.ts +1 -1
  1146. package/dist/src/self-modification/extension/local-only.js +1 -1
  1147. package/dist/src/self-modification/extension/subagents/agent/agent.d.ts +15 -4
  1148. package/dist/src/self-modification/extension/subagents/agent/agent.js +1 -1
  1149. package/dist/src/self-modification/extension/subagents/agent/instructions.d.ts +1 -1
  1150. package/dist/src/self-modification/extension/subagents/agent/instructions.js +2 -2
  1151. package/dist/src/self-modification/extension/subagents/agent/sandbox.d.ts +2 -2
  1152. package/dist/src/self-modification/extension/subagents/agent/sandbox.js +1 -1
  1153. package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.d.ts +3 -3
  1154. package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.js +1 -1
  1155. package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace.d.ts +1 -1
  1156. package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace_spans.d.ts +1 -1
  1157. package/dist/src/self-modification/extension/subagents/agent/tools/registry_add.d.ts +1 -1
  1158. package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.d.ts +1 -1
  1159. package/dist/src/self-modification/mode.d.ts +8 -0
  1160. package/dist/src/self-modification/mode.js +1 -1
  1161. package/dist/src/self-modification/remote/config.d.ts +3 -6
  1162. package/dist/src/self-modification/remote/extension.d.ts +1 -0
  1163. package/dist/src/self-modification/remote/production-registry-add.js +1 -1
  1164. package/dist/src/self-modification/remote/subagents/agent/agent.d.ts +6 -3
  1165. package/dist/src/self-modification/remote/subagents/agent/agent.js +1 -1
  1166. package/dist/src/self-modification/remote/subagents/agent/instructions.d.ts +1 -1
  1167. package/dist/src/self-modification/remote/subagents/agent/instructions.js +2 -2
  1168. package/dist/src/self-modification/remote/subagents/agent/tools/publish.d.ts +1 -3
  1169. package/dist/src/self-modification/remote/subagents/agent/tools/publish.js +1 -1
  1170. package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.d.ts +1 -3
  1171. package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.js +1 -1
  1172. package/dist/src/self-modification/scaffold.js +1 -1
  1173. package/dist/src/self-modification/setup.js +3 -6
  1174. package/dist/src/services/dev-client/client-options.js +1 -1
  1175. package/dist/src/services/dev-client.d.ts +4 -4
  1176. package/dist/src/services/dev-client.js +1 -1
  1177. package/dist/src/setup/integrations/self-modification/setup.d.ts +1 -4
  1178. package/dist/src/setup/integrations/self-modification/setup.js +1 -1
  1179. package/dist/src/setup/scaffold/create/project.js +1 -1
  1180. package/dist/src/setup/scaffold/create/web-template.d.ts +9 -18
  1181. package/dist/src/setup/scaffold/create/web-template.js +1015 -2537
  1182. package/dist/src/setup/verified-remote-agent.js +1 -1
  1183. package/dist/src/shared/action-label.d.ts +5 -3
  1184. package/dist/src/shared/action-label.js +1 -1
  1185. package/dist/src/shared/action-types.d.ts +5 -0
  1186. package/dist/src/shared/action-types.js +1 -1
  1187. package/dist/src/shared/agent-definition.d.ts +14 -9
  1188. package/dist/src/shared/answers-delivery-id.d.ts +1 -0
  1189. package/dist/src/shared/answers-delivery-id.js +1 -0
  1190. package/dist/src/shared/channel-context.d.ts +12 -0
  1191. package/dist/src/shared/channel-context.js +1 -0
  1192. package/dist/src/shared/channel-definition.d.ts +19 -26
  1193. package/dist/src/shared/channel-delivery.d.ts +16 -0
  1194. package/dist/src/shared/channel-delivery.js +1 -0
  1195. package/dist/src/shared/connection-events.d.ts +2 -2
  1196. package/dist/src/shared/connection-types.d.ts +12 -32
  1197. package/dist/src/shared/conversation-context.d.ts +4 -13
  1198. package/dist/src/shared/delivery.d.ts +38 -0
  1199. package/dist/src/shared/delivery.js +1 -0
  1200. package/dist/src/shared/history-message.d.ts +190 -0
  1201. package/dist/src/shared/history-message.js +1 -0
  1202. package/dist/src/shared/input.d.ts +23 -97
  1203. package/dist/src/shared/input.js +1 -1
  1204. package/dist/src/shared/instructions-definition.d.ts +2 -8
  1205. package/dist/src/shared/instrumentation-channel-kind.d.ts +1 -1
  1206. package/dist/src/shared/instrumentation-channel.d.ts +12 -0
  1207. package/dist/src/shared/instrumentation-channel.js +1 -0
  1208. package/dist/src/shared/json.d.ts +2 -18
  1209. package/dist/src/shared/memory-state.d.ts +4 -40
  1210. package/dist/src/shared/memory-state.js +1 -1
  1211. package/dist/src/shared/message-content.d.ts +19 -0
  1212. package/dist/src/shared/message-content.js +1 -0
  1213. package/dist/src/shared/network-address.d.ts +9 -0
  1214. package/dist/src/shared/network-address.js +1 -1
  1215. package/dist/src/shared/sandbox-environment.d.ts +2 -2
  1216. package/dist/src/shared/sandbox-provider.d.ts +1 -1
  1217. package/dist/src/shared/sandbox-session.d.ts +60 -85
  1218. package/dist/src/shared/schedule-definition.d.ts +5 -5
  1219. package/dist/src/shared/serialized-observability-state.d.ts +0 -2
  1220. package/dist/src/shared/serialized-observability-state.js +1 -1
  1221. package/dist/src/shared/session-history.d.ts +2 -2
  1222. package/dist/src/shared/session.d.ts +22 -0
  1223. package/dist/src/shared/session.js +1 -0
  1224. package/dist/src/shared/skill-definition.d.ts +1 -1
  1225. package/dist/src/shared/skill-package.d.ts +2 -2
  1226. package/dist/src/shared/skill-package.js +1 -1
  1227. package/dist/src/shared/token-usage-math.d.ts +5 -0
  1228. package/dist/src/shared/token-usage-math.js +1 -0
  1229. package/dist/src/shared/token-usage.d.ts +0 -2
  1230. package/dist/src/shared/token-usage.js +1 -1
  1231. package/dist/src/shared/validate-authorization.js +1 -1
  1232. package/dist/src/shared/wait-with-signal.d.ts +2 -0
  1233. package/dist/src/shared/wait-with-signal.js +1 -0
  1234. package/dist/src/subagents/adapter.d.ts +3 -5
  1235. package/dist/src/subagents/adapter.js +1 -1
  1236. package/dist/src/subagents/callback-route.js +1 -1
  1237. package/dist/src/subagents/event-proxy-step.d.ts +6 -9
  1238. package/dist/src/subagents/event-proxy-step.js +1 -1
  1239. package/dist/src/subagents/hitl-proxy.d.ts +11 -23
  1240. package/dist/src/subagents/hitl-proxy.js +1 -1
  1241. package/dist/src/subagents/invocation.d.ts +8 -8
  1242. package/dist/src/subagents/invocation.js +2 -2
  1243. package/dist/src/subagents/parent-notification.d.ts +5 -0
  1244. package/dist/src/subagents/parent-notification.js +1 -1
  1245. package/dist/src/subagents/protocol-two-callback.d.ts +27 -0
  1246. package/dist/src/subagents/protocol-two-callback.js +1 -0
  1247. package/dist/src/svelte/index.d.ts +3 -6
  1248. package/dist/src/svelte/index.js +2 -39
  1249. package/dist/src/svelte/use-eve-agent.d.ts +67 -56
  1250. package/dist/src/svelte/use-eve-agent.js +1 -1
  1251. package/dist/src/tool-stubs/rules.js +1 -1
  1252. package/dist/src/tools/approval/policies.d.ts +4 -16
  1253. package/dist/src/tools/approval/policies.js +1 -1
  1254. package/dist/src/tools/auth.d.ts +3 -3
  1255. package/dist/src/tools/definition.d.ts +13 -35
  1256. package/dist/src/tools/definition.js +1 -1
  1257. package/dist/src/tools/dynamic.d.ts +13 -72
  1258. package/dist/src/tools/dynamic.js +1 -1
  1259. package/dist/src/tools/framework/agent.js +1 -1
  1260. package/dist/src/tools/provided/ask-question-workflow.d.ts +3 -3
  1261. package/dist/src/tools/provided/ask-question-workflow.js +1 -1
  1262. package/dist/src/tools/provided/ask-question.d.ts +2 -2
  1263. package/dist/src/tools/provided/ask-question.js +1 -1
  1264. package/dist/src/tools/provided/grep.d.ts +2 -15
  1265. package/dist/src/tools/provided/grep.js +1 -2
  1266. package/dist/src/tools/provided/no-reply.d.ts +2 -2
  1267. package/dist/src/tools/provided/no-reply.js +1 -1
  1268. package/dist/src/tools/provided/sleep-workflow.js +1 -1
  1269. package/dist/src/tools/provided/sleep.d.ts +2 -2
  1270. package/dist/src/tools/provided/sleep.js +1 -1
  1271. package/dist/src/tools/provided/workflow.js +1 -1
  1272. package/dist/src/tools/schema.d.ts +2 -0
  1273. package/dist/src/tools/schema.js +1 -1
  1274. package/dist/src/tools/signature.js +1 -1
  1275. package/dist/src/tools/workflow-definition.d.ts +17 -15
  1276. package/dist/src/tracing/eve/agent-approval-instrumentation.d.ts +1 -1
  1277. package/dist/src/tracing/eve/agent-approval-instrumentation.js +1 -1
  1278. package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.d.ts +2 -2
  1279. package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.js +1 -1
  1280. package/dist/src/tracing/eve/agent-invocation-coordinator.d.ts +2 -2
  1281. package/dist/src/tracing/eve/agent-otel-provider.js +1 -1
  1282. package/dist/src/tracing/eve/agent-tool-instrumentation.d.ts +6 -7
  1283. package/dist/src/tracing/eve/agent-tool-instrumentation.js +1 -1
  1284. package/dist/src/tracing/eve/agent-trace-context-store.d.ts +3 -3
  1285. package/dist/src/tracing/eve/agent-trace-state.d.ts +1 -6
  1286. package/dist/src/tracing/eve/delegation.d.ts +4 -4
  1287. package/dist/src/tracing/eve/install-instrumentation-runtime.js +1 -1
  1288. package/dist/src/tracing/eve/invoke-tool-span.d.ts +3 -2
  1289. package/dist/src/tracing/eve/invoke-tool-span.js +1 -1
  1290. package/dist/src/tracing/eve/otel-declaration.d.ts +9 -10
  1291. package/dist/src/tracing/eve/otel-declaration.js +1 -1
  1292. package/dist/src/tracing/eve/policy.d.ts +2 -2
  1293. package/dist/src/tracing/eve/policy.js +1 -1
  1294. package/dist/src/tracing/eve/session.d.ts +4 -3
  1295. package/dist/src/tracing/eve/session.js +1 -1
  1296. package/dist/src/vue/index.d.ts +3 -6
  1297. package/dist/src/vue/index.js +2 -39
  1298. package/dist/src/vue/use-eve-agent.d.ts +70 -59
  1299. package/dist/src/vue/use-eve-agent.js +1 -1
  1300. package/docs/agent-config.md +40 -44
  1301. package/docs/channels/chat-sdk.mdx +19 -13
  1302. package/docs/channels/custom.mdx +106 -85
  1303. package/docs/channels/discord.mdx +12 -12
  1304. package/docs/channels/eve.mdx +48 -15
  1305. package/docs/channels/github.mdx +2 -2
  1306. package/docs/channels/linear.mdx +8 -8
  1307. package/docs/channels/linq.mdx +1 -1
  1308. package/docs/channels/mcp.mdx +2 -2
  1309. package/docs/channels/overview.mdx +11 -1
  1310. package/docs/channels/photon.mdx +1 -1
  1311. package/docs/channels/slack.mdx +65 -58
  1312. package/docs/channels/teams.mdx +4 -4
  1313. package/docs/channels/telegram.mdx +1 -1
  1314. package/docs/channels/twilio.mdx +2 -2
  1315. package/docs/code-extension.mdx +19 -7
  1316. package/docs/concepts/built-in-tools.md +21 -9
  1317. package/docs/concepts/context-control.md +5 -8
  1318. package/docs/concepts/default-harness.md +8 -9
  1319. package/docs/concepts/execution-model-and-durability.mdx +119 -12
  1320. package/docs/concepts/meta.json +1 -0
  1321. package/docs/concepts/sessions-runs-and-streaming.md +244 -138
  1322. package/docs/concepts/state.md +1 -1
  1323. package/docs/concepts/upgrade-to-v27-events.md +128 -0
  1324. package/docs/connections/mcp.mdx +38 -34
  1325. package/docs/connections/openapi.mdx +24 -3
  1326. package/docs/connections/overview.mdx +66 -57
  1327. package/docs/evals/assertions.mdx +30 -24
  1328. package/docs/evals/cases.mdx +19 -24
  1329. package/docs/evals/judge.mdx +2 -2
  1330. package/docs/evals/overview.mdx +7 -7
  1331. package/docs/evals/reporters.mdx +15 -11
  1332. package/docs/evals/targets.mdx +5 -3
  1333. package/docs/evals/tool-stubs.mdx +2 -2
  1334. package/docs/extensions.md +6 -3
  1335. package/docs/guides/auth-and-route-protection.md +4 -0
  1336. package/docs/guides/client/continuations.mdx +10 -10
  1337. package/docs/guides/client/messages.mdx +50 -48
  1338. package/docs/guides/client/output-schema.mdx +13 -13
  1339. package/docs/guides/client/overview.mdx +12 -12
  1340. package/docs/guides/client/streaming.mdx +160 -123
  1341. package/docs/guides/decide.md +15 -9
  1342. package/docs/guides/deployment/self-hosting.md +5 -40
  1343. package/docs/guides/dynamic-capabilities.md +151 -406
  1344. package/docs/guides/frontend/nextjs.mdx +1 -1
  1345. package/docs/guides/frontend/nuxt.mdx +2 -2
  1346. package/docs/guides/frontend/overview.mdx +257 -181
  1347. package/docs/guides/frontend/sveltekit.mdx +4 -4
  1348. package/docs/guides/frontend/tanstack.mdx +5 -5
  1349. package/docs/guides/frontend/use-eve-agent-svelte.mdx +30 -38
  1350. package/docs/guides/frontend/use-eve-agent-vue.mdx +35 -36
  1351. package/docs/guides/hooks.md +67 -55
  1352. package/docs/guides/instrumentation/instrumentation.mdx +33 -27
  1353. package/docs/guides/instrumentation/otel.mdx +4 -2
  1354. package/docs/guides/remote-agents.md +116 -50
  1355. package/docs/guides/self-modification.md +11 -7
  1356. package/docs/instructions.mdx +4 -6
  1357. package/docs/memory/custom-provider.md +63 -56
  1358. package/docs/memory/file.md +1 -1
  1359. package/docs/memory/overview.mdx +10 -18
  1360. package/docs/patterns/durable-cross-channel-notifications.md +4 -3
  1361. package/docs/patterns/multi-tenant-approvals.md +3 -3
  1362. package/docs/patterns/multi-tenant-auth.md +3 -3
  1363. package/docs/patterns/multi-tenant-memory.md +6 -7
  1364. package/docs/patterns/voice-notes.md +1 -1
  1365. package/docs/reference/cli.md +11 -25
  1366. package/docs/reference/typescript-api.md +88 -61
  1367. package/docs/sandbox/custom-providers.mdx +13 -14
  1368. package/docs/sandbox/default.mdx +1 -1
  1369. package/docs/sandbox/docker.mdx +10 -0
  1370. package/docs/sandbox/index.mdx +4 -0
  1371. package/docs/sandbox/vercel.mdx +6 -6
  1372. package/docs/schedules.mdx +4 -4
  1373. package/docs/skills.mdx +6 -6
  1374. package/docs/subagents/index.mdx +25 -34
  1375. package/docs/tools/human-in-the-loop.md +42 -34
  1376. package/docs/tools/overview.mdx +14 -12
  1377. package/docs/tools/tasks-upgrade.md +13 -1
  1378. package/docs/tools/tasks.md +58 -89
  1379. package/docs/tools/workflows.mdx +44 -33
  1380. package/docs/tutorial/guard-the-spend.mdx +1 -1
  1381. package/docs/tutorial/run-analysis.mdx +15 -12
  1382. package/docs/tutorial/team-playbooks.mdx +19 -23
  1383. package/package.json +148 -93
  1384. package/dist/src/chunks/use-eve-agent-DnbG9c7c.js +0 -4921
  1385. package/dist/src/chunks/use-eve-agent-ZY7NQ2VW.js +0 -4963
  1386. package/dist/src/cli/invoke/command.d.ts +0 -19
  1387. package/dist/src/cli/invoke/command.js +0 -1
  1388. package/dist/src/cli/invoke/invoke.d.ts +0 -27
  1389. package/dist/src/cli/invoke/invoke.js +0 -1
  1390. package/dist/src/cli/invoke/result.d.ts +0 -137
  1391. package/dist/src/cli/invoke/result.js +0 -1
  1392. package/dist/src/client/agent-host.d.ts +0 -4
  1393. package/dist/src/client/agent-host.js +0 -1
  1394. package/dist/src/client/authorization-message-parts.d.ts +0 -4
  1395. package/dist/src/client/authorization-message-parts.js +0 -1
  1396. package/dist/src/client/conversation-projection.d.ts +0 -4
  1397. package/dist/src/client/conversation-projection.js +0 -1
  1398. package/dist/src/client/conversation-reducer.d.ts +0 -29
  1399. package/dist/src/client/conversation-reducer.js +0 -1
  1400. package/dist/src/client/eve-agent-projection.d.ts +0 -28
  1401. package/dist/src/client/eve-agent-projection.js +0 -1
  1402. package/dist/src/client/eve-agent-store-helpers.d.ts +0 -34
  1403. package/dist/src/client/eve-agent-store-helpers.js +0 -2
  1404. package/dist/src/client/eve-agent-store-state.d.ts +0 -96
  1405. package/dist/src/client/eve-agent-store.d.ts +0 -45
  1406. package/dist/src/client/eve-agent-store.js +0 -1
  1407. package/dist/src/client/message-action-parts.d.ts +0 -37
  1408. package/dist/src/client/message-action-parts.js +0 -1
  1409. package/dist/src/client/message-reducer-primitives.d.ts +0 -6
  1410. package/dist/src/client/message-reducer-primitives.js +0 -1
  1411. package/dist/src/client/message-reducer-types.d.ts +0 -244
  1412. package/dist/src/client/message-reducer.d.ts +0 -14
  1413. package/dist/src/client/message-reducer.js +0 -1
  1414. package/dist/src/client/message-response.d.ts +0 -74
  1415. package/dist/src/client/message-response.js +0 -1
  1416. package/dist/src/client/message-run-parts.d.ts +0 -22
  1417. package/dist/src/client/message-run-parts.js +0 -1
  1418. package/dist/src/client/output-schema.d.ts +0 -5
  1419. package/dist/src/client/output-schema.js +0 -1
  1420. package/dist/src/client/reducer.d.ts +0 -67
  1421. package/dist/src/client/session-turn-dispatch.d.ts +0 -15
  1422. package/dist/src/client/session-turn-dispatch.js +0 -1
  1423. package/dist/src/client/tool-call-state.d.ts +0 -23
  1424. package/dist/src/client/tool-call-state.js +0 -1
  1425. package/dist/src/client/tool-part-state.d.ts +0 -7
  1426. package/dist/src/client/tool-part-state.js +0 -1
  1427. package/dist/src/client/transcript-reducer.d.ts +0 -49
  1428. package/dist/src/client/transcript-reducer.js +0 -2
  1429. package/dist/src/context/build-dynamic-tools.d.ts +0 -10
  1430. package/dist/src/context/build-dynamic-tools.js +0 -1
  1431. package/dist/src/context/dynamic-connection-lifecycle.d.ts +0 -15
  1432. package/dist/src/context/dynamic-connection-lifecycle.js +0 -1
  1433. package/dist/src/context/dynamic-instruction-lifecycle.d.ts +0 -31
  1434. package/dist/src/context/dynamic-instruction-lifecycle.js +0 -1
  1435. package/dist/src/context/dynamic-model-lifecycle.d.ts +0 -19
  1436. package/dist/src/context/dynamic-model-lifecycle.js +0 -1
  1437. package/dist/src/context/dynamic-resolve-context.d.ts +0 -12
  1438. package/dist/src/context/dynamic-resolve-context.js +0 -1
  1439. package/dist/src/context/dynamic-skill-lifecycle.d.ts +0 -15
  1440. package/dist/src/context/dynamic-skill-lifecycle.js +0 -1
  1441. package/dist/src/context/dynamic-subagent-lifecycle.d.ts +0 -27
  1442. package/dist/src/context/dynamic-subagent-lifecycle.js +0 -1
  1443. package/dist/src/context/dynamic-tool-lifecycle.d.ts +0 -46
  1444. package/dist/src/context/dynamic-tool-lifecycle.js +0 -1
  1445. package/dist/src/context/dynamic-tool-metadata.d.ts +0 -47
  1446. package/dist/src/context/dynamic-tool-metadata.js +0 -1
  1447. package/dist/src/context/effective-model.d.ts +0 -5
  1448. package/dist/src/context/effective-model.js +0 -1
  1449. package/dist/src/context/hook-lifecycle.d.ts +0 -15
  1450. package/dist/src/context/hook-lifecycle.js +0 -1
  1451. package/dist/src/context/memory-event-lifecycle.d.ts +0 -15
  1452. package/dist/src/context/memory-event-lifecycle.js +0 -1
  1453. package/dist/src/context/memory-lifecycle.d.ts +0 -47
  1454. package/dist/src/context/memory-lifecycle.js +0 -1
  1455. package/dist/src/context/serialized-dynamic-model-selection.d.ts +0 -2
  1456. package/dist/src/context/serialized-dynamic-model-selection.js +0 -1
  1457. package/dist/src/execution/cancel-descendant-turns-step.d.ts +0 -6
  1458. package/dist/src/execution/cancel-descendant-turns-step.js +0 -1
  1459. package/dist/src/execution/dynamic-connection-recovery.d.ts +0 -14
  1460. package/dist/src/execution/dynamic-connection-recovery.js +0 -1
  1461. package/dist/src/execution/dynamic-connections.d.ts +0 -12
  1462. package/dist/src/execution/dynamic-connections.js +0 -1
  1463. package/dist/src/execution/history-view.d.ts +0 -10
  1464. package/dist/src/execution/history-view.js +0 -1
  1465. package/dist/src/execution/legacy-remote-agent/protocol.d.ts +0 -49
  1466. package/dist/src/execution/legacy-remote-agent/protocol.js +0 -1
  1467. package/dist/src/execution/runtime-errors.d.ts +0 -13
  1468. package/dist/src/execution/runtime-errors.js +0 -1
  1469. package/dist/src/execution/sandbox/grep-tool.d.ts +0 -26
  1470. package/dist/src/execution/sandbox/grep-tool.js +0 -3
  1471. package/dist/src/execution/session/turn-waiting-step.d.ts +0 -4
  1472. package/dist/src/execution/session/turn-waiting-step.js +0 -1
  1473. package/dist/src/execution/tools/workflow/cancel.d.ts +0 -13
  1474. package/dist/src/execution/tools/workflow/cancel.js +0 -1
  1475. package/dist/src/execution/workflow-trace-context.d.ts +0 -8
  1476. package/dist/src/execution/workflow-trace-context.js +0 -1
  1477. package/dist/src/extensions/code/extension/instructions/github.d.ts +0 -3
  1478. package/dist/src/extensions/code/extension/instructions/github.js +0 -1
  1479. package/dist/src/extensions/code/extension/lib/github-compat.d.ts +0 -28
  1480. package/dist/src/extensions/code/extension/lib/github-compat.js +0 -1
  1481. package/dist/src/extensions/code/extension/lib/grep-search.js +0 -6
  1482. package/dist/src/extensions/code/extension/skills/pr.d.ts +0 -6
  1483. package/dist/src/extensions/code/extension/skills/pr.js +0 -1
  1484. package/dist/src/extensions/code/extension/tools/gh.d.ts +0 -28
  1485. package/dist/src/extensions/code/extension/tools/gh.js +0 -1
  1486. package/dist/src/harness/approval-recheck.d.ts +0 -7
  1487. package/dist/src/harness/approval-recheck.js +0 -1
  1488. package/dist/src/harness/authorization-event-fields.d.ts +0 -16
  1489. package/dist/src/harness/authorization-event-fields.js +0 -1
  1490. package/dist/src/harness/hitl/candidates.d.ts +0 -139
  1491. package/dist/src/harness/hitl/candidates.js +0 -1
  1492. package/dist/src/harness/hitl/coordinator.d.ts +0 -35
  1493. package/dist/src/harness/hitl/coordinator.js +0 -1
  1494. package/dist/src/harness/input-extraction.d.ts +0 -13
  1495. package/dist/src/harness/input-extraction.js +0 -1
  1496. package/dist/src/harness/input-request-class.d.ts +0 -3
  1497. package/dist/src/harness/input-request-class.js +0 -1
  1498. package/dist/src/harness/input-request-resolution.d.ts +0 -39
  1499. package/dist/src/harness/input-request-resolution.js +0 -1
  1500. package/dist/src/harness/open-input-request.d.ts +0 -8
  1501. package/dist/src/harness/open-input-request.js +0 -1
  1502. package/dist/src/harness/session-machine/events.d.ts +0 -6
  1503. package/dist/src/harness/session-machine/events.js +0 -1
  1504. package/dist/src/harness/session-machine/resolver-events.d.ts +0 -12
  1505. package/dist/src/harness/session-machine/resolver-events.js +0 -1
  1506. package/dist/src/harness/tool-call-action.d.ts +0 -9
  1507. package/dist/src/harness/tool-call-action.js +0 -1
  1508. package/dist/src/harness/tool-interrupts.d.ts +0 -22
  1509. package/dist/src/harness/tool-interrupts.js +0 -1
  1510. package/dist/src/harness/tool-presentation.d.ts +0 -5
  1511. package/dist/src/harness/tool-presentation.js +0 -1
  1512. package/dist/src/harness/turn-tag-state.d.ts +0 -115
  1513. package/dist/src/harness/turn-tag-state.js +0 -1
  1514. package/dist/src/internal/dynamic-tool-rebind.d.ts +0 -3
  1515. package/dist/src/internal/dynamic-tool-rebind.js +0 -1
  1516. package/dist/src/internal/nitro/host/extension-capability-requirements.d.ts +0 -14
  1517. package/dist/src/internal/nitro/host/extension-capability-requirements.js +0 -1
  1518. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.d.ts +0 -12
  1519. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.js +0 -1
  1520. package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.d.ts +0 -7
  1521. package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.js +0 -3
  1522. package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.d.ts +0 -79
  1523. package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.js +0 -1
  1524. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.d.ts +0 -14
  1525. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +0 -3
  1526. package/dist/src/protocol/event-dedupe.d.ts +0 -26
  1527. package/dist/src/protocol/event-dedupe.js +0 -1
  1528. package/dist/src/protocol/event-id.d.ts +0 -10
  1529. package/dist/src/protocol/event-id.js +0 -1
  1530. package/dist/src/protocol/message-version.d.ts +0 -53
  1531. package/dist/src/protocol/message-version.js +0 -1
  1532. package/dist/src/protocol/message.d.ts +0 -1198
  1533. package/dist/src/protocol/message.js +0 -2
  1534. package/dist/src/public/channels/chat-sdk/messageToUserContent.js +0 -1
  1535. package/dist/src/public/channels/slack/input-response.js +0 -1
  1536. package/dist/src/runtime/hooks/registry.d.ts +0 -34
  1537. package/dist/src/runtime/hooks/registry.js +0 -1
  1538. package/dist/src/runtime/resolve-dynamic-connection.d.ts +0 -5
  1539. package/dist/src/runtime/resolve-dynamic-connection.js +0 -1
  1540. package/dist/src/runtime/resolve-dynamic-instructions.d.ts +0 -4
  1541. package/dist/src/runtime/resolve-dynamic-instructions.js +0 -1
  1542. package/dist/src/runtime/resolve-dynamic-skill.d.ts +0 -8
  1543. package/dist/src/runtime/resolve-dynamic-skill.js +0 -1
  1544. package/dist/src/runtime/resolve-dynamic-subagent.d.ts +0 -9
  1545. package/dist/src/runtime/resolve-dynamic-subagent.js +0 -1
  1546. package/dist/src/runtime/resolve-dynamic-tool.d.ts +0 -12
  1547. package/dist/src/runtime/resolve-dynamic-tool.js +0 -1
  1548. package/dist/src/self-modification/migration.d.ts +0 -9
  1549. package/dist/src/self-modification/migration.js +0 -28
  1550. package/dist/src/shared/history-view.d.ts +0 -22
  1551. package/dist/src/shared/history-view.js +0 -1
  1552. package/dist/src/shared/package-version.d.ts +0 -2
  1553. package/dist/src/shared/package-version.js +0 -1
  1554. package/dist/src/tools/durable-callbacks.d.ts +0 -118
  1555. package/dist/src/tools/durable-callbacks.js +0 -1
  1556. package/dist/src/tools/durable-schema.d.ts +0 -16
  1557. package/dist/src/tools/durable-schema.js +0 -1
  1558. /package/dist/src/{client/eve-agent-store-state.js → ai/decision-types.js} +0 -0
  1559. /package/dist/src/client/{message-reducer-types.js → agent-info-types.js} +0 -0
  1560. /package/dist/src/client/{reducer.js → health-types.js} +0 -0
  1561. /package/dist/src/{shared → protocol/session-projection}/display-name.d.ts +0 -0
  1562. /package/dist/src/{shared → protocol/session-projection}/display-name.js +0 -0
@@ -1 +1 @@
1
- import{createHook,getWorkflowMetadata}from"#compiled/@workflow/core/index.js";import{disposeHook}from"#execution/hook-ownership.js";import{runSignIn}from"#harness/session-machine/transitions.js";import{findWorkflowToolRunContext}from"#execution/tools/workflow/ask.js";function workflowToolStep(e,t){return new Proxy(e,{apply(e,n,r){let i=findWorkflowContextArgument(r);return i===void 0?Reflect.apply(e,n,r):executeAuthorizedStep(t,n,r,i)}})}function findWorkflowContextArgument(e){for(let t of e){let e=findWorkflowToolRunContext(t);if(e!==void 0)return{ctx:t,run:e}}}async function executeAuthorizedStep(e,t,n,r){let{ctx:i,run:a}=r,o=[],s=new Map;for(;;){let r=createHook();try{let c;try{c=await invokeAuthorizedStep({args:n,authorizationResults:o,callbackToken:r.token,ctx:i,execute:e,receiver:t,run:a})}catch(e){throw i.abortSignal.aborted||await reportPendingAsFailed(a,i.abortSignal,s),e}if(await reconcileCompletedAuthorizations(a,i.abortSignal,s,o,c.authorized),c.kind===`result`)return await reportPendingAsFailed(a,i.abortSignal,s),c.output;await collectAuthorizationCallbacks({authorizationResults:o,callback:r,challenges:c.signal.challenges,ctx:i,pending:s,run:a})}finally{await disposeHook(r)}}}async function invokeAuthorizedStep(e){let{args:t,authorizationResults:n,callbackToken:r,ctx:i,execute:a,receiver:o,run:s}=e,c={callId:i.callId,toolName:i.toolName,session:i.session,abortSignal:i.abortSignal,baseUrl:getWorkflowMetadata().url,token:r,authorizationResults:n,sandbox:{bundle:s.agentContext.bundle,sessionId:s.agentContext.sandbox.sessionId,state:s.agentContext.sandbox.state}},l={args:t.map(e=>e===i?null:e),context:c,contextIndexes:t.flatMap((e,t)=>e===i?[t]:[])};return await a.call(o,l)}async function reconcileCompletedAuthorizations(e,t,n,r,i){let a=new Set(i);for(let r of a){let i=n.get(r);i!==void 0&&await reportAuthorization(e,t,i,`authorized`),n.delete(r)}for(let e=r.length-1;e>=0;e--){let t=r[e];t!==void 0&&a.has(t.attemptId)&&r.splice(e,1)}}async function collectAuthorizationCallbacks(e){let{authorizationResults:t,callback:n,challenges:r,ctx:i,pending:a,run:o}=e;for(let e of r){let r=requireAttemptId(e);a.set(r.attemptId,r),await reportAuthorization(o,i.abortSignal,r);try{let e=await waitForCallback(n,r,i.abortSignal);t.push({name:r.name,instanceId:r.instanceId,attemptId:r.attemptId,hookUrl:r.hookUrl,principal:r.principal,resume:r.resume,callback:e})}catch(e){throw i.abortSignal.aborted||await reportAuthorization(o,i.abortSignal,r,`failed`),e}}}function requireAttemptId(e){if(e.attemptId===void 0)throw Error(`Workflow authorization challenge "${e.name}" has no attempt id.`);return e}async function reportPendingAsFailed(e,t,n){for(let r of n.values())await reportAuthorization(e,t,r,`failed`)}async function reportAuthorization(e,t,n,r){let i=runSignIn(e.from,n,r),a=createHook();try{await a.getConflict(),await withAbort(e.owner.send({kind:`request`,from:e.from,replyTo:a.token,request:{kind:`authorization-request`,event:{kind:`subagent-authorization-event`,callId:e.from.callId,childSessionId:e.from.runId,subagentName:e.from.toolName,event:i}}}),t),await withAbort(a,t)}finally{await disposeHook(a)}}async function waitForCallback(e,t,n){let r=e[Symbol.asyncIterator]();for(;;){let e=await withAbort(r.next(),n);if(e.done)throw Error(`Authorization callback closed before sign-in completed.`);let i=readCallback(e.value,t);if(i!==void 0)return i}}async function withAbort(e,t){let abort,n=new Promise((e,n)=>{abort=()=>n(t.reason??Error(`Workflow authorization cancelled.`)),t.addEventListener(`abort`,abort,{once:!0}),t.aborted&&abort()});try{return await Promise.race([e,n])}finally{t.removeEventListener(`abort`,abort)}}function readCallback(e,t){if(typeof e==`object`&&e&&`payloads`in e&&Array.isArray(e.payloads))for(let n of e.payloads){let e=n?.authorizationCallback;if(e?.attemptId!==t.attemptId||e?.connectionName!==t.name)continue;let r=e.callback;if(!(typeof r?.method!=`string`||typeof r.params!=`object`||r.params===null||Array.isArray(r.params))&&Object.values(r.params).every(e=>typeof e==`string`)&&(r.body===void 0||typeof r.body==`string`))return r}}export{workflowToolStep};
1
+ import{createHook,getWorkflowMetadata}from"#compiled/@workflow/core/index.js";import{disposeHook}from"#execution/hook-ownership.js";import{findWorkflowToolRunContext}from"#execution/tools/workflow/ask.js";import{signInInteractionId,signInOpened}from"#harness/interaction-facts.js";function workflowToolStep(e,t){return new Proxy(e,{apply(e,n,r){let i=findWorkflowContextArgument(r);return i===void 0?Reflect.apply(e,n,r):executeAuthorizedStep(t,n,r,i)}})}function findWorkflowContextArgument(e){for(let t of e){let e=findWorkflowToolRunContext(t);if(e!==void 0)return{ctx:t,run:e}}}async function executeAuthorizedStep(e,t,n,r){let{ctx:i,run:a}=r,o=[],s=new Map;for(;;){let r=createHook();try{let c;try{c=await invokeAuthorizedStep({args:n,authorizationResults:o,callbackToken:r.token,ctx:i,execute:e,receiver:t,run:a})}catch(e){throw i.abortSignal.aborted||await reportPendingAsFailed(a,i.abortSignal,s),e}if(await reconcileCompletedAuthorizations(a,i.abortSignal,s,o,c.authorized),c.kind===`result`)return await reportPendingAsFailed(a,i.abortSignal,s),c.output;await collectAuthorizationCallbacks({authorizationResults:o,callback:r,challenges:c.signal.challenges,ctx:i,pending:s,run:a})}finally{await disposeHook(r)}}}async function invokeAuthorizedStep(e){let{args:t,authorizationResults:n,callbackToken:r,ctx:i,execute:a,receiver:o,run:s}=e,c={callId:i.callId,toolName:i.toolName,session:i.session,abortSignal:i.abortSignal,baseUrl:getWorkflowMetadata().url,token:r,authorizationResults:n,sandbox:{bundle:s.agentContext.bundle,sessionId:s.agentContext.sandbox.sessionId,state:s.agentContext.sandbox.state}},l={args:t.map(e=>e===i?null:e),context:c,contextIndexes:t.flatMap((e,t)=>e===i?[t]:[])};return await a.call(o,l)}async function reconcileCompletedAuthorizations(e,t,n,r,i){let a=new Set(i);for(let r of a){let i=n.get(r);i!==void 0&&await reportAuthorization(e,t,i,`accepted`),n.delete(r)}for(let e=r.length-1;e>=0;e--){let t=r[e];t!==void 0&&a.has(t.attemptId)&&r.splice(e,1)}}async function collectAuthorizationCallbacks(e){let{authorizationResults:t,callback:n,challenges:r,ctx:i,pending:a,run:o}=e;for(let e of r){let r=requireAttemptId(e);a.set(r.attemptId,r),await reportAuthorization(o,i.abortSignal,r);try{let e=await waitForCallback(n,r,i.abortSignal);t.push({name:r.name,instanceId:r.instanceId,attemptId:r.attemptId,hookUrl:r.hookUrl,principal:r.principal,resume:r.resume,callback:e})}catch(e){throw i.abortSignal.aborted||await reportAuthorization(o,i.abortSignal,r,`failed`),e}}}function requireAttemptId(e){if(e.attemptId===void 0)throw Error(`Workflow authorization challenge "${e.name}" has no attempt id.`);return e}async function reportPendingAsFailed(e,t,n){for(let r of n.values())await reportAuthorization(e,t,r,`failed`)}async function reportAuthorization(e,t,n,r){let i=runSignIn(e.from,n,r),a=createHook();try{await a.getConflict(),await withAbort(e.owner.send({kind:`request`,from:e.from,replyTo:a.token,request:{kind:`relay`,event:{kind:`subagent-interaction`,callId:e.from.callId,childSessionId:e.from.runId,subagentName:e.from.toolName,events:[i]}}}),t),await withAbort(a,t)}finally{await disposeHook(a)}}async function waitForCallback(e,t,n){let r=e[Symbol.asyncIterator]();for(;;){let e=await withAbort(r.next(),n);if(e.done)throw Error(`Authorization callback closed before sign-in completed.`);let i=readCallback(e.value,t);if(i!==void 0)return i}}async function withAbort(e,t){let abort,n=new Promise((e,n)=>{abort=()=>n(t.reason??Error(`Workflow authorization cancelled.`)),t.addEventListener(`abort`,abort,{once:!0}),t.aborted&&abort()});try{return await Promise.race([e,n])}finally{t.removeEventListener(`abort`,abort)}}function readCallback(e,t){if(typeof e==`object`&&e&&`payloads`in e&&Array.isArray(e.payloads))for(let n of e.payloads){let e=n?.authorizationCallback;if(e?.attemptId!==t.attemptId||e?.connectionName!==t.name)continue;let r=e.callback;if(!(typeof r?.method!=`string`||typeof r.params!=`object`||r.params===null||Array.isArray(r.params))&&Object.values(r.params).every(e=>typeof e==`string`)&&(r.body===void 0||typeof r.body==`string`))return r}}function runSignIn(e,t,n){return n===void 0?{data:signInOpened(t,{prompt:`Sign in to ${t.name} to continue.`,subject:e.taskId===void 0?{turnId:e.turnId}:{taskId:e.taskId}}).data,type:`interaction.opened`}:{data:{interactionId:signInInteractionId(t),outcome:n},type:`interaction.settled`}}export{workflowToolStep};
@@ -1,6 +1,6 @@
1
1
  import type { PublishedSessionEvents, SessionStepState } from "#execution/publish-session-events.js";
2
2
  import { type SessionStateTransition } from "#execution/session/state-delta.js";
3
- import type { ProxyInputRequest } from "#harness/hitl/relays.js";
3
+ import type { Relay } from "#harness/hitl/relays.js";
4
4
  /**
5
5
  * Decides a run's request to withdraw a question. A question the session
6
6
  * still offers is withdrawn, so channels stop offering it. One it no longer
@@ -25,5 +25,5 @@ export declare function withdrawFinishedRunQuestionsStep(input: SessionStepState
25
25
  * Withdraws the relayed requests `select` picks through the machine's `finishRun`, for a step
26
26
  * that owns the session. Their routes drop with the save, once the projection shows them closed.
27
27
  */
28
- export declare function relayWithdrawnRequests(input: SessionStepState, select: (requestId: string, route: ProxyInputRequest) => boolean): Promise<PublishedSessionEvents>;
28
+ export declare function relayWithdrawnRequests(input: SessionStepState, select: (requestId: string, route: Relay) => boolean): Promise<PublishedSessionEvents>;
29
29
  export {};
@@ -1 +1 @@
1
- import{resumeHook}from"#internal/workflow/runtime.js";import{readDurableSession}from"#execution/durable-session-store.js";import{readHitlState}from"#harness/hitl/index.js";import{commitSessionStep}from"#execution/publish-session-events.js";import{withSessionStateDelta}from"#execution/session/state-delta.js";import{finishRun}from"#harness/session-machine/transitions.js";import{ignoreGoneTarget}from"#execution/tasks/workflow-target.js";async function withdrawWorkflowToolRunQuestionStep(e){"use step";return await withSessionStateDelta(e,withdrawWorkflowToolRunQuestion)}async function withdrawWorkflowToolRunQuestion(e){let t={kind:`withdrawn`,requestId:e.requestId};return await ignoreGoneTarget(resumeHook(e.control,t)),await relayWithdrawnRequests(e,(t,n)=>t===e.requestId&&n.workflowAsk!==void 0&&n.runId===e.runId)}async function withdrawFinishedRunQuestionsStep(e){"use step";return await withSessionStateDelta(e,e=>relayWithdrawnRequests(e,(t,n)=>n.runId===e.runId))}async function relayWithdrawnRequests(e,t){let{state:n}=readDurableSession(e.sessionState),r=[...readHitlState(n).relays].filter(([e,n])=>t(e,n)).map(([e])=>e);return await commitSessionStep(e,e=>[finishRun(e,{requestIds:r})],{origin:`relayed`})}export{relayWithdrawnRequests,withdrawFinishedRunQuestionsStep,withdrawWorkflowToolRunQuestionStep};
1
+ import{resumeHook}from"#internal/workflow/runtime.js";import{readDurableSession}from"#execution/durable-session-store.js";import{readHitlState}from"#harness/hitl/index.js";import{commitSessionStep}from"#execution/publish-session-events.js";import"#execution/session/state-delta.js";import{withSessionStateDelta}from"#execution/session/step-state-delta.js";import{finishRun}from"#harness/session-machine/transitions.js";import{ignoreGoneTarget}from"#execution/tasks/workflow-target.js";async function withdrawWorkflowToolRunQuestionStep(e){"use step";return await withSessionStateDelta(e,withdrawWorkflowToolRunQuestion)}async function withdrawWorkflowToolRunQuestion(e){let t={kind:`withdrawn`,requestId:e.requestId};return await ignoreGoneTarget(resumeHook(e.control,t)),await relayWithdrawnRequests(e,(t,n)=>t===e.requestId&&n.workflowAsk!==void 0&&n.runId===e.runId)}async function withdrawFinishedRunQuestionsStep(e){"use step";return await withSessionStateDelta(e,e=>relayWithdrawnRequests(e,(t,n)=>n.runId===e.runId))}async function relayWithdrawnRequests(e,t){let{state:n}=readDurableSession(e.sessionState),r=[...readHitlState(n).relays].filter(([e,n])=>t(e,n)).map(([e])=>e);return await commitSessionStep(e,e=>[finishRun(e,{requestIds:r})],{origin:`relayed`})}export{relayWithdrawnRequests,withdrawFinishedRunQuestionsStep,withdrawWorkflowToolRunQuestionStep};
@@ -0,0 +1,28 @@
1
+ import type { SessionEvent, SessionStreamEvent } from "#protocol/session-event.js";
2
+ import { type StoredLine } from "#protocol/session-events/envelope.js";
3
+ /** Reads consecutive stored lines of one session an eve before v27 started, from its first. */
4
+ export interface V26HistoryReader {
5
+ /**
6
+ * The v27 line the record at `position` reads as, or `undefined` when it records nothing a v27
7
+ * reader folds, such as a streamed delta. A v27 line reads as itself: a v27 deployment that
8
+ * ends a stranded v26 session appends its end as one.
9
+ */
10
+ read(record: unknown, position: number): StoredLine<SessionEvent> | undefined;
11
+ }
12
+ /** A reader for one session's stored v26 lines. Read them in order, from position 0. */
13
+ export declare function createV26HistoryReader(): V26HistoryReader;
14
+ /**
15
+ * The v27 lines a v26 session's stored records read as, from position `from` on: one output per
16
+ * record, a `position` marker for a record that reads as none, so cursors keep counting stored
17
+ * lines. `records` must start at position 0: each record reads in light of those before it.
18
+ */
19
+ export declare function v26LineStream(records: ReadableStream<unknown>, from: number): ReadableStream<unknown>;
20
+ /**
21
+ * The events one session's saved v26 events read as, for an application that kept them: the
22
+ * events a v27 reader of the session's stream would read from them, at the same positions. They
23
+ * must be the session's events from its first, one per stored line, in order, as a v26 client
24
+ * read them from position 0; the next stored line is then at `records.length`. If trailing
25
+ * records emit nothing, the last event's `meta.next` retains that source coverage without
26
+ * changing any event's original position. Save the returned reader metadata unchanged.
27
+ */
28
+ export declare function convertLegacyEvents(records: readonly unknown[]): SessionStreamEvent[];
@@ -0,0 +1,4 @@
1
+ export declare const KITCHEN_SINK: readonly unknown[];
2
+ export declare const STEER_AND_CANCEL: readonly unknown[];
3
+ export declare const PENDING_APPROVAL: readonly unknown[];
4
+ export declare const ATTACHMENT: readonly unknown[];
@@ -0,0 +1,2 @@
1
+ const KITCHEN_SINK=[{data:{runtime:{agentId:`v26-spike`,agentName:`v26-spike`,eveVersion:`0.82.0`}},meta:{at:`2026-10-22T21:36:06.909Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`session.started`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.912Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`turn.started`},{data:{message:`hello there`,parts:[{text:`hello there`,type:`text`}],sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.912Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.914Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.939Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: hello there`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.942Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:0,stepIndex:0,turnId:`turn_0`,usage:{inputTokens:316,outputTokens:5,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:06.944Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`step.completed`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.959Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:316,outputTokens:5},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:06.960Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`session.waiting`},{data:{sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.146Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`turn.started`},{data:{message:`what is the weather`,parts:[{text:`what is the weather`,type:`text`}],sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.146Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.146Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.160Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,message:`Let me check the weather.`,sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.164Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`message.completed`},{data:{actions:[{callId:`mock-tool-call-2-0-1`,input:{city:`Paris`},kind:`tool-call`,toolName:`get_weather`}],sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.165Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`actions.requested`},{data:{result:{callId:`mock-tool-call-2-0-1`,kind:`tool-result`,output:{city:`Paris`,forecast:`sunny`,temperatureC:21},toolName:`get_weather`},sequence:1,status:`completed`,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.165Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`action.result`},{data:{finishReason:`tool-calls`,sequence:1,stepIndex:0,turnId:`turn_1`,usage:{inputTokens:330,outputTokens:11,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:07.167Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`step.completed`},{data:{modelId:`eve-mock/spike-mock`,sequence:1,stepIndex:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.185Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:1,stepIndex:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.193Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`get_weather said: {"city":"Paris","forecast":"sunny","temperatureC":21}`,sequence:1,stepIndex:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.193Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:1,stepIndex:1,turnId:`turn_1`,usage:{inputTokens:354,outputTokens:18,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:07.194Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`step.completed`},{data:{sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.199Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:1e3,outputTokens:34},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:07.199Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`session.waiting`},{data:{sequence:2,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.461Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`turn.started`},{data:{message:`please run the gate`,parts:[{text:`please run the gate`,type:`text`}],sequence:2,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.462Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.462Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-3-1-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`}],sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.469Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.469Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:2,stepIndex:0,turnId:`turn_2`,usage:{inputTokens:381,outputTokens:4,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:07.470Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`step.completed`},{data:{requests:[{action:{callId:`mock-tool-call-3-1-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`},allowFreeform:!1,display:`confirmation`,kind:`tool-approval`,options:[{id:`approve`,label:`Approve`},{id:`cancel`,label:`Cancel`}],prompt:`Approve Gate?`,requestId:`aitxt-3AWSk88AOGAwJJf09k9k53UD`}],sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.473Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`input.requested`},{data:{on:`input`,sequence:2,turnId:`turn_2`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:1381,outputTokens:38}},meta:{at:`2026-10-22T21:36:07.474Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`turn.waiting`},{data:{outcome:`approved`,requestId:`aitxt-3AWSk88AOGAwJJf09k9k53UD`,responderPrincipalId:`alice`,sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.786Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`approval.settled`},{data:{resolutions:[{kind:`tool-approval`,outcome:`approved`,requestId:`aitxt-3AWSk88AOGAwJJf09k9k53UD`,response:{optionId:`approve`,requestId:`aitxt-3AWSk88AOGAwJJf09k9k53UD`}}],sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.786Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`input.resolved`},{data:{modelId:`eve-mock/spike-mock`,sequence:2,stepIndex:1,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.787Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`step.started`},{data:{result:{callId:`mock-tool-call-3-1-1`,kind:`tool-result`,output:{executed:!0,marker:`M1`},toolName:`gate`},sequence:2,status:`completed`,stepIndex:1,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.788Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`action.result`},{data:{reasoning:`Thinking it over.`,sequence:2,stepIndex:1,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.795Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`gate said: {"executed":true,"marker":"M1"}`,sequence:2,stepIndex:1,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.795Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:2,stepIndex:1,turnId:`turn_2`,usage:{inputTokens:432,outputTokens:11,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:07.796Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`step.completed`},{data:{sequence:2,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.799Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:1813,outputTokens:49},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:07.799Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`session.waiting`},{data:{sequence:3,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.108Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`turn.started`},{data:{message:`run the gate again`,parts:[{text:`run the gate again`,type:`text`}],sequence:3,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.108Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.108Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-5-2-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`}],sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.114Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.115Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:3,stepIndex:0,turnId:`turn_3`,usage:{inputTokens:452,outputTokens:4,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:08.115Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`step.completed`},{data:{requests:[{action:{callId:`mock-tool-call-5-2-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`},allowFreeform:!1,display:`confirmation`,kind:`tool-approval`,options:[{id:`approve`,label:`Approve`},{id:`cancel`,label:`Cancel`}],prompt:`Approve Gate?`,requestId:`aitxt-63W6rvQYVV46U5gL4HLLfk6b`}],sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.118Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`input.requested`},{data:{on:`input`,sequence:3,turnId:`turn_3`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:2265,outputTokens:53}},meta:{at:`2026-10-22T21:36:08.118Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`turn.waiting`},{data:{outcome:`cancelled`,requestId:`aitxt-63W6rvQYVV46U5gL4HLLfk6b`,responderPrincipalId:`alice`,sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.430Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`approval.settled`},{data:{resolutions:[{kind:`tool-approval`,outcome:`denied`,requestId:`aitxt-63W6rvQYVV46U5gL4HLLfk6b`,response:{optionId:`cancel`,requestId:`aitxt-63W6rvQYVV46U5gL4HLLfk6b`}}],sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.430Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`input.resolved`},{data:{error:{code:`TOOL_EXECUTION_DENIED`,message:`Tool execution was denied.`},result:{callId:`mock-tool-call-5-2-1`,isError:!0,kind:`tool-result`,output:{approval:{requestId:`aitxt-63W6rvQYVV46U5gL4HLLfk6b`,status:`denied`},code:`TOOL_EXECUTION_DENIED`,message:`Tool execution was denied.`,tool:{result:`not_run`}},toolName:`gate`},sequence:3,status:`rejected`,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.431Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`action.result`},{data:{modelId:`eve-mock/spike-mock`,sequence:3,stepIndex:1,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.432Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:3,stepIndex:1,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.438Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`gate said: "Tool execution was denied."`,sequence:3,stepIndex:1,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.439Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:3,stepIndex:1,turnId:`turn_3`,usage:{inputTokens:502,outputTokens:10,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:08.439Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`step.completed`},{data:{sequence:3,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.442Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:2767,outputTokens:63},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:08.442Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`session.waiting`},{data:{sequence:4,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:08.760Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`turn.started`},{data:{message:`ask me a question`,parts:[{text:`ask me a question`,type:`text`}],sequence:4,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:08.761Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:4,stepIndex:0,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:08.761Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-7-3-1`,input:{question:`Which color?`,options:[{label:`Red`,description:`A warm color.`},{label:`Blue`,description:`A cool color.`}]},kind:`tool-call`,toolName:`ask_question`}],sequence:4,stepIndex:0,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:08.768Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:4,stepIndex:0,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:08.768Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:4,stepIndex:0,turnId:`turn_4`,usage:{inputTokens:521,outputTokens:33,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:08.769Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`step.completed`},{data:{on:`tasks`,sequence:4,turnId:`turn_4`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:3288,outputTokens:96}},meta:{at:`2026-10-22T21:36:08.771Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`turn.waiting`},{data:{requests:[{action:{callId:`mock-tool-call-7-3-1`,input:{question:`Which color?`,options:[{label:`Red`,description:`A warm color.`},{label:`Blue`,description:`A cool color.`}]},kind:`tool-call`,toolName:`ask_question`},kind:`question`,prompt:`Which color?`,requestId:`wrun_01M5JRNY2EWQ594SJCQNDFPF25-ask-1`,allowFreeform:!0,display:`select`,options:[{description:`A warm color.`,id:`Red`,label:`Red`},{description:`A cool color.`,id:`Blue`,label:`Blue`}]}],sequence:4,stepIndex:0,turnId:`turn_4`,callId:`mock-tool-call-7-3-1`},meta:{at:`2026-10-22T21:36:08.832Z`},type:`input.requested`},{data:{on:`input`,sequence:4,turnId:`turn_4`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:3288,outputTokens:96}},meta:{at:`2026-10-22T21:36:08.832Z`},type:`turn.waiting`},{data:{resolutions:[{kind:`question`,outcome:`answered`,requestId:`wrun_01M5JRNY2EWQ594SJCQNDFPF25-ask-1`,response:{optionId:`Blue`,requestId:`wrun_01M5JRNY2EWQ594SJCQNDFPF25-ask-1`}}],sequence:4,stepIndex:0,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.127Z`},type:`input.resolved`},{data:{result:{callId:`mock-tool-call-7-3-1`,kind:`tool-result`,output:{answer:`Blue`,status:`answered`},toolName:`ask_question`},sequence:4,status:`completed`,stepIndex:0,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.165Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`action.result`},{data:{modelId:`eve-mock/spike-mock`,sequence:4,stepIndex:1,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.166Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:4,stepIndex:1,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.172Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`ask_question said: {"answer":"Blue","status":"answered"}`,sequence:4,stepIndex:1,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.172Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:4,stepIndex:1,turnId:`turn_4`,usage:{inputTokens:535,outputTokens:14,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:09.173Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`step.completed`},{data:{sequence:4,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.177Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:3823,outputTokens:110},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:09.177Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`session.waiting`},{data:{sequence:5,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.493Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`turn.started`},{data:{message:`ask me a question again`,parts:[{text:`ask me a question again`,type:`text`}],sequence:5,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.493Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:5,stepIndex:0,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.493Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-8-4-1`,input:{question:`Which color?`,options:[{label:`Red`,description:`A warm color.`},{label:`Blue`,description:`A cool color.`}]},kind:`tool-call`,toolName:`ask_question`}],sequence:5,stepIndex:0,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.499Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:5,stepIndex:0,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.500Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:5,stepIndex:0,turnId:`turn_5`,usage:{inputTokens:559,outputTokens:33,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:09.500Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`step.completed`},{data:{on:`tasks`,sequence:5,turnId:`turn_5`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:4382,outputTokens:143}},meta:{at:`2026-10-22T21:36:09.502Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`turn.waiting`},{data:{requests:[{action:{callId:`mock-tool-call-8-4-1`,input:{question:`Which color?`,options:[{label:`Red`,description:`A warm color.`},{label:`Blue`,description:`A cool color.`}]},kind:`tool-call`,toolName:`ask_question`},kind:`question`,prompt:`Which color?`,requestId:`wrun_01M5JRNYS7ABGM16P294JDT4E0-ask-1`,allowFreeform:!0,display:`select`,options:[{description:`A warm color.`,id:`Red`,label:`Red`},{description:`A cool color.`,id:`Blue`,label:`Blue`}]}],sequence:5,stepIndex:0,turnId:`turn_5`,callId:`mock-tool-call-8-4-1`},meta:{at:`2026-10-22T21:36:09.559Z`},type:`input.requested`},{data:{on:`input`,sequence:5,turnId:`turn_5`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:4382,outputTokens:143}},meta:{at:`2026-10-22T21:36:09.559Z`},type:`turn.waiting`},{data:{resolutions:[{kind:`question`,outcome:`answered`,requestId:`wrun_01M5JRNYS7ABGM16P294JDT4E0-ask-1`,response:{requestId:`wrun_01M5JRNYS7ABGM16P294JDT4E0-ask-1`,text:`Green, actually`}}],sequence:5,stepIndex:0,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.868Z`},type:`input.resolved`},{data:{result:{callId:`mock-tool-call-8-4-1`,kind:`tool-result`,output:{answer:`Green, actually`,status:`answered`},toolName:`ask_question`},sequence:5,status:`completed`,stepIndex:0,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.907Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`action.result`},{data:{modelId:`eve-mock/spike-mock`,sequence:5,stepIndex:1,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.908Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:5,stepIndex:1,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.914Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`ask_question said: {"answer":"Green, actually","status":"answered"}`,sequence:5,stepIndex:1,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.915Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:5,stepIndex:1,turnId:`turn_5`,usage:{inputTokens:576,outputTokens:17,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:09.915Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`step.completed`},{data:{sequence:5,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.922Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:4958,outputTokens:160},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:09.922Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`session.waiting`},{data:{sequence:6,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.243Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`turn.started`},{data:{message:`delegate to the helper`,parts:[{text:`delegate to the helper`,type:`text`}],sequence:6,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.243Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:6,stepIndex:0,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.243Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-9-5-1`,description:`A helper subagent. Call it to delegate. `,input:{message:`Say the marker`},name:`helper`,nodeId:`subagents/helper`,kind:`subagent-call`,subagentName:`helper`}],presentation:{"mock-tool-call-9-5-1":{label:`Helper: Say the marker`}},sequence:6,stepIndex:0,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.249Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:6,stepIndex:0,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.250Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:6,stepIndex:0,turnId:`turn_6`,usage:{inputTokens:603,outputTokens:7,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:10.250Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.completed`},{data:{callId:`mock-tool-call-9-5-1`,kind:`agent`,name:`helper`,taskId:`helper-1sd8t5`,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.283Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`task.started`},{data:{result:{callId:`mock-tool-call-9-5-1`,kind:`tool-result`,output:`Task helper-1sd8t5 is running.`,toolName:`helper`},sequence:6,status:`completed`,stepIndex:0,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.297Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`action.result`},{data:{modelId:`eve-mock/spike-mock`,sequence:6,stepIndex:1,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.298Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:6,stepIndex:1,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.304Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Started the helper.`,sequence:6,stepIndex:1,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.304Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:6,stepIndex:1,turnId:`turn_6`,usage:{inputTokens:666,outputTokens:5,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:10.304Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.completed`},{data:{on:`tasks`,sequence:6,turnId:`turn_6`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:6227,outputTokens:172}},meta:{at:`2026-10-22T21:36:10.308Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`turn.waiting`},{data:{callId:`mock-tool-call-9-5-1`,turnId:`turn_6`,name:`helper`,sessionId:`wrun_01M5JRNZJ9VF5XQGNKC91ETXB5`,streamPath:`/eve/v1/session/wrun_01M5JRNZJ9VF5XQGNKC91ETXB5/stream`,taskId:`helper-1sd8t5`},meta:{at:`2026-10-22T21:36:10.417Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`agent.started`},{data:{callId:`mock-tool-call-9-5-1`,kind:`agent`,name:`helper`,status:`completed`,taskId:`helper-1sd8t5`,turnId:`turn_6`,output:`HELPER-MARKER-42`},meta:{at:`2026-10-22T21:36:10.463Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`task.settled`},{data:{modelId:`eve-mock/spike-mock`,sequence:6,stepIndex:2,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.471Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:6,stepIndex:2,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.477Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`The helper said HELPER-MARKER-42.`,sequence:6,stepIndex:2,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.477Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:6,stepIndex:2,turnId:`turn_6`,usage:{inputTokens:720,outputTokens:9,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:10.478Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.completed`},{data:{sequence:6,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.483Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:7053,outputTokens:185},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:10.483Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`session.waiting`},{data:{sequence:7,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.728Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`turn.started`},{data:{message:`explode please`,parts:[{text:`explode please`,type:`text`}],sequence:7,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.728Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:7,stepIndex:0,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.729Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-13-6-1`,input:{},kind:`tool-call`,toolName:`explode`}],sequence:7,stepIndex:0,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.740Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`actions.requested`},{data:{error:{code:`ACTION_RESULT_FAILED`,message:`Kaboom`,name:`Error`},result:{callId:`mock-tool-call-13-6-1`,kind:`tool-result`,output:`Kaboom`,toolName:`explode`,errorName:`Error`,isError:!0},sequence:7,status:`failed`,stepIndex:0,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.741Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`action.result`},{data:{reasoning:`Thinking it over.`,sequence:7,stepIndex:0,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.742Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:7,stepIndex:0,turnId:`turn_7`,usage:{inputTokens:736,outputTokens:1,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:10.742Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`step.completed`},{data:{modelId:`eve-mock/spike-mock`,sequence:7,stepIndex:1,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.753Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:7,stepIndex:1,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.759Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`explode said: "Error: Kaboom"`,sequence:7,stepIndex:1,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.760Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:7,stepIndex:1,turnId:`turn_7`,usage:{inputTokens:744,outputTokens:8,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:10.760Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`step.completed`},{data:{sequence:7,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.766Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:8533,outputTokens:194},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:10.766Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`session.waiting`},{data:{sequence:8,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.111Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`turn.started`},{data:{message:`do both things`,parts:[{text:`do both things`,type:`text`}],sequence:8,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.112Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.112Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-14-7-1`,input:{city:`Oslo`},kind:`tool-call`,toolName:`get_weather`}],sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.119Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`actions.requested`},{data:{actions:[{callId:`mock-tool-call-14-7-2`,input:{marker:`M2`},kind:`tool-call`,toolName:`gate`}],sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.120Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`actions.requested`},{data:{result:{callId:`mock-tool-call-14-7-1`,kind:`tool-result`,output:{city:`Oslo`,forecast:`sunny`,temperatureC:21},toolName:`get_weather`},sequence:8,status:`completed`,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.120Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`action.result`},{data:{reasoning:`Thinking it over.`,sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.121Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:8,stepIndex:0,turnId:`turn_8`,usage:{inputTokens:760,outputTokens:8,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:11.121Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`step.completed`},{data:{requests:[{action:{callId:`mock-tool-call-14-7-2`,input:{marker:`M2`},kind:`tool-call`,toolName:`gate`},allowFreeform:!1,display:`confirmation`,kind:`tool-approval`,options:[{id:`approve`,label:`Approve`},{id:`cancel`,label:`Cancel`}],prompt:`Approve Gate?`,requestId:`aitxt-v1a9uJxRmDRH1gS6CNmgQr3j`}],sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.128Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`input.requested`},{data:{on:`input`,sequence:8,turnId:`turn_8`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:9293,outputTokens:202}},meta:{at:`2026-10-22T21:36:11.128Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`turn.waiting`},{data:{outcome:`approved`,requestId:`aitxt-v1a9uJxRmDRH1gS6CNmgQr3j`,responderPrincipalId:`alice`,sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.481Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`approval.settled`},{data:{resolutions:[{kind:`tool-approval`,outcome:`approved`,requestId:`aitxt-v1a9uJxRmDRH1gS6CNmgQr3j`,response:{optionId:`approve`,requestId:`aitxt-v1a9uJxRmDRH1gS6CNmgQr3j`}}],sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.482Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`input.resolved`},{data:{modelId:`eve-mock/spike-mock`,sequence:8,stepIndex:1,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.482Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`step.started`},{data:{result:{callId:`mock-tool-call-14-7-2`,kind:`tool-result`,output:{executed:!0,marker:`M2`},toolName:`gate`},sequence:8,status:`completed`,stepIndex:1,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.482Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`action.result`},{data:{reasoning:`Thinking it over.`,sequence:8,stepIndex:1,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.489Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Both done.`,sequence:8,stepIndex:1,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.489Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:8,stepIndex:1,turnId:`turn_8`,usage:{inputTokens:824,outputTokens:3,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:11.489Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`step.completed`},{data:{sequence:8,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.492Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:10117,outputTokens:205},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:11.492Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`session.waiting`},{data:{sequence:9,sessionId:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:11.874Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`context.cleared`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:10117,outputTokens:205},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:11.875Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`session.waiting`},{data:{sequence:9,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.247Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`turn.started`},{data:{message:`hello after clear`,parts:[{text:`hello after clear`,type:`text`}],sequence:9,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.247Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:9,stepIndex:0,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.247Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:9,stepIndex:0,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.251Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: hello after clear`,sequence:9,stepIndex:0,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.252Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:9,stepIndex:0,turnId:`turn_9`,usage:{inputTokens:338,outputTokens:6,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:12.252Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`step.completed`},{data:{sequence:9,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.255Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:10455,outputTokens:211},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:12.255Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`session.waiting`},{data:{sequence:10,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.329Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`turn.started`},{data:{messages:[{role:`user`,text:`Earlier question from another system`,id:`h1`},{role:`assistant`,text:`Earlier answer from another system`,id:`h2`}],sequence:10,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.329Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`history.imported`},{data:{message:`IMPORT this and say hi`,parts:[{text:`IMPORT this and say hi`,type:`text`}],sequence:10,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.329Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:10,stepIndex:0,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.329Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:10,stepIndex:0,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.333Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: IMPORT this and say hi`,sequence:10,stepIndex:0,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.333Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:10,stepIndex:0,turnId:`turn_10`,usage:{inputTokens:372,outputTokens:7,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:12.333Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`step.completed`},{data:{sequence:10,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.336Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:10827,outputTokens:218},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:12.336Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`session.waiting`},{data:{modelId:`eve-mock/spike-mock`,sequence:11,sessionId:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,stepIndex:0,turnId:`turn_11`,usageInputTokens:406},meta:{at:`2026-10-22T21:36:12.400Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`compaction.requested`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:11278,outputTokens:251},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:12.405Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`session.waiting`},{data:{sequence:11,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.422Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`turn.started`},{data:{message:`hello after compact`,parts:[{text:`hello after compact`,type:`text`}],sequence:11,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.422Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:11,stepIndex:0,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.422Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:11,stepIndex:0,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.427Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: hello after compact`,sequence:11,stepIndex:0,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.427Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:11,stepIndex:0,turnId:`turn_11`,usage:{inputTokens:388,outputTokens:7,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:14.428Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`step.completed`},{data:{sequence:11,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.431Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:11666,outputTokens:258},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:14.431Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`session.waiting`}],STEER_AND_CANCEL=[{data:{runtime:{agentId:`v26-spike`,agentName:`v26-spike`,eveVersion:`0.82.0`}},meta:{at:`2026-10-22T21:36:14.563Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`session.started`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:14.563Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`turn.started`},{data:{message:`slow please`,parts:[{text:`slow please`,type:`text`}],sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:14.564Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:14.564Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-1-0-1`,input:{ms:6e3},kind:`tool-call`,toolName:`slow`}],sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:14.568Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`actions.requested`},{data:{result:{callId:`mock-tool-call-1-0-1`,kind:`tool-result`,output:{slept:6e3},toolName:`slow`},sequence:0,status:`completed`,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.568Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`action.result`},{data:{reasoning:`Thinking it over.`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.569Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:0,stepIndex:0,turnId:`turn_0`,usage:{inputTokens:316,outputTokens:3,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:20.569Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`step.completed`},{data:{message:`actually, also this steering note`,parts:[{text:`actually, also this steering note`,type:`text`}],sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.583Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:0,stepIndex:1,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.583Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:0,stepIndex:1,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.586Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: actually, also this steering note`,sequence:0,stepIndex:1,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.587Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:0,stepIndex:1,turnId:`turn_0`,usage:{inputTokens:333,outputTokens:10,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:20.587Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`step.completed`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.589Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRP3PB99CA7JDRX1AH8GJP`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:649,outputTokens:13},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:20.589Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`session.waiting`},{data:{sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:20.741Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`turn.started`},{data:{message:`slow please again`,parts:[{text:`slow please again`,type:`text`}],sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:20.741Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:20.741Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-3-1-1`,input:{ms:6e3},kind:`tool-call`,toolName:`slow`}],sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:20.746Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`actions.requested`},{data:{sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:21.050Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`turn.cancelled`},{data:{continuationToken:`wrun_01M5JRP3PB99CA7JDRX1AH8GJP`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:649,outputTokens:13},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:21.051Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`session.waiting`}],PENDING_APPROVAL=[{data:{runtime:{agentId:`v26-spike`,agentName:`v26-spike`,eveVersion:`0.82.0`}},meta:{at:`2026-10-22T21:36:21.356Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`session.started`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.356Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`turn.started`},{data:{message:`please run the gate`,parts:[{text:`please run the gate`,type:`text`}],sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.356Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.356Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-1-0-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`}],sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.359Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.360Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:0,stepIndex:0,turnId:`turn_0`,usage:{inputTokens:318,outputTokens:4,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:21.360Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`step.completed`},{data:{requests:[{action:{callId:`mock-tool-call-1-0-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`},allowFreeform:!1,display:`confirmation`,kind:`tool-approval`,options:[{id:`approve`,label:`Approve`},{id:`cancel`,label:`Cancel`}],prompt:`Approve Gate?`,requestId:`aitxt-DHJ6EZuW9iJ3mxtxH3OaSi8l`}],sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.368Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`input.requested`},{data:{on:`input`,sequence:0,turnId:`turn_0`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:318,outputTokens:4}},meta:{at:`2026-10-22T21:36:21.368Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`turn.waiting`}],ATTACHMENT=[{data:{runtime:{agentId:`v26-spike`,agentName:`v26-spike`,eveVersion:`0.82.0`}},meta:{at:`2026-10-22T21:36:21.957Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`session.started`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.958Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`turn.started`},{data:{message:`here is a file
2
+ [file: note.txt (text/plain)]`,parts:[{text:`here is a file`,type:`text`},{mediaType:`text/plain`,type:`file`,filename:`note.txt`,size:5}],sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.958Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.959Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.963Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: here is a fileAttached file /workspace/.eve/attachments/2cf24dba5fb0a30e/note.txt (text/plain)`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.963Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:0,stepIndex:0,turnId:`turn_0`,usage:{inputTokens:337,outputTokens:25,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:21.964Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`step.completed`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.966Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRPAK84YV23T2V7SHG8EJ5`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:337,outputTokens:25},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:21.967Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`session.waiting`}];export{ATTACHMENT,KITCHEN_SINK,PENDING_APPROVAL,STEER_AND_CANCEL};
@@ -0,0 +1 @@
1
+ import{FACT_CATALOG}from"#protocol/session-events/catalog.js";import{emptySessionView,foldLine}from"#protocol/session-projection/fold.js";import{isStoredLine}from"#protocol/session-events/envelope.js";import{createEventReader}from"#protocol/session-lines.js";import{isV26Line}from"#protocol/v26-lines.js";import{cascade}from"#harness/session-machine/cascade.js";import{v26InteractionOutcome,v26InteractionRequest,v26SignInOutcome,v26SignInRequest}from"#protocol/v26-interactions.js";function createV26HistoryReader(){let e=emptySessionView(),t=new Translator(e);return{read(n,r){if(isStoredLine(n)){let i=n;return`facts`in i&&t.noteIntroduced(i.facts),foldLine(e,i,r,{retention:`operational`}),i}if(!isV26Line(n))return;let i=n,a=isRecord(i.data)?i.data:{},o=isRecord(i.meta)?i.meta:{},s=typeof o.at==`string`?o.at:new Date(0).toISOString(),c=Array.isArray(o.deliveryIds)?o.deliveryIds.filter(e=>typeof e==`string`):[],l=t.factsOf(i.type,a,{deliveryIds:c,position:r});if(l.length===0)return;let u=JSON.parse(JSON.stringify(l)),d=cascade(e,u),f={at:s,facts:d};return t.noteIntroduced(d),foldLine(e,f,r,{retention:`operational`}),f}}}function v26LineStream(e,t){let n=createV26HistoryReader(),r=0;return e.pipeThrough(new TransformStream({transform(e,i){let a=r;r+=1;let o=n.read(e,a);a<t||i.enqueue(o??{$eve:`position`,next:a+1})}}))}function convertLegacyEvents(e){if(!isSessionStarted(e[0]))throw TypeError("Expected saved events of one session from its first, `session.started`. Each event reads in light of those before it, so events saved from a later position can't be converted; read the session's stream from position 0 again instead.");let t=createV26HistoryReader(),n=createEventReader(),r=[];e.forEach((e,i)=>{if(i>0&&isSessionStarted(e))throw TypeError(`Saved event ${String(i)} starts another session. Convert each session's events separately: split them where each \`session.started\` begins.`);if(!isV26Line(e)||hasStreamPosition(e))throw TypeError(`Saved event ${String(i)} isn't an event saved before the upgrade to this eve version. Pass only those, as they were saved, one per stored line.`);let a=t.read(e,i);a!==void 0&&r.push(...n.read(a,i))});let i=r.at(-1);return i!==void 0&&e.length>i.meta.position.line+1&&(r[r.length-1]={...i,meta:{...i.meta,next:e.length}}),r}function hasStreamPosition(e){let t=e.meta;return isRecord(t)&&t.position!==void 0}function isSessionStarted(e){return isV26Line(e)&&e.type===`session.started`}var Translator=class{turnId;follows=null;runs=new Map;partCounts=new Map;reply;taskCalls=new Set;approvals=new Map;interactionCalls=new Map;compaction;pendingHistory;startingDelivery;introduced=new Set;view;constructor(e){this.view=e}noteIntroduced(e){for(let t of e){let e=FACT_CATALOG[t.type];if(e?.role!==`introduces`)continue;let n=t.data[e.idField];typeof n==`string`&&this.introduced.add(`${e.family}:${n}`)}}isIntroduced(e,t){return this.introduced.has(`${e}:${t}`)}factsOf(e,t,n){let r=`v26_${String(n.position)}`;switch(e){case`session.started`:return[{data:sessionStarted(t),type:`session.started`}];case`turn.started`:return this.startTurn(str(t.turnId),n);case`history.imported`:return this.pendingHistory=Array.isArray(t.messages)?t.messages.flatMap(e=>isRecord(e)&&(e.role===`user`||e.role===`assistant`)&&typeof e.text==`string`?[{id:str(e.id),role:e.role,text:e.text}]:[]):void 0,[];case`message.received`:return this.received(t,n,r);case`step.started`:return this.stepStarted(t,r);case`reasoning.completed`:return this.content(t,`reasoning`,`narration`,str(t.reasoning),r);case`message.completed`:return this.content(t,`text`,t.finishReason===`tool-calls`?`narration`:`reply`,str(t.message),r);case`result.completed`:return this.content(t,`result`,`reply`,json(t.result),r);case`step.completed`:return this.stepSettled(t,`completed`);case`step.failed`:return this.stepSettled(t,`failed`);case`actions.requested`:return this.actionsRequested(t);case`action.result`:return this.actionResult(t);case`task.started`:return this.taskStarted(t);case`task.settled`:return this.taskSettled(t);case`agent.started`:return this.agentStarted(t);case`input.requested`:return this.inputRequested(t);case`turn.waiting`:return this.turnWaiting(t);case`input.resolved`:return this.inputResolved(t,n,r);case`authorization.required`:return this.authorizationRequired(t,r);case`authorization.completed`:return this.authorizationCompleted(t);case`turn.completed`:return this.endTurn(str(t.turnId),{outcome:`completed`});case`turn.cancelled`:return this.endTurn(str(t.turnId),{outcome:`cancelled`});case`turn.failed`:return this.endTurn(str(t.turnId),{error:errorOf(t),outcome:`failed`});case`context.cleared`:return this.follows=null,[{data:{changeId:r,kind:`clear`},type:`context.started`},{data:{changeId:r,kind:`clear`,outcome:`completed`,selects:null},type:`context.settled`}];case`compaction.requested`:return this.compactionRequested(t,r);case`compaction.completed`:return this.compactionSettled(`completed`);case`session.waiting`:return this.compaction===void 0?[]:this.compactionSettled(`failed`);case`session.completed`:return[{data:{outcome:`completed`},type:`session.ended`}];case`session.failed`:return sessionFailed(t,r);default:return[]}}startTurn(e,t){if(e===void 0||this.isIntroduced(`turn`,e))return[];let n=[],r=this.unadmitted(t,`v26_${String(t.position)}`);return n.push(...this.admit(r)),n.push({data:{cause:{deliveryId:r},follows:this.follows,turnId:e},type:`turn.started`}),this.turnId=e,this.follows=e,this.reply=void 0,this.startingDelivery=r,n}received(e,t,n){let r=str(e.turnId);if(r===void 0)return[];let i=this.isIntroduced(`turn`,r)?[]:this.startTurn(r,t),a=this.startingDelivery!==void 0&&this.view.deliveries[this.startingDelivery]?.status===`admitted`?this.startingDelivery:this.unadmitted(t,n);this.startingDelivery=void 0,i.some(e=>e.type===`delivery.admitted`&&e.data.deliveryId===a)||i.push(...this.admit(a));let o=this.pendingHistory;return this.pendingHistory=void 0,i.push({data:{deliveryId:a,history:o!==void 0&&o.length>0?o:void 0,parts:userParts(e),turnId:r},type:`delivery.consumed`}),i}unadmitted(e,t){return e.deliveryIds.find(e=>!this.isIntroduced(`delivery`,e)||this.view.deliveries[e]?.status===`admitted`)??t}admit(e){return this.isIntroduced(`delivery`,e)?[]:[{data:{deliveryId:e},type:`delivery.admitted`}]}runOf(e){let t=str(e.turnId);if(t!==void 0&&typeof e.stepIndex==`number`)return this.runs.get(`${t}:${String(e.stepIndex)}`)}stepStarted(e,t){let n=str(e.turnId);if(n===void 0||this.view.turns[n]?.status!==`running`||typeof e.stepIndex!=`number`)return[];let r=`${n}:${String(e.stepIndex)}`;if(this.runs.has(r))return[];let i=t;return this.runs.set(r,i),[{data:{owner:{turnId:n},runId:i},type:`model.requested`},{data:{attempt:0,modelId:str(e.modelId)??`unknown`,runId:i},type:`model.started`}]}content(e,t,n,r,i){if(r===void 0)return[];let a=this.runOf(e)===void 0?this.stepStarted(e,i):[],o=this.runOf(e);if(o===void 0||!(this.isOpenRun(o)||a.length>0))return[];let s=this.partCounts.get(o)??0;this.partCounts.set(o,s+1);let c=`${o}.${String(s)}`;return n===`reply`&&(this.reply?.runId!==o&&(this.reply={parts:[],runId:o}),this.reply.parts.push(c)),[...a,{data:{kind:t,partId:c,phase:n,runId:o,value:r},type:`content.completed`}]}stepSettled(e,t){let n=this.runOf(e);if(n===void 0||!this.isOpenRun(n))return[];let r=[{data:{error:t===`failed`?errorOf(e):void 0,finishReason:typeof e.finishReason==`string`?e.finishReason:void 0,outcome:t,runId:n},type:`model.settled`}],i=isRecord(e.usage)?e.usage:void 0;return i!==void 0&&r.push({data:{kind:`model`,owner:{runId:n},usage:{cacheReadTokens:num(i.cacheReadTokens),cacheWriteTokens:num(i.cacheWriteTokens),costUsd:typeof i.costUsd==`number`?i.costUsd:void 0,inputTokens:num(i.inputTokens),outputTokens:num(i.outputTokens)}},type:`usage.recorded`}),r}isOpenRun(e){let t=this.view.runs[e]?.status;return t!==void 0&&t!==`settled`}actionsRequested(e){let t=this.runOf(e);if(t===void 0||!Array.isArray(e.actions))return[];let n=isRecord(e.presentation)?e.presentation:{};return e.actions.flatMap(e=>{if(!isRecord(e))return[];let r=str(e.callId);return r===void 0||this.isIntroduced(`call`,r)?[]:[{data:{callId:r,capability:capabilityOf(e,str((isRecord(n[r])?n[r]:{}).label)),input:e.input===void 0?void 0:e.input,owner:{runId:t}},type:`call.requested`}]})}startCall(e,t){if(this.view.calls[e]?.status!==`requested`)return[];let n=this.approvals.get(e);return[{data:{callId:e,clearedBy:n===void 0?void 0:{interactionId:n},taskId:t},type:`call.started`}]}actionResult(e){let t=isRecord(e.result)?e.result:{},n=str(t.callId),r=n===void 0?void 0:this.view.calls[n];if(n===void 0||r===void 0||r.status===`settled`||this.taskCalls.has(n))return[];let i=isRecord(e.error)?errorOf(e.error):void 0;if(e.status===`rejected`){let e=this.approvals.get(n);return[{data:{callId:n,cause:e===void 0?void 0:{interactionId:e},error:i,outcome:`rejected`,output:t.output===void 0?void 0:t.output},type:`call.settled`}]}let a=e.status===`failed`?`failed`:`completed`;return[...this.startCall(n),{data:{callId:n,error:a===`failed`&&i!==void 0?i:void 0,outcome:a,output:t.output===void 0?void 0:t.output},type:`call.settled`}]}taskStarted(e){let t=str(e.taskId),n=str(e.callId);if(t===void 0||n===void 0||this.view.calls[n]===void 0)return[];this.taskCalls.add(n);let r=[];return this.isIntroduced(`task`,t)||r.push({data:{kind:str(e.kind)??`tool`,name:str(e.name)??this.view.calls[n].capability.name,startedBy:{callId:n},taskId:t},type:`task.started`}),r.push(...this.startCall(n,t)),r}taskSettled(e){let t=str(e.callId),n=t===void 0?void 0:this.view.calls[t];if(t===void 0||n===void 0||n.status===`settled`)return[];let r=this.startCall(t,str(e.taskId)),i=e.status,a=i===`completed`?`completed`:i===`failed`?`failed`:`interrupted`,o=isRecord(e.cancel)?str(e.cancel.reason):void 0;return r.push({data:{callId:t,error:isRecord(e.error)&&typeof e.error.message==`string`?{code:`task_failed`,message:e.error.message}:void 0,outcome:a,output:e.output===void 0?void 0:e.output,reason:o===void 0?void 0:o.replaceAll(`_`,`-`)},type:`call.settled`}),r}agentStarted(e){let t=str(e.sessionId),n=str(e.callId);return t===void 0||n===void 0||this.view.calls[n]===void 0||this.isIntroduced(`child`,t)?[]:[{data:{name:str(e.name)??this.view.calls[n].capability.name,owner:{callId:n},sessionId:t,stream:str(e.streamPath)??`/eve/v1/session/${t}/stream`},type:`child.opened`}]}inputRequested(e){if(!Array.isArray(e.requests))return[];let t=str(e.callId);return e.requests.flatMap(n=>{if(!isRecord(n))return[];let r=str(n.requestId);if(r===void 0||this.isIntroduced(`interaction`,r))return[];let i=isRecord(n.action)?n.action:{},a=t??str(i.callId),o=str(e.turnId),s=a!==void 0&&this.view.calls[a]!==void 0?{callId:a}:o===void 0?void 0:{turnId:o};return s===void 0?[]:(a!==void 0&&n.kind===`tool-approval`&&this.interactionCalls.set(r,a),[{data:{interactionId:r,request:v26InteractionRequest(n),subject:s},type:`interaction.opened`}])})}turnWaiting(e){let t=str(e.turnId);if(e.on!==`input`||t===void 0)return[];let n=Object.values(this.view.interactions).filter(e=>e.status===`open`).map(e=>({interactionId:e.interactionId}));if(n.length===0||this.view.turns[t]?.status!==`running`)return[];let r=[{data:{awaiting:n,turnId:t},type:`turn.paused`}];for(let e of Object.values(this.view.deliveries))e.status===`consumed`&&e.turnId===t&&r.push({data:{deliveryId:e.deliveryId,outcome:`awaiting-input`,turnId:t},type:`delivery.settled`});return r}inputResolved(e,t,n){if(!Array.isArray(e.resolutions))return[];let r=str(e.turnId)??this.turnId,i=this.unadmitted(t,`${n}_answers`),a=[...this.admit(i)],o=!1;return e.resolutions.forEach((e,t)=>{if(!isRecord(e))return;let n=str(e.requestId);if(n===void 0||this.view.interactions[n]?.status!==`open`)return;let r=isRecord(e.response)?e.response:{},s={};typeof r.optionId==`string`&&(s.optionId=r.optionId),typeof r.text==`string`&&(s.text=r.text);let c=v26InteractionOutcome(e.outcome),l=`response_${i}_${String(t)}`;o=!0,a.push({data:{deliveryId:i,interactionId:n,responseId:l,value:s},type:`response.submitted`},{data:{responseId:l},type:`response.admitted`},{data:{outcome:`applied`,responseId:l},type:`response.settled`},{data:{cause:{responseId:l},interactionId:n,outcome:c,response:Object.keys(s).length===0?void 0:s},type:`interaction.settled`});let u=this.interactionCalls.get(n);u!==void 0&&this.approvals.set(u,n)}),o?(r!==void 0&&this.view.turns[r]?.status===`running`&&a.push({data:{deliveryId:i,parts:[],turnId:r},type:`delivery.consumed`}),a):[]}authorizationRequired(e,t){let n=str(e.attemptId)??t;if(this.isIntroduced(`interaction`,n))return[];let r=str(e.taskId),i=str(e.turnId),a=r!==void 0&&this.view.tasks[r]!==void 0?{taskId:r}:i===void 0?void 0:{turnId:i};if(a===void 0)return[];let o=v26SignInRequest(e),s=str(e.principalId);return[{data:{audience:s===void 0?void 0:{principalIds:[s]},interactionId:n,request:o,subject:a},type:`interaction.opened`}]}authorizationCompleted(e){let t=str(e.attemptId);return t===void 0||this.view.interactions[t]?.status!==`open`?[]:[{data:{interactionId:t,outcome:v26SignInOutcome(e.outcome),reason:str(e.reason)},type:`interaction.settled`}]}endTurn(e,t){if(e===void 0||this.view.turns[e]?.status!==`running`)return[];let n=t.outcome===`completed`?this.reply?.parts:void 0;return this.turnId=void 0,this.reply=void 0,[{data:{error:t.error===void 0?void 0:t.error,outcome:t.outcome,reply:n===void 0||n.length===0?void 0:n,turnId:e},type:`turn.settled`}]}compactionRequested(e,t){if(this.compaction!==void 0)return[];this.compaction=t;let n=str(e.turnId),r=n!==void 0&&this.view.turns[n]?.status===`running`,i=typeof e.usageInputTokens==`number`?e.usageInputTokens:void 0;return[{data:{changeId:t,kind:`compaction`,trigger:i===void 0?void 0:{inputTokens:i},turnId:r?n:void 0},type:`context.started`}]}compactionSettled(e){let t=this.compaction;return this.compaction=void 0,t===void 0||this.view.changes[t]?.status!==`running`?[]:[{data:{changeId:t,error:e===`failed`?{code:`COMPACTION_FAILED`,message:`The compaction did not complete.`}:void 0,kind:`compaction`,outcome:e},type:`context.settled`}]}};function sessionStarted(e){let t=isRecord(e.invocation)?e.invocation:void 0,n=str(t?.parentSessionId),r=str(t?.parentCallId),i=isRecord(e.predecessor)?str(e.predecessor.sessionId):void 0;return{parent:n!==void 0&&r!==void 0?{callId:r,sessionId:n}:void 0,predecessor:i===void 0?void 0:{sessionId:i},runtime:isRecord(e.runtime)&&typeof e.runtime.agentId==`string`?e.runtime:void 0,trace:isRecord(e.trace)?e.trace:void 0}}function sessionFailed(e,t){let n=errorOf(e),r=isRecord(e.details)?e.details:{};return n.code!==`session_stranded`||typeof r.trigger!=`string`?[{data:{error:n,outcome:`failed`},type:`session.ended`}]:r.trigger===`reset`?[{data:{deliveryId:t,source:{control:`reset`}},type:`delivery.admitted`},{data:{cause:{deliveryId:t},error:n,outcome:`failed`},type:`session.ended`}]:[{data:{cause:{policy:`stranded-${r.trigger}`},error:n,outcome:`failed`},type:`session.ended`}]}function capabilityOf(e,t){let n=t===void 0?{}:{label:t};switch(e.kind){case`subagent-call`:return{kind:`agent`,name:str(e.name)??str(e.subagentName)??`agent`,...n};case`remote-agent-call`:return{kind:`agent`,name:str(e.name)??str(e.remoteAgentName)??`agent`,remote:!0,...n};case`load-skill`:return{kind:`skill`,name:str(e.name)??`skill`,...n};default:{let t=str(e.toolName)??str(e.name)??`tool`;return{kind:t.startsWith(`eve__task_`)?`control`:`tool`,name:t,...n}}}}function userParts(e){return Array.isArray(e.parts)?e.parts.flatMap(e=>{if(!isRecord(e))return[];if(e.type===`text`&&typeof e.text==`string`)return[{kind:`text`,text:e.text}];if(e.type===`file`&&typeof e.mediaType==`string`){let t=str(e.url);return[{filename:str(e.filename),kind:`file`,mediaType:e.mediaType,size:typeof e.size==`number`?e.size:void 0,unavailable:t===void 0||void 0,url:t}]}return[]}):typeof e.message==`string`?[{kind:`text`,text:e.message}]:[]}function errorOf(e){return{code:str(e.code)??`unknown`,message:str(e.message)??`Unknown error.`,name:str(e.name)}}function str(e){return typeof e==`string`?e:void 0}function num(e){return typeof e==`number`&&Number.isFinite(e)?e:0}function json(e){return e===void 0?void 0:e}function isRecord(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}export{convertLegacyEvents,createV26HistoryReader,v26LineStream};
@@ -1,7 +1,6 @@
1
- import TurndownService from"#compiled/turndown/index.js";function convertHtmlToMarkdown(e){let t=new TurndownService({bulletListMarker:`-`,codeBlockStyle:`fenced`,emDelimiter:`*`,headingStyle:`atx`,hr:`---`});return t.remove([`script`,`style`,`meta`,`link`]),t.turndown(e)}function extractTextFromHtml(e){let t=e;return t=t.replace(/<(script|style|noscript)\b[^>]*>[\s\S]*?<\/\1>/gi,``),t=t.replace(/<\/(p|div|br|h[1-6]|li|tr|blockquote|pre|section|article|header|footer|nav|aside|main|figure|figcaption|details|summary)>/gi,`
2
- `),t=t.replace(/<br\s*\/?>/gi,`
3
- `),t=t.replace(/<[^>]+>/g,``),t=decodeHtmlEntities(t),t=t.split(`
1
+ import TurndownService from"#compiled/turndown/index.js";function convertHtmlToMarkdown(e){let t=new TurndownService({bulletListMarker:`-`,codeBlockStyle:`fenced`,emDelimiter:`*`,headingStyle:`atx`,hr:`---`});return t.remove([`script`,`style`,`meta`,`link`]),t.turndown(e)}function extractTextFromHtml(e){let t=stripTags(e);return t=decodeHtmlEntities(t),t=t.split(`
4
2
  `).map(e=>e.replace(/[ \t]+/g,` `).trim()).join(`
5
3
  `).replace(/\n{3,}/g,`
6
4
 
7
- `).trim(),t}const ENTITY_MAP={"&amp;":`&`,"&gt;":`>`,"&lt;":`<`,"&nbsp;":` `,"&quot;":`"`,"&#39;":`'`,"&#x27;":`'`,"&#x2F;":`/`},ENTITY_PATTERN=new RegExp(Object.keys(ENTITY_MAP).join(`|`),`gi`);function decodeHtmlEntities(e){return e.replace(ENTITY_PATTERN,e=>ENTITY_MAP[e.toLowerCase()]??e)}export{convertHtmlToMarkdown,extractTextFromHtml};
5
+ `).trim(),t}const RAW_TEXT_CLOSE_TAGS=new Map([[`noscript`,/<\/noscript(?=[\s/>])/gi],[`script`,/<\/script(?=[\s/>])/gi],[`style`,/<\/style(?=[\s/>])/gi]]),BLOCK_ELEMENTS=new Set([`article`,`aside`,`blockquote`,`details`,`div`,`figcaption`,`figure`,`footer`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`header`,`li`,`main`,`nav`,`p`,`pre`,`section`,`summary`,`tr`]),TAG_NAME_PATTERN=/^(\/?)([^\s/>]+)/;function stripTags(e){let t=[],n=0;for(;n<e.length;){let r=e.indexOf(`<`,n);if(r===-1)break;if(e.startsWith(`<!--`,r)){t.push(e.slice(n,r));let i=e.indexOf(`-->`,r+4);n=i===-1?e.length:i+3;continue}let i=e.indexOf(`>`,r+1);if(i===-1)break;t.push(e.slice(n,r)),n=i+1;let a=TAG_NAME_PATTERN.exec(e.slice(r+1,i));if(!a)continue;let o=a[1]===`/`,s=a[2].toLowerCase();if(s===`br`||o&&BLOCK_ELEMENTS.has(s)){t.push(`
6
+ `);continue}let c=o?void 0:RAW_TEXT_CLOSE_TAGS.get(s);if(c){c.lastIndex=n;let t=c.exec(e)?e.indexOf(`>`,c.lastIndex):-1;n=t===-1?e.length:t+1}}return t.push(e.slice(n)),t.join(``)}const ENTITY_MAP={"&amp;":`&`,"&gt;":`>`,"&lt;":`<`,"&nbsp;":` `,"&quot;":`"`,"&#39;":`'`,"&#x27;":`'`,"&#x2F;":`/`},ENTITY_PATTERN=new RegExp(Object.keys(ENTITY_MAP).join(`|`),`gi`);function decodeHtmlEntities(e){return e.replace(ENTITY_PATTERN,e=>ENTITY_MAP[e.toLowerCase()]??e)}export{convertHtmlToMarkdown,extractTextFromHtml};
@@ -1 +1 @@
1
- import{isIP}from"node:net";import{isLoopbackHostname,isPrivateOrReservedIpAddress}from"#shared/network-address.js";import{lookup}from"node:dns";const REDIRECT_STATUSES=new Set([301,302,303,307,308]),UNSAFE_DESTINATION_ERROR=`URL must not target localhost, private, link-local, or reserved IP addresses.`;async function requestPublicUrl(e,t){let n=parseHttpsUrl(e);for(let e=0;;e++){let{dispatcher:r,response:i}=await requestOnce(n,t);try{let r=i.headers.get(`location`);if(r!==null&&REDIRECT_STATUSES.has(i.status)&&e<10){await cancelResponseBody(i),n=parseHttpsUrl(new URL(r,n).toString());continue}return await consumeResponse(i,t.maxResponseSize)}finally{await r.close()}}}function parseHttpsUrl(e){let t;try{t=new URL(e)}catch{throw Error(`URL must be a valid absolute https:// URL.`)}if(t.protocol!==`https:`)throw Error(`URL must start with https://`);return t}async function requestOnce(e,t){assertPublicHostname(e.hostname);let{Agent:n,Dispatcher1Wrapper:r}=await import(`undici`),i=new r(new n({connect:{lookup:createPublicLookup()}}));try{return{dispatcher:i,response:await fetchWithDispatcher(e,{dispatcher:i,headers:t.headers,redirect:`manual`,signal:t.signal})}}catch(e){throw await i.close(),e}}function fetchWithDispatcher(e,t){return fetch(e,t)}function assertPublicHostname(e){let t=e.replace(/^\[(.*)\]$/u,`$1`);if(isIP(t)!==0){assertPublicAddress(t);return}if(isLoopbackHostname(t))throw Error(UNSAFE_DESTINATION_ERROR)}function assertPublicAddress(e){if(isPrivateOrReservedIpAddress(e))throw Error(UNSAFE_DESTINATION_ERROR)}function createPublicLookup(){return(e,t,n)=>{lookup(e,{all:!0,verbatim:!0},(r,i)=>{if(r!==null){n(r,``,0);return}try{for(let{address:e}of i)assertPublicAddress(e)}catch(e){n(e,``,0);return}let a=t.family===void 0||t.family===0?i:i.filter(({family:e})=>e===t.family);if(a.length===0){let t=Error(`Unable to resolve URL hostname "${e}" in the requested IP family.`);Object.assign(t,{code:`ENOTFOUND`}),n(t,``,0);return}if(t.all===!0){n(null,a);return}let o=a[0];n(null,o.address,o.family)})}}async function consumeResponse(e,t){let n=parseContentLength(e.headers.get(`content-length`));if(n!==void 0&&n>t)throw await cancelResponseBody(e),createResponseTooLargeError(t);let r=await readBoundedBody(e,t),i=r.byteLength===0?null:Uint8Array.from(r).buffer;return new Response(i,{headers:e.headers,status:e.status,statusText:e.statusText})}function parseContentLength(e){if(e===null)return;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>=0?t:void 0}async function readBoundedBody(e,t){if(e.body===null)return new Uint8Array;let n=e.body.getReader(),r=[],i=0;try{for(;;){let{done:e,value:a}=await n.read();if(e)break;if(i+=a.byteLength,i>t)throw await n.cancel(),createResponseTooLargeError(t);r.push(a)}}finally{n.releaseLock()}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.byteLength;return a}async function cancelResponseBody(e){try{await e.body?.cancel()}catch{}}function createResponseTooLargeError(e){return Error(`Response too large (exceeds ${e} bytes).`)}export{requestPublicUrl};
1
+ import{assertPublicHostname,cancelResponseBody,createPublicDispatcher,fetchWithDispatcher,readBoundedResponse}from"#execution/public-destination.js";const REDIRECT_STATUSES=new Set([301,302,303,307,308]),WEB_FETCH_DESTINATION_POLICY={allowLoopback:!1};async function requestPublicUrl(e,t){let n=parseHttpsUrl(e);for(let e=0;;e++){let{dispatcher:r,response:i}=await requestOnce(n,t);try{let r=i.headers.get(`location`);if(r!==null&&REDIRECT_STATUSES.has(i.status)&&e<10){await cancelResponseBody(i),n=parseHttpsUrl(new URL(r,n).toString());continue}return await readBoundedResponse(i,t.maxResponseSize)}finally{await r.close()}}}function parseHttpsUrl(e){let t;try{t=new URL(e)}catch{throw Error(`URL must be a valid absolute https:// URL.`)}if(t.protocol!==`https:`)throw Error(`URL must start with https://`);return t}async function requestOnce(e,t){assertPublicHostname(e.hostname,WEB_FETCH_DESTINATION_POLICY);let n=await createPublicDispatcher(WEB_FETCH_DESTINATION_POLICY);try{return{dispatcher:n,response:await fetchWithDispatcher(e,{dispatcher:n,headers:t.headers,redirect:`manual`,signal:t.signal})}}catch(e){throw await n.close(),e}}export{requestPublicUrl};
@@ -7,6 +7,11 @@
7
7
  * serialization the workflow devkit performs on step inputs.
8
8
  */
9
9
  export declare function normalizeSerializableError(error: unknown): unknown;
10
+ /**
11
+ * What a step that failed every attempt threw. The workflow reports exhaustion as a
12
+ * `FatalError` naming the step and its retries, with the last attempt's error as its cause.
13
+ */
14
+ export declare function exhaustedStepError(error: unknown): unknown;
10
15
  /**
11
16
  * Rebuilds an {@link Error} from the normalized hook payload sent by a
12
17
  * child workflow.
@@ -1 +1 @@
1
- function normalizeSerializableError(e){return e instanceof Error?{...Object.fromEntries(Object.entries(e)),cause:e.cause===void 0?void 0:normalizeSerializableError(e.cause),message:e.message,name:e.name,stack:e.stack}:e}function rebuildSerializableError(e){if(!isRecord(e))return Error(String(e));let t=typeof e.message==`string`?e.message:String(e),n=Error(t);typeof e.name==`string`&&(n.name=e.name),typeof e.stack==`string`&&(n.stack=e.stack),`cause`in e&&(n.cause=isRecord(e.cause)?rebuildSerializableError(e.cause):e.cause);let r=n;for(let[t,n]of Object.entries(e))t!==`message`&&t!==`name`&&t!==`stack`&&t!==`cause`&&(r[t]=n);return n}function isRecord(e){return typeof e==`object`&&!!e}export{normalizeSerializableError,rebuildSerializableError};
1
+ function normalizeSerializableError(e){return e instanceof Error?{...Object.fromEntries(Object.entries(e)),cause:e.cause===void 0?void 0:normalizeSerializableError(e.cause),message:e.message,name:e.name,stack:e.stack}:e}function exhaustedStepError(e){return isRecord(e)&&e.name===`FatalError`&&typeof e.message==`string`&&/^Step ".+" (?:failed after \d+ retr(?:y|ies):|exceeded max retries \(\d+ retr(?:y|ies)\))/.test(e.message)&&e.cause!==void 0?e.cause:e}function rebuildSerializableError(e){if(!isRecord(e))return Error(String(e));let t=typeof e.message==`string`?e.message:String(e),n=Error(t);typeof e.name==`string`&&(n.name=e.name),typeof e.stack==`string`&&(n.stack=e.stack),`cause`in e&&(n.cause=isRecord(e.cause)?rebuildSerializableError(e.cause):e.cause);let r=n;for(let[t,n]of Object.entries(e))t!==`message`&&t!==`name`&&t!==`stack`&&t!==`cause`&&(r[t]=n);return n}function isRecord(e){return typeof e==`object`&&!!e}export{exhaustedStepError,normalizeSerializableError,rebuildSerializableError};
@@ -1 +1 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{validateDeliveryIdempotencyKey}from"#channel/delivery-idempotency.js";import{SessionStrandedError,describeStrandedSession}from"#channel/session-stranded-error.js";import{sessionCommandHookToken,sessionInboxHookToken}from"#execution/session-inbox/address.js";import{SessionPredecessorKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{walkCauseChain}from"#shared/errors.js";import{validateToolStubTargets}from"#tool-stubs/validate-targets.js";import{getHookByToken,getRun,getWorld,start}from"#internal/workflow/runtime.js";import{getCompiledRuntimeAgentBundle}from"#runtime/sessions/compiled-agent-cache.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{serializeContext}from"#context/serialize.js";import{AcceptedSessionIdentityError,SessionHandoffPendingError,logicalSessionToken,resolveSessionInbox,resumeSessionInbox}from"#execution/session-inbox/resume.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{context,trace}from"#compiled/@opentelemetry/api/index.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{StrandedSessionOwnerError,assertRunnableSessionInbox,findSessionHookHolder}from"#execution/session-inbox/owner.js";import{initializeSessionInstrumentation}from"#instrumentation/runtime.js";import{EVE_PREWARM_ATTRIBUTE,EVE_VERSION_ATTRIBUTE,buildSessionAttributes,buildSubagentRootAttributes,readParentLineage}from"#execution/eve-workflow-attributes.js";import{endStrandedSession}from"#execution/session-inbox/end-stranded-session.js";import{SESSION_HOOK_HANDOVER_TIMEOUT_MS,waitForSessionHooksRelease}from"#execution/session-inbox/hook-release.js";import{CONNECTION_EVENT_DELIVERY_WORKFLOW_NAME,CONNECTION_EVENT_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,WORKFLOW_ENTRY_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME}from"#execution/stable-workflow-names.js";import{prewarmWorkflowSession}from"#execution/session-prewarm.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{buildRunContext}from"#execution/runtime-context.js";import{assertSessionHistoryReadable,readSessionEventHistory,readSessionEventStream,readSessionStreamTailIndex}from"#execution/session-event-stream.js";import{buildInvocationAttributes}from"#internal/invocation/metadata.js";import{isAgentTraceContext}from"#tracing/eve/agent-trace-context.js";const EVE_PACKAGE_INFO=resolveInstalledPackageInfo(),STABLE_ID_BASE=EVE_PACKAGE_INFO.name,log=createLogger(`execution.workflow-runtime`),workflowEntryReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_ENTRY_NAME}`},sessionTimeoutWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${SESSION_TIMEOUT_WORKFLOW_NAME}`},workflowToolRunWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_TOOL_RUN_WORKFLOW_NAME}`},connectionEventWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${CONNECTION_EVENT_WORKFLOW_NAME}`},connectionEventDeliveryWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${CONNECTION_EVENT_DELIVERY_WORKFLOW_NAME}`};function createWorkflowRuntime(e){let startSession=async(t,n)=>{validateDeliveryIdempotencyKey(t.idempotencyKey);let r=await getCompiledRuntimeAgentBundle({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId});t.toolStubs!==void 0&&t.toolStubs.rootSessionId===void 0&&validateToolStubTargets(t.toolStubs.rules,r.graph);let i=buildRunContext({agentSessionRuntimeOverrides:e.agentSessionRuntimeOverrides,bundle:r,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,run:t});n!==void 0&&i.set(SessionPredecessorKey,n);let a=resolveEffectiveAgentRuntime(r,i),o=initializeSessionInstrumentation({agentName:a.turnAgent.id,ctx:i}),s=a.limits?.sessionTimeoutMs,c=r.resolvedAgent.config?.experimental?.workflow?.retention??(o.action===`record`&&o.recordInputs&&o.recordOutputs?void 0:0),l=serializeContext(i),u=readParentLineage(l),d={idempotencyKey:t.idempotencyKey,kind:`initial`,input:t.input,ownerDeploymentId:await resolveCurrentWorkflowDeploymentId(),serializedContext:l};t.continuationConflictCommand!==void 0&&(d.continuationConflictCommand=t.continuationConflictCommand),s!==void 0&&(d.sessionTimeoutMs=s),c!==void 0&&(d.retention=c);let f={...u.sessionId===void 0?buildSessionAttributes({serializedContext:l}):buildSubagentRootAttributes({identity:{nodeId:r.nodeId??ROOT_RUNTIME_AGENT_NODE_ID},parentCallId:u.callId,parentSessionId:u.sessionId,parentTurnId:u.turnId,rootSessionId:u.rootSessionId??u.sessionId,serializedContext:l}),[EVE_PREWARM_ATTRIBUTE]:`1`,...t.externalInvocation===void 0?{}:buildInvocationAttributes(t.externalInvocation)},p;try{let e={allowReservedAttributes:!0,attributes:normalizeEveAttributes(f)};c!==void 0&&(e.experimental_retention=c),p=await startWorkflowOnDeployment(workflowEntryReference,[d],d.ownerDeploymentId,e)}catch(e){throw logError(log,`failed to start workflow run`,e,{continuationToken:t.continuationToken}),e}let m=p.runId;if(t.idempotencyKey!==void 0&&t.continuationToken!==void 0){let e=await pollUntil(()=>resolveContinuation(t.continuationToken),SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(e===void 0)throw Error(`Delivery accepted, but its session identity is not ready. Retry with the same idempotencyKey.`);m=e.sessionId}let h,getEvents=()=>(h??=readSessionEventStream(m),h);return{get events(){return getEvents()},sessionId:m}};return{async createSession(e){return await startSession(e)},async dispatchContinuation(e){let{command:t,continuationToken:n,successor:r}=e;try{return await dispatchWorkflowCommand(n,t)}catch(e){if(!(e instanceof StrandedSessionOwnerError))throw e;if(t.kind!==`send`||r===void 0)return await settleStrandedCommand(n,t,e);if((t.payload.inputResponses?.length??0)>0)throw sessionStrandedError(e,`Its pending requests can no longer be answered; send a new message to start a fresh session.`);let i=await endStrandedSession(e,n,`message`);return{sessionId:(await startSession(r,{sessionId:i})).sessionId,status:`accepted`}}},async dispatchSession(e){return await dispatchWorkflowSessionCommand(e)},async getEventStream(e,t){if(t?.follow===!1)return readSessionEventHistory(e,t.startIndex);try{await Promise.all([assertRunnableSessionInbox(sessionInboxHookToken(sessionCommandHookToken(e))),assertSessionHistoryReadable(e)])}catch(e){throw e instanceof StrandedSessionOwnerError?sessionStrandedError(e):e}return readSessionEventStream(e,t?.startIndex)},async getStreamTailIndex(e){return await readSessionStreamTailIndex(e)},resolveContinuation}}async function dispatchWorkflowCommand(e,t){if(t.kind===`prewarm`)return typeof e==`string`?{status:`unsupported`}:await prewarmWorkflowSession(e.sessionId,t.targetDeploymentId);let n;try{let r=await resumeSessionInbox(e,t);n={runId:r.ownerRunId,sessionId:await r.sessionId}}catch(n){if(n instanceof StrandedSessionOwnerError)throw n;let r=t.kind===`send`&&typeof e!=`string`,i={status:`session_not_active`,retryable:!0};if(n instanceof SessionHandoffPendingError){if(r)return i;throw n}if(isInactiveCommandTarget(n))return r&&await isRunActive(e.sessionId)?i:inactiveCommandResult(t);throw logError(log,`failed to dispatch session command`,n,{command:t.kind,token:e}),n}return t.kind===`reset`&&await waitForSessionHooksRelease([sessionCommandHookToken(n.sessionId),logicalSessionToken(e)],{ownerRunId:n.runId,sessionId:n.sessionId}),activeCommandResult(t,n.sessionId)}async function settleStrandedCommand(e,t,n){switch(t.kind){case`reset`:return{previousSessionId:await endStrandedSession(n,e,`reset`),status:`reset`};case`send`:case`clear`:throw sessionStrandedError(n);default:return inactiveCommandResult(t)}}function sessionStrandedError(e,t){let n=e.eveVersion===void 0?{}:{eveVersion:e.eveVersion};return new SessionStrandedError(n,describeStrandedSession(n,t))}function activeCommandResult(e,t){return e.kind===`reset`?{previousSessionId:t,status:`reset`}:e.kind===`send`&&e.delivery!==void 0?{sessionId:t,status:`accepted`,deliveryId:e.delivery.deliveryId}:{sessionId:t,status:`accepted`}}function inactiveCommandResult(e){return e.kind===`send`?{status:`session_not_active`}:e.kind===`cancel`?{status:`no_active_turn`}:{status:`no_active_session`}}async function dispatchWorkflowSessionCommand(e){let t={sessionId:e.sessionId};try{return await dispatchWorkflowCommand(t,e.command)}catch(n){if(!(n instanceof StrandedSessionOwnerError))throw n;return await settleStrandedCommand(t,e.command,n)}}async function isRunActive(e){try{let t=await getRun(e).status;return t===`pending`||t===`running`}catch(e){if(isInactiveCommandTarget(e))return!1;throw e}}function isInactiveCommandTarget(e){if(e instanceof AcceptedSessionIdentityError)return!1;if(HookNotFoundError.is(e))return!0;for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}async function resolveContinuation(e,t){let n;try{n=await resolveSessionInbox(e)}catch(t){if(HookNotFoundError.is(t))return;throw logError(log,`failed to resolve session by continuation token`,t,{continuationToken:e}),t}if(t?.runnable!==!0)return n;try{await assertRunnableSessionInbox(sessionInboxHookToken(sessionCommandHookToken(n.sessionId)))}catch(e){throw e instanceof StrandedSessionOwnerError?sessionStrandedError(e):e}return n}async function waitForCommandHookOwner(e){let t=await pollUntil(async()=>{try{return normalizeWorkflowHook(await getHookByToken(e))}catch(e){if(!HookNotFoundError.is(e))throw e;return}},SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(t===void 0)throw new HookNotFoundError(e);return t}async function waitForSessionInbox(e){let t=sessionInboxHookToken(sessionCommandHookToken(e)),n=await pollUntil(async()=>await findSessionHookHolder(t)!==void 0||!await hasRunEnded(e)&&void 0,SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(n===void 0)throw Error(`Session "${e}" did not start taking commands within ${SESSION_HOOK_HANDOVER_TIMEOUT_MS/1e3} seconds.`);return n}async function pollUntil(e,t){let n=Date.now()+t;for(let t=20;;t=Math.min(t*2,200)){let r=await e();if(r!==void 0||Date.now()>=n)return r;await new Promise(e=>setTimeout(e,t))}}async function hasRunEnded(e){try{let t=await getRun(e).status;return t!==`pending`&&t!==`running`}catch(e){for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t))return!1;if(isInactiveCommandTarget(e))return!0;throw e}}async function startWorkflowOnCurrentDeployment(e,t,n){return await startWorkflowOnDeployment(e,t,await resolveCurrentWorkflowDeploymentId(),n)}async function startWorkflowOnDeployment(e,t,n,r){return await withWorkflowStartContext(async()=>{if(n.length===0||n===`latest`)throw Error(`Workflow starts require an exact deployment id.`);return await start(e,t,{...r,allowReservedAttributes:!0,attributes:{...r?.attributes,[EVE_VERSION_ATTRIBUTE]:EVE_PACKAGE_INFO.version},deploymentId:n})})}async function resolveCurrentWorkflowDeploymentId(){let e=process.env.VERCEL_DEPLOYMENT_ID?.trim()||await(await getWorld()).getDeploymentId();if(e.length===0||e===`latest`)throw Error(`Workflow runtime could not resolve an exact deployment id.`);return e}async function withWorkflowStartContext(e){let t=context.active(),n=isAgentTraceContext(t)?trace.deleteSpan(t):t;return await context.with(n,e)}function normalizeWorkflowHook(e){if(typeof e!=`object`||!e||!(`runId`in e))throw Error(`Workflow hook did not include a run id.`);let t=e.runId;if(typeof t!=`string`||t.length===0)throw Error(`Workflow hook did not include a run id.`);return{runId:t}}export{connectionEventDeliveryWorkflowReference,connectionEventWorkflowReference,createWorkflowRuntime,dispatchWorkflowSessionCommand,hasRunEnded,pollUntil,resolveContinuation,sessionTimeoutWorkflowReference,startWorkflowOnCurrentDeployment,startWorkflowOnDeployment,waitForCommandHookOwner,waitForSessionInbox,workflowEntryReference,workflowToolRunWorkflowReference};
1
+ import{createLogger,logError}from"#internal/logging.js";import{validateDeliveryIdempotencyKey}from"#channel/delivery-idempotency.js";import{createChannelDeliveryMetadata}from"#channel/delivery-metadata.js";import{SessionStrandedError,describeStrandedSession}from"#channel/session-stranded-error.js";import{sessionCommandHookToken,sessionInboxHookToken}from"#execution/session-inbox/address.js";import{SessionPredecessorKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{walkCauseChain}from"#shared/errors.js";import{validateToolStubTargets}from"#tool-stubs/validate-targets.js";import{getHookByToken,getRun,getWorld,start}from"#internal/workflow/runtime.js";import{assertSessionHistoryReadable,readSessionEventHistory,readSessionEventStream,readSessionRecordHistory,readSessionRecords,readSessionStreamTailIndex}from"#execution/session-event-stream.js";import{getCompiledRuntimeAgentBundle}from"#runtime/sessions/compiled-agent-cache.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{serializeContext}from"#context/serialize.js";import{AcceptedSessionIdentityError,SessionHandoffPendingError,logicalSessionToken,resolveSessionInbox,resumeSessionInbox}from"#execution/session-inbox/resume.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{context,trace}from"#compiled/@opentelemetry/api/index.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{StrandedSessionOwnerError,assertRunnableSessionInbox,assertRunnableSessionOwner,findSessionHookHolder}from"#execution/session-inbox/owner.js";import{initializeSessionInstrumentation}from"#instrumentation/runtime.js";import{EVE_PREWARM_ATTRIBUTE,EVE_VERSION_ATTRIBUTE,buildSessionAttributes,buildSubagentRootAttributes,readParentLineage}from"#execution/eve-workflow-attributes.js";import{endStrandedSession}from"#execution/session-inbox/end-stranded-session.js";import{SESSION_HOOK_HANDOVER_TIMEOUT_MS,waitForSessionHooksRelease}from"#execution/session-inbox/hook-release.js";import{CONNECTION_EVENT_DELIVERY_WORKFLOW_NAME,CONNECTION_EVENT_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,WORKFLOW_ENTRY_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME}from"#execution/stable-workflow-names.js";import{readRemoteChildBinding}from"#execution/child-binding.js";import{prewarmWorkflowSession}from"#execution/session-prewarm.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{buildRunContext}from"#execution/runtime-context.js";import{buildInvocationAttributes}from"#internal/invocation/metadata.js";import{isAgentTraceContext}from"#tracing/eve/agent-trace-context.js";const EVE_PACKAGE_INFO=resolveInstalledPackageInfo(),STABLE_ID_BASE=EVE_PACKAGE_INFO.name,log=createLogger(`execution.workflow-runtime`),workflowEntryReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_ENTRY_NAME}`},sessionTimeoutWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${SESSION_TIMEOUT_WORKFLOW_NAME}`},workflowToolRunWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_TOOL_RUN_WORKFLOW_NAME}`},connectionEventWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${CONNECTION_EVENT_WORKFLOW_NAME}`},connectionEventDeliveryWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${CONNECTION_EVENT_DELIVERY_WORKFLOW_NAME}`};function createWorkflowRuntime(e){let startSession=async(t,n)=>{validateDeliveryIdempotencyKey(t.idempotencyKey),t.input.message!==void 0&&t.delivery===void 0&&(t={...t,delivery:createChannelDeliveryMetadata({channelKind:t.adapter.kind,channelName:t.channelName??t.adapter.kind,requestId:t.requestId})});let r=t.continuationConflictCommand;r!==void 0&&r.delivery===void 0&&(t={...t,continuationConflictCommand:{...r,delivery:t.delivery}});let i=await getCompiledRuntimeAgentBundle({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId});t.toolStubs!==void 0&&t.toolStubs.rootSessionId===void 0&&validateToolStubTargets(t.toolStubs.rules,i.graph);let a=buildRunContext({agentSessionRuntimeOverrides:e.agentSessionRuntimeOverrides,bundle:i,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,run:t});n!==void 0&&a.set(SessionPredecessorKey,n);let o=resolveEffectiveAgentRuntime(i,a),s=initializeSessionInstrumentation({agentName:o.turnAgent.id,ctx:a}),c=o.limits?.sessionTimeoutMs,l=i.resolvedAgent.config?.experimental?.workflow?.retention??(s.action===`record`&&s.recordInputs&&s.recordOutputs?void 0:0),u=serializeContext(a),d=readParentLineage(u),f={idempotencyKey:t.idempotencyKey,kind:`initial`,input:t.input,ownerDeploymentId:await resolveCurrentWorkflowDeploymentId(),serializedContext:u};t.continuationConflictCommand!==void 0&&(f.continuationConflictCommand=t.continuationConflictCommand),c!==void 0&&(f.sessionTimeoutMs=c),l!==void 0&&(f.retention=l);let p={...d.sessionId===void 0?buildSessionAttributes({serializedContext:u}):buildSubagentRootAttributes({identity:{nodeId:i.nodeId??ROOT_RUNTIME_AGENT_NODE_ID},parentCallId:d.callId,parentSessionId:d.sessionId,parentTurnId:d.turnId,rootSessionId:d.rootSessionId??d.sessionId,serializedContext:u}),[EVE_PREWARM_ATTRIBUTE]:`1`,...t.externalInvocation===void 0?{}:buildInvocationAttributes(t.externalInvocation)},m;try{let e={allowReservedAttributes:!0,attributes:normalizeEveAttributes(p)};l!==void 0&&(e.experimental_retention=l),m=await startWorkflowOnDeployment(workflowEntryReference,[f],f.ownerDeploymentId,e)}catch(e){throw logError(log,`failed to start workflow run`,e,{continuationToken:t.continuationToken}),e}let h=m.runId;if(t.idempotencyKey!==void 0&&t.continuationToken!==void 0){let e=await pollUntil(()=>resolveContinuation(t.continuationToken),SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(e===void 0)throw Error(`Delivery accepted, but its session identity is not ready. Retry with the same idempotencyKey.`);h=e.sessionId}let g,getEvents=()=>(g??=readSessionEventStream(h),g);return{get events(){return getEvents()},sessionId:h,...t.delivery!==void 0&&{deliveryId:t.delivery.deliveryId}}};return{async createSession(e){return await startSession(e)},async dispatchContinuation(e){let{continuationToken:t,successor:n}=e,r=identifyCommand(e.command);try{return await dispatchWorkflowCommand(t,r)}catch(e){if(!(e instanceof StrandedSessionOwnerError))throw e;if(r.kind!==`send`||n===void 0)return await settleStrandedCommand(t,r,e);if((r.payload.answers?.length??0)>0)throw sessionStrandedError(e,`Its pending requests can no longer be answered; send a new message to start a fresh session.`);let i=await endStrandedSession(e,t,`message`);return{sessionId:(await startSession({...n,delivery:r.delivery},{sessionId:i})).sessionId,deliveryId:r.delivery?.deliveryId,status:`accepted`}}},async dispatchSession(e){return await dispatchWorkflowSessionCommand(e)},async getEventStream(e,t){return t?.follow===!1?readSessionEventHistory(e,t.startIndex,t.signal):(await assertFollowableSession(e),readSessionEventStream(e,t?.startIndex,t?.signal))},async getLineStream(e,t){return t?.follow===!1?readSessionRecordHistory(e,t.startIndex):(await assertFollowableSession(e),readSessionRecords(e,t?.startIndex))},async getStreamTailIndex(e){return await readSessionStreamTailIndex(e)},async readChildBinding(e,t){return await readRemoteChildBinding(e,t)},async hasRunnableOwner(e){let t=sessionInboxHookToken(sessionCommandHookToken(e)),n=await findSessionHookHolder(t);if(n===void 0)return!1;try{return await assertRunnableSessionOwner(n),!0}catch(e){if(e instanceof StrandedSessionOwnerError)return!1;throw e}},resolveContinuation}}async function dispatchWorkflowCommand(e,t){if(t.kind===`prewarm`)return typeof e==`string`?{status:`unsupported`}:await prewarmWorkflowSession(e.sessionId,t.targetDeploymentId);let n;try{let r=await resumeSessionInbox(e,t);n={runId:r.ownerRunId,sessionId:await r.sessionId}}catch(n){if(n instanceof StrandedSessionOwnerError)throw n;let r=t.kind===`send`&&typeof e!=`string`,i={status:`session_not_active`,retryable:!0};if(n instanceof SessionHandoffPendingError){if(r)return i;throw n}if(isInactiveCommandTarget(n))return r&&await isRunActive(e.sessionId)?i:inactiveCommandResult(t);throw logError(log,`failed to dispatch session command`,n,{command:t.kind,token:e}),n}return t.kind===`reset`&&await waitForSessionHooksRelease([sessionCommandHookToken(n.sessionId),logicalSessionToken(e)],{ownerRunId:n.runId,sessionId:n.sessionId}),activeCommandResult(t,n.sessionId)}async function settleStrandedCommand(e,t,n){switch(t.kind){case`reset`:return{previousSessionId:await endStrandedSession(n,e,`reset`,t),status:`reset`};case`send`:case`clear`:throw sessionStrandedError(n);default:return inactiveCommandResult(t)}}async function assertFollowableSession(e){try{await Promise.all([assertRunnableSessionInbox(sessionInboxHookToken(sessionCommandHookToken(e))),assertSessionHistoryReadable(e)])}catch(e){throw e instanceof StrandedSessionOwnerError?sessionStrandedError(e):e}}function sessionStrandedError(e,t){let n=e.eveVersion===void 0?{}:{eveVersion:e.eveVersion};return new SessionStrandedError(n,describeStrandedSession(n,t))}function activeCommandResult(e,t){return e.kind===`reset`?{previousSessionId:t,status:`reset`}:e.kind===`send`&&e.delivery!==void 0?{sessionId:t,status:`accepted`,deliveryId:e.delivery.deliveryId}:{sessionId:t,status:`accepted`}}function inactiveCommandResult(e){return e.kind===`send`?{status:`session_not_active`}:e.kind===`cancel`?{status:`no_active_turn`}:{status:`no_active_session`}}async function dispatchWorkflowSessionCommand(e){let t={sessionId:e.sessionId},n=identifyCommand(e.command);try{return await dispatchWorkflowCommand(t,n)}catch(e){if(!(e instanceof StrandedSessionOwnerError))throw e;return await settleStrandedCommand(t,n,e)}}async function isRunActive(e){try{let t=await getRun(e).status;return t===`pending`||t===`running`}catch(e){if(isInactiveCommandTarget(e))return!1;throw e}}function isInactiveCommandTarget(e){if(e instanceof AcceptedSessionIdentityError)return!1;if(HookNotFoundError.is(e))return!0;for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}async function resolveContinuation(e,t){let n;try{n=await resolveSessionInbox(e)}catch(t){if(HookNotFoundError.is(t))return;throw logError(log,`failed to resolve session by continuation token`,t,{continuationToken:e}),t}if(t?.runnable!==!0)return n;try{await assertRunnableSessionInbox(sessionInboxHookToken(sessionCommandHookToken(n.sessionId)))}catch(e){throw e instanceof StrandedSessionOwnerError?sessionStrandedError(e):e}return n}async function waitForCommandHookOwner(e){let t=await pollUntil(async()=>{try{return normalizeWorkflowHook(await getHookByToken(e))}catch(e){if(!HookNotFoundError.is(e))throw e;return}},SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(t===void 0)throw new HookNotFoundError(e);return t}async function waitForSessionInbox(e){let t=sessionInboxHookToken(sessionCommandHookToken(e)),n=await pollUntil(async()=>await findSessionHookHolder(t)!==void 0||!await hasRunEnded(e)&&void 0,SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(n===void 0)throw Error(`Session "${e}" did not start taking commands within ${SESSION_HOOK_HANDOVER_TIMEOUT_MS/1e3} seconds.`);return n}async function pollUntil(e,t){let n=Date.now()+t;for(let t=20;;t=Math.min(t*2,200)){let r=await e();if(r!==void 0||Date.now()>=n)return r;await new Promise(e=>setTimeout(e,t))}}async function hasRunEnded(e){try{let t=await getRun(e).status;return t!==`pending`&&t!==`running`}catch(e){for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t))return!1;if(isInactiveCommandTarget(e))return!0;throw e}}async function startWorkflowOnCurrentDeployment(e,t,n){return await startWorkflowOnDeployment(e,t,await resolveCurrentWorkflowDeploymentId(),n)}async function startWorkflowOnDeployment(e,t,n,r){return await withWorkflowStartContext(async()=>{if(n.length===0||n===`latest`)throw Error(`Workflow starts require an exact deployment id.`);return await start(e,t,{...r,allowReservedAttributes:!0,attributes:{...r?.attributes,[EVE_VERSION_ATTRIBUTE]:EVE_PACKAGE_INFO.version},deploymentId:n})})}async function resolveCurrentWorkflowDeploymentId(){let e=process.env.VERCEL_DEPLOYMENT_ID?.trim()||await(await getWorld()).getDeploymentId();if(e.length===0||e===`latest`)throw Error(`Workflow runtime could not resolve an exact deployment id.`);return e}async function withWorkflowStartContext(e){let t=context.active(),n=isAgentTraceContext(t)?trace.deleteSpan(t):t;return await context.with(n,e)}function normalizeWorkflowHook(e){if(typeof e!=`object`||!e||!(`runId`in e))throw Error(`Workflow hook did not include a run id.`);let t=e.runId;if(typeof t!=`string`||t.length===0)throw Error(`Workflow hook did not include a run id.`);return{runId:t}}function identifyCommand(e){if(e.kind!==`send`||e.delivery!==void 0)return e;let t=e.caller===void 0?e.schedule===void 0?`http`:`schedule`:`subagent`;return{...e,delivery:createChannelDeliveryMetadata({channelKind:t,channelName:t,requestId:e.requestId})}}export{connectionEventDeliveryWorkflowReference,connectionEventWorkflowReference,createWorkflowRuntime,dispatchWorkflowSessionCommand,hasRunEnded,pollUntil,resolveContinuation,sessionTimeoutWorkflowReference,startWorkflowOnCurrentDeployment,startWorkflowOnDeployment,waitForCommandHookOwner,waitForSessionInbox,workflowEntryReference,workflowToolRunWorkflowReference};
@@ -1,17 +1,7 @@
1
1
  import type { SandboxSession } from "eve/sandbox";
2
2
  import { z } from "zod";
3
- import type { GitHubConfig } from "eve/extensions/git/sandbox";
4
3
  export type CredentialPolicyBroker = (sandbox: SandboxSession, rules: Record<string, Record<string, string>>) => Promise<void>;
5
- export type { GitHubLeaseRule } from "eve/extensions/git/sandbox";
6
- export type GitHubLeaseBroker = GitHubConfig["broker"];
7
- export type GitHubAttribution = NonNullable<GitHubConfig["attribution"]>;
8
4
  declare const _default: import("eve/extension").ExtensionHandle<z.ZodObject<{
9
- github: z.ZodOptional<z.ZodObject<{
10
- connector: z.ZodString;
11
- org: z.ZodString;
12
- broker: z.ZodCustom<(sandbox: SandboxSession, rules: Readonly<Record<string, readonly import("eve/extensions/git/sandbox").GitHubLeaseRule[]>> | null) => Promise<void>, (sandbox: SandboxSession, rules: Readonly<Record<string, readonly import("eve/extensions/git/sandbox").GitHubLeaseRule[]>> | null) => Promise<void>>;
13
- attribution: z.ZodOptional<z.ZodCustom<(ctx: import("../../../tools/definition.ts").ToolContext) => import("eve/extensions/git/sandbox").GitHubCoAuthor | null | PromiseLike<import("eve/extensions/git/sandbox").GitHubCoAuthor | null>, (ctx: import("../../../tools/definition.ts").ToolContext) => import("eve/extensions/git/sandbox").GitHubCoAuthor | null | PromiseLike<import("eve/extensions/git/sandbox").GitHubCoAuthor | null>>>;
14
- }, z.core.$strip>>;
15
5
  vercel: z.ZodOptional<z.ZodObject<{
16
6
  connector: z.ZodString;
17
7
  delivery: z.ZodDefault<z.ZodEnum<{
@@ -41,5 +31,5 @@ declare const _default: import("eve/extension").ExtensionHandle<z.ZodObject<{
41
31
  xhigh: "xhigh";
42
32
  }>>;
43
33
  }, z.core.$strip>>;
44
- }, z.core.$strip>>;
34
+ }, z.core.$strict>>;
45
35
  export default _default;
@@ -1 +1 @@
1
- import{z}from"#compiled/zod/index.js";import{defineExtension}from"eve/extension";const fn=()=>z.custom(e=>typeof e==`function`),delivery=z.enum([`firewall`,`command`]).default(`firewall`),reasoning=z.enum([`provider-default`,`none`,`minimal`,`low`,`medium`,`high`,`xhigh`]),openaiReasoningEffort=z.enum([`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]);var extension_default=defineExtension({config:z.object({github:z.object({connector:z.string().min(1),org:z.string().min(1),broker:fn(),attribution:fn().optional()}).optional(),vercel:z.object({connector:z.string().min(1),delivery}).optional(),broker:fn().optional(),worker:z.object({model:z.string().min(1),reasoning,openaiReasoningEffort:openaiReasoningEffort.optional()}).optional()})});export{extension_default as default};
1
+ import{z}from"#compiled/zod/index.js";import{defineExtension}from"eve/extension";const fn=()=>z.custom(e=>typeof e==`function`),delivery=z.enum([`firewall`,`command`]).default(`firewall`),reasoning=z.enum([`provider-default`,`none`,`minimal`,`low`,`medium`,`high`,`xhigh`]),openaiReasoningEffort=z.enum([`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]);var extension_default=defineExtension({config:z.object({vercel:z.object({connector:z.string().min(1),delivery}).optional(),broker:fn().optional(),worker:z.object({model:z.string().min(1),reasoning,openaiReasoningEffort:openaiReasoningEffort.optional()}).optional()}).strict()});export{extension_default as default};
@@ -1,4 +1,8 @@
1
1
  import { z } from "zod";
2
+ type WatchGitHubConfig = {
3
+ readonly connector: string;
4
+ readonly org: string;
5
+ };
2
6
  export declare const PullRequestWatchInputSchema: z.ZodObject<{
3
7
  repo: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4
8
  pullRequestNumber: z.ZodNumber;
@@ -65,5 +69,5 @@ export declare function pullRequestWatchSnapshot(input: {
65
69
  readonly reviews: readonly Review[];
66
70
  }): PullRequestWatchSnapshot;
67
71
  export declare function repoFullName(repo: string): string;
68
- export declare function readPullRequestWatchSnapshot(input: PullRequestWatchInput): Promise<PullRequestWatchSnapshot>;
72
+ export declare function readPullRequestWatchSnapshot(input: PullRequestWatchInput, github: WatchGitHubConfig): Promise<PullRequestWatchSnapshot>;
69
73
  export {};
@@ -1 +1 @@
1
- import extension_default from"../extension.js";import{z}from"#compiled/zod/index.js";import{deleteTokenCacheEntry,getToken}from"#compiled/@vercel/connect/index.js";const RepoSchema=z.string().trim().regex(/^[A-Za-z0-9-]+\/[A-Za-z0-9._-]+$/u).transform(e=>e.toLowerCase()),PullRequestWatchInputSchema=z.object({repo:RepoSchema,pullRequestNumber:z.number().int().positive(),reviewOwner:z.string().trim().min(1),redHeadOid:z.string().regex(/^[0-9a-f]{40}$/iu).transform(e=>e.toLowerCase())}),PrwatchDeleteInputSchema=z.object({repo:RepoSchema,pullRequestNumber:z.number().int().positive()}),PullRequestSchema=z.object({head:z.object({sha:z.string().min(1)}),html_url:z.string().url(),merged:z.boolean().optional().default(!1),state:z.enum([`open`,`closed`])}),ReviewSchema=z.object({commit_id:z.string().nullable(),state:z.string(),submitted_at:z.string().nullable(),user:z.object({login:z.string()}).nullable()});function initialPullRequestWatchNotificationState(){return{previousSnapshot:null,redHeadPolls:0,redHeadWakeSent:!1}}function framePullRequestWatchWake(e){return`${e}\n\nThis is an internal watch wake, not a request for a progress report. Continue any necessary work. Send a user-facing response only when the original request is complete or a new blocker requires human input. Do not report that nothing changed or that work is still in progress.`}function reviewFingerprint(e){return e?.ownerReviewState===null||e===null?null:`${e.ownerReviewState}:${e.ownerReviewSubmittedAt??``}`}function advancePullRequestWatchNotification(e){let t=e.state.previousSnapshot,n=e.snapshot.headOid!==(t?.headOid??e.redHeadOid),r=t!==null&&reviewFingerprint(e.snapshot)!==reviewFingerprint(t),i=e.snapshot.headOid===e.redHeadOid,a=i?e.state.redHeadPolls+1:0,o=null;return n?o=`head_changed`:r?o=`owner_review_changed`:i&&!e.state.redHeadWakeSent&&a===e.staleAfterPolls&&(o=`red_head_stalled`),{state:{previousSnapshot:e.snapshot,redHeadPolls:a,redHeadWakeSent:e.state.redHeadWakeSent||o===`red_head_stalled`},wakeReason:o}}var RetryablePullRequestWatchError=class extends Error{},GitHubWatchResponseError=class extends Error{status;constructor(e,t){super(t),this.name=`GitHubWatchResponseError`,this.status=e}};function errorStatus(e){return typeof e!=`object`||!e||!(`status`in e)?null:typeof e.status==`number`?e.status:null}function shouldRefreshPullRequestWatchToken(e){return errorStatus(e)===401}function isRetryablePullRequestWatchError(e){let t=errorStatus(e);return t===429||t!==null&&t>=500||e instanceof RetryablePullRequestWatchError||e instanceof TypeError||e instanceof Error&&(/^GitHub watch (?:request|token request) failed:/u.test(e.message)||/\((?:429|5\d{2})\b/u.test(e.message))}function pullRequestWatchSnapshot(e){let t=e.reviewOwner.toLowerCase(),n=e.pullRequest.head.sha.toLowerCase(),r=e.reviews.filter(e=>e.commit_id?.toLowerCase()===n&&e.user?.login.toLowerCase()===t).at(-1);return{headOid:n,ownerApprovedCurrentHead:r?.state.toUpperCase()===`APPROVED`,ownerReviewState:r?.state.toUpperCase()??null,ownerReviewSubmittedAt:r?.submitted_at??null,state:e.pullRequest.merged?`merged`:e.pullRequest.state,url:e.pullRequest.html_url}}function repoParts(e){let[t,n]=e.split(`/`);if(t===void 0||n===void 0)throw Error(`Invalid GitHub repository: ${e}`);return{owner:t,name:n}}function repoFullName(e){let t=repoParts(e);return`${t.owner}/${t.name}`}function repoApiPath(e){let t=repoParts(e);return`/repos/${encodeURIComponent(t.owner)}/${encodeURIComponent(t.name)}`}function redactGithubToken(e,t){return t.length===0?e:e.split(t).join(`[redacted]`)}function githubHeaders(e){return{Accept:`application/vnd.github+json`,Authorization:`Bearer ${e}`,"X-GitHub-Api-Version":`2022-11-28`}}function githubTokenParams(e,t){return{authorizationDetails:[{org:e,repositories:[t],type:`github_app_installation`}],subject:{type:`app`}}}async function mintWatchToken(e){let t=extension_default.config.github;if(t===void 0)throw Error(`GitHub is not configured for this agent.`);let n=repoParts(e);if(n.owner!==t.org.toLowerCase())throw Error(`Repository ${e} is outside ${t.org}.`);let r=await getToken(t.connector,githubTokenParams(t.org,n.name));if(r.length===0)throw Error(`Connect returned an empty GitHub token for ${e}.`);return r}async function invalidateWatchToken(e){let t=extension_default.config.github;if(t===void 0)return;let n=repoParts(e);deleteTokenCacheEntry(t.connector,githubTokenParams(t.org,n.name))}async function githubJson(e,t){let n;try{n=await fetch(e,{headers:githubHeaders(t)})}catch(e){throw new RetryablePullRequestWatchError(`GitHub watch request failed: ${e instanceof Error?e.message:String(e)}`)}if(n.ok)return n.json();let r=await n.text().catch(()=>``),i=`GitHub request failed (${n.status} ${n.statusText})`+(r.length>0?`: ${redactGithubToken(r,t)}`:``);throw n.status===429||n.status>=500?new RetryablePullRequestWatchError(i):new GitHubWatchResponseError(n.status,i)}async function readPullRequestWatchSnapshotWithToken(e,t){let n=`https://api.github.com${repoApiPath(e.repo)}/pulls/${e.pullRequestNumber}`,r=PullRequestSchema.parse(await githubJson(n,t));if(r.state===`closed`||r.merged)return pullRequestWatchSnapshot({pullRequest:r,reviewOwner:e.reviewOwner,reviews:[]});let i=[];for(let r=1;r<=20;r+=1){let a=z.array(ReviewSchema).parse(await githubJson(`${n}/reviews?per_page=100&page=${r}`,t));if(i.push(...a),a.length<100)break;if(r===20)throw Error(`PR #${e.pullRequestNumber} has too many reviews to verify`)}return pullRequestWatchSnapshot({pullRequest:r,reviewOwner:e.reviewOwner,reviews:i})}async function readPullRequestWatchSnapshot(e){for(let t=0;t<2;t+=1){let n;try{n=await mintWatchToken(e.repo)}catch(e){throw isRetryablePullRequestWatchError(e)?new RetryablePullRequestWatchError(`GitHub watch token request failed: ${e instanceof Error?e.message:String(e)}`):e}try{return await readPullRequestWatchSnapshotWithToken(e,n)}catch(n){if(t>0||!shouldRefreshPullRequestWatchToken(n))throw n;await invalidateWatchToken(e.repo)}}throw Error(`Pull request watch token refresh exhausted unexpectedly.`)}export{PrwatchDeleteInputSchema,PullRequestWatchInputSchema,advancePullRequestWatchNotification,framePullRequestWatchWake,initialPullRequestWatchNotificationState,isRetryablePullRequestWatchError,pullRequestWatchSnapshot,readPullRequestWatchSnapshot,repoFullName,shouldRefreshPullRequestWatchToken};
1
+ import{z}from"#compiled/zod/index.js";import{deleteTokenCacheEntry,getToken}from"#compiled/@vercel/connect/index.js";const RepoSchema=z.string().trim().regex(/^[A-Za-z0-9-]+\/[A-Za-z0-9._-]+$/u).transform(e=>e.toLowerCase()),PullRequestWatchInputSchema=z.object({repo:RepoSchema,pullRequestNumber:z.number().int().positive(),reviewOwner:z.string().trim().min(1),redHeadOid:z.string().regex(/^[0-9a-f]{40}$/iu).transform(e=>e.toLowerCase())}),PrwatchDeleteInputSchema=z.object({repo:RepoSchema,pullRequestNumber:z.number().int().positive()}),PullRequestSchema=z.object({head:z.object({sha:z.string().min(1)}),html_url:z.string().url(),merged:z.boolean().optional().default(!1),state:z.enum([`open`,`closed`])}),ReviewSchema=z.object({commit_id:z.string().nullable(),state:z.string(),submitted_at:z.string().nullable(),user:z.object({login:z.string()}).nullable()});function initialPullRequestWatchNotificationState(){return{previousSnapshot:null,redHeadPolls:0,redHeadWakeSent:!1}}function framePullRequestWatchWake(e){return`${e}\n\nThis is an internal watch wake, not a request for a progress report. Continue any necessary work. Send a user-facing response only when the original request is complete or a new blocker requires human input. Do not report that nothing changed or that work is still in progress.`}function reviewFingerprint(e){return e?.ownerReviewState===null||e===null?null:`${e.ownerReviewState}:${e.ownerReviewSubmittedAt??``}`}function advancePullRequestWatchNotification(e){let t=e.state.previousSnapshot,n=e.snapshot.headOid!==(t?.headOid??e.redHeadOid),r=t!==null&&reviewFingerprint(e.snapshot)!==reviewFingerprint(t),i=e.snapshot.headOid===e.redHeadOid,a=i?e.state.redHeadPolls+1:0,o=null;return n?o=`head_changed`:r?o=`owner_review_changed`:i&&!e.state.redHeadWakeSent&&a===e.staleAfterPolls&&(o=`red_head_stalled`),{state:{previousSnapshot:e.snapshot,redHeadPolls:a,redHeadWakeSent:e.state.redHeadWakeSent||o===`red_head_stalled`},wakeReason:o}}var RetryablePullRequestWatchError=class extends Error{},GitHubWatchResponseError=class extends Error{status;constructor(e,t){super(t),this.name=`GitHubWatchResponseError`,this.status=e}};function errorStatus(e){return typeof e!=`object`||!e||!(`status`in e)?null:typeof e.status==`number`?e.status:null}function shouldRefreshPullRequestWatchToken(e){return errorStatus(e)===401}function isRetryablePullRequestWatchError(e){let t=errorStatus(e);return t===429||t!==null&&t>=500||e instanceof RetryablePullRequestWatchError||e instanceof TypeError||e instanceof Error&&(/^GitHub watch (?:request|token request) failed:/u.test(e.message)||/\((?:429|5\d{2})\b/u.test(e.message))}function pullRequestWatchSnapshot(e){let t=e.reviewOwner.toLowerCase(),n=e.pullRequest.head.sha.toLowerCase(),r=e.reviews.filter(e=>e.commit_id?.toLowerCase()===n&&e.user?.login.toLowerCase()===t).at(-1);return{headOid:n,ownerApprovedCurrentHead:r?.state.toUpperCase()===`APPROVED`,ownerReviewState:r?.state.toUpperCase()??null,ownerReviewSubmittedAt:r?.submitted_at??null,state:e.pullRequest.merged?`merged`:e.pullRequest.state,url:e.pullRequest.html_url}}function repoParts(e){let[t,n]=e.split(`/`);if(t===void 0||n===void 0)throw Error(`Invalid GitHub repository: ${e}`);return{owner:t,name:n}}function repoFullName(e){let t=repoParts(e);return`${t.owner}/${t.name}`}function repoApiPath(e){let t=repoParts(e);return`/repos/${encodeURIComponent(t.owner)}/${encodeURIComponent(t.name)}`}function redactGithubToken(e,t){return t.length===0?e:e.split(t).join(`[redacted]`)}function githubHeaders(e){return{Accept:`application/vnd.github+json`,Authorization:`Bearer ${e}`,"X-GitHub-Api-Version":`2022-11-28`}}function githubTokenParams(e,t){return{authorizationDetails:[{org:e,repositories:[t],type:`github_app_installation`}],subject:{type:`app`}}}async function mintWatchToken(e,t){let n=repoParts(e);if(n.owner!==t.org.toLowerCase())throw Error(`Repository ${e} is outside ${t.org}.`);let r=await getToken(t.connector,githubTokenParams(t.org,n.name));if(r.length===0)throw Error(`Connect returned an empty GitHub token for ${e}.`);return r}async function invalidateWatchToken(e,t){let n=repoParts(e);deleteTokenCacheEntry(t.connector,githubTokenParams(t.org,n.name))}async function githubJson(e,t){let n;try{n=await fetch(e,{headers:githubHeaders(t)})}catch(e){throw new RetryablePullRequestWatchError(`GitHub watch request failed: ${e instanceof Error?e.message:String(e)}`)}if(n.ok)return n.json();let r=await n.text().catch(()=>``),i=`GitHub request failed (${n.status} ${n.statusText})`+(r.length>0?`: ${redactGithubToken(r,t)}`:``);throw n.status===429||n.status>=500?new RetryablePullRequestWatchError(i):new GitHubWatchResponseError(n.status,i)}async function readPullRequestWatchSnapshotWithToken(e,t){let n=`https://api.github.com${repoApiPath(e.repo)}/pulls/${e.pullRequestNumber}`,r=PullRequestSchema.parse(await githubJson(n,t));if(r.state===`closed`||r.merged)return pullRequestWatchSnapshot({pullRequest:r,reviewOwner:e.reviewOwner,reviews:[]});let i=[];for(let r=1;r<=20;r+=1){let a=z.array(ReviewSchema).parse(await githubJson(`${n}/reviews?per_page=100&page=${r}`,t));if(i.push(...a),a.length<100)break;if(r===20)throw Error(`PR #${e.pullRequestNumber} has too many reviews to verify`)}return pullRequestWatchSnapshot({pullRequest:r,reviewOwner:e.reviewOwner,reviews:i})}async function readPullRequestWatchSnapshot(e,t){for(let n=0;n<2;n+=1){let r;try{r=await mintWatchToken(e.repo,t)}catch(e){throw isRetryablePullRequestWatchError(e)?new RetryablePullRequestWatchError(`GitHub watch token request failed: ${e instanceof Error?e.message:String(e)}`):e}try{return await readPullRequestWatchSnapshotWithToken(e,r)}catch(r){if(n>0||!shouldRefreshPullRequestWatchToken(r))throw r;await invalidateWatchToken(e.repo,t)}}throw Error(`Pull request watch token refresh exhausted unexpectedly.`)}export{PrwatchDeleteInputSchema,PullRequestWatchInputSchema,advancePullRequestWatchNotification,framePullRequestWatchWake,initialPullRequestWatchNotificationState,isRetryablePullRequestWatchError,pullRequestWatchSnapshot,readPullRequestWatchSnapshot,repoFullName,shouldRefreshPullRequestWatchToken};
@@ -1 +1 @@
1
- import{shellQuote}from"./shell.js";import{resolveWorkspaceDirectory}from"./workspace-root.js";async function validateRepositoryRoot(e,t){let n=await resolveWorkspaceDirectory(e,t),r=await e.run({command:`git -C ${shellQuote(n)} rev-parse --show-toplevel`});if(r.exitCode!==0||r.stdout.trim()!==n)throw Error(`root is not a git work tree root: ${t}`);return n}export{validateRepositoryRoot};
1
+ import{shellQuote}from"./shell.js";import{workspace_root_exports}from"./workspace-root.js";async function validateRepositoryRoot(e,t){let n=await(0,workspace_root_exports.resolveWorkspaceDirectory)(e,t),r=await e.run({command:`git -C ${shellQuote(n)} rev-parse --show-toplevel`});if(r.exitCode!==0||r.stdout.trim()!==n)throw Error(`root is not a git work tree root: ${t}`);return n}export{validateRepositoryRoot};
@@ -8,7 +8,3 @@ export declare function installCodeTooling(sandbox: ToolingSandbox, options?: {
8
8
  readonly vercel?: boolean;
9
9
  }): Promise<void>;
10
10
  export { authenticateGitHub, authenticateVercel, type BrokeredCredentialOptions, } from "./credentials.ts";
11
- /** @deprecated Import from `eve/computer-use/sandbox` and mount `eve/computer-use`. */
12
- export { COMPUTER_USE_REVALIDATION_KEY, installComputerUse, startComputerUse, } from "eve/computer-use/sandbox";
13
- /** @deprecated Import from `eve/extensions/git/sandbox`. */
14
- export { executeGitHubShell, githubShellApproval, type GitHubLeaseRule, type GitHubShellInput, type GitHubShellOutput, } from "eve/extensions/git/sandbox";
@@ -1,2 +1,2 @@
1
- import{DIAGNOSTICS_WORKER_SOURCE,GH_SIGNED_COMMIT_SOURCE,GH_SIGNED_COMMIT_VERSION,TYPESCRIPT_VERSION,ghWrapperSource,toolingPaths,typescriptInstallCommand,vercelWrapperSource}from"./tooling.js";import{authenticateGitHub,authenticateVercel}from"./credentials.js";import{commandFailureDetail}from"./command-failure.js";import{executeGitHubShell,githubShellApproval}from"eve/extensions/git/sandbox";import{COMPUTER_USE_REVALIDATION_KEY,installComputerUse,startComputerUse}from"eve/computer-use/sandbox";const CODE_TOOLING_REVALIDATION_KEY=`eve-code-tooling:3:${GH_SIGNED_COMMIT_VERSION}:${TYPESCRIPT_VERSION}`;async function installCodeTooling(e,t={}){let n=toolingPaths(e);await Promise.all([e.writeTextFile({path:n.ghWrapper,content:ghWrapperSource(e)}),e.writeTextFile({path:n.signedCommit,content:GH_SIGNED_COMMIT_SOURCE}),e.writeTextFile({path:n.workerSource,content:DIAGNOSTICS_WORKER_SOURCE}),...t.vercel===!0?[e.writeTextFile({path:n.vercelWrapper,content:vercelWrapperSource(e)})]:[]]);let r=await e.run({command:toolingInstallCommand(e,t.vercel===!0)});if(r.exitCode!==0)throw Error(`eve-code tooling installation failed (exit ${r.exitCode}): ${commandFailureDetail(r)}`)}function toolingInstallCommand(e,t){let n=toolingPaths(e),quote=e=>`'${e.replaceAll(`'`,`'"'"'`)}'`;return[`set -e`,`mkdir -p ${quote(n.root)}`,`if ! command -v gh >/dev/null 2>&1; then`,` command -v apt-get >/dev/null 2>&1 || { echo 'eve-code requires gh or apt-get' >&2; exit 1; }`,` if [ "$(id -u)" = 0 ]; then APT=apt-get; else command -v sudo >/dev/null 2>&1 || { echo 'eve-code needs root or sudo to install gh' >&2; exit 1; }; APT='sudo -n apt-get'; fi`,` $APT update && $APT install -y gh`,`fi`,`chmod 755 ${quote(n.ghWrapper)} ${quote(n.signedCommit)}`,`if [ "$(id -u)" = 0 ]; then INSTALL=install; else INSTALL='sudo -n install'; fi`,`$INSTALL -d -o root -g root -m 755 ${quote(n.trustedRoot)} ${quote(n.typescriptRoot)}`,`[ -x /usr/bin/gh ] || { echo 'eve-code requires gh at /usr/bin/gh' >&2; exit 1; }`,`$INSTALL -m 755 /usr/bin/gh ${quote(n.ghReal)}`,`$INSTALL -m 755 ${quote(n.signedCommit)} ${quote(n.trustedSignedCommit)}`,`$INSTALL -m 644 ${quote(n.workerSource)} ${quote(n.worker)}`,`$INSTALL -m 755 ${quote(n.ghWrapper)} /usr/local/bin/gh`,`$INSTALL -m 755 ${quote(n.trustedSignedCommit)} /usr/local/bin/gh-signed-commit`,typescriptInstallCommand(e),...t?[`if [ "$(id -u)" = 0 ]; then npm install -g vercel@latest; else sudo -n npm install -g vercel@latest; fi`,`$INSTALL -m 755 ${quote(n.vercelWrapper)} /usr/local/bin/vercel`,`$INSTALL -m 755 ${quote(n.vercelWrapper)} /usr/local/bin/vc`]:[]].join(`
2
- `)}export{CODE_TOOLING_REVALIDATION_KEY,COMPUTER_USE_REVALIDATION_KEY,authenticateGitHub,authenticateVercel,executeGitHubShell,githubShellApproval,installCodeTooling,installComputerUse,startComputerUse};
1
+ import{DIAGNOSTICS_WORKER_SOURCE,GH_SIGNED_COMMIT_SOURCE,GH_SIGNED_COMMIT_VERSION,TYPESCRIPT_VERSION,ghWrapperSource,toolingPaths,typescriptInstallCommand,vercelWrapperSource}from"./tooling.js";import{authenticateGitHub,authenticateVercel}from"./credentials.js";import{commandFailureDetail}from"./command-failure.js";const CODE_TOOLING_REVALIDATION_KEY=`eve-code-tooling:3:${GH_SIGNED_COMMIT_VERSION}:${TYPESCRIPT_VERSION}`;async function installCodeTooling(e,t={}){let n=toolingPaths(e);await Promise.all([e.writeTextFile({path:n.ghWrapper,content:ghWrapperSource(e)}),e.writeTextFile({path:n.signedCommit,content:GH_SIGNED_COMMIT_SOURCE}),e.writeTextFile({path:n.workerSource,content:DIAGNOSTICS_WORKER_SOURCE}),...t.vercel===!0?[e.writeTextFile({path:n.vercelWrapper,content:vercelWrapperSource(e)})]:[]]);let r=await e.run({command:toolingInstallCommand(e,t.vercel===!0)});if(r.exitCode!==0)throw Error(`eve-code tooling installation failed (exit ${r.exitCode}): ${commandFailureDetail(r)}`)}function toolingInstallCommand(e,t){let n=toolingPaths(e),quote=e=>`'${e.replaceAll(`'`,`'"'"'`)}'`;return[`set -e`,`mkdir -p ${quote(n.root)}`,`if ! command -v gh >/dev/null 2>&1; then`,` command -v apt-get >/dev/null 2>&1 || { echo 'eve-code requires gh or apt-get' >&2; exit 1; }`,` if [ "$(id -u)" = 0 ]; then APT=apt-get; else command -v sudo >/dev/null 2>&1 || { echo 'eve-code needs root or sudo to install gh' >&2; exit 1; }; APT='sudo -n apt-get'; fi`,` $APT update && $APT install -y gh`,`fi`,`chmod 755 ${quote(n.ghWrapper)} ${quote(n.signedCommit)}`,`if [ "$(id -u)" = 0 ]; then INSTALL=install; else INSTALL='sudo -n install'; fi`,`$INSTALL -d -o root -g root -m 755 ${quote(n.trustedRoot)} ${quote(n.typescriptRoot)}`,`[ -x /usr/bin/gh ] || { echo 'eve-code requires gh at /usr/bin/gh' >&2; exit 1; }`,`$INSTALL -m 755 /usr/bin/gh ${quote(n.ghReal)}`,`$INSTALL -m 755 ${quote(n.signedCommit)} ${quote(n.trustedSignedCommit)}`,`$INSTALL -m 644 ${quote(n.workerSource)} ${quote(n.worker)}`,`$INSTALL -m 755 ${quote(n.ghWrapper)} /usr/local/bin/gh`,`$INSTALL -m 755 ${quote(n.trustedSignedCommit)} /usr/local/bin/gh-signed-commit`,typescriptInstallCommand(e),...t?[`if [ "$(id -u)" = 0 ]; then npm install -g vercel@latest; else sudo -n npm install -g vercel@latest; fi`,`$INSTALL -m 755 ${quote(n.vercelWrapper)} /usr/local/bin/vercel`,`$INSTALL -m 755 ${quote(n.vercelWrapper)} /usr/local/bin/vc`]:[]].join(`
2
+ `)}export{CODE_TOOLING_REVALIDATION_KEY,authenticateGitHub,authenticateVercel,installCodeTooling};
@@ -1,5 +1,5 @@
1
1
  import type { SandboxSession } from "eve/sandbox";
2
- import { GH_SIGNED_COMMIT_SOURCE, GH_SIGNED_COMMIT_VERSION } from "eve/extensions/git/sandbox";
2
+ import { GH_SIGNED_COMMIT_SOURCE, GH_SIGNED_COMMIT_VERSION } from "eve/internal/git";
3
3
  export { GH_SIGNED_COMMIT_SOURCE, GH_SIGNED_COMMIT_VERSION };
4
4
  export declare const TYPESCRIPT_VERSION = "6.0.3";
5
5
  export declare function toolingPaths(sandbox: Pick<SandboxSession, "resolvePath">): {
@@ -1,4 +1,4 @@
1
- import{shellQuote}from"./shell.js";import{GH_SIGNED_COMMIT_SOURCE,GH_SIGNED_COMMIT_VERSION,GITHUB_TOOLING_PATHS}from"eve/extensions/git/sandbox";const TYPESCRIPT_VERSION=`6.0.3`,TRUSTED_TOOLING_ROOT=`/usr/local/lib/eve-code`,TYPESCRIPT_MODULE=`${TRUSTED_TOOLING_ROOT}/typescript/node_modules/typescript/lib/typescript.js`;function toolingPaths(e){let t=e.resolvePath(`.eve-code`),n=TRUSTED_TOOLING_ROOT;return{root:t,trustedRoot:n,env:`${t}/env`,ghReal:GITHUB_TOOLING_PATHS.ghReal,ghWrapper:`${t}/gh`,vercelWrapper:`${t}/vercel`,signedCommit:`${t}/gh-signed-commit`,trustedSignedCommit:GITHUB_TOOLING_PATHS.trustedSignedCommit,typescriptRoot:`${n}/typescript`,typescriptModule:TYPESCRIPT_MODULE,workerSource:`${t}/diagnostics.cjs`,worker:`${n}/diagnostics.cjs`}}function ghWrapperSource(e){let t=toolingPaths(e);return`#!/usr/bin/env bash\nset -euo pipefail\n[[ ! -f ${JSON.stringify(t.env)} ]] || source ${JSON.stringify(t.env)}\nexport GH_TOKEN="\${GH_TOKEN:-ghp_000000000000000000000000000000000000}"\nexec ${JSON.stringify(t.ghReal)} "$@"\n`}function vercelWrapperSource(e){let t=toolingPaths(e);return`#!/usr/bin/env bash\nset -euo pipefail\n[[ ! -f ${JSON.stringify(t.env)} ]] || source ${JSON.stringify(t.env)}\nexport VERCEL_TOKEN="\${VERCEL_TOKEN:-eve-code-firewall-placeholder}"\nexec node "$(npm root -g)/vercel/dist/index.js" "$@"\n`}function typescriptInstallCommand(e){let{typescriptRoot:t}=toolingPaths(e),n=`${t}/npmrc`,r=[`set -e`,`cd ${shellQuote(t)}`,`umask 022`,`: > ${shellQuote(n)}`,`npm install --prefix ${shellQuote(t)} --ignore-scripts --no-audit --no-fund typescript@${TYPESCRIPT_VERSION}`,`chmod -R go-w ${shellQuote(t)}`].join(`
1
+ import{shellQuote}from"./shell.js";import{GH_SIGNED_COMMIT_SOURCE,GH_SIGNED_COMMIT_VERSION,GITHUB_TOOLING_PATHS}from"eve/internal/git";const TYPESCRIPT_VERSION=`6.0.3`,TRUSTED_TOOLING_ROOT=`/usr/local/lib/eve-code`,TYPESCRIPT_MODULE=`${TRUSTED_TOOLING_ROOT}/typescript/node_modules/typescript/lib/typescript.js`;function toolingPaths(e){let t=e.resolvePath(`.eve-code`),n=TRUSTED_TOOLING_ROOT;return{root:t,trustedRoot:n,env:`${t}/env`,ghReal:GITHUB_TOOLING_PATHS.ghReal,ghWrapper:`${t}/gh`,vercelWrapper:`${t}/vercel`,signedCommit:`${t}/gh-signed-commit`,trustedSignedCommit:GITHUB_TOOLING_PATHS.trustedSignedCommit,typescriptRoot:`${n}/typescript`,typescriptModule:TYPESCRIPT_MODULE,workerSource:`${t}/diagnostics.cjs`,worker:`${n}/diagnostics.cjs`}}function ghWrapperSource(e){let t=toolingPaths(e);return`#!/usr/bin/env bash\nset -euo pipefail\n[[ ! -f ${JSON.stringify(t.env)} ]] || source ${JSON.stringify(t.env)}\nexport GH_TOKEN="\${GH_TOKEN:-ghp_000000000000000000000000000000000000}"\nexec ${JSON.stringify(t.ghReal)} "$@"\n`}function vercelWrapperSource(e){let t=toolingPaths(e);return`#!/usr/bin/env bash\nset -euo pipefail\n[[ ! -f ${JSON.stringify(t.env)} ]] || source ${JSON.stringify(t.env)}\nexport VERCEL_TOKEN="\${VERCEL_TOKEN:-eve-code-firewall-placeholder}"\nexec node "$(npm root -g)/vercel/dist/index.js" "$@"\n`}function typescriptInstallCommand(e){let{typescriptRoot:t}=toolingPaths(e),n=`${t}/npmrc`,r=[`set -e`,`cd ${shellQuote(t)}`,`umask 022`,`: > ${shellQuote(n)}`,`npm install --prefix ${shellQuote(t)} --ignore-scripts --no-audit --no-fund typescript@${TYPESCRIPT_VERSION}`,`chmod -R go-w ${shellQuote(t)}`].join(`
2
2
  `),i=`/usr/bin/env -i HOME=/root PATH=/usr/local/bin:/usr/bin:/bin NPM_CONFIG_USERCONFIG=/dev/null NPM_CONFIG_GLOBALCONFIG=${shellQuote(n)} NPM_CONFIG_REGISTRY=https://registry.npmjs.org /bin/sh -c ${shellQuote(r)}`;return`if [ "$(id -u)" = 0 ]; then ${i}; else sudo -n ${i}; fi`}const DIAGNOSTICS_WORKER_SOURCE=String.raw`const fs = require("node:fs");
3
3
  const path = require("node:path");
4
4
 
@@ -1,31 +1 @@
1
- /**
2
- * The single containment check for sandbox paths that tools read or write.
3
- * The workspace root differs by provider (`/workspace`, `/app`, ...), so the
4
- * boundary is the real path of `resolvePath("")`, never a literal prefix.
5
- */
6
- export interface WorkspaceSandbox {
7
- resolvePath(path: string): string;
8
- run(input: {
9
- abortSignal?: AbortSignal;
10
- command: string;
11
- }): PromiseLike<{
12
- exitCode: number;
13
- stderr: string;
14
- stdout: string;
15
- }>;
16
- }
17
- /** NUL-delimited output keeps paths that contain newlines unambiguous. */
18
- export declare function sandboxRealPath(sandbox: WorkspaceSandbox, path: string, label: string, abortSignal?: AbortSignal): Promise<string>;
19
- /**
20
- * Resolves `path` (default: the workspace root) to a real path inside the real
21
- * workspace. Symlinks are followed before the check, so a link cannot escape.
22
- */
23
- export declare function resolveInWorkspace(sandbox: WorkspaceSandbox, path: string | undefined, label: string, abortSignal?: AbortSignal): Promise<{
24
- readonly path: string;
25
- readonly workspace: string;
26
- }>;
27
- /**
28
- * An absolute directory inside the workspace (default: the workspace root).
29
- * Git is not required; `validateRepositoryRoot` adds that check.
30
- */
31
- export declare function resolveWorkspaceDirectory(sandbox: WorkspaceSandbox, root?: string): Promise<string>;
1
+ export * from "eve/internal/workspace";
@@ -1 +1 @@
1
- import{shellQuote}from"./shell.js";async function sandboxRealPath(e,t,n,r){let i=await e.run({abortSignal:r,command:`realpath -e -z -- ${shellQuote(t)}`});if(i.exitCode!==0){let e=i.stderr.trim()||i.stdout.trim()||`no command output`;throw Error(`${n} could not be resolved: ${e.slice(0,2e3)}`)}let a=i.stdout.endsWith(`\0`)?i.stdout.slice(0,-1):i.stdout;if(a.length===0||a.includes(`\0`))throw Error(`${n} returned an invalid realpath`);return a}async function resolveInWorkspace(e,t,n,r){let i=await sandboxRealPath(e,e.resolvePath(``),`sandbox workspace`,r);if(t===void 0)return{path:i,workspace:i};let a=await sandboxRealPath(e,t,n,r);if(!(i===`/`||a===i||a.startsWith(`${i}/`)))throw Error(`${n} resolves outside the workspace ${i}: ${a}`);return{path:a,workspace:i}}async function resolveWorkspaceDirectory(e,t){if(t!==void 0&&!t.startsWith(`/`))throw Error(`root must be an absolute sandbox path`);return(await resolveInWorkspace(e,t,`root`)).path}export{resolveInWorkspace,resolveWorkspaceDirectory,sandboxRealPath};
1
+ import{__exportAll,__reExport}from"../../../../_virtual/_rolldown/runtime.js";export*from"eve/internal/workspace";var workspace_root_exports=__exportAll({});import*as import_eve_internal_workspace from"eve/internal/workspace";__reExport(workspace_root_exports,import_eve_internal_workspace);export{workspace_root_exports};
@@ -10,7 +10,7 @@ declare const _default: import("eve").DefinedAgent<{
10
10
  };
11
11
  };
12
12
  } | undefined;
13
- }>;
13
+ }, import("eve").DynamicModelContext>;
14
14
  reasoning: "xhigh";
15
15
  defaultTools: false;
16
16
  }>;
@@ -1 +1 @@
1
- import extension_default from"../../extension.js";import{defineAgent,defineDynamic}from"eve";var agent_default=defineAgent({description:`Another mind for one scoped slice. Give it a self-contained question and choose the lifetime: keep it and send deltas when it should own the slice end to end, or ask once. It can see the shared tree. You remain the arbiter and keep the writes.`,model:defineDynamic({events:{"session.started":()=>{let e=extension_default.config.worker??{model:`openai/gpt-5.6-terra-fast`,reasoning:`xhigh`};return{model:e.model,reasoning:e.reasoning,modelOptions:e.openaiReasoningEffort===void 0?void 0:{providerOptions:{openai:{reasoningEffort:e.openaiReasoningEffort}}}}}}}),reasoning:`xhigh`,defaultTools:!1});export{agent_default as default};
1
+ import extension_default from"../../extension.js";import{defineAgent,defineDynamic}from"eve";var agent_default=defineAgent({description:`Another mind for one scoped slice. Give it a self-contained question and choose the lifetime: keep it and send deltas when it should own the slice end to end, or ask once. It can see the shared tree. You remain the arbiter and keep the writes.`,model:defineDynamic(()=>{let e=extension_default.config.worker??{model:`openai/gpt-5.6-terra-fast`,reasoning:`xhigh`};return{model:e.model,reasoning:e.reasoning,modelOptions:e.openaiReasoningEffort===void 0?void 0:{providerOptions:{openai:{reasoningEffort:e.openaiReasoningEffort}}}}}),reasoning:`xhigh`,defaultTools:!1});export{agent_default as default};
@@ -1,2 +1,2 @@
1
- import{onlyNewTypeDiagnostics,runPostEditDiagnostics,runTypeScriptDiagnostics}from"../lib/diagnostics.js";import{findGeneratedPatchTargets,generatedPatchTargetsError}from"../lib/generated-paths.js";import{resolveWorkspaceDirectory}from"../lib/workspace-root.js";import{applyPatchToSandbox}from"../lib/patch.js";import{z}from"#compiled/zod/index.js";import{defineTool}from"eve/tools";import{never}from"eve/tools/approval";const DiagnosticSchema=z.object({check:z.enum([`git-diff`,`syntax`,`typescript`,`whitespace`]),code:z.number().int().optional(),column:z.number().int().optional(),line:z.number().int().optional(),message:z.string(),path:z.string().optional()});var apply_patch_default=defineTool({description:[`Apply targeted changes to files in the sandbox workspace. No git checkout is required.`,`Use this instead of rewriting complete files or writing through bash.`,`Write small hunks against current file contents. If a hunk misses, re-read that file and rewrite only the failed hunk. Do not retry the same patch text.`,`The patch is fully parsed and every source file is verified before any write.`,`After writing, the tool runs bounded whitespace, syntax, and TypeScript checks and`,`returns only diagnostics the patch introduced.`,`Patch format:`,`*** Begin Patch`,`*** Add File: path (every content line starts with +)`,`*** Update File: path (optional *** Move to: new-path, followed by @@ chunks)`,`*** Delete File: path`,`*** End Patch`,`Paths are relative to root and may not escape it.`,`Generated files (lockfiles, dist/, vendor-compiled/) are rejected: change them`,`through the command that generates them, never through a patch.`].join(`
2
- `),approval:never(),label:{start:({root:e})=>`Patch ${e??`workspace`}`},inputSchema:z.object({root:z.string().min(1).optional().describe(`absolute directory inside the sandbox workspace that patch paths are relative to; defaults to the workspace root`),patchText:z.string().min(1).max(5e5).describe(`complete *** Begin Patch text`)}),outputSchema:z.object({diagnostics:z.array(DiagnosticSchema),files:z.array(z.object({operation:z.enum([`add`,`delete`,`move`,`update`]),path:z.string(),previousPath:z.string().optional()}))}),async execute({root:e,patchText:t},n){let r=findGeneratedPatchTargets(t);if(r.length>0)throw Error(generatedPatchTargetsError(r));let i=await n.getSandbox(),a=await resolveWorkspaceDirectory(i,e),o=[],s=new Map,c=await applyPatchToSandbox({async beforeCommit(e){for(let t of e)s.set(t.path,t.previousContent);o=await runTypeScriptDiagnostics({paths:e.filter(e=>e.operation===`update`).map(e=>e.path),patchRoot:a,sandbox:i})},patchText:t,patchRoot:a,sandbox:i,sessionId:n.session.id}),l=c.filter(e=>e.operation!==`delete`).map(e=>e.path),u=c.filter(e=>e.operation===`add`||e.operation===`move`).map(e=>e.path),d=[...c.filter(e=>e.operation===`delete`).map(e=>e.path),...c.flatMap(e=>e.operation===`move`&&e.previousPath!==void 0?[e.previousPath]:[])];return{diagnostics:onlyNewTypeDiagnostics(await runPostEditDiagnostics({addedPaths:u,changedPaths:l,deletedPaths:d,patchRoot:a,previousContents:s,sandbox:i}),o),files:c}}});export{apply_patch_default as default};
1
+ import{onlyNewTypeDiagnostics,runPostEditDiagnostics,runTypeScriptDiagnostics}from"../lib/diagnostics.js";import{findGeneratedPatchTargets,generatedPatchTargetsError}from"../lib/generated-paths.js";import{applyPatchToSandbox}from"../lib/patch.js";import{workspace_root_exports}from"../lib/workspace-root.js";import{z}from"#compiled/zod/index.js";import{defineTool}from"eve/tools";import{never}from"eve/tools/approval";const DiagnosticSchema=z.object({check:z.enum([`git-diff`,`syntax`,`typescript`,`whitespace`]),code:z.number().int().optional(),column:z.number().int().optional(),line:z.number().int().optional(),message:z.string(),path:z.string().optional()});var apply_patch_default=defineTool({description:[`Apply targeted changes to files in the sandbox workspace. No git checkout is required.`,`Use this instead of rewriting complete files or writing through bash.`,`Write small hunks against current file contents. If a hunk misses, re-read that file and rewrite only the failed hunk. Do not retry the same patch text.`,`The patch is fully parsed and every source file is verified before any write.`,`After writing, the tool runs bounded whitespace, syntax, and TypeScript checks and`,`returns only diagnostics the patch introduced.`,`Patch format:`,`*** Begin Patch`,`*** Add File: path (every content line starts with +)`,`*** Update File: path (optional *** Move to: new-path, followed by @@ chunks)`,`*** Delete File: path`,`*** End Patch`,`Paths are relative to root and may not escape it.`,`Generated files (lockfiles, dist/, vendor-compiled/) are rejected: change them`,`through the command that generates them, never through a patch.`].join(`
2
+ `),approval:never(),label:{start:({root:e})=>`Patch ${e??`workspace`}`},inputSchema:z.object({root:z.string().min(1).optional().describe(`absolute directory inside the sandbox workspace that patch paths are relative to; defaults to the workspace root`),patchText:z.string().min(1).max(5e5).describe(`complete *** Begin Patch text`)}),outputSchema:z.object({diagnostics:z.array(DiagnosticSchema),files:z.array(z.object({operation:z.enum([`add`,`delete`,`move`,`update`]),path:z.string(),previousPath:z.string().optional()}))}),async execute({root:e,patchText:t},n){let r=findGeneratedPatchTargets(t);if(r.length>0)throw Error(generatedPatchTargetsError(r));let i=await n.getSandbox(),a=await(0,workspace_root_exports.resolveWorkspaceDirectory)(i,e),o=[],s=new Map,c=await applyPatchToSandbox({async beforeCommit(e){for(let t of e)s.set(t.path,t.previousContent);o=await runTypeScriptDiagnostics({paths:e.filter(e=>e.operation===`update`).map(e=>e.path),patchRoot:a,sandbox:i})},patchText:t,patchRoot:a,sandbox:i,sessionId:n.session.id}),l=c.filter(e=>e.operation!==`delete`).map(e=>e.path),u=c.filter(e=>e.operation===`add`||e.operation===`move`).map(e=>e.path),d=[...c.filter(e=>e.operation===`delete`).map(e=>e.path),...c.flatMap(e=>e.operation===`move`&&e.previousPath!==void 0?[e.previousPath]:[])];return{diagnostics:onlyNewTypeDiagnostics(await runPostEditDiagnostics({addedPaths:u,changedPaths:l,deletedPaths:d,patchRoot:a,previousContents:s,sandbox:i}),o),files:c}}});export{apply_patch_default as default};