@funnycode/myclaude 0.1.163 → 0.1.164
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 +82 -30
- package/dist/myclaude.mjs +82 -30
- package/package.json +1 -1
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-07-
|
|
7
|
+
VERSION: "0.1.164",
|
|
8
|
+
BUILD_TIME: "2026-07-30T22:29:53.074Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
@@ -61328,6 +61328,30 @@ function updateSettingsForSource(source, settings) {
|
|
|
61328
61328
|
}
|
|
61329
61329
|
return { error: null };
|
|
61330
61330
|
}
|
|
61331
|
+
function deleteSettingsField(source, field) {
|
|
61332
|
+
if (source === "policySettings" || source === "flagSettings") {
|
|
61333
|
+
return { error: null };
|
|
61334
|
+
}
|
|
61335
|
+
const filePath = getSettingsFilePathForSource(source);
|
|
61336
|
+
if (!filePath) {
|
|
61337
|
+
return { error: null };
|
|
61338
|
+
}
|
|
61339
|
+
try {
|
|
61340
|
+
getFsImplementation().mkdirSync(dirname13(filePath));
|
|
61341
|
+
let existingSettings = getSettingsForSourceUncached(source);
|
|
61342
|
+
if (!existingSettings) {
|
|
61343
|
+
return { error: null };
|
|
61344
|
+
}
|
|
61345
|
+
delete existingSettings[field];
|
|
61346
|
+
writeFileSyncAndFlush_DEPRECATED(filePath, jsonStringify(existingSettings));
|
|
61347
|
+
resetSettingsCache();
|
|
61348
|
+
return { error: null };
|
|
61349
|
+
} catch (e) {
|
|
61350
|
+
const error49 = new Error(`Failed to delete field ${field} from settings source ${source}: ${e}`);
|
|
61351
|
+
logError2(error49);
|
|
61352
|
+
return { error: error49 };
|
|
61353
|
+
}
|
|
61354
|
+
}
|
|
61331
61355
|
function mergeArrays(targetArray, sourceArray) {
|
|
61332
61356
|
return uniq([...targetArray, ...sourceArray]);
|
|
61333
61357
|
}
|
|
@@ -119829,7 +119853,7 @@ var package_default;
|
|
|
119829
119853
|
var init_package = __esm(() => {
|
|
119830
119854
|
package_default = {
|
|
119831
119855
|
name: "@funnycode/myclaude",
|
|
119832
|
-
version: "0.1.
|
|
119856
|
+
version: "0.1.164",
|
|
119833
119857
|
private: false,
|
|
119834
119858
|
description: "An open-source AI coding assistant in your terminal - powered by Claude",
|
|
119835
119859
|
license: "MIT",
|
|
@@ -501863,25 +501887,50 @@ function isBlockedV6(address) {
|
|
|
501863
501887
|
return false;
|
|
501864
501888
|
if (lower === "::")
|
|
501865
501889
|
return true;
|
|
501866
|
-
const
|
|
501867
|
-
if (
|
|
501868
|
-
return
|
|
501890
|
+
const g2 = expandIPv6Groups(lower);
|
|
501891
|
+
if (!g2)
|
|
501892
|
+
return false;
|
|
501893
|
+
const embeddedV4 = extractEmbeddedIPv4(g2);
|
|
501894
|
+
if (embeddedV4 !== null) {
|
|
501895
|
+
return isBlockedV4(embeddedV4);
|
|
501869
501896
|
}
|
|
501870
|
-
if (
|
|
501897
|
+
if (g2[0] >= 64512 && g2[0] <= 65023) {
|
|
501871
501898
|
return true;
|
|
501872
501899
|
}
|
|
501873
|
-
|
|
501874
|
-
if (firstHextet && firstHextet.length === 4 && firstHextet >= "fe80" && firstHextet <= "febf") {
|
|
501900
|
+
if (g2[0] >= 65152 && g2[0] <= 65215) {
|
|
501875
501901
|
return true;
|
|
501876
501902
|
}
|
|
501877
501903
|
return false;
|
|
501878
501904
|
}
|
|
501905
|
+
function extractEmbeddedIPv4(g2) {
|
|
501906
|
+
if (g2.length !== 8)
|
|
501907
|
+
return null;
|
|
501908
|
+
if (g2[0] === 0 && g2[1] === 0 && g2[2] === 0 && g2[3] === 0 && g2[4] === 0 && g2[5] === 65535) {
|
|
501909
|
+
return composeV4(g2[6], g2[7]);
|
|
501910
|
+
}
|
|
501911
|
+
if (g2[0] === 0 && g2[1] === 0 && g2[2] === 0 && g2[3] === 0 && g2[4] === 0 && g2[5] === 0) {
|
|
501912
|
+
return composeV4(g2[6], g2[7]);
|
|
501913
|
+
}
|
|
501914
|
+
if (g2[0] === 8194) {
|
|
501915
|
+
return composeV4(g2[1], g2[2]);
|
|
501916
|
+
}
|
|
501917
|
+
if (g2[0] >= 65152 && g2[0] <= 65215 && g2[1] === 0 && g2[2] === 0 && g2[3] === 0 && g2[4] === 0 && g2[5] === 24318) {
|
|
501918
|
+
return composeV4(g2[6], g2[7]);
|
|
501919
|
+
}
|
|
501920
|
+
return null;
|
|
501921
|
+
}
|
|
501922
|
+
function composeV4(hi, lo) {
|
|
501923
|
+
return `${hi >> 8}.${hi & 255}.${lo >> 8}.${lo & 255}`;
|
|
501924
|
+
}
|
|
501879
501925
|
function expandIPv6Groups(addr) {
|
|
501880
501926
|
let tailHextets = [];
|
|
501881
501927
|
if (addr.includes(".")) {
|
|
501882
501928
|
const lastColon = addr.lastIndexOf(":");
|
|
501883
501929
|
const v4 = addr.slice(lastColon + 1);
|
|
501884
501930
|
addr = addr.slice(0, lastColon);
|
|
501931
|
+
if (addr === ":") {
|
|
501932
|
+
addr = "::";
|
|
501933
|
+
}
|
|
501885
501934
|
const octets = v4.split(".").map(Number);
|
|
501886
501935
|
if (octets.length !== 4 || octets.some((n3) => !Number.isInteger(n3) || n3 < 0 || n3 > 255)) {
|
|
501887
501936
|
return null;
|
|
@@ -501915,17 +501964,6 @@ function expandIPv6Groups(addr) {
|
|
|
501915
501964
|
nums.push(...tailHextets);
|
|
501916
501965
|
return nums.length === 8 ? nums : null;
|
|
501917
501966
|
}
|
|
501918
|
-
function extractMappedIPv4(addr) {
|
|
501919
|
-
const g2 = expandIPv6Groups(addr);
|
|
501920
|
-
if (!g2)
|
|
501921
|
-
return null;
|
|
501922
|
-
if (g2[0] === 0 && g2[1] === 0 && g2[2] === 0 && g2[3] === 0 && g2[4] === 0 && g2[5] === 65535) {
|
|
501923
|
-
const hi = g2[6];
|
|
501924
|
-
const lo = g2[7];
|
|
501925
|
-
return `${hi >> 8}.${hi & 255}.${lo >> 8}.${lo & 255}`;
|
|
501926
|
-
}
|
|
501927
|
-
return null;
|
|
501928
|
-
}
|
|
501929
501967
|
function ssrfGuardedLookup(hostname4, options, callback) {
|
|
501930
501968
|
const wantsAll = "all" in options && options.all === true;
|
|
501931
501969
|
const ipVersion = isIP4(hostname4);
|
|
@@ -566459,15 +566497,15 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566459
566497
|
} catch (error49) {
|
|
566460
566498
|
logError2("Failed to migrate MCP server settings, rolling back", error49);
|
|
566461
566499
|
let rollbackFailed = false;
|
|
566462
|
-
const rollbackUpdates = {};
|
|
566463
|
-
for (const field of migratedFields) {
|
|
566464
|
-
if (field in originalSettings) {
|
|
566465
|
-
rollbackUpdates[field] = originalSettings[field];
|
|
566466
|
-
} else {
|
|
566467
|
-
rollbackUpdates[field] = undefined;
|
|
566468
|
-
}
|
|
566469
|
-
}
|
|
566470
566500
|
try {
|
|
566501
|
+
const rollbackUpdates = {};
|
|
566502
|
+
for (const field of migratedFields) {
|
|
566503
|
+
if (field in originalSettings) {
|
|
566504
|
+
rollbackUpdates[field] = originalSettings[field];
|
|
566505
|
+
} else {
|
|
566506
|
+
deleteSettingsField("localSettings", field);
|
|
566507
|
+
}
|
|
566508
|
+
}
|
|
566471
566509
|
updateSettingsForSource("localSettings", rollbackUpdates);
|
|
566472
566510
|
} catch (rollbackError) {
|
|
566473
566511
|
logError2("Rollback of settings failed", rollbackError);
|
|
@@ -566564,9 +566602,23 @@ function migrateReplBridgeEnabledToRemoteControlAtStartup() {
|
|
|
566564
566602
|
return prev;
|
|
566565
566603
|
if (prev.remoteControlAtStartup !== undefined)
|
|
566566
566604
|
return prev;
|
|
566567
|
-
const { replBridgeEnabled: _2, ...next } = prev;
|
|
566568
566605
|
const newValue = typeof oldValue === "string" ? oldValue === "true" : Boolean(oldValue);
|
|
566569
|
-
return { ...
|
|
566606
|
+
return { ...prev, remoteControlAtStartup: newValue };
|
|
566607
|
+
});
|
|
566608
|
+
saveGlobalConfig((prev) => {
|
|
566609
|
+
const oldValue = prev["replBridgeEnabled"];
|
|
566610
|
+
if (oldValue === undefined)
|
|
566611
|
+
return prev;
|
|
566612
|
+
if (prev.remoteControlAtStartup === undefined) {
|
|
566613
|
+
const newValue = typeof oldValue === "string" ? oldValue === "true" : Boolean(oldValue);
|
|
566614
|
+
return {
|
|
566615
|
+
...prev,
|
|
566616
|
+
remoteControlAtStartup: newValue,
|
|
566617
|
+
replBridgeEnabled: undefined
|
|
566618
|
+
};
|
|
566619
|
+
}
|
|
566620
|
+
const { replBridgeEnabled: _2, ...next } = prev;
|
|
566621
|
+
return next;
|
|
566570
566622
|
});
|
|
566571
566623
|
}
|
|
566572
566624
|
var init_migrateReplBridgeEnabledToRemoteControlAtStartup = __esm(() => {
|
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-07-
|
|
7
|
+
VERSION: "0.1.164",
|
|
8
|
+
BUILD_TIME: "2026-07-30T22:29:53.074Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
@@ -61328,6 +61328,30 @@ function updateSettingsForSource(source, settings) {
|
|
|
61328
61328
|
}
|
|
61329
61329
|
return { error: null };
|
|
61330
61330
|
}
|
|
61331
|
+
function deleteSettingsField(source, field) {
|
|
61332
|
+
if (source === "policySettings" || source === "flagSettings") {
|
|
61333
|
+
return { error: null };
|
|
61334
|
+
}
|
|
61335
|
+
const filePath = getSettingsFilePathForSource(source);
|
|
61336
|
+
if (!filePath) {
|
|
61337
|
+
return { error: null };
|
|
61338
|
+
}
|
|
61339
|
+
try {
|
|
61340
|
+
getFsImplementation().mkdirSync(dirname13(filePath));
|
|
61341
|
+
let existingSettings = getSettingsForSourceUncached(source);
|
|
61342
|
+
if (!existingSettings) {
|
|
61343
|
+
return { error: null };
|
|
61344
|
+
}
|
|
61345
|
+
delete existingSettings[field];
|
|
61346
|
+
writeFileSyncAndFlush_DEPRECATED(filePath, jsonStringify(existingSettings));
|
|
61347
|
+
resetSettingsCache();
|
|
61348
|
+
return { error: null };
|
|
61349
|
+
} catch (e) {
|
|
61350
|
+
const error49 = new Error(`Failed to delete field ${field} from settings source ${source}: ${e}`);
|
|
61351
|
+
logError2(error49);
|
|
61352
|
+
return { error: error49 };
|
|
61353
|
+
}
|
|
61354
|
+
}
|
|
61331
61355
|
function mergeArrays(targetArray, sourceArray) {
|
|
61332
61356
|
return uniq([...targetArray, ...sourceArray]);
|
|
61333
61357
|
}
|
|
@@ -119829,7 +119853,7 @@ var package_default;
|
|
|
119829
119853
|
var init_package = __esm(() => {
|
|
119830
119854
|
package_default = {
|
|
119831
119855
|
name: "@funnycode/myclaude",
|
|
119832
|
-
version: "0.1.
|
|
119856
|
+
version: "0.1.164",
|
|
119833
119857
|
private: false,
|
|
119834
119858
|
description: "An open-source AI coding assistant in your terminal - powered by Claude",
|
|
119835
119859
|
license: "MIT",
|
|
@@ -501863,25 +501887,50 @@ function isBlockedV6(address) {
|
|
|
501863
501887
|
return false;
|
|
501864
501888
|
if (lower === "::")
|
|
501865
501889
|
return true;
|
|
501866
|
-
const
|
|
501867
|
-
if (
|
|
501868
|
-
return
|
|
501890
|
+
const g2 = expandIPv6Groups(lower);
|
|
501891
|
+
if (!g2)
|
|
501892
|
+
return false;
|
|
501893
|
+
const embeddedV4 = extractEmbeddedIPv4(g2);
|
|
501894
|
+
if (embeddedV4 !== null) {
|
|
501895
|
+
return isBlockedV4(embeddedV4);
|
|
501869
501896
|
}
|
|
501870
|
-
if (
|
|
501897
|
+
if (g2[0] >= 64512 && g2[0] <= 65023) {
|
|
501871
501898
|
return true;
|
|
501872
501899
|
}
|
|
501873
|
-
|
|
501874
|
-
if (firstHextet && firstHextet.length === 4 && firstHextet >= "fe80" && firstHextet <= "febf") {
|
|
501900
|
+
if (g2[0] >= 65152 && g2[0] <= 65215) {
|
|
501875
501901
|
return true;
|
|
501876
501902
|
}
|
|
501877
501903
|
return false;
|
|
501878
501904
|
}
|
|
501905
|
+
function extractEmbeddedIPv4(g2) {
|
|
501906
|
+
if (g2.length !== 8)
|
|
501907
|
+
return null;
|
|
501908
|
+
if (g2[0] === 0 && g2[1] === 0 && g2[2] === 0 && g2[3] === 0 && g2[4] === 0 && g2[5] === 65535) {
|
|
501909
|
+
return composeV4(g2[6], g2[7]);
|
|
501910
|
+
}
|
|
501911
|
+
if (g2[0] === 0 && g2[1] === 0 && g2[2] === 0 && g2[3] === 0 && g2[4] === 0 && g2[5] === 0) {
|
|
501912
|
+
return composeV4(g2[6], g2[7]);
|
|
501913
|
+
}
|
|
501914
|
+
if (g2[0] === 8194) {
|
|
501915
|
+
return composeV4(g2[1], g2[2]);
|
|
501916
|
+
}
|
|
501917
|
+
if (g2[0] >= 65152 && g2[0] <= 65215 && g2[1] === 0 && g2[2] === 0 && g2[3] === 0 && g2[4] === 0 && g2[5] === 24318) {
|
|
501918
|
+
return composeV4(g2[6], g2[7]);
|
|
501919
|
+
}
|
|
501920
|
+
return null;
|
|
501921
|
+
}
|
|
501922
|
+
function composeV4(hi, lo) {
|
|
501923
|
+
return `${hi >> 8}.${hi & 255}.${lo >> 8}.${lo & 255}`;
|
|
501924
|
+
}
|
|
501879
501925
|
function expandIPv6Groups(addr) {
|
|
501880
501926
|
let tailHextets = [];
|
|
501881
501927
|
if (addr.includes(".")) {
|
|
501882
501928
|
const lastColon = addr.lastIndexOf(":");
|
|
501883
501929
|
const v4 = addr.slice(lastColon + 1);
|
|
501884
501930
|
addr = addr.slice(0, lastColon);
|
|
501931
|
+
if (addr === ":") {
|
|
501932
|
+
addr = "::";
|
|
501933
|
+
}
|
|
501885
501934
|
const octets = v4.split(".").map(Number);
|
|
501886
501935
|
if (octets.length !== 4 || octets.some((n3) => !Number.isInteger(n3) || n3 < 0 || n3 > 255)) {
|
|
501887
501936
|
return null;
|
|
@@ -501915,17 +501964,6 @@ function expandIPv6Groups(addr) {
|
|
|
501915
501964
|
nums.push(...tailHextets);
|
|
501916
501965
|
return nums.length === 8 ? nums : null;
|
|
501917
501966
|
}
|
|
501918
|
-
function extractMappedIPv4(addr) {
|
|
501919
|
-
const g2 = expandIPv6Groups(addr);
|
|
501920
|
-
if (!g2)
|
|
501921
|
-
return null;
|
|
501922
|
-
if (g2[0] === 0 && g2[1] === 0 && g2[2] === 0 && g2[3] === 0 && g2[4] === 0 && g2[5] === 65535) {
|
|
501923
|
-
const hi = g2[6];
|
|
501924
|
-
const lo = g2[7];
|
|
501925
|
-
return `${hi >> 8}.${hi & 255}.${lo >> 8}.${lo & 255}`;
|
|
501926
|
-
}
|
|
501927
|
-
return null;
|
|
501928
|
-
}
|
|
501929
501967
|
function ssrfGuardedLookup(hostname4, options, callback) {
|
|
501930
501968
|
const wantsAll = "all" in options && options.all === true;
|
|
501931
501969
|
const ipVersion = isIP4(hostname4);
|
|
@@ -566459,15 +566497,15 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
566459
566497
|
} catch (error49) {
|
|
566460
566498
|
logError2("Failed to migrate MCP server settings, rolling back", error49);
|
|
566461
566499
|
let rollbackFailed = false;
|
|
566462
|
-
const rollbackUpdates = {};
|
|
566463
|
-
for (const field of migratedFields) {
|
|
566464
|
-
if (field in originalSettings) {
|
|
566465
|
-
rollbackUpdates[field] = originalSettings[field];
|
|
566466
|
-
} else {
|
|
566467
|
-
rollbackUpdates[field] = undefined;
|
|
566468
|
-
}
|
|
566469
|
-
}
|
|
566470
566500
|
try {
|
|
566501
|
+
const rollbackUpdates = {};
|
|
566502
|
+
for (const field of migratedFields) {
|
|
566503
|
+
if (field in originalSettings) {
|
|
566504
|
+
rollbackUpdates[field] = originalSettings[field];
|
|
566505
|
+
} else {
|
|
566506
|
+
deleteSettingsField("localSettings", field);
|
|
566507
|
+
}
|
|
566508
|
+
}
|
|
566471
566509
|
updateSettingsForSource("localSettings", rollbackUpdates);
|
|
566472
566510
|
} catch (rollbackError) {
|
|
566473
566511
|
logError2("Rollback of settings failed", rollbackError);
|
|
@@ -566564,9 +566602,23 @@ function migrateReplBridgeEnabledToRemoteControlAtStartup() {
|
|
|
566564
566602
|
return prev;
|
|
566565
566603
|
if (prev.remoteControlAtStartup !== undefined)
|
|
566566
566604
|
return prev;
|
|
566567
|
-
const { replBridgeEnabled: _2, ...next } = prev;
|
|
566568
566605
|
const newValue = typeof oldValue === "string" ? oldValue === "true" : Boolean(oldValue);
|
|
566569
|
-
return { ...
|
|
566606
|
+
return { ...prev, remoteControlAtStartup: newValue };
|
|
566607
|
+
});
|
|
566608
|
+
saveGlobalConfig((prev) => {
|
|
566609
|
+
const oldValue = prev["replBridgeEnabled"];
|
|
566610
|
+
if (oldValue === undefined)
|
|
566611
|
+
return prev;
|
|
566612
|
+
if (prev.remoteControlAtStartup === undefined) {
|
|
566613
|
+
const newValue = typeof oldValue === "string" ? oldValue === "true" : Boolean(oldValue);
|
|
566614
|
+
return {
|
|
566615
|
+
...prev,
|
|
566616
|
+
remoteControlAtStartup: newValue,
|
|
566617
|
+
replBridgeEnabled: undefined
|
|
566618
|
+
};
|
|
566619
|
+
}
|
|
566620
|
+
const { replBridgeEnabled: _2, ...next } = prev;
|
|
566621
|
+
return next;
|
|
566570
566622
|
});
|
|
566571
566623
|
}
|
|
566572
566624
|
var init_migrateReplBridgeEnabledToRemoteControlAtStartup = __esm(() => {
|