@costrict/csc 4.2.21-beta2 → 4.2.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +3281 -3025
- package/dist/services/rawDump/batchWorker.js +293 -225
- package/package.json +1 -1
|
@@ -736,8 +736,8 @@ function getClientVersion() {
|
|
|
736
736
|
if (cached)
|
|
737
737
|
return cached;
|
|
738
738
|
try {
|
|
739
|
-
if ("4.2.
|
|
740
|
-
cached = "4.2.
|
|
739
|
+
if ("4.2.22") {
|
|
740
|
+
cached = "4.2.22";
|
|
741
741
|
return cached;
|
|
742
742
|
}
|
|
743
743
|
} catch {}
|
|
@@ -61588,46 +61588,68 @@ var init_memoize2 = __esm(() => {
|
|
|
61588
61588
|
|
|
61589
61589
|
// src/utils/windowsPaths.ts
|
|
61590
61590
|
import { existsSync as existsSync3 } from "fs";
|
|
61591
|
-
import * as path12 from "path";
|
|
61592
61591
|
import * as pathWin32 from "path/win32";
|
|
61593
|
-
function
|
|
61594
|
-
|
|
61595
|
-
|
|
61596
|
-
|
|
61597
|
-
|
|
61598
|
-
const defaultLocations = [
|
|
61599
|
-
"C:\\Program Files\\Git\\cmd\\git.exe",
|
|
61600
|
-
"C:\\Program Files (x86)\\Git\\cmd\\git.exe"
|
|
61601
|
-
];
|
|
61602
|
-
for (const location of defaultLocations) {
|
|
61603
|
-
if (checkPathExists(location)) {
|
|
61604
|
-
return location;
|
|
61605
|
-
}
|
|
61606
|
-
}
|
|
61607
|
-
}
|
|
61592
|
+
function isWslBash(candidatePath) {
|
|
61593
|
+
const lower = candidatePath.toLowerCase();
|
|
61594
|
+
return lower.endsWith("\\bash.exe") && (lower.includes("\\windows\\system32\\") || lower.includes("\\windows\\syswow64\\"));
|
|
61595
|
+
}
|
|
61596
|
+
function findExecutableWithDeps(executable, deps) {
|
|
61608
61597
|
try {
|
|
61609
|
-
const
|
|
61610
|
-
|
|
61611
|
-
encoding: "utf8"
|
|
61612
|
-
}).trim();
|
|
61613
|
-
const paths2 = result.split(`\r
|
|
61614
|
-
`).filter(Boolean);
|
|
61615
|
-
const cwd2 = getCwd().toLowerCase();
|
|
61598
|
+
const paths2 = deps.execCommand(`where.exe ${executable}`).split(/\r?\n/u).map((candidate) => candidate.trim()).filter(Boolean);
|
|
61599
|
+
const cwd2 = pathWin32.resolve(deps.cwdFn()).toLowerCase();
|
|
61616
61600
|
for (const candidatePath of paths2) {
|
|
61617
|
-
|
|
61618
|
-
|
|
61619
|
-
|
|
61601
|
+
if (executable === "bash" && isWslBash(candidatePath)) {
|
|
61602
|
+
logForDebugging(`Skipping WSL bash launcher (incompatible with Windows paths): ${candidatePath}`);
|
|
61603
|
+
continue;
|
|
61604
|
+
}
|
|
61605
|
+
const candidateDirectory = pathWin32.dirname(pathWin32.resolve(candidatePath)).toLowerCase();
|
|
61606
|
+
const relativeDirectory = pathWin32.relative(cwd2, candidateDirectory);
|
|
61607
|
+
const isWithinCwd = relativeDirectory === "" || !relativeDirectory.startsWith("..") && !pathWin32.isAbsolute(relativeDirectory);
|
|
61608
|
+
if (isWithinCwd) {
|
|
61620
61609
|
logForDebugging(`Skipping potentially malicious executable in current directory: ${candidatePath}`);
|
|
61621
61610
|
continue;
|
|
61622
61611
|
}
|
|
61623
61612
|
return candidatePath;
|
|
61624
61613
|
}
|
|
61625
|
-
|
|
61626
|
-
|
|
61627
|
-
|
|
61614
|
+
} catch {}
|
|
61615
|
+
return null;
|
|
61616
|
+
}
|
|
61617
|
+
function findCommonGitBashPath(checkExists, userProfile) {
|
|
61618
|
+
const candidates = [
|
|
61619
|
+
"C:\\Program Files\\Git\\bin\\bash.exe",
|
|
61620
|
+
"C:\\Program Files\\Git\\usr\\bin\\bash.exe",
|
|
61621
|
+
"C:\\Program Files (x86)\\Git\\bin\\bash.exe",
|
|
61622
|
+
"C:\\Program Files (x86)\\Git\\usr\\bin\\bash.exe"
|
|
61623
|
+
];
|
|
61624
|
+
if (userProfile) {
|
|
61625
|
+
candidates.push(`${userProfile}\\scoop\\apps\\git\\current\\usr\\bin\\bash.exe`);
|
|
61626
|
+
}
|
|
61627
|
+
return candidates.find(checkExists) ?? null;
|
|
61628
|
+
}
|
|
61629
|
+
function findGitBashPathOrNullWithDeps(deps = DEFAULT_DEPS) {
|
|
61630
|
+
const envOverride = deps.envOverride ?? process.env.COSTRICT_GIT_BASH_PATH ?? process.env.CLAUDE_CODE_GIT_BASH_PATH;
|
|
61631
|
+
if (envOverride) {
|
|
61632
|
+
return deps.checkExists(envOverride) ? envOverride : null;
|
|
61633
|
+
}
|
|
61634
|
+
const bashPath = findExecutableWithDeps("bash", deps);
|
|
61635
|
+
if (bashPath && deps.checkExists(bashPath)) {
|
|
61636
|
+
return bashPath;
|
|
61637
|
+
}
|
|
61638
|
+
const gitPath = findExecutableWithDeps("git", deps);
|
|
61639
|
+
if (gitPath) {
|
|
61640
|
+
const candidates = [
|
|
61641
|
+
pathWin32.join(gitPath, "..", "..", "bin", "bash.exe"),
|
|
61642
|
+
pathWin32.join(gitPath, "..", "..", "usr", "bin", "bash.exe"),
|
|
61643
|
+
pathWin32.join(gitPath, "..", "bash.exe")
|
|
61644
|
+
];
|
|
61645
|
+
const derivedPath = candidates.find(deps.checkExists);
|
|
61646
|
+
if (derivedPath) {
|
|
61647
|
+
return derivedPath;
|
|
61648
|
+
}
|
|
61628
61649
|
}
|
|
61650
|
+
return findCommonGitBashPath(deps.checkExists, deps.userProfile);
|
|
61629
61651
|
}
|
|
61630
|
-
var
|
|
61652
|
+
var DEFAULT_DEPS, findGitBashPathOrNull, windowsPathToPosixPath, posixPathToWindowsPath;
|
|
61631
61653
|
var init_windowsPaths = __esm(() => {
|
|
61632
61654
|
init_memoize();
|
|
61633
61655
|
init_cwd2();
|
|
@@ -61635,24 +61657,13 @@ var init_windowsPaths = __esm(() => {
|
|
|
61635
61657
|
init_execSyncWrapper();
|
|
61636
61658
|
init_memoize2();
|
|
61637
61659
|
init_platform2();
|
|
61638
|
-
|
|
61639
|
-
|
|
61640
|
-
|
|
61641
|
-
|
|
61642
|
-
|
|
61643
|
-
|
|
61644
|
-
|
|
61645
|
-
}
|
|
61646
|
-
const gitPath = findExecutable("git");
|
|
61647
|
-
if (gitPath) {
|
|
61648
|
-
const bashPath = pathWin32.join(gitPath, "..", "..", "bin", "bash.exe");
|
|
61649
|
-
if (checkPathExists(bashPath)) {
|
|
61650
|
-
return bashPath;
|
|
61651
|
-
}
|
|
61652
|
-
}
|
|
61653
|
-
console.error("CoStrict on Windows requires git-bash (https://git-scm.com/downloads/win). If installed but not in PATH, set environment variable pointing to your bash.exe, similar to: COSTRICT_GIT_BASH_PATH=C:\\Program Files\\Git\\bin\\bash.exe");
|
|
61654
|
-
process.exit(1);
|
|
61655
|
-
});
|
|
61660
|
+
DEFAULT_DEPS = {
|
|
61661
|
+
checkExists: existsSync3,
|
|
61662
|
+
execCommand: (cmd) => execSync_DEPRECATED(cmd, { stdio: "pipe", encoding: "utf8" }).trim(),
|
|
61663
|
+
cwdFn: getCwd,
|
|
61664
|
+
userProfile: process.env.USERPROFILE
|
|
61665
|
+
};
|
|
61666
|
+
findGitBashPathOrNull = memoize_default(() => findGitBashPathOrNullWithDeps());
|
|
61656
61667
|
windowsPathToPosixPath = memoizeWithLRU((windowsPath) => {
|
|
61657
61668
|
if (windowsPath.startsWith("\\\\")) {
|
|
61658
61669
|
return windowsPath.replace(/\\/g, "/");
|
|
@@ -61687,15 +61698,15 @@ var init_windowsPaths = __esm(() => {
|
|
|
61687
61698
|
// src/utils/path.ts
|
|
61688
61699
|
import {
|
|
61689
61700
|
dirname as dirname4,
|
|
61690
|
-
isAbsolute,
|
|
61701
|
+
isAbsolute as isAbsolute2,
|
|
61691
61702
|
join as join8,
|
|
61692
61703
|
normalize,
|
|
61693
61704
|
posix,
|
|
61694
|
-
relative,
|
|
61705
|
+
relative as relative2,
|
|
61695
61706
|
resolve as resolve2
|
|
61696
61707
|
} from "path";
|
|
61697
|
-
function normalizePathForConfigKey(
|
|
61698
|
-
const normalized = normalize(
|
|
61708
|
+
function normalizePathForConfigKey(path12) {
|
|
61709
|
+
const normalized = normalize(path12);
|
|
61699
61710
|
return normalized.replace(/\\/g, "/");
|
|
61700
61711
|
}
|
|
61701
61712
|
var init_path2 = __esm(() => {
|
|
@@ -61712,12 +61723,12 @@ import {
|
|
|
61712
61723
|
basename,
|
|
61713
61724
|
dirname as dirname5,
|
|
61714
61725
|
extname,
|
|
61715
|
-
isAbsolute as
|
|
61726
|
+
isAbsolute as isAbsolute3,
|
|
61716
61727
|
join as join9,
|
|
61717
61728
|
normalize as normalize2,
|
|
61718
|
-
relative as
|
|
61729
|
+
relative as relative3,
|
|
61719
61730
|
resolve as resolve3,
|
|
61720
|
-
sep
|
|
61731
|
+
sep
|
|
61721
61732
|
} from "path";
|
|
61722
61733
|
function detectFileEncoding(filePath) {
|
|
61723
61734
|
try {
|
|
@@ -61740,7 +61751,7 @@ function writeFileSyncAndFlush_DEPRECATED(filePath, content, options = { encodin
|
|
|
61740
61751
|
let targetPath = filePath;
|
|
61741
61752
|
try {
|
|
61742
61753
|
const linkTarget = fs5.readlinkSync(filePath);
|
|
61743
|
-
targetPath =
|
|
61754
|
+
targetPath = isAbsolute3(linkTarget) ? linkTarget : resolve3(dirname5(filePath), linkTarget);
|
|
61744
61755
|
logForDebugging(`Writing through symlink: ${filePath} -> ${targetPath}`);
|
|
61745
61756
|
} catch {}
|
|
61746
61757
|
const tempPath = `${targetPath}.tmp.${process.pid}.${Date.now()}`;
|
|
@@ -62234,9 +62245,9 @@ class GitFileWatcher {
|
|
|
62234
62245
|
this.stopWatching();
|
|
62235
62246
|
});
|
|
62236
62247
|
}
|
|
62237
|
-
watchPath(
|
|
62238
|
-
this.watchedPaths.push(
|
|
62239
|
-
watchFile(
|
|
62248
|
+
watchPath(path12, callback) {
|
|
62249
|
+
this.watchedPaths.push(path12);
|
|
62250
|
+
watchFile(path12, { interval: WATCH_INTERVAL_MS }, callback);
|
|
62240
62251
|
}
|
|
62241
62252
|
async watchCurrentBranchRef() {
|
|
62242
62253
|
if (!this.gitDir) {
|
|
@@ -62271,8 +62282,8 @@ class GitFileWatcher {
|
|
|
62271
62282
|
}
|
|
62272
62283
|
}
|
|
62273
62284
|
stopWatching() {
|
|
62274
|
-
for (const
|
|
62275
|
-
unwatchFile(
|
|
62285
|
+
for (const path12 of this.watchedPaths) {
|
|
62286
|
+
unwatchFile(path12);
|
|
62276
62287
|
}
|
|
62277
62288
|
this.watchedPaths = [];
|
|
62278
62289
|
this.branchRefPath = null;
|
|
@@ -62373,7 +62384,7 @@ var init_which = __esm(() => {
|
|
|
62373
62384
|
|
|
62374
62385
|
// src/utils/git.ts
|
|
62375
62386
|
import { readFileSync as readFileSync7, realpathSync as realpathSync3, statSync as statSync3 } from "fs";
|
|
62376
|
-
import { basename as basename2, dirname as dirname6, join as join12, resolve as resolve6, sep as
|
|
62387
|
+
import { basename as basename2, dirname as dirname6, join as join12, resolve as resolve6, sep as sep2 } from "path";
|
|
62377
62388
|
function createFindGitRoot() {
|
|
62378
62389
|
function wrapper(startPath) {
|
|
62379
62390
|
const result = findGitRootImpl(startPath);
|
|
@@ -62411,7 +62422,7 @@ var init_git = __esm(() => {
|
|
|
62411
62422
|
const startTime = Date.now();
|
|
62412
62423
|
logForDiagnosticsNoPII("info", "find_git_root_started");
|
|
62413
62424
|
let current = resolve6(startPath);
|
|
62414
|
-
const root2 = current.substring(0, current.indexOf(
|
|
62425
|
+
const root2 = current.substring(0, current.indexOf(sep2) + 1) || sep2;
|
|
62415
62426
|
let statCount = 0;
|
|
62416
62427
|
while (current !== root2) {
|
|
62417
62428
|
try {
|
|
@@ -62452,7 +62463,7 @@ var init_git = __esm(() => {
|
|
|
62452
62463
|
found: false
|
|
62453
62464
|
});
|
|
62454
62465
|
return GIT_ROOT_NOT_FOUND;
|
|
62455
|
-
}, (
|
|
62466
|
+
}, (path12) => path12, 50);
|
|
62456
62467
|
findGitRoot = createFindGitRoot();
|
|
62457
62468
|
resolveCanonicalRoot = memoizeWithLRU((gitRoot) => {
|
|
62458
62469
|
try {
|
|
@@ -73923,14 +73934,14 @@ var init_measure_text = __esm(() => {
|
|
|
73923
73934
|
});
|
|
73924
73935
|
|
|
73925
73936
|
// packages/@costrict/ink/src/core/node-cache.ts
|
|
73926
|
-
function addPendingClear(parent, rect,
|
|
73937
|
+
function addPendingClear(parent, rect, isAbsolute4) {
|
|
73927
73938
|
const existing = pendingClears.get(parent);
|
|
73928
73939
|
if (existing) {
|
|
73929
73940
|
existing.push(rect);
|
|
73930
73941
|
} else {
|
|
73931
73942
|
pendingClears.set(parent, [rect]);
|
|
73932
73943
|
}
|
|
73933
|
-
if (
|
|
73944
|
+
if (isAbsolute4) {
|
|
73934
73945
|
absoluteNodeRemoved = true;
|
|
73935
73946
|
}
|
|
73936
73947
|
}
|
|
@@ -75135,14 +75146,14 @@ function collectRemovedRects(parent, removed, underAbsolute = false) {
|
|
|
75135
75146
|
if (removed.nodeName === "#text")
|
|
75136
75147
|
return;
|
|
75137
75148
|
const elem = removed;
|
|
75138
|
-
const
|
|
75149
|
+
const isAbsolute4 = underAbsolute || elem.style.position === "absolute";
|
|
75139
75150
|
const cached3 = nodeCache.get(elem);
|
|
75140
75151
|
if (cached3) {
|
|
75141
|
-
addPendingClear(parent, cached3,
|
|
75152
|
+
addPendingClear(parent, cached3, isAbsolute4);
|
|
75142
75153
|
nodeCache.delete(elem);
|
|
75143
75154
|
}
|
|
75144
75155
|
for (const child of elem.childNodes) {
|
|
75145
|
-
collectRemovedRects(parent, child,
|
|
75156
|
+
collectRemovedRects(parent, child, isAbsolute4);
|
|
75146
75157
|
}
|
|
75147
75158
|
}
|
|
75148
75159
|
function stylesEqual(a2, b) {
|
|
@@ -80722,8 +80733,8 @@ function ErrorOverview({ error: error52 }) {
|
|
|
80722
80733
|
]
|
|
80723
80734
|
});
|
|
80724
80735
|
}
|
|
80725
|
-
var import_stack_utils, jsx_runtime5, cleanupPath = (
|
|
80726
|
-
return
|
|
80736
|
+
var import_stack_utils, jsx_runtime5, cleanupPath = (path12) => {
|
|
80737
|
+
return path12?.replace(`file://${process.cwd()}/`, "");
|
|
80727
80738
|
}, stackUtils;
|
|
80728
80739
|
var init_ErrorOverview = __esm(() => {
|
|
80729
80740
|
init_dist2();
|
|
@@ -81337,10 +81348,60 @@ var init_instances = __esm(() => {
|
|
|
81337
81348
|
instances_default = instances;
|
|
81338
81349
|
});
|
|
81339
81350
|
|
|
81351
|
+
// packages/@costrict/ink/src/core/legacyConsole.ts
|
|
81352
|
+
import { release } from "os";
|
|
81353
|
+
function isLegacyWindowsBuild(releaseString) {
|
|
81354
|
+
const build = Number(releaseString.split(".")[2]);
|
|
81355
|
+
return Number.isFinite(build) && build < 17763;
|
|
81356
|
+
}
|
|
81357
|
+
function parseLegacyConsoleMode(override, autoDetected) {
|
|
81358
|
+
if (override === "0")
|
|
81359
|
+
return "off";
|
|
81360
|
+
if (override === "2" || override === "always")
|
|
81361
|
+
return "always";
|
|
81362
|
+
if (override === "1")
|
|
81363
|
+
return "periodic";
|
|
81364
|
+
return autoDetected ? "periodic" : "off";
|
|
81365
|
+
}
|
|
81366
|
+
function parseLegacyConsoleResetMs(raw) {
|
|
81367
|
+
if (raw === undefined || raw.trim() === "")
|
|
81368
|
+
return 1000;
|
|
81369
|
+
const parsed = Number(raw);
|
|
81370
|
+
if (!Number.isFinite(parsed))
|
|
81371
|
+
return 1000;
|
|
81372
|
+
return Math.min(1e4, Math.max(100, Math.floor(parsed)));
|
|
81373
|
+
}
|
|
81374
|
+
function legacyConsoleMode() {
|
|
81375
|
+
if (cachedMode === undefined) {
|
|
81376
|
+
const override = process.env.COSTRICT_LEGACY_CONSOLE ?? process.env.CLAUDE_CODE_LEGACY_CONSOLE;
|
|
81377
|
+
cachedMode = parseLegacyConsoleMode(override, process.platform === "win32" && isLegacyWindowsBuild(release()));
|
|
81378
|
+
}
|
|
81379
|
+
return cachedMode;
|
|
81380
|
+
}
|
|
81381
|
+
function isLegacyWindowsConsole() {
|
|
81382
|
+
return legacyConsoleMode() !== "off";
|
|
81383
|
+
}
|
|
81384
|
+
function legacyConsoleResetMs() {
|
|
81385
|
+
if (cachedResetMs === undefined) {
|
|
81386
|
+
const raw = process.env.COSTRICT_LEGACY_CONSOLE_RESET_MS ?? process.env.CLAUDE_CODE_LEGACY_CONSOLE_RESET_MS;
|
|
81387
|
+
cachedResetMs = parseLegacyConsoleResetMs(raw);
|
|
81388
|
+
}
|
|
81389
|
+
return cachedResetMs;
|
|
81390
|
+
}
|
|
81391
|
+
function effectiveColumns(columns) {
|
|
81392
|
+
const terminalColumns = columns || 80;
|
|
81393
|
+
if (!isLegacyWindowsConsole())
|
|
81394
|
+
return terminalColumns;
|
|
81395
|
+
return Math.max(20, terminalColumns - 1);
|
|
81396
|
+
}
|
|
81397
|
+
var cachedMode, cachedResetMs;
|
|
81398
|
+
var init_legacyConsole = () => {};
|
|
81399
|
+
|
|
81340
81400
|
// packages/@costrict/ink/src/core/log-update.ts
|
|
81341
81401
|
class LogUpdate {
|
|
81342
81402
|
options;
|
|
81343
81403
|
state;
|
|
81404
|
+
lastLegacyReset = 0;
|
|
81344
81405
|
constructor(options) {
|
|
81345
81406
|
this.options = options;
|
|
81346
81407
|
this.state = {
|
|
@@ -81417,6 +81478,11 @@ class LogUpdate {
|
|
|
81417
81478
|
if (next.viewport.height < prev.viewport.height || prev.viewport.width !== 0 && next.viewport.width !== prev.viewport.width) {
|
|
81418
81479
|
return fullResetSequence_CAUSES_FLICKER(next, "resize", stylePool);
|
|
81419
81480
|
}
|
|
81481
|
+
const legacyMode = legacyConsoleMode();
|
|
81482
|
+
if (legacyMode === "always" || legacyMode === "periodic" && startTime2 - this.lastLegacyReset >= legacyConsoleResetMs()) {
|
|
81483
|
+
this.lastLegacyReset = startTime2;
|
|
81484
|
+
return fullResetSequence_CAUSES_FLICKER(next, "clear", stylePool);
|
|
81485
|
+
}
|
|
81420
81486
|
let scrollPatch = [];
|
|
81421
81487
|
if (altScreen && next.scrollHint && decstbmSafe) {
|
|
81422
81488
|
const { top, bottom, delta } = next.scrollHint;
|
|
@@ -81723,6 +81789,7 @@ class VirtualScreen {
|
|
|
81723
81789
|
var logForDebugging3 = (_message) => {}, CARRIAGE_RETURN, NEWLINE;
|
|
81724
81790
|
var init_log_update = __esm(() => {
|
|
81725
81791
|
init_build();
|
|
81792
|
+
init_legacyConsole();
|
|
81726
81793
|
init_screen();
|
|
81727
81794
|
init_csi();
|
|
81728
81795
|
init_osc();
|
|
@@ -83855,16 +83922,16 @@ function renderChildren(node, output, offsetX, offsetY, hasRemovedChild, prevScr
|
|
|
83855
83922
|
for (const childNode of node.childNodes) {
|
|
83856
83923
|
const childElem = childNode;
|
|
83857
83924
|
const wasDirty = childElem.dirty;
|
|
83858
|
-
const
|
|
83925
|
+
const isAbsolute4 = childElem.style.position === "absolute";
|
|
83859
83926
|
renderNodeToOutput(childElem, output, {
|
|
83860
83927
|
offsetX,
|
|
83861
83928
|
offsetY,
|
|
83862
83929
|
prevScreen: hasRemovedChild || seenDirtyChild ? undefined : prevScreen,
|
|
83863
|
-
skipSelfBlit: seenDirtyClipped &&
|
|
83930
|
+
skipSelfBlit: seenDirtyClipped && isAbsolute4 && !childElem.style.opaque && childElem.style.backgroundColor === undefined,
|
|
83864
83931
|
inheritedBackgroundColor
|
|
83865
83932
|
});
|
|
83866
83933
|
if (wasDirty && !seenDirtyChild) {
|
|
83867
|
-
if (!clipsBothAxes(childElem) ||
|
|
83934
|
+
if (!clipsBothAxes(childElem) || isAbsolute4) {
|
|
83868
83935
|
seenDirtyChild = true;
|
|
83869
83936
|
} else {
|
|
83870
83937
|
seenDirtyClipped = true;
|
|
@@ -84249,7 +84316,7 @@ class Ink {
|
|
|
84249
84316
|
stdout: options.stdout,
|
|
84250
84317
|
stderr: options.stderr
|
|
84251
84318
|
};
|
|
84252
|
-
this.terminalColumns = options.stdout.columns
|
|
84319
|
+
this.terminalColumns = effectiveColumns(options.stdout.columns);
|
|
84253
84320
|
this.terminalRows = options.stdout.rows || 24;
|
|
84254
84321
|
this.altScreenParkPatch = makeAltScreenParkPatch(this.terminalRows);
|
|
84255
84322
|
this.stylePool = new StylePool;
|
|
@@ -84313,7 +84380,7 @@ class Ink {
|
|
|
84313
84380
|
this.displayCursor = null;
|
|
84314
84381
|
};
|
|
84315
84382
|
handleResize = () => {
|
|
84316
|
-
const cols = this.options.stdout.columns
|
|
84383
|
+
const cols = effectiveColumns(this.options.stdout.columns);
|
|
84317
84384
|
const rows = this.options.stdout.rows || 24;
|
|
84318
84385
|
if (cols === this.terminalColumns && rows === this.terminalRows)
|
|
84319
84386
|
return;
|
|
@@ -84360,7 +84427,7 @@ class Ink {
|
|
|
84360
84427
|
}
|
|
84361
84428
|
this.options.onBeforeRender?.();
|
|
84362
84429
|
const renderStart = performance.now();
|
|
84363
|
-
const terminalWidth = this.options.stdout.columns
|
|
84430
|
+
const terminalWidth = effectiveColumns(this.options.stdout.columns);
|
|
84364
84431
|
const terminalRows = this.options.stdout.rows || 24;
|
|
84365
84432
|
const frame = this.renderer({
|
|
84366
84433
|
frontFrame: this.frontFrame,
|
|
@@ -85084,6 +85151,7 @@ var init_ink = __esm(() => {
|
|
|
85084
85151
|
init_frame();
|
|
85085
85152
|
init_hit_test();
|
|
85086
85153
|
init_instances();
|
|
85154
|
+
init_legacyConsole();
|
|
85087
85155
|
init_log_update();
|
|
85088
85156
|
init_node_cache();
|
|
85089
85157
|
init_output2();
|
|
@@ -86987,7 +87055,7 @@ function isRunningWithBun() {
|
|
|
86987
87055
|
}
|
|
86988
87056
|
|
|
86989
87057
|
// src/utils/findExecutable.ts
|
|
86990
|
-
function
|
|
87058
|
+
function findExecutable(exe, args) {
|
|
86991
87059
|
const resolved = whichSync(exe);
|
|
86992
87060
|
return { cmd: resolved ?? exe, args };
|
|
86993
87061
|
}
|
|
@@ -87167,7 +87235,7 @@ var init_env = __esm(() => {
|
|
|
87167
87235
|
if (!isWslEnvironment()) {
|
|
87168
87236
|
return false;
|
|
87169
87237
|
}
|
|
87170
|
-
const { cmd } =
|
|
87238
|
+
const { cmd } = findExecutable("npm", []);
|
|
87171
87239
|
return cmd.startsWith("/mnt/c/");
|
|
87172
87240
|
} catch (_error) {
|
|
87173
87241
|
return false;
|
|
@@ -87550,7 +87618,7 @@ var init_schemas3 = __esm(() => {
|
|
|
87550
87618
|
RelativePath = lazySchema(() => exports_external.string().startsWith("./"));
|
|
87551
87619
|
RelativeJSONPath = lazySchema(() => RelativePath().endsWith(".json"));
|
|
87552
87620
|
McpbPath = lazySchema(() => exports_external.union([
|
|
87553
|
-
RelativePath().refine((
|
|
87621
|
+
RelativePath().refine((path12) => path12.endsWith(".mcpb") || path12.endsWith(".dxt"), {
|
|
87554
87622
|
message: "MCPB file path must end with .mcpb or .dxt"
|
|
87555
87623
|
}).describe("Path to MCPB file relative to plugin root"),
|
|
87556
87624
|
exports_external.string().url().refine((url3) => url3.endsWith(".mcpb") || url3.endsWith(".dxt"), {
|
|
@@ -88735,7 +88803,7 @@ function extractReceivedFromMessage(msg) {
|
|
|
88735
88803
|
}
|
|
88736
88804
|
function formatZodError(error52, filePath) {
|
|
88737
88805
|
return error52.issues.map((issue2) => {
|
|
88738
|
-
const
|
|
88806
|
+
const path12 = issue2.path.map(String).join(".");
|
|
88739
88807
|
let message = issue2.message;
|
|
88740
88808
|
let expected;
|
|
88741
88809
|
let enumValues;
|
|
@@ -88760,7 +88828,7 @@ function formatZodError(error52, filePath) {
|
|
|
88760
88828
|
invalidValue = receivedValue;
|
|
88761
88829
|
}
|
|
88762
88830
|
const tip = getValidationTip({
|
|
88763
|
-
path:
|
|
88831
|
+
path: path12,
|
|
88764
88832
|
code: issue2.code,
|
|
88765
88833
|
expected: expectedValue,
|
|
88766
88834
|
received: receivedValue,
|
|
@@ -88773,7 +88841,7 @@ function formatZodError(error52, filePath) {
|
|
|
88773
88841
|
message = `Invalid value. Expected one of: ${expected}`;
|
|
88774
88842
|
} else if (isInvalidTypeIssue(issue2)) {
|
|
88775
88843
|
const receivedType = extractReceivedFromMessage(issue2.message) ?? getReceivedType(issue2.input);
|
|
88776
|
-
if (issue2.expected === "object" && receivedType === "null" &&
|
|
88844
|
+
if (issue2.expected === "object" && receivedType === "null" && path12 === "") {
|
|
88777
88845
|
message = "Invalid or malformed JSON";
|
|
88778
88846
|
} else {
|
|
88779
88847
|
message = `Expected ${issue2.expected}, but received ${receivedType}`;
|
|
@@ -88787,7 +88855,7 @@ function formatZodError(error52, filePath) {
|
|
|
88787
88855
|
}
|
|
88788
88856
|
return {
|
|
88789
88857
|
file: filePath,
|
|
88790
|
-
path:
|
|
88858
|
+
path: path12,
|
|
88791
88859
|
message,
|
|
88792
88860
|
expected,
|
|
88793
88861
|
invalidValue,
|
|
@@ -88912,45 +88980,45 @@ function loadManagedFileSettings() {
|
|
|
88912
88980
|
}
|
|
88913
88981
|
return { settings: found ? merged : null, errors: errors3 };
|
|
88914
88982
|
}
|
|
88915
|
-
function handleFileSystemError(error52,
|
|
88983
|
+
function handleFileSystemError(error52, path12) {
|
|
88916
88984
|
if (typeof error52 === "object" && error52 && "code" in error52 && error52.code === "ENOENT") {
|
|
88917
|
-
logForDebugging(`Broken symlink or missing file encountered for settings.json at path: ${
|
|
88985
|
+
logForDebugging(`Broken symlink or missing file encountered for settings.json at path: ${path12}`);
|
|
88918
88986
|
} else {
|
|
88919
88987
|
logError2(error52);
|
|
88920
88988
|
}
|
|
88921
88989
|
}
|
|
88922
|
-
function parseSettingsFile(
|
|
88923
|
-
const cached3 = getCachedParsedFile(
|
|
88990
|
+
function parseSettingsFile(path12) {
|
|
88991
|
+
const cached3 = getCachedParsedFile(path12);
|
|
88924
88992
|
if (cached3) {
|
|
88925
88993
|
return {
|
|
88926
88994
|
settings: cached3.settings ? clone(cached3.settings) : null,
|
|
88927
88995
|
errors: cached3.errors
|
|
88928
88996
|
};
|
|
88929
88997
|
}
|
|
88930
|
-
const result = parseSettingsFileUncached(
|
|
88931
|
-
setCachedParsedFile(
|
|
88998
|
+
const result = parseSettingsFileUncached(path12);
|
|
88999
|
+
setCachedParsedFile(path12, result);
|
|
88932
89000
|
return {
|
|
88933
89001
|
settings: result.settings ? clone(result.settings) : null,
|
|
88934
89002
|
errors: result.errors
|
|
88935
89003
|
};
|
|
88936
89004
|
}
|
|
88937
|
-
function parseSettingsFileUncached(
|
|
89005
|
+
function parseSettingsFileUncached(path12) {
|
|
88938
89006
|
try {
|
|
88939
|
-
const { resolvedPath } = safeResolvePath(getFsImplementation(),
|
|
89007
|
+
const { resolvedPath } = safeResolvePath(getFsImplementation(), path12);
|
|
88940
89008
|
const content = readFileSync6(resolvedPath);
|
|
88941
89009
|
if (content.trim() === "") {
|
|
88942
89010
|
return { settings: {}, errors: [] };
|
|
88943
89011
|
}
|
|
88944
89012
|
const data = safeParseJSON(content, false);
|
|
88945
|
-
const ruleWarnings = filterInvalidPermissionRules(data,
|
|
89013
|
+
const ruleWarnings = filterInvalidPermissionRules(data, path12);
|
|
88946
89014
|
const result = SettingsSchema().safeParse(data);
|
|
88947
89015
|
if (!result.success) {
|
|
88948
|
-
const errors3 = formatZodError(result.error,
|
|
89016
|
+
const errors3 = formatZodError(result.error, path12);
|
|
88949
89017
|
return { settings: null, errors: [...ruleWarnings, ...errors3] };
|
|
88950
89018
|
}
|
|
88951
89019
|
return { settings: result.data, errors: ruleWarnings };
|
|
88952
89020
|
} catch (error52) {
|
|
88953
|
-
handleFileSystemError(error52,
|
|
89021
|
+
handleFileSystemError(error52, path12);
|
|
88954
89022
|
return { settings: null, errors: [] };
|
|
88955
89023
|
}
|
|
88956
89024
|
}
|
|
@@ -88964,8 +89032,8 @@ function getSettingsRootPathForSource(source) {
|
|
|
88964
89032
|
return resolve7(getOriginalCwd());
|
|
88965
89033
|
}
|
|
88966
89034
|
case "flagSettings": {
|
|
88967
|
-
const
|
|
88968
|
-
return
|
|
89035
|
+
const path12 = getFlagSettingsPath();
|
|
89036
|
+
return path12 ? dirname7(resolve7(path12)) : resolve7(getOriginalCwd());
|
|
88969
89037
|
}
|
|
88970
89038
|
}
|
|
88971
89039
|
}
|
|
@@ -89522,26 +89590,26 @@ var init_dist4 = __esm(() => {
|
|
|
89522
89590
|
});
|
|
89523
89591
|
|
|
89524
89592
|
// src/utils/caCerts.ts
|
|
89525
|
-
function readExtraCACert(
|
|
89526
|
-
if (!
|
|
89593
|
+
function readExtraCACert(path12) {
|
|
89594
|
+
if (!path12) {
|
|
89527
89595
|
return;
|
|
89528
89596
|
}
|
|
89529
89597
|
try {
|
|
89530
|
-
const stats = getFsImplementation().statSync(
|
|
89598
|
+
const stats = getFsImplementation().statSync(path12);
|
|
89531
89599
|
if (!stats.isFile()) {
|
|
89532
|
-
logForDebugging(`CA certs: Ignoring NODE_EXTRA_CA_CERTS because it is not a regular file (${
|
|
89533
|
-
clearInvalidExtraCACertsEnv(
|
|
89600
|
+
logForDebugging(`CA certs: Ignoring NODE_EXTRA_CA_CERTS because it is not a regular file (${path12})`, { level: "error" });
|
|
89601
|
+
clearInvalidExtraCACertsEnv(path12);
|
|
89534
89602
|
return;
|
|
89535
89603
|
}
|
|
89536
|
-
return getFsImplementation().readFileSync(
|
|
89604
|
+
return getFsImplementation().readFileSync(path12, { encoding: "utf8" });
|
|
89537
89605
|
} catch (error52) {
|
|
89538
|
-
logForDebugging(`CA certs: Ignoring unreadable NODE_EXTRA_CA_CERTS path (${
|
|
89539
|
-
clearInvalidExtraCACertsEnv(
|
|
89606
|
+
logForDebugging(`CA certs: Ignoring unreadable NODE_EXTRA_CA_CERTS path (${path12}): ${error52}`, { level: "error" });
|
|
89607
|
+
clearInvalidExtraCACertsEnv(path12);
|
|
89540
89608
|
return;
|
|
89541
89609
|
}
|
|
89542
89610
|
}
|
|
89543
|
-
function clearInvalidExtraCACertsEnv(
|
|
89544
|
-
if (process.env.NODE_EXTRA_CA_CERTS ===
|
|
89611
|
+
function clearInvalidExtraCACertsEnv(path12) {
|
|
89612
|
+
if (process.env.NODE_EXTRA_CA_CERTS === path12) {
|
|
89545
89613
|
delete process.env.NODE_EXTRA_CA_CERTS;
|
|
89546
89614
|
}
|
|
89547
89615
|
}
|
|
@@ -91893,14 +91961,14 @@ var require_config = __commonJS((exports) => {
|
|
|
91893
91961
|
};
|
|
91894
91962
|
var filePromises = {};
|
|
91895
91963
|
var fileIntercept = {};
|
|
91896
|
-
var readFile3 = (
|
|
91897
|
-
if (fileIntercept[
|
|
91898
|
-
return fileIntercept[
|
|
91964
|
+
var readFile3 = (path12, options) => {
|
|
91965
|
+
if (fileIntercept[path12] !== undefined) {
|
|
91966
|
+
return fileIntercept[path12];
|
|
91899
91967
|
}
|
|
91900
|
-
if (!filePromises[
|
|
91901
|
-
filePromises[
|
|
91968
|
+
if (!filePromises[path12] || options?.ignoreCache) {
|
|
91969
|
+
filePromises[path12] = promises.readFile(path12, "utf8");
|
|
91902
91970
|
}
|
|
91903
|
-
return filePromises[
|
|
91971
|
+
return filePromises[path12];
|
|
91904
91972
|
};
|
|
91905
91973
|
var swallowError$1 = () => ({});
|
|
91906
91974
|
var loadSharedConfigFiles = async (init = {}) => {
|
|
@@ -91952,8 +92020,8 @@ var require_config = __commonJS((exports) => {
|
|
|
91952
92020
|
getFileRecord() {
|
|
91953
92021
|
return fileIntercept;
|
|
91954
92022
|
},
|
|
91955
|
-
interceptFile(
|
|
91956
|
-
fileIntercept[
|
|
92023
|
+
interceptFile(path12, contents) {
|
|
92024
|
+
fileIntercept[path12] = Promise.resolve(contents);
|
|
91957
92025
|
},
|
|
91958
92026
|
getTokenRecord() {
|
|
91959
92027
|
return tokenIntercept;
|
|
@@ -92226,13 +92294,13 @@ var require_config = __commonJS((exports) => {
|
|
|
92226
92294
|
}
|
|
92227
92295
|
return { hostname: "169.254.169.254", path: "/" };
|
|
92228
92296
|
};
|
|
92229
|
-
var imdsHttpGet = async ({ hostname: hostname3, path:
|
|
92297
|
+
var imdsHttpGet = async ({ hostname: hostname3, path: path12 }) => {
|
|
92230
92298
|
const { request } = await import("http");
|
|
92231
92299
|
return new Promise((resolve8, reject) => {
|
|
92232
92300
|
const req = request({
|
|
92233
92301
|
method: "GET",
|
|
92234
92302
|
hostname: hostname3.replace(/^\[(.+)]$/, "$1"),
|
|
92235
|
-
path:
|
|
92303
|
+
path: path12,
|
|
92236
92304
|
timeout: 1000,
|
|
92237
92305
|
signal: AbortSignal.timeout(1000)
|
|
92238
92306
|
});
|
|
@@ -92412,8 +92480,8 @@ var require_endpoints = __commonJS((exports) => {
|
|
|
92412
92480
|
return endpoint.url.href;
|
|
92413
92481
|
}
|
|
92414
92482
|
if ("hostname" in endpoint) {
|
|
92415
|
-
const { protocol, hostname: hostname3, port: port2, path:
|
|
92416
|
-
return `${protocol}//${hostname3}${port2 ? ":" + port2 : ""}${
|
|
92483
|
+
const { protocol, hostname: hostname3, port: port2, path: path12 } = endpoint;
|
|
92484
|
+
return `${protocol}//${hostname3}${port2 ? ":" + port2 : ""}${path12}`;
|
|
92417
92485
|
}
|
|
92418
92486
|
}
|
|
92419
92487
|
return endpoint;
|
|
@@ -92668,18 +92736,18 @@ var require_endpoints = __commonJS((exports) => {
|
|
|
92668
92736
|
}
|
|
92669
92737
|
return;
|
|
92670
92738
|
}
|
|
92671
|
-
var getAttrPathList = (
|
|
92672
|
-
const parts =
|
|
92739
|
+
var getAttrPathList = (path12) => {
|
|
92740
|
+
const parts = path12.split(".");
|
|
92673
92741
|
const pathList = [];
|
|
92674
92742
|
for (const part of parts) {
|
|
92675
92743
|
const squareBracketIndex = part.indexOf("[");
|
|
92676
92744
|
if (squareBracketIndex !== -1) {
|
|
92677
92745
|
if (part.indexOf("]") !== part.length - 1) {
|
|
92678
|
-
throw new EndpointError(`Path: '${
|
|
92746
|
+
throw new EndpointError(`Path: '${path12}' does not end with ']'`);
|
|
92679
92747
|
}
|
|
92680
92748
|
const arrayIndex = part.slice(squareBracketIndex + 1, -1);
|
|
92681
92749
|
if (Number.isNaN(parseInt(arrayIndex))) {
|
|
92682
|
-
throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${
|
|
92750
|
+
throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path12}'`);
|
|
92683
92751
|
}
|
|
92684
92752
|
if (squareBracketIndex !== 0) {
|
|
92685
92753
|
pathList.push(part.slice(0, squareBracketIndex));
|
|
@@ -92691,9 +92759,9 @@ var require_endpoints = __commonJS((exports) => {
|
|
|
92691
92759
|
}
|
|
92692
92760
|
return pathList;
|
|
92693
92761
|
};
|
|
92694
|
-
var getAttr = (value,
|
|
92762
|
+
var getAttr = (value, path12) => getAttrPathList(path12).reduce((acc, index2) => {
|
|
92695
92763
|
if (typeof acc !== "object") {
|
|
92696
|
-
throw new EndpointError(`Index '${index2}' in '${
|
|
92764
|
+
throw new EndpointError(`Index '${index2}' in '${path12}' not found in '${JSON.stringify(value)}'`);
|
|
92697
92765
|
} else if (Array.isArray(acc)) {
|
|
92698
92766
|
const i2 = parseInt(index2);
|
|
92699
92767
|
return acc[i2 < 0 ? acc.length + i2 : i2];
|
|
@@ -92718,8 +92786,8 @@ var require_endpoints = __commonJS((exports) => {
|
|
|
92718
92786
|
return value;
|
|
92719
92787
|
}
|
|
92720
92788
|
if (typeof value === "object" && "hostname" in value) {
|
|
92721
|
-
const { hostname: hostname4, port: port2, protocol: protocol2 = "", path:
|
|
92722
|
-
const url3 = new URL(`${protocol2}//${hostname4}${port2 ? `:${port2}` : ""}${
|
|
92789
|
+
const { hostname: hostname4, port: port2, protocol: protocol2 = "", path: path12 = "", query = {} } = value;
|
|
92790
|
+
const url3 = new URL(`${protocol2}//${hostname4}${port2 ? `:${port2}` : ""}${path12}`);
|
|
92723
92791
|
url3.search = Object.entries(query).map(([k2, v]) => `${k2}=${v}`).join("&");
|
|
92724
92792
|
return url3;
|
|
92725
92793
|
}
|
|
@@ -95339,13 +95407,13 @@ var require_tslib = __commonJS((exports, module) => {
|
|
|
95339
95407
|
}
|
|
95340
95408
|
return next();
|
|
95341
95409
|
};
|
|
95342
|
-
__rewriteRelativeImportExtension = function(
|
|
95343
|
-
if (typeof
|
|
95344
|
-
return
|
|
95410
|
+
__rewriteRelativeImportExtension = function(path12, preserveJsx) {
|
|
95411
|
+
if (typeof path12 === "string" && /^\.\.?\//.test(path12)) {
|
|
95412
|
+
return path12.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m, tsx, d, ext, cm) {
|
|
95345
95413
|
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : d + ext + "." + cm.toLowerCase() + "js";
|
|
95346
95414
|
});
|
|
95347
95415
|
}
|
|
95348
|
-
return
|
|
95416
|
+
return path12;
|
|
95349
95417
|
};
|
|
95350
95418
|
exporter("__extends", __extends);
|
|
95351
95419
|
exporter("__assign", __assign);
|
|
@@ -96983,11 +97051,11 @@ var require_protocols = __commonJS((exports) => {
|
|
|
96983
97051
|
const opTraits = schema.translateTraits(operationSchema.traits);
|
|
96984
97052
|
if (opTraits.http) {
|
|
96985
97053
|
request.method = opTraits.http[0];
|
|
96986
|
-
const [
|
|
97054
|
+
const [path12, search] = opTraits.http[1].split("?");
|
|
96987
97055
|
if (request.path == "/") {
|
|
96988
|
-
request.path =
|
|
97056
|
+
request.path = path12;
|
|
96989
97057
|
} else {
|
|
96990
|
-
request.path +=
|
|
97058
|
+
request.path += path12;
|
|
96991
97059
|
}
|
|
96992
97060
|
const traitSearchParams = new URLSearchParams(search ?? "");
|
|
96993
97061
|
for (const [key, value] of traitSearchParams) {
|
|
@@ -97362,8 +97430,8 @@ var require_protocols = __commonJS((exports) => {
|
|
|
97362
97430
|
return this;
|
|
97363
97431
|
}
|
|
97364
97432
|
p(memberName, labelValueProvider, uriLabel, isGreedyLabel) {
|
|
97365
|
-
this.resolvePathStack.push((
|
|
97366
|
-
this.path = resolvedPath(
|
|
97433
|
+
this.resolvePathStack.push((path12) => {
|
|
97434
|
+
this.path = resolvedPath(path12, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel);
|
|
97367
97435
|
});
|
|
97368
97436
|
return this;
|
|
97369
97437
|
}
|
|
@@ -98062,12 +98130,12 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
|
|
|
98062
98130
|
const password = request.password ?? "";
|
|
98063
98131
|
auth = `${username}:${password}`;
|
|
98064
98132
|
}
|
|
98065
|
-
let
|
|
98133
|
+
let path12 = request.path;
|
|
98066
98134
|
if (queryString) {
|
|
98067
|
-
|
|
98135
|
+
path12 += `?${queryString}`;
|
|
98068
98136
|
}
|
|
98069
98137
|
if (request.fragment) {
|
|
98070
|
-
|
|
98138
|
+
path12 += `#${request.fragment}`;
|
|
98071
98139
|
}
|
|
98072
98140
|
let hostname3 = request.hostname ?? "";
|
|
98073
98141
|
if (hostname3[0] === "[" && hostname3.endsWith("]")) {
|
|
@@ -98079,7 +98147,7 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
|
|
|
98079
98147
|
headers: request.headers,
|
|
98080
98148
|
host: hostname3,
|
|
98081
98149
|
method: request.method,
|
|
98082
|
-
path:
|
|
98150
|
+
path: path12,
|
|
98083
98151
|
port: request.port,
|
|
98084
98152
|
agent,
|
|
98085
98153
|
auth
|
|
@@ -98486,16 +98554,16 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
|
|
|
98486
98554
|
reject(err);
|
|
98487
98555
|
};
|
|
98488
98556
|
const queryString = query ? protocols.buildQueryString(query) : "";
|
|
98489
|
-
let
|
|
98557
|
+
let path12 = request.path;
|
|
98490
98558
|
if (queryString) {
|
|
98491
|
-
|
|
98559
|
+
path12 += `?${queryString}`;
|
|
98492
98560
|
}
|
|
98493
98561
|
if (request.fragment) {
|
|
98494
|
-
|
|
98562
|
+
path12 += `#${request.fragment}`;
|
|
98495
98563
|
}
|
|
98496
98564
|
const clientHttp2Stream = session.request({
|
|
98497
98565
|
...request.headers,
|
|
98498
|
-
[constants4.HTTP2_HEADER_PATH]:
|
|
98566
|
+
[constants4.HTTP2_HEADER_PATH]: path12,
|
|
98499
98567
|
[constants4.HTTP2_HEADER_METHOD]: method
|
|
98500
98568
|
});
|
|
98501
98569
|
if (effectiveRequestTimeout) {
|
|
@@ -99700,9 +99768,9 @@ var require_dist_cjs6 = __commonJS((exports) => {
|
|
|
99700
99768
|
return;
|
|
99701
99769
|
};
|
|
99702
99770
|
}
|
|
99703
|
-
var get2 = (fromObject,
|
|
99771
|
+
var get2 = (fromObject, path12) => {
|
|
99704
99772
|
let cursor = fromObject;
|
|
99705
|
-
const pathComponents =
|
|
99773
|
+
const pathComponents = path12.split(".");
|
|
99706
99774
|
for (const step of pathComponents) {
|
|
99707
99775
|
if (!cursor || typeof cursor !== "object") {
|
|
99708
99776
|
return;
|
|
@@ -103541,12 +103609,12 @@ import fs5 from "fs/promises";
|
|
|
103541
103609
|
var import_client4, import_config9, import_node_http_handler, AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI", DEFAULT_LINK_LOCAL_HOST = "http://169.254.170.2", AWS_CONTAINER_CREDENTIALS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI", AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = "AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE", AWS_CONTAINER_AUTHORIZATION_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN", fromHttp = (options = {}) => {
|
|
103542
103610
|
options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");
|
|
103543
103611
|
let host;
|
|
103544
|
-
const
|
|
103612
|
+
const relative4 = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];
|
|
103545
103613
|
const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];
|
|
103546
103614
|
const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];
|
|
103547
103615
|
const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];
|
|
103548
103616
|
const warn = options.logger?.constructor?.name === "NoOpLogger" || !options.logger?.warn ? console.warn : options.logger.warn.bind(options.logger);
|
|
103549
|
-
if (
|
|
103617
|
+
if (relative4 && full) {
|
|
103550
103618
|
warn("@aws-sdk/credential-provider-http: " + "you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.");
|
|
103551
103619
|
warn("awsContainerCredentialsFullUri will take precedence.");
|
|
103552
103620
|
}
|
|
@@ -103556,8 +103624,8 @@ var import_client4, import_config9, import_node_http_handler, AWS_CONTAINER_CRED
|
|
|
103556
103624
|
}
|
|
103557
103625
|
if (full) {
|
|
103558
103626
|
host = full;
|
|
103559
|
-
} else if (
|
|
103560
|
-
host = `${DEFAULT_LINK_LOCAL_HOST}${
|
|
103627
|
+
} else if (relative4) {
|
|
103628
|
+
host = `${DEFAULT_LINK_LOCAL_HOST}${relative4}`;
|
|
103561
103629
|
} else {
|
|
103562
103630
|
throw new import_config9.CredentialsProviderError(`No HTTP credential provider host provided.
|
|
103563
103631
|
Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });
|
|
@@ -103933,10 +104001,10 @@ ${longDate}
|
|
|
103933
104001
|
${credentialScope}
|
|
103934
104002
|
${serde.toHex(hashedRequest)}`;
|
|
103935
104003
|
}
|
|
103936
|
-
getCanonicalPath({ path:
|
|
104004
|
+
getCanonicalPath({ path: path12 }) {
|
|
103937
104005
|
if (this.uriEscapePath) {
|
|
103938
104006
|
const normalizedPathSegments = [];
|
|
103939
|
-
for (const pathSegment of
|
|
104007
|
+
for (const pathSegment of path12.split("/")) {
|
|
103940
104008
|
if (pathSegment?.length === 0)
|
|
103941
104009
|
continue;
|
|
103942
104010
|
if (pathSegment === ".")
|
|
@@ -103947,11 +104015,11 @@ ${serde.toHex(hashedRequest)}`;
|
|
|
103947
104015
|
normalizedPathSegments.push(pathSegment);
|
|
103948
104016
|
}
|
|
103949
104017
|
}
|
|
103950
|
-
const normalizedPath = `${
|
|
104018
|
+
const normalizedPath = `${path12?.startsWith("/") ? "/" : ""}${normalizedPathSegments.join("/")}${normalizedPathSegments.length > 0 && path12?.endsWith("/") ? "/" : ""}`;
|
|
103951
104019
|
const doubleEncoded = protocols.escapeUri(normalizedPath);
|
|
103952
104020
|
return doubleEncoded.replace(/%2F/g, "/");
|
|
103953
104021
|
}
|
|
103954
|
-
return
|
|
104022
|
+
return path12;
|
|
103955
104023
|
}
|
|
103956
104024
|
validateResolvedCredentials(credentials) {
|
|
103957
104025
|
if (typeof credentials !== "object" || typeof credentials.accessKeyId !== "string" || typeof credentials.secretAccessKey !== "string") {
|
|
@@ -105258,7 +105326,7 @@ var require_cbor = __commonJS((exports) => {
|
|
|
105258
105326
|
throw new Error("Malformed RPCv2 CBOR response, status: " + response.statusCode);
|
|
105259
105327
|
}
|
|
105260
105328
|
};
|
|
105261
|
-
var buildHttpRpcRequest = async (context, headers,
|
|
105329
|
+
var buildHttpRpcRequest = async (context, headers, path12, resolvedHostname, body) => {
|
|
105262
105330
|
const endpoint = await context.endpoint();
|
|
105263
105331
|
const { hostname: hostname3, protocol = "https", port: port2, path: basePath } = endpoint;
|
|
105264
105332
|
const contents = {
|
|
@@ -105266,7 +105334,7 @@ var require_cbor = __commonJS((exports) => {
|
|
|
105266
105334
|
hostname: hostname3,
|
|
105267
105335
|
port: port2,
|
|
105268
105336
|
method: "POST",
|
|
105269
|
-
path: basePath.endsWith("/") ? basePath.slice(0, -1) +
|
|
105337
|
+
path: basePath.endsWith("/") ? basePath.slice(0, -1) + path12 : basePath + path12,
|
|
105270
105338
|
headers: {
|
|
105271
105339
|
...headers
|
|
105272
105340
|
}
|
|
@@ -105521,11 +105589,11 @@ var require_cbor = __commonJS((exports) => {
|
|
|
105521
105589
|
} catch (e) {}
|
|
105522
105590
|
}
|
|
105523
105591
|
const { service, operation } = client.getSmithyContext(context);
|
|
105524
|
-
const
|
|
105592
|
+
const path12 = `/service/${service}/operation/${operation}`;
|
|
105525
105593
|
if (request.path.endsWith("/")) {
|
|
105526
|
-
request.path +=
|
|
105594
|
+
request.path += path12.slice(1);
|
|
105527
105595
|
} else {
|
|
105528
|
-
request.path +=
|
|
105596
|
+
request.path += path12;
|
|
105529
105597
|
}
|
|
105530
105598
|
return request;
|
|
105531
105599
|
}
|
|
@@ -124353,30 +124421,30 @@ var init_client2 = __esm(() => {
|
|
|
124353
124421
|
|
|
124354
124422
|
// src/utils/authFileDescriptor.ts
|
|
124355
124423
|
import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync3 } from "fs";
|
|
124356
|
-
function maybePersistTokenForSubprocesses(
|
|
124424
|
+
function maybePersistTokenForSubprocesses(path12, token, tokenName) {
|
|
124357
124425
|
if (!isEnvTruthy(process.env.CLAUDE_CODE_REMOTE)) {
|
|
124358
124426
|
return;
|
|
124359
124427
|
}
|
|
124360
124428
|
try {
|
|
124361
124429
|
mkdirSync2(CCR_TOKEN_DIR, { recursive: true, mode: 448 });
|
|
124362
|
-
writeFileSync3(
|
|
124363
|
-
logForDebugging(`Persisted ${tokenName} to ${
|
|
124430
|
+
writeFileSync3(path12, token, { encoding: "utf8", mode: 384 });
|
|
124431
|
+
logForDebugging(`Persisted ${tokenName} to ${path12} for subprocess access`);
|
|
124364
124432
|
} catch (error52) {
|
|
124365
124433
|
logForDebugging(`Failed to persist ${tokenName} to disk (non-fatal): ${errorMessage(error52)}`, { level: "error" });
|
|
124366
124434
|
}
|
|
124367
124435
|
}
|
|
124368
|
-
function readTokenFromWellKnownFile(
|
|
124436
|
+
function readTokenFromWellKnownFile(path12, tokenName) {
|
|
124369
124437
|
try {
|
|
124370
124438
|
const fsOps = getFsImplementation();
|
|
124371
|
-
const token = fsOps.readFileSync(
|
|
124439
|
+
const token = fsOps.readFileSync(path12, { encoding: "utf8" }).trim();
|
|
124372
124440
|
if (!token) {
|
|
124373
124441
|
return null;
|
|
124374
124442
|
}
|
|
124375
|
-
logForDebugging(`Read ${tokenName} from well-known file ${
|
|
124443
|
+
logForDebugging(`Read ${tokenName} from well-known file ${path12}`);
|
|
124376
124444
|
return token;
|
|
124377
124445
|
} catch (error52) {
|
|
124378
124446
|
if (!isENOENT(error52)) {
|
|
124379
|
-
logForDebugging(`Failed to read ${tokenName} from ${
|
|
124447
|
+
logForDebugging(`Failed to read ${tokenName} from ${path12}: ${errorMessage(error52)}`, { level: "debug" });
|
|
124380
124448
|
}
|
|
124381
124449
|
return null;
|
|
124382
124450
|
}
|
|
@@ -127682,15 +127750,15 @@ var init_modelCapabilities = __esm(() => {
|
|
|
127682
127750
|
models: exports_external.array(ModelCapabilitySchema()),
|
|
127683
127751
|
timestamp: exports_external.number()
|
|
127684
127752
|
}));
|
|
127685
|
-
loadCache = memoize_default((
|
|
127753
|
+
loadCache = memoize_default((path12) => {
|
|
127686
127754
|
try {
|
|
127687
|
-
const raw = readFileSync10(
|
|
127755
|
+
const raw = readFileSync10(path12, "utf-8");
|
|
127688
127756
|
const parsed = CacheFileSchema().safeParse(safeParseJSON(raw, false));
|
|
127689
127757
|
return parsed.success ? parsed.data.models : null;
|
|
127690
127758
|
} catch {
|
|
127691
127759
|
return null;
|
|
127692
127760
|
}
|
|
127693
|
-
}, (
|
|
127761
|
+
}, (path12) => path12);
|
|
127694
127762
|
});
|
|
127695
127763
|
|
|
127696
127764
|
// src/costrict/provider/models.ts
|
|
@@ -132576,7 +132644,7 @@ var require_util2 = __commonJS((exports) => {
|
|
|
132576
132644
|
exports.getWellKnownCertificateConfigFileLocation = getWellKnownCertificateConfigFileLocation;
|
|
132577
132645
|
var fs7 = __require("fs");
|
|
132578
132646
|
var os4 = __require("os");
|
|
132579
|
-
var
|
|
132647
|
+
var path12 = __require("path");
|
|
132580
132648
|
var WELL_KNOWN_CERTIFICATE_CONFIG_FILE = "certificate_config.json";
|
|
132581
132649
|
var CLOUDSDK_CONFIG_DIRECTORY = "gcloud";
|
|
132582
132650
|
function snakeToCamel(str) {
|
|
@@ -132644,8 +132712,8 @@ var require_util2 = __commonJS((exports) => {
|
|
|
132644
132712
|
}
|
|
132645
132713
|
}
|
|
132646
132714
|
function getWellKnownCertificateConfigFileLocation() {
|
|
132647
|
-
const configDir = process.env.CLOUDSDK_CONFIG || (_isWindows() ?
|
|
132648
|
-
return
|
|
132715
|
+
const configDir = process.env.CLOUDSDK_CONFIG || (_isWindows() ? path12.join(process.env.APPDATA || "", CLOUDSDK_CONFIG_DIRECTORY) : path12.join(process.env.HOME || "", ".config", CLOUDSDK_CONFIG_DIRECTORY));
|
|
132716
|
+
return path12.join(configDir, WELL_KNOWN_CERTIFICATE_CONFIG_FILE);
|
|
132649
132717
|
}
|
|
132650
132718
|
function _isWindows() {
|
|
132651
132719
|
return os4.platform().startsWith("win");
|
|
@@ -134356,7 +134424,7 @@ var require_errorWithCode = __commonJS((exports) => {
|
|
|
134356
134424
|
var require_getCredentials = __commonJS((exports) => {
|
|
134357
134425
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
134358
134426
|
exports.getCredentials = getCredentials2;
|
|
134359
|
-
var
|
|
134427
|
+
var path12 = __require("path");
|
|
134360
134428
|
var fs7 = __require("fs");
|
|
134361
134429
|
var util_1 = __require("util");
|
|
134362
134430
|
var errorWithCode_1 = require_errorWithCode();
|
|
@@ -134415,7 +134483,7 @@ var require_getCredentials = __commonJS((exports) => {
|
|
|
134415
134483
|
|
|
134416
134484
|
class CredentialsProviderFactory {
|
|
134417
134485
|
static create(keyFilePath) {
|
|
134418
|
-
const keyFileExtension =
|
|
134486
|
+
const keyFileExtension = path12.extname(keyFilePath);
|
|
134419
134487
|
switch (keyFileExtension) {
|
|
134420
134488
|
case ExtensionFiles.JSON:
|
|
134421
134489
|
return new JsonCredentialsProvider(keyFilePath);
|
|
@@ -137016,7 +137084,7 @@ var require_googleauth = __commonJS((exports) => {
|
|
|
137016
137084
|
var gaxios_1 = require_src3();
|
|
137017
137085
|
var gcpMetadata = require_src5();
|
|
137018
137086
|
var os4 = __require("os");
|
|
137019
|
-
var
|
|
137087
|
+
var path12 = __require("path");
|
|
137020
137088
|
var crypto_1 = require_crypto3();
|
|
137021
137089
|
var computeclient_1 = require_computeclient();
|
|
137022
137090
|
var idtokenclient_1 = require_idtokenclient();
|
|
@@ -137225,11 +137293,11 @@ var require_googleauth = __commonJS((exports) => {
|
|
|
137225
137293
|
} else {
|
|
137226
137294
|
const home = process.env["HOME"];
|
|
137227
137295
|
if (home) {
|
|
137228
|
-
location =
|
|
137296
|
+
location = path12.join(home, ".config");
|
|
137229
137297
|
}
|
|
137230
137298
|
}
|
|
137231
137299
|
if (location) {
|
|
137232
|
-
location =
|
|
137300
|
+
location = path12.join(location, "gcloud", "application_default_credentials.json");
|
|
137233
137301
|
if (!fs7.existsSync(location)) {
|
|
137234
137302
|
location = null;
|
|
137235
137303
|
}
|
|
@@ -137493,7 +137561,7 @@ var require_googleauth = __commonJS((exports) => {
|
|
|
137493
137561
|
if (this.jsonContent) {
|
|
137494
137562
|
return this._cacheClientFromJSON(this.jsonContent, this.clientOptions);
|
|
137495
137563
|
} else if (this.keyFilename) {
|
|
137496
|
-
const filePath =
|
|
137564
|
+
const filePath = path12.resolve(this.keyFilename);
|
|
137497
137565
|
const stream4 = fs7.createReadStream(filePath);
|
|
137498
137566
|
return await this.fromStreamAsync(stream4, this.clientOptions);
|
|
137499
137567
|
} else if (this.apiKey) {
|
|
@@ -138481,7 +138549,7 @@ var init_user = __esm(() => {
|
|
|
138481
138549
|
deviceId,
|
|
138482
138550
|
sessionId: getSessionId(),
|
|
138483
138551
|
email: getEmail(),
|
|
138484
|
-
appVersion: "4.2.
|
|
138552
|
+
appVersion: "4.2.22",
|
|
138485
138553
|
platform: getHostPlatformForAnalytics(),
|
|
138486
138554
|
organizationUuid,
|
|
138487
138555
|
accountUuid,
|
|
@@ -138768,7 +138836,7 @@ var init_metadata = __esm(() => {
|
|
|
138768
138836
|
"sed"
|
|
138769
138837
|
]);
|
|
138770
138838
|
getVersionBase = memoize_default(() => {
|
|
138771
|
-
const match = "4.2.
|
|
138839
|
+
const match = "4.2.22".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
138772
138840
|
return match ? match[0] : undefined;
|
|
138773
138841
|
});
|
|
138774
138842
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -138808,9 +138876,9 @@ var init_metadata = __esm(() => {
|
|
|
138808
138876
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
138809
138877
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
138810
138878
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
138811
|
-
version: "4.2.
|
|
138879
|
+
version: "4.2.22",
|
|
138812
138880
|
versionBase: getVersionBase(),
|
|
138813
|
-
buildTime: "2026-
|
|
138881
|
+
buildTime: "2026-08-03T04:18:02.694Z",
|
|
138814
138882
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
138815
138883
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
138816
138884
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -139366,7 +139434,7 @@ var init_growthbook = __esm(() => {
|
|
|
139366
139434
|
|
|
139367
139435
|
// src/memdir/paths.ts
|
|
139368
139436
|
import { homedir as homedir6 } from "os";
|
|
139369
|
-
import { isAbsolute as
|
|
139437
|
+
import { isAbsolute as isAbsolute4, join as join18, normalize as normalize3, sep as sep3 } from "path";
|
|
139370
139438
|
function getMemoryBaseDir() {
|
|
139371
139439
|
const remoteMemoryDir = getCostrictEnv("REMOTE_MEMORY_DIR");
|
|
139372
139440
|
if (remoteMemoryDir) {
|
|
@@ -139388,10 +139456,10 @@ function validateMemoryPath(raw, expandTilde) {
|
|
|
139388
139456
|
candidate = join18(homedir6(), rest);
|
|
139389
139457
|
}
|
|
139390
139458
|
const normalized = normalize3(candidate).replace(/[/\\]+$/u, "");
|
|
139391
|
-
if (!
|
|
139459
|
+
if (!isAbsolute4(normalized) || normalized.length < 3 || /^[A-Za-z]:$/.test(normalized) || normalized.startsWith("\\\\") || normalized.startsWith("//") || normalized.includes("\x00")) {
|
|
139392
139460
|
return;
|
|
139393
139461
|
}
|
|
139394
|
-
return (normalized +
|
|
139462
|
+
return (normalized + sep3).normalize("NFC");
|
|
139395
139463
|
}
|
|
139396
139464
|
function getAutoMemPathOverride() {
|
|
139397
139465
|
return validateMemoryPath(getCostrictEnv("COWORK_MEMORY_PATH_OVERRIDE"), false);
|
|
@@ -139418,7 +139486,7 @@ var init_paths = __esm(() => {
|
|
|
139418
139486
|
return override;
|
|
139419
139487
|
}
|
|
139420
139488
|
const projectsDir = join18(getMemoryBaseDir(), "projects");
|
|
139421
|
-
return (join18(projectsDir, sanitizePath(getAutoMemBase()), AUTO_MEM_DIRNAME) +
|
|
139489
|
+
return (join18(projectsDir, sanitizePath(getAutoMemBase()), AUTO_MEM_DIRNAME) + sep3).normalize("NFC");
|
|
139422
139490
|
}, () => getProjectRoot());
|
|
139423
139491
|
});
|
|
139424
139492
|
|
|
@@ -139633,14 +139701,14 @@ function removeProjectHistory(projects) {
|
|
|
139633
139701
|
}
|
|
139634
139702
|
const cleanedProjects = {};
|
|
139635
139703
|
let needsCleaning = false;
|
|
139636
|
-
for (const [
|
|
139704
|
+
for (const [path12, projectConfig] of Object.entries(projects)) {
|
|
139637
139705
|
const legacy = projectConfig;
|
|
139638
139706
|
if (legacy.history !== undefined) {
|
|
139639
139707
|
needsCleaning = true;
|
|
139640
139708
|
const { history, ...cleanedConfig } = legacy;
|
|
139641
|
-
cleanedProjects[
|
|
139709
|
+
cleanedProjects[path12] = cleanedConfig;
|
|
139642
139710
|
} else {
|
|
139643
|
-
cleanedProjects[
|
|
139711
|
+
cleanedProjects[path12] = projectConfig;
|
|
139644
139712
|
}
|
|
139645
139713
|
}
|
|
139646
139714
|
return needsCleaning ? cleanedProjects : projects;
|
|
@@ -139725,11 +139793,11 @@ function saveConfigWithLock(file2, createDefault, mergeFn, readCurrent) {
|
|
|
139725
139793
|
const dir = dirname9(file2);
|
|
139726
139794
|
const fs7 = getFsImplementation();
|
|
139727
139795
|
fs7.mkdirSync(dir);
|
|
139728
|
-
let
|
|
139796
|
+
let release2;
|
|
139729
139797
|
try {
|
|
139730
139798
|
const lockFilePath = `${file2}.lock`;
|
|
139731
139799
|
const startTime2 = Date.now();
|
|
139732
|
-
|
|
139800
|
+
release2 = lockSync(file2, {
|
|
139733
139801
|
lockfilePath: lockFilePath,
|
|
139734
139802
|
onCompromised: (err) => {
|
|
139735
139803
|
logForDebugging(`Config lock compromised: ${err}`, { level: "error" });
|
|
@@ -139815,8 +139883,8 @@ function saveConfigWithLock(file2, createDefault, mergeFn, readCurrent) {
|
|
|
139815
139883
|
}
|
|
139816
139884
|
return true;
|
|
139817
139885
|
} finally {
|
|
139818
|
-
if (
|
|
139819
|
-
|
|
139886
|
+
if (release2) {
|
|
139887
|
+
release2();
|
|
139820
139888
|
}
|
|
139821
139889
|
}
|
|
139822
139890
|
}
|
|
@@ -140696,7 +140764,7 @@ init_token();
|
|
|
140696
140764
|
import { promises as fs12 } from "fs";
|
|
140697
140765
|
import { createHash as createHash4 } from "crypto";
|
|
140698
140766
|
import os4 from "os";
|
|
140699
|
-
import
|
|
140767
|
+
import path18 from "path";
|
|
140700
140768
|
|
|
140701
140769
|
// src/costrict/provider/tokenManager.ts
|
|
140702
140770
|
init_credentials();
|
|
@@ -140785,7 +140853,7 @@ async function recoverFrom401(staleAccessToken) {
|
|
|
140785
140853
|
// src/services/rawDump/git.ts
|
|
140786
140854
|
import { execFile } from "child_process";
|
|
140787
140855
|
import { realpathSync as realpathSync4 } from "fs";
|
|
140788
|
-
import
|
|
140856
|
+
import path12 from "path";
|
|
140789
140857
|
import { promisify as promisify5 } from "util";
|
|
140790
140858
|
var execFileAsync2 = promisify5(execFile);
|
|
140791
140859
|
var TRUNK_BRANCHES = ["origin/main", "origin/master", "main", "master"];
|
|
@@ -140823,7 +140891,7 @@ function computeRepoRelativePath(gitRoot, workDir) {
|
|
|
140823
140891
|
return "";
|
|
140824
140892
|
const root6 = tryRealpath(gitRoot);
|
|
140825
140893
|
const dir = tryRealpath(workDir);
|
|
140826
|
-
const rel =
|
|
140894
|
+
const rel = path12.relative(root6, dir);
|
|
140827
140895
|
if (rel === "")
|
|
140828
140896
|
return ".";
|
|
140829
140897
|
if (rel.startsWith(".."))
|
|
@@ -140834,7 +140902,7 @@ function tryRealpath(p2) {
|
|
|
140834
140902
|
try {
|
|
140835
140903
|
return realpathSync4(p2);
|
|
140836
140904
|
} catch {
|
|
140837
|
-
return
|
|
140905
|
+
return path12.resolve(p2);
|
|
140838
140906
|
}
|
|
140839
140907
|
}
|
|
140840
140908
|
async function getBranchAncestry(cwd2) {
|
|
@@ -140945,9 +141013,9 @@ function toCommitComment(subject) {
|
|
|
140945
141013
|
|
|
140946
141014
|
// src/services/rawDump/activeSessions.ts
|
|
140947
141015
|
import { readFileSync as readFileSync11, writeFileSync as writeFileSync4, mkdirSync as mkdirSync3, renameSync as renameSync2, realpathSync as realpathSync5 } from "fs";
|
|
140948
|
-
import
|
|
141016
|
+
import path13 from "path";
|
|
140949
141017
|
var log2 = createLogger("activeSessions");
|
|
140950
|
-
var ACTIVE_SESSIONS_FILE =
|
|
141018
|
+
var ACTIVE_SESSIONS_FILE = path13.join(getRawDumpDir(), "csc-active-sessions.json");
|
|
140951
141019
|
var DEFAULT_WINDOW_MS = 30 * 60 * 1000;
|
|
140952
141020
|
var FUTURE_TOLERANCE_MS = 5 * 60 * 1000;
|
|
140953
141021
|
var MAX_ACTIVE_SESSION_IDS = 64;
|
|
@@ -140967,9 +141035,9 @@ function normalizeCwd2(p2) {
|
|
|
140967
141035
|
try {
|
|
140968
141036
|
resolved = realpathSync5(p2);
|
|
140969
141037
|
} catch {
|
|
140970
|
-
resolved =
|
|
141038
|
+
resolved = path13.resolve(p2);
|
|
140971
141039
|
}
|
|
140972
|
-
if (resolved.length > 1 && resolved.endsWith(
|
|
141040
|
+
if (resolved.length > 1 && resolved.endsWith(path13.sep)) {
|
|
140973
141041
|
resolved = resolved.slice(0, -1);
|
|
140974
141042
|
}
|
|
140975
141043
|
return resolved;
|
|
@@ -141005,7 +141073,7 @@ function getActiveSessionIds(cwd2, atMs) {
|
|
|
141005
141073
|
|
|
141006
141074
|
// src/services/rawDump/localStorage.ts
|
|
141007
141075
|
import { promises as fs7 } from "fs";
|
|
141008
|
-
import
|
|
141076
|
+
import path14 from "path";
|
|
141009
141077
|
var DEFAULT_LOCAL_DIR = getRawDumpDir();
|
|
141010
141078
|
var RAW_DUMP_MODE = {
|
|
141011
141079
|
DISABLED: 0,
|
|
@@ -141054,12 +141122,12 @@ async function writeLocalDump(type, body) {
|
|
|
141054
141122
|
endpoint = "/raw-store/task-summary";
|
|
141055
141123
|
} else if (type == "conversation") {
|
|
141056
141124
|
ymd = getDateFromTimestamp(getTimestampField("conversation", body));
|
|
141057
|
-
subdir =
|
|
141125
|
+
subdir = path14.join(ymd, body.task_id);
|
|
141058
141126
|
fname = body.request_id;
|
|
141059
141127
|
endpoint = "/raw-store/task-conversation";
|
|
141060
141128
|
} else if (type == "commit") {
|
|
141061
141129
|
ymd = getDateFromTimestamp(getTimestampField("commit", body));
|
|
141062
|
-
subdir =
|
|
141130
|
+
subdir = path14.join(normalizeProjectPath(body.repo_addr), normalizeProjectPath(body.repo_branch), ymd);
|
|
141063
141131
|
fname = body.commit_id;
|
|
141064
141132
|
endpoint = "/raw-store/commit";
|
|
141065
141133
|
} else if (type == "statistics") {
|
|
@@ -141071,7 +141139,7 @@ async function writeLocalDump(type, body) {
|
|
|
141071
141139
|
fname = `${h6}-${m3}-${s}`;
|
|
141072
141140
|
endpoint = "/raw-store/statistics";
|
|
141073
141141
|
} else if (type == "raw") {
|
|
141074
|
-
subdir =
|
|
141142
|
+
subdir = path14.join(normalizeProjectPath(body.project), body.session_id);
|
|
141075
141143
|
fname = String(body.start_cursor);
|
|
141076
141144
|
endpoint = "/raw-store/raw-log";
|
|
141077
141145
|
} else {
|
|
@@ -141079,9 +141147,9 @@ async function writeLocalDump(type, body) {
|
|
|
141079
141147
|
fname = "unknown";
|
|
141080
141148
|
endpoint = "unknown";
|
|
141081
141149
|
}
|
|
141082
|
-
const dumpDir =
|
|
141150
|
+
const dumpDir = path14.join(dir, type, subdir);
|
|
141083
141151
|
const filename = `${fname}.json`;
|
|
141084
|
-
const filePath =
|
|
141152
|
+
const filePath = path14.join(dumpDir, filename);
|
|
141085
141153
|
const payload = {
|
|
141086
141154
|
_dumpMeta: {
|
|
141087
141155
|
type,
|
|
@@ -141097,18 +141165,18 @@ async function writeLocalDump(type, body) {
|
|
|
141097
141165
|
|
|
141098
141166
|
// src/services/rawDump/queue.ts
|
|
141099
141167
|
import { promises as fs9 } from "fs";
|
|
141100
|
-
import
|
|
141168
|
+
import path16 from "path";
|
|
141101
141169
|
|
|
141102
141170
|
// src/services/rawDump/lock.ts
|
|
141103
141171
|
import { randomUUID as randomUUID4 } from "crypto";
|
|
141104
141172
|
import { promises as fs8 } from "fs";
|
|
141105
|
-
import
|
|
141173
|
+
import path15 from "path";
|
|
141106
141174
|
var LOCK_INFO_FILE = "lock.json";
|
|
141107
141175
|
var PUBLICATION_GRACE_MS = 5000;
|
|
141108
141176
|
async function isHolderAlive(lockDir) {
|
|
141109
141177
|
let text;
|
|
141110
141178
|
try {
|
|
141111
|
-
text = await fs8.readFile(
|
|
141179
|
+
text = await fs8.readFile(path15.join(lockDir, LOCK_INFO_FILE), "utf-8");
|
|
141112
141180
|
} catch {
|
|
141113
141181
|
try {
|
|
141114
141182
|
const st = await fs8.stat(lockDir);
|
|
@@ -141192,13 +141260,13 @@ async function acquireLock(lockDir, info) {
|
|
|
141192
141260
|
return null;
|
|
141193
141261
|
}
|
|
141194
141262
|
try {
|
|
141195
|
-
await fs8.writeFile(
|
|
141263
|
+
await fs8.writeFile(path15.join(lockDir, LOCK_INFO_FILE), payload, "utf-8");
|
|
141196
141264
|
} catch {
|
|
141197
141265
|
await releaseLock(lockDir, token);
|
|
141198
141266
|
return null;
|
|
141199
141267
|
}
|
|
141200
141268
|
try {
|
|
141201
|
-
const current = JSON.parse(await fs8.readFile(
|
|
141269
|
+
const current = JSON.parse(await fs8.readFile(path15.join(lockDir, LOCK_INFO_FILE), "utf-8"));
|
|
141202
141270
|
if (current.token === token && current.pid === info.pid)
|
|
141203
141271
|
return token;
|
|
141204
141272
|
} catch {}
|
|
@@ -141207,7 +141275,7 @@ async function acquireLock(lockDir, info) {
|
|
|
141207
141275
|
}
|
|
141208
141276
|
async function releaseLock(lockDir, token) {
|
|
141209
141277
|
try {
|
|
141210
|
-
const text = await fs8.readFile(
|
|
141278
|
+
const text = await fs8.readFile(path15.join(lockDir, LOCK_INFO_FILE), "utf-8").catch(() => null);
|
|
141211
141279
|
if (text !== null) {
|
|
141212
141280
|
try {
|
|
141213
141281
|
const info = JSON.parse(text);
|
|
@@ -141225,10 +141293,10 @@ async function releaseLock(lockDir, token) {
|
|
|
141225
141293
|
|
|
141226
141294
|
// src/services/rawDump/queue.ts
|
|
141227
141295
|
function getQueueFile() {
|
|
141228
|
-
return
|
|
141296
|
+
return path16.join(getRawDumpDir(), "csc-work-queue.jsonl");
|
|
141229
141297
|
}
|
|
141230
141298
|
function getQueueLockDir() {
|
|
141231
|
-
return
|
|
141299
|
+
return path16.join(getRawDumpDir(), "csc-work-queue.lock.d");
|
|
141232
141300
|
}
|
|
141233
141301
|
var MAX_ATTEMPTS = 4;
|
|
141234
141302
|
var queue = [];
|
|
@@ -141281,8 +141349,8 @@ async function releaseQueueLock() {
|
|
|
141281
141349
|
// src/services/rawDump/history.ts
|
|
141282
141350
|
init_envUtils();
|
|
141283
141351
|
import { promises as fs10 } from "fs";
|
|
141284
|
-
import
|
|
141285
|
-
var HISTORY_FILE =
|
|
141352
|
+
import path17 from "path";
|
|
141353
|
+
var HISTORY_FILE = path17.join(getCostrictConfigHomeDir(), "history.jsonl");
|
|
141286
141354
|
var cache7 = null;
|
|
141287
141355
|
async function loadHistory() {
|
|
141288
141356
|
const items = [];
|
|
@@ -142380,7 +142448,7 @@ async function authWithFallback() {
|
|
|
142380
142448
|
const version4 = getClientVersion();
|
|
142381
142449
|
let deviceId = process.env.CSC_DEVICE_ID;
|
|
142382
142450
|
if (!deviceId) {
|
|
142383
|
-
const deviceIdFile =
|
|
142451
|
+
const deviceIdFile = path18.join(getLocalDumpDir(), "device-id");
|
|
142384
142452
|
try {
|
|
142385
142453
|
deviceId = (await fs12.readFile(deviceIdFile, "utf-8")).trim();
|
|
142386
142454
|
} catch {}
|
|
@@ -142915,9 +142983,9 @@ if (scriptPath.endsWith("worker.ts") || scriptPath.endsWith("worker.js")) {
|
|
|
142915
142983
|
}
|
|
142916
142984
|
|
|
142917
142985
|
// src/services/rawDump/timerWorker.ts
|
|
142918
|
-
import
|
|
142986
|
+
import path19 from "path";
|
|
142919
142987
|
var log6 = createLogger("timer");
|
|
142920
|
-
var TIMER_LOCK_DIR =
|
|
142988
|
+
var TIMER_LOCK_DIR = path19.join(getRawDumpDir(), "csc-timer.lock.d");
|
|
142921
142989
|
var isRunning = false;
|
|
142922
142990
|
var timerLockToken = null;
|
|
142923
142991
|
async function acquireTimerLock() {
|
|
@@ -142990,10 +143058,10 @@ if (scriptPath2.endsWith("timerWorker.ts") || scriptPath2.endsWith("timerWorker.
|
|
|
142990
143058
|
|
|
142991
143059
|
// src/services/rawDump/parentHeartbeat.ts
|
|
142992
143060
|
import { promises as fs13 } from "fs";
|
|
142993
|
-
import
|
|
143061
|
+
import path20 from "path";
|
|
142994
143062
|
var HEARTBEAT_STALE_MS = 15000;
|
|
142995
143063
|
function getParentHeartbeatPath(pid) {
|
|
142996
|
-
return
|
|
143064
|
+
return path20.join(getRawDumpDir(), `csc-parent-heartbeat-${pid}.json`);
|
|
142997
143065
|
}
|
|
142998
143066
|
async function readParentHeartbeat(pid) {
|
|
142999
143067
|
try {
|
|
@@ -143148,5 +143216,5 @@ export {
|
|
|
143148
143216
|
isParentHeartbeatValid
|
|
143149
143217
|
};
|
|
143150
143218
|
|
|
143151
|
-
//# debugId=
|
|
143219
|
+
//# debugId=72170B1EA6BB7F1764756E2164756E21
|
|
143152
143220
|
|