@hybridlabor-api/aos 4.15.0 → 4.16.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/bin/aos-acp.mjs +7 -3
- package/bin/aos-doctor.mjs +21 -6
- package/installer.js +341 -163
- package/package.json +2 -2
- package/skills/basic/master-session/SKILL.md +1 -1
- package/skills/playbooks/pb-bug-fix/SKILL.md +48 -0
- package/skills/playbooks/pb-clip-from-moodboard/SKILL.md +55 -0
- package/skills/playbooks/pb-crew-call-sheet/SKILL.md +40 -0
- package/skills/playbooks/pb-deploy-saas/SKILL.md +44 -0
- package/skills/playbooks/pb-docs-site/SKILL.md +44 -0
- package/skills/playbooks/pb-focus-chunks/SKILL.md +40 -0
- package/skills/playbooks/pb-handover/SKILL.md +41 -0
- package/skills/playbooks/pb-harness-work/SKILL.md +64 -0
- package/skills/playbooks/pb-health-weekly/SKILL.md +43 -0
- package/skills/playbooks/pb-idea-to-launch/SKILL.md +51 -0
- package/skills/playbooks/pb-image-to-3d/SKILL.md +46 -0
- package/skills/playbooks/pb-inbox-zero/SKILL.md +39 -0
- package/skills/playbooks/pb-invoice-check/SKILL.md +41 -0
- package/skills/playbooks/pb-landing-page/SKILL.md +46 -0
- package/skills/playbooks/pb-launch-video/SKILL.md +49 -0
- package/skills/playbooks/pb-machine-setup/SKILL.md +44 -0
- package/skills/playbooks/pb-master/SKILL.md +53 -0
- package/skills/playbooks/pb-newsletter/SKILL.md +43 -0
- package/skills/playbooks/pb-offer/SKILL.md +39 -0
- package/skills/playbooks/pb-open-source/SKILL.md +50 -0
- package/skills/playbooks/pb-pcb-to-case/SKILL.md +46 -0
- package/skills/playbooks/pb-redesign-app/SKILL.md +47 -0
- package/skills/playbooks/pb-release-aos/SKILL.md +50 -0
- package/skills/playbooks/pb-security-sweep/SKILL.md +48 -0
- package/skills/playbooks/pb-ship/SKILL.md +49 -0
- package/skills/playbooks/pb-show-build/SKILL.md +48 -0
- package/skills/playbooks/pb-social-pack/SKILL.md +47 -0
- package/skills/playbooks/pb-todo/SKILL.md +41 -0
- package/skills/playbooks/pb-worktrees-land/SKILL.md +52 -0
package/bin/aos-acp.mjs
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// aos-acp <claude|codex|opencode|agy> --name <worker> [--cwd <dir>]
|
|
10
10
|
// (--prompt "<text>" | --prompt-file <f>) [--allow-default deny|allow]
|
|
11
11
|
// [--go-wait <sec>] [--consume|--no-consume] [--log <file>]
|
|
12
|
-
// [--timeout <sec>] [--cmd "<custom agent command>"]
|
|
12
|
+
// [--model <id>] [--timeout <sec>] [--cmd "<custom agent command>"]
|
|
13
13
|
|
|
14
14
|
import { spawn } from "node:child_process";
|
|
15
15
|
import { appendFileSync, mkdirSync, readFileSync, realpathSync } from "node:fs";
|
|
@@ -130,8 +130,9 @@ export async function run(opts) {
|
|
|
130
130
|
? "agy has no sanctioned ACP adapter (antigravity-acp breaches Google's Antigravity terms); delegate via the mcsc skill instead"
|
|
131
131
|
: `unknown adapter "${opts.adapter}" (claude|codex|opencode)`);
|
|
132
132
|
if (adapter?.cwdFlag && !opts.cmd) cmd.push(adapter.cwdFlag, opts.cwd);
|
|
133
|
+
if (/fable/i.test(opts.model || "")) throw new Error(`model "${opts.model}" rejected: workers run on opus, sonnet or haiku only`);
|
|
133
134
|
const consume = opts.consume ?? adapter?.consume ?? true;
|
|
134
|
-
log("start", { adapter: opts.adapter, cmd: cmd.join(" "), cwd: opts.cwd, allow_default: opts.allowDefault, consume });
|
|
135
|
+
log("start", { adapter: opts.adapter, cmd: cmd.join(" "), cwd: opts.cwd, allow_default: opts.allowDefault, consume, model: opts.model || "adapter default" });
|
|
135
136
|
|
|
136
137
|
let sessionId;
|
|
137
138
|
const out = opts.stdout || process.stdout;
|
|
@@ -169,6 +170,8 @@ export async function run(opts) {
|
|
|
169
170
|
log("initialized", { agent: init?.agentInfo, auth: init?.authMethods });
|
|
170
171
|
({ sessionId } = await client.request("session/new", { cwd: opts.cwd, mcpServers: [] }));
|
|
171
172
|
log("session", { sessionId });
|
|
173
|
+
// ACP session config option "model": claude-agent-acp, codex-acp and opencode all implement it.
|
|
174
|
+
if (opts.model) await client.request("session/set_config_option", { sessionId, configId: "model", value: opts.model });
|
|
172
175
|
const res = await client.request("session/prompt", { sessionId, prompt: [{ type: "text", text: opts.prompt }] });
|
|
173
176
|
out.write("\n");
|
|
174
177
|
log("done", { stopReason: res?.stopReason });
|
|
@@ -194,12 +197,13 @@ export function parseArgs(argv) {
|
|
|
194
197
|
else if (a === "--go-wait") o.goWait = Number(v), i++;
|
|
195
198
|
else if (a === "--timeout") o.timeout = Number(v), i++;
|
|
196
199
|
else if (a === "--log") o.log = v, i++;
|
|
200
|
+
else if (a === "--model") o.model = v, i++;
|
|
197
201
|
else if (a === "--cmd") o.cmd = v, i++;
|
|
198
202
|
else if (a === "--consume") o.consume = true;
|
|
199
203
|
else if (a === "--no-consume") o.consume = false;
|
|
200
204
|
else throw new Error(`unknown argument ${a}`);
|
|
201
205
|
}
|
|
202
|
-
if (!o.adapter || !o.name || !o.prompt) throw new Error("usage: aos-acp <claude|codex|opencode> --name <worker> --prompt <text> [--cwd <dir>] [--allow-default deny|allow] [--go-wait <sec>] [--no-consume] [--log <file>] [--timeout <sec>]");
|
|
206
|
+
if (!o.adapter || !o.name || !o.prompt) throw new Error("usage: aos-acp <claude|codex|opencode> --name <worker> --prompt <text> [--cwd <dir>] [--allow-default deny|allow] [--go-wait <sec>] [--no-consume] [--model <id>] [--log <file>] [--timeout <sec>]");
|
|
203
207
|
if (!["deny", "allow"].includes(o.allowDefault)) throw new Error("--allow-default must be deny or allow");
|
|
204
208
|
return o;
|
|
205
209
|
}
|
package/bin/aos-doctor.mjs
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
|
|
9
9
|
import { execFileSync } from 'node:child_process';
|
|
10
10
|
import { connect } from 'node:net';
|
|
11
|
+
import { createRequire } from 'node:module';
|
|
11
12
|
import os from 'node:os';
|
|
12
13
|
import path from 'node:path';
|
|
13
14
|
|
|
@@ -300,6 +301,20 @@ async function checkDaemonsAndModules() {
|
|
|
300
301
|
? 'Enable AO in the installer or run: ao service install'
|
|
301
302
|
: 'AO binary is arm64 macOS native; build from source on other platforms: github.com/hybridlabor-api/bdb-agent-orchestrator', false);
|
|
302
303
|
|
|
304
|
+
// Installed ao vs a local AO checkout's HEAD, read from the binary's embedded build info.
|
|
305
|
+
const aoCheckout = firstExisting([h('dev', 'agents', 'bdb-agent-orchestrator'), h('dev', 'bdb-dev', 'bdb-agent-orchestrator')]);
|
|
306
|
+
if (aoBin && aoCheckout && existsSync(path.join(aoCheckout, '.git'))) {
|
|
307
|
+
const { readGoBuildInfo } = createRequire(import.meta.url)('../installer.js');
|
|
308
|
+
const build = readGoBuildInfo(aoBin.replace(/^~/, HOME));
|
|
309
|
+
let head = null;
|
|
310
|
+
try { head = execFileSync('git', ['--no-optional-locks', '-C', aoCheckout, 'rev-parse', 'HEAD'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim(); } catch {}
|
|
311
|
+
const same = !!(build && head && build.revision === head && !build.modified);
|
|
312
|
+
add('daemons', 'AO revision vs checkout', same,
|
|
313
|
+
!build ? 'Installed ao has no readable build revision'
|
|
314
|
+
: `Installed ${build.revision.slice(0, 9)}${build.modified ? ' (dirty build)' : ''} · checkout HEAD ${head ? head.slice(0, 9) : 'unknown'}`,
|
|
315
|
+
`Rebuild from a clean checkout: cd ${tilde(path.join(aoCheckout, 'backend'))} && go build -ldflags='-s -w' -o ~/.local/bin/ao.new ./cmd/ao && mv ~/.local/bin/ao.new ~/.local/bin/ao && ao service install`, true);
|
|
316
|
+
}
|
|
317
|
+
|
|
303
318
|
// Code-signing check for AO on macOS
|
|
304
319
|
if (IS_MAC && aoBin) {
|
|
305
320
|
let signed = false;
|
|
@@ -318,15 +333,15 @@ function printAoAnnouncement() {
|
|
|
318
333
|
console.log(`
|
|
319
334
|
╭──────────────────────────────────────────────────────────────────────────────╮
|
|
320
335
|
│ │
|
|
321
|
-
│
|
|
336
|
+
│ BDB AGENT ORCHESTRATOR APP — FINAL BETA NOW AVAILABLE │
|
|
322
337
|
│ │
|
|
323
|
-
│
|
|
324
|
-
│
|
|
338
|
+
│ The next generation of cross-harness multi-agent orchestration │
|
|
339
|
+
│ is now open to every user as a final beta. │
|
|
325
340
|
│ │
|
|
326
341
|
│ • Dashboard & WebUI: http://localhost:3101 │
|
|
327
|
-
│ • Service
|
|
328
|
-
│ • Quick
|
|
329
|
-
│ • Features:
|
|
342
|
+
│ • Service command: ao service install (enables the background service) │
|
|
343
|
+
│ • Quick launch: ao open or ao service status │
|
|
344
|
+
│ • Features: session telemetry, live AgentTrail, multi-workspaces │
|
|
330
345
|
│ │
|
|
331
346
|
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
332
347
|
`);
|