@proxysoul/soulforge 2.13.0 → 2.13.2

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/index.js CHANGED
@@ -41578,7 +41578,7 @@ var package_default;
41578
41578
  var init_package = __esm(() => {
41579
41579
  package_default = {
41580
41580
  name: "@proxysoul/soulforge",
41581
- version: "2.13.0",
41581
+ version: "2.13.2",
41582
41582
  description: "Graph-powered code intelligence \u2014 multi-agent coding with codebase-aware AI",
41583
41583
  repository: {
41584
41584
  type: "git",
@@ -83460,9 +83460,11 @@ function invalidateProviderModelCache(providerId) {
83460
83460
  modelCache.delete(providerId);
83461
83461
  groupedCache.delete(providerId);
83462
83462
  }
83463
- async function fetchProviderModels(providerId) {
83463
+ async function fetchProviderModels(providerId, {
83464
+ bypassCache = false
83465
+ } = {}) {
83464
83466
  const entry = modelCache.get(providerId);
83465
- if (entry && Date.now() - entry.ts <= MODEL_CACHE_TTL)
83467
+ if (!bypassCache && entry && Date.now() - entry.ts <= MODEL_CACHE_TTL)
83466
83468
  return {
83467
83469
  models: entry.models
83468
83470
  };
@@ -83532,9 +83534,11 @@ function getCachedGroupedModels(providerId) {
83532
83534
  function titleCase(s) {
83533
83535
  return s.charAt(0).toUpperCase() + s.slice(1);
83534
83536
  }
83535
- async function fetchGroupedModels(providerId) {
83537
+ async function fetchGroupedModels(providerId, {
83538
+ bypassCache = false
83539
+ } = {}) {
83536
83540
  const entry = groupedCache.get(providerId);
83537
- if (entry && Date.now() - entry.ts <= MODEL_CACHE_TTL)
83541
+ if (!bypassCache && entry && Date.now() - entry.ts <= MODEL_CACHE_TTL)
83538
83542
  return entry.result;
83539
83543
  if (providerId === "vercel_gateway")
83540
83544
  return fetchVercelGatewayGrouped();
@@ -84323,6 +84327,47 @@ var init_provider_options = __esm(() => {
84323
84327
  };
84324
84328
  });
84325
84329
 
84330
+ // src/core/retry/settings.ts
84331
+ function resolveRetrySettings(raw, opts = {}) {
84332
+ const defaultBase = opts.agent ? DEFAULT_AGENT_BASE_DELAY_MS : DEFAULT_CHAT_BASE_DELAY_MS;
84333
+ const obj = raw && typeof raw === "object" ? raw : null;
84334
+ const maxRetries = clampIntMin(obj?.maxAttempts, MIN_MAX_ATTEMPTS, DEFAULT_MAX_RETRIES, "retry.maxAttempts");
84335
+ const baseDelayMs = clampInt(obj?.baseDelayMs, MIN_BASE_DELAY_MS, MAX_BASE_DELAY_MS, defaultBase, "retry.baseDelayMs");
84336
+ return {
84337
+ maxRetries,
84338
+ baseDelayMs
84339
+ };
84340
+ }
84341
+ function clampIntMin(value, min, fallback, key) {
84342
+ if (value === undefined)
84343
+ return fallback;
84344
+ if (typeof value !== "number" || !Number.isFinite(value)) {
84345
+ if (key && !warnedKeys.has(key)) {
84346
+ warnedKeys.add(key);
84347
+ logBackgroundError("config", `${key}: expected a finite number, got ${typeof value === "object" ? JSON.stringify(value) : String(value)} (${typeof value}). Using default ${String(fallback)}.`);
84348
+ }
84349
+ return fallback;
84350
+ }
84351
+ return Math.max(min, Math.round(value));
84352
+ }
84353
+ function clampInt(value, min, max, fallback, key) {
84354
+ if (value === undefined)
84355
+ return fallback;
84356
+ if (typeof value !== "number" || !Number.isFinite(value)) {
84357
+ if (key && !warnedKeys.has(key)) {
84358
+ warnedKeys.add(key);
84359
+ logBackgroundError("config", `${key}: expected a finite number, got ${typeof value === "object" ? JSON.stringify(value) : String(value)} (${typeof value}). Using default ${String(fallback)}.`);
84360
+ }
84361
+ return fallback;
84362
+ }
84363
+ return Math.min(max, Math.max(min, Math.round(value)));
84364
+ }
84365
+ var DEFAULT_AGENT_BASE_DELAY_MS = 2000, DEFAULT_CHAT_BASE_DELAY_MS = 1000, DEFAULT_MAX_RETRIES = 3, MIN_MAX_ATTEMPTS = 1, MIN_BASE_DELAY_MS = 250, MAX_BASE_DELAY_MS = 60000, warnedKeys;
84366
+ var init_settings = __esm(() => {
84367
+ init_errors();
84368
+ warnedKeys = new Set;
84369
+ });
84370
+
84326
84371
  // src/core/coordination/WorkspaceCoordinator.ts
84327
84372
  import { resolve as resolve3, sep } from "path";
84328
84373
  function normalizePath2(p) {
@@ -373817,9 +373862,15 @@ var init_stream_options = __esm(() => {
373817
373862
 
373818
373863
  // src/core/agents/web-search.ts
373819
373864
  function createWebSearchAgent(model, opts) {
373865
+ const {
373866
+ maxRetries: retryMaxRetries
373867
+ } = resolveRetrySettings(loadConfig().retry, {
373868
+ agent: true
373869
+ });
373820
373870
  return new ToolLoopAgent({
373821
373871
  id: "web-search",
373822
373872
  model,
373873
+ maxRetries: retryMaxRetries,
373823
373874
  ...supportsTemperature(getModelId(model)) ? {
373824
373875
  temperature: 0
373825
373876
  } : {},
@@ -373877,7 +373928,9 @@ Output a clear, well-structured summary of your findings. Include source URLs fo
373877
373928
  var init_web_search = __esm(() => {
373878
373929
  init_dist22();
373879
373930
  init_zod();
373931
+ init_config();
373880
373932
  init_provider_options();
373933
+ init_settings();
373881
373934
  init_fetch_page();
373882
373935
  init_web_search_scraper();
373883
373936
  init_stream_options();
@@ -376887,9 +376940,15 @@ function createCodeAgent(model, options) {
376887
376940
  disablePruning: options?.disablePruning,
376888
376941
  tabId: options?.tabId
376889
376942
  });
376943
+ const {
376944
+ maxRetries: retryMaxRetries
376945
+ } = resolveRetrySettings(loadConfig().retry, {
376946
+ agent: true
376947
+ });
376890
376948
  return new ToolLoopAgent({
376891
376949
  id: options?.agentId ?? "code",
376892
376950
  model,
376951
+ maxRetries: retryMaxRetries,
376893
376952
  ...supportsTemperature(getModelId(model)) ? {
376894
376953
  temperature: 0
376895
376954
  } : {},
@@ -376926,7 +376985,9 @@ Coordination: report_finding after significant changes (paths, what changed, new
376926
376985
  }
376927
376986
  var init_code = __esm(() => {
376928
376987
  init_dist22();
376988
+ init_config();
376929
376989
  init_provider_options();
376990
+ init_settings();
376930
376991
  init_tools();
376931
376992
  init_bus_tools();
376932
376993
  init_step_utils();
@@ -377006,9 +377067,15 @@ function createExploreAgent(model, options) {
377006
377067
  disablePruning: options?.disablePruning,
377007
377068
  tabId: options?.tabId
377008
377069
  });
377070
+ const {
377071
+ maxRetries: retryMaxRetries
377072
+ } = resolveRetrySettings(loadConfig().retry, {
377073
+ agent: true
377074
+ });
377009
377075
  return new ToolLoopAgent({
377010
377076
  id: options?.agentId ?? "explore",
377011
377077
  model,
377078
+ maxRetries: retryMaxRetries,
377012
377079
  ...supportsTemperature(getModelId(model)) ? {
377013
377080
  temperature: 0
377014
377081
  } : {},
@@ -377043,7 +377110,9 @@ Coordination: report_finding after discoveries \u2014 especially shared symbols/
377043
377110
  }
377044
377111
  var init_explore = __esm(() => {
377045
377112
  init_dist22();
377113
+ init_config();
377046
377114
  init_provider_options();
377115
+ init_settings();
377047
377116
  init_tools();
377048
377117
  init_bus_tools();
377049
377118
  init_step_utils();
@@ -381270,35 +381339,6 @@ var init_agent_results = __esm(() => {
381270
381339
  STUB_PATTERNS = ["[Already in your context", "\u2190 file was edited", "\u2190", "[cached]"];
381271
381340
  });
381272
381341
 
381273
- // src/core/retry/settings.ts
381274
- function resolveRetrySettings(raw, opts = {}) {
381275
- const defaultBase = opts.agent ? DEFAULT_AGENT_BASE_DELAY_MS : DEFAULT_CHAT_BASE_DELAY_MS;
381276
- const obj = raw && typeof raw === "object" ? raw : null;
381277
- const maxRetries = clampInt(obj?.maxAttempts, MIN_MAX_ATTEMPTS, MAX_MAX_ATTEMPTS, DEFAULT_MAX_RETRIES, "retry.maxAttempts");
381278
- const baseDelayMs = clampInt(obj?.baseDelayMs, MIN_BASE_DELAY_MS, MAX_BASE_DELAY_MS, defaultBase, "retry.baseDelayMs");
381279
- return {
381280
- maxRetries,
381281
- baseDelayMs
381282
- };
381283
- }
381284
- function clampInt(value, min, max, fallback, key2) {
381285
- if (value === undefined)
381286
- return fallback;
381287
- if (typeof value !== "number" || !Number.isFinite(value)) {
381288
- if (key2 && !warnedKeys.has(key2)) {
381289
- warnedKeys.add(key2);
381290
- logBackgroundError("config", `${key2}: expected a finite number, got ${typeof value === "object" ? JSON.stringify(value) : String(value)} (${typeof value}). Using default ${String(fallback)}.`);
381291
- }
381292
- return fallback;
381293
- }
381294
- return Math.min(max, Math.max(min, Math.round(value)));
381295
- }
381296
- var DEFAULT_AGENT_BASE_DELAY_MS = 2000, DEFAULT_CHAT_BASE_DELAY_MS = 1000, DEFAULT_MAX_RETRIES = 3, MIN_MAX_ATTEMPTS = 1, MAX_MAX_ATTEMPTS = 10, MIN_BASE_DELAY_MS = 250, MAX_BASE_DELAY_MS = 60000, warnedKeys;
381297
- var init_settings = __esm(() => {
381298
- init_errors();
381299
- warnedKeys = new Set;
381300
- });
381301
-
381302
381342
  // src/core/agents/agent-runner.ts
381303
381343
  function getMaxConcurrentAgents() {
381304
381344
  const v = loadConfig().taskRouter?.maxConcurrentAgents;
@@ -383497,9 +383537,13 @@ function createForgeAgent({
383497
383537
  }
383498
383538
  }
383499
383539
  };
383540
+ const {
383541
+ maxRetries: retryMaxRetries
383542
+ } = resolveRetrySettings(loadConfig().retry);
383500
383543
  return new ToolLoopAgent({
383501
383544
  id: "forge",
383502
383545
  model,
383546
+ maxRetries: retryMaxRetries,
383503
383547
  ...supportsTemperature(fullModelId ?? getModelId(model)) ? {
383504
383548
  temperature: 0
383505
383549
  } : {},
@@ -383538,9 +383582,11 @@ var init_forge = __esm(() => {
383538
383582
  init_dist4();
383539
383583
  init_dist22();
383540
383584
  init_zod();
383585
+ init_config();
383541
383586
  init_image_compress();
383542
383587
  init_provider_options();
383543
383588
  init_mcp2();
383589
+ init_settings();
383544
383590
  init_tools();
383545
383591
  init_task_list();
383546
383592
  init_step_utils();
@@ -477341,7 +477387,7 @@ ${description}`,
477341
477387
  queueMicrotaskFlush();
477342
477388
  }
477343
477389
  });
477344
- const STALL_MAX_RETRIES = 2;
477390
+ const STALL_MAX_RETRIES = resolveRetrySettings(effectiveConfig2.retry).maxRetries;
477345
477391
  let stallWatchdog = null;
477346
477392
  let unsubStallWatch1 = null;
477347
477393
  let unsubStallWatch2 = null;
@@ -477643,7 +477689,7 @@ Proceeding without it will significantly reduce capabilities \u2014 no soul tool
477643
477689
  break;
477644
477690
  } catch (err2) {
477645
477691
  const msg = err2 instanceof Error ? err2.message : String(err2);
477646
- const isTransient = /overloaded|529|429|rate.?limit|too many requests|503|502|timeout/i.test(msg);
477692
+ const isTransient = /overloaded|529|429|rate.?limit|too many requests|503|502|timeout|timed out|fetch failed|network|econnreset|econnrefused|enotfound|eai_again|socket hang up|connection (?:error|reset|refused|closed)|stream (?:error|closed)|premature close|terminated|aborted.*connection/i.test(msg);
477647
477693
  if (!isTransient || retry === MAX_TRANSIENT_RETRIES || abortController.signal.aborted) {
477648
477694
  throw err2;
477649
477695
  }
@@ -508040,189 +508086,185 @@ function flattenGrouped(r4) {
508040
508086
  return out2;
508041
508087
  }
508042
508088
  function useAllProviderModels(active) {
508043
- const $5 = import_compiler_runtime59.c(7);
508044
- const [providerData, setProviderData] = import_react100.useState(_temp79);
508045
- const [availability, setAvailability] = import_react100.useState(_temp230);
508046
- let t0;
508047
- let t1;
508048
- if ($5[0] !== active) {
508049
- t0 = () => {
508050
- if (!active) {
508051
- return;
508089
+ const [providerData, setProviderData] = import_react100.useState(() => {
508090
+ const init2 = {};
508091
+ for (const cfg of PROVIDER_CONFIGS) {
508092
+ if (cfg.grouped) {
508093
+ const cached2 = getCachedGroupedModels(cfg.id);
508094
+ init2[cfg.id] = cached2 ? {
508095
+ items: flattenGrouped(cached2),
508096
+ loading: false
508097
+ } : {
508098
+ items: [],
508099
+ loading: true
508100
+ };
508101
+ } else {
508102
+ const cached_0 = getCachedModels(cfg.id);
508103
+ init2[cfg.id] = cached_0 ? {
508104
+ items: cached_0,
508105
+ loading: false
508106
+ } : {
508107
+ items: [],
508108
+ loading: true
508109
+ };
508052
508110
  }
508053
- const init_0 = {};
508054
- let anyStale = false;
508055
- for (const cfg_1 of PROVIDER_CONFIGS) {
508056
- if (cfg_1.grouped) {
508057
- const cached_2 = getCachedGroupedModels(cfg_1.id);
508058
- init_0[cfg_1.id] = cached_2 ? {
508059
- items: flattenGrouped(cached_2),
508060
- loading: false
508061
- } : {
508062
- items: [],
508063
- loading: true
508064
- };
508065
- } else {
508066
- const cached_3 = getCachedModels(cfg_1.id);
508067
- init_0[cfg_1.id] = cached_3 ? {
508068
- items: cached_3,
508069
- loading: false
508070
- } : {
508071
- items: [],
508072
- loading: true
508073
- };
508074
- }
508075
- if (init_0[cfg_1.id]?.loading) {
508076
- anyStale = true;
508077
- }
508111
+ }
508112
+ return init2;
508113
+ });
508114
+ const [availability, setAvailability] = import_react100.useState(() => {
508115
+ const cached_1 = getCachedProviderStatuses();
508116
+ const map2 = new Map;
508117
+ if (cached_1) {
508118
+ for (const s2 of cached_1)
508119
+ map2.set(s2.id, s2.available);
508120
+ } else {
508121
+ for (const cfg_0 of PROVIDER_CONFIGS) {
508122
+ const sk = cfg_0.envVar ? ENV_SK[cfg_0.envVar] : null;
508123
+ map2.set(cfg_0.id, sk ? hasSecret(sk).set : true);
508078
508124
  }
508079
- setProviderData((prev) => {
508080
- const initKeys = Object.keys(init_0);
508081
- const prevKeys = Object.keys(prev);
508082
- if (initKeys.length !== prevKeys.length) {
508125
+ }
508126
+ return map2;
508127
+ });
508128
+ import_react100.useEffect(() => {
508129
+ if (!active)
508130
+ return;
508131
+ const init_0 = {};
508132
+ for (const cfg_1 of PROVIDER_CONFIGS) {
508133
+ if (cfg_1.grouped) {
508134
+ const cached_2 = getCachedGroupedModels(cfg_1.id);
508135
+ init_0[cfg_1.id] = cached_2 ? {
508136
+ items: flattenGrouped(cached_2),
508137
+ loading: false
508138
+ } : {
508139
+ items: [],
508140
+ loading: true
508141
+ };
508142
+ } else {
508143
+ const cached_3 = getCachedModels(cfg_1.id);
508144
+ init_0[cfg_1.id] = cached_3 ? {
508145
+ items: cached_3,
508146
+ loading: false
508147
+ } : {
508148
+ items: [],
508149
+ loading: true
508150
+ };
508151
+ }
508152
+ }
508153
+ setProviderData((prev) => {
508154
+ const initKeys = Object.keys(init_0);
508155
+ const prevKeys = Object.keys(prev);
508156
+ if (initKeys.length !== prevKeys.length)
508157
+ return init_0;
508158
+ for (const k5 of prevKeys) {
508159
+ if (!(k5 in init_0))
508083
508160
  return init_0;
508084
- }
508085
- for (const k5 of prevKeys) {
508086
- if (!(k5 in init_0)) {
508087
- return init_0;
508088
- }
508089
- }
508090
- for (const k_0 of initKeys) {
508091
- const a2 = prev[k_0];
508092
- const b5 = init_0[k_0];
508093
- if (!a2 || !b5 || a2.loading !== b5.loading || a2.items !== b5.items || a2.error !== b5.error) {
508094
- return init_0;
508095
- }
508096
- }
508097
- return prev;
508098
- });
508099
- const cachedStatuses2 = getCachedProviderStatuses();
508100
- if (cachedStatuses2) {
508101
- const map_0 = new Map;
508102
- for (const s_0 of cachedStatuses2) {
508103
- map_0.set(s_0.id, s_0.available);
508104
- }
508105
- setAvailability(map_0);
508106
508161
  }
508107
- let dead = false;
508108
- checkProviders().then((statuses) => {
508109
- if (dead) {
508110
- return;
508111
- }
508112
- const map_1 = new Map;
508113
- for (const s_1 of statuses) {
508114
- map_1.set(s_1.id, s_1.available);
508162
+ for (const k_0 of initKeys) {
508163
+ const a2 = prev[k_0];
508164
+ const b5 = init_0[k_0];
508165
+ if (!a2 || !b5 || a2.loading !== b5.loading || a2.items !== b5.items || a2.error !== b5.error) {
508166
+ return init_0;
508115
508167
  }
508116
- setAvailability(map_1);
508117
- }).catch(_temp322);
508118
- if (!anyStale) {
508119
- return () => {
508120
- dead = true;
508121
- };
508122
508168
  }
508123
- for (const cfg_2 of PROVIDER_CONFIGS) {
508124
- if (!init_0[cfg_2.id]?.loading) {
508125
- continue;
508126
- }
508127
- const set3 = (items, error48) => {
508128
- if (!dead) {
508129
- setProviderData((p2) => ({
508130
- ...p2,
508131
- [cfg_2.id]: {
508132
- items,
508133
- loading: false,
508134
- error: error48
508135
- }
508136
- }));
508169
+ return prev;
508170
+ });
508171
+ const cachedStatuses2 = getCachedProviderStatuses();
508172
+ if (cachedStatuses2) {
508173
+ const map_0 = new Map;
508174
+ for (const s_0 of cachedStatuses2)
508175
+ map_0.set(s_0.id, s_0.available);
508176
+ setAvailability(map_0);
508177
+ }
508178
+ let dead = false;
508179
+ checkProviders().then((statuses) => {
508180
+ if (dead)
508181
+ return;
508182
+ const map_1 = new Map;
508183
+ for (const s_1 of statuses)
508184
+ map_1.set(s_1.id, s_1.available);
508185
+ setAvailability(map_1);
508186
+ }).catch(() => {
508187
+ return;
508188
+ });
508189
+ const now2 = Date.now();
508190
+ const shouldBgRefresh = now2 - lastBgRefresh >= BG_REFRESH_COOLDOWN;
508191
+ const toFetch = [];
508192
+ for (const cfg_2 of PROVIDER_CONFIGS) {
508193
+ const wasCached = !init_0[cfg_2.id]?.loading;
508194
+ if (wasCached && !shouldBgRefresh)
508195
+ continue;
508196
+ toFetch.push({
508197
+ cfg: cfg_2,
508198
+ wasCached
508199
+ });
508200
+ }
508201
+ if (toFetch.length > 0) {
508202
+ const results = new Map;
508203
+ let pending = toFetch.length;
508204
+ const flush2 = () => {
508205
+ if (dead)
508206
+ return;
508207
+ setProviderData((p2) => {
508208
+ const next = {
508209
+ ...p2
508210
+ };
508211
+ for (const [id, val] of results) {
508212
+ next[id] = {
508213
+ items: val.items,
508214
+ loading: false,
508215
+ error: val.error
508216
+ };
508137
508217
  }
508218
+ return next;
508219
+ });
508220
+ if (shouldBgRefresh)
508221
+ lastBgRefresh = Date.now();
508222
+ };
508223
+ const done = (id_0, items, error48) => {
508224
+ results.set(id_0, {
508225
+ items,
508226
+ error: error48
508227
+ });
508228
+ if (--pending === 0)
508229
+ flush2();
508230
+ };
508231
+ for (const {
508232
+ cfg: cfg_3,
508233
+ wasCached: wasCached_0
508234
+ } of toFetch) {
508235
+ const fail = () => {
508236
+ if (!wasCached_0)
508237
+ done(cfg_3.id, []);
508238
+ else if (--pending === 0)
508239
+ flush2();
508138
508240
  };
508139
- const fail = () => set3([]);
508140
- if (cfg_2.grouped) {
508141
- fetchGroupedModels(cfg_2.id).then((r4) => set3(flattenGrouped(r4), r4.error)).catch(fail);
508241
+ if (cfg_3.grouped) {
508242
+ fetchGroupedModels(cfg_3.id, {
508243
+ bypassCache: wasCached_0
508244
+ }).then((r4) => done(cfg_3.id, flattenGrouped(r4), r4.error)).catch(fail);
508142
508245
  } else {
508143
- fetchProviderModels(cfg_2.id).then((r_0) => set3(r_0.models, r_0.error)).catch(fail);
508246
+ fetchProviderModels(cfg_3.id, {
508247
+ bypassCache: wasCached_0
508248
+ }).then((r_0) => done(cfg_3.id, r_0.models, r_0.error)).catch(fail);
508144
508249
  }
508145
508250
  }
508146
- return () => {
508147
- dead = true;
508148
- };
508149
- };
508150
- t1 = [active];
508151
- $5[0] = active;
508152
- $5[1] = t0;
508153
- $5[2] = t1;
508154
- } else {
508155
- t0 = $5[1];
508156
- t1 = $5[2];
508157
- }
508158
- import_react100.useEffect(t0, t1);
508159
- const anyLoading = Object.values(providerData).some(_temp417);
508160
- let t2;
508161
- if ($5[3] !== anyLoading || $5[4] !== availability || $5[5] !== providerData) {
508162
- t2 = {
508163
- providerData,
508164
- availability,
508165
- anyLoading
508166
- };
508167
- $5[3] = anyLoading;
508168
- $5[4] = availability;
508169
- $5[5] = providerData;
508170
- $5[6] = t2;
508171
- } else {
508172
- t2 = $5[6];
508173
- }
508174
- return t2;
508175
- }
508176
- function _temp417(p_0) {
508177
- return p_0.loading;
508178
- }
508179
- function _temp322() {}
508180
- function _temp230() {
508181
- const cached_1 = getCachedProviderStatuses();
508182
- const map2 = new Map;
508183
- if (cached_1) {
508184
- for (const s2 of cached_1) {
508185
- map2.set(s2.id, s2.available);
508186
508251
  }
508187
- } else {
508188
- for (const cfg_0 of PROVIDER_CONFIGS) {
508189
- const sk = cfg_0.envVar ? ENV_SK[cfg_0.envVar] : null;
508190
- map2.set(cfg_0.id, sk ? hasSecret(sk).set : true);
508191
- }
508192
- }
508193
- return map2;
508194
- }
508195
- function _temp79() {
508196
- const init2 = {};
508197
- for (const cfg of PROVIDER_CONFIGS) {
508198
- if (cfg.grouped) {
508199
- const cached2 = getCachedGroupedModels(cfg.id);
508200
- init2[cfg.id] = cached2 ? {
508201
- items: flattenGrouped(cached2),
508202
- loading: false
508203
- } : {
508204
- items: [],
508205
- loading: true
508206
- };
508207
- } else {
508208
- const cached_0 = getCachedModels(cfg.id);
508209
- init2[cfg.id] = cached_0 ? {
508210
- items: cached_0,
508211
- loading: false
508212
- } : {
508213
- items: [],
508214
- loading: true
508215
- };
508216
- }
508217
- }
508218
- return init2;
508252
+ return () => {
508253
+ dead = true;
508254
+ };
508255
+ }, [active]);
508256
+ const anyLoading = import_react100.useMemo(() => Object.values(providerData).some((p_0) => p_0.loading), [providerData]);
508257
+ return {
508258
+ providerData,
508259
+ availability,
508260
+ anyLoading
508261
+ };
508219
508262
  }
508220
- var import_compiler_runtime59, import_react100, ENV_SK;
508263
+ var import_react100, BG_REFRESH_COOLDOWN = 1e4, lastBgRefresh = 0, ENV_SK;
508221
508264
  var init_useAllProviderModels = __esm(() => {
508222
508265
  init_models();
508223
508266
  init_provider();
508224
508267
  init_secrets();
508225
- import_compiler_runtime59 = __toESM(require_compiler_runtime(), 1);
508226
508268
  import_react100 = __toESM(require_react(), 1);
508227
508269
  ENV_SK = {
508228
508270
  ANTHROPIC_API_KEY: "anthropic-api-key",
@@ -508244,7 +508286,7 @@ function fmtCtx(n) {
508244
508286
  return `${String(Math.round(n / 1000))}k`;
508245
508287
  }
508246
508288
  function HeaderRow2(t0) {
508247
- const $5 = import_compiler_runtime60.c(54);
508289
+ const $5 = import_compiler_runtime59.c(54);
508248
508290
  const {
508249
508291
  entry,
508250
508292
  active,
@@ -508427,7 +508469,7 @@ function HeaderRow2(t0) {
508427
508469
  return t13;
508428
508470
  }
508429
508471
  function ModelRow2(t0) {
508430
- const $5 = import_compiler_runtime60.c(50);
508472
+ const $5 = import_compiler_runtime59.c(50);
508431
508473
  const {
508432
508474
  entry,
508433
508475
  active,
@@ -509123,7 +509165,7 @@ function LlmSelector({
509123
509165
  }, undefined, true, undefined, this)
509124
509166
  }, undefined, false, undefined, this);
509125
509167
  }
509126
- var import_compiler_runtime60, import_react102, MAX_W2 = 72;
509168
+ var import_compiler_runtime59, import_react102, MAX_W2 = 72;
509127
509169
  var init_LlmSelector = __esm(async () => {
509128
509170
  init_icons();
509129
509171
  init_models();
@@ -509138,7 +509180,7 @@ var init_LlmSelector = __esm(async () => {
509138
509180
  init_core4(),
509139
509181
  init_react2()
509140
509182
  ]);
509141
- import_compiler_runtime60 = __toESM(require_compiler_runtime(), 1);
509183
+ import_compiler_runtime59 = __toESM(require_compiler_runtime(), 1);
509142
509184
  import_react102 = __toESM(require_react(), 1);
509143
509185
  });
509144
509186
 
@@ -509167,7 +509209,7 @@ function chunk(text3, color, attrs) {
509167
509209
  return c;
509168
509210
  }
509169
509211
  function SessionPicker(t0) {
509170
- const $5 = import_compiler_runtime61.c(161);
509212
+ const $5 = import_compiler_runtime60.c(161);
509171
509213
  const {
509172
509214
  visible,
509173
509215
  cwd: cwd2,
@@ -509281,11 +509323,11 @@ function SessionPicker(t0) {
509281
509323
  return;
509282
509324
  }
509283
509325
  if (evt.name === "backspace" || evt.name === "delete") {
509284
- setRenameValue(_temp80);
509326
+ setRenameValue(_temp79);
509285
509327
  return;
509286
509328
  }
509287
509329
  if (evt.name === "space") {
509288
- setRenameValue(_temp231);
509330
+ setRenameValue(_temp230);
509289
509331
  return;
509290
509332
  }
509291
509333
  if (evt.name && evt.name.length === 1 && !evt.ctrl && !evt.meta) {
@@ -509334,7 +509376,7 @@ function SessionPicker(t0) {
509334
509376
  return;
509335
509377
  }
509336
509378
  if (evt.name === "backspace" || evt.name === "delete") {
509337
- setQuery(_temp323);
509379
+ setQuery(_temp322);
509338
509380
  resetScroll();
509339
509381
  return;
509340
509382
  }
@@ -509363,7 +509405,7 @@ function SessionPicker(t0) {
509363
509405
  return;
509364
509406
  }
509365
509407
  if (evt.name === "space") {
509366
- setQuery(_temp418);
509408
+ setQuery(_temp417);
509367
509409
  resetScroll();
509368
509410
  return;
509369
509411
  }
@@ -509923,19 +509965,19 @@ function SessionPicker(t0) {
509923
509965
  function _temp513(s_0, x4) {
509924
509966
  return s_0 + x4.sizeBytes;
509925
509967
  }
509926
- function _temp418(prev_6) {
509968
+ function _temp417(prev_6) {
509927
509969
  return `${prev_6} `;
509928
509970
  }
509929
- function _temp323(prev_4) {
509971
+ function _temp322(prev_4) {
509930
509972
  return prev_4.slice(0, -1);
509931
509973
  }
509932
- function _temp231(prev_0) {
509974
+ function _temp230(prev_0) {
509933
509975
  return `${prev_0} `;
509934
509976
  }
509935
- function _temp80(prev) {
509977
+ function _temp79(prev) {
509936
509978
  return prev.slice(0, -1);
509937
509979
  }
509938
- var import_compiler_runtime61, import_react104, POPUP_CHROME = 8;
509980
+ var import_compiler_runtime60, import_react104, POPUP_CHROME = 8;
509939
509981
  var init_SessionPicker = __esm(async () => {
509940
509982
  init_icons();
509941
509983
  init_manager5();
@@ -509947,7 +509989,7 @@ var init_SessionPicker = __esm(async () => {
509947
509989
  init_core4(),
509948
509990
  init_react2()
509949
509991
  ]);
509950
- import_compiler_runtime61 = __toESM(require_compiler_runtime(), 1);
509992
+ import_compiler_runtime60 = __toESM(require_compiler_runtime(), 1);
509951
509993
  import_react104 = __toESM(require_react(), 1);
509952
509994
  });
509953
509995
 
@@ -509970,7 +510012,7 @@ function fmtMem(mb) {
509970
510012
  return mb >= 1024 ? `${(mb / 1024).toFixed(1)} GB` : `${String(mb)} MB`;
509971
510013
  }
509972
510014
  function BarRow(t0) {
509973
- const $5 = import_compiler_runtime62.c(51);
510015
+ const $5 = import_compiler_runtime61.c(51);
509974
510016
  const {
509975
510017
  label,
509976
510018
  pct,
@@ -510146,7 +510188,7 @@ function BarRow(t0) {
510146
510188
  return t14;
510147
510189
  }
510148
510190
  function EntryRow(t0) {
510149
- const $5 = import_compiler_runtime62.c(17);
510191
+ const $5 = import_compiler_runtime61.c(17);
510150
510192
  const {
510151
510193
  label,
510152
510194
  value,
@@ -510226,7 +510268,7 @@ function EntryRow(t0) {
510226
510268
  return t8;
510227
510269
  }
510228
510270
  function SectionHeader(t0) {
510229
- const $5 = import_compiler_runtime62.c(6);
510271
+ const $5 = import_compiler_runtime61.c(6);
510230
510272
  const {
510231
510273
  label,
510232
510274
  color,
@@ -510263,7 +510305,7 @@ function SectionHeader(t0) {
510263
510305
  return t3;
510264
510306
  }
510265
510307
  function Spacer(t0) {
510266
- const $5 = import_compiler_runtime62.c(3);
510308
+ const $5 = import_compiler_runtime61.c(3);
510267
510309
  const {
510268
510310
  innerW
510269
510311
  } = t0;
@@ -511051,7 +511093,7 @@ function StatusDashboard({
511051
511093
  ]
511052
511094
  }, undefined, true, undefined, this);
511053
511095
  }
511054
- var import_compiler_runtime62, import_react106, CHROME_ROWS13 = 6, TABS;
511096
+ var import_compiler_runtime61, import_react106, CHROME_ROWS13 = 6, TABS;
511055
511097
  var init_StatusDashboard = __esm(async () => {
511056
511098
  init_instance();
511057
511099
  init_icons();
@@ -511070,14 +511112,14 @@ var init_StatusDashboard = __esm(async () => {
511070
511112
  init_core4(),
511071
511113
  init_react2()
511072
511114
  ]);
511073
- import_compiler_runtime62 = __toESM(require_compiler_runtime(), 1);
511115
+ import_compiler_runtime61 = __toESM(require_compiler_runtime(), 1);
511074
511116
  import_react106 = __toESM(require_react(), 1);
511075
511117
  TABS = ["Context", "System"];
511076
511118
  });
511077
511119
 
511078
511120
  // src/components/modals/TabNamePopup.tsx
511079
511121
  function TabNamePopup(t0) {
511080
- const $5 = import_compiler_runtime63.c(24);
511122
+ const $5 = import_compiler_runtime62.c(24);
511081
511123
  const {
511082
511124
  visible,
511083
511125
  placeholder,
@@ -511122,7 +511164,7 @@ function TabNamePopup(t0) {
511122
511164
  return;
511123
511165
  }
511124
511166
  if (evt.name === "backspace" || evt.name === "delete") {
511125
- setValue2(_temp81);
511167
+ setValue2(_temp80);
511126
511168
  return;
511127
511169
  }
511128
511170
  if (evt.name && evt.name.length === 1 && !evt.ctrl && !evt.meta) {
@@ -511232,16 +511274,16 @@ function TabNamePopup(t0) {
511232
511274
  }
511233
511275
  return t10;
511234
511276
  }
511235
- function _temp81(prev) {
511277
+ function _temp80(prev) {
511236
511278
  return prev.slice(0, -1);
511237
511279
  }
511238
- var import_compiler_runtime63, import_react108, POPUP_WIDTH = 44;
511280
+ var import_compiler_runtime62, import_react108, POPUP_WIDTH = 44;
511239
511281
  var init_TabNamePopup = __esm(async () => {
511240
511282
  init_theme();
511241
511283
  init_shared2();
511242
511284
  init_jsx_dev_runtime();
511243
511285
  await init_react2();
511244
- import_compiler_runtime63 = __toESM(require_compiler_runtime(), 1);
511286
+ import_compiler_runtime62 = __toESM(require_compiler_runtime(), 1);
511245
511287
  import_react108 = __toESM(require_react(), 1);
511246
511288
  });
511247
511289
 
@@ -511250,7 +511292,7 @@ function trunc(s2, max) {
511250
511292
  return s2.length > max ? `${s2.slice(0, max - 1)}\u2026` : s2;
511251
511293
  }
511252
511294
  function Hr3(t0) {
511253
- const $5 = import_compiler_runtime64.c(9);
511295
+ const $5 = import_compiler_runtime63.c(9);
511254
511296
  const {
511255
511297
  w: w5,
511256
511298
  bg: bg2,
@@ -511293,7 +511335,7 @@ function Hr3(t0) {
511293
511335
  return t3;
511294
511336
  }
511295
511337
  function Gap2(t0) {
511296
- const $5 = import_compiler_runtime64.c(4);
511338
+ const $5 = import_compiler_runtime63.c(4);
511297
511339
  const {
511298
511340
  w: w5,
511299
511341
  bg: bg2,
@@ -511325,7 +511367,7 @@ function Gap2(t0) {
511325
511367
  return t2;
511326
511368
  }
511327
511369
  function ChangelogSection(t0) {
511328
- const $5 = import_compiler_runtime64.c(21);
511370
+ const $5 = import_compiler_runtime63.c(21);
511329
511371
  const {
511330
511372
  releases,
511331
511373
  maxLines,
@@ -512610,7 +512652,7 @@ function UpdateModal({
512610
512652
  }, undefined, true, undefined, this)
512611
512653
  }, undefined, false, undefined, this);
512612
512654
  }
512613
- var import_compiler_runtime64, import_react110, UPGRADE_QUIPS, LATEST_QUIPS, CHANGELOG_ERROR_QUIPS, SPINNER2, GHOST_FADE, WISP, MAX_LOG = 50, BOLD6, ITALIC4, DIM3, TYPE_BADGE;
512655
+ var import_compiler_runtime63, import_react110, UPGRADE_QUIPS, LATEST_QUIPS, CHANGELOG_ERROR_QUIPS, SPINNER2, GHOST_FADE, WISP, MAX_LOG = 50, BOLD6, ITALIC4, DIM3, TYPE_BADGE;
512614
512656
  var init_UpdateModal = __esm(async () => {
512615
512657
  init_icons();
512616
512658
  init_theme();
@@ -512623,7 +512665,7 @@ var init_UpdateModal = __esm(async () => {
512623
512665
  init_core4(),
512624
512666
  init_react2()
512625
512667
  ]);
512626
- import_compiler_runtime64 = __toESM(require_compiler_runtime(), 1);
512668
+ import_compiler_runtime63 = __toESM(require_compiler_runtime(), 1);
512627
512669
  import_react110 = __toESM(require_react(), 1);
512628
512670
  UPGRADE_QUIPS = ["Heating the forge\u2026", "Melting down the old version\u2026", "Pouring molten code into the mold\u2026", "Hammering out the bugs\u2026", "Quenching in liquid nitrogen\u2026", "Polishing the new blade\u2026", "Enchanting with fresh runes\u2026", "Consulting the package spirits\u2026", "Negotiating with the registry gods\u2026", "Bribing the dependency elves\u2026", "Aligning the semantic versions\u2026", "Reticulating splines\u2026", "Convincing npm to cooperate\u2026", "Performing arcane rituals\u2026", "Almost there, forgemaster\u2026"];
512629
512671
  LATEST_QUIPS = ["The forge burns bright \u2014 you're on the cutting edge.", "No updates. The blade is already sharp.", "You're running the latest. The gods are pleased.", "Peak version achieved. Nothing to see here.", "Already forged to perfection.", "The scrolls confirm: you're up to date.", "No new runes to inscribe today.", "Your version is so fresh it's still warm."];
@@ -512671,7 +512713,7 @@ function getAgentAccessColors(t2) {
512671
512713
  };
512672
512714
  }
512673
512715
  function EditorSettings(t0) {
512674
- const $5 = import_compiler_runtime65.c(83);
512716
+ const $5 = import_compiler_runtime64.c(83);
512675
512717
  const {
512676
512718
  visible,
512677
512719
  settings,
@@ -513129,7 +513171,7 @@ function EditorSettings(t0) {
513129
513171
  }
513130
513172
  return t23;
513131
513173
  }
513132
- var import_compiler_runtime65, import_react112, AGENT_ACCESS_MODES, AGENT_ACCESS_LABELS, MAX_POPUP_WIDTH9 = 70, CHROME_ROWS14 = 8, ITEMS, ALL_ON, ALL_OFF;
513174
+ var import_compiler_runtime64, import_react112, AGENT_ACCESS_MODES, AGENT_ACCESS_LABELS, MAX_POPUP_WIDTH9 = 70, CHROME_ROWS14 = 8, ITEMS, ALL_ON, ALL_OFF;
513133
513175
  var init_EditorSettings = __esm(async () => {
513134
513176
  init_theme();
513135
513177
  init_usePopupScroll();
@@ -513139,7 +513181,7 @@ var init_EditorSettings = __esm(async () => {
513139
513181
  init_core4(),
513140
513182
  init_react2()
513141
513183
  ]);
513142
- import_compiler_runtime65 = __toESM(require_compiler_runtime(), 1);
513184
+ import_compiler_runtime64 = __toESM(require_compiler_runtime(), 1);
513143
513185
  import_react112 = __toESM(require_react(), 1);
513144
513186
  AGENT_ACCESS_MODES = ["on", "off", "when-open"];
513145
513187
  AGENT_ACCESS_LABELS = {
@@ -513908,7 +513950,7 @@ function langLabel(pkg) {
513908
513950
  return `${pkg.languages.slice(0, 2).join(", ")} +${pkg.languages.length - 2}`;
513909
513951
  }
513910
513952
  function PackageRow(t0) {
513911
- const $5 = import_compiler_runtime66.c(49);
513953
+ const $5 = import_compiler_runtime65.c(49);
513912
513954
  const {
513913
513955
  status,
513914
513956
  isActive,
@@ -514652,7 +514694,7 @@ function LspInstallSearch({
514652
514694
  ]
514653
514695
  }, undefined, true, undefined, this);
514654
514696
  }
514655
- var import_compiler_runtime66, import_react114, MAX_POPUP_WIDTH10 = 110, CHROME_ROWS15 = 10, TABS2, TAB_LABELS, CATEGORY_FILTERS;
514697
+ var import_compiler_runtime65, import_react114, MAX_POPUP_WIDTH10 = 110, CHROME_ROWS15 = 10, TABS2, TAB_LABELS, CATEGORY_FILTERS;
514656
514698
  var init_LspInstallSearch = __esm(async () => {
514657
514699
  init_installer();
514658
514700
  init_server_registry();
@@ -514664,7 +514706,7 @@ var init_LspInstallSearch = __esm(async () => {
514664
514706
  init_core4(),
514665
514707
  init_react2()
514666
514708
  ]);
514667
- import_compiler_runtime66 = __toESM(require_compiler_runtime(), 1);
514709
+ import_compiler_runtime65 = __toESM(require_compiler_runtime(), 1);
514668
514710
  import_react114 = __toESM(require_react(), 1);
514669
514711
  TABS2 = ["search", "installed", "updates", "disabled", "recommended"];
514670
514712
  TAB_LABELS = {
@@ -514833,7 +514875,7 @@ function mcpFooterHints(view, isForm, detailDisabled) {
514833
514875
  }];
514834
514876
  }
514835
514877
  function MCPSettings(t0) {
514836
- const $5 = import_compiler_runtime67.c(162);
514878
+ const $5 = import_compiler_runtime66.c(162);
514837
514879
  const {
514838
514880
  visible,
514839
514881
  mcpManager,
@@ -514855,7 +514897,7 @@ function MCPSettings(t0) {
514855
514897
  const toolPageSize = Math.max(3, Math.floor(maxVisibleRows / 2));
514856
514898
  let t1;
514857
514899
  if ($5[0] !== projectServers) {
514858
- t1 = new Set(projectServers.map(_temp86));
514900
+ t1 = new Set(projectServers.map(_temp81));
514859
514901
  $5[0] = projectServers;
514860
514902
  $5[1] = t1;
514861
514903
  } else {
@@ -514871,7 +514913,7 @@ function MCPSettings(t0) {
514871
514913
  t22 = $5[3];
514872
514914
  }
514873
514915
  const scopeOf = t22;
514874
- const runtimeServers = useMCPStore(_temp232);
514916
+ const runtimeServers = useMCPStore(_temp231);
514875
514917
  let t3;
514876
514918
  if ($5[4] !== runtimeServers) {
514877
514919
  t3 = Object.values(runtimeServers);
@@ -514883,7 +514925,7 @@ function MCPSettings(t0) {
514883
514925
  const serverList = t3;
514884
514926
  let t4;
514885
514927
  if ($5[6] !== serverList) {
514886
- t4 = serverList.flatMap(_temp324);
514928
+ t4 = serverList.flatMap(_temp323);
514887
514929
  $5[6] = serverList;
514888
514930
  $5[7] = t4;
514889
514931
  } else {
@@ -514892,7 +514934,7 @@ function MCPSettings(t0) {
514892
514934
  const allTools = t4;
514893
514935
  let t5;
514894
514936
  if ($5[8] !== serverList) {
514895
- t5 = serverList.filter(_temp419);
514937
+ t5 = serverList.filter(_temp418);
514896
514938
  $5[8] = serverList;
514897
514939
  $5[9] = t5;
514898
514940
  } else {
@@ -515743,23 +515785,23 @@ function _temp68() {}
515743
515785
  function _temp514(e) {
515744
515786
  return !e;
515745
515787
  }
515746
- function _temp419(s_2) {
515788
+ function _temp418(s_2) {
515747
515789
  return s_2.status === "ready";
515748
515790
  }
515749
- function _temp324(s_1) {
515791
+ function _temp323(s_1) {
515750
515792
  return s_1.tools.map((ti) => ({
515751
515793
  ...ti,
515752
515794
  serverStatus: s_1.status
515753
515795
  }));
515754
515796
  }
515755
- function _temp232(s_0) {
515797
+ function _temp231(s_0) {
515756
515798
  return s_0.servers;
515757
515799
  }
515758
- function _temp86(s2) {
515800
+ function _temp81(s2) {
515759
515801
  return s2.name;
515760
515802
  }
515761
515803
  function Sep(t0) {
515762
- const $5 = import_compiler_runtime67.c(2);
515804
+ const $5 = import_compiler_runtime66.c(2);
515763
515805
  const {
515764
515806
  w: w5
515765
515807
  } = t0;
@@ -515776,7 +515818,7 @@ function Sep(t0) {
515776
515818
  return t1;
515777
515819
  }
515778
515820
  function ServerDetail(t0) {
515779
- const $5 = import_compiler_runtime67.c(102);
515821
+ const $5 = import_compiler_runtime66.c(102);
515780
515822
  const {
515781
515823
  server: server2,
515782
515824
  scope,
@@ -516264,7 +516306,7 @@ function _temp112(t_0) {
516264
516306
  return t_0.name;
516265
516307
  }
516266
516308
  function DetailRow(t0) {
516267
- const $5 = import_compiler_runtime67.c(15);
516309
+ const $5 = import_compiler_runtime66.c(15);
516268
516310
  const {
516269
516311
  label,
516270
516312
  value,
@@ -516339,7 +516381,7 @@ function DetailRow(t0) {
516339
516381
  return t6;
516340
516382
  }
516341
516383
  function FormBody(t0) {
516342
- const $5 = import_compiler_runtime67.c(81);
516384
+ const $5 = import_compiler_runtime66.c(81);
516343
516385
  const {
516344
516386
  draft,
516345
516387
  setDraft,
@@ -516683,7 +516725,7 @@ function FormBody(t0) {
516683
516725
  }
516684
516726
  return t23;
516685
516727
  }
516686
- var import_compiler_runtime67, import_react116, STATUS_LABEL, TRANSPORTS, TRANSPORT_LABEL, EMPTY, LABEL, HINT, MAX_WIDTH = 96, CHROME_ROWS16 = 8, MCP_TABS, TabRow, EmptyState, ServerCard, ToolBrowser;
516728
+ var import_compiler_runtime66, import_react116, STATUS_LABEL, TRANSPORTS, TRANSPORT_LABEL, EMPTY, LABEL, HINT, MAX_WIDTH = 96, CHROME_ROWS16 = 8, MCP_TABS, TabRow, EmptyState, ServerCard, ToolBrowser;
516687
516729
  var init_MCPSettings = __esm(async () => {
516688
516730
  init_icons();
516689
516731
  init_theme();
@@ -516695,7 +516737,7 @@ var init_MCPSettings = __esm(async () => {
516695
516737
  init_core4(),
516696
516738
  init_react2()
516697
516739
  ]);
516698
- import_compiler_runtime67 = __toESM(require_compiler_runtime(), 1);
516740
+ import_compiler_runtime66 = __toESM(require_compiler_runtime(), 1);
516699
516741
  import_react116 = __toESM(require_react(), 1);
516700
516742
  STATUS_LABEL = {
516701
516743
  disconnected: "offline",
@@ -516746,7 +516788,7 @@ var init_MCPSettings = __esm(async () => {
516746
516788
  ic: "mcp_tool"
516747
516789
  }];
516748
516790
  TabRow = import_react116.memo(function TabRow2(t0) {
516749
- const $5 = import_compiler_runtime67.c(6);
516791
+ const $5 = import_compiler_runtime66.c(6);
516750
516792
  const {
516751
516793
  view,
516752
516794
  innerW
@@ -516794,7 +516836,7 @@ var init_MCPSettings = __esm(async () => {
516794
516836
  return t22;
516795
516837
  });
516796
516838
  EmptyState = import_react116.memo(function EmptyState2(t0) {
516797
- const $5 = import_compiler_runtime67.c(32);
516839
+ const $5 = import_compiler_runtime66.c(32);
516798
516840
  const {
516799
516841
  innerW
516800
516842
  } = t0;
@@ -516974,7 +517016,7 @@ var init_MCPSettings = __esm(async () => {
516974
517016
  return t15;
516975
517017
  });
516976
517018
  ServerCard = import_react116.memo(function ServerCard2(t0) {
516977
- const $5 = import_compiler_runtime67.c(87);
517019
+ const $5 = import_compiler_runtime66.c(87);
516978
517020
  const {
516979
517021
  server: server2,
516980
517022
  scope,
@@ -517368,7 +517410,7 @@ var init_MCPSettings = __esm(async () => {
517368
517410
  return t26;
517369
517411
  });
517370
517412
  ToolBrowser = import_react116.memo(function ToolBrowser2(t0) {
517371
- const $5 = import_compiler_runtime67.c(73);
517413
+ const $5 = import_compiler_runtime66.c(73);
517372
517414
  const {
517373
517415
  tools,
517374
517416
  filter: filter7,
@@ -517829,7 +517871,7 @@ function detectInitialScope(project) {
517829
517871
  return "global";
517830
517872
  }
517831
517873
  function ProviderSettings(t0) {
517832
- const $5 = import_compiler_runtime68.c(115);
517874
+ const $5 = import_compiler_runtime67.c(115);
517833
517875
  const {
517834
517876
  visible,
517835
517877
  globalConfig: globalConfig2,
@@ -518398,7 +518440,7 @@ function ProviderSettings(t0) {
518398
518440
  }
518399
518441
  return t28;
518400
518442
  }
518401
- var import_compiler_runtime68, import_react118, MAX_POPUP_WIDTH11 = 88, CHROME_ROWS17 = 7, TABS3, TAB_LABELS2, TAB_ICONS, CLAUDE_ITEMS, OPENAI_ITEMS, GENERAL_ITEMS, TAB_ITEMS, DEFAULTS;
518443
+ var import_compiler_runtime67, import_react118, MAX_POPUP_WIDTH11 = 88, CHROME_ROWS17 = 7, TABS3, TAB_LABELS2, TAB_ICONS, CLAUDE_ITEMS, OPENAI_ITEMS, GENERAL_ITEMS, TAB_ITEMS, DEFAULTS;
518402
518444
  var init_ProviderSettings = __esm(async () => {
518403
518445
  init_icons();
518404
518446
  init_theme();
@@ -518409,7 +518451,7 @@ var init_ProviderSettings = __esm(async () => {
518409
518451
  init_core4(),
518410
518452
  init_react2()
518411
518453
  ]);
518412
- import_compiler_runtime68 = __toESM(require_compiler_runtime(), 1);
518454
+ import_compiler_runtime67 = __toESM(require_compiler_runtime(), 1);
518413
518455
  import_react118 = __toESM(require_react(), 1);
518414
518456
  TABS3 = ["claude", "openai", "general"];
518415
518457
  TAB_LABELS2 = {
@@ -519254,7 +519296,7 @@ var init_RepoMapStatusPopup = __esm(async () => {
519254
519296
 
519255
519297
  // src/components/settings/RouterSettings.tsx
519256
519298
  function RouterSettings(t0) {
519257
- const $5 = import_compiler_runtime69.c(78);
519299
+ const $5 = import_compiler_runtime68.c(78);
519258
519300
  const {
519259
519301
  visible,
519260
519302
  router: router2,
@@ -519672,7 +519714,7 @@ function RouterSettings(t0) {
519672
519714
  }
519673
519715
  return t21;
519674
519716
  }
519675
- var import_compiler_runtime69, import_react122, MAX_POPUP_WIDTH12 = 76, CHROME_ROWS18 = 12, ROWS, SELECTABLE, SectionHeader2, SlotRowView, PickerRowView;
519717
+ var import_compiler_runtime68, import_react122, MAX_POPUP_WIDTH12 = 76, CHROME_ROWS18 = 12, ROWS, SELECTABLE, SectionHeader2, SlotRowView, PickerRowView;
519676
519718
  var init_RouterSettings = __esm(async () => {
519677
519719
  init_icons();
519678
519720
  init_theme();
@@ -519683,7 +519725,7 @@ var init_RouterSettings = __esm(async () => {
519683
519725
  init_core4(),
519684
519726
  init_react2()
519685
519727
  ]);
519686
- import_compiler_runtime69 = __toESM(require_compiler_runtime(), 1);
519728
+ import_compiler_runtime68 = __toESM(require_compiler_runtime(), 1);
519687
519729
  import_react122 = __toESM(require_react(), 1);
519688
519730
  ROWS = [
519689
519731
  {
@@ -519772,7 +519814,7 @@ var init_RouterSettings = __esm(async () => {
519772
519814
  return acc;
519773
519815
  }, []);
519774
519816
  SectionHeader2 = import_react122.memo(function SectionHeader3(t0) {
519775
- const $5 = import_compiler_runtime69.c(25);
519817
+ const $5 = import_compiler_runtime68.c(25);
519776
519818
  const {
519777
519819
  title,
519778
519820
  subtitle,
@@ -519900,7 +519942,7 @@ var init_RouterSettings = __esm(async () => {
519900
519942
  return t10;
519901
519943
  });
519902
519944
  SlotRowView = import_react122.memo(function SlotRowView2(t0) {
519903
- const $5 = import_compiler_runtime69.c(25);
519945
+ const $5 = import_compiler_runtime68.c(25);
519904
519946
  const {
519905
519947
  slot,
519906
519948
  modelId,
@@ -520008,7 +520050,7 @@ var init_RouterSettings = __esm(async () => {
520008
520050
  return t12;
520009
520051
  });
520010
520052
  PickerRowView = import_react122.memo(function PickerRowView2(t0) {
520011
- const $5 = import_compiler_runtime69.c(28);
520053
+ const $5 = import_compiler_runtime68.c(28);
520012
520054
  const {
520013
520055
  picker,
520014
520056
  value,
@@ -520115,7 +520157,7 @@ var init_RouterSettings = __esm(async () => {
520115
520157
  import { existsSync as existsSync40 } from "fs";
520116
520158
  import { join as join51 } from "path";
520117
520159
  function SearchSkillRow(t0) {
520118
- const $5 = import_compiler_runtime70.c(33);
520160
+ const $5 = import_compiler_runtime69.c(33);
520119
520161
  const {
520120
520162
  skill,
520121
520163
  isSelected,
@@ -520256,7 +520298,7 @@ function SearchSkillRow(t0) {
520256
520298
  return t12;
520257
520299
  }
520258
520300
  function InstalledSkillRow(t0) {
520259
- const $5 = import_compiler_runtime70.c(24);
520301
+ const $5 = import_compiler_runtime69.c(24);
520260
520302
  const {
520261
520303
  skill,
520262
520304
  isSelected,
@@ -520364,7 +520406,7 @@ function InstalledSkillRow(t0) {
520364
520406
  return t10;
520365
520407
  }
520366
520408
  function ActiveSkillRow(t0) {
520367
- const $5 = import_compiler_runtime70.c(18);
520409
+ const $5 = import_compiler_runtime69.c(18);
520368
520410
  const {
520369
520411
  name: name31,
520370
520412
  isSelected,
@@ -520447,7 +520489,7 @@ function ActiveSkillRow(t0) {
520447
520489
  return t8;
520448
520490
  }
520449
520491
  function ScopeRow(t0) {
520450
- const $5 = import_compiler_runtime70.c(19);
520492
+ const $5 = import_compiler_runtime69.c(19);
520451
520493
  const {
520452
520494
  label,
520453
520495
  description,
@@ -520534,7 +520576,7 @@ function ScopeRow(t0) {
520534
520576
  return t8;
520535
520577
  }
520536
520578
  function SkillSearch(t0) {
520537
- const $5 = import_compiler_runtime70.c(116);
520579
+ const $5 = import_compiler_runtime69.c(116);
520538
520580
  const {
520539
520581
  visible,
520540
520582
  contextManager,
@@ -520611,7 +520653,7 @@ function SkillSearch(t0) {
520611
520653
  const filterQuery = query2.toLowerCase().trim();
520612
520654
  let t6;
520613
520655
  if ($5[5] !== installed) {
520614
- t6 = new Set(installed.map(_temp88));
520656
+ t6 = new Set(installed.map(_temp86));
520615
520657
  $5[5] = installed;
520616
520658
  $5[6] = t6;
520617
520659
  } else {
@@ -520676,7 +520718,7 @@ function SkillSearch(t0) {
520676
520718
  setCursor(0);
520677
520719
  refreshInstalled();
520678
520720
  refreshActive();
520679
- listPopularSkills().then((r4) => setPopular(r4)).catch(_temp233);
520721
+ listPopularSkills().then((r4) => setPopular(r4)).catch(_temp232);
520680
520722
  }
520681
520723
  };
520682
520724
  t12 = [visible, setCursor, refreshActive, refreshInstalled];
@@ -520826,7 +520868,7 @@ function SkillSearch(t0) {
520826
520868
  return;
520827
520869
  }
520828
520870
  if (evt.name === "up" || evt.name === "down") {
520829
- setScopeCursor(_temp325);
520871
+ setScopeCursor(_temp324);
520830
520872
  return;
520831
520873
  }
520832
520874
  if (evt.name === "return") {
@@ -520899,7 +520941,7 @@ function SkillSearch(t0) {
520899
520941
  return;
520900
520942
  }
520901
520943
  if (evt.name === "backspace" || evt.name === "delete") {
520902
- setQuery(_temp420);
520944
+ setQuery(_temp419);
520903
520945
  resetScroll();
520904
520946
  return;
520905
520947
  }
@@ -521402,17 +521444,17 @@ function SkillSearch(t0) {
521402
521444
  function _temp515(prev_3) {
521403
521445
  return `${prev_3} `;
521404
521446
  }
521405
- function _temp420(prev_2) {
521447
+ function _temp419(prev_2) {
521406
521448
  return prev_2.slice(0, -1);
521407
521449
  }
521408
- function _temp325(prev) {
521450
+ function _temp324(prev) {
521409
521451
  return prev === 0 ? 1 : 0;
521410
521452
  }
521411
- function _temp233() {}
521412
- function _temp88(s2) {
521453
+ function _temp232() {}
521454
+ function _temp86(s2) {
521413
521455
  return s2.name;
521414
521456
  }
521415
- var import_compiler_runtime70, import_react124, MAX_POPUP_WIDTH13 = 100, CHROME_ROWS19 = 9, TABS4, TAB_LABELS3;
521457
+ var import_compiler_runtime69, import_react124, MAX_POPUP_WIDTH13 = 100, CHROME_ROWS19 = 9, TABS4, TAB_LABELS3;
521416
521458
  var init_SkillSearch = __esm(async () => {
521417
521459
  init_manager2();
521418
521460
  init_theme();
@@ -521423,7 +521465,7 @@ var init_SkillSearch = __esm(async () => {
521423
521465
  init_core4(),
521424
521466
  init_react2()
521425
521467
  ]);
521426
- import_compiler_runtime70 = __toESM(require_compiler_runtime(), 1);
521468
+ import_compiler_runtime69 = __toESM(require_compiler_runtime(), 1);
521427
521469
  import_react124 = __toESM(require_react(), 1);
521428
521470
  TABS4 = ["search", "installed", "active"];
521429
521471
  TAB_LABELS3 = {
@@ -521435,7 +521477,7 @@ var init_SkillSearch = __esm(async () => {
521435
521477
 
521436
521478
  // src/components/settings/ToolsPopup.tsx
521437
521479
  function ToolsPopup(t0) {
521438
- const $5 = import_compiler_runtime71.c(18);
521480
+ const $5 = import_compiler_runtime70.c(18);
521439
521481
  const {
521440
521482
  visible,
521441
521483
  disabledTools,
@@ -521551,7 +521593,7 @@ function ToolsPopup(t0) {
521551
521593
  }
521552
521594
  return t2;
521553
521595
  }
521554
- var import_compiler_runtime71, import_react126, MAX_POPUP_WIDTH14 = 100, CHROME_ROWS20 = 5, ALL_TOOLS, ToolRow3;
521596
+ var import_compiler_runtime70, import_react126, MAX_POPUP_WIDTH14 = 100, CHROME_ROWS20 = 5, ALL_TOOLS, ToolRow3;
521555
521597
  var init_ToolsPopup = __esm(async () => {
521556
521598
  init_theme();
521557
521599
  init_constants2();
@@ -521559,14 +521601,14 @@ var init_ToolsPopup = __esm(async () => {
521559
521601
  init_shared2();
521560
521602
  init_jsx_dev_runtime();
521561
521603
  await init_react2();
521562
- import_compiler_runtime71 = __toESM(require_compiler_runtime(), 1);
521604
+ import_compiler_runtime70 = __toESM(require_compiler_runtime(), 1);
521563
521605
  import_react126 = __toESM(require_react(), 1);
521564
521606
  ALL_TOOLS = Object.entries(TOOL_CATALOG).map(([name31, desc]) => ({
521565
521607
  name: name31,
521566
521608
  desc
521567
521609
  }));
521568
521610
  ToolRow3 = import_react126.memo(function ToolRow4(t0) {
521569
- const $5 = import_compiler_runtime71.c(21);
521611
+ const $5 = import_compiler_runtime70.c(21);
521570
521612
  const {
521571
521613
  tool: tool4,
521572
521614
  enabled,
@@ -521690,7 +521732,7 @@ function lerpHex3(a2, b5, tVal) {
521690
521732
  return `#${hex3(r4)}${hex3(g3)}${hex3(bl)}`;
521691
521733
  }
521692
521734
  function ShutdownSplash(t0) {
521693
- const $5 = import_compiler_runtime72.c(39);
521735
+ const $5 = import_compiler_runtime71.c(39);
521694
521736
  const {
521695
521737
  phase,
521696
521738
  sessionId,
@@ -521713,7 +521755,7 @@ function ShutdownSplash(t0) {
521713
521755
  let t3;
521714
521756
  if ($5[2] === Symbol.for("react.memo_cache_sentinel")) {
521715
521757
  t2 = () => {
521716
- const timer = setInterval(() => setTick(_temp89), 80);
521758
+ const timer = setInterval(() => setTick(_temp88), 80);
521717
521759
  return () => clearInterval(timer);
521718
521760
  };
521719
521761
  t3 = [];
@@ -521927,11 +521969,11 @@ function ShutdownSplash(t0) {
521927
521969
  }
521928
521970
  return t13;
521929
521971
  }
521930
- function _temp89(t2) {
521972
+ function _temp88(t2) {
521931
521973
  return t2 + 1;
521932
521974
  }
521933
521975
  function CheckpointLegend(t0) {
521934
- const $5 = import_compiler_runtime72.c(35);
521976
+ const $5 = import_compiler_runtime71.c(35);
521935
521977
  const {
521936
521978
  tabId,
521937
521979
  fallbackSpacer
@@ -523369,7 +523411,7 @@ function App({
523369
523411
  ]
523370
523412
  }, undefined, true, undefined, this);
523371
523413
  }
523372
- var import_compiler_runtime72, import_react128, ABORT_ON_LOADING, DEFAULT_TASK_ROUTER, SHUTDOWN_STEPS, KITTY_PROTOCOL_RESPONSE_RE;
523414
+ var import_compiler_runtime71, import_react128, ABORT_ON_LOADING, DEFAULT_TASK_ROUTER, SHUTDOWN_STEPS, KITTY_PROTOCOL_RESPONSE_RE;
523373
523415
  var init_App = __esm(async () => {
523374
523416
  init_shallow2();
523375
523417
  init_config();
@@ -523442,7 +523484,7 @@ var init_App = __esm(async () => {
523442
523484
  init_SkillSearch(),
523443
523485
  init_ToolsPopup()
523444
523486
  ]);
523445
- import_compiler_runtime72 = __toESM(require_compiler_runtime(), 1);
523487
+ import_compiler_runtime71 = __toESM(require_compiler_runtime(), 1);
523446
523488
  import_react128 = __toESM(require_react(), 1);
523447
523489
  startMemoryPoll();
523448
523490
  ABORT_ON_LOADING = new Set(["/clear", "/compact", "/plan", "/session clear", "/session compact", "/session plan"]);
@@ -49515,7 +49515,7 @@ var package_default;
49515
49515
  var init_package = __esm(() => {
49516
49516
  package_default = {
49517
49517
  name: "@proxysoul/soulforge",
49518
- version: "2.13.0",
49518
+ version: "2.13.2",
49519
49519
  description: "Graph-powered code intelligence \u2014 multi-agent coding with codebase-aware AI",
49520
49520
  repository: {
49521
49521
  type: "git",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proxysoul/soulforge",
3
- "version": "2.13.0",
3
+ "version": "2.13.2",
4
4
  "description": "Graph-powered code intelligence — multi-agent coding with codebase-aware AI",
5
5
  "repository": {
6
6
  "type": "git",