@costrict/csc 4.2.21-beta2 → 4.2.21
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 +3273 -3025
- package/dist/services/rawDump/batchWorker.js +285 -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.21
|
|
740
|
-
cached = "4.2.21
|
|
739
|
+
if ("4.2.21") {
|
|
740
|
+
cached = "4.2.21";
|
|
741
741
|
return cached;
|
|
742
742
|
}
|
|
743
743
|
} catch {}
|
|
@@ -61588,46 +61588,60 @@ 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
|
-
return existsSync3(filePath);
|
|
61595
|
-
}
|
|
61596
|
-
function findExecutable(executable) {
|
|
61597
|
-
if (executable === "git") {
|
|
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 findExecutableWithDeps(executable, deps) {
|
|
61608
61593
|
try {
|
|
61609
|
-
const
|
|
61610
|
-
|
|
61611
|
-
encoding: "utf8"
|
|
61612
|
-
}).trim();
|
|
61613
|
-
const paths2 = result.split(`\r
|
|
61614
|
-
`).filter(Boolean);
|
|
61615
|
-
const cwd2 = getCwd().toLowerCase();
|
|
61594
|
+
const paths2 = deps.execCommand(`where.exe ${executable}`).split(/\r?\n/u).map((candidate) => candidate.trim()).filter(Boolean);
|
|
61595
|
+
const cwd2 = pathWin32.resolve(deps.cwdFn()).toLowerCase();
|
|
61616
61596
|
for (const candidatePath of paths2) {
|
|
61617
|
-
const
|
|
61618
|
-
const
|
|
61619
|
-
|
|
61597
|
+
const candidateDirectory = pathWin32.dirname(pathWin32.resolve(candidatePath)).toLowerCase();
|
|
61598
|
+
const relativeDirectory = pathWin32.relative(cwd2, candidateDirectory);
|
|
61599
|
+
const isWithinCwd = relativeDirectory === "" || !relativeDirectory.startsWith("..") && !pathWin32.isAbsolute(relativeDirectory);
|
|
61600
|
+
if (isWithinCwd) {
|
|
61620
61601
|
logForDebugging(`Skipping potentially malicious executable in current directory: ${candidatePath}`);
|
|
61621
61602
|
continue;
|
|
61622
61603
|
}
|
|
61623
61604
|
return candidatePath;
|
|
61624
61605
|
}
|
|
61625
|
-
|
|
61626
|
-
|
|
61627
|
-
|
|
61606
|
+
} catch {}
|
|
61607
|
+
return null;
|
|
61608
|
+
}
|
|
61609
|
+
function findCommonGitBashPath(checkExists, userProfile) {
|
|
61610
|
+
const candidates = [
|
|
61611
|
+
"C:\\Program Files\\Git\\bin\\bash.exe",
|
|
61612
|
+
"C:\\Program Files\\Git\\usr\\bin\\bash.exe",
|
|
61613
|
+
"C:\\Program Files (x86)\\Git\\bin\\bash.exe",
|
|
61614
|
+
"C:\\Program Files (x86)\\Git\\usr\\bin\\bash.exe"
|
|
61615
|
+
];
|
|
61616
|
+
if (userProfile) {
|
|
61617
|
+
candidates.push(`${userProfile}\\scoop\\apps\\git\\current\\usr\\bin\\bash.exe`);
|
|
61618
|
+
}
|
|
61619
|
+
return candidates.find(checkExists) ?? null;
|
|
61620
|
+
}
|
|
61621
|
+
function findGitBashPathOrNullWithDeps(deps = DEFAULT_DEPS) {
|
|
61622
|
+
const envOverride = deps.envOverride ?? process.env.COSTRICT_GIT_BASH_PATH ?? process.env.CLAUDE_CODE_GIT_BASH_PATH;
|
|
61623
|
+
if (envOverride) {
|
|
61624
|
+
return deps.checkExists(envOverride) ? envOverride : null;
|
|
61625
|
+
}
|
|
61626
|
+
const bashPath = findExecutableWithDeps("bash", deps);
|
|
61627
|
+
if (bashPath && deps.checkExists(bashPath)) {
|
|
61628
|
+
return bashPath;
|
|
61629
|
+
}
|
|
61630
|
+
const gitPath = findExecutableWithDeps("git", deps);
|
|
61631
|
+
if (gitPath) {
|
|
61632
|
+
const candidates = [
|
|
61633
|
+
pathWin32.join(gitPath, "..", "..", "bin", "bash.exe"),
|
|
61634
|
+
pathWin32.join(gitPath, "..", "..", "usr", "bin", "bash.exe"),
|
|
61635
|
+
pathWin32.join(gitPath, "..", "bash.exe")
|
|
61636
|
+
];
|
|
61637
|
+
const derivedPath = candidates.find(deps.checkExists);
|
|
61638
|
+
if (derivedPath) {
|
|
61639
|
+
return derivedPath;
|
|
61640
|
+
}
|
|
61628
61641
|
}
|
|
61642
|
+
return findCommonGitBashPath(deps.checkExists, deps.userProfile);
|
|
61629
61643
|
}
|
|
61630
|
-
var
|
|
61644
|
+
var DEFAULT_DEPS, findGitBashPathOrNull, windowsPathToPosixPath, posixPathToWindowsPath;
|
|
61631
61645
|
var init_windowsPaths = __esm(() => {
|
|
61632
61646
|
init_memoize();
|
|
61633
61647
|
init_cwd2();
|
|
@@ -61635,24 +61649,13 @@ var init_windowsPaths = __esm(() => {
|
|
|
61635
61649
|
init_execSyncWrapper();
|
|
61636
61650
|
init_memoize2();
|
|
61637
61651
|
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
|
-
});
|
|
61652
|
+
DEFAULT_DEPS = {
|
|
61653
|
+
checkExists: existsSync3,
|
|
61654
|
+
execCommand: (cmd) => execSync_DEPRECATED(cmd, { stdio: "pipe", encoding: "utf8" }).trim(),
|
|
61655
|
+
cwdFn: getCwd,
|
|
61656
|
+
userProfile: process.env.USERPROFILE
|
|
61657
|
+
};
|
|
61658
|
+
findGitBashPathOrNull = memoize_default(() => findGitBashPathOrNullWithDeps());
|
|
61656
61659
|
windowsPathToPosixPath = memoizeWithLRU((windowsPath) => {
|
|
61657
61660
|
if (windowsPath.startsWith("\\\\")) {
|
|
61658
61661
|
return windowsPath.replace(/\\/g, "/");
|
|
@@ -61687,15 +61690,15 @@ var init_windowsPaths = __esm(() => {
|
|
|
61687
61690
|
// src/utils/path.ts
|
|
61688
61691
|
import {
|
|
61689
61692
|
dirname as dirname4,
|
|
61690
|
-
isAbsolute,
|
|
61693
|
+
isAbsolute as isAbsolute2,
|
|
61691
61694
|
join as join8,
|
|
61692
61695
|
normalize,
|
|
61693
61696
|
posix,
|
|
61694
|
-
relative,
|
|
61697
|
+
relative as relative2,
|
|
61695
61698
|
resolve as resolve2
|
|
61696
61699
|
} from "path";
|
|
61697
|
-
function normalizePathForConfigKey(
|
|
61698
|
-
const normalized = normalize(
|
|
61700
|
+
function normalizePathForConfigKey(path12) {
|
|
61701
|
+
const normalized = normalize(path12);
|
|
61699
61702
|
return normalized.replace(/\\/g, "/");
|
|
61700
61703
|
}
|
|
61701
61704
|
var init_path2 = __esm(() => {
|
|
@@ -61712,12 +61715,12 @@ import {
|
|
|
61712
61715
|
basename,
|
|
61713
61716
|
dirname as dirname5,
|
|
61714
61717
|
extname,
|
|
61715
|
-
isAbsolute as
|
|
61718
|
+
isAbsolute as isAbsolute3,
|
|
61716
61719
|
join as join9,
|
|
61717
61720
|
normalize as normalize2,
|
|
61718
|
-
relative as
|
|
61721
|
+
relative as relative3,
|
|
61719
61722
|
resolve as resolve3,
|
|
61720
|
-
sep
|
|
61723
|
+
sep
|
|
61721
61724
|
} from "path";
|
|
61722
61725
|
function detectFileEncoding(filePath) {
|
|
61723
61726
|
try {
|
|
@@ -61740,7 +61743,7 @@ function writeFileSyncAndFlush_DEPRECATED(filePath, content, options = { encodin
|
|
|
61740
61743
|
let targetPath = filePath;
|
|
61741
61744
|
try {
|
|
61742
61745
|
const linkTarget = fs5.readlinkSync(filePath);
|
|
61743
|
-
targetPath =
|
|
61746
|
+
targetPath = isAbsolute3(linkTarget) ? linkTarget : resolve3(dirname5(filePath), linkTarget);
|
|
61744
61747
|
logForDebugging(`Writing through symlink: ${filePath} -> ${targetPath}`);
|
|
61745
61748
|
} catch {}
|
|
61746
61749
|
const tempPath = `${targetPath}.tmp.${process.pid}.${Date.now()}`;
|
|
@@ -62234,9 +62237,9 @@ class GitFileWatcher {
|
|
|
62234
62237
|
this.stopWatching();
|
|
62235
62238
|
});
|
|
62236
62239
|
}
|
|
62237
|
-
watchPath(
|
|
62238
|
-
this.watchedPaths.push(
|
|
62239
|
-
watchFile(
|
|
62240
|
+
watchPath(path12, callback) {
|
|
62241
|
+
this.watchedPaths.push(path12);
|
|
62242
|
+
watchFile(path12, { interval: WATCH_INTERVAL_MS }, callback);
|
|
62240
62243
|
}
|
|
62241
62244
|
async watchCurrentBranchRef() {
|
|
62242
62245
|
if (!this.gitDir) {
|
|
@@ -62271,8 +62274,8 @@ class GitFileWatcher {
|
|
|
62271
62274
|
}
|
|
62272
62275
|
}
|
|
62273
62276
|
stopWatching() {
|
|
62274
|
-
for (const
|
|
62275
|
-
unwatchFile(
|
|
62277
|
+
for (const path12 of this.watchedPaths) {
|
|
62278
|
+
unwatchFile(path12);
|
|
62276
62279
|
}
|
|
62277
62280
|
this.watchedPaths = [];
|
|
62278
62281
|
this.branchRefPath = null;
|
|
@@ -62373,7 +62376,7 @@ var init_which = __esm(() => {
|
|
|
62373
62376
|
|
|
62374
62377
|
// src/utils/git.ts
|
|
62375
62378
|
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
|
|
62379
|
+
import { basename as basename2, dirname as dirname6, join as join12, resolve as resolve6, sep as sep2 } from "path";
|
|
62377
62380
|
function createFindGitRoot() {
|
|
62378
62381
|
function wrapper(startPath) {
|
|
62379
62382
|
const result = findGitRootImpl(startPath);
|
|
@@ -62411,7 +62414,7 @@ var init_git = __esm(() => {
|
|
|
62411
62414
|
const startTime = Date.now();
|
|
62412
62415
|
logForDiagnosticsNoPII("info", "find_git_root_started");
|
|
62413
62416
|
let current = resolve6(startPath);
|
|
62414
|
-
const root2 = current.substring(0, current.indexOf(
|
|
62417
|
+
const root2 = current.substring(0, current.indexOf(sep2) + 1) || sep2;
|
|
62415
62418
|
let statCount = 0;
|
|
62416
62419
|
while (current !== root2) {
|
|
62417
62420
|
try {
|
|
@@ -62452,7 +62455,7 @@ var init_git = __esm(() => {
|
|
|
62452
62455
|
found: false
|
|
62453
62456
|
});
|
|
62454
62457
|
return GIT_ROOT_NOT_FOUND;
|
|
62455
|
-
}, (
|
|
62458
|
+
}, (path12) => path12, 50);
|
|
62456
62459
|
findGitRoot = createFindGitRoot();
|
|
62457
62460
|
resolveCanonicalRoot = memoizeWithLRU((gitRoot) => {
|
|
62458
62461
|
try {
|
|
@@ -73923,14 +73926,14 @@ var init_measure_text = __esm(() => {
|
|
|
73923
73926
|
});
|
|
73924
73927
|
|
|
73925
73928
|
// packages/@costrict/ink/src/core/node-cache.ts
|
|
73926
|
-
function addPendingClear(parent, rect,
|
|
73929
|
+
function addPendingClear(parent, rect, isAbsolute4) {
|
|
73927
73930
|
const existing = pendingClears.get(parent);
|
|
73928
73931
|
if (existing) {
|
|
73929
73932
|
existing.push(rect);
|
|
73930
73933
|
} else {
|
|
73931
73934
|
pendingClears.set(parent, [rect]);
|
|
73932
73935
|
}
|
|
73933
|
-
if (
|
|
73936
|
+
if (isAbsolute4) {
|
|
73934
73937
|
absoluteNodeRemoved = true;
|
|
73935
73938
|
}
|
|
73936
73939
|
}
|
|
@@ -75135,14 +75138,14 @@ function collectRemovedRects(parent, removed, underAbsolute = false) {
|
|
|
75135
75138
|
if (removed.nodeName === "#text")
|
|
75136
75139
|
return;
|
|
75137
75140
|
const elem = removed;
|
|
75138
|
-
const
|
|
75141
|
+
const isAbsolute4 = underAbsolute || elem.style.position === "absolute";
|
|
75139
75142
|
const cached3 = nodeCache.get(elem);
|
|
75140
75143
|
if (cached3) {
|
|
75141
|
-
addPendingClear(parent, cached3,
|
|
75144
|
+
addPendingClear(parent, cached3, isAbsolute4);
|
|
75142
75145
|
nodeCache.delete(elem);
|
|
75143
75146
|
}
|
|
75144
75147
|
for (const child of elem.childNodes) {
|
|
75145
|
-
collectRemovedRects(parent, child,
|
|
75148
|
+
collectRemovedRects(parent, child, isAbsolute4);
|
|
75146
75149
|
}
|
|
75147
75150
|
}
|
|
75148
75151
|
function stylesEqual(a2, b) {
|
|
@@ -80722,8 +80725,8 @@ function ErrorOverview({ error: error52 }) {
|
|
|
80722
80725
|
]
|
|
80723
80726
|
});
|
|
80724
80727
|
}
|
|
80725
|
-
var import_stack_utils, jsx_runtime5, cleanupPath = (
|
|
80726
|
-
return
|
|
80728
|
+
var import_stack_utils, jsx_runtime5, cleanupPath = (path12) => {
|
|
80729
|
+
return path12?.replace(`file://${process.cwd()}/`, "");
|
|
80727
80730
|
}, stackUtils;
|
|
80728
80731
|
var init_ErrorOverview = __esm(() => {
|
|
80729
80732
|
init_dist2();
|
|
@@ -81337,10 +81340,60 @@ var init_instances = __esm(() => {
|
|
|
81337
81340
|
instances_default = instances;
|
|
81338
81341
|
});
|
|
81339
81342
|
|
|
81343
|
+
// packages/@costrict/ink/src/core/legacyConsole.ts
|
|
81344
|
+
import { release } from "os";
|
|
81345
|
+
function isLegacyWindowsBuild(releaseString) {
|
|
81346
|
+
const build = Number(releaseString.split(".")[2]);
|
|
81347
|
+
return Number.isFinite(build) && build < 17763;
|
|
81348
|
+
}
|
|
81349
|
+
function parseLegacyConsoleMode(override, autoDetected) {
|
|
81350
|
+
if (override === "0")
|
|
81351
|
+
return "off";
|
|
81352
|
+
if (override === "2" || override === "always")
|
|
81353
|
+
return "always";
|
|
81354
|
+
if (override === "1")
|
|
81355
|
+
return "periodic";
|
|
81356
|
+
return autoDetected ? "periodic" : "off";
|
|
81357
|
+
}
|
|
81358
|
+
function parseLegacyConsoleResetMs(raw) {
|
|
81359
|
+
if (raw === undefined || raw.trim() === "")
|
|
81360
|
+
return 1000;
|
|
81361
|
+
const parsed = Number(raw);
|
|
81362
|
+
if (!Number.isFinite(parsed))
|
|
81363
|
+
return 1000;
|
|
81364
|
+
return Math.min(1e4, Math.max(100, Math.floor(parsed)));
|
|
81365
|
+
}
|
|
81366
|
+
function legacyConsoleMode() {
|
|
81367
|
+
if (cachedMode === undefined) {
|
|
81368
|
+
const override = process.env.COSTRICT_LEGACY_CONSOLE ?? process.env.CLAUDE_CODE_LEGACY_CONSOLE;
|
|
81369
|
+
cachedMode = parseLegacyConsoleMode(override, process.platform === "win32" && isLegacyWindowsBuild(release()));
|
|
81370
|
+
}
|
|
81371
|
+
return cachedMode;
|
|
81372
|
+
}
|
|
81373
|
+
function isLegacyWindowsConsole() {
|
|
81374
|
+
return legacyConsoleMode() !== "off";
|
|
81375
|
+
}
|
|
81376
|
+
function legacyConsoleResetMs() {
|
|
81377
|
+
if (cachedResetMs === undefined) {
|
|
81378
|
+
const raw = process.env.COSTRICT_LEGACY_CONSOLE_RESET_MS ?? process.env.CLAUDE_CODE_LEGACY_CONSOLE_RESET_MS;
|
|
81379
|
+
cachedResetMs = parseLegacyConsoleResetMs(raw);
|
|
81380
|
+
}
|
|
81381
|
+
return cachedResetMs;
|
|
81382
|
+
}
|
|
81383
|
+
function effectiveColumns(columns) {
|
|
81384
|
+
const terminalColumns = columns || 80;
|
|
81385
|
+
if (!isLegacyWindowsConsole())
|
|
81386
|
+
return terminalColumns;
|
|
81387
|
+
return Math.max(20, terminalColumns - 1);
|
|
81388
|
+
}
|
|
81389
|
+
var cachedMode, cachedResetMs;
|
|
81390
|
+
var init_legacyConsole = () => {};
|
|
81391
|
+
|
|
81340
81392
|
// packages/@costrict/ink/src/core/log-update.ts
|
|
81341
81393
|
class LogUpdate {
|
|
81342
81394
|
options;
|
|
81343
81395
|
state;
|
|
81396
|
+
lastLegacyReset = 0;
|
|
81344
81397
|
constructor(options) {
|
|
81345
81398
|
this.options = options;
|
|
81346
81399
|
this.state = {
|
|
@@ -81417,6 +81470,11 @@ class LogUpdate {
|
|
|
81417
81470
|
if (next.viewport.height < prev.viewport.height || prev.viewport.width !== 0 && next.viewport.width !== prev.viewport.width) {
|
|
81418
81471
|
return fullResetSequence_CAUSES_FLICKER(next, "resize", stylePool);
|
|
81419
81472
|
}
|
|
81473
|
+
const legacyMode = legacyConsoleMode();
|
|
81474
|
+
if (legacyMode === "always" || legacyMode === "periodic" && startTime2 - this.lastLegacyReset >= legacyConsoleResetMs()) {
|
|
81475
|
+
this.lastLegacyReset = startTime2;
|
|
81476
|
+
return fullResetSequence_CAUSES_FLICKER(next, "clear", stylePool);
|
|
81477
|
+
}
|
|
81420
81478
|
let scrollPatch = [];
|
|
81421
81479
|
if (altScreen && next.scrollHint && decstbmSafe) {
|
|
81422
81480
|
const { top, bottom, delta } = next.scrollHint;
|
|
@@ -81723,6 +81781,7 @@ class VirtualScreen {
|
|
|
81723
81781
|
var logForDebugging3 = (_message) => {}, CARRIAGE_RETURN, NEWLINE;
|
|
81724
81782
|
var init_log_update = __esm(() => {
|
|
81725
81783
|
init_build();
|
|
81784
|
+
init_legacyConsole();
|
|
81726
81785
|
init_screen();
|
|
81727
81786
|
init_csi();
|
|
81728
81787
|
init_osc();
|
|
@@ -83855,16 +83914,16 @@ function renderChildren(node, output, offsetX, offsetY, hasRemovedChild, prevScr
|
|
|
83855
83914
|
for (const childNode of node.childNodes) {
|
|
83856
83915
|
const childElem = childNode;
|
|
83857
83916
|
const wasDirty = childElem.dirty;
|
|
83858
|
-
const
|
|
83917
|
+
const isAbsolute4 = childElem.style.position === "absolute";
|
|
83859
83918
|
renderNodeToOutput(childElem, output, {
|
|
83860
83919
|
offsetX,
|
|
83861
83920
|
offsetY,
|
|
83862
83921
|
prevScreen: hasRemovedChild || seenDirtyChild ? undefined : prevScreen,
|
|
83863
|
-
skipSelfBlit: seenDirtyClipped &&
|
|
83922
|
+
skipSelfBlit: seenDirtyClipped && isAbsolute4 && !childElem.style.opaque && childElem.style.backgroundColor === undefined,
|
|
83864
83923
|
inheritedBackgroundColor
|
|
83865
83924
|
});
|
|
83866
83925
|
if (wasDirty && !seenDirtyChild) {
|
|
83867
|
-
if (!clipsBothAxes(childElem) ||
|
|
83926
|
+
if (!clipsBothAxes(childElem) || isAbsolute4) {
|
|
83868
83927
|
seenDirtyChild = true;
|
|
83869
83928
|
} else {
|
|
83870
83929
|
seenDirtyClipped = true;
|
|
@@ -84249,7 +84308,7 @@ class Ink {
|
|
|
84249
84308
|
stdout: options.stdout,
|
|
84250
84309
|
stderr: options.stderr
|
|
84251
84310
|
};
|
|
84252
|
-
this.terminalColumns = options.stdout.columns
|
|
84311
|
+
this.terminalColumns = effectiveColumns(options.stdout.columns);
|
|
84253
84312
|
this.terminalRows = options.stdout.rows || 24;
|
|
84254
84313
|
this.altScreenParkPatch = makeAltScreenParkPatch(this.terminalRows);
|
|
84255
84314
|
this.stylePool = new StylePool;
|
|
@@ -84313,7 +84372,7 @@ class Ink {
|
|
|
84313
84372
|
this.displayCursor = null;
|
|
84314
84373
|
};
|
|
84315
84374
|
handleResize = () => {
|
|
84316
|
-
const cols = this.options.stdout.columns
|
|
84375
|
+
const cols = effectiveColumns(this.options.stdout.columns);
|
|
84317
84376
|
const rows = this.options.stdout.rows || 24;
|
|
84318
84377
|
if (cols === this.terminalColumns && rows === this.terminalRows)
|
|
84319
84378
|
return;
|
|
@@ -84360,7 +84419,7 @@ class Ink {
|
|
|
84360
84419
|
}
|
|
84361
84420
|
this.options.onBeforeRender?.();
|
|
84362
84421
|
const renderStart = performance.now();
|
|
84363
|
-
const terminalWidth = this.options.stdout.columns
|
|
84422
|
+
const terminalWidth = effectiveColumns(this.options.stdout.columns);
|
|
84364
84423
|
const terminalRows = this.options.stdout.rows || 24;
|
|
84365
84424
|
const frame = this.renderer({
|
|
84366
84425
|
frontFrame: this.frontFrame,
|
|
@@ -85084,6 +85143,7 @@ var init_ink = __esm(() => {
|
|
|
85084
85143
|
init_frame();
|
|
85085
85144
|
init_hit_test();
|
|
85086
85145
|
init_instances();
|
|
85146
|
+
init_legacyConsole();
|
|
85087
85147
|
init_log_update();
|
|
85088
85148
|
init_node_cache();
|
|
85089
85149
|
init_output2();
|
|
@@ -86987,7 +87047,7 @@ function isRunningWithBun() {
|
|
|
86987
87047
|
}
|
|
86988
87048
|
|
|
86989
87049
|
// src/utils/findExecutable.ts
|
|
86990
|
-
function
|
|
87050
|
+
function findExecutable(exe, args) {
|
|
86991
87051
|
const resolved = whichSync(exe);
|
|
86992
87052
|
return { cmd: resolved ?? exe, args };
|
|
86993
87053
|
}
|
|
@@ -87167,7 +87227,7 @@ var init_env = __esm(() => {
|
|
|
87167
87227
|
if (!isWslEnvironment()) {
|
|
87168
87228
|
return false;
|
|
87169
87229
|
}
|
|
87170
|
-
const { cmd } =
|
|
87230
|
+
const { cmd } = findExecutable("npm", []);
|
|
87171
87231
|
return cmd.startsWith("/mnt/c/");
|
|
87172
87232
|
} catch (_error) {
|
|
87173
87233
|
return false;
|
|
@@ -87550,7 +87610,7 @@ var init_schemas3 = __esm(() => {
|
|
|
87550
87610
|
RelativePath = lazySchema(() => exports_external.string().startsWith("./"));
|
|
87551
87611
|
RelativeJSONPath = lazySchema(() => RelativePath().endsWith(".json"));
|
|
87552
87612
|
McpbPath = lazySchema(() => exports_external.union([
|
|
87553
|
-
RelativePath().refine((
|
|
87613
|
+
RelativePath().refine((path12) => path12.endsWith(".mcpb") || path12.endsWith(".dxt"), {
|
|
87554
87614
|
message: "MCPB file path must end with .mcpb or .dxt"
|
|
87555
87615
|
}).describe("Path to MCPB file relative to plugin root"),
|
|
87556
87616
|
exports_external.string().url().refine((url3) => url3.endsWith(".mcpb") || url3.endsWith(".dxt"), {
|
|
@@ -88735,7 +88795,7 @@ function extractReceivedFromMessage(msg) {
|
|
|
88735
88795
|
}
|
|
88736
88796
|
function formatZodError(error52, filePath) {
|
|
88737
88797
|
return error52.issues.map((issue2) => {
|
|
88738
|
-
const
|
|
88798
|
+
const path12 = issue2.path.map(String).join(".");
|
|
88739
88799
|
let message = issue2.message;
|
|
88740
88800
|
let expected;
|
|
88741
88801
|
let enumValues;
|
|
@@ -88760,7 +88820,7 @@ function formatZodError(error52, filePath) {
|
|
|
88760
88820
|
invalidValue = receivedValue;
|
|
88761
88821
|
}
|
|
88762
88822
|
const tip = getValidationTip({
|
|
88763
|
-
path:
|
|
88823
|
+
path: path12,
|
|
88764
88824
|
code: issue2.code,
|
|
88765
88825
|
expected: expectedValue,
|
|
88766
88826
|
received: receivedValue,
|
|
@@ -88773,7 +88833,7 @@ function formatZodError(error52, filePath) {
|
|
|
88773
88833
|
message = `Invalid value. Expected one of: ${expected}`;
|
|
88774
88834
|
} else if (isInvalidTypeIssue(issue2)) {
|
|
88775
88835
|
const receivedType = extractReceivedFromMessage(issue2.message) ?? getReceivedType(issue2.input);
|
|
88776
|
-
if (issue2.expected === "object" && receivedType === "null" &&
|
|
88836
|
+
if (issue2.expected === "object" && receivedType === "null" && path12 === "") {
|
|
88777
88837
|
message = "Invalid or malformed JSON";
|
|
88778
88838
|
} else {
|
|
88779
88839
|
message = `Expected ${issue2.expected}, but received ${receivedType}`;
|
|
@@ -88787,7 +88847,7 @@ function formatZodError(error52, filePath) {
|
|
|
88787
88847
|
}
|
|
88788
88848
|
return {
|
|
88789
88849
|
file: filePath,
|
|
88790
|
-
path:
|
|
88850
|
+
path: path12,
|
|
88791
88851
|
message,
|
|
88792
88852
|
expected,
|
|
88793
88853
|
invalidValue,
|
|
@@ -88912,45 +88972,45 @@ function loadManagedFileSettings() {
|
|
|
88912
88972
|
}
|
|
88913
88973
|
return { settings: found ? merged : null, errors: errors3 };
|
|
88914
88974
|
}
|
|
88915
|
-
function handleFileSystemError(error52,
|
|
88975
|
+
function handleFileSystemError(error52, path12) {
|
|
88916
88976
|
if (typeof error52 === "object" && error52 && "code" in error52 && error52.code === "ENOENT") {
|
|
88917
|
-
logForDebugging(`Broken symlink or missing file encountered for settings.json at path: ${
|
|
88977
|
+
logForDebugging(`Broken symlink or missing file encountered for settings.json at path: ${path12}`);
|
|
88918
88978
|
} else {
|
|
88919
88979
|
logError2(error52);
|
|
88920
88980
|
}
|
|
88921
88981
|
}
|
|
88922
|
-
function parseSettingsFile(
|
|
88923
|
-
const cached3 = getCachedParsedFile(
|
|
88982
|
+
function parseSettingsFile(path12) {
|
|
88983
|
+
const cached3 = getCachedParsedFile(path12);
|
|
88924
88984
|
if (cached3) {
|
|
88925
88985
|
return {
|
|
88926
88986
|
settings: cached3.settings ? clone(cached3.settings) : null,
|
|
88927
88987
|
errors: cached3.errors
|
|
88928
88988
|
};
|
|
88929
88989
|
}
|
|
88930
|
-
const result = parseSettingsFileUncached(
|
|
88931
|
-
setCachedParsedFile(
|
|
88990
|
+
const result = parseSettingsFileUncached(path12);
|
|
88991
|
+
setCachedParsedFile(path12, result);
|
|
88932
88992
|
return {
|
|
88933
88993
|
settings: result.settings ? clone(result.settings) : null,
|
|
88934
88994
|
errors: result.errors
|
|
88935
88995
|
};
|
|
88936
88996
|
}
|
|
88937
|
-
function parseSettingsFileUncached(
|
|
88997
|
+
function parseSettingsFileUncached(path12) {
|
|
88938
88998
|
try {
|
|
88939
|
-
const { resolvedPath } = safeResolvePath(getFsImplementation(),
|
|
88999
|
+
const { resolvedPath } = safeResolvePath(getFsImplementation(), path12);
|
|
88940
89000
|
const content = readFileSync6(resolvedPath);
|
|
88941
89001
|
if (content.trim() === "") {
|
|
88942
89002
|
return { settings: {}, errors: [] };
|
|
88943
89003
|
}
|
|
88944
89004
|
const data = safeParseJSON(content, false);
|
|
88945
|
-
const ruleWarnings = filterInvalidPermissionRules(data,
|
|
89005
|
+
const ruleWarnings = filterInvalidPermissionRules(data, path12);
|
|
88946
89006
|
const result = SettingsSchema().safeParse(data);
|
|
88947
89007
|
if (!result.success) {
|
|
88948
|
-
const errors3 = formatZodError(result.error,
|
|
89008
|
+
const errors3 = formatZodError(result.error, path12);
|
|
88949
89009
|
return { settings: null, errors: [...ruleWarnings, ...errors3] };
|
|
88950
89010
|
}
|
|
88951
89011
|
return { settings: result.data, errors: ruleWarnings };
|
|
88952
89012
|
} catch (error52) {
|
|
88953
|
-
handleFileSystemError(error52,
|
|
89013
|
+
handleFileSystemError(error52, path12);
|
|
88954
89014
|
return { settings: null, errors: [] };
|
|
88955
89015
|
}
|
|
88956
89016
|
}
|
|
@@ -88964,8 +89024,8 @@ function getSettingsRootPathForSource(source) {
|
|
|
88964
89024
|
return resolve7(getOriginalCwd());
|
|
88965
89025
|
}
|
|
88966
89026
|
case "flagSettings": {
|
|
88967
|
-
const
|
|
88968
|
-
return
|
|
89027
|
+
const path12 = getFlagSettingsPath();
|
|
89028
|
+
return path12 ? dirname7(resolve7(path12)) : resolve7(getOriginalCwd());
|
|
88969
89029
|
}
|
|
88970
89030
|
}
|
|
88971
89031
|
}
|
|
@@ -89522,26 +89582,26 @@ var init_dist4 = __esm(() => {
|
|
|
89522
89582
|
});
|
|
89523
89583
|
|
|
89524
89584
|
// src/utils/caCerts.ts
|
|
89525
|
-
function readExtraCACert(
|
|
89526
|
-
if (!
|
|
89585
|
+
function readExtraCACert(path12) {
|
|
89586
|
+
if (!path12) {
|
|
89527
89587
|
return;
|
|
89528
89588
|
}
|
|
89529
89589
|
try {
|
|
89530
|
-
const stats = getFsImplementation().statSync(
|
|
89590
|
+
const stats = getFsImplementation().statSync(path12);
|
|
89531
89591
|
if (!stats.isFile()) {
|
|
89532
|
-
logForDebugging(`CA certs: Ignoring NODE_EXTRA_CA_CERTS because it is not a regular file (${
|
|
89533
|
-
clearInvalidExtraCACertsEnv(
|
|
89592
|
+
logForDebugging(`CA certs: Ignoring NODE_EXTRA_CA_CERTS because it is not a regular file (${path12})`, { level: "error" });
|
|
89593
|
+
clearInvalidExtraCACertsEnv(path12);
|
|
89534
89594
|
return;
|
|
89535
89595
|
}
|
|
89536
|
-
return getFsImplementation().readFileSync(
|
|
89596
|
+
return getFsImplementation().readFileSync(path12, { encoding: "utf8" });
|
|
89537
89597
|
} catch (error52) {
|
|
89538
|
-
logForDebugging(`CA certs: Ignoring unreadable NODE_EXTRA_CA_CERTS path (${
|
|
89539
|
-
clearInvalidExtraCACertsEnv(
|
|
89598
|
+
logForDebugging(`CA certs: Ignoring unreadable NODE_EXTRA_CA_CERTS path (${path12}): ${error52}`, { level: "error" });
|
|
89599
|
+
clearInvalidExtraCACertsEnv(path12);
|
|
89540
89600
|
return;
|
|
89541
89601
|
}
|
|
89542
89602
|
}
|
|
89543
|
-
function clearInvalidExtraCACertsEnv(
|
|
89544
|
-
if (process.env.NODE_EXTRA_CA_CERTS ===
|
|
89603
|
+
function clearInvalidExtraCACertsEnv(path12) {
|
|
89604
|
+
if (process.env.NODE_EXTRA_CA_CERTS === path12) {
|
|
89545
89605
|
delete process.env.NODE_EXTRA_CA_CERTS;
|
|
89546
89606
|
}
|
|
89547
89607
|
}
|
|
@@ -91893,14 +91953,14 @@ var require_config = __commonJS((exports) => {
|
|
|
91893
91953
|
};
|
|
91894
91954
|
var filePromises = {};
|
|
91895
91955
|
var fileIntercept = {};
|
|
91896
|
-
var readFile3 = (
|
|
91897
|
-
if (fileIntercept[
|
|
91898
|
-
return fileIntercept[
|
|
91956
|
+
var readFile3 = (path12, options) => {
|
|
91957
|
+
if (fileIntercept[path12] !== undefined) {
|
|
91958
|
+
return fileIntercept[path12];
|
|
91899
91959
|
}
|
|
91900
|
-
if (!filePromises[
|
|
91901
|
-
filePromises[
|
|
91960
|
+
if (!filePromises[path12] || options?.ignoreCache) {
|
|
91961
|
+
filePromises[path12] = promises.readFile(path12, "utf8");
|
|
91902
91962
|
}
|
|
91903
|
-
return filePromises[
|
|
91963
|
+
return filePromises[path12];
|
|
91904
91964
|
};
|
|
91905
91965
|
var swallowError$1 = () => ({});
|
|
91906
91966
|
var loadSharedConfigFiles = async (init = {}) => {
|
|
@@ -91952,8 +92012,8 @@ var require_config = __commonJS((exports) => {
|
|
|
91952
92012
|
getFileRecord() {
|
|
91953
92013
|
return fileIntercept;
|
|
91954
92014
|
},
|
|
91955
|
-
interceptFile(
|
|
91956
|
-
fileIntercept[
|
|
92015
|
+
interceptFile(path12, contents) {
|
|
92016
|
+
fileIntercept[path12] = Promise.resolve(contents);
|
|
91957
92017
|
},
|
|
91958
92018
|
getTokenRecord() {
|
|
91959
92019
|
return tokenIntercept;
|
|
@@ -92226,13 +92286,13 @@ var require_config = __commonJS((exports) => {
|
|
|
92226
92286
|
}
|
|
92227
92287
|
return { hostname: "169.254.169.254", path: "/" };
|
|
92228
92288
|
};
|
|
92229
|
-
var imdsHttpGet = async ({ hostname: hostname3, path:
|
|
92289
|
+
var imdsHttpGet = async ({ hostname: hostname3, path: path12 }) => {
|
|
92230
92290
|
const { request } = await import("http");
|
|
92231
92291
|
return new Promise((resolve8, reject) => {
|
|
92232
92292
|
const req = request({
|
|
92233
92293
|
method: "GET",
|
|
92234
92294
|
hostname: hostname3.replace(/^\[(.+)]$/, "$1"),
|
|
92235
|
-
path:
|
|
92295
|
+
path: path12,
|
|
92236
92296
|
timeout: 1000,
|
|
92237
92297
|
signal: AbortSignal.timeout(1000)
|
|
92238
92298
|
});
|
|
@@ -92412,8 +92472,8 @@ var require_endpoints = __commonJS((exports) => {
|
|
|
92412
92472
|
return endpoint.url.href;
|
|
92413
92473
|
}
|
|
92414
92474
|
if ("hostname" in endpoint) {
|
|
92415
|
-
const { protocol, hostname: hostname3, port: port2, path:
|
|
92416
|
-
return `${protocol}//${hostname3}${port2 ? ":" + port2 : ""}${
|
|
92475
|
+
const { protocol, hostname: hostname3, port: port2, path: path12 } = endpoint;
|
|
92476
|
+
return `${protocol}//${hostname3}${port2 ? ":" + port2 : ""}${path12}`;
|
|
92417
92477
|
}
|
|
92418
92478
|
}
|
|
92419
92479
|
return endpoint;
|
|
@@ -92668,18 +92728,18 @@ var require_endpoints = __commonJS((exports) => {
|
|
|
92668
92728
|
}
|
|
92669
92729
|
return;
|
|
92670
92730
|
}
|
|
92671
|
-
var getAttrPathList = (
|
|
92672
|
-
const parts =
|
|
92731
|
+
var getAttrPathList = (path12) => {
|
|
92732
|
+
const parts = path12.split(".");
|
|
92673
92733
|
const pathList = [];
|
|
92674
92734
|
for (const part of parts) {
|
|
92675
92735
|
const squareBracketIndex = part.indexOf("[");
|
|
92676
92736
|
if (squareBracketIndex !== -1) {
|
|
92677
92737
|
if (part.indexOf("]") !== part.length - 1) {
|
|
92678
|
-
throw new EndpointError(`Path: '${
|
|
92738
|
+
throw new EndpointError(`Path: '${path12}' does not end with ']'`);
|
|
92679
92739
|
}
|
|
92680
92740
|
const arrayIndex = part.slice(squareBracketIndex + 1, -1);
|
|
92681
92741
|
if (Number.isNaN(parseInt(arrayIndex))) {
|
|
92682
|
-
throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${
|
|
92742
|
+
throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path12}'`);
|
|
92683
92743
|
}
|
|
92684
92744
|
if (squareBracketIndex !== 0) {
|
|
92685
92745
|
pathList.push(part.slice(0, squareBracketIndex));
|
|
@@ -92691,9 +92751,9 @@ var require_endpoints = __commonJS((exports) => {
|
|
|
92691
92751
|
}
|
|
92692
92752
|
return pathList;
|
|
92693
92753
|
};
|
|
92694
|
-
var getAttr = (value,
|
|
92754
|
+
var getAttr = (value, path12) => getAttrPathList(path12).reduce((acc, index2) => {
|
|
92695
92755
|
if (typeof acc !== "object") {
|
|
92696
|
-
throw new EndpointError(`Index '${index2}' in '${
|
|
92756
|
+
throw new EndpointError(`Index '${index2}' in '${path12}' not found in '${JSON.stringify(value)}'`);
|
|
92697
92757
|
} else if (Array.isArray(acc)) {
|
|
92698
92758
|
const i2 = parseInt(index2);
|
|
92699
92759
|
return acc[i2 < 0 ? acc.length + i2 : i2];
|
|
@@ -92718,8 +92778,8 @@ var require_endpoints = __commonJS((exports) => {
|
|
|
92718
92778
|
return value;
|
|
92719
92779
|
}
|
|
92720
92780
|
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}` : ""}${
|
|
92781
|
+
const { hostname: hostname4, port: port2, protocol: protocol2 = "", path: path12 = "", query = {} } = value;
|
|
92782
|
+
const url3 = new URL(`${protocol2}//${hostname4}${port2 ? `:${port2}` : ""}${path12}`);
|
|
92723
92783
|
url3.search = Object.entries(query).map(([k2, v]) => `${k2}=${v}`).join("&");
|
|
92724
92784
|
return url3;
|
|
92725
92785
|
}
|
|
@@ -95339,13 +95399,13 @@ var require_tslib = __commonJS((exports, module) => {
|
|
|
95339
95399
|
}
|
|
95340
95400
|
return next();
|
|
95341
95401
|
};
|
|
95342
|
-
__rewriteRelativeImportExtension = function(
|
|
95343
|
-
if (typeof
|
|
95344
|
-
return
|
|
95402
|
+
__rewriteRelativeImportExtension = function(path12, preserveJsx) {
|
|
95403
|
+
if (typeof path12 === "string" && /^\.\.?\//.test(path12)) {
|
|
95404
|
+
return path12.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m, tsx, d, ext, cm) {
|
|
95345
95405
|
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : d + ext + "." + cm.toLowerCase() + "js";
|
|
95346
95406
|
});
|
|
95347
95407
|
}
|
|
95348
|
-
return
|
|
95408
|
+
return path12;
|
|
95349
95409
|
};
|
|
95350
95410
|
exporter("__extends", __extends);
|
|
95351
95411
|
exporter("__assign", __assign);
|
|
@@ -96983,11 +97043,11 @@ var require_protocols = __commonJS((exports) => {
|
|
|
96983
97043
|
const opTraits = schema.translateTraits(operationSchema.traits);
|
|
96984
97044
|
if (opTraits.http) {
|
|
96985
97045
|
request.method = opTraits.http[0];
|
|
96986
|
-
const [
|
|
97046
|
+
const [path12, search] = opTraits.http[1].split("?");
|
|
96987
97047
|
if (request.path == "/") {
|
|
96988
|
-
request.path =
|
|
97048
|
+
request.path = path12;
|
|
96989
97049
|
} else {
|
|
96990
|
-
request.path +=
|
|
97050
|
+
request.path += path12;
|
|
96991
97051
|
}
|
|
96992
97052
|
const traitSearchParams = new URLSearchParams(search ?? "");
|
|
96993
97053
|
for (const [key, value] of traitSearchParams) {
|
|
@@ -97362,8 +97422,8 @@ var require_protocols = __commonJS((exports) => {
|
|
|
97362
97422
|
return this;
|
|
97363
97423
|
}
|
|
97364
97424
|
p(memberName, labelValueProvider, uriLabel, isGreedyLabel) {
|
|
97365
|
-
this.resolvePathStack.push((
|
|
97366
|
-
this.path = resolvedPath(
|
|
97425
|
+
this.resolvePathStack.push((path12) => {
|
|
97426
|
+
this.path = resolvedPath(path12, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel);
|
|
97367
97427
|
});
|
|
97368
97428
|
return this;
|
|
97369
97429
|
}
|
|
@@ -98062,12 +98122,12 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
|
|
|
98062
98122
|
const password = request.password ?? "";
|
|
98063
98123
|
auth = `${username}:${password}`;
|
|
98064
98124
|
}
|
|
98065
|
-
let
|
|
98125
|
+
let path12 = request.path;
|
|
98066
98126
|
if (queryString) {
|
|
98067
|
-
|
|
98127
|
+
path12 += `?${queryString}`;
|
|
98068
98128
|
}
|
|
98069
98129
|
if (request.fragment) {
|
|
98070
|
-
|
|
98130
|
+
path12 += `#${request.fragment}`;
|
|
98071
98131
|
}
|
|
98072
98132
|
let hostname3 = request.hostname ?? "";
|
|
98073
98133
|
if (hostname3[0] === "[" && hostname3.endsWith("]")) {
|
|
@@ -98079,7 +98139,7 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
|
|
|
98079
98139
|
headers: request.headers,
|
|
98080
98140
|
host: hostname3,
|
|
98081
98141
|
method: request.method,
|
|
98082
|
-
path:
|
|
98142
|
+
path: path12,
|
|
98083
98143
|
port: request.port,
|
|
98084
98144
|
agent,
|
|
98085
98145
|
auth
|
|
@@ -98486,16 +98546,16 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
|
|
|
98486
98546
|
reject(err);
|
|
98487
98547
|
};
|
|
98488
98548
|
const queryString = query ? protocols.buildQueryString(query) : "";
|
|
98489
|
-
let
|
|
98549
|
+
let path12 = request.path;
|
|
98490
98550
|
if (queryString) {
|
|
98491
|
-
|
|
98551
|
+
path12 += `?${queryString}`;
|
|
98492
98552
|
}
|
|
98493
98553
|
if (request.fragment) {
|
|
98494
|
-
|
|
98554
|
+
path12 += `#${request.fragment}`;
|
|
98495
98555
|
}
|
|
98496
98556
|
const clientHttp2Stream = session.request({
|
|
98497
98557
|
...request.headers,
|
|
98498
|
-
[constants4.HTTP2_HEADER_PATH]:
|
|
98558
|
+
[constants4.HTTP2_HEADER_PATH]: path12,
|
|
98499
98559
|
[constants4.HTTP2_HEADER_METHOD]: method
|
|
98500
98560
|
});
|
|
98501
98561
|
if (effectiveRequestTimeout) {
|
|
@@ -99700,9 +99760,9 @@ var require_dist_cjs6 = __commonJS((exports) => {
|
|
|
99700
99760
|
return;
|
|
99701
99761
|
};
|
|
99702
99762
|
}
|
|
99703
|
-
var get2 = (fromObject,
|
|
99763
|
+
var get2 = (fromObject, path12) => {
|
|
99704
99764
|
let cursor = fromObject;
|
|
99705
|
-
const pathComponents =
|
|
99765
|
+
const pathComponents = path12.split(".");
|
|
99706
99766
|
for (const step of pathComponents) {
|
|
99707
99767
|
if (!cursor || typeof cursor !== "object") {
|
|
99708
99768
|
return;
|
|
@@ -103541,12 +103601,12 @@ import fs5 from "fs/promises";
|
|
|
103541
103601
|
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
103602
|
options.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");
|
|
103543
103603
|
let host;
|
|
103544
|
-
const
|
|
103604
|
+
const relative4 = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI];
|
|
103545
103605
|
const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI];
|
|
103546
103606
|
const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN];
|
|
103547
103607
|
const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE];
|
|
103548
103608
|
const warn = options.logger?.constructor?.name === "NoOpLogger" || !options.logger?.warn ? console.warn : options.logger.warn.bind(options.logger);
|
|
103549
|
-
if (
|
|
103609
|
+
if (relative4 && full) {
|
|
103550
103610
|
warn("@aws-sdk/credential-provider-http: " + "you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri.");
|
|
103551
103611
|
warn("awsContainerCredentialsFullUri will take precedence.");
|
|
103552
103612
|
}
|
|
@@ -103556,8 +103616,8 @@ var import_client4, import_config9, import_node_http_handler, AWS_CONTAINER_CRED
|
|
|
103556
103616
|
}
|
|
103557
103617
|
if (full) {
|
|
103558
103618
|
host = full;
|
|
103559
|
-
} else if (
|
|
103560
|
-
host = `${DEFAULT_LINK_LOCAL_HOST}${
|
|
103619
|
+
} else if (relative4) {
|
|
103620
|
+
host = `${DEFAULT_LINK_LOCAL_HOST}${relative4}`;
|
|
103561
103621
|
} else {
|
|
103562
103622
|
throw new import_config9.CredentialsProviderError(`No HTTP credential provider host provided.
|
|
103563
103623
|
Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger });
|
|
@@ -103933,10 +103993,10 @@ ${longDate}
|
|
|
103933
103993
|
${credentialScope}
|
|
103934
103994
|
${serde.toHex(hashedRequest)}`;
|
|
103935
103995
|
}
|
|
103936
|
-
getCanonicalPath({ path:
|
|
103996
|
+
getCanonicalPath({ path: path12 }) {
|
|
103937
103997
|
if (this.uriEscapePath) {
|
|
103938
103998
|
const normalizedPathSegments = [];
|
|
103939
|
-
for (const pathSegment of
|
|
103999
|
+
for (const pathSegment of path12.split("/")) {
|
|
103940
104000
|
if (pathSegment?.length === 0)
|
|
103941
104001
|
continue;
|
|
103942
104002
|
if (pathSegment === ".")
|
|
@@ -103947,11 +104007,11 @@ ${serde.toHex(hashedRequest)}`;
|
|
|
103947
104007
|
normalizedPathSegments.push(pathSegment);
|
|
103948
104008
|
}
|
|
103949
104009
|
}
|
|
103950
|
-
const normalizedPath = `${
|
|
104010
|
+
const normalizedPath = `${path12?.startsWith("/") ? "/" : ""}${normalizedPathSegments.join("/")}${normalizedPathSegments.length > 0 && path12?.endsWith("/") ? "/" : ""}`;
|
|
103951
104011
|
const doubleEncoded = protocols.escapeUri(normalizedPath);
|
|
103952
104012
|
return doubleEncoded.replace(/%2F/g, "/");
|
|
103953
104013
|
}
|
|
103954
|
-
return
|
|
104014
|
+
return path12;
|
|
103955
104015
|
}
|
|
103956
104016
|
validateResolvedCredentials(credentials) {
|
|
103957
104017
|
if (typeof credentials !== "object" || typeof credentials.accessKeyId !== "string" || typeof credentials.secretAccessKey !== "string") {
|
|
@@ -105258,7 +105318,7 @@ var require_cbor = __commonJS((exports) => {
|
|
|
105258
105318
|
throw new Error("Malformed RPCv2 CBOR response, status: " + response.statusCode);
|
|
105259
105319
|
}
|
|
105260
105320
|
};
|
|
105261
|
-
var buildHttpRpcRequest = async (context, headers,
|
|
105321
|
+
var buildHttpRpcRequest = async (context, headers, path12, resolvedHostname, body) => {
|
|
105262
105322
|
const endpoint = await context.endpoint();
|
|
105263
105323
|
const { hostname: hostname3, protocol = "https", port: port2, path: basePath } = endpoint;
|
|
105264
105324
|
const contents = {
|
|
@@ -105266,7 +105326,7 @@ var require_cbor = __commonJS((exports) => {
|
|
|
105266
105326
|
hostname: hostname3,
|
|
105267
105327
|
port: port2,
|
|
105268
105328
|
method: "POST",
|
|
105269
|
-
path: basePath.endsWith("/") ? basePath.slice(0, -1) +
|
|
105329
|
+
path: basePath.endsWith("/") ? basePath.slice(0, -1) + path12 : basePath + path12,
|
|
105270
105330
|
headers: {
|
|
105271
105331
|
...headers
|
|
105272
105332
|
}
|
|
@@ -105521,11 +105581,11 @@ var require_cbor = __commonJS((exports) => {
|
|
|
105521
105581
|
} catch (e) {}
|
|
105522
105582
|
}
|
|
105523
105583
|
const { service, operation } = client.getSmithyContext(context);
|
|
105524
|
-
const
|
|
105584
|
+
const path12 = `/service/${service}/operation/${operation}`;
|
|
105525
105585
|
if (request.path.endsWith("/")) {
|
|
105526
|
-
request.path +=
|
|
105586
|
+
request.path += path12.slice(1);
|
|
105527
105587
|
} else {
|
|
105528
|
-
request.path +=
|
|
105588
|
+
request.path += path12;
|
|
105529
105589
|
}
|
|
105530
105590
|
return request;
|
|
105531
105591
|
}
|
|
@@ -124353,30 +124413,30 @@ var init_client2 = __esm(() => {
|
|
|
124353
124413
|
|
|
124354
124414
|
// src/utils/authFileDescriptor.ts
|
|
124355
124415
|
import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync3 } from "fs";
|
|
124356
|
-
function maybePersistTokenForSubprocesses(
|
|
124416
|
+
function maybePersistTokenForSubprocesses(path12, token, tokenName) {
|
|
124357
124417
|
if (!isEnvTruthy(process.env.CLAUDE_CODE_REMOTE)) {
|
|
124358
124418
|
return;
|
|
124359
124419
|
}
|
|
124360
124420
|
try {
|
|
124361
124421
|
mkdirSync2(CCR_TOKEN_DIR, { recursive: true, mode: 448 });
|
|
124362
|
-
writeFileSync3(
|
|
124363
|
-
logForDebugging(`Persisted ${tokenName} to ${
|
|
124422
|
+
writeFileSync3(path12, token, { encoding: "utf8", mode: 384 });
|
|
124423
|
+
logForDebugging(`Persisted ${tokenName} to ${path12} for subprocess access`);
|
|
124364
124424
|
} catch (error52) {
|
|
124365
124425
|
logForDebugging(`Failed to persist ${tokenName} to disk (non-fatal): ${errorMessage(error52)}`, { level: "error" });
|
|
124366
124426
|
}
|
|
124367
124427
|
}
|
|
124368
|
-
function readTokenFromWellKnownFile(
|
|
124428
|
+
function readTokenFromWellKnownFile(path12, tokenName) {
|
|
124369
124429
|
try {
|
|
124370
124430
|
const fsOps = getFsImplementation();
|
|
124371
|
-
const token = fsOps.readFileSync(
|
|
124431
|
+
const token = fsOps.readFileSync(path12, { encoding: "utf8" }).trim();
|
|
124372
124432
|
if (!token) {
|
|
124373
124433
|
return null;
|
|
124374
124434
|
}
|
|
124375
|
-
logForDebugging(`Read ${tokenName} from well-known file ${
|
|
124435
|
+
logForDebugging(`Read ${tokenName} from well-known file ${path12}`);
|
|
124376
124436
|
return token;
|
|
124377
124437
|
} catch (error52) {
|
|
124378
124438
|
if (!isENOENT(error52)) {
|
|
124379
|
-
logForDebugging(`Failed to read ${tokenName} from ${
|
|
124439
|
+
logForDebugging(`Failed to read ${tokenName} from ${path12}: ${errorMessage(error52)}`, { level: "debug" });
|
|
124380
124440
|
}
|
|
124381
124441
|
return null;
|
|
124382
124442
|
}
|
|
@@ -127682,15 +127742,15 @@ var init_modelCapabilities = __esm(() => {
|
|
|
127682
127742
|
models: exports_external.array(ModelCapabilitySchema()),
|
|
127683
127743
|
timestamp: exports_external.number()
|
|
127684
127744
|
}));
|
|
127685
|
-
loadCache = memoize_default((
|
|
127745
|
+
loadCache = memoize_default((path12) => {
|
|
127686
127746
|
try {
|
|
127687
|
-
const raw = readFileSync10(
|
|
127747
|
+
const raw = readFileSync10(path12, "utf-8");
|
|
127688
127748
|
const parsed = CacheFileSchema().safeParse(safeParseJSON(raw, false));
|
|
127689
127749
|
return parsed.success ? parsed.data.models : null;
|
|
127690
127750
|
} catch {
|
|
127691
127751
|
return null;
|
|
127692
127752
|
}
|
|
127693
|
-
}, (
|
|
127753
|
+
}, (path12) => path12);
|
|
127694
127754
|
});
|
|
127695
127755
|
|
|
127696
127756
|
// src/costrict/provider/models.ts
|
|
@@ -132576,7 +132636,7 @@ var require_util2 = __commonJS((exports) => {
|
|
|
132576
132636
|
exports.getWellKnownCertificateConfigFileLocation = getWellKnownCertificateConfigFileLocation;
|
|
132577
132637
|
var fs7 = __require("fs");
|
|
132578
132638
|
var os4 = __require("os");
|
|
132579
|
-
var
|
|
132639
|
+
var path12 = __require("path");
|
|
132580
132640
|
var WELL_KNOWN_CERTIFICATE_CONFIG_FILE = "certificate_config.json";
|
|
132581
132641
|
var CLOUDSDK_CONFIG_DIRECTORY = "gcloud";
|
|
132582
132642
|
function snakeToCamel(str) {
|
|
@@ -132644,8 +132704,8 @@ var require_util2 = __commonJS((exports) => {
|
|
|
132644
132704
|
}
|
|
132645
132705
|
}
|
|
132646
132706
|
function getWellKnownCertificateConfigFileLocation() {
|
|
132647
|
-
const configDir = process.env.CLOUDSDK_CONFIG || (_isWindows() ?
|
|
132648
|
-
return
|
|
132707
|
+
const configDir = process.env.CLOUDSDK_CONFIG || (_isWindows() ? path12.join(process.env.APPDATA || "", CLOUDSDK_CONFIG_DIRECTORY) : path12.join(process.env.HOME || "", ".config", CLOUDSDK_CONFIG_DIRECTORY));
|
|
132708
|
+
return path12.join(configDir, WELL_KNOWN_CERTIFICATE_CONFIG_FILE);
|
|
132649
132709
|
}
|
|
132650
132710
|
function _isWindows() {
|
|
132651
132711
|
return os4.platform().startsWith("win");
|
|
@@ -134356,7 +134416,7 @@ var require_errorWithCode = __commonJS((exports) => {
|
|
|
134356
134416
|
var require_getCredentials = __commonJS((exports) => {
|
|
134357
134417
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
134358
134418
|
exports.getCredentials = getCredentials2;
|
|
134359
|
-
var
|
|
134419
|
+
var path12 = __require("path");
|
|
134360
134420
|
var fs7 = __require("fs");
|
|
134361
134421
|
var util_1 = __require("util");
|
|
134362
134422
|
var errorWithCode_1 = require_errorWithCode();
|
|
@@ -134415,7 +134475,7 @@ var require_getCredentials = __commonJS((exports) => {
|
|
|
134415
134475
|
|
|
134416
134476
|
class CredentialsProviderFactory {
|
|
134417
134477
|
static create(keyFilePath) {
|
|
134418
|
-
const keyFileExtension =
|
|
134478
|
+
const keyFileExtension = path12.extname(keyFilePath);
|
|
134419
134479
|
switch (keyFileExtension) {
|
|
134420
134480
|
case ExtensionFiles.JSON:
|
|
134421
134481
|
return new JsonCredentialsProvider(keyFilePath);
|
|
@@ -137016,7 +137076,7 @@ var require_googleauth = __commonJS((exports) => {
|
|
|
137016
137076
|
var gaxios_1 = require_src3();
|
|
137017
137077
|
var gcpMetadata = require_src5();
|
|
137018
137078
|
var os4 = __require("os");
|
|
137019
|
-
var
|
|
137079
|
+
var path12 = __require("path");
|
|
137020
137080
|
var crypto_1 = require_crypto3();
|
|
137021
137081
|
var computeclient_1 = require_computeclient();
|
|
137022
137082
|
var idtokenclient_1 = require_idtokenclient();
|
|
@@ -137225,11 +137285,11 @@ var require_googleauth = __commonJS((exports) => {
|
|
|
137225
137285
|
} else {
|
|
137226
137286
|
const home = process.env["HOME"];
|
|
137227
137287
|
if (home) {
|
|
137228
|
-
location =
|
|
137288
|
+
location = path12.join(home, ".config");
|
|
137229
137289
|
}
|
|
137230
137290
|
}
|
|
137231
137291
|
if (location) {
|
|
137232
|
-
location =
|
|
137292
|
+
location = path12.join(location, "gcloud", "application_default_credentials.json");
|
|
137233
137293
|
if (!fs7.existsSync(location)) {
|
|
137234
137294
|
location = null;
|
|
137235
137295
|
}
|
|
@@ -137493,7 +137553,7 @@ var require_googleauth = __commonJS((exports) => {
|
|
|
137493
137553
|
if (this.jsonContent) {
|
|
137494
137554
|
return this._cacheClientFromJSON(this.jsonContent, this.clientOptions);
|
|
137495
137555
|
} else if (this.keyFilename) {
|
|
137496
|
-
const filePath =
|
|
137556
|
+
const filePath = path12.resolve(this.keyFilename);
|
|
137497
137557
|
const stream4 = fs7.createReadStream(filePath);
|
|
137498
137558
|
return await this.fromStreamAsync(stream4, this.clientOptions);
|
|
137499
137559
|
} else if (this.apiKey) {
|
|
@@ -138481,7 +138541,7 @@ var init_user = __esm(() => {
|
|
|
138481
138541
|
deviceId,
|
|
138482
138542
|
sessionId: getSessionId(),
|
|
138483
138543
|
email: getEmail(),
|
|
138484
|
-
appVersion: "4.2.21
|
|
138544
|
+
appVersion: "4.2.21",
|
|
138485
138545
|
platform: getHostPlatformForAnalytics(),
|
|
138486
138546
|
organizationUuid,
|
|
138487
138547
|
accountUuid,
|
|
@@ -138768,7 +138828,7 @@ var init_metadata = __esm(() => {
|
|
|
138768
138828
|
"sed"
|
|
138769
138829
|
]);
|
|
138770
138830
|
getVersionBase = memoize_default(() => {
|
|
138771
|
-
const match = "4.2.21
|
|
138831
|
+
const match = "4.2.21".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
138772
138832
|
return match ? match[0] : undefined;
|
|
138773
138833
|
});
|
|
138774
138834
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -138808,9 +138868,9 @@ var init_metadata = __esm(() => {
|
|
|
138808
138868
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
138809
138869
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
138810
138870
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
138811
|
-
version: "4.2.21
|
|
138871
|
+
version: "4.2.21",
|
|
138812
138872
|
versionBase: getVersionBase(),
|
|
138813
|
-
buildTime: "2026-07-
|
|
138873
|
+
buildTime: "2026-07-31T12:00:35.194Z",
|
|
138814
138874
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
138815
138875
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
138816
138876
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -139366,7 +139426,7 @@ var init_growthbook = __esm(() => {
|
|
|
139366
139426
|
|
|
139367
139427
|
// src/memdir/paths.ts
|
|
139368
139428
|
import { homedir as homedir6 } from "os";
|
|
139369
|
-
import { isAbsolute as
|
|
139429
|
+
import { isAbsolute as isAbsolute4, join as join18, normalize as normalize3, sep as sep3 } from "path";
|
|
139370
139430
|
function getMemoryBaseDir() {
|
|
139371
139431
|
const remoteMemoryDir = getCostrictEnv("REMOTE_MEMORY_DIR");
|
|
139372
139432
|
if (remoteMemoryDir) {
|
|
@@ -139388,10 +139448,10 @@ function validateMemoryPath(raw, expandTilde) {
|
|
|
139388
139448
|
candidate = join18(homedir6(), rest);
|
|
139389
139449
|
}
|
|
139390
139450
|
const normalized = normalize3(candidate).replace(/[/\\]+$/u, "");
|
|
139391
|
-
if (!
|
|
139451
|
+
if (!isAbsolute4(normalized) || normalized.length < 3 || /^[A-Za-z]:$/.test(normalized) || normalized.startsWith("\\\\") || normalized.startsWith("//") || normalized.includes("\x00")) {
|
|
139392
139452
|
return;
|
|
139393
139453
|
}
|
|
139394
|
-
return (normalized +
|
|
139454
|
+
return (normalized + sep3).normalize("NFC");
|
|
139395
139455
|
}
|
|
139396
139456
|
function getAutoMemPathOverride() {
|
|
139397
139457
|
return validateMemoryPath(getCostrictEnv("COWORK_MEMORY_PATH_OVERRIDE"), false);
|
|
@@ -139418,7 +139478,7 @@ var init_paths = __esm(() => {
|
|
|
139418
139478
|
return override;
|
|
139419
139479
|
}
|
|
139420
139480
|
const projectsDir = join18(getMemoryBaseDir(), "projects");
|
|
139421
|
-
return (join18(projectsDir, sanitizePath(getAutoMemBase()), AUTO_MEM_DIRNAME) +
|
|
139481
|
+
return (join18(projectsDir, sanitizePath(getAutoMemBase()), AUTO_MEM_DIRNAME) + sep3).normalize("NFC");
|
|
139422
139482
|
}, () => getProjectRoot());
|
|
139423
139483
|
});
|
|
139424
139484
|
|
|
@@ -139633,14 +139693,14 @@ function removeProjectHistory(projects) {
|
|
|
139633
139693
|
}
|
|
139634
139694
|
const cleanedProjects = {};
|
|
139635
139695
|
let needsCleaning = false;
|
|
139636
|
-
for (const [
|
|
139696
|
+
for (const [path12, projectConfig] of Object.entries(projects)) {
|
|
139637
139697
|
const legacy = projectConfig;
|
|
139638
139698
|
if (legacy.history !== undefined) {
|
|
139639
139699
|
needsCleaning = true;
|
|
139640
139700
|
const { history, ...cleanedConfig } = legacy;
|
|
139641
|
-
cleanedProjects[
|
|
139701
|
+
cleanedProjects[path12] = cleanedConfig;
|
|
139642
139702
|
} else {
|
|
139643
|
-
cleanedProjects[
|
|
139703
|
+
cleanedProjects[path12] = projectConfig;
|
|
139644
139704
|
}
|
|
139645
139705
|
}
|
|
139646
139706
|
return needsCleaning ? cleanedProjects : projects;
|
|
@@ -139725,11 +139785,11 @@ function saveConfigWithLock(file2, createDefault, mergeFn, readCurrent) {
|
|
|
139725
139785
|
const dir = dirname9(file2);
|
|
139726
139786
|
const fs7 = getFsImplementation();
|
|
139727
139787
|
fs7.mkdirSync(dir);
|
|
139728
|
-
let
|
|
139788
|
+
let release2;
|
|
139729
139789
|
try {
|
|
139730
139790
|
const lockFilePath = `${file2}.lock`;
|
|
139731
139791
|
const startTime2 = Date.now();
|
|
139732
|
-
|
|
139792
|
+
release2 = lockSync(file2, {
|
|
139733
139793
|
lockfilePath: lockFilePath,
|
|
139734
139794
|
onCompromised: (err) => {
|
|
139735
139795
|
logForDebugging(`Config lock compromised: ${err}`, { level: "error" });
|
|
@@ -139815,8 +139875,8 @@ function saveConfigWithLock(file2, createDefault, mergeFn, readCurrent) {
|
|
|
139815
139875
|
}
|
|
139816
139876
|
return true;
|
|
139817
139877
|
} finally {
|
|
139818
|
-
if (
|
|
139819
|
-
|
|
139878
|
+
if (release2) {
|
|
139879
|
+
release2();
|
|
139820
139880
|
}
|
|
139821
139881
|
}
|
|
139822
139882
|
}
|
|
@@ -140696,7 +140756,7 @@ init_token();
|
|
|
140696
140756
|
import { promises as fs12 } from "fs";
|
|
140697
140757
|
import { createHash as createHash4 } from "crypto";
|
|
140698
140758
|
import os4 from "os";
|
|
140699
|
-
import
|
|
140759
|
+
import path18 from "path";
|
|
140700
140760
|
|
|
140701
140761
|
// src/costrict/provider/tokenManager.ts
|
|
140702
140762
|
init_credentials();
|
|
@@ -140785,7 +140845,7 @@ async function recoverFrom401(staleAccessToken) {
|
|
|
140785
140845
|
// src/services/rawDump/git.ts
|
|
140786
140846
|
import { execFile } from "child_process";
|
|
140787
140847
|
import { realpathSync as realpathSync4 } from "fs";
|
|
140788
|
-
import
|
|
140848
|
+
import path12 from "path";
|
|
140789
140849
|
import { promisify as promisify5 } from "util";
|
|
140790
140850
|
var execFileAsync2 = promisify5(execFile);
|
|
140791
140851
|
var TRUNK_BRANCHES = ["origin/main", "origin/master", "main", "master"];
|
|
@@ -140823,7 +140883,7 @@ function computeRepoRelativePath(gitRoot, workDir) {
|
|
|
140823
140883
|
return "";
|
|
140824
140884
|
const root6 = tryRealpath(gitRoot);
|
|
140825
140885
|
const dir = tryRealpath(workDir);
|
|
140826
|
-
const rel =
|
|
140886
|
+
const rel = path12.relative(root6, dir);
|
|
140827
140887
|
if (rel === "")
|
|
140828
140888
|
return ".";
|
|
140829
140889
|
if (rel.startsWith(".."))
|
|
@@ -140834,7 +140894,7 @@ function tryRealpath(p2) {
|
|
|
140834
140894
|
try {
|
|
140835
140895
|
return realpathSync4(p2);
|
|
140836
140896
|
} catch {
|
|
140837
|
-
return
|
|
140897
|
+
return path12.resolve(p2);
|
|
140838
140898
|
}
|
|
140839
140899
|
}
|
|
140840
140900
|
async function getBranchAncestry(cwd2) {
|
|
@@ -140945,9 +141005,9 @@ function toCommitComment(subject) {
|
|
|
140945
141005
|
|
|
140946
141006
|
// src/services/rawDump/activeSessions.ts
|
|
140947
141007
|
import { readFileSync as readFileSync11, writeFileSync as writeFileSync4, mkdirSync as mkdirSync3, renameSync as renameSync2, realpathSync as realpathSync5 } from "fs";
|
|
140948
|
-
import
|
|
141008
|
+
import path13 from "path";
|
|
140949
141009
|
var log2 = createLogger("activeSessions");
|
|
140950
|
-
var ACTIVE_SESSIONS_FILE =
|
|
141010
|
+
var ACTIVE_SESSIONS_FILE = path13.join(getRawDumpDir(), "csc-active-sessions.json");
|
|
140951
141011
|
var DEFAULT_WINDOW_MS = 30 * 60 * 1000;
|
|
140952
141012
|
var FUTURE_TOLERANCE_MS = 5 * 60 * 1000;
|
|
140953
141013
|
var MAX_ACTIVE_SESSION_IDS = 64;
|
|
@@ -140967,9 +141027,9 @@ function normalizeCwd2(p2) {
|
|
|
140967
141027
|
try {
|
|
140968
141028
|
resolved = realpathSync5(p2);
|
|
140969
141029
|
} catch {
|
|
140970
|
-
resolved =
|
|
141030
|
+
resolved = path13.resolve(p2);
|
|
140971
141031
|
}
|
|
140972
|
-
if (resolved.length > 1 && resolved.endsWith(
|
|
141032
|
+
if (resolved.length > 1 && resolved.endsWith(path13.sep)) {
|
|
140973
141033
|
resolved = resolved.slice(0, -1);
|
|
140974
141034
|
}
|
|
140975
141035
|
return resolved;
|
|
@@ -141005,7 +141065,7 @@ function getActiveSessionIds(cwd2, atMs) {
|
|
|
141005
141065
|
|
|
141006
141066
|
// src/services/rawDump/localStorage.ts
|
|
141007
141067
|
import { promises as fs7 } from "fs";
|
|
141008
|
-
import
|
|
141068
|
+
import path14 from "path";
|
|
141009
141069
|
var DEFAULT_LOCAL_DIR = getRawDumpDir();
|
|
141010
141070
|
var RAW_DUMP_MODE = {
|
|
141011
141071
|
DISABLED: 0,
|
|
@@ -141054,12 +141114,12 @@ async function writeLocalDump(type, body) {
|
|
|
141054
141114
|
endpoint = "/raw-store/task-summary";
|
|
141055
141115
|
} else if (type == "conversation") {
|
|
141056
141116
|
ymd = getDateFromTimestamp(getTimestampField("conversation", body));
|
|
141057
|
-
subdir =
|
|
141117
|
+
subdir = path14.join(ymd, body.task_id);
|
|
141058
141118
|
fname = body.request_id;
|
|
141059
141119
|
endpoint = "/raw-store/task-conversation";
|
|
141060
141120
|
} else if (type == "commit") {
|
|
141061
141121
|
ymd = getDateFromTimestamp(getTimestampField("commit", body));
|
|
141062
|
-
subdir =
|
|
141122
|
+
subdir = path14.join(normalizeProjectPath(body.repo_addr), normalizeProjectPath(body.repo_branch), ymd);
|
|
141063
141123
|
fname = body.commit_id;
|
|
141064
141124
|
endpoint = "/raw-store/commit";
|
|
141065
141125
|
} else if (type == "statistics") {
|
|
@@ -141071,7 +141131,7 @@ async function writeLocalDump(type, body) {
|
|
|
141071
141131
|
fname = `${h6}-${m3}-${s}`;
|
|
141072
141132
|
endpoint = "/raw-store/statistics";
|
|
141073
141133
|
} else if (type == "raw") {
|
|
141074
|
-
subdir =
|
|
141134
|
+
subdir = path14.join(normalizeProjectPath(body.project), body.session_id);
|
|
141075
141135
|
fname = String(body.start_cursor);
|
|
141076
141136
|
endpoint = "/raw-store/raw-log";
|
|
141077
141137
|
} else {
|
|
@@ -141079,9 +141139,9 @@ async function writeLocalDump(type, body) {
|
|
|
141079
141139
|
fname = "unknown";
|
|
141080
141140
|
endpoint = "unknown";
|
|
141081
141141
|
}
|
|
141082
|
-
const dumpDir =
|
|
141142
|
+
const dumpDir = path14.join(dir, type, subdir);
|
|
141083
141143
|
const filename = `${fname}.json`;
|
|
141084
|
-
const filePath =
|
|
141144
|
+
const filePath = path14.join(dumpDir, filename);
|
|
141085
141145
|
const payload = {
|
|
141086
141146
|
_dumpMeta: {
|
|
141087
141147
|
type,
|
|
@@ -141097,18 +141157,18 @@ async function writeLocalDump(type, body) {
|
|
|
141097
141157
|
|
|
141098
141158
|
// src/services/rawDump/queue.ts
|
|
141099
141159
|
import { promises as fs9 } from "fs";
|
|
141100
|
-
import
|
|
141160
|
+
import path16 from "path";
|
|
141101
141161
|
|
|
141102
141162
|
// src/services/rawDump/lock.ts
|
|
141103
141163
|
import { randomUUID as randomUUID4 } from "crypto";
|
|
141104
141164
|
import { promises as fs8 } from "fs";
|
|
141105
|
-
import
|
|
141165
|
+
import path15 from "path";
|
|
141106
141166
|
var LOCK_INFO_FILE = "lock.json";
|
|
141107
141167
|
var PUBLICATION_GRACE_MS = 5000;
|
|
141108
141168
|
async function isHolderAlive(lockDir) {
|
|
141109
141169
|
let text;
|
|
141110
141170
|
try {
|
|
141111
|
-
text = await fs8.readFile(
|
|
141171
|
+
text = await fs8.readFile(path15.join(lockDir, LOCK_INFO_FILE), "utf-8");
|
|
141112
141172
|
} catch {
|
|
141113
141173
|
try {
|
|
141114
141174
|
const st = await fs8.stat(lockDir);
|
|
@@ -141192,13 +141252,13 @@ async function acquireLock(lockDir, info) {
|
|
|
141192
141252
|
return null;
|
|
141193
141253
|
}
|
|
141194
141254
|
try {
|
|
141195
|
-
await fs8.writeFile(
|
|
141255
|
+
await fs8.writeFile(path15.join(lockDir, LOCK_INFO_FILE), payload, "utf-8");
|
|
141196
141256
|
} catch {
|
|
141197
141257
|
await releaseLock(lockDir, token);
|
|
141198
141258
|
return null;
|
|
141199
141259
|
}
|
|
141200
141260
|
try {
|
|
141201
|
-
const current = JSON.parse(await fs8.readFile(
|
|
141261
|
+
const current = JSON.parse(await fs8.readFile(path15.join(lockDir, LOCK_INFO_FILE), "utf-8"));
|
|
141202
141262
|
if (current.token === token && current.pid === info.pid)
|
|
141203
141263
|
return token;
|
|
141204
141264
|
} catch {}
|
|
@@ -141207,7 +141267,7 @@ async function acquireLock(lockDir, info) {
|
|
|
141207
141267
|
}
|
|
141208
141268
|
async function releaseLock(lockDir, token) {
|
|
141209
141269
|
try {
|
|
141210
|
-
const text = await fs8.readFile(
|
|
141270
|
+
const text = await fs8.readFile(path15.join(lockDir, LOCK_INFO_FILE), "utf-8").catch(() => null);
|
|
141211
141271
|
if (text !== null) {
|
|
141212
141272
|
try {
|
|
141213
141273
|
const info = JSON.parse(text);
|
|
@@ -141225,10 +141285,10 @@ async function releaseLock(lockDir, token) {
|
|
|
141225
141285
|
|
|
141226
141286
|
// src/services/rawDump/queue.ts
|
|
141227
141287
|
function getQueueFile() {
|
|
141228
|
-
return
|
|
141288
|
+
return path16.join(getRawDumpDir(), "csc-work-queue.jsonl");
|
|
141229
141289
|
}
|
|
141230
141290
|
function getQueueLockDir() {
|
|
141231
|
-
return
|
|
141291
|
+
return path16.join(getRawDumpDir(), "csc-work-queue.lock.d");
|
|
141232
141292
|
}
|
|
141233
141293
|
var MAX_ATTEMPTS = 4;
|
|
141234
141294
|
var queue = [];
|
|
@@ -141281,8 +141341,8 @@ async function releaseQueueLock() {
|
|
|
141281
141341
|
// src/services/rawDump/history.ts
|
|
141282
141342
|
init_envUtils();
|
|
141283
141343
|
import { promises as fs10 } from "fs";
|
|
141284
|
-
import
|
|
141285
|
-
var HISTORY_FILE =
|
|
141344
|
+
import path17 from "path";
|
|
141345
|
+
var HISTORY_FILE = path17.join(getCostrictConfigHomeDir(), "history.jsonl");
|
|
141286
141346
|
var cache7 = null;
|
|
141287
141347
|
async function loadHistory() {
|
|
141288
141348
|
const items = [];
|
|
@@ -142380,7 +142440,7 @@ async function authWithFallback() {
|
|
|
142380
142440
|
const version4 = getClientVersion();
|
|
142381
142441
|
let deviceId = process.env.CSC_DEVICE_ID;
|
|
142382
142442
|
if (!deviceId) {
|
|
142383
|
-
const deviceIdFile =
|
|
142443
|
+
const deviceIdFile = path18.join(getLocalDumpDir(), "device-id");
|
|
142384
142444
|
try {
|
|
142385
142445
|
deviceId = (await fs12.readFile(deviceIdFile, "utf-8")).trim();
|
|
142386
142446
|
} catch {}
|
|
@@ -142915,9 +142975,9 @@ if (scriptPath.endsWith("worker.ts") || scriptPath.endsWith("worker.js")) {
|
|
|
142915
142975
|
}
|
|
142916
142976
|
|
|
142917
142977
|
// src/services/rawDump/timerWorker.ts
|
|
142918
|
-
import
|
|
142978
|
+
import path19 from "path";
|
|
142919
142979
|
var log6 = createLogger("timer");
|
|
142920
|
-
var TIMER_LOCK_DIR =
|
|
142980
|
+
var TIMER_LOCK_DIR = path19.join(getRawDumpDir(), "csc-timer.lock.d");
|
|
142921
142981
|
var isRunning = false;
|
|
142922
142982
|
var timerLockToken = null;
|
|
142923
142983
|
async function acquireTimerLock() {
|
|
@@ -142990,10 +143050,10 @@ if (scriptPath2.endsWith("timerWorker.ts") || scriptPath2.endsWith("timerWorker.
|
|
|
142990
143050
|
|
|
142991
143051
|
// src/services/rawDump/parentHeartbeat.ts
|
|
142992
143052
|
import { promises as fs13 } from "fs";
|
|
142993
|
-
import
|
|
143053
|
+
import path20 from "path";
|
|
142994
143054
|
var HEARTBEAT_STALE_MS = 15000;
|
|
142995
143055
|
function getParentHeartbeatPath(pid) {
|
|
142996
|
-
return
|
|
143056
|
+
return path20.join(getRawDumpDir(), `csc-parent-heartbeat-${pid}.json`);
|
|
142997
143057
|
}
|
|
142998
143058
|
async function readParentHeartbeat(pid) {
|
|
142999
143059
|
try {
|
|
@@ -143148,5 +143208,5 @@ export {
|
|
|
143148
143208
|
isParentHeartbeatValid
|
|
143149
143209
|
};
|
|
143150
143210
|
|
|
143151
|
-
//# debugId=
|
|
143211
|
+
//# debugId=8FD1A5954CDBB6BF64756E2164756E21
|
|
143152
143212
|
|