zidane 7.0.19 → 7.0.22

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 (95) hide show
  1. package/dist/{acp-BgNj1-gv.js → acp-BhbXWwj_.js} +2 -2
  2. package/dist/{acp-BgNj1-gv.js.map → acp-BhbXWwj_.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-Djzx-1kD.js → agent-LC2c1ue-.js} +18 -5
  7. package/dist/{agent-Djzx-1kD.js.map → agent-LC2c1ue-.js.map} +1 -1
  8. package/dist/agent.d.ts +1 -1
  9. package/dist/agent.js +1 -1
  10. package/dist/{anthropic-DATE-m9f.js → anthropic-BSbDiW0J.js} +34 -4
  11. package/dist/anthropic-BSbDiW0J.js.map +1 -0
  12. package/dist/{approvals-Jztqzqjk.js → approvals-BnDsgTtD.js} +4 -4
  13. package/dist/{approvals-Jztqzqjk.js.map → approvals-BnDsgTtD.js.map} +1 -1
  14. package/dist/{auth-DhkLW1Wu.js → auth-Nq-tSMb9.js} +53 -35
  15. package/dist/{auth-DhkLW1Wu.js.map → auth-Nq-tSMb9.js.map} +1 -1
  16. package/dist/chat/pure.d.ts +3 -3
  17. package/dist/chat/pure.js +2 -2
  18. package/dist/chat.d.ts +5 -5
  19. package/dist/chat.js +5 -5
  20. package/dist/{context-segments-CJCtJ9sU.js → context-segments-BrEsRhA0.js} +11 -3
  21. package/dist/context-segments-BrEsRhA0.js.map +1 -0
  22. package/dist/contexts/daytona.d.ts +1 -1
  23. package/dist/contexts/e2b.d.ts +1 -1
  24. package/dist/daemon-cli.js +1 -1
  25. package/dist/eval.d.ts +1 -1
  26. package/dist/extensions.d.ts +1 -1
  27. package/dist/extensions.js +1 -1
  28. package/dist/headless.d.ts +1 -1
  29. package/dist/headless.js +1 -1
  30. package/dist/{index-CfEJ5Vf9.d.ts → index-C4mY0oKE.d.ts} +18 -21
  31. package/dist/index-C4mY0oKE.d.ts.map +1 -0
  32. package/dist/{index-498gAVpL.d.ts → index-D2JCY11Z.d.ts} +5 -5
  33. package/dist/index-D2JCY11Z.d.ts.map +1 -0
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.js +4 -4
  36. package/dist/{ipc-B4p0P2tz.js → ipc-Oro3uyMP.js} +2 -2
  37. package/dist/{ipc-B4p0P2tz.js.map → ipc-Oro3uyMP.js.map} +1 -1
  38. package/dist/ipc.d.ts +15 -5
  39. package/dist/ipc.d.ts.map +1 -1
  40. package/dist/ipc.js +3 -3
  41. package/dist/mcp.d.ts +1 -1
  42. package/dist/{oauth-D-LZ4ic-.js → oauth-CmtlmCzi.js} +142 -210
  43. package/dist/oauth-CmtlmCzi.js.map +1 -0
  44. package/dist/output/stream-json.d.ts +1 -1
  45. package/dist/output/terminal.d.ts +1 -1
  46. package/dist/plugins.d.ts +1 -1
  47. package/dist/presets.d.ts +1 -1
  48. package/dist/presets.js +1 -1
  49. package/dist/providers/anthropic.d.ts +1 -1
  50. package/dist/providers/anthropic.js +1 -1
  51. package/dist/providers/arcee.d.ts +1 -1
  52. package/dist/providers/baseten.d.ts +1 -1
  53. package/dist/providers/cerebras.d.ts +1 -1
  54. package/dist/providers/local.d.ts +1 -1
  55. package/dist/providers/openai-compat.d.ts +1 -1
  56. package/dist/providers/openai.d.ts +1 -1
  57. package/dist/providers/openai.js +1 -1
  58. package/dist/providers/openrouter.d.ts +1 -1
  59. package/dist/providers/xai.d.ts +1 -1
  60. package/dist/providers/xai.js +1 -1
  61. package/dist/{providers-Bjdvmpfu.js → providers-ZucqgwU7.js} +2 -2
  62. package/dist/{providers-Bjdvmpfu.js.map → providers-ZucqgwU7.js.map} +1 -1
  63. package/dist/providers.d.ts +1 -1
  64. package/dist/providers.js +3 -3
  65. package/dist/restate.d.ts +1 -1
  66. package/dist/restate.js +1 -1
  67. package/dist/{server-Cccx5jES.js → server-HZdjqDpS.js} +67 -10
  68. package/dist/server-HZdjqDpS.js.map +1 -0
  69. package/dist/session/sqlite.d.ts +1 -1
  70. package/dist/session.d.ts +1 -1
  71. package/dist/skills.d.ts +1 -1
  72. package/dist/{tool-formatters-D1rdZOe3.d.ts → tool-formatters-GZHxP824.d.ts} +2 -2
  73. package/dist/{tool-formatters-D1rdZOe3.d.ts.map → tool-formatters-GZHxP824.d.ts.map} +1 -1
  74. package/dist/tools/fetch-url.d.ts +1 -1
  75. package/dist/tools/web-search.d.ts +1 -1
  76. package/dist/tools.d.ts +1 -1
  77. package/dist/tools.js +1 -1
  78. package/dist/{transcript-anchors-pHga6mOC.d.ts → transcript-anchors-CY50AXdF.d.ts} +2 -2
  79. package/dist/{transcript-anchors-pHga6mOC.d.ts.map → transcript-anchors-CY50AXdF.d.ts.map} +1 -1
  80. package/dist/tui.d.ts +3 -3
  81. package/dist/tui.js +6 -6
  82. package/dist/{turn-operations-Dt5L8smX.js → turn-operations-BgqpLlOG.js} +2 -2
  83. package/dist/{turn-operations-Dt5L8smX.js.map → turn-operations-BgqpLlOG.js.map} +1 -1
  84. package/dist/{turn-operations-Dzo-8TKC.d.ts → turn-operations-CAmNETlu.d.ts} +3 -3
  85. package/dist/{turn-operations-Dzo-8TKC.d.ts.map → turn-operations-CAmNETlu.d.ts.map} +1 -1
  86. package/dist/types.d.ts +1 -1
  87. package/docs/CHAT.md +8 -0
  88. package/docs/IPC.md +10 -0
  89. package/package.json +1 -1
  90. package/dist/anthropic-DATE-m9f.js.map +0 -1
  91. package/dist/context-segments-CJCtJ9sU.js.map +0 -1
  92. package/dist/index-498gAVpL.d.ts.map +0 -1
  93. package/dist/index-CfEJ5Vf9.d.ts.map +0 -1
  94. package/dist/oauth-D-LZ4ic-.js.map +0 -1
  95. package/dist/server-Cccx5jES.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  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";
2
- import { $ as SessionArtifactDirMigration, $_ as SessionRun, $c as validateResourcePath, $d as ModelOption, $g as StreamHookContext, $h as resolveOAuthApiKey, $i as McpToolWrap, $l as InlineGhost, $n as HeadlessResult, $o as ExtensionToolPolicy, $p as ContextItem, $r as RunSummaryTokens, $s as WireExtensionConfigSchema, $t as EvalRunUsage, $v as sortArtifacts, A as Meter, A_ as hydrateReadStateFromSessionAsync, Aa as ENTRY_CANDIDATES, Ac as PLUGIN_MANIFEST_FILE, Ag as OAuthRefreshHookContext, Ah as anthropic, Ai as ANCHOR_PREVIEW_MAX_CHARS, Al as DeactivationReason, Am as xai, An as efficiencyMetricValues, Ao as ExtensionFooterHint, Ar as createSkillsReadTool, As as ExtensionWorkspacePair, At as resolveExtensionDocsDir, Au as CommandStepContext, Av as dropInvalidToolPairings, B as McpCredentialStore, B_ as isToolStateOps, Ba as ExtensionPromptBridge, Bc as PluginSchemaKind, Bf as QuestionChoice, Bg as RepeatGuardToolMatcher, Bi as generateStructuredData, Bn as functionalityMetric, Bo as ExtensionPaths, Bp as ContextSegmentFile, Br as InteractionToolOptions, Bs as ExtensionConfigChangeBehavior, Bt as EvalAgentStats, Bv as toOpenAI, C as SuccessfulMutationOutcome, C_ as ToolMap, Ca as installExtensionFromSpec, Cc as matchModelEntries, Cf as AnswerValue, Cg as GeometricThinkingDecay, Ch as ArceeParams, Ci as NO_TOOLS_PREAMBLE, Cm as ToolResult, Cn as clearRegisteredEvals, Co as ExtensionCapability, Cs as ExtensionArtifactScope, Ct as ZIDANE_SKILL_EDIT_SKILL_NAME, Cu as CommandGenerateDataOptions, Cv as RemintResult, D as Counter, D_ as getReadState, Da as removeInstalledExtension, Dc as ManifestValidation, Dh as AnthropicParams, Di as buildFullCompactPrompt, Dl as installAllowedToolsGate, Dn as createReusableExecutionContext, Do as ExtensionCustomRenderer, Dr as SkillsRunScriptToolOptions, Ds as ExtensionRuntimeSurface, Dt as extensionDirForCwd, Du as CommandSpawnResult, Dv as TurnInterruptionState, E as resolveModelTargets, E_ as ReadStateMap, Ea as readExtensionInstallProvenance, Ec as expandPluginVars, Eg as McpToolHookContext, Ei as buildFromCompactPrompt, El as IMPLICITLY_ALLOWED_SKILL_TOOLS, En as createEvalRunReporter, Eo as ExtensionContributions, Er as createSkillsUseTool, Es as ExtensionModelEntry, Et as editSessionMetadata, Eu as CommandOutputBlock, Ev as ToWireMessagesOptions, F as createMetricsHooks, F_ as ToolStateController, Fa as isExtensionDefinition, Fc as LoadedPlugin, Ff as PlanPayload, Fg as PromptImagePart, Fi as sliceForCompaction, Fm as sanitizeToolSpecs, Fn as fileExistsOneOf, Fo as ExtensionManifest, Fs as ExtensionConfigActionItem, Ft as EvalAgent, Fu as executeCommand, Fv as fromOpenAI, G as OAuthCallbackHandle, G_ as SkillResource, Ga as ExtensionBus, Gc as defineSkill, Gf as SelectQuestion, Gg as SessionContentBlock, Gh as OAuthParams, Gi as localReliabilityBehavior, Gn as runEvalCase, Go as ExtensionRunTransform, Gp as ContextBreakdownContributionContext, Gr as RunSummary, Gs as ExtensionConfigNumberItem, Gt as EvalDefinitionContext, H as McpOAuthProviderOptions, H_ as ShellInterpolationApproval, Ha as createExtensionPromptBridge, Hc as agentPluginsSchemaId, Hg as ResolveContentRefBlock, Hi as defaultRepeatGuardTracked, Hm as OpenAICompatAuthHeader, Hn as normalizeMetric, Ho as ExtensionPromptTransform, Hp as ContextSegmentsInput, Hr as grep, Hs as ExtensionConfigItem, Ht as EvalCaseOptions, Hv as ARTIFACTS_METADATA_KEY, I as LoginMcpServerOptions, I_ as ToolStateOp, Ia as parseExtensionScanPathEnv, Ic as PluginAuthor, Ig as PromptPart, Ii as stripImagesFromTurns, Im as OpenRouterParams, In as finalizeEvalMetrics, Io as ExtensionMcpConfigTransform, Is as ExtensionConfigActionResult, It as EvalAgentMcpServers, Iu as parseCommandInvocation, Iv as reasoningWireAction, J as startOAuthCallback, J_ as CreateSessionOptions, Ja as createExtensionBus, Jc as SkillValidationIssue, Jg as SessionMessage, Jh as credentialsFromParams, Ji as AgentHookMap, Jo as ExtensionSkillPolicy, Jp as ContextCategory, Jr as RunSummaryByModel, Js as ExtensionConfigSurface, Jt as EvalRunMetricAggregate, Jv as SessionArtifactInput, K as OAuthCallbackOptions, K_ as SkillSource, Ka as ExtensionBusChannel, Kc as writeSkillToDisk, Kf as TextQuestion, Kg as SessionEndStatus, Kh as ResolveOAuthApiKeyOptions, Ki as _default, Kn as statusCompleted, Ko as ExtensionRuntimeEnv, Kp as ContextBreakdownContributor, Kr as RunSummaryBlock, Ks as ExtensionConfigScope, Kt as EvalMetric, Kv as ArtifactFilter, L as LoginMcpServerResult, L_ as ToolStateStore, La as scanExtensionDirectories, Lc as PluginComponentStatus, Lf as PlanResponse, Lg as PromptTextPart, Li as summaryToTurn, Ln as formatEvalCaseSummary, Lo as ExtensionModal, Ls as ExtensionConfigActionStatus, Lt as EvalAgentRunOptions, Lv as remintDuplicateToolCallIds, M as MetricsHookSet, M_ as resolveReadStateMap, Ma as defaultExtensionScanPaths, Mc as loadAgentPlugin, Mg as ProgressNudgeMessage, Mi as CompactionSlice, Ml as SkillActivationStateOptions, Mm as SchemaSanitizeProfile, Mn as fileContains, Mo as ExtensionGuiSurface, Mr as CreateShellToolOptions, Ms as createArtifactsSurface, Mt as withZidaneSkillEditSkill, Mu as commandBlockToEvent, Mv as ensureToolResultPairing, N as MetricsHooksOptions, N_ as DEFAULT_MAX_VALUE_BYTES, Na as discoverExtensions, Nc as AgentPluginsVersion, Ng as PromptAudioPart, Ni as SummaryToTurnInput, Nl as createSkillActivationState, Nm as SchemaSanitizeResult, Nn as fileContentQuality, No as ExtensionKeybinding, Nr as createShellTool, Ns as createExtensionHostRuntimeBridge, Nt as CreateEvalAgentOptions, Nu as commandBlocksToContent, Nv as filterUnresolvedToolUses, O as Histogram, O_ as hashContent, Oa as updateInstalledExtension, Oc as parsePluginManifest, Og as ModelTarget, Oi as buildTailCompactPrompt, Ol as ActivationVia, On as defineEval, Oo as ExtensionCustomRendererEntry, Or as createSkillsRunScriptTool, Os as ExtensionSessionSummary, Ot as extensionScaffold, Ou as CommandSpawnTask, Ov as autoDetectAndConvert, P as UpDownCounter, P_ as StagedToolState, Pa as inlineLoadedExtension, Pc as LoadAgentPluginOptions, Pg as PromptDocumentPart, Pi as anchorPreviewFor, Pm as sanitizeToolSchema, Pn as fileExists, Po as ExtensionKeybindingDispatchContext, Ps as createWorkspaceSurface, Pt as EFFICIENCY_METRICS, Pu as commandSteps, Pv as fromAnthropic, Q as PersistOutcome, Q_ as SessionMetaRow, Qc as parseAllowedToolPattern, Qd as ModelInfo, Qg as StepThinkingDecay, Qh as registerCustomOAuthProvider, Qi as McpToolMeta, Ql as InlineAutocompleteProvider, Qo as ExtensionToolCatalogTransform, Qp as ContextExtensionSection, Qr as RunSummaryRepeatGuard, Qs as WireExtensionConfigItem, Qt as EvalRunSummaryCase, Qv as selectArtifactEvictions, R as loginMcpServer, R_ as ToolStateView, Ra as DiscoverAndBuildExtensionRegistryOptions, Rc as PluginDiagnostic, Rg as PromptVideoPart, Ri as truncateHeadForPtlRetry, Rm as openrouter, Rn as formatEvalRunSummary, Ro as ExtensionModalNode, Rr as multiEdit, Rs as ExtensionConfigBooleanItem, Rt as EvalAgentRunResult, Rv as sanitizeHistoryForProvider, S as MutationValidationResult, S_ as ToolDef, Sa as fetchExtensionSource, Sc as formatModelLine, Sg as DedupToolConfig, Si as CompactPromptOptions, Sm as ToolCall, Sn as buildTrajectory, So as ExtensionBusSurface, Sp as jsonSink, Ss as createExtensionHud, St as ZIDANE_EXTENSION_SKILL_NAME, Su as CommandExecution, Sv as ReasoningWireAction, Sy as setModelCatalog, T as normalizeProviders, T_ as ReadStateEntry, Ta as parseExtensionInstallSource, Tc as PLUGIN_MCP_FILE, Tg as McpServerConfig, Ti as buildCompactPrompt, Tl as buildCatalog, Tm as TurnResult, Tn as createEvalAgent, To as ExtensionContextTransform, Tp as formatLogLine, Tr as SkillsUseToolOptions, Ts as ExtensionHostRuntimeImpl, Tt as buildZidaneSkillEditSkill, Tu as CommandInvocation, Tv as TOOL_USE_INTERRUPTED_MARKER, U as createMemoryMcpCredentialStore, U_ as SkillConfig, Ua as defineExtension, Uc as isSupportedAgentPluginsVersion, Ug as RetryConfig, Ui as normalizeShellCommand, Um as OpenAICompatHttpError, Un as registerEvalTests, Uo as ExtensionProviderMiddleware, Ur as glob, Us as ExtensionConfigItemBase, Ut as EvalCaseResult, Uv as ARTIFACTS_PER_SESSION_CAP, V as McpOAuthProvider, V_ as stagedToolState, Va as ExtensionPromptDelivery, Vc as SUPPORTED_AGENT_PLUGINS_VERSIONS, Vf as QuestionPayload, Vg as ResolveContentRef, Vi as defaultRepeatGuardNormalize, Vn as llmJudge, Vo as ExtensionPermission, Vp as ContextSegmentOrigin, Vr as createInteractionTool, Vs as ExtensionConfigEnumItem, Vt as EvalArtifacts, Vv as toWireMessages, W as hasAuthorizationHeader, W_ as SkillDiagnostic, Wa as EXTENSION_BUS_MAX_PAYLOAD_BYTES, Wc as parseSchemaId, Wg as RunHookMap, Wi as stableStringify, Wm as OpenAICompatParams, Wn as relativeArtifactPath, Wo as ExtensionRegistry, Wp as ContextBreakdown, Wr as edit, Ws as ExtensionConfigModelItem, Wt as EvalDefinition, Wv as ARTIFACT_KINDS, X as PERSISTENCE_PREVIEW_BYTES, X_ as Session, Xa as BUILTIN_ARTIFACT_KINDS, Xc as isToolAllowedByUnion, Xg as SpawnHookContext, Xh as isOAuthAccessToken, Xi as AgentOptions, Xn as HeadlessEvent, Xo as ExtensionStorageScope, Xp as ContextExactCounts, Xr as RunSummaryCollectorOptions, Xs as ExtensionConfigValueItem, Xt as EvalRunReporterOptions, Xv as mergeArtifact, Y as PERSISTED_STUB_PREFIX, Y_ as LoadSessionOptions, Yc as SkillValidationResult, Yg as SessionTurn, Yh as extractRuntimeCredentials, Yi as AgentHooks, Yn as HeadlessErrorInfo, Yo as ExtensionSource, Yp as ContextCategoryId, Yr as RunSummaryCollector, Ys as ExtensionConfigValue, Yt as EvalRunReporter, Yv as matchesArtifactFilter, Z as PersistInput, Z_ as SessionData, Za as artifactKindLabel, Zc as matchesAllowedTool, Zd as CustomField, Zg as StaleReadPolicy, Zh as readOAuthCredentials, Zi as McpConnector, Zl as InlineAutocompleteContext, Zm as classifyOpenAICompatError, Zn as HeadlessOptions, Zo as ExtensionStorageSurface, Zp as ContextExtensionRow, Zr as RunSummaryError, Zs as StoredExtensionConfigItem, Zt as EvalRunSummary, Zv as normalizeArtifactInput, _ as statsByModel, __ as TurnUsage, _a as ExtensionInstallResult, _c as SubagentRegistry, _f as AutoCompactInput, _g as CompactFunction, _i as CompactInvalidInputError, _l as parseSkillInstallSpec, _m as ProviderCapabilities, _n as TrajectoryStep, _o as ExtensionArtifactRow, _p as consoleSink, _r as waitTask, _s as ExtensionHudWriter, _t as EXTENSION_EDIT_METADATA_KEY, _u as resolveCompletionSubmit, _v as ORPHANED_TOOL_RESULT_MARKER, _y as originPinnedFetch, a as basicTools, a_ as ToolHookContext, aa as composeExtensionPreset, ac as resolveExtensionConfigValue, ag as refreshAnthropicToken, ai as PostCompactAttachments, al as interpolateShellCommands, am as CacheBreakLoggerOptions, an as EvalWorkspaceFile, ao as resolveArtifactKind, ap as StandardSchemaLike, as as ExtensionToolResultPatch, at as resolveLegacySessionDir, b as MutationValidationHooksOptions, b_ as toolResultToText, ba as InstallExtensionFromSpecOptions, bc as SpawnModelEntry, bf as shouldAutoCompact, bh as BasetenParams, bi as CompactDirection, bl as discoverSkills, bm as StreamOptions, bn as buildEvalRunSummary, bo as ExtensionBusEmitOptions, bp as createRingBufferSink, bs as ExtensionNotifyTone, bt as SKILL_EDIT_METADATA_KEY, bu as CommandArgSuggestion, bv as PairingRepair, by as ModelCatalogSource, c as StartSpan, c_ as ToolResultContent, cc as ChildAgent, cg as AgentBehavior, ci as buildPostCompactAttachments, cm as CacheDimensionSnapshot, cn as LlmJudgeOptions, co as ArtifactResolveOptions, cp as zodToJsonSchema, cs as ExtensionTuiSurface, ct as resolveSessionDir, cu as CompletionItem, cy as expandMcpConfigEnv, d as TracingHooksOptions, d_ as ToolResultImageContent, da as ExtensionFetchResult, dc as SpawnTaskOutcome, dg as AgentStats, dh as MistralParams, di as selectRecentFiles, dl as SkillInstallErrorCode, dm as fnv1a32, dn as MetricSpec, do as ExtensionApiVersion, dp as LogRecord, ds as LoadedPluginRecord, dt as SHELL_CASCADE_CANCEL_MESSAGE, du as CompletionSubmitContext, dv as createRemoteStore, dy as normalizeMcpServers, e_ as StreamProgressHookContext, ea as createAgent, ec as clampExtensionConfigNumber, ef as ProviderDescriptor, eg as writeOAuthCredentials, eh as mapOAIFinishReason, ei as RunSummaryValidation, el as validateResourcePathReal, em as ContextMcpGroup, en as EvalScore, er as HeadlessStatus, es as ExtensionToolRenderProps, et as buildPersistedStub, eu as createPathAutocompleteProvider, ev as SessionStore, ey as ConnectMcpServersOptions, f as createTracingHooks, f_ as ToolResultImageRefContent, fa as ExtensionInstallCandidate, fc as SpawnTool, fg as AutoCompact, fh as mistral, fi as CompactEndEvent, fl as SkillInstallOptions, fm as hashMessages, fn as MetricSpecMap, fo as ExtensionArtifactDetection, fp as LogSink, fr as runHeadless, fs as TuiContributions, ft as TOOL_USE_CANCELLED_MESSAGE, fv as createMemoryStore, fy as resolveTransportConfig, g as formatTokenUsage, g_ as TurnFinishReason, ga as ExtensionInstallProvenance, gc as SubagentOverride, gf as AutoCompactDecision, gg as CompactEndHookContext, gi as compactConversation, gl as listSkillCandidates, gm as Provider, gn as Trajectory, go as ExtensionArtifactRendererRegistration, gp as RingBufferSink, gs as ExtensionHudStatus, gt as renderStaleReadNotice, gv as EnsureToolResultPairingOptions, h as flattenTurns, h_ as ToolResultVideoContent, ha as ExtensionInstallIo, hc as SubagentDef, hf as AUTO_COMPACT_MIN_GROWTH_FRACTION, hh as local, hi as CompactStartEvent, hl as installSkillFromSpec, hm as HistoryRepair, hn as ReusableExecutionContext, hp as LoggingHooksOptions, hs as ExtensionHudState, ht as collectNewlyStaleReadPaths, hv as createFileMapStore, i as _default$1, ia as buildExtensionRegistry, ic as resolveExtensionConfig, ig as getOAuthProvider, ii as utf8ByteLength, il as InterpolateShellCommandsOptions, im as CacheBreakInfo, in as EvalVariantSummary, io as renderArtifactRow, ip as SchemaInput, is as ExtensionToolResultMetadataRegistration, it as resolveLegacyPersistDir, iy as connectMcpServers, j as MetricAttributes, j_ as readStateKey, ja as ExtensionScanEntry, jc as defaultPluginDataRoot, jg as ProgressNudgeKind, jh as applyAnthropicCacheBreakpoints, ji as CompactScope, jl as SkillActivationState, jm as SchemaSanitizeOptions, jn as emitEfficiencyMetrics, jo as ExtensionGuiPanel, js as ExtensionWorkspaceSurface, jt as withZidaneExtensionSkill, ju as CommandStepFn, jv as ensureEndsWithUserMessage, k as InstrumentOptions, k_ as hydrateReadStateFromSession, ka as registerExtensionHostModules, kc as validatePluginManifest, kg as ModelTargetSpec, ki as buildUpToCompactPrompt, kl as ActiveSkill, km as XaiParams, kn as defineMetrics, ko as ExtensionDefinition, kr as SkillsReadToolOptions, ks as ExtensionSessionsSurface, kt as readSkillEditMarker, ku as CommandStep, kv as detectTurnInterruption, l as TracingConventions, l_ as ToolResultDocumentContent, la as mergeContributions, lc as ExtensionSubagentDef, lh as openai, li as selectFilesFromReadState, ll as SkillInstallCandidate, lm as CacheDriftInfo, ln as MetricDirection, lo as EMPTY_EXTENSION_REGISTRY, lp as ConsoleSinkOptions, lr as headlessEventToJsonl, ls as GuiContributions, lt as resolveTasksDir, lu as CompletionProvider, m as TokenUsageLike, m_ as ToolResultTextContent, ma as ExtensionInstallErrorCode, mc as SpawnToolState, mg as CacheTtl, mh as LocalParams, mi as CompactResult, ml as SkillInstallSpec, mm as snapshotCacheDimensions, mn as RegisterEvalTestsOptions, mo as ExtensionArtifactQuery, mp as LoggingHookSet, ms as ExtensionHud, mt as applyCompactSummaryCutoff, mv as FileMapStoreOptions, n as composePresets, n_ as ThinkingDecay, na as ExtensionCatalogPartition, nc as isValidExtensionConfigItem, nh as openaiCompat, ni as BYTES_PER_TOKEN, nl as validateSkillName, nm as ContextUsageSplit, nn as EvalScorerContext, ns as ExtensionToolRendererEntry, nt as maybePersistToolResult, nu as resolveInlineSuggestion, ny as McpExecutionBinding, o as GEN_AI_ATTRIBUTES, o_ as ToolOutcome, oa as disposeExtensionRegistry, oc as sanitizeExtensionConfigActionPatch, og as refreshOpenAICodexToken, oh as OpenAIParams, oi as PostCompactRestoreOptions, ol as stripShellInterpolations, om as CacheDimensionDiff, on as EvalWorkspaceOptions, op as isStandardSchema, os as ExtensionToolResultTransform, ot as resolveMcpWarningsDir, ov as loadSession, p as ModelUsage, p_ as ToolResultMetadata, pa as ExtensionInstallError, pc as SpawnToolOptions, pg as AutoCompactConfig, pi as CompactOptions, pl as SkillInstallResult, pm as installCacheBreakLogger, pn as MetricStats, po as ExtensionArtifactKindRegistration, pp as Logger, pr as transcriptToOpenAIMessages, ps as ExtensionBannerOptions, pt as TOOL_USE_SKIPPED_MESSAGE, pv as FileMapAdapter, py as resultToString, q as OAuthCallbackResult, q_ as SkillsConfig, qa as ExtensionBusEnvelope, qc as writeSkillsToDisk, qg as SessionHookContext, qh as credentialsFilePath, qi as Agent, qo as ExtensionSessionStateSurface, qp as ContextBreakdownOptions, qr as RunSummaryBudget, qs as ExtensionConfigStringItem, qt as EvalMetricError, qv as SessionArtifact, r as definePreset, r_ as ThinkingLevel, ra as buildExtensionPreset, rc as isValidExtensionConfigValue, rg as getOAuthApiKey, ri as estimateTokens, rl as resolveSkills, rn as EvalTestRunner, ro as refreshArtifact, rp as InferSchemaOutput, rr as OpenAIChatMessage, rs as ExtensionToolRendererRegistration, rt as migrateSessionArtifactDirs, s as Span, s_ as ToolResultAudioContent, sa as filterExtensionRegistry, sc as toWireConfigSchema, sg as registerOAuthProvider, si as RecentFile, sm as CacheDimensionName, sn as EvalWorkspaceSnapshot, so as createArtifactDetectHook, sp as resolveSchemaInput, ss as ExtensionToolVerdict, st as resolvePersistDir, su as CompletionContext, sy as expandEnvPlaceholders, t as Preset, t_ as StreamUsageSnapshot, ta as BuildExtensionRegistryOptions, tc as coerceExtensionConfigInput, tg as OAuthProviderInterface, ti as createRunSummaryCollector, tl as validateSkillForWrite, tm as ContextSnapshot, tn as EvalScorer, tr as HeadlessUsage, ts as ExtensionToolRenderer, tt as cleanupPersistedSession, tu as patchInlineGhost, tv as createSession, ty as McpConnection, u as TracingHookSet, u_ as ToolResultDocumentRefContent, ua as partitionExtensionCatalog, uc as SpawnTaskInput, ug as AgentRunOptions, ui as selectFilesFromSession, ul as SkillInstallError, um as diffCacheDimensions, un as MetricEmitter, uo as ExtensionAgentPluginOptions, up as LogLevel, us as LoadedExtension, ut as INTERRUPT_MESSAGE_FOR_TOOL_USE, uu as CompletionReference, uv as RemoteStoreOptions, uy as normalizeMcpBlocks, v as MutationValidationBatch, v_ as toolOutputBudgetByteLength, va as ExtensionInstallScope, vc as createSpawnTool, vf as OUTPUT_RESERVE_TOKENS, vg as CompactHookContext, vh as CerebrasParams, vi as CompactPromptTooLongError, vl as readSkillProvenance, vm as ProviderMeta, vn as TrajectoryStepKind, vo as ExtensionArtifactsSurface, vp as createLogger, vr as ValidationResult, vs as ExtensionNotification, vt as EditSessionTarget, vu as Command, vv as PairingDrop, vy as ModelCatalog, w as createMutationValidationHooks, w_ as HydrateReadStateOptions, wa as listExtensionCandidates, wc as PLUGIN_SKILLS_DIR, wf as ConfirmQuestion, wh as arcee, wi as TRAILER, wl as parseSkillFile, wm as ToolSpec, wn as computeEvalTagScores, wo as ExtensionContext, ws as ExtensionHostRuntimeBridge, wt as buildZidaneExtensionSkill, wu as CommandInteraction, wv as SYNTHETIC_TOOL_RESULT_PLACEHOLDER, x as MutationValidationMutation, x_ as ToolContext, xa as InstalledExtensionTargetOptions, xc as createModelSearchTool, xg as DedupHasher, xh as baseten, xi as CompactPromptBuilder, xn as buildRegisteredEvals, xo as ExtensionBusMessage, xp as fanoutSink, xs as ExtensionStatusOptions, xt as SkillEditMarker, xu as CommandAttachment, xv as PairingRepairMode, xy as getModelCatalog, y as MutationValidationFailure, y_ as toolOutputByteLength, ya as ExtensionInstallSource, yc as isSpawnTool, yf as effectiveContextWindow, yg as CompactStartHookContext, yh as cerebras, yi as BASE_INSTRUCTIONS, yl as SourcedScanPath, ym as StreamCallbacks, yn as artifactPath, yo as ExtensionBehaviorTransform, yp as createLoggingHooks, yr as validateToolArgs, ys as ExtensionNotifyOptions, yt as ExtensionEditMarker, yu as CommandAgentResult, yv as PairingDropKind, yy as ModelCatalogEntry, z as McpCredentialEntry, z_ as createToolStateController, za as discoverAndBuildExtensionRegistry, zc as PluginManifest, zf as Question, zg as RepeatGuardConfig, zi as GenerateStructuredDataOptions, zn as formatTrajectoryLine, zo as ExtensionOrderedContribution, zp as ContextSegment, zs as ExtensionConfigCategory, zt as EvalAgentRunStats, zv as toAnthropic } from "./index-CfEJ5Vf9.js";
2
+ import { $ as SessionArtifactDirMigration, $_ as SessionRun, $c as validateResourcePath, $d as ModelOption, $g as StreamHookContext, $h as resolveOAuthApiKey, $i as McpToolWrap, $l as InlineGhost, $n as HeadlessResult, $o as ExtensionToolPolicy, $p as ContextItem, $r as RunSummaryTokens, $s as WireExtensionConfigSchema, $t as EvalRunUsage, $v as sortArtifacts, A as Meter, A_ as hydrateReadStateFromSessionAsync, Aa as ENTRY_CANDIDATES, Ac as PLUGIN_MANIFEST_FILE, Ag as OAuthRefreshHookContext, Ah as anthropic, Ai as ANCHOR_PREVIEW_MAX_CHARS, Al as DeactivationReason, Am as xai, An as efficiencyMetricValues, Ao as ExtensionFooterHint, Ar as createSkillsReadTool, As as ExtensionWorkspacePair, At as resolveExtensionDocsDir, Au as CommandStepContext, Av as dropInvalidToolPairings, B as McpCredentialStore, B_ as isToolStateOps, Ba as ExtensionPromptBridge, Bc as PluginSchemaKind, Bf as QuestionChoice, Bg as RepeatGuardToolMatcher, Bi as generateStructuredData, Bn as functionalityMetric, Bo as ExtensionPaths, Bp as ContextSegmentFile, Br as InteractionToolOptions, Bs as ExtensionConfigChangeBehavior, Bt as EvalAgentStats, Bv as toOpenAI, C as SuccessfulMutationOutcome, C_ as ToolMap, Ca as installExtensionFromSpec, Cc as matchModelEntries, Cf as AnswerValue, Cg as GeometricThinkingDecay, Ch as ArceeParams, Ci as NO_TOOLS_PREAMBLE, Cm as ToolResult, Cn as clearRegisteredEvals, Co as ExtensionCapability, Cs as ExtensionArtifactScope, Ct as ZIDANE_SKILL_EDIT_SKILL_NAME, Cu as CommandGenerateDataOptions, Cv as RemintResult, D as Counter, D_ as getReadState, Da as removeInstalledExtension, Dc as ManifestValidation, Dh as AnthropicParams, Di as buildFullCompactPrompt, Dl as installAllowedToolsGate, Dn as createReusableExecutionContext, Do as ExtensionCustomRenderer, Dr as SkillsRunScriptToolOptions, Ds as ExtensionRuntimeSurface, Dt as extensionDirForCwd, Du as CommandSpawnResult, Dv as TurnInterruptionState, E as resolveModelTargets, E_ as ReadStateMap, Ea as readExtensionInstallProvenance, Ec as expandPluginVars, Eg as McpToolHookContext, Ei as buildFromCompactPrompt, El as IMPLICITLY_ALLOWED_SKILL_TOOLS, En as createEvalRunReporter, Eo as ExtensionContributions, Er as createSkillsUseTool, Es as ExtensionModelEntry, Et as editSessionMetadata, Eu as CommandOutputBlock, Ev as ToWireMessagesOptions, F as createMetricsHooks, F_ as ToolStateController, Fa as isExtensionDefinition, Fc as LoadedPlugin, Ff as PlanPayload, Fg as PromptImagePart, Fi as sliceForCompaction, Fm as sanitizeToolSpecs, Fn as fileExistsOneOf, Fo as ExtensionManifest, Fs as ExtensionConfigActionItem, Ft as EvalAgent, Fu as executeCommand, Fv as fromOpenAI, G as OAuthCallbackHandle, G_ as SkillResource, Ga as ExtensionBus, Gc as defineSkill, Gf as SelectQuestion, Gg as SessionContentBlock, Gh as OAuthParams, Gi as localReliabilityBehavior, Gn as runEvalCase, Go as ExtensionRunTransform, Gp as ContextBreakdownContributionContext, Gr as RunSummary, Gs as ExtensionConfigNumberItem, Gt as EvalDefinitionContext, H as McpOAuthProviderOptions, H_ as ShellInterpolationApproval, Ha as createExtensionPromptBridge, Hc as agentPluginsSchemaId, Hg as ResolveContentRefBlock, Hi as defaultRepeatGuardTracked, Hm as OpenAICompatAuthHeader, Hn as normalizeMetric, Ho as ExtensionPromptTransform, Hp as ContextSegmentsInput, Hr as grep, Hs as ExtensionConfigItem, Ht as EvalCaseOptions, Hv as ARTIFACTS_METADATA_KEY, I as LoginMcpServerOptions, I_ as ToolStateOp, Ia as parseExtensionScanPathEnv, Ic as PluginAuthor, Ig as PromptPart, Ii as stripImagesFromTurns, Im as OpenRouterParams, In as finalizeEvalMetrics, Io as ExtensionMcpConfigTransform, Is as ExtensionConfigActionResult, It as EvalAgentMcpServers, Iu as parseCommandInvocation, Iv as reasoningWireAction, J as startOAuthCallback, J_ as CreateSessionOptions, Ja as createExtensionBus, Jc as SkillValidationIssue, Jg as SessionMessage, Jh as credentialsFromParams, Ji as AgentHookMap, Jo as ExtensionSkillPolicy, Jp as ContextCategory, Jr as RunSummaryByModel, Js as ExtensionConfigSurface, Jt as EvalRunMetricAggregate, Jv as SessionArtifactInput, K as OAuthCallbackOptions, K_ as SkillSource, Ka as ExtensionBusChannel, Kc as writeSkillToDisk, Kf as TextQuestion, Kg as SessionEndStatus, Kh as ResolveOAuthApiKeyOptions, Ki as _default, Kn as statusCompleted, Ko as ExtensionRuntimeEnv, Kp as ContextBreakdownContributor, Kr as RunSummaryBlock, Ks as ExtensionConfigScope, Kt as EvalMetric, Kv as ArtifactFilter, L as LoginMcpServerResult, L_ as ToolStateStore, La as scanExtensionDirectories, Lc as PluginComponentStatus, Lf as PlanResponse, Lg as PromptTextPart, Li as summaryToTurn, Ln as formatEvalCaseSummary, Lo as ExtensionModal, Ls as ExtensionConfigActionStatus, Lt as EvalAgentRunOptions, Lv as remintDuplicateToolCallIds, M as MetricsHookSet, M_ as resolveReadStateMap, Ma as defaultExtensionScanPaths, Mc as loadAgentPlugin, Mg as ProgressNudgeMessage, Mi as CompactionSlice, Ml as SkillActivationStateOptions, Mm as SchemaSanitizeProfile, Mn as fileContains, Mo as ExtensionGuiSurface, Mr as CreateShellToolOptions, Ms as createArtifactsSurface, Mt as withZidaneSkillEditSkill, Mu as commandBlockToEvent, Mv as ensureToolResultPairing, N as MetricsHooksOptions, N_ as DEFAULT_MAX_VALUE_BYTES, Na as discoverExtensions, Nc as AgentPluginsVersion, Ng as PromptAudioPart, Ni as SummaryToTurnInput, Nl as createSkillActivationState, Nm as SchemaSanitizeResult, Nn as fileContentQuality, No as ExtensionKeybinding, Nr as createShellTool, Ns as createExtensionHostRuntimeBridge, Nt as CreateEvalAgentOptions, Nu as commandBlocksToContent, Nv as filterUnresolvedToolUses, O as Histogram, O_ as hashContent, Oa as updateInstalledExtension, Oc as parsePluginManifest, Og as ModelTarget, Oi as buildTailCompactPrompt, Ol as ActivationVia, On as defineEval, Oo as ExtensionCustomRendererEntry, Or as createSkillsRunScriptTool, Os as ExtensionSessionSummary, Ot as extensionScaffold, Ou as CommandSpawnTask, Ov as autoDetectAndConvert, P as UpDownCounter, P_ as StagedToolState, Pa as inlineLoadedExtension, Pc as LoadAgentPluginOptions, Pg as PromptDocumentPart, Pi as anchorPreviewFor, Pm as sanitizeToolSchema, Pn as fileExists, Po as ExtensionKeybindingDispatchContext, Ps as createWorkspaceSurface, Pt as EFFICIENCY_METRICS, Pu as commandSteps, Pv as fromAnthropic, Q as PersistOutcome, Q_ as SessionMetaRow, Qc as parseAllowedToolPattern, Qd as ModelInfo, Qg as StepThinkingDecay, Qh as registerCustomOAuthProvider, Qi as McpToolMeta, Ql as InlineAutocompleteProvider, Qo as ExtensionToolCatalogTransform, Qp as ContextExtensionSection, Qr as RunSummaryRepeatGuard, Qs as WireExtensionConfigItem, Qt as EvalRunSummaryCase, Qv as selectArtifactEvictions, R as loginMcpServer, R_ as ToolStateView, Ra as DiscoverAndBuildExtensionRegistryOptions, Rc as PluginDiagnostic, Rg as PromptVideoPart, Ri as truncateHeadForPtlRetry, Rm as openrouter, Rn as formatEvalRunSummary, Ro as ExtensionModalNode, Rr as multiEdit, Rs as ExtensionConfigBooleanItem, Rt as EvalAgentRunResult, Rv as sanitizeHistoryForProvider, S as MutationValidationResult, S_ as ToolDef, Sa as fetchExtensionSource, Sc as formatModelLine, Sg as DedupToolConfig, Si as CompactPromptOptions, Sm as ToolCall, Sn as buildTrajectory, So as ExtensionBusSurface, Sp as jsonSink, Ss as createExtensionHud, St as ZIDANE_EXTENSION_SKILL_NAME, Su as CommandExecution, Sv as ReasoningWireAction, Sy as setModelCatalog, T as normalizeProviders, T_ as ReadStateEntry, Ta as parseExtensionInstallSource, Tc as PLUGIN_MCP_FILE, Tg as McpServerConfig, Ti as buildCompactPrompt, Tl as buildCatalog, Tm as TurnResult, Tn as createEvalAgent, To as ExtensionContextTransform, Tp as formatLogLine, Tr as SkillsUseToolOptions, Ts as ExtensionHostRuntimeImpl, Tt as buildZidaneSkillEditSkill, Tu as CommandInvocation, Tv as TOOL_USE_INTERRUPTED_MARKER, U as createMemoryMcpCredentialStore, U_ as SkillConfig, Ua as defineExtension, Uc as isSupportedAgentPluginsVersion, Ug as RetryConfig, Ui as normalizeShellCommand, Um as OpenAICompatHttpError, Un as registerEvalTests, Uo as ExtensionProviderMiddleware, Ur as glob, Us as ExtensionConfigItemBase, Ut as EvalCaseResult, Uv as ARTIFACTS_PER_SESSION_CAP, V as McpOAuthProvider, V_ as stagedToolState, Va as ExtensionPromptDelivery, Vc as SUPPORTED_AGENT_PLUGINS_VERSIONS, Vf as QuestionPayload, Vg as ResolveContentRef, Vi as defaultRepeatGuardNormalize, Vn as llmJudge, Vo as ExtensionPermission, Vp as ContextSegmentOrigin, Vr as createInteractionTool, Vs as ExtensionConfigEnumItem, Vt as EvalArtifacts, Vv as toWireMessages, W as hasAuthorizationHeader, W_ as SkillDiagnostic, Wa as EXTENSION_BUS_MAX_PAYLOAD_BYTES, Wc as parseSchemaId, Wg as RunHookMap, Wi as stableStringify, Wm as OpenAICompatParams, Wn as relativeArtifactPath, Wo as ExtensionRegistry, Wp as ContextBreakdown, Wr as edit, Ws as ExtensionConfigModelItem, Wt as EvalDefinition, Wv as ARTIFACT_KINDS, X as PERSISTENCE_PREVIEW_BYTES, X_ as Session, Xa as BUILTIN_ARTIFACT_KINDS, Xc as isToolAllowedByUnion, Xg as SpawnHookContext, Xh as isOAuthAccessToken, Xi as AgentOptions, Xn as HeadlessEvent, Xo as ExtensionStorageScope, Xp as ContextExactCounts, Xr as RunSummaryCollectorOptions, Xs as ExtensionConfigValueItem, Xt as EvalRunReporterOptions, Xv as mergeArtifact, Y as PERSISTED_STUB_PREFIX, Y_ as LoadSessionOptions, Yc as SkillValidationResult, Yg as SessionTurn, Yh as extractRuntimeCredentials, Yi as AgentHooks, Yn as HeadlessErrorInfo, Yo as ExtensionSource, Yp as ContextCategoryId, Yr as RunSummaryCollector, Ys as ExtensionConfigValue, Yt as EvalRunReporter, Yv as matchesArtifactFilter, Z as PersistInput, Z_ as SessionData, Za as artifactKindLabel, Zc as matchesAllowedTool, Zd as CustomField, Zg as StaleReadPolicy, Zh as readOAuthCredentials, Zi as McpConnector, Zl as InlineAutocompleteContext, Zm as classifyOpenAICompatError, Zn as HeadlessOptions, Zo as ExtensionStorageSurface, Zp as ContextExtensionRow, Zr as RunSummaryError, Zs as StoredExtensionConfigItem, Zt as EvalRunSummary, Zv as normalizeArtifactInput, _ as statsByModel, __ as TurnUsage, _a as ExtensionInstallResult, _c as SubagentRegistry, _f as AutoCompactInput, _g as CompactFunction, _i as CompactInvalidInputError, _l as parseSkillInstallSpec, _m as ProviderCapabilities, _n as TrajectoryStep, _o as ExtensionArtifactRow, _p as consoleSink, _r as waitTask, _s as ExtensionHudWriter, _t as EXTENSION_EDIT_METADATA_KEY, _u as resolveCompletionSubmit, _v as ORPHANED_TOOL_RESULT_MARKER, _y as originPinnedFetch, a as basicTools, a_ as ToolHookContext, aa as composeExtensionPreset, ac as resolveExtensionConfigValue, ag as refreshAnthropicToken, ai as PostCompactAttachments, al as interpolateShellCommands, am as CacheBreakLoggerOptions, an as EvalWorkspaceFile, ao as resolveArtifactKind, ap as StandardSchemaLike, as as ExtensionToolResultPatch, at as resolveLegacySessionDir, b as MutationValidationHooksOptions, b_ as toolResultToText, ba as InstallExtensionFromSpecOptions, bc as SpawnModelEntry, bf as shouldAutoCompact, bh as BasetenParams, bi as CompactDirection, bl as discoverSkills, bm as StreamOptions, bn as buildEvalRunSummary, bo as ExtensionBusEmitOptions, bp as createRingBufferSink, bs as ExtensionNotifyTone, bt as SKILL_EDIT_METADATA_KEY, bu as CommandArgSuggestion, bv as PairingRepair, by as ModelCatalogSource, c as StartSpan, c_ as ToolResultContent, cc as ChildAgent, cg as AgentBehavior, ci as buildPostCompactAttachments, cm as CacheDimensionSnapshot, cn as LlmJudgeOptions, co as ArtifactResolveOptions, cp as zodToJsonSchema, cs as ExtensionTuiSurface, ct as resolveSessionDir, cu as CompletionItem, cy as expandMcpConfigEnv, d as TracingHooksOptions, d_ as ToolResultImageContent, da as ExtensionFetchResult, dc as SpawnTaskOutcome, dg as AgentStats, dh as MistralParams, di as selectRecentFiles, dl as SkillInstallErrorCode, dm as fnv1a32, dn as MetricSpec, do as ExtensionApiVersion, dp as LogRecord, ds as LoadedPluginRecord, dt as SHELL_CASCADE_CANCEL_MESSAGE, du as CompletionSubmitContext, dv as createRemoteStore, dy as normalizeMcpServers, e_ as StreamProgressHookContext, ea as createAgent, ec as clampExtensionConfigNumber, ef as ProviderDescriptor, eg as writeOAuthCredentials, eh as mapOAIFinishReason, ei as RunSummaryValidation, el as validateResourcePathReal, em as ContextMcpGroup, en as EvalScore, er as HeadlessStatus, es as ExtensionToolRenderProps, et as buildPersistedStub, eu as createPathAutocompleteProvider, ev as SessionStore, ey as ConnectMcpServersOptions, f as createTracingHooks, f_ as ToolResultImageRefContent, fa as ExtensionInstallCandidate, fc as SpawnTool, fg as AutoCompact, fh as mistral, fi as CompactEndEvent, fl as SkillInstallOptions, fm as hashMessages, fn as MetricSpecMap, fo as ExtensionArtifactDetection, fp as LogSink, fr as runHeadless, fs as TuiContributions, ft as TOOL_USE_CANCELLED_MESSAGE, fv as createMemoryStore, fy as resolveTransportConfig, g as formatTokenUsage, g_ as TurnFinishReason, ga as ExtensionInstallProvenance, gc as SubagentOverride, gf as AutoCompactDecision, gg as CompactEndHookContext, gi as compactConversation, gl as listSkillCandidates, gm as Provider, gn as Trajectory, go as ExtensionArtifactRendererRegistration, gp as RingBufferSink, gs as ExtensionHudStatus, gt as renderStaleReadNotice, gv as EnsureToolResultPairingOptions, h as flattenTurns, h_ as ToolResultVideoContent, ha as ExtensionInstallIo, hc as SubagentDef, hf as AUTO_COMPACT_MIN_GROWTH_FRACTION, hh as local, hi as CompactStartEvent, hl as installSkillFromSpec, hm as HistoryRepair, hn as ReusableExecutionContext, hp as LoggingHooksOptions, hs as ExtensionHudState, ht as collectNewlyStaleReadPaths, hv as createFileMapStore, i as _default$1, ia as buildExtensionRegistry, ic as resolveExtensionConfig, ig as getOAuthProvider, ii as utf8ByteLength, il as InterpolateShellCommandsOptions, im as CacheBreakInfo, in as EvalVariantSummary, io as renderArtifactRow, ip as SchemaInput, is as ExtensionToolResultMetadataRegistration, it as resolveLegacyPersistDir, iy as connectMcpServers, j as MetricAttributes, j_ as readStateKey, ja as ExtensionScanEntry, jc as defaultPluginDataRoot, jg as ProgressNudgeKind, jh as applyAnthropicCacheBreakpoints, ji as CompactScope, jl as SkillActivationState, jm as SchemaSanitizeOptions, jn as emitEfficiencyMetrics, jo as ExtensionGuiPanel, js as ExtensionWorkspaceSurface, jt as withZidaneExtensionSkill, ju as CommandStepFn, jv as ensureEndsWithUserMessage, k as InstrumentOptions, k_ as hydrateReadStateFromSession, ka as registerExtensionHostModules, kc as validatePluginManifest, kg as ModelTargetSpec, ki as buildUpToCompactPrompt, kl as ActiveSkill, km as XaiParams, kn as defineMetrics, ko as ExtensionDefinition, kr as SkillsReadToolOptions, ks as ExtensionSessionsSurface, kt as readSkillEditMarker, ku as CommandStep, kv as detectTurnInterruption, l as TracingConventions, l_ as ToolResultDocumentContent, la as mergeContributions, lc as ExtensionSubagentDef, lh as openai, li as selectFilesFromReadState, ll as SkillInstallCandidate, lm as CacheDriftInfo, ln as MetricDirection, lo as EMPTY_EXTENSION_REGISTRY, lp as ConsoleSinkOptions, lr as headlessEventToJsonl, ls as GuiContributions, lt as resolveTasksDir, lu as CompletionProvider, m as TokenUsageLike, m_ as ToolResultTextContent, ma as ExtensionInstallErrorCode, mc as SpawnToolState, mg as CacheTtl, mh as LocalParams, mi as CompactResult, ml as SkillInstallSpec, mm as snapshotCacheDimensions, mn as RegisterEvalTestsOptions, mo as ExtensionArtifactQuery, mp as LoggingHookSet, ms as ExtensionHud, mt as applyCompactSummaryCutoff, mv as FileMapStoreOptions, n as composePresets, n_ as ThinkingDecay, na as ExtensionCatalogPartition, nc as isValidExtensionConfigItem, nh as openaiCompat, ni as BYTES_PER_TOKEN, nl as validateSkillName, nm as ContextUsageSplit, nn as EvalScorerContext, ns as ExtensionToolRendererEntry, nt as maybePersistToolResult, nu as resolveInlineSuggestion, ny as McpExecutionBinding, o as GEN_AI_ATTRIBUTES, o_ as ToolOutcome, oa as disposeExtensionRegistry, oc as sanitizeExtensionConfigActionPatch, og as refreshOpenAICodexToken, oh as OpenAIParams, oi as PostCompactRestoreOptions, ol as stripShellInterpolations, om as CacheDimensionDiff, on as EvalWorkspaceOptions, op as isStandardSchema, os as ExtensionToolResultTransform, ot as resolveMcpWarningsDir, ov as loadSession, p as ModelUsage, p_ as ToolResultMetadata, pa as ExtensionInstallError, pc as SpawnToolOptions, pg as AutoCompactConfig, pi as CompactOptions, pl as SkillInstallResult, pm as installCacheBreakLogger, pn as MetricStats, po as ExtensionArtifactKindRegistration, pp as Logger, pr as transcriptToOpenAIMessages, ps as ExtensionBannerOptions, pt as TOOL_USE_SKIPPED_MESSAGE, pv as FileMapAdapter, py as resultToString, q as OAuthCallbackResult, q_ as SkillsConfig, qa as ExtensionBusEnvelope, qc as writeSkillsToDisk, qg as SessionHookContext, qh as credentialsFilePath, qi as Agent, qo as ExtensionSessionStateSurface, qp as ContextBreakdownOptions, qr as RunSummaryBudget, qs as ExtensionConfigStringItem, qt as EvalMetricError, qv as SessionArtifact, r as definePreset, r_ as ThinkingLevel, ra as buildExtensionPreset, rc as isValidExtensionConfigValue, rg as getOAuthApiKey, ri as estimateTokens, rl as resolveSkills, rn as EvalTestRunner, ro as refreshArtifact, rp as InferSchemaOutput, rr as OpenAIChatMessage, rs as ExtensionToolRendererRegistration, rt as migrateSessionArtifactDirs, s as Span, s_ as ToolResultAudioContent, sa as filterExtensionRegistry, sc as toWireConfigSchema, sg as registerOAuthProvider, si as RecentFile, sm as CacheDimensionName, sn as EvalWorkspaceSnapshot, so as createArtifactDetectHook, sp as resolveSchemaInput, ss as ExtensionToolVerdict, st as resolvePersistDir, su as CompletionContext, sy as expandEnvPlaceholders, t as Preset, t_ as StreamUsageSnapshot, ta as BuildExtensionRegistryOptions, tc as coerceExtensionConfigInput, tg as OAuthProviderInterface, ti as createRunSummaryCollector, tl as validateSkillForWrite, tm as ContextSnapshot, tn as EvalScorer, tr as HeadlessUsage, ts as ExtensionToolRenderer, tt as cleanupPersistedSession, tu as patchInlineGhost, tv as createSession, ty as McpConnection, u as TracingHookSet, u_ as ToolResultDocumentRefContent, ua as partitionExtensionCatalog, uc as SpawnTaskInput, ug as AgentRunOptions, ui as selectFilesFromSession, ul as SkillInstallError, um as diffCacheDimensions, un as MetricEmitter, uo as ExtensionAgentPluginOptions, up as LogLevel, us as LoadedExtension, ut as INTERRUPT_MESSAGE_FOR_TOOL_USE, uu as CompletionReference, uv as RemoteStoreOptions, uy as normalizeMcpBlocks, v as MutationValidationBatch, v_ as toolOutputBudgetByteLength, va as ExtensionInstallScope, vc as createSpawnTool, vf as OUTPUT_RESERVE_TOKENS, vg as CompactHookContext, vh as CerebrasParams, vi as CompactPromptTooLongError, vl as readSkillProvenance, vm as ProviderMeta, vn as TrajectoryStepKind, vo as ExtensionArtifactsSurface, vp as createLogger, vr as ValidationResult, vs as ExtensionNotification, vt as EditSessionTarget, vu as Command, vv as PairingDrop, vy as ModelCatalog, w as createMutationValidationHooks, w_ as HydrateReadStateOptions, wa as listExtensionCandidates, wc as PLUGIN_SKILLS_DIR, wf as ConfirmQuestion, wh as arcee, wi as TRAILER, wl as parseSkillFile, wm as ToolSpec, wn as computeEvalTagScores, wo as ExtensionContext, ws as ExtensionHostRuntimeBridge, wt as buildZidaneExtensionSkill, wu as CommandInteraction, wv as SYNTHETIC_TOOL_RESULT_PLACEHOLDER, x as MutationValidationMutation, x_ as ToolContext, xa as InstalledExtensionTargetOptions, xc as createModelSearchTool, xg as DedupHasher, xh as baseten, xi as CompactPromptBuilder, xn as buildRegisteredEvals, xo as ExtensionBusMessage, xp as fanoutSink, xs as ExtensionStatusOptions, xt as SkillEditMarker, xu as CommandAttachment, xv as PairingRepairMode, xy as getModelCatalog, y as MutationValidationFailure, y_ as toolOutputByteLength, ya as ExtensionInstallSource, yc as isSpawnTool, yf as effectiveContextWindow, yg as CompactStartHookContext, yh as cerebras, yi as BASE_INSTRUCTIONS, yl as SourcedScanPath, ym as StreamCallbacks, yn as artifactPath, yo as ExtensionBehaviorTransform, yp as createLoggingHooks, yr as validateToolArgs, ys as ExtensionNotifyOptions, yt as ExtensionEditMarker, yu as CommandAgentResult, yv as PairingDropKind, yy as ModelCatalogEntry, z as McpCredentialEntry, z_ as createToolStateController, za as discoverAndBuildExtensionRegistry, zc as PluginManifest, zf as Question, zg as RepeatGuardConfig, zi as GenerateStructuredDataOptions, zn as formatTrajectoryLine, zo as ExtensionOrderedContribution, zp as ContextSegment, zs as ExtensionConfigCategory, zt as EvalAgentRunStats, zv as toAnthropic } from "./index-C4mY0oKE.js";
3
3
  import { _ as TaskHandle, a as ContextType, c as ExecutionContext, d as ListFilesEntry, f as ListFilesOptions, g as TaskExitInfo, h as TaskEntry, i as ContextMount, l as ExecutionHandle, m as StreamHandle, n as ContextCapabilities, o as DetachedTasksCapability, p as SpawnConfig, r as ContextHardening, s as ExecResult, t as BackgroundTaskStatus, u as ListFileMetadata, v as TaskStallInfo, y as resolveDetachedTasksCapability } from "./types-U-rIVUDw.js";
4
4
  import { t as createProcessContext } from "./index-B6FkK6ZN.js";
5
5
  import { n as createSandboxContext, t as SandboxProvider } from "./sandbox-CDl9tfTo.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-cIeLSED_.js";
2
2
  import { c as toolOutputBudgetByteLength, l as toolOutputByteLength, u as toolResultToText } from "./types-CWgENVLY.js";
3
- import { $ as installExtensionFromSpec, $n as defaultRepeatGuardTracked, A as selectFilesFromSession, An as resolveExtensionConfig, At as createSkillsRunScriptTool, B as buildUpToCompactPrompt, Bt as formatModelLine, C as resolveLegacySessionDir, D as resolveTasksDir, Dn as coerceExtensionConfigInput, Dt as isSpawnTool, E as resolveSessionDir, En as clampExtensionConfigNumber, Et as createSpawnTool, F as TRAILER, Fn as createExtensionBus, G as summaryToTurn, Gn as renderArtifactRow, Gt as glob, H as anchorPreviewFor, I as buildCompactPrompt, J as CompactPromptTooLongError, Jn as AUTO_COMPACT_MIN_GROWTH_FRACTION, Jt as artifacts_default, K as truncateHeadForPtlRetry, Kn as resolveArtifactKind, Kt as edit, L as buildFromCompactPrompt, Ln as BUILTIN_ARTIFACT_KINDS, M as compactConversation, Mn as sanitizeExtensionConfigActionPatch, N as BASE_INSTRUCTIONS, Nn as toWireConfigSchema, Nt as createShellTool, O as buildPostCompactAttachments, On as isValidExtensionConfigItem, P as NO_TOOLS_PREAMBLE, Pn as EXTENSION_BUS_MAX_PAYLOAD_BYTES, Q as fetchExtensionSource, Qn as defaultRepeatGuardNormalize, R as buildFullCompactPrompt, Rn as artifactKindLabel, Rt as multiEdit, S as resolveLegacyPersistDir, Sn as scanExtensionDirectories, T as resolvePersistDir, Tn as defineExtension, U as sliceForCompaction, Ut as createInteractionTool, V as ANCHOR_PREVIEW_MAX_CHARS, Vt as matchModelEntries, W as stripImagesFromTurns, Wn as refreshArtifact, Wt as grep, X as createExtensionPromptBridge, Xn as effectiveContextWindow, Y as EMPTY_EXTENSION_REGISTRY, Yn as OUTPUT_RESERVE_TOKENS, Z as ExtensionInstallError, Zn as shouldAutoCompact, _ as buildPersistedStub, _n as defaultExtensionScanPaths, _t as createWorkspaceSurface, a as stagedToolState, ar as hydrateReadStateFromSessionAsync, at as createExtensionHud, b as migrateSessionArtifactDirs, bn as isExtensionDefinition, bt as basicTools, c as INTERRUPT_MESSAGE_FOR_TOOL_USE, ct as buildExtensionRegistry, d as TOOL_USE_SKIPPED_MESSAGE, dt as filterExtensionRegistry, er as normalizeShellCommand, et as listExtensionCandidates, f as applyCompactSummaryCutoff, g as PERSISTENCE_PREVIEW_BYTES, gn as ENTRY_CANDIDATES, gt as createExtensionHostRuntimeBridge, h as PERSISTED_STUB_PREFIX, hn as registerExtensionHostModules, ht as createArtifactsSurface, i as isToolStateOps, ir as hydrateReadStateFromSession, it as updateInstalledExtension, j as selectRecentFiles, jn as resolveExtensionConfigValue, jt as createSkillsReadTool, k as selectFilesFromReadState, kn as isValidExtensionConfigValue, kt as createSkillsUseTool, l as SHELL_CASCADE_CANCEL_MESSAGE, lt as composeExtensionPreset, m as renderStaleReadNotice, mt as partitionExtensionCatalog, n as DEFAULT_MAX_VALUE_BYTES, nr as getReadState, nt as readExtensionInstallProvenance, o as normalizeProviders, or as readStateKey, ot as discoverAndBuildExtensionRegistry, p as collectNewlyStaleReadPaths, pt as mergeContributions, q as CompactInvalidInputError, qn as createArtifactDetectHook, qt as validateToolArgs, r as createToolStateController, rr as hashContent, rt as removeInstalledExtension, s as resolveModelTargets, sr as resolveReadStateMap, st as buildExtensionPreset, t as createAgent, tr as stableStringify, tt as parseExtensionInstallSource, u as TOOL_USE_CANCELLED_MESSAGE, ut as disposeExtensionRegistry, v as cleanupPersistedSession, vn as discoverExtensions, vt as composePresets, w as resolveMcpWarningsDir, wt as waitTask, xn as parseExtensionScanPathEnv, xt as basic_default, y as maybePersistToolResult, yn as inlineLoadedExtension, yt as definePreset, z as buildTailCompactPrompt, zt as createModelSearchTool } from "./agent-Djzx-1kD.js";
3
+ import { $ as installExtensionFromSpec, $n as defaultRepeatGuardTracked, A as selectFilesFromSession, An as resolveExtensionConfig, At as createSkillsRunScriptTool, B as buildUpToCompactPrompt, Bt as formatModelLine, C as resolveLegacySessionDir, D as resolveTasksDir, Dn as coerceExtensionConfigInput, Dt as isSpawnTool, E as resolveSessionDir, En as clampExtensionConfigNumber, Et as createSpawnTool, F as TRAILER, Fn as createExtensionBus, G as summaryToTurn, Gn as renderArtifactRow, Gt as glob, H as anchorPreviewFor, I as buildCompactPrompt, J as CompactPromptTooLongError, Jn as AUTO_COMPACT_MIN_GROWTH_FRACTION, Jt as artifacts_default, K as truncateHeadForPtlRetry, Kn as resolveArtifactKind, Kt as edit, L as buildFromCompactPrompt, Ln as BUILTIN_ARTIFACT_KINDS, M as compactConversation, Mn as sanitizeExtensionConfigActionPatch, N as BASE_INSTRUCTIONS, Nn as toWireConfigSchema, Nt as createShellTool, O as buildPostCompactAttachments, On as isValidExtensionConfigItem, P as NO_TOOLS_PREAMBLE, Pn as EXTENSION_BUS_MAX_PAYLOAD_BYTES, Q as fetchExtensionSource, Qn as defaultRepeatGuardNormalize, R as buildFullCompactPrompt, Rn as artifactKindLabel, Rt as multiEdit, S as resolveLegacyPersistDir, Sn as scanExtensionDirectories, T as resolvePersistDir, Tn as defineExtension, U as sliceForCompaction, Ut as createInteractionTool, V as ANCHOR_PREVIEW_MAX_CHARS, Vt as matchModelEntries, W as stripImagesFromTurns, Wn as refreshArtifact, Wt as grep, X as createExtensionPromptBridge, Xn as effectiveContextWindow, Y as EMPTY_EXTENSION_REGISTRY, Yn as OUTPUT_RESERVE_TOKENS, Z as ExtensionInstallError, Zn as shouldAutoCompact, _ as buildPersistedStub, _n as defaultExtensionScanPaths, _t as createWorkspaceSurface, a as stagedToolState, ar as hydrateReadStateFromSessionAsync, at as createExtensionHud, b as migrateSessionArtifactDirs, bn as isExtensionDefinition, bt as basicTools, c as INTERRUPT_MESSAGE_FOR_TOOL_USE, ct as buildExtensionRegistry, d as TOOL_USE_SKIPPED_MESSAGE, dt as filterExtensionRegistry, er as normalizeShellCommand, et as listExtensionCandidates, f as applyCompactSummaryCutoff, g as PERSISTENCE_PREVIEW_BYTES, gn as ENTRY_CANDIDATES, gt as createExtensionHostRuntimeBridge, h as PERSISTED_STUB_PREFIX, hn as registerExtensionHostModules, ht as createArtifactsSurface, i as isToolStateOps, ir as hydrateReadStateFromSession, it as updateInstalledExtension, j as selectRecentFiles, jn as resolveExtensionConfigValue, jt as createSkillsReadTool, k as selectFilesFromReadState, kn as isValidExtensionConfigValue, kt as createSkillsUseTool, l as SHELL_CASCADE_CANCEL_MESSAGE, lt as composeExtensionPreset, m as renderStaleReadNotice, mt as partitionExtensionCatalog, n as DEFAULT_MAX_VALUE_BYTES, nr as getReadState, nt as readExtensionInstallProvenance, o as normalizeProviders, or as readStateKey, ot as discoverAndBuildExtensionRegistry, p as collectNewlyStaleReadPaths, pt as mergeContributions, q as CompactInvalidInputError, qn as createArtifactDetectHook, qt as validateToolArgs, r as createToolStateController, rr as hashContent, rt as removeInstalledExtension, s as resolveModelTargets, sr as resolveReadStateMap, st as buildExtensionPreset, t as createAgent, tr as stableStringify, tt as parseExtensionInstallSource, u as TOOL_USE_CANCELLED_MESSAGE, ut as disposeExtensionRegistry, v as cleanupPersistedSession, vn as discoverExtensions, vt as composePresets, w as resolveMcpWarningsDir, wt as waitTask, xn as parseExtensionScanPathEnv, xt as basic_default, y as maybePersistToolResult, yn as inlineLoadedExtension, yt as definePreset, z as buildTailCompactPrompt, zt as createModelSearchTool } from "./agent-LC2c1ue-.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-DzzhE2YO.js";
5
5
  import { n as estimateTokens, r as utf8ByteLength, t as BYTES_PER_TOKEN } from "./utils-ngQzYzZD.js";
6
6
  import { r as createProcessContext, t as resolveDetachedTasksCapability } from "./contexts-BSFQVclW.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 { n as anthropic, r as applyAnthropicCacheBreakpoints } from "./anthropic-DATE-m9f.js";
27
- import { a as readOAuthCredentials, c as writeOAuthCredentials, d as getOAuthProvider, f as refreshAnthropicToken, i as isOAuthAccessToken, m as registerOAuthProvider, n as credentialsFromParams, o as registerCustomOAuthProvider, p as refreshOpenAICodexToken, r as extractRuntimeCredentials, s as resolveOAuthApiKey, t as credentialsFilePath, u as getOAuthApiKey } from "./oauth-D-LZ4ic-.js";
26
+ import { n as anthropic, r as applyAnthropicCacheBreakpoints } from "./anthropic-BSbDiW0J.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-CmtlmCzi.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-Bjdvmpfu.js";
31
+ import { r as mistral } from "./providers-ZucqgwU7.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-PJyiSRCp.js";
2
- import { d as defaultSocketPath, o as connectOrSpawnDaemon } from "./server-Cccx5jES.js";
2
+ import { d as defaultSocketPath, o as connectOrSpawnDaemon } from "./server-HZdjqDpS.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-B4p0P2tz.js.map
331
+ //# sourceMappingURL=ipc-Oro3uyMP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipc-B4p0P2tz.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":";;;;;AAsBA,MAAM,MAAM;AACZ,MAAM,OAAO;AACb,MAAM,OAAO;AACb,MAAM,SAAS;AACf,MAAM,MAAM;AACZ,MAAM,QAAQ;AAqBd,eAAsB,UAAU,UAAyB,CAAC,GAAkB;CAC1E,MAAM,MAAM,QAAQ,UAAU,QAAQ;CACtC,MAAM,SAAS,SAAuB,KAAK,IAAI,MAAM,IAAI;CACzD,MAAM,MAAM,QAAQ,OAAO,QAAQ,IAAI;CAEvC,MAAM,gBAAqC;EACzC,YAAY,QAAQ,cAAc,kBAAkB;EACpD,GAAI,QAAQ,eAAe,EAAE,cAAc,QAAQ,aAAa,IAAI,CAAC;CACvE;CAMA,IAAI,UAA2C;CAI/C,MAAM,SAAS,MAAM,qBAAqB;EACxC,GAAG;EACH,GAAI,QAAQ,aAAa,EAAE,YAAY,QAAQ,WAAW,IAAI,CAAC;EAC/D,eAAe;GACb,MAAM,KAAK,IAAI,wBAAwB,MAAM,GAAG;GAChD,0BAAU,IAAI,MAAM,wBAAwB,CAAC;EAC/C;CACF,CAAC;CAED,MAAM,GAAG,IAAI,kCAAkC,OAAO,MAAM,IAAI,KAAK,OAAO,MAAM,WAAW,GAAG,MAAM,GAAG;CAEzG,MAAM,KAAK,gBAAgB;EACzB,OAAQ,QAAQ,SAAS,QAAQ;EACjC,QAAQ;EACR,QAAQ,GAAG,KAAK,IAAI;CACtB,CAAC;CAQD,IAAI,aAAgC;CACpC,IAAI,aAA8C;;CAElD,MAAM,aAAuB,CAAC;CAE9B,GAAG,GAAG,SAAS,SAAS;EACtB,IAAI,YAAY;GACd,MAAM,OAAO;GACb,aAAa;GACb,KAAK,QAAQ,IAAI;GACjB;EACF;EACA,IAAI,YACF,WAAW,IAAI;OAEf,WAAW,KAAK,IAAI;CACxB,CAAC;CAED,MAAM,OAAO,WAAoC;EAC/C,MAAM,MAAM;EACZ,OAAO,IAAI,SAAiB,YAAY;GACtC,aAAa,EAAE,QAAQ;EACzB,CAAC;CACH;CAUA,IAAI,YAA2B,QAAQ,QAAQ;CAU/C,MAAM,gCAAgB,IAAI,IAAY;CACtC,MAAM,kCAAkB,IAAI,IAAY;CAExC,MAAM,eAAe,WAAmB,SAAoC;EAC1E,IAAI,cAAc,IAAI,SAAS,KAAK,gBAAgB,IAAI,SAAS,GAC/D;EACF,cAAc,IAAI,SAAS;EAC3B,YAAY,UAAU,KAAK,YAAY;GAErC,IAAI,gBAAgB,IAAI,SAAS,GAC/B;GACF,MAAM,KAAK;EACb,SAAS,KAAA,CAAS;CACpB;CAEA,MAAM,UAAU,MAAM,YAAY,QAAQ;EAAE;EAAK;EAAO;EAAK,GAAG;CAAQ,CAAC;CACzE,IAAI,CAAC,SAAS;EACZ,GAAG,MAAM;EACT,OAAO,MAAM;EACb;CACF;CAEA,MAAM,GAAG,KAAK,SAAS,MAAM,GAAG,QAAQ,GAAG,GAAG,IAAI,GAAG,QAAQ,MAAM,GAAG,MAAM,GAAG;CAC/E,MAAM,GAAG,IAAI,eAAe,QAAQ,IAAI,gEAAgE,MAAM,KAAK;CAQnH,MAAM,kBAAgC,CAAC;CACvC,IAAI,cAA2C,MAAK,gBAAgB,KAAK,CAAC;CAC1E,MAAM,cAAc,OAAO,UAAS,MAAK,WAAW,CAAC,CAAC;CAEtD,MAAM,iBAAiB,QAAQ,QAAQ,IAAI,KAAK;CAEhD,IAAI,UAAU,MAAM,OAAO,QAAQ,kBAAkB,EAAE,WAAW,QAAQ,GAAG,CAAC;CAC9E,IAAI,SACF,MAAM,GAAG,IAAI,mDAAmD,MAAM,GAAG;CAM3E,IAAI,gBAA4C;;;;;;;;;CAUhD,MAAM,4BAAY,IAAI,IAAoB;CAE1C,MAAM,eAAe,UAA6B;EAChD,QAAQ,MAAM,MAAd;GACE,KAAK,eAAe;IAClB,MAAM,cAAc,UAAU,IAAI,MAAM,IAAI,KAAK;IACjD,IAAI,cAAc,GAAG;KACnB,IAAI,gBAAgB,GAClB,UAAU,OAAO,MAAM,IAAI;UAE3B,UAAU,IAAI,MAAM,MAAM,cAAc,CAAC;KAC3C;IACF;IACA,MAAM,KAAK,KAAK,IAAI,MAAM,OAAO,MAAM,GAAG;IAC1C;GACF;GACA,KAAK;IACH,IAAI,kBAAkB,cAAc,kBAAkB,MACpD,MAAM,IAAI;IACZ,MAAM,MAAM,IAAI;IAChB;GACF,KAAK;IAEH,IAAI,kBAAkB,YACpB,MAAM,GAAG,IAAI,aAAa,MAAM,GAAG;IACrC;GACF,KAAK;IACH,MAAM,KAAK,KAAK,IAAI,MAAM,OAAO,MAAM,GAAG;IAC1C;GACF,KAAK;IACH,MAAM,GAAG,MAAM,UAAU,MAAM,MAAM,CAAC,IAAI,MAAM,GAAG;IACnD;GACF,KAAK;GACL,KAAK;IACH,MAAM,GAAG,MAAM,MAAM,OAAO,MAAM,GAAG;IACrC;GACF,KAAK;IACH,MAAM,GAAG,MAAM,MAAM,OAAO,MAAM,GAAG;IACrC;GACF,SACE;EACJ;EACA,gBAAgB,MAAM;CACxB;CAEA,MAAM,iBAAiB,OAAO,YAAgD;EAC5E,MAAM,KAAK,OAAO,iBAAiB,MAAM,KAAK,OAAO,QAAQ,OAAO,MAAM,GAAG;EAC7E,MAAM,GAAG,MAAM,UAAU,KAAK,UAAU,QAAQ,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,MAAM,GAAG;EAChF,MAAM,SAAS,MAAM,IAAI,GAAG,OAAO,uDAAuD,OAAO;EACjG,MAAM,WACF,OAAO,KAAK,CAAC,CAAC,YAAY,MAAM,MAC9B,gBACA,OAAO,KAAK,CAAC,CAAC,YAAY,MAAM,MAC9B,mBACA,OAAO,KAAK,CAAC,CAAC,YAAY,MAAM,MAC9B,oBACA;EACV,MAAM,OAAO,QAAQ,qBAAqB;GAAE,WAAW,QAAQ;GAAI;EAAS,CAAC;CAC/E;CAEA,MAAM,oBAAoB,OAAO,YAA+C;EAC9E,IAAI,QAAQ,SAAS,QAAQ;GAC3B,MAAM,KAAK,OAAO,OAAO,MAAM,GAAG,OAAO,QAAQ,QAAQ,QAAQ,MAAM,IAAI,QAAQ,QAAQ,KAAK,GAAG;GAEnG,MAAM,KAAI,MADW,IAAI,GAAG,OAAO,kDAAkD,OAAO,EAAA,CAC3E,KAAK,CAAC,CAAC,YAAY;GACpC,IAAI,MAAM,KAAK;IACb,MAAM,UAAU,MAAM,IAAI,WAAW;IACrC,MAAM,OAAO,QAAQ,wBAAwB;KAC3C,WAAW,QAAQ;KACnB,UAAU;MAAE,MAAM;MAAQ,UAAU;MAAU;KAAQ;IACxD,CAAC;IACD;GACF;GACA,MAAM,OAAO,QAAQ,wBAAwB;IAC3C,WAAW,QAAQ;IACnB,UAAU;KAAE,MAAM;KAAQ,UAAU,MAAM,MAAM,YAAY;IAAS;GACvE,CAAC;GACD;EACF;EAEA,IAAI,QAAQ,QAAQ,OAClB,MAAM,KAAK,QAAQ,QAAQ,MAAM,GAAG;EACtC,MAAM,UAAuC,CAAC;EAC9C,KAAK,MAAM,YAAY,QAAQ,QAAQ,WAAW;GAChD,IAAI,SAAS,SAAS,WAAW;IAC/B,MAAM,SAAS,MAAM,IAAI,GAAG,SAAS,SAAS,SAAS,MAAM,SAAS;IACtE,QAAQ,SAAS,MAAM,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,GAAG;IACjE;GACF;GACA,IAAI,SAAS,SAAS,UAAU;IAC9B,MAAM,GAAG,SAAS,SAAS,SAAS,MAAM,GAAG;IAC7C,SAAS,QAAQ,SAAS,QAAQ,MAAM,MAAM,KAAK,IAAI,EAAE,IAAI,OAAO,MAAM,GAAG,CAAC;IAE9E,MAAM,SAAQ,MADO,IAAI,SAAS,QAAQ,qCAAqC,iBAAiB,EAAA,CAE7F,MAAM,GAAG,CAAC,CACV,KAAI,SAAQ,SAAS,QAAQ,OAAO,SAAS,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACvE,QAAQ,OAAqB,OAAO,OAAO,QAAQ;IACtD,QAAQ,SAAS,MAAM,SAAS,QAAQ,QAAS,MAAM,MAAM;IAC7D;GACF;GACA,QAAQ,SAAS,MAAM,MAAM,IAAI,GAAG,SAAS,SAAS,SAAS,MAAM,GAAG;EAC1E;EACA,MAAM,OAAO,QAAQ,wBAAwB;GAC3C,WAAW,QAAQ;GACnB,UAAU;IAAE,MAAM;IAAY;GAAQ;EACxC,CAAC;CACH;CAEA,MAAM,YAAY,WAA6B;EAI7C,IAAI,OAAO,SAAS,uBAAuB,OAAO,SAAS,wBAAwB;GACjF,gBAAgB,IAAI,OAAO,SAAS;GACpC;EACF;EAEA,IAAI,OAAO,SAAS,oBAAoB;GAGtC,IAAI,OAAO,QAAQ,cAAc,QAAQ,IACvC,YAAY,OAAO,QAAQ,UAAU,eAAe,OAAO,OAAO,CAAC;GACrE;EACF;EAEA,IAAI,eAAe,UAAU,OAAO,cAAc,QAAQ,IACxD;EAEF,QAAQ,OAAO,MAAf;GACE,KAAK;IACH,UAAU;IACV,gBAAgB;IAChB;GACF,KAAK;IACH,UAAU;IACV,MAAM,OAAO,KAAK,OAAO,KAAK,IAAI,cAAc,OAAO,SAAS,kBAAkB,MAAM,GAAG;IAC3F,IAAI,CAAC,YACH,GAAG,OAAO;IACZ;GACF,KAAK;IACH,YAAY,OAAO,KAAK;IACxB;GACF,KAAK;IACH,MAAM,GAAG,IAAI,aAAa,MAAM,GAAG;IACnC;GACF,KAAK;IACH,YAAY,OAAO,QAAQ,UAAU,kBAAkB,OAAO,OAAO,CAAC;IACtE;GACF,SACE;EACJ;CACF;CAKA,KAAK,MAAM,WAAW,MAAM,OAAO,QAAQ,yBAAyB,CAAC,CAAC,GACpE,IAAI,QAAQ,cAAc,QAAQ,IAChC,YAAY,QAAQ,UAAU,eAAe,OAAO,CAAC;CAEzD,KAAK,MAAM,WAAW,MAAM,OAAO,QAAQ,qBAAqB,EAAE,WAAW,QAAQ,GAAG,CAAC,GACvF,IAAI,QAAQ,MACV,YAAY,QAAQ,QAAQ,UAAU,kBAAkB,QAAQ,OAAO,CAAC;CAK5E,aAAa;CACb,KAAK,MAAM,YAAY,gBAAgB,OAAO,CAAC,GAC7C,SAAS,QAAQ;CAMnB,MAAM,eAAqB;EACzB,YAAY;EACZ,GAAG,MAAM;EACT,OAAO,MAAM;EACb,MAAM,KAAK,IAAI,oDAAoD,MAAM,GAAG;CAC9E;CAEA,GAAG,GAAG,gBAAgB;EACpB,IAAI,SAAS;GAGX,OAAO,QAAQ,kBAAkB,EAAE,WAAW,QAAQ,GAAG,CAAC,CAAC,CAAC,YAAY,KAAA,CAAS;GACjF,MAAM,KAAK,IAAI,gBAAgB,MAAM,GAAG;GACxC;EACF;EACA,OAAO;CACT,CAAC;CAED,MAAM,IAAI,SAAe,SAAS,WAAW;EAC3C,WAAW,UAAU;GACnB,YAAY;GACZ,GAAG,MAAM;GACT,OAAO,MAAM;GACb,OAAO,KAAK;EACd;EACA,GAAG,GAAG,eAAe,QAAQ,CAAC;EAE9B,MAAM,cAAc,SAAuB;GACzC,MAAM,OAAO,KAAK,KAAK;GACvB,IAAI,KAAK,WAAW,GAAG;IACrB,GAAG,OAAO;IACV;GACF;GACA,IAAI,SAAS,WAAW,SAAS,SAAS;IACxC,OAAO;IACP,QAAQ;IACR;GACF;GACA,IAAI,SAAS,cAAc;IACzB,OAAO,QAAQ,kBAAkB,EAAE,WAAW,QAAQ,GAAG,CAAC,CAAC,CAAC,YAAY,KAAA,CAAS;IACjF;GACF;GAEA,UAAU,IAAI,OAAO,UAAU,IAAI,IAAI,KAAK,KAAK,CAAC;GAClD,OAAY,QAAQ,mBAAmB;IAAE,WAAW,QAAQ;IAAI,SAAS;GAAK,CAAC,CAAC,CAAC,MAAM,EAAE,gBAAgB;IACvG,IAAI,cAAc,SAChB,MAAM,GAAG,IAAI,6BAA6B,MAAM,GAAG;GACvD,CAAC,CAAC,CAAC,OAAO,QAAQ;IAGhB,MAAM,cAAc,UAAU,IAAI,IAAI,KAAK;IAC3C,IAAI,eAAe,GACjB,UAAU,OAAO,IAAI;SAErB,UAAU,IAAI,MAAM,cAAc,CAAC;IACrC,MAAM,GAAG,MAAM,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,IAAI,MAAM,GAAG;IAC3E,GAAG,OAAO;GACZ,CAAC;EACH;EAEA,aAAa;EACb,OAAO,WAAW,SAAS,GACzB,WAAW,WAAW,MAAM,CAAE;EAEhC,IAAI,CAAC,SACH,GAAG,OAAO;CACd,CAAC;AACH;AAMA,eAAe,YACb,QACA,KAO4B;CAC5B,MAAM,cAAc,YAAY,IAAI,GAAG,KAAK,IAAI;CAEhD,IAAI,IAAI,WACN,OAAO,OAAO,QAAQ,mBAAmB,EAAE,KAAK,IAAI,IAAI,CAAC;CAE3D,MAAM,OAAO,MAAM,OAAO,QAAQ,iBAAiB;EAAE;EAAa,SAAS;CAAS,CAAC;CAErF,IAAI,IAAI,WAAW;EACjB,MAAM,QAAQ,KAAK,MAAK,MAAK,EAAE,OAAO,IAAI,aAAa,EAAE,GAAG,WAAW,IAAI,SAAU,CAAC;EACtF,IAAI,OACF,OAAO;EAGT,MAAM,UAAS,MADG,OAAO,QAAQ,iBAAiB,CAAC,CAAC,EAAA,CACjC,MAAK,MAAK,EAAE,OAAO,IAAI,aAAa,EAAE,GAAG,WAAW,IAAI,SAAU,CAAC;EACtF,IAAI,QACF,OAAO;EACT,IAAI,MAAM,GAAG,IAAI,uBAAuB,IAAI,UAAU,GAAG,MAAM,GAAG;EAClE,OAAO;CACT;CAEA,IAAI,KAAK,WAAW,GAClB,OAAO,OAAO,QAAQ,mBAAmB,EAAE,KAAK,IAAI,IAAI,CAAC;CAE3D,IAAI,MAAM,GAAG,KAAK,cAAc,YAAY,GAAG,MAAM,GAAG;CACxD,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,SAAS,KAAK,MAAM;EACpC,MAAM,SAAS,IAAI,WAAW,YAAY,IAAI,OAAO,WAAW,UAAU;EAC1E,IAAI,MAAM,KAAK,IAAI,EAAE,IAAI,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,QAAQ,OAAO,GAAG;CACvF,CAAC;CAED,MAAM,SAAS,MAAM,IAAI,IAAI,2BAA2B;CACxD,IAAI,OAAO,KAAK,CAAC,CAAC,YAAY,MAAM,KAClC,OAAO,OAAO,QAAQ,mBAAmB,EAAE,KAAK,IAAI,IAAI,CAAC;CAE3D,MAAM,SAAS,KAAK,OAAO,SAAS,OAAO,KAAK,GAAG,EAAE,IAAI;CACzD,IAAI,CAAC,QAAQ;EACX,IAAI,MAAM,GAAG,IAAI,cAAc,MAAM,GAAG;EACxC,OAAO;CACT;CACA,OAAO;AACT;AAQA,eAAe,iBACb,QACA,WACA,OACe;CACf,MAAM,SAAS,MAAM,OAAO,QAAQ,uBAAuB,EAAE,UAAU,CAAC;CACxE,IAAI,OAAO,WAAW,GACpB;CAEF,MAAM,OAAO,OAAO,MAAM,GAAiB;CAC3C,IAAI,OAAO,SAAS,KAAK,QACvB,MAAM,GAAG,IAAI,IAAI,OAAO,SAAS,KAAK,OAAO,yBAAyB,MAAM,GAAG;CAEjF,KAAK,MAAM,SAAS,MAClB,IAAI,MAAM,SAAS,eACjB,MAAM,KAAK,KAAK,IAAI,MAAM,OAAO,MAAM,GAAG;MACvC,IAAI,MAAM,SAAS,YACtB,MAAM,GAAG,MAAM,KAAK,GAAG;MACpB,IAAI,MAAM,SAAS,QACtB,MAAM,GAAG,KAAK,IAAI,MAAM,OAAO,MAAM,GAAG;CAE5C,MAAM,IAAI;AACZ;AAEA,SAAS,UAAU,MAAc,KAAqB;CACpD,MAAM,QAAQ,KAAK,MAAM,IAAI;CAC7B,IAAI,MAAM,UAAU,KAClB,OAAO;CACT,OAAO,GAAG,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,IAAI,MAAM,SAAS,IAAI,aAAa;AACvF"}
1
+ {"version":3,"file":"ipc-Oro3uyMP.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 { Ga as ExtensionBus, Jd as ProviderKey, Ju as StreamEvent, Wp as ContextBreakdown, Yg as SessionTurn, kf as InteractionResponse, qv as SessionArtifact, r_ as ThinkingLevel, wg as JsonValue } from "./index-CfEJ5Vf9.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-498gAVpL.js";
3
- import { O as ResolvedConfig } from "./transcript-anchors-pHga6mOC.js";
4
- import { p as TodoItem } from "./turn-operations-Dzo-8TKC.js";
5
- import { T as SessionHistoryMatch, V as ApprovalDecision, w as SearchTurnResult } from "./tool-formatters-D1rdZOe3.js";
1
+ import { Ga as ExtensionBus, Jd as ProviderKey, Ju as StreamEvent, Wp as ContextBreakdown, Yg as SessionTurn, kf as InteractionResponse, qv as SessionArtifact, r_ as ThinkingLevel, wg as JsonValue } from "./index-C4mY0oKE.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-D2JCY11Z.js";
3
+ import { O as ResolvedConfig } from "./transcript-anchors-CY50AXdF.js";
4
+ import { p as TodoItem } from "./turn-operations-CAmNETlu.js";
5
+ import { T as SessionHistoryMatch, V as ApprovalDecision, w as SearchTurnResult } from "./tool-formatters-GZHxP824.js";
6
6
 
7
7
  //#region src/ipc/attach.d.ts
8
8
  interface AttachOptions {
@@ -808,6 +808,15 @@ interface HelloParams {
808
808
  * and respawns. Closes same-version code drift during development.
809
809
  */
810
810
  buildId?: string;
811
+ /**
812
+ * Version of the zidane code the client runs (`ZIDANE_VERSION`, inlined at
813
+ * build). Unlike `buildId` this survives compiled binaries, so it closes
814
+ * the gap released builds had: same protocol version, older code. A
815
+ * client STRICTLY NEWER than the daemon is rejected like a build mismatch
816
+ * and the stale daemon is drained; an older client is accepted and
817
+ * degrades via `optional()`.
818
+ */
819
+ codeVersion?: string;
811
820
  }
812
821
  interface HelloResult {
813
822
  protocolVersion: number;
@@ -815,6 +824,7 @@ interface HelloResult {
815
824
  pid: number;
816
825
  startedAt: number;
817
826
  buildId?: string;
827
+ codeVersion?: string;
818
828
  }
819
829
  //#endregion
820
830
  //#region src/ipc/client.d.ts
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"],"mappings":"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"}
package/dist/ipc.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $t as runCompaction, Bt as readFileSafe, Ht as serializePreview, It as createChatHost, Qt as EditOutcomeLedger, Rt as createInteractionHub, Vt as resolveCwdPath, n as createMemoryApprovalsStore, t as createApprovalHub, zt as extractEditPayloadForGate } from "./approvals-Jztqzqjk.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-Cccx5jES.js";
3
- import { t as runAttach } from "./ipc-B4p0P2tz.js";
1
+ import { $t as runCompaction, Bt as readFileSafe, Ht as serializePreview, It as createChatHost, Qt as EditOutcomeLedger, Rt as createInteractionHub, Vt as resolveCwdPath, n as createMemoryApprovalsStore, t as createApprovalHub, zt as extractEditPayloadForGate } from "./approvals-BnDsgTtD.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-HZdjqDpS.js";
3
+ import { t as runAttach } from "./ipc-Oro3uyMP.js";
4
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 };
package/dist/mcp.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { Dg as McpToolSchema, Tg as McpServerConfig, _y as originPinnedFetch, ay as createStderrLineEmitter, cy as expandMcpConfigEnv, dy as normalizeMcpServers, ey as ConnectMcpServersOptions, fy as resolveTransportConfig, gy as isAllowedRemoteUrl, hy as PinnedFetch, iy as connectMcpServers, ly as nonOwningMcpView, my as wrapDiscoveredMcpTools, ny as McpExecutionBinding, oy as deriveMcpToolMeta, py as resultToString, ry as attachStderrWarnPump, sy as expandEnvPlaceholders, ty as McpConnection, uy as normalizeMcpBlocks } from "./index-CfEJ5Vf9.js";
1
+ import { Dg as McpToolSchema, Tg as McpServerConfig, _y as originPinnedFetch, ay as createStderrLineEmitter, cy as expandMcpConfigEnv, dy as normalizeMcpServers, ey as ConnectMcpServersOptions, fy as resolveTransportConfig, gy as isAllowedRemoteUrl, hy as PinnedFetch, iy as connectMcpServers, ly as nonOwningMcpView, my as wrapDiscoveredMcpTools, ny as McpExecutionBinding, oy as deriveMcpToolMeta, py as resultToString, ry as attachStderrWarnPump, sy as expandEnvPlaceholders, ty as McpConnection, uy as normalizeMcpBlocks } from "./index-C4mY0oKE.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 };