@codemieai/code 0.0.57 → 0.0.58
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/README.md +124 -19
- package/bin/proxy-daemon.js +10 -0
- package/dist/agents/core/session/SessionStore.d.ts +4 -0
- package/dist/agents/core/session/SessionStore.d.ts.map +1 -1
- package/dist/agents/core/session/SessionStore.js +40 -1
- package/dist/agents/core/session/SessionStore.js.map +1 -1
- package/dist/agents/core/session/types.d.ts +7 -0
- package/dist/agents/core/session/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +1 -0
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +32 -20
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts +2 -0
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +24 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
- package/dist/bin/proxy-daemon.d.ts +2 -0
- package/dist/bin/proxy-daemon.d.ts.map +1 -0
- package/dist/bin/proxy-daemon.js +138 -0
- package/dist/bin/proxy-daemon.js.map +1 -0
- package/dist/cli/commands/proxy/connectors/desktop.d.ts +55 -0
- package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -0
- package/dist/cli/commands/proxy/connectors/desktop.js +175 -0
- package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -0
- package/dist/cli/commands/proxy/daemon-manager.d.ts +35 -0
- package/dist/cli/commands/proxy/daemon-manager.d.ts.map +1 -0
- package/dist/cli/commands/proxy/daemon-manager.js +107 -0
- package/dist/cli/commands/proxy/daemon-manager.js.map +1 -0
- package/dist/cli/commands/proxy/index.d.ts +3 -0
- package/dist/cli/commands/proxy/index.d.ts.map +1 -0
- package/dist/cli/commands/proxy/index.js +221 -0
- package/dist/cli/commands/proxy/index.js.map +1 -0
- package/dist/cli/commands/proxy/inspect-desktop.d.ts +28 -0
- package/dist/cli/commands/proxy/inspect-desktop.d.ts.map +1 -0
- package/dist/cli/commands/proxy/inspect-desktop.js +134 -0
- package/dist/cli/commands/proxy/inspect-desktop.js.map +1 -0
- package/dist/cli/index.js +12 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.d.ts +9 -0
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.js +36 -0
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +2 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js +3 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/proxy-types.d.ts +4 -0
- package/dist/providers/plugins/sso/proxy/proxy-types.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.js +4 -3
- package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.d.ts +15 -0
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.d.ts.map +1 -0
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js +117 -0
- package/dist/telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts +3 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.d.ts.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js +138 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.discovery.js.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.d.ts +4 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.d.ts.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.js +53 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.metrics.js.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.d.ts +4 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.d.ts.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js +60 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.parser.js.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.d.ts +4 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.d.ts.map +1 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.js +19 -0
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.js.map +1 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts +23 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts.map +1 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.js +243 -0
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.js.map +1 -0
- package/dist/telemetry/runtime/checkpoints.d.ts +10 -0
- package/dist/telemetry/runtime/checkpoints.d.ts.map +1 -0
- package/dist/telemetry/runtime/checkpoints.js +8 -0
- package/dist/telemetry/runtime/checkpoints.js.map +1 -0
- package/dist/telemetry/runtime/types.d.ts +32 -0
- package/dist/telemetry/runtime/types.d.ts.map +1 -0
- package/dist/telemetry/runtime/types.js +2 -0
- package/dist/telemetry/runtime/types.js.map +1 -0
- package/dist/utils/processes.d.ts +6 -0
- package/dist/utils/processes.d.ts.map +1 -1
- package/dist/utils/processes.js +13 -3
- package/dist/utils/processes.js.map +1 -1
- package/package.json +4 -2
- package/scripts/README.md +15 -1
- package/scripts/prepare-install-artifacts.mjs +66 -0
- package/scripts/test-desktop-telemetry.js +229 -0
- package/scripts/test-proxy-endpoint.js +173 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.metrics-processor.d.ts","sourceRoot":"","sources":["../../../../../../src/agents/plugins/claude/session/processors/claude.metrics-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACvH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAKpF,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,QAAQ,KAAK;IAEtB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAIxC,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY5F;;OAEG;YACW,eAAe;IAqE7B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiCjC;;OAEG;IACH,OAAO,CAAC,yBAAyB;
|
|
1
|
+
{"version":3,"file":"claude.metrics-processor.d.ts","sourceRoot":"","sources":["../../../../../../src/agents/plugins/claude/session/processors/claude.metrics-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACvH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAKpF,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,QAAQ,KAAK;IAEtB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAIxC,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY5F;;OAEG;YACW,eAAe;IAqE7B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiCjC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkMjC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAuD7B"}
|
|
@@ -108,6 +108,12 @@ export class MetricsProcessor {
|
|
|
108
108
|
*/
|
|
109
109
|
extractDeltasFromMessages(messages, sessionId, agentName, processedIds, attachedUserPrompts) {
|
|
110
110
|
const deltas = [];
|
|
111
|
+
const messagesByUuid = new Map();
|
|
112
|
+
for (const msg of messages) {
|
|
113
|
+
if (msg.uuid) {
|
|
114
|
+
messagesByUuid.set(msg.uuid, msg);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
111
117
|
// Build tool results map with full content
|
|
112
118
|
const toolResultsMap = new Map();
|
|
113
119
|
for (const msg of messages) {
|
|
@@ -139,7 +145,9 @@ export class MetricsProcessor {
|
|
|
139
145
|
// Build user prompts map: uuid → text content
|
|
140
146
|
const userPromptsMap = new Map();
|
|
141
147
|
for (const msg of messages) {
|
|
142
|
-
if (msg.message?.role === 'user' &&
|
|
148
|
+
if (msg.message?.role === 'user' &&
|
|
149
|
+
msg.uuid &&
|
|
150
|
+
!this.isSyntheticUserPrompt(msg, messagesByUuid)) {
|
|
143
151
|
let textContent = '';
|
|
144
152
|
if (Array.isArray(msg.message.content)) {
|
|
145
153
|
for (const block of msg.message.content) {
|
|
@@ -262,6 +270,21 @@ export class MetricsProcessor {
|
|
|
262
270
|
}
|
|
263
271
|
return deltas;
|
|
264
272
|
}
|
|
273
|
+
isToolResultMessage(msg) {
|
|
274
|
+
if (msg?.type !== 'user')
|
|
275
|
+
return false;
|
|
276
|
+
const content = msg.message?.content;
|
|
277
|
+
if (!Array.isArray(content))
|
|
278
|
+
return false;
|
|
279
|
+
return content.some((item) => item.type === 'tool_result');
|
|
280
|
+
}
|
|
281
|
+
isSyntheticUserPrompt(msg, messagesByUuid) {
|
|
282
|
+
if (msg?.type !== 'user' || !msg.parentUuid) {
|
|
283
|
+
return false;
|
|
284
|
+
}
|
|
285
|
+
const parent = messagesByUuid.get(msg.parentUuid);
|
|
286
|
+
return this.isToolResultMessage(parent);
|
|
287
|
+
}
|
|
265
288
|
/**
|
|
266
289
|
* Extract file operation from tool call (simplified version of legacy logic)
|
|
267
290
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.metrics-processor.js","sourceRoot":"","sources":["../../../../../../src/agents/plugins/claude/session/processors/claude.metrics-processor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude.metrics-processor.js","sourceRoot":"","sources":["../../../../../../src/agents/plugins/claude/session/processors/claude.metrics-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-daemon.d.ts","sourceRoot":"","sources":["../../src/bin/proxy-daemon.ts"],"names":[],"mappings":"AAYA,OAAO,iDAAiD,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CodeMie Proxy Daemon Entry Point
|
|
3
|
+
*
|
|
4
|
+
* Spawned as a detached process by `codemie proxy start`.
|
|
5
|
+
* Starts CodeMieProxy on the requested port, writes state file, handles SIGTERM.
|
|
6
|
+
*/
|
|
7
|
+
import { parseArgs } from 'node:util';
|
|
8
|
+
import { readFileSync } from 'node:fs';
|
|
9
|
+
import { writeFile, unlink, rename } from 'node:fs/promises';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { CodeMieProxy } from '../providers/plugins/sso/index.js';
|
|
12
|
+
import '../providers/plugins/sso/proxy/plugins/index.js'; // Auto-register core plugins
|
|
13
|
+
import { ClaudeDesktopTelemetryAdapter } from '../telemetry/clients/claude-desktop/ClaudeDesktopTelemetryAdapter.js';
|
|
14
|
+
import { DesktopTelemetryRuntime } from '../telemetry/runtime/DesktopTelemetryRuntime.js';
|
|
15
|
+
import { getDirname } from '../utils/paths.js';
|
|
16
|
+
import { logger } from '../utils/logger.js';
|
|
17
|
+
function readCliVersion() {
|
|
18
|
+
try {
|
|
19
|
+
const pkgPath = join(getDirname(import.meta.url), '../../package.json');
|
|
20
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
21
|
+
return pkg.version ?? '0.0.0';
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return '0.0.0';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const { values } = parseArgs({
|
|
28
|
+
options: {
|
|
29
|
+
'target-url': { type: 'string' },
|
|
30
|
+
'provider': { type: 'string' },
|
|
31
|
+
'profile': { type: 'string' },
|
|
32
|
+
'port': { type: 'string' },
|
|
33
|
+
'gateway-key': { type: 'string' },
|
|
34
|
+
'state-file': { type: 'string' },
|
|
35
|
+
'auth-method': { type: 'string' },
|
|
36
|
+
'telemetry-mode': { type: 'string' },
|
|
37
|
+
'sync-api-url': { type: 'string' },
|
|
38
|
+
'sync-codemie-url': { type: 'string' },
|
|
39
|
+
},
|
|
40
|
+
strict: false,
|
|
41
|
+
});
|
|
42
|
+
const targetUrl = values['target-url'];
|
|
43
|
+
const stateFile = values['state-file'];
|
|
44
|
+
if (!targetUrl || !stateFile) {
|
|
45
|
+
process.stderr.write('[proxy-daemon] --target-url and --state-file are required\n');
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
const portArg = values['port'];
|
|
49
|
+
const parsedPort = portArg ? Number.parseInt(portArg, 10) : undefined;
|
|
50
|
+
if (parsedPort !== undefined && (!Number.isFinite(parsedPort) || parsedPort <= 0)) {
|
|
51
|
+
process.stderr.write(`[proxy-daemon] Invalid --port value: ${portArg}\n`);
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
const port = parsedPort;
|
|
55
|
+
const gatewayKey = values['gateway-key'] ?? 'codemie-proxy';
|
|
56
|
+
const profile = values['profile'] ?? 'default';
|
|
57
|
+
const provider = values['provider'] ?? 'ai-run-sso';
|
|
58
|
+
const authMethod = (values['auth-method'] ?? 'sso');
|
|
59
|
+
const telemetryMode = (values['telemetry-mode'] ?? 'none');
|
|
60
|
+
const syncApiUrl = values['sync-api-url'];
|
|
61
|
+
const syncCodeMieUrl = values['sync-codemie-url'];
|
|
62
|
+
const config = {
|
|
63
|
+
targetApiUrl: targetUrl,
|
|
64
|
+
port,
|
|
65
|
+
// Bind to 127.0.0.1 explicitly — Claude Desktop's gateway URL validator
|
|
66
|
+
// accepts only HTTPS or http on the literal 127.0.0.1 loopback IP, and the
|
|
67
|
+
// default 'localhost' bind on macOS lands on IPv6 ::1 only.
|
|
68
|
+
host: '127.0.0.1',
|
|
69
|
+
provider,
|
|
70
|
+
profile,
|
|
71
|
+
gatewayKey,
|
|
72
|
+
authMethod,
|
|
73
|
+
clientType: telemetryMode === 'claude-desktop' ? 'claude-desktop' : 'codemie-daemon',
|
|
74
|
+
version: readCliVersion(),
|
|
75
|
+
telemetryMode,
|
|
76
|
+
syncApiUrl,
|
|
77
|
+
syncCodeMieUrl,
|
|
78
|
+
};
|
|
79
|
+
const proxy = new CodeMieProxy(config);
|
|
80
|
+
let telemetryRuntime;
|
|
81
|
+
async function writeStateAtomic(state) {
|
|
82
|
+
const tmp = stateFile + '.tmp';
|
|
83
|
+
await writeFile(tmp, JSON.stringify(state, null, 2), 'utf-8');
|
|
84
|
+
await rename(tmp, stateFile);
|
|
85
|
+
}
|
|
86
|
+
async function cleanup() {
|
|
87
|
+
try {
|
|
88
|
+
await telemetryRuntime?.stop();
|
|
89
|
+
}
|
|
90
|
+
catch { /* ignore */ }
|
|
91
|
+
try {
|
|
92
|
+
await proxy.stop();
|
|
93
|
+
}
|
|
94
|
+
catch { /* ignore */ }
|
|
95
|
+
try {
|
|
96
|
+
await unlink(stateFile);
|
|
97
|
+
}
|
|
98
|
+
catch { /* ignore */ }
|
|
99
|
+
}
|
|
100
|
+
process.on('SIGTERM', async () => { await cleanup(); process.exit(0); });
|
|
101
|
+
process.on('SIGINT', async () => { await cleanup(); process.exit(0); });
|
|
102
|
+
try {
|
|
103
|
+
const { port: actualPort, url } = await proxy.start();
|
|
104
|
+
if (config.telemetryMode === 'claude-desktop') {
|
|
105
|
+
telemetryRuntime = new DesktopTelemetryRuntime(new ClaudeDesktopTelemetryAdapter(), {
|
|
106
|
+
clientType: 'claude-desktop',
|
|
107
|
+
targetApiUrl: config.targetApiUrl,
|
|
108
|
+
provider: config.provider ?? 'ai-run-sso',
|
|
109
|
+
version: config.version ?? '0.0.0',
|
|
110
|
+
profile: config.profile,
|
|
111
|
+
syncApiUrl: config.syncApiUrl,
|
|
112
|
+
syncCodeMieUrl: config.syncCodeMieUrl,
|
|
113
|
+
pollIntervalMs: config.telemetryPollIntervalMs ?? 10000,
|
|
114
|
+
inactivityTimeoutMs: config.telemetryInactivityTimeoutMs ?? 300000
|
|
115
|
+
});
|
|
116
|
+
await telemetryRuntime.start();
|
|
117
|
+
}
|
|
118
|
+
await writeStateAtomic({
|
|
119
|
+
pid: process.pid,
|
|
120
|
+
port: actualPort,
|
|
121
|
+
url,
|
|
122
|
+
profile,
|
|
123
|
+
gatewayKey,
|
|
124
|
+
targetUrl: config.targetApiUrl,
|
|
125
|
+
provider: config.provider,
|
|
126
|
+
clientType: config.clientType,
|
|
127
|
+
telemetryMode,
|
|
128
|
+
syncApiUrl: config.syncApiUrl,
|
|
129
|
+
syncCodeMieUrl: config.syncCodeMieUrl,
|
|
130
|
+
startedAt: new Date().toISOString(),
|
|
131
|
+
});
|
|
132
|
+
logger.debug(`[proxy-daemon] Started on ${url} (profile: ${profile})`);
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
process.stderr.write(`[proxy-daemon] Failed to start: ${error.message}\n`);
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=proxy-daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-daemon.js","sourceRoot":"","sources":["../../src/bin/proxy-daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated list of Claude models we expose by default.
|
|
3
|
+
*
|
|
4
|
+
* Each entry is matched against the gateway's `/v1/models` response either as
|
|
5
|
+
* an exact ID or as `<entry>-<YYYYMMDD>` (the dated variant). The actual
|
|
6
|
+
* resolved ID is what gets written to the Desktop config so the gateway
|
|
7
|
+
* receives a model name it has registered.
|
|
8
|
+
*/
|
|
9
|
+
export declare const PREFERRED_CLAUDE_MODELS: readonly ["claude-opus-4-7", "claude-opus-4-6", "claude-sonnet-4-6", "claude-haiku-4-5"];
|
|
10
|
+
/**
|
|
11
|
+
* Fetch the model list from the gateway's `/v1/models` endpoint and return
|
|
12
|
+
* the IDs of usable Claude-family models (excludes `-vertex` aliases since
|
|
13
|
+
* the gateway already picks the right backend for the canonical names).
|
|
14
|
+
*
|
|
15
|
+
* Returns [] if the gateway is unreachable or returns a non-OK response.
|
|
16
|
+
*/
|
|
17
|
+
export declare function fetchClaudeModels(proxyUrl: string, gatewayKey: string): Promise<string[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Resolve each entry in {@link PREFERRED_CLAUDE_MODELS} against the gateway's
|
|
20
|
+
* `/v1/models` response. For each preferred name, prefer the exact ID; fall
|
|
21
|
+
* back to the dated variant `<preferred>-YYYYMMDD` (latest if multiple).
|
|
22
|
+
* Entries with no available match are dropped silently.
|
|
23
|
+
*
|
|
24
|
+
* Preserves the order of {@link PREFERRED_CLAUDE_MODELS}.
|
|
25
|
+
*/
|
|
26
|
+
export declare function selectPreferredClaudeModels(available: string[], preferred?: readonly string[]): string[];
|
|
27
|
+
export interface DesktopGatewayConfig {
|
|
28
|
+
inferenceProvider: 'gateway';
|
|
29
|
+
inferenceGatewayBaseUrl: string;
|
|
30
|
+
inferenceGatewayApiKey: string;
|
|
31
|
+
inferenceGatewayAuthScheme: 'bearer';
|
|
32
|
+
}
|
|
33
|
+
export declare function buildGatewayConfig(proxyUrl: string, gatewayKey: string): DesktopGatewayConfig;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the base directory where Claude Desktop (3P) stores its config.
|
|
36
|
+
* macOS: ~/Library/Application Support/Claude-3p
|
|
37
|
+
* Windows: %APPDATA%\Claude-3p
|
|
38
|
+
*/
|
|
39
|
+
export declare function getDesktopBaseDir(): string;
|
|
40
|
+
/**
|
|
41
|
+
* Returns the path to the active inference config JSON file under configLibrary/.
|
|
42
|
+
* If `_meta.json` doesn't exist or has no `appliedId`, returns the path that
|
|
43
|
+
* a freshly-generated UUID would use; the caller is responsible for creating
|
|
44
|
+
* `_meta.json` to register it.
|
|
45
|
+
*/
|
|
46
|
+
export declare function getDesktopConfigPath(baseDir?: string): Promise<string>;
|
|
47
|
+
/**
|
|
48
|
+
* Write/merge the inference gateway settings into Claude Desktop's
|
|
49
|
+
* `configLibrary/<UUID>.json` and update `_meta.json` so the app picks them up.
|
|
50
|
+
*
|
|
51
|
+
* Preserves all non-inference keys in the existing config file.
|
|
52
|
+
* Returns the absolute path of the config file written.
|
|
53
|
+
*/
|
|
54
|
+
export declare function writeDesktopConfig(proxyUrl: string, gatewayKey: string, baseDir?: string): Promise<string>;
|
|
55
|
+
//# sourceMappingURL=desktop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/proxy/connectors/desktop.ts"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,0FAK1B,CAAC;AAEX;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgB/F;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,GAAE,SAAS,MAAM,EAA4B,GACrD,MAAM,EAAE,CAiBV;AAED,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,SAAS,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0BAA0B,EAAE,QAAQ,CAAC;CACtC;AAYD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,oBAAoB,CAO7F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,MAA4B,GAAG,OAAO,CAAC,MAAM,CAAC,CAYjG;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,MAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CAyDjB"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { randomUUID } from 'node:crypto';
|
|
5
|
+
import { getClaudeDesktopBaseDir } from '../../../../telemetry/clients/claude-desktop/claude-desktop.paths.js';
|
|
6
|
+
const INFERENCE_KEYS = [
|
|
7
|
+
'inferenceProvider',
|
|
8
|
+
'inferenceGatewayBaseUrl',
|
|
9
|
+
'inferenceGatewayApiKey',
|
|
10
|
+
'inferenceGatewayAuthScheme',
|
|
11
|
+
];
|
|
12
|
+
/**
|
|
13
|
+
* Curated list of Claude models we expose by default.
|
|
14
|
+
*
|
|
15
|
+
* Each entry is matched against the gateway's `/v1/models` response either as
|
|
16
|
+
* an exact ID or as `<entry>-<YYYYMMDD>` (the dated variant). The actual
|
|
17
|
+
* resolved ID is what gets written to the Desktop config so the gateway
|
|
18
|
+
* receives a model name it has registered.
|
|
19
|
+
*/
|
|
20
|
+
export const PREFERRED_CLAUDE_MODELS = [
|
|
21
|
+
'claude-opus-4-7',
|
|
22
|
+
'claude-opus-4-6',
|
|
23
|
+
'claude-sonnet-4-6',
|
|
24
|
+
'claude-haiku-4-5',
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Fetch the model list from the gateway's `/v1/models` endpoint and return
|
|
28
|
+
* the IDs of usable Claude-family models (excludes `-vertex` aliases since
|
|
29
|
+
* the gateway already picks the right backend for the canonical names).
|
|
30
|
+
*
|
|
31
|
+
* Returns [] if the gateway is unreachable or returns a non-OK response.
|
|
32
|
+
*/
|
|
33
|
+
export async function fetchClaudeModels(proxyUrl, gatewayKey) {
|
|
34
|
+
try {
|
|
35
|
+
const response = await fetch(new URL('/v1/models', proxyUrl), {
|
|
36
|
+
headers: { Authorization: `Bearer ${gatewayKey}` },
|
|
37
|
+
});
|
|
38
|
+
if (!response.ok)
|
|
39
|
+
return [];
|
|
40
|
+
const json = await response.json();
|
|
41
|
+
const ids = (json.data ?? [])
|
|
42
|
+
.map((m) => m.id)
|
|
43
|
+
.filter((id) => typeof id === 'string');
|
|
44
|
+
return ids
|
|
45
|
+
.filter((id) => /^claude-/i.test(id))
|
|
46
|
+
.filter((id) => !/-vertex$/i.test(id));
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Resolve each entry in {@link PREFERRED_CLAUDE_MODELS} against the gateway's
|
|
54
|
+
* `/v1/models` response. For each preferred name, prefer the exact ID; fall
|
|
55
|
+
* back to the dated variant `<preferred>-YYYYMMDD` (latest if multiple).
|
|
56
|
+
* Entries with no available match are dropped silently.
|
|
57
|
+
*
|
|
58
|
+
* Preserves the order of {@link PREFERRED_CLAUDE_MODELS}.
|
|
59
|
+
*/
|
|
60
|
+
export function selectPreferredClaudeModels(available, preferred = PREFERRED_CLAUDE_MODELS) {
|
|
61
|
+
const availableSet = new Set(available);
|
|
62
|
+
const resolved = [];
|
|
63
|
+
for (const name of preferred) {
|
|
64
|
+
if (availableSet.has(name)) {
|
|
65
|
+
resolved.push(name);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const datePrefix = `${name}-`;
|
|
69
|
+
const dated = available
|
|
70
|
+
.filter((id) => id.startsWith(datePrefix))
|
|
71
|
+
.filter((id) => /^\d{6,10}$/.test(id.slice(datePrefix.length)))
|
|
72
|
+
.sort()
|
|
73
|
+
.pop();
|
|
74
|
+
if (dated)
|
|
75
|
+
resolved.push(dated);
|
|
76
|
+
}
|
|
77
|
+
return resolved;
|
|
78
|
+
}
|
|
79
|
+
export function buildGatewayConfig(proxyUrl, gatewayKey) {
|
|
80
|
+
return {
|
|
81
|
+
inferenceProvider: 'gateway',
|
|
82
|
+
inferenceGatewayBaseUrl: proxyUrl,
|
|
83
|
+
inferenceGatewayApiKey: gatewayKey,
|
|
84
|
+
inferenceGatewayAuthScheme: 'bearer',
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Returns the base directory where Claude Desktop (3P) stores its config.
|
|
89
|
+
* macOS: ~/Library/Application Support/Claude-3p
|
|
90
|
+
* Windows: %APPDATA%\Claude-3p
|
|
91
|
+
*/
|
|
92
|
+
export function getDesktopBaseDir() {
|
|
93
|
+
return getClaudeDesktopBaseDir();
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Returns the path to the active inference config JSON file under configLibrary/.
|
|
97
|
+
* If `_meta.json` doesn't exist or has no `appliedId`, returns the path that
|
|
98
|
+
* a freshly-generated UUID would use; the caller is responsible for creating
|
|
99
|
+
* `_meta.json` to register it.
|
|
100
|
+
*/
|
|
101
|
+
export async function getDesktopConfigPath(baseDir = getDesktopBaseDir()) {
|
|
102
|
+
const libDir = join(baseDir, 'configLibrary');
|
|
103
|
+
const metaPath = join(libDir, '_meta.json');
|
|
104
|
+
if (existsSync(metaPath)) {
|
|
105
|
+
try {
|
|
106
|
+
const meta = JSON.parse(await readFile(metaPath, 'utf-8'));
|
|
107
|
+
if (meta.appliedId)
|
|
108
|
+
return join(libDir, `${meta.appliedId}.json`);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// Corrupt meta — fall through to fresh UUID
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return join(libDir, `${randomUUID()}.json`);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Write/merge the inference gateway settings into Claude Desktop's
|
|
118
|
+
* `configLibrary/<UUID>.json` and update `_meta.json` so the app picks them up.
|
|
119
|
+
*
|
|
120
|
+
* Preserves all non-inference keys in the existing config file.
|
|
121
|
+
* Returns the absolute path of the config file written.
|
|
122
|
+
*/
|
|
123
|
+
export async function writeDesktopConfig(proxyUrl, gatewayKey, baseDir = getDesktopBaseDir()) {
|
|
124
|
+
const libDir = join(baseDir, 'configLibrary');
|
|
125
|
+
if (!existsSync(libDir)) {
|
|
126
|
+
await mkdir(libDir, { recursive: true });
|
|
127
|
+
}
|
|
128
|
+
const metaPath = join(libDir, '_meta.json');
|
|
129
|
+
let meta = {};
|
|
130
|
+
if (existsSync(metaPath)) {
|
|
131
|
+
try {
|
|
132
|
+
meta = JSON.parse(await readFile(metaPath, 'utf-8'));
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
meta = {};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const configId = meta.appliedId ?? randomUUID();
|
|
139
|
+
const configPath = join(libDir, `${configId}.json`);
|
|
140
|
+
let existing = {};
|
|
141
|
+
if (existsSync(configPath)) {
|
|
142
|
+
try {
|
|
143
|
+
existing = JSON.parse(await readFile(configPath, 'utf-8'));
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
existing = {};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Discover available Claude models from the gateway and curate down to the
|
|
150
|
+
// preferred set so the user doesn't have to type them manually in the GUI.
|
|
151
|
+
const discoveredModels = await fetchClaudeModels(proxyUrl, gatewayKey);
|
|
152
|
+
const resolvedModels = selectPreferredClaudeModels(discoveredModels);
|
|
153
|
+
const inferenceModels = resolvedModels.map((name) => ({ name }));
|
|
154
|
+
for (const key of INFERENCE_KEYS) {
|
|
155
|
+
delete existing[key];
|
|
156
|
+
}
|
|
157
|
+
delete existing.inferenceModels;
|
|
158
|
+
const merged = {
|
|
159
|
+
...existing,
|
|
160
|
+
...buildGatewayConfig(proxyUrl, gatewayKey),
|
|
161
|
+
...(inferenceModels.length > 0 ? { inferenceModels } : {}),
|
|
162
|
+
};
|
|
163
|
+
await writeFile(configPath, JSON.stringify(merged, null, 2), 'utf-8');
|
|
164
|
+
const entries = meta.entries ?? [];
|
|
165
|
+
if (!entries.find((e) => e.id === configId)) {
|
|
166
|
+
entries.push({ id: configId, name: 'CodeMie Proxy' });
|
|
167
|
+
}
|
|
168
|
+
const updatedMeta = {
|
|
169
|
+
appliedId: configId,
|
|
170
|
+
entries,
|
|
171
|
+
};
|
|
172
|
+
await writeFile(metaPath, JSON.stringify(updatedMeta, null, 2), 'utf-8');
|
|
173
|
+
return configPath;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=desktop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop.js","sourceRoot":"","sources":["../../../../../src/cli/commands/proxy/connectors/desktop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface DaemonState {
|
|
2
|
+
pid: number;
|
|
3
|
+
port: number;
|
|
4
|
+
url: string;
|
|
5
|
+
profile: string;
|
|
6
|
+
gatewayKey: string;
|
|
7
|
+
telemetryMode?: 'none' | 'claude-desktop';
|
|
8
|
+
targetUrl?: string;
|
|
9
|
+
provider?: string;
|
|
10
|
+
clientType?: string;
|
|
11
|
+
syncApiUrl?: string;
|
|
12
|
+
syncCodeMieUrl?: string;
|
|
13
|
+
startedAt: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function readState(stateFile?: string): Promise<DaemonState | null>;
|
|
16
|
+
export declare function writeState(state: DaemonState, stateFile?: string): Promise<void>;
|
|
17
|
+
export declare function clearState(stateFile?: string): Promise<void>;
|
|
18
|
+
export declare function isProcessAlive(pid: number): boolean;
|
|
19
|
+
export declare function checkStatus(stateFile?: string): Promise<{
|
|
20
|
+
running: boolean;
|
|
21
|
+
state: DaemonState | null;
|
|
22
|
+
}>;
|
|
23
|
+
export interface SpawnOptions {
|
|
24
|
+
targetUrl: string;
|
|
25
|
+
provider: string;
|
|
26
|
+
profile: string;
|
|
27
|
+
port?: number;
|
|
28
|
+
gatewayKey?: string;
|
|
29
|
+
telemetryMode?: 'none' | 'claude-desktop';
|
|
30
|
+
syncApiUrl?: string;
|
|
31
|
+
syncCodeMieUrl?: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function spawnDaemon(opts: SpawnOptions): Promise<DaemonState>;
|
|
34
|
+
export declare function stopDaemon(): Promise<void>;
|
|
35
|
+
//# sourceMappingURL=daemon-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-manager.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/proxy/daemon-manager.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAsB,SAAS,CAAC,SAAS,GAAE,MAA2B,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAOnG;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,UAAU,CAAC,SAAS,GAAE,MAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOnD;AAED,wBAAsB,WAAW,CAC/B,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC,CAU1D;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAiD1E;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBhD"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { writeFile, readFile, unlink, rename } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { getCodemieHome, getDirname } from '../../../utils/paths.js';
|
|
4
|
+
import { logger } from '../../../utils/logger.js';
|
|
5
|
+
import { sanitizeLogArgs } from '../../../utils/security.js';
|
|
6
|
+
import { ToolExecutionError } from '../../../utils/errors.js';
|
|
7
|
+
import { spawnDetached } from '../../../utils/processes.js';
|
|
8
|
+
const DEFAULT_STATE_FILE = join(getCodemieHome(), 'proxy-daemon.json');
|
|
9
|
+
export async function readState(stateFile = DEFAULT_STATE_FILE) {
|
|
10
|
+
try {
|
|
11
|
+
const raw = await readFile(stateFile, 'utf-8');
|
|
12
|
+
return JSON.parse(raw);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export async function writeState(state, stateFile = DEFAULT_STATE_FILE) {
|
|
19
|
+
const tmp = stateFile + '.tmp';
|
|
20
|
+
await writeFile(tmp, JSON.stringify(state, null, 2), 'utf-8');
|
|
21
|
+
await rename(tmp, stateFile);
|
|
22
|
+
}
|
|
23
|
+
export async function clearState(stateFile = DEFAULT_STATE_FILE) {
|
|
24
|
+
try {
|
|
25
|
+
await unlink(stateFile);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// Already gone — no-op
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function isProcessAlive(pid) {
|
|
32
|
+
try {
|
|
33
|
+
process.kill(pid, 0);
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export async function checkStatus(stateFile = DEFAULT_STATE_FILE) {
|
|
41
|
+
const state = await readState(stateFile);
|
|
42
|
+
if (!state)
|
|
43
|
+
return { running: false, state: null };
|
|
44
|
+
if (!isProcessAlive(state.pid)) {
|
|
45
|
+
await clearState(stateFile);
|
|
46
|
+
return { running: false, state: null };
|
|
47
|
+
}
|
|
48
|
+
return { running: true, state };
|
|
49
|
+
}
|
|
50
|
+
export async function spawnDaemon(opts) {
|
|
51
|
+
const stateFile = DEFAULT_STATE_FILE;
|
|
52
|
+
const gatewayKey = opts.gatewayKey ?? 'codemie-proxy';
|
|
53
|
+
// Locate the daemon binary relative to this compiled file:
|
|
54
|
+
// dist/cli/commands/proxy/daemon-manager.js → ../../../../bin/proxy-daemon.js
|
|
55
|
+
const daemonBin = join(getDirname(import.meta.url), '../../../../bin/proxy-daemon.js');
|
|
56
|
+
const args = [
|
|
57
|
+
daemonBin,
|
|
58
|
+
'--target-url', opts.targetUrl,
|
|
59
|
+
'--provider', opts.provider,
|
|
60
|
+
'--profile', opts.profile,
|
|
61
|
+
'--gateway-key', gatewayKey,
|
|
62
|
+
'--state-file', stateFile,
|
|
63
|
+
...(opts.port ? ['--port', String(opts.port)] : []),
|
|
64
|
+
...(opts.telemetryMode ? ['--telemetry-mode', opts.telemetryMode] : []),
|
|
65
|
+
...(opts.syncApiUrl ? ['--sync-api-url', opts.syncApiUrl] : []),
|
|
66
|
+
...(opts.syncCodeMieUrl ? ['--sync-codemie-url', opts.syncCodeMieUrl] : []),
|
|
67
|
+
];
|
|
68
|
+
logger.debug('[daemon-manager] Spawning daemon', ...sanitizeLogArgs({
|
|
69
|
+
daemonBin,
|
|
70
|
+
targetUrl: opts.targetUrl,
|
|
71
|
+
provider: opts.provider,
|
|
72
|
+
profile: opts.profile,
|
|
73
|
+
port: opts.port,
|
|
74
|
+
gatewayKey,
|
|
75
|
+
telemetryMode: opts.telemetryMode,
|
|
76
|
+
syncApiUrl: opts.syncApiUrl,
|
|
77
|
+
syncCodeMieUrl: opts.syncCodeMieUrl
|
|
78
|
+
}));
|
|
79
|
+
spawnDetached(process.execPath, args);
|
|
80
|
+
// Poll up to 5 s for daemon readiness
|
|
81
|
+
for (let i = 0; i < 50; i++) {
|
|
82
|
+
await new Promise(r => setTimeout(r, 100));
|
|
83
|
+
const state = await readState(stateFile);
|
|
84
|
+
if (state && isProcessAlive(state.pid))
|
|
85
|
+
return state;
|
|
86
|
+
}
|
|
87
|
+
throw new ToolExecutionError('proxy-daemon', 'Daemon failed to start within 5 seconds. Check logs: ~/.codemie/logs/');
|
|
88
|
+
}
|
|
89
|
+
export async function stopDaemon() {
|
|
90
|
+
const stateFile = DEFAULT_STATE_FILE;
|
|
91
|
+
const state = await readState(stateFile);
|
|
92
|
+
if (!state)
|
|
93
|
+
return;
|
|
94
|
+
if (isProcessAlive(state.pid)) {
|
|
95
|
+
process.kill(state.pid, 'SIGTERM');
|
|
96
|
+
for (let i = 0; i < 50; i++) {
|
|
97
|
+
await new Promise(r => setTimeout(r, 100));
|
|
98
|
+
if (!isProcessAlive(state.pid)) {
|
|
99
|
+
await clearState(stateFile);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
throw new ToolExecutionError('proxy-daemon', `Daemon pid ${state.pid} did not stop within 5 seconds`);
|
|
104
|
+
}
|
|
105
|
+
await clearState(stateFile);
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=daemon-manager.js.map
|