@shpitdev/convex-cliproxy-observability 0.3.6 → 0.3.8
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/CHANGELOG.md +17 -0
- package/README.md +2 -2
- package/dist/capture/content-health.d.ts +4 -1
- package/dist/capture/content-health.d.ts.map +1 -1
- package/dist/capture/content-health.js +6 -5
- package/dist/capture/content-health.js.map +1 -1
- package/dist/capture/index.d.ts +21 -0
- package/dist/capture/index.d.ts.map +1 -1
- package/dist/capture/index.js +53 -0
- package/dist/capture/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/ingest.d.ts +1 -0
- package/dist/component/ingest.d.ts.map +1 -1
- package/dist/projection.d.ts +6 -3
- package/dist/projection.d.ts.map +1 -1
- package/dist/projection.js +55 -7
- package/dist/projection.js.map +1 -1
- package/dist/protocols/anthropic-messages.d.ts +5 -0
- package/dist/protocols/anthropic-messages.d.ts.map +1 -1
- package/dist/protocols/anthropic-messages.js +38 -4
- package/dist/protocols/anthropic-messages.js.map +1 -1
- package/dist/protocols/body-parts.d.ts +19 -0
- package/dist/protocols/body-parts.d.ts.map +1 -0
- package/dist/protocols/body-parts.js +56 -0
- package/dist/protocols/body-parts.js.map +1 -0
- package/dist/protocols/chat-completions.d.ts.map +1 -1
- package/dist/protocols/chat-completions.js +16 -4
- package/dist/protocols/chat-completions.js.map +1 -1
- package/dist/protocols/checkpoint.d.ts +17 -1
- package/dist/protocols/checkpoint.d.ts.map +1 -1
- package/dist/protocols/checkpoint.js +59 -15
- package/dist/protocols/checkpoint.js.map +1 -1
- package/dist/protocols/index.d.ts +2 -1
- package/dist/protocols/index.d.ts.map +1 -1
- package/dist/protocols/index.js +6 -1
- package/dist/protocols/index.js.map +1 -1
- package/dist/protocols/responses.d.ts +8 -0
- package/dist/protocols/responses.d.ts.map +1 -1
- package/dist/protocols/responses.js +43 -1
- package/dist/protocols/responses.js.map +1 -1
- package/package.json +1 -1
- package/src/capture/content-health.ts +8 -5
- package/src/capture/index.ts +74 -0
- package/src/component/_generated/api.ts +5 -6
- package/src/component/_generated/component.ts +6 -6
- package/src/projection.ts +71 -16
- package/src/protocols/anthropic-messages.ts +39 -8
- package/src/protocols/body-parts.ts +58 -0
- package/src/protocols/chat-completions.ts +13 -4
- package/src/protocols/checkpoint.ts +64 -14
- package/src/protocols/index.ts +8 -1
- package/src/protocols/responses.ts +50 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.8
|
|
4
|
+
|
|
5
|
+
- Recognize the captured Responses `response.metadata` extension, validate its object payload, sequence and response identity, and preserve every envelope in selected-call `metadata.responseMetadata`. Valid metadata no longer withholds the six terminal token scalars. Lifecycle `response.metadata` remains separate in native output.
|
|
6
|
+
- Preserve Chat streaming provider metadata and accumulated logprobs, and keep terminal usage across empty trailers. Preserve Anthropic citation deltas in native and normalized text. Unknown Chat and Messages events/deltas remain diagnostic in both replay and incremental projection.
|
|
7
|
+
- Parser version is `client-protocol-v3`. Receiver summaries already projected with the previous parser require an explicit replay from the first retained segment; updating the package does not rewrite them or clear their sticky diagnostics. Selected-call content replay uses the installed parser.
|
|
8
|
+
- Native capture, storage schema and cost semantics are unchanged. Cost remains unknown when no billed cost is emitted. No native restart is needed for the receiver/parser update.
|
|
9
|
+
|
|
10
|
+
## 0.3.7
|
|
11
|
+
|
|
12
|
+
- Native 0.2.5 stores request, after-auth, non-stream response bodies and single stream callbacks larger than 1 MiB as exact ordered parts instead of dropping them. Parts use consecutive sequences; each record carries `bodyPart: { index, count, offset, totalBytes, totalSha256 }`, every part but the last holds exactly 1 MiB, and readers verify the whole-body digest. Record body, envelope (2 MiB), segment (1408 KiB), sequence/ACK, FULL/WAL and retention bounds are unchanged.
|
|
13
|
+
- The receiver validates split parts alongside unchanged historical records. `/protocols` exports `BodyPartAssembler` for exact reassembly and `stockHookPieces` for block or split-callback replay. Package projection reassembles split bodies up to 8 MiB (`MAX_PROJECTED_SPLIT_BYTES`) from owned segments and rejects a split body interrupted across segments. Larger split bodies stay raw-complete without projection allocating them: a request takes streaming from protocol evidence, and a response or stream body reports `frame_limit`.
|
|
14
|
+
- Source-repository reader fixture `fixtures/body-part-v1.ndjson`: the two exact native 0.2.5 `request` parts of a 1,100,069-byte streamed Responses body, captured through official stock 8.0.23 during private qualification.
|
|
15
|
+
- Native 0.2.5 no longer rejects stock hook callbacks by whole-frame size. Stock header-init frames carry two undecoded base64 request copies; only retained fields are bounded. An unreadable callback marks only the call it names (`unreadable_callback`); without a recoverable request ID it is an unknown loss and never marks unrelated active calls.
|
|
16
|
+
- A split body is admitted all-or-nothing against the unchanged byte pool and 256 shared record slots. Parts share one buffer, so the item is charged that buffer once, 16 KiB per part, and 3 MiB serialization headroom for the one part its writer holds. A rejected body records its exact known loss at one sequence.
|
|
17
|
+
- Content health adds optional `missedCalls`: enrolled calls that could not start a capture scope, with their known request bytes counted lost. Older health senders remain accepted.
|
|
18
|
+
- Deploy receiver 0.3.7 and split-aware readers before native 0.2.5. Readers that do not reassemble parts see partial JSON per record and must not treat them as complete content.
|
|
19
|
+
|
|
3
20
|
## 0.3.6
|
|
4
21
|
|
|
5
22
|
- Preserve streamed content in bounded, byte-identical stock hook blocks rather than one durable record per callback. The shared `expandStockHookBlock` helper restores parser boundaries for receiver projection and selected-call readers.
|
package/README.md
CHANGED
|
@@ -69,7 +69,7 @@ Mount `@shpitdev/convex-cliproxy-observability/convex.config` with `app.use`. Co
|
|
|
69
69
|
|
|
70
70
|
The host supplies `PrivateCaptureStorage.put/get` and a durable `scheduleProjection` callback. Projection actions call `projectPendingSegments`, rescheduling when `more` is true. Scheduler failure returns 503 after the raw receipt, making exporter retries safe. The host must monitor and recover failed projection actions; persisted raw content and receipts remain independently readable. No TTL or cleanup cron removes calls, receipts or content by default.
|
|
71
71
|
|
|
72
|
-
The receiver accepts `CaptureSegmentV1` from the `/capture` export: immutable NDJSON batches of up to 256 contiguous observations. A segment is at most 1408 KiB; the outer JSON envelope is at most 2 MiB. Each observation payload is at most 1 MiB. The exporter must persist batch boundaries before retrying. Identical identities and digests deduplicate; changed digests or overlapping ranges conflict.
|
|
72
|
+
The receiver accepts `CaptureSegmentV1` from the `/capture` export: immutable NDJSON batches of up to 256 contiguous observations. A segment is at most 1408 KiB; the outer JSON envelope is at most 2 MiB. Each observation payload is at most 1 MiB; native 0.2.5 splits larger bodies into ordered `bodyPart` records (up to 256) that readers reassemble. The exporter must persist batch boundaries before retrying. Identical identities and digests deduplicate; changed digests or overlapping ranges conflict.
|
|
73
73
|
|
|
74
74
|
## Reads and evidence
|
|
75
75
|
|
|
@@ -81,7 +81,7 @@ The receiver accepts `CaptureSegmentV1` from the `/capture` export: immutable ND
|
|
|
81
81
|
|
|
82
82
|
For `capturePolicy: hook-body-v1`, decode each observation body from base64 and verify `contentBytes`/`contentSha256` before presenting it. Keep callbacks separate for raw evidence; their bytes may be partial JSON or UTF-8. `request_after_auth` is executed-request evidence, not the original client request. `executionModel`, `executionProtocol`, `selectedAuthId` and `selectedAuthIndex` are exact stock fields, not inferred provider or attempt identities. Header collections and opaque auth metadata are excluded. Model payload content is unredacted and must remain private.
|
|
83
83
|
|
|
84
|
-
`projectCapturedPayloads` reconstructs selected-call content from bounded pages. For `hook-content-block-v1`, verify the whole record body/digest, then use the shared `/protocols` export `expandStockHookBlock(body, stockHookChunkLengths)` before replay. Never treat concatenated bare JSON objects as one frame. Deploy receiver 0.3.
|
|
84
|
+
`projectCapturedPayloads` reconstructs selected-call content from bounded pages. For `hook-content-block-v1`, verify the whole record body/digest, then use the shared `/protocols` export `expandStockHookBlock(body, stockHookChunkLengths)` before replay. Never treat concatenated bare JSON objects as one frame. Deploy receiver 0.3.7 and compatible readers before the producer. Native 0.2.5 records with `bodyPart` are exact 1 MiB slices of one larger body: feed every validated observation, in sequence order, to `/protocols`' `BodyPartAssembler` and use the body it returns at the final part (it verifies order, offsets, length and SHA-256); `stockHookPieces(observation, body)` returns block callbacks or the single split callback. Bound `BodyPartAssembler(maxBytes)` to the read budget; in a 64 MiB Convex action, 8 MiB (`MAX_PROJECTED_SPLIT_BYTES`, which package projection uses) leaves room to decode the result. Keep gaps and incomplete capture explicit; an incomplete terminal may have no known provider outcome. Pass `stockHookChunks: true` only for raw stock hook pieces from either hook policy; historical observations already contain canonical framing. Its 16 MiB replay limit is a read-operation bound, not a retention limit. Larger calls remain available through raw event pages. Summary checkpoints retain scalar state and private references for large unfinished frames; immutable segments retain text, reasoning, tools and native usage snapshots.
|
|
85
85
|
|
|
86
86
|
## Provider, tokens and cost
|
|
87
87
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** Local durable ACK counts. They do not claim remote persistence or projection. */
|
|
2
2
|
export declare const contentHealthValidator: import("convex/values").VObject<{
|
|
3
|
+
missedCalls?: number | undefined;
|
|
3
4
|
observedBytes: number;
|
|
4
5
|
committedBytes: number;
|
|
5
6
|
lostBytes: number;
|
|
@@ -16,11 +17,13 @@ export declare const contentHealthValidator: import("convex/values").VObject<{
|
|
|
16
17
|
lostBytes: import("convex/values").VFloat64<number, "required">;
|
|
17
18
|
unconfirmedBytes: import("convex/values").VFloat64<number, "required">;
|
|
18
19
|
unknownLosses: import("convex/values").VFloat64<number, "required">;
|
|
20
|
+
/** Native 0.2.5: enrolled calls that could not start a scope. Optional for older senders. */
|
|
21
|
+
missedCalls: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
19
22
|
streamCallbacks: import("convex/values").VFloat64<number, "required">;
|
|
20
23
|
incompleteCalls: import("convex/values").VFloat64<number, "required">;
|
|
21
24
|
capacityRejections: import("convex/values").VFloat64<number, "required">;
|
|
22
25
|
retainedChargedBytes: import("convex/values").VFloat64<number, "required">;
|
|
23
26
|
peakChargedBytes: import("convex/values").VFloat64<number, "required">;
|
|
24
|
-
}, "required", "observedBytes" | "committedBytes" | "lostBytes" | "unconfirmedBytes" | "unknownLosses" | "streamCallbacks" | "incompleteCalls" | "capacityRejections" | "retainedChargedBytes" | "peakChargedBytes">;
|
|
27
|
+
}, "required", "observedBytes" | "committedBytes" | "lostBytes" | "unconfirmedBytes" | "unknownLosses" | "missedCalls" | "streamCallbacks" | "incompleteCalls" | "capacityRejections" | "retainedChargedBytes" | "peakChargedBytes">;
|
|
25
28
|
export declare function validContentHealth(value: unknown): boolean;
|
|
26
29
|
//# sourceMappingURL=content-health.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-health.d.ts","sourceRoot":"","sources":["../../src/capture/content-health.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"content-health.d.ts","sourceRoot":"","sources":["../../src/capture/content-health.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;IAMjC,6FAA6F;;;;;;;oOAO7F,CAAC;AAEH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAa1D"}
|
|
@@ -6,6 +6,8 @@ export const contentHealthValidator = v.object({
|
|
|
6
6
|
lostBytes: v.number(),
|
|
7
7
|
unconfirmedBytes: v.number(),
|
|
8
8
|
unknownLosses: v.number(),
|
|
9
|
+
/** Native 0.2.5: enrolled calls that could not start a scope. Optional for older senders. */
|
|
10
|
+
missedCalls: v.optional(v.number()),
|
|
9
11
|
streamCallbacks: v.number(),
|
|
10
12
|
incompleteCalls: v.number(),
|
|
11
13
|
capacityRejections: v.number(),
|
|
@@ -18,11 +20,10 @@ export function validContentHealth(value) {
|
|
|
18
20
|
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
19
21
|
return false;
|
|
20
22
|
const counters = value;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}) &&
|
|
23
|
+
const fields = Object.keys(contentHealthValidator.fields);
|
|
24
|
+
return (Object.keys(counters).every((key) => fields.includes(key)) &&
|
|
25
|
+
fields.every((key) => key === "missedCalls" || key in counters) &&
|
|
26
|
+
Object.values(counters).every((n) => typeof n === "number" && Number.isSafeInteger(n) && n >= 0) &&
|
|
26
27
|
counters.retainedChargedBytes <= counters.peakChargedBytes);
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=content-health.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-health.js","sourceRoot":"","sources":["../../src/capture/content-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,oFAAoF;AACpF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9B,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;IAChC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,QAAQ,GAAG,KAAgC,CAAC;IAClD,
|
|
1
|
+
{"version":3,"file":"content-health.js","sourceRoot":"","sources":["../../src/capture/content-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,oFAAoF;AACpF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,6FAA6F;IAC7F,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9B,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;IAChC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,QAAQ,GAAG,KAAgC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC1D,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,aAAa,IAAI,GAAG,IAAI,QAAQ,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAClE;QACA,QAAQ,CAAC,oBAA+B,IAAK,QAAQ,CAAC,gBAA2B,CACnF,CAAC;AACJ,CAAC"}
|
package/dist/capture/index.d.ts
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import type { ExactCorrelation } from "../model-call/index.js";
|
|
2
2
|
export declare const MAX_ENVELOPE_BYTES: number;
|
|
3
3
|
export declare const MAX_CONTENT_BYTES: number;
|
|
4
|
+
/** One split body spans at most the producer's 256 shared data-record slots. */
|
|
5
|
+
export declare const MAX_BODY_PARTS = 256;
|
|
6
|
+
/**
|
|
7
|
+
* Native 0.2.5 splits a body larger than `MAX_CONTENT_BYTES` into exact ordered
|
|
8
|
+
* parts with consecutive sequences. Every part but the last holds exactly
|
|
9
|
+
* `MAX_CONTENT_BYTES`; `offset` is `index * MAX_CONTENT_BYTES`. Concatenate in
|
|
10
|
+
* index order and verify `totalBytes`/`totalSha256` (see `/protocols`
|
|
11
|
+
* `BodyPartAssembler`). A split stream callback is one stock callback.
|
|
12
|
+
*/
|
|
13
|
+
export type BodyPartV1 = {
|
|
14
|
+
index: number;
|
|
15
|
+
count: number;
|
|
16
|
+
offset: number;
|
|
17
|
+
totalBytes: number;
|
|
18
|
+
totalSha256: string;
|
|
19
|
+
};
|
|
4
20
|
export type CaptureObservationV1 = {
|
|
5
21
|
schemaVersion: 1;
|
|
6
22
|
pluginVersion: string;
|
|
@@ -32,6 +48,7 @@ export type CaptureObservationV1 = {
|
|
|
32
48
|
observedBodyBytes?: number;
|
|
33
49
|
bodyFraming?: "stock_json_chunk" | "stock_sse_candidate" | "stock_hook_chunk" | "stock_hook_block";
|
|
34
50
|
stockHookChunkLengths?: number[];
|
|
51
|
+
bodyPart?: BodyPartV1;
|
|
35
52
|
lostContentBytes?: number;
|
|
36
53
|
captureIncomplete?: boolean;
|
|
37
54
|
contentSha256: string;
|
|
@@ -63,6 +80,9 @@ export declare function validateObservation(raw: Uint8Array, expected: {
|
|
|
63
80
|
callId: string;
|
|
64
81
|
digest: string;
|
|
65
82
|
}>;
|
|
83
|
+
type PartPosition = Pick<CaptureObservationV1, "kind" | "sequence" | "bodyPart">;
|
|
84
|
+
/** True when `next` is the part that must follow `previous` in one split body. */
|
|
85
|
+
export declare function continuesBodyPart(previous: PartPosition, next: PartPosition): boolean;
|
|
66
86
|
/** One immutable NDJSON segment batches observations: no per-token Convex writes. */
|
|
67
87
|
export type CaptureSegmentV1 = {
|
|
68
88
|
schemaVersion: 1;
|
|
@@ -89,4 +109,5 @@ export declare function validateSegment(raw: Uint8Array, expected: {
|
|
|
89
109
|
identity: string;
|
|
90
110
|
digest: string;
|
|
91
111
|
}>;
|
|
112
|
+
export {};
|
|
92
113
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,eAAO,MAAM,kBAAkB,QAAkB,CAAC;AAClD,eAAO,MAAM,iBAAiB,QAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"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"}
|
package/dist/capture/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { expandStockHookBlock } from "../protocols/stock-block.js";
|
|
2
2
|
export const MAX_ENVELOPE_BYTES = 2 * 1024 * 1024;
|
|
3
3
|
export const MAX_CONTENT_BYTES = 1024 * 1024;
|
|
4
|
+
/** One split body spans at most the producer's 256 shared data-record slots. */
|
|
5
|
+
export const MAX_BODY_PARTS = 256;
|
|
4
6
|
const id = /^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,199}$/;
|
|
5
7
|
const routes = new Set([
|
|
6
8
|
"GET /v1/models",
|
|
@@ -70,6 +72,7 @@ export async function validateObservation(raw, expected) {
|
|
|
70
72
|
"correlationConflicts",
|
|
71
73
|
"stockChunkIndex",
|
|
72
74
|
"stockHookChunkLengths",
|
|
75
|
+
"bodyPart",
|
|
73
76
|
"lostContentBytes",
|
|
74
77
|
"captureIncomplete",
|
|
75
78
|
"body",
|
|
@@ -200,6 +203,8 @@ export async function validateObservation(raw, expected) {
|
|
|
200
203
|
!["stock_json_chunk", "stock_sse_candidate", "stock_hook_chunk", "stock_hook_block"].includes(o.bodyFraming))
|
|
201
204
|
throw new Error("invalid body framing");
|
|
202
205
|
const body = decodeBody(o);
|
|
206
|
+
if (o.bodyPart !== undefined)
|
|
207
|
+
validateBodyPart(o, body);
|
|
203
208
|
if (o.bodyFraming === "stock_hook_block") {
|
|
204
209
|
if (o.capturePolicy !== "hook-content-block-v1" || o.kind !== "stream_chunk")
|
|
205
210
|
throw new Error("stock block policy required");
|
|
@@ -245,6 +250,45 @@ export async function validateObservation(raw, expected) {
|
|
|
245
250
|
digest: await sha256(raw),
|
|
246
251
|
};
|
|
247
252
|
}
|
|
253
|
+
const partKinds = new Set(["request", "request_after_auth", "response", "stream_chunk"]);
|
|
254
|
+
function validateBodyPart(o, body) {
|
|
255
|
+
const part = o.bodyPart;
|
|
256
|
+
const keys = ["index", "count", "offset", "totalBytes", "totalSha256"];
|
|
257
|
+
if (!part ||
|
|
258
|
+
typeof part !== "object" ||
|
|
259
|
+
Array.isArray(part) ||
|
|
260
|
+
Object.keys(part).length !== keys.length ||
|
|
261
|
+
!keys.every((key) => key in part))
|
|
262
|
+
throw new Error("invalid body part");
|
|
263
|
+
const { index, count, offset, totalBytes, totalSha256 } = part;
|
|
264
|
+
if (o.capturePolicy !== "hook-content-block-v1" ||
|
|
265
|
+
!partKinds.has(o.kind) ||
|
|
266
|
+
![index, count, offset, totalBytes].every(Number.isSafeInteger) ||
|
|
267
|
+
count < 2 ||
|
|
268
|
+
count > MAX_BODY_PARTS ||
|
|
269
|
+
index < 0 ||
|
|
270
|
+
index >= count ||
|
|
271
|
+
offset !== index * MAX_CONTENT_BYTES ||
|
|
272
|
+
totalBytes <= (count - 1) * MAX_CONTENT_BYTES ||
|
|
273
|
+
totalBytes > count * MAX_CONTENT_BYTES ||
|
|
274
|
+
body.byteLength !== Math.min(MAX_CONTENT_BYTES, totalBytes - offset) ||
|
|
275
|
+
typeof totalSha256 !== "string" ||
|
|
276
|
+
!/^[a-f0-9]{64}$/.test(totalSha256))
|
|
277
|
+
throw new Error("invalid body part");
|
|
278
|
+
}
|
|
279
|
+
/** True when `next` is the part that must follow `previous` in one split body. */
|
|
280
|
+
export function continuesBodyPart(previous, next) {
|
|
281
|
+
const a = previous.bodyPart;
|
|
282
|
+
const b = next.bodyPart;
|
|
283
|
+
return (!!a &&
|
|
284
|
+
!!b &&
|
|
285
|
+
next.kind === previous.kind &&
|
|
286
|
+
next.sequence === previous.sequence + 1 &&
|
|
287
|
+
b.index === a.index + 1 &&
|
|
288
|
+
b.count === a.count &&
|
|
289
|
+
b.totalBytes === a.totalBytes &&
|
|
290
|
+
b.totalSha256 === a.totalSha256);
|
|
291
|
+
}
|
|
248
292
|
export const MAX_SEGMENT_BYTES = 1408 * 1024;
|
|
249
293
|
export async function validateSegment(raw, expected) {
|
|
250
294
|
if (raw.length > MAX_ENVELOPE_BYTES)
|
|
@@ -287,6 +331,15 @@ export async function validateSegment(raw, expected) {
|
|
|
287
331
|
o.configRevision !== first.configRevision ||
|
|
288
332
|
(o.kind === "completion" && index !== observations.length - 1)))
|
|
289
333
|
throw new Error("inconsistent segment lifecycle");
|
|
334
|
+
// Parts of one split body are consecutive; neighbors within a segment must chain.
|
|
335
|
+
for (const [index, o] of observations.entries()) {
|
|
336
|
+
const previous = observations[index - 1];
|
|
337
|
+
if (!previous)
|
|
338
|
+
continue;
|
|
339
|
+
const open = previous.bodyPart && previous.bodyPart.index < previous.bodyPart.count - 1;
|
|
340
|
+
if ((open || (o.bodyPart && o.bodyPart.index > 0)) && !continuesBodyPart(previous, o))
|
|
341
|
+
throw new Error("body part order mismatch");
|
|
342
|
+
}
|
|
290
343
|
const callId = await callIdentity(first);
|
|
291
344
|
const identity = await sha256(new TextEncoder().encode(JSON.stringify([
|
|
292
345
|
envelope.destinationId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,MAAM,EAAE,GAAG,qCAAqC,CAAC;AACjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,gCAAgC;IAChC,oBAAoB;IACpB,2BAA2B;CAC5B,CAAC,CAAC;AAyDH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAiB;IAC5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,CAAuB;IAC/D,OAAO,MAAM,CACX,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,IAAI,CAAC,SAAS,CAAC;QACb,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI;KACP,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,CAA4F;IAE5F,OAAO,MAAM,CACX,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAC7E,CACF,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,UAAU,CAAC,CAAuB;IAChD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACzB,IACE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC;QACjD,CAAC,kEAAkE,CAAC,IAAI,CAAC,GAAG,CAAC;QAE7E,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,iBAAiB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,YAAY;QACzE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAe,EACf,QAAmE;IAEnE,IAAI,GAAG,CAAC,UAAU,GAAG,kBAAkB;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACzF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,KAA6B,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;QACrB,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,eAAe;QACf,eAAe;QACf,YAAY;QACZ,cAAc;QACd,WAAW;QACX,UAAU;QACV,MAAM;QACN,YAAY;QACZ,UAAU;QACV,OAAO;QACP,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,gBAAgB;QAChB,mBAAmB;QACnB,gBAAgB;QAChB,mBAAmB;QACnB,mBAAmB;QACnB,eAAe;QACf,aAAa;QACb,sBAAsB;QACtB,iBAAiB;QACjB,uBAAuB;QACvB,kBAAkB;QAClB,mBAAmB;QACnB,MAAM;QACN,mBAAmB;QACnB,aAAa;QACb,eAAe;QACf,cAAc;QACd,mBAAmB;QACnB,qBAAqB;QACrB,oBAAoB;QACpB,sBAAsB;QACtB,OAAO;QACP,cAAc;QACd,oBAAoB;QACpB,KAAK;QACL,kBAAkB;QAClB,0BAA0B;QAC1B,qBAAqB;KACtB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,IACE,CAAC,CAAC,aAAa,KAAK,CAAC;QACrB,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa;QAC1C,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;QAE5C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI;QAClB,eAAe;QACf,YAAY;QACZ,cAAc;QACd,WAAW;QACX,gBAAgB;KACR,EAAE,CAAC;QACX,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9F,CAAC;IACD,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjC,CAAC,CAAC,QAAQ,GAAG,CAAC;QACd,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjC,CAAC,CAAC,QAAQ,GAAG,CAAC;QACd,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;QACrC,CAAC,CAAC,YAAY,GAAG,CAAC;QAClB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACpB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAE1C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,IACE,CAAC;QACC,SAAS;QACT,oBAAoB;QACpB,UAAU;QACV,aAAa;QACb,cAAc;QACd,YAAY;KACb,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAClB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;QAEvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7D,IACE,CAAC;YACC,WAAW;YACX,OAAO;YACP,OAAO;YACP,SAAS;YACT,iBAAiB;YACjB,mBAAmB;YACnB,aAAa;YACb,QAAQ;YACR,QAAQ;YACR,WAAW;SACZ,CAAC,QAAQ,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,KAAK,QAAQ;YACvB,GAAG,CAAC,MAAM,GAAG,GAAG;YAEhB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;IACD,IACE,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC;YACrC,CAAC,CAAC,oBAAoB,CAAC,MAAM,GAAG,EAAE;YAClC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAE7E,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,KAAK,MAAM,KAAK,IAAI;QAClB,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,mBAAmB;QACnB,mBAAmB;QACnB,eAAe;QACf,KAAK;QACL,mBAAmB;KACX,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAE,CAAC,MAAM,GAAG,GAAG,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACjD,CAAC;IACD,IACE,CAAC,CAAC,CAAC,aAAa;QAChB,CAAC,CAAC,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,aAAa,KAAK,cAAc;YAClC,CAAC,CAAC,aAAa,KAAK,uBAAuB,CAAC;QAE9C,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,IACE,CAAC,CAAC,aAAa,KAAK,SAAS;QAC7B,CAAC,CAAC,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;YACnE,CAAC,CAAC,gBAAgB,KAAK,SAAS,CAAC;QAEnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,IACE,CAAC,CAAC,iBAAiB,KAAK,SAAS;QACjC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAClC,CAAC,CAAC,iBAAiB,CAAC,MAAM,GAAG,EAAE;YAC/B,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAE1E,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,IACE,CAAC,CAAC,KAAK,KAAK,SAAS;QACrB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;YAC1B,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM;gBACtC,CAAC,CAAC,CAAC,aAAa,KAAK,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE7E,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,IACE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,WAAW,KAAK,kBAAkB,CAAC;QACzE,CAAC,CAAC,aAAa,KAAK,cAAc;QAClC,CAAC,CAAC,aAAa,KAAK,uBAAuB;QAE3C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,IACE,CAAC,CAAC,aAAa,KAAK,cAAc;QAClC,CAAC,CAAC,CAAC,gBAAgB,KAAK,SAAS;YAC/B,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,WAAW,KAAK,kBAAkB,CAAC,CAAC;QAEtE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,IACE,CAAC,CAAC,IAAI,KAAK,YAAY;QACvB,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACpF,CAAC,CACC,CAAC,CAAC,aAAa,KAAK,uBAAuB;YAC3C,CAAC,CAAC,iBAAiB,KAAK,IAAI;YAC5B,CAAC,CAAC,iBAAiB,KAAK,SAAS;YACjC,CAAC,6BAA6B,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CACvE;QAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,IACE,CAAC,CAAC,WAAW,KAAK,SAAS;QAC3B,CAAC,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAC3F,CAAC,CAAC,WAAW,CACd;QAED,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,CAAC,WAAW,KAAK,kBAAkB,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,aAAa,KAAK,uBAAuB,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc;YAC1E,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;SAAM,IAAI,CAAC,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,IACE,CAAC,CAAC,aAAa,KAAK,uBAAuB;QAC3C,CAAC,CAAC,CAAC,gBAAgB,KAAK,SAAS;YAC/B,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,WAAW,KAAK,kBAAkB,CAAC,CAAC;QAEtE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,IACE,CAAC,CAAC,gBAAgB,KAAK,SAAS;QAChC,CAAC,CAAC,CAAC,aAAa,KAAK,uBAAuB;YAC1C,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACzC,CAAC,CAAC,gBAAgB,GAAG,CAAC;YACtB,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC;QAE3D,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,IACE,CAAC,CAAC,iBAAiB,KAAK,SAAS;QACjC,CAAC,CAAC,CAAC,aAAa,KAAK,uBAAuB;YAC1C,OAAO,CAAC,CAAC,iBAAiB,KAAK,SAAS;YACxC,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAElC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,IACE,CAAC,CAAC,iBAAiB,KAAK,SAAS;QACjC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACzC,CAAC,CAAC,iBAAiB,GAAG,CAAC;YACvB,CAAC,CAAC,iBAAiB,GAAG,kBAAkB,CAAC;QAE3C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,SAAS;QACrE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,IACE,CAAC,CAAC,kBAAkB,KAAK,SAAS;QAClC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC;YAC1C,CAAC,CAAC,kBAAkB,GAAG,CAAC;YACxB,CAAC,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAE5C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACzF,OAAO;QACL,WAAW,EAAE,CAAC;QACd,IAAI;QACJ,QAAQ,EAAE,MAAM,mBAAmB,CAAC,CAAC,CAAC;QACtC,MAAM,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC;QAC7B,MAAM,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC;KAC1B,CAAC;AACJ,CAAC;AAgBD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAe,EACf,QAAmE;IAEnE,IAAI,GAAG,CAAC,MAAM,GAAG,kBAAkB;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAClC,CAAC;IACtB,IACE,QAAQ,CAAC,aAAa,KAAK,CAAC;QAC5B,QAAQ,CAAC,SAAS,KAAK,SAAS;QAChC,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa;QACjD,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnD,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7C,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC/C,QAAQ,CAAC,aAAa,GAAG,CAAC;QAC1B,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,aAAa;QACjD,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,aAAa,IAAI,GAAG;QACxD,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ;QAC1C,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC;QAEpE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,IACE,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,YAAY;QAC5C,OAAO,CAAC,UAAU,GAAG,iBAAiB;QACtC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,aAAa;QAElD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpF,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,aAAa,GAAG,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5F,IACE,WAAW,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;YAC9C,WAAW,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY;YAClD,WAAW,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YAC5C,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,aAAa,GAAG,KAAK;YAEvD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;IAC/B,IACE,YAAY,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CACX,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QACvB,CAAC,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc;QACzC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CACjE;QAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAC3B,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,IAAI,CAAC,SAAS,CAAC;QACb,QAAQ,CAAC,aAAa;QACtB,QAAQ,CAAC,UAAU;QACnB,QAAQ,CAAC,YAAY;QACrB,QAAQ,CAAC,SAAS;QAClB,QAAQ,CAAC,aAAa;QACtB,QAAQ,CAAC,eAAe;KACzB,CAAC,CACH,CACF,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;AAC/F,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlF,QAAA,MAAM,OAAO,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,OAAO,CAAC;CACzB,CAAiB,CAAC;AAEnB,eAAO,MAAM,GAAG,EAAE,SAAS,CAAC,OAAO,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAiB,CAAC;AAC9F,eAAO,MAAM,QAAQ,EAAE,SAAS,CAC9B,OAAO,OAAO,EACd,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CACnB,CAAC;AAClB,eAAO,MAAM,UAAU,EAAqC,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AAAA,oBAAoB;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAKpB,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,OAAO,GAGR,MAAa,CAAC;AAEnB,MAAM,CAAC,MAAM,GAAG,GAAgE,MAAa,CAAC;AAC9F,MAAM,CAAC,MAAM,QAAQ,GAGjB,MAAa,CAAC;AAClB,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,EAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAC;AAE9C,KAAK,cAAc,CAAC,UAAU,EAAE,IAAI,SAAS,MAAM,GAAG,SAAS,IAC7D,UAAU,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM,OAAO,CAAC,GAC9D,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,GACpE,KAAK,CAAC;AAEZ,KAAK,aAAa,CAAC,MAAM,EAAE,IAAI,SAAS,MAAM,GAAG,SAAS,IAAI;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAC;AAE9C,KAAK,cAAc,CAAC,UAAU,EAAE,IAAI,SAAS,MAAM,GAAG,SAAS,IAC7D,UAAU,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM,OAAO,CAAC,GAC9D,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,GACpE,KAAK,CAAC;AAEZ,KAAK,aAAa,CAAC,MAAM,EAAE,IAAI,SAAS,MAAM,GAAG,SAAS,IAAI;KAE1D,GAAG,IAAI,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,GAC3F,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;CACrC,CAAC;AAEF,KAAK,iBAAiB,CAAC,UAAU,EAAE,IAAI,SAAS,MAAM,GAAG,SAAS,IAChE,UAAU,SAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM,OAAO,CAAC,GACjE,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,GACvE,KAAK,CAAC;AAEZ,KAAK,eAAe,CAAC,MAAM,EAAE,IAAI,SAAS,MAAM,GAAG,SAAS,IAAI;KAE5D,GAAG,IAAI,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,GAC9F,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,IAAI;IAC/E,MAAM,EAAE,eAAe,CAAC,OAAO,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,aAAa,CAAC,OAAO,OAAO,EAAE,IAAI,CAAC,CAAC;CAC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/component/ingest.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgLhB,CAAC;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;GAmD3B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;iBAclC,CAAC;AAEH,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/component/ingest.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgLhB,CAAC;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;GAmD3B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;iBAclC,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EvB,CAAC"}
|
package/dist/projection.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { GenericActionCtx, GenericDataModel } from "convex/server";
|
|
2
2
|
import type { CliproxyObservability } from "./client.js";
|
|
3
3
|
import { type PrivateCaptureStorage } from "./content/index.js";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
type ProjectionContext = Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">;
|
|
5
|
+
type ProjectionOptions = {
|
|
6
6
|
client: CliproxyObservability;
|
|
7
7
|
storage: PrivateCaptureStorage;
|
|
8
8
|
destinationId: string;
|
|
9
9
|
callId: string;
|
|
10
|
-
}
|
|
10
|
+
};
|
|
11
|
+
/** Project at most two immutable segments. Host schedules the next page when `more` is true. */
|
|
12
|
+
export declare function projectPendingSegments(ctx: ProjectionContext, options: ProjectionOptions): Promise<{
|
|
11
13
|
progressed: boolean;
|
|
12
14
|
more: boolean;
|
|
13
15
|
waitingForGap?: undefined;
|
|
@@ -16,4 +18,5 @@ export declare function projectPendingSegments(ctx: Pick<GenericActionCtx<Generi
|
|
|
16
18
|
more: boolean;
|
|
17
19
|
waitingForGap: boolean;
|
|
18
20
|
}>;
|
|
21
|
+
export {};
|
|
19
22
|
//# sourceMappingURL=projection.d.ts.map
|
package/dist/projection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AASjF,KAAK,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,CAAC;AAC9F,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA2CF,gGAAgG;AAChG,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB;;;;;;;;GA4F9F"}
|
package/dist/projection.js
CHANGED
|
@@ -1,6 +1,42 @@
|
|
|
1
1
|
import { resolveCallBlob } from "./content/index.js";
|
|
2
|
-
import { sha256 } from "./capture/index.js";
|
|
3
|
-
import { applyObservation } from "./protocols/checkpoint.js";
|
|
2
|
+
import { decodeBody, sha256 } from "./capture/index.js";
|
|
3
|
+
import { MAX_PROJECTED_SPLIT_BYTES, applyObservation, } from "./protocols/checkpoint.js";
|
|
4
|
+
import { BodyPartAssembler } from "./protocols/body-parts.js";
|
|
5
|
+
const segmentLines = (content) => new TextDecoder("utf-8", { fatal: true }).decode(content).split("\n").filter(Boolean);
|
|
6
|
+
/**
|
|
7
|
+
* A split body spans several immutable segments and projection pages. Re-read
|
|
8
|
+
* its owned segments from the first part and return the exact verified body.
|
|
9
|
+
*/
|
|
10
|
+
async function reassembleSplitBody(ctx, options, fromSegment, final) {
|
|
11
|
+
const parts = new BodyPartAssembler();
|
|
12
|
+
const first = final.sequence - final.bodyPart.index;
|
|
13
|
+
let after = fromSegment - 1;
|
|
14
|
+
while (after < final.sequence) {
|
|
15
|
+
const page = await ctx.runQuery(options.client.component.queries.pageEventSegments, {
|
|
16
|
+
destinationId: options.destinationId,
|
|
17
|
+
callId: options.callId,
|
|
18
|
+
afterSequence: after,
|
|
19
|
+
limit: 8,
|
|
20
|
+
});
|
|
21
|
+
if (!page.segments.length || page.segments[0].sequence !== after + 1)
|
|
22
|
+
throw new Error("split body segment unavailable");
|
|
23
|
+
for (const segment of page.segments) {
|
|
24
|
+
if (segment.sequence > final.sequence)
|
|
25
|
+
break;
|
|
26
|
+
const content = await resolveCallBlob(options.storage, [segment.reference], segment.reference);
|
|
27
|
+
for (const line of segmentLines(content)) {
|
|
28
|
+
const o = JSON.parse(line);
|
|
29
|
+
if (o.sequence < first || o.sequence > final.sequence)
|
|
30
|
+
continue;
|
|
31
|
+
const whole = await parts.push(o, decodeBody(o));
|
|
32
|
+
if (whole)
|
|
33
|
+
return whole;
|
|
34
|
+
}
|
|
35
|
+
after = segment.throughSequence;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
throw new Error("split body incomplete");
|
|
39
|
+
}
|
|
4
40
|
/** Project at most two immutable segments. Host schedules the next page when `more` is true. */
|
|
5
41
|
export async function projectPendingSegments(ctx, options) {
|
|
6
42
|
const { client, destinationId, callId } = options;
|
|
@@ -33,11 +69,23 @@ export async function projectPendingSegments(ctx, options) {
|
|
|
33
69
|
break;
|
|
34
70
|
}
|
|
35
71
|
const content = await resolveCallBlob(options.storage, [segment.reference], segment.reference);
|
|
36
|
-
for (const line of
|
|
37
|
-
.
|
|
38
|
-
.
|
|
39
|
-
|
|
40
|
-
|
|
72
|
+
for (const line of segmentLines(content)) {
|
|
73
|
+
const o = JSON.parse(line);
|
|
74
|
+
const part = o.bodyPart;
|
|
75
|
+
if (part?.index === 0)
|
|
76
|
+
checkpoint.bodyPartSegment = segment.sequence;
|
|
77
|
+
if (part && part.index === part.count - 1) {
|
|
78
|
+
if (checkpoint.bodyPartSegment === undefined)
|
|
79
|
+
throw new Error("split body start missing");
|
|
80
|
+
const whole = part.totalBytes > MAX_PROJECTED_SPLIT_BYTES
|
|
81
|
+
? null
|
|
82
|
+
: await reassembleSplitBody(ctx, options, checkpoint.bodyPartSegment, o);
|
|
83
|
+
applyObservation(call, checkpoint, o, whole);
|
|
84
|
+
delete checkpoint.bodyPartSegment;
|
|
85
|
+
}
|
|
86
|
+
else
|
|
87
|
+
applyObservation(call, checkpoint, o);
|
|
88
|
+
}
|
|
41
89
|
through = segment.throughSequence;
|
|
42
90
|
}
|
|
43
91
|
if (through === state.projectedThroughSequence)
|
package/dist/projection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAA8B,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,MAAM,EAA6B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { RecordValue } from "./types.js";
|
|
2
2
|
export declare function anthropicMessages(messages: unknown): RecordValue[];
|
|
3
|
+
/** Event-local validation shared by full replay and bounded scalar checkpoints. */
|
|
4
|
+
export declare function inspectAnthropicEvent(event: RecordValue): {
|
|
5
|
+
invalid: boolean;
|
|
6
|
+
unsupported: boolean;
|
|
7
|
+
};
|
|
3
8
|
export declare function assembleAnthropicStream(events: RecordValue[]): {
|
|
4
9
|
response: RecordValue;
|
|
5
10
|
invalid: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/protocols/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/protocols/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,EAAE,CA+ClE;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW;;;EA8BvD;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE;;;;;;;EAqE5D"}
|
|
@@ -42,8 +42,6 @@ export function anthropicMessages(messages) {
|
|
|
42
42
|
is_error: block.is_error,
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
-
else if (block.type === "text")
|
|
46
|
-
content.push({ type: "text", text: block.text });
|
|
47
45
|
else
|
|
48
46
|
content.push(block);
|
|
49
47
|
}
|
|
@@ -51,12 +49,48 @@ export function anthropicMessages(messages) {
|
|
|
51
49
|
}
|
|
52
50
|
return result;
|
|
53
51
|
}
|
|
52
|
+
/** Event-local validation shared by full replay and bounded scalar checkpoints. */
|
|
53
|
+
export function inspectAnthropicEvent(event) {
|
|
54
|
+
const type = event.type;
|
|
55
|
+
let invalid = false;
|
|
56
|
+
let unsupported = ![
|
|
57
|
+
"message_start",
|
|
58
|
+
"message_delta",
|
|
59
|
+
"message_stop",
|
|
60
|
+
"content_block_start",
|
|
61
|
+
"content_block_delta",
|
|
62
|
+
"content_block_stop",
|
|
63
|
+
"ping",
|
|
64
|
+
"error",
|
|
65
|
+
].includes(String(type));
|
|
66
|
+
if (String(type).startsWith("content_block_"))
|
|
67
|
+
invalid = count(event.index) === undefined;
|
|
68
|
+
if (type === "content_block_delta") {
|
|
69
|
+
const delta = object(event.delta);
|
|
70
|
+
unsupported ||= ![
|
|
71
|
+
"text_delta",
|
|
72
|
+
"thinking_delta",
|
|
73
|
+
"signature_delta",
|
|
74
|
+
"input_json_delta",
|
|
75
|
+
"citations_delta",
|
|
76
|
+
].includes(String(delta.type));
|
|
77
|
+
if (delta.type === "citations_delta")
|
|
78
|
+
invalid ||=
|
|
79
|
+
delta.citation === null ||
|
|
80
|
+
typeof delta.citation !== "object" ||
|
|
81
|
+
Array.isArray(delta.citation);
|
|
82
|
+
}
|
|
83
|
+
return { invalid, unsupported };
|
|
84
|
+
}
|
|
54
85
|
export function assembleAnthropicStream(events) {
|
|
55
86
|
let response = {};
|
|
56
87
|
let invalid = false, recognized = false, unsupported = false, terminal = false, terminalUsage = false;
|
|
57
88
|
const blocks = new Map();
|
|
58
89
|
const argumentsByIndex = new Map();
|
|
59
90
|
for (const event of events) {
|
|
91
|
+
const inspected = inspectAnthropicEvent(event);
|
|
92
|
+
invalid ||= inspected.invalid;
|
|
93
|
+
unsupported ||= inspected.unsupported;
|
|
60
94
|
const index = count(event.index);
|
|
61
95
|
if (event.type === "message_start") {
|
|
62
96
|
response = { ...object(event.message) };
|
|
@@ -72,8 +106,8 @@ export function assembleAnthropicStream(events) {
|
|
|
72
106
|
invalid = true;
|
|
73
107
|
continue;
|
|
74
108
|
}
|
|
75
|
-
if (
|
|
76
|
-
|
|
109
|
+
if (delta.type === "citations_delta" && !inspected.invalid)
|
|
110
|
+
block.citations = [...list(block.citations), delta.citation];
|
|
77
111
|
for (const key of ["text", "thinking", "signature"])
|
|
78
112
|
append(block, key, delta[key]);
|
|
79
113
|
if (typeof delta.partial_json === "string")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-messages.js","sourceRoot":"","sources":["../../src/protocols/anthropic-messages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1D,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,GAAc,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAc,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;gBAChC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO;oBACP,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/C,CAAC,CAAC;YACL,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,GAAG,EAAE,CAAC;QACb,CAAC,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,SAAS,EACP,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;4BACpC,CAAC,CAAC,KAAK,CAAC,YAAY;4BACpB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;qBAClC;iBACF,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACxC,KAAK,EAAE,CAAC;gBACR,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,MAAM;oBACZ,YAAY,EAAE,KAAK,CAAC,WAAW;oBAC/B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC,CAAC;YACL,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-messages.js","sourceRoot":"","sources":["../../src/protocols/anthropic-messages.ts"],"names":[],"mappings":"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"}
|