@namzu/cli 14.3.0 → 15.1.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 (149) hide show
  1. package/README.md +117 -17
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +26 -26
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/acp.d.ts.map +1 -1
  6. package/dist/commands/acp.js +3 -2
  7. package/dist/commands/acp.js.map +1 -1
  8. package/dist/commands/doctor.d.ts.map +1 -1
  9. package/dist/commands/doctor.js +2 -0
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/commands/login.d.ts +2 -0
  12. package/dist/commands/login.d.ts.map +1 -1
  13. package/dist/commands/login.js +45 -7
  14. package/dist/commands/login.js.map +1 -1
  15. package/dist/commands/run.d.ts.map +1 -1
  16. package/dist/commands/run.js +36 -12
  17. package/dist/commands/run.js.map +1 -1
  18. package/dist/commands/{stubs.d.ts → serve.d.ts} +1 -10
  19. package/dist/commands/serve.d.ts.map +1 -0
  20. package/dist/commands/{stubs.js → serve.js} +1 -24
  21. package/dist/commands/serve.js.map +1 -0
  22. package/dist/commands/skills.d.ts +19 -0
  23. package/dist/commands/skills.d.ts.map +1 -0
  24. package/dist/commands/skills.js +107 -0
  25. package/dist/commands/skills.js.map +1 -0
  26. package/dist/integrations/mcp/servers.d.ts +7 -0
  27. package/dist/integrations/mcp/servers.d.ts.map +1 -1
  28. package/dist/integrations/mcp/servers.js +33 -8
  29. package/dist/integrations/mcp/servers.js.map +1 -1
  30. package/dist/integrations/sessions/store.d.ts +8 -0
  31. package/dist/integrations/sessions/store.d.ts.map +1 -1
  32. package/dist/integrations/sessions/store.js +15 -0
  33. package/dist/integrations/sessions/store.js.map +1 -1
  34. package/dist/integrations/subagents/runtime.d.ts +2 -0
  35. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  36. package/dist/integrations/subagents/runtime.js +86 -13
  37. package/dist/integrations/subagents/runtime.js.map +1 -1
  38. package/dist/integrations/updates.d.ts.map +1 -1
  39. package/dist/integrations/updates.js +29 -4
  40. package/dist/integrations/updates.js.map +1 -1
  41. package/dist/tui/App.d.ts +10 -1
  42. package/dist/tui/App.d.ts.map +1 -1
  43. package/dist/tui/App.js +1039 -252
  44. package/dist/tui/App.js.map +1 -1
  45. package/dist/tui/ChoicePicker.d.ts +2 -1
  46. package/dist/tui/ChoicePicker.d.ts.map +1 -1
  47. package/dist/tui/ChoicePicker.js +10 -6
  48. package/dist/tui/ChoicePicker.js.map +1 -1
  49. package/dist/tui/Composer.d.ts +19 -2
  50. package/dist/tui/Composer.d.ts.map +1 -1
  51. package/dist/tui/Composer.js +526 -70
  52. package/dist/tui/Composer.js.map +1 -1
  53. package/dist/tui/CopyPicker.d.ts.map +1 -1
  54. package/dist/tui/CopyPicker.js +3 -4
  55. package/dist/tui/CopyPicker.js.map +1 -1
  56. package/dist/tui/EditPromptPicker.d.ts.map +1 -1
  57. package/dist/tui/EditPromptPicker.js +3 -4
  58. package/dist/tui/EditPromptPicker.js.map +1 -1
  59. package/dist/tui/Markdown.d.ts +3 -1
  60. package/dist/tui/Markdown.d.ts.map +1 -1
  61. package/dist/tui/Markdown.js +11 -9
  62. package/dist/tui/Markdown.js.map +1 -1
  63. package/dist/tui/PermissionOverlay.d.ts +11 -6
  64. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  65. package/dist/tui/PermissionOverlay.js +13 -20
  66. package/dist/tui/PermissionOverlay.js.map +1 -1
  67. package/dist/tui/Picker.d.ts.map +1 -1
  68. package/dist/tui/Picker.js +47 -11
  69. package/dist/tui/Picker.js.map +1 -1
  70. package/dist/tui/ResumePicker.d.ts.map +1 -1
  71. package/dist/tui/ResumePicker.js +6 -1
  72. package/dist/tui/ResumePicker.js.map +1 -1
  73. package/dist/tui/StatusBar.js +3 -3
  74. package/dist/tui/StatusBar.js.map +1 -1
  75. package/dist/tui/TextPrompt.d.ts +21 -0
  76. package/dist/tui/TextPrompt.d.ts.map +1 -0
  77. package/dist/tui/TextPrompt.js +139 -0
  78. package/dist/tui/TextPrompt.js.map +1 -0
  79. package/dist/tui/Transcript.d.ts +9 -10
  80. package/dist/tui/Transcript.d.ts.map +1 -1
  81. package/dist/tui/Transcript.js +11 -12
  82. package/dist/tui/Transcript.js.map +1 -1
  83. package/dist/tui/agent.d.ts +57 -23
  84. package/dist/tui/agent.d.ts.map +1 -1
  85. package/dist/tui/agent.js +136 -86
  86. package/dist/tui/agent.js.map +1 -1
  87. package/dist/tui/exit-summary.d.ts.map +1 -1
  88. package/dist/tui/exit-summary.js +2 -1
  89. package/dist/tui/exit-summary.js.map +1 -1
  90. package/dist/tui/external-editor.d.ts +25 -0
  91. package/dist/tui/external-editor.d.ts.map +1 -0
  92. package/dist/tui/external-editor.js +169 -0
  93. package/dist/tui/external-editor.js.map +1 -0
  94. package/dist/tui/index.d.ts.map +1 -1
  95. package/dist/tui/index.js +4 -0
  96. package/dist/tui/index.js.map +1 -1
  97. package/dist/tui/live-window.d.ts +17 -11
  98. package/dist/tui/live-window.d.ts.map +1 -1
  99. package/dist/tui/live-window.js +64 -20
  100. package/dist/tui/live-window.js.map +1 -1
  101. package/dist/tui/login-prompt.d.ts +2 -0
  102. package/dist/tui/login-prompt.d.ts.map +1 -1
  103. package/dist/tui/login-prompt.js +8 -1
  104. package/dist/tui/login-prompt.js.map +1 -1
  105. package/dist/tui/mentions.d.ts +19 -0
  106. package/dist/tui/mentions.d.ts.map +1 -1
  107. package/dist/tui/mentions.js +96 -5
  108. package/dist/tui/mentions.js.map +1 -1
  109. package/dist/tui/permission-review.d.ts +59 -0
  110. package/dist/tui/permission-review.d.ts.map +1 -0
  111. package/dist/tui/permission-review.js +219 -0
  112. package/dist/tui/permission-review.js.map +1 -0
  113. package/dist/tui/run-interruption.d.ts +14 -0
  114. package/dist/tui/run-interruption.d.ts.map +1 -0
  115. package/dist/tui/run-interruption.js +67 -0
  116. package/dist/tui/run-interruption.js.map +1 -0
  117. package/dist/tui/selection-window.d.ts +18 -0
  118. package/dist/tui/selection-window.d.ts.map +1 -0
  119. package/dist/tui/selection-window.js +37 -0
  120. package/dist/tui/selection-window.js.map +1 -0
  121. package/dist/tui/slashCommands.d.ts +48 -8
  122. package/dist/tui/slashCommands.d.ts.map +1 -1
  123. package/dist/tui/slashCommands.js +129 -47
  124. package/dist/tui/slashCommands.js.map +1 -1
  125. package/dist/tui/terminal-hyperlinks.d.ts +20 -0
  126. package/dist/tui/terminal-hyperlinks.d.ts.map +1 -0
  127. package/dist/tui/terminal-hyperlinks.js +70 -0
  128. package/dist/tui/terminal-hyperlinks.js.map +1 -0
  129. package/dist/tui/types.d.ts +2 -0
  130. package/dist/tui/types.d.ts.map +1 -1
  131. package/dist/tui/use-selection-index.d.ts +8 -0
  132. package/dist/tui/use-selection-index.d.ts.map +1 -0
  133. package/dist/tui/use-selection-index.js +13 -0
  134. package/dist/tui/use-selection-index.js.map +1 -0
  135. package/dist/tui/workspace-review.d.ts +15 -0
  136. package/dist/tui/workspace-review.d.ts.map +1 -0
  137. package/dist/tui/workspace-review.js +67 -0
  138. package/dist/tui/workspace-review.js.map +1 -0
  139. package/dist/version.d.ts +10 -0
  140. package/dist/version.d.ts.map +1 -0
  141. package/dist/version.js +23 -0
  142. package/dist/version.js.map +1 -0
  143. package/package.json +8 -7
  144. package/dist/commands/stubs.d.ts.map +0 -1
  145. package/dist/commands/stubs.js.map +0 -1
  146. package/dist/tui/bottom-spacer.d.ts +0 -95
  147. package/dist/tui/bottom-spacer.d.ts.map +0 -1
  148. package/dist/tui/bottom-spacer.js +0 -83
  149. package/dist/tui/bottom-spacer.js.map +0 -1
@@ -1,15 +1,19 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
+ import { selectionWindow } from './selection-window.js';
3
4
  import { terminalDisplayText } from './terminal-display.js';
4
5
  import { theme } from './theme.js';
5
6
  /** Finite command chooser; App owns keys and applies the selected authority. */
6
- export function ChoicePicker({ title, notice, options, selected }) {
7
- const windowSize = 7;
8
- const start = Math.max(0, Math.min(selected - 3, options.length - windowSize));
9
- const visible = options.slice(start, start + windowSize);
7
+ export function ChoicePicker({ title, notice, options, selected, windowSize }) {
8
+ const { start, items: visible } = selectionWindow(options, selected, windowSize);
9
+ // A fixed 18-column label made branch names, commit subjects and skill names
10
+ // unreadable even in a wide terminal. Grow only the visible page so the
11
+ // description keeps useful room and navigating does not create a huge box
12
+ // because of one off-screen outlier.
13
+ const labelWidth = Math.min(42, Math.max(18, ...visible.map((option) => terminalDisplayText(option.label).length + 2)));
10
14
  return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focus, paddingX: 1, children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsx(Text, { color: theme.accent.user, bold: true, children: terminalDisplayText(title) }), _jsxs(Text, { color: theme.text.muted, children: [selected + 1, "/", options.length] })] }), notice ? (_jsx(Box, { paddingTop: 1, children: _jsx(Text, { color: theme.status.warn, children: terminalDisplayText(notice) }) })) : null, _jsx(Box, { flexDirection: "column", paddingTop: 1, children: visible.map((option, visibleIndex) => {
11
15
  const index = start + visibleIndex;
12
- return (_jsxs(Box, { children: [_jsx(Box, { width: 4, flexShrink: 0, children: _jsxs(Text, { color: theme.accent.user, children: [index === selected ? '›' : ' ', index < 9 ? `${index + 1}.` : ' '] }) }), _jsx(Box, { width: 18, flexShrink: 0, children: _jsx(Text, { color: index === selected ? theme.text.primary : theme.text.secondary, bold: index === selected, wrap: "truncate-end", children: terminalDisplayText(option.label) }) }), _jsx(Box, { flexGrow: 1, children: _jsxs(Text, { color: theme.text.muted, wrap: "truncate-end", children: [terminalDisplayText(option.description), option.current ? ' (current)' : ''] }) })] }, `${option.label}-${index}`));
13
- }) }), _jsx(Box, { paddingTop: 1, children: _jsx(Text, { color: theme.text.muted, children: "\u2191\u2193 navigate \u00B7 1\u20139 select \u00B7 enter apply \u00B7 esc cancel" }) })] }));
16
+ return (_jsxs(Box, { children: [_jsx(Box, { width: 4, flexShrink: 0, children: _jsxs(Text, { color: theme.accent.user, children: [index === selected ? '›' : ' ', index < 9 ? `${index + 1}.` : ' '] }) }), _jsx(Box, { width: labelWidth, flexShrink: 0, children: _jsx(Text, { color: index === selected ? theme.text.primary : theme.text.secondary, bold: index === selected, wrap: "truncate-end", children: terminalDisplayText(option.label) }) }), _jsx(Box, { flexGrow: 1, children: _jsxs(Text, { color: theme.text.muted, wrap: "truncate-end", children: [terminalDisplayText(option.description), option.current ? ' (current)' : ''] }) })] }, `${option.label}-${index}`));
17
+ }) }), _jsx(Box, { paddingTop: 1, children: _jsx(Text, { color: theme.text.muted, children: "\u2191\u2193 navigate \u00B7 PgUp/PgDn jump \u00B7 Home/End boundary \u00B7 1\u20139 select \u00B7 enter apply \u00B7 esc cancel" }) })] }));
14
18
  }
15
19
  //# sourceMappingURL=ChoicePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChoicePicker.js","sourceRoot":"","sources":["../../src/tui/ChoicePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAelC,gFAAgF;AAChF,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAqB;IACnF,MAAM,UAAU,GAAG,CAAC,CAAA;IACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAA;IAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,CAAA;IACxD,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,aAC3F,MAAC,GAAG,IAAC,cAAc,EAAC,eAAe,aAClC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,kBAClC,mBAAmB,CAAC,KAAK,CAAC,GACrB,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,aAC3B,QAAQ,GAAG,CAAC,OAAG,OAAO,CAAC,MAAM,IACxB,IACF,EACL,MAAM,CAAC,CAAC,CAAC,CACT,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YACjB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,YAAG,mBAAmB,CAAC,MAAM,CAAC,GAAQ,GAC/D,CACN,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACvC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;oBACrC,MAAM,KAAK,GAAG,KAAK,GAAG,YAAY,CAAA;oBAClC,OAAO,CACN,MAAC,GAAG,eACH,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YAC3B,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,aAC5B,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAC9B,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAC7B,GACF,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,YAC5B,KAAC,IAAI,IACJ,KAAK,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EACrE,IAAI,EAAE,KAAK,KAAK,QAAQ,EACxB,IAAI,EAAC,cAAc,YAElB,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,GAC5B,GACF,EACN,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACf,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAC,cAAc,aAChD,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,EACvC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAC7B,GACF,KArBG,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,EAAE,CAsB9B,CACN,CAAA;gBACF,CAAC,CAAC,GACG,EACN,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YACjB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,kGAA4D,GACpF,IACD,CACN,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"ChoicePicker.js","sourceRoot":"","sources":["../../src/tui/ChoicePicker.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@
5
5
  * Keys: Enter submits/steers (or runs the highlighted command while the
6
6
  * autocomplete dropdown is open), Tab completes that command or queues the
7
7
  * draft, Esc clears / closes the dropdown, ↑/↓ navigate the dropdown when open
8
- * else browse history, Ctrl+W rubs out a word, Backspace deletes.
8
+ * else browse history, Ctrl+R/Ctrl+S search history, Ctrl+W rubs out a word,
9
+ * Ctrl+G edits the draft in VISUAL/EDITOR, Backspace deletes.
9
10
  */
10
11
  import type { MessageAttachment } from '@namzu/sdk';
11
12
  import type { UserCommand } from '../user-commands/store.js';
@@ -15,6 +16,8 @@ export interface ComposerProps {
15
16
  readonly history: readonly string[];
16
17
  /** Operator-defined commands, offered in the dropdown alongside builtins. */
17
18
  readonly userCommands?: readonly UserCommand[];
19
+ /** Project-relative paths admitted once by App for `@` completion. */
20
+ readonly mentionCandidates?: readonly string[];
18
21
  /**
19
22
  * Draw nothing, but stay mounted and keep the draft.
20
23
  *
@@ -44,6 +47,10 @@ export interface ComposerProps {
44
47
  * silence this exists to end.
45
48
  */
46
49
  readonly onNotice?: (text: string) => void;
50
+ /** Step through the active model's published reasoning menu. */
51
+ readonly onStepReasoningEffort?: (direction: 'lower' | 'raise') => void;
52
+ /** Open the complete text draft in an operator-owned external editor. */
53
+ readonly onExternalEdit?: (seed: string) => Promise<string>;
47
54
  /** Empty-composer Esc ×2 asks App to select a durable prompt to edit. */
48
55
  readonly onEditPrevious?: () => void;
49
56
  /** One-shot prompt restored after App has created a source-preserving fork. */
@@ -58,6 +65,16 @@ export interface ComposerDraft {
58
65
  readonly text: string;
59
66
  readonly attachments?: readonly MessageAttachment[];
60
67
  }
68
+ /**
69
+ * Visible rows in a completion menu for this terminal height.
70
+ *
71
+ * Each option is budgeted as two rows because a description may wrap. The
72
+ * composer, borders, footer and status area retain twelve rows before the
73
+ * menu grows. A short/unknown terminal keeps the established six-row window;
74
+ * a tall terminal uses the space it actually has, capped so the menu never
75
+ * takes over the whole conversation view.
76
+ */
77
+ export declare function suggestionWindowSize(rows: number | undefined): number;
61
78
  /**
62
79
  * Terminal Ctrl+W / Unix word-rubout semantics.
63
80
  *
@@ -66,5 +83,5 @@ export interface ComposerDraft {
66
83
  * operators already bring to this key.
67
84
  */
68
85
  export declare function deletePreviousWord(source: string): string;
69
- export declare function Composer({ disabled, onSubmit, history, userCommands, hidden, escapeInterrupts, onNotice, onEditPrevious, draftToRestore, onDraftRestored, }: ComposerProps): import("react/jsx-runtime").JSX.Element | null;
86
+ export declare function Composer({ disabled, onSubmit, history, userCommands, mentionCandidates, hidden, escapeInterrupts, onNotice, onStepReasoningEffort, onExternalEdit, onEditPrevious, draftToRestore, onDraftRestored, }: ComposerProps): import("react/jsx-runtime").JSX.Element | null;
70
87
  //# sourceMappingURL=Composer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/tui/Composer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAKnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAK5D,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAAE,EAC1C,IAAI,CAAC,EAAE,kBAAkB,KACrB,IAAI,CAAA;IACT,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IAC9C;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC9C,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAClD;AAED,wFAAwF;AACxF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEnD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CACnD;AAyCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED,wBAAgB,QAAQ,CAAC,EACxB,QAAgB,EAChB,QAAQ,EACR,OAAO,EACP,YAAiB,EACjB,MAAc,EACd,gBAAwB,EACxB,QAAQ,EACR,cAAc,EACd,cAAqB,EACrB,eAAe,GACf,EAAE,aAAa,kDAsPf"}
1
+ {"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/tui/Composer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAKnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAM5D,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAAE,EAC1C,IAAI,CAAC,EAAE,kBAAkB,KACrB,IAAI,CAAA;IACT,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IAC9C,sEAAsE;IACtE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,gEAAgE;IAChE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,KAAK,IAAI,CAAA;IACvE,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3D,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC9C,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAClD;AAED,wFAAwF;AACxF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEnD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CACnD;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMrE;AA4HD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD;AAgDD,wBAAgB,QAAQ,CAAC,EACxB,QAAgB,EAChB,QAAQ,EACR,OAAO,EACP,YAAiB,EACjB,iBAAsB,EACtB,MAAc,EACd,gBAAwB,EACxB,QAAQ,EACR,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,cAAqB,EACrB,eAAe,GACf,EAAE,aAAa,kDAmoBf"}