@wrongstack/tui 0.284.1 → 0.286.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/dist/app-initial-state.d.ts +28 -0
- package/dist/app-initial-state.d.ts.map +1 -0
- package/dist/app-reducer.d.ts +5 -0
- package/dist/app-reducer.d.ts.map +1 -0
- package/dist/app-state.d.ts +1841 -0
- package/dist/app-state.d.ts.map +1 -0
- package/dist/app.d.ts +593 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/clipboard.d.ts +2 -0
- package/dist/clipboard.d.ts.map +1 -0
- package/dist/components/agents-monitor.d.ts +114 -0
- package/dist/components/agents-monitor.d.ts.map +1 -0
- package/dist/components/animation-style.d.ts +51 -0
- package/dist/components/animation-style.d.ts.map +1 -0
- package/dist/components/audit-panel.d.ts +9 -0
- package/dist/components/audit-panel.d.ts.map +1 -0
- package/dist/components/auth-panel-model.d.ts +150 -0
- package/dist/components/auth-panel-model.d.ts.map +1 -0
- package/dist/components/auth-panel.d.ts +8 -0
- package/dist/components/auth-panel.d.ts.map +1 -0
- package/dist/components/autonomy-picker.d.ts +15 -0
- package/dist/components/autonomy-picker.d.ts.map +1 -0
- package/dist/components/brain-decision-prompt.d.ts +28 -0
- package/dist/components/brain-decision-prompt.d.ts.map +1 -0
- package/dist/components/brain-panel-model.d.ts +107 -0
- package/dist/components/brain-panel-model.d.ts.map +1 -0
- package/dist/components/brain-panel.d.ts +22 -0
- package/dist/components/brain-panel.d.ts.map +1 -0
- package/dist/components/checkpoint-timeline.d.ts +19 -0
- package/dist/components/checkpoint-timeline.d.ts.map +1 -0
- package/dist/components/confirm-prompt.d.ts +26 -0
- package/dist/components/confirm-prompt.d.ts.map +1 -0
- package/dist/components/continue-confirm-panel.d.ts +47 -0
- package/dist/components/continue-confirm-panel.d.ts.map +1 -0
- package/dist/components/coordinator-panel.d.ts +11 -0
- package/dist/components/coordinator-panel.d.ts.map +1 -0
- package/dist/components/design-picker.d.ts +14 -0
- package/dist/components/design-picker.d.ts.map +1 -0
- package/dist/components/enhance-panel.d.ts +36 -0
- package/dist/components/enhance-panel.d.ts.map +1 -0
- package/dist/components/esc-confirm-prompt.d.ts +17 -0
- package/dist/components/esc-confirm-prompt.d.ts.map +1 -0
- package/dist/components/f-key-picker.d.ts +13 -0
- package/dist/components/f-key-picker.d.ts.map +1 -0
- package/dist/components/file-picker.d.ts +8 -0
- package/dist/components/file-picker.d.ts.map +1 -0
- package/dist/components/fleet-monitor.d.ts +60 -0
- package/dist/components/fleet-monitor.d.ts.map +1 -0
- package/dist/components/fleet-panel.d.ts +69 -0
- package/dist/components/fleet-panel.d.ts.map +1 -0
- package/dist/components/goal-panel.d.ts +17 -0
- package/dist/components/goal-panel.d.ts.map +1 -0
- package/dist/components/help-overlay.d.ts +27 -0
- package/dist/components/help-overlay.d.ts.map +1 -0
- package/dist/components/help-panel.d.ts +16 -0
- package/dist/components/help-panel.d.ts.map +1 -0
- package/dist/components/history/assistant.d.ts +61 -0
- package/dist/components/history/assistant.d.ts.map +1 -0
- package/dist/components/history/banner.d.ts +13 -0
- package/dist/components/history/banner.d.ts.map +1 -0
- package/dist/components/history/code-block.d.ts +217 -0
- package/dist/components/history/code-block.d.ts.map +1 -0
- package/dist/components/history/entry.d.ts +19 -0
- package/dist/components/history/entry.d.ts.map +1 -0
- package/dist/components/history/index.d.ts +21 -0
- package/dist/components/history/index.d.ts.map +1 -0
- package/dist/components/history/replay.d.ts +44 -0
- package/dist/components/history/replay.d.ts.map +1 -0
- package/dist/components/history/types.d.ts +146 -0
- package/dist/components/history/types.d.ts.map +1 -0
- package/dist/components/history/utils.d.ts +65 -0
- package/dist/components/history/utils.d.ts.map +1 -0
- package/dist/components/history.d.ts +2 -0
- package/dist/components/history.d.ts.map +1 -0
- package/dist/components/input.d.ts +57 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/kanban-panel.d.ts +7 -0
- package/dist/components/kanban-panel.d.ts.map +1 -0
- package/dist/components/key-hint-bar.d.ts +31 -0
- package/dist/components/key-hint-bar.d.ts.map +1 -0
- package/dist/components/live-activity-strip.d.ts +39 -0
- package/dist/components/live-activity-strip.d.ts.map +1 -0
- package/dist/components/mailbox-panel.d.ts +40 -0
- package/dist/components/mailbox-panel.d.ts.map +1 -0
- package/dist/components/mcp-picker.d.ts +18 -0
- package/dist/components/mcp-picker.d.ts.map +1 -0
- package/dist/components/mode-picker.d.ts +17 -0
- package/dist/components/mode-picker.d.ts.map +1 -0
- package/dist/components/model-picker.d.ts +37 -0
- package/dist/components/model-picker.d.ts.map +1 -0
- package/dist/components/phase-monitor.d.ts +33 -0
- package/dist/components/phase-monitor.d.ts.map +1 -0
- package/dist/components/phase-panel.d.ts +22 -0
- package/dist/components/phase-panel.d.ts.map +1 -0
- package/dist/components/plan-panel.d.ts +17 -0
- package/dist/components/plan-panel.d.ts.map +1 -0
- package/dist/components/plugin-picker.d.ts +22 -0
- package/dist/components/plugin-picker.d.ts.map +1 -0
- package/dist/components/process-list.d.ts +14 -0
- package/dist/components/process-list.d.ts.map +1 -0
- package/dist/components/project-picker.d.ts +21 -0
- package/dist/components/project-picker.d.ts.map +1 -0
- package/dist/components/prompt-picker.d.ts +31 -0
- package/dist/components/prompt-picker.d.ts.map +1 -0
- package/dist/components/provider-colors.d.ts +40 -0
- package/dist/components/provider-colors.d.ts.map +1 -0
- package/dist/components/queue-panel.d.ts +16 -0
- package/dist/components/queue-panel.d.ts.map +1 -0
- package/dist/components/resume-picker.d.ts +16 -0
- package/dist/components/resume-picker.d.ts.map +1 -0
- package/dist/components/scrollable-history.d.ts +60 -0
- package/dist/components/scrollable-history.d.ts.map +1 -0
- package/dist/components/sdd-board-overlay.d.ts +15 -0
- package/dist/components/sdd-board-overlay.d.ts.map +1 -0
- package/dist/components/send-mode-picker.d.ts +64 -0
- package/dist/components/send-mode-picker.d.ts.map +1 -0
- package/dist/components/sessions-panel.d.ts +46 -0
- package/dist/components/sessions-panel.d.ts.map +1 -0
- package/dist/components/settings-picker.d.ts +387 -0
- package/dist/components/settings-picker.d.ts.map +1 -0
- package/dist/components/shadow-panel.d.ts +13 -0
- package/dist/components/shadow-panel.d.ts.map +1 -0
- package/dist/components/shell-command-warning.d.ts +9 -0
- package/dist/components/shell-command-warning.d.ts.map +1 -0
- package/dist/components/slash-menu.d.ts +9 -0
- package/dist/components/slash-menu.d.ts.map +1 -0
- package/dist/components/status-bar.d.ts +378 -0
- package/dist/components/status-bar.d.ts.map +1 -0
- package/dist/components/statusline-picker.d.ts +55 -0
- package/dist/components/statusline-picker.d.ts.map +1 -0
- package/dist/components/suggestions.d.ts +9 -0
- package/dist/components/suggestions.d.ts.map +1 -0
- package/dist/components/todos-monitor.d.ts +13 -0
- package/dist/components/todos-monitor.d.ts.map +1 -0
- package/dist/components/tools-picker.d.ts +20 -0
- package/dist/components/tools-picker.d.ts.map +1 -0
- package/dist/components/worktree-monitor.d.ts +23 -0
- package/dist/components/worktree-monitor.d.ts.map +1 -0
- package/dist/components/worktree-panel.d.ts +21 -0
- package/dist/components/worktree-panel.d.ts.map +1 -0
- package/dist/f-key-panels.d.ts +46 -0
- package/dist/f-key-panels.d.ts.map +1 -0
- package/dist/file-search.d.ts +3 -0
- package/dist/file-search.d.ts.map +1 -0
- package/dist/fn-keys.d.ts +20 -0
- package/dist/fn-keys.d.ts.map +1 -0
- package/dist/git-info.d.ts +20 -0
- package/dist/git-info.d.ts.map +1 -0
- package/dist/heap-watchdog.d.ts +41 -0
- package/dist/heap-watchdog.d.ts.map +1 -0
- package/dist/highlight.d.ts +30 -0
- package/dist/highlight.d.ts.map +1 -0
- package/dist/hit-test.d.ts +75 -0
- package/dist/hit-test.d.ts.map +1 -0
- package/dist/hooks/fleet-chat-coalescer.d.ts +32 -0
- package/dist/hooks/fleet-chat-coalescer.d.ts.map +1 -0
- package/dist/hooks/use-auth-panel.d.ts +38 -0
- package/dist/hooks/use-auth-panel.d.ts.map +1 -0
- package/dist/hooks/use-autonomous-coordinator.d.ts +21 -0
- package/dist/hooks/use-autonomous-coordinator.d.ts.map +1 -0
- package/dist/hooks/use-brain-events.d.ts +7 -0
- package/dist/hooks/use-brain-events.d.ts.map +1 -0
- package/dist/hooks/use-brain-panel.d.ts +43 -0
- package/dist/hooks/use-brain-panel.d.ts.map +1 -0
- package/dist/hooks/use-director-fleet-bridge.d.ts +31 -0
- package/dist/hooks/use-director-fleet-bridge.d.ts.map +1 -0
- package/dist/hooks/use-file-search.d.ts +42 -0
- package/dist/hooks/use-file-search.d.ts.map +1 -0
- package/dist/hooks/use-input-history-persistence.d.ts +14 -0
- package/dist/hooks/use-input-history-persistence.d.ts.map +1 -0
- package/dist/hooks/use-mode-picker.d.ts +15 -0
- package/dist/hooks/use-mode-picker.d.ts.map +1 -0
- package/dist/hooks/use-model-pick.d.ts +34 -0
- package/dist/hooks/use-model-pick.d.ts.map +1 -0
- package/dist/hooks/use-paste-handling.d.ts +30 -0
- package/dist/hooks/use-paste-handling.d.ts.map +1 -0
- package/dist/hooks/use-picker-keys.d.ts +72 -0
- package/dist/hooks/use-picker-keys.d.ts.map +1 -0
- package/dist/hooks/use-prompt-picker.d.ts +28 -0
- package/dist/hooks/use-prompt-picker.d.ts.map +1 -0
- package/dist/hooks/use-queue-manager.d.ts +26 -0
- package/dist/hooks/use-queue-manager.d.ts.map +1 -0
- package/dist/hooks/use-statusline-hidden-sync.d.ts +14 -0
- package/dist/hooks/use-statusline-hidden-sync.d.ts.map +1 -0
- package/dist/hooks/use-statusline-state.d.ts +44 -0
- package/dist/hooks/use-statusline-state.d.ts.map +1 -0
- package/dist/hooks/use-stream-chip-expiration.d.ts +25 -0
- package/dist/hooks/use-stream-chip-expiration.d.ts.map +1 -0
- package/dist/hooks/use-subagent-events.d.ts +16 -0
- package/dist/hooks/use-subagent-events.d.ts.map +1 -0
- package/dist/hooks/use-token-counter-refresh.d.ts +30 -0
- package/dist/hooks/use-token-counter-refresh.d.ts.map +1 -0
- package/dist/hooks/use-tui-controllers.d.ts +37 -0
- package/dist/hooks/use-tui-controllers.d.ts.map +1 -0
- package/dist/hooks/use-tui-event-bridge.d.ts +29 -0
- package/dist/hooks/use-tui-event-bridge.d.ts.map +1 -0
- package/dist/hooks/use-working-dir-chip.d.ts +8 -0
- package/dist/hooks/use-working-dir-chip.d.ts.map +1 -0
- package/dist/index.d.ts +12 -910
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4348 -2974
- package/dist/index.js.map +7 -1
- package/dist/ink.d.ts +20 -0
- package/dist/ink.d.ts.map +1 -0
- package/dist/input-editing.d.ts +76 -0
- package/dist/input-editing.d.ts.map +1 -0
- package/dist/input-tokens.d.ts +65 -0
- package/dist/input-tokens.d.ts.map +1 -0
- package/dist/kill-slash.d.ts +3 -0
- package/dist/kill-slash.d.ts.map +1 -0
- package/dist/markdown-table.d.ts +45 -0
- package/dist/markdown-table.d.ts.map +1 -0
- package/dist/markdown.d.ts +47 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/mouse.d.ts +73 -0
- package/dist/mouse.d.ts.map +1 -0
- package/dist/on-panel-open.d.ts +62 -0
- package/dist/on-panel-open.d.ts.map +1 -0
- package/dist/paste-accumulator.d.ts +19 -0
- package/dist/paste-accumulator.d.ts.map +1 -0
- package/dist/ps-slash.d.ts +7 -0
- package/dist/ps-slash.d.ts.map +1 -0
- package/dist/queue-slash.d.ts +24 -0
- package/dist/queue-slash.d.ts.map +1 -0
- package/dist/reducers/fleet.d.ts +16 -0
- package/dist/reducers/fleet.d.ts.map +1 -0
- package/dist/reducers/helpers.d.ts +38 -0
- package/dist/reducers/helpers.d.ts.map +1 -0
- package/dist/rehydrate-history.d.ts +40 -0
- package/dist/rehydrate-history.d.ts.map +1 -0
- package/dist/run-tui.d.ts +522 -0
- package/dist/run-tui.d.ts.map +1 -0
- package/dist/sdd-lifecycle-entry.d.ts +18 -0
- package/dist/sdd-lifecycle-entry.d.ts.map +1 -0
- package/dist/slash-command-search.d.ts +10 -0
- package/dist/slash-command-search.d.ts.map +1 -0
- package/dist/steering-preamble.d.ts +25 -0
- package/dist/steering-preamble.d.ts.map +1 -0
- package/dist/submit-history.d.ts +17 -0
- package/dist/submit-history.d.ts.map +1 -0
- package/dist/terminal-title.d.ts +12 -0
- package/dist/terminal-title.d.ts.map +1 -0
- package/dist/theme.d.ts +91 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/thinking-word.d.ts +26 -0
- package/dist/thinking-word.d.ts.map +1 -0
- package/dist/tool-glyph.d.ts +18 -0
- package/dist/tool-glyph.d.ts.map +1 -0
- package/package.json +8 -9
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type ContinueDecision = 'proceed' | 'edit' | 'cancel';
|
|
3
|
+
/**
|
|
4
|
+
* Return the visible auto-proceed countdown in seconds, or null when the user
|
|
5
|
+
* must make an explicit choice. Keeping this as a tiny pure helper gives tests
|
|
6
|
+
* a stable contract without driving Ink timers.
|
|
7
|
+
*/
|
|
8
|
+
export declare function continueAutoProceedSeconds(grounded: boolean, delayMs: number): number | null;
|
|
9
|
+
export interface ContinueConfirmPanelProps {
|
|
10
|
+
/** One-line summary of what "continue" resolved to. */
|
|
11
|
+
label: string;
|
|
12
|
+
/** The full instruction that will be sent in place of the bare "continue". */
|
|
13
|
+
instruction: string;
|
|
14
|
+
/** Resolution origin — drives the copy and the drift warning. */
|
|
15
|
+
source: 'todo' | 'suggestion' | 'open';
|
|
16
|
+
/**
|
|
17
|
+
* True for todo/suggestion resolutions (an explicit anchor, low drift): the
|
|
18
|
+
* panel auto-proceeds after `delayMs`. False for the `open` guess: no
|
|
19
|
+
* countdown, an explicit keypress is required.
|
|
20
|
+
*/
|
|
21
|
+
grounded: boolean;
|
|
22
|
+
/** Auto-proceed countdown (ms) for grounded resolutions. Ignored when !grounded. */
|
|
23
|
+
delayMs: number;
|
|
24
|
+
/** Called once with the chosen action (keypress or, when grounded, countdown expiry). */
|
|
25
|
+
onDecision: (decision: ContinueDecision) => void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Bare-"continue" confirmation ("you said continue — here's what that means").
|
|
29
|
+
*
|
|
30
|
+
* The whole point is to make the resolution *and its drift risk* visible
|
|
31
|
+
* instead of silently guessing:
|
|
32
|
+
*
|
|
33
|
+
* - **grounded** (todo / suggestion) — a concrete anchor exists, so we show
|
|
34
|
+
* it and auto-proceed after a short countdown. Enter sends now, Esc cancels,
|
|
35
|
+
* e loads it into the input to tweak.
|
|
36
|
+
* - **open** (no queued task) — "continue" is genuinely ambiguous here, so we
|
|
37
|
+
* do NOT auto-send. We show a ⚠ drift notice ("no pending task — I'll pick
|
|
38
|
+
* the next step from context") and wait for the user: Enter to trust the
|
|
39
|
+
* guess, e to type what to continue, Esc to cancel.
|
|
40
|
+
*
|
|
41
|
+
* Self-contained like EnhancePanel/ConfirmPrompt: owns its keys via `useInput`
|
|
42
|
+
* and (when grounded) its timer via a ref so the countdown never triggers a
|
|
43
|
+
* per-second re-render that would bleed blank rows into inline scrollback.
|
|
44
|
+
* `onDecision` is guarded by the caller so only the first decision wins.
|
|
45
|
+
*/
|
|
46
|
+
export declare function ContinueConfirmPanel({ label, instruction, source, grounded, delayMs, onDecision, }: ContinueConfirmPanelProps): React.ReactElement;
|
|
47
|
+
//# sourceMappingURL=continue-confirm-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"continue-confirm-panel.d.ts","sourceRoot":"","sources":["../../src/components/continue-confirm-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE5F;AAED,MAAM,WAAW,yBAAyB;IACxC,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC;IACvC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,UAAU,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAClD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,OAAO,EACP,UAAU,GACX,EAAE,yBAAyB,GAAG,KAAK,CAAC,YAAY,CAsFhD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { State } from '../app.js';
|
|
3
|
+
export interface CoordinatorPanelProps {
|
|
4
|
+
coordinator: State['coordinator'];
|
|
5
|
+
/** 1s clock tick so elapsed times stay live. */
|
|
6
|
+
nowTick: number;
|
|
7
|
+
/** Called when the user presses Esc or q to close the panel. */
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function CoordinatorPanel({ coordinator, nowTick, onClose, }: CoordinatorPanelProps): React.ReactElement;
|
|
11
|
+
//# sourceMappingURL=coordinator-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator-panel.d.ts","sourceRoot":"","sources":["../../src/components/coordinator-panel.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAClC,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAsED,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,OAAO,EACP,OAAO,GACR,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAyE5C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DesignKitEntry } from '@wrongstack/core';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
export interface DesignPickerProps {
|
|
4
|
+
kits: DesignKitEntry[];
|
|
5
|
+
selected: number;
|
|
6
|
+
stack: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Design Studio kit picker overlay (opened by `/design`). Presentational only —
|
|
10
|
+
* navigation/selection state lives in the reducer; Enter runs `/design <id>
|
|
11
|
+
* <stack>` through the normal submit path, which pins the kit + loads its spec.
|
|
12
|
+
*/
|
|
13
|
+
export declare function DesignPicker({ kits, selected, stack }: DesignPickerProps): React.ReactElement;
|
|
14
|
+
//# sourceMappingURL=design-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-picker.d.ts","sourceRoot":"","sources":["../../src/components/design-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAsB7F"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type EnhanceDecision = 'refined' | 'english' | 'original' | 'edit';
|
|
3
|
+
export interface EnhancePanelProps {
|
|
4
|
+
/** The user's original message. */
|
|
5
|
+
original: string;
|
|
6
|
+
/** Refined in the user's original language. */
|
|
7
|
+
refined: string;
|
|
8
|
+
/** Refined in English. */
|
|
9
|
+
english: string;
|
|
10
|
+
/** Auto-send countdown in milliseconds. */
|
|
11
|
+
delayMs: number;
|
|
12
|
+
/** Called once with the chosen action (by key press or countdown expiry). */
|
|
13
|
+
onDecision: (decision: EnhanceDecision) => void;
|
|
14
|
+
/**
|
|
15
|
+
* Called every second with the remaining seconds. Lets the statusline
|
|
16
|
+
* render the countdown without the panel's re-renders bleeding into the
|
|
17
|
+
* chat scrollback as blank entries.
|
|
18
|
+
*/
|
|
19
|
+
onTick?: ((remaining: number) => void) | undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Prompt-refinement preview ("did you mean this?"). Shows the refined request
|
|
23
|
+
* in both the user's language and English with a live countdown; auto-sends
|
|
24
|
+
* the original-language refined version when the countdown expires unless the
|
|
25
|
+
* user intervenes:
|
|
26
|
+
* Enter → send original-lang refined now
|
|
27
|
+
* e → send English refined
|
|
28
|
+
* Esc → use original
|
|
29
|
+
* t → edit the original-lang refined version
|
|
30
|
+
*
|
|
31
|
+
* Self-contained like ConfirmPrompt: owns its keys via `useInput` and its
|
|
32
|
+
* timer via `useEffect`. `onDecision` is guarded by the caller so only the
|
|
33
|
+
* first decision wins.
|
|
34
|
+
*/
|
|
35
|
+
export declare function EnhancePanel({ original, refined, english, delayMs, onDecision, onTick, }: EnhancePanelProps): React.ReactElement;
|
|
36
|
+
//# sourceMappingURL=enhance-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enhance-panel.d.ts","sourceRoot":"","sources":["../../src/components/enhance-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACpD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,EACP,UAAU,EACV,MAAM,GACP,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAiFxC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface EscConfirmPromptProps {
|
|
3
|
+
runningTools: string[];
|
|
4
|
+
subagentCount: number;
|
|
5
|
+
onConfirm: () => void;
|
|
6
|
+
onCancel: () => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Confirmation dialog shown when the user presses Esc mid-iteration and
|
|
10
|
+
* `confirmExit` is enabled. Prevents accidental interruption of a running
|
|
11
|
+
* agent — the agent keeps working until the user explicitly says yes.
|
|
12
|
+
*
|
|
13
|
+
* - y / Enter → confirm the interrupt
|
|
14
|
+
* - n / Esc → cancel, let the agent continue
|
|
15
|
+
*/
|
|
16
|
+
export declare function EscConfirmPrompt({ runningTools, subagentCount, onConfirm, onCancel, }: EscConfirmPromptProps): React.ReactElement;
|
|
17
|
+
//# sourceMappingURL=esc-confirm-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esc-confirm-prompt.d.ts","sourceRoot":"","sources":["../../src/components/esc-confirm-prompt.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,aAAa,EACb,SAAS,EACT,QAAQ,GACT,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAmD5C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export { F_KEY_PANEL_ENTRIES as F_KEY_ENTRIES } from '../f-key-panels.js';
|
|
3
|
+
export type { FKeyPanelEntry as FKeyEntry } from '../f-key-panels.js';
|
|
4
|
+
export interface FKeyPickerProps {
|
|
5
|
+
selected: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Keyboard-navigable F-key panel picker.
|
|
9
|
+
* Shown when the user types `/f` in the TUI.
|
|
10
|
+
* Arrow keys navigate, Enter opens the selected panel, Esc closes.
|
|
11
|
+
*/
|
|
12
|
+
export declare function FKeyPicker({ selected }: FKeyPickerProps): React.ReactElement;
|
|
13
|
+
//# sourceMappingURL=f-key-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"f-key-picker.d.ts","sourceRoot":"","sources":["../../src/components/f-key-picker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,mBAAmB,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAoC5E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface FilePickerProps {
|
|
3
|
+
query: string;
|
|
4
|
+
matches: string[];
|
|
5
|
+
selected: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function FilePicker({ query, matches, selected }: FilePickerProps): React.ReactElement;
|
|
8
|
+
//# sourceMappingURL=file-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-picker.d.ts","sourceRoot":"","sources":["../../src/components/file-picker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAmB5F"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { FleetEntry } from '../app.js';
|
|
3
|
+
export interface FleetMonitorProps {
|
|
4
|
+
entries: Record<string, FleetEntry>;
|
|
5
|
+
/** Fleet-wide accumulated cost. */
|
|
6
|
+
totalCost: number;
|
|
7
|
+
/** Fleet-wide token totals, when available. */
|
|
8
|
+
totalTokens?: {
|
|
9
|
+
input: number;
|
|
10
|
+
output: number;
|
|
11
|
+
};
|
|
12
|
+
/** Concurrency ceiling for the gauge. */
|
|
13
|
+
maxConcurrent?: number | undefined;
|
|
14
|
+
/** 1s clock tick so elapsed times + sparklines stay live. */
|
|
15
|
+
nowTick: number;
|
|
16
|
+
/** Active or completed collaborative debugging session. */
|
|
17
|
+
collabSession?: {
|
|
18
|
+
sessionId: string | null;
|
|
19
|
+
bugCount: number;
|
|
20
|
+
planCount: number;
|
|
21
|
+
evalCount: number;
|
|
22
|
+
overallVerdict: 'approve' | 'needs_revision' | 'reject' | null;
|
|
23
|
+
timeline: Array<{
|
|
24
|
+
at: number;
|
|
25
|
+
icon: string;
|
|
26
|
+
color: string;
|
|
27
|
+
text: string;
|
|
28
|
+
}>;
|
|
29
|
+
startedAt: number | null;
|
|
30
|
+
} | null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Bucket recent tool executions into a fixed number of time bins ending at
|
|
34
|
+
* `now`, returning a per-bin count. Drives the per-agent activity sparkline
|
|
35
|
+
* in the Agents (live) monitor; exported here because it was historically
|
|
36
|
+
* defined alongside the fleet monitor.
|
|
37
|
+
*/
|
|
38
|
+
export declare function bucketActivity(recentTools: ReadonlyArray<{
|
|
39
|
+
at: number;
|
|
40
|
+
}>, now: number, bins?: number, binMs?: number): number[];
|
|
41
|
+
/** Render a numeric series as a unicode sparkline. */
|
|
42
|
+
export declare function sparkline(values: number[]): string;
|
|
43
|
+
/**
|
|
44
|
+
* Compact `provider:model` label for the monitors. Strips any `provider/`
|
|
45
|
+
* prefix from the model id and keeps it terminal-friendly. Returns '' when
|
|
46
|
+
* neither is known (e.g. a leader entry before the first request resolves).
|
|
47
|
+
* Shared by the Agents (Ctrl+G) and Fleet (Ctrl+F) monitors.
|
|
48
|
+
*/
|
|
49
|
+
export declare function fmtModelLabel(provider?: string, model?: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Fleet orchestration dashboard (Ctrl+F). Concurrency gauge, fleet totals,
|
|
52
|
+
* a compact one-line-per-agent table, and a recent-events timeline. Live
|
|
53
|
+
* per-agent context (current tool / streaming tail) lives in the Agents
|
|
54
|
+
* monitor (Ctrl+G) — this view is for "how the fleet is doing overall".
|
|
55
|
+
*
|
|
56
|
+
* Prunes terminal agents older than TERMINAL_TTL_MS from the table and
|
|
57
|
+
* timeline to prevent unbounded growth in long-running sessions.
|
|
58
|
+
*/
|
|
59
|
+
export declare function FleetMonitor({ entries, totalCost, totalTokens, maxConcurrent, nowTick, collabSession, }: FleetMonitorProps): React.ReactElement;
|
|
60
|
+
//# sourceMappingURL=fleet-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-monitor.d.ts","sourceRoot":"","sources":["../../src/components/fleet-monitor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAQ5C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,aAAa,CAAC,EAAE;QACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,SAAS,GAAG,gBAAgB,GAAG,QAAQ,GAAG,IAAI,CAAC;QAC/D,QAAQ,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,GAAG,IAAI,CAAC;CACV;AAaD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC1C,GAAG,EAAE,MAAM,EACX,IAAI,SAAK,EACT,KAAK,SAAO,GACX,MAAM,EAAE,CAWV;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAUlD;AAaD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAQvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAiB,EACjB,OAAO,EACP,aAAa,GACd,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CA2MxC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { TodoItem } from '@wrongstack/core';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
import type { FleetEntry } from '../app.js';
|
|
4
|
+
export interface FleetPanelProps {
|
|
5
|
+
/** Per-subagent state, keyed by subagentId. */
|
|
6
|
+
entries: Record<string, FleetEntry>;
|
|
7
|
+
/** Fleet-wide accumulated cost (from FleetUsageAggregator). */
|
|
8
|
+
totalCost: number;
|
|
9
|
+
/** Optional roster for resolving role ids to display names. */
|
|
10
|
+
roster?: Record<string, {
|
|
11
|
+
name: string;
|
|
12
|
+
}> | undefined;
|
|
13
|
+
/** Live leader todo board, rendered as a compact preview below the swarm. */
|
|
14
|
+
todos?: readonly TodoItem[] | undefined;
|
|
15
|
+
/** 1s clock tick so activity meters and elapsed labels stay live. */
|
|
16
|
+
nowTick?: number | undefined;
|
|
17
|
+
/** When set, the LEADER row is always shown (even when idle) with a collab session indicator. */
|
|
18
|
+
collabSession?: {
|
|
19
|
+
sessionId: string | null;
|
|
20
|
+
bugCount: number;
|
|
21
|
+
planCount: number;
|
|
22
|
+
evalCount: number;
|
|
23
|
+
} | null;
|
|
24
|
+
}
|
|
25
|
+
type SwarmColor = 'blue' | 'cyan' | 'green' | 'gray' | 'red' | 'yellow';
|
|
26
|
+
export interface SwarmCell {
|
|
27
|
+
id: string;
|
|
28
|
+
index: string;
|
|
29
|
+
meter: string;
|
|
30
|
+
text: string;
|
|
31
|
+
color: SwarmColor;
|
|
32
|
+
dim?: boolean | undefined;
|
|
33
|
+
}
|
|
34
|
+
export interface SwarmGrid {
|
|
35
|
+
columns: number;
|
|
36
|
+
tileWidth: number;
|
|
37
|
+
overflow: number;
|
|
38
|
+
rows: SwarmCell[][];
|
|
39
|
+
}
|
|
40
|
+
export interface TodoPreviewRow {
|
|
41
|
+
id: string;
|
|
42
|
+
marker: string;
|
|
43
|
+
text: string;
|
|
44
|
+
color: SwarmColor;
|
|
45
|
+
dim?: boolean | undefined;
|
|
46
|
+
}
|
|
47
|
+
export declare function truncToWidth(text: string, width: number): string;
|
|
48
|
+
export declare function swarmMeter(entry: FleetEntry, now: number, width?: number): string;
|
|
49
|
+
export declare function swarmColumnCount(width: number): number;
|
|
50
|
+
export declare function selectSwarmEntries(entries: Record<string, FleetEntry>, _now: number, opts?: {
|
|
51
|
+
includeLeader?: boolean | undefined;
|
|
52
|
+
}): FleetEntry[];
|
|
53
|
+
export declare function buildSwarmGrid(entries: Record<string, FleetEntry>, now: number, width: number, opts?: {
|
|
54
|
+
includeLeader?: boolean | undefined;
|
|
55
|
+
maxRows?: number | undefined;
|
|
56
|
+
roster?: Record<string, {
|
|
57
|
+
name: string;
|
|
58
|
+
}> | undefined;
|
|
59
|
+
}): SwarmGrid;
|
|
60
|
+
export declare function buildTodoPreviewRows(todos: readonly TodoItem[] | undefined, width: number, maxRows?: number): TodoPreviewRow[];
|
|
61
|
+
/**
|
|
62
|
+
* Compact fleet summary rendered below the status bar when subagents are
|
|
63
|
+
* active. It is intentionally separate from the F2/F3 monitors: this is the
|
|
64
|
+
* always-visible "what is the fleet doing right now?" strip, while those
|
|
65
|
+
* panels remain the detailed drill-down surfaces.
|
|
66
|
+
*/
|
|
67
|
+
export declare function FleetPanel({ entries, totalCost, roster, todos, nowTick, collabSession, }: FleetPanelProps): React.ReactElement | null;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=fleet-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-panel.d.ts","sourceRoot":"","sources":["../../src/components/fleet-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { GoalSummary } from '../app-state.js';
|
|
3
|
+
export interface GoalPanelProps {
|
|
4
|
+
goal: GoalSummary;
|
|
5
|
+
/** Start the AutonomousCoordinator with the given goal text. */
|
|
6
|
+
onCoordinatorStart?: ((goal: string) => void) | undefined;
|
|
7
|
+
/** Stop the AutonomousCoordinator. */
|
|
8
|
+
onCoordinatorStop?: (() => void) | undefined;
|
|
9
|
+
/** Whether the coordinator is currently running. */
|
|
10
|
+
coordinatorRunning?: boolean | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Full-screen overlay showing the current goal, deliverables checklist,
|
|
14
|
+
* and progress bar. Opened with F9.
|
|
15
|
+
*/
|
|
16
|
+
export declare function GoalPanel({ goal, onCoordinatorStart, onCoordinatorStop, coordinatorRunning, }: GoalPanelProps): React.ReactElement;
|
|
17
|
+
//# sourceMappingURL=goal-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-panel.d.ts","sourceRoot":"","sources":["../../src/components/goal-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7C,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CAgJrC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface HelpEntry {
|
|
3
|
+
/** Key chord or command, e.g. `Ctrl+F` or `/model`. */
|
|
4
|
+
keys: string;
|
|
5
|
+
/** What it does. */
|
|
6
|
+
desc: string;
|
|
7
|
+
}
|
|
8
|
+
export interface HelpSection {
|
|
9
|
+
title: string;
|
|
10
|
+
entries: HelpEntry[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Static cheat-sheet content: keybindings + common slash commands, grouped by
|
|
14
|
+
* area. Pure data (no JSX) so the exact set of entries is unit-testable and the
|
|
15
|
+
* overlay renders identically everywhere.
|
|
16
|
+
*/
|
|
17
|
+
export declare function helpSections(): HelpSection[];
|
|
18
|
+
/**
|
|
19
|
+
* Full-width modal cheat-sheet overlay (opened with `?` on an empty prompt,
|
|
20
|
+
* closed with Esc / `?` / `q`). Mirrors the bordered-panel look of the monitor
|
|
21
|
+
* overlays so it sits naturally in the bottom region. Two columns: the key
|
|
22
|
+
* chord (accent) and its description (dim), with the key column padded to a
|
|
23
|
+
* shared width so descriptions align. The Tool Colors section uses two sub-columns
|
|
24
|
+
* so all legend entries fit without scrolling.
|
|
25
|
+
*/
|
|
26
|
+
export declare function HelpOverlay(): React.ReactElement;
|
|
27
|
+
//# sourceMappingURL=help-overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help-overlay.d.ts","sourceRoot":"","sources":["../../src/components/help-overlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,WAAW,EAAE,CA4H5C;AA4ED;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAAC,YAAY,CA+EhD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface HelpEntry {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
category: string;
|
|
6
|
+
aliases?: string[] | undefined;
|
|
7
|
+
argsHint?: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
export interface HelpPanelProps {
|
|
10
|
+
entries: HelpEntry[];
|
|
11
|
+
filter: string;
|
|
12
|
+
selected: number;
|
|
13
|
+
hint?: string | undefined;
|
|
14
|
+
}
|
|
15
|
+
export declare function HelpPanel({ entries, filter, selected, hint, }: HelpPanelProps): React.ReactElement;
|
|
16
|
+
//# sourceMappingURL=help-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help-panel.d.ts","sourceRoot":"","sources":["../../src/components/help-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAwDD,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,IAAI,GACL,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CAmGrC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { BodySegment } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Width of the left border glyph in a single-border panel. Used to adjust
|
|
5
|
+
* content width calculations where the border is a separate UI element.
|
|
6
|
+
*/
|
|
7
|
+
export declare const MESSAGE_PANEL_BORDER_WIDTH = 1;
|
|
8
|
+
/**
|
|
9
|
+
* Horizontal columns consumed by every bordered message panel
|
|
10
|
+
* (border glyph + paddingLeft). Exported so tests can assert consistency.
|
|
11
|
+
*/
|
|
12
|
+
export declare const MESSAGE_PANEL_CHROME_WIDTH = 2;
|
|
13
|
+
/**
|
|
14
|
+
* Margin on each side of bordered panels, in columns. Prevents the
|
|
15
|
+
* last character of a full-width line from wrapping at the terminal edge
|
|
16
|
+
* and leaking into scrollback. Content inside the panel is narrower by
|
|
17
|
+
* twice this value (left + right).
|
|
18
|
+
*/
|
|
19
|
+
export declare const MESSAGE_PANEL_MARGIN = 2;
|
|
20
|
+
/**
|
|
21
|
+
* Compute the real inner content width of an assistant panel.
|
|
22
|
+
* termWidth - chrome (border+padding) only — no margin since panels are now full-width.
|
|
23
|
+
*/
|
|
24
|
+
export declare function assistantContentWidth(termWidth: number): number;
|
|
25
|
+
/**
|
|
26
|
+
* Split assistant text into prose and ```fenced``` code segments, in order.
|
|
27
|
+
* Pure + testable. An unterminated fence treats the remainder as code.
|
|
28
|
+
*/
|
|
29
|
+
export declare function splitFencedBlocks(text: string): BodySegment[];
|
|
30
|
+
/**
|
|
31
|
+
* Assistant message body: prose (with markdown tables) interleaved with
|
|
32
|
+
* highlighted code blocks.
|
|
33
|
+
*/
|
|
34
|
+
export declare function AssistantBody({ text, termWidth, contentWidth, }: {
|
|
35
|
+
text: string;
|
|
36
|
+
termWidth: number;
|
|
37
|
+
/** Real inner width of the surrounding panel. Defaults to `termWidth`. */
|
|
38
|
+
contentWidth?: number | undefined;
|
|
39
|
+
}): React.ReactElement;
|
|
40
|
+
/**
|
|
41
|
+
* Build the CONSTANT-height row set for the live assistant tail: always exactly
|
|
42
|
+
* `tailLines` rows (newest pinned to the bottom, blank padding on top), each
|
|
43
|
+
* truncated to `contentWidth` so nothing wraps. Pure + exported for testing.
|
|
44
|
+
*/
|
|
45
|
+
export declare function assistantTailRows(text: string, tailLines: number, contentWidth: number): string[];
|
|
46
|
+
/**
|
|
47
|
+
* The live "ASSISTANT: (streaming...)" tail shown below committed history.
|
|
48
|
+
*
|
|
49
|
+
* Renders at a CONSTANT height (header + ASSISTANT_TAIL_LINES rows) with every
|
|
50
|
+
* line truncated to the terminal width so nothing wraps. A wrapping/growing
|
|
51
|
+
* tail pinned to the bottom of the screen forces the terminal to scroll on each
|
|
52
|
+
* delta, and in inline mode each scroll leaks the input prompt
|
|
53
|
+
* row into permanent scrollback. Holding the height fixed limits that to one
|
|
54
|
+
* scroll when streaming starts. Rows are bottom-aligned (blank padding on top)
|
|
55
|
+
* so the newest line stays pinned to the bottom.
|
|
56
|
+
*/
|
|
57
|
+
export declare function AssistantTail({ text, termWidth, }: {
|
|
58
|
+
text: string;
|
|
59
|
+
termWidth: number;
|
|
60
|
+
}): React.ReactElement;
|
|
61
|
+
//# sourceMappingURL=assistant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistant.d.ts","sourceRoot":"","sources":["../../../src/components/history/assistant.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAgC7D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,YAAY,GACb,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,GAAG,KAAK,CAAC,YAAY,CAmBrB;AAMD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,EAAE,CAQV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,SAAS,GACV,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CA4B1D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { HistoryEntry } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Startup splash. Renders into the Static area on mount and never
|
|
5
|
+
* re-renders, so it's safe to use rich layout without worrying about
|
|
6
|
+
* Ink's redraw cursor math.
|
|
7
|
+
*/
|
|
8
|
+
export declare function Banner({ entry, }: {
|
|
9
|
+
entry: Extract<HistoryEntry, {
|
|
10
|
+
kind: 'banner';
|
|
11
|
+
}>;
|
|
12
|
+
}): React.ReactElement;
|
|
13
|
+
//# sourceMappingURL=banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/components/history/banner.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,GACN,EAAE;IACD,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;CAClD,GAAG,KAAK,CAAC,YAAY,CA+CrB"}
|