{"_id":"@agentbill-sdk/n8n-nodes-agentbill","_rev":"4-f888704ca4b11e1f24b1dbb7ca2c6ba3","name":"@agentbill-sdk/n8n-nodes-agentbill","dist-tags":{"latest":"5.0.2"},"versions":{"1.0.0":{"name":"@agentbill-sdk/n8n-nodes-agentbill","version":"1.0.0","keywords":["n8n","n8n-nodes","n8n-community-node-package","agentbill","ai","billing","usage-tracking","openai","anthropic"],"author":{"name":"AgentBill","email":"support@agentbill.app"},"license":"MIT","_id":"@agentbill-sdk/n8n-nodes-agentbill@1.0.0","maintainers":[{"name":"dominicdivakar","email":"dominic@dexra.cloud"}],"homepage":"https://agentbill.app","bugs":{"url":"https://github.com/agentbill/n8n-nodes-agentbill/issues"},"n8n":{"nodes":["dist/nodes/AgentBill/AgentBill.node.js"],"credentials":["dist/credentials/AgentBillApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"d9752caf0e832e9228f559dc509ce4ddeed5a2c3","tarball":"https://registry.npmjs.org/@agentbill-sdk/n8n-nodes-agentbill/-/n8n-nodes-agentbill-1.0.0.tgz","fileCount":8,"integrity":"sha512-7rciTZb3LdNScoaygwwhbueOC2JXWk9vspy7sKyUiBohU6nIWB9/T/zKkWBo0SfK+klh2Ukrfs2U5K0AwUQzww==","signatures":[{"sig":"MEYCIQDcbNXPqwLhxtyFz2dRHmawh5LJeEx941HZ1pup7ANiBwIhAIj/72mnw6SsiqZR4kvlFsOMkQ6PqRNukgYo5da1dVnA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37436},"gitHead":"fa3cd89eeb9292b8362c259d329a8276902a1e3d","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"dominicdivakar","email":"dominic@dexra.cloud"},"repository":{"url":"git+https://github.com/agentbill/n8n-nodes-agentbill.git","type":"git"},"_npmVersion":"10.8.2","description":"N8N node for AgentBill API - AI usage tracking & billing automation","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^18.16.0","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"n8n-workflow":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-agentbill_1.0.0_1761765959732_0.9606375150494662","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@agentbill-sdk/n8n-nodes-agentbill","version":"1.0.1","keywords":["n8n","n8n-nodes","n8n-community-node-package","agentbill","ai","billing","usage-tracking","openai","anthropic"],"author":{"name":"AgentBill","email":"support@agentbill.app"},"license":"MIT","_id":"@agentbill-sdk/n8n-nodes-agentbill@1.0.1","maintainers":[{"name":"dominicdivakar","email":"dominic@dexra.cloud"}],"homepage":"https://agentbill.app","bugs":{"url":"https://github.com/agentbill/n8n-nodes-agentbill/issues"},"n8n":{"nodes":["dist/nodes/AgentBill/AgentBill.node.js"],"credentials":["dist/credentials/AgentBillApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"be92ba6e88a357516721dfa2cb205e4a3356bd56","tarball":"https://registry.npmjs.org/@agentbill-sdk/n8n-nodes-agentbill/-/n8n-nodes-agentbill-1.0.1.tgz","fileCount":8,"integrity":"sha512-8r1ura5JDanUdIsejEKTg8xb3vS9OP79klR0DZ7/4rhOJ6U6GyDHGQz8sW0cMuZIaU4RdL8yTQJsQTB9tZolOA==","signatures":[{"sig":"MEUCIQCv5WQJwMXto/iRhnUT0aMJWTxC/o+dnouXnFP91AuoGgIgeltcFystJqyai2W7JcIzByA2fvMYaQZ8Z8TljP6GDMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52705},"gitHead":"0de59ed291bde456332290f728362d3f88e1c1f5","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"dominicdivakar","email":"dominic@dexra.cloud"},"repository":{"url":"git+https://github.com/agentbill/n8n-nodes-agentbill.git","type":"git"},"_npmVersion":"10.8.2","description":"N8N node for AgentBill API - AI usage tracking & billing automation","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^18.16.0","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"n8n-workflow":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-agentbill_1.0.1_1761913607033_0.13835817634628644","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@agentbill-sdk/n8n-nodes-agentbill","version":"2.0.0","keywords":["n8n","n8n-nodes","n8n-community-node-package","agentbill","ai","billing","usage-tracking","openai","anthropic"],"author":{"name":"AgentBill","email":"support@agentbill.app"},"license":"MIT","_id":"@agentbill-sdk/n8n-nodes-agentbill@2.0.0","maintainers":[{"name":"dominicdivakar","email":"dominic@dexra.cloud"}],"homepage":"https://agentbill.app","bugs":{"url":"https://github.com/agentbill/n8n-nodes-agentbill/issues"},"n8n":{"nodes":["dist/nodes/AgentBill/AgentBill.node.js"],"credentials":["dist/credentials/AgentBillApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"522ac5fb57a0ebb97d62251985fd84999fdefa57","tarball":"https://registry.npmjs.org/@agentbill-sdk/n8n-nodes-agentbill/-/n8n-nodes-agentbill-2.0.0.tgz","fileCount":8,"integrity":"sha512-E9Au0F/590nI4Vg++rQ2nV6UHsE1K6Txhgb1eHZJfhnOnh0lfmVnqRalk8CZluAc1EZvg8Q4NqhH+Yu/k86EcQ==","signatures":[{"sig":"MEYCIQDCfh2017+Df+zlnYQ15s5JfEupGgwJ/to44ZIH+IqSzgIhAP959AoRnxfrmJkC7yBru1I01HBV7I7j4mCBQOEp6Qhj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52705},"gitHead":"ea6006aaae882cf8cbdae73e53f6a409b7204bb9","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"dominicdivakar","email":"dominic@dexra.cloud"},"repository":{"url":"git+https://github.com/agentbill/n8n-nodes-agentbill.git","type":"git"},"_npmVersion":"10.8.2","description":"N8N node for AgentBill API - AI usage tracking & billing automation","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/node":"^18.16.0","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"n8n-workflow":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-agentbill_2.0.0_1761914351999_0.2476655179759042","host":"s3://npm-registry-packages-npm-production"}},"5.0.2":{"name":"@agentbill-sdk/n8n-nodes-agentbill","version":"5.0.2","description":"N8N node for AgentBill API - AI usage tracking & billing automation","keywords":["n8n","n8n-nodes","n8n-community-node-package","agentbill","ai","billing","usage-tracking","openai","anthropic"],"license":"MIT","homepage":"https://agentbill.app","author":{"name":"AgentBill","email":"support@agentbill.io"},"repository":{"type":"git","url":"git+https://github.com/agentbill/n8n-nodes-agentbill.git"},"scripts":{"build":"tsc && gulp build:icons","dev":"tsc --watch","format":"prettier nodes credentials --write","lint":"eslint nodes credentials","lintfix":"eslint nodes credentials --fix","prepublishOnly":"npm run build"},"n8n":{"n8nNodesApiVersion":1,"credentials":["dist/credentials/AgentBillApi.credentials.js"],"nodes":["dist/nodes/AgentBill/AgentBill.node.js"]},"devDependencies":{"@types/node":"^18.16.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","gulp":"^5.0.0","n8n-workflow":"^1.0.0","prettier":"^3.0.0","typescript":"^5.0.0"},"peerDependencies":{"n8n-workflow":">=1.0.0"},"_id":"@agentbill-sdk/n8n-nodes-agentbill@5.0.2","gitHead":"7b025cdc2a70f4c77ae2e8324a1ed886bfe35eb8","bugs":{"url":"https://github.com/agentbill/n8n-nodes-agentbill/issues"},"_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-wALZHAXupKpA1TE1ndzaJGqkNMbjcgqTNSRPHHPNlIaRzJeqcyhSPeji3nJM8UI5c4pVfp01Z0KhiA4BBTUjPA==","shasum":"1346f7715a8da66bd97dfcc251606bc8a7ad8b85","tarball":"https://registry.npmjs.org/@agentbill-sdk/n8n-nodes-agentbill/-/n8n-nodes-agentbill-5.0.2.tgz","fileCount":8,"unpackedSize":53972,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD0Ek/w8EF7Rz+HfOdkV1UlaBkHkB7JHsmca3/OkePM2wIhALLv7ZUOD25SuHKkzrkaCBYJegbG7W3Iyh+pxeSoP4kJ"}]},"_npmUser":{"name":"dominicdivakar","email":"dominic@dexra.cloud"},"directories":{},"maintainers":[{"name":"dominicdivakar","email":"dominic@dexra.cloud"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-agentbill_5.0.2_1762459194992_0.9614741676268255"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-29T19:25:59.590Z","modified":"2025-11-06T19:59:55.456Z","1.0.0":"2025-10-29T19:25:59.938Z","1.0.1":"2025-10-31T12:26:47.263Z","2.0.0":"2025-10-31T12:39:12.216Z","5.0.2":"2025-11-06T19:59:55.182Z"},"bugs":{"url":"https://github.com/agentbill/n8n-nodes-agentbill/issues"},"author":{"name":"AgentBill","email":"support@agentbill.io"},"license":"MIT","homepage":"https://agentbill.app","keywords":["n8n","n8n-nodes","n8n-community-node-package","agentbill","ai","billing","usage-tracking","openai","anthropic"],"repository":{"type":"git","url":"git+https://github.com/agentbill/n8n-nodes-agentbill.git"},"description":"N8N node for AgentBill API - AI usage tracking & billing automation","maintainers":[{"name":"dominicdivakar","email":"dominic@dexra.cloud"}],"readme":"# AgentBill N8N Integration\n\nComplete N8N node for AgentBill API with **Cost Guard** budget protection and 15+ core operations.\n\n## 🛡️ NEW: Cost Guard - Budget Protection\n\n**Prevent AI overspending with pre-validation!**\n\nCost Guard validates budgets BEFORE making expensive AI calls, protecting you from unexpected costs.\n\n### How Cost Guard Works:\n\n```\n1. Validate Budget → Check limits BEFORE spending\n2. IF allowed → Make AI call → Track usage\n3. IF blocked → Stop workflow → Send alert\n```\n\n### Key Benefits:\n- ✅ **Pre-validate requests** - Check budget BEFORE API call\n- ✅ **Block overspending** - Request denied if budget exceeded  \n- ✅ **Zero wastage** - Never pay for blocked requests\n- ✅ **Automatic tracking** - Usage recorded after completion\n- ✅ **Daily & monthly limits** - Flexible budget controls\n\n**→ See [examples/cost-guard-workflow.json](./examples/cost-guard-workflow.json) for complete workflow**\n\n---\n\n## Features\n\n### 🛡️ **Cost Guard Operations (NEW)**\n1. **Validate AI Request** - Check budget BEFORE spending\n2. **Track AI Usage** - Record usage AFTER completion\n\n### 🎯 **Core Operations**\n3. **Track Signal** - Record AI usage events with full metadata\n4. **Track Usage** - Simple usage logging\n5. **Get Usage Summary** - Aggregate cost & token metrics\n6. **List Customers** - View all customers\n7. **Create Customer** - Add new customers\n8. **Get Customer** - Retrieve single customer details\n9. **List Agents** - View all AI agents\n10. **Create Agent** - Configure new agents\n\n### 📊 **High-Value Operations**\n11. **Get Analytics** - Prompt profitability analytics\n12. **List Invoices** - Billing history\n13. **Get Invoice** - Single invoice details\n14. **Create Webhook** - Event notifications\n15. **List Signal Types** - Available event types\n16. **Get Cost Analysis** - Detailed cost breakdown\n17. **List Reconciliations** - Discrepancy reports\n\n## Installation\n\nSee [INSTALLATION.md](./INSTALLATION.md) for complete setup guide.\n\n### Quick Start\n\n#### Method 1: Install from npm (Recommended)\n```bash\n# Install globally\nnpm install -g @agentbill/n8n-nodes-agentbill\n\n# Or add to your N8N instance\ncd ~/.n8n\nnpm install @agentbill/n8n-nodes-agentbill\n```\n\n#### Method 2: Docker\n```dockerfile\nFROM n8nio/n8n:latest\nUSER root\nRUN cd /home/node/.n8n && npm install @agentbill/n8n-nodes-agentbill\nUSER node\n```\n\n#### Method 3: Manual Installation\n```bash\n# Copy to your n8n custom nodes directory\ncp -r integrations/n8n/* ~/.n8n/custom/\ncd ~/.n8n/custom && npm install && npm run build\n```\n\n### Restart N8N\n```bash\n# Local installation\nsystemctl restart n8n\n\n# Docker\ndocker restart n8n_container\n\n# npm\nnpm run start\n```\n\n### Add Credentials\n1. Open N8N interface\n2. Go to **Credentials** → **New**\n3. Search for **AgentBill API**\n4. Enter your API key (starts with `agb_`)\n5. Save\n\n## Usage Examples\n\n> **💡 Tip:** Find complete workflow JSON files in the [`examples/`](./examples) directory. Import them directly into N8N!\n\n### Example 1: 🛡️ Cost Guard - Protected AI Workflow\n\n**Validate budget BEFORE making AI calls to prevent overspending:**\n\n```json\n{\n  \"nodes\": [\n    {\n      \"name\": \"1. Validate Budget\",\n      \"type\": \"agentBill\",\n      \"parameters\": {\n        \"resource\": \"costGuard\",\n        \"operation\": \"validateRequest\",\n        \"customerId\": \"customer-123\",\n        \"model\": \"gpt-4o-mini\",\n        \"messages\": \"[{\\\"role\\\": \\\"user\\\", \\\"content\\\": \\\"Hello\\\"}]\",\n        \"estimatedInputTokens\": 50,\n        \"estimatedOutputTokens\": 100,\n        \"dailyBudget\": 10.00,\n        \"monthlyBudget\": 200.00\n      }\n    },\n    {\n      \"name\": \"2. Check If Allowed\",\n      \"type\": \"if\",\n      \"parameters\": {\n        \"conditions\": {\n          \"boolean\": [\n            { \"value1\": \"={{ $json.allowed }}\", \"value2\": true }\n          ]\n        }\n      }\n    },\n    {\n      \"name\": \"3. Make AI Call (if allowed)\",\n      \"type\": \"httpRequest\",\n      \"parameters\": {\n        \"url\": \"https://api.openai.com/v1/chat/completions\",\n        \"method\": \"POST\"\n      }\n    },\n    {\n      \"name\": \"4. Track Usage\",\n      \"type\": \"agentBill\",\n      \"parameters\": {\n        \"resource\": \"costGuard\",\n        \"operation\": \"trackUsage\",\n        \"customerId\": \"customer-123\",\n        \"model\": \"gpt-4o-mini\",\n        \"provider\": \"openai\",\n        \"inputTokens\": \"={{ $json.usage.prompt_tokens }}\",\n        \"outputTokens\": \"={{ $json.usage.completion_tokens }}\"\n      }\n    },\n    {\n      \"name\": \"5. Send Alert (if blocked)\",\n      \"type\": \"emailSend\",\n      \"parameters\": {\n        \"message\": \"Budget exceeded: {{ $json.reason }}\"\n      }\n    }\n  ]\n}\n```\n\n**→ [Import full workflow](./examples/cost-guard-workflow.json)**\n\n---\n\n### Example 2: Track AI Chat Completion\n```json\n{\n  \"nodes\": [\n    {\n      \"name\": \"AgentBill\",\n      \"type\": \"agentBill\",\n      \"parameters\": {\n        \"resource\": \"signal\",\n        \"operation\": \"trackSignal\",\n        \"eventName\": \"chat.completion\",\n        \"agentExternalId\": \"chatbot-001\",\n        \"customerExternalId\": \"customer-123\",\n        \"revenue\": 0.05,\n        \"model\": \"gpt-4\",\n        \"provider\": \"openai\",\n        \"inputTokens\": 150,\n        \"outputTokens\": 50,\n        \"latencyMs\": 1200\n      }\n    }\n  ]\n}\n```\n\n### Example 2: Create Customer → Track Usage\n```json\n{\n  \"nodes\": [\n    {\n      \"name\": \"Create Customer\",\n      \"type\": \"agentBill\",\n      \"parameters\": {\n        \"resource\": \"customer\",\n        \"operation\": \"create\",\n        \"customerName\": \"Acme Corp\",\n        \"email\": \"billing@acme.com\",\n        \"phone\": \"+1234567890\"\n      }\n    },\n    {\n      \"name\": \"Track Signal\",\n      \"type\": \"agentBill\",\n      \"parameters\": {\n        \"resource\": \"signal\",\n        \"operation\": \"trackSignal\",\n        \"eventName\": \"api.call\",\n        \"customerExternalId\": \"={{$node['Create Customer'].json.id}}\",\n        \"revenue\": 0.10\n      }\n    }\n  ]\n}\n```\n\n### Example 3: Get Analytics with Webhook\n```json\n{\n  \"nodes\": [\n    {\n      \"name\": \"Get Analytics\",\n      \"type\": \"agentBill\",\n      \"parameters\": {\n        \"resource\": \"analytics\",\n        \"operation\": \"getAnalytics\",\n        \"startDate\": \"2025-01-01T00:00:00Z\",\n        \"endDate\": \"2025-01-31T23:59:59Z\"\n      }\n    },\n    {\n      \"name\": \"Send to Slack\",\n      \"type\": \"slack\",\n      \"parameters\": {\n        \"message\": \"Monthly Analytics:\\nTotal Revenue: $={{$json.total_revenue}}\\nTotal Cost: $={{$json.total_cost}}\"\n      }\n    }\n  ]\n}\n```\n\n### Example 4: Automated Invoice Processing\n```json\n{\n  \"nodes\": [\n    {\n      \"name\": \"Schedule Trigger\",\n      \"type\": \"scheduleTrigger\",\n      \"parameters\": {\n        \"rule\": {\n          \"interval\": [\n            { \"field\": \"cronExpression\", \"expression\": \"0 0 1 * *\" }\n          ]\n        }\n      }\n    },\n    {\n      \"name\": \"List Invoices\",\n      \"type\": \"agentBill\",\n      \"parameters\": {\n        \"resource\": \"invoice\",\n        \"operation\": \"list\"\n      }\n    },\n    {\n      \"name\": \"Filter Unpaid\",\n      \"type\": \"filter\",\n      \"parameters\": {\n        \"conditions\": {\n          \"string\": [\n            {\n              \"value1\": \"={{$json.status}}\",\n              \"operation\": \"equals\",\n              \"value2\": \"pending\"\n            }\n          ]\n        }\n      }\n    }\n  ]\n}\n```\n\n## API Coverage\n\n| Operation | Endpoint | Method | Description |\n|-----------|----------|--------|-------------|\n| **🛡️ Validate AI Request** | `/functions/v1/validate-ai-request` | POST | **Check budget BEFORE spending** |\n| **🛡️ Track AI Usage** | `/functions/v1/track-ai-usage` | POST | **Record usage AFTER completion** |\n| Track Signal | `/record-signals` | POST | Record AI usage events |\n| Track Usage | `/track-usage` | POST | Simple usage tracking |\n| Get Usage Summary | `/api-usage` | GET | Aggregate metrics |\n| List Customers | `/api-customers` | GET | All customers |\n| Create Customer | `/api-customers` | POST | New customer |\n| Get Customer | `/api-customers?id=` | GET | Single customer |\n| List Agents | `/api-agents` | GET | All agents |\n| Create Agent | `/api-agents` | POST | New agent |\n| Get Analytics | `/api-prompt-analytics` | GET | Prompt analytics |\n| List Invoices | `/api-invoices` | GET | Invoice history |\n| Get Invoice | `/api-invoices?id=` | GET | Single invoice |\n| Create Webhook | `/create-webhook` | POST | Webhook endpoint |\n| List Signal Types | `/signal-types` | GET | Event types |\n| Get Cost Analysis | `/api-prompt-analytics` | GET | Cost breakdown |\n| List Reconciliations | `/reconciliation-runs` | GET | Reconciliation runs |\n\n## Authentication\n\nAll requests require:\n- **Header**: `X-API-Key: agb_your_api_key_here`\n- **Base URL**: `https://bgwyprqxtdreuutzpbgw.supabase.co/functions/v1`\n\nGet your API key from [AgentBill Dashboard](https://agentbill.app/dashboard/developers)\n\n## Error Handling\n\nThe node includes built-in error handling:\n\n```javascript\n// Continue on fail\n{\n  \"continueOnFail\": true,\n  \"alwaysOutputData\": true\n}\n```\n\nErrors return:\n```json\n{\n  \"error\": \"Error message here\",\n  \"statusCode\": 400\n}\n```\n\n## Rate Limits\n\n- **100 requests/minute** per API key\n- Batch operations count as 1 request\n- Use webhooks for high-frequency updates\n\n## Support\n\n- **Documentation**: https://docs.agentbill.app\n- **API Reference**: https://agentbill.app/dashboard/developers/api-reference\n- **Community**: https://discord.gg/agentbill\n- **Email**: support@agentbill.app\n\n## Version History\n\n### v1.1.0 (2025-01-28)\n- 🛡️ **NEW: Cost Guard** - Budget validation BEFORE spending\n- ✅ Added `Validate AI Request` operation\n- ✅ Added `Track AI Usage` operation\n- ✅ Comprehensive input validation (max lengths, ranges)\n- ✅ Example workflow with budget protection\n- ✅ Security hardening with proper error handling\n\n### v1.0.0 (2025-01-27)\n- ✅ Initial release with 15 core operations\n- ✅ Complete API coverage for common use cases\n- ✅ Authentication via API key\n- ✅ Error handling & validation\n- ✅ Webhook support\n","readmeFilename":"README.md"}