eve 0.70.1 → 0.70.3
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.
- package/CHANGELOG.md +37 -0
- package/dist/src/channel/adapter.js +1 -1
- package/dist/src/channel/channel-operations.js +1 -1
- package/dist/src/channel/resolve-text.d.ts +8 -0
- package/dist/src/channel/resolve-text.js +2 -1
- package/dist/src/chunks/{use-eve-agent-CJQeE7-t.js → use-eve-agent-CFCaYnrI.js} +1 -1
- package/dist/src/chunks/{use-eve-agent-DdemtY6C.js → use-eve-agent-DcDhXNv1.js} +1 -1
- package/dist/src/cli/banner.d.ts +2 -2
- package/dist/src/cli/banner.js +1 -1
- package/dist/src/cli/commands/init-agent-workspace.js +1 -1
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/dev/tui/runner.d.ts +2 -1
- package/dist/src/cli/dev/tui/runner.js +1 -1
- package/dist/src/cli/dev/tui/terminal-renderer.js +2 -2
- package/dist/src/cli/dev/tui/test/mock-terminal.d.ts +7 -1
- package/dist/src/cli/dev/tui/test/mock-terminal.js +4 -3
- package/dist/src/cli/dev/tui/theme.d.ts +1 -1
- package/dist/src/cli/dev/tui/theme.js +1 -1
- package/dist/src/cli/dev/tui/tool-presentation.d.ts +15 -2
- package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
- package/dist/src/cli/dev/tui/transcript-parts.js +1 -1
- package/dist/src/client/ndjson.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +7 -7
- package/dist/src/compiled/@photon-ai/chat-adapter-imessage/index.js +1 -1
- package/dist/src/compiled/@vercel/sandbox/index.js +1 -1
- package/dist/src/compiled/@workflow/core/index.js +2 -2
- package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +15 -0
- package/dist/src/compiled/@workflow/core/runtime/dynamic-workflow.d.ts +182 -0
- package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +7 -0
- package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/quickjs-assets.generated.d.ts +7 -0
- package/dist/src/compiled/@workflow/core/runtime/quickjs-entrypoint.d.ts +2 -30
- package/dist/src/compiled/@workflow/core/runtime/quickjs-log-view.d.ts +27 -4
- package/dist/src/compiled/@workflow/core/runtime/quickjs-runtime.d.ts +55 -3
- package/dist/src/compiled/@workflow/core/runtime/quickjs-snapshot-codec.d.ts +74 -0
- package/dist/src/compiled/@workflow/core/runtime/start.d.ts +4 -0
- package/dist/src/compiled/@workflow/core/runtime/vm-mode.d.ts +44 -0
- package/dist/src/compiled/@workflow/core/runtime.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/runtime.js +4 -4
- package/dist/src/compiled/@workflow/core/schemas.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/serialization/compression.d.ts +27 -2
- package/dist/src/compiled/@workflow/core/serialization/hardened.d.ts +8 -0
- package/dist/src/compiled/@workflow/core/serialization/types.d.ts +1 -0
- package/dist/src/compiled/@workflow/core/serialization.d.ts +48 -0
- package/dist/src/compiled/@workflow/core/serialization.js +1 -1
- package/dist/src/compiled/@workflow/core/set-error-stack.d.ts +12 -0
- package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +47 -0
- package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/world/events.d.ts +10 -0
- package/dist/src/compiled/@workflow/world/index.d.ts +2 -0
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +127 -0
- package/dist/src/compiled/@workflow/world/queue.d.ts +6 -0
- package/dist/src/compiled/@workflow/world/runs.d.ts +9 -2
- package/dist/src/compiled/@workflow/world/snapshots.d.ts +60 -0
- package/dist/src/compiled/@workflow/world-local/index.js +5 -5
- package/dist/src/compiled/@workflow/world-vercel/index.js +19 -17
- package/dist/src/compiled/_chunks/node/undici-B61sz6UT.js +95 -0
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-D721NpZv.js → attribute-changes-VaTKT4K8.js} +3 -3
- package/dist/src/compiled/_chunks/workflow/dist-B7NC1c9-.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{functions-DpZiBxgQ.js → functions-CKkqf9V6.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/helpers-CP9TjeO8.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{logger-D4GJNTk4.js → logger-oqfblE3p.js} +2 -2
- package/dist/src/compiled/_chunks/workflow/resume-hook-yq-NAdBu.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-DYKeqbob.js +32 -0
- package/dist/src/compiled/_chunks/workflow/serialization-APSKphN5.js +3 -0
- package/dist/src/compiled/_chunks/workflow/signal-exit-iIdjQcCK.js +95 -0
- package/dist/src/compiled/_chunks/workflow/sleep-Ba8SExMt.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{token-BhlnqoHM.js → token-BKeK6DmC.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/token-Cv2GYj9A.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{token-util-DaeRTzDa.js → token-util-CddTZ_ef.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{wait-until-3_1djUuL.js → wait-until-Dc9s3yyP.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{wrapper-CzrF_dmI.js → wrapper-Dq4OeGmJ.js} +4 -4
- package/dist/src/compiled/shadcn-registry/index.js +4 -4
- package/dist/src/context/serialize.js +1 -1
- package/dist/src/discover/discover-agent.js +1 -1
- package/dist/src/discover/extension-specifier.d.ts +1 -0
- package/dist/src/discover/extension-specifier.js +1 -1
- package/dist/src/discover/extensions.d.ts +1 -1
- package/dist/src/discover/extensions.js +1 -1
- package/dist/src/discover/project-source.d.ts +5 -0
- package/dist/src/discover/project-source.js +1 -1
- package/dist/src/evals/session.d.ts +1 -0
- package/dist/src/evals/session.js +1 -1
- package/dist/src/evals/types.d.ts +6 -0
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/legacy-session/turn-workflow.js +1 -1
- package/dist/src/execution/proxied-deliver-step.d.ts +11 -0
- package/dist/src/execution/proxied-deliver-step.js +1 -1
- package/dist/src/execution/sandbox/read-file.d.ts +8 -1
- package/dist/src/execution/sandbox/read-file.js +3 -3
- package/dist/src/execution/session/active-turn.d.ts +4 -1
- package/dist/src/execution/session/active-turn.js +1 -1
- package/dist/src/execution/session/entry-input.d.ts +23 -5
- package/dist/src/execution/session/entry.js +1 -1
- package/dist/src/execution/session/handoff.d.ts +35 -13
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/program.d.ts +16 -3
- package/dist/src/execution/session/program.js +1 -1
- package/dist/src/execution/session/turn-step-types.d.ts +6 -1
- package/dist/src/execution/session/turn-step.js +1 -1
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/workflow-runtime.d.ts +4 -4
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/harness/attachment-staging.d.ts +27 -7
- package/dist/src/harness/attachment-staging.js +1 -1
- package/dist/src/harness/compaction-prompt.js +3 -3
- package/dist/src/harness/input-requests.js +1 -1
- package/dist/src/harness/messages.js +1 -1
- package/dist/src/harness/token-estimate.d.ts +7 -3
- package/dist/src/harness/token-estimate.js +1 -1
- package/dist/src/harness/tool-loop.js +2 -2
- package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
- package/dist/src/instrumentation/lifecycle.d.ts +2 -0
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/attachments/media-metadata.d.ts +25 -0
- package/dist/src/internal/attachments/media-metadata.js +1 -0
- package/dist/src/internal/attachments/sandbox-refs.d.ts +12 -7
- package/dist/src/internal/attachments/sandbox-refs.js +1 -1
- package/dist/src/internal/authored-module-loader.js +1 -1
- package/dist/src/internal/bundler/extension-mount-plugin.d.ts +4 -0
- package/dist/src/internal/bundler/extension-mount-plugin.js +1 -1
- package/dist/src/internal/bundler/extension-scope-plugin.js +2 -2
- package/dist/src/internal/input-text.d.ts +12 -0
- package/dist/src/internal/input-text.js +1 -0
- package/dist/src/internal/workflow/vercel-world-defaults.d.ts +1 -1
- package/dist/src/internal/workflow/vercel-world-defaults.js +1 -1
- package/dist/src/protocol/message.d.ts +2 -1
- package/dist/src/public/channels/chat-sdk/input-actions.d.ts +8 -2
- package/dist/src/public/channels/chat-sdk/input-actions.js +4 -1
- package/dist/src/public/channels/github/defaults.js +2 -3
- package/dist/src/public/channels/linear/hitl.js +2 -3
- package/dist/src/public/channels/slack/action-status.d.ts +10 -5
- package/dist/src/public/channels/slack/action-status.js +1 -1
- package/dist/src/public/channels/slack/defaults.js +3 -3
- package/dist/src/public/channels/slack/limits.d.ts +1 -1
- package/dist/src/public/channels/slack/limits.js +1 -1
- package/dist/src/public/channels/slack/slackChannel.d.ts +11 -9
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/channels/slack/task-card.js +1 -1
- package/dist/src/public/channels/slack/thread-status.d.ts +33 -0
- package/dist/src/public/channels/slack/thread-status.js +1 -0
- package/dist/src/public/channels/twilio/defaults.js +4 -2
- package/dist/src/react/use-eve-agent.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/subagents/hitl-proxy.d.ts +4 -2
- package/dist/src/subagents/hitl-proxy.js +1 -1
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tools/provided/ask-question-workflow.js +1 -1
- package/dist/src/tools/provided/read-file.d.ts +7 -0
- package/dist/src/tools/provided/read-file.js +2 -2
- package/dist/src/tools/provided/sleep-workflow.js +1 -1
- package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/README.md +1 -0
- package/docs/agent-config.md +2 -2
- package/docs/channels/chat-sdk.mdx +1 -1
- package/docs/channels/slack.mdx +21 -15
- package/docs/channels/twilio.mdx +1 -1
- package/docs/code-extension.mdx +119 -0
- package/docs/concepts/built-in-tools.md +1 -1
- package/docs/concepts/default-harness.md +4 -0
- package/docs/concepts/execution-model-and-durability.mdx +7 -1
- package/docs/concepts/sessions-runs-and-streaming.md +6 -4
- package/docs/evals/cases.mdx +1 -0
- package/docs/extensions.md +6 -3
- package/docs/guides/client/streaming.mdx +1 -1
- package/docs/guides/dev-tui.md +3 -1
- package/docs/guides/dynamic-capabilities.md +1 -1
- package/docs/meta.json +1 -0
- package/docs/sandbox/index.mdx +13 -0
- package/docs/tools/overview.mdx +4 -2
- package/package.json +7 -7
- package/dist/src/compiled/_chunks/node/undici-h5GH4RBM.js +0 -95
- package/dist/src/compiled/_chunks/workflow/debug-log-CVPstO1D.js +0 -1
- package/dist/src/compiled/_chunks/workflow/dist-BUFGAKRb.js +0 -1
- package/dist/src/compiled/_chunks/workflow/frames-Dr9fHWdo.js +0 -3
- package/dist/src/compiled/_chunks/workflow/helpers-DkKxg_yn.js +0 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-uTW-jBYz.js +0 -1
- package/dist/src/compiled/_chunks/workflow/run-5DmiMN9b.js +0 -1
- package/dist/src/compiled/_chunks/workflow/serialization-CNIYl1D3.js +0 -3
- package/dist/src/compiled/_chunks/workflow/signal-exit-DZKTacNU.js +0 -95
- package/dist/src/compiled/_chunks/workflow/sleep-DFKgN7UG.js +0 -1
- package/dist/src/compiled/_chunks/workflow/token-1wSBbi5N.js +0 -1
- package/dist/src/compiled/_chunks/workflow/token-util-Cm4Ec1Bg.js +0 -1
- package/dist/src/compiled/_chunks/workflow/ws-transport--rYOVIaf.js +0 -1
|
@@ -23,7 +23,7 @@ export interface ToolPresentationContext {
|
|
|
23
23
|
/**
|
|
24
24
|
* True when the tool dispatches a named subagent (each subagent exposes a
|
|
25
25
|
* tool bearing its own name). The presentation reads as a delegation —
|
|
26
|
-
* `Delegate stock
|
|
26
|
+
* `Delegate subagent(stock price)` — instead of a generic tool call.
|
|
27
27
|
*/
|
|
28
28
|
readonly isSubagent?: boolean;
|
|
29
29
|
/** The tool's own `label.start` copy, used when eve has no copy of its own for the tool. */
|
|
@@ -53,6 +53,11 @@ export declare function readWriteFileInput(toolName: string, input: unknown): {
|
|
|
53
53
|
* calls keep the generic formatter, so presentation can never break execution.
|
|
54
54
|
*/
|
|
55
55
|
export declare function presentTool(toolName: string, input: unknown, context?: ToolPresentationContext): ToolPresentation;
|
|
56
|
+
/**
|
|
57
|
+
* A person's name for a tool with no copy of its own: `linear__list_issues` →
|
|
58
|
+
* `List issues`.
|
|
59
|
+
*/
|
|
60
|
+
export declare function toolDisplayTitle(toolName: string): string;
|
|
56
61
|
/**
|
|
57
62
|
* The bundled self-modification subagent's compiled name: its extension
|
|
58
63
|
* namespace joined to `subagents/agent` by the compiler's `__` rule.
|
|
@@ -60,8 +65,16 @@ export declare function presentTool(toolName: string, input: unknown, context?:
|
|
|
60
65
|
export declare const SELF_MODIFICATION_AGENT_NAME = "self-modification__agent";
|
|
61
66
|
/** True for the bundled self-modification subagent's dispatch tool. */
|
|
62
67
|
export declare function isSelfModificationAgent(toolName: string): boolean;
|
|
63
|
-
/**
|
|
68
|
+
/**
|
|
69
|
+
* The name an agent task goes by in the delegate row, task line, and task
|
|
70
|
+
* panel, from its {@link agentDisplayName} and any `:N` ordinal.
|
|
71
|
+
*/
|
|
64
72
|
export declare function agentTaskLabel(name: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* A person's name for the agent a tool dispatches: `code__worker` →
|
|
75
|
+
* `worker`. An extension's own subagent compiles to `<extension>__agent`, so
|
|
76
|
+
* the extension names it.
|
|
77
|
+
*/
|
|
65
78
|
export declare function agentDisplayName(toolName: string): string;
|
|
66
79
|
/**
|
|
67
80
|
* Placeholder copy for a call whose input is still streaming from the model
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{summarizeToolArgs,summarizeToolResult}from"./tool-format.js";import{diffWriteDetail}from"./line-diff.js";import{stripTerminalControls}from"#cli/ui/terminal-text.js";const WRITE_FILE_VERB=`Write`,DELEGATE_VERB=`Delegate`,FINAL_OUTPUT_TITLE=`Return final output`,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`},connection_execute:{verb:`Call`,pastVerb:`Called`,argKey:``,extractItem:e=>{let t=salientArg(e,`connection`),n=salientArg(e,`tool`);return t===void 0||n===void 0?void 0:`${t}.${n}`},singularNoun:`connection tool`,pluralNoun:`connection tools`},connection_search:{verb:`Search`,pastVerb:`Searched`,argKey:`query`,extractItem:e=>salientArg(e,`connection`),singularNoun:`tool search`,pluralNoun:`tool searches`},glob:{verb:`Glob`,pastVerb:`Globbed`,argKey:`pattern`,singularNoun:`pattern`,pluralNoun:`patterns`},grep:{verb:`Grep`,pastVerb:`Grepped`,argKey:`pattern`,singularNoun:`pattern`,pluralNoun:`patterns`},load_skill:{verb:`Load`,pastVerb:`Loaded`,argKey:`skill`,singularNoun:`skill`,pluralNoun:`skills`},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: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===`final_output`)return{title:FINAL_OUTPUT_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:e,subtitle:summarizeToolArgs(t),summarizeResult:summarizeToolResult}}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){
|
|
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";const WRITE_FILE_VERB=`Write`,DELEGATE_VERB=`Delegate`,FINAL_OUTPUT_TITLE=`Return final output`,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`},connection_execute:{verb:`Call`,pastVerb:`Called`,argKey:``,extractItem:e=>{let t=salientArg(e,`connection`),n=salientArg(e,`tool`);return t===void 0||n===void 0?void 0:`${t}.${n}`},singularNoun:`connection tool`,pluralNoun:`connection tools`},connection_search:{verb:`Search`,pastVerb:`Searched`,argKey:`query`,extractItem:e=>salientArg(e,`connection`),singularNoun:`tool search`,pluralNoun:`tool searches`},glob:{verb:`Glob`,pastVerb:`Globbed`,argKey:`pattern`,singularNoun:`pattern`,pluralNoun:`patterns`},grep:{verb:`Grep`,pastVerb:`Grepped`,argKey:`pattern`,singularNoun:`pattern`,pluralNoun:`patterns`},load_skill:{verb:`Load`,pastVerb:`Loaded`,argKey:`skill`,singularNoun:`skill`,pluralNoun:`skills`},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===`final_output`)return{title:FINAL_OUTPUT_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===`final_output`?{title:FINAL_OUTPUT_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,3 +1,3 @@
|
|
|
1
|
-
import{agentDisplayName,agentTaskLabel,presentPreparingTool,presentTool}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";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){return{callId:e,taskId:n.taskId,callIds:[t.toolCallId],kind:n.kind,name:
|
|
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";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,r){if(r)return{status:`running`};let i=settledToolState(e,t);return i.status===`running`&&!n?{status:`error`,errorText:`interrupted`}:i}function settledToolState(e,t){switch(e.state){case`approval-requested`:{let n=t.inputs[e.approval.id];return n?.status===`responded`?n.response?.optionId===`approve`?{status:`running`}:{status:`denied`,errorText:`Denied by user.`}:{status:`approval`}}case`approval-responded`:return e.approval.approved===!1?{status:`denied`,errorText:e.approval.reason??`Denied by user.`}:{status:`running`};case`output-available`:return e.partial===!0?{status:`running`}:{status:`done`,output:e.output};case`output-error`:return{status:`error`,errorText:e.errorText};case`output-denied`:return{status:`denied`,errorText:e.approval.reason??`Tool execution was cancelled.`};default:return{status:`running`}}}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
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=[];if(t!==void 0)n.push(t);else{let t=stripTerminalControls(e.description);t.length>0&&n.push(t);let r=e.authorization;r?.url&&n.push(`URL: ${stripTerminalControls(r.url)}`),r?.userCode&&n.push(`Code: ${stripTerminalControls(r.userCode)}`),r?.expiresAt&&n.push(`Expires: ${stripTerminalControls(r.expiresAt)}`),r?.instructions&&n.push(stripTerminalControls(r.instructions))}if(e.state===`completed`&&e.reason!==void 0){let t=stripTerminalControls(e.reason);t.length>0&&n.push(`Reason: ${t}`)}return n.join(`
|
|
3
3
|
`)}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,3 +1,3 @@
|
|
|
1
|
-
import{EVE_STREAM_LEASE_ENDED_CONTROL}from"#protocol/message.js";import{normalizeMessageStreamEvent}from"#protocol/message-version.js";function isStreamDisconnectError(e){if(e instanceof DOMException)return e.name===`AbortError`;if(!(e instanceof Error))return!1;let t=`code`in e&&typeof e.code==`string`?e.code:void 0;return e.name===`AbortError`||e.message===`terminated`||t===`UND_ERR_SOCKET`||e instanceof TypeError&&/^(?:failed to fetch|fetch failed)$/i.test(e.message)||/abort|cancel|disconnect|premature close|socket|terminated/i.test(e.message)}async function*readNdjsonStream(e,t){let n=e.getReader(),r=new TextDecoder,i=``,a=!1,abort=()=>{n.cancel().catch(()=>{})};t.signal?.addEventListener(`abort`,abort,{once:!0});try{for(;;){t.signal?.throwIfAborted();let e=await readWithIdleTimeout(n,t?.idleTimeoutMs);if(t.signal?.throwIfAborted(),e.done){a=!0,i+=r.decode();break}e.value&&(i+=r.decode(e.value,{stream:!0}));let o=i.indexOf(`
|
|
1
|
+
import{EVE_STREAM_LEASE_ENDED_CONTROL}from"#protocol/message.js";import{normalizeMessageStreamEvent}from"#protocol/message-version.js";function isStreamDisconnectError(e){if(e instanceof DOMException)return e.name===`AbortError`;if(!(e instanceof Error))return!1;let t=`code`in e&&typeof e.code==`string`?e.code:void 0;return e.name===`AbortError`||e.message===`terminated`||t===`UND_ERR_SOCKET`||e instanceof TypeError&&/^(?:failed to fetch|fetch failed|load failed|networkerror when attempting to fetch resource\.)$/i.test(e.message)||/abort|cancel|disconnect|premature close|socket|terminated/i.test(e.message)}async function*readNdjsonStream(e,t){let n=e.getReader(),r=new TextDecoder,i=``,a=!1,abort=()=>{n.cancel().catch(()=>{})};t.signal?.addEventListener(`abort`,abort,{once:!0});try{for(;;){t.signal?.throwIfAborted();let e=await readWithIdleTimeout(n,t?.idleTimeoutMs);if(t.signal?.throwIfAborted(),e.done){a=!0,i+=r.decode();break}e.value&&(i+=r.decode(e.value,{stream:!0}));let o=i.indexOf(`
|
|
2
2
|
`);for(;o!==-1;){let e=i.slice(0,o).trim();if(i=i.slice(o+1),e.length>0){let n=JSON.parse(e);t.controlVersion===`1`&&isLeaseEndedControl(n)?t.onLeaseEnded?.():yield parseMessageStreamEvent(n,t.streamVersion)}o=i.indexOf(`
|
|
3
3
|
`)}}let e=i.trim();if(e.length>0){let n=JSON.parse(e);t.controlVersion===`1`&&isLeaseEndedControl(n)?t.onLeaseEnded?.():yield parseMessageStreamEvent(n,t.streamVersion)}}finally{t.signal?.removeEventListener(`abort`,abort),a||n.cancel().catch(()=>{}),n.releaseLock()}}function isLeaseEndedControl(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.$eve===EVE_STREAM_LEASE_ENDED_CONTROL.$eve&&t.version===EVE_STREAM_LEASE_ENDED_CONTROL.version}function parseMessageStreamEvent(e,t){return normalizeMessageStreamEvent(t,e)}async function readWithIdleTimeout(e,t){let n;try{return t===void 0?await e.read():await Promise.race([e.read(),new Promise((e,r)=>{n=setTimeout(()=>r(new DOMException(`Session stream was idle.`,`AbortError`)),t)})])}catch(e){throw e instanceof TypeError?Error(`Session stream disconnected.`,{cause:e}):e}finally{n!==void 0&&clearTimeout(n)}}export{isStreamDisconnectError,readNdjsonStream};
|
|
@@ -48,16 +48,16 @@
|
|
|
48
48
|
"@vercel/otel": "2.1.3",
|
|
49
49
|
"@vercel/sandbox": "3.3.0",
|
|
50
50
|
"@vercel/sdk": "1.28.8",
|
|
51
|
-
"@workflow/core": "5.0.
|
|
52
|
-
"@workflow/errors": "5.0.
|
|
53
|
-
"@workflow/serde": "5.0.0
|
|
54
|
-
"@workflow/world": "5.0.
|
|
55
|
-
"@workflow/world-local": "5.0.
|
|
56
|
-
"@workflow/world-vercel": "5.0.
|
|
51
|
+
"@workflow/core": "5.0.1",
|
|
52
|
+
"@workflow/errors": "5.0.1",
|
|
53
|
+
"@workflow/serde": "5.0.0",
|
|
54
|
+
"@workflow/world": "5.0.1",
|
|
55
|
+
"@workflow/world-local": "5.0.1",
|
|
56
|
+
"@workflow/world-vercel": "5.0.1",
|
|
57
57
|
"zod": "4.5.4",
|
|
58
58
|
"zod-validation-error": "5.0.0"
|
|
59
59
|
},
|
|
60
|
-
"scriptHash": "
|
|
60
|
+
"scriptHash": "6efd0e5d2002ea72c885019f9357111697af8ea15b7f074068d24e218098dd43",
|
|
61
61
|
"toolVersions": {
|
|
62
62
|
"rolldown": "1.2.9",
|
|
63
63
|
"typescript": "7.0.2"
|