@bastani/atomic 0.9.16-alpha.8 → 0.9.16

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.
Files changed (212) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/README.md +4 -4
  3. package/dist/builtin/intercom/CHANGELOG.md +42 -0
  4. package/dist/builtin/intercom/README.md +18 -17
  5. package/dist/builtin/intercom/broker/broker.ts +43 -18
  6. package/dist/builtin/intercom/broker/client.ts +138 -7
  7. package/dist/builtin/intercom/broker/group-isolation.ts +3 -3
  8. package/dist/builtin/intercom/broker/group-membership.ts +55 -0
  9. package/dist/builtin/intercom/broker/presence-handler.ts +62 -50
  10. package/dist/builtin/intercom/broker/send-handler.ts +2 -3
  11. package/dist/builtin/intercom/group.ts +40 -0
  12. package/dist/builtin/intercom/index.bundle.mjs +556 -185
  13. package/dist/builtin/intercom/package.json +2 -2
  14. package/dist/builtin/intercom/skills/intercom/SKILL.md +16 -10
  15. package/dist/builtin/intercom/types.ts +24 -2
  16. package/dist/builtin/mcp/index.bundle.mjs +268 -54
  17. package/dist/builtin/mcp/package.json +2 -2
  18. package/dist/builtin/subagents/CHANGELOG.md +51 -0
  19. package/dist/builtin/subagents/README.md +3 -3
  20. package/dist/builtin/subagents/agents/code-simplifier.md +1 -1
  21. package/dist/builtin/subagents/agents/codebase-analyzer.md +1 -1
  22. package/dist/builtin/subagents/agents/codebase-locator.md +1 -1
  23. package/dist/builtin/subagents/agents/codebase-online-researcher.md +1 -1
  24. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +1 -1
  25. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +1 -1
  26. package/dist/builtin/subagents/agents/codebase-research-locator.md +1 -1
  27. package/dist/builtin/subagents/agents/debugger.md +1 -1
  28. package/dist/builtin/subagents/agents/worker.md +1 -1
  29. package/dist/builtin/subagents/package.json +3 -3
  30. package/dist/builtin/subagents/src/extension/index.bundle.mjs +488 -142
  31. package/dist/builtin/web-access/index.bundle.mjs +268 -54
  32. package/dist/builtin/web-access/package.json +2 -2
  33. package/dist/builtin/workflows/CHANGELOG.md +70 -0
  34. package/dist/builtin/workflows/README.md +2 -2
  35. package/dist/builtin/workflows/builtin/{chunk-zf28603f.js → chunk-3y1hmzw6.js} +36 -6
  36. package/dist/builtin/workflows/builtin/{chunk-nqr34qp3.js → chunk-6rbajjf5.js} +7 -1
  37. package/dist/builtin/workflows/builtin/{chunk-v04c5qmd.js → chunk-bz1c9732.js} +15 -3
  38. package/dist/builtin/workflows/builtin/{chunk-cdtd3m3w.js → chunk-dattsgxg.js} +1 -1
  39. package/dist/builtin/workflows/builtin/{chunk-5n10x7j2.js → chunk-gdx0avpx.js} +421 -69
  40. package/dist/builtin/workflows/builtin/{chunk-hdpj1dkw.js → chunk-w9c7rkrk.js} +1 -1
  41. package/dist/builtin/workflows/builtin/goal.js +3 -3
  42. package/dist/builtin/workflows/builtin/index.js +5 -5
  43. package/dist/builtin/workflows/builtin/open-claude-design.js +2 -2
  44. package/dist/builtin/workflows/builtin/ralph.js +3 -3
  45. package/dist/builtin/workflows/package.json +2 -2
  46. package/dist/builtin/workflows/src/extension/index.bundle.mjs +597 -145
  47. package/dist/builtin/workflows/src/index.js +278 -74
  48. package/dist/cli/args.js +6 -6
  49. package/dist/cli/args.js.map +1 -1
  50. package/dist/cli/config-selector.d.ts.map +1 -1
  51. package/dist/cli/config-selector.js +2 -1
  52. package/dist/cli/config-selector.js.map +1 -1
  53. package/dist/cli/session-picker.d.ts +2 -1
  54. package/dist/cli/session-picker.d.ts.map +1 -1
  55. package/dist/cli/session-picker.js +3 -2
  56. package/dist/cli/session-picker.js.map +1 -1
  57. package/dist/cli/startup-ui.d.ts.map +1 -1
  58. package/dist/cli/startup-ui.js +2 -1
  59. package/dist/cli/startup-ui.js.map +1 -1
  60. package/dist/core/agent-session-methods.d.ts +1 -0
  61. package/dist/core/agent-session-methods.d.ts.map +1 -1
  62. package/dist/core/agent-session-methods.js.map +1 -1
  63. package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
  64. package/dist/core/agent-session-post-tool-compaction.js +3 -6
  65. package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
  66. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  67. package/dist/core/agent-session-prompt.js +3 -1
  68. package/dist/core/agent-session-prompt.js.map +1 -1
  69. package/dist/core/agent-session-services.d.ts.map +1 -1
  70. package/dist/core/agent-session-services.js +6 -3
  71. package/dist/core/agent-session-services.js.map +1 -1
  72. package/dist/core/agent-session-state.d.ts.map +1 -1
  73. package/dist/core/agent-session-state.js +7 -5
  74. package/dist/core/agent-session-state.js.map +1 -1
  75. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  76. package/dist/core/agent-session-tool-hooks.js +37 -23
  77. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  78. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  79. package/dist/core/agent-session-tool-registry.js +9 -2
  80. package/dist/core/agent-session-tool-registry.js.map +1 -1
  81. package/dist/core/agent-session.d.ts +2 -0
  82. package/dist/core/agent-session.d.ts.map +1 -1
  83. package/dist/core/agent-session.js +2 -0
  84. package/dist/core/agent-session.js.map +1 -1
  85. package/dist/core/builtin-packages.d.ts +4 -0
  86. package/dist/core/builtin-packages.d.ts.map +1 -1
  87. package/dist/core/builtin-packages.js +22 -1
  88. package/dist/core/builtin-packages.js.map +1 -1
  89. package/dist/core/callback-activity.d.ts.map +1 -1
  90. package/dist/core/callback-activity.js +6 -3
  91. package/dist/core/callback-activity.js.map +1 -1
  92. package/dist/core/extensions/agent-events.d.ts +15 -0
  93. package/dist/core/extensions/agent-events.d.ts.map +1 -1
  94. package/dist/core/extensions/agent-events.js.map +1 -1
  95. package/dist/core/extensions/api-types.d.ts +3 -1
  96. package/dist/core/extensions/api-types.d.ts.map +1 -1
  97. package/dist/core/extensions/api-types.js.map +1 -1
  98. package/dist/core/extensions/event-types.d.ts +2 -2
  99. package/dist/core/extensions/event-types.d.ts.map +1 -1
  100. package/dist/core/extensions/event-types.js.map +1 -1
  101. package/dist/core/extensions/index.d.ts +1 -1
  102. package/dist/core/extensions/index.d.ts.map +1 -1
  103. package/dist/core/extensions/index.js.map +1 -1
  104. package/dist/core/extensions/loader-core.d.ts +1 -0
  105. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  106. package/dist/core/extensions/loader-core.js +11 -1
  107. package/dist/core/extensions/loader-core.js.map +1 -1
  108. package/dist/core/extensions/loader.d.ts +1 -1
  109. package/dist/core/extensions/loader.d.ts.map +1 -1
  110. package/dist/core/extensions/loader.js +1 -1
  111. package/dist/core/extensions/loader.js.map +1 -1
  112. package/dist/core/extensions/runner-registries.d.ts.map +1 -1
  113. package/dist/core/extensions/runner-registries.js +9 -4
  114. package/dist/core/extensions/runner-registries.js.map +1 -1
  115. package/dist/core/extensions/runner-shortcuts.d.ts.map +1 -1
  116. package/dist/core/extensions/runner-shortcuts.js +1 -0
  117. package/dist/core/extensions/runner-shortcuts.js.map +1 -1
  118. package/dist/core/extensions/runner.d.ts +6 -0
  119. package/dist/core/extensions/runner.d.ts.map +1 -1
  120. package/dist/core/extensions/runner.js +65 -1
  121. package/dist/core/extensions/runner.js.map +1 -1
  122. package/dist/core/keybindings.d.ts +5 -0
  123. package/dist/core/keybindings.d.ts.map +1 -1
  124. package/dist/core/keybindings.js +4 -0
  125. package/dist/core/keybindings.js.map +1 -1
  126. package/dist/core/mandatory-resource-loader.d.ts +6 -0
  127. package/dist/core/mandatory-resource-loader.d.ts.map +1 -0
  128. package/dist/core/mandatory-resource-loader.js +94 -0
  129. package/dist/core/mandatory-resource-loader.js.map +1 -0
  130. package/dist/core/mandatory-runtime-tools.d.ts +10 -0
  131. package/dist/core/mandatory-runtime-tools.d.ts.map +1 -0
  132. package/dist/core/mandatory-runtime-tools.js +31 -0
  133. package/dist/core/mandatory-runtime-tools.js.map +1 -0
  134. package/dist/core/model-resolver-defaults.js +1 -1
  135. package/dist/core/model-resolver-defaults.js.map +1 -1
  136. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  137. package/dist/core/resource-loader-reload.js +24 -13
  138. package/dist/core/resource-loader-reload.js.map +1 -1
  139. package/dist/core/sdk.d.ts.map +1 -1
  140. package/dist/core/sdk.js +2 -0
  141. package/dist/core/sdk.js.map +1 -1
  142. package/dist/core/settings-manager-ui-accessors.d.ts +4 -1
  143. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
  144. package/dist/core/settings-manager-ui-accessors.js +22 -0
  145. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  146. package/dist/core/settings-types.d.ts +4 -0
  147. package/dist/core/settings-types.d.ts.map +1 -1
  148. package/dist/core/settings-types.js.map +1 -1
  149. package/dist/core/slash-commands.js +1 -1
  150. package/dist/core/slash-commands.js.map +1 -1
  151. package/dist/index-extensions.d.ts +1 -1
  152. package/dist/index-extensions.d.ts.map +1 -1
  153. package/dist/index-extensions.js.map +1 -1
  154. package/dist/main-session.d.ts.map +1 -1
  155. package/dist/main-session.js +3 -2
  156. package/dist/main-session.js.map +1 -1
  157. package/dist/main.d.ts.map +1 -1
  158. package/dist/main.js +6 -0
  159. package/dist/main.js.map +1 -1
  160. package/dist/modes/interactive/components/fast-mode-selector.js +2 -2
  161. package/dist/modes/interactive/components/fast-mode-selector.js.map +1 -1
  162. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
  163. package/dist/modes/interactive/components/settings-selector-handlers.js +3 -0
  164. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  165. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
  166. package/dist/modes/interactive/components/settings-selector-items.js +7 -0
  167. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  168. package/dist/modes/interactive/components/settings-selector-types.d.ts +2 -0
  169. package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
  170. package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
  171. package/dist/modes/interactive/interactive-agent-events.js +2 -1
  172. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  173. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  174. package/dist/modes/interactive/interactive-deferred-startup.js +1 -0
  175. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  176. package/dist/modes/interactive/interactive-extension-runtime.js +1 -1
  177. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  178. package/dist/modes/interactive/interactive-input-handling.js +3 -0
  179. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  180. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  181. package/dist/modes/interactive/interactive-mode-base.js +15 -1
  182. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  183. package/dist/modes/interactive/interactive-mode-surface.d.ts +6 -1
  184. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  185. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  186. package/dist/modes/interactive/interactive-selectors.js +6 -1
  187. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  188. package/dist/modes/interactive/interactive-session-runtime.js +3 -0
  189. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  190. package/dist/modes/interactive/interactive-slash-commands.js +7 -12
  191. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  192. package/dist/modes/interactive/interactive-tui.d.ts +1 -0
  193. package/dist/modes/interactive/interactive-tui.d.ts.map +1 -1
  194. package/dist/modes/interactive/interactive-tui.js +16 -0
  195. package/dist/modes/interactive/interactive-tui.js.map +1 -1
  196. package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -1
  197. package/dist/modes/rpc/rpc-session-binding.js +2 -0
  198. package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
  199. package/docs/compaction.md +1 -1
  200. package/docs/environment-variables.md +2 -0
  201. package/docs/extensions.md +20 -1
  202. package/docs/intercom.md +29 -24
  203. package/docs/keybindings.md +5 -2
  204. package/docs/packages.md +1 -1
  205. package/docs/providers.md +2 -2
  206. package/docs/sdk.md +9 -7
  207. package/docs/settings.md +9 -3
  208. package/docs/subagents.md +2 -2
  209. package/docs/usage.md +7 -6
  210. package/docs/workflows.md +11 -7
  211. package/npm-shrinkwrap.json +59 -77
  212. package/package.json +7 -7
package/dist/main.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { setCapabilityOverrides } from "@earendil-works/pi-tui";
1
2
  import chalk from "chalk";
2
3
  import { parseArgs, printHelp } from "./cli/args.js";
3
4
  import { checkProviderAuth, createAuthCheckModelRuntime, getProviderCredential, hasExplicitCredentialExportTarget, } from "./cli/auth-check.js";
@@ -11,6 +12,7 @@ import { formatNoModelsAvailableMessage } from "./core/auth-guidance.js";
11
12
  import { AuthStorage, ReadOnlyAuthStorage } from "./core/auth-storage.js";
12
13
  import { getBuiltinPackagePaths } from "./core/builtin-packages.js";
13
14
  import { applyHttpProxySettings, configureHttpDispatcher } from "./core/http-dispatcher.js";
15
+ import { limitMandatoryIntercomToTool } from "./core/mandatory-resource-loader.js";
14
16
  import { INTERACTIVE_MODEL_REFRESH_TIMEOUT_MS } from "./core/model-refresh-timeout.js";
15
17
  import { resolveModelScope, resolveModelScopeWithDiagnostics } from "./core/model-resolver.js";
16
18
  import { ModelRuntime } from "./core/model-runtime.js";
@@ -323,6 +325,7 @@ export async function main(argv, options) {
323
325
  startupEarlyInputCapture = undefined;
324
326
  }
325
327
  const startupSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: startupProjectTrusted });
328
+ setCapabilityOverrides(startupSettingsManager.getTerminalCapabilityOverrides());
326
329
  const startupSettingsDiagnostics = collectSettingsDiagnostics(startupSettingsManager, "startup session lookup");
327
330
  // --use-theme steers this run only: the override lives in the startup
328
331
  // manager's effective settings and never reaches its global settings file.
@@ -474,6 +477,8 @@ export async function main(argv, options) {
474
477
  extensionFactories: isolateInteractiveHost ? undefined : extensionFactories,
475
478
  },
476
479
  });
480
+ if (isolateInteractiveHost)
481
+ limitMandatoryIntercomToTool(services.resourceLoader);
477
482
  const { settingsManager, modelRuntime, resourceLoader } = services;
478
483
  const diagnostics = [
479
484
  ...services.diagnostics,
@@ -541,6 +546,7 @@ export async function main(argv, options) {
541
546
  endTimingSpan(runtimeCreationSpan);
542
547
  const { services, session, modelFallbackMessage } = runtime;
543
548
  const { settingsManager, modelRuntime, resourceLoader } = services;
549
+ setCapabilityOverrides(settingsManager.getTerminalCapabilityOverrides());
544
550
  applyHttpProxySettings(settingsManager.getGlobalSettings().httpProxy);
545
551
  configureHttpDispatcher(settingsManager.getHttpIdleTimeoutMs());
546
552
  if (parsed.help) {
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 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\texpandTildePath,\n\tgetAgentDir,\n\tgetEnvValue,\n\tgetPackageDir,\n\tsetEnvValue,\n\tVERSION,\n} from \"./config.ts\";\nimport type { CreateAgentSessionRuntimeFactory } from \"./core/agent-session-runtime.ts\";\nimport {\n\ttype AgentSessionRuntimeDiagnostic,\n\tcreateAgentSessionFromServices,\n\tcreateAgentSessionServices,\n} from \"./core/agent-session-services.ts\";\nimport { formatNoModelsAvailableMessage } from \"./core/auth-guidance.ts\";\nimport { AuthStorage, ReadOnlyAuthStorage } from \"./core/auth-storage.ts\";\nimport { getBuiltinPackagePaths } from \"./core/builtin-packages.ts\";\nimport { applyHttpProxySettings, configureHttpDispatcher } from \"./core/http-dispatcher.ts\";\nimport { INTERACTIVE_MODEL_REFRESH_TIMEOUT_MS } from \"./core/model-refresh-timeout.ts\";\nimport { resolveModelScope, resolveModelScopeWithDiagnostics } 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 { SessionManager } from \"./core/session-manager.ts\";\nimport { deduplicateDiagnostics } from \"./core/settings-diagnostics.ts\";\nimport { SettingsManager } from \"./core/settings-manager.ts\";\nimport { endTimingSpan, printTimings, resetTimings, startTimingSpan, time } from \"./core/timings.ts\";\nimport { hasProjectTrustInputs, ProjectTrustStore } from \"./core/trust-manager.ts\";\nimport { builtInExtensions } from \"./extensions/index.ts\";\nimport {\n\ttype AppMode,\n\tisPlainRuntimeMetadataCommand,\n\tprepareInitialMessage,\n\tresolveAppMode,\n\tresolveCliPaths,\n\tresolveExcludedToolsForAppMode,\n\tshouldStartRpcCatalogRefresh,\n\ttoPrintOutputMode,\n} from \"./main-app-mode.ts\";\nimport {\n\tcomputeDeferExtensions,\n\tcomputeStartupInputCaptureEnabled,\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\tvalidateForkFlags,\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 { initTheme, stopThemeWatcher } from \"./modes/interactive/theme/theme.ts\";\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 { normalizePath } from \"./utils/paths.ts\";\nimport { cleanupWindowsSelfUpdateQuarantine } from \"./utils/windows-self-update.ts\";\n\nexport type { AppMode } from \"./main-app-mode.ts\";\nexport { resolveExcludedToolsForAppMode } from \"./main-app-mode.ts\";\nexport type { MainOptions } from \"./main-types.ts\";\n\nfunction authCheckErrorMessage(error: unknown): string {\n\t// Provider and credential-store errors can quote a live credential. Model\n\t// resolution errors are made only from the named CLI values, so they remain\n\t// actionable without letting provider-generated text reach stderr.\n\treturn error instanceof AuthCommandError ? error.message : \"Failed to check provider readiness\";\n}\n\n/**\n * `atomic auth …` owns provider-readiness checks and the credential-export\n * door. Its stdout guard routes all ordinary writes to stderr while a command\n * resolves. A readiness result reaches real stdout only as a status record;\n * the opt-in credential branch passes a Secret to emitCredential, the sole\n * code path that can open it and write it to stdout.\n */\nasync function runAuthCheckCommand(command: AuthCommand, parsed: Args): Promise<void> {\n\tvalidateAuthCheckArgs(parsed);\n\tlet result: AuthCheckResult;\n\tlet credentials: AuthStorage | ReadOnlyAuthStorage | undefined;\n\tlet modelRuntime: ModelRuntime | undefined;\n\ttry {\n\t\tcredentials = command.noRefresh ? new ReadOnlyAuthStorage() : AuthStorage.create();\n\t\tmodelRuntime = await createAuthCheckModelRuntime(credentials);\n\t\tresult = await checkProviderAuth(parsed, modelRuntime, { refresh: !command.noRefresh, credentials });\n\t} catch (error) {\n\t\tconsole.error(chalk.red(`Error: ${authCheckErrorMessage(error)}`));\n\t\tresult = { status: \"invalid\", reason: \"invalid_state\" };\n\t}\n\n\tlet credentialEmitted = false;\n\tif (command.credentials && result.status === \"ready\" && credentials && modelRuntime) {\n\t\tconst readyResult = result;\n\t\tif (!hasExplicitCredentialExportTarget(parsed, modelRuntime, readyResult.provider)) {\n\t\t\tconsole.error(chalk.red(\"Error: Credential export requires --provider or an exact --model target\"));\n\t\t\tresult = { status: \"invalid\", provider: readyResult.provider, reason: \"invalid_state\" };\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tconst credential = await getProviderCredential(readyResult.provider, modelRuntime, credentials, {\n\t\t\t\t\trefresh: !command.noRefresh,\n\t\t\t\t});\n\t\t\t\tif (credential) {\n\t\t\t\t\tawait emitCredential(\n\t\t\t\t\t\tcredential,\n\t\t\t\t\t\tcommand.json\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tstatus: readyResult.status,\n\t\t\t\t\t\t\t\t\tprovider: readyResult.provider,\n\t\t\t\t\t\t\t\t\tauthType: readyResult.authType,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t);\n\t\t\t\t\tcredentialEmitted = true;\n\t\t\t\t} else {\n\t\t\t\t\tresult = { status: \"not_ready\", provider: readyResult.provider, reason: \"credential_not_available\" };\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof CredentialPrintError) throw error;\n\t\t\t\t// Provider text can quote a credential. Explain the export failure with a\n\t\t\t\t// constant diagnostic rather than carrying that text into stderr.\n\t\t\t\tconsole.error(chalk.red(\"Error: Failed to resolve credential for export\"));\n\t\t\t\tresult = { status: \"invalid\", provider: readyResult.provider, reason: \"invalid_state\" };\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!credentialEmitted) {\n\t\tif (command.credentials && !command.json) {\n\t\t\t// The explicit credential stream is credential-only. A caller assigning\n\t\t\t// it to a shell variable receives no status word on a non-zero exit.\n\t\t\tconsole.error(result.status);\n\t\t} else {\n\t\t\tconst output = command.json ? JSON.stringify(result) : result.status;\n\t\t\twriteRawStdout(`${output}\\n`);\n\t\t\tawait flushRawStdout();\n\t\t}\n\t}\n\tprocess.exitCode = result.status === \"ready\" ? 0 : result.status === \"not_ready\" ? 1 : 2;\n}\nasync function runAuthCommand(args: string[]): Promise<boolean> {\n\tif (isAuthCommandHelp(args)) {\n\t\tprintAuthCommandHelp();\n\t\treturn true;\n\t}\n\n\tlet command: AuthCommand | undefined;\n\ttry {\n\t\tcommand = parseAuthCommand(args);\n\t} catch (error) {\n\t\tconst failure = error instanceof AuthCommandError ? error : new AuthCommandError(\"Failed to parse auth command\");\n\t\tconsole.error(chalk.red(`Error: ${failure.message}`));\n\t\tprocess.exitCode = failure.exitCode;\n\t\treturn true;\n\t}\n\tif (!command) return false;\n\n\ttakeOverStdout();\n\ttry {\n\t\tconst parsed = parseArgs(command.args);\n\t\tif (command.kind === \"check\") {\n\t\t\tif (parsed.unknownFlags.size > 0) {\n\t\t\t\tconst option = parsed.unknownFlags.keys().next().value;\n\t\t\t\tconsole.error(chalk.red(`Unknown option --${option} for \"${getAuthCommandName(command.kind)}\".`));\n\t\t\t\tconsole.error(chalk.dim(`Use \"${getAuthCommandUsage(command.kind)}\".`));\n\t\t\t\tprocess.exitCode = 2;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst errors = parsed.diagnostics.filter((diagnostic) => diagnostic.type === \"error\");\n\t\t\tif (errors.length > 0) {\n\t\t\t\tfor (const error of errors) console.error(chalk.red(`Error: ${error.message}`));\n\t\t\t\tprocess.exitCode = 2;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if (parsed.diagnostics.some((diagnostic) => diagnostic.type === \"error\")) {\n\t\t\t// Preserve the print commands' established parser behavior: any error\n\t\t\t// prints every diagnostic, warnings included, as a guarded stderr error.\n\t\t\tfor (const diagnostic of parsed.diagnostics) console.error(chalk.red(`Error: ${diagnostic.message}`));\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\n\t\tif (command.kind === \"check\") {\n\t\t\ttry {\n\t\t\t\tawait runAuthCheckCommand(command, parsed);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof CredentialPrintError) {\n\t\t\t\t\tconsole.error(chalk.red(`Error: ${error.message}`));\n\t\t\t\t\tprocess.exitCode = error.exitCode;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(chalk.red(`Error: ${authCheckErrorMessage(error)}`));\n\t\t\t\t\tprocess.exitCode = 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\ttry {\n\t\t\tvalidateCredentialPrintArgs(parsed);\n\t\t\tconst modelRuntime = await ModelRuntime.create({ allowModelNetwork: false });\n\t\t\tconst secret = await resolveCredentialForPrint(parsed, modelRuntime, command.kind, command.minExpiryMs);\n\t\t\t// The Secret arrives unreadable here; emitCredential routes it through\n\t\t\t// credentialPayload, the only source function that can open it.\n\t\t\tawait emitCredential(secret, undefined);\n\t\t} catch (error) {\n\t\t\t// Every code toCredentialPrintError can produce belongs to a failure\n\t\t\t// that emitted nothing, so the exit code set here never contradicts\n\t\t\t// an empty stdout; a genuinely unclassified error is reported as a\n\t\t\t// credential-resolution failure.\n\t\t\tconst failure = toCredentialPrintError(error);\n\t\t\tconsole.error(chalk.red(`Error: ${failure.message}`));\n\t\t\tprocess.exitCode = failure.exitCode;\n\t\t}\n\t} finally {\n\t\trestoreStdout();\n\t}\n\treturn true;\n}\nexport async function main(argv: string[], options?: MainOptions) {\n\t// Consume the private engine handshake before anything else: the bootstrap\n\t// file carries engine role, host PID, guardian path, and any API key, is read\n\t// once, and is unlinked immediately. Nothing engine-only ever reaches the\n\t// child's environment, so no descendant of the engine can inherit it — which\n\t// deleting variables from `process.env` cannot achieve under Bun.\n\tconst bootstrap = takeInteractiveEngineBootstrapArg(argv);\n\tconst args = bootstrap.args;\n\tconst engineEnv = captureInteractiveEngineStartupEnv(\n\t\tbootstrap.path === undefined ? undefined : readInteractiveEngineBootstrap(bootstrap.path),\n\t);\n\tresetTimings();\n\tconst extensionFactories = [...builtInExtensions, ...(options?.extensionFactories ?? [])];\n\tconst offlineMode = args.includes(\"--offline\") || isTruthyEnvFlag(getEnvValue(ENV_OFFLINE));\n\tif (offlineMode) {\n\t\tsetEnvValue(ENV_OFFLINE, \"1\");\n\t\tsetEnvValue(ENV_SKIP_VERSION_CHECK, \"1\");\n\t}\n\tif (process.platform === \"win32\") cleanupWindowsSelfUpdateQuarantine(getPackageDir());\n\tconst cwd = process.cwd(),\n\t\tagentDir = getAgentDir();\n\tconst bootstrapSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: false });\n\tapplyHttpProxySettings(bootstrapSettingsManager.getGlobalSettings().httpProxy);\n\tconfigureHttpDispatcher();\n\tif (await handlePackageCommand(args, { extensionFactories })) {\n\t\tconst exitCode = process.exitCode ?? 0;\n\t\tawait drainProcessStdio();\n\t\tprocess.exit(exitCode);\n\t\treturn;\n\t}\n\tif (await handleConfigCommand(args, { extensionFactories })) {\n\t\treturn;\n\t}\n\tif (await runAuthCommand(args)) {\n\t\tconst exitCode = process.exitCode ?? 0;\n\t\tawait drainProcessStdio();\n\t\tprocess.exit(exitCode);\n\t\treturn;\n\t}\n\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\tconst 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\tif (engineEnv.child === \"1\") startInteractiveEngineLiveness(writeRawStdout).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\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\tlet startupEarlyInputCapture: EarlyInputCapture | undefined = startEarlyInputCapture({\n\t\tenabled: computeStartupInputCaptureEnabled({\n\t\t\tappMode,\n\t\t\tstdinIsTTY: process.stdin.isTTY === true,\n\t\t\tparsed,\n\t\t\tsessionCwd: cwd,\n\t\t\tprojectTrustStore,\n\t\t\tresolvedExtensionPathCount: resolvedExtensionPaths?.length ?? 0,\n\t\t\tresolvedResourcePathCount:\n\t\t\t\t(resolvedSkillPaths?.length ?? 0) +\n\t\t\t\t(resolvedPromptTemplatePaths?.length ?? 0) +\n\t\t\t\t(resolvedThemePaths?.length ?? 0),\n\t\t\tdeprecationWarningCount: 0,\n\t\t}),\n\t});\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\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\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// sessionDir lookup during session selection.\n\tconst envSessionDir = getEnvValue(ENV_SESSION_DIR);\n\tconst sessionDir =\n\t\t(parsed.sessionDir ? normalizePath(parsed.sessionDir) : undefined) ??\n\t\t(envSessionDir ? expandTildePath(envSessionDir) : undefined) ??\n\t\tstartupSettingsManager.getSessionDir();\n\tlet sessionManager = applyInheritedWorkflowSessionClassification(\n\t\tawait createSessionManager(parsed, cwd, sessionDir, startupSettingsManager),\n\t);\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 = SessionManager.open(missingSessionCwdIssue.sessionFile!, sessionDir, 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\tprocess.exit(1);\n\t\t}\n\t\tsessionManager.appendSessionInfo(name);\n\t}\n\ttime(\"createSessionManager\");\n\n\tconst sessionCwd = sessionManager.getCwd();\n\tconst autoTrustOnReloadCwd =\n\t\tparsed.projectTrustOverride === undefined && !hasProjectTrustInputs(sessionCwd) ? sessionCwd : undefined;\n\n\tconst builtinPackagePaths = options?.builtinPackagePaths ?? getBuiltinPackagePaths();\n\tconst trustPromptMode: AppMode = parsed.help || parsed.listModels !== undefined ? \"print\" : appMode;\n\tconst projectTrustByCwd = new Map<string, boolean>();\n\tconst borrowedExtensionSourceTrustByPath = new Map<string, boolean>();\n\tlet deferredExtensionLoad = false;\n\tconst createRuntime: CreateAgentSessionRuntimeFactory = 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\tparsed.projectTrustOverride === undefined && cachedProjectTrust === undefined && hasTrustInputs;\n\t\tconst runtimeSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: initialProjectTrusted });\n\t\tconst deferExtensions = isolateInteractiveHost\n\t\t\t? false\n\t\t\t: computeDeferExtensions({\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: resolvedExtensionPaths?.length ?? 0,\n\t\t\t\t\tresolvedResourcePathCount:\n\t\t\t\t\t\t(resolvedSkillPaths?.length ?? 0) +\n\t\t\t\t\t\t(resolvedPromptTemplatePaths?.length ?? 0) +\n\t\t\t\t\t\t(resolvedThemePaths?.length ?? 0),\n\t\t\t\t\thasSystemPromptInput: parsed.systemPrompt !== undefined || (parsed.appendSystemPrompt?.length ?? 0) > 0,\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;\n\t\t\tstartupEarlyInputCapture ??= startEarlyInputCapture({\n\t\t\t\tenabled: deferExtensions && deprecationWarnings.length === 0,\n\t\t\t});\n\t\t}\n\t\tconst getProjectTrustContext = () =>\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\tconst services = await createAgentSessionServices({\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 || (resolvedExtensionPaths?.length ?? 0) > 0\n\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\trunMigrations(cwd, { projectTrusted: 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\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\tconst { settingsManager, modelRuntime, resourceLoader } = services;\n\t\tconst diagnostics: AgentSessionRuntimeDiagnostic[] = [\n\t\t\t...services.diagnostics,\n\t\t\t...collectSettingsDiagnostics(settingsManager, \"runtime creation\"),\n\t\t\t...resourceLoader.getExtensions().errors.map(({ path, error }) => ({\n\t\t\t\ttype: \"error\" as const,\n\t\t\t\tmessage: `Failed to load extension \"${path}\": ${error}`,\n\t\t\t})),\n\t\t];\n\t\tconst modelPatterns = isolateInteractiveHost ? undefined : (parsed.models ?? settingsManager.getEnabledModels());\n\t\tconst scopedModels =\n\t\t\tmodelPatterns && modelPatterns.length > 0\n\t\t\t\t? deferredExtensionLoad\n\t\t\t\t\t? (await resolveModelScopeWithDiagnostics(modelPatterns, modelRuntime)).scopedModels\n\t\t\t\t\t: await resolveModelScope(modelPatterns, modelRuntime)\n\t\t\t\t: [];\n\t\tconst sessionArgs = isolateInteractiveHost\n\t\t\t? { ...parsed, provider: undefined, model: undefined, apiKey: undefined, models: undefined }\n\t\t\t: parsed;\n\t\tconst {\n\t\t\toptions: sessionOptions,\n\t\t\tcliThinkingFromModel,\n\t\t\tdiagnostics: sessionOptionDiagnostics,\n\t\t} = buildSessionOptions(\n\t\t\tsessionArgs,\n\t\t\tscopedModels,\n\t\t\tsessionManager.buildSessionContext().messages.length > 0,\n\t\t\tmodelRuntime,\n\t\t\tsettingsManager,\n\t\t);\n\t\tdiagnostics.push(...sessionOptionDiagnostics);\n\n\t\tif (parsed.apiKey && !isolateInteractiveHost) {\n\t\t\tif (!sessionOptions.model) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"--api-key requires a model to be specified via --model, --provider/--model, or --models\",\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Bound the complete CLI key operation—from credential mutation through\n\t\t\t\t// provider-scoped catalog refresh—with the established model-refresh budget.\n\t\t\t\tconst apiKeySignal = AbortSignal.timeout(INTERACTIVE_MODEL_REFRESH_TIMEOUT_MS);\n\t\t\t\tawait applyCliRuntimeApiKey(modelRuntime, sessionOptions.model.provider, parsed.apiKey, apiKeySignal);\n\t\t\t}\n\t\t}\n\n\t\tconst created = await createAgentSessionFromServices({\n\t\t\tservices,\n\t\t\tsessionManager,\n\t\t\tsessionStartEvent,\n\t\t\tmodel: sessionOptions.model,\n\t\t\tthinkingLevel: sessionOptions.thinkingLevel,\n\t\t\tscopedModels: sessionOptions.scopedModels,\n\t\t\ttools: sessionOptions.tools,\n\t\t\texcludedTools: resolveExcludedToolsForAppMode(appMode, sessionOptions.excludedTools),\n\t\t\tnoTools: sessionOptions.noTools,\n\t\t\tcustomTools: sessionOptions.customTools,\n\t\t});\n\t\tconst cliThinkingOverride = parsed.thinking !== undefined || cliThinkingFromModel;\n\t\tif (created.session.model && cliThinkingOverride) {\n\t\t\tcreated.session.setThinkingLevel(created.session.thinkingLevel);\n\t\t}\n\t\treturn {\n\t\t\t...created,\n\t\t\tservices,\n\t\t\tdiagnostics,\n\t\t};\n\t};\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, resourceLoader } = services;\n\tapplyHttpProxySettings(settingsManager.getGlobalSettings().httpProxy);\n\tconfigureHttpDispatcher(settingsManager.getHttpIdleTimeoutMs());\n\tif (parsed.help) {\n\t\treportDiagnostics(startupSettingsDiagnostics);\n\t\tconst extensionFlags = resourceLoader\n\t\t\t.getExtensions()\n\t\t\t.extensions.flatMap((extension) => Array.from(extension.flags.values()));\n\t\tif (shouldRestoreStdoutForMetadata) {\n\t\t\trestoreStdout();\n\t\t}\n\t\tprintHelp(extensionFlags);\n\t\tprocess.exit(0);\n\t}\n\n\tif (parsed.listModels !== undefined) {\n\t\treportDiagnostics(startupSettingsDiagnostics);\n\t\tconst searchPattern = typeof parsed.listModels === \"string\" ? parsed.listModels : undefined;\n\t\tif (shouldRestoreStdoutForMetadata) {\n\t\t\trestoreStdout();\n\t\t}\n\t\tawait listModels(modelRuntime, searchPattern);\n\t\tprocess.exit(0);\n\t}\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(\n\t\tparsed,\n\t\tsettingsManager.getImageAutoResize(),\n\t\tstdinContent,\n\t);\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\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) {\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);\n\t} else if (appMode === \"interactive\") {\n\t\tif (scopedModels.length > 0 && (parsed.verbose || !settingsManager.getQuietStartup())) {\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\tinitialMessage,\n\t\t\tinitialImages,\n\t\t\tinitialMessages: parsed.messages,\n\t\t\tverbose: parsed.verbose,\n\t\t\tinitialThemeSetting: parsed.useTheme,\n\t\t\tdeferredExtensionLoad,\n\t\t\tstartupInputCapture: startupEarlyInputCapture,\n\t\t\tdeferredModelScopePatterns: deferredExtensionLoad\n\t\t\t\t? (parsed.models ?? settingsManager.getEnabledModels())\n\t\t\t\t: undefined,\n\t\t\tdeferredModelScopePreserveThinking: parsed.thinking !== undefined,\n\t\t\tterminal: options?.internalInteractiveHarness?.terminal,\n\t\t});\n\t\toptions?.internalInteractiveHarness?.onMode?.(interactiveMode);\n\t\tif (startupBenchmark) {\n\t\t\tawait interactiveMode.init();\n\t\t\ttime(\"interactiveMode.init\");\n\t\t\tawait interactiveMode.ensureDeferredStartupComplete();\n\t\t\tprintTimings();\n\t\t\tinteractiveMode.stop();\n\t\t\tstopThemeWatcher();\n\t\t\tif (process.stdout.writableLength > 0) {\n\t\t\t\tawait new Promise<void>((resolve) => process.stdout.once(\"drain\", resolve));\n\t\t\t}\n\t\t\tif (process.stderr.writableLength > 0) {\n\t\t\t\tawait new Promise<void>((resolve) => process.stderr.once(\"drain\", resolve));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tprintTimings();\n\t\tawait interactiveMode.run();\n\t} else {\n\t\tprintTimings();\n\t\tconst exitCode = await runPrintMode(runtime, {\n\t\t\tmode: toPrintOutputMode(appMode),\n\t\t\tmessages: parsed.messages,\n\t\t\tinitialMessage,\n\t\t\tinitialImages,\n\t\t});\n\t\tstopThemeWatcher();\n\t\trestoreStdout();\n\t\tif (exitCode !== 0) {\n\t\t\tprocess.exitCode = exitCode;\n\t\t}\n\t\treturn;\n\t}\n}\n"]}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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","sourcesContent":["import { setCapabilityOverrides } from \"@earendil-works/pi-tui\";\nimport chalk from \"chalk\";\nimport { type Args, parseArgs, printHelp } from \"./cli/args.ts\";\nimport {\n\ttype AuthCheckResult,\n\tcheckProviderAuth,\n\tcreateAuthCheckModelRuntime,\n\tgetProviderCredential,\n\thasExplicitCredentialExportTarget,\n} from \"./cli/auth-check.ts\";\nimport {\n\ttype AuthCommand,\n\tAuthCommandError,\n\tgetAuthCommandName,\n\tgetAuthCommandUsage,\n\tisAuthCommandHelp,\n\tparseAuthCommand,\n\tprintAuthCommandHelp,\n\tvalidateAuthCheckArgs,\n} from \"./cli/auth-command.ts\";\nimport {\n\tCredentialPrintError,\n\temitCredential,\n\tresolveCredentialForPrint,\n\ttoCredentialPrintError,\n\tvalidateCredentialPrintArgs,\n} from \"./cli/credential-print.ts\";\nimport { listModels } from \"./cli/list-models.ts\";\nimport { createProjectTrustContext } from \"./cli/project-trust.ts\";\nimport {\n\tENV_OFFLINE,\n\tENV_SESSION_DIR,\n\tENV_SKIP_VERSION_CHECK,\n\tENV_STARTUP_BENCHMARK,\n\texpandTildePath,\n\tgetAgentDir,\n\tgetEnvValue,\n\tgetPackageDir,\n\tsetEnvValue,\n\tVERSION,\n} from \"./config.ts\";\nimport type { CreateAgentSessionRuntimeFactory } from \"./core/agent-session-runtime.ts\";\nimport {\n\ttype AgentSessionRuntimeDiagnostic,\n\tcreateAgentSessionFromServices,\n\tcreateAgentSessionServices,\n} from \"./core/agent-session-services.ts\";\nimport { formatNoModelsAvailableMessage } from \"./core/auth-guidance.ts\";\nimport { AuthStorage, ReadOnlyAuthStorage } from \"./core/auth-storage.ts\";\nimport { getBuiltinPackagePaths } from \"./core/builtin-packages.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 { resolveModelScope, resolveModelScopeWithDiagnostics } 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 { SessionManager } from \"./core/session-manager.ts\";\nimport { deduplicateDiagnostics } from \"./core/settings-diagnostics.ts\";\nimport { SettingsManager } from \"./core/settings-manager.ts\";\nimport { endTimingSpan, printTimings, resetTimings, startTimingSpan, time } from \"./core/timings.ts\";\nimport { hasProjectTrustInputs, ProjectTrustStore } from \"./core/trust-manager.ts\";\nimport { builtInExtensions } from \"./extensions/index.ts\";\nimport {\n\ttype AppMode,\n\tisPlainRuntimeMetadataCommand,\n\tprepareInitialMessage,\n\tresolveAppMode,\n\tresolveCliPaths,\n\tresolveExcludedToolsForAppMode,\n\tshouldStartRpcCatalogRefresh,\n\ttoPrintOutputMode,\n} from \"./main-app-mode.ts\";\nimport {\n\tcomputeDeferExtensions,\n\tcomputeStartupInputCaptureEnabled,\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\tvalidateForkFlags,\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 { initTheme, stopThemeWatcher } from \"./modes/interactive/theme/theme.ts\";\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 { normalizePath } from \"./utils/paths.ts\";\nimport { cleanupWindowsSelfUpdateQuarantine } from \"./utils/windows-self-update.ts\";\n\nexport type { AppMode } from \"./main-app-mode.ts\";\nexport { resolveExcludedToolsForAppMode } from \"./main-app-mode.ts\";\nexport type { MainOptions } from \"./main-types.ts\";\n\nfunction authCheckErrorMessage(error: unknown): string {\n\t// Provider and credential-store errors can quote a live credential. Model\n\t// resolution errors are made only from the named CLI values, so they remain\n\t// actionable without letting provider-generated text reach stderr.\n\treturn error instanceof AuthCommandError ? error.message : \"Failed to check provider readiness\";\n}\n\n/**\n * `atomic auth …` owns provider-readiness checks and the credential-export\n * door. Its stdout guard routes all ordinary writes to stderr while a command\n * resolves. A readiness result reaches real stdout only as a status record;\n * the opt-in credential branch passes a Secret to emitCredential, the sole\n * code path that can open it and write it to stdout.\n */\nasync function runAuthCheckCommand(command: AuthCommand, parsed: Args): Promise<void> {\n\tvalidateAuthCheckArgs(parsed);\n\tlet result: AuthCheckResult;\n\tlet credentials: AuthStorage | ReadOnlyAuthStorage | undefined;\n\tlet modelRuntime: ModelRuntime | undefined;\n\ttry {\n\t\tcredentials = command.noRefresh ? new ReadOnlyAuthStorage() : AuthStorage.create();\n\t\tmodelRuntime = await createAuthCheckModelRuntime(credentials);\n\t\tresult = await checkProviderAuth(parsed, modelRuntime, { refresh: !command.noRefresh, credentials });\n\t} catch (error) {\n\t\tconsole.error(chalk.red(`Error: ${authCheckErrorMessage(error)}`));\n\t\tresult = { status: \"invalid\", reason: \"invalid_state\" };\n\t}\n\n\tlet credentialEmitted = false;\n\tif (command.credentials && result.status === \"ready\" && credentials && modelRuntime) {\n\t\tconst readyResult = result;\n\t\tif (!hasExplicitCredentialExportTarget(parsed, modelRuntime, readyResult.provider)) {\n\t\t\tconsole.error(chalk.red(\"Error: Credential export requires --provider or an exact --model target\"));\n\t\t\tresult = { status: \"invalid\", provider: readyResult.provider, reason: \"invalid_state\" };\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tconst credential = await getProviderCredential(readyResult.provider, modelRuntime, credentials, {\n\t\t\t\t\trefresh: !command.noRefresh,\n\t\t\t\t});\n\t\t\t\tif (credential) {\n\t\t\t\t\tawait emitCredential(\n\t\t\t\t\t\tcredential,\n\t\t\t\t\t\tcommand.json\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tstatus: readyResult.status,\n\t\t\t\t\t\t\t\t\tprovider: readyResult.provider,\n\t\t\t\t\t\t\t\t\tauthType: readyResult.authType,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t);\n\t\t\t\t\tcredentialEmitted = true;\n\t\t\t\t} else {\n\t\t\t\t\tresult = { status: \"not_ready\", provider: readyResult.provider, reason: \"credential_not_available\" };\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof CredentialPrintError) throw error;\n\t\t\t\t// Provider text can quote a credential. Explain the export failure with a\n\t\t\t\t// constant diagnostic rather than carrying that text into stderr.\n\t\t\t\tconsole.error(chalk.red(\"Error: Failed to resolve credential for export\"));\n\t\t\t\tresult = { status: \"invalid\", provider: readyResult.provider, reason: \"invalid_state\" };\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!credentialEmitted) {\n\t\tif (command.credentials && !command.json) {\n\t\t\t// The explicit credential stream is credential-only. A caller assigning\n\t\t\t// it to a shell variable receives no status word on a non-zero exit.\n\t\t\tconsole.error(result.status);\n\t\t} else {\n\t\t\tconst output = command.json ? JSON.stringify(result) : result.status;\n\t\t\twriteRawStdout(`${output}\\n`);\n\t\t\tawait flushRawStdout();\n\t\t}\n\t}\n\tprocess.exitCode = result.status === \"ready\" ? 0 : result.status === \"not_ready\" ? 1 : 2;\n}\nasync function runAuthCommand(args: string[]): Promise<boolean> {\n\tif (isAuthCommandHelp(args)) {\n\t\tprintAuthCommandHelp();\n\t\treturn true;\n\t}\n\n\tlet command: AuthCommand | undefined;\n\ttry {\n\t\tcommand = parseAuthCommand(args);\n\t} catch (error) {\n\t\tconst failure = error instanceof AuthCommandError ? error : new AuthCommandError(\"Failed to parse auth command\");\n\t\tconsole.error(chalk.red(`Error: ${failure.message}`));\n\t\tprocess.exitCode = failure.exitCode;\n\t\treturn true;\n\t}\n\tif (!command) return false;\n\n\ttakeOverStdout();\n\ttry {\n\t\tconst parsed = parseArgs(command.args);\n\t\tif (command.kind === \"check\") {\n\t\t\tif (parsed.unknownFlags.size > 0) {\n\t\t\t\tconst option = parsed.unknownFlags.keys().next().value;\n\t\t\t\tconsole.error(chalk.red(`Unknown option --${option} for \"${getAuthCommandName(command.kind)}\".`));\n\t\t\t\tconsole.error(chalk.dim(`Use \"${getAuthCommandUsage(command.kind)}\".`));\n\t\t\t\tprocess.exitCode = 2;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst errors = parsed.diagnostics.filter((diagnostic) => diagnostic.type === \"error\");\n\t\t\tif (errors.length > 0) {\n\t\t\t\tfor (const error of errors) console.error(chalk.red(`Error: ${error.message}`));\n\t\t\t\tprocess.exitCode = 2;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if (parsed.diagnostics.some((diagnostic) => diagnostic.type === \"error\")) {\n\t\t\t// Preserve the print commands' established parser behavior: any error\n\t\t\t// prints every diagnostic, warnings included, as a guarded stderr error.\n\t\t\tfor (const diagnostic of parsed.diagnostics) console.error(chalk.red(`Error: ${diagnostic.message}`));\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn true;\n\t\t}\n\n\t\tif (command.kind === \"check\") {\n\t\t\ttry {\n\t\t\t\tawait runAuthCheckCommand(command, parsed);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof CredentialPrintError) {\n\t\t\t\t\tconsole.error(chalk.red(`Error: ${error.message}`));\n\t\t\t\t\tprocess.exitCode = error.exitCode;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(chalk.red(`Error: ${authCheckErrorMessage(error)}`));\n\t\t\t\t\tprocess.exitCode = 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\ttry {\n\t\t\tvalidateCredentialPrintArgs(parsed);\n\t\t\tconst modelRuntime = await ModelRuntime.create({ allowModelNetwork: false });\n\t\t\tconst secret = await resolveCredentialForPrint(parsed, modelRuntime, command.kind, command.minExpiryMs);\n\t\t\t// The Secret arrives unreadable here; emitCredential routes it through\n\t\t\t// credentialPayload, the only source function that can open it.\n\t\t\tawait emitCredential(secret, undefined);\n\t\t} catch (error) {\n\t\t\t// Every code toCredentialPrintError can produce belongs to a failure\n\t\t\t// that emitted nothing, so the exit code set here never contradicts\n\t\t\t// an empty stdout; a genuinely unclassified error is reported as a\n\t\t\t// credential-resolution failure.\n\t\t\tconst failure = toCredentialPrintError(error);\n\t\t\tconsole.error(chalk.red(`Error: ${failure.message}`));\n\t\t\tprocess.exitCode = failure.exitCode;\n\t\t}\n\t} finally {\n\t\trestoreStdout();\n\t}\n\treturn true;\n}\nexport async function main(argv: string[], options?: MainOptions) {\n\t// Consume the private engine handshake before anything else: the bootstrap\n\t// file carries engine role, host PID, guardian path, and any API key, is read\n\t// once, and is unlinked immediately. Nothing engine-only ever reaches the\n\t// child's environment, so no descendant of the engine can inherit it — which\n\t// deleting variables from `process.env` cannot achieve under Bun.\n\tconst bootstrap = takeInteractiveEngineBootstrapArg(argv);\n\tconst args = bootstrap.args;\n\tconst engineEnv = captureInteractiveEngineStartupEnv(\n\t\tbootstrap.path === undefined ? undefined : readInteractiveEngineBootstrap(bootstrap.path),\n\t);\n\tresetTimings();\n\tconst extensionFactories = [...builtInExtensions, ...(options?.extensionFactories ?? [])];\n\tconst offlineMode = args.includes(\"--offline\") || isTruthyEnvFlag(getEnvValue(ENV_OFFLINE));\n\tif (offlineMode) {\n\t\tsetEnvValue(ENV_OFFLINE, \"1\");\n\t\tsetEnvValue(ENV_SKIP_VERSION_CHECK, \"1\");\n\t}\n\tif (process.platform === \"win32\") cleanupWindowsSelfUpdateQuarantine(getPackageDir());\n\tconst cwd = process.cwd(),\n\t\tagentDir = getAgentDir();\n\tconst bootstrapSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: false });\n\tapplyHttpProxySettings(bootstrapSettingsManager.getGlobalSettings().httpProxy);\n\tconfigureHttpDispatcher();\n\tif (await handlePackageCommand(args, { extensionFactories })) {\n\t\tconst exitCode = process.exitCode ?? 0;\n\t\tawait drainProcessStdio();\n\t\tprocess.exit(exitCode);\n\t\treturn;\n\t}\n\tif (await handleConfigCommand(args, { extensionFactories })) {\n\t\treturn;\n\t}\n\tif (await runAuthCommand(args)) {\n\t\tconst exitCode = process.exitCode ?? 0;\n\t\tawait drainProcessStdio();\n\t\tprocess.exit(exitCode);\n\t\treturn;\n\t}\n\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\tconst 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\tif (engineEnv.child === \"1\") startInteractiveEngineLiveness(writeRawStdout).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\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\tlet startupEarlyInputCapture: EarlyInputCapture | undefined = startEarlyInputCapture({\n\t\tenabled: computeStartupInputCaptureEnabled({\n\t\t\tappMode,\n\t\t\tstdinIsTTY: process.stdin.isTTY === true,\n\t\t\tparsed,\n\t\t\tsessionCwd: cwd,\n\t\t\tprojectTrustStore,\n\t\t\tresolvedExtensionPathCount: resolvedExtensionPaths?.length ?? 0,\n\t\t\tresolvedResourcePathCount:\n\t\t\t\t(resolvedSkillPaths?.length ?? 0) +\n\t\t\t\t(resolvedPromptTemplatePaths?.length ?? 0) +\n\t\t\t\t(resolvedThemePaths?.length ?? 0),\n\t\t\tdeprecationWarningCount: 0,\n\t\t}),\n\t});\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\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// sessionDir lookup during session selection.\n\tconst envSessionDir = getEnvValue(ENV_SESSION_DIR);\n\tconst sessionDir =\n\t\t(parsed.sessionDir ? normalizePath(parsed.sessionDir) : undefined) ??\n\t\t(envSessionDir ? expandTildePath(envSessionDir) : undefined) ??\n\t\tstartupSettingsManager.getSessionDir();\n\tlet sessionManager = applyInheritedWorkflowSessionClassification(\n\t\tawait createSessionManager(parsed, cwd, sessionDir, startupSettingsManager),\n\t);\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 = SessionManager.open(missingSessionCwdIssue.sessionFile!, sessionDir, 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\tprocess.exit(1);\n\t\t}\n\t\tsessionManager.appendSessionInfo(name);\n\t}\n\ttime(\"createSessionManager\");\n\n\tconst sessionCwd = sessionManager.getCwd();\n\tconst autoTrustOnReloadCwd =\n\t\tparsed.projectTrustOverride === undefined && !hasProjectTrustInputs(sessionCwd) ? sessionCwd : undefined;\n\n\tconst builtinPackagePaths = options?.builtinPackagePaths ?? getBuiltinPackagePaths();\n\tconst trustPromptMode: AppMode = parsed.help || parsed.listModels !== undefined ? \"print\" : appMode;\n\tconst projectTrustByCwd = new Map<string, boolean>();\n\tconst borrowedExtensionSourceTrustByPath = new Map<string, boolean>();\n\tlet deferredExtensionLoad = false;\n\tconst createRuntime: CreateAgentSessionRuntimeFactory = 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\tparsed.projectTrustOverride === undefined && cachedProjectTrust === undefined && hasTrustInputs;\n\t\tconst runtimeSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: initialProjectTrusted });\n\t\tconst deferExtensions = isolateInteractiveHost\n\t\t\t? false\n\t\t\t: computeDeferExtensions({\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: resolvedExtensionPaths?.length ?? 0,\n\t\t\t\t\tresolvedResourcePathCount:\n\t\t\t\t\t\t(resolvedSkillPaths?.length ?? 0) +\n\t\t\t\t\t\t(resolvedPromptTemplatePaths?.length ?? 0) +\n\t\t\t\t\t\t(resolvedThemePaths?.length ?? 0),\n\t\t\t\t\thasSystemPromptInput: parsed.systemPrompt !== undefined || (parsed.appendSystemPrompt?.length ?? 0) > 0,\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;\n\t\t\tstartupEarlyInputCapture ??= startEarlyInputCapture({\n\t\t\t\tenabled: deferExtensions && deprecationWarnings.length === 0,\n\t\t\t});\n\t\t}\n\t\tconst getProjectTrustContext = () =>\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\tconst services = await createAgentSessionServices({\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 || (resolvedExtensionPaths?.length ?? 0) > 0\n\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\trunMigrations(cwd, { projectTrusted: 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\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\tif (isolateInteractiveHost) limitMandatoryIntercomToTool(services.resourceLoader);\n\t\tconst { settingsManager, modelRuntime, resourceLoader } = services;\n\t\tconst diagnostics: AgentSessionRuntimeDiagnostic[] = [\n\t\t\t...services.diagnostics,\n\t\t\t...collectSettingsDiagnostics(settingsManager, \"runtime creation\"),\n\t\t\t...resourceLoader.getExtensions().errors.map(({ path, error }) => ({\n\t\t\t\ttype: \"error\" as const,\n\t\t\t\tmessage: `Failed to load extension \"${path}\": ${error}`,\n\t\t\t})),\n\t\t];\n\t\tconst modelPatterns = isolateInteractiveHost ? undefined : (parsed.models ?? settingsManager.getEnabledModels());\n\t\tconst scopedModels =\n\t\t\tmodelPatterns && modelPatterns.length > 0\n\t\t\t\t? deferredExtensionLoad\n\t\t\t\t\t? (await resolveModelScopeWithDiagnostics(modelPatterns, modelRuntime)).scopedModels\n\t\t\t\t\t: await resolveModelScope(modelPatterns, modelRuntime)\n\t\t\t\t: [];\n\t\tconst sessionArgs = isolateInteractiveHost\n\t\t\t? { ...parsed, provider: undefined, model: undefined, apiKey: undefined, models: undefined }\n\t\t\t: parsed;\n\t\tconst {\n\t\t\toptions: sessionOptions,\n\t\t\tcliThinkingFromModel,\n\t\t\tdiagnostics: sessionOptionDiagnostics,\n\t\t} = buildSessionOptions(\n\t\t\tsessionArgs,\n\t\t\tscopedModels,\n\t\t\tsessionManager.buildSessionContext().messages.length > 0,\n\t\t\tmodelRuntime,\n\t\t\tsettingsManager,\n\t\t);\n\t\tdiagnostics.push(...sessionOptionDiagnostics);\n\n\t\tif (parsed.apiKey && !isolateInteractiveHost) {\n\t\t\tif (!sessionOptions.model) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"--api-key requires a model to be specified via --model, --provider/--model, or --models\",\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Bound the complete CLI key operation—from credential mutation through\n\t\t\t\t// provider-scoped catalog refresh—with the established model-refresh budget.\n\t\t\t\tconst apiKeySignal = AbortSignal.timeout(INTERACTIVE_MODEL_REFRESH_TIMEOUT_MS);\n\t\t\t\tawait applyCliRuntimeApiKey(modelRuntime, sessionOptions.model.provider, parsed.apiKey, apiKeySignal);\n\t\t\t}\n\t\t}\n\n\t\tconst created = await createAgentSessionFromServices({\n\t\t\tservices,\n\t\t\tsessionManager,\n\t\t\tsessionStartEvent,\n\t\t\tmodel: sessionOptions.model,\n\t\t\tthinkingLevel: sessionOptions.thinkingLevel,\n\t\t\tscopedModels: sessionOptions.scopedModels,\n\t\t\ttools: sessionOptions.tools,\n\t\t\texcludedTools: resolveExcludedToolsForAppMode(appMode, sessionOptions.excludedTools),\n\t\t\tnoTools: sessionOptions.noTools,\n\t\t\tcustomTools: sessionOptions.customTools,\n\t\t});\n\t\tconst cliThinkingOverride = parsed.thinking !== undefined || cliThinkingFromModel;\n\t\tif (created.session.model && cliThinkingOverride) {\n\t\t\tcreated.session.setThinkingLevel(created.session.thinkingLevel);\n\t\t}\n\t\treturn {\n\t\t\t...created,\n\t\t\tservices,\n\t\t\tdiagnostics,\n\t\t};\n\t};\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, resourceLoader } = services;\n\tsetCapabilityOverrides(settingsManager.getTerminalCapabilityOverrides());\n\tapplyHttpProxySettings(settingsManager.getGlobalSettings().httpProxy);\n\tconfigureHttpDispatcher(settingsManager.getHttpIdleTimeoutMs());\n\tif (parsed.help) {\n\t\treportDiagnostics(startupSettingsDiagnostics);\n\t\tconst extensionFlags = resourceLoader\n\t\t\t.getExtensions()\n\t\t\t.extensions.flatMap((extension) => Array.from(extension.flags.values()));\n\t\tif (shouldRestoreStdoutForMetadata) {\n\t\t\trestoreStdout();\n\t\t}\n\t\tprintHelp(extensionFlags);\n\t\tprocess.exit(0);\n\t}\n\n\tif (parsed.listModels !== undefined) {\n\t\treportDiagnostics(startupSettingsDiagnostics);\n\t\tconst searchPattern = typeof parsed.listModels === \"string\" ? parsed.listModels : undefined;\n\t\tif (shouldRestoreStdoutForMetadata) {\n\t\t\trestoreStdout();\n\t\t}\n\t\tawait listModels(modelRuntime, searchPattern);\n\t\tprocess.exit(0);\n\t}\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(\n\t\tparsed,\n\t\tsettingsManager.getImageAutoResize(),\n\t\tstdinContent,\n\t);\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\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) {\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);\n\t} else if (appMode === \"interactive\") {\n\t\tif (scopedModels.length > 0 && (parsed.verbose || !settingsManager.getQuietStartup())) {\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\tinitialMessage,\n\t\t\tinitialImages,\n\t\t\tinitialMessages: parsed.messages,\n\t\t\tverbose: parsed.verbose,\n\t\t\tinitialThemeSetting: parsed.useTheme,\n\t\t\tdeferredExtensionLoad,\n\t\t\tstartupInputCapture: startupEarlyInputCapture,\n\t\t\tdeferredModelScopePatterns: deferredExtensionLoad\n\t\t\t\t? (parsed.models ?? settingsManager.getEnabledModels())\n\t\t\t\t: undefined,\n\t\t\tdeferredModelScopePreserveThinking: parsed.thinking !== undefined,\n\t\t\tterminal: options?.internalInteractiveHarness?.terminal,\n\t\t});\n\t\toptions?.internalInteractiveHarness?.onMode?.(interactiveMode);\n\t\tif (startupBenchmark) {\n\t\t\tawait interactiveMode.init();\n\t\t\ttime(\"interactiveMode.init\");\n\t\t\tawait interactiveMode.ensureDeferredStartupComplete();\n\t\t\tprintTimings();\n\t\t\tinteractiveMode.stop();\n\t\t\tstopThemeWatcher();\n\t\t\tif (process.stdout.writableLength > 0) {\n\t\t\t\tawait new Promise<void>((resolve) => process.stdout.once(\"drain\", resolve));\n\t\t\t}\n\t\t\tif (process.stderr.writableLength > 0) {\n\t\t\t\tawait new Promise<void>((resolve) => process.stderr.once(\"drain\", resolve));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tprintTimings();\n\t\tawait interactiveMode.run();\n\t} else {\n\t\tprintTimings();\n\t\tconst exitCode = await runPrintMode(runtime, {\n\t\t\tmode: toPrintOutputMode(appMode),\n\t\t\tmessages: parsed.messages,\n\t\t\tinitialMessage,\n\t\t\tinitialImages,\n\t\t});\n\t\tstopThemeWatcher();\n\t\trestoreStdout();\n\t\tif (exitCode !== 0) {\n\t\t\tprocess.exitCode = exitCode;\n\t\t}\n\t\treturn;\n\t}\n}\n"]}
@@ -2,7 +2,7 @@ import { matchesKey, truncateToWidth, wrapTextWithAnsi } from "@earendil-works/p
2
2
  import { theme } from "../theme/theme.js";
3
3
  const ROWS = ["chat", "workflow"];
4
4
  const LABEL_WIDTH = 16;
5
- const DESCRIPTION = "Priority tier for supported OpenAI and shared ChatGPT Codex transports.";
5
+ const DESCRIPTION = "Use faster routing for the selected model when supported by its provider.";
6
6
  const ROW_DETAILS = {
7
7
  chat: {
8
8
  label: "Chat",
@@ -21,7 +21,7 @@ export class FastModeSelectorComponent {
21
21
  }
22
22
  invalidate() { }
23
23
  render(width) {
24
- const lines = [truncateToWidth(theme.bold(theme.fg("accent", "Codex fast mode")), width)];
24
+ const lines = [truncateToWidth(theme.bold(theme.fg("accent", "Fast mode")), width)];
25
25
  for (const line of wrapTextWithAnsi(DESCRIPTION, Math.max(20, width))) {
26
26
  lines.push(theme.fg("muted", line));
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fast-mode-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/fast-mode-selector.ts"],"names":[],"mappings":"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","sourcesContent":["import { matchesKey, truncateToWidth, wrapTextWithAnsi } from \"@earendil-works/pi-tui\";\nimport { theme } from \"../theme/theme.ts\";\n\nexport interface FastModeSelectorConfig {\n\tchat: boolean;\n\tworkflow: boolean;\n}\n\nexport interface FastModeSelectorCallbacks {\n\tonChange: (settings: FastModeSelectorConfig, changedRow: FastModeRow) => void;\n\tonCancel: () => void | Promise<void>;\n}\n\nexport type FastModeRow = keyof FastModeSelectorConfig;\n\nconst ROWS: readonly FastModeRow[] = [\"chat\", \"workflow\"];\nconst LABEL_WIDTH = 16;\nconst DESCRIPTION = \"Priority tier for supported OpenAI and shared ChatGPT Codex transports.\";\nconst ROW_DETAILS: Record<FastModeRow, { label: string; scope: string }> = {\n\tchat: {\n\t\tlabel: \"Chat\",\n\t\tscope: \"this chat + subagents\",\n\t},\n\tworkflow: {\n\t\tlabel: \"Workflow stages\",\n\t\tscope: \"workflow stages\",\n\t},\n};\n\nexport class FastModeSelectorComponent {\n\tprivate selectedRowIndex = 0;\n\tprivate state: FastModeSelectorConfig;\n\tprivate readonly callbacks: FastModeSelectorCallbacks;\n\n\tconstructor(config: FastModeSelectorConfig, callbacks: FastModeSelectorCallbacks) {\n\t\tthis.state = { ...config };\n\t\tthis.callbacks = callbacks;\n\t}\n\n\tinvalidate(): void {}\n\n\trender(width: number): string[] {\n\t\tconst lines: string[] = [truncateToWidth(theme.bold(theme.fg(\"accent\", \"Codex fast mode\")), width)];\n\t\tfor (const line of wrapTextWithAnsi(DESCRIPTION, Math.max(20, width))) {\n\t\t\tlines.push(theme.fg(\"muted\", line));\n\t\t}\n\t\tlines.push(\"\");\n\t\tfor (const row of ROWS) {\n\t\t\tlines.push(this.renderRow(row, width));\n\t\t}\n\t\tlines.push(\"\");\n\t\tlines.push(truncateToWidth(this.renderHint(), width));\n\t\treturn lines.map((line) => truncateToWidth(line, width));\n\t}\n\n\thandleInput(data: string): boolean {\n\t\tif (matchesKey(data, \"tab\") || matchesKey(data, \"down\")) {\n\t\t\tthis.moveRow(1);\n\t\t\treturn true;\n\t\t}\n\t\tif (matchesKey(data, \"shift+tab\") || matchesKey(data, \"up\")) {\n\t\t\tthis.moveRow(-1);\n\t\t\treturn true;\n\t\t}\n\t\tif (matchesKey(data, \"enter\") || data === \" \") {\n\t\t\tthis.toggleCurrentRow();\n\t\t\treturn true;\n\t\t}\n\t\tif (matchesKey(data, \"left\")) {\n\t\t\tthis.setCurrentRow(false);\n\t\t\treturn true;\n\t\t}\n\t\tif (matchesKey(data, \"right\")) {\n\t\t\tthis.setCurrentRow(true);\n\t\t\treturn true;\n\t\t}\n\t\tif (matchesKey(data, \"escape\") || matchesKey(data, \"ctrl+c\")) {\n\t\t\tvoid this.callbacks.onCancel();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tgetFocusedRow(): FastModeRow {\n\t\treturn ROWS[this.selectedRowIndex]!;\n\t}\n\n\tgetSettings(): FastModeSelectorConfig {\n\t\treturn { ...this.state };\n\t}\n\n\tprivate moveRow(delta: 1 | -1): void {\n\t\tthis.selectedRowIndex = (this.selectedRowIndex + delta + ROWS.length) % ROWS.length;\n\t}\n\n\tprivate setCurrentRow(enabled: boolean): void {\n\t\tconst row = this.getFocusedRow();\n\t\tif (this.state[row] === enabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis.state = { ...this.state, [row]: enabled };\n\t\tthis.callbacks.onChange({ ...this.state }, row);\n\t}\n\n\tprivate toggleCurrentRow(): void {\n\t\tconst row = this.getFocusedRow();\n\t\tthis.setCurrentRow(!this.state[row]);\n\t}\n\n\tprivate renderHint(): string {\n\t\tconst sep = theme.fg(\"dim\", \" · \");\n\t\tconst hint = (key: string, label: string): string => theme.fg(\"dim\", key) + theme.fg(\"muted\", ` ${label}`);\n\t\treturn [hint(\"↑↓/tab\", \"row\"), hint(\"space/enter\", \"toggle\"), hint(\"esc\", \"close\")].join(sep);\n\t}\n\n\tprivate renderRow(row: FastModeRow, width: number): string {\n\t\tconst selected = this.getFocusedRow() === row;\n\t\tconst detail = ROW_DETAILS[row];\n\t\tconst prefix = selected ? theme.fg(\"accent\", \"› \") : \" \";\n\t\tconst label = detail.label.padEnd(LABEL_WIDTH, \" \");\n\t\tconst labelText = selected ? theme.bold(theme.fg(\"accent\", label)) : theme.fg(\"text\", label);\n\t\tconst scope = selected ? theme.fg(\"muted\", detail.scope) : theme.fg(\"dim\", detail.scope);\n\t\treturn truncateToWidth(`${prefix}${labelText} ${this.renderToggle(row)} ${scope}`, width);\n\t}\n\n\tprivate renderToggle(row: FastModeRow): string {\n\t\tconst enabled = this.state[row];\n\t\tconst text = enabled ? \"[● ON ]\" : \"[○ OFF]\";\n\t\tif (enabled) {\n\t\t\treturn theme.bold(theme.fg(\"success\", text));\n\t\t}\n\t\treturn this.getFocusedRow() === row ? theme.fg(\"muted\", text) : theme.fg(\"dim\", text);\n\t}\n}\n"]}
1
+ {"version":3,"file":"fast-mode-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/fast-mode-selector.ts"],"names":[],"mappings":"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","sourcesContent":["import { matchesKey, truncateToWidth, wrapTextWithAnsi } from \"@earendil-works/pi-tui\";\nimport { theme } from \"../theme/theme.ts\";\n\nexport interface FastModeSelectorConfig {\n\tchat: boolean;\n\tworkflow: boolean;\n}\n\nexport interface FastModeSelectorCallbacks {\n\tonChange: (settings: FastModeSelectorConfig, changedRow: FastModeRow) => void;\n\tonCancel: () => void | Promise<void>;\n}\n\nexport type FastModeRow = keyof FastModeSelectorConfig;\n\nconst ROWS: readonly FastModeRow[] = [\"chat\", \"workflow\"];\nconst LABEL_WIDTH = 16;\nconst DESCRIPTION = \"Use faster routing for the selected model when supported by its provider.\";\nconst ROW_DETAILS: Record<FastModeRow, { label: string; scope: string }> = {\n\tchat: {\n\t\tlabel: \"Chat\",\n\t\tscope: \"this chat + subagents\",\n\t},\n\tworkflow: {\n\t\tlabel: \"Workflow stages\",\n\t\tscope: \"workflow stages\",\n\t},\n};\n\nexport class FastModeSelectorComponent {\n\tprivate selectedRowIndex = 0;\n\tprivate state: FastModeSelectorConfig;\n\tprivate readonly callbacks: FastModeSelectorCallbacks;\n\n\tconstructor(config: FastModeSelectorConfig, callbacks: FastModeSelectorCallbacks) {\n\t\tthis.state = { ...config };\n\t\tthis.callbacks = callbacks;\n\t}\n\n\tinvalidate(): void {}\n\n\trender(width: number): string[] {\n\t\tconst lines: string[] = [truncateToWidth(theme.bold(theme.fg(\"accent\", \"Fast mode\")), width)];\n\t\tfor (const line of wrapTextWithAnsi(DESCRIPTION, Math.max(20, width))) {\n\t\t\tlines.push(theme.fg(\"muted\", line));\n\t\t}\n\t\tlines.push(\"\");\n\t\tfor (const row of ROWS) {\n\t\t\tlines.push(this.renderRow(row, width));\n\t\t}\n\t\tlines.push(\"\");\n\t\tlines.push(truncateToWidth(this.renderHint(), width));\n\t\treturn lines.map((line) => truncateToWidth(line, width));\n\t}\n\n\thandleInput(data: string): boolean {\n\t\tif (matchesKey(data, \"tab\") || matchesKey(data, \"down\")) {\n\t\t\tthis.moveRow(1);\n\t\t\treturn true;\n\t\t}\n\t\tif (matchesKey(data, \"shift+tab\") || matchesKey(data, \"up\")) {\n\t\t\tthis.moveRow(-1);\n\t\t\treturn true;\n\t\t}\n\t\tif (matchesKey(data, \"enter\") || data === \" \") {\n\t\t\tthis.toggleCurrentRow();\n\t\t\treturn true;\n\t\t}\n\t\tif (matchesKey(data, \"left\")) {\n\t\t\tthis.setCurrentRow(false);\n\t\t\treturn true;\n\t\t}\n\t\tif (matchesKey(data, \"right\")) {\n\t\t\tthis.setCurrentRow(true);\n\t\t\treturn true;\n\t\t}\n\t\tif (matchesKey(data, \"escape\") || matchesKey(data, \"ctrl+c\")) {\n\t\t\tvoid this.callbacks.onCancel();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tgetFocusedRow(): FastModeRow {\n\t\treturn ROWS[this.selectedRowIndex]!;\n\t}\n\n\tgetSettings(): FastModeSelectorConfig {\n\t\treturn { ...this.state };\n\t}\n\n\tprivate moveRow(delta: 1 | -1): void {\n\t\tthis.selectedRowIndex = (this.selectedRowIndex + delta + ROWS.length) % ROWS.length;\n\t}\n\n\tprivate setCurrentRow(enabled: boolean): void {\n\t\tconst row = this.getFocusedRow();\n\t\tif (this.state[row] === enabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis.state = { ...this.state, [row]: enabled };\n\t\tthis.callbacks.onChange({ ...this.state }, row);\n\t}\n\n\tprivate toggleCurrentRow(): void {\n\t\tconst row = this.getFocusedRow();\n\t\tthis.setCurrentRow(!this.state[row]);\n\t}\n\n\tprivate renderHint(): string {\n\t\tconst sep = theme.fg(\"dim\", \" · \");\n\t\tconst hint = (key: string, label: string): string => theme.fg(\"dim\", key) + theme.fg(\"muted\", ` ${label}`);\n\t\treturn [hint(\"↑↓/tab\", \"row\"), hint(\"space/enter\", \"toggle\"), hint(\"esc\", \"close\")].join(sep);\n\t}\n\n\tprivate renderRow(row: FastModeRow, width: number): string {\n\t\tconst selected = this.getFocusedRow() === row;\n\t\tconst detail = ROW_DETAILS[row];\n\t\tconst prefix = selected ? theme.fg(\"accent\", \"› \") : \" \";\n\t\tconst label = detail.label.padEnd(LABEL_WIDTH, \" \");\n\t\tconst labelText = selected ? theme.bold(theme.fg(\"accent\", label)) : theme.fg(\"text\", label);\n\t\tconst scope = selected ? theme.fg(\"muted\", detail.scope) : theme.fg(\"dim\", detail.scope);\n\t\treturn truncateToWidth(`${prefix}${labelText} ${this.renderToggle(row)} ${scope}`, width);\n\t}\n\n\tprivate renderToggle(row: FastModeRow): string {\n\t\tconst enabled = this.state[row];\n\t\tconst text = enabled ? \"[● ON ]\" : \"[○ OFF]\";\n\t\tif (enabled) {\n\t\t\treturn theme.bold(theme.fg(\"success\", text));\n\t\t}\n\t\treturn this.getFocusedRow() === row ? theme.fg(\"muted\", text) : theme.fg(\"dim\", text);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"settings-selector-handlers.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector-handlers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGX,iBAAiB,EAEjB,MAAM,8BAA8B,CAAC;AAEtC,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,iBAAiB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAqGhH"}
1
+ {"version":3,"file":"settings-selector-handlers.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector-handlers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGX,iBAAiB,EAEjB,MAAM,8BAA8B,CAAC;AAEtC,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,iBAAiB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAwGhH"}
@@ -78,6 +78,9 @@ export function createSettingsChangeHandler(callbacks) {
78
78
  case "fullscreen-exit-output":
79
79
  callbacks.onFullscreenExitOutputChange(newValue);
80
80
  break;
81
+ case "fullscreen-copy-on-select":
82
+ callbacks.onFullscreenCopyOnSelectChange(newValue === "true");
83
+ break;
81
84
  case "editor-padding":
82
85
  callbacks.onEditorPaddingXChange(parseInt(newValue, 10));
83
86
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"settings-selector-handlers.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE3G,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAQhF,MAAM,UAAU,2BAA2B,CAAC,SAA4B;IACvE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE;QACvB,QAAQ,EAAE,EAAE,CAAC;YACZ,KAAK,aAAa;gBACjB,SAAS,CAAC,mBAAmB,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBACnD,MAAM;YACP,KAAK,aAAa;gBACjB,SAAS,CAAC,kBAAkB,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBAClD,MAAM;YACP,KAAK,mBAAmB;gBACvB,SAAS,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACP,KAAK,oBAAoB;gBACxB,SAAS,CAAC,wBAAwB,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBACxD,MAAM;YACP,KAAK,cAAc;gBAClB,SAAS,CAAC,mBAAmB,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBACnD,MAAM;YACP,KAAK,gBAAgB;gBACpB,SAAS,CAAC,2BAA2B,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBAC3D,MAAM;YACP,KAAK,eAAe;gBACnB,SAAS,CAAC,oBAAoB,CAAC,QAA6B,CAAC,CAAC;gBAC9D,MAAM;YACP,KAAK,gBAAgB;gBACpB,SAAS,CAAC,oBAAoB,CAAC,QAA6B,CAAC,CAAC;gBAC9D,MAAM;YACP,KAAK,WAAW;gBACf,SAAS,CAAC,iBAAiB,CAAC,QAAqB,CAAC,CAAC;gBACnD,MAAM;YACP,KAAK,mBAAmB,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;gBACvF,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,SAAS,IAAI,4BAA4B,CAAC,CAAC;gBACvF,MAAM;YACP,CAAC;YACD,KAAK,kBAAkB;gBACtB,SAAS,CAAC,8BAA8B,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBAC9D,MAAM;YACP,KAAK,eAAe;gBACnB,SAAS,CAAC,yBAAyB,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBACzD,MAAM;YACP,KAAK,mBAAmB;gBACvB,SAAS,CAAC,4BAA4B,CAAC,QAAgC,CAAC,CAAC;gBACzE,MAAM;YACP,KAAK,iBAAiB;gBACrB,SAAS,CAAC,6BAA6B,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBAC7D,MAAM;YACP,KAAK,oBAAoB;gBACxB,SAAS,CAAC,yBAAyB,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBACzD,MAAM;YACP,KAAK,eAAe;gBACnB,SAAS,CAAC,oBAAoB,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBACpD,MAAM;YACP,KAAK,mBAAmB;gBACvB,SAAS,CAAC,8BAA8B,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBAC9D,MAAM;YACP,KAAK,uBAAuB,EAAE,CAAC;gBAC9B,MAAM,mBAAmB,GAAG,8BAA8B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACzE,IAAI,mBAAmB,EAAE,CAAC;oBACzB,SAAS,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM;YACP,CAAC;YACD,KAAK,sBAAsB;gBAC1B,SAAS,CAAC,0BAA0B,CAAC,QAA8B,CAAC,CAAC;gBACrE,MAAM;YACP,KAAK,kBAAkB;gBACtB,SAAS,CAAC,sBAAsB,CAAC,QAA0B,CAAC,CAAC;gBAC7D,MAAM;YACP,KAAK,sBAAsB;gBAC1B,SAAS,CAAC,0BAA0B,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBAC1D,MAAM;YACP,KAAK,sBAAsB;gBAC1B,SAAS,CAAC,2BAA2B,CAAC,QAA+B,CAAC,CAAC;gBACvE,MAAM;YACP,KAAK,wBAAwB;gBAC5B,SAAS,CAAC,4BAA4B,CAAC,QAAgC,CAAC,CAAC;gBACzE,MAAM;YACP,KAAK,gBAAgB;gBACpB,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzD,MAAM;YACP,KAAK,gBAAgB;gBACpB,SAAS,CAAC,iBAAiB,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,MAAM;YACP,KAAK,0BAA0B;gBAC9B,SAAS,CAAC,8BAA8B,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBACjE,MAAM;YACP,KAAK,iBAAiB;gBACrB,SAAS,CAAC,qBAAqB,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBACrD,MAAM;YACP,KAAK,mBAAmB;gBACvB,SAAS,CAAC,4BAA4B,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBAC5D,MAAM;YACP,KAAK,oBAAoB;gBACxB,SAAS,CAAC,4BAA4B,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;gBAC5D,MAAM;YACP,KAAK,OAAO;gBACX,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAClC,MAAM;QACR,CAAC;IACF,CAAC,CAAC;AACH,CAAC","sourcesContent":["import type { Transport } from \"@bastani/pi-ai/compat\";\nimport type { ScrollViewScrollbar } from \"@earendil-works/pi-tui\";\nimport { DEFAULT_HTTP_IDLE_TIMEOUT_MS, HTTP_IDLE_TIMEOUT_CHOICES } from \"../../../core/http-dispatcher.ts\";\nimport type { FullscreenExitOutput, MermaidRenderingMode } from \"../../../core/settings-manager.ts\";\nimport { DEFAULT_PROJECT_TRUST_BY_LABEL } from \"./settings-selector-options.ts\";\nimport type {\n\tDoubleEscapeAction,\n\tQueueDeliveryMode,\n\tSettingsCallbacks,\n\tTreeFilterMode,\n} from \"./settings-selector-types.ts\";\n\nexport function createSettingsChangeHandler(callbacks: SettingsCallbacks): (id: string, newValue: string) => void {\n\treturn (id, newValue) => {\n\t\tswitch (id) {\n\t\t\tcase \"autocompact\":\n\t\t\t\tcallbacks.onAutoCompactChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"show-images\":\n\t\t\t\tcallbacks.onShowImagesChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"image-width-cells\":\n\t\t\t\tcallbacks.onImageWidthCellsChange(parseInt(newValue, 10));\n\t\t\t\tbreak;\n\t\t\tcase \"auto-resize-images\":\n\t\t\t\tcallbacks.onAutoResizeImagesChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"block-images\":\n\t\t\t\tcallbacks.onBlockImagesChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"skill-commands\":\n\t\t\t\tcallbacks.onEnableSkillCommandsChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"steering-mode\":\n\t\t\t\tcallbacks.onSteeringModeChange(newValue as QueueDeliveryMode);\n\t\t\t\tbreak;\n\t\t\tcase \"follow-up-mode\":\n\t\t\t\tcallbacks.onFollowUpModeChange(newValue as QueueDeliveryMode);\n\t\t\t\tbreak;\n\t\t\tcase \"transport\":\n\t\t\t\tcallbacks.onTransportChange(newValue as Transport);\n\t\t\t\tbreak;\n\t\t\tcase \"http-idle-timeout\": {\n\t\t\t\tconst selected = HTTP_IDLE_TIMEOUT_CHOICES.find((choice) => choice.label === newValue);\n\t\t\t\tcallbacks.onHttpIdleTimeoutChange(selected?.timeoutMs ?? DEFAULT_HTTP_IDLE_TIMEOUT_MS);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"bash-interceptor\":\n\t\t\t\tcallbacks.onBashInterceptorEnabledChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"hide-thinking\":\n\t\t\t\tcallbacks.onHideThinkingBlockChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"mermaid-rendering\":\n\t\t\t\tcallbacks.onMermaidRenderingModeChange(newValue as MermaidRenderingMode);\n\t\t\t\tbreak;\n\t\t\tcase \"latex-rendering\":\n\t\t\t\tcallbacks.onLatexRenderingEnabledChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"collapse-changelog\":\n\t\t\t\tcallbacks.onCollapseChangelogChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"quiet-startup\":\n\t\t\t\tcallbacks.onQuietStartupChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"install-telemetry\":\n\t\t\t\tcallbacks.onEnableInstallTelemetryChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"default-project-trust\": {\n\t\t\t\tconst defaultProjectTrust = DEFAULT_PROJECT_TRUST_BY_LABEL.get(newValue);\n\t\t\t\tif (defaultProjectTrust) {\n\t\t\t\t\tcallbacks.onDefaultProjectTrustChange(defaultProjectTrust);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"double-escape-action\":\n\t\t\t\tcallbacks.onDoubleEscapeActionChange(newValue as DoubleEscapeAction);\n\t\t\t\tbreak;\n\t\t\tcase \"tree-filter-mode\":\n\t\t\t\tcallbacks.onTreeFilterModeChange(newValue as TreeFilterMode);\n\t\t\t\tbreak;\n\t\t\tcase \"show-hardware-cursor\":\n\t\t\t\tcallbacks.onShowHardwareCursorChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"fullscreen-scrollbar\":\n\t\t\t\tcallbacks.onFullscreenScrollbarChange(newValue as ScrollViewScrollbar);\n\t\t\t\tbreak;\n\t\t\tcase \"fullscreen-exit-output\":\n\t\t\t\tcallbacks.onFullscreenExitOutputChange(newValue as FullscreenExitOutput);\n\t\t\t\tbreak;\n\t\t\tcase \"editor-padding\":\n\t\t\t\tcallbacks.onEditorPaddingXChange(parseInt(newValue, 10));\n\t\t\t\tbreak;\n\t\t\tcase \"output-padding\":\n\t\t\t\tcallbacks.onOutputPadChange(newValue === \"0\" ? 0 : 1);\n\t\t\t\tbreak;\n\t\t\tcase \"autocomplete-max-visible\":\n\t\t\t\tcallbacks.onAutocompleteMaxVisibleChange(parseInt(newValue, 10));\n\t\t\t\tbreak;\n\t\t\tcase \"clear-on-shrink\":\n\t\t\t\tcallbacks.onClearOnShrinkChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"terminal-progress\":\n\t\t\t\tcallbacks.onShowTerminalProgressChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"cache-miss-notices\":\n\t\t\t\tcallbacks.onShowCacheMissNoticesChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"theme\":\n\t\t\t\tcallbacks.onThemeChange(newValue);\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n"]}
1
+ {"version":3,"file":"settings-selector-handlers.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector-handlers.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Transport } from \"@bastani/pi-ai/compat\";\nimport type { ScrollViewScrollbar } from \"@earendil-works/pi-tui\";\nimport { DEFAULT_HTTP_IDLE_TIMEOUT_MS, HTTP_IDLE_TIMEOUT_CHOICES } from \"../../../core/http-dispatcher.ts\";\nimport type { FullscreenExitOutput, MermaidRenderingMode } from \"../../../core/settings-manager.ts\";\nimport { DEFAULT_PROJECT_TRUST_BY_LABEL } from \"./settings-selector-options.ts\";\nimport type {\n\tDoubleEscapeAction,\n\tQueueDeliveryMode,\n\tSettingsCallbacks,\n\tTreeFilterMode,\n} from \"./settings-selector-types.ts\";\n\nexport function createSettingsChangeHandler(callbacks: SettingsCallbacks): (id: string, newValue: string) => void {\n\treturn (id, newValue) => {\n\t\tswitch (id) {\n\t\t\tcase \"autocompact\":\n\t\t\t\tcallbacks.onAutoCompactChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"show-images\":\n\t\t\t\tcallbacks.onShowImagesChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"image-width-cells\":\n\t\t\t\tcallbacks.onImageWidthCellsChange(parseInt(newValue, 10));\n\t\t\t\tbreak;\n\t\t\tcase \"auto-resize-images\":\n\t\t\t\tcallbacks.onAutoResizeImagesChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"block-images\":\n\t\t\t\tcallbacks.onBlockImagesChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"skill-commands\":\n\t\t\t\tcallbacks.onEnableSkillCommandsChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"steering-mode\":\n\t\t\t\tcallbacks.onSteeringModeChange(newValue as QueueDeliveryMode);\n\t\t\t\tbreak;\n\t\t\tcase \"follow-up-mode\":\n\t\t\t\tcallbacks.onFollowUpModeChange(newValue as QueueDeliveryMode);\n\t\t\t\tbreak;\n\t\t\tcase \"transport\":\n\t\t\t\tcallbacks.onTransportChange(newValue as Transport);\n\t\t\t\tbreak;\n\t\t\tcase \"http-idle-timeout\": {\n\t\t\t\tconst selected = HTTP_IDLE_TIMEOUT_CHOICES.find((choice) => choice.label === newValue);\n\t\t\t\tcallbacks.onHttpIdleTimeoutChange(selected?.timeoutMs ?? DEFAULT_HTTP_IDLE_TIMEOUT_MS);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"bash-interceptor\":\n\t\t\t\tcallbacks.onBashInterceptorEnabledChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"hide-thinking\":\n\t\t\t\tcallbacks.onHideThinkingBlockChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"mermaid-rendering\":\n\t\t\t\tcallbacks.onMermaidRenderingModeChange(newValue as MermaidRenderingMode);\n\t\t\t\tbreak;\n\t\t\tcase \"latex-rendering\":\n\t\t\t\tcallbacks.onLatexRenderingEnabledChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"collapse-changelog\":\n\t\t\t\tcallbacks.onCollapseChangelogChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"quiet-startup\":\n\t\t\t\tcallbacks.onQuietStartupChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"install-telemetry\":\n\t\t\t\tcallbacks.onEnableInstallTelemetryChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"default-project-trust\": {\n\t\t\t\tconst defaultProjectTrust = DEFAULT_PROJECT_TRUST_BY_LABEL.get(newValue);\n\t\t\t\tif (defaultProjectTrust) {\n\t\t\t\t\tcallbacks.onDefaultProjectTrustChange(defaultProjectTrust);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"double-escape-action\":\n\t\t\t\tcallbacks.onDoubleEscapeActionChange(newValue as DoubleEscapeAction);\n\t\t\t\tbreak;\n\t\t\tcase \"tree-filter-mode\":\n\t\t\t\tcallbacks.onTreeFilterModeChange(newValue as TreeFilterMode);\n\t\t\t\tbreak;\n\t\t\tcase \"show-hardware-cursor\":\n\t\t\t\tcallbacks.onShowHardwareCursorChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"fullscreen-scrollbar\":\n\t\t\t\tcallbacks.onFullscreenScrollbarChange(newValue as ScrollViewScrollbar);\n\t\t\t\tbreak;\n\t\t\tcase \"fullscreen-exit-output\":\n\t\t\t\tcallbacks.onFullscreenExitOutputChange(newValue as FullscreenExitOutput);\n\t\t\t\tbreak;\n\t\t\tcase \"fullscreen-copy-on-select\":\n\t\t\t\tcallbacks.onFullscreenCopyOnSelectChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"editor-padding\":\n\t\t\t\tcallbacks.onEditorPaddingXChange(parseInt(newValue, 10));\n\t\t\t\tbreak;\n\t\t\tcase \"output-padding\":\n\t\t\t\tcallbacks.onOutputPadChange(newValue === \"0\" ? 0 : 1);\n\t\t\t\tbreak;\n\t\t\tcase \"autocomplete-max-visible\":\n\t\t\t\tcallbacks.onAutocompleteMaxVisibleChange(parseInt(newValue, 10));\n\t\t\t\tbreak;\n\t\t\tcase \"clear-on-shrink\":\n\t\t\t\tcallbacks.onClearOnShrinkChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"terminal-progress\":\n\t\t\t\tcallbacks.onShowTerminalProgressChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"cache-miss-notices\":\n\t\t\t\tcallbacks.onShowCacheMissNoticesChange(newValue === \"true\");\n\t\t\t\tbreak;\n\t\t\tcase \"theme\":\n\t\t\t\tcallbacks.onThemeChange(newValue);\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"settings-selector-items.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAK3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AA0HtF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,GAAG,WAAW,EAAE,CAiNtG"}
1
+ {"version":3,"file":"settings-selector-items.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAK3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAiItF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,GAAG,WAAW,EAAE,CAiNtG"}
@@ -77,6 +77,13 @@ function insertUiToggles(items, config) {
77
77
  values: ["transcript", "resume-hint"],
78
78
  });
79
79
  insertAfter(items, "fullscreen-exit-output", {
80
+ id: "fullscreen-copy-on-select",
81
+ label: "Fullscreen copy on select",
82
+ description: "Copy selected transcript text automatically on mouse release",
83
+ currentValue: config.fullscreenCopyOnSelect ? "true" : "false",
84
+ values: ["true", "false"],
85
+ });
86
+ insertAfter(items, "fullscreen-copy-on-select", {
80
87
  id: "editor-padding",
81
88
  label: "Editor padding",
82
89
  description: "Horizontal padding for input editor (0-3)",