@nodetool-ai/deploy 0.7.0-rc.23 → 0.8.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/README.md +41 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/admin-client.d.ts +5 -39
- package/dist/admin-client.d.ts.map +1 -1
- package/dist/admin-client.js +9 -230
- package/dist/admin-client.js.map +1 -1
- package/dist/api-user-manager.d.ts.map +1 -1
- package/dist/api-user-manager.js +5 -2
- package/dist/api-user-manager.js.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +0 -3
- package/dist/auth.js.map +1 -1
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +0 -3
- package/dist/compose.js.map +1 -1
- package/dist/configure.d.ts +1 -43
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +2 -43
- package/dist/configure.js.map +1 -1
- package/dist/deployment-config.d.ts +28 -786
- package/dist/deployment-config.d.ts.map +1 -1
- package/dist/deployment-config.js +34 -218
- package/dist/deployment-config.js.map +1 -1
- package/dist/docker-run.d.ts +0 -1
- package/dist/docker-run.d.ts.map +1 -1
- package/dist/docker-run.js +0 -20
- package/dist/docker-run.js.map +1 -1
- package/dist/docker.d.ts +6 -21
- package/dist/docker.d.ts.map +1 -1
- package/dist/docker.js +6 -53
- package/dist/docker.js.map +1 -1
- package/dist/image-spec.d.ts +1 -1
- package/dist/index.d.ts +0 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -17
- package/dist/index.js.map +1 -1
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +0 -44
- package/dist/manager.js.map +1 -1
- package/dist/progress.d.ts.map +1 -1
- package/dist/progress.js +0 -1
- package/dist/progress.js.map +1 -1
- package/dist/remote-users.d.ts.map +1 -1
- package/dist/remote-users.js +1 -4
- package/dist/remote-users.js.map +1 -1
- package/dist/runpod-rest.d.ts +114 -0
- package/dist/runpod-rest.d.ts.map +1 -0
- package/dist/runpod-rest.js +150 -0
- package/dist/runpod-rest.js.map +1 -0
- package/dist/self-hosted.d.ts +17 -43
- package/dist/self-hosted.d.ts.map +1 -1
- package/dist/self-hosted.js +50 -124
- package/dist/self-hosted.js.map +1 -1
- package/dist/ssh.d.ts +9 -0
- package/dist/ssh.d.ts.map +1 -1
- package/dist/ssh.js +1 -5
- package/dist/ssh.js.map +1 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +1 -11
- package/dist/state.js.map +1 -1
- package/dist/workflow-syncer.d.ts +3 -32
- package/dist/workflow-syncer.d.ts.map +1 -1
- package/dist/workflow-syncer.js +3 -162
- package/dist/workflow-syncer.js.map +1 -1
- package/package.json +29 -14
- package/dist/admin-operations.d.ts +0 -197
- package/dist/admin-operations.d.ts.map +0 -1
- package/dist/admin-operations.js +0 -433
- package/dist/admin-operations.js.map +0 -1
- package/dist/admin-routes.d.ts +0 -306
- package/dist/admin-routes.d.ts.map +0 -1
- package/dist/admin-routes.js +0 -383
- package/dist/admin-routes.js.map +0 -1
- package/dist/collection-routes.d.ts +0 -37
- package/dist/collection-routes.d.ts.map +0 -1
- package/dist/collection-routes.js +0 -43
- package/dist/collection-routes.js.map +0 -1
- package/dist/deploy-to-gcp.d.ts +0 -67
- package/dist/deploy-to-gcp.d.ts.map +0 -1
- package/dist/deploy-to-gcp.js +0 -268
- package/dist/deploy-to-gcp.js.map +0 -1
- package/dist/deploy-to-runpod.d.ts +0 -53
- package/dist/deploy-to-runpod.d.ts.map +0 -1
- package/dist/deploy-to-runpod.js +0 -207
- package/dist/deploy-to-runpod.js.map +0 -1
- package/dist/fly.d.ts +0 -40
- package/dist/fly.d.ts.map +0 -1
- package/dist/fly.js +0 -291
- package/dist/fly.js.map +0 -1
- package/dist/gcp.d.ts +0 -59
- package/dist/gcp.d.ts.map +0 -1
- package/dist/gcp.js +0 -339
- package/dist/gcp.js.map +0 -1
- package/dist/google-cloud-run-api.d.ts +0 -134
- package/dist/google-cloud-run-api.d.ts.map +0 -1
- package/dist/google-cloud-run-api.js +0 -532
- package/dist/google-cloud-run-api.js.map +0 -1
- package/dist/huggingface.d.ts +0 -69
- package/dist/huggingface.d.ts.map +0 -1
- package/dist/huggingface.js +0 -346
- package/dist/huggingface.js.map +0 -1
- package/dist/railway.d.ts +0 -65
- package/dist/railway.d.ts.map +0 -1
- package/dist/railway.js +0 -284
- package/dist/railway.js.map +0 -1
- package/dist/runpod-api.d.ts +0 -206
- package/dist/runpod-api.d.ts.map +0 -1
- package/dist/runpod-api.js +0 -703
- package/dist/runpod-api.js.map +0 -1
- package/dist/runpod.d.ts +0 -82
- package/dist/runpod.d.ts.map +0 -1
- package/dist/runpod.js +0 -188
- package/dist/runpod.js.map +0 -1
- package/dist/storage-routes.d.ts +0 -55
- package/dist/storage-routes.d.ts.map +0 -1
- package/dist/storage-routes.js +0 -160
- package/dist/storage-routes.js.map +0 -1
- package/dist/sync.d.ts +0 -38
- package/dist/sync.d.ts.map +0 -1
- package/dist/sync.js +0 -130
- package/dist/sync.js.map +0 -1
package/dist/huggingface.js
DELETED
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HuggingFace Spaces deployment implementation for NodeTool.
|
|
3
|
-
*
|
|
4
|
-
* Handles deployment to HuggingFace Spaces (Docker type), including:
|
|
5
|
-
* - Dockerfile generation from image spec
|
|
6
|
-
* - HF Space repository creation and management
|
|
7
|
-
* - Git-based deployment (push Dockerfile to HF repo, Spaces builds it)
|
|
8
|
-
* - Space metadata via README.md frontmatter
|
|
9
|
-
*/
|
|
10
|
-
import { execFile } from "node:child_process";
|
|
11
|
-
import { promisify } from "node:util";
|
|
12
|
-
import * as fs from "node:fs/promises";
|
|
13
|
-
import * as path from "node:path";
|
|
14
|
-
import * as os from "node:os";
|
|
15
|
-
import { loadImageSpec } from "./image-spec.js";
|
|
16
|
-
import { generateDockerfile } from "./image-builder.js";
|
|
17
|
-
import { StateManager } from "./state.js";
|
|
18
|
-
import { DeploymentStatus } from "./deployment-config.js";
|
|
19
|
-
const execFileAsync = promisify(execFile);
|
|
20
|
-
// ---------------------------------------------------------------------------
|
|
21
|
-
// Helpers
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
/**
|
|
24
|
-
* Run the `huggingface-cli` command and return stdout.
|
|
25
|
-
* Throws a descriptive error when the CLI is not installed.
|
|
26
|
-
*/
|
|
27
|
-
async function hfCli(args, opts) {
|
|
28
|
-
try {
|
|
29
|
-
const { stdout } = await execFileAsync("huggingface-cli", args, {
|
|
30
|
-
timeout: opts?.timeout ?? 60_000,
|
|
31
|
-
cwd: opts?.cwd
|
|
32
|
-
});
|
|
33
|
-
return stdout;
|
|
34
|
-
}
|
|
35
|
-
catch (e) {
|
|
36
|
-
const msg = e instanceof Error ? e.message : String(e);
|
|
37
|
-
if (msg.includes("ENOENT")) {
|
|
38
|
-
throw new Error("huggingface-cli not found. Install it with: pip install huggingface_hub[cli]\n" +
|
|
39
|
-
"See https://huggingface.co/docs/huggingface_hub/guides/cli for details.");
|
|
40
|
-
}
|
|
41
|
-
throw new Error(`huggingface-cli failed: ${msg}`);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Run a git command and return stdout.
|
|
46
|
-
*/
|
|
47
|
-
async function git(args, opts) {
|
|
48
|
-
try {
|
|
49
|
-
const { stdout } = await execFileAsync("git", args, {
|
|
50
|
-
timeout: opts?.timeout ?? 60_000,
|
|
51
|
-
cwd: opts?.cwd
|
|
52
|
-
});
|
|
53
|
-
return stdout;
|
|
54
|
-
}
|
|
55
|
-
catch (e) {
|
|
56
|
-
const msg = e instanceof Error ? e.message : String(e);
|
|
57
|
-
throw new Error(`git command failed: ${msg}`);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Generate the README.md content with HuggingFace Spaces YAML frontmatter.
|
|
62
|
-
*/
|
|
63
|
-
function generateSpaceReadme(deployment) {
|
|
64
|
-
const frontmatter = [
|
|
65
|
-
"---",
|
|
66
|
-
"title: NodeTool",
|
|
67
|
-
'emoji: "\\U0001F527"',
|
|
68
|
-
"colorFrom: blue",
|
|
69
|
-
"colorTo: purple",
|
|
70
|
-
"sdk: docker",
|
|
71
|
-
"app_port: 7777"
|
|
72
|
-
];
|
|
73
|
-
if (deployment.hardware) {
|
|
74
|
-
frontmatter.push(`hardware: ${deployment.hardware}`);
|
|
75
|
-
}
|
|
76
|
-
frontmatter.push("pinned: false");
|
|
77
|
-
frontmatter.push("---");
|
|
78
|
-
frontmatter.push("");
|
|
79
|
-
return frontmatter.join("\n");
|
|
80
|
-
}
|
|
81
|
-
// ---------------------------------------------------------------------------
|
|
82
|
-
// HuggingFaceDeployer class
|
|
83
|
-
// ---------------------------------------------------------------------------
|
|
84
|
-
/**
|
|
85
|
-
* Handles deployment to HuggingFace Spaces.
|
|
86
|
-
*
|
|
87
|
-
* HF Spaces with Docker type build from a Dockerfile pushed to a git repo.
|
|
88
|
-
* This deployer generates the Dockerfile from the image spec, pushes it to
|
|
89
|
-
* the HF Space repository, and lets HuggingFace handle the build and deploy.
|
|
90
|
-
*/
|
|
91
|
-
export class HuggingFaceDeployer {
|
|
92
|
-
deploymentName;
|
|
93
|
-
deployment;
|
|
94
|
-
stateManager;
|
|
95
|
-
constructor(deploymentName, deployment, stateManager) {
|
|
96
|
-
this.deploymentName = deploymentName;
|
|
97
|
-
this.deployment = deployment;
|
|
98
|
-
this.stateManager = stateManager ?? new StateManager();
|
|
99
|
-
}
|
|
100
|
-
// ---------- Public API ----------
|
|
101
|
-
/**
|
|
102
|
-
* Generate a deployment plan showing what changes will be made.
|
|
103
|
-
*/
|
|
104
|
-
async plan() {
|
|
105
|
-
const planResult = {
|
|
106
|
-
deployment_name: this.deploymentName,
|
|
107
|
-
type: "huggingface",
|
|
108
|
-
repo: this.deployment.repo,
|
|
109
|
-
changes: [],
|
|
110
|
-
will_create: [],
|
|
111
|
-
will_update: [],
|
|
112
|
-
will_destroy: []
|
|
113
|
-
};
|
|
114
|
-
const changes = planResult["changes"];
|
|
115
|
-
const willCreate = planResult["will_create"];
|
|
116
|
-
const currentState = await this.stateManager.readState(this.deploymentName);
|
|
117
|
-
if (!currentState || !currentState["last_deployed"]) {
|
|
118
|
-
changes.push("Initial deployment - will create HF Space repository");
|
|
119
|
-
willCreate.push(`HuggingFace Space: ${this.deployment.repo}`);
|
|
120
|
-
willCreate.push("Dockerfile (generated from image spec)");
|
|
121
|
-
willCreate.push("README.md (Space metadata)");
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
changes.push("Will update Dockerfile and push to HF Space");
|
|
125
|
-
planResult["will_update"].push(`HuggingFace Space: ${this.deployment.repo}`);
|
|
126
|
-
}
|
|
127
|
-
if (this.deployment.hardware) {
|
|
128
|
-
changes.push(`Hardware: ${this.deployment.hardware}`);
|
|
129
|
-
}
|
|
130
|
-
if (this.deployment.environment) {
|
|
131
|
-
const envKeys = Object.keys(this.deployment.environment);
|
|
132
|
-
if (envKeys.length > 0) {
|
|
133
|
-
changes.push(`Environment variables: ${envKeys.join(", ")}`);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return planResult;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Apply the deployment to HuggingFace Spaces.
|
|
140
|
-
*
|
|
141
|
-
* Steps:
|
|
142
|
-
* 1. Load image spec and generate Dockerfile (not built locally)
|
|
143
|
-
* 2. Create or clone the HF Space repository
|
|
144
|
-
* 3. Write Dockerfile and README.md with Space metadata
|
|
145
|
-
* 4. Git commit and push to HuggingFace
|
|
146
|
-
* 5. HF Spaces auto-builds and deploys from the Dockerfile
|
|
147
|
-
* 6. Update deployment state
|
|
148
|
-
*
|
|
149
|
-
* @param opts.dryRun If true, only show what would be done without executing.
|
|
150
|
-
*/
|
|
151
|
-
async apply(opts) {
|
|
152
|
-
if (!/^[\w-]+\/[\w.-]+$/.test(this.deployment.repo)) {
|
|
153
|
-
throw new Error(`Invalid HuggingFace repo: "${this.deployment.repo}". Expected "owner/name"`);
|
|
154
|
-
}
|
|
155
|
-
if (opts?.dryRun) {
|
|
156
|
-
return (await this.plan());
|
|
157
|
-
}
|
|
158
|
-
const results = {
|
|
159
|
-
deployment_name: this.deploymentName,
|
|
160
|
-
status: "success",
|
|
161
|
-
steps: [],
|
|
162
|
-
errors: []
|
|
163
|
-
};
|
|
164
|
-
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "nodetool-hf-"));
|
|
165
|
-
try {
|
|
166
|
-
await this.stateManager.updateDeploymentStatus(this.deploymentName, DeploymentStatus.DEPLOYING);
|
|
167
|
-
// 1. Generate Dockerfile from image spec
|
|
168
|
-
results.steps.push("Loading image spec...");
|
|
169
|
-
const spec = await loadImageSpec(this.deployment.image);
|
|
170
|
-
results.steps.push("Generating Dockerfile...");
|
|
171
|
-
const dockerfileContent = generateDockerfile(spec);
|
|
172
|
-
// 2. Create or clone the HF repo
|
|
173
|
-
results.steps.push(`Setting up HuggingFace Space: ${this.deployment.repo}...`);
|
|
174
|
-
const token = process.env.HF_TOKEN || process.env.HUGGING_FACE_HUB_TOKEN;
|
|
175
|
-
const authArgs = token
|
|
176
|
-
? ["-c", `http.extraHeader=Authorization: Bearer ${token}`]
|
|
177
|
-
: [];
|
|
178
|
-
await this.ensureRepo(tmpDir, results, authArgs);
|
|
179
|
-
const repoDir = path.join(tmpDir, "repo");
|
|
180
|
-
// 3. Write Dockerfile
|
|
181
|
-
results.steps.push("Writing Dockerfile...");
|
|
182
|
-
await fs.writeFile(path.join(repoDir, "Dockerfile"), dockerfileContent, "utf-8");
|
|
183
|
-
// 4. Write README.md with Space metadata
|
|
184
|
-
results.steps.push("Writing Space metadata (README.md)...");
|
|
185
|
-
const readme = generateSpaceReadme(this.deployment);
|
|
186
|
-
await fs.writeFile(path.join(repoDir, "README.md"), readme, "utf-8");
|
|
187
|
-
// 5. Git commit and push
|
|
188
|
-
results.steps.push("Committing and pushing to HuggingFace...");
|
|
189
|
-
await git(["config", "user.email", "deploy@nodetool.ai"], {
|
|
190
|
-
cwd: repoDir
|
|
191
|
-
});
|
|
192
|
-
await git(["config", "user.name", "NodeTool Deploy"], { cwd: repoDir });
|
|
193
|
-
await git(["add", "-A"], { cwd: repoDir });
|
|
194
|
-
// Check if there are changes to commit
|
|
195
|
-
try {
|
|
196
|
-
await git(["diff", "--cached", "--quiet"], { cwd: repoDir });
|
|
197
|
-
results.steps.push("No changes detected, skipping commit");
|
|
198
|
-
}
|
|
199
|
-
catch {
|
|
200
|
-
// diff --quiet exits non-zero when there are changes
|
|
201
|
-
await git(["commit", "-m", "Deploy NodeTool via nodetool deploy"], {
|
|
202
|
-
cwd: repoDir
|
|
203
|
-
});
|
|
204
|
-
await git([...authArgs, "push", "origin", "main"], {
|
|
205
|
-
cwd: repoDir,
|
|
206
|
-
timeout: 120_000
|
|
207
|
-
});
|
|
208
|
-
results.steps.push("Pushed to HuggingFace Space");
|
|
209
|
-
}
|
|
210
|
-
results.steps.push("HuggingFace Spaces will now build and deploy the Dockerfile");
|
|
211
|
-
// 6. Update state
|
|
212
|
-
await this.stateManager.writeState(this.deploymentName, {
|
|
213
|
-
status: DeploymentStatus.SERVING,
|
|
214
|
-
repo: this.deployment.repo,
|
|
215
|
-
space_url: `https://huggingface.co/spaces/${this.deployment.repo}`
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
catch (e) {
|
|
219
|
-
results.status = "error";
|
|
220
|
-
results.errors.push(e instanceof Error ? e.message : String(e));
|
|
221
|
-
await this.stateManager.updateDeploymentStatus(this.deploymentName, DeploymentStatus.ERROR);
|
|
222
|
-
throw e;
|
|
223
|
-
}
|
|
224
|
-
finally {
|
|
225
|
-
// Clean up temp directory
|
|
226
|
-
try {
|
|
227
|
-
await fs.rm(tmpDir, { recursive: true, force: true });
|
|
228
|
-
}
|
|
229
|
-
catch {
|
|
230
|
-
// ignore cleanup errors
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
return results;
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Destroy the HuggingFace Space.
|
|
237
|
-
*/
|
|
238
|
-
async destroy() {
|
|
239
|
-
const results = {
|
|
240
|
-
deployment_name: this.deploymentName,
|
|
241
|
-
status: "success",
|
|
242
|
-
steps: [],
|
|
243
|
-
errors: []
|
|
244
|
-
};
|
|
245
|
-
try {
|
|
246
|
-
results.steps.push(`Deleting HuggingFace Space: ${this.deployment.repo}...`);
|
|
247
|
-
await hfCli([
|
|
248
|
-
"repo",
|
|
249
|
-
"delete",
|
|
250
|
-
this.deployment.repo,
|
|
251
|
-
"--type",
|
|
252
|
-
"space",
|
|
253
|
-
"--yes"
|
|
254
|
-
]);
|
|
255
|
-
results.steps.push("Space deleted successfully");
|
|
256
|
-
await this.stateManager.updateDeploymentStatus(this.deploymentName, DeploymentStatus.DESTROYED);
|
|
257
|
-
}
|
|
258
|
-
catch (e) {
|
|
259
|
-
results.status = "error";
|
|
260
|
-
results.errors.push(e instanceof Error ? e.message : String(e));
|
|
261
|
-
await this.stateManager.updateDeploymentStatus(this.deploymentName, DeploymentStatus.ERROR);
|
|
262
|
-
throw e;
|
|
263
|
-
}
|
|
264
|
-
return results;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Get current deployment status.
|
|
268
|
-
*/
|
|
269
|
-
async status() {
|
|
270
|
-
const statusInfo = {
|
|
271
|
-
deployment_name: this.deploymentName,
|
|
272
|
-
type: "huggingface",
|
|
273
|
-
repo: this.deployment.repo,
|
|
274
|
-
space_url: `https://huggingface.co/spaces/${this.deployment.repo}`
|
|
275
|
-
};
|
|
276
|
-
// Get state from state manager
|
|
277
|
-
const state = await this.stateManager.readState(this.deploymentName);
|
|
278
|
-
if (state) {
|
|
279
|
-
statusInfo["status"] = state["status"] ?? "unknown";
|
|
280
|
-
statusInfo["last_deployed"] = state["last_deployed"];
|
|
281
|
-
}
|
|
282
|
-
// Try to get live status from HF
|
|
283
|
-
try {
|
|
284
|
-
const output = await hfCli([
|
|
285
|
-
"repo",
|
|
286
|
-
"info",
|
|
287
|
-
this.deployment.repo,
|
|
288
|
-
"--type",
|
|
289
|
-
"space"
|
|
290
|
-
]);
|
|
291
|
-
statusInfo["live_status"] = output.trim();
|
|
292
|
-
}
|
|
293
|
-
catch (e) {
|
|
294
|
-
statusInfo["live_status_error"] =
|
|
295
|
-
e instanceof Error ? e.message : String(e);
|
|
296
|
-
}
|
|
297
|
-
return statusInfo;
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* Get logs from the HuggingFace Space.
|
|
301
|
-
*
|
|
302
|
-
* HuggingFace Spaces does not expose logs via the CLI. Logs are available
|
|
303
|
-
* through the web UI at the Space URL.
|
|
304
|
-
*/
|
|
305
|
-
async logs(_opts) {
|
|
306
|
-
const spaceUrl = `https://huggingface.co/spaces/${this.deployment.repo}`;
|
|
307
|
-
return (`HuggingFace Spaces logs are not available via the CLI.\n` +
|
|
308
|
-
`View logs in the web UI: ${spaceUrl}\n` +
|
|
309
|
-
`Navigate to the "Logs" tab in your Space settings.`);
|
|
310
|
-
}
|
|
311
|
-
// ---------- Private helpers ----------
|
|
312
|
-
/**
|
|
313
|
-
* Ensure the HF Space repository exists and is cloned to the target directory.
|
|
314
|
-
* Creates the repo if it does not exist, then clones it.
|
|
315
|
-
*/
|
|
316
|
-
async ensureRepo(targetDir, results, authArgs = []) {
|
|
317
|
-
// Try to create the repo (may already exist)
|
|
318
|
-
try {
|
|
319
|
-
await hfCli([
|
|
320
|
-
"repo",
|
|
321
|
-
"create",
|
|
322
|
-
this.deployment.repo,
|
|
323
|
-
"--type",
|
|
324
|
-
"space",
|
|
325
|
-
"--space_sdk",
|
|
326
|
-
"docker",
|
|
327
|
-
"--yes"
|
|
328
|
-
]);
|
|
329
|
-
results.steps.push(`Created HuggingFace Space: ${this.deployment.repo}`);
|
|
330
|
-
}
|
|
331
|
-
catch (e) {
|
|
332
|
-
const msg = e instanceof Error ? e.message : String(e);
|
|
333
|
-
// Ignore "already exists" errors
|
|
334
|
-
if (!msg.includes("already exists") && !msg.includes("409")) {
|
|
335
|
-
throw e;
|
|
336
|
-
}
|
|
337
|
-
results.steps.push(`HuggingFace Space already exists: ${this.deployment.repo}`);
|
|
338
|
-
}
|
|
339
|
-
// Clone into a subdirectory to avoid TOCTOU race on the temp dir
|
|
340
|
-
const repoDir = path.join(targetDir, "repo");
|
|
341
|
-
const repoUrl = `https://huggingface.co/spaces/${this.deployment.repo}`;
|
|
342
|
-
await git([...authArgs, "clone", repoUrl, repoDir], { timeout: 120_000 });
|
|
343
|
-
results.steps.push(`Cloned Space repository: ${this.deployment.repo}`);
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
//# sourceMappingURL=huggingface.js.map
|
package/dist/huggingface.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface.js","sourceRoot":"","sources":["../src/huggingface.ts"],"names":[],"mappings":"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"}
|
package/dist/railway.d.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Railway deployment implementation for NodeTool.
|
|
3
|
-
*
|
|
4
|
-
* Handles deployment to Railway using the `railway` CLI, including:
|
|
5
|
-
* - Docker image building and deployment
|
|
6
|
-
* - Environment variable configuration
|
|
7
|
-
* - Service management (create, destroy, status, logs)
|
|
8
|
-
*/
|
|
9
|
-
import { StateManager } from "./state.js";
|
|
10
|
-
import type { RailwayDeployment } from "./deployment-config.js";
|
|
11
|
-
import type { DeployResult } from "./self-hosted.js";
|
|
12
|
-
/**
|
|
13
|
-
* Handles deployment to Railway.
|
|
14
|
-
*
|
|
15
|
-
* Orchestrates the entire Railway deployment process including:
|
|
16
|
-
* - Docker image building from an image spec
|
|
17
|
-
* - Linking to a Railway project
|
|
18
|
-
* - Setting environment variables
|
|
19
|
-
* - Deploying the service
|
|
20
|
-
* - State management
|
|
21
|
-
*/
|
|
22
|
-
export declare class RailwayDeployer {
|
|
23
|
-
readonly deploymentName: string;
|
|
24
|
-
readonly deployment: RailwayDeployment;
|
|
25
|
-
readonly stateManager: StateManager;
|
|
26
|
-
constructor(deploymentName: string, deployment: RailwayDeployment, stateManager?: StateManager);
|
|
27
|
-
/**
|
|
28
|
-
* Generate a deployment plan showing what changes will be made.
|
|
29
|
-
*/
|
|
30
|
-
plan(): Promise<Record<string, unknown>>;
|
|
31
|
-
/**
|
|
32
|
-
* Apply the deployment to Railway.
|
|
33
|
-
*
|
|
34
|
-
* Steps:
|
|
35
|
-
* 1. Load image spec and build Docker image
|
|
36
|
-
* 2. Link to Railway project
|
|
37
|
-
* 3. Set environment variables
|
|
38
|
-
* 4. Deploy with `railway up`
|
|
39
|
-
* 5. Update deployment state
|
|
40
|
-
*
|
|
41
|
-
* @param opts.dryRun If true, only show what would be done without executing.
|
|
42
|
-
*/
|
|
43
|
-
apply(opts?: {
|
|
44
|
-
dryRun?: boolean;
|
|
45
|
-
}): Promise<DeployResult>;
|
|
46
|
-
/**
|
|
47
|
-
* Destroy the Railway service.
|
|
48
|
-
*/
|
|
49
|
-
destroy(): Promise<DeployResult>;
|
|
50
|
-
/**
|
|
51
|
-
* Get current deployment status from Railway.
|
|
52
|
-
*/
|
|
53
|
-
status(): Promise<Record<string, unknown>>;
|
|
54
|
-
/**
|
|
55
|
-
* Get logs from the Railway service.
|
|
56
|
-
*
|
|
57
|
-
* @param opts.follow Stream logs in real time.
|
|
58
|
-
* @param opts.tail Number of recent log lines to fetch.
|
|
59
|
-
*/
|
|
60
|
-
logs(opts?: {
|
|
61
|
-
follow?: boolean;
|
|
62
|
-
tail?: number;
|
|
63
|
-
}): Promise<string>;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=railway.d.ts.map
|
package/dist/railway.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"railway.d.ts","sourceRoot":"","sources":["../src/railway.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAsCrD;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;gBAGlC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,iBAAiB,EAC7B,YAAY,CAAC,EAAE,YAAY;IAS7B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAuC9C;;;;;;;;;;;OAWG;IACG,KAAK,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IA0F/D;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;IAgDtC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAqChD;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAgCxE"}
|