anyray-connect 0.11.11 → 0.11.12
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.
|
@@ -55,10 +55,10 @@
|
|
|
55
55
|
*/
|
|
56
56
|
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
57
57
|
import { dirname, join } from 'node:path';
|
|
58
|
-
import { fileExists } from '../util/jsonFile.js';
|
|
58
|
+
import { fileExists, readJson, writeJson } from '../util/jsonFile.js';
|
|
59
59
|
import { appSupportDir } from '../util/appSupport.js';
|
|
60
60
|
import { detectVscodeByok, installedVariant, } from '../util/vscodeState.js';
|
|
61
|
-
import { metadataHeaderValue } from '../types.js';
|
|
61
|
+
import { effectiveSubscription, metadataHeaderValue } from '../types.js';
|
|
62
62
|
/** The provider-group `name` we own — the marker for idempotent merge and revert. */
|
|
63
63
|
const PROVIDER_NAME = 'Anyray';
|
|
64
64
|
/** chatLanguageModels.json for a given VS Code variant (next to settings.json). */
|
|
@@ -190,6 +190,124 @@ const manualSteps = (target, reason) => {
|
|
|
190
190
|
'Reload VS Code, then pick the Anyray model in the Chat model picker.',
|
|
191
191
|
];
|
|
192
192
|
};
|
|
193
|
+
// --- Subscription seat: redirect Copilot Chat via overrideCapiUrl -------------
|
|
194
|
+
//
|
|
195
|
+
// For a dev on a paid Copilot plan we DON'T replace their model (that's BYOK,
|
|
196
|
+
// above) — we keep their Copilot sign-in + model and only REDIRECT where the
|
|
197
|
+
// chat request is sent, by writing VS Code's
|
|
198
|
+
// `github.copilot.advanced.debug.overrideCapiUrl` to the gateway's Copilot seat
|
|
199
|
+
// route. The gateway forwards verbatim to GitHub (the subscription pays), meters
|
|
200
|
+
// content-free, and may optimize server-side. The dev's gateway key rides in the
|
|
201
|
+
// override PATH (the native Copilot client can't send `x-anyray-*` headers), so
|
|
202
|
+
// subscription mode REQUIRES enrollment (`target.clientKey`).
|
|
203
|
+
//
|
|
204
|
+
// NOTE (spike): VS Code's Copilot CHAT extension has historically been
|
|
205
|
+
// inconsistent about honoring `overrideCapiUrl` (github/vscode-copilot-release
|
|
206
|
+
// #7802) — live-verify against the current extension before relying on this.
|
|
207
|
+
/** VS Code User settings.json for a variant (where the override is written). */
|
|
208
|
+
const settingsPath = (variant) => join(appSupportDir(variant), 'User', 'settings.json');
|
|
209
|
+
const COPILOT_ADVANCED_KEY = 'github.copilot.advanced';
|
|
210
|
+
// EXACT key the Copilot Chat extension reads (case-sensitive): the source
|
|
211
|
+
// defines `advanced.debug.overrideCapiUrl` — "Capi", NOT "CAPI". A wrong case is
|
|
212
|
+
// silently ignored by VS Code. See microsoft/vscode-copilot-chat
|
|
213
|
+
// configurationService.ts (ConfigKey.Advanced.DebugOverrideCAPIUrl).
|
|
214
|
+
const OVERRIDE_CAPI_KEY = 'debug.overrideCapiUrl';
|
|
215
|
+
/** The Copilot plan label that selects the gateway's upstream host. From
|
|
216
|
+
* ANYRAY_COPILOT_PLAN (individual|business|enterprise), else `default`. */
|
|
217
|
+
const copilotPlan = () => process.env.ANYRAY_COPILOT_PLAN?.trim() || 'default';
|
|
218
|
+
/** The gateway Copilot-seat base the override points at; the Copilot client
|
|
219
|
+
* appends `/chat/completions`. Carries the plan + the dev's gateway key in-path. */
|
|
220
|
+
const overrideCapiUrl = (target) => `${target.origin.replace(/\/+$/, '')}/v1/copilot/${copilotPlan()}/` +
|
|
221
|
+
encodeURIComponent(target.clientKey ?? '');
|
|
222
|
+
/** Read settings.json as an object; `unrecognized` if it's JSONC/malformed (VS
|
|
223
|
+
* Code allows comments) so we fall back to manual rather than clobbering it. */
|
|
224
|
+
const readSettings = async (path) => {
|
|
225
|
+
try {
|
|
226
|
+
return { kind: 'object', data: await readJson(path) };
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
return { kind: 'unrecognized' };
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
/** A JSON object (not null, not an array) — the shape the advanced block must be
|
|
233
|
+
* for us to safely spread / `in`-probe it. A user could set it to a string. */
|
|
234
|
+
const isPlainObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
235
|
+
/** Merge our overrideCapiUrl into the github.copilot.advanced block, preserving
|
|
236
|
+
* every other advanced key + every other setting. Pure, testable. */
|
|
237
|
+
export const withOverride = (data, url) => {
|
|
238
|
+
const existing = data[COPILOT_ADVANCED_KEY];
|
|
239
|
+
const advanced = isPlainObject(existing) ? { ...existing } : {};
|
|
240
|
+
advanced[OVERRIDE_CAPI_KEY] = url;
|
|
241
|
+
return { ...data, [COPILOT_ADVANCED_KEY]: advanced };
|
|
242
|
+
};
|
|
243
|
+
/** Remove our overrideCapiUrl for revert; drops the advanced block if it empties. */
|
|
244
|
+
export const withoutOverride = (data) => {
|
|
245
|
+
const advanced = data[COPILOT_ADVANCED_KEY];
|
|
246
|
+
if (!isPlainObject(advanced) || !(OVERRIDE_CAPI_KEY in advanced)) {
|
|
247
|
+
return { next: data, removed: false };
|
|
248
|
+
}
|
|
249
|
+
const nextAdvanced = { ...advanced };
|
|
250
|
+
delete nextAdvanced[OVERRIDE_CAPI_KEY];
|
|
251
|
+
const next = { ...data };
|
|
252
|
+
if (Object.keys(nextAdvanced).length) {
|
|
253
|
+
next[COPILOT_ADVANCED_KEY] = nextAdvanced;
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
delete next[COPILOT_ADVANCED_KEY];
|
|
257
|
+
}
|
|
258
|
+
return { next, removed: true };
|
|
259
|
+
};
|
|
260
|
+
/** The subscription-mode steps (manual fallback when settings.json is JSONC). */
|
|
261
|
+
const subscriptionManualSteps = (target, reason) => [
|
|
262
|
+
reason,
|
|
263
|
+
'GitHub Copilot Chat — route your SUBSCRIPTION through Anyray (keeps your Copilot plan + model; chat only). In VS Code settings.json add:',
|
|
264
|
+
` "${COPILOT_ADVANCED_KEY}": { "${OVERRIDE_CAPI_KEY}": ${JSON.stringify(overrideCapiUrl(target))} }`,
|
|
265
|
+
`Plan host: ${copilotPlan()} (set ANYRAY_COPILOT_PLAN=individual|business|enterprise to match your plan).`,
|
|
266
|
+
'Reload VS Code (Developer: Reload Window). Copilot Chat now flows through the gateway and is metered to you.',
|
|
267
|
+
];
|
|
268
|
+
/** Write the overrideCapiUrl into settings.json (subscription seat). */
|
|
269
|
+
const applySubscription = async (variant, target, opts) => {
|
|
270
|
+
const path = settingsPath(variant);
|
|
271
|
+
const file = await readSettings(path);
|
|
272
|
+
if (file.kind === 'unrecognized') {
|
|
273
|
+
return {
|
|
274
|
+
status: 'manual',
|
|
275
|
+
messages: subscriptionManualSteps(target, `Couldn't parse ${path} (comments / unexpected shape) — set it by hand:`),
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
const url = overrideCapiUrl(target);
|
|
279
|
+
const messages = [
|
|
280
|
+
`${path} → ${COPILOT_ADVANCED_KEY}.${OVERRIDE_CAPI_KEY} → ${url}`,
|
|
281
|
+
'Mode: SUBSCRIPTION — your Copilot plan + model are kept; only the chat endpoint is redirected through the gateway (verbatim passthrough). Inline completions still go to GitHub.',
|
|
282
|
+
'Attribution: your gateway key rides in the override path, so spend is metered to you.',
|
|
283
|
+
`Plan host: ${copilotPlan()} — set ANYRAY_COPILOT_PLAN=individual|business|enterprise if the default host rejects your plan.`,
|
|
284
|
+
eligibilityNote(await detectVscodeByok()),
|
|
285
|
+
'Optimization runs server-side at the gateway. Reload VS Code (Developer: Reload Window), then use Copilot Chat as usual.',
|
|
286
|
+
];
|
|
287
|
+
if (opts.dryRun) {
|
|
288
|
+
return {
|
|
289
|
+
status: 'configured',
|
|
290
|
+
messages: [`Would set ${OVERRIDE_CAPI_KEY} in ${path}.`, ...messages],
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
await writeJson(path, withOverride(file.data, url));
|
|
294
|
+
return { status: 'configured', changedFiles: [path], messages };
|
|
295
|
+
};
|
|
296
|
+
/** Remove the overrideCapiUrl from settings.json (subscription revert). */
|
|
297
|
+
const revertSubscription = async (variant, opts) => {
|
|
298
|
+
const path = settingsPath(variant);
|
|
299
|
+
const file = await readSettings(path);
|
|
300
|
+
// Unparseable (JSONC/malformed) — readJson returns {} for a MISSING file, so a
|
|
301
|
+
// non-object here means the file exists but we can't safely edit it. We can't
|
|
302
|
+
// tell whether an override is present, and a silently-left override keeps
|
|
303
|
+
// routing Copilot Chat through the gateway — so flag it for a manual removal.
|
|
304
|
+
if (file.kind !== 'object')
|
|
305
|
+
return { removed: false, unrecognized: true, path };
|
|
306
|
+
const { next, removed } = withoutOverride(file.data);
|
|
307
|
+
if (removed && !opts.dryRun)
|
|
308
|
+
await writeJson(path, next);
|
|
309
|
+
return { removed, unrecognized: false, path };
|
|
310
|
+
};
|
|
193
311
|
export const copilotChat = {
|
|
194
312
|
id: 'copilot',
|
|
195
313
|
title: 'GitHub Copilot Chat',
|
|
@@ -209,6 +327,15 @@ export const copilotChat = {
|
|
|
209
327
|
messages: manualSteps(target, 'No VS Code install found — configure by hand once VS Code is present:'),
|
|
210
328
|
};
|
|
211
329
|
}
|
|
330
|
+
// Subscription seat: the dev is on a Copilot plan AND enrolled (a gateway key
|
|
331
|
+
// to carry in the override path). Redirect Copilot Chat to the gateway's
|
|
332
|
+
// Copilot seat route, keeping their plan + model — instead of BYOK, which
|
|
333
|
+
// replaces the model with our own key. Without a clientKey we can't route a
|
|
334
|
+
// subscription (the always-on gateway auth needs the dev key in-path), so we
|
|
335
|
+
// fall through to BYOK.
|
|
336
|
+
if (effectiveSubscription(target, 'copilot') && target.clientKey) {
|
|
337
|
+
return applySubscription(variant, target, opts);
|
|
338
|
+
}
|
|
212
339
|
const path = chatModelsPath(variant);
|
|
213
340
|
const file = await readModelsFile(path);
|
|
214
341
|
if (file.kind === 'unrecognized') {
|
|
@@ -263,36 +390,65 @@ export const copilotChat = {
|
|
|
263
390
|
if (!variant) {
|
|
264
391
|
return { status: 'not-found', messages: ['no VS Code install found — nothing to revert'] };
|
|
265
392
|
}
|
|
393
|
+
// The subscription override (settings.json) and the BYOK provider
|
|
394
|
+
// (chatLanguageModels.json) live in different files; clean BOTH so revert
|
|
395
|
+
// works regardless of which mode was applied.
|
|
396
|
+
const sub = await revertSubscription(variant, opts);
|
|
397
|
+
const subMsgs = sub.removed
|
|
398
|
+
? [
|
|
399
|
+
opts.dryRun
|
|
400
|
+
? `would remove ${OVERRIDE_CAPI_KEY} from ${sub.path}`
|
|
401
|
+
: `Removed ${OVERRIDE_CAPI_KEY} from ${sub.path}.`,
|
|
402
|
+
]
|
|
403
|
+
: sub.unrecognized
|
|
404
|
+
? [
|
|
405
|
+
`Couldn't parse ${sub.path} (comments / unexpected shape). If Copilot Chat still routes through Anyray, remove "${COPILOT_ADVANCED_KEY}"."${OVERRIDE_CAPI_KEY}" by hand.`,
|
|
406
|
+
]
|
|
407
|
+
: [];
|
|
408
|
+
const subFiles = sub.removed && !opts.dryRun ? [sub.path] : [];
|
|
266
409
|
const path = chatModelsPath(variant);
|
|
267
410
|
const file = await readModelsFile(path);
|
|
268
|
-
|
|
411
|
+
const byokAbsent = file.kind === 'missing' ||
|
|
412
|
+
(file.kind === 'array' && !withoutAnyrayProvider(file.entries).removed);
|
|
413
|
+
if (byokAbsent) {
|
|
414
|
+
// Nothing more in BYOK — report whatever the subscription revert did. A
|
|
415
|
+
// JSONC settings.json we couldn't touch is surfaced as `manual` so the dev
|
|
416
|
+
// knows the override may still be live and must be cleared by hand.
|
|
417
|
+
if (sub.removed) {
|
|
418
|
+
return { status: 'reverted', changedFiles: subFiles.length ? subFiles : undefined, messages: subMsgs };
|
|
419
|
+
}
|
|
420
|
+
if (sub.unrecognized) {
|
|
421
|
+
return { status: 'manual', messages: subMsgs };
|
|
422
|
+
}
|
|
269
423
|
return { status: 'not-found', messages: ['nothing to revert'] };
|
|
270
424
|
}
|
|
271
425
|
if (file.kind === 'unrecognized') {
|
|
272
426
|
return {
|
|
273
427
|
status: 'manual',
|
|
274
428
|
messages: [
|
|
429
|
+
...subMsgs,
|
|
275
430
|
`Couldn't recognize ${path} — remove the "${PROVIDER_NAME}" Custom Endpoint by hand: Chat model picker → "Manage Language Models…".`,
|
|
276
431
|
],
|
|
277
432
|
};
|
|
278
433
|
}
|
|
279
|
-
const { next
|
|
280
|
-
if (!removed) {
|
|
281
|
-
return { status: 'not-found', messages: [`no ${PROVIDER_NAME} Custom Endpoint found in ${path}`] };
|
|
282
|
-
}
|
|
434
|
+
const { next } = withoutAnyrayProvider(file.entries);
|
|
283
435
|
if (opts.dryRun) {
|
|
284
|
-
return {
|
|
436
|
+
return {
|
|
437
|
+
status: 'reverted',
|
|
438
|
+
messages: [...subMsgs, `would remove the ${PROVIDER_NAME} Custom Endpoint from ${path}`],
|
|
439
|
+
};
|
|
285
440
|
}
|
|
286
441
|
// Don't re-backup on revert — the backup is the pre-Anyray state from apply.
|
|
287
442
|
await writeModelsFile(path, next, { backup: false });
|
|
288
443
|
const messages = [
|
|
444
|
+
...subMsgs,
|
|
289
445
|
`Removed the ${PROVIDER_NAME} Custom Endpoint from ${path}.`,
|
|
290
446
|
'If you entered a personal key, clear it too: Chat model picker → "Manage Language Models…" → remove the stored key (VS Code secret store).',
|
|
291
447
|
];
|
|
292
448
|
if (await fileExists(`${path}.anyray-bak`)) {
|
|
293
449
|
messages.push(`Pre-Anyray backup at ${path}.anyray-bak.`);
|
|
294
450
|
}
|
|
295
|
-
return { status: 'reverted', changedFiles: [path], messages };
|
|
451
|
+
return { status: 'reverted', changedFiles: [...subFiles, path], messages };
|
|
296
452
|
},
|
|
297
453
|
};
|
|
298
454
|
//# sourceMappingURL=copilotChat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilotChat.js","sourceRoot":"","sources":["../../src/tools/copilotChat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"copilotChat.js","sourceRoot":"","sources":["../../src/tools/copilotChat.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA4FH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAqB,EACrB,MAAuB,EACd,EAAE;IACX,IAAI,MAAM,CAAC,QAAQ,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,MAAM,CAAC,QAAQ,KAAK,aAAa;QAAE,OAAO,KAAK,CAAC;IACpD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;AACxC,CAAC,CAAC;AAoDF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAA6B,EACT,EAAE;IACtB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC"}
|
package/dist/util/seatState.js
CHANGED
|
@@ -22,8 +22,10 @@
|
|
|
22
22
|
import { homedir, platform } from 'node:os';
|
|
23
23
|
import { join } from 'node:path';
|
|
24
24
|
import { execFile } from 'node:child_process';
|
|
25
|
-
import { readFile } from 'node:fs/promises';
|
|
25
|
+
import { readFile, readdir } from 'node:fs/promises';
|
|
26
26
|
import { fileExists } from './jsonFile.js';
|
|
27
|
+
import { appSupportDir } from './appSupport.js';
|
|
28
|
+
import { VSCODE_VARIANTS } from './vscodeState.js';
|
|
27
29
|
const KEYCHAIN_TIMEOUT_MS = 3000;
|
|
28
30
|
const CLAUDE_KEYCHAIN_SERVICE = 'Claude Code-credentials';
|
|
29
31
|
/** True if a Keychain generic-password item exists for `service`. Metadata-only
|
|
@@ -68,12 +70,60 @@ export const detectOpenAiSeat = async () => {
|
|
|
68
70
|
return false;
|
|
69
71
|
}
|
|
70
72
|
};
|
|
73
|
+
/** True if a `github.copilot-chat-*` extension is installed under `extDir`. */
|
|
74
|
+
const hasCopilotChatExtension = async (extDir) => {
|
|
75
|
+
try {
|
|
76
|
+
const entries = await readdir(extDir);
|
|
77
|
+
return entries.some((n) => n.startsWith('github.copilot-chat-'));
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Detect a GitHub Copilot subscription. Unlike the others there's no flat-file
|
|
85
|
+
* OAuth token to probe — VS Code keeps the GitHub token in its ENCRYPTED secret
|
|
86
|
+
* store — and the Copilot path is additive (we redirect VS Code via
|
|
87
|
+
* `overrideCapiUrl`; we never forward a token), so a capability signal is enough.
|
|
88
|
+
*
|
|
89
|
+
* PRIMARY signal: the copilot-chat extension's `globalStorage` dir under a VS
|
|
90
|
+
* Code variant's user-data dir. It's created when the extension activates and is
|
|
91
|
+
* LOCATION-STABLE — it lives under the standard `Code` user-data dir even when
|
|
92
|
+
* the extension binary is in a custom `--extensions-dir`, or the app itself is a
|
|
93
|
+
* renamed install (e.g. "Visual Studio Code 2.app"). Checking the extensions dir
|
|
94
|
+
* alone misses those; globalStorage catches them. Falls back to the shared
|
|
95
|
+
* Copilot CLI/Neovim credential dir and the default extensions dir.
|
|
96
|
+
*
|
|
97
|
+
* Existence-only; no secret is read. A false positive is a harmless override that
|
|
98
|
+
* simply never routes if the dev isn't actually signed in.
|
|
99
|
+
*/
|
|
100
|
+
export const detectCopilotSeat = async () => {
|
|
101
|
+
for (const variant of VSCODE_VARIANTS) {
|
|
102
|
+
const gs = join(appSupportDir(variant), 'User', 'globalStorage');
|
|
103
|
+
if (await fileExists(join(gs, 'github.copilot-chat')))
|
|
104
|
+
return true;
|
|
105
|
+
if (await fileExists(join(gs, 'github.copilot')))
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
const cfg = join(homedir(), '.config', 'github-copilot');
|
|
109
|
+
if (await fileExists(join(cfg, 'apps.json')))
|
|
110
|
+
return true;
|
|
111
|
+
if (await fileExists(join(cfg, 'hosts.json')))
|
|
112
|
+
return true;
|
|
113
|
+
for (const dir of ['.vscode', '.vscode-insiders']) {
|
|
114
|
+
if (await hasCopilotChatExtension(join(homedir(), dir, 'extensions'))) {
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
};
|
|
71
120
|
/** Detect seat sign-in for every provider family in parallel. Never throws. */
|
|
72
121
|
export const detectSeatState = async () => {
|
|
73
|
-
const [anthropic, openai] = await Promise.all([
|
|
122
|
+
const [anthropic, openai, copilot] = await Promise.all([
|
|
74
123
|
detectAnthropicSeat(),
|
|
75
124
|
detectOpenAiSeat(),
|
|
125
|
+
detectCopilotSeat(),
|
|
76
126
|
]);
|
|
77
|
-
return { anthropic, openai };
|
|
127
|
+
return { anthropic, openai, copilot };
|
|
78
128
|
};
|
|
79
129
|
//# sourceMappingURL=seatState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seatState.js","sourceRoot":"","sources":["../../src/util/seatState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"seatState.js","sourceRoot":"","sources":["../../src/util/seatState.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "anyray-connect",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.12",
|
|
4
4
|
"description": "Anyray connect — points local coding tools (Claude Code, Cursor, Windsurf, SDKs) at the Anyray gateway by writing their base URL + a placeholder key. The gateway stays the brain; this is just the on-ramp.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|