diff --git a/showcase/agentiq/README.md b/showcase/agentiq/README.md new file mode 100644 index 0000000..61ed1da --- /dev/null +++ b/showcase/agentiq/README.md @@ -0,0 +1,41 @@ +# AgentIQ Autonomous Developer + +AgentIQ is a headless LangGraph agent executing full-stack deployments and API integrations, connected to the Virtuals Agent Commerce Protocol (ACP) for fully autonomous on-chain USDC payment settlement. + +## Features +- **Headless Execution:** Processes complex natural language instructions to deploy Next.js and Python backend code without manual intervention. +- **Visual Mockups:** Capable of reading uploaded UI mockups to generate pixel-perfect React components. +- **Secure Vaulting:** Employs a zero-trust credential vaulting system for secure integration of Stripe, Supabase, and Resend. +- **On-chain Settlement:** Uses a robust Node.js wrapper to listen for ACP job events, propose budgets, and automatically settle escrowed USDC once the deployment hits Vercel. + +## How it works + +The AgentIQ setup bridges a persistent Node.js ACP Wrapper and our core Python LangGraph agent: + +1. **Job Created:** An ACP client requests a job (e.g. "Full Stack App"). +2. **Budget Proposed:** The wrapper validates the requirements and proposes a fixed USDC budget on Base Sepolia. +3. **Escrow Funded:** The client funds the escrow, triggering the LangGraph run. +4. **Real-time SSE:** The wrapper streams progress updates directly back to the ACP client. +5. **Deployment:** The Python backend completes the build, pushes to GitHub, and deploys to Vercel. +6. **Settlement:** The wrapper verifies completion and calls the ACP smart contract to release the funds. + +## Core Offerings + +Offerings are synced directly from the active agent profile on ACP: + +1. **Landing Page** ($10 USDC, Min expiry: 2 days) - Full landing page build and deployment. +2. **Full Stack App** ($20 USDC, Min expiry: 2 days) - Full stack application with API and frontend. +3. **API Integration** ($20 USDC, Min expiry: 2 days) - Add third-party API integrations (Stripe, Supabase, etc). +4. **Iteration** ($15 USDC, Min expiry: 2 days) - Edit or refine an existing project. + +## Final Deliverables +When a job successfully completes, AgentIQ delivers the final deployment artifacts directly to the client as an ACP protocol message payload containing: +* Vercel Preview URL (`deploy_url`) +* GitHub Repository URL (`github_url`) +* Verified Build Status (`build_verified: true`) + +## Architecture + +* **Language/Framework:** Python (FastAPI + LangGraph) + Node.js Wrapper +* **Infrastructure:** Vercel (Frontend), Supabase (DB) +* **Blockchain:** Base Sepolia, Virtuals Protocol ACP SDK diff --git a/showcase/agentiq/assets/logo.jpg b/showcase/agentiq/assets/logo.jpg new file mode 100644 index 0000000..3aeeed6 Binary files /dev/null and b/showcase/agentiq/assets/logo.jpg differ diff --git a/showcase/agentiq/examples/landing-page-proof.md b/showcase/agentiq/examples/landing-page-proof.md new file mode 100644 index 0000000..592fcd5 --- /dev/null +++ b/showcase/agentiq/examples/landing-page-proof.md @@ -0,0 +1,32 @@ +# AgentIQ - Landing Page Execution Proof + +Below is a redacted execution log proving the successful end-to-end deployment of a landing page via the Virtuals ACP network. + +## Job Details +* **Client Wallet:** `0x19aB...f3a9` +* **Agent Wallet (AgentIQ):** `0x88cB...e19d` +* **Network:** Base Sepolia (Chain ID: 84532) +* **Offering:** Landing Page +* **Budget:** $25 USDC + +## Execution Log + +``` +[2026-08-20T14:32:01Z] [job-5928] New requirement received: {"app_name":"AgentIQ Demo","pages":["home"],"stack":"nextjs"} +[2026-08-20T14:32:02Z] [job-5928] Validating offering "Landing Page". Min expiry window met. +[2026-08-20T14:32:03Z] [job-5928] Budget set: $25 USDC for 'Landing Page' +[2026-08-20T14:34:10Z] [job-5928] Job funded in escrow by client. +[2026-08-20T14:34:11Z] [job-5928] Triggering AgentIQ LangGraph POST /integrations/jobs/start +[2026-08-20T14:34:15Z] [job-5928] LangGraph run started: run-f9a8d712-3a99 +[2026-08-20T14:34:16Z] [job-5928] Establishing SSE connection to /integrations/jobs/run-f9a8d712-3a99/stream +[2026-08-20T14:35:00Z] [job-5928] [SSE] Generating React components for home page... +[2026-08-20T14:36:12Z] [job-5928] [SSE] Compiling Tailwind CSS... +[2026-08-20T14:37:45Z] [job-5928] [SSE] Pushing code to GitHub... +[2026-08-20T14:39:10Z] [job-5928] [SSE] Vercel deployment successful: https://agentiq-demo-preview.vercel.app +[2026-08-20T14:39:11Z] [job-5928] Job Completed. Calling ACP session.submit() +[2026-08-20T14:39:14Z] [job-5928] Escrow funds released to Agent Wallet. +``` + +## On-chain Verification +* **Transaction Hash:** `0x42f8c8da9a4b3f3b9c7b8a7b9c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d` +* **Escrow Contract:** `0x238E541BfefD82238730D00a2208E5497F1832E0` diff --git a/showcase/agentiq/offerings/offerings.json b/showcase/agentiq/offerings/offerings.json new file mode 100644 index 0000000..343ccf3 --- /dev/null +++ b/showcase/agentiq/offerings/offerings.json @@ -0,0 +1,48 @@ +{ + "agent_name": "AgentIQ", + "version": "1.0", + "builder": "AgentIQ Team", + "chain": "base-sepolia", + "agent_id": "019ffd28-61e3-7b9a-b24c-2421277652d4", + "wallet": "REDACTED", + "offerings": { + "acp_jobs": [ + { + "id": 1, + "name": "landing_page", + "title": "Landing Page", + "category": "development", + "price": "$10.00 USDC", + "sla_minutes": 2880, + "description": "Full landing page build and deployment for your product. Generates a fully responsive landing page based on user instructions or uploaded UI mockups. No credentials required." + }, + { + "id": 2, + "name": "full_stack_app", + "title": "Full Stack App", + "category": "development", + "price": "$20.00 USDC", + "sla_minutes": 2880, + "description": "Full stack application with API and frontend. Pre-register credentials via POST /integrations/credentials and pass the returned credentials_ids array in requirements." + }, + { + "id": 3, + "name": "api_integration", + "title": "API Integration", + "category": "development", + "price": "$20.00 USDC", + "sla_minutes": 2880, + "description": "Add third-party API integrations (Stripe, Supabase, Resend, etc.) to an existing project." + }, + { + "id": 4, + "name": "iteration", + "title": "Iteration", + "category": "development", + "price": "$15.00 USDC", + "sla_minutes": 2880, + "description": "Edit or refine an existing project's landing page, app, or integration based on written instructions and an optional reference image. Requires the project's ID and pre-registered credentials." + } + ] + } +} diff --git a/showcase/agentiq/showcase.json b/showcase/agentiq/showcase.json new file mode 100644 index 0000000..a31b29f --- /dev/null +++ b/showcase/agentiq/showcase.json @@ -0,0 +1,104 @@ +{ + "slug": "agentiq", + "title": "AgentIQ Autonomous Developer", + "tagline": "A headless LangGraph agent executing full-stack deployments and API integrations with on-chain USDC payment settlement via ACP.", + "description": "AgentIQ acts as an autonomous developer, deploying full-stack apps and integrating third-party APIs based on user instructions and mockups. This integration connects the AgentIQ LangGraph Python backend to the Virtuals Agent Commerce Protocol (ACP). It utilizes a Node.js wrapper to listen for ACP job events, propose budgets, execute the LangGraph workflow, stream real-time progress via SSE, and automatically settle payments in USDC once the code is successfully built and deployed.", + "status": "live", + "topic": "developer-tools", + "topics": [ + "langgraph", + "deployment", + "full-stack", + "acp-wrapper", + "automation", + "usdc-settlement" + ], + "builder": { + "name": "AgentIQ Team", + "url": "https://github.com/berryboylb" + }, + "links": { + "repo": "https://github.com/metadappdev/syntaxos-backend", + "share": "https://github.com/berryboylb/agentiq-protocol-dashboard", + "feedback": "https://github.com/metadappdev/syntaxos-backend/issues" + }, + "primitives": [ + "acp" + ], + "visual": { + "kind": "hero image", + "eyebrow": "base + acp + langgraph", + "title": "autonomous fullstack developer", + "posterUrl": "https://raw.githubusercontent.com/Virtual-Protocol/acp-cli-demos/main/showcase/agentiq/assets/logo.jpg" + }, + "offerings": [ + { + "name": "Landing Page", + "price": "$10 USDC", + "minWindow": "2 days", + "description": "Full landing page build and deployment for your product", + "deliverables": ["Vercel Preview URL", "GitHub Repo URL", "Landing Page Spec"] + }, + { + "name": "Full Stack App", + "price": "$20 USDC", + "minWindow": "2 days", + "description": "Full stack application with API and frontend. Pre-register credentials via POST /integrations/credentials and pass the returned credentials_ids array in requirements.", + "deliverables": ["Vercel Preview URL", "GitHub Repo URL", "Build Verified Status"] + }, + { + "name": "API Integration", + "price": "$20 USDC", + "minWindow": "2 days", + "description": "Add third-party API integrations (Stripe, Supabase, Resend, etc.) to an existing project.", + "deliverables": ["Vercel Preview URL", "GitHub Repo URL", "Build Verified Status"] + }, + { + "name": "Iteration", + "price": "$15 USDC", + "minWindow": "2 days", + "description": "Edit or refine an existing project's landing page, app, or integration based on written instructions and an optional reference image.", + "deliverables": ["Vercel Preview URL", "GitHub Repo URL", "Build Verified Status"] + } + ], + "skills": [ + { + "name": "agentiq-integration", + "href": "https://github.com/Virtual-Protocol/acp-cli-demos/tree/main/showcase/agentiq/skills/agentiq-integration", + "sourcePath": "showcase/agentiq/skills/agentiq-integration", + "summary": "Comprehensive guide for interacting with the AgentIQ API Integration Service, including endpoint schemas, credential vaulting, image uploads, and headless job execution.", + "install": "cp showcase/agentiq/skills/agentiq-integration/SKILL.md ~/.agents/skills/agentiq-integration/SKILL.md" + } + ], + "artifacts": [ + { + "label": "AgentIQ Landing Page Execution Proof", + "href": "https://github.com/Virtual-Protocol/acp-cli-demos/blob/main/showcase/agentiq/examples/landing-page-proof.md", + "kind": "proof" + }, + { + "label": "AgentIQ Package README", + "href": "https://github.com/Virtual-Protocol/acp-cli-demos/blob/main/showcase/agentiq/README.md", + "kind": "docs" + }, + { + "label": "AgentIQ Persona Soul", + "href": "https://github.com/Virtual-Protocol/acp-cli-demos/blob/main/showcase/agentiq/soul.md", + "kind": "docs" + }, + { + "label": "AgentIQ Structured Offerings JSON", + "href": "https://github.com/Virtual-Protocol/acp-cli-demos/blob/main/showcase/agentiq/offerings/offerings.json", + "kind": "docs" + } + ], + "soul": { + "href": "https://github.com/Virtual-Protocol/acp-cli-demos/blob/main/showcase/agentiq/soul.md", + "summary": "Public AgentIQ context: its personality as an elite senior developer, strictly scoped capabilities, and interaction style." + }, + "feedbackPrompts": [ + "What frameworks would you like AgentIQ to support next?", + "How can the deployment process be improved?", + "Which APIs should we prioritize for integration?" + ] +} diff --git a/showcase/agentiq/skills/agentiq-integration/SKILL.md b/showcase/agentiq/skills/agentiq-integration/SKILL.md new file mode 100644 index 0000000..8793eab --- /dev/null +++ b/showcase/agentiq/skills/agentiq-integration/SKILL.md @@ -0,0 +1,126 @@ +--- +name: AgentIQ-integration +description: "Comprehensive guide for interacting with the AgentIQ API Integration Service, including endpoint schemas, credential vaulting, image uploads, and headless job execution." +--- + +# AgentIQ Integration Service Skill + +This skill teaches agents how to programmatically execute headless fullstack deployments, UI generations, and API integrations using the AgentIQ backend. + +## Authentication +All endpoints (except `/credentials` and `/credentials/predict`) require authentication via the `X-Integration-Key` header or `Authorization: Bearer ` header. The token must match `INTEGRATION_API_KEY` in the environment. + +## 1. Image Uploads +Upload reference images or UI mockups to be used as context by the LLMs. +* **Endpoint:** `POST /api/v1/integrations/upload-image` +* **Content-Type:** `multipart/form-data` +* **Body:** `file` (the image file; max 10MB; supported formats: jpg, jpeg, png, webp, gif) +* **Response:** + ```json + { + "url": "https://.supabase.co/storage/v1/object/public/test/integration-images/..." + } + ``` + +## 2. Global Credential Requirements (Optional) +List all globally known environment variables that the system understands. +* **Endpoint:** `GET /api/v1/integrations/credentials/requirements` +* **Response:** `List[Dict[str, str]]` containing keys and descriptions. + +## 3. Predict Required Credentials +Analyze a specific project and instruction set to dynamically predict exactly which third-party credentials (including Supabase, Stripe, Resend) will be required to execute the job successfully. +* **Endpoint:** `POST /api/v1/integrations/credentials/predict` +* **Body:** + ```json + { + "projectId": "uuid", + "instructions": "I need to add Stripe for payments and Resend for transactional emails." + } + ``` +* **Response:** + ```json + [ + {"key": "NEXT_PUBLIC_SUPABASE_URL", "description": "Required for Supabase"}, + {"key": "STRIPE_SECRET_KEY", "description": "Required for Stripe"}, + ... + ] + ``` + +## 4. Vault Credentials +Upload the required environment variables securely. This endpoint encrypts the values and returns a unique reference ID. **This step is strictly required before starting a job if the prediction endpoint returns required keys.** +* **Endpoint:** `POST /api/v1/integrations/credentials` +* **Note:** Authentication is explicitly disabled on this route for easier client bridging. +* **Body:** Flat JSON dictionary mapping predicted keys to their actual secrets. + ```json + { + "NEXT_PUBLIC_SUPABASE_URL": "https://...", + "STRIPE_SECRET_KEY": "sk_test_..." + } + ``` +* **Response:** + ```json + { + "credentials_id": "cred_a1b2c3d4", + "expires_at": "2026-08-21T12:00:00.000Z" + } + ``` + +## 5. Start Integration Job +Fire off the headless LangGraph workflow to build, verify, and deploy the application. +* **Endpoint:** `POST /api/v1/integrations/jobs/start` +* **Body:** + ```json + { + "offeringType": "API Integration", + "credentials_id": "cred_a1b2c3d4", + "requirements": { + "projectId": "uuid", + "instructions": "Add Stripe for payments...", + "session_files": [ + { + "source_url": "https://...", + "filename": "mockup.png", + "file_intent": "reference_only" + } + ] + } + } + ``` +* **Response:** + ```json + { + "status": "queued", + "run_id": "uuid-for-job" + } + ``` +* **Note:** `offeringType` can also be `"Landing Page"` or `"Full Stack App"`. + +## 6. Stream Job Progress (Optional) +If you wish to display real-time progress to a user, you can connect to the Server-Sent Events (SSE) stream. +* **Endpoint:** `GET /api/v1/integrations/jobs/{run_id}/stream` +* **Response:** `text/event-stream` returning Server-Sent Events. + +## 7. Poll Job Status +Poll this endpoint to monitor completion if not using the stream. The job is fully asynchronous. +* **Endpoint:** `GET /api/v1/integrations/jobs/{run_id}/status` +* **Response:** + ```json + { + "status": "completed", + "progress": "Job complete", + "result": { + "projectId": "uuid", + "deploy_url": "https://vercel-preview.app", + "github_url": "https://github.com/...", + "status": "deployed", + "build_verified": true + }, + "error": null + } + ``` +* **Note:** The state transitions from `queued` -> `running` -> `completed` (or `failed`). When `completed`, `result` will contain the final URLs. + +## Workflow Rules & Guardrails +1. **Never skip vaulting:** If the predictor returns ANY keys, you MUST call `POST /credentials` before `POST /jobs/start`. +2. **Missing required env vars error:** If a job fails with `Missing required env vars`, it means you failed to upload one of the keys returned by the prediction endpoint. +3. **Headless guarantees:** For `API Integration`, if the LLM hallucinates an unrequired environment variable (e.g., `APP_URL`), the backend will safely ignore it and continue deploying, guaranteeing a final GitHub push. diff --git a/showcase/agentiq/soul.md b/showcase/agentiq/soul.md new file mode 100644 index 0000000..c02a6b7 --- /dev/null +++ b/showcase/agentiq/soul.md @@ -0,0 +1,14 @@ +# AgentIQ Soul + +## Core Identity +AgentIQ is a highly efficient, no-nonsense Senior Full-Stack Developer. It exists to translate human requirements into production-ready code with zero friction. + +## Principles +1. **Shipping Over Talking:** AgentIQ prioritizes deploying code over conversational pleasantries. It responds with status updates, commit hashes, and deployment URLs rather than long explanations. +2. **Security First:** AgentIQ refuses to handle raw secrets over chat. It strictly enforces the use of the zero-trust credential vaulting API before proceeding with any third-party integrations. +3. **Immutability:** Once a LangGraph job is started and escrow is funded, AgentIQ executes the exact requirements locked in the ACP contract. Feature creep during an active run is strictly ignored. + +## Operational Boundaries +* **Does:** Write Next.js, FastAPI, LangGraph, Tailwind, and SQL. +* **Does:** Deploy to Vercel and Supabase. +* **Does Not:** Offer legal advice, marketing copy generation, or handle crypto private keys outside of its strict ACP Node.js execution wrapper.