@tokenbuddy/tb-admin 1.0.14 → 1.0.27

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 (55) hide show
  1. package/dist/src/bootstrap-registry.d.ts +1 -0
  2. package/dist/src/bootstrap-registry.d.ts.map +1 -1
  3. package/dist/src/bootstrap-registry.js.map +1 -1
  4. package/dist/src/cli.d.ts.map +1 -1
  5. package/dist/src/cli.js +294 -13
  6. package/dist/src/cli.js.map +1 -1
  7. package/dist/src/client.d.ts +12 -3
  8. package/dist/src/client.d.ts.map +1 -1
  9. package/dist/src/client.js +12 -8
  10. package/dist/src/client.js.map +1 -1
  11. package/dist/src/display-format.d.ts +39 -0
  12. package/dist/src/display-format.d.ts.map +1 -0
  13. package/dist/src/display-format.js +354 -0
  14. package/dist/src/display-format.js.map +1 -0
  15. package/dist/src/server-cmd.d.ts +25 -1
  16. package/dist/src/server-cmd.d.ts.map +1 -1
  17. package/dist/src/server-cmd.js +116 -16
  18. package/dist/src/server-cmd.js.map +1 -1
  19. package/dist/src/ui-actions.d.ts +90 -0
  20. package/dist/src/ui-actions.d.ts.map +1 -0
  21. package/dist/src/ui-actions.js +823 -0
  22. package/dist/src/ui-actions.js.map +1 -0
  23. package/dist/src/ui-command.d.ts +4 -0
  24. package/dist/src/ui-command.d.ts.map +1 -0
  25. package/dist/src/ui-command.js +37 -0
  26. package/dist/src/ui-command.js.map +1 -0
  27. package/dist/src/ui-server.d.ts +22 -0
  28. package/dist/src/ui-server.d.ts.map +1 -0
  29. package/dist/src/ui-server.js +261 -0
  30. package/dist/src/ui-server.js.map +1 -0
  31. package/dist/src/ui-state.d.ts +140 -0
  32. package/dist/src/ui-state.d.ts.map +1 -0
  33. package/dist/src/ui-state.js +438 -0
  34. package/dist/src/ui-state.js.map +1 -0
  35. package/dist/src/ui-static.d.ts +2 -0
  36. package/dist/src/ui-static.d.ts.map +1 -0
  37. package/dist/src/ui-static.js +469 -0
  38. package/dist/src/ui-static.js.map +1 -0
  39. package/dist/src/upstream-balance-probe.d.ts +41 -0
  40. package/dist/src/upstream-balance-probe.d.ts.map +1 -0
  41. package/dist/src/upstream-balance-probe.js +379 -0
  42. package/dist/src/upstream-balance-probe.js.map +1 -0
  43. package/package.json +1 -1
  44. package/src/bootstrap-registry.ts +1 -0
  45. package/src/cli.ts +335 -13
  46. package/src/client.ts +13 -8
  47. package/src/display-format.ts +398 -0
  48. package/src/server-cmd.ts +145 -20
  49. package/src/ui-actions.ts +958 -0
  50. package/src/ui-command.ts +39 -0
  51. package/src/ui-server.ts +322 -0
  52. package/src/ui-state.ts +614 -0
  53. package/src/ui-static.ts +472 -0
  54. package/src/upstream-balance-probe.ts +505 -0
  55. package/tests/admin.test.ts +1404 -2
@@ -1,4 +1,5 @@
1
- import { execSync } from "child_process";
1
+ import { execSync, spawnSync } from "child_process";
2
+ import * as fs from "fs";
2
3
  /**
3
4
  * 检查 flyctl 是否在 PATH 中(或在指定路径)。
4
5
  *
@@ -14,6 +15,36 @@ export function checkFlyctlInstalled(flyctlPath) {
14
15
  return false;
15
16
  }
16
17
  }
18
+ export function inspectDockerImage(image) {
19
+ const result = spawnSync("docker", ["buildx", "imagetools", "inspect", image], {
20
+ encoding: "utf8",
21
+ stdio: ["ignore", "pipe", "pipe"]
22
+ });
23
+ return dockerImageInspectionFromResult(result);
24
+ }
25
+ export function requirePublishedDockerImage(image, inspectImage = inspectDockerImage) {
26
+ const inspection = inspectImage(image);
27
+ if (inspection.ok) {
28
+ return;
29
+ }
30
+ const detail = inspection.error ? ` Detail: ${inspection.error.trim()}` : "";
31
+ throw new Error(`seller image is not published or is not accessible: ${image}. ` +
32
+ `Publish it first with RELEASE_VERSION=<v> bash scripts/release/all.sh, or pass an existing registry.fly.io/tb-seller:<v> tag. ` +
33
+ `No Fly app was created.${detail}`);
34
+ }
35
+ function dockerImageInspectionFromResult(result) {
36
+ if (result.error) {
37
+ return { ok: false, error: result.error.message };
38
+ }
39
+ if (result.status !== 0) {
40
+ return {
41
+ ok: false,
42
+ exitCode: result.status ?? undefined,
43
+ error: (result.stderr || result.stdout || "").toString()
44
+ };
45
+ }
46
+ return { ok: true };
47
+ }
17
48
  export function parseFlyMachineIds(json, app) {
18
49
  let parsed;
19
50
  try {
@@ -45,20 +76,51 @@ export function parseFlyMachineIds(json, app) {
45
76
  */
46
77
  export class FlyProvider {
47
78
  providerConfig;
48
- constructor(providerConfig) {
79
+ runtime;
80
+ constructor(providerConfig, runtime) {
49
81
  this.providerConfig = providerConfig;
82
+ this.runtime = {
83
+ checkFlyctlInstalled,
84
+ execSync,
85
+ spawnSync,
86
+ imageInspector: inspectDockerImage,
87
+ ...runtime
88
+ };
50
89
  }
51
90
  get flyctl() {
52
91
  return this.providerConfig?.flyctl_path || "flyctl";
53
92
  }
93
+ flyExecOptions(options = {}) {
94
+ return {
95
+ ...options,
96
+ env: this.flyEnv(options.env)
97
+ };
98
+ }
99
+ flySpawnOptions(options = {}) {
100
+ return {
101
+ ...options,
102
+ env: this.flyEnv(options.env)
103
+ };
104
+ }
105
+ flyEnv(env) {
106
+ const configuredToken = this.providerConfig?.token;
107
+ const merged = {
108
+ ...process.env,
109
+ ...(env || {})
110
+ };
111
+ if (configuredToken && !merged.FLY_API_TOKEN) {
112
+ merged.FLY_API_TOKEN = configuredToken;
113
+ }
114
+ return merged;
115
+ }
54
116
  /**
55
117
  * List apps on Fly.io
56
118
  */
57
119
  listApps() {
58
- if (!checkFlyctlInstalled(this.flyctl)) {
120
+ if (!this.runtime.checkFlyctlInstalled(this.flyctl)) {
59
121
  throw new Error(`\`${this.flyctl}\` is not installed on your system PATH.`);
60
122
  }
61
- return execSync(`${this.flyctl} apps list`, { encoding: "utf8" });
123
+ return this.runtime.execSync(`${this.flyctl} apps list`, this.flyExecOptions({ encoding: "utf8" }));
62
124
  }
63
125
  /**
64
126
  * Create and deploy a new seller app on Fly.io
@@ -83,6 +145,7 @@ export class FlyProvider {
83
145
  || 1;
84
146
  const volumeSnapshotRetentionDays = options.volumeSnapshotRetentionDays;
85
147
  const volumeId = options.volumeId;
148
+ const initialConfigPath = options.initialConfigPath;
86
149
  if (!targetImage) {
87
150
  throw new Error("seller create requires --image registry.fly.io/tb-seller:<v>");
88
151
  }
@@ -99,27 +162,54 @@ export class FlyProvider {
99
162
  ];
100
163
  if (flyConfig)
101
164
  lines.push(` Fly config: ${flyConfig}`);
165
+ if (initialConfigPath)
166
+ lines.push(` Initial config secret: TOKENBUDDY_SELLER_CONFIG_B64 from ${initialConfigPath}`);
102
167
  if (volumeId)
103
168
  lines.push(` Volume ID: ${volumeId}`);
104
169
  if (volumeSnapshotRetentionDays !== undefined)
105
170
  lines.push(` Volume snapshot retention: ${volumeSnapshotRetentionDays} days`);
106
171
  return lines.join("\n");
107
172
  }
108
- if (!checkFlyctlInstalled(this.flyctl)) {
173
+ if (!this.runtime.checkFlyctlInstalled(this.flyctl)) {
109
174
  throw new Error(`\`${this.flyctl}\` is not installed on PATH.`);
110
175
  }
111
176
  if (!operatorSecret) {
112
177
  throw new Error("operator_secret is required. Provide --operator-secret or configure seller_providers.fly.operator_secret");
113
178
  }
179
+ requireReadableFile(flyConfig, "Fly config");
180
+ if (initialConfigPath) {
181
+ requireReadableFile(initialConfigPath, "Initial seller config");
182
+ }
183
+ requirePublishedDockerImage(targetImage, this.runtime.imageInspector);
114
184
  console.log(`[Fly.io] Creating app ${appName}...`);
115
- execSync(`${this.flyctl} apps create ${appName} --machines`, { stdio: "inherit" });
185
+ this.runtime.execSync(`${this.flyctl} apps create ${appName} --machines`, this.flyExecOptions({ stdio: "inherit" }));
116
186
  console.log(`[Fly.io] Setting secrets...`);
117
- execSync(`${this.flyctl} secrets set ALLOW_MOCK=false OPERATOR_SECRET=${operatorSecret} --app ${appName}`, { stdio: "inherit" });
187
+ this.importCreateSecrets(appName, operatorSecret, initialConfigPath);
118
188
  console.log(`[Fly.io] Deploying image ${targetImage}...`);
119
- const deployCmd = `${this.flyctl} deploy -c ${flyConfig} --image ${targetImage} --region ${targetRegion} --app ${appName} --now`;
120
- execSync(deployCmd, { stdio: "inherit" });
189
+ const deployCmd = `${this.flyctl} deploy -c ${flyConfig} --image ${targetImage} --primary-region ${targetRegion} --app ${appName} --now`;
190
+ this.runtime.execSync(deployCmd, this.flyExecOptions({ stdio: "inherit" }));
121
191
  return `Successfully deployed ${appName} on Fly.io`;
122
192
  }
193
+ importCreateSecrets(appName, operatorSecret, initialConfigPath) {
194
+ const lines = [
195
+ "ALLOW_MOCK=false",
196
+ `OPERATOR_SECRET=${operatorSecret}`
197
+ ];
198
+ if (initialConfigPath) {
199
+ const configContent = fs.readFileSync(initialConfigPath, "utf8");
200
+ lines.push(`TOKENBUDDY_SELLER_CONFIG_B64=${Buffer.from(configContent, "utf8").toString("base64")}`);
201
+ }
202
+ const result = this.runtime.spawnSync(this.flyctl, ["secrets", "import", "--stage", "--app", appName], this.flySpawnOptions({
203
+ input: `${lines.join("\n")}\n`,
204
+ stdio: ["pipe", "inherit", "inherit"]
205
+ }));
206
+ if (result.error) {
207
+ throw result.error;
208
+ }
209
+ if (result.status !== 0) {
210
+ throw new Error(`flyctl secrets import failed with exit code ${result.status}`);
211
+ }
212
+ }
123
213
  /**
124
214
  * Destroy a seller app on Fly.io.
125
215
  * @param nameOrApp Either a bare name (e.g. "86d81e") or a full app name (e.g. "tbs-86d81e").
@@ -131,11 +221,11 @@ export class FlyProvider {
131
221
  if (dryRun) {
132
222
  return `[DRY-RUN] Will destroy fly app: ${appName}`;
133
223
  }
134
- if (!checkFlyctlInstalled(this.flyctl)) {
224
+ if (!this.runtime.checkFlyctlInstalled(this.flyctl)) {
135
225
  throw new Error(`\`${this.flyctl}\` is not installed.`);
136
226
  }
137
227
  console.log(`[Fly.io] Destroying app ${appName}...`);
138
- execSync(`${this.flyctl} apps destroy ${appName} --yes`, { stdio: "inherit" });
228
+ this.runtime.execSync(`${this.flyctl} apps destroy ${appName} --yes`, this.flyExecOptions({ stdio: "inherit" }));
139
229
  return `Successfully destroyed ${appName} on Fly.io`;
140
230
  }
141
231
  /**
@@ -143,10 +233,10 @@ export class FlyProvider {
143
233
  */
144
234
  statusApp(name) {
145
235
  const appName = name.includes("-") ? name : `tb-seller-${name}`;
146
- if (!checkFlyctlInstalled(this.flyctl)) {
236
+ if (!this.runtime.checkFlyctlInstalled(this.flyctl)) {
147
237
  throw new Error(`\`${this.flyctl}\` is not installed.`);
148
238
  }
149
- return execSync(`${this.flyctl} status --app ${appName}`, { encoding: "utf8" });
239
+ return this.runtime.execSync(`${this.flyctl} status --app ${appName}`, this.flyExecOptions({ encoding: "utf8" }));
150
240
  }
151
241
  /**
152
242
  * Update an existing seller app's Machines to a new image.
@@ -167,16 +257,26 @@ export class FlyProvider {
167
257
  lines.push(" Volumes: unchanged");
168
258
  return lines.join("\n");
169
259
  }
170
- if (!checkFlyctlInstalled(this.flyctl)) {
260
+ if (!this.runtime.checkFlyctlInstalled(this.flyctl)) {
171
261
  throw new Error(`\`${this.flyctl}\` is not installed.`);
172
262
  }
173
- const machinesJson = execSync(`${this.flyctl} machines list --app ${app} --json`, { encoding: "utf8" });
263
+ const machinesJson = this.runtime.execSync(`${this.flyctl} machines list --app ${app} --json`, this.flyExecOptions({ encoding: "utf8" }));
174
264
  const machineIds = parseFlyMachineIds(machinesJson, app);
175
265
  console.log(`[Fly.io] Updating ${app} image on ${machineIds.length} machine(s)...`);
176
266
  for (const machineId of machineIds) {
177
- execSync(`${this.flyctl} machine update ${machineId} --app ${app} --image ${targetImage} --yes`, { stdio: "inherit" });
267
+ this.runtime.execSync(`${this.flyctl} machine update ${machineId} --app ${app} --image ${targetImage} --yes`, this.flyExecOptions({ stdio: "inherit" }));
178
268
  }
179
269
  return `Successfully updated ${app} image`;
180
270
  }
181
271
  }
272
+ function requireReadableFile(filePath, label) {
273
+ if (!fs.existsSync(filePath)) {
274
+ throw new Error(`${label} file does not exist: ${filePath}`);
275
+ }
276
+ const stat = fs.statSync(filePath);
277
+ if (!stat.isFile()) {
278
+ throw new Error(`${label} path is not a file: ${filePath}`);
279
+ }
280
+ fs.accessSync(filePath, fs.constants.R_OK);
281
+ }
182
282
  //# sourceMappingURL=server-cmd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-cmd.js","sourceRoot":"","sources":["../../src/server-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-cmd.js","sourceRoot":"","sources":["../../src/server-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAyB,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAqBzB;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAmB;IACtD,IAAI,CAAC;QACH,QAAQ,CAAC,SAAS,UAAU,IAAI,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;QAC7E,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IACH,OAAO,+BAA+B,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAa,EAAE,eAAmC,kBAAkB;IAC9G,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,IAAI,KAAK,CACb,uDAAuD,KAAK,IAAI;QAChE,gIAAgI;QAChI,0BAA0B,MAAM,EAAE,CACnC,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,MAAgC;IACvE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;YACpC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;SACzD,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,GAAW;IAC1D,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,sDAAsD,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,GAAG,GAAG,MAAM;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACrD,MAAM,EAAE,GAAI,IAAyB,CAAC,EAAE,CAAC;YACzC,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,4BAA4B,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAqBD;;;GAGG;AACH,MAAM,OAAO,WAAW;IACd,cAAc,CAAwB;IAC7B,OAAO,CAA+B;IAEvD,YAAY,cAAqC,EAAE,OAA4B;QAC7E,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG;YACb,oBAAoB;YACpB,QAAQ;YACR,SAAS;YACT,cAAc,EAAE,kBAAkB;YAClC,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,cAAc,EAAE,WAAW,IAAI,QAAQ,CAAC;IACtD,CAAC;IAEO,cAAc,CAAC,UAA0C,EAAE;QACjE,OAAO;YACL,GAAG,OAAO;YACV,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SAC9B,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,UAA2C,EAAE;QACnE,OAAO;YACL,GAAG,OAAO;YACV,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SAC9B,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,GAAkC;QAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;QACnD,MAAM,MAAM,GAAG;YACb,GAAG,OAAO,CAAC,GAAG;YACd,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;SACf,CAAC;QACF,IAAI,eAAe,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,CAAC,aAAa,GAAG,eAAe,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,0CAA0C,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAW,CAAC;IAChH,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,OAA4B;QAC9C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACjC,sFAAsF;QACtF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC;QAEnD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QAClC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM;eAC9B,IAAI,CAAC,cAAc,EAAE,cAAc;eACnC,KAAK,CAAC;QACX,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc;eACxC,IAAI,CAAC,cAAc,EAAE,eAAe;eACpC,EAAE,CAAC;QACR,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU;eAChC,IAAI,CAAC,cAAc,EAAE,WAAW;eAChC,gBAAgB,CAAC;QACtB,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY;eACpC,IAAI,CAAC,cAAc,EAAE,cAAc;eACnC,CAAC,CAAC;QACP,MAAM,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC;QACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAEpD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG;gBACZ,kCAAkC,OAAO,EAAE;gBAC3C,aAAa,YAAY,EAAE;gBAC3B,aAAa,WAAW,EAAE;gBAC1B,gCAAgC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE;gBACpE,aAAa,UAAU,KAAK,YAAY,KAAK;aAC9C,CAAC;YACF,IAAI,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;YACxD,IAAI,iBAAiB;gBAAE,KAAK,CAAC,IAAI,CAAC,8DAA8D,iBAAiB,EAAE,CAAC,CAAC;YACrH,IAAI,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;YACrD,IAAI,2BAA2B,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,gCAAgC,2BAA2B,OAAO,CAAC,CAAC;YAC9H,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,8BAA8B,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;QAC9H,CAAC;QACD,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC7C,IAAI,iBAAiB,EAAE,CAAC;YACtB,mBAAmB,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;QAClE,CAAC;QACD,2BAA2B,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEtE,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,gBAAgB,OAAO,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAErH,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAErE,OAAO,CAAC,GAAG,CAAC,4BAA4B,WAAW,KAAK,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,MAAM,cAAc,SAAS,YAAY,WAAW,qBAAqB,YAAY,UAAU,OAAO,QAAQ,CAAC;QACzI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAE5E,OAAO,yBAAyB,OAAO,YAAY,CAAC;IACtD,CAAC;IAEO,mBAAmB,CAAC,OAAe,EAAE,cAAsB,EAAE,iBAAqC;QACxG,MAAM,KAAK,GAAG;YACZ,kBAAkB;YAClB,mBAAmB,cAAc,EAAE;SACpC,CAAC;QACF,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtG,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC;YAC1H,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC9B,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;SACtC,CAAC,CAAC,CAAC;QACJ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,SAAiB,EAAE,MAAgB;QACrD,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,SAAS,EAAE,CAAC;QAC/E,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,mCAAmC,OAAO,EAAE,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,iBAAiB,OAAO,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAEjH,OAAO,0BAA0B,OAAO,YAAY,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,IAAY;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,iBAAiB,OAAO,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAW,CAAC;IAC9H,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,OAKnB;QACC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,WAAW,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,CAAC,gDAAgD,GAAG,EAAE,CAAC,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,wBAAwB,GAAG,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAW,CAAC;QACpJ,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,aAAa,UAAU,CAAC,MAAM,gBAAgB,CAAC,CAAC;QACpF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CACnB,GAAG,IAAI,CAAC,MAAM,mBAAmB,SAAS,UAAU,GAAG,YAAY,WAAW,QAAQ,EACtF,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAC1C,CAAC;QACJ,CAAC;QACD,OAAO,wBAAwB,GAAG,QAAQ,CAAC;IAC7C,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,KAAa;IAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { ConfigManager } from "./config.js";
2
+ export interface UiActionResult {
3
+ ok: boolean;
4
+ stdout: string;
5
+ stderr: string;
6
+ command: string[];
7
+ }
8
+ export interface CreateSellerRequest {
9
+ sellerName: string;
10
+ region: string;
11
+ image: string;
12
+ upstreamWebsite: string;
13
+ upstreamUrl: string;
14
+ upstreamApiKey: string;
15
+ upstreamBalanceProbeTemplate?: string;
16
+ upstreamBalanceProbeUrl?: string;
17
+ upstreamBalanceProbeUserId?: string;
18
+ upstreamBalanceProbeRechargeUrl?: string;
19
+ upstreamBalanceUrl?: string;
20
+ upstreamUserId?: string;
21
+ upstreamRechargeUrl?: string;
22
+ maxConnections: number;
23
+ maxQueueDepth: number;
24
+ markupRatio: number;
25
+ discountRatio: number;
26
+ paymentMethods?: string[] | string;
27
+ paymentMethod?: string;
28
+ clawtipPayTo?: string;
29
+ clawtipSm4KeyBase64?: string;
30
+ clawtipSkillSlug?: string;
31
+ clawtipSkillId?: string;
32
+ clawtipDescription?: string;
33
+ clawtipResourceUrl?: string;
34
+ clawtipActivationFeeFen?: number;
35
+ clawtipMicrosPerFen?: number;
36
+ flyConfig?: string;
37
+ operatorSecret?: string;
38
+ app?: string;
39
+ dryRun?: boolean;
40
+ }
41
+ export interface UiActionsOptions {
42
+ configManager: ConfigManager;
43
+ configPath?: string;
44
+ profile?: string;
45
+ url?: string;
46
+ token?: string;
47
+ fetchJson?: (url: string, init?: RequestInit) => Promise<unknown>;
48
+ commandRunner?: (args: string[], timeoutMs: number) => Promise<UiActionResult>;
49
+ }
50
+ type ConfigPatch = Record<string, unknown>;
51
+ export type UiActionProgressStatus = "pending" | "running" | "succeeded" | "failed" | "skipped";
52
+ export type UiActionProgressStepId = "check_registry" | "validate_config" | "create_deployment" | "wait_seller" | "apply_config" | "refresh_models" | "publish_registry";
53
+ export interface UiActionProgressEvent {
54
+ stepId: UiActionProgressStepId;
55
+ status: UiActionProgressStatus;
56
+ title: string;
57
+ message?: string;
58
+ result?: UiActionResult;
59
+ }
60
+ type UiActionProgressReporter = (event: UiActionProgressEvent) => void;
61
+ export declare class UiActions {
62
+ private readonly state;
63
+ private readonly options;
64
+ private readonly commandRunner?;
65
+ constructor(options: UiActionsOptions);
66
+ updateSellerConfig(id: string, patch: ConfigPatch): Promise<UiActionResult>;
67
+ createSeller(request: CreateSellerRequest, progress?: UiActionProgressReporter): Promise<{
68
+ result: UiActionResult;
69
+ configValidation: UiActionResult;
70
+ readiness?: UiActionResult;
71
+ configPut?: UiActionResult;
72
+ modelsRefresh?: UiActionResult;
73
+ registryPublish?: UiActionResult;
74
+ configPreview: Record<string, unknown>;
75
+ publishRegistry: "completed" | "failed" | "skipped";
76
+ }>;
77
+ setRegistryStatus(id: string, status: "active" | "draining" | "offline"): Promise<UiActionResult>;
78
+ deleteDeployment(id: string, confirm: boolean): Promise<UiActionResult>;
79
+ private withTempYaml;
80
+ private withTempJson;
81
+ private runAdmin;
82
+ private waitForSellerReady;
83
+ private refreshSellerModelsWithRetry;
84
+ private publishCreatedSellerRegistryEntry;
85
+ private fetchSellerOperatorJson;
86
+ private fetchSellerOperatorJsonOptional;
87
+ }
88
+ export declare function runTbAdmin(args: string[], timeoutMs: number): Promise<UiActionResult>;
89
+ export {};
90
+ //# sourceMappingURL=ui-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-actions.d.ts","sourceRoot":"","sources":["../../src/ui-actions.ts"],"names":[],"mappings":"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"}