@funnycode/myclaude 0.1.177 → 0.1.178

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 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.177",
8
- BUILD_TIME: "2026-08-01T22:39:23.874Z",
7
+ VERSION: "0.1.178",
8
+ BUILD_TIME: "2026-08-02T10:38:45.889Z",
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.177",
119950
+ version: "0.1.178",
119951
119951
  private: false,
119952
119952
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
119953
119953
  license: "MIT",
@@ -410151,8 +410151,8 @@ function isInputModeCharacter(input) {
410151
410151
  }
410152
410152
 
410153
410153
  // src/projectOnboardingState.ts
410154
- import { join as join105, resolve as resolve44, basename as basename37 } from "path";
410155
- function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410154
+ import { join as join105, resolve as resolve44, basename as basename37, sep as pathSep2 } from "path";
410155
+ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath, maxDepth = 100) {
410156
410156
  const fs13 = getFsImplementation();
410157
410157
  if (!recursionStack) {
410158
410158
  recursionStack = [];
@@ -410163,14 +410163,9 @@ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410163
410163
  } catch (err2) {
410164
410164
  console.warn(`[getDirectoryFingerprint] Failed to resolve real path for '${dirPath}', using original path: ${err2}`);
410165
410165
  try {
410166
- const lstat7 = fs13.lstatSync(dirPath);
410167
- if (lstat7.isSymbolicLink()) {
410168
- const linkTarget = fs13.readlinkSync(dirPath);
410169
- const resolvedTarget = resolve44(dirPath, linkTarget);
410170
- currentRealPath = resolvedTarget;
410171
- } else {
410172
- currentRealPath = dirPath;
410173
- }
410166
+ const linkTarget = fs13.readlinkSync(dirPath);
410167
+ const resolvedTarget = resolve44(dirPath, linkTarget);
410168
+ currentRealPath = resolvedTarget;
410174
410169
  } catch {
410175
410170
  currentRealPath = dirPath;
410176
410171
  }
@@ -410179,6 +410174,11 @@ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410179
410174
  return "";
410180
410175
  }
410181
410176
  recursionStack.push(currentRealPath);
410177
+ if (recursionStack.length > maxDepth) {
410178
+ console.warn(`[getDirectoryFingerprint] Maximum recursion depth (${maxDepth}) exceeded for '${dirPath}'`);
410179
+ recursionStack.pop();
410180
+ return "";
410181
+ }
410182
410182
  if (rootRealPath === undefined) {
410183
410183
  rootRealPath = currentRealPath;
410184
410184
  }
@@ -410208,7 +410208,9 @@ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410208
410208
  console.warn(`[getDirectoryFingerprint] Failed to resolve target real path for symlink '${fullPath}': ${err2}`);
410209
410209
  targetRealPath = resolvedTarget;
410210
410210
  }
410211
- if (targetRealPath.startsWith(rootRealPath + "/") || targetRealPath === rootRealPath) {
410211
+ const targetLower = targetRealPath.toLowerCase();
410212
+ const rootLower = rootRealPath.toLowerCase();
410213
+ if (targetLower === rootLower || targetLower.startsWith(rootLower + pathSep2)) {
410212
410214
  const stat37 = fs13.statSync(resolvedTarget);
410213
410215
  if (stat37.isDirectory()) {
410214
410216
  const targetBasename = basename37(resolvedTarget);
@@ -410217,7 +410219,7 @@ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410217
410219
  continue;
410218
410220
  }
410219
410221
  fingerprintParts.push(entry + "/");
410220
- fingerprintParts.push(getDirectoryFingerprint(resolvedTarget, recursionStack, rootRealPath));
410222
+ fingerprintParts.push(getDirectoryFingerprint(resolvedTarget, recursionStack, rootRealPath, maxDepth));
410221
410223
  } else {
410222
410224
  fingerprintParts.push(entry);
410223
410225
  }
@@ -410233,7 +410235,7 @@ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410233
410235
  continue;
410234
410236
  }
410235
410237
  fingerprintParts.push(entry + "/");
410236
- fingerprintParts.push(getDirectoryFingerprint(fullPath, recursionStack, rootRealPath));
410238
+ fingerprintParts.push(getDirectoryFingerprint(fullPath, recursionStack, rootRealPath, maxDepth));
410237
410239
  } else {
410238
410240
  fingerprintParts.push(entry);
410239
410241
  }
@@ -487923,7 +487925,7 @@ var init_remember = __esm(() => {
487923
487925
  // src/skills/bundledSkills.ts
487924
487926
  import { constants as fsConstants5 } from "fs";
487925
487927
  import { mkdir as mkdir37, open as open14 } from "fs/promises";
487926
- import { dirname as dirname59, isAbsolute as isAbsolute28, join as join133, normalize as normalize13, sep as pathSep2 } from "path";
487928
+ import { dirname as dirname59, isAbsolute as isAbsolute28, join as join133, normalize as normalize13, sep as pathSep3 } from "path";
487927
487929
  function registerBundledSkill(definition) {
487928
487930
  const { files: files3 } = definition;
487929
487931
  let skillRoot;
@@ -488010,7 +488012,7 @@ async function safeWriteFile(p, content) {
488010
488012
  }
488011
488013
  function resolveSkillFilePath(baseDir, relPath) {
488012
488014
  const normalized = normalize13(relPath);
488013
- if (isAbsolute28(normalized) || normalized.split(pathSep2).includes("..") || normalized.split("/").includes("..")) {
488015
+ if (isAbsolute28(normalized) || normalized.split(pathSep3).includes("..") || normalized.split("/").includes("..")) {
488014
488016
  throw new Error(`bundled skill file path escapes skill dir: ${relPath}`);
488015
488017
  }
488016
488018
  return join133(baseDir, normalized);
@@ -566766,7 +566768,7 @@ function migrateReplBridgeEnabledToRemoteControlAtStartup() {
566766
566768
  return prev;
566767
566769
  if (prev.remoteControlAtStartup !== undefined)
566768
566770
  return prev;
566769
- const newValue = typeof oldValue === "string" ? oldValue === "true" : Boolean(oldValue);
566771
+ const newValue = typeof oldValue === "string" ? !["false", "0", "no", ""].includes(oldValue.toLowerCase().trim()) : Boolean(oldValue);
566770
566772
  return { ...prev, remoteControlAtStartup: newValue };
566771
566773
  });
566772
566774
  saveGlobalConfig((prev) => {
@@ -566774,7 +566776,7 @@ function migrateReplBridgeEnabledToRemoteControlAtStartup() {
566774
566776
  if (oldValue === undefined)
566775
566777
  return prev;
566776
566778
  if (prev.remoteControlAtStartup === undefined) {
566777
- const newValue = typeof oldValue === "string" ? oldValue === "true" : Boolean(oldValue);
566779
+ const newValue = typeof oldValue === "string" ? !["false", "0", "no", ""].includes(oldValue.toLowerCase().trim()) : Boolean(oldValue);
566778
566780
  return {
566779
566781
  ...prev,
566780
566782
  remoteControlAtStartup: newValue,
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.177",
8
- BUILD_TIME: "2026-08-01T22:39:23.874Z",
7
+ VERSION: "0.1.178",
8
+ BUILD_TIME: "2026-08-02T10:38:45.889Z",
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.177",
119950
+ version: "0.1.178",
119951
119951
  private: false,
119952
119952
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
119953
119953
  license: "MIT",
@@ -410151,8 +410151,8 @@ function isInputModeCharacter(input) {
410151
410151
  }
410152
410152
 
410153
410153
  // src/projectOnboardingState.ts
410154
- import { join as join105, resolve as resolve44, basename as basename37 } from "path";
410155
- function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410154
+ import { join as join105, resolve as resolve44, basename as basename37, sep as pathSep2 } from "path";
410155
+ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath, maxDepth = 100) {
410156
410156
  const fs13 = getFsImplementation();
410157
410157
  if (!recursionStack) {
410158
410158
  recursionStack = [];
@@ -410163,14 +410163,9 @@ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410163
410163
  } catch (err2) {
410164
410164
  console.warn(`[getDirectoryFingerprint] Failed to resolve real path for '${dirPath}', using original path: ${err2}`);
410165
410165
  try {
410166
- const lstat7 = fs13.lstatSync(dirPath);
410167
- if (lstat7.isSymbolicLink()) {
410168
- const linkTarget = fs13.readlinkSync(dirPath);
410169
- const resolvedTarget = resolve44(dirPath, linkTarget);
410170
- currentRealPath = resolvedTarget;
410171
- } else {
410172
- currentRealPath = dirPath;
410173
- }
410166
+ const linkTarget = fs13.readlinkSync(dirPath);
410167
+ const resolvedTarget = resolve44(dirPath, linkTarget);
410168
+ currentRealPath = resolvedTarget;
410174
410169
  } catch {
410175
410170
  currentRealPath = dirPath;
410176
410171
  }
@@ -410179,6 +410174,11 @@ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410179
410174
  return "";
410180
410175
  }
410181
410176
  recursionStack.push(currentRealPath);
410177
+ if (recursionStack.length > maxDepth) {
410178
+ console.warn(`[getDirectoryFingerprint] Maximum recursion depth (${maxDepth}) exceeded for '${dirPath}'`);
410179
+ recursionStack.pop();
410180
+ return "";
410181
+ }
410182
410182
  if (rootRealPath === undefined) {
410183
410183
  rootRealPath = currentRealPath;
410184
410184
  }
@@ -410208,7 +410208,9 @@ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410208
410208
  console.warn(`[getDirectoryFingerprint] Failed to resolve target real path for symlink '${fullPath}': ${err2}`);
410209
410209
  targetRealPath = resolvedTarget;
410210
410210
  }
410211
- if (targetRealPath.startsWith(rootRealPath + "/") || targetRealPath === rootRealPath) {
410211
+ const targetLower = targetRealPath.toLowerCase();
410212
+ const rootLower = rootRealPath.toLowerCase();
410213
+ if (targetLower === rootLower || targetLower.startsWith(rootLower + pathSep2)) {
410212
410214
  const stat37 = fs13.statSync(resolvedTarget);
410213
410215
  if (stat37.isDirectory()) {
410214
410216
  const targetBasename = basename37(resolvedTarget);
@@ -410217,7 +410219,7 @@ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410217
410219
  continue;
410218
410220
  }
410219
410221
  fingerprintParts.push(entry + "/");
410220
- fingerprintParts.push(getDirectoryFingerprint(resolvedTarget, recursionStack, rootRealPath));
410222
+ fingerprintParts.push(getDirectoryFingerprint(resolvedTarget, recursionStack, rootRealPath, maxDepth));
410221
410223
  } else {
410222
410224
  fingerprintParts.push(entry);
410223
410225
  }
@@ -410233,7 +410235,7 @@ function getDirectoryFingerprint(dirPath, recursionStack, rootRealPath) {
410233
410235
  continue;
410234
410236
  }
410235
410237
  fingerprintParts.push(entry + "/");
410236
- fingerprintParts.push(getDirectoryFingerprint(fullPath, recursionStack, rootRealPath));
410238
+ fingerprintParts.push(getDirectoryFingerprint(fullPath, recursionStack, rootRealPath, maxDepth));
410237
410239
  } else {
410238
410240
  fingerprintParts.push(entry);
410239
410241
  }
@@ -487923,7 +487925,7 @@ var init_remember = __esm(() => {
487923
487925
  // src/skills/bundledSkills.ts
487924
487926
  import { constants as fsConstants5 } from "fs";
487925
487927
  import { mkdir as mkdir37, open as open14 } from "fs/promises";
487926
- import { dirname as dirname59, isAbsolute as isAbsolute28, join as join133, normalize as normalize13, sep as pathSep2 } from "path";
487928
+ import { dirname as dirname59, isAbsolute as isAbsolute28, join as join133, normalize as normalize13, sep as pathSep3 } from "path";
487927
487929
  function registerBundledSkill(definition) {
487928
487930
  const { files: files3 } = definition;
487929
487931
  let skillRoot;
@@ -488010,7 +488012,7 @@ async function safeWriteFile(p, content) {
488010
488012
  }
488011
488013
  function resolveSkillFilePath(baseDir, relPath) {
488012
488014
  const normalized = normalize13(relPath);
488013
- if (isAbsolute28(normalized) || normalized.split(pathSep2).includes("..") || normalized.split("/").includes("..")) {
488015
+ if (isAbsolute28(normalized) || normalized.split(pathSep3).includes("..") || normalized.split("/").includes("..")) {
488014
488016
  throw new Error(`bundled skill file path escapes skill dir: ${relPath}`);
488015
488017
  }
488016
488018
  return join133(baseDir, normalized);
@@ -566766,7 +566768,7 @@ function migrateReplBridgeEnabledToRemoteControlAtStartup() {
566766
566768
  return prev;
566767
566769
  if (prev.remoteControlAtStartup !== undefined)
566768
566770
  return prev;
566769
- const newValue = typeof oldValue === "string" ? oldValue === "true" : Boolean(oldValue);
566771
+ const newValue = typeof oldValue === "string" ? !["false", "0", "no", ""].includes(oldValue.toLowerCase().trim()) : Boolean(oldValue);
566770
566772
  return { ...prev, remoteControlAtStartup: newValue };
566771
566773
  });
566772
566774
  saveGlobalConfig((prev) => {
@@ -566774,7 +566776,7 @@ function migrateReplBridgeEnabledToRemoteControlAtStartup() {
566774
566776
  if (oldValue === undefined)
566775
566777
  return prev;
566776
566778
  if (prev.remoteControlAtStartup === undefined) {
566777
- const newValue = typeof oldValue === "string" ? oldValue === "true" : Boolean(oldValue);
566779
+ const newValue = typeof oldValue === "string" ? !["false", "0", "no", ""].includes(oldValue.toLowerCase().trim()) : Boolean(oldValue);
566778
566780
  return {
566779
566781
  ...prev,
566780
566782
  remoteControlAtStartup: newValue,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funnycode/myclaude",
3
- "version": "0.1.177",
3
+ "version": "0.1.178",
4
4
  "private": false,
5
5
  "description": "An open-source AI coding assistant in your terminal - powered by Claude",
6
6
  "license": "MIT",