@pentoshi/clai 4.8.3 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -3
- package/dist/agent/finalize-gate.js +0 -9
- package/dist/agent/finalize-gate.js.map +1 -1
- package/dist/agent/plan-mode-reminders.js +5 -5
- package/dist/agent/plan-mode-reminders.js.map +1 -1
- package/dist/agent/plan-tool.d.ts +1 -0
- package/dist/agent/plan-tool.js +50 -21
- package/dist/agent/plan-tool.js.map +1 -1
- package/dist/agent/reliability-policy.d.ts +9 -0
- package/dist/agent/reliability-policy.js +36 -1
- package/dist/agent/reliability-policy.js.map +1 -1
- package/dist/agent/runner.d.ts +4 -0
- package/dist/agent/runner.js +193 -116
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/task-analyzer.d.ts +8 -18
- package/dist/agent/task-analyzer.js +75 -182
- package/dist/agent/task-analyzer.js.map +1 -1
- package/dist/agent/task-evidence.js +10 -0
- package/dist/agent/task-evidence.js.map +1 -1
- package/dist/agent/tool-call-parser.js +14 -13
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/app/adapters/current-agent-adapter.d.ts +5 -1
- package/dist/app/adapters/current-agent-adapter.js +2 -1
- package/dist/app/adapters/current-agent-adapter.js.map +1 -1
- package/dist/app/commands/catalog.js +5 -0
- package/dist/app/commands/catalog.js.map +1 -1
- package/dist/app/controllers/session-compact-helper.js +3 -6
- package/dist/app/controllers/session-compact-helper.js.map +1 -1
- package/dist/app/ports/transcript-item.d.ts +4 -0
- package/dist/classic/app/ClassicApp.js +1 -1
- package/dist/classic/app/ClassicApp.js.map +1 -1
- package/dist/classic/app/action-handlers.js +4 -0
- package/dist/classic/app/action-handlers.js.map +1 -1
- package/dist/classic/app/app-wiring.js +1 -0
- package/dist/classic/app/app-wiring.js.map +1 -1
- package/dist/classic/app/wiring-lifecycle.js +1 -0
- package/dist/classic/app/wiring-lifecycle.js.map +1 -1
- package/dist/classic/blocks/compacted-lines.js +3 -0
- package/dist/classic/blocks/compacted-lines.js.map +1 -1
- package/dist/classic/blocks/thinking-lines.js +11 -2
- package/dist/classic/blocks/thinking-lines.js.map +1 -1
- package/dist/classic/bootstrap/start-classic.js +3 -0
- package/dist/classic/bootstrap/start-classic.js.map +1 -1
- package/dist/classic/chrome/Composer.d.ts +6 -0
- package/dist/classic/chrome/Composer.js +2 -3
- package/dist/classic/chrome/Composer.js.map +1 -1
- package/dist/classic/chrome/composer-controller.d.ts +6 -1
- package/dist/classic/chrome/composer-controller.js +18 -8
- package/dist/classic/chrome/composer-controller.js.map +1 -1
- package/dist/classic/chrome/editor-view.d.ts +2 -1
- package/dist/classic/chrome/editor-view.js +1 -1
- package/dist/classic/chrome/editor-view.js.map +1 -1
- package/dist/classic/chrome/status-rows.js +3 -2
- package/dist/classic/chrome/status-rows.js.map +1 -1
- package/dist/classic/panels/TextEditorPanel.d.ts +3 -0
- package/dist/classic/panels/TextEditorPanel.js +7 -0
- package/dist/classic/panels/TextEditorPanel.js.map +1 -0
- package/dist/classic/panels/panel-controller.js +28 -1
- package/dist/classic/panels/panel-controller.js.map +1 -1
- package/dist/classic/panels/panel-effect.d.ts +3 -0
- package/dist/classic/panels/panel-effect.js.map +1 -1
- package/dist/classic/panels/panel-effects.js +3 -0
- package/dist/classic/panels/panel-effects.js.map +1 -1
- package/dist/classic/panels/panel-host.js +3 -0
- package/dist/classic/panels/panel-host.js.map +1 -1
- package/dist/classic/panels/panel-types.d.ts +2 -0
- package/dist/classic/panels/secret-panel.d.ts +1 -1
- package/dist/classic/panels/secret-panel.js +4 -2
- package/dist/classic/panels/secret-panel.js.map +1 -1
- package/dist/classic/panels/text-editor-panel.d.ts +33 -0
- package/dist/classic/panels/text-editor-panel.js +101 -0
- package/dist/classic/panels/text-editor-panel.js.map +1 -0
- package/dist/llm/adapters/anthropic-tools.d.ts +2 -1
- package/dist/llm/adapters/anthropic-tools.js +55 -4
- package/dist/llm/adapters/anthropic-tools.js.map +1 -1
- package/dist/llm/anthropic.js +1 -1
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/aws-mantle.js +2 -0
- package/dist/llm/aws-mantle.js.map +1 -1
- package/dist/llm/meta.js +62 -68
- package/dist/llm/meta.js.map +1 -1
- package/dist/llm/provider.js +7 -7
- package/dist/llm/request-plan.js +7 -2
- package/dist/llm/request-plan.js.map +1 -1
- package/dist/llm/tool-protocol.d.ts +1 -0
- package/dist/llm/tool-protocol.js +7 -0
- package/dist/llm/tool-protocol.js.map +1 -1
- package/dist/mcp/client.d.ts +27 -0
- package/dist/mcp/client.js +119 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/config-file.d.ts +35 -0
- package/dist/mcp/config-file.js +217 -0
- package/dist/mcp/config-file.js.map +1 -0
- package/dist/mcp/discovery.d.ts +4 -0
- package/dist/mcp/discovery.js +409 -0
- package/dist/mcp/discovery.js.map +1 -0
- package/dist/mcp/format.d.ts +17 -0
- package/dist/mcp/format.js +122 -0
- package/dist/mcp/format.js.map +1 -0
- package/dist/mcp/index.d.ts +15 -0
- package/dist/mcp/index.js +16 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/jsonrpc.d.ts +40 -0
- package/dist/mcp/jsonrpc.js +175 -0
- package/dist/mcp/jsonrpc.js.map +1 -0
- package/dist/mcp/manager.d.ts +36 -0
- package/dist/mcp/manager.js +300 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/mcp/mentions.d.ts +9 -0
- package/dist/mcp/mentions.js +44 -0
- package/dist/mcp/mentions.js.map +1 -0
- package/dist/mcp/names.d.ts +15 -0
- package/dist/mcp/names.js +59 -0
- package/dist/mcp/names.js.map +1 -0
- package/dist/mcp/results.d.ts +6 -0
- package/dist/mcp/results.js +182 -0
- package/dist/mcp/results.js.map +1 -0
- package/dist/mcp/runtime.d.ts +107 -0
- package/dist/mcp/runtime.js +505 -0
- package/dist/mcp/runtime.js.map +1 -0
- package/dist/mcp/substitution.d.ts +13 -0
- package/dist/mcp/substitution.js +74 -0
- package/dist/mcp/substitution.js.map +1 -0
- package/dist/mcp/transport-http.d.ts +53 -0
- package/dist/mcp/transport-http.js +433 -0
- package/dist/mcp/transport-http.js.map +1 -0
- package/dist/mcp/transport-stdio.d.ts +39 -0
- package/dist/mcp/transport-stdio.js +268 -0
- package/dist/mcp/transport-stdio.js.map +1 -0
- package/dist/mcp/transport.d.ts +20 -0
- package/dist/mcp/transport.js +44 -0
- package/dist/mcp/transport.js.map +1 -0
- package/dist/mcp/types.d.ts +179 -0
- package/dist/mcp/types.js +30 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp/validation.d.ts +16 -0
- package/dist/mcp/validation.js +222 -0
- package/dist/mcp/validation.js.map +1 -0
- package/dist/modes/agent.d.ts +2 -0
- package/dist/modes/agent.js.map +1 -1
- package/dist/noninteractive/start-noninteractive.js +4 -0
- package/dist/noninteractive/start-noninteractive.js.map +1 -1
- package/dist/prompts/embedded.js +2 -2
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/index.d.ts +3 -0
- package/dist/prompts/index.js +70 -55
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/system.agent.md +34 -10
- package/dist/prompts/system.ask.md +8 -0
- package/dist/safety/classifier.js +4 -0
- package/dist/safety/classifier.js.map +1 -1
- package/dist/store/logs.js +17 -6
- package/dist/store/logs.js.map +1 -1
- package/dist/store/plan.d.ts +2 -0
- package/dist/store/plan.js +12 -13
- package/dist/store/plan.js.map +1 -1
- package/dist/store/session-workspace.js +2 -1
- package/dist/store/session-workspace.js.map +1 -1
- package/dist/tools/definitions.js +18 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/external-tools.d.ts +30 -0
- package/dist/tools/external-tools.js +52 -0
- package/dist/tools/external-tools.js.map +1 -0
- package/dist/tools/registry.js +36 -5
- package/dist/tools/registry.js.map +1 -1
- package/dist/tui-v2/bootstrap/start-tui-v2.js +3 -0
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
- package/dist/tui-v2/components/completion/completion-menu.d.ts +4 -6
- package/dist/tui-v2/components/completion/completion-menu.js +34 -16
- package/dist/tui-v2/components/completion/completion-menu.js.map +1 -1
- package/dist/tui-v2/components/composer/composer-input-box.js +3 -1
- package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
- package/dist/tui-v2/components/modal/secret-modal.js +6 -4
- package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
- package/dist/tui-v2/components/modal/text-editor-modal.d.ts +19 -0
- package/dist/tui-v2/components/modal/text-editor-modal.js +85 -0
- package/dist/tui-v2/components/modal/text-editor-modal.js.map +1 -0
- package/dist/tui-v2/components/overlay/overlay-host.js +2 -1
- package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +12 -3
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-block.d.ts +9 -1
- package/dist/tui-v2/components/transcript/thinking-block.js +253 -49
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-presentation.d.ts +46 -0
- package/dist/tui-v2/components/transcript/thinking-presentation.js +84 -0
- package/dist/tui-v2/components/transcript/thinking-presentation.js.map +1 -0
- package/dist/tui-v2/components/transcript/transcript-row.d.ts +2 -0
- package/dist/tui-v2/components/transcript/transcript-row.js +7 -2
- package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +195 -83
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +54 -39
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/composer/composer-highlight.d.ts +20 -0
- package/dist/tui-v2/composer/composer-highlight.js +97 -0
- package/dist/tui-v2/composer/composer-highlight.js.map +1 -0
- package/dist/tui-v2/composer/textarea-keybindings.d.ts +5 -0
- package/dist/tui-v2/composer/textarea-keybindings.js +12 -0
- package/dist/tui-v2/composer/textarea-keybindings.js.map +1 -1
- package/dist/ui/mentions.js +4 -1
- package/dist/ui/mentions.js.map +1 -1
- package/dist/ui-core/actions/action-id.d.ts +1 -1
- package/dist/ui-core/actions/action-id.js +1 -0
- package/dist/ui-core/actions/action-id.js.map +1 -1
- package/dist/ui-core/actions/format-shortcuts.js +5 -0
- package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
- package/dist/ui-core/actions/keymap.js +3 -0
- package/dist/ui-core/actions/keymap.js.map +1 -1
- package/dist/ui-core/bootstrap/composition-root.d.ts +3 -0
- package/dist/ui-core/bootstrap/composition-root.js +5 -1
- package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
- package/dist/ui-core/commands/command-handlers.js +2 -0
- package/dist/ui-core/commands/command-handlers.js.map +1 -1
- package/dist/ui-core/commands/mcp-commands.d.ts +3 -0
- package/dist/ui-core/commands/mcp-commands.js +310 -0
- package/dist/ui-core/commands/mcp-commands.js.map +1 -0
- package/dist/ui-core/commands/picker-commands.d.ts +1 -1
- package/dist/ui-core/commands/picker-commands.js +2 -2
- package/dist/ui-core/commands/picker-commands.js.map +1 -1
- package/dist/ui-core/commands/session-commands.js +1 -0
- package/dist/ui-core/commands/session-commands.js.map +1 -1
- package/dist/ui-core/composer/completion-viewport.d.ts +40 -0
- package/dist/ui-core/composer/completion-viewport.js +105 -0
- package/dist/ui-core/composer/completion-viewport.js.map +1 -0
- package/dist/ui-core/controllers/overlay-controller.d.ts +24 -3
- package/dist/ui-core/controllers/overlay-controller.js +35 -4
- package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
- package/dist/ui-core/rendering/artifact-pager-source.d.ts +1 -0
- package/dist/ui-core/rendering/artifact-pager-source.js +67 -1
- package/dist/ui-core/rendering/artifact-pager-source.js.map +1 -1
- package/dist/ui-core/rendering/duration.d.ts +3 -1
- package/dist/ui-core/rendering/duration.js +14 -0
- package/dist/ui-core/rendering/duration.js.map +1 -1
- package/dist/ui-core/rendering/exit-summary.js +4 -4
- package/dist/ui-core/rendering/format-help.js +4 -0
- package/dist/ui-core/rendering/format-help.js.map +1 -1
- package/dist/ui-core/rendering/intro-header.js +4 -4
- package/dist/ui-core/rendering/open-tool-output.js +90 -32
- package/dist/ui-core/rendering/open-tool-output.js.map +1 -1
- package/dist/ui-core/rendering/theme.d.ts +5 -3
- package/dist/ui-core/rendering/theme.js +8 -4
- package/dist/ui-core/rendering/theme.js.map +1 -1
- package/dist/ui-core/rendering/wordmark.d.ts +2 -2
- package/dist/ui-core/rendering/wordmark.js +62 -62
- package/dist/ui-core/rendering/wordmark.js.map +1 -1
- package/dist/ui-core/state/thinking-copy.d.ts +13 -0
- package/dist/ui-core/state/thinking-copy.js +33 -0
- package/dist/ui-core/state/thinking-copy.js.map +1 -0
- package/dist/ui-core/state/transcript-hydrate.js +20 -0
- package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
- package/dist/ui-core/state/transcript-reducer.js +140 -62
- package/dist/ui-core/state/transcript-reducer.js.map +1 -1
- package/dist/ui-core/state/transcript-store.d.ts +10 -0
- package/dist/ui-core/state/transcript-store.js +235 -31
- package/dist/ui-core/state/transcript-store.js.map +1 -1
- package/dist/ui-core/state/transcript-types.d.ts +10 -0
- package/dist/ui-core/state/transcript-types.js +1 -0
- package/dist/ui-core/state/transcript-types.js.map +1 -1
- package/dist/ui-core/state/transcript-window.d.ts +32 -0
- package/dist/ui-core/state/transcript-window.js +63 -0
- package/dist/ui-core/state/transcript-window.js.map +1 -0
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
- package/dist/tui-v2/composer/skill-highlight.d.ts +0 -3
- package/dist/tui-v2/composer/skill-highlight.js +0 -63
- package/dist/tui-v2/composer/skill-highlight.js.map +0 -1
|
@@ -20,12 +20,20 @@ export declare class TranscriptStore {
|
|
|
20
20
|
private notifyPending;
|
|
21
21
|
private persistBase;
|
|
22
22
|
private persistHydratedIds;
|
|
23
|
+
private pendingEvents;
|
|
23
24
|
private static readonly COALESCED_EVENT_TYPES;
|
|
25
|
+
private static readonly MAX_PENDING_EVENTS;
|
|
24
26
|
constructor(maxItems?: number, coalesceMs?: number);
|
|
25
27
|
getState(): TranscriptState;
|
|
26
28
|
dispatch(event: AnyAppEvent): void;
|
|
27
29
|
/** CHAT-006: Ctrl+T toggles every thinking block's default visibility. */
|
|
28
30
|
toggleThinkingGlobal(): void;
|
|
31
|
+
/** Click a thinking card: toggle it and focus it only while it is open. */
|
|
32
|
+
toggleThinkingItem(id: string, fallback: boolean): void;
|
|
33
|
+
/** Give one thinking card the pointer wheel (clicking its body). */
|
|
34
|
+
focusThinking(id: string): void;
|
|
35
|
+
/** Release wheel ownership back to the transcript. */
|
|
36
|
+
blurThinking(): void;
|
|
29
37
|
/** CHAT-005/007: Ctrl+O toggles tool OUTPUT + compacted memory cards. */
|
|
30
38
|
toggleOutputGlobal(): void;
|
|
31
39
|
/** Expand/collapse every tool OUTPUT card at once (collapse all / expand
|
|
@@ -53,7 +61,9 @@ export declare class TranscriptStore {
|
|
|
53
61
|
} | undefined): void;
|
|
54
62
|
mergePersistSnapshot(items: ClassicTranscriptItem[]): ClassicTranscriptItem[];
|
|
55
63
|
private setState;
|
|
64
|
+
private flushPendingEvents;
|
|
56
65
|
private applyState;
|
|
57
66
|
private scheduleNotify;
|
|
58
67
|
private flushNotify;
|
|
68
|
+
private clearPendingEvents;
|
|
59
69
|
}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* `getState`/`subscribe` (a `useSyncExternalStore` source), never by reaching
|
|
8
8
|
* into reducer internals.
|
|
9
9
|
*/
|
|
10
|
-
import { applyAppEvent } from "./transcript-reducer.js";
|
|
11
|
-
import { EMPTY_TRANSCRIPT_STATE } from "./transcript-types.js";
|
|
10
|
+
import { applyAppEvent, TranscriptSequenceError, } from "./transcript-reducer.js";
|
|
11
|
+
import { EMPTY_TRANSCRIPT_STATE, isItemExpanded, } from "./transcript-types.js";
|
|
12
12
|
export class TranscriptStore {
|
|
13
13
|
maxItems;
|
|
14
14
|
coalesceMs;
|
|
@@ -18,85 +18,154 @@ export class TranscriptStore {
|
|
|
18
18
|
notifyPending = false;
|
|
19
19
|
persistBase = [];
|
|
20
20
|
persistHydratedIds = new Set();
|
|
21
|
-
|
|
22
|
-
// one re-reconciles the whole transcript and starves composer input. Batch
|
|
23
|
-
// these to one paint frame while structural events still flush immediately.
|
|
21
|
+
pendingEvents = [];
|
|
24
22
|
static COALESCED_EVENT_TYPES = new Set([
|
|
25
23
|
"assistant-delta",
|
|
26
24
|
"thinking-delta",
|
|
27
25
|
"tool-output",
|
|
26
|
+
"compaction-delta",
|
|
28
27
|
]);
|
|
28
|
+
static MAX_PENDING_EVENTS = 512;
|
|
29
29
|
constructor(maxItems = 2_000, coalesceMs = 16) {
|
|
30
30
|
this.maxItems = maxItems;
|
|
31
31
|
this.coalesceMs = coalesceMs;
|
|
32
|
-
if (!Number.isInteger(maxItems) || maxItems <= 0)
|
|
32
|
+
if (!Number.isInteger(maxItems) || maxItems <= 0) {
|
|
33
33
|
throw new RangeError("maxItems must be positive");
|
|
34
|
+
}
|
|
34
35
|
}
|
|
35
36
|
getState() {
|
|
37
|
+
this.flushPendingEvents();
|
|
36
38
|
return this.state;
|
|
37
39
|
}
|
|
38
40
|
dispatch(event) {
|
|
39
|
-
if (!this.applyState(applyAppEvent(this.state, event)))
|
|
40
|
-
return;
|
|
41
41
|
if (TranscriptStore.COALESCED_EVENT_TYPES.has(event.type)) {
|
|
42
|
+
const lastQueuedSequence = this.pendingEvents.at(-1)?.sequence ?? this.state.lastSequence;
|
|
43
|
+
if (event.sequence <= lastQueuedSequence)
|
|
44
|
+
return;
|
|
45
|
+
if (event.sequence > lastQueuedSequence + 1) {
|
|
46
|
+
throw new TranscriptSequenceError(lastQueuedSequence + 1, event.sequence);
|
|
47
|
+
}
|
|
48
|
+
this.pendingEvents.push(event);
|
|
49
|
+
this.notifyPending = true;
|
|
50
|
+
if (this.pendingEvents.length >= TranscriptStore.MAX_PENDING_EVENTS) {
|
|
51
|
+
this.flushPendingEvents();
|
|
52
|
+
}
|
|
42
53
|
this.scheduleNotify();
|
|
54
|
+
return;
|
|
43
55
|
}
|
|
44
|
-
|
|
56
|
+
const pendingChanged = this.flushPendingEvents();
|
|
57
|
+
const changed = this.applyState(applyAppEvent(this.state, event));
|
|
58
|
+
if (pendingChanged || changed)
|
|
45
59
|
this.flushNotify();
|
|
46
|
-
}
|
|
47
60
|
}
|
|
48
61
|
/** CHAT-006: Ctrl+T toggles every thinking block's default visibility. */
|
|
49
62
|
toggleThinkingGlobal() {
|
|
50
|
-
|
|
63
|
+
const state = this.getState();
|
|
64
|
+
const thinkingItems = state.order
|
|
65
|
+
.map((id) => state.byId.get(id))
|
|
66
|
+
.filter((item) => item?.kind === "thinking");
|
|
67
|
+
const expandThinkingGlobal = thinkingItems.length > 0
|
|
68
|
+
? !thinkingItems.every((item) => isItemExpanded(state, item))
|
|
69
|
+
: !state.expandThinkingGlobal;
|
|
70
|
+
const itemOverrides = new Map(state.itemOverrides);
|
|
71
|
+
for (const item of thinkingItems)
|
|
72
|
+
itemOverrides.delete(item.id);
|
|
73
|
+
this.setState({
|
|
74
|
+
...state,
|
|
75
|
+
expandThinkingGlobal,
|
|
76
|
+
itemOverrides,
|
|
77
|
+
// Ctrl+T is a bulk visibility toggle, never a focus gesture: expanded
|
|
78
|
+
// cards stay unfocused so the wheel keeps scrolling the transcript.
|
|
79
|
+
focusedThinkingId: undefined,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/** Click a thinking card: toggle it and focus it only while it is open. */
|
|
83
|
+
toggleThinkingItem(id, fallback) {
|
|
84
|
+
const state = this.getState();
|
|
85
|
+
const overrides = new Map(state.itemOverrides);
|
|
86
|
+
const expanded = !(overrides.get(id) ?? fallback);
|
|
87
|
+
overrides.set(id, expanded);
|
|
88
|
+
this.setState({
|
|
89
|
+
...state,
|
|
90
|
+
itemOverrides: overrides,
|
|
91
|
+
focusedThinkingId: expanded ? id : undefined,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** Give one thinking card the pointer wheel (clicking its body). */
|
|
95
|
+
focusThinking(id) {
|
|
96
|
+
const state = this.getState();
|
|
97
|
+
if (state.focusedThinkingId === id)
|
|
98
|
+
return;
|
|
99
|
+
this.setState({ ...state, focusedThinkingId: id });
|
|
100
|
+
}
|
|
101
|
+
/** Release wheel ownership back to the transcript. */
|
|
102
|
+
blurThinking() {
|
|
103
|
+
const state = this.getState();
|
|
104
|
+
if (state.focusedThinkingId === undefined)
|
|
105
|
+
return;
|
|
106
|
+
this.setState({ ...state, focusedThinkingId: undefined });
|
|
51
107
|
}
|
|
52
108
|
/** CHAT-005/007: Ctrl+O toggles tool OUTPUT + compacted memory cards. */
|
|
53
109
|
toggleOutputGlobal() {
|
|
54
|
-
|
|
110
|
+
const state = this.getState();
|
|
111
|
+
this.setState({
|
|
112
|
+
...state,
|
|
113
|
+
expandOutputGlobal: !state.expandOutputGlobal,
|
|
114
|
+
});
|
|
55
115
|
}
|
|
56
116
|
/** Expand/collapse every tool OUTPUT card at once (collapse all / expand
|
|
57
117
|
* all chips). Clears only tool/compacted per-item overrides so thinking
|
|
58
118
|
* overrides survive. */
|
|
59
119
|
setOutputGlobal(expanded) {
|
|
60
|
-
const
|
|
120
|
+
const state = this.getState();
|
|
121
|
+
const overrides = new Map(state.itemOverrides);
|
|
61
122
|
for (const id of [...overrides.keys()]) {
|
|
62
|
-
const item =
|
|
123
|
+
const item = state.byId.get(id);
|
|
63
124
|
if (item && (item.kind === "tool" || item.kind === "compacted")) {
|
|
64
125
|
overrides.delete(id);
|
|
65
126
|
}
|
|
66
127
|
}
|
|
67
|
-
this.setState({
|
|
128
|
+
this.setState({
|
|
129
|
+
...state,
|
|
130
|
+
expandOutputGlobal: expanded,
|
|
131
|
+
itemOverrides: overrides,
|
|
132
|
+
});
|
|
68
133
|
}
|
|
69
134
|
/** Expand/collapse every file-diff card in chat (hunks vs title-only). */
|
|
70
135
|
setFileDiffsGlobal(expanded) {
|
|
136
|
+
const state = this.getState();
|
|
71
137
|
this.setState({
|
|
72
|
-
...
|
|
138
|
+
...state,
|
|
73
139
|
expandFileDiffsGlobal: expanded,
|
|
74
|
-
// Clear per-card overrides so global applies cleanly.
|
|
75
140
|
fileDiffOverrides: new Map(),
|
|
76
141
|
});
|
|
77
142
|
}
|
|
78
143
|
toggleFileDiffsGlobal() {
|
|
79
|
-
this.
|
|
144
|
+
const state = this.getState();
|
|
145
|
+
this.setFileDiffsGlobal(!state.expandFileDiffsGlobal);
|
|
80
146
|
}
|
|
81
147
|
/** Expand/collapse one tool's file-diff body. */
|
|
82
148
|
toggleFileDiffOverride(toolItemId, fallback) {
|
|
83
|
-
const
|
|
149
|
+
const state = this.getState();
|
|
150
|
+
const overrides = new Map(state.fileDiffOverrides);
|
|
84
151
|
const current = overrides.get(toolItemId) ?? fallback;
|
|
85
152
|
overrides.set(toolItemId, !current);
|
|
86
|
-
this.setState({ ...
|
|
153
|
+
this.setState({ ...state, fileDiffOverrides: overrides });
|
|
87
154
|
}
|
|
88
155
|
/** Expand/collapse one item, overriding whichever global toggle applies. */
|
|
89
156
|
toggleItemOverride(id, fallback) {
|
|
90
|
-
const
|
|
157
|
+
const state = this.getState();
|
|
158
|
+
const overrides = new Map(state.itemOverrides);
|
|
91
159
|
const current = overrides.get(id) ?? fallback;
|
|
92
160
|
overrides.set(id, !current);
|
|
93
|
-
this.setState({ ...
|
|
161
|
+
this.setState({ ...state, itemOverrides: overrides });
|
|
94
162
|
}
|
|
95
163
|
subscribe(listener) {
|
|
96
164
|
this.listeners.add(listener);
|
|
97
165
|
return () => this.listeners.delete(listener);
|
|
98
166
|
}
|
|
99
167
|
reset() {
|
|
168
|
+
this.clearPendingEvents();
|
|
100
169
|
this.persistBase = [];
|
|
101
170
|
this.persistHydratedIds = new Set();
|
|
102
171
|
this.setState(EMPTY_TRANSCRIPT_STATE);
|
|
@@ -108,6 +177,7 @@ export class TranscriptStore {
|
|
|
108
177
|
* must never rewind it, or the next sequencer event arrives as a gap).
|
|
109
178
|
*/
|
|
110
179
|
hydrate(next, options) {
|
|
180
|
+
const current = this.getState();
|
|
111
181
|
if (options && "persistBase" in options) {
|
|
112
182
|
this.persistBase = options.persistBase ?? [];
|
|
113
183
|
this.persistHydratedIds = new Set(next.order);
|
|
@@ -117,10 +187,10 @@ export class TranscriptStore {
|
|
|
117
187
|
...next,
|
|
118
188
|
...(rebase
|
|
119
189
|
? {}
|
|
120
|
-
: { lastSequence: Math.max(
|
|
121
|
-
expandThinkingGlobal:
|
|
122
|
-
expandOutputGlobal:
|
|
123
|
-
expandFileDiffsGlobal:
|
|
190
|
+
: { lastSequence: Math.max(current.lastSequence, next.lastSequence) }),
|
|
191
|
+
expandThinkingGlobal: current.expandThinkingGlobal,
|
|
192
|
+
expandOutputGlobal: current.expandOutputGlobal,
|
|
193
|
+
expandFileDiffsGlobal: current.expandFileDiffsGlobal,
|
|
124
194
|
itemOverrides: new Map(),
|
|
125
195
|
fileDiffOverrides: new Map(),
|
|
126
196
|
pendingAssistantId: undefined,
|
|
@@ -139,27 +209,150 @@ export class TranscriptStore {
|
|
|
139
209
|
if (this.applyState(next))
|
|
140
210
|
this.flushNotify();
|
|
141
211
|
}
|
|
212
|
+
flushPendingEvents() {
|
|
213
|
+
if (this.pendingEvents.length === 0)
|
|
214
|
+
return false;
|
|
215
|
+
const pending = this.pendingEvents;
|
|
216
|
+
this.pendingEvents = [];
|
|
217
|
+
const accepted = [];
|
|
218
|
+
let expected = this.state.lastSequence + 1;
|
|
219
|
+
for (const event of pending) {
|
|
220
|
+
if (event.sequence < expected)
|
|
221
|
+
continue;
|
|
222
|
+
if (event.sequence > expected) {
|
|
223
|
+
throw new TranscriptSequenceError(expected, event.sequence);
|
|
224
|
+
}
|
|
225
|
+
accepted.push(event);
|
|
226
|
+
expected += 1;
|
|
227
|
+
}
|
|
228
|
+
if (accepted.length === 0)
|
|
229
|
+
return false;
|
|
230
|
+
let next = this.state;
|
|
231
|
+
for (let index = 0; index < accepted.length; index += 1) {
|
|
232
|
+
const first = accepted[index];
|
|
233
|
+
let lastIndex = index;
|
|
234
|
+
let merged = first;
|
|
235
|
+
if (first.type === "assistant-delta") {
|
|
236
|
+
const text = [first.payload.text];
|
|
237
|
+
const firstIsVisible = first.payload.text.trim().length > 0;
|
|
238
|
+
while (lastIndex + 1 < accepted.length) {
|
|
239
|
+
const candidate = accepted[lastIndex + 1];
|
|
240
|
+
if (candidate.type !== "assistant-delta" ||
|
|
241
|
+
candidate.turnId !== first.turnId ||
|
|
242
|
+
(!firstIsVisible && candidate.payload.text.trim().length > 0)) {
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
lastIndex += 1;
|
|
246
|
+
text.push(candidate.payload.text);
|
|
247
|
+
}
|
|
248
|
+
merged = {
|
|
249
|
+
...first,
|
|
250
|
+
payload: { text: text.join("") },
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
else if (first.type === "thinking-delta") {
|
|
254
|
+
const text = [first.payload.text];
|
|
255
|
+
while (lastIndex + 1 < accepted.length) {
|
|
256
|
+
const candidate = accepted[lastIndex + 1];
|
|
257
|
+
if (candidate.type !== "thinking-delta" ||
|
|
258
|
+
candidate.turnId !== first.turnId ||
|
|
259
|
+
candidate.payload.reasoningId !== first.payload.reasoningId) {
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
lastIndex += 1;
|
|
263
|
+
text.push(candidate.payload.text);
|
|
264
|
+
}
|
|
265
|
+
merged = {
|
|
266
|
+
...first,
|
|
267
|
+
payload: { ...first.payload, text: text.join("") },
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
else if (first.type === "tool-output") {
|
|
271
|
+
while (lastIndex + 1 < accepted.length) {
|
|
272
|
+
const candidate = accepted[lastIndex + 1];
|
|
273
|
+
if (candidate.type !== "tool-output" ||
|
|
274
|
+
candidate.payload.ref.toolCallId !==
|
|
275
|
+
first.payload.ref.toolCallId) {
|
|
276
|
+
break;
|
|
277
|
+
}
|
|
278
|
+
lastIndex += 1;
|
|
279
|
+
}
|
|
280
|
+
const last = accepted[lastIndex];
|
|
281
|
+
merged = { ...first, payload: last.payload };
|
|
282
|
+
}
|
|
283
|
+
else if (first.type === "compaction-delta") {
|
|
284
|
+
let text = first.payload.text;
|
|
285
|
+
let replace = first.payload.replace === true;
|
|
286
|
+
while (lastIndex + 1 < accepted.length) {
|
|
287
|
+
const candidate = accepted[lastIndex + 1];
|
|
288
|
+
if (candidate.type !== "compaction-delta" ||
|
|
289
|
+
candidate.payload.compactionId !==
|
|
290
|
+
first.payload.compactionId) {
|
|
291
|
+
break;
|
|
292
|
+
}
|
|
293
|
+
lastIndex += 1;
|
|
294
|
+
if (candidate.payload.replace) {
|
|
295
|
+
text = candidate.payload.text;
|
|
296
|
+
replace = true;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
text += candidate.payload.text;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
merged = {
|
|
303
|
+
...first,
|
|
304
|
+
payload: {
|
|
305
|
+
...first.payload,
|
|
306
|
+
text,
|
|
307
|
+
...(replace ? { replace: true } : {}),
|
|
308
|
+
},
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
next = applyAppEvent(next, merged);
|
|
312
|
+
const lastSequence = accepted[lastIndex].sequence;
|
|
313
|
+
if (lastSequence !== merged.sequence) {
|
|
314
|
+
next = { ...next, lastSequence };
|
|
315
|
+
}
|
|
316
|
+
index = lastIndex;
|
|
317
|
+
}
|
|
318
|
+
return this.applyState(next);
|
|
319
|
+
}
|
|
142
320
|
applyState(next) {
|
|
143
321
|
if (next === this.state)
|
|
144
322
|
return false;
|
|
145
|
-
// Backfill fields for older hydrated states.
|
|
146
323
|
if (next.expandFileDiffsGlobal === undefined) {
|
|
147
324
|
next = { ...next, expandFileDiffsGlobal: true };
|
|
148
325
|
}
|
|
149
326
|
if (!next.fileDiffOverrides) {
|
|
150
327
|
next = { ...next, fileDiffOverrides: new Map() };
|
|
151
328
|
}
|
|
329
|
+
if (!next.assistantStripStreams) {
|
|
330
|
+
next = { ...next, assistantStripStreams: new Map() };
|
|
331
|
+
}
|
|
152
332
|
if (next.order.length > this.maxItems) {
|
|
153
|
-
const
|
|
333
|
+
const evictionSlack = Math.min(128, Math.max(8, Math.floor(this.maxItems * 0.1)));
|
|
334
|
+
const targetSize = Math.max(1, this.maxItems - evictionSlack);
|
|
335
|
+
const keep = new Set();
|
|
154
336
|
if (next.pendingAssistantId)
|
|
155
337
|
keep.add(next.pendingAssistantId);
|
|
156
338
|
if (next.pendingThinkingId)
|
|
157
339
|
keep.add(next.pendingThinkingId);
|
|
340
|
+
for (let index = next.order.length - 1; index >= 0 && keep.size < targetSize; index -= 1) {
|
|
341
|
+
keep.add(next.order[index]);
|
|
342
|
+
}
|
|
158
343
|
const order = next.order.filter((id) => keep.has(id));
|
|
159
344
|
const byId = new Map([...next.byId].filter(([id]) => keep.has(id)));
|
|
160
345
|
const itemOverrides = new Map([...next.itemOverrides].filter(([id]) => keep.has(id)));
|
|
161
346
|
const fileDiffOverrides = new Map([...next.fileDiffOverrides].filter(([id]) => keep.has(id)));
|
|
162
|
-
|
|
347
|
+
const assistantStripStreams = new Map([...next.assistantStripStreams].filter(([id]) => keep.has(id)));
|
|
348
|
+
next = {
|
|
349
|
+
...next,
|
|
350
|
+
order,
|
|
351
|
+
byId,
|
|
352
|
+
itemOverrides,
|
|
353
|
+
fileDiffOverrides,
|
|
354
|
+
assistantStripStreams,
|
|
355
|
+
};
|
|
163
356
|
}
|
|
164
357
|
this.state = next;
|
|
165
358
|
return true;
|
|
@@ -170,11 +363,14 @@ export class TranscriptStore {
|
|
|
170
363
|
return;
|
|
171
364
|
this.notifyTimer = setTimeout(() => {
|
|
172
365
|
this.notifyTimer = undefined;
|
|
173
|
-
if (this.notifyPending)
|
|
174
|
-
|
|
366
|
+
if (!this.notifyPending)
|
|
367
|
+
return;
|
|
368
|
+
this.flushPendingEvents();
|
|
369
|
+
this.flushNotify();
|
|
175
370
|
}, this.coalesceMs);
|
|
176
371
|
}
|
|
177
372
|
flushNotify() {
|
|
373
|
+
this.flushPendingEvents();
|
|
178
374
|
if (this.notifyTimer) {
|
|
179
375
|
clearTimeout(this.notifyTimer);
|
|
180
376
|
this.notifyTimer = undefined;
|
|
@@ -183,5 +379,13 @@ export class TranscriptStore {
|
|
|
183
379
|
for (const listener of this.listeners)
|
|
184
380
|
listener();
|
|
185
381
|
}
|
|
382
|
+
clearPendingEvents() {
|
|
383
|
+
this.pendingEvents = [];
|
|
384
|
+
this.notifyPending = false;
|
|
385
|
+
if (this.notifyTimer) {
|
|
386
|
+
clearTimeout(this.notifyTimer);
|
|
387
|
+
this.notifyTimer = undefined;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
186
390
|
}
|
|
187
391
|
//# sourceMappingURL=transcript-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-store.js","sourceRoot":"","sources":["../../../src/ui-core/state/transcript-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transcript-store.js","sourceRoot":"","sources":["../../../src/ui-core/state/transcript-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,8 @@ export interface ThinkingItem extends ItemBase {
|
|
|
29
29
|
readonly content: string;
|
|
30
30
|
readonly streaming: boolean;
|
|
31
31
|
readonly reasoningId?: string;
|
|
32
|
+
readonly startedAt?: number | undefined;
|
|
33
|
+
readonly endedAt?: number | undefined;
|
|
32
34
|
}
|
|
33
35
|
export type ToolStatus = "queued" | "running" | "ok" | "failed" | "blocked";
|
|
34
36
|
export interface ToolItem extends ItemBase {
|
|
@@ -62,6 +64,8 @@ export interface CompactedItem extends ItemBase {
|
|
|
62
64
|
readonly afterTokens: number;
|
|
63
65
|
readonly streaming?: boolean | undefined;
|
|
64
66
|
readonly error?: string | undefined;
|
|
67
|
+
readonly startedAt?: number | undefined;
|
|
68
|
+
readonly endedAt?: number | undefined;
|
|
65
69
|
}
|
|
66
70
|
export declare function compactionTokenLabel(item: Pick<CompactedItem, "streaming" | "error" | "beforeTokens" | "afterTokens">): string;
|
|
67
71
|
export interface TurnSummaryItem extends ItemBase {
|
|
@@ -91,6 +95,12 @@ export interface TranscriptState {
|
|
|
91
95
|
readonly itemOverrides: ReadonlyMap<string, boolean>;
|
|
92
96
|
/** Per-tool-card file-diff expand override (key = tool item id). */
|
|
93
97
|
readonly fileDiffOverrides: ReadonlyMap<string, boolean>;
|
|
98
|
+
/**
|
|
99
|
+
* Thinking card that currently owns the pointer wheel, set by clicking it.
|
|
100
|
+
* A focused card scrolls its own body at both extremes instead of handing
|
|
101
|
+
* the wheel back to the transcript. Ctrl+T never focuses a card.
|
|
102
|
+
*/
|
|
103
|
+
readonly focusedThinkingId: string | undefined;
|
|
94
104
|
/** Incremental strip state for the open assistant stream (bounded tail). */
|
|
95
105
|
readonly assistantStripStreams: ReadonlyMap<string, StripStream>;
|
|
96
106
|
}
|
|
@@ -34,6 +34,7 @@ export const EMPTY_TRANSCRIPT_STATE = {
|
|
|
34
34
|
expandFileDiffsGlobal: true,
|
|
35
35
|
itemOverrides: new Map(),
|
|
36
36
|
fileDiffOverrides: new Map(),
|
|
37
|
+
focusedThinkingId: undefined,
|
|
37
38
|
assistantStripStreams: new Map(),
|
|
38
39
|
};
|
|
39
40
|
/** CHAT-005/006/007: a per-item override always wins over the global toggle. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-types.js","sourceRoot":"","sources":["../../../src/ui-core/state/transcript-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"transcript-types.js","sourceRoot":"","sources":["../../../src/ui-core/state/transcript-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare const DEFAULT_TRANSCRIPT_MOUNT_ROWS = 320;
|
|
2
|
+
export declare const DEFAULT_TRANSCRIPT_WINDOW_OVERLAP = 64;
|
|
3
|
+
export interface TranscriptMountWindow {
|
|
4
|
+
readonly start: number;
|
|
5
|
+
readonly end: number;
|
|
6
|
+
readonly olderCount: number;
|
|
7
|
+
readonly newerCount: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function resolveTranscriptMountWindow(totalItems: number, requestedStart: number | undefined, size?: number): TranscriptMountWindow;
|
|
10
|
+
export declare function transcriptWindowStartForItem(totalItems: number, itemIndex: number, size?: number): number;
|
|
11
|
+
export declare function shiftTranscriptWindowStart(totalItems: number, currentStart: number, direction: "older" | "newer", size?: number, overlap?: number): number;
|
|
12
|
+
export interface TranscriptScrollIntent {
|
|
13
|
+
readonly nextScrollTop: number;
|
|
14
|
+
readonly leaveTail: boolean;
|
|
15
|
+
readonly reachedOlderEdge: boolean;
|
|
16
|
+
readonly reachedNewerEdge: boolean;
|
|
17
|
+
readonly atBottom: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function resolveTranscriptScrollIntent(scrollTop: number, maxScrollTop: number, delta: number): TranscriptScrollIntent;
|
|
20
|
+
/**
|
|
21
|
+
* Whether a queued bottom-pin may run this frame.
|
|
22
|
+
*
|
|
23
|
+
* Automatic pins (content growth) must not yank the viewport while a pointer
|
|
24
|
+
* gesture is in flight, but an explicit End / Ctrl+D is a direct command and
|
|
25
|
+
* outranks it — including when a press was released outside the transcript and
|
|
26
|
+
* left the gesture flag set.
|
|
27
|
+
*/
|
|
28
|
+
export declare function shouldPinTranscriptBottom(input: {
|
|
29
|
+
readonly following: boolean;
|
|
30
|
+
readonly pointerGestureActive: boolean;
|
|
31
|
+
readonly forced: boolean;
|
|
32
|
+
}): boolean;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export const DEFAULT_TRANSCRIPT_MOUNT_ROWS = 320;
|
|
2
|
+
export const DEFAULT_TRANSCRIPT_WINDOW_OVERLAP = 64;
|
|
3
|
+
export function resolveTranscriptMountWindow(totalItems, requestedStart, size = DEFAULT_TRANSCRIPT_MOUNT_ROWS) {
|
|
4
|
+
const total = Math.max(0, Math.floor(totalItems));
|
|
5
|
+
const windowSize = Math.max(1, Math.floor(size));
|
|
6
|
+
const maxStart = Math.max(0, total - windowSize);
|
|
7
|
+
const start = requestedStart === undefined
|
|
8
|
+
? maxStart
|
|
9
|
+
: Math.max(0, Math.min(maxStart, Math.floor(requestedStart)));
|
|
10
|
+
const end = Math.min(total, start + windowSize);
|
|
11
|
+
return {
|
|
12
|
+
start,
|
|
13
|
+
end,
|
|
14
|
+
olderCount: start,
|
|
15
|
+
newerCount: Math.max(0, total - end),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function transcriptWindowStartForItem(totalItems, itemIndex, size = DEFAULT_TRANSCRIPT_MOUNT_ROWS) {
|
|
19
|
+
const total = Math.max(0, Math.floor(totalItems));
|
|
20
|
+
if (total === 0)
|
|
21
|
+
return 0;
|
|
22
|
+
const windowSize = Math.max(1, Math.floor(size));
|
|
23
|
+
const index = Math.max(0, Math.min(total - 1, Math.floor(itemIndex)));
|
|
24
|
+
return Math.max(0, Math.min(total - windowSize, index - Math.floor(windowSize / 2)));
|
|
25
|
+
}
|
|
26
|
+
export function shiftTranscriptWindowStart(totalItems, currentStart, direction, size = DEFAULT_TRANSCRIPT_MOUNT_ROWS, overlap = DEFAULT_TRANSCRIPT_WINDOW_OVERLAP) {
|
|
27
|
+
const windowSize = Math.max(1, Math.floor(size));
|
|
28
|
+
const retained = Math.max(0, Math.min(windowSize - 1, Math.floor(overlap)));
|
|
29
|
+
const step = Math.max(1, windowSize - retained);
|
|
30
|
+
const delta = direction === "older" ? -step : step;
|
|
31
|
+
return resolveTranscriptMountWindow(totalItems, currentStart + delta, windowSize).start;
|
|
32
|
+
}
|
|
33
|
+
export function resolveTranscriptScrollIntent(scrollTop, maxScrollTop, delta) {
|
|
34
|
+
const max = Number.isFinite(maxScrollTop) ? Math.max(0, maxScrollTop) : 0;
|
|
35
|
+
const current = Number.isFinite(scrollTop)
|
|
36
|
+
? Math.max(0, Math.min(max, scrollTop))
|
|
37
|
+
: 0;
|
|
38
|
+
const movement = Number.isFinite(delta) ? delta : 0;
|
|
39
|
+
const next = Math.max(0, Math.min(max, current + movement));
|
|
40
|
+
return {
|
|
41
|
+
nextScrollTop: next,
|
|
42
|
+
leaveTail: movement < 0,
|
|
43
|
+
reachedOlderEdge: movement < 0 && next === 0,
|
|
44
|
+
reachedNewerEdge: movement > 0 && next === max,
|
|
45
|
+
atBottom: next === max,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Whether a queued bottom-pin may run this frame.
|
|
50
|
+
*
|
|
51
|
+
* Automatic pins (content growth) must not yank the viewport while a pointer
|
|
52
|
+
* gesture is in flight, but an explicit End / Ctrl+D is a direct command and
|
|
53
|
+
* outranks it — including when a press was released outside the transcript and
|
|
54
|
+
* left the gesture flag set.
|
|
55
|
+
*/
|
|
56
|
+
export function shouldPinTranscriptBottom(input) {
|
|
57
|
+
if (!input.following)
|
|
58
|
+
return false;
|
|
59
|
+
if (input.forced)
|
|
60
|
+
return true;
|
|
61
|
+
return !input.pointerGestureActive;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=transcript-window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript-window.js","sourceRoot":"","sources":["../../../src/ui-core/state/transcript-window.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* AUTO-GENERATED by scripts/sync-version.mjs — do not edit by hand.
|
|
3
3
|
* Source of truth: package.json "version".
|
|
4
4
|
*/
|
|
5
|
-
export declare const VERSION: "4.
|
|
6
|
-
export declare const VERSION_TAG: "v4.
|
|
5
|
+
export declare const VERSION: "4.9.0";
|
|
6
|
+
export declare const VERSION_TAG: "v4.9.0";
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* AUTO-GENERATED by scripts/sync-version.mjs — do not edit by hand.
|
|
3
3
|
* Source of truth: package.json "version".
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = "4.
|
|
6
|
-
export const VERSION_TAG = "v4.
|
|
5
|
+
export const VERSION = "4.9.0";
|
|
6
|
+
export const VERSION_TAG = "v4.9.0";
|
|
7
7
|
//# sourceMappingURL=version.generated.js.map
|