@qitqode/qitqore 0.1.0 → 0.2.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/LICENSE +21 -0
- package/README.md +129 -0
- package/dist/device-authorization.d.ts +67 -0
- package/dist/device-authorization.d.ts.map +1 -0
- package/dist/device-authorization.js +122 -0
- package/dist/device-authorization.js.map +1 -0
- package/dist/errors.d.ts +36 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +108 -17
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/recovery-capabilities.d.ts +26 -0
- package/dist/recovery-capabilities.d.ts.map +1 -0
- package/dist/recovery-capabilities.js +113 -0
- package/dist/recovery-capabilities.js.map +1 -0
- package/dist/recovery-directive.d.ts +20 -0
- package/dist/recovery-directive.d.ts.map +1 -0
- package/dist/recovery-directive.js +116 -0
- package/dist/recovery-directive.js.map +1 -0
- package/dist/recovery-lease.d.ts +80 -0
- package/dist/recovery-lease.d.ts.map +1 -0
- package/dist/recovery-lease.js +257 -0
- package/dist/recovery-lease.js.map +1 -0
- package/dist/recovery-status.d.ts +22 -0
- package/dist/recovery-status.d.ts.map +1 -0
- package/dist/recovery-status.js +113 -0
- package/dist/recovery-status.js.map +1 -0
- package/dist/recovery.d.ts +13 -0
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +94 -55
- package/dist/recovery.js.map +1 -1
- package/dist/redaction.d.ts +64 -0
- package/dist/redaction.d.ts.map +1 -0
- package/dist/redaction.js +154 -0
- package/dist/redaction.js.map +1 -0
- package/dist/route-contract.d.ts +36 -0
- package/dist/route-contract.d.ts.map +1 -0
- package/dist/route-contract.js +89 -0
- package/dist/route-contract.js.map +1 -0
- package/dist/stream-payload.d.ts +39 -0
- package/dist/stream-payload.d.ts.map +1 -0
- package/dist/stream-payload.js +86 -0
- package/dist/stream-payload.js.map +1 -0
- package/dist/transport.d.ts +10 -0
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +28 -0
- package/dist/transport.js.map +1 -1
- package/package.json +12 -2
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
export { QortexError, QortexHttpError, QortexProtocolError, QortexTimeoutError, QortexTransportError, isAbortError, qortexHttpError, type QortexErrorCategory, type QortexErrorDetails, } from "./errors.js";
|
|
1
|
+
export { QortexError, QortexHttpError, QortexProtocolError, QortexTimeoutError, QortexTransportError, hasReplayBlockingEvidence, isAbortError, qortexErrorEvidence, qortexErrorRequestId, qortexHttpError, type QortexAcceptanceState, type QortexErrorCategory, type QortexErrorDetails, type QortexErrorEvidence, } from "./errors.js";
|
|
2
|
+
export { classifyQortexStreamPayload, type QortexCostFrameID, type QortexStreamPayload, type QortexUsageFrameID, } from "./stream-payload.js";
|
|
3
|
+
export { createSecretRedactor, secretEncodings, type SecretRedactionStream, type SecretRedactor, type SecretRedactorOptions, } from "./redaction.js";
|
|
4
|
+
export { DeviceAuthorizationProtocolError, classifyDeviceTokenPoll, deviceAuthorizationExpired, parseDeviceAuthorizationStart, type DeviceAuthorizationStart, type DeviceTokenPollOutcome, } from "./device-authorization.js";
|
|
2
5
|
export { QortexClient, createQortexClient, isQortexHttpError, unwrapSuccessEnvelope, type QortexClientOptions, type QortexJsonResult, type QortexRequestPolicy, } from "./transport.js";
|
|
3
6
|
export { SseDecoder, iterateSse, type QortexSseEvent, } from "./sse.js";
|
|
4
|
-
export {
|
|
7
|
+
export { parseRecoveryStatus, type QortexExecutionState, type QortexRecoveryStatus, type QortexResultRecovery, } from "./recovery-status.js";
|
|
8
|
+
export { parseRecoveryCapabilities, parseRecoveryCapability, type QortexRecoveryCapabilities, type QortexRecoveryCapability, type QortexRecoveryMode, type QortexRecoveryRetry, type QortexRecoveryReplay, type QortexRecoveryResume, type QortexRecoveryReconciliation, } from "./recovery-capabilities.js";
|
|
9
|
+
export { parseRecoveryDirective, type QortexRecoveryDirective, type QortexRecoveryFailureLayer, type QortexRecoveryFailureCategory, type QortexRecommendedRecoveryAction, } from "./recovery-directive.js";
|
|
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
|
+
export { qortexModuleEndpoint, qortexRequestHeaders, recoveryRouteID, } from "./route-contract.js";
|
|
12
|
+
export { abortableDelay, runWithRecovery, type AttemptOutcome, type QortexAttemptContext, type RecoveryAttemptOutcomeContext, type RecoveryOptions, type RemoteAcceptance, type ReplayAuthorizationContext, } from "./recovery.js";
|
|
5
13
|
//# 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,YAAY,EACZ,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
export { QortexError, QortexHttpError, QortexProtocolError, QortexTimeoutError, QortexTransportError, isAbortError, qortexHttpError, } from "./errors.js";
|
|
1
|
+
export { QortexError, QortexHttpError, QortexProtocolError, QortexTimeoutError, QortexTransportError, hasReplayBlockingEvidence, isAbortError, qortexErrorEvidence, qortexErrorRequestId, qortexHttpError, } from "./errors.js";
|
|
2
|
+
export { classifyQortexStreamPayload, } from "./stream-payload.js";
|
|
3
|
+
export { createSecretRedactor, secretEncodings, } from "./redaction.js";
|
|
4
|
+
export { DeviceAuthorizationProtocolError, classifyDeviceTokenPoll, deviceAuthorizationExpired, parseDeviceAuthorizationStart, } from "./device-authorization.js";
|
|
2
5
|
export { QortexClient, createQortexClient, isQortexHttpError, unwrapSuccessEnvelope, } from "./transport.js";
|
|
3
6
|
export { SseDecoder, iterateSse, } from "./sse.js";
|
|
7
|
+
export { parseRecoveryStatus, } from "./recovery-status.js";
|
|
8
|
+
export { parseRecoveryCapabilities, parseRecoveryCapability, } from "./recovery-capabilities.js";
|
|
9
|
+
export { parseRecoveryDirective, } from "./recovery-directive.js";
|
|
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
|
+
export { qortexModuleEndpoint, qortexRequestHeaders, recoveryRouteID, } from "./route-contract.js";
|
|
4
12
|
export { abortableDelay, runWithRecovery, } from "./recovery.js";
|
|
5
13
|
//# 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,YAAY,EACZ,eAAe,
|
|
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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type QortexRecoveryMode = "buffered" | "streaming" | "async_job" | "utility";
|
|
2
|
+
export type QortexRecoveryRetry = "pre_execution_only" | "safe_observation" | "unsupported";
|
|
3
|
+
export type QortexRecoveryReplay = "retained_result" | "unsupported";
|
|
4
|
+
export type QortexRecoveryResume = "supported" | "unsupported";
|
|
5
|
+
export type QortexRecoveryReconciliation = "recovery_status" | "billing_status_only" | "job_status" | "unsupported";
|
|
6
|
+
export interface QortexRecoveryCapability {
|
|
7
|
+
contractVersion: 1;
|
|
8
|
+
routeID: string;
|
|
9
|
+
mode: QortexRecoveryMode;
|
|
10
|
+
retry: QortexRecoveryRetry;
|
|
11
|
+
replay: QortexRecoveryReplay;
|
|
12
|
+
resume: QortexRecoveryResume;
|
|
13
|
+
reconciliation: QortexRecoveryReconciliation;
|
|
14
|
+
requiresIdempotencyKey: boolean;
|
|
15
|
+
retentionMs?: number;
|
|
16
|
+
maxBackendAdditionalWork: number;
|
|
17
|
+
}
|
|
18
|
+
export interface QortexRecoveryCapabilities {
|
|
19
|
+
contractVersion: 1;
|
|
20
|
+
capabilities: QortexRecoveryCapability[];
|
|
21
|
+
}
|
|
22
|
+
/** Parse one route capability. Unrecognized fields are rejected rather than forwarded. */
|
|
23
|
+
export declare function parseRecoveryCapability(value: unknown): QortexRecoveryCapability;
|
|
24
|
+
/** Parse only bounded route facts; never pass through unrecognized server metadata. */
|
|
25
|
+
export declare function parseRecoveryCapabilities(value: unknown): QortexRecoveryCapabilities;
|
|
26
|
+
//# sourceMappingURL=recovery-capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery-capabilities.d.ts","sourceRoot":"","sources":["../src/recovery-capabilities.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AACpF,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAC5F,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,aAAa,CAAC;AACrE,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,aAAa,CAAC;AAC/D,MAAM,MAAM,4BAA4B,GACpC,iBAAiB,GACjB,qBAAqB,GACrB,YAAY,GACZ,aAAa,CAAC;AAElB,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,CAAC,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,cAAc,EAAE,4BAA4B,CAAC;IAC7C,sBAAsB,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,CAAC,CAAC;IACnB,YAAY,EAAE,wBAAwB,EAAE,CAAC;CAC1C;AAsCD,0FAA0F;AAC1F,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAqDhF;AAED,uFAAuF;AACvF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAyBpF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
const MODES = new Set(["buffered", "streaming", "async_job", "utility"]);
|
|
2
|
+
const RETRIES = new Set(["pre_execution_only", "safe_observation", "unsupported"]);
|
|
3
|
+
const REPLAYS = new Set(["retained_result", "unsupported"]);
|
|
4
|
+
const RESUMES = new Set(["supported", "unsupported"]);
|
|
5
|
+
const RECONCILIATIONS = new Set([
|
|
6
|
+
"recovery_status",
|
|
7
|
+
"billing_status_only",
|
|
8
|
+
"job_status",
|
|
9
|
+
"unsupported",
|
|
10
|
+
]);
|
|
11
|
+
const MANIFEST_FIELDS = new Set(["success", "contractVersion", "capabilities"]);
|
|
12
|
+
const CAPABILITY_FIELDS = new Set([
|
|
13
|
+
"contractVersion",
|
|
14
|
+
"routeID",
|
|
15
|
+
"mode",
|
|
16
|
+
"retry",
|
|
17
|
+
"replay",
|
|
18
|
+
"resume",
|
|
19
|
+
"reconciliation",
|
|
20
|
+
"requiresIdempotencyKey",
|
|
21
|
+
"retentionMs",
|
|
22
|
+
"maxBackendAdditionalWork",
|
|
23
|
+
]);
|
|
24
|
+
const MAX_CAPABILITIES = 512;
|
|
25
|
+
function isRecord(value) {
|
|
26
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
27
|
+
}
|
|
28
|
+
function boundedString(value, field, maxLength) {
|
|
29
|
+
if (typeof value !== "string" || value.length === 0 || value.length > maxLength) {
|
|
30
|
+
throw new TypeError(`Qortex recovery capabilities have an invalid ${field}`);
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
/** Parse one route capability. Unrecognized fields are rejected rather than forwarded. */
|
|
35
|
+
export function parseRecoveryCapability(value) {
|
|
36
|
+
if (!isRecord(value))
|
|
37
|
+
throw new TypeError("Qortex recovery capability must be an object");
|
|
38
|
+
for (const key of Object.keys(value)) {
|
|
39
|
+
if (!CAPABILITY_FIELDS.has(key)) {
|
|
40
|
+
throw new TypeError("Qortex recovery capability contains an unsupported field");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (value.contractVersion !== 1) {
|
|
44
|
+
throw new TypeError("Qortex recovery capability uses an unsupported contract version");
|
|
45
|
+
}
|
|
46
|
+
if (typeof value.mode !== "string" || !MODES.has(value.mode)) {
|
|
47
|
+
throw new TypeError("Qortex recovery capability has an invalid mode");
|
|
48
|
+
}
|
|
49
|
+
if (typeof value.retry !== "string" || !RETRIES.has(value.retry)) {
|
|
50
|
+
throw new TypeError("Qortex recovery capability has an invalid retry policy");
|
|
51
|
+
}
|
|
52
|
+
if (typeof value.replay !== "string" || !REPLAYS.has(value.replay)) {
|
|
53
|
+
throw new TypeError("Qortex recovery capability has an invalid replay policy");
|
|
54
|
+
}
|
|
55
|
+
if (typeof value.resume !== "string" || !RESUMES.has(value.resume)) {
|
|
56
|
+
throw new TypeError("Qortex recovery capability has an invalid resume policy");
|
|
57
|
+
}
|
|
58
|
+
if (typeof value.reconciliation !== "string" || !RECONCILIATIONS.has(value.reconciliation)) {
|
|
59
|
+
throw new TypeError("Qortex recovery capability has an invalid reconciliation policy");
|
|
60
|
+
}
|
|
61
|
+
if (typeof value.requiresIdempotencyKey !== "boolean") {
|
|
62
|
+
throw new TypeError("Qortex recovery capability has an invalid idempotency requirement");
|
|
63
|
+
}
|
|
64
|
+
if (!Number.isSafeInteger(value.maxBackendAdditionalWork) ||
|
|
65
|
+
value.maxBackendAdditionalWork < 0) {
|
|
66
|
+
throw new TypeError("Qortex recovery capability has an invalid additional-work limit");
|
|
67
|
+
}
|
|
68
|
+
if (value.retentionMs !== undefined &&
|
|
69
|
+
(!Number.isSafeInteger(value.retentionMs) || value.retentionMs <= 0)) {
|
|
70
|
+
throw new TypeError("Qortex recovery capability has an invalid retention period");
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
contractVersion: 1,
|
|
74
|
+
routeID: boundedString(value.routeID, "routeID", 256),
|
|
75
|
+
mode: value.mode,
|
|
76
|
+
retry: value.retry,
|
|
77
|
+
replay: value.replay,
|
|
78
|
+
resume: value.resume,
|
|
79
|
+
reconciliation: value.reconciliation,
|
|
80
|
+
requiresIdempotencyKey: value.requiresIdempotencyKey,
|
|
81
|
+
...(value.retentionMs === undefined ? {} : { retentionMs: value.retentionMs }),
|
|
82
|
+
maxBackendAdditionalWork: value.maxBackendAdditionalWork,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/** Parse only bounded route facts; never pass through unrecognized server metadata. */
|
|
86
|
+
export function parseRecoveryCapabilities(value) {
|
|
87
|
+
if (!isRecord(value))
|
|
88
|
+
throw new TypeError("Qortex recovery capabilities must be an object");
|
|
89
|
+
let candidate = value;
|
|
90
|
+
if (value.success === true && Object.hasOwn(value, "data"))
|
|
91
|
+
candidate = value.data;
|
|
92
|
+
if (!isRecord(candidate))
|
|
93
|
+
throw new TypeError("Qortex recovery capabilities data must be an object");
|
|
94
|
+
for (const key of Object.keys(candidate)) {
|
|
95
|
+
if (!MANIFEST_FIELDS.has(key)) {
|
|
96
|
+
throw new TypeError("Qortex recovery capabilities contain an unsupported field");
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (candidate.success !== undefined && candidate.success !== true) {
|
|
100
|
+
throw new TypeError("Qortex recovery capabilities have an invalid success marker");
|
|
101
|
+
}
|
|
102
|
+
if (candidate.contractVersion !== 1) {
|
|
103
|
+
throw new TypeError("Qortex recovery capabilities use an unsupported contract version");
|
|
104
|
+
}
|
|
105
|
+
if (!Array.isArray(candidate.capabilities) || candidate.capabilities.length > MAX_CAPABILITIES) {
|
|
106
|
+
throw new TypeError("Qortex recovery capabilities have an invalid capability list");
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
contractVersion: 1,
|
|
110
|
+
capabilities: candidate.capabilities.map(parseRecoveryCapability),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=recovery-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery-capabilities.js","sourceRoot":"","sources":["../src/recovery-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { QortexExecutionState } from "./recovery-status.js";
|
|
2
|
+
export type QortexRecoveryFailureLayer = "client" | "qortex_transport" | "qortex_auth" | "qortex_harness" | "omniquery_inference" | "tool" | "verification" | "capability";
|
|
3
|
+
export type QortexRecoveryFailureCategory = "backend_unavailable" | "authentication_rejected" | "backend_harness_failed" | "inference_failed" | "tool_failed" | "tool_running" | "verification_failed" | "unsupported_capability" | "rate_limited" | "operation_budget_exhausted" | "operation_deadline_expired" | "effect_outcome_unknown" | "cancelled" | "invalid_request" | "internal_failure";
|
|
4
|
+
export type QortexRecommendedRecoveryAction = "retry_same_work" | "replay_retained_result" | "continue_partial" | "change_approach" | "reconcile" | "wait" | "reauthenticate" | "stop";
|
|
5
|
+
export interface QortexRecoveryDirective {
|
|
6
|
+
contractVersion: 1;
|
|
7
|
+
policyVersion: string;
|
|
8
|
+
category: QortexRecoveryFailureCategory;
|
|
9
|
+
layer: QortexRecoveryFailureLayer;
|
|
10
|
+
stage: string;
|
|
11
|
+
executionState: QortexExecutionState | "accepted" | "cancelled";
|
|
12
|
+
recommendedAction: QortexRecommendedRecoveryAction;
|
|
13
|
+
retryable: boolean;
|
|
14
|
+
reasonCode: string;
|
|
15
|
+
requestID?: string;
|
|
16
|
+
retryAfterMs?: number;
|
|
17
|
+
}
|
|
18
|
+
/** Parse the public directive without retaining unrecognized provider or server fields. */
|
|
19
|
+
export declare function parseRecoveryDirective(value: unknown): QortexRecoveryDirective;
|
|
20
|
+
//# sourceMappingURL=recovery-directive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery-directive.d.ts","sourceRoot":"","sources":["../src/recovery-directive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAClC,QAAQ,GACR,kBAAkB,GAClB,aAAa,GACb,gBAAgB,GAChB,qBAAqB,GACrB,MAAM,GACN,cAAc,GACd,YAAY,CAAC;AAEjB,MAAM,MAAM,6BAA6B,GACrC,qBAAqB,GACrB,yBAAyB,GACzB,wBAAwB,GACxB,kBAAkB,GAClB,aAAa,GACb,cAAc,GACd,qBAAqB,GACrB,wBAAwB,GACxB,cAAc,GACd,4BAA4B,GAC5B,4BAA4B,GAC5B,wBAAwB,GACxB,WAAW,GACX,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,+BAA+B,GACvC,iBAAiB,GACjB,wBAAwB,GACxB,kBAAkB,GAClB,iBAAiB,GACjB,WAAW,GACX,MAAM,GACN,gBAAgB,GAChB,MAAM,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,CAAC,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,6BAA6B,CAAC;IACxC,KAAK,EAAE,0BAA0B,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,oBAAoB,GAAG,UAAU,GAAG,WAAW,CAAC;IAChE,iBAAiB,EAAE,+BAA+B,CAAC;IACnD,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA8DD,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAyD9E"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
const CATEGORIES = new Set([
|
|
2
|
+
"backend_unavailable",
|
|
3
|
+
"authentication_rejected",
|
|
4
|
+
"backend_harness_failed",
|
|
5
|
+
"inference_failed",
|
|
6
|
+
"tool_failed",
|
|
7
|
+
"tool_running",
|
|
8
|
+
"verification_failed",
|
|
9
|
+
"unsupported_capability",
|
|
10
|
+
"rate_limited",
|
|
11
|
+
"operation_budget_exhausted",
|
|
12
|
+
"operation_deadline_expired",
|
|
13
|
+
"effect_outcome_unknown",
|
|
14
|
+
"cancelled",
|
|
15
|
+
"invalid_request",
|
|
16
|
+
"internal_failure",
|
|
17
|
+
]);
|
|
18
|
+
const LAYERS = new Set([
|
|
19
|
+
"client",
|
|
20
|
+
"qortex_transport",
|
|
21
|
+
"qortex_auth",
|
|
22
|
+
"qortex_harness",
|
|
23
|
+
"omniquery_inference",
|
|
24
|
+
"tool",
|
|
25
|
+
"verification",
|
|
26
|
+
"capability",
|
|
27
|
+
]);
|
|
28
|
+
const ACTIONS = new Set([
|
|
29
|
+
"retry_same_work",
|
|
30
|
+
"replay_retained_result",
|
|
31
|
+
"continue_partial",
|
|
32
|
+
"change_approach",
|
|
33
|
+
"reconcile",
|
|
34
|
+
"wait",
|
|
35
|
+
"reauthenticate",
|
|
36
|
+
"stop",
|
|
37
|
+
]);
|
|
38
|
+
const EXECUTION_STATES = new Set(["not_started", "accepted", "running", "succeeded", "failed", "unknown", "cancelled"]);
|
|
39
|
+
const FIELDS = new Set([
|
|
40
|
+
"contractVersion",
|
|
41
|
+
"policyVersion",
|
|
42
|
+
"category",
|
|
43
|
+
"layer",
|
|
44
|
+
"stage",
|
|
45
|
+
"executionState",
|
|
46
|
+
"recommendedAction",
|
|
47
|
+
"retryable",
|
|
48
|
+
"reasonCode",
|
|
49
|
+
"requestID",
|
|
50
|
+
"retryAfterMs",
|
|
51
|
+
]);
|
|
52
|
+
function isRecord(value) {
|
|
53
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
54
|
+
}
|
|
55
|
+
function matches(value, pattern) {
|
|
56
|
+
return typeof value === "string" && pattern.test(value);
|
|
57
|
+
}
|
|
58
|
+
/** Parse the public directive without retaining unrecognized provider or server fields. */
|
|
59
|
+
export function parseRecoveryDirective(value) {
|
|
60
|
+
if (!isRecord(value))
|
|
61
|
+
throw new TypeError("Qortex recovery directive must be an object");
|
|
62
|
+
for (const key of Object.keys(value)) {
|
|
63
|
+
if (!FIELDS.has(key))
|
|
64
|
+
throw new TypeError("Qortex recovery directive contains an unsupported field");
|
|
65
|
+
}
|
|
66
|
+
if (value.contractVersion !== 1) {
|
|
67
|
+
throw new TypeError("Qortex recovery directive uses an unsupported contract version");
|
|
68
|
+
}
|
|
69
|
+
if (!matches(value.policyVersion, /^[A-Za-z0-9_.:-]{1,256}$/)) {
|
|
70
|
+
throw new TypeError("Qortex recovery directive has an invalid policyVersion");
|
|
71
|
+
}
|
|
72
|
+
if (typeof value.category !== "string" || !CATEGORIES.has(value.category)) {
|
|
73
|
+
throw new TypeError("Qortex recovery directive has an invalid category");
|
|
74
|
+
}
|
|
75
|
+
if (typeof value.layer !== "string" || !LAYERS.has(value.layer)) {
|
|
76
|
+
throw new TypeError("Qortex recovery directive has an invalid layer");
|
|
77
|
+
}
|
|
78
|
+
if (!matches(value.stage, /^[A-Za-z0-9_.:-]{1,128}$/)) {
|
|
79
|
+
throw new TypeError("Qortex recovery directive has an invalid stage");
|
|
80
|
+
}
|
|
81
|
+
if (typeof value.executionState !== "string" || !EXECUTION_STATES.has(value.executionState)) {
|
|
82
|
+
throw new TypeError("Qortex recovery directive has an invalid executionState");
|
|
83
|
+
}
|
|
84
|
+
if (typeof value.recommendedAction !== "string" || !ACTIONS.has(value.recommendedAction)) {
|
|
85
|
+
throw new TypeError("Qortex recovery directive has an invalid recommendedAction");
|
|
86
|
+
}
|
|
87
|
+
if (typeof value.retryable !== "boolean") {
|
|
88
|
+
throw new TypeError("Qortex recovery directive has an invalid retryable flag");
|
|
89
|
+
}
|
|
90
|
+
if (!matches(value.reasonCode, /^[a-z0-9_:-]{1,256}$/)) {
|
|
91
|
+
throw new TypeError("Qortex recovery directive has an invalid reasonCode");
|
|
92
|
+
}
|
|
93
|
+
if (value.requestID !== undefined && !matches(value.requestID, /^[A-Za-z0-9_.:/-]{1,256}$/)) {
|
|
94
|
+
throw new TypeError("Qortex recovery directive has an invalid requestID");
|
|
95
|
+
}
|
|
96
|
+
if (value.retryAfterMs !== undefined &&
|
|
97
|
+
(!Number.isSafeInteger(value.retryAfterMs) ||
|
|
98
|
+
value.retryAfterMs < 0 ||
|
|
99
|
+
value.retryAfterMs > 86_400_000)) {
|
|
100
|
+
throw new TypeError("Qortex recovery directive has an invalid retryAfterMs");
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
contractVersion: 1,
|
|
104
|
+
policyVersion: value.policyVersion,
|
|
105
|
+
category: value.category,
|
|
106
|
+
layer: value.layer,
|
|
107
|
+
stage: value.stage,
|
|
108
|
+
executionState: value.executionState,
|
|
109
|
+
recommendedAction: value.recommendedAction,
|
|
110
|
+
retryable: value.retryable,
|
|
111
|
+
reasonCode: value.reasonCode,
|
|
112
|
+
...(value.requestID === undefined ? {} : { requestID: value.requestID }),
|
|
113
|
+
...(value.retryAfterMs === undefined ? {} : { retryAfterMs: value.retryAfterMs }),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=recovery-directive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery-directive.js","sourceRoot":"","sources":["../src/recovery-directive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qortex's recovery lease wire contract: the control envelope a host sends to
|
|
3
|
+
* bound additional work, and the usage projection Qortex returns for it.
|
|
4
|
+
* QitQore parses and encodes these values only. Hosts allocate token budgets,
|
|
5
|
+
* persist leases, authorize replay, and settle outcomes.
|
|
6
|
+
*/
|
|
7
|
+
/** Request header that carries a base64url-encoded control envelope to Qortex. */
|
|
8
|
+
export declare const QORTEX_RECOVERY_CONTROL_HEADER = "x-qitqode-recovery-control";
|
|
9
|
+
/** Maximum additional-work tokens in one lease, matching Qortex's public limit. */
|
|
10
|
+
export declare const MAX_RECOVERY_ADDITIONAL_WORK = 12;
|
|
11
|
+
/** Longest root-operation window Qortex will honor for one dispatch. */
|
|
12
|
+
export declare const MAX_RECOVERY_ROOT_REMAINING_MS: number;
|
|
13
|
+
export type QortexRecoveryAdditionalWorkAction = "retry_same_work" | "changed_approach" | "continuation" | "compaction" | "worker" | "reconciliation";
|
|
14
|
+
export type QortexRecoveryAction = QortexRecoveryAdditionalWorkAction | "initial_dispatch";
|
|
15
|
+
export interface QortexRecoveryConsumedWork {
|
|
16
|
+
tokenID: string;
|
|
17
|
+
action: QortexRecoveryAdditionalWorkAction;
|
|
18
|
+
stage: string;
|
|
19
|
+
}
|
|
20
|
+
/** Qortex's report of which reserved tokens a request consumed and which it left unused. */
|
|
21
|
+
export interface QortexRecoveryLeaseUsage {
|
|
22
|
+
contractVersion: 1;
|
|
23
|
+
leaseID: string;
|
|
24
|
+
publicOperationID: string;
|
|
25
|
+
operationGeneration: number;
|
|
26
|
+
workID: string;
|
|
27
|
+
attemptID: string;
|
|
28
|
+
requestID: string;
|
|
29
|
+
routeID: string;
|
|
30
|
+
consumed: QortexRecoveryConsumedWork[];
|
|
31
|
+
unusedTokenIDs: string[];
|
|
32
|
+
}
|
|
33
|
+
export interface QortexRecoveryControlOperation {
|
|
34
|
+
contractVersion: 1;
|
|
35
|
+
publicOperationID: string;
|
|
36
|
+
operationGeneration: number;
|
|
37
|
+
workID: string;
|
|
38
|
+
attemptID: string;
|
|
39
|
+
parentWorkID?: string;
|
|
40
|
+
action: QortexRecoveryAction;
|
|
41
|
+
rootDeadlineAt: number;
|
|
42
|
+
rootRemainingMsAtDispatch: number;
|
|
43
|
+
claimID?: string;
|
|
44
|
+
leaseID: string;
|
|
45
|
+
policyVersion?: string;
|
|
46
|
+
}
|
|
47
|
+
/** The decoded value of the recovery-control header. */
|
|
48
|
+
export interface QortexRecoveryControlEnvelope {
|
|
49
|
+
contractVersion: 1;
|
|
50
|
+
operation: QortexRecoveryControlOperation;
|
|
51
|
+
lease: {
|
|
52
|
+
leaseID: string;
|
|
53
|
+
tokenIDs: string[];
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Parse Qortex's lease usage projection. Every identity and token is bounded,
|
|
58
|
+
* token IDs must be unique across consumed and unused work, and unknown fields
|
|
59
|
+
* are rejected rather than forwarded.
|
|
60
|
+
*/
|
|
61
|
+
export declare function parseRecoveryLeaseUsage(value: unknown): QortexRecoveryLeaseUsage;
|
|
62
|
+
/**
|
|
63
|
+
* Validate a control envelope before it is sent. The operation's lease ID must
|
|
64
|
+
* name the same lease as the token list, and the list stays within Qortex's
|
|
65
|
+
* additional-work limit.
|
|
66
|
+
*/
|
|
67
|
+
export declare function parseRecoveryControlEnvelope(value: unknown): QortexRecoveryControlEnvelope;
|
|
68
|
+
/**
|
|
69
|
+
* Encode a validated control envelope as the base64url header value Qortex
|
|
70
|
+
* expects. Parser bounds keep every valid envelope under the header size limit.
|
|
71
|
+
*/
|
|
72
|
+
export declare function encodeRecoveryControlEnvelope(value: unknown): string;
|
|
73
|
+
/**
|
|
74
|
+
* Decode a recovery-control header value. The encoding must be canonical base64url
|
|
75
|
+
* so that a value cannot be accepted by one parser and rewritten by another.
|
|
76
|
+
*/
|
|
77
|
+
export declare function decodeRecoveryControlHeader(value: string): QortexRecoveryControlEnvelope;
|
|
78
|
+
/** Return a copy of request headers that carries a validated recovery-control envelope. */
|
|
79
|
+
export declare function withRecoveryControlHeader(headers: Record<string, string>, control: unknown): Record<string, string>;
|
|
80
|
+
//# sourceMappingURL=recovery-lease.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery-lease.d.ts","sourceRoot":"","sources":["../src/recovery-lease.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kFAAkF;AAClF,eAAO,MAAM,8BAA8B,+BAA+B,CAAC;AAE3E,mFAAmF;AACnF,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,wEAAwE;AACxE,eAAO,MAAM,8BAA8B,QAAkB,CAAC;AAO9D,MAAM,MAAM,kCAAkC,GAC1C,iBAAiB,GACjB,kBAAkB,GAClB,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,gBAAgB,CAAC;AAErB,MAAM,MAAM,oBAAoB,GAAG,kCAAkC,GAAG,kBAAkB,CAAC;AAE3F,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kCAAkC,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4FAA4F;AAC5F,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,CAAC,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,8BAA8B;IAC7C,eAAe,EAAE,CAAC,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wDAAwD;AACxD,MAAM,WAAW,6BAA6B;IAC5C,eAAe,EAAE,CAAC,CAAC;IACnB,SAAS,EAAE,8BAA8B,CAAC;IAC1C,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAChD;AA0FD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAuChF;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,6BAA6B,CAgE1F;AAgBD;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,6BAA6B,CAoBxF;AAED,2FAA2F;AAC3F,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB"}
|