@percher/core 0.2.6 → 0.4.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.
- package/dist/ai-files-manifest.d.ts +28 -0
- package/dist/ai-files-manifest.d.ts.map +1 -0
- package/dist/ai-files-manifest.js +96 -0
- package/dist/ai-files-manifest.js.map +1 -0
- package/dist/commands/account.d.ts +51 -0
- package/dist/commands/account.d.ts.map +1 -0
- package/dist/commands/account.js +88 -0
- package/dist/commands/account.js.map +1 -0
- package/dist/commands/ai-files.d.ts +73 -0
- package/dist/commands/ai-files.d.ts.map +1 -0
- package/dist/commands/ai-files.js +179 -0
- package/dist/commands/ai-files.js.map +1 -0
- package/dist/commands/billing.d.ts +1 -1
- package/dist/commands/billing.d.ts.map +1 -1
- package/dist/commands/billing.js +1 -1
- package/dist/commands/billing.js.map +1 -1
- package/dist/commands/continue.d.ts +48 -0
- package/dist/commands/continue.d.ts.map +1 -0
- package/dist/commands/continue.js +121 -0
- package/dist/commands/continue.js.map +1 -0
- package/dist/commands/create.d.ts +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +1 -1
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/dashboard.d.ts +15 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +33 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/data-export.d.ts +21 -0
- package/dist/commands/data-export.d.ts.map +1 -0
- package/dist/commands/data-export.js +36 -0
- package/dist/commands/data-export.js.map +1 -0
- package/dist/commands/data.d.ts +3 -3
- package/dist/commands/data.d.ts.map +1 -1
- package/dist/commands/data.js +1 -1
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/delete.d.ts +1 -1
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +1 -1
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/deploys.d.ts +2 -2
- package/dist/commands/deploys.d.ts.map +1 -1
- package/dist/commands/deploys.js +21 -5
- package/dist/commands/deploys.js.map +1 -1
- package/dist/commands/dev.d.ts +1 -9
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +79 -24
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/diagnose.d.ts +1 -1
- package/dist/commands/diagnose.d.ts.map +1 -1
- package/dist/commands/diagnose.js +1 -1
- package/dist/commands/diagnose.js.map +1 -1
- package/dist/commands/doctor.d.ts +75 -3
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +822 -10
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/domains.d.ts +1 -1
- package/dist/commands/domains.d.ts.map +1 -1
- package/dist/commands/domains.js +1 -1
- package/dist/commands/domains.js.map +1 -1
- package/dist/commands/env-scan.d.ts +2 -0
- package/dist/commands/env-scan.d.ts.map +1 -0
- package/dist/commands/env-scan.js +92 -0
- package/dist/commands/env-scan.js.map +1 -0
- package/dist/commands/env.d.ts +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +1 -1
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/export.d.ts +1 -1
- package/dist/commands/export.js +1 -1
- package/dist/commands/generate.d.ts +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +14 -9
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/github.d.ts +60 -0
- package/dist/commands/github.d.ts.map +1 -0
- package/dist/commands/github.js +112 -0
- package/dist/commands/github.js.map +1 -0
- package/dist/commands/import-project.d.ts +1 -1
- package/dist/commands/import-project.d.ts.map +1 -1
- package/dist/commands/import-project.js +1 -1
- package/dist/commands/import-project.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/insights.d.ts +1 -1
- package/dist/commands/insights.d.ts.map +1 -1
- package/dist/commands/insights.js +1 -1
- package/dist/commands/insights.js.map +1 -1
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +1 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logs.d.ts +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +1 -1
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +1 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/open.d.ts +1 -1
- package/dist/commands/open.d.ts.map +1 -1
- package/dist/commands/open.js +1 -1
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/publish-failure.d.ts +31 -0
- package/dist/commands/publish-failure.d.ts.map +1 -0
- package/dist/commands/publish-failure.js +150 -0
- package/dist/commands/publish-failure.js.map +1 -0
- package/dist/commands/publish-node.d.ts +16 -0
- package/dist/commands/publish-node.d.ts.map +1 -0
- package/dist/commands/publish-node.js +42 -0
- package/dist/commands/publish-node.js.map +1 -0
- package/dist/commands/publish.d.ts +105 -3
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +746 -158
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/push.d.ts +45 -8
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +233 -22
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/redeploy.d.ts +28 -0
- package/dist/commands/redeploy.d.ts.map +1 -0
- package/dist/commands/redeploy.js +421 -0
- package/dist/commands/redeploy.js.map +1 -0
- package/dist/commands/rename.d.ts +1 -1
- package/dist/commands/rename.d.ts.map +1 -1
- package/dist/commands/rename.js +1 -1
- package/dist/commands/rename.js.map +1 -1
- package/dist/commands/reproduce.d.ts +64 -0
- package/dist/commands/reproduce.d.ts.map +1 -0
- package/dist/commands/reproduce.js +211 -0
- package/dist/commands/reproduce.js.map +1 -0
- package/dist/commands/reset-superuser.d.ts +1 -1
- package/dist/commands/reset-superuser.d.ts.map +1 -1
- package/dist/commands/reset-superuser.js +1 -1
- package/dist/commands/reset-superuser.js.map +1 -1
- package/dist/commands/restore.d.ts +79 -0
- package/dist/commands/restore.d.ts.map +1 -0
- package/dist/commands/restore.js +164 -0
- package/dist/commands/restore.js.map +1 -0
- package/dist/commands/resume.d.ts +1 -1
- package/dist/commands/resume.d.ts.map +1 -1
- package/dist/commands/resume.js +1 -1
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/rollback.d.ts +21 -8
- package/dist/commands/rollback.d.ts.map +1 -1
- package/dist/commands/rollback.js +12 -6
- package/dist/commands/rollback.js.map +1 -1
- package/dist/commands/status.d.ts +33 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +48 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/unsuspend.d.ts +35 -0
- package/dist/commands/unsuspend.d.ts.map +1 -0
- package/dist/commands/unsuspend.js +27 -0
- package/dist/commands/unsuspend.js.map +1 -0
- package/dist/commands/versions.d.ts +1 -1
- package/dist/commands/versions.d.ts.map +1 -1
- package/dist/commands/versions.js +1 -1
- package/dist/commands/versions.js.map +1 -1
- package/dist/commands/wait-deploy.d.ts +92 -0
- package/dist/commands/wait-deploy.d.ts.map +1 -0
- package/dist/commands/wait-deploy.js +226 -0
- package/dist/commands/wait-deploy.js.map +1 -0
- package/dist/env-scan-source.d.ts +39 -0
- package/dist/env-scan-source.d.ts.map +1 -0
- package/dist/env-scan-source.js +332 -0
- package/dist/env-scan-source.js.map +1 -0
- package/dist/error-classifier.d.ts.map +1 -1
- package/dist/error-classifier.js +67 -4
- package/dist/error-classifier.js.map +1 -1
- package/dist/errors.d.ts +8 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +1 -1
- package/dist/event-renderer.d.ts +17 -0
- package/dist/event-renderer.d.ts.map +1 -0
- package/dist/event-renderer.js +130 -0
- package/dist/event-renderer.js.map +1 -0
- package/dist/index.d.ts +16 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/plans.d.ts +20 -0
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +15 -0
- package/dist/plans.js.map +1 -1
- package/dist/poll-deployment.d.ts +59 -0
- package/dist/poll-deployment.d.ts.map +1 -0
- package/dist/poll-deployment.js +93 -0
- package/dist/poll-deployment.js.map +1 -0
- package/dist/publish-retry.d.ts +29 -0
- package/dist/publish-retry.d.ts.map +1 -0
- package/dist/publish-retry.js +224 -0
- package/dist/publish-retry.js.map +1 -0
- package/dist/recovery.d.ts +356 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +300 -0
- package/dist/recovery.js.map +1 -0
- package/dist/stream-utils.d.ts +21 -0
- package/dist/stream-utils.d.ts.map +1 -0
- package/dist/stream-utils.js +41 -0
- package/dist/stream-utils.js.map +1 -0
- package/dist/structured-error-codes.d.ts +30 -0
- package/dist/structured-error-codes.d.ts.map +1 -0
- package/dist/structured-error-codes.js +86 -0
- package/dist/structured-error-codes.js.map +1 -0
- package/dist/tarball.d.ts +11 -0
- package/dist/tarball.d.ts.map +1 -1
- package/dist/tarball.js +30 -9
- package/dist/tarball.js.map +1 -1
- package/dist/templates/ai-files/claude-md.d.ts +7 -0
- package/dist/templates/ai-files/claude-md.d.ts.map +1 -0
- package/dist/templates/ai-files/claude-md.js +78 -0
- package/dist/templates/ai-files/claude-md.js.map +1 -0
- package/dist/templates/ai-files/cursor-percher-mdc.d.ts +7 -0
- package/dist/templates/ai-files/cursor-percher-mdc.d.ts.map +1 -0
- package/dist/templates/ai-files/cursor-percher-mdc.js +111 -0
- package/dist/templates/ai-files/cursor-percher-mdc.js.map +1 -0
- package/dist/templates/ai-files/index.d.ts +8 -0
- package/dist/templates/ai-files/index.d.ts.map +1 -0
- package/dist/templates/ai-files/index.js +4 -0
- package/dist/templates/ai-files/index.js.map +1 -0
- package/package.json +6 -5
package/dist/commands/dev.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
+
import { TIMEOUTS } from "@percher/shared/timeouts";
|
|
3
4
|
import { parseFile } from "@percher/toml";
|
|
4
|
-
import { z } from "zod";
|
|
5
|
+
import { z } from "zod/v3";
|
|
5
6
|
import { PercherCoreError } from "../errors";
|
|
6
7
|
import { createTarball } from "../tarball";
|
|
7
8
|
import { createWatcher } from "../watcher";
|
|
@@ -17,10 +18,8 @@ async function loadConfig(ctx, appOverride) {
|
|
|
17
18
|
});
|
|
18
19
|
}
|
|
19
20
|
const config = await parseFile(tomlPath);
|
|
20
|
-
|
|
21
|
-
if (appOverride) {
|
|
21
|
+
if (appOverride)
|
|
22
22
|
return { ...config, app: { ...config.app, name: appOverride } };
|
|
23
|
-
}
|
|
24
23
|
return config;
|
|
25
24
|
}
|
|
26
25
|
async function ensureApp(ctx, config) {
|
|
@@ -42,19 +41,28 @@ async function doPush(ctx, config, callbacks) {
|
|
|
42
41
|
const tarball = await createTarball({ cwd: ctx.cwd, config });
|
|
43
42
|
const app = await ensureApp(ctx, config);
|
|
44
43
|
await callbacks.writeLine(`Pushing ${tarball.fileCount} files (${(tarball.bytes / 1024).toFixed(0)} KB)...`);
|
|
45
|
-
|
|
44
|
+
const deployResponse = await ctx.client.apps.deploy(app.id, { tarball: tarball.stream });
|
|
45
|
+
// FUTURE12 Phase 6d — `dev`'s tight watch loop only kicks off a new
|
|
46
|
+
// deploy when files change, so seeing `already_in_progress` here
|
|
47
|
+
// means the previous round-trip is still in flight. Surface it and
|
|
48
|
+
// skip this cycle — the next file change will retry.
|
|
49
|
+
if (deployResponse.status === "already_in_progress") {
|
|
50
|
+
const active = deployResponse;
|
|
51
|
+
await callbacks.writeLine(` Skipped — deploy already in progress (${active.deployId}, ${active.deployStatus}).`);
|
|
52
|
+
return { success: false, appId: app.id };
|
|
53
|
+
}
|
|
54
|
+
let deployment = deployResponse;
|
|
46
55
|
const startedAt = Date.now();
|
|
47
|
-
const timeoutMs =
|
|
56
|
+
const timeoutMs = TIMEOUTS.clientPublishPoll;
|
|
48
57
|
const pollInterval = 2000;
|
|
49
58
|
let lastStatus = "";
|
|
50
59
|
while (deployment.status !== "live" && deployment.status !== "failed") {
|
|
51
60
|
if (Date.now() - startedAt > timeoutMs) {
|
|
52
61
|
await callbacks.writeLine("Deploy timed out");
|
|
53
|
-
return;
|
|
62
|
+
return { success: false, appId: app.id };
|
|
54
63
|
}
|
|
55
64
|
if (callbacks.signal.aborted)
|
|
56
|
-
return;
|
|
57
|
-
// Only log on status change to reduce noise
|
|
65
|
+
return { success: false, appId: app.id };
|
|
58
66
|
if (deployment.status !== lastStatus) {
|
|
59
67
|
lastStatus = deployment.status;
|
|
60
68
|
await callbacks.writeLine(` ${deployment.status}...`);
|
|
@@ -63,29 +71,64 @@ async function doPush(ctx, config, callbacks) {
|
|
|
63
71
|
deployment = await ctx.client.apps.getDeployment(app.id, deployment.id);
|
|
64
72
|
}
|
|
65
73
|
if (deployment.status === "failed") {
|
|
66
|
-
|
|
74
|
+
try {
|
|
75
|
+
const insp = await ctx.client.apps.getDeployment(app.id, deployment.id);
|
|
76
|
+
if (insp.errorMessage) {
|
|
77
|
+
await callbacks.writeLine("Deploy failed:");
|
|
78
|
+
for (const line of insp.errorMessage.split("\n").slice(0, 30)) {
|
|
79
|
+
await callbacks.writeLine(` ${line}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
await callbacks.writeLine("Deploy failed.");
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
await callbacks.writeLine("Deploy failed.");
|
|
88
|
+
}
|
|
89
|
+
return { success: false, appId: app.id };
|
|
67
90
|
}
|
|
68
|
-
|
|
69
|
-
|
|
91
|
+
await callbacks.writeLine(`Live at ${deployment.url ?? ""}`);
|
|
92
|
+
return { success: true, appId: app.id };
|
|
93
|
+
}
|
|
94
|
+
function formatLogLine(l) {
|
|
95
|
+
const level = l.level.toUpperCase().padEnd(5);
|
|
96
|
+
const src = l.source === "runtime" ? "" : `[${l.source}] `;
|
|
97
|
+
return ` ${src}${level} ${l.message}`;
|
|
98
|
+
}
|
|
99
|
+
async function streamLogs(ctx, appId, callbacks, signal) {
|
|
100
|
+
try {
|
|
101
|
+
for await (const line of ctx.client.logs.stream(appId, { signal })) {
|
|
102
|
+
if (signal.aborted)
|
|
103
|
+
return;
|
|
104
|
+
await callbacks.writeLine(formatLogLine(line));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
if (signal.aborted)
|
|
109
|
+
return;
|
|
110
|
+
await callbacks.writeLine(`Log stream error: ${err.message}`);
|
|
70
111
|
}
|
|
71
112
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Run the dev loop: watch files, prompt to push on changes, stream logs.
|
|
74
|
-
*
|
|
75
|
-
* This is the core logic — the CLI layer provides the interactive callbacks.
|
|
76
|
-
*/
|
|
77
113
|
export async function dev(ctx, input, callbacks) {
|
|
78
114
|
const config = await loadConfig(ctx, input.app);
|
|
79
115
|
const app = await ensureApp(ctx, config);
|
|
80
116
|
await callbacks.writeLine(`App: ${app.url}`);
|
|
81
|
-
await callbacks.writeLine("Watching for changes...");
|
|
117
|
+
await callbacks.writeLine("Watching for changes (logs streaming below)...");
|
|
82
118
|
await callbacks.writeLine("");
|
|
83
|
-
|
|
119
|
+
const logStream = { ctrl: null };
|
|
120
|
+
function startLogStream(appId) {
|
|
121
|
+
logStream.ctrl?.abort();
|
|
122
|
+
logStream.ctrl = new AbortController();
|
|
123
|
+
const linkedSignal = logStream.ctrl.signal;
|
|
124
|
+
void streamLogs(ctx, appId, callbacks, linkedSignal);
|
|
125
|
+
}
|
|
126
|
+
// Begin streaming logs for the existing app on entry.
|
|
127
|
+
startLogStream(app.id);
|
|
84
128
|
let busy = false;
|
|
85
129
|
let queued = null;
|
|
86
130
|
async function handleChange(files) {
|
|
87
131
|
if (busy) {
|
|
88
|
-
// Queue the latest batch — only the most recent matters
|
|
89
132
|
queued = files;
|
|
90
133
|
return;
|
|
91
134
|
}
|
|
@@ -95,20 +138,33 @@ export async function dev(ctx, input, callbacks) {
|
|
|
95
138
|
? files.join(", ")
|
|
96
139
|
: `${files.slice(0, 3).join(", ")} +${files.length - 3} more`;
|
|
97
140
|
await callbacks.writeLine(`Change detected: ${shortList}`);
|
|
141
|
+
// Pause the log stream while we redeploy so output stays readable.
|
|
142
|
+
logStream.ctrl?.abort();
|
|
98
143
|
const shouldPush = await callbacks.onFilesChanged(files);
|
|
99
144
|
if (shouldPush) {
|
|
100
145
|
try {
|
|
101
146
|
const freshConfig = await loadConfig(ctx, input.app);
|
|
102
|
-
await doPush(ctx, freshConfig, callbacks);
|
|
147
|
+
const result = await doPush(ctx, freshConfig, callbacks);
|
|
148
|
+
if (result.success) {
|
|
149
|
+
startLogStream(result.appId);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
// Failed deploy: resume the pre-push app's logs so the user
|
|
153
|
+
// can diagnose the error rather than going blind.
|
|
154
|
+
startLogStream(app.id);
|
|
155
|
+
}
|
|
103
156
|
}
|
|
104
157
|
catch (err) {
|
|
105
158
|
await callbacks.writeLine(`Push error: ${err.message}`);
|
|
159
|
+
startLogStream(app.id);
|
|
106
160
|
}
|
|
107
161
|
}
|
|
162
|
+
else {
|
|
163
|
+
startLogStream(app.id);
|
|
164
|
+
}
|
|
108
165
|
}
|
|
109
166
|
finally {
|
|
110
167
|
busy = false;
|
|
111
|
-
// Process queued changes
|
|
112
168
|
if (queued) {
|
|
113
169
|
const next = queued;
|
|
114
170
|
queued = null;
|
|
@@ -116,7 +172,6 @@ export async function dev(ctx, input, callbacks) {
|
|
|
116
172
|
}
|
|
117
173
|
}
|
|
118
174
|
}
|
|
119
|
-
// Dev loop: watch → prompt → push
|
|
120
175
|
const devConfig = config.dev;
|
|
121
176
|
const watcher = createWatcher({
|
|
122
177
|
cwd: ctx.cwd,
|
|
@@ -126,7 +181,6 @@ export async function dev(ctx, input, callbacks) {
|
|
|
126
181
|
void handleChange(files);
|
|
127
182
|
},
|
|
128
183
|
});
|
|
129
|
-
// Wait until aborted (user presses Ctrl+C)
|
|
130
184
|
try {
|
|
131
185
|
await new Promise((resolve) => {
|
|
132
186
|
if (callbacks.signal.aborted) {
|
|
@@ -137,6 +191,7 @@ export async function dev(ctx, input, callbacks) {
|
|
|
137
191
|
});
|
|
138
192
|
}
|
|
139
193
|
finally {
|
|
194
|
+
logStream.ctrl?.abort();
|
|
140
195
|
watcher.close();
|
|
141
196
|
}
|
|
142
197
|
}
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAsB,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/commands/diagnose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/commands/diagnose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,eAAO,MAAM,mBAAmB;;IAE9B;;;;OAIG;;IAEH;;;;;;OAMG;;;;;;;;;;EAMH,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAIhE,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,KAAK,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAAC;IAC9C,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;QACjD,SAAS,EAAE,MAAM,CAAC;QAClB,mEAAmE;QACnE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,yDAAyD;QACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,cAAc,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,GAAG,IAAI,CAAC;IACT;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,aAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAsE/F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/commands/diagnose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/commands/diagnose.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,43 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
1
|
+
import { z } from "zod/v3";
|
|
2
2
|
import type { Context } from "../context";
|
|
3
|
+
import { type PublishRecovery, type ReasonCode } from "../recovery";
|
|
3
4
|
export declare const doctorInputSchema: z.ZodObject<{
|
|
4
5
|
app: z.ZodOptional<z.ZodString>;
|
|
5
6
|
json: z.ZodOptional<z.ZodBoolean>;
|
|
7
|
+
/**
|
|
8
|
+
* FUTURE12 Phase 2b/Codex round 5 fix — accept the dispatch-mode
|
|
9
|
+
* hint emitted by `recoveryDoctor`. Public agent path defaults to
|
|
10
|
+
* `auto`; the other modes are passed through from a previous
|
|
11
|
+
* recovery's `args.mode` (e.g. `mode: "deploy"` after a build
|
|
12
|
+
* failure routes the agent back to doctor with that specific
|
|
13
|
+
* deploy in mind). When `mode` is set, doctor's dispatch breaks
|
|
14
|
+
* the otherwise-infinite `run_doctor` recursion by falling back
|
|
15
|
+
* to the right concrete recovery for the case (build_failed →
|
|
16
|
+
* inspect_build_log, runtime_crashed → ask_user with crash
|
|
17
|
+
* details). Phase 2c will replace those fallbacks with deeper
|
|
18
|
+
* mode-specific analysis (build-log fetch + classification, etc).
|
|
19
|
+
*/
|
|
20
|
+
mode: z.ZodOptional<z.ZodEnum<["auto", "deploy", "runtime", "config", "env", "account"]>>;
|
|
21
|
+
/**
|
|
22
|
+
* FUTURE12 Phase 2b/Codex round 5 fix — accept a specific deploy
|
|
23
|
+
* id to inspect. When set AND the value differs from the app's
|
|
24
|
+
* latest deploy, doctor fetches that specific deploy and uses its
|
|
25
|
+
* status as the dispatch target instead of `lastDeploy` from
|
|
26
|
+
* `/diagnostics`. Pre-fix, Zod silently stripped this field and
|
|
27
|
+
* the agent's targeted `run_doctor` recovery degraded to an
|
|
28
|
+
* untargeted `doctor(app)` call.
|
|
29
|
+
*/
|
|
30
|
+
deployId: z.ZodOptional<z.ZodString>;
|
|
6
31
|
}, "strip", z.ZodTypeAny, {
|
|
7
|
-
|
|
32
|
+
mode?: "runtime" | "config" | "auto" | "deploy" | "env" | "account" | undefined;
|
|
8
33
|
json?: boolean | undefined;
|
|
9
|
-
}, {
|
|
10
34
|
app?: string | undefined;
|
|
35
|
+
deployId?: string | undefined;
|
|
36
|
+
}, {
|
|
37
|
+
mode?: "runtime" | "config" | "auto" | "deploy" | "env" | "account" | undefined;
|
|
11
38
|
json?: boolean | undefined;
|
|
39
|
+
app?: string | undefined;
|
|
40
|
+
deployId?: string | undefined;
|
|
12
41
|
}>;
|
|
13
42
|
export type DoctorInput = z.infer<typeof doctorInputSchema>;
|
|
14
43
|
type CheckStatus = "pass" | "fail" | "warn" | "skip";
|
|
@@ -17,13 +46,56 @@ export interface DoctorCheck {
|
|
|
17
46
|
status: CheckStatus;
|
|
18
47
|
message: string;
|
|
19
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* FUTURE12 Phase 2a — overall doctor verdict. Derived from the
|
|
51
|
+
* `checks` array but exposed as a top-level field so callers don't
|
|
52
|
+
* have to recompute it. Phase 2b will refine `needs_action` and
|
|
53
|
+
* `in_progress` once doctor handles deploy/build/runtime cases.
|
|
54
|
+
*/
|
|
55
|
+
export type DoctorStatus = "ok" | "needs_action" | "in_progress" | "blocked";
|
|
56
|
+
/**
|
|
57
|
+
* FUTURE12 Phase 2a — phase the diagnosis applies to. Helps callers
|
|
58
|
+
* route the user to the right kind of fix (config edits, env updates,
|
|
59
|
+
* deploy actions, infra waiting, etc.) without parsing free text.
|
|
60
|
+
*/
|
|
61
|
+
export type DoctorPhase = "config" | "auth" | "build" | "deploy" | "runtime" | "infra";
|
|
62
|
+
/**
|
|
63
|
+
* FUTURE12 Phase 2a — structured diagnosis when doctor finds a
|
|
64
|
+
* blocking issue. Absent when `status === "ok"`.
|
|
65
|
+
*/
|
|
66
|
+
export interface DoctorDiagnosis {
|
|
67
|
+
title: string;
|
|
68
|
+
explanation: string;
|
|
69
|
+
reasonCode: ReasonCode;
|
|
70
|
+
phase?: DoctorPhase;
|
|
71
|
+
}
|
|
20
72
|
export interface DoctorResult {
|
|
21
73
|
checks: DoctorCheck[];
|
|
22
74
|
passed: number;
|
|
23
75
|
failed: number;
|
|
24
76
|
warned: number;
|
|
25
77
|
total: number;
|
|
78
|
+
/**
|
|
79
|
+
* FUTURE12 Phase 2a additive fields. Phase 2b will populate these
|
|
80
|
+
* for the deploy/build/runtime/replaced cases (currently they fall
|
|
81
|
+
* through to `needs_action` + `ask_user` + `reasonCode: "unknown"`
|
|
82
|
+
* so an agent at least knows it's not a clear path forward).
|
|
83
|
+
*/
|
|
84
|
+
status: DoctorStatus;
|
|
85
|
+
diagnosis?: DoctorDiagnosis;
|
|
86
|
+
recovery: PublishRecovery;
|
|
87
|
+
summary: string;
|
|
26
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Phase 6.2 — exported for tests. Returns true when a deploy is in a
|
|
91
|
+
* pre-terminal state (`queued` or `building`) AND its createdAt is
|
|
92
|
+
* more than `STUCK_DEPLOY_THRESHOLD_MS` in the past. Mirrors the
|
|
93
|
+
* platform-side stale-deploy reconciler's 15-minute window so the
|
|
94
|
+
* user-facing callout fires only once we're sure the stall isn't
|
|
95
|
+
* legitimate slow-progress.
|
|
96
|
+
*/
|
|
97
|
+
export declare const STUCK_DEPLOY_THRESHOLD_MS: number;
|
|
98
|
+
export declare function isStuckDeploy(status: string, createdAt: string, now?: number): boolean;
|
|
27
99
|
export declare function doctor(ctx: Context, input?: DoctorInput): Promise<DoctorResult>;
|
|
28
100
|
export {};
|
|
29
101
|
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,UAAU,EAUhB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,iBAAiB;;;IAG5B;;;;;;;;;;;;OAYG;;IAEH;;;;;;;;OAQG;;;;;;;;;;;;EAEH,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;AAE7E;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAE3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAAiB,CAAC;AACxD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAmB,GACvB,OAAO,CAKT;AAED,wBAAsB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CA+azF"}
|