@nathapp/nax-ai 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +20 -5
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/protocols/errors.d.ts +15 -0
- package/dist/protocols/errors.d.ts.map +1 -1
- package/dist/protocols/errors.js +46 -0
- package/dist/protocols/errors.js.map +1 -1
- package/dist/protocols/pi-client.d.ts +9 -1
- package/dist/protocols/pi-client.d.ts.map +1 -1
- package/dist/protocols/pi-client.js +42 -7
- package/dist/protocols/pi-client.js.map +1 -1
- package/dist/protocols/request-headers.d.ts +20 -5
- package/dist/protocols/request-headers.d.ts.map +1 -1
- package/dist/protocols/request-headers.js +53 -8
- package/dist/protocols/request-headers.js.map +1 -1
- package/dist/protocols/session-id.d.ts +25 -0
- package/dist/protocols/session-id.d.ts.map +1 -0
- package/dist/protocols/session-id.js +50 -0
- package/dist/protocols/session-id.js.map +1 -0
- package/dist/protocols/types.d.ts +32 -7
- package/dist/protocols/types.d.ts.map +1 -1
- package/dist/protocols/types.js +1 -0
- package/dist/protocols/types.js.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,KAAK,gBAAgB,EAAkB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAItG,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACzD,6EAA6E;IAC7E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAE3D,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/D,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;IACvC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAC/E,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5E,QAAQ,IAAI,IAAI,CAAC;CAClB;AASD,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,KAAK,gBAAgB,EAAkB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAItG,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACzD,6EAA6E;IAC7E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAE3D,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/D,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;IACvC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAC/E,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5E,QAAQ,IAAI,IAAI,CAAC;CAClB;AASD,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA8E3D"}
|
package/dist/client.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { collectStream } from "./protocols/collect.js";
|
|
9
9
|
import { createRegistry } from "./protocols/registry.js";
|
|
10
|
-
import { assertValidHeaders } from "./protocols/request-headers.js";
|
|
10
|
+
import { assertValidHeaders, assertValidSessionId } from "./protocols/request-headers.js";
|
|
11
11
|
import { retryTransportFaults } from "./protocols/retry.js";
|
|
12
12
|
import { clampThinkingLevel } from "./protocols/thinking.js";
|
|
13
13
|
import { normaliseCatalog } from "./providers/catalog.js";
|
|
@@ -26,10 +26,20 @@ export function createClient(options) {
|
|
|
26
26
|
if (transportRetries < 0) {
|
|
27
27
|
throw new Error(`transportRetries must be >= 0, got ${transportRetries}.`);
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Called by stream() and complete() before either returns, not from inside
|
|
31
|
+
* the generator: a caller error should surface at the call, and an async
|
|
32
|
+
* generator defers its body until the first next(). complete() collected
|
|
33
|
+
* immediately and so already looked eager; stream() did not, and returned a
|
|
34
|
+
* lazy iterable that only failed once someone pulled from it.
|
|
35
|
+
*/
|
|
36
|
+
function validateRequest(req) {
|
|
32
37
|
assertValidHeaders(req.headers);
|
|
38
|
+
// A session id becomes a header value downstream — in the vendor header
|
|
39
|
+
// here and in pi-ai's own affinity headers — so it gets the same check.
|
|
40
|
+
assertValidSessionId(req.sessionId);
|
|
41
|
+
}
|
|
42
|
+
async function* streamFrom(model, req) {
|
|
33
43
|
const protocol = await registry.resolve(model.protocol);
|
|
34
44
|
const thinking = req.thinking !== undefined ? clampThinkingLevel(req.thinking, model.thinkingLevels) : undefined;
|
|
35
45
|
const protocolRequest = {
|
|
@@ -59,9 +69,14 @@ export function createClient(options) {
|
|
|
59
69
|
return model.pricing;
|
|
60
70
|
},
|
|
61
71
|
stream(model, req) {
|
|
72
|
+
validateRequest(req);
|
|
62
73
|
return streamFrom(model, req);
|
|
63
74
|
},
|
|
64
|
-
|
|
75
|
+
// `async` deliberately: validateRequest throws, and an async function turns
|
|
76
|
+
// that into a rejected promise. A synchronous throw from a promise-returning
|
|
77
|
+
// method would break every caller using .catch() rather than try/await.
|
|
78
|
+
async complete(model, req) {
|
|
79
|
+
validateRequest(req);
|
|
65
80
|
return collectStream(streamFrom(model, req));
|
|
66
81
|
},
|
|
67
82
|
validate() {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAyB,cAAc,EAAwB,MAAM,yBAAyB,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,9 +4,16 @@
|
|
|
4
4
|
* Status: pre-1.0, API unstable. Published under the `next` dist-tag.
|
|
5
5
|
*
|
|
6
6
|
* Scope boundary: this package speaks a generic LLM vocabulary — models,
|
|
7
|
-
* messages, tool calls, usage, credentials
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* messages, tool calls, usage, credentials, and the opaque session id
|
|
8
|
+
* providers route and cache by. It deliberately knows nothing about any
|
|
9
|
+
* consumer's domain concepts (stories, operations, permission policy, or what
|
|
10
|
+
* a session consists of). Consumers map onto their own types at their
|
|
11
|
+
* boundary.
|
|
12
|
+
*
|
|
13
|
+
* "Sessions" was once listed among those exclusions. The distinction that
|
|
14
|
+
* replaced it: carrying an id a provider recognises is wire knowledge, and
|
|
15
|
+
* belongs here alongside the per-model affinity and prompt-cache mapping it
|
|
16
|
+
* drives; deciding what a session *is* remains the consumer's.
|
|
10
17
|
* Keeping that direction one-way is what allows the implementation beneath
|
|
11
18
|
* this surface to be replaced — provider by provider — without consumers
|
|
12
19
|
* noticing.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACpF,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EACL,yBAAyB,EACzB,KAAK,0BAA0B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,WAAW,GACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACb,QAAQ,EACR,cAAc,EACd,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,OAAO,EAAE,gBAAgB,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC1E,YAAY,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,OAAO,EACP,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,9 +4,16 @@
|
|
|
4
4
|
* Status: pre-1.0, API unstable. Published under the `next` dist-tag.
|
|
5
5
|
*
|
|
6
6
|
* Scope boundary: this package speaks a generic LLM vocabulary — models,
|
|
7
|
-
* messages, tool calls, usage, credentials
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* messages, tool calls, usage, credentials, and the opaque session id
|
|
8
|
+
* providers route and cache by. It deliberately knows nothing about any
|
|
9
|
+
* consumer's domain concepts (stories, operations, permission policy, or what
|
|
10
|
+
* a session consists of). Consumers map onto their own types at their
|
|
11
|
+
* boundary.
|
|
12
|
+
*
|
|
13
|
+
* "Sessions" was once listed among those exclusions. The distinction that
|
|
14
|
+
* replaced it: carrying an id a provider recognises is wire knowledge, and
|
|
15
|
+
* belongs here alongside the per-model affinity and prompt-cache mapping it
|
|
16
|
+
* drives; deciding what a session *is* remains the consumer's.
|
|
10
17
|
* Keeping that direction one-way is what allows the implementation beneath
|
|
11
18
|
* this surface to be replaced — provider by provider — without consumers
|
|
12
19
|
* noticing.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAWhC,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EAAuD,YAAY,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EACL,yBAAyB,GAE1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EAKjB,WAAW,GACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,cAAc,EAGd,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAgB7D,OAAO,EAAgB,gBAAgB,EAAmC,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAsB1E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAsB,MAAM,YAAY,CAAC"}
|
|
@@ -7,6 +7,21 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { ProtocolError, ProtocolErrorKind } from "./types.ts";
|
|
9
9
|
export declare function classifyHttpError(status: number | undefined): ProtocolErrorKind;
|
|
10
|
+
/**
|
|
11
|
+
* Classifies a provider error from its status and its upstream message.
|
|
12
|
+
*
|
|
13
|
+
* Separate from `classifyHttpError` rather than folded into it: that function
|
|
14
|
+
* is a pure status table, shared with hand-written backends that may have a
|
|
15
|
+
* status and no message, and widening it with a second input would make every
|
|
16
|
+
* caller supply one. This is the message-aware layer above it.
|
|
17
|
+
*
|
|
18
|
+
* Only `bad-request` is refined. A status with a verdict of its own keeps it —
|
|
19
|
+
* a 429 mentioning tokens is a rate limit, and the caller should wait rather
|
|
20
|
+
* than compact. An absent status stays `unknown` for the same reason: an
|
|
21
|
+
* overflow always arrives with a response, so declining to guess costs
|
|
22
|
+
* nothing.
|
|
23
|
+
*/
|
|
24
|
+
export declare function classifyProviderError(status: number | undefined, message: string | undefined): ProtocolErrorKind;
|
|
10
25
|
/**
|
|
11
26
|
* Reads `retry-after` as a delay in seconds.
|
|
12
27
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/protocols/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAQ/E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CASzG;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAM5D"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/protocols/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAQ/E;AA4BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAMhH;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CASzG;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAM5D"}
|
package/dist/protocols/errors.js
CHANGED
|
@@ -20,6 +20,52 @@ export function classifyHttpError(status) {
|
|
|
20
20
|
return "transport";
|
|
21
21
|
return "unknown";
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Substrings that identify a context-window overflow, lowercased.
|
|
25
|
+
*
|
|
26
|
+
* Taken from provider documentation and error payloads, not from a live
|
|
27
|
+
* capture: a passing test here proves the mapping, never that a given provider
|
|
28
|
+
* still words its message this way. They are upstream wire strings and will
|
|
29
|
+
* drift, which is why they live in one table with a test per phrasing — a
|
|
30
|
+
* reworded message shows up as a failing case rather than as a run that
|
|
31
|
+
* silently gives up on a recoverable fault.
|
|
32
|
+
*
|
|
33
|
+
* Matching is deliberately conservative. An unrecognised 4xx stays
|
|
34
|
+
* `bad-request`: mistaking a genuinely malformed request for an overflow would
|
|
35
|
+
* send a consumer into an endless shorten-and-retry loop.
|
|
36
|
+
*/
|
|
37
|
+
const CONTEXT_OVERFLOW_MARKERS = [
|
|
38
|
+
"context_length_exceeded",
|
|
39
|
+
"context length exceeded",
|
|
40
|
+
"maximum context length",
|
|
41
|
+
"exceed context limit",
|
|
42
|
+
"prompt is too long",
|
|
43
|
+
"input is too long",
|
|
44
|
+
"exceeds the maximum number of tokens",
|
|
45
|
+
"reduce the length of the messages",
|
|
46
|
+
"too many tokens",
|
|
47
|
+
];
|
|
48
|
+
/**
|
|
49
|
+
* Classifies a provider error from its status and its upstream message.
|
|
50
|
+
*
|
|
51
|
+
* Separate from `classifyHttpError` rather than folded into it: that function
|
|
52
|
+
* is a pure status table, shared with hand-written backends that may have a
|
|
53
|
+
* status and no message, and widening it with a second input would make every
|
|
54
|
+
* caller supply one. This is the message-aware layer above it.
|
|
55
|
+
*
|
|
56
|
+
* Only `bad-request` is refined. A status with a verdict of its own keeps it —
|
|
57
|
+
* a 429 mentioning tokens is a rate limit, and the caller should wait rather
|
|
58
|
+
* than compact. An absent status stays `unknown` for the same reason: an
|
|
59
|
+
* overflow always arrives with a response, so declining to guess costs
|
|
60
|
+
* nothing.
|
|
61
|
+
*/
|
|
62
|
+
export function classifyProviderError(status, message) {
|
|
63
|
+
const kind = classifyHttpError(status);
|
|
64
|
+
if (kind !== "bad-request" || message === undefined)
|
|
65
|
+
return kind;
|
|
66
|
+
const haystack = message.toLowerCase();
|
|
67
|
+
return CONTEXT_OVERFLOW_MARKERS.some((marker) => haystack.includes(marker)) ? "context-overflow" : kind;
|
|
68
|
+
}
|
|
23
69
|
/**
|
|
24
70
|
* Reads `retry-after` as a delay in seconds.
|
|
25
71
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/protocols/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,UAAU,iBAAiB,CAAC,MAA0B;IAC1D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IACpD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IACxC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IAC1D,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,aAAa,CAAC;IACxD,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,WAAW,CAAC;IACtC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,OAAqD;IACnF,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC;IAC7F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,KAAK;KACN,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/protocols/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,UAAU,iBAAiB,CAAC,MAA0B;IAC1D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IACpD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IACxC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IAC1D,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,aAAa,CAAC;IACxD,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,WAAW,CAAC;IACtC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,wBAAwB,GAAsB;IAClD,yBAAyB;IACzB,yBAAyB;IACzB,wBAAwB;IACxB,sBAAsB;IACtB,oBAAoB;IACpB,mBAAmB;IACnB,sCAAsC;IACtC,mCAAmC;IACnC,iBAAiB;CAClB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA0B,EAAE,OAA2B;IAC3F,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,aAAa,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEjE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1G,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,OAAqD;IACnF,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC;IAC7F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,KAAK;KACN,CAAC;AACJ,CAAC"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* name is still a parameter because a per-api quirk would branch on it.
|
|
12
12
|
*/
|
|
13
13
|
import type { Api, AssistantMessageEvent, Context, Model, Tool as PiTool, SimpleStreamOptions } from "@earendil-works/pi-ai";
|
|
14
|
+
import type { AuthResolver } from "../auth/resolver.ts";
|
|
14
15
|
import type { PiProtocolOptions } from "./pi-protocols.ts";
|
|
15
16
|
import type { Protocol, ProtocolRequest } from "./types.ts";
|
|
16
17
|
export interface PiResponse {
|
|
@@ -41,6 +42,13 @@ export declare function createPiProtocol(name: string, deps: PiDeps): Protocol;
|
|
|
41
42
|
* double would have to reimplement to satisfy.
|
|
42
43
|
*/
|
|
43
44
|
type StreamSimple = (model: Model<Api>, context: Context, options?: SimpleStreamOptions) => AsyncIterable<AssistantMessageEvent>;
|
|
44
|
-
export declare function createPiDeps(options?: PiProtocolOptions, streamSimple?: StreamSimple
|
|
45
|
+
export declare function createPiDeps(options?: PiProtocolOptions, streamSimple?: StreamSimple,
|
|
46
|
+
/**
|
|
47
|
+
* Test seam, following `streamSimple`. Without it `auth.headers` is
|
|
48
|
+
* `undefined` for every provider unless a credential store is configured, so
|
|
49
|
+
* a test cannot reach the auth/request header merge at all — which is how the
|
|
50
|
+
* merge shipped with a regression test that passed against the bug.
|
|
51
|
+
*/
|
|
52
|
+
authResolver?: AuthResolver): PiDeps;
|
|
45
53
|
export {};
|
|
46
54
|
//# sourceMappingURL=pi-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-client.d.ts","sourceRoot":"","sources":["../../src/protocols/pi-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,GAAG,EACH,qBAAqB,EACrB,OAAO,EACP,KAAK,EAGL,IAAI,IAAI,MAAM,EAEd,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"pi-client.d.ts","sourceRoot":"","sources":["../../src/protocols/pi-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,GAAG,EACH,qBAAqB,EACrB,OAAO,EACP,KAAK,EAGL,IAAI,IAAI,MAAM,EAEd,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,OAAO,KAAK,EAEV,QAAQ,EAER,eAAe,EAGhB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,MAAM,UAAU,GAAG,CACvB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,mBAAmB;AAC5B;;;;;GAKG;AACH,UAAU,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,KACvC,aAAa,CAAC,qBAAqB,CAAC,CAAC;AAE1C,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACnF,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B;AAmBD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM,CASpH;AAkFD,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAM5E;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,mBAAmB,CAerE;AAkDD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAmIrE;AAiBD;;;;;;GAMG;AACH,KAAK,YAAY,GAAG,CAClB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,KAC1B,aAAa,CAAC,qBAAqB,CAAC,CAAC;AAE1C,wBAAgB,YAAY,CAC1B,OAAO,GAAE,iBAAsB,EAC/B,YAAY,CAAC,EAAE,YAAY;AAC3B;;;;;GAKG;AACH,YAAY,CAAC,EAAE,YAAY,GAC1B,MAAM,CA0ER"}
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
import { builtinModels } from "@earendil-works/pi-ai/providers/all";
|
|
14
14
|
import { createPiAuthResolver, toPiCredentialStore } from "../auth/pi-auth.js";
|
|
15
15
|
import { toTokenUsage, totalTokens } from "../usage.js";
|
|
16
|
-
import {
|
|
17
|
-
import { mergeRequestHeaders } from "./request-headers.js";
|
|
16
|
+
import { classifyProviderError, classifyThrown, parseRetryAfter } from "./errors.js";
|
|
17
|
+
import { assertValidHeaders, assertValidSessionId, mergeRequestHeaders, withoutEmpty } from "./request-headers.js";
|
|
18
|
+
import { vendorSessionHeaders } from "./session-id.js";
|
|
18
19
|
import { createToolArgAccumulator, parseToolArgs } from "./tool-args.js";
|
|
19
20
|
/**
|
|
20
21
|
* pi-ai's Message requires a timestamp, but no wire module under its api/
|
|
@@ -123,6 +124,9 @@ export function toPiOptions(req) {
|
|
|
123
124
|
...(req.cacheRetention !== undefined ? { cacheRetention: req.cacheRetention } : {}),
|
|
124
125
|
...(req.signal !== undefined ? { signal: req.signal } : {}),
|
|
125
126
|
...(req.headers !== undefined ? { headers: { ...req.headers } } : {}),
|
|
127
|
+
// Empty is treated as absent, matching vendorSessionHeaders: an id that
|
|
128
|
+
// cannot identify anything should not reach pi as though it could.
|
|
129
|
+
...(req.sessionId !== undefined && req.sessionId !== "" ? { sessionId: req.sessionId } : {}),
|
|
126
130
|
// pi-ai's scale has no "off": the absence of the field is how thinking is
|
|
127
131
|
// disabled, so mapping "off" to a value would silently enable it.
|
|
128
132
|
...(req.thinking !== undefined && req.thinking !== "off" ? { reasoning: req.thinking } : {}),
|
|
@@ -262,11 +266,15 @@ export function createPiProtocol(name, deps) {
|
|
|
262
266
|
// A failed request that consumed tokens still bills for them.
|
|
263
267
|
if (totalTokens(usage) > 0)
|
|
264
268
|
yield { type: "usage", usage };
|
|
269
|
+
const upstreamMessage = event.error.errorMessage;
|
|
265
270
|
yield {
|
|
266
271
|
type: "error",
|
|
267
272
|
error: {
|
|
268
|
-
|
|
269
|
-
|
|
273
|
+
// The status alone cannot separate an overflow from a
|
|
274
|
+
// malformed request; the upstream message can, and it is
|
|
275
|
+
// already here.
|
|
276
|
+
kind: classifyProviderError(status, upstreamMessage),
|
|
277
|
+
message: upstreamMessage ?? `Upstream stream ended: ${event.reason}.`,
|
|
270
278
|
...(status !== undefined ? { status } : {}),
|
|
271
279
|
...(retryAfter !== undefined ? { retryAfter } : {}),
|
|
272
280
|
},
|
|
@@ -309,7 +317,14 @@ const credentialed = new WeakMap();
|
|
|
309
317
|
* See PiProtocolOptions.transport for why this is not pi-ai's own "auto".
|
|
310
318
|
*/
|
|
311
319
|
const DEFAULT_TRANSPORT = "sse";
|
|
312
|
-
export function createPiDeps(options = {}, streamSimple
|
|
320
|
+
export function createPiDeps(options = {}, streamSimple,
|
|
321
|
+
/**
|
|
322
|
+
* Test seam, following `streamSimple`. Without it `auth.headers` is
|
|
323
|
+
* `undefined` for every provider unless a credential store is configured, so
|
|
324
|
+
* a test cannot reach the auth/request header merge at all — which is how the
|
|
325
|
+
* merge shipped with a regression test that passed against the bug.
|
|
326
|
+
*/
|
|
327
|
+
authResolver) {
|
|
313
328
|
const store = options.credentials;
|
|
314
329
|
let models;
|
|
315
330
|
if (store === undefined) {
|
|
@@ -319,7 +334,7 @@ export function createPiDeps(options = {}, streamSimple) {
|
|
|
319
334
|
models = credentialed.get(store) ?? builtinModels({ credentials: toPiCredentialStore(store) });
|
|
320
335
|
credentialed.set(store, models);
|
|
321
336
|
}
|
|
322
|
-
const resolver = createPiAuthResolver(models);
|
|
337
|
+
const resolver = authResolver ?? createPiAuthResolver(models);
|
|
323
338
|
return {
|
|
324
339
|
resolveModel: async (modelId, provider) => {
|
|
325
340
|
// pi-ai serves one model id from many providers (e.g. gpt-5.4 under
|
|
@@ -343,7 +358,27 @@ export function createPiDeps(options = {}, streamSimple) {
|
|
|
343
358
|
// so the seam a native backend will use is exercised in production
|
|
344
359
|
// rather than merely exported.
|
|
345
360
|
const auth = await resolver.resolve({ provider: model.provider, model: model.id });
|
|
346
|
-
|
|
361
|
+
// The vendor header goes under the caller's own headers, so an explicit
|
|
362
|
+
// one still wins; auth stays last and wins over both. Left undefined when
|
|
363
|
+
// there is nothing on the request side, so mergeRequestHeaders can return
|
|
364
|
+
// undefined and the option stays absent rather than being set to `{}`.
|
|
365
|
+
const requestHeaders = withoutEmpty({
|
|
366
|
+
...vendorSessionHeaders(model.provider, options_?.sessionId),
|
|
367
|
+
...options_?.headers,
|
|
368
|
+
});
|
|
369
|
+
// Validated here rather than only at the client boundary: this is where
|
|
370
|
+
// headers reach the wire, and a protocol-direct caller never passes
|
|
371
|
+
// through the client. The vendor header is included because it is added
|
|
372
|
+
// after that earlier check.
|
|
373
|
+
assertValidHeaders(requestHeaders);
|
|
374
|
+
// Separately, and not covered by the line above: the header check only
|
|
375
|
+
// sees the id once vendorSessionHeaders has embedded it, which happens
|
|
376
|
+
// for opencode alone. Every other provider carries it in options.sessionId
|
|
377
|
+
// and pi-ai turns it into x-session-id / session_id / x-client-request-id
|
|
378
|
+
// / x-session-affinity — so without this the id is unchecked precisely
|
|
379
|
+
// where it does the most work.
|
|
380
|
+
assertValidSessionId(options_?.sessionId);
|
|
381
|
+
const mergedHeaders = mergeRequestHeaders(requestHeaders, auth.headers);
|
|
347
382
|
const stream = streamSimple ?? models.streamSimple.bind(models);
|
|
348
383
|
yield* stream(model, context, {
|
|
349
384
|
// Construction-time first, so a per-request option could still override
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-client.js","sourceRoot":"","sources":["../../src/protocols/pi-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pi-client.js","sourceRoot":"","sources":["../../src/protocols/pi-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAiCzE;;;;GAIG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,iFAAiF;AACjF,MAAM,QAAQ,GAAY;IACxB,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;CACrE,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,IAAmF;IAC1G,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,0EAA0E;QAC1E,4EAA4E;QAC5E,UAAU,EAAE,IAAI,CAAC,WAAmC;QACpD,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrG,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAoB;IAMxC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,KAAK,CAAC,IAAI;QACpB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,QAAwC,EAAE,KAAiB;IAC/E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,GAAG,GAAgB,EAAE,CAAC;IAE5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YAC9E,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE;gBAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,2DAA2D;oBAC3D,kEAAkE;oBAClE,oDAAoD;oBACpD,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;oBAC7C,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;oBACrF,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC1C,IAAI,EAAE,UAAmB;wBACzB,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAA4B;qBACzD,CAAC,CAAC;iBACJ;gBACD,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,CAAC,EAAE;gBACf,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,MAAM;gBAClB,SAAS,EAAE,YAAY;aACxB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,wEAAwE;QACxE,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,qCAAqC,OAAO,CAAC,UAAU,6CAA6C,CACrG,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ;YACR,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,SAAS,EAAE,YAAY;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAoB,EAAE,KAAiB;IACjE,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAoB;IAC9C,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,wEAAwE;QACxE,mEAAmE;QACnE,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,0EAA0E;QAC1E,kEAAkE;QAClE,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7F,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,YAAY,GAAyC;IACzD,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF,uEAAuE;AACvE,SAAS,UAAU,CAAC,OAAwC,EAAE,KAAa;IACzE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,SAAS,GAAG,KAAyD,CAAC;IAC5E,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,SAAS,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5G,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CACtB,OAAwC,EACxC,KAAa;IAEb,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC3D,MAAM,SAAS,GAAG,KAA4E,CAAC;IAC/F,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,CAAC;IAC7C,OAAO;QACL,GAAG,CAAC,OAAO,SAAS,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,GAAG,CAAC,OAAO,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAY;IACzD,OAAO;QACL,IAAI;QAEJ,KAAK,CAAC,CAAC,MAAM,CAAC,GAAoB;YAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/D,IAAI,QAAgC,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACxF,QAAQ,GAAG,QAAQ,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;YAE5C,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBACjC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;wBACnB,KAAK,YAAY;4BACf,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;4BAChD,MAAM;wBAER,KAAK,gBAAgB;4BACnB,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;4BACpD,MAAM;wBAER,KAAK,cAAc,EAAE,CAAC;4BACpB,8DAA8D;4BAC9D,2DAA2D;4BAC3D,6DAA6D;4BAC7D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;4BACnF,MAAM;gCACJ,IAAI,EAAE,UAAU;gCAChB,KAAK,EAAE;oCACL,IAAI,EAAE,KAAK,CAAC,OAAO;oCACnB,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oCACjD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iCAChD;6BACF,CAAC;4BACF,MAAM;wBACR,CAAC;wBAED,KAAK,gBAAgB,EAAE,CAAC;4BACtB,8DAA8D;4BAC9D,mEAAmE;4BACnE,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;4BAC3D,IAAI,IAAI,KAAK,SAAS;gCAAE,MAAM;4BAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;4BAClE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;4BAC5E,MAAM;wBACR,CAAC;wBAED,KAAK,cAAc,EAAE,CAAC;4BACpB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;4BACjD,IAAI,KAAc,CAAC;4BACnB,IAAI,CAAC;gCACH,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;4BAC5C,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,8DAA8D;gCAC9D,gBAAgB;gCAChB,MAAM;oCACJ,IAAI,EAAE,OAAO;oCACb,KAAK,EAAE;wCACL,IAAI,EAAE,aAAa;wCACnB,OAAO,EAAE,SAAS,KAAK,CAAC,QAAQ,CAAC,IAAI,mCAAmC;wCACxE,KAAK;qCACN;iCACF,CAAC;gCACF,OAAO;4BACT,CAAC;4BACD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;4BAC/F,MAAM;wBACR,CAAC;wBAED,KAAK,MAAM,EAAE,CAAC;4BACZ,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAC9C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BAClE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gCAC7B,MAAM;oCACJ,IAAI,EAAE,OAAO;oCACb,KAAK,EAAE;wCACL,IAAI,EAAE,SAAS;wCACf,OAAO,EAAE,kCAAkC,KAAK,CAAC,MAAM,iCAAiC;qCACzF;iCACF,CAAC;gCACF,OAAO;4BACT,CAAC;4BACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;4BACnC,OAAO;wBACT,CAAC;wBAED,KAAK,OAAO,EAAE,CAAC;4BACb,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC;4BAChC,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;4BACtD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BAC9C,8DAA8D;4BAC9D,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;gCAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;4BAC3D,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;4BACjD,MAAM;gCACJ,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE;oCACL,sDAAsD;oCACtD,yDAAyD;oCACzD,gBAAgB;oCAChB,IAAI,EAAE,qBAAqB,CAAC,MAAM,EAAE,eAAe,CAAC;oCACpD,OAAO,EAAE,eAAe,IAAI,0BAA0B,KAAK,CAAC,MAAM,GAAG;oCACrE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oCAC3C,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iCACpD;6BACF,CAAC;4BACF,OAAO;wBACT,CAAC;wBAED;4BACE,iEAAiE;4BACjE,6DAA6D;4BAC7D,gEAAgE;4BAChE,UAAU;4BACV,MAAM;oBACV,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gEAAgE;gBAChE,gEAAgE;gBAChE,qEAAqE;gBACrE,qEAAqE;gBACrE,sEAAsE;gBACtE,iEAAiE;gBACjE,kEAAkE;gBAClE,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO;oBAAE,MAAM,KAAK,CAAC;gBACrC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,IAAI,MAAiC,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,YAAY,GAAG,IAAI,OAAO,EAAkC,CAAC;AAEnE;;GAEG;AACH,MAAM,iBAAiB,GAAc,KAAK,CAAC;AAe3C,MAAM,UAAU,YAAY,CAC1B,OAAO,GAAsB,EAAE,EAC/B,YAA2B;AAC3B;;;;;GAKG;AACH,YAA2B;IAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;IAClC,IAAI,MAAqB,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,GAAG,MAAM,KAAK,aAAa,EAAE,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/F,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE9D,OAAO;QACL,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;YACxC,oEAAoE;YACpE,uEAAuE;YACvE,qEAAqE;YACrE,qEAAqE;YACrE,0DAA0D;YAC1D,MAAM,KAAK,GACT,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC;gBAC1E,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;YACvE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,mBAAmB,QAAQ,yBAAyB,CAAC,CAAC;gBACjG,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,yBAAyB,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,EAAE,KAAK,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU;YAC3D,wEAAwE;YACxE,mEAAmE;YACnE,+BAA+B;YAC/B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACnF,wEAAwE;YACxE,0EAA0E;YAC1E,0EAA0E;YAC1E,uEAAuE;YACvE,MAAM,cAAc,GAAG,YAAY,CAAC;gBAClC,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;gBAC5D,GAAG,QAAQ,EAAE,OAAO;aACrB,CAAC,CAAC;YACH,wEAAwE;YACxE,oEAAoE;YACpE,wEAAwE;YACxE,4BAA4B;YAC5B,kBAAkB,CAAC,cAAc,CAAC,CAAC;YACnC,uEAAuE;YACvE,uEAAuE;YACvE,2EAA2E;YAC3E,0EAA0E;YAC1E,uEAAuE;YACvE,+BAA+B;YAC/B,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChE,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;gBAC5B,wEAAwE;gBACxE,6CAA6C;gBAC7C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,iBAAiB;gBACjD,GAAG,QAAQ;gBACX,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,sEAAsE;gBACtE,qEAAqE;gBACrE,oEAAoE;gBACpE,oCAAoC;gBACpC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;aAC7F,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,12 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-request headers: validation at the boundary, and precedence against auth.
|
|
3
3
|
*
|
|
4
|
-
* A neutral map
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* A neutral map, and the escape hatch for anything not modelled: a consumer can
|
|
5
|
+
* always spell a header itself here.
|
|
6
|
+
*
|
|
7
|
+
* An earlier revision of this comment said the package "must not grow a
|
|
8
|
+
* `sessionId` field or a vendor's header name". That was overdrawn and
|
|
9
|
+
* `session-id.ts` now does both. The line worth keeping is narrower: nax-ai
|
|
10
|
+
* must not learn what a consumer's session *is*. Carrying an opaque id that
|
|
11
|
+
* pi-ai already models on its own stream options, and knowing which vendor
|
|
12
|
+
* spells it in which header, is wire knowledge — which is precisely what this
|
|
13
|
+
* package exists to hold. See session-id.ts for the full argument.
|
|
14
|
+
*/
|
|
15
|
+
export declare function assertValidHeaders(headers: Readonly<Record<string, string | null>> | undefined): void;
|
|
16
|
+
/**
|
|
17
|
+
* A session id becomes a header value — here for the vendor header, and inside
|
|
18
|
+
* pi-ai for the affinity ones — so it needs the same check. Without this, the
|
|
19
|
+
* identical bad string produced a named error through `headers` and an opaque
|
|
20
|
+
* one from inside a provider SDK through `sessionId`.
|
|
8
21
|
*/
|
|
9
|
-
export declare function
|
|
22
|
+
export declare function assertValidSessionId(sessionId: string | undefined): void;
|
|
23
|
+
/** `{}` collapsed to undefined, so an empty map never reaches the wire as one. */
|
|
24
|
+
export declare function withoutEmpty<T>(headers: Readonly<Record<string, T>>): Readonly<Record<string, T>> | undefined;
|
|
10
25
|
/**
|
|
11
26
|
* Merge order: auth last, so auth wins.
|
|
12
27
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-headers.d.ts","sourceRoot":"","sources":["../../src/protocols/request-headers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"request-headers.d.ts","sourceRoot":"","sources":["../../src/protocols/request-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAkCH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAQrG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGxE;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAE7G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,EACnE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,GAC/D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAkBpC"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-request headers: validation at the boundary, and precedence against auth.
|
|
3
3
|
*
|
|
4
|
-
* A neutral map
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* A neutral map, and the escape hatch for anything not modelled: a consumer can
|
|
5
|
+
* always spell a header itself here.
|
|
6
|
+
*
|
|
7
|
+
* An earlier revision of this comment said the package "must not grow a
|
|
8
|
+
* `sessionId` field or a vendor's header name". That was overdrawn and
|
|
9
|
+
* `session-id.ts` now does both. The line worth keeping is narrower: nax-ai
|
|
10
|
+
* must not learn what a consumer's session *is*. Carrying an opaque id that
|
|
11
|
+
* pi-ai already models on its own stream options, and knowing which vendor
|
|
12
|
+
* spells it in which header, is wire knowledge — which is precisely what this
|
|
13
|
+
* package exists to hold. See session-id.ts for the full argument.
|
|
8
14
|
*/
|
|
9
15
|
/** RFC 9110 token: the characters a header name may legally use. */
|
|
10
16
|
const HEADER_NAME = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
|
|
@@ -15,8 +21,26 @@ const HEADER_NAME = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
|
|
|
15
21
|
* message naming neither the header nor the caller. Failing here means a
|
|
16
22
|
* consumer that interpolates an id into a header value learns immediately,
|
|
17
23
|
* rather than seeing a transport error from inside a provider SDK.
|
|
24
|
+
*
|
|
25
|
+
* Deliberately not a forbidden-NAME list: `host`, `content-length` and
|
|
26
|
+
* `connection` are legal tokens and pass this check. undici refuses to let a
|
|
27
|
+
* caller set them, so duplicating its list here would drift from it.
|
|
18
28
|
*/
|
|
19
29
|
const FORBIDDEN_IN_VALUE = /[\r\n\0]/;
|
|
30
|
+
/**
|
|
31
|
+
* Checked as well as the syntax rules because this is a published package with
|
|
32
|
+
* untyped consumers. A non-string slipped through as `String(value)` in the
|
|
33
|
+
* regex test and was then dropped silently by the null filter below, so a JS
|
|
34
|
+
* caller's mistake became a missing header rather than an error.
|
|
35
|
+
*/
|
|
36
|
+
function assertHeaderValue(name, value) {
|
|
37
|
+
if (typeof value !== "string") {
|
|
38
|
+
throw new Error(`Invalid header value for ${JSON.stringify(name)}: expected a string, got ${typeof value}.`);
|
|
39
|
+
}
|
|
40
|
+
if (FORBIDDEN_IN_VALUE.test(value)) {
|
|
41
|
+
throw new Error(`Invalid header value for ${JSON.stringify(name)}: it may not contain CR, LF or NUL.`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
20
44
|
export function assertValidHeaders(headers) {
|
|
21
45
|
if (headers === undefined)
|
|
22
46
|
return;
|
|
@@ -24,11 +48,24 @@ export function assertValidHeaders(headers) {
|
|
|
24
48
|
if (!HEADER_NAME.test(name)) {
|
|
25
49
|
throw new Error(`Invalid header name ${JSON.stringify(name)}: expected an RFC 9110 token.`);
|
|
26
50
|
}
|
|
27
|
-
|
|
28
|
-
throw new Error(`Invalid header value for ${JSON.stringify(name)}: it may not contain CR, LF or NUL.`);
|
|
29
|
-
}
|
|
51
|
+
assertHeaderValue(name, value);
|
|
30
52
|
}
|
|
31
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* A session id becomes a header value — here for the vendor header, and inside
|
|
56
|
+
* pi-ai for the affinity ones — so it needs the same check. Without this, the
|
|
57
|
+
* identical bad string produced a named error through `headers` and an opaque
|
|
58
|
+
* one from inside a provider SDK through `sessionId`.
|
|
59
|
+
*/
|
|
60
|
+
export function assertValidSessionId(sessionId) {
|
|
61
|
+
if (sessionId === undefined)
|
|
62
|
+
return;
|
|
63
|
+
assertHeaderValue("sessionId", sessionId);
|
|
64
|
+
}
|
|
65
|
+
/** `{}` collapsed to undefined, so an empty map never reaches the wire as one. */
|
|
66
|
+
export function withoutEmpty(headers) {
|
|
67
|
+
return Object.keys(headers).length === 0 ? undefined : headers;
|
|
68
|
+
}
|
|
32
69
|
/**
|
|
33
70
|
* Merge order: auth last, so auth wins.
|
|
34
71
|
*
|
|
@@ -44,7 +81,15 @@ export function assertValidHeaders(headers) {
|
|
|
44
81
|
export function mergeRequestHeaders(requestHeaders, authHeaders) {
|
|
45
82
|
if (requestHeaders === undefined && authHeaders === undefined)
|
|
46
83
|
return undefined;
|
|
47
|
-
|
|
84
|
+
// Header names are case-insensitive on the wire but case-sensitive as object
|
|
85
|
+
// keys, so `Authorization` and `authorization` would both survive a plain
|
|
86
|
+
// spread. pi happens to re-merge case-insensitively with auth last, but that
|
|
87
|
+
// makes the guarantee pi's rather than ours — and a backend handing this map
|
|
88
|
+
// straight to fetch would get "a, b" as one corrupted credential. Drop the
|
|
89
|
+
// request-side spelling instead of relying on someone else's dedup.
|
|
90
|
+
const authNames = new Set(Object.keys(authHeaders ?? {}).map((name) => name.toLowerCase()));
|
|
91
|
+
const keptRequestHeaders = Object.fromEntries(Object.entries(requestHeaders ?? {}).filter(([name]) => !authNames.has(name.toLowerCase())));
|
|
92
|
+
const merged = { ...keptRequestHeaders, ...authHeaders };
|
|
48
93
|
// null is pi-ai's "do not send this header" (see createPiAuthResolver, which
|
|
49
94
|
// filters it the same way). Because auth is spread last, a null there also
|
|
50
95
|
// suppresses a request header of the same name, which is the reading that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-headers.js","sourceRoot":"","sources":["../../src/protocols/request-headers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"request-headers.js","sourceRoot":"","sources":["../../src/protocols/request-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,oEAAoE;AACpE,MAAM,WAAW,GAAG,gCAAgC,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAEtC;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAc;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,OAAO,KAAK,GAAG,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACzG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA4D;IAC7F,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC9F,CAAC;QACD,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA6B;IAChE,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO;IACpC,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAI,OAAoC;IAClE,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAAmE,EACnE,WAAgE;IAEhE,IAAI,cAAc,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChF,6EAA6E;IAC7E,0EAA0E;IAC1E,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,oEAAoE;IACpE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC5F,MAAM,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAC5F,CAAC;IACF,MAAM,MAAM,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,WAAW,EAAE,CAAC;IACzD,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,2CAA2C;IAC3C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AACpH,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vendor spellings of a session id.
|
|
3
|
+
*
|
|
4
|
+
* A session id is a wire concern, not a consumer concept. The scope statement
|
|
5
|
+
* in src/index.ts keeps this package clear of consumer vocabulary — including
|
|
6
|
+
* the word "sessions" — and carrying an id does not breach it: pi-ai already
|
|
7
|
+
* models `sessionId` on its own stream options, so this mirrors an upstream
|
|
8
|
+
* primitive rather than importing anyone's domain. What a session *is* remains
|
|
9
|
+
* entirely the consumer's to decide.
|
|
10
|
+
*
|
|
11
|
+
* Most vendors need nothing here. Passing `sessionId` to pi-ai is what makes
|
|
12
|
+
* `x-session-id`, `session_id`, `x-client-request-id` and `x-session-affinity`
|
|
13
|
+
* appear, each selected from a per-model `compat.sessionAffinityFormat`, and
|
|
14
|
+
* the same value keys prompt caching. Reimplementing that mapping would
|
|
15
|
+
* duplicate a table pi-ai maintains against the model catalog.
|
|
16
|
+
*
|
|
17
|
+
* OpenCode is the exception: pi-ai has no support for its header at any
|
|
18
|
+
* version, so it is added here.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Returns undefined — not an empty object — whenever there is nothing to add,
|
|
22
|
+
* so a caller merges nothing at all.
|
|
23
|
+
*/
|
|
24
|
+
export declare function vendorSessionHeaders(provider: string, sessionId: string | undefined): Readonly<Record<string, string>> | undefined;
|
|
25
|
+
//# sourceMappingURL=session-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-id.d.ts","sourceRoot":"","sources":["../../src/protocols/session-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAgBH;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAS9C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vendor spellings of a session id.
|
|
3
|
+
*
|
|
4
|
+
* A session id is a wire concern, not a consumer concept. The scope statement
|
|
5
|
+
* in src/index.ts keeps this package clear of consumer vocabulary — including
|
|
6
|
+
* the word "sessions" — and carrying an id does not breach it: pi-ai already
|
|
7
|
+
* models `sessionId` on its own stream options, so this mirrors an upstream
|
|
8
|
+
* primitive rather than importing anyone's domain. What a session *is* remains
|
|
9
|
+
* entirely the consumer's to decide.
|
|
10
|
+
*
|
|
11
|
+
* Most vendors need nothing here. Passing `sessionId` to pi-ai is what makes
|
|
12
|
+
* `x-session-id`, `session_id`, `x-client-request-id` and `x-session-affinity`
|
|
13
|
+
* appear, each selected from a per-model `compat.sessionAffinityFormat`, and
|
|
14
|
+
* the same value keys prompt caching. Reimplementing that mapping would
|
|
15
|
+
* duplicate a table pi-ai maintains against the model catalog.
|
|
16
|
+
*
|
|
17
|
+
* OpenCode is the exception: pi-ai has no support for its header at any
|
|
18
|
+
* version, so it is added here.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Providers whose header pi-ai does not send.
|
|
22
|
+
*
|
|
23
|
+
* `opencode` (Zen, https://opencode.ai/zen) and `opencode-go`
|
|
24
|
+
* (https://opencode.ai/zen/go) are separate catalog entries for one service;
|
|
25
|
+
* https://opencode.ai/docs/go/ documents `x-opencode-session`, and OpenCode has
|
|
26
|
+
* said requests without it may start erroring. Both are listed — gating on the
|
|
27
|
+
* `-go` one alone would leave Zen unheadered.
|
|
28
|
+
*/
|
|
29
|
+
const VENDOR_SESSION_HEADERS = {
|
|
30
|
+
opencode: "x-opencode-session",
|
|
31
|
+
"opencode-go": "x-opencode-session",
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Returns undefined — not an empty object — whenever there is nothing to add,
|
|
35
|
+
* so a caller merges nothing at all.
|
|
36
|
+
*/
|
|
37
|
+
export function vendorSessionHeaders(provider, sessionId) {
|
|
38
|
+
if (sessionId === undefined || sessionId === "")
|
|
39
|
+
return undefined;
|
|
40
|
+
// Own properties only: a plain object literal inherits `constructor`,
|
|
41
|
+
// `toString` and friends, and indexing it with one of those provider names
|
|
42
|
+
// would produce a header named after a function body.
|
|
43
|
+
if (!Object.hasOwn(VENDOR_SESSION_HEADERS, provider))
|
|
44
|
+
return undefined;
|
|
45
|
+
const header = VENDOR_SESSION_HEADERS[provider];
|
|
46
|
+
if (header === undefined)
|
|
47
|
+
return undefined;
|
|
48
|
+
return { [header]: sessionId };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=session-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-id.js","sourceRoot":"","sources":["../../src/protocols/session-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;GAQG;AACH,MAAM,sBAAsB,GAAqC;IAC/D,QAAQ,EAAE,oBAAoB;IAC9B,aAAa,EAAE,oBAAoB;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,SAA6B;IAE7B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClE,sEAAsE;IACtE,2EAA2E;IAC3E,sDAAsD;IACtD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACvE,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -19,8 +19,21 @@ export declare const CACHE_RETENTIONS: readonly ["none", "short", "long"];
|
|
|
19
19
|
export type CacheRetention = (typeof CACHE_RETENTIONS)[number];
|
|
20
20
|
export declare const PROTOCOL_EVENT_TYPES: readonly ["text-delta", "thinking-delta", "thinking", "tool-call-partial", "tool-call", "usage", "error", "done"];
|
|
21
21
|
export type ProtocolEventType = (typeof PROTOCOL_EVENT_TYPES)[number];
|
|
22
|
-
export declare const PROTOCOL_ERROR_KINDS: readonly ["rate-limit", "auth", "overloaded", "bad-request", "transport", "unknown"];
|
|
22
|
+
export declare const PROTOCOL_ERROR_KINDS: readonly ["rate-limit", "auth", "overloaded", "bad-request", "context-overflow", "transport", "unknown"];
|
|
23
23
|
export type ProtocolErrorKind = (typeof PROTOCOL_ERROR_KINDS)[number];
|
|
24
|
+
/**
|
|
25
|
+
* `context-overflow` is a refinement of `bad-request`, not a sibling of it:
|
|
26
|
+
* every provider we speak to reports an oversized prompt as a 4xx, so the two
|
|
27
|
+
* are indistinguishable by status alone. They are split because the recoveries
|
|
28
|
+
* are opposite. A malformed request is terminal — rebuilding it produces the
|
|
29
|
+
* same request. An overflow is not — the same call succeeds once the caller
|
|
30
|
+
* shortens the conversation, and folding it into `bad-request` tells a
|
|
31
|
+
* consumer to give up on a fault it could have recovered from.
|
|
32
|
+
*
|
|
33
|
+
* What to do about it stays with the consumer, as it does for `rate-limit` and
|
|
34
|
+
* `overloaded`: the recovery is to rebuild the request, and only the consumer
|
|
35
|
+
* knows what its conversation may lose.
|
|
36
|
+
*/
|
|
24
37
|
export interface ProtocolError {
|
|
25
38
|
readonly kind: ProtocolErrorKind;
|
|
26
39
|
readonly message: string;
|
|
@@ -122,15 +135,27 @@ export interface ProtocolRequest {
|
|
|
122
135
|
/**
|
|
123
136
|
* Extra headers for this request.
|
|
124
137
|
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* affinity header (opencode-go's `x-opencode-session`, say) is served by the
|
|
128
|
-
* consumer putting it here — without nax-ai learning that vendor's
|
|
129
|
-
* vocabulary, which its scope statement forbids.
|
|
138
|
+
* The escape hatch for anything this package does not model. Session affinity
|
|
139
|
+
* is modelled — see `sessionId` — so it does not need to go here.
|
|
130
140
|
*
|
|
131
|
-
*
|
|
141
|
+
* A resolved auth header wins a name collision, case-insensitively. That is
|
|
142
|
+
* narrower than it sounds and is NOT an auth boundary: when no credential
|
|
143
|
+
* resolves there is nothing to win, and pi treats a caller-supplied
|
|
144
|
+
* `authorization` / `x-api-key` / `cf-aig-authorization` as satisfying auth,
|
|
145
|
+
* so a header set here can authenticate a request without the credential
|
|
146
|
+
* store being consulted at all. That is intended — it is how a bring-your-own
|
|
147
|
+
* gateway works — but it means this map is trusted input.
|
|
132
148
|
*/
|
|
133
149
|
readonly headers?: Readonly<Record<string, string>>;
|
|
150
|
+
/**
|
|
151
|
+
* Session identifier, for providers that route or cache by session.
|
|
152
|
+
*
|
|
153
|
+
* Supplying it is what enables affinity headers and prompt-cache keying
|
|
154
|
+
* downstream, each chosen per model rather than per provider. What
|
|
155
|
+
* constitutes a session is the consumer's decision; this package only
|
|
156
|
+
* carries the id and adds the one vendor header pi-ai lacks.
|
|
157
|
+
*/
|
|
158
|
+
readonly sessionId?: string;
|
|
134
159
|
readonly signal?: AbortSignal;
|
|
135
160
|
}
|
|
136
161
|
export type ProtocolEvent = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/protocols/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/protocols/types.ts"],"names":[],"mappings":"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"}
|
package/dist/protocols/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/protocols/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAU,CAAC;AAGpG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAGnE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,YAAY;IACZ,gBAAgB;IAChB,UAAU;IACV,mBAAmB;IACnB,WAAW;IACX,OAAO;IACP,OAAO;IACP,MAAM;CACE,CAAC;AAGX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,YAAY;IACZ,MAAM;IACN,YAAY;IACZ,aAAa;IACb,WAAW;IACX,SAAS;CACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/protocols/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAU,CAAC;AAGpG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAGnE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,YAAY;IACZ,gBAAgB;IAChB,UAAU;IACV,mBAAmB;IACnB,WAAW;IACX,OAAO;IACP,OAAO;IACP,MAAM;CACE,CAAC;AAGX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,YAAY;IACZ,MAAM;IACN,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,SAAS;CACD,CAAC"}
|
package/package.json
CHANGED