eve 0.83.3 → 0.84.1

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 (1595) hide show
  1. package/CHANGELOG.md +57 -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 +7 -4
  36. package/dist/src/channel/cross-channel-receive.js +1 -1
  37. package/dist/src/channel/delivery-idempotency.d.ts +6 -0
  38. package/dist/src/channel/delivery-idempotency.js +1 -1
  39. package/dist/src/channel/delivery-metadata.d.ts +2 -2
  40. package/dist/src/channel/delivery.d.ts +8 -0
  41. package/dist/src/channel/delivery.js +1 -0
  42. package/dist/src/channel/interaction-prompts.d.ts +54 -0
  43. package/dist/src/channel/interaction-prompts.js +1 -0
  44. package/dist/src/channel/invoke-tool.d.ts +11 -18
  45. package/dist/src/channel/pending-authorization.d.ts +3 -14
  46. package/dist/src/channel/pending-authorization.js +1 -1
  47. package/dist/src/channel/prompt-queue.d.ts +11 -19
  48. package/dist/src/channel/prompt-queue.js +1 -1
  49. package/dist/src/channel/resolve-text.d.ts +11 -18
  50. package/dist/src/channel/resolve-text.js +2 -2
  51. package/dist/src/channel/resolved-prompt.d.ts +7 -5
  52. package/dist/src/channel/resolved-prompt.js +1 -1
  53. package/dist/src/channel/routes.d.ts +4 -4
  54. package/dist/src/channel/schedule.d.ts +2 -2
  55. package/dist/src/channel/schedule.js +1 -1
  56. package/dist/src/channel/send-input.d.ts +3 -3
  57. package/dist/src/channel/send-input.js +1 -1
  58. package/dist/src/channel/session-callback.js +1 -1
  59. package/dist/src/channel/session-not-active-error.d.ts +8 -12
  60. package/dist/src/channel/session-not-active-error.js +1 -1
  61. package/dist/src/channel/session.d.ts +33 -59
  62. package/dist/src/channel/session.js +1 -1
  63. package/dist/src/channel/sign-in.d.ts +61 -0
  64. package/dist/src/channel/sign-in.js +3 -0
  65. package/dist/src/channel/surface.d.ts +44 -0
  66. package/dist/src/channel/surface.js +1 -0
  67. package/dist/src/channel/task-card.d.ts +24 -114
  68. package/dist/src/channel/task-card.js +1 -1
  69. package/dist/src/channel/types.d.ts +118 -110
  70. package/dist/src/channel/types.js +1 -1
  71. package/dist/src/chunks/use-eve-agent-DMeP0JOF.js +5046 -0
  72. package/dist/src/chunks/use-eve-agent-DP5Rso9C.js +5093 -0
  73. package/dist/src/cli/commands/init.js +1 -1
  74. package/dist/src/cli/commands/logs-events.d.ts +2 -0
  75. package/dist/src/cli/commands/logs-events.js +2 -2
  76. package/dist/src/cli/dev/command.js +1 -1
  77. package/dist/src/cli/dev/remote-print.d.ts +8 -0
  78. package/dist/src/cli/dev/remote-print.js +1 -0
  79. package/dist/src/cli/dev/tui/conversation-view.d.ts +24 -19
  80. package/dist/src/cli/dev/tui/conversation-view.js +1 -1
  81. package/dist/src/cli/dev/tui/diagnostic-presentation.d.ts +0 -10
  82. package/dist/src/cli/dev/tui/diagnostic-presentation.js +2 -3
  83. package/dist/src/cli/dev/tui/errors.d.ts +9 -65
  84. package/dist/src/cli/dev/tui/errors.js +1 -1
  85. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  86. package/dist/src/cli/dev/tui/runner.js +3 -3
  87. package/dist/src/cli/dev/tui/task-records.d.ts +3 -3
  88. package/dist/src/cli/dev/tui/task-records.js +1 -1
  89. package/dist/src/cli/dev/tui/terminal-renderer.js +10 -10
  90. package/dist/src/cli/dev/tui/terminal-tool-part.d.ts +2 -2
  91. package/dist/src/cli/dev/tui/terminal-tool-part.js +1 -1
  92. package/dist/src/cli/dev/tui/test/fake-eve-server.d.ts +3 -3
  93. package/dist/src/cli/dev/tui/test/fake-eve-server.js +1 -1
  94. package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
  95. package/dist/src/cli/dev/tui/transcript-parts.d.ts +16 -16
  96. package/dist/src/cli/dev/tui/transcript-parts.js +3 -3
  97. package/dist/src/cli/dev/tui/transcript.d.ts +0 -4
  98. package/dist/src/cli/dev/tui/transcript.js +1 -1
  99. package/dist/src/cli/dev/tui/tui.js +1 -1
  100. package/dist/src/cli/run.d.ts +0 -2
  101. package/dist/src/cli/run.js +1 -1
  102. package/dist/src/cli/telemetry/index.js +1 -1
  103. package/dist/src/client/agent-base-url.d.ts +4 -0
  104. package/dist/src/client/agent-base-url.js +1 -0
  105. package/dist/src/client/agent-info-schema.d.ts +1 -923
  106. package/dist/src/client/agent-info-schema.js +1 -1
  107. package/dist/src/client/agent-info-types.d.ts +281 -0
  108. package/dist/src/client/agent-session.d.ts +19 -22
  109. package/dist/src/client/agent-session.js +1 -1
  110. package/dist/src/client/agent-stream-follower.d.ts +11 -20
  111. package/dist/src/client/agent-stream-follower.js +1 -1
  112. package/dist/src/client/client-error.d.ts +2 -1
  113. package/dist/src/client/client-error.js +1 -1
  114. package/dist/src/client/client.d.ts +1 -1
  115. package/dist/src/client/client.js +1 -1
  116. package/dist/src/client/conversation-client.d.ts +37 -28
  117. package/dist/src/client/conversation-client.js +1 -1
  118. package/dist/src/client/conversation-state.d.ts +70 -73
  119. package/dist/src/client/conversation-state.js +1 -1
  120. package/dist/src/client/conversation.d.ts +51 -0
  121. package/dist/src/client/conversation.js +1 -0
  122. package/dist/src/client/delivery-events.d.ts +3 -0
  123. package/dist/src/client/delivery-events.js +1 -0
  124. package/dist/src/client/delivery.d.ts +38 -0
  125. package/dist/src/client/delivery.js +1 -0
  126. package/dist/src/client/file-parts.d.ts +9 -4
  127. package/dist/src/client/file-parts.js +1 -1
  128. package/dist/src/client/health-schema.d.ts +1 -1
  129. package/dist/src/client/health-types.d.ts +6 -0
  130. package/dist/src/client/index.d.ts +17 -23
  131. package/dist/src/client/index.js +1 -1
  132. package/dist/src/client/message-types.d.ts +92 -0
  133. package/dist/src/client/message-types.js +1 -0
  134. package/dist/src/client/messages.d.ts +30 -0
  135. package/dist/src/client/messages.js +1 -0
  136. package/dist/src/client/ndjson.d.ts +6 -11
  137. package/dist/src/client/ndjson.js +3 -3
  138. package/dist/src/client/open-stream.d.ts +47 -20
  139. package/dist/src/client/open-stream.js +1 -1
  140. package/dist/src/client/optimistic-message-submissions.d.ts +10 -18
  141. package/dist/src/client/optimistic-message-submissions.js +1 -1
  142. package/dist/src/client/session-controls.d.ts +23 -26
  143. package/dist/src/client/session-controls.js +1 -1
  144. package/dist/src/client/session-event-stream.d.ts +5 -16
  145. package/dist/src/client/session-event-stream.js +1 -1
  146. package/dist/src/client/session-store-helpers.d.ts +8 -0
  147. package/dist/src/client/session-store-helpers.js +2 -0
  148. package/dist/src/client/session-store-state.d.ts +80 -0
  149. package/dist/src/client/session-store-state.js +1 -0
  150. package/dist/src/client/session-store.d.ts +48 -0
  151. package/dist/src/client/session-store.js +1 -0
  152. package/dist/src/client/session-utils.d.ts +45 -41
  153. package/dist/src/client/session-utils.js +2 -1
  154. package/dist/src/client/session.d.ts +32 -23
  155. package/dist/src/client/session.js +1 -1
  156. package/dist/src/client/sessions.d.ts +3 -2
  157. package/dist/src/client/sessions.js +1 -1
  158. package/dist/src/client/stream-version.d.ts +3 -1
  159. package/dist/src/client/stream-version.js +1 -1
  160. package/dist/src/client/transcript.d.ts +43 -0
  161. package/dist/src/client/transcript.js +2 -0
  162. package/dist/src/client/types.d.ts +23 -82
  163. package/dist/src/client/url.d.ts +3 -3
  164. package/dist/src/compiled/.vendor-stamp.json +2 -2
  165. package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +34 -34
  166. package/dist/src/compiled/@ai-sdk/google/index.d.ts +15 -15
  167. package/dist/src/compiled/@ai-sdk/openai/index.d.ts +38 -38
  168. package/dist/src/compiled/@chat-adapter/slack/fetch-QqNM_Ef3.d.ts +4 -0
  169. package/dist/src/compiled/@chat-adapter/slack/index.js +13 -13
  170. package/dist/src/compiled/@chat-adapter/twilio/types-BaIqtt65.d.ts +100 -0
  171. package/dist/src/compiled/@linqapp/chat-sdk-adapter/adapter.d.ts +129 -0
  172. package/dist/src/compiled/@linqapp/chat-sdk-adapter/message-parser.d.ts +14 -0
  173. package/dist/src/compiled/@linqapp/chat-sdk-adapter/text-decorations.d.ts +28 -0
  174. package/dist/src/compiled/@vercel/sandbox/api-client/api-client.d.ts +75 -0
  175. package/dist/src/compiled/@vercel/sandbox/api-client/validators.d.ts +4 -0
  176. package/dist/src/compiled/@vercel/sandbox/command.d.ts +78 -0
  177. package/dist/src/compiled/@vercel/sandbox/drive.d.ts +41 -1
  178. package/dist/src/compiled/@vercel/sandbox/index.js +13 -13
  179. package/dist/src/compiled/@vercel/sandbox/network-policy.d.ts +35 -4
  180. package/dist/src/compiled/@vercel/sandbox/sandbox.d.ts +18 -4
  181. package/dist/src/compiled/@vercel/sandbox/session.d.ts +29 -3
  182. package/dist/src/compiled/@vercel/sandbox/utils/pipe-stdin.d.ts +19 -0
  183. package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +1 -1
  184. package/dist/src/compiled/@workflow/core/serialization/types.d.ts +1 -1
  185. package/dist/src/compiled/@workflow/core/serialization.d.ts +2 -2
  186. package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +2 -2
  187. package/dist/src/compiled/_chunks/client/{core-CspsxXR-.js → core-BsvaaMUJ.js} +1 -1
  188. package/dist/src/compiled/_chunks/node/{auth-Dztlx9pE.js → auth-v5pS3mLo.js} +1 -1
  189. package/dist/src/compiled/_chunks/node/is-stream-DsuQX_bd.js +1 -0
  190. package/dist/src/compiled/_chunks/node/token-DHGH-jVc.js +1 -0
  191. package/dist/src/compiled/_chunks/node/token-util-BH2pw9Qm.js +25 -0
  192. package/dist/src/compiled/_chunks/node/token-util-CcvxNv76.js +1 -0
  193. package/dist/src/compiled/_chunks/node/version-C2PfNyEv.js +1 -0
  194. package/dist/src/compiled/semver/index.d.ts +2 -0
  195. package/dist/src/compiled/zod/index.js +1 -1
  196. package/dist/src/compiled/zod/v4/core.js +1 -1
  197. package/dist/src/compiled/zod-validation-error/index.js +1 -1
  198. package/dist/src/compiler/artifacts.d.ts +1 -0
  199. package/dist/src/compiler/artifacts.js +1 -1
  200. package/dist/src/compiler/development-extensions.js +1 -1
  201. package/dist/src/compiler/extension-compatibility.d.ts +19 -290
  202. package/dist/src/compiler/extension-compatibility.js +1 -1
  203. package/dist/src/compiler/manifest.d.ts +3 -11
  204. package/dist/src/compiler/manifest.js +1 -1
  205. package/dist/src/compiler/model-catalog.d.ts +8 -18
  206. package/dist/src/compiler/model-catalog.js +1 -1
  207. package/dist/src/compiler/normalize-agent-config.js +1 -1
  208. package/dist/src/compiler/normalize-connection.js +1 -1
  209. package/dist/src/compiler/normalize-hook.js +1 -1
  210. package/dist/src/compiler/normalize-instructions.js +1 -1
  211. package/dist/src/compiler/normalize-manifest-types.d.ts +3 -0
  212. package/dist/src/compiler/normalize-manifest.js +1 -1
  213. package/dist/src/compiler/normalize-memory.js +1 -1
  214. package/dist/src/compiler/normalize-schedule.js +1 -1
  215. package/dist/src/compiler/normalize-skill.js +1 -1
  216. package/dist/src/compiler/normalize-subagent.d.ts +0 -5
  217. package/dist/src/compiler/normalize-subagent.js +1 -1
  218. package/dist/src/compiler/normalize-tool.js +1 -1
  219. package/dist/src/compiler/remote-agent-node.d.ts +1 -6
  220. package/dist/src/compiler/source-graph.d.ts +0 -1
  221. package/dist/src/compiler/source-graph.js +1 -1
  222. package/dist/src/computer-use/extension/lib/computer-use-sandbox.js +1 -1
  223. package/dist/src/computer-use/extension/lib/sandbox.d.ts +1 -1
  224. package/dist/src/computer-use/extension/lib/sandbox.js +1 -1
  225. package/dist/src/computer-use/extension/tools/computer_use.js +1 -1
  226. package/dist/src/connections/errors.d.ts +3 -3
  227. package/dist/src/context/accessors.d.ts +0 -13
  228. package/dist/src/context/accessors.js +1 -1
  229. package/dist/src/context/container.d.ts +8 -11
  230. package/dist/src/context/container.js +1 -1
  231. package/dist/src/context/key-names.d.ts +1 -0
  232. package/dist/src/context/key-names.js +1 -1
  233. package/dist/src/context/keys.d.ts +20 -112
  234. package/dist/src/context/keys.js +1 -1
  235. package/dist/src/context/memory-tools.d.ts +4 -2
  236. package/dist/src/context/memory-tools.js +1 -1
  237. package/dist/src/context/providers/connection.js +1 -1
  238. package/dist/src/context/providers/session.js +1 -1
  239. package/dist/src/context/schedule-collection-tools.d.ts +2 -2
  240. package/dist/src/context/schedule-collection-tools.js +1 -1
  241. package/dist/src/context/session-context.d.ts +4 -2
  242. package/dist/src/discover/extensions.d.ts +2 -3
  243. package/dist/src/discover/extensions.js +1 -1
  244. package/dist/src/discover/manifest.js +1 -1
  245. package/dist/src/discover/skills.js +1 -1
  246. package/dist/src/dynamic/definition.d.ts +98 -108
  247. package/dist/src/dynamic/definition.js +1 -1
  248. package/dist/src/evals/assertions/collector.js +1 -1
  249. package/dist/src/evals/assertions/run.d.ts +12 -11
  250. package/dist/src/evals/assertions/run.js +2 -2
  251. package/dist/src/evals/assertions/scoped.js +1 -1
  252. package/dist/src/evals/cli/eval-client.js +1 -1
  253. package/dist/src/evals/cli/eval.js +2 -2
  254. package/dist/src/evals/context.js +1 -1
  255. package/dist/src/evals/expect/index.d.ts +0 -1
  256. package/dist/src/evals/index.d.ts +2 -5
  257. package/dist/src/evals/judge.js +1 -1
  258. package/dist/src/evals/match.d.ts +20 -17
  259. package/dist/src/evals/match.js +1 -1
  260. package/dist/src/evals/mock-model.d.ts +5 -1
  261. package/dist/src/evals/mock-model.js +1 -1
  262. package/dist/src/evals/output.d.ts +3 -0
  263. package/dist/src/evals/output.js +1 -0
  264. package/dist/src/evals/reported-tool-name.js +1 -1
  265. package/dist/src/evals/reporters/index.d.ts +4 -4
  266. package/dist/src/evals/reporters/index.js +1 -1
  267. package/dist/src/evals/runner/artifacts.js +1 -1
  268. package/dist/src/evals/runner/derive-run-facts.d.ts +8 -40
  269. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  270. package/dist/src/evals/runner/execute-eval.js +1 -1
  271. package/dist/src/evals/runner/execute-task.d.ts +3 -1
  272. package/dist/src/evals/runner/execute-task.js +1 -1
  273. package/dist/src/evals/runner/reporters/braintrust.d.ts +1 -1
  274. package/dist/src/evals/runner/reporters/braintrust.js +2 -2
  275. package/dist/src/evals/runner/reporters/console.d.ts +1 -1
  276. package/dist/src/evals/runner/reporters/console.js +1 -1
  277. package/dist/src/evals/runner/reporters/datadog.d.ts +1 -1
  278. package/dist/src/evals/runner/reporters/datadog.js +2 -2
  279. package/dist/src/evals/runner/reporters/junit.d.ts +1 -1
  280. package/dist/src/evals/runner/reporters/junit.js +2 -2
  281. package/dist/src/evals/runner/reporters/types.d.ts +2 -2
  282. package/dist/src/evals/runner/run-evals.d.ts +1 -1
  283. package/dist/src/evals/session-cleanup.d.ts +1 -1
  284. package/dist/src/evals/session-cleanup.js +1 -1
  285. package/dist/src/evals/session-content.d.ts +2 -2
  286. package/dist/src/evals/session-content.js +2 -1
  287. package/dist/src/evals/session-manager.d.ts +3 -6
  288. package/dist/src/evals/session-manager.js +1 -1
  289. package/dist/src/evals/session.d.ts +33 -24
  290. package/dist/src/evals/session.js +2 -2
  291. package/dist/src/evals/target.js +1 -1
  292. package/dist/src/evals/types.d.ts +115 -94
  293. package/dist/src/eve-channel/create-request.d.ts +3 -5
  294. package/dist/src/eve-channel/descendant-stream.d.ts +9 -0
  295. package/dist/src/eve-channel/descendant-stream.js +1 -0
  296. package/dist/src/eve-channel/index.d.ts +2 -2
  297. package/dist/src/eve-channel/index.js +1 -1
  298. package/dist/src/eve-channel/request.d.ts +8 -6
  299. package/dist/src/eve-channel/request.js +1 -3
  300. package/dist/src/eve-channel/stream-headers.d.ts +1 -1
  301. package/dist/src/eve-channel/stream-headers.js +1 -1
  302. package/dist/src/eve-channel/support.d.ts +25 -13
  303. package/dist/src/eve-channel/support.js +2 -2
  304. package/dist/src/eve-channel/types.d.ts +7 -30
  305. package/dist/src/execution/agent-sessions/message.d.ts +4 -0
  306. package/dist/src/execution/agent-sessions/message.js +1 -0
  307. package/dist/src/execution/agent-sessions/metadata.js +1 -1
  308. package/dist/src/execution/agent-sessions/remote-credentials.d.ts +19 -0
  309. package/dist/src/execution/agent-sessions/remote-credentials.js +1 -0
  310. package/dist/src/execution/agent-sessions/remote.d.ts +35 -13
  311. package/dist/src/execution/agent-sessions/remote.js +1 -1
  312. package/dist/src/execution/agent-sessions/requests.d.ts +6 -6
  313. package/dist/src/execution/agent-sessions/requests.js +1 -1
  314. package/dist/src/execution/agent-sessions/session.js +1 -1
  315. package/dist/src/execution/agent-sessions/steps.d.ts +26 -4
  316. package/dist/src/execution/agent-sessions/steps.js +1 -1
  317. package/dist/src/execution/agent-sessions/target.d.ts +2 -1
  318. package/dist/src/execution/agent-sessions/target.js +1 -1
  319. package/dist/src/execution/agent-sessions/usage.d.ts +0 -8
  320. package/dist/src/execution/agent-sessions/usage.js +1 -1
  321. package/dist/src/execution/cancelled-model-call-batch.d.ts +4 -2
  322. package/dist/src/execution/cancelled-model-call-batch.js +1 -1
  323. package/dist/src/execution/cancelled-turn-message.d.ts +2 -2
  324. package/dist/src/execution/cancelled-turn-message.js +1 -1
  325. package/dist/src/execution/catalog/connection-entry.js +1 -1
  326. package/dist/src/execution/catalog/search.js +1 -1
  327. package/dist/src/execution/catalog/skills.js +1 -1
  328. package/dist/src/execution/catalog/step-catalog.js +1 -1
  329. package/dist/src/execution/child-binding.d.ts +19 -0
  330. package/dist/src/execution/child-binding.js +1 -0
  331. package/dist/src/execution/close-session-stream-step.d.ts +9 -0
  332. package/dist/src/execution/close-session-stream-step.js +1 -0
  333. package/dist/src/execution/coordination-dispatch-shared.d.ts +13 -3
  334. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  335. package/dist/src/execution/coordination-dispatch-step.d.ts +9 -13
  336. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  337. package/dist/src/execution/deliver-payloads.js +1 -1
  338. package/dist/src/execution/durable-session-store.d.ts +2 -5
  339. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  340. package/dist/src/execution/dynamic-workflow/workflow.js +1 -1
  341. package/dist/src/execution/failure-summary.d.ts +11 -0
  342. package/dist/src/execution/failure-summary.js +1 -0
  343. package/dist/src/execution/forward-session-input.d.ts +2 -2
  344. package/dist/src/execution/forward-session-input.js +1 -1
  345. package/dist/src/execution/invoke-tool.js +1 -1
  346. package/dist/src/execution/legacy-session/snapshot.d.ts +4 -1
  347. package/dist/src/execution/legacy-session/snapshot.js +1 -1
  348. package/dist/src/execution/model-call-batching.d.ts +3 -3
  349. package/dist/src/execution/model-call-batching.js +1 -1
  350. package/dist/src/execution/ndjson-stream.d.ts +1 -1
  351. package/dist/src/execution/node-step.d.ts +2 -8
  352. package/dist/src/execution/node-step.js +1 -1
  353. package/dist/src/execution/proxied-deliver-step.d.ts +8 -3
  354. package/dist/src/execution/proxied-deliver-step.js +1 -1
  355. package/dist/src/execution/public-destination.d.ts +34 -0
  356. package/dist/src/execution/public-destination.js +1 -0
  357. package/dist/src/execution/publish-session-events.d.ts +98 -36
  358. package/dist/src/execution/publish-session-events.js +1 -1
  359. package/dist/src/execution/runtime-context.js +1 -1
  360. package/dist/src/execution/sandbox/abort-bound-session.js +1 -1
  361. package/dist/src/execution/sandbox/bash.js +1 -1
  362. package/dist/src/execution/sandbox/bindings/docker-cli.d.ts +2 -0
  363. package/dist/src/execution/sandbox/bindings/docker-cli.js +1 -1
  364. package/dist/src/execution/sandbox/bindings/docker-connection.js +1 -1
  365. package/dist/src/execution/sandbox/bindings/docker.js +1 -1
  366. package/dist/src/execution/sandbox/bindings/eve-image.d.ts +0 -2
  367. package/dist/src/execution/sandbox/bindings/eve-image.js +1 -1
  368. package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
  369. package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
  370. package/dist/src/execution/sandbox/ensure.js +1 -1
  371. package/dist/src/{extensions/code/extension/lib → execution/sandbox}/grep-search.d.ts +3 -2
  372. package/dist/src/execution/sandbox/grep-search.js +6 -0
  373. package/dist/src/execution/sandbox/multiplexed-command.d.ts +11 -1
  374. package/dist/src/execution/sandbox/multiplexed-command.js +1 -1
  375. package/dist/src/execution/sandbox/read-file.d.ts +1 -1
  376. package/dist/src/execution/sandbox/session.js +1 -1
  377. package/dist/src/execution/sandbox/workspace-root.d.ts +31 -0
  378. package/dist/src/execution/sandbox/workspace-root.js +1 -0
  379. package/dist/src/execution/session/active-turn.d.ts +12 -6
  380. package/dist/src/execution/session/active-turn.js +1 -1
  381. package/dist/src/execution/session/admission.d.ts +7 -2
  382. package/dist/src/execution/session/admission.js +1 -1
  383. package/dist/src/execution/session/answer-caller.d.ts +4 -4
  384. package/dist/src/execution/session/answer-caller.js +1 -1
  385. package/dist/src/execution/session/checkpoint-migrations.d.ts +4 -6
  386. package/dist/src/execution/session/checkpoint-migrations.js +1 -1
  387. package/dist/src/execution/session/control-delivery.d.ts +4 -0
  388. package/dist/src/execution/session/control-delivery.js +1 -0
  389. package/dist/src/execution/session/delivery-facts.d.ts +27 -0
  390. package/dist/src/execution/session/delivery-facts.js +1 -0
  391. package/dist/src/execution/session/end-sandbox-step.js +1 -1
  392. package/dist/src/execution/session/entry.js +1 -1
  393. package/dist/src/execution/session/finalization.d.ts +4 -0
  394. package/dist/src/execution/session/finalization.js +1 -1
  395. package/dist/src/execution/session/handoff-state.js +1 -1
  396. package/dist/src/execution/session/handoff-steps.d.ts +0 -8
  397. package/dist/src/execution/session/handoff-steps.js +1 -1
  398. package/dist/src/execution/session/handoff.d.ts +4 -3
  399. package/dist/src/execution/session/handoff.js +1 -1
  400. package/dist/src/execution/session/input-queue.d.ts +8 -2
  401. package/dist/src/execution/session/input-queue.js +1 -1
  402. package/dist/src/execution/session/interrupted-step.d.ts +64 -0
  403. package/dist/src/execution/session/interrupted-step.js +3 -0
  404. package/dist/src/execution/session/next-input.d.ts +7 -1
  405. package/dist/src/execution/session/next-input.js +1 -1
  406. package/dist/src/execution/session/pending-turn-state.d.ts +32 -12
  407. package/dist/src/execution/session/pending-turn-state.js +1 -1
  408. package/dist/src/execution/session/prewarm-step.d.ts +1 -1
  409. package/dist/src/execution/session/prewarm-step.js +1 -1
  410. package/dist/src/execution/session/program.js +1 -1
  411. package/dist/src/execution/session/settle-control-delivery-step.d.ts +8 -0
  412. package/dist/src/execution/session/settle-control-delivery-step.js +1 -0
  413. package/dist/src/execution/session/settle-duplicate-delivery-step.d.ts +8 -0
  414. package/dist/src/execution/session/settle-duplicate-delivery-step.js +1 -0
  415. package/dist/src/execution/session/state-delta.d.ts +2 -12
  416. package/dist/src/execution/session/state-delta.js +1 -1
  417. package/dist/src/execution/session/step-decision-check.d.ts +9 -0
  418. package/dist/src/execution/session/step-decision-check.js +1 -0
  419. package/dist/src/execution/session/step-state-delta.d.ts +16 -0
  420. package/dist/src/execution/session/step-state-delta.js +1 -0
  421. package/dist/src/execution/session/task-tool-tracing-step.d.ts +0 -3
  422. package/dist/src/execution/session/task-tool-tracing-step.js +1 -1
  423. package/dist/src/execution/session/turn-event-handler.d.ts +6 -16
  424. package/dist/src/execution/session/turn-event-handler.js +1 -1
  425. package/dist/src/execution/session/turn-step-result.d.ts +7 -2
  426. package/dist/src/execution/session/turn-step-result.js +1 -1
  427. package/dist/src/execution/session/turn-step-types.d.ts +35 -33
  428. package/dist/src/execution/session/turn-step.js +1 -1
  429. package/dist/src/execution/session/turn.d.ts +19 -32
  430. package/dist/src/execution/session/turn.js +1 -1
  431. package/dist/src/execution/session-callback-request.d.ts +7 -1
  432. package/dist/src/execution/session-callback-request.js +1 -1
  433. package/dist/src/execution/session-event-stream.d.ts +37 -16
  434. package/dist/src/execution/session-event-stream.js +1 -1
  435. package/dist/src/execution/session-inbox/address.d.ts +1 -0
  436. package/dist/src/execution/session-inbox/end-stranded-session.d.ts +7 -1
  437. package/dist/src/execution/session-inbox/end-stranded-session.js +1 -1
  438. package/dist/src/execution/session-inbox/handle.d.ts +7 -0
  439. package/dist/src/execution/session-inbox/handle.js +1 -0
  440. package/dist/src/execution/session-inbox/inbox.js +1 -1
  441. package/dist/src/execution/session-inbox/owner.d.ts +9 -6
  442. package/dist/src/execution/session-inbox/owner.js +1 -1
  443. package/dist/src/execution/session-inbox/pre-v27.d.ts +5 -0
  444. package/dist/src/execution/session-inbox/pre-v27.js +1 -0
  445. package/dist/src/execution/session-inbox/protocol.js +1 -1
  446. package/dist/src/execution/session-inbox/resume.d.ts +1 -0
  447. package/dist/src/execution/session-inbox/resume.js +1 -1
  448. package/dist/src/execution/session-inbox/stranded-replay-guard.js +1 -1
  449. package/dist/src/execution/session-workflow-tool-run.js +1 -1
  450. package/dist/src/execution/session.d.ts +3 -14
  451. package/dist/src/execution/session.js +2 -2
  452. package/dist/src/execution/settle-cancelled-turn-step.d.ts +3 -0
  453. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  454. package/dist/src/execution/stop-runs.d.ts +35 -0
  455. package/dist/src/execution/stop-runs.js +1 -0
  456. package/dist/src/execution/tasks/model-step.d.ts +5 -9
  457. package/dist/src/execution/tasks/model-step.js +1 -1
  458. package/dist/src/execution/tasks/render.d.ts +5 -2
  459. package/dist/src/execution/tasks/render.js +1 -1
  460. package/dist/src/execution/tasks/session.d.ts +6 -3
  461. package/dist/src/execution/tasks/session.js +1 -1
  462. package/dist/src/execution/tasks/start.d.ts +9 -6
  463. package/dist/src/execution/tasks/start.js +1 -1
  464. package/dist/src/execution/tasks/steps.d.ts +11 -6
  465. package/dist/src/execution/tasks/steps.js +1 -1
  466. package/dist/src/execution/tasks/table.d.ts +18 -5
  467. package/dist/src/execution/tasks/table.js +1 -1
  468. package/dist/src/execution/tasks/task-id-input.js +1 -1
  469. package/dist/src/execution/terminal-session-completion-step.d.ts +11 -1
  470. package/dist/src/execution/terminal-session-completion-step.js +1 -1
  471. package/dist/src/execution/terminal-session-failure-step.d.ts +6 -1
  472. package/dist/src/execution/terminal-session-failure-step.js +1 -1
  473. package/dist/src/execution/terminate-child-sessions-step.d.ts +5 -1
  474. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  475. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  476. package/dist/src/execution/tools/workflow/answer.d.ts +4 -5
  477. package/dist/src/execution/tools/workflow/answer.js +1 -1
  478. package/dist/src/execution/tools/workflow/apply-run-messages-step.d.ts +1 -1
  479. package/dist/src/execution/tools/workflow/apply-run-messages-step.js +1 -1
  480. package/dist/src/execution/tools/workflow/ask.d.ts +3 -3
  481. package/dist/src/execution/tools/workflow/body.js +1 -1
  482. package/dist/src/execution/tools/workflow/harness-definition.js +1 -1
  483. package/dist/src/execution/tools/workflow/messages.d.ts +25 -33
  484. package/dist/src/execution/tools/workflow/messages.js +1 -1
  485. package/dist/src/execution/tools/workflow/owner-inbox.d.ts +9 -5
  486. package/dist/src/execution/tools/workflow/owner-inbox.js +1 -1
  487. package/dist/src/execution/tools/workflow/owner.d.ts +3 -3
  488. package/dist/src/execution/tools/workflow/owner.js +1 -1
  489. package/dist/src/execution/tools/workflow/serve.js +1 -1
  490. package/dist/src/execution/tools/workflow/step.js +1 -1
  491. package/dist/src/execution/tools/workflow/withdraw-step.d.ts +2 -2
  492. package/dist/src/execution/tools/workflow/withdraw-step.js +1 -1
  493. package/dist/src/execution/v26-history.d.ts +28 -0
  494. package/dist/src/execution/v26-history.fixtures.d.ts +4 -0
  495. package/dist/src/execution/v26-history.fixtures.js +2 -0
  496. package/dist/src/execution/v26-history.js +1 -0
  497. package/dist/src/execution/web-fetch/request.js +1 -1
  498. package/dist/src/execution/workflow-errors.d.ts +5 -0
  499. package/dist/src/execution/workflow-errors.js +1 -1
  500. package/dist/src/execution/workflow-runtime.js +1 -1
  501. package/dist/src/extensions/code/extension/extension.d.ts +1 -11
  502. package/dist/src/extensions/code/extension/extension.js +1 -1
  503. package/dist/src/extensions/code/extension/lib/prwatch-github.d.ts +5 -1
  504. package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
  505. package/dist/src/extensions/code/extension/lib/repository-root.js +1 -1
  506. package/dist/src/extensions/code/extension/lib/sandbox.d.ts +0 -4
  507. package/dist/src/extensions/code/extension/lib/sandbox.js +2 -2
  508. package/dist/src/extensions/code/extension/lib/tooling.d.ts +1 -1
  509. package/dist/src/extensions/code/extension/lib/tooling.js +1 -1
  510. package/dist/src/extensions/code/extension/lib/workspace-root.d.ts +1 -31
  511. package/dist/src/extensions/code/extension/lib/workspace-root.js +1 -1
  512. package/dist/src/extensions/code/extension/subagents/worker/agent.d.ts +1 -1
  513. package/dist/src/extensions/code/extension/subagents/worker/agent.js +1 -1
  514. package/dist/src/extensions/code/extension/tools/apply_patch.js +2 -2
  515. package/dist/src/extensions/code/extension/tools/grep.d.ts +1 -28
  516. package/dist/src/extensions/code/extension/tools/grep.js +1 -1
  517. package/dist/src/extensions/code/sandbox.d.ts +1 -0
  518. package/dist/src/extensions/code/sandbox.js +1 -0
  519. package/dist/src/extensions/code/tools.d.ts +1 -5
  520. package/dist/src/extensions/code/tools.js +1 -1
  521. package/dist/src/extensions/git/extension/extension.d.ts +3 -3
  522. package/dist/src/extensions/git/extension/instructions/github.d.ts +1 -1
  523. package/dist/src/extensions/git/extension/instructions/github.js +1 -1
  524. package/dist/src/extensions/git/extension/lib/gh-tool.d.ts +2 -11
  525. package/dist/src/extensions/git/extension/lib/gh-tool.js +1 -1
  526. package/dist/src/extensions/git/extension/lib/github-shell.d.ts +13 -3
  527. package/dist/src/extensions/git/extension/lib/sandbox.d.ts +0 -4
  528. package/dist/src/extensions/git/extension/lib/sandbox.js +1 -1
  529. package/dist/src/extensions/git/extension/skills/pr.d.ts +1 -4
  530. package/dist/src/extensions/git/extension/skills/pr.js +1 -1
  531. package/dist/src/extensions/git/extension/tools/gh.d.ts +1 -26
  532. package/dist/src/extensions/git/extension/tools/gh.js +1 -1
  533. package/dist/src/framework/sources/modules/schedule-collection-wrapper.js +1 -1
  534. package/dist/src/harness/action-presentation.d.ts +3 -5
  535. package/dist/src/harness/action-presentation.js +1 -1
  536. package/dist/src/harness/action-result-helpers.d.ts +2 -8
  537. package/dist/src/harness/action-result-helpers.js +1 -1
  538. package/dist/src/harness/approval-outcome.d.ts +32 -0
  539. package/dist/src/harness/approval-outcome.js +1 -0
  540. package/dist/src/harness/attachment-staging.js +1 -1
  541. package/dist/src/harness/authorization.d.ts +2 -3
  542. package/dist/src/harness/authorization.js +1 -1
  543. package/dist/src/harness/call-executor.d.ts +118 -0
  544. package/dist/src/harness/call-executor.js +1 -0
  545. package/dist/src/harness/call-facts.d.ts +31 -0
  546. package/dist/src/harness/call-facts.js +1 -0
  547. package/dist/src/harness/call-outcome.d.ts +6 -0
  548. package/dist/src/harness/call-outcome.js +1 -0
  549. package/dist/src/harness/compaction/engine.d.ts +11 -0
  550. package/dist/src/harness/compaction/engine.js +2 -2
  551. package/dist/src/harness/compaction/step.d.ts +25 -5
  552. package/dist/src/harness/compaction/step.js +1 -1
  553. package/dist/src/harness/coordination.js +1 -1
  554. package/dist/src/harness/current-messages.d.ts +10 -0
  555. package/dist/src/harness/current-messages.js +1 -1
  556. package/dist/src/harness/emission.d.ts +9 -20
  557. package/dist/src/harness/emission.js +1 -1
  558. package/dist/src/harness/execute-call.d.ts +6 -23
  559. package/dist/src/harness/execute-call.js +1 -1
  560. package/dist/src/harness/execute-tool.d.ts +7 -3
  561. package/dist/src/harness/facts.d.ts +82 -0
  562. package/dist/src/harness/facts.js +1 -0
  563. package/dist/src/harness/finish-reason.d.ts +6 -1
  564. package/dist/src/harness/generation-steering.d.ts +4 -2
  565. package/dist/src/harness/generation-steering.js +1 -1
  566. package/dist/src/harness/hitl/approval-prompt.d.ts +3 -3
  567. package/dist/src/harness/hitl/approval-prompt.js +3 -3
  568. package/dist/src/harness/hitl/approvals.d.ts +66 -78
  569. package/dist/src/harness/hitl/approvals.js +2 -1
  570. package/dist/src/harness/hitl/approved-calls.d.ts +14 -36
  571. package/dist/src/harness/hitl/approved-calls.js +1 -1
  572. package/dist/src/harness/hitl/budget-request.d.ts +8 -46
  573. package/dist/src/harness/hitl/budget-request.js +1 -1
  574. package/dist/src/harness/hitl/budget.d.ts +9 -8
  575. package/dist/src/harness/hitl/budget.js +1 -1
  576. package/dist/src/harness/hitl/delivery.d.ts +16 -17
  577. package/dist/src/harness/hitl/delivery.js +1 -1
  578. package/dist/src/harness/hitl/index.d.ts +14 -19
  579. package/dist/src/harness/hitl/index.js +1 -1
  580. package/dist/src/harness/hitl/intake.d.ts +32 -43
  581. package/dist/src/harness/hitl/intake.js +1 -1
  582. package/dist/src/harness/hitl/relays.d.ts +7 -51
  583. package/dist/src/harness/hitl/relays.js +1 -1
  584. package/dist/src/harness/hitl/requests.d.ts +11 -53
  585. package/dist/src/harness/hitl/requests.js +1 -1
  586. package/dist/src/harness/hitl/responders.d.ts +50 -0
  587. package/dist/src/harness/hitl/responders.js +1 -0
  588. package/dist/src/harness/hitl/sign-ins.d.ts +7 -3
  589. package/dist/src/harness/hitl/sign-ins.js +1 -1
  590. package/dist/src/harness/hitl/stale-responses.d.ts +11 -11
  591. package/dist/src/harness/hitl/stale-responses.js +3 -3
  592. package/dist/src/harness/inline-tool-authorization.d.ts +8 -9
  593. package/dist/src/harness/inline-tool-authorization.js +1 -1
  594. package/dist/src/harness/interaction-facts.d.ts +36 -0
  595. package/dist/src/harness/interaction-facts.js +1 -0
  596. package/dist/src/harness/interaction-relay.d.ts +10 -0
  597. package/dist/src/harness/interaction-relay.js +1 -0
  598. package/dist/src/harness/interrupted-attempt.d.ts +19 -0
  599. package/dist/src/harness/interrupted-attempt.js +2 -0
  600. package/dist/src/harness/messages.d.ts +28 -15
  601. package/dist/src/harness/messages.js +1 -1
  602. package/dist/src/harness/model-call/call.d.ts +28 -12
  603. package/dist/src/harness/model-call/call.js +1 -1
  604. package/dist/src/harness/model-call/errors.js +1 -1
  605. package/dist/src/harness/model-call/failure.d.ts +4 -49
  606. package/dist/src/harness/model-call/failure.js +1 -1
  607. package/dist/src/harness/model-call/model.js +1 -1
  608. package/dist/src/harness/model-call/recovery.d.ts +4 -32
  609. package/dist/src/harness/model-call/recovery.js +1 -1
  610. package/dist/src/harness/model-call/request.d.ts +0 -1
  611. package/dist/src/harness/model-call/request.js +1 -1
  612. package/dist/src/harness/model-call/response.d.ts +22 -12
  613. package/dist/src/harness/model-call/response.js +1 -1
  614. package/dist/src/harness/model-call/retry.d.ts +23 -6
  615. package/dist/src/harness/model-call/retry.js +1 -1
  616. package/dist/src/harness/model-call/run.d.ts +4 -12
  617. package/dist/src/harness/model-call/run.js +1 -1
  618. package/dist/src/harness/model-call/tools.d.ts +0 -19
  619. package/dist/src/harness/model-call/tools.js +1 -1
  620. package/dist/src/harness/model-call/unique-call-ids.d.ts +13 -0
  621. package/dist/src/harness/model-call/unique-call-ids.js +1 -0
  622. package/dist/src/harness/model-call/usage.d.ts +7 -5
  623. package/dist/src/harness/model-call/usage.js +1 -1
  624. package/dist/src/harness/ordered-stream-emitter.d.ts +1 -0
  625. package/dist/src/harness/ordered-stream-emitter.js +1 -1
  626. package/dist/src/harness/provider-tool-history.js +1 -1
  627. package/dist/src/harness/publication.d.ts +4 -0
  628. package/dist/src/harness/publication.js +1 -0
  629. package/dist/src/harness/request-envelope.d.ts +0 -3
  630. package/dist/src/harness/request-envelope.js +1 -1
  631. package/dist/src/harness/running-work.d.ts +10 -0
  632. package/dist/src/harness/running-work.js +1 -0
  633. package/dist/src/harness/semantic-errors/rules/gateway.js +1 -1
  634. package/dist/src/harness/session-machine/cascade.d.ts +17 -0
  635. package/dist/src/harness/session-machine/cascade.js +1 -0
  636. package/dist/src/harness/session-machine/commit.d.ts +16 -16
  637. package/dist/src/harness/session-machine/commit.js +1 -1
  638. package/dist/src/harness/session-machine/current.d.ts +25 -17
  639. package/dist/src/harness/session-machine/current.js +1 -1
  640. package/dist/src/harness/session-machine/state.d.ts +43 -16
  641. package/dist/src/harness/session-machine/state.js +1 -1
  642. package/dist/src/harness/session-machine/suspended-steps.d.ts +22 -0
  643. package/dist/src/harness/session-machine/suspended-steps.js +1 -0
  644. package/dist/src/harness/session-machine/transitions.d.ts +144 -120
  645. package/dist/src/harness/session-machine/transitions.js +1 -1
  646. package/dist/src/harness/session-machine/view.d.ts +12 -8
  647. package/dist/src/harness/session-machine/view.js +1 -1
  648. package/dist/src/harness/session-machine/waiting.d.ts +16 -0
  649. package/dist/src/harness/session-machine/waiting.js +1 -0
  650. package/dist/src/harness/session-usage.d.ts +22 -0
  651. package/dist/src/harness/session-usage.js +1 -0
  652. package/dist/src/harness/step/after-model.d.ts +1 -4
  653. package/dist/src/harness/step/after-model.js +1 -1
  654. package/dist/src/harness/step/context.d.ts +21 -21
  655. package/dist/src/harness/step/context.js +1 -1
  656. package/dist/src/harness/step/intake.d.ts +7 -8
  657. package/dist/src/harness/step/intake.js +1 -1
  658. package/dist/src/harness/step/park.d.ts +19 -0
  659. package/dist/src/harness/step/park.js +1 -0
  660. package/dist/src/harness/step/prompt.d.ts +4 -5
  661. package/dist/src/harness/step/prompt.js +1 -1
  662. package/dist/src/harness/step-hooks.d.ts +24 -24
  663. package/dist/src/harness/step-hooks.js +1 -1
  664. package/dist/src/harness/stream-actions.d.ts +3 -9
  665. package/dist/src/harness/stream-actions.js +1 -1
  666. package/dist/src/harness/token-estimate.js +1 -1
  667. package/dist/src/harness/tool-history-repair.js +1 -1
  668. package/dist/src/harness/tool-loop.js +1 -1
  669. package/dist/src/harness/tools.d.ts +22 -38
  670. package/dist/src/harness/tools.js +1 -1
  671. package/dist/src/harness/types.d.ts +69 -67
  672. package/dist/src/harness/user-parts.d.ts +4 -0
  673. package/dist/src/harness/user-parts.js +1 -0
  674. package/dist/src/harness/workflow-tool-runs.d.ts +0 -1
  675. package/dist/src/harness/workflow-tool-runs.js +1 -1
  676. package/dist/src/instrumentation/ai-sdk-hook-bridge.d.ts +2 -2
  677. package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
  678. package/dist/src/instrumentation/channel-delivery.d.ts +4 -23
  679. package/dist/src/instrumentation/channel-delivery.js +1 -1
  680. package/dist/src/instrumentation/content.d.ts +1 -7
  681. package/dist/src/instrumentation/content.js +1 -1
  682. package/dist/src/instrumentation/dispatch.js +1 -1
  683. package/dist/src/instrumentation/lifecycle.d.ts +135 -198
  684. package/dist/src/instrumentation/lifecycle.js +1 -1
  685. package/dist/src/instrumentation/memory.d.ts +4 -2
  686. package/dist/src/instrumentation/memory.js +1 -1
  687. package/dist/src/instrumentation/native-events.d.ts +17 -10
  688. package/dist/src/instrumentation/native-events.js +1 -1
  689. package/dist/src/instrumentation/prepare-trace-context.d.ts +3 -3
  690. package/dist/src/instrumentation/provider.d.ts +20 -28
  691. package/dist/src/instrumentation/providers.js +1 -1
  692. package/dist/src/instrumentation/runtime-context.d.ts +1 -0
  693. package/dist/src/instrumentation/runtime-context.js +1 -1
  694. package/dist/src/instrumentation/runtime.d.ts +9 -30
  695. package/dist/src/instrumentation/runtime.js +1 -1
  696. package/dist/src/instrumentation/scope.d.ts +6 -0
  697. package/dist/src/instrumentation/scope.js +1 -0
  698. package/dist/src/instrumentation/session-context.d.ts +1 -1
  699. package/dist/src/instrumentation/session-context.js +1 -1
  700. package/dist/src/instrumentation/session-init.js +1 -1
  701. package/dist/src/instrumentation/setup-context.d.ts +2 -2
  702. package/dist/src/instrumentation/setup-context.js +1 -1
  703. package/dist/src/instrumentation/state.d.ts +0 -21
  704. package/dist/src/instrumentation/state.js +1 -1
  705. package/dist/src/internal/application/compiled-artifacts.d.ts +2 -0
  706. package/dist/src/internal/application/compiled-artifacts.js +2 -2
  707. package/dist/src/internal/application/dev-environment.d.ts +8 -2
  708. package/dist/src/internal/application/dev-environment.js +1 -1
  709. package/dist/src/internal/application/optional-package-install.js +1 -1
  710. package/dist/src/internal/application/stamped-package-version.js +1 -1
  711. package/dist/src/internal/authored-definition/approval.d.ts +2 -4
  712. package/dist/src/internal/authored-definition/approval.js +1 -1
  713. package/dist/src/internal/authored-definition/connection.js +1 -1
  714. package/dist/src/internal/authored-definition/core.d.ts +1 -1
  715. package/dist/src/internal/authored-definition/core.js +1 -1
  716. package/dist/src/internal/authored-definition/memory.js +1 -1
  717. package/dist/src/internal/authored-definition/schema-backed.d.ts +0 -3
  718. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  719. package/dist/src/internal/authored-module-loader.d.ts +0 -1
  720. package/dist/src/internal/authored-module-loader.js +1 -1
  721. package/dist/src/internal/authored-package-boundary.js +1 -1
  722. package/dist/src/internal/git.d.ts +2 -0
  723. package/dist/src/internal/git.js +1 -0
  724. package/dist/src/internal/grep.d.ts +1 -0
  725. package/dist/src/internal/grep.js +1 -0
  726. package/dist/src/internal/helpers/markdown.js +1 -1
  727. package/dist/src/internal/invocation/agent-invocation.d.ts +16 -19
  728. package/dist/src/internal/invocation/metadata.d.ts +0 -2
  729. package/dist/src/internal/invocation/metadata.js +1 -1
  730. package/dist/src/internal/invocation/workflow-execution.d.ts +4 -4
  731. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  732. package/dist/src/internal/legacy-events.d.ts +5 -0
  733. package/dist/src/internal/legacy-events.js +1 -0
  734. package/dist/src/internal/logging.d.ts +0 -12
  735. package/dist/src/internal/logging.js +1 -1
  736. package/dist/src/internal/mcp/protected-resource.js +1 -1
  737. package/dist/src/internal/mcp/published-tools.js +1 -1
  738. package/dist/src/internal/model-auth/api-key.js +1 -1
  739. package/dist/src/internal/model-auth/development-broker-client.js +1 -1
  740. package/dist/src/internal/model-auth/development-broker-server.js +1 -1
  741. package/dist/src/internal/model-auth/transport.js +1 -1
  742. package/dist/src/internal/model-catalog.d.ts +39 -16
  743. package/dist/src/internal/model-catalog.js +1 -1
  744. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  745. package/dist/src/internal/nitro/dev-runtime-generation-metadata.js +1 -1
  746. package/dist/src/internal/nitro/host/build-extension.js +2 -2
  747. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  748. package/dist/src/internal/nitro/host/dev-build-host.js +1 -1
  749. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  750. package/dist/src/internal/nitro/host/dev-server-state.js +1 -1
  751. package/dist/src/internal/nitro/host/drained-nitro-dev-server.js +1 -1
  752. package/dist/src/internal/nitro/host/start-development-server.js +1 -1
  753. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  754. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  755. package/dist/src/internal/nitro/routes/channel-route-context.d.ts +8 -1
  756. package/dist/src/internal/nitro/routes/info.js +1 -1
  757. package/dist/src/internal/nitro/routes/schedule-task.js +1 -1
  758. package/dist/src/internal/scaffold.d.ts +5 -0
  759. package/dist/src/internal/scaffold.js +1 -0
  760. package/dist/src/internal/workflow/cancel-expired-development-run.js +1 -1
  761. package/dist/src/internal/workflow/development-world-client.js +1 -1
  762. package/dist/src/internal/workflow/development-world-server.js +1 -1
  763. package/dist/src/internal/workflow/local-world-data-directory.js +1 -1
  764. package/dist/src/internal/workspace.d.ts +1 -0
  765. package/dist/src/internal/workspace.js +1 -0
  766. package/dist/src/models/auto.d.ts +27 -14
  767. package/dist/src/models/auto.js +2 -2
  768. package/dist/src/protocol/delivery.d.ts +12 -0
  769. package/dist/src/protocol/delivery.js +1 -0
  770. package/dist/src/protocol/descendant-observation.d.ts +12 -0
  771. package/dist/src/protocol/descendant-observation.js +1 -0
  772. package/dist/src/protocol/interaction-json.d.ts +66 -0
  773. package/dist/src/protocol/interaction-json.js +1 -0
  774. package/dist/src/protocol/interaction-options.d.ts +4 -0
  775. package/dist/src/protocol/interaction-options.js +1 -0
  776. package/dist/src/protocol/remote-agent-protocol.d.ts +28 -1
  777. package/dist/src/protocol/remote-agent-protocol.js +1 -1
  778. package/dist/src/protocol/routes.d.ts +3 -2
  779. package/dist/src/protocol/routes.js +1 -1
  780. package/dist/src/protocol/session-event.d.ts +22 -0
  781. package/dist/src/protocol/session-event.js +1 -0
  782. package/dist/src/protocol/session-events/authoring.d.ts +2 -0
  783. package/dist/src/protocol/session-events/authoring.js +1 -0
  784. package/dist/src/protocol/session-events/catalog.d.ts +50 -0
  785. package/dist/src/protocol/session-events/catalog.js +1 -0
  786. package/dist/src/protocol/session-events/checker.d.ts +23 -0
  787. package/dist/src/protocol/session-events/checker.js +1 -0
  788. package/dist/src/protocol/session-events/common.d.ts +105 -0
  789. package/dist/src/protocol/session-events/common.js +1 -0
  790. package/dist/src/protocol/session-events/envelope.d.ts +174 -0
  791. package/dist/src/protocol/session-events/envelope.js +1 -0
  792. package/dist/src/protocol/session-events/facts.d.ts +24 -0
  793. package/dist/src/protocol/session-events/facts.js +1 -0
  794. package/dist/src/protocol/session-events/families/call.d.ts +142 -0
  795. package/dist/src/protocol/session-events/families/call.js +1 -0
  796. package/dist/src/protocol/session-events/families/child.d.ts +51 -0
  797. package/dist/src/protocol/session-events/families/child.js +1 -0
  798. package/dist/src/protocol/session-events/families/content.d.ts +56 -0
  799. package/dist/src/protocol/session-events/families/content.js +1 -0
  800. package/dist/src/protocol/session-events/families/context.d.ts +55 -0
  801. package/dist/src/protocol/session-events/families/context.js +1 -0
  802. package/dist/src/protocol/session-events/families/delivery.d.ts +86 -0
  803. package/dist/src/protocol/session-events/families/delivery.js +1 -0
  804. package/dist/src/protocol/session-events/families/interaction.d.ts +163 -0
  805. package/dist/src/protocol/session-events/families/interaction.js +1 -0
  806. package/dist/src/protocol/session-events/families/model.d.ts +88 -0
  807. package/dist/src/protocol/session-events/families/model.js +1 -0
  808. package/dist/src/protocol/session-events/families/response.d.ts +66 -0
  809. package/dist/src/protocol/session-events/families/response.js +1 -0
  810. package/dist/src/protocol/session-events/families/session.d.ts +73 -0
  811. package/dist/src/protocol/session-events/families/session.js +1 -0
  812. package/dist/src/protocol/session-events/families/task.d.ts +46 -0
  813. package/dist/src/protocol/session-events/families/task.js +1 -0
  814. package/dist/src/protocol/session-events/families/turn.d.ts +68 -0
  815. package/dist/src/protocol/session-events/families/turn.js +1 -0
  816. package/dist/src/protocol/session-events/families/usage.d.ts +30 -0
  817. package/dist/src/protocol/session-events/families/usage.js +1 -0
  818. package/dist/src/protocol/session-events/guards.d.ts +11 -0
  819. package/dist/src/protocol/session-events/guards.js +1 -0
  820. package/dist/src/protocol/session-events/index.d.ts +16 -0
  821. package/dist/src/protocol/session-events/index.js +1 -0
  822. package/dist/src/protocol/session-events/json.d.ts +20 -0
  823. package/dist/src/protocol/session-events/json.js +1 -0
  824. package/dist/src/protocol/session-events/schemas.d.ts +320 -0
  825. package/dist/src/protocol/session-events/schemas.js +1 -0
  826. package/dist/src/protocol/session-http.d.ts +7 -0
  827. package/dist/src/protocol/session-http.js +1 -0
  828. package/dist/src/protocol/session-lines.d.ts +19 -0
  829. package/dist/src/protocol/session-lines.js +1 -0
  830. package/dist/src/protocol/session-projection/fold.d.ts +75 -0
  831. package/dist/src/protocol/session-projection/fold.js +1 -0
  832. package/dist/src/protocol/session-projection/index.d.ts +4 -0
  833. package/dist/src/protocol/session-projection/index.js +1 -0
  834. package/dist/src/protocol/session-projection/observations.d.ts +150 -0
  835. package/dist/src/protocol/session-projection/observations.js +1 -0
  836. package/dist/src/protocol/session-projection/public-view.d.ts +74 -0
  837. package/dist/src/protocol/session-projection/public-view.js +1 -0
  838. package/dist/src/protocol/session-projection/reader.d.ts +62 -0
  839. package/dist/src/protocol/session-projection/reader.js +1 -0
  840. package/dist/src/protocol/session-projection/request-status.d.ts +7 -0
  841. package/dist/src/protocol/session-projection/request-status.js +1 -0
  842. package/dist/src/protocol/session-projection/selectors.d.ts +169 -0
  843. package/dist/src/protocol/session-projection/selectors.js +2 -0
  844. package/dist/src/protocol/session-projection/session-view.d.ts +18 -0
  845. package/dist/src/protocol/session-projection/session-view.js +1 -0
  846. package/dist/src/protocol/session-projection/tables.d.ts +237 -0
  847. package/dist/src/protocol/session-projection/tables.js +1 -0
  848. package/dist/src/protocol/session-projection/tree.d.ts +72 -0
  849. package/dist/src/protocol/session-projection/tree.js +1 -0
  850. package/dist/src/protocol/session-projection.d.ts +38 -157
  851. package/dist/src/protocol/session-projection.js +1 -1
  852. package/dist/src/protocol/task-tools.d.ts +8 -6
  853. package/dist/src/protocol/task-tools.js +1 -1
  854. package/dist/src/protocol/v26-interactions.d.ts +11 -0
  855. package/dist/src/protocol/v26-interactions.js +1 -0
  856. package/dist/src/protocol/v26-lines.d.ts +5 -0
  857. package/dist/src/protocol/v26-lines.js +1 -0
  858. package/dist/src/public/agents/auth.d.ts +2 -2
  859. package/dist/src/public/agents/auth.js +1 -1
  860. package/dist/src/public/ai/index.d.ts +1 -0
  861. package/dist/src/public/channels/auth.d.ts +2 -532
  862. package/dist/src/public/channels/auth.js +1 -1
  863. package/dist/src/public/channels/chat-sdk/authorization.d.ts +5 -2
  864. package/dist/src/public/channels/chat-sdk/authorization.js +1 -3
  865. package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +10 -10
  866. package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -3
  867. package/dist/src/public/channels/chat-sdk/index.d.ts +1 -1
  868. package/dist/src/public/channels/chat-sdk/index.js +1 -1
  869. package/dist/src/public/channels/chat-sdk/input-actions.d.ts +4 -4
  870. package/dist/src/public/channels/chat-sdk/input-actions.js +3 -3
  871. package/dist/src/public/channels/chat-sdk/{messageToUserContent.d.ts → message-content.d.ts} +3 -3
  872. package/dist/src/public/channels/chat-sdk/message-content.js +1 -0
  873. package/dist/src/public/channels/discord/api.d.ts +8 -11
  874. package/dist/src/public/channels/discord/api.js +1 -1
  875. package/dist/src/public/channels/discord/attachments.d.ts +2 -2
  876. package/dist/src/public/channels/discord/authorization.d.ts +3 -13
  877. package/dist/src/public/channels/discord/authorization.js +2 -2
  878. package/dist/src/public/channels/discord/credentials.d.ts +11 -0
  879. package/dist/src/public/channels/discord/credentials.js +1 -0
  880. package/dist/src/public/channels/discord/defaults.d.ts +7 -1
  881. package/dist/src/public/channels/discord/defaults.js +1 -3
  882. package/dist/src/public/channels/discord/discordChannel.d.ts +36 -48
  883. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  884. package/dist/src/public/channels/discord/hitl.d.ts +5 -4
  885. package/dist/src/public/channels/discord/hitl.js +1 -1
  886. package/dist/src/public/channels/discord/index.d.ts +4 -12
  887. package/dist/src/public/channels/discord/index.js +1 -1
  888. package/dist/src/public/channels/discord/messages.js +1 -1
  889. package/dist/src/public/channels/github/defaults.js +2 -4
  890. package/dist/src/public/channels/github/githubChannel.d.ts +23 -36
  891. package/dist/src/public/channels/github/githubChannel.js +1 -1
  892. package/dist/src/public/channels/github/index.d.ts +3 -2
  893. package/dist/src/public/channels/github/index.js +1 -1
  894. package/dist/src/public/channels/github/state.d.ts +2 -0
  895. package/dist/src/public/channels/imessage-tapbacks.d.ts +1 -1
  896. package/dist/src/public/channels/index.d.ts +16 -37
  897. package/dist/src/public/channels/index.js +1 -1
  898. package/dist/src/public/channels/linear/defaults.js +2 -4
  899. package/dist/src/public/channels/linear/hitl.d.ts +3 -3
  900. package/dist/src/public/channels/linear/hitl.js +2 -2
  901. package/dist/src/public/channels/linear/inbound-uploads.d.ts +3 -3
  902. package/dist/src/public/channels/linear/inbound-uploads.js +1 -1
  903. package/dist/src/public/channels/linear/inbound.d.ts +5 -3
  904. package/dist/src/public/channels/linear/inbound.js +1 -1
  905. package/dist/src/public/channels/linear/index.d.ts +4 -6
  906. package/dist/src/public/channels/linear/index.js +1 -1
  907. package/dist/src/public/channels/linear/linearChannel.d.ts +19 -30
  908. package/dist/src/public/channels/linear/linearChannel.js +1 -1
  909. package/dist/src/public/channels/linq/inboundContent.d.ts +2 -2
  910. package/dist/src/public/channels/linq/inboundContent.js +1 -1
  911. package/dist/src/public/channels/linq/index.d.ts +1 -1
  912. package/dist/src/public/channels/linq/linqChannel.d.ts +1 -2
  913. package/dist/src/public/channels/mcp.d.ts +2 -2
  914. package/dist/src/public/channels/mcp.js +1 -1
  915. package/dist/src/public/channels/photon/inboundContent.d.ts +2 -2
  916. package/dist/src/public/channels/photon/inboundContent.js +1 -1
  917. package/dist/src/public/channels/photon/index.d.ts +1 -1
  918. package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +1 -2
  919. package/dist/src/public/channels/reply.d.ts +22 -0
  920. package/dist/src/public/channels/reply.js +3 -0
  921. package/dist/src/public/channels/slack/action-status.js +1 -1
  922. package/dist/src/public/channels/slack/{input-response.d.ts → answers.d.ts} +5 -5
  923. package/dist/src/public/channels/slack/answers.js +1 -0
  924. package/dist/src/public/channels/slack/api.d.ts +5 -2
  925. package/dist/src/public/channels/slack/api.js +1 -1
  926. package/dist/src/public/channels/slack/approval-cards.d.ts +15 -5
  927. package/dist/src/public/channels/slack/approval-cards.js +2 -2
  928. package/dist/src/public/channels/slack/attachments.d.ts +6 -6
  929. package/dist/src/public/channels/slack/attachments.js +1 -1
  930. package/dist/src/public/channels/slack/blocks.d.ts +1 -1
  931. package/dist/src/public/channels/slack/blocks.js +1 -1
  932. package/dist/src/public/channels/slack/cards.d.ts +576 -0
  933. package/dist/src/public/channels/slack/cards.js +1 -0
  934. package/dist/src/public/channels/slack/connections.d.ts +4 -22
  935. package/dist/src/public/channels/slack/connections.js +1 -1
  936. package/dist/src/public/channels/slack/defaults.d.ts +13 -2
  937. package/dist/src/public/channels/slack/defaults.js +5 -5
  938. package/dist/src/public/channels/slack/hitl.d.ts +20 -19
  939. package/dist/src/public/channels/slack/hitl.js +3 -3
  940. package/dist/src/public/channels/slack/index.d.ts +7 -16
  941. package/dist/src/public/channels/slack/index.js +1 -1
  942. package/dist/src/public/channels/slack/interaction-cards.js +1 -1
  943. package/dist/src/public/channels/slack/interactions.d.ts +2 -2
  944. package/dist/src/public/channels/slack/interactions.js +1 -1
  945. package/dist/src/public/channels/slack/limits.js +1 -1
  946. package/dist/src/public/channels/slack/private-approval-delivery.d.ts +3 -3
  947. package/dist/src/public/channels/slack/private-approval-delivery.js +1 -1
  948. package/dist/src/public/channels/slack/renderers.d.ts +21 -27
  949. package/dist/src/public/channels/slack/renderers.js +1 -1
  950. package/dist/src/public/channels/slack/reply-delivery.d.ts +4 -4
  951. package/dist/src/public/channels/slack/reply-delivery.js +1 -1
  952. package/dist/src/public/channels/slack/session-operations.d.ts +4 -4
  953. package/dist/src/public/channels/slack/sign-in-cancel.js +1 -1
  954. package/dist/src/public/channels/slack/slackChannel.d.ts +30 -37
  955. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  956. package/dist/src/public/channels/slack/task-card.d.ts +9 -9
  957. package/dist/src/public/channels/slack/task-card.js +1 -1
  958. package/dist/src/public/channels/teams/api.d.ts +3 -7
  959. package/dist/src/public/channels/teams/attachments.d.ts +4 -4
  960. package/dist/src/public/channels/teams/authorization.d.ts +5 -9
  961. package/dist/src/public/channels/teams/authorization.js +1 -1
  962. package/dist/src/public/channels/teams/credentials.d.ts +13 -0
  963. package/dist/src/public/channels/teams/credentials.js +1 -0
  964. package/dist/src/public/channels/teams/defaults.d.ts +2 -6
  965. package/dist/src/public/channels/teams/defaults.js +1 -3
  966. package/dist/src/public/channels/teams/hitl.d.ts +8 -7
  967. package/dist/src/public/channels/teams/hitl.js +1 -1
  968. package/dist/src/public/channels/teams/index.d.ts +6 -8
  969. package/dist/src/public/channels/teams/index.js +1 -1
  970. package/dist/src/public/channels/teams/teamsChannel.d.ts +25 -44
  971. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  972. package/dist/src/public/channels/telegram/api.d.ts +3 -4
  973. package/dist/src/public/channels/telegram/attachments.d.ts +5 -5
  974. package/dist/src/public/channels/telegram/authorization-callback.js +1 -1
  975. package/dist/src/public/channels/telegram/authorization.d.ts +4 -8
  976. package/dist/src/public/channels/telegram/authorization.js +2 -2
  977. package/dist/src/public/channels/telegram/credentials.d.ts +9 -0
  978. package/dist/src/public/channels/telegram/credentials.js +1 -0
  979. package/dist/src/public/channels/telegram/defaults.js +1 -3
  980. package/dist/src/public/channels/telegram/hitl.d.ts +22 -20
  981. package/dist/src/public/channels/telegram/hitl.js +2 -2
  982. package/dist/src/public/channels/telegram/index.d.ts +5 -7
  983. package/dist/src/public/channels/telegram/index.js +1 -1
  984. package/dist/src/public/channels/telegram/telegramChannel.d.ts +23 -36
  985. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  986. package/dist/src/public/channels/text.d.ts +4 -0
  987. package/dist/src/public/channels/text.js +1 -0
  988. package/dist/src/public/channels/twilio/api.d.ts +8 -8
  989. package/dist/src/public/channels/twilio/api.js +1 -1
  990. package/dist/src/public/channels/twilio/credentials.d.ts +7 -0
  991. package/dist/src/public/channels/twilio/credentials.js +1 -0
  992. package/dist/src/public/channels/twilio/defaults.d.ts +0 -1
  993. package/dist/src/public/channels/twilio/defaults.js +1 -5
  994. package/dist/src/public/channels/twilio/inbound.d.ts +2 -2
  995. package/dist/src/public/channels/twilio/index.d.ts +4 -4
  996. package/dist/src/public/channels/twilio/index.js +1 -1
  997. package/dist/src/public/channels/twilio/twilioChannel.d.ts +24 -37
  998. package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
  999. package/dist/src/public/channels/twilio/verify.d.ts +6 -4
  1000. package/dist/src/public/channels/undelivered-reply.d.ts +2 -2
  1001. package/dist/src/public/channels/upload-policy.d.ts +7 -7
  1002. package/dist/src/public/connections/index.d.ts +3 -5
  1003. package/dist/src/public/context/index.d.ts +3 -2
  1004. package/dist/src/public/definitions/agent.d.ts +18 -18
  1005. package/dist/src/public/definitions/agent.js +1 -1
  1006. package/dist/src/public/definitions/approval.d.ts +1 -1
  1007. package/dist/src/public/definitions/channel.d.ts +57 -60
  1008. package/dist/src/public/definitions/channel.js +1 -1
  1009. package/dist/src/public/definitions/connections/dynamic.d.ts +3 -15
  1010. package/dist/src/public/definitions/connections/dynamic.js +1 -1
  1011. package/dist/src/public/definitions/connections/events.d.ts +9 -9
  1012. package/dist/src/public/definitions/connections/mcp.d.ts +5 -3
  1013. package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
  1014. package/dist/src/public/definitions/extension.d.ts +2 -4
  1015. package/dist/src/public/definitions/extension.js +1 -1
  1016. package/dist/src/public/definitions/hook.d.ts +63 -85
  1017. package/dist/src/public/definitions/hook.js +1 -1
  1018. package/dist/src/public/definitions/instructions.d.ts +3 -10
  1019. package/dist/src/public/definitions/instructions.js +1 -1
  1020. package/dist/src/public/definitions/model.d.ts +21 -0
  1021. package/dist/src/public/definitions/model.js +1 -0
  1022. package/dist/src/public/definitions/removed-event-keys.d.ts +2 -0
  1023. package/dist/src/public/definitions/removed-event-keys.js +1 -0
  1024. package/dist/src/public/definitions/sandbox.d.ts +1 -1
  1025. package/dist/src/public/definitions/schedule.d.ts +4 -4
  1026. package/dist/src/public/definitions/skill.d.ts +5 -0
  1027. package/dist/src/public/definitions/skill.js +1 -1
  1028. package/dist/src/public/events/index.d.ts +27 -0
  1029. package/dist/src/public/events/index.js +1 -0
  1030. package/dist/src/public/experimental/connections/index.d.ts +1 -0
  1031. package/dist/src/public/experimental/connections/index.js +1 -0
  1032. package/dist/src/public/experimental/schedules/client.js +1 -1
  1033. package/dist/src/public/hooks/index.d.ts +4 -3
  1034. package/dist/src/public/index.d.ts +3 -2
  1035. package/dist/src/public/instructions/index.d.ts +2 -2
  1036. package/dist/src/public/instrumentation/index.d.ts +9 -28
  1037. package/dist/src/public/instrumentation/index.js +1 -1
  1038. package/dist/src/public/instrumentation/otel.d.ts +1 -1
  1039. package/dist/src/public/instrumentation/otel.js +1 -1
  1040. package/dist/src/public/instrumentation/provider.d.ts +1 -1
  1041. package/dist/src/public/instrumentation/provider.js +1 -1
  1042. package/dist/src/public/local-dev.d.ts +3 -1
  1043. package/dist/src/public/memory/file/backend.d.ts +1 -1
  1044. package/dist/src/public/memory/file/backends/in-memory.js +1 -1
  1045. package/dist/src/public/memory/file/backends/vercel-blob.js +1 -1
  1046. package/dist/src/public/memory/file/provider.js +1 -1
  1047. package/dist/src/public/memory/index.d.ts +14 -20
  1048. package/dist/src/public/models/index.d.ts +3 -0
  1049. package/dist/src/public/models/index.js +1 -1
  1050. package/dist/src/public/models/openai/index.d.ts +0 -2
  1051. package/dist/src/public/models/openai/index.js +1 -1
  1052. package/dist/src/public/next/index.d.ts +5 -36
  1053. package/dist/src/public/next/index.js +1 -1
  1054. package/dist/src/public/nuxt/index.d.ts +1 -1
  1055. package/dist/src/public/nuxt/module.d.ts +5 -2
  1056. package/dist/src/public/nuxt/module.js +1 -1
  1057. package/dist/src/public/sandbox/index.d.ts +1 -1
  1058. package/dist/src/public/sandbox/vercel-sandbox.d.ts +52 -12
  1059. package/dist/src/public/sandbox/vercel.d.ts +1 -1
  1060. package/dist/src/public/schedules/subscription.d.ts +5 -8
  1061. package/dist/src/public/server/index.d.ts +2 -14
  1062. package/dist/src/public/server/index.js +1 -1
  1063. package/dist/src/public/sessions/index.d.ts +6 -0
  1064. package/dist/src/public/sessions/index.js +1 -0
  1065. package/dist/src/public/skills/index.d.ts +2 -2
  1066. package/dist/src/public/skills/index.js +1 -1
  1067. package/dist/src/public/sveltekit/routing.d.ts +0 -4
  1068. package/dist/src/public/sveltekit/routing.js +1 -1
  1069. package/dist/src/public/tools/approval/index.d.ts +1 -1
  1070. package/dist/src/public/tools/bash.d.ts +1 -1
  1071. package/dist/src/public/tools/bash.js +1 -1
  1072. package/dist/src/public/tools/glob.d.ts +1 -1
  1073. package/dist/src/public/tools/glob.js +1 -1
  1074. package/dist/src/public/tools/grep.d.ts +1 -1
  1075. package/dist/src/public/tools/grep.js +1 -1
  1076. package/dist/src/public/tools/index.d.ts +5 -9
  1077. package/dist/src/public/tools/index.js +1 -1
  1078. package/dist/src/public/tools/read-file.d.ts +1 -1
  1079. package/dist/src/public/tools/read-file.js +1 -1
  1080. package/dist/src/public/tools/result.d.ts +17 -9
  1081. package/dist/src/public/tools/result.js +1 -1
  1082. package/dist/src/public/tools/web-fetch.d.ts +1 -1
  1083. package/dist/src/public/tools/web-fetch.js +1 -1
  1084. package/dist/src/public/tools/web-search.d.ts +1 -3
  1085. package/dist/src/public/tools/web-search.js +1 -1
  1086. package/dist/src/public/tools/write-file.d.ts +1 -1
  1087. package/dist/src/public/tools/write-file.js +1 -1
  1088. package/dist/src/public/workflow-modules.d.ts +8 -2
  1089. package/dist/src/react/index.d.ts +4 -7
  1090. package/dist/src/react/index.js +1 -1
  1091. package/dist/src/react/use-eve-agent.d.ts +68 -50
  1092. package/dist/src/react/use-eve-agent.js +1 -1
  1093. package/dist/src/reactions/bundle.d.ts +4 -0
  1094. package/dist/src/reactions/bundle.js +1 -0
  1095. package/dist/src/reactions/frame.d.ts +13 -0
  1096. package/dist/src/reactions/frame.js +1 -0
  1097. package/dist/src/reactions/intents.d.ts +22 -0
  1098. package/dist/src/reactions/intents.js +1 -0
  1099. package/dist/src/reactions/kinds/connection.d.ts +18 -0
  1100. package/dist/src/reactions/kinds/connection.js +1 -0
  1101. package/dist/src/reactions/kinds/hook.d.ts +8 -0
  1102. package/dist/src/reactions/kinds/hook.js +1 -0
  1103. package/dist/src/reactions/kinds/instructions.d.ts +21 -0
  1104. package/dist/src/reactions/kinds/instructions.js +1 -0
  1105. package/dist/src/reactions/kinds/memory.d.ts +72 -0
  1106. package/dist/src/reactions/kinds/memory.js +1 -0
  1107. package/dist/src/reactions/kinds/model.d.ts +21 -0
  1108. package/dist/src/reactions/kinds/model.js +1 -0
  1109. package/dist/src/reactions/kinds/skill.d.ts +27 -0
  1110. package/dist/src/reactions/kinds/skill.js +1 -0
  1111. package/dist/src/reactions/kinds/subagent.d.ts +16 -0
  1112. package/dist/src/reactions/kinds/subagent.js +1 -0
  1113. package/dist/src/reactions/kinds/tool.d.ts +16 -0
  1114. package/dist/src/reactions/kinds/tool.js +1 -0
  1115. package/dist/src/reactions/policy.d.ts +13 -0
  1116. package/dist/src/reactions/policy.js +1 -0
  1117. package/dist/src/reactions/reaction.d.ts +83 -0
  1118. package/dist/src/reactions/reaction.js +1 -0
  1119. package/dist/src/reactions/records.d.ts +40 -0
  1120. package/dist/src/reactions/records.js +1 -0
  1121. package/dist/src/reactions/remote.d.ts +25 -0
  1122. package/dist/src/reactions/remote.js +1 -0
  1123. package/dist/src/reactions/runner.d.ts +45 -0
  1124. package/dist/src/reactions/runner.js +1 -0
  1125. package/dist/src/reactions/state.d.ts +102 -0
  1126. package/dist/src/reactions/state.js +1 -0
  1127. package/dist/src/reactions/turn.d.ts +12 -0
  1128. package/dist/src/reactions/turn.js +2 -0
  1129. package/dist/src/runtime/agent/bootstrap.d.ts +1 -3
  1130. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  1131. package/dist/src/runtime/agent/resolve-model.d.ts +3 -4
  1132. package/dist/src/runtime/agent/resolve-model.js +1 -1
  1133. package/dist/src/runtime/connections/principal.d.ts +2 -0
  1134. package/dist/src/runtime/connections/principal.js +1 -1
  1135. package/dist/src/runtime/connections/registry.d.ts +2 -2
  1136. package/dist/src/runtime/connections/registry.js +1 -1
  1137. package/dist/src/runtime/connections/scoped-authorization.d.ts +8 -1
  1138. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  1139. package/dist/src/runtime/graph.d.ts +0 -6
  1140. package/dist/src/runtime/loaders/artifact-paths.d.ts +1 -0
  1141. package/dist/src/runtime/loaders/artifact-paths.js +1 -1
  1142. package/dist/src/runtime/loaders/bundled-artifacts.d.ts +2 -0
  1143. package/dist/src/runtime/loaders/bundled-artifacts.js +1 -1
  1144. package/dist/src/runtime/loaders/model-metadata.d.ts +4 -0
  1145. package/dist/src/runtime/loaders/model-metadata.js +1 -0
  1146. package/dist/src/runtime/local-dev-capability.d.ts +2 -3
  1147. package/dist/src/runtime/local-dev-capability.js +1 -1
  1148. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  1149. package/dist/src/runtime/resolve-agent.js +1 -1
  1150. package/dist/src/runtime/resolve-connection.js +1 -1
  1151. package/dist/src/runtime/resolve-dynamic.d.ts +9 -0
  1152. package/dist/src/runtime/resolve-dynamic.js +1 -0
  1153. package/dist/src/runtime/resolve-hook.js +1 -1
  1154. package/dist/src/runtime/resolve-memory.js +1 -1
  1155. package/dist/src/runtime/resolve-tool.js +1 -1
  1156. package/dist/src/runtime/schedules/collection-client.js +1 -1
  1157. package/dist/src/runtime/schedules/dispatch-occurrence.js +1 -1
  1158. package/dist/src/runtime/sessions/compiled-agent-cache.d.ts +3 -2
  1159. package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
  1160. package/dist/src/runtime/subagents/dynamic-agent-config.d.ts +2 -2
  1161. package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
  1162. package/dist/src/runtime/subagents/dynamic-remote-agent-config.d.ts +16 -3
  1163. package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
  1164. package/dist/src/runtime/subagents/workflow.js +1 -1
  1165. package/dist/src/runtime/types.d.ts +22 -39
  1166. package/dist/src/sandbox/provider.d.ts +5 -3
  1167. package/dist/src/sandbox/providers/default.d.ts +4 -2
  1168. package/dist/src/sandbox/providers/default.js +1 -1
  1169. package/dist/src/self-modification/agent.d.ts +3 -3
  1170. package/dist/src/self-modification/agent.js +1 -1
  1171. package/dist/src/self-modification/config.d.ts +1 -1
  1172. package/dist/src/self-modification/config.js +1 -1
  1173. package/dist/src/self-modification/deployed-sandbox.js +1 -1
  1174. package/dist/src/self-modification/extension/extension.d.ts +1 -0
  1175. package/dist/src/self-modification/extension/local-only.d.ts +1 -1
  1176. package/dist/src/self-modification/extension/local-only.js +1 -1
  1177. package/dist/src/self-modification/extension/subagents/agent/agent.d.ts +15 -4
  1178. package/dist/src/self-modification/extension/subagents/agent/agent.js +1 -1
  1179. package/dist/src/self-modification/extension/subagents/agent/instructions.d.ts +1 -1
  1180. package/dist/src/self-modification/extension/subagents/agent/instructions.js +2 -2
  1181. package/dist/src/self-modification/extension/subagents/agent/sandbox.d.ts +2 -2
  1182. package/dist/src/self-modification/extension/subagents/agent/sandbox.js +1 -1
  1183. package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.d.ts +3 -3
  1184. package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.js +1 -1
  1185. package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace.d.ts +1 -1
  1186. package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace_spans.d.ts +1 -1
  1187. package/dist/src/self-modification/extension/subagents/agent/tools/registry_add.d.ts +1 -1
  1188. package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.d.ts +1 -1
  1189. package/dist/src/self-modification/mode.d.ts +8 -0
  1190. package/dist/src/self-modification/mode.js +1 -1
  1191. package/dist/src/self-modification/remote/config.d.ts +3 -6
  1192. package/dist/src/self-modification/remote/extension.d.ts +1 -0
  1193. package/dist/src/self-modification/remote/production-registry-add.js +1 -1
  1194. package/dist/src/self-modification/remote/subagents/agent/agent.d.ts +6 -3
  1195. package/dist/src/self-modification/remote/subagents/agent/agent.js +1 -1
  1196. package/dist/src/self-modification/remote/subagents/agent/instructions.d.ts +1 -1
  1197. package/dist/src/self-modification/remote/subagents/agent/instructions.js +2 -2
  1198. package/dist/src/self-modification/remote/subagents/agent/tools/publish.d.ts +1 -3
  1199. package/dist/src/self-modification/remote/subagents/agent/tools/publish.js +1 -1
  1200. package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.d.ts +1 -3
  1201. package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.js +1 -1
  1202. package/dist/src/self-modification/scaffold.js +1 -1
  1203. package/dist/src/self-modification/setup.js +3 -6
  1204. package/dist/src/services/dev-client/client-options.js +1 -1
  1205. package/dist/src/services/dev-client.d.ts +4 -4
  1206. package/dist/src/services/dev-client.js +1 -1
  1207. package/dist/src/setup/flows/model-source-change.js +1 -1
  1208. package/dist/src/setup/integrations/self-modification/setup.d.ts +1 -4
  1209. package/dist/src/setup/integrations/self-modification/setup.js +1 -1
  1210. package/dist/src/setup/scaffold/create/project.js +1 -1
  1211. package/dist/src/setup/scaffold/create/web-template.d.ts +9 -18
  1212. package/dist/src/setup/scaffold/create/web-template.js +1015 -2537
  1213. package/dist/src/setup/verified-remote-agent.js +1 -1
  1214. package/dist/src/shared/action-label.d.ts +5 -3
  1215. package/dist/src/shared/action-label.js +1 -1
  1216. package/dist/src/shared/action-types.d.ts +5 -0
  1217. package/dist/src/shared/action-types.js +1 -1
  1218. package/dist/src/shared/agent-definition.d.ts +14 -10
  1219. package/dist/src/shared/answers-delivery-id.d.ts +1 -0
  1220. package/dist/src/shared/answers-delivery-id.js +1 -0
  1221. package/dist/src/shared/channel-context.d.ts +12 -0
  1222. package/dist/src/shared/channel-context.js +1 -0
  1223. package/dist/src/shared/channel-definition.d.ts +19 -26
  1224. package/dist/src/shared/channel-delivery.d.ts +16 -0
  1225. package/dist/src/shared/channel-delivery.js +1 -0
  1226. package/dist/src/shared/connection-events.d.ts +2 -2
  1227. package/dist/src/shared/connection-types.d.ts +7 -32
  1228. package/dist/src/shared/conversation-context.d.ts +4 -13
  1229. package/dist/src/shared/delivery.d.ts +38 -0
  1230. package/dist/src/shared/delivery.js +1 -0
  1231. package/dist/src/shared/history-message.d.ts +190 -0
  1232. package/dist/src/shared/history-message.js +1 -0
  1233. package/dist/src/shared/input.d.ts +23 -97
  1234. package/dist/src/shared/input.js +1 -1
  1235. package/dist/src/shared/instructions-definition.d.ts +2 -8
  1236. package/dist/src/shared/instrumentation-channel-kind.d.ts +1 -1
  1237. package/dist/src/shared/instrumentation-channel.d.ts +12 -0
  1238. package/dist/src/shared/instrumentation-channel.js +1 -0
  1239. package/dist/src/shared/json.d.ts +2 -18
  1240. package/dist/src/shared/memory-state.d.ts +4 -40
  1241. package/dist/src/shared/memory-state.js +1 -1
  1242. package/dist/src/shared/message-content.d.ts +19 -0
  1243. package/dist/src/shared/message-content.js +1 -0
  1244. package/dist/src/shared/network-address.d.ts +9 -0
  1245. package/dist/src/shared/network-address.js +1 -1
  1246. package/dist/src/shared/sandbox-environment.d.ts +2 -2
  1247. package/dist/src/shared/sandbox-provider.d.ts +1 -1
  1248. package/dist/src/shared/sandbox-session.d.ts +64 -85
  1249. package/dist/src/shared/schedule-definition.d.ts +5 -5
  1250. package/dist/src/shared/serialized-observability-state.d.ts +0 -2
  1251. package/dist/src/shared/serialized-observability-state.js +1 -1
  1252. package/dist/src/shared/session-history.d.ts +2 -2
  1253. package/dist/src/shared/session.d.ts +22 -0
  1254. package/dist/src/shared/session.js +1 -0
  1255. package/dist/src/shared/skill-definition.d.ts +1 -1
  1256. package/dist/src/shared/skill-package.d.ts +2 -2
  1257. package/dist/src/shared/skill-package.js +1 -1
  1258. package/dist/src/shared/token-usage-math.d.ts +5 -0
  1259. package/dist/src/shared/token-usage-math.js +1 -0
  1260. package/dist/src/shared/token-usage.d.ts +0 -2
  1261. package/dist/src/shared/token-usage.js +1 -1
  1262. package/dist/src/shared/validate-authorization.js +1 -1
  1263. package/dist/src/shared/wait-with-signal.d.ts +2 -0
  1264. package/dist/src/shared/wait-with-signal.js +1 -0
  1265. package/dist/src/subagents/adapter.d.ts +3 -5
  1266. package/dist/src/subagents/adapter.js +1 -1
  1267. package/dist/src/subagents/callback-route.js +1 -1
  1268. package/dist/src/subagents/event-proxy-step.d.ts +6 -9
  1269. package/dist/src/subagents/event-proxy-step.js +1 -1
  1270. package/dist/src/subagents/hitl-proxy.d.ts +11 -23
  1271. package/dist/src/subagents/hitl-proxy.js +1 -1
  1272. package/dist/src/subagents/invocation.d.ts +8 -8
  1273. package/dist/src/subagents/invocation.js +2 -2
  1274. package/dist/src/subagents/parent-notification.d.ts +5 -0
  1275. package/dist/src/subagents/parent-notification.js +1 -1
  1276. package/dist/src/subagents/protocol-two-callback.d.ts +27 -0
  1277. package/dist/src/subagents/protocol-two-callback.js +1 -0
  1278. package/dist/src/svelte/index.d.ts +3 -6
  1279. package/dist/src/svelte/index.js +2 -39
  1280. package/dist/src/svelte/use-eve-agent.d.ts +67 -56
  1281. package/dist/src/svelte/use-eve-agent.js +1 -1
  1282. package/dist/src/tool-stubs/rules.js +1 -1
  1283. package/dist/src/tools/approval/policies.d.ts +4 -16
  1284. package/dist/src/tools/approval/policies.js +1 -1
  1285. package/dist/src/tools/auth.d.ts +3 -3
  1286. package/dist/src/tools/definition.d.ts +13 -35
  1287. package/dist/src/tools/definition.js +1 -1
  1288. package/dist/src/tools/dynamic.d.ts +13 -72
  1289. package/dist/src/tools/dynamic.js +1 -1
  1290. package/dist/src/tools/framework/agent.js +1 -1
  1291. package/dist/src/tools/provided/ask-question-workflow.d.ts +3 -3
  1292. package/dist/src/tools/provided/ask-question-workflow.js +1 -1
  1293. package/dist/src/tools/provided/ask-question.d.ts +2 -2
  1294. package/dist/src/tools/provided/ask-question.js +1 -1
  1295. package/dist/src/tools/provided/grep.d.ts +2 -15
  1296. package/dist/src/tools/provided/grep.js +1 -2
  1297. package/dist/src/tools/provided/no-reply.d.ts +2 -2
  1298. package/dist/src/tools/provided/no-reply.js +1 -1
  1299. package/dist/src/tools/provided/sleep-workflow.js +1 -1
  1300. package/dist/src/tools/provided/sleep.d.ts +2 -2
  1301. package/dist/src/tools/provided/sleep.js +1 -1
  1302. package/dist/src/tools/provided/workflow.js +1 -1
  1303. package/dist/src/tools/workflow-definition.d.ts +17 -15
  1304. package/dist/src/tracing/eve/agent-approval-instrumentation.d.ts +1 -1
  1305. package/dist/src/tracing/eve/agent-approval-instrumentation.js +1 -1
  1306. package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.d.ts +2 -2
  1307. package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.js +1 -1
  1308. package/dist/src/tracing/eve/agent-invocation-coordinator.d.ts +2 -2
  1309. package/dist/src/tracing/eve/agent-otel-provider.js +1 -1
  1310. package/dist/src/tracing/eve/agent-tool-instrumentation.d.ts +6 -7
  1311. package/dist/src/tracing/eve/agent-tool-instrumentation.js +1 -1
  1312. package/dist/src/tracing/eve/agent-trace-context-store.d.ts +3 -3
  1313. package/dist/src/tracing/eve/agent-trace-state.d.ts +1 -6
  1314. package/dist/src/tracing/eve/delegation.d.ts +4 -4
  1315. package/dist/src/tracing/eve/install-instrumentation-runtime.js +1 -1
  1316. package/dist/src/tracing/eve/invoke-tool-span.d.ts +3 -2
  1317. package/dist/src/tracing/eve/invoke-tool-span.js +1 -1
  1318. package/dist/src/tracing/eve/otel-declaration.d.ts +9 -10
  1319. package/dist/src/tracing/eve/otel-declaration.js +1 -1
  1320. package/dist/src/tracing/eve/policy.d.ts +2 -2
  1321. package/dist/src/tracing/eve/policy.js +1 -1
  1322. package/dist/src/tracing/eve/session.d.ts +4 -3
  1323. package/dist/src/tracing/eve/session.js +1 -1
  1324. package/dist/src/vue/index.d.ts +3 -6
  1325. package/dist/src/vue/index.js +2 -39
  1326. package/dist/src/vue/use-eve-agent.d.ts +70 -59
  1327. package/dist/src/vue/use-eve-agent.js +1 -1
  1328. package/docs/agent-config.md +41 -44
  1329. package/docs/channels/chat-sdk.mdx +19 -13
  1330. package/docs/channels/custom.mdx +106 -85
  1331. package/docs/channels/discord.mdx +12 -12
  1332. package/docs/channels/eve.mdx +48 -15
  1333. package/docs/channels/github.mdx +2 -2
  1334. package/docs/channels/linear.mdx +8 -8
  1335. package/docs/channels/linq.mdx +1 -1
  1336. package/docs/channels/mcp.mdx +2 -2
  1337. package/docs/channels/overview.mdx +11 -1
  1338. package/docs/channels/photon.mdx +1 -1
  1339. package/docs/channels/slack.mdx +64 -57
  1340. package/docs/channels/teams.mdx +4 -4
  1341. package/docs/channels/telegram.mdx +1 -1
  1342. package/docs/channels/twilio.mdx +2 -2
  1343. package/docs/code-extension.mdx +19 -7
  1344. package/docs/concepts/built-in-tools.md +21 -9
  1345. package/docs/concepts/context-control.md +5 -8
  1346. package/docs/concepts/default-harness.md +13 -8
  1347. package/docs/concepts/execution-model-and-durability.mdx +119 -12
  1348. package/docs/concepts/meta.json +1 -0
  1349. package/docs/concepts/sessions-runs-and-streaming.md +244 -138
  1350. package/docs/concepts/state.md +1 -1
  1351. package/docs/concepts/upgrade-to-v27-events.md +128 -0
  1352. package/docs/connections/mcp.mdx +38 -34
  1353. package/docs/connections/openapi.mdx +23 -2
  1354. package/docs/connections/overview.mdx +66 -57
  1355. package/docs/evals/assertions.mdx +30 -24
  1356. package/docs/evals/cases.mdx +19 -24
  1357. package/docs/evals/judge.mdx +15 -2
  1358. package/docs/evals/overview.mdx +7 -7
  1359. package/docs/evals/reporters.mdx +15 -11
  1360. package/docs/evals/targets.mdx +5 -3
  1361. package/docs/evals/tool-stubs.mdx +2 -2
  1362. package/docs/extensions.md +6 -3
  1363. package/docs/guides/client/continuations.mdx +10 -10
  1364. package/docs/guides/client/messages.mdx +50 -48
  1365. package/docs/guides/client/output-schema.mdx +13 -13
  1366. package/docs/guides/client/overview.mdx +35 -13
  1367. package/docs/guides/client/streaming.mdx +160 -123
  1368. package/docs/guides/decide.md +15 -9
  1369. package/docs/guides/deployment/self-hosting.md +5 -40
  1370. package/docs/guides/dynamic-capabilities.md +151 -406
  1371. package/docs/guides/frontend/nextjs.mdx +1 -1
  1372. package/docs/guides/frontend/nuxt.mdx +2 -2
  1373. package/docs/guides/frontend/overview.mdx +257 -181
  1374. package/docs/guides/frontend/sveltekit.mdx +4 -4
  1375. package/docs/guides/frontend/tanstack.mdx +5 -5
  1376. package/docs/guides/frontend/use-eve-agent-svelte.mdx +30 -38
  1377. package/docs/guides/frontend/use-eve-agent-vue.mdx +35 -36
  1378. package/docs/guides/hooks.md +67 -55
  1379. package/docs/guides/instrumentation/instrumentation.mdx +33 -27
  1380. package/docs/guides/instrumentation/otel.mdx +4 -2
  1381. package/docs/guides/remote-agents.md +116 -50
  1382. package/docs/guides/self-modification.md +11 -7
  1383. package/docs/instructions.mdx +4 -6
  1384. package/docs/memory/custom-provider.md +63 -56
  1385. package/docs/memory/file.md +1 -1
  1386. package/docs/memory/overview.mdx +10 -18
  1387. package/docs/patterns/durable-cross-channel-notifications.md +4 -3
  1388. package/docs/patterns/multi-tenant-approvals.md +3 -3
  1389. package/docs/patterns/multi-tenant-auth.md +3 -3
  1390. package/docs/patterns/multi-tenant-memory.md +6 -7
  1391. package/docs/patterns/voice-notes.md +1 -1
  1392. package/docs/reference/cli.md +9 -25
  1393. package/docs/reference/typescript-api.md +85 -60
  1394. package/docs/sandbox/custom-providers.mdx +13 -14
  1395. package/docs/sandbox/default.mdx +1 -1
  1396. package/docs/sandbox/docker.mdx +10 -0
  1397. package/docs/sandbox/index.mdx +5 -1
  1398. package/docs/sandbox/vercel.mdx +6 -6
  1399. package/docs/schedules.mdx +4 -4
  1400. package/docs/skills.mdx +6 -6
  1401. package/docs/subagents/index.mdx +25 -34
  1402. package/docs/tools/human-in-the-loop.md +42 -34
  1403. package/docs/tools/overview.mdx +14 -12
  1404. package/docs/tools/tasks-upgrade.md +13 -1
  1405. package/docs/tools/tasks.md +58 -89
  1406. package/docs/tools/workflows.mdx +48 -33
  1407. package/docs/tutorial/guard-the-spend.mdx +1 -1
  1408. package/docs/tutorial/run-analysis.mdx +15 -12
  1409. package/docs/tutorial/team-playbooks.mdx +19 -23
  1410. package/package.json +147 -96
  1411. package/dist/src/chunks/use-eve-agent-BE2_zd5q.js +0 -4968
  1412. package/dist/src/chunks/use-eve-agent-e8a5vcFO.js +0 -4926
  1413. package/dist/src/cli/invoke/command.d.ts +0 -19
  1414. package/dist/src/cli/invoke/command.js +0 -1
  1415. package/dist/src/cli/invoke/invoke.d.ts +0 -27
  1416. package/dist/src/cli/invoke/invoke.js +0 -1
  1417. package/dist/src/cli/invoke/result.d.ts +0 -137
  1418. package/dist/src/cli/invoke/result.js +0 -1
  1419. package/dist/src/client/agent-host.d.ts +0 -4
  1420. package/dist/src/client/agent-host.js +0 -1
  1421. package/dist/src/client/authorization-message-parts.d.ts +0 -4
  1422. package/dist/src/client/authorization-message-parts.js +0 -1
  1423. package/dist/src/client/conversation-projection.d.ts +0 -4
  1424. package/dist/src/client/conversation-projection.js +0 -1
  1425. package/dist/src/client/conversation-reducer.d.ts +0 -29
  1426. package/dist/src/client/conversation-reducer.js +0 -1
  1427. package/dist/src/client/eve-agent-projection.d.ts +0 -28
  1428. package/dist/src/client/eve-agent-projection.js +0 -1
  1429. package/dist/src/client/eve-agent-store-helpers.d.ts +0 -34
  1430. package/dist/src/client/eve-agent-store-helpers.js +0 -2
  1431. package/dist/src/client/eve-agent-store-state.d.ts +0 -96
  1432. package/dist/src/client/eve-agent-store.d.ts +0 -45
  1433. package/dist/src/client/eve-agent-store.js +0 -1
  1434. package/dist/src/client/message-action-parts.d.ts +0 -37
  1435. package/dist/src/client/message-action-parts.js +0 -1
  1436. package/dist/src/client/message-reducer-primitives.d.ts +0 -6
  1437. package/dist/src/client/message-reducer-primitives.js +0 -1
  1438. package/dist/src/client/message-reducer-types.d.ts +0 -244
  1439. package/dist/src/client/message-reducer.d.ts +0 -14
  1440. package/dist/src/client/message-reducer.js +0 -1
  1441. package/dist/src/client/message-response.d.ts +0 -74
  1442. package/dist/src/client/message-response.js +0 -1
  1443. package/dist/src/client/message-run-parts.d.ts +0 -22
  1444. package/dist/src/client/message-run-parts.js +0 -1
  1445. package/dist/src/client/output-schema.d.ts +0 -5
  1446. package/dist/src/client/output-schema.js +0 -1
  1447. package/dist/src/client/reducer.d.ts +0 -67
  1448. package/dist/src/client/session-turn-dispatch.d.ts +0 -15
  1449. package/dist/src/client/session-turn-dispatch.js +0 -1
  1450. package/dist/src/client/tool-call-state.d.ts +0 -23
  1451. package/dist/src/client/tool-call-state.js +0 -1
  1452. package/dist/src/client/tool-part-state.d.ts +0 -7
  1453. package/dist/src/client/tool-part-state.js +0 -1
  1454. package/dist/src/client/transcript-reducer.d.ts +0 -49
  1455. package/dist/src/client/transcript-reducer.js +0 -2
  1456. package/dist/src/compiled/_chunks/node/token-Bedbhv5z.js +0 -1
  1457. package/dist/src/compiled/_chunks/node/token-util-DpJNusVS.js +0 -1
  1458. package/dist/src/compiled/_chunks/node/token-util-DwHQ2a3c.js +0 -1
  1459. package/dist/src/compiled/_chunks/node/version-C__MqbLM.js +0 -1
  1460. package/dist/src/context/build-dynamic-tools.d.ts +0 -10
  1461. package/dist/src/context/build-dynamic-tools.js +0 -1
  1462. package/dist/src/context/dynamic-connection-lifecycle.d.ts +0 -15
  1463. package/dist/src/context/dynamic-connection-lifecycle.js +0 -1
  1464. package/dist/src/context/dynamic-instruction-lifecycle.d.ts +0 -31
  1465. package/dist/src/context/dynamic-instruction-lifecycle.js +0 -1
  1466. package/dist/src/context/dynamic-model-lifecycle.d.ts +0 -19
  1467. package/dist/src/context/dynamic-model-lifecycle.js +0 -1
  1468. package/dist/src/context/dynamic-resolve-context.d.ts +0 -12
  1469. package/dist/src/context/dynamic-resolve-context.js +0 -1
  1470. package/dist/src/context/dynamic-skill-lifecycle.d.ts +0 -15
  1471. package/dist/src/context/dynamic-skill-lifecycle.js +0 -1
  1472. package/dist/src/context/dynamic-subagent-lifecycle.d.ts +0 -27
  1473. package/dist/src/context/dynamic-subagent-lifecycle.js +0 -1
  1474. package/dist/src/context/dynamic-tool-lifecycle.d.ts +0 -46
  1475. package/dist/src/context/dynamic-tool-lifecycle.js +0 -1
  1476. package/dist/src/context/dynamic-tool-metadata.d.ts +0 -47
  1477. package/dist/src/context/dynamic-tool-metadata.js +0 -1
  1478. package/dist/src/context/effective-model.d.ts +0 -5
  1479. package/dist/src/context/effective-model.js +0 -1
  1480. package/dist/src/context/hook-lifecycle.d.ts +0 -15
  1481. package/dist/src/context/hook-lifecycle.js +0 -1
  1482. package/dist/src/context/memory-event-lifecycle.d.ts +0 -15
  1483. package/dist/src/context/memory-event-lifecycle.js +0 -1
  1484. package/dist/src/context/memory-lifecycle.d.ts +0 -47
  1485. package/dist/src/context/memory-lifecycle.js +0 -1
  1486. package/dist/src/context/serialized-dynamic-model-selection.d.ts +0 -2
  1487. package/dist/src/context/serialized-dynamic-model-selection.js +0 -1
  1488. package/dist/src/execution/cancel-descendant-turns-step.d.ts +0 -6
  1489. package/dist/src/execution/cancel-descendant-turns-step.js +0 -1
  1490. package/dist/src/execution/dynamic-connection-recovery.d.ts +0 -14
  1491. package/dist/src/execution/dynamic-connection-recovery.js +0 -1
  1492. package/dist/src/execution/dynamic-connections.d.ts +0 -12
  1493. package/dist/src/execution/dynamic-connections.js +0 -1
  1494. package/dist/src/execution/history-view.d.ts +0 -10
  1495. package/dist/src/execution/history-view.js +0 -1
  1496. package/dist/src/execution/legacy-remote-agent/protocol.d.ts +0 -49
  1497. package/dist/src/execution/legacy-remote-agent/protocol.js +0 -1
  1498. package/dist/src/execution/runtime-errors.d.ts +0 -13
  1499. package/dist/src/execution/runtime-errors.js +0 -1
  1500. package/dist/src/execution/sandbox/grep-tool.d.ts +0 -26
  1501. package/dist/src/execution/sandbox/grep-tool.js +0 -3
  1502. package/dist/src/execution/session/turn-waiting-step.d.ts +0 -4
  1503. package/dist/src/execution/session/turn-waiting-step.js +0 -1
  1504. package/dist/src/execution/tools/workflow/cancel.d.ts +0 -13
  1505. package/dist/src/execution/tools/workflow/cancel.js +0 -1
  1506. package/dist/src/execution/workflow-trace-context.d.ts +0 -8
  1507. package/dist/src/execution/workflow-trace-context.js +0 -1
  1508. package/dist/src/extensions/code/extension/instructions/github.d.ts +0 -3
  1509. package/dist/src/extensions/code/extension/instructions/github.js +0 -1
  1510. package/dist/src/extensions/code/extension/lib/github-compat.d.ts +0 -28
  1511. package/dist/src/extensions/code/extension/lib/github-compat.js +0 -1
  1512. package/dist/src/extensions/code/extension/lib/grep-search.js +0 -6
  1513. package/dist/src/extensions/code/extension/skills/pr.d.ts +0 -6
  1514. package/dist/src/extensions/code/extension/skills/pr.js +0 -1
  1515. package/dist/src/extensions/code/extension/tools/gh.d.ts +0 -28
  1516. package/dist/src/extensions/code/extension/tools/gh.js +0 -1
  1517. package/dist/src/harness/approval-recheck.d.ts +0 -7
  1518. package/dist/src/harness/approval-recheck.js +0 -1
  1519. package/dist/src/harness/authorization-event-fields.d.ts +0 -16
  1520. package/dist/src/harness/authorization-event-fields.js +0 -1
  1521. package/dist/src/harness/hitl/candidates.d.ts +0 -139
  1522. package/dist/src/harness/hitl/candidates.js +0 -1
  1523. package/dist/src/harness/hitl/coordinator.d.ts +0 -35
  1524. package/dist/src/harness/hitl/coordinator.js +0 -1
  1525. package/dist/src/harness/input-extraction.d.ts +0 -13
  1526. package/dist/src/harness/input-extraction.js +0 -1
  1527. package/dist/src/harness/input-request-class.d.ts +0 -3
  1528. package/dist/src/harness/input-request-class.js +0 -1
  1529. package/dist/src/harness/input-request-resolution.d.ts +0 -39
  1530. package/dist/src/harness/input-request-resolution.js +0 -1
  1531. package/dist/src/harness/open-input-request.d.ts +0 -8
  1532. package/dist/src/harness/open-input-request.js +0 -1
  1533. package/dist/src/harness/session-machine/events.d.ts +0 -6
  1534. package/dist/src/harness/session-machine/events.js +0 -1
  1535. package/dist/src/harness/session-machine/resolver-events.d.ts +0 -12
  1536. package/dist/src/harness/session-machine/resolver-events.js +0 -1
  1537. package/dist/src/harness/tool-call-action.d.ts +0 -9
  1538. package/dist/src/harness/tool-call-action.js +0 -1
  1539. package/dist/src/harness/tool-interrupts.d.ts +0 -22
  1540. package/dist/src/harness/tool-interrupts.js +0 -1
  1541. package/dist/src/harness/tool-presentation.d.ts +0 -5
  1542. package/dist/src/harness/tool-presentation.js +0 -1
  1543. package/dist/src/harness/turn-tag-state.d.ts +0 -115
  1544. package/dist/src/harness/turn-tag-state.js +0 -1
  1545. package/dist/src/internal/dynamic-tool-rebind.d.ts +0 -3
  1546. package/dist/src/internal/dynamic-tool-rebind.js +0 -1
  1547. package/dist/src/internal/nitro/host/extension-capability-requirements.d.ts +0 -14
  1548. package/dist/src/internal/nitro/host/extension-capability-requirements.js +0 -1
  1549. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.d.ts +0 -12
  1550. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.js +0 -1
  1551. package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.d.ts +0 -7
  1552. package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.js +0 -3
  1553. package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.d.ts +0 -79
  1554. package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.js +0 -1
  1555. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.d.ts +0 -14
  1556. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +0 -3
  1557. package/dist/src/protocol/event-dedupe.d.ts +0 -26
  1558. package/dist/src/protocol/event-dedupe.js +0 -1
  1559. package/dist/src/protocol/event-id.d.ts +0 -10
  1560. package/dist/src/protocol/event-id.js +0 -1
  1561. package/dist/src/protocol/message-version.d.ts +0 -53
  1562. package/dist/src/protocol/message-version.js +0 -1
  1563. package/dist/src/protocol/message.d.ts +0 -1198
  1564. package/dist/src/protocol/message.js +0 -2
  1565. package/dist/src/public/channels/chat-sdk/messageToUserContent.js +0 -1
  1566. package/dist/src/public/channels/slack/input-response.js +0 -1
  1567. package/dist/src/runtime/agent/model-catalog.d.ts +0 -10
  1568. package/dist/src/runtime/agent/model-catalog.js +0 -1
  1569. package/dist/src/runtime/hooks/registry.d.ts +0 -34
  1570. package/dist/src/runtime/hooks/registry.js +0 -1
  1571. package/dist/src/runtime/resolve-dynamic-connection.d.ts +0 -5
  1572. package/dist/src/runtime/resolve-dynamic-connection.js +0 -1
  1573. package/dist/src/runtime/resolve-dynamic-instructions.d.ts +0 -4
  1574. package/dist/src/runtime/resolve-dynamic-instructions.js +0 -1
  1575. package/dist/src/runtime/resolve-dynamic-skill.d.ts +0 -8
  1576. package/dist/src/runtime/resolve-dynamic-skill.js +0 -1
  1577. package/dist/src/runtime/resolve-dynamic-subagent.d.ts +0 -9
  1578. package/dist/src/runtime/resolve-dynamic-subagent.js +0 -1
  1579. package/dist/src/runtime/resolve-dynamic-tool.d.ts +0 -12
  1580. package/dist/src/runtime/resolve-dynamic-tool.js +0 -1
  1581. package/dist/src/self-modification/migration.d.ts +0 -9
  1582. package/dist/src/self-modification/migration.js +0 -28
  1583. package/dist/src/shared/history-view.d.ts +0 -22
  1584. package/dist/src/shared/history-view.js +0 -1
  1585. package/dist/src/shared/package-version.d.ts +0 -2
  1586. package/dist/src/shared/package-version.js +0 -1
  1587. package/dist/src/tools/durable-callbacks.d.ts +0 -118
  1588. package/dist/src/tools/durable-callbacks.js +0 -1
  1589. package/dist/src/tools/durable-schema.d.ts +0 -16
  1590. package/dist/src/tools/durable-schema.js +0 -1
  1591. /package/dist/src/{client/eve-agent-store-state.js → ai/decision-types.js} +0 -0
  1592. /package/dist/src/client/{message-reducer-types.js → agent-info-types.js} +0 -0
  1593. /package/dist/src/client/{reducer.js → health-types.js} +0 -0
  1594. /package/dist/src/{shared → protocol/session-projection}/display-name.d.ts +0 -0
  1595. /package/dist/src/{shared → protocol/session-projection}/display-name.js +0 -0
@@ -1 +1 @@
1
- import{createLogger}from"#internal/logging.js";import{resolveAssistantStepText}from"#harness/messages.js";import{EmptyModelResponseError,extractUnsupportedProviderToolTypes,isNoOutputGeneratedError}from"#harness/model-call/errors.js";import{resolveFrameworkToolFromUpstreamType}from"#harness/provider-tools.js";const log=createLogger(`harness.tool-loop`);async function recoverModelCall(e){let{error:t}=e,n={sessionId:e.sessionId,turnId:e.turnId},r={},i=extractUnsupportedProviderToolTypes(t),a=[...new Set(i.flatMap(e=>resolveFrameworkToolFromUpstreamType(e)??[]))];if(a.length>0){log.warn(`disabling unsupported provider tool(s); retrying step once`,{...n,disabled:a,upstreamTypes:i}),r={disabledProviderTools:new Set(a),extraSystemNote:buildDisabledToolNote(a)};try{return{result:await e.call({...r,suppressStepStartedEmission:!0})}}catch(e){t=e}}if(t instanceof EmptyModelResponseError){log.warn(`empty model response; reissuing the model call once`,n);try{return{result:await e.call({...r,retryReason:`empty-response`,suppressStepStartedEmission:!0,trailingUserNote:EMPTY_RESPONSE_NUDGE})}}catch(e){t=e}}return{error:t}}function buildDisabledToolNote(e){let t=e.join(`, `);return`The following ${e.length===1?`tool is`:`tools are`} not available with the current model and has been removed: ${t}. Proceed using the remaining tools or your training knowledge.`}function isEmptyModelResponse(e){return e.toolCalls.length===0&&e.toolResults.length===0&&resolveAssistantStepText(e.response.messages,e.text)===null}function rethrowNoOutputAsEmptyResponse(e){throw isNoOutputGeneratedError(e)?new EmptyModelResponseError({cause:e}):e}const EMPTY_RESPONSE_NUDGE=`Your previous reply was empty and was not delivered. Continue the current user request. Reuse completed results when they satisfy the request. If existing results are stale or insufficient, use the appropriate read tools to get fresh results. Do not repeat writes or other side effects that already completed. Do not mention this notice.`;export{isEmptyModelResponse,recoverModelCall,rethrowNoOutputAsEmptyResponse};
1
+ import{createLogger}from"#internal/logging.js";import{resolveAssistantStepText}from"#harness/messages.js";import{EmptyModelResponseError,extractUnsupportedProviderToolTypes,isNoOutputGeneratedError}from"#harness/model-call/errors.js";import{resolveFrameworkToolFromUpstreamType}from"#harness/provider-tools.js";const log=createLogger(`harness.tool-loop`);function recoverModelCall(e,t,n){if(t.retryReason===void 0){if(t.disabledProviderTools===void 0){let t=extractUnsupportedProviderToolTypes(e),r=[...new Set(t.flatMap(e=>resolveFrameworkToolFromUpstreamType(e)??[]))];if(r.length>0)return log.warn(`disabling unsupported provider tool(s); retrying step once`,{...n,disabled:r,upstreamTypes:t}),{disabledProviderTools:new Set(r),extraSystemNote:buildDisabledToolNote(r)}}if(e instanceof EmptyModelResponseError)return log.warn(`empty model response; reissuing the model call once`,n),{...t,retryReason:`empty-response`,trailingUserNote:EMPTY_RESPONSE_NUDGE}}}function buildDisabledToolNote(e){let t=e.join(`, `);return`The following ${e.length===1?`tool is`:`tools are`} not available with the current model and has been removed: ${t}. Proceed using the remaining tools or your training knowledge.`}function isEmptyModelResponse(e){return e.toolCalls.length===0&&e.toolResults.length===0&&resolveAssistantStepText(e.response.messages,e.text)===null}function rethrowNoOutputAsEmptyResponse(e){throw isNoOutputGeneratedError(e)?new EmptyModelResponseError({cause:e}):e}const EMPTY_RESPONSE_NUDGE=`Your previous reply was empty and was not delivered. Continue the current user request. Reuse completed results when they satisfy the request. If existing results are stale or insufficient, use the appropriate read tools to get fresh results. Do not repeat writes or other side effects that already completed. Do not mention this notice.`;export{isEmptyModelResponse,recoverModelCall,rethrowNoOutputAsEmptyResponse};
@@ -17,7 +17,6 @@ export declare function requestMessages(step: Step, input: {
17
17
  readonly projectedMessages: readonly HarnessModelMessage[];
18
18
  readonly turnMessages: readonly HarnessModelMessage[];
19
19
  readonly catalog: StepCatalog;
20
- readonly hidesHeldText: boolean;
21
20
  readonly pendingApprovalsNote: string | undefined;
22
21
  }): RequestMessages;
23
22
  /** The call's system instructions: a retry's note, the agent's system prompt, then the step's. */
@@ -1,3 +1,3 @@
1
- import{DynamicSkillManifestKey,HistoryStateKey}from"#context/keys.js";import{createFrameworkUserMessage}from"#harness/messages.js";import{dynamicSkillAnnouncements}from"#execution/skills/instructions.js";import{taskSystemMessages}from"#execution/tasks/model-step.js";import{buildDynamicInstructionMessages}from"#context/dynamic-instruction-lifecycle.js";import{catalogAnnouncements}from"#execution/catalog/listing.js";import{createCurrentMessages}from"#harness/current-messages.js";import{applySystemCacheBreakpoint}from"#harness/prompt-cache.js";function requestMessages(e,t){let{ctx:n}=e,r=createCurrentMessages(t.messages,{historyState:n?.get(HistoryStateKey),currentTurnMessages:t.turnMessages,projectedMessages:t.projectedMessages});n!==void 0&&r.addSystem(buildDynamicInstructionMessages(n)),r.addSystem(taskSystemMessages(t.catalog.offersTasks,{finalReplyOnly:t.hidesHeldText}));let i=n?.get(HistoryStateKey)?.announcements;return r.addAnnouncements({...catalogAnnouncements(t.catalog,i),...dynamicSkillAnnouncements(n?.get(DynamicSkillManifestKey),i)}),t.pendingApprovalsNote!==void 0&&r.add(t.pendingApprovalsNote,`context.state`,{cacheFriendly:!1}),r}function modelInstructions(e){let{session:t}=e,n=e.extraSystemNote?[{role:`system`,content:e.extraSystemNote}]:[];if(e.systemMessages.length===0&&n.length===0)return t.agent.system??void 0;let r=t.agent.system?[{role:`system`,content:t.agent.system}]:[],i=[...n,...r,...e.systemMessages];return mergeSystemInstructions(e.anthropicCache?applySystemCacheBreakpoint(i,e.anthropicCache):i)}function withTrailingUserNote(e,t){return t?[...e,createFrameworkUserMessage(`execution.retry`,t)]:[...e]}function mergeSystemInstructions(e){if(e.length===0)return;if(e.length===1)return{...e[0]};let t;for(let n of e)n.providerOptions!==void 0&&(t={...t,...n.providerOptions});let n={role:`system`,content:e.map(e=>e.content).join(`
1
+ import{HistoryStateKey}from"#context/keys.js";import{memoryRecallContents}from"#reactions/kinds/memory.js";import{createFrameworkUserMessage}from"#harness/messages.js";import{dynamicSkillAnnouncements}from"#execution/skills/instructions.js";import{dynamicSkillManifest}from"#reactions/kinds/skill.js";import{taskSystemMessages}from"#execution/tasks/model-step.js";import{dynamicInstructionMessages}from"#reactions/kinds/instructions.js";import{catalogAnnouncements}from"#execution/catalog/listing.js";import{createCurrentMessages}from"#harness/current-messages.js";import{applySystemCacheBreakpoint}from"#harness/prompt-cache.js";function requestMessages(e,t){let{ctx:n}=e,r=createCurrentMessages(t.messages,{historyState:n?.get(HistoryStateKey),currentTurnMessages:t.turnMessages,projectedMessages:t.projectedMessages});r.addSystem(dynamicInstructionMessages(n)),r.addSystem(taskSystemMessages(t.catalog.offersTasks,e.finalReplyOnly));let i=n?.get(HistoryStateKey)?.announcements;return r.addAnnouncements({...catalogAnnouncements(t.catalog,i),...dynamicSkillAnnouncements(dynamicSkillManifest(n),i)}),t.pendingApprovalsNote!==void 0&&r.add(t.pendingApprovalsNote,`context.state`,{cacheFriendly:!1}),r.addAnchored(memoryRecallContents(n),`memory.load`),r}function modelInstructions(e){let{session:t}=e,n=e.extraSystemNote?[{role:`system`,content:e.extraSystemNote}]:[];if(e.systemMessages.length===0&&n.length===0)return t.agent.system??void 0;let r=t.agent.system?[{role:`system`,content:t.agent.system}]:[],i=[...n,...r,...e.systemMessages];return mergeSystemInstructions(e.anthropicCache?applySystemCacheBreakpoint(i,e.anthropicCache):i)}function withTrailingUserNote(e,t){return t?[...e,createFrameworkUserMessage(`execution.retry`,t)]:[...e]}function mergeSystemInstructions(e){if(e.length===0)return;if(e.length===1)return{...e[0]};let t;for(let n of e)n.providerOptions!==void 0&&(t={...t,...n.providerOptions});let n={role:`system`,content:e.map(e=>e.content).join(`
2
2
 
3
3
  `)};return t!==void 0&&(n.providerOptions=t),n}export{mergeSystemInstructions,modelInstructions,requestMessages,withTrailingUserNote};
@@ -1,4 +1,5 @@
1
- import type { ModelMessage, ToolSet, TypedToolResult } from "ai";
1
+ import type { ModelMessage } from "ai";
2
+ import type { InlineCallResults } from "#harness/call-executor.js";
2
3
  import type { HarnessStepResult } from "#harness/step-hooks.js";
3
4
  import type { HarnessToolLookup } from "#harness/types.js";
4
5
  type StepResponseMessage = HarnessStepResult["response"]["messages"][number];
@@ -8,21 +9,29 @@ type ToolResponsePart = Extract<ModelMessage, {
8
9
  type ToolResultPart = Extract<ToolResponsePart, {
9
10
  type: "tool-result";
10
11
  }>;
11
- export declare function withAccumulatedResponseMessages(input: {
12
- readonly invalidInputToolCallIds?: ReadonlySet<string>;
13
- readonly responseMessages: readonly StepResponseMessage[];
12
+ /**
13
+ * The step as the harness reads it: the AI SDK's result, with the results of the calls eve ran or
14
+ * answered appended to the response, and what the calls wait on.
15
+ */
16
+ export declare function withCallResults(input: {
14
17
  readonly stepResult: HarnessStepResult;
15
- readonly toolResults?: readonly TypedToolResult<ToolSet>[];
18
+ readonly responseMessages: readonly StepResponseMessage[];
19
+ readonly calls: InlineCallResults;
20
+ /** Results for calls that didn't run. */
21
+ readonly answers: readonly ToolResultPart[];
22
+ readonly invalidInputToolCallIds?: ReadonlySet<string>;
16
23
  }): HarnessStepResult;
17
24
  /** True when provider history still owes a result for any assistant tool call. */
18
25
  export declare function hasUnansweredToolCall(messages: readonly ModelMessage[]): boolean;
19
26
  /**
20
- * Appends synthesized tool results for calls that have no result anywhere in
21
- * the step's response messages. Exported for its dedupe contract: a call
22
- * already answered — including provider-executed results the SDK keeps
23
- * inline in the assistant message — must never receive a second
24
- * `tool-result`, or the next Anthropic call rejects the history with
25
- * "each tool_use must have a single result".
27
+ * Appends tool results for calls that have no result anywhere in the step's response messages.
28
+ * The response's results share one tool message, in the order the model made its calls: the AI
29
+ * SDK answers an invalid call as it streams, and eve's calls run once the response ends.
30
+ *
31
+ * Exported for its dedupe contract: a call already answered — including provider-executed
32
+ * results the SDK keeps inline in the assistant message — must never receive a second
33
+ * `tool-result`, or the next Anthropic call rejects the history with "each tool_use must have a
34
+ * single result".
26
35
  */
27
36
  export declare function appendMissingToolResultMessages(input: {
28
37
  readonly append: readonly ToolResultPart[];
@@ -36,5 +45,6 @@ export declare function appendMissingToolResultMessages(input: {
36
45
  * tool-message-only scan would let a synthesized result duplicate them.
37
46
  */
38
47
  export declare function extractToolResultCallIds(messages: readonly ModelMessage[]): ReadonlySet<string>;
39
- export declare function answerSkippedToolCalls(step: HarnessStepResult, tools: HarnessToolLookup): ToolResultPart[];
48
+ /** Answers the local calls of a response that ended early: eve doesn't run them. */
49
+ export declare function answerSkippedToolCalls(step: HarnessStepResult, tools: HarnessToolLookup, excludedCallIds: ReadonlySet<string>): ToolResultPart[];
40
50
  export {};
@@ -1 +1 @@
1
- import{historyCallNames}from"#harness/execute-call.js";import{getInvalidToolCallInputError,isInvalidToolCall}from"#harness/tool-call-input-errors.js";function withAccumulatedResponseMessages(e){let{stepResult:t}=e;return{content:t.content,finishReason:t.finishReason,...e.invalidInputToolCallIds===void 0?{}:{invalidInputToolCallIds:e.invalidInputToolCallIds},providerMetadata:t.providerMetadata,response:{...t.response,messages:[...e.responseMessages]},text:t.text,toolCalls:t.toolCalls,toolResults:e.toolResults===void 0?t.toolResults:[...e.toolResults],usage:t.usage}}function hasUnansweredToolCall(e){let t=new Set,n=new Set;for(let r of e)if(Array.isArray(r.content))for(let e of r.content)typeof e==`object`&&e&&(e.type===`tool-call`&&t.add(e.toolCallId),e.type===`tool-result`&&n.add(e.toolCallId));for(let e of t)if(!n.has(e))return!0;return!1}function appendMissingToolResultMessages(e){let t=extractToolResultCallIds(e.responseMessages),n=historyCallNames(e.responseMessages),r=e.append.filter(e=>!t.has(e.toolCallId)).map(e=>({...e,toolName:n.get(e.toolCallId)??e.toolName}));return[...e.responseMessages,...r.length>0?[{role:`tool`,content:[...r]}]:[]]}function extractToolResultCallIds(e){let t=new Set;for(let n of e)if(Array.isArray(n.content))for(let e of n.content)typeof e==`object`&&e&&e.type===`tool-result`&&t.add(e.toolCallId);return t}function answerSkippedToolCalls(e,t){let{finishReason:n}=e;if(n===`stop`||n===`tool-calls`)return[];let r=extractToolResultCallIds(e.response.messages),i=new Set((e.content??[]).flatMap(e=>e.type===`tool-approval-request`&&e.isAutomatic!==!0?[e.toolCall.toolCallId]:[])),a=`The tool did not run because the model response ended early (finish reason: ${n}). Call the tool again if you still need its result.`;return(e.toolCalls??[]).filter(e=>t.get(e.toolName)?.execute!==void 0&&e.providerExecuted!==!0&&!isInvalidToolCall(e)&&getInvalidToolCallInputError({toolCall:e})===void 0&&!r.has(e.toolCallId)&&!i.has(e.toolCallId)).map(e=>({output:{type:`error-text`,value:a},toolCallId:e.toolCallId,toolName:e.toolName,type:`tool-result`}))}export{answerSkippedToolCalls,appendMissingToolResultMessages,extractToolResultCallIds,hasUnansweredToolCall,withAccumulatedResponseMessages};
1
+ import{historyCallNames}from"#harness/execute-call.js";import{isRunnableTool}from"#harness/tools.js";import{getInvalidToolCallInputError,isInvalidToolCall}from"#harness/tool-call-input-errors.js";function withCallResults(e){let{calls:t,stepResult:n}=e;return{approvalRequests:t.approvals,policyApprovals:t.policyApprovals,content:n.content,finishReason:n.finishReason,...e.invalidInputToolCallIds===void 0?{}:{invalidInputToolCallIds:e.invalidInputToolCallIds},providerMetadata:n.providerMetadata,response:{...n.response,messages:appendMissingToolResultMessages({append:[...t.parts,...e.answers],responseMessages:e.responseMessages})},signIns:t.signIns,text:n.text,toolCalls:n.toolCalls,toolResults:[...n.toolResults??[],...t.toolResults],usage:n.usage}}function hasUnansweredToolCall(e){let t=new Set,n=new Set;for(let r of e)if(Array.isArray(r.content))for(let e of r.content)typeof e==`object`&&e&&(e.type===`tool-call`&&t.add(e.toolCallId),e.type===`tool-result`&&n.add(e.toolCallId));for(let e of t)if(!n.has(e))return!0;return!1}function appendMissingToolResultMessages(e){let t=extractToolResultCallIds(e.responseMessages),n=historyCallNames(e.responseMessages),r=e.append.filter(e=>!t.has(e.toolCallId)).map(e=>({...e,toolName:n.get(e.toolCallId)??e.toolName}));if(r.length===0)return[...e.responseMessages];let i=e.responseMessages.at(-1),a=i?.role===`tool`?i:void 0,o=new Map;for(let t of e.responseMessages)if(t.role===`assistant`&&Array.isArray(t.content))for(let e of t.content)e.type===`tool-call`&&!o.has(e.toolCallId)&&o.set(e.toolCallId,o.size);let position=e=>(e.type===`tool-result`?o.get(e.toolCallId):void 0)??o.size,s=[...a?.content??[],...r].sort((e,t)=>position(e)-position(t));return[...a===void 0?e.responseMessages:e.responseMessages.slice(0,-1),{role:`tool`,content:s}]}function extractToolResultCallIds(e){let t=new Set;for(let n of e)if(Array.isArray(n.content))for(let e of n.content)typeof e==`object`&&e&&e.type===`tool-result`&&t.add(e.toolCallId);return t}function answerSkippedToolCalls(e,t,n){let{finishReason:r}=e;if(r===`stop`||r===`tool-calls`)return[];let i=`The tool did not run because the model response ended early (finish reason: ${r}). Call the tool again if you still need its result.`;return(e.toolCalls??[]).filter(e=>isRunnableTool(t.get(e.toolName))&&e.providerExecuted!==!0&&!isInvalidToolCall(e)&&getInvalidToolCallInputError({toolCall:e})===void 0&&!n.has(e.toolCallId)).map(e=>({output:{type:`error-text`,value:i},toolCallId:e.toolCallId,toolName:e.toolName,type:`tool-result`}))}export{answerSkippedToolCalls,appendMissingToolResultMessages,extractToolResultCallIds,hasUnansweredToolCall,withCallResults};
@@ -1,11 +1,28 @@
1
+ import { type Policy } from "#reactions/policy.js";
2
+ /** Whether a failed model call is tried again, and how long to wait first. */
3
+ export type RetryDecision = {
4
+ readonly retry: false;
5
+ } | {
6
+ readonly retry: true;
7
+ readonly delayMs: number;
8
+ };
9
+ /** A failed attempt: which one it was, and what it threw. */
10
+ export interface RetryQuestion {
11
+ readonly attempt: number;
12
+ readonly error: unknown;
13
+ }
14
+ export type RetryPolicy = Policy<RetryQuestion, RetryDecision>;
15
+ /** A policy's answer when it has no objection to a retry, or when it stops one. */
16
+ export declare const ALLOW_RETRY: RetryDecision;
17
+ export declare const STOP_RETRY: RetryDecision;
1
18
  /**
2
- * Retries `fn` with exponential backoff while the thrown error is
3
- * classified as `"retry"`. Rethrows the last error once attempts are
4
- * exhausted or the error is classified as something other than
5
- * transient.
19
+ * Retries `fn` while eve's retry policies and the caller's `policies` all allow it, waiting the
20
+ * longest any asks for. Rethrows the last error once one stops it. `onRetry` hears each decision
21
+ * to retry, before the wait.
6
22
  */
7
- export declare function runModelCallWithRetries<T>(fn: (attempt: number) => Promise<T>, diag: {
23
+ export declare function runModelCallWithRetries<T>(fn: () => Promise<T>, diag: {
8
24
  readonly sessionId: string;
9
25
  readonly turnId: string;
10
- readonly canRetry?: () => boolean;
26
+ readonly policies?: readonly RetryPolicy[];
27
+ readonly onRetry?: (error: unknown) => Promise<void>;
11
28
  }, signal?: AbortSignal): Promise<T>;
@@ -1 +1 @@
1
- import{createLogger}from"#internal/logging.js";import{setTimeout}from"node:timers/promises";import{classifyModelCallError}from"#harness/model-call/errors.js";const log=createLogger(`harness.tool-loop`);async function runModelCallWithRetries(e,t,n){for(let r=1;;r++){n?.throwIfAborted();try{return await e(r)}catch(e){if(n?.throwIfAborted(),t.canRetry?.()===!1||r===3||classifyModelCallError(e)!==`retry`)throw e;let i=500*2**(r-1)+Math.floor(Math.random()*250);log.warn(`model call failed transiently — retrying`,{attempt:r,delayMs:i,sessionId:t.sessionId,turnId:t.turnId,error:e}),await setTimeout(i,void 0,{signal:n})}}}export{runModelCallWithRetries};
1
+ import{createLogger}from"#internal/logging.js";import{setTimeout}from"node:timers/promises";import{classifyModelCallError}from"#harness/model-call/errors.js";import{decide}from"#reactions/policy.js";const log=createLogger(`harness.tool-loop`),ALLOW_RETRY={delayMs:0,retry:!0},STOP_RETRY={retry:!1},retryLaw={meet:(e,t)=>e.retry?t.retry?{delayMs:Math.max(e.delayMs,t.delayMs),retry:!0}:t:e,open:ALLOW_RETRY},BUILT_IN=[({error:e})=>classifyModelCallError(e)===`retry`?ALLOW_RETRY:STOP_RETRY,({attempt:e})=>e<3?ALLOW_RETRY:STOP_RETRY,({attempt:e})=>({delayMs:500*2**(e-1)+Math.floor(Math.random()*250),retry:!0})];async function runModelCallWithRetries(e,t,n){let r=[...BUILT_IN,...t.policies??[]];for(let i=1;;i++){n?.throwIfAborted();try{return await e()}catch(e){n?.throwIfAborted();let a=decide(retryLaw,r,{attempt:i,error:e});if(!a.retry)throw e;let{delayMs:o}=a;log.warn(`model call failed transiently — retrying`,{attempt:i,delayMs:o,sessionId:t.sessionId,turnId:t.turnId,error:e}),await t.onRetry?.(e),await setTimeout(o,void 0,{signal:n})}}}export{ALLOW_RETRY,STOP_RETRY,runModelCallWithRetries};
@@ -1,12 +1,10 @@
1
1
  import { type StepCatalog } from "#execution/catalog/step-catalog.js";
2
2
  import type { GenerationSteering } from "#harness/generation-steering.js";
3
3
  import { type HarnessModelMessage } from "#harness/messages.js";
4
- import { type ApprovedWork } from "#harness/hitl/index.js";
5
4
  import { type Step } from "#harness/step/context.js";
6
5
  import type { TurnInput } from "#harness/step/intake.js";
7
6
  import type { HarnessStepResult } from "#harness/step-hooks.js";
8
7
  import { type StepResult } from "#harness/types.js";
9
- import type { InstrumentationAttempt } from "#instrumentation/runtime.js";
10
8
  import { type EndsTurnTools } from "./tools.js";
11
9
  /** A model step's response, for the session to act on. */
12
10
  export interface ModelResponse {
@@ -22,19 +20,13 @@ export interface ModelResponse {
22
20
  }
23
21
  /**
24
22
  * One model step of the open turn: the prompt it reads, the model that serves it, and the call
25
- * with its retries and recoveries. `onResponse` decides what the session does with the response.
23
+ * with its retries and recoveries. The response handler applies what it returned.
26
24
  *
27
- * Approved work runs where the AI SDK ran it, between the step's start and the model call:
28
- * approved workflow calls join their runs, the budget gate passes, then approved local calls run
29
- * and the model reads their results.
25
+ * The budget gate passes first, after the session's dynamic values are evaluated with the
26
+ * conversation the call reads, which fixes its model, tools, and context. Then the turn requests
27
+ * a model run, and the run starts as its provider call begins.
30
28
  */
31
29
  export declare function runModelStep(step: Step, input: {
32
- readonly onResponse: (response: ModelResponse) => Promise<StepResult>;
33
30
  readonly turn: TurnInput;
34
- readonly approved: ApprovedWork;
35
31
  readonly generation: GenerationSteering;
36
- /** A child's caller and a schedule hear only the turn's real end. */
37
- readonly hidesHeldText: boolean;
38
- /** The attempt the step's events belong to, for instrumentation. */
39
- readonly setAttemptScope: (scope: InstrumentationAttempt | undefined) => void;
40
32
  }): Promise<StepResult>;
@@ -1 +1 @@
1
- import{reportModelCallFailure}from"./failure.js";import{resolveEffectiveRuntimeModel}from"./model.js";import{recoverModelCall}from"./recovery.js";import{endsTurnTools,frameworkToolNames}from"./tools.js";import{recordModelUsage}from"./usage.js";import{ModelCaller}from"./call.js";import{HistoryStateKey}from"#context/keys.js";import{validateHarnessModelMessages}from"#harness/messages.js";import{activeTurnId,nextStepIndex}from"#harness/session-machine/view.js";import{dispatchApprovedWorkflows,enforceBudget,hasApprovedWork,humanInputContext,runApprovedLocalCalls}from"#harness/hitl/index.js";import{startStep}from"#harness/session-machine/transitions.js";import{stepStartedForResolvers}from"#harness/session-machine/resolver-events.js";import{throwIfTurnAborted}from"#harness/turn-cancellation.js";import{requireSessionModelReference}from"#harness/types.js";import{buildStepCatalog,recordOfferedCatalogTools}from"#execution/catalog/step-catalog.js";import{buildPrompt,previewPrompt,projectPrompt,withClientContext}from"#harness/step/prompt.js";import{failBoundaryEvent,failModelSelection}from"#harness/step/context.js";async function runModelStep(e,t){let{generation:n}=t,r=hasApprovedWork(e),i=r?previewPrompt(e,t.turn):await buildPrompt(e,t.turn),a=await selectModel(e,i);if(!(`model`in a))return a.failed;let start=t=>e.apply(startStep(e.view(),{modelId:requireSessionModelReference(e.session).id}),t),o=projectPrompt(e,i);try{await start(o)}catch(t){return failBoundaryEvent(e,t)}if(r&&await dispatchApprovedWorkflows(e,t.approved))return{next:null,session:e.session};let s=await enforceBudget(e,i.messages);if(s!==void 0)return s;if(r){let n=await runApprovedLocalCalls(e,t.approved,t.setAttemptScope);if(n!==void 0)return n;i=await buildPrompt(e,t.turn),o=projectPrompt(e,i)}let c=!e.hasDelegatedCaller&&e.session.outputSchema===void 0,l=buildStepCatalog({agentTools:e.config.tools,ctx:e.ctx,endsTurn:c,session:e.session});recordOfferedCatalogTools(e.ctx,l),e.frameworkToolNames=frameworkToolNames(l);let{approvedTools:u,pendingApprovalsNote:d}=humanInputContext(e,l),f=new ModelCaller(e,i,{approvedTools:u,catalog:l,generation:n,hidesHeldText:t.hidesHeldText,model:a.model,pendingApprovalsNote:d,projectedMessages:o,setAttemptScope:t.setAttemptScope,startStep:start,turnMessages:t.turn.messages}),p;try{p=await f.call({suppressStepStartedEmission:!0})}catch(t){let r=await f.failIfCompactionFailed();if(r!==void 0)return r;if(throwIfTurnAborted(e.config.abortSignal),n.interrupted)return f.steered();let i=await recoverModelCall({call:e=>f.call(e),error:t,sessionId:e.session.sessionId,turnId:e.position().turnId}),a=await f.failIfCompactionFailed();if(a!==void 0)return a;if(throwIfTurnAborted(e.config.abortSignal),n.interrupted)return f.steered();if(!(`result`in i))return reportModelCallFailure(e,i.error);p=i.result}await recordModelUsage(e,{model:a.model,result:p}),f.clearInterruptedUsage();let m;try{n.check(),m=await t.onResponse({catalog:l,durableModelPromptMessageCount:i.clientContext===void 0||i.clientContext.messages.length===0?f.modelMessages.length:void 0,endsTurnTools:endsTurnTools(l,c),promptMessages:f.request.history,requestEnvelopeTokens:f.requestEnvelopeTokens,result:p})}catch(t){if(throwIfTurnAborted(e.config.abortSignal),n.interrupted)return f.steered();throw t}return e.ctx?.set(HistoryStateKey,f.request.historyState),m}async function selectModel(e,t){let{config:n,ctx:r}=e;try{if(r!==void 0&&n.dispatchDynamicModelEvent!==void 0){let i=e.position();await n.dispatchDynamicModelEvent({ctx:r,event:stepStartedForResolvers({modelId:e.session.agent.modelReference?.id??`dynamic`,sequence:i.sequence,stepIndex:nextStepIndex(e.view().projection),turnId:activeTurnId(i)}),messages:validateHarnessModelMessages(e.projectHistory(withClientContext(t)))})}let i=await resolveEffectiveRuntimeModel({config:n,ctx:r,session:e.session});return e.session=i.session,{model:i.model}}catch(t){return{failed:await failModelSelection(e,t)}}}export{runModelStep};
1
+ import{reportModelCallFailure}from"./failure.js";import{resolveEffectiveRuntimeModel}from"./model.js";import{endsTurnTools,frameworkToolNames}from"./tools.js";import{recordModelUsage}from"./usage.js";import{ModelCaller}from"./call.js";import{HistoryStateKey}from"#context/keys.js";import{activeTurnId}from"#harness/session-machine/view.js";import{enforceBudget,humanInputContext}from"#harness/hitl/index.js";import{validateHarnessModelMessages}from"#harness/messages.js";import{runRequested,runStarted}from"#harness/facts.js";import{nextRunId}from"#protocol/session-projection.js";import{throwIfTurnAborted}from"#harness/turn-cancellation.js";import{requireSessionModelReference}from"#harness/types.js";import{buildStepCatalog,recordOfferedCatalogTools}from"#execution/catalog/step-catalog.js";import{buildPrompt,previewPrompt,projectPrompt,withClientContext}from"#harness/step/prompt.js";import{handleStepResult}from"#harness/step/after-model.js";import{failBoundaryEvent,failModelSelection,prepareModelCall}from"#harness/step/context.js";async function runModelStep(e,t){let{generation:n}=t,r=await prepareModelCall(e,previewPrompt(e,t.turn));if(r!==void 0)return r;let i=await buildPrompt(e,t.turn),a=await enforceBudget(e,i.messages);if(a!==void 0)return a;let o=await requestRun(e,i);if(`failed`in o)return o.failed;let s=projectPrompt(i),c=!e.hasDelegatedCaller&&e.session.outputSchema===void 0,l=buildStepCatalog({agentTools:e.config.tools,ctx:e.ctx,endsTurn:c,session:e.session});recordOfferedCatalogTools(e.ctx,l),e.frameworkToolNames=frameworkToolNames(l);let{approvalMemory:u,pendingApprovalsNote:d}=humanInputContext(e),f=new ModelCaller(e,i,{approvalMemory:u,catalog:l,generation:n,model:o.model,newRun:async()=>{if(`failed`in await requestRun(e,i))throw Error(`The model run's replacement found no model.`)},startRun:async t=>await startRun(e,t),pendingApprovalsNote:d,projectedMessages:s,turnMessages:t.turn.messages}),p;try{p=await f.call()}catch(t){throwIfTurnAborted(e.config.abortSignal);let r=await f.failIfCompactionFailed();return r===void 0?n.interrupted?f.steered():reportModelCallFailure(e,t):r}await recordModelUsage(e,{model:o.model}),f.clearInterruptedUsage();let m;try{n.check(),m=await handleStepResult(e,{catalog:l,durableModelPromptMessageCount:i.clientContext===void 0||i.clientContext.messages.length===0?f.modelMessages.length:void 0,endsTurnTools:endsTurnTools(l,c),promptMessages:f.request.history,requestEnvelopeTokens:f.requestEnvelopeTokens,result:p})}catch(t){if(throwIfTurnAborted(e.config.abortSignal),n.interrupted)return f.steered();throw t}return e.ctx?.set(HistoryStateKey,f.request.historyState),m}async function requestRun(e,t){let{config:n,ctx:r}=e;try{await e.apply([runRequested({turnId:activeTurnId(e.position())},nextRunId(e.view().projection))],validateHarnessModelMessages(withClientContext(t)))}catch(t){return{failed:await failBoundaryEvent(e,t)}}try{let t=await resolveEffectiveRuntimeModel({config:n,ctx:r,session:e.session});return e.session=t.session,{model:t.model}}catch(t){return{failed:await failModelSelection(e,t)}}}async function startRun(e,t){let n=e.position().runId;if(n===void 0)return;let r=requireSessionModelReference(e.session).id;await e.apply([runStarted({attempt:t,modelId:r,runId:n})])}export{runModelStep};
@@ -1,10 +1,8 @@
1
1
  import type { ToolSet } from "ai";
2
2
  import type { StepCatalog } from "#execution/catalog/step-catalog.js";
3
3
  import type { HarnessToolDefinition } from "#harness/execute-tool.js";
4
- import type { GenerationSteering } from "#harness/generation-steering.js";
5
4
  import type { ModelProfile } from "#harness/model-profile.js";
6
5
  import type { Step } from "#harness/step/context.js";
7
- import type { CallResolver } from "#harness/types.js";
8
6
  /**
9
7
  * Assembles the tools one model call offers: the catalog's listed entries with provider tools in
10
8
  * place, and `eve__reply` when the turn asks for a structured result.
@@ -12,27 +10,10 @@ import type { CallResolver } from "#harness/types.js";
12
10
  export declare function prepareModelTools(step: Step, input: {
13
11
  readonly catalog: StepCatalog;
14
12
  readonly disabledProviderTools?: ReadonlySet<string>;
15
- readonly generation: GenerationSteering;
16
13
  readonly profile: ModelProfile;
17
14
  }): Promise<ToolSet>;
18
15
  /** The entries that can end the turn, with their `endsTurn` option, when `endsTurn` applies. */
19
16
  export declare function endsTurnTools(catalog: StepCatalog, applies: boolean): EndsTurnTools;
20
17
  /** The names of the entries eve provides, which tracing marks as framework tools. */
21
18
  export declare function frameworkToolNames(catalog: StepCatalog): ReadonlySet<string>;
22
- /**
23
- * Wired as the agent's `onToolExecutionEnd`. On the `tool-error` branch
24
- * the `error` is still the original throwable (stack/cause intact),
25
- * unlike the message-only `tool-error` part the model later sees.
26
- */
27
- export declare function logToolExecutionError(event: {
28
- readonly toolCall: {
29
- readonly input: unknown;
30
- readonly toolName: string;
31
- readonly toolCallId: string;
32
- };
33
- readonly toolOutput: {
34
- readonly type: string;
35
- readonly error?: unknown;
36
- };
37
- }, resolve: CallResolver): void;
38
19
  export type EndsTurnTools = ReadonlyMap<string, NonNullable<HarnessToolDefinition["endsTurn"]>>;
@@ -1 +1 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{REPLY_TOOL_NAME}from"#protocol/reply-tool.js";import{SKILL_ENTRY_NAME}from"#protocol/catalog-tools.js";import{toModelSchema}from"#tools/schema.js";import{dispatchesAfterStep}from"#harness/execute-call.js";import{isTurnCancellation}from"#harness/turn-cancellation.js";import{buildToolSetWithProviderTools}from"#harness/tools.js";import{applyLastToolCacheBreakpoint}from"#harness/prompt-cache.js";import{buildFinalOutputTool}from"#harness/final-output.js";const log=createLogger(`harness.tool-loop`);async function prepareModelTools(e,t){let{catalog:n,profile:r}=t,i=await buildToolSetWithProviderTools({describe:n.describe,disabledProviderTools:t.disabledProviderTools,profile:r,resolve:n.resolve,tools:n.advertised});e.session.outputSchema!==void 0&&(i[REPLY_TOOL_NAME]=buildFinalOutputTool(e.session.outputSchema));let a=r.anthropicCache?applyLastToolCacheBreakpoint(i,r.anthropicCache):i;for(let[e,r]of Object.entries(a)){r.inputSchema=toModelSchema(r.inputSchema,`input`),r.outputSchema!==void 0&&(r.outputSchema=toModelSchema(r.outputSchema,`output`));let i=r.execute;i!==void 0&&(r.execute=(...r)=>(dispatchesAfterStep(n.resolve({input:r[0],toolName:e}))||t.generation.protectToolExecution(),i(...r)))}return a}function endsTurnTools(e,t){return t?new Map([...e.entries].flatMap(([e,t])=>t.endsTurn===void 0||t.endsTurn===!1?[]:[[e,t.endsTurn]])):new Map}function frameworkToolNames(e){return new Set([...e.advertised.values(),...e.entries.values(),e.get(SKILL_ENTRY_NAME)].flatMap(e=>e?.frameworkTool===!0?[e.name]:[]))}function logToolExecutionError(e,t){e.toolOutput.type!==`tool-error`||isTurnCancellation(e.toolOutput.error)||logError(log,`tool execution failed`,e.toolOutput.error,{toolName:t(e.toolCall)?.definition.name??e.toolCall.toolName,toolCallId:e.toolCall.toolCallId})}export{endsTurnTools,frameworkToolNames,logToolExecutionError,prepareModelTools};
1
+ import{REPLY_TOOL_NAME}from"#protocol/reply-tool.js";import{toModelSchema}from"#tools/schema.js";import{SKILL_ENTRY_NAME}from"#protocol/catalog-tools.js";import{buildToolSetWithProviderTools}from"#harness/tools.js";import{applyLastToolCacheBreakpoint}from"#harness/prompt-cache.js";import{buildFinalOutputTool}from"#harness/final-output.js";async function prepareModelTools(e,t){let{catalog:n,profile:r}=t,i=await buildToolSetWithProviderTools({describe:n.describe,disabledProviderTools:t.disabledProviderTools,profile:r,tools:n.advertised});e.session.outputSchema!==void 0&&(i[REPLY_TOOL_NAME]=buildFinalOutputTool(e.session.outputSchema));let a=r.anthropicCache?applyLastToolCacheBreakpoint(i,r.anthropicCache):i;for(let e of Object.values(a))e.inputSchema=toModelSchema(e.inputSchema,`input`),e.outputSchema!==void 0&&(e.outputSchema=toModelSchema(e.outputSchema,`output`));return a}function endsTurnTools(e,t){return t?new Map([...e.entries].flatMap(([e,t])=>t.endsTurn===void 0||t.endsTurn===!1?[]:[[e,t.endsTurn]])):new Map}function frameworkToolNames(e){return new Set([...e.advertised.values(),...e.entries.values(),e.get(SKILL_ENTRY_NAME)].flatMap(e=>e?.frameworkTool===!0?[e.name]:[]))}export{endsTurnTools,frameworkToolNames,prepareModelTools};
@@ -0,0 +1,13 @@
1
+ import { type LanguageModel } from "ai";
2
+ /**
3
+ * Serves `model` so every call it starts gets an id no call in `taken` holds.
4
+ *
5
+ * Calls are keyed by the provider's tool call id, from the session's tables to the prompt's
6
+ * tool results. Some providers number calls per response, so a later turn can repeat an id
7
+ * the session already introduced; that call is renamed, with every part that refers to it, as
8
+ * the stream arrives, so the model, the tables and readers all see the same new id. `taken`
9
+ * holds the ids the session still holds: the calls in its view and the prompt's tool calls.
10
+ * A call that left both, by retention and then a clear or compaction, can see its id again; the
11
+ * session's own view no longer has it, and a reader of the whole stream keeps the earlier call.
12
+ */
13
+ export declare function withUniqueCallIds(model: LanguageModel, taken: Iterable<string>): LanguageModel;
@@ -0,0 +1 @@
1
+ import{gateway,wrapLanguageModel}from"ai";function withUniqueCallIds(e,t){return wrapLanguageModel({model:resolved(e),middleware:uniqueCallIds(new Set(t))})}function resolved(e){return typeof e==`string`?(Reflect.get(globalThis,`AI_SDK_DEFAULT_PROVIDER`)??gateway).languageModel(e):e}function uniqueCallIds(e){return{specificationVersion:`v4`,wrapStream:async({doStream:t})=>{let{stream:n,...r}=await t();return{...r,stream:n.pipeThrough(renameRepeatedCalls(e))}}}}function renameRepeatedCalls(e){let t=new Map,n=new Set,introduce=n=>{let r=n;for(let t=2;e.has(r);t++)r=`${n}_${t}`;return e.add(r),r===n?t.delete(n):t.set(n,r),r},current=e=>t.get(e)??e;return new TransformStream({transform(e,t){switch(e.type){case`tool-input-start`:n.add(e.id),t.enqueue({...e,id:introduce(e.id)});return;case`tool-input-delta`:case`tool-input-end`:t.enqueue({...e,id:current(e.id)});return;case`tool-call`:{let r=n.delete(e.toolCallId)?current(e.toolCallId):introduce(e.toolCallId);t.enqueue({...e,toolCallId:r});return}case`tool-result`:case`tool-approval-request`:t.enqueue({...e,toolCallId:current(e.toolCallId)});return;default:t.enqueue(e)}}})}export{withUniqueCallIds};
@@ -1,7 +1,9 @@
1
1
  import type { LanguageModel, ProviderMetadata } from "ai";
2
2
  import type { HarnessStepResult } from "#harness/step-hooks.js";
3
- import { type TokenUsageDelta } from "#harness/turn-tag-state.js";
4
3
  import type { Step } from "#harness/step/context.js";
4
+ import type { TokenUsage } from "#shared/token-usage.js";
5
+ /** What one model call reported spending; a field it didn't report is absent. */
6
+ export type TokenUsageDelta = Partial<TokenUsage>;
5
7
  /**
6
8
  * The model's gateway id, or `undefined` for a model without a string `provider`, such as a
7
9
  * test double, so a missing field never throws into the tool loop.
@@ -13,11 +15,11 @@ export declare function extractTokenUsageDelta(input: {
13
15
  }): TokenUsageDelta | undefined;
14
16
  export declare function extractGatewayCostUsd(providerMetadata: ProviderMetadata | undefined): number | undefined;
15
17
  /**
16
- * Tags the turn's workflow run with the model and the turn's running token totals. Each model
17
- * step is its own workflow step and attributes are last-write-wins, so the running total, kept in
18
- * session state, is what reaches the dashboard. Best-effort: tagging never breaks the loop.
18
+ * Tags the turn's workflow run with the model and what the turn's runs have spent, which their
19
+ * `usage.recorded` facts record. Each model step is its own workflow step and attributes are
20
+ * last-write-wins, so the latest total is what reaches the dashboard. Best-effort: tagging never
21
+ * breaks the loop.
19
22
  */
20
23
  export declare function recordModelUsage(step: Step, input: {
21
24
  readonly model: LanguageModel;
22
- readonly result: HarnessStepResult;
23
25
  }): Promise<void>;
@@ -1 +1 @@
1
- import{addStepUsage}from"#harness/session-machine/current.js";import{formatLanguageModelGatewayId}from"#internal/runtime-model.js";import{getTurnUsageState}from"#harness/turn-tag-state.js";import{setEveAttributes}from"#runtime/attributes/emit.js";function gatewayModelId(e){try{return formatLanguageModelGatewayId(e)}catch{return}}function extractTokenUsageDelta(e){let t=e.usage;if(t!==void 0||e.costUsd!==void 0)return{cacheReadTokens:t?.inputTokenDetails?.cacheReadTokens,cacheWriteTokens:t?.inputTokenDetails?.cacheWriteTokens,costUsd:e.costUsd,inputTokens:t?.inputTokens,outputTokens:t?.outputTokens}}function extractGatewayCostUsd(e){let t=readGatewayMetadata(e)?.cost;if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=Number(t);return Number.isFinite(e)?e:void 0}}function readGatewayMetadata(e){let t=e?.gateway;return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}async function recordModelUsage(e,t){e.session=addStepUsage(e.session,e.position().turnId,extractTokenUsageDelta({costUsd:extractGatewayCostUsd(t.result.providerMetadata),usage:t.result.usage}));let n=getTurnUsageState(e.session.state),r={"$eve.model":gatewayModelId(t.model),"$eve.input_tokens":n?.inputTokens,"$eve.output_tokens":n?.outputTokens,"$eve.cache_read_tokens":n?.cacheReadTokens,"$eve.cache_write_tokens":n?.cacheWriteTokens,"$eve.cost_usd":n?.sawCost?n.costUsd:void 0,"$eve.tool_count":e.config.tools.size};await e.config.titleAttributeWrite,await setEveAttributes(r)}export{extractGatewayCostUsd,extractTokenUsageDelta,gatewayModelId,recordModelUsage};
1
+ import{formatLanguageModelGatewayId}from"#internal/runtime-model.js";import{turnUsage}from"#harness/session-usage.js";import{setEveAttributes}from"#runtime/attributes/emit.js";function gatewayModelId(e){try{return formatLanguageModelGatewayId(e)}catch{return}}function extractTokenUsageDelta(e){let t=e.usage;if(t!==void 0||e.costUsd!==void 0)return{cacheReadTokens:t?.inputTokenDetails?.cacheReadTokens,cacheWriteTokens:t?.inputTokenDetails?.cacheWriteTokens,costUsd:e.costUsd,inputTokens:t?.inputTokens,outputTokens:t?.outputTokens}}function extractGatewayCostUsd(e){let t=readGatewayMetadata(e)?.cost;if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=Number(t);return Number.isFinite(e)?e:void 0}}function readGatewayMetadata(e){let t=e?.gateway;return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}async function recordModelUsage(e,t){let n=turnUsage(e.view().projection.view,e.position().turnId),r={"$eve.model":gatewayModelId(t.model),"$eve.input_tokens":n.inputTokens,"$eve.output_tokens":n.outputTokens,"$eve.cache_read_tokens":n.cacheReadTokens,"$eve.cache_write_tokens":n.cacheWriteTokens,"$eve.cost_usd":n.costUsd,"$eve.tool_count":e.config.tools.size};await e.config.titleAttributeWrite,await setEveAttributes(r)}export{extractGatewayCostUsd,extractTokenUsageDelta,gatewayModelId,recordModelUsage};
@@ -1,6 +1,7 @@
1
1
  import type { HarnessEmitFn } from "#harness/types.js";
2
2
  interface OrderedStreamEmitter {
3
3
  closeAndDrain(): Promise<void>;
4
+ /** Emits one streamed event, merged with adjacent deltas, or one commit, which is a barrier. */
4
5
  emit: HarnessEmitFn;
5
6
  readonly failureSignal: AbortSignal;
6
7
  }
@@ -1 +1 @@
1
- const MAX_PENDING_DELTA_CHARACTERS=65536;function createOrderedStreamEmitter(e,t={}){let n=t.maxPendingEvents??64;if(!Number.isInteger(n)||n<1)throw RangeError(`maxPendingEvents must be a positive integer.`);let r=[],i=new Set,a=new Set,o=!1,s=0,c=0,l,u=!1,d=!1,f=new AbortController,throwIfFailed=()=>{if(u)throw l},settleIdleWaiters=()=>{for(let e of a)e();a.clear()},hasCapacity=()=>c<n&&s<MAX_PENDING_DELTA_CHARACTERS,settleCapacityWaiters=()=>{if(hasCapacity()){for(let e of i)e();i.clear()}},pump=async()=>{if(!(d||u)){for(d=!0;r.length>0;){let t=r.shift();if(t===void 0)break;s-=t.deltaCharacters,c-=t.sourceEvents,settleCapacityWaiters();try{await e(materializeEvent(t),t.messages)}catch(e){u||(l=e,u=!0,f.abort(e)),r.length=0,s=0,c=0,settleCapacityWaiters();break}}d=!1,settleIdleWaiters()}},waitForIdle=async()=>{if(!d&&r.length===0){throwIfFailed();return}await new Promise(e=>{a.add(e)}),throwIfFailed()},waitForCapacity=async()=>{hasCapacity()||(await new Promise(e=>{i.add(e)}),throwIfFailed())};return{async closeAndDrain(){o=!0,pump(),await waitForIdle()},async emit(e,t){if(throwIfFailed(),o)throw TypeError(`Cannot emit after the ordered stream emitter has closed.`);let i=r.length-1,a=r[i],l=appendDelta(e);a===void 0||!mergeAdjacentEmissions(a,e,t)?r.push({deltaCharacters:l?.length??0,event:e,messages:t,sourceEvents:1}):(a.deltaCharacters+=l?.length??0,a.sourceEvents+=1),s+=l?.length??0,c+=1,pump(),(c>=n||s>=MAX_PENDING_DELTA_CHARACTERS)&&await waitForCapacity(),throwIfFailed()},failureSignal:f.signal}}function mergeAdjacentEmissions(e,t,n){let r=appendKey(e.event),i=appendKey(t);return r!==void 0||i!==void 0?r===void 0||r!==i||!isAppendEvent(e.event)||!isAppendEvent(t)||!sameCoordinates(e.event,t)?!1:(e.deltaParts??=[appendDelta(e.event)],e.deltaParts.push(appendDelta(t)),e.event=t,e.messages=n,!0):e.event.type===`action.partial`&&t.type===`action.partial`&&e.event.data.result.callId===t.data.result.callId&&(e.event=t,e.messages=n,!0)}function appendKey(e){switch(e.type){case`message.appended`:case`reasoning.appended`:return e.type;case`action.input.appended`:return`${e.type}:${e.data.callId}`;default:return}}function isAppendEvent(e){return appendKey(e)!==void 0}function appendDelta(e){switch(e.type){case`message.appended`:return e.data.messageDelta;case`reasoning.appended`:return e.data.reasoningDelta;case`action.input.appended`:return e.data.inputTextDelta;default:return}}function materializeEvent(e){return e.deltaParts===void 0?e.event:e.event.type===`message.appended`?{...e.event,data:{...e.event.data,messageDelta:e.deltaParts.join(``)}}:e.event.type===`reasoning.appended`?{...e.event,data:{...e.event.data,reasoningDelta:e.deltaParts.join(``)}}:e.event.type===`action.input.appended`?{...e.event,data:{...e.event.data,inputTextDelta:e.deltaParts.join(``)}}:e.event}function sameCoordinates(e,t){return e.data.sequence===t.data.sequence&&e.data.stepIndex===t.data.stepIndex&&e.data.turnId===t.data.turnId}export{createOrderedStreamEmitter};
1
+ import{eventsOf}from"#harness/publication.js";const MAX_PENDING_DELTA_CHARACTERS=65536;function createOrderedStreamEmitter(e,t={}){let n=t.maxPendingEvents??64;if(!Number.isInteger(n)||n<1)throw RangeError(`maxPendingEvents must be a positive integer.`);let r=[],i=new Set,a=new Set,o=!1,s=0,c=0,l,u=!1,d=!1,f=new AbortController,throwIfFailed=()=>{if(u)throw l},settleIdleWaiters=()=>{for(let e of a)e();a.clear()},hasCapacity=()=>c<n&&s<MAX_PENDING_DELTA_CHARACTERS,settleCapacityWaiters=()=>{if(hasCapacity()){for(let e of i)e();i.clear()}},pump=async()=>{if(!(d||u)){for(d=!0;r.length>0;){let t=r.shift();if(t===void 0)break;s-=t.deltaCharacters,c-=t.sourceEvents,settleCapacityWaiters();try{await e(t.commit??materializeEvent(t),t.messages)}catch(e){u||(l=e,u=!0,f.abort(e)),r.length=0,s=0,c=0,settleCapacityWaiters();break}}d=!1,settleIdleWaiters()}},waitForIdle=async()=>{if(!d&&r.length===0){throwIfFailed();return}await new Promise(e=>{a.add(e)}),throwIfFailed()},waitForCapacity=async()=>{hasCapacity()||(await new Promise(e=>{i.add(e)}),throwIfFailed())};return{async closeAndDrain(){o=!0,pump(),await waitForIdle()},async emit(e,t){if(throwIfFailed(),o)throw TypeError(`Cannot emit after the ordered stream emitter has closed.`);let i=eventsOf(e),a=i[0];if(a===void 0)return;if(i.length>1){r.push({commit:i,deltaCharacters:0,event:a,messages:t,sourceEvents:i.length}),c+=i.length,pump(),c>=n&&await waitForCapacity(),throwIfFailed();return}let l=r.length-1,u=r[l],d=appendDelta(a);u===void 0||u.commit!==void 0||!mergeAdjacentEmissions(u,a,t)?r.push({deltaCharacters:d?.length??0,event:a,messages:t,sourceEvents:1}):(u.deltaCharacters+=d?.length??0,u.sourceEvents+=1),s+=d?.length??0,c+=1,pump(),(c>=n||s>=MAX_PENDING_DELTA_CHARACTERS)&&await waitForCapacity(),throwIfFailed()},failureSignal:f.signal}}function mergeAdjacentEmissions(e,t,n){let r=appendKey(e.event),i=appendKey(t);return r!==void 0||i!==void 0?r===void 0||r!==i||!isAppendEvent(e.event)||!isAppendEvent(t)?!1:(e.deltaParts??=[appendDelta(e.event)],e.deltaParts.push(appendDelta(t)),e.messages=n,!0):e.event.type===`call.progress`&&t.type===`call.progress`&&e.event.data.callId===t.data.callId&&(e.event=t,e.messages=n,!0)}function appendKey(e){switch(e.type){case`content.delta`:return`${e.type}:${e.data.partId}`;case`call.input`:return`${e.type}:${e.data.callId}`;default:return}}function isAppendEvent(e){return appendKey(e)!==void 0}function appendDelta(e){switch(e.type){case`content.delta`:case`call.input`:return e.data.delta;default:return}}function materializeEvent(e){if(e.deltaParts===void 0)return e.event;let{event:t}=e;return t.type===`content.delta`||t.type===`call.input`?{...t,data:{...t.data,delta:e.deltaParts.join(``)}}:t}export{createOrderedStreamEmitter};
@@ -1 +1 @@
1
- function normalizeProviderToolHistory(e){let t=findProviderToolCallsToNormalize(e);if(e.providerExecutedOutcomeIds.size===0)return{messages:[...e.messages],outcomeEndsResponse:!1};let n=[],r=-1,i=-1,a=0;for(let o of e.messages){if(o.role!==`assistant`||!Array.isArray(o.content)){n.push(o),o.role===`assistant`&&typeof o.content==`string`&&o.content.trim().length>0&&(i=a),a+=1;continue}let s=[],c=[],l=!1,u=[],d=new Set,f=o.content.some(e=>e.type===`tool-result`&&t.has(e.toolCallId)),flushAssistant=()=>{s.length!==0&&(n.push({...o,content:s}),s=[])},flushTool=()=>{c.length!==0&&(n.push({role:`tool`,content:c}),c=[])};for(let n of o.content)n.type===`tool-result`&&t.has(n.toolCallId)?(flushAssistant(),c.push(n)):f&&n.type===`tool-call`&&n.providerExecuted!==!0&&!t.has(n.toolCallId)?(d.add(n.toolCallId),u.push(n)):n.type===`tool-approval-request`&&d.has(n.toolCallId)?u.push(n):(flushTool(),l&&n.type!==`tool-result`&&flushAssistant(),l=n.type===`tool-result`,s.push(n.type===`tool-call`&&t.has(n.toolCallId)?{...n,providerExecuted:!1}:n)),n.type===`tool-result`&&e.providerExecutedOutcomeIds.has(n.toolCallId)?r=a:n.type===`text`&&n.text.trim().length>0&&(i=a),a+=1;flushTool(),s.push(...u),flushAssistant()}return{messages:n,outcomeEndsResponse:r>=0&&r>i}}function findProviderToolCallsToNormalize(e){let t=new Set;for(let n of e.messages){if(n.role!==`assistant`||!Array.isArray(n.content))continue;let r=n.content.some(t=>t.type===`tool-call`&&t.providerExecuted!==!0&&!e.providerExecutedOutcomeIds.has(t.toolCallId));for(let i of n.content)i.type===`tool-call`&&e.providerExecutedOutcomeIds.has(i.toolCallId)&&(i.providerExecuted!==!0||r)&&t.add(i.toolCallId)}return t}export{normalizeProviderToolHistory};
1
+ function normalizeProviderToolHistory(e){let t=findProviderToolCallsToNormalize(e);if(e.providerExecutedOutcomeIds.size===0)return{messages:[...e.messages],outcomeEndsResponse:!1};let n=[],r=-1,i=-1,a=0;for(let o of e.messages){if(o.role!==`assistant`||!Array.isArray(o.content)){n.push(o),o.role===`assistant`&&typeof o.content==`string`&&o.content.trim().length>0&&(i=a),a+=1;continue}let s=[],c=[],l=!1,u=[],d=o.content.some(e=>e.type===`tool-result`&&t.has(e.toolCallId)),flushAssistant=()=>{s.length!==0&&(n.push({...o,content:s}),s=[])},flushTool=()=>{c.length!==0&&(n.push({role:`tool`,content:c}),c=[])};for(let n of o.content)n.type===`tool-result`&&t.has(n.toolCallId)?(flushAssistant(),c.push(n)):d&&n.type===`tool-call`&&n.providerExecuted!==!0&&!t.has(n.toolCallId)?u.push(n):(flushTool(),l&&n.type!==`tool-result`&&flushAssistant(),l=n.type===`tool-result`,s.push(n.type===`tool-call`&&t.has(n.toolCallId)?{...n,providerExecuted:!1}:n)),n.type===`tool-result`&&e.providerExecutedOutcomeIds.has(n.toolCallId)?r=a:n.type===`text`&&n.text.trim().length>0&&(i=a),a+=1;flushTool(),s.push(...u),flushAssistant()}return{messages:n,outcomeEndsResponse:r>=0&&r>i}}function findProviderToolCallsToNormalize(e){let t=new Set;for(let n of e.messages){if(n.role!==`assistant`||!Array.isArray(n.content))continue;let r=n.content.some(t=>t.type===`tool-call`&&t.providerExecuted!==!0&&!e.providerExecutedOutcomeIds.has(t.toolCallId));for(let i of n.content)i.type===`tool-call`&&e.providerExecutedOutcomeIds.has(i.toolCallId)&&(i.providerExecuted!==!0||r)&&t.add(i.toolCallId)}return t}export{normalizeProviderToolHistory};
@@ -0,0 +1,4 @@
1
+ import type { SessionEvent } from "#protocol/session-event.js";
2
+ import type { SessionPublication } from "#harness/types.js";
3
+ /** The events of one publication, in order. */
4
+ export declare function eventsOf(publication: SessionPublication): readonly SessionEvent[];
@@ -0,0 +1 @@
1
+ function eventsOf(e){return Array.isArray(e)?e:[e]}export{eventsOf};
@@ -1,5 +1,4 @@
1
1
  import type { ModelMessage, ToolSet } from "ai";
2
- import type { HarnessSession } from "#harness/types.js";
3
2
  /** Count only request content outside the durable model-visible history. */
4
3
  export declare function estimateRequestEnvelope(input: {
5
4
  readonly history: readonly ModelMessage[];
@@ -7,5 +6,3 @@ export declare function estimateRequestEnvelope(input: {
7
6
  readonly messages: readonly ModelMessage[];
8
7
  readonly tools: ToolSet;
9
8
  }): Promise<number>;
10
- export declare function getRequestEnvelopeTokens(session: HarnessSession): number | undefined;
11
- export declare function setRequestEnvelopeTokens(session: HarnessSession, tokens: number | undefined): HarnessSession;
@@ -1 +1 @@
1
- import{serializeInputSchema}from"#tools/schema.js";import{estimateTokens}from"#harness/token-estimate.js";async function estimateRequestEnvelope(e){let t=await Promise.all(Object.entries(e.tools).map(async([e,t])=>{let n=typeof t.inputSchema==`function`?t.inputSchema():t.inputSchema,r=n===void 0?void 0:`jsonSchema`in n?await n.jsonSchema:serializeInputSchema(n);return{name:e,description:t.description,inputSchema:r,id:t.type===`provider`?t.id:void 0,args:t.type===`provider`?t.args:void 0}}));return Math.max(0,estimateTokens({instructions:e.instructions,messages:e.messages,tools:t})-estimateTokens(e.history))}const REQUEST_ENVELOPE_STATE_KEY=`eve.harness.requestEnvelopeTokens`;function getRequestEnvelopeTokens(e){let t=e.state?.[REQUEST_ENVELOPE_STATE_KEY];return typeof t==`number`&&Number.isFinite(t)&&t>=0?t:void 0}function setRequestEnvelopeTokens(e,t){if(t===void 0&&e.state?.[REQUEST_ENVELOPE_STATE_KEY]===void 0)return e;let n={...e.state};return t===void 0?delete n[REQUEST_ENVELOPE_STATE_KEY]:n[REQUEST_ENVELOPE_STATE_KEY]=t,{...e,state:n}}export{estimateRequestEnvelope,getRequestEnvelopeTokens,setRequestEnvelopeTokens};
1
+ import{serializeInputSchema}from"#tools/schema.js";import{estimateTokens}from"#harness/token-estimate.js";async function estimateRequestEnvelope(e){let t=await Promise.all(Object.entries(e.tools).map(async([e,t])=>{let n=typeof t.inputSchema==`function`?t.inputSchema():t.inputSchema,r=n===void 0?void 0:`jsonSchema`in n?await n.jsonSchema:serializeInputSchema(n);return{name:e,description:t.description,inputSchema:r,id:t.type===`provider`?t.id:void 0,args:t.type===`provider`?t.args:void 0}}));return Math.max(0,estimateTokens({instructions:e.instructions,messages:e.messages,tools:t})-estimateTokens(e.history))}export{estimateRequestEnvelope};
@@ -0,0 +1,10 @@
1
+ import type { SessionStateMap } from "#harness/types.js";
2
+ export interface RunningWork {
3
+ /** Workflow runs a turn waits on, as `workflow-tool-runs.ts` encodes them. */
4
+ readonly calls: readonly unknown[];
5
+ /** Tasks, as `execution/tasks/table.ts` encodes them. */
6
+ readonly tasks: readonly unknown[];
7
+ }
8
+ export declare function readRunningWork(state: SessionStateMap | undefined): RunningWork;
9
+ /** Replaces one part of the record; the record leaves the state once nothing runs. */
10
+ export declare function writeRunningWork(state: SessionStateMap | undefined, part: Partial<RunningWork>): SessionStateMap | undefined;
@@ -0,0 +1 @@
1
+ import{isObject}from"#shared/guards.js";const RUNNING_WORK_STATE_KEY=`eve.work`;function readRunningWork(e){let t=e?.[RUNNING_WORK_STATE_KEY];if(t===void 0)return{calls:[],tasks:[]};if(!isObject(t)||t.version!==1||t.calls!==void 0&&!Array.isArray(t.calls)||t.tasks!==void 0&&!Array.isArray(t.tasks))throw Error(`Corrupt running-work record: invalid version or shape.`);return{calls:Array.isArray(t.calls)?Array.from(t.calls):[],tasks:Array.isArray(t.tasks)?Array.from(t.tasks):[]}}function writeRunningWork(e,t){let n=readRunningWork(e),r=t.calls??n.calls,i=t.tasks??n.tasks;if(r.length===0&&i.length===0){let t={...e};return delete t[RUNNING_WORK_STATE_KEY],Object.keys(t).length===0?void 0:t}let a={version:1};return r.length>0&&(a.calls=r),i.length>0&&(a.tasks=i),{...e,[RUNNING_WORK_STATE_KEY]:a}}export{readRunningWork,writeRunningWork};
@@ -1 +1 @@
1
- import{allOf,anyOf,messageMatches,nameIs,typeIs}from"../rule.js";const GATEWAY_AUTH_FAILURE_SUMMARY_NAME=`AI Gateway authentication failed`,gatewayAuthenticationFailure=anyOf(nameIs(`GatewayAuthenticationError`),typeIs(`authentication_error`),messageMatches(/AI Gateway authentication/i)),GATEWAY_RULES=[{id:`gateway-billing-required`,name:`AI Gateway billing setup required`,tags:[`gateway`,`config`,`recoverable`],when:messageMatches(/AI Gateway requires a valid credit card on file/),message:e=>e.message,hint:`Add a valid credit card or credits in the Vercel dashboard, then retry.`},{id:`gateway-credit-exhausted`,name:`AI Gateway credit balance exhausted`,tags:[`gateway`,`config`,`recoverable`],when:anyOf(typeIs(`insufficient_funds`),messageMatches(/A positive credit balance is required/i)),message:`AI Gateway requires a positive credit balance to process requests.`,hint:`Add credits in the Vercel dashboard, then retry.`},{id:`gateway-budget-exhausted`,name:`AI Gateway project budget exceeded`,tags:[`gateway`,`config`,`recoverable`],when:anyOf(typeIs(`quota_for_entity_exceeded`),messageMatches(/Project budget exceeded/i)),message:`The AI Gateway project budget has been exceeded.`,hint:`Ask your administrator to increase the project budget, then retry.`},{id:`gateway-free-tier-model-restricted`,name:`Model unavailable on AI Gateway free tier`,tags:[`gateway`,`config`,`recoverable`],when:messageMatches(/Free tier users do not have access to this model/),message:e=>e.message,hint:`Switch to a model available on the free tier or upgrade your Vercel plan, then retry.`},{id:`gateway-free-tier-rate-limited`,name:`AI Gateway free tier rate limit exceeded`,tags:[`gateway`,`recoverable`],when:messageMatches(/Free tier requests on this model are rate-limited/),message:e=>e.message,hint:`Wait for the free-tier limit to reset or upgrade your Vercel plan, then retry.`},{id:`gateway-auth-invalid-api-key`,name:GATEWAY_AUTH_FAILURE_SUMMARY_NAME,tags:[`gateway`,`config`],when:allOf(gatewayAuthenticationFailure,messageMatches(/Invalid API key/i)),message:`AI Gateway rejected the provided API key.`,hint:"Update or unset `AI_GATEWAY_API_KEY` (check your shell profile if you did not set it for this project) — manage keys at https://vercel.com/dashboard/ai/api-keys. Unsetting it falls back to OIDC via `eve link`."},{id:`gateway-auth-invalid-oidc-token`,name:GATEWAY_AUTH_FAILURE_SUMMARY_NAME,tags:[`gateway`,`config`],when:allOf(gatewayAuthenticationFailure,messageMatches(/Invalid OIDC token/i)),message:`AI Gateway rejected the OIDC token.`,hint:"Run `eve link` to refresh `VERCEL_OIDC_TOKEN` in `.env.local`, or set `AI_GATEWAY_API_KEY` — create a key at https://vercel.com/dashboard/ai/api-keys."},{id:`gateway-auth-missing-credentials`,name:GATEWAY_AUTH_FAILURE_SUMMARY_NAME,tags:[`gateway`,`config`],when:gatewayAuthenticationFailure,message:`AI Gateway received no credentials.`,hint:"Run `eve link` to populate `VERCEL_OIDC_TOKEN`, or set `AI_GATEWAY_API_KEY` — create a key at https://vercel.com/dashboard/ai/api-keys."},{id:`model-not-found`,name:`Model not found`,tags:[`gateway`,`config`],when:anyOf(nameIs(`GatewayModelNotFoundError`,`AI_NoSuchModelError`),typeIs(`model_not_found`)),message:`The requested model is not available.`,hint:"Check the model id in `agent.ts` (`model:`) or switch models with `/model` in `eve dev` — browse available models at https://vercel.com/ai-gateway/models."},{id:`gateway-rate-limited`,name:`AI Gateway rate limit exceeded`,tags:[`gateway`,`transient`],when:anyOf(nameIs(`GatewayRateLimitError`),typeIs(`rate_limit_exceeded`)),message:`AI Gateway rate-limited the request.`,hint:`Retries are automatic; if it persists, reduce request volume or review your plan limits at https://vercel.com/ai-gateway.`},{id:`gateway-upstream-unavailable`,name:`Model provider unavailable`,tags:[`gateway`,`transient`],when:anyOf(nameIs(`GatewayTimeoutError`),typeIs(`timeout_error`,`overloaded_error`)),message:`The model provider is overloaded or timing out upstream of AI Gateway.`,hint:"This is transient — retry shortly, or switch models with `/model` in `eve dev`."}];export{GATEWAY_RULES};
1
+ import{allOf,anyOf,messageMatches,nameIs,typeIs}from"../rule.js";const GATEWAY_AUTH_FAILURE_SUMMARY_NAME=`AI Gateway authentication failed`,gatewayAuthenticationFailure=anyOf(nameIs(`GatewayAuthenticationError`),typeIs(`authentication_error`),messageMatches(/AI Gateway authentication/i)),GATEWAY_RULES=[{id:`gateway-billing-required`,name:`AI Gateway billing setup required`,tags:[`gateway`,`config`,`recoverable`],when:messageMatches(/AI Gateway requires a valid credit card on file/),message:e=>e.message,hint:`Add a valid credit card or credits in the Vercel dashboard, then retry.`},{id:`gateway-credit-check-throttled`,name:`AI Gateway credit check throttled`,tags:[`gateway`,`transient`],when:messageMatches(/credit balance verification is temporarily throttled/i),message:`AI Gateway temporarily throttled its credit balance check.`,hint:`Retries are automatic; if it persists, wait a moment and retry.`},{id:`gateway-credit-exhausted`,name:`AI Gateway credit balance exhausted`,tags:[`gateway`,`config`,`recoverable`],when:anyOf(typeIs(`insufficient_funds`),messageMatches(/A positive credit balance is required/i)),message:`AI Gateway requires a positive credit balance to process requests.`,hint:`Add credits in the Vercel dashboard, then retry.`},{id:`gateway-budget-exhausted`,name:`AI Gateway project budget exceeded`,tags:[`gateway`,`config`,`recoverable`],when:anyOf(typeIs(`quota_for_entity_exceeded`),messageMatches(/Project budget exceeded/i)),message:`The AI Gateway project budget has been exceeded.`,hint:`Ask your administrator to increase the project budget, then retry.`},{id:`gateway-free-tier-model-restricted`,name:`Model unavailable on AI Gateway free tier`,tags:[`gateway`,`config`,`recoverable`],when:messageMatches(/Free tier users do not have access to this model/),message:e=>e.message,hint:`Switch to a model available on the free tier or upgrade your Vercel plan, then retry.`},{id:`gateway-free-tier-rate-limited`,name:`AI Gateway free tier rate limit exceeded`,tags:[`gateway`,`recoverable`],when:messageMatches(/Free tier requests on this model are rate-limited/),message:e=>e.message,hint:`Wait for the free-tier limit to reset or upgrade your Vercel plan, then retry.`},{id:`gateway-auth-invalid-api-key`,name:GATEWAY_AUTH_FAILURE_SUMMARY_NAME,tags:[`gateway`,`config`],when:allOf(gatewayAuthenticationFailure,messageMatches(/Invalid API key/i)),message:`AI Gateway rejected the provided API key.`,hint:"Update or unset `AI_GATEWAY_API_KEY` (check your shell profile if you did not set it for this project) — manage keys at https://vercel.com/dashboard/ai/api-keys. Unsetting it falls back to OIDC via `eve link`."},{id:`gateway-auth-invalid-oidc-token`,name:GATEWAY_AUTH_FAILURE_SUMMARY_NAME,tags:[`gateway`,`config`],when:allOf(gatewayAuthenticationFailure,messageMatches(/Invalid OIDC token/i)),message:`AI Gateway rejected the OIDC token.`,hint:"Run `eve link` to refresh `VERCEL_OIDC_TOKEN` in `.env.local`, or set `AI_GATEWAY_API_KEY` — create a key at https://vercel.com/dashboard/ai/api-keys."},{id:`gateway-auth-missing-credentials`,name:GATEWAY_AUTH_FAILURE_SUMMARY_NAME,tags:[`gateway`,`config`],when:gatewayAuthenticationFailure,message:`AI Gateway received no credentials.`,hint:"Run `eve link` to populate `VERCEL_OIDC_TOKEN`, or set `AI_GATEWAY_API_KEY` — create a key at https://vercel.com/dashboard/ai/api-keys."},{id:`model-not-found`,name:`Model not found`,tags:[`gateway`,`config`],when:anyOf(nameIs(`GatewayModelNotFoundError`,`AI_NoSuchModelError`),typeIs(`model_not_found`)),message:`The requested model is not available.`,hint:"Check the model id in `agent.ts` (`model:`) or switch models with `/model` in `eve dev` — browse available models at https://vercel.com/ai-gateway/models."},{id:`gateway-rate-limited`,name:`AI Gateway rate limit exceeded`,tags:[`gateway`,`transient`],when:anyOf(nameIs(`GatewayRateLimitError`),typeIs(`rate_limit_exceeded`)),message:`AI Gateway rate-limited the request.`,hint:`Retries are automatic; if it persists, reduce request volume or review your plan limits at https://vercel.com/ai-gateway.`},{id:`gateway-upstream-unavailable`,name:`Model provider unavailable`,tags:[`gateway`,`transient`],when:anyOf(nameIs(`GatewayTimeoutError`),typeIs(`timeout_error`,`overloaded_error`)),message:`The model provider is overloaded or timing out upstream of AI Gateway.`,hint:"This is transient — retry shortly, or switch models with `/model` in `eve dev`."}];export{GATEWAY_RULES};
@@ -0,0 +1,17 @@
1
+ import type { SessionEvent } from "#protocol/session-event.js";
2
+ import type { SessionView } from "#protocol/session-projection/tables.js";
3
+ import { type Ref } from "#protocol/session-projection/tree.js";
4
+ /**
5
+ * An owner's end ends everything under it, in the same commit. For each fact that ends an entity
6
+ * still holding open ones, this closes them first, leaves first, as their families close when
7
+ * an owner ends; the deliveries a turn consumed settle after it. Writers that already closed
8
+ * them leave nothing to add.
9
+ */
10
+ export declare function cascade(view: SessionView, events: readonly SessionEvent[]): SessionEvent[];
11
+ /** The facts that close everything open under `owner`, leaves first, as it its owner cut it. */
12
+ export declare function closeUnder(view: SessionView, owner: Ref, reason: string): SessionEvent[];
13
+ /**
14
+ * The facts that close the open entities `which` selects, leaves first, as a retry superseded
15
+ * them. The writer closes what each leaves open under it.
16
+ */
17
+ export declare function supersede(view: SessionView, which: (ref: Ref) => boolean, reason: string): SessionEvent[];
@@ -0,0 +1 @@
1
+ import{FACT_CATALOG,isFactType,isTerminalType}from"#protocol/session-events/catalog.js";import{copyView,foldReceivedEvent}from"#protocol/session-projection/fold.js";import{isOpen,openUnder,refOf,rowOf,scopeOf}from"#protocol/session-projection/tree.js";const TREE_FAMILY={call:`call`,content:`part`,context:`change`,delivery:`delivery`,interaction:`interaction`,model:`run`,response:`response`,task:`task`,turn:`turn`},ENDS_WITH={call:{cut:`interrupted`,superseded:`abandoned`},change:{cut:`interrupted`,superseded:`interrupted`},delivery:{cut:`handled`,superseded:`handled`},interaction:{cut:`interrupted`,superseded:`abandoned`},response:{cut:`withdrawn`,superseded:`abandoned`},run:{cut:`interrupted`,superseded:`abandoned`},task:{cut:`cancelled`,superseded:`cancelled`},turn:{cut:`cancelled`,superseded:`cancelled`}};function cascade(e,t){if(!t.some(e=>isFactType(e.type)))return[...t];let n=copyView(e),r=[],apply=e=>{foldReceivedEvent(n,{...e,meta:{endOfLine:!1}}),r.push(stamped(n,e))},i=new Set(t.flatMap(t=>{let n=endedBy(e,t,!1);return n===void 0||n===`session`?[]:[`${n.family}:${n.id}`]})),cascaded=e=>e.filter(e=>!i.has(`${e.family}:${e.id}`));for(let e of t){let t=endedBy(n,e);if(t===void 0){apply(e);continue}let{outcome:r,reason:i}=e.data,a={reason:reasonFor(t,r,i),superseded:r===`abandoned`},o=copyView(n);foldReceivedEvent(o,{...e,meta:{endOfLine:!1}});let s=cascaded(openUnder(o,t)),after=e=>e.family===`delivery`&&t!==`session`;for(let e of s.filter(e=>!after(e)))apply(closing(n,e,a,t===`session`));apply(e);for(let e of s.filter(after))apply(closing(n,e,a,!1))}return r}function stamped(e,t){if(!isFactType(t.type))return t;let n=FACT_CATALOG[t.type],r=t.data,i=TREE_FAMILY[n.family],a=r[n.idField],o=i!==void 0&&typeof a==`string`&&rowOf(e,i,a)!==void 0?{family:i,id:a}:refOf(r.owner);if(o===void 0)return t;let s=scopeOf(e,o);return Object.keys(s).length===0?t:{...t,scope:s}}function closeUnder(e,t,n){let r=copyView(e);return openUnder(r,t).map(e=>{let t=closing(r,e,{reason:n,superseded:!1},!1);return foldReceivedEvent(r,{...t,meta:{endOfLine:!1}}),t})}function supersede(e,t,n){let r=copyView(e),i=[];for(let e of openUnder(r,`session`)){if(!isOpen(r,e)||!t(e))continue;let a=closing(r,e,{reason:n,superseded:!0},!1);foldReceivedEvent(r,{...a,meta:{endOfLine:!1}}),i.push(a)}return i}function reasonFor(e,t,n){if(e===`session`)return`session-ended`;switch(e.family){case`turn`:return t===`completed`?`turn-ended`:`turn-${t}`;case`run`:return t===`abandoned`?`model-call-retried`:`steered`;case`task`:return n??`task-ended`;case`interaction`:return n??`interaction-${t??`ended`}`;case`change`:return`context-change-failed`;default:return`${e.family}-${t??`ended`}`}}function endedBy(e,t,n=!0){if(!isFactType(t.type)||!isTerminalType(t.type))return;if(t.type===`session.ended`)return`session`;let r=FACT_CATALOG[t.type],i=TREE_FAMILY[r.family],a=t.data[r.idField];if(i===void 0||typeof a!=`string`)return;let o={family:i,id:a};return!n||isOpen(e,o)?o:void 0}function closing(e,t,n,r){let{reason:i,superseded:a}=n,o=ENDS_WITH[t.family],s=a?o.superseded:o.cut,c=scopeOf(e,t);switch(t.family){case`interaction`:return{data:{interactionId:t.id,outcome:s,reason:i},scope:c,type:`interaction.settled`};case`response`:return{data:{outcome:s,reason:i,responseId:t.id},type:`response.settled`};case`call`:return{data:{callId:t.id,outcome:s,reason:i},scope:c,type:`call.settled`};case`run`:return{data:{outcome:s,runId:t.id},scope:c,type:`model.settled`};case`task`:return{data:{outcome:s,reason:i,taskId:t.id},scope:c,type:`task.ended`};case`change`:return{data:{changeId:t.id,kind:rowOf(e,`change`,t.id).kind,outcome:s},scope:c,type:`context.settled`};case`delivery`:{let n=rowOf(e,`delivery`,t.id)?.turnId;return r||n===void 0?{data:{deliveryId:t.id,outcome:`failed`,reason:i},type:`delivery.settled`}:{data:{deliveryId:t.id,outcome:s,turnId:n},type:`delivery.settled`}}default:{let n=rowOf(e,`turn`,t.id)?.reply;return{data:{outcome:s,...n!==void 0&&n.length>0&&{reply:n},turnId:t.id},scope:c,type:`turn.settled`}}}}export{cascade,closeUnder,supersede};
@@ -1,39 +1,39 @@
1
+ import type { SessionEvent } from "#protocol/session-event.js";
1
2
  import type { ModelMessage } from "ai";
2
- import type { AuthorizationChallenge } from "#harness/authorization.js";
3
3
  import type { HarnessSessionBase, SessionStateMap } from "#harness/types.js";
4
- import type { UnstampedMessageStreamEvent } from "#protocol/message.js";
5
4
  import type { SessionProjection } from "#protocol/session-projection.js";
6
- import { type RelayChange } from "#harness/hitl/requests.js";
5
+ import { type HitlStateChange } from "#harness/hitl/requests.js";
7
6
  import { type TurnState } from "./state.js";
8
7
  import type { SessionView } from "./view.js";
9
8
  /** What a machine transition returns; approval storage still has direct writers. */
10
- export interface Transition {
9
+ export interface Transition extends HitlStateChange {
11
10
  readonly turn: TurnState;
12
- readonly events: readonly UnstampedMessageStreamEvent[];
11
+ readonly events: readonly SessionEvent[];
13
12
  /** Messages the transition commits to the end of history. */
14
13
  readonly commit?: readonly ModelMessage[];
15
14
  /** The transition empties history, as `clear` does. */
16
15
  readonly clearsHistory?: true;
17
- /** Every sign-in the session waits on once the transition applies; `[]` withdraws them all. */
18
- readonly signIns?: readonly AuthorizationChallenge[];
19
- /** Relay routes the transition records or retires. */
20
- readonly relays?: RelayChange;
21
16
  }
22
- /** Publishes one event; `messages` is the conversation hooks see with it. */
23
- export type Publish = (event: UnstampedMessageStreamEvent, messages?: readonly ModelMessage[]) => Promise<void>;
17
+ /**
18
+ * Publishes one event, or one transition's events as one commit; `messages` is the conversation as
19
+ * of the commit, for the reactions that read it.
20
+ */
21
+ export type Publish = (publication: SessionEvent | readonly SessionEvent[], messages?: readonly ModelMessage[]) => Promise<void>;
24
22
  export declare function sessionView(projection: SessionProjection, state: SessionStateMap | undefined): SessionView;
25
23
  /**
26
- * Publishes a transition's events, then saves what it changed. A transition that changes history
27
- * needs a session restored with it.
24
+ * Publishes a transition's events as one commit, then saves what it changed. A transition that
25
+ * changes history needs a session restored with it.
28
26
  */
29
27
  export declare function applyTransition<T extends {
30
28
  readonly state?: SessionStateMap;
31
29
  }>(session: T, transition: Transition, publish: Publish, messages?: readonly ModelMessage[]): Promise<T>;
32
- /** Publishes a transition's events, in order. */
33
- export declare function publishTransition(transition: Transition, publish: Publish, messages?: readonly ModelMessage[]): Promise<void>;
34
30
  /** Saves what a transition changes once its events are published. */
35
31
  export declare function saveTransition<T extends {
36
32
  readonly state?: SessionStateMap;
37
33
  }>(session: T, transition: Transition): T;
38
- /** Drops the private records whose owner the projection shows closed. */
34
+ /**
35
+ * Drops the private records whose row the projection shows done, the one way they retire: a
36
+ * relay's route once its asker settles the interaction, and a responder's once their answer
37
+ * settled. Admitted answers can still be refused while the rest of their batch waits.
38
+ */
39
39
  export declare function dropClosedRecords<T extends HarnessSessionBase>(session: T, projection: SessionProjection): T;
@@ -1 +1 @@
1
- import{readTurnState,writeTurnState}from"./state.js";import{validateHarnessModelMessages}from"#harness/messages.js";import{getSessionUsage}from"#harness/turn-tag-state.js";import{readHitlState,writeHitlState}from"#harness/hitl/requests.js";function sessionView(e,t){let n=readHitlState(t);return{projection:e,relayedRequestIds:new Set(n.relays.keys()),signIns:n.signIns,turn:readTurnState(t),usage:getSessionUsage({state:t})}}const READS_HISTORY=new Set([`turn.started`,`step.started`,`turn.completed`]);async function applyTransition(e,t,n,r){return await publishTransition(t,n,r),saveTransition(e,t)}async function publishTransition(e,t,n){for(let r of e.events)await t(r,READS_HISTORY.has(r.type)?n:void 0)}function saveTransition(e,t){let n=writeTurnState(writeHitlState(e,t),t.turn),r=t.commit??[];if(t.clearsHistory!==!0&&r.length===0)return n;if(!(`history`in e))throw Error(`A transition that changes history needs the session's history.`);let{history:i}=e,a=t.clearsHistory?[]:validateHarnessModelMessages([...i,...r]);return{...n,history:a}}function dropClosedRecords(e,t){let n=[...readHitlState(e.state).relays.keys()].filter(e=>{let n=t.inputs[e];return n===void 0||n.status===`settled`});return writeHitlState(e,{relays:{retire:n}})}export{applyTransition,dropClosedRecords,publishTransition,saveTransition,sessionView};
1
+ import{readTurnState,writeTurnState}from"./state.js";import{validateHarnessModelMessages}from"#harness/messages.js";import{signInInteractionId}from"#harness/interaction-facts.js";import{readHitlState,writeHitlState}from"#harness/hitl/requests.js";function sessionView(e,t){let n=readHitlState(t);return{projection:e,relayedRequestIds:new Set(n.relays.keys()),responders:n.responders,signIns:n.signIns.filter(t=>e.view.interactions[signInInteractionId(t)]?.status!==`settled`),turn:readTurnState(t)}}async function applyTransition(e,t,n,r){return t.events.length>0&&await n(t.events,r),saveTransition(e,t)}function saveTransition(e,t){let n=writeTurnState(writeHitlState(e,t),t.turn),r=t.commit??[];if(t.clearsHistory!==!0&&r.length===0)return n;if(!(`history`in e))throw Error(`A transition that changes history needs the session's history.`);let{history:i}=e,a=t.clearsHistory?[]:validateHarnessModelMessages([...i,...r]);return{...n,history:a}}function dropClosedRecords(e,t){return writeHitlState(e,{},t.view)}export{applyTransition,dropClosedRecords,saveTransition,sessionView};