@hybridlabor-api/aos 4.1.0 → 4.2.0-beta.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.
Files changed (66) hide show
  1. package/.agents/agents.md +77 -0
  2. package/.agents/graph.md +43 -0
  3. package/.agents/skills/firecrawl/SKILL.md +149 -0
  4. package/.agents/skills/firecrawl/rules/install.md +82 -0
  5. package/.agents/skills/firecrawl/rules/security.md +26 -0
  6. package/.agents/skills/firecrawl-agent/SKILL.md +58 -0
  7. package/.agents/skills/firecrawl-build/SKILL.md +39 -0
  8. package/.agents/skills/firecrawl-build-interact/SKILL.md +68 -0
  9. package/.agents/skills/firecrawl-build-onboarding/SKILL.md +103 -0
  10. package/.agents/skills/firecrawl-build-onboarding/references/auth-flow.md +39 -0
  11. package/.agents/skills/firecrawl-build-onboarding/references/project-setup.md +20 -0
  12. package/.agents/skills/firecrawl-build-onboarding/references/sdk-installation.md +17 -0
  13. package/.agents/skills/firecrawl-build-scrape/SKILL.md +69 -0
  14. package/.agents/skills/firecrawl-build-search/SKILL.md +69 -0
  15. package/.agents/skills/firecrawl-crawl/SKILL.md +59 -0
  16. package/.agents/skills/firecrawl-download/SKILL.md +70 -0
  17. package/.agents/skills/firecrawl-interact/SKILL.md +84 -0
  18. package/.agents/skills/firecrawl-map/SKILL.md +51 -0
  19. package/.agents/skills/firecrawl-scrape/SKILL.md +69 -0
  20. package/.agents/skills/firecrawl-search/SKILL.md +60 -0
  21. package/.agents/state.schema.json +6 -0
  22. package/.claude/workflows/startcycle-dispatch.mjs +126 -8
  23. package/CLAUDE.md +47 -0
  24. package/GEMINI.md +9 -1
  25. package/README.md +12 -6
  26. package/mcps/RhinoMCP/cc-plugin/.claude/settings.json +10 -0
  27. package/mcps/after-effects-mcp/build/index.js +840 -0
  28. package/mcps/after-effects-mcp/build/scripts/applyEffect.jsx +153 -0
  29. package/mcps/after-effects-mcp/build/scripts/applyEffectTemplate.jsx +218 -0
  30. package/mcps/after-effects-mcp/build/scripts/createComposition.jsx +71 -0
  31. package/mcps/after-effects-mcp/build/scripts/createShapeLayer.jsx +147 -0
  32. package/mcps/after-effects-mcp/build/scripts/createSolidLayer.jsx +114 -0
  33. package/mcps/after-effects-mcp/build/scripts/createTextLayer.jsx +115 -0
  34. package/mcps/after-effects-mcp/build/scripts/getLayerInfo.jsx +192 -0
  35. package/mcps/after-effects-mcp/build/scripts/getProjectInfo.jsx +90 -0
  36. package/mcps/after-effects-mcp/build/scripts/listCompositions.jsx +50 -0
  37. package/mcps/after-effects-mcp/build/scripts/mcp-bridge-auto.jsx +1773 -0
  38. package/mcps/after-effects-mcp/build/scripts/setLayerProperties.jsx +160 -0
  39. package/mcps/bdb-remoteos-mcp/queue.db +0 -0
  40. package/mcps/bdb-remoteos-mcp/src/bdb_remoteos_mcp/__pycache__/__init__.cpython-312.pyc +0 -0
  41. package/mcps/bdb-remoteos-mcp/src/bdb_remoteos_mcp/__pycache__/incus_client.cpython-312.pyc +0 -0
  42. package/mcps/bdb-remoteos-mcp/src/bdb_remoteos_mcp/__pycache__/main.cpython-312.pyc +0 -0
  43. package/mcps/bdb-remoteos-mcp/src/bdb_remoteos_mcp/__pycache__/queue.cpython-312.pyc +0 -0
  44. package/mcps/bdb-remoteos-mcp/src/bdb_remoteos_mcp/__pycache__/schemas.cpython-312.pyc +0 -0
  45. package/mcps/bdb-remoteos-mcp/src/bdb_remoteos_mcp/__pycache__/server.cpython-312.pyc +0 -0
  46. package/mcps/bdb-remoteos-mcp/src/bdb_remoteos_mcp/__pycache__/webhook.cpython-312.pyc +0 -0
  47. package/mcps/bdb-remoteos-mcp/tests/__pycache__/__init__.cpython-312.pyc +0 -0
  48. package/mcps/bdb-remoteos-mcp/tests/__pycache__/mock_incus.cpython-312.pyc +0 -0
  49. package/mcps/bdb-remoteos-mcp/tests/__pycache__/test_mcp_server.cpython-312-pytest-9.1.1.pyc +0 -0
  50. package/mcps/bdb-remoteos-mcp/tests/__pycache__/test_security_redteam.cpython-312-pytest-9.1.1.pyc +0 -0
  51. package/mcps/bdb-remoteos-mcp/tests/__pycache__/test_webhook.cpython-312-pytest-9.1.1.pyc +0 -0
  52. package/mcps/computer-use-mcp/dist/client.d.ts +150 -0
  53. package/mcps/computer-use-mcp/dist/client.js +136 -0
  54. package/mcps/computer-use-mcp/dist/entrypoint.d.ts +16 -0
  55. package/mcps/computer-use-mcp/dist/entrypoint.js +26 -0
  56. package/mcps/computer-use-mcp/dist/native.d.ts +212 -0
  57. package/mcps/computer-use-mcp/dist/native.js +50 -0
  58. package/mcps/computer-use-mcp/dist/server.d.ts +32 -0
  59. package/mcps/computer-use-mcp/dist/server.js +342 -0
  60. package/mcps/computer-use-mcp/dist/session.d.ts +101 -0
  61. package/mcps/computer-use-mcp/dist/session.js +2372 -0
  62. package/package.json +1 -1
  63. package/skills/basic/startcycle/SKILL.md +19 -0
  64. package/skills/basic/startcycle-graph/SKILL.md +27 -7
  65. package/skills/basic/startcycle-graph-user/SKILL.md +65 -11
  66. package/skills/bdbsaastraining/scripts/__pycache__/build_profile.cpython-314.pyc +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hybridlabor-api/aos",
3
- "version": "4.1.0",
3
+ "version": "4.2.0-beta.0",
4
4
  "description": "AOS — A Curated AI AGENT OS. Optimized agent skills and add-ons like memB, OpenWiki, Heimdall Token Saver, and Godmode architectures.",
5
5
  "main": "installer.js",
6
6
  "bin": {
@@ -80,6 +80,25 @@ Run only the streams the goal actually needs. A plain backend feature does not n
80
80
 
81
81
  3c is for TouchDesigner, show-control, DMX/grandMA3, 3D, or other media-pipeline goals — most goals are not this. Skip it unless the plan actually calls for it.
82
82
 
83
+ > **Injecting a specific skill.** `/startcycle --skill=<name> <goal>`
84
+ > (repeatable, quote a name with spaces) forces that skill into this run as
85
+ > a hard requirement — for a private skill of your own that isn't part of
86
+ > any build agent's own `skills:` frontmatter. Since this variant has no
87
+ > dispatcher script or `state.json` to carry it automatically, the invoker
88
+ > does the work `startcycle-graph`'s script does for you: extract the
89
+ > `--skill=` flag(s) from the invocation text before anything else runs,
90
+ > confirm each name resolves to a real `SKILL.md` (under
91
+ > `~/.claude/skills/<name>/` or this project's own `skills/` tree) — stop
92
+ > and tell the user if one doesn't, don't silently proceed without it —
93
+ > note the validated list in `00_execution_plan.md`, and include it as a
94
+ > **hard requirement, not a suggestion** in each Build stream's dispatch
95
+ > prompt at step 3. Reviewer (step 4) checks the resulting artifacts for
96
+ > evidence the skill was actually applied, not just available, and treats
97
+ > an ignored mandate as a contract-misread finding. See
98
+ > [`.agents/graph.md`](../../../.agents/graph.md)'s "Mandatory Skill
99
+ > Injection" section for the full rationale — this is the same mechanic,
100
+ > just invoker-driven instead of script-driven.
101
+
83
102
  ### 4. Reviewer
84
103
  - **Agent**: `reviewer`
85
104
  - **Reads**: the artifacts each build stream produced (01/02/03) and the plan's stated contract (`00_execution_plan.md`) — nothing else. Never the goal directly, never a build agent's own claim that it's done; passing that claim through biases the review toward agreement.
@@ -21,12 +21,21 @@ several fields the schema doesn't define at all). Fix it first:
21
21
  mkdir -p .agents
22
22
  [ -f .agents/graph.md ] || cp "$HOME/.agents/graph.md" .agents/graph.md
23
23
  [ -f .agents/state.schema.json ] || cp "$HOME/.agents/state.schema.json" .agents/state.schema.json
24
+ [ -f .agents/nodes.json ] || cp "$HOME/.agents/nodes.json" .agents/nodes.json
24
25
  ```
25
26
 
26
- If `$HOME/.agents/graph.md` or `$HOME/.agents/state.schema.json` doesn't
27
- exist either, stop and tell the user: this machine has no canonical copy of
28
- the graph contract to bootstrap from, and `/startcycle-graph` will produce a
29
- non-conforming `state.json` until one is installed. Don't silently proceed.
27
+ `nodes.json` is not optional and is the one that fails loudest: it is the
28
+ node registry the dispatcher loads as its very first step, and without it
29
+ the run escalates immediately with *"`.agents/nodes.json` failed to load, or
30
+ is missing required node id(s)"* before Architect or any other agent has
31
+ run. (Found exactly that way: a first run in a project that had followed
32
+ this bootstrap step as it was previously written, which copied only the
33
+ other two files.)
34
+
35
+ If any of the three doesn't exist under `$HOME/.agents/` either, stop and
36
+ tell the user: this machine has no canonical copy of the graph contract to
37
+ bootstrap from, and `/startcycle-graph` cannot run correctly until one is
38
+ installed. Don't silently proceed.
30
39
  (`.claude/agents/*.md`, the seven agent persona files, do NOT need this
31
40
  treatment — Claude Code resolves subagents from the user-level
32
41
  `~/.claude/agents/` fine without a project-local copy.)
@@ -37,9 +46,20 @@ yourself (e.g. `echo $HOME` or your own environment info) rather than
37
46
  hardcoding a username, giving
38
47
  `$HOME/.claude/workflows/startcycle-dispatch.mjs` — and `args` set to the
39
48
  goal text that follows `ARGUMENTS:` below this file's content. Pass the goal
40
- through verbatim. If there is no `ARGUMENTS:` text, pass no `args` (or
41
- `args: undefined`) the workflow itself asks for a goal in that case rather
42
- than guessing one.
49
+ through verbatim, including any `--skill=<name>` flag(s) it contains the
50
+ dispatcher script parses those itself (see below), do not strip or
51
+ interpret them yourself. If there is no `ARGUMENTS:` text, pass no `args`
52
+ (or `args: undefined`) — the workflow itself asks for a goal in that case
53
+ rather than guessing one.
54
+
55
+ **Injecting a specific skill.** `/startcycle-graph --skill=<name> <goal>`
56
+ (repeatable, quote a name with spaces) forces that skill into this run as a
57
+ hard requirement for the build nodes, validated to exist before anything
58
+ else runs — this is how you make the pipeline use your own private skill
59
+ that isn't part of `.agents/nodes.json`'s registry. See
60
+ [`.agents/graph.md`](../../../.agents/graph.md)'s "Mandatory Skill
61
+ Injection" section for the full mechanics; nothing about it needs handling
62
+ in this router file, since `args` is passed through as raw text either way.
43
63
 
44
64
  Use `scriptPath`, not `name: "startcycle-dispatch"` — by-name lookup for a
45
65
  custom (non-built-in) workflow script has been observed to fail with
@@ -29,6 +29,24 @@ Do not invent more structure than the task has. A two-file edit doesn't need
29
29
  a Plan node — just do it. This skill is for the cases actually shaped like a
30
30
  small graph, not an excuse to always draw one.
31
31
 
32
+ ## 1b. Injecting a specific skill (optional)
33
+
34
+ `/startcycle-graph-user --skill=<name> <task>` (repeatable, quote a name
35
+ with spaces) forces that skill into this run as a hard requirement — for a
36
+ private skill of the user's own this throwaway graph would otherwise never
37
+ know to reach for. Extract any `--skill=` flag(s) from the invocation text
38
+ before step 1, confirm each name resolves to a real `SKILL.md` (under
39
+ `~/.claude/skills/<name>/` or this project's own `skills/` tree if it has
40
+ one) — stop and tell the user if one doesn't, never silently proceed
41
+ without it — and include it as a **hard requirement, not a suggestion** in
42
+ the Plan node's and every Worker node's prompt. The Review node checks the
43
+ combined output for evidence the skill was actually applied, not just
44
+ mentioned, and calls that out explicitly if it wasn't. Nothing about this
45
+ gets persisted, same as everything else in this skill — it's a per-run
46
+ instruction, not a contract. See
47
+ [`.agents/graph.md`](../../../.agents/graph.md)'s "Mandatory Skill
48
+ Injection" section for the same mechanic in the durable graph variant.
49
+
32
50
  ## 2. Detect what's available — before deciding how workers run
33
51
 
34
52
  ```bash
@@ -39,21 +57,53 @@ command -v codex >/dev/null 2>&1 && echo codex
39
57
 
40
58
  This machine may have none of these — the skill (and whoever installed this
41
59
  package) cannot assume Antigravity, OpenCode, or a Codex plugin connector is
42
- present. Pick the worker path in this priority order, first one found wins:
43
-
44
- 1. **agy present** workers run via `agy-job start --tier flash [--yolo] "<task>"`
45
- (or `pro` for harder reasoning) see the `antigravity` skill for the exact
46
- invocation pattern and cost discipline. Separate compute pool, zero
47
- Anthropic tokens for the work itself.
48
- 2. **opencode present** → route worker tasks through it the same way (its own
49
- subagent/session primitive), if the project already uses it.
50
- 3. **codex present** same idea, via the Codex CLI's own task-delegation
51
- surface if this project has that plugin wired up.
52
- 4. **none present** fall back to Claude Code's own `Agent` tool for each
60
+ present.
61
+
62
+ **Prefer a plugin's own delegation subagent over shelling out to its CLI.**
63
+ If a delegation plugin is installed, it exposes a subagent that already
64
+ handles the wrapper flags, the cost discipline, and the digest contract for
65
+ you reach for that first, and only drop to a raw CLI call when no such
66
+ subagent exists:
67
+
68
+ | CLI | Plugin subagent (preferred) | Raw fallback |
69
+ |---|---|---|
70
+ | agy | `antigravity:antigravity-delegate` | `agy-job start --tier flash [--yolo] "<task>"` |
71
+ | opencode | `opencode:opencode-rescue` | the CLI's own session primitive |
72
+ | codex | `codex:codex-rescue` | the Codex CLI's task-delegation surface |
73
+
74
+ These subagents are **Claude Code plugins**, so they exist only when that
75
+ harness is running *and* the plugin is installed. Check what is actually
76
+ available rather than assuming — on any other harness, or a machine without
77
+ the plugins, the raw CLI column is the only path. Neither column ships with
78
+ AOS: both depend on tooling the user installed separately.
79
+
80
+ Pick the worker path in this priority order, first one found wins:
81
+
82
+ 1. **A delegation plugin subagent is available** → use it (table above).
83
+ Separate compute pool, zero Anthropic tokens for the work itself, and the
84
+ wrapper reports failures in a shape the plugin already knows how to read.
85
+ 2. **The CLI is present but its plugin subagent is not** → call the CLI
86
+ directly per the raw-fallback column, following the `antigravity` skill's
87
+ invocation pattern and cost discipline.
88
+ 3. **None present** → fall back to Claude Code's own `Agent` tool for each
53
89
  worker, with an explicit `model: "haiku"` override. This is the only path
54
90
  that costs Anthropic tokens for the worker step, and the only one
55
91
  guaranteed to exist everywhere — it is the floor, not the default.
56
92
 
93
+ **Give the delegation a real timeout.** Measured 2026-09: a trivial headless
94
+ `agy` prompt took **605s**. `agy-delegate` defaults to `--print-timeout 5m`,
95
+ so it aborts at 300s and reports an empty body while the answer is still on
96
+ its way — pass `--timeout 15m` for anything non-trivial. Budget worker
97
+ wall-clock accordingly; this is the single most likely reason a fan-out
98
+ "fails" on a machine where the CLI is perfectly healthy.
99
+
100
+ **Verify the delegation actually produced content — a status string is not a
101
+ result.** A timed-out delegation returns `{"status": "SUCCESS", "usage":
102
+ {"total": 0}}` with an *empty* body: success by every field except the one
103
+ that matters. The zero token counts are not proof the prompt never arrived —
104
+ headless usage reporting is simply unpopulated. Check the returned text
105
+ itself, and treat an empty body as a failure no matter what the status says.
106
+
57
107
  **This decision happens here, in your own turn, via Bash — never inside a
58
108
  `Workflow` script.** A `Workflow` script's body has no shell or filesystem
59
109
  access (ambient `agent()`/`pipeline()` globals only), so it cannot itself
@@ -104,6 +154,8 @@ graph (`.agents/graph.md`) already does properly.
104
154
  | "The session is already on Opus, so the worker call inherits it fine." | That's exactly the cost this skill exists to avoid — force the tier explicitly every time. |
105
155
  | "This task has one obvious step, but a 3-node graph looks more thorough." | More nodes than the task needs is overhead, not rigor. Size the graph to the work. |
106
156
  | "I'll just call the Workflow tool and let the script figure out which backend to use." | The script can't — it has no shell access. That decision is yours, before the Workflow call, or not via Workflow at all. |
157
+ | "The CLI is on PATH, so I'll shell out to it directly." | If its plugin subagent is installed, that's the supported path — it already handles the wrapper flags and cost discipline. Shell out only when no subagent exists. |
158
+ | "The wrapper returned SUCCESS, so the work is done." | A failing delegation has returned `SUCCESS` with zero tokens and an empty body. Check the actual content, not the status field. |
107
159
 
108
160
  ## 7. Red Flags
109
161
 
@@ -115,5 +167,7 @@ graph (`.agents/graph.md`) already does properly.
115
167
  ## 8. Verification
116
168
 
117
169
  - [ ] Detection step actually ran (`command -v` checks), not assumed.
170
+ - [ ] A plugin delegation subagent was preferred where one was available, rather than shelling out to the CLI anyway.
118
171
  - [ ] Each node's model was explicitly forced, not inherited.
172
+ - [ ] Each worker's returned **content** was checked, not just its status field — an empty body is a failure regardless of a `SUCCESS` status.
119
173
  - [ ] Nothing persistent was left behind after the task completed.