@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.
Files changed (54) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +2 -2
  3. package/dist/capture/content-health.d.ts +4 -1
  4. package/dist/capture/content-health.d.ts.map +1 -1
  5. package/dist/capture/content-health.js +6 -5
  6. package/dist/capture/content-health.js.map +1 -1
  7. package/dist/capture/index.d.ts +21 -0
  8. package/dist/capture/index.d.ts.map +1 -1
  9. package/dist/capture/index.js +53 -0
  10. package/dist/capture/index.js.map +1 -1
  11. package/dist/component/_generated/api.d.ts.map +1 -1
  12. package/dist/component/_generated/api.js.map +1 -1
  13. package/dist/component/_generated/component.d.ts.map +1 -1
  14. package/dist/component/ingest.d.ts +1 -0
  15. package/dist/component/ingest.d.ts.map +1 -1
  16. package/dist/projection.d.ts +6 -3
  17. package/dist/projection.d.ts.map +1 -1
  18. package/dist/projection.js +55 -7
  19. package/dist/projection.js.map +1 -1
  20. package/dist/protocols/anthropic-messages.d.ts +5 -0
  21. package/dist/protocols/anthropic-messages.d.ts.map +1 -1
  22. package/dist/protocols/anthropic-messages.js +38 -4
  23. package/dist/protocols/anthropic-messages.js.map +1 -1
  24. package/dist/protocols/body-parts.d.ts +19 -0
  25. package/dist/protocols/body-parts.d.ts.map +1 -0
  26. package/dist/protocols/body-parts.js +56 -0
  27. package/dist/protocols/body-parts.js.map +1 -0
  28. package/dist/protocols/chat-completions.d.ts.map +1 -1
  29. package/dist/protocols/chat-completions.js +16 -4
  30. package/dist/protocols/chat-completions.js.map +1 -1
  31. package/dist/protocols/checkpoint.d.ts +17 -1
  32. package/dist/protocols/checkpoint.d.ts.map +1 -1
  33. package/dist/protocols/checkpoint.js +59 -15
  34. package/dist/protocols/checkpoint.js.map +1 -1
  35. package/dist/protocols/index.d.ts +2 -1
  36. package/dist/protocols/index.d.ts.map +1 -1
  37. package/dist/protocols/index.js +6 -1
  38. package/dist/protocols/index.js.map +1 -1
  39. package/dist/protocols/responses.d.ts +8 -0
  40. package/dist/protocols/responses.d.ts.map +1 -1
  41. package/dist/protocols/responses.js +43 -1
  42. package/dist/protocols/responses.js.map +1 -1
  43. package/package.json +1 -1
  44. package/src/capture/content-health.ts +8 -5
  45. package/src/capture/index.ts +74 -0
  46. package/src/component/_generated/api.ts +5 -6
  47. package/src/component/_generated/component.ts +6 -6
  48. package/src/projection.ts +71 -16
  49. package/src/protocols/anthropic-messages.ts +39 -8
  50. package/src/protocols/body-parts.ts +58 -0
  51. package/src/protocols/chat-completions.ts +13 -4
  52. package/src/protocols/checkpoint.ts +64 -14
  53. package/src/protocols/index.ts +8 -1
  54. 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.6 and compatible readers before the producer. 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.
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;;;;;;;;;;;;;;;;;;;;;;oNAWjC,CAAC;AAEH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAY1D"}
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
- return (Object.keys(counters).length === Object.keys(contentHealthValidator.fields).length &&
22
- Object.keys(contentHealthValidator.fields).every((key) => {
23
- const n = counters[key];
24
- return typeof n === "number" && Number.isSafeInteger(n) && n >= 0;
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,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,MAAM;QAClF,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACvD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC;QACD,QAAQ,CAAC,oBAA+B,IAAK,QAAQ,CAAC,gBAA2B,CACnF,CAAC;AACJ,CAAC"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capture/index.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
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,EACV,cAAc,EACd,SAAS,EACT,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAGvB,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,CAAC,OAAO,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAiB,CAAC;AACrG,eAAO,MAAM,UAAU,EAAqC,EAAE,CAAC"}
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;AASpB,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,GAAkE,MAAa,CAAC;AACrG,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,EAAmB,CAAC"}
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;KAC3D,GAAG,IAAI,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAC3E,GAAG,GACH,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;CAC9C,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;KAC7D,GAAG,IAAI,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAC9E,GAAG,GACH,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;CACjD,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
+ {"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"}
@@ -59,6 +59,7 @@ export declare const recordHealth: import("convex/server").RegisteredMutation<"p
59
59
  observedAt: string;
60
60
  } | undefined;
61
61
  content?: {
62
+ missedCalls?: number | undefined;
62
63
  observedBytes: number;
63
64
  committedBytes: number;
64
65
  lostBytes: number;
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EvB,CAAC"}
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"}
@@ -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
- /** Project at most two immutable segments. Host schedules the next page when `more` is true. */
5
- export declare function projectPendingSegments(ctx: Pick<GenericActionCtx<GenericDataModel>, "runQuery" | "runMutation">, options: {
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
- }): Promise<{
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
@@ -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;AAIjF,gGAAgG;AAChG,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,EACzE,OAAO,EAAE;IACP,MAAM,EAAE,qBAAqB,CAAC;IAC9B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;;;;;;;;GAoFF"}
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"}
@@ -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 new TextDecoder("utf-8", { fatal: true })
37
- .decode(content)
38
- .split("\n")
39
- .filter(Boolean))
40
- applyObservation(call, checkpoint, JSON.parse(line));
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)
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
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,CAgDlE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE;;;;;;;EAsE5D"}
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 (!["text_delta", "thinking_delta", "signature_delta", "input_json_delta"].includes(String(delta.type)))
76
- unsupported = true;
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":"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"}
1
+ {"version":3,"file":"anthropic-messages.js","sourceRoot":"","sources":["../../src/protocols/anthropic-messages.ts"],"names":[],"mappings":"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"}