@providerkit/core 0.12.3 → 0.13.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 +1 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +4 -0
- package/dist/errors.js.map +1 -1
- package/dist/jev.d.ts +123 -0
- package/dist/jev.d.ts.map +1 -0
- package/dist/jev.js +278 -0
- package/dist/jev.js.map +1 -0
- package/dist/providers/openai.d.ts +25 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +3 -1
- package/dist/providers/openai.js.map +1 -1
- package/package.json +5 -1
- package/src/errors.ts +4 -0
- package/src/jev.ts +444 -0
- package/src/providers/openai.ts +7 -1
package/README.md
CHANGED
|
@@ -89,6 +89,7 @@ drift.
|
|
|
89
89
|
| [Tools](https://providerkit.dev/guides/tools/) | Tool kernel, truncated-argument salvage, zod |
|
|
90
90
|
| [Context and compaction](https://providerkit.dev/guides/context/) | When to compact, and where to cut |
|
|
91
91
|
| [Usage and cost](https://providerkit.dev/guides/usage/) | Reconciling cache tokens, cost, savings |
|
|
92
|
+
| [Jev decisions](https://providerkit.dev/guides/jev/) | TypeSafe's decision model on four hosts |
|
|
92
93
|
|
|
93
94
|
The [API reference](https://providerkit.dev/reference/) is generated from the source, so it
|
|
94
95
|
cannot drift either.
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAYA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,qEAAqE;AACrE,MAAM,MAAM,SAAS;AACnB,+DAA+D;AAC7D,SAAS;AACX,sDAAsD;GACpD,SAAS;AACX,8EAA8E;GAC5E,SAAS;AACX;sCACsC;GACpC,UAAU;AACZ,yEAAyE;GACvE,MAAM;AACR,0EAA0E;GACxE,OAAO;AACT,iFAAiF;GAC/E,aAAa;AACf,mDAAmD;GACjD,MAAM;AACR,yDAAyD;GACvD,OAAO;AACT,sEAAsE;GACpE,SAAS;AACX,gCAAgC;GAC9B,SAAS;AACX,6CAA6C;GAC3C,SAAS,GACT,SAAS,CAAC;AAyBd,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,SAAS,GAAG,OAAO,CAerE;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;0CACsC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,uFAAuF;IACvF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;6DACyD;IACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,eAAe,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ;IAeR,IAAI,WAAW,IAAI,OAAO,CAGzB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;iFAC6E;IAC7E,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa;CAe3D;AAwBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAU9C;AAkFD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAuBxD;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAYA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,qEAAqE;AACrE,MAAM,MAAM,SAAS;AACnB,+DAA+D;AAC7D,SAAS;AACX,sDAAsD;GACpD,SAAS;AACX,8EAA8E;GAC5E,SAAS;AACX;sCACsC;GACpC,UAAU;AACZ,yEAAyE;GACvE,MAAM;AACR,0EAA0E;GACxE,OAAO;AACT,iFAAiF;GAC/E,aAAa;AACf,mDAAmD;GACjD,MAAM;AACR,yDAAyD;GACvD,OAAO;AACT,sEAAsE;GACpE,SAAS;AACX,gCAAgC;GAC9B,SAAS;AACX,6CAA6C;GAC3C,SAAS,GACT,SAAS,CAAC;AAyBd,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,SAAS,GAAG,OAAO,CAerE;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;0CACsC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,uFAAuF;IACvF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;6DACyD;IACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,eAAe,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ;IAeR,IAAI,WAAW,IAAI,OAAO,CAGzB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;iFAC6E;IAC7E,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa;CAe3D;AAwBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAU9C;AAkFD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAuBxD;AA8JD;;;;;;GAMG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAEhF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CA4ChF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAwBjF;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAqCjG;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,CAkB3E;AAED;mCACmC;AACnC,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAe3E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,aAAa,CAO5F"}
|
package/dist/errors.js
CHANGED
|
@@ -363,6 +363,10 @@ const AUTH_PATTERNS = [
|
|
|
363
363
|
/unrecognizedclient|unauthorizedexception|accessdeniedexception/i,
|
|
364
364
|
/expired[_\s]?token/i,
|
|
365
365
|
/OAuth token has been revoked/i,
|
|
366
|
+
// Cloudflare's code 7003, for an account id that names no account. It
|
|
367
|
+
// arrives as a 404, which on status alone reads as a missing model — but
|
|
368
|
+
// the fix is the credentials, and a model swap would fail the same way.
|
|
369
|
+
/perhaps your object identifier is invalid/i,
|
|
366
370
|
];
|
|
367
371
|
const CONTENT_PATTERNS = [
|
|
368
372
|
/content[_\s]filter/i,
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/jev.d.ts
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { type Attribution } from "./attribution.ts";
|
|
2
|
+
import { type RetryOptions } from "./retry.ts";
|
|
3
|
+
import type { TokenUsage } from "./types.ts";
|
|
4
|
+
export type JevHost = "typesafe" | "openrouter" | "cloudflare" | "vercel";
|
|
5
|
+
/** What a question asks, beyond its options: a sentence, or any JSON the
|
|
6
|
+
* model should read alongside it (a goal, a list of rules). */
|
|
7
|
+
export type JevInstructions = string | Record<string, unknown> | readonly unknown[];
|
|
8
|
+
/** Pick one option. */
|
|
9
|
+
export interface ChoiceQuestion<Option extends string = string> {
|
|
10
|
+
type: "choice";
|
|
11
|
+
instructions?: JevInstructions;
|
|
12
|
+
/** Each option, mapped to what it means — `null` when its name says it all.
|
|
13
|
+
* TypeSafe takes up to 255. */
|
|
14
|
+
criteria: Record<Option, unknown>;
|
|
15
|
+
}
|
|
16
|
+
/** Is this statement true? */
|
|
17
|
+
export interface NoulQuestion {
|
|
18
|
+
type: "noul";
|
|
19
|
+
instructions: JevInstructions;
|
|
20
|
+
/** What yes and what no mean, when the statement alone leaves it open. */
|
|
21
|
+
criteria?: {
|
|
22
|
+
true?: string;
|
|
23
|
+
false?: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** Where on this ordered scale? */
|
|
27
|
+
export interface ScoreQuestion {
|
|
28
|
+
type: "score";
|
|
29
|
+
instructions?: JevInstructions;
|
|
30
|
+
/** The levels, lowest first. TypeSafe takes 2 to 10. */
|
|
31
|
+
criteria: readonly unknown[];
|
|
32
|
+
}
|
|
33
|
+
export type JevQuestion = ChoiceQuestion | NoulQuestion | ScoreQuestion;
|
|
34
|
+
export interface ChoiceAnswer<Option extends string = string> {
|
|
35
|
+
type: "choice";
|
|
36
|
+
choice: Option;
|
|
37
|
+
/** Every offered option's probability. The whole distribution is kept
|
|
38
|
+
* because a caller acting on it needs more than the pick: the runner-up,
|
|
39
|
+
* P(yes) when the pick was no, a joint probability across two questions. */
|
|
40
|
+
probabilities: Record<Option, number>;
|
|
41
|
+
/** How peaked `probabilities` is, 0 to 1 — NOT the probability of the pick.
|
|
42
|
+
* TypeSafe's own example spreads 0.57 / 0.43 and reports 0.35, so reading
|
|
43
|
+
* it as P(pick) would put the pick below the option it beat. Null when the
|
|
44
|
+
* host sent none. */
|
|
45
|
+
confidence: number | null;
|
|
46
|
+
}
|
|
47
|
+
export interface NoulAnswer {
|
|
48
|
+
type: "noul";
|
|
49
|
+
/** The probability that the statement is true. */
|
|
50
|
+
noul: number;
|
|
51
|
+
}
|
|
52
|
+
export interface ScoreAnswer {
|
|
53
|
+
type: "score";
|
|
54
|
+
/** The probability-weighted level, fractional: 1.43 sits between level 1
|
|
55
|
+
* and level 2, nearer 1. */
|
|
56
|
+
score: number;
|
|
57
|
+
/** Each level's probability, keyed by its index as the wire sends it:
|
|
58
|
+
* "0", "1", … */
|
|
59
|
+
probabilities: Record<string, number>;
|
|
60
|
+
confidence: number | null;
|
|
61
|
+
}
|
|
62
|
+
export type JevAnswer = ChoiceAnswer | NoulAnswer | ScoreAnswer;
|
|
63
|
+
/** The answer type a question gets back — a choice's options carry through. */
|
|
64
|
+
export type AnswerTo<Q> = Q extends ChoiceQuestion<infer Option extends string> ? ChoiceAnswer<Option> : Q extends NoulQuestion ? NoulAnswer : Q extends ScoreQuestion ? ScoreAnswer : never;
|
|
65
|
+
export interface JevReply<Q extends Record<string, JevQuestion>> {
|
|
66
|
+
/** One per question — `null` when that answer did not pass the checks in
|
|
67
|
+
* `readAnswer`. Each fails alone: in a fan-out, a malformed answer to a
|
|
68
|
+
* question the caller never acts on must not cost the one it does. */
|
|
69
|
+
answers: {
|
|
70
|
+
[Id in keyof Q]: AnswerTo<Q[Id]> | null;
|
|
71
|
+
};
|
|
72
|
+
usage: TokenUsage;
|
|
73
|
+
/** The model that answered, as the host names it — `jev-1.13.0` on
|
|
74
|
+
* TypeSafe, `typesafe/jev-1.13-20260917` on OpenRouter. */
|
|
75
|
+
model: string;
|
|
76
|
+
}
|
|
77
|
+
export interface JevConfig {
|
|
78
|
+
host: JevHost;
|
|
79
|
+
apiKey: string;
|
|
80
|
+
/** Cloudflare only: the account the Workers AI call runs on. */
|
|
81
|
+
accountId?: string;
|
|
82
|
+
/** Defaults to each host's always-current alias. */
|
|
83
|
+
model?: string;
|
|
84
|
+
/** OpenRouter only: names your app on its rankings. */
|
|
85
|
+
attribution?: Attribution;
|
|
86
|
+
/** One attempt's deadline, in ms. Default 15 s: Jev answers in under a
|
|
87
|
+
* second, so a call still open after this is not coming back. */
|
|
88
|
+
timeoutMs?: number;
|
|
89
|
+
/** Default: three attempts, transient failures only, Retry-After honoured. */
|
|
90
|
+
retry?: Omit<RetryOptions, "signal">;
|
|
91
|
+
/** Swapped in tests, or to route through a proxy. */
|
|
92
|
+
fetchImpl?: typeof fetch;
|
|
93
|
+
}
|
|
94
|
+
export interface JevClient {
|
|
95
|
+
readonly host: JevHost;
|
|
96
|
+
readonly model: string;
|
|
97
|
+
ask<Q extends Record<string, JevQuestion>>(state: unknown, questions: Q, opts?: {
|
|
98
|
+
signal?: AbortSignal;
|
|
99
|
+
}): Promise<JevReply<Q>>;
|
|
100
|
+
/** Proves the key, the account and the model work, with one real question:
|
|
101
|
+
* about 40 input tokens, a few millionths of a dollar. A free read (a
|
|
102
|
+
* model list, a balance) proves only the key — not that this account can
|
|
103
|
+
* run this model — and Vercel has none. Throws the classified failure. */
|
|
104
|
+
checkKey(opts?: {
|
|
105
|
+
signal?: AbortSignal;
|
|
106
|
+
}): Promise<void>;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* One answer, checked against the question that asked it — or null.
|
|
110
|
+
*
|
|
111
|
+
* A Jev answer usually becomes an action (a click, a label, a route), so it is
|
|
112
|
+
* read fail-closed: the right type; for a choice, a pick among the offered
|
|
113
|
+
* options that is also the most likely one in its own full distribution. A
|
|
114
|
+
* distribution is never rebuilt from `confidence`, which measures spread, not
|
|
115
|
+
* the pick.
|
|
116
|
+
*
|
|
117
|
+
* `ask` runs this on every answer. It is exported for the app that has to
|
|
118
|
+
* keep its own request — its own error copy, its own auth refresh — and can
|
|
119
|
+
* still take the checks.
|
|
120
|
+
*/
|
|
121
|
+
export declare function readAnswer<Q extends JevQuestion>(question: Q, raw: unknown): AnswerTo<Q> | null;
|
|
122
|
+
export declare function createJevClient(config: JevConfig): JevClient;
|
|
123
|
+
//# sourceMappingURL=jev.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jev.d.ts","sourceRoot":"","sources":["../src/jev.ts"],"names":[],"mappings":"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"}
|
package/dist/jev.js
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
// Jev — TypeSafe's decision model, on any of the four hosts that serve it.
|
|
2
|
+
// `@providerkit/core/jev`.
|
|
3
|
+
//
|
|
4
|
+
// Jev does not write text. It reads a `state` and answers typed questions —
|
|
5
|
+
// pick one option (choice), is this true (noul), where on this scale (score) —
|
|
6
|
+
// each with the probabilities behind the answer, in well under a second, for
|
|
7
|
+
// $0.042 per million input tokens with output free (TypeSafe's list price,
|
|
8
|
+
// 2026-09-27). That is why it is not a `Provider`: there is no stream and no
|
|
9
|
+
// message, nothing the chat seam could carry without lying about it. It gets
|
|
10
|
+
// its own entry point and borrows the rest of the package — the error
|
|
11
|
+
// envelope, the classifier, retry — so a throttled Jev call behaves exactly
|
|
12
|
+
// like a throttled chat call.
|
|
13
|
+
//
|
|
14
|
+
// The four hosts serve one model and read the same questions. They differ
|
|
15
|
+
// only in the envelope: the URL, the auth headers, how the body is wrapped,
|
|
16
|
+
// and where the answers and the usage sit in the reply. One row per host.
|
|
17
|
+
//
|
|
18
|
+
// Prices stay with the caller, for the reason in usage.ts. OpenRouter reports
|
|
19
|
+
// what each call cost; the caller's `ModelRate` prices the other three.
|
|
20
|
+
import { attributionHeaders } from "./attribution.js";
|
|
21
|
+
import { ProviderError, streamError } from "./errors.js";
|
|
22
|
+
import { openRouterCostUsd } from "./providers/openai.js";
|
|
23
|
+
import { withRetry } from "./retry.js";
|
|
24
|
+
import { postJson } from "./transport.js";
|
|
25
|
+
const DEFAULT_TIMEOUT_MS = 15_000;
|
|
26
|
+
const record = (value) => typeof value === "object" && value !== null && !Array.isArray(value)
|
|
27
|
+
? value
|
|
28
|
+
: undefined;
|
|
29
|
+
const HOSTS = {
|
|
30
|
+
typesafe: {
|
|
31
|
+
model: "jev-latest",
|
|
32
|
+
url: () => "https://api.typesafe.ai/v1/systemone",
|
|
33
|
+
headers: () => ({}),
|
|
34
|
+
body: (model, state, questions) => ({ model, state, questions }),
|
|
35
|
+
unwrap: record,
|
|
36
|
+
},
|
|
37
|
+
openrouter: {
|
|
38
|
+
// Both this alias and the pinned `typesafe/jev-1.13` answered, live,
|
|
39
|
+
// 2026-09-27. OpenRouter also serves `/api/alpha/decisions`; this is the
|
|
40
|
+
// path its Jev guide documents next to it, and the one that answered.
|
|
41
|
+
model: "~typesafe/jev-latest",
|
|
42
|
+
url: () => "https://openrouter.ai/api/v1/systemone",
|
|
43
|
+
headers: (config) => attributionHeaders(config.attribution ?? {}),
|
|
44
|
+
body: (model, state, questions) => ({ model, state, questions }),
|
|
45
|
+
unwrap: record,
|
|
46
|
+
},
|
|
47
|
+
cloudflare: {
|
|
48
|
+
model: "typesafe/jev",
|
|
49
|
+
url: (config) => `https://api.cloudflare.com/client/v4/accounts/${encodeURIComponent(config.accountId ?? "")}/ai/run`,
|
|
50
|
+
headers: () => ({}),
|
|
51
|
+
body: (model, state, questions) => ({ model, input: { state, questions } }),
|
|
52
|
+
// The v4 envelope puts the model's reply under `result`, and a task
|
|
53
|
+
// record can wrap it once more. A task that has not finished carries no
|
|
54
|
+
// answers, so it fails as an unreadable reply without a status check —
|
|
55
|
+
// which is as well, since two sources disagree on that field's name.
|
|
56
|
+
unwrap: (json) => {
|
|
57
|
+
const result = record(record(json)?.result);
|
|
58
|
+
return record(result?.result) ?? result;
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
vercel: {
|
|
62
|
+
model: "typesafe-ai/jev",
|
|
63
|
+
url: () => "https://ai-gateway.vercel.sh/v4/ai/evaluation-model",
|
|
64
|
+
// Without these the gateway answers 400 "Unsupported gateway protocol
|
|
65
|
+
// version" (checked, 2026-09-27). The model rides in a header, not the body.
|
|
66
|
+
headers: (_config, model) => ({
|
|
67
|
+
"ai-gateway-protocol-version": "0.0.1",
|
|
68
|
+
"ai-gateway-auth-method": "api-key",
|
|
69
|
+
"ai-evaluation-model-specification-version": "4",
|
|
70
|
+
"ai-model-id": model,
|
|
71
|
+
}),
|
|
72
|
+
// The gateway's own spelling of noul is `boolean`: its validator lists
|
|
73
|
+
// exactly `choice | score | boolean` (checked, 2026-09-27).
|
|
74
|
+
body: (_model, state, questions) => ({
|
|
75
|
+
state,
|
|
76
|
+
questions: Object.fromEntries(Object.entries(questions).map(([id, q]) => [
|
|
77
|
+
id,
|
|
78
|
+
q.type === "noul" ? { ...q, type: "boolean" } : q,
|
|
79
|
+
])),
|
|
80
|
+
}),
|
|
81
|
+
unwrap: fromVercel,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Vercel's reply, back in TypeSafe's shape: a `boolean` answer carries its
|
|
86
|
+
* probability as `probability`, confidence moves out of the answer into
|
|
87
|
+
* `providerMetadata.typesafe.confidence`, and usage is camelCase.
|
|
88
|
+
*
|
|
89
|
+
* ponytail: read from @jkudish/jev-agent-tools' adapter, not from a recorded
|
|
90
|
+
* reply — no Vercel key has run it here. If a real reply disagrees, this
|
|
91
|
+
* function is the whole fix.
|
|
92
|
+
*/
|
|
93
|
+
function fromVercel(json) {
|
|
94
|
+
const reply = record(json);
|
|
95
|
+
const answers = record(reply?.answers);
|
|
96
|
+
if (!reply || !answers)
|
|
97
|
+
return reply;
|
|
98
|
+
const confidence = record(record(record(reply.providerMetadata)?.typesafe)?.confidence) ?? {};
|
|
99
|
+
const usage = record(reply.usage);
|
|
100
|
+
return {
|
|
101
|
+
model: reply.model,
|
|
102
|
+
answers: Object.fromEntries(Object.entries(answers).map(([id, raw]) => {
|
|
103
|
+
const answer = record(raw);
|
|
104
|
+
if (answer?.type === "boolean")
|
|
105
|
+
return [id, { type: "noul", noul: answer.probability }];
|
|
106
|
+
if (!answer || answer.confidence !== undefined)
|
|
107
|
+
return [id, raw];
|
|
108
|
+
return [id, { ...answer, confidence: confidence[id] }];
|
|
109
|
+
})),
|
|
110
|
+
usage: usage && { input_tokens: usage.inputTokens, output_tokens: usage.outputTokens },
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// ── reading an answer ─────────────────────────────────────────────────────
|
|
114
|
+
const unit = (value) => typeof value === "number" && Number.isFinite(value) && value >= 0 && value <= 1;
|
|
115
|
+
/**
|
|
116
|
+
* Exactly the offered keys, each a probability, summing to one.
|
|
117
|
+
*
|
|
118
|
+
* Jev rounds every probability to two decimals, so each option carrying
|
|
119
|
+
* weight can drift the sum by 0.005: eight live options can honestly sum to
|
|
120
|
+
* 0.98. The tolerance grows with that count, floored at 1% and capped at 5%
|
|
121
|
+
* so garbage still fails.
|
|
122
|
+
*/
|
|
123
|
+
function distribution(value, keys) {
|
|
124
|
+
const given = record(value);
|
|
125
|
+
if (!given || keys.length === 0 || Object.keys(given).length !== keys.length)
|
|
126
|
+
return null;
|
|
127
|
+
const out = {};
|
|
128
|
+
let sum = 0;
|
|
129
|
+
let live = 0;
|
|
130
|
+
for (const key of keys) {
|
|
131
|
+
const p = given[key];
|
|
132
|
+
if (!Object.hasOwn(given, key) || !unit(p))
|
|
133
|
+
return null;
|
|
134
|
+
out[key] = p;
|
|
135
|
+
sum += p;
|
|
136
|
+
if (p > 0)
|
|
137
|
+
live++;
|
|
138
|
+
}
|
|
139
|
+
const tolerance = Math.min(0.05, Math.max(0.01, 0.005 * live)) + 1e-9;
|
|
140
|
+
return Math.abs(sum - 1) <= tolerance ? out : null;
|
|
141
|
+
}
|
|
142
|
+
export function readAnswer(question, raw) {
|
|
143
|
+
const answer = record(raw);
|
|
144
|
+
if (!answer || answer.type !== question.type)
|
|
145
|
+
return null;
|
|
146
|
+
if (question.type === "noul") {
|
|
147
|
+
return unit(answer.noul) ? { type: "noul", noul: answer.noul } : null;
|
|
148
|
+
}
|
|
149
|
+
const confidence = answer.confidence ?? null;
|
|
150
|
+
if (confidence !== null && !unit(confidence))
|
|
151
|
+
return null;
|
|
152
|
+
if (question.type === "choice") {
|
|
153
|
+
const options = Object.keys(question.criteria);
|
|
154
|
+
const probabilities = distribution(answer.probabilities, options);
|
|
155
|
+
const choice = answer.choice;
|
|
156
|
+
if (!probabilities || typeof choice !== "string" || !options.includes(choice))
|
|
157
|
+
return null;
|
|
158
|
+
// 0.001 admits a tie at two decimals; a different winner never passes.
|
|
159
|
+
if ((probabilities[choice] ?? 0) + 0.001 < Math.max(...Object.values(probabilities))) {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
return { type: "choice", choice, probabilities, confidence };
|
|
163
|
+
}
|
|
164
|
+
const levels = question.criteria.map((_, index) => String(index));
|
|
165
|
+
const probabilities = distribution(answer.probabilities, levels);
|
|
166
|
+
const score = answer.score;
|
|
167
|
+
if (!probabilities || typeof score !== "number" || !(score >= 0 && score <= levels.length - 1)) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
return { type: "score", score, probabilities, confidence };
|
|
171
|
+
}
|
|
172
|
+
const count = (value) => typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : 0;
|
|
173
|
+
function usageOf(host, raw) {
|
|
174
|
+
const usage = record(raw) ?? {};
|
|
175
|
+
// Keyed on the host, as in the OpenAI adapter: OpenRouter is who sends the
|
|
176
|
+
// bill, and `cost` is its field in its unit. Another host's `cost` has not
|
|
177
|
+
// said what it means.
|
|
178
|
+
const reportedCostUsd = host === "openrouter"
|
|
179
|
+
? openRouterCostUsd({
|
|
180
|
+
cost: usage.cost,
|
|
181
|
+
is_byok: usage.is_byok === true,
|
|
182
|
+
cost_details: record(usage.cost_details) ?? null,
|
|
183
|
+
})
|
|
184
|
+
: undefined;
|
|
185
|
+
return {
|
|
186
|
+
inputTokens: count(usage.input_tokens),
|
|
187
|
+
cachedInputTokens: 0,
|
|
188
|
+
outputTokens: count(usage.output_tokens),
|
|
189
|
+
...(reportedCostUsd !== undefined ? { reportedCostUsd } : {}),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
// ── the client ────────────────────────────────────────────────────────────
|
|
193
|
+
/** The question `checkKey` asks: the cheapest one whose answer can be checked. */
|
|
194
|
+
const KEY_CHECK = {
|
|
195
|
+
ok: {
|
|
196
|
+
type: "choice",
|
|
197
|
+
instructions: "Does the text say hello?",
|
|
198
|
+
criteria: { YES: null, NO: null },
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
export function createJevClient(config) {
|
|
202
|
+
const row = HOSTS[config.host];
|
|
203
|
+
if (config.host === "cloudflare" && !config.accountId) {
|
|
204
|
+
// Sent anyway, the URL has an empty account and Cloudflare answers 404,
|
|
205
|
+
// which reads as a missing model — the wrong thing to go and fix.
|
|
206
|
+
throw new Error("providerkit: Jev on Cloudflare needs the accountId of the Workers AI account");
|
|
207
|
+
}
|
|
208
|
+
const model = config.model ?? row.model;
|
|
209
|
+
const provider = `jev:${config.host}`;
|
|
210
|
+
const timeoutMs = config.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
211
|
+
async function post(body, signal) {
|
|
212
|
+
const deadline = AbortSignal.timeout(timeoutMs);
|
|
213
|
+
try {
|
|
214
|
+
return await postJson({
|
|
215
|
+
url: row.url(config),
|
|
216
|
+
headers: { Authorization: `Bearer ${config.apiKey}`, ...row.headers(config, model) },
|
|
217
|
+
body,
|
|
218
|
+
provider,
|
|
219
|
+
signal: signal ? AbortSignal.any([signal, deadline]) : deadline,
|
|
220
|
+
fetchImpl: config.fetchImpl,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
// Our deadline is a timeout, and retried; the caller's Stop leaves
|
|
225
|
+
// exactly as it arrived and never is (invariant 2).
|
|
226
|
+
if (deadline.aborted && !signal?.aborted) {
|
|
227
|
+
throw new ProviderError(provider, "timeout", `${provider}: no answer in ${timeoutMs} ms`, {
|
|
228
|
+
cause: err,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
throw err;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
const client = {
|
|
235
|
+
host: config.host,
|
|
236
|
+
model,
|
|
237
|
+
ask(state, questions, opts = {}) {
|
|
238
|
+
const { signal } = opts;
|
|
239
|
+
return withRetry(async () => {
|
|
240
|
+
const json = await post(row.body(model, state, questions), signal);
|
|
241
|
+
const reply = row.unwrap(json);
|
|
242
|
+
const raw = record(reply?.answers);
|
|
243
|
+
if (!reply || !raw) {
|
|
244
|
+
// A failure inside a 200 is still a failure (invariant 11): a
|
|
245
|
+
// body that names one is classified like any other; a body that
|
|
246
|
+
// names nothing is a contract we do not understand, and is not
|
|
247
|
+
// retried into hiding it.
|
|
248
|
+
const payload = record(json);
|
|
249
|
+
const error = payload?.error ?? payload?.errors;
|
|
250
|
+
if (error !== undefined)
|
|
251
|
+
throw streamError(provider, error);
|
|
252
|
+
throw new ProviderError(provider, "unknown", `${provider}: the reply has no answers`, {
|
|
253
|
+
body: (JSON.stringify(json) ?? "").slice(0, 2_000),
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
const answers = {};
|
|
257
|
+
for (const [id, question] of Object.entries(questions)) {
|
|
258
|
+
answers[id] = readAnswer(question, raw[id]);
|
|
259
|
+
}
|
|
260
|
+
return {
|
|
261
|
+
// Sound: `readAnswer` returns each answer in its own question's
|
|
262
|
+
// type, with a choice limited to that question's options.
|
|
263
|
+
answers: answers,
|
|
264
|
+
usage: usageOf(config.host, reply.usage),
|
|
265
|
+
model: typeof reply.model === "string" && reply.model ? reply.model : model,
|
|
266
|
+
};
|
|
267
|
+
}, { ...config.retry, signal });
|
|
268
|
+
},
|
|
269
|
+
async checkKey(opts) {
|
|
270
|
+
const reply = await client.ask("hello", KEY_CHECK, opts);
|
|
271
|
+
if (!reply.answers.ok) {
|
|
272
|
+
throw new ProviderError(provider, "unknown", `${provider}: the key works, but the answer failed its checks`);
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
};
|
|
276
|
+
return client;
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=jev.js.map
|
package/dist/jev.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jev.js","sourceRoot":"","sources":["../src/jev.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,5 +127,30 @@ export declare function effortParams(dialect: EffortDialect, effort: Effort | un
|
|
|
127
127
|
* first (`stripReasoning`); the two cannot be mixed.
|
|
128
128
|
*/
|
|
129
129
|
export declare function toOpenAIMessages(messages: readonly ChatMessage[], provider?: string): unknown[];
|
|
130
|
+
/**
|
|
131
|
+
* What an OpenRouter call cost, in USD, or undefined when it did not say.
|
|
132
|
+
*
|
|
133
|
+
* Nothing has to ask for it. OpenRouter's usage-accounting docs (read
|
|
134
|
+
* 2026-09-26) say every response now carries the full usage record, cost
|
|
135
|
+
* included, on the last frame of a stream, and that `usage: { include: true }`
|
|
136
|
+
* is deprecated and does nothing. Measured the same day: a streamed call and a
|
|
137
|
+
* plain one, neither sending the flag, both came back with `usage.cost`, the
|
|
138
|
+
* stream on its last frame. So the request does not send it.
|
|
139
|
+
*
|
|
140
|
+
* With the caller's own provider key (BYOK), `cost` is only OpenRouter's fee.
|
|
141
|
+
* The inference is billed to the caller's provider account and arrives as
|
|
142
|
+
* `cost_details.upstream_inference_cost`, so the call cost the two together.
|
|
143
|
+
* Without that second figure there is no whole bill to report, and the
|
|
144
|
+
* caller's rate prices the call instead.
|
|
145
|
+
*
|
|
146
|
+
* Exported for the other OpenRouter wire that bills the same way: Jev's.
|
|
147
|
+
*/
|
|
148
|
+
export declare function openRouterCostUsd(usage: {
|
|
149
|
+
cost?: unknown;
|
|
150
|
+
is_byok?: boolean;
|
|
151
|
+
cost_details?: {
|
|
152
|
+
upstream_inference_cost?: unknown;
|
|
153
|
+
} | null;
|
|
154
|
+
}): number | undefined;
|
|
130
155
|
export declare function createOpenAIProvider(config: OpenAIConfig): Provider;
|
|
131
156
|
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,WAAW,EAEX,MAAM,EAEN,aAAa,EACb,QAAQ,EAIT,MAAM,aAAa,CAAC;AAGrB,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,MAAM,WAAW,YAAa,SAAQ,sBAAsB;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;+CAE2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;iFAC6E;IAC7E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAuCD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpF;AAED;4EAC4E;AAC5E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AA4CzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoCzB;AAmCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,EAAE,QAAQ,SAAW,GAAG,OAAO,EAAE,CAyDjG;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,WAAW,EAEX,MAAM,EAEN,aAAa,EACb,QAAQ,EAIT,MAAM,aAAa,CAAC;AAGrB,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,MAAM,WAAW,YAAa,SAAQ,sBAAsB;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;+CAE2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;iFAC6E;IAC7E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAuCD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpF;AAED;4EAC4E;AAC5E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AA4CzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoCzB;AAmCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,EAAE,QAAQ,SAAW,GAAG,OAAO,EAAE,CAyDjG;AA2CD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE;QAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC7D,GAAG,MAAM,GAAG,SAAS,CAKrB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAsNnE"}
|
package/dist/providers/openai.js
CHANGED
|
@@ -287,8 +287,10 @@ function price(value) {
|
|
|
287
287
|
* `cost_details.upstream_inference_cost`, so the call cost the two together.
|
|
288
288
|
* Without that second figure there is no whole bill to report, and the
|
|
289
289
|
* caller's rate prices the call instead.
|
|
290
|
+
*
|
|
291
|
+
* Exported for the other OpenRouter wire that bills the same way: Jev's.
|
|
290
292
|
*/
|
|
291
|
-
function openRouterCostUsd(usage) {
|
|
293
|
+
export function openRouterCostUsd(usage) {
|
|
292
294
|
const cost = price(usage.cost);
|
|
293
295
|
if (cost === undefined || usage.is_byok !== true)
|
|
294
296
|
return cost;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,yEAAyE;AACzE,+EAA+E;AAC/E,2DAA2D;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAYvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAA+B,MAAM,gBAAgB,CAAC;AAmFtF,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAElD;;;;GAIG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,kBAAkB;IAC1B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,MAAM;CACZ,CAAC;AAEF,SAAS,YAAY,CAAC,OAAe;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,KAAa;IAC9D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,eAAe,GAAoD,IAAI,GAAG,CAAC;IAC/E,CAAC,oBAAoB,EAAE,KAAK,CAAC;IAC7B,CAAC,mBAAmB,EAAE,SAAS,CAAC;IAChC,CAAC,wBAAwB,EAAE,MAAM,CAAC;CACnC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAsB,EACtB,MAA0B,EAC1B,KAAc;IAEd,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,UAAU;YACb,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;YAC9D,yEAAyE;YACzE,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,yCAAyC;YACzC,OAAO,KAAK,KAAK,MAAM;gBACrB,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;gBACnC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;QACjE,KAAK,YAAY;YACf,wEAAwE;YACxE,yEAAyE;YACzE,wEAAwE;YACxE,uEAAuE;YACvE,0EAA0E;YAC1E,sEAAsE;YACtE,yEAAyE;YACzE,UAAU;YACV,EAAE;YACF,wEAAwE;YACxE,sEAAsE;YACtE,8DAA8D;YAC9D,IAAI,MAAM,KAAK,MAAM;gBAAE,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;YACxD,OAAO,KAAK,KAAK,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;gBACtD,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;gBACvD,CAAC,CAAC,EAAE,CAAC;QACT,KAAK,QAAQ;YACX,OAAO,EAAE,gBAAgB,EAAE,KAAK,IAAI,MAAM,EAAE,CAAC;QAC/C,KAAK,KAAK;YACR,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;6CAC6C;AAC7C,SAAS,UAAU,CAAC,EAAU;IAC5B,IAAI,EAAE,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAC7C,IAAI,EAAE,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IACzC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,MAAiC;IACxD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,YAAY,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO,YAAY,CAAC;QACtB,KAAK,gBAAgB;YACnB,OAAO,gBAAgB,CAAC;QAC1B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAA+B,EAAE,QAAgB;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgC,EAAE,QAAQ,GAAG,QAAQ;IACpF,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvD,MAAM;YAER,KAAK,MAAM;gBACT,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC9E,MAAM;YAER,KAAK,MAAM;gBACT,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvF,yEAAyE;gBACzE,kEAAkE;gBAClE,wEAAwE;gBACxE,mEAAmE;gBACnE,0CAA0C;gBAC1C,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;oBAC3B,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACtC,IAAI,EAAE,WAAW;4BACjB,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE;yBACrC,CAAC,CAAC;qBACJ,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YAER,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,SAAS,GAA4B;oBACzC,IAAI,EAAE,WAAW;oBACjB,qEAAqE;oBACrE,2DAA2D;oBAC3D,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;iBAC/B,CAAC;gBACF,IAAI,OAAO,CAAC,SAAS;oBAAE,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;gBACvE,yEAAyE;gBACzE,oEAAoE;gBACpE,2BAA2B;gBAC3B,IAAI,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;oBACrC,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBACzD,CAAC;gBACD,IAAI,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;oBAC9B,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACtD,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;qBACzD,CAAC,CAAC,CAAC;gBACN,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAoCD;;+DAE+D;AAC/D,SAAS,KAAK,CAAC,KAAc;IAC3B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/F,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,iBAAiB,CAAC,KAAwC;IACjE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;IACpE,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAoB;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACnD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC;IACjC,qEAAqE;IACrE,sEAAsE;IACtE,qCAAqC;IACrC,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAa;QACzB,EAAE;QACF,KAAK,EAAE,MAAM,CAAC,KAAK;QAEnB,KAAK,CAAC,CAAC,YAAY,CACjB,QAAuB,EACvB,KAAuB,EACvB,OAAsB,EAAE;YAExB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;YAEzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,OAAO,GAA4B;gBACvC,KAAK;gBACL,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,mEAAmE;gBACnE,6CAA6C;gBAC7C,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;aACxC,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;YACrD,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5D,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;YACvD,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM;gBAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,aAAa,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5F,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,UAAU,EAAE,IAAI,CAAC,WAAW;qBAC7B;iBACF,CAAC,CAAC,CAAC;YACN,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBAClD,OAAO,CAAC,WAAW;oBACjB,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;wBACjC,CAAC,CAAC,IAAI,CAAC,UAAU;wBACjB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACvE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,qEAAqE;gBACrE,qEAAqE;gBACrE,sEAAsE;gBACtE,uEAAuE;gBACvE,wEAAwE;gBACxE,iEAAiE;gBACjE,MAAM,aAAa,GACjB,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC;gBAChF,MAAM,QAAQ,GACZ,CAAC,aAAa;oBACd,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAAC;gBAC5E,kEAAkE;gBAClE,sEAAsE;gBACtE,kEAAkE;gBAClE,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO,CAAC,eAAe,GAAG,QAAQ;wBAChC,CAAC,CAAC;4BACE,IAAI,EAAE,aAAa;4BACnB,WAAW,EAAE;gCACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gCACpB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gCACxB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;6BAC7D;yBACF;wBACH,CAAC,CAAC,8DAA8D;4BAC9D,gEAAgE;4BAChE,iEAAiE;4BACjE,kEAAkE;4BAClE,qEAAqE;4BACrE,qDAAqD;4BACrD,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,mEAAmE;oBACnE,6DAA6D;oBAC7D,sEAAsE;oBACtE,qEAAqE;oBACrE,sEAAsE;oBACtE,kEAAkE;oBAClE,sEAAsE;oBACtE,UAAU;oBACV,EAAE;oBACF,kEAAkE;oBAClE,qEAAqE;oBACrE,qEAAqE;oBACrE,sBAAsB;oBACtB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,EAAE,MAAM;gBAC3C,CAAC,CAAC,MAAM,CAAC,aAAa;gBACtB,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK;oBACxB,CAAC,CAAC,CAAC,GAAG,EAAE;wBACJ,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBACjD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACvC,CAAC,CAAC,EAAE;oBACN,CAAC,CAAC,SAAS,CAAC;YAEhB,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACrB,OAAO,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;YAChE,CAAC;YAED,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACnE,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,sBAAsB,CAAC;YAE3B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,SAAS,CAAC;gBACjC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;gBAChD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;oBACxC,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;oBAC7C,GAAG,MAAM,CAAC,OAAO;iBAClB;gBACD,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,EAAE;gBACZ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7D,CAAC,EAAE,CAAC;gBACH,IAAI,KAAkB,CAAC;gBACvB,IAAI,CAAC;oBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBAED,gEAAgE;gBAChE,mEAAmE;gBACnE,kEAAkE;gBAClE,oEAAoE;gBACpE,sEAAsE;gBACtE,wCAAwC;gBACxC,IAAI,KAAK,CAAC,KAAK;oBAAE,MAAM,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAEpD,oEAAoE;gBACpE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;oBAC7C,qEAAqE;oBACrE,sEAAsE;oBACtE,qEAAqE;oBACrE,qEAAqE;oBACrE,MAAM,MAAM,GACV,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,aAAa;wBAChD,KAAK,CAAC,KAAK,CAAC,uBAAuB;wBACnC,CAAC,CAAC;oBACJ,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACjF,MAAM;wBACJ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,WAAW,EAAE,KAAK;4BAClB,2DAA2D;4BAC3D,0DAA0D;4BAC1D,iBAAiB,EAAE,MAAM;4BACzB,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC;4BAChD,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC9D;qBACF,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAEtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC3B,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,GAAG,GAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oBAC7C,IAAI,GAAG,GAAG,KAAK,CAAC;oBAChB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBAClB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;wBAC5B,GAAG,GAAG,IAAI,CAAC;oBACb,CAAC;oBACD,0DAA0D;oBAC1D,oEAAoE;oBACpE,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,SAAS,CAAC;oBAC7D,IAAI,SAAS,EAAE,CAAC;wBACd,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;wBAC1B,GAAG,GAAG,IAAI,CAAC;oBACb,CAAC;oBACD,IAAI,KAAK,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;wBACpC,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,CAAC;wBAC/C,GAAG,GAAG,IAAI,CAAC;oBACb,CAAC;oBACD,IAAI,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;wBAC7B,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;4BACxD,4DAA4D;4BAC5D,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ;4BAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACnC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC5D,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS;gCACxC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;gCACxC,CAAC,CAAC,EAAE,CAAC;yBACR,CAAC,CAAC,CAAC;wBACJ,GAAG,GAAG,IAAI,CAAC;oBACb,CAAC;oBACD,IAAI,GAAG;wBAAE,MAAM,GAAG,CAAC;gBACrB,CAAC;gBAED,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC3D,IAAI,YAAY;oBAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;YAC3D,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@providerkit/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "The layer under your agent loop: one seam for every LLM provider, plus the failure handling you only learn in production.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
"./zod": {
|
|
14
14
|
"types": "./dist/zod.d.ts",
|
|
15
15
|
"default": "./dist/zod.js"
|
|
16
|
+
},
|
|
17
|
+
"./jev": {
|
|
18
|
+
"types": "./dist/jev.d.ts",
|
|
19
|
+
"default": "./dist/jev.js"
|
|
16
20
|
}
|
|
17
21
|
},
|
|
18
22
|
"types": "./dist/index.d.ts",
|
package/src/errors.ts
CHANGED
|
@@ -418,6 +418,10 @@ const AUTH_PATTERNS: readonly RegExp[] = [
|
|
|
418
418
|
/unrecognizedclient|unauthorizedexception|accessdeniedexception/i,
|
|
419
419
|
/expired[_\s]?token/i,
|
|
420
420
|
/OAuth token has been revoked/i,
|
|
421
|
+
// Cloudflare's code 7003, for an account id that names no account. It
|
|
422
|
+
// arrives as a 404, which on status alone reads as a missing model — but
|
|
423
|
+
// the fix is the credentials, and a model swap would fail the same way.
|
|
424
|
+
/perhaps your object identifier is invalid/i,
|
|
421
425
|
];
|
|
422
426
|
|
|
423
427
|
const CONTENT_PATTERNS: readonly RegExp[] = [
|
package/src/jev.ts
ADDED
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
// Jev — TypeSafe's decision model, on any of the four hosts that serve it.
|
|
2
|
+
// `@providerkit/core/jev`.
|
|
3
|
+
//
|
|
4
|
+
// Jev does not write text. It reads a `state` and answers typed questions —
|
|
5
|
+
// pick one option (choice), is this true (noul), where on this scale (score) —
|
|
6
|
+
// each with the probabilities behind the answer, in well under a second, for
|
|
7
|
+
// $0.042 per million input tokens with output free (TypeSafe's list price,
|
|
8
|
+
// 2026-09-27). That is why it is not a `Provider`: there is no stream and no
|
|
9
|
+
// message, nothing the chat seam could carry without lying about it. It gets
|
|
10
|
+
// its own entry point and borrows the rest of the package — the error
|
|
11
|
+
// envelope, the classifier, retry — so a throttled Jev call behaves exactly
|
|
12
|
+
// like a throttled chat call.
|
|
13
|
+
//
|
|
14
|
+
// The four hosts serve one model and read the same questions. They differ
|
|
15
|
+
// only in the envelope: the URL, the auth headers, how the body is wrapped,
|
|
16
|
+
// and where the answers and the usage sit in the reply. One row per host.
|
|
17
|
+
//
|
|
18
|
+
// Prices stay with the caller, for the reason in usage.ts. OpenRouter reports
|
|
19
|
+
// what each call cost; the caller's `ModelRate` prices the other three.
|
|
20
|
+
import { attributionHeaders, type Attribution } from "./attribution.ts";
|
|
21
|
+
import { ProviderError, streamError } from "./errors.ts";
|
|
22
|
+
import { openRouterCostUsd } from "./providers/openai.ts";
|
|
23
|
+
import { withRetry, type RetryOptions } from "./retry.ts";
|
|
24
|
+
import { postJson } from "./transport.ts";
|
|
25
|
+
import type { TokenUsage } from "./types.ts";
|
|
26
|
+
|
|
27
|
+
export type JevHost = "typesafe" | "openrouter" | "cloudflare" | "vercel";
|
|
28
|
+
|
|
29
|
+
/** What a question asks, beyond its options: a sentence, or any JSON the
|
|
30
|
+
* model should read alongside it (a goal, a list of rules). */
|
|
31
|
+
export type JevInstructions = string | Record<string, unknown> | readonly unknown[];
|
|
32
|
+
|
|
33
|
+
/** Pick one option. */
|
|
34
|
+
export interface ChoiceQuestion<Option extends string = string> {
|
|
35
|
+
type: "choice";
|
|
36
|
+
instructions?: JevInstructions;
|
|
37
|
+
/** Each option, mapped to what it means — `null` when its name says it all.
|
|
38
|
+
* TypeSafe takes up to 255. */
|
|
39
|
+
criteria: Record<Option, unknown>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** Is this statement true? */
|
|
43
|
+
export interface NoulQuestion {
|
|
44
|
+
type: "noul";
|
|
45
|
+
instructions: JevInstructions;
|
|
46
|
+
/** What yes and what no mean, when the statement alone leaves it open. */
|
|
47
|
+
criteria?: { true?: string; false?: string };
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Where on this ordered scale? */
|
|
51
|
+
export interface ScoreQuestion {
|
|
52
|
+
type: "score";
|
|
53
|
+
instructions?: JevInstructions;
|
|
54
|
+
/** The levels, lowest first. TypeSafe takes 2 to 10. */
|
|
55
|
+
criteria: readonly unknown[];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export type JevQuestion = ChoiceQuestion | NoulQuestion | ScoreQuestion;
|
|
59
|
+
|
|
60
|
+
export interface ChoiceAnswer<Option extends string = string> {
|
|
61
|
+
type: "choice";
|
|
62
|
+
choice: Option;
|
|
63
|
+
/** Every offered option's probability. The whole distribution is kept
|
|
64
|
+
* because a caller acting on it needs more than the pick: the runner-up,
|
|
65
|
+
* P(yes) when the pick was no, a joint probability across two questions. */
|
|
66
|
+
probabilities: Record<Option, number>;
|
|
67
|
+
/** How peaked `probabilities` is, 0 to 1 — NOT the probability of the pick.
|
|
68
|
+
* TypeSafe's own example spreads 0.57 / 0.43 and reports 0.35, so reading
|
|
69
|
+
* it as P(pick) would put the pick below the option it beat. Null when the
|
|
70
|
+
* host sent none. */
|
|
71
|
+
confidence: number | null;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface NoulAnswer {
|
|
75
|
+
type: "noul";
|
|
76
|
+
/** The probability that the statement is true. */
|
|
77
|
+
noul: number;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface ScoreAnswer {
|
|
81
|
+
type: "score";
|
|
82
|
+
/** The probability-weighted level, fractional: 1.43 sits between level 1
|
|
83
|
+
* and level 2, nearer 1. */
|
|
84
|
+
score: number;
|
|
85
|
+
/** Each level's probability, keyed by its index as the wire sends it:
|
|
86
|
+
* "0", "1", … */
|
|
87
|
+
probabilities: Record<string, number>;
|
|
88
|
+
confidence: number | null;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export type JevAnswer = ChoiceAnswer | NoulAnswer | ScoreAnswer;
|
|
92
|
+
|
|
93
|
+
/** The answer type a question gets back — a choice's options carry through. */
|
|
94
|
+
export type AnswerTo<Q> =
|
|
95
|
+
Q extends ChoiceQuestion<infer Option extends string>
|
|
96
|
+
? ChoiceAnswer<Option>
|
|
97
|
+
: Q extends NoulQuestion
|
|
98
|
+
? NoulAnswer
|
|
99
|
+
: Q extends ScoreQuestion
|
|
100
|
+
? ScoreAnswer
|
|
101
|
+
: never;
|
|
102
|
+
|
|
103
|
+
export interface JevReply<Q extends Record<string, JevQuestion>> {
|
|
104
|
+
/** One per question — `null` when that answer did not pass the checks in
|
|
105
|
+
* `readAnswer`. Each fails alone: in a fan-out, a malformed answer to a
|
|
106
|
+
* question the caller never acts on must not cost the one it does. */
|
|
107
|
+
answers: { [Id in keyof Q]: AnswerTo<Q[Id]> | null };
|
|
108
|
+
usage: TokenUsage;
|
|
109
|
+
/** The model that answered, as the host names it — `jev-1.13.0` on
|
|
110
|
+
* TypeSafe, `typesafe/jev-1.13-20260917` on OpenRouter. */
|
|
111
|
+
model: string;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export interface JevConfig {
|
|
115
|
+
host: JevHost;
|
|
116
|
+
apiKey: string;
|
|
117
|
+
/** Cloudflare only: the account the Workers AI call runs on. */
|
|
118
|
+
accountId?: string;
|
|
119
|
+
/** Defaults to each host's always-current alias. */
|
|
120
|
+
model?: string;
|
|
121
|
+
/** OpenRouter only: names your app on its rankings. */
|
|
122
|
+
attribution?: Attribution;
|
|
123
|
+
/** One attempt's deadline, in ms. Default 15 s: Jev answers in under a
|
|
124
|
+
* second, so a call still open after this is not coming back. */
|
|
125
|
+
timeoutMs?: number;
|
|
126
|
+
/** Default: three attempts, transient failures only, Retry-After honoured. */
|
|
127
|
+
retry?: Omit<RetryOptions, "signal">;
|
|
128
|
+
/** Swapped in tests, or to route through a proxy. */
|
|
129
|
+
fetchImpl?: typeof fetch;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export interface JevClient {
|
|
133
|
+
readonly host: JevHost;
|
|
134
|
+
readonly model: string;
|
|
135
|
+
ask<Q extends Record<string, JevQuestion>>(
|
|
136
|
+
state: unknown,
|
|
137
|
+
questions: Q,
|
|
138
|
+
opts?: { signal?: AbortSignal },
|
|
139
|
+
): Promise<JevReply<Q>>;
|
|
140
|
+
/** Proves the key, the account and the model work, with one real question:
|
|
141
|
+
* about 40 input tokens, a few millionths of a dollar. A free read (a
|
|
142
|
+
* model list, a balance) proves only the key — not that this account can
|
|
143
|
+
* run this model — and Vercel has none. Throws the classified failure. */
|
|
144
|
+
checkKey(opts?: { signal?: AbortSignal }): Promise<void>;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const DEFAULT_TIMEOUT_MS = 15_000;
|
|
148
|
+
|
|
149
|
+
const record = (value: unknown): Record<string, unknown> | undefined =>
|
|
150
|
+
typeof value === "object" && value !== null && !Array.isArray(value)
|
|
151
|
+
? (value as Record<string, unknown>)
|
|
152
|
+
: undefined;
|
|
153
|
+
|
|
154
|
+
// ── the four envelopes ────────────────────────────────────────────────────
|
|
155
|
+
|
|
156
|
+
interface HostRow {
|
|
157
|
+
model: string;
|
|
158
|
+
url(config: JevConfig): string;
|
|
159
|
+
headers(config: JevConfig, model: string): Record<string, string>;
|
|
160
|
+
body(model: string, state: unknown, questions: Record<string, JevQuestion>): unknown;
|
|
161
|
+
/** The reply in TypeSafe's own shape — `{ model, answers, usage }` —
|
|
162
|
+
* whatever the host wrapped it in. */
|
|
163
|
+
unwrap(json: unknown): Record<string, unknown> | undefined;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
const HOSTS: Record<JevHost, HostRow> = {
|
|
167
|
+
typesafe: {
|
|
168
|
+
model: "jev-latest",
|
|
169
|
+
url: () => "https://api.typesafe.ai/v1/systemone",
|
|
170
|
+
headers: () => ({}),
|
|
171
|
+
body: (model, state, questions) => ({ model, state, questions }),
|
|
172
|
+
unwrap: record,
|
|
173
|
+
},
|
|
174
|
+
openrouter: {
|
|
175
|
+
// Both this alias and the pinned `typesafe/jev-1.13` answered, live,
|
|
176
|
+
// 2026-09-27. OpenRouter also serves `/api/alpha/decisions`; this is the
|
|
177
|
+
// path its Jev guide documents next to it, and the one that answered.
|
|
178
|
+
model: "~typesafe/jev-latest",
|
|
179
|
+
url: () => "https://openrouter.ai/api/v1/systemone",
|
|
180
|
+
headers: (config) => attributionHeaders(config.attribution ?? {}),
|
|
181
|
+
body: (model, state, questions) => ({ model, state, questions }),
|
|
182
|
+
unwrap: record,
|
|
183
|
+
},
|
|
184
|
+
cloudflare: {
|
|
185
|
+
model: "typesafe/jev",
|
|
186
|
+
url: (config) =>
|
|
187
|
+
`https://api.cloudflare.com/client/v4/accounts/${encodeURIComponent(config.accountId ?? "")}/ai/run`,
|
|
188
|
+
headers: () => ({}),
|
|
189
|
+
body: (model, state, questions) => ({ model, input: { state, questions } }),
|
|
190
|
+
// The v4 envelope puts the model's reply under `result`, and a task
|
|
191
|
+
// record can wrap it once more. A task that has not finished carries no
|
|
192
|
+
// answers, so it fails as an unreadable reply without a status check —
|
|
193
|
+
// which is as well, since two sources disagree on that field's name.
|
|
194
|
+
unwrap: (json) => {
|
|
195
|
+
const result = record(record(json)?.result);
|
|
196
|
+
return record(result?.result) ?? result;
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
vercel: {
|
|
200
|
+
model: "typesafe-ai/jev",
|
|
201
|
+
url: () => "https://ai-gateway.vercel.sh/v4/ai/evaluation-model",
|
|
202
|
+
// Without these the gateway answers 400 "Unsupported gateway protocol
|
|
203
|
+
// version" (checked, 2026-09-27). The model rides in a header, not the body.
|
|
204
|
+
headers: (_config, model) => ({
|
|
205
|
+
"ai-gateway-protocol-version": "0.0.1",
|
|
206
|
+
"ai-gateway-auth-method": "api-key",
|
|
207
|
+
"ai-evaluation-model-specification-version": "4",
|
|
208
|
+
"ai-model-id": model,
|
|
209
|
+
}),
|
|
210
|
+
// The gateway's own spelling of noul is `boolean`: its validator lists
|
|
211
|
+
// exactly `choice | score | boolean` (checked, 2026-09-27).
|
|
212
|
+
body: (_model, state, questions) => ({
|
|
213
|
+
state,
|
|
214
|
+
questions: Object.fromEntries(
|
|
215
|
+
Object.entries(questions).map(([id, q]) => [
|
|
216
|
+
id,
|
|
217
|
+
q.type === "noul" ? { ...q, type: "boolean" } : q,
|
|
218
|
+
]),
|
|
219
|
+
),
|
|
220
|
+
}),
|
|
221
|
+
unwrap: fromVercel,
|
|
222
|
+
},
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Vercel's reply, back in TypeSafe's shape: a `boolean` answer carries its
|
|
227
|
+
* probability as `probability`, confidence moves out of the answer into
|
|
228
|
+
* `providerMetadata.typesafe.confidence`, and usage is camelCase.
|
|
229
|
+
*
|
|
230
|
+
* ponytail: read from @jkudish/jev-agent-tools' adapter, not from a recorded
|
|
231
|
+
* reply — no Vercel key has run it here. If a real reply disagrees, this
|
|
232
|
+
* function is the whole fix.
|
|
233
|
+
*/
|
|
234
|
+
function fromVercel(json: unknown): Record<string, unknown> | undefined {
|
|
235
|
+
const reply = record(json);
|
|
236
|
+
const answers = record(reply?.answers);
|
|
237
|
+
if (!reply || !answers) return reply;
|
|
238
|
+
const confidence = record(record(record(reply.providerMetadata)?.typesafe)?.confidence) ?? {};
|
|
239
|
+
const usage = record(reply.usage);
|
|
240
|
+
return {
|
|
241
|
+
model: reply.model,
|
|
242
|
+
answers: Object.fromEntries(
|
|
243
|
+
Object.entries(answers).map(([id, raw]) => {
|
|
244
|
+
const answer = record(raw);
|
|
245
|
+
if (answer?.type === "boolean") return [id, { type: "noul", noul: answer.probability }];
|
|
246
|
+
if (!answer || answer.confidence !== undefined) return [id, raw];
|
|
247
|
+
return [id, { ...answer, confidence: confidence[id] }];
|
|
248
|
+
}),
|
|
249
|
+
),
|
|
250
|
+
usage: usage && { input_tokens: usage.inputTokens, output_tokens: usage.outputTokens },
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// ── reading an answer ─────────────────────────────────────────────────────
|
|
255
|
+
|
|
256
|
+
const unit = (value: unknown): value is number =>
|
|
257
|
+
typeof value === "number" && Number.isFinite(value) && value >= 0 && value <= 1;
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Exactly the offered keys, each a probability, summing to one.
|
|
261
|
+
*
|
|
262
|
+
* Jev rounds every probability to two decimals, so each option carrying
|
|
263
|
+
* weight can drift the sum by 0.005: eight live options can honestly sum to
|
|
264
|
+
* 0.98. The tolerance grows with that count, floored at 1% and capped at 5%
|
|
265
|
+
* so garbage still fails.
|
|
266
|
+
*/
|
|
267
|
+
function distribution(value: unknown, keys: readonly string[]): Record<string, number> | null {
|
|
268
|
+
const given = record(value);
|
|
269
|
+
if (!given || keys.length === 0 || Object.keys(given).length !== keys.length) return null;
|
|
270
|
+
const out: Record<string, number> = {};
|
|
271
|
+
let sum = 0;
|
|
272
|
+
let live = 0;
|
|
273
|
+
for (const key of keys) {
|
|
274
|
+
const p = given[key];
|
|
275
|
+
if (!Object.hasOwn(given, key) || !unit(p)) return null;
|
|
276
|
+
out[key] = p;
|
|
277
|
+
sum += p;
|
|
278
|
+
if (p > 0) live++;
|
|
279
|
+
}
|
|
280
|
+
const tolerance = Math.min(0.05, Math.max(0.01, 0.005 * live)) + 1e-9;
|
|
281
|
+
return Math.abs(sum - 1) <= tolerance ? out : null;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* One answer, checked against the question that asked it — or null.
|
|
286
|
+
*
|
|
287
|
+
* A Jev answer usually becomes an action (a click, a label, a route), so it is
|
|
288
|
+
* read fail-closed: the right type; for a choice, a pick among the offered
|
|
289
|
+
* options that is also the most likely one in its own full distribution. A
|
|
290
|
+
* distribution is never rebuilt from `confidence`, which measures spread, not
|
|
291
|
+
* the pick.
|
|
292
|
+
*
|
|
293
|
+
* `ask` runs this on every answer. It is exported for the app that has to
|
|
294
|
+
* keep its own request — its own error copy, its own auth refresh — and can
|
|
295
|
+
* still take the checks.
|
|
296
|
+
*/
|
|
297
|
+
export function readAnswer<Q extends JevQuestion>(question: Q, raw: unknown): AnswerTo<Q> | null;
|
|
298
|
+
export function readAnswer(question: JevQuestion, raw: unknown): JevAnswer | null {
|
|
299
|
+
const answer = record(raw);
|
|
300
|
+
if (!answer || answer.type !== question.type) return null;
|
|
301
|
+
if (question.type === "noul") {
|
|
302
|
+
return unit(answer.noul) ? { type: "noul", noul: answer.noul } : null;
|
|
303
|
+
}
|
|
304
|
+
const confidence = answer.confidence ?? null;
|
|
305
|
+
if (confidence !== null && !unit(confidence)) return null;
|
|
306
|
+
if (question.type === "choice") {
|
|
307
|
+
const options = Object.keys(question.criteria);
|
|
308
|
+
const probabilities = distribution(answer.probabilities, options);
|
|
309
|
+
const choice = answer.choice;
|
|
310
|
+
if (!probabilities || typeof choice !== "string" || !options.includes(choice)) return null;
|
|
311
|
+
// 0.001 admits a tie at two decimals; a different winner never passes.
|
|
312
|
+
if ((probabilities[choice] ?? 0) + 0.001 < Math.max(...Object.values(probabilities))) {
|
|
313
|
+
return null;
|
|
314
|
+
}
|
|
315
|
+
return { type: "choice", choice, probabilities, confidence };
|
|
316
|
+
}
|
|
317
|
+
const levels = question.criteria.map((_, index) => String(index));
|
|
318
|
+
const probabilities = distribution(answer.probabilities, levels);
|
|
319
|
+
const score = answer.score;
|
|
320
|
+
if (!probabilities || typeof score !== "number" || !(score >= 0 && score <= levels.length - 1)) {
|
|
321
|
+
return null;
|
|
322
|
+
}
|
|
323
|
+
return { type: "score", score, probabilities, confidence };
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
const count = (value: unknown): number =>
|
|
327
|
+
typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : 0;
|
|
328
|
+
|
|
329
|
+
function usageOf(host: JevHost, raw: unknown): TokenUsage {
|
|
330
|
+
const usage = record(raw) ?? {};
|
|
331
|
+
// Keyed on the host, as in the OpenAI adapter: OpenRouter is who sends the
|
|
332
|
+
// bill, and `cost` is its field in its unit. Another host's `cost` has not
|
|
333
|
+
// said what it means.
|
|
334
|
+
const reportedCostUsd =
|
|
335
|
+
host === "openrouter"
|
|
336
|
+
? openRouterCostUsd({
|
|
337
|
+
cost: usage.cost,
|
|
338
|
+
is_byok: usage.is_byok === true,
|
|
339
|
+
cost_details: record(usage.cost_details) ?? null,
|
|
340
|
+
})
|
|
341
|
+
: undefined;
|
|
342
|
+
return {
|
|
343
|
+
inputTokens: count(usage.input_tokens),
|
|
344
|
+
cachedInputTokens: 0,
|
|
345
|
+
outputTokens: count(usage.output_tokens),
|
|
346
|
+
...(reportedCostUsd !== undefined ? { reportedCostUsd } : {}),
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
// ── the client ────────────────────────────────────────────────────────────
|
|
351
|
+
|
|
352
|
+
/** The question `checkKey` asks: the cheapest one whose answer can be checked. */
|
|
353
|
+
const KEY_CHECK = {
|
|
354
|
+
ok: {
|
|
355
|
+
type: "choice",
|
|
356
|
+
instructions: "Does the text say hello?",
|
|
357
|
+
criteria: { YES: null, NO: null },
|
|
358
|
+
},
|
|
359
|
+
} satisfies Record<string, JevQuestion>;
|
|
360
|
+
|
|
361
|
+
export function createJevClient(config: JevConfig): JevClient {
|
|
362
|
+
const row = HOSTS[config.host];
|
|
363
|
+
if (config.host === "cloudflare" && !config.accountId) {
|
|
364
|
+
// Sent anyway, the URL has an empty account and Cloudflare answers 404,
|
|
365
|
+
// which reads as a missing model — the wrong thing to go and fix.
|
|
366
|
+
throw new Error("providerkit: Jev on Cloudflare needs the accountId of the Workers AI account");
|
|
367
|
+
}
|
|
368
|
+
const model = config.model ?? row.model;
|
|
369
|
+
const provider = `jev:${config.host}`;
|
|
370
|
+
const timeoutMs = config.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
371
|
+
|
|
372
|
+
async function post(body: unknown, signal: AbortSignal | undefined): Promise<unknown> {
|
|
373
|
+
const deadline = AbortSignal.timeout(timeoutMs);
|
|
374
|
+
try {
|
|
375
|
+
return await postJson({
|
|
376
|
+
url: row.url(config),
|
|
377
|
+
headers: { Authorization: `Bearer ${config.apiKey}`, ...row.headers(config, model) },
|
|
378
|
+
body,
|
|
379
|
+
provider,
|
|
380
|
+
signal: signal ? AbortSignal.any([signal, deadline]) : deadline,
|
|
381
|
+
fetchImpl: config.fetchImpl,
|
|
382
|
+
});
|
|
383
|
+
} catch (err) {
|
|
384
|
+
// Our deadline is a timeout, and retried; the caller's Stop leaves
|
|
385
|
+
// exactly as it arrived and never is (invariant 2).
|
|
386
|
+
if (deadline.aborted && !signal?.aborted) {
|
|
387
|
+
throw new ProviderError(provider, "timeout", `${provider}: no answer in ${timeoutMs} ms`, {
|
|
388
|
+
cause: err,
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
throw err;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
const client: JevClient = {
|
|
396
|
+
host: config.host,
|
|
397
|
+
model,
|
|
398
|
+
ask(state, questions, opts = {}) {
|
|
399
|
+
const { signal } = opts;
|
|
400
|
+
return withRetry(
|
|
401
|
+
async () => {
|
|
402
|
+
const json = await post(row.body(model, state, questions), signal);
|
|
403
|
+
const reply = row.unwrap(json);
|
|
404
|
+
const raw = record(reply?.answers);
|
|
405
|
+
if (!reply || !raw) {
|
|
406
|
+
// A failure inside a 200 is still a failure (invariant 11): a
|
|
407
|
+
// body that names one is classified like any other; a body that
|
|
408
|
+
// names nothing is a contract we do not understand, and is not
|
|
409
|
+
// retried into hiding it.
|
|
410
|
+
const payload = record(json);
|
|
411
|
+
const error = payload?.error ?? payload?.errors;
|
|
412
|
+
if (error !== undefined) throw streamError(provider, error);
|
|
413
|
+
throw new ProviderError(provider, "unknown", `${provider}: the reply has no answers`, {
|
|
414
|
+
body: (JSON.stringify(json) ?? "").slice(0, 2_000),
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
const answers: Record<string, JevAnswer | null> = {};
|
|
418
|
+
for (const [id, question] of Object.entries(questions)) {
|
|
419
|
+
answers[id] = readAnswer(question, raw[id]);
|
|
420
|
+
}
|
|
421
|
+
return {
|
|
422
|
+
// Sound: `readAnswer` returns each answer in its own question's
|
|
423
|
+
// type, with a choice limited to that question's options.
|
|
424
|
+
answers: answers as JevReply<typeof questions>["answers"],
|
|
425
|
+
usage: usageOf(config.host, reply.usage),
|
|
426
|
+
model: typeof reply.model === "string" && reply.model ? reply.model : model,
|
|
427
|
+
};
|
|
428
|
+
},
|
|
429
|
+
{ ...config.retry, signal },
|
|
430
|
+
);
|
|
431
|
+
},
|
|
432
|
+
async checkKey(opts) {
|
|
433
|
+
const reply = await client.ask("hello", KEY_CHECK, opts);
|
|
434
|
+
if (!reply.answers.ok) {
|
|
435
|
+
throw new ProviderError(
|
|
436
|
+
provider,
|
|
437
|
+
"unknown",
|
|
438
|
+
`${provider}: the key works, but the answer failed its checks`,
|
|
439
|
+
);
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
};
|
|
443
|
+
return client;
|
|
444
|
+
}
|
package/src/providers/openai.ts
CHANGED
|
@@ -424,8 +424,14 @@ function price(value: unknown): number | undefined {
|
|
|
424
424
|
* `cost_details.upstream_inference_cost`, so the call cost the two together.
|
|
425
425
|
* Without that second figure there is no whole bill to report, and the
|
|
426
426
|
* caller's rate prices the call instead.
|
|
427
|
+
*
|
|
428
|
+
* Exported for the other OpenRouter wire that bills the same way: Jev's.
|
|
427
429
|
*/
|
|
428
|
-
function openRouterCostUsd(usage:
|
|
430
|
+
export function openRouterCostUsd(usage: {
|
|
431
|
+
cost?: unknown;
|
|
432
|
+
is_byok?: boolean;
|
|
433
|
+
cost_details?: { upstream_inference_cost?: unknown } | null;
|
|
434
|
+
}): number | undefined {
|
|
429
435
|
const cost = price(usage.cost);
|
|
430
436
|
if (cost === undefined || usage.is_byok !== true) return cost;
|
|
431
437
|
const upstream = price(usage.cost_details?.upstream_inference_cost);
|