zidane 7.0.30 → 7.0.32
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/README.md +2 -2
- package/dist/{acp-Cu879kus.js → acp-bBDF-dhy.js} +2 -2
- package/dist/{acp-Cu879kus.js.map → acp-bBDF-dhy.js.map} +1 -1
- package/dist/acp-cli.js +3 -3
- package/dist/acp.d.ts +1 -1
- package/dist/acp.js +1 -1
- package/dist/{agent-BipX4BBj.js → agent-BCG9JcZl.js} +199 -31
- package/dist/agent-BCG9JcZl.js.map +1 -0
- package/dist/agent.d.ts +1 -1
- package/dist/agent.js +1 -1
- package/dist/{approvals-staFZZ5o.js → approvals-DkwGBMZ9.js} +372 -19
- package/dist/approvals-DkwGBMZ9.js.map +1 -0
- package/dist/{auth-D4MpTfvF.js → auth-D0BHBb02.js} +2 -2
- package/dist/{auth-D4MpTfvF.js.map → auth-D0BHBb02.js.map} +1 -1
- package/dist/chat/pure.d.ts +3 -3
- package/dist/chat/pure.js +1 -1
- package/dist/chat.d.ts +6 -6
- package/dist/chat.js +6 -6
- package/dist/{context-transport-BqYwzJYE.js → context-transport-T_6AYIvy.js} +2 -2
- package/dist/{context-transport-BqYwzJYE.js.map → context-transport-T_6AYIvy.js.map} +1 -1
- package/dist/contexts/daytona.d.ts +1 -1
- package/dist/contexts/e2b.d.ts +1 -1
- package/dist/daemon-cli.js +1 -1
- package/dist/eval.d.ts +1 -1
- package/dist/extensions.d.ts +2 -2
- package/dist/extensions.js +2 -2
- package/dist/headless.d.ts +1 -1
- package/dist/headless.js +1 -1
- package/dist/{index-C0y2tSgk.d.ts → index-CCB05-JZ.d.ts} +104 -10
- package/dist/index-CCB05-JZ.d.ts.map +1 -0
- package/dist/{index-CnXKeZ8p.d.ts → index-Ogi2CeHf.d.ts} +179 -6
- package/dist/index-Ogi2CeHf.d.ts.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/dist/{ipc-CbkrpfkI.js → ipc-C10lnS-a.js} +2 -2
- package/dist/{ipc-CbkrpfkI.js.map → ipc-C10lnS-a.js.map} +1 -1
- package/dist/ipc.d.ts +5 -5
- package/dist/ipc.js +3 -3
- package/dist/{mcp-BIWa57eY.js → mcp-CgNd-f3F.js} +3 -3
- package/dist/{mcp-BIWa57eY.js.map → mcp-CgNd-f3F.js.map} +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +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/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/openrouter.d.ts +1 -1
- package/dist/providers/xai.d.ts +1 -1
- package/dist/providers.d.ts +1 -1
- package/dist/restate.d.ts +1 -1
- package/dist/restate.js +1 -1
- package/dist/{server-GJ2gNRt_.js → server--mwNA7oC.js} +7 -7
- package/dist/{server-GJ2gNRt_.js.map → server--mwNA7oC.js.map} +1 -1
- package/dist/session/sqlite.d.ts +1 -1
- package/dist/session.d.ts +1 -1
- package/dist/skills.d.ts +1 -1
- package/dist/{src-DzzhE2YO.js → src-CjkY6fBj.js} +2 -2
- package/dist/{src-DzzhE2YO.js.map → src-CjkY6fBj.js.map} +1 -1
- package/dist/{stdio-loader-CI4sPFve.js → stdio-loader-Bbx19dMZ.js} +2 -2
- package/dist/{stdio-loader-CI4sPFve.js.map → stdio-loader-Bbx19dMZ.js.map} +1 -1
- package/dist/{tool-formatters-bbgUM3zI.d.ts → tool-formatters-Bu4repDJ.d.ts} +2 -2
- package/dist/{tool-formatters-bbgUM3zI.d.ts.map → tool-formatters-Bu4repDJ.d.ts.map} +1 -1
- 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-BHyrChoO.d.ts → transcript-anchors-CJCxyVE-.d.ts} +8 -2
- package/dist/transcript-anchors-CJCxyVE-.d.ts.map +1 -0
- package/dist/tui.d.ts +3 -3
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +69 -14
- package/dist/tui.js.map +1 -1
- package/dist/{turn-operations-BgqpLlOG.js → turn-operations-HX3g3XIc.js} +11 -1
- package/dist/{turn-operations-BgqpLlOG.js.map → turn-operations-HX3g3XIc.js.map} +1 -1
- package/dist/{turn-operations-ZP5-2OWi.d.ts → turn-operations-qcv9UFcL.d.ts} +3 -3
- package/dist/{turn-operations-ZP5-2OWi.d.ts.map → turn-operations-qcv9UFcL.d.ts.map} +1 -1
- package/dist/types-CWgENVLY.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/docs/ARCHITECTURE.md +11 -2
- package/docs/CHAT.md +1 -0
- package/docs/INTERACTIONS.md +14 -2
- package/docs/SKILL.md +3 -1
- package/docs/TUI.md +5 -3
- package/package.json +1 -1
- package/dist/agent-BipX4BBj.js.map +0 -1
- package/dist/approvals-staFZZ5o.js.map +0 -1
- package/dist/index-C0y2tSgk.d.ts.map +0 -1
- package/dist/index-CnXKeZ8p.d.ts.map +0 -1
- package/dist/transcript-anchors-BHyrChoO.d.ts.map +0 -1
package/dist/agent.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $i as
|
|
1
|
+
import { $i as McpToolMeta, $r as RunSummaryTokens, D_ as ReadStateEntry, E_ as HydrateReadStateOptions, Gr as RunSummary, Ji as AgentHookMap, Jr as RunSummaryByModel, Kr as RunSummaryBlock, M_ as hydrateReadStateFromSessionAsync, N_ as readStateKey, O_ as ReadStateMap, P_ as resolveReadStateMap, Qi as McpConnector, Qr as RunSummaryRepeatGuard, Xi as AgentOptions, Xr as RunSummaryCollectorOptions, Yi as AgentHooks, Yr as RunSummaryCollector, Zr as RunSummaryError, cm as CacheDimensionDiff, dm as CacheDriftInfo, ea as McpToolWrap, ei as RunSummaryValidation, fm as diffCacheDimensions, gm as snapshotCacheDimensions, hm as installCacheBreakLogger, j_ as hydrateReadStateFromSession, k_ as getReadState, lm as CacheDimensionName, mm as hashMessages, om as CacheBreakInfo, pm as fnv1a32, qi as Agent, qr as RunSummaryBudget, sm as CacheBreakLoggerOptions, ta as createAgent, ti as createRunSummaryCollector, um as CacheDimensionSnapshot } from "./index-CCB05-JZ.js";
|
|
2
2
|
export { type Agent, type AgentHookMap, type AgentHooks, type AgentOptions, type CacheBreakInfo, type CacheBreakLoggerOptions, type CacheDimensionDiff, type CacheDimensionName, type CacheDimensionSnapshot, type CacheDriftInfo, type HydrateReadStateOptions, type McpConnector, type McpToolMeta, type McpToolWrap, type ReadStateEntry, type ReadStateMap, type RunSummary, type RunSummaryBlock, type RunSummaryBudget, type RunSummaryByModel, type RunSummaryCollector, type RunSummaryCollectorOptions, type RunSummaryError, type RunSummaryRepeatGuard, type RunSummaryTokens, type RunSummaryValidation, createAgent, createRunSummaryCollector, diffCacheDimensions, fnv1a32, getReadState, hashMessages, hydrateReadStateFromSession, hydrateReadStateFromSessionAsync, installCacheBreakLogger, readStateKey, resolveReadStateMap, snapshotCacheDimensions };
|
package/dist/agent.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ar as
|
|
1
|
+
import { ar as getReadState, cr as hydrateReadStateFromSessionAsync, lr as readStateKey, sr as hydrateReadStateFromSession, t as createAgent, ur as resolveReadStateMap } from "./agent-BCG9JcZl.js";
|
|
2
2
|
import { a as snapshotCacheDimensions, i as installCacheBreakLogger, n as fnv1a32, r as hashMessages, t as diffCacheDimensions } from "./cache-telemetry-ehVdWsg2.js";
|
|
3
3
|
import { t as createRunSummaryCollector } from "./run-summary-BU_NgwUT.js";
|
|
4
4
|
export { createAgent, createRunSummaryCollector, diffCacheDimensions, fnv1a32, getReadState, hashMessages, hydrateReadStateFromSession, hydrateReadStateFromSessionAsync, installCacheBreakLogger, readStateKey, resolveReadStateMap, snapshotCacheDimensions };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as __require } from "./rolldown-runtime-BhDjJH2R.js";
|
|
2
2
|
import { n as THINKING_LEVELS, u as toolResultToText } from "./types-CWgENVLY.js";
|
|
3
|
-
import { A as
|
|
4
|
-
import { F as parseCommandInvocation, M as commandBlocksToContent, P as executeCommand, c as SKILL_EDIT_METADATA_KEY, g as readSkillEditMarker, j as commandBlockToEvent, l as ZIDANE_EXTENSION_SKILL_NAME, m as extensionDirForCwd, s as EXTENSION_EDIT_METADATA_KEY, u as ZIDANE_SKILL_EDIT_SKILL_NAME, v as withZidaneExtensionSkill, w as generateStructuredData, y as withZidaneSkillEditSkill } from "./src-
|
|
3
|
+
import { $n as effectiveContextWindow, A as buildPostCompactAttachments, Bn as artifactKindLabel, Bt as multiEdit, D as resolvePersistDir, E as resolveMcpWarningsDir, Et as waitTask, It as shell, Jn as renderArtifactRow, Jt as edit, Kt as grep, M as selectFilesFromSession, Ot as createSpawnTool, P as compactConversation, Pt as shellKill, Qn as OUTPUT_RESERVE_TOKENS, Rt as readFile$1, S as migrateSessionArtifactDirs, Tn as createDebugLog, Wt as listFiles, Xt as artifacts_default, Z as EMPTY_EXTENSION_REGISTRY, bt as composePresets, cn as mergeKeybindings, dn as readKeybindingsRaw, dt as composeExtensionPreset, f as applyCompactSummaryCutoff, fn as resolveExtensionKeybindings, g as unwrapCallTool, k as resolveTasksDir, kt as isSpawnTool, lt as buildExtensionPreset, mt as filterRegistryPlugins, q as summaryToTurn, qt as glob, t as createAgent, wt as writeFile$1, xt as definePreset } from "./agent-BCG9JcZl.js";
|
|
4
|
+
import { F as parseCommandInvocation, M as commandBlocksToContent, P as executeCommand, c as SKILL_EDIT_METADATA_KEY, g as readSkillEditMarker, j as commandBlockToEvent, l as ZIDANE_EXTENSION_SKILL_NAME, m as extensionDirForCwd, s as EXTENSION_EDIT_METADATA_KEY, u as ZIDANE_SKILL_EDIT_SKILL_NAME, v as withZidaneExtensionSkill, w as generateStructuredData, y as withZidaneSkillEditSkill } from "./src-CjkY6fBj.js";
|
|
5
5
|
import { a as formatDuration, c as previewLine, i as fmtTokens, l as shortId, s as formatTaskSummary, t as ageString } from "./format-BF745pLL.js";
|
|
6
6
|
import { r as createProcessContext } from "./contexts-BSFQVclW.js";
|
|
7
7
|
import { u as errorMessage$1 } from "./errors-DKiMrOKq.js";
|
|
@@ -9,7 +9,7 @@ import { L as projectUserPaths, R as findGitRoot$1, x as discoverSkills } from "
|
|
|
9
9
|
import { t as writeFileAtomic } from "./atomic-write-B7zr1ddF.js";
|
|
10
10
|
import { n as defaultPluginDataRoot, p as resolveStorageDirs, r as loadAgentPlugin } from "./plugins-B531Tz5b.js";
|
|
11
11
|
import { r as createLogger, t as consoleSink } from "./logger--C1VQjwJ.js";
|
|
12
|
-
import { h as McpOAuthProvider, l as normalizeMcpServers, n as connectMcpServers, s as nonOwningMcpView } from "./mcp-
|
|
12
|
+
import { h as McpOAuthProvider, l as normalizeMcpServers, n as connectMcpServers, s as nonOwningMcpView } from "./mcp-CgNd-f3F.js";
|
|
13
13
|
import { appendDynamicSection, joinSystemPrompt, splitSystemPrompt } from "./prompt.js";
|
|
14
14
|
import { o as loadSession, t as createSession } from "./session-CVy-2mAy.js";
|
|
15
15
|
import { n as flattenTurns, r as formatTokenUsage } from "./stats-DAKBEKjc.js";
|
|
@@ -18,11 +18,11 @@ import { i as findActiveTriggers, n as collectReferences, o as mergeSuggestions,
|
|
|
18
18
|
import { p as sanitizeProviderDiagnosticMetadata } from "./anthropic-B4UmPm4H.js";
|
|
19
19
|
import { r as fetchUrl } from "./fetch-url-ma-5_p0p.js";
|
|
20
20
|
import { webSearch } from "./tools/web-search.js";
|
|
21
|
-
import { A as chunkMarkdownForRender, At as MAIN_SESSION_TITLE, Bt as renderSessionEventXml, Ft as artifactsFromTurns, It as isMainSession, J as filterChainFallbacks, Lt as orchestratedBy, Nt as SESSION_ROLE_KEY, Pt as WORKER_REPORT_FRAGMENT, Qt as formatRunReceiptLine, Rt as parseSessionEventXml, St as promptTurnRefs, U as buildRunModel, Ut as sessionEventLabel, _n as mergeApprovalAndBodyOutcomes, bn as rewriteMultiEditHeader, dn as previewEditPayload, et as restoreChainFallbacks, hn as buildEditOutcomesAnnotation, jt as ORCHESTRATED_BY_KEY, kt as MAIN_PLAYBOOK_FRAGMENT, ln as extractEditPayload, m as ownerOf, nn as runReceiptFromRun, tn as hasRunReceipt, u as capTranscriptEvents, vn as parseEditOutcomesFromResult, wn as chatReferenceTokensFromText, xn as stripEditOutcomesAnnotation, yn as resolveApprovalForPayload, zt as renderProjectsBriefing } from "./turn-operations-
|
|
22
|
-
import { T as restoreModelOptions, b as modelSupportsReasoning, d as BUILTIN_PROVIDERS, f as anthropicDescriptor, g as getContextWindow, h as enabledModelOptions, i as readCredentials, m as credKeyOf, n as applyApiKeyEnv, r as credentialsPath, t as detectAuth, x as modelsForDescriptor } from "./auth-
|
|
21
|
+
import { A as chunkMarkdownForRender, At as MAIN_SESSION_TITLE, Bt as renderSessionEventXml, Ft as artifactsFromTurns, It as isMainSession, J as filterChainFallbacks, Lt as orchestratedBy, Nt as SESSION_ROLE_KEY, Pt as WORKER_REPORT_FRAGMENT, Qt as formatRunReceiptLine, Rt as parseSessionEventXml, St as promptTurnRefs, U as buildRunModel, Ut as sessionEventLabel, _n as mergeApprovalAndBodyOutcomes, bn as rewriteMultiEditHeader, dn as previewEditPayload, et as restoreChainFallbacks, hn as buildEditOutcomesAnnotation, jt as ORCHESTRATED_BY_KEY, kt as MAIN_PLAYBOOK_FRAGMENT, ln as extractEditPayload, m as ownerOf, nn as runReceiptFromRun, tn as hasRunReceipt, u as capTranscriptEvents, vn as parseEditOutcomesFromResult, wn as chatReferenceTokensFromText, xn as stripEditOutcomesAnnotation, yn as resolveApprovalForPayload, zt as renderProjectsBriefing } from "./turn-operations-HX3g3XIc.js";
|
|
22
|
+
import { T as restoreModelOptions, b as modelSupportsReasoning, d as BUILTIN_PROVIDERS, f as anthropicDescriptor, g as getContextWindow, h as enabledModelOptions, i as readCredentials, m as credKeyOf, n as applyApiKeyEnv, r as credentialsPath, t as detectAuth, x as modelsForDescriptor } from "./auth-D0BHBb02.js";
|
|
23
23
|
import { basename, delimiter, dirname, isAbsolute, join, posix, relative, resolve, sep } from "node:path";
|
|
24
24
|
import { Buffer } from "node:buffer";
|
|
25
|
-
import { chmodSync, closeSync, cpSync, createReadStream, createWriteStream, existsSync, mkdirSync, mkdtempSync, openSync, readFileSync, readSync, readdirSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
25
|
+
import { chmodSync, closeSync, cpSync, createReadStream, createWriteStream, existsSync, mkdirSync, mkdtempSync, openSync, readFileSync, readSync, readdirSync, realpathSync, renameSync, rmSync, statSync, watch, writeFileSync } from "node:fs";
|
|
26
26
|
import { readFile, readdir, stat, writeFile } from "node:fs/promises";
|
|
27
27
|
import { spawn } from "node:child_process";
|
|
28
28
|
import { homedir, tmpdir } from "node:os";
|
|
@@ -30,6 +30,7 @@ import { createHash, randomUUID } from "node:crypto";
|
|
|
30
30
|
import { Fzf } from "fzf";
|
|
31
31
|
import { createGunzip } from "node:zlib";
|
|
32
32
|
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
33
|
+
import { Writable } from "node:stream";
|
|
33
34
|
import { jsx } from "react/jsx-runtime";
|
|
34
35
|
//#region src/chat/store.ts
|
|
35
36
|
function ensureStateDir(path) {
|
|
@@ -610,7 +611,8 @@ function eventsFromTurns(turns, runs = []) {
|
|
|
610
611
|
...tag
|
|
611
612
|
});
|
|
612
613
|
} else if (block.type === "tool_call") {
|
|
613
|
-
|
|
614
|
+
const { name, input } = unwrapCallTool(block.name, block.input) ?? block;
|
|
615
|
+
let edit = extractEditPayload(name, input);
|
|
614
616
|
if (edit) {
|
|
615
617
|
const resultText = resultByCallId.get(block.id);
|
|
616
618
|
if (resultText) {
|
|
@@ -623,9 +625,9 @@ function eventsFromTurns(turns, runs = []) {
|
|
|
623
625
|
}
|
|
624
626
|
events.push({
|
|
625
627
|
kind: "tool",
|
|
626
|
-
text: toolCallPreview(
|
|
627
|
-
tool:
|
|
628
|
-
input
|
|
628
|
+
text: toolCallPreview(name, input),
|
|
629
|
+
tool: name,
|
|
630
|
+
input,
|
|
629
631
|
...edit ? { edit } : {},
|
|
630
632
|
callId: block.id,
|
|
631
633
|
...tag
|
|
@@ -3687,6 +3689,148 @@ function readPackageVersion(dir, packageName) {
|
|
|
3687
3689
|
}
|
|
3688
3690
|
}
|
|
3689
3691
|
//#endregion
|
|
3692
|
+
//#region src/chat/auto-update-restart.ts
|
|
3693
|
+
const UPDATE_APPLIED_MARKER = "update-applied.json";
|
|
3694
|
+
function updateAppliedMarkerPath(cacheDir) {
|
|
3695
|
+
return join(cacheDir, UPDATE_APPLIED_MARKER);
|
|
3696
|
+
}
|
|
3697
|
+
/**
|
|
3698
|
+
* Record that an install just landed. Best-effort: a failure to write the
|
|
3699
|
+
* marker must never fail the upgrade that succeeded — the poll catches up.
|
|
3700
|
+
*/
|
|
3701
|
+
function writeUpdateAppliedMarker(cacheDir, marker) {
|
|
3702
|
+
try {
|
|
3703
|
+
mkdirSync(cacheDir, { recursive: true });
|
|
3704
|
+
writeFileSync(updateAppliedMarkerPath(cacheDir), `${JSON.stringify(marker, null, 2)}\n`);
|
|
3705
|
+
return true;
|
|
3706
|
+
} catch {
|
|
3707
|
+
return false;
|
|
3708
|
+
}
|
|
3709
|
+
}
|
|
3710
|
+
function readUpdateAppliedMarker(cacheDir) {
|
|
3711
|
+
try {
|
|
3712
|
+
const raw = JSON.parse(readFileSync(updateAppliedMarkerPath(cacheDir), "utf8"));
|
|
3713
|
+
if (!raw || typeof raw !== "object") return null;
|
|
3714
|
+
const { at, packages } = raw;
|
|
3715
|
+
if (typeof at !== "number" || !Array.isArray(packages)) return null;
|
|
3716
|
+
return {
|
|
3717
|
+
at,
|
|
3718
|
+
packages: packages.filter((p) => p && typeof p.packageName === "string" && typeof p.version === "string")
|
|
3719
|
+
};
|
|
3720
|
+
} catch {
|
|
3721
|
+
return null;
|
|
3722
|
+
}
|
|
3723
|
+
}
|
|
3724
|
+
/**
|
|
3725
|
+
* Compute the state once — the pure heart of the watcher, exported so a host
|
|
3726
|
+
* without a lifecycle (a one-shot IPC handler) can answer "is a restart
|
|
3727
|
+
* pending?" without holding a watcher.
|
|
3728
|
+
*/
|
|
3729
|
+
function probeInstalledVersion(spec, currentVersion, probe = findInstalledCompanion, now = Date.now) {
|
|
3730
|
+
const installed = currentVersion ? probe(spec)?.version ?? null : null;
|
|
3731
|
+
return {
|
|
3732
|
+
running: currentVersion,
|
|
3733
|
+
installed,
|
|
3734
|
+
restartRequired: installed !== null && compareSemver(installed, currentVersion) > 0,
|
|
3735
|
+
checkedAt: now()
|
|
3736
|
+
};
|
|
3737
|
+
}
|
|
3738
|
+
function watchInstalledVersion(options) {
|
|
3739
|
+
const probe = options.probe ?? findInstalledCompanion;
|
|
3740
|
+
const now = options.now ?? Date.now;
|
|
3741
|
+
const enabled = options.currentVersion.length > 0;
|
|
3742
|
+
let state = probeInstalledVersion(options.spec, options.currentVersion, probe, now);
|
|
3743
|
+
let closed = false;
|
|
3744
|
+
const deliver = (next) => {
|
|
3745
|
+
const changed = next.installed !== state.installed || next.restartRequired !== state.restartRequired;
|
|
3746
|
+
state = next;
|
|
3747
|
+
if (changed && !closed) options.onChange(next);
|
|
3748
|
+
};
|
|
3749
|
+
const check = () => {
|
|
3750
|
+
if (!enabled || closed) return state;
|
|
3751
|
+
deliver(probeInstalledVersion(options.spec, options.currentVersion, probe, now));
|
|
3752
|
+
return state;
|
|
3753
|
+
};
|
|
3754
|
+
let watcher = null;
|
|
3755
|
+
let debounce = null;
|
|
3756
|
+
let poll = null;
|
|
3757
|
+
if (enabled) {
|
|
3758
|
+
if (options.cacheDir) try {
|
|
3759
|
+
mkdirSync(options.cacheDir, { recursive: true });
|
|
3760
|
+
watcher = watch(options.cacheDir, (_event, filename) => {
|
|
3761
|
+
if (filename && filename.toString() !== "update-applied.json") return;
|
|
3762
|
+
if (debounce) clearTimeout(debounce);
|
|
3763
|
+
debounce = setTimeout(() => {
|
|
3764
|
+
debounce = null;
|
|
3765
|
+
check();
|
|
3766
|
+
}, options.debounceMs ?? 500);
|
|
3767
|
+
});
|
|
3768
|
+
watcher.on("error", () => {
|
|
3769
|
+
watcher?.close();
|
|
3770
|
+
watcher = null;
|
|
3771
|
+
});
|
|
3772
|
+
} catch {
|
|
3773
|
+
watcher = null;
|
|
3774
|
+
}
|
|
3775
|
+
const pollMs = options.pollMs ?? 5 * 6e4;
|
|
3776
|
+
if (pollMs > 0) {
|
|
3777
|
+
poll = setInterval(check, pollMs);
|
|
3778
|
+
if (typeof poll === "object" && "unref" in poll) poll.unref();
|
|
3779
|
+
}
|
|
3780
|
+
}
|
|
3781
|
+
return {
|
|
3782
|
+
check,
|
|
3783
|
+
current: () => state,
|
|
3784
|
+
close: () => {
|
|
3785
|
+
closed = true;
|
|
3786
|
+
watcher?.close();
|
|
3787
|
+
if (debounce) clearTimeout(debounce);
|
|
3788
|
+
if (poll) clearInterval(poll);
|
|
3789
|
+
}
|
|
3790
|
+
};
|
|
3791
|
+
}
|
|
3792
|
+
/** Quick existence check so hosts can decide whether to read the marker at all. */
|
|
3793
|
+
function hasUpdateAppliedMarker(cacheDir) {
|
|
3794
|
+
return existsSync(updateAppliedMarkerPath(cacheDir));
|
|
3795
|
+
}
|
|
3796
|
+
/**
|
|
3797
|
+
* `null` until the first probe (or when disabled / no spec), then the live
|
|
3798
|
+
* state. Flipping `enabled` off tears the watcher down and clears the state
|
|
3799
|
+
* so no stale "restart" chip lingers.
|
|
3800
|
+
*/
|
|
3801
|
+
function useRestartRequired(options) {
|
|
3802
|
+
const [state, setState] = useState(null);
|
|
3803
|
+
const { spec, currentVersion, cacheDir, enabled, pollMs } = options;
|
|
3804
|
+
const packageName = spec?.packageName;
|
|
3805
|
+
const binName = spec?.binName;
|
|
3806
|
+
useEffect(() => {
|
|
3807
|
+
if (!enabled || !packageName || !currentVersion) {
|
|
3808
|
+
setState(null);
|
|
3809
|
+
return;
|
|
3810
|
+
}
|
|
3811
|
+
const watcher = watchInstalledVersion({
|
|
3812
|
+
spec: binName ? {
|
|
3813
|
+
packageName,
|
|
3814
|
+
binName
|
|
3815
|
+
} : { packageName },
|
|
3816
|
+
currentVersion,
|
|
3817
|
+
cacheDir,
|
|
3818
|
+
pollMs,
|
|
3819
|
+
onChange: setState
|
|
3820
|
+
});
|
|
3821
|
+
setState(watcher.current());
|
|
3822
|
+
return () => watcher.close();
|
|
3823
|
+
}, [
|
|
3824
|
+
enabled,
|
|
3825
|
+
packageName,
|
|
3826
|
+
binName,
|
|
3827
|
+
currentVersion,
|
|
3828
|
+
cacheDir,
|
|
3829
|
+
pollMs
|
|
3830
|
+
]);
|
|
3831
|
+
return state;
|
|
3832
|
+
}
|
|
3833
|
+
//#endregion
|
|
3690
3834
|
//#region src/chat/auto-update-cli.ts
|
|
3691
3835
|
const UPGRADE_HELP = `Usage: zidane upgrade [options]
|
|
3692
3836
|
|
|
@@ -3780,11 +3924,26 @@ async function runUpdateCommand(options) {
|
|
|
3780
3924
|
for (const e of entries.filter((e) => !e.outdated && e.status.source !== "error")) out.write(`${label(e.name)} ${statusText(e)}\n`);
|
|
3781
3925
|
if (!selfPending && pendingCompanions.length === 0) return { exitCode: 0 };
|
|
3782
3926
|
let exitCode = 0;
|
|
3783
|
-
|
|
3927
|
+
const applied = [];
|
|
3928
|
+
if (selfPending) {
|
|
3929
|
+
exitCode = await upgradeSelf();
|
|
3930
|
+
if (exitCode === 0 && !flags.dryRun && status.latest) applied.push({
|
|
3931
|
+
packageName: self.name,
|
|
3932
|
+
version: status.latest
|
|
3933
|
+
});
|
|
3934
|
+
}
|
|
3784
3935
|
for (const c of pendingCompanions) {
|
|
3785
3936
|
const code = await upgradeCompanion(c);
|
|
3937
|
+
if (code === 0 && !flags.dryRun && c.status.latest) applied.push({
|
|
3938
|
+
packageName: c.name,
|
|
3939
|
+
version: c.status.latest
|
|
3940
|
+
});
|
|
3786
3941
|
if (exitCode === 0) exitCode = code;
|
|
3787
3942
|
}
|
|
3943
|
+
if (applied.length > 0 && options.cacheDir) (options.writeMarker ?? writeUpdateAppliedMarker)(options.cacheDir, {
|
|
3944
|
+
at: Date.now(),
|
|
3945
|
+
packages: applied
|
|
3946
|
+
});
|
|
3788
3947
|
return { exitCode };
|
|
3789
3948
|
/**
|
|
3790
3949
|
* Refuse to spawn the PM while the release is not fetchable yet: npm treats
|
|
@@ -3887,7 +4046,7 @@ async function runUpdateCommand(options) {
|
|
|
3887
4046
|
return 0;
|
|
3888
4047
|
}
|
|
3889
4048
|
err.write(`${name}: install finished but ${actual ?? "nothing"} is on disk, expected ${expected}.\n`);
|
|
3890
|
-
err.write(`Reinstall: ${reinstallHint(command, name, channel)}\n`);
|
|
4049
|
+
err.write(`Reinstall: ${reinstallHint$1(command, name, channel)}\n`);
|
|
3891
4050
|
return 1;
|
|
3892
4051
|
}
|
|
3893
4052
|
}
|
|
@@ -3900,7 +4059,7 @@ function statusText(e) {
|
|
|
3900
4059
|
* Volta treats `install` of an already-recorded version as a no-op, so the
|
|
3901
4060
|
* only way to replace a broken install is to remove it first.
|
|
3902
4061
|
*/
|
|
3903
|
-
function reinstallHint(command, packageName, channel) {
|
|
4062
|
+
function reinstallHint$1(command, packageName, channel) {
|
|
3904
4063
|
const cmd = command.argv.join(" ");
|
|
3905
4064
|
return command.id === "volta" ? `volta uninstall ${packageName} && volta install ${packageName}@${channel}` : cmd;
|
|
3906
4065
|
}
|
|
@@ -4127,10 +4286,190 @@ function buildUpdateHint(status, options) {
|
|
|
4127
4286
|
labelColor: options.color
|
|
4128
4287
|
};
|
|
4129
4288
|
}
|
|
4289
|
+
/**
|
|
4290
|
+
* `↻ v7.0.31` — a newer build is on disk than the one running (this
|
|
4291
|
+
* process is stale; see `auto-update-restart.ts`). Takes precedence over
|
|
4292
|
+
* the `↑` chip: once the release is installed, "available" is old news and
|
|
4293
|
+
* "restart" is the one action left. Same color contract as `buildUpdateHint`.
|
|
4294
|
+
*/
|
|
4295
|
+
function buildRestartHint(state, options) {
|
|
4296
|
+
if (!state?.restartRequired || !state.installed) return null;
|
|
4297
|
+
return {
|
|
4298
|
+
key: options.glyph ?? "↻",
|
|
4299
|
+
keyColor: options.color,
|
|
4300
|
+
label: options.showVersion === false ? "restart" : `v${stripVPrefix(state.installed)}`,
|
|
4301
|
+
labelColor: options.color
|
|
4302
|
+
};
|
|
4303
|
+
}
|
|
4130
4304
|
function stripVPrefix(v) {
|
|
4131
4305
|
return v.startsWith("v") ? v.slice(1) : v;
|
|
4132
4306
|
}
|
|
4133
4307
|
//#endregion
|
|
4308
|
+
//#region src/chat/auto-update-service.ts
|
|
4309
|
+
async function upgradeInstalledPackages(options) {
|
|
4310
|
+
const channel = options.channel ?? "latest";
|
|
4311
|
+
const find = options.findInstalled ?? findInstalledCompanion;
|
|
4312
|
+
const check = options.checkForUpdate ?? checkForUpdate;
|
|
4313
|
+
const available = options.checkTarballAvailable ?? checkTarballAvailable;
|
|
4314
|
+
const install = options.performSelfUpdate ?? performSelfUpdate;
|
|
4315
|
+
const detect = options.detectPackageManager ?? detectPackageManager;
|
|
4316
|
+
const progress = options.onProgress ?? (() => {});
|
|
4317
|
+
const results = [];
|
|
4318
|
+
for (const spec of options.targets) {
|
|
4319
|
+
if (options.signal?.aborted) break;
|
|
4320
|
+
const installed = find(spec);
|
|
4321
|
+
if (!installed) {
|
|
4322
|
+
results.push({
|
|
4323
|
+
packageName: spec.packageName,
|
|
4324
|
+
from: null,
|
|
4325
|
+
to: null,
|
|
4326
|
+
status: "not-installed"
|
|
4327
|
+
});
|
|
4328
|
+
continue;
|
|
4329
|
+
}
|
|
4330
|
+
progress({
|
|
4331
|
+
kind: "check",
|
|
4332
|
+
packageName: spec.packageName
|
|
4333
|
+
});
|
|
4334
|
+
const result = await upgradeOne(installed, await check({
|
|
4335
|
+
packageName: installed.packageName,
|
|
4336
|
+
currentVersion: installed.version,
|
|
4337
|
+
channel,
|
|
4338
|
+
registry: options.registry,
|
|
4339
|
+
cacheDir: options.cacheDir,
|
|
4340
|
+
force: true,
|
|
4341
|
+
timeoutMs: 8e3,
|
|
4342
|
+
signal: options.signal
|
|
4343
|
+
}));
|
|
4344
|
+
progress({
|
|
4345
|
+
kind: "done",
|
|
4346
|
+
result
|
|
4347
|
+
});
|
|
4348
|
+
results.push(result);
|
|
4349
|
+
}
|
|
4350
|
+
const installedAny = results.some((r) => r.status === "updated");
|
|
4351
|
+
if (installedAny && options.cacheDir) (options.writeMarker ?? writeUpdateAppliedMarker)(options.cacheDir, {
|
|
4352
|
+
at: (options.now ?? Date.now)(),
|
|
4353
|
+
packages: results.filter((r) => r.status === "updated" && r.to).map((r) => ({
|
|
4354
|
+
packageName: r.packageName,
|
|
4355
|
+
version: r.to
|
|
4356
|
+
}))
|
|
4357
|
+
});
|
|
4358
|
+
return {
|
|
4359
|
+
results,
|
|
4360
|
+
ok: results.every((r) => r.status !== "failed" && r.status !== "unavailable"),
|
|
4361
|
+
installedAny
|
|
4362
|
+
};
|
|
4363
|
+
async function upgradeOne(installed, status) {
|
|
4364
|
+
const base = {
|
|
4365
|
+
packageName: installed.packageName,
|
|
4366
|
+
from: installed.version,
|
|
4367
|
+
to: status.latest
|
|
4368
|
+
};
|
|
4369
|
+
if (status.source === "error" && !options.force) return {
|
|
4370
|
+
...base,
|
|
4371
|
+
status: "failed",
|
|
4372
|
+
error: `registry check failed: ${status.error ?? "unknown error"}`
|
|
4373
|
+
};
|
|
4374
|
+
if (!(status.latest !== null && compareSemver(status.latest, installed.version) > 0) && !options.force) return {
|
|
4375
|
+
...base,
|
|
4376
|
+
status: "up-to-date"
|
|
4377
|
+
};
|
|
4378
|
+
if (status.latest && !options.force) {
|
|
4379
|
+
if (await available({
|
|
4380
|
+
packageName: installed.packageName,
|
|
4381
|
+
version: status.latest,
|
|
4382
|
+
registry: options.registry
|
|
4383
|
+
}) === "missing") return {
|
|
4384
|
+
...base,
|
|
4385
|
+
status: "unavailable",
|
|
4386
|
+
error: `${installed.packageName} ${status.latest} is published but not downloadable yet. Try again in a few minutes.`
|
|
4387
|
+
};
|
|
4388
|
+
}
|
|
4389
|
+
const command = detect({
|
|
4390
|
+
packageName: installed.packageName,
|
|
4391
|
+
channel,
|
|
4392
|
+
binaryPath: installed.binaryPath
|
|
4393
|
+
});
|
|
4394
|
+
progress({
|
|
4395
|
+
kind: "install",
|
|
4396
|
+
packageName: installed.packageName,
|
|
4397
|
+
from: installed.version,
|
|
4398
|
+
to: status.latest ?? channel,
|
|
4399
|
+
command: command.argv
|
|
4400
|
+
});
|
|
4401
|
+
const outcome = await install({
|
|
4402
|
+
packageName: installed.packageName,
|
|
4403
|
+
channel,
|
|
4404
|
+
packageManager: command.id,
|
|
4405
|
+
signal: options.signal,
|
|
4406
|
+
stdout: lineSink(installed.packageName, "stdout"),
|
|
4407
|
+
stderr: lineSink(installed.packageName, "stderr"),
|
|
4408
|
+
env: {
|
|
4409
|
+
npm_config_loglevel: "error",
|
|
4410
|
+
npm_config_progress: "false"
|
|
4411
|
+
}
|
|
4412
|
+
});
|
|
4413
|
+
if (outcome.spawnError) return {
|
|
4414
|
+
...base,
|
|
4415
|
+
status: "failed",
|
|
4416
|
+
command: command.argv,
|
|
4417
|
+
error: `could not run ${command.argv[0]}: ${outcome.spawnError}`
|
|
4418
|
+
};
|
|
4419
|
+
if (outcome.exitCode !== 0) return {
|
|
4420
|
+
...base,
|
|
4421
|
+
status: "failed",
|
|
4422
|
+
command: command.argv,
|
|
4423
|
+
error: `${command.argv[0]} exited with ${outcome.exitCode ?? "unknown"}`
|
|
4424
|
+
};
|
|
4425
|
+
const after = find(installed);
|
|
4426
|
+
if (status.latest && after && compareSemver(after.version, status.latest) < 0) return {
|
|
4427
|
+
...base,
|
|
4428
|
+
status: "failed",
|
|
4429
|
+
command: command.argv,
|
|
4430
|
+
error: `install finished but ${after.version} is on disk, expected ${status.latest}. Reinstall: ${reinstallHint(command, installed.packageName, channel)}`
|
|
4431
|
+
};
|
|
4432
|
+
return {
|
|
4433
|
+
...base,
|
|
4434
|
+
to: after?.version ?? status.latest,
|
|
4435
|
+
status: "updated",
|
|
4436
|
+
command: command.argv
|
|
4437
|
+
};
|
|
4438
|
+
}
|
|
4439
|
+
/** Split a PM's byte stream into trimmed lines for the progress sink. */
|
|
4440
|
+
function lineSink(packageName, stream) {
|
|
4441
|
+
let buffer = "";
|
|
4442
|
+
const flush = (final) => {
|
|
4443
|
+
const parts = buffer.split(/\r?\n/);
|
|
4444
|
+
buffer = final ? "" : parts.pop() ?? "";
|
|
4445
|
+
for (const part of parts) {
|
|
4446
|
+
const line = part.trim();
|
|
4447
|
+
if (line) progress({
|
|
4448
|
+
kind: "log",
|
|
4449
|
+
packageName,
|
|
4450
|
+
stream,
|
|
4451
|
+
line
|
|
4452
|
+
});
|
|
4453
|
+
}
|
|
4454
|
+
};
|
|
4455
|
+
return new Writable({
|
|
4456
|
+
write(chunk, _enc, cb) {
|
|
4457
|
+
buffer += chunk.toString();
|
|
4458
|
+
flush(false);
|
|
4459
|
+
cb();
|
|
4460
|
+
},
|
|
4461
|
+
final(cb) {
|
|
4462
|
+
flush(true);
|
|
4463
|
+
cb();
|
|
4464
|
+
}
|
|
4465
|
+
});
|
|
4466
|
+
}
|
|
4467
|
+
}
|
|
4468
|
+
function reinstallHint(command, packageName, channel) {
|
|
4469
|
+
const cmd = command.argv.join(" ");
|
|
4470
|
+
return command.id === "volta" ? `volta uninstall ${packageName} && volta install ${packageName}@${channel}` : cmd;
|
|
4471
|
+
}
|
|
4472
|
+
//#endregion
|
|
4134
4473
|
//#region src/chat/boot-profiler.ts
|
|
4135
4474
|
const enabled = !!process.env.ZIDANE_BOOT_PROFILE;
|
|
4136
4475
|
/**
|
|
@@ -7451,6 +7790,7 @@ const DEFAULT_SETTINGS = {
|
|
|
7451
7790
|
showAllProjects: false,
|
|
7452
7791
|
resumeLastSession: true,
|
|
7453
7792
|
persistToolResults: true,
|
|
7793
|
+
stableToolList: false,
|
|
7454
7794
|
autoCompact: true,
|
|
7455
7795
|
autoCompactThreshold: .8,
|
|
7456
7796
|
resumeOnMaxTokens: false,
|
|
@@ -7590,6 +7930,12 @@ const SETTINGS_TOGGLES = [
|
|
|
7590
7930
|
label: "Persist large tool results",
|
|
7591
7931
|
description: "write >8 KiB tool outputs to disk and inline a preview"
|
|
7592
7932
|
},
|
|
7933
|
+
{
|
|
7934
|
+
category: "agent",
|
|
7935
|
+
key: "stableToolList",
|
|
7936
|
+
label: "Stable tool list (call_tool)",
|
|
7937
|
+
description: "invoke MCP tools surfaced by tool_search through `call_tool` instead of adding them to the model's tool list, so tool discovery never breaks the prompt cache (next session activation)"
|
|
7938
|
+
},
|
|
7593
7939
|
{
|
|
7594
7940
|
category: "agent",
|
|
7595
7941
|
key: "loadProjectExtensions",
|
|
@@ -10334,7 +10680,7 @@ function createOrchestration(deps) {
|
|
|
10334
10680
|
const capped = Math.max(1, Math.min(limit, 50));
|
|
10335
10681
|
return data.turns.filter((t) => t.role === "user" || t.role === "assistant").slice(-capped).map((t) => {
|
|
10336
10682
|
const text = t.content.filter((b) => b.type === "text").map((b) => b.text).join("\n").trim();
|
|
10337
|
-
const tools = t.content.filter((b) => b.type === "tool_call").map((b) => b.name);
|
|
10683
|
+
const tools = t.content.filter((b) => b.type === "tool_call").map((b) => unwrapCallTool(b.name, b.input)?.name ?? b.name);
|
|
10338
10684
|
const body = text || (tools.length ? `[tool calls: ${tools.join(", ")}]` : "[no text]");
|
|
10339
10685
|
return `${t.role}: ${truncate(body, 1200)}`;
|
|
10340
10686
|
}).join("\n\n");
|
|
@@ -11310,6 +11656,10 @@ function createChatHost(env) {
|
|
|
11310
11656
|
const agentBehavior = {
|
|
11311
11657
|
...composedPreset.behavior,
|
|
11312
11658
|
...persistBehavior,
|
|
11659
|
+
...settings.stableToolList ? { toolSearch: {
|
|
11660
|
+
...composedPreset.behavior?.toolSearch ?? {},
|
|
11661
|
+
mode: "dispatch"
|
|
11662
|
+
} } : {},
|
|
11313
11663
|
tasksDir
|
|
11314
11664
|
};
|
|
11315
11665
|
const agent = createAgent({
|
|
@@ -13098,10 +13448,13 @@ function serializeInteractionResponse(response) {
|
|
|
13098
13448
|
const picked = value.map((v) => String(v).trim()).filter((v) => v.length > 0);
|
|
13099
13449
|
if (picked.length > 0) answers[id] = picked;
|
|
13100
13450
|
}
|
|
13101
|
-
|
|
13451
|
+
const body = {
|
|
13102
13452
|
...automatic,
|
|
13103
13453
|
answers
|
|
13104
|
-
}
|
|
13454
|
+
};
|
|
13455
|
+
const instructions = response.instructions?.trim();
|
|
13456
|
+
if (instructions) body.instructions = instructions;
|
|
13457
|
+
return JSON.stringify(body);
|
|
13105
13458
|
}
|
|
13106
13459
|
/**
|
|
13107
13460
|
* Build a protocol-valid user `SessionTurn` that closes a batch of
|
|
@@ -13327,7 +13680,7 @@ function createInteractionTools(opts) {
|
|
|
13327
13680
|
};
|
|
13328
13681
|
}
|
|
13329
13682
|
const PLAN_DESCRIPTION = "Present a multi-step plan to the user for approval BEFORE executing it. Use this when you have a concrete proposal that materially changes the workspace and want explicit confirmation. The user can approve, reject, or request revisions; revisions come back as a comment alongside a `revise` decision.";
|
|
13330
|
-
const QUESTION_DESCRIPTION = "Ask the user one or more clarifying questions and pause until they answer. Batch related questions into a single call instead of asking one at a time — every call pauses the conversation. Each question carries a `type`: `text` (single line), `textarea` (multi-line), `select` (one of `choices`), or `confirm` (yes/no). Use sparingly: only when explicit user input materially changes the next steps.";
|
|
13683
|
+
const QUESTION_DESCRIPTION = "Ask the user one or more clarifying questions and pause until they answer. Batch related questions into a single call instead of asking one at a time — every call pauses the conversation. Each question carries a `type`: `text` (single line), `textarea` (multi-line), `select` (one of `choices`), or `confirm` (yes/no). Use sparingly: only when explicit user input materially changes the next steps. The response may carry `instructions`: free text the user added alongside their answers. It refines or overrides the questions and is authoritative.";
|
|
13331
13684
|
function createPlanTool({ requestInteraction, shouldSkipInteractions }) {
|
|
13332
13685
|
return {
|
|
13333
13686
|
spec: {
|
|
@@ -16677,6 +17030,6 @@ function createApprovalHub(options) {
|
|
|
16677
17030
|
};
|
|
16678
17031
|
}
|
|
16679
17032
|
//#endregion
|
|
16680
|
-
export { supportsOAuth as $, parseMcpsFile as $n,
|
|
17033
|
+
export { supportsOAuth as $, parseMcpsFile as $n, pruneTodosByRun as $r, EditOutcomeLedger as $t, useSafeModeQueue as A, noticeTurnContent as Ai, quoteForShell as An, discoverAgentsMd as Ar, makeRequestInteraction as At, USAGE_CACHE_TTL_MS as B, createArtifactsCompletionProvider as Bn, singleAgentRegistry as Br, extractEditPayloadForGate as Bt, resolveSessionExportTarget as C, deriveSessionTitle as Ci, GRUVBOX_DARK as Cn, parseSemver as Cr, InteractionsProvider as Ct, scopeCwd as D, listSessionMeta as Di, CATPPUCCIN_MACCHIATO as Dn, chatAutoCompactBehavior as Dr, createInteractionTools as Dt, resolveSessionCwd as E, lastContextSizeFromTurns as Ei, CATPPUCCIN_LATTE as En, resolvePlatformPackage as Er, createAutomaticInteractionResponse as Et, matchesSafelistEntry as F, titleFromTurns as Fi, ConfigProvider as Fn, DEFAULT_BUDGET_EXCLUDE_TOOLS as Fr, STALE_RUN_MARKER_MS as Ft, usageChecksOptedOut as G, importFromClaudeCode as Gn, TODO_STATUS_GLYPHS as Gr, createMainSession as Gt, fetchAllProviderUsage as H, useCompletion as Hn, TODOREAD_TOOL as Hr, resolveCwdPath as Ht, projectsFilePath as I, toolCallPreview as Ii, useConfig as In, DEFAULT_PERSIST_EXCLUDE_TOOLS as Ir, createChatHost as It, fetchOAuthRedirect as J, upsertMcpServer as Jn, createTodoTools as Jr, runEndNotice as Jt, usageSourceFor as K, mcpsWritePath as Kn, TODO_WRITE_COUNTS_METADATA_KEY as Kr, modelChainMetadata as Kt, readProjects as L, toolResultText as Li, resolveConfig as Ln, PLAN_AGENT as Lr, toTodosSnapshot as Lt, addToSafelist as M, serverToolResultSummary as Mi, DiscoveryProvider as Mn, BUILD_AGENT as Mr, serializeInteractionResponse as Mt, getSafelist as N, stripSpawnTokensLine as Ni, useDiscovery as Nn, BUILTIN_AGENTS as Nr, useInteractionsActions as Nt, SafeModeProvider as O, loadState as Oi, CATPPUCCIN_MOCHA as On, groupArtifacts as Or, isInteractionTool as Ot, isOnSafelist as P, sumRunCosts as Pi, useDiscoveryOptional as Pn, DEFAULT_AGENT_ID as Pr, useInteractionsQueue as Pt, runOAuthLogin as Q, discoverProjectMcps as Qn, pickActiveRunId as Qr, attachMcpWarnLog as Qt, suggestSafelistEntries as R, updateToolEventOutcomes as Ri, resolveStoragePaths as Rn, accentColor as Rr, installProviderDiagnosticHook as Rt, renderSession as S, createStateStore as Si, VAPORWAVE_THEME as Sn, detectPackageManager as Sr, HOST_INTERACTION_ID_PREFIX as St, folderlessCwd as T, getSessionMeta as Ti, CATPPUCCIN_FRAPPE as Tn, performSelfUpdate as Tr, buildResumedToolResultsTurn as Tt, fetchProviderUsage as U, countClaudeSessionFiles as Un, TODOS_METADATA_KEY as Ur, serializePreview as Ut, clearProviderUsageCache as V, scoreArtifacts as Vn, DEFAULT_MAX_TODO_ITEMS as Vr, readFileSafe as Vt, providerUsageSupported as W, hasClaudeCodeSetup as Wn, TODOWRITE_TOOL as Wr, createBuiltinCommands as Wt, redirectUriFromAuthUrl as X, dedupMcpServersByName as Xn, getTodosForRun as Xr, discoverProjectPlugins as Xt, normalizeRedirectPaste as Y, buildMcpServers as Yn, getArchivedTodosForRun as Yr, buildPluginContributions as Yt, oauthUsesManualCodePaste as Z, defaultMcpsConfigPaths as Zn, isTodoTool as Zr, parsePluginScanPathEnv as Zt, buildSpawnEndEvent as _, envSection as _i, useSettings as _n, findInstalledCompanion as _r, useMcpAuthState as _t, renderActiveTodoAnchor as a, ACTIONS_WITH_CARE_DOCTRINE as ai, buildHints as an, buildRestartHint as ar, subscribeMcpToolsCache as at, defaultSkillScanPaths as b, DEFAULT_SESSION_TITLE as bi, resolveChipColor as bn, compareSemver as br, ASK_USER_TOOL as bt, useSelectStyle as c, IDENTITY_PREFIX as ci, useEnabledToggleSet as cn, runUpdateCommand as cr, useMcpToolToggleSet as ct, useTheme as d, PLAN_MODE_DOCTRINE as di, SETTINGS_CHOICES as dn, probeInstalledVersion as dr, parentServerName as dt, sanitizeTodoItems as ei, runCompaction as en, tryOpenBrowser as er, clearMcpToolsCache as et, discoverSystemMd as f, PLAN_MODE_DOCTRINE_NO_PROMPTS as fi, SETTINGS_INPUTS as fn, readUpdateAppliedMarker as fr, createFileMcpCredentialStore as ft, useStreamBuffer as g, buildPlanSystem as gi, enforceSettingsInvariants as gn, writeUpdateAppliedMarker as gr, useMcpAuthDispatch as gt, userSystemMdPath as h, buildBuildSystem as hi, clampFps as hn, watchInstalledVersion as hr, McpAuthProvider as ht, createActiveTodoAnchorHooks as i, useActiveTodos as ii, truncateTrailing as in, upgradeInstalledPackages as ir, saveMcpToolsCache as it, IMPLICITLY_SAFE_TOOLS as j, saveState as ji, createDiscoverySlot as jn, renderAgentsMdBlock as jr, pendingInteractionsFromTurns as jt, useSafeModeActions as k, marginTopFor as ki, parseEditorCommand as kn, summarizeArtifactCounts as kr, isModelInteraction as kt, useSurfaces as l, INTERACTION_GUIDANCE as li, DEFAULT_SETTINGS as ln, UPDATE_APPLIED_MARKER as lr, buildVisibleMcpRows as lt, userScopeOverridesLoad as m, TOKEN_DISCIPLINE_DOCTRINE as mi, SettingsProvider as mn, useRestartRequired as mr, patchMcpCredential as mt, createMemoryApprovalsStore as n, setTodosForRun as ni, clipHintsToWidth as nn, bootProfileEnabled as nr, mcpToolsCachePath as nt, ThemeProvider as o, COMMUNICATION_DOCTRINE as oi, shortChord as on, buildUpdateHint as or, buildToolToggle as ot, renderSystemMdSeed as p, SUBAGENT_GUIDANCE as pi, SETTINGS_TOGGLES as pn, updateAppliedMarkerPath as pr, mcpCredentialsPath as pt, formatPathForCwd as q, removeMcpServer as qn, applyTodosSnapshot as qr, sessionModelFallbacks as qt, computeTurnAnchors as r, todoProgressLabel as ri, hintsLength as rn, bootTick as rr, refreshMcpToolsCatalog as rt, useColors as s, DOING_TASKS_DOCTRINE as si, listProjectFiles as sn, useUpdateCheck as sr, useMcpToolToggleMap as st, createApprovalHub as t, selectActiveTodos as ti, EMPTY_HINTS as tn, tryRevealPath as tr, loadMcpToolsCache as tt, useSyntaxStyles as u, INTERACTION_GUIDANCE_NO_PROMPTS as ui, SETTINGS_CATEGORIES as un, hasUpdateAppliedMarker as ur, indexOfServerRow as ut, buildSpawnStartEvent as v, chatReferenceTokensForPrompt as vi, BUILTIN_THEMES as vn, checkForUpdate as vr, getMcpAuthStatus as vt, writeSessionExport as w, eventsFromTurns as wi, GRUVBOX_LIGHT as wn, performInPlaceSelfUpdate as wr, PRESENT_PLAN_TOOL as wt, discoverProjectSkills as x, compactSummaryEvent as xi, resolveTheme as xn, detectLibc as xr, AUTOMATIC_INTERACTION_INSTRUCTION as xt, buildSkillsConfig as y, createChatTurnsReadTool as yi, DEFAULT_THEME as yn, checkTarballAvailable as yr, reduceMcpAuth as yt, writeProjects as z, usageByModel as zi, ARTIFACTS_COMPLETION_PROVIDER_ID as zn, resolveAgentId as zr, createInteractionHub as zt };
|
|
16681
17034
|
|
|
16682
|
-
//# sourceMappingURL=approvals-
|
|
17035
|
+
//# sourceMappingURL=approvals-DkwGBMZ9.js.map
|