@synteq/cli 0.1.3 → 0.1.5

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 (190) hide show
  1. package/dist/api/client.d.ts +9 -9
  2. package/dist/api/client.js +205 -32
  3. package/dist/api/client.js.map +1 -1
  4. package/dist/api/types.d.ts +62 -42
  5. package/dist/commands/api.js +1 -1
  6. package/dist/commands/api.js.map +1 -1
  7. package/dist/commands/catalog.js +1 -1
  8. package/dist/commands/catalog.js.map +1 -1
  9. package/dist/commands/gpu/activity.d.ts +2 -2
  10. package/dist/commands/gpu/activity.js +5 -5
  11. package/dist/commands/gpu/activity.js.map +1 -1
  12. package/dist/commands/gpu/bandwidth.d.ts +2 -2
  13. package/dist/commands/gpu/bandwidth.js +5 -5
  14. package/dist/commands/gpu/bandwidth.js.map +1 -1
  15. package/dist/commands/gpu/boot-order.d.ts +2 -2
  16. package/dist/commands/gpu/boot-order.js +5 -5
  17. package/dist/commands/gpu/boot-order.js.map +1 -1
  18. package/dist/commands/gpu/console.d.ts +2 -2
  19. package/dist/commands/gpu/console.js +5 -5
  20. package/dist/commands/gpu/console.js.map +1 -1
  21. package/dist/commands/gpu/details.d.ts +2 -2
  22. package/dist/commands/gpu/details.js +5 -5
  23. package/dist/commands/gpu/details.js.map +1 -1
  24. package/dist/commands/gpu/ip/add.d.ts +2 -2
  25. package/dist/commands/gpu/ip/add.js +5 -5
  26. package/dist/commands/gpu/ip/add.js.map +1 -1
  27. package/dist/commands/gpu/ip/list.d.ts +2 -2
  28. package/dist/commands/gpu/ip/list.js +5 -5
  29. package/dist/commands/gpu/ip/list.js.map +1 -1
  30. package/dist/commands/gpu/list.d.ts +3 -3
  31. package/dist/commands/gpu/list.js +4 -4
  32. package/dist/commands/gpu/list.js.map +1 -1
  33. package/dist/commands/gpu/order.d.ts +2 -2
  34. package/dist/commands/gpu/order.js +2 -2
  35. package/dist/commands/gpu/order.js.map +1 -1
  36. package/dist/commands/gpu/power.d.ts +2 -2
  37. package/dist/commands/gpu/power.js +5 -5
  38. package/dist/commands/gpu/power.js.map +1 -1
  39. package/dist/commands/gpu/reinstall.d.ts +4 -2
  40. package/dist/commands/gpu/reinstall.js +5 -5
  41. package/dist/commands/gpu/reinstall.js.map +1 -1
  42. package/dist/commands/gpu/resize.d.ts +2 -2
  43. package/dist/commands/gpu/resize.js +5 -5
  44. package/dist/commands/gpu/resize.js.map +1 -1
  45. package/dist/commands/gpu/stats.d.ts +2 -2
  46. package/dist/commands/gpu/stats.js +5 -5
  47. package/dist/commands/gpu/stats.js.map +1 -1
  48. package/dist/commands/instant-metal/activity.d.ts +2 -2
  49. package/dist/commands/instant-metal/activity.js +5 -5
  50. package/dist/commands/instant-metal/activity.js.map +1 -1
  51. package/dist/commands/instant-metal/bandwidth.d.ts +2 -2
  52. package/dist/commands/instant-metal/bandwidth.js +5 -5
  53. package/dist/commands/instant-metal/bandwidth.js.map +1 -1
  54. package/dist/commands/instant-metal/boot-order.d.ts +2 -2
  55. package/dist/commands/instant-metal/boot-order.js +5 -5
  56. package/dist/commands/instant-metal/boot-order.js.map +1 -1
  57. package/dist/commands/instant-metal/console.d.ts +2 -2
  58. package/dist/commands/instant-metal/console.js +5 -5
  59. package/dist/commands/instant-metal/console.js.map +1 -1
  60. package/dist/commands/instant-metal/details.d.ts +2 -2
  61. package/dist/commands/instant-metal/details.js +5 -5
  62. package/dist/commands/instant-metal/details.js.map +1 -1
  63. package/dist/commands/instant-metal/ip/add.d.ts +2 -2
  64. package/dist/commands/instant-metal/ip/add.js +5 -5
  65. package/dist/commands/instant-metal/ip/add.js.map +1 -1
  66. package/dist/commands/instant-metal/ip/list.d.ts +2 -2
  67. package/dist/commands/instant-metal/ip/list.js +5 -5
  68. package/dist/commands/instant-metal/ip/list.js.map +1 -1
  69. package/dist/commands/instant-metal/list.d.ts +3 -3
  70. package/dist/commands/instant-metal/list.js +4 -4
  71. package/dist/commands/instant-metal/list.js.map +1 -1
  72. package/dist/commands/instant-metal/order.d.ts +2 -2
  73. package/dist/commands/instant-metal/order.js +2 -2
  74. package/dist/commands/instant-metal/order.js.map +1 -1
  75. package/dist/commands/instant-metal/power.d.ts +2 -2
  76. package/dist/commands/instant-metal/power.js +5 -5
  77. package/dist/commands/instant-metal/power.js.map +1 -1
  78. package/dist/commands/instant-metal/reinstall.d.ts +4 -2
  79. package/dist/commands/instant-metal/reinstall.js +5 -5
  80. package/dist/commands/instant-metal/reinstall.js.map +1 -1
  81. package/dist/commands/instant-metal/resize.d.ts +2 -2
  82. package/dist/commands/instant-metal/resize.js +5 -5
  83. package/dist/commands/instant-metal/resize.js.map +1 -1
  84. package/dist/commands/instant-metal/stats.d.ts +2 -2
  85. package/dist/commands/instant-metal/stats.js +5 -5
  86. package/dist/commands/instant-metal/stats.js.map +1 -1
  87. package/dist/commands/order/gpu.d.ts +2 -2
  88. package/dist/commands/order/gpu.js +2 -2
  89. package/dist/commands/order/gpu.js.map +1 -1
  90. package/dist/commands/order/instant-metal.d.ts +2 -2
  91. package/dist/commands/order/instant-metal.js +2 -2
  92. package/dist/commands/order/instant-metal.js.map +1 -1
  93. package/dist/commands/order/vps.d.ts +2 -2
  94. package/dist/commands/order/vps.js +2 -2
  95. package/dist/commands/order/vps.js.map +1 -1
  96. package/dist/commands/resources.js +5 -1
  97. package/dist/commands/resources.js.map +1 -1
  98. package/dist/commands/storage/attach.js +1 -1
  99. package/dist/commands/storage/attach.js.map +1 -1
  100. package/dist/commands/storage/order.js +6 -2
  101. package/dist/commands/storage/order.js.map +1 -1
  102. package/dist/commands/vds/activity.d.ts +2 -2
  103. package/dist/commands/vds/activity.js +5 -5
  104. package/dist/commands/vds/activity.js.map +1 -1
  105. package/dist/commands/vds/bandwidth.d.ts +2 -2
  106. package/dist/commands/vds/bandwidth.js +5 -5
  107. package/dist/commands/vds/bandwidth.js.map +1 -1
  108. package/dist/commands/vds/boot-order.d.ts +2 -2
  109. package/dist/commands/vds/boot-order.js +5 -5
  110. package/dist/commands/vds/boot-order.js.map +1 -1
  111. package/dist/commands/vds/console.d.ts +2 -2
  112. package/dist/commands/vds/console.js +5 -5
  113. package/dist/commands/vds/console.js.map +1 -1
  114. package/dist/commands/vds/details.d.ts +2 -2
  115. package/dist/commands/vds/details.js +5 -5
  116. package/dist/commands/vds/details.js.map +1 -1
  117. package/dist/commands/vds/ip/add.d.ts +2 -2
  118. package/dist/commands/vds/ip/add.js +5 -5
  119. package/dist/commands/vds/ip/add.js.map +1 -1
  120. package/dist/commands/vds/ip/list.d.ts +2 -2
  121. package/dist/commands/vds/ip/list.js +5 -5
  122. package/dist/commands/vds/ip/list.js.map +1 -1
  123. package/dist/commands/vds/list.d.ts +3 -3
  124. package/dist/commands/vds/list.js +4 -4
  125. package/dist/commands/vds/list.js.map +1 -1
  126. package/dist/commands/vds/order.d.ts +18 -2
  127. package/dist/commands/vds/order.js +202 -7
  128. package/dist/commands/vds/order.js.map +1 -1
  129. package/dist/commands/vds/power.d.ts +2 -2
  130. package/dist/commands/vds/power.js +5 -5
  131. package/dist/commands/vds/power.js.map +1 -1
  132. package/dist/commands/vds/reinstall.d.ts +4 -2
  133. package/dist/commands/vds/reinstall.js +5 -5
  134. package/dist/commands/vds/reinstall.js.map +1 -1
  135. package/dist/commands/vds/resize.d.ts +2 -2
  136. package/dist/commands/vds/resize.js +5 -5
  137. package/dist/commands/vds/resize.js.map +1 -1
  138. package/dist/commands/vds/stats.d.ts +2 -2
  139. package/dist/commands/vds/stats.js +5 -5
  140. package/dist/commands/vds/stats.js.map +1 -1
  141. package/dist/commands/vps/activity.d.ts +1 -1
  142. package/dist/commands/vps/activity.js +1 -1
  143. package/dist/commands/vps/activity.js.map +1 -1
  144. package/dist/commands/vps/bandwidth.d.ts +1 -1
  145. package/dist/commands/vps/bandwidth.js +1 -1
  146. package/dist/commands/vps/bandwidth.js.map +1 -1
  147. package/dist/commands/vps/boot-order.d.ts +1 -1
  148. package/dist/commands/vps/boot-order.js +1 -1
  149. package/dist/commands/vps/boot-order.js.map +1 -1
  150. package/dist/commands/vps/console.d.ts +1 -1
  151. package/dist/commands/vps/console.js +3 -3
  152. package/dist/commands/vps/console.js.map +1 -1
  153. package/dist/commands/vps/details.d.ts +1 -1
  154. package/dist/commands/vps/details.js +8 -8
  155. package/dist/commands/vps/details.js.map +1 -1
  156. package/dist/commands/vps/ip/add.d.ts +1 -1
  157. package/dist/commands/vps/ip/add.js +8 -8
  158. package/dist/commands/vps/ip/add.js.map +1 -1
  159. package/dist/commands/vps/ip/list.d.ts +1 -1
  160. package/dist/commands/vps/ip/list.js +4 -4
  161. package/dist/commands/vps/ip/list.js.map +1 -1
  162. package/dist/commands/vps/list.d.ts +4 -2
  163. package/dist/commands/vps/list.js +8 -4
  164. package/dist/commands/vps/list.js.map +1 -1
  165. package/dist/commands/vps/order.d.ts +7 -1
  166. package/dist/commands/vps/order.js +16 -9
  167. package/dist/commands/vps/order.js.map +1 -1
  168. package/dist/commands/vps/power.d.ts +1 -1
  169. package/dist/commands/vps/power.js +1 -1
  170. package/dist/commands/vps/power.js.map +1 -1
  171. package/dist/commands/vps/reinstall.d.ts +3 -1
  172. package/dist/commands/vps/reinstall.js +28 -1
  173. package/dist/commands/vps/reinstall.js.map +1 -1
  174. package/dist/commands/vps/resize.d.ts +7 -1
  175. package/dist/commands/vps/resize.js +52 -25
  176. package/dist/commands/vps/resize.js.map +1 -1
  177. package/dist/commands/vps/stats.d.ts +1 -1
  178. package/dist/commands/vps/stats.js +2 -2
  179. package/dist/commands/vps/stats.js.map +1 -1
  180. package/dist/tui/screens/Order.js +97 -21
  181. package/dist/tui/screens/Order.js.map +1 -1
  182. package/dist/tui/screens/Resources.js +7 -7
  183. package/dist/tui/screens/Resources.js.map +1 -1
  184. package/dist/ui/vps-detail.d.ts +3 -3
  185. package/dist/ui/vps-detail.js +9 -5
  186. package/dist/ui/vps-detail.js.map +1 -1
  187. package/dist/ui/vps-resolve.d.ts +2 -2
  188. package/dist/ui/vps-resolve.js +1 -1
  189. package/dist/ui/vps-resolve.js.map +1 -1
  190. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"reinstall.js","sourceRoot":"","sources":["../../../src/commands/vps/reinstall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reinstall.js","sourceRoot":"","sources":["../../../src/commands/vps/reinstall.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import { BaseCommand } from "../../base/command.js";
2
- export default class VpsResize extends BaseCommand {
2
+ /** Resolves the target RAM in GB from the `--ram` flag (already GB, no
3
+ * MB conversion) falling back to the seed spec's GB value. Exported
4
+ * standalone so the flag-parsing/unit contract has direct test coverage —
5
+ * a regression here (e.g. a reintroduced `* 1024`) would silently request
6
+ * 1024x too much RAM. */
7
+ export declare function resolveTargetRamGb(ramFlag: number | undefined, seedRamGb: number): number;
8
+ export default class ResourceResize extends BaseCommand {
3
9
  static description: string;
4
10
  static examples: string[];
5
11
  static args: {
@@ -5,15 +5,31 @@ import { confirmDestructive, yesRequiredMessage } from "../../ui/confirm.js";
5
5
  import { isInteractive, panel, summary } from "../../ui/wizard.js";
6
6
  import { ok, statusColor } from "../../ui/glyphs.js";
7
7
  import { pickPayment } from "../../ui/payment.js";
8
- export default class VpsResize extends BaseCommand {
8
+ /** Resolves the target RAM in GB from the `--ram` flag (already GB, no
9
+ * MB conversion) falling back to the seed spec's GB value. Exported
10
+ * standalone so the flag-parsing/unit contract has direct test coverage —
11
+ * a regression here (e.g. a reintroduced `* 1024`) would silently request
12
+ * 1024x too much RAM. */
13
+ export function resolveTargetRamGb(ramFlag, seedRamGb) {
14
+ return ramFlag !== undefined ? ramFlag : seedRamGb;
15
+ }
16
+ // Server serializes money as Decimal-string (per ResizeQuoteOut in
17
+ // backend/app/schemas/resize.py). Always parse before any arithmetic /
18
+ // .toFixed() call — a raw string.toFixed() crashes the CLI on every quote.
19
+ function money(v) {
20
+ if (v == null)
21
+ return 0;
22
+ const n = typeof v === "number" ? v : Number(v);
23
+ return Number.isFinite(n) ? n : 0;
24
+ }
25
+ export default class ResourceResize extends BaseCommand {
9
26
  static description = [
10
- "Resize a VPS (change CPU / RAM / disk / bandwidth in place).",
27
+ "Resize a Resource (change CPU / RAM / disk / bandwidth in place).",
11
28
  "",
12
29
  "Shows a prorated quote first, then confirms before charging. Upsizes",
13
30
  "charge the payment method immediately; downsizes issue a pro-rated",
14
31
  "credit instead. Disk can only grow. On a TTY you get a y/N prompt;",
15
32
  "when stdout is piped, pass --yes or the command exits 1 without acting.",
16
- "Use `vps resize quote <id>` to preview the cost without charging.",
17
33
  ].join("\n");
18
34
  static examples = [
19
35
  "<%= config.bin %> vps resize 019e... --ram 8 --yes # bump RAM to 8 GB; keep CPU/disk",
@@ -23,7 +39,7 @@ export default class VpsResize extends BaseCommand {
23
39
  ];
24
40
  static args = {
25
41
  id: Args.string({
26
- description: "VPS id (full or the short id from `vps list`), hostname, or IP.",
42
+ description: "Resource id (full or the short id from `vps list`), hostname, or IP.",
27
43
  required: true,
28
44
  }),
29
45
  };
@@ -32,11 +48,11 @@ export default class VpsResize extends BaseCommand {
32
48
  description: "Plan id from `synteq catalog` — seeds the target CPU/RAM/disk/bandwidth spec. Individual --cpu/--ram/--disk/--bandwidth flags override it.",
33
49
  }),
34
50
  cpu: Flags.integer({
35
- description: "Target CPU cores (>=1). Defaults to the VPS's current cores.",
51
+ description: "Target CPU cores (>=1). Defaults to the Resource's current cores.",
36
52
  min: 1,
37
53
  }),
38
54
  ram: Flags.integer({
39
- description: "Target RAM in GB (>=1). Defaults to the VPS's current RAM.",
55
+ description: "Target RAM in GB (>=1). Defaults to the Resource's current RAM.",
40
56
  min: 1,
41
57
  }),
42
58
  disk: Flags.integer({
@@ -71,7 +87,7 @@ export default class VpsResize extends BaseCommand {
71
87
  const target = await this.buildTargetSpec(vps, flags);
72
88
  const quote = await this.clients.api.vpsControl.resizeQuote(vpsId, {
73
89
  cpu_cores: target.cpu_cores,
74
- ram_mb: target.ram_mb,
90
+ ram_gb: target.ram_gb,
75
91
  disk_gb: target.disk_gb,
76
92
  bandwidth_tb: target.bandwidth_tb,
77
93
  dedicated: target.dedicated,
@@ -89,7 +105,7 @@ export default class VpsResize extends BaseCommand {
89
105
  const isUpsize = quote.action === "charge";
90
106
  const isDownsize = quote.action === "credit" || quote.action === "defer";
91
107
  const restartNote = quote.restart_required
92
- ? " This VPS is running and the change stages CPU/RAM until the next power-cycle."
108
+ ? " This Resource is running and the change stages CPU/RAM until the next power-cycle."
93
109
  : "";
94
110
  let payment;
95
111
  if (isUpsize) {
@@ -98,7 +114,7 @@ export default class VpsResize extends BaseCommand {
98
114
  tokens: this.clients.tokens,
99
115
  config: this.clients.config,
100
116
  flow: "vps_addon",
101
- estimatedCost: quote.prorated_amount,
117
+ estimatedCost: money(quote.prorated_amount),
102
118
  prefill: {
103
119
  paymentMethodId: flags["payment-method"],
104
120
  applyCredits: flags["apply-credits"],
@@ -111,24 +127,26 @@ export default class VpsResize extends BaseCommand {
111
127
  if (!isInteractive()) {
112
128
  this.error(yesRequiredMessage("`vps resize`"), { exit: 1 });
113
129
  }
130
+ const prorated = money(quote.prorated_amount);
131
+ const newMonthly = money(quote.new_monthly_price);
114
132
  const priceLine = isUpsize
115
- ? `Charge ~$${Math.abs(quote.prorated_amount).toFixed(2)} now (new monthly $${quote.new_monthly_price.toFixed(2)})`
133
+ ? `Charge ~$${Math.abs(prorated).toFixed(2)} now (new monthly $${newMonthly.toFixed(2)})`
116
134
  : isDownsize
117
135
  ? quote.action === "defer"
118
- ? `No charge now — the lower monthly $${quote.new_monthly_price.toFixed(2)} applies at renewal`
119
- : `Issue ~$${Math.abs(quote.prorated_amount).toFixed(2)} credit (new monthly $${quote.new_monthly_price.toFixed(2)})`
136
+ ? `No charge now — the lower monthly $${newMonthly.toFixed(2)} applies at renewal`
137
+ : `Issue ~$${Math.abs(prorated).toFixed(2)} credit (new monthly $${newMonthly.toFixed(2)})`
120
138
  : `No charge (spec/bandwidth tweak)`;
121
139
  const outcome = await confirmDestructive({
122
140
  message: `Resize ${vps.hostname}? ${priceLine}.${restartNote}`,
123
141
  });
124
142
  if (outcome !== "confirmed") {
125
- this.log("Aborted — VPS left unchanged.");
143
+ this.log("Aborted — Resource left unchanged.");
126
144
  return;
127
145
  }
128
146
  }
129
147
  const body = {
130
148
  cpu_cores: target.cpu_cores,
131
- ram_mb: target.ram_mb,
149
+ ram_gb: target.ram_gb,
132
150
  disk_gb: target.disk_gb,
133
151
  bandwidth_tb: target.bandwidth_tb,
134
152
  dedicated: target.dedicated,
@@ -147,7 +165,7 @@ export default class VpsResize extends BaseCommand {
147
165
  ]));
148
166
  if (result.status === "succeeded") {
149
167
  this.log(ok(quote.restart_required
150
- ? "Resize applied — power-cycle the VPS to activate the new CPU/RAM."
168
+ ? "Resize applied — power-cycle the Resource to activate the new CPU/RAM."
151
169
  : "Resize applied."));
152
170
  }
153
171
  });
@@ -158,7 +176,7 @@ export default class VpsResize extends BaseCommand {
158
176
  }
159
177
  async buildTargetSpec(vps, flags) {
160
178
  let seedCpu = vps.plan?.cpu_cores ?? 0;
161
- let seedRamMb = vps.plan?.ram_mb ?? 0;
179
+ let seedRamGb = vps.plan?.ram_gb ?? 0;
162
180
  let seedDisk = vps.plan?.disk_gb ?? 0;
163
181
  if (flags.plan) {
164
182
  const catalog = await this.clients.api.vpsOrders.catalog();
@@ -166,36 +184,45 @@ export default class VpsResize extends BaseCommand {
166
184
  if (!plan) {
167
185
  this.error(`Plan ${flags.plan} not found in the catalog. Run \`synteq vps catalog\`.`, { exit: 1 });
168
186
  }
187
+ // Reject a plan from the wrong product family. Without this,
188
+ // passing e.g. a VPS plan id to `vds resize --plan` silently
189
+ // reprices the VDS at the VPS shape when the numbers happen to
190
+ // match a VDS tier — a hard-to-notice bill/spec drift.
191
+ const resourceKind = vps.kind ?? vps.plan?.kind;
192
+ if (resourceKind && plan.kind && resourceKind !== plan.kind) {
193
+ this.error(`Plan ${flags.plan} is a ${plan.kind} plan, but this resource is a ${resourceKind}. ` +
194
+ `Pick a ${resourceKind} plan from \`synteq catalog\` (look for kind="${resourceKind}").`, { exit: 1 });
195
+ }
169
196
  seedCpu = plan.cpu_cores;
170
- seedRamMb = plan.ram_mb;
197
+ seedRamGb = plan.ram_gb;
171
198
  seedDisk = plan.disk_gb;
172
199
  }
173
200
  const cpu = flags.cpu ?? seedCpu;
174
- const ramMb = flags.ram !== undefined ? flags.ram * 1024 : seedRamMb;
201
+ const ramGb = resolveTargetRamGb(flags.ram, seedRamGb);
175
202
  const disk = flags.disk ?? seedDisk;
176
- if (cpu < 1 || ramMb < 512 || disk < 1) {
203
+ if (cpu < 1 || ramGb < 1 || disk < 1) {
177
204
  this.error("Could not resolve a full target spec. Pass --plan or all of --cpu/--ram/--disk.", { exit: 1 });
178
205
  }
179
206
  return {
180
207
  cpu_cores: cpu,
181
- ram_mb: ramMb,
208
+ ram_gb: ramGb,
182
209
  disk_gb: disk,
183
210
  bandwidth_tb: flags.bandwidth,
184
211
  dedicated: flags.dedicated === undefined ? null : flags.dedicated,
185
212
  };
186
213
  }
187
214
  quoteRows(vps, q) {
188
- const specStr = (s) => `${s.cpu_cores} vCPU · ${Math.round(s.ram_mb / 1024)} GB RAM · ${s.disk_gb} GB disk${s.dedicated ? " · dedicated" : ""}`;
215
+ const specStr = (s) => `${s.cpu_cores} vCPU · ${s.ram_gb} GB RAM · ${s.disk_gb} GB disk${s.dedicated ? " · dedicated" : ""}`;
189
216
  return [
190
- ["VPS", `${vps.hostname} (${vps.status})`],
217
+ ["Resource", `${vps.hostname} (${vps.status})`],
191
218
  ["Current", specStr(q.current_spec)],
192
219
  ["Requested", specStr(q.requested_spec)],
193
220
  ["Action", q.action],
194
- ["Current monthly", `$${q.current_monthly_price.toFixed(2)}`],
195
- ["New monthly", `$${q.new_monthly_price.toFixed(2)}`],
221
+ ["Current monthly", `$${money(q.current_monthly_price).toFixed(2)}`],
222
+ ["New monthly", `$${money(q.new_monthly_price).toFixed(2)}`],
196
223
  [
197
224
  q.action === "credit" ? "Credit today" : "Charge today",
198
- `$${Math.abs(q.prorated_amount).toFixed(2)}`,
225
+ `$${Math.abs(money(q.prorated_amount)).toFixed(2)}`,
199
226
  ],
200
227
  ["Restart required", q.restart_required ? "yes (power-cycle to apply CPU/RAM)" : undefined],
201
228
  ["In stock", q.in_stock ? undefined : `no — ${q.out_of_stock_reason ?? "capacity"}`],
@@ -1 +1 @@
1
- {"version":3,"file":"resize.js","sourceRoot":"","sources":["../../../src/commands/vps/resize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resize.js","sourceRoot":"","sources":["../../../src/commands/vps/resize.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BaseCommand } from "../../base/command.js";
2
- export default class VpsStats extends BaseCommand {
2
+ export default class ResourceStats extends BaseCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static args: {
@@ -5,12 +5,12 @@ import { panel } from "../../ui/wizard.js";
5
5
  import { statusColor } from "../../ui/glyphs.js";
6
6
  import { sparkline } from "../../ui/sparkline.js";
7
7
  import { asPoints, formatCpu, formatRate, formatUptime, formatUsagePair, numOrNull, pickLatestPoint, } from "../../ui/stats.js";
8
- export default class VpsStats extends BaseCommand {
8
+ export default class ResourceStats extends BaseCommand {
9
9
  static description = [
10
10
  "Show live CPU / memory / disk / uptime + network I/O for a VPS.",
11
11
  "",
12
12
  "Read-only. On a TTY it renders a compact readout with CPU and",
13
- "network sparklines; `-o json` returns the raw Proxmox RRD payload.",
13
+ "network sparklines; `-o json` returns the raw metrics payload.",
14
14
  ].join("\n");
15
15
  static examples = [
16
16
  "<%= config.bin %> vps stats 019e...",
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/commands/vps/stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/commands/vps/stats.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ const emptyDraft = {
22
22
  projectId: null,
23
23
  planId: null,
24
24
  customSpec: {},
25
+ tierCategorySlug: null,
26
+ tierIndex: null,
25
27
  storageSizeGb: null,
26
28
  locationId: null,
27
29
  imageId: null,
@@ -56,6 +58,11 @@ function stepsForKind(kind) {
56
58
  else if (kind === "storage") {
57
59
  base.push("size", "location", "hostname", "payment", "summary");
58
60
  }
61
+ else if (kind === "vds") {
62
+ // VDS: pick a tier from the ladder, then the standard trailing steps.
63
+ // Server resolves cpu/ram/disk/price from tier_category_slug + tier_index.
64
+ base.push("vds-tier", "location", "image", "hostname", "auth", "payment", "summary");
65
+ }
59
66
  else {
60
67
  return PROGRESS_STEPS;
61
68
  }
@@ -210,10 +217,18 @@ export function Order() {
210
217
  });
211
218
  }
212
219
  else {
220
+ // Sizing mode per kind:
221
+ // vps → custom_spec (custom_cpu_cores/ram/disk sliders)
222
+ // vds → tier_category_slug + tier_index (server resolves)
223
+ // gpu / dedicated → plan_id (preset catalog plan)
224
+ const isVps = draft.kind === "vps";
225
+ const isVds = draft.kind === "vds";
213
226
  const body = {
214
227
  project_id: draft.projectId,
215
- plan_id: draft.kind === "vps" ? undefined : draft.planId ?? undefined,
216
- custom_spec: draft.kind === "vps" ? buildCustomSpec(draft.customSpec) : undefined,
228
+ plan_id: isVps || isVds ? undefined : draft.planId ?? undefined,
229
+ custom_spec: isVps ? buildCustomSpec(draft.customSpec) : undefined,
230
+ tier_category_slug: isVds ? draft.tierCategorySlug ?? undefined : undefined,
231
+ tier_index: isVds ? draft.tierIndex ?? undefined : undefined,
217
232
  location_id: draft.locationId,
218
233
  image_id: draft.imageId,
219
234
  hostname: draft.hostname,
@@ -286,6 +301,8 @@ function StepRouter(props) {
286
301
  return (React.createElement(PlanStep, { catalog: cat.orderCatalog, draft: draft, setDraft: setDraft, goNext: goNext }));
287
302
  case "vps-spec":
288
303
  return (React.createElement(VpsSpecStep, { customConfig: cat.orderCatalog?.custom_config ?? null, locations: cat.orderCatalog?.locations ?? [], userEmail: props.userEmail, draft: draft, setDraft: setDraft, goNext: goNext }));
304
+ case "vds-tier":
305
+ return (React.createElement(VdsTierStep, { catalog: cat.orderCatalog, draft: draft, setDraft: setDraft, goNext: goNext }));
289
306
  case "size":
290
307
  return (React.createElement(SizeStep, { catalog: cat.storageCatalog, draft: draft, setDraft: setDraft, goNext: goNext }));
291
308
  case "location":
@@ -314,8 +331,9 @@ function StepRouter(props) {
314
331
  function KindStep({ draft, setDraft, goNext, }) {
315
332
  const items = [
316
333
  { value: "vps", label: "VPS", hint: "custom CPU/RAM/disk; shared or dedicated cores" },
334
+ { value: "vds", label: "VDS", hint: "tier-based performance servers (order via web for now)" },
317
335
  { value: "gpu", label: "GPU", hint: "preset GPU-bearing plans" },
318
- { value: "dedicated", label: "Dedicated", hint: "whole physical hosts" },
336
+ { value: "dedicated", label: "Instant Metal", hint: "whole physical hosts" },
319
337
  { value: "storage", label: "Storage", hint: "block volume (attach to a VPS later)" },
320
338
  ];
321
339
  return (React.createElement(Panel, { title: "What are you ordering?", paddingX: 3, paddingY: 1, width: 80 },
@@ -326,6 +344,8 @@ function KindStep({ draft, setDraft, goNext, }) {
326
344
  kind: v,
327
345
  planId: null,
328
346
  customSpec: {},
347
+ tierCategorySlug: null,
348
+ tierIndex: null,
329
349
  storageSizeGb: null,
330
350
  locationId: null,
331
351
  imageId: null,
@@ -376,7 +396,7 @@ function PlanStep({ catalog, draft, setDraft, goNext, }) {
376
396
  hint: planRowHint(p),
377
397
  disabled: p.in_stock ? undefined : "out of stock",
378
398
  }));
379
- return (React.createElement(Panel, { title: `Pick a ${draft.kind === "gpu" ? "GPU" : "dedicated"} plan`, paddingX: 3, paddingY: 1, width: 80 },
399
+ return (React.createElement(Panel, { title: `Pick a ${draft.kind === "gpu" ? "GPU" : "Instant Metal"} plan`, paddingX: 3, paddingY: 1, width: 80 },
380
400
  React.createElement(Menu, { items: items, initialIndex: Math.max(0, items.findIndex((i) => i.value === draft.planId)), onSelect: (v) => {
381
401
  setDraft((d) => ({ ...d, planId: v, locationId: null }));
382
402
  goNext();
@@ -387,15 +407,54 @@ function planRowLabel(p) {
387
407
  }
388
408
  function planRowHint(p) {
389
409
  const cores = `${p.cpu_cores}c`;
390
- const ram = `${Math.round(p.ram_mb / 1024)}G`;
410
+ const ram = `${p.ram_gb}G`;
391
411
  const disk = `${p.disk_gb}G`;
392
412
  const extra = p.gpu_model ? ` · ${p.gpu_model}` : "";
393
413
  return `${cores} ${ram} ${disk}${extra}`;
394
414
  }
415
+ // VDS-specific tier picker. Reads catalog.categories[slug].slider_config.tiers
416
+ // (the same ladder the server enforces at order time) and submits the pick
417
+ // as tier_category_slug + tier_index. Different shape from PlanStep (plans)
418
+ // and VpsSpecStep (custom sliders) — VDS is a third product family.
419
+ function VdsTierStep({ catalog, draft, setDraft, goNext, }) {
420
+ if (!catalog) {
421
+ return (React.createElement(Panel, { title: "Catalog unavailable", paddingX: 3, paddingY: 1, width: 80 },
422
+ React.createElement(Text, { color: colors.error }, "Couldn't load the order catalog. Try again later.")));
423
+ }
424
+ // Find an enabled VDS category with a non-empty ladder. Usually
425
+ // exactly one (vds_performance); multiple would need a category
426
+ // picker step first — not shipped, we take the first enabled.
427
+ const vdsCats = (catalog.categories ?? []).filter((c) => c.slug.startsWith("vds") &&
428
+ c.slider_config?.enabled &&
429
+ (c.slider_config.tiers?.length ?? 0) > 0);
430
+ if (vdsCats.length === 0) {
431
+ return (React.createElement(Panel, { title: "No VDS tiers configured", paddingX: 3, paddingY: 1, width: 80 },
432
+ React.createElement(Text, { color: colors.warning }, "No VDS tier ladders are enabled on this deployment. Pick a different resource kind or order VDS from the web console.")));
433
+ }
434
+ const cat = vdsCats[0];
435
+ const tiers = cat.slider_config?.tiers ?? [];
436
+ const items = tiers.map((t, i) => ({
437
+ value: i,
438
+ label: `Tier ${i} $${t.monthly_price}/mo`,
439
+ hint: `${t.cpu}c · ${t.ram_gb}GB RAM · ${t.disk_gb}GB disk · ${t.bandwidth_tb}TB BW`,
440
+ }));
441
+ return (React.createElement(Panel, { title: `Pick a VDS tier (${cat.name ?? cat.slug})`, paddingX: 3, paddingY: 1, width: 80 },
442
+ React.createElement(Menu, { items: items, initialIndex: Math.max(0, items.findIndex((i) => i.value === draft.tierIndex)), onSelect: (v) => {
443
+ setDraft((d) => ({
444
+ ...d,
445
+ tierCategorySlug: cat.slug,
446
+ tierIndex: v,
447
+ // Reset downstream location so the next step re-picks based
448
+ // on where this tier is actually available.
449
+ locationId: null,
450
+ }));
451
+ goNext();
452
+ } })));
453
+ }
395
454
  function VpsSpecStep({ customConfig, locations, userEmail, draft, setDraft, goNext, }) {
396
455
  if (!customConfig?.enabled) {
397
456
  return (React.createElement(Panel, { title: "Custom VPS unavailable", paddingX: 3, paddingY: 1, width: 80 },
398
- React.createElement(Text, { color: colors.warning }, "Custom VPS spec is not currently offered. Pick GPU or Dedicated instead.")));
457
+ React.createElement(Text, { color: colors.warning }, "Custom VPS spec is not currently offered. Pick GPU or Instant Metal instead.")));
399
458
  }
400
459
  return (React.createElement(VpsSpecFieldsStep, { customConfig: customConfig, locations: locations, userEmail: userEmail, draft: draft, setDraft: setDraft, goNext: goNext }));
401
460
  }
@@ -404,8 +463,7 @@ function VpsSpecFieldsStep({ customConfig, locations, userEmail, draft, setDraft
404
463
  const dedicated = Boolean(draft.customSpec._dedicated);
405
464
  const baseCfg = dedicated ? customConfig.dedicated : customConfig;
406
465
  const initialCpu = draft.customSpec.cpu_cores ?? baseCfg.cpu_min;
407
- const initialRamGb = (draft.customSpec.ram_mb ? draft.customSpec.ram_mb / 1024 : null) ??
408
- customConfig.ram_min_gb;
466
+ const initialRamGb = draft.customSpec.ram_gb ?? customConfig.ram_min_gb;
409
467
  const initialDisk = draft.customSpec.disk_gb ?? customConfig.disk_min_gb;
410
468
  const initialBw = draft.customSpec.bandwidth_tb ?? customConfig.bandwidth_min_tb;
411
469
  const [cpu, setCpu] = useState(String(initialCpu));
@@ -437,7 +495,7 @@ function VpsSpecFieldsStep({ customConfig, locations, userEmail, draft, setDraft
437
495
  api.vpsOrders
438
496
  .customAvailability({
439
497
  cpu_cores: cpuN,
440
- ram_mb: ramN * 1024,
498
+ ram_gb: ramN,
441
499
  disk_gb: diskN,
442
500
  location_id: loc.id,
443
501
  dedicated,
@@ -463,7 +521,7 @@ function VpsSpecFieldsStep({ customConfig, locations, userEmail, draft, setDraft
463
521
  customSpec: {
464
522
  ...d.customSpec,
465
523
  cpu_cores: d.customSpec.cpu_cores ?? initialCpu,
466
- ram_mb: d.customSpec.ram_mb ?? initialRamGb * 1024,
524
+ ram_gb: d.customSpec.ram_gb ?? initialRamGb,
467
525
  disk_gb: d.customSpec.disk_gb ?? initialDisk,
468
526
  bandwidth_tb: d.customSpec.bandwidth_tb ?? initialBw,
469
527
  },
@@ -511,7 +569,7 @@ function VpsSpecFieldsStep({ customConfig, locations, userEmail, draft, setDraft
511
569
  customSpec: {
512
570
  ...d.customSpec,
513
571
  cpu_cores: Number(cpu),
514
- ram_mb: Number(ramGb) * 1024,
572
+ ram_gb: Number(ramGb),
515
573
  disk_gb: Number(disk),
516
574
  bandwidth_tb: Number(bw),
517
575
  },
@@ -604,7 +662,7 @@ function VpsSpecFieldsStep({ customConfig, locations, userEmail, draft, setDraft
604
662
  React.createElement(Box, { marginTop: 1 }),
605
663
  React.createElement(NumberInput, { label: "CPU cores", value: cpu, onChange: (v) => liveSet(v, setCpu, (n) => ({ cpu_cores: n })), onSubmit: () => setSpecRow(2), min: cpuMin, max: cpuMax, step: cpuStep, unit: "vCPU", focused: specFocused && specRow === 1 }),
606
664
  React.createElement(Box, { marginTop: 1 }),
607
- React.createElement(NumberInput, { label: "RAM", value: ramGb, onChange: (v) => liveSet(v, setRamGb, (n) => ({ ram_mb: n * 1024 })), onSubmit: () => setSpecRow(3), min: ramMin, max: ramMax, step: ramStep, unit: "GB", focused: specFocused && specRow === 2 }),
665
+ React.createElement(NumberInput, { label: "RAM", value: ramGb, onChange: (v) => liveSet(v, setRamGb, (n) => ({ ram_gb: n })), onSubmit: () => setSpecRow(3), min: ramMin, max: ramMax, step: ramStep, unit: "GB", focused: specFocused && specRow === 2 }),
608
666
  React.createElement(Box, { marginTop: 1 }),
609
667
  React.createElement(NumberInput, { label: "Disk", value: disk, onChange: (v) => liveSet(v, setDisk, (n) => ({ disk_gb: n })), onSubmit: () => setSpecRow(4), min: diskMin, max: diskMax, step: diskStep, unit: "GB NVMe", focused: specFocused && specRow === 3 }),
610
668
  React.createElement(Box, { marginTop: 1 }),
@@ -989,11 +1047,20 @@ function SummaryStep({ draft, cat, onSubmit, onEdit, }) {
989
1047
  const imageName = cat.orderCatalog?.images.find((i) => i.id === draft.imageId)?.display_name;
990
1048
  const plan = cat.orderCatalog?.plans.find((p) => p.id === draft.planId);
991
1049
  const chosenPm = cat.paymentMethods.find((m) => m.id === draft.paymentMethodId);
1050
+ // VDS: pull the picked tier's spec back out of the catalog for display.
1051
+ // The server owns the truth; we resolve here purely for the summary
1052
+ // preview so the user sees what they're about to buy.
1053
+ const vdsCat = draft.kind === "vds"
1054
+ ? (cat.orderCatalog?.categories ?? []).find((c) => c.slug === draft.tierCategorySlug)
1055
+ : null;
1056
+ const vdsTier = vdsCat?.slider_config?.tiers?.[draft.tierIndex ?? -1];
992
1057
  const specLine = draft.kind === "vps"
993
- ? `${draft.customSpec.cpu_cores ?? "?"} vCPU · ${(draft.customSpec.ram_mb ?? 0) / 1024} GB RAM · ${draft.customSpec.disk_gb ?? "?"} GB disk${draft.customSpec.bandwidth_tb ? ` · ${draft.customSpec.bandwidth_tb} TB BW` : ""}${draft.customSpec._dedicated ? " · dedicated" : ""}`
994
- : plan
995
- ? `${plan.name} — ${plan.cpu_cores}c ${Math.round(plan.ram_mb / 1024)}G ${plan.disk_gb}G${plan.gpu_model ? ` · ${plan.gpu_model}` : ""}`
996
- : undefined;
1058
+ ? `${draft.customSpec.cpu_cores ?? "?"} vCPU · ${draft.customSpec.ram_gb ?? 0} GB RAM · ${draft.customSpec.disk_gb ?? "?"} GB disk${draft.customSpec.bandwidth_tb ? ` · ${draft.customSpec.bandwidth_tb} TB BW` : ""}${draft.customSpec._dedicated ? " · dedicated" : ""}`
1059
+ : draft.kind === "vds" && vdsTier
1060
+ ? `Tier ${draft.tierIndex} — ${vdsTier.cpu}c ${vdsTier.ram_gb}G ${vdsTier.disk_gb}G · ${vdsTier.bandwidth_tb}TB BW ($${vdsTier.monthly_price}/mo)`
1061
+ : plan
1062
+ ? `${plan.name} — ${plan.cpu_cores}c ${plan.ram_gb}G ${plan.disk_gb}G${plan.gpu_model ? ` · ${plan.gpu_model}` : ""}`
1063
+ : undefined;
997
1064
  const paymentLabel = (() => {
998
1065
  const parts = [];
999
1066
  if (draft.applyCredits && cat.creditBalance > 0) {
@@ -1102,11 +1169,11 @@ function tipForStep(step, draft, cancelConfirm) {
1102
1169
  }
1103
1170
  }
1104
1171
  function buildCustomSpec(s) {
1105
- if (!s.cpu_cores || !s.ram_mb || !s.disk_gb)
1172
+ if (!s.cpu_cores || !s.ram_gb || !s.disk_gb)
1106
1173
  return undefined;
1107
1174
  return {
1108
1175
  cpu_cores: s.cpu_cores,
1109
- ram_mb: s.ram_mb,
1176
+ ram_gb: s.ram_gb,
1110
1177
  disk_gb: s.disk_gb,
1111
1178
  bandwidth_tb: s.bandwidth_tb,
1112
1179
  dedicated: s._dedicated,
@@ -1132,14 +1199,23 @@ function estimateMonthlyCost(draft, cat) {
1132
1199
  return { amount: plan.monthly_price, label: plan.name };
1133
1200
  }
1134
1201
  }
1202
+ if (draft.kind === "vds" && draft.tierCategorySlug && draft.tierIndex != null && cat.orderCatalog) {
1203
+ const vc = (cat.orderCatalog.categories ?? []).find((c) => c.slug === draft.tierCategorySlug);
1204
+ const t = vc?.slider_config?.tiers?.[draft.tierIndex];
1205
+ if (t) {
1206
+ return {
1207
+ amount: typeof t.monthly_price === "string" ? Number(t.monthly_price) : t.monthly_price,
1208
+ label: `VDS tier ${draft.tierIndex} · ${t.cpu}c ${t.ram_gb}GB ${t.disk_gb}GB`,
1209
+ };
1210
+ }
1211
+ }
1135
1212
  if (draft.kind === "vps" && cat.orderCatalog?.custom_config) {
1136
1213
  const cfg = cat.orderCatalog.custom_config;
1137
1214
  const baseCfg = draft.customSpec._dedicated ? cfg.dedicated : cfg;
1138
1215
  const cpu = draft.customSpec.cpu_cores;
1139
- const ramMb = draft.customSpec.ram_mb;
1216
+ const ramGb = draft.customSpec.ram_gb;
1140
1217
  const disk = draft.customSpec.disk_gb;
1141
- if (cpu && ramMb && disk) {
1142
- const ramGb = ramMb / 1024;
1218
+ if (cpu && ramGb && disk) {
1143
1219
  const bwTb = draft.customSpec.bandwidth_tb ?? cfg.bandwidth_included_tb;
1144
1220
  const extraTb = Math.max(0, bwTb - cfg.bandwidth_included_tb);
1145
1221
  const amount = baseCfg.base_price +