@prestyj/cli 4.3.58 → 4.3.83

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/dist/cli.js +153 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/core/auto-update.js +1 -1
  4. package/dist/core/auto-update.js.map +1 -1
  5. package/dist/core/pixel-fix-agent.d.ts +24 -0
  6. package/dist/core/pixel-fix-agent.d.ts.map +1 -0
  7. package/dist/core/pixel-fix-agent.js +49 -0
  8. package/dist/core/pixel-fix-agent.js.map +1 -0
  9. package/dist/core/pixel-fix.d.ts +70 -0
  10. package/dist/core/pixel-fix.d.ts.map +1 -0
  11. package/dist/core/pixel-fix.js +302 -0
  12. package/dist/core/pixel-fix.js.map +1 -0
  13. package/dist/core/pixel-fix.test.d.ts +2 -0
  14. package/dist/core/pixel-fix.test.d.ts.map +1 -0
  15. package/dist/core/pixel-fix.test.js +296 -0
  16. package/dist/core/pixel-fix.test.js.map +1 -0
  17. package/dist/core/pixel.d.ts +34 -0
  18. package/dist/core/pixel.d.ts.map +1 -0
  19. package/dist/core/pixel.js +308 -0
  20. package/dist/core/pixel.js.map +1 -0
  21. package/dist/core/pixel.test.d.ts +2 -0
  22. package/dist/core/pixel.test.d.ts.map +1 -0
  23. package/dist/core/pixel.test.js +214 -0
  24. package/dist/core/pixel.test.js.map +1 -0
  25. package/dist/core/source-maps.d.ts +47 -0
  26. package/dist/core/source-maps.d.ts.map +1 -0
  27. package/dist/core/source-maps.js +132 -0
  28. package/dist/core/source-maps.js.map +1 -0
  29. package/dist/core/source-maps.test.d.ts +2 -0
  30. package/dist/core/source-maps.test.d.ts.map +1 -0
  31. package/dist/core/source-maps.test.js +175 -0
  32. package/dist/core/source-maps.test.js.map +1 -0
  33. package/dist/modes/agent-home-mode.js +3 -3
  34. package/dist/modes/agent-home-mode.js.map +1 -1
  35. package/dist/ui/App.d.ts +2 -0
  36. package/dist/ui/App.d.ts.map +1 -1
  37. package/dist/ui/App.js +139 -7
  38. package/dist/ui/App.js.map +1 -1
  39. package/dist/ui/components/InputArea.d.ts +2 -1
  40. package/dist/ui/components/InputArea.d.ts.map +1 -1
  41. package/dist/ui/components/InputArea.js +6 -1
  42. package/dist/ui/components/InputArea.js.map +1 -1
  43. package/dist/ui/components/PixelOverlay.d.ts +11 -0
  44. package/dist/ui/components/PixelOverlay.d.ts.map +1 -0
  45. package/dist/ui/components/PixelOverlay.js +116 -0
  46. package/dist/ui/components/PixelOverlay.js.map +1 -0
  47. package/dist/ui/components/PlanOverlay.js +3 -3
  48. package/dist/ui/components/PlanOverlay.js.map +1 -1
  49. package/dist/ui/components/SkillsOverlay.js +3 -3
  50. package/dist/ui/components/SkillsOverlay.js.map +1 -1
  51. package/dist/ui/pixel.d.ts +22 -0
  52. package/dist/ui/pixel.d.ts.map +1 -0
  53. package/dist/ui/pixel.js +394 -0
  54. package/dist/ui/pixel.js.map +1 -0
  55. package/dist/ui/pixel.test.d.ts +2 -0
  56. package/dist/ui/pixel.test.d.ts.map +1 -0
  57. package/dist/ui/pixel.test.js +130 -0
  58. package/dist/ui/pixel.test.js.map +1 -0
  59. package/dist/ui/render.d.ts +2 -0
  60. package/dist/ui/render.d.ts.map +1 -1
  61. package/dist/ui/render.js +2 -0
  62. package/dist/ui/render.js.map +1 -1
  63. package/dist/utils/image.d.ts.map +1 -1
  64. package/dist/utils/image.js +15 -0
  65. package/dist/utils/image.js.map +1 -1
  66. package/package.json +37 -3
@@ -0,0 +1,70 @@
1
+ import { type ChildProcess, type SpawnOptions } from "node:child_process";
2
+ export interface ErrorRow {
3
+ id: string;
4
+ project_id: string;
5
+ fingerprint: string;
6
+ status: string;
7
+ type: string | null;
8
+ message: string | null;
9
+ stack: string | null;
10
+ code_context: string | null;
11
+ runtime: string | null;
12
+ occurrences: number;
13
+ recurrence_count: number;
14
+ branch: string | null;
15
+ }
16
+ export type SpawnFn = (command: string, args: readonly string[], options: SpawnOptions) => ChildProcess;
17
+ export interface FixOptions {
18
+ ingestUrl?: string;
19
+ homeDir?: string;
20
+ fetchFn?: typeof fetch;
21
+ spawnFn?: SpawnFn;
22
+ ezcoderBin?: string;
23
+ inheritStdio?: boolean;
24
+ maxTurns?: number;
25
+ }
26
+ export interface FixResult {
27
+ errorId: string;
28
+ projectName: string;
29
+ branch: string;
30
+ outcome: "awaiting_review" | "failed";
31
+ reason: string;
32
+ }
33
+ export declare function fixError(errorId: string, opts?: FixOptions): Promise<FixResult>;
34
+ export interface QueueOptions extends FixOptions {
35
+ onProgress?: (msg: string) => void;
36
+ }
37
+ export declare function runQueue(opts?: QueueOptions): Promise<{
38
+ fixed: number;
39
+ failed: number;
40
+ total: number;
41
+ }>;
42
+ /**
43
+ * In-Ink fix flow: prepares the fix (fetch, mark in_progress, build prompt) so
44
+ * the caller can hand the prompt to its existing agent loop. Pair with
45
+ * `finalizePixelFix` after the agent run completes.
46
+ */
47
+ export interface PreparedPixelFix {
48
+ errorId: string;
49
+ projectId: string;
50
+ projectName: string;
51
+ projectPath: string;
52
+ branch: string;
53
+ prompt: string;
54
+ }
55
+ export interface PrepareOptions {
56
+ ingestUrl?: string;
57
+ homeDir?: string;
58
+ fetchFn?: typeof fetch;
59
+ }
60
+ export declare function preparePixelFix(errorId: string, opts?: PrepareOptions): Promise<PreparedPixelFix>;
61
+ export interface FinalizeOptions extends PrepareOptions {
62
+ spawnFn?: SpawnFn;
63
+ agentExitedCleanly?: boolean;
64
+ }
65
+ export declare function finalizePixelFix(prep: PreparedPixelFix, opts?: FinalizeOptions): Promise<{
66
+ outcome: "awaiting_review" | "failed";
67
+ reason: string;
68
+ }>;
69
+ export declare function buildAgentPrompt(error: ErrorRow, branch: string, projectDir?: string): string;
70
+ //# sourceMappingURL=pixel-fix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixel-fix.d.ts","sourceRoot":"","sources":["../../src/core/pixel-fix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,302 @@
1
+ import { spawn } from "node:child_process";
2
+ import { readFileSync, existsSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import { join } from "node:path";
5
+ import chalk from "chalk";
6
+ import { DEFAULT_INGEST_URL } from "@prestyj/pixel";
7
+ import { PIXEL_FIX_SYSTEM_PROMPT } from "./pixel-fix-agent.js";
8
+ import { tryResolveStack } from "./source-maps.js";
9
+ export async function fixError(errorId, opts = {}) {
10
+ const ingestUrl = (opts.ingestUrl ?? DEFAULT_INGEST_URL).replace(/\/+$/, "");
11
+ const fetchFn = opts.fetchFn ?? fetch;
12
+ const home = opts.homeDir ?? homedir();
13
+ const error = await fetchError(fetchFn, ingestUrl, errorId);
14
+ const project = lookupProject(home, error.project_id);
15
+ const branch = `fix/pixel-${error.id}`;
16
+ await patchError(fetchFn, ingestUrl, error.id, { status: "in_progress", branch });
17
+ const exitCode = await runAgent({
18
+ cwd: project.path,
19
+ prompt: buildAgentPrompt(error, branch, project.path),
20
+ systemPrompt: PIXEL_FIX_SYSTEM_PROMPT,
21
+ spawnFn: opts.spawnFn ?? spawn,
22
+ ezcoderBin: opts.ezcoderBin ?? "ezcoder",
23
+ inheritStdio: opts.inheritStdio ?? true,
24
+ maxTurns: opts.maxTurns ?? 60,
25
+ });
26
+ const observed = await observeOutcome(project.path, branch, opts.spawnFn ?? spawn);
27
+ let outcome;
28
+ let reason;
29
+ if (exitCode !== 0) {
30
+ outcome = "failed";
31
+ reason = `Agent exited with code ${exitCode}`;
32
+ }
33
+ else if (!observed.branchExists) {
34
+ outcome = "failed";
35
+ reason = `Branch ${branch} was not created`;
36
+ }
37
+ else if (!observed.hasCommits) {
38
+ outcome = "failed";
39
+ reason = `Branch ${branch} has no new commits`;
40
+ }
41
+ else {
42
+ outcome = "awaiting_review";
43
+ reason = `Branch ${branch} created with ${observed.commitCount} commit(s) — ready for review`;
44
+ }
45
+ await patchError(fetchFn, ingestUrl, error.id, { status: outcome, branch });
46
+ return { errorId: error.id, projectName: project.name, branch, outcome, reason };
47
+ }
48
+ export async function runQueue(opts = {}) {
49
+ const ingestUrl = (opts.ingestUrl ?? DEFAULT_INGEST_URL).replace(/\/+$/, "");
50
+ const fetchFn = opts.fetchFn ?? fetch;
51
+ const home = opts.homeDir ?? homedir();
52
+ const log = opts.onProgress ?? ((msg) => console.log(msg));
53
+ const projectsPath = join(home, ".ezcoder", "projects.json");
54
+ if (!existsSync(projectsPath)) {
55
+ log(chalk.dim("No projects registered. Run `ezcoder pixel install` first."));
56
+ return { fixed: 0, failed: 0, total: 0 };
57
+ }
58
+ const projects = JSON.parse(readFileSync(projectsPath, "utf8"));
59
+ const queue = [];
60
+ for (const [projectId, project] of Object.entries(projects)) {
61
+ try {
62
+ const res = await fetchFn(`${ingestUrl}/api/projects/${projectId}/errors?status=open`);
63
+ if (!res.ok)
64
+ continue;
65
+ const body = (await res.json());
66
+ for (const e of body.errors) {
67
+ queue.push({ projectName: project.name, errorId: e.id });
68
+ }
69
+ }
70
+ catch {
71
+ // skip unreachable project
72
+ }
73
+ }
74
+ if (queue.length === 0) {
75
+ log(chalk.hex("#4ade80")("No open errors. Queue is clean."));
76
+ return { fixed: 0, failed: 0, total: 0 };
77
+ }
78
+ log(chalk.bold(`Fixing ${queue.length} ${queue.length === 1 ? "error" : "errors"}...`));
79
+ log("");
80
+ let fixed = 0;
81
+ let failed = 0;
82
+ for (const item of queue) {
83
+ log(chalk.hex("#a78bfa").bold(`▸ ${item.projectName}`) + chalk.dim(` ${item.errorId}`));
84
+ try {
85
+ const result = await fixError(item.errorId, opts);
86
+ if (result.outcome === "awaiting_review") {
87
+ log(chalk.hex("#4ade80")(` ✓ ${result.reason}`));
88
+ fixed++;
89
+ }
90
+ else {
91
+ log(chalk.hex("#ef4444")(` ✗ ${result.reason}`));
92
+ failed++;
93
+ }
94
+ }
95
+ catch (err) {
96
+ log(chalk.hex("#ef4444")(` ✗ ${err instanceof Error ? err.message : String(err)}`));
97
+ failed++;
98
+ }
99
+ log("");
100
+ }
101
+ return { fixed, failed, total: queue.length };
102
+ }
103
+ export async function preparePixelFix(errorId, opts = {}) {
104
+ const ingestUrl = (opts.ingestUrl ?? DEFAULT_INGEST_URL).replace(/\/+$/, "");
105
+ const fetchFn = opts.fetchFn ?? fetch;
106
+ const home = opts.homeDir ?? homedir();
107
+ const error = await fetchError(fetchFn, ingestUrl, errorId);
108
+ const project = lookupProject(home, error.project_id);
109
+ const branch = `fix/pixel-${error.id}`;
110
+ await patchError(fetchFn, ingestUrl, error.id, { status: "in_progress", branch });
111
+ return {
112
+ errorId: error.id,
113
+ projectId: error.project_id,
114
+ projectName: project.name,
115
+ projectPath: project.path,
116
+ branch,
117
+ prompt: buildAgentPrompt(error, branch, project.path),
118
+ };
119
+ }
120
+ export async function finalizePixelFix(prep, opts = {}) {
121
+ const ingestUrl = (opts.ingestUrl ?? DEFAULT_INGEST_URL).replace(/\/+$/, "");
122
+ const fetchFn = opts.fetchFn ?? fetch;
123
+ const observed = await observeOutcome(prep.projectPath, prep.branch, opts.spawnFn ?? spawn);
124
+ let outcome;
125
+ let reason;
126
+ if (opts.agentExitedCleanly === false) {
127
+ outcome = "failed";
128
+ reason = "Agent did not finish cleanly";
129
+ }
130
+ else if (!observed.branchExists) {
131
+ outcome = "failed";
132
+ reason = `Branch ${prep.branch} was not created`;
133
+ }
134
+ else if (!observed.hasCommits) {
135
+ outcome = "failed";
136
+ reason = `Branch ${prep.branch} has no new commits`;
137
+ }
138
+ else {
139
+ outcome = "awaiting_review";
140
+ reason = `Branch ${prep.branch} created with ${observed.commitCount} commit(s) — ready for review`;
141
+ }
142
+ await patchError(fetchFn, ingestUrl, prep.errorId, { status: outcome, branch: prep.branch });
143
+ return { outcome, reason };
144
+ }
145
+ export function buildAgentPrompt(error, branch, projectDir) {
146
+ let stack = parseStackJson(error.stack);
147
+ // For browser stacks (URLs in the file field), try to resolve via local
148
+ // source maps before showing the agent. Resolved frames point at the
149
+ // user's TS/JS source — much more actionable than `app.min.js:1:48201`.
150
+ if (projectDir && stack.length > 0 && looksLikeMinifiedBrowserStack(stack)) {
151
+ stack = tryResolveStack(stack, projectDir);
152
+ }
153
+ const ctx = parseCodeContext(error.code_context);
154
+ const lines = [];
155
+ lines.push("An error has been identified in this project. Investigate and fix it.");
156
+ lines.push("");
157
+ lines.push(`Error: ${error.type ?? "Error"} — ${error.message ?? "(no message)"}`);
158
+ const topInApp = stack.find((f) => f.in_app) ?? stack[0];
159
+ if (topInApp)
160
+ lines.push(`Location: ${topInApp.file}:${topInApp.line}`);
161
+ if (ctx && ctx.lines.length > 0) {
162
+ lines.push("");
163
+ lines.push("Code at site:");
164
+ const startLine = ctx.error_line - Math.floor((ctx.lines.length - 1) / 2);
165
+ ctx.lines.forEach((line, i) => {
166
+ const lineNum = startLine + i;
167
+ const marker = lineNum === ctx.error_line ? ">" : " ";
168
+ lines.push(` ${marker}${String(lineNum).padStart(4)} | ${line}`);
169
+ });
170
+ }
171
+ if (stack.length > 0) {
172
+ lines.push("");
173
+ lines.push("Stack:");
174
+ for (const f of stack.slice(0, 10)) {
175
+ const lib = f.in_app ? "" : " (lib)";
176
+ lines.push(` ${f.fn || "<anon>"} ${f.file}:${f.line}${lib}`);
177
+ }
178
+ }
179
+ if (error.runtime)
180
+ lines.push(`\nRuntime: ${error.runtime}`);
181
+ lines.push(`Occurrences: ${error.occurrences}`);
182
+ if (error.recurrence_count > 0) {
183
+ lines.push("");
184
+ lines.push(`Recurrence: this is the ${ordinal(error.recurrence_count)} time this fingerprint has appeared after a previous fix was merged. The earlier fix did not hold — investigate why.`);
185
+ }
186
+ lines.push("");
187
+ lines.push("When done:");
188
+ lines.push(` 1. Create branch: ${branch}`);
189
+ lines.push(" 2. Commit the fix on that branch");
190
+ lines.push(" 3. Run the project's quality checks (only commit if they pass)");
191
+ lines.push("");
192
+ lines.push("Do not merge. Do not push. Do not switch back to main.");
193
+ return lines.join("\n");
194
+ }
195
+ async function fetchError(fetchFn, ingestUrl, errorId) {
196
+ const res = await fetchFn(`${ingestUrl}/api/errors/${errorId}`);
197
+ if (!res.ok)
198
+ throw new Error(`GET /api/errors/${errorId} failed: ${res.status}`);
199
+ return (await res.json());
200
+ }
201
+ function lookupProject(home, projectId) {
202
+ const projectsPath = join(home, ".ezcoder", "projects.json");
203
+ if (!existsSync(projectsPath)) {
204
+ throw new Error(`No projects mapping at ${projectsPath} — run \`ezcoder pixel install\` in the project first.`);
205
+ }
206
+ const projects = JSON.parse(readFileSync(projectsPath, "utf8"));
207
+ const project = projects[projectId];
208
+ if (!project) {
209
+ throw new Error(`No local mapping for project ${projectId} in ${projectsPath}. Run \`ezcoder pixel install\` in the project's directory.`);
210
+ }
211
+ return project;
212
+ }
213
+ async function patchError(fetchFn, ingestUrl, errorId, body) {
214
+ const res = await fetchFn(`${ingestUrl}/api/errors/${errorId}`, {
215
+ method: "PATCH",
216
+ headers: { "content-type": "application/json" },
217
+ body: JSON.stringify(body),
218
+ });
219
+ if (!res.ok)
220
+ throw new Error(`PATCH /api/errors/${errorId} failed: ${res.status}`);
221
+ }
222
+ async function runAgent(opts) {
223
+ return new Promise((resolve, reject) => {
224
+ const args = [
225
+ "--json",
226
+ "--max-turns",
227
+ String(opts.maxTurns),
228
+ "--system-prompt",
229
+ opts.systemPrompt,
230
+ opts.prompt,
231
+ ];
232
+ const child = opts.spawnFn(opts.ezcoderBin, args, {
233
+ cwd: opts.cwd,
234
+ stdio: opts.inheritStdio ? "inherit" : ["ignore", "pipe", "pipe"],
235
+ });
236
+ child.on("error", reject);
237
+ child.on("exit", (code) => resolve(code ?? 1));
238
+ });
239
+ }
240
+ async function observeOutcome(cwd, branch, spawnFn) {
241
+ const exists = await runGit(cwd, ["show-ref", "--verify", `refs/heads/${branch}`], spawnFn);
242
+ if (exists.code !== 0)
243
+ return { branchExists: false, hasCommits: false, commitCount: 0 };
244
+ let baseBranch = null;
245
+ for (const candidate of ["main", "master"]) {
246
+ const r = await runGit(cwd, ["show-ref", "--verify", `refs/heads/${candidate}`], spawnFn);
247
+ if (r.code === 0) {
248
+ baseBranch = candidate;
249
+ break;
250
+ }
251
+ }
252
+ if (!baseBranch)
253
+ return { branchExists: true, hasCommits: false, commitCount: 0 };
254
+ const ahead = await runGit(cwd, ["rev-list", "--count", `${baseBranch}..${branch}`], spawnFn);
255
+ const count = ahead.code === 0 ? parseInt(ahead.stdout.trim(), 10) || 0 : 0;
256
+ return { branchExists: true, hasCommits: count > 0, commitCount: count };
257
+ }
258
+ function runGit(cwd, args, spawnFn) {
259
+ return new Promise((resolve) => {
260
+ const child = spawnFn("git", args, { cwd, stdio: ["ignore", "pipe", "pipe"] });
261
+ let stdout = "";
262
+ let stderr = "";
263
+ child.stdout?.on("data", (b) => (stdout += b.toString()));
264
+ child.stderr?.on("data", (b) => (stderr += b.toString()));
265
+ child.on("error", () => resolve({ code: 1, stdout, stderr }));
266
+ child.on("exit", (code) => resolve({ code: code ?? 1, stdout, stderr }));
267
+ });
268
+ }
269
+ function looksLikeMinifiedBrowserStack(stack) {
270
+ // Heuristic: any frame whose file is an http(s) URL = browser stack.
271
+ // We try map resolution for these. Native Node paths don't need it.
272
+ return stack.some((f) => /^https?:\/\//.test(f.file));
273
+ }
274
+ function parseStackJson(raw) {
275
+ if (!raw)
276
+ return [];
277
+ try {
278
+ const parsed = JSON.parse(raw);
279
+ if (Array.isArray(parsed))
280
+ return parsed;
281
+ }
282
+ catch {
283
+ // ignore
284
+ }
285
+ return [];
286
+ }
287
+ function parseCodeContext(raw) {
288
+ if (!raw)
289
+ return null;
290
+ try {
291
+ return JSON.parse(raw);
292
+ }
293
+ catch {
294
+ return null;
295
+ }
296
+ }
297
+ function ordinal(n) {
298
+ const s = ["th", "st", "nd", "rd"];
299
+ const v = n % 100;
300
+ return `${n}${s[(v - 20) % 10] ?? s[v] ?? s[0]}`;
301
+ }
302
+ //# sourceMappingURL=pixel-fix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixel-fix.js","sourceRoot":"","sources":["../../src/core/pixel-fix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pixel-fix.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixel-fix.test.d.ts","sourceRoot":"","sources":["../../src/core/pixel-fix.test.ts"],"names":[],"mappings":""}