@bastani/atomic 0.9.41 → 0.9.42-alpha.1
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 +49 -0
- package/dist/builtin/intercom/CHANGELOG.md +13 -0
- package/dist/builtin/intercom/README.md +7 -3
- package/dist/builtin/intercom/broker/broker-status.ts +48 -0
- package/dist/builtin/intercom/broker/broker.ts +90 -9
- package/dist/builtin/intercom/broker/client.ts +112 -12
- package/dist/builtin/intercom/broker/control.ts +225 -0
- package/dist/builtin/intercom/broker/multinode-router.ts +32 -39
- package/dist/builtin/intercom/broker/paths.ts +4 -0
- package/dist/builtin/intercom/broker/pending-send-registry.ts +27 -5
- package/dist/builtin/intercom/broker/shared-storage-setting.ts +60 -0
- package/dist/builtin/intercom/broker/spawn.ts +13 -4
- package/dist/builtin/intercom/broker/sql-lease-store.ts +23 -0
- package/dist/builtin/intercom/broker/watchdog.ts +105 -0
- package/dist/builtin/intercom/index.bundle.mjs +200 -22
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/intercom/types.ts +34 -2
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +1 -0
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/workflows/CHANGELOG.md +12 -0
- package/dist/builtin/workflows/README.md +10 -0
- package/dist/builtin/workflows/builtin/{chunk-txbc93t6.js → chunk-3s95f7ry.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-n2gkzkty.js → chunk-edhf30ef.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-8x61e0s7.js → chunk-frqxd4d1.js} +18 -9
- package/dist/builtin/workflows/builtin/goal.js +2 -2
- package/dist/builtin/workflows/builtin/index.js +3 -3
- package/dist/builtin/workflows/builtin/ralph.js +2 -2
- package/dist/builtin/workflows/package.json +6 -1
- package/dist/builtin/workflows/src/authoring.d.ts +3 -1
- package/dist/builtin/workflows/src/durable/journal/internal.d.ts +13 -0
- package/dist/builtin/workflows/src/durable/journal/resolution.d.ts +2 -0
- package/dist/builtin/workflows/src/durable/journal/sql-run-journal.d.ts +1 -0
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +88554 -82820
- package/dist/builtin/workflows/src/extension/local-worker-entry.mjs +72635 -0
- package/dist/builtin/workflows/src/index.js +53824 -5907
- package/dist/builtin/workflows/src/local-worker-entry.mjs +72635 -0
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +7 -0
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +2 -0
- package/dist/builtin/workflows/src/workers/public-options.d.ts +31 -0
- package/dist/bun/app-host-modules.d.ts +9 -0
- package/dist/bun/app-host-modules.d.ts.map +1 -0
- package/dist/bun/app-host-modules.js +10 -0
- package/dist/bun/app-host-modules.js.map +1 -0
- package/dist/bun/cli.d.ts +3 -1
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js +15 -1
- package/dist/bun/cli.js.map +1 -1
- package/dist/bun/internal-intercom-broker.d.ts +17 -0
- package/dist/bun/internal-intercom-broker.d.ts.map +1 -1
- package/dist/bun/internal-intercom-broker.js +29 -0
- package/dist/bun/internal-intercom-broker.js.map +1 -1
- package/dist/bun/internal-workflow-worker.d.ts +4 -0
- package/dist/bun/internal-workflow-worker.d.ts.map +1 -0
- package/dist/bun/internal-workflow-worker.js +37 -0
- package/dist/bun/internal-workflow-worker.js.map +1 -0
- package/dist/bun/split-loader.js +10 -2
- package/dist/bun/split-loader.js.map +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +3 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/intercom-command.d.ts +15 -0
- package/dist/cli/intercom-command.d.ts.map +1 -0
- package/dist/cli/intercom-command.js +87 -0
- package/dist/cli/intercom-command.js.map +1 -0
- package/dist/cli/storage-command.d.ts +39 -0
- package/dist/cli/storage-command.d.ts.map +1 -0
- package/dist/cli/storage-command.js +367 -0
- package/dist/cli/storage-command.js.map +1 -0
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +5 -1
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +1 -0
- 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-tasks.d.ts.map +1 -1
- package/dist/core/agent-session-tasks.js +1 -0
- package/dist/core/agent-session-tasks.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +1 -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 +1 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +2 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/builtin-install-layout.d.ts +6 -0
- package/dist/core/builtin-install-layout.d.ts.map +1 -1
- package/dist/core/builtin-install-layout.js +9 -0
- package/dist/core/builtin-install-layout.js.map +1 -1
- package/dist/core/child-session-options.d.ts.map +1 -1
- package/dist/core/child-session-options.js +3 -0
- package/dist/core/child-session-options.js.map +1 -1
- package/dist/core/exec.js +2 -2
- package/dist/core/exec.js.map +1 -1
- package/dist/core/export-html/template.css +9 -0
- package/dist/core/export-html/template.js +165 -45
- package/dist/core/extensions/loader-host-modules.d.ts +6 -0
- package/dist/core/extensions/loader-host-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-host-modules.js +12 -1
- package/dist/core/extensions/loader-host-modules.js.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.d.ts +6 -0
- package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.js +18 -0
- package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
- package/dist/core/extensions/message-types.d.ts +4 -0
- package/dist/core/extensions/message-types.d.ts.map +1 -1
- package/dist/core/extensions/message-types.js.map +1 -1
- package/dist/core/fast-model-routing-transport.d.ts.map +1 -1
- package/dist/core/fast-model-routing-transport.js +5 -1
- package/dist/core/fast-model-routing-transport.js.map +1 -1
- package/dist/core/intercom-broker-control.d.ts +67 -0
- package/dist/core/intercom-broker-control.d.ts.map +1 -0
- package/dist/core/intercom-broker-control.js +17 -0
- package/dist/core/intercom-broker-control.js.map +1 -0
- package/dist/core/model-runtime-streaming.d.ts.map +1 -1
- package/dist/core/model-runtime-streaming.js +38 -1
- package/dist/core/model-runtime-streaming.js.map +1 -1
- package/dist/core/package-manager-git.d.ts +2 -2
- package/dist/core/package-manager-git.d.ts.map +1 -1
- package/dist/core/package-manager-git.js.map +1 -1
- package/dist/core/package-manager-manifest.d.ts.map +1 -1
- package/dist/core/package-manager-manifest.js +9 -1
- package/dist/core/package-manager-manifest.js.map +1 -1
- package/dist/core/package-manager-npm.d.ts +2 -2
- package/dist/core/package-manager-npm.d.ts.map +1 -1
- package/dist/core/package-manager-npm.js.map +1 -1
- package/dist/core/package-manager-paths.d.ts +7 -7
- package/dist/core/package-manager-paths.d.ts.map +1 -1
- package/dist/core/package-manager-paths.js.map +1 -1
- package/dist/core/package-manager-storage-adapters.d.ts +7 -0
- package/dist/core/package-manager-storage-adapters.d.ts.map +1 -0
- package/dist/core/package-manager-storage-adapters.js +76 -0
- package/dist/core/package-manager-storage-adapters.js.map +1 -0
- package/dist/core/package-manager-types.d.ts +4 -0
- package/dist/core/package-manager-types.d.ts.map +1 -1
- package/dist/core/package-manager-types.js.map +1 -1
- package/dist/core/provider-rate-limits.d.ts +23 -0
- package/dist/core/provider-rate-limits.d.ts.map +1 -0
- package/dist/core/provider-rate-limits.js +113 -0
- package/dist/core/provider-rate-limits.js.map +1 -0
- package/dist/core/provider-request-admission.d.ts +7 -0
- package/dist/core/provider-request-admission.d.ts.map +1 -0
- package/dist/core/provider-request-admission.js +91 -0
- package/dist/core/provider-request-admission.js.map +1 -0
- package/dist/core/resource-admission-scope.d.ts +4 -0
- package/dist/core/resource-admission-scope.d.ts.map +1 -0
- package/dist/core/resource-admission-scope.js +9 -0
- package/dist/core/resource-admission-scope.js.map +1 -0
- package/dist/core/sdk-types.d.ts +16 -0
- 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 +2 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +18 -2
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-lifecycle-work.d.ts +1 -0
- package/dist/core/session-lifecycle-work.d.ts.map +1 -1
- package/dist/core/session-lifecycle-work.js +1 -0
- package/dist/core/session-lifecycle-work.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +3 -0
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +6 -0
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-schema.d.ts +22 -0
- package/dist/core/settings-schema.d.ts.map +1 -1
- package/dist/core/settings-schema.js +18 -1
- package/dist/core/settings-schema.js.map +1 -1
- package/dist/core/storage/index.d.ts +1 -0
- package/dist/core/storage/index.d.ts.map +1 -1
- package/dist/core/storage/index.js +1 -0
- package/dist/core/storage/index.js.map +1 -1
- package/dist/core/storage/node-sqlite.d.ts +2 -1
- package/dist/core/storage/node-sqlite.d.ts.map +1 -1
- package/dist/core/storage/node-sqlite.js +5 -4
- package/dist/core/storage/node-sqlite.js.map +1 -1
- package/dist/core/storage/provider.d.ts +6 -0
- package/dist/core/storage/provider.d.ts.map +1 -1
- package/dist/core/storage/provider.js +27 -7
- package/dist/core/storage/provider.js.map +1 -1
- package/dist/core/storage/sqlite-facade.d.ts +49 -0
- package/dist/core/storage/sqlite-facade.d.ts.map +1 -0
- package/dist/core/storage/sqlite-facade.js +180 -0
- package/dist/core/storage/sqlite-facade.js.map +1 -0
- package/dist/core/storage/storage-status.d.ts +81 -0
- package/dist/core/storage/storage-status.d.ts.map +1 -0
- package/dist/core/storage/storage-status.js +409 -0
- package/dist/core/storage/storage-status.js.map +1 -0
- package/dist/core/tasks/supervisor.d.ts +2 -1
- package/dist/core/tasks/supervisor.d.ts.map +1 -1
- package/dist/core/tasks/supervisor.js +105 -4
- package/dist/core/tasks/supervisor.js.map +1 -1
- package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
- package/dist/core/tools/bash-pty-native.js +1 -1
- package/dist/core/tools/bash-pty-native.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +28 -2
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +3 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +7 -3
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.d.ts +9 -1
- package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
- package/dist/modes/interactive/components/chat-message-renderer.js +16 -8
- package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +5 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +69 -2
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.d.ts +1 -1
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.js +2 -2
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js +80 -22
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +3 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +6 -2
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +6 -2
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive-engine/engine-health.d.ts +8 -4
- package/dist/modes/interactive-engine/engine-health.d.ts.map +1 -1
- package/dist/modes/interactive-engine/engine-health.js +41 -6
- package/dist/modes/interactive-engine/engine-health.js.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
- package/dist/modes/interactive-engine/isolated-runtime.js +19 -17
- package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
- package/dist/modes/interactive-engine/remote-queue-pause.js +1 -1
- package/dist/modes/interactive-engine/remote-queue-pause.js.map +1 -1
- package/dist/modes/rpc/rpc-input-scheduler.d.ts +1 -0
- package/dist/modes/rpc/rpc-input-scheduler.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-input-scheduler.js +4 -1
- package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -1
- package/dist/modes/rpc/rpc-input.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-input.js +29 -7
- package/dist/modes/rpc/rpc-input.js.map +1 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +14 -0
- package/dist/utils/shell.js.map +1 -1
- package/docs/custom-provider/oauth.md +8 -1
- package/docs/extensions/api-reference.md +2 -0
- package/docs/intercom/operations.md +17 -8
- package/docs/intercom/reference.md +1 -1
- package/docs/keybindings.md +1 -1
- package/docs/packages/authoring.md +15 -0
- package/docs/packages.md +3 -2
- package/docs/providers.md +2 -0
- package/docs/reference/cli.md +17 -0
- package/docs/sdk.md +37 -0
- package/docs/settings.md +33 -2
- package/docs/storage.md +191 -219
- package/docs/usage.md +1 -1
- package/docs/workflows/api-reference.md +50 -0
- package/docs/workflows/operations.md +44 -1
- package/docs/workflows.md +25 -0
- package/examples/extensions/gondolin/package-lock.json +14 -24
- package/examples/extensions/gondolin/package.json +1 -1
- package/npm-shrinkwrap.json +35 -35
- package/package.json +4 -4
- package/schemas/settings.schema.json +87 -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 { drainPendingOAuthRotations } from \"@bastani/pi-ai\";\nimport { 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}\n/**\n * Ends a one-shot command. A model refresh or credential print may have started an OAuth token exchange whose caller\n * already gave up; the provider may have rotated the login, so its result is persisted if it arrives within the bound.\n */\nasync function exitAfterCommand(): Promise<void> {\n\tconst exitCode = process.exitCode ?? 0;\n\tawait drainPendingOAuthRotations();\n\tawait drainProcessStdio();\n\tprocess.exit(exitCode);\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\tawait exitAfterCommand();\n\t\treturn;\n\t}\n\tif (await handleConfigCommand(args, { extensionFactories })) {\n\t\treturn;\n\t}\n\tif (await runAuthCommand(args)) {\n\t\tawait exitAfterCommand();\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\t// runPrintMode disposed the runtime, which already waited the bounded OAuth drain. A token exchange still\n\t\t// running is hung and would keep the process alive, so end it instead of waiting for the provider.\n\t\tif (!(await drainPendingOAuthRotations(0))) {\n\t\t\tawait drainProcessStdio();\n\t\t\tprocess.exit(process.exitCode ?? 0);\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 { drainPendingOAuthRotations } from \"@bastani/pi-ai\";\nimport { 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\tprocessSharedStorageSelection,\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}\n/**\n * Ends a one-shot command. A model refresh or credential print may have started an OAuth token exchange whose caller\n * already gave up; the provider may have rotated the login, so its result is persisted if it arrives within the bound.\n */\nasync function exitAfterCommand(): Promise<void> {\n\tconst exitCode = process.exitCode ?? 0;\n\tawait drainPendingOAuthRotations();\n\tawait drainProcessStdio();\n\tprocess.exit(exitCode);\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\tawait exitAfterCommand();\n\t\treturn;\n\t}\n\tif (await handleConfigCommand(args, { extensionFactories })) {\n\t\treturn;\n\t}\n\tif (await runAuthCommand(args)) {\n\t\tawait exitAfterCommand();\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\tif (args[0] === \"storage\") {\n\t\tconst { runStorageCommand } = await import(\"./cli/storage-command.js\");\n\t\tprocess.exitCode = await runStorageCommand(args.slice(1), { cwd, agentDir });\n\t\tawait exitAfterCommand();\n\t\treturn;\n\t}\n\tif (args[0] === \"intercom\") {\n\t\tconst { runIntercomCommand } = await import(\"./cli/intercom-command.js\");\n\t\tprocess.exitCode = await runIntercomCommand(args.slice(1), { agentDir });\n\t\tawait exitAfterCommand();\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\t// The Intercom broker loads the shared storage adapter in its own process and only logs a failure, so a session\n\t// warns when this executable cannot load it. Load-only, concurrent with startup; the engine child leaves it to its host.\n\tconst globalStorage = bootstrapSettingsManager.getGlobalSettings().storage;\n\tconst sharedStorageWarning =\n\t\tengineEnv.child !== \"1\" &&\n\t\t(processSharedStorageSelection() !== undefined || (globalStorage !== undefined && \"adapter\" in globalStorage))\n\t\t\t? import(\"./core/storage/storage-status.js\")\n\t\t\t\t\t.then(({ checkSharedStorageAdapter }) => checkSharedStorageAdapter(agentDir, globalStorage))\n\t\t\t\t\t.catch(() => undefined)\n\t\t\t: undefined;\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 storageWarning = await sharedStorageWarning;\n\tconst startupDiagnostics = deduplicateDiagnostics([\n\t\t...startupSettingsDiagnostics,\n\t\t...runtime.diagnostics,\n\t\t...(storageWarning === undefined ? [] : [{ type: \"warning\" as const, message: storageWarning }]),\n\t]);\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\t// runPrintMode disposed the runtime, which already waited the bounded OAuth drain. A token exchange still\n\t\t// running is hung and would keep the process alive, so end it instead of waiting for the provider.\n\t\tif (!(await drainPendingOAuthRotations(0))) {\n\t\t\tawait drainProcessStdio();\n\t\t\tprocess.exit(process.exitCode ?? 0);\n\t\t}\n\t\treturn;\n\t}\n}\n"]}
|
|
@@ -15,7 +15,9 @@ export declare class AssistantMessageComponent extends Container {
|
|
|
15
15
|
private hasToolCalls;
|
|
16
16
|
private isStreaming;
|
|
17
17
|
private renderLatex;
|
|
18
|
-
|
|
18
|
+
private messageId?;
|
|
19
|
+
private timestamp?;
|
|
20
|
+
constructor(message?: AssistantMessage, hideThinkingBlock?: boolean, markdownTheme?: MarkdownTheme, hiddenThinkingLabel?: string, outputPad?: number, markdownTransformers?: readonly MarkdownTransformer[], isStreaming?: boolean, renderLatex?: boolean, messageId?: string, timestamp?: string);
|
|
19
21
|
invalidate(): void;
|
|
20
22
|
setHideThinkingBlock(hide: boolean): void;
|
|
21
23
|
setHiddenThinkingLabel(label: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistant-message.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/assistant-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAY,KAAK,aAAa,EAAgB,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAQ7E;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,SAAS;IACvD,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAU;
|
|
1
|
+
{"version":3,"file":"assistant-message.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/assistant-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAY,KAAK,aAAa,EAAgB,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAQ7E;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,SAAS;IACvD,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAS;IAE3B,YACC,OAAO,CAAC,EAAE,gBAAgB,EAC1B,iBAAiB,UAAQ,EACzB,aAAa,GAAE,aAAkC,EACjD,mBAAmB,SAAgB,EACnC,SAAS,SAAI,EACb,oBAAoB,GAAE,SAAS,mBAAmB,EAAO,EAEzD,WAAW,UAAQ,EACnB,WAAW,UAAO,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAmBlB;IAEQ,UAAU,IAAI,IAAI,CAK1B;IAED,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAKxC;IAED,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1C;IAED,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKlC;IAEQ,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CASvC;IAED,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,UAAmB,GAAG,IAAI,CAwG7E;CACD"}
|
|
@@ -18,9 +18,11 @@ export class AssistantMessageComponent extends Container {
|
|
|
18
18
|
hasToolCalls = false;
|
|
19
19
|
isStreaming = false;
|
|
20
20
|
renderLatex;
|
|
21
|
+
messageId;
|
|
22
|
+
timestamp;
|
|
21
23
|
constructor(message, hideThinkingBlock = false, markdownTheme = getMarkdownTheme(), hiddenThinkingLabel = "Thinking...", outputPad = 1, markdownTransformers = [],
|
|
22
24
|
// ChatSessionHost creates components per render, so it needs the initial stream state.
|
|
23
|
-
isStreaming = false, renderLatex = true) {
|
|
25
|
+
isStreaming = false, renderLatex = true, messageId, timestamp) {
|
|
24
26
|
super();
|
|
25
27
|
this.hideThinkingBlock = hideThinkingBlock;
|
|
26
28
|
this.markdownTheme = markdownTheme;
|
|
@@ -28,6 +30,8 @@ export class AssistantMessageComponent extends Container {
|
|
|
28
30
|
this.outputPad = outputPad;
|
|
29
31
|
this.markdownTransformers = markdownTransformers;
|
|
30
32
|
this.renderLatex = renderLatex;
|
|
33
|
+
this.messageId = messageId;
|
|
34
|
+
this.timestamp = timestamp;
|
|
31
35
|
// Container for text/thinking content
|
|
32
36
|
this.contentContainer = new Container();
|
|
33
37
|
this.addChild(this.contentContainer);
|
|
@@ -84,7 +88,7 @@ export class AssistantMessageComponent extends Container {
|
|
|
84
88
|
// Assistant text messages with no background - trim the text
|
|
85
89
|
// Set paddingY=0 to avoid extra spacing before tool executions
|
|
86
90
|
this.contentContainer.addChild(new Markdown(content.text.trim(), this.outputPad, 0, this.markdownTheme, undefined, {
|
|
87
|
-
transform: createMarkdownTransform("assistant", this.isStreaming, this.markdownTransformers),
|
|
91
|
+
transform: createMarkdownTransform("assistant", this.isStreaming, this.markdownTransformers, this.messageId, this.timestamp),
|
|
88
92
|
renderLatex: this.renderLatex,
|
|
89
93
|
}));
|
|
90
94
|
}
|
|
@@ -113,7 +117,7 @@ export class AssistantMessageComponent extends Container {
|
|
|
113
117
|
color: (text) => theme.fg("muted", text),
|
|
114
118
|
italic: true,
|
|
115
119
|
}, {
|
|
116
|
-
transform: createMarkdownTransform("assistant-thinking", this.isStreaming, this.markdownTransformers),
|
|
120
|
+
transform: createMarkdownTransform("assistant-thinking", this.isStreaming, this.markdownTransformers, this.messageId, this.timestamp),
|
|
117
121
|
renderLatex: this.renderLatex,
|
|
118
122
|
}));
|
|
119
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistant-message.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/assistant-message.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantMessage } from \"@bastani/pi-ai/compat\";\nimport { Container, Markdown, type MarkdownTheme, Spacer, Text } from \"@earendil-works/pi-tui\";\nimport type { MarkdownTransformer } from \"../../../core/extensions/types.ts\";\nimport { getMarkdownTheme, theme } from \"../theme/theme.js\";\nimport { createMarkdownTransform } from \"./markdown-transform.ts\";\n\nconst OSC133_ZONE_START = \"\\x1b]133;A\\x07\";\nconst OSC133_ZONE_END = \"\\x1b]133;B\\x07\";\nconst OSC133_ZONE_FINAL = \"\\x1b]133;C\\x07\";\n\n/**\n * Component that renders a complete assistant message\n */\nexport class AssistantMessageComponent extends Container {\n\tprivate contentContainer: Container;\n\tprivate hideThinkingBlock: boolean;\n\tprivate markdownTheme: MarkdownTheme;\n\tprivate hiddenThinkingLabel: string;\n\tprivate outputPad: number;\n\tprivate markdownTransformers: readonly MarkdownTransformer[];\n\tprivate lastMessage?: AssistantMessage;\n\tprivate hasToolCalls = false;\n\tprivate isStreaming = false;\n\tprivate renderLatex: boolean;\n\n\tconstructor(\n\t\tmessage?: AssistantMessage,\n\t\thideThinkingBlock = false,\n\t\tmarkdownTheme: MarkdownTheme = getMarkdownTheme(),\n\t\thiddenThinkingLabel = \"Thinking...\",\n\t\toutputPad = 1,\n\t\tmarkdownTransformers: readonly MarkdownTransformer[] = [],\n\t\t// ChatSessionHost creates components per render, so it needs the initial stream state.\n\t\tisStreaming = false,\n\t\trenderLatex = true,\n\t) {\n\t\tsuper();\n\n\t\tthis.hideThinkingBlock = hideThinkingBlock;\n\t\tthis.markdownTheme = markdownTheme;\n\t\tthis.hiddenThinkingLabel = hiddenThinkingLabel;\n\t\tthis.outputPad = outputPad;\n\t\tthis.markdownTransformers = markdownTransformers;\n\t\tthis.renderLatex = renderLatex;\n\t\t// Container for text/thinking content\n\t\tthis.contentContainer = new Container();\n\t\tthis.addChild(this.contentContainer);\n\n\t\tif (message) {\n\t\t\tthis.updateContent(message, isStreaming);\n\t\t}\n\t}\n\n\toverride invalidate(): void {\n\t\tsuper.invalidate();\n\t\tif (this.lastMessage) {\n\t\t\tthis.updateContent(this.lastMessage);\n\t\t}\n\t}\n\n\tsetHideThinkingBlock(hide: boolean): void {\n\t\tthis.hideThinkingBlock = hide;\n\t\tif (this.lastMessage) {\n\t\t\tthis.updateContent(this.lastMessage);\n\t\t}\n\t}\n\n\tsetHiddenThinkingLabel(label: string): void {\n\t\tthis.hiddenThinkingLabel = label;\n\t\tif (this.lastMessage) {\n\t\t\tthis.updateContent(this.lastMessage);\n\t\t}\n\t}\n\n\tsetOutputPad(padding: number): void {\n\t\tthis.outputPad = padding;\n\t\tif (this.lastMessage) {\n\t\t\tthis.updateContent(this.lastMessage);\n\t\t}\n\t}\n\n\toverride render(width: number): string[] {\n\t\tconst lines = super.render(width);\n\t\tif (this.hasToolCalls || lines.length === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\tlines[0] = OSC133_ZONE_START + lines[0];\n\t\tlines[lines.length - 1] = OSC133_ZONE_END + OSC133_ZONE_FINAL + lines[lines.length - 1];\n\t\treturn lines;\n\t}\n\n\tupdateContent(message: AssistantMessage, isStreaming = this.isStreaming): void {\n\t\tthis.lastMessage = message;\n\t\tthis.isStreaming = isStreaming;\n\n\t\t// Clear content container\n\t\tthis.contentContainer.clear();\n\n\t\tconst hasVisibleContent = message.content.some(\n\t\t\t(c) => (c.type === \"text\" && c.text.trim()) || (c.type === \"thinking\" && c.thinking.trim()),\n\t\t);\n\n\t\tif (hasVisibleContent) {\n\t\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\t}\n\n\t\t// Render content in order\n\t\tfor (let i = 0; i < message.content.length; i++) {\n\t\t\tconst content = message.content[i];\n\t\t\tif (content.type === \"text\" && content.text.trim()) {\n\t\t\t\t// Assistant text messages with no background - trim the text\n\t\t\t\t// Set paddingY=0 to avoid extra spacing before tool executions\n\t\t\t\tthis.contentContainer.addChild(\n\t\t\t\t\tnew Markdown(content.text.trim(), this.outputPad, 0, this.markdownTheme, undefined, {\n\t\t\t\t\t\ttransform: createMarkdownTransform(\"assistant\", this.isStreaming, this.markdownTransformers),\n\t\t\t\t\t\trenderLatex: this.renderLatex,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t} else if (content.type === \"thinking\") {\n\t\t\t\tconst thinkingBlocks: string[] = [];\n\t\t\t\tfor (; i < message.content.length; i++) {\n\t\t\t\t\tconst thinkingContent = message.content[i];\n\t\t\t\t\tif (thinkingContent.type !== \"thinking\") break;\n\t\t\t\t\tconst thinking = thinkingContent.thinking.trim();\n\t\t\t\t\tif (thinking) thinkingBlocks.push(thinking);\n\t\t\t\t}\n\t\t\t\ti--;\n\t\t\t\tif (thinkingBlocks.length === 0) continue;\n\n\t\t\t\t// Keep text and tool calls as run boundaries; only adjacent thinking is coalesced.\n\t\t\t\tconst hasVisibleContentAfter = message.content\n\t\t\t\t\t.slice(i + 1)\n\t\t\t\t\t.some((c) => (c.type === \"text\" && c.text.trim()) || (c.type === \"thinking\" && c.thinking.trim()));\n\t\t\t\tif (this.hideThinkingBlock) {\n\t\t\t\t\tthis.contentContainer.addChild(\n\t\t\t\t\t\tnew Text(theme.italic(theme.fg(\"muted\", this.hiddenThinkingLabel)), this.outputPad, 0),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis.contentContainer.addChild(\n\t\t\t\t\t\tnew Markdown(\n\t\t\t\t\t\t\tthinkingBlocks.join(\"\\n\\n\"),\n\t\t\t\t\t\t\tthis.outputPad,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tthis.markdownTheme,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolor: (text: string) => theme.fg(\"muted\", text),\n\t\t\t\t\t\t\t\titalic: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttransform: createMarkdownTransform(\n\t\t\t\t\t\t\t\t\t\"assistant-thinking\",\n\t\t\t\t\t\t\t\t\tthis.isStreaming,\n\t\t\t\t\t\t\t\t\tthis.markdownTransformers,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\trenderLatex: this.renderLatex,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (hasVisibleContentAfter) this.contentContainer.addChild(new Spacer(1));\n\t\t\t}\n\t\t}\n\n\t\t// Check if incomplete/failed - show after partial content.\n\t\t// For aborted/error tool calls, tool execution components show the error.\n\t\t// Length stops can happen before a tool call is complete, so surface them here too.\n\t\tconst hasToolCalls = message.content.some((c) => c.type === \"toolCall\");\n\t\tthis.hasToolCalls = hasToolCalls;\n\t\tif (message.stopReason === \"length\") {\n\t\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\t\tthis.contentContainer.addChild(\n\t\t\t\tnew Text(theme.fg(\"error\", \"Response was truncated before completion.\"), this.outputPad, 0),\n\t\t\t);\n\t\t} else if (!hasToolCalls) {\n\t\t\tif (message.stopReason === \"aborted\") {\n\t\t\t\tconst abortMessage =\n\t\t\t\t\tmessage.errorMessage && message.errorMessage !== \"Request was aborted\"\n\t\t\t\t\t\t? message.errorMessage\n\t\t\t\t\t\t: \"Operation aborted\";\n\t\t\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\t\t\tthis.contentContainer.addChild(new Text(theme.fg(\"error\", abortMessage), this.outputPad, 0));\n\t\t\t} else if (message.stopReason === \"error\") {\n\t\t\t\tconst errorMsg = message.errorMessage || \"Unknown error\";\n\t\t\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\t\t\tthis.contentContainer.addChild(new Text(theme.fg(\"error\", `Error: ${errorMsg}`), this.outputPad, 0));\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"assistant-message.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/assistant-message.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantMessage } from \"@bastani/pi-ai/compat\";\nimport { Container, Markdown, type MarkdownTheme, Spacer, Text } from \"@earendil-works/pi-tui\";\nimport type { MarkdownTransformer } from \"../../../core/extensions/types.ts\";\nimport { getMarkdownTheme, theme } from \"../theme/theme.js\";\nimport { createMarkdownTransform } from \"./markdown-transform.ts\";\n\nconst OSC133_ZONE_START = \"\\x1b]133;A\\x07\";\nconst OSC133_ZONE_END = \"\\x1b]133;B\\x07\";\nconst OSC133_ZONE_FINAL = \"\\x1b]133;C\\x07\";\n\n/**\n * Component that renders a complete assistant message\n */\nexport class AssistantMessageComponent extends Container {\n\tprivate contentContainer: Container;\n\tprivate hideThinkingBlock: boolean;\n\tprivate markdownTheme: MarkdownTheme;\n\tprivate hiddenThinkingLabel: string;\n\tprivate outputPad: number;\n\tprivate markdownTransformers: readonly MarkdownTransformer[];\n\tprivate lastMessage?: AssistantMessage;\n\tprivate hasToolCalls = false;\n\tprivate isStreaming = false;\n\tprivate renderLatex: boolean;\n\tprivate messageId?: string;\n\tprivate timestamp?: string;\n\n\tconstructor(\n\t\tmessage?: AssistantMessage,\n\t\thideThinkingBlock = false,\n\t\tmarkdownTheme: MarkdownTheme = getMarkdownTheme(),\n\t\thiddenThinkingLabel = \"Thinking...\",\n\t\toutputPad = 1,\n\t\tmarkdownTransformers: readonly MarkdownTransformer[] = [],\n\t\t// ChatSessionHost creates components per render, so it needs the initial stream state.\n\t\tisStreaming = false,\n\t\trenderLatex = true,\n\t\tmessageId?: string,\n\t\ttimestamp?: string,\n\t) {\n\t\tsuper();\n\n\t\tthis.hideThinkingBlock = hideThinkingBlock;\n\t\tthis.markdownTheme = markdownTheme;\n\t\tthis.hiddenThinkingLabel = hiddenThinkingLabel;\n\t\tthis.outputPad = outputPad;\n\t\tthis.markdownTransformers = markdownTransformers;\n\t\tthis.renderLatex = renderLatex;\n\t\tthis.messageId = messageId;\n\t\tthis.timestamp = timestamp;\n\t\t// Container for text/thinking content\n\t\tthis.contentContainer = new Container();\n\t\tthis.addChild(this.contentContainer);\n\n\t\tif (message) {\n\t\t\tthis.updateContent(message, isStreaming);\n\t\t}\n\t}\n\n\toverride invalidate(): void {\n\t\tsuper.invalidate();\n\t\tif (this.lastMessage) {\n\t\t\tthis.updateContent(this.lastMessage);\n\t\t}\n\t}\n\n\tsetHideThinkingBlock(hide: boolean): void {\n\t\tthis.hideThinkingBlock = hide;\n\t\tif (this.lastMessage) {\n\t\t\tthis.updateContent(this.lastMessage);\n\t\t}\n\t}\n\n\tsetHiddenThinkingLabel(label: string): void {\n\t\tthis.hiddenThinkingLabel = label;\n\t\tif (this.lastMessage) {\n\t\t\tthis.updateContent(this.lastMessage);\n\t\t}\n\t}\n\n\tsetOutputPad(padding: number): void {\n\t\tthis.outputPad = padding;\n\t\tif (this.lastMessage) {\n\t\t\tthis.updateContent(this.lastMessage);\n\t\t}\n\t}\n\n\toverride render(width: number): string[] {\n\t\tconst lines = super.render(width);\n\t\tif (this.hasToolCalls || lines.length === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\tlines[0] = OSC133_ZONE_START + lines[0];\n\t\tlines[lines.length - 1] = OSC133_ZONE_END + OSC133_ZONE_FINAL + lines[lines.length - 1];\n\t\treturn lines;\n\t}\n\n\tupdateContent(message: AssistantMessage, isStreaming = this.isStreaming): void {\n\t\tthis.lastMessage = message;\n\t\tthis.isStreaming = isStreaming;\n\n\t\t// Clear content container\n\t\tthis.contentContainer.clear();\n\n\t\tconst hasVisibleContent = message.content.some(\n\t\t\t(c) => (c.type === \"text\" && c.text.trim()) || (c.type === \"thinking\" && c.thinking.trim()),\n\t\t);\n\n\t\tif (hasVisibleContent) {\n\t\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\t}\n\n\t\t// Render content in order\n\t\tfor (let i = 0; i < message.content.length; i++) {\n\t\t\tconst content = message.content[i];\n\t\t\tif (content.type === \"text\" && content.text.trim()) {\n\t\t\t\t// Assistant text messages with no background - trim the text\n\t\t\t\t// Set paddingY=0 to avoid extra spacing before tool executions\n\t\t\t\tthis.contentContainer.addChild(\n\t\t\t\t\tnew Markdown(content.text.trim(), this.outputPad, 0, this.markdownTheme, undefined, {\n\t\t\t\t\t\ttransform: createMarkdownTransform(\n\t\t\t\t\t\t\t\"assistant\",\n\t\t\t\t\t\t\tthis.isStreaming,\n\t\t\t\t\t\t\tthis.markdownTransformers,\n\t\t\t\t\t\t\tthis.messageId,\n\t\t\t\t\t\t\tthis.timestamp,\n\t\t\t\t\t\t),\n\t\t\t\t\t\trenderLatex: this.renderLatex,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t} else if (content.type === \"thinking\") {\n\t\t\t\tconst thinkingBlocks: string[] = [];\n\t\t\t\tfor (; i < message.content.length; i++) {\n\t\t\t\t\tconst thinkingContent = message.content[i];\n\t\t\t\t\tif (thinkingContent.type !== \"thinking\") break;\n\t\t\t\t\tconst thinking = thinkingContent.thinking.trim();\n\t\t\t\t\tif (thinking) thinkingBlocks.push(thinking);\n\t\t\t\t}\n\t\t\t\ti--;\n\t\t\t\tif (thinkingBlocks.length === 0) continue;\n\n\t\t\t\t// Keep text and tool calls as run boundaries; only adjacent thinking is coalesced.\n\t\t\t\tconst hasVisibleContentAfter = message.content\n\t\t\t\t\t.slice(i + 1)\n\t\t\t\t\t.some((c) => (c.type === \"text\" && c.text.trim()) || (c.type === \"thinking\" && c.thinking.trim()));\n\t\t\t\tif (this.hideThinkingBlock) {\n\t\t\t\t\tthis.contentContainer.addChild(\n\t\t\t\t\t\tnew Text(theme.italic(theme.fg(\"muted\", this.hiddenThinkingLabel)), this.outputPad, 0),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis.contentContainer.addChild(\n\t\t\t\t\t\tnew Markdown(\n\t\t\t\t\t\t\tthinkingBlocks.join(\"\\n\\n\"),\n\t\t\t\t\t\t\tthis.outputPad,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tthis.markdownTheme,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolor: (text: string) => theme.fg(\"muted\", text),\n\t\t\t\t\t\t\t\titalic: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttransform: createMarkdownTransform(\n\t\t\t\t\t\t\t\t\t\"assistant-thinking\",\n\t\t\t\t\t\t\t\t\tthis.isStreaming,\n\t\t\t\t\t\t\t\t\tthis.markdownTransformers,\n\t\t\t\t\t\t\t\t\tthis.messageId,\n\t\t\t\t\t\t\t\t\tthis.timestamp,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\trenderLatex: this.renderLatex,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (hasVisibleContentAfter) this.contentContainer.addChild(new Spacer(1));\n\t\t\t}\n\t\t}\n\n\t\t// Check if incomplete/failed - show after partial content.\n\t\t// For aborted/error tool calls, tool execution components show the error.\n\t\t// Length stops can happen before a tool call is complete, so surface them here too.\n\t\tconst hasToolCalls = message.content.some((c) => c.type === \"toolCall\");\n\t\tthis.hasToolCalls = hasToolCalls;\n\t\tif (message.stopReason === \"length\") {\n\t\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\t\tthis.contentContainer.addChild(\n\t\t\t\tnew Text(theme.fg(\"error\", \"Response was truncated before completion.\"), this.outputPad, 0),\n\t\t\t);\n\t\t} else if (!hasToolCalls) {\n\t\t\tif (message.stopReason === \"aborted\") {\n\t\t\t\tconst abortMessage =\n\t\t\t\t\tmessage.errorMessage && message.errorMessage !== \"Request was aborted\"\n\t\t\t\t\t\t? message.errorMessage\n\t\t\t\t\t\t: \"Operation aborted\";\n\t\t\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\t\t\tthis.contentContainer.addChild(new Text(theme.fg(\"error\", abortMessage), this.outputPad, 0));\n\t\t\t} else if (message.stopReason === \"error\") {\n\t\t\t\tconst errorMsg = message.errorMessage || \"Unknown error\";\n\t\t\t\tthis.contentContainer.addChild(new Spacer(1));\n\t\t\t\tthis.contentContainer.addChild(new Text(theme.fg(\"error\", `Error: ${errorMsg}`), this.outputPad, 0));\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
@@ -6,10 +6,16 @@ import { type BashExecutionMessage, type BranchSummaryMessage, type CustomMessag
|
|
|
6
6
|
import type { TaskRecord } from "../../../core/tasks/contracts.js";
|
|
7
7
|
import type { OwnerTaskStore, TaskActivity } from "../../../core/tasks/owner-store.js";
|
|
8
8
|
import { type StreamingAssistantDelta } from "../streaming-assistant-message.ts";
|
|
9
|
+
export interface PersistedMessageMeta {
|
|
10
|
+
id: string;
|
|
11
|
+
timestamp: string;
|
|
12
|
+
}
|
|
9
13
|
export type ChatMessageEntry = {
|
|
10
14
|
role: "assistant";
|
|
11
15
|
kind: "assistant";
|
|
12
16
|
message: AssistantMessage;
|
|
17
|
+
messageId?: string;
|
|
18
|
+
timestamp?: string;
|
|
13
19
|
} | {
|
|
14
20
|
role: "tool";
|
|
15
21
|
kind: "task";
|
|
@@ -35,6 +41,8 @@ export type ChatMessageEntry = {
|
|
|
35
41
|
role: "user";
|
|
36
42
|
kind: "user";
|
|
37
43
|
text: string;
|
|
44
|
+
messageId?: string;
|
|
45
|
+
timestamp?: string;
|
|
38
46
|
} | {
|
|
39
47
|
role: "custom";
|
|
40
48
|
kind: "custom";
|
|
@@ -68,7 +76,7 @@ export interface ChatMessageRenderOptions {
|
|
|
68
76
|
}>) => Component;
|
|
69
77
|
createCustomMessageComponent?: (message: CustomMessage<unknown>) => Component;
|
|
70
78
|
}
|
|
71
|
-
export declare function chatEntriesFromAgentMessages(messages: readonly AgentMessage[]): ChatMessageEntry[];
|
|
79
|
+
export declare function chatEntriesFromAgentMessages(messages: readonly AgentMessage[], messageMeta?: ReadonlyMap<AgentMessage, PersistedMessageMeta>): ChatMessageEntry[];
|
|
72
80
|
export interface LiveChatEventLike {
|
|
73
81
|
readonly type?: unknown;
|
|
74
82
|
readonly message?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-message-renderer.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/chat-message-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,KAAK,SAAS,EAAa,KAAK,aAAa,EAAQ,KAAK,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAEvG,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC7G,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAElB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAGN,KAAK,uBAAuB,EAC5B,MAAM,mCAAmC,CAAC;AAY3C,MAAM,MAAM,gBAAgB,GACzB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"chat-message-renderer.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/chat-message-renderer.ts"],"names":[],"mappings":"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"}
|