@percher/core 0.2.5 → 0.3.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 +1 -1
- 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 +77 -23
- 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 +63 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +792 -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 +142 -0
- package/dist/commands/publish-failure.js.map +1 -0
- package/dist/commands/publish-node.d.ts +13 -0
- package/dist/commands/publish-node.d.ts.map +1 -0
- package/dist/commands/publish-node.js +38 -0
- package/dist/commands/publish-node.js.map +1 -0
- package/dist/commands/publish.d.ts +87 -3
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +589 -156
- 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 +215 -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 +417 -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 +14 -3
- package/dist/commands/reset-superuser.d.ts.map +1 -1
- package/dist/commands/reset-superuser.js +11 -2
- 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 +20 -8
- package/dist/commands/rollback.d.ts.map +1 -1
- package/dist/commands/rollback.js +11 -6
- package/dist/commands/rollback.js.map +1 -1
- 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 +225 -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/index.d.ts +14 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/plans.d.ts +11 -0
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +10 -0
- package/dist/plans.js.map +1 -1
- package/dist/poll-deployment.d.ts +47 -0
- package/dist/poll-deployment.d.ts.map +1 -0
- package/dist/poll-deployment.js +57 -0
- package/dist/poll-deployment.js.map +1 -0
- package/dist/recovery.d.ts +356 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +299 -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/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 +5 -5
package/dist/commands/dev.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { parseFile } from "@percher/toml";
|
|
4
|
-
import { z } from "zod";
|
|
4
|
+
import { z } from "zod/v3";
|
|
5
5
|
import { PercherCoreError } from "../errors";
|
|
6
6
|
import { createTarball } from "../tarball";
|
|
7
7
|
import { createWatcher } from "../watcher";
|
|
@@ -17,10 +17,8 @@ async function loadConfig(ctx, appOverride) {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
const config = await parseFile(tomlPath);
|
|
20
|
-
|
|
21
|
-
if (appOverride) {
|
|
20
|
+
if (appOverride)
|
|
22
21
|
return { ...config, app: { ...config.app, name: appOverride } };
|
|
23
|
-
}
|
|
24
22
|
return config;
|
|
25
23
|
}
|
|
26
24
|
async function ensureApp(ctx, config) {
|
|
@@ -42,7 +40,17 @@ async function doPush(ctx, config, callbacks) {
|
|
|
42
40
|
const tarball = await createTarball({ cwd: ctx.cwd, config });
|
|
43
41
|
const app = await ensureApp(ctx, config);
|
|
44
42
|
await callbacks.writeLine(`Pushing ${tarball.fileCount} files (${(tarball.bytes / 1024).toFixed(0)} KB)...`);
|
|
45
|
-
|
|
43
|
+
const deployResponse = await ctx.client.apps.deploy(app.id, { tarball: tarball.stream });
|
|
44
|
+
// FUTURE12 Phase 6d — `dev`'s tight watch loop only kicks off a new
|
|
45
|
+
// deploy when files change, so seeing `already_in_progress` here
|
|
46
|
+
// means the previous round-trip is still in flight. Surface it and
|
|
47
|
+
// skip this cycle — the next file change will retry.
|
|
48
|
+
if (deployResponse.status === "already_in_progress") {
|
|
49
|
+
const active = deployResponse;
|
|
50
|
+
await callbacks.writeLine(` Skipped — deploy already in progress (${active.deployId}, ${active.deployStatus}).`);
|
|
51
|
+
return { success: false, appId: app.id };
|
|
52
|
+
}
|
|
53
|
+
let deployment = deployResponse;
|
|
46
54
|
const startedAt = Date.now();
|
|
47
55
|
const timeoutMs = 5 * 60 * 1000;
|
|
48
56
|
const pollInterval = 2000;
|
|
@@ -50,11 +58,10 @@ async function doPush(ctx, config, callbacks) {
|
|
|
50
58
|
while (deployment.status !== "live" && deployment.status !== "failed") {
|
|
51
59
|
if (Date.now() - startedAt > timeoutMs) {
|
|
52
60
|
await callbacks.writeLine("Deploy timed out");
|
|
53
|
-
return;
|
|
61
|
+
return { success: false, appId: app.id };
|
|
54
62
|
}
|
|
55
63
|
if (callbacks.signal.aborted)
|
|
56
|
-
return;
|
|
57
|
-
// Only log on status change to reduce noise
|
|
64
|
+
return { success: false, appId: app.id };
|
|
58
65
|
if (deployment.status !== lastStatus) {
|
|
59
66
|
lastStatus = deployment.status;
|
|
60
67
|
await callbacks.writeLine(` ${deployment.status}...`);
|
|
@@ -63,29 +70,64 @@ async function doPush(ctx, config, callbacks) {
|
|
|
63
70
|
deployment = await ctx.client.apps.getDeployment(app.id, deployment.id);
|
|
64
71
|
}
|
|
65
72
|
if (deployment.status === "failed") {
|
|
66
|
-
|
|
73
|
+
try {
|
|
74
|
+
const insp = await ctx.client.apps.getDeployment(app.id, deployment.id);
|
|
75
|
+
if (insp.errorMessage) {
|
|
76
|
+
await callbacks.writeLine("Deploy failed:");
|
|
77
|
+
for (const line of insp.errorMessage.split("\n").slice(0, 30)) {
|
|
78
|
+
await callbacks.writeLine(` ${line}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
await callbacks.writeLine("Deploy failed.");
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
await callbacks.writeLine("Deploy failed.");
|
|
87
|
+
}
|
|
88
|
+
return { success: false, appId: app.id };
|
|
67
89
|
}
|
|
68
|
-
|
|
69
|
-
|
|
90
|
+
await callbacks.writeLine(`Live at ${deployment.url ?? ""}`);
|
|
91
|
+
return { success: true, appId: app.id };
|
|
92
|
+
}
|
|
93
|
+
function formatLogLine(l) {
|
|
94
|
+
const level = l.level.toUpperCase().padEnd(5);
|
|
95
|
+
const src = l.source === "runtime" ? "" : `[${l.source}] `;
|
|
96
|
+
return ` ${src}${level} ${l.message}`;
|
|
97
|
+
}
|
|
98
|
+
async function streamLogs(ctx, appId, callbacks, signal) {
|
|
99
|
+
try {
|
|
100
|
+
for await (const line of ctx.client.logs.stream(appId, { signal })) {
|
|
101
|
+
if (signal.aborted)
|
|
102
|
+
return;
|
|
103
|
+
await callbacks.writeLine(formatLogLine(line));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
if (signal.aborted)
|
|
108
|
+
return;
|
|
109
|
+
await callbacks.writeLine(`Log stream error: ${err.message}`);
|
|
70
110
|
}
|
|
71
111
|
}
|
|
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
112
|
export async function dev(ctx, input, callbacks) {
|
|
78
113
|
const config = await loadConfig(ctx, input.app);
|
|
79
114
|
const app = await ensureApp(ctx, config);
|
|
80
115
|
await callbacks.writeLine(`App: ${app.url}`);
|
|
81
|
-
await callbacks.writeLine("Watching for changes...");
|
|
116
|
+
await callbacks.writeLine("Watching for changes (logs streaming below)...");
|
|
82
117
|
await callbacks.writeLine("");
|
|
83
|
-
|
|
118
|
+
const logStream = { ctrl: null };
|
|
119
|
+
function startLogStream(appId) {
|
|
120
|
+
logStream.ctrl?.abort();
|
|
121
|
+
logStream.ctrl = new AbortController();
|
|
122
|
+
const linkedSignal = logStream.ctrl.signal;
|
|
123
|
+
void streamLogs(ctx, appId, callbacks, linkedSignal);
|
|
124
|
+
}
|
|
125
|
+
// Begin streaming logs for the existing app on entry.
|
|
126
|
+
startLogStream(app.id);
|
|
84
127
|
let busy = false;
|
|
85
128
|
let queued = null;
|
|
86
129
|
async function handleChange(files) {
|
|
87
130
|
if (busy) {
|
|
88
|
-
// Queue the latest batch — only the most recent matters
|
|
89
131
|
queued = files;
|
|
90
132
|
return;
|
|
91
133
|
}
|
|
@@ -95,20 +137,33 @@ export async function dev(ctx, input, callbacks) {
|
|
|
95
137
|
? files.join(", ")
|
|
96
138
|
: `${files.slice(0, 3).join(", ")} +${files.length - 3} more`;
|
|
97
139
|
await callbacks.writeLine(`Change detected: ${shortList}`);
|
|
140
|
+
// Pause the log stream while we redeploy so output stays readable.
|
|
141
|
+
logStream.ctrl?.abort();
|
|
98
142
|
const shouldPush = await callbacks.onFilesChanged(files);
|
|
99
143
|
if (shouldPush) {
|
|
100
144
|
try {
|
|
101
145
|
const freshConfig = await loadConfig(ctx, input.app);
|
|
102
|
-
await doPush(ctx, freshConfig, callbacks);
|
|
146
|
+
const result = await doPush(ctx, freshConfig, callbacks);
|
|
147
|
+
if (result.success) {
|
|
148
|
+
startLogStream(result.appId);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
// Failed deploy: resume the pre-push app's logs so the user
|
|
152
|
+
// can diagnose the error rather than going blind.
|
|
153
|
+
startLogStream(app.id);
|
|
154
|
+
}
|
|
103
155
|
}
|
|
104
156
|
catch (err) {
|
|
105
157
|
await callbacks.writeLine(`Push error: ${err.message}`);
|
|
158
|
+
startLogStream(app.id);
|
|
106
159
|
}
|
|
107
160
|
}
|
|
161
|
+
else {
|
|
162
|
+
startLogStream(app.id);
|
|
163
|
+
}
|
|
108
164
|
}
|
|
109
165
|
finally {
|
|
110
166
|
busy = false;
|
|
111
|
-
// Process queued changes
|
|
112
167
|
if (queued) {
|
|
113
168
|
const next = queued;
|
|
114
169
|
queued = null;
|
|
@@ -116,7 +171,6 @@ export async function dev(ctx, input, callbacks) {
|
|
|
116
171
|
}
|
|
117
172
|
}
|
|
118
173
|
}
|
|
119
|
-
// Dev loop: watch → prompt → push
|
|
120
174
|
const devConfig = config.dev;
|
|
121
175
|
const watcher = createWatcher({
|
|
122
176
|
cwd: ctx.cwd,
|
|
@@ -126,7 +180,6 @@ export async function dev(ctx, input, callbacks) {
|
|
|
126
180
|
void handleChange(files);
|
|
127
181
|
},
|
|
128
182
|
});
|
|
129
|
-
// Wait until aborted (user presses Ctrl+C)
|
|
130
183
|
try {
|
|
131
184
|
await new Promise((resolve) => {
|
|
132
185
|
if (callbacks.signal.aborted) {
|
|
@@ -137,6 +190,7 @@ export async function dev(ctx, input, callbacks) {
|
|
|
137
190
|
});
|
|
138
191
|
}
|
|
139
192
|
finally {
|
|
193
|
+
logStream.ctrl?.abort();
|
|
140
194
|
watcher.close();
|
|
141
195
|
}
|
|
142
196
|
}
|
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,13 +1,42 @@
|
|
|
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, {
|
|
32
|
+
mode?: "runtime" | "config" | "auto" | "deploy" | "env" | "account" | undefined;
|
|
7
33
|
app?: string | undefined;
|
|
34
|
+
deployId?: string | undefined;
|
|
8
35
|
json?: boolean | undefined;
|
|
9
36
|
}, {
|
|
37
|
+
mode?: "runtime" | "config" | "auto" | "deploy" | "env" | "account" | undefined;
|
|
10
38
|
app?: string | undefined;
|
|
39
|
+
deployId?: string | undefined;
|
|
11
40
|
json?: boolean | undefined;
|
|
12
41
|
}>;
|
|
13
42
|
export type DoctorInput = z.infer<typeof doctorInputSchema>;
|
|
@@ -17,12 +46,45 @@ 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
|
}
|
|
27
89
|
export declare function doctor(ctx: Context, input?: DoctorInput): Promise<DoctorResult>;
|
|
28
90
|
export {};
|
|
@@ -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,wBAAsB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgazF"}
|