vana-cli 0.15.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 (223) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +320 -0
  3. package/dist/cli/auth.d.ts +119 -0
  4. package/dist/cli/auth.d.ts.map +1 -0
  5. package/dist/cli/auth.js +528 -0
  6. package/dist/cli/auth.js.map +1 -0
  7. package/dist/cli/bin.d.ts +3 -0
  8. package/dist/cli/bin.d.ts.map +1 -0
  9. package/dist/cli/bin.js +15 -0
  10. package/dist/cli/bin.js.map +1 -0
  11. package/dist/cli/index.d.ts +92 -0
  12. package/dist/cli/index.d.ts.map +1 -0
  13. package/dist/cli/index.js +4703 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/cli/main.d.ts +2 -0
  16. package/dist/cli/main.d.ts.map +1 -0
  17. package/dist/cli/main.js +10 -0
  18. package/dist/cli/main.js.map +1 -0
  19. package/dist/cli/mcp-server.d.ts +15 -0
  20. package/dist/cli/mcp-server.d.ts.map +1 -0
  21. package/dist/cli/mcp-server.js +199 -0
  22. package/dist/cli/mcp-server.js.map +1 -0
  23. package/dist/cli/queries.d.ts +128 -0
  24. package/dist/cli/queries.d.ts.map +1 -0
  25. package/dist/cli/queries.js +422 -0
  26. package/dist/cli/queries.js.map +1 -0
  27. package/dist/cli/render/capabilities.d.ts +9 -0
  28. package/dist/cli/render/capabilities.d.ts.map +1 -0
  29. package/dist/cli/render/capabilities.js +24 -0
  30. package/dist/cli/render/capabilities.js.map +1 -0
  31. package/dist/cli/render/connect-renderer.d.ts +23 -0
  32. package/dist/cli/render/connect-renderer.d.ts.map +1 -0
  33. package/dist/cli/render/connect-renderer.js +259 -0
  34. package/dist/cli/render/connect-renderer.js.map +1 -0
  35. package/dist/cli/render/flow-theme.d.ts +17 -0
  36. package/dist/cli/render/flow-theme.d.ts.map +1 -0
  37. package/dist/cli/render/flow-theme.js +26 -0
  38. package/dist/cli/render/flow-theme.js.map +1 -0
  39. package/dist/cli/render/format.d.ts +27 -0
  40. package/dist/cli/render/format.d.ts.map +1 -0
  41. package/dist/cli/render/format.js +111 -0
  42. package/dist/cli/render/format.js.map +1 -0
  43. package/dist/cli/render/index.d.ts +8 -0
  44. package/dist/cli/render/index.d.ts.map +1 -0
  45. package/dist/cli/render/index.js +8 -0
  46. package/dist/cli/render/index.js.map +1 -0
  47. package/dist/cli/render/progress.d.ts +11 -0
  48. package/dist/cli/render/progress.d.ts.map +1 -0
  49. package/dist/cli/render/progress.js +56 -0
  50. package/dist/cli/render/progress.js.map +1 -0
  51. package/dist/cli/render/symbols.d.ts +11 -0
  52. package/dist/cli/render/symbols.d.ts.map +1 -0
  53. package/dist/cli/render/symbols.js +21 -0
  54. package/dist/cli/render/symbols.js.map +1 -0
  55. package/dist/cli/render/theme.d.ts +16 -0
  56. package/dist/cli/render/theme.d.ts.map +1 -0
  57. package/dist/cli/render/theme.js +57 -0
  58. package/dist/cli/render/theme.js.map +1 -0
  59. package/dist/cli/search-select.d.ts +17 -0
  60. package/dist/cli/search-select.d.ts.map +1 -0
  61. package/dist/cli/search-select.js +29 -0
  62. package/dist/cli/search-select.js.map +1 -0
  63. package/dist/cli/telemetry-contract.d.ts +146 -0
  64. package/dist/cli/telemetry-contract.d.ts.map +1 -0
  65. package/dist/cli/telemetry-contract.js +56 -0
  66. package/dist/cli/telemetry-contract.js.map +1 -0
  67. package/dist/cli/telemetry.d.ts +60 -0
  68. package/dist/cli/telemetry.d.ts.map +1 -0
  69. package/dist/cli/telemetry.js +621 -0
  70. package/dist/cli/telemetry.js.map +1 -0
  71. package/dist/cli/update-check.d.ts +21 -0
  72. package/dist/cli/update-check.d.ts.map +1 -0
  73. package/dist/cli/update-check.js +86 -0
  74. package/dist/cli/update-check.js.map +1 -0
  75. package/dist/connectors/index.d.ts +2 -0
  76. package/dist/connectors/index.d.ts.map +1 -0
  77. package/dist/connectors/index.js +2 -0
  78. package/dist/connectors/index.js.map +1 -0
  79. package/dist/connectors/registry.d.ts +55 -0
  80. package/dist/connectors/registry.d.ts.map +1 -0
  81. package/dist/connectors/registry.js +301 -0
  82. package/dist/connectors/registry.js.map +1 -0
  83. package/dist/core/cli-types.d.ts +722 -0
  84. package/dist/core/cli-types.d.ts.map +1 -0
  85. package/dist/core/cli-types.js +328 -0
  86. package/dist/core/cli-types.js.map +1 -0
  87. package/dist/core/constants.d.ts +33 -0
  88. package/dist/core/constants.d.ts.map +1 -0
  89. package/dist/core/constants.js +25 -0
  90. package/dist/core/constants.js.map +1 -0
  91. package/dist/core/errors.d.ts +47 -0
  92. package/dist/core/errors.d.ts.map +1 -0
  93. package/dist/core/errors.js +50 -0
  94. package/dist/core/errors.js.map +1 -0
  95. package/dist/core/grants.d.ts +19 -0
  96. package/dist/core/grants.d.ts.map +1 -0
  97. package/dist/core/grants.js +31 -0
  98. package/dist/core/grants.js.map +1 -0
  99. package/dist/core/index.d.ts +9 -0
  100. package/dist/core/index.d.ts.map +1 -0
  101. package/dist/core/index.js +7 -0
  102. package/dist/core/index.js.map +1 -0
  103. package/dist/core/paths.d.ts +30 -0
  104. package/dist/core/paths.d.ts.map +1 -0
  105. package/dist/core/paths.js +95 -0
  106. package/dist/core/paths.js.map +1 -0
  107. package/dist/core/state-store.d.ts +44 -0
  108. package/dist/core/state-store.d.ts.map +1 -0
  109. package/dist/core/state-store.js +101 -0
  110. package/dist/core/state-store.js.map +1 -0
  111. package/dist/core/types.d.ts +148 -0
  112. package/dist/core/types.d.ts.map +1 -0
  113. package/dist/core/types.js +2 -0
  114. package/dist/core/types.js.map +1 -0
  115. package/dist/index.d.ts +2 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +2 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/personal-server/client.d.ts +34 -0
  120. package/dist/personal-server/client.d.ts.map +1 -0
  121. package/dist/personal-server/client.js +108 -0
  122. package/dist/personal-server/client.js.map +1 -0
  123. package/dist/personal-server/index.d.ts +28 -0
  124. package/dist/personal-server/index.d.ts.map +1 -0
  125. package/dist/personal-server/index.js +157 -0
  126. package/dist/personal-server/index.js.map +1 -0
  127. package/dist/personal-server/scope-resolver.d.ts +22 -0
  128. package/dist/personal-server/scope-resolver.d.ts.map +1 -0
  129. package/dist/personal-server/scope-resolver.js +80 -0
  130. package/dist/personal-server/scope-resolver.js.map +1 -0
  131. package/dist/react/ConnectButton.d.ts +27 -0
  132. package/dist/react/ConnectButton.d.ts.map +1 -0
  133. package/dist/react/ConnectButton.js +39 -0
  134. package/dist/react/ConnectButton.js.map +1 -0
  135. package/dist/react/index.d.ts +4 -0
  136. package/dist/react/index.d.ts.map +1 -0
  137. package/dist/react/index.js +4 -0
  138. package/dist/react/index.js.map +1 -0
  139. package/dist/react/useVanaConnect.d.ts +50 -0
  140. package/dist/react/useVanaConnect.d.ts.map +1 -0
  141. package/dist/react/useVanaConnect.js +114 -0
  142. package/dist/react/useVanaConnect.js.map +1 -0
  143. package/dist/react/useVanaData.d.ts +69 -0
  144. package/dist/react/useVanaData.d.ts.map +1 -0
  145. package/dist/react/useVanaData.js +144 -0
  146. package/dist/react/useVanaData.js.map +1 -0
  147. package/dist/runtime/core/contracts.d.ts +84 -0
  148. package/dist/runtime/core/contracts.d.ts.map +1 -0
  149. package/dist/runtime/core/contracts.js +2 -0
  150. package/dist/runtime/core/contracts.js.map +1 -0
  151. package/dist/runtime/core/index.d.ts +2 -0
  152. package/dist/runtime/core/index.d.ts.map +1 -0
  153. package/dist/runtime/core/index.js +2 -0
  154. package/dist/runtime/core/index.js.map +1 -0
  155. package/dist/runtime/index.d.ts +4 -0
  156. package/dist/runtime/index.d.ts.map +1 -0
  157. package/dist/runtime/index.js +3 -0
  158. package/dist/runtime/index.js.map +1 -0
  159. package/dist/runtime/managed-playwright.d.ts +42 -0
  160. package/dist/runtime/managed-playwright.d.ts.map +1 -0
  161. package/dist/runtime/managed-playwright.js +178 -0
  162. package/dist/runtime/managed-playwright.js.map +1 -0
  163. package/dist/runtime/playwright/browser.d.ts +12 -0
  164. package/dist/runtime/playwright/browser.d.ts.map +1 -0
  165. package/dist/runtime/playwright/browser.js +229 -0
  166. package/dist/runtime/playwright/browser.js.map +1 -0
  167. package/dist/runtime/playwright/in-process-run.d.ts +6 -0
  168. package/dist/runtime/playwright/in-process-run.d.ts.map +1 -0
  169. package/dist/runtime/playwright/in-process-run.js +625 -0
  170. package/dist/runtime/playwright/in-process-run.js.map +1 -0
  171. package/dist/runtime/playwright/index.d.ts +3 -0
  172. package/dist/runtime/playwright/index.d.ts.map +1 -0
  173. package/dist/runtime/playwright/index.js +3 -0
  174. package/dist/runtime/playwright/index.js.map +1 -0
  175. package/dist/runtime/repo-paths.d.ts +2 -0
  176. package/dist/runtime/repo-paths.d.ts.map +1 -0
  177. package/dist/runtime/repo-paths.js +36 -0
  178. package/dist/runtime/repo-paths.js.map +1 -0
  179. package/dist/server/config.d.ts +38 -0
  180. package/dist/server/config.d.ts.map +1 -0
  181. package/dist/server/config.js +45 -0
  182. package/dist/server/config.js.map +1 -0
  183. package/dist/server/connect.d.ts +43 -0
  184. package/dist/server/connect.d.ts.map +1 -0
  185. package/dist/server/connect.js +115 -0
  186. package/dist/server/connect.js.map +1 -0
  187. package/dist/server/data-client.d.ts +31 -0
  188. package/dist/server/data-client.d.ts.map +1 -0
  189. package/dist/server/data-client.js +95 -0
  190. package/dist/server/data-client.js.map +1 -0
  191. package/dist/server/index.d.ts +8 -0
  192. package/dist/server/index.d.ts.map +1 -0
  193. package/dist/server/index.js +8 -0
  194. package/dist/server/index.js.map +1 -0
  195. package/dist/server/manifest-signer.d.ts +25 -0
  196. package/dist/server/manifest-signer.d.ts.map +1 -0
  197. package/dist/server/manifest-signer.js +51 -0
  198. package/dist/server/manifest-signer.js.map +1 -0
  199. package/dist/server/request-signer.d.ts +31 -0
  200. package/dist/server/request-signer.d.ts.map +1 -0
  201. package/dist/server/request-signer.js +72 -0
  202. package/dist/server/request-signer.js.map +1 -0
  203. package/dist/server/session-relay.d.ts +39 -0
  204. package/dist/server/session-relay.d.ts.map +1 -0
  205. package/dist/server/session-relay.js +74 -0
  206. package/dist/server/session-relay.js.map +1 -0
  207. package/dist/server/webhook.d.ts +11 -0
  208. package/dist/server/webhook.d.ts.map +1 -0
  209. package/dist/server/webhook.js +18 -0
  210. package/dist/server/webhook.js.map +1 -0
  211. package/dist/skills/index.d.ts +4 -0
  212. package/dist/skills/index.d.ts.map +1 -0
  213. package/dist/skills/index.js +3 -0
  214. package/dist/skills/index.js.map +1 -0
  215. package/dist/skills/paths.d.ts +33 -0
  216. package/dist/skills/paths.d.ts.map +1 -0
  217. package/dist/skills/paths.js +81 -0
  218. package/dist/skills/paths.js.map +1 -0
  219. package/dist/skills/registry.d.ts +48 -0
  220. package/dist/skills/registry.d.ts.map +1 -0
  221. package/dist/skills/registry.js +173 -0
  222. package/dist/skills/registry.js.map +1 -0
  223. package/package.json +147 -0
@@ -0,0 +1,259 @@
1
+ import { detectRenderCapabilities } from "./capabilities.js";
2
+ import { createFlowTheme } from "./flow-theme.js";
3
+ export function createFlowRenderer(options) {
4
+ const capabilities = detectRenderCapabilities();
5
+ const canAnimate = capabilities.interactive;
6
+ const theme = createFlowTheme(capabilities);
7
+ const formatTitle = options?.formatTitle ?? ((label) => label);
8
+ let titleText = "";
9
+ const noteLines = [];
10
+ const scopes = [];
11
+ let successMessage = "";
12
+ const detailLines = [];
13
+ let spinnerFrameIndex = 0;
14
+ let spinnerElapsed = 0;
15
+ let spinnerInterval = null;
16
+ let lastRenderedLineCount = 0;
17
+ let isComplete = false;
18
+ let isFailure = false;
19
+ function renderSpinnerChar() {
20
+ const frame = theme.spinnerFrames[spinnerFrameIndex];
21
+ const char = frame.dim
22
+ ? theme.dim(theme.active(frame.char))
23
+ : theme.active(frame.char);
24
+ return char;
25
+ }
26
+ function renderLine(scope) {
27
+ if (scope.state === "done") {
28
+ const check = theme.complete("\u2713");
29
+ const detail = scope.detail
30
+ ? ` ${theme.dim(`\u2014 ${scope.detail}`)}`
31
+ : "";
32
+ return ` ${check} ${scope.name}${detail}`;
33
+ }
34
+ if (scope.state === "failed") {
35
+ const x = theme.error("\u2717");
36
+ const detail = scope.detail
37
+ ? ` ${theme.dim(`\u2014 ${scope.detail}`)}`
38
+ : "";
39
+ return ` ${x} ${scope.name}${detail}`;
40
+ }
41
+ // active
42
+ const spinner = renderSpinnerChar();
43
+ return ` ${spinner} ${scope.name}`;
44
+ }
45
+ function render() {
46
+ const lines = [];
47
+ // Title
48
+ lines.push(` ${theme.heading(titleText)}`);
49
+ lines.push("");
50
+ if (!isComplete && noteLines.length > 0) {
51
+ for (const line of noteLines) {
52
+ lines.push(` ${line}`);
53
+ }
54
+ lines.push("");
55
+ }
56
+ // Scope lines
57
+ for (const scope of scopes) {
58
+ lines.push(renderLine(scope));
59
+ }
60
+ // If complete, show success/failure + details
61
+ if (isComplete && successMessage) {
62
+ lines.push("");
63
+ const prefix = isFailure
64
+ ? theme.error("\u2717")
65
+ : theme.success("\u2713");
66
+ lines.push(` ${prefix} ${theme.heading(successMessage)}`);
67
+ for (const line of detailLines) {
68
+ lines.push(` ${theme.dim(line)}`);
69
+ }
70
+ }
71
+ return lines.join("\n");
72
+ }
73
+ function paint() {
74
+ if (!canAnimate)
75
+ return;
76
+ // Clear previous render
77
+ if (lastRenderedLineCount > 0) {
78
+ process.stderr.write(`\x1b[${lastRenderedLineCount}A`);
79
+ for (let i = 0; i < lastRenderedLineCount; i++) {
80
+ process.stderr.write("\x1b[2K\n");
81
+ }
82
+ process.stderr.write(`\x1b[${lastRenderedLineCount}A`);
83
+ }
84
+ const output = render();
85
+ lastRenderedLineCount = output.split("\n").length;
86
+ process.stderr.write(output + "\n");
87
+ }
88
+ function startSpinner() {
89
+ if (!canAnimate || spinnerInterval)
90
+ return;
91
+ spinnerInterval = setInterval(() => {
92
+ spinnerElapsed += 30;
93
+ const frame = theme.spinnerFrames[spinnerFrameIndex];
94
+ if (spinnerElapsed >= frame.duration) {
95
+ spinnerElapsed = 0;
96
+ spinnerFrameIndex =
97
+ (spinnerFrameIndex + 1) % theme.spinnerFrames.length;
98
+ }
99
+ paint();
100
+ }, 30);
101
+ }
102
+ function stopSpinner() {
103
+ if (spinnerInterval) {
104
+ clearInterval(spinnerInterval);
105
+ spinnerInterval = null;
106
+ }
107
+ }
108
+ return {
109
+ title(source) {
110
+ titleText = formatTitle(source);
111
+ if (!canAnimate) {
112
+ process.stderr.write(` ${theme.heading(titleText)}\n\n`);
113
+ }
114
+ },
115
+ note(message) {
116
+ noteLines.push(message);
117
+ if (!canAnimate) {
118
+ process.stderr.write(` ${message}\n`);
119
+ }
120
+ paint();
121
+ },
122
+ scopeActive(scope) {
123
+ // Don't add duplicate active scope
124
+ const existing = scopes.find((s) => s.name === scope && s.state === "active");
125
+ if (existing)
126
+ return;
127
+ // Auto-complete any previously active scopes
128
+ for (const s of scopes) {
129
+ if (s.state === "active") {
130
+ s.state = "done";
131
+ if (!canAnimate) {
132
+ const check = theme.complete("\u2713");
133
+ const detailStr = s.detail
134
+ ? ` ${theme.dim(`\u2014 ${s.detail}`)}`
135
+ : "";
136
+ process.stderr.write(` ${check} ${s.name}${detailStr}\n`);
137
+ }
138
+ }
139
+ }
140
+ // Reset spinner for new scope
141
+ spinnerFrameIndex = 0;
142
+ spinnerElapsed = 0;
143
+ scopes.push({ name: scope, state: "active" });
144
+ startSpinner();
145
+ paint();
146
+ },
147
+ scopeDone(scope, detail) {
148
+ const existing = scopes.find((s) => s.name === scope && s.state === "active");
149
+ if (existing) {
150
+ existing.state = "done";
151
+ existing.detail = detail;
152
+ }
153
+ else {
154
+ // Scope appeared and completed immediately
155
+ scopes.push({ name: scope, state: "done", detail });
156
+ }
157
+ // Reset spinner for next active scope
158
+ spinnerFrameIndex = 0;
159
+ spinnerElapsed = 0;
160
+ if (!canAnimate) {
161
+ const check = theme.complete("\u2713");
162
+ const detailStr = detail ? ` ${theme.dim(`\u2014 ${detail}`)}` : "";
163
+ process.stderr.write(` ${check} ${scope}${detailStr}\n`);
164
+ }
165
+ paint();
166
+ },
167
+ scopeFailed(scope, error) {
168
+ const existing = scopes.find((s) => s.name === scope && s.state === "active");
169
+ if (existing) {
170
+ existing.state = "failed";
171
+ existing.detail = error;
172
+ }
173
+ else {
174
+ scopes.push({ name: scope, state: "failed", detail: error });
175
+ }
176
+ if (!canAnimate) {
177
+ const x = theme.error("\u2717");
178
+ const detailStr = error ? ` ${theme.dim(`\u2014 ${error}`)}` : "";
179
+ process.stderr.write(` ${x} ${scope}${detailStr}\n`);
180
+ }
181
+ paint();
182
+ },
183
+ success(message) {
184
+ stopSpinner();
185
+ // Resolve any still-active scopes to done
186
+ for (const scope of scopes) {
187
+ if (scope.state === "active") {
188
+ scope.state = "done";
189
+ }
190
+ }
191
+ isComplete = true;
192
+ successMessage = message;
193
+ if (!canAnimate) {
194
+ const check = theme.success("\u2713");
195
+ process.stderr.write(`\n ${check} ${theme.heading(message)}\n`);
196
+ }
197
+ paint();
198
+ },
199
+ detail(message) {
200
+ detailLines.push(message);
201
+ if (!canAnimate) {
202
+ process.stderr.write(` ${theme.dim(message)}\n`);
203
+ }
204
+ paint();
205
+ },
206
+ next(command) {
207
+ detailLines.push(`Next: ${command}`);
208
+ if (!canAnimate) {
209
+ process.stderr.write(` ${theme.dim("Next:")} ${theme.heading(command)}\n`);
210
+ }
211
+ paint();
212
+ },
213
+ fail(message) {
214
+ stopSpinner();
215
+ isFailure = true;
216
+ // Resolve any still-active scopes to failed
217
+ for (const scope of scopes) {
218
+ if (scope.state === "active") {
219
+ scope.state = "failed";
220
+ }
221
+ }
222
+ isComplete = true;
223
+ successMessage = message;
224
+ if (!canAnimate) {
225
+ const x = theme.error("\u2717");
226
+ process.stderr.write(`\n ${x} ${message}\n`);
227
+ }
228
+ paint();
229
+ },
230
+ bell() {
231
+ process.stderr.write("\x07");
232
+ },
233
+ cleanup() {
234
+ stopSpinner();
235
+ },
236
+ pauseForPrompt() {
237
+ stopSpinner();
238
+ // Final paint to show current state
239
+ paint();
240
+ process.stderr.write("\n");
241
+ },
242
+ resumeAfterPrompt() {
243
+ // Reset line count so next paint starts fresh below the prompt
244
+ lastRenderedLineCount = 0;
245
+ startSpinner();
246
+ },
247
+ };
248
+ }
249
+ export function createConnectRenderer() {
250
+ return createFlowRenderer({
251
+ formatTitle: (source) => `Connect ${source}`,
252
+ });
253
+ }
254
+ export function createLoginRenderer() {
255
+ return createFlowRenderer({
256
+ formatTitle: (target) => `Log in to ${target}`,
257
+ });
258
+ }
259
+ //# sourceMappingURL=connect-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-renderer.js","sourceRoot":"","sources":["../../../src/cli/render/connect-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { RenderCapabilities } from "./capabilities.js";
2
+ export interface FlowSpinnerFrame {
3
+ readonly char: string;
4
+ readonly duration: number;
5
+ readonly dim: boolean;
6
+ }
7
+ export interface FlowTheme {
8
+ readonly active: (text: string) => string;
9
+ readonly complete: (text: string) => string;
10
+ readonly success: (text: string) => string;
11
+ readonly error: (text: string) => string;
12
+ readonly dim: (text: string) => string;
13
+ readonly heading: (text: string) => string;
14
+ readonly spinnerFrames: readonly FlowSpinnerFrame[];
15
+ }
16
+ export declare function createFlowTheme(capabilities: RenderCapabilities): FlowTheme;
17
+ //# sourceMappingURL=flow-theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-theme.d.ts","sourceRoot":"","sources":["../../../src/cli/render/flow-theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACrD;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAwB3E"}
@@ -0,0 +1,26 @@
1
+ import { createTheme } from "./theme.js";
2
+ export function createFlowTheme(capabilities) {
3
+ const theme = createTheme(capabilities);
4
+ return {
5
+ active: theme.accent,
6
+ complete: theme.success,
7
+ success: theme.success,
8
+ error: theme.error,
9
+ dim: theme.dim,
10
+ heading: theme.heading,
11
+ spinnerFrames: [
12
+ { char: " ", duration: 180, dim: true },
13
+ { char: "\u00B7", duration: 150, dim: true },
14
+ { char: "\u2727", duration: 120, dim: false },
15
+ { char: "\u2726", duration: 200, dim: false },
16
+ { char: "\u2727", duration: 100, dim: false },
17
+ { char: "\u00B7", duration: 80, dim: true },
18
+ { char: "\u2727", duration: 120, dim: false },
19
+ { char: "\u2726", duration: 500, dim: false },
20
+ { char: "\u2727", duration: 120, dim: false },
21
+ { char: "\u00B7", duration: 150, dim: true },
22
+ { char: " ", duration: 120, dim: true },
23
+ ],
24
+ };
25
+ }
26
+ //# sourceMappingURL=flow-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-theme.js","sourceRoot":"","sources":["../../../src/cli/render/flow-theme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAkBzC,MAAM,UAAU,eAAe,CAAC,YAAgC;IAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAExC,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,OAAO;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;YACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;YAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;YAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;SACxC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type RenderCapabilities } from "./capabilities.js";
2
+ import { type RenderSymbols } from "./symbols.js";
3
+ import { type RenderTheme } from "./theme.js";
4
+ type Tone = "accent" | "success" | "warning" | "error" | "muted" | "info";
5
+ export interface HumanRenderer {
6
+ readonly capabilities: RenderCapabilities;
7
+ readonly symbols: RenderSymbols;
8
+ readonly theme: RenderTheme;
9
+ blank(): string;
10
+ title(text: string): string;
11
+ success(text: string): string;
12
+ section(text: string): string;
13
+ keyValue(label: string, value: string, tone?: Tone): string;
14
+ sourceTitle(name: string, badges?: string[]): string;
15
+ detail(text: string): string;
16
+ bullet(text: string): string;
17
+ badge(text: string, tone?: Tone): string;
18
+ }
19
+ export declare function createHumanRenderer(): HumanRenderer;
20
+ export declare function formatDisplayPath(filePath: string, homeDir?: string): string;
21
+ export declare function tableRow(columns: Array<{
22
+ text: string;
23
+ width: number;
24
+ }>): string;
25
+ export declare function formatRelativeTime(iso: string): string;
26
+ export {};
27
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/cli/render/format.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3D,KAAK,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAG1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,KAAK,IAAI,MAAM,CAAC;IAChB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC5D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CAC1C;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CA6CnD;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAe,GACrB,MAAM,CAUR;AAED,wBAAgB,QAAQ,CACtB,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9C,MAAM,CAMR;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4BtD"}
@@ -0,0 +1,111 @@
1
+ import os from "node:os";
2
+ import path from "node:path";
3
+ import { detectRenderCapabilities, } from "./capabilities.js";
4
+ import { createSymbols } from "./symbols.js";
5
+ import { createTheme } from "./theme.js";
6
+ const KEY_VALUE_LABEL_WIDTH = 14;
7
+ export function createHumanRenderer() {
8
+ const capabilities = detectRenderCapabilities();
9
+ const theme = createTheme(capabilities);
10
+ const symbols = createSymbols(capabilities);
11
+ return {
12
+ capabilities,
13
+ symbols,
14
+ theme,
15
+ blank() {
16
+ return "";
17
+ },
18
+ title(text) {
19
+ return theme.heading(text);
20
+ },
21
+ success(text) {
22
+ return `${theme.success(symbols.success)} ${theme.heading(text)}`;
23
+ },
24
+ section(text) {
25
+ return `${theme.heading(text)}`;
26
+ },
27
+ keyValue(label, value, tone = "muted") {
28
+ const rawLabel = `${label}:`;
29
+ const paddedLabel = rawLabel.length >= KEY_VALUE_LABEL_WIDTH
30
+ ? rawLabel
31
+ : rawLabel.padEnd(KEY_VALUE_LABEL_WIDTH);
32
+ return ` ${theme.label(paddedLabel)} ${applyTone(theme, tone, value)}`;
33
+ },
34
+ sourceTitle(name, badges = []) {
35
+ if (badges.length === 0) {
36
+ return theme.heading(name);
37
+ }
38
+ return `${theme.heading(name)} ${badges.join(" ")}`;
39
+ },
40
+ detail(text) {
41
+ return ` ${theme.muted(text)}`;
42
+ },
43
+ bullet(text) {
44
+ return ` ${theme.muted(symbols.bullet)} ${text}`;
45
+ },
46
+ badge(text, tone = "muted") {
47
+ return applyTone(theme, tone, text);
48
+ },
49
+ };
50
+ }
51
+ export function formatDisplayPath(filePath, homeDir = os.homedir()) {
52
+ if (filePath === homeDir) {
53
+ return "~";
54
+ }
55
+ if (filePath.startsWith(`${homeDir}${path.sep}`)) {
56
+ return `~${filePath.slice(homeDir.length)}`;
57
+ }
58
+ return filePath;
59
+ }
60
+ export function tableRow(columns) {
61
+ return columns
62
+ .map((col) => col.text.length >= col.width ? col.text : col.text.padEnd(col.width))
63
+ .join(" ");
64
+ }
65
+ export function formatRelativeTime(iso) {
66
+ const now = Date.now();
67
+ const then = new Date(iso).getTime();
68
+ if (Number.isNaN(then)) {
69
+ return iso;
70
+ }
71
+ const diffMs = now - then;
72
+ if (diffMs < 0) {
73
+ return "just now";
74
+ }
75
+ const seconds = Math.floor(diffMs / 1000);
76
+ if (seconds < 60) {
77
+ return "just now";
78
+ }
79
+ const minutes = Math.floor(seconds / 60);
80
+ if (minutes < 60) {
81
+ return `${minutes}m ago`;
82
+ }
83
+ const hours = Math.floor(minutes / 60);
84
+ if (hours < 24) {
85
+ return `${hours}h ago`;
86
+ }
87
+ const days = Math.floor(hours / 24);
88
+ if (days < 30) {
89
+ return `${days}d ago`;
90
+ }
91
+ const months = Math.floor(days / 30);
92
+ return `${months}mo ago`;
93
+ }
94
+ function applyTone(theme, tone, text) {
95
+ switch (tone) {
96
+ case "accent":
97
+ return theme.accent(text);
98
+ case "success":
99
+ return theme.success(text);
100
+ case "warning":
101
+ return theme.warning(text);
102
+ case "error":
103
+ return theme.error(text);
104
+ case "info":
105
+ return theme.info(text);
106
+ case "muted":
107
+ default:
108
+ return theme.muted(text);
109
+ }
110
+ }
111
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/cli/render/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from "./capabilities.js";
2
+ export * from "./connect-renderer.js";
3
+ export * from "./flow-theme.js";
4
+ export * from "./format.js";
5
+ export * from "./progress.js";
6
+ export * from "./symbols.js";
7
+ export * from "./theme.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/render/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from "./capabilities.js";
2
+ export * from "./connect-renderer.js";
3
+ export * from "./flow-theme.js";
4
+ export * from "./format.js";
5
+ export * from "./progress.js";
6
+ export * from "./symbols.js";
7
+ export * from "./theme.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/render/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface ProgressHandle {
2
+ start(text: string): void;
3
+ update(text: string): void;
4
+ succeed(text: string): void;
5
+ fail(text: string): void;
6
+ stop(): void;
7
+ }
8
+ export declare function createProgressHandle(options?: {
9
+ enabled?: boolean;
10
+ }): ProgressHandle;
11
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/cli/render/progress.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,cAAc,CA6CjB"}
@@ -0,0 +1,56 @@
1
+ import ora from "ora";
2
+ import { detectRenderCapabilities } from "./capabilities.js";
3
+ export function createProgressHandle(options) {
4
+ const capabilities = detectRenderCapabilities();
5
+ if (!options?.enabled || !capabilities.interactive) {
6
+ return createNoopHandle();
7
+ }
8
+ let spinner = null;
9
+ return {
10
+ start(text) {
11
+ if (spinner) {
12
+ spinner.stop();
13
+ }
14
+ spinner = ora({
15
+ text,
16
+ isEnabled: true,
17
+ discardStdin: false,
18
+ }).start();
19
+ },
20
+ update(text) {
21
+ if (!spinner) {
22
+ this.start(text);
23
+ return;
24
+ }
25
+ spinner.text = text;
26
+ },
27
+ succeed(text) {
28
+ if (!spinner) {
29
+ spinner = ora({ text, isEnabled: true, discardStdin: false });
30
+ }
31
+ spinner.succeed(text);
32
+ spinner = null;
33
+ },
34
+ fail(text) {
35
+ if (!spinner) {
36
+ spinner = ora({ text, isEnabled: true, discardStdin: false });
37
+ }
38
+ spinner.fail(text);
39
+ spinner = null;
40
+ },
41
+ stop() {
42
+ spinner?.stop();
43
+ spinner = null;
44
+ },
45
+ };
46
+ }
47
+ function createNoopHandle() {
48
+ return {
49
+ start() { },
50
+ update() { },
51
+ succeed() { },
52
+ fail() { },
53
+ stop() { },
54
+ };
55
+ }
56
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/cli/render/progress.ts"],"names":[],"mappings":"AAAA,OAAO,GAAiB,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAU7D,MAAM,UAAU,oBAAoB,CAAC,OAEpC;IACC,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,GAAe,IAAI,CAAC;IAE/B,OAAO;QACL,KAAK,CAAC,IAAY;YAChB,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC;YACD,OAAO,GAAG,GAAG,CAAC;gBACZ,IAAI;gBACJ,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QACD,MAAM,CAAC,IAAY;YACjB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,IAAY;YAClB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,IAAY;YACf,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI;YACF,OAAO,EAAE,IAAI,EAAE,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,KAAK,KAAI,CAAC;QACV,MAAM,KAAI,CAAC;QACX,OAAO,KAAI,CAAC;QACZ,IAAI,KAAI,CAAC;QACT,IAAI,KAAI,CAAC;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { RenderCapabilities } from "./capabilities.js";
2
+ export interface RenderSymbols {
3
+ readonly success: string;
4
+ readonly error: string;
5
+ readonly warning: string;
6
+ readonly info: string;
7
+ readonly bullet: string;
8
+ readonly arrow: string;
9
+ }
10
+ export declare function createSymbols(capabilities: RenderCapabilities): RenderSymbols;
11
+ //# sourceMappingURL=symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../../src/cli/render/symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,kBAAkB,GAAG,aAAa,CAoB7E"}
@@ -0,0 +1,21 @@
1
+ export function createSymbols(capabilities) {
2
+ if (!capabilities.unicode) {
3
+ return {
4
+ success: "OK",
5
+ error: "x",
6
+ warning: "!",
7
+ info: "i",
8
+ bullet: "-",
9
+ arrow: "->",
10
+ };
11
+ }
12
+ return {
13
+ success: "✓",
14
+ error: "✕",
15
+ warning: "!",
16
+ info: "•",
17
+ bullet: "•",
18
+ arrow: "→",
19
+ };
20
+ }
21
+ //# sourceMappingURL=symbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/cli/render/symbols.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,aAAa,CAAC,YAAgC;IAC5D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,GAAG;QACZ,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { RenderCapabilities } from "./capabilities.js";
2
+ export interface RenderTheme {
3
+ readonly accent: (text: string) => string;
4
+ readonly heading: (text: string) => string;
5
+ readonly label: (text: string) => string;
6
+ readonly muted: (text: string) => string;
7
+ readonly dim: (text: string) => string;
8
+ readonly success: (text: string) => string;
9
+ readonly warning: (text: string) => string;
10
+ readonly error: (text: string) => string;
11
+ readonly info: (text: string) => string;
12
+ readonly code: (text: string) => string;
13
+ }
14
+ export declare function createTheme(capabilities: RenderCapabilities): RenderTheme;
15
+ export declare function createClassicTheme(capabilities: RenderCapabilities): RenderTheme;
16
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/cli/render/theme.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQ5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAED,wBAAgB,WAAW,CAAC,YAAY,EAAE,kBAAkB,GAAG,WAAW,CAMzE;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,kBAAkB,GAC/B,WAAW,CAMb"}