@funnycode/myclaude 0.1.86 → 0.1.87

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.86",
8
- BUILD_TIME: "2026-07-17T00:07:06.766Z",
7
+ VERSION: "0.1.87",
8
+ BUILD_TIME: "2026-07-17T07:39:42.011Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -117484,7 +117484,7 @@ var package_default;
117484
117484
  var init_package = __esm(() => {
117485
117485
  package_default = {
117486
117486
  name: "@funnycode/myclaude",
117487
- version: "0.1.86",
117487
+ version: "0.1.87",
117488
117488
  private: false,
117489
117489
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
117490
117490
  license: "MIT",
@@ -210190,8 +210190,7 @@ function addApiRequestToCache(requestData) {
210190
210190
  const metadata = {
210191
210191
  timestamp: new Date().toISOString(),
210192
210192
  request: {
210193
- model: requestData.model,
210194
- requestHash: hashString3(JSON.stringify(requestData))
210193
+ model: requestData.model
210195
210194
  }
210196
210195
  };
210197
210196
  cachedApiRequests.push(metadata);
@@ -300877,6 +300876,30 @@ var init_gracefulShutdown = __esm(() => {
300877
300876
  });
300878
300877
 
300879
300878
  // src/services/api/grove.ts
300879
+ function memoizeWithTTL(fn, ttlMs) {
300880
+ let lastCachedAt = 0;
300881
+ const memoized = memoize_default(fn);
300882
+ const originalClear = memoized.cache.clear.bind(memoized.cache);
300883
+ const wrapped = async (...args) => {
300884
+ const now2 = Date.now();
300885
+ if (lastCachedAt !== 0 && now2 - lastCachedAt >= ttlMs) {
300886
+ originalClear();
300887
+ lastCachedAt = 0;
300888
+ }
300889
+ const result = await memoized(...args);
300890
+ if (result && typeof result === "object" && "success" in result && result.success === true) {
300891
+ lastCachedAt = Date.now();
300892
+ }
300893
+ return result;
300894
+ };
300895
+ wrapped.cache = {
300896
+ clear: () => {
300897
+ originalClear();
300898
+ lastCachedAt = 0;
300899
+ }
300900
+ };
300901
+ return wrapped;
300902
+ }
300880
300903
  async function markGroveNoticeViewed() {
300881
300904
  try {
300882
300905
  await withOAuth401Retry(() => {
@@ -301043,7 +301066,7 @@ var init_grove = __esm(() => {
301043
301066
  init_log3();
301044
301067
  groveConfigLocks = new Map;
301045
301068
  GROVE_CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000;
301046
- getGroveSettings = memoize_default(async () => {
301069
+ getGroveSettings = memoizeWithTTL(async () => {
301047
301070
  if (isEssentialTrafficOnly()) {
301048
301071
  return { success: false };
301049
301072
  }
@@ -301066,8 +301089,8 @@ var init_grove = __esm(() => {
301066
301089
  getGroveSettings.cache.clear?.();
301067
301090
  return { success: false };
301068
301091
  }
301069
- });
301070
- getGroveNoticeConfig = memoize_default(async () => {
301092
+ }, GROVE_CACHE_EXPIRATION_MS);
301093
+ getGroveNoticeConfig = memoizeWithTTL(async () => {
301071
301094
  if (isEssentialTrafficOnly()) {
301072
301095
  return { success: false };
301073
301096
  }
@@ -301101,11 +301124,11 @@ var init_grove = __esm(() => {
301101
301124
  }
301102
301125
  };
301103
301126
  } catch (err2) {
301104
- logForDebugging(`Failed to fetch Grove notice config: ${err2}`);
301127
+ logError2(err2);
301105
301128
  getGroveNoticeConfig.cache.clear?.();
301106
301129
  return { success: false };
301107
301130
  }
301108
- });
301131
+ }, GROVE_CACHE_EXPIRATION_MS);
301109
301132
  });
301110
301133
 
301111
301134
  // src/services/policyLimits/index.ts
@@ -342162,9 +342185,14 @@ async function getTeleportEvents(sessionId, accessToken, orgUUID) {
342162
342185
  logForDebugging(`[teleport] Fetching events from: ${baseUrl}`);
342163
342186
  const all4 = [];
342164
342187
  let cursor;
342188
+ let previousCursor;
342165
342189
  let pages = 0;
342166
342190
  const maxPages = 100;
342167
342191
  while (pages < maxPages) {
342192
+ if (pages > 0 && cursor === previousCursor) {
342193
+ logForDebugging(`[teleport] Cursor stalled (unchanged from page ${pages}); treating as end-of-stream`);
342194
+ break;
342195
+ }
342168
342196
  const params = { limit: 1000 };
342169
342197
  if (cursor !== undefined) {
342170
342198
  params.cursor = cursor;
@@ -342212,6 +342240,7 @@ async function getTeleportEvents(sessionId, accessToken, orgUUID) {
342212
342240
  if (next_cursor == null) {
342213
342241
  break;
342214
342242
  }
342243
+ previousCursor = cursor;
342215
342244
  cursor = next_cursor;
342216
342245
  }
342217
342246
  if (pages >= maxPages) {
@@ -453620,7 +453649,7 @@ async function prefetchPassesEligibility() {
453620
453649
  if (isEssentialTrafficOnly()) {
453621
453650
  return;
453622
453651
  }
453623
- getCachedOrFetchPassesEligibility();
453652
+ getCachedOrFetchPassesEligibility().catch(() => {});
453624
453653
  }
453625
453654
  var CACHE_EXPIRATION_MS, fetchInProgress = null, CURRENCY_SYMBOLS;
453626
453655
  var init_referral = __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.86",
8
- BUILD_TIME: "2026-07-17T00:07:06.766Z",
7
+ VERSION: "0.1.87",
8
+ BUILD_TIME: "2026-07-17T07:39:42.011Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -117484,7 +117484,7 @@ var package_default;
117484
117484
  var init_package = __esm(() => {
117485
117485
  package_default = {
117486
117486
  name: "@funnycode/myclaude",
117487
- version: "0.1.86",
117487
+ version: "0.1.87",
117488
117488
  private: false,
117489
117489
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
117490
117490
  license: "MIT",
@@ -210190,8 +210190,7 @@ function addApiRequestToCache(requestData) {
210190
210190
  const metadata = {
210191
210191
  timestamp: new Date().toISOString(),
210192
210192
  request: {
210193
- model: requestData.model,
210194
- requestHash: hashString3(JSON.stringify(requestData))
210193
+ model: requestData.model
210195
210194
  }
210196
210195
  };
210197
210196
  cachedApiRequests.push(metadata);
@@ -300877,6 +300876,30 @@ var init_gracefulShutdown = __esm(() => {
300877
300876
  });
300878
300877
 
300879
300878
  // src/services/api/grove.ts
300879
+ function memoizeWithTTL(fn, ttlMs) {
300880
+ let lastCachedAt = 0;
300881
+ const memoized = memoize_default(fn);
300882
+ const originalClear = memoized.cache.clear.bind(memoized.cache);
300883
+ const wrapped = async (...args) => {
300884
+ const now2 = Date.now();
300885
+ if (lastCachedAt !== 0 && now2 - lastCachedAt >= ttlMs) {
300886
+ originalClear();
300887
+ lastCachedAt = 0;
300888
+ }
300889
+ const result = await memoized(...args);
300890
+ if (result && typeof result === "object" && "success" in result && result.success === true) {
300891
+ lastCachedAt = Date.now();
300892
+ }
300893
+ return result;
300894
+ };
300895
+ wrapped.cache = {
300896
+ clear: () => {
300897
+ originalClear();
300898
+ lastCachedAt = 0;
300899
+ }
300900
+ };
300901
+ return wrapped;
300902
+ }
300880
300903
  async function markGroveNoticeViewed() {
300881
300904
  try {
300882
300905
  await withOAuth401Retry(() => {
@@ -301043,7 +301066,7 @@ var init_grove = __esm(() => {
301043
301066
  init_log3();
301044
301067
  groveConfigLocks = new Map;
301045
301068
  GROVE_CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000;
301046
- getGroveSettings = memoize_default(async () => {
301069
+ getGroveSettings = memoizeWithTTL(async () => {
301047
301070
  if (isEssentialTrafficOnly()) {
301048
301071
  return { success: false };
301049
301072
  }
@@ -301066,8 +301089,8 @@ var init_grove = __esm(() => {
301066
301089
  getGroveSettings.cache.clear?.();
301067
301090
  return { success: false };
301068
301091
  }
301069
- });
301070
- getGroveNoticeConfig = memoize_default(async () => {
301092
+ }, GROVE_CACHE_EXPIRATION_MS);
301093
+ getGroveNoticeConfig = memoizeWithTTL(async () => {
301071
301094
  if (isEssentialTrafficOnly()) {
301072
301095
  return { success: false };
301073
301096
  }
@@ -301101,11 +301124,11 @@ var init_grove = __esm(() => {
301101
301124
  }
301102
301125
  };
301103
301126
  } catch (err2) {
301104
- logForDebugging(`Failed to fetch Grove notice config: ${err2}`);
301127
+ logError2(err2);
301105
301128
  getGroveNoticeConfig.cache.clear?.();
301106
301129
  return { success: false };
301107
301130
  }
301108
- });
301131
+ }, GROVE_CACHE_EXPIRATION_MS);
301109
301132
  });
301110
301133
 
301111
301134
  // src/services/policyLimits/index.ts
@@ -342162,9 +342185,14 @@ async function getTeleportEvents(sessionId, accessToken, orgUUID) {
342162
342185
  logForDebugging(`[teleport] Fetching events from: ${baseUrl}`);
342163
342186
  const all4 = [];
342164
342187
  let cursor;
342188
+ let previousCursor;
342165
342189
  let pages = 0;
342166
342190
  const maxPages = 100;
342167
342191
  while (pages < maxPages) {
342192
+ if (pages > 0 && cursor === previousCursor) {
342193
+ logForDebugging(`[teleport] Cursor stalled (unchanged from page ${pages}); treating as end-of-stream`);
342194
+ break;
342195
+ }
342168
342196
  const params = { limit: 1000 };
342169
342197
  if (cursor !== undefined) {
342170
342198
  params.cursor = cursor;
@@ -342212,6 +342240,7 @@ async function getTeleportEvents(sessionId, accessToken, orgUUID) {
342212
342240
  if (next_cursor == null) {
342213
342241
  break;
342214
342242
  }
342243
+ previousCursor = cursor;
342215
342244
  cursor = next_cursor;
342216
342245
  }
342217
342246
  if (pages >= maxPages) {
@@ -453620,7 +453649,7 @@ async function prefetchPassesEligibility() {
453620
453649
  if (isEssentialTrafficOnly()) {
453621
453650
  return;
453622
453651
  }
453623
- getCachedOrFetchPassesEligibility();
453652
+ getCachedOrFetchPassesEligibility().catch(() => {});
453624
453653
  }
453625
453654
  var CACHE_EXPIRATION_MS, fetchInProgress = null, CURRENCY_SYMBOLS;
453626
453655
  var init_referral = __esm(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funnycode/myclaude",
3
- "version": "0.1.86",
3
+ "version": "0.1.87",
4
4
  "private": false,
5
5
  "description": "An open-source AI coding assistant in your terminal - powered by Claude",
6
6
  "license": "MIT",