eve 0.44.3 → 0.45.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 (821) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +13 -12
  3. package/dist/src/acp/adapter.d.ts +1 -1
  4. package/dist/src/approval/definition.d.ts +84 -0
  5. package/dist/src/approval/definition.js +1 -0
  6. package/dist/src/channel/adapter.d.ts +2 -2
  7. package/dist/src/{runtime/governance → channel}/auth/http-basic.d.ts +1 -1
  8. package/dist/src/{runtime/governance → channel}/auth/jwt-ecdsa.d.ts +1 -1
  9. package/dist/src/channel/auth/jwt-ecdsa.js +1 -0
  10. package/dist/src/{runtime/governance → channel}/auth/jwt-hmac.d.ts +1 -1
  11. package/dist/src/channel/auth/jwt-hmac.js +1 -0
  12. package/dist/src/{runtime/governance → channel}/auth/oidc.d.ts +1 -1
  13. package/dist/src/channel/auth/oidc.js +1 -0
  14. package/dist/src/{runtime/governance → channel}/auth/token-claims.d.ts +1 -1
  15. package/dist/src/{runtime/governance → channel}/auth/types.d.ts +1 -1
  16. package/dist/src/{runtime/governance → channel}/auth/vercel-oidc-project.d.ts +1 -1
  17. package/dist/src/channel/channel-operations.d.ts +1 -1
  18. package/dist/src/channel/channel-operations.js +1 -1
  19. package/dist/src/channel/instrumentation.d.ts +1 -0
  20. package/dist/src/channel/instrumentation.js +1 -1
  21. package/dist/src/channel/resolve-text.d.ts +1 -1
  22. package/dist/src/channel/routes.d.ts +1 -1
  23. package/dist/src/channel/session.d.ts +1 -1
  24. package/dist/src/channel/session.js +1 -1
  25. package/dist/src/channel/types.d.ts +2 -2
  26. package/dist/src/chunks/{use-eve-agent-DpUEwS23.js → use-eve-agent-C46Kan_I.js} +390 -107
  27. package/dist/src/chunks/{use-eve-agent-BsLJiIbc.js → use-eve-agent-OtHRoxIS.js} +390 -107
  28. package/dist/src/cli/banner.js +1 -1
  29. package/dist/src/cli/commands/agent-instructions.js +2 -2
  30. package/dist/src/cli/commands/channel-add-conflicts.js +1 -1
  31. package/dist/src/cli/commands/extension-build.js +1 -1
  32. package/dist/src/cli/commands/extension-init.js +1 -1
  33. package/dist/src/cli/commands/info.js +1 -1
  34. package/dist/src/cli/commands/init.js +1 -1
  35. package/dist/src/cli/commands/trace.js +1 -1
  36. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  37. package/dist/src/cli/dev/tui/prompt-commands.d.ts +1 -1
  38. package/dist/src/cli/dev/tui/prompt-commands.js +1 -1
  39. package/dist/src/cli/dev/tui/remote-auth.js +1 -1
  40. package/dist/src/cli/dev/tui/setup-commands.d.ts +2 -0
  41. package/dist/src/cli/dev/tui/setup-commands.js +1 -1
  42. package/dist/src/cli/dev/tui/setup-selection-input.d.ts +3 -1
  43. package/dist/src/cli/dev/tui/setup-selection-input.js +2 -2
  44. package/dist/src/cli/dev/tui/terminal-renderer.js +2 -2
  45. package/dist/src/cli/dev/tui/traces/trace-conversation.d.ts +1 -1
  46. package/dist/src/cli/dev/tui/traces/trace-conversation.js +1 -1
  47. package/dist/src/cli/dev/tui/traces/trace-viewer-state.js +1 -1
  48. package/dist/src/cli/invoke/result.d.ts +1 -1
  49. package/dist/src/cli/ui/live-row.js +1 -1
  50. package/dist/src/cli/ui/output.js +1 -1
  51. package/dist/src/client/agent-info-schema.d.ts +1757 -302
  52. package/dist/src/client/agent-info-schema.js +1 -1
  53. package/dist/src/client/client.js +1 -1
  54. package/dist/src/client/eve-agent-store.d.ts +6 -5
  55. package/dist/src/client/eve-agent-store.js +1 -1
  56. package/dist/src/client/health-response-error.d.ts +5 -0
  57. package/dist/src/client/health-response-error.js +1 -0
  58. package/dist/src/client/health-schema.d.ts +7 -0
  59. package/dist/src/client/health-schema.js +1 -0
  60. package/dist/src/client/index.d.ts +6 -3
  61. package/dist/src/client/index.js +1 -1
  62. package/dist/src/client/message-action-parts.d.ts +2 -2
  63. package/dist/src/client/message-reducer-types.d.ts +1 -1
  64. package/dist/src/client/reducer.d.ts +1 -1
  65. package/dist/src/client/session-utils.d.ts +1 -1
  66. package/dist/src/client/session.d.ts +1 -1
  67. package/dist/src/client/session.js +1 -1
  68. package/dist/src/client/types.d.ts +3 -7
  69. package/dist/src/compiler/artifacts.d.ts +37 -11
  70. package/dist/src/compiler/artifacts.js +1 -1
  71. package/dist/src/compiler/channel-route-plan.d.ts +10 -0
  72. package/dist/src/compiler/channel-route-plan.js +1 -0
  73. package/dist/src/compiler/compile-agent.d.ts +2 -2
  74. package/dist/src/compiler/compile-agent.js +2 -2
  75. package/dist/src/compiler/compile-from-memory.d.ts +13 -52
  76. package/dist/src/compiler/compile-from-memory.js +1 -1
  77. package/dist/src/compiler/diagnostics.d.ts +38 -0
  78. package/dist/src/compiler/diagnostics.js +1 -0
  79. package/dist/src/compiler/extension-compatibility.d.ts +14 -11
  80. package/dist/src/compiler/extension-compatibility.js +1 -1
  81. package/dist/src/compiler/load-binding-namespace.d.ts +9 -0
  82. package/dist/src/compiler/load-binding-namespace.js +1 -0
  83. package/dist/src/compiler/manifest.d.ts +172 -51
  84. package/dist/src/compiler/manifest.js +1 -1
  85. package/dist/src/compiler/module-map.d.ts +12 -30
  86. package/dist/src/compiler/module-map.js +3 -3
  87. package/dist/src/compiler/node-source-state.d.ts +24 -0
  88. package/dist/src/compiler/node-source-state.js +1 -0
  89. package/dist/src/compiler/normalize-agent-config.d.ts +5 -1
  90. package/dist/src/compiler/normalize-agent-config.js +1 -1
  91. package/dist/src/compiler/normalize-channel.d.ts +8 -2
  92. package/dist/src/compiler/normalize-channel.js +1 -1
  93. package/dist/src/compiler/normalize-connection.d.ts +1 -1
  94. package/dist/src/compiler/normalize-connection.js +1 -1
  95. package/dist/src/compiler/normalize-helpers.d.ts +13 -4
  96. package/dist/src/compiler/normalize-helpers.js +1 -1
  97. package/dist/src/compiler/normalize-hook.d.ts +4 -11
  98. package/dist/src/compiler/normalize-hook.js +1 -1
  99. package/dist/src/compiler/normalize-instructions.d.ts +3 -3
  100. package/dist/src/compiler/normalize-instructions.js +1 -1
  101. package/dist/src/compiler/normalize-manifest-helpers.d.ts +29 -0
  102. package/dist/src/compiler/normalize-manifest-helpers.js +1 -0
  103. package/dist/src/compiler/normalize-manifest.d.ts +8 -4
  104. package/dist/src/compiler/normalize-manifest.js +1 -1
  105. package/dist/src/compiler/normalize-sandbox.d.ts +1 -1
  106. package/dist/src/compiler/normalize-sandbox.js +1 -1
  107. package/dist/src/compiler/normalize-schedule.d.ts +2 -2
  108. package/dist/src/compiler/normalize-schedule.js +1 -1
  109. package/dist/src/compiler/normalize-skill.d.ts +2 -2
  110. package/dist/src/compiler/normalize-skill.js +1 -1
  111. package/dist/src/compiler/normalize-subagent.d.ts +21 -39
  112. package/dist/src/compiler/normalize-subagent.js +1 -1
  113. package/dist/src/compiler/normalize-tool.d.ts +2 -1
  114. package/dist/src/compiler/normalize-tool.js +1 -1
  115. package/dist/src/compiler/project-sources.d.ts +71 -0
  116. package/dist/src/compiler/project-sources.js +1 -0
  117. package/dist/src/compiler/remote-agent-node.d.ts +8 -0
  118. package/dist/src/compiler/remote-agent-node.js +1 -1
  119. package/dist/src/compiler/source-graph.d.ts +153 -0
  120. package/dist/src/compiler/source-graph.js +1 -0
  121. package/dist/src/compiler/validate-artifact.d.ts +17 -0
  122. package/dist/src/compiler/validate-artifact.js +1 -0
  123. package/dist/src/compiler/workspace-resources.js +1 -1
  124. package/dist/src/connections/errors.d.ts +125 -0
  125. package/dist/src/connections/errors.js +1 -0
  126. package/dist/src/context/build-base-tool-context.d.ts +2 -2
  127. package/dist/src/context/build-callback-context.d.ts +1 -1
  128. package/dist/src/context/build-dynamic-tools.js +1 -1
  129. package/dist/src/context/dynamic-instruction-lifecycle.js +1 -1
  130. package/dist/src/context/dynamic-resolve-context.d.ts +1 -1
  131. package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
  132. package/dist/src/context/dynamic-subagent-lifecycle.d.ts +0 -2
  133. package/dist/src/context/dynamic-subagent-lifecycle.js +1 -1
  134. package/dist/src/context/dynamic-tool-lifecycle.d.ts +2 -2
  135. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  136. package/dist/src/context/key-names.d.ts +12 -0
  137. package/dist/src/context/key-names.js +1 -0
  138. package/dist/src/context/keys.d.ts +8 -1
  139. package/dist/src/context/keys.js +1 -1
  140. package/dist/src/context/providers/connection-key.d.ts +1 -1
  141. package/dist/src/context/providers/connection.d.ts +1 -1
  142. package/dist/src/context/session-context.d.ts +32 -0
  143. package/dist/src/discover/discover-agent.d.ts +0 -13
  144. package/dist/src/discover/discover-agent.js +1 -1
  145. package/dist/src/discover/discover-subagent.js +1 -1
  146. package/dist/src/discover/extensions.d.ts +0 -6
  147. package/dist/src/discover/extensions.js +1 -1
  148. package/dist/src/discover/manifest.d.ts +4 -1
  149. package/dist/src/discover/manifest.js +1 -1
  150. package/dist/src/dynamic/definition.d.ts +117 -0
  151. package/dist/src/dynamic/definition.js +1 -0
  152. package/dist/src/evals/autoevals-client.js +1 -1
  153. package/dist/src/evals/index.d.ts +1 -1
  154. package/dist/src/evals/match.d.ts +1 -1
  155. package/dist/src/evals/runner/reporters/console.js +1 -1
  156. package/dist/src/evals/session.d.ts +1 -1
  157. package/dist/src/evals/target.js +1 -1
  158. package/dist/src/evals/types.d.ts +1 -1
  159. package/dist/src/eve-channel/index.d.ts +12 -0
  160. package/dist/src/eve-channel/index.js +1 -0
  161. package/dist/src/eve-channel/request.d.ts +49 -0
  162. package/dist/src/eve-channel/request.js +3 -0
  163. package/dist/src/eve-channel/support.d.ts +34 -0
  164. package/dist/src/eve-channel/support.js +1 -0
  165. package/dist/src/eve-channel/types.d.ts +128 -0
  166. package/dist/src/eve-channel/types.js +1 -0
  167. package/dist/src/execution/agent-handle-dispatch.d.ts +1 -1
  168. package/dist/src/execution/agent-handle-dispatch.js +1 -1
  169. package/dist/src/execution/authorization-callback-match.d.ts +1 -1
  170. package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
  171. package/dist/src/execution/compaction.js +1 -1
  172. package/dist/src/execution/connection-auth-tool-result.d.ts +1 -1
  173. package/dist/src/{runtime → execution}/connections/callback-route.d.ts +2 -20
  174. package/dist/src/execution/connections/callback-route.js +1 -0
  175. package/dist/src/execution/create-session-step.js +1 -1
  176. package/dist/src/execution/delegated-parent-notification.d.ts +2 -2
  177. package/dist/src/execution/delegated-parent-notification.js +1 -1
  178. package/dist/src/execution/delegated-parent-result.d.ts +1 -1
  179. package/dist/src/execution/delegated-parent-result.js +1 -1
  180. package/dist/src/execution/delegation-tool.d.ts +1 -1
  181. package/dist/src/execution/delegation-tool.js +1 -1
  182. package/dist/src/execution/dispatch-action-failures.d.ts +1 -1
  183. package/dist/src/execution/dispatch-runtime-actions-shared.d.ts +1 -2
  184. package/dist/src/execution/dispatch-runtime-actions-shared.js +1 -1
  185. package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
  186. package/dist/src/execution/dispatch-workflow-runtime-actions-step.d.ts +1 -1
  187. package/dist/src/execution/durable-session-migrations/turn-workflow.d.ts +1 -1
  188. package/dist/src/execution/durable-session-store.js +1 -1
  189. package/dist/src/execution/effective-output-schema.d.ts +2 -1
  190. package/dist/src/execution/eve-workflow-attributes.d.ts +6 -0
  191. package/dist/src/execution/eve-workflow-attributes.js +1 -1
  192. package/dist/src/execution/forward-turn-cancellation-step.js +1 -1
  193. package/dist/src/execution/node-step.js +1 -1
  194. package/dist/src/execution/remote-agent-dispatch.d.ts +10 -8
  195. package/dist/src/execution/remote-agent-dispatch.js +1 -1
  196. package/dist/src/execution/runtime-context.js +1 -1
  197. package/dist/src/execution/sandbox/{bash-tool.d.ts → bash.d.ts} +2 -2
  198. package/dist/src/execution/sandbox/bindings/just-bash-runtime.d.ts +1 -0
  199. package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
  200. package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
  201. package/dist/src/execution/sandbox/bindings/vercel-credentials.js +1 -1
  202. package/dist/src/execution/sandbox/glob-tool.js +1 -1
  203. package/dist/src/execution/sandbox/grep-tool.js +1 -1
  204. package/dist/src/execution/sandbox/{read-file-tool.d.ts → read-file.d.ts} +2 -2
  205. package/dist/src/execution/sandbox/{read-file-tool.js → read-file.js} +1 -1
  206. package/dist/src/execution/sandbox/{write-file-tool.d.ts → write-file.d.ts} +2 -2
  207. package/dist/src/execution/sandbox/write-file.js +1 -0
  208. package/dist/src/execution/session-callback-route.d.ts +2 -0
  209. package/dist/src/execution/session-callback-route.js +1 -0
  210. package/dist/src/execution/session-callback-step.js +1 -1
  211. package/dist/src/execution/session-timeout-steps.js +1 -1
  212. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  213. package/dist/src/execution/subagent-adapter.js +1 -1
  214. package/dist/src/execution/subagent-hitl-proxy.d.ts +1 -1
  215. package/dist/src/execution/subagent-invocation.d.ts +0 -3
  216. package/dist/src/execution/subagent-invocation.js +1 -1
  217. package/dist/src/execution/subagent-start-local.d.ts +1 -2
  218. package/dist/src/execution/subagent-start-local.js +1 -1
  219. package/dist/src/execution/subagent-start-remote.d.ts +1 -2
  220. package/dist/src/execution/subagent-start-remote.js +1 -1
  221. package/dist/src/execution/subagent-tool.d.ts +4 -8
  222. package/dist/src/execution/subagent-tool.js +1 -1
  223. package/dist/src/execution/subagent-usage-span.d.ts +1 -1
  224. package/dist/src/execution/task-input-response-route.d.ts +2 -0
  225. package/dist/src/execution/task-input-response-route.js +1 -0
  226. package/dist/src/execution/tasks/child/instructions.js +1 -1
  227. package/dist/src/execution/tasks/child/update.d.ts +1 -1
  228. package/dist/src/execution/tasks/child/update.js +1 -1
  229. package/dist/src/execution/tasks/parent/continuation-dispatch.d.ts +1 -1
  230. package/dist/src/execution/tasks/parent/control-shared.d.ts +1 -1
  231. package/dist/src/execution/tasks/parent/delegate.d.ts +2 -2
  232. package/dist/src/execution/tasks/parent/delegate.js +1 -1
  233. package/dist/src/execution/tasks/parent/dispatch-task-step.js +1 -1
  234. package/dist/src/execution/tasks/parent/dispatch.d.ts +3 -1
  235. package/dist/src/execution/tasks/parent/dispatch.js +1 -1
  236. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
  237. package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
  238. package/dist/src/execution/terminate-child-sessions-step.d.ts +4 -5
  239. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  240. package/dist/src/execution/tool-auth.d.ts +5 -6
  241. package/dist/src/execution/tool-auth.js +1 -1
  242. package/dist/src/execution/tools/connection-search.d.ts +1 -0
  243. package/dist/src/execution/tools/connection-search.js +2 -0
  244. package/dist/src/{runtime/framework-tools → execution/tools}/file-state.d.ts +2 -2
  245. package/dist/src/execution/tools/load-skill.d.ts +6 -0
  246. package/dist/src/execution/tools/load-skill.js +1 -0
  247. package/dist/src/{runtime/framework-tools → execution/tools}/subagent/local.d.ts +7 -7
  248. package/dist/src/execution/tools/subagent/local.js +1 -0
  249. package/dist/src/{runtime/framework-tools → execution/tools}/subagent/remote.d.ts +5 -5
  250. package/dist/src/execution/tools/subagent/remote.js +1 -0
  251. package/dist/src/execution/tools/tasks.d.ts +18 -0
  252. package/dist/src/execution/tools/tasks.js +1 -0
  253. package/dist/src/{runtime/framework-tools → execution/tools}/todo.d.ts +0 -2
  254. package/dist/src/{runtime/framework-tools → execution/tools}/todo.js +1 -2
  255. package/dist/src/execution/turn-control-protocol.js +1 -1
  256. package/dist/src/execution/web-fetch/execute.js +1 -0
  257. package/dist/src/execution/web-fetch/request.js +1 -1
  258. package/dist/src/execution/wire/session-inbox-resume.js +1 -1
  259. package/dist/src/execution/wire/session-inbox-wire.v1.js +1 -1
  260. package/dist/src/execution/workflow-entry.js +1 -1
  261. package/dist/src/execution/workflow-runtime.js +1 -1
  262. package/dist/src/execution/workflow-steps.js +1 -1
  263. package/dist/src/execution/workflow-trace-context.js +1 -1
  264. package/dist/src/framework/host-inventory.d.ts +8 -0
  265. package/dist/src/framework/host-inventory.js +1 -0
  266. package/dist/src/framework/sources/modules/agent.d.ts +4 -0
  267. package/dist/src/framework/sources/modules/agent.js +1 -0
  268. package/dist/src/framework/sources/modules/eve-channel.d.ts +1 -0
  269. package/dist/src/framework/sources/modules/eve-channel.js +1 -0
  270. package/dist/src/framework/sources/modules/home-channel.d.ts +2 -0
  271. package/dist/src/framework/sources/modules/home-channel.js +1 -0
  272. package/dist/src/framework/sources/modules/sandbox.d.ts +2 -0
  273. package/dist/src/framework/sources/modules/sandbox.js +1 -0
  274. package/dist/src/framework/sources/registry.d.ts +5 -0
  275. package/dist/src/framework/sources/registry.js +1 -0
  276. package/dist/src/harness/action-result-helpers.d.ts +1 -1
  277. package/dist/src/harness/advertised-tools.js +1 -1
  278. package/dist/src/harness/attachment-staging.js +1 -1
  279. package/dist/src/harness/authorization.d.ts +3 -3
  280. package/dist/src/harness/background-tools.d.ts +2 -2
  281. package/dist/src/harness/channel-delivery-instrumentation.js +1 -1
  282. package/dist/src/harness/compaction.js +1 -1
  283. package/dist/src/harness/execute-tool.d.ts +3 -3
  284. package/dist/src/{runtime/framework-tools → harness}/final-output.d.ts +1 -1
  285. package/dist/src/harness/final-output.js +1 -0
  286. package/dist/src/harness/handles/query.d.ts +1 -1
  287. package/dist/src/harness/handles/store.d.ts +8 -0
  288. package/dist/src/harness/handles/store.js +1 -1
  289. package/dist/src/harness/hitl/approval-input-requests.d.ts +1 -1
  290. package/dist/src/harness/hitl/approval-prompt.d.ts +1 -1
  291. package/dist/src/harness/hitl/pending-input-resolution.d.ts +2 -2
  292. package/dist/src/harness/hitl/question-input-requests.d.ts +1 -1
  293. package/dist/src/harness/input-extraction.d.ts +1 -1
  294. package/dist/src/harness/input-extraction.js +1 -1
  295. package/dist/src/harness/input-request-class.d.ts +1 -1
  296. package/dist/src/harness/input-request-resolution.d.ts +1 -1
  297. package/dist/src/harness/input-requests.d.ts +2 -2
  298. package/dist/src/harness/instrumentation/lifecycle.d.ts +3 -0
  299. package/dist/src/harness/instrumentation/providers.js +1 -1
  300. package/dist/src/harness/instrumentation/runtime.d.ts +2 -1
  301. package/dist/src/harness/pending-input-batches.d.ts +1 -1
  302. package/dist/src/harness/prepare-trace-context.d.ts +3 -0
  303. package/dist/src/harness/prepare-trace-context.js +1 -1
  304. package/dist/src/harness/provider-safety.d.ts +7 -0
  305. package/dist/src/harness/provider-safety.js +1 -0
  306. package/dist/src/{runtime/framework-tools/web-search.d.ts → harness/provider-tool-schemas.d.ts} +1 -9
  307. package/dist/src/harness/provider-tool-schemas.js +1 -0
  308. package/dist/src/harness/provider-tools.js +1 -1
  309. package/dist/src/harness/proxy-input-requests.d.ts +1 -1
  310. package/dist/src/harness/request-input-tool.d.ts +4 -0
  311. package/dist/src/harness/request-input-tool.js +1 -0
  312. package/dist/src/harness/runtime-actions.d.ts +1 -1
  313. package/dist/src/harness/session-limit-continuation.d.ts +1 -1
  314. package/dist/src/harness/step-hooks.d.ts +2 -0
  315. package/dist/src/harness/step-hooks.js +1 -1
  316. package/dist/src/harness/stream-actions.d.ts +1 -1
  317. package/dist/src/harness/subagent-depth.d.ts +1 -1
  318. package/dist/src/harness/tool-call-action.d.ts +1 -1
  319. package/dist/src/harness/tool-call-input-errors.d.ts +1 -1
  320. package/dist/src/harness/tool-loop.js +2 -2
  321. package/dist/src/harness/tool-model-output.d.ts +1 -1
  322. package/dist/src/harness/tools.d.ts +1 -1
  323. package/dist/src/harness/tools.js +1 -1
  324. package/dist/src/harness/types.d.ts +3 -9
  325. package/dist/src/harness/workflow-runtime-action-state.d.ts +1 -1
  326. package/dist/src/harness/workflow-subagent-limit.d.ts +1 -1
  327. package/dist/src/instrumentation/provider.d.ts +117 -0
  328. package/dist/src/instrumentation/provider.js +1 -0
  329. package/dist/src/internal/application/compiled-artifacts.js +5 -4
  330. package/dist/src/internal/application/package.js +1 -1
  331. package/dist/src/internal/authored-definition/approval.d.ts +1 -1
  332. package/dist/src/internal/authored-definition/connection.js +1 -1
  333. package/dist/src/internal/authored-definition/core.js +1 -1
  334. package/dist/src/internal/authored-definition/schema-backed.d.ts +6 -3
  335. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  336. package/dist/src/internal/authored-definition/source-identity.d.ts +17 -0
  337. package/dist/src/internal/authored-definition/source-identity.js +1 -0
  338. package/dist/src/internal/authored-module-map-loader.d.ts +1 -5
  339. package/dist/src/internal/authored-module-map-loader.js +1 -1
  340. package/dist/src/internal/helpers/markdown.js +1 -1
  341. package/dist/src/internal/invocation/agent-invocation.d.ts +2 -2
  342. package/dist/src/internal/invocation/workflow-execution.d.ts +1 -1
  343. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  344. package/dist/src/internal/materialized-authored-modules.js +1 -1
  345. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  346. package/dist/src/internal/nitro/host/application-route-registry.d.ts +2 -41
  347. package/dist/src/internal/nitro/host/application-route-registry.js +1 -1
  348. package/dist/src/internal/nitro/host/build-extension.js +1 -1
  349. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  350. package/dist/src/internal/nitro/host/configure-nitro-routes.js +3 -4
  351. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  352. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  353. package/dist/src/internal/nitro/host/extension-capability-requirements.d.ts +2 -0
  354. package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
  355. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  356. package/dist/src/internal/nitro/host/start-production-server.js +3 -3
  357. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.d.ts +9 -215
  358. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  359. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.d.ts +2 -13
  360. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.js +1 -1
  361. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  362. package/dist/src/internal/nitro/routes/channel-route-context.d.ts +5 -0
  363. package/dist/src/internal/nitro/routes/channel-route-context.js +1 -1
  364. package/dist/src/internal/nitro/routes/index.d.ts +0 -9
  365. package/dist/src/internal/nitro/routes/index.js +1 -1
  366. package/dist/src/internal/nitro/routes/info.js +1 -1
  367. package/dist/src/internal/nitro/routes/runtime-stack.d.ts +5 -5
  368. package/dist/src/internal/nitro/routes/runtime-stack.js +1 -1
  369. package/dist/src/internal/programmatic-source-loader.d.ts +1 -0
  370. package/dist/src/internal/programmatic-source-loader.js +1 -0
  371. package/dist/src/internal/runtime-registry.d.ts +3 -4
  372. package/dist/src/protocol/message.d.ts +3 -3
  373. package/dist/src/protocol/routes.d.ts +2 -0
  374. package/dist/src/protocol/routes.js +1 -1
  375. package/dist/src/public/agents/auth.d.ts +10 -6
  376. package/dist/src/public/agents/auth.js +1 -1
  377. package/dist/src/public/channels/auth.d.ts +1 -1
  378. package/dist/src/public/channels/auth.js +1 -1
  379. package/dist/src/public/channels/chat-sdk/authorization.d.ts +3 -0
  380. package/dist/src/public/channels/chat-sdk/authorization.js +3 -0
  381. package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +2 -0
  382. package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +2 -2
  383. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  384. package/dist/src/public/channels/discord/hitl.d.ts +1 -1
  385. package/dist/src/public/channels/discord/hitl.js +1 -1
  386. package/dist/src/public/channels/discord/inbound.d.ts +1 -0
  387. package/dist/src/public/channels/discord/inbound.js +1 -1
  388. package/dist/src/public/channels/eve.d.ts +1 -139
  389. package/dist/src/public/channels/eve.js +1 -3
  390. package/dist/src/public/channels/github/dispatch.d.ts +5 -0
  391. package/dist/src/public/channels/github/dispatch.js +1 -1
  392. package/dist/src/public/channels/github/githubChannel.js +1 -1
  393. package/dist/src/public/channels/github/inbound.d.ts +2 -0
  394. package/dist/src/public/channels/github/inbound.js +1 -1
  395. package/dist/src/public/channels/index.d.ts +1 -1
  396. package/dist/src/public/channels/index.js +1 -1
  397. package/dist/src/public/channels/linear/hitl.d.ts +1 -1
  398. package/dist/src/public/channels/linear/inbound.js +1 -1
  399. package/dist/src/public/channels/linq/index.d.ts +1 -1
  400. package/dist/src/public/channels/linq/index.js +1 -1
  401. package/dist/src/public/channels/linq/linqChannel.d.ts +3 -1
  402. package/dist/src/public/channels/linq/linqChannel.js +1 -1
  403. package/dist/src/public/channels/mcp.js +1 -1
  404. package/dist/src/public/channels/photon/index.d.ts +1 -1
  405. package/dist/src/public/channels/photon/index.js +1 -1
  406. package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +3 -1
  407. package/dist/src/public/channels/photon/photonIMessageChannel.js +1 -1
  408. package/dist/src/public/channels/slack/action-status.d.ts +1 -1
  409. package/dist/src/public/channels/slack/api.d.ts +15 -5
  410. package/dist/src/public/channels/slack/api.js +1 -1
  411. package/dist/src/public/channels/slack/attachments.d.ts +2 -2
  412. package/dist/src/public/channels/slack/attachments.js +1 -1
  413. package/dist/src/public/channels/slack/hitl.d.ts +3 -1
  414. package/dist/src/public/channels/slack/hitl.js +1 -1
  415. package/dist/src/public/channels/slack/inbound-content.d.ts +4 -0
  416. package/dist/src/public/channels/slack/inbound-content.js +4 -0
  417. package/dist/src/public/channels/slack/inbound.d.ts +17 -1
  418. package/dist/src/public/channels/slack/inbound.js +1 -1
  419. package/dist/src/public/channels/slack/index.d.ts +1 -1
  420. package/dist/src/public/channels/slack/input-response.d.ts +1 -0
  421. package/dist/src/public/channels/slack/input-response.js +1 -1
  422. package/dist/src/public/channels/slack/interaction-cards.d.ts +10 -0
  423. package/dist/src/public/channels/slack/interaction-cards.js +1 -0
  424. package/dist/src/public/channels/slack/interactions.d.ts +1 -0
  425. package/dist/src/public/channels/slack/interactions.js +1 -1
  426. package/dist/src/public/channels/slack/model-context.d.ts +3 -1
  427. package/dist/src/public/channels/slack/model-context.js +2 -2
  428. package/dist/src/public/channels/slack/session-operations.d.ts +1 -1
  429. package/dist/src/public/channels/slack/slackChannel.d.ts +7 -2
  430. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  431. package/dist/src/public/channels/teams/hitl.d.ts +1 -1
  432. package/dist/src/public/channels/teams/hitl.js +1 -1
  433. package/dist/src/public/channels/teams/inbound.d.ts +2 -0
  434. package/dist/src/public/channels/teams/inbound.js +1 -1
  435. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  436. package/dist/src/public/channels/teams/verify.js +1 -1
  437. package/dist/src/public/channels/telegram/api.d.ts +15 -0
  438. package/dist/src/public/channels/telegram/api.js +2 -2
  439. package/dist/src/public/channels/telegram/authorization-callback.d.ts +10 -0
  440. package/dist/src/public/channels/telegram/authorization-callback.js +1 -0
  441. package/dist/src/public/channels/telegram/authorization.d.ts +19 -0
  442. package/dist/src/public/channels/telegram/authorization.js +3 -0
  443. package/dist/src/public/channels/telegram/defaults.d.ts +1 -0
  444. package/dist/src/public/channels/telegram/defaults.js +3 -3
  445. package/dist/src/public/channels/telegram/hitl.d.ts +1 -1
  446. package/dist/src/public/channels/telegram/hitl.js +1 -1
  447. package/dist/src/public/channels/telegram/inbound.d.ts +1 -0
  448. package/dist/src/public/channels/telegram/inbound.js +1 -1
  449. package/dist/src/public/channels/telegram/index.d.ts +1 -1
  450. package/dist/src/public/channels/telegram/index.js +1 -1
  451. package/dist/src/public/channels/telegram/state.d.ts +6 -0
  452. package/dist/src/public/channels/telegram/state.js +1 -0
  453. package/dist/src/public/channels/telegram/telegramChannel.d.ts +11 -0
  454. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  455. package/dist/src/public/connections/errors.d.ts +1 -125
  456. package/dist/src/public/connections/errors.js +1 -1
  457. package/dist/src/public/connections/index.d.ts +2 -2
  458. package/dist/src/public/connections/index.js +1 -1
  459. package/dist/src/public/definitions/agent.d.ts +1 -1
  460. package/dist/src/public/definitions/agent.js +1 -1
  461. package/dist/src/public/definitions/approval.d.ts +2 -84
  462. package/dist/src/public/definitions/approval.js +1 -1
  463. package/dist/src/public/definitions/callback-context.d.ts +1 -32
  464. package/dist/src/public/definitions/connections/mcp.d.ts +1 -1
  465. package/dist/src/public/definitions/connections/mcp.js +1 -1
  466. package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
  467. package/dist/src/public/definitions/connections/openapi.js +1 -1
  468. package/dist/src/public/definitions/connections/protocol.d.ts +1 -1
  469. package/dist/src/public/definitions/instructions.d.ts +2 -2
  470. package/dist/src/public/definitions/instructions.js +1 -1
  471. package/dist/src/public/definitions/skill.js +1 -1
  472. package/dist/src/public/index.d.ts +1 -1
  473. package/dist/src/public/instructions/index.d.ts +1 -1
  474. package/dist/src/public/instrumentation/provider.d.ts +1 -117
  475. package/dist/src/public/instrumentation/provider.js +1 -1
  476. package/dist/src/public/models/openai/chatgpt/auth.js +1 -1
  477. package/dist/src/public/next/server.js +1 -1
  478. package/dist/src/public/nuxt/dev-server.js +1 -1
  479. package/dist/src/public/sandbox/backends/default.d.ts +1 -49
  480. package/dist/src/public/sandbox/backends/default.js +1 -1
  481. package/dist/src/public/sandbox/backends/docker.d.ts +1 -14
  482. package/dist/src/public/sandbox/backends/docker.js +1 -1
  483. package/dist/src/public/sandbox/backends/just-bash.d.ts +1 -17
  484. package/dist/src/public/sandbox/backends/just-bash.js +1 -1
  485. package/dist/src/public/sandbox/backends/microsandbox.d.ts +1 -17
  486. package/dist/src/public/sandbox/backends/microsandbox.js +1 -1
  487. package/dist/src/public/sandbox/backends/vercel.d.ts +1 -30
  488. package/dist/src/public/sandbox/backends/vercel.js +1 -1
  489. package/dist/src/public/sandbox/just-bash-sandbox.d.ts +12 -1
  490. package/dist/src/public/skills/index.d.ts +3 -3
  491. package/dist/src/public/skills/index.js +1 -1
  492. package/dist/src/public/sveltekit/dev-server.js +1 -1
  493. package/dist/src/public/tools/approval/index.d.ts +2 -2
  494. package/dist/src/public/tools/approval/index.js +1 -1
  495. package/dist/src/public/tools/bash.d.ts +3 -0
  496. package/dist/src/public/tools/bash.js +1 -0
  497. package/dist/src/public/tools/glob.d.ts +3 -0
  498. package/dist/src/public/tools/glob.js +1 -0
  499. package/dist/src/public/tools/grep.d.ts +3 -0
  500. package/dist/src/public/tools/grep.js +1 -0
  501. package/dist/src/public/tools/index.d.ts +6 -11
  502. package/dist/src/public/tools/index.js +1 -1
  503. package/dist/src/public/tools/load-skill.d.ts +3 -0
  504. package/dist/src/public/tools/load-skill.js +1 -0
  505. package/dist/src/public/tools/read-file.d.ts +3 -0
  506. package/dist/src/public/tools/read-file.js +1 -0
  507. package/dist/src/public/{tool-result-narrowing.d.ts → tools/result.d.ts} +2 -28
  508. package/dist/src/public/tools/result.js +1 -0
  509. package/dist/src/public/tools/sleep.d.ts +1 -0
  510. package/dist/src/public/tools/sleep.js +1 -0
  511. package/dist/src/public/tools/todo.d.ts +3 -0
  512. package/dist/src/public/tools/todo.js +1 -0
  513. package/dist/src/public/tools/web-fetch.d.ts +3 -0
  514. package/dist/src/public/tools/web-fetch.js +1 -0
  515. package/dist/src/public/tools/web-search.d.ts +3 -36
  516. package/dist/src/public/tools/web-search.js +1 -1
  517. package/dist/src/public/tools/workflow.d.ts +4 -0
  518. package/dist/src/public/tools/workflow.js +1 -0
  519. package/dist/src/public/tools/write-file.d.ts +3 -0
  520. package/dist/src/public/tools/write-file.js +1 -0
  521. package/dist/src/public/types/json.d.ts +1 -28
  522. package/dist/src/react/use-eve-agent.d.ts +1 -0
  523. package/dist/src/react/use-eve-agent.js +1 -1
  524. package/dist/src/runtime/actions/keys.d.ts +1 -1
  525. package/dist/src/runtime/actions/results.d.ts +1 -1
  526. package/dist/src/runtime/agent/bootstrap.js +1 -1
  527. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  528. package/dist/src/runtime/connections/authorization-tokens.d.ts +1 -1
  529. package/dist/src/runtime/connections/mcp-client.d.ts +1 -1
  530. package/dist/src/runtime/connections/mcp-client.js +1 -1
  531. package/dist/src/runtime/connections/openapi-client.d.ts +1 -1
  532. package/dist/src/runtime/connections/openapi-client.js +1 -1
  533. package/dist/src/runtime/connections/principal.d.ts +1 -1
  534. package/dist/src/runtime/connections/principal.js +1 -1
  535. package/dist/src/runtime/connections/registry-types.d.ts +11 -0
  536. package/dist/src/runtime/connections/registry.d.ts +3 -2
  537. package/dist/src/runtime/connections/resolve-authorization.d.ts +2 -2
  538. package/dist/src/runtime/connections/resolve-authorization.js +1 -1
  539. package/dist/src/runtime/connections/scoped-authorization.d.ts +2 -2
  540. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  541. package/dist/src/runtime/loaders/compile-metadata.js +1 -1
  542. package/dist/src/runtime/loaders/manifest.js +1 -1
  543. package/dist/src/runtime/prompt/compose.d.ts +0 -6
  544. package/dist/src/runtime/prompt/compose.js +1 -1
  545. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  546. package/dist/src/runtime/resolve-agent.js +1 -1
  547. package/dist/src/runtime/resolve-connection.js +1 -1
  548. package/dist/src/runtime/resolve-dynamic-tool.js +1 -1
  549. package/dist/src/runtime/resolve-tool.d.ts +2 -1
  550. package/dist/src/runtime/resolve-tool.js +1 -1
  551. package/dist/src/runtime/sandbox/keys.js +1 -1
  552. package/dist/src/runtime/sandbox/registry.d.ts +4 -20
  553. package/dist/src/runtime/sandbox/registry.js +1 -1
  554. package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
  555. package/dist/src/runtime/sessions/runtime-context-keys.js +1 -1
  556. package/dist/src/runtime/sessions/turn.d.ts +3 -1
  557. package/dist/src/runtime/skills/sandbox-access.d.ts +1 -1
  558. package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
  559. package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
  560. package/dist/src/runtime/subagents/registry.d.ts +0 -27
  561. package/dist/src/runtime/subagents/registry.js +1 -1
  562. package/dist/src/runtime/tools/registry.js +1 -1
  563. package/dist/src/runtime/types.d.ts +11 -27
  564. package/dist/src/sandbox/backends/default.d.ts +49 -0
  565. package/dist/src/sandbox/backends/default.js +1 -0
  566. package/dist/src/sandbox/backends/docker.d.ts +14 -0
  567. package/dist/src/sandbox/backends/docker.js +1 -0
  568. package/dist/src/sandbox/backends/just-bash.d.ts +17 -0
  569. package/dist/src/sandbox/backends/just-bash.js +1 -0
  570. package/dist/src/sandbox/backends/microsandbox.d.ts +17 -0
  571. package/dist/src/sandbox/backends/microsandbox.js +1 -0
  572. package/dist/src/sandbox/backends/vercel.d.ts +30 -0
  573. package/dist/src/sandbox/backends/vercel.js +1 -0
  574. package/dist/src/services/dev-client/runtime-artifacts.d.ts +2 -0
  575. package/dist/src/services/dev-client/runtime-artifacts.js +1 -1
  576. package/dist/src/services/dev-client.d.ts +1 -1
  577. package/dist/src/setup/channel-add-conflicts.js +1 -1
  578. package/dist/src/setup/cli/select-component.js +1 -1
  579. package/dist/src/setup/flows/link.js +1 -1
  580. package/dist/src/setup/flows/model-source-change.js +1 -1
  581. package/dist/src/setup/flows/model.js +1 -1
  582. package/dist/src/setup/flows/registry.d.ts +7 -1
  583. package/dist/src/setup/flows/registry.js +1 -1
  584. package/dist/src/setup/integrations/runner.js +1 -1
  585. package/dist/src/setup/prompter.js +1 -1
  586. package/dist/src/setup/scaffold/create/add-to-project.js +1 -1
  587. package/dist/src/setup/scaffold/create/project.js +40 -3
  588. package/dist/src/setup/scaffold/create/web-template.d.ts +8 -8
  589. package/dist/src/setup/scaffold/create/web-template.js +336 -120
  590. package/dist/src/setup/scaffold/update/channels.js +1 -1
  591. package/dist/src/setup/scaffold/update/connections.js +1 -1
  592. package/dist/src/setup/vercel-project.js +0 -0
  593. package/dist/src/{runtime/actions/types.d.ts → shared/action-types.d.ts} +12 -12
  594. package/dist/src/{runtime/actions/types.js → shared/action-types.js} +1 -1
  595. package/dist/src/shared/agent-definition.d.ts +3 -10
  596. package/dist/src/shared/agent-definition.js +1 -1
  597. package/dist/src/shared/channel-definition.d.ts +5 -1
  598. package/dist/src/{runtime/connections/types.d.ts → shared/connection-types.d.ts} +3 -13
  599. package/dist/src/{runtime/input/types.d.ts → shared/input.d.ts} +1 -1
  600. package/dist/src/shared/input.js +1 -0
  601. package/dist/src/shared/instructions-definition.d.ts +2 -0
  602. package/dist/src/shared/instructions-definition.js +1 -1
  603. package/dist/src/shared/objects.d.ts +5 -0
  604. package/dist/src/shared/objects.js +1 -0
  605. package/dist/src/shared/sandbox-definition.d.ts +1 -1
  606. package/dist/src/shared/skill-definition.d.ts +2 -0
  607. package/dist/src/shared/skill-definition.js +1 -1
  608. package/dist/src/{execution/skills/types.d.ts → shared/skill-types.d.ts} +1 -1
  609. package/dist/src/shared/skill-types.js +1 -0
  610. package/dist/src/{runtime/connections → shared}/validate-authorization.d.ts +1 -1
  611. package/dist/src/shared/vercel-project.d.ts +1 -0
  612. package/dist/src/shared/vercel-project.js +1 -1
  613. package/dist/src/svelte/index.js +1 -1
  614. package/dist/src/svelte/use-eve-agent.d.ts +8 -4
  615. package/dist/src/svelte/use-eve-agent.js +1 -1
  616. package/dist/src/tasks/json.d.ts +4 -89
  617. package/dist/src/tasks/json.js +1 -1
  618. package/dist/src/tasks/session-index.d.ts +1 -1
  619. package/dist/src/tasks/task-id.d.ts +0 -1
  620. package/dist/src/tasks/task-id.js +1 -1
  621. package/dist/src/tasks/types.d.ts +1 -1
  622. package/dist/src/tasks/types.js +1 -1
  623. package/dist/src/{public/tools/approval/approval-helpers.d.ts → tools/approval/policies.d.ts} +1 -1
  624. package/dist/src/tools/approval/policies.js +1 -0
  625. package/dist/src/tools/auth.d.ts +35 -0
  626. package/dist/src/tools/auth.js +1 -0
  627. package/dist/src/{public/definitions/tool.d.ts → tools/definition.d.ts} +42 -138
  628. package/dist/src/tools/definition.js +1 -0
  629. package/dist/src/{shared/durable-dynamic-tool-callbacks.d.ts → tools/durable-callbacks.d.ts} +1 -1
  630. package/dist/src/tools/durable-callbacks.js +1 -0
  631. package/dist/src/tools/dynamic.d.ts +68 -0
  632. package/dist/src/tools/dynamic.js +1 -0
  633. package/dist/src/tools/framework/agent-contract.d.ts +8 -0
  634. package/dist/src/tools/framework/agent-contract.js +1 -0
  635. package/dist/src/tools/framework/agent.d.ts +17 -0
  636. package/dist/src/tools/framework/agent.js +1 -0
  637. package/dist/src/tools/framework/ask-question.d.ts +50 -0
  638. package/dist/src/tools/framework/ask-question.js +1 -0
  639. package/dist/src/tools/framework/connection-search.d.ts +3 -0
  640. package/dist/src/tools/framework/connection-search.js +1 -0
  641. package/dist/src/tools/framework/task-cancel.d.ts +29 -0
  642. package/dist/src/tools/framework/task-cancel.js +1 -0
  643. package/dist/src/tools/framework/task-contract.d.ts +167 -0
  644. package/dist/src/tools/framework/task-contract.js +1 -0
  645. package/dist/src/tools/framework/task-update.d.ts +9 -0
  646. package/dist/src/tools/framework/task-update.js +1 -0
  647. package/dist/src/{public/tools/output-builders.d.ts → tools/model-output.d.ts} +41 -1
  648. package/dist/src/tools/provided/bash.d.ts +29 -0
  649. package/dist/src/tools/provided/bash.js +1 -0
  650. package/dist/src/tools/provided/glob.d.ts +26 -0
  651. package/dist/src/tools/provided/glob.js +2 -0
  652. package/dist/src/{runtime/framework-tools → tools/provided}/grep.d.ts +10 -10
  653. package/dist/src/tools/provided/grep.js +2 -0
  654. package/dist/src/tools/provided/load-skill.d.ts +2 -0
  655. package/dist/src/tools/provided/load-skill.js +1 -0
  656. package/dist/src/tools/provided/read-file.d.ts +27 -0
  657. package/dist/src/tools/provided/read-file.js +2 -0
  658. package/dist/src/{public/tools/sleep/index.d.ts → tools/provided/sleep.d.ts} +3 -3
  659. package/dist/src/tools/provided/sleep.js +1 -0
  660. package/dist/src/tools/provided/todo.d.ts +8 -0
  661. package/dist/src/tools/provided/todo.js +2 -0
  662. package/dist/src/{runtime/framework-tools → tools/provided}/web-fetch.d.ts +5 -2
  663. package/dist/src/tools/provided/web-fetch.js +2 -0
  664. package/dist/src/tools/provided/web-search.d.ts +39 -0
  665. package/dist/src/tools/provided/web-search.js +1 -0
  666. package/dist/src/tools/provided/write-file.d.ts +23 -0
  667. package/dist/src/tools/provided/write-file.js +2 -0
  668. package/dist/src/tools/workflow.d.ts +37 -0
  669. package/dist/src/tools/workflow.js +1 -0
  670. package/dist/src/tracing/agent-action-instrumentation.js +1 -1
  671. package/dist/src/tracing/agent-approval-instrumentation.js +1 -1
  672. package/dist/src/tracing/agent-channel-delivery-instrumentation.js +1 -1
  673. package/dist/src/tracing/agent-otel-provider.js +2 -2
  674. package/dist/src/tracing/agent-otel-session-context.d.ts +1 -1
  675. package/dist/src/tracing/agent-otel-session-context.js +1 -1
  676. package/dist/src/tracing/agent-span-id-generator.d.ts +1 -0
  677. package/dist/src/tracing/agent-span-id-generator.js +1 -1
  678. package/dist/src/tracing/agent-trace-context-store.d.ts +1 -1
  679. package/dist/src/tracing/agent-trace-context-store.js +1 -1
  680. package/dist/src/tracing/agent-trace-span-processor.js +1 -1
  681. package/dist/src/tracing/agent-trace-state.d.ts +2 -6
  682. package/dist/src/tracing/agent-trace-state.js +1 -1
  683. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  684. package/dist/src/tracing/local-trace-reader.d.ts +1 -3
  685. package/dist/src/tracing/local-trace-reader.js +1 -1
  686. package/dist/src/tracing/otel-declaration.d.ts +1 -2
  687. package/dist/src/tracing/otel-registration.js +1 -1
  688. package/dist/src/tracing/sampled-trace.d.ts +10 -2
  689. package/dist/src/tracing/sampled-trace.js +1 -1
  690. package/dist/src/vue/index.js +1 -1
  691. package/dist/src/vue/use-eve-agent.d.ts +8 -4
  692. package/dist/src/vue/use-eve-agent.js +1 -1
  693. package/docs/agent-config.md +16 -4
  694. package/docs/channels/chat-sdk.mdx +1 -1
  695. package/docs/channels/discord.mdx +5 -1
  696. package/docs/channels/eve.mdx +19 -3
  697. package/docs/channels/github.mdx +2 -0
  698. package/docs/channels/linear.mdx +1 -1
  699. package/docs/channels/linq.mdx +1 -1
  700. package/docs/channels/overview.mdx +1 -1
  701. package/docs/channels/photon.mdx +4 -4
  702. package/docs/channels/slack.mdx +20 -3
  703. package/docs/channels/teams.mdx +1 -1
  704. package/docs/channels/telegram.mdx +2 -0
  705. package/docs/concepts/built-in-tools.md +31 -21
  706. package/docs/concepts/sessions-runs-and-streaming.md +3 -1
  707. package/docs/connections/overview.mdx +1 -1
  708. package/docs/extensions.md +2 -2
  709. package/docs/getting-started.mdx +10 -9
  710. package/docs/guides/auth-and-route-protection.md +3 -3
  711. package/docs/guides/client/output-schema.mdx +2 -2
  712. package/docs/guides/client/overview.mdx +4 -2
  713. package/docs/guides/dev-tui.md +26 -15
  714. package/docs/guides/frontend/nuxt.mdx +4 -3
  715. package/docs/guides/frontend/overview.mdx +21 -18
  716. package/docs/guides/frontend/sveltekit.mdx +4 -3
  717. package/docs/guides/frontend/use-eve-agent-svelte.mdx +5 -4
  718. package/docs/guides/frontend/use-eve-agent-vue.mdx +5 -4
  719. package/docs/guides/instrumentation.md +1 -0
  720. package/docs/guides/remote-agents.md +37 -18
  721. package/docs/meta.json +1 -1
  722. package/docs/patterns/multi-tenant-approvals.md +1 -1
  723. package/docs/reference/cli.md +2 -4
  724. package/docs/reference/typescript-api.md +35 -31
  725. package/docs/sandbox.mdx +21 -1
  726. package/docs/subagents/index.mdx +11 -28
  727. package/docs/tools/human-in-the-loop.md +43 -2
  728. package/docs/tools/overview.mdx +1 -1
  729. package/package.json +59 -9
  730. package/dist/src/compiler/normalize-extension.d.ts +0 -80
  731. package/dist/src/compiler/normalize-extension.js +0 -1
  732. package/dist/src/execution/sandbox/write-file-tool.js +0 -1
  733. package/dist/src/execution/web-fetch/tool.js +0 -1
  734. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.d.ts +0 -9
  735. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.js +0 -1
  736. package/dist/src/internal/nitro/routes/health.d.ts +0 -14
  737. package/dist/src/internal/nitro/routes/health.js +0 -1
  738. package/dist/src/node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js +0 -1
  739. package/dist/src/public/definitions/tool.js +0 -1
  740. package/dist/src/public/tool-result-narrowing.js +0 -1
  741. package/dist/src/public/tools/approval/approval-helpers.js +0 -1
  742. package/dist/src/public/tools/defaults.d.ts +0 -46
  743. package/dist/src/public/tools/defaults.js +0 -1
  744. package/dist/src/public/tools/define-bash-tool.d.ts +0 -21
  745. package/dist/src/public/tools/define-bash-tool.js +0 -1
  746. package/dist/src/public/tools/define-glob-tool.d.ts +0 -22
  747. package/dist/src/public/tools/define-glob-tool.js +0 -1
  748. package/dist/src/public/tools/define-grep-tool.d.ts +0 -22
  749. package/dist/src/public/tools/define-grep-tool.js +0 -1
  750. package/dist/src/public/tools/define-read-file-tool.d.ts +0 -21
  751. package/dist/src/public/tools/define-read-file-tool.js +0 -1
  752. package/dist/src/public/tools/define-write-file-tool.d.ts +0 -22
  753. package/dist/src/public/tools/define-write-file-tool.js +0 -1
  754. package/dist/src/public/tools/internal.d.ts +0 -13
  755. package/dist/src/public/tools/internal.js +0 -1
  756. package/dist/src/public/tools/sleep/index.js +0 -1
  757. package/dist/src/runtime/connections/callback-route.js +0 -1
  758. package/dist/src/runtime/framework-channels/index.d.ts +0 -6
  759. package/dist/src/runtime/framework-channels/index.js +0 -1
  760. package/dist/src/runtime/framework-tools/agent.d.ts +0 -29
  761. package/dist/src/runtime/framework-tools/agent.js +0 -1
  762. package/dist/src/runtime/framework-tools/ask-question.d.ts +0 -35
  763. package/dist/src/runtime/framework-tools/ask-question.js +0 -1
  764. package/dist/src/runtime/framework-tools/bash.d.ts +0 -24
  765. package/dist/src/runtime/framework-tools/bash.js +0 -1
  766. package/dist/src/runtime/framework-tools/connection-search-dynamic.d.ts +0 -19
  767. package/dist/src/runtime/framework-tools/connection-search-dynamic.js +0 -2
  768. package/dist/src/runtime/framework-tools/final-output.js +0 -1
  769. package/dist/src/runtime/framework-tools/glob.d.ts +0 -26
  770. package/dist/src/runtime/framework-tools/glob.js +0 -2
  771. package/dist/src/runtime/framework-tools/grep.js +0 -2
  772. package/dist/src/runtime/framework-tools/index.d.ts +0 -39
  773. package/dist/src/runtime/framework-tools/index.js +0 -1
  774. package/dist/src/runtime/framework-tools/read-file.d.ts +0 -27
  775. package/dist/src/runtime/framework-tools/read-file.js +0 -2
  776. package/dist/src/runtime/framework-tools/skill.d.ts +0 -12
  777. package/dist/src/runtime/framework-tools/skill.js +0 -1
  778. package/dist/src/runtime/framework-tools/subagent/local.js +0 -1
  779. package/dist/src/runtime/framework-tools/subagent/remote.js +0 -1
  780. package/dist/src/runtime/framework-tools/tasks.d.ts +0 -91
  781. package/dist/src/runtime/framework-tools/tasks.js +0 -1
  782. package/dist/src/runtime/framework-tools/web-fetch.js +0 -2
  783. package/dist/src/runtime/framework-tools/web-search.js +0 -1
  784. package/dist/src/runtime/framework-tools/write-file.d.ts +0 -23
  785. package/dist/src/runtime/framework-tools/write-file.js +0 -2
  786. package/dist/src/runtime/governance/auth/jwt-ecdsa.js +0 -1
  787. package/dist/src/runtime/governance/auth/jwt-hmac.js +0 -1
  788. package/dist/src/runtime/governance/auth/oidc.js +0 -1
  789. package/dist/src/runtime/input/types.js +0 -1
  790. package/dist/src/runtime/session-callback-route.d.ts +0 -6
  791. package/dist/src/runtime/session-callback-route.js +0 -1
  792. package/dist/src/runtime/task-input-response-route.d.ts +0 -5
  793. package/dist/src/runtime/task-input-response-route.js +0 -1
  794. package/dist/src/shared/durable-dynamic-tool-callbacks.js +0 -1
  795. package/dist/src/shared/dynamic-tool-definition.d.ts +0 -154
  796. package/dist/src/shared/dynamic-tool-definition.js +0 -1
  797. package/dist/src/shared/eve-server-health.d.ts +0 -5
  798. package/dist/src/shared/eve-server-health.js +0 -1
  799. package/dist/src/shared/tool-definition.d.ts +0 -89
  800. /package/dist/src/{runtime/governance → channel}/auth/http-basic.js +0 -0
  801. /package/dist/src/{runtime/governance → channel}/auth/token-claims.js +0 -0
  802. /package/dist/src/{runtime/governance → channel}/auth/types.js +0 -0
  803. /package/dist/src/{runtime/governance → channel}/auth/vercel-oidc-project.js +0 -0
  804. /package/dist/src/{runtime/governance/network → channel}/ip-allow-list.d.ts +0 -0
  805. /package/dist/src/{runtime/governance/network → channel}/ip-allow-list.js +0 -0
  806. /package/dist/src/{execution/skills/types.js → context/session-context.js} +0 -0
  807. /package/dist/src/execution/sandbox/{bash-tool.js → bash.js} +0 -0
  808. /package/dist/src/{runtime/framework-tools → execution/tools}/file-state.js +0 -0
  809. /package/dist/src/{runtime/framework-tools → execution/tools}/sleep.d.ts +0 -0
  810. /package/dist/src/{runtime/framework-tools → execution/tools}/sleep.js +0 -0
  811. /package/dist/src/execution/web-fetch/{tool.d.ts → execute.d.ts} +0 -0
  812. /package/dist/src/{shared/tool-definition.js → runtime/connections/registry-types.js} +0 -0
  813. /package/dist/src/{runtime/connections/types.js → shared/connection-types.js} +0 -0
  814. /package/dist/src/{runtime/sessions/auth.d.ts → shared/session-auth.d.ts} +0 -0
  815. /package/dist/src/{runtime/sessions/auth.js → shared/session-auth.js} +0 -0
  816. /package/dist/src/{runtime/connections → shared}/validate-authorization.js +0 -0
  817. /package/dist/src/{public/tools/output-builders.js → tools/model-output.js} +0 -0
  818. /package/dist/src/{shared/tool-schema.d.ts → tools/schema.d.ts} +0 -0
  819. /package/dist/src/{shared/tool-schema.js → tools/schema.js} +0 -0
  820. /package/dist/src/{shared/tool-task.d.ts → tools/task.d.ts} +0 -0
  821. /package/dist/src/{shared/tool-task.js → tools/task.js} +0 -0
@@ -23,6 +23,7 @@ import {
23
23
  Conversation,
24
24
  ConversationContent,
25
25
  ConversationScrollButton,
26
+ ConversationTopFade,
26
27
  } from "@/components/ai-elements/conversation";
27
28
  import { Message, MessageContent } from "@/components/ai-elements/message";
28
29
  import {
@@ -31,6 +32,7 @@ import {
31
32
  type PromptInputMessage,
32
33
  PromptInputSubmit,
33
34
  PromptInputTextarea,
35
+ usePromptInputAttachments,
34
36
  } from "@/components/ai-elements/prompt-input";
35
37
  import { Shimmer } from "@/components/ai-elements/shimmer";
36
38
  import { Button } from "@/components/ui/button";
@@ -47,6 +49,7 @@ export function AgentChat({
47
49
  readonly sessionless?: boolean;
48
50
  }) {
49
51
  const [cancellationError, setCancellationError] = useState<string>();
52
+ const [hasInputText, setHasInputText] = useState(false);
50
53
  const agent = useEveAgent({
51
54
  initialSession:
52
55
  sessionId === undefined
@@ -70,7 +73,7 @@ export function AgentChat({
70
73
  });
71
74
 
72
75
  const isBusy = agent.status === "submitted" || agent.status === "streaming";
73
- const isRestoring = sessionId !== undefined && agent.events.length === 0 && isBusy;
76
+ const isResuming = agent.status === "resuming";
74
77
  const isEmpty = agent.data.messages.length === 0;
75
78
  const lastMessage = agent.data.messages.at(-1);
76
79
  const isPendingAssistantShell =
@@ -79,10 +82,10 @@ export function AgentChat({
79
82
  const showPendingThinking =
80
83
  isBusy &&
81
84
  (agent.status === "submitted" || lastMessage?.role !== "assistant" || isPendingAssistantShell);
82
- const turnFailure = isBusy ? undefined : getLatestTurnFailure(agent.events);
85
+ const turnFailure = isBusy || isResuming ? undefined : getLatestTurnFailure(agent.events);
83
86
  const errorMessage = cancellationError ?? agent.error?.message ?? turnFailure;
84
87
  const hasConversationContent = sessionless || !isEmpty || errorMessage !== undefined;
85
- const showConversationLayout = isRestoring || hasConversationContent;
88
+ const showConversationLayout = isResuming || hasConversationContent;
86
89
  const activeSessionId = sessionId ?? agent.session?.sessionId;
87
90
 
88
91
  const requestCancellation = () => {
@@ -94,8 +97,9 @@ export function AgentChat({
94
97
 
95
98
  const handleSubmit = async (message: PromptInputMessage) => {
96
99
  const text = message.text.trim();
97
- if ((text.length === 0 && message.files.length === 0) || isRestoring) return;
100
+ if ((text.length === 0 && message.files.length === 0) || isResuming) return;
98
101
 
102
+ setHasInputText(false);
99
103
  setCancellationError(undefined);
100
104
  const options = isBusy ? { turnPolicy: "steer" as const } : undefined;
101
105
 
@@ -122,18 +126,17 @@ export function AgentChat({
122
126
 
123
127
  const composer = (
124
128
  <PromptInput onSubmit={handleSubmit}>
125
- <PromptInputTextarea disabled={isRestoring} placeholder="Send a message…" />
126
- {isBusy && !isRestoring ? (
127
- <PromptInputButton
128
- aria-label="Stop"
129
- className="absolute right-12 bottom-2.5 rounded-full"
130
- onClick={requestCancellation}
131
- variant="default"
132
- >
133
- <SquareIcon className="size-3 fill-current" />
134
- </PromptInputButton>
135
- ) : null}
136
- <PromptInputSubmit disabled={isRestoring} status={isBusy ? undefined : agent.status} />
129
+ <PromptInputTextarea
130
+ disabled={isResuming}
131
+ onChange={(event) => setHasInputText(event.currentTarget.value.trim().length > 0)}
132
+ placeholder="Send a message…"
133
+ />
134
+ <ComposerAction
135
+ hasInputText={hasInputText}
136
+ isBusy={isBusy}
137
+ isResuming={isResuming}
138
+ onCancel={requestCancellation}
139
+ />
137
140
  </PromptInput>
138
141
  );
139
142
 
@@ -154,13 +157,14 @@ export function AgentChat({
154
157
  : \`eve:web-chat-scroll:\${activeSessionId}\`
155
158
  }
156
159
  >
160
+ <ConversationTopFade className="top-14" />
157
161
  <ConversationContent className="mx-auto w-full max-w-3xl gap-6 px-4 pt-20 pb-36 sm:px-6">
158
162
  {agent.data.messages.map((message, index) =>
159
163
  showPendingThinking &&
160
164
  isPendingAssistantShell &&
161
165
  message.id === lastMessage.id ? null : (
162
166
  <AgentMessage
163
- canRespond={!isBusy}
167
+ canRespond={!isBusy && !isResuming}
164
168
  isStreaming={
165
169
  agent.status === "streaming" && index === agent.data.messages.length - 1
166
170
  }
@@ -199,6 +203,36 @@ export function AgentChat({
199
203
  );
200
204
  }
201
205
 
206
+ function ComposerAction({
207
+ hasInputText,
208
+ isBusy,
209
+ isResuming,
210
+ onCancel,
211
+ }: {
212
+ readonly hasInputText: boolean;
213
+ readonly isBusy: boolean;
214
+ readonly isResuming: boolean;
215
+ readonly onCancel: () => void;
216
+ }) {
217
+ const attachments = usePromptInputAttachments();
218
+ const canSubmit = hasInputText || attachments.files.length > 0;
219
+
220
+ if (!isBusy || canSubmit) {
221
+ return <PromptInputSubmit disabled={isResuming} />;
222
+ }
223
+
224
+ return (
225
+ <PromptInputButton
226
+ aria-label="Stop"
227
+ className="absolute right-2.5 bottom-2.5"
228
+ onClick={onCancel}
229
+ variant="outline"
230
+ >
231
+ <SquareIcon className="size-3 fill-current" />
232
+ </PromptInputButton>
233
+ );
234
+ }
235
+
202
236
  function ErrorMessage({ message }: { readonly message: string }) {
203
237
  return (
204
238
  <Message className="max-w-full" from="assistant">
@@ -226,14 +260,14 @@ function ChatHeader({ canStartNewChat }: { readonly canStartNewChat: boolean })
226
260
  {canStartNewChat ? (
227
261
  <Button
228
262
  aria-label="Start a new chat"
229
- className="pointer-events-auto fixed top-2 right-6"
263
+ className="pointer-events-auto fixed top-3 right-6 pr-4"
230
264
  onClick={() => window.location.assign("/s")}
231
265
  size="sm"
232
266
  type="button"
233
267
  variant="ghost"
234
268
  >
235
269
  <PlusIcon className="size-4" />
236
- <span className="hidden sm:inline">New chat</span>
270
+ <span className="hidden font-normal text-sm sm:inline">New chat</span>
237
271
  </Button>
238
272
  ) : null}
239
273
  </div>
@@ -290,8 +324,11 @@ import type {
290
324
  EveMessageInputRequest,
291
325
  EveMessagePart,
292
326
  } from "eve/react";
327
+ import { useState } from "react";
293
328
  import {
329
+ ArrowRightIcon,
294
330
  CheckCircleIcon,
331
+ CheckIcon,
295
332
  ExternalLinkIcon,
296
333
  FileIcon,
297
334
  ImageIcon,
@@ -301,17 +338,17 @@ import {
301
338
  import { Message, MessageContent, MessageResponse } from "@/components/ai-elements/message";
302
339
  import {
303
340
  Question,
304
- QuestionActions,
305
- QuestionDescription,
306
341
  QuestionInput,
307
342
  QuestionOption,
308
343
  QuestionOptions,
309
344
  QuestionPrompt,
310
345
  type QuestionResponse,
311
346
  QuestionSubmit,
347
+ type QuestionValue,
312
348
  } from "@/components/ai-elements/question";
313
349
  import { Reasoning, ReasoningContent, ReasoningTrigger } from "@/components/ai-elements/reasoning";
314
350
  import {
351
+ BashToolContent,
315
352
  Tool,
316
353
  ToolContent,
317
354
  ToolHeader,
@@ -425,13 +462,19 @@ function AgentMessagePart({
425
462
  type="dynamic-tool"
426
463
  />
427
464
  <ToolContent>
428
- <ToolInput input={part.input} />
465
+ {part.toolName === "bash" ? (
466
+ <BashToolContent errorText={part.errorText} input={part.input} output={part.output} />
467
+ ) : (
468
+ <ToolInput input={part.input} />
469
+ )}
429
470
  <InputRequestActions
430
471
  canRespond={canRespond}
431
472
  part={part}
432
473
  onInputResponses={onInputResponses}
433
474
  />
434
- <ToolOutput errorText={part.errorText} output={part.output} />
475
+ {part.toolName === "bash" ? null : (
476
+ <ToolOutput errorText={part.errorText} output={part.output} />
477
+ )}
435
478
  </ToolContent>
436
479
  </Tool>
437
480
  );
@@ -450,11 +493,22 @@ function QuestionRequest({
450
493
  readonly inputResponse?: AgentInputResponse;
451
494
  readonly onInputResponses: (responses: readonly AgentInputResponse[]) => void | Promise<void>;
452
495
  }) {
453
- const selectedOption = inputRequest.options?.find(
454
- (option) => option.id === inputResponse?.optionId,
455
- );
456
496
  const hasOptions = (inputRequest.options?.length ?? 0) > 0;
457
497
  const acceptsFreeform = inputRequest.allowFreeform === true || !hasOptions;
498
+ const [questionValue, setQuestionValue] = useState<QuestionValue>({
499
+ selectedValues: inputResponse?.optionId ? [inputResponse.optionId] : [],
500
+ text: inputResponse?.text ?? "",
501
+ });
502
+
503
+ const submitOption = (optionId: string) => {
504
+ setQuestionValue((value) => ({ ...value, selectedValues: [optionId] }));
505
+ return onInputResponses([
506
+ {
507
+ optionId,
508
+ requestId: inputRequest.requestId,
509
+ },
510
+ ]);
511
+ };
458
512
 
459
513
  const submitResponse = ({ selectedValues, text }: QuestionResponse) =>
460
514
  onInputResponses([
@@ -467,40 +521,61 @@ function QuestionRequest({
467
521
 
468
522
  return (
469
523
  <Question
470
- defaultValue={{
471
- selectedValues: inputResponse?.optionId ? [inputResponse.optionId] : [],
472
- text: inputResponse?.text ?? "",
473
- }}
474
524
  disabled={!canRespond || inputResponse !== undefined}
475
525
  onSubmit={submitResponse}
526
+ onValueChange={setQuestionValue}
527
+ value={questionValue}
476
528
  >
477
529
  <QuestionPrompt>{inputRequest.prompt}</QuestionPrompt>
478
530
  {hasOptions ? (
479
531
  <QuestionOptions className="flex-col items-stretch" aria-label={inputRequest.prompt}>
480
- {inputRequest.options?.map((option) => (
481
- <QuestionOption className="justify-start text-left" key={option.id} value={option.id}>
482
- <span>
483
- <span className="block">{option.label}</span>
532
+ {inputRequest.options?.map((option, index) => (
533
+ <QuestionOption
534
+ className="justify-start px-3 py-2 text-left"
535
+ key={option.id}
536
+ onClick={() => void submitOption(option.id)}
537
+ value={option.id}
538
+ >
539
+ <span className="min-w-0 flex-1">
540
+ <span className="block text-foreground text-sm leading-tight">{option.label}</span>
484
541
  {option.description ? (
485
- <span className="block font-normal text-xs opacity-70">{option.description}</span>
542
+ <span className="block text-sm text-muted-foreground leading-tight">
543
+ {option.description}
544
+ </span>
486
545
  ) : null}
487
546
  </span>
547
+ {inputResponse === undefined ? (
548
+ <span aria-hidden="true" className="relative size-6 shrink-0">
549
+ <span className="absolute inset-0 flex items-center justify-center rounded-full bg-foreground/8 text-xs text-muted-foreground transition-opacity group-hover/option:opacity-0 group-focus-visible/option:opacity-0">
550
+ {index + 1}
551
+ </span>
552
+ <ArrowRightIcon className="absolute top-1/2 left-1/2 size-4 -translate-x-1/2 -translate-y-1/2 text-muted-foreground opacity-0 transition-[color,opacity] group-hover/option:text-foreground group-hover/option:opacity-100 group-focus-visible/option:opacity-100" />
553
+ </span>
554
+ ) : (
555
+ <CheckIcon className="size-4 shrink-0 opacity-0 transition-opacity group-data-[state=checked]/option:opacity-100" />
556
+ )}
488
557
  </QuestionOption>
489
558
  ))}
490
559
  </QuestionOptions>
491
560
  ) : null}
492
561
  {acceptsFreeform ? (
493
- <QuestionInput aria-label="Answer" placeholder="Type your answer…" />
562
+ <div className="relative">
563
+ <QuestionInput
564
+ aria-label="Answer"
565
+ className={inputResponse === undefined ? "pr-12 pb-12" : undefined}
566
+ placeholder="Type your answer…"
567
+ />
568
+ {inputResponse === undefined && questionValue.text.trim().length > 0 ? (
569
+ <QuestionSubmit
570
+ aria-label="Answer"
571
+ className="absolute right-2 bottom-2"
572
+ size="icon-sm"
573
+ >
574
+ <ArrowRightIcon />
575
+ </QuestionSubmit>
576
+ ) : null}
577
+ </div>
494
578
  ) : null}
495
- {inputResponse ? (
496
- <QuestionDescription>
497
- Responded: {selectedOption?.label ?? inputResponse.text ?? inputResponse.optionId}
498
- </QuestionDescription>
499
- ) : (
500
- <QuestionActions>
501
- <QuestionSubmit>Answer</QuestionSubmit>
502
- </QuestionActions>
503
- )}
504
579
  </Question>
505
580
  );
506
581
  }
@@ -789,6 +864,8 @@ function partKey(part: EveMessagePart, index: number): string {
789
864
 
790
865
  html {
791
866
  height: 100%;
867
+ -webkit-font-smoothing: antialiased;
868
+ -moz-osx-font-smoothing: grayscale;
792
869
  }
793
870
 
794
871
  body {
@@ -1700,6 +1777,49 @@ export const ConversationContent = ({ className, ...props }: ConversationContent
1700
1777
  <StickToBottom.Content className={cn("flex flex-col gap-8 p-4", className)} {...props} />
1701
1778
  );
1702
1779
 
1780
+ export type ConversationTopFadeProps = ComponentProps<"div">;
1781
+
1782
+ export const ConversationTopFade = ({ className, ...props }: ConversationTopFadeProps) => {
1783
+ const { contentRef, scrollRef } = useStickToBottomContext();
1784
+ const [isVisible, setIsVisible] = useState(false);
1785
+
1786
+ useEffect(() => {
1787
+ const scrollElement = scrollRef.current;
1788
+ if (scrollElement === null) return;
1789
+
1790
+ const updateVisibility = () => {
1791
+ setIsVisible(scrollElement.scrollTop > 0);
1792
+ };
1793
+
1794
+ updateVisibility();
1795
+ scrollElement.addEventListener("scroll", updateVisibility, { passive: true });
1796
+
1797
+ const resizeObserver = new ResizeObserver(updateVisibility);
1798
+ resizeObserver.observe(scrollElement);
1799
+ if (contentRef.current !== null) {
1800
+ resizeObserver.observe(contentRef.current);
1801
+ }
1802
+
1803
+ return () => {
1804
+ scrollElement.removeEventListener("scroll", updateVisibility);
1805
+ resizeObserver.disconnect();
1806
+ };
1807
+ }, [contentRef, scrollRef]);
1808
+
1809
+ return (
1810
+ <div
1811
+ {...props}
1812
+ aria-hidden
1813
+ className={cn(
1814
+ "pointer-events-none absolute inset-x-0 top-0 z-10 h-6 bg-linear-to-b from-background via-background/80 to-transparent transition-opacity duration-150",
1815
+ isVisible ? "opacity-100" : "opacity-0",
1816
+ className,
1817
+ )}
1818
+ data-slot="conversation-top-fade"
1819
+ />
1820
+ );
1821
+ };
1822
+
1703
1823
  export type ConversationEmptyStateProps = ComponentProps<"div"> & {
1704
1824
  title?: string;
1705
1825
  description?: string;
@@ -2990,8 +3110,8 @@ export const PromptInput = ({
2990
3110
  <form className="w-full" onSubmit={handleSubmit} ref={formRef} {...props}>
2991
3111
  <InputGroup
2992
3112
  className={cn(
2993
- "overflow-hidden rounded-2xl bg-card shadow-sm",
2994
- "focus-within:border-foreground has-[[data-slot=input-group-control]:focus-visible]:border-foreground",
3113
+ "overflow-hidden rounded-2xl bg-card/80 shadow-sm backdrop-blur-md",
3114
+ "focus-within:border-foreground! has-[[data-slot=input-group-control]:focus-visible]:border-foreground!",
2995
3115
  className,
2996
3116
  )}
2997
3117
  >
@@ -3121,7 +3241,7 @@ export const PromptInputTextarea = ({
3121
3241
 
3122
3242
  return (
3123
3243
  <InputGroupTextarea
3124
- className={cn("field-sizing-content max-h-48 min-h-18", className)}
3244
+ className={cn("field-sizing-content max-h-48 min-h-18 text-sm!", className)}
3125
3245
  name="message"
3126
3246
  onCompositionEnd={handleCompositionEnd}
3127
3247
  onCompositionStart={handleCompositionStart}
@@ -3183,7 +3303,11 @@ export const PromptInputButton = ({
3183
3303
 
3184
3304
  const button = (
3185
3305
  <InputGroupButton
3186
- className={cn(className)}
3306
+ className={cn(
3307
+ "rounded-full",
3308
+ variant === "outline" && "bg-card hover:bg-card dark:hover:bg-input/30",
3309
+ className,
3310
+ )}
3187
3311
  size={newSize}
3188
3312
  type="button"
3189
3313
  variant={variant}
@@ -3446,6 +3570,7 @@ import type {
3446
3570
  ComponentProps,
3447
3571
  FormEvent,
3448
3572
  HTMLAttributes,
3573
+ KeyboardEvent,
3449
3574
  MouseEvent,
3450
3575
  ReactNode,
3451
3576
  } from "react";
@@ -3597,7 +3722,7 @@ export const Question = ({
3597
3722
  return (
3598
3723
  <QuestionContext.Provider value={contextValue}>
3599
3724
  <form
3600
- className={cn("space-y-4 rounded-lg border bg-background p-4", className)}
3725
+ className={cn("space-y-3 rounded-xl border bg-card p-4", className)}
3601
3726
  onSubmit={handleSubmit}
3602
3727
  {...props}
3603
3728
  >
@@ -3610,7 +3735,7 @@ export const Question = ({
3610
3735
  export type QuestionPromptProps = HTMLAttributes<HTMLParagraphElement>;
3611
3736
 
3612
3737
  export const QuestionPrompt = ({ className, ...props }: QuestionPromptProps) => (
3613
- <p className={cn("font-medium text-sm", className)} {...props} />
3738
+ <p className={cn("font-medium text-sm leading-snug", className)} {...props} />
3614
3739
  );
3615
3740
 
3616
3741
  export type QuestionDescriptionProps = HTMLAttributes<HTMLParagraphElement>;
@@ -3626,7 +3751,7 @@ export const QuestionOptions = ({ className, ...props }: QuestionOptionsProps) =
3626
3751
 
3627
3752
  return (
3628
3753
  <div
3629
- className={cn("flex flex-wrap gap-2", className)}
3754
+ className={cn("flex flex-wrap gap-1.5", className)}
3630
3755
  role={selectionMode === "single" ? "radiogroup" : "group"}
3631
3756
  {...props}
3632
3757
  />
@@ -3660,12 +3785,21 @@ export const QuestionOption = ({
3660
3785
  return (
3661
3786
  <Button
3662
3787
  aria-checked={isSelected}
3663
- className={cn("h-auto whitespace-normal", className)}
3788
+ // Selection only changes colors: the border is always present so the
3789
+ // layout never shifts when an option is picked.
3790
+ className={cn(
3791
+ "group/option h-auto whitespace-normal border border-input font-normal shadow-none transition-colors",
3792
+ isSelected
3793
+ ? "border-foreground/20 bg-accent text-accent-foreground disabled:opacity-100"
3794
+ : "text-muted-foreground hover:bg-accent/50 hover:text-foreground",
3795
+ className,
3796
+ )}
3797
+ data-state={isSelected ? "checked" : "unchecked"}
3664
3798
  disabled={question.disabled || disabled}
3665
3799
  onClick={handleClick}
3666
3800
  role={role}
3667
3801
  type="button"
3668
- variant={variant ?? (isSelected ? "default" : "outline")}
3802
+ variant={variant ?? "ghost"}
3669
3803
  {...props}
3670
3804
  >
3671
3805
  {children ?? value}
@@ -3675,7 +3809,13 @@ export const QuestionOption = ({
3675
3809
 
3676
3810
  export type QuestionInputProps = Omit<ComponentProps<typeof Textarea>, "defaultValue" | "value">;
3677
3811
 
3678
- export const QuestionInput = ({ className, disabled, onChange, ...props }: QuestionInputProps) => {
3812
+ export const QuestionInput = ({
3813
+ className,
3814
+ disabled,
3815
+ onChange,
3816
+ onKeyDown,
3817
+ ...props
3818
+ }: QuestionInputProps) => {
3679
3819
  const question = useQuestion();
3680
3820
  const handleChange = useCallback(
3681
3821
  (event: ChangeEvent<HTMLTextAreaElement>) => {
@@ -3684,12 +3824,33 @@ export const QuestionInput = ({ className, disabled, onChange, ...props }: Quest
3684
3824
  },
3685
3825
  [onChange, question],
3686
3826
  );
3827
+ const handleKeyDown = useCallback(
3828
+ (event: KeyboardEvent<HTMLTextAreaElement>) => {
3829
+ onKeyDown?.(event);
3830
+ if (
3831
+ event.defaultPrevented ||
3832
+ event.key !== "Enter" ||
3833
+ event.shiftKey ||
3834
+ event.nativeEvent.isComposing
3835
+ ) {
3836
+ return;
3837
+ }
3838
+
3839
+ event.preventDefault();
3840
+ event.currentTarget.form?.requestSubmit();
3841
+ },
3842
+ [onKeyDown],
3843
+ );
3687
3844
 
3688
3845
  return (
3689
3846
  <Textarea
3690
- className={cn("min-h-20", className)}
3847
+ className={cn(
3848
+ "min-h-16 resize-none rounded-lg text-sm shadow-none focus-visible:border-foreground!",
3849
+ className,
3850
+ )}
3691
3851
  disabled={question.disabled || disabled}
3692
3852
  onChange={handleChange}
3853
+ onKeyDown={handleKeyDown}
3693
3854
  value={question.text}
3694
3855
  {...props}
3695
3856
  />
@@ -3708,14 +3869,22 @@ export type QuestionSubmitProps = ComponentProps<typeof Button> & {
3708
3869
 
3709
3870
  export const QuestionSubmit = ({
3710
3871
  children = "Submit",
3872
+ className,
3711
3873
  disabled,
3874
+ size = "sm",
3712
3875
  ...props
3713
3876
  }: QuestionSubmitProps) => {
3714
3877
  const question = useQuestion();
3715
3878
  const hasResponse = question.selectedValues.length > 0 || question.text.trim().length > 0;
3716
3879
 
3717
3880
  return (
3718
- <Button disabled={question.disabled || disabled || !hasResponse} type="submit" {...props}>
3881
+ <Button
3882
+ className={cn("text-sm! shadow-none", className)}
3883
+ disabled={question.disabled || disabled || !hasResponse}
3884
+ size={size}
3885
+ type="submit"
3886
+ {...props}
3887
+ >
3719
3888
  {children}
3720
3889
  </Button>
3721
3890
  );
@@ -3770,7 +3939,6 @@ export type ReasoningProps = ComponentProps<typeof Collapsible> & {
3770
3939
  duration?: number;
3771
3940
  };
3772
3941
 
3773
- const AUTO_CLOSE_DELAY = 1000;
3774
3942
  const MS_IN_S = 1000;
3775
3943
 
3776
3944
  export const Reasoning = memo(
@@ -3825,12 +3993,8 @@ export const Reasoning = memo(
3825
3993
  // Auto-close when streaming ends (once only, and only if it ever streamed)
3826
3994
  useEffect(() => {
3827
3995
  if (hasEverStreamedRef.current && !isStreaming && isOpen && !hasAutoClosed) {
3828
- const timer = setTimeout(() => {
3829
- setIsOpen(false);
3830
- setHasAutoClosed(true);
3831
- }, AUTO_CLOSE_DELAY);
3832
-
3833
- return () => clearTimeout(timer);
3996
+ setIsOpen(false);
3997
+ setHasAutoClosed(true);
3834
3998
  }
3835
3999
  }, [isStreaming, isOpen, setIsOpen, hasAutoClosed]);
3836
4000
 
@@ -4002,30 +4166,22 @@ const ShimmerComponent = ({
4002
4166
  export const Shimmer = memo(ShimmerComponent);
4003
4167
  `,"components/ai-elements/tool.tsx":`"use client";
4004
4168
 
4005
- import { Badge } from "@/components/ui/badge";
4006
4169
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible";
4007
4170
  import { cn } from "@/lib/utils";
4008
4171
  import type { DynamicToolUIPart, ToolUIPart } from "ai";
4009
- import {
4010
- CheckCircleIcon,
4011
- ChevronDownIcon,
4012
- CircleIcon,
4013
- ClockIcon,
4014
- WrenchIcon,
4015
- XCircleIcon,
4016
- } from "lucide-react";
4172
+ import { ChevronRightIcon, TerminalIcon, WrenchIcon } from "lucide-react";
4017
4173
  import type { ComponentProps, ReactNode } from "react";
4018
4174
  import { isValidElement } from "react";
4019
4175
 
4020
4176
  import { CodeBlock } from "./code-block";
4021
4177
 
4178
+ const compactCodeBlockClassName =
4179
+ "rounded-none border-0 bg-transparent [&_pre]:!bg-transparent [&_pre]:px-3 [&_pre]:pt-2 [&_pre]:pb-3 [&_pre]:text-xs [&_code]:text-xs";
4180
+
4022
4181
  export type ToolProps = ComponentProps<typeof Collapsible>;
4023
4182
 
4024
4183
  export const Tool = ({ className, ...props }: ToolProps) => (
4025
- <Collapsible
4026
- className={cn("group not-prose mb-4 w-full rounded-md border", className)}
4027
- {...props}
4028
- />
4184
+ <Collapsible className={cn("group not-prose w-full", className)} {...props} />
4029
4185
  );
4030
4186
 
4031
4187
  export type ToolPart = ToolUIPart | DynamicToolUIPart;
@@ -4052,22 +4208,12 @@ const statusLabels: Record<ToolPart["state"], string> = {
4052
4208
  "output-error": "Error",
4053
4209
  };
4054
4210
 
4055
- const statusIcons: Record<ToolPart["state"], ReactNode> = {
4056
- "approval-requested": <ClockIcon className="size-4 text-yellow-600" />,
4057
- "approval-responded": <CheckCircleIcon className="size-4 text-blue-600" />,
4058
- "input-available": <ClockIcon className="size-4 animate-pulse" />,
4059
- "input-streaming": <CircleIcon className="size-4" />,
4060
- "output-available": <CheckCircleIcon className="size-4 text-green-600" />,
4061
- "output-denied": <XCircleIcon className="size-4 text-orange-600" />,
4062
- "output-error": <XCircleIcon className="size-4 text-red-600" />,
4063
- };
4064
-
4065
- export const getStatusBadge = (status: ToolPart["state"]) => (
4066
- <Badge className="gap-1.5 rounded-full text-xs" variant="secondary">
4067
- {statusIcons[status]}
4068
- {statusLabels[status]}
4069
- </Badge>
4070
- );
4211
+ export const getStatusIndicator = (status: ToolPart["state"]) =>
4212
+ status === "output-available" ? null : (
4213
+ <span className={cn("text-sm", status === "output-error" && "text-destructive")}>
4214
+ {statusLabels[status]}
4215
+ </span>
4216
+ );
4071
4217
 
4072
4218
  export const ToolHeader = ({
4073
4219
  className,
@@ -4078,18 +4224,24 @@ export const ToolHeader = ({
4078
4224
  ...props
4079
4225
  }: ToolHeaderProps) => {
4080
4226
  const derivedName = type === "dynamic-tool" ? toolName : type.split("-").slice(1).join("-");
4227
+ const displayName = title ?? derivedName;
4081
4228
 
4082
4229
  return (
4083
4230
  <CollapsibleTrigger
4084
- className={cn("flex w-full items-center justify-between gap-4 p-3", className)}
4231
+ className={cn(
4232
+ "flex w-full items-center gap-2 py-0.5 text-left text-muted-foreground transition-colors hover:text-foreground",
4233
+ className,
4234
+ )}
4085
4235
  {...props}
4086
4236
  >
4087
- <div className="flex items-center gap-2">
4088
- <WrenchIcon className="size-4 text-muted-foreground" />
4089
- <span className="font-medium text-sm">{title ?? derivedName}</span>
4090
- {getStatusBadge(state)}
4091
- </div>
4092
- <ChevronDownIcon className="size-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180" />
4237
+ {displayName === "bash" ? (
4238
+ <TerminalIcon className="size-4 shrink-0" />
4239
+ ) : (
4240
+ <WrenchIcon className="size-4 shrink-0" />
4241
+ )}
4242
+ <span className="text-sm">{displayName}</span>
4243
+ {getStatusIndicator(state)}
4244
+ <ChevronRightIcon className="size-3.5 shrink-0 transition-transform group-data-[state=open]:rotate-90" />
4093
4245
  </CollapsibleTrigger>
4094
4246
  );
4095
4247
  };
@@ -4099,24 +4251,82 @@ export type ToolContentProps = ComponentProps<typeof CollapsibleContent>;
4099
4251
  export const ToolContent = ({ className, ...props }: ToolContentProps) => (
4100
4252
  <CollapsibleContent
4101
4253
  className={cn(
4102
- "data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 space-y-4 p-4 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
4254
+ "data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 space-y-4 py-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",
4103
4255
  className,
4104
4256
  )}
4105
4257
  {...props}
4106
4258
  />
4107
4259
  );
4108
4260
 
4261
+ export type BashToolContentProps = ComponentProps<"div"> & {
4262
+ input: ToolPart["input"];
4263
+ output: ToolPart["output"];
4264
+ errorText: ToolPart["errorText"];
4265
+ };
4266
+
4267
+ export const BashToolContent = ({
4268
+ className,
4269
+ input,
4270
+ output,
4271
+ errorText,
4272
+ ...props
4273
+ }: BashToolContentProps) => {
4274
+ const command = getRecordValue(input, "command");
4275
+ const stdout = getRecordValue(output, "stdout") ?? (typeof output === "string" ? output : "");
4276
+ const stderr = getRecordValue(output, "stderr") ?? errorText ?? "";
4277
+ const exitCode = getRecordValue(output, "exitCode");
4278
+ const hasResult = Boolean(stdout || stderr || (typeof exitCode === "number" && exitCode !== 0));
4279
+
4280
+ return (
4281
+ <div className={cn("space-y-2", className)} {...props}>
4282
+ <pre className="overflow-x-auto whitespace-pre-wrap rounded-md bg-muted/50 p-3 font-mono text-xs leading-relaxed">
4283
+ <code>
4284
+ <span className="text-muted-foreground">$ </span>
4285
+ {command ?? "…"}
4286
+ </code>
4287
+ </pre>
4288
+ {hasResult ? (
4289
+ <pre className="overflow-x-auto whitespace-pre-wrap rounded-md bg-muted/50 p-3 font-mono text-xs leading-relaxed">
4290
+ <code>
4291
+ <span className="mb-2 block font-sans text-[10px] text-muted-foreground uppercase tracking-wide">
4292
+ Output
4293
+ </span>
4294
+ {stdout ? <span className="block">{stdout.trimEnd()}</span> : null}
4295
+ {stderr ? <span className="block text-destructive">{stderr.trimEnd()}</span> : null}
4296
+ {typeof exitCode === "number" && exitCode !== 0 ? (
4297
+ <span className="block text-muted-foreground">Exited with code {exitCode}</span>
4298
+ ) : null}
4299
+ </code>
4300
+ </pre>
4301
+ ) : null}
4302
+ </div>
4303
+ );
4304
+ };
4305
+
4306
+ const getRecordValue = (value: unknown, key: string): string | number | undefined => {
4307
+ if (typeof value !== "object" || value === null || !(key in value)) {
4308
+ return undefined;
4309
+ }
4310
+
4311
+ const property = value[key as keyof typeof value];
4312
+ return typeof property === "string" || typeof property === "number" ? property : undefined;
4313
+ };
4314
+
4109
4315
  export type ToolInputProps = ComponentProps<"div"> & {
4110
4316
  input: ToolPart["input"];
4111
4317
  };
4112
4318
 
4113
4319
  export const ToolInput = ({ className, input, ...props }: ToolInputProps) => (
4114
- <div className={cn("space-y-2 overflow-hidden", className)} {...props}>
4115
- <h4 className="font-medium text-muted-foreground text-xs uppercase tracking-wide">
4320
+ <div className={cn("overflow-hidden rounded-md bg-muted/50", className)} {...props}>
4321
+ <span className="block px-3 pt-3 font-sans text-[10px] text-muted-foreground uppercase tracking-wide">
4116
4322
  Parameters
4117
- </h4>
4118
- <div className="rounded-md bg-muted/50">
4119
- <CodeBlock code={JSON.stringify(input, null, 2)} language="json" />
4323
+ </span>
4324
+ <div>
4325
+ <CodeBlock
4326
+ className={compactCodeBlockClassName}
4327
+ code={JSON.stringify(input, null, 2)}
4328
+ language="json"
4329
+ />
4120
4330
  </div>
4121
4331
  </div>
4122
4332
  );
@@ -4134,25 +4344,31 @@ export const ToolOutput = ({ className, output, errorText, ...props }: ToolOutpu
4134
4344
  let Output = <div>{output as ReactNode}</div>;
4135
4345
 
4136
4346
  if (typeof output === "object" && !isValidElement(output)) {
4137
- Output = <CodeBlock code={JSON.stringify(output, null, 2)} language="json" />;
4347
+ Output = (
4348
+ <CodeBlock
4349
+ className={compactCodeBlockClassName}
4350
+ code={JSON.stringify(output, null, 2)}
4351
+ language="json"
4352
+ />
4353
+ );
4138
4354
  } else if (typeof output === "string") {
4139
- Output = <CodeBlock code={output} language="json" />;
4355
+ Output = <CodeBlock className={compactCodeBlockClassName} code={output} language="json" />;
4140
4356
  }
4141
4357
 
4142
4358
  return (
4143
- <div className={cn("space-y-2", className)} {...props}>
4144
- <h4 className="font-medium text-muted-foreground text-xs uppercase tracking-wide">
4359
+ <div
4360
+ className={cn(
4361
+ "overflow-x-auto rounded-md text-xs [&_table]:w-full",
4362
+ errorText ? "bg-destructive/10 text-destructive" : "bg-muted/50 text-foreground",
4363
+ className,
4364
+ )}
4365
+ {...props}
4366
+ >
4367
+ <span className="block px-3 pt-3 font-sans text-[10px] text-muted-foreground uppercase tracking-wide">
4145
4368
  {errorText ? "Error" : "Result"}
4146
- </h4>
4147
- <div
4148
- className={cn(
4149
- "overflow-x-auto rounded-md text-xs [&_table]:w-full",
4150
- errorText ? "bg-destructive/10 text-destructive" : "bg-muted/50 text-foreground",
4151
- )}
4152
- >
4153
- {errorText && <div>{errorText}</div>}
4154
- {Output}
4155
- </div>
4369
+ </span>
4370
+ {errorText && <div className="px-3 pt-2 pb-3">{errorText}</div>}
4371
+ {Output}
4156
4372
  </div>
4157
4373
  );
4158
4374
  };