@sentropic/llm-mesh 0.28.0 → 0.29.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.
- package/README.md +110 -0
- package/dist/capabilities.d.ts +3 -0
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/catalog.d.ts +134 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +15 -0
- package/dist/catalog.js.map +1 -1
- package/dist/decision/adapter-result.d.ts +6 -0
- package/dist/decision/adapter-result.d.ts.map +1 -0
- package/dist/decision/adapter-result.js +160 -0
- package/dist/decision/adapter-result.js.map +1 -0
- package/dist/decision/adapter.d.ts +58 -0
- package/dist/decision/adapter.d.ts.map +1 -0
- package/dist/decision/adapter.js +70 -0
- package/dist/decision/adapter.js.map +1 -0
- package/dist/decision/admission.d.ts +23 -0
- package/dist/decision/admission.d.ts.map +1 -0
- package/dist/decision/admission.js +115 -0
- package/dist/decision/admission.js.map +1 -0
- package/dist/decision/budget.d.ts +60 -0
- package/dist/decision/budget.d.ts.map +1 -0
- package/dist/decision/budget.js +2 -0
- package/dist/decision/budget.js.map +1 -0
- package/dist/decision/client.d.ts +23 -0
- package/dist/decision/client.d.ts.map +1 -0
- package/dist/decision/client.js +836 -0
- package/dist/decision/client.js.map +1 -0
- package/dist/decision/criterion.d.ts +5 -0
- package/dist/decision/criterion.d.ts.map +1 -0
- package/dist/decision/criterion.js +54 -0
- package/dist/decision/criterion.js.map +1 -0
- package/dist/decision/deadline.d.ts +8 -0
- package/dist/decision/deadline.d.ts.map +1 -0
- package/dist/decision/deadline.js +56 -0
- package/dist/decision/deadline.js.map +1 -0
- package/dist/decision/descriptor-validation.d.ts +5 -0
- package/dist/decision/descriptor-validation.d.ts.map +1 -0
- package/dist/decision/descriptor-validation.js +99 -0
- package/dist/decision/descriptor-validation.js.map +1 -0
- package/dist/decision/descriptor.d.ts +81 -0
- package/dist/decision/descriptor.d.ts.map +1 -0
- package/dist/decision/descriptor.js +36 -0
- package/dist/decision/descriptor.js.map +1 -0
- package/dist/decision/dispatch.d.ts +11 -0
- package/dist/decision/dispatch.d.ts.map +1 -0
- package/dist/decision/dispatch.js +59 -0
- package/dist/decision/dispatch.js.map +1 -0
- package/dist/decision/errors.d.ts +43 -0
- package/dist/decision/errors.d.ts.map +1 -0
- package/dist/decision/errors.js +47 -0
- package/dist/decision/errors.js.map +1 -0
- package/dist/decision/execution.d.ts +31 -0
- package/dist/decision/execution.d.ts.map +1 -0
- package/dist/decision/execution.js +79 -0
- package/dist/decision/execution.js.map +1 -0
- package/dist/decision/host-options.d.ts +26 -0
- package/dist/decision/host-options.d.ts.map +1 -0
- package/dist/decision/host-options.js +2 -0
- package/dist/decision/host-options.js.map +1 -0
- package/dist/decision/host.d.ts +19 -0
- package/dist/decision/host.d.ts.map +1 -0
- package/dist/decision/host.js +9 -0
- package/dist/decision/host.js.map +1 -0
- package/dist/decision/index.d.ts +12 -0
- package/dist/decision/index.d.ts.map +1 -0
- package/dist/decision/index.js +3 -0
- package/dist/decision/index.js.map +1 -0
- package/dist/decision/jev-codec.d.ts +30 -0
- package/dist/decision/jev-codec.d.ts.map +1 -0
- package/dist/decision/jev-codec.js +51 -0
- package/dist/decision/jev-codec.js.map +1 -0
- package/dist/decision/jev-response.d.ts +7 -0
- package/dist/decision/jev-response.d.ts.map +1 -0
- package/dist/decision/jev-response.js +46 -0
- package/dist/decision/jev-response.js.map +1 -0
- package/dist/decision/jev-verdict.d.ts +14 -0
- package/dist/decision/jev-verdict.d.ts.map +1 -0
- package/dist/decision/jev-verdict.js +76 -0
- package/dist/decision/jev-verdict.js.map +1 -0
- package/dist/decision/openai-adapter.d.ts +46 -0
- package/dist/decision/openai-adapter.d.ts.map +1 -0
- package/dist/decision/openai-adapter.js +66 -0
- package/dist/decision/openai-adapter.js.map +1 -0
- package/dist/decision/openai-codec.d.ts +7 -0
- package/dist/decision/openai-codec.d.ts.map +1 -0
- package/dist/decision/openai-codec.js +60 -0
- package/dist/decision/openai-codec.js.map +1 -0
- package/dist/decision/openai-descriptor.d.ts +7 -0
- package/dist/decision/openai-descriptor.d.ts.map +1 -0
- package/dist/decision/openai-descriptor.js +31 -0
- package/dist/decision/openai-descriptor.js.map +1 -0
- package/dist/decision/openai-request.d.ts +15 -0
- package/dist/decision/openai-request.d.ts.map +1 -0
- package/dist/decision/openai-request.js +33 -0
- package/dist/decision/openai-request.js.map +1 -0
- package/dist/decision/openai-verdict.d.ts +9 -0
- package/dist/decision/openai-verdict.d.ts.map +1 -0
- package/dist/decision/openai-verdict.js +76 -0
- package/dist/decision/openai-verdict.js.map +1 -0
- package/dist/decision/policy.d.ts +11 -0
- package/dist/decision/policy.d.ts.map +1 -0
- package/dist/decision/policy.js +34 -0
- package/dist/decision/policy.js.map +1 -0
- package/dist/decision/pricing.d.ts +40 -0
- package/dist/decision/pricing.d.ts.map +1 -0
- package/dist/decision/pricing.js +65 -0
- package/dist/decision/pricing.js.map +1 -0
- package/dist/decision/raw.d.ts +7 -0
- package/dist/decision/raw.d.ts.map +1 -0
- package/dist/decision/raw.js +53 -0
- package/dist/decision/raw.js.map +1 -0
- package/dist/decision/receipt.d.ts +120 -0
- package/dist/decision/receipt.d.ts.map +1 -0
- package/dist/decision/receipt.js +58 -0
- package/dist/decision/receipt.js.map +1 -0
- package/dist/decision/request-policy.d.ts +3 -0
- package/dist/decision/request-policy.d.ts.map +1 -0
- package/dist/decision/request-policy.js +19 -0
- package/dist/decision/request-policy.js.map +1 -0
- package/dist/decision/request.d.ts +85 -0
- package/dist/decision/request.d.ts.map +1 -0
- package/dist/decision/request.js +49 -0
- package/dist/decision/request.js.map +1 -0
- package/dist/decision/service.d.ts +39 -0
- package/dist/decision/service.d.ts.map +1 -0
- package/dist/decision/service.js +139 -0
- package/dist/decision/service.js.map +1 -0
- package/dist/decision/structured.d.ts +125 -0
- package/dist/decision/structured.d.ts.map +1 -0
- package/dist/decision/structured.js +250 -0
- package/dist/decision/structured.js.map +1 -0
- package/dist/decision/validate-result.d.ts +8 -0
- package/dist/decision/validate-result.d.ts.map +1 -0
- package/dist/decision/validate-result.js +91 -0
- package/dist/decision/validate-result.js.map +1 -0
- package/dist/decision/validation-context.d.ts +55 -0
- package/dist/decision/validation-context.d.ts.map +1 -0
- package/dist/decision/validation-context.js +134 -0
- package/dist/decision/validation-context.js.map +1 -0
- package/dist/decision/validation.d.ts +19 -0
- package/dist/decision/validation.d.ts.map +1 -0
- package/dist/decision/validation.js +86 -0
- package/dist/decision/validation.js.map +1 -0
- package/dist/decision/verdict.d.ts +81 -0
- package/dist/decision/verdict.d.ts.map +1 -0
- package/dist/decision/verdict.js +140 -0
- package/dist/decision/verdict.js.map +1 -0
- package/dist/providers.d.ts +4 -3
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +2 -1
- package/dist/providers.js.map +1 -1
- package/dist/registry.d.ts +6 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js.map +1 -1
- package/dist/transport/jev.d.ts +23 -0
- package/dist/transport/jev.d.ts.map +1 -0
- package/dist/transport/jev.js +107 -0
- package/dist/transport/jev.js.map +1 -0
- package/dist/transport/openai-decisions.d.ts +23 -0
- package/dist/transport/openai-decisions.d.ts.map +1 -0
- package/dist/transport/openai-decisions.js +107 -0
- package/dist/transport/openai-decisions.js.map +1 -0
- package/package.json +13 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { isDecisionRule, scoreDirections } from './criterion.js';
|
|
2
|
+
import { has, hasOnlyKeys, isRecord, isText, snapshotBoundedJson } from './validation.js';
|
|
3
|
+
/** Preserve native values and direction; normalization is relative position, not accuracy. */
|
|
4
|
+
export function parseDecisionScore(candidate) {
|
|
5
|
+
const snapshot = snapshotBoundedJson(candidate);
|
|
6
|
+
if (!snapshot.ok)
|
|
7
|
+
return null;
|
|
8
|
+
const value = snapshot.value;
|
|
9
|
+
if (!isRecord(value) || !hasOnlyKeys(value, ['value', 'scale', 'meaning', 'normalized'])
|
|
10
|
+
|| typeof value.value !== 'number' || !Number.isFinite(value.value) || !isRecord(value.scale)
|
|
11
|
+
|| !['rubric-grade', 'probability-true', 'support', 'provider-defined'].some((v) => v === value.meaning))
|
|
12
|
+
return null;
|
|
13
|
+
const scale = value.scale;
|
|
14
|
+
let position;
|
|
15
|
+
if (scale.kind === 'unknown') {
|
|
16
|
+
if (!hasOnlyKeys(scale, ['kind', 'reason']) || scale.reason !== 'unknown (source-gap)' || has(value, 'normalized'))
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
else if (scale.kind === 'bounded') {
|
|
20
|
+
if (!hasOnlyKeys(scale, ['kind', 'min', 'max', 'direction'])
|
|
21
|
+
|| typeof scale.min !== 'number' || typeof scale.max !== 'number'
|
|
22
|
+
|| !Number.isFinite(scale.min) || !Number.isFinite(scale.max) || scale.max < scale.min
|
|
23
|
+
|| value.value < scale.min || value.value > scale.max
|
|
24
|
+
|| !scoreDirections.some((direction) => direction === scale.direction))
|
|
25
|
+
return null;
|
|
26
|
+
const span = scale.max - scale.min;
|
|
27
|
+
if (span > 0 && Number.isFinite(span))
|
|
28
|
+
position = (value.value - scale.min) / span;
|
|
29
|
+
}
|
|
30
|
+
else
|
|
31
|
+
return null;
|
|
32
|
+
if (has(value, 'normalized') && (!isRecord(value.normalized)
|
|
33
|
+
|| !hasOnlyKeys(value.normalized, ['value', 'transform']) || position === undefined
|
|
34
|
+
|| value.normalized.transform !== 'linear-min-max' || typeof value.normalized.value !== 'number'
|
|
35
|
+
|| !Number.isFinite(value.normalized.value) || value.normalized.value !== position))
|
|
36
|
+
return null;
|
|
37
|
+
return { value: value.value, scale: { ...scale }, meaning: value.meaning,
|
|
38
|
+
...(position === undefined ? {} : { normalized: { value: position, transform: 'linear-min-max' } }) };
|
|
39
|
+
}
|
|
40
|
+
/** A descriptor supplies the documented meaning; this never derives confidence from score. */
|
|
41
|
+
export function parseDecisionConfidence(candidate) {
|
|
42
|
+
const snapshot = snapshotBoundedJson(candidate);
|
|
43
|
+
if (!snapshot.ok)
|
|
44
|
+
return null;
|
|
45
|
+
const value = snapshot.value;
|
|
46
|
+
if (!isRecord(value)
|
|
47
|
+
|| !hasOnlyKeys(value, ['value', 'min', 'max', 'meaning', 'meaningRef', 'origin'])
|
|
48
|
+
|| typeof value.value !== 'number' || typeof value.min !== 'number' || typeof value.max !== 'number'
|
|
49
|
+
|| !Number.isFinite(value.value) || !Number.isFinite(value.min) || !Number.isFinite(value.max)
|
|
50
|
+
|| value.max < value.min || value.value < value.min || value.value > value.max
|
|
51
|
+
|| (value.meaning !== 'provider-confidence' && value.meaning !== 'decision-confidence')
|
|
52
|
+
|| !isText(value.meaningRef) || value.origin !== 'provider')
|
|
53
|
+
return null;
|
|
54
|
+
return { value: value.value, min: value.min, max: value.max, meaning: value.meaning,
|
|
55
|
+
meaningRef: value.meaningRef, origin: 'provider' };
|
|
56
|
+
}
|
|
57
|
+
/** Map an exact, descriptor-owned native key set, preserving order and probabilities. */
|
|
58
|
+
export function mapDecisionDistribution(candidate, declared) {
|
|
59
|
+
const snapshot = snapshotBoundedJson(candidate);
|
|
60
|
+
const outcomeSnapshot = snapshotBoundedJson(declared);
|
|
61
|
+
if (!snapshot.ok || !outcomeSnapshot.ok || !Array.isArray(outcomeSnapshot.value))
|
|
62
|
+
return null;
|
|
63
|
+
const probabilities = snapshot.value;
|
|
64
|
+
const outcomes = outcomeSnapshot.value;
|
|
65
|
+
if (!isRecord(probabilities) || !outcomes.length || Object.keys(probabilities).length !== outcomes.length)
|
|
66
|
+
return null;
|
|
67
|
+
let sum = 0;
|
|
68
|
+
const outcomeIds = new Set();
|
|
69
|
+
const nativeIds = new Set();
|
|
70
|
+
const entries = [];
|
|
71
|
+
for (const item of outcomes) {
|
|
72
|
+
if (!isRecord(item) || !hasOnlyKeys(item, ['outcome', 'nativeOutcome']))
|
|
73
|
+
return null;
|
|
74
|
+
const { outcome, nativeOutcome } = item;
|
|
75
|
+
if (!isText(outcome) || !isText(nativeOutcome) || outcomeIds.has(outcome) || nativeIds.has(nativeOutcome))
|
|
76
|
+
return null;
|
|
77
|
+
const probability = probabilities[nativeOutcome];
|
|
78
|
+
if (!has(probabilities, nativeOutcome)
|
|
79
|
+
|| typeof probability !== 'number' || !Number.isFinite(probability)
|
|
80
|
+
|| probability < 0 || probability > 1)
|
|
81
|
+
return null;
|
|
82
|
+
sum += probability;
|
|
83
|
+
outcomeIds.add(outcome);
|
|
84
|
+
nativeIds.add(nativeOutcome);
|
|
85
|
+
entries.push({ outcome, nativeOutcome, probability });
|
|
86
|
+
}
|
|
87
|
+
if (Math.abs(sum - 1) > 1e-4)
|
|
88
|
+
return null;
|
|
89
|
+
return entries;
|
|
90
|
+
}
|
|
91
|
+
export function deriveDecision(input) {
|
|
92
|
+
const { rule, score, label, providerDecision } = input;
|
|
93
|
+
if (rule !== undefined && !isDecisionRule(rule))
|
|
94
|
+
return { ok: false, code: 'REQUEST_INVALID' };
|
|
95
|
+
if (providerDecision !== null) {
|
|
96
|
+
if (typeof providerDecision !== 'boolean')
|
|
97
|
+
return { ok: false, code: 'VERDICT_INVALID' };
|
|
98
|
+
if (rule && rule.kind !== 'provider')
|
|
99
|
+
return { ok: false, code: 'CAPABILITY_UNSUPPORTED' };
|
|
100
|
+
return { ok: true, decision: { pass: providerDecision, origin: 'provider' } };
|
|
101
|
+
}
|
|
102
|
+
if (!rule)
|
|
103
|
+
return { ok: true, decision: null };
|
|
104
|
+
if (rule.kind === 'provider')
|
|
105
|
+
return { ok: false, code: 'CAPABILITY_UNSUPPORTED' };
|
|
106
|
+
if (rule.kind === 'threshold') {
|
|
107
|
+
if (score === null)
|
|
108
|
+
return { ok: false, code: 'CAPABILITY_UNSUPPORTED' };
|
|
109
|
+
const checked = parseDecisionScore(score);
|
|
110
|
+
if (checked === null)
|
|
111
|
+
return { ok: false, code: 'VERDICT_INVALID' };
|
|
112
|
+
if (checked.scale.kind === 'unknown')
|
|
113
|
+
return { ok: false, code: 'CAPABILITY_UNSUPPORTED' };
|
|
114
|
+
if (rule.value < checked.scale.min || rule.value > checked.scale.max)
|
|
115
|
+
return { ok: false, code: 'REQUEST_INVALID' };
|
|
116
|
+
return { ok: true, decision: { pass: rule.op === 'gte' ? checked.value >= rule.value : checked.value <= rule.value,
|
|
117
|
+
origin: 'threshold', rule: { ...rule } } };
|
|
118
|
+
}
|
|
119
|
+
const declared = input.declaredLabels ?? [];
|
|
120
|
+
if (label === null || !declared.length)
|
|
121
|
+
return { ok: false, code: 'CAPABILITY_UNSUPPORTED' };
|
|
122
|
+
if (!declared.includes(label))
|
|
123
|
+
return { ok: false, code: 'VERDICT_INVALID' };
|
|
124
|
+
if (!rule.passing.every((v) => declared.includes(v)))
|
|
125
|
+
return { ok: false, code: 'REQUEST_INVALID' };
|
|
126
|
+
return { ok: true, decision: { pass: rule.passing.includes(label), origin: 'labels',
|
|
127
|
+
rule: { kind: 'labels', passing: [...rule.passing] } } };
|
|
128
|
+
}
|
|
129
|
+
/** Primary values must be meaningful; false and zero are valid evidence. */
|
|
130
|
+
export function hasDecisionVerdictValue(value) {
|
|
131
|
+
if (value.score !== null && parseDecisionScore(value.score) === null)
|
|
132
|
+
return false;
|
|
133
|
+
if (value.decision !== null && (!isRecord(value.decision) || typeof value.decision.pass !== 'boolean'
|
|
134
|
+
|| !['provider', 'threshold', 'labels'].includes(value.decision.origin)))
|
|
135
|
+
return false;
|
|
136
|
+
if (value.label !== null && (!isRecord(value.label) || !isText(value.label.value) || value.label.origin !== 'provider'))
|
|
137
|
+
return false;
|
|
138
|
+
return value.score !== null || value.decision !== null || value.label !== null;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=verdict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verdict.js","sourceRoot":"","sources":["../../src/decision/verdict.ts"],"names":[],"mappings":"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"}
|
package/dist/providers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare const providerIds: readonly ["openai", "gemini", "anthropic", "mistral", "cohere", "gcp", "local", "muse"];
|
|
1
|
+
export declare const providerIds: readonly ["openai", "gemini", "anthropic", "mistral", "cohere", "gcp", "local", "muse", "typesafe"];
|
|
2
2
|
export type ProviderId = (typeof providerIds)[number];
|
|
3
3
|
export type ProviderStatus = 'ready' | 'planned';
|
|
4
|
-
export type ProviderFamily = 'openai' | 'google' | 'anthropic' | 'mistral' | 'cohere' | 'meta';
|
|
4
|
+
export type ProviderFamily = 'openai' | 'google' | 'anthropic' | 'mistral' | 'cohere' | 'meta' | 'typesafe';
|
|
5
5
|
export type ReasoningTier = 'none' | 'light' | 'standard' | 'advanced';
|
|
6
6
|
export type ModelTaskHint = 'chat' | 'structured' | 'summary' | 'doc';
|
|
7
7
|
export declare const knownModelIds: readonly ["gpt-5.6-sol", "gpt-6-sol", "gpt-6.1-sol", "gpt-6-astra", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-6-luna", "gpt-5.5", "gpt-5.4-nano", "gpt-4.1-nano", "gemini-3.7-flash", "gemini-3.8-flash", "gemini-4-argon", "gemini-3.5-flash", "gemini-3.1-flash-lite", "claude-sonnet-5", "claude-opus-5", "claude-opus-4-8", "claude-fable-5", "claude-fable-5-1", "mistral-small-2603", "magistral-medium-2509", "mistral-large-4", "mistral-medium-3.5", "zai-glm-5-3", "command-a-03-2025", "command-a-reasoning-08-2025", "google/gemini-3.5-flash@gcp", "google/gemini-3.1-flash-lite@gcp", "anthropic/claude-sonnet-4-6@gcp", "anthropic/claude-opus-4-6@gcp", "laneformer-2b-it", "muse-spark-1.3", "muse-spark-1.3-contributor", "muse-wonder-1.0", "muse-wonder-full-1.0"];
|
|
@@ -17,6 +17,7 @@ export declare const knownModelIdsByProvider: {
|
|
|
17
17
|
readonly gcp: readonly ["google/gemini-3.5-flash@gcp", "google/gemini-3.1-flash-lite@gcp", "anthropic/claude-sonnet-4-6@gcp", "anthropic/claude-opus-4-6@gcp"];
|
|
18
18
|
readonly local: readonly ["laneformer-2b-it"];
|
|
19
19
|
readonly muse: readonly ["muse-spark-1.3", "muse-spark-1.3-contributor", "muse-wonder-1.0", "muse-wonder-full-1.0"];
|
|
20
|
+
readonly typesafe: readonly [];
|
|
20
21
|
};
|
|
21
22
|
export interface ModelReference {
|
|
22
23
|
providerId: ProviderId;
|
|
@@ -25,6 +26,6 @@ export interface ModelReference {
|
|
|
25
26
|
export declare const toQualifiedModelId: (model: ModelReference) => QualifiedModelId;
|
|
26
27
|
export declare const antigravityModelFleet: readonly ["claude-sonnet-4-6", "claude-opus-4-6-thinking", "gemini-3-pro-high", "gemini-3-pro-low", "gpt-oss-120b-medium"];
|
|
27
28
|
export type AntigravityFleetModelId = (typeof antigravityModelFleet)[number];
|
|
28
|
-
export declare const isProviderId: (value: string) => value is "openai" | "gemini" | "anthropic" | "mistral" | "cohere" | "gcp" | "local" | "muse";
|
|
29
|
+
export declare const isProviderId: (value: string) => value is "openai" | "gemini" | "anthropic" | "mistral" | "cohere" | "gcp" | "local" | "muse" | "typesafe";
|
|
29
30
|
export declare const isKnownModelId: (value: string) => value is "gpt-5.6-sol" | "gpt-6-sol" | "gpt-6.1-sol" | "gpt-6-astra" | "gpt-5.6-terra" | "gpt-5.6-luna" | "gpt-6-luna" | "gpt-5.5" | "gpt-5.4-nano" | "gpt-4.1-nano" | "gemini-3.7-flash" | "gemini-3.8-flash" | "gemini-4-argon" | "gemini-3.5-flash" | "gemini-3.1-flash-lite" | "claude-sonnet-5" | "claude-opus-5" | "claude-opus-4-8" | "claude-fable-5" | "claude-fable-5-1" | "mistral-small-2603" | "magistral-medium-2509" | "mistral-large-4" | "mistral-medium-3.5" | "zai-glm-5-3" | "command-a-03-2025" | "command-a-reasoning-08-2025" | "google/gemini-3.5-flash@gcp" | "google/gemini-3.1-flash-lite@gcp" | "anthropic/claude-sonnet-4-6@gcp" | "anthropic/claude-opus-4-6@gcp" | "laneformer-2b-it" | "muse-spark-1.3" | "muse-spark-1.3-contributor" | "muse-wonder-1.0" | "muse-wonder-full-1.0";
|
|
30
31
|
//# sourceMappingURL=providers.d.ts.map
|
package/dist/providers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,qGAAsG,CAAC;AAE/H,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5G,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,KAAK,CAAC;AAEtE,eAAO,MAAM,aAAa,ovBAiEhB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG,GAAG,UAAU,IAAI,MAAM,EAAE,CAAC;AAEzD,eAAO,MAAM,uBAAuB;;;;;;;;;;CAqB4B,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,UAAW,cAAc,KAAG,gBAE1D,CAAC;AAUF,eAAO,MAAM,qBAAqB,4HAMxB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,eAAO,MAAM,YAAY,UAAW,MAAM,8GAEzC,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,MAAM,wxBAE3C,CAAC"}
|
package/dist/providers.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const providerIds = ['openai', 'gemini', 'anthropic', 'mistral', 'cohere', 'gcp', 'local', 'muse'];
|
|
1
|
+
export const providerIds = ['openai', 'gemini', 'anthropic', 'mistral', 'cohere', 'gcp', 'local', 'muse', 'typesafe'];
|
|
2
2
|
export const knownModelIds = [
|
|
3
3
|
'gpt-5.6-sol',
|
|
4
4
|
'gpt-6-sol',
|
|
@@ -85,6 +85,7 @@ export const knownModelIdsByProvider = {
|
|
|
85
85
|
gcp: ['google/gemini-3.5-flash@gcp', 'google/gemini-3.1-flash-lite@gcp', 'anthropic/claude-sonnet-4-6@gcp', 'anthropic/claude-opus-4-6@gcp'],
|
|
86
86
|
local: ['laneformer-2b-it'],
|
|
87
87
|
muse: ['muse-spark-1.3', 'muse-spark-1.3-contributor', 'muse-wonder-1.0', 'muse-wonder-full-1.0'],
|
|
88
|
+
typesafe: [],
|
|
88
89
|
};
|
|
89
90
|
export const toQualifiedModelId = (model) => {
|
|
90
91
|
return `${model.providerId}:${model.modelId}`;
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import type { GenerateRequest, GenerateResponse, StreamRequest, StreamResult } f
|
|
|
3
3
|
import type { ModelProfile, ProviderDescriptor } from './catalog.js';
|
|
4
4
|
import type { ProviderId } from './providers.js';
|
|
5
5
|
import type { NormalizedProviderError } from './errors.js';
|
|
6
|
+
import type { EvaluatorRef, DecisionRequest } from './decision/request.js';
|
|
7
|
+
import type { DecisionAdapterResult } from './decision/adapter.js';
|
|
6
8
|
export interface CredentialValidationResult {
|
|
7
9
|
ok: boolean;
|
|
8
10
|
message?: string;
|
|
@@ -14,6 +16,10 @@ export interface ProviderRuntimeContext {
|
|
|
14
16
|
export interface ProviderAdapter {
|
|
15
17
|
readonly provider: ProviderDescriptor;
|
|
16
18
|
listModels(): readonly ModelProfile[];
|
|
19
|
+
listEvaluators?(): readonly EvaluatorRef[];
|
|
20
|
+
decision?(request: DecisionRequest, context?: ProviderRuntimeContext & {
|
|
21
|
+
signal?: AbortSignal;
|
|
22
|
+
}): Promise<DecisionAdapterResult>;
|
|
17
23
|
generate(request: GenerateRequest, context?: ProviderRuntimeContext): Promise<GenerateResponse>;
|
|
18
24
|
stream(request: StreamRequest, context?: ProviderRuntimeContext): Promise<StreamResult>;
|
|
19
25
|
validateAuth(source?: AuthInput): CredentialValidationResult;
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACtG,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACtG,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,UAAU,IAAI,SAAS,YAAY,EAAE,CAAC;IACtC,cAAc,CAAC,IAAI,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACjI,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChG,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACxF,YAAY,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,0BAA0B,CAAC;IAC7D,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,IAAI,SAAS,kBAAkB,EAAE,CAAC;IAC/C,UAAU,IAAI,SAAS,YAAY,EAAE,CAAC;IACtC,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,GAAG,IAAI,CAAC;IAC5D,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,CAAC;CAC1D;AAED,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;gBAEzD,QAAQ,EAAE,SAAS,eAAe,EAAE;IAIhD,aAAa,IAAI,SAAS,kBAAkB,EAAE;IAI9C,UAAU,IAAI,SAAS,YAAY,EAAE;IAIrC,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,GAAG,IAAI;IAI3D,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe;CAOzD;AAED,eAAO,MAAM,sBAAsB,aACvB,SAAS,eAAe,EAAE,KACnC,gBAEF,CAAC"}
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAoCA,MAAM,OAAO,sBAAsB;IAChB,SAAS,CAA2C;IAErE,YAAY,QAAoC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,WAAW,CAAC,UAAsB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,eAAe,CAAC,UAAsB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,QAAoC,EAClB,EAAE;IACpB,OAAO,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DecisionError } from '../decision/errors.js';
|
|
2
|
+
export declare const JEV_ENDPOINT = "https://api.typesafe.ai/v1/systemone";
|
|
3
|
+
export type JevTransportResult = {
|
|
4
|
+
ok: true;
|
|
5
|
+
body: unknown;
|
|
6
|
+
providerRequestId?: string;
|
|
7
|
+
} | {
|
|
8
|
+
ok: false;
|
|
9
|
+
error: DecisionError;
|
|
10
|
+
};
|
|
11
|
+
export interface JevTransport {
|
|
12
|
+
send(bodyJson: string, token: string, options?: {
|
|
13
|
+
signal?: AbortSignal;
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
}): Promise<JevTransportResult>;
|
|
16
|
+
}
|
|
17
|
+
export interface JevTransportOptions {
|
|
18
|
+
fetch: typeof globalThis.fetch;
|
|
19
|
+
maxResponseBytes?: number;
|
|
20
|
+
}
|
|
21
|
+
/** Trusted, explicitly injected fetch must have retries disabled. Construction performs no I/O. */
|
|
22
|
+
export declare function createJevTransport(options: JevTransportOptions): JevTransport;
|
|
23
|
+
//# sourceMappingURL=jev.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jev.d.ts","sourceRoot":"","sources":["../../src/transport/jev.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,eAAO,MAAM,YAAY,yCAAyC,CAAC;AACnE,MAAM,MAAM,kBAAkB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AACxC,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC5H;AACD,MAAM,WAAW,mBAAmB;IAAG,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE;AAElG,mGAAmG;AACnG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CA8E7E"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { createDecisionError } from '../decision/errors.js';
|
|
2
|
+
import { sanitizeJevId } from '../decision/jev-response.js';
|
|
3
|
+
import { DECISION_MAX_JSON_BYTES, snapshotBoundedJson } from '../decision/validation.js';
|
|
4
|
+
export const JEV_ENDPOINT = 'https://api.typesafe.ai/v1/systemone';
|
|
5
|
+
/** Trusted, explicitly injected fetch must have retries disabled. Construction performs no I/O. */
|
|
6
|
+
export function createJevTransport(options) {
|
|
7
|
+
const cap = options.maxResponseBytes ?? DECISION_MAX_JSON_BYTES;
|
|
8
|
+
if (!Number.isSafeInteger(cap) || cap < 1 || cap > DECISION_MAX_JSON_BYTES)
|
|
9
|
+
throw new Error('Invalid JEV response bound.');
|
|
10
|
+
return { async send(bodyJson, token, call = {}) {
|
|
11
|
+
if (!token.trim() || token !== token.trim() || /[\r\n]/.test(token))
|
|
12
|
+
return { ok: false, error: createDecisionError('CREDENTIAL_MISSING', 'preflight') };
|
|
13
|
+
if (call.signal?.aborted)
|
|
14
|
+
return { ok: false, error: createDecisionError('CANCELLED', 'dispatch') };
|
|
15
|
+
const timeoutMs = call.timeoutMs ?? 10_000;
|
|
16
|
+
if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > 60_000) {
|
|
17
|
+
return { ok: false, error: createDecisionError('REQUEST_INVALID', 'preflight') };
|
|
18
|
+
}
|
|
19
|
+
const controller = new AbortController();
|
|
20
|
+
let timedOut = false;
|
|
21
|
+
let reader;
|
|
22
|
+
let onAbort;
|
|
23
|
+
const aborted = new Promise((resolve) => {
|
|
24
|
+
onAbort = () => {
|
|
25
|
+
void reader?.cancel().catch(() => { });
|
|
26
|
+
resolve({ ok: false, error: createDecisionError(timedOut ? 'TIMEOUT' : 'CANCELLED', 'dispatch') });
|
|
27
|
+
};
|
|
28
|
+
controller.signal.addEventListener('abort', onAbort, { once: true });
|
|
29
|
+
});
|
|
30
|
+
const cancel = () => controller.abort();
|
|
31
|
+
call.signal?.addEventListener('abort', cancel, { once: true });
|
|
32
|
+
const timer = setTimeout(() => { timedOut = true; controller.abort(); }, timeoutMs);
|
|
33
|
+
const run = async () => {
|
|
34
|
+
try {
|
|
35
|
+
const response = await options.fetch(JEV_ENDPOINT, { method: 'POST', redirect: 'manual',
|
|
36
|
+
headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json', accept: 'application/json' },
|
|
37
|
+
body: bodyJson, signal: controller.signal });
|
|
38
|
+
if (controller.signal.aborted) {
|
|
39
|
+
void response.body?.cancel().catch(() => { });
|
|
40
|
+
return await aborted;
|
|
41
|
+
}
|
|
42
|
+
if (response.redirected || (response.status >= 300 && response.status < 400)) {
|
|
43
|
+
return { ok: false, error: createDecisionError('PROVIDER_REJECTED', 'dispatch') };
|
|
44
|
+
}
|
|
45
|
+
if (response.status !== 200) {
|
|
46
|
+
const code = response.status === 401 ? 'AUTHENTICATION_FAILED' : response.status === 422 ? 'PROVIDER_REJECTED'
|
|
47
|
+
: response.status === 429 ? 'RATE_LIMITED' : response.status === 529 ? 'PROVIDER_OVERLOADED'
|
|
48
|
+
: response.status >= 500 ? 'PROVIDER_UNAVAILABLE' : 'PROVIDER_REJECTED';
|
|
49
|
+
return { ok: false, error: createDecisionError(code, 'dispatch') };
|
|
50
|
+
}
|
|
51
|
+
if (!/^application\/json(?:\s*;|$)/i.test(response.headers.get('content-type') ?? '')) {
|
|
52
|
+
return { ok: false, error: createDecisionError('VERDICT_INVALID', 'parse') };
|
|
53
|
+
}
|
|
54
|
+
const declared = response.headers.get('content-length');
|
|
55
|
+
if (declared !== null && (!/^\d+$/.test(declared) || Number(declared) > cap)) {
|
|
56
|
+
return { ok: false, error: createDecisionError('RESPONSE_TOO_LARGE', 'parse') };
|
|
57
|
+
}
|
|
58
|
+
reader = response.body?.getReader();
|
|
59
|
+
if (!reader)
|
|
60
|
+
return { ok: false, error: createDecisionError('VERDICT_INVALID', 'parse') };
|
|
61
|
+
const buffer = new Uint8Array(cap);
|
|
62
|
+
let size = 0;
|
|
63
|
+
try {
|
|
64
|
+
for (;;) {
|
|
65
|
+
const chunk = await reader.read();
|
|
66
|
+
if (chunk.done)
|
|
67
|
+
break;
|
|
68
|
+
if (size + chunk.value.byteLength > cap) {
|
|
69
|
+
void reader.cancel().catch(() => { });
|
|
70
|
+
return { ok: false, error: createDecisionError('RESPONSE_TOO_LARGE', 'parse') };
|
|
71
|
+
}
|
|
72
|
+
buffer.set(chunk.value, size);
|
|
73
|
+
size += chunk.value.byteLength;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
reader.releaseLock();
|
|
78
|
+
reader = undefined;
|
|
79
|
+
}
|
|
80
|
+
let parsed;
|
|
81
|
+
try {
|
|
82
|
+
parsed = JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(buffer.subarray(0, size)));
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return { ok: false, error: createDecisionError('VERDICT_INVALID', 'parse') };
|
|
86
|
+
}
|
|
87
|
+
const snapshot = snapshotBoundedJson(parsed, cap);
|
|
88
|
+
if (!snapshot.ok)
|
|
89
|
+
return { ok: false, error: createDecisionError('VERDICT_INVALID', 'parse') };
|
|
90
|
+
const id = sanitizeJevId(response.headers.get('x-typesafe-request-id'));
|
|
91
|
+
return { ok: true, body: snapshot.value, ...(id && !id.includes(token) ? { providerRequestId: id } : {}) };
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return { ok: false, error: createDecisionError(timedOut ? 'TIMEOUT' : controller.signal.aborted ? 'CANCELLED' : 'TRANSPORT_FAILED', 'dispatch') };
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
try {
|
|
98
|
+
return await Promise.race([run(), aborted]);
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
clearTimeout(timer);
|
|
102
|
+
call.signal?.removeEventListener('abort', cancel);
|
|
103
|
+
controller.signal.removeEventListener('abort', onAbort);
|
|
104
|
+
}
|
|
105
|
+
} };
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=jev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jev.js","sourceRoot":"","sources":["../../src/transport/jev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DecisionError } from '../decision/errors.js';
|
|
2
|
+
export declare const OPENAI_DECISIONS_ENDPOINT = "https://api.openai.com/v1/decisions";
|
|
3
|
+
export type OpenAiDecisionsTransportResult = {
|
|
4
|
+
ok: true;
|
|
5
|
+
body: unknown;
|
|
6
|
+
providerRequestId?: string;
|
|
7
|
+
} | {
|
|
8
|
+
ok: false;
|
|
9
|
+
error: DecisionError;
|
|
10
|
+
};
|
|
11
|
+
export interface OpenAiDecisionsTransport {
|
|
12
|
+
send(bodyJson: string, token: string, options?: {
|
|
13
|
+
signal?: AbortSignal;
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
}): Promise<OpenAiDecisionsTransportResult>;
|
|
16
|
+
}
|
|
17
|
+
export interface OpenAiDecisionsTransportOptions {
|
|
18
|
+
fetch: typeof globalThis.fetch;
|
|
19
|
+
maxResponseBytes?: number;
|
|
20
|
+
}
|
|
21
|
+
/** Trusted, explicitly injected fetch must have retries disabled. Construction performs no I/O. */
|
|
22
|
+
export declare function createOpenAiDecisionsTransport(options: OpenAiDecisionsTransportOptions): OpenAiDecisionsTransport;
|
|
23
|
+
//# sourceMappingURL=openai-decisions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-decisions.d.ts","sourceRoot":"","sources":["../../src/transport/openai-decisions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAC/E,MAAM,MAAM,8BAA8B,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,GAChG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AACxC,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;CACxI;AACD,MAAM,WAAW,+BAA+B;IAAG,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE;AAE9G,mGAAmG;AACnG,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,+BAA+B,GAAG,wBAAwB,CA8EjH"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { createDecisionError } from '../decision/errors.js';
|
|
2
|
+
import { sanitizeJevId as sanitizeOpenAiDecisionsId } from '../decision/jev-response.js';
|
|
3
|
+
import { DECISION_MAX_JSON_BYTES, snapshotBoundedJson } from '../decision/validation.js';
|
|
4
|
+
export const OPENAI_DECISIONS_ENDPOINT = 'https://api.openai.com/v1/decisions';
|
|
5
|
+
/** Trusted, explicitly injected fetch must have retries disabled. Construction performs no I/O. */
|
|
6
|
+
export function createOpenAiDecisionsTransport(options) {
|
|
7
|
+
const cap = options.maxResponseBytes ?? DECISION_MAX_JSON_BYTES;
|
|
8
|
+
if (!Number.isSafeInteger(cap) || cap < 1 || cap > DECISION_MAX_JSON_BYTES)
|
|
9
|
+
throw new Error('Invalid OPENAI_DECISIONS response bound.');
|
|
10
|
+
return { async send(bodyJson, token, call = {}) {
|
|
11
|
+
if (!token.trim() || token !== token.trim() || /[\r\n]/.test(token))
|
|
12
|
+
return { ok: false, error: createDecisionError('CREDENTIAL_MISSING', 'preflight') };
|
|
13
|
+
if (call.signal?.aborted)
|
|
14
|
+
return { ok: false, error: createDecisionError('CANCELLED', 'dispatch') };
|
|
15
|
+
const timeoutMs = call.timeoutMs ?? 10_000;
|
|
16
|
+
if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > 60_000) {
|
|
17
|
+
return { ok: false, error: createDecisionError('REQUEST_INVALID', 'preflight') };
|
|
18
|
+
}
|
|
19
|
+
const controller = new AbortController();
|
|
20
|
+
let timedOut = false;
|
|
21
|
+
let reader;
|
|
22
|
+
let onAbort;
|
|
23
|
+
const aborted = new Promise((resolve) => {
|
|
24
|
+
onAbort = () => {
|
|
25
|
+
void reader?.cancel().catch(() => { });
|
|
26
|
+
resolve({ ok: false, error: createDecisionError(timedOut ? 'TIMEOUT' : 'CANCELLED', 'dispatch') });
|
|
27
|
+
};
|
|
28
|
+
controller.signal.addEventListener('abort', onAbort, { once: true });
|
|
29
|
+
});
|
|
30
|
+
const cancel = () => controller.abort();
|
|
31
|
+
call.signal?.addEventListener('abort', cancel, { once: true });
|
|
32
|
+
const timer = setTimeout(() => { timedOut = true; controller.abort(); }, timeoutMs);
|
|
33
|
+
const run = async () => {
|
|
34
|
+
try {
|
|
35
|
+
const response = await options.fetch(OPENAI_DECISIONS_ENDPOINT, { method: 'POST', redirect: 'manual',
|
|
36
|
+
headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json', accept: 'application/json' },
|
|
37
|
+
body: bodyJson, signal: controller.signal });
|
|
38
|
+
if (controller.signal.aborted) {
|
|
39
|
+
void response.body?.cancel().catch(() => { });
|
|
40
|
+
return await aborted;
|
|
41
|
+
}
|
|
42
|
+
if (response.redirected || (response.status >= 300 && response.status < 400)) {
|
|
43
|
+
return { ok: false, error: createDecisionError('PROVIDER_REJECTED', 'dispatch') };
|
|
44
|
+
}
|
|
45
|
+
if (response.status !== 200) {
|
|
46
|
+
const code = response.status === 401 ? 'AUTHENTICATION_FAILED' : response.status === 422 ? 'PROVIDER_REJECTED'
|
|
47
|
+
: response.status === 429 ? 'RATE_LIMITED' : response.status === 529 ? 'PROVIDER_OVERLOADED'
|
|
48
|
+
: response.status >= 500 ? 'PROVIDER_UNAVAILABLE' : 'PROVIDER_REJECTED';
|
|
49
|
+
return { ok: false, error: createDecisionError(code, 'dispatch') };
|
|
50
|
+
}
|
|
51
|
+
if (!/^application\/json(?:\s*;|$)/i.test(response.headers.get('content-type') ?? '')) {
|
|
52
|
+
return { ok: false, error: createDecisionError('VERDICT_INVALID', 'parse') };
|
|
53
|
+
}
|
|
54
|
+
const declared = response.headers.get('content-length');
|
|
55
|
+
if (declared !== null && (!/^\d+$/.test(declared) || Number(declared) > cap)) {
|
|
56
|
+
return { ok: false, error: createDecisionError('RESPONSE_TOO_LARGE', 'parse') };
|
|
57
|
+
}
|
|
58
|
+
reader = response.body?.getReader();
|
|
59
|
+
if (!reader)
|
|
60
|
+
return { ok: false, error: createDecisionError('VERDICT_INVALID', 'parse') };
|
|
61
|
+
const buffer = new Uint8Array(cap);
|
|
62
|
+
let size = 0;
|
|
63
|
+
try {
|
|
64
|
+
for (;;) {
|
|
65
|
+
const chunk = await reader.read();
|
|
66
|
+
if (chunk.done)
|
|
67
|
+
break;
|
|
68
|
+
if (size + chunk.value.byteLength > cap) {
|
|
69
|
+
void reader.cancel().catch(() => { });
|
|
70
|
+
return { ok: false, error: createDecisionError('RESPONSE_TOO_LARGE', 'parse') };
|
|
71
|
+
}
|
|
72
|
+
buffer.set(chunk.value, size);
|
|
73
|
+
size += chunk.value.byteLength;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
reader.releaseLock();
|
|
78
|
+
reader = undefined;
|
|
79
|
+
}
|
|
80
|
+
let parsed;
|
|
81
|
+
try {
|
|
82
|
+
parsed = JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(buffer.subarray(0, size)));
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return { ok: false, error: createDecisionError('VERDICT_INVALID', 'parse') };
|
|
86
|
+
}
|
|
87
|
+
const snapshot = snapshotBoundedJson(parsed, cap);
|
|
88
|
+
if (!snapshot.ok)
|
|
89
|
+
return { ok: false, error: createDecisionError('VERDICT_INVALID', 'parse') };
|
|
90
|
+
const id = sanitizeOpenAiDecisionsId(response.headers.get('x-request-id'));
|
|
91
|
+
return { ok: true, body: snapshot.value, ...(id && !id.includes(token) ? { providerRequestId: id } : {}) };
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return { ok: false, error: createDecisionError(timedOut ? 'TIMEOUT' : controller.signal.aborted ? 'CANCELLED' : 'TRANSPORT_FAILED', 'dispatch') };
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
try {
|
|
98
|
+
return await Promise.race([run(), aborted]);
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
clearTimeout(timer);
|
|
102
|
+
call.signal?.removeEventListener('abort', cancel);
|
|
103
|
+
controller.signal.removeEventListener('abort', onAbort);
|
|
104
|
+
}
|
|
105
|
+
} };
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=openai-decisions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-decisions.js","sourceRoot":"","sources":["../../src/transport/openai-decisions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentropic/llm-mesh",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "Provider-agnostic LLM access runtime SDK for Sentropic.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,6 +32,18 @@
|
|
|
32
32
|
"types": "./dist/node/index.d.ts",
|
|
33
33
|
"import": "./dist/node/index.js"
|
|
34
34
|
},
|
|
35
|
+
"./decision": {
|
|
36
|
+
"types": "./dist/decision/index.d.ts",
|
|
37
|
+
"import": "./dist/decision/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./decision/host": {
|
|
40
|
+
"types": "./dist/decision/host.d.ts",
|
|
41
|
+
"import": "./dist/decision/host.js"
|
|
42
|
+
},
|
|
43
|
+
"./transport/jev": {
|
|
44
|
+
"types": "./dist/transport/jev.d.ts",
|
|
45
|
+
"import": "./dist/transport/jev.js"
|
|
46
|
+
},
|
|
35
47
|
"./transport/cloud-code": {
|
|
36
48
|
"types": "./dist/transport/cloud-code-transport.d.ts",
|
|
37
49
|
"import": "./dist/transport/cloud-code-transport.js"
|