@funnycode/myclaude 0.1.171 → 0.1.172
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/myclaude.js +217 -193
- package/dist/myclaude.mjs +217 -193
- package/package.json +1 -1
package/dist/myclaude.mjs
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
// MACRO - build-time constants (injected by build.ts)
|
|
5
5
|
// MACRO injected by build script
|
|
6
6
|
globalThis.MACRO = {
|
|
7
|
-
VERSION: "0.1.
|
|
8
|
-
BUILD_TIME: "2026-08-
|
|
7
|
+
VERSION: "0.1.172",
|
|
8
|
+
BUILD_TIME: "2026-08-01T09:40:01.406Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
@@ -119947,7 +119947,7 @@ var package_default;
|
|
|
119947
119947
|
var init_package = __esm(() => {
|
|
119948
119948
|
package_default = {
|
|
119949
119949
|
name: "@funnycode/myclaude",
|
|
119950
|
-
version: "0.1.
|
|
119950
|
+
version: "0.1.172",
|
|
119951
119951
|
private: false,
|
|
119952
119952
|
description: "An open-source AI coding assistant in your terminal - powered by Claude",
|
|
119953
119953
|
license: "MIT",
|
|
@@ -410152,12 +410152,26 @@ function isInputModeCharacter(input) {
|
|
|
410152
410152
|
|
|
410153
410153
|
// src/projectOnboardingState.ts
|
|
410154
410154
|
import { join as join105 } from "path";
|
|
410155
|
-
function getDirectoryFingerprint(dirPath) {
|
|
410155
|
+
function getDirectoryFingerprint(dirPath, visitedRealPaths) {
|
|
410156
410156
|
const fs13 = getFsImplementation();
|
|
410157
|
+
if (!visitedRealPaths) {
|
|
410158
|
+
visitedRealPaths = new Set;
|
|
410159
|
+
}
|
|
410160
|
+
let currentRealPath;
|
|
410161
|
+
try {
|
|
410162
|
+
currentRealPath = fs13.realpathSync(dirPath);
|
|
410163
|
+
} catch {
|
|
410164
|
+
currentRealPath = dirPath;
|
|
410165
|
+
}
|
|
410166
|
+
if (visitedRealPaths.has(currentRealPath)) {
|
|
410167
|
+
return "";
|
|
410168
|
+
}
|
|
410169
|
+
visitedRealPaths.add(currentRealPath);
|
|
410157
410170
|
let entries;
|
|
410158
410171
|
try {
|
|
410159
410172
|
entries = fs13.readdirSync(dirPath).map((dirent) => dirent.name);
|
|
410160
410173
|
} catch {
|
|
410174
|
+
visitedRealPaths.delete(currentRealPath);
|
|
410161
410175
|
return "";
|
|
410162
410176
|
}
|
|
410163
410177
|
const sortedEntries = entries.sort();
|
|
@@ -410167,14 +410181,23 @@ function getDirectoryFingerprint(dirPath) {
|
|
|
410167
410181
|
try {
|
|
410168
410182
|
const lstat7 = fs13.lstatSync(fullPath);
|
|
410169
410183
|
if (lstat7.isSymbolicLink()) {
|
|
410170
|
-
|
|
410171
|
-
|
|
410172
|
-
|
|
410184
|
+
try {
|
|
410185
|
+
const stat37 = fs13.statSync(fullPath);
|
|
410186
|
+
if (stat37.isDirectory()) {
|
|
410187
|
+
fingerprintParts.push(entry + "/");
|
|
410188
|
+
fingerprintParts.push(getDirectoryFingerprint(fullPath, visitedRealPaths));
|
|
410189
|
+
} else {
|
|
410190
|
+
fingerprintParts.push(entry);
|
|
410191
|
+
}
|
|
410192
|
+
} catch {
|
|
410193
|
+
continue;
|
|
410194
|
+
}
|
|
410195
|
+
} else if (lstat7.isDirectory()) {
|
|
410173
410196
|
if (entry === "node_modules" || entry === ".git" || entry === "dist" || entry === "build" || entry === ".next" || entry === "out" || entry === "coverage" || entry === "target" || entry === "vendor" || entry === "__pycache__" || entry === ".cache" || entry === ".mypy_cache" || entry === ".svn" || entry === ".hg") {
|
|
410174
410197
|
continue;
|
|
410175
410198
|
}
|
|
410176
410199
|
fingerprintParts.push(entry + "/");
|
|
410177
|
-
fingerprintParts.push(getDirectoryFingerprint(fullPath));
|
|
410200
|
+
fingerprintParts.push(getDirectoryFingerprint(fullPath, visitedRealPaths));
|
|
410178
410201
|
} else {
|
|
410179
410202
|
fingerprintParts.push(entry);
|
|
410180
410203
|
}
|
|
@@ -410182,6 +410205,7 @@ function getDirectoryFingerprint(dirPath) {
|
|
|
410182
410205
|
continue;
|
|
410183
410206
|
}
|
|
410184
410207
|
}
|
|
410208
|
+
visitedRealPaths.delete(currentRealPath);
|
|
410185
410209
|
return fingerprintParts.join(`
|
|
410186
410210
|
`);
|
|
410187
410211
|
}
|
|
@@ -412663,7 +412687,7 @@ var init_renderPlaceholder = __esm(() => {
|
|
|
412663
412687
|
});
|
|
412664
412688
|
|
|
412665
412689
|
// src/hooks/usePasteHandler.ts
|
|
412666
|
-
import { basename as
|
|
412690
|
+
import { basename as basename38 } from "path";
|
|
412667
412691
|
function usePasteHandler({
|
|
412668
412692
|
onPaste,
|
|
412669
412693
|
onInput,
|
|
@@ -412714,7 +412738,7 @@ function usePasteHandler({
|
|
|
412714
412738
|
const validImages = results.filter((r) => r !== null);
|
|
412715
412739
|
if (validImages.length > 0) {
|
|
412716
412740
|
for (const imageData of validImages) {
|
|
412717
|
-
const filename =
|
|
412741
|
+
const filename = basename38(imageData.path);
|
|
412718
412742
|
onImagePaste2(imageData.base64, imageData.mediaType, filename, imageData.dimensions, imageData.path);
|
|
412719
412743
|
}
|
|
412720
412744
|
const nonImageLines = lines2.filter((line) => !isImageFilePath(line));
|
|
@@ -413319,7 +413343,7 @@ var init_TextInput = __esm(() => {
|
|
|
413319
413343
|
});
|
|
413320
413344
|
|
|
413321
413345
|
// src/utils/suggestions/directoryCompletion.ts
|
|
413322
|
-
import { basename as
|
|
413346
|
+
import { basename as basename39, dirname as dirname53, join as join112, sep as sep31 } from "path";
|
|
413323
413347
|
function parsePartialPath(partialPath, basePath) {
|
|
413324
413348
|
if (!partialPath) {
|
|
413325
413349
|
const directory2 = basePath || getCwd();
|
|
@@ -413330,7 +413354,7 @@ function parsePartialPath(partialPath, basePath) {
|
|
|
413330
413354
|
return { directory: resolved, prefix: "" };
|
|
413331
413355
|
}
|
|
413332
413356
|
const directory = dirname53(resolved);
|
|
413333
|
-
const prefix =
|
|
413357
|
+
const prefix = basename39(partialPath);
|
|
413334
413358
|
return { directory, prefix };
|
|
413335
413359
|
}
|
|
413336
413360
|
async function scanDirectory(dirPath) {
|
|
@@ -415467,8 +415491,8 @@ class FileIndex {
|
|
|
415467
415491
|
}
|
|
415468
415492
|
loadFromFileListAsync(fileList) {
|
|
415469
415493
|
let markQueryable = () => {};
|
|
415470
|
-
const queryable = new Promise((
|
|
415471
|
-
markQueryable =
|
|
415494
|
+
const queryable = new Promise((resolve45) => {
|
|
415495
|
+
markQueryable = resolve45;
|
|
415472
415496
|
});
|
|
415473
415497
|
const done = this.buildAsync(fileList, markQueryable);
|
|
415474
415498
|
return { queryable, done };
|
|
@@ -415649,7 +415673,7 @@ function isUpper(code) {
|
|
|
415649
415673
|
return code >= 65 && code <= 90;
|
|
415650
415674
|
}
|
|
415651
415675
|
function yieldToEventLoop() {
|
|
415652
|
-
return new Promise((
|
|
415676
|
+
return new Promise((resolve45) => setImmediate(resolve45));
|
|
415653
415677
|
}
|
|
415654
415678
|
function computeTopLevelEntries(paths2, limit2) {
|
|
415655
415679
|
const topLevel = new Set;
|
|
@@ -425002,7 +425026,7 @@ function extractFirstFrame(output) {
|
|
|
425002
425026
|
return output.slice(contentStart, endIndex);
|
|
425003
425027
|
}
|
|
425004
425028
|
function renderToAnsiString(node, columns) {
|
|
425005
|
-
return new Promise(async (
|
|
425029
|
+
return new Promise(async (resolve45) => {
|
|
425006
425030
|
let output = "";
|
|
425007
425031
|
const stream4 = new PassThrough3;
|
|
425008
425032
|
if (columns !== undefined) {
|
|
@@ -425018,7 +425042,7 @@ function renderToAnsiString(node, columns) {
|
|
|
425018
425042
|
patchConsole: false
|
|
425019
425043
|
});
|
|
425020
425044
|
await instance.waitUntilExit();
|
|
425021
|
-
await
|
|
425045
|
+
await resolve45(extractFirstFrame(output));
|
|
425022
425046
|
});
|
|
425023
425047
|
}
|
|
425024
425048
|
async function renderToString(node, columns) {
|
|
@@ -425614,7 +425638,7 @@ var init_useTurnDiffs = __esm(() => {
|
|
|
425614
425638
|
});
|
|
425615
425639
|
|
|
425616
425640
|
// src/components/diff/DiffDetailView.tsx
|
|
425617
|
-
import { resolve as
|
|
425641
|
+
import { resolve as resolve45 } from "path";
|
|
425618
425642
|
function DiffDetailView(t0) {
|
|
425619
425643
|
const $3 = import_compiler_runtime146.c(53);
|
|
425620
425644
|
const {
|
|
@@ -425647,7 +425671,7 @@ function DiffDetailView(t0) {
|
|
|
425647
425671
|
let content;
|
|
425648
425672
|
let t22;
|
|
425649
425673
|
if ($3[1] !== filePath) {
|
|
425650
|
-
const fullPath =
|
|
425674
|
+
const fullPath = resolve45(getCwd(), filePath);
|
|
425651
425675
|
content = readFileSafe(fullPath);
|
|
425652
425676
|
t22 = content?.split(`
|
|
425653
425677
|
`)[0] ?? null;
|
|
@@ -429591,12 +429615,12 @@ import {
|
|
|
429591
429615
|
spawn as spawn10,
|
|
429592
429616
|
spawnSync as spawnSync4
|
|
429593
429617
|
} from "child_process";
|
|
429594
|
-
import { basename as
|
|
429618
|
+
import { basename as basename40 } from "path";
|
|
429595
429619
|
function isCommandAvailable3(command3) {
|
|
429596
429620
|
return !!whichSync(command3);
|
|
429597
429621
|
}
|
|
429598
429622
|
function classifyGuiEditor(editor) {
|
|
429599
|
-
const base2 =
|
|
429623
|
+
const base2 = basename40(editor.split(" ")[0] ?? "");
|
|
429600
429624
|
return GUI_EDITORS.find((g2) => base2.includes(g2));
|
|
429601
429625
|
}
|
|
429602
429626
|
function guiGotoArgv(guiFamily, filePath, line) {
|
|
@@ -429633,7 +429657,7 @@ function openFileInExternalEditor(filePath, line) {
|
|
|
429633
429657
|
const inkInstance = instances_default.get(process.stdout);
|
|
429634
429658
|
if (!inkInstance)
|
|
429635
429659
|
return false;
|
|
429636
|
-
const useGotoLine = line && PLUS_N_EDITORS.test(
|
|
429660
|
+
const useGotoLine = line && PLUS_N_EDITORS.test(basename40(base2));
|
|
429637
429661
|
inkInstance.enterAlternateScreen();
|
|
429638
429662
|
try {
|
|
429639
429663
|
const syncOpts = { stdio: "inherit" };
|
|
@@ -436658,7 +436682,7 @@ var init_channelPermissions = __esm(() => {
|
|
|
436658
436682
|
});
|
|
436659
436683
|
|
|
436660
436684
|
// src/services/mcp/useManageMCPConnections.ts
|
|
436661
|
-
import { basename as
|
|
436685
|
+
import { basename as basename41 } from "path";
|
|
436662
436686
|
function getErrorKey(error49) {
|
|
436663
436687
|
const plugin = "plugin" in error49 ? error49.plugin : "no-plugin";
|
|
436664
436688
|
return `${error49.type}:${error49.source}:${plugin}`;
|
|
@@ -436813,8 +436837,8 @@ function useManageMCPConnections(dynamicMcpConfig, isStrictMcpConfig = false) {
|
|
|
436813
436837
|
}
|
|
436814
436838
|
const backoffMs = Math.min(INITIAL_BACKOFF_MS * Math.pow(2, attempt - 1), MAX_BACKOFF_MS);
|
|
436815
436839
|
logMCPDebug(client.name, `Scheduling reconnection attempt ${attempt + 1} in ${backoffMs}ms`);
|
|
436816
|
-
await new Promise((
|
|
436817
|
-
const timer = setTimeout(
|
|
436840
|
+
await new Promise((resolve46) => {
|
|
436841
|
+
const timer = setTimeout(resolve46, backoffMs);
|
|
436818
436842
|
reconnectTimersRef.current.set(client.name, timer);
|
|
436819
436843
|
});
|
|
436820
436844
|
}
|
|
@@ -437035,7 +437059,7 @@ function useManageMCPConnections(dynamicMcpConfig, isStrictMcpConfig = false) {
|
|
|
437035
437059
|
else if (serverConfig.scope === "claudeai")
|
|
437036
437060
|
counts.claudeai++;
|
|
437037
437061
|
if (process.env.USER_TYPE === "ant" && !isMcpServerDisabled(name) && (serverConfig.type === undefined || serverConfig.type === "stdio") && "command" in serverConfig) {
|
|
437038
|
-
stdioCommands.push(
|
|
437062
|
+
stdioCommands.push(basename41(serverConfig.command));
|
|
437039
437063
|
}
|
|
437040
437064
|
}
|
|
437041
437065
|
logEvent("tengu_mcp_servers", {
|
|
@@ -439837,7 +439861,7 @@ var init_pluginStartupCheck = __esm(() => {
|
|
|
439837
439861
|
|
|
439838
439862
|
// src/utils/plugins/parseMarketplaceInput.ts
|
|
439839
439863
|
import { homedir as homedir30 } from "os";
|
|
439840
|
-
import { resolve as
|
|
439864
|
+
import { resolve as resolve46 } from "path";
|
|
439841
439865
|
async function parseMarketplaceInput(input) {
|
|
439842
439866
|
const trimmed = input.trim();
|
|
439843
439867
|
const fs13 = getFsImplementation();
|
|
@@ -439872,7 +439896,7 @@ async function parseMarketplaceInput(input) {
|
|
|
439872
439896
|
const isWindows2 = process.platform === "win32";
|
|
439873
439897
|
const isWindowsPath = isWindows2 && (trimmed.startsWith(".\\") || trimmed.startsWith("..\\") || /^[a-zA-Z]:[/\\]/.test(trimmed));
|
|
439874
439898
|
if (trimmed.startsWith("./") || trimmed.startsWith("../") || trimmed.startsWith("/") || trimmed.startsWith("~") || isWindowsPath) {
|
|
439875
|
-
const resolvedPath =
|
|
439899
|
+
const resolvedPath = resolve46(trimmed.startsWith("~") ? trimmed.replace(/^~/, homedir30()) : trimmed);
|
|
439876
439900
|
let stats;
|
|
439877
439901
|
try {
|
|
439878
439902
|
stats = await fs13.stat(resolvedPath);
|
|
@@ -454142,10 +454166,10 @@ var require_browser2 = __commonJS((exports) => {
|
|
|
454142
454166
|
text2 = canvas;
|
|
454143
454167
|
canvas = undefined;
|
|
454144
454168
|
}
|
|
454145
|
-
return new Promise(function(
|
|
454169
|
+
return new Promise(function(resolve48, reject2) {
|
|
454146
454170
|
try {
|
|
454147
454171
|
const data = QRCode.create(text2, opts);
|
|
454148
|
-
|
|
454172
|
+
resolve48(renderFunc(data, canvas, opts));
|
|
454149
454173
|
} catch (e) {
|
|
454150
454174
|
reject2(e);
|
|
454151
454175
|
}
|
|
@@ -454201,11 +454225,11 @@ function getStringRendererFromType(type) {
|
|
|
454201
454225
|
}
|
|
454202
454226
|
function render2(renderFunc, text2, params) {
|
|
454203
454227
|
if (!params.cb) {
|
|
454204
|
-
return new Promise(function(
|
|
454228
|
+
return new Promise(function(resolve48, reject2) {
|
|
454205
454229
|
try {
|
|
454206
454230
|
const data = QRCode.create(text2, params.opts);
|
|
454207
454231
|
return renderFunc(data, params.opts, function(err2, data2) {
|
|
454208
|
-
return err2 ? reject2(err2) :
|
|
454232
|
+
return err2 ? reject2(err2) : resolve48(data2);
|
|
454209
454233
|
});
|
|
454210
454234
|
} catch (e) {
|
|
454211
454235
|
reject2(e);
|
|
@@ -456599,8 +456623,8 @@ async function fetchReferralEligibility(campaign = "claude_code_guest_pass") {
|
|
|
456599
456623
|
const url3 = `${getOauthConfig().BASE_API_URL}/api/oauth/organizations/${orgUUID}/referral/eligibility`;
|
|
456600
456624
|
let resolvePromise;
|
|
456601
456625
|
let rejectPromise;
|
|
456602
|
-
const promise3 = new Promise((
|
|
456603
|
-
resolvePromise =
|
|
456626
|
+
const promise3 = new Promise((resolve48, reject2) => {
|
|
456627
|
+
resolvePromise = resolve48;
|
|
456604
456628
|
rejectPromise = reject2;
|
|
456605
456629
|
});
|
|
456606
456630
|
fetchInProgressMap.set(orgUUID, promise3);
|
|
@@ -490448,8 +490472,8 @@ async function withStatsCacheLock(fn) {
|
|
|
490448
490472
|
await statsCacheLockPromise;
|
|
490449
490473
|
}
|
|
490450
490474
|
let releaseLock2;
|
|
490451
|
-
statsCacheLockPromise = new Promise((
|
|
490452
|
-
releaseLock2 =
|
|
490475
|
+
statsCacheLockPromise = new Promise((resolve48) => {
|
|
490476
|
+
releaseLock2 = resolve48;
|
|
490453
490477
|
});
|
|
490454
490478
|
try {
|
|
490455
490479
|
return await fn();
|
|
@@ -491203,7 +491227,7 @@ var init_screenshotClipboard = __esm(() => {
|
|
|
491203
491227
|
|
|
491204
491228
|
// src/utils/stats.ts
|
|
491205
491229
|
import { open as open16 } from "fs/promises";
|
|
491206
|
-
import { basename as
|
|
491230
|
+
import { basename as basename44, join as join138, sep as sep36 } from "path";
|
|
491207
491231
|
async function processSessionFiles(sessionFiles, options = {}) {
|
|
491208
491232
|
const { fromDate, toDate } = options;
|
|
491209
491233
|
const fs14 = getFsImplementation();
|
|
@@ -491261,7 +491285,7 @@ async function processSessionFiles(sessionFiles, options = {}) {
|
|
|
491261
491285
|
logForDebugging(`Failed to read session file ${sessionFile}: ${errorMessage(error49)}`);
|
|
491262
491286
|
continue;
|
|
491263
491287
|
}
|
|
491264
|
-
const sessionId =
|
|
491288
|
+
const sessionId = basename44(sessionFile, ".jsonl");
|
|
491265
491289
|
const messages = [];
|
|
491266
491290
|
for (const entry of entries) {
|
|
491267
491291
|
if (isTranscriptMessage(entry)) {
|
|
@@ -495609,7 +495633,7 @@ async function scanAllSessions() {
|
|
|
495609
495633
|
});
|
|
495610
495634
|
}
|
|
495611
495635
|
if (i3 % 10 === 9) {
|
|
495612
|
-
await new Promise((
|
|
495636
|
+
await new Promise((resolve48) => setImmediate(resolve48));
|
|
495613
495637
|
}
|
|
495614
495638
|
}
|
|
495615
495639
|
allSessions.sort((a2, b3) => b3.mtime - a2.mtime);
|
|
@@ -496847,7 +496871,7 @@ import {
|
|
|
496847
496871
|
unlink as unlink19,
|
|
496848
496872
|
writeFile as writeFile41
|
|
496849
496873
|
} from "fs/promises";
|
|
496850
|
-
import { basename as
|
|
496874
|
+
import { basename as basename45, dirname as dirname61, join as join140 } from "path";
|
|
496851
496875
|
function isTranscriptMessage(entry) {
|
|
496852
496876
|
return entry.type === "user" || entry.type === "assistant" || entry.type === "attachment" || entry.type === "system";
|
|
496853
496877
|
}
|
|
@@ -497061,8 +497085,8 @@ class Project {
|
|
|
497061
497085
|
decrementPendingWrites() {
|
|
497062
497086
|
this.pendingWriteCount--;
|
|
497063
497087
|
if (this.pendingWriteCount === 0) {
|
|
497064
|
-
for (const
|
|
497065
|
-
|
|
497088
|
+
for (const resolve48 of this.flushResolvers) {
|
|
497089
|
+
resolve48();
|
|
497066
497090
|
}
|
|
497067
497091
|
this.flushResolvers = [];
|
|
497068
497092
|
}
|
|
@@ -497076,13 +497100,13 @@ class Project {
|
|
|
497076
497100
|
}
|
|
497077
497101
|
}
|
|
497078
497102
|
enqueueWrite(filePath, entry) {
|
|
497079
|
-
return new Promise((
|
|
497103
|
+
return new Promise((resolve48) => {
|
|
497080
497104
|
let queue2 = this.writeQueues.get(filePath);
|
|
497081
497105
|
if (!queue2) {
|
|
497082
497106
|
queue2 = [];
|
|
497083
497107
|
this.writeQueues.set(filePath, queue2);
|
|
497084
497108
|
}
|
|
497085
|
-
queue2.push({ entry, resolve:
|
|
497109
|
+
queue2.push({ entry, resolve: resolve48 });
|
|
497086
497110
|
this.scheduleDrain();
|
|
497087
497111
|
});
|
|
497088
497112
|
}
|
|
@@ -497116,7 +497140,7 @@ class Project {
|
|
|
497116
497140
|
const batch = queue2.splice(0);
|
|
497117
497141
|
let content = "";
|
|
497118
497142
|
const resolvers3 = [];
|
|
497119
|
-
for (const { entry, resolve:
|
|
497143
|
+
for (const { entry, resolve: resolve48 } of batch) {
|
|
497120
497144
|
const line = jsonStringify(entry) + `
|
|
497121
497145
|
`;
|
|
497122
497146
|
if (content.length + line.length >= this.MAX_CHUNK_BYTES) {
|
|
@@ -497128,7 +497152,7 @@ class Project {
|
|
|
497128
497152
|
content = "";
|
|
497129
497153
|
}
|
|
497130
497154
|
content += line;
|
|
497131
|
-
resolvers3.push(
|
|
497155
|
+
resolvers3.push(resolve48);
|
|
497132
497156
|
}
|
|
497133
497157
|
if (content.length > 0) {
|
|
497134
497158
|
await this.appendToFile(filePath, content);
|
|
@@ -497251,8 +497275,8 @@ class Project {
|
|
|
497251
497275
|
if (this.pendingWriteCount === 0) {
|
|
497252
497276
|
return;
|
|
497253
497277
|
}
|
|
497254
|
-
return new Promise((
|
|
497255
|
-
this.flushResolvers.push(
|
|
497278
|
+
return new Promise((resolve48) => {
|
|
497279
|
+
this.flushResolvers.push(resolve48);
|
|
497256
497280
|
});
|
|
497257
497281
|
}
|
|
497258
497282
|
async removeMessageByUuid(targetUuid) {
|
|
@@ -497902,7 +497926,7 @@ function applySnipRemovals(messages) {
|
|
|
497902
497926
|
messages.delete(uuid5);
|
|
497903
497927
|
removedCount++;
|
|
497904
497928
|
}
|
|
497905
|
-
const
|
|
497929
|
+
const resolve48 = (start) => {
|
|
497906
497930
|
const path25 = [];
|
|
497907
497931
|
let cur = start;
|
|
497908
497932
|
while (cur && toDelete.has(cur)) {
|
|
@@ -497921,7 +497945,7 @@ function applySnipRemovals(messages) {
|
|
|
497921
497945
|
for (const [uuid5, msg] of messages) {
|
|
497922
497946
|
if (!msg.parentUuid || !toDelete.has(msg.parentUuid))
|
|
497923
497947
|
continue;
|
|
497924
|
-
messages.set(uuid5, { ...msg, parentUuid:
|
|
497948
|
+
messages.set(uuid5, { ...msg, parentUuid: resolve48(msg.parentUuid) });
|
|
497925
497949
|
relinkedCount++;
|
|
497926
497950
|
}
|
|
497927
497951
|
logEvent("tengu_snip_resume_filtered", {
|
|
@@ -499281,7 +499305,7 @@ async function getSessionFilesWithMtime(projectDir) {
|
|
|
499281
499305
|
for (const dirent of dirents) {
|
|
499282
499306
|
if (!dirent.isFile() || !dirent.name.endsWith(".jsonl"))
|
|
499283
499307
|
continue;
|
|
499284
|
-
const sessionId = validateUuid2(
|
|
499308
|
+
const sessionId = validateUuid2(basename45(dirent.name, ".jsonl"));
|
|
499285
499309
|
if (!sessionId)
|
|
499286
499310
|
continue;
|
|
499287
499311
|
candidates.push({ sessionId, filePath: join140(projectDir, dirent.name) });
|
|
@@ -500933,8 +500957,8 @@ class DiskTaskOutput {
|
|
|
500933
500957
|
this.#queue.push(content);
|
|
500934
500958
|
}
|
|
500935
500959
|
if (!this.#flushPromise) {
|
|
500936
|
-
this.#flushPromise = new Promise((
|
|
500937
|
-
this.#flushResolve =
|
|
500960
|
+
this.#flushPromise = new Promise((resolve48) => {
|
|
500961
|
+
this.#flushResolve = resolve48;
|
|
500938
500962
|
});
|
|
500939
500963
|
track(this.#drain());
|
|
500940
500964
|
}
|
|
@@ -501000,10 +501024,10 @@ class DiskTaskOutput {
|
|
|
501000
501024
|
}
|
|
501001
501025
|
}
|
|
501002
501026
|
} finally {
|
|
501003
|
-
const
|
|
501027
|
+
const resolve48 = this.#flushResolve;
|
|
501004
501028
|
this.#flushPromise = null;
|
|
501005
501029
|
this.#flushResolve = null;
|
|
501006
|
-
|
|
501030
|
+
resolve48();
|
|
501007
501031
|
}
|
|
501008
501032
|
}
|
|
501009
501033
|
}
|
|
@@ -501291,11 +501315,11 @@ class ShellCommandImpl {
|
|
|
501291
501315
|
this.#childProcess.once("exit", this.#exitHandler.bind(this));
|
|
501292
501316
|
this.#childProcess.once("error", this.#errorHandler.bind(this));
|
|
501293
501317
|
this.#timeoutId = setTimeout(ShellCommandImpl.#handleTimeout, this.#timeout, this);
|
|
501294
|
-
const exitPromise = new Promise((
|
|
501295
|
-
this.#exitCodeResolver =
|
|
501318
|
+
const exitPromise = new Promise((resolve48) => {
|
|
501319
|
+
this.#exitCodeResolver = resolve48;
|
|
501296
501320
|
});
|
|
501297
|
-
return new Promise((
|
|
501298
|
-
this.#resultResolver =
|
|
501321
|
+
return new Promise((resolve48) => {
|
|
501322
|
+
this.#resultResolver = resolve48;
|
|
501299
501323
|
exitPromise.then(this.#handleExit.bind(this));
|
|
501300
501324
|
});
|
|
501301
501325
|
}
|
|
@@ -502320,7 +502344,7 @@ __export(exports_hooks2, {
|
|
|
502320
502344
|
executeConfigChangeHooks: () => executeConfigChangeHooks,
|
|
502321
502345
|
createBaseHookInput: () => createBaseHookInput
|
|
502322
502346
|
});
|
|
502323
|
-
import { basename as
|
|
502347
|
+
import { basename as basename46 } from "path";
|
|
502324
502348
|
import { spawn as spawn11 } from "child_process";
|
|
502325
502349
|
import { randomUUID as randomUUID30 } from "crypto";
|
|
502326
502350
|
function getSessionEndHookTimeoutMs() {
|
|
@@ -502341,7 +502365,7 @@ function executeInBackground({
|
|
|
502341
502365
|
}) {
|
|
502342
502366
|
if (asyncRewake) {
|
|
502343
502367
|
shellCommand.result.then(async (result) => {
|
|
502344
|
-
await new Promise((
|
|
502368
|
+
await new Promise((resolve48) => setImmediate(resolve48));
|
|
502345
502369
|
const stdout = await shellCommand.taskOutput.getStdout();
|
|
502346
502370
|
const stderr = shellCommand.taskOutput.getStderr();
|
|
502347
502371
|
shellCommand.cleanup();
|
|
@@ -502787,8 +502811,8 @@ async function execCommandHook(hook, hookEvent, hookName, jsonInput, signal, hoo
|
|
|
502787
502811
|
child.stderr.setEncoding("utf8");
|
|
502788
502812
|
let initialResponseChecked = false;
|
|
502789
502813
|
let asyncResolve = null;
|
|
502790
|
-
const childIsAsyncPromise = new Promise((
|
|
502791
|
-
asyncResolve =
|
|
502814
|
+
const childIsAsyncPromise = new Promise((resolve48) => {
|
|
502815
|
+
asyncResolve = resolve48;
|
|
502792
502816
|
});
|
|
502793
502817
|
const processedPromptLines = new Set;
|
|
502794
502818
|
let promptChain = Promise.resolve();
|
|
@@ -502879,13 +502903,13 @@ async function execCommandHook(hook, hookEvent, hookName, jsonInput, signal, hoo
|
|
|
502879
502903
|
hookEvent,
|
|
502880
502904
|
getOutput: async () => ({ stdout, stderr, output })
|
|
502881
502905
|
});
|
|
502882
|
-
const stdoutEndPromise = new Promise((
|
|
502883
|
-
child.stdout.on("end", () =>
|
|
502906
|
+
const stdoutEndPromise = new Promise((resolve48) => {
|
|
502907
|
+
child.stdout.on("end", () => resolve48());
|
|
502884
502908
|
});
|
|
502885
|
-
const stderrEndPromise = new Promise((
|
|
502886
|
-
child.stderr.on("end", () =>
|
|
502909
|
+
const stderrEndPromise = new Promise((resolve48) => {
|
|
502910
|
+
child.stderr.on("end", () => resolve48());
|
|
502887
502911
|
});
|
|
502888
|
-
const stdinWritePromise = stdinWritten ? Promise.resolve() : new Promise((
|
|
502912
|
+
const stdinWritePromise = stdinWritten ? Promise.resolve() : new Promise((resolve48, reject2) => {
|
|
502889
502913
|
child.stdin.on("error", (err2) => {
|
|
502890
502914
|
if (!requestPrompt) {
|
|
502891
502915
|
reject2(err2);
|
|
@@ -502898,12 +502922,12 @@ async function execCommandHook(hook, hookEvent, hookName, jsonInput, signal, hoo
|
|
|
502898
502922
|
if (!requestPrompt) {
|
|
502899
502923
|
child.stdin.end();
|
|
502900
502924
|
}
|
|
502901
|
-
|
|
502925
|
+
resolve48();
|
|
502902
502926
|
});
|
|
502903
502927
|
const childErrorPromise = new Promise((_2, reject2) => {
|
|
502904
502928
|
child.on("error", reject2);
|
|
502905
502929
|
});
|
|
502906
|
-
const childClosePromise = new Promise((
|
|
502930
|
+
const childClosePromise = new Promise((resolve48) => {
|
|
502907
502931
|
let exitCode = null;
|
|
502908
502932
|
child.on("close", (code) => {
|
|
502909
502933
|
exitCode = code ?? 1;
|
|
@@ -502911,7 +502935,7 @@ async function execCommandHook(hook, hookEvent, hookName, jsonInput, signal, hoo
|
|
|
502911
502935
|
const finalStdout = processedPromptLines.size === 0 ? stdout : stdout.split(`
|
|
502912
502936
|
`).filter((line) => !processedPromptLines.has(line.trim())).join(`
|
|
502913
502937
|
`);
|
|
502914
|
-
|
|
502938
|
+
resolve48({
|
|
502915
502939
|
stdout: finalStdout,
|
|
502916
502940
|
stderr,
|
|
502917
502941
|
output,
|
|
@@ -503151,7 +503175,7 @@ async function getMatchingHooks(appState, sessionId, hookEvent, hookInput, tools
|
|
|
503151
503175
|
matchQuery = hookInput.load_reason;
|
|
503152
503176
|
break;
|
|
503153
503177
|
case "FileChanged":
|
|
503154
|
-
matchQuery =
|
|
503178
|
+
matchQuery = basename46(hookInput.file_path);
|
|
503155
503179
|
break;
|
|
503156
503180
|
default:
|
|
503157
503181
|
break;
|
|
@@ -504942,12 +504966,12 @@ async function executeFunctionHook({
|
|
|
504942
504966
|
hook
|
|
504943
504967
|
};
|
|
504944
504968
|
}
|
|
504945
|
-
const passed = await new Promise((
|
|
504969
|
+
const passed = await new Promise((resolve48, reject2) => {
|
|
504946
504970
|
const onAbort = () => reject2(new Error("Function hook cancelled"));
|
|
504947
504971
|
abortSignal.addEventListener("abort", onAbort);
|
|
504948
504972
|
Promise.resolve(hook.callback(messages, abortSignal)).then((result) => {
|
|
504949
504973
|
abortSignal.removeEventListener("abort", onAbort);
|
|
504950
|
-
|
|
504974
|
+
resolve48(result);
|
|
504951
504975
|
}).catch((error49) => {
|
|
504952
504976
|
abortSignal.removeEventListener("abort", onAbort);
|
|
504953
504977
|
reject2(error49);
|
|
@@ -505182,7 +505206,7 @@ import {
|
|
|
505182
505206
|
symlink as symlink5,
|
|
505183
505207
|
utimes as utimes2
|
|
505184
505208
|
} from "fs/promises";
|
|
505185
|
-
import { basename as
|
|
505209
|
+
import { basename as basename47, dirname as dirname62, join as join144 } from "path";
|
|
505186
505210
|
function validateWorktreeSlug(slug) {
|
|
505187
505211
|
if (slug.length > MAX_WORKTREE_SLUG_LENGTH) {
|
|
505188
505212
|
throw new Error(`Invalid worktree name: must be ${MAX_WORKTREE_SLUG_LENGTH} characters or fewer (got ${slug.length})`);
|
|
@@ -505225,7 +505249,7 @@ function restoreWorktreeSession(session2) {
|
|
|
505225
505249
|
currentWorktreeSession = session2;
|
|
505226
505250
|
}
|
|
505227
505251
|
function generateTmuxSessionName(repoPath, branch2) {
|
|
505228
|
-
const repoName =
|
|
505252
|
+
const repoName = basename47(repoPath);
|
|
505229
505253
|
const combined = `${repoName}_${branch2}`;
|
|
505230
505254
|
return combined.replace(/[/.]/g, "_");
|
|
505231
505255
|
}
|
|
@@ -505801,7 +505825,7 @@ async function execIntoTmuxWorktree(args) {
|
|
|
505801
505825
|
error: `Error: ${errorMessage(error49)}`
|
|
505802
505826
|
};
|
|
505803
505827
|
}
|
|
505804
|
-
repoName =
|
|
505828
|
+
repoName = basename47(findCanonicalGitRoot(getCwd()) ?? getCwd());
|
|
505805
505829
|
console.log(`Using worktree via hook: ${worktreeDir}`);
|
|
505806
505830
|
} else {
|
|
505807
505831
|
const repoRoot = findCanonicalGitRoot(getCwd());
|
|
@@ -505811,7 +505835,7 @@ async function execIntoTmuxWorktree(args) {
|
|
|
505811
505835
|
error: "Error: --worktree requires a git repository"
|
|
505812
505836
|
};
|
|
505813
505837
|
}
|
|
505814
|
-
repoName =
|
|
505838
|
+
repoName = basename47(repoRoot);
|
|
505815
505839
|
worktreeDir = worktreePathFor(repoRoot, worktreeName);
|
|
505816
505840
|
try {
|
|
505817
505841
|
const result = await getOrCreateWorktree(repoRoot, worktreeName, prNumber !== null ? { prNumber } : undefined);
|
|
@@ -509115,11 +509139,11 @@ class ChromeNativeHost {
|
|
|
509115
509139
|
}
|
|
509116
509140
|
log2(`Creating socket listener: ${this.socketPath}`);
|
|
509117
509141
|
this.server = createServer7((socket) => this.handleMcpClient(socket));
|
|
509118
|
-
await new Promise((
|
|
509142
|
+
await new Promise((resolve48, reject2) => {
|
|
509119
509143
|
this.server.listen(this.socketPath, () => {
|
|
509120
509144
|
log2("Socket server listening for connections");
|
|
509121
509145
|
this.running = true;
|
|
509122
|
-
|
|
509146
|
+
resolve48();
|
|
509123
509147
|
});
|
|
509124
509148
|
this.server.on("error", (err2) => {
|
|
509125
509149
|
log2("Socket server error:", err2);
|
|
@@ -509144,8 +509168,8 @@ class ChromeNativeHost {
|
|
|
509144
509168
|
}
|
|
509145
509169
|
this.mcpClients.clear();
|
|
509146
509170
|
if (this.server) {
|
|
509147
|
-
await new Promise((
|
|
509148
|
-
this.server.close(() =>
|
|
509171
|
+
await new Promise((resolve48) => {
|
|
509172
|
+
this.server.close(() => resolve48());
|
|
509149
509173
|
});
|
|
509150
509174
|
this.server = null;
|
|
509151
509175
|
}
|
|
@@ -509366,8 +509390,8 @@ class ChromeMessageReader {
|
|
|
509366
509390
|
return messageBytes.toString("utf-8");
|
|
509367
509391
|
}
|
|
509368
509392
|
}
|
|
509369
|
-
return new Promise((
|
|
509370
|
-
this.pendingResolve =
|
|
509393
|
+
return new Promise((resolve48) => {
|
|
509394
|
+
this.pendingResolve = resolve48;
|
|
509371
509395
|
this.tryProcessMessage();
|
|
509372
509396
|
});
|
|
509373
509397
|
}
|
|
@@ -511956,7 +511980,7 @@ async function startNodeRelay(wsUrl, authHeader, wsAuthHeader) {
|
|
|
511956
511980
|
cleanupConn(states.get(sock));
|
|
511957
511981
|
});
|
|
511958
511982
|
});
|
|
511959
|
-
return new Promise((
|
|
511983
|
+
return new Promise((resolve48, reject2) => {
|
|
511960
511984
|
server.once("error", reject2);
|
|
511961
511985
|
server.listen(0, "127.0.0.1", () => {
|
|
511962
511986
|
const addr = server.address();
|
|
@@ -511964,7 +511988,7 @@ async function startNodeRelay(wsUrl, authHeader, wsAuthHeader) {
|
|
|
511964
511988
|
reject2(new Error("upstreamproxy: server has no TCP address"));
|
|
511965
511989
|
return;
|
|
511966
511990
|
}
|
|
511967
|
-
|
|
511991
|
+
resolve48({
|
|
511968
511992
|
port: addr.port,
|
|
511969
511993
|
stop: () => server.close()
|
|
511970
511994
|
});
|
|
@@ -512469,7 +512493,7 @@ async function showInvalidConfigDialog({
|
|
|
512469
512493
|
...getBaseRenderOptions(false),
|
|
512470
512494
|
theme: SAFE_ERROR_THEME_NAME
|
|
512471
512495
|
};
|
|
512472
|
-
await new Promise(async (
|
|
512496
|
+
await new Promise(async (resolve48) => {
|
|
512473
512497
|
const {
|
|
512474
512498
|
unmount
|
|
512475
512499
|
} = await render(/* @__PURE__ */ jsx_dev_runtime356.jsxDEV(AppStateProvider, {
|
|
@@ -512479,7 +512503,7 @@ async function showInvalidConfigDialog({
|
|
|
512479
512503
|
errorDescription: error49.message,
|
|
512480
512504
|
onExit: () => {
|
|
512481
512505
|
unmount();
|
|
512482
|
-
|
|
512506
|
+
resolve48();
|
|
512483
512507
|
process.exit(1);
|
|
512484
512508
|
},
|
|
512485
512509
|
onReset: () => {
|
|
@@ -512488,7 +512512,7 @@ async function showInvalidConfigDialog({
|
|
|
512488
512512
|
encoding: "utf8"
|
|
512489
512513
|
});
|
|
512490
512514
|
unmount();
|
|
512491
|
-
|
|
512515
|
+
resolve48();
|
|
512492
512516
|
process.exit(0);
|
|
512493
512517
|
}
|
|
512494
512518
|
}, undefined, false, undefined, this)
|
|
@@ -519992,7 +520016,7 @@ var init_FileEditToolDiff = __esm(() => {
|
|
|
519992
520016
|
|
|
519993
520017
|
// src/hooks/useDiffInIDE.ts
|
|
519994
520018
|
import { randomUUID as randomUUID34 } from "crypto";
|
|
519995
|
-
import { basename as
|
|
520019
|
+
import { basename as basename49 } from "path";
|
|
519996
520020
|
function useDiffInIDE({
|
|
519997
520021
|
onChange,
|
|
519998
520022
|
toolUseContext,
|
|
@@ -520003,7 +520027,7 @@ function useDiffInIDE({
|
|
|
520003
520027
|
const isUnmounted = import_react211.useRef(false);
|
|
520004
520028
|
const [hasError, setHasError] = import_react211.useState(false);
|
|
520005
520029
|
const sha = import_react211.useMemo(() => randomUUID34().slice(0, 6), []);
|
|
520006
|
-
const tabName = import_react211.useMemo(() => `✻ [Claude Code] ${
|
|
520030
|
+
const tabName = import_react211.useMemo(() => `✻ [Claude Code] ${basename49(filePath)} (${sha}) ⧉`, [filePath, sha]);
|
|
520007
520031
|
const shouldShowDiffInIDE = hasAccessToIDEExtensionDiffFeature(toolUseContext.options.mcpClients) && getGlobalConfig().diffTool === "auto" && !filePath.endsWith(".ipynb");
|
|
520008
520032
|
const ideName = getConnectedIdeName(toolUseContext.options.mcpClients) ?? "IDE";
|
|
520009
520033
|
async function showDiff() {
|
|
@@ -520185,7 +520209,7 @@ var init_useDiffInIDE = __esm(() => {
|
|
|
520185
520209
|
});
|
|
520186
520210
|
|
|
520187
520211
|
// src/components/ShowInIDEPrompt.tsx
|
|
520188
|
-
import { basename as
|
|
520212
|
+
import { basename as basename50, relative as relative30 } from "path";
|
|
520189
520213
|
function ShowInIDEPrompt(t0) {
|
|
520190
520214
|
const $3 = import_compiler_runtime295.c(36);
|
|
520191
520215
|
const {
|
|
@@ -520242,7 +520266,7 @@ function ShowInIDEPrompt(t0) {
|
|
|
520242
520266
|
}
|
|
520243
520267
|
let t4;
|
|
520244
520268
|
if ($3[5] !== filePath) {
|
|
520245
|
-
t4 =
|
|
520269
|
+
t4 = basename50(filePath);
|
|
520246
520270
|
$3[5] = filePath;
|
|
520247
520271
|
$3[6] = t4;
|
|
520248
520272
|
} else {
|
|
@@ -520403,7 +520427,7 @@ var init_ShowInIDEPrompt = __esm(() => {
|
|
|
520403
520427
|
|
|
520404
520428
|
// src/components/permissions/FilePermissionDialog/permissionOptions.tsx
|
|
520405
520429
|
import { homedir as homedir36 } from "os";
|
|
520406
|
-
import { basename as
|
|
520430
|
+
import { basename as basename51, join as join147, sep as sep39 } from "path";
|
|
520407
520431
|
function isInClaudeFolder(filePath) {
|
|
520408
520432
|
const absolutePath = expandPath(filePath);
|
|
520409
520433
|
const claudeFolderPath = expandPath(`${getOriginalCwd()}/.claude`);
|
|
@@ -520485,7 +520509,7 @@ function getFilePermissionOptions({
|
|
|
520485
520509
|
}
|
|
520486
520510
|
} else {
|
|
520487
520511
|
const dirPath = getDirectoryForPath(filePath);
|
|
520488
|
-
const dirName =
|
|
520512
|
+
const dirName = basename51(dirPath) || "this directory";
|
|
520489
520513
|
if (operationType === "read") {
|
|
520490
520514
|
sessionLabel = /* @__PURE__ */ jsx_dev_runtime379.jsxDEV(ThemedText, {
|
|
520491
520515
|
children: [
|
|
@@ -520984,7 +521008,7 @@ var init_FilePermissionDialog = __esm(() => {
|
|
|
520984
521008
|
});
|
|
520985
521009
|
|
|
520986
521010
|
// src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx
|
|
520987
|
-
import { basename as
|
|
521011
|
+
import { basename as basename52, relative as relative32 } from "path";
|
|
520988
521012
|
function SedEditPermissionRequest(t0) {
|
|
520989
521013
|
const $3 = import_compiler_runtime296.c(9);
|
|
520990
521014
|
let props;
|
|
@@ -521160,7 +521184,7 @@ function SedEditPermissionRequestInner(t0) {
|
|
|
521160
521184
|
}
|
|
521161
521185
|
let t10;
|
|
521162
521186
|
if ($3[16] !== filePath) {
|
|
521163
|
-
t10 =
|
|
521187
|
+
t10 = basename52(filePath);
|
|
521164
521188
|
$3[16] = filePath;
|
|
521165
521189
|
$3[17] = t10;
|
|
521166
521190
|
} else {
|
|
@@ -521372,7 +521396,7 @@ var init_useShellPermissionFeedback = __esm(() => {
|
|
|
521372
521396
|
});
|
|
521373
521397
|
|
|
521374
521398
|
// src/components/permissions/shellPermissionHelpers.tsx
|
|
521375
|
-
import { basename as
|
|
521399
|
+
import { basename as basename53, sep as sep40 } from "path";
|
|
521376
521400
|
function commandListDisplay(commands) {
|
|
521377
521401
|
switch (commands.length) {
|
|
521378
521402
|
case 0:
|
|
@@ -521423,7 +521447,7 @@ function commandListDisplayTruncated(commands) {
|
|
|
521423
521447
|
function formatPathList(paths2) {
|
|
521424
521448
|
if (paths2.length === 0)
|
|
521425
521449
|
return "";
|
|
521426
|
-
const names = paths2.map((p) =>
|
|
521450
|
+
const names = paths2.map((p) => basename53(p) || p);
|
|
521427
521451
|
if (names.length === 1) {
|
|
521428
521452
|
return /* @__PURE__ */ jsx_dev_runtime382.jsxDEV(ThemedText, {
|
|
521429
521453
|
children: [
|
|
@@ -521489,7 +521513,7 @@ function generateShellSuggestionsLabel(suggestions, shellToolName, commandTransf
|
|
|
521489
521513
|
if (hasReadPaths && !hasDirectories && !hasCommands) {
|
|
521490
521514
|
if (readPaths.length === 1) {
|
|
521491
521515
|
const firstPath = readPaths[0];
|
|
521492
|
-
const dirName =
|
|
521516
|
+
const dirName = basename53(firstPath) || firstPath;
|
|
521493
521517
|
return /* @__PURE__ */ jsx_dev_runtime382.jsxDEV(ThemedText, {
|
|
521494
521518
|
children: [
|
|
521495
521519
|
"Yes, allow reading from ",
|
|
@@ -521513,7 +521537,7 @@ function generateShellSuggestionsLabel(suggestions, shellToolName, commandTransf
|
|
|
521513
521537
|
if (hasDirectories && !hasReadPaths && !hasCommands) {
|
|
521514
521538
|
if (directories.length === 1) {
|
|
521515
521539
|
const firstDir = directories[0];
|
|
521516
|
-
const dirName =
|
|
521540
|
+
const dirName = basename53(firstDir) || firstDir;
|
|
521517
521541
|
return /* @__PURE__ */ jsx_dev_runtime382.jsxDEV(ThemedText, {
|
|
521518
521542
|
children: [
|
|
521519
521543
|
"Yes, and always allow access to ",
|
|
@@ -523753,7 +523777,7 @@ function createSingleEditDiffConfig(filePath, oldString, newString, replaceAll)
|
|
|
523753
523777
|
}
|
|
523754
523778
|
|
|
523755
523779
|
// src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx
|
|
523756
|
-
import { basename as
|
|
523780
|
+
import { basename as basename54, relative as relative33 } from "path";
|
|
523757
523781
|
function FileEditPermissionRequest(props) {
|
|
523758
523782
|
const $3 = import_compiler_runtime301.c(51);
|
|
523759
523783
|
const parseInput = _temp178;
|
|
@@ -523796,7 +523820,7 @@ function FileEditPermissionRequest(props) {
|
|
|
523796
523820
|
t3 = " ";
|
|
523797
523821
|
T0 = ThemedText;
|
|
523798
523822
|
t0 = true;
|
|
523799
|
-
t1 =
|
|
523823
|
+
t1 = basename54(file_path);
|
|
523800
523824
|
$3[0] = props.onDone;
|
|
523801
523825
|
$3[1] = props.onReject;
|
|
523802
523826
|
$3[2] = props.toolUseConfirm;
|
|
@@ -524223,7 +524247,7 @@ var init_FileWriteToolDiff = __esm(() => {
|
|
|
524223
524247
|
});
|
|
524224
524248
|
|
|
524225
524249
|
// src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx
|
|
524226
|
-
import { basename as
|
|
524250
|
+
import { basename as basename55, relative as relative34 } from "path";
|
|
524227
524251
|
function FileWritePermissionRequest(props) {
|
|
524228
524252
|
const $3 = import_compiler_runtime304.c(30);
|
|
524229
524253
|
const parseInput = _temp181;
|
|
@@ -524290,7 +524314,7 @@ function FileWritePermissionRequest(props) {
|
|
|
524290
524314
|
}
|
|
524291
524315
|
let t9;
|
|
524292
524316
|
if ($3[7] !== file_path) {
|
|
524293
|
-
t9 =
|
|
524317
|
+
t9 = basename55(file_path);
|
|
524294
524318
|
$3[7] = file_path;
|
|
524295
524319
|
$3[8] = t9;
|
|
524296
524320
|
} else {
|
|
@@ -524695,7 +524719,7 @@ var init_NotebookEditToolDiff = __esm(() => {
|
|
|
524695
524719
|
});
|
|
524696
524720
|
|
|
524697
524721
|
// src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx
|
|
524698
|
-
import { basename as
|
|
524722
|
+
import { basename as basename56 } from "path";
|
|
524699
524723
|
function NotebookEditPermissionRequest(props) {
|
|
524700
524724
|
const $3 = import_compiler_runtime306.c(52);
|
|
524701
524725
|
const parseInput = _temp185;
|
|
@@ -524739,7 +524763,7 @@ function NotebookEditPermissionRequest(props) {
|
|
|
524739
524763
|
t4 = " ";
|
|
524740
524764
|
T0 = ThemedText;
|
|
524741
524765
|
t0 = true;
|
|
524742
|
-
t1 =
|
|
524766
|
+
t1 = basename56(notebook_path);
|
|
524743
524767
|
$3[0] = props.onDone;
|
|
524744
524768
|
$3[1] = props.onReject;
|
|
524745
524769
|
$3[2] = props.toolUseConfirm;
|
|
@@ -529217,7 +529241,7 @@ var init_AutoUpdaterWrapper = __esm(() => {
|
|
|
529217
529241
|
});
|
|
529218
529242
|
|
|
529219
529243
|
// src/components/IdeStatusIndicator.tsx
|
|
529220
|
-
import { basename as
|
|
529244
|
+
import { basename as basename57 } from "path";
|
|
529221
529245
|
function IdeStatusIndicator(t0) {
|
|
529222
529246
|
const $3 = import_compiler_runtime316.c(7);
|
|
529223
529247
|
const {
|
|
@@ -529257,7 +529281,7 @@ function IdeStatusIndicator(t0) {
|
|
|
529257
529281
|
if (ideSelection.filePath) {
|
|
529258
529282
|
let t1;
|
|
529259
529283
|
if ($3[3] !== ideSelection.filePath) {
|
|
529260
|
-
t1 =
|
|
529284
|
+
t1 = basename57(ideSelection.filePath);
|
|
529261
529285
|
$3[3] = ideSelection.filePath;
|
|
529262
529286
|
$3[4] = t1;
|
|
529263
529287
|
} else {
|
|
@@ -532387,7 +532411,7 @@ var init_slackChannelSuggestions = __esm(() => {
|
|
|
532387
532411
|
});
|
|
532388
532412
|
|
|
532389
532413
|
// src/hooks/unifiedSuggestions.ts
|
|
532390
|
-
import { basename as
|
|
532414
|
+
import { basename as basename58 } from "path";
|
|
532391
532415
|
function createSuggestionFromSource(source) {
|
|
532392
532416
|
switch (source.type) {
|
|
532393
532417
|
case "file":
|
|
@@ -532449,7 +532473,7 @@ async function generateUnifiedSuggestions(query3, mcpResources, agents2, showOnE
|
|
|
532449
532473
|
displayText: suggestion.displayText,
|
|
532450
532474
|
description: suggestion.description,
|
|
532451
532475
|
path: suggestion.displayText,
|
|
532452
|
-
filename:
|
|
532476
|
+
filename: basename58(suggestion.displayText),
|
|
532453
532477
|
score: suggestion.metadata?.score
|
|
532454
532478
|
}));
|
|
532455
532479
|
const mcpSources = Object.values(mcpResources).flat().map((resource) => ({
|
|
@@ -533672,7 +533696,7 @@ var init_AutoModeOptInDialog = __esm(() => {
|
|
|
533672
533696
|
});
|
|
533673
533697
|
|
|
533674
533698
|
// src/components/BridgeDialog.tsx
|
|
533675
|
-
import { basename as
|
|
533699
|
+
import { basename as basename59 } from "path";
|
|
533676
533700
|
function BridgeDialog(t0) {
|
|
533677
533701
|
const $3 = import_compiler_runtime321.c(87);
|
|
533678
533702
|
const {
|
|
@@ -533695,7 +533719,7 @@ function BridgeDialog(t0) {
|
|
|
533695
533719
|
const [branchName, setBranchName] = import_react243.useState("");
|
|
533696
533720
|
let t1;
|
|
533697
533721
|
if ($3[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
533698
|
-
t1 =
|
|
533722
|
+
t1 = basename59(getOriginalCwd());
|
|
533699
533723
|
$3[0] = t1;
|
|
533700
533724
|
} else {
|
|
533701
533725
|
t1 = $3[0];
|
|
@@ -544184,7 +544208,7 @@ var init_coordinatorHandler = __esm(() => {
|
|
|
544184
544208
|
});
|
|
544185
544209
|
|
|
544186
544210
|
// src/hooks/toolPermission/PermissionContext.ts
|
|
544187
|
-
function createResolveOnce(
|
|
544211
|
+
function createResolveOnce(resolve48) {
|
|
544188
544212
|
let claimed = false;
|
|
544189
544213
|
let delivered = false;
|
|
544190
544214
|
return {
|
|
@@ -544193,7 +544217,7 @@ function createResolveOnce(resolve47) {
|
|
|
544193
544217
|
return;
|
|
544194
544218
|
delivered = true;
|
|
544195
544219
|
claimed = true;
|
|
544196
|
-
|
|
544220
|
+
resolve48(value);
|
|
544197
544221
|
},
|
|
544198
544222
|
isResolved() {
|
|
544199
544223
|
return claimed;
|
|
@@ -544238,11 +544262,11 @@ function createPermissionContext(tool, input, toolUseContext, assistantMessage,
|
|
|
544238
544262
|
setToolPermissionContext(applyPermissionUpdates(appState.toolPermissionContext, updates));
|
|
544239
544263
|
return updates.some((update) => supportsPersistence(update.destination));
|
|
544240
544264
|
},
|
|
544241
|
-
resolveIfAborted(
|
|
544265
|
+
resolveIfAborted(resolve48) {
|
|
544242
544266
|
if (!toolUseContext.abortController.signal.aborted)
|
|
544243
544267
|
return false;
|
|
544244
544268
|
this.logCancelled();
|
|
544245
|
-
|
|
544269
|
+
resolve48(this.cancelAndAbort(undefined, true));
|
|
544246
544270
|
return true;
|
|
544247
544271
|
},
|
|
544248
544272
|
cancelAndAbort(feedback2, isAbort, contentBlocks) {
|
|
@@ -544358,7 +544382,7 @@ var init_PermissionContext = __esm(() => {
|
|
|
544358
544382
|
|
|
544359
544383
|
// src/hooks/toolPermission/handlers/interactiveHandler.ts
|
|
544360
544384
|
import { randomUUID as randomUUID40 } from "crypto";
|
|
544361
|
-
function handleInteractivePermission(params,
|
|
544385
|
+
function handleInteractivePermission(params, resolve48) {
|
|
544362
544386
|
const {
|
|
544363
544387
|
ctx,
|
|
544364
544388
|
description,
|
|
@@ -544367,7 +544391,7 @@ function handleInteractivePermission(params, resolve47) {
|
|
|
544367
544391
|
bridgeCallbacks,
|
|
544368
544392
|
channelCallbacks
|
|
544369
544393
|
} = params;
|
|
544370
|
-
const { resolve: resolveOnce, isResolved, claim } = createResolveOnce(
|
|
544394
|
+
const { resolve: resolveOnce, isResolved, claim } = createResolveOnce(resolve48);
|
|
544371
544395
|
let userInteracted = false;
|
|
544372
544396
|
let checkmarkTransitionTimer;
|
|
544373
544397
|
let checkmarkAbortHandler;
|
|
@@ -544554,8 +544578,8 @@ async function handleSwarmWorkerPermission(params) {
|
|
|
544554
544578
|
...prev,
|
|
544555
544579
|
pendingWorkerRequest: null
|
|
544556
544580
|
}));
|
|
544557
|
-
const decision = await new Promise((
|
|
544558
|
-
const { resolve: resolveOnce, claim } = createResolveOnce(
|
|
544581
|
+
const decision = await new Promise((resolve48) => {
|
|
544582
|
+
const { resolve: resolveOnce, claim } = createResolveOnce(resolve48);
|
|
544559
544583
|
const request = createPermissionRequest({
|
|
544560
544584
|
toolName: ctx.tool.name,
|
|
544561
544585
|
toolUseId: ctx.toolUseID,
|
|
@@ -544621,15 +544645,15 @@ function useCanUseTool(setToolUseConfirmQueue, setToolPermissionContext) {
|
|
|
544621
544645
|
const $3 = import_compiler_runtime339.c(3);
|
|
544622
544646
|
let t0;
|
|
544623
544647
|
if ($3[0] !== setToolPermissionContext || $3[1] !== setToolUseConfirmQueue) {
|
|
544624
|
-
t0 = async (tool, input, toolUseContext, assistantMessage, toolUseID, forceDecision) => new Promise((
|
|
544648
|
+
t0 = async (tool, input, toolUseContext, assistantMessage, toolUseID, forceDecision) => new Promise((resolve48) => {
|
|
544625
544649
|
const ctx = createPermissionContext(tool, input, toolUseContext, assistantMessage, toolUseID, setToolPermissionContext, createPermissionQueueOps(setToolUseConfirmQueue));
|
|
544626
|
-
if (ctx.resolveIfAborted(
|
|
544650
|
+
if (ctx.resolveIfAborted(resolve48)) {
|
|
544627
544651
|
return;
|
|
544628
544652
|
}
|
|
544629
544653
|
const decisionPromise = forceDecision !== undefined ? Promise.resolve(forceDecision) : hasPermissionsToUseTool(tool, input, toolUseContext, assistantMessage, toolUseID);
|
|
544630
544654
|
return decisionPromise.then(async (result) => {
|
|
544631
544655
|
if (result.behavior === "allow") {
|
|
544632
|
-
if (ctx.resolveIfAborted(
|
|
544656
|
+
if (ctx.resolveIfAborted(resolve48)) {
|
|
544633
544657
|
return;
|
|
544634
544658
|
}
|
|
544635
544659
|
if (false) {}
|
|
@@ -544637,7 +544661,7 @@ function useCanUseTool(setToolUseConfirmQueue, setToolPermissionContext) {
|
|
|
544637
544661
|
decision: "accept",
|
|
544638
544662
|
source: "config"
|
|
544639
544663
|
});
|
|
544640
|
-
|
|
544664
|
+
resolve48(ctx.buildAllow(result.updatedInput ?? input, {
|
|
544641
544665
|
decisionReason: result.decisionReason
|
|
544642
544666
|
}));
|
|
544643
544667
|
return;
|
|
@@ -544648,7 +544672,7 @@ function useCanUseTool(setToolUseConfirmQueue, setToolPermissionContext) {
|
|
|
544648
544672
|
toolPermissionContext: appState.toolPermissionContext,
|
|
544649
544673
|
tools: toolUseContext.options.tools
|
|
544650
544674
|
});
|
|
544651
|
-
if (ctx.resolveIfAborted(
|
|
544675
|
+
if (ctx.resolveIfAborted(resolve48)) {
|
|
544652
544676
|
return;
|
|
544653
544677
|
}
|
|
544654
544678
|
switch (result.behavior) {
|
|
@@ -544664,7 +544688,7 @@ function useCanUseTool(setToolUseConfirmQueue, setToolPermissionContext) {
|
|
|
544664
544688
|
source: "config"
|
|
544665
544689
|
});
|
|
544666
544690
|
if (false) {}
|
|
544667
|
-
|
|
544691
|
+
resolve48(result);
|
|
544668
544692
|
return;
|
|
544669
544693
|
}
|
|
544670
544694
|
case "ask": {
|
|
@@ -544677,11 +544701,11 @@ function useCanUseTool(setToolUseConfirmQueue, setToolPermissionContext) {
|
|
|
544677
544701
|
permissionMode: appState.toolPermissionContext.mode
|
|
544678
544702
|
});
|
|
544679
544703
|
if (coordinatorDecision) {
|
|
544680
|
-
|
|
544704
|
+
resolve48(coordinatorDecision);
|
|
544681
544705
|
return;
|
|
544682
544706
|
}
|
|
544683
544707
|
}
|
|
544684
|
-
if (ctx.resolveIfAborted(
|
|
544708
|
+
if (ctx.resolveIfAborted(resolve48)) {
|
|
544685
544709
|
return;
|
|
544686
544710
|
}
|
|
544687
544711
|
const swarmDecision = await handleSwarmWorkerPermission({
|
|
@@ -544692,7 +544716,7 @@ function useCanUseTool(setToolUseConfirmQueue, setToolPermissionContext) {
|
|
|
544692
544716
|
suggestions: result.suggestions
|
|
544693
544717
|
});
|
|
544694
544718
|
if (swarmDecision) {
|
|
544695
|
-
|
|
544719
|
+
resolve48(swarmDecision);
|
|
544696
544720
|
return;
|
|
544697
544721
|
}
|
|
544698
544722
|
if (false) {}
|
|
@@ -544703,7 +544727,7 @@ function useCanUseTool(setToolUseConfirmQueue, setToolPermissionContext) {
|
|
|
544703
544727
|
awaitAutomatedChecksBeforeDialog: appState.toolPermissionContext.awaitAutomatedChecksBeforeDialog,
|
|
544704
544728
|
bridgeCallbacks: undefined,
|
|
544705
544729
|
channelCallbacks: undefined
|
|
544706
|
-
},
|
|
544730
|
+
}, resolve48);
|
|
544707
544731
|
return;
|
|
544708
544732
|
}
|
|
544709
544733
|
}
|
|
@@ -544711,10 +544735,10 @@ function useCanUseTool(setToolUseConfirmQueue, setToolPermissionContext) {
|
|
|
544711
544735
|
if (error49 instanceof AbortError || error49 instanceof APIUserAbortError) {
|
|
544712
544736
|
logForDebugging(`Permission check threw ${error49.constructor.name} for tool=${tool.name}: ${error49.message}`);
|
|
544713
544737
|
ctx.logCancelled();
|
|
544714
|
-
|
|
544738
|
+
resolve48(ctx.cancelAndAbort(undefined, true));
|
|
544715
544739
|
} else {
|
|
544716
544740
|
logError2(error49);
|
|
544717
|
-
|
|
544741
|
+
resolve48(ctx.cancelAndAbort(undefined, true));
|
|
544718
544742
|
}
|
|
544719
544743
|
}).finally(() => {
|
|
544720
544744
|
clearClassifierChecking(toolUseID);
|
|
@@ -546386,7 +546410,7 @@ __export(exports_asciicast, {
|
|
|
546386
546410
|
_resetRecordingStateForTesting: () => _resetRecordingStateForTesting
|
|
546387
546411
|
});
|
|
546388
546412
|
import { appendFile as appendFile7, rename as rename12 } from "fs/promises";
|
|
546389
|
-
import { basename as
|
|
546413
|
+
import { basename as basename60, dirname as dirname63, join as join150 } from "path";
|
|
546390
546414
|
function getRecordFilePath() {
|
|
546391
546415
|
if (recordingState.filePath !== null) {
|
|
546392
546416
|
return recordingState.filePath;
|
|
@@ -546432,8 +546456,8 @@ async function renameRecordingForSession() {
|
|
|
546432
546456
|
return;
|
|
546433
546457
|
}
|
|
546434
546458
|
await recorder?.flush();
|
|
546435
|
-
const oldName =
|
|
546436
|
-
const newName =
|
|
546459
|
+
const oldName = basename60(oldPath);
|
|
546460
|
+
const newName = basename60(newPath);
|
|
546437
546461
|
try {
|
|
546438
546462
|
await rename12(oldPath, newPath);
|
|
546439
546463
|
recordingState.filePath = newPath;
|
|
@@ -551190,7 +551214,7 @@ class StructuredIO {
|
|
|
551190
551214
|
});
|
|
551191
551215
|
}
|
|
551192
551216
|
try {
|
|
551193
|
-
return await new Promise((
|
|
551217
|
+
return await new Promise((resolve49, reject2) => {
|
|
551194
551218
|
this.pendingRequests.set(requestId, {
|
|
551195
551219
|
request: {
|
|
551196
551220
|
type: "control_request",
|
|
@@ -551198,7 +551222,7 @@ class StructuredIO {
|
|
|
551198
551222
|
request
|
|
551199
551223
|
},
|
|
551200
551224
|
resolve: (result) => {
|
|
551201
|
-
|
|
551225
|
+
resolve49(result);
|
|
551202
551226
|
},
|
|
551203
551227
|
reject: reject2,
|
|
551204
551228
|
schema
|
|
@@ -552321,7 +552345,7 @@ function usePluginRecommendationBase() {
|
|
|
552321
552345
|
const isCheckingRef = React148.useRef(false);
|
|
552322
552346
|
let t0;
|
|
552323
552347
|
if ($3[0] !== recommendation) {
|
|
552324
|
-
t0 = (
|
|
552348
|
+
t0 = (resolve49) => {
|
|
552325
552349
|
if (getIsRemoteMode()) {
|
|
552326
552350
|
return;
|
|
552327
552351
|
}
|
|
@@ -552332,7 +552356,7 @@ function usePluginRecommendationBase() {
|
|
|
552332
552356
|
return;
|
|
552333
552357
|
}
|
|
552334
552358
|
isCheckingRef.current = true;
|
|
552335
|
-
|
|
552359
|
+
resolve49().then((rec) => {
|
|
552336
552360
|
if (rec) {
|
|
552337
552361
|
setRecommendation(rec);
|
|
552338
552362
|
}
|
|
@@ -553208,7 +553232,7 @@ var init_usePluginAutoupdateNotification = __esm(() => {
|
|
|
553208
553232
|
});
|
|
553209
553233
|
|
|
553210
553234
|
// src/utils/plugins/reconciler.ts
|
|
553211
|
-
import { isAbsolute as isAbsolute29, resolve as
|
|
553235
|
+
import { isAbsolute as isAbsolute29, resolve as resolve49 } from "path";
|
|
553212
553236
|
function diffMarketplaces(declared, materialized, opts) {
|
|
553213
553237
|
const missing = [];
|
|
553214
553238
|
const sourceChanged = [];
|
|
@@ -553321,7 +553345,7 @@ function normalizeSource(source, projectRoot) {
|
|
|
553321
553345
|
const canonicalRoot = findCanonicalGitRoot(base2);
|
|
553322
553346
|
return {
|
|
553323
553347
|
...source,
|
|
553324
|
-
path:
|
|
553348
|
+
path: resolve49(canonicalRoot ?? base2, source.path)
|
|
553325
553349
|
};
|
|
553326
553350
|
}
|
|
553327
553351
|
return source;
|
|
@@ -556595,12 +556619,12 @@ Error: sandbox required but unavailable: ${reason}
|
|
|
556595
556619
|
return () => unregisterLeaderSetToolPermissionContext();
|
|
556596
556620
|
}, [setToolPermissionContext]);
|
|
556597
556621
|
const canUseTool = useCanUseTool_default(setToolUseConfirmQueue, setToolPermissionContext);
|
|
556598
|
-
const requestPrompt = import_react319.useCallback((title, toolInputSummary) => (request) => new Promise((
|
|
556622
|
+
const requestPrompt = import_react319.useCallback((title, toolInputSummary) => (request) => new Promise((resolve50, reject2) => {
|
|
556599
556623
|
setPromptQueue((prev) => [...prev, {
|
|
556600
556624
|
request,
|
|
556601
556625
|
title,
|
|
556602
556626
|
toolInputSummary,
|
|
556603
|
-
resolve:
|
|
556627
|
+
resolve: resolve50,
|
|
556604
556628
|
reject: reject2
|
|
556605
556629
|
}]);
|
|
556606
556630
|
}), []);
|
|
@@ -559477,8 +559501,8 @@ async function handleMcpjsonServerApprovals(root2) {
|
|
|
559477
559501
|
if (pendingServers.length === 0) {
|
|
559478
559502
|
return;
|
|
559479
559503
|
}
|
|
559480
|
-
await new Promise((
|
|
559481
|
-
const done = () => void
|
|
559504
|
+
await new Promise((resolve50) => {
|
|
559505
|
+
const done = () => void resolve50();
|
|
559482
559506
|
if (pendingServers.length === 1 && pendingServers[0] !== undefined) {
|
|
559483
559507
|
const serverName = pendingServers[0];
|
|
559484
559508
|
root2.render(/* @__PURE__ */ jsx_dev_runtime470.jsxDEV(AppStateProvider, {
|
|
@@ -562257,8 +562281,8 @@ function completeOnboarding() {
|
|
|
562257
562281
|
}));
|
|
562258
562282
|
}
|
|
562259
562283
|
function showDialog(root2, renderer) {
|
|
562260
|
-
return new Promise((
|
|
562261
|
-
const done = (result) => void
|
|
562284
|
+
return new Promise((resolve50) => {
|
|
562285
|
+
const done = (result) => void resolve50(result);
|
|
562262
562286
|
root2.render(renderer(done));
|
|
562263
562287
|
});
|
|
562264
562288
|
}
|
|
@@ -563885,11 +563909,11 @@ async function isCodeGraphInstalled() {
|
|
|
563885
563909
|
if (cachedResult !== null)
|
|
563886
563910
|
return cachedResult;
|
|
563887
563911
|
if (checkStarted) {
|
|
563888
|
-
await new Promise((
|
|
563912
|
+
await new Promise((resolve50) => {
|
|
563889
563913
|
const check3 = setInterval(() => {
|
|
563890
563914
|
if (cachedResult !== null) {
|
|
563891
563915
|
clearInterval(check3);
|
|
563892
|
-
|
|
563916
|
+
resolve50();
|
|
563893
563917
|
}
|
|
563894
563918
|
}, 50);
|
|
563895
563919
|
});
|
|
@@ -563915,7 +563939,7 @@ var init_codegraphCheck = __esm(() => {
|
|
|
563915
563939
|
|
|
563916
563940
|
// src/plugins/bundled/eccBuiltin.ts
|
|
563917
563941
|
import { readdirSync as readdirSync6, readFileSync as readFileSync18, existsSync as existsSync11 } from "fs";
|
|
563918
|
-
import { join as join154, dirname as dirname67, basename as
|
|
563942
|
+
import { join as join154, dirname as dirname67, basename as basename61, extname as extname17 } from "path";
|
|
563919
563943
|
import { fileURLToPath as fileURLToPath9 } from "url";
|
|
563920
563944
|
function resolveSeedDir() {
|
|
563921
563945
|
if (process.env.CLAUDE_CODE_PLUGIN_SEED_DIR) {
|
|
@@ -563973,7 +563997,7 @@ var init_eccBuiltin = __esm(() => {
|
|
|
563973
563997
|
for (const file2 of files3) {
|
|
563974
563998
|
if (extname17(file2) !== ".md")
|
|
563975
563999
|
continue;
|
|
563976
|
-
const name =
|
|
564000
|
+
const name = basename61(file2, ".md");
|
|
563977
564001
|
const content = readFileSync18(join154(ECC_COMMANDS_DIR, file2), "utf-8");
|
|
563978
564002
|
registerMarkdownSkill(name, join154(ECC_COMMANDS_DIR, file2), content, "Custom command");
|
|
563979
564003
|
count4++;
|
|
@@ -567701,8 +567725,8 @@ class SerialBatchEventUploader {
|
|
|
567701
567725
|
if (items.length === 0)
|
|
567702
567726
|
return;
|
|
567703
567727
|
while (this.pending.length + items.length > this.config.maxQueueSize && !this.closed) {
|
|
567704
|
-
await new Promise((
|
|
567705
|
-
this.backpressureResolvers.push(
|
|
567728
|
+
await new Promise((resolve50) => {
|
|
567729
|
+
this.backpressureResolvers.push(resolve50);
|
|
567706
567730
|
});
|
|
567707
567731
|
}
|
|
567708
567732
|
if (this.closed)
|
|
@@ -567715,8 +567739,8 @@ class SerialBatchEventUploader {
|
|
|
567715
567739
|
return Promise.resolve();
|
|
567716
567740
|
}
|
|
567717
567741
|
this.drain();
|
|
567718
|
-
return new Promise((
|
|
567719
|
-
this.flushResolvers.push(
|
|
567742
|
+
return new Promise((resolve50) => {
|
|
567743
|
+
this.flushResolvers.push(resolve50);
|
|
567720
567744
|
});
|
|
567721
567745
|
}
|
|
567722
567746
|
close() {
|
|
@@ -567727,11 +567751,11 @@ class SerialBatchEventUploader {
|
|
|
567727
567751
|
this.pending = [];
|
|
567728
567752
|
this.sleepResolve?.();
|
|
567729
567753
|
this.sleepResolve = null;
|
|
567730
|
-
for (const
|
|
567731
|
-
|
|
567754
|
+
for (const resolve50 of this.backpressureResolvers)
|
|
567755
|
+
resolve50();
|
|
567732
567756
|
this.backpressureResolvers = [];
|
|
567733
|
-
for (const
|
|
567734
|
-
|
|
567757
|
+
for (const resolve50 of this.flushResolvers)
|
|
567758
|
+
resolve50();
|
|
567735
567759
|
this.flushResolvers = [];
|
|
567736
567760
|
}
|
|
567737
567761
|
async drain() {
|
|
@@ -567766,8 +567790,8 @@ class SerialBatchEventUploader {
|
|
|
567766
567790
|
} finally {
|
|
567767
567791
|
this.draining = false;
|
|
567768
567792
|
if (this.pending.length === 0) {
|
|
567769
|
-
for (const
|
|
567770
|
-
|
|
567793
|
+
for (const resolve50 of this.flushResolvers)
|
|
567794
|
+
resolve50();
|
|
567771
567795
|
this.flushResolvers = [];
|
|
567772
567796
|
}
|
|
567773
567797
|
}
|
|
@@ -567806,16 +567830,16 @@ class SerialBatchEventUploader {
|
|
|
567806
567830
|
releaseBackpressure() {
|
|
567807
567831
|
const resolvers3 = this.backpressureResolvers;
|
|
567808
567832
|
this.backpressureResolvers = [];
|
|
567809
|
-
for (const
|
|
567810
|
-
|
|
567833
|
+
for (const resolve50 of resolvers3)
|
|
567834
|
+
resolve50();
|
|
567811
567835
|
}
|
|
567812
567836
|
sleep(ms) {
|
|
567813
|
-
return new Promise((
|
|
567814
|
-
this.sleepResolve =
|
|
567815
|
-
setTimeout((self2,
|
|
567837
|
+
return new Promise((resolve50) => {
|
|
567838
|
+
this.sleepResolve = resolve50;
|
|
567839
|
+
setTimeout((self2, resolve51) => {
|
|
567816
567840
|
self2.sleepResolve = null;
|
|
567817
|
-
|
|
567818
|
-
}, ms, this,
|
|
567841
|
+
resolve51();
|
|
567842
|
+
}, ms, this, resolve50);
|
|
567819
567843
|
});
|
|
567820
567844
|
}
|
|
567821
567845
|
}
|
|
@@ -570607,7 +570631,7 @@ var init_idleTimeout = __esm(() => {
|
|
|
570607
570631
|
// src/bridge/inboundAttachments.ts
|
|
570608
570632
|
import { randomUUID as randomUUID50 } from "crypto";
|
|
570609
570633
|
import { mkdir as mkdir45, writeFile as writeFile46 } from "fs/promises";
|
|
570610
|
-
import { basename as
|
|
570634
|
+
import { basename as basename62, join as join157 } from "path";
|
|
570611
570635
|
function debug3(msg) {
|
|
570612
570636
|
logForDebugging(`[bridge:inbound-attach] ${msg}`);
|
|
570613
570637
|
}
|
|
@@ -570619,7 +570643,7 @@ function extractInboundAttachments(msg) {
|
|
|
570619
570643
|
return parsed.success ? parsed.data : [];
|
|
570620
570644
|
}
|
|
570621
570645
|
function sanitizeFileName(name) {
|
|
570622
|
-
const base2 =
|
|
570646
|
+
const base2 = basename62(name).replace(/[^a-zA-Z0-9._-]/g, "_");
|
|
570623
570647
|
return base2 || "attachment";
|
|
570624
570648
|
}
|
|
570625
570649
|
function uploadsDir() {
|
|
@@ -574794,8 +574818,8 @@ ${m2.text}
|
|
|
574794
574818
|
const controller = new AbortController;
|
|
574795
574819
|
activeOAuthFlows.set(serverName, controller);
|
|
574796
574820
|
let resolveAuthUrl;
|
|
574797
|
-
const authUrlPromise = new Promise((
|
|
574798
|
-
resolveAuthUrl =
|
|
574821
|
+
const authUrlPromise = new Promise((resolve50) => {
|
|
574822
|
+
resolveAuthUrl = resolve50;
|
|
574799
574823
|
});
|
|
574800
574824
|
const oauthPromise = performMCPOAuthFlow(serverName, config5, (url3) => resolveAuthUrl(url3), controller.signal, {
|
|
574801
574825
|
skipBrowserOpen: true,
|
|
@@ -574908,8 +574932,8 @@ ${m2.text}
|
|
|
574908
574932
|
});
|
|
574909
574933
|
const service = new OAuthService;
|
|
574910
574934
|
let urlResolver;
|
|
574911
|
-
const urlPromise = new Promise((
|
|
574912
|
-
urlResolver =
|
|
574935
|
+
const urlPromise = new Promise((resolve50) => {
|
|
574936
|
+
urlResolver = resolve50;
|
|
574913
574937
|
});
|
|
574914
574938
|
const flow = service.startOAuthFlow(async (manualUrl, automaticUrl) => {
|
|
574915
574939
|
urlResolver({ manualUrl, automaticUrl });
|
|
@@ -575297,8 +575321,8 @@ function createCanUseToolWithPermissionPrompt(permissionPromptTool) {
|
|
|
575297
575321
|
}
|
|
575298
575322
|
};
|
|
575299
575323
|
}
|
|
575300
|
-
const abortPromise = new Promise((
|
|
575301
|
-
combinedSignal.addEventListener("abort", () =>
|
|
575324
|
+
const abortPromise = new Promise((resolve50) => {
|
|
575325
|
+
combinedSignal.addEventListener("abort", () => resolve50("aborted"), {
|
|
575302
575326
|
once: true
|
|
575303
575327
|
});
|
|
575304
575328
|
});
|
|
@@ -577605,7 +577629,7 @@ __export(exports_plugins, {
|
|
|
577605
577629
|
VALID_UPDATE_SCOPES: () => VALID_UPDATE_SCOPES,
|
|
577606
577630
|
VALID_INSTALLABLE_SCOPES: () => VALID_INSTALLABLE_SCOPES
|
|
577607
577631
|
});
|
|
577608
|
-
import { basename as
|
|
577632
|
+
import { basename as basename63, dirname as dirname71 } from "path";
|
|
577609
577633
|
function handleMarketplaceError(error49, action2) {
|
|
577610
577634
|
logError2(error49);
|
|
577611
577635
|
cliError(`${figures_default.cross} Failed to ${action2}: ${errorMessage(error49)}`);
|
|
@@ -577639,7 +577663,7 @@ async function pluginValidateHandler(manifestPath, options) {
|
|
|
577639
577663
|
let contentResults = [];
|
|
577640
577664
|
if (result.fileType === "plugin") {
|
|
577641
577665
|
const manifestDir = dirname71(result.filePath);
|
|
577642
|
-
if (
|
|
577666
|
+
if (basename63(manifestDir) === ".claude-plugin") {
|
|
577643
577667
|
contentResults = await validatePluginContents(dirname71(manifestDir));
|
|
577644
577668
|
for (const r of contentResults) {
|
|
577645
577669
|
console.log(`Validating ${r.fileType}: ${r.filePath}
|
|
@@ -578484,7 +578508,7 @@ async function setupTokenHandler(root2) {
|
|
|
578484
578508
|
const {
|
|
578485
578509
|
ConsoleOAuthFlow: ConsoleOAuthFlow2
|
|
578486
578510
|
} = await Promise.resolve().then(() => (init_ConsoleOAuthFlow(), exports_ConsoleOAuthFlow));
|
|
578487
|
-
await new Promise((
|
|
578511
|
+
await new Promise((resolve50) => {
|
|
578488
578512
|
root2.render(/* @__PURE__ */ jsx_dev_runtime491.jsxDEV(AppStateProvider, {
|
|
578489
578513
|
onChangeAppState,
|
|
578490
578514
|
children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(KeybindingSetup, {
|
|
@@ -578508,7 +578532,7 @@ async function setupTokenHandler(root2) {
|
|
|
578508
578532
|
}, undefined, true, undefined, this),
|
|
578509
578533
|
/* @__PURE__ */ jsx_dev_runtime491.jsxDEV(ConsoleOAuthFlow2, {
|
|
578510
578534
|
onDone: () => {
|
|
578511
|
-
|
|
578535
|
+
resolve50();
|
|
578512
578536
|
},
|
|
578513
578537
|
mode: "setup-token",
|
|
578514
578538
|
startingMessage: "This will guide you through long-lived (1-year) auth token setup for your Claude account. Claude subscription required."
|
|
@@ -578544,7 +578568,7 @@ function DoctorWithPlugins(t0) {
|
|
|
578544
578568
|
}
|
|
578545
578569
|
async function doctorHandler(root2) {
|
|
578546
578570
|
logEvent("tengu_doctor_command", {});
|
|
578547
|
-
await new Promise((
|
|
578571
|
+
await new Promise((resolve50) => {
|
|
578548
578572
|
root2.render(/* @__PURE__ */ jsx_dev_runtime491.jsxDEV(AppStateProvider, {
|
|
578549
578573
|
children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(KeybindingSetup, {
|
|
578550
578574
|
children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(MCPConnectionManager, {
|
|
@@ -578552,7 +578576,7 @@ async function doctorHandler(root2) {
|
|
|
578552
578576
|
isStrictMcpConfig: false,
|
|
578553
578577
|
children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(DoctorWithPlugins, {
|
|
578554
578578
|
onDone: () => {
|
|
578555
|
-
|
|
578579
|
+
resolve50();
|
|
578556
578580
|
}
|
|
578557
578581
|
}, undefined, false, undefined, this)
|
|
578558
578582
|
}, undefined, false, undefined, this)
|
|
@@ -578570,14 +578594,14 @@ async function installHandler(target, options) {
|
|
|
578570
578594
|
const {
|
|
578571
578595
|
install: install2
|
|
578572
578596
|
} = await Promise.resolve().then(() => (init_install(), exports_install));
|
|
578573
|
-
await new Promise((
|
|
578597
|
+
await new Promise((resolve50) => {
|
|
578574
578598
|
const args = [];
|
|
578575
578599
|
if (target)
|
|
578576
578600
|
args.push(target);
|
|
578577
578601
|
if (options.force)
|
|
578578
578602
|
args.push("--force");
|
|
578579
578603
|
install2.call((result) => {
|
|
578580
|
-
|
|
578604
|
+
resolve50();
|
|
578581
578605
|
process.exit(result.includes("failed") ? 1 : 0);
|
|
578582
578606
|
}, {}, args);
|
|
578583
578607
|
});
|
|
@@ -579017,7 +579041,7 @@ __export(exports_main, {
|
|
|
579017
579041
|
main: () => main
|
|
579018
579042
|
});
|
|
579019
579043
|
import { readFileSync as readFileSync19 } from "fs";
|
|
579020
|
-
import { resolve as
|
|
579044
|
+
import { resolve as resolve50, join as join162, dirname as dirname72 } from "path";
|
|
579021
579045
|
import { fileURLToPath as fileURLToPath10 } from "url";
|
|
579022
579046
|
import { existsSync as existsSync12 } from "fs";
|
|
579023
579047
|
function logManagedSettings() {
|
|
@@ -579581,12 +579605,12 @@ ${getTmuxInstallInstructions2()}
|
|
|
579581
579605
|
process.exit(1);
|
|
579582
579606
|
}
|
|
579583
579607
|
try {
|
|
579584
|
-
const filePath =
|
|
579608
|
+
const filePath = resolve50(options.systemPromptFile);
|
|
579585
579609
|
systemPrompt = readFileSync19(filePath, "utf8");
|
|
579586
579610
|
} catch (error49) {
|
|
579587
579611
|
const code = getErrnoCode(error49);
|
|
579588
579612
|
if (code === "ENOENT") {
|
|
579589
|
-
process.stderr.write(source_default.red(`Error: System prompt file not found: ${
|
|
579613
|
+
process.stderr.write(source_default.red(`Error: System prompt file not found: ${resolve50(options.systemPromptFile)}
|
|
579590
579614
|
`));
|
|
579591
579615
|
process.exit(1);
|
|
579592
579616
|
}
|
|
@@ -579603,12 +579627,12 @@ ${getTmuxInstallInstructions2()}
|
|
|
579603
579627
|
process.exit(1);
|
|
579604
579628
|
}
|
|
579605
579629
|
try {
|
|
579606
|
-
const filePath =
|
|
579630
|
+
const filePath = resolve50(options.appendSystemPromptFile);
|
|
579607
579631
|
appendSystemPrompt = readFileSync19(filePath, "utf8");
|
|
579608
579632
|
} catch (error49) {
|
|
579609
579633
|
const code = getErrnoCode(error49);
|
|
579610
579634
|
if (code === "ENOENT") {
|
|
579611
|
-
process.stderr.write(source_default.red(`Error: Append system prompt file not found: ${
|
|
579635
|
+
process.stderr.write(source_default.red(`Error: Append system prompt file not found: ${resolve50(options.appendSystemPromptFile)}
|
|
579612
579636
|
`));
|
|
579613
579637
|
process.exit(1);
|
|
579614
579638
|
}
|
|
@@ -579654,7 +579678,7 @@ ${addendum}` : addendum;
|
|
|
579654
579678
|
errors6 = result.errors;
|
|
579655
579679
|
}
|
|
579656
579680
|
} else {
|
|
579657
|
-
const configPath =
|
|
579681
|
+
const configPath = resolve50(configItem);
|
|
579658
579682
|
const result = parseMcpConfigFromFilePath({
|
|
579659
579683
|
filePath: configPath,
|
|
579660
579684
|
expandVars: true,
|
|
@@ -580408,8 +580432,8 @@ ${customInstructions}` : customInstructions;
|
|
|
580408
580432
|
return connectMcpBatch(dedupedClaudeAi, "claudeai");
|
|
580409
580433
|
});
|
|
580410
580434
|
let claudeaiTimer;
|
|
580411
|
-
const claudeaiTimedOut = await Promise.race([claudeaiConnect.then(() => false), new Promise((
|
|
580412
|
-
claudeaiTimer = setTimeout((r) => r(true), CLAUDE_AI_MCP_TIMEOUT_MS,
|
|
580435
|
+
const claudeaiTimedOut = await Promise.race([claudeaiConnect.then(() => false), new Promise((resolve51) => {
|
|
580436
|
+
claudeaiTimer = setTimeout((r) => r(true), CLAUDE_AI_MCP_TIMEOUT_MS, resolve51);
|
|
580413
580437
|
})]);
|
|
580414
580438
|
if (claudeaiTimer)
|
|
580415
580439
|
clearTimeout(claudeaiTimer);
|