@assemblyline-agents/cli 5.0.10 → 6.0.0
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/authoring/skills/assembly-line-authoring/SKILL.md +24 -21
- package/dist/add.d.ts +2 -13
- package/dist/add.d.ts.map +1 -1
- package/dist/add.js +169 -478
- package/dist/add.js.map +1 -1
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +1 -2
- package/dist/args.js.map +1 -1
- package/dist/auth.d.ts +1 -2
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +38 -45
- package/dist/auth.js.map +1 -1
- package/dist/channels.d.ts +7 -30
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +21 -161
- package/dist/channels.js.map +1 -1
- package/dist/deploy-definition.d.ts +1 -8
- package/dist/deploy-definition.d.ts.map +1 -1
- package/dist/deploy-definition.js +18 -66
- package/dist/deploy-definition.js.map +1 -1
- package/dist/deploy-migrations.d.ts +15 -0
- package/dist/deploy-migrations.d.ts.map +1 -0
- package/dist/deploy-migrations.js +72 -0
- package/dist/deploy-migrations.js.map +1 -0
- package/dist/deploy-preflight.d.ts +6 -0
- package/dist/deploy-preflight.d.ts.map +1 -0
- package/dist/deploy-preflight.js +40 -0
- package/dist/deploy-preflight.js.map +1 -0
- package/dist/deploy-receipts.d.ts +9 -0
- package/dist/deploy-receipts.d.ts.map +1 -0
- package/dist/deploy-receipts.js +45 -0
- package/dist/deploy-receipts.js.map +1 -0
- package/dist/deploy-sandbox-environments.d.ts +6 -0
- package/dist/deploy-sandbox-environments.d.ts.map +1 -0
- package/dist/deploy-sandbox-environments.js +109 -0
- package/dist/deploy-sandbox-environments.js.map +1 -0
- package/dist/deploy-secrets.d.ts +21 -0
- package/dist/deploy-secrets.d.ts.map +1 -0
- package/dist/deploy-secrets.js +83 -0
- package/dist/deploy-secrets.js.map +1 -0
- package/dist/deploy.d.ts +5 -31
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +50 -636
- package/dist/deploy.js.map +1 -1
- package/dist/eval-case-runner.d.ts +1 -1
- package/dist/eval-case-runner.d.ts.map +1 -1
- package/dist/eval-case-runner.js.map +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +41 -89
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +89 -32
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -3
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +36 -39
- package/dist/init.js.map +1 -1
- package/dist/inspection.d.ts +44 -0
- package/dist/inspection.d.ts.map +1 -0
- package/dist/inspection.js +144 -0
- package/dist/inspection.js.map +1 -0
- package/dist/models.d.ts +2 -1
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +7 -13
- package/dist/models.js.map +1 -1
- package/dist/plugin-add.d.ts +36 -0
- package/dist/plugin-add.d.ts.map +1 -0
- package/dist/plugin-add.js +283 -0
- package/dist/plugin-add.js.map +1 -0
- package/dist/plugin-init.d.ts +2 -0
- package/dist/plugin-init.d.ts.map +1 -0
- package/dist/plugin-init.js +34 -0
- package/dist/plugin-init.js.map +1 -0
- package/dist/provider-deploy.d.ts +7 -0
- package/dist/provider-deploy.d.ts.map +1 -0
- package/dist/provider-deploy.js +163 -0
- package/dist/provider-deploy.js.map +1 -0
- package/dist/secrets.d.ts.map +1 -1
- package/dist/secrets.js +8 -28
- package/dist/secrets.js.map +1 -1
- package/package.json +9 -11
- package/dist/hosts.d.ts +0 -3
- package/dist/hosts.d.ts.map +0 -1
- package/dist/hosts.js +0 -60
- package/dist/hosts.js.map +0 -1
- package/dist/model-providers.d.ts +0 -5
- package/dist/model-providers.d.ts.map +0 -1
- package/dist/model-providers.js +0 -17
- package/dist/model-providers.js.map +0 -1
- package/dist/state.d.ts +0 -3
- package/dist/state.d.ts.map +0 -1
- package/dist/state.js +0 -79
- package/dist/state.js.map +0 -1
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { fileURLToPath } from "node:url";
|
|
2
|
+
import { resolveProvider } from "@assemblyline-agents/node";
|
|
3
|
+
import { booleanFlag } from "./args.js";
|
|
4
|
+
import { wireConnectionEvents } from "./connections.js";
|
|
5
|
+
import { executeDeployCleanup, executeDeployLifecycle } from "./deploy-lifecycle.js";
|
|
6
|
+
import { configuredMigrationRequest, runConfiguredMigrations } from "./deploy-migrations.js";
|
|
7
|
+
import { assertDestroyAllowed, removeDeployReceipts, writeDeployReceipt } from "./deploy-receipts.js";
|
|
8
|
+
import { reusableSandboxEnvironmentResolutions, sandboxEnvironmentReconciler } from "./deploy-sandbox-environments.js";
|
|
9
|
+
import { syncDeploySecretsIfRequested } from "./deploy-secrets.js";
|
|
10
|
+
import { releaseSnapshotForReceipt, withReleaseSnapshot } from "./release-history.js";
|
|
11
|
+
/** Run a non-kernel deployment through the selected plugin's publisher. */
|
|
12
|
+
export async function runProviderDeploy(artifact, plan, definition, parsed, agentRoot, release, deployEnv) {
|
|
13
|
+
if (parsed.flags["domains-only"] !== undefined) {
|
|
14
|
+
throw new Error("--domains-only was removed. Use --ingress-only.");
|
|
15
|
+
}
|
|
16
|
+
const publisher = await resolveProvider("deploy", definition, {
|
|
17
|
+
env: deployEnv,
|
|
18
|
+
fetch,
|
|
19
|
+
manifest: artifact.manifest,
|
|
20
|
+
artifactRoot: artifact.root,
|
|
21
|
+
providerRoot: fileURLToPath(new URL("..", import.meta.url)),
|
|
22
|
+
devMode: false
|
|
23
|
+
});
|
|
24
|
+
const modeFlags = ["prepare-only", "activate", "rollback", "ingress-only", "destroy"]
|
|
25
|
+
.filter((flag) => booleanFlag(parsed, flag));
|
|
26
|
+
if (modeFlags.length > 1) {
|
|
27
|
+
throw new Error(`Deploy lifecycle flags are mutually exclusive: ${modeFlags.map((flag) => `--${flag}`).join(", ")}.`);
|
|
28
|
+
}
|
|
29
|
+
if (booleanFlag(parsed, "destroy")) {
|
|
30
|
+
if (!publisher.destroy)
|
|
31
|
+
throw new Error(`Deploy target ${plan.target} does not support destroy.`);
|
|
32
|
+
assertDestroyAllowed(plan, parsed);
|
|
33
|
+
const receipt = await publisher.destroy(artifact, plan, { purgeData: booleanFlag(parsed, "purge-data") });
|
|
34
|
+
removeDeployReceipts(artifact.root, plan);
|
|
35
|
+
console.log(`${plan.target} environment "${plan.environment}" destroyed${booleanFlag(parsed, "purge-data") ? " (data purged)" : ""}.`);
|
|
36
|
+
console.log(JSON.stringify(receipt, null, 2));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (booleanFlag(parsed, "activate")) {
|
|
40
|
+
if (!publisher.activate)
|
|
41
|
+
throw new Error(`Deploy target ${plan.target} does not support separate activation.`);
|
|
42
|
+
const activate = publisher.activate;
|
|
43
|
+
await publisher.preflight?.(artifact, plan);
|
|
44
|
+
const providerReceipt = await deployActionWithCleanup(publisher, artifact, plan, () => activate.call(publisher, artifact, plan));
|
|
45
|
+
const receipt = withReleaseSnapshot(providerReceipt, releaseSnapshotForReceipt(release, providerReceipt, true));
|
|
46
|
+
writeDeployReceipt(artifact.root, plan, receipt);
|
|
47
|
+
await wireDeployedConnectionEvents(artifact.manifest, receipt);
|
|
48
|
+
console.log(`${plan.target} prepared release activated.`);
|
|
49
|
+
console.log(JSON.stringify(receipt, null, 2));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (booleanFlag(parsed, "rollback")) {
|
|
53
|
+
if (!publisher.rollback)
|
|
54
|
+
throw new Error(`Deploy target ${plan.target} does not support rollback.`);
|
|
55
|
+
const rollback = publisher.rollback;
|
|
56
|
+
await publisher.preflight?.(artifact, plan);
|
|
57
|
+
const providerReceipt = await deployActionWithCleanup(publisher, artifact, plan, () => rollback.call(publisher, artifact, plan));
|
|
58
|
+
const receipt = withReleaseSnapshot(providerReceipt, releaseSnapshotForReceipt(release, providerReceipt, true));
|
|
59
|
+
writeDeployReceipt(artifact.root, plan, receipt);
|
|
60
|
+
await wireDeployedConnectionEvents(artifact.manifest, receipt);
|
|
61
|
+
console.log(`${plan.target} release rolled back.`);
|
|
62
|
+
console.log(JSON.stringify(receipt, null, 2));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (booleanFlag(parsed, "ingress-only")) {
|
|
66
|
+
if (!publisher.reconcileIngress)
|
|
67
|
+
throw new Error(`Deploy target ${plan.target} does not support ingress reconciliation.`);
|
|
68
|
+
const reconcileIngress = publisher.reconcileIngress;
|
|
69
|
+
await publisher.preflight?.(artifact, plan);
|
|
70
|
+
const receipt = await deployActionWithCleanup(publisher, artifact, plan, () => reconcileIngress.call(publisher, artifact, plan));
|
|
71
|
+
writeDeployReceipt(artifact.root, plan, receipt);
|
|
72
|
+
console.log(`${plan.target} ingress reconciled.`);
|
|
73
|
+
console.log(JSON.stringify(receipt, null, 2));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const prepareOnly = booleanFlag(parsed, "prepare-only");
|
|
77
|
+
const reconcileSandboxEnvironment = sandboxEnvironmentReconciler(artifact, deployEnv, reusableSandboxEnvironmentResolutions(artifact, plan.environment));
|
|
78
|
+
console.log(`${prepareOnly ? "Preparing" : "Publishing"} Assembly Line revision ${plan.agentRevision} with ${plan.target}.`);
|
|
79
|
+
const migrationRequest = configuredMigrationRequest(artifact, parsed);
|
|
80
|
+
const progressStages = [
|
|
81
|
+
"preflight",
|
|
82
|
+
...(reconcileSandboxEnvironment ? ["sandbox-environment"] : []),
|
|
83
|
+
"prepare",
|
|
84
|
+
"secrets",
|
|
85
|
+
"migrations",
|
|
86
|
+
...(!prepareOnly ? ["activate"] : []),
|
|
87
|
+
...(publisher.cleanup ? ["cleanup"] : [])
|
|
88
|
+
];
|
|
89
|
+
const progressLabels = {
|
|
90
|
+
preflight: "Checking provider and host",
|
|
91
|
+
"sandbox-environment": "Reconciling sandbox environment",
|
|
92
|
+
prepare: "Uploading artifact and preparing runtime image",
|
|
93
|
+
secrets: "Reconciling runtime secrets",
|
|
94
|
+
migrations: "Running migrations",
|
|
95
|
+
activate: "Activating and health-checking the release",
|
|
96
|
+
cleanup: "Cleaning managed deployment artifacts"
|
|
97
|
+
};
|
|
98
|
+
const { providerReceipt, migrationStatus, lifecycle, sandboxEnvironments } = await executeDeployLifecycle({
|
|
99
|
+
publisher,
|
|
100
|
+
artifact,
|
|
101
|
+
plan,
|
|
102
|
+
migrationRequest,
|
|
103
|
+
activate: !prepareOnly,
|
|
104
|
+
...(reconcileSandboxEnvironment ? { reconcileSandboxEnvironment } : {}),
|
|
105
|
+
syncSecrets: () => syncDeploySecretsIfRequested(publisher, plan, parsed, deployEnv),
|
|
106
|
+
runFallbackMigrations: () => runConfiguredMigrations(artifact, plan, migrationRequest),
|
|
107
|
+
onProgress: (stage) => {
|
|
108
|
+
const index = progressStages.indexOf(stage);
|
|
109
|
+
if (index >= 0)
|
|
110
|
+
console.log(`[${index + 1}/${progressStages.length}] ${progressLabels[stage]}`);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
const providerLifecycleReceipt = {
|
|
114
|
+
...providerReceipt,
|
|
115
|
+
migrationStatus,
|
|
116
|
+
...(sandboxEnvironments ? { sandboxEnvironments } : {}),
|
|
117
|
+
...(Object.keys(lifecycle).length > 0 ? { lifecycle } : {})
|
|
118
|
+
};
|
|
119
|
+
const receipt = withReleaseSnapshot(providerLifecycleReceipt, releaseSnapshotForReceipt(release, providerLifecycleReceipt, !prepareOnly));
|
|
120
|
+
writeDeployReceipt(artifact.root, plan, receipt);
|
|
121
|
+
if (!prepareOnly)
|
|
122
|
+
await wireDeployedConnectionEvents(artifact.manifest, receipt);
|
|
123
|
+
console.log(`${plan.target} deploy ${prepareOnly ? "prepared" : "completed"}.`);
|
|
124
|
+
const remoteAuthProviders = artifact.manifest.modelProviders.filter((provider) => provider.authentication.kind === "oauth" && provider.runtime?.remoteExecution);
|
|
125
|
+
for (const provider of remoteAuthProviders) {
|
|
126
|
+
console.log(`Persistent model credentials are provisioned. Run \`assembly-line auth ${provider.provider} <agentRoot> --target ${plan.target} --env ${plan.environment}${prepareOnly ? " --prepared" : ""}\` to complete remote authentication.`);
|
|
127
|
+
}
|
|
128
|
+
console.log(JSON.stringify(receipt, null, 2));
|
|
129
|
+
}
|
|
130
|
+
async function deployActionWithCleanup(publisher, artifact, plan, action) {
|
|
131
|
+
try {
|
|
132
|
+
const receipt = await action();
|
|
133
|
+
const cleanup = await executeDeployCleanup({ publisher, artifact, plan });
|
|
134
|
+
return cleanup ? { ...receipt, cleanup } : receipt;
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
await executeDeployCleanup({ publisher, artifact, plan });
|
|
138
|
+
throw error;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async function wireDeployedConnectionEvents(manifest, receipt) {
|
|
142
|
+
if (!manifest.connections.some((connection) => connection.events?.enabled))
|
|
143
|
+
return;
|
|
144
|
+
const deploymentUrl = receiptField(receipt, "deploymentUrl");
|
|
145
|
+
if (!deploymentUrl) {
|
|
146
|
+
console.warn("Connection events were not wired because the deploy target did not return a public deployment URL. Run `assembly-line connections wire <agentRoot> --url <publicUrl>` after ingress is available.");
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const result = await wireConnectionEvents({
|
|
150
|
+
baseUrl: deploymentUrl,
|
|
151
|
+
...(process.env.ASSEMBLY_LINE_ADMIN_TOKEN ? { token: process.env.ASSEMBLY_LINE_ADMIN_TOKEN } : {}),
|
|
152
|
+
force: false
|
|
153
|
+
});
|
|
154
|
+
console.log("Connection event subscriptions reconciled.");
|
|
155
|
+
console.log(JSON.stringify(result, null, 2));
|
|
156
|
+
}
|
|
157
|
+
function receiptField(receipt, name) {
|
|
158
|
+
if (!receipt || typeof receipt !== "object" || Array.isArray(receipt))
|
|
159
|
+
return undefined;
|
|
160
|
+
const value = receipt[name];
|
|
161
|
+
return typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=provider-deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-deploy.js","sourceRoot":"","sources":["../src/provider-deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/secrets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAkB,UAAU,EAA+C,MAAM,2BAA2B,CAAC;AAExI,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD5F;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACxC;IACD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAkB,UAAU,EAA+C,MAAM,2BAA2B,CAAC;AAExI,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD5F;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACxC;IACD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CA0BA"}
|
package/dist/secrets.js
CHANGED
|
@@ -5,7 +5,7 @@ import { resolveDeployDefinition, resolveDeployEnvironment } from "./deploy-defi
|
|
|
5
5
|
export async function runSecretsCommand(agentRoot, parsed) {
|
|
6
6
|
const subcommand = parsed.positional[0];
|
|
7
7
|
if (subcommand !== "diff")
|
|
8
|
-
throw new Error("Usage: assembly-line secrets diff <agentRoot> [--target
|
|
8
|
+
throw new Error("Usage: assembly-line secrets diff <agentRoot> [--target <plugin>] [--env <name>]");
|
|
9
9
|
const manifest = compileAgent({ root: agentRoot });
|
|
10
10
|
const target = typeof parsed.flags.target === "string"
|
|
11
11
|
? parsed.flags.target
|
|
@@ -55,15 +55,12 @@ export async function runSecretsCommand(agentRoot, parsed) {
|
|
|
55
55
|
process.exitCode = 2;
|
|
56
56
|
}
|
|
57
57
|
export function classifySecretDiff(manifest, plan, remote, local) {
|
|
58
|
-
const requirements = (plan.requirements ?? []).filter((requirement) => requirement.kind === "env"
|
|
59
|
-
&& requirement.classification === "credential"
|
|
60
|
-
&& requirement.adapter !== plan.target);
|
|
58
|
+
const requirements = (plan.requirements ?? []).filter((requirement) => requirement.kind === "env" && requirement.adapter !== plan.target);
|
|
61
59
|
const managed = providerManagedSecretNames(manifest, plan);
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
const
|
|
66
|
-
const storeHeld = new Set((plan.storeHeldCredentials ?? []).filter((name) => !deployCredentials.has(name)));
|
|
60
|
+
// Names the gateway secrets store supplies reach the runtime at boot on any
|
|
61
|
+
// target, so they count as configured remotely — and a lingering target
|
|
62
|
+
// copy is stale state to prune, not configuration.
|
|
63
|
+
const storeHeld = new Set(plan.storeHeldCredentials ?? []);
|
|
67
64
|
const required = requirements.filter((requirement) => requirement.required !== false);
|
|
68
65
|
const optional = requirements.filter((requirement) => requirement.required === false);
|
|
69
66
|
const missingRemoteRequired = missingGroups(required, (name) => remote.has(name) || storeHeld.has(name), managed);
|
|
@@ -95,24 +92,7 @@ function requirementLabel(requirement) {
|
|
|
95
92
|
return requirementNames(requirement).join(" or ");
|
|
96
93
|
}
|
|
97
94
|
function providerManagedSecretNames(manifest, plan) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
managed.add("ASSEMBLY_LINE_PUBLIC_URL");
|
|
101
|
-
if (plan.target === "railway" &&
|
|
102
|
-
manifest.gateway.state?.kind === "postgres" &&
|
|
103
|
-
manifest.gateway.state.options?.provider === "railway" &&
|
|
104
|
-
manifest.gateway.state.options.provision !== false) {
|
|
105
|
-
managed.add("DATABASE_URL");
|
|
106
|
-
}
|
|
107
|
-
if (plan.target === "vps" && manifest.gateway.state?.kind === "postgres") {
|
|
108
|
-
const database = manifest.gateway.deploy?.kind === "vps" ? manifest.gateway.deploy.options?.database : undefined;
|
|
109
|
-
if (database && typeof database === "object" && !Array.isArray(database) && database.mode === "host") {
|
|
110
|
-
managed.add("DATABASE_URL");
|
|
111
|
-
managed.add("AWS_ACCESS_KEY_ID");
|
|
112
|
-
managed.add("AWS_SECRET_ACCESS_KEY");
|
|
113
|
-
managed.add("AWS_DEFAULT_REGION");
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return managed;
|
|
95
|
+
void manifest;
|
|
96
|
+
return new Set(plan.managedEnv ?? []);
|
|
117
97
|
}
|
|
118
98
|
//# sourceMappingURL=secrets.js.map
|
package/dist/secrets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE1G,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAElH,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAE3F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAAiB,EAAE,MAAkB;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,UAAU,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assemblyline-agents/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"assembly-line": "./dist/index.js"
|
|
@@ -17,16 +17,14 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"esbuild": "^0.28.1",
|
|
20
|
-
"
|
|
21
|
-
"@assemblyline-agents/
|
|
22
|
-
"@assemblyline-agents/
|
|
23
|
-
"@assemblyline-agents/
|
|
24
|
-
"@assemblyline-agents/
|
|
25
|
-
"@assemblyline-agents/
|
|
26
|
-
"@assemblyline-agents/
|
|
27
|
-
"@assemblyline-agents/runtime": "
|
|
28
|
-
"@assemblyline-agents/railway": "5.0.10",
|
|
29
|
-
"@assemblyline-agents/vps": "5.0.10"
|
|
20
|
+
"yaml": "^2.9.0",
|
|
21
|
+
"@assemblyline-agents/compiler": "6.0.0",
|
|
22
|
+
"@assemblyline-agents/core": "6.0.0",
|
|
23
|
+
"@assemblyline-agents/docs": "6.0.0",
|
|
24
|
+
"@assemblyline-agents/openrouter": "6.0.0",
|
|
25
|
+
"@assemblyline-agents/pi": "6.0.0",
|
|
26
|
+
"@assemblyline-agents/node": "6.0.0",
|
|
27
|
+
"@assemblyline-agents/runtime": "6.0.0"
|
|
30
28
|
},
|
|
31
29
|
"description": "Vendor-neutral, filesystem-first framework for durable AI agents.",
|
|
32
30
|
"files": [
|
package/dist/hosts.d.ts
DELETED
package/dist/hosts.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hosts.d.ts","sourceRoot":"","sources":["../src/hosts.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAGrE,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CvE"}
|
package/dist/hosts.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { resolve } from "node:path";
|
|
2
|
-
import { bootstrapHetznerHost } from "@assemblyline-agents/vps";
|
|
3
|
-
import { booleanFlag, stringFlag } from "./args.js";
|
|
4
|
-
import { runCommand } from "./deploy.js";
|
|
5
|
-
export async function runHostsCommand(parsed) {
|
|
6
|
-
const subcommand = parsed.positional[0];
|
|
7
|
-
if (subcommand !== "bootstrap") {
|
|
8
|
-
throw new Error(`Unknown hosts subcommand: ${subcommand ?? "(none)"}. Usage: assembly-line hosts bootstrap --provider hetzner ...`);
|
|
9
|
-
}
|
|
10
|
-
const provider = requiredFlag(parsed, "provider");
|
|
11
|
-
if (provider !== "hetzner")
|
|
12
|
-
throw new Error(`Unsupported host bootstrap provider: ${provider}.`);
|
|
13
|
-
const location = stringFlag(parsed, "location");
|
|
14
|
-
const serverType = stringFlag(parsed, "server-type");
|
|
15
|
-
const image = stringFlag(parsed, "image");
|
|
16
|
-
const sshSource = stringFlag(parsed, "ssh-source");
|
|
17
|
-
const expectedRegion = stringFlag(parsed, "expected-region");
|
|
18
|
-
const expectedHostKeySha256 = stringFlag(parsed, "host-key-sha256");
|
|
19
|
-
const hcloudBin = stringFlag(parsed, "hcloud-bin");
|
|
20
|
-
const sshBin = stringFlag(parsed, "ssh-bin");
|
|
21
|
-
const sshKeygenBin = stringFlag(parsed, "ssh-keygen-bin");
|
|
22
|
-
const defaultVisibilityFlag = stringFlag(parsed, "default-visibility");
|
|
23
|
-
if (defaultVisibilityFlag && defaultVisibilityFlag !== "public" && defaultVisibilityFlag !== "private") {
|
|
24
|
-
throw new Error('--default-visibility must be "public" or "private".');
|
|
25
|
-
}
|
|
26
|
-
const defaultVisibility = defaultVisibilityFlag === "public" || defaultVisibilityFlag === "private"
|
|
27
|
-
? defaultVisibilityFlag
|
|
28
|
-
: undefined;
|
|
29
|
-
const receipt = await bootstrapHetznerHost({
|
|
30
|
-
hostRef: requiredFlag(parsed, "host"),
|
|
31
|
-
server: requiredFlag(parsed, "server"),
|
|
32
|
-
inventoryPath: resolve(requiredFlag(parsed, "inventory")),
|
|
33
|
-
sshPublicKeyPath: resolve(requiredFlag(parsed, "ssh-public-key")),
|
|
34
|
-
identityFileEnv: stringFlag(parsed, "identity-file-env") ?? "ASSEMBLY_LINE_VPS_SSH_KEY",
|
|
35
|
-
baseDomain: requiredFlag(parsed, "base-domain"),
|
|
36
|
-
...(defaultVisibility ? { defaultVisibility } : {}),
|
|
37
|
-
...(location ? { location } : {}),
|
|
38
|
-
...(serverType ? { serverType } : {}),
|
|
39
|
-
...(image ? { image } : {}),
|
|
40
|
-
...(sshSource ? { sshSource } : {}),
|
|
41
|
-
...(expectedRegion ? { expectedRegion } : {}),
|
|
42
|
-
...(expectedHostKeySha256 ? { expectedHostKeySha256 } : {}),
|
|
43
|
-
...(hcloudBin ? { hcloudBin } : {}),
|
|
44
|
-
...(sshBin ? { sshBin } : {}),
|
|
45
|
-
...(sshKeygenBin ? { sshKeygenBin } : {}),
|
|
46
|
-
allowGlobalSsh: booleanFlag(parsed, "allow-global-ssh"),
|
|
47
|
-
rebuild: booleanFlag(parsed, "rebuild"),
|
|
48
|
-
run: runCommand
|
|
49
|
-
});
|
|
50
|
-
for (const warning of receipt.warnings)
|
|
51
|
-
console.warn(`Warning: ${warning}`);
|
|
52
|
-
console.log(JSON.stringify(receipt, null, 2));
|
|
53
|
-
}
|
|
54
|
-
function requiredFlag(parsed, name) {
|
|
55
|
-
const value = stringFlag(parsed, name);
|
|
56
|
-
if (!value)
|
|
57
|
-
throw new Error(`assembly-line hosts bootstrap requires --${name} <value>.`);
|
|
58
|
-
return value;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=hosts.js.map
|
package/dist/hosts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hosts.js","sourceRoot":"","sources":["../src/hosts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { AgentManifest } from "@assemblyline-agents/core";
|
|
2
|
-
/** Every model spec reachable from the root agent or a nested subagent. */
|
|
3
|
-
export declare function manifestModelSpecs(manifest: Pick<AgentManifest, "possibleModels" | "subagents">): string[];
|
|
4
|
-
export declare function manifestUsesModelProvider(manifest: Pick<AgentManifest, "possibleModels" | "subagents">, providerId: string): boolean;
|
|
5
|
-
//# sourceMappingURL=model-providers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-providers.d.ts","sourceRoot":"","sources":["../src/model-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,GAAG,WAAW,CAAC,GAAG,MAAM,EAAE,CAK1G;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,GAAG,WAAW,CAAC,EAC7D,UAAU,EAAE,MAAM,GACjB,OAAO,CAET"}
|
package/dist/model-providers.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/** Every model spec reachable from the root agent or a nested subagent. */
|
|
2
|
-
export function manifestModelSpecs(manifest) {
|
|
3
|
-
return [
|
|
4
|
-
...manifest.possibleModels,
|
|
5
|
-
...subagentModelSpecs(manifest.subagents)
|
|
6
|
-
];
|
|
7
|
-
}
|
|
8
|
-
export function manifestUsesModelProvider(manifest, providerId) {
|
|
9
|
-
return manifestModelSpecs(manifest).some((model) => model.startsWith(`${providerId}/`));
|
|
10
|
-
}
|
|
11
|
-
function subagentModelSpecs(subagents) {
|
|
12
|
-
return subagents.flatMap((subagent) => [
|
|
13
|
-
...subagent.possibleModels,
|
|
14
|
-
...subagentModelSpecs(subagent.subagents)
|
|
15
|
-
]);
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=model-providers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-providers.js","sourceRoot":"","sources":["../src/model-providers.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,MAAM,UAAU,kBAAkB,CAAC,QAA6D;IAC9F,OAAO;QACL,GAAG,QAAQ,CAAC,cAAc;QAC1B,GAAG,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAA6D,EAC7D,UAAkB;IAElB,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAqC;IAC/D,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrC,GAAG,QAAQ,CAAC,cAAc;QAC1B,GAAG,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC"}
|
package/dist/state.d.ts
DELETED
package/dist/state.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAYA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAKrE,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmE1F"}
|
package/dist/state.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { compileAgent } from "@assemblyline-agents/compiler";
|
|
2
|
-
import { ARTIFACT_DIR_NAME } from "@assemblyline-agents/core";
|
|
3
|
-
import { createSshTransport, hostPostgresUpgradeScript, resolveVpsDeployOptions, resolveVpsHost, transferPostgresToVps, vpsDeploymentNames, ROOT_SCRIPT, assertCommand } from "@assemblyline-agents/vps";
|
|
4
|
-
import { booleanFlag, stringFlag } from "./args.js";
|
|
5
|
-
import { resolveDeployDefinition, resolveDeployEnvironment } from "./deploy-definition.js";
|
|
6
|
-
import { writeJson } from "./deploy.js";
|
|
7
|
-
import { dirname, resolve } from "node:path";
|
|
8
|
-
export async function runStateCommand(agentRoot, parsed) {
|
|
9
|
-
const subcommand = parsed.positional[0];
|
|
10
|
-
if (subcommand !== "migrate-postgres" && subcommand !== "upgrade-postgres") {
|
|
11
|
-
throw new Error(`Unknown state subcommand: ${subcommand ?? "(none)"}. Usage: assembly-line state migrate-postgres|upgrade-postgres <agentRoot> ...`);
|
|
12
|
-
}
|
|
13
|
-
const manifest = compileAgent({ root: agentRoot });
|
|
14
|
-
const definition = resolveDeployDefinition(manifest, "vps", parsed);
|
|
15
|
-
const deploy = resolveVpsDeployOptions(definition.options ?? {}, process.cwd());
|
|
16
|
-
if (deploy.database.mode !== "host")
|
|
17
|
-
throw new Error("Postgres transfer requires VPS database.mode to be host.");
|
|
18
|
-
const host = resolveVpsHost({
|
|
19
|
-
host: deploy.host,
|
|
20
|
-
agentRoot,
|
|
21
|
-
cwd: deploy.cwd,
|
|
22
|
-
...(deploy.hostsFile ? { hostsFile: deploy.hostsFile } : {}),
|
|
23
|
-
env: process.env
|
|
24
|
-
});
|
|
25
|
-
const transport = createSshTransport(host);
|
|
26
|
-
if (subcommand === "upgrade-postgres") {
|
|
27
|
-
if (!booleanFlag(parsed, "confirm-upgrade")) {
|
|
28
|
-
throw new Error("Postgres cluster upgrade requires --confirm-upgrade after reviewing the logical backup, rollback-volume, and downtime plan.");
|
|
29
|
-
}
|
|
30
|
-
const result = await transport.runScript(ROOT_SCRIPT + hostPostgresUpgradeScript({ postgresImage: deploy.postgresImage }), [], { silent: true });
|
|
31
|
-
assertCommand(result, "upgrading host Postgres");
|
|
32
|
-
const receipt = {
|
|
33
|
-
target: "vps",
|
|
34
|
-
operation: "upgrade-postgres",
|
|
35
|
-
host: host.ref,
|
|
36
|
-
image: deploy.postgresImage,
|
|
37
|
-
result: result.stdout.trim(),
|
|
38
|
-
completedAt: new Date().toISOString()
|
|
39
|
-
};
|
|
40
|
-
writeJson(resolve(dirname(agentRoot), artifactDirName(agentRoot), "postgres-upgrade.json"), receipt);
|
|
41
|
-
console.log(JSON.stringify(receipt, null, 2));
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const sourceEnv = stringFlag(parsed, "source-url-env") ?? "DATABASE_URL";
|
|
45
|
-
if (!/^[A-Z_][A-Z0-9_]*$/u.test(sourceEnv)) {
|
|
46
|
-
throw new Error("--source-url-env must be an uppercase environment variable name.");
|
|
47
|
-
}
|
|
48
|
-
const sourceUrl = process.env[sourceEnv];
|
|
49
|
-
if (!sourceUrl)
|
|
50
|
-
throw new Error(`Source Postgres URL environment variable ${sourceEnv} is not set.`);
|
|
51
|
-
const agentId = manifest.agent.id;
|
|
52
|
-
if (!agentId)
|
|
53
|
-
throw new Error("Postgres transfer requires a stable agent.id.");
|
|
54
|
-
const environment = resolveDeployEnvironment(manifest, parsed);
|
|
55
|
-
const dockerBin = stringFlag(parsed, "docker-bin");
|
|
56
|
-
const names = vpsDeploymentNames({
|
|
57
|
-
agentId,
|
|
58
|
-
environment,
|
|
59
|
-
hostRef: host.ref,
|
|
60
|
-
revision: manifest.agentRevision
|
|
61
|
-
});
|
|
62
|
-
const receipt = await transferPostgresToVps({
|
|
63
|
-
sourceUrl,
|
|
64
|
-
sourceLabel: sourceEnv,
|
|
65
|
-
postgresImage: deploy.postgresImage,
|
|
66
|
-
names,
|
|
67
|
-
transport,
|
|
68
|
-
sourceQuiesced: booleanFlag(parsed, "source-quiesced"),
|
|
69
|
-
replaceTarget: booleanFlag(parsed, "replace-target"),
|
|
70
|
-
...(dockerBin ? { dockerBin } : {})
|
|
71
|
-
});
|
|
72
|
-
writeJson(resolve(dirname(agentRoot), artifactDirName(agentRoot), "postgres-transfer.json"), receipt);
|
|
73
|
-
console.log(JSON.stringify(receipt, null, 2));
|
|
74
|
-
}
|
|
75
|
-
/** Sibling artifact dir name for receipts. */
|
|
76
|
-
function artifactDirName(_agentRoot) {
|
|
77
|
-
return ARTIFACT_DIR_NAME;
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=state.js.map
|
package/dist/state.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|