@sentropic/h2a-runtime 0.91.1 → 0.93.0

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.
Files changed (108) hide show
  1. package/dist/config.d.ts +2 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +16 -3
  4. package/dist/config.js.map +1 -1
  5. package/dist/conv-guard.d.ts +6 -1
  6. package/dist/conv-guard.d.ts.map +1 -1
  7. package/dist/conv-guard.js +33 -8
  8. package/dist/conv-guard.js.map +1 -1
  9. package/dist/enroll.d.ts.map +1 -1
  10. package/dist/enroll.js +12 -2
  11. package/dist/enroll.js.map +1 -1
  12. package/dist/index.d.ts +3 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +819 -155
  15. package/dist/index.js.map +1 -1
  16. package/dist/launch-layout.d.ts +74 -0
  17. package/dist/launch-layout.d.ts.map +1 -0
  18. package/dist/launch-layout.js +324 -0
  19. package/dist/launch-layout.js.map +1 -0
  20. package/dist/llm-gateway-runtime/index.d.ts +6 -0
  21. package/dist/llm-gateway-runtime/index.d.ts.map +1 -1
  22. package/dist/llm-gateway-runtime/index.js +134 -60
  23. package/dist/llm-gateway-runtime/index.js.map +1 -1
  24. package/dist/llm-gateway-runtime/session-ledger.d.ts +38 -55
  25. package/dist/llm-gateway-runtime/session-ledger.d.ts.map +1 -1
  26. package/dist/llm-gateway-runtime/session-ledger.js +102 -250
  27. package/dist/llm-gateway-runtime/session-ledger.js.map +1 -1
  28. package/dist/llm-gateway-runtime/sticky.d.ts +25 -52
  29. package/dist/llm-gateway-runtime/sticky.d.ts.map +1 -1
  30. package/dist/llm-gateway-runtime/sticky.js +36 -605
  31. package/dist/llm-gateway-runtime/sticky.js.map +1 -1
  32. package/dist/llm-mesh.d.ts +19 -72
  33. package/dist/llm-mesh.d.ts.map +1 -1
  34. package/dist/llm-mesh.js +42 -399
  35. package/dist/llm-mesh.js.map +1 -1
  36. package/dist/llm-routing-config.d.ts +28 -0
  37. package/dist/llm-routing-config.d.ts.map +1 -0
  38. package/dist/llm-routing-config.js +100 -0
  39. package/dist/llm-routing-config.js.map +1 -0
  40. package/dist/native-host.d.ts +146 -0
  41. package/dist/native-host.d.ts.map +1 -0
  42. package/dist/native-host.js +456 -0
  43. package/dist/native-host.js.map +1 -0
  44. package/dist/native-terminal/host.d.ts +317 -1
  45. package/dist/native-terminal/host.d.ts.map +1 -1
  46. package/dist/native-terminal/host.js +696 -3
  47. package/dist/native-terminal/host.js.map +1 -1
  48. package/dist/native-terminal/op.d.ts +5 -0
  49. package/dist/native-terminal/op.d.ts.map +1 -0
  50. package/dist/native-terminal/op.js +408 -0
  51. package/dist/native-terminal/op.js.map +1 -0
  52. package/dist/native-terminal/process.d.ts +2 -0
  53. package/dist/native-terminal/process.d.ts.map +1 -1
  54. package/dist/native-terminal/process.js +16 -2
  55. package/dist/native-terminal/process.js.map +1 -1
  56. package/dist/native-terminal/server.d.ts.map +1 -1
  57. package/dist/native-terminal/server.js +6 -2
  58. package/dist/native-terminal/server.js.map +1 -1
  59. package/dist/native-terminal/socket-path.d.ts +8 -0
  60. package/dist/native-terminal/socket-path.d.ts.map +1 -1
  61. package/dist/native-terminal/socket-path.js +31 -1
  62. package/dist/native-terminal/socket-path.js.map +1 -1
  63. package/dist/native-terminal/supervisor.d.ts +13 -0
  64. package/dist/native-terminal/supervisor.d.ts.map +1 -1
  65. package/dist/native-terminal/supervisor.js +45 -0
  66. package/dist/native-terminal/supervisor.js.map +1 -1
  67. package/dist/pty.d.ts +23 -0
  68. package/dist/pty.d.ts.map +1 -1
  69. package/dist/pty.js +35 -0
  70. package/dist/pty.js.map +1 -1
  71. package/dist/readiness.d.ts +7 -0
  72. package/dist/readiness.d.ts.map +1 -1
  73. package/dist/readiness.js +12 -9
  74. package/dist/readiness.js.map +1 -1
  75. package/dist/registry.d.ts +324 -2
  76. package/dist/registry.d.ts.map +1 -1
  77. package/dist/registry.js +659 -20
  78. package/dist/registry.js.map +1 -1
  79. package/dist/restore.d.ts +91 -32
  80. package/dist/restore.d.ts.map +1 -1
  81. package/dist/restore.js +226 -186
  82. package/dist/restore.js.map +1 -1
  83. package/dist/status-projection.d.ts.map +1 -1
  84. package/dist/tmux.d.ts +9 -6
  85. package/dist/tmux.d.ts.map +1 -1
  86. package/dist/tmux.js +34 -8
  87. package/dist/tmux.js.map +1 -1
  88. package/package.json +3 -3
  89. package/dist/llm-gateway-runtime/accounts.d.ts +0 -62
  90. package/dist/llm-gateway-runtime/accounts.d.ts.map +0 -1
  91. package/dist/llm-gateway-runtime/accounts.js +0 -323
  92. package/dist/llm-gateway-runtime/accounts.js.map +0 -1
  93. package/dist/llm-gateway-runtime/model-catalog.d.ts +0 -44
  94. package/dist/llm-gateway-runtime/model-catalog.d.ts.map +0 -1
  95. package/dist/llm-gateway-runtime/model-catalog.js +0 -191
  96. package/dist/llm-gateway-runtime/model-catalog.js.map +0 -1
  97. package/dist/llm-gateway-runtime/proxy-anthropic.d.ts +0 -3
  98. package/dist/llm-gateway-runtime/proxy-anthropic.d.ts.map +0 -1
  99. package/dist/llm-gateway-runtime/proxy-anthropic.js +0 -318
  100. package/dist/llm-gateway-runtime/proxy-anthropic.js.map +0 -1
  101. package/dist/llm-gateway-runtime/proxy-cloud-code.d.ts +0 -11
  102. package/dist/llm-gateway-runtime/proxy-cloud-code.d.ts.map +0 -1
  103. package/dist/llm-gateway-runtime/proxy-cloud-code.js +0 -215
  104. package/dist/llm-gateway-runtime/proxy-cloud-code.js.map +0 -1
  105. package/dist/llm-gateway-runtime/proxy-openai.d.ts +0 -118
  106. package/dist/llm-gateway-runtime/proxy-openai.d.ts.map +0 -1
  107. package/dist/llm-gateway-runtime/proxy-openai.js +0 -1305
  108. package/dist/llm-gateway-runtime/proxy-openai.js.map +0 -1
@@ -1,215 +0,0 @@
1
- import { createLlmMeshFacade } from "@sentropic/llm-mesh/facade";
2
- function facadeConfigResolver() {
3
- return {
4
- async resolveConfig(configRef) {
5
- const raw = process.env.H2A_LLM_MESH_CONFIG_JSON;
6
- if (!raw)
7
- return {};
8
- const parsed = JSON.parse(raw);
9
- const scoped = parsed[configRef];
10
- return scoped && typeof scoped === "object" && !Array.isArray(scoped)
11
- ? scoped
12
- : parsed;
13
- },
14
- };
15
- }
16
- let facade;
17
- /** The gateway keeps the opaque mesh facade, never a provider credential. */
18
- export function getCloudCodeFacade() {
19
- facade ??= createLlmMeshFacade({
20
- configResolver: facadeConfigResolver(),
21
- mode: "cli",
22
- });
23
- return facade;
24
- }
25
- function textParts(content) {
26
- if (typeof content === "string")
27
- return [{ text: content }];
28
- if (!Array.isArray(content))
29
- return [];
30
- return content.flatMap((part) => {
31
- if (typeof part === "object" &&
32
- part !== null &&
33
- part.type === "text" &&
34
- typeof part.text === "string") {
35
- return [{ text: part.text }];
36
- }
37
- return [];
38
- });
39
- }
40
- function toProviderRequest(body) {
41
- const contents = [];
42
- if (typeof body.system === "string") {
43
- contents.push({ role: "user", parts: [{ text: body.system }] });
44
- }
45
- else if (Array.isArray(body.system)) {
46
- const parts = textParts(body.system);
47
- if (parts.length > 0)
48
- contents.push({ role: "user", parts });
49
- }
50
- if (Array.isArray(body.messages)) {
51
- for (const message of body.messages) {
52
- const parts = textParts(message.content);
53
- if (parts.length > 0) {
54
- contents.push({
55
- role: message.role === "assistant" ? "model" : "user",
56
- parts,
57
- });
58
- }
59
- }
60
- }
61
- const generationConfig = {
62
- ...(typeof body.max_tokens === "number"
63
- ? { maxOutputTokens: body.max_tokens }
64
- : {}),
65
- ...(typeof body.temperature === "number" ? { temperature: body.temperature } : {}),
66
- ...(typeof body.top_p === "number" ? { topP: body.top_p } : {}),
67
- };
68
- return {
69
- modelId: typeof body.model === "string" ? body.model : "",
70
- contents,
71
- ...(Object.keys(generationConfig).length > 0 ? { generationConfig } : {}),
72
- };
73
- }
74
- function sse(event, value) {
75
- return new TextEncoder().encode(`event: ${event}\ndata: ${JSON.stringify(value)}\n\n`);
76
- }
77
- function cloudCodeError(message) {
78
- return { type: "error", error: { type: "api_error", message } };
79
- }
80
- /**
81
- * Execute a Cloud Code request through the mesh facade. `execute()` owns every
82
- * non-abort outcome; an aborted client request releases only its reservation.
83
- */
84
- export async function handleMessagesViaCloudCode(c, session, requestBody, llmMesh = getCloudCodeFacade()) {
85
- const rawBody = requestBody ?? (await c.req.raw.arrayBuffer());
86
- let body;
87
- try {
88
- body = JSON.parse(new TextDecoder().decode(rawBody));
89
- }
90
- catch {
91
- return c.json(cloudCodeError("invalid JSON"), 400);
92
- }
93
- if (!session.transportConstraints || typeof body.model !== "string") {
94
- return c.json(cloudCodeError("Cloud Code session or model is missing"), 400);
95
- }
96
- const acquisition = await llmMesh.acquire({
97
- ...session.transportConstraints.accountConstraints,
98
- transportProviderId: "cloud-code",
99
- modelId: body.model,
100
- affinityKey: session.sessionId,
101
- });
102
- let released = false;
103
- const release = async () => {
104
- if (released)
105
- return;
106
- released = true;
107
- await llmMesh.release(acquisition);
108
- };
109
- const request = toProviderRequest(body);
110
- if (!body.stream) {
111
- try {
112
- let content = "";
113
- let usage = {};
114
- for await (const event of llmMesh
115
- .getAdapter("cloud-code")
116
- .execute(acquisition, request, c.req.raw.signal)) {
117
- if (c.req.raw.signal.aborted) {
118
- await release();
119
- return new Response(null, { status: 499 });
120
- }
121
- if (event.kind === "content")
122
- content += event.delta;
123
- if (event.kind === "done")
124
- usage = event.usage;
125
- if (event.kind === "error")
126
- return c.json(cloudCodeError(event.message), 502);
127
- }
128
- return c.json({
129
- type: "message",
130
- role: "assistant",
131
- content: [{ type: "text", text: content }],
132
- model: body.model,
133
- stop_reason: "end_turn",
134
- stop_sequence: null,
135
- usage,
136
- });
137
- }
138
- catch (error) {
139
- if (c.req.raw.signal.aborted) {
140
- await release();
141
- return new Response(null, { status: 499 });
142
- }
143
- return c.json(cloudCodeError(error instanceof Error ? error.message : String(error)), 502);
144
- }
145
- }
146
- const stream = new ReadableStream({
147
- start(controller) {
148
- void (async () => {
149
- const onAbort = () => void release();
150
- c.req.raw.signal.addEventListener("abort", onAbort, { once: true });
151
- try {
152
- controller.enqueue(sse("message_start", {
153
- type: "message_start",
154
- message: { id: `msg_${Date.now().toString(36)}`, type: "message", role: "assistant", content: [], model: body.model },
155
- }));
156
- controller.enqueue(sse("content_block_start", {
157
- type: "content_block_start",
158
- index: 0,
159
- content_block: { type: "text", text: "" },
160
- }));
161
- for await (const event of llmMesh
162
- .getAdapter("cloud-code")
163
- .execute(acquisition, request, c.req.raw.signal)) {
164
- if (c.req.raw.signal.aborted) {
165
- await release();
166
- controller.close();
167
- return;
168
- }
169
- if (event.kind === "content") {
170
- controller.enqueue(sse("content_block_delta", {
171
- type: "content_block_delta",
172
- index: 0,
173
- delta: { type: "text_delta", text: event.delta },
174
- }));
175
- }
176
- else if (event.kind === "done") {
177
- controller.enqueue(sse("content_block_stop", { type: "content_block_stop", index: 0 }));
178
- controller.enqueue(sse("message_delta", {
179
- type: "message_delta",
180
- delta: { stop_reason: "end_turn", stop_sequence: null },
181
- usage: event.usage,
182
- }));
183
- controller.enqueue(sse("message_stop", { type: "message_stop" }));
184
- }
185
- else {
186
- controller.enqueue(sse("error", cloudCodeError(event.message)));
187
- }
188
- }
189
- controller.close();
190
- }
191
- catch (error) {
192
- if (c.req.raw.signal.aborted)
193
- await release();
194
- else
195
- controller.enqueue(sse("error", cloudCodeError(error instanceof Error ? error.message : String(error))));
196
- controller.close();
197
- }
198
- finally {
199
- c.req.raw.signal.removeEventListener("abort", onAbort);
200
- }
201
- })();
202
- },
203
- cancel() {
204
- return release();
205
- },
206
- });
207
- return new Response(stream, {
208
- status: 200,
209
- headers: {
210
- "content-type": "text/event-stream; charset=utf-8",
211
- "cache-control": "no-cache",
212
- },
213
- });
214
- }
215
- //# sourceMappingURL=proxy-cloud-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy-cloud-code.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/proxy-cloud-code.ts"],"names":[],"mappings":"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"}
@@ -1,118 +0,0 @@
1
- /**
2
- * Anthropic Messages API → OpenAI Chat Completions proxy.
3
- *
4
- * Activated when the account's provider is "openai" or "codex". Translates
5
- * requests and responses between the two formats so Claude Code (which speaks
6
- * Anthropic) can transparently use OpenAI/Codex models.
7
- *
8
- * Model routing comes from @sentropic/llm-gateway's canonical descriptions,
9
- * with OPENAI_MODEL_MAP retained only as an explicit operator override.
10
- *
11
- * Thinking budget_tokens → reasoning effort:
12
- * ≥ 50 000 (xhigh) → "xhigh"
13
- * ≥ 25 000 (high) → "high"
14
- * ≥ 8 000 (med) → "medium"
15
- * < 8 000 / none → "low"
16
- */
17
- import type { Context } from "hono";
18
- import { type GatewayUpstreamTransport } from "./accounts.js";
19
- export declare function mapModel(anthropicModel: string): string;
20
- /**
21
- * Anthropic thinking budget_tokens → OpenAI reasoning_effort.
22
- * Covers all 4 Claude effort tiers:
23
- * xhigh (≥ 50 k) → "xhigh" (pass-through; upstream rejection stays explicit)
24
- * high (≥ 25 k) → "high"
25
- * med (≥ 8 k) → "medium"
26
- * low (< 8 k) → "low"
27
- */
28
- export declare function budgetToEffort(budgetTokens: number): "xhigh" | "high" | "medium" | "low";
29
- type AntTextBlock = {
30
- type: "text";
31
- text: string;
32
- };
33
- type AntToolUseBlock = {
34
- type: "tool_use";
35
- id: string;
36
- name: string;
37
- input: unknown;
38
- };
39
- type AntToolResultBlock = {
40
- type: "tool_result";
41
- tool_use_id: string;
42
- content: string | AntContentBlock[];
43
- };
44
- type AntThinkingBlock = {
45
- type: "thinking";
46
- thinking: string;
47
- signature?: string;
48
- };
49
- type AntContentBlock = AntTextBlock | AntToolUseBlock | AntToolResultBlock | AntThinkingBlock | {
50
- type: string;
51
- };
52
- type AntMessage = {
53
- role: "user" | "assistant";
54
- content: string | AntContentBlock[];
55
- };
56
- type AntTool = {
57
- name: string;
58
- description?: string;
59
- input_schema: Record<string, unknown>;
60
- };
61
- type AntRequest = {
62
- model: string;
63
- messages: AntMessage[];
64
- system?: string | AntContentBlock[];
65
- max_tokens: number;
66
- tools?: AntTool[];
67
- stream?: boolean;
68
- thinking?: {
69
- type: "enabled";
70
- budget_tokens: number;
71
- } | {
72
- type: "disabled";
73
- };
74
- };
75
- type OAIToolCall = {
76
- id: string;
77
- type: "function";
78
- function: {
79
- name: string;
80
- arguments: string;
81
- };
82
- };
83
- export declare function toCodexRequest(body: AntRequest, canonicalEffort?: string): Record<string, unknown>;
84
- export declare function trimCodexBodyForContext(body: AntRequest, maxChars?: number): {
85
- body: AntRequest;
86
- trimmed: boolean;
87
- beforeChars: number;
88
- afterChars: number;
89
- };
90
- export declare function toOpenAIRequest(body: AntRequest, canonicalEffort?: string): Record<string, unknown>;
91
- type OAIResponse = {
92
- id: string;
93
- choices: Array<{
94
- message?: {
95
- role?: string;
96
- content?: string | null;
97
- tool_calls?: OAIToolCall[];
98
- };
99
- finish_reason?: string | null;
100
- }>;
101
- usage?: {
102
- prompt_tokens?: number;
103
- completion_tokens?: number;
104
- };
105
- };
106
- export declare function toAnthropicResponse(openai: OAIResponse, originalModel: string): Record<string, unknown>;
107
- export declare function translateOpenAIStreamToAnthropic(openaiStream: ReadableStream<Uint8Array>, originalModel: string, messageId: string, estimatedInputTokens: number): ReadableStream<Uint8Array>;
108
- export declare function translateCodexStreamToAnthropic(codexStream: ReadableStream<Uint8Array>, originalModel: string, messageId: string, estimatedInputTokens: number): ReadableStream<Uint8Array>;
109
- export declare function codexStreamToAnthropicResponse(codexStream: ReadableStream<Uint8Array>, originalModel: string, messageId: string, estimatedInputTokens: number): Promise<Record<string, unknown>>;
110
- export declare function handleMessagesViaOpenAI(c: Context, session: {
111
- token: string;
112
- gatewayToken?: string;
113
- accountId?: string;
114
- sessionId?: string;
115
- requiredTransport?: GatewayUpstreamTransport;
116
- }, requestBody?: ArrayBuffer): Promise<Response>;
117
- export {};
118
- //# sourceMappingURL=proxy-openai.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy-openai.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/proxy-openai.ts"],"names":[],"mappings":"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"}