@funnycode/myclaude 0.1.34 → 0.1.35

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 CHANGED
@@ -225,9 +225,7 @@ Once enabled, CodeGraph's MCP server starts automatically and provides semantic
225
225
 
226
226
  ### ECC — Agent Operating System
227
227
 
228
- [ECC](https://github.com/affaan-m/ECC) is a cross-harness agent ecosystem with 200+ skills, agents, hooks, and rules.
229
-
230
- ECC is pre-registered as a marketplace — no manual setup needed.
228
+ [ECC](https://github.com/affaan-m/ECC) is a cross-harness agent ecosystem with 200+ skills, agents, hooks, and rules. **Pre-installed out of the box** — browse and install plugins immediately:
231
229
 
232
230
  ```bash
233
231
  # Browse available ECC plugins
@@ -321,18 +319,6 @@ src/
321
319
 
322
320
  ---
323
321
 
324
- ## Roadmap
325
-
326
- See [docs/ROADMAP.md](docs/ROADMAP.md) for the full iteration plan:
327
-
328
- - **P0** — Activate hidden features (BUDDY, Auto Memory) ✅
329
- - **P1** — Growth system (Achievements, skill recommendations)
330
- - **P2** — Interactive experience (multi-interaction, events)
331
- - **P3** — Extension ecosystem (plugin marketplace, Skill Studio)
332
- - **P4** — Intelligent evolution (personalized fine-tuning, offline mode)
333
-
334
- ---
335
-
336
322
  ## Contributing
337
323
 
338
324
  Pull requests are welcome!
package/README.zh-CN.md CHANGED
@@ -246,9 +246,7 @@ codegraph init
246
246
 
247
247
  ### ECC — 跨平台代理操作系统
248
248
 
249
- [ECC](https://github.com/affaan-m/ECC) 是一个跨 harness 的代理生态系统,包含 200+ 技能、代理、hooks 和规则。
250
-
251
- ECC 已预注册为市场源,无需手动添加。
249
+ [ECC](https://github.com/affaan-m/ECC) 是一个跨 harness 的代理生态系统,包含 200+ 技能、代理、hooks 和规则。**开箱即用** — 可直接浏览和安装插件:
252
250
 
253
251
  ```bash
254
252
  # 浏览可用的 ECC 插件
@@ -316,18 +314,6 @@ src/
316
314
 
317
315
  ---
318
316
 
319
- ## 路线图
320
-
321
- 详见 [docs/ROADMAP.md](docs/ROADMAP.md):
322
-
323
- - **P0** — 激活隐藏功能(BUDDY、Auto Memory)✅
324
- - **P1** — 成长系统(成就、技能推荐)
325
- - **P2** — 互动体验(多交互模式、节日事件)
326
- - **P3** — 扩展生态(插件市场、Skill Studio)
327
- - **P4** — 智能进化(个性化微调、离线模式)
328
-
329
- ---
330
-
331
317
  ## 贡献
332
318
 
333
319
  欢迎提交 PR 参与贡献!
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.34",
8
- BUILD_TIME: "2026-06-23T13:19:31.986Z",
7
+ VERSION: "0.1.35",
8
+ BUILD_TIME: "2026-06-23T13:24:08.880Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -554539,34 +554539,18 @@ var init_codegraphCheck = __esm(() => {
554539
554539
  });
554540
554540
 
554541
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
554542
  async function ensureEccMarketplaceRegistered() {
554548
- const fs12 = getFsImplementation();
554549
- const configFile = getKnownMarketplacesFile2();
554550
554543
  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"
554544
+ const existing = await loadKnownMarketplacesConfig();
554545
+ if (existing["ecc"]) {
554546
+ logForDebugging("ECC marketplace already registered, skipping");
554547
+ return true;
554548
+ }
554549
+ const result = await addMarketplaceSource({
554550
+ source: "git",
554551
+ url: ECC_MARKETPLACE_URL
554568
554552
  });
554569
- logForDebugging("Registered ECC marketplace in known_marketplaces.json");
554553
+ logForDebugging(`ECC marketplace registered as '${result.name}' (materialized: ${!result.alreadyMaterialized})`);
554570
554554
  return true;
554571
554555
  } catch (error49) {
554572
554556
  logForDebugging(`Failed to register ECC marketplace: ${error49}`, {
@@ -554577,9 +554561,8 @@ async function ensureEccMarketplaceRegistered() {
554577
554561
  }
554578
554562
  var ECC_MARKETPLACE_URL = "https://github.com/affaan-m/ECC.git";
554579
554563
  var init_eccMarketplace = __esm(() => {
554580
- init_fsOperations();
554581
554564
  init_debug();
554582
- init_slowOperations();
554565
+ init_marketplaceManager();
554583
554566
  });
554584
554567
 
554585
554568
  // src/plugins/bundled/index.ts
@@ -557415,12 +557398,12 @@ var init_createDirectConnectSession = __esm(() => {
557415
557398
  });
557416
557399
 
557417
557400
  // src/utils/errorLogSink.ts
557418
- import { dirname as dirname64, join as join151 } from "path";
557401
+ import { dirname as dirname64, join as join150 } from "path";
557419
557402
  function getErrorsPath() {
557420
- return join151(CACHE_PATHS.errors(), DATE + ".jsonl");
557403
+ return join150(CACHE_PATHS.errors(), DATE + ".jsonl");
557421
557404
  }
557422
557405
  function getMCPLogsPath(serverName) {
557423
- return join151(CACHE_PATHS.mcpLogs(serverName), DATE + ".jsonl");
557406
+ return join150(CACHE_PATHS.mcpLogs(serverName), DATE + ".jsonl");
557424
557407
  }
557425
557408
  function createJsonlWriter(options) {
557426
557409
  const writer = createBufferedWriter(options);
@@ -557763,7 +557746,7 @@ var init_sessionMemory = __esm(() => {
557763
557746
  // src/utils/iTermBackup.ts
557764
557747
  import { copyFile as copyFile12, stat as stat49 } from "fs/promises";
557765
557748
  import { homedir as homedir39 } from "os";
557766
- import { join as join152 } from "path";
557749
+ import { join as join151 } from "path";
557767
557750
  function markITerm2SetupComplete() {
557768
557751
  saveGlobalConfig((current) => ({
557769
557752
  ...current,
@@ -557778,7 +557761,7 @@ function getIterm2RecoveryInfo() {
557778
557761
  };
557779
557762
  }
557780
557763
  function getITerm2PlistPath() {
557781
- return join152(homedir39(), "Library", "Preferences", "com.googlecode.iterm2.plist");
557764
+ return join151(homedir39(), "Library", "Preferences", "com.googlecode.iterm2.plist");
557782
557765
  }
557783
557766
  async function checkAndRestoreITerm2Backup() {
557784
557767
  const { inProgress, backupPath } = getIterm2RecoveryInfo();
@@ -561143,7 +561126,7 @@ var init_idleTimeout = __esm(() => {
561143
561126
  // src/bridge/inboundAttachments.ts
561144
561127
  import { randomUUID as randomUUID48 } from "crypto";
561145
561128
  import { mkdir as mkdir42, writeFile as writeFile46 } from "fs/promises";
561146
- import { basename as basename58, join as join153 } from "path";
561129
+ import { basename as basename58, join as join152 } from "path";
561147
561130
  function debug3(msg) {
561148
561131
  logForDebugging(`[bridge:inbound-attach] ${msg}`);
561149
561132
  }
@@ -561159,7 +561142,7 @@ function sanitizeFileName(name) {
561159
561142
  return base2 || "attachment";
561160
561143
  }
561161
561144
  function uploadsDir() {
561162
- return join153(getClaudeConfigHomeDir(), "uploads", getSessionId());
561145
+ return join152(getClaudeConfigHomeDir(), "uploads", getSessionId());
561163
561146
  }
561164
561147
  async function resolveOne(att) {
561165
561148
  const token = getBridgeAccessToken();
@@ -561188,7 +561171,7 @@ async function resolveOne(att) {
561188
561171
  const safeName = sanitizeFileName(att.file_name);
561189
561172
  const prefix = (att.file_uuid.slice(0, 8) || randomUUID48().slice(0, 8)).replace(/[^a-zA-Z0-9_-]/g, "_");
561190
561173
  const dir = uploadsDir();
561191
- const outPath = join153(dir, `${prefix}-${safeName}`);
561174
+ const outPath = join152(dir, `${prefix}-${safeName}`);
561192
561175
  try {
561193
561176
  await mkdir42(dir, { recursive: true });
561194
561177
  await writeFile46(outPath, data);
@@ -561288,7 +561271,7 @@ var init_sessionUrl = __esm(() => {
561288
561271
 
561289
561272
  // src/utils/plugins/zipCacheAdapters.ts
561290
561273
  import { readFile as readFile51 } from "fs/promises";
561291
- import { join as join154 } from "path";
561274
+ import { join as join153 } from "path";
561292
561275
  async function readZipCacheKnownMarketplaces() {
561293
561276
  try {
561294
561277
  const content = await readFile51(getZipCacheKnownMarketplacesPath(), "utf-8");
@@ -561313,13 +561296,13 @@ async function saveMarketplaceJsonToZipCache(marketplaceName, installLocation) {
561313
561296
  const content = await readMarketplaceJsonContent(installLocation);
561314
561297
  if (content !== null) {
561315
561298
  const relPath = getMarketplaceJsonRelativePath(marketplaceName);
561316
- await atomicWriteToZipCache(join154(zipCachePath, relPath), content);
561299
+ await atomicWriteToZipCache(join153(zipCachePath, relPath), content);
561317
561300
  }
561318
561301
  }
561319
561302
  async function readMarketplaceJsonContent(dir) {
561320
561303
  const candidates = [
561321
- join154(dir, ".claude-plugin", "marketplace.json"),
561322
- join154(dir, "marketplace.json"),
561304
+ join153(dir, ".claude-plugin", "marketplace.json"),
561305
+ join153(dir, "marketplace.json"),
561323
561306
  dir
561324
561307
  ];
561325
561308
  for (const candidate of candidates) {
@@ -561778,9 +561761,9 @@ __export(exports_bridgePointer, {
561778
561761
  BRIDGE_POINTER_TTL_MS: () => BRIDGE_POINTER_TTL_MS
561779
561762
  });
561780
561763
  import { mkdir as mkdir43, readFile as readFile52, stat as stat50, unlink as unlink22, writeFile as writeFile47 } from "fs/promises";
561781
- import { dirname as dirname65, join as join155 } from "path";
561764
+ import { dirname as dirname65, join as join154 } from "path";
561782
561765
  function getBridgePointerPath(dir) {
561783
- return join155(getProjectsDir(), sanitizePath2(dir), "bridge-pointer.json");
561766
+ return join154(getProjectsDir(), sanitizePath2(dir), "bridge-pointer.json");
561784
561767
  }
561785
561768
  async function writeBridgePointer(dir, pointer) {
561786
561769
  const path24 = getBridgePointerPath(dir);
@@ -567717,14 +567700,14 @@ __export(exports_claudeDesktop, {
567717
567700
  });
567718
567701
  import { readdir as readdir30, readFile as readFile54, stat as stat52 } from "fs/promises";
567719
567702
  import { homedir as homedir40 } from "os";
567720
- import { join as join156 } from "path";
567703
+ import { join as join155 } from "path";
567721
567704
  async function getClaudeDesktopConfigPath() {
567722
567705
  const platform6 = getPlatform();
567723
567706
  if (!SUPPORTED_PLATFORMS.includes(platform6)) {
567724
567707
  throw new Error(`Unsupported platform: ${platform6} - Claude Desktop integration only works on macOS and WSL.`);
567725
567708
  }
567726
567709
  if (platform6 === "macos") {
567727
- return join156(homedir40(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
567710
+ return join155(homedir40(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
567728
567711
  }
567729
567712
  const windowsHome = process.env.USERPROFILE ? process.env.USERPROFILE.replace(/\\/g, "/") : null;
567730
567713
  if (windowsHome) {
@@ -567743,7 +567726,7 @@ async function getClaudeDesktopConfigPath() {
567743
567726
  if (user.name === "Public" || user.name === "Default" || user.name === "Default User" || user.name === "All Users") {
567744
567727
  continue;
567745
567728
  }
567746
- const potentialConfigPath = join156(usersDir, user.name, "AppData", "Roaming", "Claude", "claude_desktop_config.json");
567729
+ const potentialConfigPath = join155(usersDir, user.name, "AppData", "Roaming", "Claude", "claude_desktop_config.json");
567747
567730
  try {
567748
567731
  await stat52(potentialConfigPath);
567749
567732
  return potentialConfigPath;
@@ -568652,12 +568635,12 @@ __export(exports_install, {
568652
568635
  install: () => install
568653
568636
  });
568654
568637
  import { homedir as homedir41 } from "node:os";
568655
- import { join as join157 } from "node:path";
568638
+ import { join as join156 } from "node:path";
568656
568639
  function getInstallationPath2() {
568657
568640
  const isWindows2 = env4.platform === "win32";
568658
568641
  const homeDir = homedir41();
568659
568642
  if (isWindows2) {
568660
- const windowsPath = join157(homeDir, ".local", "bin", "claude.exe");
568643
+ const windowsPath = join156(homeDir, ".local", "bin", "claude.exe");
568661
568644
  return windowsPath.replace(/\//g, "\\");
568662
568645
  }
568663
568646
  return "~/.local/bin/claude";
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.34",
8
- BUILD_TIME: "2026-06-23T13:19:31.986Z",
7
+ VERSION: "0.1.35",
8
+ BUILD_TIME: "2026-06-23T13:24:08.880Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -554539,34 +554539,18 @@ var init_codegraphCheck = __esm(() => {
554539
554539
  });
554540
554540
 
554541
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
554542
  async function ensureEccMarketplaceRegistered() {
554548
- const fs12 = getFsImplementation();
554549
- const configFile = getKnownMarketplacesFile2();
554550
554543
  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"
554544
+ const existing = await loadKnownMarketplacesConfig();
554545
+ if (existing["ecc"]) {
554546
+ logForDebugging("ECC marketplace already registered, skipping");
554547
+ return true;
554548
+ }
554549
+ const result = await addMarketplaceSource({
554550
+ source: "git",
554551
+ url: ECC_MARKETPLACE_URL
554568
554552
  });
554569
- logForDebugging("Registered ECC marketplace in known_marketplaces.json");
554553
+ logForDebugging(`ECC marketplace registered as '${result.name}' (materialized: ${!result.alreadyMaterialized})`);
554570
554554
  return true;
554571
554555
  } catch (error49) {
554572
554556
  logForDebugging(`Failed to register ECC marketplace: ${error49}`, {
@@ -554577,9 +554561,8 @@ async function ensureEccMarketplaceRegistered() {
554577
554561
  }
554578
554562
  var ECC_MARKETPLACE_URL = "https://github.com/affaan-m/ECC.git";
554579
554563
  var init_eccMarketplace = __esm(() => {
554580
- init_fsOperations();
554581
554564
  init_debug();
554582
- init_slowOperations();
554565
+ init_marketplaceManager();
554583
554566
  });
554584
554567
 
554585
554568
  // src/plugins/bundled/index.ts
@@ -557415,12 +557398,12 @@ var init_createDirectConnectSession = __esm(() => {
557415
557398
  });
557416
557399
 
557417
557400
  // src/utils/errorLogSink.ts
557418
- import { dirname as dirname64, join as join151 } from "path";
557401
+ import { dirname as dirname64, join as join150 } from "path";
557419
557402
  function getErrorsPath() {
557420
- return join151(CACHE_PATHS.errors(), DATE + ".jsonl");
557403
+ return join150(CACHE_PATHS.errors(), DATE + ".jsonl");
557421
557404
  }
557422
557405
  function getMCPLogsPath(serverName) {
557423
- return join151(CACHE_PATHS.mcpLogs(serverName), DATE + ".jsonl");
557406
+ return join150(CACHE_PATHS.mcpLogs(serverName), DATE + ".jsonl");
557424
557407
  }
557425
557408
  function createJsonlWriter(options) {
557426
557409
  const writer = createBufferedWriter(options);
@@ -557763,7 +557746,7 @@ var init_sessionMemory = __esm(() => {
557763
557746
  // src/utils/iTermBackup.ts
557764
557747
  import { copyFile as copyFile12, stat as stat49 } from "fs/promises";
557765
557748
  import { homedir as homedir39 } from "os";
557766
- import { join as join152 } from "path";
557749
+ import { join as join151 } from "path";
557767
557750
  function markITerm2SetupComplete() {
557768
557751
  saveGlobalConfig((current) => ({
557769
557752
  ...current,
@@ -557778,7 +557761,7 @@ function getIterm2RecoveryInfo() {
557778
557761
  };
557779
557762
  }
557780
557763
  function getITerm2PlistPath() {
557781
- return join152(homedir39(), "Library", "Preferences", "com.googlecode.iterm2.plist");
557764
+ return join151(homedir39(), "Library", "Preferences", "com.googlecode.iterm2.plist");
557782
557765
  }
557783
557766
  async function checkAndRestoreITerm2Backup() {
557784
557767
  const { inProgress, backupPath } = getIterm2RecoveryInfo();
@@ -561143,7 +561126,7 @@ var init_idleTimeout = __esm(() => {
561143
561126
  // src/bridge/inboundAttachments.ts
561144
561127
  import { randomUUID as randomUUID48 } from "crypto";
561145
561128
  import { mkdir as mkdir42, writeFile as writeFile46 } from "fs/promises";
561146
- import { basename as basename58, join as join153 } from "path";
561129
+ import { basename as basename58, join as join152 } from "path";
561147
561130
  function debug3(msg) {
561148
561131
  logForDebugging(`[bridge:inbound-attach] ${msg}`);
561149
561132
  }
@@ -561159,7 +561142,7 @@ function sanitizeFileName(name) {
561159
561142
  return base2 || "attachment";
561160
561143
  }
561161
561144
  function uploadsDir() {
561162
- return join153(getClaudeConfigHomeDir(), "uploads", getSessionId());
561145
+ return join152(getClaudeConfigHomeDir(), "uploads", getSessionId());
561163
561146
  }
561164
561147
  async function resolveOne(att) {
561165
561148
  const token = getBridgeAccessToken();
@@ -561188,7 +561171,7 @@ async function resolveOne(att) {
561188
561171
  const safeName = sanitizeFileName(att.file_name);
561189
561172
  const prefix = (att.file_uuid.slice(0, 8) || randomUUID48().slice(0, 8)).replace(/[^a-zA-Z0-9_-]/g, "_");
561190
561173
  const dir = uploadsDir();
561191
- const outPath = join153(dir, `${prefix}-${safeName}`);
561174
+ const outPath = join152(dir, `${prefix}-${safeName}`);
561192
561175
  try {
561193
561176
  await mkdir42(dir, { recursive: true });
561194
561177
  await writeFile46(outPath, data);
@@ -561288,7 +561271,7 @@ var init_sessionUrl = __esm(() => {
561288
561271
 
561289
561272
  // src/utils/plugins/zipCacheAdapters.ts
561290
561273
  import { readFile as readFile51 } from "fs/promises";
561291
- import { join as join154 } from "path";
561274
+ import { join as join153 } from "path";
561292
561275
  async function readZipCacheKnownMarketplaces() {
561293
561276
  try {
561294
561277
  const content = await readFile51(getZipCacheKnownMarketplacesPath(), "utf-8");
@@ -561313,13 +561296,13 @@ async function saveMarketplaceJsonToZipCache(marketplaceName, installLocation) {
561313
561296
  const content = await readMarketplaceJsonContent(installLocation);
561314
561297
  if (content !== null) {
561315
561298
  const relPath = getMarketplaceJsonRelativePath(marketplaceName);
561316
- await atomicWriteToZipCache(join154(zipCachePath, relPath), content);
561299
+ await atomicWriteToZipCache(join153(zipCachePath, relPath), content);
561317
561300
  }
561318
561301
  }
561319
561302
  async function readMarketplaceJsonContent(dir) {
561320
561303
  const candidates = [
561321
- join154(dir, ".claude-plugin", "marketplace.json"),
561322
- join154(dir, "marketplace.json"),
561304
+ join153(dir, ".claude-plugin", "marketplace.json"),
561305
+ join153(dir, "marketplace.json"),
561323
561306
  dir
561324
561307
  ];
561325
561308
  for (const candidate of candidates) {
@@ -561778,9 +561761,9 @@ __export(exports_bridgePointer, {
561778
561761
  BRIDGE_POINTER_TTL_MS: () => BRIDGE_POINTER_TTL_MS
561779
561762
  });
561780
561763
  import { mkdir as mkdir43, readFile as readFile52, stat as stat50, unlink as unlink22, writeFile as writeFile47 } from "fs/promises";
561781
- import { dirname as dirname65, join as join155 } from "path";
561764
+ import { dirname as dirname65, join as join154 } from "path";
561782
561765
  function getBridgePointerPath(dir) {
561783
- return join155(getProjectsDir(), sanitizePath2(dir), "bridge-pointer.json");
561766
+ return join154(getProjectsDir(), sanitizePath2(dir), "bridge-pointer.json");
561784
561767
  }
561785
561768
  async function writeBridgePointer(dir, pointer) {
561786
561769
  const path24 = getBridgePointerPath(dir);
@@ -567717,14 +567700,14 @@ __export(exports_claudeDesktop, {
567717
567700
  });
567718
567701
  import { readdir as readdir30, readFile as readFile54, stat as stat52 } from "fs/promises";
567719
567702
  import { homedir as homedir40 } from "os";
567720
- import { join as join156 } from "path";
567703
+ import { join as join155 } from "path";
567721
567704
  async function getClaudeDesktopConfigPath() {
567722
567705
  const platform6 = getPlatform();
567723
567706
  if (!SUPPORTED_PLATFORMS.includes(platform6)) {
567724
567707
  throw new Error(`Unsupported platform: ${platform6} - Claude Desktop integration only works on macOS and WSL.`);
567725
567708
  }
567726
567709
  if (platform6 === "macos") {
567727
- return join156(homedir40(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
567710
+ return join155(homedir40(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
567728
567711
  }
567729
567712
  const windowsHome = process.env.USERPROFILE ? process.env.USERPROFILE.replace(/\\/g, "/") : null;
567730
567713
  if (windowsHome) {
@@ -567743,7 +567726,7 @@ async function getClaudeDesktopConfigPath() {
567743
567726
  if (user.name === "Public" || user.name === "Default" || user.name === "Default User" || user.name === "All Users") {
567744
567727
  continue;
567745
567728
  }
567746
- const potentialConfigPath = join156(usersDir, user.name, "AppData", "Roaming", "Claude", "claude_desktop_config.json");
567729
+ const potentialConfigPath = join155(usersDir, user.name, "AppData", "Roaming", "Claude", "claude_desktop_config.json");
567747
567730
  try {
567748
567731
  await stat52(potentialConfigPath);
567749
567732
  return potentialConfigPath;
@@ -568652,12 +568635,12 @@ __export(exports_install, {
568652
568635
  install: () => install
568653
568636
  });
568654
568637
  import { homedir as homedir41 } from "node:os";
568655
- import { join as join157 } from "node:path";
568638
+ import { join as join156 } from "node:path";
568656
568639
  function getInstallationPath2() {
568657
568640
  const isWindows2 = env4.platform === "win32";
568658
568641
  const homeDir = homedir41();
568659
568642
  if (isWindows2) {
568660
- const windowsPath = join157(homeDir, ".local", "bin", "claude.exe");
568643
+ const windowsPath = join156(homeDir, ".local", "bin", "claude.exe");
568661
568644
  return windowsPath.replace(/\//g, "\\");
568662
568645
  }
568663
568646
  return "~/.local/bin/claude";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funnycode/myclaude",
3
- "version": "0.1.34",
3
+ "version": "0.1.35",
4
4
  "private": false,
5
5
  "description": "An open-source AI coding assistant in your terminal - powered by Claude",
6
6
  "license": "MIT",