@assemblyline-agents/cli 0.1.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/LICENSE +21 -0
- package/README.md +19 -0
- package/dist/add.d.ts +23 -0
- package/dist/add.d.ts.map +1 -0
- package/dist/add.js +352 -0
- package/dist/add.js.map +1 -0
- package/dist/args.d.ts +14 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +95 -0
- package/dist/args.js.map +1 -0
- package/dist/auth.d.ts +8 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +74 -0
- package/dist/auth.js.map +1 -0
- package/dist/channels.d.ts +25 -0
- package/dist/channels.d.ts.map +1 -0
- package/dist/channels.js +76 -0
- package/dist/channels.js.map +1 -0
- package/dist/checkpoints.d.ts +3 -0
- package/dist/checkpoints.d.ts.map +1 -0
- package/dist/checkpoints.js +60 -0
- package/dist/checkpoints.js.map +1 -0
- package/dist/deploy-definition.d.ts +14 -0
- package/dist/deploy-definition.d.ts.map +1 -0
- package/dist/deploy-definition.js +92 -0
- package/dist/deploy-definition.js.map +1 -0
- package/dist/deploy-lifecycle.d.ts +17 -0
- package/dist/deploy-lifecycle.d.ts.map +1 -0
- package/dist/deploy-lifecycle.js +25 -0
- package/dist/deploy-lifecycle.js.map +1 -0
- package/dist/deploy.d.ts +20 -0
- package/dist/deploy.d.ts.map +1 -0
- package/dist/deploy.js +462 -0
- package/dist/deploy.js.map +1 -0
- package/dist/dev.d.ts +13 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +157 -0
- package/dist/dev.js.map +1 -0
- package/dist/eval-assertions.d.ts +5 -0
- package/dist/eval-assertions.d.ts.map +1 -0
- package/dist/eval-assertions.js +99 -0
- package/dist/eval-assertions.js.map +1 -0
- package/dist/eval-case-runner.d.ts +38 -0
- package/dist/eval-case-runner.d.ts.map +1 -0
- package/dist/eval-case-runner.js +247 -0
- package/dist/eval-case-runner.js.map +1 -0
- package/dist/eval-cases.d.ts +6 -0
- package/dist/eval-cases.d.ts.map +1 -0
- package/dist/eval-cases.js +151 -0
- package/dist/eval-cases.js.map +1 -0
- package/dist/eval-comparison.d.ts +8 -0
- package/dist/eval-comparison.d.ts.map +1 -0
- package/dist/eval-comparison.js +90 -0
- package/dist/eval-comparison.js.map +1 -0
- package/dist/eval-custom.d.ts +15 -0
- package/dist/eval-custom.d.ts.map +1 -0
- package/dist/eval-custom.js +118 -0
- package/dist/eval-custom.js.map +1 -0
- package/dist/eval-experiment.d.ts +19 -0
- package/dist/eval-experiment.d.ts.map +1 -0
- package/dist/eval-experiment.js +122 -0
- package/dist/eval-experiment.js.map +1 -0
- package/dist/eval-fixtures.d.ts +17 -0
- package/dist/eval-fixtures.d.ts.map +1 -0
- package/dist/eval-fixtures.js +59 -0
- package/dist/eval-fixtures.js.map +1 -0
- package/dist/eval-gateway-host.d.ts +34 -0
- package/dist/eval-gateway-host.d.ts.map +1 -0
- package/dist/eval-gateway-host.js +127 -0
- package/dist/eval-gateway-host.js.map +1 -0
- package/dist/eval-judge.d.ts +35 -0
- package/dist/eval-judge.d.ts.map +1 -0
- package/dist/eval-judge.js +105 -0
- package/dist/eval-judge.js.map +1 -0
- package/dist/eval-mocks.d.ts +10 -0
- package/dist/eval-mocks.d.ts.map +1 -0
- package/dist/eval-mocks.js +57 -0
- package/dist/eval-mocks.js.map +1 -0
- package/dist/eval-report.d.ts +7 -0
- package/dist/eval-report.d.ts.map +1 -0
- package/dist/eval-report.js +89 -0
- package/dist/eval-report.js.map +1 -0
- package/dist/eval-retry.d.ts +10 -0
- package/dist/eval-retry.d.ts.map +1 -0
- package/dist/eval-retry.js +37 -0
- package/dist/eval-retry.js.map +1 -0
- package/dist/eval-trajectory.d.ts +7 -0
- package/dist/eval-trajectory.d.ts.map +1 -0
- package/dist/eval-trajectory.js +92 -0
- package/dist/eval-trajectory.js.map +1 -0
- package/dist/eval-turns.d.ts +66 -0
- package/dist/eval-turns.d.ts.map +1 -0
- package/dist/eval-turns.js +187 -0
- package/dist/eval-turns.js.map +1 -0
- package/dist/eval-types.d.ts +271 -0
- package/dist/eval-types.d.ts.map +1 -0
- package/dist/eval-types.js +4 -0
- package/dist/eval-types.js.map +1 -0
- package/dist/eval.d.ts +26 -0
- package/dist/eval.d.ts.map +1 -0
- package/dist/eval.js +218 -0
- package/dist/eval.js.map +1 -0
- package/dist/help.d.ts +12 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +323 -0
- package/dist/help.js.map +1 -0
- package/dist/hosts.d.ts +3 -0
- package/dist/hosts.d.ts.map +1 -0
- package/dist/hosts.js +51 -0
- package/dist/hosts.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +318 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +13 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +79 -0
- package/dist/init.js.map +1 -0
- package/dist/legacy-bin.d.ts +3 -0
- package/dist/legacy-bin.d.ts.map +1 -0
- package/dist/legacy-bin.js +8 -0
- package/dist/legacy-bin.js.map +1 -0
- package/dist/models.d.ts +5 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +20 -0
- package/dist/models.js.map +1 -0
- package/dist/operator-client.d.ts +7 -0
- package/dist/operator-client.d.ts.map +1 -0
- package/dist/operator-client.js +62 -0
- package/dist/operator-client.js.map +1 -0
- package/dist/pm.d.ts +20 -0
- package/dist/pm.d.ts.map +1 -0
- package/dist/pm.js +70 -0
- package/dist/pm.js.map +1 -0
- package/dist/project-env.d.ts +8 -0
- package/dist/project-env.d.ts.map +1 -0
- package/dist/project-env.js +51 -0
- package/dist/project-env.js.map +1 -0
- package/dist/secrets.d.ts +3 -0
- package/dist/secrets.d.ts.map +1 -0
- package/dist/secrets.js +48 -0
- package/dist/secrets.js.map +1 -0
- package/dist/state.d.ts +3 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +85 -0
- package/dist/state.js.map +1 -0
- package/package.json +67 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { resolve } from "node:path";
|
|
4
|
+
import { OpenEveCompileError, buildAgent, compileAgent, validateAgentFolder } from "@assemblyline-agents/compiler";
|
|
5
|
+
import { installSignalHandlers, listenNodeRuntime, withNodeModelHarnesses } from "@assemblyline-agents/node";
|
|
6
|
+
import { mirrorEnvAliasesInPlace } from "@assemblyline-agents/core";
|
|
7
|
+
import { FileStateAdapter, LocalBlobAdapter, LocalSandboxAdapter, OpenEveRuntime, createJsonConsoleLogger, loadRuntimeBundle, normalizeLogLevel } from "@assemblyline-agents/runtime";
|
|
8
|
+
import { runAddCommand } from "./add.js";
|
|
9
|
+
import { booleanFlag, buildOptions, numberFlag, parseArgs, stringFlag } from "./args.js";
|
|
10
|
+
import { runCodexAuthCommand } from "./auth.js";
|
|
11
|
+
import { wireChannels } from "./channels.js";
|
|
12
|
+
import { runCheckpointCompactCommand } from "./checkpoints.js";
|
|
13
|
+
import { runCommand, runDeployCommand, writeJson } from "./deploy.js";
|
|
14
|
+
import { runDevCommand } from "./dev.js";
|
|
15
|
+
import { runEvalCommand } from "./eval.js";
|
|
16
|
+
import { isKnownCommand, printCommandHelp, printHelp, printIssues } from "./help.js";
|
|
17
|
+
import { initAgent, providerLoadFixLines, providerResolutionIssues } from "./init.js";
|
|
18
|
+
import { runHostsCommand } from "./hosts.js";
|
|
19
|
+
import { loadModelCatalog, loadModelSpecs } from "./models.js";
|
|
20
|
+
import { runOperatorCommand } from "./operator-client.js";
|
|
21
|
+
import { runStateCommand } from "./state.js";
|
|
22
|
+
import { runSecretsCommand } from "./secrets.js";
|
|
23
|
+
import { loadProjectEnv } from "./project-env.js";
|
|
24
|
+
export { parseEnvSecrets } from "./deploy.js";
|
|
25
|
+
// Rename compatibility: every branded env var is readable under both its
|
|
26
|
+
// ASSEMBLY_LINE_* and OPENEVE_* spellings for the whole CLI process, including
|
|
27
|
+
// child processes it spawns. Conflicting duplicate values fail here, loudly.
|
|
28
|
+
mirrorEnvAliasesInPlace(process.env);
|
|
29
|
+
const parsed = parseArgs(process.argv.slice(2));
|
|
30
|
+
const command = parsed.command;
|
|
31
|
+
if (command === "help" || command === "--help" || command === "-h") {
|
|
32
|
+
printHelp(parsed.positional[0]);
|
|
33
|
+
process.exit(process.exitCode ?? 0);
|
|
34
|
+
}
|
|
35
|
+
if (!isKnownCommand(command)) {
|
|
36
|
+
console.error(`Unknown command: ${command}. Run "assembly-line help" for usage.`);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
if (parsed.flags.help === true || parsed.flags.help === "true") {
|
|
40
|
+
printCommandHelp(command);
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
main().catch((error) => {
|
|
44
|
+
if (error instanceof OpenEveCompileError) {
|
|
45
|
+
printIssues(error.issues, { agentRoot: process.cwd() });
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
49
|
+
console.error(message);
|
|
50
|
+
for (const line of providerLoadFixLines(message))
|
|
51
|
+
console.error(line);
|
|
52
|
+
if (/Codex authentication failed/iu.test(message)) {
|
|
53
|
+
console.error("Hint: openai-codex/* uses the Codex CLI session. For a deployed Railway, Docker, Fly, or VPS target, run `assembly-line auth codex <agentRoot>`; locally, run `codex login`.");
|
|
54
|
+
}
|
|
55
|
+
else if (/API key|apiKey|401/u.test(message)) {
|
|
56
|
+
console.error("Hint: the model prefix in agent.ts decides the required env var (e.g. openai/* needs OPENAI_API_KEY).");
|
|
57
|
+
}
|
|
58
|
+
process.exit(1);
|
|
59
|
+
});
|
|
60
|
+
async function main() {
|
|
61
|
+
if (command === "models") {
|
|
62
|
+
const specs = await loadModelSpecs();
|
|
63
|
+
if (specs.length === 0) {
|
|
64
|
+
console.error("Model catalog unavailable.");
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
const provider = stringFlag(parsed, "provider");
|
|
68
|
+
const filtered = provider ? specs.filter((spec) => spec.startsWith(`${provider}/`)) : specs;
|
|
69
|
+
for (const spec of filtered)
|
|
70
|
+
console.log(spec);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (command === "add") {
|
|
74
|
+
const thing = parsed.positional[0];
|
|
75
|
+
if (!thing) {
|
|
76
|
+
console.error('Usage: assembly-line add <kind|package> [agentRoot]. Run "assembly-line help add" for flags.');
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
const addRoot = resolve(process.cwd(), String(parsed.flags.root ?? parsed.positional[1] ?? "agent"));
|
|
80
|
+
if (!existsSync(addRoot)) {
|
|
81
|
+
throw new Error(`Agent root not found: ${addRoot}. Run "assembly-line init ${addRoot}" to scaffold a new agent.`);
|
|
82
|
+
}
|
|
83
|
+
loadProjectEnv(addRoot);
|
|
84
|
+
await runAddCommand({
|
|
85
|
+
thing,
|
|
86
|
+
agentRoot: addRoot,
|
|
87
|
+
role: stringFlag(parsed, "role"),
|
|
88
|
+
pmOverride: stringFlag(parsed, "pm"),
|
|
89
|
+
install: !booleanFlag(parsed, "no-install"),
|
|
90
|
+
runCommand
|
|
91
|
+
});
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (command === "checkpoints") {
|
|
95
|
+
const subcommand = parsed.positional[0] ?? "compact";
|
|
96
|
+
if (subcommand !== "compact") {
|
|
97
|
+
console.error(`Unknown checkpoints subcommand: ${subcommand}. Usage: assembly-line checkpoints compact <agentRoot> [--apply]`);
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
const checkpointsRoot = resolve(process.cwd(), String(parsed.flags.root ?? parsed.positional[1] ?? "agent"));
|
|
101
|
+
if (!existsSync(checkpointsRoot)) {
|
|
102
|
+
throw new Error(`Agent root not found: ${checkpointsRoot}. Run "assembly-line init ${checkpointsRoot}" to scaffold a new agent.`);
|
|
103
|
+
}
|
|
104
|
+
await runCheckpointCompactCommand(checkpointsRoot, parsed);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (command === "auth") {
|
|
108
|
+
const provider = parsed.positional[0];
|
|
109
|
+
if (provider !== "codex") {
|
|
110
|
+
console.error(`Unknown auth provider: ${provider ?? "(none)"}. Usage: assembly-line auth codex <agentRoot>`);
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
const authRoot = resolve(process.cwd(), String(parsed.flags.root ?? parsed.positional[1] ?? "agent"));
|
|
114
|
+
if (!existsSync(authRoot))
|
|
115
|
+
throw new Error(`Agent root not found: ${authRoot}.`);
|
|
116
|
+
loadProjectEnv(authRoot);
|
|
117
|
+
await runCodexAuthCommand(authRoot, parsed);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (command === "hosts") {
|
|
121
|
+
await runHostsCommand(parsed);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (command === "runs" || command === "agent") {
|
|
125
|
+
const result = await runOperatorCommand(command, parsed);
|
|
126
|
+
console.log(JSON.stringify(result.body, null, 2));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (command === "state") {
|
|
130
|
+
const stateRoot = resolve(process.cwd(), String(parsed.flags.root ?? parsed.positional[1] ?? "agent"));
|
|
131
|
+
if (!existsSync(stateRoot))
|
|
132
|
+
throw new Error(`Agent root not found: ${stateRoot}.`);
|
|
133
|
+
loadProjectEnv(stateRoot);
|
|
134
|
+
await runStateCommand(stateRoot, parsed);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (command === "secrets") {
|
|
138
|
+
const secretsRoot = resolve(process.cwd(), String(parsed.flags.root ?? parsed.positional[1] ?? "agent"));
|
|
139
|
+
if (!existsSync(secretsRoot))
|
|
140
|
+
throw new Error(`Agent root not found: ${secretsRoot}.`);
|
|
141
|
+
loadProjectEnv(secretsRoot);
|
|
142
|
+
await runSecretsCommand(secretsRoot, parsed);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const agentRoot = resolve(process.cwd(), String(parsed.flags.root ?? parsed.positional[0] ?? "agent"));
|
|
146
|
+
if (command === "init") {
|
|
147
|
+
initAgent(agentRoot);
|
|
148
|
+
console.log(`Created Assembly Line agent at ${agentRoot}`);
|
|
149
|
+
console.log(`Next: export OPENAI_API_KEY, then: pnpm assembly-line run ${agentRoot} --message "hello"`);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (command === "channels") {
|
|
153
|
+
const sub = parsed.positional[0];
|
|
154
|
+
if (sub !== "wire") {
|
|
155
|
+
console.error(`Unknown channels subcommand: ${sub ?? "(none)"}. Usage: assembly-line channels wire <root> --url <publicUrl>`);
|
|
156
|
+
process.exit(1);
|
|
157
|
+
}
|
|
158
|
+
const channelsRoot = resolve(process.cwd(), String(parsed.flags.root ?? parsed.positional[1] ?? "agent"));
|
|
159
|
+
if (!existsSync(channelsRoot))
|
|
160
|
+
throw new Error(`Agent root not found: ${channelsRoot}.`);
|
|
161
|
+
loadProjectEnv(channelsRoot);
|
|
162
|
+
const url = stringFlag(parsed, "url");
|
|
163
|
+
if (!url) {
|
|
164
|
+
console.error("assembly-line channels wire requires --url <publicUrl> (the deployed service URL).");
|
|
165
|
+
process.exit(1);
|
|
166
|
+
}
|
|
167
|
+
const manifest = compileAgent({ root: channelsRoot });
|
|
168
|
+
const results = await wireChannels(manifest, url, process.env, fetch);
|
|
169
|
+
for (const r of results) {
|
|
170
|
+
console.log(`${r.action === "set" ? "✓ wired" : "→ manual"} ${r.channel} (${r.provider}): ${r.url}`);
|
|
171
|
+
if (r.action === "manual")
|
|
172
|
+
console.log(` ${r.detail}`);
|
|
173
|
+
}
|
|
174
|
+
writeJson(resolve(channelsRoot, "channel-endpoints.json"), {
|
|
175
|
+
publicUrl: url,
|
|
176
|
+
agentRevision: manifest.agentRevision,
|
|
177
|
+
channels: results,
|
|
178
|
+
reconciledAt: new Date().toISOString()
|
|
179
|
+
});
|
|
180
|
+
console.log(JSON.stringify(results, null, 2));
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
if (!existsSync(agentRoot)) {
|
|
184
|
+
throw new Error(`Agent root not found: ${agentRoot}. Run "assembly-line init ${agentRoot}" to scaffold a new agent.`);
|
|
185
|
+
}
|
|
186
|
+
loadProjectEnv(agentRoot);
|
|
187
|
+
switch (command) {
|
|
188
|
+
case "validate": {
|
|
189
|
+
const modelCatalog = booleanFlag(parsed, "no-model-check") ? undefined : await loadModelCatalog();
|
|
190
|
+
const result = validateAgentFolder(agentRoot, modelCatalog ? { modelCatalog } : {});
|
|
191
|
+
const issues = [...result.issues];
|
|
192
|
+
if (result.valid)
|
|
193
|
+
issues.push(...providerResolutionIssues(agentRoot));
|
|
194
|
+
printIssues(issues, { agentRoot });
|
|
195
|
+
if (!result.valid)
|
|
196
|
+
process.exit(1);
|
|
197
|
+
console.log(`Valid Assembly Line agent: ${agentRoot}`);
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
case "manifest": {
|
|
201
|
+
const manifest = compileAgent({ root: agentRoot });
|
|
202
|
+
const writePath = stringFlag(parsed, "write");
|
|
203
|
+
if (writePath) {
|
|
204
|
+
writeJson(resolve(process.cwd(), writePath), manifest);
|
|
205
|
+
console.log(`Wrote manifest ${writePath}`);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
console.log(JSON.stringify(manifest, null, 2));
|
|
209
|
+
}
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
case "build": {
|
|
213
|
+
const artifact = buildAgent(buildOptions(parsed, agentRoot));
|
|
214
|
+
console.log(`Built Assembly Line agent revision ${artifact.manifest.agentRevision}`);
|
|
215
|
+
console.log(`Artifact: ${artifact.root}`);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
case "dev": {
|
|
219
|
+
const devOptions = {
|
|
220
|
+
agentRoot,
|
|
221
|
+
approve: booleanFlag(parsed, "approve"),
|
|
222
|
+
watch: booleanFlag(parsed, "watch")
|
|
223
|
+
};
|
|
224
|
+
const outDir = stringFlag(parsed, "out");
|
|
225
|
+
const message = stringFlag(parsed, "message");
|
|
226
|
+
const toolName = stringFlag(parsed, "tool");
|
|
227
|
+
const port = numberFlag(parsed, "port");
|
|
228
|
+
if (outDir)
|
|
229
|
+
devOptions.outDir = outDir;
|
|
230
|
+
if (message)
|
|
231
|
+
devOptions.message = message;
|
|
232
|
+
if (toolName)
|
|
233
|
+
devOptions.toolName = toolName;
|
|
234
|
+
if (port !== undefined)
|
|
235
|
+
devOptions.port = port;
|
|
236
|
+
await runDevCommand(devOptions);
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
case "run": {
|
|
240
|
+
const artifact = buildAgent(buildOptions(parsed, agentRoot));
|
|
241
|
+
const runtimeOptions = loadRuntimeBundle(artifact.root);
|
|
242
|
+
const runtime = new OpenEveRuntime(withNodeModelHarnesses({
|
|
243
|
+
...runtimeOptions,
|
|
244
|
+
state: new FileStateAdapter(resolve(artifact.root, "run-state.json")),
|
|
245
|
+
blob: new LocalBlobAdapter(resolve(artifact.root, "blobs")),
|
|
246
|
+
sandbox: new LocalSandboxAdapter(resolve(artifact.root, "sandbox")),
|
|
247
|
+
// stdout is the machine-readable run result; all runtime logs go to stderr.
|
|
248
|
+
logger: createJsonConsoleLogger({
|
|
249
|
+
level: normalizeLogLevel(process.env.OPENEVE_LOG_LEVEL) ?? "info",
|
|
250
|
+
allToStderr: true
|
|
251
|
+
}),
|
|
252
|
+
devMode: true
|
|
253
|
+
}));
|
|
254
|
+
const input = stringFlag(parsed, "input");
|
|
255
|
+
let parsedInput;
|
|
256
|
+
if (input !== undefined) {
|
|
257
|
+
try {
|
|
258
|
+
parsedInput = JSON.parse(input);
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
console.error(`Invalid JSON for --input: ${error instanceof Error ? error.message : String(error)}. Example: --input '{"text":"hello"}'`);
|
|
262
|
+
process.exit(1);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
const runOptions = {
|
|
266
|
+
message: stringFlag(parsed, "message") ?? "Hello from Assembly Line",
|
|
267
|
+
approve: booleanFlag(parsed, "approve"),
|
|
268
|
+
channel: stringFlag(parsed, "channel") ?? "local"
|
|
269
|
+
};
|
|
270
|
+
const toolName = stringFlag(parsed, "tool");
|
|
271
|
+
if (toolName)
|
|
272
|
+
Object.assign(runOptions, { toolName });
|
|
273
|
+
if (parsedInput !== undefined)
|
|
274
|
+
Object.assign(runOptions, { input: parsedInput });
|
|
275
|
+
const result = await runtime.run(runOptions);
|
|
276
|
+
console.log(JSON.stringify(result, null, 2));
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
case "eval": {
|
|
280
|
+
await runEvalCommand(agentRoot, parsed);
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
case "serve": {
|
|
284
|
+
const artifact = buildAgent(buildOptions(parsed, agentRoot));
|
|
285
|
+
const runtimeOptions = loadRuntimeBundle(artifact.root);
|
|
286
|
+
if (booleanFlag(parsed, "once")) {
|
|
287
|
+
new OpenEveRuntime({ ...runtimeOptions, devMode: true }).boot();
|
|
288
|
+
console.log(`Assembly Line runtime serving ${runtimeOptions.manifest.agentRevision}`);
|
|
289
|
+
console.log("serve check completed without binding a socket");
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
const host = stringFlag(parsed, "host");
|
|
293
|
+
const handle = await listenNodeRuntime({
|
|
294
|
+
...runtimeOptions,
|
|
295
|
+
state: new FileStateAdapter(resolve(artifact.root, "serve-state.json")),
|
|
296
|
+
blob: new LocalBlobAdapter(resolve(artifact.root, "blobs")),
|
|
297
|
+
sandbox: new LocalSandboxAdapter(resolve(artifact.root, "sandbox")),
|
|
298
|
+
devMode: true,
|
|
299
|
+
port: numberFlag(parsed, "port") ?? 0,
|
|
300
|
+
...(host !== undefined ? { host } : {})
|
|
301
|
+
});
|
|
302
|
+
console.log(`Assembly Line runtime serving ${runtimeOptions.manifest.agentRevision}`);
|
|
303
|
+
console.log(handle.url);
|
|
304
|
+
// SIGTERM/SIGINT drain in-flight runs before exit; a second signal exits immediately.
|
|
305
|
+
installSignalHandlers(handle);
|
|
306
|
+
await handle.closed;
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
case "deploy": {
|
|
310
|
+
await runDeployCommand(agentRoot, parsed);
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
default:
|
|
314
|
+
console.error(`Unknown command: ${command}. Run "assembly-line help" for usage.`);
|
|
315
|
+
process.exit(1);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC7G,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,yEAAyE;AACzE,+EAA+E;AAC/E,6EAA6E;AAC7E,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAErC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAE/B,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;IACnE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,uCAAuC,CAAC,CAAC;IAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC/D,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;QACzC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,8KAA8K,CAAC,CAAC;IAChM,CAAC;SAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,uGAAuG,CAAC,CAAC;IACzH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5F,KAAK,MAAM,IAAI,IAAI,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;YAC9G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,6BAA6B,OAAO,4BAA4B,CAAC,CAAC;QACpH,CAAC;QACD,cAAc,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,aAAa,CAAC;YAClB,KAAK;YACL,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;YAChC,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;YACpC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;YAC3C,UAAU;SACX,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QACrD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,mCAAmC,UAAU,kEAAkE,CAAC,CAAC;YAC/H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,eAAe,6BAA6B,eAAe,4BAA4B,CAAC,CAAC;QACpI,CAAC;QACD,MAAM,2BAA2B,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,0BAA0B,QAAQ,IAAI,QAAQ,+CAA+C,CAAC,CAAC;YAC7G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC;QACjF,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzB,MAAM,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,GAAG,CAAC,CAAC;QACnF,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,GAAG,CAAC,CAAC;QACvF,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,MAAM,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;IAEvG,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,6DAA6D,SAAS,oBAAoB,CAAC,CAAC;QACxG,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,gCAAgC,GAAG,IAAI,QAAQ,+DAA+D,CAAC,CAAC;YAC9H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;QAC1G,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,GAAG,CAAC,CAAC;QACzF,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;YACpG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAc,CAAC,CAAC;QAC/E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACrG,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,wBAAwB,CAAC,EAAE;YACzD,SAAS,EAAE,GAAG;YACd,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,6BAA6B,SAAS,4BAA4B,CAAC,CAAC;IACxH,CAAC;IACD,cAAc,CAAC,SAAS,CAAC,CAAC;IAE1B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,gBAAgB,EAAE,CAAC;YAClG,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,MAAM,CAAC,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC;YACtE,WAAW,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9C,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,OAAO;QACT,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,sCAAsC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,UAAU,GAAwC;gBACtD,SAAS;gBACT,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;aACpC,CAAC;YACF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,MAAM;gBAAE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YACvC,IAAI,OAAO;gBAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1C,IAAI,QAAQ;gBAAE,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC7C,IAAI,IAAI,KAAK,SAAS;gBAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YAC/C,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7D,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,sBAAsB,CAAC;gBACxD,GAAG,cAAc;gBACjB,KAAK,EAAE,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBACrE,IAAI,EAAE,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC3D,OAAO,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACnE,4EAA4E;gBAC5E,MAAM,EAAE,uBAAuB,CAAC;oBAC9B,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,MAAM;oBACjE,WAAW,EAAE,IAAI;iBAClB,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC,CAAC,CAAC;YACJ,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1C,IAAI,WAAoB,CAAC;YACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;oBAC1I,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,0BAA0B;gBACpE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC;gBACvC,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,OAAO;aAClD,CAAC;YACF,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACtD,IAAI,WAAW,KAAK,SAAS;gBAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACjF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7D,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gBAChC,IAAI,cAAc,CAAC,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,iCAAiC,cAAc,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;gBACtF,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,GAAG,cAAc;gBACjB,KAAK,EAAE,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;gBACvE,IAAI,EAAE,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC3D,OAAO,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACnE,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,iCAAiC,cAAc,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,sFAAsF;YACtF,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,MAAM,CAAC,MAAM,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,uCAAuC,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
|
package/dist/init.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ValidationIssue } from "@assemblyline-agents/core";
|
|
2
|
+
export declare function initAgent(root: string): void;
|
|
3
|
+
/**
|
|
4
|
+
* validateAgentFolder never resolves community plugin providers (that needs
|
|
5
|
+
* a child-process import); the full compile does. Surface just those
|
|
6
|
+
* package-resolution warnings so `assembly-line validate` prints a Fix: line.
|
|
7
|
+
*/
|
|
8
|
+
export declare function providerResolutionIssues(root: string): ValidationIssue[];
|
|
9
|
+
/** Install hint for missing deploy requirements whose plugin package is not installed. */
|
|
10
|
+
export declare function missingPackageFixLines(adapterKind: string | undefined, agentRoot: string): string[];
|
|
11
|
+
/** Install hints for provider-resolution errors thrown by the Node host resolver. */
|
|
12
|
+
export declare function providerLoadFixLines(message: string): string[];
|
|
13
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAI1F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAuC5C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAMxE;AAED,0FAA0F;AAC1F,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAKnG;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAa9D"}
|
package/dist/init.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { compileAgent } from "@assemblyline-agents/compiler";
|
|
4
|
+
import { adapterProviderMetadata } from "@assemblyline-agents/core";
|
|
5
|
+
import { gatewayScaffoldSource } from "./add.js";
|
|
6
|
+
import { installFixLines, packageResolvableFrom } from "./pm.js";
|
|
7
|
+
export function initAgent(root) {
|
|
8
|
+
mkdirSync(root, { recursive: true });
|
|
9
|
+
writeFileSync(resolve(root, "instructions.md"), "You are a concise Assembly Line agent. Use tools when they are available.\n");
|
|
10
|
+
writeFileSync(resolve(root, "agent.ts"), [
|
|
11
|
+
'import { defineAgent } from "@assemblyline-agents/core";',
|
|
12
|
+
"",
|
|
13
|
+
'// Any "provider/model" spec from the model catalog works. openai/* needs OPENAI_API_KEY; openai-codex/* uses `codex login`.',
|
|
14
|
+
"export default defineAgent({",
|
|
15
|
+
' model: "openai/gpt-5.4-mini"',
|
|
16
|
+
"});",
|
|
17
|
+
""
|
|
18
|
+
].join("\n"));
|
|
19
|
+
mkdirSync(resolve(root, "tools"), { recursive: true });
|
|
20
|
+
writeFileSync(resolve(root, "tools/echo.ts"), [
|
|
21
|
+
'import { defineTool } from "@assemblyline-agents/core";',
|
|
22
|
+
"",
|
|
23
|
+
"export default defineTool({",
|
|
24
|
+
' description: "Echo a message back to the caller.",',
|
|
25
|
+
" inputSchema: {",
|
|
26
|
+
' type: "object",',
|
|
27
|
+
" properties: {",
|
|
28
|
+
' message: { type: "string" }',
|
|
29
|
+
" },",
|
|
30
|
+
' required: ["message"]',
|
|
31
|
+
" },",
|
|
32
|
+
" async execute(input: { message: string }) {",
|
|
33
|
+
" return { message: input.message };",
|
|
34
|
+
" }",
|
|
35
|
+
"});",
|
|
36
|
+
""
|
|
37
|
+
].join("\n"));
|
|
38
|
+
writeFileSync(resolve(root, ".env.example"), "OPENAI_API_KEY=\n");
|
|
39
|
+
writeFileSync(resolve(root, "gateway.ts"), gatewayScaffoldSource());
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* validateAgentFolder never resolves community plugin providers (that needs
|
|
43
|
+
* a child-process import); the full compile does. Surface just those
|
|
44
|
+
* package-resolution warnings so `assembly-line validate` prints a Fix: line.
|
|
45
|
+
*/
|
|
46
|
+
export function providerResolutionIssues(root) {
|
|
47
|
+
try {
|
|
48
|
+
return compileAgent({ root }).validation.issues.filter((issue) => issue.code === "provider-package-unresolved");
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Install hint for missing deploy requirements whose plugin package is not installed. */
|
|
55
|
+
export function missingPackageFixLines(adapterKind, agentRoot) {
|
|
56
|
+
if (!adapterKind)
|
|
57
|
+
return [];
|
|
58
|
+
const packageName = adapterProviderMetadata(adapterKind)?.packageName;
|
|
59
|
+
if (!packageName || packageResolvableFrom(packageName, [agentRoot, process.cwd()]))
|
|
60
|
+
return [];
|
|
61
|
+
return installFixLines(packageName, agentRoot, adapterKind);
|
|
62
|
+
}
|
|
63
|
+
/** Install hints for provider-resolution errors thrown by the Node host resolver. */
|
|
64
|
+
export function providerLoadFixLines(message) {
|
|
65
|
+
const agentRoot = process.cwd();
|
|
66
|
+
const failedLoad = /Failed to load plugin package (\S+) for [a-z]+:([\w.@/-]+)/u.exec(message);
|
|
67
|
+
if (failedLoad?.[1]) {
|
|
68
|
+
const kind = failedLoad[2];
|
|
69
|
+
return installFixLines(failedLoad[1], agentRoot, kind && adapterProviderMetadata(kind) ? kind : undefined);
|
|
70
|
+
}
|
|
71
|
+
const unknownPackage = /No plugin package known for [a-z]+:([\w.@/-]+)\./u.exec(message);
|
|
72
|
+
if (unknownPackage?.[1]) {
|
|
73
|
+
const packageName = adapterProviderMetadata(unknownPackage[1])?.packageName;
|
|
74
|
+
if (packageName)
|
|
75
|
+
return installFixLines(packageName, agentRoot, unknownPackage[1]);
|
|
76
|
+
}
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-bin.d.ts","sourceRoot":"","sources":["../src/legacy-bin.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Temporary compatibility bin for the OpenEve → Assembly Line rename.
|
|
3
|
+
// Kept through the compatibility soak; removal is tracked in
|
|
4
|
+
// docs/rename/manifest.md.
|
|
5
|
+
console.error("openeve: this command is now `assembly-line`; the `openeve` alias will be removed in a future release.");
|
|
6
|
+
await import("./index.js");
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=legacy-bin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-bin.js","sourceRoot":"","sources":["../src/legacy-bin.ts"],"names":[],"mappings":";AACA,sEAAsE;AACtE,6DAA6D;AAC7D,2BAA2B;AAC3B,OAAO,CAAC,KAAK,CAAC,wGAAwG,CAAC,CAAC;AACxH,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC"}
|
package/dist/models.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAEA,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CASxD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,CAAC,CAK5F"}
|
package/dist/models.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const BUILT_IN_MODEL_SPECS = ["openai-codex/gpt-5.6-terra"];
|
|
2
|
+
export async function loadModelSpecs() {
|
|
3
|
+
try {
|
|
4
|
+
// The default-harness model catalog lives in @assemblyline-agents/pi. Offline-safe: any
|
|
5
|
+
// failure (missing package, import, or catalog construction) yields an empty list.
|
|
6
|
+
const pi = await import("@assemblyline-agents/pi");
|
|
7
|
+
return [...new Set([...await pi.listPiModelSpecs(), ...BUILT_IN_MODEL_SPECS])].sort();
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return [...BUILT_IN_MODEL_SPECS];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export async function loadModelCatalog() {
|
|
14
|
+
const specs = await loadModelSpecs();
|
|
15
|
+
if (specs.length === 0)
|
|
16
|
+
return undefined;
|
|
17
|
+
const set = new Set(specs);
|
|
18
|
+
return { has: (spec) => set.has(spec) };
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,MAAM,oBAAoB,GAAG,CAAC,4BAA4B,CAAU,CAAC;AAErE,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,wFAAwF;QACxF,mFAAmF;QACnF,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,gBAAgB,EAAE,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,oBAAoB,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ParsedArgs } from "./args.js";
|
|
2
|
+
export interface OperatorClientResult {
|
|
3
|
+
status: number;
|
|
4
|
+
body: unknown;
|
|
5
|
+
}
|
|
6
|
+
export declare function runOperatorCommand(resource: "runs" | "agent", parsed: ParsedArgs, env?: Record<string, string | undefined>, fetchImpl?: typeof fetch): Promise<OperatorClientResult>;
|
|
7
|
+
//# sourceMappingURL=operator-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operator-client.d.ts","sourceRoot":"","sources":["../src/operator-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAC1B,MAAM,EAAE,UAAU,EAClB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAgD/B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { stringFlag } from "./args.js";
|
|
2
|
+
export async function runOperatorCommand(resource, parsed, env = process.env, fetchImpl = fetch) {
|
|
3
|
+
const action = parsed.positional[0];
|
|
4
|
+
const runId = resource === "runs" ? parsed.positional[1] : undefined;
|
|
5
|
+
const allowed = resource === "runs" ? ["cancel", "suspend", "resume"] : ["disable", "enable", "quiesce", "resume", "status"];
|
|
6
|
+
if (!action || !allowed.includes(action) || (resource === "runs" && !runId)) {
|
|
7
|
+
throw new Error(resource === "runs"
|
|
8
|
+
? "Usage: assembly-line runs cancel|suspend|resume <runId> --url <baseUrl> [--token <token>]"
|
|
9
|
+
: "Usage: assembly-line agent disable|enable|quiesce|resume|status --url <baseUrl> [--token <token>]");
|
|
10
|
+
}
|
|
11
|
+
const baseUrl = (stringFlag(parsed, "url") ?? env.OPENEVE_URL)?.replace(/\/+$/u, "");
|
|
12
|
+
if (!baseUrl)
|
|
13
|
+
throw new Error("A deployed agent URL is required via --url or ASSEMBLY_LINE_URL.");
|
|
14
|
+
const token = stringFlag(parsed, "token") ?? env.OPENEVE_ADMIN_TOKEN;
|
|
15
|
+
if (!token)
|
|
16
|
+
throw new Error("An admin bearer token is required via --token or ASSEMBLY_LINE_ADMIN_TOKEN.");
|
|
17
|
+
const path = resource === "runs"
|
|
18
|
+
? `/runs/${encodeURIComponent(runId)}/${action}`
|
|
19
|
+
: action === "status" ? "/agent/control" : `/agent/${action}`;
|
|
20
|
+
const response = await fetchImpl(`${baseUrl}${path}`, {
|
|
21
|
+
method: action === "status" ? "GET" : "POST",
|
|
22
|
+
headers: { authorization: `Bearer ${token}`, accept: "application/json" }
|
|
23
|
+
});
|
|
24
|
+
const responseText = await response.text();
|
|
25
|
+
let body = responseText;
|
|
26
|
+
try {
|
|
27
|
+
body = responseText ? JSON.parse(responseText) : {};
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Preserve a non-JSON host response in the surfaced operator error.
|
|
31
|
+
}
|
|
32
|
+
if (!response.ok) {
|
|
33
|
+
const detail = body && typeof body === "object" && "error" in body
|
|
34
|
+
? String(body.error)
|
|
35
|
+
: responseText || response.statusText;
|
|
36
|
+
throw new Error(`Operator request failed (${response.status}): ${detail}`);
|
|
37
|
+
}
|
|
38
|
+
if (resource === "agent" && action === "quiesce" && inFlightCount(body) > 0) {
|
|
39
|
+
for (let attempt = 0; attempt < 120; attempt += 1) {
|
|
40
|
+
await new Promise((resolvePromise) => setTimeout(resolvePromise, 1_000));
|
|
41
|
+
const statusResponse = await fetchImpl(`${baseUrl}/agent/control`, {
|
|
42
|
+
method: "GET",
|
|
43
|
+
headers: { authorization: `Bearer ${token}`, accept: "application/json" }
|
|
44
|
+
});
|
|
45
|
+
const statusBody = await statusResponse.json().catch(() => ({}));
|
|
46
|
+
if (!statusResponse.ok)
|
|
47
|
+
throw new Error(`Operator quiescence status failed (${statusResponse.status}).`);
|
|
48
|
+
body = statusBody;
|
|
49
|
+
if (inFlightCount(body) === 0)
|
|
50
|
+
return { status: statusResponse.status, body };
|
|
51
|
+
}
|
|
52
|
+
throw new Error("Agent entered maintenance mode but did not drain in-flight runs within 120 seconds.");
|
|
53
|
+
}
|
|
54
|
+
return { status: response.status, body };
|
|
55
|
+
}
|
|
56
|
+
function inFlightCount(value) {
|
|
57
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
58
|
+
return 0;
|
|
59
|
+
const count = value.inFlightRuns;
|
|
60
|
+
return typeof count === "number" && Number.isFinite(count) && count > 0 ? count : 0;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=operator-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operator-client.js","sourceRoot":"","sources":["../src/operator-client.ts"],"names":[],"mappings":"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"}
|
package/dist/pm.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package-manager detection for install suggestions and `assembly-line add`.
|
|
3
|
+
* Detection stays in the CLI printing layer on purpose: the compiler and
|
|
4
|
+
* runtime never learn about lockfiles or package managers.
|
|
5
|
+
*/
|
|
6
|
+
export type PackageManager = "pnpm" | "yarn" | "npm";
|
|
7
|
+
export interface PackageManagerDetection {
|
|
8
|
+
pm: PackageManager;
|
|
9
|
+
/** Directory owning the detected lockfile (or nearest package.json). Installs run here. */
|
|
10
|
+
projectDir?: string;
|
|
11
|
+
}
|
|
12
|
+
/** Detects the package manager from lockfiles, walking up from the agent root and then the cwd. */
|
|
13
|
+
export declare function detectPackageManager(agentRoot: string, cwd?: string): PackageManagerDetection;
|
|
14
|
+
/** The literal install command for a plugin package, e.g. "pnpm add @assemblyline-agents/postgres". */
|
|
15
|
+
export declare function suggestInstallCommand(packageName: string, agentRoot: string): string;
|
|
16
|
+
/** "Fix:" lines appended wherever the CLI surfaces a missing plugin package. */
|
|
17
|
+
export declare function installFixLines(packageName: string, agentRoot: string, registryKind?: string): string[];
|
|
18
|
+
/** True when the package resolves from any of the given directories (or the CLI itself). */
|
|
19
|
+
export declare function packageResolvableFrom(packageName: string, dirs: string[]): boolean;
|
|
20
|
+
//# sourceMappingURL=pm.d.ts.map
|
package/dist/pm.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pm.d.ts","sourceRoot":"","sources":["../src/pm.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,cAAc,CAAC;IACnB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAQD,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,uBAAuB,CAc5G;AAED,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAIvG;AAED,4FAA4F;AAC5F,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAelF"}
|