-
Notifications
You must be signed in to change notification settings - Fork 73
showcase(agentiq): add AgentIQ autonomous full-stack developer package #115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
1ad5254
86b553e
73151ba
0c31587
ddca1cd
44ddd36
a515c71
4073d18
e2a5555
5be3a34
71dc2fb
7f42721
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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." | ||
| } | ||
| ] | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -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", | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This repo link seems to be broken (it gives a 404). Could you update it to point to the correct public repository for AgentIQ?
Suggested change
|
||||||
| "share": "https://github.com/berryboylb/agentiq-protocol-dashboard", | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This share link is also broken. If you have a specific announcement post (on X, etc.) that's often a great share link, but the main repo works too!
Suggested change
|
||||||
| "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?" | ||||||
| ] | ||||||
| } | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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 <token>` 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-project>.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. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Optional nit: the contributor guide suggests leading with a verb and dropping the trailing period for a punchier card tagline. Something like this might work well!