{"id":51462488,"url":"https://github.com/dirnbauer/typo3-agent-nexus","last_synced_at":"2026-07-06T07:00:51.146Z","repository":{"id":368717875,"uuid":"1284349318","full_name":"dirnbauer/typo3-agent-nexus","owner":"dirnbauer","description":"Agent Nexus TYPO3 extension for A2UI, AG-UI, A2A, UCP and AP2 protocol labs","archived":false,"fork":false,"pushed_at":"2026-07-01T21:28:38.000Z","size":339,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-01T23:23:36.583Z","etag":null,"topics":["a2a","a2ui","ag-ui","agent","ap2","typo3","typo3-extension","ucp"],"latest_commit_sha":null,"homepage":"https://webconsulting.at","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dirnbauer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-29T19:21:48.000Z","updated_at":"2026-07-01T21:28:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dirnbauer/typo3-agent-nexus","commit_stats":null,"previous_names":["dirnbauer/typo3-agent-nexus"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dirnbauer/typo3-agent-nexus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirnbauer%2Ftypo3-agent-nexus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirnbauer%2Ftypo3-agent-nexus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirnbauer%2Ftypo3-agent-nexus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirnbauer%2Ftypo3-agent-nexus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dirnbauer","download_url":"https://codeload.github.com/dirnbauer/typo3-agent-nexus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirnbauer%2Ftypo3-agent-nexus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35180933,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a2a","a2ui","ag-ui","agent","ap2","typo3","typo3-extension","ucp"],"created_at":"2026-07-06T07:00:50.290Z","updated_at":"2026-07-06T07:00:51.132Z","avatar_url":"https://github.com/dirnbauer.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Agent Nexus\n\nA unified TYPO3 v14 lab for the agent-protocol family: **A2UI** (agent ↔ UI), **AG-UI** (agent ↔ user), **A2A** (agent ↔ agent), **UCP** (agent ↔ merchant) and **AP2** (payment authorization). One backend hub explains the protocols with an animated protocol map, Mermaid sequence diagrams, a comparison table and a decision helper; five playground modules show every wire frame live; five frontend plugins turn the same endpoints into useful, visitor-facing widgets — backed by a **real LLM** through [netresearch/nr-llm](https://github.com/netresearch/t3x-nr-llm) when available, with deterministic fallbacks that always work without an API key.\n\n## What's inside\n\n| Piece | What it does |\n|---|---|\n| **Overview module** | A field guide: hero with animated protocol map, theory cards, protocol comparison, \"which protocol do I need?\" decision helper, per-protocol tabs (sequence diagram, flow animation, key facts, spec snippet) and a glossary. |\n| **A2UI Playground** | Describe an interface in plain language → the agent answers with an A2UI v1.0 surface (declarative JSON, never code), rendered with native trusted components. Cost/usage dashboard included. |\n| **AG-UI Playground** | Watch an agent stream typed events (text deltas, tool calls, state patches) over SSE, with the human approval gate before any write. |\n| **A2A Console** | Act as a client agent: fetch the Agent Card, delegate a task over JSON-RPC `message/stream`, follow the task lifecycle to the artifact. |\n| **UCP Console** | A shopping agent discovers the merchant manifest, builds a cart and pauses at the human authorization gate. No payment is ever taken. |\n| **AP2 Mandate Studio** | Mint a signed Intent Mandate (spending cap) and Cart Mandate, verify the chain, tamper-test it. Sandbox-signed. |\n| **5 frontend plugins** | `agentnexus_inquiry`, `agentnexus_assistant`, `agentnexus_concierge`, `agentnexus_checkout`, `agentnexus_trustedsurface` — cacheable Fluid shells + ES-module widgets talking to public eID endpoints. |\n\n## Real model vs. deterministic script\n\nEvery plugin works with **no API key** (scripted demo). With nr-llm configured, the useful parts become real — and the safety-critical parts never do:\n\n| Plugin | Model-backed (when enabled) | Always deterministic |\n|---|---|---|\n| A2UI Inquiry | The generated surface for the visitor's intent | Component catalog hardening, submit/store |\n| AG-UI Assistant | The streamed answer to the visitor's actual question (token by token, real `streamChat`) | The approval gate, apply phase, lead capture |\n| A2A Concierge | Skill routing (+ visible rationale) and the artifact text | Task lifecycle, agent card, resume mechanics |\n| UCP Checkout | The recommendation rationale (grounded in the fixed cart) | Cart contents, prices, totals, authorization gate |\n| AP2 Trusted Surface | Optional plain-language receipt explanation (off by default) | Mandates, signatures, chain verification |\n\nRuns are labelled with their provenance (\"Live model · …\" vs \"Scripted demo\") so nobody mistakes one for the other.\n\n## Requirements \u0026 installation\n\n- TYPO3 `^14.3`, PHP `^8.3`\n- Optional for real model output: `netresearch/nr-llm` (+ `netresearch/nr-vault` for the key). **The provider secret must be flagged frontend-accessible in nr-vault**, otherwise frontend eID calls cannot read the key and the plugins stay in scripted mode.\n\n```bash\ncomposer require webconsulting/agent-nexus\nvendor/bin/typo3 extension:setup --extension=agent_nexus\n```\n\nThe backend hub appears as **Agent Nexus** in the module menu (`/typo3/module/agent-nexus/overview`). Add the five content elements anywhere; each has FlexForm settings (scenario, presets, intro texts, accent, LLM behavior).\n\n## Cost \u0026 abuse controls (frontend)\n\nReal frontend LLM calls are guarded in depth:\n\n- **Global switch + per-protocol toggles** — extension settings `llmFrontendEnabled`, `a2uiLlmEnabled`, `aguiLlmEnabled`, `a2aLlmEnabled`, `ucpLlmEnabled`, `ap2LlmEnabled` (AP2 off by default).\n- **Daily budget** — `llmDailyBudget` (USD): once the day's combined Agent Nexus spend reaches it, plugins fall back to their scripts. Spend is ledgered per protocol in `tx_agentnexus_llm_usage`; streamed calls bypass nr-llm's own usage middleware, so this ledger is authoritative.\n- **Token ceiling** — `llmMaxOutputTokens`; per-element FlexForm limits may lower but never exceed it.\n- **Rate limits** — per-IP fixed windows on every eID, with a tighter separate bucket for model-backed runs.\n- **Input caps** — visitor text is truncated (600 chars) before it reaches a prompt.\n- **Server-side settings** — LLM-relevant FlexForm settings (toggles, system prompt, token limits) are loaded server-side from the content element (`ce` uid). Nothing prompt-shaping is accepted from the wire.\n\n## Frontend endpoints (eID)\n\n`a2ui_generate`, `a2ui_submit`, `agui_assistant` (SSE), `a2a_card`, `a2a_rpc`, `a2a_concierge` (SSE), `ucp_manifest`, `ucp_checkout` (SSE), `ap2_authorize`.\n\n## Development\n\n- **Design system**: `Resources/Public/Css/nexus-tokens.css` defines the `--anx-*` vocabulary once, mapped to TYPO3 backend tokens (`.anx--backend`) and shadcn host tokens (`.anx--frontend`). `nexus-ui.css` holds the shared primitives; no hardcoded colors elsewhere.\n- **Motion**: GSAP 3.15 is vendored (`Resources/Public/JavaScript/Vendor/gsap.min.js`) — same-origin, CSP-safe, offline-safe. Helpers in `nexus-motion.js` respect `prefers-reduced-motion` and force-finish entrance animations in throttled background tabs.\n- **Diagrams**: `npm run diagrams` renders `Build/Diagrams/*.mmd` to theme-aware inline-SVG Fluid partials (colors become CSS variables, message steps get `data-mm-step` hooks). The generated partials are committed — consumers never need node or Chromium.\n\n## Safety notes\n\nCommerce is **always simulated**: `ucpReallyApply`/`aguiReallyApply` default to off, AP2 tokens are sandbox-signed, and no integration ever charges anything. The A2UI renderer only instantiates components from its own catalog — model output is data, never executable code.\n\n## License\n\nGPL-2.0-or-later\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirnbauer%2Ftypo3-agent-nexus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdirnbauer%2Ftypo3-agent-nexus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirnbauer%2Ftypo3-agent-nexus/lists"}