@bastani/atomic 0.9.13-alpha.1 → 0.9.13-alpha.2
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 +130 -0
- package/README.md +35 -17
- package/dist/builtin/i-have-adhd/CHANGELOG.md +17 -0
- package/dist/builtin/i-have-adhd/LICENSE +21 -0
- package/dist/builtin/i-have-adhd/README.md +18 -0
- package/dist/builtin/i-have-adhd/index.ts +238 -0
- package/dist/builtin/i-have-adhd/package.json +56 -0
- package/dist/builtin/i-have-adhd/skills/i-have-adhd/SKILL.md +140 -0
- package/dist/builtin/intercom/CHANGELOG.md +19 -0
- package/dist/builtin/intercom/README.md +25 -4
- package/dist/builtin/intercom/broker/bounded-stderr-install.ts +18 -0
- package/dist/builtin/intercom/broker/bounded-stderr.ts +132 -0
- package/dist/builtin/intercom/broker/broker.ts +12 -23
- package/dist/builtin/intercom/broker/client.ts +70 -3
- package/dist/builtin/intercom/broker/paths.ts +9 -0
- package/dist/builtin/intercom/broker/presence-handler.ts +103 -0
- package/dist/builtin/intercom/broker/spawn.ts +128 -29
- package/dist/builtin/intercom/foreground-detach-handoff.ts +30 -14
- package/dist/builtin/intercom/group.ts +64 -25
- package/dist/builtin/intercom/index-heavy.ts +38 -5
- package/dist/builtin/intercom/index.ts +7 -3
- package/dist/builtin/intercom/intercom-tool.ts +82 -5
- package/dist/builtin/intercom/lazy-subagent-ack.ts +11 -6
- package/dist/builtin/intercom/package.json +2 -3
- package/dist/builtin/intercom/runtime-group.ts +13 -0
- package/dist/builtin/intercom/skills/intercom/SKILL.md +30 -2
- package/dist/builtin/intercom/subagent-relay.ts +32 -16
- package/dist/builtin/intercom/terminal-ordering-barrier.ts +21 -4
- package/dist/builtin/intercom/types.ts +3 -1
- package/dist/builtin/intercom/ui/compose.ts +8 -6
- package/dist/builtin/intercom/ui/session-list.ts +7 -5
- package/dist/builtin/mcp/CHANGELOG.md +13 -0
- package/dist/builtin/mcp/glimpse-ui.ts +2 -1
- package/dist/builtin/mcp/index.ts +1 -11
- package/dist/builtin/mcp/mcp-panel.ts +35 -34
- package/dist/builtin/mcp/mcp-setup-panel.ts +35 -33
- package/dist/builtin/mcp/npx-resolver.ts +3 -2
- package/dist/builtin/mcp/package.json +3 -3
- package/dist/builtin/mcp/sampling-handler.ts +5 -1
- package/dist/builtin/mcp/server-manager.ts +4 -7
- package/dist/builtin/subagents/CHANGELOG.md +33 -0
- package/dist/builtin/subagents/README.md +124 -323
- package/dist/builtin/subagents/agents/worker.md +1 -1
- package/dist/builtin/subagents/package.json +5 -5
- package/dist/builtin/subagents/prompts/parallel-context-build.md +2 -2
- package/dist/builtin/subagents/prompts/parallel-handoff-plan.md +4 -4
- package/dist/builtin/subagents/prompts/review-loop.md +1 -1
- package/dist/builtin/subagents/skills/subagent/SKILL.md +39 -102
- package/dist/builtin/subagents/src/agents/agent-discovery.ts +1 -29
- package/dist/builtin/subagents/src/agents/agent-loaders.ts +1 -40
- package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +6 -135
- package/dist/builtin/subagents/src/agents/agent-management.ts +52 -282
- package/dist/builtin/subagents/src/agents/agent-paths.ts +0 -22
- package/dist/builtin/subagents/src/agents/agent-types.ts +0 -40
- package/dist/builtin/subagents/src/agents/agents.ts +0 -3
- package/dist/builtin/subagents/src/agents/identity.ts +2 -4
- package/dist/builtin/subagents/src/agents/skills-paths.ts +8 -1
- package/dist/builtin/subagents/src/extension/doctor.ts +3 -23
- package/dist/builtin/subagents/src/extension/index.ts +9 -7
- package/dist/builtin/subagents/src/extension/prompt-guidance.ts +2 -2
- package/dist/builtin/subagents/src/extension/schemas.ts +1 -157
- package/dist/builtin/subagents/src/extension/startup-maintenance.ts +0 -2
- package/dist/builtin/subagents/src/extension/tool-description.ts +4 -13
- package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +6 -2
- package/dist/builtin/subagents/src/intercom/result-intercom.ts +20 -22
- package/dist/builtin/subagents/src/intercom/supervisor-authorization.ts +9 -2
- package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +97 -16
- package/dist/builtin/subagents/src/runs/background/completion-notification.ts +8 -3
- package/dist/builtin/subagents/src/runs/background/notify.ts +54 -18
- package/dist/builtin/subagents/src/runs/foreground/execution-updates.ts +0 -5
- package/dist/builtin/subagents/src/runs/foreground/execution.ts +1 -4
- package/dist/builtin/subagents/src/runs/foreground/inprocess-run-sync.ts +117 -15
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +11 -40
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +11 -22
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +10 -173
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +6 -4
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +9 -2
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +9 -2
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +32 -12
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +2 -6
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-worktree.ts +1 -14
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +56 -31
- package/dist/builtin/subagents/src/runs/inprocess/background-single.ts +46 -30
- package/dist/builtin/subagents/src/runs/inprocess/background.ts +2 -1
- package/dist/builtin/subagents/src/runs/inprocess/runner.ts +343 -89
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-projection.ts +0 -2
- package/dist/builtin/subagents/src/runs/inprocess/runtime-support/nested-sanitize.ts +1 -3
- package/dist/builtin/subagents/src/runs/shared/intercom-group.ts +23 -7
- package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +0 -86
- package/dist/builtin/subagents/src/runs/shared/worktree.ts +7 -2
- package/dist/builtin/subagents/src/shared/formatters.ts +2 -56
- package/dist/builtin/subagents/src/shared/settings.ts +14 -350
- package/dist/builtin/subagents/src/shared/types-async.ts +8 -31
- package/dist/builtin/subagents/src/shared/types-config.ts +20 -22
- package/dist/builtin/subagents/src/shared/types-depth.ts +30 -56
- package/dist/builtin/subagents/src/shared/types-results.ts +9 -58
- package/dist/builtin/subagents/src/shared/types-runtime.ts +0 -1
- package/dist/builtin/subagents/src/shared/utils.ts +5 -0
- package/dist/builtin/subagents/src/slash/bridge-settlement.ts +87 -0
- package/dist/builtin/subagents/src/slash/prompt-template-bridge.ts +47 -7
- package/dist/builtin/subagents/src/slash/slash-bridge.ts +27 -7
- package/dist/builtin/subagents/src/slash/slash-commands.ts +37 -82
- package/dist/builtin/subagents/src/slash/slash-live-state.ts +1 -92
- package/dist/builtin/subagents/src/tui/render-event-formatting.ts +2 -35
- package/dist/builtin/subagents/src/tui/render-progress.ts +89 -0
- package/dist/builtin/subagents/src/tui/render-result-compact.ts +43 -71
- package/dist/builtin/subagents/src/tui/render-result.ts +41 -90
- package/dist/builtin/subagents/src/tui/render-stable-output.ts +0 -5
- package/dist/builtin/subagents/src/tui/render-widget-graph.ts +6 -55
- package/dist/builtin/web-access/CHANGELOG.md +14 -0
- package/dist/builtin/web-access/chrome-cookies.ts +3 -2
- package/dist/builtin/web-access/github-api.ts +7 -6
- package/dist/builtin/web-access/github-extract.ts +2 -1
- package/dist/builtin/web-access/package.json +3 -3
- package/dist/builtin/web-access/subprocess.ts +3 -1
- package/dist/builtin/web-access/summary-review.ts +2 -2
- package/dist/builtin/web-access/web-search-features.ts +38 -22
- package/dist/builtin/web-access/web-search-summary.ts +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +45 -0
- package/dist/builtin/workflows/README.md +41 -1
- package/dist/builtin/workflows/builtin/open-claude-design-utils.ts +3 -0
- package/dist/builtin/workflows/builtin/ralph-models.ts +25 -20
- package/dist/builtin/workflows/builtin/shared-prompts.ts +5 -2
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/src/durable/backend.ts +18 -1
- package/dist/builtin/workflows/src/durable/completed-catalog-stage-groups.ts +60 -3
- package/dist/builtin/workflows/src/durable/completed-catalog.ts +67 -1
- package/dist/builtin/workflows/src/durable/completed-subtree.ts +22 -7
- package/dist/builtin/workflows/src/durable/dbos-metadata.ts +4 -0
- package/dist/builtin/workflows/src/durable/local-command.ts +2 -1
- package/dist/builtin/workflows/src/durable/types.ts +17 -1
- package/dist/builtin/workflows/src/durable/workflow-child-result.ts +3 -1
- package/dist/builtin/workflows/src/engine/primitives/workflow.ts +1 -1
- package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +10 -2
- package/dist/builtin/workflows/src/engine/run-durable-topology.ts +9 -2
- package/dist/builtin/workflows/src/extension/atomic-stage-session.ts +7 -1
- package/dist/builtin/workflows/src/extension/companions.ts +1 -1
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +947 -447
- package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +31 -3
- package/dist/builtin/workflows/src/extension/mcp.ts +13 -2
- package/dist/builtin/workflows/src/extension/render-result.ts +1 -0
- package/dist/builtin/workflows/src/extension/ui-surface.ts +7 -20
- package/dist/builtin/workflows/src/extension/wiring.ts +33 -6
- package/dist/builtin/workflows/src/extension/workflow-ports.ts +14 -6
- package/dist/builtin/workflows/src/extension/workflow-prompts.ts +11 -6
- package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +8 -0
- package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +2 -0
- package/dist/builtin/workflows/src/intercom/intercom-routing.ts +12 -6
- package/dist/builtin/workflows/src/intercom/result-intercom.ts +35 -4
- package/dist/builtin/workflows/src/runs/background/status.ts +15 -0
- package/dist/builtin/workflows/src/runs/foreground/executor-abort.ts +11 -3
- package/dist/builtin/workflows/src/runs/foreground/executor-child-boundary.ts +2 -1
- package/dist/builtin/workflows/src/runs/foreground/executor-exit-manager.ts +26 -2
- package/dist/builtin/workflows/src/runs/foreground/executor-run-finalizers.ts +3 -2
- package/dist/builtin/workflows/src/runs/shared/worktree-git-runner.ts +5 -2
- package/dist/builtin/workflows/src/runs/shared/worktree-setup.ts +2 -0
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +5 -3
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +5 -3
- package/dist/builtin/workflows/src/shared/graph-store-snapshot.ts +34 -2
- package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +23 -6
- package/dist/builtin/workflows/src/shared/stage-ui-broker.ts +10 -4
- package/dist/builtin/workflows/src/shared/store-public-types.ts +4 -2
- package/dist/builtin/workflows/src/shared/store-types.ts +1 -1
- package/dist/builtin/workflows/src/shared/workflow-artifact-env.ts +21 -0
- package/dist/builtin/workflows/src/shared/workflow-artifacts.ts +2 -5
- package/dist/builtin/workflows/src/tui/dispatch-confirm.ts +37 -2
- package/dist/builtin/workflows/src/tui/graph-view-constants.ts +0 -15
- package/dist/builtin/workflows/src/tui/graph-view-graph-render.ts +38 -47
- package/dist/builtin/workflows/src/tui/graph-view-input.ts +48 -45
- package/dist/builtin/workflows/src/tui/graph-view-layout.ts +266 -0
- package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +1 -86
- package/dist/builtin/workflows/src/tui/graph-view-render.ts +209 -91
- package/dist/builtin/workflows/src/tui/graph-view-state.ts +5 -7
- package/dist/builtin/workflows/src/tui/graph-view-types.ts +13 -7
- package/dist/builtin/workflows/src/tui/inline-form-editor.ts +8 -6
- package/dist/builtin/workflows/src/tui/inline-form-overlay.ts +2 -1
- package/dist/builtin/workflows/src/tui/inputs-overlay.ts +7 -4
- package/dist/builtin/workflows/src/tui/inputs-picker-input.ts +66 -0
- package/dist/builtin/workflows/src/tui/keybindings-adapter.ts +1 -0
- package/dist/builtin/workflows/src/tui/node-card.ts +1 -1
- package/dist/builtin/workflows/src/tui/overlay-adapter.ts +18 -46
- package/dist/builtin/workflows/src/tui/overlay-terminal-modes.ts +15 -26
- package/dist/builtin/workflows/src/tui/session-overlays.ts +5 -2
- package/dist/builtin/workflows/src/tui/session-picker.ts +27 -0
- package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +5 -14
- package/dist/builtin/workflows/src/tui/stage-chat-view-input.ts +8 -7
- package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +12 -3
- package/dist/builtin/workflows/src/tui/stage-chat-view-types.ts +1 -11
- package/dist/builtin/workflows/src/tui/stage-chat-view.ts +0 -8
- package/dist/builtin/workflows/src/tui/status-list.ts +1 -0
- package/dist/builtin/workflows/src/tui/store-widget-installer.ts +2 -6
- package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +0 -15
- package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +2 -26
- package/dist/builtin/workflows/src/tui/workflow-status.ts +3 -3
- package/dist/bun/split-loader.js +2 -0
- package/dist/bun/split-loader.js.map +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +6 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/auth-check.d.ts +35 -0
- package/dist/cli/auth-check.d.ts.map +1 -0
- package/dist/cli/auth-check.js +100 -0
- package/dist/cli/auth-check.js.map +1 -0
- package/dist/cli/auth-command.d.ts +27 -0
- package/dist/cli/auth-command.d.ts.map +1 -0
- package/dist/cli/auth-command.js +150 -0
- package/dist/cli/auth-command.js.map +1 -0
- package/dist/cli/config-selector.js +2 -2
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/credential-print.d.ts +18 -23
- package/dist/cli/credential-print.d.ts.map +1 -1
- package/dist/cli/credential-print.js +42 -88
- package/dist/cli/credential-print.js.map +1 -1
- package/dist/cli/experimental/auth.d.ts +16 -0
- package/dist/cli/experimental/auth.d.ts.map +1 -0
- package/dist/cli/experimental/auth.js +13 -0
- package/dist/cli/experimental/auth.js.map +1 -0
- package/dist/cli/experimental/cli.d.ts +6 -0
- package/dist/cli/experimental/cli.d.ts.map +1 -0
- package/dist/cli/experimental/cli.js +5 -0
- package/dist/cli/experimental/cli.js.map +1 -0
- package/dist/cli/experimental/command-options.d.ts +17 -0
- package/dist/cli/experimental/command-options.d.ts.map +1 -0
- package/dist/cli/experimental/command-options.js +35 -0
- package/dist/cli/experimental/command-options.js.map +1 -0
- package/dist/cli/experimental/command.d.ts +63 -0
- package/dist/cli/experimental/command.d.ts.map +1 -0
- package/dist/cli/experimental/command.js +127 -0
- package/dist/cli/experimental/command.js.map +1 -0
- package/dist/cli/experimental/commands/client.d.ts +13 -0
- package/dist/cli/experimental/commands/client.d.ts.map +1 -0
- package/dist/cli/experimental/commands/client.js +25 -0
- package/dist/cli/experimental/commands/client.js.map +1 -0
- package/dist/cli/experimental/commands/pi.d.ts +15 -0
- package/dist/cli/experimental/commands/pi.d.ts.map +1 -0
- package/dist/cli/experimental/commands/pi.js +28 -0
- package/dist/cli/experimental/commands/pi.js.map +1 -0
- package/dist/cli/experimental/commands/server.d.ts +13 -0
- package/dist/cli/experimental/commands/server.d.ts.map +1 -0
- package/dist/cli/experimental/commands/server.js +25 -0
- package/dist/cli/experimental/commands/server.js.map +1 -0
- package/dist/cli/experimental/transport-address.d.ts +10 -0
- package/dist/cli/experimental/transport-address.d.ts.map +1 -0
- package/dist/cli/experimental/transport-address.js +38 -0
- package/dist/cli/experimental/transport-address.js.map +1 -0
- package/dist/cli/session-picker.js +2 -2
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +4 -10
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/remote-session.d.ts +64 -0
- package/dist/client/remote-session.d.ts.map +1 -0
- package/dist/client/remote-session.js +351 -0
- package/dist/client/remote-session.js.map +1 -0
- package/dist/client/transcript.d.ts +12 -0
- package/dist/client/transcript.d.ts.map +1 -0
- package/dist/client/transcript.js +98 -0
- package/dist/client/transcript.js.map +1 -0
- package/dist/core/agent-session-auto-compaction.d.ts +17 -13
- package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-auto-compaction.js +146 -64
- package/dist/core/agent-session-auto-compaction.js.map +1 -1
- package/dist/core/agent-session-bash.d.ts.map +1 -1
- package/dist/core/agent-session-bash.js +2 -0
- package/dist/core/agent-session-bash.js.map +1 -1
- package/dist/core/agent-session-compaction.d.ts +3 -6
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +64 -28
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-events.d.ts +1 -11
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +15 -23
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
- package/dist/core/agent-session-extension-bindings.js +4 -2
- package/dist/core/agent-session-extension-bindings.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +6 -2
- package/dist/core/agent-session-methods.d.ts.map +1 -1
- package/dist/core/agent-session-methods.js.map +1 -1
- package/dist/core/agent-session-models.d.ts +1 -0
- package/dist/core/agent-session-models.d.ts.map +1 -1
- package/dist/core/agent-session-models.js +11 -4
- package/dist/core/agent-session-models.js.map +1 -1
- package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-post-tool-compaction.js +22 -6
- package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
- package/dist/core/agent-session-runtime-auth.d.ts.map +1 -1
- package/dist/core/agent-session-runtime-auth.js +3 -0
- package/dist/core/agent-session-runtime-auth.js.map +1 -1
- package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
- package/dist/core/agent-session-tool-hooks.js +25 -14
- package/dist/core/agent-session-tool-hooks.js.map +1 -1
- package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
- package/dist/core/agent-session-tool-registry.js +4 -0
- package/dist/core/agent-session-tool-registry.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +2 -0
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +6 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +30 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/atomic-guide-command.d.ts.map +1 -1
- package/dist/core/atomic-guide-command.js +2 -3
- package/dist/core/atomic-guide-command.js.map +1 -1
- package/dist/core/auth-storage.d.ts +18 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +83 -0
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts +5 -0
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +43 -19
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/builtin-packages.d.ts.map +1 -1
- package/dist/core/builtin-packages.js +6 -0
- package/dist/core/builtin-packages.js.map +1 -1
- package/dist/core/codex-fast-mode.d.ts.map +1 -1
- package/dist/core/codex-fast-mode.js +8 -3
- package/dist/core/codex-fast-mode.js.map +1 -1
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js +4 -3
- package/dist/core/exec.js.map +1 -1
- package/dist/core/extensions/agent-events.d.ts +0 -1
- package/dist/core/extensions/agent-events.d.ts.map +1 -1
- package/dist/core/extensions/agent-events.js.map +1 -1
- package/dist/core/extensions/api-types.d.ts +5 -3
- package/dist/core/extensions/api-types.d.ts.map +1 -1
- package/dist/core/extensions/api-types.js.map +1 -1
- package/dist/core/extensions/context-types.d.ts +15 -0
- package/dist/core/extensions/context-types.d.ts.map +1 -1
- package/dist/core/extensions/context-types.js.map +1 -1
- package/dist/core/extensions/event-results.d.ts +5 -0
- package/dist/core/extensions/event-results.d.ts.map +1 -1
- package/dist/core/extensions/event-results.js.map +1 -1
- package/dist/core/extensions/index.d.ts +2 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +1 -0
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader-api.d.ts.map +1 -1
- package/dist/core/extensions/loader-api.js +14 -1
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/loader-discovery.d.ts.map +1 -1
- package/dist/core/extensions/loader-discovery.js +3 -23
- package/dist/core/extensions/loader-discovery.js.map +1 -1
- package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
- package/dist/core/extensions/loader-runtime.js +20 -3
- package/dist/core/extensions/loader-runtime.js.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.js +7 -1
- package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
- package/dist/core/extensions/message-types.d.ts +6 -0
- package/dist/core/extensions/message-types.d.ts.map +1 -1
- package/dist/core/extensions/message-types.js.map +1 -1
- package/dist/core/extensions/provider-types.d.ts +9 -3
- package/dist/core/extensions/provider-types.d.ts.map +1 -1
- package/dist/core/extensions/provider-types.js.map +1 -1
- package/dist/core/extensions/runner-registries.d.ts +2 -1
- package/dist/core/extensions/runner-registries.d.ts.map +1 -1
- package/dist/core/extensions/runner-registries.js +3 -0
- package/dist/core/extensions/runner-registries.js.map +1 -1
- package/dist/core/extensions/runner-ui.d.ts.map +1 -1
- package/dist/core/extensions/runner-ui.js +1 -0
- package/dist/core/extensions/runner-ui.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +2 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +6 -2
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/runtime-types.d.ts +4 -1
- package/dist/core/extensions/runtime-types.d.ts.map +1 -1
- package/dist/core/extensions/runtime-types.js.map +1 -1
- package/dist/core/extensions/stale-context.d.ts +5 -0
- package/dist/core/extensions/stale-context.d.ts.map +1 -0
- package/dist/core/extensions/stale-context.js +11 -0
- package/dist/core/extensions/stale-context.js.map +1 -0
- package/dist/core/extensions/ui-types.d.ts +14 -11
- package/dist/core/extensions/ui-types.d.ts.map +1 -1
- package/dist/core/extensions/ui-types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +3 -2
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/intercom-runtime-group.d.ts +13 -0
- package/dist/core/intercom-runtime-group.d.ts.map +1 -0
- package/dist/core/intercom-runtime-group.js +23 -0
- package/dist/core/intercom-runtime-group.js.map +1 -0
- package/dist/core/keybindings.d.ts +44 -4
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/model-config.d.ts +39 -5
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +6 -0
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-registry.d.ts +12 -5
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +20 -12
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver-cli.d.ts.map +1 -1
- package/dist/core/model-resolver-cli.js +46 -14
- package/dist/core/model-resolver-cli.js.map +1 -1
- package/dist/core/model-resolver-defaults.d.ts.map +1 -1
- package/dist/core/model-resolver-defaults.js +2 -0
- package/dist/core/model-resolver-defaults.js.map +1 -1
- package/dist/core/model-resolver-scope.d.ts +2 -0
- package/dist/core/model-resolver-scope.d.ts.map +1 -1
- package/dist/core/model-resolver-scope.js +12 -9
- package/dist/core/model-resolver-scope.js.map +1 -1
- package/dist/core/model-resolver.d.ts +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +1 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime-snapshot.d.ts +10 -0
- package/dist/core/model-runtime-snapshot.d.ts.map +1 -1
- package/dist/core/model-runtime-snapshot.js +14 -1
- package/dist/core/model-runtime-snapshot.js.map +1 -1
- package/dist/core/model-runtime-streaming.d.ts +3 -1
- package/dist/core/model-runtime-streaming.d.ts.map +1 -1
- package/dist/core/model-runtime-streaming.js +16 -0
- package/dist/core/model-runtime-streaming.js.map +1 -1
- package/dist/core/model-runtime-types.d.ts +2 -0
- package/dist/core/model-runtime-types.d.ts.map +1 -1
- package/dist/core/model-runtime-types.js.map +1 -1
- package/dist/core/model-runtime.d.ts +37 -10
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +312 -113
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/oauth-login.d.ts.map +1 -1
- package/dist/core/oauth-login.js +2 -1
- package/dist/core/oauth-login.js.map +1 -1
- package/dist/core/openai-responses-payload-sanitizer.d.ts.map +1 -1
- package/dist/core/openai-responses-payload-sanitizer.js +18 -2
- package/dist/core/openai-responses-payload-sanitizer.js.map +1 -1
- package/dist/core/package-manager-git.d.ts.map +1 -1
- package/dist/core/package-manager-git.js +56 -10
- package/dist/core/package-manager-git.js.map +1 -1
- package/dist/core/package-manager-manifest.d.ts +1 -1
- package/dist/core/package-manager-manifest.d.ts.map +1 -1
- package/dist/core/package-manager-manifest.js +19 -9
- package/dist/core/package-manager-manifest.js.map +1 -1
- package/dist/core/package-manager-resource-collector.js.map +1 -1
- package/dist/core/package-manager-resource-files.d.ts.map +1 -1
- package/dist/core/package-manager-resource-files.js +1 -2
- package/dist/core/package-manager-resource-files.js.map +1 -1
- package/dist/core/provider-composer-internal.d.ts +10 -2
- package/dist/core/provider-composer-internal.d.ts.map +1 -1
- package/dist/core/provider-composer-internal.js +7 -3
- package/dist/core/provider-composer-internal.js.map +1 -1
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js +19 -12
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/provider-display-names.d.ts.map +1 -1
- package/dist/core/provider-display-names.js +2 -0
- package/dist/core/provider-display-names.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +77 -67
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resolve-config-value.d.ts.map +1 -1
- package/dist/core/resolve-config-value.js +3 -0
- package/dist/core/resolve-config-value.js.map +1 -1
- package/dist/core/resource-loader-context-files.d.ts.map +1 -1
- package/dist/core/resource-loader-context-files.js +13 -5
- package/dist/core/resource-loader-context-files.js.map +1 -1
- package/dist/core/runtime-credentials.d.ts +5 -5
- package/dist/core/runtime-credentials.d.ts.map +1 -1
- package/dist/core/runtime-credentials.js +8 -8
- package/dist/core/runtime-credentials.js.map +1 -1
- package/dist/core/session-manager-list.d.ts.map +1 -1
- package/dist/core/session-manager-list.js +3 -1
- package/dist/core/session-manager-list.js.map +1 -1
- package/dist/core/settings-manager-ui-accessors.d.ts +8 -1
- package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-ui-accessors.js +31 -0
- package/dist/core/settings-manager-ui-accessors.js.map +1 -1
- package/dist/core/settings-manager.d.ts +2 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-merge.d.ts.map +1 -1
- package/dist/core/settings-merge.js +13 -16
- package/dist/core/settings-merge.js.map +1 -1
- package/dist/core/settings-types.d.ts +5 -0
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +0 -2
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts +2 -2
- package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/state/questionnaire-session.js +39 -2
- package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
- package/dist/core/tools/bash-async-execution.d.ts +2 -0
- package/dist/core/tools/bash-async-execution.d.ts.map +1 -1
- package/dist/core/tools/bash-async-execution.js +4 -1
- package/dist/core/tools/bash-async-execution.js.map +1 -1
- package/dist/core/tools/bash-async-output.d.ts +1 -0
- package/dist/core/tools/bash-async-output.d.ts.map +1 -1
- package/dist/core/tools/bash-async-output.js +62 -27
- package/dist/core/tools/bash-async-output.js.map +1 -1
- package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
- package/dist/core/tools/bash-pty-native.js +2 -1
- package/dist/core/tools/bash-pty-native.js.map +1 -1
- package/dist/core/tools/bash.d.ts +9 -0
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +34 -16
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/directory-tree.d.ts +11 -0
- package/dist/core/tools/directory-tree.d.ts.map +1 -1
- package/dist/core/tools/directory-tree.js +26 -0
- package/dist/core/tools/directory-tree.js.map +1 -1
- package/dist/core/tools/edit.d.ts +4 -0
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +12 -8
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/errno.d.ts +25 -0
- package/dist/core/tools/errno.d.ts.map +1 -0
- package/dist/core/tools/errno.js +29 -0
- package/dist/core/tools/errno.js.map +1 -0
- package/dist/core/tools/find.d.ts +8 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +20 -15
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +5 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +7 -7
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +7 -7
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts +4 -0
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +5 -1
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +8 -1
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +50 -28
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/oversized-tool-result.d.ts.map +1 -1
- package/dist/core/tools/oversized-tool-result.js +129 -22
- package/dist/core/tools/oversized-tool-result.js.map +1 -1
- package/dist/core/tools/persisted-output-file.d.ts +80 -0
- package/dist/core/tools/persisted-output-file.d.ts.map +1 -0
- package/dist/core/tools/persisted-output-file.js +284 -0
- package/dist/core/tools/persisted-output-file.js.map +1 -0
- package/dist/core/tools/read.d.ts +10 -0
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +20 -8
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/search.d.ts +4 -0
- package/dist/core/tools/search.d.ts.map +1 -1
- package/dist/core/tools/search.js +5 -1
- package/dist/core/tools/search.js.map +1 -1
- package/dist/core/tools/session-temp-cleanup.d.ts +133 -0
- package/dist/core/tools/session-temp-cleanup.d.ts.map +1 -0
- package/dist/core/tools/session-temp-cleanup.js +669 -0
- package/dist/core/tools/session-temp-cleanup.js.map +1 -0
- package/dist/core/tools/session-temp-dir.d.ts +116 -0
- package/dist/core/tools/session-temp-dir.d.ts.map +1 -0
- package/dist/core/tools/session-temp-dir.js +409 -0
- package/dist/core/tools/session-temp-dir.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js +2 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/tools/tool-limits.d.ts +11 -0
- package/dist/core/tools/tool-limits.d.ts.map +1 -1
- package/dist/core/tools/tool-limits.js +11 -0
- package/dist/core/tools/tool-limits.js.map +1 -1
- package/dist/core/tools/windows-directory-security.d.ts +82 -0
- package/dist/core/tools/windows-directory-security.d.ts.map +1 -0
- package/dist/core/tools/windows-directory-security.js +238 -0
- package/dist/core/tools/windows-directory-security.js.map +1 -0
- package/dist/core/tools/write.d.ts +4 -0
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +8 -4
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/trust-manager.js +1 -1
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/extensions/llama/huggingface-ui.d.ts +1 -1
- package/dist/extensions/llama/huggingface-ui.d.ts.map +1 -1
- package/dist/extensions/llama/huggingface-ui.js +6 -5
- package/dist/extensions/llama/huggingface-ui.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +11 -2
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +24 -8
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/extensions/llama/ui.d.ts.map +1 -1
- package/dist/extensions/llama/ui.js +5 -2
- package/dist/extensions/llama/ui.js.map +1 -1
- package/dist/index-extensions.d.ts +2 -2
- package/dist/index-extensions.d.ts.map +1 -1
- package/dist/index-extensions.js +1 -1
- package/dist/index-extensions.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/main-runtime-api-key.d.ts +2 -2
- package/dist/main-runtime-api-key.d.ts.map +1 -1
- package/dist/main-runtime-api-key.js +7 -2
- package/dist/main-runtime-api-key.js.map +1 -1
- package/dist/main-session.js +2 -2
- package/dist/main-session.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +130 -26
- package/dist/main.js.map +1 -1
- package/dist/modes/index.d.ts +1 -0
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +6 -2
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +18 -5
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +5 -4
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +2 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +3 -2
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.d.ts +17 -7
- package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.js +35 -69
- package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-actions.js +11 -3
- package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-events.js +25 -15
- package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-rendering.js +9 -4
- package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-state.d.ts +2 -0
- package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host-state.js +2 -0
- package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
- package/dist/modes/interactive/components/chat-session-host.d.ts +9 -0
- package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-session-host.js +14 -0
- package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
- package/dist/modes/interactive/components/chat-transcript.d.ts +32 -0
- package/dist/modes/interactive/components/chat-transcript.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-transcript.js +173 -5
- package/dist/modes/interactive/components/chat-transcript.js.map +1 -1
- package/dist/modes/interactive/components/config-selector-list.d.ts +1 -1
- package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector-list.js +9 -8
- package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +32 -10
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts +2 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +3 -2
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +3 -2
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js +1 -0
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +4 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/fast-mode-selector.d.ts +1 -1
- package/dist/modes/interactive/components/fast-mode-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/fast-mode-selector.js +7 -5
- package/dist/modes/interactive/components/fast-mode-selector.js.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.js +3 -0
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
- package/dist/modes/interactive/components/footer.js +1 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/host-input-form.d.ts +1 -1
- package/dist/modes/interactive/components/host-input-form.d.ts.map +1 -1
- package/dist/modes/interactive/components/host-input-form.js +6 -5
- package/dist/modes/interactive/components/host-input-form.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +1 -1
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +2 -1
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
- package/dist/modes/interactive/components/markdown-transform.js +19 -0
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
- package/dist/modes/interactive/components/mermaid.d.ts +11 -0
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
- package/dist/modes/interactive/components/mermaid.js +81 -0
- package/dist/modes/interactive/components/mermaid.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +2 -2
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +9 -6
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +3 -2
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +6 -2
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +39 -13
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-delete.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-delete.js +2 -1
- package/dist/modes/interactive/components/session-selector-delete.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-list.d.ts +1 -1
- package/dist/modes/interactive/components/session-selector-list.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-list.js +12 -11
- package/dist/modes/interactive/components/session-selector-list.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +3 -3
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-handlers.js +9 -0
- package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.js +21 -0
- package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.d.ts +3 -3
- package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.js +6 -1
- package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts +8 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +2 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +3 -2
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +2 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +50 -27
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector-component.d.ts +1 -1
- package/dist/modes/interactive/components/tree-selector-component.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector-component.js +2 -3
- package/dist/modes/interactive/components/tree-selector-component.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector-help.d.ts +1 -1
- package/dist/modes/interactive/components/tree-selector-help.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector-help.js +3 -1
- package/dist/modes/interactive/components/tree-selector-help.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector-label-input.d.ts +1 -1
- package/dist/modes/interactive/components/tree-selector-label-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector-label-input.js +1 -0
- package/dist/modes/interactive/components/tree-selector-label-input.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector-list.d.ts +1 -1
- package/dist/modes/interactive/components/tree-selector-list.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector-list.js +3 -0
- package/dist/modes/interactive/components/tree-selector-list.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/trust-selector.js +4 -0
- package/dist/modes/interactive/components/trust-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +4 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +4 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +10 -2
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +2 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-agent-events.js +36 -18
- package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.js +9 -2
- package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-routing.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-auth-routing.js +5 -1
- package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-bash-compact.js +16 -4
- package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js +3 -0
- package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-editor-actions.js +2 -0
- package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-context.js +12 -7
- package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-custom-ui.js +1 -0
- package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-dialogs.js +7 -0
- package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
- package/dist/modes/interactive/interactive-extension-widgets.js +7 -24
- package/dist/modes/interactive/interactive-extension-widgets.js.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.js +9 -8
- package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.d.ts +52 -3
- package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-base.js +143 -5
- package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts +2 -2
- package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js +2 -2
- package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +9 -3
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +1 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.js +107 -41
- package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-process-lifecycle.js +1 -1
- package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +24 -6
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-selectors.js +44 -5
- package/dist/modes/interactive/interactive-selectors.js.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.js +1 -0
- package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-slash-commands.js +9 -4
- package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
- package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +37 -18
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-tui.d.ts +21 -0
- package/dist/modes/interactive/interactive-tui.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-tui.js +279 -0
- package/dist/modes/interactive/interactive-tui.js.map +1 -0
- package/dist/modes/interactive/streaming-assistant-message.d.ts +34 -0
- package/dist/modes/interactive/streaming-assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/streaming-assistant-message.js +76 -0
- package/dist/modes/interactive/streaming-assistant-message.js.map +1 -0
- package/dist/modes/interactive/theme/catppuccin-frappe.json +1 -0
- package/dist/modes/interactive/theme/catppuccin-latte.json +1 -0
- package/dist/modes/interactive/theme/catppuccin-macchiato.json +1 -0
- package/dist/modes/interactive/theme/catppuccin-mocha.json +1 -0
- package/dist/modes/interactive/theme/dark.json +1 -0
- package/dist/modes/interactive/theme/light.json +1 -0
- package/dist/modes/interactive/theme/terminal-detection.d.ts +10 -0
- package/dist/modes/interactive/theme/terminal-detection.d.ts.map +1 -1
- package/dist/modes/interactive/theme/terminal-detection.js +19 -0
- package/dist/modes/interactive/theme/terminal-detection.js.map +1 -1
- package/dist/modes/interactive/theme/theme-class.d.ts +2 -2
- package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-class.js +5 -1
- package/dist/modes/interactive/theme/theme-class.js.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts +3 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +10 -13
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-loading.js +1 -0
- package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.d.ts +4 -0
- package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.js +2 -1
- package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +5 -1
- package/dist/modes/interactive/theme/theme.d.ts +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +1 -1
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-custom-ui.js +28 -11
- package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
- package/dist/modes/interactive-engine/engine-render-service.js +3 -3
- package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +2 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
- package/dist/modes/interactive-engine/extension-ui-bridge.js +2 -2
- package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.d.ts +7 -0
- package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.js +7 -0
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/modes/interactive-engine/protocol.d.ts +12 -10
- package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
- package/dist/modes/interactive-engine/protocol.js +14 -11
- package/dist/modes/interactive-engine/protocol.js.map +1 -1
- package/dist/modes/interactive-engine/remote-component.d.ts +11 -1
- package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
- package/dist/modes/interactive-engine/remote-component.js +48 -8
- package/dist/modes/interactive-engine/remote-component.js.map +1 -1
- package/dist/modes/interactive-engine/terminal-mode-controller.d.ts +19 -12
- package/dist/modes/interactive-engine/terminal-mode-controller.d.ts.map +1 -1
- package/dist/modes/interactive-engine/terminal-mode-controller.js +54 -35
- package/dist/modes/interactive-engine/terminal-mode-controller.js.map +1 -1
- package/dist/modes/json-event.d.ts +28 -0
- package/dist/modes/json-event.d.ts.map +1 -0
- package/dist/modes/json-event.js +12 -0
- package/dist/modes/json-event.js.map +1 -0
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +2 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client-process.d.ts +1 -0
- package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-process.js +5 -1
- package/dist/modes/rpc/rpc-client-process.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +7 -2
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-command-handler.js +1 -1
- package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
- package/dist/modes/rpc/rpc-event-buffer.d.ts +9 -0
- package/dist/modes/rpc/rpc-event-buffer.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-event-buffer.js +10 -5
- package/dist/modes/rpc/rpc-event-buffer.js.map +1 -1
- package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-extension-ui.js +3 -0
- package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
- package/dist/modes/rpc/rpc-input.js +1 -1
- package/dist/modes/rpc/rpc-input.js.map +1 -1
- package/dist/modes/rpc/rpc-output-buffer.d.ts +9 -0
- package/dist/modes/rpc/rpc-output-buffer.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-output-buffer.js +10 -5
- package/dist/modes/rpc/rpc-output-buffer.js.map +1 -1
- package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-provider-auth.js +3 -0
- package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
- package/dist/modes/rpc/rpc-responses.d.ts +1 -1
- package/dist/modes/rpc/rpc-responses.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-responses.js +13 -1
- package/dist/modes/rpc/rpc-responses.js.map +1 -1
- package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-session-binding.js +2 -1
- package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +9 -2
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/rpc-entry.js +2 -0
- package/dist/rpc-entry.js.map +1 -1
- package/dist/self-update-plan.d.ts.map +1 -1
- package/dist/self-update-plan.js +5 -4
- package/dist/self-update-plan.js.map +1 -1
- package/dist/server/create-harness.d.ts +53 -0
- package/dist/server/create-harness.d.ts.map +1 -0
- package/dist/server/create-harness.js +349 -0
- package/dist/server/create-harness.js.map +1 -0
- package/dist/utils/agent-attribution.d.ts +2 -0
- package/dist/utils/agent-attribution.d.ts.map +1 -0
- package/dist/utils/agent-attribution.js +2 -0
- package/dist/utils/agent-attribution.js.map +1 -0
- package/dist/utils/child-process.d.ts +3 -1
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js +24 -4
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +2 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +12 -3
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/management-http.d.ts +23 -0
- package/dist/utils/management-http.d.ts.map +1 -0
- package/dist/utils/management-http.js +50 -0
- package/dist/utils/management-http.js.map +1 -0
- package/dist/utils/open-browser.d.ts.map +1 -1
- package/dist/utils/open-browser.js +2 -1
- package/dist/utils/open-browser.js.map +1 -1
- package/dist/utils/paths.d.ts +2 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +13 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +17 -4
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/tool-result-images.d.ts +17 -0
- package/dist/utils/tool-result-images.d.ts.map +1 -0
- package/dist/utils/tool-result-images.js +41 -0
- package/dist/utils/tool-result-images.js.map +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +7 -8
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts +4 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +20 -2
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +2 -1
- package/docs/custom-provider.md +15 -7
- package/docs/development.md +1 -0
- package/docs/docs.json +1 -0
- package/docs/environment-variables.md +4 -0
- package/docs/extensions.md +102 -18
- package/docs/i-have-adhd.md +36 -0
- package/docs/intercom.md +26 -6
- package/docs/json.md +2 -2
- package/docs/keybindings.md +55 -12
- package/docs/models/model-selection.md +34 -8
- package/docs/models.md +28 -3
- package/docs/providers.md +20 -2
- package/docs/quickstart.md +5 -5
- package/docs/rpc.md +18 -12
- package/docs/sdk.md +43 -7
- package/docs/security.md +10 -10
- package/docs/sessions.md +2 -0
- package/docs/settings.md +25 -5
- package/docs/subagents.md +15 -30
- package/docs/themes.md +5 -3
- package/docs/tools.md +21 -1
- package/docs/tui.md +41 -24
- package/docs/usage.md +40 -14
- package/docs/windows.md +2 -0
- package/docs/workflows.md +216 -20
- package/examples/extensions/custom-provider-anthropic/index.ts +9 -2
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +9 -2
- package/examples/extensions/modal-editor.ts +8 -10
- package/examples/extensions/rainbow-editor.ts +3 -2
- package/examples/extensions/subagent/README.md +16 -45
- package/examples/extensions/subagent/index.ts +6 -96
- package/examples/extensions/subagent/render.ts +0 -78
- package/examples/extensions/subagent/runner.ts +0 -3
- package/examples/extensions/subagent/schemas.ts +0 -13
- package/examples/extensions/subagent/types.ts +1 -2
- package/examples/sdk/09-api-keys-and-oauth.ts +6 -2
- package/examples/sdk/12-full-control.ts +8 -2
- package/examples/sdk/README.md +4 -1
- package/npm-shrinkwrap.json +191 -634
- package/package.json +14 -7
- package/dist/builtin/subagents/src/agents/chain-serializer.ts +0 -257
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-details.ts +0 -38
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +0 -280
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +0 -217
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +0 -271
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +0 -271
- package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +0 -200
- package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +0 -184
- package/dist/builtin/subagents/src/runs/foreground/execution-structured-retries.ts +0 -19
- package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +0 -109
- package/dist/builtin/subagents/src/runs/shared/chain-outputs.ts +0 -126
- package/dist/builtin/subagents/src/runs/shared/dynamic-fanout.ts +0 -393
- package/dist/builtin/subagents/src/runs/shared/structured-output.ts +0 -150
- package/dist/builtin/subagents/src/runs/shared/workflow-graph.ts +0 -232
- package/dist/builtin/subagents/src/slash/saved-chain-mapping.ts +0 -60
- package/dist/builtin/subagents/src/tui/render-chain-graph.ts +0 -341
- package/examples/extensions/subagent/prompts/implement-and-review.md +0 -10
- package/examples/extensions/subagent/prompts/implement.md +0 -10
- package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -9
|
@@ -127,7 +127,10 @@ export function createWorkflowExitManager(input: {
|
|
|
127
127
|
runWorkflowExitCleanups(selectedExit.reason);
|
|
128
128
|
throw selectedExit;
|
|
129
129
|
};
|
|
130
|
-
const rawOptions = options as
|
|
130
|
+
const rawOptions = options as
|
|
131
|
+
| Pick<WorkflowExitOptions, "status" | "reason" | "resumable" | "outputs">
|
|
132
|
+
| null
|
|
133
|
+
| undefined;
|
|
131
134
|
let validationError: Error | undefined;
|
|
132
135
|
const captureValidationError = (error: Error): void => {
|
|
133
136
|
validationError ??= error;
|
|
@@ -141,7 +144,7 @@ export function createWorkflowExitManager(input: {
|
|
|
141
144
|
} else if (!isWorkflowExitStatus(rawStatus)) {
|
|
142
145
|
captureValidationError(
|
|
143
146
|
new TypeError(
|
|
144
|
-
`atomic-workflows: ctx.exit() status must be one of completed, skipped, cancelled, blocked; got ${describeWorkflowExitOptionValue(rawStatus)}`,
|
|
147
|
+
`atomic-workflows: ctx.exit() status must be one of completed, skipped, cancelled, blocked, failed; got ${describeWorkflowExitOptionValue(rawStatus)}`,
|
|
145
148
|
),
|
|
146
149
|
);
|
|
147
150
|
}
|
|
@@ -161,6 +164,26 @@ export function createWorkflowExitManager(input: {
|
|
|
161
164
|
}
|
|
162
165
|
const reason = typeof rawReason === "string" ? rawReason : undefined;
|
|
163
166
|
|
|
167
|
+
const resumableRead = readWorkflowExitOption(rawOptions, "resumable");
|
|
168
|
+
throwNestedSelectedExit();
|
|
169
|
+
const rawResumable = resumableRead.ok ? resumableRead.value : undefined;
|
|
170
|
+
if (!resumableRead.ok) {
|
|
171
|
+
captureValidationError(resumableRead.error);
|
|
172
|
+
} else if (rawResumable !== undefined && typeof rawResumable !== "boolean") {
|
|
173
|
+
captureValidationError(
|
|
174
|
+
new TypeError(
|
|
175
|
+
`atomic-workflows: ctx.exit() resumable must be a boolean when provided; got ${workflowSerializableTypeName(rawResumable)}`,
|
|
176
|
+
),
|
|
177
|
+
);
|
|
178
|
+
} else if (rawResumable !== undefined && rawStatus !== "failed") {
|
|
179
|
+
captureValidationError(
|
|
180
|
+
new TypeError(
|
|
181
|
+
`atomic-workflows: ctx.exit() resumable is only valid with status failed; got ${describeWorkflowExitOptionValue(rawStatus)}`,
|
|
182
|
+
),
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
const resumable = status === "failed" && rawResumable === true;
|
|
186
|
+
|
|
164
187
|
const outputsRead = readWorkflowExitOption(rawOptions, "outputs");
|
|
165
188
|
throwNestedSelectedExit();
|
|
166
189
|
const outputSnapshot = !outputsRead.ok
|
|
@@ -175,6 +198,7 @@ export function createWorkflowExitManager(input: {
|
|
|
175
198
|
scope: input.exitScope,
|
|
176
199
|
status,
|
|
177
200
|
...(reason !== undefined ? { reason } : {}),
|
|
201
|
+
...(status === "failed" ? { resumable } : {}),
|
|
178
202
|
...(outputSnapshot !== undefined ? { outputSnapshot } : {}),
|
|
179
203
|
...(validationError !== undefined ? { validationError } : {}),
|
|
180
204
|
}),
|
|
@@ -81,8 +81,9 @@ export function createRunFinalizers(input: {
|
|
|
81
81
|
return finalizeWorkflowExitValidationFailure(err, signal.reason);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
const resumable = signal.status === "failed" && signal.resumable === true;
|
|
84
85
|
const metadata = {
|
|
85
|
-
resumable
|
|
86
|
+
resumable,
|
|
86
87
|
exited: true,
|
|
87
88
|
...(signal.reason !== undefined ? { exitReason: signal.reason } : {}),
|
|
88
89
|
} as const;
|
|
@@ -93,7 +94,7 @@ export function createRunFinalizers(input: {
|
|
|
93
94
|
result: outputs,
|
|
94
95
|
exited: true,
|
|
95
96
|
...(signal.reason !== undefined ? { exitReason: signal.reason } : {}),
|
|
96
|
-
resumable
|
|
97
|
+
resumable,
|
|
97
98
|
ts: Date.now(),
|
|
98
99
|
});
|
|
99
100
|
return reconcileTerminalRunResult(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
|
-
import { createGitEnvironment } from "@bastani/atomic";
|
|
2
|
+
import { createChildProcessEnvironment, createGitEnvironment } from "@bastani/atomic";
|
|
3
3
|
import type { GitResult } from "./worktree-types.js";
|
|
4
4
|
|
|
5
5
|
const DISABLED_GIT_HOOKS_PATH = process.platform === "win32" ? "NUL" : "/dev/null";
|
|
@@ -27,7 +27,10 @@ function spawnGit(cwd: string, args: readonly string[], plain: boolean): GitResu
|
|
|
27
27
|
const result = spawnSync("git", plain ? args : gitCommandArgs(args), {
|
|
28
28
|
cwd,
|
|
29
29
|
encoding: "utf-8",
|
|
30
|
-
env: createGitEnvironment(
|
|
30
|
+
env: createGitEnvironment(
|
|
31
|
+
{ GIT_OPTIONAL_LOCKS: "0", GIT_TERMINAL_PROMPT: "0", GCM_INTERACTIVE: "never" },
|
|
32
|
+
createChildProcessEnvironment(),
|
|
33
|
+
),
|
|
31
34
|
timeout: GIT_COMMAND_TIMEOUT_MS,
|
|
32
35
|
});
|
|
33
36
|
return {
|
|
@@ -2,6 +2,7 @@ import { spawnSync } from "node:child_process";
|
|
|
2
2
|
import * as fs from "node:fs";
|
|
3
3
|
import * as os from "node:os";
|
|
4
4
|
import * as path from "node:path";
|
|
5
|
+
import { createChildProcessEnvironment } from "@bastani/atomic";
|
|
5
6
|
import { runGit, runGitChecked } from "./worktree-git.js";
|
|
6
7
|
import { performPostCreationSetup } from "./worktree-post-create.js";
|
|
7
8
|
import { findCanonicalGitRoot } from "./worktree-root.js";
|
|
@@ -219,6 +220,7 @@ function runWorktreeSetupHook(hook: ResolvedWorktreeSetupHook, input: WorktreeSe
|
|
|
219
220
|
cwd: input.worktreePath,
|
|
220
221
|
encoding: "utf-8",
|
|
221
222
|
input: JSON.stringify(input),
|
|
223
|
+
env: createChildProcessEnvironment(),
|
|
222
224
|
timeout: hook.timeoutMs,
|
|
223
225
|
shell: false,
|
|
224
226
|
});
|
|
@@ -22,15 +22,15 @@ export type WorkflowOutputMode = "inline" | "file-only";
|
|
|
22
22
|
export type WorkflowContextMode = "fresh" | "fork";
|
|
23
23
|
export type WorkflowThinkingLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
24
24
|
export type WorkflowExecutionMode = "interactive" | "non_interactive";
|
|
25
|
-
export type WorkflowExitStatus = "completed" | "skipped" | "cancelled" | "blocked";
|
|
26
|
-
export type RunStatus = "pending" | "running" | "paused" | WorkflowExitStatus | "
|
|
25
|
+
export type WorkflowExitStatus = "completed" | "skipped" | "cancelled" | "blocked" | "failed";
|
|
26
|
+
export type RunStatus = "pending" | "running" | "paused" | WorkflowExitStatus | "killed";
|
|
27
27
|
/**
|
|
28
28
|
* Who performed a workflow lifecycle action. Mirrors the store-side union; the
|
|
29
29
|
* authoring contract keeps its own copy so it stays independent of store types.
|
|
30
30
|
*/
|
|
31
31
|
export type WorkflowActor = "user" | "agent";
|
|
32
32
|
export type WorkflowDetailsMode = "named" | "inspection" | "control";
|
|
33
|
-
export type WorkflowDetailsStatus = "accepted" | "running" | WorkflowExitStatus | "
|
|
33
|
+
export type WorkflowDetailsStatus = "accepted" | "running" | WorkflowExitStatus | "killed" | "noop";
|
|
34
34
|
export type WorkflowAction = "list" | "get" | "inputs" | "run" | "status" | "interrupt" | "resume";
|
|
35
35
|
type WorkflowExitOutputValues<TOutputs extends WorkflowOutputValues = WorkflowOutputValues> = [keyof TOutputs] extends [
|
|
36
36
|
never
|
|
@@ -38,6 +38,8 @@ type WorkflowExitOutputValues<TOutputs extends WorkflowOutputValues = WorkflowOu
|
|
|
38
38
|
export interface WorkflowExitOptions<TOutputs extends WorkflowOutputValues = WorkflowOutputValues> {
|
|
39
39
|
readonly status?: WorkflowExitStatus;
|
|
40
40
|
readonly reason?: string;
|
|
41
|
+
/** Failed exits are non-resumable by default; set this only when retry is intended. */
|
|
42
|
+
readonly resumable?: boolean;
|
|
41
43
|
readonly outputs?: WorkflowExitOutputValues<TOutputs>;
|
|
42
44
|
}
|
|
43
45
|
export interface WorkflowModelFallbackFields {
|
|
@@ -31,8 +31,8 @@ export type WorkflowOutputMode = "inline" | "file-only";
|
|
|
31
31
|
export type WorkflowContextMode = "fresh" | "fork";
|
|
32
32
|
export type WorkflowThinkingLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
33
33
|
export type WorkflowExecutionMode = "interactive" | "non_interactive";
|
|
34
|
-
export type WorkflowExitStatus = "completed" | "skipped" | "cancelled" | "blocked";
|
|
35
|
-
export type RunStatus = "pending" | "running" | "paused" | WorkflowExitStatus | "
|
|
34
|
+
export type WorkflowExitStatus = "completed" | "skipped" | "cancelled" | "blocked" | "failed";
|
|
35
|
+
export type RunStatus = "pending" | "running" | "paused" | WorkflowExitStatus | "killed";
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* Who performed a workflow lifecycle action. Mirrors the store-side union; the
|
|
@@ -40,7 +40,7 @@ export type RunStatus = "pending" | "running" | "paused" | WorkflowExitStatus |
|
|
|
40
40
|
*/
|
|
41
41
|
export type WorkflowActor = "user" | "agent";
|
|
42
42
|
export type WorkflowDetailsMode = "named" | "inspection" | "control";
|
|
43
|
-
export type WorkflowDetailsStatus = "accepted" | "running" | WorkflowExitStatus | "
|
|
43
|
+
export type WorkflowDetailsStatus = "accepted" | "running" | WorkflowExitStatus | "killed" | "noop";
|
|
44
44
|
export type WorkflowAction = "list" | "get" | "inputs" | "run" | "status" | "interrupt" | "resume";
|
|
45
45
|
|
|
46
46
|
type WorkflowExitOutputValues<TOutputs extends WorkflowOutputValues = WorkflowOutputValues> = [keyof TOutputs] extends [
|
|
@@ -52,6 +52,8 @@ type WorkflowExitOutputValues<TOutputs extends WorkflowOutputValues = WorkflowOu
|
|
|
52
52
|
export interface WorkflowExitOptions<TOutputs extends WorkflowOutputValues = WorkflowOutputValues> {
|
|
53
53
|
readonly status?: WorkflowExitStatus;
|
|
54
54
|
readonly reason?: string;
|
|
55
|
+
/** Failed exits are non-resumable by default; set this only when retry is intended. */
|
|
56
|
+
readonly resumable?: boolean;
|
|
55
57
|
readonly outputs?: WorkflowExitOutputValues<TOutputs>;
|
|
56
58
|
}
|
|
57
59
|
|
|
@@ -13,6 +13,7 @@ import type {
|
|
|
13
13
|
import type { WorkflowOutputValues, WorkflowSerializableValue } from "./types.js";
|
|
14
14
|
|
|
15
15
|
export const COMPACT_RESULT_FIELD_LIMIT = 1024;
|
|
16
|
+
const COMPACT_EXIT_OUTPUT_LIMIT = COMPACT_RESULT_FIELD_LIMIT * 4;
|
|
16
17
|
|
|
17
18
|
function compactResultField(value: WorkflowSerializableValue | undefined): string | undefined {
|
|
18
19
|
if (typeof value !== "string") return undefined;
|
|
@@ -22,7 +23,10 @@ function compactResultField(value: WorkflowSerializableValue | undefined): strin
|
|
|
22
23
|
return flattenTruncatedString(value.slice(0, COMPACT_RESULT_FIELD_LIMIT));
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
function compactRunResult(
|
|
26
|
+
function compactRunResult(
|
|
27
|
+
result: WorkflowOutputValues | undefined,
|
|
28
|
+
preserveExitedOutputs = false,
|
|
29
|
+
): WorkflowOutputValues | undefined {
|
|
26
30
|
if (result === undefined) return undefined;
|
|
27
31
|
const status = compactResultField(result.status);
|
|
28
32
|
const summary = compactResultField(result.summary);
|
|
@@ -34,9 +38,37 @@ function compactRunResult(result: WorkflowOutputValues | undefined): WorkflowOut
|
|
|
34
38
|
...(remainingWork !== undefined ? { remaining_work: remainingWork } : {}),
|
|
35
39
|
...(resultText !== undefined ? { result: resultText } : {}),
|
|
36
40
|
};
|
|
41
|
+
if (!preserveExitedOutputs) return Object.keys(compact).length === 0 ? undefined : compact;
|
|
42
|
+
return compactExitedOutputs(result, compact);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function compactExitedOutputs(
|
|
46
|
+
result: WorkflowOutputValues,
|
|
47
|
+
compact: WorkflowOutputValues,
|
|
48
|
+
): WorkflowOutputValues | undefined {
|
|
49
|
+
try {
|
|
50
|
+
const serialized = JSON.stringify(result);
|
|
51
|
+
if (serialized !== undefined && serialized.length <= COMPACT_EXIT_OUTPUT_LIMIT) {
|
|
52
|
+
const parsed: unknown = JSON.parse(serialized);
|
|
53
|
+
if (parsed !== null && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
54
|
+
return compactExitedObject(parsed as Record<string, WorkflowSerializableValue>);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
} catch {
|
|
58
|
+
// Fall through to the bounded legacy fields below.
|
|
59
|
+
}
|
|
37
60
|
return Object.keys(compact).length === 0 ? undefined : compact;
|
|
38
61
|
}
|
|
39
62
|
|
|
63
|
+
function compactExitedObject(result: Record<string, WorkflowSerializableValue>): WorkflowOutputValues | undefined {
|
|
64
|
+
const compacted = { ...result };
|
|
65
|
+
for (const key of ["status", "summary", "remaining_work", "result"]) {
|
|
66
|
+
const value = compacted[key];
|
|
67
|
+
if (typeof value === "string") compacted[key] = compactResultField(value) ?? "";
|
|
68
|
+
}
|
|
69
|
+
return Object.keys(compacted).length === 0 ? undefined : compacted;
|
|
70
|
+
}
|
|
71
|
+
|
|
40
72
|
// Both cloners are called only from a `!== undefined` guard at their call sites,
|
|
41
73
|
// so they take and return a concrete value; an internal undefined branch here
|
|
42
74
|
// would be unreachable and would only weaken the type for every caller.
|
|
@@ -106,7 +138,7 @@ function compactToolNode(node: ToolNodeSnapshot): ToolNodeSnapshot {
|
|
|
106
138
|
|
|
107
139
|
function compactRun(run: RunSnapshot): RunSnapshot {
|
|
108
140
|
const { inputs: _inputs, result: sourceResult, stages, toolNodes, pendingPrompt, ...metadata } = run;
|
|
109
|
-
const result = compactRunResult(sourceResult);
|
|
141
|
+
const result = compactRunResult(sourceResult, run.exited === true && run.status === "failed");
|
|
110
142
|
return {
|
|
111
143
|
...metadata,
|
|
112
144
|
inputs: {},
|
|
@@ -190,7 +190,13 @@ export function serializableObjectOrEmpty(value: unknown): WorkflowOutputValues
|
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
function isWorkflowChildReplayStatus(status: unknown): status is WorkflowExitStatus {
|
|
193
|
-
return
|
|
193
|
+
return (
|
|
194
|
+
status === "completed" ||
|
|
195
|
+
status === "skipped" ||
|
|
196
|
+
status === "cancelled" ||
|
|
197
|
+
status === "blocked" ||
|
|
198
|
+
status === "failed"
|
|
199
|
+
);
|
|
194
200
|
}
|
|
195
201
|
|
|
196
202
|
function workflowChildMetadata(payload: Record<string, unknown>): Pick<StageSnapshot, "workflowChild"> {
|
|
@@ -235,9 +241,11 @@ function workflowChildMetadata(payload: Record<string, unknown>): Pick<StageSnap
|
|
|
235
241
|
status,
|
|
236
242
|
...(typeof exited === "boolean"
|
|
237
243
|
? { exited }
|
|
238
|
-
: status
|
|
239
|
-
? {
|
|
240
|
-
:
|
|
244
|
+
: status === "failed"
|
|
245
|
+
? {}
|
|
246
|
+
: status !== "completed" || typeof exitReason === "string"
|
|
247
|
+
? { exited: true }
|
|
248
|
+
: {}),
|
|
241
249
|
outputs: clonedOutputs,
|
|
242
250
|
...(typeof exitReason === "string" ? { exitReason } : {}),
|
|
243
251
|
},
|
|
@@ -388,8 +396,11 @@ export function restoreTerminalRuns(entries: readonly SessionEntry[], store: Sto
|
|
|
388
396
|
const resumable = end.resumable;
|
|
389
397
|
const failedToolNodeId = end.failedToolNodeId;
|
|
390
398
|
const failedToolNode = restoreFailedToolNode(end.failedToolNode);
|
|
399
|
+
// Failed is both an author-exit status and the engine's ordinary failure
|
|
400
|
+
// status, so an exit reason alone cannot establish author intent.
|
|
391
401
|
const restoredAuthorExit =
|
|
392
|
-
isWorkflowExitTerminalStatus(status) &&
|
|
402
|
+
isWorkflowExitTerminalStatus(status) &&
|
|
403
|
+
(exited === true || (status !== "failed" && typeof exitReason === "string"));
|
|
393
404
|
if (status === "completed" && !restoredAuthorExit && stages.some((stage) => stage.status !== "completed"))
|
|
394
405
|
continue;
|
|
395
406
|
store.recordRunStart({
|
|
@@ -456,7 +467,13 @@ export function restoreTerminalRuns(entries: readonly SessionEntry[], store: Sto
|
|
|
456
467
|
}
|
|
457
468
|
|
|
458
469
|
function isWorkflowExitTerminalStatus(status: RunStatus): status is WorkflowExitStatus {
|
|
459
|
-
return
|
|
470
|
+
return (
|
|
471
|
+
status === "completed" ||
|
|
472
|
+
status === "skipped" ||
|
|
473
|
+
status === "cancelled" ||
|
|
474
|
+
status === "blocked" ||
|
|
475
|
+
status === "failed"
|
|
476
|
+
);
|
|
460
477
|
}
|
|
461
478
|
|
|
462
479
|
function restoreTerminalRunStatus(status: unknown): RunStatus | undefined {
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import type { Component, Focusable, TUI } from "@earendil-works/pi-tui";
|
|
3
|
-
import type {
|
|
3
|
+
import type {
|
|
4
|
+
PiCustomComponent,
|
|
5
|
+
PiCustomOverlayFactory,
|
|
6
|
+
PiCustomOverlayOptions,
|
|
7
|
+
PiKeybindings,
|
|
8
|
+
PiTheme,
|
|
9
|
+
} from "../extension/wiring.js";
|
|
4
10
|
import type { StageInputAnswer, StagePromptAdapter } from "./stage-prompt.js";
|
|
5
11
|
import type { StagePromptAnswerSource, Store } from "./store.js";
|
|
6
12
|
import { store as defaultStore } from "./store.js";
|
|
@@ -280,7 +286,7 @@ export class StageUiBroker {
|
|
|
280
286
|
|
|
281
287
|
export interface MountedStageCustomUi {
|
|
282
288
|
readonly request: StageCustomUiRequest;
|
|
283
|
-
readonly component:
|
|
289
|
+
readonly component: PiCustomComponent & { invalidate(): void; dispose?(): void } & Partial<Focusable>;
|
|
284
290
|
}
|
|
285
291
|
|
|
286
292
|
export async function mountStageCustomUi(
|
|
@@ -302,10 +308,10 @@ export async function mountStageCustomUi(
|
|
|
302
308
|
onDone?.();
|
|
303
309
|
},
|
|
304
310
|
);
|
|
305
|
-
const component:
|
|
311
|
+
const component: PiCustomComponent & { invalidate(): void; dispose?(): void } & Partial<Focusable> = {
|
|
306
312
|
render: (width) => rawComponent.render(width),
|
|
307
313
|
...(rawComponent.handleInput !== undefined
|
|
308
|
-
? { handleInput: (data: string) => rawComponent.handleInput?.(data) }
|
|
314
|
+
? { handleInput: (data: string): boolean => rawComponent.handleInput?.(data) === true }
|
|
309
315
|
: {}),
|
|
310
316
|
invalidate: () => rawComponent.invalidate?.(),
|
|
311
317
|
...(rawComponent.dispose !== undefined ? { dispose: () => rawComponent.dispose?.() } : {}),
|
|
@@ -117,7 +117,7 @@ export interface Store {
|
|
|
117
117
|
* Records the end of a run.
|
|
118
118
|
* Returns `true` if state changed, `false` if the run was not found or
|
|
119
119
|
* already in a terminal state (completed | failed | killed | skipped | cancelled | blocked).
|
|
120
|
-
* `result` is applied for intentional success/exit statuses (completed | skipped | cancelled | blocked)
|
|
120
|
+
* `result` is applied for intentional success/exit statuses (completed | skipped | cancelled | blocked | failed)
|
|
121
121
|
* and for workflows that intentionally return a failed status with structured outputs.
|
|
122
122
|
* `error` is applied for status "failed" | "killed" | "blocked".
|
|
123
123
|
*/
|
|
@@ -265,7 +265,9 @@ export interface Store {
|
|
|
265
265
|
clear(): void;
|
|
266
266
|
snapshot(): StoreSnapshot;
|
|
267
267
|
/**
|
|
268
|
-
* Return one immutable payload-
|
|
268
|
+
* Return one immutable payload-bounded graph projection per store version.
|
|
269
|
+
* Authored failed-exit results may retain bounded JSON output values; all
|
|
270
|
+
* other run payloads stay omitted or compacted to bounded diagnostic fields.
|
|
269
271
|
* Graph-visible state may change only through a version-bumping store method;
|
|
270
272
|
* direct mutation of values returned by `runs()` would leave this cache stale.
|
|
271
273
|
*/
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import type { WorkflowExitStatus, WorkflowInputValues, WorkflowOutputValues } from "./types.js";
|
|
7
7
|
|
|
8
|
-
export type RunStatus = "pending" | "running" | "paused" | WorkflowExitStatus | "
|
|
8
|
+
export type RunStatus = "pending" | "running" | "paused" | WorkflowExitStatus | "killed";
|
|
9
9
|
export type StageStatus =
|
|
10
10
|
| "pending"
|
|
11
11
|
| "running"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Leaf module: durable workflow-artifact constants with no imports.
|
|
3
|
+
*
|
|
4
|
+
* These values are plain data, but their previous home — `workflow-artifacts.ts`
|
|
5
|
+
* — sits atop roughly fifty modules including `@bastani/atomic` itself. Any
|
|
6
|
+
* consumer that wanted only a constant paid to transform that whole graph.
|
|
7
|
+
*
|
|
8
|
+
* `test/setup-workflow-durability.ts` is such a consumer, and vitest runs it
|
|
9
|
+
* once per test file, so every unit file transformed ten thousand lines to read
|
|
10
|
+
* one string. Keeping these constants importable without dependencies is what
|
|
11
|
+
* lets that setup stay cheap; `workflow-artifacts.ts` re-exports them, so this
|
|
12
|
+
* split is invisible to every existing caller.
|
|
13
|
+
*
|
|
14
|
+
* Keep this module dependency-free.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/** Maximum age of durable workflow run artifacts before the next workflow write prunes them. */
|
|
18
|
+
export const WORKFLOW_ARTIFACT_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
|
|
19
|
+
|
|
20
|
+
/** Overrides the durable workflow-artifact root, mirroring the agent-directory override convention. */
|
|
21
|
+
export const ENV_WORKFLOW_ARTIFACT_DIR = "ATOMIC_WORKFLOW_ARTIFACT_DIR";
|
|
@@ -8,12 +8,9 @@ import { getDurableBackend } from "../durable/factory.js";
|
|
|
8
8
|
import { type WorkflowRunResumeCandidate, workflowRunHasPausedState } from "../durable/resume-eligibility.js";
|
|
9
9
|
import { store } from "./store.js";
|
|
10
10
|
import type { RunSnapshot } from "./store-types.js";
|
|
11
|
+
import { ENV_WORKFLOW_ARTIFACT_DIR, WORKFLOW_ARTIFACT_RETENTION_MS } from "./workflow-artifact-env.js";
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
export const WORKFLOW_ARTIFACT_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
|
|
14
|
-
|
|
15
|
-
/** Overrides the durable workflow-artifact root, mirroring the agent-directory override convention. */
|
|
16
|
-
export const ENV_WORKFLOW_ARTIFACT_DIR = "ATOMIC_WORKFLOW_ARTIFACT_DIR";
|
|
13
|
+
export { ENV_WORKFLOW_ARTIFACT_DIR, WORKFLOW_ARTIFACT_RETENTION_MS };
|
|
17
14
|
|
|
18
15
|
export type WorkflowArtifactRunState = "protected" | "terminal" | "orphan";
|
|
19
16
|
export type WorkflowArtifactRunStateResolver = (runId: string) => WorkflowArtifactRunState | undefined;
|
|
@@ -273,11 +273,45 @@ function renderInputsSegment(
|
|
|
273
273
|
};
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
+
/**
|
|
277
|
+
* Anything that would break a value out of its single card row.
|
|
278
|
+
*
|
|
279
|
+
* Card rows are spliced into a bordered box by `renderRoundedBox`, which pads
|
|
280
|
+
* each row to the interior width. A value carrying a literal newline emits a
|
|
281
|
+
* second physical line that no border ever wraps, destroying the box from that
|
|
282
|
+
* row down. `truncateToWidth` cannot save us: it measures *visible width*, and
|
|
283
|
+
* a control character has none, so a `\n` survives truncation intact.
|
|
284
|
+
*
|
|
285
|
+
* This is reachable from ordinary use — any multi-line workflow input (a
|
|
286
|
+
* `prompt`, an `acceptance_criteria` block) contains newlines by nature.
|
|
287
|
+
*
|
|
288
|
+
* Scoped to `\p{Cc}` (C0/C1 controls, so `\n`, `\r`, `\t`, and a stray ESC that
|
|
289
|
+
* would otherwise inject styling) plus the two separators `JSON.stringify` does
|
|
290
|
+
* *not* escape, which some terminals still break lines on. It deliberately does
|
|
291
|
+
* NOT cover all of `\p{Cf}`: that class includes U+200D ZERO WIDTH JOINER, and
|
|
292
|
+
* stripping it splits emoji sequences such as a family glyph into their
|
|
293
|
+
* components. A format character that occupies no cell cannot break a row, so
|
|
294
|
+
* removing it only corrupts the value the user asked to see.
|
|
295
|
+
*/
|
|
296
|
+
const ROW_BREAKING_RE = /[\p{Cc}\u2028\u2029]+/gu;
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Replace runs of row-breaking characters with a single space.
|
|
300
|
+
*
|
|
301
|
+
* Only the replaced runs collapse. Pre-existing spacing is left alone and the
|
|
302
|
+
* result is not trimmed, because a value's own leading, trailing, or repeated
|
|
303
|
+
* spaces are content: the card renders inside quotes, so `" alpha beta "`
|
|
304
|
+
* should still read as what was passed rather than as `"alpha beta"`.
|
|
305
|
+
*/
|
|
306
|
+
function toSingleLine(value: string): string {
|
|
307
|
+
return value.replace(ROW_BREAKING_RE, " ");
|
|
308
|
+
}
|
|
309
|
+
|
|
276
310
|
function renderInputValue(value: unknown, budget: number): string {
|
|
277
311
|
if (typeof value === "string") {
|
|
278
312
|
// Reserve 2 cells for the surrounding quotes; truncate the interior.
|
|
279
313
|
const interior = Math.max(0, budget - 2);
|
|
280
|
-
const trimmed = truncateToWidth(value, interior, ELLIPSIS);
|
|
314
|
+
const trimmed = truncateToWidth(toSingleLine(value), interior, ELLIPSIS);
|
|
281
315
|
return `"${trimmed}"`;
|
|
282
316
|
}
|
|
283
317
|
if (typeof value === "number" || typeof value === "boolean") {
|
|
@@ -285,8 +319,9 @@ function renderInputValue(value: unknown, budget: number): string {
|
|
|
285
319
|
}
|
|
286
320
|
if (value === null) return "null";
|
|
287
321
|
// Objects / arrays — show a compact JSON projection within budget.
|
|
322
|
+
// JSON.stringify escapes \n as literal backslash-n, but not U+2028/U+2029.
|
|
288
323
|
const json = JSON.stringify(value);
|
|
289
|
-
return truncateToWidth(json ?? "", budget, ELLIPSIS);
|
|
324
|
+
return truncateToWidth(toSingleLine(json ?? ""), budget, ELLIPSIS);
|
|
290
325
|
}
|
|
291
326
|
|
|
292
327
|
/**
|
|
@@ -17,20 +17,6 @@ export const COMPACT_HINT_KEYS: Array<{ key: string; label: string }> = [
|
|
|
17
17
|
*/
|
|
18
18
|
export const MODE_PILL_LABEL = "GRAPH";
|
|
19
19
|
|
|
20
|
-
/**
|
|
21
|
-
* Fixed line count emitted by `_renderOverlay`. pi-tui paints the
|
|
22
|
-
* overlay in the same buffer as the chat, so a *variable* line count
|
|
23
|
-
* causes the chat to scroll every time the focused-stage section grows
|
|
24
|
-
* or shrinks — that's exactly the duplicate-rows bug we hit when
|
|
25
|
-
* navigating with j/k. Padding to a constant height keeps the overlay
|
|
26
|
-
* a stable rectangle that pi-tui can diff cell-by-cell.
|
|
27
|
-
*
|
|
28
|
-
* Mirrors the doom-overlay reference extension, which always emits the
|
|
29
|
-
* same number of lines per frame regardless of game state.
|
|
30
|
-
*/
|
|
31
|
-
export const OVERLAY_LINE_COUNT = 32;
|
|
32
|
-
export const OVERLAY_VERTICAL_MARGIN_ROWS = 1;
|
|
33
|
-
|
|
34
20
|
/**
|
|
35
21
|
* Animation tick period. Overlay re-renders fire on this cadence so
|
|
36
22
|
* duration counters tick from active elapsed time (freezing while paused)
|
|
@@ -50,4 +36,3 @@ export const ANIMATION_TICK_MS = 100;
|
|
|
50
36
|
*/
|
|
51
37
|
export const PULSE_PERIOD_MS = 2000;
|
|
52
38
|
export const GRAPH_SCROLL_STEP_COLS = 4;
|
|
53
|
-
export const GRAPH_SCROLL_STEP_ROWS = 4;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { RunSnapshot } from "../shared/store-types.js";
|
|
1
2
|
import { hexBg, hexToAnsi, RESET } from "./color-utils.js";
|
|
2
3
|
import { GraphCanvas } from "./graph-canvas.js";
|
|
3
4
|
import { PULSE_PERIOD_MS } from "./graph-view-constants.js";
|
|
@@ -11,46 +12,51 @@ interface Placement {
|
|
|
11
12
|
line: string;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
|
-
/** Graph body rendering and
|
|
15
|
+
/** Graph body rendering and horizontal canvas management. */
|
|
15
16
|
export abstract class GraphViewGraphRenderer extends GraphViewRenderHelpers {
|
|
16
|
-
protected _renderGraph(
|
|
17
|
-
|
|
17
|
+
protected _renderGraph(
|
|
18
|
+
width: number,
|
|
19
|
+
viewportTop: number,
|
|
20
|
+
viewportRows: number,
|
|
21
|
+
renderRun?: RunSnapshot | null,
|
|
22
|
+
): string[] {
|
|
23
|
+
const safeRows = Math.max(0, Math.floor(viewportRows));
|
|
24
|
+
const run = renderRun !== undefined ? renderRun : this._getCurrentRun();
|
|
18
25
|
if (!run || this.cachedLayout.length === 0) {
|
|
19
26
|
this.lastGraphViewport = null;
|
|
20
27
|
this.graphNodeHitRects = [];
|
|
21
|
-
this.
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
this.lastGraphTopPad = 0;
|
|
29
|
+
this.lastGraphVisibleRows = safeRows;
|
|
30
|
+
const lines = Array.from({ length: safeRows }, () => "");
|
|
31
|
+
if (safeRows > 0) {
|
|
32
|
+
const dim = hexToAnsi(this.graphTheme.dim);
|
|
33
|
+
lines[Math.floor((safeRows - 1) / 2)] = this._centerCanvasContent(
|
|
34
|
+
`${dim}waiting for stage events…${RESET}`,
|
|
35
|
+
width,
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
return lines;
|
|
24
39
|
}
|
|
25
40
|
|
|
26
41
|
const graphInner = Math.max(1, width - 4);
|
|
27
42
|
const { canvasWidth, totalRows, bands, edges } = this.cachedRenderGeometry;
|
|
28
|
-
this.lastGraphTotalRows = totalRows;
|
|
29
43
|
const leftMargin = Math.max(2, canvasWidth <= graphInner ? Math.floor((graphInner - canvasWidth) / 2) : 2);
|
|
30
44
|
const viewportWidth = Math.max(1, width - leftMargin);
|
|
31
45
|
const fullCanvasWidth = Math.max(canvasWidth, viewportWidth);
|
|
32
46
|
this.lastGraphViewport = { leftMargin, viewportWidth };
|
|
33
|
-
this._clampGraphHorizontalScroll(fullCanvasWidth, viewportWidth);
|
|
34
|
-
if (this.pendingEnsureFocusedVisible) {
|
|
35
|
-
this._scrollFocusedColumnIntoView(viewportWidth, fullCanvasWidth);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const bodyRows = this._overlayBodyRows(this._overlayPanelLineCount());
|
|
39
|
-
if (totalRows > bodyRows) {
|
|
40
|
-
this._clampGraphScroll(totalRows, bodyRows);
|
|
41
|
-
if (this.pendingEnsureFocusedVisible) this._scrollFocusedIntoView(width, bodyRows, totalRows);
|
|
42
|
-
this._clampGraphScroll(totalRows, bodyRows);
|
|
43
|
-
} else {
|
|
44
|
-
this.graphScrollOffset = 0;
|
|
45
|
-
}
|
|
46
47
|
|
|
47
|
-
const
|
|
48
|
-
const
|
|
48
|
+
const safeTop = Math.max(0, Math.min(totalRows, Math.floor(viewportTop)));
|
|
49
|
+
const graphRows = Math.max(0, Math.min(safeRows, totalRows - safeTop));
|
|
50
|
+
const viewportBottom = safeTop + graphRows;
|
|
51
|
+
this._clampGraphHorizontalScroll(fullCanvasWidth, viewportWidth);
|
|
52
|
+
const topPad = safeTop === 0 && totalRows <= safeRows ? Math.min(3, Math.floor((safeRows - totalRows) / 2)) : 0;
|
|
53
|
+
this.lastGraphTopPad = topPad;
|
|
54
|
+
this.lastGraphVisibleRows = graphRows;
|
|
49
55
|
const viewportLeft = this.graphScrollColOffset;
|
|
50
56
|
const viewportRight = viewportLeft + viewportWidth;
|
|
51
57
|
const pulsePhase = (Date.now() % PULSE_PERIOD_MS) / PULSE_PERIOD_MS;
|
|
52
58
|
const edgeCanvas = new GraphCanvas({
|
|
53
|
-
top:
|
|
59
|
+
top: safeTop,
|
|
54
60
|
bottom: viewportBottom,
|
|
55
61
|
left: viewportLeft,
|
|
56
62
|
right: viewportRight,
|
|
@@ -58,7 +64,7 @@ export abstract class GraphViewGraphRenderer extends GraphViewRenderHelpers {
|
|
|
58
64
|
const edgeColor = this.graphTheme.borderDim;
|
|
59
65
|
for (const edge of edges) {
|
|
60
66
|
if (
|
|
61
|
-
edge.bottom <=
|
|
67
|
+
edge.bottom <= safeTop ||
|
|
62
68
|
edge.top >= viewportBottom ||
|
|
63
69
|
edge.right <= viewportLeft ||
|
|
64
70
|
edge.left >= viewportRight
|
|
@@ -69,7 +75,7 @@ export abstract class GraphViewGraphRenderer extends GraphViewRenderHelpers {
|
|
|
69
75
|
}
|
|
70
76
|
const edgeLines = edgeCanvas.toLines();
|
|
71
77
|
const placements = new Map<number, Placement[]>();
|
|
72
|
-
for (let bandIndex = this._firstVisibleLayoutBand(
|
|
78
|
+
for (let bandIndex = this._firstVisibleLayoutBand(safeTop); bandIndex < bands.length; bandIndex++) {
|
|
73
79
|
const band = bands[bandIndex]!;
|
|
74
80
|
if (band.top >= viewportBottom) break;
|
|
75
81
|
for (const ni of band.nodeIndices) {
|
|
@@ -88,8 +94,8 @@ export abstract class GraphViewGraphRenderer extends GraphViewRenderHelpers {
|
|
|
88
94
|
const visibleRight = Math.min(node.x + NODE_W, viewportRight);
|
|
89
95
|
for (let li = 0; li < cardLines.length; li++) {
|
|
90
96
|
const globalRow = node.y + li;
|
|
91
|
-
if (globalRow <
|
|
92
|
-
const localRow = globalRow -
|
|
97
|
+
if (globalRow < safeTop || globalRow >= viewportBottom) continue;
|
|
98
|
+
const localRow = globalRow - safeTop;
|
|
93
99
|
let bucket = placements.get(localRow);
|
|
94
100
|
if (!bucket) {
|
|
95
101
|
bucket = [];
|
|
@@ -106,10 +112,10 @@ export abstract class GraphViewGraphRenderer extends GraphViewRenderHelpers {
|
|
|
106
112
|
|
|
107
113
|
const bg = hexBg(this.graphTheme.bg);
|
|
108
114
|
const leftPad = `${bg}${" ".repeat(leftMargin)}${RESET}`;
|
|
109
|
-
const composed:
|
|
110
|
-
for (let localRow = 0; localRow <
|
|
115
|
+
const composed = Array.from({ length: safeRows }, () => "");
|
|
116
|
+
for (let localRow = 0; localRow < graphRows; localRow++) {
|
|
111
117
|
const line = this._composeRow(edgeLines[localRow] ?? "", placements.get(localRow) ?? [], edgeColor);
|
|
112
|
-
composed
|
|
118
|
+
composed[topPad + localRow] = `${leftPad}${this._padCanvas(line, viewportWidth)}`;
|
|
113
119
|
}
|
|
114
120
|
return composed;
|
|
115
121
|
}
|
|
@@ -126,8 +132,8 @@ export abstract class GraphViewGraphRenderer extends GraphViewRenderHelpers {
|
|
|
126
132
|
const viewportLeft = viewport.leftMargin;
|
|
127
133
|
const viewportRight = viewport.leftMargin + viewport.viewportWidth;
|
|
128
134
|
const rects: typeof this.graphNodeHitRects = [];
|
|
129
|
-
const viewportTop = this.
|
|
130
|
-
const viewportBottom = viewportTop + visibleRowCount;
|
|
135
|
+
const viewportTop = this._graphScrollTop();
|
|
136
|
+
const viewportBottom = Math.min(this.cachedRenderGeometry.totalRows, viewportTop + visibleRowCount);
|
|
131
137
|
const { bands } = this.cachedRenderGeometry;
|
|
132
138
|
for (let bandIndex = this._firstVisibleLayoutBand(viewportTop); bandIndex < bands.length; bandIndex++) {
|
|
133
139
|
const band = bands[bandIndex]!;
|
|
@@ -148,19 +154,4 @@ export abstract class GraphViewGraphRenderer extends GraphViewRenderHelpers {
|
|
|
148
154
|
}
|
|
149
155
|
this.graphNodeHitRects = rects;
|
|
150
156
|
}
|
|
151
|
-
|
|
152
|
-
protected _visibleGraphLines(
|
|
153
|
-
graphLines: string[],
|
|
154
|
-
_frameWidth: number,
|
|
155
|
-
bodyRows: number,
|
|
156
|
-
): { lines: string[]; topPad: number } {
|
|
157
|
-
this.pendingEnsureFocusedVisible = false;
|
|
158
|
-
return {
|
|
159
|
-
lines: graphLines,
|
|
160
|
-
topPad:
|
|
161
|
-
this.lastGraphTotalRows <= bodyRows
|
|
162
|
-
? Math.min(3, Math.max(0, Math.floor((bodyRows - this.lastGraphTotalRows) / 2)))
|
|
163
|
-
: 0,
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
157
|
}
|