zard-cli 1.1.0-alpha.0 → 1.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 (234) hide show
  1. package/README.md +122 -60
  2. package/commands/add/component-installer.d.ts +2 -1
  3. package/commands/add/component-installer.d.ts.map +1 -1
  4. package/commands/add/component-installer.js +25 -7
  5. package/commands/add/component-installer.js.map +1 -1
  6. package/commands/add/component-selector.d.ts +3 -3
  7. package/commands/add/component-selector.js +4 -4
  8. package/commands/add/dark-mode-setup.d.ts +2 -0
  9. package/commands/add/dark-mode-setup.d.ts.map +1 -1
  10. package/commands/add/dark-mode-setup.js +15 -1
  11. package/commands/add/dark-mode-setup.js.map +1 -1
  12. package/commands/add/dependency-resolver.d.ts +8 -1
  13. package/commands/add/dependency-resolver.d.ts.map +1 -1
  14. package/commands/add/dependency-resolver.js +87 -16
  15. package/commands/add/dependency-resolver.js.map +1 -1
  16. package/commands/add/index.d.ts.map +1 -1
  17. package/commands/add/index.js +55 -29
  18. package/commands/add/index.js.map +1 -1
  19. package/commands/add/stylesheet-setup.d.ts +3 -0
  20. package/commands/add/stylesheet-setup.d.ts.map +1 -0
  21. package/commands/add/stylesheet-setup.js +92 -0
  22. package/commands/add/stylesheet-setup.js.map +1 -0
  23. package/commands/add/wizard.d.ts +12 -8
  24. package/commands/add/wizard.d.ts.map +1 -1
  25. package/commands/add/wizard.js +12 -2
  26. package/commands/add/wizard.js.map +1 -1
  27. package/commands/init/config-prompter.d.ts +36 -16
  28. package/commands/init/config-prompter.d.ts.map +1 -1
  29. package/commands/init/config-prompter.js +37 -17
  30. package/commands/init/config-prompter.js.map +1 -1
  31. package/commands/init/dependencies.d.ts.map +1 -1
  32. package/commands/init/dependencies.js +35 -23
  33. package/commands/init/dependencies.js.map +1 -1
  34. package/commands/init/index.d.ts.map +1 -1
  35. package/commands/init/index.js +74 -23
  36. package/commands/init/index.js.map +1 -1
  37. package/commands/init/library-peers.d.ts +28 -0
  38. package/commands/init/library-peers.d.ts.map +1 -0
  39. package/commands/init/library-peers.js +61 -0
  40. package/commands/init/library-peers.js.map +1 -0
  41. package/commands/init/project-kind.d.ts +39 -39
  42. package/commands/init/project-kind.d.ts.map +1 -1
  43. package/commands/init/project-kind.js +45 -45
  44. package/commands/init/project-kind.js.map +1 -1
  45. package/commands/init/rtl-setup.d.ts +12 -0
  46. package/commands/init/rtl-setup.d.ts.map +1 -0
  47. package/commands/init/rtl-setup.js +42 -0
  48. package/commands/init/rtl-setup.js.map +1 -0
  49. package/commands/init/steps.d.ts +3 -4
  50. package/commands/init/steps.d.ts.map +1 -1
  51. package/commands/init/steps.js +100 -39
  52. package/commands/init/steps.js.map +1 -1
  53. package/commands/init/tailwind-setup.d.ts +5 -5
  54. package/commands/init/tailwind-setup.d.ts.map +1 -1
  55. package/commands/init/tailwind-setup.js +29 -15
  56. package/commands/init/tailwind-setup.js.map +1 -1
  57. package/commands/init/tsconfig-updater.d.ts +4 -4
  58. package/commands/init/tsconfig-updater.js +12 -12
  59. package/commands/init/tsconfig-updater.js.map +1 -1
  60. package/commands/init/update-angular-config.js +4 -4
  61. package/commands/init/vite-setup.d.ts +5 -4
  62. package/commands/init/vite-setup.d.ts.map +1 -1
  63. package/commands/init/vite-setup.js +11 -10
  64. package/commands/init/vite-setup.js.map +1 -1
  65. package/commands/init/wizard.d.ts +10 -7
  66. package/commands/init/wizard.d.ts.map +1 -1
  67. package/commands/init/wizard.js +73 -46
  68. package/commands/init/wizard.js.map +1 -1
  69. package/constants/app.constants.d.ts +17 -0
  70. package/constants/app.constants.d.ts.map +1 -1
  71. package/constants/app.constants.js +39 -16
  72. package/constants/app.constants.js.map +1 -1
  73. package/core/icons/families.d.ts +38 -0
  74. package/core/icons/families.d.ts.map +1 -0
  75. package/core/icons/families.js +26 -0
  76. package/core/icons/families.js.map +1 -0
  77. package/core/icons/icon-map.d.ts +24 -0
  78. package/core/icons/icon-map.d.ts.map +1 -0
  79. package/core/icons/icon-map.js +150 -0
  80. package/core/icons/icon-map.js.map +1 -0
  81. package/core/icons/index.d.ts +107 -0
  82. package/core/icons/index.d.ts.map +1 -0
  83. package/core/icons/index.js +183 -0
  84. package/core/icons/index.js.map +1 -0
  85. package/core/registry/registry-data.d.ts.map +1 -1
  86. package/core/registry/registry-data.js +545 -63
  87. package/core/registry/registry-data.js.map +1 -1
  88. package/core/themes/index.d.ts +1 -1
  89. package/core/themes/index.js +1 -1
  90. package/core/themes/theme-definitions.d.ts.map +1 -1
  91. package/core/themes/theme-definitions.js +61 -72
  92. package/core/themes/theme-definitions.js.map +1 -1
  93. package/index.js +3 -2
  94. package/index.js.map +1 -1
  95. package/package.json +56 -58
  96. package/ui/blocks.d.ts +29 -28
  97. package/ui/blocks.d.ts.map +1 -1
  98. package/ui/blocks.js +27 -27
  99. package/ui/blocks.js.map +1 -1
  100. package/ui/brand.d.ts +5 -5
  101. package/ui/brand.d.ts.map +1 -1
  102. package/ui/brand.js +6 -6
  103. package/ui/brand.js.map +1 -1
  104. package/ui/engine/animation/index.d.ts +2 -3
  105. package/ui/engine/animation/index.d.ts.map +1 -1
  106. package/ui/engine/animation/index.js +2 -3
  107. package/ui/engine/animation/index.js.map +1 -1
  108. package/ui/engine/ansi/index.d.ts +10 -11
  109. package/ui/engine/ansi/index.d.ts.map +1 -1
  110. package/ui/engine/ansi/index.js +6 -7
  111. package/ui/engine/ansi/index.js.map +1 -1
  112. package/ui/engine/components/index.d.ts +3 -3
  113. package/ui/engine/components/index.js +4 -4
  114. package/ui/engine/cursor/index.d.ts +3 -4
  115. package/ui/engine/cursor/index.d.ts.map +1 -1
  116. package/ui/engine/cursor/index.js +2 -3
  117. package/ui/engine/cursor/index.js.map +1 -1
  118. package/ui/engine/diff/index.d.ts +2 -3
  119. package/ui/engine/diff/index.d.ts.map +1 -1
  120. package/ui/engine/diff/index.js +5 -6
  121. package/ui/engine/diff/index.js.map +1 -1
  122. package/ui/engine/events/index.d.ts +2 -2
  123. package/ui/engine/events/index.js +3 -3
  124. package/ui/engine/events/index.js.map +1 -1
  125. package/ui/engine/focus/index.d.ts +2 -2
  126. package/ui/engine/focus/index.js +2 -2
  127. package/ui/engine/frame/index.d.ts +4 -4
  128. package/ui/engine/frame/index.js +0 -0
  129. package/ui/engine/index.d.ts +7 -7
  130. package/ui/engine/index.js +7 -7
  131. package/ui/engine/input/index.d.ts +2 -2
  132. package/ui/engine/input/index.js +11 -11
  133. package/ui/engine/input/index.js.map +1 -1
  134. package/ui/engine/layout/index.d.ts +3 -3
  135. package/ui/engine/layout/index.js +7 -7
  136. package/ui/engine/layout/index.js.map +1 -1
  137. package/ui/engine/renderer/index.d.ts +4 -4
  138. package/ui/engine/renderer/index.d.ts.map +1 -1
  139. package/ui/engine/renderer/index.js +3 -3
  140. package/ui/engine/scheduler/index.d.ts +3 -3
  141. package/ui/engine/scheduler/index.js +5 -5
  142. package/ui/engine/scheduler/index.js.map +1 -1
  143. package/ui/engine/screen/index.d.ts +5 -5
  144. package/ui/engine/screen/index.d.ts.map +1 -1
  145. package/ui/engine/screen/index.js +7 -7
  146. package/ui/engine/screen/index.js.map +1 -1
  147. package/ui/engine/terminal/index.d.ts +49 -3
  148. package/ui/engine/terminal/index.d.ts.map +1 -1
  149. package/ui/engine/terminal/index.js +149 -18
  150. package/ui/engine/terminal/index.js.map +1 -1
  151. package/ui/engine/testing/index.d.ts +4 -4
  152. package/ui/engine/testing/index.d.ts.map +1 -1
  153. package/ui/engine/testing/index.js +2 -2
  154. package/ui/engine/theme/index.d.ts +2 -3
  155. package/ui/engine/theme/index.d.ts.map +1 -1
  156. package/ui/engine/theme/index.js +3 -4
  157. package/ui/engine/theme/index.js.map +1 -1
  158. package/ui/engine/utils/index.d.ts +2 -2
  159. package/ui/engine/utils/index.js +4 -4
  160. package/ui/engine/utils/index.js.map +1 -1
  161. package/ui/gate.d.ts +7 -7
  162. package/ui/gate.d.ts.map +1 -1
  163. package/ui/gate.js +5 -5
  164. package/ui/index.d.ts +3 -3
  165. package/ui/index.js +3 -3
  166. package/ui/log-sink.d.ts +9 -9
  167. package/ui/log-sink.d.ts.map +1 -1
  168. package/ui/log-sink.js +9 -9
  169. package/ui/log-sink.js.map +1 -1
  170. package/ui/output.d.ts +6 -6
  171. package/ui/output.d.ts.map +1 -1
  172. package/ui/output.js +6 -6
  173. package/ui/output.js.map +1 -1
  174. package/ui/report.d.ts +8 -8
  175. package/ui/report.d.ts.map +1 -1
  176. package/ui/report.js +7 -7
  177. package/ui/report.js.map +1 -1
  178. package/ui/runner.d.ts +31 -22
  179. package/ui/runner.d.ts.map +1 -1
  180. package/ui/runner.js +41 -25
  181. package/ui/runner.js.map +1 -1
  182. package/ui/style.d.ts +7 -7
  183. package/ui/style.d.ts.map +1 -1
  184. package/ui/style.js +8 -8
  185. package/ui/style.js.map +1 -1
  186. package/ui/testing/fake-tty.d.ts +4 -4
  187. package/ui/testing/fake-tty.js +4 -4
  188. package/ui/text-input.d.ts +15 -14
  189. package/ui/text-input.d.ts.map +1 -1
  190. package/ui/text-input.js +15 -13
  191. package/ui/text-input.js.map +1 -1
  192. package/ui/theme.d.ts +4 -4
  193. package/ui/theme.js +4 -4
  194. package/utils/angular-compat.d.ts +21 -0
  195. package/utils/angular-compat.d.ts.map +1 -0
  196. package/utils/angular-compat.js +52 -0
  197. package/utils/angular-compat.js.map +1 -0
  198. package/utils/config.d.ts +16 -9
  199. package/utils/config.d.ts.map +1 -1
  200. package/utils/config.js +35 -13
  201. package/utils/config.js.map +1 -1
  202. package/utils/errors.d.ts +11 -0
  203. package/utils/errors.d.ts.map +1 -1
  204. package/utils/errors.js +14 -0
  205. package/utils/errors.js.map +1 -1
  206. package/utils/get-project-info.d.ts +6 -6
  207. package/utils/get-project-info.d.ts.map +1 -1
  208. package/utils/get-project-info.js +106 -36
  209. package/utils/get-project-info.js.map +1 -1
  210. package/utils/http-client.d.ts.map +1 -1
  211. package/utils/http-client.js +20 -5
  212. package/utils/http-client.js.map +1 -1
  213. package/utils/icon-catalog.d.ts +34 -0
  214. package/utils/icon-catalog.d.ts.map +1 -0
  215. package/utils/icon-catalog.js +63 -0
  216. package/utils/icon-catalog.js.map +1 -0
  217. package/utils/logger.d.ts +3 -3
  218. package/utils/logger.js +9 -9
  219. package/utils/logger.js.map +1 -1
  220. package/utils/package-manager.d.ts +25 -25
  221. package/utils/package-manager.js +50 -50
  222. package/utils/package-manager.js.map +1 -1
  223. package/utils/registry.d.ts +100 -6
  224. package/utils/registry.d.ts.map +1 -1
  225. package/utils/registry.js +141 -22
  226. package/utils/registry.js.map +1 -1
  227. package/utils/schema-version.d.ts +21 -0
  228. package/utils/schema-version.d.ts.map +1 -0
  229. package/utils/schema-version.js +28 -0
  230. package/utils/schema-version.js.map +1 -0
  231. package/utils/source-file.d.ts +21 -21
  232. package/utils/source-file.d.ts.map +1 -1
  233. package/utils/source-file.js +24 -24
  234. package/utils/source-file.js.map +1 -1
@@ -1,8 +1,8 @@
1
1
  /**
2
- * screen — a fronteira "ligar/desligar a UI". Amarra terminal, renderer,
3
- * scheduler, input, focus e animation. Setup/teardown simétricos à prova de
4
- * crash (ADR-0007). Traz a edição interativa embutida (input/select/checkbox…).
5
- * (Implementação real.)
2
+ * screen — the "turn the UI on and off" boundary. Ties together terminal,
3
+ * renderer, scheduler, input, focus and animation. Symmetric, crash-proof
4
+ * setup/teardown (ADR-0007). Carries the built-in interactive editing
5
+ * (input/select/checkbox…).
6
6
  */
7
7
  import { performance } from 'node:perf_hooks';
8
8
  import { createAnimationClock } from '../animation/index.js';
@@ -32,7 +32,7 @@ export function createScreen(options = {}) {
32
32
  const start = performance.now();
33
33
  let focusDisposables = [];
34
34
  const subs = [];
35
- // ── edição interativa embutida: o componente focado recebe a tecla ──
35
+ // ── built-in interactive editing: the focused component receives the key ──
36
36
  function editNode(node, e) {
37
37
  const p = node.props;
38
38
  const key = node.key ?? '';
@@ -179,8 +179,8 @@ export function createScreen(options = {}) {
179
179
  for (const cb of [...globalKeys])
180
180
  cb(e);
181
181
  }
182
- // render síncrono: mantém a árvore (e o valor dos nós interativos) fresca
183
- // entre teclas digitadas em rajada, antes do próximo evento.
182
+ // synchronous render: keeps the tree (and the value of the interactive
183
+ // nodes) fresh between keys typed in a burst, before the next event.
184
184
  scheduler.renderSync();
185
185
  }
186
186
  const exitHandler = () => teardown();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/screen/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/screen/index.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,44 @@
1
1
  /**
2
- * terminal — ÚNICA fronteira de I/O de baixo nível (ADR-0007). Ninguém mais
3
- * toca process.stdout/stdin. Detecta capacidades e faz raw mode/alt-screen.
4
- * (Fatia vertical / PoC: implementação real mínima.)
2
+ * terminal — the ONE low-level I/O boundary (ADR-0007). Nothing else touches
3
+ * process.stdout/stdin. Detects capabilities and handles raw mode and the
4
+ * alternate screen.
5
5
  */
6
6
  import type { ColorLevel } from '../ansi/index.js';
7
7
  import type { Disposable } from '../events/index.js';
8
8
  import type { Size } from '../frame/index.js';
9
9
  export type { ColorLevel } from '../ansi/index.js';
10
+ /** The pair of streams the UI will live on, and how to give them back. */
11
+ export interface TerminalStreams {
12
+ readonly input: NodeJS.ReadStream;
13
+ readonly output: NodeJS.WriteStream;
14
+ /** True when the terminal had to be opened outside the inherited fds. */
15
+ readonly fromControllingTerminal: boolean;
16
+ /** Closes whatever we opened; a no-op when these are the standard fds. */
17
+ close(): void;
18
+ }
19
+ /**
20
+ * Opens the process's controlling terminal, ignoring the inherited fds.
21
+ *
22
+ * `/dev/tty` is the terminal the process is attached to, whatever the caller did
23
+ * with stdin and stdout. It is the mechanism `fzf`, `less` and `git rebase -i`
24
+ * use to stay interactive inside a pipe; on Windows, `CONIN$`/`CONOUT$` are the
25
+ * equivalent.
26
+ *
27
+ * Returns null when there is no terminal at all — real CI, a cron job, a
28
+ * container with no tty — and that is what keeps the headless path working
29
+ * where it should.
30
+ */
31
+ export declare function openControllingTerminal(): TerminalStreams | null;
32
+ /**
33
+ * Where the UI should be drawn.
34
+ *
35
+ * The inherited fds come first: when both are already a terminal, there is
36
+ * nothing to resolve. The rest exists because of `npx` — on POSIX it runs the
37
+ * binary through a shell and the process's stdin arrives as a pipe, which made
38
+ * the CLI conclude nobody could answer and fall back to text mode. The terminal
39
+ * was there the whole time; it was the route to it that had gone missing.
40
+ */
41
+ export declare function resolveTerminalStreams(stdin?: NodeJS.ReadStream, stdout?: NodeJS.WriteStream, openTerminal?: () => TerminalStreams | null): TerminalStreams | null;
10
42
  export interface TerminalCapabilities {
11
43
  readonly colors: ColorLevel;
12
44
  readonly unicode: boolean;
@@ -34,5 +66,19 @@ export interface TerminalOptions {
34
66
  readonly stdout?: NodeJS.WriteStream;
35
67
  readonly stdin?: NodeJS.ReadStream;
36
68
  }
69
+ /**
70
+ * How many colours this terminal accepts.
71
+ *
72
+ * This decides whether the banner's gradient comes out in the theme's exact
73
+ * tones or quantized — and the answer has to be the same on all three platforms,
74
+ * or the same CLI has three appearances. `COLORTERM` alone does not give that:
75
+ * Windows Terminal, VS Code and iTerm all do 24-bit and none of them set it, so
76
+ * falling through to the `ansi16` at the end would treat them as 1990 terminals.
77
+ *
78
+ * The order runs from the most explicit to the most assumed: what the user asked
79
+ * for (NO_COLOR/FORCE_COLOR), what the terminal declares, who it says it is, and
80
+ * only then a guess from the platform.
81
+ */
82
+ export declare function detectColorLevel(env: NodeJS.ProcessEnv, isTTY: boolean, force?: ColorLevel, platform?: NodeJS.Platform): ColorLevel;
37
83
  export declare function createTerminal(options?: TerminalOptions): Terminal;
38
84
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/terminal/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AACD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,IAAI,IAAI,CAAC;IACrB,WAAW,IAAI,IAAI,CAAC;IACpB,cAAc,IAAI,IAAI,CAAC;IACvB,aAAa,IAAI,IAAI,CAAC;IACtB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,UAAU,CAAC;IAC/C,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,UAAU,CAAC;IAChD,OAAO,IAAI,IAAI,CAAC;CACjB;AACD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpC;AAcD,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,QAAQ,CAmFtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/terminal/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IACpC,yEAAyE;IACzE,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,0EAA0E;IAC1E,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,IAAI,eAAe,GAAG,IAAI,CAgDhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,GAAE,MAAM,CAAC,UAA0B,EACxC,MAAM,GAAE,MAAM,CAAC,WAA4B,EAC3C,YAAY,GAAE,MAAM,eAAe,GAAG,IAA8B,GACnE,eAAe,GAAG,IAAI,CAMxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AACD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,IAAI,IAAI,CAAC;IACrB,WAAW,IAAI,IAAI,CAAC;IACpB,cAAc,IAAI,IAAI,CAAC;IACvB,aAAa,IAAI,IAAI,CAAC;IACtB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,UAAU,CAAC;IAC/C,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,UAAU,CAAC;IAChD,OAAO,IAAI,IAAI,CAAC;CACjB;AACD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpC;AAsBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,KAAK,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,UAAU,EAClB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,UAAU,CAoCZ;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,QAAQ,CAmFtE"}
@@ -1,30 +1,161 @@
1
1
  /**
2
- * terminal — ÚNICA fronteira de I/O de baixo nível (ADR-0007). Ninguém mais
3
- * toca process.stdout/stdin. Detecta capacidades e faz raw mode/alt-screen.
4
- * (Fatia vertical / PoC: implementação real mínima.)
2
+ * terminal — the ONE low-level I/O boundary (ADR-0007). Nothing else touches
3
+ * process.stdout/stdin. Detects capabilities and handles raw mode and the
4
+ * alternate screen.
5
5
  */
6
+ import { closeSync, openSync } from 'node:fs';
7
+ import { ReadStream, WriteStream } from 'node:tty';
6
8
  import { csi } from '../ansi/index.js';
7
- function detectColor(out, force) {
9
+ /**
10
+ * Opens the process's controlling terminal, ignoring the inherited fds.
11
+ *
12
+ * `/dev/tty` is the terminal the process is attached to, whatever the caller did
13
+ * with stdin and stdout. It is the mechanism `fzf`, `less` and `git rebase -i`
14
+ * use to stay interactive inside a pipe; on Windows, `CONIN$`/`CONOUT$` are the
15
+ * equivalent.
16
+ *
17
+ * Returns null when there is no terminal at all — real CI, a cron job, a
18
+ * container with no tty — and that is what keeps the headless path working
19
+ * where it should.
20
+ */
21
+ export function openControllingTerminal() {
22
+ const [inPath, outPath] = process.platform === 'win32' ? ['CONIN$', 'CONOUT$'] : ['/dev/tty', '/dev/tty'];
23
+ let inFd;
24
+ let outFd;
25
+ try {
26
+ inFd = openSync(inPath, 'r');
27
+ outFd = openSync(outPath, 'w');
28
+ const input = new ReadStream(inFd);
29
+ const output = new WriteStream(outFd);
30
+ if (!input.isTTY || !output.isTTY)
31
+ throw new Error('not a terminal');
32
+ // Without this the screen does not reflow when the window is resized: Node
33
+ // only wires SIGWINCH to the `process.stdout` it creates itself.
34
+ // `_refreshSize` is internal, so the optional chaining is deliberate — if it
35
+ // disappears, reflow is lost, not the interface.
36
+ const onResize = () => output._refreshSize?.();
37
+ process.on('SIGWINCH', onResize);
38
+ return {
39
+ input,
40
+ output,
41
+ fromControllingTerminal: true,
42
+ close() {
43
+ process.off('SIGWINCH', onResize);
44
+ for (const stream of [input, output]) {
45
+ try {
46
+ stream.destroy();
47
+ }
48
+ catch {
49
+ /* already closed */
50
+ }
51
+ }
52
+ },
53
+ };
54
+ }
55
+ catch {
56
+ for (const fd of [inFd, outFd]) {
57
+ if (fd === undefined)
58
+ continue;
59
+ try {
60
+ closeSync(fd);
61
+ }
62
+ catch {
63
+ /* nunca chegou a abrir */
64
+ }
65
+ }
66
+ return null;
67
+ }
68
+ }
69
+ /**
70
+ * Where the UI should be drawn.
71
+ *
72
+ * The inherited fds come first: when both are already a terminal, there is
73
+ * nothing to resolve. The rest exists because of `npx` — on POSIX it runs the
74
+ * binary through a shell and the process's stdin arrives as a pipe, which made
75
+ * the CLI conclude nobody could answer and fall back to text mode. The terminal
76
+ * was there the whole time; it was the route to it that had gone missing.
77
+ */
78
+ export function resolveTerminalStreams(stdin = process.stdin, stdout = process.stdout, openTerminal = openControllingTerminal) {
79
+ if (stdin.isTTY && stdout.isTTY) {
80
+ return { input: stdin, output: stdout, fromControllingTerminal: false, close: () => undefined };
81
+ }
82
+ return openTerminal();
83
+ }
84
+ /** Emuladores que fazem 24 bits sem anunciar nada em COLORTERM. */
85
+ const TRUECOLOR_PROGRAMS = new Set([
86
+ 'vscode',
87
+ 'iterm.app',
88
+ 'hyper',
89
+ 'wezterm',
90
+ 'ghostty',
91
+ 'tabby',
92
+ 'rio',
93
+ 'warpterminal',
94
+ ]);
95
+ const TRUECOLOR_TERMS = ['kitty', 'alacritty', 'wezterm', 'contour', 'foot', 'ghostty', 'direct'];
96
+ const FORCE_LEVELS = {
97
+ '0': 'none',
98
+ '1': 'ansi16',
99
+ '2': 'ansi256',
100
+ '3': 'truecolor',
101
+ };
102
+ /**
103
+ * How many colours this terminal accepts.
104
+ *
105
+ * This decides whether the banner's gradient comes out in the theme's exact
106
+ * tones or quantized — and the answer has to be the same on all three platforms,
107
+ * or the same CLI has three appearances. `COLORTERM` alone does not give that:
108
+ * Windows Terminal, VS Code and iTerm all do 24-bit and none of them set it, so
109
+ * falling through to the `ansi16` at the end would treat them as 1990 terminals.
110
+ *
111
+ * The order runs from the most explicit to the most assumed: what the user asked
112
+ * for (NO_COLOR/FORCE_COLOR), what the terminal declares, who it says it is, and
113
+ * only then a guess from the platform.
114
+ */
115
+ export function detectColorLevel(env, isTTY, force, platform = process.platform) {
8
116
  if (force)
9
117
  return force;
10
- const env = process.env;
11
118
  if (env['NO_COLOR'] !== undefined)
12
119
  return 'none';
13
- if (!out.isTTY)
120
+ const forced = FORCE_LEVELS[(env['FORCE_COLOR'] ?? '').trim()];
121
+ if (forced)
122
+ return forced;
123
+ if (!isTTY)
14
124
  return 'none';
15
- const ct = (env['COLORTERM'] ?? '').toLowerCase();
16
- if (ct.includes('truecolor') || ct.includes('24bit'))
17
- return 'truecolor';
18
125
  const term = (env['TERM'] ?? '').toLowerCase();
126
+ if (term === 'dumb')
127
+ return 'none';
128
+ const colorterm = (env['COLORTERM'] ?? '').toLowerCase();
129
+ if (colorterm.includes('truecolor') || colorterm.includes('24bit'))
130
+ return 'truecolor';
131
+ // Windows Terminal and the Windows 10+ console both do 24-bit; neither sets
132
+ // COLORTERM or TERM, so without this line the CLI would look poorer exactly
133
+ // where it was developed.
134
+ if (env['WT_SESSION'] !== undefined || env['ConEmuANSI'] === 'ON')
135
+ return 'truecolor';
136
+ const program = (env['TERM_PROGRAM'] ?? '').toLowerCase();
137
+ if (TRUECOLOR_PROGRAMS.has(program))
138
+ return 'truecolor';
139
+ if (TRUECOLOR_TERMS.some(known => term.includes(known)))
140
+ return 'truecolor';
141
+ // macOS Terminal.app announces xterm-256color and means it: 256 colours, no
142
+ // 24-bit. The generic branch below would give the same answer, but saying it
143
+ // here stops a future TERM rule from promoting it by mistake.
144
+ if (program === 'apple_terminal')
145
+ return 'ansi256';
19
146
  if (term.includes('256'))
20
147
  return 'ansi256';
148
+ // Windows with none of the hints above is still Windows 10 or newer: Node 20,
149
+ // which the CLI requires, runs on nothing older.
150
+ if (platform === 'win32')
151
+ return 'truecolor';
21
152
  return 'ansi16';
22
153
  }
23
154
  export function createTerminal(options = {}) {
24
155
  const out = options.stdout ?? process.stdout;
25
156
  const inp = options.stdin ?? process.stdin;
26
157
  const caps = {
27
- colors: detectColor(out, options.forceColor),
158
+ colors: detectColorLevel(process.env, Boolean(out.isTTY), options.forceColor),
28
159
  unicode: (process.env['TERM'] ?? '') !== 'dumb',
29
160
  mouse: Boolean(out.isTTY),
30
161
  synchronizedOutput: Boolean(out.isTTY),
@@ -53,10 +184,10 @@ export function createTerminal(options = {}) {
53
184
  exitRawMode() {
54
185
  if (inp.isTTY && rawOn) {
55
186
  inp.setRawMode(false);
56
- // O `resume()` de enterRawMode segura uma referência viva no event
57
- // loop. Sem devolver o stdin ao estado pausado, o processo continua
58
- // rodando depois que o wizard termina: a tela cai, o resumo aparece e
59
- // o shell nunca volta — parece que o enter final não fez nada.
187
+ // enterRawMode's `resume()` holds a live reference in the event loop.
188
+ // Without putting stdin back to paused, the process keeps running after
189
+ // the wizard ends: the screen drops, the summary appears and the shell
190
+ // never comes back — it looks as if the final enter did nothing.
60
191
  inp.pause();
61
192
  rawOn = false;
62
193
  }
@@ -89,10 +220,10 @@ export function createTerminal(options = {}) {
89
220
  return { dispose: () => inp.off('data', cb) };
90
221
  },
91
222
  restore() {
92
- // O reset de atributos vem primeiro, e antes de sair do alt-screen: o
93
- // último frame quase sempre termina no meio de uma cor, e sem zerar o SGR
94
- // esse atributo continua valendo no buffer principal — o shell do usuário
95
- // fica escrevendo colorido depois que a CLI já saiu.
223
+ // The attribute reset comes first, and before leaving the alt-screen: the
224
+ // last frame almost always ends mid-colour, and without clearing SGR that
225
+ // attribute still applies in the main buffer — the user's shell keeps
226
+ // writing in colour after the CLI has exited.
96
227
  out.write('\x1b[0m');
97
228
  this.showCursor(true);
98
229
  this.enableMouse(false);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/terminal/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/terminal/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * testing — utilitários para teste/PoC. Um Terminal em memória que captura
3
- * writes de forma determinística (sem TTY) para snapshots e asserções de bytes.
2
+ * testing — test utilities. An in-memory Terminal that captures writes
3
+ * deterministically (no TTY) for snapshots and byte assertions.
4
4
  */
5
5
  import type { ColorLevel } from '../ansi/index.js';
6
6
  import type { Size } from '../frame/index.js';
@@ -8,9 +8,9 @@ import type { Terminal } from '../terminal/index.js';
8
8
  export interface MockTerminal extends Terminal {
9
9
  /** Todos os chunks escritos, na ordem. */
10
10
  readonly writes: readonly string[];
11
- /** Último chunk escrito (o patch do frame). */
11
+ /** The last chunk written (the frame's patch). */
12
12
  readonly lastWrite: string;
13
- /** Concatenação de tudo. */
13
+ /** Everything written so far, concatenated. */
14
14
  output(): string;
15
15
  reset(): void;
16
16
  /** Injeta bytes no stdin simulado (dispara onData). */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/testing/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4BAA4B;IAC5B,MAAM,IAAI,MAAM,CAAC;IACjB,KAAK,IAAI,IAAI,CAAC;IACd,uDAAuD;IACvD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,2CAA2C;IAC3C,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAwDlF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/testing/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,MAAM,IAAI,MAAM,CAAC;IACjB,KAAK,IAAI,IAAI,CAAC;IACd,uDAAuD;IACvD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,2CAA2C;IAC3C,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAwDlF"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * testing — utilitários para teste/PoC. Um Terminal em memória que captura
3
- * writes de forma determinística (sem TTY) para snapshots e asserções de bytes.
2
+ * testing — test utilities. An in-memory Terminal that captures writes
3
+ * deterministically (no TTY) for snapshots and byte assertions.
4
4
  */
5
5
  export function createMockTerminal(options = {}) {
6
6
  let size = options.size ?? { cols: 80, rows: 24 };
@@ -1,7 +1,6 @@
1
1
  /**
2
- * theme — tokens semânticos de cor e resolução/downsampling para a
3
- * capacidade do terminal. Temas são imutáveis; `extend` cria derivados.
4
- * (Fatia vertical / PoC: implementação real.)
2
+ * theme — semantic colour tokens, resolved and downsampled to the terminal's
3
+ * capability. Themes are immutable; `extend` creates derived ones.
5
4
  */
6
5
  import type { AnsiColor, ColorLevel } from '../ansi/index.js';
7
6
  import type { ColorRef } from '../frame/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/theme/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;IACjE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;CAC9C;AA0HD,wBAAgB,WAAW,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,KAAK,CAEpE;AAED,eAAO,MAAM,YAAY,EAAE,KAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/engine/theme/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;IACjE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;CAC9C;AA0HD,wBAAgB,WAAW,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,KAAK,CAEpE;AAED,eAAO,MAAM,YAAY,EAAE,KAAiC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  /**
2
- * theme — tokens semânticos de cor e resolução/downsampling para a
3
- * capacidade do terminal. Temas são imutáveis; `extend` cria derivados.
4
- * (Fatia vertical / PoC: implementação real.)
2
+ * theme — semantic colour tokens, resolved and downsampled to the terminal's
3
+ * capability. Themes are immutable; `extend` creates derived ones.
5
4
  */
6
5
  const DEFAULT_TOKENS = {
7
6
  primary: '#7c93ff',
@@ -48,7 +47,7 @@ function parseColor(c) {
48
47
  return [Number(m[1]), Number(m[2]), Number(m[3])];
49
48
  return null;
50
49
  }
51
- // RGB → índice do cubo 6x6x6 + rampa de cinza do ANSI-256.
50
+ // RGB → index in the 6x6x6 cube plus the ANSI-256 grayscale ramp.
52
51
  function toAnsi256(r, g, b) {
53
52
  if (r === g && g === b) {
54
53
  if (r < 8)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/theme/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/theme/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * utils — helpers puros de string/Unicode. Sem I/O, sem dependências.
3
- * (Fatia vertical / PoC: implementação real, suficiente para ASCII + wide + emoji.)
2
+ * utils — pure string/Unicode helpers. No I/O, no dependencies.
3
+ * Enough for ASCII, wide characters and emoji.
4
4
  */
5
5
  export declare function graphemes(text: string): string[];
6
6
  export declare function charWidth(grapheme: string): 0 | 1 | 2;
@@ -1,6 +1,6 @@
1
1
  /**
2
- * utils — helpers puros de string/Unicode. Sem I/O, sem dependências.
3
- * (Fatia vertical / PoC: implementação real, suficiente para ASCII + wide + emoji.)
2
+ * utils — pure string/Unicode helpers. No I/O, no dependencies.
3
+ * Enough for ASCII, wide characters and emoji.
4
4
  */
5
5
  const SEG = typeof Intl.Segmenter === 'function'
6
6
  ? new Intl.Segmenter('en', { granularity: 'grapheme' })
@@ -30,7 +30,7 @@ function isWide(cp) {
30
30
  (cp >= 0xfe30 && cp <= 0xfe6f) ||
31
31
  (cp >= 0xff00 && cp <= 0xff60) || // Fullwidth forms
32
32
  (cp >= 0xffe0 && cp <= 0xffe6) ||
33
- (cp >= 0x1f300 && cp <= 0x1faff) || // emoji & símbolos
33
+ (cp >= 0x1f300 && cp <= 0x1faff) || // emoji & symbols
34
34
  (cp >= 0x20000 && cp <= 0x3fffd) // CJK Ext B+
35
35
  );
36
36
  }
@@ -104,7 +104,7 @@ export function wrapText(text, width) {
104
104
  return out.length ? out : [''];
105
105
  }
106
106
  function splitWords(line) {
107
- // mantém os espaços agregados à palavra seguinte para preservar recuos simples
107
+ // keeps spaces attached to the following word so simple indents survive
108
108
  return line.length ? (line.match(/\s*\S+\s*|\s+/g) ?? [line]) : [''];
109
109
  }
110
110
  export function truncate(text, width, ellipsis = '…') {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,GAAG,GACP,OAAQ,IAAgC,CAAC,SAAS,KAAK,UAAU;IAC/D,CAAC,CAAC,IAAK,IAA2B,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC/E,CAAC,CAAC,IAAI,CAAC;AAEX,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,SAAS,MAAM,CAAC,EAAU;IACxB,OAAO,CACL,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,cAAc;QAChD,EAAE,KAAK,MAAM;QACb,EAAE,KAAK,MAAM;QACb,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,uBAAuB;QACzD,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,yBAAyB;QAC3D,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,YAAY;QAC9C,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,cAAc;QAChD,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK;QACvC,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,mBAAmB;QACrD,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,aAAa;QAC/C,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,kBAAkB;QACpD,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,mBAAmB;QACvD,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC,aAAa;KAC/C,CAAC;AACJ,CAAC;AAED,yCAAyC;AACzC,SAAS,WAAW,CAAC,EAAU;IAC7B,OAAO,CACL,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,EAAE,KAAK,MAAM,CACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,WAAW;IAClE,IAAI,WAAW,CAAC,EAAE,CAAC;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,KAAa;IAClD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,KAAK,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACpC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACf,IAAI,GAAG,EAAE,CAAC;gBACV,KAAK,GAAG,CAAC,CAAC;YACZ,CAAC;YACD,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC;gBACf,wDAAwD;gBACxD,IAAI,IAAI,EAAE,CAAC;oBACT,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACf,IAAI,GAAG,EAAE,CAAC;oBACV,KAAK,GAAG,CAAC,CAAC;gBACZ,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;wBACvB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACf,IAAI,GAAG,EAAE,CAAC;wBACV,KAAK,GAAG,CAAC,CAAC;oBACZ,CAAC;oBACD,IAAI,IAAI,CAAC,CAAC;oBACV,KAAK,IAAI,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,IAAI,CAAC;gBACb,KAAK,IAAI,EAAE,CAAC;YACd,CAAC;QACH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,+EAA+E;IAC/E,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,KAAa,EAAE,QAAQ,GAAG,GAAG;IAClE,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;IACvC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM;YAAE,MAAM;QAC3B,GAAG,IAAI,CAAC,CAAC;QACT,CAAC,IAAI,EAAE,CAAC;IACV,CAAC;IACD,OAAO,GAAG,GAAG,QAAQ,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;IACnE,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG;YAAE,GAAG,IAAI,CAAC,CAAC;QAC9C,GAAG,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,IAAI,GAAG;YAAE,MAAM;IACxB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,OAAO,GAAG,4BAA4B,CAAC;AAC7C,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/engine/utils/index.ts"],"names":[],"mappings":"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"}
package/ui/gate.d.ts CHANGED
@@ -1,18 +1,18 @@
1
1
  /**
2
- * Gate — deixa um fluxo async esperar por uma resposta do teclado.
2
+ * Gate — lets an async flow wait for an answer from the keyboard.
3
3
  *
4
- * Wizards lineares (escolher → resolver → confirmar → instalar) ficam muito
5
- * mais legíveis escritos como uma função async do que como uma máquina de
6
- * estados no `onKey`. O gate é a peça que falta: o fluxo aguarda `wait()`, o
7
- * handler de teclado chama `settle()` quando o usuário decide.
4
+ * Linear wizards (choose → resolve → confirm → install) read far better written
5
+ * as one async function than as a state machine inside `onKey`. The gate is the
6
+ * missing piece: the flow awaits `wait()`, and the key handler calls `settle()`
7
+ * when the user decides.
8
8
  */
9
9
  export interface Gate<T> {
10
10
  wait(): Promise<T>;
11
- /** Entrega a resposta. Chamadas seguintes são ignoradas. */
11
+ /** Delivers the answer. Later calls are ignored. */
12
12
  settle(value: T): void;
13
13
  /** Interrompe quem espera, propagando o erro. */
14
14
  fail(error: unknown): void;
15
- /** true enquanto alguém aguarda uma resposta. */
15
+ /** True while somebody is waiting for an answer. */
16
16
  readonly pending: boolean;
17
17
  }
18
18
  export declare function createGate<T>(): Gate<T>;
package/ui/gate.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/ui/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,4DAA4D;IAC5D,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,iDAAiD;IACjD,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CA2BvC"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/ui/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,oDAAoD;IACpD,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,iDAAiD;IACjD,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CA2BvC"}
package/ui/gate.js CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * Gate — deixa um fluxo async esperar por uma resposta do teclado.
2
+ * Gate — lets an async flow wait for an answer from the keyboard.
3
3
  *
4
- * Wizards lineares (escolher → resolver → confirmar → instalar) ficam muito
5
- * mais legíveis escritos como uma função async do que como uma máquina de
6
- * estados no `onKey`. O gate é a peça que falta: o fluxo aguarda `wait()`, o
7
- * handler de teclado chama `settle()` quando o usuário decide.
4
+ * Linear wizards (choose → resolve → confirm → install) read far better written
5
+ * as one async function than as a state machine inside `onKey`. The gate is the
6
+ * missing piece: the flow awaits `wait()`, and the key handler calls `settle()`
7
+ * when the user decides.
8
8
  */
9
9
  export function createGate() {
10
10
  let resolveFn = null;