@sentropic/h2a-runtime 0.98.1 → 0.98.4
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/agent-launch-args.d.ts +1 -1
- package/dist/agent-launch-args.d.ts.map +1 -1
- package/dist/agent-launch-args.js +16 -1
- package/dist/agent-launch-args.js.map +1 -1
- package/dist/auth-bundle.d.ts.map +1 -1
- package/dist/auth-bundle.js +1 -0
- package/dist/auth-bundle.js.map +1 -1
- package/dist/cli-help-groups.d.ts.map +1 -1
- package/dist/cli-help-groups.js +1 -0
- package/dist/cli-help-groups.js.map +1 -1
- package/dist/delegate.d.ts.map +1 -1
- package/dist/delegate.js +14 -2
- package/dist/delegate.js.map +1 -1
- package/dist/gateway-host/config-file.d.ts +19 -0
- package/dist/gateway-host/config-file.d.ts.map +1 -0
- package/dist/gateway-host/config-file.js +54 -0
- package/dist/gateway-host/config-file.js.map +1 -0
- package/dist/gateway-host/daemon.d.ts +61 -0
- package/dist/gateway-host/daemon.d.ts.map +1 -0
- package/dist/gateway-host/daemon.js +274 -0
- package/dist/gateway-host/daemon.js.map +1 -0
- package/dist/gateway-host/host.d.ts +34 -0
- package/dist/gateway-host/host.d.ts.map +1 -0
- package/dist/gateway-host/host.js +228 -0
- package/dist/gateway-host/host.js.map +1 -0
- package/dist/{llm-gateway-runtime/session-ledger.d.ts → gateway-host/ledger.d.ts} +4 -4
- package/dist/gateway-host/ledger.d.ts.map +1 -0
- package/dist/{llm-gateway-runtime/session-ledger.js → gateway-host/ledger.js} +1 -1
- package/dist/gateway-host/ledger.js.map +1 -0
- package/dist/{llm-gateway-runtime/sticky.d.ts → gateway-host/sessions.d.ts} +9 -1
- package/dist/gateway-host/sessions.d.ts.map +1 -0
- package/dist/gateway-host/sessions.js +120 -0
- package/dist/gateway-host/sessions.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -25
- package/dist/index.js.map +1 -1
- package/dist/llm-mesh-accounts.d.ts +55 -0
- package/dist/llm-mesh-accounts.d.ts.map +1 -0
- package/dist/llm-mesh-accounts.js +188 -0
- package/dist/llm-mesh-accounts.js.map +1 -0
- package/dist/native-host.d.ts +1 -1
- package/dist/native-host.d.ts.map +1 -1
- package/dist/native-host.js +84 -21
- package/dist/native-host.js.map +1 -1
- package/dist/native-terminal/attach-recovery.d.ts +9 -0
- package/dist/native-terminal/attach-recovery.d.ts.map +1 -0
- package/dist/native-terminal/attach-recovery.js +54 -0
- package/dist/native-terminal/attach-recovery.js.map +1 -0
- package/dist/native-terminal/fleet.d.ts +2 -1
- package/dist/native-terminal/fleet.d.ts.map +1 -1
- package/dist/native-terminal/fleet.js +10 -1
- package/dist/native-terminal/fleet.js.map +1 -1
- package/dist/native-terminal/host.d.ts +1 -0
- package/dist/native-terminal/host.d.ts.map +1 -1
- package/dist/native-terminal/host.js +5 -2
- package/dist/native-terminal/host.js.map +1 -1
- package/dist/native-terminal/journal.d.ts +48 -0
- package/dist/native-terminal/journal.d.ts.map +1 -0
- package/dist/native-terminal/journal.js +305 -0
- package/dist/native-terminal/journal.js.map +1 -0
- package/dist/native-terminal/op.d.ts +3 -0
- package/dist/native-terminal/op.d.ts.map +1 -1
- package/dist/native-terminal/op.js +148 -33
- package/dist/native-terminal/op.js.map +1 -1
- package/dist/native-terminal/process.d.ts.map +1 -1
- package/dist/native-terminal/process.js +134 -46
- package/dist/native-terminal/process.js.map +1 -1
- package/dist/native-terminal/replay-buffer.d.ts +3 -0
- package/dist/native-terminal/replay-buffer.d.ts.map +1 -1
- package/dist/native-terminal/replay-buffer.js +11 -0
- package/dist/native-terminal/replay-buffer.js.map +1 -1
- package/dist/native-terminal/reset-relay.d.ts +11 -0
- package/dist/native-terminal/reset-relay.d.ts.map +1 -0
- package/dist/native-terminal/reset-relay.js +38 -0
- package/dist/native-terminal/reset-relay.js.map +1 -0
- package/dist/native-terminal/server.d.ts +8 -0
- package/dist/native-terminal/server.d.ts.map +1 -1
- package/dist/native-terminal/server.js +535 -58
- package/dist/native-terminal/server.js.map +1 -1
- package/dist/native-terminal/terminal-modes.d.ts +15 -0
- package/dist/native-terminal/terminal-modes.d.ts.map +1 -0
- package/dist/native-terminal/terminal-modes.js +180 -0
- package/dist/native-terminal/terminal-modes.js.map +1 -0
- package/dist/profile-menu.d.ts.map +1 -1
- package/dist/profile-menu.js +2 -0
- package/dist/profile-menu.js.map +1 -1
- package/dist/profiles.d.ts +2 -0
- package/dist/profiles.d.ts.map +1 -1
- package/dist/profiles.js +6 -0
- package/dist/profiles.js.map +1 -1
- package/dist/protocol-local.d.ts +1 -1
- package/dist/protocol-local.d.ts.map +1 -1
- package/dist/protocol-local.js +1 -0
- package/dist/protocol-local.js.map +1 -1
- package/dist/registry.d.ts +24 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +57 -1
- package/dist/registry.js.map +1 -1
- package/dist/restore.d.ts +1 -1
- package/dist/restore.d.ts.map +1 -1
- package/dist/resume-launch-options.d.ts +59 -0
- package/dist/resume-launch-options.d.ts.map +1 -0
- package/dist/resume-launch-options.js +64 -0
- package/dist/resume-launch-options.js.map +1 -0
- package/dist/{llm-routing-config.d.ts → routing-preferences.d.ts} +2 -2
- package/dist/routing-preferences.d.ts.map +1 -0
- package/dist/{llm-routing-config.js → routing-preferences.js} +16 -13
- package/dist/routing-preferences.js.map +1 -0
- package/dist/sentropic/auth-token.d.ts +1 -1
- package/dist/sentropic/auth-token.js +1 -1
- package/dist/status-projection.d.ts +1 -1
- package/dist/status-projection.d.ts.map +1 -1
- package/dist/throttle-signatures.d.ts.map +1 -1
- package/dist/throttle-signatures.js +3 -0
- package/dist/throttle-signatures.js.map +1 -1
- package/dist/tmux.d.ts +17 -1
- package/dist/tmux.d.ts.map +1 -1
- package/dist/tmux.js +10 -4
- package/dist/tmux.js.map +1 -1
- package/package.json +8 -4
- package/dist/llm-gateway-runtime/index.d.ts +0 -10
- package/dist/llm-gateway-runtime/index.d.ts.map +0 -1
- package/dist/llm-gateway-runtime/index.js +0 -147
- package/dist/llm-gateway-runtime/index.js.map +0 -1
- package/dist/llm-gateway-runtime/session-ledger.d.ts.map +0 -1
- package/dist/llm-gateway-runtime/session-ledger.js.map +0 -1
- package/dist/llm-gateway-runtime/sticky.d.ts.map +0 -1
- package/dist/llm-gateway-runtime/sticky.js +0 -51
- package/dist/llm-gateway-runtime/sticky.js.map +0 -1
- package/dist/llm-mesh.d.ts +0 -154
- package/dist/llm-mesh.d.ts.map +0 -1
- package/dist/llm-mesh.js +0 -490
- package/dist/llm-mesh.js.map +0 -1
- package/dist/llm-routing-config.d.ts.map +0 -1
- package/dist/llm-routing-config.js.map +0 -1
package/dist/llm-mesh.js
DELETED
|
@@ -1,490 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* llm-mesh — local LLM gateway management for solo-dev mode.
|
|
3
|
-
*
|
|
4
|
-
* Enrollment: `h2a llm-mesh account enroll cloud-code|codex` delegates OAuth and
|
|
5
|
-
* account persistence entirely to the sentropic-owned facade.
|
|
6
|
-
*
|
|
7
|
-
* Startup: `h2a llm-mesh start` reads public host config and starts the
|
|
8
|
-
* embedded gateway runtime as a background process. Callers acquire an
|
|
9
|
-
* opaque process-local bearer without printing it.
|
|
10
|
-
*
|
|
11
|
-
* Config path: ~/.sentropic/llm-mesh.json (0600, public metadata only)
|
|
12
|
-
* PID file: ~/.sentropic/llm-mesh.pid
|
|
13
|
-
* Runtime file: ~/.sentropic/llm-mesh-token.json (0600, base URL + PID only)
|
|
14
|
-
*/
|
|
15
|
-
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
16
|
-
import { homedir, hostname } from "node:os";
|
|
17
|
-
import { dirname, join } from "node:path";
|
|
18
|
-
import { fileURLToPath } from "node:url";
|
|
19
|
-
import { spawn } from "node:child_process";
|
|
20
|
-
import { randomBytes } from "node:crypto";
|
|
21
|
-
import { createLlmMeshFacade, } from "@sentropic/llm-mesh/facade";
|
|
22
|
-
import { validateLlmMeshRoutingConfig, } from "./llm-routing-config.js";
|
|
23
|
-
const ANTHROPIC_GATEWAY_ENV_KEYS = [
|
|
24
|
-
"ANTHROPIC_BASE_URL",
|
|
25
|
-
"ANTHROPIC_AUTH_TOKEN",
|
|
26
|
-
"ANTHROPIC_API_KEY",
|
|
27
|
-
];
|
|
28
|
-
/**
|
|
29
|
-
* Temporarily replace the H2A gateway lane and return an exact restorer.
|
|
30
|
-
* Direct launches preserve a user-owned ANTHROPIC_API_KEY. Gateway launches
|
|
31
|
-
* hide it from Claude Code because the local gateway authenticates with the
|
|
32
|
-
* opaque AUTH_TOKEN lane instead.
|
|
33
|
-
*/
|
|
34
|
-
export function replaceAnthropicGatewayEnvironment(env, replacement) {
|
|
35
|
-
const previous = new Map(ANTHROPIC_GATEWAY_ENV_KEYS.map((key) => [key, env[key]]));
|
|
36
|
-
for (const key of ANTHROPIC_GATEWAY_ENV_KEYS) {
|
|
37
|
-
if (key !== "ANTHROPIC_API_KEY" || replacement !== undefined) {
|
|
38
|
-
delete env[key];
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
for (const [key, value] of Object.entries(replacement ?? {})) {
|
|
42
|
-
if (value !== undefined)
|
|
43
|
-
env[key] = value;
|
|
44
|
-
}
|
|
45
|
-
return () => {
|
|
46
|
-
for (const [key, value] of previous) {
|
|
47
|
-
if (value === undefined)
|
|
48
|
-
delete env[key];
|
|
49
|
-
else
|
|
50
|
-
env[key] = value;
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
function facadeConfigResolver() {
|
|
55
|
-
return {
|
|
56
|
-
async resolveConfig(configRef) {
|
|
57
|
-
const raw = process.env.H2A_LLM_MESH_CONFIG_JSON;
|
|
58
|
-
if (!raw)
|
|
59
|
-
return {};
|
|
60
|
-
try {
|
|
61
|
-
const parsed = JSON.parse(raw);
|
|
62
|
-
const scoped = parsed[configRef];
|
|
63
|
-
return scoped && typeof scoped === "object" && !Array.isArray(scoped)
|
|
64
|
-
? scoped
|
|
65
|
-
: parsed;
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
return {};
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
export function createCliLlmMeshFacade() {
|
|
74
|
-
return createLlmMeshFacade({
|
|
75
|
-
configResolver: facadeConfigResolver(),
|
|
76
|
-
mode: "cli",
|
|
77
|
-
legacyAccountOwnerScopeRef: llmMeshOwnerScopeRef(),
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
/** Stable local owner used both at enrollment and by gateway-authenticated routing. */
|
|
81
|
-
export function llmMeshOwnerScopeRef() {
|
|
82
|
-
return process.env.H2A_LLM_MESH_OWNER_SCOPE?.trim() || `cli:${hostname()}`;
|
|
83
|
-
}
|
|
84
|
-
function openEnrollmentBrowser(url) {
|
|
85
|
-
const command = process.platform === "darwin"
|
|
86
|
-
? "open"
|
|
87
|
-
: process.platform === "win32"
|
|
88
|
-
? "cmd"
|
|
89
|
-
: "xdg-open";
|
|
90
|
-
const args = process.platform === "win32" ? ["/c", "start", "", url] : [url];
|
|
91
|
-
try {
|
|
92
|
-
const child = spawn(command, args, { detached: true, stdio: "ignore" });
|
|
93
|
-
child.unref();
|
|
94
|
-
}
|
|
95
|
-
catch {
|
|
96
|
-
// The URL is always printed, so a headless CLI can continue manually.
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Enroll through the sentropic-owned OAuth state machine. H2A never receives
|
|
101
|
-
* an authorization code or a provider token. Account records remain owned by
|
|
102
|
-
* the facade/keyring and are not copied into h2a config.
|
|
103
|
-
*/
|
|
104
|
-
export async function enrollViaFacade(provider, options = {}) {
|
|
105
|
-
const facade = options.facade ?? createCliLlmMeshFacade();
|
|
106
|
-
const ownerScope = options.ownerScope ?? llmMeshOwnerScopeRef();
|
|
107
|
-
// The installed @sentropic/llm-mesh types predate the muse provider, but
|
|
108
|
-
// enroll passes the id through opaquely — a muse-capable facade resolves
|
|
109
|
-
// it, an older one fails with its own unknown-provider error. Cast is
|
|
110
|
-
// load-bearing until the dep bump, not a lie about the contract.
|
|
111
|
-
const session = await facade.enroll(provider, {
|
|
112
|
-
configRef: options.configRef ?? process.env.H2A_LLM_MESH_CONFIG_REF ?? "default",
|
|
113
|
-
mode: "cli",
|
|
114
|
-
redirectUri: options.redirectUri ?? "http://127.0.0.1",
|
|
115
|
-
ownerScope,
|
|
116
|
-
});
|
|
117
|
-
if (provider === "muse") {
|
|
118
|
-
// Muse CLI-store import (BR75): no browser or device round-trip — the
|
|
119
|
-
// owner act was the muse login itself. The ownerScope binds the enrolling
|
|
120
|
-
// owner explicitly (never inferred); it doubles as the completion code
|
|
121
|
-
// the mesh provider carries but does not validate.
|
|
122
|
-
// Installed mesh types predate the local-import kind (same load-bearing
|
|
123
|
-
// cast pattern as the enroll call above); runtime shape verified live.
|
|
124
|
-
const museSession = session;
|
|
125
|
-
if (museSession.kind !== "local-import") {
|
|
126
|
-
throw new Error("Muse enrollment did not return a local-import session");
|
|
127
|
-
}
|
|
128
|
-
const completeMuseImport = facade.completeMuseImport;
|
|
129
|
-
if (typeof completeMuseImport !== "function") {
|
|
130
|
-
throw new Error("Muse enrollment needs facade.completeMuseImport — upgrade @sentropic/llm-mesh " +
|
|
131
|
-
"to a version with the Muse enrollment provider");
|
|
132
|
-
}
|
|
133
|
-
process.stdout.write(`[h2a] llm-mesh: importing Muse CLI credentials from ${museSession.source} for ${ownerScope}\n`);
|
|
134
|
-
const completed = await completeMuseImport.call(facade, museSession.enrollmentId, ownerScope, ownerScope);
|
|
135
|
-
return { accountId: completed.accountId, provider, label: completed.label };
|
|
136
|
-
}
|
|
137
|
-
if (provider === "muse-code") {
|
|
138
|
-
// Native Meta device flow (RFC 8628, MuseCodeEnrollmentProvider
|
|
139
|
-
// mesh-side): print the user code + verification URL, then complete via
|
|
140
|
-
// the muse-specific device import — NOT the generic pollForCompletion,
|
|
141
|
-
// which the mesh service hard-wires to the codex provider.
|
|
142
|
-
const deviceSession = session;
|
|
143
|
-
if (deviceSession.kind !== "device-code") {
|
|
144
|
-
throw new Error("Muse device-flow enrollment did not return a device code");
|
|
145
|
-
}
|
|
146
|
-
const completeMuseDeviceImport = facade.completeMuseDeviceImport;
|
|
147
|
-
if (typeof completeMuseDeviceImport !== "function") {
|
|
148
|
-
throw new Error("Muse device-flow enrollment needs facade.completeMuseDeviceImport — upgrade @sentropic/llm-mesh " +
|
|
149
|
-
"to a version with the muse-code enrollment provider");
|
|
150
|
-
}
|
|
151
|
-
process.stdout.write(`[h2a] llm-mesh: enter code ${deviceSession.userCode} at ${deviceSession.verificationUrl}\n`);
|
|
152
|
-
const completed = await completeMuseDeviceImport.call(facade, deviceSession.enrollmentId, ownerScope);
|
|
153
|
-
return { accountId: completed.accountId, provider, label: completed.label };
|
|
154
|
-
}
|
|
155
|
-
const completed = provider === "cloud-code"
|
|
156
|
-
? await (async () => {
|
|
157
|
-
if (session.kind !== "authorization-url") {
|
|
158
|
-
throw new Error("Cloud Code enrollment did not return an authorization URL");
|
|
159
|
-
}
|
|
160
|
-
process.stdout.write(`[h2a] llm-mesh: open ${session.url}\n`);
|
|
161
|
-
(options.openBrowser ?? openEnrollmentBrowser)(session.url);
|
|
162
|
-
return facade.waitForCallback(session.enrollmentId);
|
|
163
|
-
})()
|
|
164
|
-
: await (async () => {
|
|
165
|
-
if (session.kind !== "device-code") {
|
|
166
|
-
throw new Error("Codex enrollment did not return a device code");
|
|
167
|
-
}
|
|
168
|
-
process.stdout.write(`[h2a] llm-mesh: enter code ${session.userCode} at ${session.verificationUrl}\n`);
|
|
169
|
-
return facade.pollForCompletion(session.enrollmentId);
|
|
170
|
-
})();
|
|
171
|
-
return { accountId: completed.accountId, provider, label: completed.label };
|
|
172
|
-
}
|
|
173
|
-
export async function listAccountsViaFacade(options = {}) {
|
|
174
|
-
const facade = options.facade ?? createCliLlmMeshFacade();
|
|
175
|
-
return facade.listAccounts({
|
|
176
|
-
ownerScope: options.ownerScope ?? llmMeshOwnerScopeRef(),
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
export async function removeAccountViaFacade(accountId, options = {}) {
|
|
180
|
-
const facade = options.facade ?? createCliLlmMeshFacade();
|
|
181
|
-
return facade.removeAccount(accountId, {
|
|
182
|
-
ownerScope: options.ownerScope ?? llmMeshOwnerScopeRef(),
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
function publicAccountProjection(account) {
|
|
186
|
-
return {
|
|
187
|
-
accountId: account.accountId,
|
|
188
|
-
...(account.accountLabel ? { accountLabel: account.accountLabel } : {}),
|
|
189
|
-
providerId: account.providerId,
|
|
190
|
-
status: account.status,
|
|
191
|
-
createdAt: account.createdAt,
|
|
192
|
-
updatedAt: account.updatedAt,
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
export function formatLlmMeshAccountList(accounts, json) {
|
|
196
|
-
const publicAccounts = accounts.map(publicAccountProjection);
|
|
197
|
-
if (json)
|
|
198
|
-
return JSON.stringify(publicAccounts, null, 2);
|
|
199
|
-
if (publicAccounts.length === 0) {
|
|
200
|
-
return "[h2a] llm-mesh account: no accounts enrolled";
|
|
201
|
-
}
|
|
202
|
-
const rows = publicAccounts.map((account) => [
|
|
203
|
-
account.accountId,
|
|
204
|
-
account.providerId,
|
|
205
|
-
account.accountLabel ?? "-",
|
|
206
|
-
account.status,
|
|
207
|
-
account.createdAt,
|
|
208
|
-
]);
|
|
209
|
-
const headers = ["ID", "PROVIDER", "LABEL", "STATUS", "ENROLLED"];
|
|
210
|
-
const widths = headers.map((header, index) => Math.max(header.length, ...rows.map((row) => row[index]?.length ?? 0)));
|
|
211
|
-
return [headers, ...rows]
|
|
212
|
-
.map((row) => row.map((value, index) => value.padEnd(widths[index] ?? value.length)).join(" ").trimEnd())
|
|
213
|
-
.join("\n");
|
|
214
|
-
}
|
|
215
|
-
const SAFE_ACCOUNT_NOT_FOUND = /^Account '[A-Za-z0-9][A-Za-z0-9._:-]{0,127}' not found$/;
|
|
216
|
-
export function formatLlmMeshAccountError(error, fallback) {
|
|
217
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
218
|
-
return SAFE_ACCOUNT_NOT_FOUND.test(message) ? message : fallback;
|
|
219
|
-
}
|
|
220
|
-
// ---------------------------------------------------------------------------
|
|
221
|
-
// Capitalized LlmMeshManager API
|
|
222
|
-
// ---------------------------------------------------------------------------
|
|
223
|
-
export class LlmMeshManager {
|
|
224
|
-
GetActiveConfig(dir) {
|
|
225
|
-
return readLlmMeshConfig(dir);
|
|
226
|
-
}
|
|
227
|
-
SaveConfig(config, dir) {
|
|
228
|
-
writeLlmMeshConfig(config, dir);
|
|
229
|
-
}
|
|
230
|
-
async StartGateway(config, opts = {}) {
|
|
231
|
-
return startGateway(config, opts);
|
|
232
|
-
}
|
|
233
|
-
StopGateway(dir) {
|
|
234
|
-
return stopGateway(dir);
|
|
235
|
-
}
|
|
236
|
-
async ResolveSession(dir) {
|
|
237
|
-
return acquireLlmMeshSessionEnv(dir);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
// ---------------------------------------------------------------------------
|
|
241
|
-
// Paths
|
|
242
|
-
// ---------------------------------------------------------------------------
|
|
243
|
-
export function sentropicDir() {
|
|
244
|
-
return join(homedir(), ".sentropic");
|
|
245
|
-
}
|
|
246
|
-
export function llmMeshConfigPath(dir) {
|
|
247
|
-
return join(dir ?? sentropicDir(), "llm-mesh.json");
|
|
248
|
-
}
|
|
249
|
-
export function llmMeshPidPath(dir) {
|
|
250
|
-
return join(dir ?? sentropicDir(), "llm-mesh.pid");
|
|
251
|
-
}
|
|
252
|
-
export function llmMeshTokenPath(dir) {
|
|
253
|
-
return join(dir ?? sentropicDir(), "llm-mesh-token.json");
|
|
254
|
-
}
|
|
255
|
-
export function llmMeshLogPath(config, dir) {
|
|
256
|
-
return config?.logFile ?? join(dir ?? sentropicDir(), "llm-mesh.log");
|
|
257
|
-
}
|
|
258
|
-
// ---------------------------------------------------------------------------
|
|
259
|
-
// Config read/write
|
|
260
|
-
// ---------------------------------------------------------------------------
|
|
261
|
-
function readJson(path) {
|
|
262
|
-
try {
|
|
263
|
-
return JSON.parse(readFileSync(path, "utf8"));
|
|
264
|
-
}
|
|
265
|
-
catch {
|
|
266
|
-
return null;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
function writeSecret(path, value) {
|
|
270
|
-
mkdirSync(dirname(path), { recursive: true });
|
|
271
|
-
const tmp = `${path}.tmp.${process.pid}`;
|
|
272
|
-
writeFileSync(tmp, JSON.stringify(value, null, 2) + "\n", { mode: 0o600 });
|
|
273
|
-
chmodSync(tmp, 0o600);
|
|
274
|
-
renameSync(tmp, path);
|
|
275
|
-
}
|
|
276
|
-
export function readLlmMeshConfig(dir) {
|
|
277
|
-
const config = readJson(llmMeshConfigPath(dir));
|
|
278
|
-
if (!config)
|
|
279
|
-
return null;
|
|
280
|
-
const { accounts: _legacyAccounts, meshAccounts: _legacyPublicIds, ...publicConfig } = config;
|
|
281
|
-
return publicConfig;
|
|
282
|
-
}
|
|
283
|
-
export function writeLlmMeshConfig(config, dir) {
|
|
284
|
-
// The facade/keyring own credentials. Keep only public enrollment metadata
|
|
285
|
-
// in llm-mesh.json, including when migrating a pre-facade configuration.
|
|
286
|
-
const { accounts: _legacyCredentialRecords, meshAccounts: _legacyPublicIds, ...publicConfig } = config;
|
|
287
|
-
if (publicConfig.routing)
|
|
288
|
-
validateLlmMeshRoutingConfig(publicConfig.routing);
|
|
289
|
-
writeSecret(llmMeshConfigPath(dir), publicConfig);
|
|
290
|
-
}
|
|
291
|
-
export function updateLlmMeshRoutingConfig(routing, dir) {
|
|
292
|
-
const config = readLlmMeshConfig(dir) ?? {};
|
|
293
|
-
const next = routing
|
|
294
|
-
? { ...config, routing: validateLlmMeshRoutingConfig(routing) }
|
|
295
|
-
: (() => {
|
|
296
|
-
const copy = { ...config };
|
|
297
|
-
delete copy.routing;
|
|
298
|
-
return copy;
|
|
299
|
-
})();
|
|
300
|
-
writeLlmMeshConfig(next, dir);
|
|
301
|
-
return next;
|
|
302
|
-
}
|
|
303
|
-
// ---------------------------------------------------------------------------
|
|
304
|
-
// Gateway process management
|
|
305
|
-
// ---------------------------------------------------------------------------
|
|
306
|
-
/** Resolve the embedded gateway runtime entry point relative to this package. */
|
|
307
|
-
export function gatewayScriptPath() {
|
|
308
|
-
const thisFile = fileURLToPath(import.meta.url);
|
|
309
|
-
return join(dirname(thisFile), "llm-gateway-runtime", "index.js");
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* A gateway session is an account-affinity boundary, so a local CLI session
|
|
313
|
-
* must never inherit a process-wide static identifier. Callers provide the
|
|
314
|
-
* stable tmux/conversation identity when they have one; standalone gateway
|
|
315
|
-
* management gets a fresh ephemeral identity instead.
|
|
316
|
-
*/
|
|
317
|
-
export function gatewayClientSessionId(clientSessionId) {
|
|
318
|
-
const supplied = clientSessionId?.trim();
|
|
319
|
-
return supplied || `local-${randomBytes(16).toString("hex")}`;
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* Start the llm-gateway as a detached background process.
|
|
323
|
-
* Returns the PID, port, and a gw-token for Claude Code.
|
|
324
|
-
*/
|
|
325
|
-
export async function startGateway(config, opts = {}) {
|
|
326
|
-
const port = config.port ?? 3002;
|
|
327
|
-
const stateDir = opts.stateDir;
|
|
328
|
-
// An explicitly isolated state root must not inherit a live gateway's log.
|
|
329
|
-
const logFile = stateDir ? llmMeshLogPath(undefined, stateDir) : llmMeshLogPath(config);
|
|
330
|
-
const gatewayScript = gatewayScriptPath();
|
|
331
|
-
if (!existsSync(gatewayScript)) {
|
|
332
|
-
throw new Error(`Gateway script not found: ${gatewayScript}\n` +
|
|
333
|
-
`Run \`npm run build -w @sentropic/remote-cli\` first.`);
|
|
334
|
-
}
|
|
335
|
-
mkdirSync(stateDir ?? sentropicDir(), { recursive: true });
|
|
336
|
-
const gatewayEnv = {
|
|
337
|
-
...process.env,
|
|
338
|
-
PORT: String(port),
|
|
339
|
-
H2A_LLM_MESH_OWNER_SCOPE: llmMeshOwnerScopeRef(),
|
|
340
|
-
...(config.routing
|
|
341
|
-
? { H2A_LLM_MESH_ROUTING_JSON: JSON.stringify(config.routing) }
|
|
342
|
-
: {}),
|
|
343
|
-
};
|
|
344
|
-
// Start detached, piping stdout+stderr to logFile
|
|
345
|
-
const { openSync } = await import("node:fs");
|
|
346
|
-
const logFd = openSync(logFile, "a");
|
|
347
|
-
const child = spawn("node", [gatewayScript], {
|
|
348
|
-
detached: true,
|
|
349
|
-
stdio: ["ignore", logFd, logFd],
|
|
350
|
-
env: gatewayEnv,
|
|
351
|
-
});
|
|
352
|
-
child.unref();
|
|
353
|
-
const pid = child.pid;
|
|
354
|
-
// Write PID file
|
|
355
|
-
writeFileSync(llmMeshPidPath(stateDir), String(pid) + "\n");
|
|
356
|
-
// Wait for the gateway to be ready
|
|
357
|
-
const baseUrl = `http://localhost:${port}`;
|
|
358
|
-
await waitForHealth(baseUrl, 10_000);
|
|
359
|
-
// Acquire a session token
|
|
360
|
-
const sessionResp = await fetch(`${baseUrl}/v1/session`, {
|
|
361
|
-
method: "POST",
|
|
362
|
-
headers: { "content-type": "application/json" },
|
|
363
|
-
body: JSON.stringify({
|
|
364
|
-
sessionId: gatewayClientSessionId(opts.clientSessionId),
|
|
365
|
-
clientSessionId: opts.clientSessionId,
|
|
366
|
-
workspaceId: process.cwd(),
|
|
367
|
-
}),
|
|
368
|
-
});
|
|
369
|
-
if (!sessionResp.ok) {
|
|
370
|
-
throw new Error(`Session acquisition failed: ${sessionResp.status}`);
|
|
371
|
-
}
|
|
372
|
-
const session = (await sessionResp.json());
|
|
373
|
-
const gatewayToken = session.gatewayToken;
|
|
374
|
-
if (!gatewayToken)
|
|
375
|
-
throw new Error("No gatewayToken in session response");
|
|
376
|
-
// Persist only process metadata. The opaque bearer remains process-local and
|
|
377
|
-
// is reacquired for each caller affinity.
|
|
378
|
-
writeSecret(llmMeshTokenPath(stateDir), {
|
|
379
|
-
baseUrl,
|
|
380
|
-
pid,
|
|
381
|
-
});
|
|
382
|
-
return { pid, port, gatewayToken };
|
|
383
|
-
}
|
|
384
|
-
async function waitForHealth(baseUrl, timeoutMs) {
|
|
385
|
-
const deadline = Date.now() + timeoutMs;
|
|
386
|
-
while (Date.now() < deadline) {
|
|
387
|
-
try {
|
|
388
|
-
const resp = await fetch(`${baseUrl}/health`);
|
|
389
|
-
if (resp.ok)
|
|
390
|
-
return;
|
|
391
|
-
}
|
|
392
|
-
catch {
|
|
393
|
-
// not ready yet
|
|
394
|
-
}
|
|
395
|
-
await new Promise((r) => setTimeout(r, 200));
|
|
396
|
-
}
|
|
397
|
-
throw new Error(`Gateway did not become healthy within ${timeoutMs}ms`);
|
|
398
|
-
}
|
|
399
|
-
/** Read the running gateway's PID. Returns null if not running. */
|
|
400
|
-
export function readGatewayPid(dir) {
|
|
401
|
-
try {
|
|
402
|
-
const raw = readFileSync(llmMeshPidPath(dir), "utf8").trim();
|
|
403
|
-
const pid = parseInt(raw, 10);
|
|
404
|
-
if (isNaN(pid))
|
|
405
|
-
return null;
|
|
406
|
-
// Check if the process is still alive
|
|
407
|
-
process.kill(pid, 0);
|
|
408
|
-
return pid;
|
|
409
|
-
}
|
|
410
|
-
catch {
|
|
411
|
-
return null;
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
function configuredGatewayBaseUrl(dir) {
|
|
415
|
-
const config = readLlmMeshConfig(dir);
|
|
416
|
-
if (!config)
|
|
417
|
-
return null;
|
|
418
|
-
return `http://localhost:${config.port ?? 3002}`;
|
|
419
|
-
}
|
|
420
|
-
/**
|
|
421
|
-
* Acquire a fresh in-memory gateway token from the running local gateway.
|
|
422
|
-
* Gateway tokens are intentionally not durable. The runtime metadata file
|
|
423
|
-
* contains only the base URL and PID; every caller reacquires its own bearer.
|
|
424
|
-
*/
|
|
425
|
-
export async function acquireLlmMeshSessionEnv(dir, clientSessionId) {
|
|
426
|
-
try {
|
|
427
|
-
let baseUrl;
|
|
428
|
-
let pid;
|
|
429
|
-
try {
|
|
430
|
-
const raw = readFileSync(llmMeshTokenPath(dir), "utf8");
|
|
431
|
-
const tokenFile = JSON.parse(raw);
|
|
432
|
-
baseUrl = tokenFile.baseUrl;
|
|
433
|
-
pid = tokenFile.pid;
|
|
434
|
-
}
|
|
435
|
-
catch {
|
|
436
|
-
baseUrl = configuredGatewayBaseUrl(dir) ?? undefined;
|
|
437
|
-
pid = readGatewayPid(dir) ?? undefined;
|
|
438
|
-
}
|
|
439
|
-
if (!baseUrl || !pid)
|
|
440
|
-
return null;
|
|
441
|
-
try {
|
|
442
|
-
process.kill(pid, 0);
|
|
443
|
-
}
|
|
444
|
-
catch {
|
|
445
|
-
return null;
|
|
446
|
-
}
|
|
447
|
-
const workspaceId = dir ?? process.cwd();
|
|
448
|
-
const sessionResp = await fetch(`${baseUrl}/v1/session`, {
|
|
449
|
-
method: "POST",
|
|
450
|
-
headers: { "content-type": "application/json" },
|
|
451
|
-
body: JSON.stringify({
|
|
452
|
-
sessionId: gatewayClientSessionId(clientSessionId),
|
|
453
|
-
clientSessionId,
|
|
454
|
-
workspaceId,
|
|
455
|
-
}),
|
|
456
|
-
});
|
|
457
|
-
if (!sessionResp.ok)
|
|
458
|
-
return null;
|
|
459
|
-
const session = (await sessionResp.json());
|
|
460
|
-
if (!session.gatewayToken)
|
|
461
|
-
return null;
|
|
462
|
-
return {
|
|
463
|
-
ANTHROPIC_BASE_URL: baseUrl,
|
|
464
|
-
ANTHROPIC_AUTH_TOKEN: session.gatewayToken,
|
|
465
|
-
};
|
|
466
|
-
}
|
|
467
|
-
catch {
|
|
468
|
-
return null;
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
/** Stop the running gateway. */
|
|
472
|
-
export function stopGateway(dir) {
|
|
473
|
-
const pid = readGatewayPid(dir);
|
|
474
|
-
if (!pid)
|
|
475
|
-
return { stopped: false };
|
|
476
|
-
try {
|
|
477
|
-
process.kill(pid, "SIGTERM");
|
|
478
|
-
}
|
|
479
|
-
catch {
|
|
480
|
-
// already dead
|
|
481
|
-
}
|
|
482
|
-
try {
|
|
483
|
-
unlinkSync(llmMeshPidPath(dir));
|
|
484
|
-
}
|
|
485
|
-
catch {
|
|
486
|
-
// best-effort cleanup
|
|
487
|
-
}
|
|
488
|
-
return { stopped: true, pid };
|
|
489
|
-
}
|
|
490
|
-
//# sourceMappingURL=llm-mesh.js.map
|
package/dist/llm-mesh.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-mesh.js","sourceRoot":"","sources":["../src/llm-mesh.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-routing-config.d.ts","sourceRoot":"","sources":["../src/llm-routing-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,2BAA2B,EAI3B,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC;AAED,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,yBAAyB,CAAC;AAE3E,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAQtE;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,oBAAoB,GAC3B,oBAAoB,CAiBtB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,oBAAoB,GAAG,SAAS,GACvC,2BAA2B,GAAG,SAAS,CAKzC;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,oBAAoB,CAYtB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,QAAQ,EAAE,eAAe,GAAG,aAAa,GACxC,oBAAoB,CAQtB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,GAAG,SAAS,GACvC,WAAW,CAEb;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,oBAAoB,GAAG,SAAS,GACvC,uBAAuB,CAEzB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAW7E;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,oBAAoB,GAAG,SAAS,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-routing-config.js","sourceRoot":"","sources":["../src/llm-routing-config.ts"],"names":[],"mappings":"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"}
|