@qitqode/qitqore 0.2.0 → 0.3.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 +51 -15
- package/dist/decision-policy.d.ts +132 -0
- package/dist/decision-policy.d.ts.map +1 -0
- package/dist/decision-policy.js +308 -0
- package/dist/decision-policy.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/sse.d.ts +4 -0
- package/dist/sse.d.ts.map +1 -1
- package/dist/sse.js +16 -1
- package/dist/sse.js.map +1 -1
- package/dist/stream-payload.d.ts +1 -0
- package/dist/stream-payload.d.ts.map +1 -1
- package/dist/stream-payload.js +11 -1
- package/dist/stream-payload.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -22,13 +22,12 @@ The library is tracked as its own product in Umbrella. Its own `products/qitqore
|
|
|
22
22
|
folder, dedicated repository, and Umbrella tracking are the intended setup;
|
|
23
23
|
a separate Replit preview artifact is not required.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
as QitQode. The copyright holder is QitQode contributors, Spannings LLC.
|
|
25
|
+
The published `@qitqode/qitqore@0.3.0` release is immutable and licensed under
|
|
26
|
+
the [MIT License](./LICENSE), the same license as QitQode. Its package includes
|
|
27
|
+
the `LICENSE` file. The copyright holder is QitQode contributors, Spannings LLC.
|
|
29
28
|
|
|
30
|
-
The
|
|
31
|
-
`0.
|
|
29
|
+
The `0.1.0` and `0.2.0` artifacts remain immutable; current consumer pins target
|
|
30
|
+
`0.2.0` until each consumer adopts `0.3.0`.
|
|
32
31
|
|
|
33
32
|
## Development
|
|
34
33
|
|
|
@@ -45,10 +44,12 @@ compiled ESM export at `.`.
|
|
|
45
44
|
|
|
46
45
|
## Released consumer adoption
|
|
47
46
|
|
|
48
|
-
The public package is **`@qitqode/qitqore@0.
|
|
49
|
-
`npm install --save-exact @qitqode/qitqore@0.
|
|
50
|
-
QitQode CLI, its backend SDK, and Wud pin
|
|
51
|
-
manifests and native Bun/npm lockfiles; they do not import sibling
|
|
47
|
+
The latest public package is **`@qitqode/qitqore@0.3.0`**. Install it with
|
|
48
|
+
`npm install --save-exact @qitqode/qitqore@0.3.0`. The independently managed
|
|
49
|
+
QitQode CLI, its backend SDK, and Wud currently pin the exact `0.2.0` release in
|
|
50
|
+
their own manifests and native Bun/npm lockfiles; they do not import sibling
|
|
51
|
+
source. Adopting `0.3.0` in a consumer is a separate change to its exact pin and
|
|
52
|
+
regenerated lockfile.
|
|
52
53
|
|
|
53
54
|
QitQode retains AI SDK/native-tool adaptation, credential recovery, advisory
|
|
54
55
|
budgets and session policy. Session retries carry an explicit operation ID;
|
|
@@ -91,8 +92,9 @@ regenerated native lockfiles.
|
|
|
91
92
|
|
|
92
93
|
Release 0.1.0's registry manifest does not declare a license. QitQode's generated
|
|
93
94
|
notice inventory identifies that exact release as first-party code without
|
|
94
|
-
inventing a third-party license grant. That release is not rewritten. The
|
|
95
|
-
|
|
95
|
+
inventing a third-party license grant. That release is not rewritten. The
|
|
96
|
+
published `0.2.0` release declares `"license": "MIT"` and ships its `LICENSE`
|
|
97
|
+
file in the package.
|
|
96
98
|
|
|
97
99
|
## Host responsibilities
|
|
98
100
|
|
|
@@ -124,9 +126,40 @@ Errors expose bounded, redacted diagnostic fields and request IDs, not raw
|
|
|
124
126
|
response bodies or request credentials. Hosts may retain their existing
|
|
125
127
|
product-specific error mappings around these shared primitives.
|
|
126
128
|
|
|
127
|
-
##
|
|
129
|
+
## Release 0.3.0
|
|
128
130
|
|
|
129
|
-
|
|
131
|
+
Version 0.3.0 adds features without removing or renaming any 0.2.0 export:
|
|
132
|
+
|
|
133
|
+
- **Decision-policy client.** New `createDecisionPolicyClient`,
|
|
134
|
+
`assertDecisionPolicyRequest`, `parseDecisionPolicyResult` and
|
|
135
|
+
`DECISION_POLICY_CONTRACT_VERSION`, described below.
|
|
136
|
+
- **Free-tier fallback stage.** `SseDecoder` events may carry
|
|
137
|
+
`routingStatus: "free-fallback"` and `routingStage: "auto-free" | "free-pool"`
|
|
138
|
+
from Qortex's routing headers. `classifyQortexStreamPayload` reports the same
|
|
139
|
+
stage as an optional `fallbackStage` on a `routing-status` control frame.
|
|
140
|
+
- **Untrusted stage values.** A routing-status frame whose `fallbackStage` is
|
|
141
|
+
present but is neither `auto-free` nor `free-pool` is now classified as plain
|
|
142
|
+
`json` instead of a routing-status control. A frame without `fallbackStage`
|
|
143
|
+
is classified exactly as in 0.2.0.
|
|
144
|
+
|
|
145
|
+
## Decision-policy client
|
|
146
|
+
|
|
147
|
+
`createDecisionPolicyClient` is a typed, zero-dependency client for OmniQuery's
|
|
148
|
+
named decision policies, reached through a Qortex module route. It validates the
|
|
149
|
+
request and response contract, and it makes exactly one POST per call with no
|
|
150
|
+
retries. The host supplies the base URL, the module path, the function name and
|
|
151
|
+
the caller's credential headers. QitQore never chooses a policy, tier, model or
|
|
152
|
+
rubric, never loads or stores credentials, and never invents request or
|
|
153
|
+
idempotency identities. A result is returned as data for the host to decide on.
|
|
154
|
+
|
|
155
|
+
The response parser cross-checks the status against the findings and the
|
|
156
|
+
aggregate usage against the per-invocation segments. A tampered or inconsistent
|
|
157
|
+
result is a `QortexProtocolError`, not a decision. The client was first
|
|
158
|
+
published in `0.3.0`.
|
|
159
|
+
|
|
160
|
+
## Shared wire contracts (0.2.0)
|
|
161
|
+
|
|
162
|
+
The 0.2.0 release adds one implementation of the public Qortex contracts that
|
|
130
163
|
QitQode and Wud previously duplicated. Each area states what QitQore does and
|
|
131
164
|
what stays with the host.
|
|
132
165
|
|
|
@@ -146,7 +179,10 @@ what stays with the host.
|
|
|
146
179
|
- **SSE payloads.** `SseDecoder` and `iterateSse` frame the stream.
|
|
147
180
|
`classifyQortexStreamPayload` then returns a tagged result: `text`, `json`,
|
|
148
181
|
`usage`, `cost`, `control` (the documented free-fallback routing signal),
|
|
149
|
-
`done`, `error`, or `empty`.
|
|
182
|
+
`done`, `error`, or `empty`. The routing control keeps its generic status and
|
|
183
|
+
accepts only an optional `fallbackStage` of `auto-free` or `free-pool`; legacy
|
|
184
|
+
stage-less frames remain valid, while unknown stage values stay ordinary JSON.
|
|
185
|
+
Plain tokens stay `text`, malformed or non-object
|
|
150
186
|
JSON stays `text`, and unknown objects stay `json`. The host converts OpenAI
|
|
151
187
|
chunks, tool calls, finish reasons, accounting, and terminal success. A stream
|
|
152
188
|
that ends without a terminator remains incomplete.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { QortexClient } from "./transport.js";
|
|
2
|
+
export declare const DECISION_POLICY_CONTRACT_VERSION = 1;
|
|
3
|
+
export type DecisionPolicyStatus = "decided" | "partial" | "abstained";
|
|
4
|
+
export type DecisionNativeTier = "decisions" | "quick-decisions";
|
|
5
|
+
export interface DecisionPolicySubject {
|
|
6
|
+
kind: "request" | "candidate" | "requirement_check";
|
|
7
|
+
id: string;
|
|
8
|
+
requirementID?: string;
|
|
9
|
+
checkID?: string;
|
|
10
|
+
evidenceIDs?: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface DecisionPolicyFinding {
|
|
13
|
+
findingID: string;
|
|
14
|
+
subject: DecisionPolicySubject;
|
|
15
|
+
status: "decided" | "abstained";
|
|
16
|
+
source: "model" | "deterministic";
|
|
17
|
+
nativeType: "noul" | "choice" | "score" | null;
|
|
18
|
+
verdict: string | null;
|
|
19
|
+
selectedCandidateID?: string;
|
|
20
|
+
noul?: number;
|
|
21
|
+
probabilities?: Record<string, number>;
|
|
22
|
+
confidence?: number;
|
|
23
|
+
ordinalScore?: number;
|
|
24
|
+
legend?: Record<string, unknown>;
|
|
25
|
+
nativeTier?: DecisionNativeTier;
|
|
26
|
+
reasonCodes: string[];
|
|
27
|
+
}
|
|
28
|
+
export interface DecisionPolicyInvocation {
|
|
29
|
+
invocationID: string;
|
|
30
|
+
tier: DecisionNativeTier;
|
|
31
|
+
nativeUsage: {
|
|
32
|
+
input_tokens: number;
|
|
33
|
+
output_tokens: number;
|
|
34
|
+
};
|
|
35
|
+
usage: {
|
|
36
|
+
prompt_tokens: number;
|
|
37
|
+
completion_tokens: number;
|
|
38
|
+
total_tokens: number;
|
|
39
|
+
context_window: number;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export interface DecisionPolicyResult {
|
|
43
|
+
contractVersion: 1;
|
|
44
|
+
policy: string;
|
|
45
|
+
policyVersion: string;
|
|
46
|
+
status: DecisionPolicyStatus;
|
|
47
|
+
verdict: string | null;
|
|
48
|
+
findings: DecisionPolicyFinding[];
|
|
49
|
+
observationOnly: boolean;
|
|
50
|
+
reasonCodes: string[];
|
|
51
|
+
durationMs: number;
|
|
52
|
+
requestID?: string;
|
|
53
|
+
usage: {
|
|
54
|
+
invocations: DecisionPolicyInvocation[];
|
|
55
|
+
aggregate: {
|
|
56
|
+
promptTokens: number;
|
|
57
|
+
completionTokens: number;
|
|
58
|
+
totalTokens: number;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export interface DecisionPolicyRequest {
|
|
63
|
+
contractVersion: 1;
|
|
64
|
+
policy: string;
|
|
65
|
+
expectedPolicyVersion?: string;
|
|
66
|
+
state: Record<string, unknown>;
|
|
67
|
+
evidence?: Record<string, unknown>;
|
|
68
|
+
images?: Array<string | {
|
|
69
|
+
content_type: string;
|
|
70
|
+
base64: string;
|
|
71
|
+
}>;
|
|
72
|
+
timeoutMs?: number;
|
|
73
|
+
requestID?: string;
|
|
74
|
+
escalation?: "none" | "full-on-abstain";
|
|
75
|
+
}
|
|
76
|
+
export interface DecisionPolicyCallOptions {
|
|
77
|
+
/** Caller-supplied credential headers, for example the Forgewise or Qortex key. QitQode never creates them. */
|
|
78
|
+
headers: HeadersInit;
|
|
79
|
+
/** Host-supplied request identity. Never invented here. */
|
|
80
|
+
requestId?: string;
|
|
81
|
+
/** Host-supplied stable idempotency key. Never invented here. */
|
|
82
|
+
idempotencyKey?: string;
|
|
83
|
+
signal?: AbortSignal;
|
|
84
|
+
timeoutMs?: number;
|
|
85
|
+
}
|
|
86
|
+
export interface DecisionPolicyResponse {
|
|
87
|
+
data: DecisionPolicyResult;
|
|
88
|
+
status: number;
|
|
89
|
+
requestId?: string;
|
|
90
|
+
}
|
|
91
|
+
export interface DecisionPolicyClientOptions {
|
|
92
|
+
/** Explicit Qortex base URL. Required so the route origin is always an explicit host decision. */
|
|
93
|
+
baseUrl: string | URL;
|
|
94
|
+
/** Optional preconstructed transport. Its base URL must match `baseUrl`. */
|
|
95
|
+
client?: QortexClient;
|
|
96
|
+
fetch?: typeof globalThis.fetch;
|
|
97
|
+
timeoutMs?: number;
|
|
98
|
+
/** Host-selected approved module path, for example the one the host has tested against. No default. */
|
|
99
|
+
module: string;
|
|
100
|
+
/** Host-selected public function name, for example `evaluateDecisionPolicy`. No default. */
|
|
101
|
+
functionName: string;
|
|
102
|
+
}
|
|
103
|
+
export interface DecisionPolicyClient {
|
|
104
|
+
evaluate(request: DecisionPolicyRequest, options: DecisionPolicyCallOptions): Promise<DecisionPolicyResponse>;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Validate a caller's request locally before any network call.
|
|
108
|
+
* @param value - Untrusted request body.
|
|
109
|
+
* @returns The same request, typed.
|
|
110
|
+
* @throws TypeError naming the first violated rule. Values are never echoed.
|
|
111
|
+
*/
|
|
112
|
+
export declare function assertDecisionPolicyRequest(value: unknown): DecisionPolicyRequest;
|
|
113
|
+
/**
|
|
114
|
+
* Parse and cross-check a policy result. The status must agree with the findings, and the aggregate must equal
|
|
115
|
+
* the sum of the per-invocation segments, so a malformed or tampered response cannot pass as a decided result.
|
|
116
|
+
* @param value - Unwrapped policy result from the Qortex envelope.
|
|
117
|
+
* @param context - Status and request ID for sanitized error evidence.
|
|
118
|
+
* @returns A typed result.
|
|
119
|
+
* @throws QortexProtocolError for any contract violation.
|
|
120
|
+
*/
|
|
121
|
+
export declare function parseDecisionPolicyResult(value: unknown, context?: {
|
|
122
|
+
status?: number;
|
|
123
|
+
requestId?: string;
|
|
124
|
+
}): DecisionPolicyResult;
|
|
125
|
+
/**
|
|
126
|
+
* Create a typed decision-policy client for one explicitly selected Qortex module function.
|
|
127
|
+
* @param options - Base URL, optional transport, and the host-chosen module and function names.
|
|
128
|
+
* @returns A client whose `evaluate` sends one POST per call and never retries.
|
|
129
|
+
* @throws TypeError for an invalid module, function name or base URL.
|
|
130
|
+
*/
|
|
131
|
+
export declare function createDecisionPolicyClient(options: DecisionPolicyClientOptions): DecisionPolicyClient;
|
|
132
|
+
//# sourceMappingURL=decision-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-policy.d.ts","sourceRoot":"","sources":["../src/decision-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed client for OmniQuery's named decision policies, reached through a Qortex module route.
|
|
3
|
+
*
|
|
4
|
+
* QitQore validates the contract and carries the call. It never chooses a policy, tier, model, rubric or
|
|
5
|
+
* temperature; never loads or stores credentials; never invents operation or idempotency IDs; and never retries.
|
|
6
|
+
* The host supplies the module path, function name, base URL and caller credential headers explicitly, so no
|
|
7
|
+
* historical alias is picked silently. Semantic outcomes are returned as data; this client decides nothing with them.
|
|
8
|
+
*/
|
|
9
|
+
import { QortexProtocolError } from "./errors.js";
|
|
10
|
+
import { qortexModuleEndpoint, qortexRequestHeaders } from "./route-contract.js";
|
|
11
|
+
import { createQortexClient, unwrapSuccessEnvelope } from "./transport.js";
|
|
12
|
+
export const DECISION_POLICY_CONTRACT_VERSION = 1;
|
|
13
|
+
/** Largest request body the native decision layer accepts (13 MiB serialized). */
|
|
14
|
+
const MAX_REQUEST_BYTES = 13 * 1024 * 1024;
|
|
15
|
+
const MAX_TIMEOUT_MS = 60_000;
|
|
16
|
+
const MAX_IMAGES = 4;
|
|
17
|
+
const POLICY_NAME = /^[a-z][a-z0-9]*(?:\.[a-z0-9]+)*\.v[0-9]+$/;
|
|
18
|
+
const POLICY_VERSION = /^[a-z][a-z0-9]*(?:\.[a-z0-9]+)*\.v[0-9]+@[0-9]+\.[0-9]+\.[0-9]+$/;
|
|
19
|
+
const TIERS = new Set(["decisions", "quick-decisions"]);
|
|
20
|
+
const REQUEST_KEYS = new Set([
|
|
21
|
+
"contractVersion", "policy", "expectedPolicyVersion", "state", "evidence",
|
|
22
|
+
"images", "timeoutMs", "requestID", "escalation",
|
|
23
|
+
]);
|
|
24
|
+
/** Options a caller may never send: tier, model and sampling are chosen server-side by the registry. */
|
|
25
|
+
const FORBIDDEN_REQUEST_KEYS = ["tier", "model", "temperature"];
|
|
26
|
+
function contractError(message) {
|
|
27
|
+
return new TypeError(message);
|
|
28
|
+
}
|
|
29
|
+
function isPlainObject(value) {
|
|
30
|
+
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
31
|
+
return false;
|
|
32
|
+
const prototype = Object.getPrototypeOf(value);
|
|
33
|
+
return prototype === Object.prototype || prototype === null;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Validate a caller's request locally before any network call.
|
|
37
|
+
* @param value - Untrusted request body.
|
|
38
|
+
* @returns The same request, typed.
|
|
39
|
+
* @throws TypeError naming the first violated rule. Values are never echoed.
|
|
40
|
+
*/
|
|
41
|
+
export function assertDecisionPolicyRequest(value) {
|
|
42
|
+
if (!isPlainObject(value))
|
|
43
|
+
throw contractError("Decision policy request must be a plain object");
|
|
44
|
+
for (const key of FORBIDDEN_REQUEST_KEYS) {
|
|
45
|
+
if (Object.hasOwn(value, key))
|
|
46
|
+
throw contractError("Decision policy requests cannot choose a tier, model or sampling option");
|
|
47
|
+
}
|
|
48
|
+
for (const key of Object.keys(value)) {
|
|
49
|
+
if (!REQUEST_KEYS.has(key))
|
|
50
|
+
throw contractError("Decision policy request contains an undocumented field");
|
|
51
|
+
}
|
|
52
|
+
if (value.contractVersion !== DECISION_POLICY_CONTRACT_VERSION)
|
|
53
|
+
throw contractError("Decision policy contractVersion must be 1");
|
|
54
|
+
if (typeof value.policy !== "string" || value.policy.length > 80 || !POLICY_NAME.test(value.policy)) {
|
|
55
|
+
throw contractError("Decision policy name is invalid");
|
|
56
|
+
}
|
|
57
|
+
if (value.expectedPolicyVersion !== undefined && (typeof value.expectedPolicyVersion !== "string"
|
|
58
|
+
|| value.expectedPolicyVersion.length > 120 || !POLICY_VERSION.test(value.expectedPolicyVersion))) {
|
|
59
|
+
throw contractError("expectedPolicyVersion must name an immutable policy version");
|
|
60
|
+
}
|
|
61
|
+
if (!isPlainObject(value.state))
|
|
62
|
+
throw contractError("Decision policy state must be a plain object");
|
|
63
|
+
if (value.evidence !== undefined && !isPlainObject(value.evidence))
|
|
64
|
+
throw contractError("Decision policy evidence must be a plain object");
|
|
65
|
+
if (value.images !== undefined) {
|
|
66
|
+
if (!Array.isArray(value.images) || value.images.length > MAX_IMAGES)
|
|
67
|
+
throw contractError("Decision policy images must be an array of at most four items");
|
|
68
|
+
for (const image of value.images) {
|
|
69
|
+
const valid = typeof image === "string"
|
|
70
|
+
? /^data:/i.test(image)
|
|
71
|
+
: isPlainObject(image) && typeof image.content_type === "string" && typeof image.base64 === "string" && image.base64.length > 0;
|
|
72
|
+
if (!valid)
|
|
73
|
+
throw contractError("Decision policy image must be a data URL or a content_type and base64 pair");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (value.timeoutMs !== undefined && (typeof value.timeoutMs !== "number" || !Number.isFinite(value.timeoutMs)
|
|
77
|
+
|| value.timeoutMs <= 0 || value.timeoutMs > MAX_TIMEOUT_MS)) {
|
|
78
|
+
throw contractError("Decision policy timeoutMs must be between 1 and 60000");
|
|
79
|
+
}
|
|
80
|
+
if (value.requestID !== undefined && (typeof value.requestID !== "string" || value.requestID.length === 0 || value.requestID.length > 128)) {
|
|
81
|
+
throw contractError("Decision policy requestID must contain between 1 and 128 characters");
|
|
82
|
+
}
|
|
83
|
+
if (value.escalation !== undefined && value.escalation !== "none" && value.escalation !== "full-on-abstain") {
|
|
84
|
+
throw contractError("Decision policy escalation must be none or full-on-abstain");
|
|
85
|
+
}
|
|
86
|
+
return value;
|
|
87
|
+
}
|
|
88
|
+
function protocolError(message, status, requestId) {
|
|
89
|
+
return new QortexProtocolError(message, status, requestId);
|
|
90
|
+
}
|
|
91
|
+
function isFiniteNumber(value, min = -Infinity, max = Infinity) {
|
|
92
|
+
return typeof value === "number" && Number.isFinite(value) && value >= min && value <= max;
|
|
93
|
+
}
|
|
94
|
+
function isCount(value) {
|
|
95
|
+
return Number.isInteger(value) && value >= 0;
|
|
96
|
+
}
|
|
97
|
+
function isStringArray(value, max) {
|
|
98
|
+
return Array.isArray(value) && value.length <= max && value.every(item => typeof item === "string");
|
|
99
|
+
}
|
|
100
|
+
function isProbabilityMap(value) {
|
|
101
|
+
return isPlainObject(value) && Object.values(value).every(probability => isFiniteNumber(probability, 0, 1));
|
|
102
|
+
}
|
|
103
|
+
function parseSubject(value) {
|
|
104
|
+
if (!isPlainObject(value) || typeof value.id !== "string")
|
|
105
|
+
throw protocolError("Decision policy subject is malformed");
|
|
106
|
+
if (value.kind === "request")
|
|
107
|
+
return { kind: "request", id: value.id };
|
|
108
|
+
if (value.kind === "candidate")
|
|
109
|
+
return { kind: "candidate", id: value.id };
|
|
110
|
+
if (value.kind === "requirement_check" && typeof value.requirementID === "string"
|
|
111
|
+
&& typeof value.checkID === "string" && isStringArray(value.evidenceIDs, 5)) {
|
|
112
|
+
return { kind: "requirement_check", id: value.id, requirementID: value.requirementID, checkID: value.checkID, evidenceIDs: [...value.evidenceIDs] };
|
|
113
|
+
}
|
|
114
|
+
throw protocolError("Decision policy subject kind is not recognized");
|
|
115
|
+
}
|
|
116
|
+
function parseFinding(value) {
|
|
117
|
+
if (!isPlainObject(value) || typeof value.findingID !== "string")
|
|
118
|
+
throw protocolError("Decision policy finding is malformed");
|
|
119
|
+
const status = value.status;
|
|
120
|
+
const source = value.source;
|
|
121
|
+
const nativeType = value.nativeType;
|
|
122
|
+
if ((status !== "decided" && status !== "abstained") || (source !== "model" && source !== "deterministic")) {
|
|
123
|
+
throw protocolError("Decision policy finding status is not recognized");
|
|
124
|
+
}
|
|
125
|
+
if (nativeType !== null && nativeType !== "noul" && nativeType !== "choice" && nativeType !== "score") {
|
|
126
|
+
throw protocolError("Decision policy native type is not recognized");
|
|
127
|
+
}
|
|
128
|
+
if (value.verdict !== null && typeof value.verdict !== "string")
|
|
129
|
+
throw protocolError("Decision policy verdict must be a string or null");
|
|
130
|
+
if (!isStringArray(value.reasonCodes, 16))
|
|
131
|
+
throw protocolError("Decision policy reason codes are malformed");
|
|
132
|
+
if (value.noul !== undefined && !isFiniteNumber(value.noul, 0, 1))
|
|
133
|
+
throw protocolError("Decision policy noul must be a probability");
|
|
134
|
+
if (value.probabilities !== undefined && !isProbabilityMap(value.probabilities))
|
|
135
|
+
throw protocolError("Decision policy probabilities must be probabilities");
|
|
136
|
+
if (value.confidence !== undefined && !isFiniteNumber(value.confidence, 0, 1))
|
|
137
|
+
throw protocolError("Decision policy confidence must be a probability");
|
|
138
|
+
if (value.ordinalScore !== undefined && !isFiniteNumber(value.ordinalScore))
|
|
139
|
+
throw protocolError("Decision policy ordinal score must be finite");
|
|
140
|
+
if (value.nativeTier !== undefined && !TIERS.has(value.nativeTier))
|
|
141
|
+
throw protocolError("Decision policy native tier is not recognized");
|
|
142
|
+
if (value.selectedCandidateID !== undefined && typeof value.selectedCandidateID !== "string")
|
|
143
|
+
throw protocolError("Decision policy selected candidate is malformed");
|
|
144
|
+
return {
|
|
145
|
+
findingID: value.findingID,
|
|
146
|
+
subject: parseSubject(value.subject),
|
|
147
|
+
status,
|
|
148
|
+
source,
|
|
149
|
+
nativeType,
|
|
150
|
+
verdict: value.verdict,
|
|
151
|
+
reasonCodes: [...value.reasonCodes],
|
|
152
|
+
...(value.noul !== undefined && { noul: value.noul }),
|
|
153
|
+
...(value.probabilities !== undefined && { probabilities: { ...value.probabilities } }),
|
|
154
|
+
...(value.confidence !== undefined && { confidence: value.confidence }),
|
|
155
|
+
...(value.ordinalScore !== undefined && { ordinalScore: value.ordinalScore }),
|
|
156
|
+
...(value.legend !== undefined && isPlainObject(value.legend) && { legend: { ...value.legend } }),
|
|
157
|
+
...(value.nativeTier !== undefined && { nativeTier: value.nativeTier }),
|
|
158
|
+
...(value.selectedCandidateID !== undefined && { selectedCandidateID: value.selectedCandidateID }),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function parseInvocation(value) {
|
|
162
|
+
if (!isPlainObject(value) || typeof value.invocationID !== "string" || !TIERS.has(value.tier)) {
|
|
163
|
+
throw protocolError("Decision policy usage segment is malformed");
|
|
164
|
+
}
|
|
165
|
+
const native = value.nativeUsage;
|
|
166
|
+
const usage = value.usage;
|
|
167
|
+
if (!isPlainObject(native) || !isCount(native.input_tokens) || !isCount(native.output_tokens)) {
|
|
168
|
+
throw protocolError("Decision policy native usage is malformed");
|
|
169
|
+
}
|
|
170
|
+
if (!isPlainObject(usage) || !isCount(usage.prompt_tokens) || !isCount(usage.completion_tokens)
|
|
171
|
+
|| !isCount(usage.total_tokens) || !isCount(usage.context_window)) {
|
|
172
|
+
throw protocolError("Decision policy usage is malformed");
|
|
173
|
+
}
|
|
174
|
+
return {
|
|
175
|
+
invocationID: value.invocationID,
|
|
176
|
+
tier: value.tier,
|
|
177
|
+
nativeUsage: { input_tokens: native.input_tokens, output_tokens: native.output_tokens },
|
|
178
|
+
usage: {
|
|
179
|
+
prompt_tokens: usage.prompt_tokens, completion_tokens: usage.completion_tokens,
|
|
180
|
+
total_tokens: usage.total_tokens, context_window: usage.context_window,
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Parse and cross-check a policy result. The status must agree with the findings, and the aggregate must equal
|
|
186
|
+
* the sum of the per-invocation segments, so a malformed or tampered response cannot pass as a decided result.
|
|
187
|
+
* @param value - Unwrapped policy result from the Qortex envelope.
|
|
188
|
+
* @param context - Status and request ID for sanitized error evidence.
|
|
189
|
+
* @returns A typed result.
|
|
190
|
+
* @throws QortexProtocolError for any contract violation.
|
|
191
|
+
*/
|
|
192
|
+
export function parseDecisionPolicyResult(value, context = {}) {
|
|
193
|
+
const fail = (message) => protocolError(message, context.status, context.requestId);
|
|
194
|
+
if (!isPlainObject(value))
|
|
195
|
+
throw fail("Decision policy result is malformed");
|
|
196
|
+
if (value.contractVersion !== DECISION_POLICY_CONTRACT_VERSION)
|
|
197
|
+
throw fail("Decision policy result uses an unsupported contract version");
|
|
198
|
+
if (typeof value.policy !== "string" || !POLICY_NAME.test(value.policy))
|
|
199
|
+
throw fail("Decision policy result names an invalid policy");
|
|
200
|
+
if (typeof value.policyVersion !== "string" || !POLICY_VERSION.test(value.policyVersion))
|
|
201
|
+
throw fail("Decision policy result has an invalid policy version");
|
|
202
|
+
if (value.status !== "decided" && value.status !== "partial" && value.status !== "abstained")
|
|
203
|
+
throw fail("Decision policy status is not recognized");
|
|
204
|
+
if (value.verdict !== null && typeof value.verdict !== "string")
|
|
205
|
+
throw fail("Decision policy verdict must be a string or null");
|
|
206
|
+
if (!Array.isArray(value.findings) || value.findings.length === 0 || value.findings.length > 128)
|
|
207
|
+
throw fail("Decision policy findings are malformed");
|
|
208
|
+
if (typeof value.observationOnly !== "boolean")
|
|
209
|
+
throw fail("Decision policy observationOnly must be a boolean");
|
|
210
|
+
if (!isStringArray(value.reasonCodes, 16) || !isFiniteNumber(value.durationMs, 0))
|
|
211
|
+
throw fail("Decision policy result metadata is malformed");
|
|
212
|
+
if (value.requestID !== undefined && typeof value.requestID !== "string")
|
|
213
|
+
throw fail("Decision policy requestID must be a string");
|
|
214
|
+
if (!isPlainObject(value.usage) || !Array.isArray(value.usage.invocations) || value.usage.invocations.length > 128)
|
|
215
|
+
throw fail("Decision policy usage is malformed");
|
|
216
|
+
const findings = value.findings.map(parseFinding);
|
|
217
|
+
const invocations = value.usage.invocations.map(parseInvocation);
|
|
218
|
+
const decidedCount = findings.filter(finding => finding.status === "decided").length;
|
|
219
|
+
const expectedStatus = decidedCount === findings.length ? "decided" : decidedCount === 0 ? "abstained" : "partial";
|
|
220
|
+
if (value.status !== expectedStatus)
|
|
221
|
+
throw fail("Decision policy status does not match its findings");
|
|
222
|
+
const aggregate = value.usage.aggregate;
|
|
223
|
+
const sum = (pick) => invocations.reduce((total, segment) => total + pick(segment), 0);
|
|
224
|
+
const expectedAggregate = {
|
|
225
|
+
promptTokens: sum(segment => segment.usage.prompt_tokens),
|
|
226
|
+
completionTokens: sum(segment => segment.usage.completion_tokens),
|
|
227
|
+
totalTokens: sum(segment => segment.usage.total_tokens),
|
|
228
|
+
};
|
|
229
|
+
if (!isPlainObject(aggregate) || aggregate.promptTokens !== expectedAggregate.promptTokens
|
|
230
|
+
|| aggregate.completionTokens !== expectedAggregate.completionTokens || aggregate.totalTokens !== expectedAggregate.totalTokens) {
|
|
231
|
+
throw fail("Decision policy aggregate usage does not equal its invocations");
|
|
232
|
+
}
|
|
233
|
+
return {
|
|
234
|
+
contractVersion: 1,
|
|
235
|
+
policy: value.policy,
|
|
236
|
+
policyVersion: value.policyVersion,
|
|
237
|
+
status: value.status,
|
|
238
|
+
verdict: value.verdict,
|
|
239
|
+
findings,
|
|
240
|
+
observationOnly: value.observationOnly,
|
|
241
|
+
reasonCodes: [...value.reasonCodes],
|
|
242
|
+
durationMs: value.durationMs,
|
|
243
|
+
...(value.requestID !== undefined && { requestID: value.requestID }),
|
|
244
|
+
usage: { invocations, aggregate: expectedAggregate },
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
function resolveTransport(options) {
|
|
248
|
+
if (options.client)
|
|
249
|
+
return options.client;
|
|
250
|
+
return createQortexClient({
|
|
251
|
+
baseUrl: options.baseUrl,
|
|
252
|
+
...(options.fetch && { fetch: options.fetch }),
|
|
253
|
+
...(options.timeoutMs !== undefined && { timeoutMs: options.timeoutMs }),
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Create a typed decision-policy client for one explicitly selected Qortex module function.
|
|
258
|
+
* @param options - Base URL, optional transport, and the host-chosen module and function names.
|
|
259
|
+
* @returns A client whose `evaluate` sends one POST per call and never retries.
|
|
260
|
+
* @throws TypeError for an invalid module, function name or base URL.
|
|
261
|
+
*/
|
|
262
|
+
export function createDecisionPolicyClient(options) {
|
|
263
|
+
// Resolving the endpoint once validates the base URL and the host-chosen module and function names up front.
|
|
264
|
+
const endpoint = qortexModuleEndpoint({ baseUrl: options.baseUrl, module: options.module, functionName: options.functionName });
|
|
265
|
+
const transport = resolveTransport(options);
|
|
266
|
+
return {
|
|
267
|
+
async evaluate(request, callOptions) {
|
|
268
|
+
const body = assertDecisionPolicyRequest(request);
|
|
269
|
+
if (callOptions === null || typeof callOptions !== "object" || callOptions.headers === undefined) {
|
|
270
|
+
throw contractError("Decision policy calls require caller-supplied headers");
|
|
271
|
+
}
|
|
272
|
+
const serialized = JSON.stringify(body);
|
|
273
|
+
if (new TextEncoder().encode(serialized).byteLength > MAX_REQUEST_BYTES) {
|
|
274
|
+
throw contractError("Decision policy request exceeds the 13 MiB limit");
|
|
275
|
+
}
|
|
276
|
+
const headers = new Headers(callOptions.headers);
|
|
277
|
+
headers.set("content-type", "application/json");
|
|
278
|
+
for (const [name, value] of Object.entries(qortexRequestHeaders({
|
|
279
|
+
...(callOptions.requestId !== undefined && { requestId: callOptions.requestId }),
|
|
280
|
+
...(callOptions.idempotencyKey !== undefined && { idempotencyKey: callOptions.idempotencyKey }),
|
|
281
|
+
}))) {
|
|
282
|
+
headers.set(name, value);
|
|
283
|
+
}
|
|
284
|
+
const policy = {
|
|
285
|
+
...(callOptions.signal && { signal: callOptions.signal }),
|
|
286
|
+
...(callOptions.timeoutMs !== undefined && { timeoutMs: callOptions.timeoutMs }),
|
|
287
|
+
};
|
|
288
|
+
// Exactly one attempt. Decision inference may already be metered or accepted, so a retry is a host decision.
|
|
289
|
+
const response = await transport.requestJson(endpoint, { method: "POST", headers, body: serialized }, policy);
|
|
290
|
+
const data = parseDecisionPolicyResult(unwrapSuccessEnvelope(response.data), {
|
|
291
|
+
status: response.status,
|
|
292
|
+
...(response.requestId !== undefined && { requestId: response.requestId }),
|
|
293
|
+
});
|
|
294
|
+
if (data.policy !== body.policy) {
|
|
295
|
+
throw protocolError("Decision policy result names a different policy than requested", response.status, response.requestId);
|
|
296
|
+
}
|
|
297
|
+
if (body.expectedPolicyVersion !== undefined && data.policyVersion !== body.expectedPolicyVersion) {
|
|
298
|
+
throw protocolError("Decision policy result does not match the expected policy version", response.status, response.requestId);
|
|
299
|
+
}
|
|
300
|
+
return {
|
|
301
|
+
data,
|
|
302
|
+
status: response.status,
|
|
303
|
+
...(response.requestId !== undefined && { requestId: response.requestId }),
|
|
304
|
+
};
|
|
305
|
+
},
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=decision-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-policy.js","sourceRoot":"","sources":["../src/decision-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAgB,kBAAkB,EAAE,qBAAqB,EAA4B,MAAM,gBAAgB,CAAC;AAEnH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD,kFAAkF;AAClF,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAChE,MAAM,cAAc,GAAG,kEAAkE,CAAC;AAC1F,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,UAAU;IACzE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY;CACjD,CAAC,CAAC;AACH,wGAAwG;AACxG,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAoGhE,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,MAAM,aAAa,CAAC,gDAAgD,CAAC,CAAC;IACjG,KAAK,MAAM,GAAG,IAAI,sBAAsB,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;YAAE,MAAM,aAAa,CAAC,yEAAyE,CAAC,CAAC;IAChI,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,aAAa,CAAC,wDAAwD,CAAC,CAAC;IAC5G,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,KAAK,gCAAgC;QAAE,MAAM,aAAa,CAAC,2CAA2C,CAAC,CAAC;IACjI,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACpG,MAAM,aAAa,CAAC,iCAAiC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,CAAC,qBAAqB,KAAK,QAAQ;WAC5F,KAAK,CAAC,qBAAqB,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;QACpG,MAAM,aAAa,CAAC,6DAA6D,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,MAAM,aAAa,CAAC,8CAA8C,CAAC,CAAC;IACrG,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,MAAM,aAAa,CAAC,iDAAiD,CAAC,CAAC;IAC3I,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU;YAAE,MAAM,aAAa,CAAC,+DAA+D,CAAC,CAAC;QAC3J,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ;gBACrC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;gBACvB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAClI,IAAI,CAAC,KAAK;gBAAE,MAAM,aAAa,CAAC,4EAA4E,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;WACzG,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC;QAC/D,MAAM,aAAa,CAAC,uDAAuD,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;QAC3I,MAAM,aAAa,CAAC,qEAAqE,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;QAC5G,MAAM,aAAa,CAAC,4DAA4D,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,KAAyC,CAAC;AACnD,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,MAAe,EAAE,SAAkB;IACzE,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ;IACrE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC;AAC7F,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,GAAW;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAAE,MAAM,aAAa,CAAC,sCAAsC,CAAC,CAAC;IACvH,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IACvE,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IAC3E,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;WAC5E,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;IACtJ,CAAC;IACD,MAAM,aAAa,CAAC,gDAAgD,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QAAE,MAAM,aAAa,CAAC,sCAAsC,CAAC,CAAC;IAC9H,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,eAAe,CAAC,EAAE,CAAC;QAC3G,MAAM,aAAa,CAAC,kDAAkD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QACtG,MAAM,aAAa,CAAC,+CAA+C,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QAAE,MAAM,aAAa,CAAC,kDAAkD,CAAC,CAAC;IACzI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAAE,MAAM,aAAa,CAAC,4CAA4C,CAAC,CAAC;IAC7G,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAAE,MAAM,aAAa,CAAC,4CAA4C,CAAC,CAAC;IACrI,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;QAAE,MAAM,aAAa,CAAC,qDAAqD,CAAC,CAAC;IAC5J,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QAAE,MAAM,aAAa,CAAC,kDAAkD,CAAC,CAAC;IACvJ,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC;QAAE,MAAM,aAAa,CAAC,8CAA8C,CAAC,CAAC;IACjJ,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAoB,CAAC;QAAE,MAAM,aAAa,CAAC,+CAA+C,CAAC,CAAC;IACnJ,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,mBAAmB,KAAK,QAAQ;QAAE,MAAM,aAAa,CAAC,iDAAiD,CAAC,CAAC;IACrK,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;QACpC,MAAM;QACN,MAAM;QACN,UAAU;QACV,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;QACnC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;QACvF,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QACvE,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;QAC7E,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACjG,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAgC,EAAE,CAAC;QAC7F,GAAG,CAAC,KAAK,CAAC,mBAAmB,KAAK,SAAS,IAAI,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC;KACnG,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAc,CAAC,EAAE,CAAC;QACxG,MAAM,aAAa,CAAC,4CAA4C,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9F,MAAM,aAAa,CAAC,2CAA2C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;WAC1F,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QACpE,MAAM,aAAa,CAAC,oCAAoC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,IAAI,EAAE,KAAK,CAAC,IAA0B;QACtC,WAAW,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE;QACvF,KAAK,EAAE;YACL,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC9E,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc;SACvE;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAc,EAAE,UAAmD,EAAE;IAC7G,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5F,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,eAAe,KAAK,gCAAgC;QAAE,MAAM,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC1I,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,CAAC,gDAAgD,CAAC,CAAC;IACtI,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QAAE,MAAM,IAAI,CAAC,sDAAsD,CAAC,CAAC;IAC7J,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;QAAE,MAAM,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACrJ,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QAAE,MAAM,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAChI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACvJ,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,MAAM,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAChH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAAE,MAAM,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC9I,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QAAE,MAAM,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACnI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAErK,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IACrF,MAAM,cAAc,GAAG,YAAY,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACnH,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc;QAAE,MAAM,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAEtG,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,IAAmD,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACtI,MAAM,iBAAiB,GAAG;QACxB,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;QACzD,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACjE,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;KACxD,CAAC;IACF,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,YAAY,KAAK,iBAAiB,CAAC,YAAY;WACrF,SAAS,CAAC,gBAAgB,KAAK,iBAAiB,CAAC,gBAAgB,IAAI,SAAS,CAAC,WAAW,KAAK,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAClI,MAAM,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO;QACL,eAAe,EAAE,CAAC;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ;QACR,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;QACnC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACpE,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAoC;IAC5D,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1C,OAAO,kBAAkB,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9C,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;KACzE,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAoC;IAC7E,6GAA6G;IAC7G,MAAM,QAAQ,GAAG,oBAAoB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAChI,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW;YACjC,MAAM,IAAI,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjG,MAAM,aAAa,CAAC,uDAAuD,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,GAAG,iBAAiB,EAAE,CAAC;gBACxE,MAAM,aAAa,CAAC,kDAAkD,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAChD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;gBAC9D,GAAG,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;gBAChF,GAAG,CAAC,WAAW,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC;aAChG,CAAC,CAAC,EAAE,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,MAAM,MAAM,GAAwB;gBAClC,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;gBACzD,GAAG,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC;aACjF,CAAC;YACF,6GAA6G;YAC7G,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,CAAU,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;YACvH,MAAM,IAAI,GAAG,yBAAyB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC3E,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;aAC3E,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,aAAa,CAAC,gEAAgE,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC7H,CAAC;YACD,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAClG,MAAM,aAAa,CAAC,mEAAmE,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YAChI,CAAC;YACD,OAAO;gBACL,IAAI;gBACJ,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;aAC3E,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,4 +10,5 @@ export { parseRecoveryDirective, type QortexRecoveryDirective, type QortexRecove
|
|
|
10
10
|
export { MAX_RECOVERY_ADDITIONAL_WORK, MAX_RECOVERY_ROOT_REMAINING_MS, QORTEX_RECOVERY_CONTROL_HEADER, decodeRecoveryControlHeader, encodeRecoveryControlEnvelope, parseRecoveryControlEnvelope, parseRecoveryLeaseUsage, withRecoveryControlHeader, type QortexRecoveryAction, type QortexRecoveryAdditionalWorkAction, type QortexRecoveryConsumedWork, type QortexRecoveryControlEnvelope, type QortexRecoveryControlOperation, type QortexRecoveryLeaseUsage, } from "./recovery-lease.js";
|
|
11
11
|
export { qortexModuleEndpoint, qortexRequestHeaders, recoveryRouteID, } from "./route-contract.js";
|
|
12
12
|
export { abortableDelay, runWithRecovery, type AttemptOutcome, type QortexAttemptContext, type RecoveryAttemptOutcomeContext, type RecoveryOptions, type RemoteAcceptance, type ReplayAuthorizationContext, } from "./recovery.js";
|
|
13
|
+
export { DECISION_POLICY_CONTRACT_VERSION, assertDecisionPolicyRequest, createDecisionPolicyClient, parseDecisionPolicyResult, type DecisionNativeTier, type DecisionPolicyCallOptions, type DecisionPolicyClient, type DecisionPolicyClientOptions, type DecisionPolicyFinding, type DecisionPolicyInvocation, type DecisionPolicyRequest, type DecisionPolicyResponse, type DecisionPolicyResult, type DecisionPolicyStatus, type DecisionPolicySubject, } from "./decision-policy.js";
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,2BAA2B,EAC3B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,UAAU,EACV,UAAU,EACV,KAAK,cAAc,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,GAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,EACvC,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,2BAA2B,EAC3B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,UAAU,EACV,UAAU,EACV,KAAK,cAAc,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,GAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,EACvC,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,4 +10,5 @@ export { parseRecoveryDirective, } from "./recovery-directive.js";
|
|
|
10
10
|
export { MAX_RECOVERY_ADDITIONAL_WORK, MAX_RECOVERY_ROOT_REMAINING_MS, QORTEX_RECOVERY_CONTROL_HEADER, decodeRecoveryControlHeader, encodeRecoveryControlEnvelope, parseRecoveryControlEnvelope, parseRecoveryLeaseUsage, withRecoveryControlHeader, } from "./recovery-lease.js";
|
|
11
11
|
export { qortexModuleEndpoint, qortexRequestHeaders, recoveryRouteID, } from "./route-contract.js";
|
|
12
12
|
export { abortableDelay, runWithRecovery, } from "./recovery.js";
|
|
13
|
+
export { DECISION_POLICY_CONTRACT_VERSION, assertDecisionPolicyRequest, createDecisionPolicyClient, parseDecisionPolicyResult, } from "./decision-policy.js";
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,GAKhB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,2BAA2B,GAI5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,eAAe,GAIhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,GAG9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,GAItB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,UAAU,EACV,UAAU,GAEX,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,GAIpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GAQxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,GAKvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,GAO1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,eAAe,GAOhB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,GAKhB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,2BAA2B,GAI5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,eAAe,GAIhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,GAG9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,GAItB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,UAAU,EACV,UAAU,GAEX,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,GAIpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GAQxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,GAKvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,GAO1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,eAAe,GAOhB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,GAY1B,MAAM,sBAAsB,CAAC"}
|
package/dist/sse.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export interface QortexSseEvent {
|
|
|
3
3
|
event?: string;
|
|
4
4
|
id?: string;
|
|
5
5
|
retry?: number;
|
|
6
|
+
routingStatus?: "free-fallback";
|
|
7
|
+
routingStage?: "auto-free" | "free-pool";
|
|
6
8
|
}
|
|
7
9
|
export declare class SseDecoder {
|
|
8
10
|
private readonly decoder;
|
|
@@ -12,6 +14,8 @@ export declare class SseDecoder {
|
|
|
12
14
|
private eventId;
|
|
13
15
|
private lastEventId;
|
|
14
16
|
private retry;
|
|
17
|
+
private routingStatus;
|
|
18
|
+
private routingStage;
|
|
15
19
|
push(chunk: Uint8Array | string): QortexSseEvent[];
|
|
16
20
|
finish(): QortexSseEvent[];
|
|
17
21
|
private consume;
|
package/dist/sse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;CAC1C;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAAwC;IAE5D,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,cAAc,EAAE;IAQlD,MAAM,IAAI,cAAc,EAAE;IAS1B,OAAO,CAAC,OAAO;IAgCf,OAAO,CAAC,WAAW;IAsDnB,OAAO,CAAC,UAAU;CAQnB;AAED,wBAAuB,UAAU,CAC/B,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,cAAc,CAAC,CA0ChC"}
|
package/dist/sse.js
CHANGED
|
@@ -6,6 +6,8 @@ export class SseDecoder {
|
|
|
6
6
|
eventId;
|
|
7
7
|
lastEventId;
|
|
8
8
|
retry;
|
|
9
|
+
routingStatus;
|
|
10
|
+
routingStage;
|
|
9
11
|
push(chunk) {
|
|
10
12
|
const text = typeof chunk === "string"
|
|
11
13
|
? this.decoder.decode() + chunk
|
|
@@ -55,7 +57,7 @@ export class SseDecoder {
|
|
|
55
57
|
}
|
|
56
58
|
processLine(line) {
|
|
57
59
|
if (line.length === 0) {
|
|
58
|
-
if (this.data.length === 0) {
|
|
60
|
+
if (this.data.length === 0 && this.routingStatus === undefined) {
|
|
59
61
|
this.resetFrame();
|
|
60
62
|
return [];
|
|
61
63
|
}
|
|
@@ -66,6 +68,8 @@ export class SseDecoder {
|
|
|
66
68
|
? { id: this.eventId ?? this.lastEventId }
|
|
67
69
|
: {}),
|
|
68
70
|
...(this.retry === undefined ? {} : { retry: this.retry }),
|
|
71
|
+
...(this.routingStatus ? { routingStatus: this.routingStatus } : {}),
|
|
72
|
+
...(this.routingStage ? { routingStage: this.routingStage } : {}),
|
|
69
73
|
};
|
|
70
74
|
this.resetFrame();
|
|
71
75
|
return [event];
|
|
@@ -94,6 +98,15 @@ export class SseDecoder {
|
|
|
94
98
|
if (/^\d+$/.test(value))
|
|
95
99
|
this.retry = Number(value);
|
|
96
100
|
break;
|
|
101
|
+
case "qortex-routing-status":
|
|
102
|
+
if (value === "free-fallback")
|
|
103
|
+
this.routingStatus = "free-fallback";
|
|
104
|
+
break;
|
|
105
|
+
case "qortex-routing-stage":
|
|
106
|
+
if (this.routingStatus === "free-fallback" && (value === "auto-free" || value === "free-pool")) {
|
|
107
|
+
this.routingStage = value;
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
97
110
|
}
|
|
98
111
|
return [];
|
|
99
112
|
}
|
|
@@ -102,6 +115,8 @@ export class SseDecoder {
|
|
|
102
115
|
this.eventName = undefined;
|
|
103
116
|
this.eventId = undefined;
|
|
104
117
|
this.retry = undefined;
|
|
118
|
+
this.routingStatus = undefined;
|
|
119
|
+
this.routingStage = undefined;
|
|
105
120
|
}
|
|
106
121
|
}
|
|
107
122
|
export async function* iterateSse(stream, signal) {
|
package/dist/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"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"}
|
package/dist/stream-payload.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-payload.d.ts","sourceRoot":"","sources":["../src/stream-payload.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,WAAW,CAAC;AAC5D,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,aAAa,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAChG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"stream-payload.d.ts","sourceRoot":"","sources":["../src/stream-payload.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,WAAW,CAAC;AAC5D,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,aAAa,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAChG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,eAAe,CAAC;IAAC,aAAa,CAAC,EAAE,WAAW,GAAG,WAAW,CAAA;CAAE,GAClH;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAwC1E,yFAAyF;AACzF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CA+C7E"}
|
package/dist/stream-payload.js
CHANGED
|
@@ -79,7 +79,17 @@ export function classifyQortexStreamPayload(data) {
|
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
81
|
if (id === "qortex-routing" && parsed.object === "qortex.routing.status" && parsed.status === "free-fallback") {
|
|
82
|
-
|
|
82
|
+
const hasStage = Object.prototype.hasOwnProperty.call(parsed, "fallbackStage");
|
|
83
|
+
const fallbackStage = parsed.fallbackStage;
|
|
84
|
+
if (hasStage && fallbackStage !== "auto-free" && fallbackStage !== "free-pool") {
|
|
85
|
+
return { kind: "json", value: parsed };
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
kind: "control",
|
|
89
|
+
control: "routing-status",
|
|
90
|
+
status: "free-fallback",
|
|
91
|
+
...(hasStage ? { fallbackStage: fallbackStage } : {}),
|
|
92
|
+
};
|
|
83
93
|
}
|
|
84
94
|
return { kind: "json", value: parsed };
|
|
85
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-payload.js","sourceRoot":"","sources":["../src/stream-payload.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stream-payload.js","sourceRoot":"","sources":["../src/stream-payload.ts"],"names":[],"mappings":"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"}
|