@wrongstack/tui 0.287.0 → 0.291.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 +22 -3
- package/dist/app-initial-state.d.ts.map +1 -1
- package/dist/app-props.d.ts +622 -0
- package/dist/app-props.d.ts.map +1 -0
- package/dist/app-reducer.d.ts.map +1 -1
- package/dist/app-state.d.ts +74 -11
- package/dist/app-state.d.ts.map +1 -1
- package/dist/app.d.ts +4 -595
- package/dist/app.d.ts.map +1 -1
- package/dist/components/agents-monitor.d.ts.map +1 -1
- package/dist/components/animation-style.d.ts +29 -0
- package/dist/components/animation-style.d.ts.map +1 -1
- package/dist/components/auth-panel.d.ts.map +1 -1
- package/dist/components/clear-confirm-panel.d.ts +35 -0
- package/dist/components/clear-confirm-panel.d.ts.map +1 -0
- package/dist/components/confirm-prompt.d.ts +2 -1
- package/dist/components/confirm-prompt.d.ts.map +1 -1
- package/dist/components/enhance-panel.d.ts +11 -3
- package/dist/components/enhance-panel.d.ts.map +1 -1
- package/dist/components/exit-confirm-panel.d.ts +28 -0
- package/dist/components/exit-confirm-panel.d.ts.map +1 -0
- package/dist/components/fleet-panel.d.ts +1 -0
- package/dist/components/fleet-panel.d.ts.map +1 -1
- package/dist/components/history/banner.d.ts.map +1 -1
- package/dist/components/history/entry.d.ts +6 -1
- package/dist/components/history/entry.d.ts.map +1 -1
- package/dist/components/history/index.d.ts +2 -2
- package/dist/components/history/index.d.ts.map +1 -1
- package/dist/components/history/replay.d.ts +14 -38
- package/dist/components/history/replay.d.ts.map +1 -1
- package/dist/components/history/types.d.ts +19 -0
- package/dist/components/history/types.d.ts.map +1 -1
- package/dist/components/history.d.ts +1 -1
- package/dist/components/history.d.ts.map +1 -1
- package/dist/components/kanban-panel.d.ts +72 -1
- package/dist/components/kanban-panel.d.ts.map +1 -1
- package/dist/components/phase-panel.d.ts +1 -1
- package/dist/components/phase-panel.d.ts.map +1 -1
- package/dist/components/plugin-picker.d.ts.map +1 -1
- package/dist/components/powerline-rail.d.ts.map +1 -1
- package/dist/components/process-list.d.ts.map +1 -1
- package/dist/components/scrollable-history.d.ts +1 -1
- package/dist/components/scrollable-history.d.ts.map +1 -1
- package/dist/components/settings-picker.d.ts +6 -3
- package/dist/components/settings-picker.d.ts.map +1 -1
- package/dist/components/slash-confirm-panel.d.ts +14 -0
- package/dist/components/slash-confirm-panel.d.ts.map +1 -0
- package/dist/components/status-bar-chips.d.ts.map +1 -1
- package/dist/components/status-bar.d.ts +25 -22
- package/dist/components/status-bar.d.ts.map +1 -1
- package/dist/components/statusline-picker.d.ts +6 -4
- package/dist/components/statusline-picker.d.ts.map +1 -1
- package/dist/components/tools-picker.d.ts.map +1 -1
- package/dist/components/worktree-monitor.d.ts +1 -1
- package/dist/components/worktree-panel.d.ts +1 -1
- package/dist/esc-close-panels.d.ts +42 -0
- package/dist/esc-close-panels.d.ts.map +1 -0
- package/dist/exit-slash.d.ts +40 -0
- package/dist/exit-slash.d.ts.map +1 -0
- package/dist/f-key-panels.d.ts +16 -1
- package/dist/f-key-panels.d.ts.map +1 -1
- package/dist/heap-watchdog.d.ts.map +1 -1
- package/dist/height-cache.d.ts +5 -0
- package/dist/height-cache.d.ts.map +1 -1
- package/dist/history-retention.d.ts +20 -0
- package/dist/history-retention.d.ts.map +1 -0
- package/dist/hooks/use-auth-panel.d.ts +4 -0
- package/dist/hooks/use-auth-panel.d.ts.map +1 -1
- package/dist/hooks/use-director-fleet-bridge.d.ts +6 -5
- package/dist/hooks/use-director-fleet-bridge.d.ts.map +1 -1
- package/dist/hooks/use-exit-command.d.ts +55 -0
- package/dist/hooks/use-exit-command.d.ts.map +1 -0
- package/dist/hooks/use-fleet-generation-gate.d.ts +37 -0
- package/dist/hooks/use-fleet-generation-gate.d.ts.map +1 -0
- package/dist/hooks/use-live-todos.d.ts +4 -0
- package/dist/hooks/use-live-todos.d.ts.map +1 -0
- package/dist/hooks/use-session-interrupt-controller.d.ts +51 -0
- package/dist/hooks/use-session-interrupt-controller.d.ts.map +1 -0
- package/dist/hooks/use-subagent-events.d.ts +3 -4
- package/dist/hooks/use-subagent-events.d.ts.map +1 -1
- package/dist/hooks/use-tui-activity.d.ts +2 -1
- package/dist/hooks/use-tui-activity.d.ts.map +1 -1
- package/dist/hooks/use-tui-event-bridge.d.ts +10 -3
- package/dist/hooks/use-tui-event-bridge.d.ts.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20453 -18161
- package/dist/index.js.map +4 -4
- package/dist/kanban-audit.d.ts +116 -0
- package/dist/kanban-audit.d.ts.map +1 -0
- package/dist/kanban-slash.d.ts +178 -0
- package/dist/kanban-slash.d.ts.map +1 -0
- package/dist/reducers/helpers.d.ts +1 -1
- package/dist/reducers/helpers.d.ts.map +1 -1
- package/dist/run-tui.d.ts +28 -2
- package/dist/run-tui.d.ts.map +1 -1
- package/dist/slash-command-search.d.ts +5 -0
- package/dist/slash-command-search.d.ts.map +1 -1
- package/dist/submit-history.d.ts +9 -6
- package/dist/submit-history.d.ts.map +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -45,6 +45,35 @@ export declare function waveColor(charIndex: number, phase: number, length: numb
|
|
|
45
45
|
* Pure for testing.
|
|
46
46
|
*/
|
|
47
47
|
export declare function pulseColor(phase: number): string;
|
|
48
|
+
/**
|
|
49
|
+
* Compute the hue (in degrees, 0-360) for glyph `charIndex` at animation
|
|
50
|
+
* `phase`.
|
|
51
|
+
*
|
|
52
|
+
* The hue follows a sinusoidal curve: `base + amp * sin(2π * f)`, where
|
|
53
|
+
* `f` combines spatial position and temporal phase into a single phase
|
|
54
|
+
* argument. This produces a smooth traveling wave — the bright band glides
|
|
55
|
+
* across the text, and adjacent glyphs always differ by a small hue delta
|
|
56
|
+
* (never a snap).
|
|
57
|
+
*
|
|
58
|
+
* Pure for testing.
|
|
59
|
+
*/
|
|
60
|
+
export declare function rainbowHue(charIndex: number, phase: number): number;
|
|
61
|
+
/**
|
|
62
|
+
* Convert HSL (degrees, 0-1, 0-1) to a `#rrggbb` hex string.
|
|
63
|
+
* Algorithm: standard HSL→RGB conversion with the 0/120/240 sector trick.
|
|
64
|
+
*
|
|
65
|
+
* Pure for testing.
|
|
66
|
+
*/
|
|
67
|
+
export declare function hslToHex(h: number, s: number, l: number): string;
|
|
68
|
+
/**
|
|
69
|
+
* Pick a smooth-rainbow color for glyph `charIndex` at animation `phase`
|
|
70
|
+
* for a text of length `textLen`. This is the refined replacement for the
|
|
71
|
+
* old `HUE_WHEEL[(i + phase) % 12]` lookup — it computes hue via
|
|
72
|
+
* {@link rainbowHue} and converts to hex via {@link hslToHex}.
|
|
73
|
+
*
|
|
74
|
+
* Pure for testing.
|
|
75
|
+
*/
|
|
76
|
+
export declare function rainbowColor(charIndex: number, phase: number): string;
|
|
48
77
|
/** Strip trailing `.`, `…`, etc. so the `dots` style doesn't double up on
|
|
49
78
|
* the user-supplied label. */
|
|
50
79
|
export declare function stripTrailingDots(text: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animation-style.d.ts","sourceRoot":"","sources":["../../src/components/animation-style.tsx"],"names":[],"mappings":"AAwBA,eAAO,MAAM,SAAS,UAarB,CAAC;AAWF,eAAO,MAAM,cAAc,UAAqD,CAAC;AAOjF,eAAO,MAAM,WAAW,UAAoC,CAAC;AAE7D,eAAO,MAAM,gBAAgB,YAAI,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AACzF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,eAAO,MAAM,uBAAuB,EAAE,cAA0B,CAAC;AAEjE,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAMhE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,EAAyC,CAAC;AAE3F;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAI9D;AAED,qDAAqD;AACrD,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAS9D;AAWD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;+BAC+B;AAC/B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWtD"}
|
|
1
|
+
{"version":3,"file":"animation-style.d.ts","sourceRoot":"","sources":["../../src/components/animation-style.tsx"],"names":[],"mappings":"AAwBA,eAAO,MAAM,SAAS,UAarB,CAAC;AAWF,eAAO,MAAM,cAAc,UAAqD,CAAC;AAOjF,eAAO,MAAM,WAAW,UAAoC,CAAC;AAE7D,eAAO,MAAM,gBAAgB,YAAI,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AACzF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,eAAO,MAAM,uBAAuB,EAAE,cAA0B,CAAC;AAEjE,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAMhE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,EAAyC,CAAC;AAE3F;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAI9D;AAED,qDAAqD;AACrD,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAS9D;AAWD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhD;AAoCD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,MAAM,CAWR;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBhE;AAWD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,MAAM,CAGR;AAED;+BAC+B;AAC/B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-panel.d.ts","sourceRoot":"","sources":["../../src/components/auth-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,uBAAuB,CAAC;AAU/B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"auth-panel.d.ts","sourceRoot":"","sources":["../../src/components/auth-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,uBAAuB,CAAC;AAU/B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAC;CACvB;AAqJD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIvD;AAsCD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CA+KvE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface ClearConfirmPanelProps {
|
|
3
|
+
leaderActive: boolean;
|
|
4
|
+
subagentCount: number;
|
|
5
|
+
value: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ClearConfirmationKey {
|
|
8
|
+
escape?: boolean | undefined;
|
|
9
|
+
return?: boolean | undefined;
|
|
10
|
+
backspace?: boolean | undefined;
|
|
11
|
+
delete?: boolean | undefined;
|
|
12
|
+
ctrl?: boolean | undefined;
|
|
13
|
+
meta?: boolean | undefined;
|
|
14
|
+
}
|
|
15
|
+
export type ClearConfirmationKeyResult = {
|
|
16
|
+
decision: true | false;
|
|
17
|
+
value: string;
|
|
18
|
+
} | {
|
|
19
|
+
decision: null;
|
|
20
|
+
value: string;
|
|
21
|
+
};
|
|
22
|
+
/** Exact token accepted by the destructive clear confirmation. */
|
|
23
|
+
export declare function isClearConfirmation(value: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Deterministic keyboard state machine shared by the App input router and
|
|
26
|
+
* regression tests. An invalid Enter is deliberately a no-op: the panel stays
|
|
27
|
+
* open and keeps the typed value visible.
|
|
28
|
+
*/
|
|
29
|
+
export declare function clearConfirmationKeyResult(value: string, input: string, key: ClearConfirmationKey): ClearConfirmationKeyResult;
|
|
30
|
+
/**
|
|
31
|
+
* Modal confirmation for `/clear` while work is active. The typed value is
|
|
32
|
+
* rendered inside the panel so keystrokes can never appear to disappear.
|
|
33
|
+
*/
|
|
34
|
+
export declare function ClearConfirmPanel({ leaderActive, subagentCount, value, }: ClearConfirmPanelProps): React.ReactElement;
|
|
35
|
+
//# sourceMappingURL=clear-confirm-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear-confirm-panel.d.ts","sourceRoot":"","sources":["../../src/components/clear-confirm-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,MAAM,0BAA0B,GAClC;IAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,oBAAoB,GACxB,0BAA0B,CAY5B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,YAAY,EACZ,aAAa,EACb,KAAK,GACN,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAwC7C"}
|
|
@@ -9,6 +9,7 @@ export interface ConfirmPromptProps {
|
|
|
9
9
|
onEnableYolo: () => void;
|
|
10
10
|
/** Whether this call was classified destructive. */
|
|
11
11
|
destructive?: boolean;
|
|
12
|
+
boundaryReason?: string | undefined;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* 0-based column spans of each button WITHIN the dialog's content area (i.e.
|
|
@@ -22,5 +23,5 @@ export declare function confirmButtonSegments(suggestedPattern: string): Array<{
|
|
|
22
23
|
start: number;
|
|
23
24
|
len: number;
|
|
24
25
|
}>;
|
|
25
|
-
export declare function ConfirmPrompt({ toolName, input, suggestedPattern, onDecision, onEnableYolo, destructive, }: ConfirmPromptProps): React.ReactElement;
|
|
26
|
+
export declare function ConfirmPrompt({ toolName, input, suggestedPattern, onDecision, onEnableYolo, destructive, boundaryReason, }: ConfirmPromptProps): React.ReactElement;
|
|
26
27
|
//# sourceMappingURL=confirm-prompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm-prompt.d.ts","sourceRoot":"","sources":["../../src/components/confirm-prompt.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,+DAA+D;IAC/D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"confirm-prompt.d.ts","sourceRoot":"","sources":["../../src/components/confirm-prompt.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,+DAA+D;IAC/D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AA6BD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,MAAM,GACvB,KAAK,CAAC;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CASlE;AA8ED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAc,GACf,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAqFzC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
export type EnhanceDecision = 'refined' | 'english' | 'original' | 'edit' | 'cancel';
|
|
2
|
+
export type EnhanceDecision = 'refined' | 'english' | 'original' | 'edit' | 'retry' | 'cancel';
|
|
3
3
|
export interface RefiningPanelProps {
|
|
4
4
|
/** Prompt currently being rewritten. */
|
|
5
5
|
original: string;
|
|
@@ -7,6 +7,10 @@ export interface RefiningPanelProps {
|
|
|
7
7
|
elapsedMs: number;
|
|
8
8
|
/** Small animation frame; visual only and never presented as progress. */
|
|
9
9
|
pulseFrame?: number | undefined;
|
|
10
|
+
/** Provider id of the model running the refinement (e.g. "openai"). */
|
|
11
|
+
providerId?: string | undefined;
|
|
12
|
+
/** Model name running the refinement (e.g. "gpt-4o"). */
|
|
13
|
+
model?: string | undefined;
|
|
10
14
|
}
|
|
11
15
|
export interface EnhancePanelProps {
|
|
12
16
|
/** The user's original message. */
|
|
@@ -32,6 +36,10 @@ export interface EnhancePanelProps {
|
|
|
32
36
|
* changing countdown so this comparison panel stays visually stable.
|
|
33
37
|
*/
|
|
34
38
|
onTick?: ((remaining: number) => void) | undefined;
|
|
39
|
+
/** Provider id of the model that produced the refinement (e.g. "openai"). */
|
|
40
|
+
providerId?: string | undefined;
|
|
41
|
+
/** Model name that produced the refinement (e.g. "gpt-4o"). */
|
|
42
|
+
model?: string | undefined;
|
|
35
43
|
}
|
|
36
44
|
export declare function formatRefinementDuration(ms: number): string;
|
|
37
45
|
/** A scanning activity pulse. It deliberately does not imply completion %. */
|
|
@@ -42,12 +50,12 @@ export declare function refinementPulse(frame: number, width?: number): string;
|
|
|
42
50
|
*/
|
|
43
51
|
export declare function wrapRefinementPreview(text: string, width: number, maxLines: number): string[];
|
|
44
52
|
/** Live refiner call state: stable height, real elapsed time, cancellable. */
|
|
45
|
-
export declare function RefiningPanel({ original, elapsedMs, pulseFrame, }: RefiningPanelProps): React.ReactElement;
|
|
53
|
+
export declare function RefiningPanel({ original, elapsedMs, pulseFrame, providerId, model, }: RefiningPanelProps): React.ReactElement;
|
|
46
54
|
/**
|
|
47
55
|
* Completed prompt-refinement comparison. The original and recommended
|
|
48
56
|
* versions sit side-by-side on wide terminals and stack on narrow ones. The
|
|
49
57
|
* countdown remains in the statusline, keeping this panel stable in inline
|
|
50
58
|
* mode while still making auto-send behavior explicit.
|
|
51
59
|
*/
|
|
52
|
-
export declare function EnhancePanel({ original, refined, english, durationMs, delayMs, enhanceLanguage, onDecision, onTick, }: EnhancePanelProps): React.ReactElement;
|
|
60
|
+
export declare function EnhancePanel({ original, refined, english, durationMs, delayMs, enhanceLanguage, onDecision, onTick, providerId, model, }: EnhancePanelProps): React.ReactElement;
|
|
53
61
|
//# sourceMappingURL=enhance-panel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhance-panel.d.ts","sourceRoot":"","sources":["../../src/components/enhance-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"enhance-panel.d.ts","sourceRoot":"","sources":["../../src/components/enhance-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/F,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,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,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,eAAe,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACrD,6EAA6E;IAC7E,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACnD,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAMD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,CAQjE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB7F;AAyED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,UAAc,EACd,UAAU,EACV,KAAK,GACN,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAwDzC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAO,EACP,OAAO,EACP,UAAc,EACd,OAAO,EACP,eAA4B,EAC5B,UAAU,EACV,MAAM,EACN,UAAU,EACV,KAAK,GACN,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CA2JxC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
export interface ExitConfirmPanelProps {
|
|
3
|
+
leaderActive: boolean;
|
|
4
|
+
subagentCount: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ExitConfirmationKey {
|
|
7
|
+
escape?: boolean | undefined;
|
|
8
|
+
return?: boolean | undefined;
|
|
9
|
+
}
|
|
10
|
+
export type ExitConfirmationDecision = true | false | null;
|
|
11
|
+
/**
|
|
12
|
+
* Deterministic keyboard state machine shared by the App input router and
|
|
13
|
+
* regression tests. Returning `null` means "keep waiting" — the panel
|
|
14
|
+
* stays open with no decision committed yet.
|
|
15
|
+
*
|
|
16
|
+
* `/exit` requires an explicit acknowledgement while any work is in flight,
|
|
17
|
+
* so any printable key is ignored. Pressing Enter confirms, pressing Esc
|
|
18
|
+
* cancels. This mirrors the `/clear` invariant: never tear down in-flight
|
|
19
|
+
* work without an affirmative keystroke.
|
|
20
|
+
*/
|
|
21
|
+
export declare function exitConfirmationDecision(input: string, key: ExitConfirmationKey): ExitConfirmationDecision;
|
|
22
|
+
/**
|
|
23
|
+
* Modal confirmation for `/exit` while work is active. The panel makes the
|
|
24
|
+
* active fleet obvious so the user understands what `/exit` would tear down
|
|
25
|
+
* before they press Enter.
|
|
26
|
+
*/
|
|
27
|
+
export declare function ExitConfirmPanel({ leaderActive, subagentCount, }: ExitConfirmPanelProps): React.ReactElement;
|
|
28
|
+
//# sourceMappingURL=exit-confirm-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-confirm-panel.d.ts","sourceRoot":"","sources":["../../src/components/exit-confirm-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,mBAAmB,GACvB,wBAAwB,CAM1B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,aAAa,GACd,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CA4B5C"}
|
|
@@ -50,6 +50,7 @@ export interface TodoPreviewRow {
|
|
|
50
50
|
dim?: boolean | undefined;
|
|
51
51
|
}
|
|
52
52
|
export declare function truncToWidth(text: string, width: number): string;
|
|
53
|
+
export declare function activityText(entry: FleetEntry, now: number): string;
|
|
53
54
|
export declare function swarmMeter(entry: FleetEntry, now: number, width?: number): string;
|
|
54
55
|
export declare function swarmColumnCount(width: number): number;
|
|
55
56
|
export declare function selectSwarmEntries(entries: Record<string, FleetEntry>, _now: number, opts?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet-panel.d.ts","sourceRoot":"","sources":["../../src/components/fleet-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACtD,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,CAAC;IACxC,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,oEAAoE;IACpE,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;KACnB,GAAG,IAAI,CAAC;CACV;AAED,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAqDD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhE;
|
|
1
|
+
{"version":3,"file":"fleet-panel.d.ts","sourceRoot":"","sources":["../../src/components/fleet-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/components/history/banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/components/history/banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoE/C,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG5E;AA+JD,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,SAA8B,GAC/B,EAAE;IACD,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,KAAK,CAAC,YAAY,CAwGrB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type TodoItem } from '@wrongstack/core';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { HistoryEntry } from './types.js';
|
|
4
|
-
export declare const Entry: React.MemoExoticComponent<({ entry, termWidth, setSuggestions, autonomyMode, multiDiffSummaryThreshold, todos, }: {
|
|
4
|
+
export declare const Entry: React.MemoExoticComponent<({ entry, termWidth, setSuggestions, autonomyMode, multiDiffSummaryThreshold, todos, showModelReasoning, }: {
|
|
5
5
|
entry: HistoryEntry;
|
|
6
6
|
termWidth: number;
|
|
7
7
|
/** Store parsed next steps in the shared suggestion store so /next 1 works. */
|
|
@@ -15,5 +15,10 @@ export declare const Entry: React.MemoExoticComponent<({ entry, termWidth, setSu
|
|
|
15
15
|
* panel is hidden and the store is not written — same rule as the host
|
|
16
16
|
* callback (b0970387), so the two paths agree. */
|
|
17
17
|
todos?: readonly TodoItem[] | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Show the "Model Reasoning" blocks in chat history. When false,
|
|
20
|
+
* `kind: 'thinking'` entries render as an empty fragment. Default: true.
|
|
21
|
+
*/
|
|
22
|
+
showModelReasoning?: boolean | undefined;
|
|
18
23
|
}) => React.ReactElement>;
|
|
19
24
|
//# sourceMappingURL=entry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../../src/components/history/entry.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAA6B,MAAM,OAAO,CAAC;AAgBlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkD/C,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../../src/components/history/entry.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAA6B,MAAM,OAAO,CAAC;AAgBlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkD/C,eAAO,MAAM,KAAK,wIAQf;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzD,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;gFAC4E;IAC5E,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C;;uDAEmD;IACnD,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,CAAC;IACxC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C,KAAG,KAAK,CAAC,YAAY,CAukBpB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import type { HistoryProps } from './types.js';
|
|
3
|
-
export type { HistoryEntry, HistoryProps } from './types.js';
|
|
3
|
+
export type { AutonomyAgentStatus, HistoryEntry, HistoryProps } from './types.js';
|
|
4
4
|
export type { BodySegment } from './types.js';
|
|
5
5
|
export { Banner } from './banner.js';
|
|
6
6
|
export { CodeBlock, DiffBlock, DiffFileBlock, type DiffFilePreview, type DiffLineKind, type DiffLineRow, type DiffPreview, type MultiDiffSummary, MULTI_DIFF_SUMMARY_THRESHOLD, extractDiffPreview, extractMultiFileDiffs, extractReplaceDiffs, formatDiffStats, formatMultiDiffSummary, parseUnifiedDiff, summarizeMultiFileDiffs, } from './code-block.js';
|
|
@@ -17,5 +17,5 @@ export { shortenPath, previewArgs, previewOutput, fmtTok, fmtDuration, fmtBytes,
|
|
|
17
17
|
* primitives or stable reducer references, so default shallow
|
|
18
18
|
* comparison is sufficient.
|
|
19
19
|
*/
|
|
20
|
-
export declare const History: React.MemoExoticComponent<({ entries, generation, streamingText, toolStream, setSuggestions, autonomyMode, multiDiffSummaryThreshold, todos }: HistoryProps) => React.ReactElement>;
|
|
20
|
+
export declare const History: React.MemoExoticComponent<({ entries, generation, streamingText, toolStream, setSuggestions, autonomyMode, multiDiffSummaryThreshold, todos, showModelReasoning }: HistoryProps) => React.ReactElement>;
|
|
21
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/history/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/history/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAClF,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzM,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,MAAM,EACN,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,eAAe,EACf,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,cAAc,GACf,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,qKAAiK,YAAY,KAAG,KAAK,CAAC,YAAY,CAsFpN,CAAC"}
|
|
@@ -1,44 +1,20 @@
|
|
|
1
|
-
import type { SessionEvent } from '@wrongstack/core';
|
|
1
|
+
import type { Message, SessionEvent } from '@wrongstack/core';
|
|
2
2
|
import type { HistoryEntry } from './types.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Canonical session-resume renderer. Rebuilds the visible TUI history for a
|
|
5
|
+
* resumed session from the reconstructed `messages` (the conversation
|
|
6
|
+
* backbone — user/assistant/system text, thinking blocks, and tool calls with
|
|
7
|
+
* their input + output) and interleaves the audit `events` marker stream
|
|
8
|
+
* (mode/compaction/checkpoint/skill/agent/error/retry/truncation) at their
|
|
9
|
+
* chronological positions.
|
|
6
10
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* | `tool_use` + `tool_result` | `tool` (paired) |
|
|
14
|
-
* | `tool_call_start`/`tool_call_end` | `tool` |
|
|
15
|
-
* | `compaction` | `info` |
|
|
16
|
-
* | `error` | `error` |
|
|
17
|
-
* | `provider_retry` | `warn` |
|
|
18
|
-
* | `provider_error` | `error` |
|
|
19
|
-
* | `checkpoint` | `info` |
|
|
20
|
-
* | `agent_spawned`/`agent_stopped` | `subagent` |
|
|
21
|
-
* | `agent_error` | `subagent` |
|
|
22
|
-
* | `mode_changed` | `info` |
|
|
23
|
-
* | `skill_activated`/`skill_deactivated` | `info` |
|
|
24
|
-
* | `message_truncated` | `warn` |
|
|
25
|
-
*
|
|
26
|
-
* ## Non-resumable events (subagent transcripts)
|
|
27
|
-
*
|
|
28
|
-
* Subagent events (`agent_spawned`, `agent_stopped`, `agent_error`) are
|
|
29
|
-
* rendered as `subagent` entries in the main TUI history but the full
|
|
30
|
-
* subagent tool-call details live in per-subagent JSONL files. The main
|
|
31
|
-
* session only holds the lifecycle markers.
|
|
32
|
-
*
|
|
33
|
-
* ## Compaction events
|
|
34
|
-
*
|
|
35
|
-
* Compaction boundaries are rendered as `info` entries showing how many
|
|
36
|
-
* tokens were collapsed. This keeps the display neat without pretending
|
|
37
|
-
* the full verbose context never existed.
|
|
38
|
-
*
|
|
39
|
-
* @param events Parsed SessionEvent[] from session JSONL
|
|
40
|
-
* @param startId Starting id counter for the generated entries
|
|
41
|
-
* @returns Ordered HistoryEntry[] ready for display
|
|
11
|
+
* Ordering is a two-pointer merge of two already-chronological sequences
|
|
12
|
+
* (message backbone by construction, marker events by JSONL order) so the
|
|
13
|
+
* conversation is never reordered — markers are only inserted between existing
|
|
14
|
+
* turns. This is the single renderer used by BOTH the boot `--resume` path and
|
|
15
|
+
* the in-session resume picker, replacing the previous message-only and
|
|
16
|
+
* meta-only tool-chip variants.
|
|
42
17
|
*/
|
|
18
|
+
export declare function replaySessionMessages(messages: readonly Message[], events: readonly SessionEvent[], startId: number): HistoryEntry[];
|
|
43
19
|
export declare function replaySessionEvents(events: SessionEvent[], startId: number): HistoryEntry[];
|
|
44
20
|
//# sourceMappingURL=replay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../src/components/history/replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../src/components/history/replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAsE/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,OAAO,EAAE,MAAM,GACd,YAAY,EAAE,CAyHhB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAoC3F"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { TodoItem } from '@wrongstack/core';
|
|
2
2
|
import type { Lang } from '../../highlight.js';
|
|
3
|
+
export interface AutonomyAgentStatus {
|
|
4
|
+
/** Short display name (e.g. "Brain", "Shadow", "Kanban", "Mailbox", "Memory"). */
|
|
5
|
+
name: string;
|
|
6
|
+
/** Whether this agent is currently alive and reporting. */
|
|
7
|
+
online: boolean;
|
|
8
|
+
/** Optional detail line (risk level, interval, model, etc.). */
|
|
9
|
+
detail?: string | undefined;
|
|
10
|
+
}
|
|
3
11
|
export type HistoryEntry = {
|
|
4
12
|
id: number;
|
|
5
13
|
kind: 'user';
|
|
@@ -75,6 +83,12 @@ export type HistoryEntry = {
|
|
|
75
83
|
cwd: string;
|
|
76
84
|
family?: string | undefined;
|
|
77
85
|
keyTail?: string | undefined;
|
|
86
|
+
/** Current session id (e.g. "sess_01KXV6…"). Static per session lifetime,
|
|
87
|
+
* used for /resume, bug reports, and mailbox coordination. */
|
|
88
|
+
sessionId?: string | undefined;
|
|
89
|
+
/** Background autonomy agents currently online/active (Brain, Shadow,
|
|
90
|
+
* Kanban, Mailbox, Memory, etc.). Rendered below the footer links. */
|
|
91
|
+
autonomyAgents?: ReadonlyArray<AutonomyAgentStatus> | undefined;
|
|
78
92
|
} | {
|
|
79
93
|
id: number;
|
|
80
94
|
kind: 'confirm';
|
|
@@ -137,6 +151,11 @@ export interface HistoryProps {
|
|
|
137
151
|
* whether suggestions are available.
|
|
138
152
|
*/
|
|
139
153
|
todos?: readonly TodoItem[] | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* Show the "Model Reasoning" blocks in chat history. When false,
|
|
156
|
+
* `kind: 'thinking'` entries are hidden. Default: true.
|
|
157
|
+
*/
|
|
158
|
+
showModelReasoning?: boolean | undefined;
|
|
140
159
|
}
|
|
141
160
|
export interface BodySegment {
|
|
142
161
|
type: 'prose' | 'code';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/history/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/history/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { History, type HistoryEntry, type HistoryProps, type BodySegment, type DiffFilePreview, type DiffLineKind, type DiffLineRow, type DiffPreview, type MultiDiffSummary, MULTI_DIFF_SUMMARY_THRESHOLD, Banner, CodeBlock, DiffBlock, DiffFileBlock, Entry, MESSAGE_PANEL_BORDER_WIDTH, MESSAGE_PANEL_CHROME_WIDTH, MESSAGE_PANEL_MARGIN, AssistantBody, AssistantTail, splitFencedBlocks, extractDiffPreview, extractMultiFileDiffs, extractReplaceDiffs, formatMultiDiffSummary, parseUnifiedDiff, shortenPath, previewArgs, previewOutput, summarizeMultiFileDiffs, fmtTok, fmtDuration, fmtBytes, truncMid, stringOf, numOf, tryParseJson, scanNumberedRange, countLines, firstNonEmpty, formatMatchHit, formatToolArgs, formatToolOutput, formatToolVisualOutput, type ToolVisualLine, type ToolVisualLineKind, ToolOutputLines, ToolStreamBox, streamBoxRows, assistantTailRows, MAX_STREAM_DISPLAY_CHARS, tailForDisplay, assistantContentWidth } from './history/index.js';
|
|
1
|
+
export { History, type AutonomyAgentStatus, type HistoryEntry, type HistoryProps, type BodySegment, type DiffFilePreview, type DiffLineKind, type DiffLineRow, type DiffPreview, type MultiDiffSummary, MULTI_DIFF_SUMMARY_THRESHOLD, Banner, CodeBlock, DiffBlock, DiffFileBlock, Entry, MESSAGE_PANEL_BORDER_WIDTH, MESSAGE_PANEL_CHROME_WIDTH, MESSAGE_PANEL_MARGIN, AssistantBody, AssistantTail, splitFencedBlocks, extractDiffPreview, extractMultiFileDiffs, extractReplaceDiffs, formatMultiDiffSummary, parseUnifiedDiff, shortenPath, previewArgs, previewOutput, summarizeMultiFileDiffs, fmtTok, fmtDuration, fmtBytes, truncMid, stringOf, numOf, tryParseJson, scanNumberedRange, countLines, firstNonEmpty, formatMatchHit, formatToolArgs, formatToolOutput, formatToolVisualOutput, type ToolVisualLine, type ToolVisualLineKind, ToolOutputLines, ToolStreamBox, streamBoxRows, assistantTailRows, MAX_STREAM_DISPLAY_CHARS, tailForDisplay, assistantContentWidth } from './history/index.js';
|
|
2
2
|
//# sourceMappingURL=history.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/components/history.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/components/history.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,10 +1,81 @@
|
|
|
1
1
|
import type { Context } from '@wrongstack/core';
|
|
2
|
+
import { type KanbanBoard, type KanbanLifecycleStage, type KanbanTask } from '@wrongstack/kanban';
|
|
2
3
|
import type React from 'react';
|
|
4
|
+
import { type KanbanAuditSummary } from '../kanban-audit.js';
|
|
3
5
|
export interface KanbanPanelProps {
|
|
4
6
|
projectRoot: string;
|
|
5
7
|
sessionId?: string | null | undefined;
|
|
6
8
|
sessionContext?: Context | undefined;
|
|
7
9
|
onClose: () => void;
|
|
10
|
+
/**
|
|
11
|
+
* Host terminal width in columns. Used to choose how many columns the
|
|
12
|
+
* board view shows side-by-side. Defaults to a comfortable 100-col layout.
|
|
13
|
+
*/
|
|
14
|
+
terminalWidth?: number | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* When the panel opens, the board whose id matches this prefix is
|
|
17
|
+
* auto-selected. Wired by the App via the `onBoardFocus` ref so
|
|
18
|
+
* `/kanban use <boardId>` and the Goal → Kanban bridge land on the
|
|
19
|
+
* right board without manual `n`/`p` navigation.
|
|
20
|
+
*/
|
|
21
|
+
initialBoardId?: string | undefined;
|
|
8
22
|
}
|
|
9
|
-
export declare function KanbanPanel({ projectRoot, sessionId, sessionContext, onClose, }: KanbanPanelProps): React.ReactElement;
|
|
23
|
+
export declare function KanbanPanel({ projectRoot, sessionId, sessionContext, onClose, terminalWidth, initialBoardId, }: KanbanPanelProps): React.ReactElement;
|
|
24
|
+
/**
|
|
25
|
+
* Pure, deterministic layout math for the kanban board's column view.
|
|
26
|
+
*
|
|
27
|
+
* Reserves horizontal space for the chrome that surrounds the columns
|
|
28
|
+
* (board list panel + task detail panel + gaps + outer border), then
|
|
29
|
+
* picks the largest column count that still keeps every column at least
|
|
30
|
+
* `minColumnWidth` cols wide, and finally shrinks each column's width to
|
|
31
|
+
* match the available budget (never below `minColumnWidth`).
|
|
32
|
+
*
|
|
33
|
+
* Exported so Sprint 2's regression tests can pin the math down without
|
|
34
|
+
* mounting Ink.
|
|
35
|
+
*/
|
|
36
|
+
export declare function computeBoardColumnLayout(totalColumns: number, terminalWidth: number): {
|
|
37
|
+
visibleColumnCount: number;
|
|
38
|
+
columnWidth: number;
|
|
39
|
+
overflow: number;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Look up the lifecycle stage that owns the given column under a managed
|
|
43
|
+
* Kanban Agent board. Returns null when the board is not managed, or when
|
|
44
|
+
* the column is not mapped to any of the five canonical stages (treated
|
|
45
|
+
* as a legacy/custom column by the renderer).
|
|
46
|
+
*/
|
|
47
|
+
export declare function stageForColumn(board: Pick<KanbanBoard, 'lifecycle'>, columnId: string): KanbanLifecycleStage | null;
|
|
48
|
+
/**
|
|
49
|
+
* Map a lifecycle stage to the visual indicator shown in the column
|
|
50
|
+
* header. Mirrors the WebUI palette so the same board reads the same in
|
|
51
|
+
* either surface.
|
|
52
|
+
*/
|
|
53
|
+
export declare function stageToIndicator(stage: KanbanLifecycleStage): {
|
|
54
|
+
glyph: string;
|
|
55
|
+
color: string;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Pure success-criteria summary string. Returns null when there are no
|
|
59
|
+
* checks. Format: "Criteria N/M passed".
|
|
60
|
+
*/
|
|
61
|
+
export declare function summarizeSuccessCriteria(task: KanbanTask): string | null;
|
|
62
|
+
/**
|
|
63
|
+
* Pure goal-metrics rollup string. Returns null when there are no metrics.
|
|
64
|
+
* Format: "Metrics 2 met · 1 missed · 0 waived · 0 pending" (zero counts
|
|
65
|
+
* are skipped to keep the line short).
|
|
66
|
+
*/
|
|
67
|
+
export declare function summarizeGoalMetrics(task: KanbanTask): string | null;
|
|
68
|
+
/**
|
|
69
|
+
* Inline Kanban Cleaner summary — mirrors the WebUI's `KanbanCleanerAlert`
|
|
70
|
+
* but pinned to the project root. Shows the headline counts at the top
|
|
71
|
+
* of the panel and the top-3 issues, scoped per board so users see what
|
|
72
|
+
* the Cleaner would flag without leaving the TUI.
|
|
73
|
+
*
|
|
74
|
+
* The component renders nothing when the audit is empty so a clean
|
|
75
|
+
* board doesn't add visual noise.
|
|
76
|
+
*/
|
|
77
|
+
export declare function AuditAlert({ summary, topN, }: {
|
|
78
|
+
summary: KanbanAuditSummary;
|
|
79
|
+
topN?: number | undefined;
|
|
80
|
+
}): React.ReactElement | null;
|
|
10
81
|
//# sourceMappingURL=kanban-panel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kanban-panel.d.ts","sourceRoot":"","sources":["../../src/components/kanban-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"kanban-panel.d.ts","sourceRoot":"","sources":["../../src/components/kanban-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAOL,KAAK,WAAW,EAEhB,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EAMhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAGL,KAAK,kBAAkB,EAGxB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAOD,wBAAgB,WAAW,CAAC,EAC1B,WAAW,EACX,SAAS,EACT,cAAc,EACd,OAAO,EACP,aAAmB,EACnB,cAAc,GACf,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CA4VvC;AAsCD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAkBvE;AAsED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EACrC,QAAQ,EAAE,MAAM,GACf,oBAAoB,GAAG,IAAI,CAK7B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAaA;AA8DD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAKxE;AASD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAepE;AA8CD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,IAAQ,GACT,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAuC5B"}
|
|
@@ -14,7 +14,7 @@ export interface PhasePanelProps {
|
|
|
14
14
|
nowTick: number;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Goal sidebar panel — shown below fleet panel when Goal is active.
|
|
18
18
|
* Compact 2-line-per-phase view optimized for the TUI layout.
|
|
19
19
|
* Unlike PhaseMonitor (an overlay), PhasePanel is always visible while active.
|
|
20
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-panel.d.ts","sourceRoot":"","sources":["../../src/components/phase-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"phase-panel.d.ts","sourceRoot":"","sources":["../../src/components/phase-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CACZ,MAAM,EACN;QACE,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC,CACF,CAAC;IACF,gCAAgC;IAChC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAgBD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAgE1F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-picker.d.ts","sourceRoot":"","sources":["../../src/components/plugin-picker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"plugin-picker.d.ts","sourceRoot":"","sources":["../../src/components/plugin-picker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAmBD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,IAAY,EACZ,IAAI,GACL,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CA8DxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powerline-rail.d.ts","sourceRoot":"","sources":["../../src/components/powerline-rail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAW7D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,MAAM,EACN,UAAkB,EAClB,MAAM,GACP,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"powerline-rail.d.ts","sourceRoot":"","sources":["../../src/components/powerline-rail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,wBAAgB,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAW7D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,MAAM,EACN,UAAkB,EAClB,MAAM,GACP,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAoFzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-list.d.ts","sourceRoot":"","sources":["../../src/components/process-list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAmB/B;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,IAAI,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"process-list.d.ts","sourceRoot":"","sources":["../../src/components/process-list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAmB/B;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,IAAI,KAAK,CAAC,YAAY,CAkMvD"}
|
|
@@ -55,6 +55,6 @@ export declare function scrollOffsetForTrackRow(rows: number, total: number, cel
|
|
|
55
55
|
* trigger a full managed-viewport re-layout. All props are primitives
|
|
56
56
|
* or stable reducer references.
|
|
57
57
|
*/
|
|
58
|
-
export declare const ScrollableHistory: React.MemoExoticComponent<({ entries, streamingText, toolStream, scrollOffset, viewportRows, totalLines, onMeasure, maxWidth, setSuggestions, autonomyMode, todos, }: ScrollableHistoryProps) => React.ReactElement>;
|
|
58
|
+
export declare const ScrollableHistory: React.MemoExoticComponent<({ entries, streamingText, toolStream, scrollOffset, viewportRows, totalLines, onMeasure, maxWidth, setSuggestions, autonomyMode, todos, showModelReasoning, }: ScrollableHistoryProps) => React.ReactElement>;
|
|
59
59
|
export type { HistoryEntry };
|
|
60
60
|
//# sourceMappingURL=scrollable-history.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollable-history.d.ts","sourceRoot":"","sources":["../../src/components/scrollable-history.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,YAAY,EAIlB,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB;kFAC8E;IAC9E,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;;GAIG;AACH;;oCAEoC;AACpC,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CASpD;AAED;;;;uCAIuC;AACvC,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMzF;AA2BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"scrollable-history.d.ts","sourceRoot":"","sources":["../../src/components/scrollable-history.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,YAAY,EAIlB,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB;kFAC8E;IAC9E,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;;GAIG;AACH;;oCAEoC;AACpC,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CASpD;AAED;;;;uCAIuC;AACvC,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMzF;AA2BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,iBAAiB,4LAa3B,sBAAsB,KAAG,KAAK,CAAC,YAAY,CAuJ5C,CAAC;AAGH,YAAY,EAAE,YAAY,EAAE,CAAC"}
|