@pentoshi/clai 4.11.28 → 4.11.29
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 +57 -16
- package/dist/agent/compaction-summary.d.ts +1 -1
- package/dist/agent/compaction-summary.js +5 -5
- package/dist/agent/compaction-summary.js.map +1 -1
- package/dist/agent/context/user-credentials.d.ts +4 -0
- package/dist/agent/context/user-credentials.js +68 -0
- package/dist/agent/context/user-credentials.js.map +1 -0
- package/dist/agent/durable-envelope.d.ts +15 -0
- package/dist/agent/durable-envelope.js +48 -7
- package/dist/agent/durable-envelope.js.map +1 -1
- package/dist/agent/evidence/task-classification.js +2 -6
- package/dist/agent/evidence/task-classification.js.map +1 -1
- package/dist/agent/evidence/task-selection.js +4 -3
- package/dist/agent/evidence/task-selection.js.map +1 -1
- package/dist/agent/evidence/tool-budgets.d.ts +1 -0
- package/dist/agent/evidence/tool-budgets.js +6 -2
- package/dist/agent/evidence/tool-budgets.js.map +1 -1
- package/dist/agent/loop-guard.js +8 -67
- package/dist/agent/loop-guard.js.map +1 -1
- package/dist/agent/outcomes.js +2 -1
- package/dist/agent/outcomes.js.map +1 -1
- package/dist/agent/parser/bare-recognition.js +0 -4
- package/dist/agent/parser/bare-recognition.js.map +1 -1
- package/dist/agent/parser/parse-entry.js +0 -3
- package/dist/agent/parser/parse-entry.js.map +1 -1
- package/dist/agent/plan/actions/plan-create.js +2 -2
- package/dist/agent/plan/actions/plan-create.js.map +1 -1
- package/dist/agent/plan-tool.js +1 -1
- package/dist/agent/plan-tool.js.map +1 -1
- package/dist/agent/runner.js +9 -2
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/session-policy.js +0 -3
- package/dist/agent/session-policy.js.map +1 -1
- package/dist/agent/subagents/manager.d.ts +3 -1
- package/dist/agent/subagents/manager.js +6 -16
- package/dist/agent/subagents/manager.js.map +1 -1
- package/dist/agent/subagents/read-only-tools.js +0 -2
- package/dist/agent/subagents/read-only-tools.js.map +1 -1
- package/dist/agent/subagents/tools.js +1 -26
- package/dist/agent/subagents/tools.js.map +1 -1
- package/dist/agent/subagents/types.d.ts +2 -0
- package/dist/agent/subagents/worker.js +2 -1
- package/dist/agent/subagents/worker.js.map +1 -1
- package/dist/agent/task-evidence.d.ts +0 -1
- package/dist/agent/task-evidence.js +5 -26
- package/dist/agent/task-evidence.js.map +1 -1
- package/dist/agent/tool-call-parser.js +1 -1
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/agent/tool-output-formatting.js +1 -1
- package/dist/agent/tool-output-formatting.js.map +1 -1
- package/dist/agent/turn/compaction-durable-envelope.d.ts +12 -3
- package/dist/agent/turn/compaction-durable-envelope.js +63 -12
- package/dist/agent/turn/compaction-durable-envelope.js.map +1 -1
- package/dist/agent/turn/loop/completion-interpretation.d.ts +2 -0
- package/dist/agent/turn/loop/completion-interpretation.js +4 -0
- package/dist/agent/turn/loop/completion-interpretation.js.map +1 -1
- package/dist/agent/turn/loop/run-rounds.js +12 -6
- package/dist/agent/turn/loop/run-rounds.js.map +1 -1
- package/dist/agent/turn/outcome-accounting.js +2 -3
- package/dist/agent/turn/outcome-accounting.js.map +1 -1
- package/dist/agent/turn/pentest-tools.d.ts +3 -0
- package/dist/agent/turn/pentest-tools.js +17 -0
- package/dist/agent/turn/pentest-tools.js.map +1 -0
- package/dist/agent/turn/plan-mode-gate.js +1 -1
- package/dist/agent/turn/plan-mode-gate.js.map +1 -1
- package/dist/agent/turn/plan-persistence.js +3 -0
- package/dist/agent/turn/plan-persistence.js.map +1 -1
- package/dist/agent/turn/scaffold-outcome.js +1 -1
- package/dist/agent/turn/scaffold-outcome.js.map +1 -1
- package/dist/agent/turn/scaffold-preflight.js +1 -1
- package/dist/agent/turn/scaffold-preflight.js.map +1 -1
- package/dist/agent/turn/setup/compaction-services.d.ts +2 -0
- package/dist/agent/turn/setup/compaction-services.js +2 -1
- package/dist/agent/turn/setup/compaction-services.js.map +1 -1
- package/dist/agent/turn/subagent-inbox.js +1 -1
- package/dist/agent/turn/subagent-inbox.js.map +1 -1
- package/dist/agent/turn/task-autostart.d.ts +2 -1
- package/dist/agent/turn/task-autostart.js +15 -0
- package/dist/agent/turn/task-autostart.js.map +1 -1
- package/dist/agent/turn/task-work-signals.js +3 -2
- package/dist/agent/turn/task-work-signals.js.map +1 -1
- package/dist/agent/turn/tool-evidence-signals.js +2 -1
- package/dist/agent/turn/tool-evidence-signals.js.map +1 -1
- package/dist/agent/turn/tool-execution/engagement-checkpoint.js +1 -1
- package/dist/agent/turn/tool-execution/engagement-checkpoint.js.map +1 -1
- package/dist/agent/turn/tool-execution/guards.js +1 -3
- package/dist/agent/turn/tool-execution/guards.js.map +1 -1
- package/dist/agent/turn/tool-execution/meta-tools.js +1 -1
- package/dist/agent/turn/tool-execution/meta-tools.js.map +1 -1
- package/dist/agent/turn/tool-execution/single-tool.js +12 -18
- package/dist/agent/turn/tool-execution/single-tool.js.map +1 -1
- package/dist/agent/turn/tool-routing.d.ts +1 -0
- package/dist/agent/turn/tool-routing.js +5 -2
- package/dist/agent/turn/tool-routing.js.map +1 -1
- package/dist/app/adapters/quiet-meta-tools.js +0 -1
- package/dist/app/adapters/quiet-meta-tools.js.map +1 -1
- package/dist/app/commands/catalog.js +12 -2
- package/dist/app/commands/catalog.js.map +1 -1
- package/dist/app/commands/registry.js +1 -0
- package/dist/app/commands/registry.js.map +1 -1
- package/dist/app/controllers/session-compact-helper.d.ts +1 -0
- package/dist/app/controllers/session-compact-helper.js +9 -1
- package/dist/app/controllers/session-compact-helper.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +2 -0
- package/dist/app/controllers/session-controller.js +27 -4
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/session-naming.d.ts +2 -1
- package/dist/app/controllers/session-naming.js +2 -2
- package/dist/app/controllers/session-naming.js.map +1 -1
- package/dist/app/events/event-buffer.d.ts +6 -2
- package/dist/app/events/event-buffer.js +29 -13
- package/dist/app/events/event-buffer.js.map +1 -1
- package/dist/classic/app/ClassicApp.js +2 -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.d.ts +4 -2
- package/dist/classic/app/app-wiring.js +8 -4
- package/dist/classic/app/app-wiring.js.map +1 -1
- package/dist/classic/app/paint-pacing.d.ts +9 -0
- package/dist/classic/app/paint-pacing.js +18 -0
- package/dist/classic/app/paint-pacing.js.map +1 -0
- package/dist/classic/app/use-feed.js +22 -6
- package/dist/classic/app/use-feed.js.map +1 -1
- package/dist/classic/app/wiring-lifecycle.js +19 -7
- package/dist/classic/app/wiring-lifecycle.js.map +1 -1
- package/dist/classic/app/wiring-types.d.ts +4 -2
- package/dist/classic/blocks/assistant-lines.js +2 -1
- package/dist/classic/blocks/assistant-lines.js.map +1 -1
- package/dist/classic/blocks/batch-lines.js +7 -9
- package/dist/classic/blocks/batch-lines.js.map +1 -1
- package/dist/classic/blocks/block-context.d.ts +4 -0
- package/dist/classic/blocks/block-context.js +20 -1
- package/dist/classic/blocks/block-context.js.map +1 -1
- package/dist/classic/blocks/compacted-lines.js +6 -6
- package/dist/classic/blocks/compacted-lines.js.map +1 -1
- package/dist/classic/blocks/diff-lines.d.ts +3 -1
- package/dist/classic/blocks/diff-lines.js +121 -59
- package/dist/classic/blocks/diff-lines.js.map +1 -1
- package/dist/classic/blocks/thinking-lines.js +6 -6
- package/dist/classic/blocks/thinking-lines.js.map +1 -1
- package/dist/classic/blocks/tool-lines.d.ts +1 -0
- package/dist/classic/blocks/tool-lines.js +113 -52
- package/dist/classic/blocks/tool-lines.js.map +1 -1
- package/dist/classic/blocks/user-lines.js +11 -9
- package/dist/classic/blocks/user-lines.js.map +1 -1
- package/dist/classic/bootstrap/start-classic.d.ts +2 -0
- package/dist/classic/bootstrap/start-classic.js +16 -7
- package/dist/classic/bootstrap/start-classic.js.map +1 -1
- package/dist/classic/chrome/editor-view.js +3 -3
- package/dist/classic/chrome/editor-view.js.map +1 -1
- package/dist/classic/chrome/row-budget.d.ts +2 -1
- package/dist/classic/chrome/row-budget.js +5 -2
- package/dist/classic/chrome/row-budget.js.map +1 -1
- package/dist/classic/feed/feed-blocks.d.ts +25 -3
- package/dist/classic/feed/feed-blocks.js +106 -48
- package/dist/classic/feed/feed-blocks.js.map +1 -1
- package/dist/classic/feed/transcript-selection.js +33 -9
- package/dist/classic/feed/transcript-selection.js.map +1 -1
- package/dist/classic/feed/transcript-window.d.ts +1 -2
- package/dist/classic/feed/transcript-window.js +25 -15
- package/dist/classic/feed/transcript-window.js.map +1 -1
- package/dist/classic/input/input-pipeline.d.ts +12 -0
- package/dist/classic/input/input-pipeline.js +24 -0
- package/dist/classic/input/input-pipeline.js.map +1 -0
- package/dist/classic/input/input-router.js +7 -1
- package/dist/classic/input/input-router.js.map +1 -1
- package/dist/classic/input/paste-burst.d.ts +19 -0
- package/dist/classic/input/paste-burst.js +142 -0
- package/dist/classic/input/paste-burst.js.map +1 -0
- package/dist/classic/input/terminal-sequences.d.ts +3 -1
- package/dist/classic/input/terminal-sequences.js +3 -1
- package/dist/classic/input/terminal-sequences.js.map +1 -1
- package/dist/classic/panels/completion-rows.js +11 -6
- package/dist/classic/panels/completion-rows.js.map +1 -1
- package/dist/classic/panels/keys-panel.js +1 -1
- package/dist/classic/panels/keys-panel.js.map +1 -1
- package/dist/classic/panels/list-rows.js +8 -6
- package/dist/classic/panels/list-rows.js.map +1 -1
- package/dist/classic/panels/pager-diff.d.ts +6 -0
- package/dist/classic/panels/pager-diff.js +91 -0
- package/dist/classic/panels/pager-diff.js.map +1 -0
- package/dist/classic/panels/pager-panel.d.ts +5 -2
- package/dist/classic/panels/pager-panel.js +38 -15
- package/dist/classic/panels/pager-panel.js.map +1 -1
- package/dist/classic/panels/panel-controller.d.ts +1 -0
- package/dist/classic/panels/panel-controller.js +8 -3
- package/dist/classic/panels/panel-controller.js.map +1 -1
- package/dist/classic/panels/panel-host.js +2 -2
- package/dist/classic/panels/panel-host.js.map +1 -1
- package/dist/classic/panels/panel-wheel.js +2 -2
- package/dist/classic/panels/panel-wheel.js.map +1 -1
- package/dist/classic/panels/picker-panel.js +22 -14
- package/dist/classic/panels/picker-panel.js.map +1 -1
- package/dist/classic/panels/plan-panel.d.ts +1 -0
- package/dist/classic/panels/plan-panel.js +25 -9
- package/dist/classic/panels/plan-panel.js.map +1 -1
- package/dist/classic/render/ansi-text.d.ts +3 -1
- package/dist/classic/render/ansi-text.js +106 -4
- package/dist/classic/render/ansi-text.js.map +1 -1
- package/dist/classic/render/ink-theme.d.ts +4 -0
- package/dist/classic/render/ink-theme.js +38 -4
- package/dist/classic/render/ink-theme.js.map +1 -1
- package/dist/classic/render/palette.d.ts +3 -0
- package/dist/classic/render/palette.js +121 -0
- package/dist/classic/render/palette.js.map +1 -0
- package/dist/classic/render/wrap.d.ts +5 -0
- package/dist/classic/render/wrap.js +22 -11
- package/dist/classic/render/wrap.js.map +1 -1
- package/dist/commands/providers.d.ts +6 -0
- package/dist/commands/providers.js +63 -0
- package/dist/commands/providers.js.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/instructions/load.js +5 -12
- package/dist/instructions/load.js.map +1 -1
- package/dist/llm/anthropic.js +3 -1
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/aws-mantle.js +3 -1
- package/dist/llm/aws-mantle.js.map +1 -1
- package/dist/llm/capability/state.d.ts +1 -1
- package/dist/llm/capability/tool-dialect.js +1 -0
- package/dist/llm/capability/tool-dialect.js.map +1 -1
- package/dist/llm/capability/vision-patterns.js +11 -0
- package/dist/llm/capability/vision-patterns.js.map +1 -1
- package/dist/llm/freebuff-auth.d.ts +50 -0
- package/dist/llm/freebuff-auth.js +186 -0
- package/dist/llm/freebuff-auth.js.map +1 -0
- package/dist/llm/freebuff-models.d.ts +8 -0
- package/dist/llm/freebuff-models.js +177 -0
- package/dist/llm/freebuff-models.js.map +1 -0
- package/dist/llm/freebuff-run.d.ts +13 -0
- package/dist/llm/freebuff-run.js +147 -0
- package/dist/llm/freebuff-run.js.map +1 -0
- package/dist/llm/freebuff-session-api.d.ts +92 -0
- package/dist/llm/freebuff-session-api.js +154 -0
- package/dist/llm/freebuff-session-api.js.map +1 -0
- package/dist/llm/freebuff-session.d.ts +31 -0
- package/dist/llm/freebuff-session.js +265 -0
- package/dist/llm/freebuff-session.js.map +1 -0
- package/dist/llm/freebuff.d.ts +2 -0
- package/dist/llm/freebuff.js +149 -0
- package/dist/llm/freebuff.js.map +1 -0
- package/dist/llm/gemini.js +4 -2
- package/dist/llm/gemini.js.map +1 -1
- package/dist/llm/operation-usage.d.ts +8 -0
- package/dist/llm/operation-usage.js +24 -2
- package/dist/llm/operation-usage.js.map +1 -1
- package/dist/llm/provider-identity.js +5 -0
- package/dist/llm/provider-identity.js.map +1 -1
- package/dist/llm/provider-info-text.js +48 -0
- package/dist/llm/provider-info-text.js.map +1 -1
- package/dist/llm/provider-profile-layers.js +10 -0
- package/dist/llm/provider-profile-layers.js.map +1 -1
- package/dist/llm/reasoning-capability.js +14 -0
- package/dist/llm/reasoning-capability.js.map +1 -1
- package/dist/llm/request-fingerprint.js +71 -55
- package/dist/llm/request-fingerprint.js.map +1 -1
- package/dist/llm/request-plan.js +39 -18
- package/dist/llm/request-plan.js.map +1 -1
- package/dist/llm/routing/provider-selection.js +2 -0
- package/dist/llm/routing/provider-selection.js.map +1 -1
- package/dist/llm/usage/provider-parsers.js +20 -4
- package/dist/llm/usage/provider-parsers.js.map +1 -1
- package/dist/llm/wire/chat-body.d.ts +5 -0
- package/dist/llm/wire/chat-body.js +83 -0
- package/dist/llm/wire/chat-body.js.map +1 -1
- package/dist/llm/wire/openai-complete.d.ts +2 -0
- package/dist/llm/wire/openai-complete.js +2 -0
- package/dist/llm/wire/openai-complete.js.map +1 -1
- package/dist/llm/wire/openai-stream.d.ts +2 -0
- package/dist/llm/wire/openai-stream.js +6 -2
- package/dist/llm/wire/openai-stream.js.map +1 -1
- package/dist/modes/ask.js +0 -3
- package/dist/modes/ask.js.map +1 -1
- package/dist/noninteractive/start-noninteractive.js +2 -0
- package/dist/noninteractive/start-noninteractive.js.map +1 -1
- package/dist/noninteractive/stream-blocks.js +1 -1
- package/dist/noninteractive/stream-blocks.js.map +1 -1
- package/dist/os/pkgmgr.d.ts +0 -6
- package/dist/os/pkgmgr.js +15 -85
- package/dist/os/pkgmgr.js.map +1 -1
- package/dist/prompts/embedded.js +2 -2
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/index.js +5 -5
- package/dist/prompts/system.agent.md +14 -18
- package/dist/prompts/system.ask.md +1 -1
- package/dist/safety/classifier.js +0 -2
- package/dist/safety/classifier.js.map +1 -1
- package/dist/safety/engagement-policy.js +0 -2
- package/dist/safety/engagement-policy.js.map +1 -1
- package/dist/safety/tool-classification.js +0 -81
- package/dist/safety/tool-classification.js.map +1 -1
- package/dist/store/config/endpoints.d.ts +1 -0
- package/dist/store/config/endpoints.js +1 -0
- package/dist/store/config/endpoints.js.map +1 -1
- package/dist/store/config.js +1 -0
- package/dist/store/config.js.map +1 -1
- package/dist/store/history/jsonl-backend.js +24 -5
- package/dist/store/history/jsonl-backend.js.map +1 -1
- package/dist/store/history-index.d.ts +2 -0
- package/dist/store/history-index.js +58 -1
- package/dist/store/history-index.js.map +1 -1
- package/dist/store/history.js +30 -3
- package/dist/store/history.js.map +1 -1
- package/dist/store/plan/jsonl-backend.js +4 -11
- package/dist/store/plan/jsonl-backend.js.map +1 -1
- package/dist/store/plan/mutation.js +1 -1
- package/dist/store/plan/mutation.js.map +1 -1
- package/dist/tools/call-normalization.js +4 -0
- package/dist/tools/call-normalization.js.map +1 -1
- package/dist/tools/capabilities.js +23 -13
- package/dist/tools/capabilities.js.map +1 -1
- package/dist/tools/command-intent.d.ts +7 -0
- package/dist/tools/command-intent.js +15 -0
- package/dist/tools/command-intent.js.map +1 -1
- package/dist/tools/definitions/aggregate.js +0 -13
- package/dist/tools/definitions/aggregate.js.map +1 -1
- package/dist/tools/definitions/define.js +1 -3
- package/dist/tools/definitions/define.js.map +1 -1
- package/dist/tools/definitions/orchestration.js +0 -95
- package/dist/tools/definitions/orchestration.js.map +1 -1
- package/dist/tools/definitions/selection.js +0 -4
- package/dist/tools/definitions/selection.js.map +1 -1
- package/dist/tools/definitions/shell.js +5 -20
- package/dist/tools/definitions/shell.js.map +1 -1
- package/dist/tools/definitions/subagents.d.ts +1 -1
- package/dist/tools/definitions/subagents.js +4 -20
- package/dist/tools/definitions/subagents.js.map +1 -1
- package/dist/tools/definitions/terminal.js +1 -11
- package/dist/tools/definitions/terminal.js.map +1 -1
- package/dist/tools/definitions.js +0 -1
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/handlers/shell-1.js +6 -1
- package/dist/tools/handlers/shell-1.js.map +1 -1
- package/dist/tools/handlers/shell-3.js +0 -19
- package/dist/tools/handlers/shell-3.js.map +1 -1
- package/dist/tools/interactive-session-tools.d.ts +1 -1
- package/dist/tools/interactive-session-tools.js +1 -15
- package/dist/tools/interactive-session-tools.js.map +1 -1
- package/dist/tools/jobs.js +2 -2
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/net-ping-sweep.js +1 -1
- package/dist/tools/net-ping-sweep.js.map +1 -1
- package/dist/tools/registry.d.ts +1 -2
- package/dist/tools/registry.js +6 -10
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/retired-tools.d.ts +3 -0
- package/dist/tools/retired-tools.js +25 -0
- package/dist/tools/retired-tools.js.map +1 -0
- package/dist/tools/rtk/binary.d.ts +34 -0
- package/dist/tools/rtk/binary.js +196 -0
- package/dist/tools/rtk/binary.js.map +1 -0
- package/dist/tools/rtk/download.d.ts +21 -0
- package/dist/tools/rtk/download.js +195 -0
- package/dist/tools/rtk/download.js.map +1 -0
- package/dist/tools/rtk/install.d.ts +44 -0
- package/dist/tools/rtk/install.js +416 -0
- package/dist/tools/rtk/install.js.map +1 -0
- package/dist/tools/rtk/release.d.ts +59 -0
- package/dist/tools/rtk/release.js +244 -0
- package/dist/tools/rtk/release.js.map +1 -0
- package/dist/tools/rtk/rewrite.d.ts +7 -0
- package/dist/tools/rtk/rewrite.js +47 -0
- package/dist/tools/rtk/rewrite.js.map +1 -0
- package/dist/tools/shell/exec-attempt.js +5 -4
- package/dist/tools/shell/exec-attempt.js.map +1 -1
- package/dist/tools/shell/spawn-argv.js +1 -1
- package/dist/tools/shell/spawn-argv.js.map +1 -1
- package/dist/tools/shell.d.ts +2 -0
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/wordlists.js +2 -2
- package/dist/tools/wordlists.js.map +1 -1
- package/dist/tui-v2/app/App.js +8 -1
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/bootstrap/start-tui-v2.js +3 -1
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
- package/dist/tui-v2/components/pager/pager-line.d.ts +8 -10
- package/dist/tui-v2/components/pager/pager-line.js +8 -24
- package/dist/tui-v2/components/pager/pager-line.js.map +1 -1
- package/dist/tui-v2/components/pager/pager-rows.d.ts +27 -0
- package/dist/tui-v2/components/pager/pager-rows.js +64 -0
- package/dist/tui-v2/components/pager/pager-rows.js.map +1 -0
- package/dist/tui-v2/components/pager/pager.js +8 -49
- package/dist/tui-v2/components/pager/pager.js.map +1 -1
- package/dist/tui-v2/components/transcript/assistant-message.js +19 -10
- package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
- package/dist/tui-v2/components/transcript/file-diff-card.js +3 -3
- package/dist/tui-v2/components/transcript/file-diff-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-block.js +9 -1
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
- package/dist/tui-v2/components/transcript/tool-card.js +35 -26
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-view.d.ts +3 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +16 -8
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/components/transcript/use-transcript-selection.js +14 -2
- package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -1
- package/dist/tui-v2/rendering/styled-markdown.d.ts +1 -0
- package/dist/tui-v2/rendering/styled-markdown.js +9 -0
- package/dist/tui-v2/rendering/styled-markdown.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -0
- package/dist/types.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/context-free.d.ts +3 -0
- package/dist/ui-core/actions/context-free.js +6 -0
- package/dist/ui-core/actions/context-free.js.map +1 -0
- package/dist/ui-core/actions/format-shortcuts.js +3 -0
- package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
- package/dist/ui-core/actions/keymap.js +1 -0
- package/dist/ui-core/actions/keymap.js.map +1 -1
- package/dist/ui-core/bootstrap/capabilities.js +30 -0
- package/dist/ui-core/bootstrap/capabilities.js.map +1 -1
- package/dist/ui-core/bootstrap/composition-root.d.ts +2 -0
- package/dist/ui-core/bootstrap/composition-root.js +2 -1
- package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
- package/dist/ui-core/bootstrap/console-suppress.js +1 -0
- package/dist/ui-core/bootstrap/console-suppress.js.map +1 -1
- package/dist/ui-core/bootstrap/session-resume.d.ts +3 -4
- package/dist/ui-core/bootstrap/session-resume.js +4 -19
- package/dist/ui-core/bootstrap/session-resume.js.map +1 -1
- package/dist/ui-core/commands/command-handlers.js +6 -3
- package/dist/ui-core/commands/command-handlers.js.map +1 -1
- package/dist/ui-core/commands/config-commands.d.ts +1 -0
- package/dist/ui-core/commands/config-commands.js +5 -0
- package/dist/ui-core/commands/config-commands.js.map +1 -1
- package/dist/ui-core/commands/key-commands.d.ts +1 -0
- package/dist/ui-core/commands/key-commands.js +169 -0
- package/dist/ui-core/commands/key-commands.js.map +1 -1
- package/dist/ui-core/commands/picker-commands.js +12 -0
- package/dist/ui-core/commands/picker-commands.js.map +1 -1
- package/dist/ui-core/commands/rtk-commands.d.ts +3 -0
- package/dist/ui-core/commands/rtk-commands.js +270 -0
- package/dist/ui-core/commands/rtk-commands.js.map +1 -0
- package/dist/ui-core/plan/plan-lifecycle.js +3 -3
- package/dist/ui-core/plan/plan-lifecycle.js.map +1 -1
- package/dist/ui-core/rendering/file-diff-view.d.ts +11 -0
- package/dist/ui-core/rendering/file-diff-view.js +37 -2
- package/dist/ui-core/rendering/file-diff-view.js.map +1 -1
- package/dist/ui-core/rendering/fs-search-summary.d.ts +11 -0
- package/dist/ui-core/rendering/fs-search-summary.js +65 -0
- package/dist/ui-core/rendering/fs-search-summary.js.map +1 -0
- package/dist/ui-core/rendering/intro-header.js +13 -7
- package/dist/ui-core/rendering/intro-header.js.map +1 -1
- package/dist/ui-core/rendering/object-render-cache.d.ts +12 -0
- package/dist/ui-core/rendering/object-render-cache.js +65 -0
- package/dist/ui-core/rendering/object-render-cache.js.map +1 -0
- package/dist/ui-core/rendering/theme.d.ts +3 -0
- package/dist/ui-core/rendering/theme.js +6 -0
- package/dist/ui-core/rendering/theme.js.map +1 -1
- package/dist/ui-core/rendering/transcript-semantic.js +11 -1
- package/dist/ui-core/rendering/transcript-semantic.js.map +1 -1
- package/dist/ui-core/state/persistent-map.d.ts +19 -0
- package/dist/ui-core/state/persistent-map.js +88 -0
- package/dist/ui-core/state/persistent-map.js.map +1 -0
- package/dist/ui-core/state/transcript-hydrate.d.ts +2 -4
- package/dist/ui-core/state/transcript-hydrate.js +17 -94
- package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
- package/dist/ui-core/state/transcript-search.js +11 -2
- package/dist/ui-core/state/transcript-search.js.map +1 -1
- package/dist/ui-core/state/transcript-store.js +2 -2
- package/dist/ui-core/state/transcript-store.js.map +1 -1
- package/dist/ui-core/state/transcript-struct.js +4 -9
- package/dist/ui-core/state/transcript-struct.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +3 -3
- package/dist/tools/batch/batch-parsing.d.ts +0 -11
- package/dist/tools/batch/batch-parsing.js +0 -78
- package/dist/tools/batch/batch-parsing.js.map +0 -1
- package/dist/tools/batch/limits.d.ts +0 -6
- package/dist/tools/batch/limits.js +0 -17
- package/dist/tools/batch/limits.js.map +0 -1
- package/dist/tools/batch/run-batch.d.ts +0 -3
- package/dist/tools/batch/run-batch.js +0 -402
- package/dist/tools/batch/run-batch.js.map +0 -1
- package/dist/tools/batch-fail-policy.d.ts +0 -26
- package/dist/tools/batch-fail-policy.js +0 -230
- package/dist/tools/batch-fail-policy.js.map +0 -1
- package/dist/tools/definitions/context-1.d.ts +0 -2
- package/dist/tools/definitions/context-1.js +0 -8
- package/dist/tools/definitions/context-1.js.map +0 -1
- package/dist/tools/handlers/context-1.d.ts +0 -2
- package/dist/tools/handlers/context-1.js +0 -7
- package/dist/tools/handlers/context-1.js.map +0 -1
- package/dist/tools/handlers/orchestration-1.d.ts +0 -2
- package/dist/tools/handlers/orchestration-1.js +0 -7
- package/dist/tools/handlers/orchestration-1.js.map +0 -1
- package/dist/tools/handlers/shell-2.d.ts +0 -2
- package/dist/tools/handlers/shell-2.js +0 -31
- package/dist/tools/handlers/shell-2.js.map +0 -1
- package/dist/tools/package-binary.d.ts +0 -1
- package/dist/tools/package-binary.js +0 -23
- package/dist/tools/package-binary.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { shouldHideQuietMetaToolInChat } from "../../app/adapters/quiet-meta-tools.js";
|
|
2
2
|
import { isBatchToolName } from "../../ui-core/rendering/batch-sections.js";
|
|
3
3
|
import { presentTool } from "../../ui-core/rendering/tool-presenter.js";
|
|
4
|
-
import { isItemExpanded, transcriptItems } from "../../ui-core/state/transcript-types.js";
|
|
4
|
+
import { isFileDiffExpanded, isItemExpanded, transcriptItems } from "../../ui-core/state/transcript-types.js";
|
|
5
5
|
import { contentWidth } from "../render/measure.js";
|
|
6
6
|
import { EMPTY_SPOOL } from "../blocks/block-context.js";
|
|
7
7
|
import { buildAssistantLines } from "../blocks/assistant-lines.js";
|
|
@@ -11,12 +11,10 @@ import { buildDiffLines } from "../blocks/diff-lines.js";
|
|
|
11
11
|
import { buildIntroLines } from "../blocks/intro-lines.js";
|
|
12
12
|
import { buildNoticeLines } from "../blocks/notice-lines.js";
|
|
13
13
|
import { buildThinkingLines } from "../blocks/thinking-lines.js";
|
|
14
|
-
import { buildToolLines
|
|
14
|
+
import { buildToolLines } from "../blocks/tool-lines.js";
|
|
15
15
|
import { buildTurnSummaryLines } from "../blocks/turn-summary-lines.js";
|
|
16
16
|
import { buildUserLines } from "../blocks/user-lines.js";
|
|
17
|
-
import { clipRow, joinMeta } from "../blocks/block-context.js";
|
|
18
17
|
import { reflowRows } from "../render/wrap.js";
|
|
19
|
-
export const MAX_BLOCK_ROWS = 400;
|
|
20
18
|
export const INTRO_ITEM_ID = "intro";
|
|
21
19
|
export function blockContextFor(state, view) {
|
|
22
20
|
return {
|
|
@@ -47,75 +45,135 @@ function isOpen(item) {
|
|
|
47
45
|
return false;
|
|
48
46
|
}
|
|
49
47
|
}
|
|
50
|
-
function
|
|
51
|
-
if (lines.length <= MAX_BLOCK_ROWS)
|
|
52
|
-
return lines;
|
|
53
|
-
const kept = lines.slice(0, MAX_BLOCK_ROWS - 1);
|
|
54
|
-
const hidden = lines.length - kept.length;
|
|
55
|
-
const expandable = item.kind === "tool" || item.kind === "compacted";
|
|
56
|
-
const footer = joinMeta(ctx, [
|
|
57
|
-
expandable ? outputToggleLabel(isItemExpanded(ctx.state, item)) : undefined,
|
|
58
|
-
`${ctx.glyphs.ellipsis} +${hidden} rows`,
|
|
59
|
-
]);
|
|
60
|
-
return [...kept, clipRow(ctx, ctx.ink.fg("muted", footer))];
|
|
61
|
-
}
|
|
62
|
-
function linesFor(ctx, item, kind, view) {
|
|
48
|
+
function renderLines(ctx, item, kind, markdownCache) {
|
|
63
49
|
switch (kind) {
|
|
64
50
|
case "user":
|
|
65
|
-
return buildUserLines(ctx, item);
|
|
66
|
-
case "assistant":
|
|
67
|
-
|
|
51
|
+
return { lines: buildUserLines(ctx, item), markdownCache };
|
|
52
|
+
case "assistant": {
|
|
53
|
+
const result = buildAssistantLines({ ...ctx, markdownCache }, item);
|
|
54
|
+
return { lines: result.lines, markdownCache: result.cache };
|
|
55
|
+
}
|
|
68
56
|
case "thinking":
|
|
69
|
-
return buildThinkingLines(ctx, item);
|
|
57
|
+
return { lines: buildThinkingLines(ctx, item), markdownCache };
|
|
70
58
|
case "tool":
|
|
71
|
-
return buildToolLines(ctx, item);
|
|
59
|
+
return { lines: buildToolLines(ctx, item), markdownCache };
|
|
72
60
|
case "batch":
|
|
73
|
-
return buildBatchLines(ctx, item);
|
|
61
|
+
return { lines: buildBatchLines(ctx, item), markdownCache };
|
|
74
62
|
case "diff":
|
|
75
|
-
return buildDiffLines(ctx, item);
|
|
63
|
+
return { lines: buildDiffLines(ctx, item), markdownCache };
|
|
76
64
|
case "compacted":
|
|
77
|
-
return buildCompactedLines(ctx, item);
|
|
65
|
+
return { lines: buildCompactedLines(ctx, item), markdownCache };
|
|
78
66
|
case "turn-summary":
|
|
79
|
-
return buildTurnSummaryLines(ctx, item);
|
|
67
|
+
return { lines: buildTurnSummaryLines(ctx, item), markdownCache };
|
|
80
68
|
default:
|
|
81
|
-
return buildNoticeLines(ctx, item);
|
|
69
|
+
return { lines: buildNoticeLines(ctx, item), markdownCache };
|
|
82
70
|
}
|
|
83
71
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
72
|
+
function sameInputs(left, right) {
|
|
73
|
+
return (left.item === right.item &&
|
|
74
|
+
left.kind === right.kind &&
|
|
75
|
+
left.width === right.width &&
|
|
76
|
+
left.ink === right.ink &&
|
|
77
|
+
left.expanded === right.expanded &&
|
|
78
|
+
left.diffExpanded === right.diffExpanded &&
|
|
79
|
+
left.output === right.output &&
|
|
80
|
+
left.now === right.now);
|
|
81
|
+
}
|
|
82
|
+
function blockInputs(ctx, item, kind) {
|
|
83
|
+
const tool = item.kind === "tool" ? item : undefined;
|
|
84
|
+
return {
|
|
85
|
+
item,
|
|
86
|
+
kind,
|
|
87
|
+
width: ctx.width,
|
|
88
|
+
ink: ctx.ink,
|
|
89
|
+
expanded: isItemExpanded(ctx.state, item),
|
|
90
|
+
diffExpanded: tool ? isFileDiffExpanded(ctx.state, item.id) : false,
|
|
91
|
+
output: tool ? ctx.spool.tail(tool.toolCallId) : undefined,
|
|
92
|
+
now: isOpen(item) ? ctx.now : undefined,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export class FeedBlockCache {
|
|
96
|
+
entries = new Map();
|
|
97
|
+
intro;
|
|
98
|
+
introBlock(ctx, input, generation) {
|
|
99
|
+
const cached = this.intro;
|
|
100
|
+
if (cached &&
|
|
101
|
+
cached.input === input &&
|
|
102
|
+
cached.width === ctx.width &&
|
|
103
|
+
cached.ink === ctx.ink &&
|
|
104
|
+
cached.generation === generation) {
|
|
105
|
+
return cached.block;
|
|
106
|
+
}
|
|
107
|
+
const lines = buildIntroLines(ctx, input);
|
|
108
|
+
const block = lines.length > 0
|
|
109
|
+
? {
|
|
110
|
+
key: `${generation}:${INTRO_ITEM_ID}`,
|
|
92
111
|
itemId: INTRO_ITEM_ID,
|
|
93
112
|
kind: "intro",
|
|
94
113
|
open: false,
|
|
95
114
|
lines,
|
|
96
115
|
turnId: undefined,
|
|
97
116
|
sequence: -1,
|
|
98
|
-
}
|
|
117
|
+
}
|
|
118
|
+
: undefined;
|
|
119
|
+
this.intro = { input, width: ctx.width, ink: ctx.ink, block, generation };
|
|
120
|
+
return block;
|
|
121
|
+
}
|
|
122
|
+
itemBlock(ctx, item, kind, generation, next) {
|
|
123
|
+
const inputs = blockInputs(ctx, item, kind);
|
|
124
|
+
const key = `${generation}:${item.id}`;
|
|
125
|
+
const cached = this.entries.get(item.id);
|
|
126
|
+
if (cached && sameInputs(cached.inputs, inputs)) {
|
|
127
|
+
const reusable = !cached.block || cached.block.key === key;
|
|
128
|
+
const entry = reusable ? cached : { ...cached, block: { ...cached.block, key } };
|
|
129
|
+
next.set(item.id, entry);
|
|
130
|
+
return entry.block;
|
|
99
131
|
}
|
|
132
|
+
const markdownCache = cached?.inputs.ink === ctx.ink ? cached.markdownCache : undefined;
|
|
133
|
+
const rendered = renderLines(ctx, item, kind, markdownCache);
|
|
134
|
+
const lines = reflowRows(rendered.lines, ctx.width);
|
|
135
|
+
const block = lines.length > 0
|
|
136
|
+
? {
|
|
137
|
+
key,
|
|
138
|
+
itemId: item.id,
|
|
139
|
+
kind,
|
|
140
|
+
open: isOpen(item),
|
|
141
|
+
lines,
|
|
142
|
+
turnId: item.turnId,
|
|
143
|
+
sequence: item.sequence,
|
|
144
|
+
}
|
|
145
|
+
: undefined;
|
|
146
|
+
next.set(item.id, {
|
|
147
|
+
inputs,
|
|
148
|
+
lines,
|
|
149
|
+
markdownCache: item.kind === "assistant" && item.streaming ? rendered.markdownCache : undefined,
|
|
150
|
+
block,
|
|
151
|
+
});
|
|
152
|
+
return block;
|
|
153
|
+
}
|
|
154
|
+
commit(next) {
|
|
155
|
+
this.entries = next;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
export function buildFeedBlocks(state, view, cache = new FeedBlockCache()) {
|
|
159
|
+
const ctx = blockContextFor(state, view);
|
|
160
|
+
const blocks = [];
|
|
161
|
+
if (view.intro) {
|
|
162
|
+
const intro = cache.introBlock(ctx, view.intro, view.generation);
|
|
163
|
+
if (intro)
|
|
164
|
+
blocks.push(intro);
|
|
100
165
|
}
|
|
166
|
+
const next = new Map();
|
|
101
167
|
for (const item of transcriptItems(state)) {
|
|
102
168
|
if (item.kind === "tool" && shouldHideQuietMetaToolInChat(item.name, item.status)) {
|
|
103
169
|
continue;
|
|
104
170
|
}
|
|
105
171
|
const kind = item.kind === "tool" ? toolBlockKind(item) : item.kind;
|
|
106
|
-
const
|
|
107
|
-
if (
|
|
108
|
-
|
|
109
|
-
blocks.push({
|
|
110
|
-
key: `${view.generation}:${item.id}`,
|
|
111
|
-
itemId: item.id,
|
|
112
|
-
kind,
|
|
113
|
-
open: isOpen(item),
|
|
114
|
-
lines,
|
|
115
|
-
turnId: item.turnId,
|
|
116
|
-
sequence: item.sequence,
|
|
117
|
-
});
|
|
172
|
+
const block = cache.itemBlock(ctx, item, kind, view.generation, next);
|
|
173
|
+
if (block)
|
|
174
|
+
blocks.push(block);
|
|
118
175
|
}
|
|
176
|
+
cache.commit(next);
|
|
119
177
|
return blocks;
|
|
120
178
|
}
|
|
121
179
|
//# sourceMappingURL=feed-blocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed-blocks.js","sourceRoot":"","sources":["../../../src/classic/feed/feed-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAMxE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"feed-blocks.js","sourceRoot":"","sources":["../../../src/classic/feed/feed-blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,20 +4,44 @@ import { layoutWidth } from "../render/measure.js";
|
|
|
4
4
|
function displayLine(line) {
|
|
5
5
|
return plainText(line).replace(/[ \t]+$/, "");
|
|
6
6
|
}
|
|
7
|
+
const layouts = new WeakMap();
|
|
8
|
+
const semanticBlocks = new WeakMap();
|
|
9
|
+
function blockLayout(block) {
|
|
10
|
+
const lines = block.lines ?? [];
|
|
11
|
+
let layout = layouts.get(lines);
|
|
12
|
+
if (!layout) {
|
|
13
|
+
const plain = lines.map(displayLine);
|
|
14
|
+
const lineStarts = [];
|
|
15
|
+
let offset = 0;
|
|
16
|
+
for (const line of plain) {
|
|
17
|
+
lineStarts.push(offset);
|
|
18
|
+
offset += line.length + 1;
|
|
19
|
+
}
|
|
20
|
+
layout = { text: plain.join("\n"), lineStarts };
|
|
21
|
+
layouts.set(lines, layout);
|
|
22
|
+
}
|
|
23
|
+
return layout;
|
|
24
|
+
}
|
|
7
25
|
function blockText(block) {
|
|
8
|
-
return (block
|
|
26
|
+
return blockLayout(block).text;
|
|
27
|
+
}
|
|
28
|
+
function semanticBlock(block) {
|
|
29
|
+
let semantic = semanticBlocks.get(block);
|
|
30
|
+
if (!semantic) {
|
|
31
|
+
semantic = { id: block.key ?? block.itemId, text: blockText(block) };
|
|
32
|
+
semanticBlocks.set(block, semantic);
|
|
33
|
+
}
|
|
34
|
+
return semantic;
|
|
9
35
|
}
|
|
10
36
|
export function classicTranscriptDocument(blocks) {
|
|
11
|
-
return {
|
|
12
|
-
blocks: blocks.map((block) => ({ id: block.key ?? block.itemId, text: blockText(block) })),
|
|
13
|
-
};
|
|
37
|
+
return { blocks: blocks.map(semanticBlock) };
|
|
14
38
|
}
|
|
15
39
|
function lineStart(block, lineIndex) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return
|
|
40
|
+
const { lineStarts, text } = blockLayout(block);
|
|
41
|
+
if (lineIndex < lineStarts.length)
|
|
42
|
+
return lineStarts[Math.max(0, lineIndex)];
|
|
43
|
+
const end = lineStarts.length > 0 ? text.length + 1 : 0;
|
|
44
|
+
return end + lineIndex - lineStarts.length;
|
|
21
45
|
}
|
|
22
46
|
function offsetAtColumn(text, column) {
|
|
23
47
|
const target = Math.max(0, column);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-selection.js","sourceRoot":"","sources":["../../../src/classic/feed/transcript-selection.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"transcript-selection.js","sourceRoot":"","sources":["../../../src/classic/feed/transcript-selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,5 @@ export interface TranscriptWindow {
|
|
|
18
18
|
readonly lastItemId: string | undefined;
|
|
19
19
|
readonly visibleItemIds: ReadonlySet<string>;
|
|
20
20
|
}
|
|
21
|
-
export declare function flattenBlocks(blocks: readonly FeedBlock[]): readonly TranscriptWindowRow[];
|
|
22
21
|
export declare function totalTranscriptRows(blocks: readonly FeedBlock[]): number;
|
|
23
|
-
export declare function planTranscriptWindow(
|
|
22
|
+
export declare function planTranscriptWindow(blocks: readonly FeedBlock[], budget: number, offsetFromBottom: number): TranscriptWindow;
|
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
import { BLOCK_GAP_ROWS } from "./block-height.js";
|
|
2
|
-
export function flattenBlocks(blocks) {
|
|
3
|
-
const rows = [];
|
|
4
|
-
for (const [blockIndex, block] of blocks.entries()) {
|
|
5
|
-
for (const [lineIndex, line] of block.lines.entries()) {
|
|
6
|
-
rows.push({ key: `${block.key}:${lineIndex}`, line, block, lineIndex });
|
|
7
|
-
}
|
|
8
|
-
if (blockIndex < blocks.length - 1) {
|
|
9
|
-
rows.push({ key: `${block.key}:gap`, line: "", block, lineIndex: undefined });
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
return rows;
|
|
13
|
-
}
|
|
14
2
|
export function totalTranscriptRows(blocks) {
|
|
15
3
|
if (blocks.length === 0)
|
|
16
4
|
return 0;
|
|
@@ -19,14 +7,36 @@ export function totalTranscriptRows(blocks) {
|
|
|
19
7
|
total += block.lines.length;
|
|
20
8
|
return total;
|
|
21
9
|
}
|
|
22
|
-
|
|
10
|
+
function sliceRows(blocks, start, end) {
|
|
11
|
+
const rows = [];
|
|
12
|
+
let cursor = 0;
|
|
13
|
+
for (let blockIndex = 0; blockIndex < blocks.length && cursor < end; blockIndex += 1) {
|
|
14
|
+
const block = blocks[blockIndex];
|
|
15
|
+
const gap = blockIndex < blocks.length - 1 ? BLOCK_GAP_ROWS : 0;
|
|
16
|
+
const span = block.lines.length + gap;
|
|
17
|
+
if (cursor + span <= start) {
|
|
18
|
+
cursor += span;
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const from = Math.max(0, start - cursor);
|
|
22
|
+
const to = Math.min(span, end - cursor);
|
|
23
|
+
for (let offset = from; offset < to; offset += 1) {
|
|
24
|
+
rows.push(offset < block.lines.length
|
|
25
|
+
? { key: `${block.key}:${offset}`, line: block.lines[offset], block, lineIndex: offset }
|
|
26
|
+
: { key: `${block.key}:gap`, line: "", block, lineIndex: undefined });
|
|
27
|
+
}
|
|
28
|
+
cursor += span;
|
|
29
|
+
}
|
|
30
|
+
return rows;
|
|
31
|
+
}
|
|
32
|
+
export function planTranscriptWindow(blocks, budget, offsetFromBottom) {
|
|
23
33
|
const viewportRows = Math.max(0, Math.floor(budget));
|
|
24
|
-
const totalRows =
|
|
34
|
+
const totalRows = totalTranscriptRows(blocks);
|
|
25
35
|
const maxOffset = Math.max(0, totalRows - viewportRows);
|
|
26
36
|
const offset = Math.max(0, Math.min(Math.floor(offsetFromBottom), maxOffset));
|
|
27
37
|
const end = totalRows - offset;
|
|
28
38
|
const start = Math.max(0, end - viewportRows);
|
|
29
|
-
const rows = viewportRows === 0 ? [] :
|
|
39
|
+
const rows = viewportRows === 0 ? [] : sliceRows(blocks, start, end);
|
|
30
40
|
const visibleItemIds = new Set();
|
|
31
41
|
for (const row of rows)
|
|
32
42
|
visibleItemIds.add(row.block.itemId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-window.js","sourceRoot":"","sources":["../../../src/classic/feed/transcript-window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAwBnD,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"transcript-window.js","sourceRoot":"","sources":["../../../src/classic/feed/transcript-window.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DecodedEvent } from "./key-event.js";
|
|
2
|
+
import type { PasteBurstAssembler } from "./paste-burst.js";
|
|
3
|
+
import type { RawDecoder } from "./raw-decoder.js";
|
|
4
|
+
export declare class InputPipeline {
|
|
5
|
+
private readonly decoder;
|
|
6
|
+
private readonly bursts;
|
|
7
|
+
private readonly now;
|
|
8
|
+
constructor(decoder: RawDecoder, bursts: PasteBurstAssembler, now: () => number);
|
|
9
|
+
get pendingDeadline(): number | undefined;
|
|
10
|
+
push(chunk: string): readonly DecodedEvent[];
|
|
11
|
+
flush(): readonly DecodedEvent[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class InputPipeline {
|
|
2
|
+
decoder;
|
|
3
|
+
bursts;
|
|
4
|
+
now;
|
|
5
|
+
constructor(decoder, bursts, now) {
|
|
6
|
+
this.decoder = decoder;
|
|
7
|
+
this.bursts = bursts;
|
|
8
|
+
this.now = now;
|
|
9
|
+
}
|
|
10
|
+
get pendingDeadline() {
|
|
11
|
+
const deadlines = [this.decoder.pendingDeadline, this.bursts.pendingDeadline].filter((deadline) => deadline !== undefined);
|
|
12
|
+
return deadlines.length > 0 ? Math.min(...deadlines) : undefined;
|
|
13
|
+
}
|
|
14
|
+
push(chunk) {
|
|
15
|
+
return this.bursts.process(this.decoder.push(chunk), this.now());
|
|
16
|
+
}
|
|
17
|
+
flush() {
|
|
18
|
+
const now = this.now();
|
|
19
|
+
const decoderDeadline = this.decoder.pendingDeadline;
|
|
20
|
+
const decoded = decoderDeadline !== undefined && decoderDeadline <= now ? this.decoder.flush() : [];
|
|
21
|
+
return [...this.bursts.process(decoded, now), ...this.bursts.expire(now)];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=input-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-pipeline.js","sourceRoot":"","sources":["../../../src/classic/input/input-pipeline.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAa;IAEL;IACA;IACA;IAHnB,YACmB,OAAmB,EACnB,MAA2B,EAC3B,GAAiB;QAFjB,YAAO,GAAP,OAAO,CAAY;QACnB,WAAM,GAAN,MAAM,CAAqB;QAC3B,QAAG,GAAH,GAAG,CAAc;IACjC,CAAC;IAEJ,IAAI,eAAe;QACjB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAClF,CAAC,QAAQ,EAAsB,EAAE,CAAC,QAAQ,KAAK,SAAS,CACzD,CAAC;QACF,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QACrD,MAAM,OAAO,GACX,eAAe,KAAK,SAAS,IAAI,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolveContextFreeAction } from "../../ui-core/actions/context-free.js";
|
|
1
2
|
import { chordFromKey } from "./chord-from-key.js";
|
|
2
3
|
const BLOCKING_CONTEXTS = new Set(["secret", "modal"]);
|
|
3
4
|
const OVERLAY_CONTEXTS = new Set([
|
|
@@ -37,6 +38,11 @@ export class InputRouter {
|
|
|
37
38
|
routeKey(key) {
|
|
38
39
|
const chord = chordFromKey(key);
|
|
39
40
|
const context = this.deps.focus.activeContext();
|
|
41
|
+
const contextFree = resolveContextFreeAction(this.deps.router, chord);
|
|
42
|
+
if (contextFree) {
|
|
43
|
+
this.deps.onAction(contextFree, chord, key);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
40
46
|
if (BLOCKING_CONTEXTS.has(context)) {
|
|
41
47
|
if (chord === "ctrl+c") {
|
|
42
48
|
this.deps.ladder.interrupt();
|
|
@@ -67,7 +73,7 @@ export class InputRouter {
|
|
|
67
73
|
this.deps.onContextLimitKey?.(key, chord);
|
|
68
74
|
return;
|
|
69
75
|
}
|
|
70
|
-
if (
|
|
76
|
+
if (chord === "ctrl+l") {
|
|
71
77
|
this.deps.onContextLimitStart?.();
|
|
72
78
|
return;
|
|
73
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-router.js","sourceRoot":"","sources":["../../../src/classic/input/input-router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input-router.js","sourceRoot":"","sources":["../../../src/classic/input/input-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DecodedEvent } from "./key-event.js";
|
|
2
|
+
export interface PasteBurstOptions {
|
|
3
|
+
readonly glueMs?: number | undefined;
|
|
4
|
+
readonly settleMs?: number | undefined;
|
|
5
|
+
}
|
|
6
|
+
export declare class PasteBurstAssembler {
|
|
7
|
+
private readonly glueMs;
|
|
8
|
+
private readonly settleMs;
|
|
9
|
+
private collected;
|
|
10
|
+
private held;
|
|
11
|
+
private touchedAt;
|
|
12
|
+
private plainAt;
|
|
13
|
+
constructor(options?: PasteBurstOptions);
|
|
14
|
+
get pendingDeadline(): number | undefined;
|
|
15
|
+
process(events: readonly DecodedEvent[], now: number): readonly DecodedEvent[];
|
|
16
|
+
expire(now: number): readonly DecodedEvent[];
|
|
17
|
+
private touch;
|
|
18
|
+
private releaseCollected;
|
|
19
|
+
}
|