docs: add a library-first documentation set for the v1 interface - #159
Merged
Merged
Conversation
Adds docs_v1/, documenting amplifier-agent as a library that hosts embed, with the CLI, HTTP face, and TypeScript SDK as surfaces built on it rather than as peers. The organizing rule is that the library is the product. Every surface adds transport and presentation and no capability, in both directions: a surface that quietly resolves approvals or drops an event it cannot render is a weaker product, not a thinner path to the same one. CLI commands are therefore documented next to the library calls that produce them, so a command with no library equivalent is visible as a defect. Structure: 00-index what it is, and how it differs from Amplifier App CLI 01-install library first, then the CLI and SDK 02-quickstart config in, agent out, one reply 03-configuration every AgentConfig field 04-context-intelligence session recording and forwarding 05-interface the complete public surface, one page per area 06-providers per-provider credentials and models 07-surfaces CLI, HTTP, TypeScript 08-development end-to-end tests and evaluations Notable interface decisions captured here: - No capability negotiation. It presupposes divergence the wrapper rule forbids, and under exact protocol-version equality the two sides cannot differ. Forward-compatible parsing replaces it: wrappers ignore unknown fields and forward unknown event types unchanged. - Turn ids are outbound only. The agent assigns them; cancel() takes no argument because a session runs one turn at a time. - Version information is module-level, so it is readable without a constructed agent. The reason to check a version is usually that create_agent is failing. - Session storage keeps the context-intelligence/ layout, so existing tooling reads a session directory without adaptation. The two record files carry distinct format identities so each reader refuses the file that is not its own. docs/ is unchanged. Per-provider detail pages are scaffolded and empty. 🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
docs_v1/, documenting amplifier-agent as a library that hosts embed, with the CLI, HTTP face, and TypeScript SDK as surfaces built on it rather than as peers.docs/is unchanged.The organizing rule
The library is the product. Every surface adds transport and presentation and no capability, in both directions: a surface that quietly resolves approvals, or drops an event it cannot render, is a weaker product rather than a thinner path to the same one.
CLI commands are documented next to the library calls that produce them, which makes the rule checkable. A command with no library equivalent is visible as a defect instead of passing as a convenience.
Structure
Interface decisions captured here
No capability negotiation. It presupposes divergence the wrapper rule forbids, and under exact protocol-version equality the two sides cannot differ. Forward-compatible parsing replaces it: wrappers ignore unknown fields and forward unknown event types unchanged. That is what lets the agent gain an event without every wrapper needing a release first.
Turn ids are outbound only. The agent assigns them.
cancel()takes no argument, because a session runs one turn at a time and there is never ambiguity about which turn it applies to.Version information is module-level, readable without a constructed agent. The reason to check a version is usually that
create_agentis failing.Session storage keeps the
context-intelligence/layout, so existing tooling reads a session directory without adaptation. The two record files carry distinct format identities so each reader refuses the file that is not its own.Reviewing
05-interface/index.mdlists every public name in one place and is the fastest way to see the whole surface.00-index.mdcarries the boundary: what is deliberately excluded and why.Per-provider detail pages under
06-providers/are scaffolded and empty.