@funnycode/myclaude 0.1.28 → 0.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -4
- package/README.zh-CN.md +0 -4
- package/dist/myclaude.js +130 -51
- package/dist/myclaude.mjs +130 -51
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -134,13 +134,9 @@ npx @funnycode/myclaude --help # Show help
|
|
|
134
134
|
| `/terminal-setup` | Terminal setup |
|
|
135
135
|
| `/memory` | Manage AI memory |
|
|
136
136
|
| `/skills` | Manage skills |
|
|
137
|
-
| `/sandbox` | Toggle sandbox mode |
|
|
138
|
-
| `/session` | Session management |
|
|
139
137
|
| `/tag` | Tag current session |
|
|
140
138
|
| `/export` | Export session |
|
|
141
|
-
| `/upgrade` | Check for updates |
|
|
142
139
|
| `/feedback` | Submit feedback (opens GitHub Issues) |
|
|
143
|
-
| `/thinkback` | Think-back review |
|
|
144
140
|
|
|
145
141
|
---
|
|
146
142
|
|
package/README.zh-CN.md
CHANGED
|
@@ -134,13 +134,9 @@ npx @funnycode/myclaude --help # 查看帮助
|
|
|
134
134
|
| `/terminal-setup` | 终端设置 |
|
|
135
135
|
| `/memory` | 管理 AI 记忆 |
|
|
136
136
|
| `/skills` | 管理技能 |
|
|
137
|
-
| `/sandbox` | 切换沙盒模式 |
|
|
138
|
-
| `/session` | 会话管理 |
|
|
139
137
|
| `/tag` | 标记当前会话 |
|
|
140
138
|
| `/export` | 导出会话 |
|
|
141
|
-
| `/upgrade` | 检查更新 |
|
|
142
139
|
| `/feedback` | 提交反馈(跳转 GitHub Issues) |
|
|
143
|
-
| `/thinkback` | 回溯思考过程 |
|
|
144
140
|
|
|
145
141
|
---
|
|
146
142
|
|
package/dist/myclaude.js
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-06-
|
|
7
|
+
VERSION: "0.1.30",
|
|
8
|
+
BUILD_TIME: "2026-06-23T12:43:05.483Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
@@ -153664,6 +153664,9 @@ function getPluginErrorMessage(error49) {
|
|
|
153664
153664
|
}
|
|
153665
153665
|
|
|
153666
153666
|
// src/plugins/builtinPlugins.ts
|
|
153667
|
+
function registerBuiltinPlugin(definition) {
|
|
153668
|
+
BUILTIN_PLUGINS.set(definition.name, definition);
|
|
153669
|
+
}
|
|
153667
153670
|
function isBuiltinPluginId(pluginId) {
|
|
153668
153671
|
return pluginId.endsWith(`@${BUILTIN_MARKETPLACE_NAME}`);
|
|
153669
153672
|
}
|
|
@@ -279974,7 +279977,7 @@ function parseMcpConfig(params) {
|
|
|
279974
279977
|
...filePath && { file: filePath },
|
|
279975
279978
|
path: `mcpServers.${name}`,
|
|
279976
279979
|
message: `Windows requires 'cmd /c' wrapper to execute npx`,
|
|
279977
|
-
suggestion: `Change command to "cmd" with args ["/c", "npx", ...]. See: https://
|
|
279980
|
+
suggestion: `Change command to "cmd" with args ["/c", "npx", ...]. See: https://github.com/thomaslwq/myclaude`,
|
|
279978
279981
|
mcpErrorMetadata: {
|
|
279979
279982
|
scope,
|
|
279980
279983
|
serverName: name,
|
|
@@ -417711,8 +417714,8 @@ function McpParsingWarnings() {
|
|
|
417711
417714
|
"For help configuring MCP servers, see:",
|
|
417712
417715
|
" ",
|
|
417713
417716
|
/* @__PURE__ */ jsx_dev_runtime189.jsxDEV(Link, {
|
|
417714
|
-
url: "https://
|
|
417715
|
-
children: "https://
|
|
417717
|
+
url: "https://github.com/thomaslwq/myclaude",
|
|
417718
|
+
children: "https://github.com/thomaslwq/myclaude"
|
|
417716
417719
|
}, undefined, false, undefined, this)
|
|
417717
417720
|
]
|
|
417718
417721
|
}, undefined, true, undefined, this)
|
|
@@ -422536,12 +422539,6 @@ __export(exports_keybindings, {
|
|
|
422536
422539
|
import { mkdir as mkdir29, writeFile as writeFile32 } from "fs/promises";
|
|
422537
422540
|
import { dirname as dirname52 } from "path";
|
|
422538
422541
|
async function call23() {
|
|
422539
|
-
if (!isKeybindingCustomizationEnabled()) {
|
|
422540
|
-
return {
|
|
422541
|
-
type: "text",
|
|
422542
|
-
value: "Keybinding customization is not enabled. This feature is currently in preview."
|
|
422543
|
-
};
|
|
422544
|
-
}
|
|
422545
422542
|
const keybindingsPath = getKeybindingsPath();
|
|
422546
422543
|
let fileExists = false;
|
|
422547
422544
|
await mkdir29(dirname52(keybindingsPath), { recursive: true });
|
|
@@ -422550,23 +422547,17 @@ async function call23() {
|
|
|
422550
422547
|
encoding: "utf-8",
|
|
422551
422548
|
flag: "wx"
|
|
422552
422549
|
});
|
|
422553
|
-
} catch (
|
|
422554
|
-
if (getErrnoCode(
|
|
422550
|
+
} catch (err2) {
|
|
422551
|
+
if (getErrnoCode(err2) === "EEXIST") {
|
|
422555
422552
|
fileExists = true;
|
|
422556
422553
|
} else {
|
|
422557
|
-
throw
|
|
422554
|
+
throw err2;
|
|
422558
422555
|
}
|
|
422559
422556
|
}
|
|
422560
|
-
const
|
|
422561
|
-
if (result.error) {
|
|
422562
|
-
return {
|
|
422563
|
-
type: "text",
|
|
422564
|
-
value: `${fileExists ? "Opened" : "Created"} ${keybindingsPath}. Could not open in editor: ${result.error}`
|
|
422565
|
-
};
|
|
422566
|
-
}
|
|
422557
|
+
const editAccepted = await editFileInEditor(keybindingsPath);
|
|
422567
422558
|
return {
|
|
422568
422559
|
type: "text",
|
|
422569
|
-
value:
|
|
422560
|
+
value: editAccepted ? `Keybindings file saved to ${keybindingsPath}` : `No changes made. Your keybindings file is at ${keybindingsPath}`
|
|
422570
422561
|
};
|
|
422571
422562
|
}
|
|
422572
422563
|
var init_keybindings = __esm(() => {
|
|
@@ -422579,11 +422570,9 @@ var init_keybindings = __esm(() => {
|
|
|
422579
422570
|
// src/commands/keybindings/index.ts
|
|
422580
422571
|
var keybindings, keybindings_default;
|
|
422581
422572
|
var init_keybindings2 = __esm(() => {
|
|
422582
|
-
init_loadUserBindings();
|
|
422583
422573
|
keybindings = {
|
|
422584
422574
|
name: "keybindings",
|
|
422585
422575
|
description: "Open or create your keybindings configuration file",
|
|
422586
|
-
isEnabled: () => isKeybindingCustomizationEnabled(),
|
|
422587
422576
|
supportsNonInteractive: false,
|
|
422588
422577
|
type: "local",
|
|
422589
422578
|
load: () => Promise.resolve().then(() => (init_keybindings(), exports_keybindings))
|
|
@@ -426780,8 +426769,8 @@ function MCPListPanel(t0) {
|
|
|
426780
426769
|
dimColor: true,
|
|
426781
426770
|
children: [
|
|
426782
426771
|
/* @__PURE__ */ jsx_dev_runtime219.jsxDEV(Link, {
|
|
426783
|
-
url: "https://
|
|
426784
|
-
children: "https://
|
|
426772
|
+
url: "https://github.com/thomaslwq/myclaude",
|
|
426773
|
+
children: "https://github.com/thomaslwq/myclaude"
|
|
426785
426774
|
}, undefined, false, undefined, this),
|
|
426786
426775
|
" ",
|
|
426787
426776
|
"for help"
|
|
@@ -429919,7 +429908,7 @@ function MCPSettings(t0) {
|
|
|
429919
429908
|
return;
|
|
429920
429909
|
}
|
|
429921
429910
|
if (servers.length === 0 && agentMcpServers.length === 0) {
|
|
429922
|
-
onComplete("No MCP servers configured. Please run /doctor if this is unexpected. Otherwise, run `myclaude mcp --help` or visit https://
|
|
429911
|
+
onComplete("No MCP servers configured. Please run /doctor if this is unexpected. Otherwise, run `myclaude mcp --help` or visit https://github.com/thomaslwq/myclaude to learn more.");
|
|
429923
429912
|
}
|
|
429924
429913
|
};
|
|
429925
429914
|
t8 = [servers.length, filteredClients.length, agentMcpServers.length, onComplete];
|
|
@@ -479865,7 +479854,6 @@ var init_tag2 = __esm(() => {
|
|
|
479865
479854
|
type: "local-jsx",
|
|
479866
479855
|
name: "tag",
|
|
479867
479856
|
description: "Toggle a searchable tag on the current session",
|
|
479868
|
-
isEnabled: () => process.env.USER_TYPE === "ant",
|
|
479869
479857
|
argumentHint: "<tag-name>",
|
|
479870
479858
|
load: () => Promise.resolve().then(() => (init_tag(), exports_tag))
|
|
479871
479859
|
};
|
|
@@ -549795,7 +549783,7 @@ function MCPServerDialogCopy() {
|
|
|
549795
549783
|
"MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the",
|
|
549796
549784
|
" ",
|
|
549797
549785
|
/* @__PURE__ */ jsx_dev_runtime467.jsxDEV(Link, {
|
|
549798
|
-
url: "https://
|
|
549786
|
+
url: "https://github.com/thomaslwq/myclaude",
|
|
549799
549787
|
children: "MCP documentation"
|
|
549800
549788
|
}, undefined, false, undefined, this),
|
|
549801
549789
|
"."
|
|
@@ -554530,8 +554518,97 @@ var init_dialogLaunchers = __esm(() => {
|
|
|
554530
554518
|
jsx_dev_runtime486 = __toESM(require_jsx_dev_runtime(), 1);
|
|
554531
554519
|
});
|
|
554532
554520
|
|
|
554521
|
+
// src/plugins/bundled/codegraphCheck.ts
|
|
554522
|
+
async function isCodeGraphInstalled() {
|
|
554523
|
+
if (cachedResult !== null)
|
|
554524
|
+
return cachedResult;
|
|
554525
|
+
try {
|
|
554526
|
+
const result = await execFileNoThrow("codegraph", ["--version"], {
|
|
554527
|
+
timeout: 3000,
|
|
554528
|
+
stdin: "ignore"
|
|
554529
|
+
});
|
|
554530
|
+
cachedResult = result.code === 0;
|
|
554531
|
+
} catch {
|
|
554532
|
+
cachedResult = false;
|
|
554533
|
+
}
|
|
554534
|
+
return cachedResult;
|
|
554535
|
+
}
|
|
554536
|
+
var cachedResult = null;
|
|
554537
|
+
var init_codegraphCheck = __esm(() => {
|
|
554538
|
+
init_execFileNoThrow();
|
|
554539
|
+
});
|
|
554540
|
+
|
|
554541
|
+
// src/plugins/bundled/eccMarketplace.ts
|
|
554542
|
+
import { join as join150 } from "path";
|
|
554543
|
+
function getKnownMarketplacesFile2() {
|
|
554544
|
+
const homeDir = process.env.CLAUDE_CODE_PLUGIN_CACHE_DIR || join150(process.env.HOME || process.env.USERPROFILE || "~", ".claude", "plugins");
|
|
554545
|
+
return join150(homeDir, "known_marketplaces.json");
|
|
554546
|
+
}
|
|
554547
|
+
async function ensureEccMarketplaceRegistered() {
|
|
554548
|
+
const fs12 = getFsImplementation();
|
|
554549
|
+
const configFile = getKnownMarketplacesFile2();
|
|
554550
|
+
try {
|
|
554551
|
+
let config5 = {};
|
|
554552
|
+
try {
|
|
554553
|
+
const content = await fs12.readFile(configFile, { encoding: "utf-8" });
|
|
554554
|
+
config5 = jsonParse(content);
|
|
554555
|
+
} catch {}
|
|
554556
|
+
if (config5["ecc"])
|
|
554557
|
+
return false;
|
|
554558
|
+
config5["ecc"] = {
|
|
554559
|
+
source: {
|
|
554560
|
+
source: "git",
|
|
554561
|
+
url: ECC_MARKETPLACE_URL
|
|
554562
|
+
},
|
|
554563
|
+
autoUpdate: false,
|
|
554564
|
+
lastUpdated: new Date().toISOString()
|
|
554565
|
+
};
|
|
554566
|
+
await fs12.writeFile(configFile, jsonStringify(config5, null, 2), {
|
|
554567
|
+
encoding: "utf-8"
|
|
554568
|
+
});
|
|
554569
|
+
logForDebugging("Registered ECC marketplace in known_marketplaces.json");
|
|
554570
|
+
return true;
|
|
554571
|
+
} catch (error49) {
|
|
554572
|
+
logForDebugging(`Failed to register ECC marketplace: ${error49}`, {
|
|
554573
|
+
level: "warn"
|
|
554574
|
+
});
|
|
554575
|
+
return false;
|
|
554576
|
+
}
|
|
554577
|
+
}
|
|
554578
|
+
var ECC_MARKETPLACE_URL = "https://github.com/affaan-m/ECC.git";
|
|
554579
|
+
var init_eccMarketplace = __esm(() => {
|
|
554580
|
+
init_fsOperations();
|
|
554581
|
+
init_debug();
|
|
554582
|
+
init_slowOperations();
|
|
554583
|
+
});
|
|
554584
|
+
|
|
554533
554585
|
// src/plugins/bundled/index.ts
|
|
554534
|
-
function initBuiltinPlugins() {
|
|
554586
|
+
function initBuiltinPlugins() {
|
|
554587
|
+
registerBuiltinPlugin({
|
|
554588
|
+
name: "codegraph",
|
|
554589
|
+
description: "Semantic code intelligence — surgical context, fewer tool calls",
|
|
554590
|
+
version: "1.0.0",
|
|
554591
|
+
defaultEnabled: false,
|
|
554592
|
+
isAvailable: () => {
|
|
554593
|
+
isCodeGraphInstalled().catch(() => {});
|
|
554594
|
+
return false;
|
|
554595
|
+
},
|
|
554596
|
+
mcpServers: {
|
|
554597
|
+
codegraph: {
|
|
554598
|
+
command: "codegraph",
|
|
554599
|
+
args: ["mcp"]
|
|
554600
|
+
}
|
|
554601
|
+
}
|
|
554602
|
+
});
|
|
554603
|
+
}
|
|
554604
|
+
async function initSeedMarketplaces() {
|
|
554605
|
+
await ensureEccMarketplaceRegistered();
|
|
554606
|
+
}
|
|
554607
|
+
var init_bundled = __esm(() => {
|
|
554608
|
+
init_builtinPlugins();
|
|
554609
|
+
init_codegraphCheck();
|
|
554610
|
+
init_eccMarketplace();
|
|
554611
|
+
});
|
|
554535
554612
|
|
|
554536
554613
|
// src/services/plugins/pluginCliCommands.ts
|
|
554537
554614
|
function handlePluginCommandError(error49, command8, plugin2) {
|
|
@@ -556619,7 +556696,7 @@ function initBundledSkills() {
|
|
|
556619
556696
|
}
|
|
556620
556697
|
if (false) {}
|
|
556621
556698
|
}
|
|
556622
|
-
var
|
|
556699
|
+
var init_bundled2 = __esm(() => {
|
|
556623
556700
|
init_setup2();
|
|
556624
556701
|
init_batch();
|
|
556625
556702
|
init_claudeInChrome();
|
|
@@ -557338,12 +557415,12 @@ var init_createDirectConnectSession = __esm(() => {
|
|
|
557338
557415
|
});
|
|
557339
557416
|
|
|
557340
557417
|
// src/utils/errorLogSink.ts
|
|
557341
|
-
import { dirname as dirname64, join as
|
|
557418
|
+
import { dirname as dirname64, join as join151 } from "path";
|
|
557342
557419
|
function getErrorsPath() {
|
|
557343
|
-
return
|
|
557420
|
+
return join151(CACHE_PATHS.errors(), DATE + ".jsonl");
|
|
557344
557421
|
}
|
|
557345
557422
|
function getMCPLogsPath(serverName) {
|
|
557346
|
-
return
|
|
557423
|
+
return join151(CACHE_PATHS.mcpLogs(serverName), DATE + ".jsonl");
|
|
557347
557424
|
}
|
|
557348
557425
|
function createJsonlWriter(options) {
|
|
557349
557426
|
const writer = createBufferedWriter(options);
|
|
@@ -557686,7 +557763,7 @@ var init_sessionMemory = __esm(() => {
|
|
|
557686
557763
|
// src/utils/iTermBackup.ts
|
|
557687
557764
|
import { copyFile as copyFile12, stat as stat49 } from "fs/promises";
|
|
557688
557765
|
import { homedir as homedir39 } from "os";
|
|
557689
|
-
import { join as
|
|
557766
|
+
import { join as join152 } from "path";
|
|
557690
557767
|
function markITerm2SetupComplete() {
|
|
557691
557768
|
saveGlobalConfig((current) => ({
|
|
557692
557769
|
...current,
|
|
@@ -557701,7 +557778,7 @@ function getIterm2RecoveryInfo() {
|
|
|
557701
557778
|
};
|
|
557702
557779
|
}
|
|
557703
557780
|
function getITerm2PlistPath() {
|
|
557704
|
-
return
|
|
557781
|
+
return join152(homedir39(), "Library", "Preferences", "com.googlecode.iterm2.plist");
|
|
557705
557782
|
}
|
|
557706
557783
|
async function checkAndRestoreITerm2Backup() {
|
|
557707
557784
|
const { inProgress, backupPath } = getIterm2RecoveryInfo();
|
|
@@ -561066,7 +561143,7 @@ var init_idleTimeout = __esm(() => {
|
|
|
561066
561143
|
// src/bridge/inboundAttachments.ts
|
|
561067
561144
|
import { randomUUID as randomUUID48 } from "crypto";
|
|
561068
561145
|
import { mkdir as mkdir42, writeFile as writeFile46 } from "fs/promises";
|
|
561069
|
-
import { basename as basename58, join as
|
|
561146
|
+
import { basename as basename58, join as join153 } from "path";
|
|
561070
561147
|
function debug3(msg) {
|
|
561071
561148
|
logForDebugging(`[bridge:inbound-attach] ${msg}`);
|
|
561072
561149
|
}
|
|
@@ -561082,7 +561159,7 @@ function sanitizeFileName(name) {
|
|
|
561082
561159
|
return base2 || "attachment";
|
|
561083
561160
|
}
|
|
561084
561161
|
function uploadsDir() {
|
|
561085
|
-
return
|
|
561162
|
+
return join153(getClaudeConfigHomeDir(), "uploads", getSessionId());
|
|
561086
561163
|
}
|
|
561087
561164
|
async function resolveOne(att) {
|
|
561088
561165
|
const token = getBridgeAccessToken();
|
|
@@ -561111,7 +561188,7 @@ async function resolveOne(att) {
|
|
|
561111
561188
|
const safeName = sanitizeFileName(att.file_name);
|
|
561112
561189
|
const prefix = (att.file_uuid.slice(0, 8) || randomUUID48().slice(0, 8)).replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
561113
561190
|
const dir = uploadsDir();
|
|
561114
|
-
const outPath =
|
|
561191
|
+
const outPath = join153(dir, `${prefix}-${safeName}`);
|
|
561115
561192
|
try {
|
|
561116
561193
|
await mkdir42(dir, { recursive: true });
|
|
561117
561194
|
await writeFile46(outPath, data);
|
|
@@ -561211,7 +561288,7 @@ var init_sessionUrl = __esm(() => {
|
|
|
561211
561288
|
|
|
561212
561289
|
// src/utils/plugins/zipCacheAdapters.ts
|
|
561213
561290
|
import { readFile as readFile51 } from "fs/promises";
|
|
561214
|
-
import { join as
|
|
561291
|
+
import { join as join154 } from "path";
|
|
561215
561292
|
async function readZipCacheKnownMarketplaces() {
|
|
561216
561293
|
try {
|
|
561217
561294
|
const content = await readFile51(getZipCacheKnownMarketplacesPath(), "utf-8");
|
|
@@ -561236,13 +561313,13 @@ async function saveMarketplaceJsonToZipCache(marketplaceName, installLocation) {
|
|
|
561236
561313
|
const content = await readMarketplaceJsonContent(installLocation);
|
|
561237
561314
|
if (content !== null) {
|
|
561238
561315
|
const relPath = getMarketplaceJsonRelativePath(marketplaceName);
|
|
561239
|
-
await atomicWriteToZipCache(
|
|
561316
|
+
await atomicWriteToZipCache(join154(zipCachePath, relPath), content);
|
|
561240
561317
|
}
|
|
561241
561318
|
}
|
|
561242
561319
|
async function readMarketplaceJsonContent(dir) {
|
|
561243
561320
|
const candidates = [
|
|
561244
|
-
|
|
561245
|
-
|
|
561321
|
+
join154(dir, ".claude-plugin", "marketplace.json"),
|
|
561322
|
+
join154(dir, "marketplace.json"),
|
|
561246
561323
|
dir
|
|
561247
561324
|
];
|
|
561248
561325
|
for (const candidate of candidates) {
|
|
@@ -561701,9 +561778,9 @@ __export(exports_bridgePointer, {
|
|
|
561701
561778
|
BRIDGE_POINTER_TTL_MS: () => BRIDGE_POINTER_TTL_MS
|
|
561702
561779
|
});
|
|
561703
561780
|
import { mkdir as mkdir43, readFile as readFile52, stat as stat50, unlink as unlink22, writeFile as writeFile47 } from "fs/promises";
|
|
561704
|
-
import { dirname as dirname65, join as
|
|
561781
|
+
import { dirname as dirname65, join as join155 } from "path";
|
|
561705
561782
|
function getBridgePointerPath(dir) {
|
|
561706
|
-
return
|
|
561783
|
+
return join155(getProjectsDir(), sanitizePath2(dir), "bridge-pointer.json");
|
|
561707
561784
|
}
|
|
561708
561785
|
async function writeBridgePointer(dir, pointer) {
|
|
561709
561786
|
const path24 = getBridgePointerPath(dir);
|
|
@@ -567640,14 +567717,14 @@ __export(exports_claudeDesktop, {
|
|
|
567640
567717
|
});
|
|
567641
567718
|
import { readdir as readdir30, readFile as readFile54, stat as stat52 } from "fs/promises";
|
|
567642
567719
|
import { homedir as homedir40 } from "os";
|
|
567643
|
-
import { join as
|
|
567720
|
+
import { join as join156 } from "path";
|
|
567644
567721
|
async function getClaudeDesktopConfigPath() {
|
|
567645
567722
|
const platform6 = getPlatform();
|
|
567646
567723
|
if (!SUPPORTED_PLATFORMS.includes(platform6)) {
|
|
567647
567724
|
throw new Error(`Unsupported platform: ${platform6} - Claude Desktop integration only works on macOS and WSL.`);
|
|
567648
567725
|
}
|
|
567649
567726
|
if (platform6 === "macos") {
|
|
567650
|
-
return
|
|
567727
|
+
return join156(homedir40(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
|
|
567651
567728
|
}
|
|
567652
567729
|
const windowsHome = process.env.USERPROFILE ? process.env.USERPROFILE.replace(/\\/g, "/") : null;
|
|
567653
567730
|
if (windowsHome) {
|
|
@@ -567666,7 +567743,7 @@ async function getClaudeDesktopConfigPath() {
|
|
|
567666
567743
|
if (user.name === "Public" || user.name === "Default" || user.name === "Default User" || user.name === "All Users") {
|
|
567667
567744
|
continue;
|
|
567668
567745
|
}
|
|
567669
|
-
const potentialConfigPath =
|
|
567746
|
+
const potentialConfigPath = join156(usersDir, user.name, "AppData", "Roaming", "Claude", "claude_desktop_config.json");
|
|
567670
567747
|
try {
|
|
567671
567748
|
await stat52(potentialConfigPath);
|
|
567672
567749
|
return potentialConfigPath;
|
|
@@ -568575,12 +568652,12 @@ __export(exports_install, {
|
|
|
568575
568652
|
install: () => install
|
|
568576
568653
|
});
|
|
568577
568654
|
import { homedir as homedir41 } from "node:os";
|
|
568578
|
-
import { join as
|
|
568655
|
+
import { join as join157 } from "node:path";
|
|
568579
568656
|
function getInstallationPath2() {
|
|
568580
568657
|
const isWindows2 = env4.platform === "win32";
|
|
568581
568658
|
const homeDir = homedir41();
|
|
568582
568659
|
if (isWindows2) {
|
|
568583
|
-
const windowsPath =
|
|
568660
|
+
const windowsPath = join157(homeDir, ".local", "bin", "claude.exe");
|
|
568584
568661
|
return windowsPath.replace(/\//g, "\\");
|
|
568585
568662
|
}
|
|
568586
568663
|
return "~/.local/bin/claude";
|
|
@@ -570345,6 +570422,7 @@ ${hint}` : hint;
|
|
|
570345
570422
|
if (process.env.CLAUDE_CODE_ENTRYPOINT !== "local-agent") {
|
|
570346
570423
|
initBuiltinPlugins();
|
|
570347
570424
|
initBundledSkills();
|
|
570425
|
+
initSeedMarketplaces().catch(() => {});
|
|
570348
570426
|
}
|
|
570349
570427
|
const setupPromise = setup2(preSetupCwd, permissionMode, allowDangerouslySkipPermissions, worktreeEnabled, worktreeName, tmuxEnabled, sessionId ? validateUuid2(sessionId) : undefined, worktreePRNumber, messagingSocketPath);
|
|
570350
570428
|
const commandsPromise = worktreeEnabled ? null : getCommands(preSetupCwd);
|
|
@@ -571838,10 +571916,11 @@ var init_main3 = __esm(() => {
|
|
|
571838
571916
|
init_dialogLaunchers();
|
|
571839
571917
|
init_dec();
|
|
571840
571918
|
init_interactiveHelpers();
|
|
571919
|
+
init_bundled();
|
|
571841
571920
|
init_claudeAiLimits();
|
|
571842
571921
|
init_client6();
|
|
571843
571922
|
init_pluginCliCommands();
|
|
571844
|
-
|
|
571923
|
+
init_bundled2();
|
|
571845
571924
|
init_loadAgentsDir();
|
|
571846
571925
|
init_autoUpdater();
|
|
571847
571926
|
init_setup2();
|
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-06-
|
|
7
|
+
VERSION: "0.1.30",
|
|
8
|
+
BUILD_TIME: "2026-06-23T12:43:05.483Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
@@ -153664,6 +153664,9 @@ function getPluginErrorMessage(error49) {
|
|
|
153664
153664
|
}
|
|
153665
153665
|
|
|
153666
153666
|
// src/plugins/builtinPlugins.ts
|
|
153667
|
+
function registerBuiltinPlugin(definition) {
|
|
153668
|
+
BUILTIN_PLUGINS.set(definition.name, definition);
|
|
153669
|
+
}
|
|
153667
153670
|
function isBuiltinPluginId(pluginId) {
|
|
153668
153671
|
return pluginId.endsWith(`@${BUILTIN_MARKETPLACE_NAME}`);
|
|
153669
153672
|
}
|
|
@@ -279974,7 +279977,7 @@ function parseMcpConfig(params) {
|
|
|
279974
279977
|
...filePath && { file: filePath },
|
|
279975
279978
|
path: `mcpServers.${name}`,
|
|
279976
279979
|
message: `Windows requires 'cmd /c' wrapper to execute npx`,
|
|
279977
|
-
suggestion: `Change command to "cmd" with args ["/c", "npx", ...]. See: https://
|
|
279980
|
+
suggestion: `Change command to "cmd" with args ["/c", "npx", ...]. See: https://github.com/thomaslwq/myclaude`,
|
|
279978
279981
|
mcpErrorMetadata: {
|
|
279979
279982
|
scope,
|
|
279980
279983
|
serverName: name,
|
|
@@ -417711,8 +417714,8 @@ function McpParsingWarnings() {
|
|
|
417711
417714
|
"For help configuring MCP servers, see:",
|
|
417712
417715
|
" ",
|
|
417713
417716
|
/* @__PURE__ */ jsx_dev_runtime189.jsxDEV(Link, {
|
|
417714
|
-
url: "https://
|
|
417715
|
-
children: "https://
|
|
417717
|
+
url: "https://github.com/thomaslwq/myclaude",
|
|
417718
|
+
children: "https://github.com/thomaslwq/myclaude"
|
|
417716
417719
|
}, undefined, false, undefined, this)
|
|
417717
417720
|
]
|
|
417718
417721
|
}, undefined, true, undefined, this)
|
|
@@ -422536,12 +422539,6 @@ __export(exports_keybindings, {
|
|
|
422536
422539
|
import { mkdir as mkdir29, writeFile as writeFile32 } from "fs/promises";
|
|
422537
422540
|
import { dirname as dirname52 } from "path";
|
|
422538
422541
|
async function call23() {
|
|
422539
|
-
if (!isKeybindingCustomizationEnabled()) {
|
|
422540
|
-
return {
|
|
422541
|
-
type: "text",
|
|
422542
|
-
value: "Keybinding customization is not enabled. This feature is currently in preview."
|
|
422543
|
-
};
|
|
422544
|
-
}
|
|
422545
422542
|
const keybindingsPath = getKeybindingsPath();
|
|
422546
422543
|
let fileExists = false;
|
|
422547
422544
|
await mkdir29(dirname52(keybindingsPath), { recursive: true });
|
|
@@ -422550,23 +422547,17 @@ async function call23() {
|
|
|
422550
422547
|
encoding: "utf-8",
|
|
422551
422548
|
flag: "wx"
|
|
422552
422549
|
});
|
|
422553
|
-
} catch (
|
|
422554
|
-
if (getErrnoCode(
|
|
422550
|
+
} catch (err2) {
|
|
422551
|
+
if (getErrnoCode(err2) === "EEXIST") {
|
|
422555
422552
|
fileExists = true;
|
|
422556
422553
|
} else {
|
|
422557
|
-
throw
|
|
422554
|
+
throw err2;
|
|
422558
422555
|
}
|
|
422559
422556
|
}
|
|
422560
|
-
const
|
|
422561
|
-
if (result.error) {
|
|
422562
|
-
return {
|
|
422563
|
-
type: "text",
|
|
422564
|
-
value: `${fileExists ? "Opened" : "Created"} ${keybindingsPath}. Could not open in editor: ${result.error}`
|
|
422565
|
-
};
|
|
422566
|
-
}
|
|
422557
|
+
const editAccepted = await editFileInEditor(keybindingsPath);
|
|
422567
422558
|
return {
|
|
422568
422559
|
type: "text",
|
|
422569
|
-
value:
|
|
422560
|
+
value: editAccepted ? `Keybindings file saved to ${keybindingsPath}` : `No changes made. Your keybindings file is at ${keybindingsPath}`
|
|
422570
422561
|
};
|
|
422571
422562
|
}
|
|
422572
422563
|
var init_keybindings = __esm(() => {
|
|
@@ -422579,11 +422570,9 @@ var init_keybindings = __esm(() => {
|
|
|
422579
422570
|
// src/commands/keybindings/index.ts
|
|
422580
422571
|
var keybindings, keybindings_default;
|
|
422581
422572
|
var init_keybindings2 = __esm(() => {
|
|
422582
|
-
init_loadUserBindings();
|
|
422583
422573
|
keybindings = {
|
|
422584
422574
|
name: "keybindings",
|
|
422585
422575
|
description: "Open or create your keybindings configuration file",
|
|
422586
|
-
isEnabled: () => isKeybindingCustomizationEnabled(),
|
|
422587
422576
|
supportsNonInteractive: false,
|
|
422588
422577
|
type: "local",
|
|
422589
422578
|
load: () => Promise.resolve().then(() => (init_keybindings(), exports_keybindings))
|
|
@@ -426780,8 +426769,8 @@ function MCPListPanel(t0) {
|
|
|
426780
426769
|
dimColor: true,
|
|
426781
426770
|
children: [
|
|
426782
426771
|
/* @__PURE__ */ jsx_dev_runtime219.jsxDEV(Link, {
|
|
426783
|
-
url: "https://
|
|
426784
|
-
children: "https://
|
|
426772
|
+
url: "https://github.com/thomaslwq/myclaude",
|
|
426773
|
+
children: "https://github.com/thomaslwq/myclaude"
|
|
426785
426774
|
}, undefined, false, undefined, this),
|
|
426786
426775
|
" ",
|
|
426787
426776
|
"for help"
|
|
@@ -429919,7 +429908,7 @@ function MCPSettings(t0) {
|
|
|
429919
429908
|
return;
|
|
429920
429909
|
}
|
|
429921
429910
|
if (servers.length === 0 && agentMcpServers.length === 0) {
|
|
429922
|
-
onComplete("No MCP servers configured. Please run /doctor if this is unexpected. Otherwise, run `myclaude mcp --help` or visit https://
|
|
429911
|
+
onComplete("No MCP servers configured. Please run /doctor if this is unexpected. Otherwise, run `myclaude mcp --help` or visit https://github.com/thomaslwq/myclaude to learn more.");
|
|
429923
429912
|
}
|
|
429924
429913
|
};
|
|
429925
429914
|
t8 = [servers.length, filteredClients.length, agentMcpServers.length, onComplete];
|
|
@@ -479865,7 +479854,6 @@ var init_tag2 = __esm(() => {
|
|
|
479865
479854
|
type: "local-jsx",
|
|
479866
479855
|
name: "tag",
|
|
479867
479856
|
description: "Toggle a searchable tag on the current session",
|
|
479868
|
-
isEnabled: () => process.env.USER_TYPE === "ant",
|
|
479869
479857
|
argumentHint: "<tag-name>",
|
|
479870
479858
|
load: () => Promise.resolve().then(() => (init_tag(), exports_tag))
|
|
479871
479859
|
};
|
|
@@ -549795,7 +549783,7 @@ function MCPServerDialogCopy() {
|
|
|
549795
549783
|
"MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the",
|
|
549796
549784
|
" ",
|
|
549797
549785
|
/* @__PURE__ */ jsx_dev_runtime467.jsxDEV(Link, {
|
|
549798
|
-
url: "https://
|
|
549786
|
+
url: "https://github.com/thomaslwq/myclaude",
|
|
549799
549787
|
children: "MCP documentation"
|
|
549800
549788
|
}, undefined, false, undefined, this),
|
|
549801
549789
|
"."
|
|
@@ -554530,8 +554518,97 @@ var init_dialogLaunchers = __esm(() => {
|
|
|
554530
554518
|
jsx_dev_runtime486 = __toESM(require_jsx_dev_runtime(), 1);
|
|
554531
554519
|
});
|
|
554532
554520
|
|
|
554521
|
+
// src/plugins/bundled/codegraphCheck.ts
|
|
554522
|
+
async function isCodeGraphInstalled() {
|
|
554523
|
+
if (cachedResult !== null)
|
|
554524
|
+
return cachedResult;
|
|
554525
|
+
try {
|
|
554526
|
+
const result = await execFileNoThrow("codegraph", ["--version"], {
|
|
554527
|
+
timeout: 3000,
|
|
554528
|
+
stdin: "ignore"
|
|
554529
|
+
});
|
|
554530
|
+
cachedResult = result.code === 0;
|
|
554531
|
+
} catch {
|
|
554532
|
+
cachedResult = false;
|
|
554533
|
+
}
|
|
554534
|
+
return cachedResult;
|
|
554535
|
+
}
|
|
554536
|
+
var cachedResult = null;
|
|
554537
|
+
var init_codegraphCheck = __esm(() => {
|
|
554538
|
+
init_execFileNoThrow();
|
|
554539
|
+
});
|
|
554540
|
+
|
|
554541
|
+
// src/plugins/bundled/eccMarketplace.ts
|
|
554542
|
+
import { join as join150 } from "path";
|
|
554543
|
+
function getKnownMarketplacesFile2() {
|
|
554544
|
+
const homeDir = process.env.CLAUDE_CODE_PLUGIN_CACHE_DIR || join150(process.env.HOME || process.env.USERPROFILE || "~", ".claude", "plugins");
|
|
554545
|
+
return join150(homeDir, "known_marketplaces.json");
|
|
554546
|
+
}
|
|
554547
|
+
async function ensureEccMarketplaceRegistered() {
|
|
554548
|
+
const fs12 = getFsImplementation();
|
|
554549
|
+
const configFile = getKnownMarketplacesFile2();
|
|
554550
|
+
try {
|
|
554551
|
+
let config5 = {};
|
|
554552
|
+
try {
|
|
554553
|
+
const content = await fs12.readFile(configFile, { encoding: "utf-8" });
|
|
554554
|
+
config5 = jsonParse(content);
|
|
554555
|
+
} catch {}
|
|
554556
|
+
if (config5["ecc"])
|
|
554557
|
+
return false;
|
|
554558
|
+
config5["ecc"] = {
|
|
554559
|
+
source: {
|
|
554560
|
+
source: "git",
|
|
554561
|
+
url: ECC_MARKETPLACE_URL
|
|
554562
|
+
},
|
|
554563
|
+
autoUpdate: false,
|
|
554564
|
+
lastUpdated: new Date().toISOString()
|
|
554565
|
+
};
|
|
554566
|
+
await fs12.writeFile(configFile, jsonStringify(config5, null, 2), {
|
|
554567
|
+
encoding: "utf-8"
|
|
554568
|
+
});
|
|
554569
|
+
logForDebugging("Registered ECC marketplace in known_marketplaces.json");
|
|
554570
|
+
return true;
|
|
554571
|
+
} catch (error49) {
|
|
554572
|
+
logForDebugging(`Failed to register ECC marketplace: ${error49}`, {
|
|
554573
|
+
level: "warn"
|
|
554574
|
+
});
|
|
554575
|
+
return false;
|
|
554576
|
+
}
|
|
554577
|
+
}
|
|
554578
|
+
var ECC_MARKETPLACE_URL = "https://github.com/affaan-m/ECC.git";
|
|
554579
|
+
var init_eccMarketplace = __esm(() => {
|
|
554580
|
+
init_fsOperations();
|
|
554581
|
+
init_debug();
|
|
554582
|
+
init_slowOperations();
|
|
554583
|
+
});
|
|
554584
|
+
|
|
554533
554585
|
// src/plugins/bundled/index.ts
|
|
554534
|
-
function initBuiltinPlugins() {
|
|
554586
|
+
function initBuiltinPlugins() {
|
|
554587
|
+
registerBuiltinPlugin({
|
|
554588
|
+
name: "codegraph",
|
|
554589
|
+
description: "Semantic code intelligence — surgical context, fewer tool calls",
|
|
554590
|
+
version: "1.0.0",
|
|
554591
|
+
defaultEnabled: false,
|
|
554592
|
+
isAvailable: () => {
|
|
554593
|
+
isCodeGraphInstalled().catch(() => {});
|
|
554594
|
+
return false;
|
|
554595
|
+
},
|
|
554596
|
+
mcpServers: {
|
|
554597
|
+
codegraph: {
|
|
554598
|
+
command: "codegraph",
|
|
554599
|
+
args: ["mcp"]
|
|
554600
|
+
}
|
|
554601
|
+
}
|
|
554602
|
+
});
|
|
554603
|
+
}
|
|
554604
|
+
async function initSeedMarketplaces() {
|
|
554605
|
+
await ensureEccMarketplaceRegistered();
|
|
554606
|
+
}
|
|
554607
|
+
var init_bundled = __esm(() => {
|
|
554608
|
+
init_builtinPlugins();
|
|
554609
|
+
init_codegraphCheck();
|
|
554610
|
+
init_eccMarketplace();
|
|
554611
|
+
});
|
|
554535
554612
|
|
|
554536
554613
|
// src/services/plugins/pluginCliCommands.ts
|
|
554537
554614
|
function handlePluginCommandError(error49, command8, plugin2) {
|
|
@@ -556619,7 +556696,7 @@ function initBundledSkills() {
|
|
|
556619
556696
|
}
|
|
556620
556697
|
if (false) {}
|
|
556621
556698
|
}
|
|
556622
|
-
var
|
|
556699
|
+
var init_bundled2 = __esm(() => {
|
|
556623
556700
|
init_setup2();
|
|
556624
556701
|
init_batch();
|
|
556625
556702
|
init_claudeInChrome();
|
|
@@ -557338,12 +557415,12 @@ var init_createDirectConnectSession = __esm(() => {
|
|
|
557338
557415
|
});
|
|
557339
557416
|
|
|
557340
557417
|
// src/utils/errorLogSink.ts
|
|
557341
|
-
import { dirname as dirname64, join as
|
|
557418
|
+
import { dirname as dirname64, join as join151 } from "path";
|
|
557342
557419
|
function getErrorsPath() {
|
|
557343
|
-
return
|
|
557420
|
+
return join151(CACHE_PATHS.errors(), DATE + ".jsonl");
|
|
557344
557421
|
}
|
|
557345
557422
|
function getMCPLogsPath(serverName) {
|
|
557346
|
-
return
|
|
557423
|
+
return join151(CACHE_PATHS.mcpLogs(serverName), DATE + ".jsonl");
|
|
557347
557424
|
}
|
|
557348
557425
|
function createJsonlWriter(options) {
|
|
557349
557426
|
const writer = createBufferedWriter(options);
|
|
@@ -557686,7 +557763,7 @@ var init_sessionMemory = __esm(() => {
|
|
|
557686
557763
|
// src/utils/iTermBackup.ts
|
|
557687
557764
|
import { copyFile as copyFile12, stat as stat49 } from "fs/promises";
|
|
557688
557765
|
import { homedir as homedir39 } from "os";
|
|
557689
|
-
import { join as
|
|
557766
|
+
import { join as join152 } from "path";
|
|
557690
557767
|
function markITerm2SetupComplete() {
|
|
557691
557768
|
saveGlobalConfig((current) => ({
|
|
557692
557769
|
...current,
|
|
@@ -557701,7 +557778,7 @@ function getIterm2RecoveryInfo() {
|
|
|
557701
557778
|
};
|
|
557702
557779
|
}
|
|
557703
557780
|
function getITerm2PlistPath() {
|
|
557704
|
-
return
|
|
557781
|
+
return join152(homedir39(), "Library", "Preferences", "com.googlecode.iterm2.plist");
|
|
557705
557782
|
}
|
|
557706
557783
|
async function checkAndRestoreITerm2Backup() {
|
|
557707
557784
|
const { inProgress, backupPath } = getIterm2RecoveryInfo();
|
|
@@ -561066,7 +561143,7 @@ var init_idleTimeout = __esm(() => {
|
|
|
561066
561143
|
// src/bridge/inboundAttachments.ts
|
|
561067
561144
|
import { randomUUID as randomUUID48 } from "crypto";
|
|
561068
561145
|
import { mkdir as mkdir42, writeFile as writeFile46 } from "fs/promises";
|
|
561069
|
-
import { basename as basename58, join as
|
|
561146
|
+
import { basename as basename58, join as join153 } from "path";
|
|
561070
561147
|
function debug3(msg) {
|
|
561071
561148
|
logForDebugging(`[bridge:inbound-attach] ${msg}`);
|
|
561072
561149
|
}
|
|
@@ -561082,7 +561159,7 @@ function sanitizeFileName(name) {
|
|
|
561082
561159
|
return base2 || "attachment";
|
|
561083
561160
|
}
|
|
561084
561161
|
function uploadsDir() {
|
|
561085
|
-
return
|
|
561162
|
+
return join153(getClaudeConfigHomeDir(), "uploads", getSessionId());
|
|
561086
561163
|
}
|
|
561087
561164
|
async function resolveOne(att) {
|
|
561088
561165
|
const token = getBridgeAccessToken();
|
|
@@ -561111,7 +561188,7 @@ async function resolveOne(att) {
|
|
|
561111
561188
|
const safeName = sanitizeFileName(att.file_name);
|
|
561112
561189
|
const prefix = (att.file_uuid.slice(0, 8) || randomUUID48().slice(0, 8)).replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
561113
561190
|
const dir = uploadsDir();
|
|
561114
|
-
const outPath =
|
|
561191
|
+
const outPath = join153(dir, `${prefix}-${safeName}`);
|
|
561115
561192
|
try {
|
|
561116
561193
|
await mkdir42(dir, { recursive: true });
|
|
561117
561194
|
await writeFile46(outPath, data);
|
|
@@ -561211,7 +561288,7 @@ var init_sessionUrl = __esm(() => {
|
|
|
561211
561288
|
|
|
561212
561289
|
// src/utils/plugins/zipCacheAdapters.ts
|
|
561213
561290
|
import { readFile as readFile51 } from "fs/promises";
|
|
561214
|
-
import { join as
|
|
561291
|
+
import { join as join154 } from "path";
|
|
561215
561292
|
async function readZipCacheKnownMarketplaces() {
|
|
561216
561293
|
try {
|
|
561217
561294
|
const content = await readFile51(getZipCacheKnownMarketplacesPath(), "utf-8");
|
|
@@ -561236,13 +561313,13 @@ async function saveMarketplaceJsonToZipCache(marketplaceName, installLocation) {
|
|
|
561236
561313
|
const content = await readMarketplaceJsonContent(installLocation);
|
|
561237
561314
|
if (content !== null) {
|
|
561238
561315
|
const relPath = getMarketplaceJsonRelativePath(marketplaceName);
|
|
561239
|
-
await atomicWriteToZipCache(
|
|
561316
|
+
await atomicWriteToZipCache(join154(zipCachePath, relPath), content);
|
|
561240
561317
|
}
|
|
561241
561318
|
}
|
|
561242
561319
|
async function readMarketplaceJsonContent(dir) {
|
|
561243
561320
|
const candidates = [
|
|
561244
|
-
|
|
561245
|
-
|
|
561321
|
+
join154(dir, ".claude-plugin", "marketplace.json"),
|
|
561322
|
+
join154(dir, "marketplace.json"),
|
|
561246
561323
|
dir
|
|
561247
561324
|
];
|
|
561248
561325
|
for (const candidate of candidates) {
|
|
@@ -561701,9 +561778,9 @@ __export(exports_bridgePointer, {
|
|
|
561701
561778
|
BRIDGE_POINTER_TTL_MS: () => BRIDGE_POINTER_TTL_MS
|
|
561702
561779
|
});
|
|
561703
561780
|
import { mkdir as mkdir43, readFile as readFile52, stat as stat50, unlink as unlink22, writeFile as writeFile47 } from "fs/promises";
|
|
561704
|
-
import { dirname as dirname65, join as
|
|
561781
|
+
import { dirname as dirname65, join as join155 } from "path";
|
|
561705
561782
|
function getBridgePointerPath(dir) {
|
|
561706
|
-
return
|
|
561783
|
+
return join155(getProjectsDir(), sanitizePath2(dir), "bridge-pointer.json");
|
|
561707
561784
|
}
|
|
561708
561785
|
async function writeBridgePointer(dir, pointer) {
|
|
561709
561786
|
const path24 = getBridgePointerPath(dir);
|
|
@@ -567640,14 +567717,14 @@ __export(exports_claudeDesktop, {
|
|
|
567640
567717
|
});
|
|
567641
567718
|
import { readdir as readdir30, readFile as readFile54, stat as stat52 } from "fs/promises";
|
|
567642
567719
|
import { homedir as homedir40 } from "os";
|
|
567643
|
-
import { join as
|
|
567720
|
+
import { join as join156 } from "path";
|
|
567644
567721
|
async function getClaudeDesktopConfigPath() {
|
|
567645
567722
|
const platform6 = getPlatform();
|
|
567646
567723
|
if (!SUPPORTED_PLATFORMS.includes(platform6)) {
|
|
567647
567724
|
throw new Error(`Unsupported platform: ${platform6} - Claude Desktop integration only works on macOS and WSL.`);
|
|
567648
567725
|
}
|
|
567649
567726
|
if (platform6 === "macos") {
|
|
567650
|
-
return
|
|
567727
|
+
return join156(homedir40(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
|
|
567651
567728
|
}
|
|
567652
567729
|
const windowsHome = process.env.USERPROFILE ? process.env.USERPROFILE.replace(/\\/g, "/") : null;
|
|
567653
567730
|
if (windowsHome) {
|
|
@@ -567666,7 +567743,7 @@ async function getClaudeDesktopConfigPath() {
|
|
|
567666
567743
|
if (user.name === "Public" || user.name === "Default" || user.name === "Default User" || user.name === "All Users") {
|
|
567667
567744
|
continue;
|
|
567668
567745
|
}
|
|
567669
|
-
const potentialConfigPath =
|
|
567746
|
+
const potentialConfigPath = join156(usersDir, user.name, "AppData", "Roaming", "Claude", "claude_desktop_config.json");
|
|
567670
567747
|
try {
|
|
567671
567748
|
await stat52(potentialConfigPath);
|
|
567672
567749
|
return potentialConfigPath;
|
|
@@ -568575,12 +568652,12 @@ __export(exports_install, {
|
|
|
568575
568652
|
install: () => install
|
|
568576
568653
|
});
|
|
568577
568654
|
import { homedir as homedir41 } from "node:os";
|
|
568578
|
-
import { join as
|
|
568655
|
+
import { join as join157 } from "node:path";
|
|
568579
568656
|
function getInstallationPath2() {
|
|
568580
568657
|
const isWindows2 = env4.platform === "win32";
|
|
568581
568658
|
const homeDir = homedir41();
|
|
568582
568659
|
if (isWindows2) {
|
|
568583
|
-
const windowsPath =
|
|
568660
|
+
const windowsPath = join157(homeDir, ".local", "bin", "claude.exe");
|
|
568584
568661
|
return windowsPath.replace(/\//g, "\\");
|
|
568585
568662
|
}
|
|
568586
568663
|
return "~/.local/bin/claude";
|
|
@@ -570345,6 +570422,7 @@ ${hint}` : hint;
|
|
|
570345
570422
|
if (process.env.CLAUDE_CODE_ENTRYPOINT !== "local-agent") {
|
|
570346
570423
|
initBuiltinPlugins();
|
|
570347
570424
|
initBundledSkills();
|
|
570425
|
+
initSeedMarketplaces().catch(() => {});
|
|
570348
570426
|
}
|
|
570349
570427
|
const setupPromise = setup2(preSetupCwd, permissionMode, allowDangerouslySkipPermissions, worktreeEnabled, worktreeName, tmuxEnabled, sessionId ? validateUuid2(sessionId) : undefined, worktreePRNumber, messagingSocketPath);
|
|
570350
570428
|
const commandsPromise = worktreeEnabled ? null : getCommands(preSetupCwd);
|
|
@@ -571838,10 +571916,11 @@ var init_main3 = __esm(() => {
|
|
|
571838
571916
|
init_dialogLaunchers();
|
|
571839
571917
|
init_dec();
|
|
571840
571918
|
init_interactiveHelpers();
|
|
571919
|
+
init_bundled();
|
|
571841
571920
|
init_claudeAiLimits();
|
|
571842
571921
|
init_client6();
|
|
571843
571922
|
init_pluginCliCommands();
|
|
571844
|
-
|
|
571923
|
+
init_bundled2();
|
|
571845
571924
|
init_loadAgentsDir();
|
|
571846
571925
|
init_autoUpdater();
|
|
571847
571926
|
init_setup2();
|