{"_id":"@armoriq/sdk-main","_rev":"3-f7c5aec716a84ac18c5e3e3c60ca32c6","name":"@armoriq/sdk-main","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@armoriq/sdk-main","version":"0.0.1","keywords":["armoriq","sdk","ai","agents","security","verification","mcp","typescript"],"author":{"name":"ArmorIQ Team","email":"license@armoriq.io"},"license":"MIT","_id":"@armoriq/sdk-main@0.0.1","maintainers":[{"name":"armoriq_sdk","email":"harisudhan@armoriq.io"}],"homepage":"https://armoriq.ai","bugs":{"url":"https://github.com/armoriq/armoriq-sdk-typescript/issues"},"dist":{"shasum":"6b4112d659bede0a3405a318607c0a02190de8b8","tarball":"https://registry.npmjs.org/@armoriq/sdk-main/-/sdk-main-0.0.1.tgz","fileCount":19,"integrity":"sha512-wk9h0/3VdDaGqqLqLKaKj+R30l8OkFcylt+iqsz1SFD3XfJrA+yPapvbuZfIlM01Vo8e/lTjiiDQ+4FfqguXlg==","signatures":[{"sig":"MEUCIQCegW46zTJ6O2tDSB5pJ/qHD/yuxWtkqa1ZftcBDISrtQIgL8o7yPAy7zbyj+cSgtXx4HNKoise/j871DmVSbKwtB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116512},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"0d9ddef1e737018c02b4b3c36b40c9cb92430212","scripts":{"dev":"tsc --watch","lint":"eslint 'src/**/*.ts'","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"armoriq_sdk","email":"harisudhan@armoriq.io"},"repository":{"url":"git+https://github.com/armoriq/armoriq-sdk-typescript.git","type":"git"},"_npmVersion":"11.11.0","description":"ArmorIQ SDK - Build secure AI agents with cryptographic intent verification.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.0","prettier":"^3.2.0","typescript":"^5.4.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk-main_0.0.1_1775666428350_0.9722897442588627","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-04-08T16:40:28.244Z","modified":"2026-09-21T11:36:52.667Z","0.0.1":"2026-04-08T16:40:28.508Z"},"bugs":{"url":"https://github.com/armoriq/armoriq-sdk-typescript/issues"},"author":{"name":"ArmorIQ Team","email":"license@armoriq.io"},"license":"MIT","homepage":"https://armoriq.ai","keywords":["armoriq","sdk","ai","agents","security","verification","mcp","typescript"],"repository":{"url":"git+https://github.com/armoriq/armoriq-sdk-typescript.git","type":"git"},"description":"ArmorIQ SDK - Build secure AI agents with cryptographic intent verification.","maintainers":[{"email":"harisudhan@armoriq.io","name":"armoriq_sdk"},{"email":"arun@armoriq.io","name":"akv2011"},{"email":"aniket@armoriq.io","name":"aniket_armoriq"}],"readme":"# ArmorIQ SDK (TypeScript)\n\n**Build secure AI agents with cryptographic intent verification.**\n\nThe ArmorIQ SDK enables developers to build AI agents with built-in security and auditability. Just one API key - no cloud complexity.\n\n---\n\n## Why ArmorIQ?\n\n- **Simple** - Just one API key, no cloud credentials\n- **Secure** - Cryptographic verification for every action\n- **Auditable** - Complete execution trail\n- **Fast** - Get started in 5 minutes\n\n---\n\n## Installation\n\n```bash\nnpm install @armoriq/sdk\n# or\nyarn add @armoriq/sdk\n```\n\n---\n\n## Quick Start\n\n### 1. Get Your API Key\n\nVisit [platform.armoriq.ai](https://platform.armoriq.ai) to generate your API key.\n\n### 2. Initialize the Client\n\n```typescript\nimport { ArmorIQClient } from '@armoriq/sdk';\n\nconst client = new ArmorIQClient({\n  apiKey: 'ak_your_key_here',\n  userId: 'your-user-id',\n  agentId: 'your-agent-id',\n});\n```\n\n### 3. Capture Your Plan\n\n```typescript\nconst plan = {\n  goal: 'Get weather forecast',\n  steps: [\n    {\n      action: 'get_weather',\n      tool: 'weather_api',\n      mcp: 'weather-mcp',\n      inputs: { city: 'Boston' },\n    },\n  ],\n};\n\nconst planCapture = client.capturePlan('gpt-4', \"What's the weather in Boston?\", plan);\n```\n\n### 4. Get Intent Token\n\n```typescript\nconst token = await client.getIntentToken(planCapture);\n```\n\n### 5. Invoke Actions\n\n```typescript\nconst result = await client.invoke('weather-mcp', 'get_weather', token, {\n  city: 'Boston',\n});\n\nconsole.log(result);\n```\n\n---\n\n## Environment Variables\n\n```bash\n# Required\nARMORIQ_API_KEY=ak_your_key_here\nUSER_ID=your-user-id\nAGENT_ID=your-agent-id\n\n# Optional\nARMORIQ_ENV=production  # or 'development' for local\nCONTEXT_ID=default\nIAP_ENDPOINT=https://customer-iap.armoriq.ai\nPROXY_ENDPOINT=https://customer-proxy.armoriq.ai\nBACKEND_ENDPOINT=https://customer-api.armoriq.ai\n```\n\n---\n\n## Advanced Usage\n\n### Delegation\n\n```typescript\nimport * as crypto from 'crypto';\n\n// Generate delegate keypair\nconst { publicKey, privateKey } = crypto.generateKeyPairSync('ed25519');\nconst pubKeyHex = publicKey.export({ type: 'spki', format: 'der' }).toString('hex');\n\nconst delegation = await client.delegate(token, pubKeyHex, 1800);\nconsole.log(`Delegated token: ${delegation.delegatedToken.tokenId}`);\n```\n\n### Custom Proxy Endpoints\n\n```typescript\nconst client = new ArmorIQClient({\n  apiKey: 'ak_your_key_here',\n  userId: 'user-123',\n  agentId: 'agent-456',\n  proxyEndpoints: {\n    'weather-mcp': 'https://weather-proxy.example.com',\n    'finance-mcp': 'https://finance-proxy.example.com',\n  },\n});\n```\n\n### Error Handling\n\n```typescript\nimport {\n  InvalidTokenException,\n  IntentMismatchException,\n  MCPInvocationException,\n  TokenExpiredException,\n} from '@armoriq/sdk';\n\ntry {\n  const result = await client.invoke('weather-mcp', 'get_weather', token, { city: 'Boston' });\n} catch (error) {\n  if (error instanceof TokenExpiredException) {\n    console.error('Token expired, please get a new one');\n  } else if (error instanceof IntentMismatchException) {\n    console.error('Action not in original plan');\n  } else if (error instanceof MCPInvocationException) {\n    console.error('MCP invocation failed:', error.message);\n  }\n}\n```\n\n---\n\n## API Reference\n\n### `ArmorIQClient`\n\n#### Constructor Options\n\n```typescript\ninterface SDKConfig {\n  apiKey: string; // Required: Your API key\n  userId: string; // Required: User identifier\n  agentId: string; // Required: Agent identifier\n  contextId?: string; // Optional: Context identifier (default: 'default')\n  useProduction?: boolean; // Optional: Use production endpoints (default: true)\n  iapEndpoint?: string; // Optional: Override IAP endpoint\n  proxyEndpoint?: string; // Optional: Override proxy endpoint\n  backendEndpoint?: string; // Optional: Override backend endpoint\n  proxyEndpoints?: Record<string, string>; // Optional: MCP-specific proxies\n  timeout?: number; // Optional: Request timeout in ms (default: 30000)\n  maxRetries?: number; // Optional: Max retry attempts (default: 3)\n  verifySsl?: boolean; // Optional: Verify SSL (default: true)\n}\n```\n\n#### Methods\n\n- `capturePlan(llm, prompt, plan, metadata?)` - Capture an execution plan\n- `getIntentToken(planCapture, policy?, validitySeconds?)` - Get a signed intent token\n- `invoke(mcp, action, intentToken, params?, merkleProof?, userEmail?)` - Invoke an MCP action\n- `delegate(intentToken, delegatePublicKey, validitySeconds?, allowedActions?, targetAgent?, subtask?)` - Delegate to another agent\n- `verifyToken(intentToken)` - Verify a token locally\n- `close()` - Cleanup resources\n\n---\n\n## Documentation\n\nFor complete documentation, visit [docs.armoriq.ai](https://docs.armoriq.ai)\n\n---\n\n## Links\n\n- [armoriq.ai](https://armoriq.ai)\n- [docs.armoriq.ai](https://docs.armoriq.ai)\n- [platform.armoriq.ai](https://platform.armoriq.ai)\n\n---\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md"}