@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.
Files changed (226) hide show
  1. package/dist/ai-files-manifest.d.ts +28 -0
  2. package/dist/ai-files-manifest.d.ts.map +1 -0
  3. package/dist/ai-files-manifest.js +96 -0
  4. package/dist/ai-files-manifest.js.map +1 -0
  5. package/dist/commands/account.d.ts +51 -0
  6. package/dist/commands/account.d.ts.map +1 -0
  7. package/dist/commands/account.js +88 -0
  8. package/dist/commands/account.js.map +1 -0
  9. package/dist/commands/ai-files.d.ts +73 -0
  10. package/dist/commands/ai-files.d.ts.map +1 -0
  11. package/dist/commands/ai-files.js +179 -0
  12. package/dist/commands/ai-files.js.map +1 -0
  13. package/dist/commands/billing.d.ts +1 -1
  14. package/dist/commands/billing.d.ts.map +1 -1
  15. package/dist/commands/billing.js +1 -1
  16. package/dist/commands/billing.js.map +1 -1
  17. package/dist/commands/continue.d.ts +48 -0
  18. package/dist/commands/continue.d.ts.map +1 -0
  19. package/dist/commands/continue.js +121 -0
  20. package/dist/commands/continue.js.map +1 -0
  21. package/dist/commands/create.d.ts +1 -1
  22. package/dist/commands/create.d.ts.map +1 -1
  23. package/dist/commands/create.js +1 -1
  24. package/dist/commands/create.js.map +1 -1
  25. package/dist/commands/dashboard.d.ts +15 -0
  26. package/dist/commands/dashboard.d.ts.map +1 -0
  27. package/dist/commands/dashboard.js +33 -0
  28. package/dist/commands/dashboard.js.map +1 -0
  29. package/dist/commands/data-export.d.ts +21 -0
  30. package/dist/commands/data-export.d.ts.map +1 -0
  31. package/dist/commands/data-export.js +36 -0
  32. package/dist/commands/data-export.js.map +1 -0
  33. package/dist/commands/data.d.ts +3 -3
  34. package/dist/commands/data.d.ts.map +1 -1
  35. package/dist/commands/data.js +1 -1
  36. package/dist/commands/data.js.map +1 -1
  37. package/dist/commands/delete.d.ts +1 -1
  38. package/dist/commands/delete.d.ts.map +1 -1
  39. package/dist/commands/delete.js +1 -1
  40. package/dist/commands/delete.js.map +1 -1
  41. package/dist/commands/deploys.d.ts +2 -2
  42. package/dist/commands/deploys.d.ts.map +1 -1
  43. package/dist/commands/deploys.js +21 -5
  44. package/dist/commands/deploys.js.map +1 -1
  45. package/dist/commands/dev.d.ts +1 -9
  46. package/dist/commands/dev.d.ts.map +1 -1
  47. package/dist/commands/dev.js +79 -24
  48. package/dist/commands/dev.js.map +1 -1
  49. package/dist/commands/diagnose.d.ts +1 -1
  50. package/dist/commands/diagnose.d.ts.map +1 -1
  51. package/dist/commands/diagnose.js +1 -1
  52. package/dist/commands/diagnose.js.map +1 -1
  53. package/dist/commands/doctor.d.ts +75 -3
  54. package/dist/commands/doctor.d.ts.map +1 -1
  55. package/dist/commands/doctor.js +822 -10
  56. package/dist/commands/doctor.js.map +1 -1
  57. package/dist/commands/domains.d.ts +1 -1
  58. package/dist/commands/domains.d.ts.map +1 -1
  59. package/dist/commands/domains.js +1 -1
  60. package/dist/commands/domains.js.map +1 -1
  61. package/dist/commands/env-scan.d.ts +2 -0
  62. package/dist/commands/env-scan.d.ts.map +1 -0
  63. package/dist/commands/env-scan.js +92 -0
  64. package/dist/commands/env-scan.js.map +1 -0
  65. package/dist/commands/env.d.ts +1 -1
  66. package/dist/commands/env.d.ts.map +1 -1
  67. package/dist/commands/env.js +1 -1
  68. package/dist/commands/env.js.map +1 -1
  69. package/dist/commands/export.d.ts +1 -1
  70. package/dist/commands/export.js +1 -1
  71. package/dist/commands/generate.d.ts +1 -1
  72. package/dist/commands/generate.d.ts.map +1 -1
  73. package/dist/commands/generate.js +14 -9
  74. package/dist/commands/generate.js.map +1 -1
  75. package/dist/commands/github.d.ts +60 -0
  76. package/dist/commands/github.d.ts.map +1 -0
  77. package/dist/commands/github.js +112 -0
  78. package/dist/commands/github.js.map +1 -0
  79. package/dist/commands/import-project.d.ts +1 -1
  80. package/dist/commands/import-project.d.ts.map +1 -1
  81. package/dist/commands/import-project.js +1 -1
  82. package/dist/commands/import-project.js.map +1 -1
  83. package/dist/commands/init.d.ts +1 -1
  84. package/dist/commands/init.d.ts.map +1 -1
  85. package/dist/commands/init.js +1 -1
  86. package/dist/commands/init.js.map +1 -1
  87. package/dist/commands/insights.d.ts +1 -1
  88. package/dist/commands/insights.d.ts.map +1 -1
  89. package/dist/commands/insights.js +1 -1
  90. package/dist/commands/insights.js.map +1 -1
  91. package/dist/commands/login.d.ts +1 -1
  92. package/dist/commands/login.d.ts.map +1 -1
  93. package/dist/commands/login.js +1 -1
  94. package/dist/commands/login.js.map +1 -1
  95. package/dist/commands/logs.d.ts +1 -1
  96. package/dist/commands/logs.d.ts.map +1 -1
  97. package/dist/commands/logs.js +1 -1
  98. package/dist/commands/logs.js.map +1 -1
  99. package/dist/commands/mcp.d.ts +1 -1
  100. package/dist/commands/mcp.d.ts.map +1 -1
  101. package/dist/commands/mcp.js +1 -1
  102. package/dist/commands/mcp.js.map +1 -1
  103. package/dist/commands/open.d.ts +1 -1
  104. package/dist/commands/open.d.ts.map +1 -1
  105. package/dist/commands/open.js +1 -1
  106. package/dist/commands/open.js.map +1 -1
  107. package/dist/commands/publish-failure.d.ts +31 -0
  108. package/dist/commands/publish-failure.d.ts.map +1 -0
  109. package/dist/commands/publish-failure.js +150 -0
  110. package/dist/commands/publish-failure.js.map +1 -0
  111. package/dist/commands/publish-node.d.ts +16 -0
  112. package/dist/commands/publish-node.d.ts.map +1 -0
  113. package/dist/commands/publish-node.js +42 -0
  114. package/dist/commands/publish-node.js.map +1 -0
  115. package/dist/commands/publish.d.ts +105 -3
  116. package/dist/commands/publish.d.ts.map +1 -1
  117. package/dist/commands/publish.js +746 -158
  118. package/dist/commands/publish.js.map +1 -1
  119. package/dist/commands/push.d.ts +45 -8
  120. package/dist/commands/push.d.ts.map +1 -1
  121. package/dist/commands/push.js +233 -22
  122. package/dist/commands/push.js.map +1 -1
  123. package/dist/commands/redeploy.d.ts +28 -0
  124. package/dist/commands/redeploy.d.ts.map +1 -0
  125. package/dist/commands/redeploy.js +421 -0
  126. package/dist/commands/redeploy.js.map +1 -0
  127. package/dist/commands/rename.d.ts +1 -1
  128. package/dist/commands/rename.d.ts.map +1 -1
  129. package/dist/commands/rename.js +1 -1
  130. package/dist/commands/rename.js.map +1 -1
  131. package/dist/commands/reproduce.d.ts +64 -0
  132. package/dist/commands/reproduce.d.ts.map +1 -0
  133. package/dist/commands/reproduce.js +211 -0
  134. package/dist/commands/reproduce.js.map +1 -0
  135. package/dist/commands/reset-superuser.d.ts +1 -1
  136. package/dist/commands/reset-superuser.d.ts.map +1 -1
  137. package/dist/commands/reset-superuser.js +1 -1
  138. package/dist/commands/reset-superuser.js.map +1 -1
  139. package/dist/commands/restore.d.ts +79 -0
  140. package/dist/commands/restore.d.ts.map +1 -0
  141. package/dist/commands/restore.js +164 -0
  142. package/dist/commands/restore.js.map +1 -0
  143. package/dist/commands/resume.d.ts +1 -1
  144. package/dist/commands/resume.d.ts.map +1 -1
  145. package/dist/commands/resume.js +1 -1
  146. package/dist/commands/resume.js.map +1 -1
  147. package/dist/commands/rollback.d.ts +21 -8
  148. package/dist/commands/rollback.d.ts.map +1 -1
  149. package/dist/commands/rollback.js +12 -6
  150. package/dist/commands/rollback.js.map +1 -1
  151. package/dist/commands/status.d.ts +33 -0
  152. package/dist/commands/status.d.ts.map +1 -0
  153. package/dist/commands/status.js +48 -0
  154. package/dist/commands/status.js.map +1 -0
  155. package/dist/commands/unsuspend.d.ts +35 -0
  156. package/dist/commands/unsuspend.d.ts.map +1 -0
  157. package/dist/commands/unsuspend.js +27 -0
  158. package/dist/commands/unsuspend.js.map +1 -0
  159. package/dist/commands/versions.d.ts +1 -1
  160. package/dist/commands/versions.d.ts.map +1 -1
  161. package/dist/commands/versions.js +1 -1
  162. package/dist/commands/versions.js.map +1 -1
  163. package/dist/commands/wait-deploy.d.ts +92 -0
  164. package/dist/commands/wait-deploy.d.ts.map +1 -0
  165. package/dist/commands/wait-deploy.js +226 -0
  166. package/dist/commands/wait-deploy.js.map +1 -0
  167. package/dist/env-scan-source.d.ts +39 -0
  168. package/dist/env-scan-source.d.ts.map +1 -0
  169. package/dist/env-scan-source.js +332 -0
  170. package/dist/env-scan-source.js.map +1 -0
  171. package/dist/error-classifier.d.ts.map +1 -1
  172. package/dist/error-classifier.js +67 -4
  173. package/dist/error-classifier.js.map +1 -1
  174. package/dist/errors.d.ts +8 -1
  175. package/dist/errors.d.ts.map +1 -1
  176. package/dist/errors.js +2 -0
  177. package/dist/errors.js.map +1 -1
  178. package/dist/event-renderer.d.ts +17 -0
  179. package/dist/event-renderer.d.ts.map +1 -0
  180. package/dist/event-renderer.js +130 -0
  181. package/dist/event-renderer.js.map +1 -0
  182. package/dist/index.d.ts +16 -1
  183. package/dist/index.d.ts.map +1 -1
  184. package/dist/index.js +15 -0
  185. package/dist/index.js.map +1 -1
  186. package/dist/plans.d.ts +20 -0
  187. package/dist/plans.d.ts.map +1 -1
  188. package/dist/plans.js +15 -0
  189. package/dist/plans.js.map +1 -1
  190. package/dist/poll-deployment.d.ts +59 -0
  191. package/dist/poll-deployment.d.ts.map +1 -0
  192. package/dist/poll-deployment.js +93 -0
  193. package/dist/poll-deployment.js.map +1 -0
  194. package/dist/publish-retry.d.ts +29 -0
  195. package/dist/publish-retry.d.ts.map +1 -0
  196. package/dist/publish-retry.js +224 -0
  197. package/dist/publish-retry.js.map +1 -0
  198. package/dist/recovery.d.ts +356 -0
  199. package/dist/recovery.d.ts.map +1 -0
  200. package/dist/recovery.js +300 -0
  201. package/dist/recovery.js.map +1 -0
  202. package/dist/stream-utils.d.ts +21 -0
  203. package/dist/stream-utils.d.ts.map +1 -0
  204. package/dist/stream-utils.js +41 -0
  205. package/dist/stream-utils.js.map +1 -0
  206. package/dist/structured-error-codes.d.ts +30 -0
  207. package/dist/structured-error-codes.d.ts.map +1 -0
  208. package/dist/structured-error-codes.js +86 -0
  209. package/dist/structured-error-codes.js.map +1 -0
  210. package/dist/tarball.d.ts +11 -0
  211. package/dist/tarball.d.ts.map +1 -1
  212. package/dist/tarball.js +30 -9
  213. package/dist/tarball.js.map +1 -1
  214. package/dist/templates/ai-files/claude-md.d.ts +7 -0
  215. package/dist/templates/ai-files/claude-md.d.ts.map +1 -0
  216. package/dist/templates/ai-files/claude-md.js +78 -0
  217. package/dist/templates/ai-files/claude-md.js.map +1 -0
  218. package/dist/templates/ai-files/cursor-percher-mdc.d.ts +7 -0
  219. package/dist/templates/ai-files/cursor-percher-mdc.d.ts.map +1 -0
  220. package/dist/templates/ai-files/cursor-percher-mdc.js +111 -0
  221. package/dist/templates/ai-files/cursor-percher-mdc.js.map +1 -0
  222. package/dist/templates/ai-files/index.d.ts +8 -0
  223. package/dist/templates/ai-files/index.d.ts.map +1 -0
  224. package/dist/templates/ai-files/index.js +4 -0
  225. package/dist/templates/ai-files/index.js.map +1 -0
  226. package/package.json +6 -5
@@ -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
- // Override app name if explicitly provided via CLI
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
- let deployment = await ctx.client.apps.deploy(app.id, { tarball: tarball.stream });
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 = 5 * 60 * 1000;
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
- await callbacks.writeLine("Deploy failed. Run `percher logs` for details.");
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
- else {
69
- await callbacks.writeLine(`Live at ${deployment.url ?? app.url}`);
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
- // Serialize onChange callbacks to prevent parallel deploys
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v3";
2
2
  import type { Context } from "../context";
3
3
  export declare const diagnoseInputSchema: z.ZodObject<{
4
4
  app: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/commands/diagnose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,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
+ {"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,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v3";
2
2
  import { readPercherTomlAppName } from "../app-name";
3
3
  import { PercherCoreError } from "../errors";
4
4
  export const diagnoseInputSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/commands/diagnose.ts"],"names":[],"mappings":"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"}
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
- app?: string | undefined;
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":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,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,MAAM,WAAW,YAAY;IAC3B,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;CACf;AAED,wBAAsB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAoMzF"}
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"}