@funnycode/myclaude 0.1.182 → 0.1.184
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 +53 -14
- package/dist/myclaude.mjs +53 -14
- package/package.json +2 -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-08-
|
|
7
|
+
VERSION: "0.1.184",
|
|
8
|
+
BUILD_TIME: "2026-08-10T02:03:01.135Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
@@ -113846,11 +113846,15 @@ class AwsAuthStatusManager {
|
|
|
113846
113846
|
var init_awsAuthStatusManager = () => {};
|
|
113847
113847
|
|
|
113848
113848
|
// src/constants/betas.ts
|
|
113849
|
-
|
|
113849
|
+
function getSummarizeConnectorTextBetaHeader() {
|
|
113850
|
+
return getFeatureValue_CACHED_MAY_BE_STALE("CONNECTOR_TEXT", false) ? "summarize-connector-text-2026-03-13" : "";
|
|
113851
|
+
}
|
|
113852
|
+
function getAfkModeBetaHeader() {
|
|
113853
|
+
return getFeatureValue_CACHED_MAY_BE_STALE("TRANSCRIPT_CLASSIFIER", false) ? "afk-mode-2026-01-31" : "";
|
|
113854
|
+
}
|
|
113855
|
+
var CLAUDE_CODE_20250219_BETA_HEADER = "claude-code-20250219", INTERLEAVED_THINKING_BETA_HEADER = "interleaved-thinking-2025-05-14", CONTEXT_1M_BETA_HEADER = "context-1m-2025-08-07", CONTEXT_MANAGEMENT_BETA_HEADER = "context-management-2025-06-27", STRUCTURED_OUTPUTS_BETA_HEADER = "structured-outputs-2025-12-15", WEB_SEARCH_BETA_HEADER = "web-search-2025-03-05", TOOL_SEARCH_BETA_HEADER_1P = "advanced-tool-use-2025-11-20", TOOL_SEARCH_BETA_HEADER_3P = "tool-search-tool-2025-10-19", EFFORT_BETA_HEADER = "effort-2025-11-24", TASK_BUDGETS_BETA_HEADER = "task-budgets-2026-03-13", PROMPT_CACHING_SCOPE_BETA_HEADER = "prompt-caching-scope-2026-01-05", FAST_MODE_BETA_HEADER = "fast-mode-2026-02-01", REDACT_THINKING_BETA_HEADER = "redact-thinking-2026-02-12", TOKEN_EFFICIENT_TOOLS_BETA_HEADER = "token-efficient-tools-2026-03-28", CLI_INTERNAL_BETA_HEADER = "", ADVISOR_BETA_HEADER = "advisor-tool-2026-03-01", BEDROCK_EXTRA_PARAMS_HEADERS, VERTEX_COUNT_TOKENS_ALLOWED_BETAS;
|
|
113850
113856
|
var init_betas = __esm(() => {
|
|
113851
113857
|
init_growthbook();
|
|
113852
|
-
SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER = getFeatureValue_CACHED_MAY_BE_STALE("CONNECTOR_TEXT", false) ? "summarize-connector-text-2026-03-13" : "";
|
|
113853
|
-
AFK_MODE_BETA_HEADER = getFeatureValue_CACHED_MAY_BE_STALE("TRANSCRIPT_CLASSIFIER", false) ? "afk-mode-2026-01-31" : "";
|
|
113854
113858
|
BEDROCK_EXTRA_PARAMS_HEADERS = new Set([
|
|
113855
113859
|
INTERLEAVED_THINKING_BETA_HEADER,
|
|
113856
113860
|
CONTEXT_1M_BETA_HEADER,
|
|
@@ -115531,8 +115535,9 @@ var init_betas2 = __esm(() => {
|
|
|
115531
115535
|
if (includeFirstPartyOnlyBetas && modelSupportsISP(model) && !getIsNonInteractiveSession() && getInitialSettings().showThinkingSummaries !== true) {
|
|
115532
115536
|
betaHeaders.push(REDACT_THINKING_BETA_HEADER);
|
|
115533
115537
|
}
|
|
115534
|
-
|
|
115535
|
-
|
|
115538
|
+
const summarizeConnectorTextBetaHeader = getSummarizeConnectorTextBetaHeader();
|
|
115539
|
+
if (summarizeConnectorTextBetaHeader && process.env.USER_TYPE === "ant" && includeFirstPartyOnlyBetas && !isEnvDefinedFalsy(process.env.USE_CONNECTOR_TEXT_SUMMARIZATION) && (isEnvTruthy(process.env.USE_CONNECTOR_TEXT_SUMMARIZATION) || getFeatureValue_CACHED_MAY_BE_STALE("tengu_slate_prism", false))) {
|
|
115540
|
+
betaHeaders.push(summarizeConnectorTextBetaHeader);
|
|
115536
115541
|
}
|
|
115537
115542
|
const antOptedIntoToolClearing = isEnvTruthy(process.env.USE_API_CONTEXT_MANAGEMENT) && process.env.USER_TYPE === "ant";
|
|
115538
115543
|
const thinkingPreservationEnabled = modelSupportsContextManagement(model);
|
|
@@ -117146,7 +117151,7 @@ var package_default;
|
|
|
117146
117151
|
var init_package = __esm(() => {
|
|
117147
117152
|
package_default = {
|
|
117148
117153
|
name: "@funnycode/myclaude",
|
|
117149
|
-
version: "0.1.
|
|
117154
|
+
version: "0.1.184",
|
|
117150
117155
|
private: false,
|
|
117151
117156
|
description: "An open-source AI coding assistant in your terminal - powered by Claude",
|
|
117152
117157
|
license: "MIT",
|
|
@@ -117169,6 +117174,7 @@ var init_package = __esm(() => {
|
|
|
117169
117174
|
start: "bun run ./src/dev-entry.ts",
|
|
117170
117175
|
test: "bun test",
|
|
117171
117176
|
"test:watch": "bun test --watch",
|
|
117177
|
+
"test:perf": "bun test src/tests/performance-regression.test.ts",
|
|
117172
117178
|
build: "bun run ./scripts/build.ts",
|
|
117173
117179
|
prepublishOnly: "bun run build",
|
|
117174
117180
|
version: "bun run ./src/dev-entry.ts --version"
|
|
@@ -209355,6 +209361,18 @@ function parseEventData(event) {
|
|
|
209355
209361
|
function hashString3(str) {
|
|
209356
209362
|
return createHash5("sha256").update(str).digest("hex");
|
|
209357
209363
|
}
|
|
209364
|
+
function trimDumpState() {
|
|
209365
|
+
if (dumpState.size <= MAX_DUMP_STATE_SESSIONS)
|
|
209366
|
+
return;
|
|
209367
|
+
const excess = dumpState.size - MAX_DUMP_STATE_SESSIONS;
|
|
209368
|
+
let evicted = 0;
|
|
209369
|
+
for (const key2 of dumpState.keys()) {
|
|
209370
|
+
if (evicted >= excess)
|
|
209371
|
+
break;
|
|
209372
|
+
dumpState.delete(key2);
|
|
209373
|
+
evicted++;
|
|
209374
|
+
}
|
|
209375
|
+
}
|
|
209358
209376
|
function enqueueDumpRequest(agentIdOrSessionId, callback) {
|
|
209359
209377
|
if (!dumpRequestQueue.has(agentIdOrSessionId)) {
|
|
209360
209378
|
dumpRequestQueue.set(agentIdOrSessionId, []);
|
|
@@ -209410,7 +209428,8 @@ function addApiRequestToCache(requestData) {
|
|
|
209410
209428
|
}
|
|
209411
209429
|
}
|
|
209412
209430
|
function getDumpPromptsPath(agentIdOrSessionId) {
|
|
209413
|
-
|
|
209431
|
+
const safeId = (agentIdOrSessionId ?? getSessionId()).replace(/[^a-zA-Z0-9._-]/g, "_");
|
|
209432
|
+
return join48(getClaudeConfigHomeDir(), "dump-prompts", `${safeId}.jsonl`);
|
|
209414
209433
|
}
|
|
209415
209434
|
async function appendToFile(filePath, entries) {
|
|
209416
209435
|
if (entries.length === 0)
|
|
@@ -209489,6 +209508,7 @@ function createDumpPromptsFetch(agentIdOrSessionId) {
|
|
|
209489
209508
|
lastInitFingerprint: ""
|
|
209490
209509
|
};
|
|
209491
209510
|
dumpState.set(agentIdOrSessionId, state);
|
|
209511
|
+
trimDumpState();
|
|
209492
209512
|
let timestamp;
|
|
209493
209513
|
if (init2?.method === "POST" && init2.body) {
|
|
209494
209514
|
if (process.env.USER_TYPE === "ant") {
|
|
@@ -209595,7 +209615,7 @@ function createDumpPromptsFetch(agentIdOrSessionId) {
|
|
|
209595
209615
|
return response;
|
|
209596
209616
|
};
|
|
209597
209617
|
}
|
|
209598
|
-
var MAX_CACHED_REQUESTS = 5, cachedApiRequests, dumpState, dumpRequestQueue, processingPromises, enqueueMutexes;
|
|
209618
|
+
var MAX_CACHED_REQUESTS = 5, cachedApiRequests, dumpState, MAX_DUMP_STATE_SESSIONS = 200, dumpRequestQueue, processingPromises, enqueueMutexes;
|
|
209599
209619
|
var init_dumpPrompts = __esm(() => {
|
|
209600
209620
|
init_state();
|
|
209601
209621
|
init_envUtils();
|
|
@@ -341711,6 +341731,20 @@ var init_KeybindingProviderSetup = __esm(() => {
|
|
|
341711
341731
|
});
|
|
341712
341732
|
|
|
341713
341733
|
// src/services/api/sessionIngress.ts
|
|
341734
|
+
function trimSessionCaches() {
|
|
341735
|
+
for (const map3 of [lastUuidMap, sequentialBySession]) {
|
|
341736
|
+
if (map3.size <= MAX_CACHED_SESSIONS)
|
|
341737
|
+
continue;
|
|
341738
|
+
const excess = map3.size - MAX_CACHED_SESSIONS;
|
|
341739
|
+
let evicted = 0;
|
|
341740
|
+
for (const key2 of map3.keys()) {
|
|
341741
|
+
if (evicted >= excess)
|
|
341742
|
+
break;
|
|
341743
|
+
map3.delete(key2);
|
|
341744
|
+
evicted++;
|
|
341745
|
+
}
|
|
341746
|
+
}
|
|
341747
|
+
}
|
|
341714
341748
|
function getOrCreateSequential(sessionId) {
|
|
341715
341749
|
let wrapper = sequentialBySession.get(sessionId);
|
|
341716
341750
|
if (!wrapper) {
|
|
@@ -341724,6 +341758,7 @@ function getOrCreateSequential(sessionId) {
|
|
|
341724
341758
|
}
|
|
341725
341759
|
});
|
|
341726
341760
|
sequentialBySession.set(sessionId, wrapper);
|
|
341761
|
+
trimSessionCaches();
|
|
341727
341762
|
}
|
|
341728
341763
|
return wrapper;
|
|
341729
341764
|
}
|
|
@@ -342002,7 +342037,7 @@ function clearAllSessions() {
|
|
|
342002
342037
|
lastUuidMap.clear();
|
|
342003
342038
|
sequentialBySession.clear();
|
|
342004
342039
|
}
|
|
342005
|
-
var lastUuidMap, MAX_RETRIES = 5, BASE_DELAY_MS2 = 500, sequentialBySession;
|
|
342040
|
+
var lastUuidMap, MAX_CACHED_SESSIONS = 500, MAX_RETRIES = 5, BASE_DELAY_MS2 = 500, sequentialBySession;
|
|
342006
342041
|
var init_sessionIngress = __esm(() => {
|
|
342007
342042
|
init_axios2();
|
|
342008
342043
|
init_oauth();
|
|
@@ -404036,7 +404071,8 @@ function getAssistantMessageFromError(error49, model, options) {
|
|
|
404036
404071
|
errorDetails: error49.message
|
|
404037
404072
|
});
|
|
404038
404073
|
}
|
|
404039
|
-
|
|
404074
|
+
const afkModeBetaHeader = getAfkModeBetaHeader();
|
|
404075
|
+
if (afkModeBetaHeader && error49 instanceof APIError && error49.status === 400 && error49.message.includes(afkModeBetaHeader) && error49.message.includes("anthropic-beta")) {
|
|
404040
404076
|
return createAssistantAPIErrorMessage({
|
|
404041
404077
|
content: "Auto mode is unavailable for your plan",
|
|
404042
404078
|
error: "invalid_request"
|
|
@@ -563346,7 +563382,8 @@ function migrateBypassPermissionsAcceptedToSettings() {
|
|
|
563346
563382
|
}
|
|
563347
563383
|
try {
|
|
563348
563384
|
if (!hasSkipDangerousModePermissionPrompt()) {
|
|
563349
|
-
const
|
|
563385
|
+
const effectiveSkip = ["userSettings", "localSettings", "flagSettings", "policySettings"].map((source) => getSettingsForSource(source)?.skipDangerousModePermissionPrompt).find((value) => value !== undefined);
|
|
563386
|
+
const userExplicitlyOptedOut = effectiveSkip === false;
|
|
563350
563387
|
if (!userExplicitlyOptedOut) {
|
|
563351
563388
|
updateSettingsForSource("userSettings", {
|
|
563352
563389
|
skipDangerousModePermissionPrompt: true
|
|
@@ -563373,6 +563410,7 @@ var init_migrateBypassPermissionsAcceptedToSettings = __esm(() => {
|
|
|
563373
563410
|
});
|
|
563374
563411
|
|
|
563375
563412
|
// src/migrations/migrateEnableAllProjectMcpServersToSettings.ts
|
|
563413
|
+
import { createHash as createHash21 } from "crypto";
|
|
563376
563414
|
function migrateEnableAllProjectMcpServersToSettings() {
|
|
563377
563415
|
const globalConfig2 = getGlobalConfig();
|
|
563378
563416
|
if (globalConfig2.hasCompletedMcpServerMigration) {
|
|
@@ -563425,8 +563463,9 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
563425
563463
|
}
|
|
563426
563464
|
const overlappingServers = existingEnabledServers.filter((server) => existingDisabledServers.includes(server));
|
|
563427
563465
|
if (overlappingServers.length > 0) {
|
|
563466
|
+
const hashedServers = overlappingServers.map((server) => createHash21("sha256").update(server).digest("hex").slice(0, 16));
|
|
563428
563467
|
logEvent("tengu_migrate_mcp_server_conflict_resolved", {
|
|
563429
|
-
overlappingServers:
|
|
563468
|
+
overlappingServers: hashedServers.join(","),
|
|
563430
563469
|
conflictResolution: "removed_from_disabled"
|
|
563431
563470
|
});
|
|
563432
563471
|
}
|
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-08-
|
|
7
|
+
VERSION: "0.1.184",
|
|
8
|
+
BUILD_TIME: "2026-08-10T02:03:01.135Z",
|
|
9
9
|
PACKAGE_URL: "@funnycode/myclaude",
|
|
10
10
|
NATIVE_PACKAGE_URL: "@funnycode/myclaude",
|
|
11
11
|
VERSION_CHANGELOG: '',
|
|
@@ -113846,11 +113846,15 @@ class AwsAuthStatusManager {
|
|
|
113846
113846
|
var init_awsAuthStatusManager = () => {};
|
|
113847
113847
|
|
|
113848
113848
|
// src/constants/betas.ts
|
|
113849
|
-
|
|
113849
|
+
function getSummarizeConnectorTextBetaHeader() {
|
|
113850
|
+
return getFeatureValue_CACHED_MAY_BE_STALE("CONNECTOR_TEXT", false) ? "summarize-connector-text-2026-03-13" : "";
|
|
113851
|
+
}
|
|
113852
|
+
function getAfkModeBetaHeader() {
|
|
113853
|
+
return getFeatureValue_CACHED_MAY_BE_STALE("TRANSCRIPT_CLASSIFIER", false) ? "afk-mode-2026-01-31" : "";
|
|
113854
|
+
}
|
|
113855
|
+
var CLAUDE_CODE_20250219_BETA_HEADER = "claude-code-20250219", INTERLEAVED_THINKING_BETA_HEADER = "interleaved-thinking-2025-05-14", CONTEXT_1M_BETA_HEADER = "context-1m-2025-08-07", CONTEXT_MANAGEMENT_BETA_HEADER = "context-management-2025-06-27", STRUCTURED_OUTPUTS_BETA_HEADER = "structured-outputs-2025-12-15", WEB_SEARCH_BETA_HEADER = "web-search-2025-03-05", TOOL_SEARCH_BETA_HEADER_1P = "advanced-tool-use-2025-11-20", TOOL_SEARCH_BETA_HEADER_3P = "tool-search-tool-2025-10-19", EFFORT_BETA_HEADER = "effort-2025-11-24", TASK_BUDGETS_BETA_HEADER = "task-budgets-2026-03-13", PROMPT_CACHING_SCOPE_BETA_HEADER = "prompt-caching-scope-2026-01-05", FAST_MODE_BETA_HEADER = "fast-mode-2026-02-01", REDACT_THINKING_BETA_HEADER = "redact-thinking-2026-02-12", TOKEN_EFFICIENT_TOOLS_BETA_HEADER = "token-efficient-tools-2026-03-28", CLI_INTERNAL_BETA_HEADER = "", ADVISOR_BETA_HEADER = "advisor-tool-2026-03-01", BEDROCK_EXTRA_PARAMS_HEADERS, VERTEX_COUNT_TOKENS_ALLOWED_BETAS;
|
|
113850
113856
|
var init_betas = __esm(() => {
|
|
113851
113857
|
init_growthbook();
|
|
113852
|
-
SUMMARIZE_CONNECTOR_TEXT_BETA_HEADER = getFeatureValue_CACHED_MAY_BE_STALE("CONNECTOR_TEXT", false) ? "summarize-connector-text-2026-03-13" : "";
|
|
113853
|
-
AFK_MODE_BETA_HEADER = getFeatureValue_CACHED_MAY_BE_STALE("TRANSCRIPT_CLASSIFIER", false) ? "afk-mode-2026-01-31" : "";
|
|
113854
113858
|
BEDROCK_EXTRA_PARAMS_HEADERS = new Set([
|
|
113855
113859
|
INTERLEAVED_THINKING_BETA_HEADER,
|
|
113856
113860
|
CONTEXT_1M_BETA_HEADER,
|
|
@@ -115531,8 +115535,9 @@ var init_betas2 = __esm(() => {
|
|
|
115531
115535
|
if (includeFirstPartyOnlyBetas && modelSupportsISP(model) && !getIsNonInteractiveSession() && getInitialSettings().showThinkingSummaries !== true) {
|
|
115532
115536
|
betaHeaders.push(REDACT_THINKING_BETA_HEADER);
|
|
115533
115537
|
}
|
|
115534
|
-
|
|
115535
|
-
|
|
115538
|
+
const summarizeConnectorTextBetaHeader = getSummarizeConnectorTextBetaHeader();
|
|
115539
|
+
if (summarizeConnectorTextBetaHeader && process.env.USER_TYPE === "ant" && includeFirstPartyOnlyBetas && !isEnvDefinedFalsy(process.env.USE_CONNECTOR_TEXT_SUMMARIZATION) && (isEnvTruthy(process.env.USE_CONNECTOR_TEXT_SUMMARIZATION) || getFeatureValue_CACHED_MAY_BE_STALE("tengu_slate_prism", false))) {
|
|
115540
|
+
betaHeaders.push(summarizeConnectorTextBetaHeader);
|
|
115536
115541
|
}
|
|
115537
115542
|
const antOptedIntoToolClearing = isEnvTruthy(process.env.USE_API_CONTEXT_MANAGEMENT) && process.env.USER_TYPE === "ant";
|
|
115538
115543
|
const thinkingPreservationEnabled = modelSupportsContextManagement(model);
|
|
@@ -117146,7 +117151,7 @@ var package_default;
|
|
|
117146
117151
|
var init_package = __esm(() => {
|
|
117147
117152
|
package_default = {
|
|
117148
117153
|
name: "@funnycode/myclaude",
|
|
117149
|
-
version: "0.1.
|
|
117154
|
+
version: "0.1.184",
|
|
117150
117155
|
private: false,
|
|
117151
117156
|
description: "An open-source AI coding assistant in your terminal - powered by Claude",
|
|
117152
117157
|
license: "MIT",
|
|
@@ -117169,6 +117174,7 @@ var init_package = __esm(() => {
|
|
|
117169
117174
|
start: "bun run ./src/dev-entry.ts",
|
|
117170
117175
|
test: "bun test",
|
|
117171
117176
|
"test:watch": "bun test --watch",
|
|
117177
|
+
"test:perf": "bun test src/tests/performance-regression.test.ts",
|
|
117172
117178
|
build: "bun run ./scripts/build.ts",
|
|
117173
117179
|
prepublishOnly: "bun run build",
|
|
117174
117180
|
version: "bun run ./src/dev-entry.ts --version"
|
|
@@ -209355,6 +209361,18 @@ function parseEventData(event) {
|
|
|
209355
209361
|
function hashString3(str) {
|
|
209356
209362
|
return createHash5("sha256").update(str).digest("hex");
|
|
209357
209363
|
}
|
|
209364
|
+
function trimDumpState() {
|
|
209365
|
+
if (dumpState.size <= MAX_DUMP_STATE_SESSIONS)
|
|
209366
|
+
return;
|
|
209367
|
+
const excess = dumpState.size - MAX_DUMP_STATE_SESSIONS;
|
|
209368
|
+
let evicted = 0;
|
|
209369
|
+
for (const key2 of dumpState.keys()) {
|
|
209370
|
+
if (evicted >= excess)
|
|
209371
|
+
break;
|
|
209372
|
+
dumpState.delete(key2);
|
|
209373
|
+
evicted++;
|
|
209374
|
+
}
|
|
209375
|
+
}
|
|
209358
209376
|
function enqueueDumpRequest(agentIdOrSessionId, callback) {
|
|
209359
209377
|
if (!dumpRequestQueue.has(agentIdOrSessionId)) {
|
|
209360
209378
|
dumpRequestQueue.set(agentIdOrSessionId, []);
|
|
@@ -209410,7 +209428,8 @@ function addApiRequestToCache(requestData) {
|
|
|
209410
209428
|
}
|
|
209411
209429
|
}
|
|
209412
209430
|
function getDumpPromptsPath(agentIdOrSessionId) {
|
|
209413
|
-
|
|
209431
|
+
const safeId = (agentIdOrSessionId ?? getSessionId()).replace(/[^a-zA-Z0-9._-]/g, "_");
|
|
209432
|
+
return join48(getClaudeConfigHomeDir(), "dump-prompts", `${safeId}.jsonl`);
|
|
209414
209433
|
}
|
|
209415
209434
|
async function appendToFile(filePath, entries) {
|
|
209416
209435
|
if (entries.length === 0)
|
|
@@ -209489,6 +209508,7 @@ function createDumpPromptsFetch(agentIdOrSessionId) {
|
|
|
209489
209508
|
lastInitFingerprint: ""
|
|
209490
209509
|
};
|
|
209491
209510
|
dumpState.set(agentIdOrSessionId, state);
|
|
209511
|
+
trimDumpState();
|
|
209492
209512
|
let timestamp;
|
|
209493
209513
|
if (init2?.method === "POST" && init2.body) {
|
|
209494
209514
|
if (process.env.USER_TYPE === "ant") {
|
|
@@ -209595,7 +209615,7 @@ function createDumpPromptsFetch(agentIdOrSessionId) {
|
|
|
209595
209615
|
return response;
|
|
209596
209616
|
};
|
|
209597
209617
|
}
|
|
209598
|
-
var MAX_CACHED_REQUESTS = 5, cachedApiRequests, dumpState, dumpRequestQueue, processingPromises, enqueueMutexes;
|
|
209618
|
+
var MAX_CACHED_REQUESTS = 5, cachedApiRequests, dumpState, MAX_DUMP_STATE_SESSIONS = 200, dumpRequestQueue, processingPromises, enqueueMutexes;
|
|
209599
209619
|
var init_dumpPrompts = __esm(() => {
|
|
209600
209620
|
init_state();
|
|
209601
209621
|
init_envUtils();
|
|
@@ -341711,6 +341731,20 @@ var init_KeybindingProviderSetup = __esm(() => {
|
|
|
341711
341731
|
});
|
|
341712
341732
|
|
|
341713
341733
|
// src/services/api/sessionIngress.ts
|
|
341734
|
+
function trimSessionCaches() {
|
|
341735
|
+
for (const map3 of [lastUuidMap, sequentialBySession]) {
|
|
341736
|
+
if (map3.size <= MAX_CACHED_SESSIONS)
|
|
341737
|
+
continue;
|
|
341738
|
+
const excess = map3.size - MAX_CACHED_SESSIONS;
|
|
341739
|
+
let evicted = 0;
|
|
341740
|
+
for (const key2 of map3.keys()) {
|
|
341741
|
+
if (evicted >= excess)
|
|
341742
|
+
break;
|
|
341743
|
+
map3.delete(key2);
|
|
341744
|
+
evicted++;
|
|
341745
|
+
}
|
|
341746
|
+
}
|
|
341747
|
+
}
|
|
341714
341748
|
function getOrCreateSequential(sessionId) {
|
|
341715
341749
|
let wrapper = sequentialBySession.get(sessionId);
|
|
341716
341750
|
if (!wrapper) {
|
|
@@ -341724,6 +341758,7 @@ function getOrCreateSequential(sessionId) {
|
|
|
341724
341758
|
}
|
|
341725
341759
|
});
|
|
341726
341760
|
sequentialBySession.set(sessionId, wrapper);
|
|
341761
|
+
trimSessionCaches();
|
|
341727
341762
|
}
|
|
341728
341763
|
return wrapper;
|
|
341729
341764
|
}
|
|
@@ -342002,7 +342037,7 @@ function clearAllSessions() {
|
|
|
342002
342037
|
lastUuidMap.clear();
|
|
342003
342038
|
sequentialBySession.clear();
|
|
342004
342039
|
}
|
|
342005
|
-
var lastUuidMap, MAX_RETRIES = 5, BASE_DELAY_MS2 = 500, sequentialBySession;
|
|
342040
|
+
var lastUuidMap, MAX_CACHED_SESSIONS = 500, MAX_RETRIES = 5, BASE_DELAY_MS2 = 500, sequentialBySession;
|
|
342006
342041
|
var init_sessionIngress = __esm(() => {
|
|
342007
342042
|
init_axios2();
|
|
342008
342043
|
init_oauth();
|
|
@@ -404036,7 +404071,8 @@ function getAssistantMessageFromError(error49, model, options) {
|
|
|
404036
404071
|
errorDetails: error49.message
|
|
404037
404072
|
});
|
|
404038
404073
|
}
|
|
404039
|
-
|
|
404074
|
+
const afkModeBetaHeader = getAfkModeBetaHeader();
|
|
404075
|
+
if (afkModeBetaHeader && error49 instanceof APIError && error49.status === 400 && error49.message.includes(afkModeBetaHeader) && error49.message.includes("anthropic-beta")) {
|
|
404040
404076
|
return createAssistantAPIErrorMessage({
|
|
404041
404077
|
content: "Auto mode is unavailable for your plan",
|
|
404042
404078
|
error: "invalid_request"
|
|
@@ -563346,7 +563382,8 @@ function migrateBypassPermissionsAcceptedToSettings() {
|
|
|
563346
563382
|
}
|
|
563347
563383
|
try {
|
|
563348
563384
|
if (!hasSkipDangerousModePermissionPrompt()) {
|
|
563349
|
-
const
|
|
563385
|
+
const effectiveSkip = ["userSettings", "localSettings", "flagSettings", "policySettings"].map((source) => getSettingsForSource(source)?.skipDangerousModePermissionPrompt).find((value) => value !== undefined);
|
|
563386
|
+
const userExplicitlyOptedOut = effectiveSkip === false;
|
|
563350
563387
|
if (!userExplicitlyOptedOut) {
|
|
563351
563388
|
updateSettingsForSource("userSettings", {
|
|
563352
563389
|
skipDangerousModePermissionPrompt: true
|
|
@@ -563373,6 +563410,7 @@ var init_migrateBypassPermissionsAcceptedToSettings = __esm(() => {
|
|
|
563373
563410
|
});
|
|
563374
563411
|
|
|
563375
563412
|
// src/migrations/migrateEnableAllProjectMcpServersToSettings.ts
|
|
563413
|
+
import { createHash as createHash21 } from "crypto";
|
|
563376
563414
|
function migrateEnableAllProjectMcpServersToSettings() {
|
|
563377
563415
|
const globalConfig2 = getGlobalConfig();
|
|
563378
563416
|
if (globalConfig2.hasCompletedMcpServerMigration) {
|
|
@@ -563425,8 +563463,9 @@ function migrateEnableAllProjectMcpServersToSettings() {
|
|
|
563425
563463
|
}
|
|
563426
563464
|
const overlappingServers = existingEnabledServers.filter((server) => existingDisabledServers.includes(server));
|
|
563427
563465
|
if (overlappingServers.length > 0) {
|
|
563466
|
+
const hashedServers = overlappingServers.map((server) => createHash21("sha256").update(server).digest("hex").slice(0, 16));
|
|
563428
563467
|
logEvent("tengu_migrate_mcp_server_conflict_resolved", {
|
|
563429
|
-
overlappingServers:
|
|
563468
|
+
overlappingServers: hashedServers.join(","),
|
|
563430
563469
|
conflictResolution: "removed_from_disabled"
|
|
563431
563470
|
});
|
|
563432
563471
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@funnycode/myclaude",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.184",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "An open-source AI coding assistant in your terminal - powered by Claude",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"start": "bun run ./src/dev-entry.ts",
|
|
24
24
|
"test": "bun test",
|
|
25
25
|
"test:watch": "bun test --watch",
|
|
26
|
+
"test:perf": "bun test src/tests/performance-regression.test.ts",
|
|
26
27
|
"build": "bun run ./scripts/build.ts",
|
|
27
28
|
"prepublishOnly": "bun run build",
|
|
28
29
|
"version": "bun run ./src/dev-entry.ts --version"
|