@sagmans/dsh-tui 0.4.0 → 0.5.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 (200) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +270 -68
  3. package/lib/agent/present.js +1 -1
  4. package/lib/agent/present.js.map +1 -1
  5. package/lib/agent/prompt-history.d.ts.map +1 -1
  6. package/lib/agent/prompt-history.js +5 -3
  7. package/lib/agent/prompt-history.js.map +1 -1
  8. package/lib/agent/status.d.ts +1 -1
  9. package/lib/cards.d.ts +83 -13
  10. package/lib/cards.d.ts.map +1 -1
  11. package/lib/cards.js +96 -28
  12. package/lib/cards.js.map +1 -1
  13. package/lib/export.d.ts +3 -3
  14. package/lib/export.d.ts.map +1 -1
  15. package/lib/export.js +23 -13
  16. package/lib/export.js.map +1 -1
  17. package/lib/fold-cursor.d.ts +12 -5
  18. package/lib/fold-cursor.d.ts.map +1 -1
  19. package/lib/fold-cursor.js +16 -5
  20. package/lib/fold-cursor.js.map +1 -1
  21. package/lib/gates.d.ts.map +1 -1
  22. package/lib/gates.js +42 -9
  23. package/lib/gates.js.map +1 -1
  24. package/lib/index.d.ts.map +1 -1
  25. package/lib/index.js +459 -72
  26. package/lib/index.js.map +1 -1
  27. package/lib/injection.d.ts +9 -0
  28. package/lib/injection.d.ts.map +1 -0
  29. package/lib/injection.js +128 -0
  30. package/lib/injection.js.map +1 -0
  31. package/lib/input/actions.d.ts +19 -2
  32. package/lib/input/actions.d.ts.map +1 -1
  33. package/lib/input/actions.js +57 -11
  34. package/lib/input/actions.js.map +1 -1
  35. package/lib/input/cancel.d.ts +55 -0
  36. package/lib/input/cancel.d.ts.map +1 -0
  37. package/lib/input/cancel.js +47 -0
  38. package/lib/input/cancel.js.map +1 -0
  39. package/lib/input/completion.d.ts +5 -2
  40. package/lib/input/completion.d.ts.map +1 -1
  41. package/lib/input/completion.js +79 -4
  42. package/lib/input/completion.js.map +1 -1
  43. package/lib/input/file-search.d.ts +105 -0
  44. package/lib/input/file-search.d.ts.map +1 -0
  45. package/lib/input/file-search.js +665 -0
  46. package/lib/input/file-search.js.map +1 -0
  47. package/lib/input/fuzzy.d.ts +42 -0
  48. package/lib/input/fuzzy.d.ts.map +1 -0
  49. package/lib/input/fuzzy.js +289 -0
  50. package/lib/input/fuzzy.js.map +1 -0
  51. package/lib/input/keymap.d.ts +3 -1
  52. package/lib/input/keymap.d.ts.map +1 -1
  53. package/lib/input/keymap.js +14 -3
  54. package/lib/input/keymap.js.map +1 -1
  55. package/lib/input/match.d.ts +12 -4
  56. package/lib/input/match.d.ts.map +1 -1
  57. package/lib/input/match.js +50 -51
  58. package/lib/input/match.js.map +1 -1
  59. package/lib/input/submission.d.ts +10 -0
  60. package/lib/input/submission.d.ts.map +1 -1
  61. package/lib/input/submission.js +7 -6
  62. package/lib/input/submission.js.map +1 -1
  63. package/lib/keys-command.d.ts +19 -3
  64. package/lib/keys-command.d.ts.map +1 -1
  65. package/lib/keys-command.js +34 -31
  66. package/lib/keys-command.js.map +1 -1
  67. package/lib/settings-notice.d.ts +5 -0
  68. package/lib/settings-notice.d.ts.map +1 -1
  69. package/lib/settings-notice.js +9 -7
  70. package/lib/settings-notice.js.map +1 -1
  71. package/lib/stash/paths.d.ts +8 -8
  72. package/lib/stash/paths.d.ts.map +1 -1
  73. package/lib/stash/paths.js +19 -18
  74. package/lib/stash/paths.js.map +1 -1
  75. package/lib/stash/schema.d.ts +11 -12
  76. package/lib/stash/schema.d.ts.map +1 -1
  77. package/lib/stash/schema.js +10 -29
  78. package/lib/stash/schema.js.map +1 -1
  79. package/lib/stash/store.js +10 -10
  80. package/lib/stash/store.js.map +1 -1
  81. package/lib/stash.d.ts +37 -6
  82. package/lib/stash.d.ts.map +1 -1
  83. package/lib/stash.js +93 -36
  84. package/lib/stash.js.map +1 -1
  85. package/lib/terminal/external-editor.d.ts +93 -0
  86. package/lib/terminal/external-editor.d.ts.map +1 -0
  87. package/lib/terminal/external-editor.js +263 -0
  88. package/lib/terminal/external-editor.js.map +1 -0
  89. package/lib/terminal/host-writes.d.ts +39 -0
  90. package/lib/terminal/host-writes.d.ts.map +1 -0
  91. package/lib/terminal/host-writes.js +136 -0
  92. package/lib/terminal/host-writes.js.map +1 -0
  93. package/lib/terminal/signals.d.ts +25 -0
  94. package/lib/terminal/signals.d.ts.map +1 -0
  95. package/lib/terminal/signals.js +39 -0
  96. package/lib/terminal/signals.js.map +1 -0
  97. package/lib/terminal/warning-screen.d.ts +19 -1
  98. package/lib/terminal/warning-screen.d.ts.map +1 -1
  99. package/lib/terminal/warning-screen.js +37 -1
  100. package/lib/terminal/warning-screen.js.map +1 -1
  101. package/lib/terminal-text.d.ts +72 -0
  102. package/lib/terminal-text.d.ts.map +1 -0
  103. package/lib/terminal-text.js +603 -0
  104. package/lib/terminal-text.js.map +1 -0
  105. package/lib/text.d.ts +45 -6
  106. package/lib/text.d.ts.map +1 -1
  107. package/lib/text.js +106 -46
  108. package/lib/text.js.map +1 -1
  109. package/lib/theme-command.d.ts +7 -4
  110. package/lib/theme-command.d.ts.map +1 -1
  111. package/lib/theme-command.js +32 -12
  112. package/lib/theme-command.js.map +1 -1
  113. package/lib/theme-files.d.ts +110 -0
  114. package/lib/theme-files.d.ts.map +1 -0
  115. package/lib/theme-files.js +352 -0
  116. package/lib/theme-files.js.map +1 -0
  117. package/lib/theme-schema.d.ts +121 -0
  118. package/lib/theme-schema.d.ts.map +1 -0
  119. package/lib/theme-schema.js +87 -0
  120. package/lib/theme-schema.js.map +1 -0
  121. package/lib/theme-settings.d.ts +43 -10
  122. package/lib/theme-settings.d.ts.map +1 -1
  123. package/lib/theme-settings.js +103 -43
  124. package/lib/theme-settings.js.map +1 -1
  125. package/lib/theme-tokens.d.ts +39 -7
  126. package/lib/theme-tokens.d.ts.map +1 -1
  127. package/lib/theme-tokens.js +96 -13
  128. package/lib/theme-tokens.js.map +1 -1
  129. package/lib/theme.d.ts +24 -2
  130. package/lib/theme.d.ts.map +1 -1
  131. package/lib/theme.js +49 -6
  132. package/lib/theme.js.map +1 -1
  133. package/lib/tool-display.d.ts +57 -0
  134. package/lib/tool-display.d.ts.map +1 -0
  135. package/lib/tool-display.js +51 -0
  136. package/lib/tool-display.js.map +1 -0
  137. package/lib/transcript.d.ts +28 -0
  138. package/lib/transcript.d.ts.map +1 -1
  139. package/lib/transcript.js +126 -37
  140. package/lib/transcript.js.map +1 -1
  141. package/lib/ui/diff.d.ts +49 -0
  142. package/lib/ui/diff.d.ts.map +1 -0
  143. package/lib/ui/diff.js +208 -0
  144. package/lib/ui/diff.js.map +1 -0
  145. package/lib/ui/dock.d.ts.map +1 -1
  146. package/lib/ui/dock.js +9 -6
  147. package/lib/ui/dock.js.map +1 -1
  148. package/lib/ui/editor.d.ts.map +1 -1
  149. package/lib/ui/editor.js +4 -2
  150. package/lib/ui/editor.js.map +1 -1
  151. package/lib/ui/frame.d.ts +16 -5
  152. package/lib/ui/frame.d.ts.map +1 -1
  153. package/lib/ui/frame.js +32 -13
  154. package/lib/ui/frame.js.map +1 -1
  155. package/lib/ui/keymap-picker.d.ts +16 -0
  156. package/lib/ui/keymap-picker.d.ts.map +1 -0
  157. package/lib/ui/keymap-picker.js +41 -0
  158. package/lib/ui/keymap-picker.js.map +1 -0
  159. package/lib/ui/layout.d.ts +33 -0
  160. package/lib/ui/layout.d.ts.map +1 -0
  161. package/lib/ui/layout.js +33 -0
  162. package/lib/ui/layout.js.map +1 -0
  163. package/lib/ui/markdown.d.ts +25 -3
  164. package/lib/ui/markdown.d.ts.map +1 -1
  165. package/lib/ui/markdown.js +12 -8
  166. package/lib/ui/markdown.js.map +1 -1
  167. package/lib/ui/picker-card.d.ts +42 -0
  168. package/lib/ui/picker-card.d.ts.map +1 -0
  169. package/lib/ui/picker-card.js +148 -0
  170. package/lib/ui/picker-card.js.map +1 -0
  171. package/lib/ui/picker.d.ts +40 -2
  172. package/lib/ui/picker.d.ts.map +1 -1
  173. package/lib/ui/picker.js +50 -6
  174. package/lib/ui/picker.js.map +1 -1
  175. package/lib/ui/prompt.d.ts +10 -2
  176. package/lib/ui/prompt.d.ts.map +1 -1
  177. package/lib/ui/prompt.js +21 -2
  178. package/lib/ui/prompt.js.map +1 -1
  179. package/lib/ui/rows.d.ts +8 -6
  180. package/lib/ui/rows.d.ts.map +1 -1
  181. package/lib/ui/rows.js +10 -18
  182. package/lib/ui/rows.js.map +1 -1
  183. package/lib/ui/stash-picker.d.ts +2 -2
  184. package/lib/ui/stash-picker.d.ts.map +1 -1
  185. package/lib/ui/stash-picker.js +4 -4
  186. package/lib/ui/stash-picker.js.map +1 -1
  187. package/lib/ui/status.d.ts.map +1 -1
  188. package/lib/ui/status.js +18 -16
  189. package/lib/ui/status.js.map +1 -1
  190. package/lib/ui/theme-picker.d.ts +18 -0
  191. package/lib/ui/theme-picker.d.ts.map +1 -0
  192. package/lib/ui/theme-picker.js +68 -0
  193. package/lib/ui/theme-picker.js.map +1 -0
  194. package/lib/ui/view.d.ts +146 -22
  195. package/lib/ui/view.d.ts.map +1 -1
  196. package/lib/ui/view.js +461 -154
  197. package/lib/ui/view.js.map +1 -1
  198. package/package.json +3 -1
  199. package/themes/deepseek-blue.yaml +183 -0
  200. package/themes/violet-orbit.yaml +178 -0
@@ -101,7 +101,8 @@ export const SURFACE_ACTIONS = [
101
101
  { id: 'surface.effort', name: 'effort', layer: 'surface', defaultKeys: ['ctrl+t'], label: 'reasoning effort', mayUseBare: false, mayUnbind: false },
102
102
  { id: 'surface.history', name: 'history', layer: 'surface', defaultKeys: ['ctrl+r'], label: 'search prompt history', mayUseBare: false, mayUnbind: false },
103
103
  { id: 'surface.back', name: 'back', layer: 'surface', defaultKeys: ['ctrl+b'], label: 'back to this session', mayUseBare: false, mayUnbind: false },
104
- { id: 'surface.interrupt', name: 'interrupt', layer: 'surface', defaultKeys: ['ctrl+c'], label: 'interrupt or exit', mayUseBare: false, mayUnbind: false },
104
+ { id: 'surface.interrupt', name: 'interrupt', layer: 'surface', defaultKeys: ['ctrl+c'], label: 'cancel', mayUseBare: false, mayUnbind: false },
105
+ { id: 'surface.quit', name: 'quit', layer: 'surface', defaultKeys: ['ctrl+d'], label: 'quit', mayUseBare: false, mayUnbind: false },
105
106
  ];
106
107
  const CHORD_ACTIONS = [
107
108
  { id: 'chord.prefix', layer: 'chord', defaultKeys: ['ctrl+x'], label: 'start a chord', mayUseBare: false, mayUnbind: false, keyShape: 'chord' },
@@ -110,25 +111,52 @@ const CHORD_ACTIONS = [
110
111
  { id: 'chord.copy', layer: 'chord', defaultKeys: ['y'], label: 'copy', mayUseBare: true, mayUnbind: false },
111
112
  { id: 'chord.stash', layer: 'chord', defaultKeys: ['s'], label: 'stash the draft', mayUseBare: true, mayUnbind: false },
112
113
  { id: 'chord.stashes', layer: 'chord', defaultKeys: ['l'], label: 'stashed drafts', mayUseBare: true, mayUnbind: false },
114
+ { id: 'chord.editor', layer: 'chord', defaultKeys: ['e'], label: 'external editor', mayUseBare: true, mayUnbind: false },
115
+ // The map is the one thing a reader needs while their hands are already on the
116
+ // keys, so it earns a chord rather than only a command they have to spell.
117
+ { id: 'chord.keys', layer: 'chord', defaultKeys: ['?'], label: 'key map', mayUseBare: true, mayUnbind: false },
118
+ // Starting over is asked for while the bar still holds a draft, and a typed
119
+ // `/new` would have taken that draft's place rather than kept it.
120
+ { id: 'chord.new', layer: 'chord', defaultKeys: ['n'], label: 'new session', mayUseBare: true, mayUnbind: false },
113
121
  ];
114
122
  const GATE_ACTIONS = [
115
123
  { id: 'gate.allow', layer: 'gate', defaultKeys: ['y'], label: 'allow once', mayUseBare: true, mayUnbind: false },
116
124
  { id: 'gate.reject', layer: 'gate', defaultKeys: ['n'], label: 'reject', mayUseBare: true, mayUnbind: false },
117
- { id: 'gate.cancel', layer: 'gate', defaultKeys: ['escape'], label: 'cancel', mayUseBare: false, mayUnbind: false },
125
+ { id: 'gate.cancel', layer: 'gate', defaultKeys: ['escape', 'ctrl+c'], label: 'cancel', mayUseBare: false, mayUnbind: false },
118
126
  ];
119
127
  const QUESTION_ACTIONS = [
120
- { id: 'question.up', layer: 'question', defaultKeys: ['up'], label: 'previous option', mayUseBare: false, mayUnbind: false },
121
- { id: 'question.down', layer: 'question', defaultKeys: ['down'], label: 'next option', mayUseBare: false, mayUnbind: false },
128
+ { id: 'question.up', layer: 'question', defaultKeys: ['up', 'ctrl+p'], label: 'previous option', mayUseBare: false, mayUnbind: false },
129
+ { id: 'question.down', layer: 'question', defaultKeys: ['down', 'ctrl+n'], label: 'next option', mayUseBare: false, mayUnbind: false },
122
130
  { id: 'question.toggle', layer: 'question', defaultKeys: ['space'], label: 'toggle an option', mayUseBare: false, mayUnbind: false },
123
131
  { id: 'question.confirm', layer: 'question', defaultKeys: [ENTER_KEY], label: 'answer the question', mayUseBare: false, mayUnbind: false },
124
132
  { id: 'question.skip', layer: 'question', defaultKeys: ['escape'], label: 'skip this question', mayUseBare: false, mayUnbind: false },
133
+ { id: 'question.cancel', layer: 'question', defaultKeys: ['ctrl+c'], label: 'abandon the questions', mayUseBare: false, mayUnbind: false },
125
134
  ];
126
135
  const PICKER_ACTIONS = [
127
- { id: 'picker.up', layer: 'picker', defaultKeys: ['up'], label: 'previous row', mayUseBare: false, mayUnbind: false },
128
- { id: 'picker.down', layer: 'picker', defaultKeys: ['down'], label: 'next row', mayUseBare: false, mayUnbind: false },
136
+ { id: 'picker.up', layer: 'picker', defaultKeys: ['up', 'ctrl+p'], label: 'previous row', mayUseBare: false, mayUnbind: false },
137
+ { id: 'picker.down', layer: 'picker', defaultKeys: ['down', 'ctrl+n'], label: 'next row', mayUseBare: false, mayUnbind: false },
129
138
  { id: 'picker.confirm', layer: 'picker', defaultKeys: [ENTER_KEY], label: 'take the row', mayUseBare: false, mayUnbind: false },
130
139
  { id: 'picker.cancel', layer: 'picker', defaultKeys: ['escape', 'ctrl+c'], label: 'leave the list', mayUseBare: false, mayUnbind: false },
131
140
  ];
141
+ /**
142
+ * Library rows this surface adds a key to.
143
+ *
144
+ * A key that only works when the reader writes it into settings is a key the
145
+ * surface can never reach: the transcript search owns the keyboard while it is
146
+ * open, so its close row is the one seam through which the cancel key gets
147
+ * there. The added row travels with the map, so /keys and the clash guards read
148
+ * the key that is really installed rather than the one the library shipped.
149
+ *
150
+ * The select rows are the same seam for a different list: the completion menu a
151
+ * reader navigates belongs to the library's editor, so the navigation aliases
152
+ * have to be installed where that menu reads them rather than on a row this
153
+ * surface answers.
154
+ */
155
+ export const LIBRARY_KEY_ADDITIONS = {
156
+ 'tui.altScreen.searchClose': ['escape', 'ctrl+c'],
157
+ 'tui.select.up': ['up', 'ctrl+p'],
158
+ 'tui.select.down': ['down', 'ctrl+n'],
159
+ };
132
160
  /**
133
161
  * Library ids whose meaning this surface owns.
134
162
  *
@@ -209,6 +237,10 @@ function isBareCharacter(key) {
209
237
  function actionOf(id) {
210
238
  return ACTION_CATALOG.find(entry => entry.id === id);
211
239
  }
240
+ /** The keys one action ships with, this surface's own additions to a library row included. */
241
+ function shippedKeys(action) {
242
+ return LIBRARY_KEY_ADDITIONS[action.id] ?? action.defaultKeys;
243
+ }
212
244
  /** The keys in force for one action, or nothing when no action has that id. */
213
245
  export function keysFor(map, id) {
214
246
  return map.effective[id] ?? [];
@@ -227,19 +259,27 @@ const SHORT_KEY_NAMES = { escape: 'esc' };
227
259
  export function keyName(key) {
228
260
  return SHORT_KEY_NAMES[key] ?? key;
229
261
  }
262
+ /** One movement key as a hint prints it: the keycap glyph where the terminal has one. */
263
+ const MOVE_GLYPHS = { up: '↑', down: '↓' };
264
+ /** The glyph for one key of a movement pair, or the key's own name where it has none. */
265
+ function moveName(key) {
266
+ return MOVE_GLYPHS[key] ?? key;
267
+ }
230
268
  /**
231
269
  * The keys that move a cursor, as a hint prints them.
232
270
  *
233
271
  * A terminal draws arrows on its keycaps, which is shorter than the names the
234
272
  * library uses; a map that moved them falls back to naming whatever it moved
235
- * them to, because a glyph for a key nobody has would be a lie.
273
+ * them to, because a glyph for a key nobody has would be a lie. Each direction
274
+ * keeps its own list: the aliases a reader adds are alternatives to one arrow
275
+ * each, so pooling them would not say which way a key goes.
236
276
  */
237
277
  export function moveHint(map, upId, downId) {
238
278
  const up = keysFor(map, upId).map(keyName);
239
279
  const down = keysFor(map, downId).map(keyName);
240
280
  if (up.length === 1 && up[0] === 'up' && down.length === 1 && down[0] === 'down')
241
281
  return '↑↓';
242
- return `${up.join('/')} or ${down.join('/')}`;
282
+ return `${up.map(moveName).join('/')} or ${down.map(moveName).join('/')}`;
243
283
  }
244
284
  /** How an action names itself in a hint. */
245
285
  export function actionLabel(id) {
@@ -477,7 +517,7 @@ function shippedLibraryRows() {
477
517
  const rows = {};
478
518
  for (const action of ACTION_CATALOG) {
479
519
  if (action.layer === 'library')
480
- rows[action.id] = [...action.defaultKeys];
520
+ rows[action.id] = [...shippedKeys(action)];
481
521
  }
482
522
  rows['tui.input.submit'] = [...(defaults.get('prompt.submit') ?? [])];
483
523
  rows['tui.input.newLine'] = [...(defaults.get('prompt.newLine') ?? [])];
@@ -612,7 +652,7 @@ function dispatchRows(effective) {
612
652
  function shippedRows() {
613
653
  const rows = {};
614
654
  for (const action of ACTION_CATALOG)
615
- rows[action.id] = [...action.defaultKeys];
655
+ rows[action.id] = [...shippedKeys(action)];
616
656
  rows['tui.input.submit'] = [...(actionOf('prompt.submit')?.defaultKeys ?? [])];
617
657
  rows['tui.input.newLine'] = [...(actionOf('prompt.newLine')?.defaultKeys ?? [])].filter(key => key !== ENTER_KEY);
618
658
  return rows;
@@ -670,9 +710,15 @@ function refuseViewportTakingKeys(effective, written) {
670
710
  * that costs them the whole section.
671
711
  */
672
712
  export function resolveKeymap(overrides) {
713
+ // An addition naming a row the library no longer draws would silently drop
714
+ // the key, so it is refused while the startup still has somewhere to say so.
715
+ for (const id of Object.keys(LIBRARY_KEY_ADDITIONS)) {
716
+ if (actionOf(id)?.layer !== 'library')
717
+ throw new Error(`key additions name ${id}, which is not a library action this surface can bind`);
718
+ }
673
719
  const effective = {};
674
720
  for (const action of ACTION_CATALOG)
675
- effective[action.id] = [...action.defaultKeys];
721
+ effective[action.id] = [...shippedKeys(action)];
676
722
  const written = new Set();
677
723
  for (const [id, value] of Object.entries(overrides)) {
678
724
  if (value === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/input/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/input/actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * What the surface's two control keys do when a press reaches the surface.
3
+ *
4
+ * The order is the whole design: one press peels one state, and the state
5
+ * closest to what the reader is doing is the one it takes first. The decisions
6
+ * live here rather than in the key handler so the precedence can be read, and
7
+ * tested, without a terminal.
8
+ */
9
+ /** What one cancel press asks the surface to take back, or that it asks for nothing. */
10
+ export type CancelStep = 'clear-editor' | 'reclaim-queued' | 'interrupt-turn' | 'leave-child-view' | 'hand-back';
11
+ /** The surface states a cancel press chooses between. */
12
+ export interface CancelState {
13
+ /** Whether the prompt bar holds a draft, which is what the reader is writing. */
14
+ readonly barHasText: boolean;
15
+ /** How many prompts the agent has not started, which an interrupt would drop. */
16
+ readonly queuedPrompts: number;
17
+ /** Whether a turn is in flight on the session this surface drives. */
18
+ readonly turnRunning: boolean;
19
+ /** Whether the transcript is showing a child's conversation. */
20
+ readonly viewingChild: boolean;
21
+ }
22
+ /**
23
+ * The one state a cancel press takes back.
24
+ *
25
+ * The bar comes first because text is the reader's own work: a press while
26
+ * something is typed is "start over", not "stop the agent". Queued prompts come
27
+ * next, and they ask for more than a stop: an interrupt drops what the agent has
28
+ * not started, so the press has to hand those words back rather than lose them.
29
+ * The turn follows, because stopping work in flight is what the key is for. A
30
+ * child's transcript is last: it is a place the reader went, not something that
31
+ * is running, so it gives way to everything that is.
32
+ */
33
+ export declare function cancelStep(state: CancelState): CancelStep;
34
+ /** What one quit press asks the surface to do, or that it asks for nothing. */
35
+ export type QuitStep = 'quit' | 'cancel-then-quit' | 'hand-back';
36
+ /** The surface states a quit press chooses between. */
37
+ export interface QuitState {
38
+ /** Whether the prompt bar holds text, which keeps the key for the editor. */
39
+ readonly barHasText: boolean;
40
+ /** Whether the library has an overlay open, whose own field owns the keyboard. */
41
+ readonly overlayOpen: boolean;
42
+ /** Whether a turn is in flight, which has to be cancelled on the way out. */
43
+ readonly turnRunning: boolean;
44
+ }
45
+ /**
46
+ * What a quit press does.
47
+ *
48
+ * The bar keeps the key while it holds text, because the library's delete
49
+ * forward is what the reader means there, and an open overlay keeps it because
50
+ * the transcript search has a text field of its own. A running turn does not
51
+ * block the exit: leaving is the reader's decision, so the turn is cancelled
52
+ * rather than waited on.
53
+ */
54
+ export declare function quitStep(state: QuitState): QuitStep;
55
+ //# sourceMappingURL=cancel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/input/cancel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wFAAwF;AACxF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,WAAW,CAAA;AAEhH,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAMzD;AAED,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,kBAAkB,GAAG,WAAW,CAAA;AAEhE,uDAAuD;AACvD,MAAM,WAAW,SAAS;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAInD"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * What the surface's two control keys do when a press reaches the surface.
3
+ *
4
+ * The order is the whole design: one press peels one state, and the state
5
+ * closest to what the reader is doing is the one it takes first. The decisions
6
+ * live here rather than in the key handler so the precedence can be read, and
7
+ * tested, without a terminal.
8
+ */
9
+ /**
10
+ * The one state a cancel press takes back.
11
+ *
12
+ * The bar comes first because text is the reader's own work: a press while
13
+ * something is typed is "start over", not "stop the agent". Queued prompts come
14
+ * next, and they ask for more than a stop: an interrupt drops what the agent has
15
+ * not started, so the press has to hand those words back rather than lose them.
16
+ * The turn follows, because stopping work in flight is what the key is for. A
17
+ * child's transcript is last: it is a place the reader went, not something that
18
+ * is running, so it gives way to everything that is.
19
+ */
20
+ export function cancelStep(state) {
21
+ if (state.barHasText)
22
+ return 'clear-editor';
23
+ if (state.queuedPrompts > 0)
24
+ return 'reclaim-queued';
25
+ if (state.turnRunning)
26
+ return 'interrupt-turn';
27
+ if (state.viewingChild)
28
+ return 'leave-child-view';
29
+ return 'hand-back';
30
+ }
31
+ /**
32
+ * What a quit press does.
33
+ *
34
+ * The bar keeps the key while it holds text, because the library's delete
35
+ * forward is what the reader means there, and an open overlay keeps it because
36
+ * the transcript search has a text field of its own. A running turn does not
37
+ * block the exit: leaving is the reader's decision, so the turn is cancelled
38
+ * rather than waited on.
39
+ */
40
+ export function quitStep(state) {
41
+ if (state.barHasText || state.overlayOpen)
42
+ return 'hand-back';
43
+ if (state.turnRunning)
44
+ return 'cancel-then-quit';
45
+ return 'quit';
46
+ }
47
+ //# sourceMappingURL=cancel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../src/input/cancel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,cAAc,CAAA;IAC3C,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC;QAAE,OAAO,gBAAgB,CAAA;IACpD,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,gBAAgB,CAAA;IAC9C,IAAI,KAAK,CAAC,YAAY;QAAE,OAAO,kBAAkB,CAAA;IACjD,OAAO,WAAW,CAAA;AACpB,CAAC;AAeD;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAgB;IACvC,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,WAAW,CAAA;IAC7D,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,kBAAkB,CAAA;IAChD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { CombinedAutocompleteProvider, type SlashCommand } from '@earendil-works/pi-tui';
2
+ import { type FileIndex } from './file-search.ts';
2
3
  /** One command another package registered, as the registry reports it. */
3
4
  export interface RegisteredCommand {
4
5
  readonly name: string;
@@ -16,7 +17,9 @@ export declare function commandMenu(registered: readonly RegisteredCommand[]): S
16
17
  * Build the editor's completion provider.
17
18
  *
18
19
  * Commands and file references share one provider so a slash, an at-sign, and a
19
- * path prefix all behave the same way while typing.
20
+ * path prefix all behave the same way while typing. The at-sign is answered
21
+ * here from the workspace index; everything else is left to the base provider,
22
+ * which owns slash commands and path completion.
20
23
  */
21
- export declare function createCompletionProvider(registered: readonly RegisteredCommand[], cwd: string): CombinedAutocompleteProvider;
24
+ export declare function createCompletionProvider(registered: readonly RegisteredCommand[], cwd: string, index?: FileIndex): CombinedAutocompleteProvider;
22
25
  //# sourceMappingURL=completion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/input/completion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAGxF,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,GAAG,YAAY,EAAE,CAOpF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,4BAA4B,CAE5H"}
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/input/completion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAG5B,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAA;AAIzB,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,GAAG,YAAY,EAAE,CAOpF;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,SAAS,iBAAiB,EAAE,EACxC,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,SAAgC,GACtC,4BAA4B,CAE9B"}
@@ -1,5 +1,7 @@
1
- import { CombinedAutocompleteProvider } from '@earendil-works/pi-tui';
1
+ import { CombinedAutocompleteProvider, } from '@earendil-works/pi-tui';
2
+ import { atToken, atValue, createFileIndex, offerableCandidate, rankFiles, SUGGESTION_LIMIT, } from "./file-search.js";
2
3
  import { LOCAL_COMMANDS, LOCAL_COMMAND_DESCRIPTIONS } from "./submission.js";
4
+ import { renderTerminalText } from "../terminal-text.js";
3
5
  /**
4
6
  * Every command the editor can complete.
5
7
  *
@@ -19,9 +21,82 @@ export function commandMenu(registered) {
19
21
  * Build the editor's completion provider.
20
22
  *
21
23
  * Commands and file references share one provider so a slash, an at-sign, and a
22
- * path prefix all behave the same way while typing.
24
+ * path prefix all behave the same way while typing. The at-sign is answered
25
+ * here from the workspace index; everything else is left to the base provider,
26
+ * which owns slash commands and path completion.
23
27
  */
24
- export function createCompletionProvider(registered, cwd) {
25
- return new CombinedAutocompleteProvider(commandMenu(registered), cwd);
28
+ export function createCompletionProvider(registered, cwd, index = createFileIndex(cwd)) {
29
+ return new WorkspaceFileProvider(commandMenu(registered), cwd, index);
30
+ }
31
+ /**
32
+ * The editor's provider, with workspace files behind the at-sign.
33
+ *
34
+ * The base class gathers file rows only when an `fd` binary was handed to it,
35
+ * which this surface does not depend on; overriding the suggestion call for the
36
+ * at-token keeps one code path on every machine while the class keeps owning
37
+ * commands, argument completion, and Tab path completion.
38
+ */
39
+ class WorkspaceFileProvider extends CombinedAutocompleteProvider {
40
+ index;
41
+ constructor(commands, cwd, index) {
42
+ super([...commands], cwd);
43
+ this.index = index;
44
+ }
45
+ async getSuggestions(lines, cursorLine, cursorCol, options) {
46
+ const text = (lines[cursorLine] ?? '').slice(0, cursorCol);
47
+ const token = atToken(text);
48
+ if (token !== undefined && !isOutsideWorkspace(token.query)) {
49
+ const candidates = await this.index.candidates(options.signal);
50
+ if (options.signal.aborted)
51
+ return null;
52
+ // An index is free to be some other source of rows, so what a pick may
53
+ // insert is checked here as well: a row the menu cannot draw honestly,
54
+ // or cannot follow up on, must not reach the prompt.
55
+ const offerable = candidates.filter(candidate => offerableCandidate(candidate));
56
+ const ranked = rankFiles(token.query, offerable, SUGGESTION_LIMIT);
57
+ // The listing is a snapshot, so every row is proven again as it is
58
+ // offered: a path the workspace no longer holds, or one whose link now
59
+ // points out of it, must not reach the prompt. The proofs run together so
60
+ // the menu waits for the slowest row, and each leaves when this caller
61
+ // looks away rather than when the filesystem answers.
62
+ const proven = await Promise.all(ranked.map(candidate => this.index.reachable(candidate.path, options.signal)));
63
+ if (options.signal.aborted)
64
+ return null;
65
+ const items = ranked.filter((_, at) => proven[at] === true).map(candidate => fileItem(candidate, token.quoted));
66
+ return items.length === 0 ? null : { items, prefix: token.prefix };
67
+ }
68
+ return await super.getSuggestions(lines, cursorLine, cursorCol, options);
69
+ }
70
+ }
71
+ /**
72
+ * Whether the fragment points outside the workspace the index knows.
73
+ *
74
+ * An absolute or home path is readdir's question, not the index's, and the base
75
+ * provider already answers it; stealing it here would offer nothing at all.
76
+ */
77
+ function isOutsideWorkspace(query) {
78
+ return query.startsWith('/') || query.startsWith('~');
79
+ }
80
+ /** One suggestion as the menu draws it, and the exact text a pick inserts. */
81
+ function fileItem(candidate, quoted) {
82
+ const path = candidate.isDirectory ? candidate.path + '/' : candidate.path;
83
+ const name = candidate.path.slice(candidate.path.lastIndexOf('/') + 1);
84
+ // The base class decides where the text goes and adds a space after a file,
85
+ // so the value has to carry the at-sign and any quoting the path needs.
86
+ return {
87
+ value: atValue(path, quoted, candidate.isDirectory),
88
+ label: rowText(candidate.isDirectory ? name + '/' : name),
89
+ description: rowText(candidate.path),
90
+ };
91
+ }
92
+ /**
93
+ * A row's text as a single line the terminal draws rather than obeys.
94
+ *
95
+ * A menu row that carried a line feed would draw outside its own box, so one is
96
+ * shown as its escape; everything else a terminal would act on is consumed, and
97
+ * nothing is coloured because the menu paints its rows itself.
98
+ */
99
+ function rowText(raw) {
100
+ return renderTerminalText(raw.replaceAll('\n', '\\n'), { color: 'none' });
26
101
  }
27
102
  //# sourceMappingURL=completion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/input/completion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAqB,MAAM,wBAAwB,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAQ5E;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,UAAwC;IAClE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,0EAA0E;QAC1E,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnB,WAAW,EAAE,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE;KACpD,CAAC,CAAC,CAAA;IACH,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7G,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAwC,EAAE,GAAW;IAC5F,OAAO,IAAI,4BAA4B,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAA;AACvE,CAAC"}
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/input/completion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /** One row the workspace offers: a file, or a directory to open. */
2
+ export interface Candidate {
3
+ readonly path: string;
4
+ readonly isDirectory: boolean;
5
+ }
6
+ /**
7
+ * What the reader is typing after an at-sign.
8
+ *
9
+ * The prefix is the exact run a completion replaces; the query is what the
10
+ * search reads, without the at-sign, the opening quote, or the dot-slash habit
11
+ * a reader brings from a shell.
12
+ */
13
+ export interface AtToken {
14
+ readonly prefix: string;
15
+ readonly query: string;
16
+ readonly quoted: boolean;
17
+ }
18
+ /** Suggestions a completion menu is allowed to gather at once. */
19
+ export declare const SUGGESTION_LIMIT = 20;
20
+ /**
21
+ * Read the at-token the cursor sits in, or undefined when it sits in none.
22
+ *
23
+ * The reader may be mid-sentence, so only the last token counts. A closed
24
+ * quote ends a token: once the path is quoted whole there is nothing left to
25
+ * complete, and continuing to offer rows would replace text the reader already
26
+ * spelled out.
27
+ */
28
+ export declare function atToken(text: string): AtToken | undefined;
29
+ /**
30
+ * The text a pick inserts for a path.
31
+ *
32
+ * A quoted token is the only shape that can carry a space, a quote, or the
33
+ * other characters that end a token, so a path holding one is quoted even when
34
+ * the reader never typed a quote themselves; the reader of a token undoes it.
35
+ * A directory that had to be quoted stays open, because a quote closed behind
36
+ * the cursor would leave nowhere to keep typing the path below it.
37
+ */
38
+ export declare function atValue(path: string, quoted: boolean, open: boolean): string;
39
+ /**
40
+ * Whether a listed path may become a suggestion.
41
+ *
42
+ * A suggestion is inserted into the prompt the agent reads, so a path that
43
+ * climbs out of the workspace, or that carries bytes a terminal would act on,
44
+ * is never offered: the menu is the one place the reader cannot see the bytes
45
+ * for what they are.
46
+ */
47
+ export declare function offerablePath(path: string): boolean;
48
+ /**
49
+ * Whether a row may be offered at all.
50
+ *
51
+ * A directory is a place to keep typing, and the editor only asks for
52
+ * suggestions while the typed token holds no whitespace: offering a directory
53
+ * whose path has one would leave the reader stuck after the pick. Its files
54
+ * are still offered on their own, each with a value that needs no narrowing.
55
+ */
56
+ export declare function offerableCandidate(candidate: Candidate): boolean;
57
+ /**
58
+ * The rows that best answer the fragment, best first.
59
+ *
60
+ * Only the paths are searched, the way fzf searches a path list, so a fragment
61
+ * may match a segment anywhere in the tree. Ties fall to a directory over a
62
+ * file — a directory is a place to keep typing, a file ends the search — then
63
+ * to the shallower, shorter path, which is the one the reader is likelier to
64
+ * mean.
65
+ */
66
+ export declare function rankFiles(query: string, candidates: readonly Candidate[], limit: number): readonly Candidate[];
67
+ /** One source of workspace rows: a git listing, or a walk when git cannot answer. */
68
+ export type FileLister = (cwd: string, signal: AbortSignal) => Promise<readonly Candidate[]>;
69
+ /** What a caller may replace when it needs a different workspace or clock. */
70
+ export interface FileIndexOptions {
71
+ readonly list?: FileLister;
72
+ readonly now?: () => number;
73
+ readonly ttlMs?: number;
74
+ readonly scanTimeoutMs?: number;
75
+ readonly resolve?: (path: string) => Promise<string>;
76
+ readonly proofTimeoutMs?: number;
77
+ }
78
+ /**
79
+ * The workspace rows, gathered once and reused for a short window.
80
+ *
81
+ * Gathered lazily rather than at mount, because most sessions never type an
82
+ * at-sign, and held briefly rather than forever, because the agent writes
83
+ * files into this very tree while the reader is looking at it.
84
+ */
85
+ export interface FileIndex {
86
+ candidates(signal: AbortSignal): Promise<readonly Candidate[]>;
87
+ /**
88
+ * Whether a listed path still resolves to something this workspace holds.
89
+ *
90
+ * A listing is a snapshot, and what it described can be replaced between the
91
+ * listing and the menu: a proof taken when a row is offered is the only one
92
+ * that covers a link planted after the scan.
93
+ */
94
+ reachable(path: string, signal: AbortSignal): Promise<boolean>;
95
+ }
96
+ /**
97
+ * The rows of a workspace, from git when it owns the directory and from a walk
98
+ * when it does not.
99
+ */
100
+ export declare function listWorkspaceFiles(cwd: string, signal: AbortSignal): Promise<readonly Candidate[]>;
101
+ /** Walk a tree git does not own, breadth first, stopping at the caps above. */
102
+ export declare function walkFiles(cwd: string, signal: AbortSignal): Promise<readonly Candidate[]>;
103
+ /** A listing cache with a window, so a keystroke does not become a scan. */
104
+ export declare function createFileIndex(cwd: string, options?: FileIndexOptions): FileIndex;
105
+ //# sourceMappingURL=file-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-search.d.ts","sourceRoot":"","sources":["../../src/input/file-search.ts"],"names":[],"mappings":"AAKA,oEAAoE;AACpE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAED,kEAAkE;AAClE,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAQlC;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAmBzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAI5E;AAyDD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAKD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAGhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,CAW9G;AAgCD,qFAAqF;AACrF,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAAA;AAE5F,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAAA;IAC9D;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/D;AAqFD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAWxG;AAmOD,+EAA+E;AAC/E,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAqC/F;AAQD,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,SAAS,CA4EtF"}