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