@funnycode/myclaude 0.1.34 → 0.1.36

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,17 +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.
231
-
232
- ```bash
233
- # Browse available ECC plugins
234
- /plugin
235
-
236
- # Install a plugin from ECC marketplace
237
- /plugin install <plugin-name>@ecc
238
- ```
228
+ [ECC](https://github.com/affaan-m/ECC) is a cross-harness agent ecosystem with 200+ skills, agents, hooks, rules, and MCP servers. **Built-in out of the box** — all ECC plugins are auto-installed on first startup, no manual setup needed. Skills, agents, and commands are immediately available via `/` commands.
239
229
 
240
230
  ---
241
231
 
@@ -321,18 +311,6 @@ src/
321
311
 
322
312
  ---
323
313
 
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
314
  ## Contributing
337
315
 
338
316
  Pull requests are welcome!
package/README.zh-CN.md CHANGED
@@ -246,17 +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 已预注册为市场源,无需手动添加。
252
-
253
- ```bash
254
- # 浏览可用的 ECC 插件
255
- /plugin
256
-
257
- # 从 ECC 市场安装插件
258
- /plugin install <插件名>@ecc
259
- ```
249
+ [ECC](https://github.com/affaan-m/ECC) 是一个跨 harness 的代理生态系统,包含 200+ 技能、代理、hooks、规则和 MCP 服务器。**开箱即用** — 首次启动时自动安装所有 ECC 插件,无需手动配置。技能、代理和命令立即通过 `/` 命令可用。
260
250
 
261
251
  ---
262
252
 
@@ -316,18 +306,6 @@ src/
316
306
 
317
307
  ---
318
308
 
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
309
  ## 贡献
332
310
 
333
311
  欢迎提交 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.36",
8
+ BUILD_TIME: "2026-06-23T13:32:30.386Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -554538,78 +554538,6 @@ var init_codegraphCheck = __esm(() => {
554538
554538
  init_execFileNoThrow();
554539
554539
  });
554540
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
-
554585
- // src/plugins/bundled/index.ts
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
- });
554612
-
554613
554541
  // src/services/plugins/pluginCliCommands.ts
554614
554542
  function handlePluginCommandError(error49, command8, plugin2) {
554615
554543
  logError2(error49);
@@ -554770,6 +554698,96 @@ var init_pluginCliCommands = __esm(() => {
554770
554698
  init_pluginOperations();
554771
554699
  });
554772
554700
 
554701
+ // src/plugins/bundled/eccMarketplace.ts
554702
+ import { join as join150 } from "path";
554703
+ import { readFile as readFile51 } from "fs/promises";
554704
+ async function ensureEccMarketplaceRegistered() {
554705
+ try {
554706
+ const result = await addMarketplaceSource({
554707
+ source: "git",
554708
+ url: ECC_MARKETPLACE_URL
554709
+ });
554710
+ const eccName = result.name;
554711
+ logForDebugging(`ECC marketplace registered as '${eccName}' (materialized: ${!result.alreadyMaterialized})`);
554712
+ await installEccPlugins(eccName);
554713
+ return true;
554714
+ } catch (error49) {
554715
+ logForDebugging(`Failed to register ECC marketplace: ${error49}`, {
554716
+ level: "warn"
554717
+ });
554718
+ return false;
554719
+ }
554720
+ }
554721
+ async function installEccPlugins(marketplaceName) {
554722
+ try {
554723
+ const cacheDir = getMarketplacesCacheDir();
554724
+ const marketplaceDir = join150(cacheDir, marketplaceName);
554725
+ const marketplaceJsonPath = join150(marketplaceDir, ".claude-plugin", "marketplace.json");
554726
+ let marketplaceData;
554727
+ try {
554728
+ const content = await readFile51(marketplaceJsonPath, "utf-8");
554729
+ marketplaceData = JSON.parse(content);
554730
+ } catch {
554731
+ logForDebugging("ECC marketplace.json not found yet, skipping auto-install");
554732
+ return;
554733
+ }
554734
+ const plugins = marketplaceData?.plugins ?? [];
554735
+ if (plugins.length === 0) {
554736
+ logForDebugging("No plugins found in ECC marketplace");
554737
+ return;
554738
+ }
554739
+ let installed = 0;
554740
+ for (const plugin2 of plugins) {
554741
+ try {
554742
+ const pluginId = `${plugin2.name}@${marketplaceName}`;
554743
+ await installPlugin(pluginId, "user");
554744
+ installed++;
554745
+ } catch (pluginError) {
554746
+ logForDebugging(`Failed to auto-install ECC plugin '${plugin2.name}': ${pluginError}`, { level: "warn" });
554747
+ }
554748
+ }
554749
+ logForDebugging(`Auto-installed ${installed}/${plugins.length} ECC plugins`);
554750
+ } catch (error49) {
554751
+ logForDebugging(`Failed to auto-install ECC plugins: ${error49}`, {
554752
+ level: "warn"
554753
+ });
554754
+ }
554755
+ }
554756
+ var ECC_MARKETPLACE_URL = "https://github.com/affaan-m/ECC.git";
554757
+ var init_eccMarketplace = __esm(() => {
554758
+ init_debug();
554759
+ init_marketplaceManager();
554760
+ init_pluginCliCommands();
554761
+ });
554762
+
554763
+ // src/plugins/bundled/index.ts
554764
+ function initBuiltinPlugins() {
554765
+ registerBuiltinPlugin({
554766
+ name: "codegraph",
554767
+ description: "Semantic code intelligence — surgical context, fewer tool calls",
554768
+ version: "1.0.0",
554769
+ defaultEnabled: false,
554770
+ isAvailable: () => {
554771
+ isCodeGraphInstalled().catch(() => {});
554772
+ return false;
554773
+ },
554774
+ mcpServers: {
554775
+ codegraph: {
554776
+ command: "codegraph",
554777
+ args: ["mcp"]
554778
+ }
554779
+ }
554780
+ });
554781
+ }
554782
+ async function initSeedMarketplaces() {
554783
+ await ensureEccMarketplaceRegistered();
554784
+ }
554785
+ var init_bundled = __esm(() => {
554786
+ init_builtinPlugins();
554787
+ init_codegraphCheck();
554788
+ init_eccMarketplace();
554789
+ });
554790
+
554773
554791
  // src/skills/bundled/batch.ts
554774
554792
  function buildPrompt(instruction) {
554775
554793
  return `# Batch: Parallel Work Orchestration
@@ -561287,11 +561305,11 @@ var init_sessionUrl = __esm(() => {
561287
561305
  });
561288
561306
 
561289
561307
  // src/utils/plugins/zipCacheAdapters.ts
561290
- import { readFile as readFile51 } from "fs/promises";
561308
+ import { readFile as readFile52 } from "fs/promises";
561291
561309
  import { join as join154 } from "path";
561292
561310
  async function readZipCacheKnownMarketplaces() {
561293
561311
  try {
561294
- const content = await readFile51(getZipCacheKnownMarketplacesPath(), "utf-8");
561312
+ const content = await readFile52(getZipCacheKnownMarketplacesPath(), "utf-8");
561295
561313
  const parsed = KnownMarketplacesFileSchema().safeParse(jsonParse(content));
561296
561314
  if (!parsed.success) {
561297
561315
  logForDebugging(`Invalid known_marketplaces.json in zip cache: ${parsed.error.message}`, { level: "error" });
@@ -561324,7 +561342,7 @@ async function readMarketplaceJsonContent(dir) {
561324
561342
  ];
561325
561343
  for (const candidate of candidates) {
561326
561344
  try {
561327
- return await readFile51(candidate, "utf-8");
561345
+ return await readFile52(candidate, "utf-8");
561328
561346
  } catch {}
561329
561347
  }
561330
561348
  return null;
@@ -561777,7 +561795,7 @@ __export(exports_bridgePointer, {
561777
561795
  clearBridgePointer: () => clearBridgePointer,
561778
561796
  BRIDGE_POINTER_TTL_MS: () => BRIDGE_POINTER_TTL_MS
561779
561797
  });
561780
- import { mkdir as mkdir43, readFile as readFile52, stat as stat50, unlink as unlink22, writeFile as writeFile47 } from "fs/promises";
561798
+ import { mkdir as mkdir43, readFile as readFile53, stat as stat50, unlink as unlink22, writeFile as writeFile47 } from "fs/promises";
561781
561799
  import { dirname as dirname65, join as join155 } from "path";
561782
561800
  function getBridgePointerPath(dir) {
561783
561801
  return join155(getProjectsDir(), sanitizePath2(dir), "bridge-pointer.json");
@@ -561798,7 +561816,7 @@ async function readBridgePointer(dir) {
561798
561816
  let mtimeMs;
561799
561817
  try {
561800
561818
  mtimeMs = (await stat50(path24)).mtimeMs;
561801
- raw = await readFile52(path24, "utf8");
561819
+ raw = await readFile53(path24, "utf8");
561802
561820
  } catch {
561803
561821
  return null;
561804
561822
  }
@@ -563787,7 +563805,7 @@ __export(exports_print, {
563787
563805
  createCanUseToolWithPermissionPrompt: () => createCanUseToolWithPermissionPrompt,
563788
563806
  canBatchWith: () => canBatchWith
563789
563807
  });
563790
- import { readFile as readFile53, stat as stat51 } from "fs/promises";
563808
+ import { readFile as readFile54, stat as stat51 } from "fs/promises";
563791
563809
  import { dirname as dirname66 } from "path";
563792
563810
  import { cwd as cwd2 } from "process";
563793
563811
  import { randomUUID as randomUUID51 } from "crypto";
@@ -565137,7 +565155,7 @@ ${m2.text}
565137
565155
  const normalizedPath = expandPath(message.request.path);
565138
565156
  const diskMtime = Math.floor((await stat51(normalizedPath)).mtimeMs);
565139
565157
  if (diskMtime <= message.request.mtime) {
565140
- const raw = await readFile53(normalizedPath, "utf-8");
565158
+ const raw = await readFile54(normalizedPath, "utf-8");
565141
565159
  const content = (raw.charCodeAt(0) === 65279 ? raw.slice(1) : raw).replaceAll(`\r
565142
565160
  `, `
565143
565161
  `);
@@ -567715,7 +567733,7 @@ __export(exports_claudeDesktop, {
567715
567733
  readClaudeDesktopMcpServers: () => readClaudeDesktopMcpServers,
567716
567734
  getClaudeDesktopConfigPath: () => getClaudeDesktopConfigPath
567717
567735
  });
567718
- import { readdir as readdir30, readFile as readFile54, stat as stat52 } from "fs/promises";
567736
+ import { readdir as readdir30, readFile as readFile55, stat as stat52 } from "fs/promises";
567719
567737
  import { homedir as homedir40 } from "os";
567720
567738
  import { join as join156 } from "path";
567721
567739
  async function getClaudeDesktopConfigPath() {
@@ -567763,7 +567781,7 @@ async function readClaudeDesktopMcpServers() {
567763
567781
  const configPath = await getClaudeDesktopConfigPath();
567764
567782
  let configContent;
567765
567783
  try {
567766
- configContent = await readFile54(configPath, { encoding: "utf8" });
567784
+ configContent = await readFile55(configPath, { encoding: "utf8" });
567767
567785
  } catch (e) {
567768
567786
  const code = getErrnoCode(e);
567769
567787
  if (code === "ENOENT") {
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.36",
8
+ BUILD_TIME: "2026-06-23T13:32:30.386Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -554538,78 +554538,6 @@ var init_codegraphCheck = __esm(() => {
554538
554538
  init_execFileNoThrow();
554539
554539
  });
554540
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
-
554585
- // src/plugins/bundled/index.ts
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
- });
554612
-
554613
554541
  // src/services/plugins/pluginCliCommands.ts
554614
554542
  function handlePluginCommandError(error49, command8, plugin2) {
554615
554543
  logError2(error49);
@@ -554770,6 +554698,96 @@ var init_pluginCliCommands = __esm(() => {
554770
554698
  init_pluginOperations();
554771
554699
  });
554772
554700
 
554701
+ // src/plugins/bundled/eccMarketplace.ts
554702
+ import { join as join150 } from "path";
554703
+ import { readFile as readFile51 } from "fs/promises";
554704
+ async function ensureEccMarketplaceRegistered() {
554705
+ try {
554706
+ const result = await addMarketplaceSource({
554707
+ source: "git",
554708
+ url: ECC_MARKETPLACE_URL
554709
+ });
554710
+ const eccName = result.name;
554711
+ logForDebugging(`ECC marketplace registered as '${eccName}' (materialized: ${!result.alreadyMaterialized})`);
554712
+ await installEccPlugins(eccName);
554713
+ return true;
554714
+ } catch (error49) {
554715
+ logForDebugging(`Failed to register ECC marketplace: ${error49}`, {
554716
+ level: "warn"
554717
+ });
554718
+ return false;
554719
+ }
554720
+ }
554721
+ async function installEccPlugins(marketplaceName) {
554722
+ try {
554723
+ const cacheDir = getMarketplacesCacheDir();
554724
+ const marketplaceDir = join150(cacheDir, marketplaceName);
554725
+ const marketplaceJsonPath = join150(marketplaceDir, ".claude-plugin", "marketplace.json");
554726
+ let marketplaceData;
554727
+ try {
554728
+ const content = await readFile51(marketplaceJsonPath, "utf-8");
554729
+ marketplaceData = JSON.parse(content);
554730
+ } catch {
554731
+ logForDebugging("ECC marketplace.json not found yet, skipping auto-install");
554732
+ return;
554733
+ }
554734
+ const plugins = marketplaceData?.plugins ?? [];
554735
+ if (plugins.length === 0) {
554736
+ logForDebugging("No plugins found in ECC marketplace");
554737
+ return;
554738
+ }
554739
+ let installed = 0;
554740
+ for (const plugin2 of plugins) {
554741
+ try {
554742
+ const pluginId = `${plugin2.name}@${marketplaceName}`;
554743
+ await installPlugin(pluginId, "user");
554744
+ installed++;
554745
+ } catch (pluginError) {
554746
+ logForDebugging(`Failed to auto-install ECC plugin '${plugin2.name}': ${pluginError}`, { level: "warn" });
554747
+ }
554748
+ }
554749
+ logForDebugging(`Auto-installed ${installed}/${plugins.length} ECC plugins`);
554750
+ } catch (error49) {
554751
+ logForDebugging(`Failed to auto-install ECC plugins: ${error49}`, {
554752
+ level: "warn"
554753
+ });
554754
+ }
554755
+ }
554756
+ var ECC_MARKETPLACE_URL = "https://github.com/affaan-m/ECC.git";
554757
+ var init_eccMarketplace = __esm(() => {
554758
+ init_debug();
554759
+ init_marketplaceManager();
554760
+ init_pluginCliCommands();
554761
+ });
554762
+
554763
+ // src/plugins/bundled/index.ts
554764
+ function initBuiltinPlugins() {
554765
+ registerBuiltinPlugin({
554766
+ name: "codegraph",
554767
+ description: "Semantic code intelligence — surgical context, fewer tool calls",
554768
+ version: "1.0.0",
554769
+ defaultEnabled: false,
554770
+ isAvailable: () => {
554771
+ isCodeGraphInstalled().catch(() => {});
554772
+ return false;
554773
+ },
554774
+ mcpServers: {
554775
+ codegraph: {
554776
+ command: "codegraph",
554777
+ args: ["mcp"]
554778
+ }
554779
+ }
554780
+ });
554781
+ }
554782
+ async function initSeedMarketplaces() {
554783
+ await ensureEccMarketplaceRegistered();
554784
+ }
554785
+ var init_bundled = __esm(() => {
554786
+ init_builtinPlugins();
554787
+ init_codegraphCheck();
554788
+ init_eccMarketplace();
554789
+ });
554790
+
554773
554791
  // src/skills/bundled/batch.ts
554774
554792
  function buildPrompt(instruction) {
554775
554793
  return `# Batch: Parallel Work Orchestration
@@ -561287,11 +561305,11 @@ var init_sessionUrl = __esm(() => {
561287
561305
  });
561288
561306
 
561289
561307
  // src/utils/plugins/zipCacheAdapters.ts
561290
- import { readFile as readFile51 } from "fs/promises";
561308
+ import { readFile as readFile52 } from "fs/promises";
561291
561309
  import { join as join154 } from "path";
561292
561310
  async function readZipCacheKnownMarketplaces() {
561293
561311
  try {
561294
- const content = await readFile51(getZipCacheKnownMarketplacesPath(), "utf-8");
561312
+ const content = await readFile52(getZipCacheKnownMarketplacesPath(), "utf-8");
561295
561313
  const parsed = KnownMarketplacesFileSchema().safeParse(jsonParse(content));
561296
561314
  if (!parsed.success) {
561297
561315
  logForDebugging(`Invalid known_marketplaces.json in zip cache: ${parsed.error.message}`, { level: "error" });
@@ -561324,7 +561342,7 @@ async function readMarketplaceJsonContent(dir) {
561324
561342
  ];
561325
561343
  for (const candidate of candidates) {
561326
561344
  try {
561327
- return await readFile51(candidate, "utf-8");
561345
+ return await readFile52(candidate, "utf-8");
561328
561346
  } catch {}
561329
561347
  }
561330
561348
  return null;
@@ -561777,7 +561795,7 @@ __export(exports_bridgePointer, {
561777
561795
  clearBridgePointer: () => clearBridgePointer,
561778
561796
  BRIDGE_POINTER_TTL_MS: () => BRIDGE_POINTER_TTL_MS
561779
561797
  });
561780
- import { mkdir as mkdir43, readFile as readFile52, stat as stat50, unlink as unlink22, writeFile as writeFile47 } from "fs/promises";
561798
+ import { mkdir as mkdir43, readFile as readFile53, stat as stat50, unlink as unlink22, writeFile as writeFile47 } from "fs/promises";
561781
561799
  import { dirname as dirname65, join as join155 } from "path";
561782
561800
  function getBridgePointerPath(dir) {
561783
561801
  return join155(getProjectsDir(), sanitizePath2(dir), "bridge-pointer.json");
@@ -561798,7 +561816,7 @@ async function readBridgePointer(dir) {
561798
561816
  let mtimeMs;
561799
561817
  try {
561800
561818
  mtimeMs = (await stat50(path24)).mtimeMs;
561801
- raw = await readFile52(path24, "utf8");
561819
+ raw = await readFile53(path24, "utf8");
561802
561820
  } catch {
561803
561821
  return null;
561804
561822
  }
@@ -563787,7 +563805,7 @@ __export(exports_print, {
563787
563805
  createCanUseToolWithPermissionPrompt: () => createCanUseToolWithPermissionPrompt,
563788
563806
  canBatchWith: () => canBatchWith
563789
563807
  });
563790
- import { readFile as readFile53, stat as stat51 } from "fs/promises";
563808
+ import { readFile as readFile54, stat as stat51 } from "fs/promises";
563791
563809
  import { dirname as dirname66 } from "path";
563792
563810
  import { cwd as cwd2 } from "process";
563793
563811
  import { randomUUID as randomUUID51 } from "crypto";
@@ -565137,7 +565155,7 @@ ${m2.text}
565137
565155
  const normalizedPath = expandPath(message.request.path);
565138
565156
  const diskMtime = Math.floor((await stat51(normalizedPath)).mtimeMs);
565139
565157
  if (diskMtime <= message.request.mtime) {
565140
- const raw = await readFile53(normalizedPath, "utf-8");
565158
+ const raw = await readFile54(normalizedPath, "utf-8");
565141
565159
  const content = (raw.charCodeAt(0) === 65279 ? raw.slice(1) : raw).replaceAll(`\r
565142
565160
  `, `
565143
565161
  `);
@@ -567715,7 +567733,7 @@ __export(exports_claudeDesktop, {
567715
567733
  readClaudeDesktopMcpServers: () => readClaudeDesktopMcpServers,
567716
567734
  getClaudeDesktopConfigPath: () => getClaudeDesktopConfigPath
567717
567735
  });
567718
- import { readdir as readdir30, readFile as readFile54, stat as stat52 } from "fs/promises";
567736
+ import { readdir as readdir30, readFile as readFile55, stat as stat52 } from "fs/promises";
567719
567737
  import { homedir as homedir40 } from "os";
567720
567738
  import { join as join156 } from "path";
567721
567739
  async function getClaudeDesktopConfigPath() {
@@ -567763,7 +567781,7 @@ async function readClaudeDesktopMcpServers() {
567763
567781
  const configPath = await getClaudeDesktopConfigPath();
567764
567782
  let configContent;
567765
567783
  try {
567766
- configContent = await readFile54(configPath, { encoding: "utf8" });
567784
+ configContent = await readFile55(configPath, { encoding: "utf8" });
567767
567785
  } catch (e) {
567768
567786
  const code = getErrnoCode(e);
567769
567787
  if (code === "ENOENT") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funnycode/myclaude",
3
- "version": "0.1.34",
3
+ "version": "0.1.36",
4
4
  "private": false,
5
5
  "description": "An open-source AI coding assistant in your terminal - powered by Claude",
6
6
  "license": "MIT",