@bastani/atomic 0.9.39 → 0.9.40-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 +35 -0
- package/dist/builtin/intercom/CHANGELOG.md +14 -0
- package/dist/builtin/intercom/broker/broker.ts +523 -72
- package/dist/builtin/intercom/broker/client.ts +136 -5
- package/dist/builtin/intercom/broker/database-wake-up-bus.ts +274 -0
- package/dist/builtin/intercom/broker/group-membership.ts +2 -2
- package/dist/builtin/intercom/broker/multinode-router.ts +1500 -0
- package/dist/builtin/intercom/broker/multinode-state-store.ts +569 -0
- package/dist/builtin/intercom/broker/open-broker-state.ts +160 -0
- package/dist/builtin/intercom/broker/paths.ts +6 -0
- package/dist/builtin/intercom/broker/pending-send-registry.ts +14 -0
- package/dist/builtin/intercom/broker/recipient-receipts.ts +93 -0
- package/dist/builtin/intercom/broker/restoring-recipients.ts +263 -0
- package/dist/builtin/intercom/broker/send-handler.ts +241 -25
- package/dist/builtin/intercom/broker/session-id-reclaim.ts +41 -0
- package/dist/builtin/intercom/broker/socket-writes.ts +47 -0
- package/dist/builtin/intercom/broker/spawn.ts +10 -2
- package/dist/builtin/intercom/broker/sql-held-send-store.ts +96 -0
- package/dist/builtin/intercom/broker/sql-known-session-store.ts +129 -0
- package/dist/builtin/intercom/broker/sql-lease-store.ts +194 -0
- package/dist/builtin/intercom/broker/sql-outbox-store.ts +249 -0
- package/dist/builtin/intercom/broker/sql-pending-ask-store.ts +105 -0
- package/dist/builtin/intercom/broker/sql-restoring-reservation-store.ts +295 -0
- package/dist/builtin/intercom/broker/sql-sent-message-authority.ts +126 -0
- package/dist/builtin/intercom/broker/supervisor-channel.ts +10 -0
- package/dist/builtin/intercom/broker/wake-up-bus.ts +60 -0
- package/dist/builtin/intercom/index.bundle.mjs +793 -91
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/intercom/retry-policy.ts +4 -0
- package/dist/builtin/intercom/session-target.ts +24 -0
- package/dist/builtin/intercom/types.ts +57 -3
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +31 -0
- package/dist/builtin/subagents/README.md +18 -12
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/subagents/skills/agent-browser/SKILL.md +1 -1
- package/dist/builtin/subagents/skills/cua-driver/BROWSER.md +55 -8
- package/dist/builtin/subagents/skills/cua-driver/EMBEDDING.md +7 -2
- package/dist/builtin/subagents/skills/cua-driver/LINUX.md +7 -1
- package/dist/builtin/subagents/skills/cua-driver/MACOS.md +151 -27
- package/dist/builtin/subagents/skills/cua-driver/RUNTIME.md +1 -1
- package/dist/builtin/subagents/skills/cua-driver/SKILL.md +33 -17
- package/dist/builtin/subagents/skills/cua-driver/WINDOWS.md +5 -0
- package/dist/builtin/subagents/skills/cua-driver/WORKFLOW.md +46 -8
- package/dist/builtin/subagents/skills/subagent/SKILL.md +18 -20
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +8032 -6034
- package/dist/builtin/web-access/CHANGELOG.md +6 -0
- package/dist/builtin/web-access/README.md +1 -1
- package/dist/builtin/web-access/index.bundle.mjs +2 -5
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/workflows/CHANGELOG.md +24 -0
- package/dist/builtin/workflows/README.md +1 -1
- package/dist/builtin/workflows/package.json +1 -1
- package/dist/builtin/workflows/skills/impeccable/SKILL.md +8 -8
- package/dist/builtin/workflows/skills/impeccable/reference/adapt.md +3 -3
- package/dist/builtin/workflows/skills/impeccable/reference/adapt.native.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/audit.md +4 -2
- package/dist/builtin/workflows/skills/impeccable/reference/audit.native.md +2 -2
- package/dist/builtin/workflows/skills/impeccable/reference/craft-floor.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/critique.md +22 -9
- package/dist/builtin/workflows/skills/impeccable/reference/degraded/finish-reviewer.md +2 -2
- package/dist/builtin/workflows/skills/impeccable/reference/distill.md +3 -3
- package/dist/builtin/workflows/skills/impeccable/reference/extract.md +3 -3
- package/dist/builtin/workflows/skills/impeccable/reference/harden.md +2 -4
- package/dist/builtin/workflows/skills/impeccable/reference/hooks.md +4 -4
- package/dist/builtin/workflows/skills/impeccable/reference/live.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/reference/new-work.md +6 -6
- package/dist/builtin/workflows/skills/impeccable/reference/onboard.md +3 -3
- package/dist/builtin/workflows/skills/impeccable/reference/optimize.md +3 -3
- package/dist/builtin/workflows/skills/impeccable/reference/overdrive.md +3 -3
- package/dist/builtin/workflows/skills/impeccable/reference/quieter.md +3 -3
- package/dist/builtin/workflows/skills/impeccable/reference/typeset.md +10 -0
- package/dist/builtin/workflows/skills/impeccable/reference/visualize.md +1 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/VERSION +1 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/impeccable +6 -0
- package/dist/builtin/workflows/skills/impeccable/scripts/impeccable.cmd +47 -22
- package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-dom.js +34 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-session.js +25 -1
- package/dist/builtin/workflows/skills/impeccable/scripts/live-browser.js +33 -8
- package/dist/builtin/workflows/src/durable/journal/resolution.d.ts +7 -7
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +22715 -22159
- package/dist/builtin/workflows/src/index.js +106 -35
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +17 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session-extension-bindings.d.ts +2 -0
- package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
- package/dist/core/agent-session-extension-bindings.js +6 -6
- package/dist/core/agent-session-extension-bindings.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +6 -3
- 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-persistent-custom-messages.d.ts +7 -2
- package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -1
- package/dist/core/agent-session-persistent-custom-messages.js +29 -12
- package/dist/core/agent-session-persistent-custom-messages.js.map +1 -1
- package/dist/core/agent-session-recovery.d.ts +14 -0
- package/dist/core/agent-session-recovery.d.ts.map +1 -0
- package/dist/core/agent-session-recovery.js +83 -0
- package/dist/core/agent-session-recovery.js.map +1 -0
- package/dist/core/agent-session-tasks.d.ts.map +1 -1
- package/dist/core/agent-session-tasks.js +4 -6
- package/dist/core/agent-session-tasks.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +13 -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 +2 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +4 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js +3 -2
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/template.html +1 -0
- package/dist/core/export-html/template.js +37 -20
- package/dist/core/export-html/vendor/marked-cjk-friendly.min.js +6 -0
- package/dist/core/export-html/vendor/marked.min.js +76 -3
- package/dist/core/extensions/api-types.d.ts +6 -2
- 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/event-results.d.ts +21 -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 +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- 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 +4 -0
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/runner-events.d.ts +9 -2
- package/dist/core/extensions/runner-events.d.ts.map +1 -1
- package/dist/core/extensions/runner-events.js +29 -0
- package/dist/core/extensions/runner-events.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +5 -3
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +7 -2
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/runtime-types.d.ts +1 -0
- 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/session-events.d.ts +30 -2
- package/dist/core/extensions/session-events.d.ts.map +1 -1
- package/dist/core/extensions/session-events.js.map +1 -1
- package/dist/core/sdk-types.d.ts +3 -2
- package/dist/core/sdk-types.d.ts.map +1 -1
- package/dist/core/sdk-types.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +3 -0
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-storage.d.ts.map +1 -1
- package/dist/core/session-storage.js +15 -9
- package/dist/core/session-storage.js.map +1 -1
- package/dist/core/storage/process-selection.d.ts +39 -0
- package/dist/core/storage/process-selection.d.ts.map +1 -0
- package/dist/core/storage/process-selection.js +154 -0
- package/dist/core/storage/process-selection.js.map +1 -0
- package/dist/core/storage/provider.d.ts +6 -1
- package/dist/core/storage/provider.d.ts.map +1 -1
- package/dist/core/storage/provider.js +3 -2
- package/dist/core/storage/provider.js.map +1 -1
- package/dist/core/storage/selection.d.ts +1 -1
- package/dist/core/storage/selection.d.ts.map +1 -1
- package/dist/core/storage/selection.js.map +1 -1
- package/dist/core/storage/session/jsonl-session-store.d.ts +2 -0
- package/dist/core/storage/session/jsonl-session-store.d.ts.map +1 -1
- package/dist/core/storage/session/jsonl-session-store.js +38 -2
- package/dist/core/storage/session/jsonl-session-store.js.map +1 -1
- package/dist/core/tasks/completion.d.ts +11 -2
- package/dist/core/tasks/completion.d.ts.map +1 -1
- package/dist/core/tasks/completion.js +40 -16
- package/dist/core/tasks/completion.js.map +1 -1
- package/dist/core/tasks/pause.d.ts +4 -1
- package/dist/core/tasks/pause.d.ts.map +1 -1
- package/dist/core/tasks/pause.js +8 -5
- package/dist/core/tasks/pause.js.map +1 -1
- package/dist/index-extensions.d.ts +1 -1
- package/dist/index-extensions.d.ts.map +1 -1
- package/dist/index-extensions.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +7 -1
- package/dist/main.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 +11 -1
- 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/interactive-deferred-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js +4 -0
- package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +2 -1
- 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-render-chat.js +3 -0
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-session-routing.js +2 -0
- package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.d.ts +2 -1
- package/dist/modes/interactive/interactive-session-runtime.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-session-runtime.js +29 -0
- package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +4 -1
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive-engine/engine-args.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-args.js +4 -0
- package/dist/modes/interactive-engine/engine-args.js.map +1 -1
- package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-render-service.js +4 -4
- package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.js +4 -0
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/modes/interactive-engine/remote-renderer.js +1 -1
- package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
- package/dist/modes/rpc/rpc-client-api.d.ts +4 -1
- package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-api.js +4 -0
- package/dist/modes/rpc/rpc-client-api.js.map +1 -1
- package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-command-handler.js +3 -0
- package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
- package/dist/modes/rpc/rpc-command-timeouts.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-command-timeouts.js +1 -0
- package/dist/modes/rpc/rpc-command-timeouts.js.map +1 -1
- package/dist/modes/rpc/rpc-input-scheduler.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-input-scheduler.js +6 -1
- package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +12 -1
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +44 -11
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/tools-manager.js +1 -1
- package/dist/utils/tools-manager.js.map +1 -1
- package/docs/background-tasks.md +5 -3
- package/docs/computer-use.md +2 -2
- package/docs/environment-variables.md +4 -1
- package/docs/extensions/events.md +29 -2
- package/docs/getting-started/first-session.md +1 -1
- package/docs/guides/intercom.md +1 -1
- package/docs/intercom/operations.md +103 -1
- package/docs/intercom/reference.md +10 -3
- package/docs/intercom.md +8 -6
- package/docs/keybindings.md +1 -1
- package/docs/models.md +1 -1
- package/docs/providers.md +5 -3
- package/docs/reference/cli.md +5 -0
- package/docs/rpc/protocol.md +19 -0
- package/docs/rpc.md +3 -0
- package/docs/sdk/web-server.md +1 -1
- package/docs/sdk.md +5 -2
- package/docs/sessions.md +17 -1
- package/docs/settings.md +6 -4
- package/docs/skills.md +1 -1
- package/docs/storage.md +54 -3
- package/docs/subagents.md +49 -9
- package/docs/usage.md +1 -1
- package/docs/windows.md +14 -4
- package/docs/workflows/api-reference.md +1 -1
- package/docs/workflows/authoring.md +1 -1
- package/docs/workflows/operations.md +10 -6
- package/npm-shrinkwrap.json +40 -40
- package/package.json +6 -6
- package/dist/core/export-html/template-js/data-tree.js +0 -287
- package/dist/core/export-html/template-js/entries-navigation.js +0 -434
- package/dist/core/export-html/template-js/initialization.js +0 -335
- package/dist/core/export-html/template-js/message-tools.js +0 -428
- package/dist/core/export-html/template-js/tree-filter-render.js +0 -419
- package/dist/core/export-html/template-script.d.ts +0 -3
- package/dist/core/export-html/template-script.d.ts.map +0 -1
- package/dist/core/export-html/template-script.js +0 -13
- package/dist/core/export-html/template-script.js.map +0 -1
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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","sourcesContent":["import { setCapabilityOverrides } from \"@earendil-works/pi-tui\";\nimport chalk from \"chalk\";\nimport { type Args, parseArgs, printHelp } from \"./cli/args.ts\";\nimport {\n\ttype AuthCheckResult,\n\tcheckProviderAuth,\n\tcreateAuthCheckModelRuntime,\n\tgetProviderCredential,\n\thasExplicitCredentialExportTarget,\n} from \"./cli/auth-check.ts\";\nimport {\n\ttype AuthCommand,\n\tAuthCommandError,\n\tgetAuthCommandName,\n\tgetAuthCommandUsage,\n\tisAuthCommandHelp,\n\tparseAuthCommand,\n\tprintAuthCommandHelp,\n\tvalidateAuthCheckArgs,\n} from \"./cli/auth-command.ts\";\nimport {\n\tCredentialPrintError,\n\temitCredential,\n\tresolveCredentialForPrint,\n\ttoCredentialPrintError,\n\tvalidateCredentialPrintArgs,\n} from \"./cli/credential-print.ts\";\nimport { listModels } from \"./cli/list-models.ts\";\nimport { createProjectTrustContext } from \"./cli/project-trust.ts\";\nimport {\n\tENV_OFFLINE,\n\tENV_SESSION_DIR,\n\tENV_SKIP_VERSION_CHECK,\n\tENV_STARTUP_BENCHMARK,\n\tgetAgentDir,\n\tgetEnvValue,\n\tgetPackageDir,\n\tsetEnvValue,\n\tVERSION,\n} from \"./config.js\";\nimport type { AgentSession } from \"./core/agent-session.js\";\nimport type { CreateAgentSessionRuntimeFactory } from \"./core/agent-session-runtime.ts\";\nimport {\n\ttype AgentSessionRuntimeDiagnostic,\n\tcreateUnstartedAgentSessionFromServices,\n\tprepareAgentSessionServices,\n} from \"./core/agent-session-services.ts\";\nimport { formatNoModelsAvailableMessage } from \"./core/auth-guidance.ts\";\nimport { AuthStorage, ReadOnlyAuthStorage } from \"./core/auth-storage.ts\";\nimport { applyHttpProxySettings, configureHttpDispatcher } from \"./core/http-dispatcher.ts\";\nimport { limitMandatoryIntercomToTool } from \"./core/mandatory-resource-loader.ts\";\nimport { INTERACTIVE_MODEL_REFRESH_TIMEOUT_MS } from \"./core/model-refresh-timeout.ts\";\nimport {\n\tfindInitialModel,\n\tresolveModelScope,\n\tresolveModelScopeWithDiagnostics,\n\tresolveRestoredModelReference,\n} from \"./core/model-resolver.ts\";\nimport { ModelRuntime } from \"./core/model-runtime.js\";\nimport { flushRawStdout, restoreStdout, takeOverStdout, writeRawStdout } from \"./core/output-guard.ts\";\nimport { formatBorrowedExtensionSourceTrustPrompt, resolveProjectTrusted } from \"./core/project-trust.ts\";\nimport { getMissingSessionCwdIssue, MissingSessionCwdError } from \"./core/session-cwd.ts\";\nimport { ownedSessionManagerStores, ownedSessionStores } from \"./core/session-lifecycle-work.ts\";\nimport { canIsolateSessionStore, takeEngineSessionStorageArg } from \"./core/session-storage.js\";\nimport { deduplicateDiagnostics } from \"./core/settings-diagnostics.ts\";\nimport { SettingsManager } from \"./core/settings-manager.ts\";\nimport { endTimingSpan, printTimings, resetTimings, startTimingSpan, time } from \"./core/timings.ts\";\nimport { hasProjectTrustInputs, ProjectTrustStore } from \"./core/trust-manager.ts\";\nimport { builtInExtensions } from \"./extensions/index.ts\";\nimport {\n\ttype AppMode,\n\tisPlainRuntimeMetadataCommand,\n\tprepareInitialMessage,\n\tresolveAppMode,\n\tresolveCliPaths,\n\tresolveExcludedToolsForAppMode,\n\tshouldStartRpcCatalogRefresh,\n\ttoPrintOutputMode,\n} from \"./main-app-mode.ts\";\nimport {\n\tcomputeDeferExtensions,\n\tcomputeInteractiveEngineResourceDeferral,\n\tcomputeStartupInputCaptureEnabled,\n\tcomputeStartupTrustPromptPossible,\n\tformatScopedModelList,\n} from \"./main-deferred-startup.ts\";\nimport { type EarlyInputCapture, startEarlyInputCapture } from \"./main-early-input.ts\";\nimport { runFirstTimeSetup } from \"./main-first-time-setup.ts\";\nimport { applyCliRuntimeApiKey } from \"./main-runtime-api-key.ts\";\nimport {\n\tapplyInheritedWorkflowSessionClassification,\n\tcreateSessionManager,\n\tpromptForMissingSessionCwd,\n\trefreshSessionStorage,\n\tSessionSelectorConflictError,\n\tvalidateForkFlags,\n\tvalidateImportFlags,\n\tvalidateSessionIdFlags,\n} from \"./main-session.ts\";\nimport { buildSessionOptions } from \"./main-session-options.ts\";\nimport {\n\tcollectSettingsDiagnostics,\n\tdrainProcessStdio,\n\tisTruthyEnvFlag,\n\treadPipedStdin,\n\treportDiagnostics,\n} from \"./main-stdio.ts\";\nimport type { MainOptions } from \"./main-types.ts\";\nimport { runMigrations, showDeprecationWarnings } from \"./migrations.ts\";\nimport { InteractiveMode, runPrintMode, runRpcMode } from \"./modes/index.ts\";\nimport { isUnknownModel } from \"./modes/interactive/interactive-mode-helpers.ts\";\nimport { initTheme, stopThemeWatcher } from \"./modes/interactive/theme/theme.js\";\nimport { createRuntimeForMode } from \"./modes/interactive-engine/create-isolated-runtime.ts\";\nimport { startInteractiveEngineLiveness } from \"./modes/interactive-engine/engine-child-liveness.ts\";\nimport { handleConfigCommand, handlePackageCommand } from \"./package-manager-cli.ts\";\nimport {\n\treadInteractiveEngineBootstrap,\n\ttakeInteractiveEngineBootstrapArg,\n} from \"./utils/interactive-engine-bootstrap.ts\";\nimport { captureInteractiveEngineStartupEnv, isInteractiveEngineChild } from \"./utils/interactive-engine-env.ts\";\nimport { cleanupWindowsSelfUpdateQuarantine } from \"./utils/windows-self-update.ts\";\n\nexport type { AppMode } from \"./main-app-mode.ts\";\nexport { resolveExcludedToolsForAppMode } from \"./main-app-mode.ts\";\nexport type { MainOptions } from \"./main-types.ts\";\n\nfunction authCheckErrorMessage(error: unknown): string {\n\t// Provider and credential-store errors can quote a live credential. Model\n\t// resolution errors are made only from the named CLI values, so they remain\n\t// actionable without letting provider-generated text reach stderr.\n\treturn error instanceof AuthCommandError ? error.message : \"Failed to check provider readiness\";\n}\n\n/**\n * `atomic auth …` owns provider-readiness checks and the credential-export\n * door. Its stdout guard routes all ordinary writes to stderr while a command\n * resolves. A readiness result reaches real stdout only as a status record;\n * the opt-in credential branch passes a Secret to emitCredential, the sole\n * code path that can open it and write it to stdout.\n */\nasync function runAuthCheckCommand(command: AuthCommand, parsed: Args): Promise<void> {\n\tvalidateAuthCheckArgs(parsed);\n\tlet result: AuthCheckResult;\n\tlet credentials: AuthStorage | ReadOnlyAuthStorage | undefined;\n\tlet modelRuntime: ModelRuntime | undefined;\n\ttry {\n\t\tcredentials = command.noRefresh ? new ReadOnlyAuthStorage() : AuthStorage.create();\n\t\tmodelRuntime = await createAuthCheckModelRuntime(credentials);\n\t\tresult = await checkProviderAuth(parsed, modelRuntime, { refresh: !command.noRefresh, credentials });\n\t} catch (error) {\n\t\tconsole.error(chalk.red(`Error: ${authCheckErrorMessage(error)}`));\n\t\tresult = { status: \"invalid\", reason: \"invalid_state\" };\n\t}\n\n\tlet credentialEmitted = false;\n\tif (command.credentials && result.status === \"ready\" && credentials && modelRuntime) {\n\t\tconst readyResult = result;\n\t\tif (!hasExplicitCredentialExportTarget(parsed, modelRuntime, readyResult.provider)) {\n\t\t\tconsole.error(chalk.red(\"Error: Credential export requires --provider or an exact --model target\"));\n\t\t\tresult = { status: \"invalid\", provider: readyResult.provider, reason: \"invalid_state\" };\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tconst credential = await getProviderCredential(readyResult.provider, modelRuntime, credentials, {\n\t\t\t\t\trefresh: !command.noRefresh,\n\t\t\t\t});\n\t\t\t\tif (credential) {\n\t\t\t\t\tawait emitCredential(\n\t\t\t\t\t\tcredential,\n\t\t\t\t\t\tcommand.json\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tstatus: readyResult.status,\n\t\t\t\t\t\t\t\t\tprovider: readyResult.provider,\n\t\t\t\t\t\t\t\t\tauthType: readyResult.authType,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t);\n\t\t\t\t\tcredentialEmitted = true;\n\t\t\t\t} else {\n\t\t\t\t\tresult = { status: \"not_ready\", provider: readyResult.provider, reason: \"credential_not_available\" };\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof CredentialPrintError) throw error;\n\t\t\t\t// Provider text can quote a credential. Explain the export failure with a\n\t\t\t\t// constant diagnostic rather than carrying that text into stderr.\n\t\t\t\tconsole.error(chalk.red(\"Error: Failed to resolve credential for export\"));\n\t\t\t\tresult = { status: \"invalid\", provider: readyResult.provider, reason: \"invalid_state\" };\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!credentialEmitted) {\n\t\tif (command.credentials && !command.json) {\n\t\t\t// The explicit credential stream is credential-only. A caller assigning\n\t\t\t// it to a shell variable receives no status word on a non-zero exit.\n\t\t\tconsole.error(result.status);\n\t\t} else {\n\t\t\tconst output = command.json ? JSON.stringify(result) : result.status;\n\t\t\twriteRawStdout(`${output}\\n`);\n\t\t\tawait flushRawStdout();\n\t\t}\n\t}\n\tprocess.exitCode = result.status === \"ready\" ? 0 : result.status === \"not_ready\" ? 1 : 2;\n}\nasync function runAuthCommand(args: string[]): Promise<boolean> {\n\tif (isAuthCommandHelp(args)) {\n\t\tprintAuthCommandHelp();\n\t\treturn true;\n\t}\n\n\tlet command: AuthCommand | undefined;\n\ttry {\n\t\tcommand = parseAuthCommand(args);\n\t} catch (error) {\n\t\tconst failure = error instanceof AuthCommandError ? error : new AuthCommandError(\"Failed to parse auth command\");\n\t\tconsole.error(chalk.red(`Error: ${failure.message}`));\n\t\tprocess.exitCode = failure.exitCode;\n\t\treturn true;\n\t}\n\tif (!command) return false;\n\n\ttakeOverStdout();\n\ttry {\n\t\tconst parsed = parseArgs(command.args);\n\t\tif (command.kind === \"check\") {\n\t\t\tif (parsed.unknownFlags.size > 0) {\n\t\t\t\tconst option = parsed.unknownFlags.keys().next().value;\n\t\t\t\tconsole.error(chalk.red(`Unknown option --${option} for \"${getAuthCommandName(command.kind)}\".`));\n\t\t\t\tconsole.error(chalk.dim(`Use \"${getAuthCommandUsage(command.kind)}\".`));\n\t\t\t\tprocess.exitCode = 2;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst errors = parsed.diagnostics.filter((diagnostic) => diagnostic.type === \"error\");\n\t\t\tif (errors.length > 0) {\n\t\t\t\tfor (const error of errors) console.error(chalk.red(`Error: ${error.message}`));\n\t\t\t\tprocess.exitCode = 2;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if (parsed.diagnostics.some((diagnostic) => diagnostic.type === \"error\")) {\n\t\t\t// Preserve the print commands' established parser behavior: any error\n\t\t\t// prints every diagnostic, warnings included, as a guarded stderr error.\n\t\t\tfor (const diagnostic of parsed.diagnostics) console.error(chalk.red(`Error: ${diagnostic.message}`));\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\n\t\tif (command.kind === \"check\") {\n\t\t\ttry {\n\t\t\t\tawait runAuthCheckCommand(command, parsed);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof CredentialPrintError) {\n\t\t\t\t\tconsole.error(chalk.red(`Error: ${error.message}`));\n\t\t\t\t\tprocess.exitCode = error.exitCode;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(chalk.red(`Error: ${authCheckErrorMessage(error)}`));\n\t\t\t\t\tprocess.exitCode = 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\ttry {\n\t\t\tvalidateCredentialPrintArgs(parsed);\n\t\t\tconst modelRuntime = await ModelRuntime.create({ allowModelNetwork: false });\n\t\t\tconst secret = await resolveCredentialForPrint(parsed, modelRuntime, command.kind, command.minExpiryMs);\n\t\t\t// The Secret arrives unreadable here; emitCredential routes it through\n\t\t\t// credentialPayload, the only source function that can open it.\n\t\t\tawait emitCredential(secret, undefined);\n\t\t} catch (error) {\n\t\t\t// Every code toCredentialPrintError can produce belongs to a failure\n\t\t\t// that emitted nothing, so the exit code set here never contradicts\n\t\t\t// an empty stdout; a genuinely unclassified error is reported as a\n\t\t\t// credential-resolution failure.\n\t\t\tconst failure = toCredentialPrintError(error);\n\t\t\tconsole.error(chalk.red(`Error: ${failure.message}`));\n\t\t\tprocess.exitCode = failure.exitCode;\n\t\t}\n\t} finally {\n\t\trestoreStdout();\n\t}\n\treturn true;\n}\nexport async function main(argv: string[], options?: MainOptions) {\n\t// Consume the private engine handshake before anything else: the bootstrap\n\t// file carries engine role, host PID, guardian path, and any API key, is read\n\t// once, and is unlinked immediately. Nothing engine-only ever reaches the\n\t// child's environment, so no descendant of the engine can inherit it — which\n\t// deleting variables from `process.env` cannot achieve under Bun.\n\tconst bootstrap = takeInteractiveEngineBootstrapArg(argv);\n\tconst { args, sessionStorage } = takeEngineSessionStorageArg(bootstrap.args);\n\tconst engineEnv = captureInteractiveEngineStartupEnv(\n\t\tbootstrap.path === undefined ? undefined : readInteractiveEngineBootstrap(bootstrap.path),\n\t);\n\tresetTimings();\n\tconst extensionFactories = [...builtInExtensions, ...(options?.extensionFactories ?? [])];\n\tconst offlineMode = args.includes(\"--offline\") || isTruthyEnvFlag(getEnvValue(ENV_OFFLINE));\n\tif (offlineMode) {\n\t\tsetEnvValue(ENV_OFFLINE, \"1\");\n\t\tsetEnvValue(ENV_SKIP_VERSION_CHECK, \"1\");\n\t}\n\tif (process.platform === \"win32\") cleanupWindowsSelfUpdateQuarantine(getPackageDir());\n\tconst cwd = process.cwd(),\n\t\tagentDir = getAgentDir();\n\tconst bootstrapSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: false });\n\tapplyHttpProxySettings(bootstrapSettingsManager.getGlobalSettings().httpProxy);\n\tconfigureHttpDispatcher();\n\tif (await handlePackageCommand(args, { extensionFactories })) {\n\t\tconst exitCode = process.exitCode ?? 0;\n\t\tawait drainProcessStdio();\n\t\tprocess.exit(exitCode);\n\t\treturn;\n\t}\n\tif (await handleConfigCommand(args, { extensionFactories })) {\n\t\treturn;\n\t}\n\tif (await runAuthCommand(args)) {\n\t\tconst exitCode = process.exitCode ?? 0;\n\t\tawait drainProcessStdio();\n\t\tprocess.exit(exitCode);\n\t\treturn;\n\t}\n\tif (args[0] === \"mcp\") {\n\t\tconst { loadMcpCommand } = await import(\"./extensions/mcp/cli.lazy.js\");\n\t\tconst { runMcpCommand } = await loadMcpCommand();\n\t\tprocess.exitCode = await runMcpCommand(args.slice(1), { cwd, agentDir });\n\t\tawait drainProcessStdio();\n\t\treturn;\n\t}\n\tconst parsed = parseArgs(args);\n\tif (engineEnv.child === \"1\" && engineEnv.apiKey) parsed.apiKey = engineEnv.apiKey;\n\tif (parsed.diagnostics.length > 0) {\n\t\tfor (const d of parsed.diagnostics) {\n\t\t\tconst color = d.type === \"error\" ? chalk.red : chalk.yellow;\n\t\t\tconsole.error(color(`${d.type === \"error\" ? \"Error\" : \"Warning\"}: ${d.message}`));\n\t\t}\n\t\tif (parsed.diagnostics.some((d) => d.type === \"error\")) {\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\ttime(\"parseArgs\");\n\n\tif (parsed.version) {\n\t\tconsole.log(VERSION);\n\t\tprocess.exit(0);\n\t}\n\n\tif (parsed.export) {\n\t\tlet result: string;\n\t\ttry {\n\t\t\tconst outputPath = parsed.messages.length > 0 ? parsed.messages[0] : undefined;\n\t\t\tconst { exportFromFile } = await import(\"./core/export-html/index.ts\");\n\t\t\tresult = await exportFromFile(parsed.export, outputPath);\n\t\t} catch (error: unknown) {\n\t\t\tconst message = error instanceof Error ? error.message : \"Failed to export session\";\n\t\t\tconsole.error(chalk.red(`Error: ${message}`));\n\t\t\tprocess.exit(1);\n\t\t}\n\t\tconsole.log(`Exported to: ${result}`);\n\t\tprocess.exit(0);\n\t}\n\tlet appMode = options?.internalInteractiveHarness?.forceInteractive\n\t\t? \"interactive\"\n\t\t: resolveAppMode(parsed, process.stdin.isTTY, process.stdout.isTTY);\n\tlet isolateInteractiveHost =\n\t\tappMode === \"interactive\" && !isPlainRuntimeMetadataCommand(parsed) && engineEnv.child !== \"1\";\n\tconst shouldTakeOverStdout = appMode !== \"interactive\";\n\tconst shouldRestoreStdoutForMetadata = isPlainRuntimeMetadataCommand(parsed);\n\tif (shouldTakeOverStdout) {\n\t\ttakeOverStdout();\n\t}\n\tconst engineLiveness = engineEnv.child === \"1\" ? startInteractiveEngineLiveness(writeRawStdout) : undefined;\n\tengineLiveness?.ready();\n\tif (parsed.mode === \"rpc\" && parsed.fileArgs.length > 0) {\n\t\tconsole.error(chalk.red(\"Error: @file arguments are not supported in RPC mode\"));\n\t\tprocess.exit(1);\n\t}\n\n\ttry {\n\t\tvalidateImportFlags(parsed);\n\t} catch (error) {\n\t\tif (!(error instanceof SessionSelectorConflictError)) throw error;\n\t\tconsole.error(chalk.red(`Error: ${error.message}`));\n\t\tprocess.exit(1);\n\t}\n\tvalidateForkFlags(parsed);\n\tvalidateSessionIdFlags(parsed);\n\n\tconst projectTrustStore = new ProjectTrustStore(agentDir);\n\tconst startupHasTrustInputs = hasProjectTrustInputs(cwd);\n\tconst startupStoredProjectTrust = startupHasTrustInputs ? projectTrustStore.get(cwd) : null;\n\tconst startupGlobalSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: false });\n\tconst startupDefaultProjectTrust = startupGlobalSettingsManager.getDefaultProjectTrust();\n\tconst startupProjectTrusted =\n\t\tparsed.projectTrustOverride ??\n\t\tstartupStoredProjectTrust ??\n\t\t(!startupHasTrustInputs || startupDefaultProjectTrust === \"always\");\n\tconst resolvedExtensionPaths = resolveCliPaths(cwd, parsed.extensions),\n\t\tresolvedSkillPaths = resolveCliPaths(cwd, parsed.skills);\n\tconst resolvedPromptTemplatePaths = resolveCliPaths(cwd, parsed.promptTemplates),\n\t\tresolvedThemePaths = resolveCliPaths(cwd, parsed.themes);\n\tconst beginStartupInputCapture = (\n\t\tsessionCwd: string,\n\t\tsessionSelectionComplete = false,\n\t\tdeprecationWarningCount = 0,\n\t): EarlyInputCapture | undefined =>\n\t\tstartEarlyInputCapture({\n\t\t\tenabled: computeStartupInputCaptureEnabled({\n\t\t\t\tappMode,\n\t\t\t\tstdinIsTTY: process.stdin.isTTY === true,\n\t\t\t\tparsed,\n\t\t\t\tsessionCwd,\n\t\t\t\tprojectTrustStore,\n\t\t\t\tresolvedExtensionPathCount: resolvedExtensionPaths?.length ?? 0,\n\t\t\t\tresolvedResourcePathCount:\n\t\t\t\t\t(resolvedSkillPaths?.length ?? 0) +\n\t\t\t\t\t(resolvedPromptTemplatePaths?.length ?? 0) +\n\t\t\t\t\t(resolvedThemePaths?.length ?? 0),\n\t\t\t\tdeprecationWarningCount,\n\t\t\t\tsessionSelectionComplete,\n\t\t\t}),\n\t\t});\n\tlet startupEarlyInputCapture = beginStartupInputCapture(cwd);\n\t// Run migrations after computing startup project trust so project-local migrations\n\t// cannot read or mutate untrusted project config before approval.\n\tconst { migratedAuthProviders: migratedProviders, deprecationWarnings } = runMigrations(cwd, {\n\t\tprojectTrusted: startupProjectTrusted,\n\t});\n\ttime(\"runMigrations\");\n\tif (deprecationWarnings.length > 0) {\n\t\tstartupEarlyInputCapture?.consume();\n\t\tstartupEarlyInputCapture = undefined;\n\t}\n\n\tconst startupSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: startupProjectTrusted });\n\tsetCapabilityOverrides(startupSettingsManager.getTerminalCapabilityOverrides());\n\tconst startupSettingsDiagnostics = collectSettingsDiagnostics(startupSettingsManager, \"startup session lookup\");\n\n\t// --use-theme steers this run only: the override lives in the startup\n\t// manager's effective settings and never reaches its global settings file.\n\t// The interactive controller applies the same value through\n\t// initialThemeSetting, so nothing here persists the selection.\n\tif (appMode === \"interactive\" && parsed.useTheme !== undefined) {\n\t\tstartupSettingsManager.applyOverrides({ theme: parsed.useTheme });\n\t}\n\n\tif (parsed.help || parsed.listModels !== undefined) {\n\t\tconst completeServices = await prepareAgentSessionServices({\n\t\t\tcwd,\n\t\t\tagentDir,\n\t\t\tsettingsManager: startupSettingsManager,\n\t\t\textensionFlagValues: parsed.unknownFlags,\n\t\t\tresourceLoaderOptions: {\n\t\t\t\tadditionalExtensionPaths: resolvedExtensionPaths,\n\t\t\t\tadditionalSkillPaths: resolvedSkillPaths,\n\t\t\t\tadditionalPromptTemplatePaths: resolvedPromptTemplatePaths,\n\t\t\t\tadditionalThemePaths: resolvedThemePaths,\n\t\t\t\tbuiltinPackagePaths: options?.builtinPackagePaths,\n\t\t\t\tnoExtensions: parsed.noExtensions,\n\t\t\t\tdisabledBuiltinExtensions: parsed.noMcp ? [\"mcp\"] : undefined,\n\t\t\t\tnoSkills: parsed.noSkills,\n\t\t\t\tnoPromptTemplates: parsed.noPromptTemplates,\n\t\t\t\tnoThemes: parsed.noThemes,\n\t\t\t\tnoContextFiles: parsed.noContextFiles,\n\t\t\t\textensionFactories,\n\t\t\t},\n\t\t});\n\t\tconst { modelRuntime, resourceLoader } = await completeServices();\n\t\treportDiagnostics(startupSettingsDiagnostics);\n\t\tif (shouldRestoreStdoutForMetadata) restoreStdout();\n\t\tif (parsed.help) {\n\t\t\tprintHelp(\n\t\t\t\tresourceLoader.getExtensions().extensions.flatMap((extension) => Array.from(extension.flags.values())),\n\t\t\t);\n\t\t} else {\n\t\t\tawait listModels(modelRuntime, typeof parsed.listModels === \"string\" ? parsed.listModels : undefined);\n\t\t}\n\t\tprocess.exit(0);\n\t}\n\n\t// Decide the final runtime cwd before creating cwd-bound runtime services.\n\t// --session and --resume may select a session from another project, so project-local\n\t// settings, resources, provider registrations, and models must be resolved only after\n\t// the target session cwd is known. The startup-cwd settings manager is used only for\n\t// storage selection before loading the selected session's resources.\n\tlet sessionManager = await createSessionManager(parsed, cwd, undefined, startupSettingsManager, sessionStorage);\n\tconst missingSessionCwdIssue = getMissingSessionCwdIssue(sessionManager, cwd);\n\tif (missingSessionCwdIssue) {\n\t\tstartupEarlyInputCapture?.consume();\n\t\tstartupEarlyInputCapture = undefined;\n\t\tif (appMode === \"interactive\") {\n\t\t\tconst selectedCwd = await promptForMissingSessionCwd(missingSessionCwdIssue, startupSettingsManager);\n\t\t\tif (!selectedCwd) {\n\t\t\t\tprocess.exit(0);\n\t\t\t}\n\t\t\tsessionManager = await sessionManager.openSessionById(sessionManager.getSessionId(), selectedCwd);\n\t\t} else {\n\t\t\tconsole.error(chalk.red(new MissingSessionCwdError(missingSessionCwdIssue).message));\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\tif (parsed.name !== undefined) {\n\t\tconst name = parsed.name.trim();\n\t\tif (!name) {\n\t\t\tconsole.error(chalk.red(\"Error: --name requires a non-empty value\"));\n\t\t\tstartupEarlyInputCapture?.consume();\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\ttime(\"createSessionManager\");\n\tisolateInteractiveHost &&= canIsolateSessionStore(sessionManager.getSessionStore());\n\n\tconst sessionCwd = sessionManager.getCwd();\n\t// A store selected only by settings can change after trust approval. Explicit\n\t// CLI/environment selections are already final and retain engine isolation.\n\tconst storagePinned =\n\t\tsessionStorage !== undefined ||\n\t\tparsed.noSession ||\n\t\tparsed.sessionDir !== undefined ||\n\t\tparsed.sessionStorePath !== undefined ||\n\t\t!!getEnvValue(ENV_SESSION_DIR);\n\tconst selectedProjectTrusted =\n\t\tparsed.projectTrustOverride ??\n\t\t(hasProjectTrustInputs(sessionCwd) ? projectTrustStore.get(sessionCwd) : true) ??\n\t\tstartupDefaultProjectTrust === \"always\";\n\tisolateInteractiveHost &&= storagePinned || selectedProjectTrusted;\n\tstartupEarlyInputCapture ??= beginStartupInputCapture(sessionCwd, true, deprecationWarnings.length);\n\tconst autoTrustOnReloadCwd =\n\t\tparsed.projectTrustOverride === undefined && !hasProjectTrustInputs(sessionCwd) ? sessionCwd : undefined;\n\n\tconst builtinPackagePaths = options?.builtinPackagePaths;\n\tconst trustPromptMode: AppMode = appMode;\n\tconst projectTrustByCwd = new Map<string, boolean>();\n\tconst borrowedExtensionSourceTrustByPath = new Map<string, boolean>();\n\tlet deferredExtensionLoad = false;\n\tlet forceEagerInteractiveEngineResources = false;\n\tconst createRuntime: CreateAgentSessionRuntimeFactory = async (options) => (await prepareRuntime(options))();\n\tconst prepareRuntime: NonNullable<CreateAgentSessionRuntimeFactory[\"prepareResume\"]> = async ({\n\t\tcwd,\n\t\tagentDir,\n\t\tsessionManager,\n\t\tsessionStartEvent,\n\t\tprojectTrustContext,\n\t}) => {\n\t\tconst cachedProjectTrust = projectTrustByCwd.get(cwd);\n\t\tconst hasTrustInputs = hasProjectTrustInputs(cwd);\n\t\tconst storedProjectTrust = hasTrustInputs ? projectTrustStore.get(cwd) : null;\n\t\tconst initialProjectTrusted =\n\t\t\tparsed.projectTrustOverride ?? cachedProjectTrust ?? storedProjectTrust ?? !hasTrustInputs;\n\t\tconst shouldResolveProjectTrust =\n\t\t\t!isolateInteractiveHost &&\n\t\t\tparsed.projectTrustOverride === undefined &&\n\t\t\tcachedProjectTrust === undefined &&\n\t\t\thasTrustInputs;\n\t\tconst runtimeSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: initialProjectTrusted });\n\t\tconst existingSession = sessionManager.buildSessionContext();\n\t\tconst deferStartupTrust =\n\t\t\tsessionStartEvent === undefined &&\n\t\t\t!isolateInteractiveHost &&\n\t\t\t(trustPromptMode === \"interactive\" || engineEnv.child === \"1\") &&\n\t\t\t(shouldResolveProjectTrust || (resolvedExtensionPaths?.length ?? 0) > 0);\n\t\tlet completeStartupReload: (() => Promise<void>) | undefined;\n\t\tlet startupTrustContext: typeof projectTrustContext;\n\t\tconst resolvedExtensionPathCount = resolvedExtensionPaths?.length ?? 0;\n\t\tconst hasSystemPromptInput = parsed.systemPrompt !== undefined || (parsed.appendSystemPrompt?.length ?? 0) > 0;\n\t\tconst resolvedResourcePathCount =\n\t\t\t(resolvedSkillPaths?.length ?? 0) +\n\t\t\t(resolvedPromptTemplatePaths?.length ?? 0) +\n\t\t\t(resolvedThemePaths?.length ?? 0);\n\t\tconst deferInteractiveEngineResources = computeInteractiveEngineResourceDeferral({\n\t\t\tinteractiveEngineChild: engineEnv.child === \"1\" && !forceEagerInteractiveEngineResources,\n\t\t\thasSessionStartEvent: sessionStartEvent !== undefined,\n\t\t\tshouldResolveProjectTrust,\n\t\t\tstoredProjectTrust,\n\t\t\tresolvedExtensionPathCount,\n\t\t\tresolvedResourcePathCount,\n\t\t\thasSystemPromptInput,\n\t\t\tunknownFlagCount: parsed.unknownFlags.size,\n\t\t});\n\t\tconst deferExtensions =\n\t\t\t!deferStartupTrust &&\n\t\t\t!isolateInteractiveHost &&\n\t\t\t(deferInteractiveEngineResources ||\n\t\t\t\tcomputeDeferExtensions({\n\t\t\t\t\tappMode,\n\t\t\t\t\tstdinIsTTY: process.stdin.isTTY === true,\n\t\t\t\t\thasSessionStartEvent: sessionStartEvent !== undefined,\n\t\t\t\t\thelp: parsed.help,\n\t\t\t\t\tlistModels: parsed.listModels,\n\t\t\t\t\tshouldResolveProjectTrust,\n\t\t\t\t\tstoredProjectTrust,\n\t\t\t\t\tresolvedExtensionPathCount,\n\t\t\t\t\tresolvedResourcePathCount,\n\t\t\t\t\thasSystemPromptInput,\n\t\t\t\t\tunknownFlagCount: parsed.unknownFlags.size,\n\t\t\t\t\tprovider: parsed.provider,\n\t\t\t\t\tmodel: parsed.model,\n\t\t\t\t}));\n\t\tif (sessionStartEvent === undefined) {\n\t\t\tdeferredExtensionLoad = deferExtensions || deferStartupTrust;\n\t\t}\n\t\tconst getProjectTrustContext = () =>\n\t\t\tstartupTrustContext ??\n\t\t\tprojectTrustContext ??\n\t\t\tcreateProjectTrustContext({\n\t\t\t\tcwd,\n\t\t\t\tmode: sessionStartEvent === undefined ? trustPromptMode : appMode,\n\t\t\t\tsettingsManager: runtimeSettingsManager,\n\t\t\t\thasUI: sessionStartEvent === undefined && trustPromptMode === \"interactive\",\n\t\t\t});\n\t\tlet migrateAfterTrust = false;\n\t\tlet startupSession: AgentSession | undefined;\n\t\tlet storageFinalized = false;\n\t\tconst finalizeStartupStorage = async () => {\n\t\t\tif (sessionStartEvent !== undefined || storageFinalized) return;\n\t\t\tconst store = await refreshSessionStorage(sessionManager, parsed, runtimeSettingsManager, sessionStorage);\n\t\t\tif (store && startupSession) {\n\t\t\t\townedSessionManagerStores.delete(sessionManager);\n\t\t\t\townedSessionStores.set(startupSession, store);\n\t\t\t}\n\t\t\tawait applyInheritedWorkflowSessionClassification(sessionManager);\n\t\t\tif (parsed.name !== undefined) await sessionManager.appendSessionInfo(parsed.name.trim());\n\t\t\tstorageFinalized = true;\n\t\t};\n\t\tconst completeServices = await prepareAgentSessionServices({\n\t\t\tcwd,\n\t\t\tagentDir,\n\t\t\tsettingsManager: runtimeSettingsManager,\n\t\t\textensionFlagValues: parsed.unknownFlags,\n\t\t\tresourceLoaderReloadOptions: deferExtensions\n\t\t\t\t? { deferExtensions: true, deferResources: true }\n\t\t\t\t: shouldResolveProjectTrust || (!isolateInteractiveHost && (resolvedExtensionPaths?.length ?? 0) > 0)\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tdeferProjectTrust: deferStartupTrust\n\t\t\t\t\t\t\t\t? (complete) => {\n\t\t\t\t\t\t\t\t\t\tcompleteStartupReload = complete;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tonProjectTrustResolved: async () => {\n\t\t\t\t\t\t\t\tawait finalizeStartupStorage();\n\t\t\t\t\t\t\t\tengineLiveness?.projectTrustResolved();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresolveProjectTrust: shouldResolveProjectTrust\n\t\t\t\t\t\t\t\t? async ({ extensionsResult }) => {\n\t\t\t\t\t\t\t\t\t\tconst trusted = await resolveProjectTrusted({\n\t\t\t\t\t\t\t\t\t\t\tcwd,\n\t\t\t\t\t\t\t\t\t\t\ttrustStore: projectTrustStore,\n\t\t\t\t\t\t\t\t\t\t\tdefaultProjectTrust: runtimeSettingsManager.getDefaultProjectTrust(),\n\t\t\t\t\t\t\t\t\t\t\textensionsResult,\n\t\t\t\t\t\t\t\t\t\t\tprojectTrustContext: getProjectTrustContext(),\n\t\t\t\t\t\t\t\t\t\t\tonExtensionError: (message) => console.error(chalk.yellow(`Warning: ${message}`)),\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tprojectTrustByCwd.set(cwd, trusted);\n\t\t\t\t\t\t\t\t\t\tif (trusted && !initialProjectTrusted) {\n\t\t\t\t\t\t\t\t\t\t\tmigrateAfterTrust = true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn trusted;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tresolveBorrowedProjectTrust: async ({ source, extensionsResult }) => {\n\t\t\t\t\t\t\t\tconst cachedTrust = borrowedExtensionSourceTrustByPath.get(source);\n\t\t\t\t\t\t\t\tif (cachedTrust !== undefined) {\n\t\t\t\t\t\t\t\t\treturn cachedTrust;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst trusted = await resolveProjectTrusted({\n\t\t\t\t\t\t\t\t\tcwd: source,\n\t\t\t\t\t\t\t\t\ttrustStore: projectTrustStore,\n\t\t\t\t\t\t\t\t\ttrustOverride: parsed.projectTrustOverride,\n\t\t\t\t\t\t\t\t\tdefaultProjectTrust: runtimeSettingsManager.getDefaultProjectTrust(),\n\t\t\t\t\t\t\t\t\textensionsResult,\n\t\t\t\t\t\t\t\t\tprojectTrustContext: getProjectTrustContext(),\n\t\t\t\t\t\t\t\t\tpromptMessage: formatBorrowedExtensionSourceTrustPrompt(source),\n\t\t\t\t\t\t\t\t\tonExtensionError: (message) => console.error(chalk.yellow(`Warning: ${message}`)),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tborrowedExtensionSourceTrustByPath.set(source, trusted);\n\t\t\t\t\t\t\t\treturn trusted;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\tresourceLoaderOptions: {\n\t\t\t\tadditionalExtensionPaths: isolateInteractiveHost ? undefined : resolvedExtensionPaths,\n\t\t\t\tadditionalSkillPaths: resolvedSkillPaths,\n\t\t\t\tadditionalPromptTemplatePaths: resolvedPromptTemplatePaths,\n\t\t\t\tadditionalThemePaths: resolvedThemePaths,\n\t\t\t\tbuiltinPackagePaths,\n\t\t\t\tnoExtensions: isolateInteractiveHost || parsed.noExtensions,\n\t\t\t\tdisabledBuiltinExtensions: parsed.noMcp ? [\"mcp\"] : undefined,\n\t\t\t\tnoSkills: parsed.noSkills,\n\t\t\t\tnoPromptTemplates: parsed.noPromptTemplates,\n\t\t\t\tnoThemes: parsed.noThemes,\n\t\t\t\tnoContextFiles: parsed.noContextFiles,\n\t\t\t\tsystemPrompt: parsed.systemPrompt,\n\t\t\t\tappendSystemPrompt: parsed.appendSystemPrompt,\n\t\t\t\textensionFactories: isolateInteractiveHost ? undefined : extensionFactories,\n\t\t\t},\n\t\t});\n\t\treturn async () => {\n\t\t\tif (migrateAfterTrust) runMigrations(cwd, { projectTrusted: true });\n\t\t\tconst services = await completeServices();\n\t\t\tif (!deferStartupTrust) await finalizeStartupStorage();\n\t\t\tif (isolateInteractiveHost) limitMandatoryIntercomToTool(services.resourceLoader);\n\t\t\tconst { settingsManager, modelRuntime, resourceLoader } = services;\n\t\t\tconst diagnostics: AgentSessionRuntimeDiagnostic[] = [\n\t\t\t\t...services.diagnostics,\n\t\t\t\t...collectSettingsDiagnostics(settingsManager, \"runtime creation\"),\n\t\t\t\t...resourceLoader.getExtensions().errors.map(({ path, error }) => ({\n\t\t\t\t\ttype: \"error\" as const,\n\t\t\t\t\tmessage: `Failed to load extension \"${path}\": ${error}`,\n\t\t\t\t})),\n\t\t\t\t...(resourceLoader.getExtensions().warnings ?? []).map(({ path, warning }) => ({\n\t\t\t\t\ttype: \"warning\" as const,\n\t\t\t\t\tmessage: `Extension package \"${path}\": ${warning}`,\n\t\t\t\t})),\n\t\t\t];\n\t\t\tconst modelPatterns = isolateInteractiveHost\n\t\t\t\t? undefined\n\t\t\t\t: (parsed.models ?? settingsManager.getEnabledModels());\n\t\t\tconst scopedModels =\n\t\t\t\tmodelPatterns && modelPatterns.length > 0\n\t\t\t\t\t? deferredExtensionLoad\n\t\t\t\t\t\t? (await resolveModelScopeWithDiagnostics(modelPatterns, modelRuntime)).scopedModels\n\t\t\t\t\t\t: await resolveModelScope(modelPatterns, modelRuntime)\n\t\t\t\t\t: [];\n\t\t\tconst sessionArgs = isolateInteractiveHost\n\t\t\t\t? { ...parsed, provider: undefined, model: undefined, apiKey: undefined, models: undefined }\n\t\t\t\t: parsed;\n\t\t\tconst {\n\t\t\t\toptions: sessionOptions,\n\t\t\t\tcliThinkingFromModel,\n\t\t\t\tdiagnostics: sessionOptionDiagnostics,\n\t\t\t} = buildSessionOptions(\n\t\t\t\tsessionArgs,\n\t\t\t\tscopedModels,\n\t\t\t\tsessionManager.buildSessionContext().messages.length > 0,\n\t\t\t\tmodelRuntime,\n\t\t\t\tsettingsManager,\n\t\t\t);\n\t\t\tif (!deferStartupTrust) diagnostics.push(...sessionOptionDiagnostics);\n\n\t\t\tif (parsed.apiKey && !isolateInteractiveHost && !deferStartupTrust) {\n\t\t\t\tif (!sessionOptions.model) {\n\t\t\t\t\tdiagnostics.push({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\tmessage: \"--api-key requires a model to be specified via --model, --provider/--model, or --models\",\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Bound the complete CLI key operation—from credential mutation through\n\t\t\t\t\t// provider-scoped catalog refresh—with the established model-refresh budget.\n\t\t\t\t\tconst apiKeySignal = AbortSignal.timeout(INTERACTIVE_MODEL_REFRESH_TIMEOUT_MS);\n\t\t\t\t\tawait applyCliRuntimeApiKey(modelRuntime, sessionOptions.model.provider, parsed.apiKey, apiKeySignal);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst created = await createUnstartedAgentSessionFromServices(\n\t\t\t\t{\n\t\t\t\t\tservices,\n\t\t\t\t\tsessionManager,\n\t\t\t\t\tsessionStartEvent,\n\t\t\t\t\tmodel: sessionOptions.model,\n\t\t\t\t\tthinkingLevel: sessionOptions.thinkingLevel,\n\t\t\t\t\tscopedModels: sessionOptions.scopedModels,\n\t\t\t\t\ttools: sessionOptions.tools,\n\t\t\t\t\tbuiltins: parsed.noMcp ? { mcp: false } : undefined,\n\t\t\t\t\texcludedTools: resolveExcludedToolsForAppMode(appMode, sessionOptions.excludedTools),\n\t\t\t\t\tnoTools: sessionOptions.noTools,\n\t\t\t\t\tcustomTools: sessionOptions.customTools,\n\t\t\t\t},\n\t\t\t\t!isolateInteractiveHost && !deferStartupTrust,\n\t\t\t);\n\t\t\tstartupSession = created.session;\n\t\t\tif (completeStartupReload) {\n\t\t\t\tconst completeReload = completeStartupReload;\n\t\t\t\tlet completion: Promise<void> | undefined;\n\t\t\t\tservices.completeStartup = (context) =>\n\t\t\t\t\t(completion ??= (async () => {\n\t\t\t\t\t\tstartupTrustContext = context;\n\t\t\t\t\t\tawait completeReload();\n\t\t\t\t\t\tif (migrateAfterTrust) runMigrations(cwd, { projectTrusted: true });\n\t\t\t\t\t\tconst finalServices = await completeServices();\n\t\t\t\t\t\tconst extensionErrors = finalServices.resourceLoader.getExtensions().errors;\n\t\t\t\t\t\tif (extensionErrors.length > 0) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t`Failed to load extensions: ${extensionErrors.map(({ path, error }) => `${path}: ${error}`).join(\"; \")}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tservices.resourceLoader = finalServices.resourceLoader;\n\t\t\t\t\t\tservices.diagnostics = finalServices.diagnostics;\n\t\t\t\t\t\tconst patterns = parsed.models ?? settingsManager.getEnabledModels();\n\t\t\t\t\t\tconst finalScope = patterns?.length ? await resolveModelScope(patterns, modelRuntime) : [];\n\t\t\t\t\t\tconst finalSelection = buildSessionOptions(\n\t\t\t\t\t\t\tparsed,\n\t\t\t\t\t\t\tfinalScope,\n\t\t\t\t\t\t\texistingSession.messages.length > 0,\n\t\t\t\t\t\t\tmodelRuntime,\n\t\t\t\t\t\t\tsettingsManager,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfinalServices.diagnostics.push(...finalSelection.diagnostics);\n\t\t\t\t\t\tlet finalModel = finalSelection.options.model;\n\t\t\t\t\t\tif (!finalModel && existingSession.messages.length > 0 && existingSession.model) {\n\t\t\t\t\t\t\tfinalModel = await resolveRestoredModelReference(\n\t\t\t\t\t\t\t\texistingSession.model.provider,\n\t\t\t\t\t\t\t\texistingSession.model.modelId,\n\t\t\t\t\t\t\t\tmodelRuntime,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinalModel ??= (\n\t\t\t\t\t\t\tawait findInitialModel({\n\t\t\t\t\t\t\t\tscopedModels: [],\n\t\t\t\t\t\t\t\tisContinuing: existingSession.messages.length > 0,\n\t\t\t\t\t\t\t\tdefaultProvider: settingsManager.getDefaultProvider(),\n\t\t\t\t\t\t\t\tdefaultModelId: settingsManager.getDefaultModel(),\n\t\t\t\t\t\t\t\tdefaultThinkingLevel: settingsManager.getDefaultThinkingLevel(),\n\t\t\t\t\t\t\t\tmodelThinkingLevels: settingsManager.getAllModelThinkingLevels(),\n\t\t\t\t\t\t\t\tmodelRuntime,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t).model;\n\t\t\t\t\t\tif (parsed.apiKey && finalModel)\n\t\t\t\t\t\t\tawait applyCliRuntimeApiKey(\n\t\t\t\t\t\t\t\tmodelRuntime,\n\t\t\t\t\t\t\t\tfinalModel.provider,\n\t\t\t\t\t\t\t\tparsed.apiKey,\n\t\t\t\t\t\t\t\tAbortSignal.timeout(INTERACTIVE_MODEL_REFRESH_TIMEOUT_MS),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\tcreated.session.setScopedModels(finalScope);\n\t\t\t\t\t\tif (finalModel) {\n\t\t\t\t\t\t\tcreated.session.agent.state.model = finalModel;\n\t\t\t\t\t\t\tawait sessionManager.appendModelChange(finalModel.provider, finalModel.id);\n\t\t\t\t\t\t\tawait created.session.setThinkingLevel(\n\t\t\t\t\t\t\t\tfinalSelection.options.thinkingLevel ??\n\t\t\t\t\t\t\t\t\t(existingSession.messages.length > 0 ? created.session.thinkingLevel : undefined) ??\n\t\t\t\t\t\t\t\t\tsettingsManager.getModelThinkingLevel(finalModel.provider, finalModel.id) ??\n\t\t\t\t\t\t\t\t\tsettingsManager.getDefaultThinkingLevel() ??\n\t\t\t\t\t\t\t\t\tcreated.session.thinkingLevel,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait created.session.completeStartupResources(finalServices.resourceLoader);\n\t\t\t\t\t\tfor (const diagnostic of finalServices.diagnostics) reportDiagnostics([diagnostic]);\n\t\t\t\t\t})().catch((error) => {\n\t\t\t\t\t\tcompletion = undefined;\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}));\n\t\t\t}\n\t\t\tif (\n\t\t\t\tdeferInteractiveEngineResources &&\n\t\t\t\t!services.completeStartup &&\n\t\t\t\t(!created.session.model || isUnknownModel(created.session.model))\n\t\t\t) {\n\t\t\t\tconst store = ownedSessionStores.get(created.session);\n\t\t\t\tif (store) {\n\t\t\t\t\townedSessionStores.delete(created.session);\n\t\t\t\t\townedSessionManagerStores.set(sessionManager, store);\n\t\t\t\t}\n\t\t\t\tawait created.session.dispose();\n\t\t\t\tforceEagerInteractiveEngineResources = true;\n\t\t\t\treturn createRuntime({ cwd, agentDir, sessionManager, sessionStartEvent, projectTrustContext });\n\t\t\t}\n\t\t\tconst cliThinkingOverride = parsed.thinking !== undefined || cliThinkingFromModel;\n\t\t\tif (!isolateInteractiveHost && created.session.model && cliThinkingOverride) {\n\t\t\t\tawait created.session.setThinkingLevel(created.session.thinkingLevel);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...created,\n\t\t\t\tservices,\n\t\t\t\tdiagnostics,\n\t\t\t};\n\t\t};\n\t};\n\tcreateRuntime.prepareResume = prepareRuntime;\n\ttime(\"createRuntimeFactory\");\n\tconst runtimeCreationSpan = startTimingSpan(\"createAgentSessionRuntime\");\n\tconst runtime = await createRuntimeForMode(\n\t\tcreateRuntime,\n\t\tsessionManager.getCwd(),\n\t\tagentDir,\n\t\tsessionManager,\n\t\tisolateInteractiveHost,\n\t\t(options?.extensionFactories?.length ?? 0) > 0,\n\t\tparsed,\n\t\t{\n\t\t\textensions: resolvedExtensionPaths,\n\t\t\tskills: resolvedSkillPaths,\n\t\t\tpromptTemplates: resolvedPromptTemplatePaths,\n\t\t\tthemes: resolvedThemePaths,\n\t\t},\n\t);\n\tendTimingSpan(runtimeCreationSpan);\n\tconst { services, session, modelFallbackMessage } = runtime;\n\tconst { settingsManager, modelRuntime } = services;\n\tsetCapabilityOverrides(settingsManager.getTerminalCapabilityOverrides());\n\tapplyHttpProxySettings(settingsManager.getGlobalSettings().httpProxy);\n\tconfigureHttpDispatcher(settingsManager.getHttpIdleTimeoutMs());\n\n\t// Read piped stdin content (if any) - skip for RPC mode which uses stdin for JSON-RPC\n\tlet stdinContent: string | undefined;\n\tif (appMode !== \"rpc\" && !options?.internalInteractiveHarness) {\n\t\tstdinContent = await readPipedStdin();\n\t\tif (stdinContent !== undefined && appMode === \"interactive\") {\n\t\t\tappMode = \"print\";\n\t\t}\n\t}\n\ttime(\"readPipedStdin\");\n\n\tconst { initialMessage, initialImages } = await prepareInitialMessage(parsed, stdinContent);\n\ttime(\"prepareInitialMessage\");\n\tstartupEarlyInputCapture = await runFirstTimeSetup(appMode, settingsManager, startupEarlyInputCapture);\n\tinitTheme(settingsManager.getTheme(), appMode === \"interactive\");\n\ttime(\"initTheme\");\n\n\t// Show deprecation warnings in interactive mode\n\tif (appMode === \"interactive\" && deprecationWarnings.length > 0) {\n\t\tawait showDeprecationWarnings(deprecationWarnings);\n\t}\n\tstartupEarlyInputCapture ??= beginStartupInputCapture(sessionCwd, true);\n\n\tconst scopedModels = [...session.scopedModels];\n\ttime(\"resolveModelScope\");\n\tconst startupDiagnostics = deduplicateDiagnostics([...startupSettingsDiagnostics, ...runtime.diagnostics]);\n\tconst hasRuntimeErrors = runtime.diagnostics.some((diagnostic) => diagnostic.type === \"error\");\n\tif (appMode !== \"interactive\" || hasRuntimeErrors) reportDiagnostics(startupDiagnostics);\n\tif (hasRuntimeErrors) {\n\t\tstartupEarlyInputCapture?.consume();\n\t\tprocess.exit(1);\n\t}\n\ttime(\"createAgentSession\");\n\n\tif (appMode !== \"interactive\" && !session.model && !(engineEnv.child === \"1\" && services.completeStartup)) {\n\t\tconsole.error(chalk.red(formatNoModelsAvailableMessage()));\n\t\tstartupEarlyInputCapture?.consume();\n\t\tprocess.exit(1);\n\t}\n\n\tconst startupBenchmark = isTruthyEnvFlag(getEnvValue(ENV_STARTUP_BENCHMARK));\n\tif (startupBenchmark && appMode !== \"interactive\") {\n\t\tconsole.error(chalk.red(`Error: ${ENV_STARTUP_BENCHMARK} only supports interactive mode`));\n\t\tstartupEarlyInputCapture?.consume();\n\t\tprocess.exit(1);\n\t}\n\n\tif (appMode === \"rpc\") {\n\t\t// Standalone RPC preserves its eager catalog refresh. The isolated\n\t\t// interactive engine does not: /model owns its bounded refresh, while an\n\t\t// eager unbounded refresh can hold credential locks and lend its in-flight\n\t\t// promise to later cache-only or timed refreshes.\n\t\tif (shouldStartRpcCatalogRefresh(offlineMode, isInteractiveEngineChild())) {\n\t\t\tvoid modelRuntime.refresh().catch(() => {});\n\t\t}\n\t\tprintTimings();\n\t\tawait runRpcMode(runtime, { deferInteractiveEngineResources: deferredExtensionLoad });\n\t} else if (appMode === \"interactive\") {\n\t\tif (scopedModels.length > 0 && (parsed.verbose || settingsManager.getQuietStartup() === false)) {\n\t\t\tconsole.log(chalk.dim(`Model scope: ${formatScopedModelList(scopedModels)} ${chalk.gray(\"(ctrl+p cycle)\")}`));\n\t\t}\n\n\t\tconst interactiveMode = new InteractiveMode(runtime, {\n\t\t\tmigratedProviders,\n\t\t\tstartupDiagnostics,\n\t\t\tmodelFallbackMessage,\n\t\t\tautoTrustOnReloadCwd,\n\t\t\tholdTuiForStartupTrust:\n\t\t\t\tisolateInteractiveHost &&\n\t\t\t\tcomputeStartupTrustPromptPossible({\n\t\t\t\t\tprojectTrustOverride: parsed.projectTrustOverride,\n\t\t\t\t\thasTrustInputs: hasProjectTrustInputs(sessionCwd),\n\t\t\t\t\tstoredProjectTrust: projectTrustStore.get(sessionCwd),\n\t\t\t\t\tdefaultProjectTrust: startupDefaultProjectTrust,\n\t\t\t\t}),\n\t\t\tinitialMessage,\n\t\t\tinitialImages,\n\t\t\tinitialMessages: parsed.messages,\n\t\t\tverbose: parsed.verbose,\n\t\t\tinitialThemeSetting: parsed.useTheme,\n\t\t\tdeferredExtensionLoad,\n\t\t\tstartupInputCapture: startupEarlyInputCapture,\n\t\t\tdeferredModelScopePatterns: deferredExtensionLoad\n\t\t\t\t? (parsed.models ?? settingsManager.getEnabledModels())\n\t\t\t\t: undefined,\n\t\t\tdeferredModelScopePreserveThinking: parsed.thinking !== undefined,\n\t\t\tterminal: options?.internalInteractiveHarness?.terminal,\n\t\t});\n\t\toptions?.internalInteractiveHarness?.onMode?.(interactiveMode);\n\t\tif (startupBenchmark) {\n\t\t\tawait interactiveMode.init();\n\t\t\ttime(\"interactiveMode.init\");\n\t\t\tawait interactiveMode.ensureDeferredStartupComplete();\n\t\t\tprintTimings();\n\t\t\tinteractiveMode.stop();\n\t\t\tstopThemeWatcher();\n\t\t\tif (process.stdout.writableLength > 0) {\n\t\t\t\tawait new Promise<void>((resolve) => process.stdout.once(\"drain\", resolve));\n\t\t\t}\n\t\t\tif (process.stderr.writableLength > 0) {\n\t\t\t\tawait new Promise<void>((resolve) => process.stderr.once(\"drain\", resolve));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tprintTimings();\n\t\tawait interactiveMode.run();\n\t} else {\n\t\tprintTimings();\n\t\tconst exitCode = await runPrintMode(runtime, {\n\t\t\tmode: toPrintOutputMode(appMode),\n\t\t\tmessages: parsed.messages,\n\t\t\tinitialMessage,\n\t\t\tinitialImages,\n\t\t});\n\t\tstopThemeWatcher();\n\t\trestoreStdout();\n\t\tif (exitCode !== 0) {\n\t\t\tprocess.exitCode = exitCode;\n\t\t}\n\t\treturn;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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","sourcesContent":["import { setCapabilityOverrides } from \"@earendil-works/pi-tui\";\nimport chalk from \"chalk\";\nimport { type Args, parseArgs, printHelp } from \"./cli/args.ts\";\nimport {\n\ttype AuthCheckResult,\n\tcheckProviderAuth,\n\tcreateAuthCheckModelRuntime,\n\tgetProviderCredential,\n\thasExplicitCredentialExportTarget,\n} from \"./cli/auth-check.ts\";\nimport {\n\ttype AuthCommand,\n\tAuthCommandError,\n\tgetAuthCommandName,\n\tgetAuthCommandUsage,\n\tisAuthCommandHelp,\n\tparseAuthCommand,\n\tprintAuthCommandHelp,\n\tvalidateAuthCheckArgs,\n} from \"./cli/auth-command.ts\";\nimport {\n\tCredentialPrintError,\n\temitCredential,\n\tresolveCredentialForPrint,\n\ttoCredentialPrintError,\n\tvalidateCredentialPrintArgs,\n} from \"./cli/credential-print.ts\";\nimport { listModels } from \"./cli/list-models.ts\";\nimport { createProjectTrustContext } from \"./cli/project-trust.ts\";\nimport {\n\tENV_OFFLINE,\n\tENV_SESSION_DIR,\n\tENV_SKIP_VERSION_CHECK,\n\tENV_STARTUP_BENCHMARK,\n\tgetAgentDir,\n\tgetEnvValue,\n\tgetPackageDir,\n\tsetEnvValue,\n\tVERSION,\n} from \"./config.js\";\nimport type { AgentSession } from \"./core/agent-session.js\";\nimport type { CreateAgentSessionRuntimeFactory } from \"./core/agent-session-runtime.ts\";\nimport {\n\ttype AgentSessionRuntimeDiagnostic,\n\tcreateUnstartedAgentSessionFromServices,\n\tprepareAgentSessionServices,\n} from \"./core/agent-session-services.ts\";\nimport { formatNoModelsAvailableMessage } from \"./core/auth-guidance.ts\";\nimport { AuthStorage, ReadOnlyAuthStorage } from \"./core/auth-storage.ts\";\nimport { applyHttpProxySettings, configureHttpDispatcher } from \"./core/http-dispatcher.ts\";\nimport { limitMandatoryIntercomToTool } from \"./core/mandatory-resource-loader.ts\";\nimport { INTERACTIVE_MODEL_REFRESH_TIMEOUT_MS } from \"./core/model-refresh-timeout.ts\";\nimport {\n\tfindInitialModel,\n\tresolveModelScope,\n\tresolveModelScopeWithDiagnostics,\n\tresolveRestoredModelReference,\n} from \"./core/model-resolver.ts\";\nimport { ModelRuntime } from \"./core/model-runtime.js\";\nimport { flushRawStdout, restoreStdout, takeOverStdout, writeRawStdout } from \"./core/output-guard.ts\";\nimport { formatBorrowedExtensionSourceTrustPrompt, resolveProjectTrusted } from \"./core/project-trust.ts\";\nimport { getMissingSessionCwdIssue, MissingSessionCwdError } from \"./core/session-cwd.ts\";\nimport { ownedSessionManagerStores, ownedSessionStores } from \"./core/session-lifecycle-work.ts\";\nimport { canIsolateSessionStore, takeEngineSessionStorageArg } from \"./core/session-storage.js\";\nimport { deduplicateDiagnostics } from \"./core/settings-diagnostics.ts\";\nimport { SettingsManager } from \"./core/settings-manager.ts\";\nimport {\n\thasProcessStorageSelection,\n\tselectProcessStorage,\n\tsetCliStorageSelection,\n} from \"./core/storage/process-selection.js\";\nimport { endTimingSpan, printTimings, resetTimings, startTimingSpan, time } from \"./core/timings.ts\";\nimport { hasProjectTrustInputs, ProjectTrustStore } from \"./core/trust-manager.ts\";\nimport { builtInExtensions } from \"./extensions/index.ts\";\nimport {\n\ttype AppMode,\n\tisPlainRuntimeMetadataCommand,\n\tprepareInitialMessage,\n\tresolveAppMode,\n\tresolveCliPaths,\n\tresolveExcludedToolsForAppMode,\n\tshouldStartRpcCatalogRefresh,\n\ttoPrintOutputMode,\n} from \"./main-app-mode.ts\";\nimport {\n\tcomputeDeferExtensions,\n\tcomputeInteractiveEngineResourceDeferral,\n\tcomputeStartupInputCaptureEnabled,\n\tcomputeStartupTrustPromptPossible,\n\tformatScopedModelList,\n} from \"./main-deferred-startup.ts\";\nimport { type EarlyInputCapture, startEarlyInputCapture } from \"./main-early-input.ts\";\nimport { runFirstTimeSetup } from \"./main-first-time-setup.ts\";\nimport { applyCliRuntimeApiKey } from \"./main-runtime-api-key.ts\";\nimport {\n\tapplyInheritedWorkflowSessionClassification,\n\tcreateSessionManager,\n\tpromptForMissingSessionCwd,\n\trefreshSessionStorage,\n\tSessionSelectorConflictError,\n\tvalidateForkFlags,\n\tvalidateImportFlags,\n\tvalidateSessionIdFlags,\n} from \"./main-session.ts\";\nimport { buildSessionOptions } from \"./main-session-options.ts\";\nimport {\n\tcollectSettingsDiagnostics,\n\tdrainProcessStdio,\n\tisTruthyEnvFlag,\n\treadPipedStdin,\n\treportDiagnostics,\n} from \"./main-stdio.ts\";\nimport type { MainOptions } from \"./main-types.ts\";\nimport { runMigrations, showDeprecationWarnings } from \"./migrations.ts\";\nimport { InteractiveMode, runPrintMode, runRpcMode } from \"./modes/index.ts\";\nimport { isUnknownModel } from \"./modes/interactive/interactive-mode-helpers.ts\";\nimport { initTheme, stopThemeWatcher } from \"./modes/interactive/theme/theme.js\";\nimport { createRuntimeForMode } from \"./modes/interactive-engine/create-isolated-runtime.ts\";\nimport { startInteractiveEngineLiveness } from \"./modes/interactive-engine/engine-child-liveness.ts\";\nimport { handleConfigCommand, handlePackageCommand } from \"./package-manager-cli.ts\";\nimport {\n\treadInteractiveEngineBootstrap,\n\ttakeInteractiveEngineBootstrapArg,\n} from \"./utils/interactive-engine-bootstrap.ts\";\nimport { captureInteractiveEngineStartupEnv, isInteractiveEngineChild } from \"./utils/interactive-engine-env.ts\";\nimport { cleanupWindowsSelfUpdateQuarantine } from \"./utils/windows-self-update.ts\";\n\nexport type { AppMode } from \"./main-app-mode.ts\";\nexport { resolveExcludedToolsForAppMode } from \"./main-app-mode.ts\";\nexport type { MainOptions } from \"./main-types.ts\";\n\nfunction authCheckErrorMessage(error: unknown): string {\n\t// Provider and credential-store errors can quote a live credential. Model\n\t// resolution errors are made only from the named CLI values, so they remain\n\t// actionable without letting provider-generated text reach stderr.\n\treturn error instanceof AuthCommandError ? error.message : \"Failed to check provider readiness\";\n}\n\n/**\n * `atomic auth …` owns provider-readiness checks and the credential-export\n * door. Its stdout guard routes all ordinary writes to stderr while a command\n * resolves. A readiness result reaches real stdout only as a status record;\n * the opt-in credential branch passes a Secret to emitCredential, the sole\n * code path that can open it and write it to stdout.\n */\nasync function runAuthCheckCommand(command: AuthCommand, parsed: Args): Promise<void> {\n\tvalidateAuthCheckArgs(parsed);\n\tlet result: AuthCheckResult;\n\tlet credentials: AuthStorage | ReadOnlyAuthStorage | undefined;\n\tlet modelRuntime: ModelRuntime | undefined;\n\ttry {\n\t\tcredentials = command.noRefresh ? new ReadOnlyAuthStorage() : AuthStorage.create();\n\t\tmodelRuntime = await createAuthCheckModelRuntime(credentials);\n\t\tresult = await checkProviderAuth(parsed, modelRuntime, { refresh: !command.noRefresh, credentials });\n\t} catch (error) {\n\t\tconsole.error(chalk.red(`Error: ${authCheckErrorMessage(error)}`));\n\t\tresult = { status: \"invalid\", reason: \"invalid_state\" };\n\t}\n\n\tlet credentialEmitted = false;\n\tif (command.credentials && result.status === \"ready\" && credentials && modelRuntime) {\n\t\tconst readyResult = result;\n\t\tif (!hasExplicitCredentialExportTarget(parsed, modelRuntime, readyResult.provider)) {\n\t\t\tconsole.error(chalk.red(\"Error: Credential export requires --provider or an exact --model target\"));\n\t\t\tresult = { status: \"invalid\", provider: readyResult.provider, reason: \"invalid_state\" };\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tconst credential = await getProviderCredential(readyResult.provider, modelRuntime, credentials, {\n\t\t\t\t\trefresh: !command.noRefresh,\n\t\t\t\t});\n\t\t\t\tif (credential) {\n\t\t\t\t\tawait emitCredential(\n\t\t\t\t\t\tcredential,\n\t\t\t\t\t\tcommand.json\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tstatus: readyResult.status,\n\t\t\t\t\t\t\t\t\tprovider: readyResult.provider,\n\t\t\t\t\t\t\t\t\tauthType: readyResult.authType,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t);\n\t\t\t\t\tcredentialEmitted = true;\n\t\t\t\t} else {\n\t\t\t\t\tresult = { status: \"not_ready\", provider: readyResult.provider, reason: \"credential_not_available\" };\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof CredentialPrintError) throw error;\n\t\t\t\t// Provider text can quote a credential. Explain the export failure with a\n\t\t\t\t// constant diagnostic rather than carrying that text into stderr.\n\t\t\t\tconsole.error(chalk.red(\"Error: Failed to resolve credential for export\"));\n\t\t\t\tresult = { status: \"invalid\", provider: readyResult.provider, reason: \"invalid_state\" };\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!credentialEmitted) {\n\t\tif (command.credentials && !command.json) {\n\t\t\t// The explicit credential stream is credential-only. A caller assigning\n\t\t\t// it to a shell variable receives no status word on a non-zero exit.\n\t\t\tconsole.error(result.status);\n\t\t} else {\n\t\t\tconst output = command.json ? JSON.stringify(result) : result.status;\n\t\t\twriteRawStdout(`${output}\\n`);\n\t\t\tawait flushRawStdout();\n\t\t}\n\t}\n\tprocess.exitCode = result.status === \"ready\" ? 0 : result.status === \"not_ready\" ? 1 : 2;\n}\nasync function runAuthCommand(args: string[]): Promise<boolean> {\n\tif (isAuthCommandHelp(args)) {\n\t\tprintAuthCommandHelp();\n\t\treturn true;\n\t}\n\n\tlet command: AuthCommand | undefined;\n\ttry {\n\t\tcommand = parseAuthCommand(args);\n\t} catch (error) {\n\t\tconst failure = error instanceof AuthCommandError ? error : new AuthCommandError(\"Failed to parse auth command\");\n\t\tconsole.error(chalk.red(`Error: ${failure.message}`));\n\t\tprocess.exitCode = failure.exitCode;\n\t\treturn true;\n\t}\n\tif (!command) return false;\n\n\ttakeOverStdout();\n\ttry {\n\t\tconst parsed = parseArgs(command.args);\n\t\tif (command.kind === \"check\") {\n\t\t\tif (parsed.unknownFlags.size > 0) {\n\t\t\t\tconst option = parsed.unknownFlags.keys().next().value;\n\t\t\t\tconsole.error(chalk.red(`Unknown option --${option} for \"${getAuthCommandName(command.kind)}\".`));\n\t\t\t\tconsole.error(chalk.dim(`Use \"${getAuthCommandUsage(command.kind)}\".`));\n\t\t\t\tprocess.exitCode = 2;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst errors = parsed.diagnostics.filter((diagnostic) => diagnostic.type === \"error\");\n\t\t\tif (errors.length > 0) {\n\t\t\t\tfor (const error of errors) console.error(chalk.red(`Error: ${error.message}`));\n\t\t\t\tprocess.exitCode = 2;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if (parsed.diagnostics.some((diagnostic) => diagnostic.type === \"error\")) {\n\t\t\t// Preserve the print commands' established parser behavior: any error\n\t\t\t// prints every diagnostic, warnings included, as a guarded stderr error.\n\t\t\tfor (const diagnostic of parsed.diagnostics) console.error(chalk.red(`Error: ${diagnostic.message}`));\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\n\t\tif (command.kind === \"check\") {\n\t\t\ttry {\n\t\t\t\tawait runAuthCheckCommand(command, parsed);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof CredentialPrintError) {\n\t\t\t\t\tconsole.error(chalk.red(`Error: ${error.message}`));\n\t\t\t\t\tprocess.exitCode = error.exitCode;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(chalk.red(`Error: ${authCheckErrorMessage(error)}`));\n\t\t\t\t\tprocess.exitCode = 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\ttry {\n\t\t\tvalidateCredentialPrintArgs(parsed);\n\t\t\tconst modelRuntime = await ModelRuntime.create({ allowModelNetwork: false });\n\t\t\tconst secret = await resolveCredentialForPrint(parsed, modelRuntime, command.kind, command.minExpiryMs);\n\t\t\t// The Secret arrives unreadable here; emitCredential routes it through\n\t\t\t// credentialPayload, the only source function that can open it.\n\t\t\tawait emitCredential(secret, undefined);\n\t\t} catch (error) {\n\t\t\t// Every code toCredentialPrintError can produce belongs to a failure\n\t\t\t// that emitted nothing, so the exit code set here never contradicts\n\t\t\t// an empty stdout; a genuinely unclassified error is reported as a\n\t\t\t// credential-resolution failure.\n\t\t\tconst failure = toCredentialPrintError(error);\n\t\t\tconsole.error(chalk.red(`Error: ${failure.message}`));\n\t\t\tprocess.exitCode = failure.exitCode;\n\t\t}\n\t} finally {\n\t\trestoreStdout();\n\t}\n\treturn true;\n}\nexport async function main(argv: string[], options?: MainOptions) {\n\t// Consume the private engine handshake before anything else: the bootstrap\n\t// file carries engine role, host PID, guardian path, and any API key, is read\n\t// once, and is unlinked immediately. Nothing engine-only ever reaches the\n\t// child's environment, so no descendant of the engine can inherit it — which\n\t// deleting variables from `process.env` cannot achieve under Bun.\n\tconst bootstrap = takeInteractiveEngineBootstrapArg(argv);\n\tconst { args, sessionStorage } = takeEngineSessionStorageArg(bootstrap.args);\n\tconst engineEnv = captureInteractiveEngineStartupEnv(\n\t\tbootstrap.path === undefined ? undefined : readInteractiveEngineBootstrap(bootstrap.path),\n\t);\n\tresetTimings();\n\tconst extensionFactories = [...builtInExtensions, ...(options?.extensionFactories ?? [])];\n\tconst offlineMode = args.includes(\"--offline\") || isTruthyEnvFlag(getEnvValue(ENV_OFFLINE));\n\tif (offlineMode) {\n\t\tsetEnvValue(ENV_OFFLINE, \"1\");\n\t\tsetEnvValue(ENV_SKIP_VERSION_CHECK, \"1\");\n\t}\n\tif (process.platform === \"win32\") cleanupWindowsSelfUpdateQuarantine(getPackageDir());\n\tconst cwd = process.cwd(),\n\t\tagentDir = getAgentDir();\n\tconst bootstrapSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: false });\n\tapplyHttpProxySettings(bootstrapSettingsManager.getGlobalSettings().httpProxy);\n\tconfigureHttpDispatcher();\n\tif (await handlePackageCommand(args, { extensionFactories })) {\n\t\tconst exitCode = process.exitCode ?? 0;\n\t\tawait drainProcessStdio();\n\t\tprocess.exit(exitCode);\n\t\treturn;\n\t}\n\tif (await handleConfigCommand(args, { extensionFactories })) {\n\t\treturn;\n\t}\n\tif (await runAuthCommand(args)) {\n\t\tconst exitCode = process.exitCode ?? 0;\n\t\tawait drainProcessStdio();\n\t\tprocess.exit(exitCode);\n\t\treturn;\n\t}\n\tif (args[0] === \"mcp\") {\n\t\tconst { loadMcpCommand } = await import(\"./extensions/mcp/cli.lazy.js\");\n\t\tconst { runMcpCommand } = await loadMcpCommand();\n\t\tprocess.exitCode = await runMcpCommand(args.slice(1), { cwd, agentDir });\n\t\tawait drainProcessStdio();\n\t\treturn;\n\t}\n\tconst parsed = parseArgs(args);\n\tif (engineEnv.child === \"1\" && engineEnv.apiKey) parsed.apiKey = engineEnv.apiKey;\n\tif (parsed.diagnostics.length > 0) {\n\t\tfor (const d of parsed.diagnostics) {\n\t\t\tconst color = d.type === \"error\" ? chalk.red : chalk.yellow;\n\t\t\tconsole.error(color(`${d.type === \"error\" ? \"Error\" : \"Warning\"}: ${d.message}`));\n\t\t}\n\t\tif (parsed.diagnostics.some((d) => d.type === \"error\")) {\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\ttime(\"parseArgs\");\n\n\tif (parsed.version) {\n\t\tconsole.log(VERSION);\n\t\tprocess.exit(0);\n\t}\n\n\tif (parsed.export) {\n\t\tlet result: string;\n\t\ttry {\n\t\t\tconst outputPath = parsed.messages.length > 0 ? parsed.messages[0] : undefined;\n\t\t\tconst { exportFromFile } = await import(\"./core/export-html/index.ts\");\n\t\t\tresult = await exportFromFile(parsed.export, outputPath);\n\t\t} catch (error: unknown) {\n\t\t\tconst message = error instanceof Error ? error.message : \"Failed to export session\";\n\t\t\tconsole.error(chalk.red(`Error: ${message}`));\n\t\t\tprocess.exit(1);\n\t\t}\n\t\tconsole.log(`Exported to: ${result}`);\n\t\tprocess.exit(0);\n\t}\n\tlet appMode = options?.internalInteractiveHarness?.forceInteractive\n\t\t? \"interactive\"\n\t\t: resolveAppMode(parsed, process.stdin.isTTY, process.stdout.isTTY);\n\tlet isolateInteractiveHost =\n\t\tappMode === \"interactive\" && !isPlainRuntimeMetadataCommand(parsed) && engineEnv.child !== \"1\";\n\tconst shouldTakeOverStdout = appMode !== \"interactive\";\n\tconst shouldRestoreStdoutForMetadata = isPlainRuntimeMetadataCommand(parsed);\n\tif (shouldTakeOverStdout) {\n\t\ttakeOverStdout();\n\t}\n\tconst engineLiveness = engineEnv.child === \"1\" ? startInteractiveEngineLiveness(writeRawStdout) : undefined;\n\tengineLiveness?.ready();\n\tif (parsed.mode === \"rpc\" && parsed.fileArgs.length > 0) {\n\t\tconsole.error(chalk.red(\"Error: @file arguments are not supported in RPC mode\"));\n\t\tprocess.exit(1);\n\t}\n\n\ttry {\n\t\tvalidateImportFlags(parsed);\n\t} catch (error) {\n\t\tif (!(error instanceof SessionSelectorConflictError)) throw error;\n\t\tconsole.error(chalk.red(`Error: ${error.message}`));\n\t\tprocess.exit(1);\n\t}\n\tvalidateForkFlags(parsed);\n\tvalidateSessionIdFlags(parsed);\n\n\tconst projectTrustStore = new ProjectTrustStore(agentDir);\n\tconst startupHasTrustInputs = hasProjectTrustInputs(cwd);\n\tconst startupStoredProjectTrust = startupHasTrustInputs ? projectTrustStore.get(cwd) : null;\n\tconst startupGlobalSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: false });\n\tconst startupDefaultProjectTrust = startupGlobalSettingsManager.getDefaultProjectTrust();\n\tconst startupProjectTrusted =\n\t\tparsed.projectTrustOverride ??\n\t\tstartupStoredProjectTrust ??\n\t\t(!startupHasTrustInputs || startupDefaultProjectTrust === \"always\");\n\tconst resolvedExtensionPaths = resolveCliPaths(cwd, parsed.extensions),\n\t\tresolvedSkillPaths = resolveCliPaths(cwd, parsed.skills);\n\tconst resolvedPromptTemplatePaths = resolveCliPaths(cwd, parsed.promptTemplates),\n\t\tresolvedThemePaths = resolveCliPaths(cwd, parsed.themes);\n\tconst beginStartupInputCapture = (\n\t\tsessionCwd: string,\n\t\tsessionSelectionComplete = false,\n\t\tdeprecationWarningCount = 0,\n\t): EarlyInputCapture | undefined =>\n\t\tstartEarlyInputCapture({\n\t\t\tenabled: computeStartupInputCaptureEnabled({\n\t\t\t\tappMode,\n\t\t\t\tstdinIsTTY: process.stdin.isTTY === true,\n\t\t\t\tparsed,\n\t\t\t\tsessionCwd,\n\t\t\t\tprojectTrustStore,\n\t\t\t\tresolvedExtensionPathCount: resolvedExtensionPaths?.length ?? 0,\n\t\t\t\tresolvedResourcePathCount:\n\t\t\t\t\t(resolvedSkillPaths?.length ?? 0) +\n\t\t\t\t\t(resolvedPromptTemplatePaths?.length ?? 0) +\n\t\t\t\t\t(resolvedThemePaths?.length ?? 0),\n\t\t\t\tdeprecationWarningCount,\n\t\t\t\tsessionSelectionComplete,\n\t\t\t}),\n\t\t});\n\tlet startupEarlyInputCapture = beginStartupInputCapture(cwd);\n\t// Run migrations after computing startup project trust so project-local migrations\n\t// cannot read or mutate untrusted project config before approval.\n\tconst { migratedAuthProviders: migratedProviders, deprecationWarnings } = runMigrations(cwd, {\n\t\tprojectTrusted: startupProjectTrusted,\n\t});\n\ttime(\"runMigrations\");\n\tif (deprecationWarnings.length > 0) {\n\t\tstartupEarlyInputCapture?.consume();\n\t\tstartupEarlyInputCapture = undefined;\n\t}\n\n\tconst startupSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: startupProjectTrusted });\n\tsetCapabilityOverrides(startupSettingsManager.getTerminalCapabilityOverrides());\n\tconst startupSettingsDiagnostics = collectSettingsDiagnostics(startupSettingsManager, \"startup session lookup\");\n\n\t// --use-theme steers this run only: the override lives in the startup\n\t// manager's effective settings and never reaches its global settings file.\n\t// The interactive controller applies the same value through\n\t// initialThemeSetting, so nothing here persists the selection.\n\tif (appMode === \"interactive\" && parsed.useTheme !== undefined) {\n\t\tstartupSettingsManager.applyOverrides({ theme: parsed.useTheme });\n\t}\n\n\tif (parsed.help || parsed.listModels !== undefined) {\n\t\tconst completeServices = await prepareAgentSessionServices({\n\t\t\tcwd,\n\t\t\tagentDir,\n\t\t\tsettingsManager: startupSettingsManager,\n\t\t\textensionFlagValues: parsed.unknownFlags,\n\t\t\tresourceLoaderOptions: {\n\t\t\t\tadditionalExtensionPaths: resolvedExtensionPaths,\n\t\t\t\tadditionalSkillPaths: resolvedSkillPaths,\n\t\t\t\tadditionalPromptTemplatePaths: resolvedPromptTemplatePaths,\n\t\t\t\tadditionalThemePaths: resolvedThemePaths,\n\t\t\t\tbuiltinPackagePaths: options?.builtinPackagePaths,\n\t\t\t\tnoExtensions: parsed.noExtensions,\n\t\t\t\tdisabledBuiltinExtensions: parsed.noMcp ? [\"mcp\"] : undefined,\n\t\t\t\tnoSkills: parsed.noSkills,\n\t\t\t\tnoPromptTemplates: parsed.noPromptTemplates,\n\t\t\t\tnoThemes: parsed.noThemes,\n\t\t\t\tnoContextFiles: parsed.noContextFiles,\n\t\t\t\textensionFactories,\n\t\t\t},\n\t\t});\n\t\tconst { modelRuntime, resourceLoader } = await completeServices();\n\t\treportDiagnostics(startupSettingsDiagnostics);\n\t\tif (shouldRestoreStdoutForMetadata) restoreStdout();\n\t\tif (parsed.help) {\n\t\t\tprintHelp(\n\t\t\t\tresourceLoader.getExtensions().extensions.flatMap((extension) => Array.from(extension.flags.values())),\n\t\t\t);\n\t\t} else {\n\t\t\tawait listModels(modelRuntime, typeof parsed.listModels === \"string\" ? parsed.listModels : undefined);\n\t\t}\n\t\tprocess.exit(0);\n\t}\n\n\t// Process-level storage comes from the launching process, so it is validated before any session\n\t// starts and is never subject to project trust.\n\tsetCliStorageSelection(parsed.storage, cwd);\n\tselectProcessStorage(\"journal\", agentDir, cwd);\n\n\t// Decide the final runtime cwd before creating cwd-bound runtime services.\n\t// --session and --resume may select a session from another project, so project-local\n\t// settings, resources, provider registrations, and models must be resolved only after\n\t// the target session cwd is known. The startup-cwd settings manager is used only for\n\t// storage selection before loading the selected session's resources.\n\tlet sessionManager = await createSessionManager(parsed, cwd, undefined, startupSettingsManager, sessionStorage);\n\tconst missingSessionCwdIssue = getMissingSessionCwdIssue(sessionManager, cwd);\n\tif (missingSessionCwdIssue) {\n\t\tstartupEarlyInputCapture?.consume();\n\t\tstartupEarlyInputCapture = undefined;\n\t\tif (appMode === \"interactive\") {\n\t\t\tconst selectedCwd = await promptForMissingSessionCwd(missingSessionCwdIssue, startupSettingsManager);\n\t\t\tif (!selectedCwd) {\n\t\t\t\tprocess.exit(0);\n\t\t\t}\n\t\t\tsessionManager = await sessionManager.openSessionById(sessionManager.getSessionId(), selectedCwd);\n\t\t} else {\n\t\t\tconsole.error(chalk.red(new MissingSessionCwdError(missingSessionCwdIssue).message));\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\tif (parsed.name !== undefined) {\n\t\tconst name = parsed.name.trim();\n\t\tif (!name) {\n\t\t\tconsole.error(chalk.red(\"Error: --name requires a non-empty value\"));\n\t\t\tstartupEarlyInputCapture?.consume();\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\ttime(\"createSessionManager\");\n\tisolateInteractiveHost &&= canIsolateSessionStore(sessionManager.getSessionStore());\n\n\tconst sessionCwd = sessionManager.getCwd();\n\t// A store selected only by settings can change after trust approval. Explicit\n\t// CLI/environment selections are already final and retain engine isolation.\n\tconst storagePinned =\n\t\tsessionStorage !== undefined ||\n\t\tparsed.noSession ||\n\t\tparsed.sessionDir !== undefined ||\n\t\tparsed.sessionStorePath !== undefined ||\n\t\t!!getEnvValue(ENV_SESSION_DIR) ||\n\t\thasProcessStorageSelection(\"sessions\");\n\tconst selectedProjectTrusted =\n\t\tparsed.projectTrustOverride ??\n\t\t(hasProjectTrustInputs(sessionCwd) ? projectTrustStore.get(sessionCwd) : true) ??\n\t\tstartupDefaultProjectTrust === \"always\";\n\tisolateInteractiveHost &&= storagePinned || selectedProjectTrusted;\n\tstartupEarlyInputCapture ??= beginStartupInputCapture(sessionCwd, true, deprecationWarnings.length);\n\tconst autoTrustOnReloadCwd =\n\t\tparsed.projectTrustOverride === undefined && !hasProjectTrustInputs(sessionCwd) ? sessionCwd : undefined;\n\n\tconst builtinPackagePaths = options?.builtinPackagePaths;\n\tconst trustPromptMode: AppMode = appMode;\n\tconst projectTrustByCwd = new Map<string, boolean>();\n\tconst borrowedExtensionSourceTrustByPath = new Map<string, boolean>();\n\tlet deferredExtensionLoad = false;\n\tlet forceEagerInteractiveEngineResources = false;\n\tconst createRuntime: CreateAgentSessionRuntimeFactory = async (options) => (await prepareRuntime(options))();\n\tconst prepareRuntime: NonNullable<CreateAgentSessionRuntimeFactory[\"prepareResume\"]> = async ({\n\t\tcwd,\n\t\tagentDir,\n\t\tsessionManager,\n\t\tsessionStartEvent,\n\t\tprojectTrustContext,\n\t}) => {\n\t\tconst cachedProjectTrust = projectTrustByCwd.get(cwd);\n\t\tconst hasTrustInputs = hasProjectTrustInputs(cwd);\n\t\tconst storedProjectTrust = hasTrustInputs ? projectTrustStore.get(cwd) : null;\n\t\tconst initialProjectTrusted =\n\t\t\tparsed.projectTrustOverride ?? cachedProjectTrust ?? storedProjectTrust ?? !hasTrustInputs;\n\t\tconst shouldResolveProjectTrust =\n\t\t\t!isolateInteractiveHost &&\n\t\t\tparsed.projectTrustOverride === undefined &&\n\t\t\tcachedProjectTrust === undefined &&\n\t\t\thasTrustInputs;\n\t\tconst runtimeSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: initialProjectTrusted });\n\t\tconst existingSession = sessionManager.buildSessionContext();\n\t\tconst deferStartupTrust =\n\t\t\tsessionStartEvent === undefined &&\n\t\t\t!isolateInteractiveHost &&\n\t\t\t(trustPromptMode === \"interactive\" || engineEnv.child === \"1\") &&\n\t\t\t(shouldResolveProjectTrust || (resolvedExtensionPaths?.length ?? 0) > 0);\n\t\tlet completeStartupReload: (() => Promise<void>) | undefined;\n\t\tlet startupTrustContext: typeof projectTrustContext;\n\t\tconst resolvedExtensionPathCount = resolvedExtensionPaths?.length ?? 0;\n\t\tconst hasSystemPromptInput = parsed.systemPrompt !== undefined || (parsed.appendSystemPrompt?.length ?? 0) > 0;\n\t\tconst resolvedResourcePathCount =\n\t\t\t(resolvedSkillPaths?.length ?? 0) +\n\t\t\t(resolvedPromptTemplatePaths?.length ?? 0) +\n\t\t\t(resolvedThemePaths?.length ?? 0);\n\t\tconst deferInteractiveEngineResources = computeInteractiveEngineResourceDeferral({\n\t\t\tinteractiveEngineChild: engineEnv.child === \"1\" && !forceEagerInteractiveEngineResources,\n\t\t\thasSessionStartEvent: sessionStartEvent !== undefined,\n\t\t\tshouldResolveProjectTrust,\n\t\t\tstoredProjectTrust,\n\t\t\tresolvedExtensionPathCount,\n\t\t\tresolvedResourcePathCount,\n\t\t\thasSystemPromptInput,\n\t\t\tunknownFlagCount: parsed.unknownFlags.size,\n\t\t});\n\t\tconst deferExtensions =\n\t\t\t!deferStartupTrust &&\n\t\t\t!isolateInteractiveHost &&\n\t\t\t(deferInteractiveEngineResources ||\n\t\t\t\tcomputeDeferExtensions({\n\t\t\t\t\tappMode,\n\t\t\t\t\tstdinIsTTY: process.stdin.isTTY === true,\n\t\t\t\t\thasSessionStartEvent: sessionStartEvent !== undefined,\n\t\t\t\t\thelp: parsed.help,\n\t\t\t\t\tlistModels: parsed.listModels,\n\t\t\t\t\tshouldResolveProjectTrust,\n\t\t\t\t\tstoredProjectTrust,\n\t\t\t\t\tresolvedExtensionPathCount,\n\t\t\t\t\tresolvedResourcePathCount,\n\t\t\t\t\thasSystemPromptInput,\n\t\t\t\t\tunknownFlagCount: parsed.unknownFlags.size,\n\t\t\t\t\tprovider: parsed.provider,\n\t\t\t\t\tmodel: parsed.model,\n\t\t\t\t}));\n\t\tif (sessionStartEvent === undefined) {\n\t\t\tdeferredExtensionLoad = deferExtensions || deferStartupTrust;\n\t\t}\n\t\tconst getProjectTrustContext = () =>\n\t\t\tstartupTrustContext ??\n\t\t\tprojectTrustContext ??\n\t\t\tcreateProjectTrustContext({\n\t\t\t\tcwd,\n\t\t\t\tmode: sessionStartEvent === undefined ? trustPromptMode : appMode,\n\t\t\t\tsettingsManager: runtimeSettingsManager,\n\t\t\t\thasUI: sessionStartEvent === undefined && trustPromptMode === \"interactive\",\n\t\t\t});\n\t\tlet migrateAfterTrust = false;\n\t\tlet startupSession: AgentSession | undefined;\n\t\tlet storageFinalized = false;\n\t\tconst finalizeStartupStorage = async () => {\n\t\t\tif (sessionStartEvent !== undefined || storageFinalized) return;\n\t\t\tconst store = await refreshSessionStorage(sessionManager, parsed, runtimeSettingsManager, sessionStorage);\n\t\t\tif (store && startupSession) {\n\t\t\t\townedSessionManagerStores.delete(sessionManager);\n\t\t\t\townedSessionStores.set(startupSession, store);\n\t\t\t}\n\t\t\tawait applyInheritedWorkflowSessionClassification(sessionManager);\n\t\t\tif (parsed.name !== undefined) await sessionManager.appendSessionInfo(parsed.name.trim());\n\t\t\tstorageFinalized = true;\n\t\t};\n\t\tconst completeServices = await prepareAgentSessionServices({\n\t\t\tcwd,\n\t\t\tagentDir,\n\t\t\tsettingsManager: runtimeSettingsManager,\n\t\t\textensionFlagValues: parsed.unknownFlags,\n\t\t\tresourceLoaderReloadOptions: deferExtensions\n\t\t\t\t? { deferExtensions: true, deferResources: true }\n\t\t\t\t: shouldResolveProjectTrust || (!isolateInteractiveHost && (resolvedExtensionPaths?.length ?? 0) > 0)\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tdeferProjectTrust: deferStartupTrust\n\t\t\t\t\t\t\t\t? (complete) => {\n\t\t\t\t\t\t\t\t\t\tcompleteStartupReload = complete;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tonProjectTrustResolved: async () => {\n\t\t\t\t\t\t\t\tawait finalizeStartupStorage();\n\t\t\t\t\t\t\t\tengineLiveness?.projectTrustResolved();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresolveProjectTrust: shouldResolveProjectTrust\n\t\t\t\t\t\t\t\t? async ({ extensionsResult }) => {\n\t\t\t\t\t\t\t\t\t\tconst trusted = await resolveProjectTrusted({\n\t\t\t\t\t\t\t\t\t\t\tcwd,\n\t\t\t\t\t\t\t\t\t\t\ttrustStore: projectTrustStore,\n\t\t\t\t\t\t\t\t\t\t\tdefaultProjectTrust: runtimeSettingsManager.getDefaultProjectTrust(),\n\t\t\t\t\t\t\t\t\t\t\textensionsResult,\n\t\t\t\t\t\t\t\t\t\t\tprojectTrustContext: getProjectTrustContext(),\n\t\t\t\t\t\t\t\t\t\t\tonExtensionError: (message) => console.error(chalk.yellow(`Warning: ${message}`)),\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tprojectTrustByCwd.set(cwd, trusted);\n\t\t\t\t\t\t\t\t\t\tif (trusted && !initialProjectTrusted) {\n\t\t\t\t\t\t\t\t\t\t\tmigrateAfterTrust = true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn trusted;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tresolveBorrowedProjectTrust: async ({ source, extensionsResult }) => {\n\t\t\t\t\t\t\t\tconst cachedTrust = borrowedExtensionSourceTrustByPath.get(source);\n\t\t\t\t\t\t\t\tif (cachedTrust !== undefined) {\n\t\t\t\t\t\t\t\t\treturn cachedTrust;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst trusted = await resolveProjectTrusted({\n\t\t\t\t\t\t\t\t\tcwd: source,\n\t\t\t\t\t\t\t\t\ttrustStore: projectTrustStore,\n\t\t\t\t\t\t\t\t\ttrustOverride: parsed.projectTrustOverride,\n\t\t\t\t\t\t\t\t\tdefaultProjectTrust: runtimeSettingsManager.getDefaultProjectTrust(),\n\t\t\t\t\t\t\t\t\textensionsResult,\n\t\t\t\t\t\t\t\t\tprojectTrustContext: getProjectTrustContext(),\n\t\t\t\t\t\t\t\t\tpromptMessage: formatBorrowedExtensionSourceTrustPrompt(source),\n\t\t\t\t\t\t\t\t\tonExtensionError: (message) => console.error(chalk.yellow(`Warning: ${message}`)),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tborrowedExtensionSourceTrustByPath.set(source, trusted);\n\t\t\t\t\t\t\t\treturn trusted;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\tresourceLoaderOptions: {\n\t\t\t\tadditionalExtensionPaths: isolateInteractiveHost ? undefined : resolvedExtensionPaths,\n\t\t\t\tadditionalSkillPaths: resolvedSkillPaths,\n\t\t\t\tadditionalPromptTemplatePaths: resolvedPromptTemplatePaths,\n\t\t\t\tadditionalThemePaths: resolvedThemePaths,\n\t\t\t\tbuiltinPackagePaths,\n\t\t\t\tnoExtensions: isolateInteractiveHost || parsed.noExtensions,\n\t\t\t\tdisabledBuiltinExtensions: parsed.noMcp ? [\"mcp\"] : undefined,\n\t\t\t\tnoSkills: parsed.noSkills,\n\t\t\t\tnoPromptTemplates: parsed.noPromptTemplates,\n\t\t\t\tnoThemes: parsed.noThemes,\n\t\t\t\tnoContextFiles: parsed.noContextFiles,\n\t\t\t\tsystemPrompt: parsed.systemPrompt,\n\t\t\t\tappendSystemPrompt: parsed.appendSystemPrompt,\n\t\t\t\textensionFactories: isolateInteractiveHost ? undefined : extensionFactories,\n\t\t\t},\n\t\t});\n\t\treturn async () => {\n\t\t\tif (migrateAfterTrust) runMigrations(cwd, { projectTrusted: true });\n\t\t\tconst services = await completeServices();\n\t\t\tif (!deferStartupTrust) await finalizeStartupStorage();\n\t\t\tif (isolateInteractiveHost) limitMandatoryIntercomToTool(services.resourceLoader);\n\t\t\tconst { settingsManager, modelRuntime, resourceLoader } = services;\n\t\t\tconst diagnostics: AgentSessionRuntimeDiagnostic[] = [\n\t\t\t\t...services.diagnostics,\n\t\t\t\t...collectSettingsDiagnostics(settingsManager, \"runtime creation\"),\n\t\t\t\t...resourceLoader.getExtensions().errors.map(({ path, error }) => ({\n\t\t\t\t\ttype: \"error\" as const,\n\t\t\t\t\tmessage: `Failed to load extension \"${path}\": ${error}`,\n\t\t\t\t})),\n\t\t\t\t...(resourceLoader.getExtensions().warnings ?? []).map(({ path, warning }) => ({\n\t\t\t\t\ttype: \"warning\" as const,\n\t\t\t\t\tmessage: `Extension package \"${path}\": ${warning}`,\n\t\t\t\t})),\n\t\t\t];\n\t\t\tconst modelPatterns = isolateInteractiveHost\n\t\t\t\t? undefined\n\t\t\t\t: (parsed.models ?? settingsManager.getEnabledModels());\n\t\t\tconst scopedModels =\n\t\t\t\tmodelPatterns && modelPatterns.length > 0\n\t\t\t\t\t? deferredExtensionLoad\n\t\t\t\t\t\t? (await resolveModelScopeWithDiagnostics(modelPatterns, modelRuntime)).scopedModels\n\t\t\t\t\t\t: await resolveModelScope(modelPatterns, modelRuntime)\n\t\t\t\t\t: [];\n\t\t\tconst sessionArgs = isolateInteractiveHost\n\t\t\t\t? { ...parsed, provider: undefined, model: undefined, apiKey: undefined, models: undefined }\n\t\t\t\t: parsed;\n\t\t\tconst {\n\t\t\t\toptions: sessionOptions,\n\t\t\t\tcliThinkingFromModel,\n\t\t\t\tdiagnostics: sessionOptionDiagnostics,\n\t\t\t} = buildSessionOptions(\n\t\t\t\tsessionArgs,\n\t\t\t\tscopedModels,\n\t\t\t\tsessionManager.buildSessionContext().messages.length > 0,\n\t\t\t\tmodelRuntime,\n\t\t\t\tsettingsManager,\n\t\t\t);\n\t\t\tif (!deferStartupTrust) diagnostics.push(...sessionOptionDiagnostics);\n\n\t\t\tif (parsed.apiKey && !isolateInteractiveHost && !deferStartupTrust) {\n\t\t\t\tif (!sessionOptions.model) {\n\t\t\t\t\tdiagnostics.push({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\tmessage: \"--api-key requires a model to be specified via --model, --provider/--model, or --models\",\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Bound the complete CLI key operation—from credential mutation through\n\t\t\t\t\t// provider-scoped catalog refresh—with the established model-refresh budget.\n\t\t\t\t\tconst apiKeySignal = AbortSignal.timeout(INTERACTIVE_MODEL_REFRESH_TIMEOUT_MS);\n\t\t\t\t\tawait applyCliRuntimeApiKey(modelRuntime, sessionOptions.model.provider, parsed.apiKey, apiKeySignal);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst created = await createUnstartedAgentSessionFromServices(\n\t\t\t\t{\n\t\t\t\t\tservices,\n\t\t\t\t\tsessionManager,\n\t\t\t\t\tsessionStartEvent,\n\t\t\t\t\tmodel: sessionOptions.model,\n\t\t\t\t\tthinkingLevel: sessionOptions.thinkingLevel,\n\t\t\t\t\tscopedModels: sessionOptions.scopedModels,\n\t\t\t\t\ttools: sessionOptions.tools,\n\t\t\t\t\tbuiltins: parsed.noMcp ? { mcp: false } : undefined,\n\t\t\t\t\texcludedTools: resolveExcludedToolsForAppMode(appMode, sessionOptions.excludedTools),\n\t\t\t\t\tnoTools: sessionOptions.noTools,\n\t\t\t\t\tcustomTools: sessionOptions.customTools,\n\t\t\t\t},\n\t\t\t\t!isolateInteractiveHost && !deferStartupTrust,\n\t\t\t);\n\t\t\tstartupSession = created.session;\n\t\t\tif (completeStartupReload) {\n\t\t\t\tconst completeReload = completeStartupReload;\n\t\t\t\tlet completion: Promise<void> | undefined;\n\t\t\t\tservices.completeStartup = (context) =>\n\t\t\t\t\t(completion ??= (async () => {\n\t\t\t\t\t\tstartupTrustContext = context;\n\t\t\t\t\t\tawait completeReload();\n\t\t\t\t\t\tif (migrateAfterTrust) runMigrations(cwd, { projectTrusted: true });\n\t\t\t\t\t\tconst finalServices = await completeServices();\n\t\t\t\t\t\tconst extensionErrors = finalServices.resourceLoader.getExtensions().errors;\n\t\t\t\t\t\tif (extensionErrors.length > 0) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t`Failed to load extensions: ${extensionErrors.map(({ path, error }) => `${path}: ${error}`).join(\"; \")}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tservices.resourceLoader = finalServices.resourceLoader;\n\t\t\t\t\t\tservices.diagnostics = finalServices.diagnostics;\n\t\t\t\t\t\tconst patterns = parsed.models ?? settingsManager.getEnabledModels();\n\t\t\t\t\t\tconst finalScope = patterns?.length ? await resolveModelScope(patterns, modelRuntime) : [];\n\t\t\t\t\t\tconst finalSelection = buildSessionOptions(\n\t\t\t\t\t\t\tparsed,\n\t\t\t\t\t\t\tfinalScope,\n\t\t\t\t\t\t\texistingSession.messages.length > 0,\n\t\t\t\t\t\t\tmodelRuntime,\n\t\t\t\t\t\t\tsettingsManager,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfinalServices.diagnostics.push(...finalSelection.diagnostics);\n\t\t\t\t\t\tlet finalModel = finalSelection.options.model;\n\t\t\t\t\t\tif (!finalModel && existingSession.messages.length > 0 && existingSession.model) {\n\t\t\t\t\t\t\tfinalModel = await resolveRestoredModelReference(\n\t\t\t\t\t\t\t\texistingSession.model.provider,\n\t\t\t\t\t\t\t\texistingSession.model.modelId,\n\t\t\t\t\t\t\t\tmodelRuntime,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinalModel ??= (\n\t\t\t\t\t\t\tawait findInitialModel({\n\t\t\t\t\t\t\t\tscopedModels: [],\n\t\t\t\t\t\t\t\tisContinuing: existingSession.messages.length > 0,\n\t\t\t\t\t\t\t\tdefaultProvider: settingsManager.getDefaultProvider(),\n\t\t\t\t\t\t\t\tdefaultModelId: settingsManager.getDefaultModel(),\n\t\t\t\t\t\t\t\tdefaultThinkingLevel: settingsManager.getDefaultThinkingLevel(),\n\t\t\t\t\t\t\t\tmodelThinkingLevels: settingsManager.getAllModelThinkingLevels(),\n\t\t\t\t\t\t\t\tmodelRuntime,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t).model;\n\t\t\t\t\t\tif (parsed.apiKey && finalModel)\n\t\t\t\t\t\t\tawait applyCliRuntimeApiKey(\n\t\t\t\t\t\t\t\tmodelRuntime,\n\t\t\t\t\t\t\t\tfinalModel.provider,\n\t\t\t\t\t\t\t\tparsed.apiKey,\n\t\t\t\t\t\t\t\tAbortSignal.timeout(INTERACTIVE_MODEL_REFRESH_TIMEOUT_MS),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\tcreated.session.setScopedModels(finalScope);\n\t\t\t\t\t\tif (finalModel) {\n\t\t\t\t\t\t\tcreated.session.agent.state.model = finalModel;\n\t\t\t\t\t\t\tawait sessionManager.appendModelChange(finalModel.provider, finalModel.id);\n\t\t\t\t\t\t\tawait created.session.setThinkingLevel(\n\t\t\t\t\t\t\t\tfinalSelection.options.thinkingLevel ??\n\t\t\t\t\t\t\t\t\t(existingSession.messages.length > 0 ? created.session.thinkingLevel : undefined) ??\n\t\t\t\t\t\t\t\t\tsettingsManager.getModelThinkingLevel(finalModel.provider, finalModel.id) ??\n\t\t\t\t\t\t\t\t\tsettingsManager.getDefaultThinkingLevel() ??\n\t\t\t\t\t\t\t\t\tcreated.session.thinkingLevel,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait created.session.completeStartupResources(finalServices.resourceLoader);\n\t\t\t\t\t\tfor (const diagnostic of finalServices.diagnostics) reportDiagnostics([diagnostic]);\n\t\t\t\t\t})().catch((error) => {\n\t\t\t\t\t\tcompletion = undefined;\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}));\n\t\t\t}\n\t\t\tif (\n\t\t\t\tdeferInteractiveEngineResources &&\n\t\t\t\t!services.completeStartup &&\n\t\t\t\t(!created.session.model || isUnknownModel(created.session.model))\n\t\t\t) {\n\t\t\t\tconst store = ownedSessionStores.get(created.session);\n\t\t\t\tif (store) {\n\t\t\t\t\townedSessionStores.delete(created.session);\n\t\t\t\t\townedSessionManagerStores.set(sessionManager, store);\n\t\t\t\t}\n\t\t\t\tawait created.session.dispose();\n\t\t\t\tforceEagerInteractiveEngineResources = true;\n\t\t\t\treturn createRuntime({ cwd, agentDir, sessionManager, sessionStartEvent, projectTrustContext });\n\t\t\t}\n\t\t\tconst cliThinkingOverride = parsed.thinking !== undefined || cliThinkingFromModel;\n\t\t\tif (!isolateInteractiveHost && created.session.model && cliThinkingOverride) {\n\t\t\t\tawait created.session.setThinkingLevel(created.session.thinkingLevel);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...created,\n\t\t\t\tservices,\n\t\t\t\tdiagnostics,\n\t\t\t};\n\t\t};\n\t};\n\tcreateRuntime.prepareResume = prepareRuntime;\n\ttime(\"createRuntimeFactory\");\n\tconst runtimeCreationSpan = startTimingSpan(\"createAgentSessionRuntime\");\n\tconst runtime = await createRuntimeForMode(\n\t\tcreateRuntime,\n\t\tsessionManager.getCwd(),\n\t\tagentDir,\n\t\tsessionManager,\n\t\tisolateInteractiveHost,\n\t\t(options?.extensionFactories?.length ?? 0) > 0,\n\t\tparsed,\n\t\t{\n\t\t\textensions: resolvedExtensionPaths,\n\t\t\tskills: resolvedSkillPaths,\n\t\t\tpromptTemplates: resolvedPromptTemplatePaths,\n\t\t\tthemes: resolvedThemePaths,\n\t\t},\n\t);\n\tendTimingSpan(runtimeCreationSpan);\n\tconst { services, session, modelFallbackMessage } = runtime;\n\tconst { settingsManager, modelRuntime } = services;\n\tsetCapabilityOverrides(settingsManager.getTerminalCapabilityOverrides());\n\tapplyHttpProxySettings(settingsManager.getGlobalSettings().httpProxy);\n\tconfigureHttpDispatcher(settingsManager.getHttpIdleTimeoutMs());\n\n\t// Read piped stdin content (if any) - skip for RPC mode which uses stdin for JSON-RPC\n\tlet stdinContent: string | undefined;\n\tif (appMode !== \"rpc\" && !options?.internalInteractiveHarness) {\n\t\tstdinContent = await readPipedStdin();\n\t\tif (stdinContent !== undefined && appMode === \"interactive\") {\n\t\t\tappMode = \"print\";\n\t\t}\n\t}\n\ttime(\"readPipedStdin\");\n\n\tconst { initialMessage, initialImages } = await prepareInitialMessage(parsed, stdinContent);\n\ttime(\"prepareInitialMessage\");\n\tstartupEarlyInputCapture = await runFirstTimeSetup(appMode, settingsManager, startupEarlyInputCapture);\n\tinitTheme(settingsManager.getTheme(), appMode === \"interactive\");\n\ttime(\"initTheme\");\n\n\t// Show deprecation warnings in interactive mode\n\tif (appMode === \"interactive\" && deprecationWarnings.length > 0) {\n\t\tawait showDeprecationWarnings(deprecationWarnings);\n\t}\n\tstartupEarlyInputCapture ??= beginStartupInputCapture(sessionCwd, true);\n\n\tconst scopedModels = [...session.scopedModels];\n\ttime(\"resolveModelScope\");\n\tconst startupDiagnostics = deduplicateDiagnostics([...startupSettingsDiagnostics, ...runtime.diagnostics]);\n\tconst hasRuntimeErrors = runtime.diagnostics.some((diagnostic) => diagnostic.type === \"error\");\n\tif (appMode !== \"interactive\" || hasRuntimeErrors) reportDiagnostics(startupDiagnostics);\n\tif (hasRuntimeErrors) {\n\t\tstartupEarlyInputCapture?.consume();\n\t\tprocess.exit(1);\n\t}\n\ttime(\"createAgentSession\");\n\n\tif (appMode !== \"interactive\" && !session.model && !(engineEnv.child === \"1\" && services.completeStartup)) {\n\t\tconsole.error(chalk.red(formatNoModelsAvailableMessage()));\n\t\tstartupEarlyInputCapture?.consume();\n\t\tprocess.exit(1);\n\t}\n\n\tconst startupBenchmark = isTruthyEnvFlag(getEnvValue(ENV_STARTUP_BENCHMARK));\n\tif (startupBenchmark && appMode !== \"interactive\") {\n\t\tconsole.error(chalk.red(`Error: ${ENV_STARTUP_BENCHMARK} only supports interactive mode`));\n\t\tstartupEarlyInputCapture?.consume();\n\t\tprocess.exit(1);\n\t}\n\n\tif (appMode === \"rpc\") {\n\t\t// Standalone RPC preserves its eager catalog refresh. The isolated\n\t\t// interactive engine does not: /model owns its bounded refresh, while an\n\t\t// eager unbounded refresh can hold credential locks and lend its in-flight\n\t\t// promise to later cache-only or timed refreshes.\n\t\tif (shouldStartRpcCatalogRefresh(offlineMode, isInteractiveEngineChild())) {\n\t\t\tvoid modelRuntime.refresh().catch(() => {});\n\t\t}\n\t\tprintTimings();\n\t\tawait runRpcMode(runtime, { deferInteractiveEngineResources: deferredExtensionLoad });\n\t} else if (appMode === \"interactive\") {\n\t\tif (scopedModels.length > 0 && (parsed.verbose || settingsManager.getQuietStartup() === false)) {\n\t\t\tconsole.log(chalk.dim(`Model scope: ${formatScopedModelList(scopedModels)} ${chalk.gray(\"(ctrl+p cycle)\")}`));\n\t\t}\n\n\t\tconst interactiveMode = new InteractiveMode(runtime, {\n\t\t\tmigratedProviders,\n\t\t\tstartupDiagnostics,\n\t\t\tmodelFallbackMessage,\n\t\t\tautoTrustOnReloadCwd,\n\t\t\tholdTuiForStartupTrust:\n\t\t\t\tisolateInteractiveHost &&\n\t\t\t\tcomputeStartupTrustPromptPossible({\n\t\t\t\t\tprojectTrustOverride: parsed.projectTrustOverride,\n\t\t\t\t\thasTrustInputs: hasProjectTrustInputs(sessionCwd),\n\t\t\t\t\tstoredProjectTrust: projectTrustStore.get(sessionCwd),\n\t\t\t\t\tdefaultProjectTrust: startupDefaultProjectTrust,\n\t\t\t\t}),\n\t\t\tinitialMessage,\n\t\t\tinitialImages,\n\t\t\tinitialMessages: parsed.messages,\n\t\t\tverbose: parsed.verbose,\n\t\t\tinitialThemeSetting: parsed.useTheme,\n\t\t\tdeferredExtensionLoad,\n\t\t\tstartupInputCapture: startupEarlyInputCapture,\n\t\t\tdeferredModelScopePatterns: deferredExtensionLoad\n\t\t\t\t? (parsed.models ?? settingsManager.getEnabledModels())\n\t\t\t\t: undefined,\n\t\t\tdeferredModelScopePreserveThinking: parsed.thinking !== undefined,\n\t\t\tterminal: options?.internalInteractiveHarness?.terminal,\n\t\t});\n\t\toptions?.internalInteractiveHarness?.onMode?.(interactiveMode);\n\t\tif (startupBenchmark) {\n\t\t\tawait interactiveMode.init();\n\t\t\ttime(\"interactiveMode.init\");\n\t\t\tawait interactiveMode.ensureDeferredStartupComplete();\n\t\t\tprintTimings();\n\t\t\tinteractiveMode.stop();\n\t\t\tstopThemeWatcher();\n\t\t\tif (process.stdout.writableLength > 0) {\n\t\t\t\tawait new Promise<void>((resolve) => process.stdout.once(\"drain\", resolve));\n\t\t\t}\n\t\t\tif (process.stderr.writableLength > 0) {\n\t\t\t\tawait new Promise<void>((resolve) => process.stderr.once(\"drain\", resolve));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tprintTimings();\n\t\tawait interactiveMode.run();\n\t} else {\n\t\tprintTimings();\n\t\tconst exitCode = await runPrintMode(runtime, {\n\t\t\tmode: toPrintOutputMode(appMode),\n\t\t\tmessages: parsed.messages,\n\t\t\tinitialMessage,\n\t\t\tinitialImages,\n\t\t});\n\t\tstopThemeWatcher();\n\t\trestoreStdout();\n\t\tif (exitCode !== 0) {\n\t\t\tprocess.exitCode = exitCode;\n\t\t}\n\t\treturn;\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-session-host-rendering.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/chat-session-host-rendering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAyD,MAAM,wBAAwB,CAAC;AAQ/G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAIpE,wBAAgB,qBAAqB,CAAC,WAAW,SAAS,uBAAuB,EAChF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACZ,MAAM,EAAE,CAaV;AAED,wBAAgB,gCAAgC,CAAC,WAAW,SAAS,uBAAuB,EAC3F,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,GACX,MAAM,EAAE,CAqBV;AAED,wBAAgB,8BAA8B,CAAC,WAAW,SAAS,uBAAuB,EACzF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,GACX,MAAM,EAAE,CA0BV;AAED,wBAAgB,sBAAsB,CAAC,WAAW,SAAS,uBAAuB,EACjF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,GACX,MAAM,EAAE,CAIV;AAED,wBAAgB,uBAAuB,CAAC,WAAW,SAAS,uBAAuB,EAClF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACd,MAAM,EAAE,CAwBV;AAED,wBAAgB,uBAAuB,CAAC,WAAW,SAAS,uBAAuB,EAClF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,EACb,gBAAgB,UAAQ,GACtB,MAAM,EAAE,CAqBV;AAED,wBAAgB,sBAAsB,CAAC,WAAW,SAAS,uBAAuB,EACjF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,GACtC,SAAS,
|
|
1
|
+
{"version":3,"file":"chat-session-host-rendering.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/chat-session-host-rendering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAyD,MAAM,wBAAwB,CAAC;AAQ/G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAIpE,wBAAgB,qBAAqB,CAAC,WAAW,SAAS,uBAAuB,EAChF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACZ,MAAM,EAAE,CAaV;AAED,wBAAgB,gCAAgC,CAAC,WAAW,SAAS,uBAAuB,EAC3F,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,GACX,MAAM,EAAE,CAqBV;AAED,wBAAgB,8BAA8B,CAAC,WAAW,SAAS,uBAAuB,EACzF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,GACX,MAAM,EAAE,CA0BV;AAED,wBAAgB,sBAAsB,CAAC,WAAW,SAAS,uBAAuB,EACjF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,GACX,MAAM,EAAE,CAIV;AAED,wBAAgB,uBAAuB,CAAC,WAAW,SAAS,uBAAuB,EAClF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACd,MAAM,EAAE,CAwBV;AAED,wBAAgB,uBAAuB,CAAC,WAAW,SAAS,uBAAuB,EAClF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,EACb,gBAAgB,UAAQ,GACtB,MAAM,EAAE,CAqBV;AAED,wBAAgB,sBAAsB,CAAC,WAAW,SAAS,uBAAuB,EACjF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,GACtC,SAAS,CAgBX;AAED,wBAAgB,kBAAkB,CAAC,WAAW,SAAS,uBAAuB,EAC7E,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,KAAK,EAAE,MAAM,GACX,MAAM,CASR"}
|
|
@@ -124,7 +124,8 @@ export function renderChatSessionEntry(state, entry) {
|
|
|
124
124
|
}
|
|
125
125
|
if (isChatMessageEntry(entry)) {
|
|
126
126
|
const isStreaming = isChatSessionStreaming(state) && state.liveChat.isStreamingAssistantEntry(entry);
|
|
127
|
-
|
|
127
|
+
const options = chatMessageRenderOptions(state, isStreaming);
|
|
128
|
+
return renderChatMessageEntry(streamingWindowedEntry(state, entry, isStreaming), entry.kind === "tool" ? { ...options, ui: entryTui(state, entry) } : options);
|
|
128
129
|
}
|
|
129
130
|
if (!state.renderExtraEntry) {
|
|
130
131
|
return new Text("", 0, 0);
|
|
@@ -138,6 +139,7 @@ export function transcriptCacheKey(state, entry, index) {
|
|
|
138
139
|
entry.role,
|
|
139
140
|
renderIdentityKey(state, entry),
|
|
140
141
|
entryContentCacheKey(state, entry),
|
|
142
|
+
state.entryRevisions.get(entry) ?? 0,
|
|
141
143
|
]);
|
|
142
144
|
}
|
|
143
145
|
function streamingWindowedEntry(state, entry, isStreaming) {
|
|
@@ -166,6 +168,14 @@ function chatMessageRenderOptions(state, isStreaming) {
|
|
|
166
168
|
showImages: inherited?.showImages ?? true,
|
|
167
169
|
};
|
|
168
170
|
}
|
|
171
|
+
function entryTui(state, entry) {
|
|
172
|
+
return {
|
|
173
|
+
requestRender: () => {
|
|
174
|
+
state.entryRevisions.set(entry, (state.entryRevisions.get(entry) ?? 0) + 1);
|
|
175
|
+
state.requestRender?.();
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
}
|
|
169
179
|
function toolTui(state) {
|
|
170
180
|
return { requestRender: () => state.requestRender?.() };
|
|
171
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-session-host-rendering.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/chat-session-host-rendering.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Component, Spacer, Text, type TUI, truncateToWidth, visibleWidth } from \"@earendil-works/pi-tui\";\nimport {\n\ttype ChatMessageEntry,\n\ttype ChatMessageRenderOptions,\n\trenderChatMessageEntry,\n} from \"./chat-message-renderer.ts\";\nimport { setEditorBorderColor, setEditorFocused, setEditorPlaceholder } from \"./chat-session-host-editor.ts\";\nimport { isChatSessionStreaming } from \"./chat-session-host-runtime.ts\";\nimport type { ChatSessionHostState } from \"./chat-session-host-state.ts\";\nimport type { ChatSessionHostEntry } from \"./chat-session-host-types.ts\";\nimport { cacheKey, isChatMessageEntry, stripAnsi, tailStreamingText } from \"./chat-session-host-utils.ts\";\nimport type { ChatTranscriptEntryLike } from \"./chat-transcript.js\";\nimport { FooterComponent, UsageMeterComponent } from \"./footer.ts\";\nimport { WorkingStatusComponent } from \"./working-status.ts\";\n\nexport function renderChatSessionBody<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n\tbudget: number,\n): string[] {\n\tconst components: Component[] = [];\n\tstate.transcriptRenderSettingsKey = chatRenderSettingsCacheKey(state);\n\tif (state.transcript.length > 0) {\n\t\tcomponents.push(state.transcriptComponent);\n\t}\n\tif (state.statusMessage && !state.compacting) {\n\t\tcomponents.push(new Spacer(1));\n\t\tcomponents.push(new Text(state.style.dim(state.statusMessage), 2, 0));\n\t}\n\tstate.bodyViewport.setVisibleRows(budget);\n\tstate.bodyViewport.setComponents(components);\n\treturn state.bodyViewport.render(width);\n}\n\nexport function renderChatSessionPendingMessages<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n): string[] {\n\tif (\n\t\tstate.pendingSteeringMessages.length === 0 &&\n\t\tstate.pendingFollowUpMessages.length === 0 &&\n\t\tstate.compactionQueuedMessages.length === 0\n\t) {\n\t\treturn [];\n\t}\n\tconst lines = [state.style.blank(width)];\n\tfor (const message of state.pendingSteeringMessages) {\n\t\tlines.push(...pendingMessageLine(state, width, \"Steering\", message));\n\t}\n\tfor (const message of state.pendingFollowUpMessages) {\n\t\tlines.push(...pendingMessageLine(state, width, \"Follow-up\", message));\n\t}\n\tfor (const message of state.compactionQueuedMessages) {\n\t\tlines.push(...pendingMessageLine(state, width, \"Queued\", message.text));\n\t}\n\tconst hint = state.getActionKeyDisplay?.(\"app.message.dequeue\") ?? \"alt+up\";\n\tlines.push(...new Text(state.style.dim(`↳ ${hint} to edit all queued messages`), 1, 0).render(width));\n\treturn lines;\n}\n\nexport function renderChatSessionWorkingStatus<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n): string[] {\n\tif (!isChatSessionStreaming(state)) return [];\n\tif (state.statusMessage && !state.compacting) return [];\n\tconst palette = state.style.workingIndicatorPalette;\n\tconst useCallerStyling =\n\t\t!palette && state.style.workingIndicatorUseGlobalTheme !== true && process.env.NO_COLOR === undefined;\n\tif (state.compacting) {\n\t\tconst cancelHint = `(${state.getActionKeyDisplay?.(\"app.interrupt\") ?? \"esc\"} Cancel)`;\n\t\treturn new WorkingStatusComponent({\n\t\t\tframe: state.workingFrame,\n\t\t\tmessage: `${state.statusMessage || \"Compacting context...\"} ${cancelHint}`,\n\t\t\tpalette,\n\t\t\tspinnerColor: useCallerStyling ? (text) => state.style.accent(text) : undefined,\n\t\t\tspinnerBoldColor: useCallerStyling ? (text) => state.style.accentBold(text) : undefined,\n\t\t\tmessageColor: (text) => state.style.textMuted(text),\n\t\t}).render(width);\n\t}\n\tif (!state.workingLifecycleActive) return [];\n\treturn new WorkingStatusComponent({\n\t\tframe: state.workingFrame,\n\t\tmessage: state.workingMessage ?? \"Working...\",\n\t\tpalette,\n\t\tspinnerColor: useCallerStyling ? (text) => state.style.accent(text) : undefined,\n\t\tspinnerBoldColor: useCallerStyling ? (text) => state.style.accentBold(text) : undefined,\n\t\tmessageColor: (text) => state.style.textMuted(text),\n\t}).render(width);\n}\n\nexport function renderChatSessionUsage<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n): string[] {\n\tconst agentSession = state.getAgentSession?.();\n\tif (!agentSession) return [];\n\treturn new UsageMeterComponent(agentSession).render(width);\n}\n\nexport function renderChatSessionEditor<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n\tfocused: boolean,\n): string[] {\n\tconst disabled = state.isDisabled?.() === true;\n\tconst agentSession = state.getAgentSession?.();\n\tconst ruleHex = state.style.editorRuleColor(disabled, agentSession, {\n\t\tisBashMode: state.isBashMode,\n\t});\n\tif (!disabled && state.editor) {\n\t\tsetEditorFocused(state.editor, focused);\n\t\tsetEditorPlaceholder(state.editor, undefined);\n\t\tsetEditorBorderColor(state.editor, (text) => state.style.rule(ruleHex, text));\n\t\treturn state.editor.render(width);\n\t}\n\tif (state.editor) setEditorFocused(state.editor, false);\n\tconst rule = state.style.rule(ruleHex, \"─\".repeat(width));\n\tconst available = Math.max(1, width - 3);\n\tconst value = state.inputBuffer\n\t\t? state.style.text(truncateToWidth(state.inputBuffer, available)) + state.style.cursor()\n\t\t: disabled\n\t\t\t? \"\"\n\t\t\t: state.style.cursor();\n\tconst left = `${state.style.accentBold(\"❯\")} ${value}`;\n\tconst gap = Math.max(0, width - visibleWidth(stripAnsi(left)));\n\tconst body = left + \" \".repeat(gap);\n\treturn [rule, body, rule];\n}\n\nexport function renderChatSessionFooter<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n\tnavigationActive = false,\n): string[] {\n\tif (state.disposed) return [];\n\tconst agentSession = state.getAgentSession?.();\n\tstate.footerNavigationActive = navigationActive;\n\tif (agentSession && state.footerData) {\n\t\tstate.footer ??= new FooterComponent(\n\t\t\tagentSession,\n\t\t\tstate.footerData,\n\t\t\t{\n\t\t\t\tdim: (text) => state.style.dim(text),\n\t\t\t\tmuted: (text) => state.style.textMuted(text),\n\t\t\t\twarning: (text) => state.style.accent(text),\n\t\t\t},\n\t\t\t() => state.footerNavigationActive,\n\t\t);\n\t\tstate.footer.setSession(agentSession);\n\t\treturn state.footer.render(width);\n\t}\n\tstate.footer?.dispose();\n\tstate.footer = undefined;\n\treturn [];\n}\n\nexport function renderChatSessionEntry<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tentry: ChatSessionHostEntry<TExtraEntry>,\n): Component {\n\tif (state.extraEntries.includes(entry as TExtraEntry)) {\n\t\treturn state.renderExtraEntry?.(entry as TExtraEntry) ?? new Text(\"\", 0, 0);\n\t}\n\tif (isChatMessageEntry(entry)) {\n\t\tconst isStreaming = isChatSessionStreaming(state) && state.liveChat.isStreamingAssistantEntry(entry);\n\t\treturn renderChatMessageEntry(\n\t\t\tstreamingWindowedEntry(state, entry, isStreaming),\n\t\t\tchatMessageRenderOptions(state, isStreaming),\n\t\t);\n\t}\n\tif (!state.renderExtraEntry) {\n\t\treturn new Text(\"\", 0, 0);\n\t}\n\treturn state.renderExtraEntry(entry);\n}\n\nexport function transcriptCacheKey<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tentry: ChatSessionHostEntry<TExtraEntry>,\n\tindex: number,\n): string {\n\treturn cacheKey([\n\t\tstate.transcriptRenderSettingsKey,\n\t\tindex,\n\t\tentry.role,\n\t\trenderIdentityKey(state, entry),\n\t\tentryContentCacheKey(state, entry),\n\t]);\n}\n\nfunction streamingWindowedEntry<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tentry: ChatMessageEntry,\n\tisStreaming: boolean,\n): ChatMessageEntry {\n\tif (!isStreaming || !state.streamingTailWindowEnabled || state.bodyViewport.getScrollFromBottom() !== 0) {\n\t\treturn entry;\n\t}\n\tif (entry.kind !== \"assistant\") return entry;\n\tconst content = entry.message.content.map((item) => {\n\t\tif (item.type === \"text\") return { ...item, text: tailStreamingText(item.text) };\n\t\tif (item.type === \"thinking\") return { ...item, thinking: tailStreamingText(item.thinking) };\n\t\treturn item;\n\t});\n\treturn { ...entry, message: { ...entry.message, content } };\n}\n\nfunction chatMessageRenderOptions<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tisStreaming: boolean,\n): ChatMessageRenderOptions {\n\tconst inherited = state.getChatRenderSettings?.();\n\treturn {\n\t\t...inherited,\n\t\tui: toolTui(state),\n\t\tcwd: state.getCwd?.() ?? state.getAgentSession?.()?.sessionManager.getCwd() ?? process.cwd(),\n\t\tmarkdownTheme: inherited?.markdownTheme ?? state.getMarkdownTheme?.(),\n\t\tisStreaming,\n\t\tshowImages: inherited?.showImages ?? true,\n\t};\n}\n\nfunction toolTui<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n): Pick<TUI, \"requestRender\"> {\n\treturn { requestRender: () => state.requestRender?.() };\n}\n\nfunction chatRenderSettingsCacheKey<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n): string {\n\tconst inherited = state.getChatRenderSettings?.();\n\tconst markdownTransformersKey =\n\t\tinherited?.markdownTransformers?.map((transformer) => renderIdentityKey(state, transformer)).join(\",\") ?? \"\";\n\treturn cacheKey([\n\t\t\"settings\",\n\t\tinherited?.hideThinkingBlock === true,\n\t\tinherited?.hiddenThinkingLabel ?? \"\",\n\t\tinherited?.toolOutputExpanded === true,\n\t\tinherited?.showImages !== false,\n\t\tinherited?.imageWidthCells ?? null,\n\t\tinherited?.outputPad ?? null,\n\t\tinherited?.renderLatex !== false,\n\t\tmarkdownTransformersKey,\n\t\tstate.getCwd?.() ?? state.getAgentSession?.()?.sessionManager.getCwd() ?? process.cwd(),\n\t\tstate.bodyViewport.getScrollFromBottom() === 0,\n\t\tisChatSessionStreaming(state),\n\t]);\n}\n\nfunction entryContentCacheKey<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tentry: ChatSessionHostEntry<TExtraEntry>,\n): string {\n\tif (!isChatMessageEntry(entry)) return cacheKey([\"extra\"]);\n\tswitch (entry.kind) {\n\t\tcase \"task\":\n\t\t\treturn cacheKey([\"task\", renderIdentityKey(state, entry.task), entry.duplicate]);\n\t\tcase \"assistant\":\n\t\t\treturn cacheKey([\"assistant\", renderIdentityKey(state, entry.message)]);\n\t\tcase \"tool\":\n\t\t\treturn cacheKey([\n\t\t\t\t\"tool\",\n\t\t\t\tentry.toolCallId,\n\t\t\t\tentry.toolName,\n\t\t\t\tentry.isPartial === true,\n\t\t\t\tentry.result === undefined ? null : renderIdentityKey(state, entry.result),\n\t\t\t]);\n\t\tcase \"bashExecution\":\n\t\t\treturn cacheKey([\n\t\t\t\t\"bashExecution\",\n\t\t\t\tentry.isPartial === true,\n\t\t\t\tentry.message.command,\n\t\t\t\tentry.message.output,\n\t\t\t\tentry.message.exitCode ?? null,\n\t\t\t\tentry.message.cancelled,\n\t\t\t\tentry.message.truncated,\n\t\t\t\tentry.message.fullOutputPath ?? null,\n\t\t\t]);\n\t\tcase \"user\":\n\t\t\treturn cacheKey([\"user\", entry.text]);\n\t\tcase \"custom\":\n\t\t\treturn cacheKey([\"custom\", renderIdentityKey(state, entry.message)]);\n\t\tcase \"branchSummary\":\n\t\t\treturn cacheKey([\"branchSummary\", renderIdentityKey(state, entry.message)]);\n\t\tcase \"system\":\n\t\t\treturn cacheKey([\"system\", entry.text]);\n\t}\n}\n\nfunction renderIdentityKey<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tvalue: object,\n): string {\n\tconst existing = state.renderIdentityIds.get(value);\n\tif (existing !== undefined) return String(existing);\n\tconst id = state.nextRenderIdentityId;\n\tstate.nextRenderIdentityId += 1;\n\tstate.renderIdentityIds.set(value, id);\n\treturn String(id);\n}\n\nfunction pendingMessageLine<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n\tlabel: \"Steering\" | \"Follow-up\" | \"Queued\",\n\tmessage: string,\n): string[] {\n\tconst text = `${label}: ${message}`;\n\treturn new Text(state.style.dim(truncateToWidth(text, Math.max(1, width - 2))), 1, 0).render(width);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"chat-session-host-rendering.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/chat-session-host-rendering.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Component, Spacer, Text, type TUI, truncateToWidth, visibleWidth } from \"@earendil-works/pi-tui\";\nimport {\n\ttype ChatMessageEntry,\n\ttype ChatMessageRenderOptions,\n\trenderChatMessageEntry,\n} from \"./chat-message-renderer.ts\";\nimport { setEditorBorderColor, setEditorFocused, setEditorPlaceholder } from \"./chat-session-host-editor.ts\";\nimport { isChatSessionStreaming } from \"./chat-session-host-runtime.ts\";\nimport type { ChatSessionHostState } from \"./chat-session-host-state.ts\";\nimport type { ChatSessionHostEntry } from \"./chat-session-host-types.ts\";\nimport { cacheKey, isChatMessageEntry, stripAnsi, tailStreamingText } from \"./chat-session-host-utils.ts\";\nimport type { ChatTranscriptEntryLike } from \"./chat-transcript.js\";\nimport { FooterComponent, UsageMeterComponent } from \"./footer.ts\";\nimport { WorkingStatusComponent } from \"./working-status.ts\";\n\nexport function renderChatSessionBody<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n\tbudget: number,\n): string[] {\n\tconst components: Component[] = [];\n\tstate.transcriptRenderSettingsKey = chatRenderSettingsCacheKey(state);\n\tif (state.transcript.length > 0) {\n\t\tcomponents.push(state.transcriptComponent);\n\t}\n\tif (state.statusMessage && !state.compacting) {\n\t\tcomponents.push(new Spacer(1));\n\t\tcomponents.push(new Text(state.style.dim(state.statusMessage), 2, 0));\n\t}\n\tstate.bodyViewport.setVisibleRows(budget);\n\tstate.bodyViewport.setComponents(components);\n\treturn state.bodyViewport.render(width);\n}\n\nexport function renderChatSessionPendingMessages<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n): string[] {\n\tif (\n\t\tstate.pendingSteeringMessages.length === 0 &&\n\t\tstate.pendingFollowUpMessages.length === 0 &&\n\t\tstate.compactionQueuedMessages.length === 0\n\t) {\n\t\treturn [];\n\t}\n\tconst lines = [state.style.blank(width)];\n\tfor (const message of state.pendingSteeringMessages) {\n\t\tlines.push(...pendingMessageLine(state, width, \"Steering\", message));\n\t}\n\tfor (const message of state.pendingFollowUpMessages) {\n\t\tlines.push(...pendingMessageLine(state, width, \"Follow-up\", message));\n\t}\n\tfor (const message of state.compactionQueuedMessages) {\n\t\tlines.push(...pendingMessageLine(state, width, \"Queued\", message.text));\n\t}\n\tconst hint = state.getActionKeyDisplay?.(\"app.message.dequeue\") ?? \"alt+up\";\n\tlines.push(...new Text(state.style.dim(`↳ ${hint} to edit all queued messages`), 1, 0).render(width));\n\treturn lines;\n}\n\nexport function renderChatSessionWorkingStatus<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n): string[] {\n\tif (!isChatSessionStreaming(state)) return [];\n\tif (state.statusMessage && !state.compacting) return [];\n\tconst palette = state.style.workingIndicatorPalette;\n\tconst useCallerStyling =\n\t\t!palette && state.style.workingIndicatorUseGlobalTheme !== true && process.env.NO_COLOR === undefined;\n\tif (state.compacting) {\n\t\tconst cancelHint = `(${state.getActionKeyDisplay?.(\"app.interrupt\") ?? \"esc\"} Cancel)`;\n\t\treturn new WorkingStatusComponent({\n\t\t\tframe: state.workingFrame,\n\t\t\tmessage: `${state.statusMessage || \"Compacting context...\"} ${cancelHint}`,\n\t\t\tpalette,\n\t\t\tspinnerColor: useCallerStyling ? (text) => state.style.accent(text) : undefined,\n\t\t\tspinnerBoldColor: useCallerStyling ? (text) => state.style.accentBold(text) : undefined,\n\t\t\tmessageColor: (text) => state.style.textMuted(text),\n\t\t}).render(width);\n\t}\n\tif (!state.workingLifecycleActive) return [];\n\treturn new WorkingStatusComponent({\n\t\tframe: state.workingFrame,\n\t\tmessage: state.workingMessage ?? \"Working...\",\n\t\tpalette,\n\t\tspinnerColor: useCallerStyling ? (text) => state.style.accent(text) : undefined,\n\t\tspinnerBoldColor: useCallerStyling ? (text) => state.style.accentBold(text) : undefined,\n\t\tmessageColor: (text) => state.style.textMuted(text),\n\t}).render(width);\n}\n\nexport function renderChatSessionUsage<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n): string[] {\n\tconst agentSession = state.getAgentSession?.();\n\tif (!agentSession) return [];\n\treturn new UsageMeterComponent(agentSession).render(width);\n}\n\nexport function renderChatSessionEditor<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n\tfocused: boolean,\n): string[] {\n\tconst disabled = state.isDisabled?.() === true;\n\tconst agentSession = state.getAgentSession?.();\n\tconst ruleHex = state.style.editorRuleColor(disabled, agentSession, {\n\t\tisBashMode: state.isBashMode,\n\t});\n\tif (!disabled && state.editor) {\n\t\tsetEditorFocused(state.editor, focused);\n\t\tsetEditorPlaceholder(state.editor, undefined);\n\t\tsetEditorBorderColor(state.editor, (text) => state.style.rule(ruleHex, text));\n\t\treturn state.editor.render(width);\n\t}\n\tif (state.editor) setEditorFocused(state.editor, false);\n\tconst rule = state.style.rule(ruleHex, \"─\".repeat(width));\n\tconst available = Math.max(1, width - 3);\n\tconst value = state.inputBuffer\n\t\t? state.style.text(truncateToWidth(state.inputBuffer, available)) + state.style.cursor()\n\t\t: disabled\n\t\t\t? \"\"\n\t\t\t: state.style.cursor();\n\tconst left = `${state.style.accentBold(\"❯\")} ${value}`;\n\tconst gap = Math.max(0, width - visibleWidth(stripAnsi(left)));\n\tconst body = left + \" \".repeat(gap);\n\treturn [rule, body, rule];\n}\n\nexport function renderChatSessionFooter<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n\tnavigationActive = false,\n): string[] {\n\tif (state.disposed) return [];\n\tconst agentSession = state.getAgentSession?.();\n\tstate.footerNavigationActive = navigationActive;\n\tif (agentSession && state.footerData) {\n\t\tstate.footer ??= new FooterComponent(\n\t\t\tagentSession,\n\t\t\tstate.footerData,\n\t\t\t{\n\t\t\t\tdim: (text) => state.style.dim(text),\n\t\t\t\tmuted: (text) => state.style.textMuted(text),\n\t\t\t\twarning: (text) => state.style.accent(text),\n\t\t\t},\n\t\t\t() => state.footerNavigationActive,\n\t\t);\n\t\tstate.footer.setSession(agentSession);\n\t\treturn state.footer.render(width);\n\t}\n\tstate.footer?.dispose();\n\tstate.footer = undefined;\n\treturn [];\n}\n\nexport function renderChatSessionEntry<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tentry: ChatSessionHostEntry<TExtraEntry>,\n): Component {\n\tif (state.extraEntries.includes(entry as TExtraEntry)) {\n\t\treturn state.renderExtraEntry?.(entry as TExtraEntry) ?? new Text(\"\", 0, 0);\n\t}\n\tif (isChatMessageEntry(entry)) {\n\t\tconst isStreaming = isChatSessionStreaming(state) && state.liveChat.isStreamingAssistantEntry(entry);\n\t\tconst options = chatMessageRenderOptions(state, isStreaming);\n\t\treturn renderChatMessageEntry(\n\t\t\tstreamingWindowedEntry(state, entry, isStreaming),\n\t\t\tentry.kind === \"tool\" ? { ...options, ui: entryTui(state, entry) } : options,\n\t\t);\n\t}\n\tif (!state.renderExtraEntry) {\n\t\treturn new Text(\"\", 0, 0);\n\t}\n\treturn state.renderExtraEntry(entry);\n}\n\nexport function transcriptCacheKey<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tentry: ChatSessionHostEntry<TExtraEntry>,\n\tindex: number,\n): string {\n\treturn cacheKey([\n\t\tstate.transcriptRenderSettingsKey,\n\t\tindex,\n\t\tentry.role,\n\t\trenderIdentityKey(state, entry),\n\t\tentryContentCacheKey(state, entry),\n\t\tstate.entryRevisions.get(entry) ?? 0,\n\t]);\n}\n\nfunction streamingWindowedEntry<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tentry: ChatMessageEntry,\n\tisStreaming: boolean,\n): ChatMessageEntry {\n\tif (!isStreaming || !state.streamingTailWindowEnabled || state.bodyViewport.getScrollFromBottom() !== 0) {\n\t\treturn entry;\n\t}\n\tif (entry.kind !== \"assistant\") return entry;\n\tconst content = entry.message.content.map((item) => {\n\t\tif (item.type === \"text\") return { ...item, text: tailStreamingText(item.text) };\n\t\tif (item.type === \"thinking\") return { ...item, thinking: tailStreamingText(item.thinking) };\n\t\treturn item;\n\t});\n\treturn { ...entry, message: { ...entry.message, content } };\n}\n\nfunction chatMessageRenderOptions<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tisStreaming: boolean,\n): ChatMessageRenderOptions {\n\tconst inherited = state.getChatRenderSettings?.();\n\treturn {\n\t\t...inherited,\n\t\tui: toolTui(state),\n\t\tcwd: state.getCwd?.() ?? state.getAgentSession?.()?.sessionManager.getCwd() ?? process.cwd(),\n\t\tmarkdownTheme: inherited?.markdownTheme ?? state.getMarkdownTheme?.(),\n\t\tisStreaming,\n\t\tshowImages: inherited?.showImages ?? true,\n\t};\n}\n\nfunction entryTui<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tentry: ChatMessageEntry,\n): Pick<TUI, \"requestRender\"> {\n\treturn {\n\t\trequestRender: () => {\n\t\t\tstate.entryRevisions.set(entry, (state.entryRevisions.get(entry) ?? 0) + 1);\n\t\t\tstate.requestRender?.();\n\t\t},\n\t};\n}\n\nfunction toolTui<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n): Pick<TUI, \"requestRender\"> {\n\treturn { requestRender: () => state.requestRender?.() };\n}\n\nfunction chatRenderSettingsCacheKey<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n): string {\n\tconst inherited = state.getChatRenderSettings?.();\n\tconst markdownTransformersKey =\n\t\tinherited?.markdownTransformers?.map((transformer) => renderIdentityKey(state, transformer)).join(\",\") ?? \"\";\n\treturn cacheKey([\n\t\t\"settings\",\n\t\tinherited?.hideThinkingBlock === true,\n\t\tinherited?.hiddenThinkingLabel ?? \"\",\n\t\tinherited?.toolOutputExpanded === true,\n\t\tinherited?.showImages !== false,\n\t\tinherited?.imageWidthCells ?? null,\n\t\tinherited?.outputPad ?? null,\n\t\tinherited?.renderLatex !== false,\n\t\tmarkdownTransformersKey,\n\t\tstate.getCwd?.() ?? state.getAgentSession?.()?.sessionManager.getCwd() ?? process.cwd(),\n\t\tstate.bodyViewport.getScrollFromBottom() === 0,\n\t\tisChatSessionStreaming(state),\n\t]);\n}\n\nfunction entryContentCacheKey<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tentry: ChatSessionHostEntry<TExtraEntry>,\n): string {\n\tif (!isChatMessageEntry(entry)) return cacheKey([\"extra\"]);\n\tswitch (entry.kind) {\n\t\tcase \"task\":\n\t\t\treturn cacheKey([\"task\", renderIdentityKey(state, entry.task), entry.duplicate]);\n\t\tcase \"assistant\":\n\t\t\treturn cacheKey([\"assistant\", renderIdentityKey(state, entry.message)]);\n\t\tcase \"tool\":\n\t\t\treturn cacheKey([\n\t\t\t\t\"tool\",\n\t\t\t\tentry.toolCallId,\n\t\t\t\tentry.toolName,\n\t\t\t\tentry.isPartial === true,\n\t\t\t\tentry.result === undefined ? null : renderIdentityKey(state, entry.result),\n\t\t\t]);\n\t\tcase \"bashExecution\":\n\t\t\treturn cacheKey([\n\t\t\t\t\"bashExecution\",\n\t\t\t\tentry.isPartial === true,\n\t\t\t\tentry.message.command,\n\t\t\t\tentry.message.output,\n\t\t\t\tentry.message.exitCode ?? null,\n\t\t\t\tentry.message.cancelled,\n\t\t\t\tentry.message.truncated,\n\t\t\t\tentry.message.fullOutputPath ?? null,\n\t\t\t]);\n\t\tcase \"user\":\n\t\t\treturn cacheKey([\"user\", entry.text]);\n\t\tcase \"custom\":\n\t\t\treturn cacheKey([\"custom\", renderIdentityKey(state, entry.message)]);\n\t\tcase \"branchSummary\":\n\t\t\treturn cacheKey([\"branchSummary\", renderIdentityKey(state, entry.message)]);\n\t\tcase \"system\":\n\t\t\treturn cacheKey([\"system\", entry.text]);\n\t}\n}\n\nfunction renderIdentityKey<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\tvalue: object,\n): string {\n\tconst existing = state.renderIdentityIds.get(value);\n\tif (existing !== undefined) return String(existing);\n\tconst id = state.nextRenderIdentityId;\n\tstate.nextRenderIdentityId += 1;\n\tstate.renderIdentityIds.set(value, id);\n\treturn String(id);\n}\n\nfunction pendingMessageLine<TExtraEntry extends ChatTranscriptEntryLike>(\n\tstate: ChatSessionHostState<TExtraEntry>,\n\twidth: number,\n\tlabel: \"Steering\" | \"Follow-up\" | \"Queued\",\n\tmessage: string,\n): string[] {\n\tconst text = `${label}: ${message}`;\n\treturn new Text(state.style.dim(truncateToWidth(text, Math.max(1, width - 2))), 1, 0).render(width);\n}\n"]}
|
|
@@ -68,6 +68,8 @@ export declare class ChatSessionHostState<TExtraEntry extends ChatTranscriptEntr
|
|
|
68
68
|
transcriptComponent: ChatTranscriptComponent<ChatSessionHostEntry<TExtraEntry>>;
|
|
69
69
|
transcriptRenderSettingsKey: string;
|
|
70
70
|
renderIdentityIds: WeakMap<object, number>;
|
|
71
|
+
/** Bumped when a rendered entry redraws itself (a tool renderer's `invalidate`), so its cached rows are rebuilt. */
|
|
72
|
+
entryRevisions: WeakMap<object, number>;
|
|
71
73
|
nextRenderIdentityId: number;
|
|
72
74
|
liveChat: LiveChatEntriesController;
|
|
73
75
|
editor: EditorComponent | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-session-host-state.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/chat-session-host-state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat-session-host-state.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/chat-session-host-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,8 @@ export class ChatSessionHostState {
|
|
|
56
56
|
transcriptComponent;
|
|
57
57
|
transcriptRenderSettingsKey = "";
|
|
58
58
|
renderIdentityIds = new WeakMap();
|
|
59
|
+
/** Bumped when a rendered entry redraws itself (a tool renderer's `invalidate`), so its cached rows are rebuilt. */
|
|
60
|
+
entryRevisions = new WeakMap();
|
|
59
61
|
nextRenderIdentityId = 1;
|
|
60
62
|
liveChat;
|
|
61
63
|
editor;
|