eve 0.66.2 → 0.67.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.
- package/CHANGELOG.md +38 -0
- package/dist/src/channel/channel-address.d.ts +0 -2
- package/dist/src/channel/channel-address.js +1 -1
- package/dist/src/channel/channel-operations.d.ts +0 -5
- package/dist/src/channel/channel-operations.js +1 -1
- package/dist/src/channel/compiled-channel.d.ts +8 -0
- package/dist/src/channel/compiled-channel.js +2 -2
- package/dist/src/channel/conversation-context.js +1 -1
- package/dist/src/channel/routes.d.ts +1 -2
- package/dist/src/channel/schedule.d.ts +2 -2
- package/dist/src/channel/schedule.js +1 -1
- package/dist/src/channel/types.d.ts +8 -13
- package/dist/src/chunks/{use-eve-agent-PbSMyJ6e.js → use-eve-agent-DzdyI97Z.js} +0 -5
- package/dist/src/chunks/{use-eve-agent-Di1u2zKu.js → use-eve-agent-OCHP4s0z.js} +0 -5
- package/dist/src/cli/acp/command.js +3 -3
- package/dist/src/cli/commands/logs.d.ts +3 -3
- package/dist/src/cli/commands/logs.js +1 -1
- package/dist/src/cli/commands/register-integration-commands.js +1 -1
- package/dist/src/cli/commands/registry-declared-setups.d.ts +0 -1
- package/dist/src/cli/commands/registry-declared-setups.js +1 -1
- package/dist/src/cli/commands/registry.d.ts +5 -1
- package/dist/src/cli/commands/registry.js +1 -1
- package/dist/src/cli/commands/trace.js +1 -1
- package/dist/src/cli/dev/command.d.ts +9 -5
- package/dist/src/cli/dev/command.js +1 -3
- package/dist/src/cli/dev/run-interactive-ui.d.ts +0 -1
- package/dist/src/cli/dev/run-interactive-ui.js +1 -1
- package/dist/src/cli/dev/tui/argument-typeahead.d.ts +1 -2
- package/dist/src/cli/dev/tui/argument-typeahead.js +2 -2
- package/dist/src/cli/dev/tui/blocks.d.ts +5 -1
- package/dist/src/cli/dev/tui/blocks.js +4 -4
- package/dist/src/cli/dev/tui/flow-drawer.d.ts +11 -0
- package/dist/src/cli/dev/tui/flow-drawer.js +1 -0
- package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
- package/dist/src/cli/dev/tui/prompt-commands.d.ts +199 -0
- package/dist/src/cli/dev/tui/prompt-commands.js +2 -2
- package/dist/src/cli/dev/tui/question-panel.d.ts +4 -4
- package/dist/src/cli/dev/tui/question-panel.js +1 -1
- package/dist/src/cli/dev/tui/registry-result-message.d.ts +15 -4
- package/dist/src/cli/dev/tui/registry-result-message.js +4 -4
- package/dist/src/cli/dev/tui/runner.d.ts +18 -6
- package/dist/src/cli/dev/tui/runner.js +3 -2
- package/dist/src/cli/dev/tui/setup-commands.d.ts +5 -22
- package/dist/src/cli/dev/tui/setup-commands.js +2 -1
- package/dist/src/cli/dev/tui/setup-flow.d.ts +2 -10
- package/dist/src/cli/dev/tui/setup-panel.d.ts +4 -23
- package/dist/src/cli/dev/tui/setup-panel.js +3 -3
- package/dist/src/cli/dev/tui/terminal-renderer.d.ts +11 -7
- package/dist/src/cli/dev/tui/terminal-renderer.js +11 -11
- package/dist/src/cli/dev/tui/theme.d.ts +1 -1
- package/dist/src/cli/dev/tui/tui-prompter.js +1 -1
- package/dist/src/cli/dev/tui/tui.js +1 -1
- package/dist/src/cli/dev/url-target.js +1 -1
- package/dist/src/cli/invoke/command.d.ts +2 -5
- package/dist/src/cli/invoke/command.js +1 -1
- package/dist/src/cli/invoke/invoke.d.ts +2 -2
- package/dist/src/cli/invoke/invoke.js +1 -1
- package/dist/src/cli/invoke/result.d.ts +14 -194
- package/dist/src/cli/invoke/result.js +1 -1
- package/dist/src/cli/run.d.ts +0 -4
- package/dist/src/cli/run.js +2 -2
- package/dist/src/cli/telemetry/index.js +1 -1
- package/dist/src/client/message-reducer.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +6 -6
- package/dist/src/compiled/@workflow/core/create-hook.d.ts +38 -1
- package/dist/src/compiled/@workflow/core/global.d.ts +2 -0
- package/dist/src/compiled/@workflow/core/index.js +2 -2
- package/dist/src/compiled/@workflow/core/private.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +9 -0
- package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/hook-wake.d.ts +89 -0
- package/dist/src/compiled/@workflow/core/runtime/open-hook-wait-state.d.ts +55 -0
- package/dist/src/compiled/@workflow/core/runtime/quickjs-runtime.d.ts +2 -0
- package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +8 -1
- package/dist/src/compiled/@workflow/core/runtime.js +4 -4
- package/dist/src/compiled/@workflow/core/serialization/types.d.ts +8 -0
- package/dist/src/compiled/@workflow/core/serialization.d.ts +8 -0
- package/dist/src/compiled/@workflow/core/serialization.js +1 -1
- 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/errors/index.d.ts +23 -0
- package/dist/src/compiled/@workflow/errors/index.js +1 -1
- package/dist/src/compiled/@workflow/world/events.d.ts +34 -0
- package/dist/src/compiled/@workflow/world/hooks.d.ts +27 -0
- package/dist/src/compiled/@workflow/world/index.d.ts +2 -2
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +24 -0
- package/dist/src/compiled/@workflow/world/spec-version.d.ts +32 -11
- package/dist/src/compiled/@workflow/world-local/index.js +3 -3
- package/dist/src/compiled/@workflow/world-vercel/index.js +17 -17
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-89Nwz7XW.js → attribute-changes-DzJovO_f.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/dist-BQSf8Hax.js +1 -0
- package/dist/src/compiled/_chunks/workflow/dist-BfMqXLK3.js +3 -0
- package/dist/src/compiled/_chunks/workflow/frames-qKc30rjg.js +3 -0
- package/dist/src/compiled/_chunks/workflow/{global-DIlFoH2w.js → global-BQnKzRXo.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{helpers-k3zcudWr.js → helpers-CNMO7zB1.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{logger-Bzc8jWWj.js → logger-BCEj9caG.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-QS_cMwHn.js +1 -0
- package/dist/src/compiled/_chunks/workflow/run-CA5wWV2S.js +1 -0
- package/dist/src/compiled/_chunks/workflow/serialization-CJ265vSe.js +3 -0
- package/dist/src/compiled/_chunks/workflow/sleep-CBn94Ayv.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{wait-until-DXLZx3tU.js → wait-until-Bo2U6ON9.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{ws-transport-BSM_Cl7a.js → ws-transport-BrsMYqJg.js} +1 -1
- package/dist/src/compiler/compile-from-memory.d.ts +0 -1
- package/dist/src/compiler/compile-from-memory.js +1 -1
- package/dist/src/compiler/extension-compatibility.d.ts +25 -18
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/manifest.d.ts +48 -14
- package/dist/src/compiler/manifest.js +1 -1
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/compiler/normalize-channel.js +1 -1
- package/dist/src/compiler/normalize-connection.js +1 -1
- package/dist/src/compiler/normalize-manifest-helpers.js +1 -1
- package/dist/src/compiler/normalize-subagent.d.ts +0 -2
- package/dist/src/compiler/normalize-subagent.js +1 -1
- package/dist/src/compiler/remote-agent-node.d.ts +0 -2
- package/dist/src/compiler/remote-agent-node.js +1 -1
- package/dist/src/compiler/workspace-resources.js +1 -1
- package/dist/src/context/dynamic-subagent-lifecycle.js +1 -1
- package/dist/src/context/keys.d.ts +0 -3
- package/dist/src/context/keys.js +1 -1
- package/dist/src/context/memory-lifecycle.d.ts +1 -0
- package/dist/src/context/memory-lifecycle.js +1 -1
- package/dist/src/discover/project.js +1 -1
- package/dist/src/eve-channel/create-request.d.ts +0 -3
- package/dist/src/eve-channel/create-request.js +1 -1
- package/dist/src/eve-channel/index.js +1 -1
- package/dist/src/eve-channel/request.js +1 -1
- package/dist/src/eve-channel/types.d.ts +1 -1
- package/dist/src/execution/delegated-session-context.d.ts +2 -0
- package/dist/src/execution/delegated-session-context.js +1 -0
- package/dist/src/execution/dynamic-connections.d.ts +4 -1
- package/dist/src/execution/dynamic-connections.js +1 -1
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/effective-agent-config.js +1 -1
- package/dist/src/execution/legacy-session/input.d.ts +0 -2
- package/dist/src/execution/legacy-session/input.js +1 -1
- package/dist/src/execution/legacy-session/prepare-step.d.ts +0 -1
- package/dist/src/execution/legacy-session/turn-workflow.js +1 -1
- package/dist/src/execution/node-step.d.ts +4 -2
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/proxied-deliver-step.js +1 -1
- package/dist/src/execution/publish-channel-event.d.ts +23 -0
- package/dist/src/execution/publish-channel-event.js +1 -0
- package/dist/src/execution/runtime-context.js +1 -1
- package/dist/src/execution/session/entry-input.d.ts +4 -0
- package/dist/src/execution/session/entry-input.js +1 -1
- package/dist/src/execution/session/entry.js +1 -1
- package/dist/src/execution/session/event-sink.d.ts +1 -1
- package/dist/src/execution/session/event-sink.js +1 -1
- package/dist/src/execution/session/finalization.d.ts +1 -4
- package/dist/src/execution/session/finalization.js +1 -1
- package/dist/src/execution/session/handoff.d.ts +1 -3
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/input-queue.d.ts +0 -1
- package/dist/src/execution/session/input-queue.js +1 -1
- package/dist/src/execution/session/next-input.d.ts +0 -1
- package/dist/src/execution/session/next-input.js +1 -1
- package/dist/src/execution/session/program.d.ts +0 -3
- package/dist/src/execution/session/program.js +1 -1
- package/dist/src/execution/session/turn-step-result.d.ts +1 -2
- package/dist/src/execution/session/turn-step-result.js +1 -1
- package/dist/src/execution/session/turn-step.js +1 -1
- package/dist/src/execution/session/turn.d.ts +2 -2
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
- package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/tools/agent-router.d.ts +0 -2
- package/dist/src/execution/tools/agent-router.js +1 -1
- package/dist/src/execution/tools/ask-question-workflow.js +1 -1
- package/dist/src/execution/tools/connection-search.d.ts +1 -0
- package/dist/src/execution/tools/connection-search.js +1 -1
- package/dist/src/execution/tools/sleep-workflow.js +1 -1
- package/dist/src/execution/tools/subagent/invoke-preparation.js +1 -1
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/extensions/code/extension/lib/connect-authentication.js +1 -1
- package/dist/src/extensions/code/extension/lib/github-shell.js +1 -1
- package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
- package/dist/src/framework/sources/registry.js +1 -1
- package/dist/src/harness/approval-delivery-coordinator.d.ts +3 -13
- package/dist/src/harness/approval-delivery-coordinator.js +1 -1
- package/dist/src/harness/emission.d.ts +2 -3
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/input-request-resolution.d.ts +2 -0
- package/dist/src/harness/input-request-resolution.js +1 -1
- package/dist/src/harness/input-requests.d.ts +3 -3
- package/dist/src/harness/input-requests.js +1 -1
- package/dist/src/harness/pending-input-batches.d.ts +3 -3
- package/dist/src/harness/pending-input-batches.js +1 -1
- package/dist/src/harness/proxy-input-requests.d.ts +2 -0
- package/dist/src/harness/proxy-input-requests.js +1 -1
- package/dist/src/harness/session-limit-enforcement.d.ts +2 -3
- package/dist/src/harness/session-limit-enforcement.js +1 -1
- package/dist/src/harness/tool-loop.js +2 -2
- package/dist/src/harness/tools.js +1 -1
- package/dist/src/harness/types.d.ts +11 -13
- package/dist/src/instrumentation/session-context.js +1 -1
- package/dist/src/instrumentation/session-init.js +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-definition/core.js +1 -1
- package/dist/src/internal/authored-module-loader.js +1 -2
- package/dist/src/internal/authored-package-boundary.d.ts +0 -1
- package/dist/src/internal/authored-package-boundary.js +1 -1
- package/dist/src/internal/authored-relative-extension-resolver.js +1 -1
- package/dist/src/internal/external-resources-snapshot.d.ts +46 -0
- package/dist/src/internal/external-resources-snapshot.js +1 -0
- package/dist/src/internal/external-resources.d.ts +20 -0
- package/dist/src/internal/external-resources.js +1 -0
- package/dist/src/internal/invocation/workflow-execution.d.ts +0 -2
- package/dist/src/internal/invocation/workflow-execution.js +1 -1
- package/dist/src/internal/nitro/host/build-application.js +1 -1
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/instrumentation-entry.d.ts +3 -0
- package/dist/src/internal/nitro/host/instrumentation-entry.js +2 -0
- package/dist/src/internal/nitro/host/start-development-server.d.ts +0 -8
- package/dist/src/internal/nitro/host/start-development-server.js +2 -2
- package/dist/src/internal/nitro/host.d.ts +1 -1
- package/dist/src/internal/nitro/host.js +1 -1
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
- package/dist/src/internal/nitro/routes/index.js +72 -3
- package/dist/src/internal/workflow/development-world-client.js +1 -1
- package/dist/src/node_modules/.pnpm/{@vercel_cli-config@0.2.7 → @vercel_cli-config@0.3.0}/node_modules/@vercel/cli-config/dist/index.js +1 -1
- package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/authorization.js +1 -1
- package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/connector.js +1 -0
- package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/installation.js +1 -1
- package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/token.js +1 -1
- package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/token-util.js +1 -1
- package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/token.js +1 -1
- package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/version.js +1 -1
- package/dist/src/protocol/message.d.ts +4 -0
- package/dist/src/protocol/message.js +1 -1
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +0 -1
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -1
- package/dist/src/public/channels/mcp.js +1 -1
- package/dist/src/public/channels/slack/activity-plan.d.ts +2 -1
- package/dist/src/public/channels/slack/activity-plan.js +1 -1
- package/dist/src/public/channels/slack/activity.d.ts +2 -0
- package/dist/src/public/channels/slack/activity.js +1 -1
- package/dist/src/public/channels/slack/api.d.ts +7 -0
- package/dist/src/public/channels/slack/api.js +1 -1
- package/dist/src/public/channels/slack/app-manifest.d.ts +9 -0
- package/dist/src/public/channels/slack/app-manifest.js +1 -0
- package/dist/src/public/channels/slack/attachments.d.ts +5 -2
- package/dist/src/public/channels/slack/attachments.js +1 -1
- package/dist/src/public/channels/slack/inbound-content.js +6 -3
- package/dist/src/public/channels/slack/index.d.ts +1 -0
- package/dist/src/public/channels/slack/input-response.d.ts +2 -0
- package/dist/src/public/channels/slack/input-response.js +1 -1
- package/dist/src/public/channels/slack/interaction-cards.js +1 -1
- package/dist/src/public/channels/slack/interactions.d.ts +2 -0
- package/dist/src/public/channels/slack/interactions.js +1 -1
- package/dist/src/public/channels/slack/slackChannel.d.ts +7 -1
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/channels/slack/slash-command.d.ts +5 -1
- package/dist/src/public/channels/slack/slash-command.js +1 -1
- package/dist/src/public/channels/slack/transport.d.ts +76 -0
- package/dist/src/public/channels/slack/transport.js +1 -0
- package/dist/src/public/definitions/remote-agent.d.ts +0 -9
- package/dist/src/public/definitions/workspace-agent.d.ts +0 -3
- package/dist/src/public/definitions/workspace-agent.js +1 -1
- package/dist/src/runtime/agent/bootstrap.d.ts +0 -1
- package/dist/src/runtime/agent/bootstrap.js +1 -1
- package/dist/src/runtime/connections/mcp-client.js +1 -1
- package/dist/src/runtime/connections/mcp-tracing.d.ts +27 -0
- package/dist/src/runtime/connections/mcp-tracing.js +1 -0
- package/dist/src/runtime/resolve-agent-graph.js +1 -1
- package/dist/src/runtime/resolve-agent.js +1 -1
- package/dist/src/runtime/subagents/dynamic-agent-config.d.ts +0 -2
- package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
- package/dist/src/runtime/subagents/dynamic-remote-agent-config.d.ts +0 -2
- package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
- package/dist/src/runtime/types.d.ts +1 -2
- package/dist/src/services/dev-client/vercel-auth-error.d.ts +1 -1
- package/dist/src/setup/cli/channel-setup-prompter.d.ts +2 -9
- package/dist/src/setup/cli/channel-setup-prompter.js +1 -1
- package/dist/src/setup/cli/index.d.ts +1 -1
- package/dist/src/setup/connection-connector.js +1 -1
- package/dist/src/setup/flows/model-login-connection.d.ts +0 -16
- package/dist/src/setup/flows/model-login-connection.js +1 -1
- package/dist/src/setup/flows/model-login-options.d.ts +59 -0
- package/dist/src/setup/flows/model-login-options.js +1 -0
- package/dist/src/setup/flows/model-login.js +1 -1
- package/dist/src/setup/flows/model-source-change.d.ts +0 -2
- package/dist/src/setup/flows/model-source-change.js +1 -1
- package/dist/src/setup/flows/registry-session.d.ts +15 -13
- package/dist/src/setup/flows/registry-session.js +1 -1
- package/dist/src/setup/flows/registry.js +1 -1
- package/dist/src/setup/flows/vercel-model-login.js +1 -1
- package/dist/src/setup/integrations/photon/setup-flow.js +1 -1
- package/dist/src/setup/prompter.d.ts +2 -2
- package/dist/src/setup/registry-setup-client.js +1 -1
- package/dist/src/setup/registry-setup-protocol.d.ts +0 -4
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/setup/slack-connect-lifecycle.js +1 -1
- package/dist/src/setup/verified-remote-agent.d.ts +1 -0
- package/dist/src/setup/verified-remote-agent.js +1 -1
- package/dist/src/shared/action-types.d.ts +2 -2
- package/dist/src/shared/agent-definition.d.ts +0 -9
- package/dist/src/shared/agent-turn-outcome.d.ts +1 -1
- package/dist/src/shared/channel-definition.d.ts +2 -2
- package/dist/src/shared/conversation-context.d.ts +0 -4
- package/dist/src/shared/conversation-context.js +1 -1
- package/dist/src/shared/validate-authorization.js +1 -1
- package/dist/src/shared/vercel-connect-metadata.d.ts +12 -0
- package/dist/src/shared/vercel-connect-metadata.js +1 -0
- package/dist/src/subagents/agent-handle-errors.d.ts +0 -4
- package/dist/src/subagents/agent-handle-errors.js +1 -1
- package/dist/src/subagents/callback-route.js +1 -1
- package/dist/src/subagents/callback-step.d.ts +0 -22
- package/dist/src/subagents/callback-step.js +1 -1
- package/dist/src/subagents/event-proxy-step.js +1 -1
- package/dist/src/subagents/hitl-proxy.d.ts +3 -5
- package/dist/src/subagents/hitl-proxy.js +1 -1
- package/dist/src/subagents/invocation.d.ts +5 -6
- package/dist/src/subagents/parent-notification.d.ts +1 -18
- package/dist/src/subagents/parent-notification.js +1 -1
- package/dist/src/subagents/remote-dispatch.js +1 -1
- package/dist/src/subagents/tool.d.ts +0 -3
- package/dist/src/subagents/tool.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/framework/agent-contract.d.ts +0 -2
- package/dist/src/tools/framework/agent-contract.js +1 -1
- package/dist/src/tracing/agent-action-instrumentation.js +1 -1
- package/dist/src/tracing/agent-approval-instrumentation.js +1 -1
- package/dist/src/tracing/agent-memory-instrumentation.js +1 -1
- package/dist/src/tracing/agent-otel-provider.js +2 -2
- package/dist/src/tracing/agent-otel-session-context.js +1 -1
- package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
- package/dist/src/tracing/agent-tool-span-context.d.ts +15 -0
- package/dist/src/tracing/agent-tool-span-context.js +1 -0
- package/dist/src/tracing/otel-declaration.d.ts +4 -9
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/agent-config.md +12 -13
- package/docs/channels/chat-sdk.mdx +1 -1
- package/docs/channels/custom.mdx +1 -1
- package/docs/channels/eve.mdx +4 -4
- package/docs/channels/mcp.mdx +10 -10
- package/docs/channels/slack.mdx +32 -3
- package/docs/concepts/sessions-runs-and-streaming.md +5 -6
- package/docs/connections/overview.mdx +22 -0
- package/docs/guides/deployment/overview.md +1 -1
- package/docs/guides/deployment/self-hosting.md +1 -1
- package/docs/guides/deployment/vercel.mdx +2 -2
- package/docs/guides/dev-tui.md +7 -7
- package/docs/guides/dynamic-capabilities.md +2 -2
- package/docs/guides/frontend/overview.mdx +5 -3
- package/docs/guides/hooks.md +4 -2
- package/docs/guides/instrumentation/agent-runs.mdx +7 -7
- package/docs/guides/instrumentation/instrumentation.mdx +22 -5
- package/docs/guides/instrumentation/otel.mdx +30 -0
- package/docs/guides/remote-agents.md +3 -4
- package/docs/guides/self-modification.md +1 -1
- package/docs/memory/custom-provider.md +1 -1
- package/docs/protocols/acp.md +1 -1
- package/docs/reference/cli.md +91 -97
- package/docs/schedules.mdx +4 -5
- package/docs/subagents/index.mdx +5 -7
- package/docs/tools/human-in-the-loop.md +4 -0
- package/docs/tools/overview.mdx +2 -0
- package/docs/tools/workflows.mdx +1 -1
- package/docs/tutorial/remember-definitions.mdx +1 -1
- package/docs/tutorial/ship-it.mdx +1 -1
- package/package.json +8 -7
- package/dist/src/cli/commands/channels.d.ts +0 -9
- package/dist/src/cli/commands/channels.js +0 -1
- package/dist/src/compiled/_chunks/workflow/dist-CNT2vjZ4.js +0 -1
- package/dist/src/compiled/_chunks/workflow/dist-DtXwQbZr.js +0 -3
- package/dist/src/compiled/_chunks/workflow/frames-DnrfSd1P.js +0 -3
- package/dist/src/compiled/_chunks/workflow/resume-hook-BmJ263ZR.js +0 -1
- package/dist/src/compiled/_chunks/workflow/run-NLvREued.js +0 -1
- package/dist/src/compiled/_chunks/workflow/serialization-HCDeQWcR.js +0 -3
- package/dist/src/compiled/_chunks/workflow/sleep-Bi508qmg.js +0 -1
- package/dist/src/execution/effective-output-schema.d.ts +0 -22
- package/dist/src/execution/effective-output-schema.js +0 -1
- package/dist/src/node_modules/.pnpm/@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38/node_modules/@vercel/connect/dist/connector.js +0 -1
- package/dist/src/public/channels/slack/api-errors.d.ts +0 -33
- package/dist/src/public/channels/slack/api-errors.js +0 -1
- package/dist/src/shared/run-mode.d.ts +0 -7
- package/dist/src/shared/run-mode.js +0 -1
- package/dist/src/subagents/parent-result.d.ts +0 -14
- package/dist/src/subagents/parent-result.js +0 -1
- /package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/index.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/internal/base-url.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/internal/default-scopes.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/internal/env.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_connect@2.2.0_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_37d5e4f23f0f03cba2e0819e67e81b38 → @vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494}/node_modules/@vercel/connect/dist/internal/url-validation.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/auth-errors.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/exchange-vercel-oidc-token.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/get-context.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/get-vercel-oidc-token-sync.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/get-vercel-oidc-token-with-refresh.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/index.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/oauth.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/token-error.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/token-io.js +0 -0
- /package/dist/src/node_modules/.pnpm/{@vercel_oidc@3.8.8 → @vercel_oidc@3.8.9}/node_modules/@vercel/oidc/dist/verify-vercel-oidc-token.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{sanitizeForTerminal}from"#cli/ui/output.js";import{sliceVisible,visibleLength}from"#cli/ui/terminal-text.js";
|
|
2
|
-
`)||a>
|
|
1
|
+
import{PROMPT_COMMANDS}from"./prompt-commands.js";import{sanitizeForTerminal}from"#cli/ui/output.js";import{sliceVisible,visibleLength}from"#cli/ui/terminal-text.js";function typeaheadCommand(e){let t=PROMPT_COMMANDS.find(t=>t.name===e);if(t?.typeahead!==void 0)return{name:t.name,...t.typeahead}}function argumentTypeaheadLoadingLabel(e){return typeaheadCommand(e)?.loadingLabel??`suggestions`}function argumentTypeaheadQuery(e){if(!e.startsWith(`/`))return;let t=e.indexOf(` `);if(t<0)return;let n=typeaheadCommand(e.slice(1,t));if(n===void 0)return;let r=[],i=t;for(;i<e.length;){for(;e[i]===` `;)i+=1;if(i===e.length)break;let t=i;for(;i<e.length&&e[i]!==` `;)i+=1;r.push({value:e.slice(t,i),start:t})}let a=r.length+ +!!e.endsWith(` `);if(e.slice(t).includes(`
|
|
2
|
+
`)||a>n.maxArguments)return;let o=r.at(-1),s=r.map(e=>e.value);return!e.endsWith(` `)&&o!==void 0&&s.pop(),{command:n.name,argument:e.endsWith(` `)?``:o?.value??``,completed:s,argumentStart:e.endsWith(` `)?e.length:o?.start??e.length}}function sanitizeSuggestion(e){let t={value:sanitizeForTerminal(e.value),label:sanitizeForTerminal(e.label)};return e.hint!==void 0&&(t.hint=sanitizeForTerminal(e.hint)),e.next!==void 0&&(t.next=e.next.map(sanitizeSuggestion)),t}function argumentTypeaheadFor(e,t,n){let r=t.map(sanitizeSuggestion),i=e.completed.length===0?r:r.find(t=>t.value===e.completed[0])?.next??[],a=e.argument.toLowerCase(),o=i.filter(e=>e.value.toLowerCase().includes(a)||e.label.toLowerCase().includes(a)||(e.hint?.toLowerCase().includes(a)??!1)),s=n?.suggestions[n.selectedIndex],c=s===void 0?-1:o.findIndex(e=>e.value===s.value);return{...e,suggestions:o,selectedIndex:c>=0?c:0}}function moveArgumentTypeaheadSelection(e,t){return e.suggestions.length===0?e:{...e,selectedIndex:(e.selectedIndex+t+e.suggestions.length)%e.suggestions.length}}function selectedArgumentSuggestion(e){return e.suggestions[e.selectedIndex]}function argumentTypeaheadCompletion(e,t){return`/${e.command} ${[...e.completed,t.value].join(` `)}`}function renderArgumentSuggestions(e,t,n){let r=t.colors,i=Math.min(8,e.suggestions.length),a=Math.max(0,Math.min(e.selectedIndex-Math.floor(i/2),e.suggestions.length-i));return e.suggestions.slice(a,a+i).map((t,i)=>{let o=a+i===e.selectedIndex?r.bold(t.value):r.dim(t.value),s=`${` `.repeat(e.argumentStart+2)}${o}`;return visibleLength(s)>n?sliceVisible(s,n):s})}export{argumentTypeaheadCompletion,argumentTypeaheadFor,argumentTypeaheadLoadingLabel,argumentTypeaheadQuery,moveArgumentTypeaheadSelection,renderArgumentSuggestions,selectedArgumentSuggestion};
|
|
@@ -47,7 +47,7 @@ export interface Block {
|
|
|
47
47
|
detail?: string;
|
|
48
48
|
/** Structured remediation shown between an error's body and its detail. */
|
|
49
49
|
hint?: string;
|
|
50
|
-
/** Tool, connection, or
|
|
50
|
+
/** Tool, connection, or completed command lifecycle status. */
|
|
51
51
|
status?: ToolStatus;
|
|
52
52
|
/** When true, treat `body` as pre-styled and only wrap + indent it. */
|
|
53
53
|
preformatted?: boolean;
|
|
@@ -108,6 +108,10 @@ export interface ToolGroupItem {
|
|
|
108
108
|
export interface RenderBlockContext {
|
|
109
109
|
/** Current shared square-pulse frame for live activity blocks. */
|
|
110
110
|
activityPulse: string;
|
|
111
|
+
/** An open setup panel owns the pulse, so a running command's gutter holds still. */
|
|
112
|
+
setupFlowOpen?: boolean;
|
|
113
|
+
/** A transient panel keeps its command echo live without a progress glyph. */
|
|
114
|
+
transientPanelOpen?: boolean;
|
|
111
115
|
/** Whether prose responses are parsed and styled as Markdown. */
|
|
112
116
|
renderMarkdown?: boolean;
|
|
113
117
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`)}}function renderUser(e,t,n){let r=e.promptOrigin===`steer`?n.colors.yellow(n.glyph.user):n.
|
|
1
|
+
import{isPromptControlCommand}from"./prompt-commands.js";import{renderMarkdown}from"./markdown.js";import{elisionText}from"./rail.js";import{renderTool}from"./tool-rows.js";import{clipVisible,sliceVisible,visibleLength,wrapVisibleLine}from"#cli/ui/terminal-text.js";function renderBlockLines(e,t,n,r){let i=e.depth??0,a=nestingPrefix(i,n),o=renderBody(e,Math.max(8,t-visibleLength(a)),n,r);if(e.closesRail===!0&&i>0){let e=closingPrefix(i,n);return o.map((t,n)=>`${n===o.length-1?e:a}${t}`)}return o.map(e=>`${a}${e}`)}function nestingPrefix(e,t){return e<=0?``:` ${`${t.colors.dim(t.glyph.rule)} `.repeat(e)}`}function closingPrefix(e,t){return` ${`${t.colors.dim(t.glyph.rule)} `.repeat(e-1)}${t.colors.dim(t.glyph.corner)} `}function renderBody(e,t,n,r){if(e.elided!==void 0&&e.kind===`subagent-step`)return[` ${elisionText(e.elided,n)}`];switch(e.kind){case`user`:return renderUser(e,t,n);case`assistant`:case`subagent-step`:return renderProse(e,t,n,r);case`reasoning`:return renderReasoning(e,t,n);case`tool`:case`subagent-tool`:return renderTool(e,t,n,r);case`error`:return renderError(e,t,n);case`notice`:return renderNotice(e,t,n);case`warning`:return renderWarning(e,t,n);case`result`:return renderResult(e,t,n);case`flow`:return renderFlow(e,t,n);case`command`:return renderCommand(e,n,r);case`question`:case`connection-auth`:return renderPreformatted(e,t,n);case`sandbox`:return renderSandbox(e,t,n,r);case`log`:return renderLog(e,t,n);case`subagent`:return renderSubagentHeader(e,t,n,r);case`subagent-close`:{let r=` ${n.colors.dim(n.glyph.corner)}`;return e.body!==void 0&&e.body.length>0?[clipVisible(`${r} ${n.colors.dim(e.body)}`,Math.max(1,t))]:[r]}case`turn-stats`:return renderTurnStats(e,t,n);case`session-boundary`:case`agent-header`:return(e.body??``).split(`
|
|
2
|
+
`)}}function renderUser(e,t,n){let r=e.promptOrigin===`steer`?n.colors.yellow(n.glyph.user):n.glyph.user;return wrap(e.body??``,t-2).map(e=>`${r} ${n.colors.bold(e)}`)}function renderProse(e,t,n,r){let i=[],a=e.kind===`subagent-step`;if(a&&e.collapsed===!0){let r=firstNonEmptyLine(e.body)??(e.reasoning===void 0?void 0:firstNonEmptyLine(e.reasoning));return r===void 0?[]:[n.colors.dim(sliceVisible(r,Math.max(1,t)))]}let o=r.renderMarkdown??!0,s=a?``:`${n.colors.bold(n.glyph.brand)} `,c=a?``:` `;e.reasoning&&e.reasoning.trim().length>0&&i.push(...renderReasoningLines(e.reasoning,t,n));let l=(e.body??``).trim();return l.length===0&&i.length===0?[`${s}${n.colors.dim(`thinking${n.glyph.ellipsis}`)}`]:(l.length>0&&(o?renderMarkdown(l,t-c.length):l).split(`
|
|
3
3
|
`).flatMap(e=>wrapVisibleLine(e,t-c.length)).forEach((e,t)=>{t===0&&!a&&i.length===0?i.push(`${s}${e}`):i.push(`${c}${e}`)}),i.length>0?i:[`${s}`])}function renderReasoning(e,t,n){return e.collapsed?[`${n.colors.gray(n.glyph.reasoning)} ${n.colors.dim(e.title??`thinking`)}`]:renderReasoningLines(e.body??``,t,n,n.glyph.reasoning)}function renderReasoningLines(e,t,n,r){let i=r?2:0,a=wrap(e.trim(),t-i);return a.length===0?[]:a.map((e,t)=>`${r?t===0?`${n.colors.gray(r)} `:` `:``}${n.colors.dim(n.colors.italic(e))}`)}function renderError(e,t,n){let r=n.colors.red(n.colors.bold(n.glyph.error)),i=e.title??`Error`,a=[`${r} ${n.colors.red(n.colors.bold(i))}`];for(let r of wrap(e.body??``,t-2))a.push(` ${colorizeError(r,n)}`);if(e.hint!==void 0&&e.hint.trim().length>0)for(let[r,i]of wrap(e.hint,t-4).entries()){let e=r===0?`${n.glyph.arrow} `:` `;a.push(` ${n.colors.cyan(`${e}${i}`)}`)}return a.push(...renderErrorDetail(e.detail,t,n)),a}function renderErrorDetail(e,t,n){if(e===void 0||e.trim().length===0)return[];let r=e.split(`
|
|
4
|
-
`),i=r.slice(0,12),a=i.map(e=>` ${n.colors.dim(truncatePlain(e,Math.max(1,t-2)))}`),o=r.length-i.length;return o>0&&a.push(` ${n.colors.dim(`${n.glyph.ellipsis} +${o} more line${o===1?``:`s`}`)}`),a}const URL_PATTERN=/(https?:\/\/\S+)/u;function colorizeError(e,t){return URL_PATTERN.test(e)?e.split(URL_PATTERN).map((e,n)=>n%2==1?t.colors.cyan(e):t.colors.red(e)).join(``):t.colors.red(e)}function renderNotice(e,t,n){let r=n.colors.dim(n.glyph.dot),i=wrap(e.body??``,t-2);return i.length===0?[r]:i.map(e=>`${r} ${n.colors.dim(e)}`)}function renderAttentionRows(e,t,n){let r=n.colors.yellow(n.glyph.warning);return wrap(e,t-2).map((e,t)=>`${t===0?r:` `} ${paintCommands(e,n)}`)}function renderWarning(e,t,n){return renderAttentionRows(e.body??``,t,n)}function paintCommands(e,t){return e.replace(/\/[a-z:-]+/g,e=>isPromptControlCommand(e)?t.colors.blue(e):e)}function renderCommand(e,t){let
|
|
4
|
+
`),i=r.slice(0,12),a=i.map(e=>` ${n.colors.dim(truncatePlain(e,Math.max(1,t-2)))}`),o=r.length-i.length;return o>0&&a.push(` ${n.colors.dim(`${n.glyph.ellipsis} +${o} more line${o===1?``:`s`}`)}`),a}const URL_PATTERN=/(https?:\/\/\S+)/u;function colorizeError(e,t){return URL_PATTERN.test(e)?e.split(URL_PATTERN).map((e,n)=>n%2==1?t.colors.cyan(e):t.colors.red(e)).join(``):t.colors.red(e)}function renderNotice(e,t,n){let r=n.colors.dim(n.glyph.dot),i=wrap(e.body??``,t-2);return i.length===0?[r]:i.map(e=>`${r} ${n.colors.dim(e)}`)}function renderAttentionRows(e,t,n){let r=n.colors.yellow(n.glyph.warning);return wrap(e,t-2).map((e,t)=>`${t===0?r:` `} ${paintCommands(e,n)}`)}function renderWarning(e,t,n){return renderAttentionRows(e.body??``,t,n)}function paintCommands(e,t){return e.replace(/\/[a-z:-]+/g,e=>isPromptControlCommand(e)?t.colors.blue(e):e)}function renderCommand(e,t,n){let r=t.colors;return[`${e.live===!0?n.transientPanelOpen===!0?t.glyph.user:n.setupFlowOpen===!0?r.gray(t.glyph.square):r.gray(n.activityPulse):e.status===`done`?r.gray(`*`):t.glyph.user} ${e.result===void 0?e.body??``:r.dim(e.result)}`]}function renderFlow(e,t,n){let r=wrap(e.body??``,t-2),i=n.colors.dim(`*`);return r.map((e,t)=>`${t===0?i:` `} ${e}`)}function renderResult(e,t,n){let r=wrap(e.body??``,t-7),i=n.colors.dim(n.glyph.elbow);if(r.length===0)return[` ${i}`];let dim=e=>n.colors.dim(e.replaceAll(`\x1B[22m`,`\x1B[22m\x1B[2m`));return r.map((e,t)=>t===0?` ${i} ${dim(e)}`:` ${dim(e)}`)}function renderPreformatted(e,t,n){let r=e.kind===`connection-auth`?n.colors.yellow(n.glyph.connection):n.colors.yellow(n.colors.bold(n.glyph.question)),i=e.kind===`question`?` `:` `,a=wrap(e.title??``,t-2),o=a.length===0?[`${r} `]:a.map((e,t)=>t===0?`${r} ${n.colors.bold(e)}`:` ${n.colors.bold(e)}`);for(let n of(e.body??``).split(`
|
|
5
5
|
`))for(let e of wrapVisibleLine(n,Math.max(1,t-i.length)))o.push(`${i}${e}`);return o}function renderSandbox(e,t,n,r){let i=n.colors.cyan(n.glyph.rule),a=n.colors.dim(`sandbox ${n.glyph.dot} `),o=visibleLength(a),s=` `.repeat(o),c=r.previous?.kind===`sandbox`,l=(e.body??``).split(`
|
|
6
6
|
`),u=[];for(let e of l){let r=wrapVisibleLine(e,Math.max(1,t-2-o));for(let e of r){let t=u.length===0&&!c?a:s;u.push(`${i} ${t}${n.colors.gray(e)}`)}}return u.length>0?u:[`${i}`]}function renderLog(e,t,n){let r=e.title===`stderr`,i=r?n.colors.red:n.colors.gray,a=n.colors.dim(n.glyph.rule),o=r?`stderr`:`stdout`,s=[`${n.colors.dim(n.glyph.reasoning)} ${n.colors.dim(o)}`];e.elided!==void 0&&e.elided>0&&s.push(`${a} ${elisionText(e.elided,n)}`);for(let r of(e.body??``).split(`
|
|
7
|
-
`))for(let e of wrapVisibleLine(r,Math.max(1,t-2)))s.push(`${a} ${n.colors.dim(i(e))}`);return s}function renderTurnStats(e,t,n){let r
|
|
7
|
+
`))for(let e of wrapVisibleLine(r,Math.max(1,t-2)))s.push(`${a} ${n.colors.dim(i(e))}`);return s}function renderTurnStats(e,t,n){let r=e.body??``;return[n.colors.dim(truncatePlain(r,Math.max(1,t)))]}function renderSubagentHeader(e,t,n,r){let i=truncatePlain(e.title===void 0||e.title===`agent`?`self`:e.title,Math.max(8,t-16)),a=e.subtitle!==void 0&&e.subtitle.startsWith(`#`),o=a?`:${e.subtitle.slice(1)}`:``,s=` ${e.status===`done`?n.colors.green(n.glyph.subagent):r.activityPulse.trim().length>0?n.colors.orange(n.glyph.subagent):n.colors.dim(n.glyph.subagent)} subagent(${i}${o})`;return!a&&e.subtitle!==void 0&&e.subtitle.length>0&&(s+=` ${n.colors.dim(e.subtitle)}`),[s]}function firstNonEmptyLine(e){return e===void 0?void 0:e.split(/\r?\n/u).find(e=>e.trim().length>0)?.trim()}function wrap(e,t){return e.trim().length===0?[]:e.split(`
|
|
8
8
|
`).flatMap(e=>wrapVisibleLine(e,Math.max(1,t)))}function truncatePlain(e,t){return visibleLength(e)<=t?e:sliceVisible(e,t)}export{renderAttentionRows,renderBlockLines};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Theme } from "./theme.js";
|
|
2
|
+
import { type FlowPanelState } from "./setup-panel.js";
|
|
3
|
+
/** Temporary setup content enclosed by a drawer and its navigation controls. */
|
|
4
|
+
export interface FlowDrawer {
|
|
5
|
+
readonly rows: string[];
|
|
6
|
+
readonly controls: string[];
|
|
7
|
+
}
|
|
8
|
+
/** Frames an active setup flow above the terminal footer. */
|
|
9
|
+
export declare function renderFlowDrawer(state: FlowPanelState, theme: Theme, width: number): FlowDrawer;
|
|
10
|
+
/** Frames a transient command panel with the same rules as a setup flow. */
|
|
11
|
+
export declare function renderTransientDrawer(body: readonly string[], controls: readonly string[], theme: Theme, width: number): FlowDrawer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{renderFlowPanel}from"./setup-panel.js";function renderFlowDrawer(e,t,n){let r=renderFlowPanel({...e,title:``},t,n),i=e.content.kind===`question`?r.lastIndexOf(``):-1,a=i===-1?[]:r.slice(i+1).map(e=>e.trimStart());return{rows:frameDrawer(i===-1?r:r.slice(0,i),t,n),controls:a}}function renderTransientDrawer(e,t,n,r){return{rows:frameDrawer(e,n,r),controls:t.map(e=>` ${n.colors.dim(e)}`)}}function frameDrawer(e,t,n){let r=t.colors.dim(t.glyph.dash.repeat(Math.max(1,n)));return[r,``,...e,``,r]}export{renderFlowDrawer,renderTransientDrawer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isPromptCommandAvailableFor}from"./prompt-commands.js";import{
|
|
1
|
+
import{isPromptCommandAvailableFor}from"./prompt-commands.js";import{LOGIN_CONNECTION_COMMAND_HINT,loginConnectionForCommand}from"#setup/flows/model-login-options.js";import{toErrorMessage}from"#shared/errors.js";function createPromptCommandHandler(e){return{async handle(t,n){let{target:r}=e;if(r.kind===`remote`&&!isPromptCommandAvailableFor(t.name,`remote`))return{message:`/${t.name} needs eve dev running the local server (it is not available when connected to a remote agent).`};if(t.name===`model`){if(t.argument.length===0)return{message:`Choose a model from the inline /model suggestions.`};if(r.kind!==`local`)return{message:`/model needs eve dev running the local server (it is not available when connected to a remote agent).`};let n=r.agentRoot??r.workspaceRoot,i=modelFailure("Use `/model provider/model [default|none|minimal|low|medium|high|xhigh]`.");try{let{modelChangeRefusalForUneditableModel:r}=await import(`#setup/flows/model.js`),{changeAgentModel:a,changeAgentModelSettings:o}=await import(`#setup/flows/model-source-change.js`),[s,c,...l]=t.argument.split(/\s+/u);if(s===void 0||l.length>0||c!==void 0&&![`default`,`none`,`minimal`,`low`,`medium`,`high`,`xhigh`].includes(c))return i;let u=await(e.modelChangeRefusal??r)(n);if(u!==null)return modelFailure(u);let d=c===void 0?s:`${s} ${c}`;if(c!==void 0){let e=await o({appRoot:n,patch:{model:{kind:`set`,value:s},reasoning:c==="default"?{kind:`remove`}:{kind:`set`,value:c},gatewayServiceTier:{kind:`keep`}}});return e.kind===`rejected`?modelFailure(e.message):e.kind===`unchanged`?{message:``,summary:`Model already set to ${d}`}:{message:``,summary:`Model set to ${d}`}}let f=await(e.applyModel??a)({appRoot:n,slug:s});return f.kind===`rejected`?modelFailure(f.message):f.kind===`unchanged`?{message:``,summary:`Model already set to ${f.model}`}:{message:``,summary:`Model set to ${f.to}`}}catch(e){return modelFailure(toErrorMessage(e))}}if(t.name===`add`&&t.argument.length===0)return{message:`Choose an integration from the inline /add suggestions.`};let i=t.name===`login`&&t.argument.length>0?loginConnectionForCommand(t.argument):void 0;if(t.name===`login`&&t.argument.length>0&&i===void 0)return{message:`Use \`/login ${LOGIN_CONNECTION_COMMAND_HINT}\`.`};let a=n.renderer.setupFlow;if(a===void 0)return{message:`/${t.name} is not supported by this renderer.`};let o;try{o=await import(`./setup-commands.js`)}catch(e){return{message:`/${t.name} failed: ${toErrorMessage(e)}`}}let{runTuiSetupCommand:s}=o;a.begin(``);let c=!0;try{let o={command:t.name,appRoot:r.workspaceRoot,renderer:a,withExclusiveTerminal:n.withExclusiveTerminal,chatGptAccountLabel:n.chatGptAccountLabel};r.agentRoot!==void 0&&(o.agentRoot=r.agentRoot),n.initialModelStep!==void 0&&(o.initialModelStep=n.initialModelStep),n.onOnboardingScreen!==void 0&&(o.onOnboardingScreen=n.onOnboardingScreen),t.name===`add`&&(o.initialRegistryAddress=t.argument),i!==void 0&&(o.initialLoginConnection=i),e.flows!==void 0&&(o.flows=e.flows);let l=await s(o);c=l.preserveFlowDiagnostics;let{preserveFlowDiagnostics:u,partial:d,...f}=l;return n.settleOutcome===void 0?f:await n.settleOutcome(f)}finally{a.end({preserveDiagnostics:c})}}}}function modelFailure(e){return{message:e,summary:`Couldn't change the model`,failed:!0}}export{createPromptCommandHandler};
|
|
@@ -41,9 +41,203 @@ export interface PromptCommandSpec {
|
|
|
41
41
|
readonly argumentHint?: string;
|
|
42
42
|
/** Accepts a trailing argument (enables `/name <arg>` parsing). */
|
|
43
43
|
readonly takesArgument: boolean;
|
|
44
|
+
/** Whether recalling this command would reopen a modal or take over prompt navigation. */
|
|
45
|
+
readonly history: "keep" | "omit";
|
|
46
|
+
/** Inline argument suggestions, when this command has a catalog-backed grammar. */
|
|
47
|
+
readonly typeahead?: {
|
|
48
|
+
readonly maxArguments: number;
|
|
49
|
+
readonly loadingLabel: string;
|
|
50
|
+
};
|
|
44
51
|
/** Maps a recognized invocation to its parsed command. */
|
|
45
52
|
readonly build: (argument: string) => PromptCommand;
|
|
46
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Every slash command the prompt accepts, in typeahead display order. One
|
|
56
|
+
* module owns the command list so the runner's dispatch, the renderer's
|
|
57
|
+
* transcript-echo suppression, and command discovery cannot drift apart.
|
|
58
|
+
*/
|
|
59
|
+
declare const PROMPT_COMMAND_DEFINITIONS: ({
|
|
60
|
+
name: string;
|
|
61
|
+
history: "omit";
|
|
62
|
+
aliases: never[];
|
|
63
|
+
description: string;
|
|
64
|
+
argumentHint: string;
|
|
65
|
+
takesArgument: true;
|
|
66
|
+
typeahead: {
|
|
67
|
+
maxArguments: number;
|
|
68
|
+
loadingLabel: string;
|
|
69
|
+
};
|
|
70
|
+
build: (argument: string) => {
|
|
71
|
+
type: "extension";
|
|
72
|
+
name: "model";
|
|
73
|
+
argument: string;
|
|
74
|
+
};
|
|
75
|
+
targets: "local"[];
|
|
76
|
+
} | {
|
|
77
|
+
name: string;
|
|
78
|
+
history: "keep";
|
|
79
|
+
aliases: never[];
|
|
80
|
+
description: string;
|
|
81
|
+
takesArgument: false;
|
|
82
|
+
build: () => {
|
|
83
|
+
type: "reset";
|
|
84
|
+
};
|
|
85
|
+
targets: ("local" | "remote")[];
|
|
86
|
+
argumentHint?: undefined;
|
|
87
|
+
typeahead?: undefined;
|
|
88
|
+
} | {
|
|
89
|
+
name: string;
|
|
90
|
+
history: "keep";
|
|
91
|
+
aliases: string[];
|
|
92
|
+
description: string;
|
|
93
|
+
takesArgument: false;
|
|
94
|
+
build: () => {
|
|
95
|
+
type: "clear";
|
|
96
|
+
};
|
|
97
|
+
targets: ("local" | "remote")[];
|
|
98
|
+
argumentHint?: undefined;
|
|
99
|
+
typeahead?: undefined;
|
|
100
|
+
} | {
|
|
101
|
+
name: string;
|
|
102
|
+
history: "keep";
|
|
103
|
+
aliases: never[];
|
|
104
|
+
description: string;
|
|
105
|
+
takesArgument: false;
|
|
106
|
+
build: () => {
|
|
107
|
+
type: "compact";
|
|
108
|
+
};
|
|
109
|
+
targets: ("local" | "remote")[];
|
|
110
|
+
argumentHint?: undefined;
|
|
111
|
+
typeahead?: undefined;
|
|
112
|
+
} | {
|
|
113
|
+
name: string;
|
|
114
|
+
history: "keep";
|
|
115
|
+
aliases: never[];
|
|
116
|
+
description: string;
|
|
117
|
+
takesArgument: false;
|
|
118
|
+
build: () => {
|
|
119
|
+
type: "cancel";
|
|
120
|
+
};
|
|
121
|
+
targets: ("local" | "remote")[];
|
|
122
|
+
argumentHint?: undefined;
|
|
123
|
+
typeahead?: undefined;
|
|
124
|
+
} | {
|
|
125
|
+
name: string;
|
|
126
|
+
history: "omit";
|
|
127
|
+
aliases: never[];
|
|
128
|
+
description: string;
|
|
129
|
+
argumentHint: string;
|
|
130
|
+
takesArgument: true;
|
|
131
|
+
typeahead: {
|
|
132
|
+
maxArguments: number;
|
|
133
|
+
loadingLabel: string;
|
|
134
|
+
};
|
|
135
|
+
build: (argument: string) => {
|
|
136
|
+
type: "extension";
|
|
137
|
+
name: "login";
|
|
138
|
+
argument: string;
|
|
139
|
+
};
|
|
140
|
+
targets: "local"[];
|
|
141
|
+
} | {
|
|
142
|
+
name: string;
|
|
143
|
+
history: "omit";
|
|
144
|
+
aliases: never[];
|
|
145
|
+
description: string;
|
|
146
|
+
takesArgument: true;
|
|
147
|
+
typeahead: {
|
|
148
|
+
maxArguments: number;
|
|
149
|
+
loadingLabel: string;
|
|
150
|
+
};
|
|
151
|
+
build: (argument: string) => {
|
|
152
|
+
type: "extension";
|
|
153
|
+
name: "add";
|
|
154
|
+
argument: string;
|
|
155
|
+
};
|
|
156
|
+
targets: "local"[];
|
|
157
|
+
argumentHint?: undefined;
|
|
158
|
+
} | {
|
|
159
|
+
name: string;
|
|
160
|
+
history: "keep";
|
|
161
|
+
aliases: never[];
|
|
162
|
+
description: string;
|
|
163
|
+
takesArgument: false;
|
|
164
|
+
build: () => {
|
|
165
|
+
type: "extension";
|
|
166
|
+
name: "deploy";
|
|
167
|
+
argument: string;
|
|
168
|
+
};
|
|
169
|
+
targets: "local"[];
|
|
170
|
+
argumentHint?: undefined;
|
|
171
|
+
typeahead?: undefined;
|
|
172
|
+
} | {
|
|
173
|
+
name: string;
|
|
174
|
+
history: "omit";
|
|
175
|
+
aliases: never[];
|
|
176
|
+
description: string;
|
|
177
|
+
argumentHint: string;
|
|
178
|
+
takesArgument: true;
|
|
179
|
+
build: (argument: string) => {
|
|
180
|
+
type: "traces";
|
|
181
|
+
argument: string;
|
|
182
|
+
};
|
|
183
|
+
targets: "local"[];
|
|
184
|
+
typeahead?: undefined;
|
|
185
|
+
} | {
|
|
186
|
+
name: string;
|
|
187
|
+
history: "omit";
|
|
188
|
+
aliases: never[];
|
|
189
|
+
description: string;
|
|
190
|
+
argumentHint: string;
|
|
191
|
+
takesArgument: true;
|
|
192
|
+
typeahead: {
|
|
193
|
+
maxArguments: number;
|
|
194
|
+
loadingLabel: string;
|
|
195
|
+
};
|
|
196
|
+
build: (argument: string) => {
|
|
197
|
+
type: "loglevel";
|
|
198
|
+
argument: string;
|
|
199
|
+
};
|
|
200
|
+
targets: ("local" | "remote")[];
|
|
201
|
+
} | {
|
|
202
|
+
argumentHint?: undefined;
|
|
203
|
+
typeahead?: undefined;
|
|
204
|
+
name: string;
|
|
205
|
+
history: "omit";
|
|
206
|
+
aliases: never[];
|
|
207
|
+
description: string;
|
|
208
|
+
takesArgument: false;
|
|
209
|
+
build: () => {
|
|
210
|
+
type: "info";
|
|
211
|
+
};
|
|
212
|
+
targets: "local"[];
|
|
213
|
+
} | {
|
|
214
|
+
argumentHint?: undefined;
|
|
215
|
+
typeahead?: undefined;
|
|
216
|
+
name: string;
|
|
217
|
+
history: "omit";
|
|
218
|
+
aliases: never[];
|
|
219
|
+
description: string;
|
|
220
|
+
takesArgument: false;
|
|
221
|
+
build: () => {
|
|
222
|
+
type: "help";
|
|
223
|
+
};
|
|
224
|
+
targets: ("local" | "remote")[];
|
|
225
|
+
} | {
|
|
226
|
+
argumentHint?: undefined;
|
|
227
|
+
typeahead?: undefined;
|
|
228
|
+
name: string;
|
|
229
|
+
history: "keep";
|
|
230
|
+
aliases: string[];
|
|
231
|
+
description: string;
|
|
232
|
+
takesArgument: false;
|
|
233
|
+
build: () => {
|
|
234
|
+
type: "exit";
|
|
235
|
+
};
|
|
236
|
+
targets: ("local" | "remote")[];
|
|
237
|
+
})[];
|
|
238
|
+
export type ArgumentTypeaheadCommand = Extract<(typeof PROMPT_COMMAND_DEFINITIONS)[number], {
|
|
239
|
+
typeahead: object;
|
|
240
|
+
}>["name"];
|
|
47
241
|
export declare const PROMPT_COMMANDS: readonly PromptCommandSpec[];
|
|
48
242
|
export declare function promptCommandsFor(target: PromptCommandTarget): readonly PromptCommandSpec[];
|
|
49
243
|
/** Whether a command runs against this target — the one authority dispatch shares with discovery. */
|
|
@@ -57,6 +251,11 @@ export declare function isPromptCommandAvailableFor(name: PromptCommandExtension
|
|
|
57
251
|
* message.
|
|
58
252
|
*/
|
|
59
253
|
export declare function parsePromptCommand(prompt: string): PromptCommand | null;
|
|
254
|
+
/** Resolve an invocation and its history policy from the same command definition. */
|
|
255
|
+
export declare function promptCommandSpec(prompt: string): {
|
|
256
|
+
spec: PromptCommandSpec;
|
|
257
|
+
argument: string;
|
|
258
|
+
} | undefined;
|
|
60
259
|
/** True for prompts that are commands, which never echo as user messages. */
|
|
61
260
|
export declare function isPromptControlCommand(prompt: string): boolean;
|
|
62
261
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const PROMPT_COMMAND_DEFINITIONS=[{name:`model`,aliases:[],description:`Choose a model, speed, and reasoning`,argumentHint:`[provider/model]`,takesArgument:!0,build:e=>({type:`extension`,name:`model`,argument:e}),targets:[`local`]},{name:`reset`,aliases:[],description:`Start a fresh session`,takesArgument:!1,build:()=>({type:`reset`}),targets:[`local`,`remote`]},{name:`clear`,aliases:[`new`],description:`Clear the current session context`,takesArgument:!1,build:()=>({type:`clear`}),targets:[`local`,`remote`]},{name:`compact`,aliases:[],description:`Compact the current session context`,takesArgument:!1,build:()=>({type:`compact`}),targets:[`local`,`remote`]},{name:`cancel`,aliases:[],description:`Cancel the running turn`,takesArgument:!1,build:()=>({type:`cancel`}),targets:[`local`,`remote`]},{name:`login`,aliases:[],description:`Connect a model provider`,argumentHint:`[connection]`,takesArgument:!0,build:e=>({type:`extension`,name:`login`,argument:e}),targets:[`local`]},{name:`add`,aliases:[],description:`Add an integration from the registry`,takesArgument:!0,build:e=>({type:`extension`,name:`add`,argument:e}),targets:[`local`]},{name:`deploy`,aliases:[],description:`Deploy the agent to Vercel`,takesArgument:!1,build:()=>({type:`extension`,name:`deploy`,argument:``}),targets:[`local`]},{name:`traces`,aliases:[],description:`Open the local trace viewer`,argumentHint:`[trace]`,takesArgument:!0,build:e=>({type:`traces`,argument:e}),targets:[`local`]},{name:`loglevel`,aliases:[],description:`Show or hide captured stdout/stderr/sandbox logs`,argumentHint:`[all|stderr|sandbox|none]`,takesArgument:!0,build:e=>({type:`loglevel`,argument:e}),targets:[`local`,`remote`]},{name:`info`,aliases:[],description:`Show application and messaging information`,takesArgument:!1,build:()=>({type:`info`}),targets:[`local`]},{name:`help`,aliases:[],description:`Show available commands`,takesArgument:!1,build:()=>({type:`help`}),targets:[`local`,`remote`]},{name:`exit`,aliases:[`quit`],description:`Quit the TUI`,takesArgument:!1,build:()=>({type:`exit`}),targets:[`local`,`remote`]}],PROMPT_COMMANDS=PROMPT_COMMAND_DEFINITIONS;function promptCommandsFor(e){let t=PROMPT_COMMAND_DEFINITIONS.filter(t=>t.targets.some(t=>t===e));return e===`remote`?[...t.filter(e=>e.name===`help`),...t.filter(e=>e.name!==`help`)]:t}function isPromptCommandAvailableFor(e,t){return(PROMPT_COMMAND_DEFINITIONS.find(t=>t.name===e)?.targets)?.includes(t)??!1}function parsePromptCommand(e){let t=e.trim();if(
|
|
2
|
-
`)}export{PROMPT_COMMANDS,formatPromptCommandHelp,isPromptCommandAvailableFor,isPromptControlCommand,parsePromptCommand,promptCommandsFor};
|
|
1
|
+
const PROMPT_COMMAND_DEFINITIONS=[{name:`model`,history:`omit`,aliases:[],description:`Choose a model, speed, and reasoning`,argumentHint:`[provider/model]`,takesArgument:!0,typeahead:{maxArguments:2,loadingLabel:`models`},build:e=>({type:`extension`,name:`model`,argument:e}),targets:[`local`]},{name:`reset`,history:`keep`,aliases:[],description:`Start a fresh session`,takesArgument:!1,build:()=>({type:`reset`}),targets:[`local`,`remote`]},{name:`clear`,history:`keep`,aliases:[`new`],description:`Clear the current session context`,takesArgument:!1,build:()=>({type:`clear`}),targets:[`local`,`remote`]},{name:`compact`,history:`keep`,aliases:[],description:`Compact the current session context`,takesArgument:!1,build:()=>({type:`compact`}),targets:[`local`,`remote`]},{name:`cancel`,history:`keep`,aliases:[],description:`Cancel the running turn`,takesArgument:!1,build:()=>({type:`cancel`}),targets:[`local`,`remote`]},{name:`login`,history:`omit`,aliases:[],description:`Connect a model provider`,argumentHint:`[connection]`,takesArgument:!0,typeahead:{maxArguments:1,loadingLabel:`connections`},build:e=>({type:`extension`,name:`login`,argument:e}),targets:[`local`]},{name:`add`,history:`omit`,aliases:[],description:`Add an integration from the registry`,takesArgument:!0,typeahead:{maxArguments:1,loadingLabel:`registry`},build:e=>({type:`extension`,name:`add`,argument:e}),targets:[`local`]},{name:`deploy`,history:`keep`,aliases:[],description:`Deploy the agent to Vercel`,takesArgument:!1,build:()=>({type:`extension`,name:`deploy`,argument:``}),targets:[`local`]},{name:`traces`,history:`omit`,aliases:[],description:`Open the local trace viewer`,argumentHint:`[trace]`,takesArgument:!0,build:e=>({type:`traces`,argument:e}),targets:[`local`]},{name:`loglevel`,history:`omit`,aliases:[],description:`Show or hide captured stdout/stderr/sandbox logs`,argumentHint:`[all|stderr|sandbox|none]`,takesArgument:!0,typeahead:{maxArguments:1,loadingLabel:`log levels`},build:e=>({type:`loglevel`,argument:e}),targets:[`local`,`remote`]},{name:`info`,history:`omit`,aliases:[],description:`Show application and messaging information`,takesArgument:!1,build:()=>({type:`info`}),targets:[`local`]},{name:`help`,history:`omit`,aliases:[],description:`Show available commands`,takesArgument:!1,build:()=>({type:`help`}),targets:[`local`,`remote`]},{name:`exit`,history:`keep`,aliases:[`quit`],description:`Quit the TUI`,takesArgument:!1,build:()=>({type:`exit`}),targets:[`local`,`remote`]}],PROMPT_COMMANDS=PROMPT_COMMAND_DEFINITIONS;function promptCommandsFor(e){let t=PROMPT_COMMAND_DEFINITIONS.filter(t=>t.targets.some(t=>t===e));return e===`remote`?[...t.filter(e=>e.name===`help`),...t.filter(e=>e.name!==`help`)]:t}function isPromptCommandAvailableFor(e,t){return(PROMPT_COMMAND_DEFINITIONS.find(t=>t.name===e)?.targets)?.includes(t)??!1}function parsePromptCommand(e){let t=promptCommandSpec(e);return t===void 0?null:t.spec.build(t.argument)}function promptCommandSpec(e){let t=e.trim();if(t.startsWith(`/`))for(let e of PROMPT_COMMANDS)for(let n of[e.name,...e.aliases]){let r=`/${n}`;if(t===r)return{spec:e,argument:``};if(e.takesArgument&&t.startsWith(`${r} `))return{spec:e,argument:t.slice(r.length).trim()}}}function isPromptControlCommand(e){return parsePromptCommand(e)!==null}function formatPromptCommandHelp(e=PROMPT_COMMANDS){let t=e.map(e=>{let t=e.argumentHint===void 0?``:` ${e.argumentHint}`,n=e.aliases.map(e=>` (/${e})`).join(``);return{invocation:`/${e.name}${t}${n}`,description:e.description}}),n=Math.max(...t.map(e=>e.invocation.length))+2;return t.map(e=>e.invocation.padEnd(n)+e.description).join(`
|
|
2
|
+
`)}export{PROMPT_COMMANDS,formatPromptCommandHelp,isPromptCommandAvailableFor,isPromptControlCommand,parsePromptCommand,promptCommandSpec,promptCommandsFor};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Pure rendering for the HITL question
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* it from the transcript, options render as numbered rows with their
|
|
2
|
+
* Pure rendering for the HITL question drawer — a pending question request
|
|
3
|
+
* (such as one from `ask_question` or `ctx.ask()`) opens above the input area.
|
|
4
|
+
* Options render as numbered rows with their
|
|
6
5
|
* descriptions always visible, and the trailing "Type your own answer" row
|
|
7
6
|
* carries an inline elbow editor that receives focus the moment the cursor
|
|
8
7
|
* rests on it (the provider-key grammar from the setup panel). The renderer
|
|
@@ -23,3 +22,4 @@ export interface QuestionPanelState {
|
|
|
23
22
|
readonly caretVisible: boolean;
|
|
24
23
|
}
|
|
25
24
|
export declare function renderQuestionPanel(state: QuestionPanelState, theme: Theme, width: number): string[];
|
|
25
|
+
export declare function renderQuestionChoices(options: readonly AgentTUIInputOption[], cursor: number, theme: Theme, forceCursor?: boolean): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{visibleLine}from"./line-editor.js";import{clipVisible,renderInputWithBlockCursor,wrapVisibleLine}from"#cli/ui/terminal-text.js";
|
|
1
|
+
import{visibleLine}from"./line-editor.js";import{clipVisible,renderInputText,renderInputWithBlockCursor,wrapVisibleLine}from"#cli/ui/terminal-text.js";import{renderOptionRow}from"#setup/cli/option-row.js";const FREEFORM_ROW_LABEL=`Type your own answer…`;function renderQuestionPanel(e,t,n){let r=t.colors,i=[];for(let t of e.prompt.split(/\r?\n/u))for(let e of wrapVisibleLine(t,Math.max(8,n-2)))i.push(` ${r.bold(e)}`);return i.push(``),i.push(...renderQuestionChoices(e.options,e.cursor,t)),e.allowFreeform&&i.push(renderFreeformRow(e,t,n)),i.map(e=>clipVisible(e,n))}function renderQuestionChoices(e,t,n,r=!1){return e.flatMap((e,i)=>{let a=r||t===i,o=[` ${renderOptionRow({colors:n.colors,glyphs:{pointer:n.glyph.pointer,selectedPointer:n.glyph.selectedPointer,success:n.glyph.success,placeholder:n.glyph.option,dot:n.glyph.dot,warning:n.glyph.warning},label:e.label,isCursor:a,state:{kind:`available`,checked:!1},placeholder:!1,presentation:`minimal`})}`];return e.description!==void 0&&e.description.length>0&&o.push(` ${n.colors.dim(e.description)}`),o})}function renderFreeformRow(e,t,n){let r=t.colors,i=e.cursor===e.options.length,a=Math.max(4,n-6);if(!i){let n=visibleLine(e.editor,a,t.glyph.ellipsis),i=e.editor.text.length===0?FREEFORM_ROW_LABEL:`${n.before}${n.under}${n.after}`;return` ${r.dim(i)}`}let o=e.editor.text.length===0,s=o?{text:FREEFORM_ROW_LABEL,cursor:0}:e.editor;return` ${renderInputWithBlockCursor({...visibleLine(s,a,t.glyph.ellipsis),visible:e.caretVisible,inverse:r.inverse,render:o?e=>r.dim(renderInputText(e)):void 0})}`}export{renderQuestionChoices,renderQuestionPanel};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RegistryCatalogItem } from "#cli/commands/registry.js";
|
|
2
|
-
import type { RegistrySessionResult } from "#setup/flows/registry-session.js";
|
|
2
|
+
import type { RegistrySessionOutcome, RegistrySessionResult } from "#setup/flows/registry-session.js";
|
|
3
3
|
/** Builds the shared transient progress update for `/add` and initial onboarding. */
|
|
4
4
|
export declare function registryItemProgress(renderer: {
|
|
5
5
|
replaceContent?(content?: {
|
|
@@ -12,6 +12,17 @@ export declare function registryItemProgress(renderer: {
|
|
|
12
12
|
setNavigation?(navigation: undefined): void;
|
|
13
13
|
setStatus(status: string | undefined): void;
|
|
14
14
|
}): (item: RegistryCatalogItem, index: number, total: number) => void;
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
export interface RegistryCommandOutcome {
|
|
16
|
+
failed: boolean;
|
|
17
|
+
/** Replaces the echoed `/add` once it settles. */
|
|
18
|
+
summary: string;
|
|
19
|
+
/** Detail hung under the summary; empty when the summary says it all. */
|
|
20
|
+
message: string;
|
|
21
|
+
}
|
|
22
|
+
/** The one-line record of an `/add` item left in place of its invocation. */
|
|
23
|
+
export declare function registryOutcomeSummary(outcome: RegistrySessionOutcome): string;
|
|
24
|
+
/**
|
|
25
|
+
* Summarizes an `/add` session in place of its echoed command. One item folds
|
|
26
|
+
* into the summary itself; several items list one marked row each.
|
|
27
|
+
*/
|
|
28
|
+
export declare function registryCommandOutcome(result: RegistrySessionResult, notes?: readonly string[]): RegistryCommandOutcome;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function registryItemProgress(e){return(t,n,r)=>{e.setNavigation?.(void 0),e.replaceContent?.(),e.setStatus(`Adding ${t.title??t.name} · ${n+1} of ${r}`)}}function
|
|
2
|
-
Try again with \``)
|
|
3
|
-
`)
|
|
4
|
-
`)}export{
|
|
1
|
+
function registryItemProgress(e){return(t,n,r)=>{e.setNavigation?.(void 0),e.replaceContent?.(),e.setStatus(`Adding ${t.title??t.name} · ${n+1} of ${r}`)}}function outcomeDetails(e){switch(e.kind){case`installed`:{let t=e.facts.filter(e=>e.label.length>0),n=Math.max(0,...t.map(e=>e.label.length));return[...e.facts.map(e=>e.label.length===0?e.value:`${e.label.padEnd(n)} ${e.value}`),...e.output]}case`incomplete`:return[`Finish with \`${e.resumeCommand}\``];case`failed`:return e.message.replace(" Try again with `",`
|
|
2
|
+
Try again with \``).split(`
|
|
3
|
+
`);case`cancelled`:return[]}}function registryOutcomeSummary(e){switch(e.kind){case`installed`:return`Added ${e.title}`;case`incomplete`:return`Added ${e.title} · setup not finished`;case`failed`:return`Couldn't add ${e.title}`;case`cancelled`:return`${e.title} not added`}}function hasFailedOutcome(e){return e.some(e=>e.kind===`failed`)}function registryCommandOutcome(e,t=[]){let{outcomes:n}=e,r=n.filter(e=>e.kind===`installed`||e.kind===`incomplete`).length,i=n.length===1?registryOutcomeSummary(n[0]):`Added ${r} of ${n.length} items`,a=n.length===1?outcomeDetails(n[0]):n.flatMap(e=>[`* ${registryOutcomeSummary(e)}`,...outcomeDetails(e).map(e=>` ${e}`)]);return a.push(...t.map(e=>`⚠ ${e}`)),{failed:hasFailedOutcome(n),summary:i,message:a.join(`
|
|
4
|
+
`)}}export{registryCommandOutcome,registryItemProgress,registryOutcomeSummary};
|
|
@@ -6,7 +6,7 @@ import { inspectApplication } from "#services/inspect-application.js";
|
|
|
6
6
|
import { type SubagentView } from "./subagent-pump.js";
|
|
7
7
|
export type { SubagentRun, SubagentStepUpdate, SubagentToolUpdate, SubagentView, } from "./subagent-pump.js";
|
|
8
8
|
import { type DevBootProgressReporter } from "#internal/dev-boot-progress.js";
|
|
9
|
-
import { type PromptCommand, type PromptCommandSpec } from "./prompt-commands.js";
|
|
9
|
+
import { type PromptCommand, type PromptCommandSpec, type ArgumentTypeaheadCommand } from "./prompt-commands.js";
|
|
10
10
|
import type { PromptArgumentSuggestion } from "./argument-typeahead.js";
|
|
11
11
|
import { type RemoteConnectionControllerOptions, type RemoteConnectionSnapshot } from "./remote-connection.js";
|
|
12
12
|
import type { RemoteAuthFlow } from "./remote-auth.js";
|
|
@@ -191,8 +191,10 @@ export type AgentTUIRenderer = {
|
|
|
191
191
|
/** Clears the setup attention line once its issue is resolved. */
|
|
192
192
|
clearSetupWarning?(): void;
|
|
193
193
|
/** Commits the startup `/deploy` invocation to the transcript. */
|
|
194
|
-
renderCommandInvocation?(text: string
|
|
195
|
-
|
|
194
|
+
renderCommandInvocation?(text: string): void;
|
|
195
|
+
finishCommand?(outcome: CommandPresentation): void;
|
|
196
|
+
choosePromptCommand?(commands: readonly PromptCommandSpec[]): Promise<string | undefined>;
|
|
197
|
+
showInfoPanel?(text: string): Promise<void>;
|
|
196
198
|
readonly setupFlow?: SetupFlowRenderer;
|
|
197
199
|
/**
|
|
198
200
|
* The renderer's full-screen local trace viewer, opened by `/traces`.
|
|
@@ -306,12 +308,22 @@ export interface PromptCommandHandlerContext {
|
|
|
306
308
|
readonly withExclusiveTerminal?: <T>(task: () => Promise<T>) => Promise<T>;
|
|
307
309
|
readonly disabledConnectionReasons?: Readonly<Record<string, string>>;
|
|
308
310
|
}
|
|
311
|
+
/** One atomic transcript decision for an invocation, including no-output commands. */
|
|
312
|
+
export type CommandPresentation = {
|
|
313
|
+
kind: "dismiss";
|
|
314
|
+
} | {
|
|
315
|
+
kind: "result";
|
|
316
|
+
message?: string;
|
|
317
|
+
summary?: string;
|
|
318
|
+
};
|
|
309
319
|
/** What one handled slash command leaves behind for the runner to apply. */
|
|
310
320
|
export interface PromptCommandOutcome {
|
|
311
321
|
/** Outcome line rendered under the echoed command; absent renders nothing. */
|
|
312
322
|
message?: string;
|
|
313
|
-
/**
|
|
314
|
-
|
|
323
|
+
/** The command failed; completed and cancelled commands share the normal settled presentation. */
|
|
324
|
+
failed?: true;
|
|
325
|
+
/** Replaces the echoed invocation once the command settles. */
|
|
326
|
+
summary?: string;
|
|
315
327
|
/** Post-command work after setup settles. */
|
|
316
328
|
effect?: VercelStatusEffect | ModelAccessChange;
|
|
317
329
|
cancelled?: true;
|
|
@@ -371,7 +383,7 @@ export type EveTUIRunnerOptions = TuiDisplayOptions & {
|
|
|
371
383
|
/** Commands shown in discovery for this local or remote session. */
|
|
372
384
|
availablePromptCommands?: readonly PromptCommandSpec[];
|
|
373
385
|
/** Catalog entries available to inline `/model`, `/add`, and `/login` completion. */
|
|
374
|
-
argumentSuggestions?: (command:
|
|
386
|
+
argumentSuggestions?: (command: ArgumentTypeaheadCommand) => Promise<readonly PromptArgumentSuggestion[]>;
|
|
375
387
|
/** Gives setup subprocesses exclusive terminal and development-host ownership. */
|
|
376
388
|
withExclusiveTerminal?: <T>(task: () => Promise<T>) => Promise<T>;
|
|
377
389
|
/** Remote target and mutable OIDC token source, when connected through `--url`. */
|