Skip to content

feat: agents-as-code workflow (foundation + agent commands) - #105

Merged
PaulAsjes merged 2 commits into
nextfrom
feat/agents-as-code
Jul 23, 2026
Merged

feat: agents-as-code workflow (foundation + agent commands)#105
PaulAsjes merged 2 commits into
nextfrom
feat/agents-as-code

Conversation

@PaulAsjes

Copy link
Copy Markdown
Collaborator

What

First slice of the v0 → v1 migration: ports v0's hand-maintained "agents-as-code" workflow onto the Fern-autogenerated Rust CLI as custom commands, layered on top of the generated API surface.

All custom code lives under cli/elevenlabs/workflow/ and is protected from regeneration via .fernignore (which was previously empty — a latent bug that would have let fern generate wipe custom work).

Included

  • project.rsagents.json/tools.json/tests.json index-file schemas (path-reference model, byte-compatible with v0 projects), lossless raw-JSON config IO, 4-space-indent writer, path-traversal-safe filename sanitization, y/N prompt. Unit-tested.
  • api.rs — raw-JSON API layer (ports elevenlabs-api.ts). Agent config create/update/get go through serde_json::Value via the CLI's authenticated executor, so configs round-trip losslessly — the generated typed models (ConversationalConfig etc.) have no #[serde(flatten)] catch-all and silently drop unmodeled fields. Unit-tested.
  • settings.rs — residency read/write + residency→base-URL mapping.
  • agents commands: init, list, status, delete (single + --all), widget, branches list, and agents templates list.

Verified

cargo build green; unit tests pass; local commands smoke-tested (init/list/status/widget/branches/delete render/parse identically to v0).

Not yet included (follow-ups)

agents add/push/pull/test + push-time verify, the tools/tests command trees, residency and components add commands, then tests/docs and the 1.0.0 tag.

Notes

  • Cargo.lock has unrelated churn (generated crates' transitive deps filling in a stale lock); left out of this PR intentionally — belongs with a regen/lockfile update, not the feature.
  • node_modules/ is currently not gitignored in the repo (untracked) — worth a separate .gitignore fix.

🤖 Generated with Claude Code

PaulAsjes and others added 2 commits July 22, 2026 17:48
Port v0's bespoke "agents-as-code" workflow onto the Fern-autogenerated
Rust CLI as custom commands under cli/elevenlabs/workflow/ (protected from
regeneration via .fernignore).

- Fix .fernignore: it was empty, so custom.rs was not actually protected.
- project.rs: agents/tools/tests index-file schemas (path-reference model,
  matching v0), lossless raw-JSON config IO, 4-space-indent writer,
  path-traversal-safe filename sanitization, y/N prompt (+ unit tests).
- api.rs: raw-JSON API layer (ports elevenlabs-api.ts). Agent config
  create/update/get go through serde_json::Value via the CLI's executor so
  configs round-trip losslessly (the generated typed models drop unmodeled
  fields). Includes list/delete/branches + run-tests/test-invocations and
  clean_conversation_config (+ unit tests).
- settings.rs: residency read/write + residency->base-URL mapping.
- agents: init, list, status, delete (single + --all), widget,
  branches list; plus agents templates list.

Remaining (follow-up commits): agents add/push/pull/test + verify, the
tools/tests command trees, residency and components commands.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Retitle README to "ElevenLabs CLI — Agents as Code" and add the v0
  hero image (assets/Cover.png, byte-identical to v0).
- Add an "Agents as Code" section documenting the commands shipped in
  this PR (init/list/status/delete/widget/branches list/templates list),
  the project structure, and the template catalog.
- Protect README.md and assets/ in .fernignore so `fern generate` (which
  emits a default README) does not overwrite the hand-maintained one.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@PaulAsjes
PaulAsjes merged commit 3c6efa7 into next Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant