@ariacode/cli 0.2.1 → 0.2.3

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 (66) hide show
  1. package/README.md +78 -11
  2. package/dist/actions/db-ask.d.ts +7 -1
  3. package/dist/actions/db-ask.js +27 -10
  4. package/dist/actions/db-ask.js.map +1 -1
  5. package/dist/actions/db-explain.d.ts +6 -0
  6. package/dist/actions/db-explain.js +25 -7
  7. package/dist/actions/db-explain.js.map +1 -1
  8. package/dist/actions/db-migrate.d.ts +4 -0
  9. package/dist/actions/db-migrate.js +2 -2
  10. package/dist/actions/db-migrate.js.map +1 -1
  11. package/dist/actions/db-schema.d.ts +3 -1
  12. package/dist/actions/db-schema.js +18 -5
  13. package/dist/actions/db-schema.js.map +1 -1
  14. package/dist/actions/upgrade-deps.d.ts +6 -0
  15. package/dist/actions/upgrade-deps.js +20 -2
  16. package/dist/actions/upgrade-deps.js.map +1 -1
  17. package/dist/actions/upgrade-prisma.d.ts +4 -0
  18. package/dist/actions/upgrade-prisma.js +2 -2
  19. package/dist/actions/upgrade-prisma.js.map +1 -1
  20. package/dist/actions.d.ts +106 -71
  21. package/dist/actions.js +438 -204
  22. package/dist/actions.js.map +1 -1
  23. package/dist/agent.d.ts +0 -1
  24. package/dist/agent.js +1 -2
  25. package/dist/agent.js.map +1 -1
  26. package/dist/app.d.ts +3 -3
  27. package/dist/app.js +3 -3
  28. package/dist/cli.d.ts +0 -1
  29. package/dist/cli.js +37 -5
  30. package/dist/cli.js.map +1 -1
  31. package/dist/config.d.ts +17 -1
  32. package/dist/config.js +40 -1
  33. package/dist/config.js.map +1 -1
  34. package/dist/output/schemas.d.ts +92 -0
  35. package/dist/output/schemas.js +142 -0
  36. package/dist/output/schemas.js.map +1 -0
  37. package/dist/parser.d.ts +10 -3
  38. package/dist/parser.js +70 -8
  39. package/dist/parser.js.map +1 -1
  40. package/dist/provider.d.ts +7 -2
  41. package/dist/provider.js +6 -4
  42. package/dist/provider.js.map +1 -1
  43. package/dist/repo.d.ts +0 -1
  44. package/dist/repo.js +6 -9
  45. package/dist/repo.js.map +1 -1
  46. package/dist/safety.d.ts +0 -4
  47. package/dist/safety.js +0 -4
  48. package/dist/safety.js.map +1 -1
  49. package/dist/storage/queries.d.ts +39 -0
  50. package/dist/storage/queries.js +211 -0
  51. package/dist/storage/queries.js.map +1 -0
  52. package/dist/tools.d.ts +6 -7
  53. package/dist/tools.js +20 -7
  54. package/dist/tools.js.map +1 -1
  55. package/dist/ui/diff-renderer.d.ts +28 -0
  56. package/dist/ui/diff-renderer.js +388 -0
  57. package/dist/ui/diff-renderer.js.map +1 -0
  58. package/dist/ui/highlight.d.ts +25 -0
  59. package/dist/ui/highlight.js +239 -0
  60. package/dist/ui/highlight.js.map +1 -0
  61. package/dist/ui.d.ts +3 -16
  62. package/dist/ui.js +7 -28
  63. package/dist/ui.js.map +1 -1
  64. package/dist/upgrade/prisma-upgrade.js +5 -2
  65. package/dist/upgrade/prisma-upgrade.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1,25 @@
1
+ /**
2
+ * In-house syntax highlighter for terminal output.
3
+ *
4
+ * Applies ANSI color codes via picocolors to TypeScript, JavaScript, Prisma,
5
+ * JSON, and Markdown code snippets. Zero external dependencies beyond picocolors.
6
+ *
7
+ */
8
+ export type SupportedLanguage = 'typescript' | 'javascript' | 'prisma' | 'json' | 'markdown';
9
+ export interface HighlightOptions {
10
+ /** Language identifier; if unknown/unsupported, returns input unchanged */
11
+ language: string;
12
+ }
13
+ /**
14
+ * Apply minimal syntax highlighting using ANSI color codes via picocolors.
15
+ * Returns the input code unchanged if the language is unsupported or if any
16
+ * error occurs — never throws.
17
+ *
18
+ */
19
+ export declare function highlight(code: string, options: HighlightOptions): string;
20
+ /**
21
+ * Infer a SupportedLanguage from a file path/extension.
22
+ * Returns null if the extension is not in the supported set.
23
+ *
24
+ */
25
+ export declare function inferLanguageFromPath(filePath: string): SupportedLanguage | null;
@@ -0,0 +1,239 @@
1
+ /**
2
+ * In-house syntax highlighter for terminal output.
3
+ *
4
+ * Applies ANSI color codes via picocolors to TypeScript, JavaScript, Prisma,
5
+ * JSON, and Markdown code snippets. Zero external dependencies beyond picocolors.
6
+ *
7
+ */
8
+ import pc from 'picocolors';
9
+ // ---------------------------------------------------------------------------
10
+ // TypeScript / JavaScript
11
+ // ---------------------------------------------------------------------------
12
+ const TS_KEYWORDS = new Set([
13
+ 'const', 'let', 'var', 'function', 'class', 'interface', 'type',
14
+ 'return', 'if', 'else', 'for', 'while', 'async', 'await', 'export',
15
+ 'import', 'from', 'default', 'extends', 'implements', 'new', 'this',
16
+ 'typeof', 'instanceof', 'in', 'of', 'do', 'switch', 'case', 'break',
17
+ 'continue', 'throw', 'try', 'catch', 'finally', 'void', 'null',
18
+ 'undefined', 'true', 'false', 'static', 'readonly', 'private',
19
+ 'protected', 'public', 'abstract', 'enum', 'namespace', 'declare',
20
+ 'as', 'is', 'keyof', 'never', 'any', 'unknown', 'object', 'string',
21
+ 'number', 'boolean', 'symbol', 'bigint', 'delete', 'yield', 'super',
22
+ 'with', 'debugger',
23
+ ]);
24
+ /**
25
+ * Highlight TypeScript or JavaScript code.
26
+ */
27
+ function highlightTS(code) {
28
+ const placeholders = [];
29
+ // Step 1: extract comments and strings into placeholders
30
+ // Template literals (backtick) may span lines and contain ${...} — match them separately.
31
+ let result = code.replace(/(\/\/.*$|\/\*[\s\S]*?\*\/|`(?:[^`\\]|\\.|\$\{[^}]*\})*`|(['"])(?:[^'"\\n]|\\.)*\2)/gm, (match) => {
32
+ const idx = placeholders.length;
33
+ if (match.startsWith('//') || match.startsWith('/*')) {
34
+ placeholders.push(pc.gray(match));
35
+ }
36
+ else {
37
+ placeholders.push(pc.green(match));
38
+ }
39
+ return `\x00TOKEN_${idx}\x00`;
40
+ });
41
+ // Step 2: numbers
42
+ result = result.replace(/\b\d+(\.\d+)?\b/g, (match) => {
43
+ const idx = placeholders.length;
44
+ placeholders.push(pc.yellow(match));
45
+ return `\x00TOKEN_${idx}\x00`;
46
+ });
47
+ // Step 3: keywords
48
+ result = result.replace(/\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g, (match) => {
49
+ if (TS_KEYWORDS.has(match)) {
50
+ const idx = placeholders.length;
51
+ placeholders.push(pc.cyan(match));
52
+ return `\x00TOKEN_${idx}\x00`;
53
+ }
54
+ return match;
55
+ });
56
+ // Step 4: restore placeholders
57
+ return result.replace(/\x00TOKEN_(\d+)\x00/g, (_, i) => placeholders[Number(i)]);
58
+ }
59
+ // ---------------------------------------------------------------------------
60
+ // Prisma
61
+ // ---------------------------------------------------------------------------
62
+ const PRISMA_KEYWORDS = new Set([
63
+ 'model', 'enum', 'datasource', 'generator', 'provider', 'url',
64
+ 'output', 'previewFeatures', 'relationMode',
65
+ ]);
66
+ const PRISMA_FIELD_TYPES = new Set([
67
+ 'String', 'Int', 'Float', 'Boolean', 'DateTime', 'Json',
68
+ 'Bytes', 'Decimal', 'BigInt',
69
+ ]);
70
+ /**
71
+ * Highlight Prisma schema code.
72
+ */
73
+ function highlightPrisma(code) {
74
+ const placeholders = [];
75
+ // Step 1: line comments and strings
76
+ let result = code.replace(/(\/\/.*$|(['"])(?:(?!\2)[^\\]|\\.)*\2)/gm, (match) => {
77
+ const idx = placeholders.length;
78
+ if (match.startsWith('//')) {
79
+ placeholders.push(pc.gray(match));
80
+ }
81
+ else {
82
+ placeholders.push(pc.green(match));
83
+ }
84
+ return `\x00TOKEN_${idx}\x00`;
85
+ });
86
+ // Step 2: directives (@id, @@unique, etc.)
87
+ result = result.replace(/@@?[a-zA-Z]+/g, (match) => {
88
+ const idx = placeholders.length;
89
+ placeholders.push(pc.magenta(match));
90
+ return `\x00TOKEN_${idx}\x00`;
91
+ });
92
+ // Step 3: field types (capitalized identifiers in the type set)
93
+ result = result.replace(/\b([A-Z][a-zA-Z0-9]*)\b/g, (match) => {
94
+ if (PRISMA_FIELD_TYPES.has(match)) {
95
+ const idx = placeholders.length;
96
+ placeholders.push(pc.blue(match));
97
+ return `\x00TOKEN_${idx}\x00`;
98
+ }
99
+ return match;
100
+ });
101
+ // Step 4: keywords
102
+ result = result.replace(/\b([a-zA-Z_][a-zA-Z0-9_]*)\b/g, (match) => {
103
+ if (PRISMA_KEYWORDS.has(match)) {
104
+ const idx = placeholders.length;
105
+ placeholders.push(pc.cyan(match));
106
+ return `\x00TOKEN_${idx}\x00`;
107
+ }
108
+ return match;
109
+ });
110
+ // Step 5: restore
111
+ return result.replace(/\x00TOKEN_(\d+)\x00/g, (_, i) => placeholders[Number(i)]);
112
+ }
113
+ // ---------------------------------------------------------------------------
114
+ // JSON
115
+ // ---------------------------------------------------------------------------
116
+ /**
117
+ * Highlight JSON code.
118
+ */
119
+ function highlightJSON(code) {
120
+ const placeholders = [];
121
+ // Step 1: string keys (before colon) and string values
122
+ // Keys: "key":
123
+ let result = code.replace(/"([^"\\]|\\.)*"\s*:/g, (match) => {
124
+ const idx = placeholders.length;
125
+ // color just the key string, keep the colon plain
126
+ const colonIdx = match.lastIndexOf(':');
127
+ const key = match.slice(0, colonIdx);
128
+ const colon = match.slice(colonIdx);
129
+ placeholders.push(pc.cyan(key) + colon);
130
+ return `\x00TOKEN_${idx}\x00`;
131
+ });
132
+ // Values: remaining strings
133
+ result = result.replace(/"([^"\\]|\\.)*"/g, (match) => {
134
+ const idx = placeholders.length;
135
+ placeholders.push(pc.green(match));
136
+ return `\x00TOKEN_${idx}\x00`;
137
+ });
138
+ // Step 2: numbers
139
+ result = result.replace(/\b\d+(\.\d+)?\b/g, (match) => {
140
+ const idx = placeholders.length;
141
+ placeholders.push(pc.yellow(match));
142
+ return `\x00TOKEN_${idx}\x00`;
143
+ });
144
+ // Step 3: booleans and null
145
+ result = result.replace(/\b(true|false|null)\b/g, (match) => {
146
+ const idx = placeholders.length;
147
+ placeholders.push(pc.cyan(match));
148
+ return `\x00TOKEN_${idx}\x00`;
149
+ });
150
+ // Step 4: restore
151
+ return result.replace(/\x00TOKEN_(\d+)\x00/g, (_, i) => placeholders[Number(i)]);
152
+ }
153
+ // ---------------------------------------------------------------------------
154
+ // Markdown
155
+ // ---------------------------------------------------------------------------
156
+ /**
157
+ * Highlight Markdown code (line-by-line for headings, inline for others).
158
+ */
159
+ function highlightMarkdown(code) {
160
+ const lines = code.split('\n');
161
+ const processed = lines.map((line) => {
162
+ // Fenced code block lines (``` or ~~~)
163
+ if (/^```/.test(line) || /^~~~/.test(line)) {
164
+ return pc.green(line);
165
+ }
166
+ // Headings: lines starting with #
167
+ if (/^#{1,6}\s/.test(line)) {
168
+ return pc.bold(pc.blue(line));
169
+ }
170
+ // Process inline patterns
171
+ // Inline code: `code`
172
+ line = line.replace(/`([^`]+)`/g, (match) => pc.green(match));
173
+ // Bold: **text**
174
+ line = line.replace(/\*\*([^*]+)\*\*/g, (match) => pc.bold(match));
175
+ return line;
176
+ });
177
+ return processed.join('\n');
178
+ }
179
+ // ---------------------------------------------------------------------------
180
+ // Public API
181
+ // ---------------------------------------------------------------------------
182
+ /** Maximum input size for highlighting (100 KB). Larger inputs returned as-is. */
183
+ const MAX_HIGHLIGHT_SIZE = 100_000;
184
+ /**
185
+ * Apply minimal syntax highlighting using ANSI color codes via picocolors.
186
+ * Returns the input code unchanged if the language is unsupported or if any
187
+ * error occurs — never throws.
188
+ *
189
+ */
190
+ export function highlight(code, options) {
191
+ if (code.length > MAX_HIGHLIGHT_SIZE)
192
+ return code;
193
+ try {
194
+ const lang = options.language;
195
+ switch (lang) {
196
+ case 'typescript':
197
+ case 'javascript':
198
+ return highlightTS(code);
199
+ case 'prisma':
200
+ return highlightPrisma(code);
201
+ case 'json':
202
+ return highlightJSON(code);
203
+ case 'markdown':
204
+ return highlightMarkdown(code);
205
+ default:
206
+ return code;
207
+ }
208
+ }
209
+ catch {
210
+ return code;
211
+ }
212
+ }
213
+ /**
214
+ * Infer a SupportedLanguage from a file path/extension.
215
+ * Returns null if the extension is not in the supported set.
216
+ *
217
+ */
218
+ export function inferLanguageFromPath(filePath) {
219
+ const ext = filePath.slice(filePath.lastIndexOf('.')).toLowerCase();
220
+ switch (ext) {
221
+ case '.ts':
222
+ case '.tsx':
223
+ return 'typescript';
224
+ case '.js':
225
+ case '.jsx':
226
+ case '.mjs':
227
+ case '.cjs':
228
+ return 'javascript';
229
+ case '.prisma':
230
+ return 'prisma';
231
+ case '.json':
232
+ return 'json';
233
+ case '.md':
234
+ return 'markdown';
235
+ default:
236
+ return null;
237
+ }
238
+ }
239
+ //# sourceMappingURL=highlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlight.js","sourceRoot":"","sources":["../../src/ui/highlight.ts"],"names":[],"mappings":"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"}
package/dist/ui.d.ts CHANGED
@@ -4,7 +4,6 @@
4
4
  * Provides color output, diff rendering, table rendering, confirmation prompts,
5
5
  * progress indicators, and path formatting.
6
6
  *
7
- * Requirements: 20.1–20.9, 11.6
8
7
  */
9
8
  /**
10
9
  * Color configuration mode
@@ -16,16 +15,14 @@ export type ColorMode = "auto" | "always" | "never";
16
15
  *
17
16
  * - "always": colors on regardless of TTY
18
17
  * - "never": colors off regardless of TTY
19
- * - "auto": colors on only when stdout is a TTY (Req 20.9)
18
+ * - "auto": colors on only when stdout is a TTY
20
19
  *
21
- * Requirements: 20.2, 20.9
22
20
  */
23
21
  export declare function resolveColorEnabled(mode: ColorMode): boolean;
24
22
  /**
25
23
  * Initialize the UI module with color mode and quiet flag.
26
24
  * Must be called once at startup before any output functions are used.
27
25
  *
28
- * Requirements: 20.1, 20.2, 20.3, 20.9
29
26
  */
30
27
  export declare function initUI(colorMode: ColorMode, quiet: boolean): void;
31
28
  /**
@@ -54,6 +51,8 @@ export declare function blue(text: string): string;
54
51
  export declare function magenta(text: string): string;
55
52
  /** Apply gray color when colors are enabled */
56
53
  export declare function gray(text: string): string;
54
+ /** Strip ANSI escape codes from a string. */
55
+ export declare function stripAnsi(str: string): string;
57
56
  /**
58
57
  * Print a line to stdout.
59
58
  * Always printed regardless of quiet mode (essential output).
@@ -63,7 +62,6 @@ export declare function print(message: string): void;
63
62
  * Print a line to stdout only when quiet mode is NOT active.
64
63
  * Use for non-essential informational output.
65
64
  *
66
- * Requirement: 20.3
67
65
  */
68
66
  export declare function info(message: string): void;
69
67
  /**
@@ -87,7 +85,6 @@ export declare function error(message: string): void;
87
85
  * @param diffText - Unified diff text (e.g. from `createPatch`)
88
86
  * @returns Colorized diff string ready for terminal output
89
87
  *
90
- * Requirements: 11.6, 20.6
91
88
  */
92
89
  export declare function renderDiff(diffText: string): string;
93
90
  /**
@@ -98,7 +95,6 @@ export declare function renderDiff(diffText: string): string;
98
95
  * @param newContent - New file content
99
96
  * @returns Colorized unified diff string
100
97
  *
101
- * Requirements: 11.6, 20.6
102
98
  */
103
99
  export declare function generateAndRenderDiff(filePath: string, oldContent: string, newContent: string): string;
104
100
  /**
@@ -107,7 +103,6 @@ export declare function generateAndRenderDiff(filePath: string, oldContent: stri
107
103
  *
108
104
  * @param diffs - Array of { path, diff } objects
109
105
  *
110
- * Requirements: 11.6, 20.6
111
106
  */
112
107
  export declare function printDiffPreview(diffs: Array<{
113
108
  path: string;
@@ -129,14 +124,12 @@ export interface TableOptions {
129
124
  * @param rows - Array of row arrays (each row is an array of cell values)
130
125
  * @returns Formatted table string ready for terminal output
131
126
  *
132
- * Requirement: 20.4
133
127
  */
134
128
  export declare function renderTable(options: TableOptions, rows: string[][]): string;
135
129
  /**
136
130
  * Print a table to stdout.
137
131
  * Suppressed in quiet mode.
138
132
  *
139
- * Requirement: 20.4
140
133
  */
141
134
  export declare function printTable(options: TableOptions, rows: string[][]): void;
142
135
  /**
@@ -145,12 +138,10 @@ export declare function printTable(options: TableOptions, rows: string[][]): voi
145
138
  * Returns `true` if the user confirms, `false` if they decline.
146
139
  * Throws `UserCancelledError` if the user cancels (Ctrl+C / SIGINT).
147
140
  *
148
- * Requirement: 20.5
149
141
  */
150
142
  export declare function confirm(message: string): Promise<boolean>;
151
143
  /**
152
144
  * Error thrown when the user cancels a confirmation prompt.
153
- * Maps to exit code 130 (Requirement 19.7).
154
145
  */
155
146
  export declare class ConfirmCancelledError extends Error {
156
147
  constructor();
@@ -164,7 +155,6 @@ export declare class ConfirmCancelledError extends Error {
164
155
  * // ... do work ...
165
156
  * spinner.succeed("Analysis complete");
166
157
  *
167
- * Requirement: 20.7
168
158
  */
169
159
  export interface Spinner {
170
160
  /** Start the spinner animation */
@@ -183,7 +173,6 @@ export interface Spinner {
183
173
  * The spinner is suppressed in quiet mode or when colors are disabled
184
174
  * (non-interactive environments).
185
175
  *
186
- * Requirement: 20.7
187
176
  */
188
177
  export declare function createSpinner(initialMessage: string): Spinner;
189
178
  /**
@@ -192,12 +181,10 @@ export declare function createSpinner(initialMessage: string): Spinner;
192
181
  * If the path is already relative or cannot be made relative, it is returned
193
182
  * as-is. Absolute paths outside the project root are returned unchanged.
194
183
  *
195
- * Requirement: 20.8
196
184
  */
197
185
  export declare function formatPath(filePath: string, projectRoot: string): string;
198
186
  /**
199
187
  * Format multiple file paths relative to the project root.
200
188
  *
201
- * Requirement: 20.8
202
189
  */
203
190
  export declare function formatPaths(filePaths: string[], projectRoot: string): string[];
package/dist/ui.js CHANGED
@@ -4,7 +4,6 @@
4
4
  * Provides color output, diff rendering, table rendering, confirmation prompts,
5
5
  * progress indicators, and path formatting.
6
6
  *
7
- * Requirements: 20.1–20.9, 11.6
8
7
  */
9
8
  import pc from "picocolors";
10
9
  import Table from "cli-table3";
@@ -22,9 +21,8 @@ let _quietMode = false;
22
21
  *
23
22
  * - "always": colors on regardless of TTY
24
23
  * - "never": colors off regardless of TTY
25
- * - "auto": colors on only when stdout is a TTY (Req 20.9)
24
+ * - "auto": colors on only when stdout is a TTY
26
25
  *
27
- * Requirements: 20.2, 20.9
28
26
  */
29
27
  export function resolveColorEnabled(mode) {
30
28
  if (mode === "always")
@@ -38,7 +36,6 @@ export function resolveColorEnabled(mode) {
38
36
  * Initialize the UI module with color mode and quiet flag.
39
37
  * Must be called once at startup before any output functions are used.
40
38
  *
41
- * Requirements: 20.1, 20.2, 20.3, 20.9
42
39
  */
43
40
  export function initUI(colorMode, quiet) {
44
41
  _colorEnabled = resolveColorEnabled(colorMode);
@@ -99,9 +96,12 @@ export function magenta(text) {
99
96
  export function gray(text) {
100
97
  return _colorEnabled ? pc.gray(text) : text;
101
98
  }
102
- // ---------------------------------------------------------------------------
103
- // Output helpers — respect quiet mode (Requirement 20.3)
104
- // ---------------------------------------------------------------------------
99
+ // eslint-disable-next-line no-control-regex
100
+ const ANSI_REGEX = /\x1b\[[0-9;]*m/g;
101
+ /** Strip ANSI escape codes from a string. */
102
+ export function stripAnsi(str) {
103
+ return str.replace(ANSI_REGEX, '');
104
+ }
105
105
  /**
106
106
  * Print a line to stdout.
107
107
  * Always printed regardless of quiet mode (essential output).
@@ -113,7 +113,6 @@ export function print(message) {
113
113
  * Print a line to stdout only when quiet mode is NOT active.
114
114
  * Use for non-essential informational output.
115
115
  *
116
- * Requirement: 20.3
117
116
  */
118
117
  export function info(message) {
119
118
  if (!_quietMode) {
@@ -145,9 +144,6 @@ export function warn(message) {
145
144
  export function error(message) {
146
145
  process.stderr.write(red("Error: ") + message + "\n");
147
146
  }
148
- // ---------------------------------------------------------------------------
149
- // 13.2 Diff rendering (Requirements: 11.6, 20.6)
150
- // ---------------------------------------------------------------------------
151
147
  /**
152
148
  * Colorize a single line of a unified diff.
153
149
  *
@@ -157,7 +153,6 @@ export function error(message) {
157
153
  * - Lines starting with "---" / "+++" are bold (file headers)
158
154
  * - Context lines are left unstyled
159
155
  *
160
- * Requirement: 20.6
161
156
  */
162
157
  function colorizeDiffLine(line) {
163
158
  if (!_colorEnabled)
@@ -182,7 +177,6 @@ function colorizeDiffLine(line) {
182
177
  * @param diffText - Unified diff text (e.g. from `createPatch`)
183
178
  * @returns Colorized diff string ready for terminal output
184
179
  *
185
- * Requirements: 11.6, 20.6
186
180
  */
187
181
  export function renderDiff(diffText) {
188
182
  return diffText
@@ -198,7 +192,6 @@ export function renderDiff(diffText) {
198
192
  * @param newContent - New file content
199
193
  * @returns Colorized unified diff string
200
194
  *
201
- * Requirements: 11.6, 20.6
202
195
  */
203
196
  export function generateAndRenderDiff(filePath, oldContent, newContent) {
204
197
  const patch = createPatch(filePath, oldContent, newContent, "current", "proposed");
@@ -210,7 +203,6 @@ export function generateAndRenderDiff(filePath, oldContent, newContent) {
210
203
  *
211
204
  * @param diffs - Array of { path, diff } objects
212
205
  *
213
- * Requirements: 11.6, 20.6
214
206
  */
215
207
  export function printDiffPreview(diffs) {
216
208
  if (_quietMode)
@@ -227,7 +219,6 @@ export function printDiffPreview(diffs) {
227
219
  * @param rows - Array of row arrays (each row is an array of cell values)
228
220
  * @returns Formatted table string ready for terminal output
229
221
  *
230
- * Requirement: 20.4
231
222
  */
232
223
  export function renderTable(options, rows) {
233
224
  const tableOptions = {
@@ -252,23 +243,18 @@ export function renderTable(options, rows) {
252
243
  * Print a table to stdout.
253
244
  * Suppressed in quiet mode.
254
245
  *
255
- * Requirement: 20.4
256
246
  */
257
247
  export function printTable(options, rows) {
258
248
  if (_quietMode)
259
249
  return;
260
250
  print(renderTable(options, rows));
261
251
  }
262
- // ---------------------------------------------------------------------------
263
- // 13.4 Confirmation prompts (Requirement: 20.5)
264
- // ---------------------------------------------------------------------------
265
252
  /**
266
253
  * Prompt the user for a yes/no confirmation using the `prompts` library.
267
254
  *
268
255
  * Returns `true` if the user confirms, `false` if they decline.
269
256
  * Throws `UserCancelledError` if the user cancels (Ctrl+C / SIGINT).
270
257
  *
271
- * Requirement: 20.5
272
258
  */
273
259
  export async function confirm(message) {
274
260
  const response = await prompts({
@@ -291,7 +277,6 @@ export async function confirm(message) {
291
277
  }
292
278
  /**
293
279
  * Error thrown when the user cancels a confirmation prompt.
294
- * Maps to exit code 130 (Requirement 19.7).
295
280
  */
296
281
  export class ConfirmCancelledError extends Error {
297
282
  constructor() {
@@ -306,7 +291,6 @@ const SPINNER_INTERVAL_MS = 80;
306
291
  * The spinner is suppressed in quiet mode or when colors are disabled
307
292
  * (non-interactive environments).
308
293
  *
309
- * Requirement: 20.7
310
294
  */
311
295
  export function createSpinner(initialMessage) {
312
296
  let frameIndex = 0;
@@ -374,16 +358,12 @@ export function createSpinner(initialMessage) {
374
358
  },
375
359
  };
376
360
  }
377
- // ---------------------------------------------------------------------------
378
- // 13.6 Path formatting (Requirement: 20.8)
379
- // ---------------------------------------------------------------------------
380
361
  /**
381
362
  * Format a file path relative to the project root for readable terminal output.
382
363
  *
383
364
  * If the path is already relative or cannot be made relative, it is returned
384
365
  * as-is. Absolute paths outside the project root are returned unchanged.
385
366
  *
386
- * Requirement: 20.8
387
367
  */
388
368
  export function formatPath(filePath, projectRoot) {
389
369
  try {
@@ -402,7 +382,6 @@ export function formatPath(filePath, projectRoot) {
402
382
  /**
403
383
  * Format multiple file paths relative to the project root.
404
384
  *
405
- * Requirement: 20.8
406
385
  */
407
386
  export function formatPaths(filePaths, projectRoot) {
408
387
  return filePaths.map((p) => formatPath(p, projectRoot));
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
@@ -37,8 +37,11 @@ export async function fetchLatestVersion(packageName) {
37
37
  await res.text().catch(() => { });
38
38
  throw new Error(`HTTP ${res.status}`);
39
39
  }
40
- const data = (await res.json());
41
- return data.version ?? '';
40
+ const data = await res.json();
41
+ const version = data && typeof data === 'object' && 'version' in data && typeof data.version === 'string'
42
+ ? data.version
43
+ : '';
44
+ return version;
42
45
  }
43
46
  catch {
44
47
  // Fallback: use npm view via subprocess
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-upgrade.js","sourceRoot":"","sources":["../../src/upgrade/prisma-upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma-upgrade.js","sourceRoot":"","sources":["../../src/upgrade/prisma-upgrade.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ariacode/cli",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "A predictable coding agent for Next.js, Nest.js, Prisma and Node.js projects.",
5
5
  "homepage": "https://www.ariacode.run",
6
6
  "repository": {