imcodes 2026.4.1785-dev.1761 → 2026.4.1786-dev.1762

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.
@@ -16,7 +16,9 @@ export interface CopilotRuntimeConfig {
16
16
  probeError?: string;
17
17
  }
18
18
  /** Fetch the current Copilot runtime config (available models + auth state).
19
- * Cached for {@link CACHE_TTL_MS} unless `force` is true. Never throws. */
19
+ * Cached for {@link CACHE_TTL_MS} unless `force` is true. Never throws.
20
+ * Concurrent callers share a single in-flight probe so we never spawn more
21
+ * than one CopilotClient (see `clientPromise` comment). */
20
22
  export declare function getCopilotRuntimeConfig(force?: boolean): Promise<CopilotRuntimeConfig>;
21
23
  export declare const COPILOT_FALLBACK_MODEL_IDS: string[];
22
24
  /** Exposed for tests. */
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-runtime-config.d.ts","sourceRoot":"","sources":["../../../src/agent/copilot-runtime-config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,yFAAyF;IACzF,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,0DAA0D;IAC1D,eAAe,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8ED;4EAC4E;AAC5E,wBAAsB,uBAAuB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAM1F;AAED,eAAO,MAAM,0BAA0B,UAA6B,CAAC;AAErE,yBAAyB;AACzB,eAAO,MAAM,+BAA+B;;CAI3C,CAAC"}
1
+ {"version":3,"file":"copilot-runtime-config.d.ts","sourceRoot":"","sources":["../../../src/agent/copilot-runtime-config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,yFAAyF;IACzF,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,0DAA0D;IAC1D,eAAe,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAsGD;;;4DAG4D;AAC5D,wBAAsB,uBAAuB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAc1F;AAED,eAAO,MAAM,0BAA0B,UAA6B,CAAC;AAErE,yBAAyB;AACzB,eAAO,MAAM,+BAA+B;;CAM3C,CAAC"}
@@ -10,13 +10,39 @@ const FALLBACK_COPILOT_MODEL_IDS = [
10
10
  'claude-sonnet-4.5',
11
11
  'claude-opus-4.5',
12
12
  ];
13
- async function probeCopilotSdk() {
14
- let client = null;
15
- try {
13
+ // ── Singleton CopilotClient ──────────────────────────────────────────────────
14
+ //
15
+ // The `@github/copilot-sdk` CopilotClient owns a `copilot --headless` node
16
+ // subprocess (~160MB RSS). Earlier revisions called `new CopilotClient() →
17
+ // start() → stop()` on every probe, but `stop()` does not reliably reap the
18
+ // headless child — the daemon observed 13+ leaked copilot procs in 2 minutes,
19
+ // burning ~2GB. So we maintain ONE client for the daemon's lifetime and
20
+ // simply re-invoke `getStatus`/`listModels`/`getAuthStatus` against it.
21
+ //
22
+ // `clientPromise` also doubles as a concurrent-call dedupe: multiple probes
23
+ // racing through the cache-miss branch await the same init, instead of each
24
+ // spawning its own subprocess.
25
+ let clientPromise = null;
26
+ let inFlightProbe = null;
27
+ async function getCopilotClient() {
28
+ if (clientPromise)
29
+ return clientPromise;
30
+ clientPromise = (async () => {
16
31
  const sdk = await import('@github/copilot-sdk');
17
- // Intentionally do NOT pass cliPath let the SDK use its bundled CLI.
18
- client = new sdk.CopilotClient({ autoStart: false });
32
+ const client = new sdk.CopilotClient({ autoStart: false });
19
33
  await client.start();
34
+ return client;
35
+ })().catch((err) => {
36
+ // On start failure, tear down the promise so the next call retries —
37
+ // otherwise every future call would resolve to the same failed promise.
38
+ clientPromise = null;
39
+ throw err;
40
+ });
41
+ return clientPromise;
42
+ }
43
+ async function probeCopilotSdk() {
44
+ try {
45
+ const client = await getCopilotClient();
20
46
  let cliVersion;
21
47
  try {
22
48
  const status = await client.getStatus();
@@ -74,30 +100,36 @@ async function probeCopilotSdk() {
74
100
  probeError: message,
75
101
  };
76
102
  }
77
- finally {
78
- if (client) {
79
- try {
80
- await client.stop();
81
- }
82
- catch { /* best-effort */ }
83
- }
84
- }
85
103
  }
86
104
  /** Fetch the current Copilot runtime config (available models + auth state).
87
- * Cached for {@link CACHE_TTL_MS} unless `force` is true. Never throws. */
105
+ * Cached for {@link CACHE_TTL_MS} unless `force` is true. Never throws.
106
+ * Concurrent callers share a single in-flight probe so we never spawn more
107
+ * than one CopilotClient (see `clientPromise` comment). */
88
108
  export async function getCopilotRuntimeConfig(force = false) {
89
109
  const now = Date.now();
90
110
  if (!force && cached && cached.expiresAt > now)
91
111
  return cached.value;
92
- const value = await probeCopilotSdk();
93
- cached = { expiresAt: now + CACHE_TTL_MS, value };
94
- return value;
112
+ if (inFlightProbe)
113
+ return inFlightProbe;
114
+ inFlightProbe = (async () => {
115
+ try {
116
+ const value = await probeCopilotSdk();
117
+ cached = { expiresAt: Date.now() + CACHE_TTL_MS, value };
118
+ return value;
119
+ }
120
+ finally {
121
+ inFlightProbe = null;
122
+ }
123
+ })();
124
+ return inFlightProbe;
95
125
  }
96
126
  export const COPILOT_FALLBACK_MODEL_IDS = FALLBACK_COPILOT_MODEL_IDS;
97
127
  /** Exposed for tests. */
98
128
  export const __copilotRuntimeConfigInternals = {
99
129
  clearCache: () => {
100
130
  cached = null;
131
+ inFlightProbe = null;
132
+ clientPromise = null;
101
133
  },
102
134
  };
103
135
  //# sourceMappingURL=copilot-runtime-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-runtime-config.js","sourceRoot":"","sources":["../../../src/agent/copilot-runtime-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot-runtime-config.js","sourceRoot":"","sources":["../../../src/agent/copilot-runtime-config.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,MAAM,YAAY,GAAG,MAAM,CAAC;AAqB5B,IAAI,MAAM,GAA8D,IAAI,CAAC;AAE7E;;+EAE+E;AAC/E,MAAM,0BAA0B,GAAG;IACjC,OAAO;IACP,YAAY;IACZ,mBAAmB;IACnB,iBAAiB;CAClB,CAAC;AAEF,gFAAgF;AAChF,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,wEAAwE;AACxE,wEAAwE;AACxE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,+BAA+B;AAE/B,IAAI,aAAa,GAA4B,IAAI,CAAC;AAClD,IAAI,aAAa,GAAyC,IAAI,CAAC;AAE/D,KAAK,UAAU,gBAAgB;IAC7B,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IACxC,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACjB,qEAAqE;QACrE,wEAAwE;QACxE,aAAa,GAAG,IAAI,CAAC;QACrB,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAS,CAAC;QAC/C,IAAI,UAA8B,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBAAE,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;QAChF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,gCAAgC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1C,eAAe,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,oCAAoC,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;wBAAE,SAAS;oBACrD,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/D,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,eAAe,KAAK,IAAI;4BACxD,CAAC,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE;4BACnC,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,4DAA4D,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;YACvC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC;QACpC,OAAO;YACL,eAAe;YACf,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1E,eAAe;YACf,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,sDAAsD,CAAC,CAAC;QAC7E,OAAO;YACL,eAAe,EAAE,CAAC,GAAG,0BAA0B,CAAC;YAChD,MAAM,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxD,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,OAAO;SACpB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;4DAG4D;AAC5D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAAK,GAAG,KAAK;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,CAAC,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACpE,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IACxC,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;YACtC,MAAM,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,0BAA0B,CAAC;AAErE,yBAAyB;AACzB,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,UAAU,EAAE,GAAG,EAAE;QACf,MAAM,GAAG,IAAI,CAAC;QACd,aAAa,GAAG,IAAI,CAAC;QACrB,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-runtime-config.d.ts","sourceRoot":"","sources":["../../../src/agent/cursor-runtime-config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAUD,iBAAS,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,eAAe,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAehG;AAED,iBAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CASzF;AAyBD;;gEAEgE;AAChE,wBAAsB,sBAAsB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA4BxF;AAED,yBAAyB;AACzB,eAAO,MAAM,8BAA8B;;;;CAM1C,CAAC"}
1
+ {"version":3,"file":"cursor-runtime-config.d.ts","sourceRoot":"","sources":["../../../src/agent/cursor-runtime-config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAWD,iBAAS,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,eAAe,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAehG;AAED,iBAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CASzF;AAyBD;;gEAEgE;AAChE,wBAAsB,sBAAsB,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuCxF;AAED,yBAAyB;AACzB,eAAO,MAAM,8BAA8B;;;;CAO1C,CAAC"}
@@ -5,6 +5,7 @@ const CURSOR_BIN = 'cursor-agent';
5
5
  const CACHE_TTL_MS = 60_000;
6
6
  const PROBE_TIMEOUT_MS = 10_000;
7
7
  let cached = null;
8
+ let inFlightProbe = null;
8
9
  /** Strip ANSI escape codes that the cursor CLI emits when stdout is a TTY.
9
10
  * Works on a best-effort basis — we only need clean lines for parsing. */
10
11
  function stripAnsi(text) {
@@ -65,31 +66,45 @@ export async function getCursorRuntimeConfig(force = false) {
65
66
  const now = Date.now();
66
67
  if (!force && cached && cached.expiresAt > now)
67
68
  return cached.value;
68
- const resolved = resolveExecutableForSpawn(CURSOR_BIN);
69
- let modelsOut = '';
70
- try {
71
- modelsOut = await execFileStdout(resolved.executable, [...resolved.prependArgs, '--list-models']);
72
- }
73
- catch (err) {
74
- logger.warn({ err }, 'cursor-agent --list-models probe failed');
75
- }
76
- let statusOut = '';
77
- try {
78
- statusOut = await execFileStdout(resolved.executable, [...resolved.prependArgs, 'status']);
79
- }
80
- catch (err) {
81
- logger.debug({ err }, 'cursor-agent status probe failed');
82
- }
83
- const { availableModels, defaultModel } = parseListModelsOutput(modelsOut);
84
- const auth = parseStatusOutput(statusOut);
85
- const value = {
86
- availableModels,
87
- ...(defaultModel ? { defaultModel } : {}),
88
- ...(auth.loggedInAs ? { loggedInAs: auth.loggedInAs } : {}),
89
- isAuthenticated: auth.isAuthenticated,
90
- };
91
- cached = { expiresAt: now + CACHE_TTL_MS, value };
92
- return value;
69
+ // Share a single in-flight probe across concurrent callers. The two
70
+ // `cursor-agent` exec calls take up to PROBE_TIMEOUT_MS (10s) each — without
71
+ // this dedupe, every cache-miss caller (session-list, command-handler,
72
+ // session-manager) would start its own pair of execs in parallel.
73
+ if (inFlightProbe)
74
+ return inFlightProbe;
75
+ inFlightProbe = (async () => {
76
+ try {
77
+ const resolved = resolveExecutableForSpawn(CURSOR_BIN);
78
+ let modelsOut = '';
79
+ try {
80
+ modelsOut = await execFileStdout(resolved.executable, [...resolved.prependArgs, '--list-models']);
81
+ }
82
+ catch (err) {
83
+ logger.warn({ err }, 'cursor-agent --list-models probe failed');
84
+ }
85
+ let statusOut = '';
86
+ try {
87
+ statusOut = await execFileStdout(resolved.executable, [...resolved.prependArgs, 'status']);
88
+ }
89
+ catch (err) {
90
+ logger.debug({ err }, 'cursor-agent status probe failed');
91
+ }
92
+ const { availableModels, defaultModel } = parseListModelsOutput(modelsOut);
93
+ const auth = parseStatusOutput(statusOut);
94
+ const value = {
95
+ availableModels,
96
+ ...(defaultModel ? { defaultModel } : {}),
97
+ ...(auth.loggedInAs ? { loggedInAs: auth.loggedInAs } : {}),
98
+ isAuthenticated: auth.isAuthenticated,
99
+ };
100
+ cached = { expiresAt: Date.now() + CACHE_TTL_MS, value };
101
+ return value;
102
+ }
103
+ finally {
104
+ inFlightProbe = null;
105
+ }
106
+ })();
107
+ return inFlightProbe;
93
108
  }
94
109
  /** Exposed for tests. */
95
110
  export const __cursorRuntimeConfigInternals = {
@@ -97,6 +112,7 @@ export const __cursorRuntimeConfigInternals = {
97
112
  parseStatusOutput,
98
113
  clearCache: () => {
99
114
  cached = null;
115
+ inFlightProbe = null;
100
116
  },
101
117
  };
102
118
  //# sourceMappingURL=cursor-runtime-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-runtime-config.js","sourceRoot":"","sources":["../../../src/agent/cursor-runtime-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor-runtime-config.js","sourceRoot":"","sources":["../../../src/agent/cursor-runtime-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imcodes",
3
- "version": "2026.4.1785-dev.1761",
3
+ "version": "2026.4.1786-dev.1762",
4
4
  "description": "A chat interface for AI coding agents — control Claude Code, Codex, Gemini CLI, OpenCode from browser and mobile",
5
5
  "license": "MIT",
6
6
  "repository": {