@sentropic/h2a-runtime 0.98.7-rc.2 → 0.98.7-rc.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.
Files changed (41) hide show
  1. package/dist/cli-seat-codecs.d.ts +86 -0
  2. package/dist/cli-seat-codecs.d.ts.map +1 -0
  3. package/dist/cli-seat-codecs.js +255 -0
  4. package/dist/cli-seat-codecs.js.map +1 -0
  5. package/dist/cli-seat-fixtures.d.ts +86 -0
  6. package/dist/cli-seat-fixtures.d.ts.map +1 -0
  7. package/dist/cli-seat-fixtures.js +114 -0
  8. package/dist/cli-seat-fixtures.js.map +1 -0
  9. package/dist/cli-seat-materialization.d.ts +245 -0
  10. package/dist/cli-seat-materialization.d.ts.map +1 -0
  11. package/dist/cli-seat-materialization.js +646 -0
  12. package/dist/cli-seat-materialization.js.map +1 -0
  13. package/dist/gateway-host/live-auth.d.ts +62 -0
  14. package/dist/gateway-host/live-auth.d.ts.map +1 -0
  15. package/dist/gateway-host/live-auth.js +87 -0
  16. package/dist/gateway-host/live-auth.js.map +1 -0
  17. package/dist/gateway-host/live-disclosure.d.ts +124 -0
  18. package/dist/gateway-host/live-disclosure.d.ts.map +1 -0
  19. package/dist/gateway-host/live-disclosure.js +347 -0
  20. package/dist/gateway-host/live-disclosure.js.map +1 -0
  21. package/dist/gateway-host/live-host.d.ts +20 -0
  22. package/dist/gateway-host/live-host.d.ts.map +1 -0
  23. package/dist/gateway-host/live-host.js +14 -0
  24. package/dist/gateway-host/live-host.js.map +1 -0
  25. package/dist/gateway-model-catalog/model-catalog.d.ts +38 -0
  26. package/dist/gateway-model-catalog/model-catalog.d.ts.map +1 -0
  27. package/dist/gateway-model-catalog/model-catalog.js +167 -0
  28. package/dist/gateway-model-catalog/model-catalog.js.map +1 -0
  29. package/dist/index.d.ts +6 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +29 -28
  32. package/dist/index.js.map +1 -1
  33. package/dist/llm-mesh-accounts.d.ts +57 -1
  34. package/dist/llm-mesh-accounts.d.ts.map +1 -1
  35. package/dist/llm-mesh-accounts.js +74 -3
  36. package/dist/llm-mesh-accounts.js.map +1 -1
  37. package/dist/native-host.d.ts +4 -1
  38. package/dist/native-host.d.ts.map +1 -1
  39. package/dist/native-host.js +11 -7
  40. package/dist/native-host.js.map +1 -1
  41. package/package.json +4 -4
@@ -0,0 +1,347 @@
1
+ /** Δ-L7a: host-owned disclosure grants, independent of collection/read access.
2
+ * Evidence comes only from a host port (including cache provenance), never
3
+ * directly from an MCP caller. No content or old snapshot is retained; grants
4
+ * and their issuing proofs live only in memory and never resume after restart.
5
+ */
6
+ import { randomUUID } from "node:crypto";
7
+ import { refuse, } from "./live-auth.js";
8
+ export const DISCLOSURE_SURFACES = ["prompt", "tool", "mcp", "summary", "symbol", "local-commit", "citation", "context"];
9
+ const validPath = (path) => typeof path === "string" && path.length > 0
10
+ && !/[\\\0:*?\[\]{}]/.test(path) && path.split("/").every((p) => p !== "" && p !== "." && p !== "..");
11
+ const validProvider = (v) => typeof v === "string" && /^[a-z0-9][a-z0-9._:/-]{0,199}$/.test(v);
12
+ // Superset of engram e417c33c content-policy.ts L4b-2. Keep every normative
13
+ // secret rule, basename/prefix/suffix/segment, and secret-bearing path bytes.
14
+ const protectedPath = (p) => containsKnownSecret(p) || p.split("/").some((part) => /^\.env/i.test(part) || /^\.ssh$/i.test(part) || /^(id_(rsa|dsa|ecdsa|ed25519)|credentials)(\.|$)/i.test(part)
15
+ || /^(secret|secrets|secrets\.json|service-account\.json)$/i.test(part) || /\.(pem|key|p12|pfx)$/i.test(part));
16
+ // Defence in depth; the current L4b policy remains mandatory. This cannot
17
+ // establish the absence of unknown secrets, nor override withheld provenance.
18
+ const containsKnownSecret = (text) => /-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----|gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|AKIA[A-Z0-9]{16}|sk-[A-Za-z0-9_-]{20,}/.test(text)
19
+ || /(password|passwd|pwd|secret|api[_-]?key)\s*[:=]\s*\S+/i.test(text)
20
+ || /:\/\/[^/\s:]+:[^/\s@]+@/.test(text);
21
+ const copy = (value) => JSON.parse(JSON.stringify(value));
22
+ export function createLiveDisclosureAuthority(options) {
23
+ const readNow = options.now ?? Date.now;
24
+ const now = () => { try {
25
+ return readNow();
26
+ }
27
+ catch {
28
+ return NaN;
29
+ } };
30
+ const grants = new Map();
31
+ const record = (action, grantId, reason, snapshotTime) => {
32
+ try {
33
+ if (!options.audit)
34
+ return false;
35
+ const at = snapshotTime ?? now();
36
+ if (!Number.isSafeInteger(at))
37
+ return false;
38
+ const receipt = options.audit(Object.freeze({ eventId: randomUUID(), at, action,
39
+ ...(grantId === undefined ? {} : { grantId }), ...(reason === undefined ? {} : { reason }) }));
40
+ if (receipt !== undefined) {
41
+ // A void-typed async callback is legal TypeScript but cannot attest a
42
+ // durable synchronous append. Contain its rejection as well.
43
+ if (receipt instanceof Promise)
44
+ void receipt.catch(() => { });
45
+ return false;
46
+ }
47
+ return true;
48
+ }
49
+ catch {
50
+ return false;
51
+ }
52
+ };
53
+ const deny = (reason, requestedId) => record("refuse", requestedId !== undefined && grants.has(requestedId) ? requestedId : undefined, reason)
54
+ ? refuse(reason) : refuse("audit-unavailable");
55
+ const authorize = (capability, operation, repositoryId) => {
56
+ try {
57
+ return options.auth.authorize(capability, operation, repositoryId);
58
+ }
59
+ catch {
60
+ return refuse("authority-unavailable");
61
+ }
62
+ };
63
+ const check = (r) => {
64
+ const auth = authorize(r.capability, "emit", r.repositoryId);
65
+ if (!auth.ok)
66
+ return auth;
67
+ const g = r.grantId === undefined ? undefined : grants.get(r.grantId);
68
+ if (!g)
69
+ return refuse("grant-required");
70
+ const issuer = authorize(g.issuingCapability, "grant", r.repositoryId);
71
+ if (!issuer.ok)
72
+ return issuer;
73
+ if (g.claims.repositoryId !== r.repositoryId || g.claims.principal !== auth.claims.principal
74
+ || g.claims.hostId !== auth.claims.hostId || g.claims.tenant !== auth.claims.tenant
75
+ || g.claims.declarationId !== auth.claims.declarationId || g.claims.declarationRevision !== auth.claims.declarationRevision
76
+ || JSON.stringify(g.claims.authorizedRoots) !== JSON.stringify(auth.claims.authorizedRoots))
77
+ return refuse("scope-mismatch");
78
+ if (g.claims.policyVersion !== auth.claims.policyVersion)
79
+ return refuse("policy-changed");
80
+ if (g.revoked)
81
+ return refuse("grant-revoked");
82
+ const time = now();
83
+ if (!Number.isSafeInteger(time))
84
+ return refuse("authority-unavailable");
85
+ if (time >= g.expiresAt || time < g.startsAt)
86
+ return refuse("grant-expired");
87
+ if (g.providerId !== r.providerId)
88
+ return refuse("provider-mismatch");
89
+ try {
90
+ if (options.readAccess?.(Object.freeze({ principal: auth.claims.principal, repositoryId: r.repositoryId,
91
+ evidenceIds: Object.freeze([...r.evidenceIds]) })) !== true)
92
+ return refuse("read-denied");
93
+ }
94
+ catch {
95
+ return refuse("read-denied");
96
+ }
97
+ const lateIssuer = authorize(g.issuingCapability, "grant", r.repositoryId);
98
+ if (!lateIssuer.ok)
99
+ return lateIssuer;
100
+ const latest = authorize(r.capability, "emit", r.repositoryId);
101
+ if (!latest.ok)
102
+ return latest;
103
+ if (g.revoked)
104
+ return refuse("grant-revoked");
105
+ const finalTime = now();
106
+ if (!Number.isSafeInteger(finalTime))
107
+ return refuse("authority-unavailable");
108
+ if (finalTime >= g.expiresAt || finalTime < g.startsAt)
109
+ return refuse("grant-expired");
110
+ return { ok: true, grant: g, claims: latest.claims, stateRevision: latest.state.stateRevision };
111
+ };
112
+ return {
113
+ grant(input) {
114
+ let r;
115
+ try {
116
+ r = copy(input);
117
+ }
118
+ catch {
119
+ return deny("invalid-request");
120
+ }
121
+ if (!r || !validProvider(r.providerId) || !Number.isSafeInteger(r.expiresAt)
122
+ || !r.scope || !Array.isArray(r.scope.paths) || r.scope.paths.length === 0 || !r.scope.paths.every(validPath)
123
+ || !Array.isArray(r.scope.surfaces) || r.scope.surfaces.length === 0
124
+ || !r.scope.surfaces.every((s) => DISCLOSURE_SURFACES.includes(s)))
125
+ return deny("invalid-request");
126
+ const auth = authorize(r.capability, "grant", r.repositoryId);
127
+ if (!auth.ok)
128
+ return deny(auth.reason);
129
+ const time = now();
130
+ if (!Number.isSafeInteger(time) || r.expiresAt <= time || r.expiresAt > auth.claims.expiresAt)
131
+ return deny("invalid-request");
132
+ const id = randomUUID();
133
+ const g = { issuingCapability: r.capability, claims: copy(auth.claims), providerId: r.providerId,
134
+ startsAt: time, expiresAt: r.expiresAt,
135
+ scope: { paths: Object.freeze([...r.scope.paths]), surfaces: Object.freeze([...r.scope.surfaces]) }, revoked: false };
136
+ grants.set(id, g);
137
+ if (!record("grant", id)) {
138
+ grants.delete(id);
139
+ return refuse("audit-unavailable");
140
+ }
141
+ return Object.freeze({ ok: true, grantId: id, expiresAt: g.expiresAt });
142
+ },
143
+ revoke(capability, id) {
144
+ const auth = authorize(capability, "revoke");
145
+ if (!auth.ok)
146
+ return deny(auth.reason, id);
147
+ const g = grants.get(id);
148
+ if (!g)
149
+ return deny("grant-required");
150
+ if (auth.claims.repositoryId !== g.claims.repositoryId || auth.claims.principal !== g.claims.principal || auth.claims.hostId !== g.claims.hostId
151
+ || auth.claims.tenant !== g.claims.tenant)
152
+ return deny("scope-mismatch", id);
153
+ // Revocation takes effect even if its audit sink has failed.
154
+ g.revoked = true;
155
+ return record("revoke", id) ? Object.freeze({ ok: true }) : refuse("audit-unavailable");
156
+ },
157
+ async emit(input) {
158
+ let r;
159
+ try {
160
+ r = copy(input);
161
+ }
162
+ catch {
163
+ return deny("invalid-request");
164
+ }
165
+ const reject = (reason) => deny(reason, r?.grantId);
166
+ if (!r || !Array.isArray(r.evidenceIds) || r.evidenceIds.length === 0
167
+ || r.evidenceIds.some((id) => typeof id !== "string" || id.length === 0))
168
+ return reject("invalid-request");
169
+ Object.freeze(r.evidenceIds);
170
+ Object.freeze(r);
171
+ const permitted = check(r);
172
+ if (!permitted.ok)
173
+ return reject(permitted.reason);
174
+ let evidence;
175
+ try {
176
+ evidence = copy(await options.loadEvidence(Object.freeze([...r.evidenceIds])));
177
+ }
178
+ catch {
179
+ return reject("evidence-unavailable");
180
+ }
181
+ // Freeze evidence before any policy/transport callback can mutate it.
182
+ try {
183
+ if (!Array.isArray(evidence) || evidence.length === 0)
184
+ return reject("evidence-unavailable");
185
+ for (const e of evidence) {
186
+ if (!e || !r.evidenceIds.includes(e.evidenceId) || typeof e.text !== "string" || typeof e.excluded !== "boolean"
187
+ || !Array.isArray(e.originPaths) || e.originPaths.length === 0 || !e.originPaths.every(validPath))
188
+ return reject("evidence-unavailable");
189
+ Object.freeze(e.originPaths);
190
+ Object.freeze(e);
191
+ }
192
+ if (r.evidenceIds.some(id => !evidence.some(e => e.evidenceId === id)))
193
+ return reject("evidence-unavailable");
194
+ Object.freeze(evidence);
195
+ }
196
+ catch {
197
+ return reject("evidence-unavailable");
198
+ }
199
+ const screen = () => {
200
+ const current = check(r);
201
+ if (!current.ok)
202
+ return current;
203
+ const g = current.grant;
204
+ const policy = options.contentPolicy?.();
205
+ if (!policy || typeof policy.allows !== "function")
206
+ return refuse("policy-unavailable");
207
+ if (policy.version !== g.claims.policyVersion)
208
+ return refuse("policy-changed");
209
+ for (const e of evidence) {
210
+ if (e.repositoryId !== r.repositoryId || e.declarationId !== g.claims.declarationId
211
+ || e.declarationRevision !== g.claims.declarationRevision)
212
+ return refuse("scope-mismatch");
213
+ if (e.policyVersion !== g.claims.policyVersion)
214
+ return refuse("policy-changed");
215
+ if (e.stateRevision !== current.stateRevision)
216
+ return refuse("stale-evidence");
217
+ if (!g.scope.surfaces.includes(e.surface) || e.originPaths.some((p) => !g.scope.paths.includes(p)))
218
+ return refuse("out-of-scope");
219
+ if (e.excluded || e.originPaths.some(protectedPath) || containsKnownSecret(e.text) || policy.allows(e) !== true)
220
+ return refuse("secret-excluded");
221
+ }
222
+ const text = evidence.map((e) => e.text).join("");
223
+ if (containsKnownSecret(text) || policy.allows(Object.freeze({ ...evidence[0], text,
224
+ originPaths: Object.freeze([...new Set(evidence.flatMap(e => e.originPaths))]) })) !== true)
225
+ return refuse("secret-excluded");
226
+ return undefined;
227
+ };
228
+ try {
229
+ const refusal = screen();
230
+ if (refusal)
231
+ return reject(refusal.reason);
232
+ }
233
+ catch {
234
+ return reject("policy-unavailable");
235
+ }
236
+ let transport;
237
+ try {
238
+ transport = options.transport(r.providerId);
239
+ if (!transport || transport.providerId !== r.providerId || typeof transport.send !== "function")
240
+ return reject("provider-mismatch");
241
+ }
242
+ catch {
243
+ return reject("transport-failed");
244
+ }
245
+ // Reordering mutable callbacks cannot make the decision atomic.
246
+ // Require a host snapshot lease; final validation uses data only.
247
+ if (!options.acquireEmissionSnapshot)
248
+ return reject("authority-unavailable");
249
+ let lease;
250
+ try {
251
+ const acquired = options.acquireEmissionSnapshot(Object.freeze({ request: r,
252
+ issuingCapability: permitted.grant.issuingCapability, evidence, transport }));
253
+ if ("ok" in acquired)
254
+ return reject(acquired.reason);
255
+ lease = acquired;
256
+ }
257
+ catch {
258
+ return reject("authority-unavailable");
259
+ }
260
+ let pending;
261
+ let releaseFailed = false;
262
+ try {
263
+ // Resolve accessors before validation, while the host fence is held.
264
+ const send = lease.send.bind(lease);
265
+ const snapshot = copy(lease.snapshot);
266
+ const auth = snapshot.authorization;
267
+ const issuer = snapshot.issuerAuthorization;
268
+ if (!auth.ok)
269
+ return reject(auth.reason);
270
+ if (!issuer.ok)
271
+ return reject(issuer.reason);
272
+ const g = permitted.grant;
273
+ if (auth.claims.id !== permitted.claims.id || issuer.claims.id !== g.claims.id)
274
+ return reject("scope-mismatch");
275
+ // Bind both proofs and their states to this grant. No live authority,
276
+ // read, clock, policy or route callbacks run during this validation.
277
+ for (const verified of [auth, issuer]) {
278
+ for (const key of ["principal", "hostId", "tenant", "repositoryId", "declarationId", "declarationRevision"]) {
279
+ if (verified.claims[key] !== g.claims[key] || verified.state[key] !== g.claims[key])
280
+ return reject("scope-mismatch");
281
+ }
282
+ if (JSON.stringify(verified.claims.authorizedRoots) !== JSON.stringify(g.claims.authorizedRoots)
283
+ || JSON.stringify(verified.state.authorizedRoots) !== JSON.stringify(g.claims.authorizedRoots))
284
+ return reject("scope-mismatch");
285
+ if (verified.claims.policyVersion !== g.claims.policyVersion || verified.state.policyVersion !== g.claims.policyVersion)
286
+ return reject("policy-changed");
287
+ if (snapshot.at < verified.claims.issuedAt || snapshot.at >= verified.claims.expiresAt)
288
+ return reject("capability-expired");
289
+ }
290
+ if (g.revoked)
291
+ return reject("grant-revoked");
292
+ if (!Number.isSafeInteger(snapshot.at))
293
+ return reject("authority-unavailable");
294
+ if (snapshot.at < g.startsAt || snapshot.at >= g.expiresAt)
295
+ return reject("grant-expired");
296
+ if (snapshot.readAllowed !== true)
297
+ return reject("read-denied");
298
+ if (snapshot.providerId !== r.providerId)
299
+ return reject("provider-mismatch");
300
+ if (evidence.some(e => e.stateRevision !== auth.state.stateRevision || e.stateRevision !== issuer.state.stateRevision))
301
+ return reject("stale-evidence");
302
+ const policy = snapshot.policy;
303
+ if (!policy)
304
+ return reject("policy-unavailable");
305
+ if (policy.version !== g.claims.policyVersion)
306
+ return reject("policy-changed");
307
+ if (policy.allowed.length !== evidence.length || policy.allowed.some(allowed => allowed !== true)
308
+ || policy.compositionAllowed !== true)
309
+ return reject("secret-excluded");
310
+ // All route/policy/state checks precede the receipt. The host fence
311
+ // covers audit; a reentrant revocation of our local grant still wins.
312
+ if (!record("emit-attempt", r.grantId, undefined, snapshot.at))
313
+ return refuse("audit-unavailable");
314
+ if (g.revoked)
315
+ return reject("grant-revoked");
316
+ try {
317
+ pending = send(Object.freeze(evidence.map(e => e.text)));
318
+ }
319
+ catch {
320
+ return reject("transport-failed");
321
+ }
322
+ }
323
+ catch {
324
+ return reject("authority-unavailable");
325
+ }
326
+ finally {
327
+ try {
328
+ lease.release();
329
+ }
330
+ catch {
331
+ releaseFailed = true;
332
+ }
333
+ }
334
+ try {
335
+ await pending;
336
+ }
337
+ catch {
338
+ return reject("transport-failed");
339
+ }
340
+ if (releaseFailed)
341
+ return reject("authority-unavailable");
342
+ return Object.freeze({ ok: true });
343
+ },
344
+ policyUnavailable: () => deny("policy-unavailable"),
345
+ };
346
+ }
347
+ //# sourceMappingURL=live-disclosure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-disclosure.js","sourceRoot":"","sources":["../../src/gateway-host/live-disclosure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /** G4 composition deliberately remains closed: the pinned dependencies have no
2
+ * L8 publication policy contract. Wiring a caller-supplied boolean here would
3
+ * manufacture authority. The collector and session gateway stay independent.
4
+ */
5
+ import { type LiveDisclosureOptions } from "./live-disclosure.js";
6
+ export declare function createLiveDisclosureHost(options: LiveDisclosureOptions): Readonly<{
7
+ grant: (request: import("./live-disclosure.js").GrantDisclosureRequest) => import("./live-auth.js").Refused | Readonly<{
8
+ ok: true;
9
+ grantId: string;
10
+ expiresAt: number;
11
+ }>;
12
+ revoke: (capability: unknown, grantId: string) => import("./live-auth.js").Refused | Readonly<{
13
+ ok: true;
14
+ }>;
15
+ emit: (_request: unknown) => Promise<Readonly<{
16
+ ok: false;
17
+ reason: import("./live-auth.js").DisclosureRefusal;
18
+ }>>;
19
+ }>;
20
+ //# sourceMappingURL=live-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-host.d.ts","sourceRoot":"","sources":["../../src/gateway-host/live-host.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAiC,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,qBAAqB;;;;;;;;;qBAK5C,OAAO;;;;GAEjC"}
@@ -0,0 +1,14 @@
1
+ /** G4 composition deliberately remains closed: the pinned dependencies have no
2
+ * L8 publication policy contract. Wiring a caller-supplied boolean here would
3
+ * manufacture authority. The collector and session gateway stay independent.
4
+ */
5
+ import { createLiveDisclosureAuthority } from "./live-disclosure.js";
6
+ export function createLiveDisclosureHost(options) {
7
+ const authority = createLiveDisclosureAuthority(options);
8
+ return Object.freeze({
9
+ grant: authority.grant,
10
+ revoke: authority.revoke,
11
+ emit: async (_request) => authority.policyUnavailable(),
12
+ });
13
+ }
14
+ //# sourceMappingURL=live-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-host.js","sourceRoot":"","sources":["../../src/gateway-host/live-host.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,6BAA6B,EAA8B,MAAM,sBAAsB,CAAC;AAEjG,MAAM,UAAU,wBAAwB,CAAC,OAA8B;IACrE,MAAM,SAAS,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,IAAI,EAAE,KAAK,EAAE,QAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE;KACjE,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * h2a embedded gateway model catalog — H0 mirror of the published #662
3
+ * surface (llm-mesh 0.26.0 / llm-gateway 0.20.0).
4
+ *
5
+ * Canonical routing knowledge stays in llm-mesh; this module only names the
6
+ * model ids `h2a run --model` accepts and normalizes readable aliases to
7
+ * their exact canonical id (identity-only normalization, no cross-model
8
+ * mapping). Unknown names resolve to undefined so the exact-model default
9
+ * never silently maps them.
10
+ */
11
+ export declare const GEMINI_4_ARGON = "gemini-4-argon";
12
+ export declare const GEMINI_3_8_FLASH = "gemini-3.8-flash";
13
+ export declare const MUSE_SPARK_1_3 = "muse-spark-1.3";
14
+ export declare const MUSE_SPARK_1_3_CONTRIBUTOR = "muse-spark-1.3-contributor";
15
+ export declare const MUSE_WONDER_1_0 = "muse-wonder-1.0";
16
+ export declare const MUSE_WONDER_FULL_1_0 = "muse-wonder-full-1.0";
17
+ export declare const GATEWAY_MODEL_IDS: readonly ["gemini-4-argon", "gemini-3.8-flash", "muse-spark-1.3", "muse-spark-1.3-contributor", "muse-wonder-1.0", "muse-wonder-full-1.0"];
18
+ export type GatewayModelId = (typeof GATEWAY_MODEL_IDS)[number];
19
+ /** Readable aliases accepted by `h2a run --model` (spec §6.6). */
20
+ export declare const GATEWAY_MODEL_ALIASES: Readonly<Record<string, GatewayModelId>>;
21
+ export declare function isKnownGatewayModel(value: string): value is GatewayModelId;
22
+ /** Identity-only normalization: alias → canonical id, else undefined. */
23
+ export declare function resolveGatewayModelAlias(value: string): GatewayModelId | undefined;
24
+ /**
25
+ * Claude-family gateway mapping (spec §6.6): requested alias family →
26
+ * cloud slot (Gemini) and Muse slot. Effort is advisory; the mesh validates
27
+ * it against transport capability. Unmentioned legacy families keep llm-mesh's
28
+ * own table and are absent here by design.
29
+ */
30
+ export type ClaudeGatewaySlot = {
31
+ readonly cloud: GatewayModelId;
32
+ readonly cloudEffort: string;
33
+ readonly muse: GatewayModelId;
34
+ readonly museEffort: string;
35
+ };
36
+ export declare const CLAUDE_GATEWAY_MODEL_MAP: Readonly<Record<string, ClaudeGatewaySlot>>;
37
+ export declare function claudeGatewaySlot(family: string): ClaudeGatewaySlot | undefined;
38
+ //# sourceMappingURL=model-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/gateway-model-catalog/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AACvE,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,eAAO,MAAM,iBAAiB,4IAOpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,kEAAkE;AAClE,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAqBxE,CAAC;AAEJ,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAE1E;AAED,yEAAyE;AACzE,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,GACZ,cAAc,GAAG,SAAS,CAK5B;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAC7C,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAwGlC,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,GACb,iBAAiB,GAAG,SAAS,CAK/B"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * h2a embedded gateway model catalog — H0 mirror of the published #662
3
+ * surface (llm-mesh 0.26.0 / llm-gateway 0.20.0).
4
+ *
5
+ * Canonical routing knowledge stays in llm-mesh; this module only names the
6
+ * model ids `h2a run --model` accepts and normalizes readable aliases to
7
+ * their exact canonical id (identity-only normalization, no cross-model
8
+ * mapping). Unknown names resolve to undefined so the exact-model default
9
+ * never silently maps them.
10
+ */
11
+ export const GEMINI_4_ARGON = "gemini-4-argon";
12
+ export const GEMINI_3_8_FLASH = "gemini-3.8-flash";
13
+ export const MUSE_SPARK_1_3 = "muse-spark-1.3";
14
+ export const MUSE_SPARK_1_3_CONTRIBUTOR = "muse-spark-1.3-contributor";
15
+ export const MUSE_WONDER_1_0 = "muse-wonder-1.0";
16
+ export const MUSE_WONDER_FULL_1_0 = "muse-wonder-full-1.0";
17
+ export const GATEWAY_MODEL_IDS = [
18
+ GEMINI_4_ARGON,
19
+ GEMINI_3_8_FLASH,
20
+ MUSE_SPARK_1_3,
21
+ MUSE_SPARK_1_3_CONTRIBUTOR,
22
+ MUSE_WONDER_1_0,
23
+ MUSE_WONDER_FULL_1_0,
24
+ ];
25
+ /** Readable aliases accepted by `h2a run --model` (spec §6.6). */
26
+ export const GATEWAY_MODEL_ALIASES = {
27
+ "gemini-4-argon": GEMINI_4_ARGON,
28
+ "gemini-4-argon-high": GEMINI_4_ARGON,
29
+ "gemini-argon": GEMINI_4_ARGON,
30
+ argon: GEMINI_4_ARGON,
31
+ "argon-high": GEMINI_4_ARGON,
32
+ "gemini-3.8-flash": GEMINI_3_8_FLASH,
33
+ "gemini-3.8-flash-high": GEMINI_3_8_FLASH,
34
+ flash: GEMINI_3_8_FLASH,
35
+ "flash-high": GEMINI_3_8_FLASH,
36
+ "muse-spark-1.3": MUSE_SPARK_1_3,
37
+ "muse-spark-1.3-contributor": MUSE_SPARK_1_3_CONTRIBUTOR,
38
+ "muse-spark": MUSE_SPARK_1_3,
39
+ spark: MUSE_SPARK_1_3,
40
+ "muse-wonder-1.0": MUSE_WONDER_1_0,
41
+ "muse-wonder": MUSE_WONDER_1_0,
42
+ wonder: MUSE_WONDER_1_0,
43
+ "muse-wonder-full-1.0": MUSE_WONDER_FULL_1_0,
44
+ "muse-wonder-full": MUSE_WONDER_FULL_1_0,
45
+ "wonder-full": MUSE_WONDER_FULL_1_0,
46
+ };
47
+ export function isKnownGatewayModel(value) {
48
+ return GATEWAY_MODEL_IDS.includes(value);
49
+ }
50
+ /** Identity-only normalization: alias → canonical id, else undefined. */
51
+ export function resolveGatewayModelAlias(value) {
52
+ const key = value.trim().toLowerCase();
53
+ return Object.hasOwn(GATEWAY_MODEL_ALIASES, key)
54
+ ? GATEWAY_MODEL_ALIASES[key]
55
+ : undefined;
56
+ }
57
+ export const CLAUDE_GATEWAY_MODEL_MAP = {
58
+ "opus-5.5/base": {
59
+ cloud: GEMINI_4_ARGON,
60
+ cloudEffort: "high",
61
+ muse: MUSE_WONDER_1_0,
62
+ museEffort: "high",
63
+ },
64
+ "opus-5.5/medium": {
65
+ cloud: GEMINI_4_ARGON,
66
+ cloudEffort: "high",
67
+ muse: MUSE_WONDER_1_0,
68
+ museEffort: "high",
69
+ },
70
+ "opus-5.5/high": {
71
+ cloud: GEMINI_4_ARGON,
72
+ cloudEffort: "high",
73
+ muse: MUSE_WONDER_1_0,
74
+ museEffort: "xhigh",
75
+ },
76
+ "opus-5.5/xhigh": {
77
+ cloud: GEMINI_4_ARGON,
78
+ cloudEffort: "high",
79
+ muse: MUSE_WONDER_FULL_1_0,
80
+ museEffort: "max",
81
+ },
82
+ "opus-5.5/max": {
83
+ cloud: GEMINI_4_ARGON,
84
+ cloudEffort: "high",
85
+ muse: MUSE_WONDER_FULL_1_0,
86
+ museEffort: "max",
87
+ },
88
+ "opus-5.5/low": {
89
+ cloud: GEMINI_3_8_FLASH,
90
+ cloudEffort: "high",
91
+ muse: MUSE_SPARK_1_3_CONTRIBUTOR,
92
+ museEffort: "medium",
93
+ },
94
+ "sonnet-5.5/high": {
95
+ cloud: GEMINI_4_ARGON,
96
+ cloudEffort: "high",
97
+ muse: MUSE_SPARK_1_3_CONTRIBUTOR,
98
+ museEffort: "xhigh",
99
+ },
100
+ "sonnet-5.5/xhigh": {
101
+ cloud: GEMINI_4_ARGON,
102
+ cloudEffort: "high",
103
+ muse: MUSE_WONDER_1_0,
104
+ museEffort: "max",
105
+ },
106
+ "sonnet-5.5/max": {
107
+ cloud: GEMINI_4_ARGON,
108
+ cloudEffort: "high",
109
+ muse: MUSE_WONDER_FULL_1_0,
110
+ museEffort: "max",
111
+ },
112
+ "sonnet-5.5/medium": {
113
+ cloud: GEMINI_3_8_FLASH,
114
+ cloudEffort: "high",
115
+ muse: MUSE_SPARK_1_3_CONTRIBUTOR,
116
+ museEffort: "high",
117
+ },
118
+ "sonnet-5.5/low": {
119
+ cloud: GEMINI_3_8_FLASH,
120
+ cloudEffort: "medium",
121
+ muse: MUSE_SPARK_1_3_CONTRIBUTOR,
122
+ museEffort: "medium",
123
+ },
124
+ "fable-5.1/base": {
125
+ cloud: GEMINI_4_ARGON,
126
+ cloudEffort: "high",
127
+ muse: MUSE_WONDER_1_0,
128
+ museEffort: "max",
129
+ },
130
+ "fable-5.1/medium": {
131
+ cloud: GEMINI_4_ARGON,
132
+ cloudEffort: "high",
133
+ muse: MUSE_WONDER_1_0,
134
+ museEffort: "high",
135
+ },
136
+ "fable-5.1/high": {
137
+ cloud: GEMINI_4_ARGON,
138
+ cloudEffort: "high",
139
+ muse: MUSE_WONDER_1_0,
140
+ museEffort: "max",
141
+ },
142
+ "fable-5.1/xhigh": {
143
+ cloud: GEMINI_4_ARGON,
144
+ cloudEffort: "high",
145
+ muse: MUSE_WONDER_1_0,
146
+ museEffort: "max",
147
+ },
148
+ "fable-5.1/max": {
149
+ cloud: GEMINI_4_ARGON,
150
+ cloudEffort: "high",
151
+ muse: MUSE_WONDER_1_0,
152
+ museEffort: "max",
153
+ },
154
+ "fable-5.1/low": {
155
+ cloud: GEMINI_4_ARGON,
156
+ cloudEffort: "high",
157
+ muse: MUSE_WONDER_1_0,
158
+ museEffort: "medium",
159
+ },
160
+ };
161
+ export function claudeGatewaySlot(family) {
162
+ const key = family.trim().toLowerCase();
163
+ return Object.hasOwn(CLAUDE_GATEWAY_MODEL_MAP, key)
164
+ ? CLAUDE_GATEWAY_MODEL_MAP[key]
165
+ : undefined;
166
+ }
167
+ //# sourceMappingURL=model-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../src/gateway-model-catalog/model-catalog.ts"],"names":[],"mappings":"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"}