eve 0.83.2 → 0.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1562) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +1 -5
  3. package/dist/src/_virtual/_rolldown/runtime.js +1 -1
  4. package/dist/src/acp/adapter.d.ts +8 -5
  5. package/dist/src/acp/adapter.js +1 -1
  6. package/dist/src/ai/decide.d.ts +3 -7
  7. package/dist/src/ai/decide.js +1 -1
  8. package/dist/src/ai/decision-adapter.d.ts +7 -0
  9. package/dist/src/ai/decision-adapter.js +1 -0
  10. package/dist/src/ai/decision-types.d.ts +86 -0
  11. package/dist/src/approval/definition.d.ts +5 -12
  12. package/dist/src/approval/evaluation.d.ts +48 -0
  13. package/dist/src/approval/evaluation.js +1 -0
  14. package/dist/src/approval/status.d.ts +14 -0
  15. package/dist/src/approval/status.js +1 -0
  16. package/dist/src/channel/adapter-context.d.ts +1 -3
  17. package/dist/src/channel/adapter-context.js +1 -1
  18. package/dist/src/channel/adapter.d.ts +34 -26
  19. package/dist/src/channel/adapter.js +1 -1
  20. package/dist/src/channel/audience.d.ts +0 -3
  21. package/dist/src/channel/audience.js +1 -1
  22. package/dist/src/channel/auth/definitions.d.ts +532 -0
  23. package/dist/src/channel/auth/definitions.js +1 -0
  24. package/dist/src/channel/auth/jwt-ecdsa.js +1 -1
  25. package/dist/src/channel/auth/jwt-hmac.js +1 -1
  26. package/dist/src/channel/auth/oidc.js +1 -1
  27. package/dist/src/channel/channel-address.d.ts +12 -10
  28. package/dist/src/channel/channel-address.js +1 -1
  29. package/dist/src/channel/channel-operations.d.ts +21 -22
  30. package/dist/src/channel/channel-operations.js +1 -1
  31. package/dist/src/channel/compiled-channel.d.ts +4 -4
  32. package/dist/src/channel/conversation-context.js +1 -1
  33. package/dist/src/channel/cors.d.ts +2 -2
  34. package/dist/src/channel/cors.js +1 -1
  35. package/dist/src/channel/cross-channel-receive.d.ts +3 -3
  36. package/dist/src/channel/delivery-idempotency.d.ts +6 -0
  37. package/dist/src/channel/delivery-idempotency.js +1 -1
  38. package/dist/src/channel/delivery-metadata.d.ts +2 -2
  39. package/dist/src/channel/delivery.d.ts +8 -0
  40. package/dist/src/channel/delivery.js +1 -0
  41. package/dist/src/channel/interaction-prompts.d.ts +54 -0
  42. package/dist/src/channel/interaction-prompts.js +1 -0
  43. package/dist/src/channel/invoke-tool.d.ts +11 -18
  44. package/dist/src/channel/pending-authorization.d.ts +3 -14
  45. package/dist/src/channel/pending-authorization.js +1 -1
  46. package/dist/src/channel/prompt-queue.d.ts +11 -19
  47. package/dist/src/channel/prompt-queue.js +1 -1
  48. package/dist/src/channel/resolve-text.d.ts +11 -18
  49. package/dist/src/channel/resolve-text.js +2 -2
  50. package/dist/src/channel/resolved-prompt.d.ts +7 -5
  51. package/dist/src/channel/resolved-prompt.js +1 -1
  52. package/dist/src/channel/routes.d.ts +4 -4
  53. package/dist/src/channel/schedule.d.ts +2 -2
  54. package/dist/src/channel/schedule.js +1 -1
  55. package/dist/src/channel/send-input.d.ts +3 -3
  56. package/dist/src/channel/send-input.js +1 -1
  57. package/dist/src/channel/session-callback.js +1 -1
  58. package/dist/src/channel/session-not-active-error.d.ts +8 -12
  59. package/dist/src/channel/session-not-active-error.js +1 -1
  60. package/dist/src/channel/session.d.ts +33 -59
  61. package/dist/src/channel/session.js +1 -1
  62. package/dist/src/channel/sign-in.d.ts +61 -0
  63. package/dist/src/channel/sign-in.js +3 -0
  64. package/dist/src/channel/surface.d.ts +44 -0
  65. package/dist/src/channel/surface.js +1 -0
  66. package/dist/src/channel/task-card.d.ts +24 -114
  67. package/dist/src/channel/task-card.js +1 -1
  68. package/dist/src/channel/types.d.ts +116 -110
  69. package/dist/src/channel/types.js +1 -1
  70. package/dist/src/chunks/use-eve-agent-BbbguIdB.js +5030 -0
  71. package/dist/src/chunks/use-eve-agent-DWjyzplb.js +5077 -0
  72. package/dist/src/cli/commands/logs-events.d.ts +2 -0
  73. package/dist/src/cli/commands/logs-events.js +2 -2
  74. package/dist/src/cli/dev/command.js +1 -1
  75. package/dist/src/cli/dev/remote-print.d.ts +8 -0
  76. package/dist/src/cli/dev/remote-print.js +1 -0
  77. package/dist/src/cli/dev/tui/conversation-view.d.ts +24 -19
  78. package/dist/src/cli/dev/tui/conversation-view.js +1 -1
  79. package/dist/src/cli/dev/tui/diagnostic-presentation.d.ts +0 -10
  80. package/dist/src/cli/dev/tui/diagnostic-presentation.js +2 -3
  81. package/dist/src/cli/dev/tui/errors.d.ts +9 -65
  82. package/dist/src/cli/dev/tui/errors.js +1 -1
  83. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  84. package/dist/src/cli/dev/tui/runner.js +3 -3
  85. package/dist/src/cli/dev/tui/task-records.d.ts +3 -3
  86. package/dist/src/cli/dev/tui/task-records.js +1 -1
  87. package/dist/src/cli/dev/tui/terminal-renderer.js +10 -10
  88. package/dist/src/cli/dev/tui/terminal-tool-part.d.ts +2 -2
  89. package/dist/src/cli/dev/tui/terminal-tool-part.js +1 -1
  90. package/dist/src/cli/dev/tui/test/fake-eve-server.d.ts +3 -3
  91. package/dist/src/cli/dev/tui/test/fake-eve-server.js +1 -1
  92. package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
  93. package/dist/src/cli/dev/tui/transcript-parts.d.ts +16 -16
  94. package/dist/src/cli/dev/tui/transcript-parts.js +3 -3
  95. package/dist/src/cli/dev/tui/transcript.d.ts +0 -4
  96. package/dist/src/cli/dev/tui/transcript.js +1 -1
  97. package/dist/src/cli/dev/tui/tui.js +1 -1
  98. package/dist/src/cli/run.d.ts +0 -2
  99. package/dist/src/cli/run.js +1 -1
  100. package/dist/src/cli/telemetry/index.js +1 -1
  101. package/dist/src/client/agent-base-url.d.ts +4 -0
  102. package/dist/src/client/agent-base-url.js +1 -0
  103. package/dist/src/client/agent-info-schema.d.ts +1 -923
  104. package/dist/src/client/agent-info-schema.js +1 -1
  105. package/dist/src/client/agent-info-types.d.ts +281 -0
  106. package/dist/src/client/agent-session.d.ts +19 -22
  107. package/dist/src/client/agent-session.js +1 -1
  108. package/dist/src/client/agent-stream-follower.d.ts +11 -20
  109. package/dist/src/client/agent-stream-follower.js +1 -1
  110. package/dist/src/client/client-error.d.ts +2 -1
  111. package/dist/src/client/client-error.js +1 -1
  112. package/dist/src/client/client.d.ts +1 -1
  113. package/dist/src/client/client.js +1 -1
  114. package/dist/src/client/conversation-client.d.ts +37 -28
  115. package/dist/src/client/conversation-client.js +1 -1
  116. package/dist/src/client/conversation-state.d.ts +70 -73
  117. package/dist/src/client/conversation-state.js +1 -1
  118. package/dist/src/client/conversation.d.ts +51 -0
  119. package/dist/src/client/conversation.js +1 -0
  120. package/dist/src/client/delivery-events.d.ts +3 -0
  121. package/dist/src/client/delivery-events.js +1 -0
  122. package/dist/src/client/delivery.d.ts +36 -0
  123. package/dist/src/client/delivery.js +1 -0
  124. package/dist/src/client/file-parts.d.ts +9 -4
  125. package/dist/src/client/file-parts.js +1 -1
  126. package/dist/src/client/health-schema.d.ts +1 -1
  127. package/dist/src/client/health-types.d.ts +6 -0
  128. package/dist/src/client/index.d.ts +17 -23
  129. package/dist/src/client/index.js +1 -1
  130. package/dist/src/client/message-types.d.ts +92 -0
  131. package/dist/src/client/message-types.js +1 -0
  132. package/dist/src/client/messages.d.ts +30 -0
  133. package/dist/src/client/messages.js +1 -0
  134. package/dist/src/client/ndjson.d.ts +6 -11
  135. package/dist/src/client/ndjson.js +3 -3
  136. package/dist/src/client/open-stream.d.ts +47 -20
  137. package/dist/src/client/open-stream.js +1 -1
  138. package/dist/src/client/optimistic-message-submissions.d.ts +10 -19
  139. package/dist/src/client/optimistic-message-submissions.js +1 -1
  140. package/dist/src/client/session-controls.d.ts +23 -26
  141. package/dist/src/client/session-controls.js +1 -1
  142. package/dist/src/client/session-event-stream.d.ts +5 -16
  143. package/dist/src/client/session-event-stream.js +1 -1
  144. package/dist/src/client/session-store-helpers.d.ts +8 -0
  145. package/dist/src/client/session-store-helpers.js +2 -0
  146. package/dist/src/client/session-store-state.d.ts +80 -0
  147. package/dist/src/client/session-store-state.js +1 -0
  148. package/dist/src/client/session-store.d.ts +48 -0
  149. package/dist/src/client/session-store.js +1 -0
  150. package/dist/src/client/session-utils.d.ts +45 -41
  151. package/dist/src/client/session-utils.js +2 -1
  152. package/dist/src/client/session.d.ts +32 -23
  153. package/dist/src/client/session.js +1 -1
  154. package/dist/src/client/sessions.d.ts +2 -2
  155. package/dist/src/client/stream-version.d.ts +3 -1
  156. package/dist/src/client/stream-version.js +1 -1
  157. package/dist/src/client/transcript.d.ts +43 -0
  158. package/dist/src/client/transcript.js +2 -0
  159. package/dist/src/client/types.d.ts +21 -82
  160. package/dist/src/client/url.d.ts +3 -3
  161. package/dist/src/compiled/.vendor-stamp.json +1 -1
  162. package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +34 -34
  163. package/dist/src/compiled/@ai-sdk/google/index.d.ts +15 -15
  164. package/dist/src/compiled/@ai-sdk/openai/index.d.ts +38 -38
  165. package/dist/src/compiled/@chat-adapter/slack/fetch-QqNM_Ef3.d.ts +4 -0
  166. package/dist/src/compiled/@chat-adapter/twilio/types-BaIqtt65.d.ts +100 -0
  167. package/dist/src/compiled/@linqapp/chat-sdk-adapter/adapter.d.ts +129 -0
  168. package/dist/src/compiled/@linqapp/chat-sdk-adapter/message-parser.d.ts +14 -0
  169. package/dist/src/compiled/@linqapp/chat-sdk-adapter/text-decorations.d.ts +28 -0
  170. package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +1 -1
  171. package/dist/src/compiled/@workflow/core/serialization/types.d.ts +1 -1
  172. package/dist/src/compiled/@workflow/core/serialization.d.ts +2 -2
  173. package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +2 -2
  174. package/dist/src/compiled/semver/index.d.ts +2 -0
  175. package/dist/src/compiler/development-extensions.js +1 -1
  176. package/dist/src/compiler/extension-compatibility.d.ts +19 -290
  177. package/dist/src/compiler/extension-compatibility.js +1 -1
  178. package/dist/src/compiler/manifest.d.ts +1 -9
  179. package/dist/src/compiler/manifest.js +1 -1
  180. package/dist/src/compiler/normalize-agent-config.js +1 -1
  181. package/dist/src/compiler/normalize-connection.js +1 -1
  182. package/dist/src/compiler/normalize-hook.js +1 -1
  183. package/dist/src/compiler/normalize-instructions.js +1 -1
  184. package/dist/src/compiler/normalize-manifest.js +1 -1
  185. package/dist/src/compiler/normalize-memory.js +1 -1
  186. package/dist/src/compiler/normalize-schedule.js +1 -1
  187. package/dist/src/compiler/normalize-skill.js +1 -1
  188. package/dist/src/compiler/normalize-subagent.d.ts +0 -5
  189. package/dist/src/compiler/normalize-subagent.js +1 -1
  190. package/dist/src/compiler/normalize-tool.js +1 -1
  191. package/dist/src/compiler/remote-agent-node.d.ts +1 -6
  192. package/dist/src/compiler/source-graph.d.ts +0 -1
  193. package/dist/src/compiler/source-graph.js +1 -1
  194. package/dist/src/computer-use/extension/lib/computer-use-sandbox.js +1 -1
  195. package/dist/src/computer-use/extension/lib/sandbox.d.ts +1 -1
  196. package/dist/src/computer-use/extension/lib/sandbox.js +1 -1
  197. package/dist/src/computer-use/extension/tools/computer_use.js +1 -1
  198. package/dist/src/connections/errors.d.ts +3 -3
  199. package/dist/src/context/accessors.d.ts +0 -13
  200. package/dist/src/context/accessors.js +1 -1
  201. package/dist/src/context/container.d.ts +8 -11
  202. package/dist/src/context/container.js +1 -1
  203. package/dist/src/context/key-names.d.ts +1 -0
  204. package/dist/src/context/key-names.js +1 -1
  205. package/dist/src/context/keys.d.ts +20 -104
  206. package/dist/src/context/keys.js +1 -1
  207. package/dist/src/context/memory-tools.d.ts +4 -2
  208. package/dist/src/context/memory-tools.js +1 -1
  209. package/dist/src/context/providers/connection.js +1 -1
  210. package/dist/src/context/providers/session.js +1 -1
  211. package/dist/src/context/schedule-collection-tools.d.ts +2 -2
  212. package/dist/src/context/schedule-collection-tools.js +1 -1
  213. package/dist/src/context/session-context.d.ts +4 -2
  214. package/dist/src/discover/extensions.d.ts +2 -3
  215. package/dist/src/discover/extensions.js +1 -1
  216. package/dist/src/discover/manifest.js +1 -1
  217. package/dist/src/discover/skills.js +1 -1
  218. package/dist/src/dynamic/definition.d.ts +98 -108
  219. package/dist/src/dynamic/definition.js +1 -1
  220. package/dist/src/evals/assertions/collector.js +1 -1
  221. package/dist/src/evals/assertions/run.d.ts +12 -11
  222. package/dist/src/evals/assertions/run.js +2 -2
  223. package/dist/src/evals/assertions/scoped.js +1 -1
  224. package/dist/src/evals/cli/eval-client.js +1 -1
  225. package/dist/src/evals/cli/eval.js +2 -2
  226. package/dist/src/evals/context.js +1 -1
  227. package/dist/src/evals/expect/index.d.ts +0 -1
  228. package/dist/src/evals/index.d.ts +2 -5
  229. package/dist/src/evals/judge.js +1 -1
  230. package/dist/src/evals/match.d.ts +20 -17
  231. package/dist/src/evals/match.js +1 -1
  232. package/dist/src/evals/mock-model.d.ts +5 -1
  233. package/dist/src/evals/mock-model.js +1 -1
  234. package/dist/src/evals/output.d.ts +3 -0
  235. package/dist/src/evals/output.js +1 -0
  236. package/dist/src/evals/reported-tool-name.js +1 -1
  237. package/dist/src/evals/reporters/index.d.ts +4 -4
  238. package/dist/src/evals/reporters/index.js +1 -1
  239. package/dist/src/evals/runner/artifacts.js +1 -1
  240. package/dist/src/evals/runner/derive-run-facts.d.ts +8 -40
  241. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  242. package/dist/src/evals/runner/execute-eval.js +1 -1
  243. package/dist/src/evals/runner/execute-task.d.ts +3 -1
  244. package/dist/src/evals/runner/execute-task.js +1 -1
  245. package/dist/src/evals/runner/reporters/braintrust.d.ts +1 -1
  246. package/dist/src/evals/runner/reporters/braintrust.js +2 -2
  247. package/dist/src/evals/runner/reporters/console.d.ts +1 -1
  248. package/dist/src/evals/runner/reporters/console.js +1 -1
  249. package/dist/src/evals/runner/reporters/datadog.d.ts +1 -1
  250. package/dist/src/evals/runner/reporters/datadog.js +2 -2
  251. package/dist/src/evals/runner/reporters/junit.d.ts +1 -1
  252. package/dist/src/evals/runner/reporters/junit.js +2 -2
  253. package/dist/src/evals/runner/reporters/types.d.ts +2 -2
  254. package/dist/src/evals/runner/run-evals.d.ts +1 -1
  255. package/dist/src/evals/session-cleanup.d.ts +1 -1
  256. package/dist/src/evals/session-cleanup.js +1 -1
  257. package/dist/src/evals/session-content.d.ts +2 -2
  258. package/dist/src/evals/session-content.js +2 -1
  259. package/dist/src/evals/session-manager.d.ts +3 -6
  260. package/dist/src/evals/session-manager.js +1 -1
  261. package/dist/src/evals/session.d.ts +33 -24
  262. package/dist/src/evals/session.js +2 -2
  263. package/dist/src/evals/target.js +1 -1
  264. package/dist/src/evals/types.d.ts +115 -94
  265. package/dist/src/eve-channel/create-request.d.ts +3 -5
  266. package/dist/src/eve-channel/descendant-stream.d.ts +9 -0
  267. package/dist/src/eve-channel/descendant-stream.js +1 -0
  268. package/dist/src/eve-channel/index.d.ts +2 -2
  269. package/dist/src/eve-channel/index.js +1 -1
  270. package/dist/src/eve-channel/request.d.ts +7 -6
  271. package/dist/src/eve-channel/request.js +1 -3
  272. package/dist/src/eve-channel/stream-headers.d.ts +1 -1
  273. package/dist/src/eve-channel/stream-headers.js +1 -1
  274. package/dist/src/eve-channel/support.d.ts +25 -13
  275. package/dist/src/eve-channel/support.js +2 -2
  276. package/dist/src/eve-channel/types.d.ts +7 -30
  277. package/dist/src/execution/agent-sessions/message.d.ts +4 -0
  278. package/dist/src/execution/agent-sessions/message.js +1 -0
  279. package/dist/src/execution/agent-sessions/metadata.js +1 -1
  280. package/dist/src/execution/agent-sessions/remote-credentials.d.ts +19 -0
  281. package/dist/src/execution/agent-sessions/remote-credentials.js +1 -0
  282. package/dist/src/execution/agent-sessions/remote.d.ts +35 -13
  283. package/dist/src/execution/agent-sessions/remote.js +1 -1
  284. package/dist/src/execution/agent-sessions/requests.d.ts +6 -6
  285. package/dist/src/execution/agent-sessions/requests.js +1 -1
  286. package/dist/src/execution/agent-sessions/session.js +1 -1
  287. package/dist/src/execution/agent-sessions/steps.d.ts +26 -4
  288. package/dist/src/execution/agent-sessions/steps.js +1 -1
  289. package/dist/src/execution/agent-sessions/target.d.ts +2 -1
  290. package/dist/src/execution/agent-sessions/target.js +1 -1
  291. package/dist/src/execution/agent-sessions/usage.d.ts +0 -8
  292. package/dist/src/execution/agent-sessions/usage.js +1 -1
  293. package/dist/src/execution/cancelled-model-call-batch.d.ts +4 -2
  294. package/dist/src/execution/cancelled-model-call-batch.js +1 -1
  295. package/dist/src/execution/cancelled-turn-message.d.ts +2 -2
  296. package/dist/src/execution/cancelled-turn-message.js +1 -1
  297. package/dist/src/execution/catalog/connection-auth.js +1 -1
  298. package/dist/src/execution/catalog/connection-entry.js +1 -1
  299. package/dist/src/execution/catalog/rank.js +1 -1
  300. package/dist/src/execution/catalog/search.js +1 -1
  301. package/dist/src/execution/catalog/skills.js +1 -1
  302. package/dist/src/execution/catalog/step-catalog.js +1 -1
  303. package/dist/src/execution/child-binding.d.ts +19 -0
  304. package/dist/src/execution/child-binding.js +1 -0
  305. package/dist/src/execution/close-session-stream-step.d.ts +9 -0
  306. package/dist/src/execution/close-session-stream-step.js +1 -0
  307. package/dist/src/execution/coordination-dispatch-shared.d.ts +13 -3
  308. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  309. package/dist/src/execution/coordination-dispatch-step.d.ts +9 -13
  310. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  311. package/dist/src/execution/deliver-payloads.js +1 -1
  312. package/dist/src/execution/durable-session-store.d.ts +2 -5
  313. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  314. package/dist/src/execution/dynamic-workflow/workflow.js +1 -1
  315. package/dist/src/execution/failure-summary.d.ts +11 -0
  316. package/dist/src/execution/failure-summary.js +1 -0
  317. package/dist/src/execution/forward-session-input.d.ts +2 -2
  318. package/dist/src/execution/forward-session-input.js +1 -1
  319. package/dist/src/execution/invoke-tool.js +1 -1
  320. package/dist/src/execution/legacy-session/prepare-step.js +1 -1
  321. package/dist/src/execution/legacy-session/snapshot.d.ts +4 -1
  322. package/dist/src/execution/legacy-session/snapshot.js +1 -1
  323. package/dist/src/execution/model-call-batching.d.ts +3 -3
  324. package/dist/src/execution/model-call-batching.js +1 -1
  325. package/dist/src/execution/ndjson-stream.d.ts +1 -1
  326. package/dist/src/execution/node-step.d.ts +2 -8
  327. package/dist/src/execution/node-step.js +1 -1
  328. package/dist/src/execution/proxied-deliver-step.d.ts +8 -3
  329. package/dist/src/execution/proxied-deliver-step.js +1 -1
  330. package/dist/src/execution/public-destination.d.ts +34 -0
  331. package/dist/src/execution/public-destination.js +1 -0
  332. package/dist/src/execution/publish-session-events.d.ts +98 -36
  333. package/dist/src/execution/publish-session-events.js +1 -1
  334. package/dist/src/execution/runtime-context.js +1 -1
  335. package/dist/src/execution/sandbox/abort-bound-session.js +1 -1
  336. package/dist/src/execution/sandbox/bash.js +1 -1
  337. package/dist/src/execution/sandbox/bindings/docker-connection.js +1 -1
  338. package/dist/src/execution/sandbox/bindings/docker.js +1 -1
  339. package/dist/src/execution/sandbox/bindings/eve-image.d.ts +0 -2
  340. package/dist/src/execution/sandbox/bindings/eve-image.js +1 -1
  341. package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
  342. package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
  343. package/dist/src/execution/sandbox/ensure.js +1 -1
  344. package/dist/src/{extensions/code/extension/lib → execution/sandbox}/grep-search.d.ts +3 -2
  345. package/dist/src/execution/sandbox/grep-search.js +6 -0
  346. package/dist/src/execution/sandbox/read-file.d.ts +1 -1
  347. package/dist/src/execution/sandbox/session.js +1 -1
  348. package/dist/src/execution/sandbox/workspace-root.d.ts +31 -0
  349. package/dist/src/execution/sandbox/workspace-root.js +1 -0
  350. package/dist/src/execution/session/active-turn.d.ts +12 -6
  351. package/dist/src/execution/session/active-turn.js +1 -1
  352. package/dist/src/execution/session/admission.d.ts +7 -2
  353. package/dist/src/execution/session/admission.js +1 -1
  354. package/dist/src/execution/session/answer-caller.d.ts +4 -4
  355. package/dist/src/execution/session/answer-caller.js +1 -1
  356. package/dist/src/execution/session/checkpoint-migrations.d.ts +4 -6
  357. package/dist/src/execution/session/checkpoint-migrations.js +1 -1
  358. package/dist/src/execution/session/control-delivery.d.ts +4 -0
  359. package/dist/src/execution/session/control-delivery.js +1 -0
  360. package/dist/src/execution/session/delivery-facts.d.ts +27 -0
  361. package/dist/src/execution/session/delivery-facts.js +1 -0
  362. package/dist/src/execution/session/end-sandbox-step.js +1 -1
  363. package/dist/src/execution/session/entry.js +1 -1
  364. package/dist/src/execution/session/finalization.d.ts +4 -0
  365. package/dist/src/execution/session/finalization.js +1 -1
  366. package/dist/src/execution/session/handoff-state.js +1 -1
  367. package/dist/src/execution/session/handoff-steps.d.ts +1 -8
  368. package/dist/src/execution/session/handoff-steps.js +1 -1
  369. package/dist/src/execution/session/handoff.d.ts +5 -3
  370. package/dist/src/execution/session/handoff.js +1 -1
  371. package/dist/src/execution/session/input-queue.d.ts +8 -2
  372. package/dist/src/execution/session/input-queue.js +1 -1
  373. package/dist/src/execution/session/interrupted-step.d.ts +64 -0
  374. package/dist/src/execution/session/interrupted-step.js +3 -0
  375. package/dist/src/execution/session/next-input.d.ts +7 -1
  376. package/dist/src/execution/session/next-input.js +1 -1
  377. package/dist/src/execution/session/pending-turn-state.d.ts +32 -12
  378. package/dist/src/execution/session/pending-turn-state.js +1 -1
  379. package/dist/src/execution/session/prewarm-step.d.ts +1 -1
  380. package/dist/src/execution/session/prewarm-step.js +1 -1
  381. package/dist/src/execution/session/program.js +1 -1
  382. package/dist/src/execution/session/settle-control-delivery-step.d.ts +8 -0
  383. package/dist/src/execution/session/settle-control-delivery-step.js +1 -0
  384. package/dist/src/execution/session/settle-duplicate-delivery-step.d.ts +8 -0
  385. package/dist/src/execution/session/settle-duplicate-delivery-step.js +1 -0
  386. package/dist/src/execution/session/state-delta.d.ts +2 -12
  387. package/dist/src/execution/session/state-delta.js +1 -1
  388. package/dist/src/execution/session/step-decision-check.d.ts +9 -0
  389. package/dist/src/execution/session/step-decision-check.js +1 -0
  390. package/dist/src/execution/session/step-state-delta.d.ts +16 -0
  391. package/dist/src/execution/session/step-state-delta.js +1 -0
  392. package/dist/src/execution/session/task-tool-tracing-step.d.ts +0 -3
  393. package/dist/src/execution/session/task-tool-tracing-step.js +1 -1
  394. package/dist/src/execution/session/turn-event-handler.d.ts +6 -16
  395. package/dist/src/execution/session/turn-event-handler.js +1 -1
  396. package/dist/src/execution/session/turn-step-result.d.ts +7 -2
  397. package/dist/src/execution/session/turn-step-result.js +1 -1
  398. package/dist/src/execution/session/turn-step-types.d.ts +35 -33
  399. package/dist/src/execution/session/turn-step.js +1 -1
  400. package/dist/src/execution/session/turn.d.ts +19 -32
  401. package/dist/src/execution/session/turn.js +1 -1
  402. package/dist/src/execution/session-callback-request.d.ts +7 -1
  403. package/dist/src/execution/session-callback-request.js +1 -1
  404. package/dist/src/execution/session-event-stream.d.ts +37 -16
  405. package/dist/src/execution/session-event-stream.js +1 -1
  406. package/dist/src/execution/session-inbox/end-stranded-session.d.ts +7 -1
  407. package/dist/src/execution/session-inbox/end-stranded-session.js +1 -1
  408. package/dist/src/execution/session-inbox/inbox.js +1 -1
  409. package/dist/src/execution/session-inbox/owner.d.ts +5 -2
  410. package/dist/src/execution/session-inbox/owner.js +1 -1
  411. package/dist/src/execution/session-inbox/pre-v27.d.ts +5 -0
  412. package/dist/src/execution/session-inbox/pre-v27.js +1 -0
  413. package/dist/src/execution/session-inbox/protocol.js +1 -1
  414. package/dist/src/execution/session-inbox/resume.js +1 -1
  415. package/dist/src/execution/session-inbox/stranded-replay-guard.js +1 -1
  416. package/dist/src/execution/session-workflow-tool-run.js +1 -1
  417. package/dist/src/execution/session.d.ts +3 -14
  418. package/dist/src/execution/session.js +2 -2
  419. package/dist/src/execution/settle-cancelled-turn-step.d.ts +3 -0
  420. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  421. package/dist/src/execution/stop-runs.d.ts +35 -0
  422. package/dist/src/execution/stop-runs.js +1 -0
  423. package/dist/src/execution/tasks/model-step.d.ts +5 -9
  424. package/dist/src/execution/tasks/model-step.js +1 -1
  425. package/dist/src/execution/tasks/render.d.ts +5 -2
  426. package/dist/src/execution/tasks/render.js +1 -1
  427. package/dist/src/execution/tasks/session.d.ts +6 -3
  428. package/dist/src/execution/tasks/session.js +1 -1
  429. package/dist/src/execution/tasks/start.d.ts +9 -6
  430. package/dist/src/execution/tasks/start.js +1 -1
  431. package/dist/src/execution/tasks/steps.d.ts +11 -6
  432. package/dist/src/execution/tasks/steps.js +1 -1
  433. package/dist/src/execution/tasks/table.d.ts +18 -5
  434. package/dist/src/execution/tasks/table.js +1 -1
  435. package/dist/src/execution/tasks/task-id-input.js +1 -1
  436. package/dist/src/execution/terminal-session-completion-step.d.ts +11 -1
  437. package/dist/src/execution/terminal-session-completion-step.js +1 -1
  438. package/dist/src/execution/terminal-session-failure-step.d.ts +6 -1
  439. package/dist/src/execution/terminal-session-failure-step.js +1 -1
  440. package/dist/src/execution/terminate-child-sessions-step.d.ts +5 -1
  441. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  442. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  443. package/dist/src/execution/tools/workflow/answer.d.ts +4 -5
  444. package/dist/src/execution/tools/workflow/answer.js +1 -1
  445. package/dist/src/execution/tools/workflow/apply-run-messages-step.d.ts +1 -1
  446. package/dist/src/execution/tools/workflow/apply-run-messages-step.js +1 -1
  447. package/dist/src/execution/tools/workflow/ask.d.ts +3 -3
  448. package/dist/src/execution/tools/workflow/body.js +1 -1
  449. package/dist/src/execution/tools/workflow/harness-definition.js +1 -1
  450. package/dist/src/execution/tools/workflow/messages.d.ts +25 -33
  451. package/dist/src/execution/tools/workflow/messages.js +1 -1
  452. package/dist/src/execution/tools/workflow/owner-inbox.d.ts +9 -5
  453. package/dist/src/execution/tools/workflow/owner-inbox.js +1 -1
  454. package/dist/src/execution/tools/workflow/owner.d.ts +3 -3
  455. package/dist/src/execution/tools/workflow/owner.js +1 -1
  456. package/dist/src/execution/tools/workflow/serve.js +1 -1
  457. package/dist/src/execution/tools/workflow/step.js +1 -1
  458. package/dist/src/execution/tools/workflow/withdraw-step.d.ts +2 -2
  459. package/dist/src/execution/tools/workflow/withdraw-step.js +1 -1
  460. package/dist/src/execution/v26-history.d.ts +28 -0
  461. package/dist/src/execution/v26-history.fixtures.d.ts +4 -0
  462. package/dist/src/execution/v26-history.fixtures.js +2 -0
  463. package/dist/src/execution/v26-history.js +1 -0
  464. package/dist/src/execution/web-fetch/html.js +3 -4
  465. package/dist/src/execution/web-fetch/request.js +1 -1
  466. package/dist/src/execution/workflow-errors.d.ts +5 -0
  467. package/dist/src/execution/workflow-errors.js +1 -1
  468. package/dist/src/execution/workflow-runtime.js +1 -1
  469. package/dist/src/extensions/code/extension/extension.d.ts +1 -11
  470. package/dist/src/extensions/code/extension/extension.js +1 -1
  471. package/dist/src/extensions/code/extension/lib/prwatch-github.d.ts +5 -1
  472. package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
  473. package/dist/src/extensions/code/extension/lib/repository-root.js +1 -1
  474. package/dist/src/extensions/code/extension/lib/sandbox.d.ts +0 -4
  475. package/dist/src/extensions/code/extension/lib/sandbox.js +2 -2
  476. package/dist/src/extensions/code/extension/lib/tooling.d.ts +1 -1
  477. package/dist/src/extensions/code/extension/lib/tooling.js +1 -1
  478. package/dist/src/extensions/code/extension/lib/workspace-root.d.ts +1 -31
  479. package/dist/src/extensions/code/extension/lib/workspace-root.js +1 -1
  480. package/dist/src/extensions/code/extension/subagents/worker/agent.d.ts +1 -1
  481. package/dist/src/extensions/code/extension/subagents/worker/agent.js +1 -1
  482. package/dist/src/extensions/code/extension/tools/apply_patch.js +2 -2
  483. package/dist/src/extensions/code/extension/tools/grep.d.ts +1 -28
  484. package/dist/src/extensions/code/extension/tools/grep.js +1 -1
  485. package/dist/src/extensions/code/sandbox.d.ts +1 -0
  486. package/dist/src/extensions/code/sandbox.js +1 -0
  487. package/dist/src/extensions/code/tools.d.ts +1 -5
  488. package/dist/src/extensions/code/tools.js +1 -1
  489. package/dist/src/extensions/git/extension/extension.d.ts +3 -3
  490. package/dist/src/extensions/git/extension/instructions/github.d.ts +1 -1
  491. package/dist/src/extensions/git/extension/instructions/github.js +1 -1
  492. package/dist/src/extensions/git/extension/lib/gh-tool.d.ts +2 -11
  493. package/dist/src/extensions/git/extension/lib/gh-tool.js +1 -1
  494. package/dist/src/extensions/git/extension/lib/github-shell.d.ts +13 -3
  495. package/dist/src/extensions/git/extension/lib/sandbox.d.ts +0 -4
  496. package/dist/src/extensions/git/extension/lib/sandbox.js +1 -1
  497. package/dist/src/extensions/git/extension/skills/pr.d.ts +1 -4
  498. package/dist/src/extensions/git/extension/skills/pr.js +1 -1
  499. package/dist/src/extensions/git/extension/tools/gh.d.ts +1 -26
  500. package/dist/src/extensions/git/extension/tools/gh.js +1 -1
  501. package/dist/src/framework/sources/modules/schedule-collection-wrapper.js +1 -1
  502. package/dist/src/harness/action-presentation.d.ts +3 -5
  503. package/dist/src/harness/action-presentation.js +1 -1
  504. package/dist/src/harness/action-result-helpers.d.ts +2 -8
  505. package/dist/src/harness/action-result-helpers.js +1 -1
  506. package/dist/src/harness/approval-outcome.d.ts +32 -0
  507. package/dist/src/harness/approval-outcome.js +1 -0
  508. package/dist/src/harness/attachment-staging.js +1 -1
  509. package/dist/src/harness/authorization.d.ts +2 -3
  510. package/dist/src/harness/authorization.js +1 -1
  511. package/dist/src/harness/call-executor.d.ts +118 -0
  512. package/dist/src/harness/call-executor.js +1 -0
  513. package/dist/src/harness/call-facts.d.ts +31 -0
  514. package/dist/src/harness/call-facts.js +1 -0
  515. package/dist/src/harness/call-outcome.d.ts +6 -0
  516. package/dist/src/harness/call-outcome.js +1 -0
  517. package/dist/src/harness/compaction/engine.d.ts +11 -0
  518. package/dist/src/harness/compaction/engine.js +2 -2
  519. package/dist/src/harness/compaction/over-limit-error.d.ts +7 -0
  520. package/dist/src/harness/compaction/over-limit-error.js +1 -0
  521. package/dist/src/harness/compaction/prompt.js +1 -1
  522. package/dist/src/harness/compaction/step.d.ts +34 -5
  523. package/dist/src/harness/compaction/step.js +1 -1
  524. package/dist/src/harness/coordination.js +1 -1
  525. package/dist/src/harness/current-messages.d.ts +10 -0
  526. package/dist/src/harness/current-messages.js +1 -1
  527. package/dist/src/harness/emission.d.ts +9 -15
  528. package/dist/src/harness/emission.js +1 -1
  529. package/dist/src/harness/execute-call.d.ts +6 -23
  530. package/dist/src/harness/execute-call.js +1 -1
  531. package/dist/src/harness/execute-tool.d.ts +7 -3
  532. package/dist/src/harness/facts.d.ts +82 -0
  533. package/dist/src/harness/facts.js +1 -0
  534. package/dist/src/harness/finish-reason.d.ts +6 -1
  535. package/dist/src/harness/generation-steering.d.ts +4 -2
  536. package/dist/src/harness/generation-steering.js +1 -1
  537. package/dist/src/harness/hitl/approval-prompt.d.ts +3 -3
  538. package/dist/src/harness/hitl/approval-prompt.js +3 -3
  539. package/dist/src/harness/hitl/approvals.d.ts +66 -78
  540. package/dist/src/harness/hitl/approvals.js +2 -1
  541. package/dist/src/harness/hitl/approved-calls.d.ts +14 -36
  542. package/dist/src/harness/hitl/approved-calls.js +1 -1
  543. package/dist/src/harness/hitl/budget-request.d.ts +8 -46
  544. package/dist/src/harness/hitl/budget-request.js +1 -1
  545. package/dist/src/harness/hitl/budget.d.ts +9 -8
  546. package/dist/src/harness/hitl/budget.js +1 -1
  547. package/dist/src/harness/hitl/delivery.d.ts +16 -17
  548. package/dist/src/harness/hitl/delivery.js +1 -1
  549. package/dist/src/harness/hitl/index.d.ts +14 -19
  550. package/dist/src/harness/hitl/index.js +1 -1
  551. package/dist/src/harness/hitl/intake.d.ts +32 -43
  552. package/dist/src/harness/hitl/intake.js +1 -1
  553. package/dist/src/harness/hitl/relays.d.ts +7 -51
  554. package/dist/src/harness/hitl/relays.js +1 -1
  555. package/dist/src/harness/hitl/requests.d.ts +11 -53
  556. package/dist/src/harness/hitl/requests.js +1 -1
  557. package/dist/src/harness/hitl/responders.d.ts +50 -0
  558. package/dist/src/harness/hitl/responders.js +1 -0
  559. package/dist/src/harness/hitl/sign-ins.d.ts +7 -3
  560. package/dist/src/harness/hitl/sign-ins.js +1 -1
  561. package/dist/src/harness/hitl/stale-responses.d.ts +11 -11
  562. package/dist/src/harness/hitl/stale-responses.js +3 -3
  563. package/dist/src/harness/inline-tool-authorization.d.ts +8 -9
  564. package/dist/src/harness/inline-tool-authorization.js +1 -1
  565. package/dist/src/harness/interaction-facts.d.ts +36 -0
  566. package/dist/src/harness/interaction-facts.js +1 -0
  567. package/dist/src/harness/interaction-relay.d.ts +10 -0
  568. package/dist/src/harness/interaction-relay.js +1 -0
  569. package/dist/src/harness/interrupted-attempt.d.ts +19 -0
  570. package/dist/src/harness/interrupted-attempt.js +2 -0
  571. package/dist/src/harness/messages.d.ts +28 -15
  572. package/dist/src/harness/messages.js +1 -1
  573. package/dist/src/harness/model-call/call.d.ts +31 -13
  574. package/dist/src/harness/model-call/call.js +1 -1
  575. package/dist/src/harness/model-call/errors.js +1 -1
  576. package/dist/src/harness/model-call/failure.d.ts +10 -48
  577. package/dist/src/harness/model-call/failure.js +1 -1
  578. package/dist/src/harness/model-call/model.js +1 -1
  579. package/dist/src/harness/model-call/recovery.d.ts +4 -32
  580. package/dist/src/harness/model-call/recovery.js +1 -1
  581. package/dist/src/harness/model-call/request.d.ts +0 -1
  582. package/dist/src/harness/model-call/request.js +1 -1
  583. package/dist/src/harness/model-call/response.d.ts +22 -12
  584. package/dist/src/harness/model-call/response.js +1 -1
  585. package/dist/src/harness/model-call/retry.d.ts +23 -6
  586. package/dist/src/harness/model-call/retry.js +1 -1
  587. package/dist/src/harness/model-call/run.d.ts +4 -12
  588. package/dist/src/harness/model-call/run.js +1 -1
  589. package/dist/src/harness/model-call/tools.d.ts +0 -19
  590. package/dist/src/harness/model-call/tools.js +1 -1
  591. package/dist/src/harness/model-call/unique-call-ids.d.ts +13 -0
  592. package/dist/src/harness/model-call/unique-call-ids.js +1 -0
  593. package/dist/src/harness/model-call/usage.d.ts +7 -5
  594. package/dist/src/harness/model-call/usage.js +1 -1
  595. package/dist/src/harness/ordered-stream-emitter.d.ts +1 -0
  596. package/dist/src/harness/ordered-stream-emitter.js +1 -1
  597. package/dist/src/harness/provider-tool-history.js +1 -1
  598. package/dist/src/harness/publication.d.ts +4 -0
  599. package/dist/src/harness/publication.js +1 -0
  600. package/dist/src/harness/request-envelope.d.ts +0 -3
  601. package/dist/src/harness/request-envelope.js +1 -1
  602. package/dist/src/harness/running-work.d.ts +10 -0
  603. package/dist/src/harness/running-work.js +1 -0
  604. package/dist/src/harness/session-machine/cascade.d.ts +17 -0
  605. package/dist/src/harness/session-machine/cascade.js +1 -0
  606. package/dist/src/harness/session-machine/commit.d.ts +16 -16
  607. package/dist/src/harness/session-machine/commit.js +1 -1
  608. package/dist/src/harness/session-machine/current.d.ts +25 -9
  609. package/dist/src/harness/session-machine/current.js +1 -1
  610. package/dist/src/harness/session-machine/state.d.ts +43 -16
  611. package/dist/src/harness/session-machine/state.js +1 -1
  612. package/dist/src/harness/session-machine/suspended-steps.d.ts +22 -0
  613. package/dist/src/harness/session-machine/suspended-steps.js +1 -0
  614. package/dist/src/harness/session-machine/transitions.d.ts +144 -120
  615. package/dist/src/harness/session-machine/transitions.js +1 -1
  616. package/dist/src/harness/session-machine/view.d.ts +12 -8
  617. package/dist/src/harness/session-machine/view.js +1 -1
  618. package/dist/src/harness/session-machine/waiting.d.ts +16 -0
  619. package/dist/src/harness/session-machine/waiting.js +1 -0
  620. package/dist/src/harness/session-usage.d.ts +22 -0
  621. package/dist/src/harness/session-usage.js +1 -0
  622. package/dist/src/harness/step/after-model.d.ts +1 -4
  623. package/dist/src/harness/step/after-model.js +1 -1
  624. package/dist/src/harness/step/context.d.ts +21 -21
  625. package/dist/src/harness/step/context.js +1 -1
  626. package/dist/src/harness/step/intake.d.ts +7 -8
  627. package/dist/src/harness/step/intake.js +1 -1
  628. package/dist/src/harness/step/park.d.ts +19 -0
  629. package/dist/src/harness/step/park.js +1 -0
  630. package/dist/src/harness/step/prompt.d.ts +4 -5
  631. package/dist/src/harness/step/prompt.js +1 -1
  632. package/dist/src/harness/step-hooks.d.ts +24 -24
  633. package/dist/src/harness/step-hooks.js +1 -1
  634. package/dist/src/harness/stream-actions.d.ts +3 -9
  635. package/dist/src/harness/stream-actions.js +1 -1
  636. package/dist/src/harness/token-estimate.js +1 -1
  637. package/dist/src/harness/tool-history-repair.js +1 -1
  638. package/dist/src/harness/tool-loop.js +1 -1
  639. package/dist/src/harness/tools.d.ts +22 -38
  640. package/dist/src/harness/tools.js +1 -1
  641. package/dist/src/harness/types.d.ts +69 -67
  642. package/dist/src/harness/user-parts.d.ts +4 -0
  643. package/dist/src/harness/user-parts.js +1 -0
  644. package/dist/src/harness/workflow-tool-runs.d.ts +0 -1
  645. package/dist/src/harness/workflow-tool-runs.js +1 -1
  646. package/dist/src/instrumentation/ai-sdk-hook-bridge.d.ts +2 -2
  647. package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
  648. package/dist/src/instrumentation/channel-delivery.d.ts +4 -23
  649. package/dist/src/instrumentation/channel-delivery.js +1 -1
  650. package/dist/src/instrumentation/content.d.ts +1 -7
  651. package/dist/src/instrumentation/content.js +1 -1
  652. package/dist/src/instrumentation/dispatch.js +1 -1
  653. package/dist/src/instrumentation/lifecycle.d.ts +135 -198
  654. package/dist/src/instrumentation/lifecycle.js +1 -1
  655. package/dist/src/instrumentation/memory.d.ts +4 -2
  656. package/dist/src/instrumentation/memory.js +1 -1
  657. package/dist/src/instrumentation/native-events.d.ts +17 -10
  658. package/dist/src/instrumentation/native-events.js +1 -1
  659. package/dist/src/instrumentation/prepare-trace-context.d.ts +3 -3
  660. package/dist/src/instrumentation/provider.d.ts +20 -28
  661. package/dist/src/instrumentation/providers.js +1 -1
  662. package/dist/src/instrumentation/runtime-context.d.ts +1 -0
  663. package/dist/src/instrumentation/runtime-context.js +1 -1
  664. package/dist/src/instrumentation/runtime.d.ts +9 -30
  665. package/dist/src/instrumentation/runtime.js +1 -1
  666. package/dist/src/instrumentation/scope.d.ts +6 -0
  667. package/dist/src/instrumentation/scope.js +1 -0
  668. package/dist/src/instrumentation/session-context.d.ts +1 -1
  669. package/dist/src/instrumentation/session-context.js +1 -1
  670. package/dist/src/instrumentation/session-init.js +1 -1
  671. package/dist/src/instrumentation/setup-context.d.ts +2 -2
  672. package/dist/src/instrumentation/setup-context.js +1 -1
  673. package/dist/src/instrumentation/state.d.ts +0 -21
  674. package/dist/src/instrumentation/state.js +1 -1
  675. package/dist/src/internal/application/dev-environment.d.ts +8 -2
  676. package/dist/src/internal/application/dev-environment.js +1 -1
  677. package/dist/src/internal/application/optional-package-install.js +1 -1
  678. package/dist/src/internal/application/stamped-package-version.js +1 -1
  679. package/dist/src/internal/authored-asset-import-plugin.d.ts +8 -7
  680. package/dist/src/internal/authored-asset-import-plugin.js +1 -1
  681. package/dist/src/internal/authored-definition/approval.d.ts +2 -4
  682. package/dist/src/internal/authored-definition/approval.js +1 -1
  683. package/dist/src/internal/authored-definition/connection.js +1 -1
  684. package/dist/src/internal/authored-definition/core.d.ts +1 -1
  685. package/dist/src/internal/authored-definition/core.js +1 -1
  686. package/dist/src/internal/authored-definition/memory.js +1 -1
  687. package/dist/src/internal/authored-definition/schema-backed.d.ts +0 -3
  688. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  689. package/dist/src/internal/authored-module-loader.d.ts +0 -1
  690. package/dist/src/internal/authored-module-loader.js +1 -1
  691. package/dist/src/internal/authored-package-boundary.js +1 -1
  692. package/dist/src/internal/git.d.ts +2 -0
  693. package/dist/src/internal/git.js +1 -0
  694. package/dist/src/internal/grep.d.ts +1 -0
  695. package/dist/src/internal/grep.js +1 -0
  696. package/dist/src/internal/helpers/markdown.js +1 -1
  697. package/dist/src/internal/invocation/agent-invocation.d.ts +16 -19
  698. package/dist/src/internal/invocation/metadata.d.ts +0 -2
  699. package/dist/src/internal/invocation/metadata.js +1 -1
  700. package/dist/src/internal/invocation/workflow-execution.d.ts +4 -4
  701. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  702. package/dist/src/internal/legacy-events.d.ts +5 -0
  703. package/dist/src/internal/legacy-events.js +1 -0
  704. package/dist/src/internal/logging.d.ts +0 -12
  705. package/dist/src/internal/logging.js +1 -1
  706. package/dist/src/internal/mcp/protected-resource.js +1 -1
  707. package/dist/src/internal/mcp/published-tools.js +1 -1
  708. package/dist/src/internal/model-auth/api-key.js +1 -1
  709. package/dist/src/internal/model-auth/development-broker-client.js +1 -1
  710. package/dist/src/internal/model-auth/development-broker-server.js +1 -1
  711. package/dist/src/internal/model-auth/transport.js +1 -1
  712. package/dist/src/internal/nitro/dev-client-address.d.ts +12 -0
  713. package/dist/src/internal/nitro/dev-client-address.js +1 -1
  714. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  715. package/dist/src/internal/nitro/dev-runtime-generation-metadata.js +1 -1
  716. package/dist/src/internal/nitro/host/build-extension.js +2 -2
  717. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  718. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  719. package/dist/src/internal/nitro/host/dev-server-state.js +1 -1
  720. package/dist/src/internal/nitro/host/drained-nitro-dev-server.js +1 -1
  721. package/dist/src/internal/nitro/host/start-development-server.js +1 -1
  722. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  723. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  724. package/dist/src/internal/nitro/routes/channel-request-instrumentation.d.ts +6 -3
  725. package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
  726. package/dist/src/internal/nitro/routes/channel-route-context.d.ts +8 -1
  727. package/dist/src/internal/nitro/routes/info.js +1 -1
  728. package/dist/src/internal/nitro/routes/schedule-task.js +1 -1
  729. package/dist/src/internal/scaffold.d.ts +5 -0
  730. package/dist/src/internal/scaffold.js +1 -0
  731. package/dist/src/internal/workflow/cancel-expired-development-run.js +1 -1
  732. package/dist/src/internal/workflow/development-world-client.js +1 -1
  733. package/dist/src/internal/workflow/development-world-server.js +1 -1
  734. package/dist/src/internal/workflow/local-world-data-directory.js +1 -1
  735. package/dist/src/internal/workspace.d.ts +1 -0
  736. package/dist/src/internal/workspace.js +1 -0
  737. package/dist/src/models/auto.d.ts +27 -14
  738. package/dist/src/models/auto.js +2 -2
  739. package/dist/src/protocol/delivery.d.ts +11 -0
  740. package/dist/src/protocol/delivery.js +1 -0
  741. package/dist/src/protocol/descendant-observation.d.ts +12 -0
  742. package/dist/src/protocol/descendant-observation.js +1 -0
  743. package/dist/src/protocol/interaction-json.d.ts +66 -0
  744. package/dist/src/protocol/interaction-json.js +1 -0
  745. package/dist/src/protocol/interaction-options.d.ts +4 -0
  746. package/dist/src/protocol/interaction-options.js +1 -0
  747. package/dist/src/protocol/remote-agent-protocol.d.ts +28 -1
  748. package/dist/src/protocol/remote-agent-protocol.js +1 -1
  749. package/dist/src/protocol/routes.d.ts +3 -2
  750. package/dist/src/protocol/routes.js +1 -1
  751. package/dist/src/protocol/session-event.d.ts +22 -0
  752. package/dist/src/protocol/session-event.js +1 -0
  753. package/dist/src/protocol/session-events/authoring.d.ts +2 -0
  754. package/dist/src/protocol/session-events/authoring.js +1 -0
  755. package/dist/src/protocol/session-events/catalog.d.ts +50 -0
  756. package/dist/src/protocol/session-events/catalog.js +1 -0
  757. package/dist/src/protocol/session-events/checker.d.ts +23 -0
  758. package/dist/src/protocol/session-events/checker.js +1 -0
  759. package/dist/src/protocol/session-events/common.d.ts +105 -0
  760. package/dist/src/protocol/session-events/common.js +1 -0
  761. package/dist/src/protocol/session-events/envelope.d.ts +174 -0
  762. package/dist/src/protocol/session-events/envelope.js +1 -0
  763. package/dist/src/protocol/session-events/facts.d.ts +24 -0
  764. package/dist/src/protocol/session-events/facts.js +1 -0
  765. package/dist/src/protocol/session-events/families/call.d.ts +142 -0
  766. package/dist/src/protocol/session-events/families/call.js +1 -0
  767. package/dist/src/protocol/session-events/families/child.d.ts +51 -0
  768. package/dist/src/protocol/session-events/families/child.js +1 -0
  769. package/dist/src/protocol/session-events/families/content.d.ts +56 -0
  770. package/dist/src/protocol/session-events/families/content.js +1 -0
  771. package/dist/src/protocol/session-events/families/context.d.ts +55 -0
  772. package/dist/src/protocol/session-events/families/context.js +1 -0
  773. package/dist/src/protocol/session-events/families/delivery.d.ts +86 -0
  774. package/dist/src/protocol/session-events/families/delivery.js +1 -0
  775. package/dist/src/protocol/session-events/families/interaction.d.ts +163 -0
  776. package/dist/src/protocol/session-events/families/interaction.js +1 -0
  777. package/dist/src/protocol/session-events/families/model.d.ts +88 -0
  778. package/dist/src/protocol/session-events/families/model.js +1 -0
  779. package/dist/src/protocol/session-events/families/response.d.ts +66 -0
  780. package/dist/src/protocol/session-events/families/response.js +1 -0
  781. package/dist/src/protocol/session-events/families/session.d.ts +73 -0
  782. package/dist/src/protocol/session-events/families/session.js +1 -0
  783. package/dist/src/protocol/session-events/families/task.d.ts +46 -0
  784. package/dist/src/protocol/session-events/families/task.js +1 -0
  785. package/dist/src/protocol/session-events/families/turn.d.ts +68 -0
  786. package/dist/src/protocol/session-events/families/turn.js +1 -0
  787. package/dist/src/protocol/session-events/families/usage.d.ts +30 -0
  788. package/dist/src/protocol/session-events/families/usage.js +1 -0
  789. package/dist/src/protocol/session-events/guards.d.ts +11 -0
  790. package/dist/src/protocol/session-events/guards.js +1 -0
  791. package/dist/src/protocol/session-events/index.d.ts +16 -0
  792. package/dist/src/protocol/session-events/index.js +1 -0
  793. package/dist/src/protocol/session-events/json.d.ts +20 -0
  794. package/dist/src/protocol/session-events/json.js +1 -0
  795. package/dist/src/protocol/session-events/schemas.d.ts +320 -0
  796. package/dist/src/protocol/session-events/schemas.js +1 -0
  797. package/dist/src/protocol/session-http.d.ts +7 -0
  798. package/dist/src/protocol/session-http.js +1 -0
  799. package/dist/src/protocol/session-lines.d.ts +19 -0
  800. package/dist/src/protocol/session-lines.js +1 -0
  801. package/dist/src/protocol/session-projection/fold.d.ts +75 -0
  802. package/dist/src/protocol/session-projection/fold.js +1 -0
  803. package/dist/src/protocol/session-projection/index.d.ts +4 -0
  804. package/dist/src/protocol/session-projection/index.js +1 -0
  805. package/dist/src/protocol/session-projection/observations.d.ts +150 -0
  806. package/dist/src/protocol/session-projection/observations.js +1 -0
  807. package/dist/src/protocol/session-projection/public-view.d.ts +74 -0
  808. package/dist/src/protocol/session-projection/public-view.js +1 -0
  809. package/dist/src/protocol/session-projection/reader.d.ts +62 -0
  810. package/dist/src/protocol/session-projection/reader.js +1 -0
  811. package/dist/src/protocol/session-projection/request-status.d.ts +7 -0
  812. package/dist/src/protocol/session-projection/request-status.js +1 -0
  813. package/dist/src/protocol/session-projection/selectors.d.ts +169 -0
  814. package/dist/src/protocol/session-projection/selectors.js +2 -0
  815. package/dist/src/protocol/session-projection/session-view.d.ts +18 -0
  816. package/dist/src/protocol/session-projection/session-view.js +1 -0
  817. package/dist/src/protocol/session-projection/tables.d.ts +237 -0
  818. package/dist/src/protocol/session-projection/tables.js +1 -0
  819. package/dist/src/protocol/session-projection/tree.d.ts +72 -0
  820. package/dist/src/protocol/session-projection/tree.js +1 -0
  821. package/dist/src/protocol/session-projection.d.ts +38 -157
  822. package/dist/src/protocol/session-projection.js +1 -1
  823. package/dist/src/protocol/task-tools.d.ts +8 -6
  824. package/dist/src/protocol/task-tools.js +1 -1
  825. package/dist/src/protocol/v26-interactions.d.ts +11 -0
  826. package/dist/src/protocol/v26-interactions.js +1 -0
  827. package/dist/src/protocol/v26-lines.d.ts +5 -0
  828. package/dist/src/protocol/v26-lines.js +1 -0
  829. package/dist/src/public/agents/auth.d.ts +2 -2
  830. package/dist/src/public/agents/auth.js +1 -1
  831. package/dist/src/public/ai/index.d.ts +1 -0
  832. package/dist/src/public/channels/auth.d.ts +2 -518
  833. package/dist/src/public/channels/auth.js +1 -1
  834. package/dist/src/public/channels/chat-sdk/authorization.d.ts +5 -2
  835. package/dist/src/public/channels/chat-sdk/authorization.js +1 -3
  836. package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +16 -11
  837. package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -3
  838. package/dist/src/public/channels/chat-sdk/index.d.ts +1 -1
  839. package/dist/src/public/channels/chat-sdk/index.js +1 -1
  840. package/dist/src/public/channels/chat-sdk/input-actions.d.ts +4 -4
  841. package/dist/src/public/channels/chat-sdk/input-actions.js +3 -3
  842. package/dist/src/public/channels/chat-sdk/{messageToUserContent.d.ts → message-content.d.ts} +3 -3
  843. package/dist/src/public/channels/chat-sdk/message-content.js +1 -0
  844. package/dist/src/public/channels/discord/api.d.ts +8 -11
  845. package/dist/src/public/channels/discord/api.js +1 -1
  846. package/dist/src/public/channels/discord/attachments.d.ts +2 -2
  847. package/dist/src/public/channels/discord/authorization.d.ts +3 -13
  848. package/dist/src/public/channels/discord/authorization.js +2 -2
  849. package/dist/src/public/channels/discord/credentials.d.ts +11 -0
  850. package/dist/src/public/channels/discord/credentials.js +1 -0
  851. package/dist/src/public/channels/discord/defaults.d.ts +7 -1
  852. package/dist/src/public/channels/discord/defaults.js +1 -3
  853. package/dist/src/public/channels/discord/discordChannel.d.ts +36 -48
  854. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  855. package/dist/src/public/channels/discord/hitl.d.ts +5 -4
  856. package/dist/src/public/channels/discord/hitl.js +1 -1
  857. package/dist/src/public/channels/discord/index.d.ts +4 -12
  858. package/dist/src/public/channels/discord/index.js +1 -1
  859. package/dist/src/public/channels/discord/messages.js +1 -1
  860. package/dist/src/public/channels/github/defaults.js +2 -4
  861. package/dist/src/public/channels/github/githubChannel.d.ts +23 -36
  862. package/dist/src/public/channels/github/githubChannel.js +1 -1
  863. package/dist/src/public/channels/github/index.d.ts +3 -2
  864. package/dist/src/public/channels/github/index.js +1 -1
  865. package/dist/src/public/channels/github/state.d.ts +2 -0
  866. package/dist/src/public/channels/imessage-tapbacks.d.ts +1 -1
  867. package/dist/src/public/channels/index.d.ts +16 -37
  868. package/dist/src/public/channels/index.js +1 -1
  869. package/dist/src/public/channels/linear/defaults.js +2 -4
  870. package/dist/src/public/channels/linear/hitl.d.ts +3 -3
  871. package/dist/src/public/channels/linear/hitl.js +2 -2
  872. package/dist/src/public/channels/linear/inbound-uploads.d.ts +3 -3
  873. package/dist/src/public/channels/linear/inbound-uploads.js +1 -1
  874. package/dist/src/public/channels/linear/inbound.d.ts +5 -3
  875. package/dist/src/public/channels/linear/inbound.js +1 -1
  876. package/dist/src/public/channels/linear/index.d.ts +4 -6
  877. package/dist/src/public/channels/linear/index.js +1 -1
  878. package/dist/src/public/channels/linear/linearChannel.d.ts +19 -30
  879. package/dist/src/public/channels/linear/linearChannel.js +1 -1
  880. package/dist/src/public/channels/linq/inboundContent.d.ts +2 -2
  881. package/dist/src/public/channels/linq/inboundContent.js +1 -1
  882. package/dist/src/public/channels/linq/index.d.ts +1 -1
  883. package/dist/src/public/channels/linq/linqChannel.d.ts +1 -2
  884. package/dist/src/public/channels/mcp.d.ts +2 -2
  885. package/dist/src/public/channels/mcp.js +1 -1
  886. package/dist/src/public/channels/photon/inboundContent.d.ts +2 -2
  887. package/dist/src/public/channels/photon/inboundContent.js +1 -1
  888. package/dist/src/public/channels/photon/index.d.ts +1 -1
  889. package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +1 -2
  890. package/dist/src/public/channels/reply.d.ts +22 -0
  891. package/dist/src/public/channels/reply.js +3 -0
  892. package/dist/src/public/channels/slack/action-status.js +1 -1
  893. package/dist/src/public/channels/slack/{input-response.d.ts → answers.d.ts} +5 -5
  894. package/dist/src/public/channels/slack/answers.js +1 -0
  895. package/dist/src/public/channels/slack/api.d.ts +5 -2
  896. package/dist/src/public/channels/slack/api.js +1 -1
  897. package/dist/src/public/channels/slack/approval-cards.d.ts +15 -5
  898. package/dist/src/public/channels/slack/approval-cards.js +2 -2
  899. package/dist/src/public/channels/slack/attachments.d.ts +6 -6
  900. package/dist/src/public/channels/slack/attachments.js +1 -1
  901. package/dist/src/public/channels/slack/blocks.d.ts +1 -1
  902. package/dist/src/public/channels/slack/blocks.js +1 -1
  903. package/dist/src/public/channels/slack/cards.d.ts +576 -0
  904. package/dist/src/public/channels/slack/cards.js +1 -0
  905. package/dist/src/public/channels/slack/connections.d.ts +4 -22
  906. package/dist/src/public/channels/slack/connections.js +1 -1
  907. package/dist/src/public/channels/slack/defaults.d.ts +13 -2
  908. package/dist/src/public/channels/slack/defaults.js +5 -5
  909. package/dist/src/public/channels/slack/hitl.d.ts +20 -19
  910. package/dist/src/public/channels/slack/hitl.js +3 -3
  911. package/dist/src/public/channels/slack/index.d.ts +7 -16
  912. package/dist/src/public/channels/slack/index.js +1 -1
  913. package/dist/src/public/channels/slack/interaction-cards.js +1 -1
  914. package/dist/src/public/channels/slack/interactions.d.ts +2 -2
  915. package/dist/src/public/channels/slack/interactions.js +1 -1
  916. package/dist/src/public/channels/slack/limits.js +1 -1
  917. package/dist/src/public/channels/slack/private-approval-delivery.d.ts +3 -3
  918. package/dist/src/public/channels/slack/private-approval-delivery.js +1 -1
  919. package/dist/src/public/channels/slack/renderers.d.ts +21 -27
  920. package/dist/src/public/channels/slack/renderers.js +1 -1
  921. package/dist/src/public/channels/slack/reply-delivery.d.ts +5 -11
  922. package/dist/src/public/channels/slack/reply-delivery.js +1 -1
  923. package/dist/src/public/channels/slack/session-operations.d.ts +4 -4
  924. package/dist/src/public/channels/slack/sign-in-cancel.js +1 -1
  925. package/dist/src/public/channels/slack/slackChannel.d.ts +32 -43
  926. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  927. package/dist/src/public/channels/slack/task-card.d.ts +9 -9
  928. package/dist/src/public/channels/slack/task-card.js +1 -1
  929. package/dist/src/public/channels/teams/api.d.ts +3 -7
  930. package/dist/src/public/channels/teams/attachments.d.ts +4 -4
  931. package/dist/src/public/channels/teams/authorization.d.ts +5 -9
  932. package/dist/src/public/channels/teams/authorization.js +1 -1
  933. package/dist/src/public/channels/teams/credentials.d.ts +13 -0
  934. package/dist/src/public/channels/teams/credentials.js +1 -0
  935. package/dist/src/public/channels/teams/defaults.d.ts +2 -6
  936. package/dist/src/public/channels/teams/defaults.js +1 -3
  937. package/dist/src/public/channels/teams/hitl.d.ts +8 -7
  938. package/dist/src/public/channels/teams/hitl.js +1 -1
  939. package/dist/src/public/channels/teams/index.d.ts +6 -8
  940. package/dist/src/public/channels/teams/index.js +1 -1
  941. package/dist/src/public/channels/teams/teamsChannel.d.ts +25 -44
  942. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  943. package/dist/src/public/channels/telegram/api.d.ts +3 -4
  944. package/dist/src/public/channels/telegram/attachments.d.ts +5 -5
  945. package/dist/src/public/channels/telegram/authorization-callback.js +1 -1
  946. package/dist/src/public/channels/telegram/authorization.d.ts +4 -8
  947. package/dist/src/public/channels/telegram/authorization.js +2 -2
  948. package/dist/src/public/channels/telegram/credentials.d.ts +9 -0
  949. package/dist/src/public/channels/telegram/credentials.js +1 -0
  950. package/dist/src/public/channels/telegram/defaults.js +1 -3
  951. package/dist/src/public/channels/telegram/hitl.d.ts +22 -20
  952. package/dist/src/public/channels/telegram/hitl.js +2 -2
  953. package/dist/src/public/channels/telegram/index.d.ts +5 -7
  954. package/dist/src/public/channels/telegram/index.js +1 -1
  955. package/dist/src/public/channels/telegram/telegramChannel.d.ts +23 -36
  956. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  957. package/dist/src/public/channels/text.d.ts +4 -0
  958. package/dist/src/public/channels/text.js +1 -0
  959. package/dist/src/public/channels/twilio/api.d.ts +8 -8
  960. package/dist/src/public/channels/twilio/api.js +1 -1
  961. package/dist/src/public/channels/twilio/credentials.d.ts +7 -0
  962. package/dist/src/public/channels/twilio/credentials.js +1 -0
  963. package/dist/src/public/channels/twilio/defaults.d.ts +0 -1
  964. package/dist/src/public/channels/twilio/defaults.js +1 -5
  965. package/dist/src/public/channels/twilio/inbound.d.ts +2 -2
  966. package/dist/src/public/channels/twilio/index.d.ts +4 -4
  967. package/dist/src/public/channels/twilio/index.js +1 -1
  968. package/dist/src/public/channels/twilio/twilioChannel.d.ts +24 -37
  969. package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
  970. package/dist/src/public/channels/twilio/verify.d.ts +6 -4
  971. package/dist/src/public/channels/undelivered-reply.d.ts +30 -0
  972. package/dist/src/public/channels/undelivered-reply.js +1 -0
  973. package/dist/src/public/channels/upload-policy.d.ts +7 -7
  974. package/dist/src/public/connections/index.d.ts +3 -5
  975. package/dist/src/public/context/index.d.ts +3 -2
  976. package/dist/src/public/definitions/agent.d.ts +18 -18
  977. package/dist/src/public/definitions/agent.js +1 -1
  978. package/dist/src/public/definitions/approval.d.ts +1 -1
  979. package/dist/src/public/definitions/channel.d.ts +57 -60
  980. package/dist/src/public/definitions/channel.js +1 -1
  981. package/dist/src/public/definitions/connections/dynamic.d.ts +3 -15
  982. package/dist/src/public/definitions/connections/dynamic.js +1 -1
  983. package/dist/src/public/definitions/connections/events.d.ts +9 -9
  984. package/dist/src/public/definitions/connections/mcp.d.ts +5 -3
  985. package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
  986. package/dist/src/public/definitions/extension.d.ts +2 -4
  987. package/dist/src/public/definitions/extension.js +1 -1
  988. package/dist/src/public/definitions/hook.d.ts +63 -85
  989. package/dist/src/public/definitions/hook.js +1 -1
  990. package/dist/src/public/definitions/instructions.d.ts +3 -10
  991. package/dist/src/public/definitions/instructions.js +1 -1
  992. package/dist/src/public/definitions/model.d.ts +21 -0
  993. package/dist/src/public/definitions/model.js +1 -0
  994. package/dist/src/public/definitions/removed-event-keys.d.ts +2 -0
  995. package/dist/src/public/definitions/removed-event-keys.js +1 -0
  996. package/dist/src/public/definitions/sandbox.d.ts +1 -1
  997. package/dist/src/public/definitions/schedule.d.ts +4 -4
  998. package/dist/src/public/definitions/skill.d.ts +5 -0
  999. package/dist/src/public/definitions/skill.js +1 -1
  1000. package/dist/src/public/events/index.d.ts +27 -0
  1001. package/dist/src/public/events/index.js +1 -0
  1002. package/dist/src/public/experimental/connections/index.d.ts +1 -0
  1003. package/dist/src/public/experimental/connections/index.js +1 -0
  1004. package/dist/src/public/experimental/schedules/client.js +1 -1
  1005. package/dist/src/public/hooks/index.d.ts +4 -3
  1006. package/dist/src/public/index.d.ts +3 -2
  1007. package/dist/src/public/instructions/index.d.ts +2 -2
  1008. package/dist/src/public/instrumentation/index.d.ts +9 -28
  1009. package/dist/src/public/instrumentation/index.js +1 -1
  1010. package/dist/src/public/instrumentation/otel.d.ts +1 -1
  1011. package/dist/src/public/instrumentation/otel.js +1 -1
  1012. package/dist/src/public/instrumentation/provider.d.ts +1 -1
  1013. package/dist/src/public/instrumentation/provider.js +1 -1
  1014. package/dist/src/public/local-dev.d.ts +3 -1
  1015. package/dist/src/public/memory/file/backend.d.ts +1 -1
  1016. package/dist/src/public/memory/file/backends/in-memory.js +1 -1
  1017. package/dist/src/public/memory/file/backends/vercel-blob.js +1 -1
  1018. package/dist/src/public/memory/file/provider.js +1 -1
  1019. package/dist/src/public/memory/index.d.ts +14 -20
  1020. package/dist/src/public/models/index.d.ts +3 -0
  1021. package/dist/src/public/models/index.js +1 -1
  1022. package/dist/src/public/models/openai/index.d.ts +0 -2
  1023. package/dist/src/public/models/openai/index.js +1 -1
  1024. package/dist/src/public/next/index.d.ts +5 -36
  1025. package/dist/src/public/next/index.js +1 -1
  1026. package/dist/src/public/nuxt/index.d.ts +1 -1
  1027. package/dist/src/public/nuxt/module.d.ts +5 -2
  1028. package/dist/src/public/sandbox/index.d.ts +1 -1
  1029. package/dist/src/public/sandbox/vercel-sandbox.d.ts +52 -12
  1030. package/dist/src/public/sandbox/vercel.d.ts +1 -1
  1031. package/dist/src/public/schedules/subscription.d.ts +5 -8
  1032. package/dist/src/public/server/index.d.ts +2 -14
  1033. package/dist/src/public/server/index.js +1 -1
  1034. package/dist/src/public/sessions/index.d.ts +6 -0
  1035. package/dist/src/public/sessions/index.js +1 -0
  1036. package/dist/src/public/skills/index.d.ts +2 -2
  1037. package/dist/src/public/skills/index.js +1 -1
  1038. package/dist/src/public/sveltekit/routing.d.ts +0 -4
  1039. package/dist/src/public/sveltekit/routing.js +1 -1
  1040. package/dist/src/public/tools/approval/index.d.ts +1 -1
  1041. package/dist/src/public/tools/bash.d.ts +1 -1
  1042. package/dist/src/public/tools/bash.js +1 -1
  1043. package/dist/src/public/tools/glob.d.ts +1 -1
  1044. package/dist/src/public/tools/glob.js +1 -1
  1045. package/dist/src/public/tools/grep.d.ts +1 -1
  1046. package/dist/src/public/tools/grep.js +1 -1
  1047. package/dist/src/public/tools/index.d.ts +5 -9
  1048. package/dist/src/public/tools/index.js +1 -1
  1049. package/dist/src/public/tools/read-file.d.ts +1 -1
  1050. package/dist/src/public/tools/read-file.js +1 -1
  1051. package/dist/src/public/tools/result.d.ts +17 -9
  1052. package/dist/src/public/tools/result.js +1 -1
  1053. package/dist/src/public/tools/web-fetch.d.ts +1 -1
  1054. package/dist/src/public/tools/web-fetch.js +1 -1
  1055. package/dist/src/public/tools/web-search.d.ts +1 -3
  1056. package/dist/src/public/tools/web-search.js +1 -1
  1057. package/dist/src/public/tools/write-file.d.ts +1 -1
  1058. package/dist/src/public/tools/write-file.js +1 -1
  1059. package/dist/src/public/workflow-modules.d.ts +8 -2
  1060. package/dist/src/react/index.d.ts +4 -7
  1061. package/dist/src/react/index.js +1 -1
  1062. package/dist/src/react/use-eve-agent.d.ts +68 -50
  1063. package/dist/src/react/use-eve-agent.js +1 -1
  1064. package/dist/src/reactions/bundle.d.ts +4 -0
  1065. package/dist/src/reactions/bundle.js +1 -0
  1066. package/dist/src/reactions/frame.d.ts +13 -0
  1067. package/dist/src/reactions/frame.js +1 -0
  1068. package/dist/src/reactions/intents.d.ts +22 -0
  1069. package/dist/src/reactions/intents.js +1 -0
  1070. package/dist/src/reactions/kinds/connection.d.ts +18 -0
  1071. package/dist/src/reactions/kinds/connection.js +1 -0
  1072. package/dist/src/reactions/kinds/hook.d.ts +8 -0
  1073. package/dist/src/reactions/kinds/hook.js +1 -0
  1074. package/dist/src/reactions/kinds/instructions.d.ts +21 -0
  1075. package/dist/src/reactions/kinds/instructions.js +1 -0
  1076. package/dist/src/reactions/kinds/memory.d.ts +72 -0
  1077. package/dist/src/reactions/kinds/memory.js +1 -0
  1078. package/dist/src/reactions/kinds/model.d.ts +21 -0
  1079. package/dist/src/reactions/kinds/model.js +1 -0
  1080. package/dist/src/reactions/kinds/skill.d.ts +27 -0
  1081. package/dist/src/reactions/kinds/skill.js +1 -0
  1082. package/dist/src/reactions/kinds/subagent.d.ts +16 -0
  1083. package/dist/src/reactions/kinds/subagent.js +1 -0
  1084. package/dist/src/reactions/kinds/tool.d.ts +16 -0
  1085. package/dist/src/reactions/kinds/tool.js +1 -0
  1086. package/dist/src/reactions/policy.d.ts +13 -0
  1087. package/dist/src/reactions/policy.js +1 -0
  1088. package/dist/src/reactions/reaction.d.ts +83 -0
  1089. package/dist/src/reactions/reaction.js +1 -0
  1090. package/dist/src/reactions/records.d.ts +40 -0
  1091. package/dist/src/reactions/records.js +1 -0
  1092. package/dist/src/reactions/remote.d.ts +25 -0
  1093. package/dist/src/reactions/remote.js +1 -0
  1094. package/dist/src/reactions/runner.d.ts +45 -0
  1095. package/dist/src/reactions/runner.js +1 -0
  1096. package/dist/src/reactions/state.d.ts +102 -0
  1097. package/dist/src/reactions/state.js +1 -0
  1098. package/dist/src/reactions/turn.d.ts +12 -0
  1099. package/dist/src/reactions/turn.js +2 -0
  1100. package/dist/src/runtime/agent/bootstrap.d.ts +1 -3
  1101. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  1102. package/dist/src/runtime/agent/resolve-model.js +1 -1
  1103. package/dist/src/runtime/connections/mcp-client.d.ts +5 -2
  1104. package/dist/src/runtime/connections/mcp-client.js +1 -1
  1105. package/dist/src/runtime/connections/openapi-client.js +1 -1
  1106. package/dist/src/runtime/connections/openapi-operations.d.ts +4 -0
  1107. package/dist/src/runtime/connections/openapi-operations.js +1 -1
  1108. package/dist/src/runtime/connections/openapi-schema.d.ts +19 -14
  1109. package/dist/src/runtime/connections/openapi-schema.js +1 -1
  1110. package/dist/src/runtime/connections/principal.d.ts +2 -0
  1111. package/dist/src/runtime/connections/principal.js +1 -1
  1112. package/dist/src/runtime/connections/registry.d.ts +2 -2
  1113. package/dist/src/runtime/connections/registry.js +1 -1
  1114. package/dist/src/runtime/connections/scoped-authorization.d.ts +8 -1
  1115. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  1116. package/dist/src/runtime/graph.d.ts +0 -6
  1117. package/dist/src/runtime/local-dev-capability.d.ts +4 -5
  1118. package/dist/src/runtime/local-dev-capability.js +1 -1
  1119. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  1120. package/dist/src/runtime/resolve-agent.js +1 -1
  1121. package/dist/src/runtime/resolve-connection.js +1 -1
  1122. package/dist/src/runtime/resolve-dynamic.d.ts +9 -0
  1123. package/dist/src/runtime/resolve-dynamic.js +1 -0
  1124. package/dist/src/runtime/resolve-hook.js +1 -1
  1125. package/dist/src/runtime/resolve-memory.js +1 -1
  1126. package/dist/src/runtime/resolve-tool.js +1 -1
  1127. package/dist/src/runtime/schedules/collection-client.js +1 -1
  1128. package/dist/src/runtime/schedules/dispatch-occurrence.js +1 -1
  1129. package/dist/src/runtime/sessions/compiled-agent-cache.d.ts +0 -2
  1130. package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
  1131. package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
  1132. package/dist/src/runtime/subagents/dynamic-remote-agent-config.d.ts +16 -3
  1133. package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
  1134. package/dist/src/runtime/subagents/workflow.js +1 -1
  1135. package/dist/src/runtime/types.d.ts +22 -39
  1136. package/dist/src/sandbox/provider.d.ts +3 -3
  1137. package/dist/src/sandbox/providers/default.d.ts +4 -2
  1138. package/dist/src/sandbox/providers/default.js +1 -1
  1139. package/dist/src/self-modification/agent.d.ts +3 -3
  1140. package/dist/src/self-modification/agent.js +1 -1
  1141. package/dist/src/self-modification/config.d.ts +1 -1
  1142. package/dist/src/self-modification/config.js +1 -1
  1143. package/dist/src/self-modification/deployed-sandbox.js +1 -1
  1144. package/dist/src/self-modification/extension/extension.d.ts +1 -0
  1145. package/dist/src/self-modification/extension/local-only.d.ts +1 -1
  1146. package/dist/src/self-modification/extension/local-only.js +1 -1
  1147. package/dist/src/self-modification/extension/subagents/agent/agent.d.ts +15 -4
  1148. package/dist/src/self-modification/extension/subagents/agent/agent.js +1 -1
  1149. package/dist/src/self-modification/extension/subagents/agent/instructions.d.ts +1 -1
  1150. package/dist/src/self-modification/extension/subagents/agent/instructions.js +2 -2
  1151. package/dist/src/self-modification/extension/subagents/agent/sandbox.d.ts +2 -2
  1152. package/dist/src/self-modification/extension/subagents/agent/sandbox.js +1 -1
  1153. package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.d.ts +3 -3
  1154. package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.js +1 -1
  1155. package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace.d.ts +1 -1
  1156. package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace_spans.d.ts +1 -1
  1157. package/dist/src/self-modification/extension/subagents/agent/tools/registry_add.d.ts +1 -1
  1158. package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.d.ts +1 -1
  1159. package/dist/src/self-modification/mode.d.ts +8 -0
  1160. package/dist/src/self-modification/mode.js +1 -1
  1161. package/dist/src/self-modification/remote/config.d.ts +3 -6
  1162. package/dist/src/self-modification/remote/extension.d.ts +1 -0
  1163. package/dist/src/self-modification/remote/production-registry-add.js +1 -1
  1164. package/dist/src/self-modification/remote/subagents/agent/agent.d.ts +6 -3
  1165. package/dist/src/self-modification/remote/subagents/agent/agent.js +1 -1
  1166. package/dist/src/self-modification/remote/subagents/agent/instructions.d.ts +1 -1
  1167. package/dist/src/self-modification/remote/subagents/agent/instructions.js +2 -2
  1168. package/dist/src/self-modification/remote/subagents/agent/tools/publish.d.ts +1 -3
  1169. package/dist/src/self-modification/remote/subagents/agent/tools/publish.js +1 -1
  1170. package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.d.ts +1 -3
  1171. package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.js +1 -1
  1172. package/dist/src/self-modification/scaffold.js +1 -1
  1173. package/dist/src/self-modification/setup.js +3 -6
  1174. package/dist/src/services/dev-client/client-options.js +1 -1
  1175. package/dist/src/services/dev-client.d.ts +4 -4
  1176. package/dist/src/services/dev-client.js +1 -1
  1177. package/dist/src/setup/integrations/self-modification/setup.d.ts +1 -4
  1178. package/dist/src/setup/integrations/self-modification/setup.js +1 -1
  1179. package/dist/src/setup/scaffold/create/project.js +1 -1
  1180. package/dist/src/setup/scaffold/create/web-template.d.ts +9 -18
  1181. package/dist/src/setup/scaffold/create/web-template.js +1015 -2537
  1182. package/dist/src/setup/verified-remote-agent.js +1 -1
  1183. package/dist/src/shared/action-label.d.ts +5 -3
  1184. package/dist/src/shared/action-label.js +1 -1
  1185. package/dist/src/shared/action-types.d.ts +5 -0
  1186. package/dist/src/shared/action-types.js +1 -1
  1187. package/dist/src/shared/agent-definition.d.ts +14 -9
  1188. package/dist/src/shared/answers-delivery-id.d.ts +1 -0
  1189. package/dist/src/shared/answers-delivery-id.js +1 -0
  1190. package/dist/src/shared/channel-context.d.ts +12 -0
  1191. package/dist/src/shared/channel-context.js +1 -0
  1192. package/dist/src/shared/channel-definition.d.ts +19 -26
  1193. package/dist/src/shared/channel-delivery.d.ts +16 -0
  1194. package/dist/src/shared/channel-delivery.js +1 -0
  1195. package/dist/src/shared/connection-events.d.ts +2 -2
  1196. package/dist/src/shared/connection-types.d.ts +12 -32
  1197. package/dist/src/shared/conversation-context.d.ts +4 -13
  1198. package/dist/src/shared/delivery.d.ts +38 -0
  1199. package/dist/src/shared/delivery.js +1 -0
  1200. package/dist/src/shared/history-message.d.ts +190 -0
  1201. package/dist/src/shared/history-message.js +1 -0
  1202. package/dist/src/shared/input.d.ts +23 -97
  1203. package/dist/src/shared/input.js +1 -1
  1204. package/dist/src/shared/instructions-definition.d.ts +2 -8
  1205. package/dist/src/shared/instrumentation-channel-kind.d.ts +1 -1
  1206. package/dist/src/shared/instrumentation-channel.d.ts +12 -0
  1207. package/dist/src/shared/instrumentation-channel.js +1 -0
  1208. package/dist/src/shared/json.d.ts +2 -18
  1209. package/dist/src/shared/memory-state.d.ts +4 -40
  1210. package/dist/src/shared/memory-state.js +1 -1
  1211. package/dist/src/shared/message-content.d.ts +19 -0
  1212. package/dist/src/shared/message-content.js +1 -0
  1213. package/dist/src/shared/network-address.d.ts +9 -0
  1214. package/dist/src/shared/network-address.js +1 -1
  1215. package/dist/src/shared/sandbox-environment.d.ts +2 -2
  1216. package/dist/src/shared/sandbox-provider.d.ts +1 -1
  1217. package/dist/src/shared/sandbox-session.d.ts +60 -85
  1218. package/dist/src/shared/schedule-definition.d.ts +5 -5
  1219. package/dist/src/shared/serialized-observability-state.d.ts +0 -2
  1220. package/dist/src/shared/serialized-observability-state.js +1 -1
  1221. package/dist/src/shared/session-history.d.ts +2 -2
  1222. package/dist/src/shared/session.d.ts +22 -0
  1223. package/dist/src/shared/session.js +1 -0
  1224. package/dist/src/shared/skill-definition.d.ts +1 -1
  1225. package/dist/src/shared/skill-package.d.ts +2 -2
  1226. package/dist/src/shared/skill-package.js +1 -1
  1227. package/dist/src/shared/token-usage-math.d.ts +5 -0
  1228. package/dist/src/shared/token-usage-math.js +1 -0
  1229. package/dist/src/shared/token-usage.d.ts +0 -2
  1230. package/dist/src/shared/token-usage.js +1 -1
  1231. package/dist/src/shared/validate-authorization.js +1 -1
  1232. package/dist/src/shared/wait-with-signal.d.ts +2 -0
  1233. package/dist/src/shared/wait-with-signal.js +1 -0
  1234. package/dist/src/subagents/adapter.d.ts +3 -5
  1235. package/dist/src/subagents/adapter.js +1 -1
  1236. package/dist/src/subagents/callback-route.js +1 -1
  1237. package/dist/src/subagents/event-proxy-step.d.ts +6 -9
  1238. package/dist/src/subagents/event-proxy-step.js +1 -1
  1239. package/dist/src/subagents/hitl-proxy.d.ts +11 -23
  1240. package/dist/src/subagents/hitl-proxy.js +1 -1
  1241. package/dist/src/subagents/invocation.d.ts +8 -8
  1242. package/dist/src/subagents/invocation.js +2 -2
  1243. package/dist/src/subagents/parent-notification.d.ts +5 -0
  1244. package/dist/src/subagents/parent-notification.js +1 -1
  1245. package/dist/src/subagents/protocol-two-callback.d.ts +27 -0
  1246. package/dist/src/subagents/protocol-two-callback.js +1 -0
  1247. package/dist/src/svelte/index.d.ts +3 -6
  1248. package/dist/src/svelte/index.js +2 -39
  1249. package/dist/src/svelte/use-eve-agent.d.ts +67 -56
  1250. package/dist/src/svelte/use-eve-agent.js +1 -1
  1251. package/dist/src/tool-stubs/rules.js +1 -1
  1252. package/dist/src/tools/approval/policies.d.ts +4 -16
  1253. package/dist/src/tools/approval/policies.js +1 -1
  1254. package/dist/src/tools/auth.d.ts +3 -3
  1255. package/dist/src/tools/definition.d.ts +13 -35
  1256. package/dist/src/tools/definition.js +1 -1
  1257. package/dist/src/tools/dynamic.d.ts +13 -72
  1258. package/dist/src/tools/dynamic.js +1 -1
  1259. package/dist/src/tools/framework/agent.js +1 -1
  1260. package/dist/src/tools/provided/ask-question-workflow.d.ts +3 -3
  1261. package/dist/src/tools/provided/ask-question-workflow.js +1 -1
  1262. package/dist/src/tools/provided/ask-question.d.ts +2 -2
  1263. package/dist/src/tools/provided/ask-question.js +1 -1
  1264. package/dist/src/tools/provided/grep.d.ts +2 -15
  1265. package/dist/src/tools/provided/grep.js +1 -2
  1266. package/dist/src/tools/provided/no-reply.d.ts +2 -2
  1267. package/dist/src/tools/provided/no-reply.js +1 -1
  1268. package/dist/src/tools/provided/sleep-workflow.js +1 -1
  1269. package/dist/src/tools/provided/sleep.d.ts +2 -2
  1270. package/dist/src/tools/provided/sleep.js +1 -1
  1271. package/dist/src/tools/provided/workflow.js +1 -1
  1272. package/dist/src/tools/schema.d.ts +2 -0
  1273. package/dist/src/tools/schema.js +1 -1
  1274. package/dist/src/tools/signature.js +1 -1
  1275. package/dist/src/tools/workflow-definition.d.ts +17 -15
  1276. package/dist/src/tracing/eve/agent-approval-instrumentation.d.ts +1 -1
  1277. package/dist/src/tracing/eve/agent-approval-instrumentation.js +1 -1
  1278. package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.d.ts +2 -2
  1279. package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.js +1 -1
  1280. package/dist/src/tracing/eve/agent-invocation-coordinator.d.ts +2 -2
  1281. package/dist/src/tracing/eve/agent-otel-provider.js +1 -1
  1282. package/dist/src/tracing/eve/agent-tool-instrumentation.d.ts +6 -7
  1283. package/dist/src/tracing/eve/agent-tool-instrumentation.js +1 -1
  1284. package/dist/src/tracing/eve/agent-trace-context-store.d.ts +3 -3
  1285. package/dist/src/tracing/eve/agent-trace-state.d.ts +1 -6
  1286. package/dist/src/tracing/eve/delegation.d.ts +4 -4
  1287. package/dist/src/tracing/eve/install-instrumentation-runtime.js +1 -1
  1288. package/dist/src/tracing/eve/invoke-tool-span.d.ts +3 -2
  1289. package/dist/src/tracing/eve/invoke-tool-span.js +1 -1
  1290. package/dist/src/tracing/eve/otel-declaration.d.ts +9 -10
  1291. package/dist/src/tracing/eve/otel-declaration.js +1 -1
  1292. package/dist/src/tracing/eve/policy.d.ts +2 -2
  1293. package/dist/src/tracing/eve/policy.js +1 -1
  1294. package/dist/src/tracing/eve/session.d.ts +4 -3
  1295. package/dist/src/tracing/eve/session.js +1 -1
  1296. package/dist/src/vue/index.d.ts +3 -6
  1297. package/dist/src/vue/index.js +2 -39
  1298. package/dist/src/vue/use-eve-agent.d.ts +70 -59
  1299. package/dist/src/vue/use-eve-agent.js +1 -1
  1300. package/docs/agent-config.md +40 -44
  1301. package/docs/channels/chat-sdk.mdx +19 -13
  1302. package/docs/channels/custom.mdx +106 -85
  1303. package/docs/channels/discord.mdx +12 -12
  1304. package/docs/channels/eve.mdx +48 -15
  1305. package/docs/channels/github.mdx +2 -2
  1306. package/docs/channels/linear.mdx +8 -8
  1307. package/docs/channels/linq.mdx +1 -1
  1308. package/docs/channels/mcp.mdx +2 -2
  1309. package/docs/channels/overview.mdx +11 -1
  1310. package/docs/channels/photon.mdx +1 -1
  1311. package/docs/channels/slack.mdx +65 -58
  1312. package/docs/channels/teams.mdx +4 -4
  1313. package/docs/channels/telegram.mdx +1 -1
  1314. package/docs/channels/twilio.mdx +2 -2
  1315. package/docs/code-extension.mdx +19 -7
  1316. package/docs/concepts/built-in-tools.md +21 -9
  1317. package/docs/concepts/context-control.md +5 -8
  1318. package/docs/concepts/default-harness.md +8 -9
  1319. package/docs/concepts/execution-model-and-durability.mdx +119 -12
  1320. package/docs/concepts/meta.json +1 -0
  1321. package/docs/concepts/sessions-runs-and-streaming.md +244 -138
  1322. package/docs/concepts/state.md +1 -1
  1323. package/docs/concepts/upgrade-to-v27-events.md +128 -0
  1324. package/docs/connections/mcp.mdx +38 -34
  1325. package/docs/connections/openapi.mdx +24 -3
  1326. package/docs/connections/overview.mdx +66 -57
  1327. package/docs/evals/assertions.mdx +30 -24
  1328. package/docs/evals/cases.mdx +19 -24
  1329. package/docs/evals/judge.mdx +2 -2
  1330. package/docs/evals/overview.mdx +7 -7
  1331. package/docs/evals/reporters.mdx +15 -11
  1332. package/docs/evals/targets.mdx +5 -3
  1333. package/docs/evals/tool-stubs.mdx +2 -2
  1334. package/docs/extensions.md +6 -3
  1335. package/docs/guides/auth-and-route-protection.md +4 -0
  1336. package/docs/guides/client/continuations.mdx +10 -10
  1337. package/docs/guides/client/messages.mdx +50 -48
  1338. package/docs/guides/client/output-schema.mdx +13 -13
  1339. package/docs/guides/client/overview.mdx +12 -12
  1340. package/docs/guides/client/streaming.mdx +160 -123
  1341. package/docs/guides/decide.md +15 -9
  1342. package/docs/guides/deployment/self-hosting.md +5 -40
  1343. package/docs/guides/dynamic-capabilities.md +151 -406
  1344. package/docs/guides/frontend/nextjs.mdx +1 -1
  1345. package/docs/guides/frontend/nuxt.mdx +2 -2
  1346. package/docs/guides/frontend/overview.mdx +257 -181
  1347. package/docs/guides/frontend/sveltekit.mdx +4 -4
  1348. package/docs/guides/frontend/tanstack.mdx +5 -5
  1349. package/docs/guides/frontend/use-eve-agent-svelte.mdx +30 -38
  1350. package/docs/guides/frontend/use-eve-agent-vue.mdx +35 -36
  1351. package/docs/guides/hooks.md +67 -55
  1352. package/docs/guides/instrumentation/instrumentation.mdx +33 -27
  1353. package/docs/guides/instrumentation/otel.mdx +4 -2
  1354. package/docs/guides/remote-agents.md +116 -50
  1355. package/docs/guides/self-modification.md +11 -7
  1356. package/docs/instructions.mdx +4 -6
  1357. package/docs/memory/custom-provider.md +63 -56
  1358. package/docs/memory/file.md +1 -1
  1359. package/docs/memory/overview.mdx +10 -18
  1360. package/docs/patterns/durable-cross-channel-notifications.md +4 -3
  1361. package/docs/patterns/multi-tenant-approvals.md +3 -3
  1362. package/docs/patterns/multi-tenant-auth.md +3 -3
  1363. package/docs/patterns/multi-tenant-memory.md +6 -7
  1364. package/docs/patterns/voice-notes.md +1 -1
  1365. package/docs/reference/cli.md +11 -25
  1366. package/docs/reference/typescript-api.md +88 -61
  1367. package/docs/sandbox/custom-providers.mdx +13 -14
  1368. package/docs/sandbox/default.mdx +1 -1
  1369. package/docs/sandbox/docker.mdx +10 -0
  1370. package/docs/sandbox/index.mdx +4 -0
  1371. package/docs/sandbox/vercel.mdx +6 -6
  1372. package/docs/schedules.mdx +4 -4
  1373. package/docs/skills.mdx +6 -6
  1374. package/docs/subagents/index.mdx +25 -34
  1375. package/docs/tools/human-in-the-loop.md +42 -34
  1376. package/docs/tools/overview.mdx +14 -12
  1377. package/docs/tools/tasks-upgrade.md +13 -1
  1378. package/docs/tools/tasks.md +58 -89
  1379. package/docs/tools/workflows.mdx +44 -33
  1380. package/docs/tutorial/guard-the-spend.mdx +1 -1
  1381. package/docs/tutorial/run-analysis.mdx +15 -12
  1382. package/docs/tutorial/team-playbooks.mdx +19 -23
  1383. package/package.json +148 -93
  1384. package/dist/src/chunks/use-eve-agent-DnbG9c7c.js +0 -4921
  1385. package/dist/src/chunks/use-eve-agent-ZY7NQ2VW.js +0 -4963
  1386. package/dist/src/cli/invoke/command.d.ts +0 -19
  1387. package/dist/src/cli/invoke/command.js +0 -1
  1388. package/dist/src/cli/invoke/invoke.d.ts +0 -27
  1389. package/dist/src/cli/invoke/invoke.js +0 -1
  1390. package/dist/src/cli/invoke/result.d.ts +0 -137
  1391. package/dist/src/cli/invoke/result.js +0 -1
  1392. package/dist/src/client/agent-host.d.ts +0 -4
  1393. package/dist/src/client/agent-host.js +0 -1
  1394. package/dist/src/client/authorization-message-parts.d.ts +0 -4
  1395. package/dist/src/client/authorization-message-parts.js +0 -1
  1396. package/dist/src/client/conversation-projection.d.ts +0 -4
  1397. package/dist/src/client/conversation-projection.js +0 -1
  1398. package/dist/src/client/conversation-reducer.d.ts +0 -29
  1399. package/dist/src/client/conversation-reducer.js +0 -1
  1400. package/dist/src/client/eve-agent-projection.d.ts +0 -28
  1401. package/dist/src/client/eve-agent-projection.js +0 -1
  1402. package/dist/src/client/eve-agent-store-helpers.d.ts +0 -34
  1403. package/dist/src/client/eve-agent-store-helpers.js +0 -2
  1404. package/dist/src/client/eve-agent-store-state.d.ts +0 -96
  1405. package/dist/src/client/eve-agent-store.d.ts +0 -45
  1406. package/dist/src/client/eve-agent-store.js +0 -1
  1407. package/dist/src/client/message-action-parts.d.ts +0 -37
  1408. package/dist/src/client/message-action-parts.js +0 -1
  1409. package/dist/src/client/message-reducer-primitives.d.ts +0 -6
  1410. package/dist/src/client/message-reducer-primitives.js +0 -1
  1411. package/dist/src/client/message-reducer-types.d.ts +0 -244
  1412. package/dist/src/client/message-reducer.d.ts +0 -14
  1413. package/dist/src/client/message-reducer.js +0 -1
  1414. package/dist/src/client/message-response.d.ts +0 -74
  1415. package/dist/src/client/message-response.js +0 -1
  1416. package/dist/src/client/message-run-parts.d.ts +0 -22
  1417. package/dist/src/client/message-run-parts.js +0 -1
  1418. package/dist/src/client/output-schema.d.ts +0 -5
  1419. package/dist/src/client/output-schema.js +0 -1
  1420. package/dist/src/client/reducer.d.ts +0 -67
  1421. package/dist/src/client/session-turn-dispatch.d.ts +0 -15
  1422. package/dist/src/client/session-turn-dispatch.js +0 -1
  1423. package/dist/src/client/tool-call-state.d.ts +0 -23
  1424. package/dist/src/client/tool-call-state.js +0 -1
  1425. package/dist/src/client/tool-part-state.d.ts +0 -7
  1426. package/dist/src/client/tool-part-state.js +0 -1
  1427. package/dist/src/client/transcript-reducer.d.ts +0 -49
  1428. package/dist/src/client/transcript-reducer.js +0 -2
  1429. package/dist/src/context/build-dynamic-tools.d.ts +0 -10
  1430. package/dist/src/context/build-dynamic-tools.js +0 -1
  1431. package/dist/src/context/dynamic-connection-lifecycle.d.ts +0 -15
  1432. package/dist/src/context/dynamic-connection-lifecycle.js +0 -1
  1433. package/dist/src/context/dynamic-instruction-lifecycle.d.ts +0 -31
  1434. package/dist/src/context/dynamic-instruction-lifecycle.js +0 -1
  1435. package/dist/src/context/dynamic-model-lifecycle.d.ts +0 -19
  1436. package/dist/src/context/dynamic-model-lifecycle.js +0 -1
  1437. package/dist/src/context/dynamic-resolve-context.d.ts +0 -12
  1438. package/dist/src/context/dynamic-resolve-context.js +0 -1
  1439. package/dist/src/context/dynamic-skill-lifecycle.d.ts +0 -15
  1440. package/dist/src/context/dynamic-skill-lifecycle.js +0 -1
  1441. package/dist/src/context/dynamic-subagent-lifecycle.d.ts +0 -27
  1442. package/dist/src/context/dynamic-subagent-lifecycle.js +0 -1
  1443. package/dist/src/context/dynamic-tool-lifecycle.d.ts +0 -46
  1444. package/dist/src/context/dynamic-tool-lifecycle.js +0 -1
  1445. package/dist/src/context/dynamic-tool-metadata.d.ts +0 -47
  1446. package/dist/src/context/dynamic-tool-metadata.js +0 -1
  1447. package/dist/src/context/effective-model.d.ts +0 -5
  1448. package/dist/src/context/effective-model.js +0 -1
  1449. package/dist/src/context/hook-lifecycle.d.ts +0 -15
  1450. package/dist/src/context/hook-lifecycle.js +0 -1
  1451. package/dist/src/context/memory-event-lifecycle.d.ts +0 -15
  1452. package/dist/src/context/memory-event-lifecycle.js +0 -1
  1453. package/dist/src/context/memory-lifecycle.d.ts +0 -47
  1454. package/dist/src/context/memory-lifecycle.js +0 -1
  1455. package/dist/src/context/serialized-dynamic-model-selection.d.ts +0 -2
  1456. package/dist/src/context/serialized-dynamic-model-selection.js +0 -1
  1457. package/dist/src/execution/cancel-descendant-turns-step.d.ts +0 -6
  1458. package/dist/src/execution/cancel-descendant-turns-step.js +0 -1
  1459. package/dist/src/execution/dynamic-connection-recovery.d.ts +0 -14
  1460. package/dist/src/execution/dynamic-connection-recovery.js +0 -1
  1461. package/dist/src/execution/dynamic-connections.d.ts +0 -12
  1462. package/dist/src/execution/dynamic-connections.js +0 -1
  1463. package/dist/src/execution/history-view.d.ts +0 -10
  1464. package/dist/src/execution/history-view.js +0 -1
  1465. package/dist/src/execution/legacy-remote-agent/protocol.d.ts +0 -49
  1466. package/dist/src/execution/legacy-remote-agent/protocol.js +0 -1
  1467. package/dist/src/execution/runtime-errors.d.ts +0 -13
  1468. package/dist/src/execution/runtime-errors.js +0 -1
  1469. package/dist/src/execution/sandbox/grep-tool.d.ts +0 -26
  1470. package/dist/src/execution/sandbox/grep-tool.js +0 -3
  1471. package/dist/src/execution/session/turn-waiting-step.d.ts +0 -4
  1472. package/dist/src/execution/session/turn-waiting-step.js +0 -1
  1473. package/dist/src/execution/tools/workflow/cancel.d.ts +0 -13
  1474. package/dist/src/execution/tools/workflow/cancel.js +0 -1
  1475. package/dist/src/execution/workflow-trace-context.d.ts +0 -8
  1476. package/dist/src/execution/workflow-trace-context.js +0 -1
  1477. package/dist/src/extensions/code/extension/instructions/github.d.ts +0 -3
  1478. package/dist/src/extensions/code/extension/instructions/github.js +0 -1
  1479. package/dist/src/extensions/code/extension/lib/github-compat.d.ts +0 -28
  1480. package/dist/src/extensions/code/extension/lib/github-compat.js +0 -1
  1481. package/dist/src/extensions/code/extension/lib/grep-search.js +0 -6
  1482. package/dist/src/extensions/code/extension/skills/pr.d.ts +0 -6
  1483. package/dist/src/extensions/code/extension/skills/pr.js +0 -1
  1484. package/dist/src/extensions/code/extension/tools/gh.d.ts +0 -28
  1485. package/dist/src/extensions/code/extension/tools/gh.js +0 -1
  1486. package/dist/src/harness/approval-recheck.d.ts +0 -7
  1487. package/dist/src/harness/approval-recheck.js +0 -1
  1488. package/dist/src/harness/authorization-event-fields.d.ts +0 -16
  1489. package/dist/src/harness/authorization-event-fields.js +0 -1
  1490. package/dist/src/harness/hitl/candidates.d.ts +0 -139
  1491. package/dist/src/harness/hitl/candidates.js +0 -1
  1492. package/dist/src/harness/hitl/coordinator.d.ts +0 -35
  1493. package/dist/src/harness/hitl/coordinator.js +0 -1
  1494. package/dist/src/harness/input-extraction.d.ts +0 -13
  1495. package/dist/src/harness/input-extraction.js +0 -1
  1496. package/dist/src/harness/input-request-class.d.ts +0 -3
  1497. package/dist/src/harness/input-request-class.js +0 -1
  1498. package/dist/src/harness/input-request-resolution.d.ts +0 -39
  1499. package/dist/src/harness/input-request-resolution.js +0 -1
  1500. package/dist/src/harness/open-input-request.d.ts +0 -8
  1501. package/dist/src/harness/open-input-request.js +0 -1
  1502. package/dist/src/harness/session-machine/events.d.ts +0 -6
  1503. package/dist/src/harness/session-machine/events.js +0 -1
  1504. package/dist/src/harness/session-machine/resolver-events.d.ts +0 -12
  1505. package/dist/src/harness/session-machine/resolver-events.js +0 -1
  1506. package/dist/src/harness/tool-call-action.d.ts +0 -9
  1507. package/dist/src/harness/tool-call-action.js +0 -1
  1508. package/dist/src/harness/tool-interrupts.d.ts +0 -22
  1509. package/dist/src/harness/tool-interrupts.js +0 -1
  1510. package/dist/src/harness/tool-presentation.d.ts +0 -5
  1511. package/dist/src/harness/tool-presentation.js +0 -1
  1512. package/dist/src/harness/turn-tag-state.d.ts +0 -115
  1513. package/dist/src/harness/turn-tag-state.js +0 -1
  1514. package/dist/src/internal/dynamic-tool-rebind.d.ts +0 -3
  1515. package/dist/src/internal/dynamic-tool-rebind.js +0 -1
  1516. package/dist/src/internal/nitro/host/extension-capability-requirements.d.ts +0 -14
  1517. package/dist/src/internal/nitro/host/extension-capability-requirements.js +0 -1
  1518. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.d.ts +0 -12
  1519. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.js +0 -1
  1520. package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.d.ts +0 -7
  1521. package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.js +0 -3
  1522. package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.d.ts +0 -79
  1523. package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.js +0 -1
  1524. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.d.ts +0 -14
  1525. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +0 -3
  1526. package/dist/src/protocol/event-dedupe.d.ts +0 -26
  1527. package/dist/src/protocol/event-dedupe.js +0 -1
  1528. package/dist/src/protocol/event-id.d.ts +0 -10
  1529. package/dist/src/protocol/event-id.js +0 -1
  1530. package/dist/src/protocol/message-version.d.ts +0 -53
  1531. package/dist/src/protocol/message-version.js +0 -1
  1532. package/dist/src/protocol/message.d.ts +0 -1198
  1533. package/dist/src/protocol/message.js +0 -2
  1534. package/dist/src/public/channels/chat-sdk/messageToUserContent.js +0 -1
  1535. package/dist/src/public/channels/slack/input-response.js +0 -1
  1536. package/dist/src/runtime/hooks/registry.d.ts +0 -34
  1537. package/dist/src/runtime/hooks/registry.js +0 -1
  1538. package/dist/src/runtime/resolve-dynamic-connection.d.ts +0 -5
  1539. package/dist/src/runtime/resolve-dynamic-connection.js +0 -1
  1540. package/dist/src/runtime/resolve-dynamic-instructions.d.ts +0 -4
  1541. package/dist/src/runtime/resolve-dynamic-instructions.js +0 -1
  1542. package/dist/src/runtime/resolve-dynamic-skill.d.ts +0 -8
  1543. package/dist/src/runtime/resolve-dynamic-skill.js +0 -1
  1544. package/dist/src/runtime/resolve-dynamic-subagent.d.ts +0 -9
  1545. package/dist/src/runtime/resolve-dynamic-subagent.js +0 -1
  1546. package/dist/src/runtime/resolve-dynamic-tool.d.ts +0 -12
  1547. package/dist/src/runtime/resolve-dynamic-tool.js +0 -1
  1548. package/dist/src/self-modification/migration.d.ts +0 -9
  1549. package/dist/src/self-modification/migration.js +0 -28
  1550. package/dist/src/shared/history-view.d.ts +0 -22
  1551. package/dist/src/shared/history-view.js +0 -1
  1552. package/dist/src/shared/package-version.d.ts +0 -2
  1553. package/dist/src/shared/package-version.js +0 -1
  1554. package/dist/src/tools/durable-callbacks.d.ts +0 -118
  1555. package/dist/src/tools/durable-callbacks.js +0 -1
  1556. package/dist/src/tools/durable-schema.d.ts +0 -16
  1557. package/dist/src/tools/durable-schema.js +0 -1
  1558. /package/dist/src/{client/eve-agent-store-state.js → ai/decision-types.js} +0 -0
  1559. /package/dist/src/client/{message-reducer-types.js → agent-info-types.js} +0 -0
  1560. /package/dist/src/client/{reducer.js → health-types.js} +0 -0
  1561. /package/dist/src/{shared → protocol/session-projection}/display-name.d.ts +0 -0
  1562. /package/dist/src/{shared → protocol/session-projection}/display-name.js +0 -0
@@ -1,10 +1,10 @@
1
- import{setConsoleRecordSubscriber}from"../console-records.js";import{buildAgentHeader}from"./agent-header.js";import{PROMPT_COMMANDS,isPromptControlCommand,parsePromptCommand,promptCommandSpec}from"./prompt-commands.js";import{argumentTypeaheadCompletion,argumentTypeaheadFor,argumentTypeaheadLoadingLabel,argumentTypeaheadQuery,moveArgumentTypeaheadSelection,renderArgumentSuggestions,selectedArgumentSuggestion}from"./argument-typeahead.js";import{detectMarkdownRendering}from"./markdown.js";import{renderAttentionRows,renderBlockLines}from"./blocks.js";import{copyTextToClipboard}from"./clipboard.js";import{dismissTypeahead,inlineCommandHint,isTypeaheadOpen,moveTypeaheadSelection,renderCommandSuggestions,selectedTypeaheadCommand,typeaheadCompletion,typeaheadFor}from"./command-typeahead.js";import{interruptedError}from"./errors.js";import{formatDevRebuildStatus,summarizeChangedFiles}from"./dev-rebuild-status.js";import{formatStoredDiagnostic,presentDiagnostic}from"./diagnostic-presentation.js";import{EMPTY_LINE,KillRing,PromptHistory,applyLineEditorKey,deleteForward,layoutPromptInput,lineOf,movePromptLine,visibleLine}from"./line-editor.js";import{enterBadge,flowMessageRows,renderAcknowledgeQuestion,renderSelectQuestion,renderTextQuestion}from"./setup-panel.js";import{renderFlowDrawer,renderTransientDrawer}from"./flow-drawer.js";import{isLogVisible,nextLogDisplayMode}from"./log-display-mode.js";import{MessageQueue,renderMessageQueueRows}from"./message-queue.js";import{initialPromptPlaceholder}from"./prompt-placeholder.js";import{initialProviderPickerState,transitionProviderPicker}from"./provider-picker.js";import{fitQuestionPanel,inputContextLabel,renderQuestionPanel,renderQuestionPrompt}from"./question-panel.js";import{formatAssistantResponseStats,formatTokenFlow,formatTurnDuration,isIncompleteOsc,isIncompletePaste,nextKey,sanitizePastedText,stripPasteStart,stripPromptControlCharacters}from"./stream-format.js";import{groupToolBlocksForDisplay}from"./tool-block-groups.js";import{renderTaskPanelRows}from"./task-activity.js";import{ConversationTranscript,TASK_END_GRACE_MS,turnActivity}from"./transcript.js";import{TraceViewerSession}from"./traces/trace-viewer-session.js";import{buildStatusLine}from"./status-line.js";import{createTheme,detectUnicode}from"./theme.js";import{TurnClock}from"./turn-clock.js";import{reduceSetupSelectInput,setupSelectionIntent}from"./setup-selection-input.js";import{BACKGROUND_COLOR_QUERY,parseBackgroundColorReply}from"./terminal-background.js";import{eveVersionTag}from"#cli/banner.js";import{format}from"node:util";import{clipVisible,renderInputText,renderInputWithBlockCursor,stripAnsi,stripTerminalControls,wrapVisibleLine}from"#cli/ui/terminal-text.js";import{initialSelectState,orderedSelection,reduceSelect,searchActionQuery,selectValueAtCursor}from"#setup/cli/select-state.js";import{toErrorMessage}from"#shared/errors.js";import{StringDecoder}from"node:string_decoder";import{parseDevRebuildLogLine}from"#internal/nitro/host/dev-watcher-log.js";import{LiveRegion}from"#cli/ui/live-region.js";import{AltScreen}from"#cli/ui/alt-screen.js";import{PROGRESS_PULSE_ASCII_GLYPH,PROGRESS_PULSE_GLYPH,isProgressPulseVisible}from"#cli/ui/progress-pulse.js";import{readGatewayServiceTier}from"#shared/gateway-service-tier.js";function isMultiSelectRequest(e){return e.kind===`multi`||e.kind===`searchable-multi`}function moveActionCursor(e,t,n){return n===0?void 0:e===void 0?t===`down`?0:n-1:(e+(t===`down`?1:-1)+n)%n}const incompletePasteFlushMs=1e3;var TerminalRenderer=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m;#h=[];#g=new Map;#_;#v=new Set;#y=[];#b=0;#x=new ConversationTranscript;#S;#C;#w=new Set;#T=[];#E;#D=`Send a message…`;#O;#k;#A;#j;#M=0;#N;#P=!1;#F;#I=[];#L;#R;#z;#B=``;#V=0;#H=new PromptHistory;#U=new KillRing;#W=!1;#G;#K;#q;#J=new Map;#Y=new Map;#X=!1;#Z=!1;#Q=new TurnClock;#$;#ee=EMPTY_LINE;#te;#ne=!1;#re;#ie;#ae=`eve`;#oe=!1;#se=!1;#ce=!1;#le=!1;#ue=!1;#de=!1;#fe;#pe=!0;#me=0;#he=Date.now();#ge;#_e;#ve;#ye=!1;#be;#xe=``;#Se=new StringDecoder(`utf8`);#Ce;#we;#Te=!1;#Ee=!1;#De;#Oe;#ke=``;#Ae=``;#je;#Me;#Ne;#Pe=!1;#Fe;#Ie=0;#Le;#Re;#ze;#Be;#Ve;#He=new MessageQueue;#Ue;#We;#Ge;#Ke;#qe;setupFlow={begin:e=>this.#st(e),setNavigation:e=>this.#ct(e),end:e=>this.#lt(e?.preserveDiagnostics??!0),readSelect:e=>this.#ut(e),readEditableSelect:e=>this.#ft(e),readProviderPicker:e=>this.#pt(e),readText:e=>this.#mt(e),readAcknowledge:e=>this.#ht(e),readChoice:e=>this.#dt(e),setStatus:e=>this.#Ct(e),renderLine:(e,t)=>this.#wt(e,t),replaceContent:e=>this.#Tt(e),renderOutput:e=>this.#Et(e),withInheritedStdio:e=>this.#Dt(e),withExclusiveTerminal:e=>this.#Dt(e),waitForInterrupt:e=>this.#bt(e)};traceViewer={open:e=>this.#kt(e)};constructor(e){this.#e=e?.input??process.stdin,this.#t=e?.output??process.stdout,this.#n=new LiveRegion(this.#t),this.#r=new AltScreen(this.#t),this.#i=createTheme({color:e?.color??!0,unicode:e?.unicode??detectUnicode()}),this.#a=e?.renderMarkdown??detectMarkdownRendering(),this.#o=e?.tools??`auto-collapsed`,this.#s=e?.reasoning??`auto-collapsed`,this.#c=e?.subagents??`collapsed`,this.#l=e?.connectionAuth??`full`,this.#u=e?.assistantResponseStats??`tokensPerSecond`,this.#De=e?.contextSize,this.#d=e?.captureForeignOutput??this.#t===process.stdout,this.#f=e?.diagnostics,this.#fe=e?.onExitRequest,this.#q=e?.argumentSuggestions,this.#m=e?.logs??`error`,this.#p=e?.availablePromptCommands??PROMPT_COMMANDS}#Je(e){this.#G=typeaheadFor(this.#p,e,this.#G);let t=argumentTypeaheadQuery(e);if(t===void 0||this.#q===void 0){this.#K=void 0;return}let n=this.#J.get(t.command);if(n===void 0){this.#J.set(t.command,{kind:`loading`,visible:!1});let e=t.command;this.#Y.set(e,setTimeout(()=>{this.#Y.delete(e),this.#J.get(e)?.kind===`loading`&&(this.#J.set(e,{kind:`loading`,visible:!0}),this.#on())},500)),this.#q(e).catch(()=>[]).then(t=>{let n=this.#Y.get(e);n!==void 0&&clearTimeout(n),this.#Y.delete(e),this.#J.set(e,{kind:`ready`,suggestions:t}),this.#W&&this.#Je(this.#B),this.#on()}),this.#K=void 0;return}if(n.kind===`loading`){this.#K=void 0;return}this.#K=argumentTypeaheadFor(t,n.suggestions,this.#K)}#Ye(e){let t=argumentTypeaheadQuery(this.#B),n=t===void 0?void 0:this.#J.get(t.command);return n?.kind===`loading`&&n.visible&&t!==void 0?[clip(this.#i.colors.dim(`Loading ${argumentTypeaheadLoadingLabel(t.command)}…`),e)]:this.#K===void 0?this.#G!==void 0&&isTypeaheadOpen(this.#G)?renderCommandSuggestions(this.#G,this.#i,e):[]:renderArgumentSuggestions(this.#K,this.#i,e)}setStartupPhase(e){this.#k=e,e===void 0?this.#qt():this.#Kt(),this.#on()}renderAgentHeader(e){this.#N=void 0,this.#ae=e.name,this.#E=e,this.#O=e.info?.subagents.local.map(e=>e.name),this.#D=initialPromptPlaceholder(e.info,e.localDevelopment===!0),this.#Mt();let t=this.#dn().join(`
2
- `);if(this.#P){t!==this.#F&&(this.#F=t,this.#en({kind:`agent-header`,body:t,live:!1})),this.#on();return}this.#P=!0,this.#F=t,this.#n.flush(this.#dn(),this.#gn(this.#Cn()))}beginStartupDraft(e){this.#Mt({title:e.title}),this.#W=!0,this.#X=!0,this.#k=`starting`,this.#N={name:e.title},this.#M=Date.now();let t=lineOf(stripPromptControlCharacters(e.initialDraft??``));this.#A=t,this.#et(t),this.#Ut(),this.#Kt(),this.#on();let apply=e=>{t=e,this.#A=e,this.#Gt(),this.#et(t),this.#on()};this.#j=e=>{if(e.type===`escape`&&this.#We!==void 0){this.#We(`escape`);return}if(e.type===`ctrl-c`&&this.#We!==void 0){this.#Ot(),this.#We(`ctrl-c`);return}let n=this.#U.apply(t,e,{multiline:!0});if(n!==void 0){apply(n);return}if(e.type===`enter`&&t.text.trim().length>0){this.#He.enqueue(t.text)&&apply(EMPTY_LINE);return}e.type===`ctrl-c`&&this.#fe?.()},this.#Xe()}#Xe(){this.#A!==void 0&&this.#j!==void 0&&(this.#Ht(),this.#et(this.#A),this.#W=!0,this.#be=this.#j,this.#Ft())}finishStartupDraft(){let e={draft:this.#A?.text??this.#B,queuedPrompt:this.#He.takePrompt()};return this.#A=void 0,this.#j=void 0,this.#It(),this.#Wt(),this.#W=!1,this.#X=!1,e}async readInput(e){this.#Mt(e),this.#C?.working!==!0&&this.#tn(),this.#W=!0,this.#X=!0,this.#ue=this.#de,this.#de=!1;let t=e?.initialDraft===void 0?this.#ee:lineOf(stripPromptControlCharacters(e.initialDraft));return this.#H.begin(t.text),this.#et(t),this.#Je(t.text),this.#Ut(),this.#on(),await new Promise((n,r)=>{let i=e?.signal,release=()=>{this.#te=void 0,i?.removeEventListener(`abort`,onAbort),this.#G=void 0,this.#K=void 0,this.#W=!1,this.#Wt(),this.#It(),this.#on()},finish=e=>{release(),n(e)},onAbort=()=>finish(void 0);if(i?.addEventListener(`abort`,onAbort,{once:!0}),i?.aborted){onAbort();return}this.#re=e=>{i?.removeEventListener(`abort`,onAbort),r(e)};let apply=e=>{t=e,this.#ee=e,this.#Gt(),this.#et(t),this.#Je(e.text),this.#on()};this.#te=apply;let recall=e=>{e!==void 0&&apply(lineOf(e))},interrupt=()=>{this.#G=void 0,this.#Wt(),this.#Pt(),r(interruptedError())},cancel=()=>{this.#ne=!0,finish({type:`cancel`})},suggestions=()=>this.#G!==void 0&&isTypeaheadOpen(this.#G)?this.#G:void 0,argumentSuggestions=()=>this.#K?.suggestions.length?this.#K:void 0,highlighted=()=>{let e=suggestions();return e===void 0?void 0:selectedTypeaheadCommand(e)};this.#be=e=>{e.type!==`ctrl-c`&&this.#ue&&(this.#ue=!1,this.#on());let n=this.#U.apply(t,e,{multiline:!0});if(n!==void 0){apply(n);return}let r=this.#C?.working===!0;switch(e.type){case`up`:case`ctrl-p`:{let e=argumentSuggestions();if(e!==void 0){this.#K=moveArgumentTypeaheadSelection(e,-1),this.#on();break}let n=suggestions();if(n!==void 0){this.#G=moveTypeaheadSelection(n,-1),this.#on();break}let r=movePromptLine(t,`up`);r===void 0?recall(this.#H.previous(t.text)):apply(r);break}case`down`:case`ctrl-n`:{let e=argumentSuggestions();if(e!==void 0){this.#K=moveArgumentTypeaheadSelection(e,1),this.#on();break}let n=suggestions();if(n!==void 0){this.#G=moveTypeaheadSelection(n,1),this.#on();break}let r=movePromptLine(t,`down`);r===void 0?recall(this.#H.next()):apply(r);break}case`tab`:{let e=argumentSuggestions(),t=e===void 0?void 0:selectedArgumentSuggestion(e);if(e!==void 0&&t!==void 0){apply(lineOf(argumentTypeaheadCompletion(e,t)));break}let n=highlighted();n!==void 0&&apply(lineOf(typeaheadCompletion(n)));break}case`escape`:{if(this.#K!==void 0){this.#K=void 0,this.#on();break}let e=suggestions();if(e!==void 0){this.#G=dismissTypeahead(e),this.#on();break}r&&!this.#ne&&cancel();break}case`enter`:{let e=argumentSuggestions(),n=e===void 0?void 0:selectedArgumentSuggestion(e),i=highlighted();if(e!==void 0&&n?.next!==void 0&&e.completed.length===0){apply(lineOf(`${argumentTypeaheadCompletion(e,n)} `));break}if(e===void 0&&i!==void 0&&this.#q!==void 0&&(i.name===`add`||i.name===`login`||i.name===`loglevel`||i.name===`model`)){apply(lineOf(typeaheadCompletion(i)));break}let a=e!==void 0&&n!==void 0?argumentTypeaheadCompletion(e,n):i!==void 0&&parsePromptCommand(t.text)===null?typeaheadCompletion(i).trimEnd():t.text;if(a.trim().length===0)break;promptCommandSpec(a)?.spec.history!==`omit`&&this.#H.add(a),this.#ee=EMPTY_LINE,this.#et(EMPTY_LINE),isPromptControlCommand(a)?(this.#at(stripTerminalControls(a.trim())),r&&parsePromptCommand(a)?.type===`cancel`&&(this.#ne=!0)):(this.#Z=!0,this.#f?.recordPrompt(),r&&this.#T.push(a)),finish({type:`submit`,text:a});break}case`ctrl-d`:t.text.length===0?(this.#Ot(),interrupt()):apply(deleteForward(t));break;case`ctrl-l`:this.#ln();break;case`ctrl-r`:this.#on();break;case`ctrl-c`:if(r){if(!this.#ne){cancel();break}this.#ne=!1,this.#de=!0,finish({type:`interrupt`});break}if(this.#ue){this.#Ot(),interrupt();break}this.#ue=!0,apply(EMPTY_LINE)}},this.#Ft()})}renderConversation(e){let t=this.#C?.working===!0;this.#C=e,e.conversation.messages.some(e=>e.role===`user`)&&(this.#Z=!0);let n=this.#x.project(e,this.#Qe());this.#Xt();let r=new Set;for(let[e,t]of n.entries()){let i=t.id;if(this.#v.has(i))continue;r.add(i);let a=this.#g.get(i);if(a!==t){if(t.updateSeq=++this.#b,a!==void 0){this.#h[this.#h.indexOf(a)]=t,this.#g.set(i,t);continue}if(t.kind===`user`){let e=this.#T.indexOf(t.body??``);e!==-1&&(this.#T.splice(e,1),t.promptOrigin=`steer`)}this.#Ze(t,n.slice(e+1))}}for(let e of this.#w)r.has(e)||this.#an(e);this.#w=r,e.working&&!t?this.#Q.armed||this.#Q.arm(e.data.usage):!e.working&&t&&(this.#ne=!1,this.#W&&this.#tn()),this.#$t(),this.#on()}#Ze(e,t){let n=t.find(e=>this.#g.has(e.id)),r=n===void 0?-1:this.#h.indexOf(this.#g.get(n.id));if(r===-1){this.#en(e);return}e.id!==this.#Me?.id&&this.#Ln(),this.#h.splice(r,0,e),this.#g.set(e.id,e)}#Qe(){return{tools:this.#o,reasoning:this.#s,subagents:this.#c,connectionAuth:this.#l,subagentNames:this.#O,diagnosticsPath:this.#f?.displayPath,dot:this.#i.glyph.dot}}#$e(e){if(e?.taskId===void 0||e.requester!==void 0||this.#C===void 0)return inputContextLabel(e,this.#i);let t=this.#x.taskLabel(this.#C.conversation,e.taskId);return inputContextLabel(t===void 0?e:{...e,requester:t},this.#i)}#et(e){this.#B=e.text,this.#V=e.cursor}async readToolApproval(e,t){this.#Mt(t),this.#W=!1;let n=0;return this.#Le=t=>renderTransientDrawer(renderQuestionPanel({prompt:e.prompt,options:[{id:`yes`,label:`Yes`},{id:`no`,label:`No`}],cursor:n,allowFreeform:!1,editor:EMPTY_LINE,caretVisible:!1,maxRows:this.#wn()-5},this.#i,t),[`y yes · n no · Ctrl-C cancel`],this.#i,t,this.#$e(e.context),!1,`left`),this.#on(),await new Promise((e,t)=>{let approve=()=>{this.#Le=void 0,this.#It(),this.#on(),e({approved:!0})},deny=()=>{this.#Le=void 0,this.#It(),this.#on(),e({approved:!1,reason:`Denied by user.`})};this.#re=t,this.#be=e=>{switch(e.type){case`text`:{if(e.framing!==`unframed`)break;let t=e.value.toLowerCase();t===`y`?approve():t===`n`&&deny();break}case`up`:case`ctrl-p`:n=0,this.#on();break;case`down`:case`ctrl-n`:n=1,this.#on();break;case`enter`:n===0?approve():deny();break;case`ctrl-r`:this.#on();break;case`ctrl-c`:this.#Le=void 0,this.#Pt(),t(interruptedError())}},this.#Ft()})}async readInputQuestion(e,t){this.#Mt(t),this.#W=!1,this.#X=!1;let n=e.options??[],r=n.length>0,i=(e.allowFreeform===!0||!r)&&r,a=n.length+ +!!i,o=questionSectionId(e.requestId),s=r?`select`:`text`,c=0,l=EMPTY_LINE,isOnFreeformRow=()=>i&&c===n.length,selectDrawer=t=>renderTransientDrawer([...renderQuestionPanel({prompt:stripTerminalControls(e.prompt),options:n,cursor:c,allowFreeform:i,editor:l,caretVisible:this.#pe,maxRows:this.#wn()-5},this.#i,t)],[`↑/↓ move · enter to select · esc to dismiss`],this.#i,t,this.#$e(e.context),!1,`left`),textPanel=t=>{let n=promptInputRows({text:l.text,cursor:l.cursor,width:Math.max(1,t-2),theme:this.#i,caretVisible:this.#pe,ghost:``,maxRows:3});return n.at(-1)===``&&n.pop(),renderTransientDrawer(fitQuestionPanel([...renderQuestionPrompt(e.prompt,this.#i,t),``,...n.map(e=>` ${e}`)],this.#wn()-5),[`Enter submit · Esc dismiss`],this.#i,t,this.#$e(e.context),!1,`left`)},syncFreeformCaret=()=>{isOnFreeformRow()?this.#Ut():(this.#Wt(),this.#Gt())};s===`select`?(s=`select`,this.#W=!1,this.#an(o),this.#Le=selectDrawer,syncFreeformCaret(),this.#on()):(s=`text`,this.#Le=textPanel,this.#W=!0,this.#et(l),this.#Ut(),this.#on());let finalize=t=>{this.#Le=void 0,this.#in({id:o,kind:`question`,title:stripTerminalControls(e.prompt),body:`${this.#i.colors.dim(this.#i.glyph.elbow)} ${stripTerminalControls(t.label)}`,preformatted:!0,live:!1}),this.#W=!1,this.#Wt(),this.#It(),this.#on();let n={};return t.optionId!==void 0&&(n.optionId=t.optionId),t.text!==void 0&&(n.text=t.text),n},dismiss=()=>{this.#Le=void 0,this.#in({id:o,kind:`question`,title:stripTerminalControls(e.prompt),body:`${this.#i.colors.dim(this.#i.glyph.elbow)} ${this.#i.colors.dim(`Skipped. The question stays open.`)}`,preformatted:!0,live:!1}),this.#W=!1,this.#Wt(),this.#It(),this.#on(),u(void 0)},moveCursor=e=>{a!==0&&(c=(c+e+a)%a,syncFreeformCaret(),this.#on())},selectOptionAt=e=>{let t=n[e];t&&u(finalize({optionId:t.id,label:t.label}))},u;return await new Promise((t,n)=>{this.#re=n,u=t,this.#be=t=>{if(t.type===`ctrl-c`){if((s===`text`||isOnFreeformRow())&&l.text.length>0){l=EMPTY_LINE,this.#Gt(),s===`text`&&this.#et(l),this.#on();return}this.#Le=void 0,this.#Wt(),this.#Pt(),n(interruptedError());return}if(t.type===`ctrl-r`){this.#on();return}if(s===`select`){let n=setupSelectionIntent(t,{textNavigation:!isOnFreeformRow()});if(n?.kind===`move`){moveCursor(n.direction===`up`?-1:1);return}switch(t.type){case`up`:case`ctrl-p`:moveCursor(-1);break;case`down`:case`ctrl-n`:moveCursor(1);break;case`enter`:if(isOnFreeformRow()){let t=resolveQuestionText(l.text,e);t!==void 0&&u(finalize(t));break}selectOptionAt(c);break;case`escape`:if(isOnFreeformRow()&&l.text.length>0){l=EMPTY_LINE,this.#Gt(),this.#on();break}dismiss();break;default:if(isOnFreeformRow()){let e=this.#U.apply(l,t);e!==void 0&&(l=e,this.#Gt(),this.#on())}}return}let r=this.#U.apply(l,t,{multiline:!0});if(r!==void 0){l=r,this.#Gt(),this.#et(l),this.#on();return}switch(t.type){case`up`:case`down`:{let e=movePromptLine(l,t.type);e!==void 0&&(l=e,this.#Gt(),this.#et(l),this.#on());break}case`enter`:{let t=resolveQuestionText(l.text,e);if(t===void 0)break;u(finalize(t));break}case`escape`:if(l.text.length>0){l=EMPTY_LINE,this.#Gt(),this.#et(l),this.#on();break}dismiss()}},this.#Ft()})}setVercelStatus(e){this.#R=e,this.#on()}setRemoteConnectionStatus(e){this.#z=e,this.#on()}reset(){this.#h=[],this.#g.clear(),this.#v.clear(),this.#L=void 0,this.#I.length=0,this.#y.length=0,this.#P=!1,this.#F=void 0,this.#tt(),this.#Z=!1,this.#Me=void 0,this.#oe&&(this.#n.clearAll(),this.#on())}renderSessionBoundary(){this.#tn();let e=this.#x.stopWorking(this.#Qe());for(let e of this.#w){let t=this.#g.get(e);if(t===void 0)continue;this.#g.delete(e);let n=this.#h.indexOf(t),{id:r,...i}=t;this.#h[n]={...i,live:!1}}for(let{id:t,...n}of e)this.#en(n);this.#v.clear(),this.#tt();let t=this.#i.colors,n=this.#i.glyph,r=t.dim(`${n.cornerOpen}${n.dash.repeat(2)} Session restarted, clear context.`);this.#en({kind:`session-boundary`,body:r,live:!1}),this.#on()}#tt(){this.#x.reset(),this.#Zt(),this.#C=void 0,this.#w=new Set,this.#T.length=0,this.#ne=!1,this.#Q.reset(),this.#$t()}renderNotice(e){let t=stripTerminalControls(e);t.trim().length!==0&&(this.#Mt(),this.#en({kind:`notice`,body:t,live:!1}),this.#on())}restoreDraft(e){let t=this.#W?this.#te:void 0;if((t===void 0?this.#ee.text:this.#B).length>0)return;let n=lineOf(stripPromptControlCharacters(e));t===void 0?this.#ee=n:t(n),this.renderNotice(`The turn was cancelled from outside this prompt, so its message is back in the input.`)}renderSetupWarning(e){let t=stripTerminalControls(e);if(t.trim().length===0){this.#nt();return}this.#Mt(),this.#Ve=t,this.#on()}clearSetupWarning(){this.#nt()}#nt(){this.#Ve!==void 0&&(this.#Ve=void 0,this.#on())}renderCommandInvocation(e){let t=stripTerminalControls(e);t.trim().length!==0&&(this.#Mt(),this.#at(t),this.#on())}async choosePromptCommand(e){this.#Mt(),this.#W=!1;let t=typeaheadFor(e,`/`);return this.#Re=e=>{let n=renderCommandSuggestions(t,this.#i,e),r=Math.max(1,this.#wn()-7),i=Math.max(0,Math.min(t.selectedIndex-r+1,n.length-r));return renderTransientDrawer(n.slice(i,i+r),[`↑/↓ move · Enter select · Esc close`],this.#i,e)},this.#on(),await new Promise(e=>{this.#ze=()=>e(void 0),this.#be=n=>{if(n.type===`up`||n.type===`ctrl-p`)t=moveTypeaheadSelection(t,-1),this.#on();else if(n.type===`down`||n.type===`ctrl-n`)t=moveTypeaheadSelection(t,1),this.#on();else if(n.type===`enter`){let n=selectedTypeaheadCommand(t);this.#rt(),e(n===void 0?void 0:typeaheadCompletion(n))}else(n.type===`escape`||n.type===`ctrl-c`)&&(this.#rt(),e(void 0))},this.#Ft()})}async showInfoPanel(e){this.#Mt(),this.#W=!1;let t=stripAnsi(e),n=0,infoRows=e=>t.split(`
3
- `).flatMap(t=>wrapVisibleLine(t,Math.max(1,e-4)).map(e=>` ${e}`));this.#Re=e=>{let t=infoRows(e),r=Math.max(1,this.#wn()-7);return n=Math.min(n,Math.max(0,t.length-r)),renderTransientDrawer(t.slice(n,n+r),[t.length>r?`↑/↓ scroll · Esc close`:`Esc to close`],this.#i,e)},this.#on(),await new Promise(e=>{this.#ze=e,this.#be=t=>{if(t.type===`up`||t.type===`ctrl-p`)n=Math.max(0,n-1),this.#on();else if(t.type===`down`||t.type===`ctrl-n`){let e=Math.max(1,this.#wn()-7);n=Math.min(n+1,Math.max(0,infoRows(this.#Cn()).length-e)),this.#on()}else(t.type===`escape`||t.type===`ctrl-c`||t.type===`enter`)&&(this.#rt(),e())},this.#Ft()})}#rt(){this.#Re=void 0,this.finishCommand({kind:`dismiss`}),this.#be=void 0,this.#ze=void 0,this.#It(),this.#on()}finishCommand(e){if(e.kind===`dismiss`){this.#it()&&this.#on();return}let t=this.#ot(e.summary);t!==void 0&&(t.status=`done`);let n=e.message===void 0?``:stripAnsi(e.message);if(n.trim().length===0){t!==void 0&&this.#on();return}this.#Mt();let r={kind:`result`,body:n,live:!1};this.#en(r);let i=t===void 0?-1:this.#h.indexOf(t);i!==-1&&(this.#h.pop(),this.#h.splice(i+1,0,r)),this.#on()}#it(){let e=this.#_;return e!==void 0&&(this.#_=void 0,this.#h=this.#h.filter(t=>t!==e),!0)}#at(e){this.#_!==void 0&&this.#ot();let t={kind:`command`,body:e,live:!0};this.#_=t,this.#en(t)}#ot(e){let t=this.#_;if(t!==void 0)return this.#_=void 0,t.live=!1,e!==void 0&&(t.result=stripTerminalControls(e)),t}#st(e){this.#Mt(),this.#A===void 0&&(this.#W=!1),this.#Be={title:stripTerminalControls(e),startedAtMs:Date.now(),lines:[],outputBuffer:[]},this.#Kt(),this.#on()}#ct(e){this.#Be!==void 0&&(this.#Be.navigation=e,this.#on())}#lt(e){this.#We=void 0,this.#St();let t=this.#Be;if(t!==void 0){if(this.#Be=void 0,this.#A===void 0?this.#qt():this.#Xe(),e){let e=[];for(let n of t.lines){if(n.evidence===!0){e.push(n.text);continue}(n.tone===`warning`||n.tone===`error`)&&(e.length>0&&this.#en({kind:`flow`,title:`info`,body:e.join(`
4
- `),live:!1}),this.#en({kind:`flow`,title:n.tone,body:n.text,live:!1})),e=[]}}this.#on()}}async#ut(e){let t=this.#gt(e.message),n=isMultiSelectRequest(e),r=e.kind===`search`?e.searchAction:void 0,i=e.kind===`search`&&e.layout===void 0,a=e.options,o=e.navigation?.kind===`planner`,s={options:a,searchAction:r,submitRow:n&&!o};`initialValue`in e&&e.initialValue!==void 0&&(s.defaultValue=e.initialValue),`initialValues`in e&&e.initialValues!==void 0&&(s.initialValues=e.initialValues);let c=initialSelectState(s),l,u=!1,d=0,isCurrentSearch=e=>e===d,clearSearch=()=>{d+=1,u=!1,c=reduceSelect(c,{type:`clear`},{options:a,searchAction:r,submitRow:n&&!o}),this.#on()},loadSearch=async(e,t)=>{u=!0,l=void 0;let i=++d;this.#on();try{let s=await t(e);if(!isCurrentSearch(i))return;let l=c.filter;a=s,c={...initialSelectState({options:s,searchAction:r,submitRow:n&&!o}),filter:l}}catch(e){isCurrentSearch(i)&&(l=toErrorMessage(e))}finally{isCurrentSearch(i)&&(u=!1,this.#on())}},f=e.notices;if(e.kind===`task-list`||e.kind===`search`&&e.layout===`task-list`){let n=t.taskListLineStart??t.lines.length,r=t.lines.slice(n).filter(e=>e.tone===`success`||e.tone===`warning`||e.tone===`error`).map(e=>({tone:e.tone,text:e.text}));f=e.notices??r,t.taskListLineStart=t.lines.length,t.hideLinesWhileQuestion=!0}let panelState=()=>{let t={...e,message:``,options:a,select:c};return f!==void 0&&f.length>0&&(t.notices=f),l!==void 0&&(t.error=l),u&&(t.loadingFrame=this.#pn()),i&&(t.caretVisible=this.#pe),t};return t.question=e=>renderSelectQuestion(panelState(),this.#i,e),i&&this.#Ut(),this.#on(),await this.#yt((t,s)=>{let close=e=>{d+=1,s(e)};if(u){t.type===`ctrl-c`?close(void 0):t.type===`escape`?clearSearch():t.type===`ctrl-r`&&this.#on();return}let f=e.navigation?.kind===`planner`?e.navigation:void 0,p=t.type===`left`&&(f?.activeStep??0)>(f?.firstNavigableStep??0)?`back`:t.type===`right`&&f!==void 0&&f.activeStep>=(f.firstNavigableStep??0)&&f.activeStep<f.steps.length-1?`forward`:void 0;if(p!==void 0){close({kind:`navigate`,direction:p,values:n?orderedSelection(a,c.selected):[]});return}let m={key:t,options:a,searchAction:r,select:c},h=reduceSetupSelectInput(n?{...m,kind:e.kind,required:e.required,plannerNavigation:o||void 0}:{...m,kind:e.kind});switch(h.kind){case`cancel`:close(void 0);return;case`repaint`:this.#on();return;case`update`:c=h.select,l=void 0,i&&this.#Gt(),this.#on();return;case`submit`:{let e=searchActionQuery(h.values[0]??``),t=r?.load;if(e===void 0||t===void 0){close(h.values);return}loadSearch(e,t);return}case`error`:l=h.message,this.#on();return;case`ignore`:return}},i?()=>this.#Wt():void 0).promise}#dt(e){this.#Mt();let t=this.#_t();t.status={text:stripTerminalControls(e.status),startedAtMs:Date.now()};let n;t.question=t=>renderSelectQuestion({kind:`actions`,context:e.context,actions:e.actions,cursor:n},this.#i,t),this.#on();let r=this.#yt((t,r)=>{let i=setupSelectionIntent(t,{textNavigation:!0});switch(i?.kind){case`cancel`:r(void 0);return;case`move`:n=moveActionCursor(n,i.direction,e.actions.length),this.#on();return;case`repaint`:this.#on();return;case`submit`:n!==void 0&&r(e.actions[n].value);return;case void 0:return}},()=>{t.status=void 0});return{choice:r.promise,close:()=>r.settle(void 0)}}async#ft(e){let t=this.#gt(e.message),n={options:e.options};e.initialValue!==void 0&&(n.defaultValue=e.initialValue);let r=initialSelectState(n),i=lineOf(``),a;t.question=t=>{let n={kind:`inline-edit`,layout:`task-list`,message:``,options:e.options,select:r,edit:{optionValue:e.editable.value,caretVisible:this.#pe,editor:{kind:`rename`,editor:i,defaultValue:e.editable.defaultValue,formatHint:e.editable.formatHint}}};return a!==void 0&&(n.error=a),renderSelectQuestion(n,this.#i,t)};let onEditableRow=()=>selectValueAtCursor([...e.options],r.cursor)===e.editable.value,syncEditableRow=()=>{onEditableRow()?this.#Ut():(i=lineOf(``),this.#Wt())};return syncEditableRow(),this.#on(),await this.#yt((t,n)=>{let applyEditor=e=>{i=e,a=void 0,this.#Gt(),this.#on()},applySelect=t=>{r=reduceSelect(r,t,{options:e.options}),a=void 0,syncEditableRow(),this.#on()},submit=()=>{let t=selectValueAtCursor([...e.options],r.cursor);if(t===void 0)return;if(t!==e.editable.value){n({kind:`selected`,value:t});return}let o=(i.text||e.editable.defaultValue).trim(),s=e.editable.validate?.(o);if(s!==void 0){a=s,this.#on();return}n(o===e.editable.defaultValue?{kind:`selected`,value:t}:{kind:`edited`,value:t,text:o})},o=setupSelectionIntent(t,{textNavigation:!onEditableRow()});switch(o?.kind){case`cancel`:n(void 0);return;case`move`:applySelect({type:o.direction});return;case`submit`:submit();return;case`repaint`:this.#on();return;case void 0:}if(!onEditableRow())return;let s=this.#U.apply(i,t);s!==void 0&&applyEditor(s)},()=>this.#Wt()).promise}async#pt(e){this.#U.clear();let t=this.#gt(e.message),n=initialProviderPickerState(e.options,e.initialValue),r,cursorBadge=()=>{if(n.phase.kind!==`inactive`)return;let t=selectValueAtCursor([...e.options],n.select.cursor),r=e.options.find(e=>e.value===t);if(r!==void 0)return enterBadge(this.#i,r.checked===!0?`change`:void 0)};t.question=t=>{let r=cursorBadge(),i={kind:`inline-edit`,layout:`stacked`,message:``,options:e.options,select:n.select,edit:{optionValue:`ai-gateway-key`,caretVisible:this.#pe,editor:{kind:`key`,phase:n.phase}}};return r!==void 0&&(i.cursorBadge=r),renderSelectQuestion(i,this.#i,t)};let syncCaret=()=>{n.phase.kind===`editing`||n.phase.kind===`invalid`?this.#Ut():this.#Wt()};return syncCaret(),this.#on(),await this.#yt((t,i,a)=>{let dispatch=t=>{let o=transitionProviderPicker(n,t,e.options);switch(o.kind){case`ignore`:return;case`clear`:r?.abort(),r=void 0,n=o.state,syncCaret(),this.#on();return;case`cancel`:i(void 0);return;case`render`:n=o.state,syncCaret(),this.#on();return;case`validate`:{n=o.state,syncCaret(),this.#on();let t=new AbortController;r=t;let i;try{i=e.validateInlineKey(o.key,t.signal)}catch(e){a(e);return}i.then(e=>{r!==t||t.signal.aborted||(r=void 0,dispatch({type:`validated`,validation:e}))},e=>{r!==t||t.signal.aborted||(r=void 0,a(e))});return}case`settle`:i(o.result);return}},o=setupSelectionIntent(t,{textNavigation:n.phase.kind===`inactive`});switch(o?.kind){case`cancel`:dispatch({type:`cancel`});return;case`move`:dispatch({type:`move`,direction:o.direction});return;case`submit`:dispatch({type:`submit`});return;case`repaint`:this.#on();return;case void 0:}if(n.phase.kind!==`editing`&&n.phase.kind!==`invalid`)return;let s=applyLineEditorKey(n.phase.editor,t);s!==void 0&&(this.#Gt(),dispatch({type:`edit`,editor:s}))},()=>{r?.abort(),r=void 0,this.#Wt()}).promise}async#mt(e){e.mask===!0&&this.#U.clear();let t=this.#gt(e.message),n=lineOf(``),r;return t.question=t=>{let i={message:``,editor:n,mask:e.mask===!0};return e.placeholder===void 0?e.defaultValue!==void 0&&(i.placeholder=e.defaultValue):i.placeholder=e.placeholder,e.notices!==void 0&&(i.notices=e.notices),r!==void 0&&(i.error=r),renderTextQuestion(i,this.#i,t,this.#pe)},this.#Ut(),this.#on(),await this.#yt((t,i)=>{let apply=e=>{n=e,r=void 0,this.#Gt(),this.#on()},a=e.mask?applyLineEditorKey(n,t):this.#U.apply(n,t);if(a!==void 0){apply(a);return}switch(t.type){case`ctrl-c`:case`escape`:i(void 0);return;case`ctrl-r`:this.#on();return;case`enter`:{let t=n.text.length>0?n.text:e.defaultValue??``,a=e.validate?.(t);if(a!==void 0){r=a,this.#on();return}i(t);return}default:return}},()=>this.#Wt()).promise}async#ht(e){let t=this.#gt(e.message);return t.question=t=>renderAcknowledgeQuestion({message:``,lines:e.lines},this.#i,t),this.#on(),await this.#yt((e,t)=>{switch(e.type){case`enter`:case`escape`:case`ctrl-c`:t();return;case`ctrl-r`:this.#on();return;default:return}}).promise}#gt(e){this.#Mt(),this.#W=!1;let t=this.#_t();return t.questionTitle=stripTerminalControls(e),t.status!==void 0&&(t.status=void 0,t.summary=void 0,t.preview=void 0),t}#_t(){return this.#Be===void 0&&(this.#Be={title:``,startedAtMs:Date.now(),lines:[],outputBuffer:[],implicit:!0}),this.#Be}#vt(){this.#Be?.implicit===!0?this.#Be=void 0:this.#Be!==void 0&&(this.#Be.question=void 0,this.#Be.questionTitle=void 0,this.#Be.hideLinesWhileQuestion=!1),this.#be=void 0,this.#It(),this.#A===void 0?this.#Be!==void 0&&this.#xt():this.#Xe(),this.#Be===void 0&&this.#on()}#yt(e,t){let n=!1,r,i,a=new Promise((e,t)=>{r=e,i=t}),settle=e=>{n||(n=!0,t?.(),this.#vt(),r(e))},reject=e=>{n||(n=!0,t?.(),this.#vt(),i(e))};return this.#Ht(),this.#be=t=>{t.type===`ctrl-c`&&this.#Ot(),e(t,settle,reject)},this.#Ft(),{promise:a,settle}}#bt(e){let t,n=new Promise(e=>{t=e});return this.#We=t,this.#xt(e?.interruptible??!0),{promise:n,dispose:()=>{this.#We===t&&(this.#We=void 0,this.#St())}}}#xt(e=!0){if(this.#A!==void 0){this.#Xe();return}if(this.#We===void 0)return;let consumer=t=>{if(e&&(t.type===`ctrl-c`||t.type===`escape`)){t.type===`ctrl-c`&&this.#Ot();let e=this.#We;this.#We=void 0,this.#St(),e?.(t.type===`ctrl-c`?`ctrl-c`:`escape`);return}t.type===`ctrl-r`&&this.#on()};this.#Ge=consumer,this.#Ht(),this.#be=consumer,this.#Ft()}#St(){this.#Ge!==void 0&&(this.#be===this.#Ge&&this.#It(),this.#Ge=void 0)}#Ct(e){let t=e===void 0?void 0:{text:stripTerminalControls(e),startedAtMs:Date.now()};if(this.#Be!==void 0){this.#Be.status=t,t===void 0&&(this.#Be.preview=void 0),this.#on();return}if(!(this.#W||this.#C?.working===!0)){if(t===void 0){this.#ie=void 0,this.#qt(),this.#on();return}this.#Mt(),this.#he=Date.now(),this.#Kt(),this.#ie=t.text,this.#on()}}#wt(e,t){let n=stripTerminalControls(e);if(n.trim().length===0)return;let r=this.#Be;if(r!==void 0){if(r.preview=void 0,t===`warning`||t===`error`)for(let e of r.outputBuffer)r.lines.push({text:e,tone:`info`,evidence:!0});r.outputBuffer=[],r.lines.push({text:n,tone:t}),this.#on();return}this.#Mt(),this.#en({kind:`flow`,title:t,body:n,live:!1}),this.#on()}#Tt(e){let t=this.#Be;t!==void 0&&(t.lines=[],t.outputBuffer=[],t.preview=void 0,t.status=void 0,t.summary=e===void 0?void 0:{headline:stripTerminalControls(e.headline),facts:e.facts.map(e=>({label:stripTerminalControls(e.label),value:stripTerminalControls(e.value)}))},this.#on())}#Et(e){let t=stripTerminalControls(e);if(t.trim().length===0)return;let n=this.#Be;if(n===void 0){this.#wt(t,`info`);return}n.preview=t,n.outputBuffer.push(t),n.outputBuffer.length>40&&n.outputBuffer.shift(),this.#on()}async#Dt(e){this.#xe=``,this.#Ht(),this.#We=void 0,this.#St(),this.#It(),this.#Jt(),this.#n.clear(),this.#En(),this.#r.enter({cursor:`visible`,mouse:!1}),this.#e.isTTY&&this.#e.setRawMode?.(!1),this.#e.pause();try{return await e()}finally{this.#r.exit(),this.#e.isTTY&&this.#e.setRawMode?.(!0),this.#e.resume(),this.#xe=``,this.#Ht(),this.#n.hideCursor(),this.#Tn(),this.#Be===void 0?this.#$t():(this.#Kt(),this.#xt()),this.#n.reset(),this.#on()}}setSessionId(e){this.#Ue=e}shutdown(){this.#Pt();for(let e of this.#Y.values())clearTimeout(e);if(this.#Y.clear(),this.#se&&!this.#ce){this.#ce=!0;let e=this.#Ue===void 0?``:` ${this.#i.glyph.dot} session ${this.#Ue}`;this.#t.write(`${this.#i.colors.dim(`${eveVersionTag()}${e}`)}\n`)}}requestInterrupt(){this.#Be!==void 0&&this.#be?.({type:`ctrl-c`}),this.#Pt()}exitRequested(){return this.#le}#Ot(){this.#le=!0,this.#fe?.()}async#kt(e){if(this.#Ke!==void 0||!this.#oe)return;let t=new TraceViewerSession({...e,theme:this.#i,dimensions:()=>({width:this.#Cn(),height:this.#wn()}),paint:e=>this.#r.paint(e,this.#wn()),tracingDisabled:process.env.EVE_TRACES===`off`,copyText:e=>copyTextToClipboard(e,e=>this.#r.writeRaw(e)),terminalBackground:this.#qe});this.#Ke=t,this.#r.enter(),this.#i.color&&this.#r.writeRaw(BACKGROUND_COLOR_QUERY),await new Promise(e=>{this.#jt=e,this.#be=e=>{t.handleKey(e)===`close`&&this.#At()},this.#Ft(),t.start()})}#At(){let e=this.#Ke;if(e===void 0)return;this.#Ke=void 0,e.dispose(),this.#It(),this.#r.exit(),this.#n.hideCursor(),this.#on(),this.#n.showCursor();let t=this.#jt;this.#jt=void 0,t?.()}#jt;#Mt(e){this.#ae=e?.title??this.#ae,!this.#oe&&(this.#oe=!0,this.#se=!0,this.#n.reset(),this.#n.hideCursor(),this.#Tn(),this.#e.isTTY&&(this.#e.setRawMode?.(!0),this.#e.resume(),this.#n.emitBracketedPaste(!0)),this.#we=()=>this.#on(),this.#t.on(`resize`,this.#we),process.on(`exit`,this.#Nt))}#Nt=()=>{this.#oe&&(this.#r.exit(),this.#e.isTTY&&(this.#n.emitBracketedPaste(!1),this.#e.setRawMode?.(!1)),this.#n.showCursor())};#Pt(){this.#Le=void 0;let e=this.#ze;e!==void 0&&(this.#ze=void 0,this.#Re=void 0,this.finishCommand({kind:`dismiss`}),this.#be=void 0,e()),this.#At();let t=this.#re;if(this.#re=void 0,t?.(interruptedError()),this.#It(),this.#Wt(),this.#Jt(),this.#ve!==void 0&&(clearTimeout(this.#ve),this.#ve=void 0),this.#ye=!1,this.#Fn(),this.#oe){this.#Ln(),this.#ot();for(let e of this.#h)e.kind===`log`&&e.id===void 0&&(e.live=!1);this.#on(),this.#n.clear(),this.#n.showCursor(),this.#En(),this.#n.newline(),this.#e.isTTY&&(this.#n.emitBracketedPaste(!1),this.#e.setRawMode?.(!1),this.#e.pause()),this.#we&&=(this.#t.off(`resize`,this.#we),void 0),process.off(`exit`,this.#Nt),this.#oe=!1}}#Ft(){this.#e.off(`data`,this.#Lt),this.#e.on(`data`,this.#Lt),this.#xe.length>0&&queueMicrotask(()=>{this.#be!==void 0&&this.#xe.length>0&&(this.#Bt(),this.#Rt())})}#It(){this.#e.off(`data`,this.#Lt),this.#Ht(),this.#be=void 0}#Lt=e=>{this.#Ht(),this.#xe+=this.#Se.write(e),this.#Bt(),this.#Rt()};#Rt(){if(this.#xe===`\x1B`){this.#Ce=setTimeout(()=>{this.#xe===`\x1B`&&(this.#xe=``,this.#zt({type:`escape`}))},30),this.#Ce.unref?.();return}if(isIncompletePaste(this.#xe)){let e=this.#xe;this.#Ce=setTimeout(()=>{if(this.#xe!==e)return;let t=sanitizePastedText(stripPasteStart(e));this.#xe=``,t.length>0&&this.#zt({type:`text`,value:t,framing:`bracketed-paste`})},incompletePasteFlushMs),this.#Ce.unref?.();return}if(isIncompleteOsc(this.#xe)){let e=this.#xe;this.#Ce=setTimeout(()=>{this.#xe===e&&(this.#xe=``)},incompletePasteFlushMs),this.#Ce.unref?.()}}#zt(e){this.#U.interruptYank(e),this.#be?.(e)}#Bt(){for(;this.#xe.length>0;){let e=nextKey(this.#xe);if(e.incomplete)return;if(this.#xe=this.#xe.slice(e.consumed),e.key!==void 0&&e.key.type!==`ignore`){if(e.key.type===`osc`){this.#Vt(e.key.value);continue}this.#zt(e.key)}}}#Vt(e){let t=parseBackgroundColorReply(e);t!==void 0&&(this.#qe=t,this.#Ke?.setTerminalBackground(t))}#Ht(){this.#Ce&&=(clearTimeout(this.#Ce),void 0)}#Ut(){this.#Wt(),this.#Gt(),this.#ge=setInterval(()=>{this.#pe=!this.#pe,this.#on()},500),this.#ge.unref?.()}#Wt(){this.#ge&&=(clearInterval(this.#ge),void 0),this.#pe=!0}#Gt(){this.#pe=!0}#Kt(){this.#Jt(),this.#_e=setInterval(()=>{this.#me+=1,this.#on()},90),this.#_e.unref?.()}#qt(){this.#Yt()||this.#Jt()}#Jt(){this.#_e&&=(clearInterval(this.#_e),void 0)}#Yt(){return this.#C?.working===!0||this.#x.tasks.length>0}#Xt(){this.#x.finishing&&this.#S===void 0&&(this.#S=setTimeout(()=>{this.#S=void 0,this.#C!==void 0&&this.renderConversation(this.#C)},TASK_END_GRACE_MS),this.#S.unref?.())}#Zt(){this.#S!==void 0&&(clearTimeout(this.#S),this.#S=void 0)}#Qt(e,t=Math.max(8,Math.floor(this.#wn()/2))){let n=this.#x.tasks;if(n.length===0)return[];let r=this.#C?.working===!0&&this.#ie===void 0,i=Date.now(),a=r&&this.#C!==void 0?turnActivity(this.#C,n):`Working`;return renderTaskPanelRows(n,{width:e,theme:this.#i,nowMs:i,maxRows:t,activity:a.startsWith(`Waiting for `)?`Waiting`:a,turnElapsedMs:r?Math.max(0,i-(this.#Q.startedAtMs??i)):void 0})}#$t(){this.#Yt()?this.#_e===void 0&&(this.#he=Date.now(),this.#Kt()):this.#Be===void 0&&this.#k===void 0&&this.#ie===void 0&&this.#Jt()}#en(e){e.id!==this.#Me?.id&&this.#Ln(),e.updateSeq=++this.#b,this.#h.push(e),e.id&&this.#g.set(e.id,e)}#tn(){let e=this.#Q.settle(this.#nn());if(e===void 0||(this.#$=e,this.#f?.reportStats(),e.elapsedMs<=1e4&&e.inputTokens<=2e4))return;let t=`Done in ${this.#vn(e)}`,n=this.#C?.data.lastStepUsage?.inputTokens??0;if(this.#De!==void 0&&this.#De>0&&n>0){let e=Math.round(n/this.#De*100);t+=` ${this.#i.glyph.dot} ${e}% context`}this.#en({kind:`turn-stats`,body:t,live:!1})}#nn(){return this.#C?.data.usage??{inputTokens:0,outputTokens:0}}renderError(e,t){this.#Mt(),this.#rn(e,t)}#rn(e,t,n={}){let r=stripTerminalControls(e),i=stripTerminalControls(t),a=n.detail===void 0?void 0:stripTerminalControls(n.detail),o=n.hint===void 0?void 0:stripTerminalControls(n.hint),s={source:`workflow`,summary:`${r}: ${i}`,detail:a??i};this.#f?.append(o===void 0?s:{...s,hint:o});let c={kind:`error`,title:r,body:i,live:!1};o!==void 0&&(c.hint=o),a!==void 0&&(c.detail=this.#f===void 0?a:`details: ${this.#f.displayPath}`),this.#en(c),this.#on()}#in(e){if(e.id&&this.#v.has(e.id))return;let t=e.id?this.#g.get(e.id):void 0;if(t){Object.assign(t,e),t.updateSeq=++this.#b;return}this.#en(e)}#an(e){this.#h=this.#h.filter(t=>t.id!==e),this.#g.delete(e)}#on(){if(this.#oe){if(this.#Te){this.#Ee=!0;return}this.#Te=!0;try{do this.#Ee=!1,this.#sn();while(this.#Ee)}finally{this.#Te=!1}}}#sn(){if(!this.#oe)return;if(this.#Ke!==void 0){this.#Ke.repaint();return}let e=this.#Cn(),t=this.#gn(e),n=this.#N===void 0?[]:this.#dn(),r=Math.max(0,this.#wn()-n.length-t.length),i=[],a=this.#L,o=groupToolBlocksForDisplay(this.#h),s=0;for(;s<o.length&&o[s].display.live===!1;)s+=1;if(s>0){let e=new Set(o.slice(0,s).flatMap(e=>e.members));for(let t=this.#h.length-1;t>=0;--t)e.has(this.#h[t])&&this.#h.splice(t,1)}for(let t of o.slice(0,s)){for(let e of t.members)this.#y.push(e),e.id&&(this.#v.add(e.id),this.#g.delete(e.id));if(this.#zn(t.display))continue;let n=this.#fn(t.display,e,a);a=previousBlockOf(t.display),this.#L=a,i.push(...n),this.#I.push(...n)}let c=[];for(let{display:t}of o.slice(s)){if(this.#zn(t))continue;let n=this.#fn(t,e,a);a=previousBlockOf(t);for(let e=0;e<n.length;e+=1)c.push({block:t,row:n[e]})}let l=[...n,...clipLiveRows(c.map(e=>e.row),r,e,this.#i),...t];i.length>0?this.#n.flush(i,l):this.#n.update(l)}#cn(){if(!this.#oe)return;let e=this.#Cn(),t=this.#gn(e),n=Math.max(0,this.#wn()-t.length),r=this.#L,i=[];for(let{display:t}of groupToolBlocksForDisplay(this.#h)){if(this.#zn(t))continue;let n=this.#fn(t,e,r);r=previousBlockOf(t),i.push(...n)}let a=[...clipLiveRows(i,n,e,this.#i),...t];this.#n.clearAll(),this.#n.flush([...this.#dn(),...this.#I],a)}logDisplayMode(){return this.#m}setLogDisplayMode(e){e!==this.#m&&(this.#m=e,e===`all`&&this.flushDelayedDevBuildErrors(),this.#un(),this.#oe&&this.#cn())}flushDelayedDevBuildErrors(){let e=this.#je;e!==void 0&&(this.#je=void 0,this.#en({kind:`log`,title:`stderr`,logLevel:`error`,body:e,live:!1}),this.#on())}#ln(){this.#ye=!0,this.#ve!==void 0&&clearTimeout(this.#ve),this.#ve=setTimeout(()=>{this.#ye=!1,this.#ve=void 0,this.#on()},5e3),this.setLogDisplayMode(nextLogDisplayMode(this.#m)),this.#on()}#un(){let e=this.#Cn();this.#I.length=0;let t;for(let{display:n}of groupToolBlocksForDisplay(this.#y,{logCoalescing:`runs`})){if(this.#zn(n))continue;let r=this.#fn(n,e,t);t=previousBlockOf(n),this.#I.push(...r)}this.#L=t}#dn(){let e=this.#E,t=this.#N;if(e===void 0&&t===void 0)return[];let n={name:e?.name??t?.name,theme:this.#i,width:this.#Cn()};return e?.info!==void 0&&(n.info=e.info),buildAgentHeader(n)}#fn(e,t,n){let r={renderMarkdown:this.#a,activityPulse:this.#mn(this.#he,this.#i.unicode?PROGRESS_PULSE_GLYPH:PROGRESS_PULSE_ASCII_GLYPH)};n!==void 0&&(r.previous=n),this.#Be!==void 0&&(r.setupFlowOpen=!0),this.#Re!==void 0&&(r.transientPanelOpen=!0);let i=renderBlockLines(e,t,this.#i,r);return(e.depth??0)===0&&leadsWithGap(e,n)?[``,...i]:i}#pn(){return this.#i.spinner[this.#me%this.#i.spinner.length]??``}#mn(e,t){return isProgressPulseVisible(Date.now()-e)?t:` `}#hn(e){return{glyph:this.#mn(e.startedAtMs,this.#i.unicode?PROGRESS_PULSE_GLYPH:PROGRESS_PULSE_ASCII_GLYPH)}}#gn(e){let t=this.#i.colors,n=[``];if(this.#Re!==void 0){let t=this.#Re(e);return[...t.rows,...t.controls]}if(this.#Le!==void 0){let t=this.#Le(e),n=this.#wn()-t.rows.length-t.controls.length-1;return[...(n>=4?this.#Qt(e,n+1):[]).slice(0,-1),...t.rows,...t.controls].map(t=>clip(t,e))}let r=this.#Be;if(r!==void 0&&(this.#A===void 0||r.question!==void 0)){let t=this.#hn(r),i;if(r.status!==void 0){let{startedAtMs:e,...n}=r.status,a=Date.now()-e,o=a>=5e3?` ${formatTurnDuration(a)}`:``;i={...n,text:`${n.text}${o}`,indicator:t}}let a;if(r.question!==void 0){let t=r.question(e);a={kind:`question`,title:r.questionTitle,rows:t},i!==void 0&&(a={kind:`question`,title:r.questionTitle,rows:t,status:i})}else i===void 0?a=r.preview===void 0?{kind:`idle`,indicator:t}:{kind:`preview`,text:r.preview,indicator:t}:(a={kind:`status`,status:i},r.preview!==void 0&&(a={kind:`status`,status:i,preview:r.preview}));let o={title:r.title,navigation:r.navigation,lines:r.summary===void 0?r.hideLinesWhileQuestion===!0?[]:r.lines:[{text:r.summary.headline,tone:`success`},...r.summary.facts.map(e=>({text:`${e.label}: ${e.value}`,tone:`info`}))],content:a},s=renderFlowDrawer(o,this.#i,e);return n.length===1&&n[0]===``&&(n.length=0),n.push(...s.rows),s.controls.length>0&&n.push(...s.controls),this.#xn(n,e),n}r!==void 0&&n.push(...flowMessageRows(r.lines,this.#i).map(t=>t.length===0?``:clip(` ${t}`,e))),this.#k===void 0&&this.#Ve!==void 0&&n.push(...renderAttentionRows(this.#Ve,e,this.#i),``);let i=this.#C?.working===!0&&this.#ie===void 0,a=this.#Qt(e);a.length>0&&n.push(...a);let o=renderMessageQueueRows({view:this.#He.view(),width:e,theme:this.#i});if(o.length>0&&n.push(...o,``),i&&(a.length===0&&n.push(this.#_n(e)),this.#ne&&n.push(clip(`${t.yellow(this.#i.glyph.dotActive)} ${t.dim(`Cancelling turn… · Ctrl+C to stop waiting, then again to exit`)}`,e)),(a.length===0||this.#ne)&&n.push(``)),this.#W){let r=this.#G===void 0?void 0:inlineCommandHint(this.#G),a=this.#Ye(e);this.#ue&&n.push(clip(t.dim(`Press Ctrl+C again to exit`),e),``);let o=r?t.dim(` ${r}`):``,s=[];this.#bn(s,e);let c=Math.max(1,this.#wn()-1-n.length-1-a.length-s.length-(a.length>0?2:0)),l={text:this.#B,cursor:this.#V,width:e,theme:this.#i,caretVisible:this.#pe,ghost:o,maxRows:c};this.#X&&this.#B.length===0&&(l.placeholder=this.#A===void 0?this.#Z||i?``:this.#D:`Message · Enter to queue`);let u=promptInputRows(l);return a.length>0&&u.at(-1)===``&&u.pop(),n.push(...u),a.length>0&&n.push(t.dim(this.#i.glyph.dash.repeat(e))),n.push(...a),a.length>0&&s.length>0&&n.push(t.dim(this.#i.glyph.dash.repeat(e))),n.push(...s),n}if(i||this.#ee.text.length>0)return this.#yn(n,e,{inert:i,adjacent:a.length>0}),this.#bn(n,e),n;let s=this.#ie??`Ready`,c=this.#Sn(),l=t.dim(this.#i.glyph.dot),u=c?`${l} ${s} ${t.dim(this.#i.glyph.dot)} ${c}`:`${l} ${s}`;return n.push(clip(u,e)),this.#bn(n,e),n}#_n(e){let t=this.#i.colors,n=this.#Q.startedAtMs??Date.now(),r=Math.max(0,Date.now()-n),i=r%1e3<500?this.#i.unicode?`•`:`*`:` `,a=r<1e3?`0s`:formatTurnDuration(Math.floor(r/1e3)*1e3),o=`${this.#C===void 0?`Thinking`:turnActivity(this.#C,this.#x.tasks)} (${a})`,{inputTokens:s,outputTokens:c}=this.#Q.usage(this.#nn());return clip(`${i} ${o}${s>0||c>0?t.dim(` (${formatTokenFlow({inputTokens:s,outputTokens:c},this.#i.glyph)})`):``}`,e)}#vn(e){let{inputTokens:t,outputTokens:n}=e,r=t===0&&n===0?``:` (${formatTokenFlow({inputTokens:t,outputTokens:n},this.#i.glyph)})`;return`${formatTurnDuration(e.elapsedMs)}${r}`}#yn(e,t,n){!n.adjacent&&e.at(-1)!==``&&e.push(``);let r={text:this.#ee.text,cursor:this.#ee.cursor,width:t,theme:this.#i,caretVisible:!0,ghost:``,maxRows:4,inert:n.inert};n.inert&&this.#ee.text.length===0&&(r.placeholder=``),e.push(...promptInputRows(r))}#bn(e,t){if(this.#k!==void 0){let n=this.#Be?.status?.text??{starting:`Starting agent…`,connecting:`Reading saved connection…`,updating:`Loading selected model…`}[this.#k],r=this.#mn(this.#M,this.#i.unicode?PROGRESS_PULSE_GLYPH:PROGRESS_PULSE_ASCII_GLYPH);e.push(clip(this.#i.colors.dim(`${r} ${n}`),t));return}let n=this.#z===void 0?``:` `,r=Math.max(1,t-n.length),i={theme:this.#i,width:r};this.#Pe&&this.#Ne!==void 0&&(i.devBuild=this.#Ne),this.#ye&&(i.logLevel=this.#m);let a=this.#E?.info?.agent.model;if(a?.routing.kind===`dynamic`){let e=this.#C?.data.modelId;i.dynamicModel=!0,e!==void 0&&(i.model=e)}else a?.id!==void 0&&(i.model=a.id);a?.reasoning!==void 0&&a.reasoning!==`provider-default`&&(i.reasoning=a.reasoning),readGatewayServiceTier(a?.providerOptions).kind===`priority`&&(i.fastMode=!0);let o=a?.endpoint;o!==void 0&&(i.endpoint=o),this.#R!==void 0&&(i.vercel=this.#R),this.#z!==void 0&&(i.remote=this.#z);let s=buildStatusLine(i);s!==void 0&&e.push(clip(`${n}${s}`,t))}#xn(e,t){if(this.#z===void 0)return;let n=Math.max(1,t-2),r=buildStatusLine({remote:this.#z,theme:this.#i,width:n});r!==void 0&&e.push(``,clip(` ${r}`,t))}#Sn(){let e=this.#i.colors,t=[],n=this.#$,r=n===void 0?void 0:formatAssistantResponseStats({totalTokens:n.inputTokens+n.outputTokens,outputTokens:n.outputTokens,tokensPerSecond:n.elapsedMs>0?n.outputTokens/(n.elapsedMs/1e3):void 0},this.#u);return r&&t.push(r),t.length>0?e.dim(t.join(` ${this.#i.glyph.dot} `)):``}#Cn(){return Math.max(20,this.#t.columns||80)}#wn(){return Math.max(8,this.#t.rows||24)}#Tn(){if(this.#Oe!==void 0||!this.#d)return;this.#ke=``,this.#Ae=``;let capture=(e,t)=>{let n=e.write.bind(e);return e.write=((e,n,r)=>{let i=typeof n==`string`?n:void 0,a=typeof n==`function`?n:r;return this.#kn(t,chunkToString(e,i)),a?.(),!0}),()=>{e.write=n}},e=[`error`,`warn`,`log`,`info`,`debug`],t=e.map(e=>[e,console[e]]);for(let t of e)console[t]=(...e)=>this.#On({level:t===`log`?`info`:t,text:format(...e)});setConsoleRecordSubscriber(e=>this.#On(e));let n=capture(process.stdout,`stdout`),r=capture(process.stderr,`stderr`);this.#f?.subscribeLogRecords(e=>this.#Dn(e)),this.#Oe=()=>{this.#f?.unsubscribeLogRecords(),setConsoleRecordSubscriber(void 0);for(let[e,n]of t)console[e]=n;n(),r()}}#En(){let e=this.#Oe;e!==void 0&&(this.#Oe=void 0,e(),this.#ke.length>0&&(this.#f?.append({source:`stdout`,detail:this.#ke}),this.#Rn()&&process.stdout.write(`${this.#ke}\n`),this.#ke=``),this.#Ae.length>0&&(this.#f?.append({source:`stderr`,detail:this.#Ae}),this.#Rn()&&process.stderr.write(`${this.#Ae}\n`),this.#Ae=``))}#Dn(e){let t=e.fields===void 0?``:` ${JSON.stringify(e.fields)}`;this.#jn(`[eve:${e.namespace}] ${e.message}${t}`,e.level),this.#on()}#On(e){let t=e.level===`error`||e.level===`warn`?`stderr`:`stdout`;this.#f?.append({source:t,level:e.level,detail:e.text}),t===`stderr`?this.#jn(stripAnsi(e.text),e.level):this.#An(stripAnsi(e.text),e.level),this.#on()}#kn(e,t){let n=(e===`stdout`?this.#ke:this.#Ae)+t;if(e===`stdout`&&parseDevRebuildLogLine(n.trimEnd())!==void 0){this.#ke=``,this.#f?.append({source:e,detail:n.trimEnd()}),this.#An(n.trimEnd()),this.#on();return}let r=n.lastIndexOf(`
5
- `),i=r===-1?n:n.slice(r+1);if(e===`stdout`?this.#ke=i:this.#Ae=i,r===-1)return;let a=stripAnsi(n.slice(0,r)).replace(/\s+$/u,``);a.trim().length!==0&&(this.#f?.append({source:e,detail:a}),e===`stdout`?this.#An(a):this.#jn(a),this.#on())}#An(e,t){let n=[],flushPending=()=>{if(n.length===0)return;let e=n.join(`
6
- `);n=[],e.trim().length!==0&&this.#en({kind:`log`,title:`stdout`,logLevel:t,body:e,live:!1})};for(let r of e.split(`
7
- `)){let e=parseSandboxLogLine(r.trimEnd());if(e!==void 0){flushPending(),this.#en({kind:`sandbox`,logLevel:t,body:e,live:!1});continue}let i=parseDevRebuildLogLine(r.trimEnd());if(i===void 0){n.push(r);continue}flushPending(),this.#Nn(i,r.trimEnd())}flushPending()}#jn(e,t){let n=e.split(`
8
- `),r=n.findIndex(e=>parseDevRebuildLogLine(e.trimEnd())?.kind===`failed`);if(r===-1){if(this.#f===void 0){this.#en({kind:`log`,title:`stderr`,logLevel:t,body:e,live:!1});return}let n=presentDiagnostic(e,this.#f.displayPath);if(n.kind===`inline`){this.#en({kind:`log`,title:`stderr`,logLevel:t,body:n.text,live:!1});return}this.#en({kind:`log`,title:`stderr`,body:formatStoredDiagnostic(n),logVisibility:`summary`,logLevel:t,live:!1}),this.#en({kind:`log`,title:`stderr`,body:e,logVisibility:`all-only`,logLevel:t,live:!1});return}let i=n.slice(0,r).join(`
9
- `);i.trim().length>0&&this.#en({kind:`log`,title:`stderr`,logLevel:t,body:i,live:!1});let a=n.slice(r).join(`
10
- `);this.#Mn(a)}#Mn(e){if(this.#Fn(),this.#m===`all`){if(e.trim().length===0)return;this.#en({kind:`log`,title:`stderr`,logLevel:`error`,body:e,live:!1});return}this.#je=e}#Nn(e,t){let n=this.#In();if(e.kind===`failed`){this.#Mn(t);return}if(e.kind===`rebuilding`){let t=summarizeChangedFiles(e.events,e.more);if(this.#Pn({phase:`building`,summary:t}),n!==void 0){n.state.summary=t,n.block.body=formatDevRebuildStatus(t,`rebuilding`);return}let r=`dev-rebuild:${this.#Ie}`;this.#Ie+=1,this.#Me={id:r,summary:t},this.#en({kind:`log`,id:r,title:`stdout`,body:formatDevRebuildStatus(t,`rebuilding`),live:!0});return}let r=n?.state.summary??this.#Ne?.summary;if(r!==void 0&&this.#Pn({phase:`complete`,summary:r}),n!==void 0){n.block.body=formatDevRebuildStatus(n.state.summary,e.kind),e.kind===`rebuilt`&&(this.#je=void 0);return}e.kind===`rebuilt`&&(this.#je=void 0),this.#en({kind:`log`,title:`stdout`,body:t,live:!1})}#Pn(e){this.#Fe!==void 0&&clearTimeout(this.#Fe),this.#Ne=e,this.#Pe=e.phase===`complete`,this.#Fe=setTimeout(()=>{e.phase===`building`?(this.#Pe=!0,this.#Fe=void 0):this.#Fn(),this.#on()},e.phase===`building`?250:4e3)}#Fn(){this.#Fe!==void 0&&clearTimeout(this.#Fe),this.#Ne=void 0,this.#Pe=!1,this.#Fe=void 0}#In(){let e=this.#Me;if(e===void 0)return;let t=this.#g.get(e.id);if(t!==void 0&&t.live===!0)return{state:e,block:t}}#Ln(){let e=this.#Me;if(e===void 0)return;this.#Me=void 0;let t=this.#g.get(e.id);t!==void 0&&(t.live=!1)}#Rn(e){return isLogVisible(this.#m,e)}#zn(e){return e.kind===`sandbox`?!this.#Rn(e.logLevel):e.kind===`log`?e.logVisibility===`summary`&&this.#m===`all`?!0:e.logVisibility===`all-only`?this.#m!==`all`:!this.#Rn(e.logLevel):!1}};function chunkToString(e,t){return typeof e==`string`?e:Buffer.from(e).toString(t)}function clip(e,t){return clipVisible(e,t)}function promptInputRows({text:e,cursor:t,width:n,theme:r,caretVisible:i,ghost:a,maxRows:o,placeholder:s,inert:c}){let l=r.colors;if(e.length===0&&s!==void 0){let e=renderInputWithBlockCursor({...visibleLine({text:s,cursor:0},Math.max(1,n-3),r.glyph.ellipsis),visible:i,inverse:l.inverse,render:e=>l.dim(renderInputText(e))});return[clip(`${r.glyph.prompt} ${e}`,n),``]}let u=renderInputText,d=layoutPromptInput({text:e,cursor:t}),f=Math.min(Math.max(1,o),d.rows.length),p=Math.max(0,Math.min(d.caretRow-f+1,d.rows.length-f)),m=c===!0?l.dim(r.glyph.prompt):e.startsWith(`/`)?r.glyph.user:r.glyph.prompt,h=l.dim(r.glyph.ellipsis),g=Math.max(1,n-3),_=[];for(let e=p;e<p+f;e+=1){let t=d.rows[e],o=e===0?m:` `;(e===p&&p>0||e===p+f-1&&p+f<d.rows.length)&&(o=h);let s;if(e===d.caretRow){let{before:e,under:n,after:o}=visibleLine({text:t.text,cursor:d.caretOffset},g,r.glyph.ellipsis);s=renderInputWithBlockCursor({before:e,under:n,after:o,visible:i,inverse:l.inverse,render:u}),a.length>0&&d.rows.length===1&&(s+=a)}else s=u(t.text);_.push(clip(`${o} ${s}`,n))}return _.push(``),_}function previousBlockOf(e){let t={kind:e.kind};return e.title!==void 0&&(t.title=e.title),e.subagentCallId!==void 0&&(t.subagentCallId=e.subagentCallId),t}function leadsWithGap(e,t){if((e.kind===`tool`||e.kind===`task`)&&(t?.kind===`user`||t?.kind===`assistant`||t?.kind===`question`))return!0;if(e.kind===`sandbox`&&t?.kind===`sandbox`)return!1;if(t?.kind===`sandbox`&&e.kind!==`sandbox`||t?.kind===`log`)return!0;switch(e.kind){case`user`:case`assistant`:case`reasoning`:case`error`:case`notice`:case`question`:case`connection-auth`:case`sandbox`:case`log`:case`command`:case`warning`:case`flow`:case`turn-stats`:case`session-boundary`:case`agent-header`:return!0;default:return!1}}function parseSandboxLogLine(e){let t=e.trim();if(!t.startsWith(`eve: `))return;let n=t.slice(5);return/\bsandbox\b/i.test(n)&&!isLowValueSandboxLogLine(n)?n:void 0}function isLowValueSandboxLogLine(e){return/^initializing (?:\d+ )?sandbox templates?\b/i.test(e)||/^initialized \d+ sandbox\b/i.test(e)||/^reused cached sandbox template\b/i.test(e)||/^sandbox template "[^"]+" \([^)]+\): (checking|reusing)\b/i.test(e)}function clipLiveRows(e,t,n,r){if(t<=0)return[];if(e.length<=t)return[...e];if(t<=1)return[clip(hiddenRowsMarker(e.length,r),n)];let i=t-1;return[clip(hiddenRowsMarker(e.length-i,r),n),...e.slice(e.length-i)]}function hiddenRowsMarker(e,t){let n=e.toLocaleString(),r=e===1?`row`:`rows`;return t.colors.dim(`${t.glyph.dot} ${t.glyph.ellipsis} ${n} earlier ${r} hidden while streaming`)}function questionSectionId(e){return`question:${e}`}function resolveQuestionText(e,t){let n=e.trim();if(n.length===0)return;let r=n.toLowerCase(),i=t.options??[];if(i.length>0){let e=matchQuestionOption(r,i);if(e!==void 0)return{optionId:e.id,label:e.label}}if(t.allowFreeform===!0||i.length===0)return{text:n,label:n}}function matchQuestionOption(e,t){let n=t.find(t=>t.id.toLowerCase()===e);if(n!==void 0)return n;let r=t.find(t=>t.label.toLowerCase()===e);if(r!==void 0)return r;let i=Number(e);if(Number.isInteger(i)&&i>0&&i<=t.length)return t[i-1]}export{TerminalRenderer};
1
+ import{setConsoleRecordSubscriber}from"../console-records.js";import{buildAgentHeader}from"./agent-header.js";import{PROMPT_COMMANDS,isPromptControlCommand,parsePromptCommand,promptCommandSpec}from"./prompt-commands.js";import{argumentTypeaheadCompletion,argumentTypeaheadFor,argumentTypeaheadLoadingLabel,argumentTypeaheadQuery,moveArgumentTypeaheadSelection,renderArgumentSuggestions,selectedArgumentSuggestion}from"./argument-typeahead.js";import{detectMarkdownRendering}from"./markdown.js";import{renderAttentionRows,renderBlockLines}from"./blocks.js";import{copyTextToClipboard}from"./clipboard.js";import{dismissTypeahead,inlineCommandHint,isTypeaheadOpen,moveTypeaheadSelection,renderCommandSuggestions,selectedTypeaheadCommand,typeaheadCompletion,typeaheadFor}from"./command-typeahead.js";import{interruptedError}from"./errors.js";import{formatDevRebuildStatus,summarizeChangedFiles}from"./dev-rebuild-status.js";import{formatStoredDiagnostic,presentDiagnostic}from"./diagnostic-presentation.js";import{EMPTY_LINE,KillRing,PromptHistory,applyLineEditorKey,deleteForward,layoutPromptInput,lineOf,movePromptLine,visibleLine}from"./line-editor.js";import{enterBadge,flowMessageRows,renderAcknowledgeQuestion,renderSelectQuestion,renderTextQuestion}from"./setup-panel.js";import{renderFlowDrawer,renderTransientDrawer}from"./flow-drawer.js";import{isLogVisible,nextLogDisplayMode}from"./log-display-mode.js";import{MessageQueue,renderMessageQueueRows}from"./message-queue.js";import{initialPromptPlaceholder}from"./prompt-placeholder.js";import{initialProviderPickerState,transitionProviderPicker}from"./provider-picker.js";import{fitQuestionPanel,inputContextLabel,renderQuestionPanel,renderQuestionPrompt}from"./question-panel.js";import{formatAssistantResponseStats,formatTokenFlow,formatTurnDuration,isIncompleteOsc,isIncompletePaste,nextKey,sanitizePastedText,stripPasteStart,stripPromptControlCharacters}from"./stream-format.js";import{renderTaskPanelRows}from"./task-activity.js";import{groupToolBlocksForDisplay}from"./tool-block-groups.js";import{ConversationTranscript,turnActivity}from"./transcript.js";import{TraceViewerSession}from"./traces/trace-viewer-session.js";import{buildStatusLine}from"./status-line.js";import{createTheme,detectUnicode}from"./theme.js";import{TurnClock}from"./turn-clock.js";import{reduceSetupSelectInput,setupSelectionIntent}from"./setup-selection-input.js";import{BACKGROUND_COLOR_QUERY,parseBackgroundColorReply}from"./terminal-background.js";import{eveVersionTag}from"#cli/banner.js";import{format}from"node:util";import{clipVisible,renderInputText,renderInputWithBlockCursor,stripAnsi,stripTerminalControls,wrapVisibleLine}from"#cli/ui/terminal-text.js";import{toErrorMessage}from"#shared/errors.js";import{initialSelectState,orderedSelection,reduceSelect,searchActionQuery,selectValueAtCursor}from"#setup/cli/select-state.js";import{StringDecoder}from"node:string_decoder";import{parseDevRebuildLogLine}from"#internal/nitro/host/dev-watcher-log.js";import{LiveRegion}from"#cli/ui/live-region.js";import{AltScreen}from"#cli/ui/alt-screen.js";import{PROGRESS_PULSE_ASCII_GLYPH,PROGRESS_PULSE_GLYPH,isProgressPulseVisible}from"#cli/ui/progress-pulse.js";import{readGatewayServiceTier}from"#shared/gateway-service-tier.js";function isMultiSelectRequest(e){return e.kind===`multi`||e.kind===`searchable-multi`}function moveActionCursor(e,t,n){return n===0?void 0:e===void 0?t===`down`?0:n-1:(e+(t===`down`?1:-1)+n)%n}const incompletePasteFlushMs=1e3;var TerminalRenderer=class{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m;#h=[];#g=new Map;#_;#v=new Set;#y=[];#b=0;#x=new ConversationTranscript;#S;#C=new Set;#w=[];#T;#E=`Send a message…`;#D;#O;#k;#A;#j=0;#M;#N=!1;#P;#F=[];#I;#L;#R;#z=``;#B=0;#V=new PromptHistory;#H=new KillRing;#U=!1;#W;#G;#K;#q=new Map;#J=new Map;#Y=!1;#X=!1;#Z=new TurnClock;#Q;#$=EMPTY_LINE;#ee;#te=!1;#ne;#re;#ie=`eve`;#ae=!1;#oe=!1;#se=!1;#ce=!1;#le=!1;#ue=!1;#de;#fe=!0;#pe=0;#me=Date.now();#he;#ge;#_e;#ve=!1;#ye;#be=``;#xe=new StringDecoder(`utf8`);#Se;#Ce;#we=!1;#Te=!1;#Ee;#De;#Oe=``;#ke=``;#Ae;#je;#Me;#Ne=!1;#Pe;#Fe=0;#Ie;#Le;#Re;#ze;#Be;#Ve=new MessageQueue;#He;#Ue;#We;#Ge;#Ke;setupFlow={begin:e=>this.#ot(e),setNavigation:e=>this.#st(e),end:e=>this.#ct(e?.preserveDiagnostics??!0),readSelect:e=>this.#lt(e),readEditableSelect:e=>this.#dt(e),readProviderPicker:e=>this.#ft(e),readText:e=>this.#pt(e),readAcknowledge:e=>this.#mt(e),readChoice:e=>this.#ut(e),setStatus:e=>this.#St(e),renderLine:(e,t)=>this.#Ct(e,t),replaceContent:e=>this.#wt(e),renderOutput:e=>this.#Tt(e),withInheritedStdio:e=>this.#Et(e),withExclusiveTerminal:e=>this.#Et(e),waitForInterrupt:e=>this.#yt(e)};traceViewer={open:e=>this.#Ot(e)};constructor(e){this.#e=e?.input??process.stdin,this.#t=e?.output??process.stdout,this.#n=new LiveRegion(this.#t),this.#r=new AltScreen(this.#t),this.#i=createTheme({color:e?.color??!0,unicode:e?.unicode??detectUnicode()}),this.#a=e?.renderMarkdown??detectMarkdownRendering(),this.#o=e?.tools??`auto-collapsed`,this.#s=e?.reasoning??`auto-collapsed`,this.#c=e?.subagents??`collapsed`,this.#l=e?.connectionAuth??`full`,this.#u=e?.assistantResponseStats??`tokensPerSecond`,this.#Ee=e?.contextSize,this.#d=e?.captureForeignOutput??this.#t===process.stdout,this.#f=e?.diagnostics,this.#de=e?.onExitRequest,this.#K=e?.argumentSuggestions,this.#m=e?.logs??`error`,this.#p=e?.availablePromptCommands??PROMPT_COMMANDS}#qe(e){this.#W=typeaheadFor(this.#p,e,this.#W);let t=argumentTypeaheadQuery(e);if(t===void 0||this.#K===void 0){this.#G=void 0;return}let n=this.#q.get(t.command);if(n===void 0){this.#q.set(t.command,{kind:`loading`,visible:!1});let e=t.command;this.#J.set(e,setTimeout(()=>{this.#J.delete(e),this.#q.get(e)?.kind===`loading`&&(this.#q.set(e,{kind:`loading`,visible:!0}),this.#rn())},500)),this.#K(e).catch(()=>[]).then(t=>{let n=this.#J.get(e);n!==void 0&&clearTimeout(n),this.#J.delete(e),this.#q.set(e,{kind:`ready`,suggestions:t}),this.#U&&this.#qe(this.#z),this.#rn()}),this.#G=void 0;return}if(n.kind===`loading`){this.#G=void 0;return}this.#G=argumentTypeaheadFor(t,n.suggestions,this.#G)}#Je(e){let t=argumentTypeaheadQuery(this.#z),n=t===void 0?void 0:this.#q.get(t.command);return n?.kind===`loading`&&n.visible&&t!==void 0?[clip(this.#i.colors.dim(`Loading ${argumentTypeaheadLoadingLabel(t.command)}…`),e)]:this.#G===void 0?this.#W!==void 0&&isTypeaheadOpen(this.#W)?renderCommandSuggestions(this.#W,this.#i,e):[]:renderArgumentSuggestions(this.#G,this.#i,e)}setStartupPhase(e){this.#O=e,e===void 0?this.#Kt():this.#Gt(),this.#rn()}renderAgentHeader(e){this.#M=void 0,this.#ie=e.name,this.#T=e,this.#D=e.info?.subagents.local.map(e=>e.name),this.#E=initialPromptPlaceholder(e.info,e.localDevelopment===!0),this.#jt();let t=this.#cn().join(`
2
+ `);if(this.#N){t!==this.#P&&(this.#P=t,this.#Zt({kind:`agent-header`,body:t,live:!1})),this.#rn();return}this.#N=!0,this.#P=t,this.#n.flush(this.#cn(),this.#pn(this.#bn()))}beginStartupDraft(e){this.#jt({title:e.title}),this.#U=!0,this.#Y=!0,this.#O=`starting`,this.#M={name:e.title},this.#j=Date.now();let t=lineOf(stripPromptControlCharacters(e.initialDraft??``));this.#k=t,this.#$e(t),this.#Ht(),this.#Gt(),this.#rn();let apply=e=>{t=e,this.#k=e,this.#Wt(),this.#$e(t),this.#rn()};this.#A=e=>{if(e.type===`escape`&&this.#Ue!==void 0){this.#Ue(`escape`);return}if(e.type===`ctrl-c`&&this.#Ue!==void 0){this.#Dt(),this.#Ue(`ctrl-c`);return}let n=this.#H.apply(t,e,{multiline:!0});if(n!==void 0){apply(n);return}if(e.type===`enter`&&t.text.trim().length>0){this.#Ve.enqueue(t.text)&&apply(EMPTY_LINE);return}e.type===`ctrl-c`&&this.#de?.()},this.#Ye()}#Ye(){this.#k!==void 0&&this.#A!==void 0&&(this.#Vt(),this.#$e(this.#k),this.#U=!0,this.#ye=this.#A,this.#Pt())}finishStartupDraft(){let e={draft:this.#k?.text??this.#z,queuedPrompt:this.#Ve.takePrompt()};return this.#k=void 0,this.#A=void 0,this.#Ft(),this.#Ut(),this.#U=!1,this.#Y=!1,e}async readInput(e){this.#jt(e),this.#S?.working!==!0&&this.#Qt(),this.#U=!0,this.#Y=!0,this.#le=this.#ue,this.#ue=!1;let t=e?.initialDraft===void 0?this.#$:lineOf(stripPromptControlCharacters(e.initialDraft));return this.#V.begin(t.text),this.#$e(t),this.#qe(t.text),this.#Ht(),this.#rn(),await new Promise((n,r)=>{let i=e?.signal,release=()=>{this.#ee=void 0,i?.removeEventListener(`abort`,onAbort),this.#W=void 0,this.#G=void 0,this.#U=!1,this.#Ut(),this.#Ft(),this.#rn()},finish=e=>{release(),n(e)},onAbort=()=>finish(void 0);if(i?.addEventListener(`abort`,onAbort,{once:!0}),i?.aborted){onAbort();return}this.#ne=e=>{i?.removeEventListener(`abort`,onAbort),r(e)};let apply=e=>{t=e,this.#$=e,this.#Wt(),this.#$e(t),this.#qe(e.text),this.#rn()};this.#ee=apply;let recall=e=>{e!==void 0&&apply(lineOf(e))},interrupt=()=>{this.#W=void 0,this.#Ut(),this.#Nt(),r(interruptedError())},cancel=()=>{this.#te=!0,finish({type:`cancel`})},suggestions=()=>this.#W!==void 0&&isTypeaheadOpen(this.#W)?this.#W:void 0,argumentSuggestions=()=>this.#G?.suggestions.length?this.#G:void 0,highlighted=()=>{let e=suggestions();return e===void 0?void 0:selectedTypeaheadCommand(e)};this.#ye=e=>{e.type!==`ctrl-c`&&this.#le&&(this.#le=!1,this.#rn());let n=this.#H.apply(t,e,{multiline:!0});if(n!==void 0){apply(n);return}let r=this.#S?.working===!0;switch(e.type){case`up`:case`ctrl-p`:{let e=argumentSuggestions();if(e!==void 0){this.#G=moveArgumentTypeaheadSelection(e,-1),this.#rn();break}let n=suggestions();if(n!==void 0){this.#W=moveTypeaheadSelection(n,-1),this.#rn();break}let r=movePromptLine(t,`up`);r===void 0?recall(this.#V.previous(t.text)):apply(r);break}case`down`:case`ctrl-n`:{let e=argumentSuggestions();if(e!==void 0){this.#G=moveArgumentTypeaheadSelection(e,1),this.#rn();break}let n=suggestions();if(n!==void 0){this.#W=moveTypeaheadSelection(n,1),this.#rn();break}let r=movePromptLine(t,`down`);r===void 0?recall(this.#V.next()):apply(r);break}case`tab`:{let e=argumentSuggestions(),t=e===void 0?void 0:selectedArgumentSuggestion(e);if(e!==void 0&&t!==void 0){apply(lineOf(argumentTypeaheadCompletion(e,t)));break}let n=highlighted();n!==void 0&&apply(lineOf(typeaheadCompletion(n)));break}case`escape`:{if(this.#G!==void 0){this.#G=void 0,this.#rn();break}let e=suggestions();if(e!==void 0){this.#W=dismissTypeahead(e),this.#rn();break}r&&!this.#te&&cancel();break}case`enter`:{let e=argumentSuggestions(),n=e===void 0?void 0:selectedArgumentSuggestion(e),i=highlighted();if(e!==void 0&&n?.next!==void 0&&e.completed.length===0){apply(lineOf(`${argumentTypeaheadCompletion(e,n)} `));break}if(e===void 0&&i!==void 0&&this.#K!==void 0&&(i.name===`add`||i.name===`login`||i.name===`loglevel`||i.name===`model`)){apply(lineOf(typeaheadCompletion(i)));break}let a=e!==void 0&&n!==void 0?argumentTypeaheadCompletion(e,n):i!==void 0&&parsePromptCommand(t.text)===null?typeaheadCompletion(i).trimEnd():t.text;if(a.trim().length===0)break;promptCommandSpec(a)?.spec.history!==`omit`&&this.#V.add(a),this.#$=EMPTY_LINE,this.#$e(EMPTY_LINE),isPromptControlCommand(a)?(this.#it(stripTerminalControls(a.trim())),r&&parsePromptCommand(a)?.type===`cancel`&&(this.#te=!0)):(this.#X=!0,this.#f?.recordPrompt(),r&&this.#w.push(a)),finish({type:`submit`,text:a});break}case`ctrl-d`:t.text.length===0?(this.#Dt(),interrupt()):apply(deleteForward(t));break;case`ctrl-l`:this.#on();break;case`ctrl-r`:this.#rn();break;case`ctrl-c`:if(r){if(!this.#te){cancel();break}this.#te=!1,this.#ue=!0,finish({type:`interrupt`});break}if(this.#le){this.#Dt(),interrupt();break}this.#le=!0,apply(EMPTY_LINE)}},this.#Pt()})}renderConversation(e){let t=this.#S?.working===!0;this.#S=e,e.conversation.messages.some(e=>e.role===`user`)&&(this.#X=!0);let n=this.#x.project(e,this.#Ze()),r=new Set;for(let[e,t]of n.entries()){let i=t.id;if(this.#v.has(i))continue;r.add(i);let a=this.#g.get(i);if(a!==t){if(t.updateSeq=++this.#b,a!==void 0){this.#h[this.#h.indexOf(a)]=t,this.#g.set(i,t);continue}if(t.kind===`user`){let e=this.#w.indexOf(t.body??``);e!==-1&&(this.#w.splice(e,1),t.promptOrigin=`steer`)}this.#Xe(t,n.slice(e+1))}}for(let e of this.#C)r.has(e)||this.#nn(e);this.#C=r,e.working&&!t?this.#Z.armed||this.#Z.arm(e.data.usage):!e.working&&t&&(this.#te=!1,this.#U&&this.#Qt()),this.#Xt(),this.#rn()}#Xe(e,t){let n=t.find(e=>this.#g.has(e.id)),r=n===void 0?-1:this.#h.indexOf(this.#g.get(n.id));if(r===-1){this.#Zt(e);return}e.id!==this.#je?.id&&this.#Pn(),this.#h.splice(r,0,e),this.#g.set(e.id,e)}#Ze(){return{tools:this.#o,reasoning:this.#s,subagents:this.#c,connectionAuth:this.#l,subagentNames:this.#D,diagnosticsPath:this.#f?.displayPath,dot:this.#i.glyph.dot}}#Qe(e){if(e?.taskId===void 0||e.requester!==void 0||this.#S===void 0)return inputContextLabel(e,this.#i);let t=this.#x.taskLabel(this.#S.conversation,e.taskId);return inputContextLabel(t===void 0?e:{...e,requester:t},this.#i)}#$e(e){this.#z=e.text,this.#B=e.cursor}async readToolApproval(e,t){this.#jt(t),this.#U=!1;let n=0;return this.#Ie=t=>renderTransientDrawer(renderQuestionPanel({prompt:e.prompt,options:[{id:`yes`,label:`Yes`},{id:`no`,label:`No`}],cursor:n,allowFreeform:!1,editor:EMPTY_LINE,caretVisible:!1,maxRows:this.#xn()-5},this.#i,t),[`y yes · n no · Ctrl-C cancel`],this.#i,t,this.#Qe(e.context),!1,`left`),this.#rn(),await new Promise((e,t)=>{let approve=()=>{this.#Ie=void 0,this.#Ft(),this.#rn(),e({approved:!0})},deny=()=>{this.#Ie=void 0,this.#Ft(),this.#rn(),e({approved:!1,reason:`Denied by user.`})};this.#ne=t,this.#ye=e=>{switch(e.type){case`text`:{if(e.framing!==`unframed`)break;let t=e.value.toLowerCase();t===`y`?approve():t===`n`&&deny();break}case`up`:case`ctrl-p`:n=0,this.#rn();break;case`down`:case`ctrl-n`:n=1,this.#rn();break;case`enter`:n===0?approve():deny();break;case`ctrl-r`:this.#rn();break;case`ctrl-c`:this.#Ie=void 0,this.#Nt(),t(interruptedError())}},this.#Pt()})}async readInputQuestion(e,t){this.#jt(t),this.#U=!1,this.#Y=!1;let n=e.options??[],r=n.length>0,i=(e.allowFreeform===!0||!r)&&r,a=n.length+ +!!i,o=questionSectionId(e.requestId),s=r?`select`:`text`,c=0,l=EMPTY_LINE,isOnFreeformRow=()=>i&&c===n.length,selectDrawer=t=>renderTransientDrawer([...renderQuestionPanel({prompt:stripTerminalControls(e.prompt),options:n,cursor:c,allowFreeform:i,editor:l,caretVisible:this.#fe,maxRows:this.#xn()-5},this.#i,t)],[`↑/↓ move · enter to select · esc to dismiss`],this.#i,t,this.#Qe(e.context),!1,`left`),textPanel=t=>{let n=promptInputRows({text:l.text,cursor:l.cursor,width:Math.max(1,t-2),theme:this.#i,caretVisible:this.#fe,ghost:``,maxRows:3});return n.at(-1)===``&&n.pop(),renderTransientDrawer(fitQuestionPanel([...renderQuestionPrompt(e.prompt,this.#i,t),``,...n.map(e=>` ${e}`)],this.#xn()-5),[`Enter submit · Esc dismiss`],this.#i,t,this.#Qe(e.context),!1,`left`)},syncFreeformCaret=()=>{isOnFreeformRow()?this.#Ht():(this.#Ut(),this.#Wt())};s===`select`?(s=`select`,this.#U=!1,this.#nn(o),this.#Ie=selectDrawer,syncFreeformCaret(),this.#rn()):(s=`text`,this.#Ie=textPanel,this.#U=!0,this.#$e(l),this.#Ht(),this.#rn());let finalize=t=>{this.#Ie=void 0,this.#tn({id:o,kind:`question`,title:stripTerminalControls(e.prompt),body:`${this.#i.colors.dim(this.#i.glyph.elbow)} ${stripTerminalControls(t.label)}`,preformatted:!0,live:!1}),this.#U=!1,this.#Ut(),this.#Ft(),this.#rn();let n={};return t.optionId!==void 0&&(n.optionId=t.optionId),t.text!==void 0&&(n.text=t.text),n},dismiss=()=>{this.#Ie=void 0,this.#tn({id:o,kind:`question`,title:stripTerminalControls(e.prompt),body:`${this.#i.colors.dim(this.#i.glyph.elbow)} ${this.#i.colors.dim(`Skipped. The question stays open.`)}`,preformatted:!0,live:!1}),this.#U=!1,this.#Ut(),this.#Ft(),this.#rn(),u(void 0)},moveCursor=e=>{a!==0&&(c=(c+e+a)%a,syncFreeformCaret(),this.#rn())},selectOptionAt=e=>{let t=n[e];t&&u(finalize({optionId:t.id,label:t.label}))},u;return await new Promise((t,n)=>{this.#ne=n,u=t,this.#ye=t=>{if(t.type===`ctrl-c`){if((s===`text`||isOnFreeformRow())&&l.text.length>0){l=EMPTY_LINE,this.#Wt(),s===`text`&&this.#$e(l),this.#rn();return}this.#Ie=void 0,this.#Ut(),this.#Nt(),n(interruptedError());return}if(t.type===`ctrl-r`){this.#rn();return}if(s===`select`){let n=setupSelectionIntent(t,{textNavigation:!isOnFreeformRow()});if(n?.kind===`move`){moveCursor(n.direction===`up`?-1:1);return}switch(t.type){case`up`:case`ctrl-p`:moveCursor(-1);break;case`down`:case`ctrl-n`:moveCursor(1);break;case`enter`:if(isOnFreeformRow()){let t=resolveQuestionText(l.text,e);t!==void 0&&u(finalize(t));break}selectOptionAt(c);break;case`escape`:if(isOnFreeformRow()&&l.text.length>0){l=EMPTY_LINE,this.#Wt(),this.#rn();break}dismiss();break;default:if(isOnFreeformRow()){let e=this.#H.apply(l,t);e!==void 0&&(l=e,this.#Wt(),this.#rn())}}return}let r=this.#H.apply(l,t,{multiline:!0});if(r!==void 0){l=r,this.#Wt(),this.#$e(l),this.#rn();return}switch(t.type){case`up`:case`down`:{let e=movePromptLine(l,t.type);e!==void 0&&(l=e,this.#Wt(),this.#$e(l),this.#rn());break}case`enter`:{let t=resolveQuestionText(l.text,e);if(t===void 0)break;u(finalize(t));break}case`escape`:if(l.text.length>0){l=EMPTY_LINE,this.#Wt(),this.#$e(l),this.#rn();break}dismiss()}},this.#Pt()})}setVercelStatus(e){this.#L=e,this.#rn()}setRemoteConnectionStatus(e){this.#R=e,this.#rn()}reset(){this.#h=[],this.#g.clear(),this.#v.clear(),this.#I=void 0,this.#F.length=0,this.#y.length=0,this.#N=!1,this.#P=void 0,this.#et(),this.#X=!1,this.#je=void 0,this.#ae&&(this.#n.clearAll(),this.#rn())}renderSessionBoundary(){this.#Qt();let e=this.#x.stopWorking(this.#Ze());for(let e of this.#C){let t=this.#g.get(e);if(t===void 0)continue;this.#g.delete(e);let n=this.#h.indexOf(t),{id:r,...i}=t;this.#h[n]={...i,live:!1}}for(let{id:t,...n}of e)this.#Zt(n);this.#v.clear(),this.#et();let t=this.#i.colors,n=this.#i.glyph,r=t.dim(`${n.cornerOpen}${n.dash.repeat(2)} Session restarted, clear context.`);this.#Zt({kind:`session-boundary`,body:r,live:!1}),this.#rn()}#et(){this.#x.reset(),this.#S=void 0,this.#C=new Set,this.#w.length=0,this.#te=!1,this.#Z.reset(),this.#Xt()}renderNotice(e){let t=stripTerminalControls(e);t.trim().length!==0&&(this.#jt(),this.#Zt({kind:`notice`,body:t,live:!1}),this.#rn())}restoreDraft(e){let t=this.#U?this.#ee:void 0;if((t===void 0?this.#$.text:this.#z).length>0)return;let n=lineOf(stripPromptControlCharacters(e));t===void 0?this.#$=n:t(n),this.renderNotice(`The turn was cancelled from outside this prompt, so its message is back in the input.`)}renderSetupWarning(e){let t=stripTerminalControls(e);if(t.trim().length===0){this.#tt();return}this.#jt(),this.#Be=t,this.#rn()}clearSetupWarning(){this.#tt()}#tt(){this.#Be!==void 0&&(this.#Be=void 0,this.#rn())}renderCommandInvocation(e){let t=stripTerminalControls(e);t.trim().length!==0&&(this.#jt(),this.#it(t),this.#rn())}async choosePromptCommand(e){this.#jt(),this.#U=!1;let t=typeaheadFor(e,`/`);return this.#Le=e=>{let n=renderCommandSuggestions(t,this.#i,e),r=Math.max(1,this.#xn()-7),i=Math.max(0,Math.min(t.selectedIndex-r+1,n.length-r));return renderTransientDrawer(n.slice(i,i+r),[`↑/↓ move · Enter select · Esc close`],this.#i,e)},this.#rn(),await new Promise(e=>{this.#Re=()=>e(void 0),this.#ye=n=>{if(n.type===`up`||n.type===`ctrl-p`)t=moveTypeaheadSelection(t,-1),this.#rn();else if(n.type===`down`||n.type===`ctrl-n`)t=moveTypeaheadSelection(t,1),this.#rn();else if(n.type===`enter`){let n=selectedTypeaheadCommand(t);this.#nt(),e(n===void 0?void 0:typeaheadCompletion(n))}else(n.type===`escape`||n.type===`ctrl-c`)&&(this.#nt(),e(void 0))},this.#Pt()})}async showInfoPanel(e){this.#jt(),this.#U=!1;let t=stripAnsi(e),n=0,infoRows=e=>t.split(`
3
+ `).flatMap(t=>wrapVisibleLine(t,Math.max(1,e-4)).map(e=>` ${e}`));this.#Le=e=>{let t=infoRows(e),r=Math.max(1,this.#xn()-7);return n=Math.min(n,Math.max(0,t.length-r)),renderTransientDrawer(t.slice(n,n+r),[t.length>r?`↑/↓ scroll · Esc close`:`Esc to close`],this.#i,e)},this.#rn(),await new Promise(e=>{this.#Re=e,this.#ye=t=>{if(t.type===`up`||t.type===`ctrl-p`)n=Math.max(0,n-1),this.#rn();else if(t.type===`down`||t.type===`ctrl-n`){let e=Math.max(1,this.#xn()-7);n=Math.min(n+1,Math.max(0,infoRows(this.#bn()).length-e)),this.#rn()}else(t.type===`escape`||t.type===`ctrl-c`||t.type===`enter`)&&(this.#nt(),e())},this.#Pt()})}#nt(){this.#Le=void 0,this.finishCommand({kind:`dismiss`}),this.#ye=void 0,this.#Re=void 0,this.#Ft(),this.#rn()}finishCommand(e){if(e.kind===`dismiss`){this.#rt()&&this.#rn();return}let t=this.#at(e.summary);t!==void 0&&(t.status=`done`);let n=e.message===void 0?``:stripAnsi(e.message);if(n.trim().length===0){t!==void 0&&this.#rn();return}this.#jt();let r={kind:`result`,body:n,live:!1};this.#Zt(r);let i=t===void 0?-1:this.#h.indexOf(t);i!==-1&&(this.#h.pop(),this.#h.splice(i+1,0,r)),this.#rn()}#rt(){let e=this.#_;return e!==void 0&&(this.#_=void 0,this.#h=this.#h.filter(t=>t!==e),!0)}#it(e){this.#_!==void 0&&this.#at();let t={kind:`command`,body:e,live:!0};this.#_=t,this.#Zt(t)}#at(e){let t=this.#_;if(t!==void 0)return this.#_=void 0,t.live=!1,e!==void 0&&(t.result=stripTerminalControls(e)),t}#ot(e){this.#jt(),this.#k===void 0&&(this.#U=!1),this.#ze={title:stripTerminalControls(e),startedAtMs:Date.now(),lines:[],outputBuffer:[]},this.#Gt(),this.#rn()}#st(e){this.#ze!==void 0&&(this.#ze.navigation=e,this.#rn())}#ct(e){this.#Ue=void 0,this.#xt();let t=this.#ze;if(t!==void 0){if(this.#ze=void 0,this.#k===void 0?this.#Kt():this.#Ye(),e){let e=[];for(let n of t.lines){if(n.evidence===!0){e.push(n.text);continue}(n.tone===`warning`||n.tone===`error`)&&(e.length>0&&this.#Zt({kind:`flow`,title:`info`,body:e.join(`
4
+ `),live:!1}),this.#Zt({kind:`flow`,title:n.tone,body:n.text,live:!1})),e=[]}}this.#rn()}}async#lt(e){let t=this.#ht(e.message),n=isMultiSelectRequest(e),r=e.kind===`search`?e.searchAction:void 0,i=e.kind===`search`&&e.layout===void 0,a=e.options,o=e.navigation?.kind===`planner`,s={options:a,searchAction:r,submitRow:n&&!o};`initialValue`in e&&e.initialValue!==void 0&&(s.defaultValue=e.initialValue),`initialValues`in e&&e.initialValues!==void 0&&(s.initialValues=e.initialValues);let c=initialSelectState(s),l,u=!1,d=0,isCurrentSearch=e=>e===d,clearSearch=()=>{d+=1,u=!1,c=reduceSelect(c,{type:`clear`},{options:a,searchAction:r,submitRow:n&&!o}),this.#rn()},loadSearch=async(e,t)=>{u=!0,l=void 0;let i=++d;this.#rn();try{let s=await t(e);if(!isCurrentSearch(i))return;let l=c.filter;a=s,c={...initialSelectState({options:s,searchAction:r,submitRow:n&&!o}),filter:l}}catch(e){isCurrentSearch(i)&&(l=toErrorMessage(e))}finally{isCurrentSearch(i)&&(u=!1,this.#rn())}},f=e.notices;if(e.kind===`task-list`||e.kind===`search`&&e.layout===`task-list`){let n=t.taskListLineStart??t.lines.length,r=t.lines.slice(n).filter(e=>e.tone===`success`||e.tone===`warning`||e.tone===`error`).map(e=>({tone:e.tone,text:e.text}));f=e.notices??r,t.taskListLineStart=t.lines.length,t.hideLinesWhileQuestion=!0}let panelState=()=>{let t={...e,message:``,options:a,select:c};return f!==void 0&&f.length>0&&(t.notices=f),l!==void 0&&(t.error=l),u&&(t.loadingFrame=this.#un()),i&&(t.caretVisible=this.#fe),t};return t.question=e=>renderSelectQuestion(panelState(),this.#i,e),i&&this.#Ht(),this.#rn(),await this.#vt((t,s)=>{let close=e=>{d+=1,s(e)};if(u){t.type===`ctrl-c`?close(void 0):t.type===`escape`?clearSearch():t.type===`ctrl-r`&&this.#rn();return}let f=e.navigation?.kind===`planner`?e.navigation:void 0,p=t.type===`left`&&(f?.activeStep??0)>(f?.firstNavigableStep??0)?`back`:t.type===`right`&&f!==void 0&&f.activeStep>=(f.firstNavigableStep??0)&&f.activeStep<f.steps.length-1?`forward`:void 0;if(p!==void 0){close({kind:`navigate`,direction:p,values:n?orderedSelection(a,c.selected):[]});return}let m={key:t,options:a,searchAction:r,select:c},h=reduceSetupSelectInput(n?{...m,kind:e.kind,required:e.required,plannerNavigation:o||void 0}:{...m,kind:e.kind});switch(h.kind){case`cancel`:close(void 0);return;case`repaint`:this.#rn();return;case`update`:c=h.select,l=void 0,i&&this.#Wt(),this.#rn();return;case`submit`:{let e=searchActionQuery(h.values[0]??``),t=r?.load;if(e===void 0||t===void 0){close(h.values);return}loadSearch(e,t);return}case`error`:l=h.message,this.#rn();return;case`ignore`:return}},i?()=>this.#Ut():void 0).promise}#ut(e){this.#jt();let t=this.#gt();t.status={text:stripTerminalControls(e.status),startedAtMs:Date.now()};let n;t.question=t=>renderSelectQuestion({kind:`actions`,context:e.context,actions:e.actions,cursor:n},this.#i,t),this.#rn();let r=this.#vt((t,r)=>{let i=setupSelectionIntent(t,{textNavigation:!0});switch(i?.kind){case`cancel`:r(void 0);return;case`move`:n=moveActionCursor(n,i.direction,e.actions.length),this.#rn();return;case`repaint`:this.#rn();return;case`submit`:n!==void 0&&r(e.actions[n].value);return;case void 0:return}},()=>{t.status=void 0});return{choice:r.promise,close:()=>r.settle(void 0)}}async#dt(e){let t=this.#ht(e.message),n={options:e.options};e.initialValue!==void 0&&(n.defaultValue=e.initialValue);let r=initialSelectState(n),i=lineOf(``),a;t.question=t=>{let n={kind:`inline-edit`,layout:`task-list`,message:``,options:e.options,select:r,edit:{optionValue:e.editable.value,caretVisible:this.#fe,editor:{kind:`rename`,editor:i,defaultValue:e.editable.defaultValue,formatHint:e.editable.formatHint}}};return a!==void 0&&(n.error=a),renderSelectQuestion(n,this.#i,t)};let onEditableRow=()=>selectValueAtCursor([...e.options],r.cursor)===e.editable.value,syncEditableRow=()=>{onEditableRow()?this.#Ht():(i=lineOf(``),this.#Ut())};return syncEditableRow(),this.#rn(),await this.#vt((t,n)=>{let applyEditor=e=>{i=e,a=void 0,this.#Wt(),this.#rn()},applySelect=t=>{r=reduceSelect(r,t,{options:e.options}),a=void 0,syncEditableRow(),this.#rn()},submit=()=>{let t=selectValueAtCursor([...e.options],r.cursor);if(t===void 0)return;if(t!==e.editable.value){n({kind:`selected`,value:t});return}let o=(i.text||e.editable.defaultValue).trim(),s=e.editable.validate?.(o);if(s!==void 0){a=s,this.#rn();return}n(o===e.editable.defaultValue?{kind:`selected`,value:t}:{kind:`edited`,value:t,text:o})},o=setupSelectionIntent(t,{textNavigation:!onEditableRow()});switch(o?.kind){case`cancel`:n(void 0);return;case`move`:applySelect({type:o.direction});return;case`submit`:submit();return;case`repaint`:this.#rn();return;case void 0:}if(!onEditableRow())return;let s=this.#H.apply(i,t);s!==void 0&&applyEditor(s)},()=>this.#Ut()).promise}async#ft(e){this.#H.clear();let t=this.#ht(e.message),n=initialProviderPickerState(e.options,e.initialValue),r,cursorBadge=()=>{if(n.phase.kind!==`inactive`)return;let t=selectValueAtCursor([...e.options],n.select.cursor),r=e.options.find(e=>e.value===t);if(r!==void 0)return enterBadge(this.#i,r.checked===!0?`change`:void 0)};t.question=t=>{let r=cursorBadge(),i={kind:`inline-edit`,layout:`stacked`,message:``,options:e.options,select:n.select,edit:{optionValue:`ai-gateway-key`,caretVisible:this.#fe,editor:{kind:`key`,phase:n.phase}}};return r!==void 0&&(i.cursorBadge=r),renderSelectQuestion(i,this.#i,t)};let syncCaret=()=>{n.phase.kind===`editing`||n.phase.kind===`invalid`?this.#Ht():this.#Ut()};return syncCaret(),this.#rn(),await this.#vt((t,i,a)=>{let dispatch=t=>{let o=transitionProviderPicker(n,t,e.options);switch(o.kind){case`ignore`:return;case`clear`:r?.abort(),r=void 0,n=o.state,syncCaret(),this.#rn();return;case`cancel`:i(void 0);return;case`render`:n=o.state,syncCaret(),this.#rn();return;case`validate`:{n=o.state,syncCaret(),this.#rn();let t=new AbortController;r=t;let i;try{i=e.validateInlineKey(o.key,t.signal)}catch(e){a(e);return}i.then(e=>{r!==t||t.signal.aborted||(r=void 0,dispatch({type:`validated`,validation:e}))},e=>{r!==t||t.signal.aborted||(r=void 0,a(e))});return}case`settle`:i(o.result);return}},o=setupSelectionIntent(t,{textNavigation:n.phase.kind===`inactive`});switch(o?.kind){case`cancel`:dispatch({type:`cancel`});return;case`move`:dispatch({type:`move`,direction:o.direction});return;case`submit`:dispatch({type:`submit`});return;case`repaint`:this.#rn();return;case void 0:}if(n.phase.kind!==`editing`&&n.phase.kind!==`invalid`)return;let s=applyLineEditorKey(n.phase.editor,t);s!==void 0&&(this.#Wt(),dispatch({type:`edit`,editor:s}))},()=>{r?.abort(),r=void 0,this.#Ut()}).promise}async#pt(e){e.mask===!0&&this.#H.clear();let t=this.#ht(e.message),n=lineOf(``),r;return t.question=t=>{let i={message:``,editor:n,mask:e.mask===!0};return e.placeholder===void 0?e.defaultValue!==void 0&&(i.placeholder=e.defaultValue):i.placeholder=e.placeholder,e.notices!==void 0&&(i.notices=e.notices),r!==void 0&&(i.error=r),renderTextQuestion(i,this.#i,t,this.#fe)},this.#Ht(),this.#rn(),await this.#vt((t,i)=>{let apply=e=>{n=e,r=void 0,this.#Wt(),this.#rn()},a=e.mask?applyLineEditorKey(n,t):this.#H.apply(n,t);if(a!==void 0){apply(a);return}switch(t.type){case`ctrl-c`:case`escape`:i(void 0);return;case`ctrl-r`:this.#rn();return;case`enter`:{let t=n.text.length>0?n.text:e.defaultValue??``,a=e.validate?.(t);if(a!==void 0){r=a,this.#rn();return}i(t);return}default:return}},()=>this.#Ut()).promise}async#mt(e){let t=this.#ht(e.message);return t.question=t=>renderAcknowledgeQuestion({message:``,lines:e.lines},this.#i,t),this.#rn(),await this.#vt((e,t)=>{switch(e.type){case`enter`:case`escape`:case`ctrl-c`:t();return;case`ctrl-r`:this.#rn();return;default:return}}).promise}#ht(e){this.#jt(),this.#U=!1;let t=this.#gt();return t.questionTitle=stripTerminalControls(e),t.status!==void 0&&(t.status=void 0,t.summary=void 0,t.preview=void 0),t}#gt(){return this.#ze===void 0&&(this.#ze={title:``,startedAtMs:Date.now(),lines:[],outputBuffer:[],implicit:!0}),this.#ze}#_t(){this.#ze?.implicit===!0?this.#ze=void 0:this.#ze!==void 0&&(this.#ze.question=void 0,this.#ze.questionTitle=void 0,this.#ze.hideLinesWhileQuestion=!1),this.#ye=void 0,this.#Ft(),this.#k===void 0?this.#ze!==void 0&&this.#bt():this.#Ye(),this.#ze===void 0&&this.#rn()}#vt(e,t){let n=!1,r,i,a=new Promise((e,t)=>{r=e,i=t}),settle=e=>{n||(n=!0,t?.(),this.#_t(),r(e))},reject=e=>{n||(n=!0,t?.(),this.#_t(),i(e))};return this.#Vt(),this.#ye=t=>{t.type===`ctrl-c`&&this.#Dt(),e(t,settle,reject)},this.#Pt(),{promise:a,settle}}#yt(e){let t,n=new Promise(e=>{t=e});return this.#Ue=t,this.#bt(e?.interruptible??!0),{promise:n,dispose:()=>{this.#Ue===t&&(this.#Ue=void 0,this.#xt())}}}#bt(e=!0){if(this.#k!==void 0){this.#Ye();return}if(this.#Ue===void 0)return;let consumer=t=>{if(e&&(t.type===`ctrl-c`||t.type===`escape`)){t.type===`ctrl-c`&&this.#Dt();let e=this.#Ue;this.#Ue=void 0,this.#xt(),e?.(t.type===`ctrl-c`?`ctrl-c`:`escape`);return}t.type===`ctrl-r`&&this.#rn()};this.#We=consumer,this.#Vt(),this.#ye=consumer,this.#Pt()}#xt(){this.#We!==void 0&&(this.#ye===this.#We&&this.#Ft(),this.#We=void 0)}#St(e){let t=e===void 0?void 0:{text:stripTerminalControls(e),startedAtMs:Date.now()};if(this.#ze!==void 0){this.#ze.status=t,t===void 0&&(this.#ze.preview=void 0),this.#rn();return}if(!(this.#U||this.#S?.working===!0)){if(t===void 0){this.#re=void 0,this.#Kt(),this.#rn();return}this.#jt(),this.#me=Date.now(),this.#Gt(),this.#re=t.text,this.#rn()}}#Ct(e,t){let n=stripTerminalControls(e);if(n.trim().length===0)return;let r=this.#ze;if(r!==void 0){if(r.preview=void 0,t===`warning`||t===`error`)for(let e of r.outputBuffer)r.lines.push({text:e,tone:`info`,evidence:!0});r.outputBuffer=[],r.lines.push({text:n,tone:t}),this.#rn();return}this.#jt(),this.#Zt({kind:`flow`,title:t,body:n,live:!1}),this.#rn()}#wt(e){let t=this.#ze;t!==void 0&&(t.lines=[],t.outputBuffer=[],t.preview=void 0,t.status=void 0,t.summary=e===void 0?void 0:{headline:stripTerminalControls(e.headline),facts:e.facts.map(e=>({label:stripTerminalControls(e.label),value:stripTerminalControls(e.value)}))},this.#rn())}#Tt(e){let t=stripTerminalControls(e);if(t.trim().length===0)return;let n=this.#ze;if(n===void 0){this.#Ct(t,`info`);return}n.preview=t,n.outputBuffer.push(t),n.outputBuffer.length>40&&n.outputBuffer.shift(),this.#rn()}async#Et(e){this.#be=``,this.#Vt(),this.#Ue=void 0,this.#xt(),this.#Ft(),this.#qt(),this.#n.clear(),this.#Cn(),this.#r.enter({cursor:`visible`,mouse:!1}),this.#e.isTTY&&this.#e.setRawMode?.(!1),this.#e.pause();try{return await e()}finally{this.#r.exit(),this.#e.isTTY&&this.#e.setRawMode?.(!0),this.#e.resume(),this.#be=``,this.#Vt(),this.#n.hideCursor(),this.#Sn(),this.#ze===void 0?this.#Xt():(this.#Gt(),this.#bt()),this.#n.reset(),this.#rn()}}setSessionId(e){this.#He=e}shutdown(){this.#Nt();for(let e of this.#J.values())clearTimeout(e);if(this.#J.clear(),this.#oe&&!this.#se){this.#se=!0;let e=this.#He===void 0?``:` ${this.#i.glyph.dot} session ${this.#He}`;this.#t.write(`${this.#i.colors.dim(`${eveVersionTag()}${e}`)}\n`)}}requestInterrupt(){this.#ze!==void 0&&this.#ye?.({type:`ctrl-c`}),this.#Nt()}exitRequested(){return this.#ce}#Dt(){this.#ce=!0,this.#de?.()}async#Ot(e){if(this.#Ge!==void 0||!this.#ae)return;let t=new TraceViewerSession({...e,theme:this.#i,dimensions:()=>({width:this.#bn(),height:this.#xn()}),paint:e=>this.#r.paint(e,this.#xn()),tracingDisabled:process.env.EVE_TRACES===`off`,copyText:e=>copyTextToClipboard(e,e=>this.#r.writeRaw(e)),terminalBackground:this.#Ke});this.#Ge=t,this.#r.enter(),this.#i.color&&this.#r.writeRaw(BACKGROUND_COLOR_QUERY),await new Promise(e=>{this.#At=e,this.#ye=e=>{t.handleKey(e)===`close`&&this.#kt()},this.#Pt(),t.start()})}#kt(){let e=this.#Ge;if(e===void 0)return;this.#Ge=void 0,e.dispose(),this.#Ft(),this.#r.exit(),this.#n.hideCursor(),this.#rn(),this.#n.showCursor();let t=this.#At;this.#At=void 0,t?.()}#At;#jt(e){this.#ie=e?.title??this.#ie,!this.#ae&&(this.#ae=!0,this.#oe=!0,this.#n.reset(),this.#n.hideCursor(),this.#Sn(),this.#e.isTTY&&(this.#e.setRawMode?.(!0),this.#e.resume(),this.#n.emitBracketedPaste(!0)),this.#Ce=()=>this.#rn(),this.#t.on(`resize`,this.#Ce),process.on(`exit`,this.#Mt))}#Mt=()=>{this.#ae&&(this.#r.exit(),this.#e.isTTY&&(this.#n.emitBracketedPaste(!1),this.#e.setRawMode?.(!1)),this.#n.showCursor())};#Nt(){this.#Ie=void 0;let e=this.#Re;e!==void 0&&(this.#Re=void 0,this.#Le=void 0,this.finishCommand({kind:`dismiss`}),this.#ye=void 0,e()),this.#kt();let t=this.#ne;if(this.#ne=void 0,t?.(interruptedError()),this.#Ft(),this.#Ut(),this.#qt(),this.#_e!==void 0&&(clearTimeout(this.#_e),this.#_e=void 0),this.#ve=!1,this.#Mn(),this.#ae){this.#Pn(),this.#at();for(let e of this.#h)e.kind===`log`&&e.id===void 0&&(e.live=!1);this.#rn(),this.#n.clear(),this.#n.showCursor(),this.#Cn(),this.#n.newline(),this.#e.isTTY&&(this.#n.emitBracketedPaste(!1),this.#e.setRawMode?.(!1),this.#e.pause()),this.#Ce&&=(this.#t.off(`resize`,this.#Ce),void 0),process.off(`exit`,this.#Mt),this.#ae=!1}}#Pt(){this.#e.off(`data`,this.#It),this.#e.on(`data`,this.#It),this.#be.length>0&&queueMicrotask(()=>{this.#ye!==void 0&&this.#be.length>0&&(this.#zt(),this.#Lt())})}#Ft(){this.#e.off(`data`,this.#It),this.#Vt(),this.#ye=void 0}#It=e=>{this.#Vt(),this.#be+=this.#xe.write(e),this.#zt(),this.#Lt()};#Lt(){if(this.#be===`\x1B`){this.#Se=setTimeout(()=>{this.#be===`\x1B`&&(this.#be=``,this.#Rt({type:`escape`}))},30),this.#Se.unref?.();return}if(isIncompletePaste(this.#be)){let e=this.#be;this.#Se=setTimeout(()=>{if(this.#be!==e)return;let t=sanitizePastedText(stripPasteStart(e));this.#be=``,t.length>0&&this.#Rt({type:`text`,value:t,framing:`bracketed-paste`})},incompletePasteFlushMs),this.#Se.unref?.();return}if(isIncompleteOsc(this.#be)){let e=this.#be;this.#Se=setTimeout(()=>{this.#be===e&&(this.#be=``)},incompletePasteFlushMs),this.#Se.unref?.()}}#Rt(e){this.#H.interruptYank(e),this.#ye?.(e)}#zt(){for(;this.#be.length>0;){let e=nextKey(this.#be);if(e.incomplete)return;if(this.#be=this.#be.slice(e.consumed),e.key!==void 0&&e.key.type!==`ignore`){if(e.key.type===`osc`){this.#Bt(e.key.value);continue}this.#Rt(e.key)}}}#Bt(e){let t=parseBackgroundColorReply(e);t!==void 0&&(this.#Ke=t,this.#Ge?.setTerminalBackground(t))}#Vt(){this.#Se&&=(clearTimeout(this.#Se),void 0)}#Ht(){this.#Ut(),this.#Wt(),this.#he=setInterval(()=>{this.#fe=!this.#fe,this.#rn()},500),this.#he.unref?.()}#Ut(){this.#he&&=(clearInterval(this.#he),void 0),this.#fe=!0}#Wt(){this.#fe=!0}#Gt(){this.#qt(),this.#ge=setInterval(()=>{this.#pe+=1,this.#rn()},90),this.#ge.unref?.()}#Kt(){this.#Jt()||this.#qt()}#qt(){this.#ge&&=(clearInterval(this.#ge),void 0)}#Jt(){return this.#S?.working===!0||this.#x.tasks.length>0}#Yt(e,t=Math.max(8,Math.floor(this.#xn()/2))){let n=this.#x.tasks;if(n.length===0)return[];let r=this.#S?.working===!0&&this.#re===void 0,i=Date.now(),a=r&&this.#S!==void 0?turnActivity(this.#S,n):`Working`;return renderTaskPanelRows(n,{width:e,theme:this.#i,nowMs:i,maxRows:t,activity:a.startsWith(`Waiting for `)?`Waiting`:a,turnElapsedMs:r?Math.max(0,i-(this.#Z.startedAtMs??i)):void 0})}#Xt(){this.#Jt()?this.#ge===void 0&&(this.#me=Date.now(),this.#Gt()):this.#ze===void 0&&this.#O===void 0&&this.#re===void 0&&this.#qt()}#Zt(e){e.id!==this.#je?.id&&this.#Pn(),e.updateSeq=++this.#b,this.#h.push(e),e.id&&this.#g.set(e.id,e)}#Qt(){let e=this.#Z.settle(this.#$t());if(e===void 0||(this.#Q=e,this.#f?.reportStats(),e.elapsedMs<=1e4&&e.inputTokens<=2e4))return;let t=`Done in ${this.#hn(e)}`,n=this.#S?.data.lastStepUsage?.inputTokens??0;if(this.#Ee!==void 0&&this.#Ee>0&&n>0){let e=Math.round(n/this.#Ee*100);t+=` ${this.#i.glyph.dot} ${e}% context`}this.#Zt({kind:`turn-stats`,body:t,live:!1})}#$t(){return this.#S?.data.usage??{inputTokens:0,outputTokens:0}}renderError(e,t){this.#jt(),this.#en(e,t)}#en(e,t,n={}){let r=stripTerminalControls(e),i=stripTerminalControls(t),a=n.detail===void 0?void 0:stripTerminalControls(n.detail),o=n.hint===void 0?void 0:stripTerminalControls(n.hint),s={source:`workflow`,summary:`${r}: ${i}`,detail:a??i};this.#f?.append(o===void 0?s:{...s,hint:o});let c={kind:`error`,title:r,body:i,live:!1};o!==void 0&&(c.hint=o),a!==void 0&&(c.detail=this.#f===void 0?a:`details: ${this.#f.displayPath}`),this.#Zt(c),this.#rn()}#tn(e){if(e.id&&this.#v.has(e.id))return;let t=e.id?this.#g.get(e.id):void 0;if(t){Object.assign(t,e),t.updateSeq=++this.#b;return}this.#Zt(e)}#nn(e){this.#h=this.#h.filter(t=>t.id!==e),this.#g.delete(e)}#rn(){if(this.#ae){if(this.#we){this.#Te=!0;return}this.#we=!0;try{do this.#Te=!1,this.#in();while(this.#Te)}finally{this.#we=!1}}}#in(){if(!this.#ae)return;if(this.#Ge!==void 0){this.#Ge.repaint();return}let e=this.#bn(),t=this.#pn(e),n=this.#M===void 0?[]:this.#cn(),r=Math.max(0,this.#xn()-n.length-t.length),i=[],a=this.#I,o=groupToolBlocksForDisplay(this.#h),s=0;for(;s<o.length&&o[s].display.live===!1;)s+=1;if(s>0){let e=new Set(o.slice(0,s).flatMap(e=>e.members));for(let t=this.#h.length-1;t>=0;--t)e.has(this.#h[t])&&this.#h.splice(t,1)}for(let t of o.slice(0,s)){for(let e of t.members)this.#y.push(e),e.id&&(this.#v.add(e.id),this.#g.delete(e.id));if(this.#In(t.display))continue;let n=this.#ln(t.display,e,a);a=previousBlockOf(t.display),this.#I=a,i.push(...n),this.#F.push(...n)}let c=[];for(let{display:t}of o.slice(s)){if(this.#In(t))continue;let n=this.#ln(t,e,a);a=previousBlockOf(t);for(let e=0;e<n.length;e+=1)c.push({block:t,row:n[e]})}let l=[...n,...clipLiveRows(c.map(e=>e.row),r,e,this.#i),...t];i.length>0?this.#n.flush(i,l):this.#n.update(l)}#an(){if(!this.#ae)return;let e=this.#bn(),t=this.#pn(e),n=Math.max(0,this.#xn()-t.length),r=this.#I,i=[];for(let{display:t}of groupToolBlocksForDisplay(this.#h)){if(this.#In(t))continue;let n=this.#ln(t,e,r);r=previousBlockOf(t),i.push(...n)}let a=[...clipLiveRows(i,n,e,this.#i),...t];this.#n.clearAll(),this.#n.flush([...this.#cn(),...this.#F],a)}logDisplayMode(){return this.#m}setLogDisplayMode(e){e!==this.#m&&(this.#m=e,e===`all`&&this.flushDelayedDevBuildErrors(),this.#sn(),this.#ae&&this.#an())}flushDelayedDevBuildErrors(){let e=this.#Ae;e!==void 0&&(this.#Ae=void 0,this.#Zt({kind:`log`,title:`stderr`,logLevel:`error`,body:e,live:!1}),this.#rn())}#on(){this.#ve=!0,this.#_e!==void 0&&clearTimeout(this.#_e),this.#_e=setTimeout(()=>{this.#ve=!1,this.#_e=void 0,this.#rn()},5e3),this.setLogDisplayMode(nextLogDisplayMode(this.#m)),this.#rn()}#sn(){let e=this.#bn();this.#F.length=0;let t;for(let{display:n}of groupToolBlocksForDisplay(this.#y,{logCoalescing:`runs`})){if(this.#In(n))continue;let r=this.#ln(n,e,t);t=previousBlockOf(n),this.#F.push(...r)}this.#I=t}#cn(){let e=this.#T,t=this.#M;if(e===void 0&&t===void 0)return[];let n={name:e?.name??t?.name,theme:this.#i,width:this.#bn()};return e?.info!==void 0&&(n.info=e.info),buildAgentHeader(n)}#ln(e,t,n){let r={renderMarkdown:this.#a,activityPulse:this.#dn(this.#me,this.#i.unicode?PROGRESS_PULSE_GLYPH:PROGRESS_PULSE_ASCII_GLYPH)};n!==void 0&&(r.previous=n),this.#ze!==void 0&&(r.setupFlowOpen=!0),this.#Le!==void 0&&(r.transientPanelOpen=!0);let i=renderBlockLines(e,t,this.#i,r);return(e.depth??0)===0&&leadsWithGap(e,n)?[``,...i]:i}#un(){return this.#i.spinner[this.#pe%this.#i.spinner.length]??``}#dn(e,t){return isProgressPulseVisible(Date.now()-e)?t:` `}#fn(e){return{glyph:this.#dn(e.startedAtMs,this.#i.unicode?PROGRESS_PULSE_GLYPH:PROGRESS_PULSE_ASCII_GLYPH)}}#pn(e){let t=this.#i.colors,n=[``];if(this.#Le!==void 0){let t=this.#Le(e);return[...t.rows,...t.controls]}if(this.#Ie!==void 0){let t=this.#Ie(e),n=this.#xn()-t.rows.length-t.controls.length-1;return[...(n>=4?this.#Yt(e,n+1):[]).slice(0,-1),...t.rows,...t.controls].map(t=>clip(t,e))}let r=this.#ze;if(r!==void 0&&(this.#k===void 0||r.question!==void 0)){let t=this.#fn(r),i;if(r.status!==void 0){let{startedAtMs:e,...n}=r.status,a=Date.now()-e,o=a>=5e3?` ${formatTurnDuration(a)}`:``;i={...n,text:`${n.text}${o}`,indicator:t}}let a;if(r.question!==void 0){let t=r.question(e);a={kind:`question`,title:r.questionTitle,rows:t},i!==void 0&&(a={kind:`question`,title:r.questionTitle,rows:t,status:i})}else i===void 0?a=r.preview===void 0?{kind:`idle`,indicator:t}:{kind:`preview`,text:r.preview,indicator:t}:(a={kind:`status`,status:i},r.preview!==void 0&&(a={kind:`status`,status:i,preview:r.preview}));let o={title:r.title,navigation:r.navigation,lines:r.summary===void 0?r.hideLinesWhileQuestion===!0?[]:r.lines:[{text:r.summary.headline,tone:`success`},...r.summary.facts.map(e=>({text:`${e.label}: ${e.value}`,tone:`info`}))],content:a},s=renderFlowDrawer(o,this.#i,e);return n.length===1&&n[0]===``&&(n.length=0),n.push(...s.rows),s.controls.length>0&&n.push(...s.controls),this.#vn(n,e),n}r!==void 0&&n.push(...flowMessageRows(r.lines,this.#i).map(t=>t.length===0?``:clip(` ${t}`,e))),this.#O===void 0&&this.#Be!==void 0&&n.push(...renderAttentionRows(this.#Be,e,this.#i),``);let i=this.#S?.working===!0&&this.#re===void 0,a=this.#Yt(e);a.length>0&&n.push(...a);let o=renderMessageQueueRows({view:this.#Ve.view(),width:e,theme:this.#i});if(o.length>0&&n.push(...o,``),i&&(a.length===0&&n.push(this.#mn(e)),this.#te&&n.push(clip(`${t.yellow(this.#i.glyph.dotActive)} ${t.dim(`Cancelling turn… · Ctrl+C to stop waiting, then again to exit`)}`,e)),(a.length===0||this.#te)&&n.push(``)),this.#U){let r=this.#W===void 0?void 0:inlineCommandHint(this.#W),a=this.#Je(e);this.#le&&n.push(clip(t.dim(`Press Ctrl+C again to exit`),e),``);let o=r?t.dim(` ${r}`):``,s=[];this.#_n(s,e);let c=Math.max(1,this.#xn()-1-n.length-1-a.length-s.length-(a.length>0?2:0)),l={text:this.#z,cursor:this.#B,width:e,theme:this.#i,caretVisible:this.#fe,ghost:o,maxRows:c};this.#Y&&this.#z.length===0&&(l.placeholder=this.#k===void 0?this.#X||i?``:this.#E:`Message · Enter to queue`);let u=promptInputRows(l);return a.length>0&&u.at(-1)===``&&u.pop(),n.push(...u),a.length>0&&n.push(t.dim(this.#i.glyph.dash.repeat(e))),n.push(...a),a.length>0&&s.length>0&&n.push(t.dim(this.#i.glyph.dash.repeat(e))),n.push(...s),n}if(i||this.#$.text.length>0)return this.#gn(n,e,{inert:i,adjacent:a.length>0}),this.#_n(n,e),n;let s=this.#re??`Ready`,c=this.#yn(),l=t.dim(this.#i.glyph.dot),u=c?`${l} ${s} ${t.dim(this.#i.glyph.dot)} ${c}`:`${l} ${s}`;return n.push(clip(u,e)),this.#_n(n,e),n}#mn(e){let t=this.#i.colors,n=this.#Z.startedAtMs??Date.now(),r=Math.max(0,Date.now()-n),i=r%1e3<500?this.#i.unicode?`•`:`*`:` `,a=r<1e3?`0s`:formatTurnDuration(Math.floor(r/1e3)*1e3),o=`${this.#S===void 0?`Thinking`:turnActivity(this.#S,this.#x.tasks)} (${a})`,{inputTokens:s,outputTokens:c}=this.#Z.usage(this.#$t());return clip(`${i} ${o}${s>0||c>0?t.dim(` (${formatTokenFlow({inputTokens:s,outputTokens:c},this.#i.glyph)})`):``}`,e)}#hn(e){let{inputTokens:t,outputTokens:n}=e,r=t===0&&n===0?``:` (${formatTokenFlow({inputTokens:t,outputTokens:n},this.#i.glyph)})`;return`${formatTurnDuration(e.elapsedMs)}${r}`}#gn(e,t,n){!n.adjacent&&e.at(-1)!==``&&e.push(``);let r={text:this.#$.text,cursor:this.#$.cursor,width:t,theme:this.#i,caretVisible:!0,ghost:``,maxRows:4,inert:n.inert};n.inert&&this.#$.text.length===0&&(r.placeholder=``),e.push(...promptInputRows(r))}#_n(e,t){if(this.#O!==void 0){let n=this.#ze?.status?.text??{starting:`Starting agent…`,connecting:`Reading saved connection…`,updating:`Loading selected model…`}[this.#O],r=this.#dn(this.#j,this.#i.unicode?PROGRESS_PULSE_GLYPH:PROGRESS_PULSE_ASCII_GLYPH);e.push(clip(this.#i.colors.dim(`${r} ${n}`),t));return}let n=this.#R===void 0?``:` `,r=Math.max(1,t-n.length),i={theme:this.#i,width:r};this.#Ne&&this.#Me!==void 0&&(i.devBuild=this.#Me),this.#ve&&(i.logLevel=this.#m);let a=this.#T?.info?.agent.model;if(a?.routing.kind===`dynamic`){let e=this.#S?.data.modelId;i.dynamicModel=!0,e!==void 0&&(i.model=e)}else a?.id!==void 0&&(i.model=a.id);a?.reasoning!==void 0&&a.reasoning!==`provider-default`&&(i.reasoning=a.reasoning),readGatewayServiceTier(a?.providerOptions).kind===`priority`&&(i.fastMode=!0);let o=a?.endpoint;o!==void 0&&(i.endpoint=o),this.#L!==void 0&&(i.vercel=this.#L),this.#R!==void 0&&(i.remote=this.#R);let s=buildStatusLine(i);s!==void 0&&e.push(clip(`${n}${s}`,t))}#vn(e,t){if(this.#R===void 0)return;let n=Math.max(1,t-2),r=buildStatusLine({remote:this.#R,theme:this.#i,width:n});r!==void 0&&e.push(``,clip(` ${r}`,t))}#yn(){let e=this.#i.colors,t=[],n=this.#Q,r=n===void 0?void 0:formatAssistantResponseStats({totalTokens:n.inputTokens+n.outputTokens,outputTokens:n.outputTokens,tokensPerSecond:n.elapsedMs>0?n.outputTokens/(n.elapsedMs/1e3):void 0},this.#u);return r&&t.push(r),t.length>0?e.dim(t.join(` ${this.#i.glyph.dot} `)):``}#bn(){return Math.max(20,this.#t.columns||80)}#xn(){return Math.max(8,this.#t.rows||24)}#Sn(){if(this.#De!==void 0||!this.#d)return;this.#Oe=``,this.#ke=``;let capture=(e,t)=>{let n=e.write.bind(e);return e.write=((e,n,r)=>{let i=typeof n==`string`?n:void 0,a=typeof n==`function`?n:r;return this.#En(t,chunkToString(e,i)),a?.(),!0}),()=>{e.write=n}},e=[`error`,`warn`,`log`,`info`,`debug`],t=e.map(e=>[e,console[e]]);for(let t of e)console[t]=(...e)=>this.#Tn({level:t===`log`?`info`:t,text:format(...e)});setConsoleRecordSubscriber(e=>this.#Tn(e));let n=capture(process.stdout,`stdout`),r=capture(process.stderr,`stderr`);this.#f?.subscribeLogRecords(e=>this.#wn(e)),this.#De=()=>{this.#f?.unsubscribeLogRecords(),setConsoleRecordSubscriber(void 0);for(let[e,n]of t)console[e]=n;n(),r()}}#Cn(){let e=this.#De;e!==void 0&&(this.#De=void 0,e(),this.#Oe.length>0&&(this.#f?.append({source:`stdout`,detail:this.#Oe}),this.#Fn()&&process.stdout.write(`${this.#Oe}\n`),this.#Oe=``),this.#ke.length>0&&(this.#f?.append({source:`stderr`,detail:this.#ke}),this.#Fn()&&process.stderr.write(`${this.#ke}\n`),this.#ke=``))}#wn(e){let t=e.fields===void 0?``:` ${JSON.stringify(e.fields)}`;this.#On(`[eve:${e.namespace}] ${e.message}${t}`,e.level),this.#rn()}#Tn(e){let t=e.level===`error`||e.level===`warn`?`stderr`:`stdout`;this.#f?.append({source:t,level:e.level,detail:e.text}),t===`stderr`?this.#On(stripAnsi(e.text),e.level):this.#Dn(stripAnsi(e.text),e.level),this.#rn()}#En(e,t){let n=(e===`stdout`?this.#Oe:this.#ke)+t;if(e===`stdout`&&parseDevRebuildLogLine(n.trimEnd())!==void 0){this.#Oe=``,this.#f?.append({source:e,detail:n.trimEnd()}),this.#Dn(n.trimEnd()),this.#rn();return}let r=n.lastIndexOf(`
5
+ `),i=r===-1?n:n.slice(r+1);if(e===`stdout`?this.#Oe=i:this.#ke=i,r===-1)return;let a=stripAnsi(n.slice(0,r)).replace(/\s+$/u,``);a.trim().length!==0&&(this.#f?.append({source:e,detail:a}),e===`stdout`?this.#Dn(a):this.#On(a),this.#rn())}#Dn(e,t){let n=[],flushPending=()=>{if(n.length===0)return;let e=n.join(`
6
+ `);n=[],e.trim().length!==0&&this.#Zt({kind:`log`,title:`stdout`,logLevel:t,body:e,live:!1})};for(let r of e.split(`
7
+ `)){let e=parseSandboxLogLine(r.trimEnd());if(e!==void 0){flushPending(),this.#Zt({kind:`sandbox`,logLevel:t,body:e,live:!1});continue}let i=parseDevRebuildLogLine(r.trimEnd());if(i===void 0){n.push(r);continue}flushPending(),this.#An(i,r.trimEnd())}flushPending()}#On(e,t){let n=e.split(`
8
+ `),r=n.findIndex(e=>parseDevRebuildLogLine(e.trimEnd())?.kind===`failed`);if(r===-1){if(this.#f===void 0){this.#Zt({kind:`log`,title:`stderr`,logLevel:t,body:e,live:!1});return}let n=presentDiagnostic(e,this.#f.displayPath);if(n.kind===`inline`){this.#Zt({kind:`log`,title:`stderr`,logLevel:t,body:n.text,live:!1});return}this.#Zt({kind:`log`,title:`stderr`,body:formatStoredDiagnostic(n),logVisibility:`summary`,logLevel:t,live:!1}),this.#Zt({kind:`log`,title:`stderr`,body:e,logVisibility:`all-only`,logLevel:t,live:!1});return}let i=n.slice(0,r).join(`
9
+ `);i.trim().length>0&&this.#Zt({kind:`log`,title:`stderr`,logLevel:t,body:i,live:!1});let a=n.slice(r).join(`
10
+ `);this.#kn(a)}#kn(e){if(this.#Mn(),this.#m===`all`){if(e.trim().length===0)return;this.#Zt({kind:`log`,title:`stderr`,logLevel:`error`,body:e,live:!1});return}this.#Ae=e}#An(e,t){let n=this.#Nn();if(e.kind===`failed`){this.#kn(t);return}if(e.kind===`rebuilding`){let t=summarizeChangedFiles(e.events,e.more);if(this.#jn({phase:`building`,summary:t}),n!==void 0){n.state.summary=t,n.block.body=formatDevRebuildStatus(t,`rebuilding`);return}let r=`dev-rebuild:${this.#Fe}`;this.#Fe+=1,this.#je={id:r,summary:t},this.#Zt({kind:`log`,id:r,title:`stdout`,body:formatDevRebuildStatus(t,`rebuilding`),live:!0});return}let r=n?.state.summary??this.#Me?.summary;if(r!==void 0&&this.#jn({phase:`complete`,summary:r}),n!==void 0){n.block.body=formatDevRebuildStatus(n.state.summary,e.kind),e.kind===`rebuilt`&&(this.#Ae=void 0);return}e.kind===`rebuilt`&&(this.#Ae=void 0),this.#Zt({kind:`log`,title:`stdout`,body:t,live:!1})}#jn(e){this.#Pe!==void 0&&clearTimeout(this.#Pe),this.#Me=e,this.#Ne=e.phase===`complete`,this.#Pe=setTimeout(()=>{e.phase===`building`?(this.#Ne=!0,this.#Pe=void 0):this.#Mn(),this.#rn()},e.phase===`building`?250:4e3)}#Mn(){this.#Pe!==void 0&&clearTimeout(this.#Pe),this.#Me=void 0,this.#Ne=!1,this.#Pe=void 0}#Nn(){let e=this.#je;if(e===void 0)return;let t=this.#g.get(e.id);if(t!==void 0&&t.live===!0)return{state:e,block:t}}#Pn(){let e=this.#je;if(e===void 0)return;this.#je=void 0;let t=this.#g.get(e.id);t!==void 0&&(t.live=!1)}#Fn(e){return isLogVisible(this.#m,e)}#In(e){return e.kind===`sandbox`?!this.#Fn(e.logLevel):e.kind===`log`?e.logVisibility===`summary`&&this.#m===`all`?!0:e.logVisibility===`all-only`?this.#m!==`all`:!this.#Fn(e.logLevel):!1}};function chunkToString(e,t){return typeof e==`string`?e:Buffer.from(e).toString(t)}function clip(e,t){return clipVisible(e,t)}function promptInputRows({text:e,cursor:t,width:n,theme:r,caretVisible:i,ghost:a,maxRows:o,placeholder:s,inert:c}){let l=r.colors;if(e.length===0&&s!==void 0){let e=renderInputWithBlockCursor({...visibleLine({text:s,cursor:0},Math.max(1,n-3),r.glyph.ellipsis),visible:i,inverse:l.inverse,render:e=>l.dim(renderInputText(e))});return[clip(`${r.glyph.prompt} ${e}`,n),``]}let u=renderInputText,d=layoutPromptInput({text:e,cursor:t}),f=Math.min(Math.max(1,o),d.rows.length),p=Math.max(0,Math.min(d.caretRow-f+1,d.rows.length-f)),m=c===!0?l.dim(r.glyph.prompt):e.startsWith(`/`)?r.glyph.user:r.glyph.prompt,h=l.dim(r.glyph.ellipsis),g=Math.max(1,n-3),_=[];for(let e=p;e<p+f;e+=1){let t=d.rows[e],o=e===0?m:` `;(e===p&&p>0||e===p+f-1&&p+f<d.rows.length)&&(o=h);let s;if(e===d.caretRow){let{before:e,under:n,after:o}=visibleLine({text:t.text,cursor:d.caretOffset},g,r.glyph.ellipsis);s=renderInputWithBlockCursor({before:e,under:n,after:o,visible:i,inverse:l.inverse,render:u}),a.length>0&&d.rows.length===1&&(s+=a)}else s=u(t.text);_.push(clip(`${o} ${s}`,n))}return _.push(``),_}function previousBlockOf(e){let t={kind:e.kind};return e.title!==void 0&&(t.title=e.title),e.subagentCallId!==void 0&&(t.subagentCallId=e.subagentCallId),t}function leadsWithGap(e,t){if((e.kind===`tool`||e.kind===`task`)&&(t?.kind===`user`||t?.kind===`assistant`||t?.kind===`question`))return!0;if(e.kind===`sandbox`&&t?.kind===`sandbox`)return!1;if(t?.kind===`sandbox`&&e.kind!==`sandbox`||t?.kind===`log`)return!0;switch(e.kind){case`user`:case`assistant`:case`reasoning`:case`error`:case`notice`:case`question`:case`connection-auth`:case`sandbox`:case`log`:case`command`:case`warning`:case`flow`:case`turn-stats`:case`session-boundary`:case`agent-header`:return!0;default:return!1}}function parseSandboxLogLine(e){let t=e.trim();if(!t.startsWith(`eve: `))return;let n=t.slice(5);return/\bsandbox\b/i.test(n)&&!isLowValueSandboxLogLine(n)?n:void 0}function isLowValueSandboxLogLine(e){return/^initializing (?:\d+ )?sandbox templates?\b/i.test(e)||/^initialized \d+ sandbox\b/i.test(e)||/^reused cached sandbox template\b/i.test(e)||/^sandbox template "[^"]+" \([^)]+\): (checking|reusing)\b/i.test(e)}function clipLiveRows(e,t,n,r){if(t<=0)return[];if(e.length<=t)return[...e];if(t<=1)return[clip(hiddenRowsMarker(e.length,r),n)];let i=t-1;return[clip(hiddenRowsMarker(e.length-i,r),n),...e.slice(e.length-i)]}function hiddenRowsMarker(e,t){let n=e.toLocaleString(),r=e===1?`row`:`rows`;return t.colors.dim(`${t.glyph.dot} ${t.glyph.ellipsis} ${n} earlier ${r} hidden while streaming`)}function questionSectionId(e){return`question:${e}`}function resolveQuestionText(e,t){let n=e.trim();if(n.length===0)return;let r=n.toLowerCase(),i=t.options??[];if(i.length>0){let e=matchQuestionOption(r,i);if(e!==void 0)return{optionId:e.id,label:e.label}}if(t.allowFreeform===!0||i.length===0)return{text:n,label:n}}function matchQuestionOption(e,t){let n=t.find(t=>t.id.toLowerCase()===e);if(n!==void 0)return n;let r=t.find(t=>t.label.toLowerCase()===e);if(r!==void 0)return r;let i=Number(e);if(Number.isInteger(i)&&i>0&&i<=t.length)return t[i-1]}export{TerminalRenderer};
@@ -1,2 +1,2 @@
1
- import type { EveDynamicToolPart, EveMessagePart } from "#client/message-reducer-types.js";
2
- export declare function isTerminalToolCallPart(part: EveMessagePart): part is EveDynamicToolPart;
1
+ import type { EveMessagePart, EveToolPart } from "#client/message-types.js";
2
+ export declare function isTerminalToolCallPart(part: EveMessagePart): part is EveToolPart;
@@ -1 +1 @@
1
- function isTerminalToolCallPart(e){return e.type===`dynamic-tool`&&e.toolMetadata?.eve?.kind===`tool-call`}export{isTerminalToolCallPart};
1
+ function isTerminalToolCallPart(e){return e.type===`tool`&&e.kind===`tool`}export{isTerminalToolCallPart};
@@ -1,4 +1,4 @@
1
- import { type UnstampedMessageStreamEvent } from "#protocol/message.js";
1
+ import type { SessionEvent } from "#protocol/session-event.js";
2
2
  export interface FakeEveRequest {
3
3
  readonly method: string;
4
4
  readonly path: string;
@@ -9,7 +9,7 @@ export interface FakeEveRequest {
9
9
  export type FakeEveTurn = (request: FakeEveRequest & {
10
10
  readonly deliveryId: string;
11
11
  readonly turnId: string;
12
- }) => readonly UnstampedMessageStreamEvent[];
12
+ }) => readonly SessionEvent[];
13
13
  /**
14
14
  * An in-memory eve HTTP server for driving real clients through `fetch`.
15
15
  * Sessions keep a durable event log; streams replay from their cursor and then
@@ -24,7 +24,7 @@ export declare class FakeEveServer {
24
24
  /** Requests to one route, such as `POST /cancel`. */
25
25
  requestsTo(method: string, suffix: string): FakeEveRequest[];
26
26
  /** Appends events to a session's durable stream; the current session by default. */
27
- emit(events: readonly UnstampedMessageStreamEvent[], deliveryId?: string, sessionId?: string | undefined): void;
27
+ emit(events: readonly SessionEvent[], _deliveryId?: string, sessionId?: string | undefined): void;
28
28
  readonly fetch: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
29
29
  close(): void;
30
30
  }
@@ -1 +1 @@
1
- import{EVE_MESSAGE_STREAM_VERSION,EVE_STREAM_VERSION_HEADER,createMessageCompletedEvent,createMessageReceivedEvent,createSessionWaitingEvent,createTurnCompletedEvent,createTurnStartedEvent}from"#protocol/message.js";const FAKE_USAGE={cacheReadTokens:0,cacheWriteTokens:0,inputTokens:1200,outputTokens:150},encoder=new TextEncoder;var FakeEveServer=class{requests=[];#e=new Map;#t;#n;#r=0;#i=0;#a=0;#o;constructor(e=reply(`Done.`),t){this.#t=e,t!==void 0&&(this.#n=t)}get sessionId(){return this.#o}requestsTo(e,t){return this.requests.filter(n=>n.method===e&&n.path.endsWith(t))}emit(e,t,n=this.#o){if(n===void 0)throw Error(`No fake eve session exists yet.`);let r=this.#c(n);for(let n of e){this.#a+=1;let e=new Date(Date.UTC(2026,0,1)+this.#a).toISOString(),i=`evt_fake_${String(this.#a).padStart(4,`0`)}`,a={...n,meta:t===void 0?{at:e,id:i}:{at:e,id:i,deliveryIds:[t]}};r.log.push(a);let o=encoder.encode(`${JSON.stringify(a)}\n`);for(let e of r.streams)e.enqueue(o)}}fetch=async(e,t)=>{let n=new URL(typeof e==`string`||e instanceof URL?e:e.url),r=t?.method??`GET`,i=typeof t?.body==`string`?JSON.parse(t.body):void 0,a=/^\/eve\/v1\/session(?:\/([^/]+))?(?:\/([a-z]+))?$/u.exec(n.pathname);if(a===null&&this.#n!==void 0)return await this.#n(e,t);let o=a?.[1],s={method:r,path:n.pathname};if(o!==void 0&&(s.sessionId=o),i!==void 0&&(s.body=i),this.requests.push(s),a===null)return new Response(`Not found`,{status:404});let c=a[2];if(r===`GET`&&c===`stream`&&o!==void 0)return this.#l(o,Number(n.searchParams.get(`startIndex`)??`0`));if(r===`POST`&&c===void 0){let e=o??this.#s();this.#o=e;let t=`delivery_${String(++this.#i)}`,n=`turn_${String(this.#i)}`;return queueMicrotask(()=>this.emit(this.#t({...s,deliveryId:t,turnId:n}),t)),Response.json({ok:!0,status:`accepted`,sessionId:e,deliveryId:t},{status:202})}return r===`POST`&&c===`reset`&&o!==void 0?Response.json({ok:!0,status:`reset`,previousSessionId:o}):r===`POST`&&o!==void 0?Response.json({ok:!0,status:`accepted`,sessionId:o}):new Response(`Not found`,{status:404})};close(){for(let e of this.#e.values()){for(let t of e.streams)t.close();e.streams.clear()}}#s(){let e=`session_${String(++this.#r)}`;return this.#c(e),e}#c(e){let t=this.#e.get(e);return t===void 0&&(t={log:[],streams:new Set},this.#e.set(e,t)),t}#l(e,t){let n=this.#c(e),r;return new Response(new ReadableStream({start(e){r=e;for(let e of n.log.slice(t))r.enqueue(encoder.encode(`${JSON.stringify(e)}\n`));n.streams.add(r)},cancel(){n.streams.delete(r)}}),{headers:{[EVE_STREAM_VERSION_HEADER]:EVE_MESSAGE_STREAM_VERSION}})}};function reply(e){return({body:t,turnId:n})=>[...typeof t?.message==`string`?[createMessageReceivedEvent({message:t.message,sequence:0,turnId:n})]:[],createTurnStartedEvent({sequence:1,turnId:n}),createMessageCompletedEvent({finishReason:`stop`,message:e,sequence:2,stepIndex:0,turnId:n}),createTurnCompletedEvent({sequence:3,turnId:n}),createSessionWaitingEvent(FAKE_USAGE)]}function silent(){return()=>[]}export{FakeEveServer,reply,silent};
1
+ import{linesOf}from"#protocol/session-lines.js";import{EVE_MESSAGE_STREAM_VERSION,EVE_STREAM_TAIL_INDEX_HEADER,EVE_STREAM_VERSION_HEADER}from"#protocol/session-http.js";const FAKE_USAGE={cacheReadTokens:0,cacheWriteTokens:0,inputTokens:1200,outputTokens:150},encoder=new TextEncoder;var FakeEveServer=class{requests=[];#e=new Map;#t;#n;#r=0;#i=0;#a=0;#o;constructor(e=reply(`Done.`),t){this.#t=e,t!==void 0&&(this.#n=t)}get sessionId(){return this.#o}requestsTo(e,t){return this.requests.filter(n=>n.method===e&&n.path.endsWith(t))}emit(e,t,n=this.#o){if(n===void 0)throw Error(`No fake eve session exists yet.`);let r=this.#c(n),i=new Date(Date.UTC(2026,0,1)+ ++this.#a).toISOString();for(let t of linesOf(e,i)){r.log.push(t);let e=encoder.encode(`${JSON.stringify(t)}\n`);for(let t of r.streams)t.enqueue(e)}}fetch=async(e,t)=>{let n=new URL(typeof e==`string`||e instanceof URL?e:e.url),r=t?.method??`GET`,i=typeof t?.body==`string`?JSON.parse(t.body):void 0,a=/^\/eve\/v1\/session(?:\/([^/]+))?(?:\/([a-z]+))?$/u.exec(n.pathname);if(a===null&&this.#n!==void 0)return await this.#n(e,t);let o=a?.[1],s={method:r,path:n.pathname};if(o!==void 0&&(s.sessionId=o),i!==void 0&&(s.body=i),this.requests.push(s),a===null)return new Response(`Not found`,{status:404});let c=a[2];if(r===`GET`&&c===`stream`&&o!==void 0)return this.#l(o,Number(n.searchParams.get(`startIndex`)??`0`));if(r===`POST`&&c===void 0){let e=o??this.#s();this.#o=e;let t=`delivery_${String(++this.#i)}`,n=`turn_${String(this.#i)}`;return queueMicrotask(()=>this.emit(this.#t({...s,deliveryId:t,turnId:n}),t)),Response.json({ok:!0,status:`accepted`,sessionId:e,deliveryId:t},{status:202})}if(r===`POST`&&c!==void 0&&o!==void 0){let e=`control_${this.requests.length}`,t=[{type:`delivery.admitted`,data:{deliveryId:e,source:{control:c}}},{type:`delivery.settled`,data:{deliveryId:e,outcome:`applied`}}];return c===`reset`&&t.push({type:`session.ended`,data:{outcome:`completed`}}),this.emit(t,e,o),Response.json({ok:!0,sessionId:o,deliveryId:e},{status:202})}return new Response(`Not found`,{status:404})};close(){for(let e of this.#e.values()){for(let t of e.streams)t.close();e.streams.clear()}}#s(){let e=`session_${String(++this.#r)}`;return this.#c(e),e}#c(e){let t=this.#e.get(e);return t===void 0&&(t={log:[{at:new Date(Date.UTC(2026,0,1)).toISOString(),facts:[{type:`session.started`,data:{}}]}],streams:new Set},this.#e.set(e,t)),t}#l(e,t){let n=this.#c(e),r=t<0?Math.max(0,n.log.length+t):t,i;return new Response(new ReadableStream({start(e){i=e,i.enqueue(encoder.encode(`${JSON.stringify({$eve:`position`,next:r})}\n`));for(let e of n.log.slice(r))i.enqueue(encoder.encode(`${JSON.stringify(e)}\n`));n.streams.add(i)},cancel(){n.streams.delete(i)}}),{headers:{[EVE_STREAM_VERSION_HEADER]:EVE_MESSAGE_STREAM_VERSION,[EVE_STREAM_TAIL_INDEX_HEADER]:String(n.log.length-1)}})}};function reply(e){return({body:t,deliveryId:n,turnId:r})=>{let i=`${r}.run`,a=`${i}.reply`,o={turnId:r,runId:i};return[{type:`delivery.admitted`,data:{deliveryId:n}},{type:`turn.started`,data:{turnId:r,cause:{deliveryId:n},follows:null},scope:o},{type:`delivery.consumed`,data:{deliveryId:n,turnId:r,parts:typeof t?.message==`string`?[{kind:`text`,text:t.message}]:[]}},{type:`model.requested`,data:{runId:i,owner:{turnId:r}},scope:o},{type:`model.started`,data:{attempt:0,runId:i,modelId:`fake`},scope:o},{type:`content.completed`,data:{runId:i,partId:a,kind:`text`,phase:`reply`,value:e},scope:o},{type:`model.settled`,data:{runId:i,outcome:`completed`,finishReason:`stop`},scope:o},{type:`usage.recorded`,data:{owner:{runId:i},kind:`model`,usage:FAKE_USAGE},scope:o},{type:`turn.settled`,data:{turnId:r,outcome:`completed`,reply:[a]},scope:o},{type:`delivery.settled`,data:{deliveryId:n,turnId:r,outcome:`handled`}}]}}function silent(){return()=>[]}export{FakeEveServer,reply,silent};
@@ -1 +1 @@
1
- import{summarizeToolArgs,summarizeToolResult}from"./tool-format.js";import{diffWriteDetail}from"./line-diff.js";import{displayName,displayTitle}from"#shared/display-name.js";import{stripTerminalControls}from"#cli/ui/terminal-text.js";import{REPLY_TOOL_NAME}from"#protocol/reply-tool.js";const WRITE_FILE_VERB=`Write`,DELEGATE_VERB=`Delegate`,REPLY_TITLE=`Reply`,BUILTIN_TOOL_COPY={agent:{verb:`Delegate`,pastVerb:`Delegated`,argKey:`message`,singularNoun:`task`,pluralNoun:`tasks`},ask_question:{verb:`Ask`,pastVerb:`Asked`,argKey:`question`,singularNoun:`question`,pluralNoun:`questions`},bash:{verb:`Run`,pastVerb:`Ran`,argKey:`command`,singularNoun:`command`,pluralNoun:`commands`},glob:{verb:`Glob`,pastVerb:`Globbed`,argKey:`pattern`,singularNoun:`pattern`,pluralNoun:`patterns`},grep:{verb:`Grep`,pastVerb:`Grepped`,argKey:`pattern`,singularNoun:`pattern`,pluralNoun:`patterns`},read_file:{verb:`Read`,pastVerb:`Read`,argKey:`filePath`,singularNoun:`file`,pluralNoun:`files`},web_fetch:{verb:`Fetch`,pastVerb:`Fetched`,argKey:`url`,singularNoun:`URL`,pluralNoun:`URLs`},web_search:{verb:`Search`,pastVerb:`Searched`,argKey:`query`,extractItem:e=>salientArg(e,`objective`)??salientArg(e,`search_query`)??salientArg(e,`searchQuery`)??webSearchActionArg(e),singularNoun:`query`,pluralNoun:`queries`}};function presentWriteFileTool(e,t,n){let r=readWriteFileInput(e,t);if(r===void 0)return{title:toolDisplayTitle(e),subtitle:summarizeToolArgs(t),summarizeResult:summarizeToolResult};let i=diffWriteDetail(n?.previousContent,r.content,n?.existed).map(e=>e.kind===`gap`?e:{...e,text:stripTerminalControls(e.text)});return{title:`${WRITE_FILE_VERB} ${salientLine(r.path)??r.path}`,doneTitle:`Wrote ${salientLine(r.path)??r.path}`,subtitle:``,summarizeResult:()=>void 0,detail:i,keepDetailWhenDone:!0}}function readWriteFileInput(e,t){if(toolBaseName(e)!==`write_file`||typeof t!=`object`||!t||Array.isArray(t))return;let n=t,r=n.filePath,i=n.content;if(typeof r==`string`&&r.trim().length!==0&&typeof i==`string`)return{path:r,content:i}}function presentTool(e,t,n){let r=toolBaseName(e);if(r===`write_file`)return presentWriteFileTool(e,t,n);if(n?.isSubagent===!0){let n=isSelfModificationAgent(e)?agentDisplayName(e):agentTaskLabel(agentDisplayName(e));return{title:`${DELEGATE_VERB} ${n}`,doneTitle:`Delegated ${n}`,subtitle:salientArg(t,`message`)??``,summarizeResult:()=>void 0}}if(r===REPLY_TOOL_NAME)return{title:REPLY_TITLE,subtitle:``,summarizeResult:()=>void 0};let i=BUILTIN_TOOL_COPY[r];if(i!==void 0){let e=salientArg(t,i.argKey)??i.extractItem?.(t);if(e!==void 0)return{title:`${i.verb} ${e}`,doneTitle:`${i.pastVerb} ${e}`,subtitle:``,summarizeResult:()=>void 0,group:{verb:i.verb,pastVerb:i.pastVerb,singularNoun:i.singularNoun,pluralNoun:i.pluralNoun,item:e}}}if(n?.label!==void 0){let e={title:n.label,subtitle:``,summarizeResult:summarizeToolResult};return n.completeLabel===void 0?e:{...e,doneTitle:n.completeLabel}}return{title:toolDisplayTitle(e),subtitle:summarizeToolArgs(t),summarizeResult:summarizeToolResult}}function toolDisplayTitle(e){return displayTitle(toolBaseName(e))}const SELF_MODIFICATION_AGENT_NAME=`self-modification__agent`,AGENT_DISPLAY_NAMES=new Map([[`agent`,`subagent`],[SELF_MODIFICATION_AGENT_NAME,`agent editor`]]);function isSelfModificationAgent(e){return toolBaseName(e)===SELF_MODIFICATION_AGENT_NAME}function agentTaskLabel(e){return/^subagent(?::\d+)?$/u.test(e)||e.startsWith(`agent editor`)?e:`subagent(${e})`}function agentDisplayName(e){let t=toolBaseName(e);return AGENT_DISPLAY_NAMES.get(t)??displayName(t.replace(/(?<=.)__agent$/u,``))}function presentPreparingTool(e,t){let n=toolBaseName(e);return n===REPLY_TOOL_NAME?{title:REPLY_TITLE,subtitle:``,summarizeResult:()=>void 0}:t?.isSubagent===!0?{title:`${DELEGATE_VERB} ${agentTaskLabel(agentDisplayName(e))} …`,subtitle:``,summarizeResult:()=>void 0}:{title:`${(n===`write_file`?WRITE_FILE_VERB:BUILTIN_TOOL_COPY[n]?.verb)??toolDisplayTitle(e)} …`,subtitle:``,summarizeResult:()=>void 0}}function isPanelRoutedTool(e){return toolBaseName(e)===`ask_question`}function toolBaseName(e){return e.split(/[.:/]/u).at(-1)??e}function webSearchActionArg(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e.action;if(typeof t!=`object`||!t||Array.isArray(t))return;let n=t,r=n.queries;if(Array.isArray(r)){let e=r.filter(e=>typeof e==`string`).map(salientLine).filter(e=>e!==void 0).join(`, `);if(e.length>0)return e}for(let e of[`query`,`url`,`pattern`]){let t=n[e];if(typeof t==`string`){let e=salientLine(t);if(e!==void 0)return e}}}function salientArg(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return;let n=e[t];if(typeof n==`string`)return salientLine(n)}function salientLine(e){let t=stripTerminalControls(e).split(/\r?\n/u).find(e=>e.trim().length>0)?.trim()??``;return t.length>0?t:void 0}export{SELF_MODIFICATION_AGENT_NAME,agentDisplayName,agentTaskLabel,isPanelRoutedTool,isSelfModificationAgent,presentPreparingTool,presentTool,readWriteFileInput,toolBaseName,toolDisplayTitle};
1
+ import{summarizeToolArgs,summarizeToolResult}from"./tool-format.js";import{diffWriteDetail}from"./line-diff.js";import{displayName,displayTitle}from"#protocol/session-projection/display-name.js";import{stripTerminalControls}from"#cli/ui/terminal-text.js";import{REPLY_TOOL_NAME}from"#protocol/reply-tool.js";const WRITE_FILE_VERB=`Write`,DELEGATE_VERB=`Delegate`,REPLY_TITLE=`Reply`,BUILTIN_TOOL_COPY={agent:{verb:`Delegate`,pastVerb:`Delegated`,argKey:`message`,singularNoun:`task`,pluralNoun:`tasks`},ask_question:{verb:`Ask`,pastVerb:`Asked`,argKey:`question`,singularNoun:`question`,pluralNoun:`questions`},bash:{verb:`Run`,pastVerb:`Ran`,argKey:`command`,singularNoun:`command`,pluralNoun:`commands`},glob:{verb:`Glob`,pastVerb:`Globbed`,argKey:`pattern`,singularNoun:`pattern`,pluralNoun:`patterns`},grep:{verb:`Grep`,pastVerb:`Grepped`,argKey:`pattern`,singularNoun:`pattern`,pluralNoun:`patterns`},read_file:{verb:`Read`,pastVerb:`Read`,argKey:`filePath`,singularNoun:`file`,pluralNoun:`files`},web_fetch:{verb:`Fetch`,pastVerb:`Fetched`,argKey:`url`,singularNoun:`URL`,pluralNoun:`URLs`},web_search:{verb:`Search`,pastVerb:`Searched`,argKey:`query`,extractItem:e=>salientArg(e,`objective`)??salientArg(e,`search_query`)??salientArg(e,`searchQuery`)??webSearchActionArg(e),singularNoun:`query`,pluralNoun:`queries`}};function presentWriteFileTool(e,t,n){let r=readWriteFileInput(e,t);if(r===void 0)return{title:toolDisplayTitle(e),subtitle:summarizeToolArgs(t),summarizeResult:summarizeToolResult};let i=diffWriteDetail(n?.previousContent,r.content,n?.existed).map(e=>e.kind===`gap`?e:{...e,text:stripTerminalControls(e.text)});return{title:`${WRITE_FILE_VERB} ${salientLine(r.path)??r.path}`,doneTitle:`Wrote ${salientLine(r.path)??r.path}`,subtitle:``,summarizeResult:()=>void 0,detail:i,keepDetailWhenDone:!0}}function readWriteFileInput(e,t){if(toolBaseName(e)!==`write_file`||typeof t!=`object`||!t||Array.isArray(t))return;let n=t,r=n.filePath,i=n.content;if(typeof r==`string`&&r.trim().length!==0&&typeof i==`string`)return{path:r,content:i}}function presentTool(e,t,n){let r=toolBaseName(e);if(r===`write_file`)return presentWriteFileTool(e,t,n);if(n?.isSubagent===!0){let n=isSelfModificationAgent(e)?agentDisplayName(e):agentTaskLabel(agentDisplayName(e));return{title:`${DELEGATE_VERB} ${n}`,doneTitle:`Delegated ${n}`,subtitle:salientArg(t,`message`)??``,summarizeResult:()=>void 0}}if(r===REPLY_TOOL_NAME)return{title:REPLY_TITLE,subtitle:``,summarizeResult:()=>void 0};let i=BUILTIN_TOOL_COPY[r];if(i!==void 0){let e=salientArg(t,i.argKey)??i.extractItem?.(t);if(e!==void 0)return{title:`${i.verb} ${e}`,doneTitle:`${i.pastVerb} ${e}`,subtitle:``,summarizeResult:()=>void 0,group:{verb:i.verb,pastVerb:i.pastVerb,singularNoun:i.singularNoun,pluralNoun:i.pluralNoun,item:e}}}if(n?.label!==void 0){let e={title:n.label,subtitle:``,summarizeResult:summarizeToolResult};return n.completeLabel===void 0?e:{...e,doneTitle:n.completeLabel}}return{title:toolDisplayTitle(e),subtitle:summarizeToolArgs(t),summarizeResult:summarizeToolResult}}function toolDisplayTitle(e){return displayTitle(toolBaseName(e))}const SELF_MODIFICATION_AGENT_NAME=`self-modification__agent`,AGENT_DISPLAY_NAMES=new Map([[`agent`,`subagent`],[SELF_MODIFICATION_AGENT_NAME,`agent editor`]]);function isSelfModificationAgent(e){return toolBaseName(e)===SELF_MODIFICATION_AGENT_NAME}function agentTaskLabel(e){return/^subagent(?::\d+)?$/u.test(e)||e.startsWith(`agent editor`)?e:`subagent(${e})`}function agentDisplayName(e){let t=toolBaseName(e);return AGENT_DISPLAY_NAMES.get(t)??displayName(t.replace(/(?<=.)__agent$/u,``))}function presentPreparingTool(e,t){let n=toolBaseName(e);return n===REPLY_TOOL_NAME?{title:REPLY_TITLE,subtitle:``,summarizeResult:()=>void 0}:t?.isSubagent===!0?{title:`${DELEGATE_VERB} ${agentTaskLabel(agentDisplayName(e))} …`,subtitle:``,summarizeResult:()=>void 0}:{title:`${(n===`write_file`?WRITE_FILE_VERB:BUILTIN_TOOL_COPY[n]?.verb)??toolDisplayTitle(e)} …`,subtitle:``,summarizeResult:()=>void 0}}function isPanelRoutedTool(e){return toolBaseName(e)===`ask_question`}function toolBaseName(e){return e.split(/[.:/]/u).at(-1)??e}function webSearchActionArg(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e.action;if(typeof t!=`object`||!t||Array.isArray(t))return;let n=t,r=n.queries;if(Array.isArray(r)){let e=r.filter(e=>typeof e==`string`).map(salientLine).filter(e=>e!==void 0).join(`, `);if(e.length>0)return e}for(let e of[`query`,`url`,`pattern`]){let t=n[e];if(typeof t==`string`){let e=salientLine(t);if(e!==void 0)return e}}}function salientArg(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return;let n=e[t];if(typeof n==`string`)return salientLine(n)}function salientLine(e){let t=stripTerminalControls(e).split(/\r?\n/u).find(e=>e.trim().length>0)?.trim()??``;return t.length>0?t:void 0}export{SELF_MODIFICATION_AGENT_NAME,agentDisplayName,agentTaskLabel,isPanelRoutedTool,isSelfModificationAgent,presentPreparingTool,presentTool,readWriteFileInput,toolBaseName,toolDisplayTitle};
@@ -1,9 +1,10 @@
1
- /** Pure pieces of the transcript projection: tool rows, task lines, and agent steps. */
2
1
  import type { TaskEntry } from "./task-activity.js";
3
- import type { ConversationState, ConversationTaskCall, ConversationTask } from "#client/conversation-state.js";
4
- import type { EveAuthorizationPart, EveDynamicToolPart, EveMessage, EveMessagePart } from "#client/message-reducer-types.js";
2
+ import type { ConversationState } from "#client/conversation-state.js";
3
+ import type { EveInteractionPart, EveToolPart, EveMessage, EveMessagePart } from "#client/message-types.js";
5
4
  import type { Block, ToolStatus } from "./blocks.js";
6
5
  import { type ToolPresentationContext } from "./tool-presentation.js";
6
+ import type { SignInChallenge } from "#protocol/session-events/families/interaction.js";
7
+ import type { SessionView, CallRow, TaskRow } from "#protocol/session-projection/tables.js";
7
8
  export type ToolState = {
8
9
  readonly status: ToolStatus;
9
10
  readonly output?: unknown;
@@ -38,17 +39,17 @@ export interface AgentActivity {
38
39
  step?: string;
39
40
  pending: boolean;
40
41
  }
41
- export declare function taskNeedsApproval(conversation: ConversationState, task: ConversationTask): boolean;
42
+ export declare function taskNeedsApproval(conversation: ConversationState, task: TaskRow): boolean;
42
43
  export declare function startLine(record: TaskRecord): Block;
43
44
  /** A later call that reached a working task: a message to it, not a new delegation. */
44
- export declare function followUpLine(record: TaskRecord, part: EveDynamicToolPart, label: string | undefined): Block;
45
- export declare function nestedTaskRecord(callId: string, part: EveDynamicToolPart, task: ConversationTask, block: Block): TaskRecord;
46
- /** The shared tool call state, in the transcript's vocabulary. */
47
- export declare function toolState(part: EveDynamicToolPart, conversation: ConversationState, working: boolean): ToolState;
45
+ export declare function followUpLine(record: TaskRecord, part: EveToolPart, label: string | undefined): Block;
46
+ export declare function nestedTaskRecord(callId: string, part: EveToolPart, task: TaskRow, block: Block): TaskRecord;
47
+ /** The call's row, in the transcript's vocabulary. */
48
+ export declare function toolState(part: EveToolPart, view: SessionView): ToolState;
48
49
  export declare function isActive(status: ToolStatus): boolean;
49
- export declare function toolBlock(part: EveDynamicToolPart, state: ToolState, context: ToolPresentationContext | undefined): Omit<Block, "kind">;
50
+ export declare function toolBlock(part: EveToolPart, state: ToolState, context: ToolPresentationContext | undefined): Omit<Block, "kind">;
50
51
  /** A task's end line: how long it took and what it did, or why it failed, or that it stopped. */
51
- export declare function endLine(record: TaskRecord, call: Pick<ConversationTaskCall, "status" | "output" | "error">, childTools: readonly Block[] | undefined,
52
+ export declare function endLine(record: TaskRecord, call: Pick<CallRow, "status" | "outcome" | "output" | "error">, childTools: readonly Block[] | undefined,
52
53
  /** The theme's `·`, which separates the line's facts. */
53
54
  separator: string): Block;
54
55
  export declare function labelContext(label: string | undefined): ToolPresentationContext | undefined;
@@ -65,19 +66,18 @@ export type SubagentStep = {
65
66
  };
66
67
  /** Pairs each child reply with the reasoning that preceded it. */
67
68
  export declare function subagentSteps(messages: readonly EveMessage[]): SubagentStep[];
68
- export declare function childToolCallIds(conversation: ConversationState): Set<string>;
69
69
  /** A tool call, including one whose input is still streaming and so has no kind yet. */
70
- export declare function isToolCallRow(part: EveMessagePart): part is EveDynamicToolPart;
70
+ export declare function isToolCallRow(part: EveMessagePart): part is EveToolPart;
71
71
  /** Every call that started or reached a task, by call ID. */
72
72
  export declare function taskCallsById(conversation: ConversationState): Map<string, {
73
- task: ConversationTask;
74
- call: ConversationTaskCall;
73
+ task: TaskRow;
74
+ call: CallRow;
75
75
  }>;
76
76
  /** Tools a step runs in parallel settle together, so a finished one waits for its siblings. */
77
- export declare function activeToolSteps(states: ReadonlyMap<EveDynamicToolPart, ToolState>): Set<number | undefined>;
77
+ export declare function activeToolSteps(states: ReadonlyMap<EveToolPart, ToolState>): Set<number | undefined>;
78
78
  export declare function userText(message: EveMessage): string;
79
79
  export declare function authorizationTerminalMessage(state: string): string | undefined;
80
- export declare function formatAuthorization(part: EveAuthorizationPart, terminalMessage: string | undefined): {
80
+ export declare function formatAuthorization(part: EveInteractionPart, challenge: SignInChallenge, terminalMessage: string | undefined): {
81
81
  body: string;
82
82
  link?: string;
83
83
  };
@@ -1,3 +1,3 @@
1
- import{agentDisplayName,agentTaskLabel,presentPreparingTool,presentTool,toolDisplayTitle}from"./tool-presentation.js";import{isTerminalToolCallPart}from"./terminal-tool-part.js";import{formatTurnDuration}from"./stream-format.js";import{summarizeChildTools}from"./tool-block-groups.js";import{stripTerminalControls}from"#cli/ui/terminal-text.js";import{agentToolSession}from"#client/conversation-state.js";import{toolCallState}from"#client/tool-call-state.js";function taskNeedsApproval(e,t){if(Object.values(e.inputs).some(e=>e.taskId===t.taskId&&e.status===`open`&&e.request.kind===`tool-approval`))return!0;let n=agentToolSession(e,t),r=n?.observation.status===`not-followed`?void 0:n?.observation.conversation;return r!==void 0&&Object.values(r.inputs).some(e=>e.status===`open`&&e.request.kind===`tool-approval`)}function startLine(e){let t=presentTool(e.toolName,e.input,{...labelContext(e.label),isSubagent:e.kind===`agent`});return{kind:`task`,taskKind:e.kind,title:e.kind===`agent`?`Delegate ${agentTaskLabel(e.name)}`:e.name,subtitle:stripTerminalControls(t.subtitle),live:!1}}function followUpLine(e,t,n){if(e.kind===`agent`)return{kind:`task`,taskKind:`agent`,title:`Message ${agentTaskLabel(e.name)}`,subtitle:agentTaskSummary(t.input),live:!1};let r=presentTool(t.toolName,t.input,labelContext(n));return{kind:`task`,taskKind:`tool`,title:stripTerminalControls(r.title),subtitle:stripTerminalControls(r.subtitle),live:!1}}function nestedTaskRecord(e,t,n,r){let i=n.kind===`agent`?agentDisplayName(stripTerminalControls(t.toolName)):stripTerminalControls(toolDisplayTitle(t.toolName));return{callId:e,taskId:n.taskId,callIds:[t.toolCallId],kind:n.kind,name:i,toolName:t.toolName,input:t.input,label:void 0,purpose:n.kind===`agent`?agentTaskSummary(t.input):r.subtitle||(r.title===i?void 0:r.title),startedAtMs:Date.now(),ended:!1}}function toolState(e,t,n){let r=toolCallState(t,e.toolCallId,{streaming:n});if(r===void 0)return{status:`running`};switch(r.status){case`running`:return r.output===void 0?{status:`running`}:{status:`running`,output:r.output};case`awaiting-input`:return{status:`approval`};case`completed`:return{status:`done`,output:r.output};case`rejected`:return{status:`denied`,errorText:r.errorText??`Denied by user.`};case`interrupted`:return{status:`error`,errorText:`interrupted`};case`cancelled`:case`failed`:return{status:`error`,errorText:r.errorText}}}function isActive(e){return e===`running`||e===`approval`}function toolBlock(e,t,n){let{toolName:r,input:i}=e,a=e.state===`input-streaming`?presentPreparingTool(r,n):presentTool(r,i,n),o={title:stripTerminalControls(a.title),subtitle:stripTerminalControls(a.subtitle),status:t.status,toolInput:i,toolName:r,toolGroup:a.group};return a.doneTitle!==void 0&&(o.doneTitle=stripTerminalControls(a.doneTitle)),a.detail!==void 0&&(o.detailLines=a.detail,o.keepDetailWhenDone=a.keepDetailWhenDone===!0),t.output===void 0?t.errorText!==void 0&&(o.result=stripTerminalControls(t.errorText)):(o.result=a.summarizeResult(t.output),o.toolOutput=t.output),o}function endLine(e,t,n,r){let i=` ${r} `,a={id:`task:${e.callId}:end`,kind:`task`,taskKind:e.kind,title:e.kind===`agent`?agentTaskLabel(e.name):e.name,live:!1};switch(t.status){case`completed`:{let r=`finished in ${formatTurnDuration((e.settledAtMs??Date.now())-e.startedAtMs)}`,o=e.kind===`agent`?summarizeChildTools(n??[]):presentTool(e.toolName,e.input,labelContext(e.label)).summarizeResult(t.output);a.status=`done`,a.body=o===void 0||o.length===0?r:`${r}${i}${o}`;break}case`failed`:{let e=firstLine(stripTerminalControls(t.error?.message??``));a.status=`error`,a.body=e===void 0?`failed`:`failed${i}${e}`;break}default:a.status=`denied`,a.body=`stopped`}return a}function labelContext(e){return e===void 0?void 0:{label:e}}function agentTaskSummary(e){if(typeof e!=`object`||!e)return``;let t=Reflect.get(e,`message`);return typeof t==`string`?firstLine(stripTerminalControls(t))??``:``}function firstLine(e){return e.split(/\r?\n/u).find(e=>e.trim().length>0)?.trim()}function subagentSteps(e){let t=[],n=0;for(let r of e){let e=``;for(let[i,a]of r.parts.entries())n+=1,a.type===`reasoning`&&(e+=a.text),a.type===`text`&&(t.push({key:a.id??`${r.id}:${i}`,order:n,reasoning:e,message:a.text,finalized:a.state===`done`}),e=``),a.type===`dynamic-tool`&&e&&(t.push({key:`${r.id}:${i}:reasoning`,order:n-.5,reasoning:e,message:``,finalized:!0}),e=``);e&&t.push({key:`${r.id}:reasoning:${r.parts.length}`,order:n,reasoning:e,message:``,finalized:r.metadata?.status===`complete`})}return t.map(e=>({...e,reasoning:stripTerminalControls(e.reasoning).trim(),message:stripTerminalControls(e.message).trim()})).filter(e=>e.reasoning.length>0||e.message.length>0)}function childToolCallIds(e){let t=new Set;for(let n of Object.values(e.agents))if(n.observation.status!==`not-followed`)for(let e of n.observation.conversation?.messages??[])for(let n of e.parts)n.type===`dynamic-tool`&&t.add(n.toolCallId);return t}function isToolCallRow(e){return e.type===`dynamic-tool`&&(e.state===`input-streaming`||isTerminalToolCallPart(e))}function taskCallsById(e){let t=new Map;for(let n of Object.values(e.tasks))for(let e of Object.values(n.calls))t.set(e.callId,{task:n,call:e});return t}function activeToolSteps(e){let t=new Set;for(let[n,r]of e)isActive(r.status)&&t.add(n.stepIndex);return t}function userText(e){return e.parts.map(e=>e.type===`text`?e.text:e.type===`file`?`[file${e.filename===void 0?``:`: ${e.filename}`}]`:``).filter(e=>e.length>0).join(`
2
- `)}function authorizationTerminalMessage(e){switch(e){case`authorized`:return`Authorization complete`;case`declined`:return`Authorization declined`;case`failed`:return`Authorization failed`;case`timed-out`:return`Authorization timed out`;default:return}}function formatAuthorization(e,t){let n=[],r;if(t!==void 0)n.push(t);else{let t=stripTerminalControls(e.description);t.length>0&&n.push(t);let i=e.authorization;i?.url&&(r=stripTerminalControls(i.url),n.push(`Open to authorize:`,r)),i?.userCode&&n.push(`Code: ${stripTerminalControls(i.userCode)}`),i?.expiresAt&&n.push(`Expires: ${stripTerminalControls(i.expiresAt)}`),i?.instructions&&n.push(stripTerminalControls(i.instructions))}if(e.state===`completed`&&e.reason!==void 0){let t=stripTerminalControls(e.reason);t.length>0&&n.push(`Reason: ${t}`)}let i=n.join(`
3
- `);return r===void 0?{body:i}:{body:i,link:r}}function writeExistedFlag(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e.existed;return typeof t==`boolean`?t:void 0}export{activeToolSteps,agentTaskSummary,authorizationTerminalMessage,childToolCallIds,endLine,firstLine,followUpLine,formatAuthorization,isActive,isToolCallRow,labelContext,nestedTaskRecord,startLine,subagentSteps,taskCallsById,taskNeedsApproval,toolBlock,toolState,userText,writeExistedFlag};
1
+ import{agentDisplayName,agentTaskLabel,presentPreparingTool,presentTool,toolDisplayTitle}from"./tool-presentation.js";import{isTerminalToolCallPart}from"./terminal-tool-part.js";import{formatTurnDuration}from"./stream-format.js";import{summarizeChildTools}from"./tool-block-groups.js";import{interactionOwner}from"#protocol/session-projection/selectors.js";import{sessionTables}from"#protocol/session-projection/session-view.js";import{stripTerminalControls}from"#cli/ui/terminal-text.js";import{agentToolSession}from"#client/conversation-state.js";function taskNeedsApproval(e,t){if(Object.values(sessionTables(e.view).interactions).some(n=>interactionOwner(sessionTables(e.view),n).taskId===t.taskId&&n.status===`open`&&n.request.kind===`approval`))return!0;let n=agentToolSession(e,t),r=n?.observation.status===`not-followed`?void 0:n?.observation.conversation;return r!==void 0&&Object.values(sessionTables(r.view).interactions).some(e=>e.status===`open`&&e.request.kind===`approval`)}function startLine(e){let t=presentTool(e.toolName,e.input,{...labelContext(e.label),isSubagent:e.kind===`agent`});return{kind:`task`,taskKind:e.kind,title:e.kind===`agent`?`Delegate ${agentTaskLabel(e.name)}`:e.name,subtitle:stripTerminalControls(t.subtitle),live:!1}}function followUpLine(e,t,n){if(e.kind===`agent`)return{kind:`task`,taskKind:`agent`,title:`Message ${agentTaskLabel(e.name)}`,subtitle:agentTaskSummary(t.input),live:!1};let r=presentTool(t.name,t.input,labelContext(n));return{kind:`task`,taskKind:`tool`,title:stripTerminalControls(r.title),subtitle:stripTerminalControls(r.subtitle),live:!1}}function nestedTaskRecord(e,t,n,r){let i=n.kind===`agent`?agentDisplayName(stripTerminalControls(t.name)):stripTerminalControls(toolDisplayTitle(t.name));return{callId:e,taskId:n.taskId,callIds:[t.callId],kind:n.kind===`agent`?`agent`:`tool`,name:i,toolName:t.name,input:t.input,label:void 0,purpose:n.kind===`agent`?agentTaskSummary(t.input):r.subtitle||(r.title===i?void 0:r.title),startedAtMs:Date.now(),ended:!1}}function toolState(e,t){let n=e.error?.message;switch(e.state){case`completed`:return{status:`done`,output:e.output};case`rejected`:return t.calls[e.callId]?.taskId===void 0?{status:`denied`,errorText:n??`Denied by user.`}:{status:`error`,errorText:n};case`cancelled`:case`failed`:return{status:`error`,errorText:n};case`approval`:return{status:`approval`};default:return{status:`running`,output:e.output}}}function isActive(e){return e===`running`||e===`approval`}function toolBlock(e,t,n){let{name:r,input:i}=e,a=e.state===`streaming`?presentPreparingTool(r,n):presentTool(r,i,n),o={title:stripTerminalControls(a.title),subtitle:stripTerminalControls(a.subtitle),status:t.status,toolInput:i,toolName:r,toolGroup:a.group};return a.doneTitle!==void 0&&(o.doneTitle=stripTerminalControls(a.doneTitle)),a.detail!==void 0&&(o.detailLines=a.detail,o.keepDetailWhenDone=a.keepDetailWhenDone===!0),t.output===void 0?t.errorText!==void 0&&(o.result=stripTerminalControls(t.errorText)):(o.result=a.summarizeResult(t.output),o.toolOutput=t.output),o}function endLine(e,t,n,r){let i=` ${r} `,a={id:`task:${e.callId}:end`,kind:`task`,taskKind:e.kind,title:e.kind===`agent`?agentTaskLabel(e.name):e.name,live:!1};switch(t.outcome){case`completed`:{let r=`finished in ${formatTurnDuration((e.settledAtMs??Date.now())-e.startedAtMs)}`,o=e.kind===`agent`?summarizeChildTools(n??[]):presentTool(e.toolName,e.input,labelContext(e.label)).summarizeResult(t.output);a.status=`done`,a.body=o===void 0||o.length===0?r:`${r}${i}${o}`;break}case`failed`:case`rejected`:case`abandoned`:{let e=firstLine(stripTerminalControls(t.error?.message??``));a.status=`error`,a.body=e===void 0?`failed`:`failed${i}${e}`;break}default:a.status=`denied`,a.body=`stopped`}return a}function labelContext(e){return e===void 0?void 0:{label:e}}function agentTaskSummary(e){if(typeof e!=`object`||!e)return``;let t=Reflect.get(e,`message`);return typeof t==`string`?firstLine(stripTerminalControls(t))??``:``}function firstLine(e){return e.split(/\r?\n/u).find(e=>e.trim().length>0)?.trim()}function subagentSteps(e){let t=[],n=0;for(let r of e){let e=``;for(let[i,a]of r.parts.entries())n+=1,a.type===`reasoning`&&(e+=a.text),a.type===`text`&&(t.push({key:a.id??`${r.id}:${i}`,order:n,reasoning:e,message:a.text,finalized:a.state===`done`}),e=``),a.type===`tool`&&e&&(t.push({key:`${r.id}:${i}:reasoning`,order:n-.5,reasoning:e,message:``,finalized:!0}),e=``);e&&t.push({key:`${r.id}:reasoning:${r.parts.length}`,order:n,reasoning:e,message:``,finalized:r.metadata?.status===`complete`})}return t.map(e=>({...e,reasoning:stripTerminalControls(e.reasoning).trim(),message:stripTerminalControls(e.message).trim()})).filter(e=>e.reasoning.length>0||e.message.length>0)}function isToolCallRow(e){return e.type===`tool`&&(e.state===`streaming`||isTerminalToolCallPart(e))}function taskCallsById(e){let t=new Map;for(let n of Object.values(sessionTables(e.view).calls)){let r=n.taskId===void 0?void 0:sessionTables(e.view).tasks[n.taskId];r!==void 0&&t.set(n.callId,{task:r,call:n})}return t}function activeToolSteps(e){let t=new Set;for(let[n,r]of e)isActive(r.status)&&t.add(n.stepIndex);return t}function userText(e){return e.parts.map(e=>e.type===`text`?e.text:e.type===`file`?`[file${e.filename===void 0?``:`: ${e.filename}`}]`:``).filter(e=>e.length>0).join(`
2
+ `)}function authorizationTerminalMessage(e){switch(e){case`accepted`:return`Authorization complete`;case`declined`:return`Authorization declined`;case`failed`:return`Authorization failed`;case`expired`:return`Authorization timed out`;case`withdrawn`:case`interrupted`:case`abandoned`:return`Authorization cancelled`;default:return}}function formatAuthorization(e,t,n){let r=[],i;if(n!==void 0)r.push(n);else{let n=stripTerminalControls(e.request.prompt);n.length>0&&r.push(n),t?.url&&(i=stripTerminalControls(t.url),r.push(`Open to authorize:`,i)),t?.userCode&&r.push(`Code: ${stripTerminalControls(t.userCode)}`),t?.expiresAt&&r.push(`Expires: ${stripTerminalControls(t.expiresAt)}`),t?.instructions&&r.push(stripTerminalControls(t.instructions))}if(e.status===`settled`&&e.reason!==void 0){let t=stripTerminalControls(e.reason);t.length>0&&r.push(`Reason: ${t}`)}let a=r.join(`
3
+ `);return i===void 0?{body:a}:{body:a,link:i}}function writeExistedFlag(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t=e.existed;return typeof t==`boolean`?t:void 0}export{activeToolSteps,agentTaskSummary,authorizationTerminalMessage,endLine,firstLine,followUpLine,formatAuthorization,isActive,isToolCallRow,labelContext,nestedTaskRecord,startLine,subagentSteps,taskCallsById,taskNeedsApproval,toolBlock,toolState,userText,writeExistedFlag};
@@ -15,8 +15,6 @@ export interface TranscriptOptions {
15
15
  /** Separates a task end line's facts; the theme's `·`. */
16
16
  readonly dot?: string;
17
17
  }
18
- /** How long a settled agent task waits for its own last events before writing its end line. */
19
- export declare const TASK_END_GRACE_MS = 2000;
20
18
  /**
21
19
  * Projects one session's conversation into transcript blocks. Each block's
22
20
  * `live` flag says whether its part can still change; the renderer commits a
@@ -32,8 +30,6 @@ export declare class ConversationTranscript {
32
30
  reset(): void;
33
31
  /** The tasks between their start and end lines as of the last projection, in start order. */
34
32
  get tasks(): readonly TaskEntry[];
35
- /** Whether a settled agent task is waiting for its own last events. */
36
- get finishing(): boolean;
37
33
  /** How input requests name the task that asked: as its task lines do. */
38
34
  taskLabel(conversation: ConversationState, taskId: string): string | undefined;
39
35
  /** End lines for the tasks still working when their session ends; they read as stopped. */
@@ -1 +1 @@
1
- import{FileContentCache}from"./file-content-cache.js";import{agentDisplayName,agentTaskLabel,isPanelRoutedTool,readWriteFileInput,toolBaseName}from"./tool-presentation.js";import{isTerminalToolCallPart}from"./terminal-tool-part.js";import{activeToolSteps,authorizationTerminalMessage,childToolCallIds,endLine,firstLine,followUpLine,formatAuthorization,isActive,isToolCallRow,nestedTaskRecord,startLine,subagentSteps,taskCallsById,taskNeedsApproval,toolBlock,toolState,userText,writeExistedFlag}from"./transcript-parts.js";import{signInLabel,waitingLabel}from"./task-activity.js";import{TaskRecords}from"./task-records.js";import{stripTerminalControls}from"#cli/ui/terminal-text.js";import{isTaskControlTool}from"#protocol/task-tools.js";import{agentCallTurns,agentToolSession,conversationAuthorizations,isAgentCallContentPending}from"#client/conversation-state.js";import{authorizationKey}from"#client/session-utils.js";const TASK_END_GRACE_MS=2e3;var ConversationTranscript=class{#e=new Map;#t=new FileContentCache;#n=new Map;#r=new Map;#i=new Set;#a=new TaskRecords;#o=new Map;#s=[];#c=new Set;#l=[];reset(){this.#e=new Map,this.#t.clear(),this.#n.clear(),this.#r=new Map,this.#i.clear(),this.#a.clear(),this.#o.clear(),this.#s=[],this.#c.clear(),this.#l=[]}get tasks(){return this.#l}get finishing(){return this.#l.some(e=>e.finishing===!0)}taskLabel(e,t){let n=e.tasks[t];if(n===void 0)return;let r=Object.values(n.calls),i=r.findLast(e=>e.status===`working`)??r.at(-1),a=i===void 0?void 0:this.#a.get(i.callId);return a===void 0?n.kind===`agent`?agentTaskLabel(agentDisplayName(stripTerminalControls(n.name))):stripTerminalControls(n.name):a.kind===`agent`?agentTaskLabel(a.name):a.name}stopWorking(e){let t=[];for(let n of this.#a.values())n.ended||(n.ended=!0,t.push(endLine(n,{status:`cancelled`},void 0,e.dot??`·`)));return this.#l=[],t}project(e,t){let{conversation:n,working:r}=e,i=Date.now(),a=[];this.#h(n.messages);let o=childToolCallIds(n),s=taskCallsById(n),c=new Set(e.data.withdrawnCallIds),l=e.data.toolLabels;for(let e of n.messages){if(e.role===`user`){let t=this.#g(e);t!==void 0&&a.push(t);continue}let u=e.parts.filter(e=>isToolCallRow(e)&&(e.state!==`input-streaming`||r)&&!isTaskControlTool(e.toolName)&&!c.has(e.toolCallId)&&e.toolMetadata?.eve?.inputRequest?.kind!==`session-limit`&&!s.has(e.toolCallId)&&!o.has(e.toolCallId)&&!isPanelRoutedTool(e.toolName)),d=new Map(u.map(e=>[e,toolState(e,n,r)])),f=activeToolSteps(d);for(let[n,o]of e.parts.entries())if(o.type===`text`||o.type===`reasoning`){let i=this.#_(e,n,t,r);i!==void 0&&a.push(i)}else if(o.type===`authorization`)t.connectionAuth!==`hidden`&&a.push(this.#v(o));else if(o.type===`dynamic-tool`){let e=s.get(o.toolCallId);if(e!==void 0){let n=this.#d(o,e.task,l,t,i);n!==void 0&&a.push(n);continue}let n=d.get(o);if(n===void 0||t.tools===`hidden`)continue;let r=l[o.toolCallId];a.push(this.#y(o,n,f.has(o.stepIndex),r,t))}let p=e.metadata?.turnId;p!==void 0&&n.turns[p]?.status===`cancelled`&&a.push(this.#m(`cancelled:${p}`,[],()=>({kind:`notice`,body:`Cancelled.`,live:!1})))}for(let[n,r]of e.failures.entries())a.push(this.#b(n,r,t));let u=this.#u(a),d=this.#f(e,s,t,i);for(let e of d){let t=u.slice(-8).map(e=>e.id);this.#s.push({block:e,after:t}),this.#c.add(e.id),u.push(e)}return u}#u(e){let t=[...e];for(let{block:e,after:n}of this.#s){let r=t.length;for(let e=n.length-1;e>=0;--e){let i=t.findIndex(t=>t.id===n[e]);if(i!==-1){r=i+1;break}}t.splice(r,0,e)}return t}#d(e,t,n,r,i){if(!(t.kind===`agent`?r.subagents!==`hidden`:r.tools!==`hidden`))return;let a=n[e.toolCallId]?.start,o=this.#a.record(e,t,a,i);return o.callId===e.toolCallId?this.#m(`task:${o.callId}:start`,[o],()=>startLine(o)):this.#m(`task:${e.toolCallId}:message`,[o],()=>followUpLine(o,e,a))}#f(e,t,n,r){let{conversation:i,working:a}=e,o=Object.values(i.turns).at(-1),s=!a&&(e.data.sessionFailed||o?.status===`cancelled`||o?.status===`failed`),c=[],l=[],u={remaining:128};for(let e of this.#a.values()){if(e.ended)continue;let o=t.get(e.callId)?.task;if(o===void 0)continue;let d=e.callIds.flatMap(e=>{let n=t.get(e)?.call;return n===void 0?[]:[n]}),f=d.at(-1),p=this.#p(e,o,d,i,n,u);if(n.subagents===`full`)for(let e of p.rows)this.#c.has(e.id)||c.push(e);let m=d.every(e=>e.status!==`working`);m&&(e.settledAtMs??=r);let h=m&&p.pending&&a&&r-(e.settledAtMs??r)<2e3;if(m&&!h||!m&&s){e.ended=!0,c.push(endLine(e,m?f:{status:`cancelled`},p.tools,n.dot??`·`));continue}let g={callId:e.callId,kind:e.kind,name:e.name,toolName:e.toolName,input:e.input,label:e.label,purpose:e.purpose,children:p.children,omittedTasks:p.omittedTasks,omittedAttention:p.omittedAttention,startedAtMs:e.startedAtMs,childTools:new Map(p.tools.map(e=>[e.id,e]))};p.step!==void 0&&(g.step=p.step),h&&(g.finishing=!0),l.push(g)}return this.#l=l,c}#p(e,t,n,r,i,a,o=0){let s=t.kind===`agent`?agentToolSession(r,t):void 0,c=s===void 0||s.observation.status===`not-followed`?void 0:s.observation.conversation;if(s===void 0||c===void 0)return{tools:[],rows:[],pending:!1};let l=s.observation.status===`following`&&n.some(e=>isAgentCallContentPending(t,e,c)),u=agentCallTurns(t,c),d=new Set(n.flatMap(e=>u.get(e.callId)??[])),f=c.messages.filter(e=>e.role===`assistant`&&e.metadata?.turnId!==void 0&&d.has(e.metadata.turnId)),p=n.some(e=>e.status===`working`)||l,m=taskCallsById(c),h=[],g=[],_=[],v=new Set,y=0,b=!1,x=0;for(let t of f)for(let n of t.parts){if(x+=1,!isToolCallRow(n)||isTaskControlTool(n.toolName))continue;let t=m.get(n.toolCallId),r=toolState(n,c,p),s=`subagent:${e.callId}:tool:${n.toolCallId}`,l=this.#m(s,[n,r.status,e.name],()=>{let a=this.#x(n.toolCallId,n,r,i,{isSubagent:t?.task.kind===`agent`});return{...toolBlock(n,r,a),kind:`subagent-tool`,subagentCallId:e.callId,agentName:e.name,depth:1,live:!1}}),u=t?.task.kind===`agent`?i.subagents!==`hidden`:i.tools!==`hidden`;if(t?.call.status===`working`&&u){if(v.has(t.task.taskId))continue;if(v.add(t.task.taskId),o>=8||a.remaining<=0){y+=1,b||=r.status===`approval`||taskNeedsApproval(c,t.task);continue}--a.remaining;let s=`${e.callId}/${n.toolCallId}`,u=this.#o.get(s);u===void 0&&(u=nestedTaskRecord(s,n,t.task,l),this.#o.set(s,u));let d=this.#p(u,t.task,Object.values(t.task.calls).filter(e=>e.status===`working`),c,i,a,o+1);_.push({...u,step:d.step,children:d.children,omittedTasks:d.omittedTasks,omittedAttention:d.omittedAttention,childTools:new Map(d.tools.map(e=>[e.id,e]))})}else g.push(l);h.push({order:x,block:l,settled:!isActive(r.status)})}let S=subagentSteps(f);for(let t of S){if(!t.finalized)continue;let n=`subagent:${e.callId}:step:${t.key}`,r=this.#m(n,[t.reasoning,t.message,e.name],()=>{let n={kind:`subagent-step`,subagentCallId:e.callId,agentName:e.name,depth:1,body:t.message,live:!1};return t.reasoning.length>0&&(n.reasoning=t.reasoning),n});h.push({order:t.order,block:r,settled:!0})}let C=h.filter(e=>e.settled).sort((e,t)=>e.order-t.order).map(e=>e.block),w=S.at(-1),T={tools:g,rows:C,children:_,omittedTasks:y,omittedAttention:b,pending:l};return w!==void 0&&(T.step=firstLine(w.message)??`Thinking`),T}#m(e,t,n){let r=this.#e.get(e);if(r!==void 0&&sameKey(r.key,t))return r.block;let i={...n(),id:e};return this.#e.set(e,{key:t,block:i}),i}#h(e){let t=new Map;for(let n of e)n.role===`user`&&n.metadata?.optimistic===!0&&t.set(n.id,userText(n));let n=[...this.#r].filter(([e])=>!t.has(e)),r=new Set(t.values());for(let t of e){if(t.role!==`user`||t.metadata?.optimistic===!0||this.#i.has(t.id))continue;let e=userText(t),i=n.findIndex(([,t])=>t===e);i===-1&&r.has(e)||(this.#i.add(t.id),i!==-1&&(this.#n.set(t.id,n[i][0]),n.splice(i,1)))}this.#r=t}#g(e){if(e.metadata?.optimistic!==!0&&!this.#i.has(e.id))return;let t=stripTerminalControls(userText(e));if(t.trim().length===0)return;let n=`user:${this.#n.get(e.id)??e.id}`;return this.#m(n,[t],()=>({kind:`user`,body:t,live:!1}))}#_(e,t,n,r){let i=e.parts[t];if(i?.type!==`text`&&i?.type!==`reasoning`||i.type===`reasoning`&&n.reasoning!==`full`)return;let a=stripTerminalControls(i.text).trim();if(a.length===0)return;let o=i.state===`streaming`&&r,s=`${i.type}:${i.id??`${e.id}:${t}`}`;return this.#m(s,[a,o],()=>i.type===`text`?{kind:`assistant`,body:a,live:o}:{kind:`reasoning`,body:a,collapsed:!1,live:o})}#v(e){return this.#m(`connection-auth:${authorizationKey(e)}`,[e],()=>{let t=e.state===`completed`?e.outcome:e.state,n=authorizationTerminalMessage(t);return{kind:`connection-auth`,title:`${stripTerminalControls(e.displayName)} · authorization · ${t}`,...formatAuthorization(e,n),preformatted:!0,live:n===void 0}})}#y(e,t,n,r,i){let a=n||isActive(t.status);return this.#m(`tool:${e.toolCallId}`,[e,t.status,a,i.tools,i.subagentNames,r],()=>{let n=this.#x(e.toolCallId,e,t,i,{label:r?.start,completeLabel:r?.complete});return{...toolBlock(e,t,n),kind:`tool`,live:a,expanded:i.tools===`full`}})}#b(e,t,n){let{message:r,hint:i,detail:a}=t;return this.#m(`failure:${e}`,[r,i,a],()=>{let e={kind:`error`,title:`Error`,body:stripTerminalControls(r),live:!1};return i!==void 0&&(e.hint=stripTerminalControls(i)),a!==void 0&&(e.detail=n.diagnosticsPath===void 0?stripTerminalControls(a):`details: ${n.diagnosticsPath}`),e})}#x(e,t,n,r,i={}){n.output!==void 0&&this.#t.observeRead(n.output);let a={};(i.isSubagent===!0||r.subagentNames?.includes(toolBaseName(t.toolName))===!0)&&(a.isSubagent=!0),i.label!==void 0&&(a.label=i.label),i.completeLabel!==void 0&&(a.completeLabel=i.completeLabel);let o=readWriteFileInput(t.toolName,t.input);if(o!==void 0){let t=this.#t.observeWrite({...o,callId:e});t!==void 0&&(a.previousContent=t);let r=writeExistedFlag(n.output);r!==void 0&&(a.existed=r)}return Object.keys(a).length>0?a:void 0}};function turnActivity(e,t){let{conversation:n}=e,r=n.activeTurnId===void 0?void 0:n.turns[n.activeTurnId],i=e.conversation.messages.findLast(e=>e.role===`assistant`),a=taskCallsById(n);if(i?.parts.some(e=>isTerminalToolCallPart(e)&&!isTaskControlTool(e.toolName)&&!a.has(e.toolCallId)&&(e.state===`input-available`||e.state===`approval-responded`))===!0)return`Running`;if(r===void 0||r.waiting===!0){let e=conversationAuthorizations(n).filter(e=>e.state===`required`&&e.awaitsCallback===!0);if(e.length>0)return signInLabel(e.map(e=>e.displayName))}if(r?.waiting===!0&&t.length>0)return waitingLabel(t);if(i===void 0)return`Thinking`;let o=i.parts.findLast(e=>e.type!==`step-start`);return o?.type===`text`&&o.state===`streaming`||o?.type===`dynamic-tool`&&o.state===`input-streaming`?`Generating`:`Thinking`}function sameKey(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}export{ConversationTranscript,TASK_END_GRACE_MS,turnActivity};
1
+ import{FileContentCache}from"./file-content-cache.js";import{agentDisplayName,agentTaskLabel,isPanelRoutedTool,readWriteFileInput,toolBaseName}from"./tool-presentation.js";import{signInLabel,waitingLabel}from"./task-activity.js";import{activeToolSteps,authorizationTerminalMessage,endLine,firstLine,followUpLine,formatAuthorization,isActive,isToolCallRow,nestedTaskRecord,startLine,subagentSteps,taskCallsById,taskNeedsApproval,toolBlock,toolState,userText,writeExistedFlag}from"./transcript-parts.js";import{TaskRecords}from"./task-records.js";import{activity,callOutputSource}from"#protocol/session-projection/selectors.js";import{sessionTables,snapshotState}from"#protocol/session-projection/session-view.js";import{stripTerminalControls}from"#cli/ui/terminal-text.js";import{agentCallActivity,agentToolSession,taskCalls}from"#client/conversation-state.js";var ConversationTranscript=class{#e=new Map;#t=new FileContentCache;#n=new TaskRecords;#r=new Map;#i=[];#a=new Set;#o=[];reset(){this.#e=new Map,this.#t.clear(),this.#n.clear(),this.#r.clear(),this.#i=[],this.#a.clear(),this.#o=[]}get tasks(){return this.#o}taskLabel(e,t){let n=sessionTables(e.view).tasks[t];if(n===void 0)return;let r=taskCalls(e.view,t),i=r.findLast(e=>e.status!==`settled`)??r.at(-1),a=i===void 0?void 0:this.#n.get(i.callId);return a===void 0?n.kind===`agent`?agentTaskLabel(agentDisplayName(stripTerminalControls(n.name))):stripTerminalControls(n.name):a.kind===`agent`?agentTaskLabel(a.name):a.name}stopWorking(e){let t=[];for(let n of this.#n.values())n.ended||(n.ended=!0,t.push(endLine(n,{outcome:`interrupted`,status:`settled`},void 0,e.dot??`·`)));return this.#o=[],t}project(e,t){let{conversation:n,working:r}=e,i=Date.now(),a=[],o=taskCallsById(n),{toolLabels:s,withdrawn:c}=e.data,l=new Map(e.failures.flatMap(e=>e.turnId===void 0?[]:[[e.turnId,e]])),u=new Map;for(let[e,t]of n.messages.entries()){let n=t.metadata?.turnId;n!==void 0&&u.set(n,e)}let d=new Set,endTurn=(e,n)=>{if(n===void 0||u.get(n)!==e)return!1;let r=l.get(n);return r!==void 0&&(a.push(this.#g(`failure:${n}`,r,t)),d.add(n),!0)};for(let[d,f]of n.messages.entries()){if(f.role===`user`){let e=this.#f(f);e!==void 0&&a.push(e),endTurn(d,f.metadata?.turnId);continue}let p=f.parts.filter(e=>isToolCallRow(e)&&(e.state!==`streaming`||r)&&e.kind!==`control`&&!c(e.callId)&&!o.has(e.callId)&&!isPanelRoutedTool(e.name)),m=new Map(p.map(t=>[t,toolState(t,e.data.view)])),h=activeToolSteps(m);for(let[n,c]of f.parts.entries())if(c.type===`text`||c.type===`reasoning`){let e=this.#p(f,n,t,r);e!==void 0&&a.push(e)}else if(c.type===`interaction`)c.request.signIn!==void 0&&t.connectionAuth!==`hidden`&&a.push(this.#m(c,c.request.signIn));else if(c.type===`tool`){let n=o.get(c.callId);if(n!==void 0){let r=this.#c(c,n.task,s,t,i,e.data.view);r!==void 0&&a.push(r);continue}let r=m.get(c);if(r===void 0||t.tools===`hidden`)continue;let l=s(c.callId);a.push(this.#h(c,r,h.has(c.stepIndex),l,t))}let g=f.metadata?.turnId;endTurn(d,g)||g!==void 0&&!l.has(g)&&u.get(g)===d&&sessionTables(n.view).turns[g]?.outcome===`cancelled`&&a.push(this.#d(`cancelled:${g}`,[],()=>({kind:`notice`,body:`Cancelled.`,live:!1})))}let f=0;for(let n of e.failures){if(n.turnId!==void 0&&d.has(n.turnId))continue;let e=n.turnId===void 0?`failure:session:${f++}`:`failure:${n.turnId}`;a.push(this.#g(e,n,t))}let p=this.#s(a),m=this.#l(e,o,t,i);for(let e of m){let t=p.slice(-8).map(e=>e.id);this.#i.push({block:e,after:t}),this.#a.add(e.id),p.push(e)}return p}#s(e){let t=[...e];for(let{block:e,after:n}of this.#i){let r=t.length;for(let e=n.length-1;e>=0;--e){let i=t.findIndex(t=>t.id===n[e]);if(i!==-1){r=i+1;break}}t.splice(r,0,e)}return t}#c(e,t,n,r,i,a){if(!(t.kind===`agent`?r.subagents!==`hidden`:r.tools!==`hidden`))return;let o=n(e.callId)?.start,s=this.#n.record(e,t,o,i,a);return s.callId===e.callId?this.#d(`task:${s.callId}:start`,[s],()=>startLine(s)):this.#d(`task:${e.callId}:message`,[s],()=>followUpLine(s,e,o))}#l(e,t,n,r){let{conversation:i,working:a}=e,o=Object.values(sessionTables(i.view).turns).at(-1),s=!a&&(e.data.sessionFailed||o?.outcome===`cancelled`||o?.outcome===`failed`),c=[],l=[],u={remaining:128};for(let e of this.#n.values()){if(e.ended)continue;let o=t.get(e.callId)?.task;if(o===void 0)continue;let d=e.callIds.flatMap(e=>{let n=t.get(e)?.call;return n===void 0?[]:[n]}),f=d.at(-1),p=this.#u(e,o,d,i,n,u);if(n.subagents===`full`)for(let e of p.rows)this.#a.has(e.id)||c.push(e);let m=d.every(e=>e.status===`settled`);m&&(e.settledAtMs??=r);let h=m&&p.pending&&a;if(m&&!h||!m&&s){e.ended=!0,c.push(endLine(e,m?{...f,output:callOutputSource(sessionTables(i.view),f.callId)?.output}:{outcome:`interrupted`,status:`settled`},p.tools,n.dot??`·`));continue}let g={callId:e.callId,kind:e.kind,name:e.name,toolName:e.toolName,input:e.input,label:e.label,purpose:e.purpose,children:p.children,omittedTasks:p.omittedTasks,omittedAttention:p.omittedAttention,startedAtMs:e.startedAtMs,childTools:new Map(p.tools.map(e=>[e.id,e]))};p.step!==void 0&&(g.step=p.step),h&&(g.finishing=!0),l.push(g)}return this.#o=l,c}#u(e,t,n,r,i,a,o=0){let s=t.kind===`agent`?agentToolSession(r,t):void 0,c=s===void 0||s.observation.status===`not-followed`?void 0:s.observation.conversation;if(s===void 0||c===void 0)return{tools:[],rows:[],pending:!1};let l=n.flatMap(e=>{let t=agentCallActivity(r,e.callId);return t.status===`unlinked`?[]:t.sessions.filter(e=>e.sessionId===s.sessionId)}),u=s.observation.status===`following`&&l.some(e=>e.deliveries.some(({status:e})=>e!==`settled`)),d=new Set(l.flatMap(e=>e.turns.map(({turnId:e})=>e))),f=!sessionTables(r.view).children[s.sessionId]?.deliveries?.length,p=c.messages.filter(e=>e.role===`assistant`&&e.metadata?.turnId!==void 0&&(f||d.has(e.metadata.turnId))),m=taskCallsById(c),h=[],g=[],_=[],v=new Set,y=0,b=!1,x=0;for(let t of p)for(let n of t.parts){if(x+=1,!isToolCallRow(n)||n.kind===`control`)continue;let t=m.get(n.callId),r=toolState(n,sessionTables(c.view)),s=`subagent:${e.callId}:tool:${n.callId}`,l=this.#d(s,[n,r.status,e.name],()=>{let a=this.#_(n.callId,n,r,i,{isSubagent:t?.task.kind===`agent`});return{...toolBlock(n,r,a),kind:`subagent-tool`,subagentCallId:e.callId,agentName:e.name,depth:1,live:!1}}),u=t?.task.kind===`agent`?i.subagents!==`hidden`:i.tools!==`hidden`;if(t!==void 0&&t.call.status!==`settled`&&u){if(v.has(t.task.taskId))continue;if(v.add(t.task.taskId),o>=8||a.remaining<=0){y+=1,b||=r.status===`approval`||taskNeedsApproval(c,t.task);continue}--a.remaining;let s=`${e.callId}/${n.callId}`,u=this.#r.get(s);u===void 0&&(u=nestedTaskRecord(s,n,t.task,l),this.#r.set(s,u));let d=this.#u(u,t.task,taskCalls(c.view,t.task.taskId).filter(e=>e.status!==`settled`),c,i,a,o+1);_.push({...u,step:d.step,children:d.children,omittedTasks:d.omittedTasks,omittedAttention:d.omittedAttention,childTools:new Map(d.tools.map(e=>[e.id,e]))})}else g.push(l);h.push({order:x,block:l,settled:!isActive(r.status)})}let S=subagentSteps(p);for(let t of S){if(!t.finalized)continue;let n=`subagent:${e.callId}:step:${t.key}`,r=this.#d(n,[t.reasoning,t.message,e.name],()=>{let n={kind:`subagent-step`,subagentCallId:e.callId,agentName:e.name,depth:1,body:t.message,live:!1};return t.reasoning.length>0&&(n.reasoning=t.reasoning),n});h.push({order:t.order,block:r,settled:!0})}let C=h.filter(e=>e.settled).sort((e,t)=>e.order-t.order).map(e=>e.block),w=S.at(-1),T={tools:g,rows:C,children:_,omittedTasks:y,omittedAttention:b,pending:u};return w!==void 0&&(T.step=firstLine(w.message)??`Thinking`),T}#d(e,t,n){let r=this.#e.get(e);if(r!==void 0&&sameKey(r.key,t))return r.block;let i={...n(),id:e};return this.#e.set(e,{key:t,block:i}),i}#f(e){let t=stripTerminalControls(userText(e));if(t.trim().length===0)return;let n=`user:${e.id}`;return this.#d(n,[t],()=>({kind:`user`,body:t,live:!1}))}#p(e,t,n,r){let i=e.parts[t];if(i?.type!==`text`&&i?.type!==`reasoning`||i.type===`reasoning`&&n.reasoning!==`full`)return;let a=stripTerminalControls(i.text).trim();if(a.length===0)return;let o=i.state===`streaming`&&r,s=`${i.type}:${i.id??`${e.id}:${t}`}`;return this.#d(s,[a,o],()=>i.type===`text`?{kind:`assistant`,body:a,live:o}:{kind:`reasoning`,body:a,collapsed:!1,live:o})}#m(e,t){return this.#d(`connection-auth:${e.interactionId}`,[e],()=>{let n=e.outcome??`required`,r=authorizationTerminalMessage(n);return{kind:`connection-auth`,title:`${stripTerminalControls(t.displayName??t.name)} · authorization · ${n}`,...formatAuthorization(e,t,r),preformatted:!0,live:r===void 0}})}#h(e,t,n,r,i){let a=n||isActive(t.status);return this.#d(`tool:${e.callId}`,[e,t.status,a,i.tools,i.subagentNames,r?.start,r?.complete],()=>{let n=this.#_(e.callId,e,t,i,{label:r?.start,completeLabel:r?.complete});return{...toolBlock(e,t,n),kind:`tool`,live:a,expanded:i.tools===`full`}})}#g(e,t,n){let{message:r,hint:i,detail:a}=t;return this.#d(e,[r,i,a],()=>{let e={kind:`error`,title:`Error`,body:stripTerminalControls(r),live:!1};return i!==void 0&&(e.hint=stripTerminalControls(i)),a!==void 0&&(e.detail=n.diagnosticsPath===void 0?stripTerminalControls(a):`details: ${n.diagnosticsPath}`),e})}#_(e,t,n,r,i={}){n.output!==void 0&&this.#t.observeRead(n.output);let a={};(i.isSubagent===!0||r.subagentNames?.includes(toolBaseName(t.name))===!0)&&(a.isSubagent=!0),i.label!==void 0&&(a.label=i.label),i.completeLabel!==void 0&&(a.completeLabel=i.completeLabel);let o=readWriteFileInput(t.name,t.input);if(o!==void 0){let t=this.#t.observeWrite({...o,callId:e});t!==void 0&&(a.previousContent=t);let r=writeExistedFlag(n.output);r!==void 0&&(a.existed=r)}return Object.keys(a).length>0?a:void 0}};function turnActivity(e,t){let n=activity(e.data.view);switch(n.kind){case`calling`:return`Running`;case`compacting`:return`Compacting`;case`waiting-on-tasks`:return waitingLabel(t);case`waiting-on-interaction`:{let e=n.interactions.flatMap(e=>e.request.signIn===void 0?[]:[e.request.signIn]);return e.length>0?signInLabel(e.map(e=>e.displayName??e.name)):`Waiting for input`}default:{let{previews:t}=snapshotState(e.conversation.view);return Object.values(t.parts).some(e=>e.kind===`text`)||Object.keys(t.calls).length>0?`Generating`:`Thinking`}}}function sameKey(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}export{ConversationTranscript,turnActivity};
@@ -1 +1 @@
1
- import{remoteHost}from"./target.js";import{createDevDiagnostics}from"../diagnostics.js";import{promptCommandsFor}from"./prompt-commands.js";import{probeMcpConnection}from"./mcp-connection-status.js";import{createPromptCommandHandler}from"./prompt-command-handler.js";import{formatRemoteAuthChallengeMessage}from"./remote-auth-result.js";import{TerminalRenderer}from"./terminal-renderer.js";import{EveTUIRunner}from"./runner.js";import{Client}from"#client/index.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{LOGIN_CONNECTION_COMMAND_OPTIONS}from"#setup/flows/model-login-options.js";import{toErrorMessage}from"#shared/errors.js";import{resolveDevelopmentOidcToken,resolveLinkedDevelopmentOidcToken}from"#services/dev-client/request-headers.js";import{isVercelAuthChallenge}from"#services/dev-client/vercel-auth-error.js";import{resolveVercelDeployment}from"#setup/vercel-deployment.js";import{appendUserAgentProduct}from"#internal/user-agent.js";import{resolveLocalDevelopmentClientOptions,resolveRemoteDevelopmentClientOptions}from"#services/dev-client/client-options.js";import{createDevelopmentCredentialGate}from"#services/dev-client/credential-gate.js";function inlineArgumentSuggestions(e){return async t=>{if(t===`loglevel`)return[{value:`none`,label:`none`,hint:`Hide logs`},{value:`error`,label:`error`,hint:`Errors only (default)`},{value:`warn`,label:`warn`,hint:`Warnings and errors`},{value:`debug`,label:`debug`,hint:`All severity-tagged logs`},{value:`all`,label:`all`,hint:`Include raw stdout and sandbox output`}];if(t===`login`)return LOGIN_CONNECTION_COMMAND_OPTIONS.map(e=>({value:e.command,label:e.label}));if(t===`model`){let{gatewayModelCapabilities:e}=await import(`#setup/boxes/model-capabilities.js`),{fetchGatewayCatalog:t,modelOptionsFromCatalog:n}=await import(`#setup/boxes/select-model.js`),r=await t().catch(()=>void 0);return n(r).map(t=>{let n=e(r,t.value);return{value:t.value,label:t.value,hint:t.hint,...n?.reasoning?{next:[{value:`default`,label:`default`},...n.reasoningLevels.map(e=>({value:e,label:e}))]}:{}}})}let{browseRegistryCatalog:n}=await import(`#cli/commands/registry.js`);return(await n(e)).items.map(e=>({value:e.address,label:e.name,hint:e.description??e.address}))}}async function startDevelopmentTuiStartup(e){let t=await createDevDiagnostics(e.appRoot).catch(()=>void 0),n=new TerminalRenderer({...e,diagnostics:t,argumentSuggestions:inlineArgumentSuggestions(e.appRoot),onExitRequest:e.onExitRequest});return n.beginStartupDraft({initialDraft:e.initialInput,title:e.name??`eve`}),{diagnostics:t,renderer:n,finish:()=>n.finishStartupDraft(),async shutdown(){n.shutdown(),await t?.close()}}}function prepareRemoteTarget(e){return{target:e,credentials:createDevelopmentCredentialGate(e.serverUrl),resolveOidcToken:resolveDevelopmentOidcToken,resolveDeployment:t=>resolveVercelDeployment({workspaceRoot:e.workspaceRoot,host:remoteHost(e),signal:t})}}function prepareDevelopmentTarget(e){return e.kind===`local`?{kind:`local`,target:e}:{kind:`remote`,target:e,remote:prepareRemoteTarget(e)}}function withTuiUserAgent(e){let t=new Headers(e);return appendUserAgentProduct(t,`eve-tui/${resolveInstalledPackageInfo().version}`),Object.fromEntries(t.entries())}async function runDevelopmentTui(e){let{target:t,headers:n,initialInput:r,onboard:i,onOnboardingStep:a,onOnboardingTerminal:o,onBootProgress:s,lifecycle:c,startup:l,withExclusiveTerminal:u,...d}=e,f=prepareDevelopmentTarget(t),{serverUrl:p}=t,m={headers:withTuiUserAgent(n)},h=new Client(f.kind===`local`?resolveLocalDevelopmentClientOptions({...m,interactiveClient:!0,serverUrl:p,token:()=>resolveLinkedDevelopmentOidcToken(f.target.workspaceRoot)}):resolveRemoteDevelopmentClientOptions({...m,serverUrl:p,credentials:f.remote.credentials})),g={...d,client:h,serverUrl:p,promptCommandHandler:createPromptCommandHandler({target:t}),availablePromptCommands:promptCommandsFor(t.kind),...t.kind===`local`?{argumentSuggestions:inlineArgumentSuggestions(t.workspaceRoot)}:{},formatTransportError:e=>isVercelAuthChallenge(e)?formatRemoteAuthChallengeMessage(p):toErrorMessage(e)};f.kind===`local`?(g.appRoot=f.target.workspaceRoot,g.probeMcpConnection=probeMcpConnection):g.remote=f.remote,r!==void 0&&(g.initialInput=r),l!==void 0&&(g.renderer=l.renderer,g.startup=l),i!==void 0&&(g.onboard=i),a!==void 0&&(g.onOnboardingStep=a),o!==void 0&&(g.onOnboardingTerminal=o),s!==void 0&&(g.onBootProgress=s),c!==void 0&&(g.lifecycle=c),u!==void 0&&(g.withExclusiveTerminal=u);let _=l?.diagnostics??(f.kind===`local`?await createDevDiagnostics(f.target.workspaceRoot).catch(()=>void 0):void 0);_!==void 0&&(g.diagnostics=_);try{await new EveTUIRunner(g).run()}finally{await _?.close()}}export{runDevelopmentTui,startDevelopmentTuiStartup};
1
+ import{remoteHost}from"./target.js";import{createDevDiagnostics}from"../diagnostics.js";import{promptCommandsFor}from"./prompt-commands.js";import{probeMcpConnection}from"./mcp-connection-status.js";import{createPromptCommandHandler}from"./prompt-command-handler.js";import{formatRemoteAuthChallengeMessage}from"./remote-auth-result.js";import{TerminalRenderer}from"./terminal-renderer.js";import{EveTUIRunner}from"./runner.js";import{Client}from"#client/index.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{toErrorMessage}from"#shared/errors.js";import{LOGIN_CONNECTION_COMMAND_OPTIONS}from"#setup/flows/model-login-options.js";import{resolveDevelopmentOidcToken,resolveLinkedDevelopmentOidcToken}from"#services/dev-client/request-headers.js";import{isVercelAuthChallenge}from"#services/dev-client/vercel-auth-error.js";import{resolveVercelDeployment}from"#setup/vercel-deployment.js";import{appendUserAgentProduct}from"#internal/user-agent.js";import{resolveLocalDevelopmentClientOptions,resolveRemoteDevelopmentClientOptions}from"#services/dev-client/client-options.js";import{createDevelopmentCredentialGate}from"#services/dev-client/credential-gate.js";function inlineArgumentSuggestions(e){return async t=>{if(t===`loglevel`)return[{value:`none`,label:`none`,hint:`Hide logs`},{value:`error`,label:`error`,hint:`Errors only (default)`},{value:`warn`,label:`warn`,hint:`Warnings and errors`},{value:`debug`,label:`debug`,hint:`All severity-tagged logs`},{value:`all`,label:`all`,hint:`Include raw stdout and sandbox output`}];if(t===`login`)return LOGIN_CONNECTION_COMMAND_OPTIONS.map(e=>({value:e.command,label:e.label}));if(t===`model`){let{gatewayModelCapabilities:e}=await import(`#setup/boxes/model-capabilities.js`),{fetchGatewayCatalog:t,modelOptionsFromCatalog:n}=await import(`#setup/boxes/select-model.js`),r=await t().catch(()=>void 0);return n(r).map(t=>{let n=e(r,t.value);return{value:t.value,label:t.value,hint:t.hint,...n?.reasoning?{next:[{value:`default`,label:`default`},...n.reasoningLevels.map(e=>({value:e,label:e}))]}:{}}})}let{browseRegistryCatalog:n}=await import(`#cli/commands/registry.js`);return(await n(e)).items.map(e=>({value:e.address,label:e.name,hint:e.description??e.address}))}}async function startDevelopmentTuiStartup(e){let t=await createDevDiagnostics(e.appRoot).catch(()=>void 0),n=new TerminalRenderer({...e,diagnostics:t,argumentSuggestions:inlineArgumentSuggestions(e.appRoot),onExitRequest:e.onExitRequest});return n.beginStartupDraft({initialDraft:e.initialInput,title:e.name??`eve`}),{diagnostics:t,renderer:n,finish:()=>n.finishStartupDraft(),async shutdown(){n.shutdown(),await t?.close()}}}function prepareRemoteTarget(e){return{target:e,credentials:createDevelopmentCredentialGate(e.serverUrl),resolveOidcToken:resolveDevelopmentOidcToken,resolveDeployment:t=>resolveVercelDeployment({workspaceRoot:e.workspaceRoot,host:remoteHost(e),signal:t})}}function prepareDevelopmentTarget(e){return e.kind===`local`?{kind:`local`,target:e}:{kind:`remote`,target:e,remote:prepareRemoteTarget(e)}}function withTuiUserAgent(e){let t=new Headers(e);return appendUserAgentProduct(t,`eve-tui/${resolveInstalledPackageInfo().version}`),Object.fromEntries(t.entries())}async function runDevelopmentTui(e){let{target:t,headers:n,initialInput:r,onboard:i,onOnboardingStep:a,onOnboardingTerminal:o,onBootProgress:s,lifecycle:c,startup:l,withExclusiveTerminal:u,...d}=e,f=prepareDevelopmentTarget(t),{serverUrl:p}=t,m={headers:withTuiUserAgent(n)},h=new Client(f.kind===`local`?resolveLocalDevelopmentClientOptions({...m,interactiveClient:!0,serverUrl:p,token:()=>resolveLinkedDevelopmentOidcToken(f.target.workspaceRoot)}):resolveRemoteDevelopmentClientOptions({...m,serverUrl:p,credentials:f.remote.credentials})),g={...d,client:h,serverUrl:p,promptCommandHandler:createPromptCommandHandler({target:t}),availablePromptCommands:promptCommandsFor(t.kind),...t.kind===`local`?{argumentSuggestions:inlineArgumentSuggestions(t.workspaceRoot)}:{},formatTransportError:e=>isVercelAuthChallenge(e)?formatRemoteAuthChallengeMessage(p):toErrorMessage(e)};f.kind===`local`?(g.appRoot=f.target.workspaceRoot,g.probeMcpConnection=probeMcpConnection):g.remote=f.remote,r!==void 0&&(g.initialInput=r),l!==void 0&&(g.renderer=l.renderer,g.startup=l),i!==void 0&&(g.onboard=i),a!==void 0&&(g.onOnboardingStep=a),o!==void 0&&(g.onOnboardingTerminal=o),s!==void 0&&(g.onBootProgress=s),c!==void 0&&(g.lifecycle=c),u!==void 0&&(g.withExclusiveTerminal=u);let _=l?.diagnostics??(f.kind===`local`?await createDevDiagnostics(f.target.workspaceRoot).catch(()=>void 0):void 0);_!==void 0&&(g.diagnostics=_);try{await new EveTUIRunner(g).run()}finally{await _?.close()}}export{runDevelopmentTui,startDevelopmentTuiStartup};