@percher/core 0.4.2 → 0.4.4
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/commands/cache.d.ts +23 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +24 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/capabilities.d.ts +7 -0
- package/dist/commands/capabilities.d.ts.map +1 -0
- package/dist/commands/capabilities.js +7 -0
- package/dist/commands/capabilities.js.map +1 -0
- package/dist/commands/claim.d.ts +24 -0
- package/dist/commands/claim.d.ts.map +1 -0
- package/dist/commands/claim.js +47 -0
- package/dist/commands/claim.js.map +1 -0
- 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.map +1 -1
- package/dist/commands/dashboard.js +12 -1
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/doctor.d.ts +126 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +445 -313
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/inspect-link.d.ts +20 -0
- package/dist/commands/inspect-link.d.ts.map +1 -0
- package/dist/commands/inspect-link.js +28 -0
- package/dist/commands/inspect-link.js.map +1 -0
- package/dist/commands/migrate-supabase-scripts.d.ts.map +1 -1
- package/dist/commands/migrate-supabase-scripts.js +10 -7
- package/dist/commands/migrate-supabase-scripts.js.map +1 -1
- package/dist/commands/migrate-supabase-sdk.d.ts.map +1 -1
- package/dist/commands/migrate-supabase-sdk.js +33 -28
- package/dist/commands/migrate-supabase-sdk.js.map +1 -1
- package/dist/commands/migrate-supabase-walker.d.ts.map +1 -1
- package/dist/commands/migrate-supabase-walker.js +2 -3
- package/dist/commands/migrate-supabase-walker.js.map +1 -1
- package/dist/commands/preview-branch.d.ts +31 -0
- package/dist/commands/preview-branch.d.ts.map +1 -0
- package/dist/commands/preview-branch.js +55 -0
- package/dist/commands/preview-branch.js.map +1 -0
- package/dist/commands/publish-api-error.d.ts +15 -0
- package/dist/commands/publish-api-error.d.ts.map +1 -1
- package/dist/commands/publish-api-error.js +155 -6
- package/dist/commands/publish-api-error.js.map +1 -1
- package/dist/commands/publish-failure.d.ts +3 -1
- package/dist/commands/publish-failure.d.ts.map +1 -1
- package/dist/commands/publish-failure.js +11 -7
- package/dist/commands/publish-failure.js.map +1 -1
- package/dist/commands/publish.d.ts +15 -0
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +176 -321
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +4 -4
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/redeploy.js +3 -3
- package/dist/commands/redeploy.js.map +1 -1
- package/dist/commands/rename.d.ts +7 -0
- package/dist/commands/rename.d.ts.map +1 -1
- package/dist/commands/rename.js +32 -1
- package/dist/commands/rename.js.map +1 -1
- package/dist/commands/wait-deploy.d.ts +12 -2
- package/dist/commands/wait-deploy.d.ts.map +1 -1
- package/dist/commands/wait-deploy.js +115 -46
- package/dist/commands/wait-deploy.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/plans.d.ts +14 -1
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +49 -1
- package/dist/plans.js.map +1 -1
- package/dist/poll-deployment.d.ts +3 -3
- package/dist/poll-deployment.d.ts.map +1 -1
- package/dist/poll-deployment.js +5 -4
- package/dist/poll-deployment.js.map +1 -1
- package/dist/publish-retry.d.ts.map +1 -1
- package/dist/publish-retry.js +2 -3
- package/dist/publish-retry.js.map +1 -1
- package/package.json +4 -4
- package/dist/commands/continue.d.ts +0 -48
- package/dist/commands/continue.d.ts.map +0 -1
- package/dist/commands/continue.js +0 -121
- package/dist/commands/continue.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll-deployment.js","sourceRoot":"","sources":["../src/poll-deployment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"poll-deployment.js","sourceRoot":"","sources":["../src/poll-deployment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish-retry.d.ts","sourceRoot":"","sources":["../src/publish-retry.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,QAAQ,EACJ,oBAAoB,GACpB,cAAc,GACd,SAAS,GACT,UAAU,GACV,eAAe,GACf,YAAY,CAAC;CAClB;AA2BD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"publish-retry.d.ts","sourceRoot":"","sources":["../src/publish-retry.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,QAAQ,EACJ,oBAAoB,GACpB,cAAc,GACd,SAAS,GACT,UAAU,GACV,eAAe,GACf,YAAY,CAAC;CAClB;AA2BD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAwJhF;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,kEAAkE;IAClE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAqBhC"}
|
package/dist/publish-retry.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* minting a new deploy row. The caller is responsible for generating the
|
|
26
26
|
* key (via `crypto.randomUUID()`) and threading it into the request.
|
|
27
27
|
*/
|
|
28
|
-
import { PercherApiError } from "@percher/client";
|
|
28
|
+
import { isTransientNetworkError, PercherApiError } from "@percher/client";
|
|
29
29
|
const NON_RETRYABLE_CODES = new Set([
|
|
30
30
|
"WORKER_UNAVAILABLE_PERSISTENT",
|
|
31
31
|
"BUILD_FAILED",
|
|
@@ -172,8 +172,7 @@ export function classifyDeployRetry(err, attempt) {
|
|
|
172
172
|
category: "non_retryable",
|
|
173
173
|
};
|
|
174
174
|
}
|
|
175
|
-
if (err
|
|
176
|
-
/network error|fetch failed|ECONNRESET|ENOTFOUND|ETIMEDOUT/i.test(err.message)) {
|
|
175
|
+
if (isTransientNetworkError(err)) {
|
|
177
176
|
const delay = NETWORK_BACKOFF_MS[idx];
|
|
178
177
|
if (delay === undefined) {
|
|
179
178
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish-retry.js","sourceRoot":"","sources":["../src/publish-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"publish-retry.js","sourceRoot":"","sources":["../src/publish-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAiB3E,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,+BAA+B;IAC/B,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,sBAAsB;IACtB,oBAAoB;IACpB,sBAAsB;IACtB,qBAAqB;IACrB,mBAAmB;IACnB,eAAe;IACf,oBAAoB;IACpB,uBAAuB;IACvB,kBAAkB;IAClB,iEAAiE;IACjE,mEAAmE;IACnE,+DAA+D;IAC/D,iEAAiE;IACjE,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AACvE,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AAC3D,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;AAErD,MAAM,UAAU,mBAAmB,CAAC,GAAY,EAAE,OAAe;IAC/D,oEAAoE;IACpE,8DAA8D;IAC9D,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;IAExB,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;QACnC,IAAI,GAAG,CAAC,IAAI,KAAK,+BAA+B,EAAE,CAAC;YACjD,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,uDAAuD;gBAC/D,QAAQ,EAAE,YAAY;aACvB,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,qCAAqC;oBAC7C,QAAQ,EAAE,oBAAoB;iBAC/B,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,uBAAuB;gBAC/B,QAAQ,EAAE,oBAAoB;aAC/B,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;gBACb,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,+BAA+B;oBACvC,QAAQ,EAAE,cAAc;iBACzB,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GACjB,OAAO,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,aAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;YACzF,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;gBAChE,MAAM,EAAE,oBAAoB;gBAC5B,QAAQ,EAAE,cAAc;aACzB,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YACzC,gEAAgE;YAChE,+DAA+D;YAC/D,iEAAiE;YACjE,8DAA8D;YAC9D,kCAAkC;YAClC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;gBACb,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,sDAAsD;oBAC9D,QAAQ,EAAE,cAAc;iBACzB,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GACjB,OAAO,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,aAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;gBACpE,MAAM,EAAE,gCAAgC;gBACxC,QAAQ,EAAE,cAAc;aACzB,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACvC,sDAAsD;YACtD,iEAAiE;YACjE,+DAA+D;YAC/D,gEAAgE;YAChE,iEAAiE;YACjE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;gBACb,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,sCAAsC;oBAC9C,QAAQ,EAAE,cAAc;iBACzB,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GACjB,OAAO,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,aAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;gBACpE,MAAM,EAAE,gDAAgD;gBACxD,QAAQ,EAAE,cAAc;aACzB,CAAC;QACJ,CAAC;QACD,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,kBAAkB,GAAG,CAAC,IAAI,EAAE;gBACpC,QAAQ,EAAE,eAAe;aAC1B,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,QAAQ,GAAG,CAAC,MAAM,mBAAmB;oBAC7C,QAAQ,EAAE,UAAU;iBACrB,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE;gBAC5B,QAAQ,EAAE,UAAU;aACrB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,QAAQ,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE;YACxC,QAAQ,EAAE,eAAe;SAC1B,CAAC;IACJ,CAAC;IAED,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,gCAAgC;gBACxC,QAAQ,EAAE,SAAS;aACpB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,SAAS;SACpB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,eAAe;KAC1B,CAAC;AACJ,CAAC;AAkBD,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAOjF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAA4B;IAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAgB,CAAC;IACrB,OAAO,OAAO,GAAG,GAAG,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,CAAC;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,GAAG,GAAG,CAAC;YACd,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;gBAC1C,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,MAAM,OAAO,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@percher/core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "Core logic and CLI commands for the Percher hosting platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"typecheck": "tsc --noEmit"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@percher/client": "^0.2.
|
|
35
|
-
"@percher/shared": "^0.1.
|
|
36
|
-
"@percher/toml": "^0.1.
|
|
34
|
+
"@percher/client": "^0.2.10",
|
|
35
|
+
"@percher/shared": "^0.1.4",
|
|
36
|
+
"@percher/toml": "^0.1.5",
|
|
37
37
|
"@types/jscodeshift": "17.3.0",
|
|
38
38
|
"ignore": "^7.0.5",
|
|
39
39
|
"jscodeshift": "17.3.0",
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { Deployment } from "@percher/client";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
import type { Context } from "../context";
|
|
4
|
-
import type { PublishRecovery, RecoveryAction, SuggestedTool } from "../recovery";
|
|
5
|
-
export declare const continueInputSchema: z.ZodObject<{
|
|
6
|
-
app: z.ZodString;
|
|
7
|
-
deployId: z.ZodOptional<z.ZodString>;
|
|
8
|
-
}, "strip", z.ZodTypeAny, {
|
|
9
|
-
app: string;
|
|
10
|
-
deployId?: string | undefined;
|
|
11
|
-
}, {
|
|
12
|
-
app: string;
|
|
13
|
-
deployId?: string | undefined;
|
|
14
|
-
}>;
|
|
15
|
-
export type ContinueInput = z.infer<typeof continueInputSchema>;
|
|
16
|
-
export interface ContinueResult {
|
|
17
|
-
/** Snapshot of the deploy state we found. */
|
|
18
|
-
state: "live" | "in_progress" | "failed" | "replaced" | "no_deploys";
|
|
19
|
-
app: {
|
|
20
|
-
id: string;
|
|
21
|
-
name: string;
|
|
22
|
-
url: string;
|
|
23
|
-
};
|
|
24
|
-
deployment?: Deployment;
|
|
25
|
-
url?: string;
|
|
26
|
-
/** Single primary recommended action. Mirrors `recovery.nextAction`. */
|
|
27
|
-
nextAction: RecoveryAction;
|
|
28
|
-
/** Short reason — one sentence the agent can echo to the user. */
|
|
29
|
-
reason: string;
|
|
30
|
-
suggestedTool?: SuggestedTool;
|
|
31
|
-
args?: Record<string, unknown>;
|
|
32
|
-
/**
|
|
33
|
-
* Full recovery shape (with optional `alternativeActions` from the
|
|
34
|
-
* inspect path). The convenience fields above are the primary surface;
|
|
35
|
-
* `recovery` is here for callers that already know how to read it.
|
|
36
|
-
*/
|
|
37
|
-
recovery: PublishRecovery;
|
|
38
|
-
summary: string;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* FUTURE11 Phase 3 — read-only "what do I do next?" tool. Looks up the
|
|
42
|
-
* latest (or specified) deploy and returns a single primary action with
|
|
43
|
-
* pre-filled args. Never starts a new deploy. Never deletes data. The
|
|
44
|
-
* point is to collapse the multi-tool decision tree (publish vs push vs
|
|
45
|
-
* logs vs doctor vs deploys_inspect) into one question for the agent.
|
|
46
|
-
*/
|
|
47
|
-
export declare function percherContinue(ctx: Context, input: ContinueInput): Promise<ContinueResult>;
|
|
48
|
-
//# sourceMappingURL=continue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"continue.d.ts","sourceRoot":"","sources":["../../src/commands/continue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGlF,eAAO,MAAM,mBAAmB;;;;;;;;;EAQ9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;IACrE,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,UAAU,EAAE,cAAc,CAAC;IAC3B,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA8GjG"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { z } from "zod/v3";
|
|
2
|
-
import { classifyDeploymentFailure } from "./publish-failure";
|
|
3
|
-
export const continueInputSchema = z.object({
|
|
4
|
-
app: z.string().describe("App name (the value of [app].name in percher.toml)"),
|
|
5
|
-
deployId: z
|
|
6
|
-
.string()
|
|
7
|
-
.optional()
|
|
8
|
-
.describe("Specific deploy id to inspect. If omitted, the most recent deploy on the app is used."),
|
|
9
|
-
});
|
|
10
|
-
/**
|
|
11
|
-
* FUTURE11 Phase 3 — read-only "what do I do next?" tool. Looks up the
|
|
12
|
-
* latest (or specified) deploy and returns a single primary action with
|
|
13
|
-
* pre-filled args. Never starts a new deploy. Never deletes data. The
|
|
14
|
-
* point is to collapse the multi-tool decision tree (publish vs push vs
|
|
15
|
-
* logs vs doctor vs deploys_inspect) into one question for the agent.
|
|
16
|
-
*/
|
|
17
|
-
export async function percherContinue(ctx, input) {
|
|
18
|
-
const app = await ctx.client.apps.get(input.app);
|
|
19
|
-
let deployment;
|
|
20
|
-
if (input.deployId) {
|
|
21
|
-
deployment = await ctx.client.apps.getDeployment(input.app, input.deployId);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
const deploys = await ctx.client.apps.listDeploys(input.app, { limit: 1 });
|
|
25
|
-
deployment = deploys[0];
|
|
26
|
-
}
|
|
27
|
-
if (!deployment) {
|
|
28
|
-
return {
|
|
29
|
-
state: "no_deploys",
|
|
30
|
-
app: { id: app.id, name: app.name, url: app.url },
|
|
31
|
-
nextAction: "ask_user",
|
|
32
|
-
reason: "This app has no deploys yet. Ask the user to confirm they want to publish.",
|
|
33
|
-
recovery: { retryable: false, nextAction: "ask_user" },
|
|
34
|
-
summary: `${app.name} has no deploys yet — ask the user before publishing.`,
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
// Already live — short-circuit. No tool to call; the agent should
|
|
38
|
-
// just echo the URL.
|
|
39
|
-
if (deployment.status === "live") {
|
|
40
|
-
const url = deployment.previewUrl ?? deployment.url ?? app.url;
|
|
41
|
-
return {
|
|
42
|
-
state: "live",
|
|
43
|
-
app: { id: app.id, name: app.name, url: app.url },
|
|
44
|
-
deployment,
|
|
45
|
-
url,
|
|
46
|
-
nextAction: "none",
|
|
47
|
-
reason: "Latest deploy is already live.",
|
|
48
|
-
recovery: { retryable: false, nextAction: "none" },
|
|
49
|
-
summary: `${app.name} is live at ${url}.`,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
// Superseded by a newer live deploy — distinct from `failed`. Don't
|
|
53
|
-
// route the agent into the build-log inspector for a row that didn't
|
|
54
|
-
// actually break. If the caller passed an explicit `deployId`, point
|
|
55
|
-
// them at percher_continue without one so they resolve the current
|
|
56
|
-
// live state. If they didn't pass one (we got `replaced` from
|
|
57
|
-
// listDeploys, meaning there's no more recent terminal row), surface
|
|
58
|
-
// the situation as ask_user — something is off.
|
|
59
|
-
if (deployment.status === "replaced") {
|
|
60
|
-
return {
|
|
61
|
-
state: "replaced",
|
|
62
|
-
app: { id: app.id, name: app.name, url: app.url },
|
|
63
|
-
deployment,
|
|
64
|
-
nextAction: "ask_user",
|
|
65
|
-
reason: `Deploy ${deployment.id} was replaced by a newer deploy — it is no longer live.`,
|
|
66
|
-
suggestedTool: "percher_continue",
|
|
67
|
-
args: input.deployId ? { app: app.name } : undefined,
|
|
68
|
-
recovery: {
|
|
69
|
-
retryable: false,
|
|
70
|
-
nextAction: "ask_user",
|
|
71
|
-
suggestedTool: "percher_continue",
|
|
72
|
-
args: input.deployId ? { app: app.name } : undefined,
|
|
73
|
-
},
|
|
74
|
-
summary: input.deployId
|
|
75
|
-
? `${app.name} deploy ${deployment.id} was replaced — call percher_continue (no deployId) to find the current live state.`
|
|
76
|
-
: `${app.name}'s most recent deploy was replaced — surface this to the user.`,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
// In flight — point at the wait tool with pre-filled args.
|
|
80
|
-
if (deployment.status === "queued" ||
|
|
81
|
-
deployment.status === "building" ||
|
|
82
|
-
deployment.status === "deploying") {
|
|
83
|
-
const args = { app: app.name, deployId: deployment.id, timeoutSeconds: 30 };
|
|
84
|
-
return {
|
|
85
|
-
state: "in_progress",
|
|
86
|
-
app: { id: app.id, name: app.name, url: app.url },
|
|
87
|
-
deployment,
|
|
88
|
-
nextAction: "wait_deploy",
|
|
89
|
-
reason: `Deploy ${deployment.id} is still ${deployment.status} — wait, don't start a new deploy.`,
|
|
90
|
-
suggestedTool: "percher_wait_for_deploy",
|
|
91
|
-
args,
|
|
92
|
-
recovery: {
|
|
93
|
-
retryable: false,
|
|
94
|
-
nextAction: "wait_deploy",
|
|
95
|
-
suggestedTool: "percher_wait_for_deploy",
|
|
96
|
-
args,
|
|
97
|
-
},
|
|
98
|
-
summary: `${app.name} deploy ${deployment.id} is ${deployment.status} — call percher_wait_for_deploy.`,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
// Failed — reuse classifier so the agent gets the same nextAction it
|
|
102
|
-
// would have gotten from a sync publish failure (set_env_vars,
|
|
103
|
-
// inspect_build_log, fix_problems, etc.).
|
|
104
|
-
const { error, recovery, summary } = await classifyDeploymentFailure({
|
|
105
|
-
ctx,
|
|
106
|
-
app,
|
|
107
|
-
deployment,
|
|
108
|
-
});
|
|
109
|
-
return {
|
|
110
|
-
state: "failed",
|
|
111
|
-
app: { id: app.id, name: app.name, url: app.url },
|
|
112
|
-
deployment,
|
|
113
|
-
nextAction: recovery.nextAction,
|
|
114
|
-
reason: error.title,
|
|
115
|
-
suggestedTool: recovery.suggestedTool,
|
|
116
|
-
args: recovery.args,
|
|
117
|
-
recovery,
|
|
118
|
-
summary,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=continue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"continue.js","sourceRoot":"","sources":["../../src/commands/continue.ts"],"names":[],"mappings":"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"}
|