@wrongstack/tui 0.286.0 → 0.287.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.
Files changed (91) hide show
  1. package/README.md +48 -8
  2. package/dist/app-initial-state.d.ts.map +1 -1
  3. package/dist/app-reducer.d.ts.map +1 -1
  4. package/dist/app-state.d.ts +40 -2
  5. package/dist/app-state.d.ts.map +1 -1
  6. package/dist/app.d.ts +18 -9
  7. package/dist/app.d.ts.map +1 -1
  8. package/dist/components/agents-monitor.d.ts +21 -34
  9. package/dist/components/agents-monitor.d.ts.map +1 -1
  10. package/dist/components/auth-panel.d.ts.map +1 -1
  11. package/dist/components/composer-status-chip.d.ts +55 -0
  12. package/dist/components/composer-status-chip.d.ts.map +1 -0
  13. package/dist/components/context-panel.d.ts +25 -0
  14. package/dist/components/context-panel.d.ts.map +1 -0
  15. package/dist/components/coordinator-panel.d.ts.map +1 -1
  16. package/dist/components/cron-jobs.d.ts +24 -0
  17. package/dist/components/cron-jobs.d.ts.map +1 -0
  18. package/dist/components/enhance-panel.d.ts +35 -18
  19. package/dist/components/enhance-panel.d.ts.map +1 -1
  20. package/dist/components/f-key-picker.d.ts.map +1 -1
  21. package/dist/components/fleet-monitor.d.ts.map +1 -1
  22. package/dist/components/fleet-panel.d.ts +11 -7
  23. package/dist/components/fleet-panel.d.ts.map +1 -1
  24. package/dist/components/goal-kanban-panel.d.ts +14 -0
  25. package/dist/components/goal-kanban-panel.d.ts.map +1 -0
  26. package/dist/components/goal-panel.d.ts.map +1 -1
  27. package/dist/components/history/banner.d.ts +3 -6
  28. package/dist/components/history/banner.d.ts.map +1 -1
  29. package/dist/components/history/entry.d.ts.map +1 -1
  30. package/dist/components/history/tool-card.d.ts +20 -0
  31. package/dist/components/history/tool-card.d.ts.map +1 -0
  32. package/dist/components/history/utils.d.ts.map +1 -1
  33. package/dist/components/input.d.ts +24 -1
  34. package/dist/components/input.d.ts.map +1 -1
  35. package/dist/components/kanban-panel.d.ts +4 -1
  36. package/dist/components/kanban-panel.d.ts.map +1 -1
  37. package/dist/components/monitor-shell.d.ts +48 -0
  38. package/dist/components/monitor-shell.d.ts.map +1 -0
  39. package/dist/components/plan-panel.d.ts +1 -1
  40. package/dist/components/plan-panel.d.ts.map +1 -1
  41. package/dist/components/powerline-rail.d.ts +16 -0
  42. package/dist/components/powerline-rail.d.ts.map +1 -0
  43. package/dist/components/process-list.d.ts.map +1 -1
  44. package/dist/components/project-picker.d.ts +2 -1
  45. package/dist/components/project-picker.d.ts.map +1 -1
  46. package/dist/components/queue-panel.d.ts.map +1 -1
  47. package/dist/components/refine-failure-panel.d.ts +47 -0
  48. package/dist/components/refine-failure-panel.d.ts.map +1 -0
  49. package/dist/components/scrollable-history.d.ts.map +1 -1
  50. package/dist/components/sessions-panel.d.ts.map +1 -1
  51. package/dist/components/status-bar-chips.d.ts +33 -0
  52. package/dist/components/status-bar-chips.d.ts.map +1 -0
  53. package/dist/components/status-bar.d.ts +43 -9
  54. package/dist/components/status-bar.d.ts.map +1 -1
  55. package/dist/components/statusline-detail-panel.d.ts +10 -0
  56. package/dist/components/statusline-detail-panel.d.ts.map +1 -0
  57. package/dist/components/statusline-picker.d.ts +4 -4
  58. package/dist/components/statusline-picker.d.ts.map +1 -1
  59. package/dist/components/todos-monitor.d.ts.map +1 -1
  60. package/dist/components/worktree-monitor.d.ts.map +1 -1
  61. package/dist/context-slash.d.ts +75 -0
  62. package/dist/context-slash.d.ts.map +1 -0
  63. package/dist/cron-slash.d.ts +33 -0
  64. package/dist/cron-slash.d.ts.map +1 -0
  65. package/dist/f-key-panels.d.ts +1 -1
  66. package/dist/f-key-panels.d.ts.map +1 -1
  67. package/dist/height-cache.d.ts +124 -0
  68. package/dist/height-cache.d.ts.map +1 -0
  69. package/dist/hooks/use-tui-activity.d.ts +29 -0
  70. package/dist/hooks/use-tui-activity.d.ts.map +1 -0
  71. package/dist/index.js +9300 -4468
  72. package/dist/index.js.map +4 -4
  73. package/dist/memory-slash.d.ts +15 -0
  74. package/dist/memory-slash.d.ts.map +1 -0
  75. package/dist/on-panel-open.d.ts +1 -1
  76. package/dist/on-panel-open.d.ts.map +1 -1
  77. package/dist/reducers/helpers.d.ts +1 -1
  78. package/dist/reducers/helpers.d.ts.map +1 -1
  79. package/dist/run-tui.d.ts +8 -0
  80. package/dist/run-tui.d.ts.map +1 -1
  81. package/dist/running-tools.d.ts +9 -0
  82. package/dist/running-tools.d.ts.map +1 -0
  83. package/dist/terminal-width.d.ts +36 -0
  84. package/dist/terminal-width.d.ts.map +1 -0
  85. package/dist/theme.d.ts +50 -0
  86. package/dist/theme.d.ts.map +1 -1
  87. package/dist/tool-glyph.d.ts +1 -4
  88. package/dist/tool-glyph.d.ts.map +1 -1
  89. package/dist/ui-glyphs.d.ts +45 -0
  90. package/dist/ui-glyphs.d.ts.map +1 -0
  91. package/package.json +6 -6
@@ -0,0 +1,47 @@
1
+ import type React from 'react';
2
+ /**
3
+ * What the user chose on a failed refinement. `retry` re-runs on the same
4
+ * model with a longer window; `fallback` re-runs on the resolved fallback ref;
5
+ * `pick` re-runs on an explicitly-chosen provider/model (ephemeral — the
6
+ * session model is untouched); `original` sends the raw text as-is; `edit`
7
+ * loads the text back into the input for hand-editing.
8
+ */
9
+ export type RefineFailureDecision = {
10
+ kind: 'retry';
11
+ } | {
12
+ kind: 'fallback';
13
+ } | {
14
+ kind: 'pick';
15
+ providerId: string;
16
+ model: string;
17
+ } | {
18
+ kind: 'original';
19
+ } | {
20
+ kind: 'edit';
21
+ };
22
+ export interface RefineFailureModel {
23
+ providerId: string;
24
+ model: string;
25
+ label?: string | undefined;
26
+ }
27
+ export interface RefineFailurePanelProps {
28
+ /** The user's original message (sent as-is if they decline recovery). */
29
+ original: string;
30
+ /** Short failure reason from the refiner (provider error / timeout / empty). */
31
+ error?: string | undefined;
32
+ /** Total time spent across attempts so far. */
33
+ elapsedMs?: number | undefined;
34
+ /** One-key "retry with another model" offer (provider/model), if resolved. */
35
+ fallbackRef?: string | undefined;
36
+ /** Provider/model candidates for the inline "pick another model" list. */
37
+ models: RefineFailureModel[];
38
+ onDecision: (decision: RefineFailureDecision) => void;
39
+ }
40
+ /**
41
+ * Recovery panel shown when a refinement fails. Two views: the default option
42
+ * list (retry / fallback / pick / send-as-is / edit) and — when the user opens
43
+ * "pick another model" — an inline, searchless scroll list of provider/models.
44
+ * Everything resolves through `onDecision`; no session state is mutated here.
45
+ */
46
+ export declare function RefineFailurePanel({ original, error, elapsedMs, fallbackRef, models, onDecision, }: RefineFailurePanelProps): React.ReactElement;
47
+ //# sourceMappingURL=refine-failure-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refine-failure-panel.d.ts","sourceRoot":"","sources":["../../src/components/refine-failure-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,0EAA0E;IAC1E,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,UAAU,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACvD;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,KAAK,EACL,SAAa,EACb,WAAW,EACX,MAAM,EACN,UAAU,GACX,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAuL9C"}
@@ -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;AAOtB,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,wKAY3B,sBAAsB,KAAG,KAAK,CAAC,YAAY,CA8E5C,CAAC;AAGH,YAAY,EAAE,YAAY,EAAE,CAAC"}
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,wKAY3B,sBAAsB,KAAG,KAAK,CAAC,YAAY,CAmJ5C,CAAC;AAGH,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessions-panel.d.ts","sourceRoot":"","sources":["../../src/components/sessions-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,4CAA4C;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACpD,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAsCD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,gBAAgB,GACjB,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAsFzC"}
1
+ {"version":3,"file":"sessions-panel.d.ts","sourceRoot":"","sources":["../../src/components/sessions-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,4CAA4C;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACpD,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAyDD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,gBAAgB,GACjB,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAkJzC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Extracted chip components for the status bar.
3
+ *
4
+ * Moved out of the ~1543-line status-bar.tsx monolith to keep each concern
5
+ * in its own file. All three components are internal to the status bar and
6
+ * not expected to be imported from outside the status-bar module.
7
+ */
8
+ import type React from 'react';
9
+ import { type AnimationStyle } from './animation-style.js';
10
+ import type { BrainStatusChip, StatusBarProps } from './status-bar.js';
11
+ export declare function BrainChip({ brain, monochrome, }: {
12
+ brain: BrainStatusChip;
13
+ monochrome?: boolean;
14
+ }): React.ReactElement;
15
+ export declare function EternalStageChip({ stage, monochrome, }: {
16
+ stage: NonNullable<StatusBarProps['eternalStage']>;
17
+ monochrome?: boolean;
18
+ }): React.ReactElement;
19
+ /**
20
+ * ThinkingChip — render the working/thinking label with the chosen
21
+ * animation style. Picks between the 5 styles (rainbow/wave/pulse/
22
+ * dots/breathe) plus the meta-mode `cycle` that rotates through the
23
+ * variant styles every `CYCLE_INTERVAL_SECONDS`. Rainbow remains
24
+ * the per-glyph Catppuccin pastel hue sweep (the original wave UI);
25
+ * the other three reuse the helpers from `animation-style.tsx`.
26
+ */
27
+ export declare function ThinkingChip({ text, style, phase, cycleTick, }: {
28
+ text: string;
29
+ style: AnimationStyle | 'cycle';
30
+ phase: number;
31
+ cycleTick: number;
32
+ }): React.ReactElement;
33
+ //# sourceMappingURL=status-bar-chips.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-bar-chips.d.ts","sourceRoot":"","sources":["../../src/components/status-bar-chips.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EACL,KAAK,cAAc,EAQpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIvE,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,UAAU,GACX,EAAE;IACD,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,KAAK,CAAC,YAAY,CAoBrB;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,UAAU,GACX,EAAE;IACD,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,KAAK,CAAC,YAAY,CA6ErB;AAID;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,KAAK,CAAC,YAAY,CAmDrB"}
@@ -25,6 +25,12 @@ export declare function nodeText(node: React.ReactNode): string;
25
25
  * an empty line). Pure + exported for testing.
26
26
  */
27
27
  export declare function planChipFit(widths: number[], budget: number, sepCost?: number): number;
28
+ /**
29
+ * Render a status-bar chip line: separator-join the chips that fit within
30
+ * `budget`, and append a dim `+N` marker when lower-priority chips were dropped
31
+ * so the line never wraps (a wrapped status bar shifts Ink's layout and strands
32
+ * the input row in scrollback).
33
+ */
28
34
  /** Minimum terminal width before we switch to ultra-compact mode. Exported so
29
35
  * the TUI mouse hit-test can skip the model-chip click in compact mode (where
30
36
  * line 1 uses a different layout than `statusBarModelSpan` assumes). */
@@ -135,9 +141,16 @@ export interface MailboxStatus {
135
141
  export interface StatusBarProps {
136
142
  model: string;
137
143
  /**
138
- * App version string (e.g. "0.7.0"). When set, renders a compact
139
- * `WS v0.7.0` chip at the head of line 1 so the running build is always
140
- * visible, not just in the startup banner.
144
+ * Provider identifier shown alongside `model` as `provider/model` in the
145
+ * status line. When omitted, only `model` is displayed (backward compat
146
+ * for callers that pass a combined string).
147
+ */
148
+ provider?: string | undefined;
149
+ /**
150
+ * App version string (e.g. "0.7.0"). Previously rendered a `WS v{version}`
151
+ * chip at the head of line 1. Now shown in the composer top rail instead
152
+ * (`WRONGSTACK v{version}`). Kept in the interface for callers that may
153
+ * use `version` in derived props — no longer rendered by StatusBar itself.
141
154
  */
142
155
  version?: string | undefined;
143
156
  state: 'idle' | 'running' | 'streaming' | 'aborting';
@@ -155,10 +168,18 @@ export interface StatusBarProps {
155
168
  hint?: string | undefined;
156
169
  queueCount?: number | undefined;
157
170
  yolo?: boolean | undefined;
158
- /** Session start timestamp (ms). Elapsed time is computed internally on
159
- * the same interval as the spinner so the display stays live without
160
- * forcing a full App tree re-render every second. */
171
+ /**
172
+ * Session start timestamp (ms). Used by StatuslineDetailPanel for its
173
+ * elapsed-time display. StatusBar itself no longer renders this chip
174
+ * (working time and fleet time are tracked separately).
175
+ */
161
176
  startedAt?: number | undefined;
177
+ /**
178
+ * Fleet working time in ms — the total time background subagents have been
179
+ * active. Only ticks up while fleet.running > 0. Rendered as a chip on the
180
+ * status bar so the user can see how long background work has been running.
181
+ */
182
+ fleetWorkingTime?: number | undefined;
162
183
  todos?: TodoCounts | undefined;
163
184
  /**
164
185
  * Plan board counts surfaced as a chip on line 2. Distinct from
@@ -282,7 +303,7 @@ export interface StatusBarProps {
282
303
  /**
283
304
  * Seconds remaining in the prompt-refinement auto-send countdown.
284
305
  * When non-null, replaces the old in-panel timer display with a
285
- * line-3 chip like `⏳ auto-send in 5s` so the countdown never
306
+ * line-3 chip like `◴ refinement ready · send in 5s` so the countdown never
286
307
  * causes blank entries in the chat scrollback.
287
308
  */
288
309
  enhanceCountdown?: number | null | undefined;
@@ -328,7 +349,7 @@ export interface StatusBarProps {
328
349
  * to show — git branch, elapsed time, todo counts, YOLO marker — so a
329
350
  * vanilla session keeps the original single-line footprint.
330
351
  */
331
- export declare function StatusBar({ model, version, state, thinkingWord, thinkingAnimationStyle, tokenCounter, hint, queueCount, yolo, autonomy, startedAt, todos, plan, tasks, fleet, fleetAgents, git, subagentCount, brain, projectName, workingDir, processCount, context, contextStrategy, hiddenItems, mode, events, sessionId, eternalStage, goalSummary, indexState, breakerCountdown, modeLabel, debugStreamStats, enhanceCountdown, nextStepsAutoSubmitCountdown, nextStepsAutoSubmitLabel, autoProceedCountdown, sessionCount, mailbox, tokenSavingMode, toolCount, visibleChips, sideEffectCount, }: StatusBarProps): React.ReactElement;
352
+ export declare function StatusBar({ model, provider, state, thinkingWord, thinkingAnimationStyle, tokenCounter, hint, queueCount, yolo, autonomy, fleetWorkingTime, todos, plan, tasks, fleet, fleetAgents, git, subagentCount, brain, projectName, workingDir, processCount, context, contextStrategy, hiddenItems, mode, events, sessionId, eternalStage, goalSummary, indexState, breakerCountdown, modeLabel, debugStreamStats, enhanceCountdown, nextStepsAutoSubmitCountdown, nextStepsAutoSubmitLabel, autoProceedCountdown, sessionCount, mailbox, tokenSavingMode, toolCount, visibleChips, sideEffectCount, }: StatusBarProps): React.ReactElement;
332
353
  /**
333
354
  * 0-based column span (offset from the box's left edge, including the left
334
355
  * paddingX) of the `{provider}/{model}` chip on status-bar line 1. The TUI
@@ -337,11 +358,16 @@ export declare function StatusBar({ model, version, state, thinkingWord, thinkin
337
358
  * `● {stateLabel}` + `│`, then the model.
338
359
  */
339
360
  export declare function statusBarModelSpan(opts: {
340
- version?: string | undefined;
341
361
  state: 'idle' | 'running' | 'streaming' | 'aborting';
342
362
  fleetRunning?: number | undefined;
343
363
  thinkingWord?: string | undefined;
364
+ /** When true the `state` chip is render-suppressed, so the model chip sits one
365
+ * segment further left (no `● {label}` term). */
366
+ stateHidden?: boolean | undefined;
344
367
  model: string;
368
+ /** Provider prefix — surfaced alongside model as `provider/model`.
369
+ * When set, its display width plus the `/` separator is included in the span. */
370
+ provider?: string | undefined;
345
371
  }): {
346
372
  start: number;
347
373
  len: number;
@@ -373,6 +399,14 @@ export declare function stateChip(state: 'idle' | 'running' | 'streaming' | 'abo
373
399
  color: string;
374
400
  };
375
401
  export declare function renderProgress(ratio: number, width: number): string;
402
+ /**
403
+ * Bracket-style context meter, e.g. `[00o.......]`.
404
+ *
405
+ * Renders a fixed-width progress bar inside square brackets. `0` marks filled
406
+ * cells, `o` is the boundary marker at the edge of used space, and `.` marks
407
+ * remaining cells. The marker disappears at 0% (bar is all `.`) and at 100%
408
+ * (bar is all `0`).
409
+ */
376
410
  export declare function renderMeter(ratio: number, width: number): string;
377
411
  export declare function fmtElapsed(ms: number): string;
378
412
  //# sourceMappingURL=status-bar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-bar.d.ts","sourceRoot":"","sources":["../../src/components/status-bar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-bar.d.ts","sourceRoot":"","sources":["../../src/components/status-bar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type React from 'react';
2
+ import { type StatusBarProps } from './status-bar.js';
3
+ /**
4
+ * Detailed status panel showing all status line information in a structured
5
+ * read-only view. Toggle via F12 picker's detail option or Esc to close.
6
+ */
7
+ export declare function StatuslineDetailPanel(props: StatusBarProps & {
8
+ onClose: () => void;
9
+ }): React.ReactElement;
10
+ //# sourceMappingURL=statusline-detail-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusline-detail-panel.d.ts","sourceRoot":"","sources":["../../src/components/statusline-detail-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAW7F;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAC9C,KAAK,CAAC,YAAY,CAgMpB"}
@@ -1,6 +1,6 @@
1
1
  import type React from 'react';
2
2
  /** All possible statusline chip keys. */
3
- export type StatuslineItem = 'version' | 'state' | 'model' | 'tokens' | 'cache' | 'queue' | 'processes' | 'hint' | 'index' | 'breaker' | 'todos' | 'plan' | 'tasks' | 'fleet' | 'fleet_agents' | 'git' | 'elapsed' | 'context' | 'cost' | 'working_dir' | 'project' | 'yolo' | 'autonomy' | 'eternal_stage' | 'goal' | 'mode' | 'auto_proceed' | 'sessions' | 'tools' | 'token_saving' | 'brain' | 'mailbox' | 'enhance' | 'debug_stream' | 'next_steps';
3
+ export type StatuslineItem = 'version' | 'state' | 'model' | 'tokens' | 'cache' | 'queue' | 'processes' | 'hint' | 'index' | 'breaker' | 'todos' | 'plan' | 'tasks' | 'fleet' | 'fleet_agents' | 'git' | 'elapsed' | 'context' | 'cost' | 'working_dir' | 'project' | 'yolo' | 'autonomy' | 'eternal_stage' | 'goal' | 'mode' | 'auto_proceed' | 'sessions' | 'time' | 'tools' | 'token_saving' | 'brain' | 'mailbox' | 'enhance' | 'debug_stream' | 'next_steps';
4
4
  /**
5
5
  * Metadata for a temporarily-visible chip (one that appeared due to data,
6
6
  * not user toggle). Tracked so the chip can auto-expire.
@@ -30,9 +30,9 @@ export declare function getExpiresInLabel(meta: ChipMeta, now?: number): string
30
30
  /**
31
31
  * Which TUI status bar line each chip appears on. Used to group chips
32
32
  * visually in the picker. MUST mirror the actual render lines in
33
- * `status-bar.tsx`: line 1 = runtime essentials, line 2 = session context,
34
- * line 3 = active work, line 4 = mailbox + fleet-agent detail. Exported so
35
- * the navigation-order test guards against drift instead of duplicating it.
33
+ * `status-bar.tsx`: line 1 = runtime + mode chips, line 2 = session context,
34
+ * line 3 = active work + connectivity. Exported so the navigation-order
35
+ * test guards against drift instead of duplicating it.
36
36
  */
37
37
  export declare const ITEM_LINE: Record<StatuslineItem, number>;
38
38
  export interface StatuslinePickerProps {
@@ -1 +1 @@
1
- {"version":3,"file":"statusline-picker.d.ts","sourceRoot":"","sources":["../../src/components/statusline-picker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,yCAAyC;AACzC,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,OAAO,GACP,WAAW,GACX,MAAM,GACN,OAAO,GACP,SAAS,GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,cAAc,GACd,KAAK,GACL,SAAS,GACT,SAAS,GACT,MAAM,GACN,aAAa,GACb,SAAS,GACT,MAAM,GACN,UAAU,GACV,eAAe,GACf,MAAM,GACN,MAAM,GACN,cAAc,GACd,UAAU,GACV,OAAO,GACP,cAAc,GACd,OAAO,GACP,SAAS,GACT,SAAS,GACT,cAAc,GACd,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,cAAc,CAAC;IACpB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iEAAiE;AACjE,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAa,GAAG,OAAO,CAIvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,IAAI,CAOjF;AAyCD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAoCpD,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IACtC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,yCAAyC;AACzC,eAAO,MAAM,sBAAsB,QAAgC,CAAC;AAEpE,kIAAkI;AAClI,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAwC5C,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAAoD,CAAC;AAalG,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,WAAW,EACX,YAAiB,EACjB,IAAI,GACL,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAqG5C"}
1
+ {"version":3,"file":"statusline-picker.d.ts","sourceRoot":"","sources":["../../src/components/statusline-picker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,yCAAyC;AACzC,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,OAAO,GACP,WAAW,GACX,MAAM,GACN,OAAO,GACP,SAAS,GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,cAAc,GACd,KAAK,GACL,SAAS,GACT,SAAS,GACT,MAAM,GACN,aAAa,GACb,SAAS,GACT,MAAM,GACN,UAAU,GACV,eAAe,GACf,MAAM,GACN,MAAM,GACN,cAAc,GACd,UAAU,GACV,MAAM,GACN,OAAO,GACP,cAAc,GACd,OAAO,GACP,SAAS,GACT,SAAS,GACT,cAAc,GACd,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,cAAc,CAAC;IACpB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iEAAiE;AACjE,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAa,GAAG,OAAO,CAIvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,IAAI,CAOjF;AA0CD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAyCpD,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IACtC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,yCAAyC;AACzC,eAAO,MAAM,sBAAsB,QAAgC,CAAC;AAEpE,kIAAkI;AAClI,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAwC5C,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAAoD,CAAC;AAalG,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,WAAW,EACX,YAAiB,EACjB,IAAI,GACL,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAmI5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"todos-monitor.d.ts","sourceRoot":"","sources":["../../src/components/todos-monitor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CA8GjF"}
1
+ {"version":3,"file":"todos-monitor.d.ts","sourceRoot":"","sources":["../../src/components/todos-monitor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CAoIjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-monitor.d.ts","sourceRoot":"","sources":["../../src/components/worktree-monitor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAyBvD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAChE,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,UAAU,EACV,OAAO,EACP,OAAO,GACR,EAAE;IACD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,GAAG,KAAK,CAAC,YAAY,CAwFrB"}
1
+ {"version":3,"file":"worktree-monitor.d.ts","sourceRoot":"","sources":["../../src/components/worktree-monitor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiCvD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAChE,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,UAAU,EACV,OAAO,EACP,OAAO,GACR,EAAE;IACD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,GAAG,KAAK,CAAC,YAAY,CA2IrB"}
@@ -0,0 +1,75 @@
1
+ import type { MemoryStore, SlashCommand } from '@wrongstack/core';
2
+ import type { GitInfo } from './git-info.js';
3
+ export interface ContextSlashDeps {
4
+ cwd: string;
5
+ getProvider: () => string;
6
+ getModel: () => string;
7
+ getModeLabel: () => string;
8
+ getGitInfo: () => GitInfo | null;
9
+ getFleet: () => {
10
+ total: number;
11
+ running: number;
12
+ entries: Array<{
13
+ name: string;
14
+ status: string;
15
+ currentTool: string | undefined;
16
+ ctxPct: number | undefined;
17
+ }>;
18
+ };
19
+ getLeader: () => {
20
+ iterations: number;
21
+ toolCalls: number;
22
+ startedAt: number;
23
+ status: string;
24
+ currentTool: {
25
+ name: string;
26
+ startedAt: number;
27
+ } | undefined;
28
+ ctxPct: number | undefined;
29
+ ctxTokens: number | undefined;
30
+ ctxMaxTokens: number | undefined;
31
+ };
32
+ getUptime: () => string;
33
+ /** Terminal width in columns. */
34
+ terminalWidth: number;
35
+ /** Optional super memory store for stats. */
36
+ memoryStats: (() => Promise<{
37
+ total: number;
38
+ byKind: Record<string, number>;
39
+ edges: number;
40
+ byStatus: Record<string, number>;
41
+ } | null>) | undefined;
42
+ /** Optional panel-open bridge for dispatching TUI panels from the slash command. */
43
+ onPanelOpen?: {
44
+ current: ((action: string) => boolean) | null;
45
+ } | undefined;
46
+ }
47
+ /** Adapt the optional extended memory-store surface to context dashboard stats. */
48
+ export declare function createContextMemoryStatsGetter(memoryStore: MemoryStore | undefined): ContextSlashDeps['memoryStats'];
49
+ /**
50
+ * Render a sparkbar: `▓` chars proportional to `value / total`.
51
+ * At least 1 block when value > 0, max 10. Empty when value is 0.
52
+ */
53
+ export declare function sparkbar(value: number, total: number): string;
54
+ /**
55
+ * Render a proportional context-window bar using `█` foreground + `░` background
56
+ * characters. The bar is `width` characters wide and includes a percentage label.
57
+ */
58
+ export declare function contextBar(pct: number, width: number): string;
59
+ export declare function createContextSlashCommand(deps: ContextSlashDeps): SlashCommand;
60
+ /**
61
+ * Pure render of the full context dashboard. Exported so tests can drive it with
62
+ * known deps without mounting Ink or registering a real slash command.
63
+ */
64
+ export declare function renderContext(deps: ContextSlashDeps, memoryData: {
65
+ total: number;
66
+ byKind: Record<string, number>;
67
+ edges: number;
68
+ byStatus: Record<string, number>;
69
+ } | null): string;
70
+ /**
71
+ * Pure render of the expanded context-window view (shown by `/context window`).
72
+ * Exported so tests can drive it directly with known deps.
73
+ */
74
+ export declare function renderContextWindowExpanded(deps: ContextSlashDeps): string;
75
+ //# sourceMappingURL=context-slash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-slash.d.ts","sourceRoot":"","sources":["../src/context-slash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;YAChC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;SAC5B,CAAC,CAAC;KACJ,CAAC;IACF,SAAS,EAAE,MAAM;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAC;QAC7D,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,WAAW,EACP,CAAC,MAAM,OAAO,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,IAAI,CAAC,CAAC,GACV,SAAS,CAAC;IACd,oFAAoF;IACpF,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;CAC7E;AAID,mFAAmF;AACnF,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,gBAAgB,CAAC,aAAa,CAAC,CAkBjC;AAID;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7D;AAID;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAW7D;AAID,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CA4C9E;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,gBAAgB,EACtB,UAAU,EAAE;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,GAAG,IAAI,GACP,MAAM,CAmDR;AAiED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAmR1E"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `/cron` — List all scheduled cron jobs from the cron plugin.
3
+ *
4
+ * Reads the cron job list via a getter callback wired to the agent's
5
+ * `cron_list` tool at registration time. Renders a formatted table of
6
+ * job names, intervals, actions, run counts, and overdue status.
7
+ */
8
+ import type { Agent, SlashCommand } from '@wrongstack/core';
9
+ export interface CronJobView {
10
+ name: string;
11
+ intervalMs: number;
12
+ action: string;
13
+ enabled: boolean;
14
+ lastRun: string | null;
15
+ nextRun: string;
16
+ runCount: number;
17
+ overdue: boolean;
18
+ }
19
+ export interface CronListResult {
20
+ ok: boolean;
21
+ count: number;
22
+ maxConcurrent: number;
23
+ jobs: CronJobView[];
24
+ error?: string | undefined;
25
+ }
26
+ export interface CronSlashDeps {
27
+ getCronJobs: () => Promise<CronListResult>;
28
+ }
29
+ /** Build the shared cron-list loader used by both the slash command and panel. */
30
+ export declare function createCronJobsGetter(agent: Pick<Agent, 'ctx' | 'tools'>): () => Promise<CronListResult>;
31
+ export declare function createCronSlashCommand(deps: CronSlashDeps): SlashCommand;
32
+ export declare function renderCronList(result: CronListResult): string;
33
+ //# sourceMappingURL=cron-slash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-slash.d.ts","sourceRoot":"","sources":["../src/cron-slash.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI5D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5C;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,GAClC,MAAM,OAAO,CAAC,cAAc,CAAC,CAqB/B;AASD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CAkBxE;AAqCD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAqC7D"}
@@ -1,6 +1,6 @@
1
1
  import type { Action } from './app-reducer.js';
2
2
  import type { StatuslineItem } from './components/statusline-picker.js';
3
- export type FKeyPanelAction = 'projectPickerOpen' | 'toggleMonitor' | 'toggleAgentsMonitor' | 'toggleWorktreeMonitor' | 'togglePlanPanel' | 'toggleTodosMonitor' | 'toggleQueuePanel' | 'toggleProcessList' | 'toggleGoalPanel' | 'toggleSessionsPanel' | 'toggleCoordinatorMonitor' | 'statuslineOpen';
3
+ export type FKeyPanelAction = 'projectPickerOpen' | 'toggleMonitor' | 'toggleAgentsMonitor' | 'toggleWorktreeMonitor' | 'togglePlanPanel' | 'toggleTodosMonitor' | 'toggleQueuePanel' | 'toggleProcessList' | 'toggleGoalPanel' | 'toggleSessionsPanel' | 'toggleCoordinatorMonitor' | 'toggleCronMonitor' | 'statuslineOpen';
4
4
  /** A single F-key panel entry shared by the picker, help overlay, and tests. */
5
5
  export interface FKeyPanelEntry {
6
6
  key: number;
@@ -1 +1 @@
1
- {"version":3,"file":"f-key-panels.d.ts","sourceRoot":"","sources":["../src/f-key-panels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,eAAe,GACf,qBAAqB,GACrB,uBAAuB,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,GACrB,0BAA0B,GAC1B,gBAAgB,CAAC;AAErB,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,oCAAoC;AACpC,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EAqFxD,CAAC;AAEF,KAAK,kBAAkB,GAAG,OAAO,CAC/B,MAAM,EACJ;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,uBAAuB,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAC7B,CAAC;AAeF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,WAAW,GAAE,SAAS,cAAc,EAAO,GAC1C,kBAAkB,GAAG,IAAI,CAS3B"}
1
+ {"version":3,"file":"f-key-panels.d.ts","sourceRoot":"","sources":["../src/f-key-panels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,eAAe,GACf,qBAAqB,GACrB,uBAAuB,GACvB,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,GACrB,0BAA0B,GAC1B,mBAAmB,GACnB,gBAAgB,CAAC;AAErB,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,oCAAoC;AACpC,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EAqFxD,CAAC;AAEF,KAAK,kBAAkB,GAAG,OAAO,CAC/B,MAAM,EACJ;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,uBAAuB,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAC7B,CAAC;AAgBF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,WAAW,GAAE,SAAS,cAAc,EAAO,GAC1C,kBAAkB,GAAG,IAAI,CAS3B"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Entry height cache for the scrollable history viewport.
3
+ *
4
+ * Associates each history entry's stable `id` with its measured row height
5
+ * and maintains a prefix-sum array so `accumulatedHeight(index)` is O(1) —
6
+ * essential for the binary-search-based window computation in the virtual
7
+ * scroll viewport.
8
+ *
9
+ * This module is pure TypeScript — no React, no Ink, no DOM dependencies.
10
+ * It can be unit-tested without mounting components.
11
+ */
12
+ /**
13
+ * Default height (in terminal rows) assumed for an entry before its first
14
+ * measurement. 3 rows is a reasonable floor for a single-line entry
15
+ * (border + content + margin) and prevents a flash of zero-height spacers
16
+ * during the first render pass.
17
+ */
18
+ export declare const DEFAULT_ENTRY_HEIGHT = 3;
19
+ /**
20
+ * Prefix-sum-based height cache for history entries.
21
+ *
22
+ * Stores measured heights keyed by entry `id` and keeps a parallel prefix-sum
23
+ * array for O(1) range-height queries and O(log n) scroll-offset-to-entry-index
24
+ * resolution.
25
+ *
26
+ * Threading note: this class is designed for single-threaded use within one
27
+ * React render cycle. It is NOT thread-safe.
28
+ */
29
+ export declare class EntryHeightCache {
30
+ /** id → measured height in terminal rows */
31
+ private readonly heights;
32
+ /**
33
+ * Prefix-sum of heights in insertion order. `prefix[i]` = sum of heights
34
+ * for entries with index < i. Rebuilt on every `record()` call.
35
+ * `prefix[0]` is always 0. Invariant: `prefix.length === this.ids.length + 1`.
36
+ */
37
+ private prefix;
38
+ /** Ordered entry ids matching the prefix-sum positions. */
39
+ private ids;
40
+ /**
41
+ * Record or update the measured height for an entry.
42
+ * Rebuilds the prefix-sum — O(n) where n = distinct entries ever measured.
43
+ * In practice n is the number of entries in the session (hundreds to low
44
+ * thousands), and rebuild happens once per entry per render cycle.
45
+ *
46
+ * Returns `true` when the height changed (new or different from last record).
47
+ */
48
+ record(id: number, height: number): boolean;
49
+ /**
50
+ * Total height in rows of all measured entries.
51
+ * O(1) — returns the last prefix-sum entry.
52
+ */
53
+ totalHeight(): number;
54
+ /**
55
+ * Accumulated row height of entries with index < `entryIndex`.
56
+ * `accumulatedHeight(0)` = 0. Throws when `entryIndex > ids.length`.
57
+ * O(1) via prefix-sum lookup.
58
+ */
59
+ accumulatedHeight(entryIndex: number): number;
60
+ /**
61
+ * Look up the measured height for a single entry id.
62
+ * Returns `undefined` when the entry has never been measured.
63
+ */
64
+ getHeight(id: number): number | undefined;
65
+ /**
66
+ * Number of entries currently tracked.
67
+ */
68
+ get size(): number;
69
+ /**
70
+ * Find the entry index whose accumulated range contains the given
71
+ * vertical `rowOffset` from the top of all content.
72
+ *
73
+ * Binary search on the prefix-sum array. O(log n).
74
+ * Returns `0` for offsets at or before the first entry.
75
+ * Returns `ids.length` for offsets past the last entry.
76
+ */
77
+ entryIndexAtOffset(rowOffset: number): number;
78
+ /**
79
+ * Remove all cached heights and reset to empty state.
80
+ */
81
+ clear(): void;
82
+ /** Rebuild the prefix-sum array from current heights in insertion order. */
83
+ private rebuild;
84
+ }
85
+ /**
86
+ * Compute the visible window slice for a virtual-scrolled entry list.
87
+ *
88
+ * Given the total measured content, viewport size, scroll offset, and entry
89
+ * array, determines which entries to render and how tall the top/bottom spacer
90
+ * elements should be.
91
+ *
92
+ * All measurements are in terminal rows.
93
+ *
94
+ * Returns a result with `startIdx`, `endIdx`, `spacerAbove`, and `spacerBelow`
95
+ * that the caller uses to render only the visible window.
96
+ */
97
+ export interface ComputeWindowResult {
98
+ /** Index of the first entry to render (inclusive). */
99
+ startIdx: number;
100
+ /** Index of the last entry to render (exclusive, like Array.slice end). */
101
+ endIdx: number;
102
+ /** Row height of the spacer above the visible window. 0 when at top. */
103
+ spacerAbove: number;
104
+ /** Row height of the spacer below the visible window. 0 when at bottom. */
105
+ spacerBelow: number;
106
+ /** Total content height measured. */
107
+ totalHeight: number;
108
+ /** Whether the computed window differs from a flat render of all entries. */
109
+ windowed: boolean;
110
+ }
111
+ /**
112
+ * Compute which entries should be rendered in a virtual-scrolled viewport.
113
+ *
114
+ * Pure function — no side effects, no state mutations. Exported for testing.
115
+ *
116
+ * @param totalHeight - Total measured height of all entries in rows.
117
+ * @param viewportRows - Number of visible rows in the viewport.
118
+ * @param scrollOffset - Rows scrolled up from the bottom (0 = pinned to newest).
119
+ * @param entryCount - Total number of entries.
120
+ * @param cache - EntryHeightCache with measured heights.
121
+ * @returns A {@link ComputeWindowResult} describing the visible slice.
122
+ */
123
+ export declare function computeWindow(totalHeight: number, viewportRows: number, scrollOffset: number, entryCount: number, cache: EntryHeightCache): ComputeWindowResult;
124
+ //# sourceMappingURL=height-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"height-cache.d.ts","sourceRoot":"","sources":["../src/height-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAC3B,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAiB;IAE/B,2DAA2D;IAC3D,OAAO,CAAC,GAAG,CAAgB;IAE3B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAY1C;IAED;;;OAGG;IACH,WAAW,IAAI,MAAM,CAEpB;IAED;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAM5C;IAED;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExC;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;OAOG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAkB5C;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;IAID,4EAA4E;IAC5E,OAAO,CAAC,OAAO;CAQhB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,gBAAgB,GACtB,mBAAmB,CA4DrB"}
@@ -0,0 +1,29 @@
1
+ import { type Agent } from '@wrongstack/core';
2
+ import type { Action, State } from '../app-reducer.js';
3
+ export interface UseTuiActivityOptions {
4
+ status: State['status'];
5
+ fleet: State['fleet'];
6
+ enhanceBusy: boolean;
7
+ thinkingWord: string;
8
+ projectRoot: string;
9
+ stateRef: React.RefObject<State>;
10
+ agentContext: Agent['ctx'];
11
+ dispatch: React.Dispatch<Action>;
12
+ }
13
+ /**
14
+ * Own the clocks and lightweight activity animation state used by the TUI
15
+ * shell. Keeping these related timers together prevents the app component
16
+ * from accumulating another cluster of lifecycle bookkeeping.
17
+ */
18
+ export declare function useTuiActivity({ status, fleet, enhanceBusy, thinkingWord, projectRoot, stateRef, agentContext, dispatch, }: UseTuiActivityOptions): {
19
+ displayThinkingWord: string;
20
+ displayThinkingWordRef: import("react").RefObject<string>;
21
+ startedAt: number;
22
+ nowTick: number;
23
+ setNowTick: import("react").Dispatch<import("react").SetStateAction<number>>;
24
+ workingTimeMs: number;
25
+ fleetWorkingTimeMs: number;
26
+ enhanceDots: number;
27
+ refreshGoalSummary: () => void;
28
+ };
29
+ //# sourceMappingURL=use-tui-activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tui-activity.d.ts","sourceRoot":"","sources":["../../src/hooks/use-tui-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAgC,MAAM,kBAAkB,CAAC;AAE5E,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAIvD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,QAAQ,GACT,EAAE,qBAAqB;;;;;;;;;;EA+KvB"}