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
@@ -0,0 +1 @@
1
+ import{asSchema,generateId}from"ai";import{createLogger,logError}from"#internal/logging.js";import{displayTitle}from"#protocol/session-projection/display-name.js";import{toError}from"#shared/errors.js";import{toModelSchema}from"#tools/schema.js";import{isAuthorizationSignal,modelFacingAuthorizationOutput}from"#harness/authorization.js";import{toolCallModelOutput}from"#harness/tool-call-io.js";import{resolveToolCallInputObject}from"#harness/coordination.js";import{callProgress,callSettledFrom,callStarted}from"#harness/call-facts.js";import{decideApproval,invokeTool,isRunnableTool}from"#harness/tools.js";import{isAsyncIterable}from"#shared/async-iterable.js";import{throwIfTurnAborted}from"#harness/turn-cancellation.js";import{createRuntimeToolResultFromValue}from"#harness/action-result-helpers.js";import{TOOL_EXECUTION_DENIED_MESSAGE,failedCall}from"#harness/approval-outcome.js";import{isInvalidToolCall}from"#harness/tool-call-input-errors.js";import{projectToolLabel}from"#harness/action-presentation.js";const log=createLogger(`harness.tool-loop`),APPROVED_CALL_INTERRUPTED_MESSAGE=`The turn was cancelled while this approved tool call was running. It may have partially run; it was not retried.`;async function executeToolCall(e,t,n){let{callId:r,toolName:i,input:a}=e,{definition:o}=t,s=[],c=[],l=!1,u;try{if(throwIfTurnAborted(t.abortSignal),(n===`recheck`?await asSchema(toModelSchema(o.inputSchema,`input`)).validate?.(a):void 0)?.success===!1){let e=`The approved input is no longer valid for tool "${i}". Request a new tool call and approval.`;return await t.beforeResult?.(e),await t.publish(callSettledFrom(createRuntimeToolResultFromValue({callId:r,isError:!0,output:e,toolName:i}),{})),{settled:[{part:{type:`tool-result`,toolCallId:r,toolName:i,output:{type:`error-text`,value:e}}}],toolResults:c}}let e=await decideApproval(o,{abortSignal:t.abortSignal,callId:r,input:a,approvalMemory:t.approvalMemory,recheck:n===`recheck`});if(e.awaitsPerson===!0)return{awaitsApproval:!0,remember:e.remember,settled:s,toolResults:c};if(e.denied){await t.beforeResult?.(e.reason??TOOL_EXECUTION_DENIED_MESSAGE);let n=await publishDenial({callId:r,input:a,toolName:i},{publish:t.publish,reason:e.reason});return{settled:[...s,...n.settled],toolResults:c}}let d=t.clearedBy??e.clearedBy,f,p=!1,m=``,h,g=toolTelemetry(t.telemetry,{callId:t.modelCallId??`approved:${r}`,messages:[...t.messages],toolCall:{input:a,toolCallId:r,toolName:i,type:`tool-call`}});t.beforeExecute?.(),await g.started();let _=0;try{await g.execute(async()=>{let e=performance.now();try{l=!0,await t.publish(callStarted(r,d===void 0?{}:{clearedBy:d}));let e=invokeTool(o,a,{...t.responder!==void 0&&{approval:{responder:t.responder}},abortSignal:t.abortSignal,messages:[...t.messages],toolCallId:r}),i=n===`evaluate`?t.abortSignal:void 0;if(isAsyncIterable(e))for await(let n of untilAborted(e,i)){f=n;let e=withoutSignInSecrets(n);await t.publish(callProgress(r,e,projectToolLabel(o,`delta`,a,e)))}else f=await raceAbort(Promise.resolve(e),i)}finally{_=performance.now()-e}})}catch(e){await g.ended({error:e,input:a,toolCallId:r,toolName:i,type:`tool-error`},_),throwIfTurnAborted(t.abortSignal),logError(log,`tool execution failed`,e,{toolName:i,toolCallId:r}),p=!0,h=toError(e),f=h.message,m=modelFacingError(e)}if(p||await g.ended({input:a,output:withoutSignInSecrets(f),toolCallId:r,toolName:i,type:`tool-result`},_),!p&&isAuthorizationSignal(f)){let e={callId:r,input:a,signal:f,toolName:i};return{settled:s,signIn:o.version===void 0?e:{...e,version:o.version},toolResults:c}}return c.push({input:a,output:f,toolCallId:r,toolName:i,type:`tool-result`}),u={part:{output:p?{type:`error-text`,value:m}:await toolCallModelOutput(o,f,r),toolCallId:r,toolName:i,type:`tool-result`}},s.push(u),await t.beforeResult?.(p?h:void 0),await t.publish(callSettledFrom(createRuntimeToolResultFromValue({callId:r,isError:p,output:h??f,toolName:i}),{label:p?void 0:projectToolLabel(o,`complete`,a,f)})),{settled:s,toolResults:c}}catch(e){if(t.abortSignal?.aborted===!0)return l||throwIfTurnAborted(t.abortSignal),u===void 0?{settled:[interruptedResult(r,i)],toolResults:c}:{settled:[u],toolResults:c};let n=toError(e);logError(log,`tool call failed`,e,{toolName:i,toolCallId:r}),await t.beforeResult?.(n);let a=failedCall({callId:r,toolName:i,message:n});return await t.publish(callSettledFrom(a.result)),{settled:[{part:a.part}],toolResults:c}}}async function raceAbort(e,t){if(t===void 0)return await e;e.catch(()=>{}),t.throwIfAborted();let onAbort,n=new Promise((e,n)=>{onAbort=()=>n(t.reason),t.addEventListener(`abort`,onAbort,{once:!0})});try{return await Promise.race([e,n])}finally{t.removeEventListener(`abort`,onAbort)}}async function*untilAborted(e,t){let n=e[Symbol.asyncIterator](),r=!1;try{for(;;){let e=await raceAbort(n.next(),t);if(e.done===!0){r=!0;return}yield e.value}}finally{!r&&n.return!==void 0&&await raceAbort(Promise.resolve(n.return()),t)}}function modelFacingError(e){return e==null?`unknown error`:typeof e==`string`?e:e instanceof Error?e.toString():JSON.stringify(e)}function withoutSignInSecrets(e){return isAuthorizationSignal(e)?modelFacingAuthorizationOutput(e):e}function interruptedResult(e,t){return{part:{output:{type:`error-text`,value:APPROVED_CALL_INTERRUPTED_MESSAGE},toolCallId:e,toolName:t,type:`tool-result`}}}function toolTelemetry(e,t){let n=e===void 0||e.isEnabled===!1?[]:[e.integrations??[]].flat(),r={...t,functionId:e?.functionId,recordInputs:e?.recordInputs,recordOutputs:e?.recordOutputs,toolContext:void 0},notify=async e=>{await Promise.allSettled(n.map(async t=>await e(t)))};return{started:()=>notify(e=>e.onToolExecutionStart?.(r)),execute:async e=>{let wrapped=e;for(let e of n){if(e.executeTool===void 0)continue;let n=wrapped;wrapped=()=>e.executeTool({...r,execute:n,toolCallId:t.toolCall.toolCallId})}await wrapped()},ended:(e,t)=>notify(n=>n.onToolExecutionEnd?.({...r,toolExecutionMs:t,toolOutput:e}))}}const NO_INLINE_CALLS={approvals:[],parts:[],signIns:[],toolResults:[]};async function executeInlineCalls(e){let t=e.toolCalls.filter(t=>t.providerExecuted!==!0&&!isInvalidToolCall(t)&&!e.excludedCallIds.has(t.toolCallId)&&e.tools.get(t.toolName)!==void 0),n=await Promise.allSettled(t.map(async t=>{let n=e.tools.get(t.toolName),r={callId:t.toolCallId,input:t.input,toolName:t.toolName};try{let i=isRunnableTool(n)?await executeToolCall(r,{...e,definition:n},`evaluate`):await decideDeferredCall(r,n,e);return{call:t,executed:i,approval:i.awaitsApproval===!0?{...approvalRequest(t,n),remember:i.remember}:void 0}}catch(n){throwIfTurnAborted(e.abortSignal);let i=failedCall({...r,message:toError(n)});return await e.publish(callSettledFrom(i.result)),{call:t,executed:{settled:[{part:i.part}],toolResults:[]}}}})),r=n.find(e=>e.status===`rejected`);if(r?.status===`rejected`)throw r.reason;let i=n.flatMap(e=>e.status===`fulfilled`?[e.value]:[]);return{policyApprovals:Object.fromEntries(i.flatMap(({call:e,executed:t})=>t.clearedBy===void 0?[]:[[e.toolCallId,t.clearedBy]])),approvals:i.flatMap(({approval:e})=>e===void 0?[]:[e]),parts:i.flatMap(({executed:e})=>e.settled.map(e=>e.part)),signIns:i.flatMap(({executed:e})=>e.signIn===void 0?[]:[e.signIn]),toolResults:i.flatMap(({executed:e})=>e.toolResults)}}async function decideDeferredCall(e,t,n){if(t.approval===void 0)return{settled:[],toolResults:[]};let r=await decideApproval(t,{abortSignal:n.abortSignal,approvalMemory:n.approvalMemory,callId:e.callId,input:e.input});return r.awaitsPerson===!0?{awaitsApproval:!0,remember:r.remember,settled:[],toolResults:[]}:r.denied?await publishDenial(e,{publish:n.publish,reason:r.reason}):{settled:[],toolResults:[],clearedBy:r.clearedBy}}async function publishDenial(e,t){let n={output:{reason:t.reason,type:`execution-denied`},toolCallId:e.callId,toolName:e.toolName,type:`tool-result`};return await t.publish(callSettledFrom({callId:e.callId,isError:!0,kind:`tool-result`,output:{code:`TOOL_EXECUTION_DENIED`,message:t.reason??TOOL_EXECUTION_DENIED_MESSAGE,tool:{result:`not_run`}},toolName:e.toolName},{rejected:!0})),{settled:[{part:n}],toolResults:[]}}function approvalRequest(e,t){let{toolCallId:n,toolName:r}=e,i=resolveToolCallInputObject(e.input,{callId:n,toolName:r}),a=projectToolLabel(t,`start`,i)??displayTitle(r),o=authoredApprovalPrompt(e,t);return{call:{callId:n,input:i,toolName:r,...t?.version!==void 0&&{version:t.version}},interactionId:generateId(),request:{allowFreeform:!1,display:`confirmation`,kind:`approval`,options:[{id:`approve`,label:`Approve`},{id:`deny`,label:`Deny`}],prompt:o??`Approve ${a}?`}}}function authoredApprovalPrompt(e,t){let n=t?.approval;if(n===void 0||typeof n==`function`)return;let r=typeof e.input==`object`&&e.input!==null&&!Array.isArray(e.input)?e.input:{},i=n.prompt?.({callId:e.toolCallId,input:r,toolName:e.toolName});if(i!==void 0&&typeof i!=`string`)throw Error(`Tool "${e.toolName}" approval prompt must return a string.`);return i}export{APPROVED_CALL_INTERRUPTED_MESSAGE,NO_INLINE_CALLS,executeInlineCalls,executeToolCall,publishDenial};
@@ -0,0 +1,31 @@
1
+ import type { SessionEvent } from "#protocol/session-event.js";
2
+ import type { Cause, ErrorInfo, JsonValue } from "#protocol/session-events/envelope.js";
3
+ import type { FactOf } from "#protocol/session-events/facts.js";
4
+ import type { Capability, CapabilityKind, CallOwner, ClearedBy } from "#protocol/session-events/families/call.js";
5
+ import type { HarnessToolDefinition } from "#harness/execute-tool.js";
6
+ import type { RuntimeActionRequest, RuntimeActionResult } from "#shared/action-types.js";
7
+ /** What a call invokes: a tool, an agent, the skill it loads, or a task control, with its label. */
8
+ export declare function capabilityOf(action: RuntimeActionRequest, label?: string): Capability;
9
+ /** What a call to an entry invokes, as its input starts streaming. */
10
+ export declare function announcedKind(name: string, definition: Pick<HarnessToolDefinition, "behavior"> | undefined): CapabilityKind;
11
+ /** The model asked for a call. */
12
+ export declare function callRequested(input: {
13
+ readonly action: RuntimeActionRequest;
14
+ readonly owner: CallOwner;
15
+ readonly label?: string;
16
+ readonly inputError?: ErrorInfo;
17
+ }): FactOf<"call.requested">;
18
+ /** A call was cleared and began running. */
19
+ export declare function callStarted(callId: string, options?: {
20
+ readonly clearedBy?: ClearedBy;
21
+ }): FactOf<"call.started">;
22
+ /** A call settled from its runtime result: failed if the result says so, otherwise completed. */
23
+ export declare function callSettledFrom(result: RuntimeActionResult, options?: {
24
+ readonly label?: string;
25
+ readonly rejected?: boolean;
26
+ readonly cause?: Cause;
27
+ }): FactOf<"call.settled">;
28
+ /** A call's partial output, as progress. */
29
+ export declare function callProgress(callId: string, output: unknown, label?: string): SessionEvent;
30
+ /** A value as the wire carries it: JSON, with anything else as its string form. */
31
+ export declare function toJsonValue(value: unknown): JsonValue;
@@ -0,0 +1 @@
1
+ import{isTaskControlTool}from"#protocol/task-tools.js";import{SKILL_ENTRY_NAME}from"#protocol/catalog-tools.js";import{defined,fact}from"#harness/facts.js";import{callOutcomeOf}from"#harness/call-outcome.js";function capabilityOf(e,t){let n=e.kind===`load-skill`?{kind:`skill`,name:e.name}:e.kind===`subagent-call`?{kind:`agent`,name:e.name}:e.kind===`remote-agent-call`?{kind:`agent`,name:e.name,remote:!0}:{kind:toolKind(e.toolName),name:e.toolName};return t===void 0?n:{...n,label:t}}function announcedKind(e,t){if(e===SKILL_ENTRY_NAME)return`skill`;let n=t?.behavior?.handling;return n?.kind===`dispatch`&&n.target.kind!==`workflow-tool-call`?`agent`:toolKind(e)}function toolKind(e){return isTaskControlTool(e)?`control`:`tool`}function callRequested(e){let{action:t,inputError:n}=e;return fact(`call.requested`,{callId:t.callId,capability:capabilityOf(t,e.label),input:n===void 0?toJsonValue(t.input):void 0,inputError:n,owner:e.owner})}function callStarted(e,t={}){return fact(`call.started`,{callId:e,clearedBy:t.clearedBy})}function callSettledFrom(e,t={}){let{error:n,outcome:r}=callOutcomeOf(e),i=t.rejected===!0;return fact(`call.settled`,{callId:e.callId,cause:t.cause??(i?{policy:`approval`}:void 0),error:n,outcome:i?`rejected`:r,output:e.output===void 0?void 0:toJsonValue(e.output),label:t.label})}function callProgress(e,t,n){return{data:defined({callId:e,output:toJsonValue(t),label:n}),type:`call.progress`}}function toJsonValue(e){if(e===void 0)return null;if(e===null||typeof e==`string`||typeof e==`boolean`)return e;if(typeof e==`number`)return Number.isFinite(e)?e:String(e);if(typeof e==`bigint`||typeof e==`symbol`||typeof e==`function`)return String(e);try{return JSON.parse(JSON.stringify(e))}catch{return String(e)}}export{announcedKind,callProgress,callRequested,callSettledFrom,callStarted,capabilityOf,toJsonValue};
@@ -0,0 +1,6 @@
1
+ import type { ErrorInfo } from "#protocol/session-events/envelope.js";
2
+ import type { RuntimeActionResult } from "#shared/action-types.js";
3
+ export declare function callOutcomeOf(result: RuntimeActionResult): {
4
+ readonly outcome: "completed" | "failed";
5
+ readonly error?: ErrorInfo;
6
+ };
@@ -0,0 +1 @@
1
+ function callOutcomeOf(e){if(e.isError===!0){let t=readOutputError(e.output)??{code:`ACTION_RESULT_FAILED`,message:formatOutput(e.output)};return{error:`errorName`in e&&e.errorName!==void 0?{...t,name:e.errorName}:t,outcome:`failed`}}return{outcome:`completed`}}function readOutputError(e){let t=parseRecord(e);if(t===void 0)return;let n=typeof t.code==`string`&&t.code.length>0?t.code:void 0,r=typeof t.message==`string`&&t.message.length>0?t.message:void 0;return n===void 0||r===void 0?void 0:{code:n,message:r}}function parseRecord(e){if(typeof e==`object`&&e)return e;if(typeof e!=`string`)return;let t=e.trim();if(t.length!==0)try{let e=JSON.parse(t);return typeof e==`object`&&e?e:void 0}catch{return}}function formatOutput(e){if(typeof e==`string`)return e;let t=JSON.stringify(e);return typeof t==`string`&&t.length>0?t:`Action failed.`}export{callOutcomeOf};
@@ -6,6 +6,17 @@ import type { CompactionConfig } from "#harness/types.js";
6
6
  * appended since.
7
7
  */
8
8
  export declare function getInputTokenCount(messages: readonly ModelMessage[], config: CompactionConfig, requestEnvelopeTokens?: number, previousEnvelopeTokens?: number): number;
9
+ /** The settings without the last measured prompt, which a rewritten history no longer matches. */
10
+ export declare function withoutPromptMeasurement(config: CompactionConfig): CompactionConfig;
11
+ /**
12
+ * The settings with a model-reported prompt measurement and the envelope around it. Without a
13
+ * usable measurement, the next count is an estimate, and no envelope baseline applies.
14
+ */
15
+ export declare function withPromptMeasurement(config: CompactionConfig, measured: {
16
+ readonly inputTokens?: number;
17
+ readonly promptMessageCount?: number;
18
+ readonly requestEnvelopeTokens?: number;
19
+ }): CompactionConfig;
9
20
  /**
10
21
  * Returns true when the message history and fixed compaction-prompt envelope
11
22
  * exceed the compaction threshold.
@@ -1,3 +1,3 @@
1
- import{createFrameworkUserMessage,isFrameworkUserMessage}from"#harness/messages.js";import{COMPACTION_CHECKPOINT_MARKER,COMPACTION_PROMPT_ENVELOPE,COMPACTION_RESUMPTION_MESSAGE,TRANSCRIPT_PAYLOAD_LIMIT,clipMiddleUtf16Safe,createCompactionPrompt,serializeToolResultOutput,sliceUtf16Safe,stubContentOutputFileParts}from"#harness/compaction/prompt.js";import{CompactionOverLimitError}from"#harness/compaction/over-limit-error.js";import{estimateTokens}from"#harness/token-estimate.js";const COMPACTION_PROMPT_OVERHEAD_TOKENS=estimateTokens([{content:COMPACTION_PROMPT_ENVELOPE.system,role:`system`},createFrameworkUserMessage(`context.compaction`,COMPACTION_PROMPT_ENVELOPE.prompt)]);function getInputTokenCount(e,t,n=0,r=0){let i=t.lastKnownInputTokens,a=t.lastKnownPromptMessageCount;return i===void 0||a===void 0||!Number.isInteger(a)||a<0||a>e.length?estimateTokens(e)+n:i+estimateTokens(e.slice(a))+Math.max(0,n-r)}function shouldCompact(e,t,n=0,r=0){return e.length>0&&getInputTokenCount(e,t,n,r)+COMPACTION_PROMPT_OVERHEAD_TOKENS>t.threshold}const COMPACTION_HEURISTICS=[toolResultCapHeuristic];function toolResultCapHeuristic(e){let t=withResumptionGuard([...e.previousCheckpoint===void 0?[]:[createFrameworkUserMessage(`context.compaction`,COMPACTION_CHECKPOINT_MARKER),{content:e.previousCheckpoint,role:`assistant`}],...capToolResults(e.older),...e.recent],e.replay,e.config.threshold);return evaluateThreshold(t,e.config,`should-compact`,e.tokenEstimateAdjustment).type===`within-limit`?{messages:t,type:`within-limit`}:{type:`insufficient`}}function evaluateThreshold(e,t,n,r=0){let i=n===`should-compact`?COMPACTION_PROMPT_OVERHEAD_TOKENS:0,a=estimateTokens(e)+i+r;return{estimatedTokens:a,type:a<=t.threshold?`within-limit`:`over-limit`}}async function compactMessages(e,t,n,r=!1,i){let{conversation:a,previousCheckpoint:o}=extractPreviousCheckpoint(e),s=keptTailBudget(t),c=r?{...t,recentWindowSize:1}:t,planTail=e=>{let t=findLastRealUserIndex(e),n=e[t],r=n===void 0?void 0:fitCurrentMessage(n,s),i=r?.replay??n,a=selectRecentWindowSize(e,c,s);return i!==void 0&&t<e.length-a&&(a=selectRecentWindowSize(e,c,Math.max(0,s-estimateTokens([i])))),{currentIndex:t,fit:r,keep:a,replay:i}},l=planTail(a);if(!r&&l.fit===void 0){let{older:n,recent:r}=splitMessagesForCompaction(a,l.keep);if(n.length===0&&o===void 0)return keepNonToolResultMessages(r);let s=Math.max(0,(i??getInputTokenCount(e,t))-estimateTokens(e));for(let e of COMPACTION_HEURISTICS){let i=e({config:t,older:n,previousCheckpoint:o,recent:r,replay:l.replay,tokenEstimateAdjustment:s});if(i.type===`within-limit`)return i.messages}}let u=capToolResults(a),{currentIndex:d,fit:f,keep:p,replay:m}=planTail(u),h=d<0?void 0:u[d],g=h===void 0?void 0:omitFiles(h),_=g===void 0?void 0:fitCurrentMessage(g,1)?.replay,v=g!==void 0&&_!==void 0&&estimateTokens([_])<estimateTokens([g])?_:g;if(evaluateThreshold(withResumptionGuard(checkpointHead(``),v,1/0),t,`estimate`).type===`over-limit`)throw new CompactionOverLimitError(`The agent's system prompt, tools and memory leave only ~${t.threshold} tokens for the conversation, too few to compact it.`);let{older:y,recent:b}=splitMessagesForCompaction(u,p),x=createCompactionPrompt({messages:f===void 0?y:y.map((e,t)=>t===d?f.cut:e),previousCheckpoint:o,transcriptBudgetTokens:t.threshold}),S=await n({messages:[createFrameworkUserMessage(`context.compaction`,x.prompt)],system:x.system}),fits=e=>evaluateThreshold(e,t,`estimate`).type===`within-limit`,C=withResumptionGuard([...checkpointHead(S),...b],m,t.threshold);if(fits(C))return C;let w=keepNonToolResultMessages(b),T=withResumptionGuard([...checkpointHead(S),...w],m,t.threshold);if(fits(T))return T;let E=withResumptionGuard(checkpointHead(S),m,t.threshold);if(fits(E))return E;let withClippedSummary=e=>{let build=n=>withResumptionGuard(checkpointHead(n<MIN_CLIP_CHARS?sliceUtf16Safe(S,n):clipMiddleUtf16Safe(S,n)),e,t.threshold);if(!fits(build(0)))return;let n=0,r=S.length;for(;n<r;){let e=Math.ceil((n+r)/2);fits(build(e))?n=e:r=e-1}return build(n)},D=withClippedSummary(m);if(D!==void 0)return D;let O=t.threshold-estimateTokens(withResumptionGuard(checkpointHead(``),void 0,t.threshold)),k=withClippedSummary(g===void 0?void 0:fitCurrentMessage(g,O)?.replay??g);if(k===void 0)throw new CompactionOverLimitError(`The agent's system prompt, tools and memory leave only ~${t.threshold} tokens for the conversation, too few to compact it.`);return k}function capToolResults(e){return e.map(e=>{if(e.role!==`tool`||typeof e.content==`string`)return e;let t=!1,n=e.content.map(e=>{if(e.type!==`tool-result`)return e;let n=stubContentOutputFileParts(e.output),r=serializeToolResultOutput(n);return r.length<=TRANSCRIPT_PAYLOAD_LIMIT?n===e.output?e:(t=!0,{...e,output:n}):(t=!0,{...e,output:{type:`text`,value:`[Truncated by eve: tool result reduced during context compaction. Re-run the tool if you need the full output.]
1
+ import{createFrameworkUserMessage,isFrameworkUserMessage}from"#harness/messages.js";import{COMPACTION_CHECKPOINT_MARKER,COMPACTION_PROMPT_ENVELOPE,COMPACTION_RESUMPTION_MESSAGE,TRANSCRIPT_PAYLOAD_LIMIT,clipMiddleUtf16Safe,createCompactionPrompt,serializeToolResultOutput,sliceUtf16Safe,stubContentOutputFileParts}from"#harness/compaction/prompt.js";import{CompactionOverLimitError}from"#harness/compaction/over-limit-error.js";import{estimateTokens}from"#harness/token-estimate.js";const COMPACTION_PROMPT_OVERHEAD_TOKENS=estimateTokens([{content:COMPACTION_PROMPT_ENVELOPE.system,role:`system`},createFrameworkUserMessage(`context.compaction`,COMPACTION_PROMPT_ENVELOPE.prompt)]);function getInputTokenCount(e,t,n=0,r=0){let i=t.lastKnownInputTokens,a=t.lastKnownPromptMessageCount;if(i===void 0||a===void 0||!Number.isInteger(a)||a<0||a>e.length)return estimateTokens(e)+n;let o=e.slice(a);return i+(o.length===0?0:estimateTokens(o))+Math.max(0,n-r)}function withoutPromptMeasurement(e){let{lastKnownInputTokens:t,lastKnownPromptMessageCount:n,...r}=e;return r}function withPromptMeasurement(e,t){let{requestEnvelopeTokens:n,...r}=withoutPromptMeasurement(e);return t.inputTokens===void 0||t.promptMessageCount===void 0?r:{...r,lastKnownInputTokens:t.inputTokens,lastKnownPromptMessageCount:t.promptMessageCount,...t.requestEnvelopeTokens!==void 0&&{requestEnvelopeTokens:t.requestEnvelopeTokens}}}function shouldCompact(e,t,n=0,r=0){return e.length>0&&getInputTokenCount(e,t,n,r)+COMPACTION_PROMPT_OVERHEAD_TOKENS>t.threshold}const COMPACTION_HEURISTICS=[toolResultCapHeuristic];function toolResultCapHeuristic(e){let t=withResumptionGuard([...e.previousCheckpoint===void 0?[]:[createFrameworkUserMessage(`context.compaction`,COMPACTION_CHECKPOINT_MARKER),{content:e.previousCheckpoint,role:`assistant`}],...capToolResults(e.older),...e.recent],e.replay,e.config.threshold);return evaluateThreshold(t,e.config,`should-compact`,e.tokenEstimateAdjustment).type===`within-limit`?{messages:t,type:`within-limit`}:{type:`insufficient`}}function evaluateThreshold(e,t,n,r=0){let i=n===`should-compact`?COMPACTION_PROMPT_OVERHEAD_TOKENS:0,a=estimateTokens(e)+i+r;return{estimatedTokens:a,type:a<=t.threshold?`within-limit`:`over-limit`}}async function compactMessages(e,t,n,r=!1,i){let{conversation:a,previousCheckpoint:o}=extractPreviousCheckpoint(e),s=keptTailBudget(t),c=r?{...t,recentWindowSize:1}:t,planTail=e=>{let t=findLastRealUserIndex(e),n=e[t],r=n===void 0?void 0:fitCurrentMessage(n,s),i=r?.replay??n,a=selectRecentWindowSize(e,c,s);return i!==void 0&&t<e.length-a&&(a=selectRecentWindowSize(e,c,Math.max(0,s-estimateTokens([i])))),{currentIndex:t,fit:r,keep:a,replay:i}},l=planTail(a);if(!r&&l.fit===void 0){let{older:n,recent:r}=splitMessagesForCompaction(a,l.keep);if(n.length===0&&o===void 0)return keepNonToolResultMessages(r);let s=Math.max(0,(i??getInputTokenCount(e,t))-estimateTokens(e));for(let e of COMPACTION_HEURISTICS){let i=e({config:t,older:n,previousCheckpoint:o,recent:r,replay:l.replay,tokenEstimateAdjustment:s});if(i.type===`within-limit`)return i.messages}}let u=capToolResults(a),{currentIndex:d,fit:f,keep:p,replay:m}=planTail(u),h=d<0?void 0:u[d],g=h===void 0?void 0:omitFiles(h),_=g===void 0?void 0:fitCurrentMessage(g,1)?.replay,v=g!==void 0&&_!==void 0&&estimateTokens([_])<estimateTokens([g])?_:g;if(evaluateThreshold(withResumptionGuard(checkpointHead(``),v,1/0),t,`estimate`).type===`over-limit`)throw new CompactionOverLimitError(`The agent's system prompt, tools and memory leave only ~${t.threshold} tokens for the conversation, too few to compact it.`);let{older:y,recent:b}=splitMessagesForCompaction(u,p),x=createCompactionPrompt({messages:f===void 0?y:y.map((e,t)=>t===d?f.cut:e),previousCheckpoint:o,transcriptBudgetTokens:t.threshold}),S=await n({messages:[createFrameworkUserMessage(`context.compaction`,x.prompt)],system:x.system}),fits=e=>evaluateThreshold(e,t,`estimate`).type===`within-limit`,C=withResumptionGuard([...checkpointHead(S),...b],m,t.threshold);if(fits(C))return C;let w=keepNonToolResultMessages(b),T=withResumptionGuard([...checkpointHead(S),...w],m,t.threshold);if(fits(T))return T;let E=withResumptionGuard(checkpointHead(S),m,t.threshold);if(fits(E))return E;let withClippedSummary=e=>{let build=n=>withResumptionGuard(checkpointHead(n<MIN_CLIP_CHARS?sliceUtf16Safe(S,n):clipMiddleUtf16Safe(S,n)),e,t.threshold);if(!fits(build(0)))return;let n=0,r=S.length;for(;n<r;){let e=Math.ceil((n+r)/2);fits(build(e))?n=e:r=e-1}return build(n)},D=withClippedSummary(m);if(D!==void 0)return D;let O=t.threshold-estimateTokens(withResumptionGuard(checkpointHead(``),void 0,t.threshold)),k=withClippedSummary(g===void 0?void 0:fitCurrentMessage(g,O)?.replay??g);if(k===void 0)throw new CompactionOverLimitError(`The agent's system prompt, tools and memory leave only ~${t.threshold} tokens for the conversation, too few to compact it.`);return k}function capToolResults(e){return e.map(e=>{if(e.role!==`tool`||typeof e.content==`string`)return e;let t=!1,n=e.content.map(e=>{if(e.type!==`tool-result`)return e;let n=stubContentOutputFileParts(e.output),r=serializeToolResultOutput(n);return r.length<=TRANSCRIPT_PAYLOAD_LIMIT?n===e.output?e:(t=!0,{...e,output:n}):(t=!0,{...e,output:{type:`text`,value:`[Truncated by eve: tool result reduced during context compaction. Re-run the tool if you need the full output.]
2
2
 
3
- ${clipMiddleUtf16Safe(r,TRANSCRIPT_PAYLOAD_LIMIT-113)}`}})});return t?{...e,content:n}:e})}function withResumptionGuard(e,t,n){let r=e.at(-1)?.role,i=t!==void 0&&e.some(e=>e.role===`user`&&e.content===t.content);return r!==void 0&&r!==`assistant`?r===`tool`&&t!==void 0&&!i&&estimateTokens([t])<=n?[...e,t]:e:[...e,t!==void 0&&!i?t:createFrameworkUserMessage(`execution.continuation`,COMPACTION_RESUMPTION_MESSAGE)]}function fitCurrentMessage(e,t){let n=messageText(e);if(n===void 0||t<=0||estimateTokens([e])<=t)return;let note=e=>`\n\n[eve: ${e} characters from the middle of this message were cut during context compaction to fit the context window.]\n\n`,split=(t,n)=>splitMessageText(e,t,n,note(n-t)),r=Math.floor(t*4);for(;r>0;){r=Math.min(r,n.length);let e=Math.floor(r*.2),i=sliceUtf16Safe(n,e).length,a=n.length-(r-e),o=n.charCodeAt(a);if(o>=56320&&o<=57343&&(a+=1),i<a){let e=split(i,a);if(estimateTokens([e.replay])<=t)return e}r=Math.floor(r*.9)-1}return split(0,n.length)}const MIN_CLIP_CHARS=40;function checkpointHead(e){return[createFrameworkUserMessage(`context.compaction`,COMPACTION_CHECKPOINT_MARKER),{content:e,role:`assistant`}]}function omitFiles(e){if(typeof e.content==`string`)return e;let t=[],n=!1;for(let r of e.content)r.type===`text`?t.push(r):n||(n=!0,t.push({type:`text`,text:`[eve: a file in this message was omitted during context compaction: it is too large for the context window.]`}));return n?{...e,content:t}:e}function messageText(e){if(typeof e.content==`string`)return e.content;let t=e.content.flatMap(e=>e.type===`text`?[e.text]:[]);return t.length===0?void 0:t.join(``)}function splitMessageText(e,t,n,r){if(typeof e.content==`string`)return{cut:{...e,content:e.content.slice(t,n)},replay:{...e,content:`${e.content.slice(0,t)}${r}${e.content.slice(n)}`}};let i=0,a=!1,o=[],s=[];for(let c of e.content){if(c.type!==`text`){o.push(c),s.push(c);continue}let e=Math.max(0,Math.min(c.text.length,t-i)),l=Math.max(e,Math.min(c.text.length,n-i));i+=c.text.length,l>e&&o.push({...c,text:c.text.slice(e,l)});let u=c.text.slice(0,e),d=c.text.slice(l),f=l>e&&!a;f&&(a=!0);let p=`${u}${f?r:``}${d}`;p.length>0&&s.push({...c,text:p})}return a||s.push({type:`text`,text:r}),{cut:{...e,content:o},replay:{...e,content:s}}}function findLastRealUserIndex(e){for(let t=e.length-1;t>=0;--t){let n=e[t];if(n?.role===`user`&&!isFrameworkUserMessage(n))return t}return-1}function extractPreviousCheckpoint(e){let t=e[0],n=e[1];return t?.role!==`user`||t.content!==COMPACTION_CHECKPOINT_MARKER||n?.role!==`assistant`?{conversation:[...e],previousCheckpoint:void 0}:{conversation:e.slice(2),previousCheckpoint:assistantMessageText(n)}}function keepNonToolResultMessages(e){let t=[];for(let n of e)if(n.role!==`tool`){if(n.role===`assistant`){let e=assistantMessageText(n);e.length>0&&t.push({content:e,role:`assistant`});continue}t.push(n)}return t}function assistantMessageText(e){return typeof e.content==`string`?e.content.trim():e.content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim()}function keptTailBudget(e){return Math.min(2e4,Math.floor(e.threshold/2))}function selectRecentWindowSize(e,t,n){let r=Math.min(t.recentWindowSize,Math.max(e.length-1,0)),i=0,a=0;for(let t=e.length-1;t>=0&&i<r;--t){let r=e[t];if(r===void 0)continue;let o=estimateTokens([r]);if(a+o>n)break;a+=o,i+=1}return i}function splitMessagesForCompaction(e,t){if(t<=0)return{older:[...e],recent:[]};let n=e.length-t;for(;n<e.length&&e[n]?.role===`tool`;)n+=1;return{older:e.slice(0,n),recent:e.slice(n)}}export{compactMessages,getInputTokenCount,shouldCompact};
3
+ ${clipMiddleUtf16Safe(r,TRANSCRIPT_PAYLOAD_LIMIT-113)}`}})});return t?{...e,content:n}:e})}function withResumptionGuard(e,t,n){let r=e.at(-1)?.role,i=t!==void 0&&e.some(e=>e.role===`user`&&e.content===t.content);return r!==void 0&&r!==`assistant`?r===`tool`&&t!==void 0&&!i&&estimateTokens([t])<=n?[...e,t]:e:[...e,t!==void 0&&!i?t:createFrameworkUserMessage(`execution.continuation`,COMPACTION_RESUMPTION_MESSAGE)]}function fitCurrentMessage(e,t){let n=messageText(e);if(n===void 0||t<=0||estimateTokens([e])<=t)return;let note=e=>`\n\n[eve: ${e} characters from the middle of this message were cut during context compaction to fit the context window.]\n\n`,split=(t,n)=>splitMessageText(e,t,n,note(n-t)),r=Math.floor(t*4);for(;r>0;){r=Math.min(r,n.length);let e=Math.floor(r*.2),i=sliceUtf16Safe(n,e).length,a=n.length-(r-e),o=n.charCodeAt(a);if(o>=56320&&o<=57343&&(a+=1),i<a){let e=split(i,a);if(estimateTokens([e.replay])<=t)return e}r=Math.floor(r*.9)-1}return split(0,n.length)}const MIN_CLIP_CHARS=40;function checkpointHead(e){return[createFrameworkUserMessage(`context.compaction`,COMPACTION_CHECKPOINT_MARKER),{content:e,role:`assistant`}]}function omitFiles(e){if(typeof e.content==`string`)return e;let t=[],n=!1;for(let r of e.content)r.type===`text`?t.push(r):n||(n=!0,t.push({type:`text`,text:`[eve: a file in this message was omitted during context compaction: it is too large for the context window.]`}));return n?{...e,content:t}:e}function messageText(e){if(typeof e.content==`string`)return e.content;let t=e.content.flatMap(e=>e.type===`text`?[e.text]:[]);return t.length===0?void 0:t.join(``)}function splitMessageText(e,t,n,r){if(typeof e.content==`string`)return{cut:{...e,content:e.content.slice(t,n)},replay:{...e,content:`${e.content.slice(0,t)}${r}${e.content.slice(n)}`}};let i=0,a=!1,o=[],s=[];for(let c of e.content){if(c.type!==`text`){o.push(c),s.push(c);continue}let e=Math.max(0,Math.min(c.text.length,t-i)),l=Math.max(e,Math.min(c.text.length,n-i));i+=c.text.length,l>e&&o.push({...c,text:c.text.slice(e,l)});let u=c.text.slice(0,e),d=c.text.slice(l),f=l>e&&!a;f&&(a=!0);let p=`${u}${f?r:``}${d}`;p.length>0&&s.push({...c,text:p})}return a||s.push({type:`text`,text:r}),{cut:{...e,content:o},replay:{...e,content:s}}}function findLastRealUserIndex(e){for(let t=e.length-1;t>=0;--t){let n=e[t];if(n?.role===`user`&&!isFrameworkUserMessage(n))return t}return-1}function extractPreviousCheckpoint(e){let t=e[0],n=e[1];return t?.role!==`user`||t.content!==COMPACTION_CHECKPOINT_MARKER||n?.role!==`assistant`?{conversation:[...e],previousCheckpoint:void 0}:{conversation:e.slice(2),previousCheckpoint:assistantMessageText(n)}}function keepNonToolResultMessages(e){let t=[];for(let n of e)if(n.role!==`tool`){if(n.role===`assistant`){let e=assistantMessageText(n);e.length>0&&t.push({content:e,role:`assistant`});continue}t.push(n)}return t}function assistantMessageText(e){return typeof e.content==`string`?e.content.trim():e.content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim()}function keptTailBudget(e){return Math.min(2e4,Math.floor(e.threshold/2))}function selectRecentWindowSize(e,t,n){let r=Math.min(t.recentWindowSize,Math.max(e.length-1,0)),i=0,a=0;for(let t=e.length-1;t>=0&&i<r;--t){let r=e[t];if(r===void 0)continue;let o=estimateTokens([r]);if(a+o>n)break;a+=o,i+=1}return i}function splitMessagesForCompaction(e,t){if(t<=0)return{older:[...e],recent:[]};let n=e.length-t;for(;n<e.length&&e[n]?.role===`tool`;)n+=1;return{older:e.slice(0,n),recent:e.slice(n)}}export{compactMessages,getInputTokenCount,shouldCompact,withPromptMeasurement,withoutPromptMeasurement};
@@ -1,11 +1,12 @@
1
1
  import { type LanguageModel, type ModelMessage, type TelemetryOptions } from "ai";
2
2
  import { type HarnessSession, type StepResult, type ToolLoopHarnessConfig } from "#harness/types.js";
3
3
  import { type HarnessModelMessage } from "#harness/messages.js";
4
- import type { HistoryViewProjector } from "#shared/history-view.js";
5
4
  import type { Publish } from "#harness/session-machine/commit.js";
6
5
  import type { SessionAuthContext } from "#channel/types.js";
7
6
  import type { Step } from "#harness/step/context.js";
8
- import { type TurnPosition } from "#harness/session-machine/view.js";
7
+ import type { TurnPosition } from "#harness/session-machine/view.js";
8
+ import type { Cause } from "#protocol/session-events/envelope.js";
9
+ import type { SessionView } from "#protocol/session-projection/tables.js";
9
10
  /**
10
11
  * Throws when the fixed part of the request (instructions, tools, memory)
11
12
  * leaves no room for any history: compacting the history cannot help then.
@@ -20,7 +21,10 @@ export declare function assertFixedPartFits(input: {
20
21
  * park, continue the tool loop, or terminate.
21
22
  */
22
23
  /** What a step needs from the machine after its model call. */
23
- /** `session.compact()`: summarizes the history now, then the session waits. */
24
+ /**
25
+ * `session.compact()`: summarizes the history now, then the session waits. The control is a
26
+ * delivery: it's admitted with the change, and applied once the change completes.
27
+ */
24
28
  export declare function compactHistory(step: Step): Promise<StepResult>;
25
29
  export declare function replaceSessionHistory(session: HarnessSession, history: HarnessModelMessage[]): HarnessSession;
26
30
  /**
@@ -32,17 +36,31 @@ export declare function replaceSessionHistory(session: HarnessSession, history:
32
36
  * the compacted messages flow through the same `messages` variable the
33
37
  * harness uses to rebuild `session.history` after the step.
34
38
  */
35
- export declare function maybeCompact(input: {
39
+ export declare function maybeCompact(input: Parameters<typeof compactOnce>[0]): ReturnType<typeof compactOnce>;
40
+ declare function compactOnce(input: {
36
41
  readonly abortSignal?: AbortSignal;
37
42
  readonly auth: SessionAuthContext | null;
38
43
  /** A manual compaction runs between turns, so no turn's usage reports its summary calls. */
39
44
  readonly betweenTurns?: boolean;
45
+ /**
46
+ * The change a compaction makes, and the run that writes its summary. `announced` when the
47
+ * caller already published the change's start and the run's request and start.
48
+ */
49
+ readonly change: {
50
+ readonly changeId: string;
51
+ readonly summaryRunId: string;
52
+ readonly announced?: boolean;
53
+ readonly turnId?: string;
54
+ readonly cause?: Cause;
55
+ };
56
+ /** The step's context, where a memory capture before the compaction reports failing. */
57
+ readonly ctx?: object;
40
58
  readonly emissionState: TurnPosition;
41
59
  readonly force?: boolean;
42
- readonly historyProjector?: HistoryViewProjector;
43
60
  readonly messages: HarnessModelMessage[];
44
61
  readonly model: LanguageModel;
45
62
  readonly publish: Publish;
63
+ readonly view: () => SessionView;
46
64
  /** Model-visible prompt used only to decide whether durable history needs compaction. */
47
65
  readonly promptMessages?: readonly HarnessModelMessage[];
48
66
  readonly requestEnvelopeTokens?: number;
@@ -50,6 +68,7 @@ export declare function maybeCompact(input: {
50
68
  readonly runtimeIdentity?: ToolLoopHarnessConfig["runtimeIdentity"];
51
69
  readonly session: HarnessSession;
52
70
  readonly telemetry?: TelemetryOptions;
71
+ readonly prepareTelemetry?: (runId: string) => TelemetryOptions | undefined;
53
72
  readonly traceContextHeaders?: () => Record<string, string> | undefined;
54
73
  }): Promise<{
55
74
  readonly compacted: boolean;
@@ -66,3 +85,4 @@ export declare function maybeCompact(input: {
66
85
  * step.
67
86
  */
68
87
  export declare function compactedTurnInput<Message extends ModelMessage>(messages: readonly Message[]): Message | undefined;
88
+ export {};
@@ -1 +1 @@
1
- import{streamText}from"ai";import{createLogger,logError}from"#internal/logging.js";import{contextStorage}from"#context/container.js";import{addStepUsage}from"#harness/session-machine/current.js";import{AuthKey,HistoryStateKey}from"#context/keys.js";import{createCompactionCompletedEvent,createCompactionRequestedEvent}from"#protocol/message.js";import{isUserModelMessage,validateHarnessModelMessages}from"#harness/messages.js";import{drainMemoryCommit,prepareMemoryCompaction}from"#context/memory-lifecycle.js";import{canonicalizeMemoryRecords,shouldCanonicalizeMemory}from"#shared/memory-state.js";import{activeTurnId}from"#harness/session-machine/view.js";import{addUsageOutsideTurns}from"#harness/turn-tag-state.js";import{idle}from"#harness/session-machine/transitions.js";import{stepStartedForResolvers}from"#harness/session-machine/resolver-events.js";import{CompactionOverLimitError}from"#harness/compaction/over-limit-error.js";import{estimateTokens}from"#harness/token-estimate.js";import{requireSessionModelReference}from"#harness/types.js";import{buildGatewayAttributionHeaders,resolveEffectiveRuntimeModel,withGatewayTraceContext}from"#harness/model-call/model.js";import{compactMessages,getInputTokenCount,shouldCompact}from"#harness/compaction/engine.js";import{normalizeModelStreamError}from"#harness/model-call/errors.js";import{runModelCallWithRetries}from"#harness/model-call/retry.js";import{extractGatewayCostUsd,extractTokenUsageDelta,gatewayModelId}from"#harness/model-call/usage.js";import{resolveModelProfile}from"#harness/model-profile.js";import{getRequestEnvelopeTokens}from"#harness/request-envelope.js";import{resolveCallProviderOptions}from"#harness/provider-safety.js";const log=createLogger(`harness.tool-loop`);function assertFixedPartFits(e){let t=e.requestEnvelopeTokens+e.protectedTokens;if(t>=e.threshold)throw new CompactionOverLimitError(`The agent's system prompt, tools, memory and context take ~${Math.round(t)} tokens, over this model's ~${e.threshold}-token compaction limit. Shorten the instructions, remove tools or trim memory.`)}async function compactHistory(e){let{config:t}=e;if(e.session.history.length>0)try{if(e.ctx!==void 0&&t.dispatchDynamicModelEvent!==void 0){let n=e.position();await t.dispatchDynamicModelEvent({ctx:e.ctx,event:stepStartedForResolvers({modelId:e.session.agent.modelReference?.id??`dynamic`,sequence:n.sequence,stepIndex:n.stepIndex,turnId:activeTurnId(n)}),messages:validateHarnessModelMessages(e.projectHistory(e.session.history))})}let n=await resolveEffectiveRuntimeModel({config:t,ctx:e.ctx,session:e.session});e.session=n.session;let r=e.position(),i=await maybeCompact({abortSignal:t.abortSignal,auth:e.ctx?.get(AuthKey)??null,betweenTurns:!0,emissionState:{...r,turnId:activeTurnId(r)},force:!0,historyProjector:t.historyProjector,messages:[...e.session.history],model:n.model,publish:e.publish,requestEnvelopeTokens:getRequestEnvelopeTokens(e.session),resolveModel:t.resolveModel,runtimeIdentity:t.runtimeIdentity,session:e.session,telemetry:e.instrumentation?.telemetry(),traceContextHeaders:e.instrumentation?.gatewayTraceContextHeaders});if(e.session=i.session,i.failure!==void 0)throw i.failure.error}catch(t){logError(log,`manual session compaction failed`,t,{sessionId:e.session.sessionId})}return await e.apply(idle(e.view())),{next:null,session:e.session}}function replaceSessionHistory(e,t){return contextStorage.getStore()?.delete(HistoryStateKey),{...e,history:t,compaction:{recentWindowSize:e.compaction.recentWindowSize,threshold:e.compaction.threshold,thresholdPercent:e.compaction.thresholdPercent}}}async function maybeCompact(e){let{emissionState:t,publish:n}=e,r=e.messages,i=e.session,a=e.promptMessages??r,o=validateHarnessModelMessages(e.historyProjector?.({messages:a,state:i.state})??a),s=e.force===!0||shouldCompact(o,i.compaction,e.requestEnvelopeTokens,getRequestEnvelopeTokens(i)),c=shouldCanonicalizeMemory(r);if(!s&&!c)return{compacted:!1,messages:r,session:i};let l=requireSessionModelReference(i),u=i.agent.compactionModelReference??l,d=u===l?e.model:await e.resolveModel(u),f=resolveModelProfile(d),p=resolveCallProviderOptions({auth:e.auth,profile:f,providerOptions:u.providerOptions,session:i}),m={abortSignal:e.abortSignal,headers:buildGatewayAttributionHeaders(f,e.runtimeIdentity),model:withGatewayTraceContext(d,f,e.traceContextHeaders),providerOptions:p,telemetry:e.telemetry&&{...e.telemetry,functionId:`eve.compaction`}},h=[],summarize=async n=>{let r=await runModelCallWithRetries(()=>streamCompactionSummary({...m,...n}),{sessionId:i.sessionId,turnId:t.turnId},e.abortSignal);if(h.push(r.usage),r.text.trim().length===0)throw Error(`The compaction model returned an empty summary. Finish reason: ${r.finishReason}.`);return r.text};{let a=contextStorage.getStore();a!==void 0&&prepareMemoryCompaction(a,{history:r,state:i.state}),await n(createCompactionRequestedEvent({modelId:gatewayModelId(d)??`unknown`,sequence:t.sequence,sessionId:i.sessionId,stepIndex:t.stepIndex,turnId:t.turnId,usageInputTokens:getInputTokenCount(o,i.compaction,e.requestEnvelopeTokens,getRequestEnvelopeTokens(i))}),o)}let g=canonicalizeMemoryRecords(r),_=validateHarnessModelMessages(e.historyProjector?.({messages:g.ordinary,state:i.state})??g.ordinary),v=e.requestEnvelopeTokens??0,y=Math.max(0,estimateTokens(o)-estimateTokens(_)),b={...i.compaction,threshold:Math.max(1,i.compaction.threshold-v-y),lastKnownInputTokens:i.compaction.lastKnownInputTokens===void 0?void 0:Math.max(0,i.compaction.lastKnownInputTokens-Math.min(getRequestEnvelopeTokens(i)??0,v))},x=[..._],S;try{s&&(assertFixedPartFits({protectedTokens:y,requestEnvelopeTokens:v,threshold:i.compaction.threshold}),x=await compactMessages([..._],b,summarize,e.force===!0,e.requestEnvelopeTokens===void 0?void 0:Math.max(0,getInputTokenCount(o,i.compaction,v,getRequestEnvelopeTokens(i))-v-y)))}catch(e){S={error:e}}for(let n of h)i=e.betweenTurns===!0?addUsageOutsideTurns(i,n):addStepUsage(i,t.turnId,n);if(S!==void 0)return{compacted:!1,failure:S,messages:e.messages,session:i};r=validateHarnessModelMessages([...g.memory,...x]);{let a=contextStorage.getStore();if(a!==void 0&&prepareMemoryCompaction(a,{history:r,state:i.state}),await n(createCompactionCompletedEvent({modelId:gatewayModelId(d)??`unknown`,sequence:t.sequence,sessionId:i.sessionId,stepIndex:t.stepIndex,turnId:t.turnId}),e.historyProjector?.({messages:r,state:i.state})??r),a!==void 0){let t=drainMemoryCommit(a);t!==void 0&&(r=validateHarnessModelMessages(placeRecalledMemory(r,t.recalledMessages,e.betweenTurns===!0)),i={...i,state:t.state})}}return{compacted:!0,messages:r,session:replaceSessionHistory(i,r)}}function compactedTurnInput(e){return e.findLast(e=>isUserModelMessage(e)&&e.kind===`user`)}function placeRecalledMemory(e,t,n){let r=n?void 0:compactedTurnInput(e);if(r===void 0)return[...e,...t];let i=e.indexOf(r);return[...e.slice(0,i),...t,...e.slice(i)]}async function streamCompactionSummary(e){let t=streamText({...e,onError:()=>{}});for await(let e of t.fullStream)if(e.type===`error`)throw normalizeModelStreamError(e.error);let[n,r,i,a]=await Promise.all([t.text,t.finishReason,t.usage,t.providerMetadata]);return{finishReason:r,text:n,usage:extractTokenUsageDelta({costUsd:extractGatewayCostUsd(a),usage:i})}}export{assertFixedPartFits,compactHistory,compactedTurnInput,maybeCompact,replaceSessionHistory};
1
+ import{openWork}from"#protocol/session-projection/selectors.js";import{streamText}from"ai";import{createLogger,logError}from"#internal/logging.js";import{contextStorage}from"#context/container.js";import{AuthKey,HistoryStateKey}from"#context/keys.js";import{toErrorMessage}from"#shared/errors.js";import{takeCompactionCaptureFailure}from"#reactions/kinds/memory.js";import{addTokenUsage}from"#shared/token-usage-math.js";import{isUserModelMessage,validateHarnessModelMessages}from"#harness/messages.js";import{controlDeliveryFor}from"#harness/session-machine/transitions.js";import{contextStarted,controlAdmitted,deliveryApplied,fact,runRequested,runSettledFacts,runStarted,usageOf}from"#harness/facts.js";import{NO_USAGE,markUsageReported}from"#harness/session-usage.js";import{nextChangeId,nextRunId}from"#protocol/session-projection.js";import{CompactionOverLimitError}from"#harness/compaction/over-limit-error.js";import{estimateTokens}from"#harness/token-estimate.js";import{compactMessages,getInputTokenCount,shouldCompact,withoutPromptMeasurement}from"#harness/compaction/engine.js";import{requireSessionModelReference}from"#harness/types.js";import{buildGatewayAttributionHeaders,resolveEffectiveRuntimeModel,withGatewayTraceContext}from"#harness/model-call/model.js";import{normalizeModelStreamError}from"#harness/model-call/errors.js";import{runModelCallWithRetries}from"#harness/model-call/retry.js";import{extractGatewayCostUsd,extractTokenUsageDelta,gatewayModelId}from"#harness/model-call/usage.js";import{resolveModelProfile}from"#harness/model-profile.js";import{resolveCallProviderOptions}from"#harness/provider-safety.js";const log=createLogger(`harness.tool-loop`);function assertFixedPartFits(e){let t=e.requestEnvelopeTokens+e.protectedTokens;if(t>=e.threshold)throw new CompactionOverLimitError(`The agent's system prompt, tools, memory and context take ~${Math.round(t)} tokens, over this model's ~${e.threshold}-token compaction limit. Shorten the instructions, remove tools or trim memory.`)}async function compactHistory(e){let{config:t}=e,{projection:n}=e.view(),r=controlDeliveryFor(e.view(),t.controlDelivery),{deliveryId:i}=r,a=nextChangeId(n);if(e.session.history.length===0)return await e.apply([controlAdmitted(r,`compact`),deliveryApplied(i)]),{next:null,session:e.session};let o=validateHarnessModelMessages(e.session.history);await e.apply([controlAdmitted(r,`compact`),contextStarted({cause:{deliveryId:i},changeId:a,kind:`compaction`})],o);let s=nextRunId(e.view().projection),c=`applied`;try{await e.apply([runRequested({changeId:a},s)],o);let n=await resolveEffectiveRuntimeModel({config:t,ctx:e.ctx,session:e.session});e.session=n.session;let r=e.session.agent.compactionModelReference??requireSessionModelReference(e.session);await e.publish(runStarted({attempt:0,modelId:r.id,runId:s}));let i=await maybeCompact({abortSignal:t.abortSignal,auth:e.ctx?.get(AuthKey)??null,betweenTurns:!0,change:{announced:!0,changeId:a,summaryRunId:s},ctx:e.ctx,emissionState:e.position(),force:!0,messages:[...e.session.history],model:n.model,publish:e.publish,view:()=>e.view().projection.view,requestEnvelopeTokens:e.session.compaction.requestEnvelopeTokens,resolveModel:t.resolveModel,runtimeIdentity:t.runtimeIdentity,session:e.session,prepareTelemetry:t=>e.instrumentation?.prepareAttempt({runId:t,attempt:0}).telemetry,traceContextHeaders:e.instrumentation?.gatewayTraceContextHeaders});if(e.session=i.session,i.failure!==void 0)throw i.failure.error}catch(t){c=`failed`;let n=summaryFailed(e.view().projection.view,{changeId:a,error:t});n.length>0&&await e.publish(n),logError(log,`manual session compaction failed`,t,{sessionId:e.session.sessionId})}let l=c===`failed`?`compaction-failed`:void 0;return await e.apply([fact(`delivery.settled`,{deliveryId:i,outcome:c,reason:l})]),{next:null,session:e.session}}function summaryUsageOf(e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return t.reduce((e,t)=>addTokenUsage(e,usageOf(t)),NO_USAGE)}function summaryFailed(e,t){if(e.changes[t.changeId]?.status!==`running`)return[];let n={code:`COMPACTION_FAILED`,message:toErrorMessage(t.error)},r=openWork(e,{changeId:t.changeId}).runs,{spent:i}=t;return[...r.flatMap(({runId:e})=>runSettledFacts({error:n,outcome:`failed`,runId:e,...i?.runId===e&&{usage:i.usage}})),{data:{changeId:t.changeId,error:n,kind:e.changes[t.changeId]?.kind??`compaction`,outcome:`failed`},type:`context.settled`}]}function replaceSessionHistory(e,t){return contextStorage.getStore()?.delete(HistoryStateKey),{...e,history:t,compaction:withoutPromptMeasurement(e.compaction)}}async function maybeCompact(e){try{return await compactOnce(e)}catch(t){let n=summaryFailed(e.view(),{changeId:e.change.changeId,error:t});throw n.length>0&&await e.publish(n),t}}async function compactOnce(e){let{emissionState:t,publish:n}=e,r=e.messages,i=e.session,a=e.promptMessages??r,o=validateHarnessModelMessages(a),s=e.force===!0||shouldCompact(o,i.compaction,e.requestEnvelopeTokens,i.compaction.requestEnvelopeTokens);if(!s)return{compacted:!1,messages:r,session:i};let c=requireSessionModelReference(i),l=i.agent.compactionModelReference??c,u=l===c?e.model:await e.resolveModel(l),d=resolveModelProfile(u),f=resolveCallProviderOptions({auth:e.auth,profile:d,providerOptions:l.providerOptions,session:i}),p={abortSignal:e.abortSignal,headers:buildGatewayAttributionHeaders(d,e.runtimeIdentity),model:withGatewayTraceContext(u,d,e.traceContextHeaders),providerOptions:f,telemetry:e.telemetry&&{...e.telemetry,functionId:`eve.compaction`}},m,h=[],{change:g}=e,_=g.announced===!0,summarize=async r=>{_||(_=!0,await n([runRequested({changeId:g.changeId},g.summaryRunId),runStarted({attempt:0,modelId:gatewayModelId(u)??`unknown`,runId:g.summaryRunId})]));let a=await runModelCallWithRetries(()=>streamCompactionSummary({...p,telemetry:m??p.telemetry,...r}),{sessionId:i.sessionId,turnId:t.turnId},e.abortSignal);if(h.push(a.usage),a.text.trim().length===0)throw Error(`The compaction model returned an empty summary. Finish reason: ${a.finishReason}.`);return a.text};if(g.announced!==!0){let t=getInputTokenCount(o,i.compaction,e.requestEnvelopeTokens,i.compaction.requestEnvelopeTokens);await n(contextStarted({cause:g.cause,changeId:g.changeId,kind:`compaction`,trigger:e.force===!0||t===null?void 0:{inputTokens:t},turnId:g.turnId}),o)}s&&(m=e.prepareTelemetry?.(g.summaryRunId));let v=validateHarnessModelMessages(r),y=e.requestEnvelopeTokens??0,b=Math.max(0,estimateTokens(o)-estimateTokens(v)),x={...i.compaction,threshold:Math.max(1,i.compaction.threshold-y-b),lastKnownInputTokens:i.compaction.lastKnownInputTokens===void 0?void 0:Math.max(0,i.compaction.lastKnownInputTokens-Math.min(i.compaction.requestEnvelopeTokens??0,y))},S=[...v],C=takeCompactionCaptureFailure(e.ctx),w=C===void 0?void 0:{error:C};try{s&&w===void 0&&(assertFixedPartFits({protectedTokens:b,requestEnvelopeTokens:y,threshold:i.compaction.threshold}),S=await compactMessages([...v],x,summarize,e.force===!0,e.requestEnvelopeTokens===void 0?void 0:Math.max(0,getInputTokenCount(o,i.compaction,y,i.compaction.requestEnvelopeTokens)-y-b)))}catch(e){w={error:e}}let T=s?summaryUsageOf(h):void 0;T!==void 0&&e.betweenTurns===!0&&(i=markUsageReported(i,T));let E=g.summaryRunId;if(w!==void 0)return await n(summaryFailed(e.view(),{changeId:g.changeId,error:w.error,...T!==void 0&&{spent:{runId:E,usage:T}}})),{compacted:!1,failure:w,messages:e.messages,session:i};r=validateHarnessModelMessages(S);{let e=h.length>0?runSettledFacts({finishReason:`stop`,outcome:`completed`,runId:E,usage:T}):_?runSettledFacts({outcome:`abandoned`,runId:E}):[];e.push({data:{changeId:g.changeId,kind:`compaction`,outcome:`completed`},type:`context.settled`}),await n(e,r)}return{compacted:!0,messages:r,session:replaceSessionHistory(i,r)}}function compactedTurnInput(e){return e.findLast(e=>isUserModelMessage(e)&&e.kind===`user`)}async function streamCompactionSummary(e){let t=streamText({...e,onError:()=>{}});for await(let e of t.fullStream)if(e.type===`error`)throw normalizeModelStreamError(e.error);let[n,r,i,a]=await Promise.all([t.text,t.finishReason,t.usage,t.providerMetadata]);return{finishReason:r,text:n,usage:extractTokenUsageDelta({costUsd:extractGatewayCostUsd(a),usage:i})}}export{assertFixedPartFits,compactHistory,compactedTurnInput,maybeCompact,replaceSessionHistory};
@@ -1 +1 @@
1
- import{skillTarget}from"#shared/action-request-name.js";import{SKILL_ENTRY_NAME,SKILL_TOOL_NAME}from"#protocol/catalog-tools.js";import{parseJsonObject}from"#shared/json.js";import{findBlockingWorkflowToolRun,removeBlockingWorkflowToolRuns}from"#harness/workflow-tool-runs.js";import{readHitlState}from"#harness/hitl/index.js";import{startsTasks}from"#execution/tasks/tool-entry-point.js";import{commitCallEntry,isTaskTool}from"#execution/tasks/model-step.js";import{normalizeToolModelOutput}from"#harness/tool-model-output.js";import{observeToolOutput}from"#tool-stubs/execute.js";import{markRuntimeWorkflowToolAction}from"#shared/action-types.js";function assertUniqueCoordinationCallIds(e){let t=new Set;for(let n of e){if(t.has(n.callId))throw Error(`Coordination batch contains duplicate callId "${n.callId}".`);t.add(n.callId)}}function forgetFinishedRuns(e,t,n){let r=e,i=[];for(let e of t){if(e.kind!==`tool-result`)continue;let t=findBlockingWorkflowToolRun(r.state,e.callId,n);if(t!==void 0){for(let[e,n]of readHitlState(r.state).relays)n.runId===t.address.runId&&i.push(e);r=removeBlockingWorkflowToolRuns(r,n,t.callId)}}return{requestIds:i,session:r}}async function runtimeResultCalls(e,t){let n=[];for(let r of e){switch(r.kind){case`load-skill-result`:n.push({part:toolResult(r,SKILL_TOOL_NAME,toToolResultOutput(r)),result:r});continue;case`subagent-result`:n.push({part:toolResult(r,r.subagentName,toToolResultOutput(r)),result:r});continue;case`tool-result`:n.push({part:toolResult(r,r.toolName,await projectToolResultOutput(r,t?.get(r.toolName))),result:r});continue}throw Error(`Unsupported runtime action result kind "${String(r)}".`)}return n}function toolResult(e,t,n){return{output:n,toolCallId:e.callId,toolName:t,type:`tool-result`}}function collectWorkflowCalls(e){let{session:t}=e,n=[];for(let r of e.toolCalls){let i=e.tools.get(r.toolName);if(isTaskTool(i))continue;let a=commitCallEntry(t,{callId:r.toolCallId,definition:i,input:resolveToolCallInputObject(r.input,{callId:r.toolCallId,toolName:r.toolName}),toolName:r.toolName,turnId:e.turnId});t=a.session,n.push(createCoordinationRequestFromToolCall({entry:a.entry,input:a.input,toolCall:r,tools:e.tools}))}return{session:t,workflowRequests:n}}function createRuntimeActionRequestFromToolCall(e){let t=e.tools.get(e.toolCall.toolName),n=resolveToolCallInputObject(e.toolCall.input,{callId:e.toolCall.toolCallId,toolName:e.toolCall.toolName}),r=e.toolCall.toolName===SKILL_ENTRY_NAME?skillTarget(n):void 0;if(r!==void 0)return{callId:e.toolCall.toolCallId,input:n,kind:`load-skill`,name:r};let i=t?.behavior?.handling;if(t!==void 0&&i?.kind===`dispatch`&&i.target.kind!==`workflow-tool-call`){let r=i.target,a={callId:e.toolCall.toolCallId,description:t.description,input:n,name:e.toolCall.toolName,nodeId:r.nodeId};return r.kind===`remote-agent-call`?{...a,kind:`remote-agent-call`,remoteAgentName:r.remoteAgentName}:{...a,kind:`subagent-call`,subagentName:r.subagentName}}let a={callId:e.toolCall.toolCallId,input:n,kind:`tool-call`,toolName:e.toolCall.toolName};return t?.workflowId===void 0?a:markRuntimeWorkflowToolAction(a)}function createCoordinationRequestFromToolCall(e){let t=e.tools.get(e.toolCall.toolName);if(t?.workflowId===void 0)throw Error(`Workflow tool "${e.toolCall.toolName}" has no workflow.`);return{callId:e.toolCall.toolCallId,entry:e.entry,executeInput:t.executeInput?.(e.input),input:e.input,kind:`workflow-task`,toolName:e.toolCall.toolName,workflowId:t.workflowId}}function resolveToolCallInputObject(e,t){if(e==null||typeof e==`string`&&e.trim()===``)return{};try{return parseJsonObject(typeof e==`string`?parseJsonStringInput(e):e)}catch(e){let n=e instanceof Error?e.message:String(e);throw TypeError(`Failed to parse tool-call arguments for "${t.toolName}" (${t.callId}): ${n}`,{cause:e})}}function parseJsonStringInput(e){return JSON.parse(e)}async function projectToolResultOutput(e,t){return e.isError===!0||t?.toModelOutput===void 0||startsTasks(t)?toToolResultOutput(e):await observeToolOutput(e.toolName,[{callId:e.callId}],async()=>normalizeToolModelOutput({output:await t.toModelOutput(e.output),toolCallId:e.callId,toolName:e.toolName}))}function toToolResultOutput(e){return typeof e.output==`string`?e.isError===!0?{type:`error-text`,value:e.output}:{type:`text`,value:e.output}:e.isError===!0?{type:`error-json`,value:toMutableJsonValue(e.output)}:{type:`json`,value:toMutableJsonValue(e.output)}}function toMutableJsonValue(e){if(e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e;if(Array.isArray(e))return e.map(e=>toMutableJsonValue(e));let t={};for(let[n,r]of Object.entries(e))t[n]=toMutableJsonValue(r);return t}export{assertUniqueCoordinationCallIds,collectWorkflowCalls,createCoordinationRequestFromToolCall,createRuntimeActionRequestFromToolCall,forgetFinishedRuns,resolveToolCallInputObject,runtimeResultCalls};
1
+ import{parseJsonObject}from"#shared/json.js";import{SKILL_ENTRY_NAME,SKILL_TOOL_NAME}from"#protocol/catalog-tools.js";import{readHitlState}from"#harness/hitl/index.js";import{startsTasks}from"#execution/tasks/tool-entry-point.js";import{skillTarget}from"#shared/action-request-name.js";import{commitCallEntry,isTaskTool}from"#execution/tasks/model-step.js";import{normalizeToolModelOutput}from"#harness/tool-model-output.js";import{findBlockingWorkflowToolRun,removeBlockingWorkflowToolRuns}from"#harness/workflow-tool-runs.js";import{observeToolOutput}from"#tool-stubs/execute.js";import{markRuntimeWorkflowToolAction}from"#shared/action-types.js";function assertUniqueCoordinationCallIds(e){let t=new Set;for(let n of e){if(t.has(n.callId))throw Error(`Coordination batch contains duplicate callId "${n.callId}".`);t.add(n.callId)}}function forgetFinishedRuns(e,t,n){let r=e,i=[];for(let e of t){if(e.kind!==`tool-result`)continue;let t=findBlockingWorkflowToolRun(r.state,e.callId,n);if(t!==void 0){for(let[e,n]of readHitlState(r.state).relays)n.runId===t.address.runId&&i.push(e);r=removeBlockingWorkflowToolRuns(r,n,t.callId)}}return{requestIds:i,session:r}}async function runtimeResultCalls(e,t){let n=[];for(let r of e){switch(r.kind){case`load-skill-result`:n.push({part:toolResult(r,SKILL_TOOL_NAME,toToolResultOutput(r)),result:r});continue;case`subagent-result`:n.push({part:toolResult(r,r.subagentName,toToolResultOutput(r)),result:r});continue;case`tool-result`:n.push({part:toolResult(r,r.toolName,await projectToolResultOutput(r,t?.get(r.toolName))),result:r});continue}throw Error(`Unsupported runtime action result kind "${String(r)}".`)}return n}function toolResult(e,t,n){return{output:n,toolCallId:e.callId,toolName:t,type:`tool-result`}}function collectWorkflowCalls(e){let{session:t}=e,n=[];for(let r of e.toolCalls){let i=e.tools.get(r.toolName);if(isTaskTool(i))continue;let a=commitCallEntry(t,{callId:r.toolCallId,definition:i,input:resolveToolCallInputObject(r.input,{callId:r.toolCallId,toolName:r.toolName}),toolName:r.toolName,turnId:e.turnId});t=a.session,n.push(createCoordinationRequestFromToolCall({entry:a.entry,input:a.input,toolCall:r,tools:e.tools}))}return{session:t,workflowRequests:n}}function createRuntimeActionRequestFromToolCall(e){let t=e.tools.get(e.toolCall.toolName),n=resolveToolCallInputObject(e.toolCall.input,{callId:e.toolCall.toolCallId,toolName:e.toolCall.toolName}),r=e.toolCall.toolName===SKILL_ENTRY_NAME?skillTarget(n):void 0;if(r!==void 0)return{callId:e.toolCall.toolCallId,input:n,kind:`load-skill`,name:r};let i=t?.behavior?.handling;if(t!==void 0&&i?.kind===`dispatch`&&i.target.kind!==`workflow-tool-call`){let r=i.target,a={callId:e.toolCall.toolCallId,description:t.description,input:n,name:e.toolCall.toolName,nodeId:r.nodeId};return r.kind===`remote-agent-call`?{...a,kind:`remote-agent-call`,remoteAgentName:r.remoteAgentName}:{...a,kind:`subagent-call`,subagentName:r.subagentName}}let a={callId:e.toolCall.toolCallId,input:n,kind:`tool-call`,toolName:e.toolCall.toolName};return t?.workflowId===void 0?a:markRuntimeWorkflowToolAction(a)}function createCoordinationRequestFromToolCall(e){let t=e.tools.get(e.toolCall.toolName);if(t?.workflowId===void 0)throw Error(`Workflow tool "${e.toolCall.toolName}" has no workflow.`);return{callId:e.toolCall.toolCallId,entry:e.entry,executeInput:t.executeInput?.(e.input),input:e.input,kind:`workflow-task`,toolName:e.toolCall.toolName,workflowId:t.workflowId}}function resolveToolCallInputObject(e,t){if(e==null||typeof e==`string`&&e.trim()===``)return{};try{return parseJsonObject(typeof e==`string`?JSON.parse(e):e)}catch(e){let n=e instanceof Error?e.message:String(e);throw TypeError(`Failed to parse tool-call arguments for "${t.toolName}" (${t.callId}): ${n}`,{cause:e})}}async function projectToolResultOutput(e,t){return e.isError===!0||t?.toModelOutput===void 0||startsTasks(t)?toToolResultOutput(e):await observeToolOutput(e.toolName,[{callId:e.callId}],async()=>normalizeToolModelOutput({output:await t.toModelOutput(e.output),toolCallId:e.callId,toolName:e.toolName}))}function toToolResultOutput(e){return typeof e.output==`string`?{type:e.isError===!0?`error-text`:`text`,value:e.output}:{type:e.isError===!0?`error-json`:`json`,value:structuredClone(e.output)}}export{assertUniqueCoordinationCallIds,collectWorkflowCalls,createCoordinationRequestFromToolCall,createRuntimeActionRequestFromToolCall,forgetFinishedRuns,resolveToolCallInputObject,runtimeResultCalls};
@@ -5,6 +5,11 @@ import { type FrameworkMessageKind, type HarnessModelMessage } from "#harness/me
5
5
  interface AddCurrentMessageOptions {
6
6
  readonly cacheFriendly?: boolean;
7
7
  }
8
+ /** Context for a model call that belongs with one turn's input. */
9
+ export interface AnchoredContext {
10
+ readonly turnId: string;
11
+ readonly content: string;
12
+ }
8
13
  interface CurrentMessagesOptions {
9
14
  readonly historyState?: HistoryState;
10
15
  readonly currentTurnMessages?: readonly HarnessModelMessage[];
@@ -17,6 +22,11 @@ export declare function createCurrentMessages(history: readonly HarnessModelMess
17
22
  readonly nonSystemMessages: readonly HarnessModelMessage[];
18
23
  readonly systemMessages: readonly SystemModelMessage[];
19
24
  add(message: string, kind: FrameworkMessageKind, options?: AddCurrentMessageOptions): void;
25
+ /**
26
+ * Adds context for this call without keeping it in history, each entry just ahead of the input
27
+ * its turn brought. Add it last: what's added after would land between it and that input.
28
+ */
29
+ addAnchored(entries: readonly AnchoredContext[], kind: FrameworkMessageKind): void;
20
30
  addAnnouncements(announcements: Readonly<Record<string, Announcement>>): void;
21
31
  addSystem(messages: SystemModelMessage | readonly SystemModelMessage[]): void;
22
32
  };
@@ -1 +1 @@
1
- import{createFrameworkUserMessage}from"#harness/messages.js";function createCurrentMessages(e,t={}){let n=[...e],r={...t.historyState},i=[],a=[],o=new Set(t.currentTurnMessages),s;for(let n of t.projectedMessages??e)s===void 0&&o.has(n)&&(s=a.length),n.role===`system`?i.push(n):a.push(n);let c=s??a.length,l=e.findIndex(e=>o.has(e)),u=l===-1?e.length:l;function appendUserMessage(e,t){let r=createFrameworkUserMessage(t,e);a.splice(c,0,r),n.splice(u,0,r),c+=1,u+=1}function add(e,t,{cacheFriendly:n=!0}={}){if(n){appendUserMessage(e,t);return}i.push({role:`system`,content:e})}return{add,addAnnouncements(e){for(let t of Object.keys(e).sort()){let n=e[t],i=r.announcements?.[t];i!==n.value&&(appendUserMessage(n.render(i),`context.state`),r.announcements={...r.announcements,[t]:n.value})}},addSystem(e){i.push(...Array.isArray(e)?e:[e])},get nonSystemMessages(){return[...a]},get history(){return[...n]},get historyState(){return{...r}},get systemMessages(){return[...i]}}}export{createCurrentMessages};
1
+ import{createFrameworkUserMessage,turnAnchorOf}from"#harness/messages.js";function createCurrentMessages(e,t={}){let n=[...e],r={...t.historyState},i=[],a=[],o=new Set(t.currentTurnMessages),s;for(let n of t.projectedMessages??e)s===void 0&&o.has(n)&&(s=a.length),n.role===`system`?i.push(n):a.push(n);let c=s??a.length,l=e.findIndex(e=>o.has(e)),u=l===-1?e.length:l;function appendUserMessage(e,t){let r=createFrameworkUserMessage(t,e);a.splice(c,0,r),n.splice(u,0,r),c+=1,u+=1}function add(e,t,{cacheFriendly:n=!0}={}){if(n){appendUserMessage(e,t);return}i.push({role:`system`,content:e})}return{add,addAnchored(e,t){if(e.length===0)return;let n=new Map;a.forEach((e,t)=>{let r=turnAnchorOf(e);r!==void 0&&!n.has(r)&&n.set(r,t)});let r=checkpointLength(a),i=e.map(({turnId:e})=>n.get(e)??r),o=[],s=0;for(let n=0;n<=a.length;n+=1)e.forEach((e,r)=>{i[r]===n&&(o.push(createFrameworkUserMessage(t,e.content)),n<=c&&(s+=1))}),n<a.length&&o.push(a[n]);a.splice(0,a.length,...o),c+=s},addAnnouncements(e){for(let t of Object.keys(e).sort()){let n=e[t],i=r.announcements?.[t];i!==n.value&&(appendUserMessage(n.render(i),`context.state`),r.announcements={...r.announcements,[t]:n.value})}},addSystem(e){i.push(...Array.isArray(e)?e:[e])},get nonSystemMessages(){return[...a]},get history(){return[...n]},get historyState(){return{...r}},get systemMessages(){return[...i]}}}function checkpointLength(e){let[t,n]=e;return t?.role===`user`&&t.kind===`context.compaction`&&n?.role===`assistant`?2:0}export{createCurrentMessages};
@@ -1,4 +1,4 @@
1
- import type { ModelMessage, TextStreamPart, ToolSet, TypedToolResult } from "ai";
1
+ import type { ModelMessage, TextStreamPart, ToolSet } from "ai";
2
2
  type ToolResponsePart = Extract<ModelMessage, {
3
3
  role: "tool";
4
4
  }>["content"][number];
@@ -7,34 +7,23 @@ type InlineToolResultPart = Extract<ToolResponsePart, {
7
7
  }>;
8
8
  import type { TurnPosition } from "#harness/session-machine/view.js";
9
9
  import type { HarnessEmitFn, HarnessToolLookup } from "#harness/types.js";
10
- /**
11
- * Result of consuming one step's `fullStream`.
12
- *
13
- * Inline results avoid duplicate post-step events. Approval-resume
14
- * authorization results also route back to the park detector.
15
- */
10
+ /** The calls of one step's `fullStream` whose input was invalid, and their results. */
16
11
  interface EmittedStreamContent {
17
- readonly emittedActionCallIds: ReadonlySet<string>;
18
- readonly handledInlineToolResultCallIds: ReadonlySet<string>;
19
12
  readonly invalidInputToolCallIds: ReadonlySet<string>;
20
- readonly inlineAuthorizationResults: readonly TypedToolResult<ToolSet>[];
21
13
  readonly trailingInlineToolResultParts: readonly InlineToolResultPart[];
22
14
  }
23
15
  interface StreamActionEmissionOptions {
24
16
  readonly excludedActionToolNames: ReadonlySet<string>;
25
17
  /**
26
- * The session is a child or a schedule, whose caller hears only the turn's
27
- * real end: text before `eve__task_wait` reports `"tool-calls"`, and
28
- * channels don't post it as the reply.
29
- */
30
- readonly hidesHeldText?: boolean;
31
- /**
32
- * A task is working, so the turn is held and a text step can't end it. For a
33
- * session that `hidesHeldText`, the step reports `"tool-calls"`.
18
+ * The turn holds while its tasks work and its caller reads only the final reply, so a text step
19
+ * can't end it: its text narrates, and only the reply after the tasks report is the turn's.
34
20
  */
35
- readonly tasksWorking?: boolean;
21
+ readonly held?: boolean;
22
+ /** A child or schedule's caller reads only the final reply, including at an explicit task wait. */
23
+ readonly finalReplyOnly?: boolean;
36
24
  readonly tools: HarnessToolLookup;
37
- readonly unsettledActionToolNames?: Map<string, string>;
25
+ /** A deliberate turn cancel or steering interrupt, not a provider failure/retry. */
26
+ readonly interruptSignal?: AbortSignal;
38
27
  }
39
28
  /**
40
29
  * Consumes the AI SDK `fullStream` and emits real-time text and reasoning
@@ -1 +1 @@
1
- import{TASK_WAIT_TOOL_NAME}from"#protocol/task-tools.js";import{createActionInputAppendedEvent,createActionPartialEvent,createActionResultEvent,createActionsRequestedEvent,createMessageAppendedEvent,createMessageCompletedEvent,createReasoningAppendedEvent,createReasoningCompletedEvent}from"#protocol/message.js";import{createRuntimeToolResultFromStepResult,createRuntimeToolResultFromToolError,createToolResultMessagePartFromToolError,toActionResult}from"#harness/action-result-helpers.js";import{normalizeModelStreamError}from"#harness/model-call/errors.js";import{createInvalidToolCallInputError,isInvalidToolCall,resolveProviderToolCallRequest}from"#harness/tool-call-input-errors.js";import{collectActionPresentation,createPresentedRuntimeActionRequestFromToolCall}from"#harness/action-presentation.js";import{projectDeltaPresentation,projectResultPresentation}from"#harness/tool-presentation.js";import{createProviderStreamActionBatch}from"#harness/stream-actions.js";import{createOrderedStreamEmitter}from"#harness/ordered-stream-emitter.js";import{interruptStreamOnFailure}from"#harness/interruptible-stream.js";import{isInlineAuthorizationToolResult}from"#harness/inline-tool-authorization.js";import{normalizeAssistantStepFinishReason}from"#harness/finish-reason.js";async function emitStreamContent(e,t,n,r){let i=createOrderedStreamEmitter(e),a=createProviderStreamActionBatch({emitFn:i.emit,onActionsEmitted:e=>{for(let{request:t,toolName:n}of e)r?.unsettledActionToolNames?.set(t.action.callId,n)},state:t});try{return await consumeStreamContent(i.emit,t,interruptStreamOnFailure(n,i.failureSignal),a,r)}finally{try{await a.cancel()}finally{await i.closeAndDrain()}}}function reportedFinishReason(e,t){return t&&e===`stop`?`tool-calls`:e}function textFinishReasonBefore(e,t){return e===TASK_WAIT_TOOL_NAME&&!t?`stop`:`tool-calls`}async function consumeStreamContent(e,t,n,r,i){let a=``,o=``,s=`stop`,c,l=new Set,u=new Set,d=new Set,f=new Set,p=new Set,m=new Set,h=[],g=[],_=new Map,v=new Map,flushCurrentMessage=async(n=`tool-calls`)=>{o.length!==0&&(await e(createMessageCompletedEvent({finishReason:n,message:o,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),o=``)},emitActionInput=async(n,r,a)=>{await e(createActionInputAppendedEvent({callId:n,inputTextDelta:a,sequence:t.sequence,stepIndex:t.stepIndex,toolName:r,turnId:t.turnId})),i?.unsettledActionToolNames?.set(n,r)},emitActionRequest=async(n,r)=>{let{action:a}=n;u.has(a.callId)||(o.trim().length>0&&await flushCurrentMessage(textFinishReasonBefore(r,i?.hidesHeldText===!0)),u.add(a.callId),_.set(a.callId,a.input),await e(createActionsRequestedEvent({actions:[a],presentation:collectActionPresentation([n]),sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),i?.unsettledActionToolNames?.set(a.callId,r))},collectProviderToolCall=async e=>{if(f.has(e.toolCallId)||(f.add(e.toolCallId),u.has(e.toolCallId)))return;u.add(e.toolCallId),o.trim().length>0&&await flushCurrentMessage();let t=resolveProviderToolCallRequest(e,i?.tools??new Map);if(t.toolError!==void 0){m.add(e.toolCallId),await emitActionResult(createRuntimeToolResultFromToolError(t.toolError)),p.add(e.toolCallId),g.push(createToolResultMessagePartFromToolError(t.toolError));return}_.set(t.request.action.callId,t.request.action.input),r.observe(t.request,e.toolName)},emitActionResult=async n=>{if(d.has(n.callId))return;d.add(n.callId);let r=n.isError===!0?void 0:projectResultPresentation(i?.tools.get(n.toolName),n.callId,_.get(n.callId),n.output);await e(createActionResultEvent({presentation:r,result:toActionResult(n,_.get(n.callId)),sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),i?.unsettledActionToolNames?.delete(n.callId)},emitActionPartial=async n=>{let r=projectDeltaPresentation(i?.tools.get(n.toolName),n.callId,_.get(n.callId),n.output);await e(createActionPartialEvent({presentation:r,result:n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}))},emitToolCall=async e=>{if(isInvalidToolCall(e)){m.add(e.toolCallId);return}if(!(i===void 0||i.excludedActionToolNames.has(e.toolName)))try{await emitActionRequest(createPresentedRuntimeActionRequestFromToolCall({toolCall:e,tools:i.tools}),e.toolName)}catch(t){if(t instanceof TypeError){let n=createInvalidToolCallInputError({error:t,toolCall:e});m.add(e.toolCallId),o.trim().length>0&&await flushCurrentMessage(),await emitActionResult(createRuntimeToolResultFromToolError(n)),p.add(e.toolCallId),g.push(createToolResultMessagePartFromToolError(n));return}throw t}};for await(let d of n)if(c===void 0)switch(d.type){case`reasoning-delta`:await r.flush(),a+=d.text,await e(createReasoningAppendedEvent({reasoningDelta:d.text,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}));break;case`text-delta`:await r.flush(),a.trim().length>0&&(await e(createReasoningCompletedEvent({reasoning:a,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),a=``),o+=d.text,await e(createMessageAppendedEvent({messageDelta:d.text,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}));break;case`tool-input-start`:if(i===void 0||d.providerExecuted===!0||i.tools.get(d.toolName)?.behavior?.handling?.kind===`provider-tool`||i.excludedActionToolNames.has(d.toolName)){v.delete(d.id);break}await r.flush(),o.trim().length>0&&await flushCurrentMessage(textFinishReasonBefore(d.toolName,i.hidesHeldText===!0)),v.set(d.id,{toolName:d.toolName});break;case`tool-input-delta`:{let e=v.get(d.id);if(e===void 0)break;await r.flush(),await emitActionInput(d.id,e.toolName,d.delta);break}case`tool-input-end`:v.delete(d.id);break;case`tool-call`:{let e=d;v.delete(e.toolCallId),l.add(e.toolCallId),e.providerExecuted===!0?await collectProviderToolCall(e):(await r.flush(),await emitToolCall(e));break}case`tool-result`:{let e=d;if(e.preliminary===!0){e.providerExecuted!==!0&&await emitActionPartial(createRuntimeToolResultFromStepResult(e));break}if(e.providerExecuted===!0){await collectProviderToolCall({input:`input`in e?e.input:void 0,toolCallId:e.toolCallId,toolName:e.toolName}),await r.flush(),await emitActionResult(createRuntimeToolResultFromStepResult(e));break}if(l.has(d.toolCallId)){if(isInlineAuthorizationToolResult(e))break;u.has(d.toolCallId)&&(await emitActionResult(createRuntimeToolResultFromStepResult(e)),p.add(d.toolCallId));break}if(await r.flush(),await flushCurrentMessage(),isInlineAuthorizationToolResult(e)){p.add(d.toolCallId),h.push(e);break}await emitActionResult(createRuntimeToolResultFromStepResult(e)),p.add(d.toolCallId);break}case`tool-error`:{let e=d;e.providerExecuted===!0?(await collectProviderToolCall(e),await r.flush(),await emitActionResult(createRuntimeToolResultFromToolError(e))):u.has(e.toolCallId)&&(await emitActionResult(createRuntimeToolResultFromToolError(e)),p.add(e.toolCallId),g.push(createToolResultMessagePartFromToolError(e)));break}case`finish-step`:s=normalizeAssistantStepFinishReason(d.finishReason),await r.flush();break;case`error`:c=normalizeModelStreamError(d.error);break;case`abort`:throw new DOMException(d.reason??`The model stream was aborted.`,`AbortError`)}if(await r.flush(),c!==void 0)throw c;return a.trim().length>0&&await e(createReasoningCompletedEvent({reasoning:a,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),s!==`content-filter`&&o.trim().length>0&&await e(createMessageCompletedEvent({finishReason:reportedFinishReason(s,i?.hidesHeldText===!0&&i.tasksWorking===!0),message:o,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),{emittedActionCallIds:u,handledInlineToolResultCallIds:p,invalidInputToolCallIds:m,inlineAuthorizationResults:h,trailingInlineToolResultParts:g}}export{emitStreamContent};
1
+ import{TASK_WAIT_TOOL_NAME}from"#protocol/task-tools.js";import{announcedKind,callRequested,callSettledFrom}from"#harness/call-facts.js";import{createRuntimeToolResultFromStepResult,createRuntimeToolResultFromToolError,createToolResultMessagePartFromToolError}from"#harness/action-result-helpers.js";import{createInvalidToolCallInputError,isInvalidToolCall,resolveProviderToolCallRequest}from"#harness/tool-call-input-errors.js";import{createPresentedRuntimeActionRequestFromToolCall,projectToolLabel}from"#harness/action-presentation.js";import{normalizeModelStreamError}from"#harness/model-call/errors.js";import{createProviderStreamActionBatch}from"#harness/stream-actions.js";import{createOrderedStreamEmitter}from"#harness/ordered-stream-emitter.js";import{interruptStreamOnFailure}from"#harness/interruptible-stream.js";import{normalizeAssistantStepFinishReason}from"#harness/finish-reason.js";async function emitStreamContent(e,t,n,r){let i=createOrderedStreamEmitter(e),a=createProviderStreamActionBatch({emitFn:i.emit,state:t});try{return await consumeStreamContent(i.emit,t,interruptStreamOnFailure(n,i.failureSignal),a,r)}finally{try{await a.cancel()}finally{await i.closeAndDrain()}}}function finalPhase(e,t){return e===`tool-calls`||t&&e===`stop`?`narration`:`reply`}function textPhaseBefore(e,t){return e===TASK_WAIT_TOOL_NAME&&!t?`reply`:`narration`}async function consumeStreamContent(e,t,n,r,i){let a=t.runId??`${t.turnId}.run`,o={runId:a,turnId:t.turnId},s=0,nextPartId=()=>`${a}.${String(s++)}`,c=``,l,u=``,d,f=`stop`,p,m=new Set,h=new Set,g=new Set,_=new Set,v=[],y=new Map,b=new Map,completePart=async(t,n,r,i)=>{await e({data:{kind:n,partId:t,phase:i,runId:a,value:r},type:`content.completed`})},flushCurrentMessage=async(e=`narration`)=>{u.length!==0&&d!==void 0&&(await completePart(d,`text`,u,e),u=``,d=void 0)},flushCurrentReasoning=async()=>{c.trim().length>0&&l!==void 0&&await completePart(l,`reasoning`,c,`narration`),c=``,l=void 0},emitActionInput=async(t,n)=>{let r=b.get(t);if(r===void 0)return;let a=r.announced?{data:{callId:t,delta:n},type:`call.input`}:{data:{callId:t,delta:n,kind:announcedKind(r.toolName,i?.tools.get(r.toolName)),name:r.toolName},scope:o,type:`call.input`};r.announced=!0,await e(a)},emitActionRequest=async t=>{let{action:n}=t;m.has(n.callId)||(u.trim().length>0&&await flushCurrentMessage(n.kind===`tool-call`?textPhaseBefore(n.toolName,i?.finalReplyOnly===!0):`narration`),m.add(n.callId),y.set(n.callId,n.input),await e(callRequested({action:n,owner:{runId:a},label:t.presentationLabel})))},collectProviderToolCall=async e=>{if(g.has(e.toolCallId)||(g.add(e.toolCallId),m.has(e.toolCallId)))return;m.add(e.toolCallId),u.trim().length>0&&await flushCurrentMessage();let t=resolveProviderToolCallRequest(e,i?.tools??new Map);if(t.toolError!==void 0){_.add(e.toolCallId),await emitInvalidCall({callId:e.toolCallId,input:{},kind:`tool-call`,toolName:e.toolName},createRuntimeToolResultFromToolError(t.toolError)),v.push(createToolResultMessagePartFromToolError(t.toolError));return}y.set(t.request.action.callId,t.request.action.input),r.observe(t.request)},emitInvalidCall=async(t,n)=>{m.add(t.callId);let r=typeof n.output==`string`?n.output:JSON.stringify(n.output??null);await e(callRequested({action:t,inputError:{code:`INVALID_TOOL_INPUT`,message:r},owner:{runId:a}})),await emitActionResult(n)},emitActionResult=async t=>{if(h.has(t.callId))return;h.add(t.callId);let n=t.isError===!0?void 0:projectToolLabel(i?.tools.get(t.toolName),`complete`,y.get(t.callId),t.output);await e(callSettledFrom(t,{label:n}))},emitToolCall=async e=>{if(isInvalidToolCall(e)){_.add(e.toolCallId);return}if(!(i===void 0||i.excludedActionToolNames.has(e.toolName)))try{await emitActionRequest(createPresentedRuntimeActionRequestFromToolCall({toolCall:e,tools:i.tools}))}catch(t){if(t instanceof TypeError){let n=createInvalidToolCallInputError({error:t,toolCall:e});_.add(e.toolCallId),u.trim().length>0&&await flushCurrentMessage(),await emitInvalidCall({callId:e.toolCallId,input:{},kind:`tool-call`,toolName:e.toolName},createRuntimeToolResultFromToolError(n)),v.push(createToolResultMessagePartFromToolError(n));return}throw t}};try{for await(let t of n)if(p===void 0)switch(t.type){case`reasoning-delta`:{await r.flush(),c+=t.text;let n=l===void 0;l??=nextPartId(),await e(n?{data:{delta:t.text,kind:`reasoning`,partId:l},scope:o,type:`content.delta`}:{data:{delta:t.text,partId:l},type:`content.delta`});break}case`text-delta`:{await r.flush(),await flushCurrentReasoning(),u+=t.text;let n=d===void 0;d??=nextPartId(),await e(n?{data:{delta:t.text,kind:`text`,partId:d},scope:o,type:`content.delta`}:{data:{delta:t.text,partId:d},type:`content.delta`});break}case`tool-input-start`:if(i===void 0||t.providerExecuted===!0||i.tools.get(t.toolName)?.behavior?.handling?.kind===`provider-tool`||i.excludedActionToolNames.has(t.toolName)){b.delete(t.id);break}await r.flush(),u.trim().length>0&&await flushCurrentMessage(textPhaseBefore(t.toolName,i.finalReplyOnly===!0)),b.set(t.id,{announced:!1,toolName:t.toolName});break;case`tool-input-delta`:if(!b.has(t.id))break;await r.flush(),await emitActionInput(t.id,t.delta);break;case`tool-input-end`:b.delete(t.id);break;case`tool-call`:{let e=t;b.delete(e.toolCallId),e.providerExecuted===!0?await collectProviderToolCall(e):(await r.flush(),await emitToolCall(e));break}case`tool-result`:{let e=t;if(e.providerExecuted!==!0||e.preliminary===!0)break;await collectProviderToolCall({input:`input`in e?e.input:void 0,toolCallId:e.toolCallId,toolName:e.toolName}),await r.flush(),await emitActionResult(createRuntimeToolResultFromStepResult(e));break}case`tool-error`:{let e=t;if(e.providerExecuted!==!0)break;await collectProviderToolCall(e),await r.flush(),await emitActionResult(createRuntimeToolResultFromToolError(e));break}case`finish-step`:f=normalizeAssistantStepFinishReason(t.finishReason),await r.flush();break;case`error`:p=normalizeModelStreamError(t.error);break;case`abort`:throw new DOMException(t.reason??`The model stream was aborted.`,`AbortError`)}}catch(t){if(i?.interruptSignal?.aborted===!0){let t=[];l!==void 0&&c.length>0&&t.push({type:`content.completed`,data:{partId:l,runId:a,kind:`reasoning`,phase:`narration`,value:c,interrupted:!0}}),d!==void 0&&u.length>0&&t.push({type:`content.completed`,data:{partId:d,runId:a,kind:`text`,phase:`narration`,value:u,interrupted:!0}}),t.length>0&&await e(t)}throw t}if(await r.flush(),p!==void 0)throw p;return await flushCurrentReasoning(),f!==`content-filter`&&u.trim().length>0&&d!==void 0&&await completePart(d,`text`,u,finalPhase(f,i?.held===!0)),{invalidInputToolCallIds:_,trailingInlineToolResultParts:v}}export{emitStreamContent};
@@ -3,10 +3,8 @@
3
3
  * seam reads an `eve__tool` or `eve__skill` call as the call to the entry it
4
4
  * names. Model history keeps the model's own calls.
5
5
  */
6
- import type { ModelMessage, TelemetryOptions, TextStreamPart, ToolSet } from "ai";
7
- import type { HarnessToolDefinition } from "#harness/execute-tool.js";
6
+ import type { ModelMessage, TextStreamPart, ToolSet } from "ai";
8
7
  import type { HarnessStepResult } from "#harness/step-hooks.js";
9
- import { toolCallModelOutput } from "#harness/tool-call-io.js";
10
8
  import type { CallResolver, ResolvedCall, ToolCallLike } from "#harness/types.js";
11
9
  import type { ToolExecuteOptions } from "#tools/definition.js";
12
10
  /**
@@ -15,23 +13,14 @@ import type { ToolExecuteOptions } from "#tools/definition.js";
15
13
  * call made through one.
16
14
  */
17
15
  export declare function historyCallNames(messages: readonly ModelMessage[]): ReadonlyMap<string, string>;
18
- /** Whether a call runs as a workflow tool or agent the harness dispatches after the step. */
19
- export declare function dispatchesAfterStep(resolved: ResolvedCall<ToolCallLike> | undefined): boolean;
20
- /** Runs a resolved catalog call, or stands in for one the harness dispatches. */
21
- export declare function runEntryCall(resolved: ResolvedCall<ToolCallLike>, options: ToolExecuteOptions): unknown;
22
16
  /**
23
- * The call a tool stub matches. An `eve__tool` call matches as the call to its
24
- * entry, with the entry's input, so a stub applies to it exactly as to a direct
25
- * call. A call the harness dispatches after the step has none here: its
26
- * dispatch applies the stub, as it does for a direct call.
17
+ * Runs a resolved catalog call. eve resolves every call before it runs one, so this runs only
18
+ * for a catalog tool's own `execute`, which no resolved call reaches.
27
19
  */
28
- export declare function stubbedCall(call: ToolCallLike, resolved: ResolvedCall<ToolCallLike> | undefined): ToolCallLike | undefined;
29
- /** The model output of a call's result; a stand-in's output is dropped with it. */
30
- export declare function entryModelOutput(definition: Pick<HarnessToolDefinition, "name" | "toModelOutput">, output: unknown, toolCallId: string | undefined): ReturnType<typeof toolCallModelOutput>;
20
+ export declare function runEntryCall(resolved: ResolvedCall<ToolCallLike>, options: ToolExecuteOptions): unknown;
31
21
  /**
32
- * The step as the harness reads it: catalog calls become calls to
33
- * their entries and stand-in results are dropped. The response messages, which
34
- * become history, keep the model's own calls.
22
+ * The step as the harness reads it: catalog calls become calls to their entries. The response
23
+ * messages, which become history, keep the model's own calls.
35
24
  */
36
25
  export declare function toEntryStep<T extends ModelMessage>(step: HarnessStepResult, responseMessages: readonly T[], resolve: CallResolver): readonly [HarnessStepResult, T[]];
37
26
  /**
@@ -40,9 +29,3 @@ export declare function toEntryStep<T extends ModelMessage>(step: HarnessStepRes
40
29
  * input is complete.
41
30
  */
42
31
  export declare function toEntryStream(stream: AsyncIterable<TextStreamPart<ToolSet>>, resolve: CallResolver): AsyncIterable<TextStreamPart<ToolSet>>;
43
- /**
44
- * Telemetry as the harness reports it. Integrations see each catalog call as
45
- * the call to its entry, and never see a stand-in run: a direct
46
- * call to the same entry never runs in the SDK.
47
- */
48
- export declare function toEntryTelemetry(telemetry: TelemetryOptions | undefined, resolve: CallResolver): TelemetryOptions | undefined;
@@ -1 +1 @@
1
- import{CALL_TOOL_NAME,SKILL_TOOL_NAME}from"#protocol/catalog-tools.js";import{isWorkflowTool}from"#execution/tasks/model-step.js";import{toolCallModelOutput}from"#harness/tool-call-io.js";function historyCallNames(e){let t=new Map;for(let n of e)if(n.role===`assistant`&&Array.isArray(n.content))for(let e of n.content)e.type===`tool-call`&&t.set(e.toolCallId,e.toolName);return t}const DISPATCHED=Object.freeze({dispatched:!0});function dispatchesAfterStep(e){return e!==void 0&&isWorkflowTool(e.definition)}function runEntryCall(e,t){if(dispatchesAfterStep(e))return DISPATCHED;let{call:n,definition:r}=e;if(r.execute===void 0)throw Error(`"${n.toolName}" cannot run.`);return r.execute(n.input,t)}function stubbedCall(e,t){return t===void 0?e:dispatchesAfterStep(t)?void 0:t.call}function entryModelOutput(e,t,n){return t===DISPATCHED?Promise.resolve({type:`json`,value:null}):toolCallModelOutput(e,t,n)}function toEntryStep(e,t,n){let r=new Set((e.toolResults??[]).filter(e=>e.output===DISPATCHED).map(e=>e.toolCallId)),kept=e=>e.type!==`tool-result`||!r.has(e.toolCallId);return[{content:(e.content??[]).filter(kept).map(e=>toEntryPart(e,n)),finishReason:e.finishReason,invalidInputToolCallIds:e.invalidInputToolCallIds,providerMetadata:e.providerMetadata,response:{...e.response,messages:withoutResults(e.response.messages,kept)},text:e.text,toolCalls:(e.toolCalls??[]).map(e=>entryCallOf(e,n)),toolResults:(e.toolResults??[]).filter(kept).map(e=>entryCallOf(e,n)),usage:e.usage},withoutResults(t,kept)]}async function*toEntryStream(e,t){let n=new Set;for await(let r of e){if(r.type===`tool-input-start`&&(r.toolName===CALL_TOOL_NAME||r.toolName===SKILL_TOOL_NAME)){n.add(r.id);continue}r.type===`tool-input-delta`&&n.has(r.id)||r.type===`tool-input-end`&&n.delete(r.id)||(r.type!==`tool-result`||r.output!==DISPATCHED)&&(yield toEntryPart(r,t))}}function toEntryTelemetry(e,t){let n=e?.integrations;if(n===void 0)return e;let r=Array.isArray(n)?n:[n],i=new Set;return{...e,integrations:r.map(e=>entryToolExecutions(e,t,i))}}function entryToolExecutions(e,t,n){let{executeTool:r,onToolExecutionEnd:i,onToolExecutionStart:a}=e;if(!r&&!i&&!a)return e;let reportAsEntry=r=>i=>{let a=t(i.toolCall);if(dispatchesAfterStep(a)){n.add(i.toolCall.toolCallId);return}return r?.call(e,{...i,toolCall:a?.call??i.toolCall})};return Object.create(e,{executeTool:{value(t){return n.has(t.toolCallId)||r===void 0?t.execute():r.call(e,t)}},onToolExecutionEnd:{value:reportAsEntry(i)},onToolExecutionStart:{value:reportAsEntry(a)}})}function entryCallOf(e,t){return t(e)?.call??e}function toEntryPart(e,t){switch(e.type){case`tool-call`:case`tool-result`:case`tool-error`:return entryCallOf(e,t);case`tool-approval-request`:{let n=e;return n.toolCall===void 0?e:{...n,toolCall:entryCallOf(n.toolCall,t)}}default:return e}}function withoutResults(e,t){return e.flatMap(e=>{if(e.role!==`tool`)return[e];let n=e.content.filter(t);return n.length===0?[]:[{...e,content:n}]})}export{dispatchesAfterStep,entryModelOutput,historyCallNames,runEntryCall,stubbedCall,toEntryStep,toEntryStream,toEntryTelemetry};
1
+ import{CALL_TOOL_NAME,SKILL_TOOL_NAME}from"#protocol/catalog-tools.js";function historyCallNames(e){let t=new Map;for(let n of e)if(n.role===`assistant`&&Array.isArray(n.content))for(let e of n.content)e.type===`tool-call`&&t.set(e.toolCallId,e.toolName);return t}function runEntryCall(e,t){let{call:n,definition:r}=e;if(r.execute===void 0)throw Error(`"${n.toolName}" cannot run.`);return r.execute(n.input,t)}function toEntryStep(e,t,n){return[{approvalRequests:e.approvalRequests,policyApprovals:e.policyApprovals,callId:e.callId,content:(e.content??[]).map(e=>toEntryPart(e,n)),finishReason:e.finishReason,invalidInputToolCallIds:e.invalidInputToolCallIds,providerMetadata:e.providerMetadata,response:e.response,signIns:e.signIns,text:e.text,toolCalls:(e.toolCalls??[]).map(e=>entryCallOf(e,n)),toolResults:(e.toolResults??[]).map(e=>entryCallOf(e,n)),usage:e.usage},[...t]]}async function*toEntryStream(e,t){let n=new Set;for await(let r of e){if(r.type===`tool-input-start`&&(r.toolName===CALL_TOOL_NAME||r.toolName===SKILL_TOOL_NAME)){n.add(r.id);continue}r.type===`tool-input-delta`&&n.has(r.id)||r.type===`tool-input-end`&&n.delete(r.id)||(yield toEntryPart(r,t))}}function entryCallOf(e,t){return t(e)?.call??e}function toEntryPart(e,t){switch(e.type){case`tool-call`:case`tool-result`:case`tool-error`:return entryCallOf(e,t);case`tool-approval-request`:{let n=e;return n.toolCall===void 0?e:{...n,toolCall:entryCallOf(n.toolCall,t)}}default:return e}}export{historyCallNames,runEntryCall,toEntryStep,toEntryStream};
@@ -1,5 +1,5 @@
1
1
  import type { FlexibleSchema } from "ai";
2
- import type { ToolApproval } from "#approval/definition.js";
2
+ import type { Approval } from "#approval/definition.js";
3
3
  import type { InternalToolDefinition, InternalToolLabelDefinition, ToolExecuteOptions } from "#tools/definition.js";
4
4
  import type { JsonValue } from "#shared/json.js";
5
5
  import type { PreparedToolBehavior } from "#tools/behavior.js";
@@ -9,7 +9,6 @@ import type { PreparedToolBehavior } from "#tools/behavior.js";
9
9
  export interface HarnessToolDefinition {
10
10
  readonly availableInSubagents?: boolean;
11
11
  readonly label?: InternalToolLabelDefinition;
12
- readonly approvalKey?: (toolInput: Readonly<Record<string, unknown>>) => string;
13
12
  readonly behavior?: PreparedToolBehavior;
14
13
  /** Kept out of the model's tool list; the model reaches it through `eve__search` and `eve__tool`. */
15
14
  readonly deferred?: boolean;
@@ -23,7 +22,7 @@ export interface HarnessToolDefinition {
23
22
  readonly frameworkAction?: "task-cancel" | "task-wait";
24
23
  readonly inputSchema: FlexibleSchema;
25
24
  readonly name: string;
26
- readonly approval?: ToolApproval;
25
+ readonly approval?: Approval;
27
26
  readonly outputSchema?: FlexibleSchema;
28
27
  /**
29
28
  * Advertise this tool only to the root session, hiding it from subagent
@@ -32,6 +31,11 @@ export interface HarnessToolDefinition {
32
31
  */
33
32
  readonly rootOnly?: boolean;
34
33
  readonly toModelOutput?: (output: unknown) => unknown;
34
+ /**
35
+ * The version of a dynamically sourced entry the model was offered. A call made from one
36
+ * version runs only while the entry still has it.
37
+ */
38
+ readonly version?: string;
35
39
  /** Present when this tool starts an associated durable workflow. */
36
40
  readonly workflowId?: string;
37
41
  }
@@ -0,0 +1,82 @@
1
+ import type { SessionEvent } from "#protocol/session-event.js";
2
+ import type { Cause, ErrorInfo, Usage } from "#protocol/session-events/envelope.js";
3
+ import type { Fact, FactOf } from "#protocol/session-events/facts.js";
4
+ import type { ModelOwner } from "#protocol/session-events/families/model.js";
5
+ import type { SessionProjection } from "#protocol/session-projection.js";
6
+ import type { ControlDelivery } from "#harness/types.js";
7
+ import type { JsonObject } from "#shared/json.js";
8
+ /** `value` without the fields it leaves undefined. */
9
+ export declare function defined<T extends object>(value: T): T;
10
+ /** A fact of `type`, without the fields its data leaves undefined. */
11
+ export declare function fact<T extends Fact["type"]>(type: T, data: FactOf<T>["data"]): FactOf<T>;
12
+ /** Spend as `usage.recorded` carries it: every count, zero when unreported, and a known cost. */
13
+ export declare function usageOf(counts: Partial<Usage>): Usage;
14
+ /** A failure as the stream reports it: its code and message, with its support id and remedy. */
15
+ export declare function errorInfoOf(failure: {
16
+ readonly code: string;
17
+ readonly details?: JsonObject;
18
+ readonly message: string;
19
+ }): ErrorInfo;
20
+ /**
21
+ * The facts that end a session, in one commit, `session.ended` last. The writer closes what the
22
+ * session leaves open before it (`cascade`): an open turn ends cancelled, since its session ended,
23
+ * not it; `failure(view, turnId)` reads the session's error. Every reader stops there.
24
+ */
25
+ export declare function sessionEndedFacts(projection: SessionProjection | undefined, ending: {
26
+ readonly outcome: "completed" | "failed";
27
+ readonly cause?: Cause;
28
+ /** The reset control that ends the session: admitted first, applied before the end. */
29
+ readonly control?: ControlDelivery;
30
+ /** Controls that arrived before the session started, which settle as it starts. */
31
+ readonly settles?: readonly ControlSettlement[];
32
+ readonly error?: ErrorInfo;
33
+ }): SessionEvent[];
34
+ /** How a turn ends. */
35
+ export interface TurnEnding {
36
+ readonly outcome: FactOf<"turn.settled">["data"]["outcome"];
37
+ readonly cause?: Cause;
38
+ readonly error?: ErrorInfo;
39
+ }
40
+ /**
41
+ * The fact that ends a turn, the open one unless `turnId` names another, with what it replied.
42
+ * The writer closes what it leaves open before it, and settles the deliveries it answered after
43
+ * it (`cascade`).
44
+ */
45
+ export declare function turnSettled(projection: SessionProjection, ending: TurnEnding, turnId?: string | undefined): SessionEvent[];
46
+ /** A model run is asked for: a turn's, or a context change's summary run. */
47
+ export declare function runRequested(owner: ModelOwner, runId: string): SessionEvent;
48
+ /** The run's model was chosen and an attempt at its provider call begins. */
49
+ export declare function runStarted(input: {
50
+ readonly runId: string;
51
+ readonly modelId: string;
52
+ readonly attempt: number;
53
+ }): SessionEvent;
54
+ /** How a run ended, and what it spent. */
55
+ export interface RunSettlement {
56
+ readonly runId: string;
57
+ readonly outcome: FactOf<"model.settled">["data"]["outcome"];
58
+ readonly finishReason?: string;
59
+ readonly generationId?: string;
60
+ readonly error?: ErrorInfo;
61
+ readonly usage?: Usage;
62
+ }
63
+ /** The facts that settle a run: its end, then what it spent. */
64
+ export declare function runSettledFacts(input: RunSettlement): SessionEvent[];
65
+ /**
66
+ * What the agent behind a call spent, recorded against the call; without one, spend that arrived
67
+ * after its call settled, which no open entity owns (`delegated-late`).
68
+ */
69
+ export declare function delegatedUsageFact(callId: string | undefined, usage: Usage): SessionEvent;
70
+ /** A context change starts. */
71
+ export declare function contextStarted(data: FactOf<"context.started">["data"]): SessionEvent;
72
+ /** A control's admission: the delivery it arrived as, its kind, and who sent it. */
73
+ export declare function controlAdmitted(delivery: ControlDelivery, control: string): SessionEvent;
74
+ export interface ControlSettlement {
75
+ readonly control: ControlDelivery;
76
+ readonly source: "cancel" | "clear" | "compact";
77
+ readonly outcome: "ignored" | "applied";
78
+ }
79
+ /** A control that finishes without a step of its own, admitted and settled together. */
80
+ export declare function controlSettled(settlement: ControlSettlement): SessionEvent[];
81
+ /** A control or callback delivery's settlement once what it asked has happened. */
82
+ export declare function deliveryApplied(deliveryId: string): SessionEvent;