@sentropic/h2a-runtime 0.98.6 → 0.98.7-rc.10
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.map +1 -1
- package/dist/agent-launch-args.js +5 -5
- package/dist/agent-launch-args.js.map +1 -1
- package/dist/agy-claude.d.ts +42 -0
- package/dist/agy-claude.d.ts.map +1 -0
- package/dist/agy-claude.js +148 -0
- package/dist/agy-claude.js.map +1 -0
- package/dist/agy-headless.d.ts +11 -0
- package/dist/agy-headless.d.ts.map +1 -0
- package/dist/agy-headless.js +104 -0
- package/dist/agy-headless.js.map +1 -0
- package/dist/attach.d.ts +5 -0
- package/dist/attach.d.ts.map +1 -1
- package/dist/attach.js +75 -6
- package/dist/attach.js.map +1 -1
- package/dist/auth-login.d.ts +24 -1
- package/dist/auth-login.d.ts.map +1 -1
- package/dist/auth-login.js +132 -4
- package/dist/auth-login.js.map +1 -1
- package/dist/central-mcp.d.ts +34 -0
- package/dist/central-mcp.d.ts.map +1 -1
- package/dist/central-mcp.js +275 -71
- package/dist/central-mcp.js.map +1 -1
- package/dist/claude-code-cli-isolation.d.ts +53 -0
- package/dist/claude-code-cli-isolation.d.ts.map +1 -0
- package/dist/claude-code-cli-isolation.js +277 -0
- package/dist/claude-code-cli-isolation.js.map +1 -0
- package/dist/claude-code-cli-lifecycle.d.ts +80 -0
- package/dist/claude-code-cli-lifecycle.d.ts.map +1 -0
- package/dist/claude-code-cli-lifecycle.js +402 -0
- package/dist/claude-code-cli-lifecycle.js.map +1 -0
- package/dist/claude-code-cli-runner.d.ts +89 -0
- package/dist/claude-code-cli-runner.d.ts.map +1 -0
- package/dist/claude-code-cli-runner.js +659 -0
- package/dist/claude-code-cli-runner.js.map +1 -0
- package/dist/claude-seat-input.d.ts +47 -0
- package/dist/claude-seat-input.d.ts.map +1 -0
- package/dist/claude-seat-input.js +272 -0
- package/dist/claude-seat-input.js.map +1 -0
- package/dist/claude-seat-mesh-contract.d.ts +88 -0
- package/dist/claude-seat-mesh-contract.d.ts.map +1 -0
- package/dist/claude-seat-mesh-contract.js +13 -0
- package/dist/claude-seat-mesh-contract.js.map +1 -0
- package/dist/cli-help-groups.js +1 -1
- package/dist/cli-help-groups.js.map +1 -1
- package/dist/cli-seat-codecs.d.ts +86 -0
- package/dist/cli-seat-codecs.d.ts.map +1 -0
- package/dist/cli-seat-codecs.js +255 -0
- package/dist/cli-seat-codecs.js.map +1 -0
- package/dist/cli-seat-fixtures.d.ts +86 -0
- package/dist/cli-seat-fixtures.d.ts.map +1 -0
- package/dist/cli-seat-fixtures.js +114 -0
- package/dist/cli-seat-fixtures.js.map +1 -0
- package/dist/cli-seat-materialization.d.ts +245 -0
- package/dist/cli-seat-materialization.d.ts.map +1 -0
- package/dist/cli-seat-materialization.js +646 -0
- package/dist/cli-seat-materialization.js.map +1 -0
- package/dist/conv-guard.d.ts.map +1 -1
- package/dist/conv-guard.js +6 -2
- package/dist/conv-guard.js.map +1 -1
- package/dist/crash-log.d.ts +112 -0
- package/dist/crash-log.d.ts.map +1 -0
- package/dist/crash-log.js +560 -0
- package/dist/crash-log.js.map +1 -0
- package/dist/delegate.d.ts +10 -0
- package/dist/delegate.d.ts.map +1 -1
- package/dist/delegate.js +29 -0
- package/dist/delegate.js.map +1 -1
- package/dist/file-lock.d.ts +4 -2
- package/dist/file-lock.d.ts.map +1 -1
- package/dist/file-lock.js +24 -10
- package/dist/file-lock.js.map +1 -1
- package/dist/gateway-host/claude-seat-client.d.ts +32 -0
- package/dist/gateway-host/claude-seat-client.d.ts.map +1 -0
- package/dist/gateway-host/claude-seat-client.js +38 -0
- package/dist/gateway-host/claude-seat-client.js.map +1 -0
- package/dist/gateway-host/config-file.d.ts +2 -0
- package/dist/gateway-host/config-file.d.ts.map +1 -1
- package/dist/gateway-host/config-file.js +5 -1
- package/dist/gateway-host/config-file.js.map +1 -1
- package/dist/gateway-host/daemon.d.ts.map +1 -1
- package/dist/gateway-host/daemon.js +1 -2
- package/dist/gateway-host/daemon.js.map +1 -1
- package/dist/gateway-host/host.d.ts +6 -0
- package/dist/gateway-host/host.d.ts.map +1 -1
- package/dist/gateway-host/host.js +24 -3
- package/dist/gateway-host/host.js.map +1 -1
- package/dist/gateway-host/live-auth.d.ts +62 -0
- package/dist/gateway-host/live-auth.d.ts.map +1 -0
- package/dist/gateway-host/live-auth.js +87 -0
- package/dist/gateway-host/live-auth.js.map +1 -0
- package/dist/gateway-host/live-declarations.d.ts +58 -0
- package/dist/gateway-host/live-declarations.d.ts.map +1 -0
- package/dist/gateway-host/live-declarations.js +429 -0
- package/dist/gateway-host/live-declarations.js.map +1 -0
- package/dist/gateway-host/live-disclosure.d.ts +124 -0
- package/dist/gateway-host/live-disclosure.d.ts.map +1 -0
- package/dist/gateway-host/live-disclosure.js +347 -0
- package/dist/gateway-host/live-disclosure.js.map +1 -0
- package/dist/gateway-host/live-github.d.ts +11 -0
- package/dist/gateway-host/live-github.d.ts.map +1 -0
- package/dist/gateway-host/live-github.js +374 -0
- package/dist/gateway-host/live-github.js.map +1 -0
- package/dist/gateway-host/live-host.d.ts +20 -0
- package/dist/gateway-host/live-host.d.ts.map +1 -0
- package/dist/gateway-host/live-host.js +14 -0
- package/dist/gateway-host/live-host.js.map +1 -0
- package/dist/gateway-host/live-object-store.d.ts +35 -0
- package/dist/gateway-host/live-object-store.d.ts.map +1 -0
- package/dist/gateway-host/live-object-store.js +447 -0
- package/dist/gateway-host/live-object-store.js.map +1 -0
- package/dist/gateway-host/live-registration.d.ts +162 -0
- package/dist/gateway-host/live-registration.d.ts.map +1 -0
- package/dist/gateway-host/live-registration.js +455 -0
- package/dist/gateway-host/live-registration.js.map +1 -0
- package/dist/gateway-model-catalog/model-catalog.d.ts +38 -0
- package/dist/gateway-model-catalog/model-catalog.d.ts.map +1 -0
- package/dist/gateway-model-catalog/model-catalog.js +167 -0
- package/dist/gateway-model-catalog/model-catalog.js.map +1 -0
- package/dist/identity-cull/cull.js +1 -1
- package/dist/identity-cull/cull.js.map +1 -1
- package/dist/identity-cull/identity-fence.d.ts +48 -0
- package/dist/identity-cull/identity-fence.d.ts.map +1 -0
- package/dist/identity-cull/identity-fence.js +221 -0
- package/dist/identity-cull/identity-fence.js.map +1 -0
- package/dist/identity-operator-break.d.ts +43 -0
- package/dist/identity-operator-break.d.ts.map +1 -0
- package/dist/identity-operator-break.js +85 -0
- package/dist/identity-operator-break.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +525 -132
- package/dist/index.js.map +1 -1
- package/dist/launch-layout.d.ts.map +1 -1
- package/dist/launch-layout.js +10 -2
- package/dist/launch-layout.js.map +1 -1
- package/dist/llm-mesh-accounts.d.ts +128 -6
- package/dist/llm-mesh-accounts.d.ts.map +1 -1
- package/dist/llm-mesh-accounts.js +370 -14
- package/dist/llm-mesh-accounts.js.map +1 -1
- package/dist/native-host.d.ts +25 -1
- package/dist/native-host.d.ts.map +1 -1
- package/dist/native-host.js +211 -28
- package/dist/native-host.js.map +1 -1
- package/dist/native-restart.d.ts +2 -0
- package/dist/native-restart.d.ts.map +1 -1
- package/dist/native-restart.js +7 -0
- package/dist/native-restart.js.map +1 -1
- package/dist/native-terminal/fleet.d.ts +11 -0
- package/dist/native-terminal/fleet.d.ts.map +1 -1
- package/dist/native-terminal/fleet.js +58 -1
- package/dist/native-terminal/fleet.js.map +1 -1
- package/dist/native-terminal/host-scope.d.ts +18 -0
- package/dist/native-terminal/host-scope.d.ts.map +1 -0
- package/dist/native-terminal/host-scope.js +65 -0
- package/dist/native-terminal/host-scope.js.map +1 -0
- package/dist/native-terminal/host.d.ts +7 -1
- package/dist/native-terminal/host.d.ts.map +1 -1
- package/dist/native-terminal/host.js +10 -26
- package/dist/native-terminal/host.js.map +1 -1
- package/dist/native-terminal/journal.d.ts +5 -0
- package/dist/native-terminal/journal.d.ts.map +1 -1
- package/dist/native-terminal/journal.js +28 -16
- package/dist/native-terminal/journal.js.map +1 -1
- package/dist/native-terminal/op.d.ts +49 -1
- package/dist/native-terminal/op.d.ts.map +1 -1
- package/dist/native-terminal/op.js +254 -38
- 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 +10 -1
- package/dist/native-terminal/process.js.map +1 -1
- package/dist/native-terminal/screen.d.ts.map +1 -1
- package/dist/native-terminal/screen.js +1 -1
- package/dist/native-terminal/screen.js.map +1 -1
- package/dist/native-terminal/server.d.ts +12 -2
- package/dist/native-terminal/server.d.ts.map +1 -1
- package/dist/native-terminal/server.js +143 -42
- package/dist/native-terminal/server.js.map +1 -1
- package/dist/native-terminal/session-scope.d.ts +2 -0
- package/dist/native-terminal/session-scope.d.ts.map +1 -0
- package/dist/native-terminal/session-scope.js +32 -0
- package/dist/native-terminal/session-scope.js.map +1 -0
- package/dist/proc-identity.d.ts +31 -0
- package/dist/proc-identity.d.ts.map +1 -1
- package/dist/proc-identity.js +54 -0
- package/dist/proc-identity.js.map +1 -1
- package/dist/prompt-delivery.d.ts +3 -0
- package/dist/prompt-delivery.d.ts.map +1 -1
- package/dist/prompt-delivery.js +8 -3
- package/dist/prompt-delivery.js.map +1 -1
- package/dist/protocol-local.d.ts +16 -0
- package/dist/protocol-local.d.ts.map +1 -1
- package/dist/protocol-local.js +14 -0
- package/dist/protocol-local.js.map +1 -1
- package/dist/registry.d.ts +16 -12
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +39 -5
- package/dist/registry.js.map +1 -1
- package/dist/relaunch.d.ts +16 -0
- package/dist/relaunch.d.ts.map +1 -1
- package/dist/relaunch.js +42 -1
- package/dist/relaunch.js.map +1 -1
- package/dist/restore.d.ts +4 -0
- package/dist/restore.d.ts.map +1 -1
- package/dist/restore.js +9 -37
- package/dist/restore.js.map +1 -1
- package/dist/resume-launch-options.d.ts +3 -3
- package/dist/resume-launch-options.d.ts.map +1 -1
- package/dist/resume-launch-options.js +7 -4
- package/dist/resume-launch-options.js.map +1 -1
- package/dist/run.d.ts +2 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +88 -20
- package/dist/run.js.map +1 -1
- package/dist/soft-refresh.d.ts.map +1 -1
- package/dist/soft-refresh.js +6 -0
- package/dist/soft-refresh.js.map +1 -1
- package/dist/terminal-reset.d.ts +104 -0
- package/dist/terminal-reset.d.ts.map +1 -0
- package/dist/terminal-reset.js +229 -0
- package/dist/terminal-reset.js.map +1 -0
- package/dist/tmux.d.ts +54 -8
- package/dist/tmux.d.ts.map +1 -1
- package/dist/tmux.js +143 -36
- package/dist/tmux.js.map +1 -1
- package/dist/vendor/engram-live/contracts.d.ts +825 -0
- package/dist/vendor/engram-live/contracts.js +1734 -0
- package/dist/vendor/engram-live/integration.d.ts +113 -0
- package/dist/vendor/engram-live/integration.js +254 -0
- package/dist/vendor/engram-live/pr-sync.d.ts +144 -0
- package/dist/vendor/engram-live/pr-sync.js +411 -0
- package/dist/vendor/engram-live/registration.d.ts +138 -0
- package/dist/vendor/engram-live/registration.js +358 -0
- package/dist/vendor/engram-live/retention.d.ts +56 -0
- package/dist/vendor/engram-live/retention.js +179 -0
- package/package.json +6 -6
|
@@ -1,7 +1,32 @@
|
|
|
1
1
|
/** Account enrollment and public CLI presentation through cluster-mesh. */
|
|
2
|
-
import {
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
3
|
import { spawn } from "node:child_process";
|
|
4
|
+
import { readFile } from "node:fs/promises";
|
|
5
|
+
import { join } from "node:path";
|
|
4
6
|
import { createLlmMeshFacade } from "@sentropic/cluster-mesh/llm-mesh/facade";
|
|
7
|
+
import { readPrivateSeatFile, resolveSeatEnrollmentProvider } from "./cli-seat-codecs.js";
|
|
8
|
+
import { SeatMaterializationError, validateSeatBundleForMaterialization } from "./cli-seat-materialization.js";
|
|
9
|
+
import { SEAT_BUNDLE_MAX_BYTES, SEAT_PACKAGE_PROVIDER_ID } from "./cli-seat-fixtures.js";
|
|
10
|
+
import { llmMeshOwnerScopeRef } from "./gateway-host/config-file.js";
|
|
11
|
+
export { llmMeshOwnerScopeRef };
|
|
12
|
+
import { MAX_CLAUDE_INPUT_BYTES, readMaskedInput, readPipedCredentialInput, ClaudeSeatInputError, } from "./claude-seat-input.js";
|
|
13
|
+
export function validateClaudeConfigJson() {
|
|
14
|
+
const raw = process.env.H2A_LLM_MESH_CONFIG_JSON;
|
|
15
|
+
if (raw === undefined || raw === "")
|
|
16
|
+
return;
|
|
17
|
+
try {
|
|
18
|
+
const parsed = JSON.parse(raw);
|
|
19
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
20
|
+
throw new Error("Invalid H2A_LLM_MESH_CONFIG_JSON: configuration must be a JSON object");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (error instanceof Error && error.message.startsWith("Invalid H2A_LLM_MESH_CONFIG_JSON")) {
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
throw new Error("Invalid H2A_LLM_MESH_CONFIG_JSON: configuration must be valid JSON");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
5
30
|
function facadeConfigResolver() {
|
|
6
31
|
return {
|
|
7
32
|
async resolveConfig(configRef) {
|
|
@@ -15,12 +40,55 @@ function facadeConfigResolver() {
|
|
|
15
40
|
? scoped
|
|
16
41
|
: parsed;
|
|
17
42
|
}
|
|
18
|
-
catch {
|
|
43
|
+
catch (error) {
|
|
44
|
+
if (configRef === "claude-code") {
|
|
45
|
+
throw new Error("Invalid H2A_LLM_MESH_CONFIG_JSON: configuration must be valid JSON");
|
|
46
|
+
}
|
|
19
47
|
return {};
|
|
20
48
|
}
|
|
21
49
|
},
|
|
22
50
|
};
|
|
23
51
|
}
|
|
52
|
+
export function sanitizeClaudeEnrollmentError(error) {
|
|
53
|
+
if (error instanceof ClaudeSeatInputError) {
|
|
54
|
+
return new Error(error.message);
|
|
55
|
+
}
|
|
56
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
57
|
+
const allowedPrefixes = [
|
|
58
|
+
"Claude enrollment requires facade.completeClaudeEnrollment",
|
|
59
|
+
"Claude credential import requires facade.completeClaudeCredentialImport",
|
|
60
|
+
"Claude enrollment did not return an authorization URL",
|
|
61
|
+
"Claude enrollment cancelled",
|
|
62
|
+
"Claude credential entry timed out",
|
|
63
|
+
"Claude credential entry received EOF",
|
|
64
|
+
"Claude credential entry received empty input",
|
|
65
|
+
"Claude credential input exceeded maximum allowed size",
|
|
66
|
+
"Claude token entry timed out",
|
|
67
|
+
"Claude token entry received EOF",
|
|
68
|
+
"Claude token entry received empty input",
|
|
69
|
+
"Claude token entry input stream error",
|
|
70
|
+
"Claude token input exceeded maximum allowed size",
|
|
71
|
+
"Claude CLI store not found",
|
|
72
|
+
"Claude CLI store unreadable",
|
|
73
|
+
"Claude CLI store holds no renewable credential",
|
|
74
|
+
"trusted local terminal required for Claude credential entry",
|
|
75
|
+
"trusted local input required for Claude token entry",
|
|
76
|
+
"piped input required for Claude token entry",
|
|
77
|
+
"ownerScope is required and cannot be blank",
|
|
78
|
+
"Invalid H2A_LLM_MESH_CONFIG_JSON",
|
|
79
|
+
"--cli and --token cannot be combined",
|
|
80
|
+
"--from cannot be combined with --cli",
|
|
81
|
+
];
|
|
82
|
+
for (const prefix of allowedPrefixes) {
|
|
83
|
+
if (message.startsWith(prefix)) {
|
|
84
|
+
return new Error(message);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Strictly static beyond the allowlisted prefixes: dynamic mesh/storage
|
|
88
|
+
// text may carry token fragments or JSON, and no redactor can prove it
|
|
89
|
+
// does not. Public errors are allowlisted or the generic failure.
|
|
90
|
+
return new Error("Claude enrollment failed");
|
|
91
|
+
}
|
|
24
92
|
export function createCliLlmMeshFacade() {
|
|
25
93
|
return createLlmMeshFacade({
|
|
26
94
|
configResolver: facadeConfigResolver(),
|
|
@@ -28,11 +96,14 @@ export function createCliLlmMeshFacade() {
|
|
|
28
96
|
legacyAccountOwnerScopeRef: llmMeshOwnerScopeRef(),
|
|
29
97
|
});
|
|
30
98
|
}
|
|
31
|
-
/** Stable local owner used both at enrollment and by gateway-authenticated routing. */
|
|
32
|
-
export function llmMeshOwnerScopeRef() {
|
|
33
|
-
return process.env.H2A_LLM_MESH_OWNER_SCOPE?.trim() || `cli:${hostname()}`;
|
|
34
|
-
}
|
|
35
99
|
function openEnrollmentBrowser(url) {
|
|
100
|
+
// Owner opt-out: skip the argv exposure entirely (the URL is visible in
|
|
101
|
+
// /proc/*/cmdline while the opener runs); print the URL directly to the
|
|
102
|
+
// terminal so the user can complete authorization manually without argv exposure.
|
|
103
|
+
if (process.env.H2A_NO_BROWSER === "1") {
|
|
104
|
+
process.stdout.write(`[h2a] llm-mesh: browser launch skipped (H2A_NO_BROWSER=1). Open this URL to authorize:\n${url}\n`);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
36
107
|
const command = process.platform === "darwin"
|
|
37
108
|
? "open"
|
|
38
109
|
: process.platform === "win32"
|
|
@@ -41,13 +112,166 @@ function openEnrollmentBrowser(url) {
|
|
|
41
112
|
const args = process.platform === "win32" ? ["/c", "start", "", url] : [url];
|
|
42
113
|
try {
|
|
43
114
|
const child = spawn(command, args, { detached: true, stdio: "ignore" });
|
|
115
|
+
// A missing opener reports asynchronously: without this listener Node
|
|
116
|
+
// crashes printing spawnargs, which carry the full authorization URL.
|
|
117
|
+
child.on("error", () => { });
|
|
44
118
|
child.unref();
|
|
45
119
|
}
|
|
46
120
|
catch {
|
|
47
|
-
//
|
|
121
|
+
// Manual flow continues; failures here never carry the URL.
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const ENROLLMENT_MODES = ["oauth", "cli", "token"];
|
|
125
|
+
/**
|
|
126
|
+
* Resolve the effective enrollment source from the canonical `--from`
|
|
127
|
+
* selector and the legacy `--cli` / `--token` booleans. Static errors
|
|
128
|
+
* only; nothing secret-adjacent is echoed.
|
|
129
|
+
*/
|
|
130
|
+
export function resolveEnrollmentMode(options) {
|
|
131
|
+
const legacy = [
|
|
132
|
+
...(options.cliImport ? ["cli"] : []),
|
|
133
|
+
...(options.tokenImport ? ["token"] : []),
|
|
134
|
+
];
|
|
135
|
+
if (options.from !== undefined && legacy.length > 0) {
|
|
136
|
+
throw new Error("--from cannot be combined with --cli or --token");
|
|
137
|
+
}
|
|
138
|
+
if (legacy.length > 1) {
|
|
139
|
+
throw new Error("--cli and --token cannot be combined");
|
|
140
|
+
}
|
|
141
|
+
const mode = options.from ?? legacy[0] ?? "oauth";
|
|
142
|
+
if (!ENROLLMENT_MODES.includes(mode)) {
|
|
143
|
+
throw new Error("--from must be one of oauth, cli, token");
|
|
144
|
+
}
|
|
145
|
+
return mode;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Read the official Claude CLI store credential for `--from cli`.
|
|
149
|
+
* Returns the raw store document for the credential-import leg (the mesh
|
|
150
|
+
* accepts the store shape: `{claudeAiOauth: {...}}` or the inner renewable
|
|
151
|
+
* grant with access + refresh tokens). Only the static store PATH ever
|
|
152
|
+
* appears in errors — file content never does.
|
|
153
|
+
*
|
|
154
|
+
* Platform scope: only the Linux file path below is read. Where the
|
|
155
|
+
* official CLI keeps credentials outside that file (for example the
|
|
156
|
+
* macOS keychain, unverified here), `--from cli` fails closed with
|
|
157
|
+
* "store not found" — re-authenticate the official CLI or enroll with
|
|
158
|
+
* OAuth instead.
|
|
159
|
+
*/
|
|
160
|
+
export async function readClaudeCliStoreCredential(homeDir) {
|
|
161
|
+
const storePath = join(homeDir ?? homedir(), ".claude", ".credentials.json");
|
|
162
|
+
let raw;
|
|
163
|
+
try {
|
|
164
|
+
raw = await readFile(storePath, "utf8");
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
if (err?.code === "ENOENT") {
|
|
168
|
+
throw new Error(`Claude CLI store not found at ${storePath} (run the official Claude CLI login first, or enroll with OAuth)`);
|
|
169
|
+
}
|
|
170
|
+
throw new Error(`Claude CLI store unreadable at ${storePath} (check permissions on the official CLI store)`);
|
|
171
|
+
}
|
|
172
|
+
if (Buffer.byteLength(raw, "utf8") > MAX_CLAUDE_INPUT_BYTES) {
|
|
173
|
+
throw new Error(`Claude token input exceeded maximum allowed size (${Math.round(MAX_CLAUDE_INPUT_BYTES / 1024)} KiB)`);
|
|
174
|
+
}
|
|
175
|
+
const trimmed = raw.trim();
|
|
176
|
+
let grant;
|
|
177
|
+
try {
|
|
178
|
+
const parsed = trimmed ? JSON.parse(trimmed) : undefined;
|
|
179
|
+
grant =
|
|
180
|
+
parsed && typeof parsed === "object"
|
|
181
|
+
? (parsed.claudeAiOauth ?? parsed)
|
|
182
|
+
: undefined;
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
grant = undefined;
|
|
48
186
|
}
|
|
187
|
+
const renewable = grant !== null &&
|
|
188
|
+
typeof grant === "object" &&
|
|
189
|
+
typeof grant.accessToken === "string" &&
|
|
190
|
+
typeof grant.refreshToken === "string";
|
|
191
|
+
if (!renewable) {
|
|
192
|
+
throw new Error("Claude CLI store holds no renewable credential (reauthenticate the official CLI, or enroll with OAuth)");
|
|
193
|
+
}
|
|
194
|
+
return trimmed;
|
|
49
195
|
}
|
|
50
196
|
/**
|
|
197
|
+
* Default token-mode reader: masked TTY prompt for an interactive owner,
|
|
198
|
+
* piped stdin for secret-manager output redirected into the command.
|
|
199
|
+
* No secret-bearing argv; nothing is logged.
|
|
200
|
+
*/
|
|
201
|
+
function defaultTokenReader(prompt, _options) {
|
|
202
|
+
if (process.stdin.isTTY) {
|
|
203
|
+
return readMaskedInput(prompt, { multiline: true });
|
|
204
|
+
}
|
|
205
|
+
return readPipedCredentialInput();
|
|
206
|
+
}
|
|
207
|
+
/** Shared-seat consumer path. Product OAuth/legacy import APIs stay separate. */
|
|
208
|
+
export async function enrollSeatConsumerViaFacade(rawProvider, options) {
|
|
209
|
+
const provider = resolveSeatEnrollmentProvider(rawProvider);
|
|
210
|
+
const ownerScope = (options.ownerScope ?? llmMeshOwnerScopeRef()).trim();
|
|
211
|
+
if (!ownerScope)
|
|
212
|
+
throw new SeatMaterializationError("verified seat owner required", "owner-mismatch");
|
|
213
|
+
if (options.from !== "cli" && options.from !== "token")
|
|
214
|
+
throw new SeatMaterializationError("seat source must be cli or token", "unknown-source-mode");
|
|
215
|
+
let facade;
|
|
216
|
+
try {
|
|
217
|
+
facade = options.facade ?? createCliLlmMeshFacade();
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
throw new SeatMaterializationError("L1 seat receiver unavailable", "seat-import-unavailable");
|
|
221
|
+
}
|
|
222
|
+
if (typeof facade.importSeatBundle !== "function")
|
|
223
|
+
throw new SeatMaterializationError("L1 seat consumer import unavailable; requires importSeatBundle", "seat-import-unavailable");
|
|
224
|
+
let parsers;
|
|
225
|
+
try {
|
|
226
|
+
parsers = options.parsers ?? await import("@sentropic/cluster-mesh/llm-mesh/enrollment");
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
throw new SeatMaterializationError("L1 seat source parser unavailable", "seat-import-unavailable");
|
|
230
|
+
}
|
|
231
|
+
if (typeof parsers[options.from === "cli" ? "parseCliSeatProfile" : "parseTokenSeatEnvelope"] !== "function")
|
|
232
|
+
throw new SeatMaterializationError("L1 seat source parser unavailable", "seat-import-unavailable");
|
|
233
|
+
let bundle;
|
|
234
|
+
try {
|
|
235
|
+
if (options.from === "cli") {
|
|
236
|
+
if (!options.seatProfile)
|
|
237
|
+
throw new Error("missing selected profile");
|
|
238
|
+
const profile = JSON.parse(readPrivateSeatFile(options.seatProfile, SEAT_BUNDLE_MAX_BYTES));
|
|
239
|
+
if (!profile || typeof profile !== "object" || profile.ownerScope !== ownerScope)
|
|
240
|
+
throw new Error("profile owner mismatch");
|
|
241
|
+
// This is the private parser-only profile/manifest specified by L1,
|
|
242
|
+
// including for CLIs whose native access-only profile is unavailable.
|
|
243
|
+
bundle = parsers.parseCliSeatProfile(profile);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
const readInput = options.readInput ?? (process.stdin.isTTY
|
|
247
|
+
? () => readMaskedInput("[h2a] llm-mesh: paste consumer SeatBundle JSON: ", { multiline: true, maxBytes: SEAT_BUNDLE_MAX_BYTES })
|
|
248
|
+
: () => readPipedCredentialInput({ maxBytes: SEAT_BUNDLE_MAX_BYTES }));
|
|
249
|
+
const raw = await readInput("[h2a] llm-mesh: read consumer SeatBundle JSON: ", { multiline: true });
|
|
250
|
+
if (Buffer.byteLength(raw, "utf8") > SEAT_BUNDLE_MAX_BYTES)
|
|
251
|
+
throw new Error("oversize envelope");
|
|
252
|
+
bundle = parsers.parseTokenSeatEnvelope({ raw, ownerScope });
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
throw new SeatMaterializationError("seat consumer input refused", "seat-input-refused");
|
|
257
|
+
}
|
|
258
|
+
const validation = validateSeatBundleForMaterialization(bundle, { ownerScope, trustedAuthority: "consumer" });
|
|
259
|
+
if (!validation.ok)
|
|
260
|
+
throw new SeatMaterializationError("seat consumer projection refused", validation.code);
|
|
261
|
+
const projection = bundle;
|
|
262
|
+
if (SEAT_PACKAGE_PROVIDER_ID[projection.identity.cli] !== provider || projection.authority !== "consumer" || !["access-only", "static-key"].includes(projection.credentialClass) || !projection.lifecycle.providerExpiry || !["access", "static-key"].includes(projection.meshUse.kind) || !projection.meshUse.accessRef?.trim())
|
|
263
|
+
throw new SeatMaterializationError("seat consumer projection unavailable", "seat-projection-unavailable");
|
|
264
|
+
try {
|
|
265
|
+
const result = await facade.importSeatBundle({ bundle, ownerScope });
|
|
266
|
+
return { accountId: result.accountId, provider, label: `Seat ${projection.identity.cli}` };
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
throw new SeatMaterializationError("seat consumer import failed", "seat-import-failed");
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Legacy product enrollment API. Shared-seat CLI commands use
|
|
274
|
+
* enrollSeatConsumerViaFacade instead, including the --cli/--token aliases.
|
|
51
275
|
* Enroll through the sentropic-owned OAuth state machine. H2A never receives
|
|
52
276
|
* an authorization code or a provider token. Account records remain owned by
|
|
53
277
|
* the facade/keyring and are not copied into h2a config.
|
|
@@ -56,15 +280,147 @@ function openEnrollmentBrowser(url) {
|
|
|
56
280
|
* native Meta OAuth device flow by default; passing cliImport selects the
|
|
57
281
|
* Muse CLI-store import instead. "muse-code" is no longer a user entry — it
|
|
58
282
|
* survives only as the mesh-side provider id for the device flow.
|
|
283
|
+
*
|
|
284
|
+
* Import semantics (owner decision 2026-10-13): `--from cli` imports from
|
|
285
|
+
* the provider's official CLI store; `--from token` imports a serialized
|
|
286
|
+
* credential from a secret manager (claude-code only — other seats record
|
|
287
|
+
* the gap, they are not changed here).
|
|
288
|
+
*
|
|
289
|
+
* Lifecycle note (differs from muse, mesh 0.25.0): muse lets the mesh
|
|
290
|
+
* read its CLI store at enroll AND at each refresh, so the official CLI
|
|
291
|
+
* stays the sole writer. The mesh ships no such store leg for Claude, so
|
|
292
|
+
* h2a reads the official store once into the mesh credential-import leg:
|
|
293
|
+
* a point-in-time COPY. The mesh never writes the official store file —
|
|
294
|
+
* the official CLI stays its sole writer — but the mesh copy refreshes
|
|
295
|
+
* independently through the token endpoint afterwards. If the provider
|
|
296
|
+
* rotates the refresh grant, the side that refreshes second loses it:
|
|
297
|
+
* re-run `--from cli` (re-authenticate the official CLI first when its
|
|
298
|
+
* own copy lapsed). A mesh-side Claude store leg (mesh re-reads the
|
|
299
|
+
* official file at each refresh, never writes it) is a recorded
|
|
300
|
+
* follow-up, not built here.
|
|
59
301
|
*/
|
|
60
|
-
export async function enrollViaFacade(
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
302
|
+
export async function enrollViaFacade(rawProvider, options = {}) {
|
|
303
|
+
const provider = resolveSeatEnrollmentProvider(rawProvider);
|
|
304
|
+
const rawOwner = options.ownerScope ?? llmMeshOwnerScopeRef();
|
|
305
|
+
const ownerScope = rawOwner.trim();
|
|
306
|
+
if (!ownerScope) {
|
|
307
|
+
throw new Error("ownerScope is required and cannot be blank");
|
|
308
|
+
}
|
|
309
|
+
const mode = resolveEnrollmentMode(options);
|
|
310
|
+
if (mode === "cli" && provider !== "muse" && provider !== "claude-code") {
|
|
311
|
+
throw new SeatMaterializationError(`provider "${provider}" has no CLI-store import; --cli/--from cli is only valid for providers with a local CLI import (muse, claude-code)`, "seat-import-unavailable");
|
|
312
|
+
}
|
|
313
|
+
if (mode === "token" && provider !== "claude-code") {
|
|
314
|
+
throw new SeatMaterializationError(`--token/--from token is only valid for claude-code`, "seat-import-unavailable");
|
|
65
315
|
}
|
|
316
|
+
if (provider === "claude-code") {
|
|
317
|
+
validateClaudeConfigJson();
|
|
318
|
+
const facade = options.facade ?? createCliLlmMeshFacade();
|
|
319
|
+
if (mode === "token") {
|
|
320
|
+
if (typeof facade.completeClaudeCredentialImport !== "function") {
|
|
321
|
+
throw new Error("Claude credential import requires facade.completeClaudeCredentialImport — upgrade @sentropic/cluster-mesh/llm-mesh " +
|
|
322
|
+
"to a version with Claude support");
|
|
323
|
+
}
|
|
324
|
+
const readInput = options.readInput ?? defaultTokenReader;
|
|
325
|
+
let credentialJson;
|
|
326
|
+
try {
|
|
327
|
+
credentialJson = await readInput("[h2a] llm-mesh: paste renewable credential JSON (or pipe secret-manager output): ", { multiline: true });
|
|
328
|
+
}
|
|
329
|
+
catch (err) {
|
|
330
|
+
throw sanitizeClaudeEnrollmentError(err);
|
|
331
|
+
}
|
|
332
|
+
try {
|
|
333
|
+
const completed = await facade.completeClaudeCredentialImport(credentialJson, ownerScope);
|
|
334
|
+
return {
|
|
335
|
+
accountId: completed.accountId,
|
|
336
|
+
provider: "claude-code",
|
|
337
|
+
label: completed.label,
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
catch (err) {
|
|
341
|
+
throw sanitizeClaudeEnrollmentError(err);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
if (mode === "cli") {
|
|
345
|
+
if (typeof facade.completeClaudeCredentialImport !== "function") {
|
|
346
|
+
throw new Error("Claude credential import requires facade.completeClaudeCredentialImport — upgrade @sentropic/cluster-mesh/llm-mesh " +
|
|
347
|
+
"to a version with Claude support");
|
|
348
|
+
}
|
|
349
|
+
let credentialJson;
|
|
350
|
+
try {
|
|
351
|
+
credentialJson = await readClaudeCliStoreCredential(options.cliStoreHome);
|
|
352
|
+
}
|
|
353
|
+
catch (err) {
|
|
354
|
+
throw sanitizeClaudeEnrollmentError(err);
|
|
355
|
+
}
|
|
356
|
+
try {
|
|
357
|
+
const completed = await facade.completeClaudeCredentialImport(credentialJson, ownerScope);
|
|
358
|
+
return {
|
|
359
|
+
accountId: completed.accountId,
|
|
360
|
+
provider: "claude-code",
|
|
361
|
+
label: completed.label,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
catch (err) {
|
|
365
|
+
throw sanitizeClaudeEnrollmentError(err);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
if (typeof facade.completeClaudeEnrollment !== "function") {
|
|
369
|
+
throw new Error("Claude enrollment requires facade.completeClaudeEnrollment — upgrade @sentropic/cluster-mesh/llm-mesh " +
|
|
370
|
+
"to a version with Claude support");
|
|
371
|
+
}
|
|
372
|
+
const configRef = options.configRef ?? process.env.H2A_LLM_MESH_CONFIG_REF ?? "claude-code";
|
|
373
|
+
const redirectUri = options.redirectUri !== undefined ? options.redirectUri : "";
|
|
374
|
+
let session;
|
|
375
|
+
try {
|
|
376
|
+
session = await facade.enroll("claude-code", {
|
|
377
|
+
configRef,
|
|
378
|
+
mode: "cli",
|
|
379
|
+
redirectUri,
|
|
380
|
+
ownerScope,
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
catch (err) {
|
|
384
|
+
throw sanitizeClaudeEnrollmentError(err);
|
|
385
|
+
}
|
|
386
|
+
if (!session || session.kind !== "authorization-url" || typeof session.url !== "string") {
|
|
387
|
+
throw new Error("Claude enrollment did not return an authorization URL");
|
|
388
|
+
}
|
|
389
|
+
if (process.env.H2A_NO_BROWSER !== "1") {
|
|
390
|
+
process.stdout.write(`[h2a] llm-mesh: opening Claude authorization in your browser; authorize and paste the returned code\n`);
|
|
391
|
+
}
|
|
392
|
+
try {
|
|
393
|
+
(options.openBrowser ?? openEnrollmentBrowser)(session.url);
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
// safe fallback
|
|
397
|
+
}
|
|
398
|
+
const readInput = options.readInput ?? ((prompt) => readMaskedInput(prompt, { multiline: false }));
|
|
399
|
+
let returnedCode;
|
|
400
|
+
try {
|
|
401
|
+
returnedCode = await readInput("[h2a] llm-mesh: paste the authorization code (<code-and-state>): ", { multiline: false });
|
|
402
|
+
}
|
|
403
|
+
catch (inputErr) {
|
|
404
|
+
await facade.cancel?.(session.enrollmentId).catch(() => { });
|
|
405
|
+
throw sanitizeClaudeEnrollmentError(inputErr);
|
|
406
|
+
}
|
|
407
|
+
try {
|
|
408
|
+
const completed = await facade.completeClaudeEnrollment(session.enrollmentId, returnedCode, ownerScope);
|
|
409
|
+
return {
|
|
410
|
+
accountId: completed.accountId,
|
|
411
|
+
provider: "claude-code",
|
|
412
|
+
label: completed.label,
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
catch (completionErr) {
|
|
416
|
+
await facade.cancel?.(session.enrollmentId).catch(() => { });
|
|
417
|
+
throw sanitizeClaudeEnrollmentError(completionErr);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
const facade = options.facade ?? createCliLlmMeshFacade();
|
|
66
421
|
// The facade knows the device flow under its historical mesh-side id.
|
|
67
|
-
const
|
|
422
|
+
const museCli = provider === "muse" && mode === "cli";
|
|
423
|
+
const facadeProvider = provider === "muse" && !museCli ? "muse-code" : provider;
|
|
68
424
|
// The installed @sentropic/cluster-mesh/llm-mesh types predate the muse provider, but
|
|
69
425
|
// enroll passes the id through opaquely — a muse-capable facade resolves
|
|
70
426
|
// it, an older one fails with its own unknown-provider error. Cast is
|
|
@@ -75,7 +431,7 @@ export async function enrollViaFacade(provider, options = {}) {
|
|
|
75
431
|
redirectUri: options.redirectUri ?? "http://127.0.0.1",
|
|
76
432
|
ownerScope,
|
|
77
433
|
});
|
|
78
|
-
if (
|
|
434
|
+
if (museCli) {
|
|
79
435
|
// Muse CLI-store import (BR75): no browser or device round-trip — the
|
|
80
436
|
// owner act was the muse login itself. The ownerScope binds the enrolling
|
|
81
437
|
// owner explicitly (never inferred); it doubles as the completion code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-mesh-accounts.js","sourceRoot":"","sources":["../src/llm-mesh-accounts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm-mesh-accounts.js","sourceRoot":"","sources":["../src/llm-mesh-accounts.ts"],"names":[],"mappings":"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"}
|
package/dist/native-host.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type MaterializedSeat } from "./cli-seat-materialization.js";
|
|
1
2
|
import { type PromptDeliveryDeps } from "./prompt-delivery.js";
|
|
2
3
|
import { type SessionClass } from "./session-class.js";
|
|
3
4
|
export type SessionHostKind = "native" | "local-tmux";
|
|
@@ -142,6 +143,9 @@ export type NativeStateProbe = {
|
|
|
142
143
|
readonly sockets?: readonly string[];
|
|
143
144
|
};
|
|
144
145
|
export declare function nativeSessionState(name: string, socketPath?: string): NativeStateProbe;
|
|
146
|
+
/** The run action is already async. Avoid another Node bootstrap for its
|
|
147
|
+
* name probe while preserving exactly the one-shot probe's identity checks. */
|
|
148
|
+
export declare function nativeSessionStateAsync(name: string, ensureHost?: boolean): Promise<NativeStateProbe>;
|
|
145
149
|
/**
|
|
146
150
|
* 3-state liveness (F2): `true` / `false` are POSITIVE verdicts; "unknown"
|
|
147
151
|
* is a probe failure that destructive paths must refuse on. Never throws.
|
|
@@ -156,6 +160,7 @@ export type NativeLaunchMetadata = {
|
|
|
156
160
|
readonly sessionClass?: SessionClass;
|
|
157
161
|
readonly terminateOnAgentExit?: boolean;
|
|
158
162
|
readonly refuseExisting?: boolean;
|
|
163
|
+
readonly seat?: MaterializedSeat;
|
|
159
164
|
};
|
|
160
165
|
/**
|
|
161
166
|
* startLocalSession twin. Runs the SAME bash wrapper contract as the tmux
|
|
@@ -163,6 +168,24 @@ export type NativeLaunchMetadata = {
|
|
|
163
168
|
* agent exit semantics are identical across hosts.
|
|
164
169
|
*/
|
|
165
170
|
export declare function startNativeSession(profile: string, command: string, cwd: string, args?: ReadonlyArray<string>, label?: string, metadata?: NativeLaunchMetadata): NativeStartResult;
|
|
171
|
+
export type NativeSingleShotResult = NativeStartResult & {
|
|
172
|
+
readonly socketPath: string;
|
|
173
|
+
readonly generation: string;
|
|
174
|
+
readonly workerPid?: number | undefined;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Single-shot path for `run` (fresh/resume): ONE in-process `launch`
|
|
178
|
+
* invocation shares one async client and one inventory for ensure-host +
|
|
179
|
+
* admit + probe + create, and returns pid/identity so callers skip their
|
|
180
|
+
* re-probes. Admission stays atomic under the host lock: a
|
|
181
|
+
* `native-name-collision` or `native-inventory-unknown` payload throws the
|
|
182
|
+
* same certified refusal as the multi-fork path (no check removed without
|
|
183
|
+
* an atomic equivalent). With `beforeCreate`, one fenced `ensure-host`
|
|
184
|
+
* precedes the launch so the launch-guard ownership (generation +
|
|
185
|
+
* incarnation) is still recorded before creation. That fenced preparation
|
|
186
|
+
* keeps its existing helper; the launch itself stays in-process.
|
|
187
|
+
*/
|
|
188
|
+
export declare function startNativeSessionSingleShot(profile: string, command: string, cwd: string, args?: ReadonlyArray<string>, label?: string, metadata?: NativeLaunchMetadata): Promise<NativeSingleShotResult>;
|
|
166
189
|
/** sendKeysLiteral twin: raw keystrokes, no interpretation. */
|
|
167
190
|
export declare function nativeSendKeysLiteral(name: string, text: string, socketPath?: string): boolean;
|
|
168
191
|
/** paste-buffer -p twin: the text lands as ONE bracketed block. */
|
|
@@ -201,7 +224,7 @@ export declare function killNativeSessionTree(name: string): boolean;
|
|
|
201
224
|
* prompt rides a 0600 file consumed and unlinked by the wrapper — identical
|
|
202
225
|
* contract to the tmux path.
|
|
203
226
|
*/
|
|
204
|
-
export declare function startNativeHeadlessSession(profile: string, command: string, cwd: string, args: ReadonlyArray<string>, resultJson: string, outputLog: string, label: string, promptInput?: string, refuseExisting?: boolean, sessionClass?: SessionClass, onCreateAttempt?: () => void, beforeCreate?: (value: NativeLaunchOwnership) => void): NativeStartResult & {
|
|
227
|
+
export declare function startNativeHeadlessSession(profile: string, command: string, cwd: string, args: ReadonlyArray<string>, resultJson: string, outputLog: string, label: string, promptInput?: string, refuseExisting?: boolean, sessionClass?: SessionClass, onCreateAttempt?: () => void, beforeCreate?: (value: NativeLaunchOwnership) => void, outputFile?: string, seat?: MaterializedSeat): NativeStartResult & {
|
|
205
228
|
promptFile?: string;
|
|
206
229
|
};
|
|
207
230
|
/**
|
|
@@ -213,6 +236,7 @@ export declare function startNativeH2aSidecar(name: string, cwd: string, h2aComm
|
|
|
213
236
|
verified?: boolean;
|
|
214
237
|
beforeCreate?: (value: NativeLaunchOwnership) => void;
|
|
215
238
|
onCreateAttempt?: () => void;
|
|
239
|
+
seat?: MaterializedSeat;
|
|
216
240
|
}): boolean;
|
|
217
241
|
/**
|
|
218
242
|
* Foreground interactive attach on the CURRENT terminal (tmux attach twin).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-host.d.ts","sourceRoot":"","sources":["../src/native-host.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"native-host.d.ts","sourceRoot":"","sources":["../src/native-host.ts"],"names":[],"mappings":"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"}
|