eve 0.83.2 → 0.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1562) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +1 -5
  3. package/dist/src/_virtual/_rolldown/runtime.js +1 -1
  4. package/dist/src/acp/adapter.d.ts +8 -5
  5. package/dist/src/acp/adapter.js +1 -1
  6. package/dist/src/ai/decide.d.ts +3 -7
  7. package/dist/src/ai/decide.js +1 -1
  8. package/dist/src/ai/decision-adapter.d.ts +7 -0
  9. package/dist/src/ai/decision-adapter.js +1 -0
  10. package/dist/src/ai/decision-types.d.ts +86 -0
  11. package/dist/src/approval/definition.d.ts +5 -12
  12. package/dist/src/approval/evaluation.d.ts +48 -0
  13. package/dist/src/approval/evaluation.js +1 -0
  14. package/dist/src/approval/status.d.ts +14 -0
  15. package/dist/src/approval/status.js +1 -0
  16. package/dist/src/channel/adapter-context.d.ts +1 -3
  17. package/dist/src/channel/adapter-context.js +1 -1
  18. package/dist/src/channel/adapter.d.ts +34 -26
  19. package/dist/src/channel/adapter.js +1 -1
  20. package/dist/src/channel/audience.d.ts +0 -3
  21. package/dist/src/channel/audience.js +1 -1
  22. package/dist/src/channel/auth/definitions.d.ts +532 -0
  23. package/dist/src/channel/auth/definitions.js +1 -0
  24. package/dist/src/channel/auth/jwt-ecdsa.js +1 -1
  25. package/dist/src/channel/auth/jwt-hmac.js +1 -1
  26. package/dist/src/channel/auth/oidc.js +1 -1
  27. package/dist/src/channel/channel-address.d.ts +12 -10
  28. package/dist/src/channel/channel-address.js +1 -1
  29. package/dist/src/channel/channel-operations.d.ts +21 -22
  30. package/dist/src/channel/channel-operations.js +1 -1
  31. package/dist/src/channel/compiled-channel.d.ts +4 -4
  32. package/dist/src/channel/conversation-context.js +1 -1
  33. package/dist/src/channel/cors.d.ts +2 -2
  34. package/dist/src/channel/cors.js +1 -1
  35. package/dist/src/channel/cross-channel-receive.d.ts +3 -3
  36. package/dist/src/channel/delivery-idempotency.d.ts +6 -0
  37. package/dist/src/channel/delivery-idempotency.js +1 -1
  38. package/dist/src/channel/delivery-metadata.d.ts +2 -2
  39. package/dist/src/channel/delivery.d.ts +8 -0
  40. package/dist/src/channel/delivery.js +1 -0
  41. package/dist/src/channel/interaction-prompts.d.ts +54 -0
  42. package/dist/src/channel/interaction-prompts.js +1 -0
  43. package/dist/src/channel/invoke-tool.d.ts +11 -18
  44. package/dist/src/channel/pending-authorization.d.ts +3 -14
  45. package/dist/src/channel/pending-authorization.js +1 -1
  46. package/dist/src/channel/prompt-queue.d.ts +11 -19
  47. package/dist/src/channel/prompt-queue.js +1 -1
  48. package/dist/src/channel/resolve-text.d.ts +11 -18
  49. package/dist/src/channel/resolve-text.js +2 -2
  50. package/dist/src/channel/resolved-prompt.d.ts +7 -5
  51. package/dist/src/channel/resolved-prompt.js +1 -1
  52. package/dist/src/channel/routes.d.ts +4 -4
  53. package/dist/src/channel/schedule.d.ts +2 -2
  54. package/dist/src/channel/schedule.js +1 -1
  55. package/dist/src/channel/send-input.d.ts +3 -3
  56. package/dist/src/channel/send-input.js +1 -1
  57. package/dist/src/channel/session-callback.js +1 -1
  58. package/dist/src/channel/session-not-active-error.d.ts +8 -12
  59. package/dist/src/channel/session-not-active-error.js +1 -1
  60. package/dist/src/channel/session.d.ts +33 -59
  61. package/dist/src/channel/session.js +1 -1
  62. package/dist/src/channel/sign-in.d.ts +61 -0
  63. package/dist/src/channel/sign-in.js +3 -0
  64. package/dist/src/channel/surface.d.ts +44 -0
  65. package/dist/src/channel/surface.js +1 -0
  66. package/dist/src/channel/task-card.d.ts +24 -114
  67. package/dist/src/channel/task-card.js +1 -1
  68. package/dist/src/channel/types.d.ts +116 -110
  69. package/dist/src/channel/types.js +1 -1
  70. package/dist/src/chunks/use-eve-agent-BbbguIdB.js +5030 -0
  71. package/dist/src/chunks/use-eve-agent-DWjyzplb.js +5077 -0
  72. package/dist/src/cli/commands/logs-events.d.ts +2 -0
  73. package/dist/src/cli/commands/logs-events.js +2 -2
  74. package/dist/src/cli/dev/command.js +1 -1
  75. package/dist/src/cli/dev/remote-print.d.ts +8 -0
  76. package/dist/src/cli/dev/remote-print.js +1 -0
  77. package/dist/src/cli/dev/tui/conversation-view.d.ts +24 -19
  78. package/dist/src/cli/dev/tui/conversation-view.js +1 -1
  79. package/dist/src/cli/dev/tui/diagnostic-presentation.d.ts +0 -10
  80. package/dist/src/cli/dev/tui/diagnostic-presentation.js +2 -3
  81. package/dist/src/cli/dev/tui/errors.d.ts +9 -65
  82. package/dist/src/cli/dev/tui/errors.js +1 -1
  83. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  84. package/dist/src/cli/dev/tui/runner.js +3 -3
  85. package/dist/src/cli/dev/tui/task-records.d.ts +3 -3
  86. package/dist/src/cli/dev/tui/task-records.js +1 -1
  87. package/dist/src/cli/dev/tui/terminal-renderer.js +10 -10
  88. package/dist/src/cli/dev/tui/terminal-tool-part.d.ts +2 -2
  89. package/dist/src/cli/dev/tui/terminal-tool-part.js +1 -1
  90. package/dist/src/cli/dev/tui/test/fake-eve-server.d.ts +3 -3
  91. package/dist/src/cli/dev/tui/test/fake-eve-server.js +1 -1
  92. package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
  93. package/dist/src/cli/dev/tui/transcript-parts.d.ts +16 -16
  94. package/dist/src/cli/dev/tui/transcript-parts.js +3 -3
  95. package/dist/src/cli/dev/tui/transcript.d.ts +0 -4
  96. package/dist/src/cli/dev/tui/transcript.js +1 -1
  97. package/dist/src/cli/dev/tui/tui.js +1 -1
  98. package/dist/src/cli/run.d.ts +0 -2
  99. package/dist/src/cli/run.js +1 -1
  100. package/dist/src/cli/telemetry/index.js +1 -1
  101. package/dist/src/client/agent-base-url.d.ts +4 -0
  102. package/dist/src/client/agent-base-url.js +1 -0
  103. package/dist/src/client/agent-info-schema.d.ts +1 -923
  104. package/dist/src/client/agent-info-schema.js +1 -1
  105. package/dist/src/client/agent-info-types.d.ts +281 -0
  106. package/dist/src/client/agent-session.d.ts +19 -22
  107. package/dist/src/client/agent-session.js +1 -1
  108. package/dist/src/client/agent-stream-follower.d.ts +11 -20
  109. package/dist/src/client/agent-stream-follower.js +1 -1
  110. package/dist/src/client/client-error.d.ts +2 -1
  111. package/dist/src/client/client-error.js +1 -1
  112. package/dist/src/client/client.d.ts +1 -1
  113. package/dist/src/client/client.js +1 -1
  114. package/dist/src/client/conversation-client.d.ts +37 -28
  115. package/dist/src/client/conversation-client.js +1 -1
  116. package/dist/src/client/conversation-state.d.ts +70 -73
  117. package/dist/src/client/conversation-state.js +1 -1
  118. package/dist/src/client/conversation.d.ts +51 -0
  119. package/dist/src/client/conversation.js +1 -0
  120. package/dist/src/client/delivery-events.d.ts +3 -0
  121. package/dist/src/client/delivery-events.js +1 -0
  122. package/dist/src/client/delivery.d.ts +36 -0
  123. package/dist/src/client/delivery.js +1 -0
  124. package/dist/src/client/file-parts.d.ts +9 -4
  125. package/dist/src/client/file-parts.js +1 -1
  126. package/dist/src/client/health-schema.d.ts +1 -1
  127. package/dist/src/client/health-types.d.ts +6 -0
  128. package/dist/src/client/index.d.ts +17 -23
  129. package/dist/src/client/index.js +1 -1
  130. package/dist/src/client/message-types.d.ts +92 -0
  131. package/dist/src/client/message-types.js +1 -0
  132. package/dist/src/client/messages.d.ts +30 -0
  133. package/dist/src/client/messages.js +1 -0
  134. package/dist/src/client/ndjson.d.ts +6 -11
  135. package/dist/src/client/ndjson.js +3 -3
  136. package/dist/src/client/open-stream.d.ts +47 -20
  137. package/dist/src/client/open-stream.js +1 -1
  138. package/dist/src/client/optimistic-message-submissions.d.ts +10 -19
  139. package/dist/src/client/optimistic-message-submissions.js +1 -1
  140. package/dist/src/client/session-controls.d.ts +23 -26
  141. package/dist/src/client/session-controls.js +1 -1
  142. package/dist/src/client/session-event-stream.d.ts +5 -16
  143. package/dist/src/client/session-event-stream.js +1 -1
  144. package/dist/src/client/session-store-helpers.d.ts +8 -0
  145. package/dist/src/client/session-store-helpers.js +2 -0
  146. package/dist/src/client/session-store-state.d.ts +80 -0
  147. package/dist/src/client/session-store-state.js +1 -0
  148. package/dist/src/client/session-store.d.ts +48 -0
  149. package/dist/src/client/session-store.js +1 -0
  150. package/dist/src/client/session-utils.d.ts +45 -41
  151. package/dist/src/client/session-utils.js +2 -1
  152. package/dist/src/client/session.d.ts +32 -23
  153. package/dist/src/client/session.js +1 -1
  154. package/dist/src/client/sessions.d.ts +2 -2
  155. package/dist/src/client/stream-version.d.ts +3 -1
  156. package/dist/src/client/stream-version.js +1 -1
  157. package/dist/src/client/transcript.d.ts +43 -0
  158. package/dist/src/client/transcript.js +2 -0
  159. package/dist/src/client/types.d.ts +21 -82
  160. package/dist/src/client/url.d.ts +3 -3
  161. package/dist/src/compiled/.vendor-stamp.json +1 -1
  162. package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +34 -34
  163. package/dist/src/compiled/@ai-sdk/google/index.d.ts +15 -15
  164. package/dist/src/compiled/@ai-sdk/openai/index.d.ts +38 -38
  165. package/dist/src/compiled/@chat-adapter/slack/fetch-QqNM_Ef3.d.ts +4 -0
  166. package/dist/src/compiled/@chat-adapter/twilio/types-BaIqtt65.d.ts +100 -0
  167. package/dist/src/compiled/@linqapp/chat-sdk-adapter/adapter.d.ts +129 -0
  168. package/dist/src/compiled/@linqapp/chat-sdk-adapter/message-parser.d.ts +14 -0
  169. package/dist/src/compiled/@linqapp/chat-sdk-adapter/text-decorations.d.ts +28 -0
  170. package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +1 -1
  171. package/dist/src/compiled/@workflow/core/serialization/types.d.ts +1 -1
  172. package/dist/src/compiled/@workflow/core/serialization.d.ts +2 -2
  173. package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +2 -2
  174. package/dist/src/compiled/semver/index.d.ts +2 -0
  175. package/dist/src/compiler/development-extensions.js +1 -1
  176. package/dist/src/compiler/extension-compatibility.d.ts +19 -290
  177. package/dist/src/compiler/extension-compatibility.js +1 -1
  178. package/dist/src/compiler/manifest.d.ts +1 -9
  179. package/dist/src/compiler/manifest.js +1 -1
  180. package/dist/src/compiler/normalize-agent-config.js +1 -1
  181. package/dist/src/compiler/normalize-connection.js +1 -1
  182. package/dist/src/compiler/normalize-hook.js +1 -1
  183. package/dist/src/compiler/normalize-instructions.js +1 -1
  184. package/dist/src/compiler/normalize-manifest.js +1 -1
  185. package/dist/src/compiler/normalize-memory.js +1 -1
  186. package/dist/src/compiler/normalize-schedule.js +1 -1
  187. package/dist/src/compiler/normalize-skill.js +1 -1
  188. package/dist/src/compiler/normalize-subagent.d.ts +0 -5
  189. package/dist/src/compiler/normalize-subagent.js +1 -1
  190. package/dist/src/compiler/normalize-tool.js +1 -1
  191. package/dist/src/compiler/remote-agent-node.d.ts +1 -6
  192. package/dist/src/compiler/source-graph.d.ts +0 -1
  193. package/dist/src/compiler/source-graph.js +1 -1
  194. package/dist/src/computer-use/extension/lib/computer-use-sandbox.js +1 -1
  195. package/dist/src/computer-use/extension/lib/sandbox.d.ts +1 -1
  196. package/dist/src/computer-use/extension/lib/sandbox.js +1 -1
  197. package/dist/src/computer-use/extension/tools/computer_use.js +1 -1
  198. package/dist/src/connections/errors.d.ts +3 -3
  199. package/dist/src/context/accessors.d.ts +0 -13
  200. package/dist/src/context/accessors.js +1 -1
  201. package/dist/src/context/container.d.ts +8 -11
  202. package/dist/src/context/container.js +1 -1
  203. package/dist/src/context/key-names.d.ts +1 -0
  204. package/dist/src/context/key-names.js +1 -1
  205. package/dist/src/context/keys.d.ts +20 -104
  206. package/dist/src/context/keys.js +1 -1
  207. package/dist/src/context/memory-tools.d.ts +4 -2
  208. package/dist/src/context/memory-tools.js +1 -1
  209. package/dist/src/context/providers/connection.js +1 -1
  210. package/dist/src/context/providers/session.js +1 -1
  211. package/dist/src/context/schedule-collection-tools.d.ts +2 -2
  212. package/dist/src/context/schedule-collection-tools.js +1 -1
  213. package/dist/src/context/session-context.d.ts +4 -2
  214. package/dist/src/discover/extensions.d.ts +2 -3
  215. package/dist/src/discover/extensions.js +1 -1
  216. package/dist/src/discover/manifest.js +1 -1
  217. package/dist/src/discover/skills.js +1 -1
  218. package/dist/src/dynamic/definition.d.ts +98 -108
  219. package/dist/src/dynamic/definition.js +1 -1
  220. package/dist/src/evals/assertions/collector.js +1 -1
  221. package/dist/src/evals/assertions/run.d.ts +12 -11
  222. package/dist/src/evals/assertions/run.js +2 -2
  223. package/dist/src/evals/assertions/scoped.js +1 -1
  224. package/dist/src/evals/cli/eval-client.js +1 -1
  225. package/dist/src/evals/cli/eval.js +2 -2
  226. package/dist/src/evals/context.js +1 -1
  227. package/dist/src/evals/expect/index.d.ts +0 -1
  228. package/dist/src/evals/index.d.ts +2 -5
  229. package/dist/src/evals/judge.js +1 -1
  230. package/dist/src/evals/match.d.ts +20 -17
  231. package/dist/src/evals/match.js +1 -1
  232. package/dist/src/evals/mock-model.d.ts +5 -1
  233. package/dist/src/evals/mock-model.js +1 -1
  234. package/dist/src/evals/output.d.ts +3 -0
  235. package/dist/src/evals/output.js +1 -0
  236. package/dist/src/evals/reported-tool-name.js +1 -1
  237. package/dist/src/evals/reporters/index.d.ts +4 -4
  238. package/dist/src/evals/reporters/index.js +1 -1
  239. package/dist/src/evals/runner/artifacts.js +1 -1
  240. package/dist/src/evals/runner/derive-run-facts.d.ts +8 -40
  241. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  242. package/dist/src/evals/runner/execute-eval.js +1 -1
  243. package/dist/src/evals/runner/execute-task.d.ts +3 -1
  244. package/dist/src/evals/runner/execute-task.js +1 -1
  245. package/dist/src/evals/runner/reporters/braintrust.d.ts +1 -1
  246. package/dist/src/evals/runner/reporters/braintrust.js +2 -2
  247. package/dist/src/evals/runner/reporters/console.d.ts +1 -1
  248. package/dist/src/evals/runner/reporters/console.js +1 -1
  249. package/dist/src/evals/runner/reporters/datadog.d.ts +1 -1
  250. package/dist/src/evals/runner/reporters/datadog.js +2 -2
  251. package/dist/src/evals/runner/reporters/junit.d.ts +1 -1
  252. package/dist/src/evals/runner/reporters/junit.js +2 -2
  253. package/dist/src/evals/runner/reporters/types.d.ts +2 -2
  254. package/dist/src/evals/runner/run-evals.d.ts +1 -1
  255. package/dist/src/evals/session-cleanup.d.ts +1 -1
  256. package/dist/src/evals/session-cleanup.js +1 -1
  257. package/dist/src/evals/session-content.d.ts +2 -2
  258. package/dist/src/evals/session-content.js +2 -1
  259. package/dist/src/evals/session-manager.d.ts +3 -6
  260. package/dist/src/evals/session-manager.js +1 -1
  261. package/dist/src/evals/session.d.ts +33 -24
  262. package/dist/src/evals/session.js +2 -2
  263. package/dist/src/evals/target.js +1 -1
  264. package/dist/src/evals/types.d.ts +115 -94
  265. package/dist/src/eve-channel/create-request.d.ts +3 -5
  266. package/dist/src/eve-channel/descendant-stream.d.ts +9 -0
  267. package/dist/src/eve-channel/descendant-stream.js +1 -0
  268. package/dist/src/eve-channel/index.d.ts +2 -2
  269. package/dist/src/eve-channel/index.js +1 -1
  270. package/dist/src/eve-channel/request.d.ts +7 -6
  271. package/dist/src/eve-channel/request.js +1 -3
  272. package/dist/src/eve-channel/stream-headers.d.ts +1 -1
  273. package/dist/src/eve-channel/stream-headers.js +1 -1
  274. package/dist/src/eve-channel/support.d.ts +25 -13
  275. package/dist/src/eve-channel/support.js +2 -2
  276. package/dist/src/eve-channel/types.d.ts +7 -30
  277. package/dist/src/execution/agent-sessions/message.d.ts +4 -0
  278. package/dist/src/execution/agent-sessions/message.js +1 -0
  279. package/dist/src/execution/agent-sessions/metadata.js +1 -1
  280. package/dist/src/execution/agent-sessions/remote-credentials.d.ts +19 -0
  281. package/dist/src/execution/agent-sessions/remote-credentials.js +1 -0
  282. package/dist/src/execution/agent-sessions/remote.d.ts +35 -13
  283. package/dist/src/execution/agent-sessions/remote.js +1 -1
  284. package/dist/src/execution/agent-sessions/requests.d.ts +6 -6
  285. package/dist/src/execution/agent-sessions/requests.js +1 -1
  286. package/dist/src/execution/agent-sessions/session.js +1 -1
  287. package/dist/src/execution/agent-sessions/steps.d.ts +26 -4
  288. package/dist/src/execution/agent-sessions/steps.js +1 -1
  289. package/dist/src/execution/agent-sessions/target.d.ts +2 -1
  290. package/dist/src/execution/agent-sessions/target.js +1 -1
  291. package/dist/src/execution/agent-sessions/usage.d.ts +0 -8
  292. package/dist/src/execution/agent-sessions/usage.js +1 -1
  293. package/dist/src/execution/cancelled-model-call-batch.d.ts +4 -2
  294. package/dist/src/execution/cancelled-model-call-batch.js +1 -1
  295. package/dist/src/execution/cancelled-turn-message.d.ts +2 -2
  296. package/dist/src/execution/cancelled-turn-message.js +1 -1
  297. package/dist/src/execution/catalog/connection-auth.js +1 -1
  298. package/dist/src/execution/catalog/connection-entry.js +1 -1
  299. package/dist/src/execution/catalog/rank.js +1 -1
  300. package/dist/src/execution/catalog/search.js +1 -1
  301. package/dist/src/execution/catalog/skills.js +1 -1
  302. package/dist/src/execution/catalog/step-catalog.js +1 -1
  303. package/dist/src/execution/child-binding.d.ts +19 -0
  304. package/dist/src/execution/child-binding.js +1 -0
  305. package/dist/src/execution/close-session-stream-step.d.ts +9 -0
  306. package/dist/src/execution/close-session-stream-step.js +1 -0
  307. package/dist/src/execution/coordination-dispatch-shared.d.ts +13 -3
  308. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  309. package/dist/src/execution/coordination-dispatch-step.d.ts +9 -13
  310. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  311. package/dist/src/execution/deliver-payloads.js +1 -1
  312. package/dist/src/execution/durable-session-store.d.ts +2 -5
  313. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  314. package/dist/src/execution/dynamic-workflow/workflow.js +1 -1
  315. package/dist/src/execution/failure-summary.d.ts +11 -0
  316. package/dist/src/execution/failure-summary.js +1 -0
  317. package/dist/src/execution/forward-session-input.d.ts +2 -2
  318. package/dist/src/execution/forward-session-input.js +1 -1
  319. package/dist/src/execution/invoke-tool.js +1 -1
  320. package/dist/src/execution/legacy-session/prepare-step.js +1 -1
  321. package/dist/src/execution/legacy-session/snapshot.d.ts +4 -1
  322. package/dist/src/execution/legacy-session/snapshot.js +1 -1
  323. package/dist/src/execution/model-call-batching.d.ts +3 -3
  324. package/dist/src/execution/model-call-batching.js +1 -1
  325. package/dist/src/execution/ndjson-stream.d.ts +1 -1
  326. package/dist/src/execution/node-step.d.ts +2 -8
  327. package/dist/src/execution/node-step.js +1 -1
  328. package/dist/src/execution/proxied-deliver-step.d.ts +8 -3
  329. package/dist/src/execution/proxied-deliver-step.js +1 -1
  330. package/dist/src/execution/public-destination.d.ts +34 -0
  331. package/dist/src/execution/public-destination.js +1 -0
  332. package/dist/src/execution/publish-session-events.d.ts +98 -36
  333. package/dist/src/execution/publish-session-events.js +1 -1
  334. package/dist/src/execution/runtime-context.js +1 -1
  335. package/dist/src/execution/sandbox/abort-bound-session.js +1 -1
  336. package/dist/src/execution/sandbox/bash.js +1 -1
  337. package/dist/src/execution/sandbox/bindings/docker-connection.js +1 -1
  338. package/dist/src/execution/sandbox/bindings/docker.js +1 -1
  339. package/dist/src/execution/sandbox/bindings/eve-image.d.ts +0 -2
  340. package/dist/src/execution/sandbox/bindings/eve-image.js +1 -1
  341. package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
  342. package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
  343. package/dist/src/execution/sandbox/ensure.js +1 -1
  344. package/dist/src/{extensions/code/extension/lib → execution/sandbox}/grep-search.d.ts +3 -2
  345. package/dist/src/execution/sandbox/grep-search.js +6 -0
  346. package/dist/src/execution/sandbox/read-file.d.ts +1 -1
  347. package/dist/src/execution/sandbox/session.js +1 -1
  348. package/dist/src/execution/sandbox/workspace-root.d.ts +31 -0
  349. package/dist/src/execution/sandbox/workspace-root.js +1 -0
  350. package/dist/src/execution/session/active-turn.d.ts +12 -6
  351. package/dist/src/execution/session/active-turn.js +1 -1
  352. package/dist/src/execution/session/admission.d.ts +7 -2
  353. package/dist/src/execution/session/admission.js +1 -1
  354. package/dist/src/execution/session/answer-caller.d.ts +4 -4
  355. package/dist/src/execution/session/answer-caller.js +1 -1
  356. package/dist/src/execution/session/checkpoint-migrations.d.ts +4 -6
  357. package/dist/src/execution/session/checkpoint-migrations.js +1 -1
  358. package/dist/src/execution/session/control-delivery.d.ts +4 -0
  359. package/dist/src/execution/session/control-delivery.js +1 -0
  360. package/dist/src/execution/session/delivery-facts.d.ts +27 -0
  361. package/dist/src/execution/session/delivery-facts.js +1 -0
  362. package/dist/src/execution/session/end-sandbox-step.js +1 -1
  363. package/dist/src/execution/session/entry.js +1 -1
  364. package/dist/src/execution/session/finalization.d.ts +4 -0
  365. package/dist/src/execution/session/finalization.js +1 -1
  366. package/dist/src/execution/session/handoff-state.js +1 -1
  367. package/dist/src/execution/session/handoff-steps.d.ts +1 -8
  368. package/dist/src/execution/session/handoff-steps.js +1 -1
  369. package/dist/src/execution/session/handoff.d.ts +5 -3
  370. package/dist/src/execution/session/handoff.js +1 -1
  371. package/dist/src/execution/session/input-queue.d.ts +8 -2
  372. package/dist/src/execution/session/input-queue.js +1 -1
  373. package/dist/src/execution/session/interrupted-step.d.ts +64 -0
  374. package/dist/src/execution/session/interrupted-step.js +3 -0
  375. package/dist/src/execution/session/next-input.d.ts +7 -1
  376. package/dist/src/execution/session/next-input.js +1 -1
  377. package/dist/src/execution/session/pending-turn-state.d.ts +32 -12
  378. package/dist/src/execution/session/pending-turn-state.js +1 -1
  379. package/dist/src/execution/session/prewarm-step.d.ts +1 -1
  380. package/dist/src/execution/session/prewarm-step.js +1 -1
  381. package/dist/src/execution/session/program.js +1 -1
  382. package/dist/src/execution/session/settle-control-delivery-step.d.ts +8 -0
  383. package/dist/src/execution/session/settle-control-delivery-step.js +1 -0
  384. package/dist/src/execution/session/settle-duplicate-delivery-step.d.ts +8 -0
  385. package/dist/src/execution/session/settle-duplicate-delivery-step.js +1 -0
  386. package/dist/src/execution/session/state-delta.d.ts +2 -12
  387. package/dist/src/execution/session/state-delta.js +1 -1
  388. package/dist/src/execution/session/step-decision-check.d.ts +9 -0
  389. package/dist/src/execution/session/step-decision-check.js +1 -0
  390. package/dist/src/execution/session/step-state-delta.d.ts +16 -0
  391. package/dist/src/execution/session/step-state-delta.js +1 -0
  392. package/dist/src/execution/session/task-tool-tracing-step.d.ts +0 -3
  393. package/dist/src/execution/session/task-tool-tracing-step.js +1 -1
  394. package/dist/src/execution/session/turn-event-handler.d.ts +6 -16
  395. package/dist/src/execution/session/turn-event-handler.js +1 -1
  396. package/dist/src/execution/session/turn-step-result.d.ts +7 -2
  397. package/dist/src/execution/session/turn-step-result.js +1 -1
  398. package/dist/src/execution/session/turn-step-types.d.ts +35 -33
  399. package/dist/src/execution/session/turn-step.js +1 -1
  400. package/dist/src/execution/session/turn.d.ts +19 -32
  401. package/dist/src/execution/session/turn.js +1 -1
  402. package/dist/src/execution/session-callback-request.d.ts +7 -1
  403. package/dist/src/execution/session-callback-request.js +1 -1
  404. package/dist/src/execution/session-event-stream.d.ts +37 -16
  405. package/dist/src/execution/session-event-stream.js +1 -1
  406. package/dist/src/execution/session-inbox/end-stranded-session.d.ts +7 -1
  407. package/dist/src/execution/session-inbox/end-stranded-session.js +1 -1
  408. package/dist/src/execution/session-inbox/inbox.js +1 -1
  409. package/dist/src/execution/session-inbox/owner.d.ts +5 -2
  410. package/dist/src/execution/session-inbox/owner.js +1 -1
  411. package/dist/src/execution/session-inbox/pre-v27.d.ts +5 -0
  412. package/dist/src/execution/session-inbox/pre-v27.js +1 -0
  413. package/dist/src/execution/session-inbox/protocol.js +1 -1
  414. package/dist/src/execution/session-inbox/resume.js +1 -1
  415. package/dist/src/execution/session-inbox/stranded-replay-guard.js +1 -1
  416. package/dist/src/execution/session-workflow-tool-run.js +1 -1
  417. package/dist/src/execution/session.d.ts +3 -14
  418. package/dist/src/execution/session.js +2 -2
  419. package/dist/src/execution/settle-cancelled-turn-step.d.ts +3 -0
  420. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  421. package/dist/src/execution/stop-runs.d.ts +35 -0
  422. package/dist/src/execution/stop-runs.js +1 -0
  423. package/dist/src/execution/tasks/model-step.d.ts +5 -9
  424. package/dist/src/execution/tasks/model-step.js +1 -1
  425. package/dist/src/execution/tasks/render.d.ts +5 -2
  426. package/dist/src/execution/tasks/render.js +1 -1
  427. package/dist/src/execution/tasks/session.d.ts +6 -3
  428. package/dist/src/execution/tasks/session.js +1 -1
  429. package/dist/src/execution/tasks/start.d.ts +9 -6
  430. package/dist/src/execution/tasks/start.js +1 -1
  431. package/dist/src/execution/tasks/steps.d.ts +11 -6
  432. package/dist/src/execution/tasks/steps.js +1 -1
  433. package/dist/src/execution/tasks/table.d.ts +18 -5
  434. package/dist/src/execution/tasks/table.js +1 -1
  435. package/dist/src/execution/tasks/task-id-input.js +1 -1
  436. package/dist/src/execution/terminal-session-completion-step.d.ts +11 -1
  437. package/dist/src/execution/terminal-session-completion-step.js +1 -1
  438. package/dist/src/execution/terminal-session-failure-step.d.ts +6 -1
  439. package/dist/src/execution/terminal-session-failure-step.js +1 -1
  440. package/dist/src/execution/terminate-child-sessions-step.d.ts +5 -1
  441. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  442. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  443. package/dist/src/execution/tools/workflow/answer.d.ts +4 -5
  444. package/dist/src/execution/tools/workflow/answer.js +1 -1
  445. package/dist/src/execution/tools/workflow/apply-run-messages-step.d.ts +1 -1
  446. package/dist/src/execution/tools/workflow/apply-run-messages-step.js +1 -1
  447. package/dist/src/execution/tools/workflow/ask.d.ts +3 -3
  448. package/dist/src/execution/tools/workflow/body.js +1 -1
  449. package/dist/src/execution/tools/workflow/harness-definition.js +1 -1
  450. package/dist/src/execution/tools/workflow/messages.d.ts +25 -33
  451. package/dist/src/execution/tools/workflow/messages.js +1 -1
  452. package/dist/src/execution/tools/workflow/owner-inbox.d.ts +9 -5
  453. package/dist/src/execution/tools/workflow/owner-inbox.js +1 -1
  454. package/dist/src/execution/tools/workflow/owner.d.ts +3 -3
  455. package/dist/src/execution/tools/workflow/owner.js +1 -1
  456. package/dist/src/execution/tools/workflow/serve.js +1 -1
  457. package/dist/src/execution/tools/workflow/step.js +1 -1
  458. package/dist/src/execution/tools/workflow/withdraw-step.d.ts +2 -2
  459. package/dist/src/execution/tools/workflow/withdraw-step.js +1 -1
  460. package/dist/src/execution/v26-history.d.ts +28 -0
  461. package/dist/src/execution/v26-history.fixtures.d.ts +4 -0
  462. package/dist/src/execution/v26-history.fixtures.js +2 -0
  463. package/dist/src/execution/v26-history.js +1 -0
  464. package/dist/src/execution/web-fetch/html.js +3 -4
  465. package/dist/src/execution/web-fetch/request.js +1 -1
  466. package/dist/src/execution/workflow-errors.d.ts +5 -0
  467. package/dist/src/execution/workflow-errors.js +1 -1
  468. package/dist/src/execution/workflow-runtime.js +1 -1
  469. package/dist/src/extensions/code/extension/extension.d.ts +1 -11
  470. package/dist/src/extensions/code/extension/extension.js +1 -1
  471. package/dist/src/extensions/code/extension/lib/prwatch-github.d.ts +5 -1
  472. package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
  473. package/dist/src/extensions/code/extension/lib/repository-root.js +1 -1
  474. package/dist/src/extensions/code/extension/lib/sandbox.d.ts +0 -4
  475. package/dist/src/extensions/code/extension/lib/sandbox.js +2 -2
  476. package/dist/src/extensions/code/extension/lib/tooling.d.ts +1 -1
  477. package/dist/src/extensions/code/extension/lib/tooling.js +1 -1
  478. package/dist/src/extensions/code/extension/lib/workspace-root.d.ts +1 -31
  479. package/dist/src/extensions/code/extension/lib/workspace-root.js +1 -1
  480. package/dist/src/extensions/code/extension/subagents/worker/agent.d.ts +1 -1
  481. package/dist/src/extensions/code/extension/subagents/worker/agent.js +1 -1
  482. package/dist/src/extensions/code/extension/tools/apply_patch.js +2 -2
  483. package/dist/src/extensions/code/extension/tools/grep.d.ts +1 -28
  484. package/dist/src/extensions/code/extension/tools/grep.js +1 -1
  485. package/dist/src/extensions/code/sandbox.d.ts +1 -0
  486. package/dist/src/extensions/code/sandbox.js +1 -0
  487. package/dist/src/extensions/code/tools.d.ts +1 -5
  488. package/dist/src/extensions/code/tools.js +1 -1
  489. package/dist/src/extensions/git/extension/extension.d.ts +3 -3
  490. package/dist/src/extensions/git/extension/instructions/github.d.ts +1 -1
  491. package/dist/src/extensions/git/extension/instructions/github.js +1 -1
  492. package/dist/src/extensions/git/extension/lib/gh-tool.d.ts +2 -11
  493. package/dist/src/extensions/git/extension/lib/gh-tool.js +1 -1
  494. package/dist/src/extensions/git/extension/lib/github-shell.d.ts +13 -3
  495. package/dist/src/extensions/git/extension/lib/sandbox.d.ts +0 -4
  496. package/dist/src/extensions/git/extension/lib/sandbox.js +1 -1
  497. package/dist/src/extensions/git/extension/skills/pr.d.ts +1 -4
  498. package/dist/src/extensions/git/extension/skills/pr.js +1 -1
  499. package/dist/src/extensions/git/extension/tools/gh.d.ts +1 -26
  500. package/dist/src/extensions/git/extension/tools/gh.js +1 -1
  501. package/dist/src/framework/sources/modules/schedule-collection-wrapper.js +1 -1
  502. package/dist/src/harness/action-presentation.d.ts +3 -5
  503. package/dist/src/harness/action-presentation.js +1 -1
  504. package/dist/src/harness/action-result-helpers.d.ts +2 -8
  505. package/dist/src/harness/action-result-helpers.js +1 -1
  506. package/dist/src/harness/approval-outcome.d.ts +32 -0
  507. package/dist/src/harness/approval-outcome.js +1 -0
  508. package/dist/src/harness/attachment-staging.js +1 -1
  509. package/dist/src/harness/authorization.d.ts +2 -3
  510. package/dist/src/harness/authorization.js +1 -1
  511. package/dist/src/harness/call-executor.d.ts +118 -0
  512. package/dist/src/harness/call-executor.js +1 -0
  513. package/dist/src/harness/call-facts.d.ts +31 -0
  514. package/dist/src/harness/call-facts.js +1 -0
  515. package/dist/src/harness/call-outcome.d.ts +6 -0
  516. package/dist/src/harness/call-outcome.js +1 -0
  517. package/dist/src/harness/compaction/engine.d.ts +11 -0
  518. package/dist/src/harness/compaction/engine.js +2 -2
  519. package/dist/src/harness/compaction/over-limit-error.d.ts +7 -0
  520. package/dist/src/harness/compaction/over-limit-error.js +1 -0
  521. package/dist/src/harness/compaction/prompt.js +1 -1
  522. package/dist/src/harness/compaction/step.d.ts +34 -5
  523. package/dist/src/harness/compaction/step.js +1 -1
  524. package/dist/src/harness/coordination.js +1 -1
  525. package/dist/src/harness/current-messages.d.ts +10 -0
  526. package/dist/src/harness/current-messages.js +1 -1
  527. package/dist/src/harness/emission.d.ts +9 -15
  528. package/dist/src/harness/emission.js +1 -1
  529. package/dist/src/harness/execute-call.d.ts +6 -23
  530. package/dist/src/harness/execute-call.js +1 -1
  531. package/dist/src/harness/execute-tool.d.ts +7 -3
  532. package/dist/src/harness/facts.d.ts +82 -0
  533. package/dist/src/harness/facts.js +1 -0
  534. package/dist/src/harness/finish-reason.d.ts +6 -1
  535. package/dist/src/harness/generation-steering.d.ts +4 -2
  536. package/dist/src/harness/generation-steering.js +1 -1
  537. package/dist/src/harness/hitl/approval-prompt.d.ts +3 -3
  538. package/dist/src/harness/hitl/approval-prompt.js +3 -3
  539. package/dist/src/harness/hitl/approvals.d.ts +66 -78
  540. package/dist/src/harness/hitl/approvals.js +2 -1
  541. package/dist/src/harness/hitl/approved-calls.d.ts +14 -36
  542. package/dist/src/harness/hitl/approved-calls.js +1 -1
  543. package/dist/src/harness/hitl/budget-request.d.ts +8 -46
  544. package/dist/src/harness/hitl/budget-request.js +1 -1
  545. package/dist/src/harness/hitl/budget.d.ts +9 -8
  546. package/dist/src/harness/hitl/budget.js +1 -1
  547. package/dist/src/harness/hitl/delivery.d.ts +16 -17
  548. package/dist/src/harness/hitl/delivery.js +1 -1
  549. package/dist/src/harness/hitl/index.d.ts +14 -19
  550. package/dist/src/harness/hitl/index.js +1 -1
  551. package/dist/src/harness/hitl/intake.d.ts +32 -43
  552. package/dist/src/harness/hitl/intake.js +1 -1
  553. package/dist/src/harness/hitl/relays.d.ts +7 -51
  554. package/dist/src/harness/hitl/relays.js +1 -1
  555. package/dist/src/harness/hitl/requests.d.ts +11 -53
  556. package/dist/src/harness/hitl/requests.js +1 -1
  557. package/dist/src/harness/hitl/responders.d.ts +50 -0
  558. package/dist/src/harness/hitl/responders.js +1 -0
  559. package/dist/src/harness/hitl/sign-ins.d.ts +7 -3
  560. package/dist/src/harness/hitl/sign-ins.js +1 -1
  561. package/dist/src/harness/hitl/stale-responses.d.ts +11 -11
  562. package/dist/src/harness/hitl/stale-responses.js +3 -3
  563. package/dist/src/harness/inline-tool-authorization.d.ts +8 -9
  564. package/dist/src/harness/inline-tool-authorization.js +1 -1
  565. package/dist/src/harness/interaction-facts.d.ts +36 -0
  566. package/dist/src/harness/interaction-facts.js +1 -0
  567. package/dist/src/harness/interaction-relay.d.ts +10 -0
  568. package/dist/src/harness/interaction-relay.js +1 -0
  569. package/dist/src/harness/interrupted-attempt.d.ts +19 -0
  570. package/dist/src/harness/interrupted-attempt.js +2 -0
  571. package/dist/src/harness/messages.d.ts +28 -15
  572. package/dist/src/harness/messages.js +1 -1
  573. package/dist/src/harness/model-call/call.d.ts +31 -13
  574. package/dist/src/harness/model-call/call.js +1 -1
  575. package/dist/src/harness/model-call/errors.js +1 -1
  576. package/dist/src/harness/model-call/failure.d.ts +10 -48
  577. package/dist/src/harness/model-call/failure.js +1 -1
  578. package/dist/src/harness/model-call/model.js +1 -1
  579. package/dist/src/harness/model-call/recovery.d.ts +4 -32
  580. package/dist/src/harness/model-call/recovery.js +1 -1
  581. package/dist/src/harness/model-call/request.d.ts +0 -1
  582. package/dist/src/harness/model-call/request.js +1 -1
  583. package/dist/src/harness/model-call/response.d.ts +22 -12
  584. package/dist/src/harness/model-call/response.js +1 -1
  585. package/dist/src/harness/model-call/retry.d.ts +23 -6
  586. package/dist/src/harness/model-call/retry.js +1 -1
  587. package/dist/src/harness/model-call/run.d.ts +4 -12
  588. package/dist/src/harness/model-call/run.js +1 -1
  589. package/dist/src/harness/model-call/tools.d.ts +0 -19
  590. package/dist/src/harness/model-call/tools.js +1 -1
  591. package/dist/src/harness/model-call/unique-call-ids.d.ts +13 -0
  592. package/dist/src/harness/model-call/unique-call-ids.js +1 -0
  593. package/dist/src/harness/model-call/usage.d.ts +7 -5
  594. package/dist/src/harness/model-call/usage.js +1 -1
  595. package/dist/src/harness/ordered-stream-emitter.d.ts +1 -0
  596. package/dist/src/harness/ordered-stream-emitter.js +1 -1
  597. package/dist/src/harness/provider-tool-history.js +1 -1
  598. package/dist/src/harness/publication.d.ts +4 -0
  599. package/dist/src/harness/publication.js +1 -0
  600. package/dist/src/harness/request-envelope.d.ts +0 -3
  601. package/dist/src/harness/request-envelope.js +1 -1
  602. package/dist/src/harness/running-work.d.ts +10 -0
  603. package/dist/src/harness/running-work.js +1 -0
  604. package/dist/src/harness/session-machine/cascade.d.ts +17 -0
  605. package/dist/src/harness/session-machine/cascade.js +1 -0
  606. package/dist/src/harness/session-machine/commit.d.ts +16 -16
  607. package/dist/src/harness/session-machine/commit.js +1 -1
  608. package/dist/src/harness/session-machine/current.d.ts +25 -9
  609. package/dist/src/harness/session-machine/current.js +1 -1
  610. package/dist/src/harness/session-machine/state.d.ts +43 -16
  611. package/dist/src/harness/session-machine/state.js +1 -1
  612. package/dist/src/harness/session-machine/suspended-steps.d.ts +22 -0
  613. package/dist/src/harness/session-machine/suspended-steps.js +1 -0
  614. package/dist/src/harness/session-machine/transitions.d.ts +144 -120
  615. package/dist/src/harness/session-machine/transitions.js +1 -1
  616. package/dist/src/harness/session-machine/view.d.ts +12 -8
  617. package/dist/src/harness/session-machine/view.js +1 -1
  618. package/dist/src/harness/session-machine/waiting.d.ts +16 -0
  619. package/dist/src/harness/session-machine/waiting.js +1 -0
  620. package/dist/src/harness/session-usage.d.ts +22 -0
  621. package/dist/src/harness/session-usage.js +1 -0
  622. package/dist/src/harness/step/after-model.d.ts +1 -4
  623. package/dist/src/harness/step/after-model.js +1 -1
  624. package/dist/src/harness/step/context.d.ts +21 -21
  625. package/dist/src/harness/step/context.js +1 -1
  626. package/dist/src/harness/step/intake.d.ts +7 -8
  627. package/dist/src/harness/step/intake.js +1 -1
  628. package/dist/src/harness/step/park.d.ts +19 -0
  629. package/dist/src/harness/step/park.js +1 -0
  630. package/dist/src/harness/step/prompt.d.ts +4 -5
  631. package/dist/src/harness/step/prompt.js +1 -1
  632. package/dist/src/harness/step-hooks.d.ts +24 -24
  633. package/dist/src/harness/step-hooks.js +1 -1
  634. package/dist/src/harness/stream-actions.d.ts +3 -9
  635. package/dist/src/harness/stream-actions.js +1 -1
  636. package/dist/src/harness/token-estimate.js +1 -1
  637. package/dist/src/harness/tool-history-repair.js +1 -1
  638. package/dist/src/harness/tool-loop.js +1 -1
  639. package/dist/src/harness/tools.d.ts +22 -38
  640. package/dist/src/harness/tools.js +1 -1
  641. package/dist/src/harness/types.d.ts +69 -67
  642. package/dist/src/harness/user-parts.d.ts +4 -0
  643. package/dist/src/harness/user-parts.js +1 -0
  644. package/dist/src/harness/workflow-tool-runs.d.ts +0 -1
  645. package/dist/src/harness/workflow-tool-runs.js +1 -1
  646. package/dist/src/instrumentation/ai-sdk-hook-bridge.d.ts +2 -2
  647. package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
  648. package/dist/src/instrumentation/channel-delivery.d.ts +4 -23
  649. package/dist/src/instrumentation/channel-delivery.js +1 -1
  650. package/dist/src/instrumentation/content.d.ts +1 -7
  651. package/dist/src/instrumentation/content.js +1 -1
  652. package/dist/src/instrumentation/dispatch.js +1 -1
  653. package/dist/src/instrumentation/lifecycle.d.ts +135 -198
  654. package/dist/src/instrumentation/lifecycle.js +1 -1
  655. package/dist/src/instrumentation/memory.d.ts +4 -2
  656. package/dist/src/instrumentation/memory.js +1 -1
  657. package/dist/src/instrumentation/native-events.d.ts +17 -10
  658. package/dist/src/instrumentation/native-events.js +1 -1
  659. package/dist/src/instrumentation/prepare-trace-context.d.ts +3 -3
  660. package/dist/src/instrumentation/provider.d.ts +20 -28
  661. package/dist/src/instrumentation/providers.js +1 -1
  662. package/dist/src/instrumentation/runtime-context.d.ts +1 -0
  663. package/dist/src/instrumentation/runtime-context.js +1 -1
  664. package/dist/src/instrumentation/runtime.d.ts +9 -30
  665. package/dist/src/instrumentation/runtime.js +1 -1
  666. package/dist/src/instrumentation/scope.d.ts +6 -0
  667. package/dist/src/instrumentation/scope.js +1 -0
  668. package/dist/src/instrumentation/session-context.d.ts +1 -1
  669. package/dist/src/instrumentation/session-context.js +1 -1
  670. package/dist/src/instrumentation/session-init.js +1 -1
  671. package/dist/src/instrumentation/setup-context.d.ts +2 -2
  672. package/dist/src/instrumentation/setup-context.js +1 -1
  673. package/dist/src/instrumentation/state.d.ts +0 -21
  674. package/dist/src/instrumentation/state.js +1 -1
  675. package/dist/src/internal/application/dev-environment.d.ts +8 -2
  676. package/dist/src/internal/application/dev-environment.js +1 -1
  677. package/dist/src/internal/application/optional-package-install.js +1 -1
  678. package/dist/src/internal/application/stamped-package-version.js +1 -1
  679. package/dist/src/internal/authored-asset-import-plugin.d.ts +8 -7
  680. package/dist/src/internal/authored-asset-import-plugin.js +1 -1
  681. package/dist/src/internal/authored-definition/approval.d.ts +2 -4
  682. package/dist/src/internal/authored-definition/approval.js +1 -1
  683. package/dist/src/internal/authored-definition/connection.js +1 -1
  684. package/dist/src/internal/authored-definition/core.d.ts +1 -1
  685. package/dist/src/internal/authored-definition/core.js +1 -1
  686. package/dist/src/internal/authored-definition/memory.js +1 -1
  687. package/dist/src/internal/authored-definition/schema-backed.d.ts +0 -3
  688. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  689. package/dist/src/internal/authored-module-loader.d.ts +0 -1
  690. package/dist/src/internal/authored-module-loader.js +1 -1
  691. package/dist/src/internal/authored-package-boundary.js +1 -1
  692. package/dist/src/internal/git.d.ts +2 -0
  693. package/dist/src/internal/git.js +1 -0
  694. package/dist/src/internal/grep.d.ts +1 -0
  695. package/dist/src/internal/grep.js +1 -0
  696. package/dist/src/internal/helpers/markdown.js +1 -1
  697. package/dist/src/internal/invocation/agent-invocation.d.ts +16 -19
  698. package/dist/src/internal/invocation/metadata.d.ts +0 -2
  699. package/dist/src/internal/invocation/metadata.js +1 -1
  700. package/dist/src/internal/invocation/workflow-execution.d.ts +4 -4
  701. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  702. package/dist/src/internal/legacy-events.d.ts +5 -0
  703. package/dist/src/internal/legacy-events.js +1 -0
  704. package/dist/src/internal/logging.d.ts +0 -12
  705. package/dist/src/internal/logging.js +1 -1
  706. package/dist/src/internal/mcp/protected-resource.js +1 -1
  707. package/dist/src/internal/mcp/published-tools.js +1 -1
  708. package/dist/src/internal/model-auth/api-key.js +1 -1
  709. package/dist/src/internal/model-auth/development-broker-client.js +1 -1
  710. package/dist/src/internal/model-auth/development-broker-server.js +1 -1
  711. package/dist/src/internal/model-auth/transport.js +1 -1
  712. package/dist/src/internal/nitro/dev-client-address.d.ts +12 -0
  713. package/dist/src/internal/nitro/dev-client-address.js +1 -1
  714. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  715. package/dist/src/internal/nitro/dev-runtime-generation-metadata.js +1 -1
  716. package/dist/src/internal/nitro/host/build-extension.js +2 -2
  717. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  718. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  719. package/dist/src/internal/nitro/host/dev-server-state.js +1 -1
  720. package/dist/src/internal/nitro/host/drained-nitro-dev-server.js +1 -1
  721. package/dist/src/internal/nitro/host/start-development-server.js +1 -1
  722. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  723. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  724. package/dist/src/internal/nitro/routes/channel-request-instrumentation.d.ts +6 -3
  725. package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
  726. package/dist/src/internal/nitro/routes/channel-route-context.d.ts +8 -1
  727. package/dist/src/internal/nitro/routes/info.js +1 -1
  728. package/dist/src/internal/nitro/routes/schedule-task.js +1 -1
  729. package/dist/src/internal/scaffold.d.ts +5 -0
  730. package/dist/src/internal/scaffold.js +1 -0
  731. package/dist/src/internal/workflow/cancel-expired-development-run.js +1 -1
  732. package/dist/src/internal/workflow/development-world-client.js +1 -1
  733. package/dist/src/internal/workflow/development-world-server.js +1 -1
  734. package/dist/src/internal/workflow/local-world-data-directory.js +1 -1
  735. package/dist/src/internal/workspace.d.ts +1 -0
  736. package/dist/src/internal/workspace.js +1 -0
  737. package/dist/src/models/auto.d.ts +27 -14
  738. package/dist/src/models/auto.js +2 -2
  739. package/dist/src/protocol/delivery.d.ts +11 -0
  740. package/dist/src/protocol/delivery.js +1 -0
  741. package/dist/src/protocol/descendant-observation.d.ts +12 -0
  742. package/dist/src/protocol/descendant-observation.js +1 -0
  743. package/dist/src/protocol/interaction-json.d.ts +66 -0
  744. package/dist/src/protocol/interaction-json.js +1 -0
  745. package/dist/src/protocol/interaction-options.d.ts +4 -0
  746. package/dist/src/protocol/interaction-options.js +1 -0
  747. package/dist/src/protocol/remote-agent-protocol.d.ts +28 -1
  748. package/dist/src/protocol/remote-agent-protocol.js +1 -1
  749. package/dist/src/protocol/routes.d.ts +3 -2
  750. package/dist/src/protocol/routes.js +1 -1
  751. package/dist/src/protocol/session-event.d.ts +22 -0
  752. package/dist/src/protocol/session-event.js +1 -0
  753. package/dist/src/protocol/session-events/authoring.d.ts +2 -0
  754. package/dist/src/protocol/session-events/authoring.js +1 -0
  755. package/dist/src/protocol/session-events/catalog.d.ts +50 -0
  756. package/dist/src/protocol/session-events/catalog.js +1 -0
  757. package/dist/src/protocol/session-events/checker.d.ts +23 -0
  758. package/dist/src/protocol/session-events/checker.js +1 -0
  759. package/dist/src/protocol/session-events/common.d.ts +105 -0
  760. package/dist/src/protocol/session-events/common.js +1 -0
  761. package/dist/src/protocol/session-events/envelope.d.ts +174 -0
  762. package/dist/src/protocol/session-events/envelope.js +1 -0
  763. package/dist/src/protocol/session-events/facts.d.ts +24 -0
  764. package/dist/src/protocol/session-events/facts.js +1 -0
  765. package/dist/src/protocol/session-events/families/call.d.ts +142 -0
  766. package/dist/src/protocol/session-events/families/call.js +1 -0
  767. package/dist/src/protocol/session-events/families/child.d.ts +51 -0
  768. package/dist/src/protocol/session-events/families/child.js +1 -0
  769. package/dist/src/protocol/session-events/families/content.d.ts +56 -0
  770. package/dist/src/protocol/session-events/families/content.js +1 -0
  771. package/dist/src/protocol/session-events/families/context.d.ts +55 -0
  772. package/dist/src/protocol/session-events/families/context.js +1 -0
  773. package/dist/src/protocol/session-events/families/delivery.d.ts +86 -0
  774. package/dist/src/protocol/session-events/families/delivery.js +1 -0
  775. package/dist/src/protocol/session-events/families/interaction.d.ts +163 -0
  776. package/dist/src/protocol/session-events/families/interaction.js +1 -0
  777. package/dist/src/protocol/session-events/families/model.d.ts +88 -0
  778. package/dist/src/protocol/session-events/families/model.js +1 -0
  779. package/dist/src/protocol/session-events/families/response.d.ts +66 -0
  780. package/dist/src/protocol/session-events/families/response.js +1 -0
  781. package/dist/src/protocol/session-events/families/session.d.ts +73 -0
  782. package/dist/src/protocol/session-events/families/session.js +1 -0
  783. package/dist/src/protocol/session-events/families/task.d.ts +46 -0
  784. package/dist/src/protocol/session-events/families/task.js +1 -0
  785. package/dist/src/protocol/session-events/families/turn.d.ts +68 -0
  786. package/dist/src/protocol/session-events/families/turn.js +1 -0
  787. package/dist/src/protocol/session-events/families/usage.d.ts +30 -0
  788. package/dist/src/protocol/session-events/families/usage.js +1 -0
  789. package/dist/src/protocol/session-events/guards.d.ts +11 -0
  790. package/dist/src/protocol/session-events/guards.js +1 -0
  791. package/dist/src/protocol/session-events/index.d.ts +16 -0
  792. package/dist/src/protocol/session-events/index.js +1 -0
  793. package/dist/src/protocol/session-events/json.d.ts +20 -0
  794. package/dist/src/protocol/session-events/json.js +1 -0
  795. package/dist/src/protocol/session-events/schemas.d.ts +320 -0
  796. package/dist/src/protocol/session-events/schemas.js +1 -0
  797. package/dist/src/protocol/session-http.d.ts +7 -0
  798. package/dist/src/protocol/session-http.js +1 -0
  799. package/dist/src/protocol/session-lines.d.ts +19 -0
  800. package/dist/src/protocol/session-lines.js +1 -0
  801. package/dist/src/protocol/session-projection/fold.d.ts +75 -0
  802. package/dist/src/protocol/session-projection/fold.js +1 -0
  803. package/dist/src/protocol/session-projection/index.d.ts +4 -0
  804. package/dist/src/protocol/session-projection/index.js +1 -0
  805. package/dist/src/protocol/session-projection/observations.d.ts +150 -0
  806. package/dist/src/protocol/session-projection/observations.js +1 -0
  807. package/dist/src/protocol/session-projection/public-view.d.ts +74 -0
  808. package/dist/src/protocol/session-projection/public-view.js +1 -0
  809. package/dist/src/protocol/session-projection/reader.d.ts +62 -0
  810. package/dist/src/protocol/session-projection/reader.js +1 -0
  811. package/dist/src/protocol/session-projection/request-status.d.ts +7 -0
  812. package/dist/src/protocol/session-projection/request-status.js +1 -0
  813. package/dist/src/protocol/session-projection/selectors.d.ts +169 -0
  814. package/dist/src/protocol/session-projection/selectors.js +2 -0
  815. package/dist/src/protocol/session-projection/session-view.d.ts +18 -0
  816. package/dist/src/protocol/session-projection/session-view.js +1 -0
  817. package/dist/src/protocol/session-projection/tables.d.ts +237 -0
  818. package/dist/src/protocol/session-projection/tables.js +1 -0
  819. package/dist/src/protocol/session-projection/tree.d.ts +72 -0
  820. package/dist/src/protocol/session-projection/tree.js +1 -0
  821. package/dist/src/protocol/session-projection.d.ts +38 -157
  822. package/dist/src/protocol/session-projection.js +1 -1
  823. package/dist/src/protocol/task-tools.d.ts +8 -6
  824. package/dist/src/protocol/task-tools.js +1 -1
  825. package/dist/src/protocol/v26-interactions.d.ts +11 -0
  826. package/dist/src/protocol/v26-interactions.js +1 -0
  827. package/dist/src/protocol/v26-lines.d.ts +5 -0
  828. package/dist/src/protocol/v26-lines.js +1 -0
  829. package/dist/src/public/agents/auth.d.ts +2 -2
  830. package/dist/src/public/agents/auth.js +1 -1
  831. package/dist/src/public/ai/index.d.ts +1 -0
  832. package/dist/src/public/channels/auth.d.ts +2 -518
  833. package/dist/src/public/channels/auth.js +1 -1
  834. package/dist/src/public/channels/chat-sdk/authorization.d.ts +5 -2
  835. package/dist/src/public/channels/chat-sdk/authorization.js +1 -3
  836. package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +16 -11
  837. package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -3
  838. package/dist/src/public/channels/chat-sdk/index.d.ts +1 -1
  839. package/dist/src/public/channels/chat-sdk/index.js +1 -1
  840. package/dist/src/public/channels/chat-sdk/input-actions.d.ts +4 -4
  841. package/dist/src/public/channels/chat-sdk/input-actions.js +3 -3
  842. package/dist/src/public/channels/chat-sdk/{messageToUserContent.d.ts → message-content.d.ts} +3 -3
  843. package/dist/src/public/channels/chat-sdk/message-content.js +1 -0
  844. package/dist/src/public/channels/discord/api.d.ts +8 -11
  845. package/dist/src/public/channels/discord/api.js +1 -1
  846. package/dist/src/public/channels/discord/attachments.d.ts +2 -2
  847. package/dist/src/public/channels/discord/authorization.d.ts +3 -13
  848. package/dist/src/public/channels/discord/authorization.js +2 -2
  849. package/dist/src/public/channels/discord/credentials.d.ts +11 -0
  850. package/dist/src/public/channels/discord/credentials.js +1 -0
  851. package/dist/src/public/channels/discord/defaults.d.ts +7 -1
  852. package/dist/src/public/channels/discord/defaults.js +1 -3
  853. package/dist/src/public/channels/discord/discordChannel.d.ts +36 -48
  854. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  855. package/dist/src/public/channels/discord/hitl.d.ts +5 -4
  856. package/dist/src/public/channels/discord/hitl.js +1 -1
  857. package/dist/src/public/channels/discord/index.d.ts +4 -12
  858. package/dist/src/public/channels/discord/index.js +1 -1
  859. package/dist/src/public/channels/discord/messages.js +1 -1
  860. package/dist/src/public/channels/github/defaults.js +2 -4
  861. package/dist/src/public/channels/github/githubChannel.d.ts +23 -36
  862. package/dist/src/public/channels/github/githubChannel.js +1 -1
  863. package/dist/src/public/channels/github/index.d.ts +3 -2
  864. package/dist/src/public/channels/github/index.js +1 -1
  865. package/dist/src/public/channels/github/state.d.ts +2 -0
  866. package/dist/src/public/channels/imessage-tapbacks.d.ts +1 -1
  867. package/dist/src/public/channels/index.d.ts +16 -37
  868. package/dist/src/public/channels/index.js +1 -1
  869. package/dist/src/public/channels/linear/defaults.js +2 -4
  870. package/dist/src/public/channels/linear/hitl.d.ts +3 -3
  871. package/dist/src/public/channels/linear/hitl.js +2 -2
  872. package/dist/src/public/channels/linear/inbound-uploads.d.ts +3 -3
  873. package/dist/src/public/channels/linear/inbound-uploads.js +1 -1
  874. package/dist/src/public/channels/linear/inbound.d.ts +5 -3
  875. package/dist/src/public/channels/linear/inbound.js +1 -1
  876. package/dist/src/public/channels/linear/index.d.ts +4 -6
  877. package/dist/src/public/channels/linear/index.js +1 -1
  878. package/dist/src/public/channels/linear/linearChannel.d.ts +19 -30
  879. package/dist/src/public/channels/linear/linearChannel.js +1 -1
  880. package/dist/src/public/channels/linq/inboundContent.d.ts +2 -2
  881. package/dist/src/public/channels/linq/inboundContent.js +1 -1
  882. package/dist/src/public/channels/linq/index.d.ts +1 -1
  883. package/dist/src/public/channels/linq/linqChannel.d.ts +1 -2
  884. package/dist/src/public/channels/mcp.d.ts +2 -2
  885. package/dist/src/public/channels/mcp.js +1 -1
  886. package/dist/src/public/channels/photon/inboundContent.d.ts +2 -2
  887. package/dist/src/public/channels/photon/inboundContent.js +1 -1
  888. package/dist/src/public/channels/photon/index.d.ts +1 -1
  889. package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +1 -2
  890. package/dist/src/public/channels/reply.d.ts +22 -0
  891. package/dist/src/public/channels/reply.js +3 -0
  892. package/dist/src/public/channels/slack/action-status.js +1 -1
  893. package/dist/src/public/channels/slack/{input-response.d.ts → answers.d.ts} +5 -5
  894. package/dist/src/public/channels/slack/answers.js +1 -0
  895. package/dist/src/public/channels/slack/api.d.ts +5 -2
  896. package/dist/src/public/channels/slack/api.js +1 -1
  897. package/dist/src/public/channels/slack/approval-cards.d.ts +15 -5
  898. package/dist/src/public/channels/slack/approval-cards.js +2 -2
  899. package/dist/src/public/channels/slack/attachments.d.ts +6 -6
  900. package/dist/src/public/channels/slack/attachments.js +1 -1
  901. package/dist/src/public/channels/slack/blocks.d.ts +1 -1
  902. package/dist/src/public/channels/slack/blocks.js +1 -1
  903. package/dist/src/public/channels/slack/cards.d.ts +576 -0
  904. package/dist/src/public/channels/slack/cards.js +1 -0
  905. package/dist/src/public/channels/slack/connections.d.ts +4 -22
  906. package/dist/src/public/channels/slack/connections.js +1 -1
  907. package/dist/src/public/channels/slack/defaults.d.ts +13 -2
  908. package/dist/src/public/channels/slack/defaults.js +5 -5
  909. package/dist/src/public/channels/slack/hitl.d.ts +20 -19
  910. package/dist/src/public/channels/slack/hitl.js +3 -3
  911. package/dist/src/public/channels/slack/index.d.ts +7 -16
  912. package/dist/src/public/channels/slack/index.js +1 -1
  913. package/dist/src/public/channels/slack/interaction-cards.js +1 -1
  914. package/dist/src/public/channels/slack/interactions.d.ts +2 -2
  915. package/dist/src/public/channels/slack/interactions.js +1 -1
  916. package/dist/src/public/channels/slack/limits.js +1 -1
  917. package/dist/src/public/channels/slack/private-approval-delivery.d.ts +3 -3
  918. package/dist/src/public/channels/slack/private-approval-delivery.js +1 -1
  919. package/dist/src/public/channels/slack/renderers.d.ts +21 -27
  920. package/dist/src/public/channels/slack/renderers.js +1 -1
  921. package/dist/src/public/channels/slack/reply-delivery.d.ts +5 -11
  922. package/dist/src/public/channels/slack/reply-delivery.js +1 -1
  923. package/dist/src/public/channels/slack/session-operations.d.ts +4 -4
  924. package/dist/src/public/channels/slack/sign-in-cancel.js +1 -1
  925. package/dist/src/public/channels/slack/slackChannel.d.ts +32 -43
  926. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  927. package/dist/src/public/channels/slack/task-card.d.ts +9 -9
  928. package/dist/src/public/channels/slack/task-card.js +1 -1
  929. package/dist/src/public/channels/teams/api.d.ts +3 -7
  930. package/dist/src/public/channels/teams/attachments.d.ts +4 -4
  931. package/dist/src/public/channels/teams/authorization.d.ts +5 -9
  932. package/dist/src/public/channels/teams/authorization.js +1 -1
  933. package/dist/src/public/channels/teams/credentials.d.ts +13 -0
  934. package/dist/src/public/channels/teams/credentials.js +1 -0
  935. package/dist/src/public/channels/teams/defaults.d.ts +2 -6
  936. package/dist/src/public/channels/teams/defaults.js +1 -3
  937. package/dist/src/public/channels/teams/hitl.d.ts +8 -7
  938. package/dist/src/public/channels/teams/hitl.js +1 -1
  939. package/dist/src/public/channels/teams/index.d.ts +6 -8
  940. package/dist/src/public/channels/teams/index.js +1 -1
  941. package/dist/src/public/channels/teams/teamsChannel.d.ts +25 -44
  942. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  943. package/dist/src/public/channels/telegram/api.d.ts +3 -4
  944. package/dist/src/public/channels/telegram/attachments.d.ts +5 -5
  945. package/dist/src/public/channels/telegram/authorization-callback.js +1 -1
  946. package/dist/src/public/channels/telegram/authorization.d.ts +4 -8
  947. package/dist/src/public/channels/telegram/authorization.js +2 -2
  948. package/dist/src/public/channels/telegram/credentials.d.ts +9 -0
  949. package/dist/src/public/channels/telegram/credentials.js +1 -0
  950. package/dist/src/public/channels/telegram/defaults.js +1 -3
  951. package/dist/src/public/channels/telegram/hitl.d.ts +22 -20
  952. package/dist/src/public/channels/telegram/hitl.js +2 -2
  953. package/dist/src/public/channels/telegram/index.d.ts +5 -7
  954. package/dist/src/public/channels/telegram/index.js +1 -1
  955. package/dist/src/public/channels/telegram/telegramChannel.d.ts +23 -36
  956. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  957. package/dist/src/public/channels/text.d.ts +4 -0
  958. package/dist/src/public/channels/text.js +1 -0
  959. package/dist/src/public/channels/twilio/api.d.ts +8 -8
  960. package/dist/src/public/channels/twilio/api.js +1 -1
  961. package/dist/src/public/channels/twilio/credentials.d.ts +7 -0
  962. package/dist/src/public/channels/twilio/credentials.js +1 -0
  963. package/dist/src/public/channels/twilio/defaults.d.ts +0 -1
  964. package/dist/src/public/channels/twilio/defaults.js +1 -5
  965. package/dist/src/public/channels/twilio/inbound.d.ts +2 -2
  966. package/dist/src/public/channels/twilio/index.d.ts +4 -4
  967. package/dist/src/public/channels/twilio/index.js +1 -1
  968. package/dist/src/public/channels/twilio/twilioChannel.d.ts +24 -37
  969. package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
  970. package/dist/src/public/channels/twilio/verify.d.ts +6 -4
  971. package/dist/src/public/channels/undelivered-reply.d.ts +30 -0
  972. package/dist/src/public/channels/undelivered-reply.js +1 -0
  973. package/dist/src/public/channels/upload-policy.d.ts +7 -7
  974. package/dist/src/public/connections/index.d.ts +3 -5
  975. package/dist/src/public/context/index.d.ts +3 -2
  976. package/dist/src/public/definitions/agent.d.ts +18 -18
  977. package/dist/src/public/definitions/agent.js +1 -1
  978. package/dist/src/public/definitions/approval.d.ts +1 -1
  979. package/dist/src/public/definitions/channel.d.ts +57 -60
  980. package/dist/src/public/definitions/channel.js +1 -1
  981. package/dist/src/public/definitions/connections/dynamic.d.ts +3 -15
  982. package/dist/src/public/definitions/connections/dynamic.js +1 -1
  983. package/dist/src/public/definitions/connections/events.d.ts +9 -9
  984. package/dist/src/public/definitions/connections/mcp.d.ts +5 -3
  985. package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
  986. package/dist/src/public/definitions/extension.d.ts +2 -4
  987. package/dist/src/public/definitions/extension.js +1 -1
  988. package/dist/src/public/definitions/hook.d.ts +63 -85
  989. package/dist/src/public/definitions/hook.js +1 -1
  990. package/dist/src/public/definitions/instructions.d.ts +3 -10
  991. package/dist/src/public/definitions/instructions.js +1 -1
  992. package/dist/src/public/definitions/model.d.ts +21 -0
  993. package/dist/src/public/definitions/model.js +1 -0
  994. package/dist/src/public/definitions/removed-event-keys.d.ts +2 -0
  995. package/dist/src/public/definitions/removed-event-keys.js +1 -0
  996. package/dist/src/public/definitions/sandbox.d.ts +1 -1
  997. package/dist/src/public/definitions/schedule.d.ts +4 -4
  998. package/dist/src/public/definitions/skill.d.ts +5 -0
  999. package/dist/src/public/definitions/skill.js +1 -1
  1000. package/dist/src/public/events/index.d.ts +27 -0
  1001. package/dist/src/public/events/index.js +1 -0
  1002. package/dist/src/public/experimental/connections/index.d.ts +1 -0
  1003. package/dist/src/public/experimental/connections/index.js +1 -0
  1004. package/dist/src/public/experimental/schedules/client.js +1 -1
  1005. package/dist/src/public/hooks/index.d.ts +4 -3
  1006. package/dist/src/public/index.d.ts +3 -2
  1007. package/dist/src/public/instructions/index.d.ts +2 -2
  1008. package/dist/src/public/instrumentation/index.d.ts +9 -28
  1009. package/dist/src/public/instrumentation/index.js +1 -1
  1010. package/dist/src/public/instrumentation/otel.d.ts +1 -1
  1011. package/dist/src/public/instrumentation/otel.js +1 -1
  1012. package/dist/src/public/instrumentation/provider.d.ts +1 -1
  1013. package/dist/src/public/instrumentation/provider.js +1 -1
  1014. package/dist/src/public/local-dev.d.ts +3 -1
  1015. package/dist/src/public/memory/file/backend.d.ts +1 -1
  1016. package/dist/src/public/memory/file/backends/in-memory.js +1 -1
  1017. package/dist/src/public/memory/file/backends/vercel-blob.js +1 -1
  1018. package/dist/src/public/memory/file/provider.js +1 -1
  1019. package/dist/src/public/memory/index.d.ts +14 -20
  1020. package/dist/src/public/models/index.d.ts +3 -0
  1021. package/dist/src/public/models/index.js +1 -1
  1022. package/dist/src/public/models/openai/index.d.ts +0 -2
  1023. package/dist/src/public/models/openai/index.js +1 -1
  1024. package/dist/src/public/next/index.d.ts +5 -36
  1025. package/dist/src/public/next/index.js +1 -1
  1026. package/dist/src/public/nuxt/index.d.ts +1 -1
  1027. package/dist/src/public/nuxt/module.d.ts +5 -2
  1028. package/dist/src/public/sandbox/index.d.ts +1 -1
  1029. package/dist/src/public/sandbox/vercel-sandbox.d.ts +52 -12
  1030. package/dist/src/public/sandbox/vercel.d.ts +1 -1
  1031. package/dist/src/public/schedules/subscription.d.ts +5 -8
  1032. package/dist/src/public/server/index.d.ts +2 -14
  1033. package/dist/src/public/server/index.js +1 -1
  1034. package/dist/src/public/sessions/index.d.ts +6 -0
  1035. package/dist/src/public/sessions/index.js +1 -0
  1036. package/dist/src/public/skills/index.d.ts +2 -2
  1037. package/dist/src/public/skills/index.js +1 -1
  1038. package/dist/src/public/sveltekit/routing.d.ts +0 -4
  1039. package/dist/src/public/sveltekit/routing.js +1 -1
  1040. package/dist/src/public/tools/approval/index.d.ts +1 -1
  1041. package/dist/src/public/tools/bash.d.ts +1 -1
  1042. package/dist/src/public/tools/bash.js +1 -1
  1043. package/dist/src/public/tools/glob.d.ts +1 -1
  1044. package/dist/src/public/tools/glob.js +1 -1
  1045. package/dist/src/public/tools/grep.d.ts +1 -1
  1046. package/dist/src/public/tools/grep.js +1 -1
  1047. package/dist/src/public/tools/index.d.ts +5 -9
  1048. package/dist/src/public/tools/index.js +1 -1
  1049. package/dist/src/public/tools/read-file.d.ts +1 -1
  1050. package/dist/src/public/tools/read-file.js +1 -1
  1051. package/dist/src/public/tools/result.d.ts +17 -9
  1052. package/dist/src/public/tools/result.js +1 -1
  1053. package/dist/src/public/tools/web-fetch.d.ts +1 -1
  1054. package/dist/src/public/tools/web-fetch.js +1 -1
  1055. package/dist/src/public/tools/web-search.d.ts +1 -3
  1056. package/dist/src/public/tools/web-search.js +1 -1
  1057. package/dist/src/public/tools/write-file.d.ts +1 -1
  1058. package/dist/src/public/tools/write-file.js +1 -1
  1059. package/dist/src/public/workflow-modules.d.ts +8 -2
  1060. package/dist/src/react/index.d.ts +4 -7
  1061. package/dist/src/react/index.js +1 -1
  1062. package/dist/src/react/use-eve-agent.d.ts +68 -50
  1063. package/dist/src/react/use-eve-agent.js +1 -1
  1064. package/dist/src/reactions/bundle.d.ts +4 -0
  1065. package/dist/src/reactions/bundle.js +1 -0
  1066. package/dist/src/reactions/frame.d.ts +13 -0
  1067. package/dist/src/reactions/frame.js +1 -0
  1068. package/dist/src/reactions/intents.d.ts +22 -0
  1069. package/dist/src/reactions/intents.js +1 -0
  1070. package/dist/src/reactions/kinds/connection.d.ts +18 -0
  1071. package/dist/src/reactions/kinds/connection.js +1 -0
  1072. package/dist/src/reactions/kinds/hook.d.ts +8 -0
  1073. package/dist/src/reactions/kinds/hook.js +1 -0
  1074. package/dist/src/reactions/kinds/instructions.d.ts +21 -0
  1075. package/dist/src/reactions/kinds/instructions.js +1 -0
  1076. package/dist/src/reactions/kinds/memory.d.ts +72 -0
  1077. package/dist/src/reactions/kinds/memory.js +1 -0
  1078. package/dist/src/reactions/kinds/model.d.ts +21 -0
  1079. package/dist/src/reactions/kinds/model.js +1 -0
  1080. package/dist/src/reactions/kinds/skill.d.ts +27 -0
  1081. package/dist/src/reactions/kinds/skill.js +1 -0
  1082. package/dist/src/reactions/kinds/subagent.d.ts +16 -0
  1083. package/dist/src/reactions/kinds/subagent.js +1 -0
  1084. package/dist/src/reactions/kinds/tool.d.ts +16 -0
  1085. package/dist/src/reactions/kinds/tool.js +1 -0
  1086. package/dist/src/reactions/policy.d.ts +13 -0
  1087. package/dist/src/reactions/policy.js +1 -0
  1088. package/dist/src/reactions/reaction.d.ts +83 -0
  1089. package/dist/src/reactions/reaction.js +1 -0
  1090. package/dist/src/reactions/records.d.ts +40 -0
  1091. package/dist/src/reactions/records.js +1 -0
  1092. package/dist/src/reactions/remote.d.ts +25 -0
  1093. package/dist/src/reactions/remote.js +1 -0
  1094. package/dist/src/reactions/runner.d.ts +45 -0
  1095. package/dist/src/reactions/runner.js +1 -0
  1096. package/dist/src/reactions/state.d.ts +102 -0
  1097. package/dist/src/reactions/state.js +1 -0
  1098. package/dist/src/reactions/turn.d.ts +12 -0
  1099. package/dist/src/reactions/turn.js +2 -0
  1100. package/dist/src/runtime/agent/bootstrap.d.ts +1 -3
  1101. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  1102. package/dist/src/runtime/agent/resolve-model.js +1 -1
  1103. package/dist/src/runtime/connections/mcp-client.d.ts +5 -2
  1104. package/dist/src/runtime/connections/mcp-client.js +1 -1
  1105. package/dist/src/runtime/connections/openapi-client.js +1 -1
  1106. package/dist/src/runtime/connections/openapi-operations.d.ts +4 -0
  1107. package/dist/src/runtime/connections/openapi-operations.js +1 -1
  1108. package/dist/src/runtime/connections/openapi-schema.d.ts +19 -14
  1109. package/dist/src/runtime/connections/openapi-schema.js +1 -1
  1110. package/dist/src/runtime/connections/principal.d.ts +2 -0
  1111. package/dist/src/runtime/connections/principal.js +1 -1
  1112. package/dist/src/runtime/connections/registry.d.ts +2 -2
  1113. package/dist/src/runtime/connections/registry.js +1 -1
  1114. package/dist/src/runtime/connections/scoped-authorization.d.ts +8 -1
  1115. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  1116. package/dist/src/runtime/graph.d.ts +0 -6
  1117. package/dist/src/runtime/local-dev-capability.d.ts +4 -5
  1118. package/dist/src/runtime/local-dev-capability.js +1 -1
  1119. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  1120. package/dist/src/runtime/resolve-agent.js +1 -1
  1121. package/dist/src/runtime/resolve-connection.js +1 -1
  1122. package/dist/src/runtime/resolve-dynamic.d.ts +9 -0
  1123. package/dist/src/runtime/resolve-dynamic.js +1 -0
  1124. package/dist/src/runtime/resolve-hook.js +1 -1
  1125. package/dist/src/runtime/resolve-memory.js +1 -1
  1126. package/dist/src/runtime/resolve-tool.js +1 -1
  1127. package/dist/src/runtime/schedules/collection-client.js +1 -1
  1128. package/dist/src/runtime/schedules/dispatch-occurrence.js +1 -1
  1129. package/dist/src/runtime/sessions/compiled-agent-cache.d.ts +0 -2
  1130. package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
  1131. package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
  1132. package/dist/src/runtime/subagents/dynamic-remote-agent-config.d.ts +16 -3
  1133. package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
  1134. package/dist/src/runtime/subagents/workflow.js +1 -1
  1135. package/dist/src/runtime/types.d.ts +22 -39
  1136. package/dist/src/sandbox/provider.d.ts +3 -3
  1137. package/dist/src/sandbox/providers/default.d.ts +4 -2
  1138. package/dist/src/sandbox/providers/default.js +1 -1
  1139. package/dist/src/self-modification/agent.d.ts +3 -3
  1140. package/dist/src/self-modification/agent.js +1 -1
  1141. package/dist/src/self-modification/config.d.ts +1 -1
  1142. package/dist/src/self-modification/config.js +1 -1
  1143. package/dist/src/self-modification/deployed-sandbox.js +1 -1
  1144. package/dist/src/self-modification/extension/extension.d.ts +1 -0
  1145. package/dist/src/self-modification/extension/local-only.d.ts +1 -1
  1146. package/dist/src/self-modification/extension/local-only.js +1 -1
  1147. package/dist/src/self-modification/extension/subagents/agent/agent.d.ts +15 -4
  1148. package/dist/src/self-modification/extension/subagents/agent/agent.js +1 -1
  1149. package/dist/src/self-modification/extension/subagents/agent/instructions.d.ts +1 -1
  1150. package/dist/src/self-modification/extension/subagents/agent/instructions.js +2 -2
  1151. package/dist/src/self-modification/extension/subagents/agent/sandbox.d.ts +2 -2
  1152. package/dist/src/self-modification/extension/subagents/agent/sandbox.js +1 -1
  1153. package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.d.ts +3 -3
  1154. package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.js +1 -1
  1155. package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace.d.ts +1 -1
  1156. package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace_spans.d.ts +1 -1
  1157. package/dist/src/self-modification/extension/subagents/agent/tools/registry_add.d.ts +1 -1
  1158. package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.d.ts +1 -1
  1159. package/dist/src/self-modification/mode.d.ts +8 -0
  1160. package/dist/src/self-modification/mode.js +1 -1
  1161. package/dist/src/self-modification/remote/config.d.ts +3 -6
  1162. package/dist/src/self-modification/remote/extension.d.ts +1 -0
  1163. package/dist/src/self-modification/remote/production-registry-add.js +1 -1
  1164. package/dist/src/self-modification/remote/subagents/agent/agent.d.ts +6 -3
  1165. package/dist/src/self-modification/remote/subagents/agent/agent.js +1 -1
  1166. package/dist/src/self-modification/remote/subagents/agent/instructions.d.ts +1 -1
  1167. package/dist/src/self-modification/remote/subagents/agent/instructions.js +2 -2
  1168. package/dist/src/self-modification/remote/subagents/agent/tools/publish.d.ts +1 -3
  1169. package/dist/src/self-modification/remote/subagents/agent/tools/publish.js +1 -1
  1170. package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.d.ts +1 -3
  1171. package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.js +1 -1
  1172. package/dist/src/self-modification/scaffold.js +1 -1
  1173. package/dist/src/self-modification/setup.js +3 -6
  1174. package/dist/src/services/dev-client/client-options.js +1 -1
  1175. package/dist/src/services/dev-client.d.ts +4 -4
  1176. package/dist/src/services/dev-client.js +1 -1
  1177. package/dist/src/setup/integrations/self-modification/setup.d.ts +1 -4
  1178. package/dist/src/setup/integrations/self-modification/setup.js +1 -1
  1179. package/dist/src/setup/scaffold/create/project.js +1 -1
  1180. package/dist/src/setup/scaffold/create/web-template.d.ts +9 -18
  1181. package/dist/src/setup/scaffold/create/web-template.js +1015 -2537
  1182. package/dist/src/setup/verified-remote-agent.js +1 -1
  1183. package/dist/src/shared/action-label.d.ts +5 -3
  1184. package/dist/src/shared/action-label.js +1 -1
  1185. package/dist/src/shared/action-types.d.ts +5 -0
  1186. package/dist/src/shared/action-types.js +1 -1
  1187. package/dist/src/shared/agent-definition.d.ts +14 -9
  1188. package/dist/src/shared/answers-delivery-id.d.ts +1 -0
  1189. package/dist/src/shared/answers-delivery-id.js +1 -0
  1190. package/dist/src/shared/channel-context.d.ts +12 -0
  1191. package/dist/src/shared/channel-context.js +1 -0
  1192. package/dist/src/shared/channel-definition.d.ts +19 -26
  1193. package/dist/src/shared/channel-delivery.d.ts +16 -0
  1194. package/dist/src/shared/channel-delivery.js +1 -0
  1195. package/dist/src/shared/connection-events.d.ts +2 -2
  1196. package/dist/src/shared/connection-types.d.ts +12 -32
  1197. package/dist/src/shared/conversation-context.d.ts +4 -13
  1198. package/dist/src/shared/delivery.d.ts +38 -0
  1199. package/dist/src/shared/delivery.js +1 -0
  1200. package/dist/src/shared/history-message.d.ts +190 -0
  1201. package/dist/src/shared/history-message.js +1 -0
  1202. package/dist/src/shared/input.d.ts +23 -97
  1203. package/dist/src/shared/input.js +1 -1
  1204. package/dist/src/shared/instructions-definition.d.ts +2 -8
  1205. package/dist/src/shared/instrumentation-channel-kind.d.ts +1 -1
  1206. package/dist/src/shared/instrumentation-channel.d.ts +12 -0
  1207. package/dist/src/shared/instrumentation-channel.js +1 -0
  1208. package/dist/src/shared/json.d.ts +2 -18
  1209. package/dist/src/shared/memory-state.d.ts +4 -40
  1210. package/dist/src/shared/memory-state.js +1 -1
  1211. package/dist/src/shared/message-content.d.ts +19 -0
  1212. package/dist/src/shared/message-content.js +1 -0
  1213. package/dist/src/shared/network-address.d.ts +9 -0
  1214. package/dist/src/shared/network-address.js +1 -1
  1215. package/dist/src/shared/sandbox-environment.d.ts +2 -2
  1216. package/dist/src/shared/sandbox-provider.d.ts +1 -1
  1217. package/dist/src/shared/sandbox-session.d.ts +60 -85
  1218. package/dist/src/shared/schedule-definition.d.ts +5 -5
  1219. package/dist/src/shared/serialized-observability-state.d.ts +0 -2
  1220. package/dist/src/shared/serialized-observability-state.js +1 -1
  1221. package/dist/src/shared/session-history.d.ts +2 -2
  1222. package/dist/src/shared/session.d.ts +22 -0
  1223. package/dist/src/shared/session.js +1 -0
  1224. package/dist/src/shared/skill-definition.d.ts +1 -1
  1225. package/dist/src/shared/skill-package.d.ts +2 -2
  1226. package/dist/src/shared/skill-package.js +1 -1
  1227. package/dist/src/shared/token-usage-math.d.ts +5 -0
  1228. package/dist/src/shared/token-usage-math.js +1 -0
  1229. package/dist/src/shared/token-usage.d.ts +0 -2
  1230. package/dist/src/shared/token-usage.js +1 -1
  1231. package/dist/src/shared/validate-authorization.js +1 -1
  1232. package/dist/src/shared/wait-with-signal.d.ts +2 -0
  1233. package/dist/src/shared/wait-with-signal.js +1 -0
  1234. package/dist/src/subagents/adapter.d.ts +3 -5
  1235. package/dist/src/subagents/adapter.js +1 -1
  1236. package/dist/src/subagents/callback-route.js +1 -1
  1237. package/dist/src/subagents/event-proxy-step.d.ts +6 -9
  1238. package/dist/src/subagents/event-proxy-step.js +1 -1
  1239. package/dist/src/subagents/hitl-proxy.d.ts +11 -23
  1240. package/dist/src/subagents/hitl-proxy.js +1 -1
  1241. package/dist/src/subagents/invocation.d.ts +8 -8
  1242. package/dist/src/subagents/invocation.js +2 -2
  1243. package/dist/src/subagents/parent-notification.d.ts +5 -0
  1244. package/dist/src/subagents/parent-notification.js +1 -1
  1245. package/dist/src/subagents/protocol-two-callback.d.ts +27 -0
  1246. package/dist/src/subagents/protocol-two-callback.js +1 -0
  1247. package/dist/src/svelte/index.d.ts +3 -6
  1248. package/dist/src/svelte/index.js +2 -39
  1249. package/dist/src/svelte/use-eve-agent.d.ts +67 -56
  1250. package/dist/src/svelte/use-eve-agent.js +1 -1
  1251. package/dist/src/tool-stubs/rules.js +1 -1
  1252. package/dist/src/tools/approval/policies.d.ts +4 -16
  1253. package/dist/src/tools/approval/policies.js +1 -1
  1254. package/dist/src/tools/auth.d.ts +3 -3
  1255. package/dist/src/tools/definition.d.ts +13 -35
  1256. package/dist/src/tools/definition.js +1 -1
  1257. package/dist/src/tools/dynamic.d.ts +13 -72
  1258. package/dist/src/tools/dynamic.js +1 -1
  1259. package/dist/src/tools/framework/agent.js +1 -1
  1260. package/dist/src/tools/provided/ask-question-workflow.d.ts +3 -3
  1261. package/dist/src/tools/provided/ask-question-workflow.js +1 -1
  1262. package/dist/src/tools/provided/ask-question.d.ts +2 -2
  1263. package/dist/src/tools/provided/ask-question.js +1 -1
  1264. package/dist/src/tools/provided/grep.d.ts +2 -15
  1265. package/dist/src/tools/provided/grep.js +1 -2
  1266. package/dist/src/tools/provided/no-reply.d.ts +2 -2
  1267. package/dist/src/tools/provided/no-reply.js +1 -1
  1268. package/dist/src/tools/provided/sleep-workflow.js +1 -1
  1269. package/dist/src/tools/provided/sleep.d.ts +2 -2
  1270. package/dist/src/tools/provided/sleep.js +1 -1
  1271. package/dist/src/tools/provided/workflow.js +1 -1
  1272. package/dist/src/tools/schema.d.ts +2 -0
  1273. package/dist/src/tools/schema.js +1 -1
  1274. package/dist/src/tools/signature.js +1 -1
  1275. package/dist/src/tools/workflow-definition.d.ts +17 -15
  1276. package/dist/src/tracing/eve/agent-approval-instrumentation.d.ts +1 -1
  1277. package/dist/src/tracing/eve/agent-approval-instrumentation.js +1 -1
  1278. package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.d.ts +2 -2
  1279. package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.js +1 -1
  1280. package/dist/src/tracing/eve/agent-invocation-coordinator.d.ts +2 -2
  1281. package/dist/src/tracing/eve/agent-otel-provider.js +1 -1
  1282. package/dist/src/tracing/eve/agent-tool-instrumentation.d.ts +6 -7
  1283. package/dist/src/tracing/eve/agent-tool-instrumentation.js +1 -1
  1284. package/dist/src/tracing/eve/agent-trace-context-store.d.ts +3 -3
  1285. package/dist/src/tracing/eve/agent-trace-state.d.ts +1 -6
  1286. package/dist/src/tracing/eve/delegation.d.ts +4 -4
  1287. package/dist/src/tracing/eve/install-instrumentation-runtime.js +1 -1
  1288. package/dist/src/tracing/eve/invoke-tool-span.d.ts +3 -2
  1289. package/dist/src/tracing/eve/invoke-tool-span.js +1 -1
  1290. package/dist/src/tracing/eve/otel-declaration.d.ts +9 -10
  1291. package/dist/src/tracing/eve/otel-declaration.js +1 -1
  1292. package/dist/src/tracing/eve/policy.d.ts +2 -2
  1293. package/dist/src/tracing/eve/policy.js +1 -1
  1294. package/dist/src/tracing/eve/session.d.ts +4 -3
  1295. package/dist/src/tracing/eve/session.js +1 -1
  1296. package/dist/src/vue/index.d.ts +3 -6
  1297. package/dist/src/vue/index.js +2 -39
  1298. package/dist/src/vue/use-eve-agent.d.ts +70 -59
  1299. package/dist/src/vue/use-eve-agent.js +1 -1
  1300. package/docs/agent-config.md +40 -44
  1301. package/docs/channels/chat-sdk.mdx +19 -13
  1302. package/docs/channels/custom.mdx +106 -85
  1303. package/docs/channels/discord.mdx +12 -12
  1304. package/docs/channels/eve.mdx +48 -15
  1305. package/docs/channels/github.mdx +2 -2
  1306. package/docs/channels/linear.mdx +8 -8
  1307. package/docs/channels/linq.mdx +1 -1
  1308. package/docs/channels/mcp.mdx +2 -2
  1309. package/docs/channels/overview.mdx +11 -1
  1310. package/docs/channels/photon.mdx +1 -1
  1311. package/docs/channels/slack.mdx +65 -58
  1312. package/docs/channels/teams.mdx +4 -4
  1313. package/docs/channels/telegram.mdx +1 -1
  1314. package/docs/channels/twilio.mdx +2 -2
  1315. package/docs/code-extension.mdx +19 -7
  1316. package/docs/concepts/built-in-tools.md +21 -9
  1317. package/docs/concepts/context-control.md +5 -8
  1318. package/docs/concepts/default-harness.md +8 -9
  1319. package/docs/concepts/execution-model-and-durability.mdx +119 -12
  1320. package/docs/concepts/meta.json +1 -0
  1321. package/docs/concepts/sessions-runs-and-streaming.md +244 -138
  1322. package/docs/concepts/state.md +1 -1
  1323. package/docs/concepts/upgrade-to-v27-events.md +128 -0
  1324. package/docs/connections/mcp.mdx +38 -34
  1325. package/docs/connections/openapi.mdx +24 -3
  1326. package/docs/connections/overview.mdx +66 -57
  1327. package/docs/evals/assertions.mdx +30 -24
  1328. package/docs/evals/cases.mdx +19 -24
  1329. package/docs/evals/judge.mdx +2 -2
  1330. package/docs/evals/overview.mdx +7 -7
  1331. package/docs/evals/reporters.mdx +15 -11
  1332. package/docs/evals/targets.mdx +5 -3
  1333. package/docs/evals/tool-stubs.mdx +2 -2
  1334. package/docs/extensions.md +6 -3
  1335. package/docs/guides/auth-and-route-protection.md +4 -0
  1336. package/docs/guides/client/continuations.mdx +10 -10
  1337. package/docs/guides/client/messages.mdx +50 -48
  1338. package/docs/guides/client/output-schema.mdx +13 -13
  1339. package/docs/guides/client/overview.mdx +12 -12
  1340. package/docs/guides/client/streaming.mdx +160 -123
  1341. package/docs/guides/decide.md +15 -9
  1342. package/docs/guides/deployment/self-hosting.md +5 -40
  1343. package/docs/guides/dynamic-capabilities.md +151 -406
  1344. package/docs/guides/frontend/nextjs.mdx +1 -1
  1345. package/docs/guides/frontend/nuxt.mdx +2 -2
  1346. package/docs/guides/frontend/overview.mdx +257 -181
  1347. package/docs/guides/frontend/sveltekit.mdx +4 -4
  1348. package/docs/guides/frontend/tanstack.mdx +5 -5
  1349. package/docs/guides/frontend/use-eve-agent-svelte.mdx +30 -38
  1350. package/docs/guides/frontend/use-eve-agent-vue.mdx +35 -36
  1351. package/docs/guides/hooks.md +67 -55
  1352. package/docs/guides/instrumentation/instrumentation.mdx +33 -27
  1353. package/docs/guides/instrumentation/otel.mdx +4 -2
  1354. package/docs/guides/remote-agents.md +116 -50
  1355. package/docs/guides/self-modification.md +11 -7
  1356. package/docs/instructions.mdx +4 -6
  1357. package/docs/memory/custom-provider.md +63 -56
  1358. package/docs/memory/file.md +1 -1
  1359. package/docs/memory/overview.mdx +10 -18
  1360. package/docs/patterns/durable-cross-channel-notifications.md +4 -3
  1361. package/docs/patterns/multi-tenant-approvals.md +3 -3
  1362. package/docs/patterns/multi-tenant-auth.md +3 -3
  1363. package/docs/patterns/multi-tenant-memory.md +6 -7
  1364. package/docs/patterns/voice-notes.md +1 -1
  1365. package/docs/reference/cli.md +11 -25
  1366. package/docs/reference/typescript-api.md +88 -61
  1367. package/docs/sandbox/custom-providers.mdx +13 -14
  1368. package/docs/sandbox/default.mdx +1 -1
  1369. package/docs/sandbox/docker.mdx +10 -0
  1370. package/docs/sandbox/index.mdx +4 -0
  1371. package/docs/sandbox/vercel.mdx +6 -6
  1372. package/docs/schedules.mdx +4 -4
  1373. package/docs/skills.mdx +6 -6
  1374. package/docs/subagents/index.mdx +25 -34
  1375. package/docs/tools/human-in-the-loop.md +42 -34
  1376. package/docs/tools/overview.mdx +14 -12
  1377. package/docs/tools/tasks-upgrade.md +13 -1
  1378. package/docs/tools/tasks.md +58 -89
  1379. package/docs/tools/workflows.mdx +44 -33
  1380. package/docs/tutorial/guard-the-spend.mdx +1 -1
  1381. package/docs/tutorial/run-analysis.mdx +15 -12
  1382. package/docs/tutorial/team-playbooks.mdx +19 -23
  1383. package/package.json +148 -93
  1384. package/dist/src/chunks/use-eve-agent-DnbG9c7c.js +0 -4921
  1385. package/dist/src/chunks/use-eve-agent-ZY7NQ2VW.js +0 -4963
  1386. package/dist/src/cli/invoke/command.d.ts +0 -19
  1387. package/dist/src/cli/invoke/command.js +0 -1
  1388. package/dist/src/cli/invoke/invoke.d.ts +0 -27
  1389. package/dist/src/cli/invoke/invoke.js +0 -1
  1390. package/dist/src/cli/invoke/result.d.ts +0 -137
  1391. package/dist/src/cli/invoke/result.js +0 -1
  1392. package/dist/src/client/agent-host.d.ts +0 -4
  1393. package/dist/src/client/agent-host.js +0 -1
  1394. package/dist/src/client/authorization-message-parts.d.ts +0 -4
  1395. package/dist/src/client/authorization-message-parts.js +0 -1
  1396. package/dist/src/client/conversation-projection.d.ts +0 -4
  1397. package/dist/src/client/conversation-projection.js +0 -1
  1398. package/dist/src/client/conversation-reducer.d.ts +0 -29
  1399. package/dist/src/client/conversation-reducer.js +0 -1
  1400. package/dist/src/client/eve-agent-projection.d.ts +0 -28
  1401. package/dist/src/client/eve-agent-projection.js +0 -1
  1402. package/dist/src/client/eve-agent-store-helpers.d.ts +0 -34
  1403. package/dist/src/client/eve-agent-store-helpers.js +0 -2
  1404. package/dist/src/client/eve-agent-store-state.d.ts +0 -96
  1405. package/dist/src/client/eve-agent-store.d.ts +0 -45
  1406. package/dist/src/client/eve-agent-store.js +0 -1
  1407. package/dist/src/client/message-action-parts.d.ts +0 -37
  1408. package/dist/src/client/message-action-parts.js +0 -1
  1409. package/dist/src/client/message-reducer-primitives.d.ts +0 -6
  1410. package/dist/src/client/message-reducer-primitives.js +0 -1
  1411. package/dist/src/client/message-reducer-types.d.ts +0 -244
  1412. package/dist/src/client/message-reducer.d.ts +0 -14
  1413. package/dist/src/client/message-reducer.js +0 -1
  1414. package/dist/src/client/message-response.d.ts +0 -74
  1415. package/dist/src/client/message-response.js +0 -1
  1416. package/dist/src/client/message-run-parts.d.ts +0 -22
  1417. package/dist/src/client/message-run-parts.js +0 -1
  1418. package/dist/src/client/output-schema.d.ts +0 -5
  1419. package/dist/src/client/output-schema.js +0 -1
  1420. package/dist/src/client/reducer.d.ts +0 -67
  1421. package/dist/src/client/session-turn-dispatch.d.ts +0 -15
  1422. package/dist/src/client/session-turn-dispatch.js +0 -1
  1423. package/dist/src/client/tool-call-state.d.ts +0 -23
  1424. package/dist/src/client/tool-call-state.js +0 -1
  1425. package/dist/src/client/tool-part-state.d.ts +0 -7
  1426. package/dist/src/client/tool-part-state.js +0 -1
  1427. package/dist/src/client/transcript-reducer.d.ts +0 -49
  1428. package/dist/src/client/transcript-reducer.js +0 -2
  1429. package/dist/src/context/build-dynamic-tools.d.ts +0 -10
  1430. package/dist/src/context/build-dynamic-tools.js +0 -1
  1431. package/dist/src/context/dynamic-connection-lifecycle.d.ts +0 -15
  1432. package/dist/src/context/dynamic-connection-lifecycle.js +0 -1
  1433. package/dist/src/context/dynamic-instruction-lifecycle.d.ts +0 -31
  1434. package/dist/src/context/dynamic-instruction-lifecycle.js +0 -1
  1435. package/dist/src/context/dynamic-model-lifecycle.d.ts +0 -19
  1436. package/dist/src/context/dynamic-model-lifecycle.js +0 -1
  1437. package/dist/src/context/dynamic-resolve-context.d.ts +0 -12
  1438. package/dist/src/context/dynamic-resolve-context.js +0 -1
  1439. package/dist/src/context/dynamic-skill-lifecycle.d.ts +0 -15
  1440. package/dist/src/context/dynamic-skill-lifecycle.js +0 -1
  1441. package/dist/src/context/dynamic-subagent-lifecycle.d.ts +0 -27
  1442. package/dist/src/context/dynamic-subagent-lifecycle.js +0 -1
  1443. package/dist/src/context/dynamic-tool-lifecycle.d.ts +0 -46
  1444. package/dist/src/context/dynamic-tool-lifecycle.js +0 -1
  1445. package/dist/src/context/dynamic-tool-metadata.d.ts +0 -47
  1446. package/dist/src/context/dynamic-tool-metadata.js +0 -1
  1447. package/dist/src/context/effective-model.d.ts +0 -5
  1448. package/dist/src/context/effective-model.js +0 -1
  1449. package/dist/src/context/hook-lifecycle.d.ts +0 -15
  1450. package/dist/src/context/hook-lifecycle.js +0 -1
  1451. package/dist/src/context/memory-event-lifecycle.d.ts +0 -15
  1452. package/dist/src/context/memory-event-lifecycle.js +0 -1
  1453. package/dist/src/context/memory-lifecycle.d.ts +0 -47
  1454. package/dist/src/context/memory-lifecycle.js +0 -1
  1455. package/dist/src/context/serialized-dynamic-model-selection.d.ts +0 -2
  1456. package/dist/src/context/serialized-dynamic-model-selection.js +0 -1
  1457. package/dist/src/execution/cancel-descendant-turns-step.d.ts +0 -6
  1458. package/dist/src/execution/cancel-descendant-turns-step.js +0 -1
  1459. package/dist/src/execution/dynamic-connection-recovery.d.ts +0 -14
  1460. package/dist/src/execution/dynamic-connection-recovery.js +0 -1
  1461. package/dist/src/execution/dynamic-connections.d.ts +0 -12
  1462. package/dist/src/execution/dynamic-connections.js +0 -1
  1463. package/dist/src/execution/history-view.d.ts +0 -10
  1464. package/dist/src/execution/history-view.js +0 -1
  1465. package/dist/src/execution/legacy-remote-agent/protocol.d.ts +0 -49
  1466. package/dist/src/execution/legacy-remote-agent/protocol.js +0 -1
  1467. package/dist/src/execution/runtime-errors.d.ts +0 -13
  1468. package/dist/src/execution/runtime-errors.js +0 -1
  1469. package/dist/src/execution/sandbox/grep-tool.d.ts +0 -26
  1470. package/dist/src/execution/sandbox/grep-tool.js +0 -3
  1471. package/dist/src/execution/session/turn-waiting-step.d.ts +0 -4
  1472. package/dist/src/execution/session/turn-waiting-step.js +0 -1
  1473. package/dist/src/execution/tools/workflow/cancel.d.ts +0 -13
  1474. package/dist/src/execution/tools/workflow/cancel.js +0 -1
  1475. package/dist/src/execution/workflow-trace-context.d.ts +0 -8
  1476. package/dist/src/execution/workflow-trace-context.js +0 -1
  1477. package/dist/src/extensions/code/extension/instructions/github.d.ts +0 -3
  1478. package/dist/src/extensions/code/extension/instructions/github.js +0 -1
  1479. package/dist/src/extensions/code/extension/lib/github-compat.d.ts +0 -28
  1480. package/dist/src/extensions/code/extension/lib/github-compat.js +0 -1
  1481. package/dist/src/extensions/code/extension/lib/grep-search.js +0 -6
  1482. package/dist/src/extensions/code/extension/skills/pr.d.ts +0 -6
  1483. package/dist/src/extensions/code/extension/skills/pr.js +0 -1
  1484. package/dist/src/extensions/code/extension/tools/gh.d.ts +0 -28
  1485. package/dist/src/extensions/code/extension/tools/gh.js +0 -1
  1486. package/dist/src/harness/approval-recheck.d.ts +0 -7
  1487. package/dist/src/harness/approval-recheck.js +0 -1
  1488. package/dist/src/harness/authorization-event-fields.d.ts +0 -16
  1489. package/dist/src/harness/authorization-event-fields.js +0 -1
  1490. package/dist/src/harness/hitl/candidates.d.ts +0 -139
  1491. package/dist/src/harness/hitl/candidates.js +0 -1
  1492. package/dist/src/harness/hitl/coordinator.d.ts +0 -35
  1493. package/dist/src/harness/hitl/coordinator.js +0 -1
  1494. package/dist/src/harness/input-extraction.d.ts +0 -13
  1495. package/dist/src/harness/input-extraction.js +0 -1
  1496. package/dist/src/harness/input-request-class.d.ts +0 -3
  1497. package/dist/src/harness/input-request-class.js +0 -1
  1498. package/dist/src/harness/input-request-resolution.d.ts +0 -39
  1499. package/dist/src/harness/input-request-resolution.js +0 -1
  1500. package/dist/src/harness/open-input-request.d.ts +0 -8
  1501. package/dist/src/harness/open-input-request.js +0 -1
  1502. package/dist/src/harness/session-machine/events.d.ts +0 -6
  1503. package/dist/src/harness/session-machine/events.js +0 -1
  1504. package/dist/src/harness/session-machine/resolver-events.d.ts +0 -12
  1505. package/dist/src/harness/session-machine/resolver-events.js +0 -1
  1506. package/dist/src/harness/tool-call-action.d.ts +0 -9
  1507. package/dist/src/harness/tool-call-action.js +0 -1
  1508. package/dist/src/harness/tool-interrupts.d.ts +0 -22
  1509. package/dist/src/harness/tool-interrupts.js +0 -1
  1510. package/dist/src/harness/tool-presentation.d.ts +0 -5
  1511. package/dist/src/harness/tool-presentation.js +0 -1
  1512. package/dist/src/harness/turn-tag-state.d.ts +0 -115
  1513. package/dist/src/harness/turn-tag-state.js +0 -1
  1514. package/dist/src/internal/dynamic-tool-rebind.d.ts +0 -3
  1515. package/dist/src/internal/dynamic-tool-rebind.js +0 -1
  1516. package/dist/src/internal/nitro/host/extension-capability-requirements.d.ts +0 -14
  1517. package/dist/src/internal/nitro/host/extension-capability-requirements.js +0 -1
  1518. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.d.ts +0 -12
  1519. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.js +0 -1
  1520. package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.d.ts +0 -7
  1521. package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.js +0 -3
  1522. package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.d.ts +0 -79
  1523. package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.js +0 -1
  1524. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.d.ts +0 -14
  1525. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +0 -3
  1526. package/dist/src/protocol/event-dedupe.d.ts +0 -26
  1527. package/dist/src/protocol/event-dedupe.js +0 -1
  1528. package/dist/src/protocol/event-id.d.ts +0 -10
  1529. package/dist/src/protocol/event-id.js +0 -1
  1530. package/dist/src/protocol/message-version.d.ts +0 -53
  1531. package/dist/src/protocol/message-version.js +0 -1
  1532. package/dist/src/protocol/message.d.ts +0 -1198
  1533. package/dist/src/protocol/message.js +0 -2
  1534. package/dist/src/public/channels/chat-sdk/messageToUserContent.js +0 -1
  1535. package/dist/src/public/channels/slack/input-response.js +0 -1
  1536. package/dist/src/runtime/hooks/registry.d.ts +0 -34
  1537. package/dist/src/runtime/hooks/registry.js +0 -1
  1538. package/dist/src/runtime/resolve-dynamic-connection.d.ts +0 -5
  1539. package/dist/src/runtime/resolve-dynamic-connection.js +0 -1
  1540. package/dist/src/runtime/resolve-dynamic-instructions.d.ts +0 -4
  1541. package/dist/src/runtime/resolve-dynamic-instructions.js +0 -1
  1542. package/dist/src/runtime/resolve-dynamic-skill.d.ts +0 -8
  1543. package/dist/src/runtime/resolve-dynamic-skill.js +0 -1
  1544. package/dist/src/runtime/resolve-dynamic-subagent.d.ts +0 -9
  1545. package/dist/src/runtime/resolve-dynamic-subagent.js +0 -1
  1546. package/dist/src/runtime/resolve-dynamic-tool.d.ts +0 -12
  1547. package/dist/src/runtime/resolve-dynamic-tool.js +0 -1
  1548. package/dist/src/self-modification/migration.d.ts +0 -9
  1549. package/dist/src/self-modification/migration.js +0 -28
  1550. package/dist/src/shared/history-view.d.ts +0 -22
  1551. package/dist/src/shared/history-view.js +0 -1
  1552. package/dist/src/shared/package-version.d.ts +0 -2
  1553. package/dist/src/shared/package-version.js +0 -1
  1554. package/dist/src/tools/durable-callbacks.d.ts +0 -118
  1555. package/dist/src/tools/durable-callbacks.js +0 -1
  1556. package/dist/src/tools/durable-schema.d.ts +0 -16
  1557. package/dist/src/tools/durable-schema.js +0 -1
  1558. /package/dist/src/{client/eve-agent-store-state.js → ai/decision-types.js} +0 -0
  1559. /package/dist/src/client/{message-reducer-types.js → agent-info-types.js} +0 -0
  1560. /package/dist/src/client/{reducer.js → health-types.js} +0 -0
  1561. /package/dist/src/{shared → protocol/session-projection}/display-name.d.ts +0 -0
  1562. /package/dist/src/{shared → protocol/session-projection}/display-name.js +0 -0
@@ -0,0 +1 @@
1
+ import{activeTurn}from"#protocol/session-projection/selectors.js";function defined(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function fact(e,t){return{data:defined(t),type:e}}function usageOf(e){return defined({cacheReadTokens:e.cacheReadTokens??0,cacheWriteTokens:e.cacheWriteTokens??0,costUsd:e.costUsd,inputTokens:e.inputTokens??0,outputTokens:e.outputTokens??0})}function errorInfoOf(e){let{errorId:t,hint:n}=e.details??{};return defined({code:e.code,hint:typeof n==`string`&&n.trim().length>0?n.trim():void 0,id:typeof t==`string`?t:void 0,message:e.message})}function sessionEndedFacts(e,t){let n=[];e!==void 0&&e.view.session.status===`new`&&n.push(fact(`session.started`,{}));for(let e of t.settles??[])n.push(...controlSettled(e));let{control:r}=t;r!==void 0&&n.push(controlAdmitted(r,`reset`),deliveryApplied(r.deliveryId));let i=r===void 0?t.cause:{deliveryId:r.deliveryId};return n.push(fact(`session.ended`,{cause:i,error:t.error,outcome:t.outcome})),n}function turnSettled(e,t,n=activeTurn(e.view)?.turnId){if(n===void 0)return[];let r=e.view.turns[n]?.reply;return[fact(`turn.settled`,{...t,reply:r!==void 0&&r.length>0?r:void 0,turnId:n})]}function runRequested(e,t){return fact(`model.requested`,{owner:e,runId:t})}function runStarted(e){let{attempt:t,modelId:n,runId:r}=e;return fact(`model.started`,{attempt:t,modelId:n,runId:r})}function runSettledFacts(e){let{usage:t,...n}=e,r=[fact(`model.settled`,n)];return t!==void 0&&r.push(fact(`usage.recorded`,{kind:`model`,owner:{runId:e.runId},usage:t})),r}function delegatedUsageFact(e,t){let n=usageOf(t);return e===void 0?fact(`usage.recorded`,{kind:`delegated-late`,usage:n}):fact(`usage.recorded`,{kind:`model`,owner:{callId:e},usage:n})}function contextStarted(e){return fact(`context.started`,e)}function controlAdmitted(e,t){return fact(`delivery.admitted`,{deliveryId:e.deliveryId,principal:e.principal,source:{control:t}})}function controlSettled(e){let{control:t,outcome:n,source:r}=e;return[controlAdmitted(t,r),fact(`delivery.settled`,{deliveryId:t.deliveryId,outcome:n})]}function deliveryApplied(e){return fact(`delivery.settled`,{deliveryId:e,outcome:`applied`})}export{contextStarted,controlAdmitted,controlSettled,defined,delegatedUsageFact,deliveryApplied,errorInfoOf,fact,runRequested,runSettledFacts,runStarted,sessionEndedFacts,turnSettled,usageOf};
@@ -1,3 +1,8 @@
1
- import type { AssistantStepFinishReason } from "#protocol/message.js";
1
+ /**
2
+ * Why one model run ended. `tool-calls` is the only one the turn continues after, unless
3
+ * steering superseded the run, which ends `other` and continues with the next run. The wire
4
+ * carries it as an open string on `model.settled`.
5
+ */
6
+ export type AssistantStepFinishReason = "content-filter" | "error" | "length" | "other" | "stop" | "tool-calls";
2
7
  /** Maps an AI SDK finish reason to the eve-owned union. */
3
8
  export declare function normalizeAssistantStepFinishReason(value: string | undefined): AssistantStepFinishReason;
@@ -1,4 +1,4 @@
1
- import type { UnstampedMessageStreamEvent } from "#protocol/message.js";
1
+ import type { SessionEvent } from "#protocol/session-event.js";
2
2
  /** Interrupts generation without cancelling the turn or replaying local effects. */
3
3
  export declare class GenerationSteering {
4
4
  private readonly controller;
@@ -14,8 +14,10 @@ export declare class GenerationSteering {
14
14
  });
15
15
  get interrupted(): boolean;
16
16
  begin(): void;
17
+ /** Steering cut the generation; what the step still publishes settles it, so nothing stops it. */
18
+ end(): void;
17
19
  protectToolExecution(): void;
18
- beforeEvent(event: UnstampedMessageStreamEvent): void;
20
+ beforeEvent(event: SessionEvent): void;
19
21
  check(): void;
20
22
  dispose(): void;
21
23
  private readonly onSteering;
@@ -1 +1 @@
1
- var GenerationSteeredError=class extends Error{constructor(){super(`Model generation superseded by steering.`),this.name=`GenerationSteeredError`}},GenerationSteering=class{controller=new AbortController;active=!1;effectsStarted=!1;steeringSignal;signal;outputStarted;constructor(e){this.steeringSignal=e.steeringSignal,this.outputStarted=e.outputStarted===!0,this.signal=e.steeringSignal===void 0&&e.abortSignal!==void 0?e.abortSignal:e.abortSignal===void 0?this.controller.signal:AbortSignal.any([e.abortSignal,this.controller.signal]),this.steeringSignal?.addEventListener(`abort`,this.onSteering)}get interrupted(){return this.controller.signal.aborted}begin(){this.active=!0,this.onSteering(),this.check()}protectToolExecution(){this.check(),this.effectsStarted=!0}beforeEvent(e){this.active&&(this.check(),(e.type===`input.requested`||e.type===`step.failed`||e.type===`turn.completed`)&&(this.effectsStarted=!0),(e.type===`message.appended`&&e.data.messageDelta.length>0||e.type===`message.completed`&&(e.data.message?.length??0)>0||e.type===`result.completed`)&&(this.outputStarted=!0))}check(){if(this.interrupted)throw this.controller.signal.reason}dispose(){this.steeringSignal?.removeEventListener(`abort`,this.onSteering)}onSteering=()=>{this.active&&!this.effectsStarted&&!this.outputStarted&&this.steeringSignal?.aborted&&this.controller.abort(new GenerationSteeredError)}};export{GenerationSteering};
1
+ var GenerationSteeredError=class extends Error{constructor(){super(`Model generation superseded by steering.`),this.name=`GenerationSteeredError`}},GenerationSteering=class{controller=new AbortController;active=!1;effectsStarted=!1;steeringSignal;signal;outputStarted;constructor(e){this.steeringSignal=e.steeringSignal,this.outputStarted=e.outputStarted===!0,this.signal=e.steeringSignal===void 0&&e.abortSignal!==void 0?e.abortSignal:e.abortSignal===void 0?this.controller.signal:AbortSignal.any([e.abortSignal,this.controller.signal]),this.steeringSignal?.addEventListener(`abort`,this.onSteering)}get interrupted(){return this.controller.signal.aborted}begin(){this.active=!0,this.onSteering(),this.check()}end(){this.active=!1}protectToolExecution(){this.check(),this.effectsStarted=!0}beforeEvent(e){this.active&&(this.check(),(e.type===`interaction.opened`||e.type===`model.settled`&&e.data.outcome===`failed`||e.type===`turn.settled`)&&(this.effectsStarted=!0),(e.type===`content.delta`&&e.data.kind===`text`&&e.data.delta.length>0||e.type===`content.completed`&&(e.data.kind===`result`||e.data.kind===`text`&&typeof e.data.value==`string`&&e.data.value.length>0))&&(this.outputStarted=!0))}check(){if(this.interrupted)throw this.controller.signal.reason}dispose(){this.steeringSignal?.removeEventListener(`abort`,this.onSteering)}onSteering=()=>{this.active&&!this.effectsStarted&&!this.outputStarted&&this.steeringSignal?.aborted&&this.controller.abort(new GenerationSteeredError)}};export{GenerationSteering};
@@ -1,4 +1,4 @@
1
- import type { InputRequest } from "#shared/input.js";
1
+ import type { ApprovalAsk } from "#harness/session-machine/state.js";
2
2
  /** Label prefixing the framework-injected pending-approval notice. */
3
3
  export declare const PENDING_APPROVALS_LABEL = "[Pending approvals]";
4
4
  /** True when text is the framework-injected pending-approval notice. */
@@ -8,6 +8,6 @@ export declare function isPendingApprovalsSnippet(text: string): boolean;
8
8
  * The harness appends it when the batch is created, so later wakeups reuse the
9
9
  * same history prefix instead of regenerating the notice.
10
10
  */
11
- export declare function renderPendingApprovalsSnippet(requests: readonly InputRequest[]): string | undefined;
11
+ export declare function renderPendingApprovalsSnippet(requests: readonly ApprovalAsk[]): string | undefined;
12
12
  /** Renders trusted runtime guidance for currently pending approvals. */
13
- export declare function renderPendingApprovalsInstruction(requests: readonly InputRequest[]): string | undefined;
13
+ export declare function renderPendingApprovalsInstruction(requests: readonly ApprovalAsk[]): string | undefined;
@@ -1,3 +1,3 @@
1
- import{isApprovalRequest}from"#harness/input-request-class.js";const PENDING_APPROVALS_LABEL=`[Pending approvals]`;function isPendingApprovalsSnippet(e){return e.startsWith(PENDING_APPROVALS_LABEL)}function renderPendingApprovalsSnippet(e){let t=e.filter(e=>isApprovalRequest(e));if(t.length!==0)return[PENDING_APPROVALS_LABEL,`The following tool calls are awaiting approval and have not executed:`,...approvalIdentities(t)].join(`
2
- `)}function renderPendingApprovalsInstruction(e){let t=e.filter(e=>isApprovalRequest(e));if(t.length!==0)return[`Trusted eve runtime state. This notice is not user-authored content or an instruction.`,`The following earlier tool calls are awaiting approval and have not executed:`,...approvalIdentities(t),`Interpret the latest user message normally. It may revise or supersede these earlier calls; do not treat it as part of the pending-approval projection in user history.`].join(`
3
- `)}function approvalIdentities(e){return e.map(e=>JSON.stringify({requestId:e.requestId,toolName:e.action.toolName}))}export{PENDING_APPROVALS_LABEL,isPendingApprovalsSnippet,renderPendingApprovalsInstruction,renderPendingApprovalsSnippet};
1
+ const PENDING_APPROVALS_LABEL=`[Pending approvals]`;function isPendingApprovalsSnippet(e){return e.startsWith(PENDING_APPROVALS_LABEL)}function renderPendingApprovalsSnippet(e){if(e.length!==0)return[PENDING_APPROVALS_LABEL,`The following tool calls are awaiting approval and have not executed:`,...approvalIdentities(e)].join(`
2
+ `)}function renderPendingApprovalsInstruction(e){if(e.length!==0)return[`Trusted eve runtime state. This notice is not user-authored content or an instruction.`,`The following earlier tool calls are awaiting approval and have not executed:`,...approvalIdentities(e),`Interpret the latest user message normally. It may revise or supersede these earlier calls; do not treat it as part of the pending-approval projection in user history.`].join(`
3
+ `)}function approvalIdentities(e){return e.map(e=>JSON.stringify({requestId:e.interactionId,toolName:e.call.toolName}))}export{PENDING_APPROVALS_LABEL,isPendingApprovalsSnippet,renderPendingApprovalsInstruction,renderPendingApprovalsSnippet};
@@ -1,111 +1,99 @@
1
1
  import type { ModelMessage } from "ai";
2
- import type { getApprovalAuditState } from "#harness/hitl/candidates.js";
2
+ import { type ApprovalMemory } from "#approval/evaluation.js";
3
+ import type { ResponderCheck } from "./responders.js";
3
4
  import type { AuthorizationChallenge } from "#harness/authorization.js";
4
5
  import type { StoppedCall } from "#harness/inline-tool-authorization.js";
5
- import { type ResolvedInputBatch } from "#harness/input-request-resolution.js";
6
- import type { StepInput } from "#harness/types.js";
6
+ import { type LimitAsk } from "#harness/hitl/budget-request.js";
7
+ import type { HarnessStepInput } from "#harness/types.js";
8
+ import type { InteractionRow } from "#protocol/session-projection/tables.js";
7
9
  import type { RuntimeWorkflowTaskRequest } from "#shared/action-types.js";
8
- import type { InputRequest } from "#shared/input.js";
9
10
  import type { Transition } from "#harness/session-machine/commit.js";
10
11
  import { type ResolvedStepInput } from "./delivery.js";
11
- import type { StepCoordinates, SuspendedStep } from "#harness/session-machine/view.js";
12
+ import type { ApprovalAsk, ApprovedCall, StepCoordinates, SuspendedStep } from "#harness/session-machine/view.js";
12
13
  import { type SessionView } from "#harness/session-machine/view.js";
13
14
  /**
14
15
  * A model response made calls that need a person's approval. The response waits in a suspended
15
- * step, beside any runtime calls it made, and the turn holds until the answers arrive.
16
+ * step, beside any runtime calls it made. The approvals are asked now, or once the step's tasks
17
+ * finish (`openDeferredApprovals`).
16
18
  */
17
- export declare function parkOnApprovals(view: SessionView, input: {
19
+ export declare function askApprovals(view: SessionView, input: {
18
20
  readonly event: StepCoordinates;
19
21
  readonly messages: readonly ModelMessage[];
20
- readonly requests: readonly InputRequest[];
22
+ readonly requests: readonly ApprovalAsk[];
21
23
  readonly tasks: readonly RuntimeWorkflowTaskRequest[];
22
24
  readonly responseAuthRequiredRequestIds?: readonly string[];
23
25
  readonly requester?: SuspendedStep["requester"];
24
26
  }): Transition;
27
+ /** A step that parked approvals beside its tasks asks for them once the tasks finish. */
28
+ export declare function openDeferredApprovals(view: SessionView): Transition;
29
+ /** The step's approvals nobody has settled: open, or not asked yet. */
30
+ export declare function pendingApprovals(view: SessionView, step: SuspendedStep): readonly ApprovalAsk[];
25
31
  /** Approved workflow and agent calls join the runs their requesting steps wait on. */
26
32
  export declare function dispatch(view: SessionView, input: {
27
33
  readonly tasks: readonly RuntimeWorkflowTaskRequest[];
28
34
  }): Transition;
35
+ /** Turn input the turn can't take yet waits, unreceived, for a later step. */
36
+ export declare function queueInput(view: SessionView, input: HarnessStepInput | undefined): Transition;
29
37
  /**
30
- * Approved calls run before the delivery's own input, as the AI SDK ran them: the model reads
31
- * their results first. The input waits in the queue, unreceived, for the step after.
38
+ * A delivery's answers reach the session: each is submitted once, and stands, admitted, once
39
+ * its responder may answer. An answer a response policy still weighs stays submitted. What a
40
+ * responder may not do refuses their delivery, with why.
32
41
  */
33
- export declare function deferInput(view: SessionView, input: StepInput): Transition;
34
- /** What the approval-response policies did with a delivery, before `answer` reads it. */
35
- export interface ResponsePolicyPass {
36
- readonly kind: "continue" | "continue-coordination" | "authorization-required" | "responses-completed";
37
- readonly challenges: readonly AuthorizationChallenge[];
38
- readonly feedback: readonly string[];
39
- /** The delivery minus the answers the policies took, plus the settlements they reached. */
40
- readonly stepInput?: StepInput;
41
- readonly audit: ReturnType<typeof getApprovalAuditState>;
42
- /** Responder sign-ins pending when the pass began. */
43
- readonly challengesAtStart: readonly AuthorizationChallenge[];
44
- }
45
- /** What `answer` concluded, beyond the events and state it changed. */
46
- export interface Answered extends Transition {
47
- /**
48
- * `continue`: the step goes on. `park`: nothing can run until more input arrives.
49
- * `repeat`: a policy pass committed, so the next pass runs in a fresh step. `sign-in`: a
50
- * responder must sign in first.
51
- */
52
- readonly next: "continue" | "park" | "repeat" | "sign-in";
53
- /** The turn's input, without the answers `answer` consumed. */
54
- readonly input?: StepInput;
55
- /** Whether a plain-text answer consumed the message. */
56
- readonly consumedMessage?: boolean;
57
- /** The batches the delivery resolved, in order. */
58
- readonly resolved: readonly ResolvedInputBatch[];
59
- /** A decision on the session-limit prompt. */
60
- readonly limit?: {
61
- readonly granted: boolean;
62
- };
42
+ export declare function admitAnswers(view: SessionView, input: {
43
+ readonly delivery: ResolvedStepInput | undefined;
44
+ readonly check: ResponderCheck;
45
+ }): Transition;
46
+ /** A call cleared to run now, with the step that asked, whose tools it runs with. */
47
+ export interface RunnableCall {
48
+ readonly approval: ApprovedCall;
49
+ readonly step: SuspendedStep;
63
50
  }
64
51
  /**
65
- * A delivery answers what the session asked. An approval batch resolves once every request in it
66
- * has a decision: approved calls become ready to run, denied ones get their denial as a result,
67
- * and `once()` approvals grant their key. A message steers the held turn instead: the first
68
- * pending batch resolves with the answers it has, and the rest are ignored. A session-limit
69
- * answer grants or declines a fresh budget. A partial answer waits, queued, for the rest.
52
+ * A step's approvals settle together, once each has a standing answer. A message steers past
53
+ * them instead: the answers given stand, and the approvals nobody answered are withdrawn.
54
+ * Approved calls are returned to run; denied ones get their denial as a result.
55
+ * A request that asked to be remembered records the decision. `answered` says a step settled on
56
+ * its answers rather than a message.
70
57
  */
71
- export declare function answer(view: SessionView, input: {
72
- readonly delivery: ResolvedStepInput | undefined;
73
- readonly policy: ResponsePolicyPass;
74
- /** The delivery merged the queue in, so the queue empties. */
75
- readonly takeQueued: boolean;
76
- /** False when no message answers by text; see `ToolLoopHarnessConfig.typedAnswers`. */
77
- readonly typedAnswers?: boolean;
78
- readonly approvalKey: (request: InputRequest) => string | undefined;
79
- /**
80
- * Whether the request's restored step has `eve__search`, which a call whose
81
- * tool is gone can use to find another.
82
- */
83
- readonly searchable: (request: InputRequest) => boolean;
84
- }): Answered;
85
- /** Queued input that can run now, rather than wait for more answers. */
86
- export declare function hasRunnableQueue(view: SessionView): boolean;
87
- /** Keys `once()` approvals granted, except those a pending approval still asks about. */
88
- export declare function grantedApprovalKeys(view: SessionView, approvalKey: (request: InputRequest) => string | undefined): ReadonlySet<string>;
58
+ export declare function settleApprovals(view: SessionView, input: {
59
+ readonly steer: boolean;
60
+ }): Transition & {
61
+ readonly approved: readonly RunnableCall[];
62
+ readonly answered: boolean;
63
+ };
89
64
  /**
90
- * The steps a delivery approves calls of, whose tools the calls run with: those it answers in
91
- * full, approving at least one call.
65
+ * Approvals whose tool went away: no answer can run their calls, so nobody needs them anymore.
66
+ * Each call fails, and the model reads why.
92
67
  */
93
- export declare function approvingSteps(view: SessionView, stepInput: StepInput | undefined): readonly SuspendedStep[];
94
- /** The suspended step that holds `requestId`. */
95
- export declare function stepForRequest(view: SessionView, requestId: string): SuspendedStep | undefined;
68
+ export declare function withdrawUnavailable(view: SessionView, input: {
69
+ readonly interactionIds: readonly string[];
70
+ readonly searchable: (request: ApprovalAsk) => boolean;
71
+ }): Transition;
72
+ export declare function approvalMemory(view: SessionView): ApprovalMemory;
73
+ /** The budget prompt the session waits on, with the turn it asked in, if any. */
74
+ export declare function openLimit(view: SessionView): {
75
+ readonly row: InteractionRow;
76
+ readonly turnId?: string;
77
+ } | undefined;
96
78
  /**
97
- * The held turn moves on, steered: the sign-ins it waits on end, declined, including a
98
- * responder's for one of its approvals, and the calls that waited for them fail with `reason`.
79
+ * The session spent its budget: it asks whether to continue instead of calling the model.
80
+ * `settleLimit` grants a fresh budget or declines it.
99
81
  */
100
- export declare function withdrawSignIns(view: SessionView, reason: string): Transition;
82
+ export declare function requestLimit(view: SessionView, ask: LimitAsk): Transition;
101
83
  /**
102
- * The session spent its budget: it asks whether to continue instead of calling the model, and
103
- * the turn holds for input. The prompt is the projection's open request; `answer` grants a
104
- * fresh budget or declines it.
84
+ * The budget prompt settles on its standing answer: Continue grants a fresh budget, and Stop
85
+ * declines it. Any other answer is refused, and the prompt stays open for another.
105
86
  */
106
- export declare function requestLimit(view: SessionView, input: {
107
- readonly request: InputRequest;
108
- }): Transition;
87
+ export declare function settleLimit(view: SessionView): Transition & {
88
+ readonly limit?: {
89
+ readonly granted: boolean;
90
+ };
91
+ };
92
+ /**
93
+ * The held turn moves on, steered: the sign-ins it waits on are withdrawn, including a
94
+ * responder's for one of its approvals, and the calls that waited for them fail with `reason`.
95
+ */
96
+ export declare function withdrawSignIns(view: SessionView, reason: string): Transition;
109
97
  /**
110
98
  * Work needs a sign-in. The calls that need it stop and wait in their steps; an attempt it
111
99
  * replaces fails; and each sign-in is asked for and recorded. The turn holds until every sign-in
@@ -115,5 +103,5 @@ export declare function requestLimit(view: SessionView, input: {
115
103
  export declare function requireSignIn(view: SessionView, input: {
116
104
  readonly challenges: readonly AuthorizationChallenge[];
117
105
  readonly calls?: readonly StoppedCall[];
118
- readonly queued?: StepInput;
106
+ readonly queued?: HarnessStepInput;
119
107
  }): Transition;
@@ -1 +1,2 @@
1
- import{signInAttemptKey,supersededChallenges,withSignIns}from"./sign-ins.js";import{canonicalize,compactInput,isEmptyInput,resolveTextInput,withoutResponses}from"./delivery.js";import{openInputs,turnCoordinates}from"#protocol/session-projection.js";import{readClientContext}from"#internal/client-context.js";import{createActionResultEvent,createApprovalCandidateEvent,createApprovalSettledEvent,createAuthorizationCompletedEvent,createAuthorizationRequiredEvent,createInputRequestedEvent,createInputResolvedEvent,createMessageCompletedEvent}from"#protocol/message.js";import{coalesceTurnInputs,createFrameworkUserMessage}from"#harness/messages.js";import{turnPosition}from"#harness/session-machine/view.js";import{renderPendingApprovalsSnippet}from"#harness/hitl/approval-prompt.js";import{awaitSignIns,hold,ownOpenRequestIds,runnableCalls,settle,stepCallIds,suspend,withResult,withoutApproved}from"#harness/session-machine/transitions.js";import{isApprovalRequest}from"#harness/input-request-class.js";import{authorizationEventFields}from"#harness/authorization-event-fields.js";import{TOOL_EXECUTION_DENIED_MESSAGE,failedCall,resolveApprovalOutcome,resolveInputOutcome,unavailableToolMessage}from"#harness/input-request-resolution.js";import{resolveSessionLimitContinuation}from"#harness/hitl/budget-request.js";import{signInWithdrawn}from"#harness/session-machine/events.js";function parkOnApprovals(e,t){let n=t.requester?.principalType===`anonymous`?null:t.requester,r=t.messages.findIndex(e=>e.role!==`tool`),i=r===-1?t.messages:t.messages.slice(0,r),a=renderPendingApprovalsSnippet(t.requests),o=suspend(e.turn,{event:t.event,messages:t.messages.slice(i.length),requester:n,requests:t.requests,responseAuthRequiredRequestIds:t.responseAuthRequiredRequestIds,tasks:t.tasks});return{commit:[...i,...a===void 0?[]:[createFrameworkUserMessage(`context.state`,a)]],events:t.tasks.length>0?[]:[createInputRequestedEvent({requests:t.requests,...t.event})],turn:o}}function dispatch(e,t){let n=e.turn.suspended.map(e=>{let n=stepCallIds(e),r=t.tasks.filter(e=>n.has(e.callId));return r.length===0?e:{...withoutApproved(e,new Set(r.map(e=>e.callId))),tasks:[...e.tasks,...r]}});return{events:[],turn:{...e.turn,suspended:n}}}function deferInput(e,t){return{events:[],turn:withQueued(e.turn,t)}}function withQueued(e,t){return t===void 0||isEmptyInput(t)?e:{...e,queued:e.queued===void 0?t:coalesceTurnInputs(e.queued,t)}}function answer(e,t){let{policy:n}=t,{projection:r}=e,i=turnPosition(r),a=[...n.feedback.map(e=>createMessageCompletedEvent({message:e,sequence:i.sequence,stepIndex:i.stepIndex,turnId:i.turnId})),...reportApprovalProgress(r,n.audit,n.challengesAtStart)],o=t.takeQueued?{...e.turn,queued:void 0}:e.turn,done=e=>({events:a,resolved:[],turn:o,...e}),queue=e=>{o=withQueued(o,e)};if(n.kind===`continue-coordination`)return queue(n.stepInput),done({next:`repeat`});if(n.challenges.length>0)return done({next:`sign-in`});let s=t.delivery,c=openInputs(r).find(t=>t.request.kind===`session-limit`&&ownOpenRequestIds(e).has(t.request.requestId)),l=o.suspended.filter(e=>e.requests.length>0);if(c===void 0&&l.length===0)return done({input:s,next:`continue`});let u=c===void 0||t.typedAnswers===!1?s:resolveTextInput({requests:[c.request]},s),d=canonicalize(u?.inputResponses??[]),f=new Map(d.map(e=>[e.requestId,e])),p=l.filter(e=>e.requests.every(e=>f.has(e.requestId))),leftoverFor=e=>d.filter(t=>e.some(e=>e.requests.some(e=>e.requestId===t.requestId))),park=()=>(queue(compactInput(u)),done({next:`park`}));if(d.length===0&&u?.message===void 0)return park();if(c!==void 0){let e=f.get(c.request.requestId);if(e===void 0)return park();let t={event:{sequence:c.sequence,stepIndex:c.stepIndex,turnId:c.turnId},inputs:[{outcome:resolveInputOutcome(c.request.kind,e),request:c.request,response:e}]};a.push(resolvedEvent(t));let n=leftoverFor(l);return n.length>0&&queue({inputResponses:n}),done({consumedMessage:u?.messageConsumed,input:withoutResponses(u),limit:resolveSessionLimitContinuation({requests:[c.request],responses:d}),next:`continue`,resolved:[t]})}if(p.length===0&&u?.message===void 0)return park();p.length===0&&p.push(l[0]);let m=leftoverFor(l.filter(e=>!p.includes(e)));m.length>0&&queue({inputResponses:m});let h=new Set(o.grants),g=[],_=[],v=new Set(n.audit.settlements.filter(e=>e.outcome===`unavailable`).map(e=>e.requestId)),y=o.suspended.map(e=>{if(!p.includes(e))return e;let n=e.messages,r=[];for(let i of e.requests){let{callId:a,toolName:o}=i.action;if(v.has(i.requestId)){let r=failedCall({callId:a,failure:unavailableToolMessage(o,t.searchable(i)),toolName:o});n=withResult(n,r.part),_.push(createActionResultEvent({result:r.result,...e.event}));continue}let{approved:s,reason:c,status:l}=resolveApprovalOutcome(f.get(i.requestId));if(s){h.add(t.approvalKey(i)??o),r.push(i);continue}n=withResult(n,{output:{reason:c,type:`execution-denied`},toolCallId:a,toolName:o,type:`tool-result`}),_.push(createActionResultEvent({rejected:!0,result:{callId:a,isError:!0,kind:`tool-result`,output:{approval:{requestId:i.requestId,status:l},code:`TOOL_EXECUTION_DENIED`,message:c??TOOL_EXECUTION_DENIED_MESSAGE,tool:{result:`not_run`}},toolName:o},...e.event}))}g.push({event:e.event,inputs:e.requests.map(e=>{let t=f.get(e.requestId);return{outcome:resolveInputOutcome(e.kind,t),request:e,response:t}})});let i=[...e.approved??[],...r];return{...e,messages:n,requests:[],...i.length>0&&{approved:i}}});return a.push(...g.map(resolvedEvent),..._),o={...o,grants:[...h],suspended:y},done({consumedMessage:u?.messageConsumed,input:withoutResponses(u),next:`continue`,resolved:g})}function resolvedEvent(e){return createInputResolvedEvent({resolutions:e.inputs.map(e=>{let t={kind:e.request.kind,outcome:e.outcome,requestId:e.request.requestId};return e.response===void 0?t:{...t,response:e.response}}),...e.event})}function reportApprovalProgress(e,t,n){let r=turnCoordinates(e),isOpen=t=>{let n=e.inputs[t];return n!==void 0&&n.status!==`settled`},i=[];for(let a of n){let n=t.candidateHistory.some(e=>e.candidateId===a.candidateId&&e.status===`timed-out`),o=e.authorizations[a.attemptId??a.name];n&&o?.status===`required`&&i.push(createAuthorizationCompletedEvent({...authorizationEventFields(a),outcome:`failed`,reason:`The approval response expired. Please submit a new response.`,...r}))}for(let n of t.activeCandidates)e.candidates[n.candidateId]===void 0&&isOpen(n.requestId)&&i.push(createApprovalCandidateEvent({candidateId:n.candidateId,outcome:`pending`,requestId:n.requestId,responderPrincipalId:n.responder.principalId,...r}));for(let n of t.candidateHistory)n.status!==`allowed`&&n.status!==`authorization-required`&&e.inputs[n.requestId]!==void 0&&e.candidates[n.candidateId]?.outcome!==n.status&&i.push(createApprovalCandidateEvent({candidateId:n.candidateId,outcome:n.status,requestId:n.requestId,responderPrincipalId:n.responder.principalId,reason:n.reason,...r}));for(let e of t.settlements)isOpen(e.requestId)&&e.outcome!==`unavailable`&&i.push(createApprovalSettledEvent({outcome:e.outcome===`allowed`?`approved`:`cancelled`,requestId:e.requestId,responderPrincipalId:e.actor.principalId,...r}));return i}function hasRunnableQueue(e){let t=e.turn.queued;if(t===void 0)return!1;let n=[...t.inputResponses??[],...(t.attributedInputResponses??[]).map(({response:e})=>e)],r=new Set(n.map(e=>e.requestId)),i=openInputs(e.projection).find(e=>e.request.kind===`session-limit`);return i===void 0?t.message!==void 0||(t.context?.length??0)>0||(t.history?.length??0)>0||readClientContext(t)!==void 0||t.outputSchema!==void 0||(t.runtimeActionResults?.length??0)>0||n.length!==0&&e.turn.suspended.some(e=>e.requests.length>0&&e.requests.every(e=>r.has(e.requestId))):r.has(i.request.requestId)}function grantedApprovalKeys(e,t){let n=new Set(e.turn.grants);for(let r of e.turn.suspended)for(let e of r.requests)isApprovalRequest(e)&&n.delete(t(e)??e.action.toolName);return n}function approvingSteps(e,t){let n=e.turn.suspended.filter(e=>e.requests.length>0),r=new Map((t?.inputResponses??[]).map(e=>[e.requestId,e.optionId]));return n.filter(e=>e.requests.every(e=>r.has(e.requestId))&&e.requests.some(e=>isApprovalRequest(e)&&r.get(e.requestId)===`approve`))}function stepForRequest(e,t){return e.turn.suspended.find(e=>e.requests.some(e=>e.requestId===t))}function withdrawSignIns(e,t){let n=e.turn.suspended.flatMap(t=>(t.approved??[]).filter(n=>!runnableCalls(e,t).includes(n))),r=[...e.signIns,...n.flatMap(e=>e.signIns??[])],i=[...new Map(r.map(e=>[signInAttemptKey(e),e]))].map(([,t])=>e.projection.authorizations[t.attemptId??t.name]).flatMap(e=>e?.status===`required`?[signInWithdrawn(e,t)]:[]),a=settle(e,{results:n.map(({action:e})=>failedCall({callId:e.callId,failure:t,toolName:e.toolName}))});return{...a,events:[...i,...a.events],signIns:[]}}function requestLimit(e,t){let n=turnPosition(e.projection);return{events:[createInputRequestedEvent({requests:[t.request],sequence:n.sequence,stepIndex:n.stepIndex,turnId:n.turnId}),...hold(e,{on:`input`}).events],turn:e.turn}}function requireSignIn(e,t){let n=turnPosition(e.projection),r={sequence:n.sequence,stepIndex:n.stepIndex,turnId:n.turnId},i=[...supersededChallenges(e.signIns,t.challenges).map(e=>createAuthorizationCompletedEvent({...authorizationEventFields(e),outcome:`failed`,reason:`Superseded by a newer authorization attempt.`,...r})),...t.challenges.map(e=>createAuthorizationRequiredEvent({...authorizationEventFields(e),description:e.challenge.instructions??`Authorization required for ${e.name}`,webhookUrl:e.hookUrl,...r}))];i.push(...hold(e,{on:`input`}).events);let a=t.queued===void 0?e.turn.queued:e.turn.queued===void 0?t.queued:coalesceTurnInputs(e.turn.queued,t.queued),o=withSignIns(e.signIns,t.challenges),{calls:s}=t,c=s===void 0?e.turn.suspended:e.turn.suspended.map(e=>awaitSignIns(e,{challenges:t.challenges,stopped:s}));return{events:i,signIns:o,turn:{...e.turn,queued:a,suspended:c}}}export{answer,approvingSteps,deferInput,dispatch,grantedApprovalKeys,hasRunnableQueue,parkOnApprovals,requestLimit,requireSignIn,stepForRequest,withdrawSignIns};
1
+ import{signInAttemptKey,supersededChallenges,withSignIns}from"./sign-ins.js";import{isEmptyInput}from"./delivery.js";import{SUPERSEDED_BY_MESSAGE,openRequests}from"#protocol/session-projection/reader.js";import{interactionOwner}from"#protocol/session-projection/selectors.js";import{ownOpenRequestIds,runningTasks,turnPosition}from"#harness/session-machine/view.js";import{rememberDecision}from"#approval/evaluation.js";import{renderPendingApprovalsSnippet}from"#harness/hitl/approval-prompt.js";import{coalesceTurnInputs,createFrameworkUserMessage}from"#harness/messages.js";import{awaitSignIns,runnableCalls,settle,withoutApproved}from"#harness/session-machine/transitions.js";import{callSettledFrom}from"#harness/call-facts.js";import{approvalOpened,interactionOpened,interactionSettled,responseAdmitted,responseSettled,responseSubmitted,signInInteractionId,signInOpened}from"#harness/interaction-facts.js";import{TOOL_EXECUTION_DENIED_MESSAGE,failedCall,resolveApprovalOutcome,unavailableToolMessage}from"#harness/approval-outcome.js";import{limitDecision}from"#harness/hitl/budget-request.js";import{stepCallIds,suspend,withResult}from"#harness/session-machine/suspended-steps.js";function askApprovals(e,t){let n=t.requester?.principalType===`anonymous`?null:t.requester,r=t.messages.findIndex(e=>e.role!==`tool`),i=r===-1?t.messages:t.messages.slice(0,r),a=renderPendingApprovalsSnippet(t.requests),o=suspend(e.turn,{event:t.event,messages:t.messages.slice(i.length),requester:n,requests:t.requests,responseAuthRequiredRequestIds:t.responseAuthRequiredRequestIds,tasks:t.tasks});return{commit:[...i,...a===void 0?[]:[createFrameworkUserMessage(`context.state`,a)]],events:t.tasks.length>0?[]:t.requests.map(e=>approvalOpened(e)),turn:o}}function openDeferredApprovals(e){let t=e.projection.view;return{events:e.turn.suspended.flatMap(e=>e.tasks.length===0||runningTasks(e).length>0||e.requests.some(e=>t.interactions[e.interactionId]!==void 0)?[]:e.requests.map(e=>approvalOpened(e))),turn:e.turn}}function pendingApprovals(e,t){let n=e.projection.view;return t.requests.filter(e=>{let t=n.interactions[e.interactionId];return t===void 0||t.status===`open`})}function dispatch(e,t){let n=e.turn.suspended.map(e=>{let n=stepCallIds(e),r=t.tasks.filter(e=>n.has(e.callId));return r.length===0?e:{...withoutApproved(e,new Set(r.map(e=>e.callId))),tasks:[...e.tasks,...r]}});return{events:[],turn:{...e.turn,suspended:n}}}function queueInput(e,t){return{events:[],turn:withQueued(e.turn,t)}}function withQueued(e,t){return t===void 0||isEmptyInput(t)?e:{...e,queued:e.queued===void 0?t:coalesceTurnInputs(e.queued,t)}}function admitAnswers(e,t){let{check:n,delivery:r}=t,i=e.projection.view,a=responseLedger(i);a.submit(r?.answers??[]);for(let{reason:e,responseId:t}of n.refused)t!==void 0&&a.settle(t,`refused`,e);for(let e of n.admit)a.admit(e);let o=n.refused.map(({reason:e})=>e).join(`
2
+ `),s=new Set(n.refused.map(({responseId:e})=>e)),c=(r?.answers??[]).filter(({responseId:e})=>s.has(e)).map(({deliveryId:e})=>e),l=c.length===n.refused.length&&c.every(e=>e!==void 0),u=[...new Set(l?c:(r?.deliveries??[]).map(({deliveryId:e})=>e))].filter(e=>i.deliveries[e]?.status!==`settled`).map(e=>({data:{deliveryId:e,outcome:`refused`,reason:o},type:`delivery.settled`}));return{events:[...a.facts(),...u],responders:n.weigh,turn:e.turn}}function standingAnswers(e){let t=new Map,n=Object.values(e.responses).sort((e,t)=>e.introducedAt-t.introducedAt);for(let e of n)e.status===`admitted`&&t.set(e.interactionId,e);return t}function responseOf(e,t){if(t?.value===void 0)return;let n={interactionId:e};return t.value.optionId!==void 0&&(n.optionId=t.value.optionId),t.value.text!==void 0&&(n.text=t.value.text),n}function settleApprovals(e,t){let n=e.projection.view,r=standingAnswers(n),answerOf=e=>responseOf(e.interactionId,r.get(e.interactionId)),i=responseLedger(n),a=[],o=!1,s=[],c=[],decide=(e,t,n)=>{let a=t===`withdrawn`?void 0:r.get(e.interactionId);a!==void 0&&i.settle(a.responseId,`applied`),a!==void 0&&(t===`accepted`||t===`declined`)&&c.push({at:a.introducedAt,outcome:t,request:e}),i.closeOthers(e.interactionId,a?.responseId),s.push(interactionSettled(e.interactionId,t,{cause:a===void 0?void 0:{responseId:a.responseId},reason:n,response:t===`withdrawn`?void 0:answerOf(e)}))},l=e.turn.suspended.map(i=>{let c=pendingApprovals(e,i).filter(e=>n.interactions[e.interactionId]!==void 0);if(c.length===0)return i;let l=c.every(e=>answerOf(e)!==void 0);if(!t.steer&&!l)return i;o||=l;let u=i.messages;for(let t of c){let{callId:n,toolName:o}=t.call,{approved:c,reason:l,status:d}=resolveApprovalOutcome(answerOf(t));if(c){let n=e.responders[r.get(t.interactionId)?.responseId??``];a.push({approval:{call:t.call,interactionId:t.interactionId,...n!==void 0&&{responder:n.responder}},step:i}),decide(t,`accepted`);continue}d===`ignored`?decide(t,`withdrawn`,SUPERSEDED_BY_MESSAGE):decide(t,d===`invalid`?`invalid`:`declined`),u=withResult(u,{output:{reason:l,type:`execution-denied`},toolCallId:n,toolName:o,type:`tool-result`});let f=callSettledFrom({callId:n,isError:!0,kind:`tool-result`,output:{approval:{interactionId:t.interactionId,status:d},code:`TOOL_EXECUTION_DENIED`,message:l??TOOL_EXECUTION_DENIED_MESSAGE,tool:{result:`not_run`}},toolName:o},{rejected:!0});s.push({...f,data:{...f.data,cause:{interactionId:t.interactionId}}})}return{...i,messages:u}}),declinedLast=e=>+(e.outcome===`declined`),u=c.sort((e,t)=>e.at-t.at||declinedLast(e)-declinedLast(t)).reduce((e,t)=>rememberDecision(e,t.request,t.outcome),e.turn.remembered);return{answered:o,approved:a,events:[...i.facts(),...s],turn:{...e.turn,remembered:u,suspended:l}}}function withdrawUnavailable(e,t){let n=e.projection.view,r=responseLedger(n),i=new Set(t.interactionIds),a=[],o=e.turn.suspended.map(n=>{let o=n.messages;for(let s of pendingApprovals(e,n)){if(!i.has(s.interactionId))continue;let{callId:e,toolName:n}=s.call,c=unavailableToolMessage(n,t.searchable(s)),l=failedCall({callId:e,message:c,toolName:n});o=withResult(o,l.part),r.closeOthers(s.interactionId,void 0),a.push(interactionSettled(s.interactionId,`withdrawn`,{reason:c}),callSettledFrom(l.result))}return o===n.messages?n:{...n,messages:o}});return{events:[...r.facts(),...a],turn:{...e.turn,suspended:o}}}function approvalMemory(e){return{pending:e.turn.suspended.flatMap(t=>pendingApprovals(e,t).flatMap(e=>e.remember===void 0?[]:[e.remember.key])),remembered:e.turn.remembered}}function openLimit(e){let t=ownOpenRequestIds(e),n=e.projection.view,r=openRequests(n).find(e=>e.request.kind===`budget`&&t.has(e.interactionId));return r===void 0?void 0:{row:r,turnId:interactionOwner(n,r).turnId}}function requestLimit(e,t){let{turnId:n}=turnPosition(e.projection);return{events:[interactionOpened({...t,subject:{turnId:n}})],turn:e.turn}}function settleLimit(e){let t=openLimit(e),n=e.projection.view,r=t?.row.interactionId,i=r===void 0?void 0:standingAnswers(n).get(r),a=r===void 0?void 0:responseOf(r,i);if(t===void 0||r===void 0||i===void 0||a===void 0)return{events:[],turn:e.turn};let o=responseLedger(n),s=limitDecision(a);return s===void 0?(o.settle(i.responseId,`refused`,`The budget prompt takes Continue or Stop.`),{events:o.facts(),turn:e.turn}):(o.settle(i.responseId,`applied`),o.closeOthers(r,i.responseId),{events:[...o.facts(),interactionSettled(r,s.granted?`accepted`:`declined`,{cause:{responseId:i.responseId},response:a})],limit:s,turn:e.turn})}function withdrawSignIns(e,t){let n=e.projection.view,r=e.turn.suspended.flatMap(t=>(t.approved??[]).filter(n=>!runnableCalls(e,t).includes(n))),i=[...e.signIns,...r.flatMap(e=>e.signIns??[])],a=[...new Map(i.map(e=>[signInAttemptKey(e),e])).values()].flatMap(e=>{let r=signInInteractionId(e);return n.interactions[r]?.status===`open`?[interactionSettled(r,`withdrawn`,{reason:t})]:[]}),o=settle(e,{results:r.map(({call:e})=>failedCall({callId:e.callId,message:t,toolName:e.toolName}))});return{...o,events:[...a,...o.events],signIns:[]}}function requireSignIn(e,t){let{turnId:n}=turnPosition(e.projection),r=e.projection.view,i=t.challenges.filter(e=>r.interactions[signInInteractionId(e)]===void 0),a=[...supersededChallenges(e.signIns,t.challenges).flatMap(e=>{let t=signInInteractionId(e);return r.interactions[t]?.status===`open`?[interactionSettled(t,`abandoned`,{reason:`Superseded by a newer authorization attempt.`})]:[]}),...i.map(e=>signInOpened(e,{subject:e.candidateId!==void 0&&r.responses[e.candidateId]!==void 0?{responseId:e.candidateId}:{turnId:n}}))],o=withQueued(e.turn,t.queued),s=withSignIns(e.signIns,t.challenges),{calls:c}=t,l=c===void 0?o.suspended:o.suspended.map(e=>awaitSignIns(e,{challenges:t.challenges,stopped:c}));return{events:a,signIns:s,turn:{...o,suspended:l}}}function responseLedger(e){let t=[],n=new Map,r=new Map;for(let t of Object.values(e.responses))r.set(t.responseId,t.status);let submit=i=>{for(let a of i){let{deliveryId:i,interactionId:o,optionId:s,responseId:c,text:l}=a;if(r.has(c)||e.interactions[o]?.status!==`open`)continue;n.set(c,a),r.set(c,`submitted`);let u={};s!==void 0&&(u.optionId=s),l!==void 0&&(u.text=l),t.push(responseSubmitted({deliveryId:i,interactionId:o,responseId:c,value:u}))}},interactionOf=t=>n.get(t)?.interactionId??e.responses[t]?.interactionId,order=t=>e.responses[t]?.introducedAt??2**53-1,openFor=e=>[...r].filter(([t,n])=>n!==`settled`&&interactionOf(t)===e).map(([e])=>e).sort((e,t)=>order(e)-order(t)),settle=(e,n,i)=>{let a=r.get(e);a!==void 0&&a!==`settled`&&(r.set(e,`settled`),t.push(responseSettled(e,n,i)))};return{admit(e){if(r.get(e)!==`submitted`)return;let n=interactionOf(e);if(n!==void 0)for(let t of openFor(n))t!==e&&r.get(t)===`admitted`&&settle(t,`abandoned`,`revised`);r.set(e,`admitted`),t.push(responseAdmitted(e))},closeOthers(e,t){for(let n of openFor(e))n!==t&&settle(n,r.get(n)===`admitted`?`abandoned`:`withdrawn`)},facts:()=>t,submit,settle}}export{admitAnswers,approvalMemory,askApprovals,dispatch,openDeferredApprovals,openLimit,pendingApprovals,queueInput,requestLimit,requireSignIn,settleApprovals,settleLimit,withdrawSignIns,withdrawUnavailable};
@@ -1,54 +1,32 @@
1
- import { type ModelMessage, type TelemetryOptions, type ToolSet, type TypedToolResult } from "ai";
1
+ import type { ApprovalMemory } from "#approval/evaluation.js";
2
+ import type { ModelMessage, TelemetryOptions } from "ai";
2
3
  import type { SessionAuthContext } from "#channel/types.js";
3
- import type { HarnessToolLookup } from "#harness/types.js";
4
+ import { type CallResult, type ToolSignIn } from "#harness/call-executor.js";
5
+ import type { HandleEventFn, HarnessToolLookup } from "#harness/types.js";
4
6
  import type { ApprovedCall } from "#harness/session-machine/state.js";
5
- import type { HandleEventFn } from "#harness/types.js";
6
- type ToolResponsePart = Extract<ModelMessage, {
7
- role: "tool";
8
- }>["content"][number];
9
- export interface ApprovedCallResult {
10
- readonly part: Extract<ToolResponsePart, {
11
- type: "tool-result";
12
- }>;
13
- }
14
- /** What the model reads for an approved call the turn's cancellation cut short. */
15
- export declare const APPROVED_CALL_INTERRUPTED_MESSAGE = "The turn was cancelled while this approved tool call was running. It may have partially run; it was not retried.";
7
+ import type { SessionView } from "#harness/session-machine/view.js";
8
+ export { APPROVED_CALL_INTERRUPTED_MESSAGE } from "#harness/call-executor.js";
16
9
  /**
17
10
  * Runs approved local calls before the model reads their results. Like the calls a model step
18
11
  * runs inline, each streams its progress and result as it goes. The lifecycle owner places the
19
12
  * results in the steps that made the calls.
20
13
  */
21
14
  export declare function runApprovedCalls(input: {
22
- readonly requests: readonly ApprovedCall[];
15
+ readonly approvals: readonly ApprovedCall[];
23
16
  /** The entries of the step that asked, which the approved calls run. */
24
17
  readonly tools: HarnessToolLookup;
25
- readonly approvedTools?: ReadonlySet<string>;
18
+ readonly approvalMemory?: ApprovalMemory;
26
19
  /** The conversation the tools read as `ctx.messages`. */
27
20
  readonly messages: readonly ModelMessage[];
28
- readonly position: {
29
- readonly sequence: number;
30
- readonly stepIndex: number;
31
- readonly turnId: string;
32
- };
33
21
  readonly publish: HandleEventFn;
34
22
  readonly abortSignal: AbortSignal | undefined;
35
23
  /** The step attempt's telemetry, which hears each execution as the AI SDK reports it. */
36
24
  readonly telemetry?: TelemetryOptions;
37
- /** Who approved each request, which the call reads as `ctx.approval`; it still runs as the requester. */
38
- readonly responderOf: (request: ApprovedCall) => SessionAuthContext | undefined;
25
+ /** Who approved each call, which it reads as `ctx.approval`; it still runs as the requester. */
26
+ readonly responderOf?: (approval: ApprovedCall) => SessionAuthContext | undefined;
27
+ /** The session as of the latest publish, which says whether a call's sign-ins are still open. */
28
+ readonly view: () => Pick<SessionView, "projection">;
39
29
  }): Promise<{
40
- readonly settled: readonly ApprovedCallResult[];
41
- readonly toolResults: readonly TypedToolResult<ToolSet>[];
30
+ readonly settled: readonly CallResult[];
31
+ readonly signIns: readonly ToolSignIn[];
42
32
  }>;
43
- /** Records an approved call refused by its final request-policy check. */
44
- export declare function rejectApprovedCall(input: {
45
- readonly request: ApprovedCall;
46
- readonly reason?: string;
47
- readonly position: {
48
- readonly sequence: number;
49
- readonly stepIndex: number;
50
- readonly turnId: string;
51
- };
52
- readonly publish: HandleEventFn;
53
- }): Promise<ApprovedCallResult>;
54
- export {};
@@ -1 +1 @@
1
- import{asSchema}from"ai";import{createLogger,logError}from"#internal/logging.js";import{toError}from"#shared/errors.js";import{createActionPartialEvent,createActionResultEvent,createAuthorizationCompletedEvent}from"#protocol/message.js";import{SEARCH_TOOL_NAME}from"#protocol/catalog-tools.js";import{toModelSchema}from"#tools/schema.js";import{parseJsonObject}from"#shared/json.js";import{isConnectionAuthorizationFailedError}from"#connections/errors.js";import{toolCallModelOutput}from"#harness/tool-call-io.js";import{isAsyncIterable}from"#shared/async-iterable.js";import{throwIfTurnAborted}from"#harness/turn-cancellation.js";import{createRuntimeToolResultFromValue}from"#harness/action-result-helpers.js";import{projectDeltaPresentation,projectResultPresentation}from"#harness/tool-presentation.js";import{isInlineAuthorizationToolResult}from"#harness/inline-tool-authorization.js";import{authorizationEventFields}from"#harness/authorization-event-fields.js";import{TOOL_EXECUTION_DENIED_MESSAGE,failedCall,unavailableToolMessage}from"#harness/input-request-resolution.js";import{recheckApprovedCall,wrapToolExecute}from"#harness/tools.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 runApprovedCalls(e){let t={sequence:e.position.sequence,stepIndex:e.position.stepIndex,turnId:e.position.turnId},reportSignIns=async(n,r)=>{let i=isConnectionAuthorizationFailedError(r)?r.reason??r.message:r===void 0||typeof r==`string`?r:r.message;for(let a of n.signIns??[])await e.publish(createAuthorizationCompletedEvent({...authorizationEventFields(a),...t,outcome:i===void 0?`authorized`:`failed`,...i!==void 0&&{reason:i},...isConnectionAuthorizationFailedError(r)&&{retryable:r.retryable}}))},settleFailure=async(n,r)=>{let{callId:i,toolName:a}=n.action,o=failedCall({callId:i,failure:r,toolName:a});return await reportSignIns(n,r),await e.publish(createActionResultEvent({...t,result:o.result})),{part:o.part}},n=await Promise.allSettled(e.requests.map(async n=>{let r=[],i=[],{callId:a,toolName:o,input:s}=n.action,c=e.tools.get(o),l=c===void 0?void 0:wrapToolExecute(c),u=!1,d;try{if(throwIfTurnAborted(e.abortSignal),c===void 0||l===void 0)return{settled:[await settleFailure(n,unavailableToolMessage(o,e.tools.get(SEARCH_TOOL_NAME)!==void 0))],toolResults:i};if((await asSchema(toModelSchema(c.inputSchema,`input`)).validate?.(s))?.success===!1){let e=`The approved input is no longer valid for tool "${o}". Request a new tool call and approval.`;return{settled:[await settleFailure(n,e)],toolResults:i}}let f=await recheckApprovedCall(c,{abortSignal:e.abortSignal,callId:a,input:s,approvedTools:e.approvedTools});if(f.denied)return await reportSignIns(n,f.reason??TOOL_EXECUTION_DENIED_MESSAGE),r.push(await rejectApprovedCall({request:n,reason:f.reason,position:t,publish:e.publish})),{settled:r,toolResults:i};let p,m,h=toolTelemetry(e.telemetry,{messages:[...e.messages],toolCall:{input:s,toolCallId:a,toolName:o,type:`tool-call`}});await h.started();let g=0;try{await h.execute(async()=>{let r=performance.now();try{u=!0;let r=e.responderOf(n),i=l(s,{...r!==void 0&&{approval:{responder:r}},abortSignal:e.abortSignal,messages:[...e.messages],toolCallId:a});if(isAsyncIterable(i))for await(let n of i)p=n,await e.publish(createActionPartialEvent({...t,presentation:projectDeltaPresentation(c,a,parseJsonObject(s),n),result:createRuntimeToolResultFromValue({callId:a,output:n,toolName:o})}));else p=await i}finally{g=performance.now()-r}})}catch(t){await h.ended({error:t,input:s,toolCallId:a,toolName:o,type:`tool-error`},g),throwIfTurnAborted(e.abortSignal),logError(log,`tool execution failed`,t,{toolName:o,toolCallId:a}),m=toError(t),p=m.message}m===void 0&&await h.ended({input:s,output:p,toolCallId:a,toolName:o,type:`tool-result`},g);let _={input:s,output:p,toolCallId:a,toolName:o,type:`tool-result`};return i.push(_),isInlineAuthorizationToolResult(_)?{settled:r,toolResults:i}:(d={part:{output:m===void 0?await toolCallModelOutput(c,p,a):{type:`error-text`,value:m.message},toolCallId:a,toolName:o,type:`tool-result`}},r.push(d),await reportSignIns(n,m),await e.publish(createActionResultEvent({...t,presentation:m===void 0?projectResultPresentation(c,a,parseJsonObject(s),p):void 0,result:createRuntimeToolResultFromValue({callId:a,isError:m!==void 0,output:m??p,toolName:o})})),{settled:r,toolResults:i})}catch(t){return e.abortSignal?.aborted===!0?(u||throwIfTurnAborted(e.abortSignal),d===void 0?{settled:[interruptedResult(a,o)],toolResults:i}:{settled:[d],toolResults:i}):(logError(log,`approved tool failed`,t,{toolName:o,toolCallId:a}),{settled:[await settleFailure(n,toError(t))],toolResults:i})}})),r=n.find(e=>e.status===`rejected`);if(r?.status===`rejected`&&e.abortSignal?.aborted!==!0)throw r.reason;let i=n.flatMap(e=>e.status===`fulfilled`?[e.value]:[]);return{settled:i.flatMap(e=>e.settled),toolResults:i.flatMap(e=>e.toolResults)}}function interruptedResult(e,t){return{part:{output:{type:`error-text`,value:APPROVED_CALL_INTERRUPTED_MESSAGE},toolCallId:e,toolName:t,type:`tool-result`}}}async function rejectApprovedCall(e){let{callId:t,toolName:n}=e.request.action;return await e.publish(createActionResultEvent({...e.position,rejected:!0,result:{callId:t,isError:!0,kind:`tool-result`,toolName:n,output:{code:`TOOL_EXECUTION_DENIED`,message:e.reason??TOOL_EXECUTION_DENIED_MESSAGE,tool:{result:`not_run`}}}})),{part:{output:{reason:e.reason,type:`execution-denied`},toolCallId:t,toolName:n,type:`tool-result`}}}function toolTelemetry(e,t){let n=e===void 0||e.isEnabled===!1?[]:[e.integrations??[]].flat(),r={...t,callId:`approved:${t.toolCall.toolCallId}`,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}))}}export{APPROVED_CALL_INTERRUPTED_MESSAGE,rejectApprovedCall,runApprovedCalls};
1
+ import{toErrorMessage}from"#shared/errors.js";import{SEARCH_TOOL_NAME}from"#protocol/catalog-tools.js";import{isConnectionAuthorizationFailedError}from"#connections/errors.js";import{callSignInsSettled}from"#harness/session-machine/transitions.js";import{callSettledFrom}from"#harness/call-facts.js";import{isRunnableTool}from"#harness/tools.js";import{changedSinceOffered,changedToolMessage,failedCall,unavailableToolMessage}from"#harness/approval-outcome.js";import{APPROVED_CALL_INTERRUPTED_MESSAGE,executeToolCall}from"#harness/call-executor.js";async function runApprovedCalls(e){let reportSignIns=async(t,n)=>{if((t.signIns?.length??0)===0)return;let r=isConnectionAuthorizationFailedError(n)?n:void 0,i=callSignInsSettled(e.view(),t,n===void 0?void 0:{reason:r===void 0?toErrorMessage(n):r.reason??r.message,...r!==void 0&&{retryable:r.retryable}});i.length>0&&await e.publish(i)},t=await Promise.allSettled(e.approvals.map(async t=>{let{call:n,interactionId:r}=t,{callId:i,toolName:a}=n,o=e.tools.get(a);if(changedSinceOffered(n,o)){let n=changedToolMessage(a),r=failedCall({callId:i,message:n,toolName:a});return await reportSignIns(t,n),await e.publish(callSettledFrom(r.result)),{settled:[{part:r.part}],toolResults:[]}}if(isRunnableTool(o)){let i=e.responderOf?.(t);return await executeToolCall(n,{...e,...r!==void 0&&{clearedBy:{interactionId:r}},definition:o,...i!==void 0&&{responder:i},beforeResult:e=>reportSignIns(t,e)},`recheck`)}let s=e.tools.get(SEARCH_TOOL_NAME)!==void 0,c=unavailableToolMessage(a,s),l=failedCall({callId:i,message:c,toolName:a});return await reportSignIns(t,c),await e.publish(callSettledFrom(l.result)),{settled:[{part:l.part}],toolResults:[]}})),n=t.find(e=>e.status===`rejected`);if(n?.status===`rejected`&&e.abortSignal?.aborted!==!0)throw n.reason;let r=t.flatMap(e=>e.status===`fulfilled`?[e.value]:[]);return{settled:r.flatMap(e=>e.settled),signIns:r.flatMap(e=>e.signIn===void 0?[]:[e.signIn])}}export{APPROVED_CALL_INTERRUPTED_MESSAGE,runApprovedCalls};
@@ -1,56 +1,18 @@
1
- /**
2
- * Deterministic HITL continuation prompt for session usage limits.
3
- *
4
- * When a durable session reaches its usage limit, the harness
5
- * parks on a harness-authored input request instead of failing the session.
6
- * The request is derived only from the session, turn, and usage, so
7
- * identical session state always produces an identical prompt — no model call
8
- * is involved.
9
- */
10
- import type { InputRequest, InputResponse } from "#shared/input.js";
1
+ import type { InteractionRequest } from "#protocol/session-events/families/interaction.js";
2
+ import type { ResponseValue } from "#protocol/session-events/families/response.js";
11
3
  import type { JsonObject } from "#shared/json.js";
12
4
  import type { TokenUsage } from "#shared/token-usage.js";
13
- /** Option id that declines continuation and ends the session. */
14
- export declare const SESSION_LIMIT_STOP_OPTION_ID = "stop";
15
- /**
16
- * Builds the deterministic continuation prompt for a session that reached its
17
- * usage limit.
18
- */
5
+ export interface LimitAsk {
6
+ readonly interactionId: string;
7
+ readonly request: InteractionRequest;
8
+ }
19
9
  export declare function createSessionLimitContinuationRequest(input: {
20
10
  readonly sessionId: string;
21
- readonly total: TokenUsage;
22
- /** The turn's `sequence`, which tells its prompt apart from another turn's at the same usage. */
23
11
  readonly turnSequence: number;
24
- readonly window: TokenUsage;
25
- /** Which usage window the prompt is for; approving starts the next one. */
26
12
  readonly windowIndex: number;
27
- }): InputRequest;
28
- /** `usage` as JSON: an unreported cost is left out. */
13
+ }): LimitAsk;
29
14
  export declare function toJsonUsage(usage: TokenUsage): JsonObject;
30
- /**
31
- * Returns true when a request is a harness-authored session-limit
32
- * continuation prompt.
33
- */
34
- export declare function isSessionLimitContinuationRequest(request: InputRequest): boolean;
35
- /**
36
- * Matches request ids minted by {@link createSessionLimitContinuationRequest}.
37
- *
38
- * Continuation requests never enter model history (no matching tool call
39
- * exists), so the id shape is the only durable marker for recognizing a
40
- * stale continuation answer after its request left the pending batch.
41
- */
42
15
  export declare function isSessionLimitContinuationRequestId(requestId: string): boolean;
43
- /**
44
- * Resolves the user's answer to a session-limit continuation prompt.
45
- *
46
- * Returns `{ granted: true }` for "continue", `{ granted: false }` for
47
- * "stop", and `undefined` when the batch carries no continuation request or
48
- * the user has not answered it — an unanswered prompt is re-raised on the
49
- * next step because the violation still holds.
50
- */
51
- export declare function resolveSessionLimitContinuation(input: {
52
- readonly requests: readonly InputRequest[];
53
- readonly responses: readonly InputResponse[];
54
- }): {
16
+ export declare function limitDecision(answer: ResponseValue): {
55
17
  readonly granted: boolean;
56
18
  } | undefined;
@@ -1 +1 @@
1
- const SESSION_LIMIT_CONTINUE_OPTION_ID=`continue`,SESSION_LIMIT_STOP_OPTION_ID=`stop`;function createSessionLimitContinuationRequest(e){let{sessionId:t,total:n,turnSequence:r,window:i,windowIndex:a}=e,o=`${t}:${String(r)}:limit:usage:${String(a)}`;return{action:{callId:o,input:{total:toJsonUsage(n),window:toJsonUsage(i)},kind:`tool-call`,toolName:`session_limit_continuation`},allowFreeform:!1,display:`confirmation`,kind:`session-limit`,options:[{description:`Start a new usage window`,id:SESSION_LIMIT_CONTINUE_OPTION_ID,label:`Approve`,style:`primary`},{description:`Stop now`,id:SESSION_LIMIT_STOP_OPTION_ID,label:`Stop`,style:`danger`}],prompt:SESSION_LIMIT_PROMPT,requestId:o}}function toJsonUsage(e){let{costUsd:t,...n}=e;return t===void 0?n:{...n,costUsd:t}}const SESSION_LIMIT_PROMPT=`This session has hit its usage limit. This is a guardrail against defective long-running sessions. If session activity looks fine, just approve to keep going.`;function isSessionLimitContinuationRequest(e){return e.kind===`session-limit`}function isSessionLimitContinuationRequestId(e){return/:limit:(?:usage|input|output):\d+$/u.test(e)||/:limit:token-cost:\d+(?:\.\d+)?(?:e[+-]?\d+)?$/iu.test(e)}function resolveSessionLimitContinuation(e){let t=e.requests.find(isSessionLimitContinuationRequest);if(t===void 0)return;let n=e.responses.find(e=>e.requestId===t.requestId);if(n!==void 0){if(n.optionId===SESSION_LIMIT_CONTINUE_OPTION_ID)return{granted:!0};if(n.optionId===`stop`)return{granted:!1}}}export{SESSION_LIMIT_STOP_OPTION_ID,createSessionLimitContinuationRequest,isSessionLimitContinuationRequest,isSessionLimitContinuationRequestId,resolveSessionLimitContinuation,toJsonUsage};
1
+ import{APPROVE_OPTION_ID,DENY_OPTION_ID}from"#shared/input.js";function createSessionLimitContinuationRequest(e){let{sessionId:t,turnSequence:n,windowIndex:r}=e;return{interactionId:`${t}:${n}:limit:usage:${r}`,request:{allowFreeform:!1,display:`confirmation`,kind:`budget`,options:[{description:`Start a new usage window`,id:APPROVE_OPTION_ID,label:`Approve`,style:`primary`},{description:`Stop now`,id:DENY_OPTION_ID,label:`Stop`,style:`danger`}],prompt:`This session has hit its usage limit. This is a guardrail against defective long-running sessions. If session activity looks fine, just approve to keep going.`}}}function toJsonUsage(e){let{costUsd:t,...n}=e;return t===void 0?n:{...n,costUsd:t}}function isSessionLimitContinuationRequestId(e){return/:limit:(?:usage|input|output):\d+$/u.test(e)||/:limit:token-cost:\d+(?:\.\d+)?(?:e[+-]?\d+)?$/iu.test(e)}function limitDecision(e){if(e.optionId===APPROVE_OPTION_ID)return{granted:!0};if(e.optionId===DENY_OPTION_ID)return{granted:!1}}export{createSessionLimitContinuationRequest,isSessionLimitContinuationRequestId,limitDecision,toJsonUsage};
@@ -1,27 +1,28 @@
1
+ import { type LimitAsk } from "#harness/hitl/budget-request.js";
2
+ import type { SessionProjection } from "#protocol/session-projection.js";
1
3
  import type { HarnessSession } from "#harness/types.js";
2
4
  import type { SessionUsageLimit } from "#shared/agent-definition.js";
3
- import type { InputRequest } from "#shared/input.js";
4
5
  import type { JsonObject } from "#shared/json.js";
5
- /**
6
- * The limit for agents that author none: 40M new input tokens per window. Cache reads are
7
- * replayed history, not new work, so only uncached input and cache writes count.
8
- */
6
+ import type { TokenUsage } from "#shared/token-usage.js";
7
+ /** Cache reads replay history rather than spending new input. Cache writes still count. */
9
8
  export declare const DEFAULT_SESSION_USAGE_LIMIT: SessionUsageLimit;
10
9
  export type SessionUsageLimitCheck = {
11
10
  readonly kind: "within";
12
11
  } | {
13
12
  readonly kind: "ask";
14
- readonly request: InputRequest;
13
+ readonly ask: LimitAsk;
15
14
  } | {
16
15
  readonly kind: "fail";
17
16
  readonly code: string;
18
17
  readonly details: JsonObject;
19
18
  readonly message: string;
20
19
  };
21
- /** Whether the session may call the model, may ask to continue, or must fail. */
22
20
  export declare function checkSessionUsageLimit(input: {
23
21
  readonly canAsk: boolean;
24
22
  readonly limit: SessionUsageLimit;
25
- readonly session: HarnessSession;
23
+ readonly session: Pick<HarnessSession, "sessionId" | "state">;
26
24
  readonly turnSequence: number;
25
+ readonly usage: TokenUsage;
26
+ /** The window the last accepted budget prompt started; the stored one by default. */
27
+ readonly window?: SessionProjection["usageWindow"];
27
28
  }): SessionUsageLimitCheck;
@@ -1 +1 @@
1
- import{getSessionUsage,getSessionUsageWindow,getSessionUsageWindowIndex}from"#harness/turn-tag-state.js";import{createSessionLimitContinuationRequest,toJsonUsage}from"#harness/hitl/budget-request.js";const DEFAULT_SESSION_USAGE_LIMIT=({window:e})=>e.inputTokens-e.cacheReadTokens>=4e7;function checkSessionUsageLimit(e){let t=getSessionUsage(e.session),n=getSessionUsageWindow(e.session);return isEmptyUsage(n)||!e.limit({total:t,window:n})?{kind:`within`}:e.canAsk?{kind:`ask`,request:createSessionLimitContinuationRequest({sessionId:e.session.sessionId,total:t,turnSequence:e.turnSequence,window:n,windowIndex:getSessionUsageWindowIndex(e.session)})}:{code:`SESSION_USAGE_LIMIT_REACHED`,details:{total:toJsonUsage(t),window:toJsonUsage(n)},kind:`fail`,message:`The session reached its usage limit.`}}function isEmptyUsage(e){return e.inputTokens===0&&e.outputTokens===0&&!e.costUsd}export{DEFAULT_SESSION_USAGE_LIMIT,checkSessionUsageLimit};
1
+ import{storedProjection}from"#harness/session-machine/view.js";import{usageSince}from"#shared/token-usage-math.js";import{createSessionLimitContinuationRequest,toJsonUsage}from"#harness/hitl/budget-request.js";const DEFAULT_SESSION_USAGE_LIMIT=({window:e})=>e.inputTokens-e.cacheReadTokens>=4e7;function checkSessionUsageLimit(e){let t=e.usage,n=e.window??storedProjection(e.session.state).usageWindow,r=usageSince(t,n?.start);return r.inputTokens===0&&r.outputTokens===0&&!r.costUsd||!e.limit({total:{...t},window:{...r}})?{kind:`within`}:e.canAsk?{kind:`ask`,ask:createSessionLimitContinuationRequest({sessionId:e.session.sessionId,turnSequence:e.turnSequence,windowIndex:n?.index??0})}:{kind:`fail`,code:`SESSION_USAGE_LIMIT_REACHED`,details:{total:toJsonUsage(t),window:toJsonUsage(r)},message:`The session reached its usage limit.`}}export{DEFAULT_SESSION_USAGE_LIMIT,checkSessionUsageLimit};
@@ -1,7 +1,6 @@
1
- import type { UserContent } from "ai";
2
- import type { StepInput } from "#harness/types.js";
3
- import type { InputResponse } from "#shared/input.js";
4
- import type { SuspendedStep } from "#harness/session-machine/state.js";
1
+ import type { MessageContent } from "#shared/message-content.js";
2
+ import type { HarnessStepInput } from "#harness/types.js";
3
+ import type { SessionView as SessionTables } from "#protocol/session-projection/tables.js";
5
4
  import type { SessionView } from "#harness/session-machine/view.js";
6
5
  /**
7
6
  * The delivery a step answers with: input queued behind earlier work joins it, unless the
@@ -9,36 +8,36 @@ import type { SessionView } from "#harness/session-machine/view.js";
9
8
  * already closed, never authorizes anything: a stale session-limit answer is dropped, and
10
9
  * any other becomes plain text the model reads.
11
10
  */
12
- export declare function deliver(view: SessionView, input: StepInput | undefined, options: {
11
+ export declare function deliver(view: SessionView, input: HarnessStepInput | undefined, options: {
13
12
  readonly takeQueued: boolean;
14
13
  readonly typedAnswers?: boolean;
15
14
  }): {
16
- readonly input?: StepInput;
17
- readonly displayMessage?: string | UserContent;
15
+ readonly input?: HarnessStepInput;
16
+ readonly displayMessage?: MessageContent;
18
17
  readonly takeQueued: boolean;
19
18
  };
20
- export type ResolvedStepInput = StepInput & {
19
+ export type ResolvedStepInput = HarnessStepInput & {
21
20
  readonly messageConsumed?: boolean;
22
21
  };
23
22
  /**
24
23
  * Plain text answers a budget prompt; `resolveTypedApproval` answers approvals. A channel
25
24
  * that wraps the typed text in an envelope for the model attaches the text itself to answer with.
26
- * The answer consumes the message and the context the channel sent about it: the model reads
27
- * neither.
25
+ * The answer consumes the message, with the context and history the channel sent with it: the
26
+ * model reads none of them.
28
27
  */
29
- export declare function resolveTextInput(batch: Pick<SuspendedStep, "requests">, stepInput: StepInput | undefined): ResolvedStepInput | undefined;
28
+ export declare function resolveTextInput(view: SessionTables, stepInput: HarnessStepInput | undefined): ResolvedStepInput | undefined;
30
29
  /**
31
30
  * Turns a typed reply into a response to the first open request when that request is one of
32
31
  * this turn's approvals. The approval coordinator then settles it, or asks its response policy
33
32
  * about the person who typed, as it does for a press. A batch's other approvals stay open for
34
33
  * later replies.
35
34
  */
36
- export declare function resolveTypedApproval(view: Pick<SessionView, "projection" | "turn">, stepInput: StepInput | undefined): ResolvedStepInput | undefined;
37
- export declare function canonicalize(responses: readonly InputResponse[]): readonly InputResponse[];
38
- export declare function isEmptyInput(input: StepInput): boolean;
39
- export declare function withoutResponses(input: ResolvedStepInput | undefined): StepInput | undefined;
40
- /** The turn's own input: the message a plain-text answer didn't consume, its history and context. */
41
- export declare function turnInputOnly(input: ResolvedStepInput | undefined): StepInput | undefined;
35
+ export declare function resolveTypedApproval(view: Pick<SessionView, "projection" | "turn">, stepInput: HarnessStepInput | undefined): ResolvedStepInput | undefined;
36
+ export declare function typedResponseId(deliveryId: string, index: number): string;
37
+ export declare function isEmptyInput(input: HarnessStepInput): boolean;
38
+ export declare function withoutResponses(input: ResolvedStepInput | undefined): HarnessStepInput | undefined;
39
+ /** The turn's own input: the message a plain-text answer didn't consume, and its context. */
40
+ export declare function turnInputOnly(input: ResolvedStepInput | undefined): HarnessStepInput | undefined;
42
41
  /** What of the input isn't the turn's: answers, and the output the session asks for. */
43
42
  export declare function withoutTurnInput(input: ResolvedStepInput | undefined): ResolvedStepInput;
44
43
  export declare function compactInput(input: ResolvedStepInput | undefined): ResolvedStepInput;