anyray-connect 0.11.36 → 0.11.38
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/tools/claudeCode.js
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
import { homedir } from 'node:os';
|
|
29
29
|
import { join } from 'node:path';
|
|
30
30
|
import { readJson, writeJson, fileExists } from '../util/jsonFile.js';
|
|
31
|
-
import { HOOK_FLAG, PROMPT_HOOK_FLAG, hookBinaryIsDurable, hookBinaryPath, hookCommand, isEphemeralBinaryPath, mcpServerCommand, } from './sharedHooks.js';
|
|
31
|
+
import { HOOK_FLAG, PROMPT_HOOK_FLAG, REFRESH_HOOK_FLAG, hookBinaryIsDurable, hookBinaryPath, hookCommand, isEphemeralBinaryPath, mcpServerCommand, printKeyHelperCommand, } from './sharedHooks.js';
|
|
32
32
|
import { CLAUDE_CODE_OWNED_ENV_KEYS, buildClaudeCodeEnv, } from './claudeCodeEnv.js';
|
|
33
33
|
import { buildHookEntry, installHookEntry, removeHookEntry, } from './claudeCodeHooks.js';
|
|
34
34
|
export { isEphemeralBinaryPath };
|
|
@@ -74,13 +74,55 @@ const installHook = (settings) => {
|
|
|
74
74
|
installHookEntry(settings, 'PostToolUse', HOOK_FLAG, buildHookEntry(hookCommand(HOOK_FLAG), { matcher: '*' }));
|
|
75
75
|
installHookEntry(settings, 'UserPromptSubmit', PROMPT_HOOK_FLAG, buildHookEntry(hookCommand(PROMPT_HOOK_FLAG)));
|
|
76
76
|
};
|
|
77
|
-
/**
|
|
78
|
-
*
|
|
77
|
+
/**
|
|
78
|
+
* Install the SessionStart key-refresh hook (subscription mode only). It re-runs
|
|
79
|
+
* `anyray-connect __anyray-refresh` (refreshIfDue) at the start of every Claude
|
|
80
|
+
* Code session, so a verified developer's short-lived `ark_` key — which rides
|
|
81
|
+
* the STATIC `x-anyray-api-key` header that env can't refresh mid-session — is
|
|
82
|
+
* re-minted before it lapses. `async: true` so it never delays session start
|
|
83
|
+
* (refresh is best-effort; see devRefresh.ts). This is the subscription-mode
|
|
84
|
+
* analogue of the placeholder-mode `apiKeyHelper`: apiKeyHelper can't be used
|
|
85
|
+
* here because its output would hijack the seat's OAuth `Authorization` and
|
|
86
|
+
* break passthrough. Worst case after a very long idle degrades from "re-run SSO
|
|
87
|
+
* enrollment" to "restart once". Idempotent.
|
|
88
|
+
*/
|
|
89
|
+
const installRefreshHook = (settings) => {
|
|
90
|
+
installHookEntry(settings, 'SessionStart', REFRESH_HOOK_FLAG, buildHookEntry(hookCommand(REFRESH_HOOK_FLAG), { async: true }));
|
|
91
|
+
};
|
|
92
|
+
/** Remove the SessionStart refresh hook. Returns true if one was present. */
|
|
93
|
+
const removeRefreshHook = (settings) => removeHookEntry(settings, 'SessionStart', REFRESH_HOOK_FLAG);
|
|
94
|
+
/** Remove every Anyray hook (PostToolUse, UserPromptSubmit, SessionStart),
|
|
95
|
+
* pruning empty containers. Returns true if any was found. */
|
|
79
96
|
const removeHook = (settings) => {
|
|
80
97
|
const post = removeHookEntry(settings, 'PostToolUse', HOOK_FLAG);
|
|
81
98
|
const prompt = removeHookEntry(settings, 'UserPromptSubmit', PROMPT_HOOK_FLAG);
|
|
82
|
-
|
|
99
|
+
const refresh = removeRefreshHook(settings);
|
|
100
|
+
return post || prompt || refresh;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* We own the Claude Code `apiKeyHelper` only when it is the command WE generate
|
|
104
|
+
* (`printKeyHelperCommand()` → `<connect runtime> print-key`): its final
|
|
105
|
+
* whitespace-delimited token is exactly `print-key` AND it re-invokes an
|
|
106
|
+
* anyray-connect runtime. A bare `includes('print-key')` would misclassify a
|
|
107
|
+
* user's own helper (`/opt/print-key.sh`, `vault-print-key`) as ours and clobber
|
|
108
|
+
* it — breaking the "never touch a foreign helper" invariant. The runtime marker
|
|
109
|
+
* stays version-stable (the `connect-runtime` durable dir / the `anyray-connect`
|
|
110
|
+
* binary / the current entry path) so an upgrade still recognizes — and
|
|
111
|
+
* refreshes — a helper an older connect wrote at a different path.
|
|
112
|
+
*/
|
|
113
|
+
const API_KEY_HELPER_MARKER = 'print-key';
|
|
114
|
+
const referencesConnectRuntime = (cmd) => cmd.includes('anyray-connect') ||
|
|
115
|
+
cmd.includes('connect-runtime') ||
|
|
116
|
+
cmd.includes(hookBinaryPath());
|
|
117
|
+
const ownsApiKeyHelper = (settings) => {
|
|
118
|
+
const cmd = settings.apiKeyHelper;
|
|
119
|
+
if (typeof cmd !== 'string')
|
|
120
|
+
return false;
|
|
121
|
+
const tokens = cmd.trim().split(/\s+/);
|
|
122
|
+
return (tokens[tokens.length - 1] === API_KEY_HELPER_MARKER &&
|
|
123
|
+
referencesConnectRuntime(cmd));
|
|
83
124
|
};
|
|
125
|
+
const hasForeignApiKeyHelper = (settings) => typeof settings.apiKeyHelper === 'string' && !ownsApiKeyHelper(settings);
|
|
84
126
|
export const claudeCode = {
|
|
85
127
|
id: 'claude-code',
|
|
86
128
|
title: 'Claude Code',
|
|
@@ -107,7 +149,7 @@ export const claudeCode = {
|
|
|
107
149
|
? ' Your personal gateway key rides x-anyray-api-key.'
|
|
108
150
|
: ''}`
|
|
109
151
|
: target.clientKey
|
|
110
|
-
? 'Auth: personal gateway key (
|
|
152
|
+
? 'Auth: personal gateway key (not shown here; see below for where it lives)'
|
|
111
153
|
: `Auth: placeholder token (gateway swaps in the server-held key)`,
|
|
112
154
|
`Attribution: ${meta ?? '(none)'}`,
|
|
113
155
|
...(subscription
|
|
@@ -144,6 +186,45 @@ export const claudeCode = {
|
|
|
144
186
|
// forward tool_reference blocks, so it must not enable tool search.
|
|
145
187
|
delete mergedEnv.ENABLE_TOOL_SEARCH;
|
|
146
188
|
}
|
|
189
|
+
// Cold-start key refresh — closes the recurring-401-after-idle gap for
|
|
190
|
+
// verified developers (`--enroll` / SSO). A minted `ark_` key is
|
|
191
|
+
// short-lived, so after a few idle hours a FRESH Claude Code session's very
|
|
192
|
+
// first request can 401 before any in-session refresh (the PostToolUse gate)
|
|
193
|
+
// has a chance to run. The mechanism differs by auth mode:
|
|
194
|
+
// - placeholder/api-key: the key rides `Authorization`, so a per-request
|
|
195
|
+
// `apiKeyHelper` (re-run at startup, every ~5 min, and on any 401) fully
|
|
196
|
+
// refreshes it — no restart, no re-enrollment, any key TTL. The static
|
|
197
|
+
// `ANTHROPIC_AUTH_TOKEN` must be dropped, or it outranks the helper.
|
|
198
|
+
// - subscription: the key rides the STATIC `x-anyray-api-key` header (env,
|
|
199
|
+
// read once per session), which an apiKeyHelper can't touch without
|
|
200
|
+
// hijacking the seat OAuth — so re-mint at every SessionStart instead
|
|
201
|
+
// (see installRefreshHook).
|
|
202
|
+
// Both need a durable binary (the command must survive) and only apply to an
|
|
203
|
+
// enrolled dev (`target.clientKey`); a shared placeholder key never lapses.
|
|
204
|
+
const enrolled = Boolean(target.clientKey);
|
|
205
|
+
const durable = hookBinaryIsDurable();
|
|
206
|
+
const foreignHelper = hasForeignApiKeyHelper(settings);
|
|
207
|
+
const useApiKeyHelper = !subscription && enrolled && durable && !foreignHelper;
|
|
208
|
+
if (useApiKeyHelper) {
|
|
209
|
+
settings.apiKeyHelper = printKeyHelperCommand();
|
|
210
|
+
delete mergedEnv.ANTHROPIC_AUTH_TOKEN;
|
|
211
|
+
messages.push('Installed an apiKeyHelper that reprints a fresh gateway key on demand — Claude Code refreshes it at startup and on any 401, so an idle session no longer 401s (no re-enrollment).');
|
|
212
|
+
}
|
|
213
|
+
else if (ownsApiKeyHelper(settings)) {
|
|
214
|
+
// Mode/state no longer wants our helper (subscription, non-durable, or
|
|
215
|
+
// un-enrolled) — drop the one WE own, leaving any foreign helper intact.
|
|
216
|
+
delete settings.apiKeyHelper;
|
|
217
|
+
}
|
|
218
|
+
if (foreignHelper && !subscription && enrolled && durable) {
|
|
219
|
+
messages.push('Kept your existing apiKeyHelper; your gateway key stays in ANTHROPIC_AUTH_TOKEN (Anyray auto-refresh via the helper is off).');
|
|
220
|
+
}
|
|
221
|
+
if (subscription && enrolled && durable) {
|
|
222
|
+
installRefreshHook(settings);
|
|
223
|
+
messages.push('Installed a SessionStart hook that refreshes your gateway key each session, so an idle subscription session no longer needs re-enrollment.');
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
removeRefreshHook(settings); // drop a stale refresh hook from a prior apply
|
|
227
|
+
}
|
|
147
228
|
// Install the cache-safe hooks: the PostToolUse hook trims oversized tool
|
|
148
229
|
// outputs (before they enter the cached prefix) and reports content-free
|
|
149
230
|
// savings; the UserPromptSubmit hook beacons oversized pasted-data prompts
|
|
@@ -220,18 +301,25 @@ export const claudeCode = {
|
|
|
220
301
|
const settings = await readJson(path);
|
|
221
302
|
const env = settings.env;
|
|
222
303
|
const hookRemoved = removeHook(settings);
|
|
304
|
+
// Drop the apiKeyHelper only if it's OURS (re-invokes print-key) — a user's
|
|
305
|
+
// own helper is left untouched.
|
|
306
|
+
const helperRemoved = ownsApiKeyHelper(settings);
|
|
307
|
+
if (helperRemoved)
|
|
308
|
+
delete settings.apiKeyHelper;
|
|
223
309
|
if (env) {
|
|
224
310
|
for (const key of OWNED_KEYS)
|
|
225
311
|
delete env[key];
|
|
226
312
|
if (Object.keys(env).length === 0)
|
|
227
313
|
delete settings.env;
|
|
228
314
|
}
|
|
229
|
-
if (env || hookRemoved) {
|
|
315
|
+
if (env || hookRemoved || helperRemoved) {
|
|
230
316
|
await writeJson(path, settings);
|
|
231
317
|
}
|
|
232
318
|
const messages = [`removed Anyray keys from ${path}`];
|
|
233
319
|
if (hookRemoved)
|
|
234
|
-
messages.push('Removed the Anyray PostToolUse and
|
|
320
|
+
messages.push('Removed the Anyray PostToolUse, UserPromptSubmit, and SessionStart hooks.');
|
|
321
|
+
if (helperRemoved)
|
|
322
|
+
messages.push('Removed the Anyray apiKeyHelper.');
|
|
235
323
|
// Also drop the MCP server registration from ~/.claude.json. Best-effort: a
|
|
236
324
|
// missing/locked file just leaves nothing to clean up.
|
|
237
325
|
const claudePath = claudeJsonPath();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeCode.js","sourceRoot":"","sources":["../../src/tools/claudeCode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAQtE,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"claudeCode.js","sourceRoot":"","sources":["../../src/tools/claudeCode.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,14 @@ import { isEphemeralRuntimePath, runtimeEntryPath, } from '../util/durableRuntim
|
|
|
3
3
|
export const HOOK_FLAG = '__anyray-hook';
|
|
4
4
|
/** Flag for the UserPromptSubmit/beforeSubmitPrompt hook command. */
|
|
5
5
|
export const PROMPT_HOOK_FLAG = '__anyray-prompt-hook';
|
|
6
|
+
/**
|
|
7
|
+
* Flag for the silent key-refresh subcommand (`refreshIfDue`). Single source of
|
|
8
|
+
* truth for the flag: `devRefresh.ts` re-invokes it detached from the PostToolUse
|
|
9
|
+
* gate, `cli.ts` dispatches it, and the Claude Code adapter also wires it as a
|
|
10
|
+
* SessionStart hook so a re-mint is triggered BEFORE a fresh session's first
|
|
11
|
+
* request (not only after a tool runs mid-session).
|
|
12
|
+
*/
|
|
13
|
+
export const REFRESH_HOOK_FLAG = '__anyray-refresh';
|
|
6
14
|
/**
|
|
7
15
|
* Re-invoke this very `anyray-connect` in the hidden hook mode named by `flag`.
|
|
8
16
|
* The standalone binary is `process.execPath`; under Node/npx, re-run the entry
|
|
@@ -16,6 +24,16 @@ export const hookCommand = (flag) => {
|
|
|
16
24
|
const base = runsUnderNode && script ? `${quote(exe)} ${quote(script)}` : quote(exe);
|
|
17
25
|
return `${base} ${flag}`;
|
|
18
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Command a Claude Code `apiKeyHelper` runs to print a fresh `ark_` credential
|
|
29
|
+
* on stdout. Claude Code invokes it at startup, every ~5 min, and on any HTTP
|
|
30
|
+
* 401 — so a placeholder/api-key developer's key auto-refreshes with no restart
|
|
31
|
+
* and no re-enrollment. `print-key` is a real subcommand (not a hidden flag), so
|
|
32
|
+
* it runs after the normal CLI relaunch; its stdout carries ONLY the credential
|
|
33
|
+
* (see commands/printKey.ts), which is exactly the helper contract. Same
|
|
34
|
+
* self-reinvocation rules as hookCommand().
|
|
35
|
+
*/
|
|
36
|
+
export const printKeyHelperCommand = () => hookCommand('print-key');
|
|
19
37
|
/**
|
|
20
38
|
* The executable an installed hook command will re-invoke. This must survive for
|
|
21
39
|
* the hook to keep working.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedHooks.js","sourceRoot":"","sources":["../../src/tools/sharedHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAGnC,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;AAEzC,qEAAqE;AACrE,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;IAClD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC7B,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,IAAI,GACR,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1E,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE;IACzC,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAY,EAAE,CAC/C,CAAC,qBAAqB,CAAC,cAAc,EAAE,CAAC,CAAC;AAE3C,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,YAAiD,EACZ,EAAE;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC7B,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,IAAI,GACR,aAAa,IAAI,MAAM;QACrB,CAAC,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC;QACzC,CAAC,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"sharedHooks.js","sourceRoot":"","sources":["../../src/tools/sharedHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAGnC,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;AAEzC,qEAAqE;AACrE,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;IAClD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC7B,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,IAAI,GACR,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1E,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAW,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE;IACzC,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAY,EAAE,CAC/C,CAAC,qBAAqB,CAAC,cAAc,EAAE,CAAC,CAAC;AAE3C,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,YAAiD,EACZ,EAAE;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC7B,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,IAAI,GACR,aAAa,IAAI,MAAM;QACrB,CAAC,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC;QACzC,CAAC,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC"}
|
package/dist/util/devRefresh.js
CHANGED
|
@@ -33,7 +33,7 @@ import { verifyWithGateway } from './devVerify.js';
|
|
|
33
33
|
import { resolveTarget } from '../target.js';
|
|
34
34
|
import { detectSeatState } from './seatState.js';
|
|
35
35
|
import { REGISTRY } from '../tools/index.js';
|
|
36
|
-
|
|
36
|
+
import { REFRESH_HOOK_FLAG } from '../tools/sharedHooks.js';
|
|
37
37
|
/** Default refresh window: re-mint once the key has less than this left. */
|
|
38
38
|
const DEFAULT_WINDOW_DAYS = 14;
|
|
39
39
|
/** Default minimum gap between detached spawns (the hook-side gate). */
|
|
@@ -91,8 +91,8 @@ const refreshSpawnArgs = () => {
|
|
|
91
91
|
const exe = process.execPath;
|
|
92
92
|
const runsUnderNode = /[\\/](node|node\.exe)$/i.test(exe);
|
|
93
93
|
const args = runsUnderNode && process.argv[1]
|
|
94
|
-
? [process.argv[1],
|
|
95
|
-
: [
|
|
94
|
+
? [process.argv[1], REFRESH_HOOK_FLAG]
|
|
95
|
+
: [REFRESH_HOOK_FLAG];
|
|
96
96
|
return { exe, args };
|
|
97
97
|
};
|
|
98
98
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devRefresh.js","sourceRoot":"","sources":["../../src/util/devRefresh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"devRefresh.js","sourceRoot":"","sources":["../../src/util/devRefresh.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.38",
|
|
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": {
|