@hybridlabor-api/aos 4.16.0 → 4.18.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/.agents/plugins/marketplace.json +20 -0
- package/.claude/hooks/aos-bus.mjs +8 -4
- package/.claude/hooks/env-file-protection.mjs +19 -1
- package/.claude/hooks/go-gate.mjs +788 -69
- package/.claude/hooks/go-grant.mjs +88 -0
- package/.claude/hooks/go-token.mjs +17 -2
- package/.claude/hooks/memb-inject.mjs +61 -37
- package/.claude/settings.json +8 -0
- package/.codex-plugin/plugin.json +36 -6
- package/.opencode/commands/bdb-aos-brainstorm.md +5 -0
- package/.opencode/commands/bdb-aos-doctor.md +5 -0
- package/.opencode/commands/bdb-aos-graph.md +5 -0
- package/.opencode/commands/bdb-aos-init.md +5 -0
- package/.opencode/commands/bdb-aos-loop.md +5 -0
- package/.opencode/commands/bdb-aos-mastersession.md +5 -0
- package/.opencode/commands/bdb-aos-memb.md +5 -0
- package/.opencode/commands/bdb-aos-orchestrator.md +5 -0
- package/.opencode/commands/bdb-aos-plan.md +5 -0
- package/.opencode/commands/bdb-aos-playbooks.md +5 -0
- package/.opencode/commands/bdb-aos-setup.md +5 -0
- package/.opencode/commands/bdb-aos-shipping.md +5 -0
- package/.opencode/commands/bdb-aos-startproject.md +5 -0
- package/.opencode/commands/bdb-aos-store.md +5 -0
- package/.opencode/plugins/bdb-aos.js +54 -10
- package/README.md +5 -4
- package/THIRD_PARTY_NOTICES.md +2 -2
- package/agy-commands/loop.md +5 -0
- package/bin/aos-acp.mjs +27 -1
- package/bin/aos-doctor.mjs +41 -4
- package/bin/aos-uninstall.mjs +41 -3
- package/bin/go-check.mjs +79 -0
- package/bin/guarded-patterns.json +106 -0
- package/commands/brainstorm.md +5 -0
- package/commands/doctor.md +5 -0
- package/commands/graph.md +5 -0
- package/commands/init.md +5 -0
- package/commands/loop.md +5 -0
- package/commands/mastersession.md +5 -0
- package/commands/memb.md +5 -0
- package/commands/orchestrator.md +5 -0
- package/commands/plan.md +5 -0
- package/commands/playbooks.md +5 -0
- package/commands/setup.md +5 -0
- package/commands/shipping.md +5 -0
- package/commands/startproject.md +5 -0
- package/commands/store.md +5 -0
- package/docs/codenotch.md +44 -0
- package/docs/codex-agy-setup.md +16 -0
- package/docs/codex-gate-smoke.md +43 -0
- package/docs/delegation-routing.md +32 -0
- package/docs/go-check.md +60 -0
- package/docs/master-session-acp.md +2 -0
- package/docs/opencode-setup.md +54 -0
- package/docs/plugin-migration.md +61 -0
- package/installer.js +351 -121
- package/lib/codenotch.js +389 -0
- package/lib/plugin-migration.js +462 -0
- package/lib/retired-skills.js +101 -0
- package/lib/store-ui/index.html +9 -1
- package/lib/store-ui/server.mjs +2 -0
- package/mcps/mcsc/README.md +1 -1
- package/mcps/mcsc/packages/core/src/adapters/agy.js +3 -1
- package/mcps/mcsc/packages/core/src/adapters/codex.js +2 -1
- package/mcps/mcsc/packages/core/src/adapters/opencode.js +2 -1
- package/mcps/mcsc/packages/core/src/depth.js +16 -0
- package/mcps/mcsc/packages/mcp/server.js +15 -2
- package/package.json +7 -2
- package/plugin-commands.json +143 -0
- package/plugin.json +299 -0
- package/plugins/bdb-aos-codex/.codex-plugin/plugin.json +38 -0
- package/plugins/bdb-aos-codex/skills/brainstorm/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/doctor/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/graph/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/init/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/loop/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/mastersession/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/memb/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/orchestrator/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/plan/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/playbooks/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/setup/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/shipping/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/startproject/SKILL.md +6 -0
- package/plugins/bdb-aos-codex/skills/store/SKILL.md +6 -0
- package/scripts/build-plugin-manifest.mjs +202 -3
- package/scripts/codex-gate-smoke.mjs +73 -0
- package/skills/basic/master-session/SKILL.md +11 -0
- package/skills/bdb-aos/scripts/list-playbooks.mjs +72 -0
- package/skills/global_config/agenttrail/SKILL.md +3 -1
- package/skills/global_config/agenttrail/bin/agenttrail.mjs +255 -117
- package/skills/global_config/agenttrail/bin/ensure.mjs +60 -40
- package/skills/global_config/agenttrail/bin/repoid.mjs +70 -0
- package/skills/global_config/agenttrail/public/index.html +9 -1
- package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +1 -1
- package/skills/global_config/bdb-memb-mcp/SKILL.md +5 -4
- package/skills/global_config/bdb-visual-edit/SKILL.md +28 -32
- package/skills/global_config/bdb-visual-edit/references/vite-react-source-attr.md +2 -2
- package/skills/global_config/bdb-visual-edit/scripts/locate-source.mjs +135 -0
- package/skills/global_config/bdb-visual-edit/scripts/sanitize-element.mjs +30 -2
- package/skills/global_config/gogate/SKILL.md +123 -0
- package/skills/global_config/loop-templates/SKILL.md +27 -0
- package/skills/global_config/loop-templates/references/ci-until-green.md +27 -0
- package/skills/global_config/loop-templates/references/daily-summary.md +27 -0
- package/skills/global_config/loop-templates/references/pr-to-merge.md +27 -0
- package/skills/global_config/loop-templates/references/review-rounds.md +27 -0
- package/skills/global_config/mcsc/SKILL.md +9 -1
- package/skills/global_config/plan-arbiter/SKILL.md +1 -1
- package/skills/global_config/plan-canvas/SKILL.md +42 -4
- package/skills/global_config/plan-canvas/scripts/lib/plan-builder/README.md +1 -1
- package/skills/global_config/plan-canvas/scripts/lib/plan-builder/render.js +2 -2
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/annotate-client/geometry.js +76 -0
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/annotate-client/index.js +596 -0
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/annotate-client/model.js +192 -0
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/annotate-client/toolbar.js +99 -0
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/annotate-server.js +282 -0
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/annotation-schema.js +210 -0
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/route.js +10 -0
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/sdk.js +6 -230
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/server.js +45 -4
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/sessions.js +60 -21
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/trail-on-approve.js +103 -0
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/ui.js +19 -7
- package/skills/global_config/plan-canvas/scripts/plan-canvas.js +118 -20
- package/skills/global_config/subagent-setup/SKILL.md +6 -0
- package/skills/global_config/subagent-setup/scripts/setup-subagents.mjs +20 -1
- package/skills/playbooks/pb-idea-to-launch/SKILL.md +2 -2
- package/skills/playbooks/pb-redesign-app/SKILL.md +3 -3
- package/skills/playbooks/pb-release-aos/SKILL.md +2 -2
- package/skills/playbooks/pb-ship/SKILL.md +2 -2
- package/skills/playbooks/pb-worktrees-land/SKILL.md +2 -2
- package/.codex-plugin/marketplace.json +0 -11
- package/skills/global_config/bdb-visual-edit/scripts/pick-snippet.js +0 -27
- package/skills/global_config/visual-edit/README.md +0 -96
- package/skills/global_config/visual-edit/SKILL.md +0 -615
- package/skills/global_config/visual-plan/README.md +0 -93
- package/skills/global_config/visual-plan/SKILL.md +0 -544
- package/skills/global_config/visual-plan/references/canvas.md +0 -139
- package/skills/global_config/visual-plan/references/connection.md +0 -51
- package/skills/global_config/visual-plan/references/document-quality.md +0 -186
- package/skills/global_config/visual-plan/references/exemplar.md +0 -62
- package/skills/global_config/visual-plan/references/local-files.md +0 -99
- package/skills/global_config/visual-plan/references/wireframe.md +0 -319
- package/skills/global_config/visual-recap/README.md +0 -103
- package/skills/global_config/visual-recap/SKILL.md +0 -560
- package/skills/global_config/visual-recap/references/connection.md +0 -51
- package/skills/global_config/visual-recap/references/local-files.md +0 -99
- package/skills/global_config/visual-recap/references/wireframe.md +0 -319
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "bdb-aos",
|
|
3
|
+
"interface": {
|
|
4
|
+
"displayName": "BDB Agent OS"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "bdb-aos",
|
|
9
|
+
"source": {
|
|
10
|
+
"source": "local",
|
|
11
|
+
"path": "./plugins/bdb-aos-codex"
|
|
12
|
+
},
|
|
13
|
+
"policy": {
|
|
14
|
+
"installation": "AVAILABLE",
|
|
15
|
+
"authentication": "ON_INSTALL"
|
|
16
|
+
},
|
|
17
|
+
"category": "Developer Tools"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -68,17 +68,21 @@ export function touchSession(name, pid = process.pid) {
|
|
|
68
68
|
|
|
69
69
|
const alive = (pid) => { try { process.kill(pid, 0); return true; } catch (e) { return e.code === "EPERM"; } };
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
// prune: also delete registrations that are dead, stale or corrupt (registration files only, never inboxes).
|
|
72
|
+
export function listSessions({ prune = false } = {}) {
|
|
72
73
|
const dir = join(homedir(), ".aos", "bus", "sessions");
|
|
73
74
|
const out = [];
|
|
74
75
|
let files = [];
|
|
75
76
|
try { files = readdirSync(dir).filter((f) => f.endsWith(".json")); } catch { /* none */ }
|
|
76
77
|
for (const f of files) {
|
|
78
|
+
const file = join(dir, f);
|
|
79
|
+
let live = false;
|
|
77
80
|
try {
|
|
78
|
-
const file = join(dir, f);
|
|
79
81
|
const r = JSON.parse(readFileSync(file, "utf8"));
|
|
80
|
-
|
|
82
|
+
live = Number.isInteger(r.pid) && alive(r.pid) && Date.now() - lstatSync(file).mtimeMs < STALE_MS;
|
|
83
|
+
if (live) out.push(r);
|
|
81
84
|
} catch { /* corrupt entry */ }
|
|
85
|
+
if (prune && !live) { try { unlinkSync(file); } catch { /* already gone */ } }
|
|
82
86
|
}
|
|
83
87
|
return out;
|
|
84
88
|
}
|
|
@@ -134,7 +138,7 @@ if (isMain()) {
|
|
|
134
138
|
if (cmd === "send" && words.length >= 2) {
|
|
135
139
|
console.log(sendMessage(words[0], words.slice(1).join(" "), opts));
|
|
136
140
|
} else if (cmd === "list") {
|
|
137
|
-
for (const s of listSessions()) console.log(`${s.name}\tpid ${s.pid}\t${s.cwd}`);
|
|
141
|
+
for (const s of listSessions({ prune: true })) console.log(`${s.name}\tpid ${s.pid}\t${s.cwd}`);
|
|
138
142
|
} else {
|
|
139
143
|
console.error("usage: aos-bus send <name> <text...> [--from x] [--wake] | aos-bus list");
|
|
140
144
|
process.exit(2);
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
import { readFileSync, realpathSync } from "node:fs";
|
|
22
22
|
import { fileURLToPath } from "node:url";
|
|
23
|
-
import { basename } from "node:path";
|
|
23
|
+
import { basename, dirname, resolve } from "node:path";
|
|
24
24
|
|
|
25
25
|
// Templates are committed on purpose and hold no live secret. Blocking them
|
|
26
26
|
// would contradict this hook's own advice below ("write it to .env.example").
|
|
@@ -68,8 +68,26 @@ function reasonFor(filePath) {
|
|
|
68
68
|
].join("\n");
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
// The go-gate store (~/.aos/gate: modes and grants, ~/.aos/go: GO tokens) is
|
|
72
|
+
// written only by the AOS hooks. Same honest limit as go-gate's Bash guard: a
|
|
73
|
+
// same-uid agent running its own code can still write there; the store is
|
|
74
|
+
// worthless without the matching human transcript entry the gate re-verifies.
|
|
75
|
+
// /i: APFS and NTFS are case-insensitive, so ~/.AOS/Gate is the same directory.
|
|
76
|
+
const GATE_STORE = /(?:^|[\\/])\.aos[\\/](?:gate|go)(?:[\\/]|$)/i;
|
|
77
|
+
function gateStoreTarget(filePath) {
|
|
78
|
+
const abs = resolve(filePath.replace(/^~(?=\/|$)/, process.env.HOME || "~"));
|
|
79
|
+
let real = abs;
|
|
80
|
+
try { real = `${realpathSync(dirname(abs))}/${basename(abs)}`; } catch { /* parent missing: string check only */ }
|
|
81
|
+
let realFile = "";
|
|
82
|
+
try { realFile = realpathSync(abs); } catch { /* file does not exist yet */ } // a symlinked FILE pointing into the store
|
|
83
|
+
return GATE_STORE.test(abs) || GATE_STORE.test(real) || GATE_STORE.test(`${abs}/`) || (!!realFile && GATE_STORE.test(realFile));
|
|
84
|
+
}
|
|
85
|
+
|
|
71
86
|
export function envFileReason(filePath) {
|
|
72
87
|
if (typeof filePath !== "string" || !filePath.trim()) return null;
|
|
88
|
+
if (gateStoreTarget(filePath)) {
|
|
89
|
+
return `Blocked by env-file-protection hook: ${filePath} is in the AOS go-gate store. Modes and grants are set only by the human typing a plain "gogate ..." message; agents may read the status, never write it.`;
|
|
90
|
+
}
|
|
73
91
|
// basename(), so a path like /srv/app/.env matches but /srv/app/env-notes.md does not.
|
|
74
92
|
const name = basename(filePath);
|
|
75
93
|
return !ENV_FILE.test(name) || TEMPLATE_FILE.test(name) ? null : reasonFor(filePath);
|