zidane 8.2.3 → 8.2.5

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 (166) hide show
  1. package/dist/{acp-oYRjlh71.js → acp-BIInKhVI.js} +6 -6
  2. package/dist/{acp-oYRjlh71.js.map → acp-BIInKhVI.js.map} +1 -1
  3. package/dist/acp-cli.js +4 -4
  4. package/dist/acp.d.ts +2 -2
  5. package/dist/acp.js +1 -1
  6. package/dist/{agent-CBQglXtH.js → agent-CmhCOmyO.js} +10 -5
  7. package/dist/{agent-CBQglXtH.js.map → agent-CmhCOmyO.js.map} +1 -1
  8. package/dist/agent.d.ts +1 -1
  9. package/dist/agent.js +1 -1
  10. package/dist/chat/pure.d.ts +4 -4
  11. package/dist/chat/pure.js +7 -7
  12. package/dist/chat.d.ts +3 -3
  13. package/dist/chat.js +16 -16
  14. package/dist/{cli-shared-E5m_pI8A.js → cli-shared-GOehTeqk.js} +2 -2
  15. package/dist/{cli-shared-E5m_pI8A.js.map → cli-shared-GOehTeqk.js.map} +1 -1
  16. package/dist/{client-core-EEEX_u6D.d.ts → client-core-Dz8hELs4.d.ts} +15 -5
  17. package/dist/client-core-Dz8hELs4.d.ts.map +1 -0
  18. package/dist/codemode-worker.js +1 -1
  19. package/dist/codemode.js +1 -1
  20. package/dist/{connection-loop-CpgfUmuw.d.ts → connection-loop-dm_TN-QD.d.ts} +3 -3
  21. package/dist/{connection-loop-CpgfUmuw.d.ts.map → connection-loop-dm_TN-QD.d.ts.map} +1 -1
  22. package/dist/contexts/daytona.d.ts +1 -1
  23. package/dist/contexts/e2b.d.ts +1 -1
  24. package/dist/{credentials-B9DfBJP9.js → credentials-DxOQmset.js} +2 -2
  25. package/dist/{credentials-B9DfBJP9.js.map → credentials-DxOQmset.js.map} +1 -1
  26. package/dist/daemon-cli.js +2 -2
  27. package/dist/{dispatcher-Bv9-c6I2.js → dispatcher-D_9_QFO3.js} +22 -18
  28. package/dist/dispatcher-D_9_QFO3.js.map +1 -0
  29. package/dist/{engine-XmoPPB6U.js → engine-BsWBWgTB.js} +6 -6
  30. package/dist/{engine-XmoPPB6U.js.map → engine-BsWBWgTB.js.map} +1 -1
  31. package/dist/{eval-CfQlBR81.js → eval-CIHIF_Ns.js} +3 -3
  32. package/dist/{eval-CfQlBR81.js.map → eval-CIHIF_Ns.js.map} +1 -1
  33. package/dist/eval.d.ts +1 -1
  34. package/dist/eval.js +1 -1
  35. package/dist/{executor-BhthPE1q.js → executor-BSesPPcU.js} +3 -3
  36. package/dist/{executor-BhthPE1q.js.map → executor-BSesPPcU.js.map} +1 -1
  37. package/dist/{extensions-BgBwogRW.js → extensions-BJof-2mi.js} +3 -3
  38. package/dist/{extensions-BgBwogRW.js.map → extensions-BJof-2mi.js.map} +1 -1
  39. package/dist/extensions.d.ts +1 -1
  40. package/dist/extensions.js +1 -1
  41. package/dist/{fold-rules-DSypi36k.d.ts → fold-rules-CMpWNPqk.d.ts} +2 -2
  42. package/dist/{fold-rules-DSypi36k.d.ts.map → fold-rules-CMpWNPqk.d.ts.map} +1 -1
  43. package/dist/{headless-R4pbpTkm.js → headless-Bs9Lb4vs.js} +4 -4
  44. package/dist/{headless-R4pbpTkm.js.map → headless-Bs9Lb4vs.js.map} +1 -1
  45. package/dist/headless.d.ts +1 -1
  46. package/dist/headless.js +1 -1
  47. package/dist/history-worker.js +1 -1
  48. package/dist/{host-scoped-settings-C-Nmb6vr.js → host-scoped-settings-DxxI_yRo.js} +2 -2
  49. package/dist/{host-scoped-settings-C-Nmb6vr.js.map → host-scoped-settings-DxxI_yRo.js.map} +1 -1
  50. package/dist/{host-signals-BFudPyCT.js → host-signals-CUKPZZxC.js} +5 -5
  51. package/dist/{host-signals-BFudPyCT.js.map → host-signals-CUKPZZxC.js.map} +1 -1
  52. package/dist/{index-DyQyDLX1.d.ts → index-4mDRyTGJ.d.ts} +1722 -1691
  53. package/dist/index-4mDRyTGJ.d.ts.map +1 -0
  54. package/dist/{index-CDS7YdUC.d.ts → index-Dlmu8HnG.d.ts} +5 -5
  55. package/dist/{index-CDS7YdUC.d.ts.map → index-Dlmu8HnG.d.ts.map} +1 -1
  56. package/dist/{index-AqRZ3gEz.d.ts → index-QsAN9yjZ.d.ts} +3 -3
  57. package/dist/{index-AqRZ3gEz.d.ts.map → index-QsAN9yjZ.d.ts.map} +1 -1
  58. package/dist/index.d.ts +3 -3
  59. package/dist/index.js +8 -8
  60. package/dist/ipc/remote.d.ts +5 -5
  61. package/dist/ipc/remote.js +3 -3
  62. package/dist/ipc.d.ts +5 -5
  63. package/dist/ipc.js +9 -9
  64. package/dist/{links-rFaWqS2Y.js → links-Bto-5dVu.js} +10 -10
  65. package/dist/{links-rFaWqS2Y.js.map → links-Bto-5dVu.js.map} +1 -1
  66. package/dist/{mcp-allowlist-CLXweyxk.js → mcp-allowlist-BbnTBKNN.js} +2 -2
  67. package/dist/{mcp-allowlist-CLXweyxk.js.map → mcp-allowlist-BbnTBKNN.js.map} +1 -1
  68. package/dist/mcp.d.ts +1 -1
  69. package/dist/{oauth-7_48zR7n.js → oauth-BwPiX0hL.js} +66 -32
  70. package/dist/oauth-BwPiX0hL.js.map +1 -0
  71. package/dist/output/stream-json.d.ts +1 -1
  72. package/dist/output/terminal.d.ts +1 -1
  73. package/dist/plugins.d.ts +1 -1
  74. package/dist/{prelude-HzY_JEGq.js → prelude-qjPUkw4f.js} +26 -2
  75. package/dist/prelude-qjPUkw4f.js.map +1 -0
  76. package/dist/{presets-DXeHsd24.js → presets-C4hkykN-.js} +2 -2
  77. package/dist/{presets-DXeHsd24.js.map → presets-C4hkykN-.js.map} +1 -1
  78. package/dist/presets.d.ts +1 -1
  79. package/dist/presets.js +1 -1
  80. package/dist/{protocol-BIv1Yuvl.js → protocol-Do_i6Ras.js} +3 -1
  81. package/dist/protocol-Do_i6Ras.js.map +1 -0
  82. package/dist/providers/anthropic.d.ts +1 -1
  83. package/dist/providers/arcee.d.ts +1 -1
  84. package/dist/providers/baseten.d.ts +1 -1
  85. package/dist/providers/cerebras.d.ts +1 -1
  86. package/dist/providers/google.d.ts +1 -1
  87. package/dist/providers/local.d.ts +1 -1
  88. package/dist/providers/neuralwatt.d.ts +1 -1
  89. package/dist/providers/openai-compat.d.ts +1 -1
  90. package/dist/providers/openai.d.ts +1 -1
  91. package/dist/providers/openrouter.d.ts +1 -1
  92. package/dist/providers/xai.d.ts +1 -1
  93. package/dist/providers.d.ts +1 -1
  94. package/dist/{registry-eourRLY2.js → registry-DxPP_tAt.js} +3 -3
  95. package/dist/{registry-eourRLY2.js.map → registry-DxPP_tAt.js.map} +1 -1
  96. package/dist/{remote-hosts-DY2J07ut.js → remote-hosts-DcCh7fqp.js} +4 -4
  97. package/dist/{remote-hosts-DY2J07ut.js.map → remote-hosts-DcCh7fqp.js.map} +1 -1
  98. package/dist/restate.d.ts +1 -1
  99. package/dist/{secret-shapes-BjW4l6U0.js → secret-shapes-HvaYVzwc.js} +10 -2
  100. package/dist/secret-shapes-HvaYVzwc.js.map +1 -0
  101. package/dist/session/sqlite.d.ts +1 -1
  102. package/dist/{session-7TUHs42_.js → session-CCsKXID6.js} +6 -2
  103. package/dist/session-CCsKXID6.js.map +1 -0
  104. package/dist/{session-factory-CMwIXE-7.js → session-factory-Ct7J9CK1.js} +6 -6
  105. package/dist/{session-factory-CMwIXE-7.js.map → session-factory-Ct7J9CK1.js.map} +1 -1
  106. package/dist/session.d.ts +2 -2
  107. package/dist/session.js +1 -1
  108. package/dist/{settings-keys-CPdmkTz7.js → settings-keys-CnrJgT1T.js} +4 -4
  109. package/dist/{settings-keys-CPdmkTz7.js.map → settings-keys-CnrJgT1T.js.map} +1 -1
  110. package/dist/{shell-path-B8b3EOtK.js → shell-path-rJDa0OMv.js} +4 -4
  111. package/dist/{shell-path-B8b3EOtK.js.map → shell-path-rJDa0OMv.js.map} +1 -1
  112. package/dist/skills.d.ts +1 -1
  113. package/dist/{spaces-CyjMh5Zf.js → spaces-C_x2bvEl.js} +14 -4
  114. package/dist/spaces-C_x2bvEl.js.map +1 -0
  115. package/dist/{store-L01W0gGI.js → store-BpkWIaSH.js} +10 -30
  116. package/dist/store-BpkWIaSH.js.map +1 -0
  117. package/dist/{todo-edits-BERpCRPj.js → todo-edits-DKoxu7Ss.js} +3 -3
  118. package/dist/{todo-edits-BERpCRPj.js.map → todo-edits-DKoxu7Ss.js.map} +1 -1
  119. package/dist/tools/fetch-url.d.ts +1 -1
  120. package/dist/tools/web-search.d.ts +1 -1
  121. package/dist/{tools-pZVFIJ_K.js → tools-FHEIKGkh.js} +2 -2
  122. package/dist/{tools-pZVFIJ_K.js.map → tools-FHEIKGkh.js.map} +1 -1
  123. package/dist/tools.d.ts +1 -1
  124. package/dist/tools.js +2 -2
  125. package/dist/{transcript-anchors-jHrg-r-H.js → transcript-anchors-BcFLh3ZA.js} +10 -10
  126. package/dist/{transcript-anchors-jHrg-r-H.js.map → transcript-anchors-BcFLh3ZA.js.map} +1 -1
  127. package/dist/{transcript-cache-DXdgVuoy.js → transcript-cache-CdHKtx9y.js} +4 -4
  128. package/dist/{transcript-cache-DXdgVuoy.js.map → transcript-cache-CdHKtx9y.js.map} +1 -1
  129. package/dist/{transcript-reconcile-CPdrNbbR.js → transcript-reconcile-D_SWw6dX.js} +11 -3
  130. package/dist/transcript-reconcile-D_SWw6dX.js.map +1 -0
  131. package/dist/tui.d.ts +7 -7
  132. package/dist/tui.js +24 -23
  133. package/dist/tui.js.map +1 -1
  134. package/dist/{turn-operations-DuGtKuc_.d.ts → turn-operations-Dbk3xPKu.d.ts} +11 -3
  135. package/dist/{turn-operations-DuGtKuc_.d.ts.map → turn-operations-Dbk3xPKu.d.ts.map} +1 -1
  136. package/dist/{types-C0PJmBaO.d.ts → types-CMXR7A0b.d.ts} +2 -2
  137. package/dist/{types-C0PJmBaO.d.ts.map → types-CMXR7A0b.d.ts.map} +1 -1
  138. package/dist/types-CzmghX7C.js.map +1 -1
  139. package/dist/types.d.ts +2 -2
  140. package/dist/{url-D8KZ7Edw.js → url-D4vG7lzO.js} +2 -2
  141. package/dist/{url-D8KZ7Edw.js.map → url-D4vG7lzO.js.map} +1 -1
  142. package/dist/{version-bd3DQJkc.js → version-DOvIuU8M.js} +2 -2
  143. package/dist/{version-bd3DQJkc.js.map → version-DOvIuU8M.js.map} +1 -1
  144. package/dist/{workspace-exec-stream-CyfYgqAh.js → workspace-exec-stream-Bzxczzu2.js} +5 -5
  145. package/dist/{workspace-exec-stream-CyfYgqAh.js.map → workspace-exec-stream-Bzxczzu2.js.map} +1 -1
  146. package/dist/{write-file-QYrcDdl3.js → write-file-ChtRPdEL.js} +3 -3
  147. package/dist/{write-file-QYrcDdl3.js.map → write-file-ChtRPdEL.js.map} +1 -1
  148. package/dist/{ws-CURQ2igk.js → ws-CrD-4Mx6.js} +6 -6
  149. package/dist/{ws-CURQ2igk.js.map → ws-CrD-4Mx6.js.map} +1 -1
  150. package/dist/{ws-client-BVljYbdb.js → ws-client-Dond8vT3.js} +4 -4
  151. package/dist/{ws-client-BVljYbdb.js.map → ws-client-Dond8vT3.js.map} +1 -1
  152. package/docs/CODEMODE.md +6 -0
  153. package/docs/IPC.md +2 -0
  154. package/docs/ONBOARDING.md +1 -1
  155. package/package.json +1 -1
  156. package/dist/client-core-EEEX_u6D.d.ts.map +0 -1
  157. package/dist/dispatcher-Bv9-c6I2.js.map +0 -1
  158. package/dist/index-DyQyDLX1.d.ts.map +0 -1
  159. package/dist/oauth-7_48zR7n.js.map +0 -1
  160. package/dist/prelude-HzY_JEGq.js.map +0 -1
  161. package/dist/protocol-BIv1Yuvl.js.map +0 -1
  162. package/dist/secret-shapes-BjW4l6U0.js.map +0 -1
  163. package/dist/session-7TUHs42_.js.map +0 -1
  164. package/dist/spaces-CyjMh5Zf.js.map +0 -1
  165. package/dist/store-L01W0gGI.js.map +0 -1
  166. package/dist/transcript-reconcile-CPdrNbbR.js.map +0 -1
package/dist/chat.js CHANGED
@@ -1,4 +1,4 @@
1
- import { I as AUTO_COMPACT_MIN_GROWTH_FRACTION, L as OUTPUT_RESERVE_TOKENS, R as effectiveContextWindow, z as shouldAutoCompact } from "./agent-CBQglXtH.js";
1
+ import { I as AUTO_COMPACT_MIN_GROWTH_FRACTION, L as OUTPUT_RESERVE_TOKENS, R as effectiveContextWindow, z as shouldAutoCompact } from "./agent-CmhCOmyO.js";
2
2
  import { i as composeExtensionPreset, r as buildExtensionPreset } from "./debug-log-BT9EFJiA.js";
3
3
  import { appendDynamicSection } from "./prompt.js";
4
4
  import { a as projectRootOf, i as planWorktreeProjectRootRemaps, n as findProjectRoot, r as mainCheckoutRoot, t as findGitRoot } from "./project-root-BOgUA6n5.js";
@@ -7,31 +7,31 @@ import { n as buildContextBreakdown, t as buildContextSegments } from "./context
7
7
  import { d as tokenEndingAtCursor, f as generateStructuredData, l as createPathAutocompleteProvider, u as resolveInlineSuggestion } from "./src-B8dW-xgG.js";
8
8
  import { a as fmtCost, d as formatTaskStatus, f as formatTaskSummary, l as formatDuration, m as shortId, n as ageString, o as fmtTokens, p as previewLine, r as compactPath } from "./format-YgaIcuQ5.js";
9
9
  import { a as shouldAutoGenerateTitle, b as parseCommandInvocation, c as collectReferences, d as mergeReferences, f as mergeSuggestions, g as commandSteps, l as findActiveTrigger, n as cleanTitle, r as generateSessionTitle, s as applyInsert, t as patchInlineGhost, v as executeCommand } from "./inline-ghost-D-TefgOp.js";
10
- import { i as loadMarkdownCommands, n as applyMarkdownSubagents, r as loadMarkdownAgents, s as BUILTIN_SUBAGENTS } from "./headless-R4pbpTkm.js";
10
+ import { i as loadMarkdownCommands, n as applyMarkdownSubagents, r as loadMarkdownAgents, s as BUILTIN_SUBAGENTS } from "./headless-Bs9Lb4vs.js";
11
11
  import { t as projectUserPaths } from "./project-user-paths-DWqZyUgb.js";
12
12
  import { n as EMPTY_EXTENSION_REGISTRY } from "./row-fields-F0tyvIgg.js";
13
13
  import { g as parseBindingSpecs, h as parseBindingSpec, p as bindingAlternatives } from "./panels-B_DfAx68.js";
14
- import { A as keybindingsPath, B as discoverExtensions, C as DEFAULT_KEYBINDINGS, D as ensureKeybindingsFile, E as KEYBINDING_KEY_COL_WIDTH, F as readKeybindingsRaw, I as resolveExtensionKeybindings, K as defineExtension, L as stripJsonComments, M as mergeKeybindings, N as normalizeBindingValue, O as formatBindingForDisplay, P as readKeybindings, T as KEYBINDING_DEF_BY_ACTION, V as inlineLoadedExtension, W as scanExtensionDirectories, d as buildExtensionRegistry, f as disposeExtensionRegistry, g as partitionExtensionCatalog, h as mergeContributions, j as matchesBinding, k as groupBindings, p as filterExtensionRegistry, w as KEYBINDING_DEFS, z as defaultExtensionScanPaths } from "./extensions-BgBwogRW.js";
14
+ import { A as keybindingsPath, B as discoverExtensions, C as DEFAULT_KEYBINDINGS, D as ensureKeybindingsFile, E as KEYBINDING_KEY_COL_WIDTH, F as readKeybindingsRaw, I as resolveExtensionKeybindings, K as defineExtension, L as stripJsonComments, M as mergeKeybindings, N as normalizeBindingValue, O as formatBindingForDisplay, P as readKeybindings, T as KEYBINDING_DEF_BY_ACTION, V as inlineLoadedExtension, W as scanExtensionDirectories, d as buildExtensionRegistry, f as disposeExtensionRegistry, g as partitionExtensionCatalog, h as mergeContributions, j as matchesBinding, k as groupBindings, p as filterExtensionRegistry, w as KEYBINDING_DEFS, z as defaultExtensionScanPaths } from "./extensions-BJof-2mi.js";
15
15
  import { t as resolveStorageDirs } from "./xdg-CJS70jqe.js";
16
16
  import { a as DEFAULT_OAUTH_ACCOUNT_LABEL, d as isReservedCredKey, i as CRED_KEY_SLOT_SEPARATOR, l as credentialSlotOf, n as ALTERNATE_CRED_KEY_SUFFIX, o as accountCredKey, p as oauthAccountLabel, r as API_KEY_ACCOUNT_LABEL, s as alternateCredKey, t as ACCOUNT_CRED_KEY_INFIX, u as isAccountCredKey } from "./cred-keys-C0KaSRp7.js";
17
- import { $ as buildPlanSystem, C as sessionComposition, D as TODOS_METADATA_KEY, E as TODOREAD_TOOL, F as pickActiveRunId, G as IDENTITY_PREFIX, H as ACTIONS_WITH_CARE_DOCTRINE, I as pruneTodosByRun, J as PLAN_MODE_DOCTRINE, K as INTERACTION_GUIDANCE, L as sanitizeTodoItems, M as getArchivedTodosForRun, N as getTodosForRun, O as TODOWRITE_TOOL, P as isTodoTool, Q as buildBuildSystem, R as selectActiveTodos, S as resolveAgentId, T as DEFAULT_MAX_TODO_ITEMS, U as COMMUNICATION_DOCTRINE, V as useActiveTodos, W as DOING_TASKS_DOCTRINE, X as SUBAGENT_GUIDANCE, Y as PLAN_MODE_DOCTRINE_NO_PROMPTS, Z as TOKEN_DISCIPLINE_DOCTRINE, _ as compositionByKey, a as forkSession, b as profileComposition, c as BUILD_CODEMODE_AGENT, d as DEFAULT_BUDGET_EXCLUDE_TOOLS, et as envSection, f as DEFAULT_PERSIST_EXCLUDE_TOOLS, g as builtInPromptOf, h as availableAgents, i as describeForkFailure, j as createTodoTools, k as TODO_WRITE_COUNTS_METADATA_KEY, l as BUILTIN_AGENTS, n as createSessionInStore, o as newSession, p as PLAN_AGENT, q as INTERACTION_GUIDANCE_NO_PROMPTS, r as deleteSessionData, s as BUILD_AGENT, t as createMainSession, u as DEFAULT_AGENT_ID, v as compositionFits, w as singleAgentRegistry, x as profileTools, y as compositionTools, z as setTodosForRun } from "./session-factory-CMwIXE-7.js";
18
- import { $n as TODO_STATUS_GLYPHS, $t as onboardingFeatures, A as stepTranscriptCap, An as NATIVE_EXTENSIONS_REPO, At as applySettingsPatch, B as RUN_WAITING_LABEL, Bn as SKILLS_TRIGGER, Bt as planOnboarding, Ct as TUTORIAL_TOPICS, Dt as importsSomething, En as splitMarkdownCodeBlocks, Et as defaultImportSelection, F as spawnLane, Fn as ONBOARDING_AGENT_BRANDS, Ft as onboardingReducer, G as activeSnapshotFor, Gn as uniqueFilesFromReferences, Gt as transcriptPresetNotice, H as runRetryingLabel, Hn as uniqueSkillNamesFromReferences, Ht as TRANSCRIPT_PRESET_KEYS, I as spawnLaneResolver, In as PROVIDER_BRANDS, It as ONBOARDING_STEPS, J as formatUsagePercent, Jn as blendHsl, Jt as transcriptPresetPaletteItem, Kn as COMMANDS_TRIGGER, Kt as transcriptPresetOf, L as spawnParents, Ln as providerBrand, Lt as ONBOARDING_VERSION, Mn as nativeExtensionByName, Mt as createOnboardingFlow, N as turnContextSize, Nn as nativeExtensionSource, Nt as currentOnboardingStep, On as EXCLUDED_NATIVE_EXTENSIONS, Ot as ONBOARDING_SETTING_KEYS, Pn as LOCAL_SERVER_BRANDS, Pt as onboardingProgress, Qn as accentColor, Qt as onboardingFeatureCopy, R as RUN_STATUS_TIME_MS, Rn as DAEMON_HEALTH_GLYPH, Rt as SETUP_PALETTE_ITEM, St as TUTORIALS, Tt as ONBOARDING_PREVIEW_EVENTS, U as runStatusKey, Un as FILES_TRIGGER, Ut as TRANSCRIPT_PRESET_PALETTE_ID, V as runFoldStatus, Vn as createSkillsCompletionProvider, Vt as TRANSCRIPT_PRESETS, W as runTailActivity, Wn as createFilesCompletionProvider, Wt as transcriptPreset, Xn as CACHE_HINT_MIN_TOKENS, Xt as ONBOARDING_FEATURES, Y as mostConstrainedWindow, Yn as buildLinearRamp, Yt as transcriptPresetPalettePicker, Z as showsAccount, Zn as cacheHintText, Zt as ONBOARDING_FEATURE_GROUPS, _ as capTranscriptEvents, _n as mcpFailureEvent, _t as ONBOARDING_WORDS, a as displayNameFor, an as connectorServerConfig, at as effectiveOnboardingMode, b as finalizeStreamingMarkdown, bn as chunkMarkdownForRender, bt as joinNames, c as MAX_TRANSCRIPT_EVENTS, cn as filterModelCatalog, ct as migratedOnboardingRecords, dn as MCP_KEY_REFUSED_HINT, dt as onboardingRecords, en as CONNECTORS, et as APPROVAL_MODE_TRADEOFFS, fn as classifyMcpTest, ft as onboardingSettingsChange, gn as getMcpAuthStatus, gt as ONBOARDING_AGENT_NAMES, hn as MCP_STATUS_LABEL, ht as LOCAL_SERVER_NAMES, in as connectorInstalled, it as buildOnboardingResult, jn as NATIVE_EXTENSION_GROUPS, jt as canSkipOnboardingStep, kn as NATIVE_EXTENSIONS, kt as ONBOARDING_STEP_SETTINGS, ln as indexOfEntry, lt as needsOnboarding, m as TRANSCRIPT_TRIM_TO_EVENTS, mn as mcpFailureLine, mt as onboardingSwitchedFeatures, n as reconcileEvents, nn as connectorById, nt as connectorsFromImport, o as formatToolCall, on as buildModelCatalog, ot as isExistingInstall, p as TRANSCRIPT_TRIM_STEP_EVENTS, pn as isMcpAuthRefusal, pt as onboardingImportParts, qn as createCommandsCompletionProvider, qt as transcriptPresetOfPaletteItem, r as TOOL_DISPLAY, rn as connectorInputError, rt as createOnboardingRun, s as toolInputCode, sn as customModelTargets, st as mergeOnboardingState, tn as CONNECTOR_CATEGORIES, tt as SETTING_TRADEOFFS, ut as onboardingRecord, vn as reduceMcpAuth, vt as connectorAuthText, wn as normalizeMarkdownCodeFences, wt as ONBOARDING_PREVIEW_ATTACHMENTS, x as finalizeStreamingMarkdownForOwner, xt as nativeExtensionNeedText, yn as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, yt as joinFewNames, z as RUN_WAITING_DELAY_MS, zn as DAEMON_HEALTH_STYLE, zt as onboardingStep } from "./transcript-reconcile-CPdrNbbR.js";
17
+ import { $ as buildPlanSystem, C as sessionComposition, D as TODOS_METADATA_KEY, E as TODOREAD_TOOL, F as pickActiveRunId, G as IDENTITY_PREFIX, H as ACTIONS_WITH_CARE_DOCTRINE, I as pruneTodosByRun, J as PLAN_MODE_DOCTRINE, K as INTERACTION_GUIDANCE, L as sanitizeTodoItems, M as getArchivedTodosForRun, N as getTodosForRun, O as TODOWRITE_TOOL, P as isTodoTool, Q as buildBuildSystem, R as selectActiveTodos, S as resolveAgentId, T as DEFAULT_MAX_TODO_ITEMS, U as COMMUNICATION_DOCTRINE, V as useActiveTodos, W as DOING_TASKS_DOCTRINE, X as SUBAGENT_GUIDANCE, Y as PLAN_MODE_DOCTRINE_NO_PROMPTS, Z as TOKEN_DISCIPLINE_DOCTRINE, _ as compositionByKey, a as forkSession, b as profileComposition, c as BUILD_CODEMODE_AGENT, d as DEFAULT_BUDGET_EXCLUDE_TOOLS, et as envSection, f as DEFAULT_PERSIST_EXCLUDE_TOOLS, g as builtInPromptOf, h as availableAgents, i as describeForkFailure, j as createTodoTools, k as TODO_WRITE_COUNTS_METADATA_KEY, l as BUILTIN_AGENTS, n as createSessionInStore, o as newSession, p as PLAN_AGENT, q as INTERACTION_GUIDANCE_NO_PROMPTS, r as deleteSessionData, s as BUILD_AGENT, t as createMainSession, u as DEFAULT_AGENT_ID, v as compositionFits, w as singleAgentRegistry, x as profileTools, y as compositionTools, z as setTodosForRun } from "./session-factory-Ct7J9CK1.js";
18
+ import { $n as TODO_STATUS_GLYPHS, $t as onboardingFeatures, A as stepTranscriptCap, An as NATIVE_EXTENSIONS_REPO, At as applySettingsPatch, B as RUN_WAITING_LABEL, Bn as SKILLS_TRIGGER, Bt as planOnboarding, Ct as TUTORIAL_TOPICS, Dt as importsSomething, En as splitMarkdownCodeBlocks, Et as defaultImportSelection, F as spawnLane, Fn as ONBOARDING_AGENT_BRANDS, Ft as onboardingReducer, G as activeSnapshotFor, Gn as uniqueFilesFromReferences, Gt as transcriptPresetNotice, H as runRetryingLabel, Hn as uniqueSkillNamesFromReferences, Ht as TRANSCRIPT_PRESET_KEYS, I as spawnLaneResolver, In as PROVIDER_BRANDS, It as ONBOARDING_STEPS, J as formatUsagePercent, Jn as blendHsl, Jt as transcriptPresetPaletteItem, Kn as COMMANDS_TRIGGER, Kt as transcriptPresetOf, L as spawnParents, Ln as providerBrand, Lt as ONBOARDING_VERSION, Mn as nativeExtensionByName, Mt as createOnboardingFlow, N as turnContextSize, Nn as nativeExtensionSource, Nt as currentOnboardingStep, On as EXCLUDED_NATIVE_EXTENSIONS, Ot as ONBOARDING_SETTING_KEYS, Pn as LOCAL_SERVER_BRANDS, Pt as onboardingProgress, Qn as accentColor, Qt as onboardingFeatureCopy, R as RUN_STATUS_TIME_MS, Rn as DAEMON_HEALTH_GLYPH, Rt as SETUP_PALETTE_ITEM, St as TUTORIALS, Tt as ONBOARDING_PREVIEW_EVENTS, U as runStatusKey, Un as FILES_TRIGGER, Ut as TRANSCRIPT_PRESET_PALETTE_ID, V as runFoldStatus, Vn as createSkillsCompletionProvider, Vt as TRANSCRIPT_PRESETS, W as runTailActivity, Wn as createFilesCompletionProvider, Wt as transcriptPreset, Xn as CACHE_HINT_MIN_TOKENS, Xt as ONBOARDING_FEATURES, Y as mostConstrainedWindow, Yn as buildLinearRamp, Yt as transcriptPresetPalettePicker, Z as showsAccount, Zn as cacheHintText, Zt as ONBOARDING_FEATURE_GROUPS, _ as capTranscriptEvents, _n as mcpFailureEvent, _t as ONBOARDING_WORDS, a as displayNameFor, an as connectorServerConfig, at as effectiveOnboardingMode, b as finalizeStreamingMarkdown, bn as chunkMarkdownForRender, bt as joinNames, c as MAX_TRANSCRIPT_EVENTS, cn as filterModelCatalog, ct as migratedOnboardingRecords, dn as MCP_KEY_REFUSED_HINT, dt as onboardingRecords, en as CONNECTORS, et as APPROVAL_MODE_TRADEOFFS, fn as classifyMcpTest, ft as onboardingSettingsChange, gn as getMcpAuthStatus, gt as ONBOARDING_AGENT_NAMES, hn as MCP_STATUS_LABEL, ht as LOCAL_SERVER_NAMES, in as connectorInstalled, it as buildOnboardingResult, jn as NATIVE_EXTENSION_GROUPS, jt as canSkipOnboardingStep, kn as NATIVE_EXTENSIONS, kt as ONBOARDING_STEP_SETTINGS, ln as indexOfEntry, lt as needsOnboarding, m as TRANSCRIPT_TRIM_TO_EVENTS, mn as mcpFailureLine, mt as onboardingSwitchedFeatures, n as reconcileEvents, nn as connectorById, nt as connectorsFromImport, o as formatToolCall, on as buildModelCatalog, ot as isExistingInstall, p as TRANSCRIPT_TRIM_STEP_EVENTS, pn as isMcpAuthRefusal, pt as onboardingImportParts, qn as createCommandsCompletionProvider, qt as transcriptPresetOfPaletteItem, r as TOOL_DISPLAY, rn as connectorInputError, rt as createOnboardingRun, s as toolInputCode, sn as customModelTargets, st as mergeOnboardingState, tn as CONNECTOR_CATEGORIES, tt as SETTING_TRADEOFFS, ut as onboardingRecord, vn as reduceMcpAuth, vt as connectorAuthText, wn as normalizeMarkdownCodeFences, wt as ONBOARDING_PREVIEW_ATTACHMENTS, x as finalizeStreamingMarkdownForOwner, xt as nativeExtensionNeedText, yn as MARKDOWN_RENDER_CHUNK_TARGET_BYTES, yt as joinFewNames, z as RUN_WAITING_DELAY_MS, zn as DAEMON_HEALTH_STYLE, zt as onboardingStep } from "./transcript-reconcile-D_SWw6dX.js";
19
19
  import { _ as workspacePath, a as availableEnvironmentActions, f as readSessionEnvironment, g as verifyEnvironment, i as assertEnvironmentReady, m as runSessionEnvironmentAction, n as EnvironmentNotReadyError, o as createEnvironmentRegistry, p as resolveExecution, r as LOCAL_ENVIRONMENT, s as environmentActionSummaries, t as ENVIRONMENT_METADATA_KEY } from "./environment-B4asakh7.js";
20
20
  import { C as providerKeySetChanged, D as sanitizeModelChain, E as restoreChainFallbacks, O as toggleChainEntry, a as replaceTurnTextBlocks, c as SESSION_ACCOUNT_METADATA_KEY, d as sessionModelFallbacks, f as buildRunModel, g as chainsEqual, h as chainPositionOf, l as modelChainMetadata, m as chainEntryKey, n as deleteTurnSafely, o as truncateTurnsAt, p as chainAccountConflict, r as editableTurnText, s as turnAsText, t as countNeighbors, u as readSessionAccount, v as filterChainFallbacks, y as modelPickKey } from "./turn-operations-CWoCTC_L.js";
21
- import { $ as formatTokensPerSecond, B as sessionEventLabel, D as SESSION_ROLE_KEY, E as SESSION_EVENT_STATUS_STYLE, F as parseSessionEventXml, G as RUN_RECEIPT_GLYPH, H as shortSessionId, J as formatCostUsd, L as renderSessionEventXml, M as isMainSession, P as orchestratedBy, Q as formatTokenCount, R as sessionDirLabel, S as parseModelSetting, T as ORCHESTRATED_BY_KEY, U as sideSessionParent, V as sessionEventMeta, W as truncateTitle, X as formatRunReceiptCells, Y as formatRunDuration, Z as formatRunReceiptLine, _ as spaceModelDefault, a as defaultSessionAgent, b as spacesEnabled, c as findSpace, d as normalizeSpaces, et as hasRunReceipt, f as readSessionSpaceId, g as spaceMetadata, h as spaceIdForNewSession, i as activeSpaceOf, k as WORKER_REPORT_FRAGMENT, l as newSessionModel, m as sessionSpaceFilter, n as DEFAULT_SPACE_NAME, nt as runReceiptFromRun, o as defaultSessionKnobs, p as resolveSessionSpace, q as fitRunReceiptCells, r as SPACE_METADATA_KEY, s as defaultSessionModel, t as DEFAULT_SPACE_ID, tt as nameFromModelId, u as newSpaceId, v as spaceOfSwitchItem, x as formatModelSetting, y as spaceSwitchItems, z as sessionEventExcerpt } from "./spaces-CyjMh5Zf.js";
22
- import { A as SETTINGS_DEFAULTS_VERSION_KEY, C as GRUVBOX_LIGHT, D as CATPPUCCIN_MOCHA, E as CATPPUCCIN_MACCHIATO, F as sparseSettingsUpdate, M as decisionsEnabled, N as migrateStoredSettings, O as DEFAULT_SETTINGS, P as settingsFromStored, S as GRUVBOX_DARK, T as CATPPUCCIN_LATTE, _ as BUILTIN_THEMES, a as APPROVAL_MODE_OPTIONS, b as resolveTheme, c as SETTINGS_INPUTS, f as enforceSettingsInvariants, g as toggleHeldOn, k as SETTINGS_DEFAULTS_VERSION, l as SETTINGS_SECTIONS, m as settingKeywords, o as SETTINGS_CATEGORIES, p as requirementMet, s as SETTINGS_CHOICES, u as SETTINGS_TOGGLES, v as DEFAULT_THEME, w as CATPPUCCIN_FRAPPE, x as VAPORWAVE_THEME, y as resolveChipColor } from "./secret-shapes-BjW4l6U0.js";
23
- import { A as isOnSafelist, D as addToSafelistForCwd, E as addToSafelist, F as suggestSafelistEntries, I as writeProjects, M as projectsFilePath, N as readProjects, O as getSafelist, P as safelistProjectKey, T as IMPLICITLY_SAFE_TOOLS, _ as parseMcpsFile, c as discoverSystemMd, d as userSystemMdPath, f as buildMcpServers, h as discoverProjectMcps, i as overlayHostSettings, j as matchesSafelistEntry, k as getSafelistForCwd, l as renderSystemMdSeed, m as defaultMcpsConfigPaths, n as WINDOW_LOCAL_SETTINGS, o as settingsToWire, p as dedupMcpServersByName, r as isWindowOnlySetting, s as splitHostSettingsPatch, t as HOST_ENABLED_LISTS, u as userScopeOverridesLoad } from "./host-scoped-settings-C-Nmb6vr.js";
24
- import { $ as createAutomaticInteractionResponse, $t as testDecisionModel, A as environmentCredentialsPath, At as runEndNotice, B as userPromptCount, C as defaultEnvironmentKind, Ct as localEnvironmentProvider, D as resolveProviderConfig, E as readEnvironmentSettings, F as TITLE_CHECK_KEY, Ft as folderlessCwd, Gt as saveMcpToolsCache, H as normalizeLaunchOverrides, Ht as loadMcpToolsCache, I as TITLE_SOURCE_KEY, It as resolveSessionCwd, J as ASK_USER_TOOL, Jt as imageModelSources, K as isStaleRunMarker, Kt as subscribeMcpToolsCache, L as autoTitleAction, Lt as scopeCwd, Mt as readFileSafe, Nt as resolveCwdPath, O as createFileEnvironmentSecrets, P as TITLE_CHECKED_KEY, Pt as serializePreview, Q as buildResumedToolResultsTurn, Qt as resolveDecisionsOption, R as describeTitleStatus, Rt as buildPluginContributions, S as applyEnvironmentSettingsChange, St as builtinEnvironmentProviders, T as isEnvironmentEnabled, Tt as createWorktreeEnvironmentProvider, Ut as mcpToolsCachePath, Vt as clearMcpToolsCache, Wt as refreshMcpToolsCatalog, X as HOST_INTERACTION_ID_PREFIX, Xt as listDecisionModels, Y as AUTOMATIC_INTERACTION_INSTRUCTION, Yt as listImageModels, Z as PRESENT_PLAN_TOOL, Zt as parseDecisionModel, _t as discoverAgentsMd, a as tryOpenBrowser, at as serializeInteractionResponse, b as patchMcpCredential, c as mcpsWritePath, ct as defaultSkillScanPaths, d as createExtensionMcpHost, en as EditOutcomeLedger, et as createInteractionTools, f as resolveConfig, ft as chatAutoCompactBehavior, h as createInteractionHub, ht as createChatTurnsReadTool, i as supportsOAuth, it as pendingInteractionsFromTurns, j as createSessionExecutionCache, jt as extractEditPayloadForGate, k as createMemoryEnvironmentSecrets, l as removeMcpServer, lt as discoverProjectSkills, m as createChatHost, mt as chatReferenceTokensForPrompt, nn as createApprovalHub, nt as isModelInteraction, ot as buildSkillsConfig, p as resolveStoragePaths, pt as chatWindowBehavior, q as toTodosSnapshot, qt as imageGenerationTools, r as runOAuthLogin, rn as createMemoryApprovalsStore, rt as makeRequestInteraction, s as testModel, t as oauthUsesManualCodePaste, tn as runCompaction, tt as isInteractionTool, u as upsertMcpServer, v as createFileMcpCredentialStore, vt as renderAgentsMdBlock, w as describeEnvironments, wt as WORKTREE_ENVIRONMENT_KIND, x as provisionSessionEnvironment, y as mcpCredentialsPath, z as isTitleStale, zt as discoverProjectPlugins } from "./oauth-7_48zR7n.js";
21
+ import { $ as formatTokenCount, B as sessionEventLabel, D as SESSION_ROLE_KEY, E as SESSION_EVENT_STATUS_STYLE, F as parseSessionEventXml, G as RUN_RECEIPT_GLYPH, H as shortSessionId, J as fitRunReceiptCells, L as renderSessionEventXml, M as isMainSession, P as orchestratedBy, Q as formatRunReceiptLine, R as sessionDirLabel, S as parseModelSetting, T as ORCHESTRATED_BY_KEY, U as sideSessionParent, V as sessionEventMeta, W as truncateTitle, X as formatRunDuration, Y as formatCostUsd, Z as formatRunReceiptCells, _ as spaceModelDefault, a as defaultSessionAgent, b as spacesEnabled, c as findSpace, d as normalizeSpaces, et as formatTokensPerSecond, f as readSessionSpaceId, g as spaceMetadata, h as spaceIdForNewSession, i as activeSpaceOf, k as WORKER_REPORT_FRAGMENT, l as newSessionModel, m as sessionSpaceFilter, n as DEFAULT_SPACE_NAME, nt as nameFromModelId, o as defaultSessionKnobs, p as resolveSessionSpace, r as SPACE_METADATA_KEY, rt as runReceiptFromRun, s as defaultSessionModel, t as DEFAULT_SPACE_ID, tt as hasRunReceipt, u as newSpaceId, v as spaceOfSwitchItem, x as formatModelSetting, y as spaceSwitchItems, z as sessionEventExcerpt } from "./spaces-C_x2bvEl.js";
22
+ import { A as SETTINGS_DEFAULTS_VERSION_KEY, C as GRUVBOX_LIGHT, D as CATPPUCCIN_MOCHA, E as CATPPUCCIN_MACCHIATO, F as sparseSettingsUpdate, M as decisionsEnabled, N as migrateStoredSettings, O as DEFAULT_SETTINGS, P as settingsFromStored, S as GRUVBOX_DARK, T as CATPPUCCIN_LATTE, _ as BUILTIN_THEMES, a as APPROVAL_MODE_OPTIONS, b as resolveTheme, c as SETTINGS_INPUTS, f as enforceSettingsInvariants, g as toggleHeldOn, k as SETTINGS_DEFAULTS_VERSION, l as SETTINGS_SECTIONS, m as settingKeywords, o as SETTINGS_CATEGORIES, p as requirementMet, s as SETTINGS_CHOICES, u as SETTINGS_TOGGLES, v as DEFAULT_THEME, w as CATPPUCCIN_FRAPPE, x as VAPORWAVE_THEME, y as resolveChipColor } from "./secret-shapes-HvaYVzwc.js";
23
+ import { A as isOnSafelist, D as addToSafelistForCwd, E as addToSafelist, F as suggestSafelistEntries, I as writeProjects, M as projectsFilePath, N as readProjects, O as getSafelist, P as safelistProjectKey, T as IMPLICITLY_SAFE_TOOLS, _ as parseMcpsFile, c as discoverSystemMd, d as userSystemMdPath, f as buildMcpServers, h as discoverProjectMcps, i as overlayHostSettings, j as matchesSafelistEntry, k as getSafelistForCwd, l as renderSystemMdSeed, m as defaultMcpsConfigPaths, n as WINDOW_LOCAL_SETTINGS, o as settingsToWire, p as dedupMcpServersByName, r as isWindowOnlySetting, s as splitHostSettingsPatch, t as HOST_ENABLED_LISTS, u as userScopeOverridesLoad } from "./host-scoped-settings-DxxI_yRo.js";
24
+ import { $ as createAutomaticInteractionResponse, $t as testDecisionModel, A as environmentCredentialsPath, At as runEndNotice, B as userPromptCount, C as defaultEnvironmentKind, Ct as localEnvironmentProvider, D as resolveProviderConfig, E as readEnvironmentSettings, F as TITLE_CHECK_KEY, Ft as folderlessCwd, Gt as saveMcpToolsCache, H as normalizeLaunchOverrides, Ht as loadMcpToolsCache, I as TITLE_SOURCE_KEY, It as resolveSessionCwd, J as ASK_USER_TOOL, Jt as imageModelSources, K as isStaleRunMarker, Kt as subscribeMcpToolsCache, L as autoTitleAction, Lt as scopeCwd, Mt as readFileSafe, Nt as resolveCwdPath, O as createFileEnvironmentSecrets, P as TITLE_CHECKED_KEY, Pt as serializePreview, Q as buildResumedToolResultsTurn, Qt as resolveDecisionsOption, R as describeTitleStatus, Rt as buildPluginContributions, S as applyEnvironmentSettingsChange, St as builtinEnvironmentProviders, T as isEnvironmentEnabled, Tt as createWorktreeEnvironmentProvider, Ut as mcpToolsCachePath, Vt as clearMcpToolsCache, Wt as refreshMcpToolsCatalog, X as HOST_INTERACTION_ID_PREFIX, Xt as listDecisionModels, Y as AUTOMATIC_INTERACTION_INSTRUCTION, Yt as listImageModels, Z as PRESENT_PLAN_TOOL, Zt as parseDecisionModel, _t as discoverAgentsMd, a as tryOpenBrowser, at as serializeInteractionResponse, b as patchMcpCredential, c as mcpsWritePath, ct as defaultSkillScanPaths, d as createExtensionMcpHost, en as EditOutcomeLedger, et as createInteractionTools, f as resolveConfig, ft as chatAutoCompactBehavior, h as createInteractionHub, ht as createChatTurnsReadTool, i as supportsOAuth, it as pendingInteractionsFromTurns, j as createSessionExecutionCache, jt as extractEditPayloadForGate, k as createMemoryEnvironmentSecrets, l as removeMcpServer, lt as discoverProjectSkills, m as createChatHost, mt as chatReferenceTokensForPrompt, nn as createApprovalHub, nt as isModelInteraction, ot as buildSkillsConfig, p as resolveStoragePaths, pt as chatWindowBehavior, q as toTodosSnapshot, qt as imageGenerationTools, r as runOAuthLogin, rn as createMemoryApprovalsStore, rt as makeRequestInteraction, s as testModel, t as oauthUsesManualCodePaste, tn as runCompaction, tt as isInteractionTool, u as upsertMcpServer, v as createFileMcpCredentialStore, vt as renderAgentsMdBlock, w as describeEnvironments, wt as WORKTREE_ENVIRONMENT_KIND, x as provisionSessionEnvironment, y as mcpCredentialsPath, z as isTitleStale, zt as discoverProjectPlugins } from "./oauth-BwPiX0hL.js";
25
25
  import { A as resolveApprovalForPayload, C as splitLines, D as maskToOutcomeKinds, E as buildEditOutcomesAnnotation, M as stripEditOutcomesAnnotation, N as summarizeOutcomes, O as mergeApprovalAndBodyOutcomes, S as previewEditPayload, T as tokenize, b as extractEditPayload, c as inferPromptRefs, g as buildUnifiedDiff, h as buildContextualDiff, j as rewriteMultiEditHeader, k as parseEditOutcomesFromResult, m as applyEditPayload, n as titleFromText, o as modelConcern, t as oneLineTitle, u as splitPromptSegments, v as computeInlineDiff, w as summarizeEditPayload, x as filetypeFromPath, y as computeLineDiff } from "./session-title-text-DHCNlzjb.js";
26
- import { D as updateToolEventOutcomes, E as toolResultText, O as usageByModel, S as sumRunCosts, T as toolCallPreview, _ as runProgress, a as eventsFromTurns, b as sessionEnvironmentSummary, c as headerFromData, d as loadState, f as marginTopFor, g as runInProgress, h as replayTurns, i as deriveSessionTitle, j as buildSpawnStartEvent, k as buildSpawnEndEvent, l as lastContextSizeFromTurns, n as compactSummaryEvent, o as getSessionHeader, r as createStateStore, u as listSessionMeta, v as saveState, w as titleFromTurns, x as stripSpawnTokensLine } from "./store-L01W0gGI.js";
26
+ import { A as buildSpawnStartEvent, C as titleFromTurns, D as usageByModel, E as updateToolEventOutcomes, O as buildSpawnEndEvent, S as sumRunCosts, T as toolResultText, _ as runProgress, a as eventsFromTurns, b as sessionEnvironmentSummary, c as headerFromData, d as loadState, f as marginTopFor, g as runInProgress, h as replayTurns, i as deriveSessionTitle, l as lastContextSizeFromTurns, n as compactSummaryEvent, o as getSessionHeader, r as createStateStore, u as listSessionMeta, v as saveState, w as toolCallPreview, x as stripSpawnTokensLine } from "./store-BpkWIaSH.js";
27
27
  import { a as searchHighlightRanges, c as searchSessionHistoryIndexAsync, d as searchSessionTurns, f as searchTurns, i as highlightSegments, l as searchSessionIndex, n as buildSessionSearchIndexAsync, o as searchSessionHistory, p as searchableTurnText, r as filterSessionSearchCatalog, s as searchSessionHistoryIndex, t as buildSessionSearchIndex, u as searchSessionIndexAsync } from "./history-search-CbDaXIfU.js";
28
- import { $ as isKillSwitchEngaged, B as createChatsCompletionProvider, Et as selectionAfterTurnRemoval, H as cacheBreakChip, M as currentModelKeys, N as currentModels, Ot as turnSelectionOwnership, P as parseModelId, Q as engagedKillSwitches, R as CHATS_TRIGGER, Tt as selectableTurnIds, U as cacheBreakNoticeText, V as uniqueChatIdsFromReferences, W as compactingLabel, X as daemonGate, Y as FEATURE_GATES, Z as defineFeatureGate, et as remoteHostsGate, gt as isTurnHighlighted, ht as isEditErrorResult, j as compareModelVersion, k as autoTextModelId, n as enabledMcpsWithout, q as retryLabel, t as enabledMcpsWith, vt as isVisible, z as chatReferenceTokensFromText } from "./mcp-allowlist-CLXweyxk.js";
29
- import { A as modelSupportsReasoning, C as defaultModelOf, D as localDescriptor, E as getModelInfo, F as restoreModelOptions, M as openaiDescriptor, N as openrouterDescriptor, O as modelLabel, P as piIdOf, S as credKeyOf, T as getContextWindow, b as anthropicDescriptor, c as readProviderCredentialPair, d as removeStoredCredential, f as setCredentialLabel, g as storedCredentialsOf, h as storedCredentialById, i as providerFactoryOptions, j as modelsForDescriptor, k as modelOptionsFor, l as readProviderCredentials, m as setProviderCredential, n as credentialsPath, o as readCredentials, p as setPreferredCredential, r as ensureCredentialIds, s as readProviderCredential, t as applyApiKeyEnv, u as removeProviderCredential, v as writeCredentials, w as enabledModelOptions, x as cerebrasDescriptor, y as BUILTIN_PROVIDERS } from "./credentials-B9DfBJP9.js";
30
- import { r as detectAuth } from "./cli-shared-E5m_pI8A.js";
28
+ import { $ as isKillSwitchEngaged, B as createChatsCompletionProvider, Et as selectionAfterTurnRemoval, H as cacheBreakChip, M as currentModelKeys, N as currentModels, Ot as turnSelectionOwnership, P as parseModelId, Q as engagedKillSwitches, R as CHATS_TRIGGER, Tt as selectableTurnIds, U as cacheBreakNoticeText, V as uniqueChatIdsFromReferences, W as compactingLabel, X as daemonGate, Y as FEATURE_GATES, Z as defineFeatureGate, et as remoteHostsGate, gt as isTurnHighlighted, ht as isEditErrorResult, j as compareModelVersion, k as autoTextModelId, n as enabledMcpsWithout, q as retryLabel, t as enabledMcpsWith, vt as isVisible, z as chatReferenceTokensFromText } from "./mcp-allowlist-BbnTBKNN.js";
29
+ import { A as modelSupportsReasoning, C as defaultModelOf, D as localDescriptor, E as getModelInfo, F as restoreModelOptions, M as openaiDescriptor, N as openrouterDescriptor, O as modelLabel, P as piIdOf, S as credKeyOf, T as getContextWindow, b as anthropicDescriptor, c as readProviderCredentialPair, d as removeStoredCredential, f as setCredentialLabel, g as storedCredentialsOf, h as storedCredentialById, i as providerFactoryOptions, j as modelsForDescriptor, k as modelOptionsFor, l as readProviderCredentials, m as setProviderCredential, n as credentialsPath, o as readCredentials, p as setPreferredCredential, r as ensureCredentialIds, s as readProviderCredential, t as applyApiKeyEnv, u as removeProviderCredential, v as writeCredentials, w as enabledModelOptions, x as cerebrasDescriptor, y as BUILTIN_PROVIDERS } from "./credentials-DxOQmset.js";
30
+ import { r as detectAuth } from "./cli-shared-GOehTeqk.js";
31
31
  import { t as HostRegistryError } from "./types-CiUp8oom.js";
32
- import { r as parseRemoteHostUrl, t as RemoteHostError } from "./url-D8KZ7Edw.js";
33
- import { n as hostCredentialKey, r as hostsFilePath, t as createHostRegistry } from "./registry-eourRLY2.js";
34
- import { $ as truncateTrailing, $t as groupArtifacts, A as buildToolToggle, At as buildRestartHint, B as useInteractionsActions, Bt as writeUpdateAppliedMarker, C as providerUsageSupported, Ct as claudeImportHostNote, D as fetchOAuthRedirect, Dt as previewClaudeImport, E as formatPathForCwd, Et as importFromClaudeCode, F as parentServerName, Ft as probeInstalledVersion, G as onboardingInstallSignals, Gt as detectLibc, H as connectorGithubToken, Ht as checkForUpdate, I as McpAuthProvider, It as readUpdateAppliedMarker, J as onboardingProviders, Jt as parseSemver, K as probeLocalModelServers, Kt as detectPackageManager, L as useMcpAuthDispatch, Lt as updateAppliedMarkerPath, M as useMcpToolToggleSet, Mt as useUpdateCheck, N as buildVisibleMcpRows, Nt as UPDATE_APPLIED_MARKER, O as normalizeRedirectPaste, Ot as bootProfileEnabled, P as indexOfServerRow, Pt as hasUpdateAppliedMarker, Q as hintsLength, Qt as resolvePlatformPackage, R as useMcpAuthState, Rt as useRestartRequired, S as fetchProviderUsageAccounts, St as CLAUDE_IMPORT_NOTES, T as usageSourceFor, Tt as hasClaudeCodeSetup, U as detectOnboardingEnvironment, Ut as checkTarballAvailable, V as useInteractionsQueue, Vt as findInstalledCompanion, W as detectOtherAgents, Wt as compareSemver, X as clipHintsToWidth, Xt as performSelfUpdate, Y as EMPTY_HINTS, Yt as performInPlaceSelfUpdate, Zt as reinstallHint, _ as withRunningCallStarts, _t as useConfig, a as useSurfaces, at as useEnabledToggleSet, b as fetchAllProviderUsage, bt as scoreArtifacts, c as useStreamBuffer, ct as useSettings, d as resolveSessionExportTarget, dt as createDiscoverySlot, en as summarizeArtifactCounts, et as fetchGithubUsage, f as writeSessionExport, ft as DiscoveryProvider, g as hasUntimedOpenCalls, gt as ConfigProvider, h as useSafeModeQueue, i as useSelectStyle, it as listProjectFiles, j as useMcpToolToggleMap, jt as buildUpdateHint, k as redirectUriFromAuthUrl, kt as bootTick, lt as parseEditorCommand, m as useSafeModeActions, mt as useDiscoveryOptional, n as ThemeProvider, nt as shortChord, o as useSyntaxStyles, p as SafeModeProvider, pt as useDiscovery, q as FEATURED_PROVIDERS, qt as overrideManager, r as useColors, rt as fileEntriesFromPaths, s as useTheme, st as SettingsProvider, t as computeTurnAnchors, tt as buildHints, u as renderSession, ut as quoteForShell, v as USAGE_CACHE_TTL_MS, vt as ARTIFACTS_COMPLETION_PROVIDER_ID, w as usageChecksOptedOut, wt as countClaudeSessionFiles, x as fetchProviderUsage, xt as useCompletion, y as clearProviderUsageCache, yt as createArtifactsCompletionProvider, z as InteractionsProvider, zt as watchInstalledVersion } from "./transcript-anchors-jHrg-r-H.js";
32
+ import { r as parseRemoteHostUrl, t as RemoteHostError } from "./url-D4vG7lzO.js";
33
+ import { n as hostCredentialKey, r as hostsFilePath, t as createHostRegistry } from "./registry-DxPP_tAt.js";
34
+ import { $ as truncateTrailing, $t as groupArtifacts, A as buildToolToggle, At as buildRestartHint, B as useInteractionsActions, Bt as writeUpdateAppliedMarker, C as providerUsageSupported, Ct as claudeImportHostNote, D as fetchOAuthRedirect, Dt as previewClaudeImport, E as formatPathForCwd, Et as importFromClaudeCode, F as parentServerName, Ft as probeInstalledVersion, G as onboardingInstallSignals, Gt as detectLibc, H as connectorGithubToken, Ht as checkForUpdate, I as McpAuthProvider, It as readUpdateAppliedMarker, J as onboardingProviders, Jt as parseSemver, K as probeLocalModelServers, Kt as detectPackageManager, L as useMcpAuthDispatch, Lt as updateAppliedMarkerPath, M as useMcpToolToggleSet, Mt as useUpdateCheck, N as buildVisibleMcpRows, Nt as UPDATE_APPLIED_MARKER, O as normalizeRedirectPaste, Ot as bootProfileEnabled, P as indexOfServerRow, Pt as hasUpdateAppliedMarker, Q as hintsLength, Qt as resolvePlatformPackage, R as useMcpAuthState, Rt as useRestartRequired, S as fetchProviderUsageAccounts, St as CLAUDE_IMPORT_NOTES, T as usageSourceFor, Tt as hasClaudeCodeSetup, U as detectOnboardingEnvironment, Ut as checkTarballAvailable, V as useInteractionsQueue, Vt as findInstalledCompanion, W as detectOtherAgents, Wt as compareSemver, X as clipHintsToWidth, Xt as performSelfUpdate, Y as EMPTY_HINTS, Yt as performInPlaceSelfUpdate, Zt as reinstallHint, _ as withRunningCallStarts, _t as useConfig, a as useSurfaces, at as useEnabledToggleSet, b as fetchAllProviderUsage, bt as scoreArtifacts, c as useStreamBuffer, ct as useSettings, d as resolveSessionExportTarget, dt as createDiscoverySlot, en as summarizeArtifactCounts, et as fetchGithubUsage, f as writeSessionExport, ft as DiscoveryProvider, g as hasUntimedOpenCalls, gt as ConfigProvider, h as useSafeModeQueue, i as useSelectStyle, it as listProjectFiles, j as useMcpToolToggleMap, jt as buildUpdateHint, k as redirectUriFromAuthUrl, kt as bootTick, lt as parseEditorCommand, m as useSafeModeActions, mt as useDiscoveryOptional, n as ThemeProvider, nt as shortChord, o as useSyntaxStyles, p as SafeModeProvider, pt as useDiscovery, q as FEATURED_PROVIDERS, qt as overrideManager, r as useColors, rt as fileEntriesFromPaths, s as useTheme, st as SettingsProvider, t as computeTurnAnchors, tt as buildHints, u as renderSession, ut as quoteForShell, v as USAGE_CACHE_TTL_MS, vt as ARTIFACTS_COMPLETION_PROVIDER_ID, w as usageChecksOptedOut, wt as countClaudeSessionFiles, x as fetchProviderUsage, xt as useCompletion, y as clearProviderUsageCache, yt as createArtifactsCompletionProvider, z as InteractionsProvider, zt as watchInstalledVersion } from "./transcript-anchors-BcFLh3ZA.js";
35
35
  import { Writable } from "node:stream";
36
36
  //#region src/chat/auto-update-cli.ts
37
37
  const UPGRADE_HELP = `Usage: zidane upgrade [options]
@@ -4,7 +4,7 @@ import { p as oauthAccountLabel, r as API_KEY_ACCOUNT_LABEL } from "./cred-keys-
4
4
  import { t as createDaytonaProvider } from "./daytona-Bg1DeMdg.js";
5
5
  import { n as hostWorkspaceMounts, t as createDockerContext } from "./docker-B_r1BDMD.js";
6
6
  import { t as createE2BProvider } from "./e2b-CjlUUbWa.js";
7
- import { S as credKeyOf, g as storedCredentialsOf, o as readCredentials } from "./credentials-B9DfBJP9.js";
7
+ import { S as credKeyOf, g as storedCredentialsOf, o as readCredentials } from "./credentials-DxOQmset.js";
8
8
  //#region src/chat/auth.ts
9
9
  /** The stored, id-carrying credentials among `methods`, as accounts (order kept: active first). */
10
10
  function accountsOf(methods) {
@@ -181,4 +181,4 @@ function isRemoteSandboxContext(type) {
181
181
  //#endregion
182
182
  export { isRemoteSandboxContext as n, detectAuth as r, createCliExecution as t };
183
183
 
184
- //# sourceMappingURL=cli-shared-E5m_pI8A.js.map
184
+ //# sourceMappingURL=cli-shared-GOehTeqk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-shared-E5m_pI8A.js","names":[],"sources":["../src/chat/auth.ts","../src/cli-shared.ts"],"sourcesContent":["import type { ProviderCredential } from './credentials'\nimport type { ProviderDescriptor } from './providers'\nimport { API_KEY_ACCOUNT_LABEL } from './cred-keys'\nimport { oauthAccountLabel, readCredentials, storedCredentialsOf } from './credentials'\nimport { credKeyOf } from './providers'\n\nexport { API_KEY_ACCOUNT_LABEL } from './cred-keys'\n\n/**\n * Provider identifier as known to the TUI. Built-in keys include `anthropic`,\n * `openai`, `openrouter` and `cerebras`, and hosts can register additional\n * keys via {@link ProviderDescriptor} — so the type is open.\n */\nexport type ProviderKey = string\n\n/** One credential source detected for a provider. */\nexport interface AuthMethod {\n /** Where the credential comes from: an environment variable, a stored OAuth grant, or a stored API key. */\n source: 'env' | 'oauth' | 'apikey'\n /**\n * Human-readable detail: the env var name, the credentials file, or an\n * OAuth grant's expiry. The OAuth account name is in `label`, not here.\n */\n detail: string\n /**\n * True for the credential every reader actually resolves.\n *\n * Exactly one STORED credential is active: the one in the canonical file key\n * (see `alternateCredKey`). A provider can hold an API key and any number of\n * OAuth accounts, so the list alone does not say which one wins. `env` is\n * never marked active — it is an observable signal, not a stored credential\n * the user can promote.\n *\n * Optional so hosts that build `ProviderAuth` themselves (this type is public\n * via `zidane/chat`) keep compiling; absent reads as \"not active\".\n * {@link detectAuth} always sets it.\n */\n active?: boolean\n /**\n * Credentials-file key of a STORED credential — the identity to hand to\n * `setPreferredCredential({ key })` / `removeStoredCredential`. Several OAuth\n * accounts share `source: 'oauth'`, so `source` alone does not select one.\n * Absent for `env`.\n */\n key?: string\n /**\n * Account name — always set for stored OAuth credentials: the user-given one,\n * or `DEFAULT_OAUTH_ACCOUNT_LABEL` when the grant was never named.\n */\n label?: string\n /**\n * Stable id of a STORED credential (`ProviderCredential.id`): unlike\n * {@link key}, it does not move when another account is promoted. What a\n * session pinned to this account stores. Absent for `env`, and for an entry\n * written before ids until its next write.\n */\n id?: string\n}\n\n/** One stored credential of a provider that a session can run on (see {@link ProviderAuth.accounts}). */\nexport interface ProviderAccount {\n /** The credential's stable id: what a session pins (`metadata.account`). */\n id: string\n /** Display name: the OAuth account's label, or `API key`. */\n label: string\n /** Whether the account is an OAuth grant or an API key. */\n kind: 'oauth' | 'apikey'\n /** The provider's active credential (what an unpinned session runs on). */\n active: boolean\n}\n\n/** Authentication state of one provider, as listed by {@link detectAuth}. */\nexport interface ProviderAuth {\n /** Provider key. */\n key: ProviderKey\n /** Display name of the provider. */\n label: string\n /** True when at least one credential source is present. */\n available: boolean\n /** Credential sources currently present, stored credentials first. */\n methods: AuthMethod[]\n /**\n * The stored credentials a session can be pinned to, active first — set\n * only when there is a choice: the provider's factory takes an account\n * (`ProviderDescriptor.accounts`) and at least two are stored. Absent:\n * one account (or none), so pickers show the provider as before.\n */\n accounts?: ProviderAccount[]\n /**\n * Env var this provider reads, when it declares one.\n *\n * Carried separately from {@link methods} because the settings list shows the\n * env slot even when it holds nothing. `methods` only ever lists sources that\n * are actually present, since `available` is derived from it.\n */\n envKey?: string\n}\n\n/** The stored, id-carrying credentials among `methods`, as accounts (order kept: active first). */\nfunction accountsOf(methods: readonly AuthMethod[]): ProviderAccount[] {\n const out: ProviderAccount[] = []\n for (const method of methods) {\n if (!method.id || (method.source !== 'oauth' && method.source !== 'apikey'))\n continue\n out.push({\n id: method.id,\n label: method.source === 'oauth' ? (method.label ?? 'Default') : API_KEY_ACCOUNT_LABEL,\n kind: method.source,\n active: method.active === true,\n })\n }\n return out\n}\n\n/**\n * Detect available auth for every registered provider.\n *\n * A method appears in `methods` for every layer that has a credential:\n *\n * - `kind: 'apikey'` from `credentials.json` (injected into env at TUI launch)\n * - explicit env var (descriptor's `envKey`)\n * - `kind: 'oauth'` from `credentials.json` (migrated on first read from a\n * legacy `.credentials.json`, see `readCredentials`), one per stored account\n *\n * The preferred credential lives in the canonical file key and is flagged\n * {@link AuthMethod.active}; the others sit in sibling slots and are reported\n * too, keyed by {@link AuthMethod.key}, so the UI can offer to promote or\n * remove them. Order within `methods` is presentational — active first — not a\n * resolution order, because the active flag answers that directly.\n *\n * Never refreshes tokens or rewrites existing credentials. The one write is\n * the first-read migration of a legacy `.credentials.json` when\n * `credentials.json` does not exist yet (see `readCredentials`).\n *\n * @param dataDir - Directory holding `credentials.json`.\n * @param registry - Provider descriptors keyed by id.\n * @param env - Environment used to look for ambient credentials. Defaults to `process.env`.\n */\nexport function detectAuth(\n dataDir: string,\n registry: Readonly<Record<string, ProviderDescriptor>>,\n env: Record<string, string | undefined> = process.env,\n): ProviderAuth[] {\n const creds = readCredentials(dataDir)\n\n return Object.values(registry).map((descriptor) => {\n const methods: AuthMethod[] = []\n const stored = storedCredentialsOf(creds, credKeyOf(descriptor))\n const fileEntry = stored.find(s => s.active)?.credential\n\n // 1. Stored API key / OAuth accounts, active first. Every slot goes through\n // the same description so a parked credential renders identically to the\n // preferred one, differing only in `active`.\n const describeStored = (key: string, entry: ProviderCredential, active: boolean): AuthMethod | undefined => {\n const id = typeof entry.id === 'string' && entry.id ? { id: entry.id } : {}\n if (entry.kind === 'apikey' && entry.value)\n return { source: 'apikey', detail: 'credentials.json', active, key, ...id }\n if (entry.kind === 'oauth' && entry.access) {\n const label = oauthAccountLabel(entry)\n const expiry = typeof entry.expires === 'number'\n ? `expires ${new Date(entry.expires).toLocaleString()}`\n : 'credentials.json'\n return { source: 'oauth', detail: expiry, active, key, label, ...id }\n }\n return undefined\n }\n\n for (const slot of stored) {\n const method = describeStored(slot.key, slot.credential, slot.active)\n if (method)\n methods.push(method)\n }\n\n // 1b. customFields-only credential (descriptor has no `envKey` and is\n // authenticated entirely by configuration — e.g. the `local` provider,\n // where the auth signal is the configured base URL). The credential\n // is \"present\" when every required field has a stored value.\n if (\n fileEntry?.kind === 'apikey'\n && !fileEntry.value\n && descriptor.customFields\n && descriptor.customFields.length > 0\n ) {\n const stored = fileEntry.customFields ?? {}\n const required = descriptor.customFields.filter(f => f.required)\n const allRequiredPresent = required.every(\n f => typeof stored[f.key] === 'string' && (stored[f.key] as string).length > 0,\n )\n if (allRequiredPresent) {\n methods.push({ source: 'apikey', detail: 'credentials.json (configured)', active: true })\n }\n }\n\n // 1c. Env-only custom field configuration. This lets local/OpenAI-compatible\n // endpoints participate in auth/model detection when configured through\n // `LOCAL_LLM_BASE_URL` without first writing credentials.json.\n if (descriptor.customFields && descriptor.customFields.length > 0) {\n const required = descriptor.customFields.filter(f => f.required)\n const allRequiredPresent = required.length > 0 && required.every(\n f => typeof env[f.envVar] === 'string' && (env[f.envVar] as string).length > 0,\n )\n\n if (allRequiredPresent) {\n methods.push({ source: 'env', detail: required.map(f => f.envVar).join(', '), active: false })\n }\n }\n\n // 2. Env var (may be set by `applyApiKeyEnv` from a stored key, or by the\n // user's shell. Either way, treated as the same observable signal.)\n if (descriptor.envKey && env[descriptor.envKey])\n methods.push({ source: 'env', detail: descriptor.envKey, active: false })\n\n // Selection identity is the file key for stored credentials and `source`\n // for everything else. Two API-key rows cannot be a choice the user can\n // express (there is one API key per provider) — a customFields-configured\n // credential sitting beside a stored one, or a stale duplicate from an\n // older build, collapses to the FIRST, which the order above makes the\n // active one. OAuth accounts are distinct by key and all survive.\n const unique: AuthMethod[] = []\n for (const method of methods) {\n const duplicate = unique.some(seen =>\n method.source === 'oauth'\n ? seen.key !== undefined && seen.key === method.key\n : seen.source === method.source,\n )\n if (!duplicate)\n unique.push(method)\n }\n\n const accounts = descriptor.accounts === true ? accountsOf(unique) : []\n return {\n key: descriptor.key,\n label: descriptor.label,\n available: unique.length > 0,\n methods: unique,\n ...(accounts.length >= 2 ? { accounts } : {}),\n ...(descriptor.envKey ? { envKey: descriptor.envKey } : {}),\n }\n })\n}\n","/**\n * Shared glue for the CLI entrypoints (`start.ts` — human renderer,\n * `headless-cli.ts` — machine contract). Both build an execution context,\n * resolve a session (memory or sqlite), and parse `--mcp` config the same way;\n * this module is the single source of truth for that wiring so the two CLIs\n * stay in lockstep without duplicating it.\n */\n\nimport type { ExecutionContext } from './contexts'\nimport type { Session } from './session'\nimport { createProcessContext, createSandboxContext } from './contexts'\nimport { createDaytonaProvider } from './contexts/daytona'\nimport { createDockerContext, hostWorkspaceMounts } from './contexts/docker'\nimport { createE2BProvider } from './contexts/e2b'\nimport { createMemoryStore, createSession, loadSession } from './session'\n\nexport { parseMcpConfig } from './start/shared-options'\n\n/**\n * Build the execution context for a CLI run: `process` (default), `docker`,\n * `e2b`, or `daytona`.\n *\n * The `e2b` backend reads its `E2B_API_KEY` / `E2B_DOMAIN` / `E2B_TEMPLATE`\n * from the environment (point `E2B_DOMAIN` at a self-hosted cluster, and set\n * `E2B_TEMPLATE` to a template that exists there — the default `base` does\n * not); `--cwd` becomes the sandbox working directory.\n *\n * The Daytona backend reads `DAYTONA_API_KEY` / `DAYTONA_API_URL` /\n * `DAYTONA_TARGET` from the environment. `--cwd` becomes the sandbox working\n * directory.\n *\n * Docker: when `--cwd` is an existing host directory, its git worktree (and\n * the git common dir, for linked worktrees) is bind-mounted at the same\n * absolute path (git hooks/config read-only); otherwise, or when that tree\n * is `/`, `$HOME`, or an ancestor of it, `--cwd` is a container-only path.\n *\n * `env` (from `--env` / `--pass-env`) is forwarded to whichever context is\n * selected: baked into remote sandboxes at create time, set on the Docker\n * container, or merged into the in-process command environment.\n *\n * `pregame` (from `--pregame`) is supported by the remote sandbox providers:\n * a setup script uploaded and run in the sandbox once it's ready, before\n * prompting begins.\n *\n * `sandboxId` (from `--sandbox`) attaches to a pre-existing remote sandbox\n * instead of creating a fresh one.\n */\nexport function createCliExecution(type: string, opts: { image?: string, cwd?: string, env?: Record<string, string>, pregame?: { name: string, content: string }, sandboxId?: string, sandboxOnDestroy?: 'kill' | 'pause' | 'leave' }): ExecutionContext {\n switch (type) {\n case 'docker': {\n // An existing host dir is bind-mounted at the same path so the agent\n // works on the real checkout; a container-only path mounts nothing.\n const mounts = opts.cwd ? hostWorkspaceMounts(opts.cwd) : []\n return createDockerContext({ image: opts.image, cwd: opts.cwd, env: opts.env, ...(mounts.length > 0 ? { mounts } : {}) })\n }\n case 'e2b':\n return createSandboxContext(createE2BProvider({ cwd: opts.cwd, env: opts.env, ...(opts.pregame ? { pregame: opts.pregame } : {}), ...(opts.sandboxId ? { sandboxId: opts.sandboxId } : {}), ...(opts.sandboxOnDestroy ? { onDestroy: opts.sandboxOnDestroy } : {}) }))\n case 'daytona':\n return createSandboxContext(createDaytonaProvider({ cwd: opts.cwd, env: opts.env, ...(opts.pregame ? { pregame: opts.pregame } : {}), ...(opts.sandboxId ? { sandboxId: opts.sandboxId } : {}), ...(opts.sandboxOnDestroy ? { onDestroy: opts.sandboxOnDestroy } : {}) }))\n case 'process':\n default:\n return createProcessContext({ cwd: opts.cwd, env: opts.env })\n }\n}\n\n/**\n * Contexts whose filesystem is a remote sandbox: host paths don't exist\n * there, so host-derived cwds must not be forwarded.\n */\nexport function isRemoteSandboxContext(type: string): boolean {\n return type === 'e2b' || type === 'daytona'\n}\n\n/**\n * Resolve the session for a CLI run.\n * - `sessionDb` set → sqlite-backed; resume `sessionId` if it exists, else\n * create it (or a fresh id when `sessionId` is omitted).\n * - `sessionDb` absent → in-memory store.\n *\n * Fresh sessions are saved immediately so the store has a header row from\n * the start — incremental `appendTurns` against a header-less sqlite store\n * would otherwise be silent no-ops, and an error / Ctrl+C before the final\n * save would lose the whole run.\n */\nexport async function createCliSession(sessionDb?: string, sessionId?: string): Promise<Session> {\n if (sessionDb) {\n const { createSqliteStore } = await import('./session/sqlite')\n const store = createSqliteStore({ path: sessionDb })\n if (sessionId) {\n const existing = await loadSession(store, sessionId)\n if (existing)\n return existing\n const session = await createSession({ store, id: sessionId })\n await session.save()\n return session\n }\n const session = await createSession({ store })\n await session.save()\n return session\n }\n return await createSession({ store: createMemoryStore() })\n}\n\n/**\n * Install SIGINT/SIGTERM handlers for a CLI run. The first signal aborts the\n * returned `AbortSignal` so the running agent can unwind cleanly (persist the\n * session, destroy execution contexts) and the process exits through the\n * normal path — which is what fires the `process.on('exit')` orphan reaper\n * for detached background process groups. A second signal force-exits\n * immediately (the synchronous 'exit' reaper still runs, but async cleanup\n * such as Docker container teardown is skipped).\n */\nexport function installCliSignalHandlers(): AbortSignal {\n const controller = new AbortController()\n const onSignal = (name: NodeJS.Signals): void => {\n if (controller.signal.aborted)\n process.exit(name === 'SIGTERM' ? 143 : 130) // 128 + signal number\n controller.abort(new Error(`Received ${name}, stopping the run`))\n }\n process.on('SIGINT', () => onSignal('SIGINT'))\n process.on('SIGTERM', () => onSignal('SIGTERM'))\n return controller.signal\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"cli-shared-GOehTeqk.js","names":[],"sources":["../src/chat/auth.ts","../src/cli-shared.ts"],"sourcesContent":["import type { ProviderCredential } from './credentials'\nimport type { ProviderDescriptor } from './providers'\nimport { API_KEY_ACCOUNT_LABEL } from './cred-keys'\nimport { oauthAccountLabel, readCredentials, storedCredentialsOf } from './credentials'\nimport { credKeyOf } from './providers'\n\nexport { API_KEY_ACCOUNT_LABEL } from './cred-keys'\n\n/**\n * Provider identifier as known to the TUI. Built-in keys include `anthropic`,\n * `openai`, `openrouter` and `cerebras`, and hosts can register additional\n * keys via {@link ProviderDescriptor} — so the type is open.\n */\nexport type ProviderKey = string\n\n/** One credential source detected for a provider. */\nexport interface AuthMethod {\n /** Where the credential comes from: an environment variable, a stored OAuth grant, or a stored API key. */\n source: 'env' | 'oauth' | 'apikey'\n /**\n * Human-readable detail: the env var name, the credentials file, or an\n * OAuth grant's expiry. The OAuth account name is in `label`, not here.\n */\n detail: string\n /**\n * True for the credential every reader actually resolves.\n *\n * Exactly one STORED credential is active: the one in the canonical file key\n * (see `alternateCredKey`). A provider can hold an API key and any number of\n * OAuth accounts, so the list alone does not say which one wins. `env` is\n * never marked active — it is an observable signal, not a stored credential\n * the user can promote.\n *\n * Optional so hosts that build `ProviderAuth` themselves (this type is public\n * via `zidane/chat`) keep compiling; absent reads as \"not active\".\n * {@link detectAuth} always sets it.\n */\n active?: boolean\n /**\n * Credentials-file key of a STORED credential — the identity to hand to\n * `setPreferredCredential({ key })` / `removeStoredCredential`. Several OAuth\n * accounts share `source: 'oauth'`, so `source` alone does not select one.\n * Absent for `env`.\n */\n key?: string\n /**\n * Account name — always set for stored OAuth credentials: the user-given one,\n * or `DEFAULT_OAUTH_ACCOUNT_LABEL` when the grant was never named.\n */\n label?: string\n /**\n * Stable id of a STORED credential (`ProviderCredential.id`): unlike\n * {@link key}, it does not move when another account is promoted. What a\n * session pinned to this account stores. Absent for `env`, and for an entry\n * written before ids until its next write.\n */\n id?: string\n}\n\n/** One stored credential of a provider that a session can run on (see {@link ProviderAuth.accounts}). */\nexport interface ProviderAccount {\n /** The credential's stable id: what a session pins (`metadata.account`). */\n id: string\n /** Display name: the OAuth account's label, or `API key`. */\n label: string\n /** Whether the account is an OAuth grant or an API key. */\n kind: 'oauth' | 'apikey'\n /** The provider's active credential (what an unpinned session runs on). */\n active: boolean\n}\n\n/** Authentication state of one provider, as listed by {@link detectAuth}. */\nexport interface ProviderAuth {\n /** Provider key. */\n key: ProviderKey\n /** Display name of the provider. */\n label: string\n /** True when at least one credential source is present. */\n available: boolean\n /** Credential sources currently present, stored credentials first. */\n methods: AuthMethod[]\n /**\n * The stored credentials a session can be pinned to, active first — set\n * only when there is a choice: the provider's factory takes an account\n * (`ProviderDescriptor.accounts`) and at least two are stored. Absent:\n * one account (or none), so pickers show the provider as before.\n */\n accounts?: ProviderAccount[]\n /**\n * Env var this provider reads, when it declares one.\n *\n * Carried separately from {@link methods} because the settings list shows the\n * env slot even when it holds nothing. `methods` only ever lists sources that\n * are actually present, since `available` is derived from it.\n */\n envKey?: string\n}\n\n/** The stored, id-carrying credentials among `methods`, as accounts (order kept: active first). */\nfunction accountsOf(methods: readonly AuthMethod[]): ProviderAccount[] {\n const out: ProviderAccount[] = []\n for (const method of methods) {\n if (!method.id || (method.source !== 'oauth' && method.source !== 'apikey'))\n continue\n out.push({\n id: method.id,\n label: method.source === 'oauth' ? (method.label ?? 'Default') : API_KEY_ACCOUNT_LABEL,\n kind: method.source,\n active: method.active === true,\n })\n }\n return out\n}\n\n/**\n * Detect available auth for every registered provider.\n *\n * A method appears in `methods` for every layer that has a credential:\n *\n * - `kind: 'apikey'` from `credentials.json` (injected into env at TUI launch)\n * - explicit env var (descriptor's `envKey`)\n * - `kind: 'oauth'` from `credentials.json` (migrated on first read from a\n * legacy `.credentials.json`, see `readCredentials`), one per stored account\n *\n * The preferred credential lives in the canonical file key and is flagged\n * {@link AuthMethod.active}; the others sit in sibling slots and are reported\n * too, keyed by {@link AuthMethod.key}, so the UI can offer to promote or\n * remove them. Order within `methods` is presentational — active first — not a\n * resolution order, because the active flag answers that directly.\n *\n * Never refreshes tokens or rewrites existing credentials. The one write is\n * the first-read migration of a legacy `.credentials.json` when\n * `credentials.json` does not exist yet (see `readCredentials`).\n *\n * @param dataDir - Directory holding `credentials.json`.\n * @param registry - Provider descriptors keyed by id.\n * @param env - Environment used to look for ambient credentials. Defaults to `process.env`.\n */\nexport function detectAuth(\n dataDir: string,\n registry: Readonly<Record<string, ProviderDescriptor>>,\n env: Record<string, string | undefined> = process.env,\n): ProviderAuth[] {\n const creds = readCredentials(dataDir)\n\n return Object.values(registry).map((descriptor) => {\n const methods: AuthMethod[] = []\n const stored = storedCredentialsOf(creds, credKeyOf(descriptor))\n const fileEntry = stored.find(s => s.active)?.credential\n\n // 1. Stored API key / OAuth accounts, active first. Every slot goes through\n // the same description so a parked credential renders identically to the\n // preferred one, differing only in `active`.\n const describeStored = (key: string, entry: ProviderCredential, active: boolean): AuthMethod | undefined => {\n const id = typeof entry.id === 'string' && entry.id ? { id: entry.id } : {}\n if (entry.kind === 'apikey' && entry.value)\n return { source: 'apikey', detail: 'credentials.json', active, key, ...id }\n if (entry.kind === 'oauth' && entry.access) {\n const label = oauthAccountLabel(entry)\n const expiry = typeof entry.expires === 'number'\n ? `expires ${new Date(entry.expires).toLocaleString()}`\n : 'credentials.json'\n return { source: 'oauth', detail: expiry, active, key, label, ...id }\n }\n return undefined\n }\n\n for (const slot of stored) {\n const method = describeStored(slot.key, slot.credential, slot.active)\n if (method)\n methods.push(method)\n }\n\n // 1b. customFields-only credential (descriptor has no `envKey` and is\n // authenticated entirely by configuration — e.g. the `local` provider,\n // where the auth signal is the configured base URL). The credential\n // is \"present\" when every required field has a stored value.\n if (\n fileEntry?.kind === 'apikey'\n && !fileEntry.value\n && descriptor.customFields\n && descriptor.customFields.length > 0\n ) {\n const stored = fileEntry.customFields ?? {}\n const required = descriptor.customFields.filter(f => f.required)\n const allRequiredPresent = required.every(\n f => typeof stored[f.key] === 'string' && (stored[f.key] as string).length > 0,\n )\n if (allRequiredPresent) {\n methods.push({ source: 'apikey', detail: 'credentials.json (configured)', active: true })\n }\n }\n\n // 1c. Env-only custom field configuration. This lets local/OpenAI-compatible\n // endpoints participate in auth/model detection when configured through\n // `LOCAL_LLM_BASE_URL` without first writing credentials.json.\n if (descriptor.customFields && descriptor.customFields.length > 0) {\n const required = descriptor.customFields.filter(f => f.required)\n const allRequiredPresent = required.length > 0 && required.every(\n f => typeof env[f.envVar] === 'string' && (env[f.envVar] as string).length > 0,\n )\n\n if (allRequiredPresent) {\n methods.push({ source: 'env', detail: required.map(f => f.envVar).join(', '), active: false })\n }\n }\n\n // 2. Env var (may be set by `applyApiKeyEnv` from a stored key, or by the\n // user's shell. Either way, treated as the same observable signal.)\n if (descriptor.envKey && env[descriptor.envKey])\n methods.push({ source: 'env', detail: descriptor.envKey, active: false })\n\n // Selection identity is the file key for stored credentials and `source`\n // for everything else. Two API-key rows cannot be a choice the user can\n // express (there is one API key per provider) — a customFields-configured\n // credential sitting beside a stored one, or a stale duplicate from an\n // older build, collapses to the FIRST, which the order above makes the\n // active one. OAuth accounts are distinct by key and all survive.\n const unique: AuthMethod[] = []\n for (const method of methods) {\n const duplicate = unique.some(seen =>\n method.source === 'oauth'\n ? seen.key !== undefined && seen.key === method.key\n : seen.source === method.source,\n )\n if (!duplicate)\n unique.push(method)\n }\n\n const accounts = descriptor.accounts === true ? accountsOf(unique) : []\n return {\n key: descriptor.key,\n label: descriptor.label,\n available: unique.length > 0,\n methods: unique,\n ...(accounts.length >= 2 ? { accounts } : {}),\n ...(descriptor.envKey ? { envKey: descriptor.envKey } : {}),\n }\n })\n}\n","/**\n * Shared glue for the CLI entrypoints (`start.ts` — human renderer,\n * `headless-cli.ts` — machine contract). Both build an execution context,\n * resolve a session (memory or sqlite), and parse `--mcp` config the same way;\n * this module is the single source of truth for that wiring so the two CLIs\n * stay in lockstep without duplicating it.\n */\n\nimport type { ExecutionContext } from './contexts'\nimport type { Session } from './session'\nimport { createProcessContext, createSandboxContext } from './contexts'\nimport { createDaytonaProvider } from './contexts/daytona'\nimport { createDockerContext, hostWorkspaceMounts } from './contexts/docker'\nimport { createE2BProvider } from './contexts/e2b'\nimport { createMemoryStore, createSession, loadSession } from './session'\n\nexport { parseMcpConfig } from './start/shared-options'\n\n/**\n * Build the execution context for a CLI run: `process` (default), `docker`,\n * `e2b`, or `daytona`.\n *\n * The `e2b` backend reads its `E2B_API_KEY` / `E2B_DOMAIN` / `E2B_TEMPLATE`\n * from the environment (point `E2B_DOMAIN` at a self-hosted cluster, and set\n * `E2B_TEMPLATE` to a template that exists there — the default `base` does\n * not); `--cwd` becomes the sandbox working directory.\n *\n * The Daytona backend reads `DAYTONA_API_KEY` / `DAYTONA_API_URL` /\n * `DAYTONA_TARGET` from the environment. `--cwd` becomes the sandbox working\n * directory.\n *\n * Docker: when `--cwd` is an existing host directory, its git worktree (and\n * the git common dir, for linked worktrees) is bind-mounted at the same\n * absolute path (git hooks/config read-only); otherwise, or when that tree\n * is `/`, `$HOME`, or an ancestor of it, `--cwd` is a container-only path.\n *\n * `env` (from `--env` / `--pass-env`) is forwarded to whichever context is\n * selected: baked into remote sandboxes at create time, set on the Docker\n * container, or merged into the in-process command environment.\n *\n * `pregame` (from `--pregame`) is supported by the remote sandbox providers:\n * a setup script uploaded and run in the sandbox once it's ready, before\n * prompting begins.\n *\n * `sandboxId` (from `--sandbox`) attaches to a pre-existing remote sandbox\n * instead of creating a fresh one.\n */\nexport function createCliExecution(type: string, opts: { image?: string, cwd?: string, env?: Record<string, string>, pregame?: { name: string, content: string }, sandboxId?: string, sandboxOnDestroy?: 'kill' | 'pause' | 'leave' }): ExecutionContext {\n switch (type) {\n case 'docker': {\n // An existing host dir is bind-mounted at the same path so the agent\n // works on the real checkout; a container-only path mounts nothing.\n const mounts = opts.cwd ? hostWorkspaceMounts(opts.cwd) : []\n return createDockerContext({ image: opts.image, cwd: opts.cwd, env: opts.env, ...(mounts.length > 0 ? { mounts } : {}) })\n }\n case 'e2b':\n return createSandboxContext(createE2BProvider({ cwd: opts.cwd, env: opts.env, ...(opts.pregame ? { pregame: opts.pregame } : {}), ...(opts.sandboxId ? { sandboxId: opts.sandboxId } : {}), ...(opts.sandboxOnDestroy ? { onDestroy: opts.sandboxOnDestroy } : {}) }))\n case 'daytona':\n return createSandboxContext(createDaytonaProvider({ cwd: opts.cwd, env: opts.env, ...(opts.pregame ? { pregame: opts.pregame } : {}), ...(opts.sandboxId ? { sandboxId: opts.sandboxId } : {}), ...(opts.sandboxOnDestroy ? { onDestroy: opts.sandboxOnDestroy } : {}) }))\n case 'process':\n default:\n return createProcessContext({ cwd: opts.cwd, env: opts.env })\n }\n}\n\n/**\n * Contexts whose filesystem is a remote sandbox: host paths don't exist\n * there, so host-derived cwds must not be forwarded.\n */\nexport function isRemoteSandboxContext(type: string): boolean {\n return type === 'e2b' || type === 'daytona'\n}\n\n/**\n * Resolve the session for a CLI run.\n * - `sessionDb` set → sqlite-backed; resume `sessionId` if it exists, else\n * create it (or a fresh id when `sessionId` is omitted).\n * - `sessionDb` absent → in-memory store.\n *\n * Fresh sessions are saved immediately so the store has a header row from\n * the start — incremental `appendTurns` against a header-less sqlite store\n * would otherwise be silent no-ops, and an error / Ctrl+C before the final\n * save would lose the whole run.\n */\nexport async function createCliSession(sessionDb?: string, sessionId?: string): Promise<Session> {\n if (sessionDb) {\n const { createSqliteStore } = await import('./session/sqlite')\n const store = createSqliteStore({ path: sessionDb })\n if (sessionId) {\n const existing = await loadSession(store, sessionId)\n if (existing)\n return existing\n const session = await createSession({ store, id: sessionId })\n await session.save()\n return session\n }\n const session = await createSession({ store })\n await session.save()\n return session\n }\n return await createSession({ store: createMemoryStore() })\n}\n\n/**\n * Install SIGINT/SIGTERM handlers for a CLI run. The first signal aborts the\n * returned `AbortSignal` so the running agent can unwind cleanly (persist the\n * session, destroy execution contexts) and the process exits through the\n * normal path — which is what fires the `process.on('exit')` orphan reaper\n * for detached background process groups. A second signal force-exits\n * immediately (the synchronous 'exit' reaper still runs, but async cleanup\n * such as Docker container teardown is skipped).\n */\nexport function installCliSignalHandlers(): AbortSignal {\n const controller = new AbortController()\n const onSignal = (name: NodeJS.Signals): void => {\n if (controller.signal.aborted)\n process.exit(name === 'SIGTERM' ? 143 : 130) // 128 + signal number\n controller.abort(new Error(`Received ${name}, stopping the run`))\n }\n process.on('SIGINT', () => onSignal('SIGINT'))\n process.on('SIGTERM', () => onSignal('SIGTERM'))\n return controller.signal\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { AE as SessionData, CT as SessionTurn, Cv as EnvironmentDescriptor, Dv as EnvironmentSettingsChange, Fh as SessionHeader, Ih as SessionMeta, Ip as CommandOutputBlock, Ph as SessionEnvironmentSummary, Qv as EnvironmentRequest, Qw as McpServerConfig, Rv as EnvironmentActionResult, Xw as JsonValue, ey as EnvironmentTeardownResult, gy as ProviderKey, im as InteractionResponse, kD as SessionArtifact, rO as ThinkingLevel, ty as EnvironmentVerifyResult, zb as ContextBreakdown, zh as StreamEvent, zv as EnvironmentActionSummary } from "./index-DyQyDLX1.js";
1
+ import { $v as EnvironmentRequest, $w as McpServerConfig, Bb as ContextBreakdown, Bv as EnvironmentActionSummary, Fh as SessionHeader, Ih as SessionMeta, Ip as CommandOutputBlock, Ov as EnvironmentSettingsChange, Ph as SessionEnvironmentSummary, YE as ThinkingLevel, Zw as JsonValue, _y as ProviderKey, im as InteractionResponse, ny as EnvironmentVerifyResult, oD as SessionData, oO as SessionArtifact, ty as EnvironmentTeardownResult, wT as SessionTurn, wv as EnvironmentDescriptor, zh as StreamEvent, zv as EnvironmentActionResult } from "./index-4mDRyTGJ.js";
2
2
  import { m as ExecResult, v as ListFilesEntry } from "./isolation-CbGNAEhQ.js";
3
- import { Ao as TerminalAdoptResult, Ba as WorkerSummary, Bs as BrowserResponse, Gu as TodoItem, Io as TerminalProjectOpenInput, Jo as MachineLinksStatus, Ko as MachineInfo, No as TerminalInfo, Po as TerminalOpenInput, Ra as CreateWorkerParams, Ro as TerminalProjectState, Sa as ContextSegmentsReport, Vo as TerminalSessionState, Xr as SearchTurnResult, Yo as MachineRegisterParams, Za as SessionLaunchOverrides, Zr as SessionHistoryMatch, _o as SessionPresence, ba as CacheReport, bo as WireApprovalRequest, co as HostSettings, do as PromptAttachment, ho as SendOptions, ja as CompactionReport, jo as TerminalAttachResult, ju as ApprovalDecision, lo as HostSignal, mo as RunningWorkItem, oo as CommandArgSuggestionSummary, po as QueuedItem, sd as SystemMdFile, so as CommandSummary, uo as PendingInteraction, va as CacheImpact, wa as WorkspaceListFilesOptions, ya as CacheImpactChange, yo as TodosSnapshot, za as WorkerRow, zo as TerminalProjectStateInput } from "./turn-operations-DuGtKuc_.js";
4
- import "./index-AqRZ3gEz.js";
5
- import "./types-C0PJmBaO.js";
3
+ import { Ao as TerminalAdoptResult, Ba as WorkerSummary, Bs as BrowserResponse, Gu as TodoItem, Io as TerminalProjectOpenInput, Jo as MachineLinksStatus, Ko as MachineInfo, No as TerminalInfo, Po as TerminalOpenInput, Ra as CreateWorkerParams, Ro as TerminalProjectState, Sa as ContextSegmentsReport, Vo as TerminalSessionState, Xr as SearchTurnResult, Yo as MachineRegisterParams, Za as SessionLaunchOverrides, Zr as SessionHistoryMatch, _o as SessionPresence, ba as CacheReport, bo as WireApprovalRequest, co as HostSettings, do as PromptAttachment, ho as SendOptions, ja as CompactionReport, jo as TerminalAttachResult, ju as ApprovalDecision, lo as HostSignal, mo as RunningWorkItem, oo as CommandArgSuggestionSummary, po as QueuedItem, sd as SystemMdFile, so as CommandSummary, uo as PendingInteraction, va as CacheImpact, wa as WorkspaceListFilesOptions, ya as CacheImpactChange, yo as TodosSnapshot, za as WorkerRow, zo as TerminalProjectStateInput } from "./turn-operations-Dbk3xPKu.js";
4
+ import "./index-QsAN9yjZ.js";
5
+ import "./types-CMXR7A0b.js";
6
6
  import { c as SyncClaimResult, d as SyncPushResult, p as SyncStatus, s as SyncCategory, u as SyncPayload } from "./types-BWzrS7jZ.js";
7
7
  //#region src/ipc/protocol.d.ts
8
8
  /**
@@ -91,6 +91,8 @@ import { c as SyncClaimResult, d as SyncPushResult, p as SyncStatus, s as SyncCa
91
91
  * - ADDITIVE (no version bump): `sessions.cacheImpact` and
92
92
  * `sessions.cacheReport`. An older host answers "method not found":
93
93
  * pickers show no cache estimate and session details no Cache section.
94
+ * - ADDITIVE (no version bump): `sessions.moveEnvironment`. An older host
95
+ * answers "method not found", shown as the move's error.
94
96
  */
95
97
  declare const IPC_PROTOCOL_VERSION = 13;
96
98
  /**
@@ -388,6 +390,14 @@ interface IpcMethods {
388
390
  };
389
391
  result: void;
390
392
  };
393
+ /** Move a local session into a new environment (a worktree, …); provisioning continues in the background. */
394
+ 'sessions.moveEnvironment': {
395
+ params: {
396
+ sessionId: string;
397
+ environment: EnvironmentRequest;
398
+ };
399
+ result: void;
400
+ };
391
401
  /** The per-session commands the session's environment offers right now (push, open PR, …). */
392
402
  'sessions.environmentActions': {
393
403
  params: {
@@ -2543,4 +2553,4 @@ declare class IpcVersionMismatchError extends Error {
2543
2553
  }
2544
2554
  //#endregion
2545
2555
  export { LOAD_EVENTS_PAGE_TURNS as A, SessionResumeResult as B, IPC_PROTOCOL_VERSION as C, IpcParams as D, IpcMethods as E, SESSION_TURNS_PAGE as F, loadEventsPage as G, SignalMeta as H, SIGNAL_SEQ_FIELD as I, loadSessionDocument as K, SequencedSignal as L, ModelFallbackRef as M, REDACTED as N, IpcResult as O, SESSION_TURNS_MAX_PAGE as P, SessionDocumentHead as R, HostRef as S, IpcMethodName as T, hostRefOf as U, SessionRow as V, loadAllEvents as W, HostModelProvider as _, FsDirListing as a, HostOAuthStep as b, HelloResult as c, HostCatalogExtension as d, HostCatalogMcp as f, HostModelInfo as g, HostKind as h, FsDirEntry as i, LoadEventsPaging as j, LOAD_EVENTS_MAX_PAGE_TURNS as k, HostAuthMethod as l, HostCatalogSkill as m, IpcVersionMismatchError as n, FsRoots as o, HostCatalogPlugin as p, CreateSessionParams as r, HelloParams as s, IpcClient as t, HostCatalogError as u, HostOAuthBegin as v, IpcErrorCode as w, HostProviderAuth as x, HostOAuthComplete as y, SessionEventsPage as z };
2546
- //# sourceMappingURL=client-core-EEEX_u6D.d.ts.map
2556
+ //# sourceMappingURL=client-core-Dz8hELs4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-core-Dz8hELs4.d.ts","names":["OrchestrationCreateWorkerParams","OrchestrationWorkerRow","OrchestrationWorkerSummary"],"sources":["../src/ipc/protocol.ts","../src/ipc/transports/client-core.ts"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { t as isHostToWorkerMessage } from "./protocol-NSllElLw.js";
2
- import { a as PRELUDE_SOURCE } from "./prelude-HzY_JEGq.js";
2
+ import { a as PRELUDE_SOURCE } from "./prelude-qjPUkw4f.js";
3
3
  import { parentPort, workerData } from "node:worker_threads";
4
4
  import { JSException, MAX_STACK_SIZE, QuickJS } from "quickjs-wasi";
5
5
  //#region src/codemode/runtime/worker.ts
package/dist/codemode.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as renderDeclarations, c as renderToolSignature, d as CODEMODE_OPTIONS_PREFIX, f as CODEMODE_SOURCE_GRAMMAR, h as toCodemodeIdentifier, i as mcpStructuredContentSchema, l as schemaToType, m as parseCodemodeSource, n as DEFAULT_INPUT_SCHEMA_MAX_CHARS, o as renderToolOutputType, p as CodemodeSourceError, r as MCP_TYPESCRIPT_PREAMBLE, s as renderToolSample, t as CodemodeValue, u as stringArgumentOf } from "./value-D6VNgBMH.js";
2
2
  import { i as setCodemodeSandboxPaths, r as codemodeSandboxPaths, t as loadQuickJSWasm } from "./wasm-injC3S9w.js";
3
3
  import { t as CodemodeSandbox } from "./host-BHMs9jsN.js";
4
- import { i as MAX_STORE_VALUE_CHARS, n as MAX_OUTPUT_ITEMS, r as MAX_STORE_TOTAL_CHARS, t as MAX_OUTPUT_CHARS } from "./prelude-HzY_JEGq.js";
4
+ import { i as MAX_STORE_VALUE_CHARS, n as MAX_OUTPUT_ITEMS, r as MAX_STORE_TOTAL_CHARS, t as MAX_OUTPUT_CHARS } from "./prelude-qjPUkw4f.js";
5
5
  export { CODEMODE_OPTIONS_PREFIX, CODEMODE_SOURCE_GRAMMAR, CodemodeSandbox, CodemodeSourceError, CodemodeValue, DEFAULT_INPUT_SCHEMA_MAX_CHARS, MAX_OUTPUT_CHARS, MAX_OUTPUT_ITEMS, MAX_STORE_TOTAL_CHARS, MAX_STORE_VALUE_CHARS, MCP_TYPESCRIPT_PREAMBLE, codemodeSandboxPaths, loadQuickJSWasm, mcpStructuredContentSchema, parseCodemodeSource, renderDeclarations, renderToolOutputType, renderToolSample, renderToolSignature, schemaToType, setCodemodeSandboxPaths, stringArgumentOf, toCodemodeIdentifier };
@@ -1,6 +1,6 @@
1
- import { lo as HostSignal } from "./turn-operations-DuGtKuc_.js";
1
+ import { lo as HostSignal } from "./turn-operations-Dbk3xPKu.js";
2
2
  import { t as HostConnectionStatus } from "./connection-CvoXPgZw.js";
3
- import { t as IpcClient } from "./client-core-EEEX_u6D.js";
3
+ import { t as IpcClient } from "./client-core-Dz8hELs4.js";
4
4
  //#region src/ipc/hosts/connection-loop.d.ts
5
5
  /** How a failed connect is handled: retried with backoff, re-checked slowly (`protocol`), or reported and left alone. */
6
6
  type HostFailureKind = 'auth' | 'identity' | 'protocol' | 'retry';
@@ -67,4 +67,4 @@ interface HostConnectionLoop {
67
67
  declare function keepHostConnected(options: HostConnectionLoopOptions): HostConnectionLoop;
68
68
  //#endregion
69
69
  export { keepHostConnected as a, HostFailureKind as i, HostConnectionLoopOptions as n, HostConnectionPatch as r, HostConnectionLoop as t };
70
- //# sourceMappingURL=connection-loop-CpgfUmuw.d.ts.map
70
+ //# sourceMappingURL=connection-loop-dm_TN-QD.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-loop-CpgfUmuw.d.ts","names":[],"sources":["../src/ipc/hosts/connection-loop.ts"],"mappings":";;;;;KAoBY;;UAaK;;EAEf,SAAS;;EAET,SAAS;;EAET;;EAEA;;;UAIe;;EAEf,UAAU;IAAW,QAAQ;IAAa;QAA0B,QAAQ;;EAE5E,SAAS,OAAO;;;;;;EAMhB,YAAY,iBAAiB;;;;;EAK7B;;EAEA,eAAe,QAAQ;;EAEvB,YAAY,QAAQ;;EAEpB;;;;;EAKA;;;;;EAKA;;;UAIe;;EAEf;;EAEA;;;;;;;iBAYc,kBAAkB,SAAS,4BAA4B"}
1
+ {"version":3,"file":"connection-loop-dm_TN-QD.d.ts","names":[],"sources":["../src/ipc/hosts/connection-loop.ts"],"mappings":";;;;;KAoBY;;UAaK;;EAEf,SAAS;;EAET,SAAS;;EAET;;EAEA;;;UAIe;;EAEf,UAAU;IAAW,QAAQ;IAAa;QAA0B,QAAQ;;EAE5E,SAAS,OAAO;;;;;;EAMhB,YAAY,iBAAiB;;;;;EAK7B;;EAEA,eAAe,QAAQ;;EAEvB,YAAY,QAAQ;;EAEpB;;;;;EAKA;;;;;EAKA;;;UAIe;;EAEf;;EAEA;;;;;;;iBAYc,kBAAkB,SAAS,4BAA4B"}
@@ -1,4 +1,4 @@
1
- import { zm as Logger } from "../index-DyQyDLX1.js";
1
+ import { zm as Logger } from "../index-4mDRyTGJ.js";
2
2
  import { m as ExecResult } from "../isolation-CbGNAEhQ.js";
3
3
  import { t as SandboxProvider } from "../sandbox--bc6zacQ.js";
4
4
  import { Buffer } from "node:buffer";
@@ -1,4 +1,4 @@
1
- import { zm as Logger } from "../index-DyQyDLX1.js";
1
+ import { zm as Logger } from "../index-4mDRyTGJ.js";
2
2
  import { t as SandboxProvider } from "../sandbox--bc6zacQ.js";
3
3
  //#region src/contexts/e2b-sdk.d.ts
4
4
  /**
@@ -20,7 +20,7 @@ import { local } from "./providers/local.js";
20
20
  import { NEURALWATT_DEFAULT_MODEL, neuralwatt } from "./providers/neuralwatt.js";
21
21
  import { i as listensForCallback, o as startCallbackServer, r as honorsRemoteCallback, t as awaitAuthorizationCode } from "./server-uWgMffBf.js";
22
22
  import { n as createXaiOAuthProvider } from "./xai-6tBTk6CU.js";
23
- import { rt as modelDisplayName } from "./spaces-CyjMh5Zf.js";
23
+ import { it as modelDisplayName } from "./spaces-C_x2bvEl.js";
24
24
  import { n as renderDefaultCallbackPage } from "./render-gPS08Uiz.js";
25
25
  import { Buffer } from "node:buffer";
26
26
  import { existsSync, readFileSync, realpathSync } from "node:fs";
@@ -2271,4 +2271,4 @@ function providerFactoryOptions(dataDir, descriptor, account) {
2271
2271
  //#endregion
2272
2272
  export { modelSupportsReasoning as A, defaultModelOf as C, localDescriptor as D, getModelInfo as E, restoreModelOptions as F, openaiDescriptor as M, openrouterDescriptor as N, modelLabel as O, piIdOf as P, credKeyOf as S, getContextWindow as T, writeCredentialEntry as _, readCredentialEntry as a, anthropicDescriptor as b, readProviderCredentialPair as c, removeStoredCredential as d, setCredentialLabel as f, storedCredentialsOf as g, storedCredentialById as h, providerFactoryOptions as i, modelsForDescriptor as j, modelOptionsFor as k, readProviderCredentials as l, setProviderCredential as m, credentialsPath as n, readCredentials as o, setPreferredCredential as p, ensureCredentialIds as r, readProviderCredential as s, applyApiKeyEnv as t, removeProviderCredential as u, writeCredentials as v, enabledModelOptions as w, cerebrasDescriptor as x, BUILTIN_PROVIDERS as y };
2273
2273
 
2274
- //# sourceMappingURL=credentials-B9DfBJP9.js.map
2274
+ //# sourceMappingURL=credentials-DxOQmset.js.map