@flamingo-stack/openframe-frontend-core 0.0.490-1506.3944.1 → 0.0.490
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-5CJR2GZ4.cjs → chunk-2MKUHJ3O.cjs} +31 -31
- package/dist/{chunk-5CJR2GZ4.cjs.map → chunk-2MKUHJ3O.cjs.map} +1 -1
- package/dist/{chunk-S2NHJDKQ.cjs → chunk-3IEVA5AO.cjs} +62 -62
- package/dist/{chunk-S2NHJDKQ.cjs.map → chunk-3IEVA5AO.cjs.map} +1 -1
- package/dist/{chunk-GTWO5NAY.js → chunk-6CFFISUC.js} +2 -2
- package/dist/{chunk-VHG6AX5V.js → chunk-6CJ2K7BD.js} +2 -2
- package/dist/{chunk-4NWARV5I.js → chunk-6QK3ONDD.js} +2 -2
- package/dist/{chunk-YHOIAA2E.cjs → chunk-7I42V2OD.cjs} +60 -60
- package/dist/chunk-7I42V2OD.cjs.map +1 -0
- package/dist/{chunk-T2EGSZFN.js → chunk-AIRNG27G.js} +5 -6
- package/dist/chunk-AIRNG27G.js.map +1 -0
- package/dist/{chunk-NWX7MMF5.cjs → chunk-AW63ET2A.cjs} +15 -15
- package/dist/{chunk-NWX7MMF5.cjs.map → chunk-AW63ET2A.cjs.map} +1 -1
- package/dist/{chunk-TKN5667N.js → chunk-BZMOEWWS.js} +10 -10
- package/dist/chunk-BZMOEWWS.js.map +1 -0
- package/dist/{chunk-DSDZ5T4P.cjs → chunk-D5LQMRPU.cjs} +5 -5
- package/dist/{chunk-DSDZ5T4P.cjs.map → chunk-D5LQMRPU.cjs.map} +1 -1
- package/dist/{chunk-CORIBKHG.js → chunk-EGXCWZYP.js} +2 -2
- package/dist/{chunk-5EYRXSY5.cjs → chunk-EJQUYZXF.cjs} +9 -9
- package/dist/{chunk-5EYRXSY5.cjs.map → chunk-EJQUYZXF.cjs.map} +1 -1
- package/dist/{chunk-P4WTZU6L.cjs → chunk-FY5XAW3H.cjs} +11 -11
- package/dist/{chunk-P4WTZU6L.cjs.map → chunk-FY5XAW3H.cjs.map} +1 -1
- package/dist/{chunk-VQ523ORK.cjs → chunk-GMPYR3MX.cjs} +26 -26
- package/dist/{chunk-VQ523ORK.cjs.map → chunk-GMPYR3MX.cjs.map} +1 -1
- package/dist/{chunk-QSCHCZL3.cjs → chunk-GUTYUMGV.cjs} +7 -7
- package/dist/{chunk-QSCHCZL3.cjs.map → chunk-GUTYUMGV.cjs.map} +1 -1
- package/dist/{chunk-Q6E7VJ4W.cjs → chunk-IEZ3YBAP.cjs} +27 -28
- package/dist/chunk-IEZ3YBAP.cjs.map +1 -0
- package/dist/{chunk-HSACATCD.js → chunk-MPYDX5WX.js} +2 -2
- package/dist/{chunk-RQLBHKXN.js → chunk-NGEFYPY7.js} +2 -2
- package/dist/{chunk-BE6DK7QY.js → chunk-OQIMH2WQ.js} +8985 -11081
- package/dist/chunk-OQIMH2WQ.js.map +1 -0
- package/dist/{chunk-CSYSYJCF.cjs → chunk-UZZT65PQ.cjs} +37 -37
- package/dist/{chunk-CSYSYJCF.cjs.map → chunk-UZZT65PQ.cjs.map} +1 -1
- package/dist/{chunk-YZ2OIYQ3.js → chunk-VDZO6IDR.js} +4 -4
- package/dist/{chunk-UUYRJPGJ.js → chunk-VL2YMDPH.js} +4 -4
- package/dist/{chunk-5LMGFI4J.cjs → chunk-VUXNXWOQ.cjs} +4946 -7042
- package/dist/chunk-VUXNXWOQ.cjs.map +1 -0
- package/dist/{chunk-XQ2B74SI.js → chunk-WLM3F3WU.js} +2 -2
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/guide-display.d.ts +14 -0
- package/dist/components/chat/guide-display.d.ts.map +1 -0
- package/dist/components/chat/hooks/index.d.ts +1 -0
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +48 -15
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts +6 -0
- package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +57 -10
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -8
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.d.ts +1 -1
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +15 -21
- package/dist/components/chat/types/api.types.d.ts +81 -1
- package/dist/components/chat/types/api.types.d.ts.map +1 -1
- package/dist/components/chat/types/component.types.d.ts +6 -0
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/chat/types/message.types.d.ts +15 -2
- package/dist/components/chat/types/message.types.d.ts.map +1 -1
- package/dist/components/chat/types/processing.types.d.ts +93 -2
- package/dist/components/chat/types/processing.types.d.ts.map +1 -1
- package/dist/components/chat/utils/chunk-parser.d.ts +25 -0
- package/dist/components/chat/utils/chunk-parser.d.ts.map +1 -0
- package/dist/components/chat/utils/extract-incomplete-message-state.d.ts +6 -34
- package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
- package/dist/components/chat/utils/index.d.ts +3 -2
- package/dist/components/chat/utils/index.d.ts.map +1 -1
- package/dist/components/chat/utils/message-segment-accumulator.d.ts +5 -0
- package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
- package/dist/components/chat/utils/process-historical-messages.d.ts +11 -59
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/index.cjs +130 -170
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +23 -63
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/index.cjs +2 -42
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +2 -1
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +15 -55
- package/dist/components/ui/rich-markdown-renderer.d.ts +34 -0
- package/dist/components/ui/rich-markdown-renderer.d.ts.map +1 -0
- package/dist/components/ui/simple-markdown-renderer.d.ts +73 -0
- package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -0
- package/dist/index.cjs +2 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +15 -71
- package/dist/utils/index.cjs +40 -169
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +41 -162
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/markdown-section-extractor.d.ts.map +1 -1
- package/package.json +1 -7
- package/src/components/chat/__tests__/chat-message-list.test.tsx +5 -293
- package/src/components/chat/chat-message-enhanced.tsx +80 -163
- package/src/components/chat/chat-message-list.tsx +109 -358
- package/src/components/chat/embeddable-chat.tsx +0 -6
- package/src/components/chat/guide-display.tsx +44 -0
- package/src/components/chat/hooks/.index.md +33 -30
- package/src/components/chat/hooks/.use-nats-chat-adapter.md +55 -36
- package/src/components/chat/hooks/.use-realtime-chunk-processor.md +77 -0
- package/src/components/chat/hooks/index.ts +1 -0
- package/src/components/chat/hooks/use-chat.ts +0 -8
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +825 -243
- package/src/components/chat/hooks/use-realtime-chunk-processor.ts +489 -0
- package/src/components/chat/hooks/use-sse-chat-adapter.ts +684 -380
- package/src/components/chat/index.ts +1 -5
- package/src/components/chat/thinking-display.tsx +1 -1
- package/src/components/chat/types/.api.types.md +49 -39
- package/src/components/chat/types/.processing.types.md +58 -29
- package/src/components/chat/types/api.types.ts +73 -6
- package/src/components/chat/types/component.types.ts +9 -0
- package/src/components/chat/types/message.types.ts +17 -1
- package/src/components/chat/types/processing.types.ts +53 -11
- package/src/components/chat/utils/.chunk-parser.md +62 -0
- package/src/components/chat/utils/.index.md +40 -31
- package/src/components/chat/utils/chunk-parser.ts +262 -0
- package/src/components/chat/utils/extract-incomplete-message-state.ts +5 -63
- package/src/components/chat/utils/index.ts +8 -5
- package/src/components/chat/utils/message-segment-accumulator.ts +19 -0
- package/src/components/chat/utils/process-historical-messages.ts +390 -352
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +4 -22
- package/src/components/shared/legal-document/legal-document-page.tsx +1 -1
- package/src/components/shared/product-release/release-detail-page.tsx +4 -19
- package/src/components/ui/.simple-markdown-renderer.md +52 -0
- package/src/components/ui/index.ts +2 -1
- package/src/components/ui/release-changelog-section.tsx +1 -1
- package/src/components/ui/rich-markdown-renderer.tsx +1223 -0
- package/src/components/ui/simple-markdown-renderer.tsx +964 -0
- package/src/components/ui/ticket-info-section.tsx +1 -1
- package/src/stories/ChatMessageEnhanced.stories.tsx +48 -1
- package/src/utils/index.ts +0 -1
- package/src/utils/markdown-section-extractor.ts +56 -41
- package/dist/chat-protocol/decode.d.ts +0 -58
- package/dist/chat-protocol/decode.d.ts.map +0 -1
- package/dist/chat-protocol/encode.d.ts +0 -44
- package/dist/chat-protocol/encode.d.ts.map +0 -1
- package/dist/chat-protocol/env-flag.d.ts +0 -35
- package/dist/chat-protocol/env-flag.d.ts.map +0 -1
- package/dist/chat-protocol/events.d.ts +0 -196
- package/dist/chat-protocol/events.d.ts.map +0 -1
- package/dist/chat-protocol/frames.d.ts +0 -213
- package/dist/chat-protocol/frames.d.ts.map +0 -1
- package/dist/chat-protocol/index.cjs +0 -494
- package/dist/chat-protocol/index.cjs.map +0 -1
- package/dist/chat-protocol/index.d.ts +0 -18
- package/dist/chat-protocol/index.d.ts.map +0 -1
- package/dist/chat-protocol/index.js +0 -478
- package/dist/chat-protocol/index.js.map +0 -1
- package/dist/chat-protocol/ip-normalize.d.ts +0 -44
- package/dist/chat-protocol/ip-normalize.d.ts.map +0 -1
- package/dist/chat-protocol/nats-decoder.d.ts +0 -26
- package/dist/chat-protocol/nats-decoder.d.ts.map +0 -1
- package/dist/chunk-5LMGFI4J.cjs.map +0 -1
- package/dist/chunk-BE6DK7QY.js.map +0 -1
- package/dist/chunk-Q6E7VJ4W.cjs.map +0 -1
- package/dist/chunk-T2EGSZFN.js.map +0 -1
- package/dist/chunk-TKN5667N.js.map +0 -1
- package/dist/chunk-YHOIAA2E.cjs.map +0 -1
- package/dist/components/chat/stream/chat-dialog-store.d.ts +0 -184
- package/dist/components/chat/stream/chat-dialog-store.d.ts.map +0 -1
- package/dist/components/chat/stream/chat-stream-reducer.d.ts +0 -367
- package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +0 -1
- package/dist/components/chat/stream/delta-batcher.d.ts +0 -51
- package/dist/components/chat/stream/delta-batcher.d.ts.map +0 -1
- package/dist/components/chat/stream/index.d.ts +0 -17
- package/dist/components/chat/stream/index.d.ts.map +0 -1
- package/dist/components/chat/stream/message-mutations.d.ts +0 -77
- package/dist/components/chat/stream/message-mutations.d.ts.map +0 -1
- package/dist/components/chat/stream/use-chat-stream-reducer.d.ts +0 -22
- package/dist/components/chat/stream/use-chat-stream-reducer.d.ts.map +0 -1
- package/dist/components/ui/markdown/base-components.d.ts +0 -51
- package/dist/components/ui/markdown/base-components.d.ts.map +0 -1
- package/dist/components/ui/markdown/engine.d.ts +0 -99
- package/dist/components/ui/markdown/engine.d.ts.map +0 -1
- package/dist/components/ui/markdown/heading-ids.d.ts +0 -65
- package/dist/components/ui/markdown/heading-ids.d.ts.map +0 -1
- package/dist/components/ui/markdown/index.d.ts +0 -18
- package/dist/components/ui/markdown/index.d.ts.map +0 -1
- package/dist/components/ui/markdown/mermaid-diagram.d.ts +0 -79
- package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +0 -1
- package/dist/components/ui/markdown/rich/embed-overrides.d.ts +0 -14
- package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +0 -1
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +0 -40
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +0 -1
- package/dist/components/ui/markdown/rich/shortcodes.d.ts +0 -8
- package/dist/components/ui/markdown/rich/shortcodes.d.ts.map +0 -1
- package/dist/components/ui/markdown/sanitize.d.ts +0 -153
- package/dist/components/ui/markdown/sanitize.d.ts.map +0 -1
- package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +0 -23
- package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +0 -1
- package/dist/components/ui/markdown/streaming.d.ts +0 -78
- package/dist/components/ui/markdown/streaming.d.ts.map +0 -1
- package/dist/components/ui/markdown/text-size.d.ts +0 -34
- package/dist/components/ui/markdown/text-size.d.ts.map +0 -1
- package/dist/utils/markdown-fences.d.ts +0 -42
- package/dist/utils/markdown-fences.d.ts.map +0 -1
- package/dist/utils/markdown-heading-id.d.ts +0 -85
- package/dist/utils/markdown-heading-id.d.ts.map +0 -1
- package/src/chat-protocol/__tests__/__snapshots__/nats-decoder-golden.test.ts.snap +0 -307
- package/src/chat-protocol/__tests__/chat-protocol.test.ts +0 -516
- package/src/chat-protocol/__tests__/env-flag.test.ts +0 -52
- package/src/chat-protocol/__tests__/ip-normalize.test.ts +0 -136
- package/src/chat-protocol/__tests__/nats-decoder-golden.test.ts +0 -228
- package/src/chat-protocol/decode.ts +0 -278
- package/src/chat-protocol/encode.ts +0 -71
- package/src/chat-protocol/env-flag.ts +0 -39
- package/src/chat-protocol/events.ts +0 -232
- package/src/chat-protocol/frames.ts +0 -245
- package/src/chat-protocol/index.ts +0 -21
- package/src/chat-protocol/ip-normalize.ts +0 -146
- package/src/chat-protocol/nats-decoder.ts +0 -252
- package/src/components/chat/__tests__/chat-message-streaming-memo.test.tsx +0 -207
- package/src/components/chat/__tests__/chat-pending-turn.test.tsx +0 -209
- package/src/components/chat/hooks/__tests__/__snapshots__/conversation-id-persistence-golden.test.ts.snap +0 -37
- package/src/components/chat/hooks/__tests__/__snapshots__/sse-stream-golden.test.ts.snap +0 -0
- package/src/components/chat/hooks/__tests__/conversation-id-persistence-golden.test.ts +0 -438
- package/src/components/chat/hooks/__tests__/sse-stream-golden.test.ts +0 -318
- package/src/components/chat/stream/__tests__/__snapshots__/chat-stream-reducer-golden.test.ts.snap +0 -940
- package/src/components/chat/stream/__tests__/chat-dialog-store.test.ts +0 -756
- package/src/components/chat/stream/__tests__/chat-stream-reducer-golden.test.ts +0 -460
- package/src/components/chat/stream/__tests__/chat-stream-reducer.test.ts +0 -894
- package/src/components/chat/stream/__tests__/delta-batcher.test.ts +0 -255
- package/src/components/chat/stream/__tests__/use-chat-stream-reducer.test.ts +0 -98
- package/src/components/chat/stream/chat-dialog-store.ts +0 -536
- package/src/components/chat/stream/chat-stream-reducer.ts +0 -1796
- package/src/components/chat/stream/delta-batcher.ts +0 -159
- package/src/components/chat/stream/index.ts +0 -55
- package/src/components/chat/stream/message-mutations.ts +0 -338
- package/src/components/chat/stream/use-chat-stream-reducer.ts +0 -126
- package/src/components/chat/utils/__tests__/__snapshots__/process-historical-messages-golden.test.ts.snap +0 -420
- package/src/components/chat/utils/__tests__/__snapshots__/segment-accumulator-golden.test.ts.snap +0 -605
- package/src/components/chat/utils/__tests__/process-historical-messages-golden.test.ts +0 -317
- package/src/components/chat/utils/__tests__/segment-accumulator-golden.test.ts +0 -270
- package/src/components/ui/__tests__/__snapshots__/markdown-parity.test.tsx.snap +0 -2420
- package/src/components/ui/__tests__/markdown-parity.test.tsx +0 -2528
- package/src/components/ui/markdown/__tests__/mermaid-security.test.ts +0 -115
- package/src/components/ui/markdown/__tests__/mermaid-stale-render.test.tsx +0 -95
- package/src/components/ui/markdown/__tests__/sanitize-invariant.test.ts +0 -309
- package/src/components/ui/markdown/__tests__/streaming.test.tsx +0 -388
- package/src/components/ui/markdown/base-components.tsx +0 -360
- package/src/components/ui/markdown/engine.tsx +0 -315
- package/src/components/ui/markdown/heading-ids.ts +0 -239
- package/src/components/ui/markdown/index.ts +0 -49
- package/src/components/ui/markdown/mermaid-diagram.tsx +0 -291
- package/src/components/ui/markdown/rich/embed-overrides.tsx +0 -199
- package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +0 -184
- package/src/components/ui/markdown/rich/shortcodes.ts +0 -170
- package/src/components/ui/markdown/sanitize.ts +0 -3499
- package/src/components/ui/markdown/simple-markdown-renderer.tsx +0 -28
- package/src/components/ui/markdown/streaming.ts +0 -362
- package/src/components/ui/markdown/text-size.ts +0 -106
- package/src/utils/markdown-fences.ts +0 -127
- package/src/utils/markdown-heading-id.ts +0 -348
- /package/dist/{chunk-GTWO5NAY.js.map → chunk-6CFFISUC.js.map} +0 -0
- /package/dist/{chunk-VHG6AX5V.js.map → chunk-6CJ2K7BD.js.map} +0 -0
- /package/dist/{chunk-4NWARV5I.js.map → chunk-6QK3ONDD.js.map} +0 -0
- /package/dist/{chunk-CORIBKHG.js.map → chunk-EGXCWZYP.js.map} +0 -0
- /package/dist/{chunk-HSACATCD.js.map → chunk-MPYDX5WX.js.map} +0 -0
- /package/dist/{chunk-RQLBHKXN.js.map → chunk-NGEFYPY7.js.map} +0 -0
- /package/dist/{chunk-YZ2OIYQ3.js.map → chunk-VDZO6IDR.js.map} +0 -0
- /package/dist/{chunk-UUYRJPGJ.js.map → chunk-VL2YMDPH.js.map} +0 -0
- /package/dist/{chunk-XQ2B74SI.js.map → chunk-WLM3F3WU.js.map} +0 -0
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SSE wire-protocol frame shapes — the byte-level contract between the
|
|
3
|
-
* hub's chat stream emitter (`multi-platform-hub/lib/utils/claude-util.ts`)
|
|
4
|
-
* and the lib's SSE decoder (`./decode.ts`).
|
|
5
|
-
*
|
|
6
|
-
* Wire format (custom byte framing, NOT standard SSE `data:` lines):
|
|
7
|
-
*
|
|
8
|
-
* [JSON frame]\0 [JSON frame]\0 … \x1E <raw UTF-8 answer deltas> \x1F [JSON usage trailer]
|
|
9
|
-
*
|
|
10
|
-
* 1. LEADING frames — each a JSON object terminated by `\0`
|
|
11
|
-
* (FRAME_TERMINATOR). Status, metadata, routing, live thinking
|
|
12
|
-
* deltas, usage:start, tool approval frames.
|
|
13
|
-
* 2. ONE `\x1E` byte (END_OF_LEADING) — flips the stream into raw
|
|
14
|
-
* UTF-8 answer-text mode.
|
|
15
|
-
* 3. `\x1F` (TRAILER_SENTINEL) + one JSON usage frame running to
|
|
16
|
-
* stream end (no terminator).
|
|
17
|
-
*
|
|
18
|
-
* Server-safe: no React, no browser APIs beyond TextEncoder/TextDecoder.
|
|
19
|
-
*/
|
|
20
|
-
/** Terminates every leading JSON frame. */
|
|
21
|
-
export declare const FRAME_TERMINATOR = "\0";
|
|
22
|
-
/** Record Separator — end of leading frames, start of raw answer text. */
|
|
23
|
-
export declare const END_OF_LEADING = "\u001E";
|
|
24
|
-
/** Unit Separator — start of the trailing usage JSON frame. */
|
|
25
|
-
export declare const TRAILER_SENTINEL = "\u001F";
|
|
26
|
-
/** Server-side routing complexity tiers. Mirror of the hub's
|
|
27
|
-
* `lib/constants/ai-models.ts` union — kept as a lib-local literal type
|
|
28
|
-
* so the wire SSOT has zero hub imports. The DECODER accepts any string
|
|
29
|
-
* (older/newer servers may ship values outside this union). */
|
|
30
|
-
export type RouteComplexity = 'trivial' | 'default' | 'complex' | 'deep';
|
|
31
|
-
/**
|
|
32
|
-
* Routing decision frame. Emitted once per turn as a LEADING frame
|
|
33
|
-
* (between metadata and the `\x1E` end-of-leading-frames sentinel) when
|
|
34
|
-
* the server's `decideRoute()` produces a `Route`.
|
|
35
|
-
*
|
|
36
|
-
* Field names use the `routed*` prefix on PURPOSE — the client's
|
|
37
|
-
* catch-all leading-frame branch inspects `meta.model` / `meta.modelLabel`.
|
|
38
|
-
* A bare `model` field on this frame would OVERWRITE the metadata frame's
|
|
39
|
-
* modelLabel and break the <ModelDisplay> badge. The `routed` prefix
|
|
40
|
-
* sidesteps that collision.
|
|
41
|
-
*
|
|
42
|
-
* Older clients that don't recognize `kind: 'routing'` silently drop
|
|
43
|
-
* the frame (the catch-all only matches frames carrying known fields
|
|
44
|
-
* like `sources` / `refs` / `modelLabel`).
|
|
45
|
-
*/
|
|
46
|
-
export interface RoutingFrame {
|
|
47
|
-
kind: 'routing';
|
|
48
|
-
routedComplexity: RouteComplexity;
|
|
49
|
-
routedModel: string;
|
|
50
|
-
routedThinkingBudget: number;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Optional field on the trailing usage frame's `breakdown`. Surfaces
|
|
54
|
-
* per-route attribution to the admin test console so an operator can
|
|
55
|
-
* see "this turn ran on Haiku/trivial/$0.0005" without re-parsing the
|
|
56
|
-
* stream. Additive: clients that ignore unknown keys keep working.
|
|
57
|
-
*/
|
|
58
|
-
export interface RoutedAnswerBreakdown {
|
|
59
|
-
model: string;
|
|
60
|
-
complexity: RouteComplexity;
|
|
61
|
-
thinkingBudget: number;
|
|
62
|
-
}
|
|
63
|
-
/** First frame on every stream — lets the shell render "Thinking…"
|
|
64
|
-
* within ~200ms, before any upstream byte arrives. */
|
|
65
|
-
export interface StatusThinkingFrame {
|
|
66
|
-
status: 'thinking';
|
|
67
|
-
}
|
|
68
|
-
/** Per-turn metadata frame. The emitter sends `options.metadata`
|
|
69
|
-
* verbatim; a separate refs-only frame may follow with the same shape.
|
|
70
|
-
* All fields optional — the decoder's catch-all treats ANY frame that
|
|
71
|
-
* didn't match a `kind` discriminant as metadata-ish. */
|
|
72
|
-
export interface ChatMetadataFrame {
|
|
73
|
-
/** Retrieval sources for the source-chip strip. Host-defined row
|
|
74
|
-
* shape (`ChatSource` on the adapter side) — opaque at wire level. */
|
|
75
|
-
sources?: unknown[];
|
|
76
|
-
/** Per-row refs for inline object cards, keyed `<type>:<id>`. */
|
|
77
|
-
refs?: Record<string, unknown>;
|
|
78
|
-
/** Raw model id (e.g. 'claude-sonnet-x'). Presence alone triggers the
|
|
79
|
-
* client's meta merge; the value itself is not stored. */
|
|
80
|
-
model?: string;
|
|
81
|
-
modelLabel?: string;
|
|
82
|
-
provider?: string;
|
|
83
|
-
contextWindowMaxTokens?: number;
|
|
84
|
-
/** Per-message viewport-positioning hint ('top' | 'bottom'). */
|
|
85
|
-
scrollAnchor?: string;
|
|
86
|
-
/** SERVER-minted conversation trace id (`chat_conversations.id`),
|
|
87
|
-
* echoed on every turn's leading metadata frame. The client never
|
|
88
|
-
* generates ids — the first turn of a session goes out id-less, the
|
|
89
|
-
* server mints one and echoes it here, and the adapter persists the
|
|
90
|
-
* echoed id as its ONLY local state (see
|
|
91
|
-
* `chat-conversation-storage.ts` on the consumer side). */
|
|
92
|
-
conversationId?: string;
|
|
93
|
-
}
|
|
94
|
-
/** Live adaptive-thinking delta. WIRE IS ALREADY DELTA (Anthropic
|
|
95
|
-
* thinking_delta slices) — decoders must NOT diff or re-accumulate. */
|
|
96
|
-
export interface ThinkingDeltaFrame {
|
|
97
|
-
kind: 'thinking-delta';
|
|
98
|
-
text: string;
|
|
99
|
-
}
|
|
100
|
-
/** Usage frame emitted as a LEADING frame right after Anthropic's
|
|
101
|
-
* message_start (stage='start'). */
|
|
102
|
-
export interface UsageStartFrame {
|
|
103
|
-
kind: 'usage';
|
|
104
|
-
stage: 'start';
|
|
105
|
-
input_tokens: number;
|
|
106
|
-
cache_read_input_tokens?: number;
|
|
107
|
-
cache_creation_input_tokens?: number;
|
|
108
|
-
}
|
|
109
|
-
/** Model preamble prose written BEFORE a tool_use block — emitted as a
|
|
110
|
-
* standalone leading frame so it isn't stranded behind the approval
|
|
111
|
-
* card (the `\x1E` sentinel is suppressed on tool turns). */
|
|
112
|
-
export interface TextLeadingFrame {
|
|
113
|
-
kind: 'text-leading';
|
|
114
|
-
text: string;
|
|
115
|
-
}
|
|
116
|
-
/** Tool invocation failed server-side (proposal persist error,
|
|
117
|
-
* validation, ownership denial …). */
|
|
118
|
-
export interface ToolErrorFrame {
|
|
119
|
-
kind: 'tool_error';
|
|
120
|
-
toolName?: string;
|
|
121
|
-
toolUseId?: string;
|
|
122
|
-
message: string;
|
|
123
|
-
}
|
|
124
|
-
export interface ApprovalRequestField {
|
|
125
|
-
label: string;
|
|
126
|
-
value: string;
|
|
127
|
-
}
|
|
128
|
-
/** The model called a write tool; the server persisted a proposal and
|
|
129
|
-
* ships a card-ready payload. Shape mirrors the hub's `onToolUse`
|
|
130
|
-
* return in `lib/data/doc-chat-utils.ts`. */
|
|
131
|
-
export interface ApprovalRequestFrame {
|
|
132
|
-
kind: 'approval_request';
|
|
133
|
-
proposalId: string;
|
|
134
|
-
toolName: string;
|
|
135
|
-
title?: string;
|
|
136
|
-
fields?: ApprovalRequestField[];
|
|
137
|
-
preamble?: string | null;
|
|
138
|
-
args?: Record<string, unknown>;
|
|
139
|
-
expiresAt?: string;
|
|
140
|
-
ttlSeconds?: number;
|
|
141
|
-
}
|
|
142
|
-
/** Server-driven post-approve / post-reject frame (confirm-tool route).
|
|
143
|
-
* Mirror of the hub's `DecisionResolvedFrame` in
|
|
144
|
-
* `lib/data/chat-agent-utils.ts` (tool_name widened to string — the
|
|
145
|
-
* known-write-tool whitelist is host-side knowledge). */
|
|
146
|
-
export interface DecisionResolvedFrame {
|
|
147
|
-
kind: 'decision_resolved';
|
|
148
|
-
/** The proposal this decision resolved — locates the SOURCE approval
|
|
149
|
-
* card so the shell can flip its status + append the receipt. */
|
|
150
|
-
proposalId: string;
|
|
151
|
-
ok: boolean;
|
|
152
|
-
action: 'approved' | 'rejected';
|
|
153
|
-
tool_name?: string;
|
|
154
|
-
result?: {
|
|
155
|
-
ticket_id?: string;
|
|
156
|
-
status?: string | null;
|
|
157
|
-
mirror_synced?: boolean;
|
|
158
|
-
};
|
|
159
|
-
card?: {
|
|
160
|
-
type: string;
|
|
161
|
-
marker: string;
|
|
162
|
-
ref: unknown;
|
|
163
|
-
};
|
|
164
|
-
/** True when the server WILL pipe an auto-continuation turn after
|
|
165
|
-
* this frame. */
|
|
166
|
-
willAutoContinue: boolean;
|
|
167
|
-
/** Pre-rendered receipt copy from the source strategy's
|
|
168
|
-
* `receiptRenderer` — client renders verbatim. */
|
|
169
|
-
receiptText?: string;
|
|
170
|
-
}
|
|
171
|
-
/** Every leading frame the emitter can produce. */
|
|
172
|
-
export type SseLeadingFrame = StatusThinkingFrame | ChatMetadataFrame | RoutingFrame | ThinkingDeltaFrame | UsageStartFrame | TextLeadingFrame | ToolErrorFrame | ApprovalRequestFrame | DecisionResolvedFrame;
|
|
173
|
-
/** Card/chip emission counts for admin adoption tooling. */
|
|
174
|
-
export interface UsageTelemetry {
|
|
175
|
-
cards: number;
|
|
176
|
-
chips: number;
|
|
177
|
-
sentences: number;
|
|
178
|
-
answerLen: number;
|
|
179
|
-
}
|
|
180
|
-
/** Trailing usage frame — `\x1F` + JSON, runs to stream end (no
|
|
181
|
-
* terminator). `stage: 'display'` is a legacy alias the decoder treats
|
|
182
|
-
* identically to `'end'`. */
|
|
183
|
-
export interface SseTrailingUsageFrame {
|
|
184
|
-
kind: 'usage';
|
|
185
|
-
stage: 'end' | 'display';
|
|
186
|
-
input_tokens?: number;
|
|
187
|
-
output_tokens?: number;
|
|
188
|
-
cache_read_input_tokens?: number;
|
|
189
|
-
cache_creation_input_tokens?: number;
|
|
190
|
-
hit_rate_pct?: number;
|
|
191
|
-
telemetry?: UsageTelemetry;
|
|
192
|
-
/** Cross-call usage breakdown (Haiku rewriter / classifier /
|
|
193
|
-
* summarizer + routed-answer attribution). */
|
|
194
|
-
breakdown?: {
|
|
195
|
-
haikuRewriter?: {
|
|
196
|
-
input: number;
|
|
197
|
-
output: number;
|
|
198
|
-
};
|
|
199
|
-
haikuClassifier?: {
|
|
200
|
-
input: number;
|
|
201
|
-
output: number;
|
|
202
|
-
};
|
|
203
|
-
haikuSummarizer?: {
|
|
204
|
-
input: number;
|
|
205
|
-
output: number;
|
|
206
|
-
};
|
|
207
|
-
routedAnswer?: RoutedAnswerBreakdown;
|
|
208
|
-
};
|
|
209
|
-
/** Gated deep-debug payload (only present when the request carried
|
|
210
|
-
* the privileged debug secret). */
|
|
211
|
-
debug?: Record<string, unknown>;
|
|
212
|
-
}
|
|
213
|
-
//# sourceMappingURL=frames.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/chat-protocol/frames.ts"],"names":[],"mappings":"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"}
|