@opencomputer/cli 0.6.6 → 0.6.7
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/api.d.ts +70 -0
- package/dist/api.js +38 -4
- package/dist/api.js.map +1 -1
- package/dist/commands.js +263 -0
- package/dist/commands.js.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/project-local.d.ts +7 -0
- package/dist/project-local.js +106 -0
- package/dist/project-local.js.map +1 -0
- package/dist/project-local.test.d.ts +1 -0
- package/dist/project-local.test.js +30 -0
- package/dist/project-local.test.js.map +1 -0
- package/dist/template-local.d.ts +6 -0
- package/dist/template-local.js +57 -0
- package/dist/template-local.js.map +1 -0
- package/dist/template.d.ts +72 -0
- package/dist/template.js +326 -0
- package/dist/template.js.map +1 -0
- package/dist/template.test.d.ts +1 -0
- package/dist/template.test.js +109 -0
- package/dist/template.test.js.map +1 -0
- package/package.json +1 -1
package/dist/api.d.ts
CHANGED
|
@@ -85,6 +85,66 @@ export interface AgentRuntimeVariableMetadata {
|
|
|
85
85
|
createdAt: string;
|
|
86
86
|
updatedAt: string;
|
|
87
87
|
}
|
|
88
|
+
export interface TemplateInspection {
|
|
89
|
+
id: string;
|
|
90
|
+
repository: {
|
|
91
|
+
url: string;
|
|
92
|
+
fullName: string;
|
|
93
|
+
defaultBranch: "main";
|
|
94
|
+
commitSha: string;
|
|
95
|
+
};
|
|
96
|
+
template: {
|
|
97
|
+
name: string;
|
|
98
|
+
description: string;
|
|
99
|
+
documentation?: string;
|
|
100
|
+
defaultProjectName?: string;
|
|
101
|
+
firstRun?: {
|
|
102
|
+
agent: string;
|
|
103
|
+
prompt: string;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
agents: Array<{
|
|
107
|
+
id: string;
|
|
108
|
+
name: string;
|
|
109
|
+
}>;
|
|
110
|
+
requirements: {
|
|
111
|
+
secrets: Array<{
|
|
112
|
+
name: string;
|
|
113
|
+
description?: string;
|
|
114
|
+
documentation?: string;
|
|
115
|
+
required?: boolean;
|
|
116
|
+
agentId?: string;
|
|
117
|
+
allowedOrigins: string[];
|
|
118
|
+
}>;
|
|
119
|
+
runtimeVariables: Array<{
|
|
120
|
+
name: string;
|
|
121
|
+
description?: string;
|
|
122
|
+
documentation?: string;
|
|
123
|
+
required: boolean;
|
|
124
|
+
example?: string;
|
|
125
|
+
agentId?: string;
|
|
126
|
+
}>;
|
|
127
|
+
connections: Array<{
|
|
128
|
+
id: string;
|
|
129
|
+
description?: string;
|
|
130
|
+
provider: string;
|
|
131
|
+
permissions: string[];
|
|
132
|
+
}>;
|
|
133
|
+
};
|
|
134
|
+
expiresAt: string;
|
|
135
|
+
}
|
|
136
|
+
export interface TemplateInstallation {
|
|
137
|
+
id: string;
|
|
138
|
+
inspectionId: string;
|
|
139
|
+
projectId: string;
|
|
140
|
+
projectAgentId: string;
|
|
141
|
+
projectUrl: string;
|
|
142
|
+
state: "awaiting_configuration" | "creating_project" | "building" | "deploying" | "ready" | "failed";
|
|
143
|
+
error?: {
|
|
144
|
+
stage: string;
|
|
145
|
+
message: string;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
88
148
|
export interface ManagedAgentWebhook {
|
|
89
149
|
id: string;
|
|
90
150
|
projectId: string;
|
|
@@ -160,6 +220,7 @@ export declare class OpenComputerClient {
|
|
|
160
220
|
private readonly config;
|
|
161
221
|
private readonly idempotencyKey?;
|
|
162
222
|
constructor(config: ResolvedConfig, idempotencyKey?: string | undefined);
|
|
223
|
+
private response;
|
|
163
224
|
private request;
|
|
164
225
|
startLogin(): Promise<{
|
|
165
226
|
device_code: string;
|
|
@@ -184,6 +245,15 @@ export declare class OpenComputerClient {
|
|
|
184
245
|
agents(): Promise<ManagedAgentSummary[]>;
|
|
185
246
|
projects(): Promise<ManagedProject[]>;
|
|
186
247
|
createProject(name: string, slug: string): Promise<ManagedProject>;
|
|
248
|
+
projectSourceArchive(projectId: string): Promise<Response>;
|
|
249
|
+
inspectTemplate(repositoryUrl: string): Promise<TemplateInspection>;
|
|
250
|
+
createTemplateInstallation(input: {
|
|
251
|
+
inspectionId: string;
|
|
252
|
+
projectName: string;
|
|
253
|
+
idempotencyKey: string;
|
|
254
|
+
}): Promise<TemplateInstallation>;
|
|
255
|
+
finalizeTemplateInstallation(installationId: string): Promise<TemplateInstallation>;
|
|
256
|
+
templateInstallation(installationId: string): Promise<TemplateInstallation>;
|
|
187
257
|
secrets(input: {
|
|
188
258
|
projectId: string;
|
|
189
259
|
environment?: "development" | "production";
|
package/dist/api.js
CHANGED
|
@@ -28,7 +28,7 @@ export class OpenComputerClient {
|
|
|
28
28
|
this.config = config;
|
|
29
29
|
this.idempotencyKey = idempotencyKey;
|
|
30
30
|
}
|
|
31
|
-
async
|
|
31
|
+
async response(path, init = {}, authenticated = true) {
|
|
32
32
|
const headers = new Headers(init.headers);
|
|
33
33
|
if (init.body && !headers.has("content-type")) {
|
|
34
34
|
headers.set("content-type", "application/json");
|
|
@@ -57,12 +57,17 @@ export class OpenComputerClient {
|
|
|
57
57
|
redirect: "manual",
|
|
58
58
|
signal: AbortSignal.timeout(30_000),
|
|
59
59
|
});
|
|
60
|
-
if (response.status === 204)
|
|
61
|
-
return undefined;
|
|
62
|
-
const body = await response.json().catch(() => undefined);
|
|
63
60
|
if (!response.ok) {
|
|
61
|
+
const body = await response.json().catch(() => undefined);
|
|
64
62
|
throw new APIError(errorMessage(body, response.status), response.status);
|
|
65
63
|
}
|
|
64
|
+
return response;
|
|
65
|
+
}
|
|
66
|
+
async request(path, init = {}, authenticated = true) {
|
|
67
|
+
const response = await this.response(path, init, authenticated);
|
|
68
|
+
if (response.status === 204)
|
|
69
|
+
return undefined;
|
|
70
|
+
const body = await response.json().catch(() => undefined);
|
|
66
71
|
return body;
|
|
67
72
|
}
|
|
68
73
|
startLogin() {
|
|
@@ -97,6 +102,35 @@ export class OpenComputerClient {
|
|
|
97
102
|
body: JSON.stringify({ name, slug }),
|
|
98
103
|
});
|
|
99
104
|
}
|
|
105
|
+
projectSourceArchive(projectId) {
|
|
106
|
+
return this.response(`/api/managed-agents/projects/${encodeURIComponent(projectId)}/source-archive`);
|
|
107
|
+
}
|
|
108
|
+
async inspectTemplate(repositoryUrl) {
|
|
109
|
+
const deadline = Date.now() + 10 * 60_000;
|
|
110
|
+
for (;;) {
|
|
111
|
+
const result = await this.request("/api/managed-agents/template-inspections", {
|
|
112
|
+
method: "POST",
|
|
113
|
+
body: JSON.stringify({ repositoryUrl }),
|
|
114
|
+
});
|
|
115
|
+
if (result.status !== "preparing") {
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
const preparing = result;
|
|
119
|
+
if (Date.now() >= deadline) {
|
|
120
|
+
throw new Error("Template preparation is still running; try again shortly");
|
|
121
|
+
}
|
|
122
|
+
await new Promise((resolvePromise) => setTimeout(resolvePromise, Math.max(500, preparing.retryAfterMs)));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
createTemplateInstallation(input) {
|
|
126
|
+
return this.request("/api/managed-agents/template-installations", { method: "POST", body: JSON.stringify(input) });
|
|
127
|
+
}
|
|
128
|
+
finalizeTemplateInstallation(installationId) {
|
|
129
|
+
return this.request(`/api/managed-agents/template-installations/${encodeURIComponent(installationId)}/finalize`, { method: "POST" });
|
|
130
|
+
}
|
|
131
|
+
templateInstallation(installationId) {
|
|
132
|
+
return this.request(`/api/managed-agents/template-installations/${encodeURIComponent(installationId)}`);
|
|
133
|
+
}
|
|
100
134
|
async secrets(input) {
|
|
101
135
|
const query = new URLSearchParams();
|
|
102
136
|
if (input.environment)
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.js
CHANGED
|
@@ -7,6 +7,10 @@ import { ensureProjectBinding, findOpenComputerProjectRoot, } from "./binding.js
|
|
|
7
7
|
import { assertStarterTarget, buildAgentArtifact, findAgentRoot, initializeAgentProject, } from "./project.js";
|
|
8
8
|
import { developmentAgentReference, parseSessionCommand, resolveProjectAgent, } from "./session-command.js";
|
|
9
9
|
import { formatSessionEvent } from "./session-prompt.js";
|
|
10
|
+
import { buildTemplateProject, normalizeTemplateRepositoryUrl, readTemplateManifest, templateDeployUrl, } from "./template.js";
|
|
11
|
+
import { defaultTemplateDirectory, materializeTemplateCheckout, } from "./template-local.js";
|
|
12
|
+
import { materializeProjectArchive } from "./project-local.js";
|
|
13
|
+
import { createInterface } from "node:readline/promises";
|
|
10
14
|
import { doctorProject } from "./doctor.js";
|
|
11
15
|
import { CLIError } from "./errors.js";
|
|
12
16
|
export function deploymentAlias(requestedAlias) {
|
|
@@ -61,6 +65,49 @@ function consumeModelAccessProvider(args) {
|
|
|
61
65
|
}
|
|
62
66
|
return "codex";
|
|
63
67
|
}
|
|
68
|
+
async function readTemplateSecretValue() {
|
|
69
|
+
if (!process.stdin.isTTY) {
|
|
70
|
+
const chunks = [];
|
|
71
|
+
for await (const chunk of process.stdin) {
|
|
72
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
73
|
+
}
|
|
74
|
+
const value = Buffer.concat(chunks).toString("utf8").replace(/\r?\n$/, "");
|
|
75
|
+
if (!value)
|
|
76
|
+
throw new Error("Secret value was empty");
|
|
77
|
+
return value;
|
|
78
|
+
}
|
|
79
|
+
process.stderr.write("Secret value (hidden): ");
|
|
80
|
+
process.stdin.setRawMode(true);
|
|
81
|
+
process.stdin.resume();
|
|
82
|
+
return new Promise((resolve, reject) => {
|
|
83
|
+
let value = "";
|
|
84
|
+
const finish = (error) => {
|
|
85
|
+
process.stdin.off("data", onData);
|
|
86
|
+
process.stdin.setRawMode(false);
|
|
87
|
+
process.stdin.pause();
|
|
88
|
+
process.stderr.write("\n");
|
|
89
|
+
if (error)
|
|
90
|
+
reject(error);
|
|
91
|
+
else if (!value)
|
|
92
|
+
reject(new Error("Secret value was empty"));
|
|
93
|
+
else
|
|
94
|
+
resolve(value);
|
|
95
|
+
};
|
|
96
|
+
const onData = (chunk) => {
|
|
97
|
+
for (const byte of chunk) {
|
|
98
|
+
if (byte === 3)
|
|
99
|
+
return finish(new Error("Secret entry cancelled"));
|
|
100
|
+
if (byte === 10 || byte === 13)
|
|
101
|
+
return finish();
|
|
102
|
+
if (byte === 8 || byte === 127)
|
|
103
|
+
value = value.slice(0, -1);
|
|
104
|
+
else
|
|
105
|
+
value += String.fromCharCode(byte);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
process.stdin.on("data", onData);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
64
111
|
async function readStdinValue(enabled) {
|
|
65
112
|
if (!enabled) {
|
|
66
113
|
throw new CLIError("value_stdin_required", "A value must be supplied through standard input.", "Pipe the value into this command and add `--value-stdin`.");
|
|
@@ -358,8 +405,224 @@ async function runAgent(client, agent, prompt, keep, json, verbose, idempotencyK
|
|
|
358
405
|
}
|
|
359
406
|
export async function runCommand(command, rawArgs, globals) {
|
|
360
407
|
const args = [...rawArgs];
|
|
408
|
+
if (command === "template" && args[0] === "validate") {
|
|
409
|
+
args.shift();
|
|
410
|
+
const repositoryUrl = option(args, "--repository-url");
|
|
411
|
+
const appUrl = option(args, "--app-url");
|
|
412
|
+
const directory = args.shift() ?? process.cwd();
|
|
413
|
+
if (args.length)
|
|
414
|
+
throw new Error(`Unexpected argument: ${args[0]}`);
|
|
415
|
+
const manifest = await readTemplateManifest(directory);
|
|
416
|
+
const deployUrl = repositoryUrl
|
|
417
|
+
? templateDeployUrl(repositoryUrl, appUrl)
|
|
418
|
+
: undefined;
|
|
419
|
+
if (globals.json) {
|
|
420
|
+
printJSON({ file: "oc-template.toml", manifest, deployUrl });
|
|
421
|
+
}
|
|
422
|
+
else {
|
|
423
|
+
process.stdout.write(`Valid template: ${manifest.template.name}\n` +
|
|
424
|
+
(deployUrl ? `Deploy URL: ${deployUrl}\n` : ""));
|
|
425
|
+
}
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
if (command === "template" && args[0] === "build") {
|
|
429
|
+
args.shift();
|
|
430
|
+
const output = option(args, "--output");
|
|
431
|
+
const directory = args.shift() ?? process.cwd();
|
|
432
|
+
if (args.length)
|
|
433
|
+
throw new Error(`Unexpected argument: ${args[0]}`);
|
|
434
|
+
const bundle = await buildTemplateProject(directory);
|
|
435
|
+
const serialized = `${JSON.stringify(bundle)}\n`;
|
|
436
|
+
if (output) {
|
|
437
|
+
const { writeFile } = await import("node:fs/promises");
|
|
438
|
+
await writeFile(output, serialized, { mode: 0o600 });
|
|
439
|
+
if (!globals.json)
|
|
440
|
+
process.stdout.write(`Built template bundle: ${output}\n`);
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
process.stdout.write(serialized);
|
|
444
|
+
}
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
361
447
|
const config = await resolveConfig(globals);
|
|
362
448
|
const client = new OpenComputerClient(config, globals.idempotencyKey);
|
|
449
|
+
if (command === "project" && args[0] === "clone") {
|
|
450
|
+
args.shift();
|
|
451
|
+
const directory = option(args, "--directory");
|
|
452
|
+
const projectId = args.shift();
|
|
453
|
+
if (!projectId || args.length) {
|
|
454
|
+
throw new Error("Usage: opencomputer project clone <project-id> [--directory <path>]");
|
|
455
|
+
}
|
|
456
|
+
const project = (await client.projects()).find((candidate) => candidate.id === projectId);
|
|
457
|
+
if (!project)
|
|
458
|
+
throw new Error(`Project not found: ${projectId}`);
|
|
459
|
+
const checkout = await materializeProjectArchive({
|
|
460
|
+
response: await client.projectSourceArchive(project.id),
|
|
461
|
+
directory: directory ?? project.slug,
|
|
462
|
+
});
|
|
463
|
+
const binding = await ensureProjectBinding(client, config, checkout.directory, {
|
|
464
|
+
project: project.id,
|
|
465
|
+
});
|
|
466
|
+
if (globals.json)
|
|
467
|
+
printJSON({ checkout, binding });
|
|
468
|
+
else {
|
|
469
|
+
process.stdout.write(`Cloned ${binding.projectName} (${binding.projectId}).\n\n` +
|
|
470
|
+
`Next:\n cd ${checkout.directory}\n npm install\n` +
|
|
471
|
+
` npm run deploy -- --watch --api-url ${config.apiUrl}\n`);
|
|
472
|
+
}
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
475
|
+
if (command === "template") {
|
|
476
|
+
const action = args.shift();
|
|
477
|
+
if (action === "clone") {
|
|
478
|
+
const commitSha = option(args, "--commit");
|
|
479
|
+
const project = option(args, "--project");
|
|
480
|
+
const directory = option(args, "--directory");
|
|
481
|
+
const repositoryUrl = args.shift();
|
|
482
|
+
if (!repositoryUrl || !commitSha || !project || args.length) {
|
|
483
|
+
throw new Error("Usage: opencomputer template clone <repository-url> --commit <sha> --project <id> [--directory <path>]");
|
|
484
|
+
}
|
|
485
|
+
const normalized = normalizeTemplateRepositoryUrl(repositoryUrl);
|
|
486
|
+
const checkout = await materializeTemplateCheckout(normalized, commitSha, directory);
|
|
487
|
+
const binding = await ensureProjectBinding(client, config, checkout.directory, { project });
|
|
488
|
+
if (globals.json)
|
|
489
|
+
printJSON({ checkout, binding });
|
|
490
|
+
else {
|
|
491
|
+
process.stdout.write(`Cloned ${normalized}@${commitSha.slice(0, 12)}\n` +
|
|
492
|
+
`Linked to ${binding.projectName} (${binding.projectId}).\n\n` +
|
|
493
|
+
`Next:\n cd ${checkout.directory}\n npm install\n npm run deploy -- --watch\n`);
|
|
494
|
+
}
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
if (action !== "deploy") {
|
|
498
|
+
throw new Error("Usage: opencomputer template <deploy|clone> ...");
|
|
499
|
+
}
|
|
500
|
+
const projectNameOption = option(args, "--project-name");
|
|
501
|
+
const directoryOption = option(args, "--directory");
|
|
502
|
+
const confirmed = flag(args, "--yes");
|
|
503
|
+
const repositoryUrl = args.shift();
|
|
504
|
+
if (!repositoryUrl) {
|
|
505
|
+
throw new Error("A GitHub repository URL is required");
|
|
506
|
+
}
|
|
507
|
+
if (args.length)
|
|
508
|
+
throw new Error(`Unexpected argument: ${args[0]}`);
|
|
509
|
+
const inspection = await client.inspectTemplate(normalizeTemplateRepositoryUrl(repositoryUrl));
|
|
510
|
+
if (!globals.json) {
|
|
511
|
+
process.stdout.write(`\n${inspection.template.name}\n${inspection.template.description}\n` +
|
|
512
|
+
`Source: ${inspection.repository.fullName}@${inspection.repository.commitSha.slice(0, 12)}\n` +
|
|
513
|
+
`Agents: ${inspection.agents.map((agent) => agent.name).join(", ")}\n` +
|
|
514
|
+
`Target: Development\n\n`);
|
|
515
|
+
}
|
|
516
|
+
if (inspection.requirements.connections.length) {
|
|
517
|
+
throw new Error("This template needs an interactive provider connection. Open its deploy URL in the dashboard to continue.");
|
|
518
|
+
}
|
|
519
|
+
const requiredSecrets = inspection.requirements.secrets.filter((requirement) => requirement.required !== false);
|
|
520
|
+
if (!process.stdin.isTTY && requiredSecrets.length) {
|
|
521
|
+
throw new Error(`Secret ${requiredSecrets[0].name} requires an interactive terminal; secret values are never accepted as command-line arguments`);
|
|
522
|
+
}
|
|
523
|
+
if ((!process.stdin.isTTY || !process.stdout.isTTY) && !projectNameOption) {
|
|
524
|
+
throw new Error("--project-name is required in non-interactive mode");
|
|
525
|
+
}
|
|
526
|
+
const terminal = process.stdin.isTTY && process.stdout.isTTY
|
|
527
|
+
? createInterface({ input: process.stdin, output: process.stdout })
|
|
528
|
+
: undefined;
|
|
529
|
+
let projectName = projectNameOption ??
|
|
530
|
+
inspection.template.defaultProjectName ??
|
|
531
|
+
inspection.template.name;
|
|
532
|
+
if (terminal && !projectNameOption) {
|
|
533
|
+
projectName =
|
|
534
|
+
(await terminal.question(`Project name [${projectName}]: `)).trim() ||
|
|
535
|
+
projectName;
|
|
536
|
+
}
|
|
537
|
+
if (terminal && !confirmed) {
|
|
538
|
+
const answer = (await terminal.question("Create this Development project? [y/N] "))
|
|
539
|
+
.trim()
|
|
540
|
+
.toLowerCase();
|
|
541
|
+
if (answer !== "y" && answer !== "yes") {
|
|
542
|
+
terminal.close();
|
|
543
|
+
throw new Error("Template deployment cancelled");
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
const checkout = await materializeTemplateCheckout(inspection.repository.url, inspection.repository.commitSha, directoryOption ?? defaultTemplateDirectory(inspection.repository.url));
|
|
547
|
+
const runtimeValues = new Map();
|
|
548
|
+
for (const requirement of inspection.requirements.runtimeVariables) {
|
|
549
|
+
if (!terminal) {
|
|
550
|
+
if (requirement.required) {
|
|
551
|
+
throw new Error(`Runtime variable ${requirement.name} requires an interactive terminal`);
|
|
552
|
+
}
|
|
553
|
+
continue;
|
|
554
|
+
}
|
|
555
|
+
const hint = requirement.example ? ` [${requirement.example}]` : "";
|
|
556
|
+
const value = (await terminal.question(`${requirement.name}${hint}: `)).trim() ||
|
|
557
|
+
requirement.example ||
|
|
558
|
+
"";
|
|
559
|
+
if (requirement.required && !value) {
|
|
560
|
+
terminal.close();
|
|
561
|
+
throw new Error(`${requirement.name} is required`);
|
|
562
|
+
}
|
|
563
|
+
if (value)
|
|
564
|
+
runtimeValues.set(requirement.name, value);
|
|
565
|
+
}
|
|
566
|
+
terminal?.close();
|
|
567
|
+
const installation = await client.createTemplateInstallation({
|
|
568
|
+
inspectionId: inspection.id,
|
|
569
|
+
projectName,
|
|
570
|
+
idempotencyKey: crypto.randomUUID(),
|
|
571
|
+
});
|
|
572
|
+
const installationAgentId = (localAgentId) => !localAgentId || localAgentId === inspection.agents[0]?.id
|
|
573
|
+
? installation.projectAgentId
|
|
574
|
+
: `${installation.projectAgentId}--${localAgentId}`;
|
|
575
|
+
for (const requirement of requiredSecrets) {
|
|
576
|
+
process.stderr.write(`${requirement.name}\n`);
|
|
577
|
+
const value = await readTemplateSecretValue();
|
|
578
|
+
await client.putSecret({
|
|
579
|
+
projectId: installation.projectId,
|
|
580
|
+
name: requirement.name,
|
|
581
|
+
value,
|
|
582
|
+
environment: "development",
|
|
583
|
+
agentId: installationAgentId(requirement.agentId),
|
|
584
|
+
allowedOrigins: requirement.allowedOrigins,
|
|
585
|
+
});
|
|
586
|
+
}
|
|
587
|
+
for (const requirement of inspection.requirements.runtimeVariables) {
|
|
588
|
+
const value = runtimeValues.get(requirement.name);
|
|
589
|
+
if (!value)
|
|
590
|
+
continue;
|
|
591
|
+
await client.putRuntimeVariable({
|
|
592
|
+
projectId: installation.projectId,
|
|
593
|
+
name: requirement.name,
|
|
594
|
+
value,
|
|
595
|
+
environment: "development",
|
|
596
|
+
agentId: installationAgentId(requirement.agentId),
|
|
597
|
+
});
|
|
598
|
+
}
|
|
599
|
+
let current = await client.finalizeTemplateInstallation(installation.id);
|
|
600
|
+
const deadline = Date.now() + 10 * 60_000;
|
|
601
|
+
while (!["ready", "failed"].includes(current.state) &&
|
|
602
|
+
Date.now() < deadline) {
|
|
603
|
+
await new Promise((resolvePromise) => setTimeout(resolvePromise, 1_000));
|
|
604
|
+
current = await client.templateInstallation(current.id);
|
|
605
|
+
if (!globals.json)
|
|
606
|
+
process.stderr.write(`Template installation: ${current.state}\r`);
|
|
607
|
+
}
|
|
608
|
+
if (current.state === "failed") {
|
|
609
|
+
throw new Error(current.error?.message ?? "Template installation failed");
|
|
610
|
+
}
|
|
611
|
+
if (current.state !== "ready") {
|
|
612
|
+
throw new Error(`Template installation is still ${current.state}; ${current.projectUrl}`);
|
|
613
|
+
}
|
|
614
|
+
const binding = await ensureProjectBinding(client, config, checkout.directory, {
|
|
615
|
+
project: current.projectId,
|
|
616
|
+
});
|
|
617
|
+
if (globals.json)
|
|
618
|
+
printJSON({ installation: current, checkout, binding });
|
|
619
|
+
else {
|
|
620
|
+
process.stdout.write(`\nReady: ${current.projectUrl}\n` +
|
|
621
|
+
`Local: ${checkout.directory}\n\n` +
|
|
622
|
+
`Next:\n cd ${checkout.directory}\n npm install\n npm run deploy -- --watch\n`);
|
|
623
|
+
}
|
|
624
|
+
return;
|
|
625
|
+
}
|
|
363
626
|
if (command === "login") {
|
|
364
627
|
const identity = await login(config, {
|
|
365
628
|
noBrowser: flag(args, "--no-browser"),
|