@percher/core 0.4.0 → 0.4.1
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/account.d.ts +24 -14
- package/dist/commands/account.d.ts.map +1 -1
- package/dist/commands/account.js +17 -4
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/admin-reconcile-routes.d.ts +18 -0
- package/dist/commands/admin-reconcile-routes.d.ts.map +1 -0
- package/dist/commands/admin-reconcile-routes.js +22 -0
- package/dist/commands/admin-reconcile-routes.js.map +1 -0
- package/dist/commands/ai-files.d.ts +5 -17
- package/dist/commands/ai-files.d.ts.map +1 -1
- package/dist/commands/ai-files.js +3 -4
- package/dist/commands/ai-files.js.map +1 -1
- package/dist/commands/alerts.d.ts +69 -0
- package/dist/commands/alerts.d.ts.map +1 -0
- package/dist/commands/alerts.js +80 -0
- package/dist/commands/alerts.js.map +1 -0
- package/dist/commands/app-resources.d.ts +30 -0
- package/dist/commands/app-resources.d.ts.map +1 -0
- package/dist/commands/app-resources.js +34 -0
- package/dist/commands/app-resources.js.map +1 -0
- package/dist/commands/app-topology.d.ts +18 -0
- package/dist/commands/app-topology.d.ts.map +1 -0
- package/dist/commands/app-topology.js +25 -0
- package/dist/commands/app-topology.js.map +1 -0
- package/dist/commands/billing.d.ts +8 -8
- 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 +1 -1
- package/dist/commands/create.d.ts +2 -12
- 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 +2 -8
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +1 -1
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/data-export.d.ts +2 -8
- package/dist/commands/data-export.d.ts.map +1 -1
- package/dist/commands/data-export.js +1 -1
- package/dist/commands/data-export.js.map +1 -1
- package/dist/commands/data.d.ts +2 -8
- 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 +2 -8
- 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 +4 -28
- package/dist/commands/deploys.d.ts.map +1 -1
- package/dist/commands/deploys.js +1 -1
- package/dist/commands/deploys.js.map +1 -1
- package/dist/commands/dev.d.ts +2 -6
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +1 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/diagnose.d.ts +2 -22
- 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 +10 -35
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +12 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/domains.d.ts +5 -27
- 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.js +1 -1
- package/dist/commands/env-scan.js.map +1 -1
- package/dist/commands/env.d.ts +4 -20
- 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/forgejo.d.ts +45 -0
- package/dist/commands/forgejo.d.ts.map +1 -0
- package/dist/commands/forgejo.js +125 -0
- package/dist/commands/forgejo.js.map +1 -0
- package/dist/commands/generate.d.ts +2 -6
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +1 -1
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/github.d.ts +4 -15
- package/dist/commands/github.d.ts.map +1 -1
- package/dist/commands/github.js +17 -1
- package/dist/commands/github.js.map +1 -1
- package/dist/commands/import-project.d.ts +13 -9
- package/dist/commands/import-project.d.ts.map +1 -1
- package/dist/commands/import-project.js +73 -22
- package/dist/commands/import-project.js.map +1 -1
- package/dist/commands/init.d.ts +26 -11
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +103 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/insights.d.ts +2 -6
- 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 +2 -8
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +22 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logs.d.ts +25 -10
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +65 -5
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/mcp.d.ts +2 -2
- 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/migrate-supabase-map.d.ts +171 -0
- package/dist/commands/migrate-supabase-map.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-map.js +452 -0
- package/dist/commands/migrate-supabase-map.js.map +1 -0
- package/dist/commands/migrate-supabase-schema.d.ts +67 -0
- package/dist/commands/migrate-supabase-schema.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-schema.js +321 -0
- package/dist/commands/migrate-supabase-schema.js.map +1 -0
- package/dist/commands/migrate-supabase-scripts.d.ts +64 -0
- package/dist/commands/migrate-supabase-scripts.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-scripts.js +564 -0
- package/dist/commands/migrate-supabase-scripts.js.map +1 -0
- package/dist/commands/migrate-supabase-sdk.d.ts +133 -0
- package/dist/commands/migrate-supabase-sdk.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-sdk.js +1119 -0
- package/dist/commands/migrate-supabase-sdk.js.map +1 -0
- package/dist/commands/migrate-supabase-walker.d.ts +93 -0
- package/dist/commands/migrate-supabase-walker.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-walker.js +413 -0
- package/dist/commands/migrate-supabase-walker.js.map +1 -0
- package/dist/commands/migrate-supabase.d.ts +81 -0
- package/dist/commands/migrate-supabase.d.ts.map +1 -0
- package/dist/commands/migrate-supabase.js +579 -0
- package/dist/commands/migrate-supabase.js.map +1 -0
- package/dist/commands/open.d.ts +2 -6
- 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-api-error.d.ts +46 -0
- package/dist/commands/publish-api-error.d.ts.map +1 -0
- package/dist/commands/publish-api-error.js +307 -0
- package/dist/commands/publish-api-error.js.map +1 -0
- package/dist/commands/publish.d.ts +40 -17
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +115 -8
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/push.d.ts +2 -12
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +2 -2
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/redeploy.d.ts +2 -8
- package/dist/commands/redeploy.d.ts.map +1 -1
- package/dist/commands/redeploy.js +2 -2
- package/dist/commands/redeploy.js.map +1 -1
- package/dist/commands/rename.d.ts +2 -8
- 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 +2 -8
- package/dist/commands/reproduce.d.ts.map +1 -1
- package/dist/commands/reproduce.js +1 -1
- package/dist/commands/reproduce.js.map +1 -1
- package/dist/commands/reset-superuser.d.ts +2 -16
- 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 +7 -22
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +1 -1
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/resume.d.ts +2 -6
- 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 +2 -8
- package/dist/commands/rollback.d.ts.map +1 -1
- package/dist/commands/rollback.js +1 -1
- package/dist/commands/rollback.js.map +1 -1
- package/dist/commands/sharing.d.ts +48 -0
- package/dist/commands/sharing.d.ts.map +1 -0
- package/dist/commands/sharing.js +85 -0
- package/dist/commands/sharing.js.map +1 -0
- package/dist/commands/status.d.ts +2 -6
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/transfers.d.ts +34 -0
- package/dist/commands/transfers.d.ts.map +1 -0
- package/dist/commands/transfers.js +62 -0
- package/dist/commands/transfers.js.map +1 -0
- package/dist/commands/unsuspend.d.ts +2 -6
- package/dist/commands/unsuspend.d.ts.map +1 -1
- package/dist/commands/unsuspend.js +1 -1
- package/dist/commands/unsuspend.js.map +1 -1
- package/dist/commands/versions.d.ts +2 -6
- 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 +2 -12
- package/dist/commands/wait-deploy.d.ts.map +1 -1
- package/dist/commands/wait-deploy.js +1 -1
- package/dist/commands/wait-deploy.js.map +1 -1
- package/dist/context.d.ts +15 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/detect.d.ts +11 -0
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +31 -8
- package/dist/detect.js.map +1 -1
- package/dist/env-scan-source.js +1 -1
- package/dist/env-scan-source.js.map +1 -1
- package/dist/error-classifier.d.ts +17 -0
- package/dist/error-classifier.d.ts.map +1 -1
- package/dist/error-classifier.js +94 -8
- package/dist/error-classifier.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 +63 -49
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -42
- package/dist/index.js.map +1 -1
- package/dist/plans.d.ts +61 -5
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +78 -18
- package/dist/plans.js.map +1 -1
- package/dist/recovery.d.ts +60 -3
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +22 -0
- package/dist/recovery.js.map +1 -1
- package/dist/static-docker.d.ts +77 -0
- package/dist/static-docker.d.ts.map +1 -0
- package/dist/static-docker.js +105 -0
- package/dist/static-docker.js.map +1 -0
- package/dist/tarball.js +1 -1
- package/dist/tarball.js.map +1 -1
- package/dist/templates/ai-files/cursor-percher-mdc.d.ts.map +1 -1
- package/dist/templates/ai-files/cursor-percher-mdc.js +12 -9
- package/dist/templates/ai-files/cursor-percher-mdc.js.map +1 -1
- package/dist/templates.js +11 -11
- package/dist/templates.js.map +1 -1
- package/dist/watcher.js +1 -1
- package/dist/watcher.js.map +1 -1
- package/package.json +6 -2
package/dist/plans.js
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pool sizes are derived from `docs/operations/capacity-model.md`'s
|
|
3
|
+
* "Konkreta startpooler" table. They are the *sellable* totals per
|
|
4
|
+
* tier — the user can fill them with any mix of apps × sizes as
|
|
5
|
+
* long as the sum fits. Per-app `memory` / `cpu` are now defaults
|
|
6
|
+
* (used when `[resources]` is omitted in percher.toml), not hard
|
|
7
|
+
* ceilings.
|
|
8
|
+
*
|
|
9
|
+
* `apps` is a hard cap (anti-abuse backstop) enforced at app-create;
|
|
10
|
+
* pool dimensions are the load-bearing constraint.
|
|
11
|
+
*/
|
|
1
12
|
export const PLAN_CATALOG = {
|
|
2
13
|
free: {
|
|
3
14
|
label: "Free",
|
|
4
15
|
priceEur: 0,
|
|
5
16
|
limits: {
|
|
6
|
-
apps:
|
|
17
|
+
apps: 3,
|
|
7
18
|
deploysPerMonth: 50,
|
|
8
19
|
deploysPerHour: 12,
|
|
9
20
|
memory: "256mb",
|
|
@@ -21,24 +32,34 @@ export const PLAN_CATALOG = {
|
|
|
21
32
|
cronJobs: 1,
|
|
22
33
|
storageMb: 500,
|
|
23
34
|
instances: 1,
|
|
24
|
-
slaUptime: null,
|
|
25
|
-
supportResponseTime: null,
|
|
26
35
|
kvStorageMb: 10,
|
|
27
36
|
uptimeIntervalSec: 0,
|
|
28
37
|
dailyLiveDeploys: 50,
|
|
29
38
|
dailyPreviewDeploys: 25,
|
|
30
39
|
userConcurrentDeploys: 2,
|
|
40
|
+
// 512 MB pool / 0.5 vCPU pool / 1 GB disk — per capacity-model
|
|
41
|
+
// CX22 line. Free relies on auto-sleep as the pressure valve,
|
|
42
|
+
// so committed actual usage is ≈ 0 when idle.
|
|
43
|
+
ramPoolMb: 512,
|
|
44
|
+
vcpuPool: 0.5,
|
|
45
|
+
diskPoolMb: 1_000,
|
|
31
46
|
},
|
|
32
47
|
},
|
|
33
48
|
starter: {
|
|
34
49
|
label: "Starter",
|
|
35
50
|
priceEur: 3,
|
|
36
51
|
limits: {
|
|
37
|
-
apps:
|
|
52
|
+
apps: 10,
|
|
38
53
|
deploysPerMonth: 200,
|
|
39
54
|
deploysPerHour: 30,
|
|
40
55
|
memory: "512mb",
|
|
41
|
-
|
|
56
|
+
// 0.25 default × 1 instance (Starter cap) = 0.25, fits the 1.0
|
|
57
|
+
// vCPU pool with generous headroom for users to bump per-app
|
|
58
|
+
// cpu in their toml. FUTURE21 rounded the pool from 0.75 to a
|
|
59
|
+
// full vCPU for round-number sellability — CPU isn't a hard
|
|
60
|
+
// capacity gate (kernel time-shares; we monitor cgroup
|
|
61
|
+
// throttling), so a half-vCPU bump costs nothing operationally.
|
|
62
|
+
cpu: 0.25,
|
|
42
63
|
pids: 256,
|
|
43
64
|
activePreviewsPerApp: 3,
|
|
44
65
|
customDomainsPerApp: 2,
|
|
@@ -52,24 +73,32 @@ export const PLAN_CATALOG = {
|
|
|
52
73
|
cronJobs: 3,
|
|
53
74
|
storageMb: 5000,
|
|
54
75
|
instances: 1,
|
|
55
|
-
slaUptime: null,
|
|
56
|
-
supportResponseTime: "72h email",
|
|
57
76
|
kvStorageMb: 50,
|
|
58
77
|
uptimeIntervalSec: 300,
|
|
59
78
|
dailyLiveDeploys: 100,
|
|
60
79
|
dailyPreviewDeploys: 50,
|
|
61
80
|
userConcurrentDeploys: 3,
|
|
81
|
+
// 1.5 GB / 1.0 vCPU / 5 GB disk — capacity-model CX22 line.
|
|
82
|
+
// FUTURE21 rounded vcpuPool from 0.75 → 1.0 for round-number
|
|
83
|
+
// sellability (CPU is time-shared by the kernel, not hard-gated).
|
|
84
|
+
ramPoolMb: 1_536,
|
|
85
|
+
vcpuPool: 1.0,
|
|
86
|
+
diskPoolMb: 5_000,
|
|
62
87
|
},
|
|
63
88
|
},
|
|
64
89
|
maker: {
|
|
65
90
|
label: "Maker",
|
|
66
91
|
priceEur: 12,
|
|
67
92
|
limits: {
|
|
68
|
-
apps:
|
|
93
|
+
apps: 20,
|
|
69
94
|
deploysPerMonth: 500,
|
|
70
95
|
deploysPerHour: 60,
|
|
71
96
|
memory: "1gb",
|
|
72
|
-
|
|
97
|
+
// 0.5 default × 2 instances (Maker cap) = 1.0, fits 2 vCPU
|
|
98
|
+
// pool with 1.0 headroom for users to bump per-app cpu. Was
|
|
99
|
+
// 1 — that saturated the pool with a single app × 2 instances
|
|
100
|
+
// and made the documented multi-app cap meaningless on CPU.
|
|
101
|
+
cpu: 0.5,
|
|
73
102
|
pids: 512,
|
|
74
103
|
activePreviewsPerApp: 3,
|
|
75
104
|
customDomainsPerApp: 5,
|
|
@@ -81,26 +110,41 @@ export const PLAN_CATALOG = {
|
|
|
81
110
|
logRetentionDays: 30,
|
|
82
111
|
buildLogRetentionDays: 30,
|
|
83
112
|
cronJobs: 10,
|
|
84
|
-
storageMb:
|
|
113
|
+
storageMb: 25_000,
|
|
85
114
|
instances: 2,
|
|
86
|
-
slaUptime: "99.5%",
|
|
87
|
-
supportResponseTime: "24h email",
|
|
88
115
|
kvStorageMb: 200,
|
|
89
116
|
uptimeIntervalSec: 60,
|
|
90
117
|
dailyLiveDeploys: 200,
|
|
91
118
|
dailyPreviewDeploys: 100,
|
|
92
119
|
userConcurrentDeploys: 5,
|
|
120
|
+
// 4 GB / 2 vCPU / 25 GB disk — capacity-model CX22 line.
|
|
121
|
+
// FUTURE21 halved diskPoolMb from 50 GB → 25 GB to keep the
|
|
122
|
+
// promised pool fits-on-disk-honestly on CX32 (80 GB local disk
|
|
123
|
+
// minus platform overhead). storageMb tracks diskPoolMb so the
|
|
124
|
+
// worst-case PB-app charge still fits exactly one PB-app per
|
|
125
|
+
// account (the existing 1-PB-app-per-account invariant).
|
|
126
|
+
// Worst-case committed (pool + 20 PB-sidecars) = 6.56 GB RAM,
|
|
127
|
+
// which is why Maker is closed on CX22 (committed_budget = 4.4 GB).
|
|
128
|
+
ramPoolMb: 4_096,
|
|
129
|
+
vcpuPool: 2,
|
|
130
|
+
diskPoolMb: 25_000,
|
|
93
131
|
},
|
|
94
132
|
},
|
|
95
133
|
pro: {
|
|
96
134
|
label: "Pro",
|
|
97
135
|
priceEur: 29,
|
|
98
136
|
limits: {
|
|
99
|
-
apps:
|
|
137
|
+
apps: 40,
|
|
100
138
|
deploysPerMonth: "unlimited",
|
|
101
139
|
deploysPerHour: 120,
|
|
102
|
-
memory: "
|
|
103
|
-
|
|
140
|
+
memory: "1gb",
|
|
141
|
+
// 1.0 default × 4 instances (Pro cap) = 4.0, fits 4 vCPU pool
|
|
142
|
+
// exactly with no headroom. Was 2 — that would have made any
|
|
143
|
+
// multi-instance deploy exceed the pool at default cpu. Users
|
|
144
|
+
// can drop per-app cpu in toml to leave headroom for more
|
|
145
|
+
// apps, or bump it on a single-instance app up to the full
|
|
146
|
+
// pool (= dedicated 4 vCPU).
|
|
147
|
+
cpu: 1,
|
|
104
148
|
pids: 1024,
|
|
105
149
|
activePreviewsPerApp: 3,
|
|
106
150
|
customDomainsPerApp: 10,
|
|
@@ -112,15 +156,24 @@ export const PLAN_CATALOG = {
|
|
|
112
156
|
logRetentionDays: 90,
|
|
113
157
|
buildLogRetentionDays: 90,
|
|
114
158
|
cronJobs: 25,
|
|
115
|
-
storageMb:
|
|
159
|
+
storageMb: 75_000,
|
|
116
160
|
instances: 4,
|
|
117
|
-
slaUptime: "99.9%",
|
|
118
|
-
supportResponseTime: "8h email + priority Discord",
|
|
119
161
|
kvStorageMb: 1000,
|
|
120
162
|
uptimeIntervalSec: 30,
|
|
121
163
|
dailyLiveDeploys: 1000,
|
|
122
164
|
dailyPreviewDeploys: 500,
|
|
123
165
|
userConcurrentDeploys: 20,
|
|
166
|
+
// 10 GB / 4 vCPU / 75 GB disk — capacity-model CX22 line.
|
|
167
|
+
// FUTURE21 sized diskPoolMb down from 200 GB → 75 GB so the
|
|
168
|
+
// promised pool actually fits on the boxes we run (CX42 has
|
|
169
|
+
// 160 GB local disk — 75 GB pool leaves room for platform +
|
|
170
|
+
// one more paying customer). storageMb tracks diskPoolMb so a
|
|
171
|
+
// single PB-app per account remains the worst-case reservation.
|
|
172
|
+
// Worst-case committed (pool + 40 PB-sidecars) = 15.36 GB RAM,
|
|
173
|
+
// which is why Pro still requires CX42 minimum.
|
|
174
|
+
ramPoolMb: 10_240,
|
|
175
|
+
vcpuPool: 4,
|
|
176
|
+
diskPoolMb: 75_000,
|
|
124
177
|
},
|
|
125
178
|
},
|
|
126
179
|
};
|
|
@@ -173,6 +226,13 @@ export function getEffectivePlanLimits(plan, isAdmin = false) {
|
|
|
173
226
|
buildLogRetentionDays: INF,
|
|
174
227
|
cronJobs: INF,
|
|
175
228
|
kvStorageMb: INF,
|
|
229
|
+
// FUTURE20 Fas 3 — admin bypasses pool checks too. Otherwise
|
|
230
|
+
// the operator's own apps would hit "your tier pool is full"
|
|
231
|
+
// when running platform-management apps (admin tooling,
|
|
232
|
+
// dogfood deploys, etc.).
|
|
233
|
+
ramPoolMb: INF,
|
|
234
|
+
vcpuPool: INF,
|
|
235
|
+
diskPoolMb: INF,
|
|
176
236
|
// Admin probes still happen at the pro cadence (30s) — no point in
|
|
177
237
|
// trying to make this "infinite", and faster than 30s starts to
|
|
178
238
|
// matter for outbound bandwidth without paying for itself.
|
package/dist/plans.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
|
package/dist/recovery.d.ts
CHANGED
|
@@ -52,6 +52,17 @@ export type RecoveryAction =
|
|
|
52
52
|
| "fix_config"
|
|
53
53
|
/** Plan limits exceeded or otherwise needs human input; agent should ask the user. */
|
|
54
54
|
| "ask_user"
|
|
55
|
+
/**
|
|
56
|
+
* FUTURE16 Fas 3 — pre-fetched device-code is in-flight. Agent should
|
|
57
|
+
* call `percher_wait_for_auth` to short-poll the device-code exchange,
|
|
58
|
+
* then resume the original publish call. Pairs 1:1 with the
|
|
59
|
+
* `auth_pending` PublishStatus. Distinct from `open_login` (which
|
|
60
|
+
* tells the agent to *start* a login flow via `percher_login`) — by
|
|
61
|
+
* the time `wait_auth` is emitted the device-code already exists and
|
|
62
|
+
* the user has been pointed at the verification URL; only the wait
|
|
63
|
+
* step remains.
|
|
64
|
+
*/
|
|
65
|
+
| "wait_auth"
|
|
55
66
|
/** Success path — no further action required. */
|
|
56
67
|
| "none";
|
|
57
68
|
/** MCP tool the agent should invoke for `nextAction`, when applicable. */
|
|
@@ -70,7 +81,14 @@ export type SuggestedTool = "percher_login" | "percher_env_set" | "percher_deplo
|
|
|
70
81
|
| "percher_redeploy"
|
|
71
82
|
/** FUTURE1 Phase 4.2 — percher_reproduce tool, surfaced via
|
|
72
83
|
* alternativeActions on build-failure recovery. */
|
|
73
|
-
| "percher_reproduce"
|
|
84
|
+
| "percher_reproduce"
|
|
85
|
+
/**
|
|
86
|
+
* FUTURE16 Fas 3 — short-polls a pre-fetched device-code and resumes
|
|
87
|
+
* the original publish input once a token lands. Pairs with the
|
|
88
|
+
* `wait_auth` recovery action and the `auth_pending` publish status.
|
|
89
|
+
* MCP-only tool — CLI's `percher login` already polls in-process.
|
|
90
|
+
*/
|
|
91
|
+
| "percher_wait_for_auth";
|
|
74
92
|
/**
|
|
75
93
|
* FUTURE12 Phase 1a — stable, enumerated reason an agent or human can
|
|
76
94
|
* branch on. Intentionally orthogonal to `RecoveryAction`: action says
|
|
@@ -135,6 +153,13 @@ export type ReasonCode =
|
|
|
135
153
|
| "log_fetch_failed"
|
|
136
154
|
/** Deploy died before the build phase started (e.g. tarball validation). */
|
|
137
155
|
| "failed_before_build"
|
|
156
|
+
/** FUTURE_account-deletion-guards Fas 4. percher_account_delete
|
|
157
|
+
* pre-flighted percher_account_deletion_preview and got back a
|
|
158
|
+
* non-empty blocker list (apps_owned, apps_with_collaborators,
|
|
159
|
+
* pending_outgoing_transfers, deploys_in_progress, etc.). The agent
|
|
160
|
+
* must surface `recovery.prompt` verbatim and let the user resolve
|
|
161
|
+
* the blockers via the existing routes before retrying. */
|
|
162
|
+
| "account_deletion_blocked"
|
|
138
163
|
/** Catch-all for unclassified state — agents should route to doctor. */
|
|
139
164
|
| "unknown";
|
|
140
165
|
/**
|
|
@@ -152,7 +177,18 @@ export type DoctorMode = "auto" | "deploy" | "runtime" | "config" | "env" | "acc
|
|
|
152
177
|
* deploy. Pinning the value here so the CLI/MCP can declare exhaustive
|
|
153
178
|
* switches before the server path lands.
|
|
154
179
|
*/
|
|
155
|
-
export type PublishStatus = "live" | "failed" | "needs_login"
|
|
180
|
+
export type PublishStatus = "live" | "failed" | "needs_login"
|
|
181
|
+
/**
|
|
182
|
+
* FUTURE16 Fas 3 — MCP `percher_publish` returns this when the
|
|
183
|
+
* caller's session has no token AND a device-code has already been
|
|
184
|
+
* pre-fetched. The agent's next step is `percher_wait_for_auth`
|
|
185
|
+
* (carried in `recovery`); the tarball has NOT been packed yet, so
|
|
186
|
+
* the resume call is the first and only packaging operation in the
|
|
187
|
+
* entire auth flow. CLI uses the existing `needs_login` path —
|
|
188
|
+
* `auth_pending` is MCP-specific because only a long-lived agent
|
|
189
|
+
* session benefits from the pre-fetch + in-process poll split.
|
|
190
|
+
*/
|
|
191
|
+
| "auth_pending" | "dry_run" | "queued" | "replaced" | "already_in_progress";
|
|
156
192
|
/**
|
|
157
193
|
* Structured problem entry used by `fix_config` and `fix_problems`
|
|
158
194
|
* recoveries. Agents apply file edits directly using these.
|
|
@@ -199,7 +235,14 @@ interface BaseRecovery {
|
|
|
199
235
|
* Phase 4 migrates it to `run_doctor`.
|
|
200
236
|
*/
|
|
201
237
|
export interface ToolRecovery extends BaseRecovery {
|
|
202
|
-
nextAction: "open_login" | "wait_deploy" | "run_doctor" | "set_env_vars" | "retry" | "inspect_build_log"
|
|
238
|
+
nextAction: "open_login" | "wait_deploy" | "run_doctor" | "set_env_vars" | "retry" | "inspect_build_log"
|
|
239
|
+
/**
|
|
240
|
+
* FUTURE16 Fas 3 — short-poll a pre-fetched device-code via
|
|
241
|
+
* `percher_wait_for_auth`. `args` carries `{ deviceCode,
|
|
242
|
+
* publishArgs }` so the agent can resume the original publish
|
|
243
|
+
* call without re-deriving inputs.
|
|
244
|
+
*/
|
|
245
|
+
| "wait_auth";
|
|
203
246
|
suggestedTool: SuggestedTool;
|
|
204
247
|
args: Record<string, unknown>;
|
|
205
248
|
}
|
|
@@ -241,6 +284,20 @@ export declare function recoveryNone(opts?: {
|
|
|
241
284
|
export declare function recoveryLogin(opts?: {
|
|
242
285
|
reasonCode?: ReasonCode;
|
|
243
286
|
}): ToolRecovery;
|
|
287
|
+
/**
|
|
288
|
+
* FUTURE16 Fas 3 — pre-fetched device-code is in-flight; agent should
|
|
289
|
+
* call `percher_wait_for_auth` to short-poll the exchange and resume
|
|
290
|
+
* publish once a token lands. `publishArgs` carries the *raw user
|
|
291
|
+
* input flags* (cwd is implicit on ctx; preview/live/message/dryRun/
|
|
292
|
+
* etc. ride here) so the resume call is a first-time publish — no
|
|
293
|
+
* tarball state is preserved across the wait, no upload state to
|
|
294
|
+
* invalidate. That's the entire point of pre-fetch + in-process poll
|
|
295
|
+
* over the alternative anonymous-staged-tarball design (see plan).
|
|
296
|
+
*/
|
|
297
|
+
export declare function recoveryAuthPending(opts: {
|
|
298
|
+
deviceCode: string;
|
|
299
|
+
publishArgs: Record<string, unknown>;
|
|
300
|
+
}): ToolRecovery;
|
|
244
301
|
/** Wait on an in-flight deploy — agent should call `percher_wait_for_deploy`. */
|
|
245
302
|
export declare function recoveryWait(opts: {
|
|
246
303
|
app: string;
|
package/dist/recovery.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc;AACxB,kEAAkE;AAChE,YAAY;AACd,iEAAiE;GAC/D,cAAc;AAChB;;;;GAIG;GACD,aAAa;AACf,qEAAqE;GACnE,OAAO;AACT;;;;;;;GAOG;GACD,YAAY;AACd,mFAAmF;GACjF,mBAAmB;AACrB;;;;;GAKG;GACD,cAAc;AAChB;;;;;;;;GAQG;GACD,mBAAmB;AACrB,+EAA+E;GAC7E,YAAY;AACd,sFAAsF;GACpF,UAAU;AACZ,iDAAiD;GAC/C,MAAM,CAAC;AAEX,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,iBAAiB,GACjB,yBAAyB,GACzB,iBAAiB;AACnB,kFAAkF;GAChF,yBAAyB;AAC3B;;;;GAIG;GACD,gBAAgB;AAClB;;qDAEqD;GACnD,kBAAkB;AACpB;oDACoD;GAClD,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"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"}
|
package/dist/recovery.js
CHANGED
|
@@ -24,6 +24,28 @@ export function recoveryLogin(opts = {}) {
|
|
|
24
24
|
reasonCode: opts.reasonCode ?? "auth_required",
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* FUTURE16 Fas 3 — pre-fetched device-code is in-flight; agent should
|
|
29
|
+
* call `percher_wait_for_auth` to short-poll the exchange and resume
|
|
30
|
+
* publish once a token lands. `publishArgs` carries the *raw user
|
|
31
|
+
* input flags* (cwd is implicit on ctx; preview/live/message/dryRun/
|
|
32
|
+
* etc. ride here) so the resume call is a first-time publish — no
|
|
33
|
+
* tarball state is preserved across the wait, no upload state to
|
|
34
|
+
* invalidate. That's the entire point of pre-fetch + in-process poll
|
|
35
|
+
* over the alternative anonymous-staged-tarball design (see plan).
|
|
36
|
+
*/
|
|
37
|
+
export function recoveryAuthPending(opts) {
|
|
38
|
+
return {
|
|
39
|
+
retryable: false,
|
|
40
|
+
nextAction: "wait_auth",
|
|
41
|
+
suggestedTool: "percher_wait_for_auth",
|
|
42
|
+
args: {
|
|
43
|
+
deviceCode: opts.deviceCode,
|
|
44
|
+
publishArgs: opts.publishArgs,
|
|
45
|
+
},
|
|
46
|
+
reasonCode: "auth_required",
|
|
47
|
+
};
|
|
48
|
+
}
|
|
27
49
|
/** Wait on an in-flight deploy — agent should call `percher_wait_for_deploy`. */
|
|
28
50
|
export function recoveryWait(opts) {
|
|
29
51
|
return {
|
package/dist/recovery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-stage Dockerfile + Caddyfile generator for static-framework
|
|
3
|
+
* projects — Vite, Astro (static), Eleventy and friends.
|
|
4
|
+
*
|
|
5
|
+
* These frameworks need a build step. Percher's `runtime = "static"`
|
|
6
|
+
* Caddy path only *serves* pre-built files — it rejects a
|
|
7
|
+
* `[build].command` outright (STATIC_BUILD_COMMAND_UNSUPPORTED). So a
|
|
8
|
+
* scaffolded Vite/Astro project can't ride that path as-is. Instead
|
|
9
|
+
* they ship as `runtime = "docker"`: a Bun stage runs the build, then
|
|
10
|
+
* the output is served by the same minimal Caddy image the native
|
|
11
|
+
* static runtime uses — slim image, fast cold start, no server to
|
|
12
|
+
* configure.
|
|
13
|
+
*
|
|
14
|
+
* This is the documented follow-up to FUTURE11 Fas 1 (a builder stage
|
|
15
|
+
* for the static path) done the only way that works on what Percher
|
|
16
|
+
* supports today: the user-owned `runtime = "docker"` lane.
|
|
17
|
+
*
|
|
18
|
+
* Used by both `bunx percher init` (scaffolds these files when it
|
|
19
|
+
* detects a static framework) and the bundled `bunx percher init`
|
|
20
|
+
* templates (astro, vite-react, …), so the CLI and the templates can
|
|
21
|
+
* never drift — `packages/core/test/static-docker.test.ts` pins the
|
|
22
|
+
* committed template files to this renderer's output.
|
|
23
|
+
*
|
|
24
|
+
* The serve stage mirrors `packages/api/src/pipeline/static-build.ts`
|
|
25
|
+
* (`buildStaticDockerfile` / `buildStaticCaddyfile`) — same cap-strip
|
|
26
|
+
* and same `bind 0.0.0.0` IPv4 fix — but lives here independently
|
|
27
|
+
* because `@percher/core` must not depend on `@percher/api`.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Port the Caddy serve stage binds to. 8080 (>= 1024) so Caddy never
|
|
31
|
+
* needs `cap_net_bind_service` — which matters because the cap-strip
|
|
32
|
+
* below removes it. Matches the bundled `hugo` template and the
|
|
33
|
+
* `[web].port` these templates declare.
|
|
34
|
+
*/
|
|
35
|
+
export declare const STATIC_DOCKER_PORT = 8080;
|
|
36
|
+
export interface StaticDockerfileInput {
|
|
37
|
+
/**
|
|
38
|
+
* Directory the framework's build command produces, relative to the
|
|
39
|
+
* project root (e.g. `dist` for Vite/Astro, `_site` for Eleventy).
|
|
40
|
+
*/
|
|
41
|
+
outputDir: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Render the multi-stage Dockerfile. The build stage runs
|
|
45
|
+
* `bun install && bun run build`; the serve stage is a minimal Caddy
|
|
46
|
+
* image with the upstream binary's file capabilities stripped.
|
|
47
|
+
*
|
|
48
|
+
* Why the cap-strip: `caddy:2-alpine` ships `/usr/bin/caddy` with
|
|
49
|
+
* `cap_net_bind_service=+ep`. Percher starts every app container with
|
|
50
|
+
* `--security-opt no-new-privileges`, which makes `execve` refuse a
|
|
51
|
+
* binary whose file caps would grant more privilege than the parent —
|
|
52
|
+
* the result is an `operation not permitted` crash-loop. Copying the
|
|
53
|
+
* binary onto a plain `alpine` base and running `setcap -r` removes
|
|
54
|
+
* the caps; Caddy doesn't need them here (it binds :8080).
|
|
55
|
+
*/
|
|
56
|
+
export declare function renderStaticFrameworkDockerfile(input: StaticDockerfileInput): string;
|
|
57
|
+
export interface StaticCaddyfileInput {
|
|
58
|
+
/**
|
|
59
|
+
* When true, deep links fall back to `/index.html` so client-side
|
|
60
|
+
* routers (React Router, Vue Router, …) handle the route instead of
|
|
61
|
+
* Caddy returning 404. True for SPA frameworks; false for static
|
|
62
|
+
* site generators that emit a real HTML file per route.
|
|
63
|
+
*/
|
|
64
|
+
spa: boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Render the Caddyfile served by the container.
|
|
68
|
+
*
|
|
69
|
+
* `bind 0.0.0.0` is load-bearing: Caddy's `:8080` shorthand binds only
|
|
70
|
+
* to the IPv6 wildcard inside Percher's app-container network
|
|
71
|
+
* namespace (`bindv6only` is set), but the deployer's health probe
|
|
72
|
+
* hits `http://127.0.0.1:8080` over IPv4. Without an explicit IPv4
|
|
73
|
+
* bind the probe gets "connection refused" while Caddy is up — every
|
|
74
|
+
* deploy then fails health check. Same fix as `static-build.ts`.
|
|
75
|
+
*/
|
|
76
|
+
export declare function renderStaticFrameworkCaddyfile(input: StaticCaddyfileInput): string;
|
|
77
|
+
//# sourceMappingURL=static-docker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-docker.d.ts","sourceRoot":"","sources":["../src/static-docker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAoCpF;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,GAAG,EAAE,OAAO,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAQlF"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-stage Dockerfile + Caddyfile generator for static-framework
|
|
3
|
+
* projects — Vite, Astro (static), Eleventy and friends.
|
|
4
|
+
*
|
|
5
|
+
* These frameworks need a build step. Percher's `runtime = "static"`
|
|
6
|
+
* Caddy path only *serves* pre-built files — it rejects a
|
|
7
|
+
* `[build].command` outright (STATIC_BUILD_COMMAND_UNSUPPORTED). So a
|
|
8
|
+
* scaffolded Vite/Astro project can't ride that path as-is. Instead
|
|
9
|
+
* they ship as `runtime = "docker"`: a Bun stage runs the build, then
|
|
10
|
+
* the output is served by the same minimal Caddy image the native
|
|
11
|
+
* static runtime uses — slim image, fast cold start, no server to
|
|
12
|
+
* configure.
|
|
13
|
+
*
|
|
14
|
+
* This is the documented follow-up to FUTURE11 Fas 1 (a builder stage
|
|
15
|
+
* for the static path) done the only way that works on what Percher
|
|
16
|
+
* supports today: the user-owned `runtime = "docker"` lane.
|
|
17
|
+
*
|
|
18
|
+
* Used by both `bunx percher init` (scaffolds these files when it
|
|
19
|
+
* detects a static framework) and the bundled `bunx percher init`
|
|
20
|
+
* templates (astro, vite-react, …), so the CLI and the templates can
|
|
21
|
+
* never drift — `packages/core/test/static-docker.test.ts` pins the
|
|
22
|
+
* committed template files to this renderer's output.
|
|
23
|
+
*
|
|
24
|
+
* The serve stage mirrors `packages/api/src/pipeline/static-build.ts`
|
|
25
|
+
* (`buildStaticDockerfile` / `buildStaticCaddyfile`) — same cap-strip
|
|
26
|
+
* and same `bind 0.0.0.0` IPv4 fix — but lives here independently
|
|
27
|
+
* because `@percher/core` must not depend on `@percher/api`.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Port the Caddy serve stage binds to. 8080 (>= 1024) so Caddy never
|
|
31
|
+
* needs `cap_net_bind_service` — which matters because the cap-strip
|
|
32
|
+
* below removes it. Matches the bundled `hugo` template and the
|
|
33
|
+
* `[web].port` these templates declare.
|
|
34
|
+
*/
|
|
35
|
+
export const STATIC_DOCKER_PORT = 8080;
|
|
36
|
+
/**
|
|
37
|
+
* Render the multi-stage Dockerfile. The build stage runs
|
|
38
|
+
* `bun install && bun run build`; the serve stage is a minimal Caddy
|
|
39
|
+
* image with the upstream binary's file capabilities stripped.
|
|
40
|
+
*
|
|
41
|
+
* Why the cap-strip: `caddy:2-alpine` ships `/usr/bin/caddy` with
|
|
42
|
+
* `cap_net_bind_service=+ep`. Percher starts every app container with
|
|
43
|
+
* `--security-opt no-new-privileges`, which makes `execve` refuse a
|
|
44
|
+
* binary whose file caps would grant more privilege than the parent —
|
|
45
|
+
* the result is an `operation not permitted` crash-loop. Copying the
|
|
46
|
+
* binary onto a plain `alpine` base and running `setcap -r` removes
|
|
47
|
+
* the caps; Caddy doesn't need them here (it binds :8080).
|
|
48
|
+
*/
|
|
49
|
+
export function renderStaticFrameworkDockerfile(input) {
|
|
50
|
+
return `# Multi-stage build: a Bun stage compiles the static bundle, then a
|
|
51
|
+
# minimal Caddy image serves it. This project uses runtime = "docker"
|
|
52
|
+
# (not "static") because Percher's static runtime serves pre-built
|
|
53
|
+
# files only — it does not run a build command. Generated by Percher;
|
|
54
|
+
# safe to edit and own.
|
|
55
|
+
|
|
56
|
+
# --- Build stage: install deps and build the static bundle -----------
|
|
57
|
+
FROM oven/bun:1-alpine AS build
|
|
58
|
+
WORKDIR /app
|
|
59
|
+
COPY . .
|
|
60
|
+
RUN bun install && bun run build
|
|
61
|
+
|
|
62
|
+
# --- Serve stage: minimal Caddy image --------------------------------
|
|
63
|
+
# caddy:2-alpine ships /usr/bin/caddy with cap_net_bind_service file
|
|
64
|
+
# caps. Percher runs every container with --security-opt
|
|
65
|
+
# no-new-privileges, which makes execve refuse a cap-bearing binary
|
|
66
|
+
# (an "operation not permitted" crash-loop). Copy Caddy onto a plain
|
|
67
|
+
# alpine base and strip the caps with setcap -r — Caddy never needs
|
|
68
|
+
# the cap here, it listens on :${STATIC_DOCKER_PORT} (>= 1024).
|
|
69
|
+
FROM caddy:2-alpine AS caddy-source
|
|
70
|
+
FROM alpine:3.21
|
|
71
|
+
COPY --from=caddy-source /usr/bin/caddy /usr/bin/caddy
|
|
72
|
+
RUN apk add --no-cache libcap \\
|
|
73
|
+
&& setcap -r /usr/bin/caddy \\
|
|
74
|
+
&& apk del libcap \\
|
|
75
|
+
&& rm -rf /var/cache/apk/*
|
|
76
|
+
COPY Caddyfile /etc/caddy/Caddyfile
|
|
77
|
+
COPY --from=build /app/${input.outputDir} /srv
|
|
78
|
+
# HOME points at the writable tmpfs so non-root Caddy can persist its
|
|
79
|
+
# XDG state (storage-clean lock, config autosave) under Percher's
|
|
80
|
+
# read-only root filesystem.
|
|
81
|
+
ENV HOME=/tmp
|
|
82
|
+
EXPOSE ${STATIC_DOCKER_PORT}
|
|
83
|
+
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
|
|
84
|
+
`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Render the Caddyfile served by the container.
|
|
88
|
+
*
|
|
89
|
+
* `bind 0.0.0.0` is load-bearing: Caddy's `:8080` shorthand binds only
|
|
90
|
+
* to the IPv6 wildcard inside Percher's app-container network
|
|
91
|
+
* namespace (`bindv6only` is set), but the deployer's health probe
|
|
92
|
+
* hits `http://127.0.0.1:8080` over IPv4. Without an explicit IPv4
|
|
93
|
+
* bind the probe gets "connection refused" while Caddy is up — every
|
|
94
|
+
* deploy then fails health check. Same fix as `static-build.ts`.
|
|
95
|
+
*/
|
|
96
|
+
export function renderStaticFrameworkCaddyfile(input) {
|
|
97
|
+
const directives = ["bind 0.0.0.0", "root * /srv", "encode gzip zstd"];
|
|
98
|
+
if (input.spa) {
|
|
99
|
+
directives.push("try_files {path} /index.html");
|
|
100
|
+
}
|
|
101
|
+
directives.push("file_server");
|
|
102
|
+
const body = directives.map((d) => `\t${d}`).join("\n");
|
|
103
|
+
return `:${STATIC_DOCKER_PORT} {\n${body}\n}\n`;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=static-docker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-docker.js","sourceRoot":"","sources":["../src/static-docker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAUvC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,+BAA+B,CAAC,KAA4B;IAC1E,OAAO;;;;;;;;;;;;;;;;;;iCAkBwB,kBAAkB;;;;;;;;;yBAS1B,KAAK,CAAC,SAAS;;;;;SAK/B,kBAAkB;;CAE1B,CAAC;AACF,CAAC;AAYD;;;;;;;;;GASG;AACH,MAAM,UAAU,8BAA8B,CAAC,KAA2B;IACxE,MAAM,UAAU,GAAG,CAAC,cAAc,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,IAAI,kBAAkB,OAAO,IAAI,OAAO,CAAC;AAClD,CAAC"}
|
package/dist/tarball.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
import { existsSync,
|
|
2
|
+
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
|
|
3
3
|
import { join, relative, sep } from "node:path";
|
|
4
4
|
import { Readable } from "node:stream";
|
|
5
5
|
import { createGzip } from "node:zlib";
|
package/dist/tarball.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tarball.js","sourceRoot":"","sources":["../src/tarball.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"tarball.js","sourceRoot":"","sources":["../src/tarball.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AA0B7C,MAAM,cAAc,GAAG;IACrB,cAAc;IACd,MAAM;IACN,MAAM;IACN,OAAO;IACP,aAAa;IACb,OAAO;IACP,UAAU;IACV,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC;AAEF,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAW,EAAE,OAAe,EAAE,EAA6B;IACxE,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,SAAS;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;gBAAE,SAAS;YACpC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAuB;IACzD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACpB,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,OAAO,CAAC,WAAW;QAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAErD,+DAA+D;IAC/D,8DAA8D;IAC9D,4DAA4D;IAC5D,gEAAgE;IAChE,MAAM,WAAW,GAAwD,EAAE,CAAC;IAC5E,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAClD,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnE,mEAAmE;IACnE,gEAAgE;IAChE,kEAAkE;IAClE,yDAAyD;IACzD,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1D,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACzC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,CAAC,KAAK,IAAI,EAAE;QACV,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CACzE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAC9B,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAA0C,CAAC;IAEtF,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,CAAC;SAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;SAC/B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhD,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,WAAW,CAAC,MAAM;QAC7B,QAAQ;QACR,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-percher-mdc.d.ts","sourceRoot":"","sources":["../../../src/templates/ai-files/cursor-percher-mdc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;
|
|
1
|
+
{"version":3,"file":"cursor-percher-mdc.d.ts","sourceRoot":"","sources":["../../../src/templates/ai-files/cursor-percher-mdc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;CAgH9B,CAAC"}
|