dsh-better-display 0.3.7 → 0.3.9
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 +22 -1
- package/DESIGN.md +43 -3
- package/README.en.md +9 -1
- package/README.md +9 -1
- package/docs/dependency-update-policy.md +9 -0
- package/docs/extension-points.md +172 -0
- package/docs/official-rendering-bridge.md +59 -18
- package/docs/openapi.yaml +147 -0
- package/docs/runbooks/blank-reader.md +39 -0
- package/lib/client.js +1629 -586
- package/lib/client.js.map +1 -1
- package/lib/dsh-better-display.js +535 -57
- package/lib/types/client/AssistantNode.d.ts +20 -0
- package/lib/types/client/AssistantNode.d.ts.map +1 -0
- package/lib/types/client/AssistantNode.js +46 -0
- package/lib/types/client/AssistantNode.js.map +1 -0
- package/lib/types/client/Blocks.d.ts.map +1 -1
- package/lib/types/client/Blocks.js +33 -10
- package/lib/types/client/Blocks.js.map +1 -1
- package/lib/types/client/ChoreographedFlow.d.ts.map +1 -1
- package/lib/types/client/ChoreographedFlow.js +2 -0
- package/lib/types/client/ChoreographedFlow.js.map +1 -1
- package/lib/types/client/ClosedProcessSummary.d.ts.map +1 -1
- package/lib/types/client/ClosedProcessSummary.js +3 -1
- package/lib/types/client/ClosedProcessSummary.js.map +1 -1
- package/lib/types/client/McpAppFrame.d.ts.map +1 -1
- package/lib/types/client/McpAppFrame.js +5 -11
- package/lib/types/client/McpAppFrame.js.map +1 -1
- package/lib/types/client/OfficialContent.d.ts +17 -3
- package/lib/types/client/OfficialContent.d.ts.map +1 -1
- package/lib/types/client/OfficialContent.js +33 -7
- package/lib/types/client/OfficialContent.js.map +1 -1
- package/lib/types/client/Reader.d.ts.map +1 -1
- package/lib/types/client/Reader.js +76 -73
- package/lib/types/client/Reader.js.map +1 -1
- package/lib/types/client/SettingsSection.d.ts.map +1 -1
- package/lib/types/client/SettingsSection.js +0 -5
- package/lib/types/client/SettingsSection.js.map +1 -1
- package/lib/types/client/StickyLane.d.ts +12 -0
- package/lib/types/client/StickyLane.d.ts.map +1 -1
- package/lib/types/client/StickyLane.js +78 -2
- package/lib/types/client/StickyLane.js.map +1 -1
- package/lib/types/client/ToolActivity.d.ts.map +1 -1
- package/lib/types/client/ToolActivity.js +10 -5
- package/lib/types/client/ToolActivity.js.map +1 -1
- package/lib/types/client/deliverables.d.ts.map +1 -1
- package/lib/types/client/deliverables.js +2 -0
- package/lib/types/client/deliverables.js.map +1 -1
- package/lib/types/client/index.d.ts +3 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +15 -1
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/live-turn.d.ts +17 -5
- package/lib/types/client/live-turn.d.ts.map +1 -1
- package/lib/types/client/live-turn.js +106 -76
- package/lib/types/client/live-turn.js.map +1 -1
- package/lib/types/client/motion.d.ts +26 -2
- package/lib/types/client/motion.d.ts.map +1 -1
- package/lib/types/client/motion.js +144 -10
- package/lib/types/client/motion.js.map +1 -1
- package/lib/types/client/official-slots.d.ts +9 -0
- package/lib/types/client/official-slots.d.ts.map +1 -1
- package/lib/types/client/official-slots.js +22 -4
- package/lib/types/client/official-slots.js.map +1 -1
- package/lib/types/client/open-file.d.ts.map +1 -1
- package/lib/types/client/open-file.js +1 -6
- package/lib/types/client/open-file.js.map +1 -1
- package/lib/types/client/projection.d.ts +15 -2
- package/lib/types/client/projection.d.ts.map +1 -1
- package/lib/types/client/projection.js +16 -4
- package/lib/types/client/projection.js.map +1 -1
- package/lib/types/client/rewind-cut.d.ts +131 -0
- package/lib/types/client/rewind-cut.d.ts.map +1 -0
- package/lib/types/client/rewind-cut.js +321 -0
- package/lib/types/client/rewind-cut.js.map +1 -0
- package/lib/types/client/styles.d.ts +3 -0
- package/lib/types/client/styles.d.ts.map +1 -0
- package/lib/types/client/styles.js +25 -0
- package/lib/types/client/styles.js.map +1 -0
- package/lib/types/client/text-transform.d.ts +93 -0
- package/lib/types/client/text-transform.d.ts.map +1 -0
- package/lib/types/client/text-transform.js +183 -0
- package/lib/types/client/text-transform.js.map +1 -0
- package/lib/types/client/timeline.d.ts.map +1 -1
- package/lib/types/client/timeline.js.map +1 -1
- package/lib/types/client/tool-activity.d.ts +11 -4
- package/lib/types/client/tool-activity.d.ts.map +1 -1
- package/lib/types/client/tool-activity.js +54 -9
- package/lib/types/client/tool-activity.js.map +1 -1
- package/lib/types/client/turn-slots.d.ts +29 -0
- package/lib/types/client/turn-slots.d.ts.map +1 -0
- package/lib/types/client/turn-slots.js +62 -0
- package/lib/types/client/turn-slots.js.map +1 -0
- package/lib/types/client/types.d.ts +18 -0
- package/lib/types/client/types.d.ts.map +1 -1
- package/lib/types/dsh-better-display.d.ts +4 -1
- package/lib/types/dsh-better-display.d.ts.map +1 -1
- package/lib/types/dsh-better-display.js +55 -43
- package/lib/types/dsh-better-display.js.map +1 -1
- package/lib/types/flags.d.ts +7 -0
- package/lib/types/flags.d.ts.map +1 -0
- package/lib/types/flags.js +37 -0
- package/lib/types/flags.js.map +1 -0
- package/lib/types/log.d.ts +17 -0
- package/lib/types/log.d.ts.map +1 -0
- package/lib/types/log.js +122 -0
- package/lib/types/log.js.map +1 -0
- package/lib/types/metrics.d.ts +18 -0
- package/lib/types/metrics.d.ts.map +1 -0
- package/lib/types/metrics.js +35 -0
- package/lib/types/metrics.js.map +1 -0
- package/lib/types/reveal.d.ts +12 -0
- package/lib/types/reveal.d.ts.map +1 -0
- package/lib/types/reveal.js +147 -0
- package/lib/types/reveal.js.map +1 -0
- package/lib/types/workspace-path.d.ts +3 -0
- package/lib/types/workspace-path.d.ts.map +1 -0
- package/lib/types/workspace-path.js +5 -0
- package/lib/types/workspace-path.js.map +1 -0
- package/package.json +36 -5
- package/scripts/changelog.mjs +20 -0
- package/scripts/check-agents-md.mjs +67 -0
- package/scripts/check-bundle-size.mjs +38 -0
- package/scripts/check-dead-flags.mjs +55 -0
- package/scripts/check-todo-debt.mjs +69 -0
- package/scripts/security-audit-report.mjs +92 -0
- package/scripts/verify-commentary-visible.mjs +627 -0
- package/src/client/AssistantNode.tsx +72 -0
- package/src/client/Blocks.tsx +49 -10
- package/src/client/ChoreographedFlow.tsx +3 -1
- package/src/client/ClosedProcessSummary.tsx +3 -1
- package/src/client/McpAppFrame.tsx +5 -13
- package/src/client/OfficialContent.tsx +47 -9
- package/src/client/Reader.module.css +103 -21
- package/src/client/Reader.tsx +83 -88
- package/src/client/SettingsSection.tsx +1 -7
- package/src/client/StickyLane.tsx +81 -2
- package/src/client/ToolActivity.tsx +10 -6
- package/src/client/deliverables.ts +1 -0
- package/src/client/index.tsx +18 -2
- package/src/client/live-turn.ts +100 -69
- package/src/client/motion.tsx +142 -7
- package/src/client/official-slots.tsx +23 -4
- package/src/client/open-file.ts +2 -8
- package/src/client/projection.ts +16 -4
- package/src/client/rewind-cut.ts +340 -0
- package/src/client/styles.ts +22 -0
- package/src/client/text-transform.ts +265 -0
- package/src/client/timeline.ts +0 -2
- package/src/client/tool-activity.ts +67 -9
- package/src/client/turn-slots.ts +80 -0
- package/src/client/types.ts +19 -0
- package/src/dsh-better-display.ts +57 -42
- package/src/flags.ts +40 -0
- package/src/log.ts +137 -0
- package/src/metrics.ts +50 -0
- package/src/reveal.ts +90 -0
- package/src/workspace-path.ts +4 -0
- package/tests/browser-commentary.tsx +191 -0
- package/tests/chat-flow-hook.test.ts +1 -1
- package/tests/cloud-gate.test.ts +1 -1
- package/tests/context-tool-update.test.ts +1 -1
- package/tests/conversation-scroll.test.ts +1 -1
- package/tests/deliverables.test.ts +1 -1
- package/tests/entry.test.ts +1 -1
- package/tests/fixtures/reader-lane-owners.tsx +46 -0
- package/tests/fixtures/reader-official-users.tsx +234 -0
- package/tests/fixtures/reader-theme-overlap.html +80 -0
- package/tests/fixtures/reader-user-bubble.tsx +222 -0
- package/tests/flags.test.ts +66 -0
- package/tests/fold-choreography.test.ts +32 -8
- package/tests/fold-intensity.test.ts +11 -6
- package/tests/footer-precedence.test.ts +9 -1
- package/tests/history-word-regression.test.ts +1 -1
- package/tests/live-turn.test.ts +125 -54
- package/tests/log.test.ts +99 -0
- package/tests/mcp-apps.test.ts +1 -1
- package/tests/message-chrome.test.ts +1 -1
- package/tests/metrics.test.ts +52 -0
- package/tests/official-slots.test.ts +41 -2
- package/tests/open-file.test.ts +1 -1
- package/tests/pending-submission.test.ts +12 -1
- package/tests/pinned-selection.test.ts +16 -0
- package/tests/platform-media.test.ts +1 -1
- package/tests/projection.test.ts +66 -3
- package/tests/reader-glass-css.test.ts +28 -0
- package/tests/reader-official-users.test.ts +91 -0
- package/tests/reader-sticky-surface.test.ts +377 -0
- package/tests/reader-theme-lanes.test.ts +54 -0
- package/tests/reader-theme-overlap.test.ts +151 -0
- package/tests/reader-user-bubble.test.ts +137 -0
- package/tests/reasoning-follow.test.ts +1 -1
- package/tests/retiring-content.test.ts +229 -0
- package/tests/reveal.test.ts +128 -0
- package/tests/rewind-cut.test.ts +1090 -0
- package/tests/settings-copy.test.ts +1 -1
- package/tests/skill-status.test.ts +1 -1
- package/tests/stock-install.test.ts +9 -1
- package/tests/stream-buffer.test.ts +1 -1
- package/tests/styles.test.ts +75 -0
- package/tests/terminal-input-preview.test.ts +113 -0
- package/tests/text-transform.test.ts +272 -0
- package/tests/timeline.test.ts +1 -1
- package/tests/tool-clock.test.ts +1 -1
- package/tests/tool-diff.test.ts +1 -1
- package/tests/waiting-clock.test.ts +1 -1
- package/tests/word-timeline.test.ts +1 -1
- package/tsdown.config.ts +49 -1
|
@@ -48,6 +48,15 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
|
48
48
|
'dsh-better-display.official.images/conversation.message.images': SlotMap['conversation.message.images'];
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
+
/** Official `AssistantNodeView` registers at priority 0. Lower wins. */
|
|
52
|
+
export declare const OFFICIAL_ASSISTANT_PRIORITY = 0;
|
|
53
|
+
/**
|
|
54
|
+
* Mirror a chat-node registration into the Reader seat.
|
|
55
|
+
* Assistant replacements are the entries that would actually replace the
|
|
56
|
+
* official renderer on the host. The official priority itself stays out, so
|
|
57
|
+
* Reader keeps its own answer markdown until a plugin opts in.
|
|
58
|
+
*/
|
|
59
|
+
export declare function acceptMirroredChatNode(entry: StoredEntry): boolean;
|
|
51
60
|
/**
|
|
52
61
|
* Reader already presents produced paths with its copy/reveal actions. RC2's
|
|
53
62
|
* official tail additionally owns explicit `present` artifacts. Leave those
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"official-slots.d.ts","sourceRoot":"","sources":["../../../src/client/official-slots.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGrG;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,cAAc,CAAC;AACzD,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC;AACjE,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,EAAE,SAAQ,MAA+B,WACzC,CAAC;AAEpD,KAAK,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAGnC,KAAK,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3G,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAAC;IACnD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACzD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,IAAI,CAAC;CACjE;AAED,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,OAAO;QACf,yEAAyE,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAC1H,sDAAsD,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACtF,6DAA6D,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACrG,0DAA0D,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC9F,gEAAgE,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;KAC1G;CACF;
|
|
1
|
+
{"version":3,"file":"official-slots.d.ts","sourceRoot":"","sources":["../../../src/client/official-slots.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGrG;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,cAAc,CAAC;AACzD,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC;AACjE,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,EAAE,SAAQ,MAA+B,WACzC,CAAC;AAEpD,KAAK,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAGnC,KAAK,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3G,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAAC;IACnD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACzD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,IAAI,CAAC;CACjE;AAED,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,OAAO;QACf,yEAAyE,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAC1H,sDAAsD,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACtF,6DAA6D,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACrG,0DAA0D,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC9F,gEAAgE,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;KAC1G;CACF;AAUD,wEAAwE;AACxE,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAIlE;AASD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAO3F;AAUD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAAE,CAUxH;AAqBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAoB,GACnD,MAAM,IAAI,CA+CZ;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,IAAI,CAwB7D;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,cAAc,CAAC,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC"}
|
|
@@ -24,9 +24,27 @@ export const OFFICIAL_SEATS = {
|
|
|
24
24
|
images: 'dsh-better-display.official.images/conversation.message.images',
|
|
25
25
|
};
|
|
26
26
|
export const officialSeat = (family, source = OFFICIAL_SLOTS[family]) => `dsh-better-display.official.${family}/${source}`;
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
|
|
27
|
+
// Reader draws these rows itself. Everything else, including future kinds, is
|
|
28
|
+
// mirrored so the official renderer still runs inside the reading view.
|
|
29
|
+
// 'user' and 'steering' stay mirrored (message-recall buttons and the like).
|
|
30
|
+
// 'assistant-step' is special: the official renderer is priority 0 and Reader
|
|
31
|
+
// keeps that presentation. A strictly lower priority is a keyed-slot
|
|
32
|
+
// replacement (lowest priority renders) and is mirrored for body content.
|
|
33
|
+
const READER_OWNED_NODES = new Set(['tool-call', 'turn-tail', 'turn-process']);
|
|
34
|
+
/** Official `AssistantNodeView` registers at priority 0. Lower wins. */
|
|
35
|
+
export const OFFICIAL_ASSISTANT_PRIORITY = 0;
|
|
36
|
+
/**
|
|
37
|
+
* Mirror a chat-node registration into the Reader seat.
|
|
38
|
+
* Assistant replacements are the entries that would actually replace the
|
|
39
|
+
* official renderer on the host. The official priority itself stays out, so
|
|
40
|
+
* Reader keeps its own answer markdown until a plugin opts in.
|
|
41
|
+
*/
|
|
42
|
+
export function acceptMirroredChatNode(entry) {
|
|
43
|
+
const key = entry.options.key ?? '';
|
|
44
|
+
if (key === 'assistant-step')
|
|
45
|
+
return (entry.options.priority ?? OFFICIAL_ASSISTANT_PRIORITY) < OFFICIAL_ASSISTANT_PRIORITY;
|
|
46
|
+
return !READER_OWNED_NODES.has(key);
|
|
47
|
+
}
|
|
30
48
|
const EXPECTED = {
|
|
31
49
|
actions: { kind: 'list', scope: 'session' },
|
|
32
50
|
tools: { kind: 'keyed', scope: 'session' },
|
|
@@ -168,7 +186,7 @@ export function installOfficialSlots(ctx) {
|
|
|
168
186
|
if (spec.kind !== declared?.kind || spec.scope !== declared.scope) {
|
|
169
187
|
throw new Error(`Official slot contract changed: ${source}`);
|
|
170
188
|
}
|
|
171
|
-
return mirrorOfficialSlot(slots, source, target, `dsh-better-display.official.${family}`, family === 'nodes' ?
|
|
189
|
+
return mirrorOfficialSlot(slots, source, target, `dsh-better-display.official.${family}`, family === 'nodes' ? acceptMirroredChatNode : undefined);
|
|
172
190
|
}));
|
|
173
191
|
}
|
|
174
192
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"official-slots.js","sourceRoot":"","sources":["../../../src/client/official-slots.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAsC,MAAM,OAAO,CAAC;AAKzF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,qCAAqC;IAC9C,KAAK,EAAE,oBAAoB;IAC3B,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,wBAAwB;IAC/B,MAAM,EAAE,6BAA6B;CAC7B,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,yEAAyE;IAClF,KAAK,EAAE,sDAAsD;IAC7D,IAAI,EAAE,6DAA6D;IACnE,KAAK,EAAE,0DAA0D;IACjE,MAAM,EAAE,gEAAgE;CAChE,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAsB,EAAE,SAAiB,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,CAC9F,+BAA+B,MAAM,IAAI,MAAM,EAAE,CAAC;AA0BpD,
|
|
1
|
+
{"version":3,"file":"official-slots.js","sourceRoot":"","sources":["../../../src/client/official-slots.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-file.d.ts","sourceRoot":"","sources":["../../../src/client/open-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"open-file.d.ts","sourceRoot":"","sources":["../../../src/client/open-file.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM;QAAE,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAC;IACjE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CAC5C;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAEzE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,mBAAmB,CAMzF;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAUD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAW/F;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GACtE,MAAM,CAER;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACxE,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACtF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD,GAAG,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,CAkBlC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isAbsoluteWorkspacePath } from '../workspace-path.js';
|
|
1
2
|
export function deliverableOpenModeOf(value) {
|
|
2
3
|
return value === 'sidebar' ? 'sidebar' : 'external';
|
|
3
4
|
}
|
|
@@ -13,12 +14,6 @@ export function modeFromSnapshot(store) {
|
|
|
13
14
|
export function isFolderOpenPath(path) {
|
|
14
15
|
return path === '.' || path === '';
|
|
15
16
|
}
|
|
16
|
-
function isWindowsStylePath(value) {
|
|
17
|
-
return /^[A-Za-z]:[/\\]/.test(value) || value.startsWith('\\\\');
|
|
18
|
-
}
|
|
19
|
-
function isAbsoluteWorkspacePath(path) {
|
|
20
|
-
return path.startsWith('/') || isWindowsStylePath(path);
|
|
21
|
-
}
|
|
22
17
|
function encodeSegment(segment) {
|
|
23
18
|
return encodeURIComponent(segment).replace(/%3A/gi, ':');
|
|
24
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-file.js","sourceRoot":"","sources":["../../../src/client/open-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"open-file.js","sourceRoot":"","sources":["../../../src/client/open-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,12 +13,25 @@ export interface TurnBoundary {
|
|
|
13
13
|
}
|
|
14
14
|
export declare function groupNodes(order: readonly string[], get: (key: string) => ChatConversationViewNode | undefined): ReaderGroup[];
|
|
15
15
|
export declare function boundaryOf(turn: TurnLocation | undefined): TurnBoundary;
|
|
16
|
+
/**
|
|
17
|
+
* A settled body step before the closing step of a successful turn.
|
|
18
|
+
*
|
|
19
|
+
* This is presentation classification only. Narration is never process content
|
|
20
|
+
* and never folds. The flag only marks body text that is no longer the turn's
|
|
21
|
+
* final answer, so copy and fork stay on that final answer.
|
|
22
|
+
*/
|
|
16
23
|
export declare function isEarlierNarration(data: AssistantChatData, boundary: TurnBoundary): boolean;
|
|
17
24
|
export declare function processExpanded(choice: boolean | undefined, boundary: TurnBoundary): boolean;
|
|
18
25
|
/** Reading while running must not pin the process open after completion. */
|
|
19
26
|
export declare function processChoiceKey(groupKey: string, boundary: TurnBoundary): string;
|
|
20
|
-
/**
|
|
21
|
-
|
|
27
|
+
/**
|
|
28
|
+
* A body-only assistant step is not a thinking/process disclosure.
|
|
29
|
+
*
|
|
30
|
+
* Narration (text/image/other blocks) is always visible, so it never counts as
|
|
31
|
+
* foldable process content; only literal reasoning does. Tool calls arrive as
|
|
32
|
+
* their own flow entries and are checked separately by the reader.
|
|
33
|
+
*/
|
|
34
|
+
export declare function hasProcessContent(node: ChatConversationViewNode | undefined, _boundary: TurnBoundary): boolean;
|
|
22
35
|
export declare function hasVisibleBody(blocks: readonly AssistantBlock[]): boolean;
|
|
23
36
|
/** Keep native block order. In particular, never lift a later Think above text. */
|
|
24
37
|
export declare function assistantSegments(blocks: readonly AssistantBlock[]): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/client/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAClH,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAG1G,MAAM,WAAW,WAAW;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;AAC1F,MAAM,WAAW,YAAY;IAAG,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AAG9I,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,GAAG,WAAW,EAAE,CAgB9H;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,YAAY,CAOvE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAK3F;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAE5F;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAEjF;AAED
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/client/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAClH,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAG1G,MAAM,WAAW,WAAW;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;AAC1F,MAAM,WAAW,YAAY;IAAG,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AAG9I,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,wBAAwB,GAAG,SAAS,GAAG,WAAW,EAAE,CAgB9H;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,YAAY,CAOvE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAK3F;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAE5F;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAEjF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO,CAQ9G;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAEzE;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG;IAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,EAAE,CAa9I;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAExD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAErD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAUlE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,aAAa,CAAC;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,CAAC,GAC9D,MAAM,GAAG,SAAS,CAMpB"}
|
|
@@ -28,6 +28,13 @@ export function boundaryOf(turn) {
|
|
|
28
28
|
closingStep: turn?.data.get('turn-tail')?.closing?.step ?? null,
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* A settled body step before the closing step of a successful turn.
|
|
33
|
+
*
|
|
34
|
+
* This is presentation classification only. Narration is never process content
|
|
35
|
+
* and never folds. The flag only marks body text that is no longer the turn's
|
|
36
|
+
* final answer, so copy and fork stay on that final answer.
|
|
37
|
+
*/
|
|
31
38
|
export function isEarlierNarration(data, boundary) {
|
|
32
39
|
// New body text, a tool call, or a settled step is not a completed turn.
|
|
33
40
|
if (data.status !== 'settled' || boundary.status !== 'closed' || boundary.reason !== 'completed')
|
|
@@ -43,14 +50,19 @@ export function processExpanded(choice, boundary) {
|
|
|
43
50
|
export function processChoiceKey(groupKey, boundary) {
|
|
44
51
|
return `${groupKey}:${boundary.status}:${boundary.reason ?? 'pending'}`;
|
|
45
52
|
}
|
|
46
|
-
/**
|
|
47
|
-
|
|
53
|
+
/**
|
|
54
|
+
* A body-only assistant step is not a thinking/process disclosure.
|
|
55
|
+
*
|
|
56
|
+
* Narration (text/image/other blocks) is always visible, so it never counts as
|
|
57
|
+
* foldable process content; only literal reasoning does. Tool calls arrive as
|
|
58
|
+
* their own flow entries and are checked separately by the reader.
|
|
59
|
+
*/
|
|
60
|
+
export function hasProcessContent(node, _boundary) {
|
|
48
61
|
if (!node || node.visibility === 'hidden')
|
|
49
62
|
return false;
|
|
50
63
|
if (node.kind === 'assistant-step') {
|
|
51
64
|
const data = node.data;
|
|
52
|
-
return data.blocks.some(block => block.kind === 'reasoning' && block.text.trim() !== '')
|
|
53
|
-
|| (isEarlierNarration(data, boundary) && hasVisibleBody(data.blocks));
|
|
65
|
+
return data.blocks.some(block => block.kind === 'reasoning' && block.text.trim() !== '');
|
|
54
66
|
}
|
|
55
67
|
return node.kind === 'context' || node.kind === 'model-retry' || node.kind === 'system-prompt' || node.kind === 'turn-process'
|
|
56
68
|
|| node.kind === 'command' || node.kind === 'manual-compaction' || node.kind === 'compaction';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/client/projection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/client/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which chat rows a `/rewind` withdrew, expressed as a pure function of the
|
|
3
|
+
* chat snapshot.
|
|
4
|
+
*
|
|
5
|
+
* WHY THIS EXISTS. A rewind never deletes history: the host appends one
|
|
6
|
+
* replacement `user/message` marker whose `surfaceOp` shadows everything after
|
|
7
|
+
* the target, and the transcript must then read as it did *before* the target
|
|
8
|
+
* was sent. The official ChatView is a per-node renderer, so the rewind plugin
|
|
9
|
+
* (`dsh-rewind-plugin`) hides withdrawn rows by DOM: it computes the shadowed
|
|
10
|
+
* anchor seqs from the command node and sets `display:none` on every element
|
|
11
|
+
* carrying the official `data-chat-anchor-key` seat attribute.
|
|
12
|
+
*
|
|
13
|
+
* The Reader replaces ChatView's message list and renders its own row shapes
|
|
14
|
+
* (turn sections, answer articles, tool rows), so it does not republish that
|
|
15
|
+
* seat attribute on every row. DOM hiding therefore reaches only the user and
|
|
16
|
+
* steering bubbles, and every other withdrawn row — the answer, the tool rows,
|
|
17
|
+
* and the `/rewind` command row itself — stayed on screen. That is the reported
|
|
18
|
+
* defect: the command is recorded as a rewind row instead of the Reader rolling
|
|
19
|
+
* back to the state before the message was sent.
|
|
20
|
+
*
|
|
21
|
+
* The Reader decides visibility from React state, so it must apply the same
|
|
22
|
+
* contract itself instead of waiting for a third-party MutationObserver. The
|
|
23
|
+
* marker node is not admitted as a chat node (only append-origin surface events
|
|
24
|
+
* become nodes), so the command node's `outcome.sourceEventSeq` — the marker's
|
|
25
|
+
* log seq — plus the `@<seq>` target in its `args` are the only client-side
|
|
26
|
+
* signal for the shadowed range. This mirrors the plugin's own reader of that
|
|
27
|
+
* contract, and is pinned by `tests/rewind-cut.test.ts` so a plugin or host
|
|
28
|
+
* change cannot silently regress it.
|
|
29
|
+
*
|
|
30
|
+
* @module dsh-better-display/rewind-cut
|
|
31
|
+
*/
|
|
32
|
+
/** A chat-snapshot view node, read structurally (only the fields this module needs). */
|
|
33
|
+
export interface CutChatNode {
|
|
34
|
+
readonly key: string;
|
|
35
|
+
readonly kind?: string;
|
|
36
|
+
readonly anchorSeq?: number;
|
|
37
|
+
readonly visibility?: string;
|
|
38
|
+
readonly data?: unknown;
|
|
39
|
+
/**
|
|
40
|
+
* Where the host placed the node in the session's location index. Only the
|
|
41
|
+
* owning turn is read from it, and an absent or foreign location is fine.
|
|
42
|
+
*/
|
|
43
|
+
readonly location?: unknown;
|
|
44
|
+
}
|
|
45
|
+
/** The minimal chat-snapshot reader the cut logic needs. */
|
|
46
|
+
export interface CutChat {
|
|
47
|
+
readonly order: readonly string[];
|
|
48
|
+
readonly nodes: {
|
|
49
|
+
get(key: string): CutChatNode | undefined;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** One closed shadow range `[start, end]` in surface/anchor seq space. */
|
|
53
|
+
export interface CutSpan {
|
|
54
|
+
readonly start: number;
|
|
55
|
+
readonly end: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The render POSITION a row is anchored at: the view node's `anchorSeq`, else
|
|
59
|
+
* its payload seq.
|
|
60
|
+
*
|
|
61
|
+
* This is deliberately NOT integer-only. The host anchors synthetic rows at
|
|
62
|
+
* fractional offsets off a real seq (`CHAT_SYNTHETIC_SEQ_OFFSETS` in the
|
|
63
|
+
* official ChatView: `turn-process` at `controlAnchorSeq - 0.1`, `turn-tail` at
|
|
64
|
+
* `seq + 0.1`, an interrupted assistant step at `seq - 0.9`). An integer-only
|
|
65
|
+
* read made those rows invisible to the cut, so the last `turn-process` of a
|
|
66
|
+
* withdrawn turn survived on its own. Log seqs (marker, target) stay integer:
|
|
67
|
+
* see `safeSeq`.
|
|
68
|
+
*/
|
|
69
|
+
export declare function anchorSeqOf(node: CutChatNode): number | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Extract the rewind target seq from a `/rewind` command's structured `args`
|
|
72
|
+
* (e.g. `@5 chat`, `preview @5 both`). Locale-independent: it never parses the
|
|
73
|
+
* host's human outcome copy.
|
|
74
|
+
*/
|
|
75
|
+
export declare function rewindTargetOfArgs(args: unknown): number | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Merge overlapping or touching shadow ranges.
|
|
78
|
+
*
|
|
79
|
+
* Spans are kept SEPARATE unless they genuinely overlap: collapsing every cut
|
|
80
|
+
* to `[min target, max marker]` would hide a still-on-surface gap of new traffic
|
|
81
|
+
* between an earlier marker and a later target.
|
|
82
|
+
*/
|
|
83
|
+
export declare function coalesceCutSpans(spans: readonly CutSpan[]): CutSpan[];
|
|
84
|
+
/**
|
|
85
|
+
* True when a row anchored at `seq` falls inside one of the cut spans.
|
|
86
|
+
*
|
|
87
|
+
* A cut runs from the target seq through the marker's own log seq, inclusive
|
|
88
|
+
* (`target <= anchorSeq && anchorSeq <= marker`), the same comparison
|
|
89
|
+
* `dsh-rewind-plugin`'s `RewindVisibilityBuilder` uses. The upper bound stops
|
|
90
|
+
* at the marker. Extending it to the next integer hides the following turn's
|
|
91
|
+
* process row, which the host anchors at `startSeq - 0.1` and therefore in
|
|
92
|
+
* `[marker, marker + 1)`. Fractional anchors inside the closed range still
|
|
93
|
+
* match: `anchorSeqOf` keeps them. A process or tail row parked outside the
|
|
94
|
+
* range is handled by `summaryTurns`, not by widening the cut. Spans stay
|
|
95
|
+
* disjoint, so new traffic between two rewinds survives.
|
|
96
|
+
*/
|
|
97
|
+
export declare function cutContains(cuts: readonly CutSpan[], seq: number): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* The shadow ranges a session's executed rewinds produced, newest state last.
|
|
100
|
+
* An executed rewind cuts `[target, marker]` — the target itself is included,
|
|
101
|
+
* because a rewind restores the state *before* that message was sent (its text
|
|
102
|
+
* goes back to the composer).
|
|
103
|
+
*/
|
|
104
|
+
export declare function rewindCutSpans(chat: CutChat | undefined): CutSpan[];
|
|
105
|
+
/**
|
|
106
|
+
* The anchor seqs the Reader must not render: every withdrawn message (the
|
|
107
|
+
* target, everything after it, and the unrendered marker), plus every `/rewind`
|
|
108
|
+
* row that exists only to feed the popover — the candidate-list probe and each
|
|
109
|
+
* impact preview. A SUCCESSFUL executed command row is covered by its own cut;
|
|
110
|
+
* a failed or unsettled one stays visible as an ordinary command record.
|
|
111
|
+
*/
|
|
112
|
+
export declare function hiddenRewindSeqs(chat: CutChat | undefined): Set<number>;
|
|
113
|
+
/**
|
|
114
|
+
* The chat keys the Reader should render, in snapshot order: withdrawn rows and
|
|
115
|
+
* rows the host itself marked hidden are dropped, everything else keeps its
|
|
116
|
+
* position. Returns the snapshot's own `order` array when nothing is filtered,
|
|
117
|
+
* so React selectors see a stable reference.
|
|
118
|
+
*/
|
|
119
|
+
export declare function visibleChatKeys(chat: CutChat): readonly string[];
|
|
120
|
+
/**
|
|
121
|
+
* A comparable signal for the visible row set, built for
|
|
122
|
+
* `useSyncExternalStore`-style subscription: the host re-runs a chat selector
|
|
123
|
+
* on every publish and compares the RESULT by `Object.is`, and a rewind
|
|
124
|
+
* publishes an in-place upsert of an existing command row. The snapshot's
|
|
125
|
+
* `order` array and node store are therefore both reference-stable across a
|
|
126
|
+
* rewind, so a selector on them never re-renders; a string does change exactly
|
|
127
|
+
* when the visible set does. Never return the array itself from a selector —
|
|
128
|
+
* a fresh array fails the `Object.is` check on every publish.
|
|
129
|
+
*/
|
|
130
|
+
export declare function visibleChatSignature(chat: CutChat): string;
|
|
131
|
+
//# sourceMappingURL=rewind-cut.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewind-cut.d.ts","sourceRoot":"","sources":["../../../src/client/rewind-cut.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,wFAAwF;AACxF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,4DAA4D;AAC5D,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE;QACd,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;KAC3C,CAAC;CACH;AAED,0EAA0E;AAC1E,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAkCD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAGjE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIpE;AAYD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,CAarE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAgB1E;AA4ED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,EAAE,CAoBnE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAavE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAYhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAE1D"}
|