zidane 7.1.3 → 7.1.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 (99) hide show
  1. package/dist/{acp-B5UfEhMd.js → acp-DbYGzaVK.js} +2 -2
  2. package/dist/{acp-B5UfEhMd.js.map → acp-DbYGzaVK.js.map} +1 -1
  3. package/dist/acp-cli.js +4 -4
  4. package/dist/acp.d.ts +1 -1
  5. package/dist/acp.js +1 -1
  6. package/dist/{agent-_xxElOgH.js → agent-BlGt76qk.js} +4 -53
  7. package/dist/agent-BlGt76qk.js.map +1 -0
  8. package/dist/agent.d.ts +1 -1
  9. package/dist/agent.js +1 -1
  10. package/dist/{anthropic-DPPs3wjJ.js → anthropic-BQdAnY-w.js} +2 -2
  11. package/dist/{anthropic-DPPs3wjJ.js.map → anthropic-BQdAnY-w.js.map} +1 -1
  12. package/dist/{approvals-u2T19Dc-.js → approvals-BznYVVGD.js} +137 -42
  13. package/dist/{approvals-u2T19Dc-.js.map → approvals-BznYVVGD.js.map} +1 -1
  14. package/dist/{auth-HRKkOErn.js → auth-DvMdkpGD.js} +245 -82
  15. package/dist/{auth-HRKkOErn.js.map → auth-DvMdkpGD.js.map} +1 -1
  16. package/dist/chat/pure.d.ts +4 -4
  17. package/dist/chat/pure.js +3 -3
  18. package/dist/chat.d.ts +6 -6
  19. package/dist/chat.js +6 -6
  20. package/dist/contexts/daytona.d.ts +1 -1
  21. package/dist/contexts/e2b.d.ts +1 -1
  22. package/dist/{context-segments-BrEsRhA0.js → cred-keys-BbbBr4q3.js} +104 -2
  23. package/dist/cred-keys-BbbBr4q3.js.map +1 -0
  24. package/dist/daemon-cli.js +2 -1
  25. package/dist/daemon-cli.js.map +1 -1
  26. package/dist/eval.d.ts +1 -1
  27. package/dist/extensions.d.ts +1 -1
  28. package/dist/extensions.js +1 -1
  29. package/dist/headless.d.ts +1 -1
  30. package/dist/headless.js +1 -1
  31. package/dist/{index-D3TTaaQ5.d.ts → index-D9ntsW7o.d.ts} +20 -198
  32. package/dist/index-D9ntsW7o.d.ts.map +1 -0
  33. package/dist/{index-DZhrTn-v.d.ts → index-Dw8ruU-j.d.ts} +37 -9
  34. package/dist/index-Dw8ruU-j.d.ts.map +1 -0
  35. package/dist/index.d.ts +1 -1
  36. package/dist/index.js +4 -4
  37. package/dist/{ipc-ChQeueur.js → ipc-CNrpBs9P.js} +2 -2
  38. package/dist/{ipc-ChQeueur.js.map → ipc-CNrpBs9P.js.map} +1 -1
  39. package/dist/ipc.d.ts +28 -6
  40. package/dist/ipc.d.ts.map +1 -1
  41. package/dist/ipc.js +4 -4
  42. package/dist/mcp.d.ts +1 -1
  43. package/dist/{oauth-B6F43fti.js → oauth-DxHO17JE.js} +10 -8
  44. package/dist/{oauth-B6F43fti.js.map → oauth-DxHO17JE.js.map} +1 -1
  45. package/dist/output/stream-json.d.ts +1 -1
  46. package/dist/output/terminal.d.ts +1 -1
  47. package/dist/plugins.d.ts +1 -1
  48. package/dist/presets.d.ts +1 -1
  49. package/dist/presets.js +1 -1
  50. package/dist/providers/anthropic.d.ts +1 -1
  51. package/dist/providers/anthropic.js +1 -1
  52. package/dist/providers/arcee.d.ts +1 -1
  53. package/dist/providers/baseten.d.ts +1 -1
  54. package/dist/providers/cerebras.d.ts +1 -1
  55. package/dist/providers/local.d.ts +1 -1
  56. package/dist/providers/openai-compat.d.ts +1 -1
  57. package/dist/providers/openai.d.ts +1 -1
  58. package/dist/providers/openai.js +1 -1
  59. package/dist/providers/openrouter.d.ts +1 -1
  60. package/dist/providers/xai.d.ts +1 -1
  61. package/dist/providers/xai.js +1 -1
  62. package/dist/{providers-DP9kwXYo.js → providers-BVhnFyiY.js} +2 -2
  63. package/dist/{providers-DP9kwXYo.js.map → providers-BVhnFyiY.js.map} +1 -1
  64. package/dist/providers.d.ts +1 -1
  65. package/dist/providers.js +3 -3
  66. package/dist/restate.d.ts +1 -1
  67. package/dist/restate.js +1 -1
  68. package/dist/session/sqlite.d.ts +1 -1
  69. package/dist/session.d.ts +1 -1
  70. package/dist/{server-CTUpOdh3.js → shell-path-3tZ2lyQ2.js} +95 -9
  71. package/dist/shell-path-3tZ2lyQ2.js.map +1 -0
  72. package/dist/skills.d.ts +1 -1
  73. package/dist/{tool-formatters-C5s88MUd.d.ts → tool-formatters-CJoSmRjH.d.ts} +83 -3
  74. package/dist/tool-formatters-CJoSmRjH.d.ts.map +1 -0
  75. package/dist/tools/fetch-url.d.ts +1 -1
  76. package/dist/tools/web-search.d.ts +1 -1
  77. package/dist/tools.d.ts +1 -1
  78. package/dist/tools.js +1 -1
  79. package/dist/{transcript-anchors-DxofXw_y.d.ts → transcript-anchors-nWzUc3WT.d.ts} +201 -3
  80. package/dist/transcript-anchors-nWzUc3WT.d.ts.map +1 -0
  81. package/dist/tui.d.ts +20 -6
  82. package/dist/tui.d.ts.map +1 -1
  83. package/dist/tui.js +388 -58
  84. package/dist/tui.js.map +1 -1
  85. package/dist/{turn-operations-BaQnxzhr.d.ts → turn-operations-GRw5vbtr.d.ts} +34 -4
  86. package/dist/{turn-operations-BaQnxzhr.d.ts.map → turn-operations-GRw5vbtr.d.ts.map} +1 -1
  87. package/dist/{turn-operations-6JDu2ewy.js → turn-operations-JynC5ODZ.js} +31 -3
  88. package/dist/{turn-operations-6JDu2ewy.js.map → turn-operations-JynC5ODZ.js.map} +1 -1
  89. package/dist/types.d.ts +1 -1
  90. package/docs/CHAT.md +10 -0
  91. package/docs/TUI.md +1 -1
  92. package/package.json +1 -1
  93. package/dist/agent-_xxElOgH.js.map +0 -1
  94. package/dist/context-segments-BrEsRhA0.js.map +0 -1
  95. package/dist/index-D3TTaaQ5.d.ts.map +0 -1
  96. package/dist/index-DZhrTn-v.d.ts.map +0 -1
  97. package/dist/server-CTUpOdh3.js.map +0 -1
  98. package/dist/tool-formatters-C5s88MUd.d.ts.map +0 -1
  99. package/dist/transcript-anchors-DxofXw_y.d.ts.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as SessionArtifactDirMigration, $_ as SkillsConfig, $c as matchesAllowedTool, $d as CustomField, $g as SessionHookContext, $h as credentialsFilePath, $i as McpToolMeta, $l as InlineAutocompleteContext, $n as HeadlessResult, $o as ExtensionStorageSurface, $p as ContextExtensionRow, $r as RunSummaryTokens, $s as StoredExtensionConfigItem, $t as EvalRunUsage, $v as SessionArtifact, A as Meter, A_ as HydrateReadStateOptions, Aa as registerExtensionHostModules, Ac as parsePluginManifest, Ah as AnthropicParams, Ai as ANCHOR_PREVIEW_MAX_CHARS, Al as ActivationVia, An as efficiencyMetricValues, Ao as ExtensionCustomRendererEntry, Ar as createSkillsReadTool, As as ExtensionSessionSummary, At as resolveExtensionDocsDir, Au as CommandSpawnTask, Av as SYNTHETIC_TOOL_RESULT_PLACEHOLDER, B as McpCredentialStore, B_ as StagedToolState, Ba as discoverAndBuildExtensionRegistry, Bc as PluginDiagnostic, Bg as PromptDocumentPart, Bi as generateStructuredData, Bn as functionalityMetric, Bo as ExtensionModalNode, Br as InteractionToolOptions, Bs as ExtensionConfigBooleanItem, Bt as EvalAgentStats, Bv as fromAnthropic, C as SuccessfulMutationOutcome, C_ as TurnUsage, Ca as fetchExtensionSource, Cc as createModelSearchTool, Cg as CompactFunction, Ch as BasetenParams, Ci as NO_TOOLS_PREAMBLE, Cm as StreamOptions, Cn as clearRegisteredEvals, Co as ExtensionBusMessage, Cp as fanoutSink, Cs as ExtensionStatusOptions, Ct as ZIDANE_SKILL_EDIT_SKILL_NAME, Cu as CommandAttachment, Cv as ORPHANED_TOOL_RESULT_MARKER, Cy as originPinnedFetch, D as Counter, D_ as ToolContext, Da as readExtensionInstallProvenance, Dc as PLUGIN_MCP_FILE, Dg as DedupHasher, Dh as arcee, Di as buildFullCompactPrompt, Dl as buildCatalog, Dm as ToolSpec, Dn as createReusableExecutionContext, Do as ExtensionContextTransform, Dp as formatLogLine, Dr as SkillsRunScriptToolOptions, Ds as ExtensionHostRuntimeImpl, Dt as extensionDirForCwd, Du as CommandInvocation, Dv as PairingRepairMode, Dy as getModelCatalog, E as resolveModelTargets, E_ as toolResultToText, Ea as parseExtensionInstallSource, Ec as PLUGIN_SKILLS_DIR, Ef as ConfirmQuestion, Eh as ArceeParams, Ei as buildFromCompactPrompt, El as parseSkillFile, Em as ToolResult, En as createEvalRunReporter, Eo as ExtensionContext, Er as createSkillsUseTool, Es as ExtensionHostRuntimeBridge, Et as editSessionMetadata, Eu as CommandInteraction, Ev as PairingRepair, Ey as ModelCatalogSource, F as createMetricsHooks, F_ as hydrateReadStateFromSession, Fa as inlineLoadedExtension, Fc as AgentPluginsVersion, Fg as ModelTargetSpec, Fh as anthropic, Fi as sliceForCompaction, Fl as createSkillActivationState, Fm as SchemaSanitizeProfile, Fn as fileExistsOneOf, Fo as ExtensionKeybinding, Fs as createExtensionHostRuntimeBridge, Ft as EvalAgent, Fu as commandBlocksToContent, Fv as detectTurnInterruption, G as OAuthCallbackHandle, G_ as createToolStateController, Ga as EXTENSION_BUS_MAX_PAYLOAD_BYTES, Gc as isSupportedAgentPluginsVersion, Gg as RepeatGuardConfig, Gi as localReliabilityBehavior, Gm as OpenAICompatAuthHeader, Gn as runEvalCase, Go as ExtensionProviderMiddleware, Gr as RunSummary, Gs as ExtensionConfigItemBase, Gt as EvalDefinitionContext, Gv as toAnthropic, H as McpOAuthProviderOptions, H_ as ToolStateOp, Ha as ExtensionPromptDelivery, Hc as PluginSchemaKind, Hf as QuestionChoice, Hg as PromptPart, Hi as defaultRepeatGuardTracked, Hn as normalizeMetric, Ho as ExtensionPaths, Hp as ContextSegmentFile, Hr as grep, Hs as ExtensionConfigChangeBehavior, Ht as EvalCaseOptions, Hv as reasoningWireAction, I as LoginMcpServerOptions, I_ as hydrateReadStateFromSessionAsync, Ia as isExtensionDefinition, Ic as LoadAgentPluginOptions, Ig as OAuthRefreshHookContext, Ih as applyAnthropicCacheBreakpoints, Ii as stripImagesFromTurns, Im as SchemaSanitizeResult, In as finalizeEvalMetrics, Io as ExtensionKeybindingDispatchContext, Is as createWorkspaceSurface, It as EvalAgentMcpServers, Iu as commandSteps, Iv as dropInvalidToolPairings, J as startOAuthCallback, J_ as ShellInterpolationApproval, Ja as ExtensionBusEnvelope, Jc as writeSkillToDisk, Jf as TextQuestion, Jg as ResolveContentRefBlock, Ji as AgentHookMap, Jo as ExtensionRuntimeEnv, Jp as ContextBreakdownContributor, Jr as RunSummaryByModel, Js as ExtensionConfigScope, Jt as EvalRunMetricAggregate, Jv as ARTIFACTS_METADATA_KEY, K as OAuthCallbackOptions, K_ as isToolStateOps, Ka as ExtensionBus, Kc as parseSchemaId, Kg as RepeatGuardToolMatcher, Ki as _default, Km as OpenAICompatHttpError, Kn as statusCompleted, Ko as ExtensionRegistry, Kp as ContextBreakdown, Kr as RunSummaryBlock, Ks as ExtensionConfigModelItem, Kt as EvalMetric, Kv as toOpenAI, L as LoginMcpServerResult, L_ as readStateKey, La as parseExtensionScanPathEnv, Lc as LoadedPlugin, Lf as PlanPayload, Lg as ProgressNudgeKind, Li as summaryToTurn, Lm as sanitizeToolSchema, Ln as formatEvalCaseSummary, Lo as ExtensionManifest, Ls as ExtensionConfigActionItem, Lt as EvalAgentRunOptions, Lu as executeCommand, Lv as ensureEndsWithUserMessage, M as MetricsHookSet, M_ as ReadStateMap, Ma as ExtensionScanEntry, Mc as PLUGIN_MANIFEST_FILE, Mg as McpToolHookContext, Mi as CompactionSlice, Ml as DeactivationReason, Mm as XaiParams, Mn as fileContains, Mo as ExtensionFooterHint, Mr as CreateShellToolOptions, Ms as ExtensionWorkspacePair, Mt as withZidaneSkillEditSkill, Mu as CommandStepContext, Mv as ToWireMessagesOptions, N as MetricsHooksOptions, N_ as getReadState, Na as defaultExtensionScanPaths, Nc as defaultPluginDataRoot, Ni as SummaryToTurnInput, Nl as SkillActivationState, Nm as xai, Nn as fileContentQuality, No as ExtensionGuiPanel, Nr as createShellTool, Ns as ExtensionWorkspaceSurface, Nt as CreateEvalAgentOptions, Nu as CommandStepFn, Nv as TurnInterruptionState, O as Histogram, O_ as ToolDef, Oa as removeInstalledExtension, Oc as expandPluginVars, Og as DedupToolConfig, Oi as buildTailCompactPrompt, Ol as IMPLICITLY_ALLOWED_SKILL_TOOLS, Om as TurnResult, On as defineEval, Oo as ExtensionContributions, Or as createSkillsRunScriptTool, Os as ExtensionModelEntry, Ot as extensionScaffold, Ou as CommandOutputBlock, Ov as ReasoningWireAction, Oy as setModelCatalog, P as UpDownCounter, P_ as hashContent, Pa as discoverExtensions, Pc as loadAgentPlugin, Pg as ModelTarget, Pi as anchorPreviewFor, Pl as SkillActivationStateOptions, Pm as SchemaSanitizeOptions, Pn as fileExists, Po as ExtensionGuiSurface, Ps as createArtifactsSurface, Pt as EFFICIENCY_METRICS, Pu as commandBlockToEvent, Pv as autoDetectAndConvert, Q as PersistOutcome, Q_ as SkillSource, Qa as artifactKindLabel, Qc as isToolAllowedByUnion, Qg as SessionEndStatus, Qh as ResolveOAuthApiKeyOptions, Qi as McpConnector, Qo as ExtensionStorageScope, Qp as ContextExactCounts, Qr as RunSummaryRepeatGuard, Qs as ExtensionConfigValueItem, Qt as EvalRunSummaryCase, Qv as ArtifactFilter, R as loginMcpServer, R_ as resolveReadStateMap, Ra as scanExtensionDirectories, Rc as PluginAuthor, Rg as ProgressNudgeMessage, Ri as truncateHeadForPtlRetry, Rm as sanitizeToolSpecs, Rn as formatEvalRunSummary, Ro as ExtensionMcpConfigTransform, Rr as multiEdit, Rs as ExtensionConfigActionResult, Rt as EvalAgentRunResult, Ru as parseCommandInvocation, Rv as ensureToolResultPairing, S as MutationValidationResult, S_ as TurnFinishReason, Sa as InstalledExtensionTargetOptions, Sc as SpawnModelEntry, Sf as shouldAutoCompact, Sg as CompactEndHookContext, Sh as cerebras, Si as CompactPromptOptions, Sl as discoverSkills, Sm as StreamCallbacks, Sn as buildTrajectory, So as ExtensionBusEmitOptions, Sp as createRingBufferSink, Ss as ExtensionNotifyTone, St as ZIDANE_EXTENSION_SKILL_NAME, Su as CommandArgSuggestion, Sv as EnsureToolResultPairingOptions, T as normalizeProviders, T_ as toolOutputByteLength, Ta as listExtensionCandidates, Tc as matchModelEntries, Tf as AnswerValue, Tg as CompactStartHookContext, Ti as buildCompactPrompt, Tm as ToolCall, Tn as createEvalAgent, To as ExtensionCapability, Tr as SkillsUseToolOptions, Ts as ExtensionArtifactScope, Tt as buildZidaneSkillEditSkill, Tu as CommandGenerateDataOptions, Tv as PairingDropKind, Ty as ModelCatalogEntry, U as createMemoryMcpCredentialStore, U_ as ToolStateStore, Ua as createExtensionPromptBridge, Uc as SUPPORTED_AGENT_PLUGINS_VERSIONS, Uf as QuestionPayload, Ug as PromptTextPart, Ui as normalizeShellCommand, Un as registerEvalTests, Uo as ExtensionPermission, Up as ContextSegmentOrigin, Ur as glob, Us as ExtensionConfigEnumItem, Ut as EvalCaseResult, Uv as remintDuplicateToolCallIds, V as McpOAuthProvider, V_ as ToolStateController, Va as ExtensionPromptBridge, Vc as PluginManifest, Vf as Question, Vg as PromptImagePart, Vi as defaultRepeatGuardNormalize, Vm as openrouter, Vn as llmJudge, Vo as ExtensionOrderedContribution, Vp as ContextSegment, Vr as createInteractionTool, Vs as ExtensionConfigCategory, Vt as EvalArtifacts, Vv as fromOpenAI, W as hasAuthorizationHeader, W_ as ToolStateView, Wa as defineExtension, Wc as agentPluginsSchemaId, Wg as PromptVideoPart, Wi as stableStringify, Wn as relativeArtifactPath, Wo as ExtensionPromptTransform, Wp as ContextSegmentsInput, Wr as edit, Ws as ExtensionConfigItem, Wt as EvalDefinition, Wv as sanitizeHistoryForProvider, X as PERSISTENCE_PREVIEW_BYTES, X_ as SkillDiagnostic, Xc as SkillValidationIssue, Xg as RunHookMap, Xi as AgentOptions, Xn as HeadlessEvent, Xo as ExtensionSkillPolicy, Xp as ContextCategory, Xr as RunSummaryCollectorOptions, Xs as ExtensionConfigSurface, Xt as EvalRunReporterOptions, Xv as ARTIFACT_KINDS, Y as PERSISTED_STUB_PREFIX, Y_ as SkillConfig, Ya as createExtensionBus, Yc as writeSkillsToDisk, Yg as RetryConfig, Yi as AgentHooks, Yn as HeadlessErrorInfo, Yo as ExtensionSessionStateSurface, Yp as ContextBreakdownOptions, Yr as RunSummaryCollector, Ys as ExtensionConfigStringItem, Yt as EvalRunReporter, Yv as ARTIFACTS_PER_SESSION_CAP, Z as PersistInput, Z_ as SkillResource, Za as BUILTIN_ARTIFACT_KINDS, Zc as SkillValidationResult, Zg as SessionContentBlock, Zh as OAuthParams, Zi as AgentToolState, Zn as HeadlessOptions, Zo as ExtensionSource, Zp as ContextCategoryId, Zr as RunSummaryError, Zs as ExtensionConfigValue, Zt as EvalRunSummary, _ as statsByModel, __ as ToolResultImageContent, _a as ExtensionInstallProvenance, _c as SubagentDef, _f as AUTO_COMPACT_MIN_GROWTH_FRACTION, _g as AgentStats, _h as LocalParams, _i as CompactInvalidInputError, _l as installSkillFromSpec, _m as HistoryRepair, _n as TrajectoryStep, _p as LoggingHooksOptions, _r as waitTask, _s as ExtensionHudState, _t as EXTENSION_EDIT_METADATA_KEY, _v as createRemoteStore, _y as normalizeMcpServers, a as basicTools, a_ as StreamHookContext, aa as buildExtensionRegistry, ac as isValidExtensionConfigValue, ag as resolveOAuthApiKey, ah as openaiCompat, ai as PostCompactAttachments, al as resolveSkills, an as EvalWorkspaceFile, ao as refreshArtifact, ap as InferSchemaOutput, as as ExtensionToolRendererRegistration, at as resolveLegacySessionDir, av as SessionRun, ay as sortArtifacts, b as MutationValidationHooksOptions, b_ as ToolResultTextContent, ba as ExtensionInstallSource, bc as createSpawnTool, bf as OUTPUT_RESERVE_TOKENS, bg as CacheTtl, bi as CompactDirection, bl as readSkillProvenance, bm as ProviderCapabilities, bn as buildEvalRunSummary, bo as ExtensionArtifactsSurface, bp as createLogger, bs as ExtensionNotification, bt as SKILL_EDIT_METADATA_KEY, bu as Command, bv as FileMapStoreOptions, c as StartSpan, c_ as ThinkingDecay, ca as filterExtensionRegistry, cc as sanitizeExtensionConfigActionPatch, ci as buildPostCompactAttachments, cl as stripShellInterpolations, cm as CacheDimensionDiff, cn as LlmJudgeOptions, cp as isStandardSchema, cs as ExtensionToolResultTransform, ct as resolveSessionDir, cy as McpExecutionBinding, d as TracingHooksOptions, d_ as ToolHookContext, da as partitionExtensionCatalog, dc as ExtensionSubagentDef, dg as refreshAnthropicToken, di as selectRecentFiles, dl as SkillInstallCandidate, dm as CacheDriftInfo, dn as MetricSpec, do as EMPTY_EXTENSION_REGISTRY, dp as ConsoleSinkOptions, ds as GuiContributions, dt as SHELL_CASCADE_CANCEL_MESSAGE, du as CompletionProvider, e_ as SessionMessage, ea as McpToolWrap, ec as WireExtensionConfigItem, ef as ModelInfo, eg as credentialsFromParams, eh as classifyOpenAICompatError, ei as RunSummaryValidation, el as parseAllowedToolPattern, em as ContextExtensionSection, en as EvalScore, er as HeadlessStatus, es as ExtensionToolCatalogTransform, et as buildPersistedStub, eu as InlineAutocompleteProvider, ev as CreateSessionOptions, ey as SessionArtifactInput, f as createTracingHooks, f_ as ToolOutcome, fa as ExtensionFetchResult, fc as SpawnTaskInput, fg as refreshOpenAICodexToken, fh as openai, fi as CompactEndEvent, fl as SkillInstallError, fm as diffCacheDimensions, fn as MetricSpecMap, fo as ExtensionAgentPluginOptions, fp as LogLevel, fr as runHeadless, fs as LoadedExtension, ft as TOOL_USE_CANCELLED_MESSAGE, fu as CompletionReference, fv as loadSession, g as formatTokenUsage, g_ as ToolResultDocumentRefContent, ga as ExtensionInstallIo, gc as SpawnToolState, gg as AgentRunOptions, gi as compactConversation, gl as SkillInstallSpec, gm as snapshotCacheDimensions, gn as Trajectory, go as ExtensionArtifactQuery, gp as LoggingHookSet, gs as ExtensionHud, gt as renderStaleReadNotice, gv as RemoteStoreOptions, gy as normalizeMcpBlocks, h as flattenTurns, h_ as ToolResultDocumentContent, ha as ExtensionInstallErrorCode, hc as SpawnToolOptions, hh as mistral, hi as CompactStartEvent, hl as SkillInstallResult, hm as installCacheBreakLogger, hn as ReusableExecutionContext, ho as ExtensionArtifactKindRegistration, hp as Logger, hs as ExtensionBannerOptions, ht as collectNewlyStaleReadPaths, i as _default$1, i_ as StepThinkingDecay, ia as buildExtensionPreset, ic as isValidExtensionConfigItem, ig as registerCustomOAuthProvider, ii as utf8ByteLength, il as validateSkillName, im as ContextUsageSplit, in as EvalVariantSummary, is as ExtensionToolRendererEntry, it as resolveLegacyPersistDir, iu as resolveInlineSuggestion, iv as SessionMetaRow, iy as selectArtifactEvictions, j as MetricAttributes, j_ as ReadStateEntry, ja as ENTRY_CANDIDATES, jc as validatePluginManifest, jg as McpServerConfig, ji as CompactScope, jl as ActiveSkill, jn as emitEfficiencyMetrics, jo as ExtensionDefinition, js as ExtensionSessionsSurface, jt as withZidaneExtensionSkill, ju as CommandStep, jv as TOOL_USE_INTERRUPTED_MARKER, k as InstrumentOptions, k_ as ToolMap, ka as updateInstalledExtension, kc as ManifestValidation, kg as GeometricThinkingDecay, ki as buildUpToCompactPrompt, kl as installAllowedToolsGate, kn as defineMetrics, ko as ExtensionCustomRenderer, kr as SkillsReadToolOptions, ks as ExtensionRuntimeSurface, kt as readSkillEditMarker, ku as CommandSpawnResult, kv as RemintResult, l as TracingConventions, l_ as ThinkingLevel, lc as toWireConfigSchema, lg as getOAuthApiKey, lh as OpenAIParams, li as selectFilesFromReadState, lm as CacheDimensionName, ln as MetricDirection, lo as createArtifactDetectHook, lp as resolveSchemaInput, lr as headlessEventToJsonl, ls as ExtensionToolVerdict, lt as resolveTasksDir, lu as CompletionContext, m as TokenUsageLike, m_ as ToolResultContent, ma as ExtensionInstallError, mc as SpawnTool, mg as AgentBehavior, mh as MistralParams, mi as CompactResult, ml as SkillInstallOptions, mm as hashMessages, mn as RegisterEvalTestsOptions, mo as ExtensionArtifactDetection, mp as LogSink, ms as TuiContributions, mt as applyCompactSummaryCutoff, my as expandMcpConfigEnv, n as composePresets, n_ as SpawnHookContext, na as BuildExtensionRegistryOptions, nc as clampExtensionConfigNumber, nf as ProviderDescriptor, ng as isOAuthAccessToken, ni as BYTES_PER_TOKEN, nl as validateResourcePathReal, nm as ContextMcpGroup, nn as EvalScorerContext, ns as ExtensionToolRenderProps, nt as maybePersistToolResult, nu as createPathAutocompleteProvider, nv as Session, ny as mergeArtifact, o as GEN_AI_ATTRIBUTES, o_ as StreamProgressHookContext, oa as composeExtensionPreset, oc as resolveExtensionConfig, og as writeOAuthCredentials, oi as PostCompactRestoreOptions, ol as InterpolateShellCommandsOptions, om as CacheBreakInfo, on as EvalWorkspaceOptions, oo as renderArtifactRow, op as SchemaInput, os as ExtensionToolResultMetadataRegistration, ot as resolveMcpWarningsDir, ov as SessionStore, oy as ConnectMcpServersOptions, p as ModelUsage, p_ as ToolResultAudioContent, pa as ExtensionInstallCandidate, pc as SpawnTaskOutcome, pg as registerOAuthProvider, pi as CompactOptions, pl as SkillInstallErrorCode, pm as fnv1a32, pn as MetricStats, po as ExtensionApiVersion, pp as LogRecord, pr as transcriptToOpenAIMessages, ps as LoadedPluginRecord, pt as TOOL_USE_SKIPPED_MESSAGE, pu as CompletionSubmitContext, py as expandEnvPlaceholders, q as OAuthCallbackResult, q_ as stagedToolState, qa as ExtensionBusChannel, qc as defineSkill, qf as SelectQuestion, qg as ResolveContentRef, qi as Agent, qm as OpenAICompatParams, qo as ExtensionRunTransform, qp as ContextBreakdownContributionContext, qr as RunSummaryBudget, qs as ExtensionConfigNumberItem, qt as EvalMetricError, qv as toWireMessages, r as definePreset, r_ as StaleReadPolicy, ra as ExtensionCatalogPartition, rc as coerceExtensionConfigInput, rg as readOAuthCredentials, rh as mapOAIFinishReason, ri as estimateTokens, rl as validateSkillForWrite, rm as ContextSnapshot, rn as EvalTestRunner, rr as OpenAIChatMessage, rs as ExtensionToolRenderer, rt as migrateSessionArtifactDirs, ru as patchInlineGhost, rv as SessionData, ry as normalizeArtifactInput, s as Span, s_ as StreamUsageSnapshot, sa as disposeExtensionRegistry, sc as resolveExtensionConfigValue, sg as OAuthProviderInterface, si as RecentFile, sl as interpolateShellCommands, sm as CacheBreakLoggerOptions, sn as EvalWorkspaceSnapshot, so as resolveArtifactKind, sp as StandardSchemaLike, ss as ExtensionToolResultPatch, st as resolvePersistDir, sv as createSession, sy as McpConnection, t as Preset, t_ as SessionTurn, ta as createAgent, tc as WireExtensionConfigSchema, tf as ModelOption, tg as extractRuntimeCredentials, ti as createRunSummaryCollector, tl as validateResourcePath, tm as ContextItem, tn as EvalScorer, tr as HeadlessUsage, ts as ExtensionToolPolicy, tt as cleanupPersistedSession, tu as InlineGhost, tv as LoadSessionOptions, ty as matchesArtifactFilter, u as TracingHookSet, ua as mergeContributions, uc as ChildAgent, ug as getOAuthProvider, ui as selectFilesFromSession, um as CacheDimensionSnapshot, un as MetricEmitter, uo as ArtifactResolveOptions, up as zodToJsonSchema, us as ExtensionTuiSurface, ut as INTERRUPT_MESSAGE_FOR_TOOL_USE, uu as CompletionItem, uy as connectMcpServers, v as MutationValidationBatch, v_ as ToolResultImageRefContent, va as ExtensionInstallResult, vc as SubagentOverride, vf as AutoCompactDecision, vg as AutoCompact, vh as local, vi as CompactPromptTooLongError, vl as listSkillCandidates, vn as TrajectoryStepKind, vo as ExtensionArtifactRendererRegistration, vp as RingBufferSink, vr as ValidationResult, vs as ExtensionHudStatus, vt as EditSessionTarget, vv as createMemoryStore, vy as resolveTransportConfig, w as createMutationValidationHooks, w_ as toolOutputBudgetByteLength, wa as installExtensionFromSpec, wc as formatModelLine, wg as CompactHookContext, wh as baseten, wi as TRAILER, wn as computeEvalTagScores, wo as ExtensionBusSurface, wp as jsonSink, ws as createExtensionHud, wt as buildZidaneExtensionSkill, wu as CommandExecution, wv as PairingDrop, wy as ModelCatalog, x as MutationValidationMutation, x_ as ToolResultVideoContent, xa as InstallExtensionFromSpecOptions, xc as isSpawnTool, xf as effectiveContextWindow, xh as CerebrasParams, xi as CompactPromptBuilder, xl as SourcedScanPath, xm as ProviderMeta, xn as buildRegisteredEvals, xo as ExtensionBehaviorTransform, xp as createLoggingHooks, xs as ExtensionNotifyOptions, xt as SkillEditMarker, xu as CommandAgentResult, xv as createFileMapStore, y as MutationValidationFailure, y_ as ToolResultMetadata, ya as ExtensionInstallScope, yc as SubagentRegistry, yf as AutoCompactInput, yg as AutoCompactConfig, yi as BASE_INSTRUCTIONS, yl as parseSkillInstallSpec, ym as Provider, yn as artifactPath, yo as ExtensionArtifactRow, yp as consoleSink, yr as validateToolArgs, ys as ExtensionHudWriter, yt as ExtensionEditMarker, yu as resolveCompletionSubmit, yv as FileMapAdapter, yy as resultToString, z as McpCredentialEntry, z_ as DEFAULT_MAX_VALUE_BYTES, za as DiscoverAndBuildExtensionRegistryOptions, zc as PluginComponentStatus, zf as PlanResponse, zg as PromptAudioPart, zi as GenerateStructuredDataOptions, zm as OpenRouterParams, zn as formatTrajectoryLine, zo as ExtensionModal, zs as ExtensionConfigActionStatus, zt as EvalAgentRunStats, zv as filterUnresolvedToolUses } from "./index-DZhrTn-v.js";
1
+ import { $ as SessionArtifactDirMigration, $_ as SkillsConfig, $c as matchesAllowedTool, $d as CustomField, $g as SessionHookContext, $h as credentialsFilePath, $i as McpToolMeta, $l as InlineAutocompleteContext, $n as HeadlessResult, $o as ExtensionStorageSurface, $p as ContextExtensionRow, $r as RunSummaryTokens, $s as StoredExtensionConfigItem, $t as EvalRunUsage, $v as SessionArtifact, A as Meter, A_ as HydrateReadStateOptions, Aa as registerExtensionHostModules, Ac as parsePluginManifest, Ah as AnthropicParams, Ai as ANCHOR_PREVIEW_MAX_CHARS, Al as ActivationVia, An as efficiencyMetricValues, Ao as ExtensionCustomRendererEntry, Ar as createSkillsReadTool, As as ExtensionSessionSummary, At as resolveExtensionDocsDir, Au as CommandSpawnTask, Av as SYNTHETIC_TOOL_RESULT_PLACEHOLDER, B as McpCredentialStore, B_ as StagedToolState, Ba as discoverAndBuildExtensionRegistry, Bc as PluginDiagnostic, Bg as PromptDocumentPart, Bi as generateStructuredData, Bn as functionalityMetric, Bo as ExtensionModalNode, Br as InteractionToolOptions, Bs as ExtensionConfigBooleanItem, Bt as EvalAgentStats, Bv as fromAnthropic, C as SuccessfulMutationOutcome, C_ as TurnUsage, Ca as fetchExtensionSource, Cc as createModelSearchTool, Cg as CompactFunction, Ch as BasetenParams, Ci as NO_TOOLS_PREAMBLE, Cm as StreamOptions, Cn as clearRegisteredEvals, Co as ExtensionBusMessage, Cp as fanoutSink, Cs as ExtensionStatusOptions, Ct as ZIDANE_SKILL_EDIT_SKILL_NAME, Cu as CommandAttachment, Cv as ORPHANED_TOOL_RESULT_MARKER, Cy as originPinnedFetch, D as Counter, D_ as ToolContext, Da as readExtensionInstallProvenance, Dc as PLUGIN_MCP_FILE, Dg as DedupHasher, Dh as arcee, Di as buildFullCompactPrompt, Dl as buildCatalog, Dm as ToolSpec, Dn as createReusableExecutionContext, Do as ExtensionContextTransform, Dp as formatLogLine, Dr as SkillsRunScriptToolOptions, Ds as ExtensionHostRuntimeImpl, Dt as extensionDirForCwd, Du as CommandInvocation, Dv as PairingRepairMode, Dy as getModelCatalog, E as resolveModelTargets, E_ as toolResultToText, Ea as parseExtensionInstallSource, Ec as PLUGIN_SKILLS_DIR, Ef as ConfirmQuestion, Eh as ArceeParams, Ei as buildFromCompactPrompt, El as parseSkillFile, Em as ToolResult, En as createEvalRunReporter, Eo as ExtensionContext, Er as createSkillsUseTool, Es as ExtensionHostRuntimeBridge, Et as editSessionMetadata, Eu as CommandInteraction, Ev as PairingRepair, Ey as ModelCatalogSource, F as createMetricsHooks, F_ as hydrateReadStateFromSession, Fa as inlineLoadedExtension, Fc as AgentPluginsVersion, Fg as ModelTargetSpec, Fh as anthropic, Fi as sliceForCompaction, Fl as createSkillActivationState, Fm as SchemaSanitizeProfile, Fn as fileExistsOneOf, Fo as ExtensionKeybinding, Fs as createExtensionHostRuntimeBridge, Ft as EvalAgent, Fu as commandBlocksToContent, Fv as detectTurnInterruption, G as OAuthCallbackHandle, G_ as createToolStateController, Ga as EXTENSION_BUS_MAX_PAYLOAD_BYTES, Gc as isSupportedAgentPluginsVersion, Gg as RepeatGuardConfig, Gi as localReliabilityBehavior, Gm as OpenAICompatAuthHeader, Gn as runEvalCase, Go as ExtensionProviderMiddleware, Gr as RunSummary, Gs as ExtensionConfigItemBase, Gt as EvalDefinitionContext, Gv as toAnthropic, H as McpOAuthProviderOptions, H_ as ToolStateOp, Ha as ExtensionPromptDelivery, Hc as PluginSchemaKind, Hf as QuestionChoice, Hg as PromptPart, Hi as defaultRepeatGuardTracked, Hn as normalizeMetric, Ho as ExtensionPaths, Hp as ContextSegmentFile, Hr as grep, Hs as ExtensionConfigChangeBehavior, Ht as EvalCaseOptions, Hv as reasoningWireAction, I as LoginMcpServerOptions, I_ as hydrateReadStateFromSessionAsync, Ia as isExtensionDefinition, Ic as LoadAgentPluginOptions, Ig as OAuthRefreshHookContext, Ih as applyAnthropicCacheBreakpoints, Ii as stripImagesFromTurns, Im as SchemaSanitizeResult, In as finalizeEvalMetrics, Io as ExtensionKeybindingDispatchContext, Is as createWorkspaceSurface, It as EvalAgentMcpServers, Iu as commandSteps, Iv as dropInvalidToolPairings, J as startOAuthCallback, J_ as ShellInterpolationApproval, Ja as ExtensionBusEnvelope, Jc as writeSkillToDisk, Jf as TextQuestion, Jg as ResolveContentRefBlock, Ji as AgentHookMap, Jo as ExtensionRuntimeEnv, Jp as ContextBreakdownContributor, Jr as RunSummaryByModel, Js as ExtensionConfigScope, Jt as EvalRunMetricAggregate, Jv as ARTIFACTS_METADATA_KEY, K as OAuthCallbackOptions, K_ as isToolStateOps, Ka as ExtensionBus, Kc as parseSchemaId, Kg as RepeatGuardToolMatcher, Ki as _default, Km as OpenAICompatHttpError, Kn as statusCompleted, Ko as ExtensionRegistry, Kp as ContextBreakdown, Kr as RunSummaryBlock, Ks as ExtensionConfigModelItem, Kt as EvalMetric, Kv as toOpenAI, L as LoginMcpServerResult, L_ as readStateKey, La as parseExtensionScanPathEnv, Lc as LoadedPlugin, Lf as PlanPayload, Lg as ProgressNudgeKind, Li as summaryToTurn, Lm as sanitizeToolSchema, Ln as formatEvalCaseSummary, Lo as ExtensionManifest, Ls as ExtensionConfigActionItem, Lt as EvalAgentRunOptions, Lu as executeCommand, Lv as ensureEndsWithUserMessage, M as MetricsHookSet, M_ as ReadStateMap, Ma as ExtensionScanEntry, Mc as PLUGIN_MANIFEST_FILE, Mg as McpToolHookContext, Mi as CompactionSlice, Ml as DeactivationReason, Mm as XaiParams, Mn as fileContains, Mo as ExtensionFooterHint, Mr as CreateShellToolOptions, Ms as ExtensionWorkspacePair, Mt as withZidaneSkillEditSkill, Mu as CommandStepContext, Mv as ToWireMessagesOptions, N as MetricsHooksOptions, N_ as getReadState, Na as defaultExtensionScanPaths, Nc as defaultPluginDataRoot, Ni as SummaryToTurnInput, Nl as SkillActivationState, Nm as xai, Nn as fileContentQuality, No as ExtensionGuiPanel, Nr as createShellTool, Ns as ExtensionWorkspaceSurface, Nt as CreateEvalAgentOptions, Nu as CommandStepFn, Nv as TurnInterruptionState, O as Histogram, O_ as ToolDef, Oa as removeInstalledExtension, Oc as expandPluginVars, Og as DedupToolConfig, Oi as buildTailCompactPrompt, Ol as IMPLICITLY_ALLOWED_SKILL_TOOLS, Om as TurnResult, On as defineEval, Oo as ExtensionContributions, Or as createSkillsRunScriptTool, Os as ExtensionModelEntry, Ot as extensionScaffold, Ou as CommandOutputBlock, Ov as ReasoningWireAction, Oy as setModelCatalog, P as UpDownCounter, P_ as hashContent, Pa as discoverExtensions, Pc as loadAgentPlugin, Pg as ModelTarget, Pi as anchorPreviewFor, Pl as SkillActivationStateOptions, Pm as SchemaSanitizeOptions, Pn as fileExists, Po as ExtensionGuiSurface, Ps as createArtifactsSurface, Pt as EFFICIENCY_METRICS, Pu as commandBlockToEvent, Pv as autoDetectAndConvert, Q as PersistOutcome, Q_ as SkillSource, Qa as artifactKindLabel, Qc as isToolAllowedByUnion, Qg as SessionEndStatus, Qh as ResolveOAuthApiKeyOptions, Qi as McpConnector, Qo as ExtensionStorageScope, Qp as ContextExactCounts, Qr as RunSummaryRepeatGuard, Qs as ExtensionConfigValueItem, Qt as EvalRunSummaryCase, Qv as ArtifactFilter, R as loginMcpServer, R_ as resolveReadStateMap, Ra as scanExtensionDirectories, Rc as PluginAuthor, Rg as ProgressNudgeMessage, Ri as truncateHeadForPtlRetry, Rm as sanitizeToolSpecs, Rn as formatEvalRunSummary, Ro as ExtensionMcpConfigTransform, Rr as multiEdit, Rs as ExtensionConfigActionResult, Rt as EvalAgentRunResult, Ru as parseCommandInvocation, Rv as ensureToolResultPairing, S as MutationValidationResult, S_ as TurnFinishReason, Sa as InstalledExtensionTargetOptions, Sc as SpawnModelEntry, Sf as shouldAutoCompact, Sg as CompactEndHookContext, Sh as cerebras, Si as CompactPromptOptions, Sl as discoverSkills, Sm as StreamCallbacks, Sn as buildTrajectory, So as ExtensionBusEmitOptions, Sp as createRingBufferSink, Ss as ExtensionNotifyTone, St as ZIDANE_EXTENSION_SKILL_NAME, Su as CommandArgSuggestion, Sv as EnsureToolResultPairingOptions, T as normalizeProviders, T_ as toolOutputByteLength, Ta as listExtensionCandidates, Tc as matchModelEntries, Tf as AnswerValue, Tg as CompactStartHookContext, Ti as buildCompactPrompt, Tm as ToolCall, Tn as createEvalAgent, To as ExtensionCapability, Tr as SkillsUseToolOptions, Ts as ExtensionArtifactScope, Tt as buildZidaneSkillEditSkill, Tu as CommandGenerateDataOptions, Tv as PairingDropKind, Ty as ModelCatalogEntry, U as createMemoryMcpCredentialStore, U_ as ToolStateStore, Ua as createExtensionPromptBridge, Uc as SUPPORTED_AGENT_PLUGINS_VERSIONS, Uf as QuestionPayload, Ug as PromptTextPart, Ui as normalizeShellCommand, Un as registerEvalTests, Uo as ExtensionPermission, Up as ContextSegmentOrigin, Ur as glob, Us as ExtensionConfigEnumItem, Ut as EvalCaseResult, Uv as remintDuplicateToolCallIds, V as McpOAuthProvider, V_ as ToolStateController, Va as ExtensionPromptBridge, Vc as PluginManifest, Vf as Question, Vg as PromptImagePart, Vi as defaultRepeatGuardNormalize, Vm as openrouter, Vn as llmJudge, Vo as ExtensionOrderedContribution, Vp as ContextSegment, Vr as createInteractionTool, Vs as ExtensionConfigCategory, Vt as EvalArtifacts, Vv as fromOpenAI, W as hasAuthorizationHeader, W_ as ToolStateView, Wa as defineExtension, Wc as agentPluginsSchemaId, Wg as PromptVideoPart, Wi as stableStringify, Wn as relativeArtifactPath, Wo as ExtensionPromptTransform, Wp as ContextSegmentsInput, Wr as edit, Ws as ExtensionConfigItem, Wt as EvalDefinition, Wv as sanitizeHistoryForProvider, X as PERSISTENCE_PREVIEW_BYTES, X_ as SkillDiagnostic, Xc as SkillValidationIssue, Xg as RunHookMap, Xi as AgentOptions, Xn as HeadlessEvent, Xo as ExtensionSkillPolicy, Xp as ContextCategory, Xr as RunSummaryCollectorOptions, Xs as ExtensionConfigSurface, Xt as EvalRunReporterOptions, Xv as ARTIFACT_KINDS, Y as PERSISTED_STUB_PREFIX, Y_ as SkillConfig, Ya as createExtensionBus, Yc as writeSkillsToDisk, Yg as RetryConfig, Yi as AgentHooks, Yn as HeadlessErrorInfo, Yo as ExtensionSessionStateSurface, Yp as ContextBreakdownOptions, Yr as RunSummaryCollector, Ys as ExtensionConfigStringItem, Yt as EvalRunReporter, Yv as ARTIFACTS_PER_SESSION_CAP, Z as PersistInput, Z_ as SkillResource, Za as BUILTIN_ARTIFACT_KINDS, Zc as SkillValidationResult, Zg as SessionContentBlock, Zh as OAuthParams, Zi as AgentToolState, Zn as HeadlessOptions, Zo as ExtensionSource, Zp as ContextCategoryId, Zr as RunSummaryError, Zs as ExtensionConfigValue, Zt as EvalRunSummary, _ as statsByModel, __ as ToolResultImageContent, _a as ExtensionInstallProvenance, _c as SubagentDef, _f as AUTO_COMPACT_MIN_GROWTH_FRACTION, _g as AgentStats, _h as LocalParams, _i as CompactInvalidInputError, _l as installSkillFromSpec, _m as HistoryRepair, _n as TrajectoryStep, _p as LoggingHooksOptions, _r as waitTask, _s as ExtensionHudState, _t as EXTENSION_EDIT_METADATA_KEY, _v as createRemoteStore, _y as normalizeMcpServers, a as basicTools, a_ as StreamHookContext, aa as buildExtensionRegistry, ac as isValidExtensionConfigValue, ag as resolveOAuthApiKey, ah as openaiCompat, ai as PostCompactAttachments, al as resolveSkills, an as EvalWorkspaceFile, ao as refreshArtifact, ap as InferSchemaOutput, as as ExtensionToolRendererRegistration, at as resolveLegacySessionDir, av as SessionRun, ay as sortArtifacts, b as MutationValidationHooksOptions, b_ as ToolResultTextContent, ba as ExtensionInstallSource, bc as createSpawnTool, bf as OUTPUT_RESERVE_TOKENS, bg as CacheTtl, bi as CompactDirection, bl as readSkillProvenance, bm as ProviderCapabilities, bn as buildEvalRunSummary, bo as ExtensionArtifactsSurface, bp as createLogger, bs as ExtensionNotification, bt as SKILL_EDIT_METADATA_KEY, bu as Command, bv as FileMapStoreOptions, c as StartSpan, c_ as ThinkingDecay, ca as filterExtensionRegistry, cc as sanitizeExtensionConfigActionPatch, ci as buildPostCompactAttachments, cl as stripShellInterpolations, cm as CacheDimensionDiff, cn as LlmJudgeOptions, cp as isStandardSchema, cs as ExtensionToolResultTransform, ct as resolveSessionDir, cy as McpExecutionBinding, d as TracingHooksOptions, d_ as ToolHookContext, da as partitionExtensionCatalog, dc as ExtensionSubagentDef, dg as refreshAnthropicToken, di as selectRecentFiles, dl as SkillInstallCandidate, dm as CacheDriftInfo, dn as MetricSpec, do as EMPTY_EXTENSION_REGISTRY, dp as ConsoleSinkOptions, ds as GuiContributions, dt as SHELL_CASCADE_CANCEL_MESSAGE, du as CompletionProvider, e_ as SessionMessage, ea as McpToolWrap, ec as WireExtensionConfigItem, ef as ModelInfo, eg as credentialsFromParams, eh as classifyOpenAICompatError, ei as RunSummaryValidation, el as parseAllowedToolPattern, em as ContextExtensionSection, en as EvalScore, er as HeadlessStatus, es as ExtensionToolCatalogTransform, et as buildPersistedStub, eu as InlineAutocompleteProvider, ev as CreateSessionOptions, ey as SessionArtifactInput, f as createTracingHooks, f_ as ToolOutcome, fa as ExtensionFetchResult, fc as SpawnTaskInput, fg as refreshOpenAICodexToken, fh as openai, fi as CompactEndEvent, fl as SkillInstallError, fm as diffCacheDimensions, fn as MetricSpecMap, fo as ExtensionAgentPluginOptions, fp as LogLevel, fr as runHeadless, fs as LoadedExtension, ft as TOOL_USE_CANCELLED_MESSAGE, fu as CompletionReference, fv as loadSession, g as formatTokenUsage, g_ as ToolResultDocumentRefContent, ga as ExtensionInstallIo, gc as SpawnToolState, gg as AgentRunOptions, gi as compactConversation, gl as SkillInstallSpec, gm as snapshotCacheDimensions, gn as Trajectory, go as ExtensionArtifactQuery, gp as LoggingHookSet, gs as ExtensionHud, gt as renderStaleReadNotice, gv as RemoteStoreOptions, gy as normalizeMcpBlocks, h as flattenTurns, h_ as ToolResultDocumentContent, ha as ExtensionInstallErrorCode, hc as SpawnToolOptions, hh as mistral, hi as CompactStartEvent, hl as SkillInstallResult, hm as installCacheBreakLogger, hn as ReusableExecutionContext, ho as ExtensionArtifactKindRegistration, hp as Logger, hs as ExtensionBannerOptions, ht as collectNewlyStaleReadPaths, i as _default$1, i_ as StepThinkingDecay, ia as buildExtensionPreset, ic as isValidExtensionConfigItem, ig as registerCustomOAuthProvider, ii as utf8ByteLength, il as validateSkillName, im as ContextUsageSplit, in as EvalVariantSummary, is as ExtensionToolRendererEntry, it as resolveLegacyPersistDir, iu as resolveInlineSuggestion, iv as SessionMetaRow, iy as selectArtifactEvictions, j as MetricAttributes, j_ as ReadStateEntry, ja as ENTRY_CANDIDATES, jc as validatePluginManifest, jg as McpServerConfig, ji as CompactScope, jl as ActiveSkill, jn as emitEfficiencyMetrics, jo as ExtensionDefinition, js as ExtensionSessionsSurface, jt as withZidaneExtensionSkill, ju as CommandStep, jv as TOOL_USE_INTERRUPTED_MARKER, k as InstrumentOptions, k_ as ToolMap, ka as updateInstalledExtension, kc as ManifestValidation, kg as GeometricThinkingDecay, ki as buildUpToCompactPrompt, kl as installAllowedToolsGate, kn as defineMetrics, ko as ExtensionCustomRenderer, kr as SkillsReadToolOptions, ks as ExtensionRuntimeSurface, kt as readSkillEditMarker, ku as CommandSpawnResult, kv as RemintResult, l as TracingConventions, l_ as ThinkingLevel, lc as toWireConfigSchema, lg as getOAuthApiKey, lh as OpenAIParams, li as selectFilesFromReadState, lm as CacheDimensionName, ln as MetricDirection, lo as createArtifactDetectHook, lp as resolveSchemaInput, lr as headlessEventToJsonl, ls as ExtensionToolVerdict, lt as resolveTasksDir, lu as CompletionContext, m as TokenUsageLike, m_ as ToolResultContent, ma as ExtensionInstallError, mc as SpawnTool, mg as AgentBehavior, mh as MistralParams, mi as CompactResult, ml as SkillInstallOptions, mm as hashMessages, mn as RegisterEvalTestsOptions, mo as ExtensionArtifactDetection, mp as LogSink, ms as TuiContributions, mt as applyCompactSummaryCutoff, my as expandMcpConfigEnv, n as composePresets, n_ as SpawnHookContext, na as BuildExtensionRegistryOptions, nc as clampExtensionConfigNumber, nf as ProviderDescriptor, ng as isOAuthAccessToken, ni as BYTES_PER_TOKEN, nl as validateResourcePathReal, nm as ContextMcpGroup, nn as EvalScorerContext, ns as ExtensionToolRenderProps, nt as maybePersistToolResult, nu as createPathAutocompleteProvider, nv as Session, ny as mergeArtifact, o as GEN_AI_ATTRIBUTES, o_ as StreamProgressHookContext, oa as composeExtensionPreset, oc as resolveExtensionConfig, og as writeOAuthCredentials, oi as PostCompactRestoreOptions, ol as InterpolateShellCommandsOptions, om as CacheBreakInfo, on as EvalWorkspaceOptions, oo as renderArtifactRow, op as SchemaInput, os as ExtensionToolResultMetadataRegistration, ot as resolveMcpWarningsDir, ov as SessionStore, oy as ConnectMcpServersOptions, p as ModelUsage, p_ as ToolResultAudioContent, pa as ExtensionInstallCandidate, pc as SpawnTaskOutcome, pg as registerOAuthProvider, pi as CompactOptions, pl as SkillInstallErrorCode, pm as fnv1a32, pn as MetricStats, po as ExtensionApiVersion, pp as LogRecord, pr as transcriptToOpenAIMessages, ps as LoadedPluginRecord, pt as TOOL_USE_SKIPPED_MESSAGE, pu as CompletionSubmitContext, py as expandEnvPlaceholders, q as OAuthCallbackResult, q_ as stagedToolState, qa as ExtensionBusChannel, qc as defineSkill, qf as SelectQuestion, qg as ResolveContentRef, qi as Agent, qm as OpenAICompatParams, qo as ExtensionRunTransform, qp as ContextBreakdownContributionContext, qr as RunSummaryBudget, qs as ExtensionConfigNumberItem, qt as EvalMetricError, qv as toWireMessages, r as definePreset, r_ as StaleReadPolicy, ra as ExtensionCatalogPartition, rc as coerceExtensionConfigInput, rg as readOAuthCredentials, rh as mapOAIFinishReason, ri as estimateTokens, rl as validateSkillForWrite, rm as ContextSnapshot, rn as EvalTestRunner, rr as OpenAIChatMessage, rs as ExtensionToolRenderer, rt as migrateSessionArtifactDirs, ru as patchInlineGhost, rv as SessionData, ry as normalizeArtifactInput, s as Span, s_ as StreamUsageSnapshot, sa as disposeExtensionRegistry, sc as resolveExtensionConfigValue, sg as OAuthProviderInterface, si as RecentFile, sl as interpolateShellCommands, sm as CacheBreakLoggerOptions, sn as EvalWorkspaceSnapshot, so as resolveArtifactKind, sp as StandardSchemaLike, ss as ExtensionToolResultPatch, st as resolvePersistDir, sv as createSession, sy as McpConnection, t as Preset, t_ as SessionTurn, ta as createAgent, tc as WireExtensionConfigSchema, tf as ModelOption, tg as extractRuntimeCredentials, ti as createRunSummaryCollector, tl as validateResourcePath, tm as ContextItem, tn as EvalScorer, tr as HeadlessUsage, ts as ExtensionToolPolicy, tt as cleanupPersistedSession, tu as InlineGhost, tv as LoadSessionOptions, ty as matchesArtifactFilter, u as TracingHookSet, ua as mergeContributions, uc as ChildAgent, ug as getOAuthProvider, ui as selectFilesFromSession, um as CacheDimensionSnapshot, un as MetricEmitter, uo as ArtifactResolveOptions, up as zodToJsonSchema, us as ExtensionTuiSurface, ut as INTERRUPT_MESSAGE_FOR_TOOL_USE, uu as CompletionItem, uy as connectMcpServers, v as MutationValidationBatch, v_ as ToolResultImageRefContent, va as ExtensionInstallResult, vc as SubagentOverride, vf as AutoCompactDecision, vg as AutoCompact, vh as local, vi as CompactPromptTooLongError, vl as listSkillCandidates, vn as TrajectoryStepKind, vo as ExtensionArtifactRendererRegistration, vp as RingBufferSink, vr as ValidationResult, vs as ExtensionHudStatus, vt as EditSessionTarget, vv as createMemoryStore, vy as resolveTransportConfig, w as createMutationValidationHooks, w_ as toolOutputBudgetByteLength, wa as installExtensionFromSpec, wc as formatModelLine, wg as CompactHookContext, wh as baseten, wi as TRAILER, wn as computeEvalTagScores, wo as ExtensionBusSurface, wp as jsonSink, ws as createExtensionHud, wt as buildZidaneExtensionSkill, wu as CommandExecution, wv as PairingDrop, wy as ModelCatalog, x as MutationValidationMutation, x_ as ToolResultVideoContent, xa as InstallExtensionFromSpecOptions, xc as isSpawnTool, xf as effectiveContextWindow, xh as CerebrasParams, xi as CompactPromptBuilder, xl as SourcedScanPath, xm as ProviderMeta, xn as buildRegisteredEvals, xo as ExtensionBehaviorTransform, xp as createLoggingHooks, xs as ExtensionNotifyOptions, xt as SkillEditMarker, xu as CommandAgentResult, xv as createFileMapStore, y as MutationValidationFailure, y_ as ToolResultMetadata, ya as ExtensionInstallScope, yc as SubagentRegistry, yf as AutoCompactInput, yg as AutoCompactConfig, yi as BASE_INSTRUCTIONS, yl as parseSkillInstallSpec, ym as Provider, yn as artifactPath, yo as ExtensionArtifactRow, yp as consoleSink, yr as validateToolArgs, ys as ExtensionHudWriter, yt as ExtensionEditMarker, yu as resolveCompletionSubmit, yv as FileMapAdapter, yy as resultToString, z as McpCredentialEntry, z_ as DEFAULT_MAX_VALUE_BYTES, za as DiscoverAndBuildExtensionRegistryOptions, zc as PluginComponentStatus, zf as PlanResponse, zg as PromptAudioPart, zi as GenerateStructuredDataOptions, zm as OpenRouterParams, zn as formatTrajectoryLine, zo as ExtensionModal, zs as ExtensionConfigActionStatus, zt as EvalAgentRunStats, zv as filterUnresolvedToolUses } from "./index-Dw8ruU-j.js";
2
2
  import { a as AgentLengthResumeExhaustedError, c as AgentToolPairingError, d as ClassifiedErrorKind, f as errorMessage, i as AgentContextExceededError, l as CONTEXT_EXCEEDED_MESSAGE_PATTERNS, m as toTypedError, n as AgentAbortedError, o as AgentProviderError, p as matchesContextExceeded, r as AgentBudgetExceededError, s as AgentToolNotAllowedError, t as OperationTimeoutError, u as ClassifiedError } from "./timeout-DEaqslLO.js";
3
3
  import { C as TaskHandle, S as TaskExitInfo, T as resolveDetachedTasksCapability, _ as ListFilesEntry, a as resolveWritableRoots, b as StreamHandle, c as ContextCapabilities, d as ContextType, f as DetachedTasksCapability, g as ListFileMetadata, h as ExecutionHandle, i as parseAllowWriteSetting, l as ContextHardening, m as ExecutionContext, n as IsolationPolicy, o as resolveWritableRootsAsync, p as ExecResult, r as isolationAvailability, s as BackgroundTaskStatus, t as IsolationBackend, u as ContextMount, v as ListFilesOptions, w as TaskStallInfo, x as TaskEntry, y as SpawnConfig } from "./isolation-Kfoof0MM.js";
4
4
  import { t as createProcessContext } from "./index-C37_ppWv.js";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { E as getModelCatalog, b as sanitizeToolSpecs, f as mapOAIFinishReason, j as setModelCatalog, l as classifyOpenAICompatError, m as openaiCompat, n as OpenAICompatHttpError, y as sanitizeToolSchema } from "./openai-compat-Dy56weK8.js";
2
2
  import { c as toolOutputBudgetByteLength, l as toolOutputByteLength, u as toolResultToText } from "./types-CWgENVLY.js";
3
- import { $ as ExtensionInstallError, $n as effectiveContextWindow, A as buildPostCompactAttachments, An as isValidExtensionConfigItem, B as buildFullCompactPrompt, Bn as artifactKindLabel, Bt as multiEdit, Cn as parseExtensionScanPathEnv, Ct as basic_default, D as resolvePersistDir, Dn as defineExtension, E as resolveMcpWarningsDir, Et as waitTask, F as BASE_INSTRUCTIONS, Fn as toWireConfigSchema, Ft as createShellTool, G as sliceForCompaction, Gt as createInteractionTool, H as buildUpToCompactPrompt, Ht as formatModelLine, I as NO_TOOLS_PREAMBLE, In as EXTENSION_BUS_MAX_PAYLOAD_BYTES, J as truncateHeadForPtlRetry, Jn as renderArtifactRow, Jt as edit, K as stripImagesFromTurns, Kt as grep, L as TRAILER, Ln as createExtensionBus, M as selectFilesFromSession, Mn as resolveExtensionConfig, Mt as createSkillsRunScriptTool, N as selectRecentFiles, Nn as resolveExtensionConfigValue, Nt as createSkillsReadTool, O as resolveSessionDir, On as clampExtensionConfigNumber, Ot as createSpawnTool, P as compactConversation, Pn as sanitizeExtensionConfigActionPatch, Q as createExtensionPromptBridge, Qn as OUTPUT_RESERVE_TOKENS, R as buildCompactPrompt, S as migrateSessionArtifactDirs, Sn as isExtensionDefinition, St as basicTools, T as resolveLegacySessionDir, U as ANCHOR_PREVIEW_MAX_CHARS, Ut as matchModelEntries, V as buildTailCompactPrompt, Vt as createModelSearchTool, W as anchorPreviewFor, X as CompactPromptTooLongError, Xn as createArtifactDetectHook, Xt as artifacts_default, Y as CompactInvalidInputError, Yn as resolveArtifactKind, Yt as validateToolArgs, Z as EMPTY_EXTENSION_REGISTRY, Zn as AUTO_COMPACT_MIN_GROWTH_FRACTION, _ as PERSISTED_STUB_PREFIX, _n as registerExtensionHostModules, _t as createArtifactsSurface, a as stagedToolState, ar as getReadState, at as removeInstalledExtension, b as cleanupPersistedSession, bn as discoverExtensions, bt as composePresets, c as INTERRUPT_MESSAGE_FOR_TOOL_USE, cr as hydrateReadStateFromSessionAsync, ct as discoverAndBuildExtensionRegistry, d as TOOL_USE_SKIPPED_MESSAGE, dt as composeExtensionPreset, er as shouldAutoCompact, et as fetchExtensionSource, f as applyCompactSummaryCutoff, ft as disposeExtensionRegistry, gt as partitionExtensionCatalog, ht as mergeContributions, i as isToolStateOps, ir as stableStringify, it as readExtensionInstallProvenance, j as selectFilesFromReadState, jn as isValidExtensionConfigValue, jt as createSkillsUseTool, k as resolveTasksDir, kn as coerceExtensionConfigInput, kt as isSpawnTool, l as SHELL_CASCADE_CANCEL_MESSAGE, lr as readStateKey, lt as buildExtensionPreset, m as renderStaleReadNotice, n as DEFAULT_MAX_VALUE_BYTES, nr as defaultRepeatGuardTracked, nt as listExtensionCandidates, o as normalizeProviders, or as hashContent, ot as updateInstalledExtension, p as collectNewlyStaleReadPaths, pt as filterExtensionRegistry, q as summaryToTurn, qn as refreshArtifact, qt as glob, r as createToolStateController, rr as normalizeShellCommand, rt as parseExtensionInstallSource, s as resolveModelTargets, sr as hydrateReadStateFromSession, st as createExtensionHud, t as createAgent, tr as defaultRepeatGuardNormalize, tt as installExtensionFromSpec, u as TOOL_USE_CANCELLED_MESSAGE, ur as resolveReadStateMap, ut as buildExtensionRegistry, v as PERSISTENCE_PREVIEW_BYTES, vn as ENTRY_CANDIDATES, vt as createExtensionHostRuntimeBridge, w as resolveLegacyPersistDir, wn as scanExtensionDirectories, x as maybePersistToolResult, xn as inlineLoadedExtension, xt as definePreset, y as buildPersistedStub, yn as defaultExtensionScanPaths, yt as createWorkspaceSurface, z as buildFromCompactPrompt, zn as BUILTIN_ARTIFACT_KINDS } from "./agent-_xxElOgH.js";
3
+ import { $ as ExtensionInstallError, $n as defaultRepeatGuardTracked, A as buildPostCompactAttachments, An as resolveExtensionConfigValue, B as buildFullCompactPrompt, Bt as multiEdit, Ct as basic_default, D as resolvePersistDir, Dn as isValidExtensionConfigItem, E as resolveMcpWarningsDir, En as coerceExtensionConfigInput, Et as waitTask, F as BASE_INSTRUCTIONS, Ft as createShellTool, G as sliceForCompaction, Gn as renderArtifactRow, Gt as createInteractionTool, H as buildUpToCompactPrompt, Ht as formatModelLine, I as NO_TOOLS_PREAMBLE, In as BUILTIN_ARTIFACT_KINDS, J as truncateHeadForPtlRetry, Jn as AUTO_COMPACT_MIN_GROWTH_FRACTION, Jt as edit, K as stripImagesFromTurns, Kn as resolveArtifactKind, Kt as grep, L as TRAILER, Ln as artifactKindLabel, M as selectFilesFromSession, Mn as toWireConfigSchema, Mt as createSkillsRunScriptTool, N as selectRecentFiles, Nn as EXTENSION_BUS_MAX_PAYLOAD_BYTES, Nt as createSkillsReadTool, O as resolveSessionDir, On as isValidExtensionConfigValue, Ot as createSpawnTool, P as compactConversation, Pn as createExtensionBus, Q as createExtensionPromptBridge, Qn as defaultRepeatGuardNormalize, R as buildCompactPrompt, S as migrateSessionArtifactDirs, St as basicTools, T as resolveLegacySessionDir, Tn as clampExtensionConfigNumber, U as ANCHOR_PREVIEW_MAX_CHARS, Ut as matchModelEntries, V as buildTailCompactPrompt, Vt as createModelSearchTool, W as anchorPreviewFor, Wn as refreshArtifact, X as CompactPromptTooLongError, Xn as effectiveContextWindow, Xt as artifacts_default, Y as CompactInvalidInputError, Yn as OUTPUT_RESERVE_TOKENS, Yt as validateToolArgs, Z as EMPTY_EXTENSION_REGISTRY, Zn as shouldAutoCompact, _ as PERSISTED_STUB_PREFIX, _n as discoverExtensions, _t as createArtifactsSurface, a as stagedToolState, ar as hydrateReadStateFromSessionAsync, at as removeInstalledExtension, b as cleanupPersistedSession, bn as parseExtensionScanPathEnv, bt as composePresets, c as INTERRUPT_MESSAGE_FOR_TOOL_USE, ct as discoverAndBuildExtensionRegistry, d as TOOL_USE_SKIPPED_MESSAGE, dt as composeExtensionPreset, er as normalizeShellCommand, et as fetchExtensionSource, f as applyCompactSummaryCutoff, ft as disposeExtensionRegistry, gn as defaultExtensionScanPaths, gt as partitionExtensionCatalog, hn as ENTRY_CANDIDATES, ht as mergeContributions, i as isToolStateOps, ir as hydrateReadStateFromSession, it as readExtensionInstallProvenance, j as selectFilesFromReadState, jn as sanitizeExtensionConfigActionPatch, jt as createSkillsUseTool, k as resolveTasksDir, kn as resolveExtensionConfig, kt as isSpawnTool, l as SHELL_CASCADE_CANCEL_MESSAGE, lt as buildExtensionPreset, m as renderStaleReadNotice, mn as registerExtensionHostModules, n as DEFAULT_MAX_VALUE_BYTES, nr as getReadState, nt as listExtensionCandidates, o as normalizeProviders, or as readStateKey, ot as updateInstalledExtension, p as collectNewlyStaleReadPaths, pt as filterExtensionRegistry, q as summaryToTurn, qn as createArtifactDetectHook, qt as glob, r as createToolStateController, rr as hashContent, rt as parseExtensionInstallSource, s as resolveModelTargets, sr as resolveReadStateMap, st as createExtensionHud, t as createAgent, tr as stableStringify, tt as installExtensionFromSpec, u as TOOL_USE_CANCELLED_MESSAGE, ut as buildExtensionRegistry, v as PERSISTENCE_PREVIEW_BYTES, vn as inlineLoadedExtension, vt as createExtensionHostRuntimeBridge, w as resolveLegacyPersistDir, wn as defineExtension, x as maybePersistToolResult, xn as scanExtensionDirectories, xt as definePreset, y as buildPersistedStub, yn as isExtensionDefinition, yt as createWorkspaceSurface, z as buildFromCompactPrompt } from "./agent-BlGt76qk.js";
4
4
  import { A as zodToJsonSchema, F as parseCommandInvocation, I as localReliabilityBehavior, M as commandBlocksToContent, N as commandSteps, O as isStandardSchema, P as executeCommand, S as resolveInlineSuggestion, _ as resolveExtensionDocsDir, a as loginMcpServer, b as createPathAutocompleteProvider, c as SKILL_EDIT_METADATA_KEY, d as buildZidaneExtensionSkill, f as buildZidaneSkillEditSkill, g as readSkillEditMarker, h as extensionScaffold, i as createMetricsHooks, j as commandBlockToEvent, k as resolveSchemaInput, l as ZIDANE_EXTENSION_SKILL_NAME, m as extensionDirForCwd, n as createTracingHooks, o as startOAuthCallback, p as editSessionMetadata, r as createMutationValidationHooks, s as EXTENSION_EDIT_METADATA_KEY, t as GEN_AI_ATTRIBUTES, u as ZIDANE_SKILL_EDIT_SKILL_NAME, v as withZidaneExtensionSkill, w as generateStructuredData, x as patchInlineGhost, y as withZidaneSkillEditSkill } from "./src-CkNQKFKr.js";
5
5
  import { n as estimateTokens, r as utf8ByteLength, t as BYTES_PER_TOKEN } from "./utils-ngQzYzZD.js";
6
6
  import { l as resolveWritableRoots, o as isolationAvailability, r as createProcessContext, s as parseAllowWriteSetting, t as resolveDetachedTasksCapability, u as resolveWritableRootsAsync } from "./contexts-CRE9pw07.js";
@@ -23,12 +23,12 @@ import { s as resolveCompletionSubmit } from "./completion-core-BRo86R_L.js";
23
23
  import { t as createRunSummaryCollector } from "./run-summary-BU_NgwUT.js";
24
24
  import { headlessEventToJsonl, runHeadless, transcriptToOpenAIMessages } from "./headless.js";
25
25
  import { EFFICIENCY_METRICS, EvalMetricError, artifactPath, buildEvalRunSummary, buildRegisteredEvals, buildTrajectory, clearRegisteredEvals, computeEvalTagScores, createEvalAgent, createEvalRunReporter, createReusableExecutionContext, defineEval, defineMetrics, efficiencyMetricValues, emitEfficiencyMetrics, fileContains, fileContentQuality, fileExists, fileExistsOneOf, finalizeEvalMetrics, formatEvalCaseSummary, formatEvalRunSummary, formatTrajectoryLine, functionalityMetric, llmJudge, normalizeMetric, registerEvalTests, relativeArtifactPath, runEvalCase, statusCompleted } from "./eval.js";
26
- import { i as applyAnthropicCacheBreakpoints, r as anthropic } from "./anthropic-DPPs3wjJ.js";
27
- import { a as readOAuthCredentials, d as getOAuthApiKey, f as getOAuthProvider, h as registerOAuthProvider, i as isOAuthAccessToken, l as writeOAuthCredentials, m as refreshOpenAICodexToken, n as credentialsFromParams, o as registerCustomOAuthProvider, p as refreshAnthropicToken, r as extractRuntimeCredentials, s as resolveOAuthApiKey, t as credentialsFilePath } from "./oauth-B6F43fti.js";
26
+ import { i as applyAnthropicCacheBreakpoints, r as anthropic } from "./anthropic-BQdAnY-w.js";
27
+ import { a as readOAuthCredentials, d as getOAuthApiKey, f as getOAuthProvider, h as registerOAuthProvider, i as isOAuthAccessToken, l as writeOAuthCredentials, m as refreshOpenAICodexToken, n as credentialsFromParams, o as registerCustomOAuthProvider, p as refreshAnthropicToken, r as extractRuntimeCredentials, s as resolveOAuthApiKey, t as credentialsFilePath } from "./oauth-DxHO17JE.js";
28
28
  import { arcee } from "./providers/arcee.js";
29
29
  import { baseten } from "./providers/baseten.js";
30
30
  import { cerebras } from "./providers/cerebras.js";
31
- import { r as mistral } from "./providers-DP9kwXYo.js";
31
+ import { r as mistral } from "./providers-BVhnFyiY.js";
32
32
  import { local } from "./providers/local.js";
33
33
  import { openai } from "./providers/openai.js";
34
34
  import { openrouter } from "./providers/openrouter.js";
@@ -1,5 +1,5 @@
1
1
  import { R as findGitRoot } from "./skills-BC3dodWp.js";
2
- import { d as defaultSocketPath, o as connectOrSpawnDaemon } from "./server-CTUpOdh3.js";
2
+ import { l as connectOrSpawnDaemon, m as defaultSocketPath } from "./shell-path-3tZ2lyQ2.js";
3
3
  import process from "node:process";
4
4
  import { createInterface } from "node:readline";
5
5
  //#region src/ipc/attach.ts
@@ -328,4 +328,4 @@ function clipLines(text, max) {
328
328
  //#endregion
329
329
  export { runAttach as t };
330
330
 
331
- //# sourceMappingURL=ipc-ChQeueur.js.map
331
+ //# sourceMappingURL=ipc-CNrpBs9P.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipc-ChQeueur.js","names":[],"sources":["../src/ipc/attach.ts"],"sourcesContent":["/**\n * `zidane attach` — a thin terminal client over the daemon protocol.\n *\n * Deliberately minimal (readline, no TUI framework): it exists to prove and\n * exercise the multi-window contract — several attach clients plus the GUI\n * can watch the SAME session converge live, answer each other's approvals,\n * and steer the same run. The full OpenTUI front-end migrates onto\n * `connectIpcClient` separately.\n *\n * Everything here is presentation: all state lives in the daemon.\n */\nimport type { InteractionRequest, StreamEvent } from '../chat/index'\nimport type { AnswerValue } from '../chat/interactions'\nimport type { IpcClient } from './client'\nimport type { EnsureDaemonOptions } from './daemon/lifecycle'\nimport type { HostSignal, SessionRow, WireApprovalRequest } from './protocol'\nimport process from 'node:process'\nimport { createInterface } from 'node:readline'\nimport { findGitRoot } from '../chat/index'\nimport { connectOrSpawnDaemon } from './client'\nimport { defaultSocketPath } from './daemon/lifecycle'\n\nconst DIM = '\\u001B[2m'\nconst BOLD = '\\u001B[1m'\nconst CYAN = '\\u001B[36m'\nconst YELLOW = '\\u001B[33m'\nconst RED = '\\u001B[31m'\nconst RESET = '\\u001B[0m'\n\nexport interface AttachOptions {\n socketPath?: string\n /** Attach to this session id (prefix match against the list). */\n sessionId?: string\n /** Create a fresh session instead of picking. */\n createNew?: boolean\n cwd?: string\n appVersion?: string\n /** Spawn-on-demand command when no daemon is listening. */\n spawnCommand?: string[]\n /** Injectable streams for tests. */\n stdin?: NodeJS.ReadableStream\n stdout?: NodeJS.WritableStream\n}\n\ninterface PendingAsk {\n resolve: (line: string) => void\n}\n\nexport async function runAttach(options: AttachOptions = {}): Promise<void> {\n const out = options.stdout ?? process.stdout\n const write = (text: string): void => void out.write(text)\n const cwd = options.cwd ?? process.cwd()\n\n const ensureOptions: EnsureDaemonOptions = {\n socketPath: options.socketPath ?? defaultSocketPath(),\n ...(options.spawnCommand ? { spawnCommand: options.spawnCommand } : {}),\n }\n /*\n * Library-safe failure: `runAttach` is exported from `zidane/ipc`, so a\n * dropped daemon REJECTS (the CLI wrapper owns the exit code) instead\n * of killing an embedder's process from inside the library.\n */\n let failRun: ((error: Error) => void) | null = null\n\n // Drain-and-respawn on version mismatch — a stale daemon self-heals\n // instead of hard-failing the window.\n const client = await connectOrSpawnDaemon({\n ...ensureOptions,\n ...(options.appVersion ? { appVersion: options.appVersion } : {}),\n onClose: () => {\n write(`\\n${RED}daemon connection lost${RESET}\\n`)\n failRun?.(new Error('daemon connection lost'))\n },\n })\n\n write(`${DIM}connected to zidane daemon (pid ${client.hello.pid}, v${client.hello.appVersion})${RESET}\\n`)\n\n const rl = createInterface({\n input: (options.stdin ?? process.stdin) as NodeJS.ReadableStream,\n output: out as NodeJS.WritableStream,\n prompt: `${BOLD}> ${RESET}`,\n })\n\n /*\n * Line routing: normally a line is a prompt for the model, but while an\n * approval / interaction / picker question is pending, the next line\n * answers it instead. One slot suffices — questions are asked serially.\n * Registered BEFORE the session picker so `ask` works during picking.\n */\n let pendingAsk: PendingAsk | null = null\n let submitLine: ((line: string) => void) | null = null\n /** Prompt lines typed before the input loop is armed (mid-boot) queue up. */\n const earlyLines: string[] = []\n\n rl.on('line', (line) => {\n if (pendingAsk) {\n const slot = pendingAsk\n pendingAsk = null\n slot.resolve(line)\n return\n }\n if (submitLine)\n submitLine(line)\n else\n earlyLines.push(line)\n })\n\n const ask = (prompt: string): Promise<string> => {\n write(prompt)\n return new Promise<string>((resolve) => {\n pendingAsk = { resolve }\n })\n }\n\n /*\n * HITL prompts share the single `pendingAsk` slot, so approvals /\n * interactions MUST be asked one at a time — the startup rehydrate loops\n * and live signals can otherwise fire several handlers at once, each\n * overwriting the previous resolver and leaving those prompts hung\n * forever (unanswerable from this window). Chain every handler on the\n * previous one so they run strictly sequentially.\n */\n let hitlQueue: Promise<void> = Promise.resolve()\n\n /*\n * De-dup + resolution tracking for HITL prompts. A request can arrive\n * both via `*:listPending` backfill AND a live `*:request` signal, and\n * another window can answer it while it's still queued here. We track\n * every id we've queued (so we never prompt twice) and every id the host\n * reported resolved (so a queued-but-not-yet-prompted request is skipped\n * instead of blocking the queue on a no-op stdin answer).\n */\n const queuedHitlIds = new Set<string>()\n const resolvedHitlIds = new Set<string>()\n\n const enqueueHitl = (requestId: string, task: () => Promise<void>): void => {\n if (queuedHitlIds.has(requestId) || resolvedHitlIds.has(requestId))\n return\n queuedHitlIds.add(requestId)\n hitlQueue = hitlQueue.then(async () => {\n // Another window may have answered it while it waited in the queue.\n if (resolvedHitlIds.has(requestId))\n return\n await task()\n }, () => undefined)\n }\n\n const session = await pickSession(client, { ask, write, cwd, ...options })\n if (!session) {\n rl.close()\n client.close()\n return\n }\n\n write(`${BOLD}session${RESET} ${session.id} ${DIM}(${session.title})${RESET}\\n`)\n write(`${DIM}tools run in ${session.cwd} — /interrupt to stop a run, /exit to detach (run keeps going)${RESET}\\n\\n`)\n\n /*\n * Subscribe BEFORE replaying the transcript / snapshotting run state so\n * stream events emitted in that window aren't permanently lost from this\n * client's view. Signals that arrive during replay buffer here and drain\n * once the replay completes.\n */\n const bufferedSignals: HostSignal[] = []\n let signalSink: (signal: HostSignal) => void = s => bufferedSignals.push(s)\n const unsubscribe = client.onSignal(s => signalSink(s))\n\n await replayTranscript(client, session.id, write)\n\n let running = await client.request('chat.isRunning', { sessionId: session.id })\n if (running)\n write(`${DIM}a run is in flight — attaching to the live stream${RESET}\\n`)\n\n /* ----------------------------------------------------------------------\n * Signal rendering\n * -------------------------------------------------------------------- */\n\n let lastEventKind: StreamEvent['kind'] | null = null\n\n /**\n * The host broadcasts every window's user message as a `user-prompt`\n * event — render it so this window sees prompts posted elsewhere. Our\n * OWN just-sent messages are skipped once each (readline already echoed\n * them). A multiset (text → count) handles rapid identical sends and\n * never suppresses another window's matching message beyond our own\n * outstanding count.\n */\n const ownEchoes = new Map<string, number>()\n\n const renderEvent = (event: StreamEvent): void => {\n switch (event.kind) {\n case 'user-prompt': {\n const outstanding = ownEchoes.get(event.text) ?? 0\n if (outstanding > 0) {\n if (outstanding === 1)\n ownEchoes.delete(event.text)\n else\n ownEchoes.set(event.text, outstanding - 1)\n break\n }\n write(`\\n${BOLD}> ${event.text}${RESET}\\n`)\n break\n }\n case 'markdown':\n if (lastEventKind !== 'markdown' && lastEventKind !== null)\n write('\\n')\n write(event.text)\n break\n case 'thinking':\n // Streamed reasoning stays out of the transcript — show a pulse once.\n if (lastEventKind !== 'thinking')\n write(`${DIM}(thinking…)${RESET}\\n`)\n break\n case 'tool':\n write(`\\n${CYAN}▸ ${event.text}${RESET}\\n`)\n break\n case 'tool-result':\n write(`${DIM}${clipLines(event.text, 3)}${RESET}\\n`)\n break\n case 'task-notification':\n case 'info':\n write(`${DIM}${event.text}${RESET}\\n`)\n break\n case 'error':\n write(`${RED}${event.text}${RESET}\\n`)\n break\n default:\n break\n }\n lastEventKind = event.kind\n }\n\n const handleApproval = async (request: WireApprovalRequest): Promise<void> => {\n write(`\\n${YELLOW}approval needed${RESET} — ${BOLD}${request.tool}${RESET}\\n`)\n write(`${DIM}${clipLines(JSON.stringify(request.input, null, 2), 12)}${RESET}\\n`)\n const answer = await ask(`${YELLOW}[y]es once / [s]ession / [a]lways (safelist) / [n]o: ${RESET}`)\n const decision\n = answer.trim().toLowerCase() === 'y'\n ? 'accept-once'\n : answer.trim().toLowerCase() === 's'\n ? 'accept-session'\n : answer.trim().toLowerCase() === 'a'\n ? 'accept-safelist'\n : 'deny'\n await client.request('approvals.resolve', { requestId: request.id, decision })\n }\n\n const handleInteraction = async (request: InteractionRequest): Promise<void> => {\n if (request.kind === 'plan') {\n write(`\\n${YELLOW}plan:${RESET} ${BOLD}${request.payload.title}${RESET}\\n${request.payload.plan}\\n`)\n const answer = await ask(`${YELLOW}[a]pprove / [r]eject / re[v]ise (with comment): ${RESET}`)\n const c = answer.trim().toLowerCase()\n if (c === 'v') {\n const comment = await ask('comment: ')\n await client.request('interactions.respond', {\n requestId: request.id,\n response: { kind: 'plan', decision: 'revise', comment },\n })\n return\n }\n await client.request('interactions.respond', {\n requestId: request.id,\n response: { kind: 'plan', decision: c === 'a' ? 'approve' : 'reject' },\n })\n return\n }\n\n if (request.payload.intro)\n write(`\\n${request.payload.intro}\\n`)\n const answers: Record<string, AnswerValue> = {}\n for (const question of request.payload.questions) {\n if (question.type === 'confirm') {\n const answer = await ask(`${YELLOW}${question.prompt}${RESET} [y/n]: `)\n answers[question.id] = answer.trim().toLowerCase().startsWith('y')\n continue\n }\n if (question.type === 'select') {\n write(`${YELLOW}${question.prompt}${RESET}\\n`)\n question.choices.forEach((choice, i) => write(` ${i + 1}. ${choice.label}\\n`))\n const answer = await ask(question.multi ? 'pick (comma-separated numbers): ' : 'pick a number: ')\n const picks = answer\n .split(',')\n .map(part => question.choices[Number.parseInt(part.trim(), 10) - 1]?.id)\n .filter((id): id is string => typeof id === 'string')\n answers[question.id] = question.multi ? picks : (picks[0] ?? '')\n continue\n }\n answers[question.id] = await ask(`${YELLOW}${question.prompt}${RESET}: `)\n }\n await client.request('interactions.respond', {\n requestId: request.id,\n response: { kind: 'question', answers },\n })\n }\n\n const onSignal = (signal: HostSignal): void => {\n // Converge on resolution: mark the id answered so a queued-but-not-yet-\n // prompted request is skipped instead of blocking on stdin, and record\n // it so late backfill can't re-raise it.\n if (signal.kind === 'approval:resolved' || signal.kind === 'interaction:resolved') {\n resolvedHitlIds.add(signal.requestId)\n return\n }\n\n if (signal.kind === 'approval:request') {\n // Only surface approvals for the attached session — other windows'\n // sessions raise their own prompts in their own windows.\n if (signal.request.sessionId === session.id)\n enqueueHitl(signal.request.id, () => handleApproval(signal.request))\n return\n }\n\n if ('sessionId' in signal && signal.sessionId !== session.id)\n return\n\n switch (signal.kind) {\n case 'run:start':\n running = true\n lastEventKind = null\n break\n case 'run:end':\n running = false\n write(signal.ok ? '\\n' : `\\n${RED}run failed: ${signal.error ?? 'unknown error'}${RESET}\\n`)\n if (!pendingAsk)\n rl.prompt()\n break\n case 'event':\n renderEvent(signal.event)\n break\n case 'compacting:start':\n write(`${DIM}compacting…${RESET}\\n`)\n break\n case 'interaction:request':\n enqueueHitl(signal.request.id, () => handleInteraction(signal.request))\n break\n default:\n break\n }\n }\n\n // Surface HITL state left pending before this window attached. Done\n // BEFORE draining buffered signals so a live `*:request` that arrived\n // during backfill de-dups against the same id (via `queuedHitlIds`).\n for (const request of await client.request('approvals.listPending', {})) {\n if (request.sessionId === session.id)\n enqueueHitl(request.id, () => handleApproval(request))\n }\n for (const pending of await client.request('interactions.list', { sessionId: session.id })) {\n if (pending.live)\n enqueueHitl(pending.request.id, () => handleInteraction(pending.request))\n }\n\n // Drain signals buffered during replay/backfill, then hand live signals\n // straight to `onSignal`.\n signalSink = onSignal\n for (const buffered of bufferedSignals.splice(0))\n onSignal(buffered)\n\n /* ----------------------------------------------------------------------\n * Input loop\n * -------------------------------------------------------------------- */\n\n const detach = (): void => {\n unsubscribe()\n rl.close()\n client.close()\n write(`\\n${DIM}detached — the session keeps running in the daemon${RESET}\\n`)\n }\n\n rl.on('SIGINT', () => {\n if (running) {\n // Fire-and-forget: a dead daemon rejects the request, and an\n // uncaught rejection would crash the attach client.\n client.request('chat.interrupt', { sessionId: session.id }).catch(() => undefined)\n write(`\\n${DIM}interrupt sent${RESET}\\n`)\n return\n }\n detach()\n })\n\n await new Promise<void>((resolve, reject) => {\n failRun = (error) => {\n unsubscribe()\n rl.close()\n client.close()\n reject(error)\n }\n rl.on('close', () => resolve())\n\n const handleLine = (line: string): void => {\n const text = line.trim()\n if (text.length === 0) {\n rl.prompt()\n return\n }\n if (text === '/exit' || text === '/quit') {\n detach()\n resolve()\n return\n }\n if (text === '/interrupt') {\n client.request('chat.interrupt', { sessionId: session.id }).catch(() => undefined)\n return\n }\n\n ownEchoes.set(text, (ownEchoes.get(text) ?? 0) + 1)\n void client.request('chat.pushQueued', { sessionId: session.id, message: text }).then(({ delivered }) => {\n if (delivered === 'steer')\n write(`${DIM}(steered into the live run)${RESET}\\n`)\n }).catch((err) => {\n // Send failed: the host never broadcast the prompt, so release the\n // pending echo suppression to avoid eating a later identical one.\n const outstanding = ownEchoes.get(text) ?? 0\n if (outstanding <= 1)\n ownEchoes.delete(text)\n else\n ownEchoes.set(text, outstanding - 1)\n write(`${RED}${err instanceof Error ? err.message : String(err)}${RESET}\\n`)\n rl.prompt()\n })\n }\n\n submitLine = handleLine\n while (earlyLines.length > 0)\n handleLine(earlyLines.shift()!)\n\n if (!running)\n rl.prompt()\n })\n}\n\n/* --------------------------------------------------------------------------\n * Session picking\n * ------------------------------------------------------------------------ */\n\nasync function pickSession(\n client: IpcClient,\n ctx: {\n ask: (prompt: string) => Promise<string>\n write: (text: string) => void\n cwd: string\n sessionId?: string\n createNew?: boolean\n },\n): Promise<SessionRow | null> {\n const projectRoot = findGitRoot(ctx.cwd) ?? ctx.cwd\n\n if (ctx.createNew)\n return client.request('sessions.create', { cwd: ctx.cwd })\n\n const rows = await client.request('sessions.list', { projectRoot, archive: 'active' })\n\n if (ctx.sessionId) {\n const match = rows.find(r => r.id === ctx.sessionId || r.id.startsWith(ctx.sessionId!))\n if (match)\n return match\n // Not in this project — try the full list before giving up.\n const all = await client.request('sessions.list', {})\n const global = all.find(r => r.id === ctx.sessionId || r.id.startsWith(ctx.sessionId!))\n if (global)\n return global\n ctx.write(`${RED}no session matching \"${ctx.sessionId}\"${RESET}\\n`)\n return null\n }\n\n if (rows.length === 0)\n return client.request('sessions.create', { cwd: ctx.cwd })\n\n ctx.write(`${BOLD}sessions in ${projectRoot}:${RESET}\\n`)\n rows.slice(0, 15).forEach((row, i) => {\n const status = row.status === 'running' ? ` ${YELLOW}● running${RESET}` : ''\n ctx.write(` ${i + 1}. ${row.title} ${DIM}(${row.id.slice(0, 8)})${RESET}${status}\\n`)\n })\n\n const answer = await ctx.ask('pick a number, or [n]ew: ')\n if (answer.trim().toLowerCase() === 'n')\n return client.request('sessions.create', { cwd: ctx.cwd })\n\n const picked = rows[Number.parseInt(answer.trim(), 10) - 1]\n if (!picked) {\n ctx.write(`${RED}invalid pick${RESET}\\n`)\n return null\n }\n return picked\n}\n\n/* --------------------------------------------------------------------------\n * Transcript replay\n * ------------------------------------------------------------------------ */\n\nconst REPLAY_EVENT_CAP = 60\n\nasync function replayTranscript(\n client: IpcClient,\n sessionId: string,\n write: (text: string) => void,\n): Promise<void> {\n const events = await client.request('sessions.loadEvents', { sessionId })\n if (events.length === 0)\n return\n\n const tail = events.slice(-REPLAY_EVENT_CAP)\n if (events.length > tail.length)\n write(`${DIM}… ${events.length - tail.length} earlier events omitted${RESET}\\n`)\n\n for (const event of tail) {\n if (event.kind === 'user-prompt')\n write(`\\n${BOLD}> ${event.text}${RESET}\\n`)\n else if (event.kind === 'markdown')\n write(`${event.text}\\n`)\n else if (event.kind === 'tool')\n write(`${CYAN}▸ ${event.text}${RESET}\\n`)\n }\n write('\\n')\n}\n\nfunction clipLines(text: string, max: number): string {\n const lines = text.split('\\n')\n if (lines.length <= max)\n return text\n return `${lines.slice(0, max).join('\\n')}\\n${DIM}… ${lines.length - max} more lines${RESET}`\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ipc-CNrpBs9P.js","names":[],"sources":["../src/ipc/attach.ts"],"sourcesContent":["/**\n * `zidane attach` — a thin terminal client over the daemon protocol.\n *\n * Deliberately minimal (readline, no TUI framework): it exists to prove and\n * exercise the multi-window contract — several attach clients plus the GUI\n * can watch the SAME session converge live, answer each other's approvals,\n * and steer the same run. The full OpenTUI front-end migrates onto\n * `connectIpcClient` separately.\n *\n * Everything here is presentation: all state lives in the daemon.\n */\nimport type { InteractionRequest, StreamEvent } from '../chat/index'\nimport type { AnswerValue } from '../chat/interactions'\nimport type { IpcClient } from './client'\nimport type { EnsureDaemonOptions } from './daemon/lifecycle'\nimport type { HostSignal, SessionRow, WireApprovalRequest } from './protocol'\nimport process from 'node:process'\nimport { createInterface } from 'node:readline'\nimport { findGitRoot } from '../chat/index'\nimport { connectOrSpawnDaemon } from './client'\nimport { defaultSocketPath } from './daemon/lifecycle'\n\nconst DIM = '\\u001B[2m'\nconst BOLD = '\\u001B[1m'\nconst CYAN = '\\u001B[36m'\nconst YELLOW = '\\u001B[33m'\nconst RED = '\\u001B[31m'\nconst RESET = '\\u001B[0m'\n\nexport interface AttachOptions {\n socketPath?: string\n /** Attach to this session id (prefix match against the list). */\n sessionId?: string\n /** Create a fresh session instead of picking. */\n createNew?: boolean\n cwd?: string\n appVersion?: string\n /** Spawn-on-demand command when no daemon is listening. */\n spawnCommand?: string[]\n /** Injectable streams for tests. */\n stdin?: NodeJS.ReadableStream\n stdout?: NodeJS.WritableStream\n}\n\ninterface PendingAsk {\n resolve: (line: string) => void\n}\n\nexport async function runAttach(options: AttachOptions = {}): Promise<void> {\n const out = options.stdout ?? process.stdout\n const write = (text: string): void => void out.write(text)\n const cwd = options.cwd ?? process.cwd()\n\n const ensureOptions: EnsureDaemonOptions = {\n socketPath: options.socketPath ?? defaultSocketPath(),\n ...(options.spawnCommand ? { spawnCommand: options.spawnCommand } : {}),\n }\n /*\n * Library-safe failure: `runAttach` is exported from `zidane/ipc`, so a\n * dropped daemon REJECTS (the CLI wrapper owns the exit code) instead\n * of killing an embedder's process from inside the library.\n */\n let failRun: ((error: Error) => void) | null = null\n\n // Drain-and-respawn on version mismatch — a stale daemon self-heals\n // instead of hard-failing the window.\n const client = await connectOrSpawnDaemon({\n ...ensureOptions,\n ...(options.appVersion ? { appVersion: options.appVersion } : {}),\n onClose: () => {\n write(`\\n${RED}daemon connection lost${RESET}\\n`)\n failRun?.(new Error('daemon connection lost'))\n },\n })\n\n write(`${DIM}connected to zidane daemon (pid ${client.hello.pid}, v${client.hello.appVersion})${RESET}\\n`)\n\n const rl = createInterface({\n input: (options.stdin ?? process.stdin) as NodeJS.ReadableStream,\n output: out as NodeJS.WritableStream,\n prompt: `${BOLD}> ${RESET}`,\n })\n\n /*\n * Line routing: normally a line is a prompt for the model, but while an\n * approval / interaction / picker question is pending, the next line\n * answers it instead. One slot suffices — questions are asked serially.\n * Registered BEFORE the session picker so `ask` works during picking.\n */\n let pendingAsk: PendingAsk | null = null\n let submitLine: ((line: string) => void) | null = null\n /** Prompt lines typed before the input loop is armed (mid-boot) queue up. */\n const earlyLines: string[] = []\n\n rl.on('line', (line) => {\n if (pendingAsk) {\n const slot = pendingAsk\n pendingAsk = null\n slot.resolve(line)\n return\n }\n if (submitLine)\n submitLine(line)\n else\n earlyLines.push(line)\n })\n\n const ask = (prompt: string): Promise<string> => {\n write(prompt)\n return new Promise<string>((resolve) => {\n pendingAsk = { resolve }\n })\n }\n\n /*\n * HITL prompts share the single `pendingAsk` slot, so approvals /\n * interactions MUST be asked one at a time — the startup rehydrate loops\n * and live signals can otherwise fire several handlers at once, each\n * overwriting the previous resolver and leaving those prompts hung\n * forever (unanswerable from this window). Chain every handler on the\n * previous one so they run strictly sequentially.\n */\n let hitlQueue: Promise<void> = Promise.resolve()\n\n /*\n * De-dup + resolution tracking for HITL prompts. A request can arrive\n * both via `*:listPending` backfill AND a live `*:request` signal, and\n * another window can answer it while it's still queued here. We track\n * every id we've queued (so we never prompt twice) and every id the host\n * reported resolved (so a queued-but-not-yet-prompted request is skipped\n * instead of blocking the queue on a no-op stdin answer).\n */\n const queuedHitlIds = new Set<string>()\n const resolvedHitlIds = new Set<string>()\n\n const enqueueHitl = (requestId: string, task: () => Promise<void>): void => {\n if (queuedHitlIds.has(requestId) || resolvedHitlIds.has(requestId))\n return\n queuedHitlIds.add(requestId)\n hitlQueue = hitlQueue.then(async () => {\n // Another window may have answered it while it waited in the queue.\n if (resolvedHitlIds.has(requestId))\n return\n await task()\n }, () => undefined)\n }\n\n const session = await pickSession(client, { ask, write, cwd, ...options })\n if (!session) {\n rl.close()\n client.close()\n return\n }\n\n write(`${BOLD}session${RESET} ${session.id} ${DIM}(${session.title})${RESET}\\n`)\n write(`${DIM}tools run in ${session.cwd} — /interrupt to stop a run, /exit to detach (run keeps going)${RESET}\\n\\n`)\n\n /*\n * Subscribe BEFORE replaying the transcript / snapshotting run state so\n * stream events emitted in that window aren't permanently lost from this\n * client's view. Signals that arrive during replay buffer here and drain\n * once the replay completes.\n */\n const bufferedSignals: HostSignal[] = []\n let signalSink: (signal: HostSignal) => void = s => bufferedSignals.push(s)\n const unsubscribe = client.onSignal(s => signalSink(s))\n\n await replayTranscript(client, session.id, write)\n\n let running = await client.request('chat.isRunning', { sessionId: session.id })\n if (running)\n write(`${DIM}a run is in flight — attaching to the live stream${RESET}\\n`)\n\n /* ----------------------------------------------------------------------\n * Signal rendering\n * -------------------------------------------------------------------- */\n\n let lastEventKind: StreamEvent['kind'] | null = null\n\n /**\n * The host broadcasts every window's user message as a `user-prompt`\n * event — render it so this window sees prompts posted elsewhere. Our\n * OWN just-sent messages are skipped once each (readline already echoed\n * them). A multiset (text → count) handles rapid identical sends and\n * never suppresses another window's matching message beyond our own\n * outstanding count.\n */\n const ownEchoes = new Map<string, number>()\n\n const renderEvent = (event: StreamEvent): void => {\n switch (event.kind) {\n case 'user-prompt': {\n const outstanding = ownEchoes.get(event.text) ?? 0\n if (outstanding > 0) {\n if (outstanding === 1)\n ownEchoes.delete(event.text)\n else\n ownEchoes.set(event.text, outstanding - 1)\n break\n }\n write(`\\n${BOLD}> ${event.text}${RESET}\\n`)\n break\n }\n case 'markdown':\n if (lastEventKind !== 'markdown' && lastEventKind !== null)\n write('\\n')\n write(event.text)\n break\n case 'thinking':\n // Streamed reasoning stays out of the transcript — show a pulse once.\n if (lastEventKind !== 'thinking')\n write(`${DIM}(thinking…)${RESET}\\n`)\n break\n case 'tool':\n write(`\\n${CYAN}▸ ${event.text}${RESET}\\n`)\n break\n case 'tool-result':\n write(`${DIM}${clipLines(event.text, 3)}${RESET}\\n`)\n break\n case 'task-notification':\n case 'info':\n write(`${DIM}${event.text}${RESET}\\n`)\n break\n case 'error':\n write(`${RED}${event.text}${RESET}\\n`)\n break\n default:\n break\n }\n lastEventKind = event.kind\n }\n\n const handleApproval = async (request: WireApprovalRequest): Promise<void> => {\n write(`\\n${YELLOW}approval needed${RESET} — ${BOLD}${request.tool}${RESET}\\n`)\n write(`${DIM}${clipLines(JSON.stringify(request.input, null, 2), 12)}${RESET}\\n`)\n const answer = await ask(`${YELLOW}[y]es once / [s]ession / [a]lways (safelist) / [n]o: ${RESET}`)\n const decision\n = answer.trim().toLowerCase() === 'y'\n ? 'accept-once'\n : answer.trim().toLowerCase() === 's'\n ? 'accept-session'\n : answer.trim().toLowerCase() === 'a'\n ? 'accept-safelist'\n : 'deny'\n await client.request('approvals.resolve', { requestId: request.id, decision })\n }\n\n const handleInteraction = async (request: InteractionRequest): Promise<void> => {\n if (request.kind === 'plan') {\n write(`\\n${YELLOW}plan:${RESET} ${BOLD}${request.payload.title}${RESET}\\n${request.payload.plan}\\n`)\n const answer = await ask(`${YELLOW}[a]pprove / [r]eject / re[v]ise (with comment): ${RESET}`)\n const c = answer.trim().toLowerCase()\n if (c === 'v') {\n const comment = await ask('comment: ')\n await client.request('interactions.respond', {\n requestId: request.id,\n response: { kind: 'plan', decision: 'revise', comment },\n })\n return\n }\n await client.request('interactions.respond', {\n requestId: request.id,\n response: { kind: 'plan', decision: c === 'a' ? 'approve' : 'reject' },\n })\n return\n }\n\n if (request.payload.intro)\n write(`\\n${request.payload.intro}\\n`)\n const answers: Record<string, AnswerValue> = {}\n for (const question of request.payload.questions) {\n if (question.type === 'confirm') {\n const answer = await ask(`${YELLOW}${question.prompt}${RESET} [y/n]: `)\n answers[question.id] = answer.trim().toLowerCase().startsWith('y')\n continue\n }\n if (question.type === 'select') {\n write(`${YELLOW}${question.prompt}${RESET}\\n`)\n question.choices.forEach((choice, i) => write(` ${i + 1}. ${choice.label}\\n`))\n const answer = await ask(question.multi ? 'pick (comma-separated numbers): ' : 'pick a number: ')\n const picks = answer\n .split(',')\n .map(part => question.choices[Number.parseInt(part.trim(), 10) - 1]?.id)\n .filter((id): id is string => typeof id === 'string')\n answers[question.id] = question.multi ? picks : (picks[0] ?? '')\n continue\n }\n answers[question.id] = await ask(`${YELLOW}${question.prompt}${RESET}: `)\n }\n await client.request('interactions.respond', {\n requestId: request.id,\n response: { kind: 'question', answers },\n })\n }\n\n const onSignal = (signal: HostSignal): void => {\n // Converge on resolution: mark the id answered so a queued-but-not-yet-\n // prompted request is skipped instead of blocking on stdin, and record\n // it so late backfill can't re-raise it.\n if (signal.kind === 'approval:resolved' || signal.kind === 'interaction:resolved') {\n resolvedHitlIds.add(signal.requestId)\n return\n }\n\n if (signal.kind === 'approval:request') {\n // Only surface approvals for the attached session — other windows'\n // sessions raise their own prompts in their own windows.\n if (signal.request.sessionId === session.id)\n enqueueHitl(signal.request.id, () => handleApproval(signal.request))\n return\n }\n\n if ('sessionId' in signal && signal.sessionId !== session.id)\n return\n\n switch (signal.kind) {\n case 'run:start':\n running = true\n lastEventKind = null\n break\n case 'run:end':\n running = false\n write(signal.ok ? '\\n' : `\\n${RED}run failed: ${signal.error ?? 'unknown error'}${RESET}\\n`)\n if (!pendingAsk)\n rl.prompt()\n break\n case 'event':\n renderEvent(signal.event)\n break\n case 'compacting:start':\n write(`${DIM}compacting…${RESET}\\n`)\n break\n case 'interaction:request':\n enqueueHitl(signal.request.id, () => handleInteraction(signal.request))\n break\n default:\n break\n }\n }\n\n // Surface HITL state left pending before this window attached. Done\n // BEFORE draining buffered signals so a live `*:request` that arrived\n // during backfill de-dups against the same id (via `queuedHitlIds`).\n for (const request of await client.request('approvals.listPending', {})) {\n if (request.sessionId === session.id)\n enqueueHitl(request.id, () => handleApproval(request))\n }\n for (const pending of await client.request('interactions.list', { sessionId: session.id })) {\n if (pending.live)\n enqueueHitl(pending.request.id, () => handleInteraction(pending.request))\n }\n\n // Drain signals buffered during replay/backfill, then hand live signals\n // straight to `onSignal`.\n signalSink = onSignal\n for (const buffered of bufferedSignals.splice(0))\n onSignal(buffered)\n\n /* ----------------------------------------------------------------------\n * Input loop\n * -------------------------------------------------------------------- */\n\n const detach = (): void => {\n unsubscribe()\n rl.close()\n client.close()\n write(`\\n${DIM}detached — the session keeps running in the daemon${RESET}\\n`)\n }\n\n rl.on('SIGINT', () => {\n if (running) {\n // Fire-and-forget: a dead daemon rejects the request, and an\n // uncaught rejection would crash the attach client.\n client.request('chat.interrupt', { sessionId: session.id }).catch(() => undefined)\n write(`\\n${DIM}interrupt sent${RESET}\\n`)\n return\n }\n detach()\n })\n\n await new Promise<void>((resolve, reject) => {\n failRun = (error) => {\n unsubscribe()\n rl.close()\n client.close()\n reject(error)\n }\n rl.on('close', () => resolve())\n\n const handleLine = (line: string): void => {\n const text = line.trim()\n if (text.length === 0) {\n rl.prompt()\n return\n }\n if (text === '/exit' || text === '/quit') {\n detach()\n resolve()\n return\n }\n if (text === '/interrupt') {\n client.request('chat.interrupt', { sessionId: session.id }).catch(() => undefined)\n return\n }\n\n ownEchoes.set(text, (ownEchoes.get(text) ?? 0) + 1)\n void client.request('chat.pushQueued', { sessionId: session.id, message: text }).then(({ delivered }) => {\n if (delivered === 'steer')\n write(`${DIM}(steered into the live run)${RESET}\\n`)\n }).catch((err) => {\n // Send failed: the host never broadcast the prompt, so release the\n // pending echo suppression to avoid eating a later identical one.\n const outstanding = ownEchoes.get(text) ?? 0\n if (outstanding <= 1)\n ownEchoes.delete(text)\n else\n ownEchoes.set(text, outstanding - 1)\n write(`${RED}${err instanceof Error ? err.message : String(err)}${RESET}\\n`)\n rl.prompt()\n })\n }\n\n submitLine = handleLine\n while (earlyLines.length > 0)\n handleLine(earlyLines.shift()!)\n\n if (!running)\n rl.prompt()\n })\n}\n\n/* --------------------------------------------------------------------------\n * Session picking\n * ------------------------------------------------------------------------ */\n\nasync function pickSession(\n client: IpcClient,\n ctx: {\n ask: (prompt: string) => Promise<string>\n write: (text: string) => void\n cwd: string\n sessionId?: string\n createNew?: boolean\n },\n): Promise<SessionRow | null> {\n const projectRoot = findGitRoot(ctx.cwd) ?? ctx.cwd\n\n if (ctx.createNew)\n return client.request('sessions.create', { cwd: ctx.cwd })\n\n const rows = await client.request('sessions.list', { projectRoot, archive: 'active' })\n\n if (ctx.sessionId) {\n const match = rows.find(r => r.id === ctx.sessionId || r.id.startsWith(ctx.sessionId!))\n if (match)\n return match\n // Not in this project — try the full list before giving up.\n const all = await client.request('sessions.list', {})\n const global = all.find(r => r.id === ctx.sessionId || r.id.startsWith(ctx.sessionId!))\n if (global)\n return global\n ctx.write(`${RED}no session matching \"${ctx.sessionId}\"${RESET}\\n`)\n return null\n }\n\n if (rows.length === 0)\n return client.request('sessions.create', { cwd: ctx.cwd })\n\n ctx.write(`${BOLD}sessions in ${projectRoot}:${RESET}\\n`)\n rows.slice(0, 15).forEach((row, i) => {\n const status = row.status === 'running' ? ` ${YELLOW}● running${RESET}` : ''\n ctx.write(` ${i + 1}. ${row.title} ${DIM}(${row.id.slice(0, 8)})${RESET}${status}\\n`)\n })\n\n const answer = await ctx.ask('pick a number, or [n]ew: ')\n if (answer.trim().toLowerCase() === 'n')\n return client.request('sessions.create', { cwd: ctx.cwd })\n\n const picked = rows[Number.parseInt(answer.trim(), 10) - 1]\n if (!picked) {\n ctx.write(`${RED}invalid pick${RESET}\\n`)\n return null\n }\n return picked\n}\n\n/* --------------------------------------------------------------------------\n * Transcript replay\n * ------------------------------------------------------------------------ */\n\nconst REPLAY_EVENT_CAP = 60\n\nasync function replayTranscript(\n client: IpcClient,\n sessionId: string,\n write: (text: string) => void,\n): Promise<void> {\n const events = await client.request('sessions.loadEvents', { sessionId })\n if (events.length === 0)\n return\n\n const tail = events.slice(-REPLAY_EVENT_CAP)\n if (events.length > tail.length)\n write(`${DIM}… ${events.length - tail.length} earlier events omitted${RESET}\\n`)\n\n for (const event of tail) {\n if (event.kind === 'user-prompt')\n write(`\\n${BOLD}> ${event.text}${RESET}\\n`)\n else if (event.kind === 'markdown')\n write(`${event.text}\\n`)\n else if (event.kind === 'tool')\n write(`${CYAN}▸ ${event.text}${RESET}\\n`)\n }\n write('\\n')\n}\n\nfunction clipLines(text: string, max: number): string {\n const lines = text.split('\\n')\n if (lines.length <= max)\n return text\n return `${lines.slice(0, max).join('\\n')}\\n${DIM}… ${lines.length - max} more lines${RESET}`\n}\n"],"mappings":"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"}
package/dist/ipc.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { $v as SessionArtifact, Ag as JsonValue, Ka as ExtensionBus, Kp as ContextBreakdown, Xd as ProviderKey, Xu as StreamEvent, jf as InteractionResponse, l_ as ThinkingLevel, t_ as SessionTurn } from "./index-DZhrTn-v.js";
2
- import { An as ChatHostEnvironment, Bn as QueuedItem, Cn as PendingAnnotation, Dn as ApprovalRequestInput, En as ApprovalHub, Fn as HostSettings, Hn as SendOptions, In as HostSignal, Kn as TodosSnapshot, Ln as PendingInteraction, Mn as ApprovalOriginator, Nn as CommandArgSuggestionSummary, On as createApprovalHub, Pn as CommandSummary, Rn as PromptAttachment, Sn as EditOutcomeLedger, Tn as runCompaction, Un as SerializedPreview, Vn as RunningWorkItem, Wn as SessionPresence, _n as CreateWorkerParams, bn as InteractionHub, dn as readFileSafe, fn as resolveCwdPath, gn as createChatHost, hn as ContextSegmentsReport, jn as PendingApprovalsStore, kn as createMemoryApprovalsStore, mn as ChatHost, pn as serializePreview, qn as WireApprovalRequest, un as extractEditPayloadForGate, v as SystemMdFile, vn as WorkerRow, wn as CompactionEntry, xn as createInteractionHub, yn as WorkerSummary } from "./index-D3TTaaQ5.js";
3
- import { O as ResolvedConfig } from "./transcript-anchors-DxofXw_y.js";
4
- import { p as TodoItem } from "./turn-operations-BaQnxzhr.js";
5
- import { T as SessionHistoryMatch, V as ApprovalDecision, w as SearchTurnResult } from "./tool-formatters-C5s88MUd.js";
1
+ import { $v as SessionArtifact, Ag as JsonValue, Ka as ExtensionBus, Kp as ContextBreakdown, Xd as ProviderKey, Xu as StreamEvent, jf as InteractionResponse, l_ as ThinkingLevel, t_ as SessionTurn } from "./index-Dw8ruU-j.js";
2
+ import { An as createMemoryApprovalsStore, Cn as EditOutcomeLedger, Dn as ApprovalHub, En as runCompaction, Fn as CommandSummary, Gn as SessionPresence, Hn as RunningWorkItem, In as HostSettings, Jn as WireApprovalRequest, Ln as HostSignal, Mn as PendingApprovalsStore, Nn as ApprovalOriginator, On as ApprovalRequestInput, Pn as CommandArgSuggestionSummary, Rn as PendingInteraction, Sn as createInteractionHub, Tn as CompactionEntry, Un as SendOptions, Vn as QueuedItem, Wn as SerializedPreview, _n as createChatHost, bn as WorkerSummary, dn as extractEditPayloadForGate, fn as readFileSafe, gn as ContextSegmentsReport, hn as ChatHost, jn as ChatHostEnvironment, kn as createApprovalHub, mn as serializePreview, pn as resolveCwdPath, qn as TodosSnapshot, v as SystemMdFile, vn as CreateWorkerParams, wn as PendingAnnotation, xn as InteractionHub, yn as WorkerRow, zn as PromptAttachment } from "./index-D9ntsW7o.js";
3
+ import { Y as ResolvedConfig } from "./transcript-anchors-nWzUc3WT.js";
4
+ import { p as TodoItem } from "./turn-operations-GRw5vbtr.js";
5
+ import { T as SessionHistoryMatch, V as ApprovalDecision, w as SearchTurnResult } from "./tool-formatters-CJoSmRjH.js";
6
6
 
7
7
  //#region src/ipc/attach.d.ts
8
8
  interface AttachOptions {
@@ -921,5 +921,27 @@ interface IpcDaemon {
921
921
  }
922
922
  declare function startIpcDaemon(options: IpcDaemonOptions): Promise<IpcDaemon>;
923
923
  //#endregion
924
- export { type ApprovalHub, type ApprovalOriginator, type ApprovalRequestInput, type AttachOptions, type ChatHost, type ChatHostEnvironment, type CompactionEntry, type CreateSessionParams, type DaemonEnvironment, EditOutcomeLedger, type EnsureDaemonOptions, type HelloParams, type HelloResult, type HostSettings, type HostSignal, IPC_BUILD_ID, IPC_PROTOCOL_VERSION, type InteractionHub, type IpcClient, type IpcClientOptions, type IpcDaemon, type IpcDaemonOptions, IpcErrorCode, type IpcMethodName, type IpcMethods, type IpcParams, type IpcResult, IpcVersionMismatchError, type ModelFallbackRef, type PendingAnnotation, type PendingApprovalsStore, type PendingInteraction, type PromptAttachment, type QueuedItem, type RunningWorkItem, type SendOptions, type SerializedPreview, type SessionPresence, type SessionRow, type TodosSnapshot, type WireApprovalRequest, connectIpcClient, connectOrSpawnDaemon, createApprovalHub, createChatHost, createDaemonEnvironment, createFileApprovalsStore, createInteractionHub, createMemoryApprovalsStore, daemonSocketName, defaultSocketPath, ensureDaemonRunning, extractEditPayloadForGate, probeSocket, readFileSafe, resolveCwdPath, runAttach, runCompaction, selfDaemonSpawnCommand, serializePreview, startIpcDaemon };
924
+ //#region src/ipc/daemon/shell-path.d.ts
925
+ /**
926
+ * PATH as seen by an interactive login shell, or `undefined` when no shell
927
+ * answers in time. Tries the user's shell first, then POSIX fallbacks for
928
+ * non-POSIX defaults (nushell, xonsh) whose `-ilc` differs. An explicit
929
+ * `shell` is tried alone.
930
+ */
931
+ declare function shellPath(options?: {
932
+ env?: NodeJS.ProcessEnv;
933
+ timeoutMs?: number;
934
+ shell?: string;
935
+ }): string | undefined;
936
+ /**
937
+ * Entries of `current` the shell doesn't know about (ad-hoc prepends from the
938
+ * launching terminal) stay in front; then the shell's PATH in its own order.
939
+ * From the Dock every launchd entry is already in the shell PATH, so the
940
+ * result is exactly the shell PATH, with the shell's precedence intact.
941
+ */
942
+ declare function mergePath(current: string | undefined, shell: string | undefined): string;
943
+ /** Merge the login shell's PATH into `process.env.PATH`. No-op on Windows or when no shell answers. */
944
+ declare function fixPath(): void;
945
+ //#endregion
946
+ export { type ApprovalHub, type ApprovalOriginator, type ApprovalRequestInput, type AttachOptions, type ChatHost, type ChatHostEnvironment, type CompactionEntry, type CreateSessionParams, type DaemonEnvironment, EditOutcomeLedger, type EnsureDaemonOptions, type HelloParams, type HelloResult, type HostSettings, type HostSignal, IPC_BUILD_ID, IPC_PROTOCOL_VERSION, type InteractionHub, type IpcClient, type IpcClientOptions, type IpcDaemon, type IpcDaemonOptions, IpcErrorCode, type IpcMethodName, type IpcMethods, type IpcParams, type IpcResult, IpcVersionMismatchError, type ModelFallbackRef, type PendingAnnotation, type PendingApprovalsStore, type PendingInteraction, type PromptAttachment, type QueuedItem, type RunningWorkItem, type SendOptions, type SerializedPreview, type SessionPresence, type SessionRow, type TodosSnapshot, type WireApprovalRequest, connectIpcClient, connectOrSpawnDaemon, createApprovalHub, createChatHost, createDaemonEnvironment, createFileApprovalsStore, createInteractionHub, createMemoryApprovalsStore, daemonSocketName, defaultSocketPath, ensureDaemonRunning, extractEditPayloadForGate, fixPath, mergePath, probeSocket, readFileSafe, resolveCwdPath, runAttach, runCompaction, selfDaemonSpawnCommand, serializePreview, shellPath, startIpcDaemon };
925
947
  //# sourceMappingURL=ipc.d.ts.map
package/dist/ipc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ipc.d.ts","names":[],"sources":["../src/ipc/attach.ts","../src/ipc/daemon/lifecycle.ts","../src/ipc/protocol.ts","../src/ipc/client.ts","../src/ipc/daemon/environment.ts","../src/ipc/daemon/server.ts"],"mappings":"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"}
1
+ {"version":3,"file":"ipc.d.ts","names":[],"sources":["../src/ipc/attach.ts","../src/ipc/daemon/lifecycle.ts","../src/ipc/protocol.ts","../src/ipc/client.ts","../src/ipc/daemon/environment.ts","../src/ipc/daemon/server.ts","../src/ipc/daemon/shell-path.ts"],"mappings":"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"}
package/dist/ipc.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Bt as serializePreview, It as createInteractionHub, Lt as extractEditPayloadForGate, Nt as createChatHost, Rt as readFileSafe, n as createMemoryApprovalsStore, nn as runCompaction, t as createApprovalHub, tn as EditOutcomeLedger, zt as resolveCwdPath } from "./approvals-u2T19Dc-.js";
2
- import { a as connectIpcClient, c as IpcErrorCode, d as defaultSocketPath, f as ensureDaemonRunning, i as IpcVersionMismatchError, l as IPC_BUILD_ID, m as selfDaemonSpawnCommand, n as createDaemonEnvironment, o as connectOrSpawnDaemon, p as probeSocket, r as createFileApprovalsStore, s as IPC_PROTOCOL_VERSION, t as startIpcDaemon, u as daemonSocketName } from "./server-CTUpOdh3.js";
3
- import { t as runAttach } from "./ipc-ChQeueur.js";
4
- export { EditOutcomeLedger, IPC_BUILD_ID, IPC_PROTOCOL_VERSION, IpcErrorCode, IpcVersionMismatchError, connectIpcClient, connectOrSpawnDaemon, createApprovalHub, createChatHost, createDaemonEnvironment, createFileApprovalsStore, createInteractionHub, createMemoryApprovalsStore, daemonSocketName, defaultSocketPath, ensureDaemonRunning, extractEditPayloadForGate, probeSocket, readFileSafe, resolveCwdPath, runAttach, runCompaction, selfDaemonSpawnCommand, serializePreview, startIpcDaemon };
1
+ import { Bt as resolveCwdPath, Lt as createInteractionHub, Pt as createChatHost, Rt as extractEditPayloadForGate, Vt as serializePreview, n as createMemoryApprovalsStore, nn as EditOutcomeLedger, rn as runCompaction, t as createApprovalHub, zt as readFileSafe } from "./approvals-BznYVVGD.js";
2
+ import { _ as selfDaemonSpawnCommand, a as createDaemonEnvironment, c as connectIpcClient, d as IpcErrorCode, f as IPC_BUILD_ID, g as probeSocket, h as ensureDaemonRunning, i as startIpcDaemon, l as connectOrSpawnDaemon, m as defaultSocketPath, n as mergePath, o as createFileApprovalsStore, p as daemonSocketName, r as shellPath, s as IpcVersionMismatchError, t as fixPath, u as IPC_PROTOCOL_VERSION } from "./shell-path-3tZ2lyQ2.js";
3
+ import { t as runAttach } from "./ipc-CNrpBs9P.js";
4
+ export { EditOutcomeLedger, IPC_BUILD_ID, IPC_PROTOCOL_VERSION, IpcErrorCode, IpcVersionMismatchError, connectIpcClient, connectOrSpawnDaemon, createApprovalHub, createChatHost, createDaemonEnvironment, createFileApprovalsStore, createInteractionHub, createMemoryApprovalsStore, daemonSocketName, defaultSocketPath, ensureDaemonRunning, extractEditPayloadForGate, fixPath, mergePath, probeSocket, readFileSafe, resolveCwdPath, runAttach, runCompaction, selfDaemonSpawnCommand, serializePreview, shellPath, startIpcDaemon };
package/dist/mcp.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { Cy as originPinnedFetch, Ng as McpToolSchema, Sy as isAllowedRemoteUrl, _y as normalizeMcpServers, by as wrapDiscoveredMcpTools, cy as McpExecutionBinding, dy as createStderrLineEmitter, fy as deriveMcpToolMeta, gy as normalizeMcpBlocks, hy as nonOwningMcpView, jg as McpServerConfig, ly as attachStderrWarnPump, my as expandMcpConfigEnv, oy as ConnectMcpServersOptions, py as expandEnvPlaceholders, sy as McpConnection, uy as connectMcpServers, vy as resolveTransportConfig, xy as PinnedFetch, yy as resultToString } from "./index-DZhrTn-v.js";
1
+ import { Cy as originPinnedFetch, Ng as McpToolSchema, Sy as isAllowedRemoteUrl, _y as normalizeMcpServers, by as wrapDiscoveredMcpTools, cy as McpExecutionBinding, dy as createStderrLineEmitter, fy as deriveMcpToolMeta, gy as normalizeMcpBlocks, hy as nonOwningMcpView, jg as McpServerConfig, ly as attachStderrWarnPump, my as expandMcpConfigEnv, oy as ConnectMcpServersOptions, py as expandEnvPlaceholders, sy as McpConnection, uy as connectMcpServers, vy as resolveTransportConfig, xy as PinnedFetch, yy as resultToString } from "./index-Dw8ruU-j.js";
2
2
  export { ConnectMcpServersOptions, McpConnection, McpExecutionBinding, type McpServerConfig, type McpToolSchema, type PinnedFetch, attachStderrWarnPump, connectMcpServers, createStderrLineEmitter, deriveMcpToolMeta, expandEnvPlaceholders, expandMcpConfigEnv, isAllowedRemoteUrl, nonOwningMcpView, normalizeMcpBlocks, normalizeMcpServers, originPinnedFetch, resolveTransportConfig, resultToString, wrapDiscoveredMcpTools };
@@ -437,22 +437,24 @@ async function resolveOAuthApiKey(options, callbacks) {
437
437
  callbacks?.onOAuthStage?.("credentials");
438
438
  return options.params.access;
439
439
  }
440
- const path = resolve(credentialsFilePath());
440
+ const path = resolve(options.credentialsPath ?? credentialsFilePath());
441
+ const slot = options.credentialKey ?? options.providerId;
441
442
  const usingDefaultStore = !options.readCredentials && !options.writeCredentials;
442
443
  const read = options.readCredentials ?? (() => readOAuthCredentialsAt(path));
443
444
  const write = options.writeCredentials ?? ((patch) => withCredentialsLock(path, () => writeCredentialPatch(path, patch)));
444
445
  const envValue = options.envKey ? process.env[options.envKey] : void 0;
445
- if (!paramsCredentials && envValue && (!isOAuthAccessToken(envValue) || !read()[options.providerId])) {
446
+ if (!paramsCredentials && envValue && (!isOAuthAccessToken(envValue) || !read()[slot])) {
446
447
  if (isOAuthAccessToken(envValue)) callbacks?.onOAuthStage?.("credentials");
447
448
  return envValue;
448
449
  }
449
450
  callbacks?.onOAuthStage?.("credentials");
450
451
  const source = paramsCredentials ? "params" : "file";
451
- const initial = paramsCredentials ?? read()[options.providerId];
452
+ const initial = paramsCredentials ?? read()[slot];
452
453
  const store = usingDefaultStore ? path : [identity(options.readCredentials ?? readOAuthCredentials), identity(options.writeCredentials ?? writeOAuthCredentials)];
453
454
  const key = JSON.stringify([
454
455
  source,
455
456
  options.providerId,
457
+ slot,
456
458
  source === "file" ? store : null,
457
459
  initial,
458
460
  options.forceRefresh === true,
@@ -473,9 +475,9 @@ async function resolveOAuthApiKey(options, callbacks) {
473
475
  });
474
476
  return result.apiKey;
475
477
  async function run() {
476
- const release = source === "file" && usingDefaultStore ? await acquireRefreshLock(`${path}.refresh-${encodeURIComponent(options.providerId)}.lock`) : void 0;
478
+ const release = source === "file" && usingDefaultStore ? await acquireRefreshLock(`${path}.refresh-${encodeURIComponent(slot)}.lock`) : void 0;
477
479
  try {
478
- const current = paramsCredentials ?? read()[options.providerId];
480
+ const current = paramsCredentials ?? read()[slot];
479
481
  if (!current) throw new Error(options.missingError);
480
482
  const generation = structuredClone(current);
481
483
  let result;
@@ -493,9 +495,9 @@ async function resolveOAuthApiKey(options, callbacks) {
493
495
  };
494
496
  if (source === "file") {
495
497
  const persist = () => {
496
- if (!isDeepStrictEqual(read()[options.providerId], generation)) throw new Error("OAuth credentials changed during refresh; retry with current credentials");
498
+ if (!isDeepStrictEqual(read()[slot], generation)) throw new Error("OAuth credentials changed during refresh; retry with current credentials");
497
499
  if (result.newCredentials !== current) {
498
- const patch = { [options.providerId]: refreshed };
500
+ const patch = { [slot]: refreshed };
499
501
  if (usingDefaultStore) writeCredentialPatch(path, patch);
500
502
  else write(patch);
501
503
  }
@@ -521,4 +523,4 @@ async function resolveOAuthApiKey(options, callbacks) {
521
523
  //#endregion
522
524
  export { readOAuthCredentials as a, withCredentialsLock as c, getOAuthApiKey as d, getOAuthProvider as f, registerOAuthProvider as h, isOAuthAccessToken as i, writeOAuthCredentials as l, refreshOpenAICodexToken as m, credentialsFromParams as n, registerCustomOAuthProvider as o, refreshAnthropicToken as p, extractRuntimeCredentials as r, resolveOAuthApiKey as s, credentialsFilePath as t, ensureBundledOAuthFlows as u };
523
525
 
524
- //# sourceMappingURL=oauth-B6F43fti.js.map
526
+ //# sourceMappingURL=oauth-DxHO17JE.js.map