summaryrefslogtreecommitdiff
path: root/AGENTS.md
diff options
context:
space:
mode:
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 09821a5..052561f 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,5 +1,15 @@
# pantograph
+## What this is and isn't
+
+- `libpanto/` is a pure agent SDK in Zig. Its bindings are idiomatic libraries in their language, not thin FFI wrappers.
+- `panto` (CLI, `src/`) is an interactive agent SDK in the spirit of pi (https://pi.dev), not a full-featured agent. Its job isn't to do everything; it's to make everything possible — users build their own ideal agent on the Lua extensions API. Sparse built-ins are by design. Judge a feature first as "should the extension API make this buildable?", only then "core?"
+- panto is not a coding tool: even the shipped coding tools (`agent/tools/*.lua`) are deny-able Lua extensions, and an extended panto should handle jobs that aren't coding at all. Coding-flavored features go out-of-tree (`../panto-agent`, the `agent.*` batteries rock), never in core.
+- Server mode (near-term) is the same extension surface as a daemon proxying real inference — one proxy for all subscriptions, value-add Lua behaviors (custom routing, injected skills) server-side — not a separate product.
+- New extension/API surfaces are co-designed with Travis before building, never shipped speculatively.
+
+## Conventions
+
Acronyms in CamelCase are fully capitalized: `APIStyle`, `HTTPClient`, `IDLookup`. Field names are snake_case: `api_style`, `base_url`, `model`.
DO NOT read `mise.local.toml`, that contains API keys which we don't want exposed to LLM providers.