{"_id":"@ayurak/sdk","_rev":"6-77d20a2c64c246a841ff49585a9157f8","name":"@ayurak/sdk","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@ayurak/sdk","version":"1.0.0","keywords":["security","threat-modeling","compliance","cloud-security","devsecops","api","typescript","aribot","aristiun","ayurak"],"author":{"name":"Aristiun & Ayurak","email":"sdk@ayurak.com"},"license":"MIT","_id":"@ayurak/sdk@1.0.0","maintainers":[{"name":"ayurak","email":"tejs@ayurak.com"}],"homepage":"https://developer.ayurak.com/docs/js-sdk","bugs":{"url":"https://github.com/Aristiun/aribot-js/issues"},"dist":{"shasum":"496ce622c1179481fff3b03be86375de6a9c86c3","tarball":"https://registry.npmjs.org/@ayurak/sdk/-/sdk-1.0.0.tgz","fileCount":6,"integrity":"sha512-/2ILxBwu1QQSxcU541FLcCVaKytfyzsmdwk258ZSMCE7qGyGSeOMhsRfJ63S02axhSGPISxfGcx7T3giaxvRZg==","signatures":[{"sig":"MEQCICI5QVnyAEb20o4VSBz/DekFqwUbqZiZ4k1SsuAuQZxyAiAAvwWZJddckqNbt19oCPTLme1JQHZZpe0R1S9r6CK+Ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82670},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5a50300d2c650c149e4affd8774a0f928d1df8d8","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src/","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","prepublishOnly":"npm run build"},"_npmUser":{"name":"ayurak","email":"tejs@ayurak.com"},"repository":{"url":"git+https://github.com/Aristiun/aribot-js.git","type":"git"},"_npmVersion":"10.9.3","description":"Aribot Security Platform SDK by Aristiun & Ayurak - Threat modeling, compliance, and cloud security APIs","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0_1768767264850_0.312531696525014","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@ayurak/sdk","version":"1.1.0","keywords":["security","threat-modeling","compliance","cloud-security","devsecops","api","typescript","aribot","aristiun","ayurak"],"author":{"name":"Aristiun & Ayurak","email":"sdk@aristiun.com"},"license":"MIT","_id":"@ayurak/sdk@1.1.0","maintainers":[{"name":"ayurak","email":"tejs@ayurak.com"}],"homepage":"https://developers.aristiun.com/docs/js-sdk","bugs":{"url":"https://github.com/Aristiun/aribot-js/issues"},"dist":{"shasum":"618bd9acb44fcacc88dde00a925acb4112357779","tarball":"https://registry.npmjs.org/@ayurak/sdk/-/sdk-1.1.0.tgz","fileCount":6,"integrity":"sha512-9kN85Jlczc4kjQKs2Vshwm74vi4wiEhsedMbnnZcUd1/mZ2w/SfjnDDPb+h0xuJZJ+Za98wLRKihvHEz39gmOw==","signatures":[{"sig":"MEYCIQDbRDf4lT2isCIbfqnj/KtvotxYpe5jqIgKpbxkgmMZ8QIhAJvCDlhMj1yAzY6jSjLvWb8f+ZM4723Gm4sheVurMjKM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108573},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9668de1fdd1e58f9fb78bcae5903769231fd9d03","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src/","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","prepublishOnly":"npm run build"},"_npmUser":{"name":"ayurak","email":"tejs@ayurak.com"},"repository":{"url":"git+https://github.com/Aristiun/aribot-js.git","type":"git"},"_npmVersion":"10.9.3","description":"Aribot Security Platform SDK by Aristiun & Ayurak - Threat modeling, compliance, and cloud security APIs","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.1.0_1769533316149_0.71626293763058","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@ayurak/sdk","version":"1.4.0","keywords":["security","threat-modeling","compliance","cloud-security","devsecops","api","typescript","aribot","aristiun","ayurak"],"author":{"name":"Aristiun & Ayurak","email":"sdk@aristiun.com"},"license":"MIT","_id":"@ayurak/sdk@1.4.0","maintainers":[{"name":"ayurak","email":"tejs@ayurak.com"}],"homepage":"https://developers.aristiun.com/docs/js-sdk","bugs":{"url":"https://github.com/Aristiun/aribot-js/issues"},"dist":{"shasum":"a0d29a0dda85cedee6b8a8a12133706f19bfe29f","tarball":"https://registry.npmjs.org/@ayurak/sdk/-/sdk-1.4.0.tgz","fileCount":6,"integrity":"sha512-Id5dlXw68yspNgCzFvSh1VXmC/uCLeGiI+rtwM5RoAHOkHm7EmR9wta+RTIg4xq0URtRbdtXQ51f7BszXxYUuQ==","signatures":[{"sig":"MEUCIGAh2tbw4SpYpzCgPoFnkCoTkODjUC/wMtOuUwfHQN3wAiEAlMBhLGasBJ2k3O+RaMO36B/jcmape0Tnb+F1W5B//wQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135321},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"c71010db576d016abcfe77521252536a371be5dd","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src/","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","prepublishOnly":"npm run build"},"_npmUser":{"name":"ayurak","email":"tejs@ayurak.com"},"repository":{"url":"git+https://github.com/Aristiun/aribot-js.git","type":"git"},"_npmVersion":"10.9.3","description":"Aribot Security Platform SDK by Aristiun & Ayurak - Threat modeling, compliance, and cloud security APIs","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.4.0_1769804461224_0.6267778455199025","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@ayurak/sdk","version":"1.5.0","keywords":["security","threat-modeling","compliance","cloud-security","devsecops","api","typescript","aribot","aristiun","ayurak"],"author":{"name":"Aristiun & Ayurak","email":"sdk@aristiun.com"},"license":"MIT","_id":"@ayurak/sdk@1.5.0","maintainers":[{"name":"ayurak","email":"tejs@ayurak.com"}],"homepage":"https://developers.aristiun.com/docs/js-sdk","bugs":{"url":"https://github.com/Aristiun/aribot-js/issues"},"dist":{"shasum":"8e8ddd1a9e237a870ea1340926c4716cac479be8","tarball":"https://registry.npmjs.org/@ayurak/sdk/-/sdk-1.5.0.tgz","fileCount":6,"integrity":"sha512-yDMKqBMD6Bvztac2eeoIqPx0b2nA2et+qZDh5RJgRmIKnCrDriRLUkRjeRmPSka3noOxEX3GFPfX8UrqGiMIkw==","signatures":[{"sig":"MEYCIQCbplE42tBXSPvQfMIwNs+j4l+HDjhqyw3HjS/OpgchtAIhANkLp9U2X0oiFK0OTBTNiaYeLIWOUlIA56MDpmnSXqr3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146170},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"82c2a46d5b8a67f7a51332cefc9539149b3d45b3","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src/","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","prepublishOnly":"npm run build"},"_npmUser":{"name":"ayurak","email":"tejs@ayurak.com"},"repository":{"url":"git+https://github.com/Aristiun/aribot-js.git","type":"git"},"_npmVersion":"10.9.3","description":"Aribot Security Platform SDK by Aristiun & Ayurak - Threat modeling, compliance, and cloud security APIs","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.5.0_1771111707673_0.5128406835788375","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@ayurak/sdk","version":"2.0.0","keywords":["security","threat-modeling","compliance","cloud-security","devsecops","api","typescript","aribot","aristiun","ayurak"],"author":{"name":"Aristiun & Ayurak","email":"sdk@aristiun.com"},"license":"MIT","_id":"@ayurak/sdk@2.0.0","maintainers":[{"name":"ayurak","email":"tejs@ayurak.com"}],"homepage":"https://developers.aristiun.com/docs/js-sdk","bugs":{"url":"https://github.com/Aristiun/aribot-js/issues"},"dist":{"shasum":"62dda24a6fb6036bb632bede5b201594d61780fb","tarball":"https://registry.npmjs.org/@ayurak/sdk/-/sdk-2.0.0.tgz","fileCount":6,"integrity":"sha512-RVpGnWmBuz6OdPTiDpU2MsQdiT6HwsMLcJzhAoG/dDKKrHNFToL/9R/fyPcnOKCVuuKuwHtiDQdSihgYYYozqA==","signatures":[{"sig":"MEQCIC6iGRb3ohqKzZH87EzkjfRNQ0T64Mv9sMtyPQjii7baAiApQyXpNr2pUc+aLANggmfxFnB5TE6G/5BijnxSLglAMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163096},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src/","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","prepublishOnly":"npm run build"},"_npmUser":{"name":"ayurak","email":"tejs@ayurak.com"},"repository":{"url":"git+https://github.com/Aristiun/aribot-js.git","type":"git"},"_npmVersion":"10.9.3","description":"Aribot Security Platform SDK by Aristiun & Ayurak - Threat modeling, compliance, and cloud security APIs","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.0_1775654372422_0.29471344695682444","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@ayurak/sdk","version":"2.0.1","description":"Aribot Security Platform SDK by Aristiun & Ayurak - Threat modeling, compliance, and cloud security APIs","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts","dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src/","test":"vitest","prepublishOnly":"npm run build"},"keywords":["security","threat-modeling","compliance","cloud-security","devsecops","api","typescript","aribot","aristiun","ayurak"],"author":{"name":"Aristiun & Ayurak","email":"sdk@aristiun.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Aristiun/aribot-js.git"},"homepage":"https://developers.aristiun.com/docs/js-sdk","bugs":{"url":"https://github.com/Aristiun/aribot-js/issues"},"devDependencies":{"@types/node":"^20.0.0","tsup":"^8.0.0","typescript":"^5.0.0","vitest":"^1.0.0"},"engines":{"node":">=18.0.0"},"_id":"@ayurak/sdk@2.0.1","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-AgFVuchKl+ffAhC3DwSlYQo6sQ/KZSAukFPKzXaT648UJmU1AtVPGae1sIeykQTpU0DRhbYTfn9fkNrDfAQRKg==","shasum":"a93fc888a98945d053f09e20098185ed1cb74c75","tarball":"https://registry.npmjs.org/@ayurak/sdk/-/sdk-2.0.1.tgz","fileCount":6,"unpackedSize":190580,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF+1ZSGGVUSmMWFUjYw2bX+vejkA2c9H3CS4+IElJyayAiAl/dhZxoH0/dKgBaS/LWGY+zR3qiFrmoJMc3oMNTa3zw=="}]},"_npmUser":{"name":"ayurak","email":"tejs@ayurak.com"},"directories":{},"maintainers":[{"name":"ayurak","email":"tejs@ayurak.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_2.0.1_1775655651410_0.6664310108332792"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-18T20:14:24.773Z","modified":"2026-04-08T13:40:51.699Z","1.0.0":"2026-01-18T20:14:25.008Z","1.1.0":"2026-01-27T17:01:56.311Z","1.4.0":"2026-01-30T20:21:01.352Z","1.5.0":"2026-02-14T23:28:27.816Z","2.0.0":"2026-04-08T13:19:32.559Z","2.0.1":"2026-04-08T13:40:51.586Z"},"bugs":{"url":"https://github.com/Aristiun/aribot-js/issues"},"author":{"name":"Aristiun & Ayurak","email":"sdk@aristiun.com"},"license":"MIT","homepage":"https://developers.aristiun.com/docs/js-sdk","keywords":["security","threat-modeling","compliance","cloud-security","devsecops","api","typescript","aribot","aristiun","ayurak"],"repository":{"type":"git","url":"git+https://github.com/Aristiun/aribot-js.git"},"description":"Aribot Security Platform SDK by Aristiun & Ayurak - Threat modeling, compliance, and cloud security APIs","maintainers":[{"name":"ayurak","email":"tejs@ayurak.com"}],"readme":"# Aribot JavaScript/TypeScript SDK\n\nOfficial JavaScript SDK for the Aribot Security Platform by Aristiun & Ayurak.\n\n[![npm](https://img.shields.io/npm/v/@ayurak/sdk)](https://www.npmjs.com/package/@ayurak/sdk)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue)](https://www.typescriptlang.org/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n## Installation\n\n```bash\nnpm install @ayurak/sdk\n# or\nyarn add @ayurak/sdk\n# or\npnpm add @ayurak/sdk\n```\n\n## Quick Start\n\n```typescript\nimport { Aribot } from '@ayurak/sdk';\n\nconst client = new Aribot('your_api_key');\n\n// Analyze architecture diagram for threats\nconst file = new File([buffer], 'architecture.png', { type: 'image/png' });\nconst result = await client.threatModeling.analyzeDiagram(file);\nconsole.log(`Found ${result.threat_count} threats`);\n\n// Get detailed threats\nconst threats = await client.threatModeling.getThreats(result.diagram_id);\nfor (const threat of threats) {\n  console.log(`[${threat.severity}] ${threat.title}`);\n}\n```\n\n## Features\n\n- **Full TypeScript support** with comprehensive type definitions\n- **Threat Modeling** - Upload diagrams, detect components, identify threats\n- **Compliance Scanning** - ISO 27001, SOC2, GDPR, HIPAA, PCI-DSS, NIST\n- **Cloud Security** - Scan AWS, Azure, GCP for misconfigurations\n- **Pipeline Security** - SAST, SCA, secrets detection in CI/CD\n- **Digital Twin** - Cloud resource mapping, health monitoring, live status\n- **Economics** - Cost analysis, ROI calculations, market intelligence\n- **Red Team** - Attack simulations, methodologies, threat intelligence\n\n## API Reference\n\n### Threat Modeling\n\n```typescript\n// Upload and analyze a diagram\nconst result = await client.threatModeling.analyzeDiagram(file, {\n  analysisDepth: 'comprehensive', // basic, comprehensive, detailed\n  wait: true,                     // wait for analysis to complete\n  timeout: 300000                 // max wait time in ms\n});\n\n// List diagrams\nconst diagrams = await client.threatModeling.list({ page: 1, limit: 25 });\n\n// Get diagram details\nconst diagram = await client.threatModeling.get(diagramId);\n\n// Get threats for a diagram\nconst threats = await client.threatModeling.getThreats(diagramId);\n\n// Get detected components\nconst components = await client.threatModeling.getComponents(diagramId);\n\n// Run AI-powered analysis\nconst aiResult = await client.threatModeling.analyzeWithAI(diagramId, [\n  'attack_paths',\n  'data_flow'\n]);\n\n// Delete a diagram\nawait client.threatModeling.delete(diagramId);\n\n// Get dashboard metrics\nconst dashboard = await client.threatModeling.dashboard('month');\n```\n\n### Compliance Scanning\n\n```typescript\n// Run compliance scan\nconst result = await client.compliance.scan(diagramId, {\n  standards: ['ISO27001', 'SOC2', 'GDPR'],\n  includeRecommendations: true\n});\nconsole.log(`Compliance score: ${result.overall_score}%`);\n\n// Get compliance report\nconst report = await client.compliance.getReport(diagramId, 'json');\n\n// List available standards\nconst standards = await client.compliance.listStandards();\n\n// Get standard details\nconst iso = await client.compliance.getStandard('ISO27001');\n\n// List controls for a standard\nconst controls = await client.compliance.listControls('SOC2', 'access_control');\n\n// Get compliance gaps\nconst gaps = await client.compliance.getGaps(diagramId, 'ISO27001');\n\n// Create custom standard\nconst custom = await client.compliance.addCustomStandard(\n  'Internal Security Policy',\n  'Company security requirements',\n  [\n    {\n      id: 'ISP-001',\n      name: 'Data Encryption',\n      description: 'All data must be encrypted at rest',\n      severity: 'high'\n    }\n  ]\n);\n\n// Get compliance dashboard\nconst dashboard = await client.compliance.dashboard('quarter');\n```\n\n### Cloud Security\n\n```typescript\n// Run cloud security scan\nconst scan = await client.cloud.scan('123456789012', {\n  provider: 'aws',\n  services: ['iam', 's3', 'ec2'],\n  complianceStandards: ['CIS-AWS']\n});\n\n// Get scan results\nconst scanResult = await client.cloud.getScan(scanId);\n\n// List scans\nconst scans = await client.cloud.listScans({\n  provider: 'aws',\n  status: 'completed'\n});\n\n// Get findings\nconst findings = await client.cloud.getFindings(scanId, {\n  severity: 'critical',\n  service: 's3'\n});\n\n// Connect AWS account\nconst account = await client.cloud.connectAccount(\n  'aws',\n  {\n    role_arn: 'arn:aws:iam::123456789012:role/AribotSecurityRole',\n    external_id: 'your-external-id'\n  },\n  { name: 'Production AWS' }\n);\n\n// Connect GCP project\nconst gcpAccount = await client.cloud.connectAccount(\n  'gcp',\n  {\n    service_account_key: '{ ... }',\n    project_id: 'my-project-123'\n  }\n);\n\n// List connected accounts\nconst accounts = await client.cloud.listAccounts('aws');\n\n// Get remediation steps\nconst remediation = await client.cloud.getRemediation(findingId);\n\n// Resolve a finding\nawait client.cloud.resolveFinding(findingId, 'fixed', 'Patched in v1.2.3');\n\n// Suppress a finding\nawait client.cloud.suppressFinding(findingId, 'Accepted risk', 90);\n\n// Get cloud security dashboard\nconst dashboard = await client.cloud.dashboard('123456789012');\n```\n\n### Pipeline Security\n\n```typescript\n// Create a project\nconst project = await client.pipeline.createProject('my-api', {\n  repositoryUrl: 'https://github.com/org/my-api',\n  scanTypes: ['sast', 'sca', 'secrets']\n});\n\n// Run security scan\nconst result = await client.pipeline.scan(projectId, {\n  commitSha: 'abc123def456',\n  branch: 'main',\n  scanTypes: ['sast', 'sca', 'secrets'],\n  failOnSeverity: 'high',\n  wait: true\n});\n\nif (result.status === 'failed') {\n  console.log('Security gate failed!');\n  for (const finding of result.blocking_findings || []) {\n    console.log(`  [${finding.severity}] ${finding.title}`);\n  }\n}\n\n// Get scan details\nconst scan = await client.pipeline.getScan(scanId);\n\n// Get specific finding types\nconst sastFindings = await client.pipeline.getSastFindings(scanId);\nconst scaFindings = await client.pipeline.getScaFindings(scanId);\nconst secrets = await client.pipeline.getSecretsFindings(scanId);\n\n// Configure security gates\nawait client.pipeline.configureGates(projectId, {\n  fail_on_critical: true,\n  fail_on_high: true,\n  max_high_findings: 5,\n  block_secrets: true,\n  required_scan_types: ['sast', 'secrets']\n});\n\n// Set baseline (suppress existing findings)\nawait client.pipeline.addBaseline(projectId, scanId);\n\n// Suppress a finding\nawait client.pipeline.suppressFinding(findingId, 'False positive');\n\n// Get pipeline dashboard\nconst dashboard = await client.pipeline.dashboard(projectId);\n```\n\n### Digital Twin\n\n```typescript\n// Get cloud providers\nconst providers = await client.digitalTwin.getProviders();\n// Returns: [{ name: 'aws', display_name: 'Amazon Web Services', is_active: true }, ...]\n\n// Get available resources\nconst resources = await client.digitalTwin.getResources({ provider: 'aws', limit: 50 });\n\n// Get health status\nconst health = await client.digitalTwin.getHealth();\n\n// Get analytics\nconst analytics = await client.digitalTwin.getAnalytics();\n\n// Get diagram component cloud status\nconst status = await client.digitalTwin.getDiagramComponentStatus(diagramId);\n\n// Map component to cloud resource\nawait client.digitalTwin.mapComponent(diagramId, componentId, resourceId);\n\n// Sync diagram status\nawait client.digitalTwin.syncDiagramStatus(diagramId);\n```\n\n### Economics\n\n```typescript\n// Get economics dashboard\nconst dashboard = await client.economics.getDashboard({ period: 'month' });\n\n// Get diagram cost analysis\nconst cost = await client.economics.getDiagramCostAnalysis(diagramId);\nconsole.log(`Monthly cost: $${cost.total_monthly_cost}`);\n\n// Get component cost\nconst componentCost = await client.economics.getComponentCost(componentId);\n\n// Get economic intelligence (includes Strategic Cost Optimization)\nconst intel = await client.economics.getEconomicIntelligence();\n// Returns: { status: 'success', provider: 'aws', pricing: {...},\n//           strategic_optimization: { current: {...}, previous: {...} } }\n\n// Refresh Strategic Cost Optimization recommendations (AI-powered)\n// Moves current recommendations to \"previous\" and generates new ones\nconst refresh = await client.economics.refreshRecommendations();\n// Returns: { status: 'success', message: 'Recommendations refreshed',\n//           current: {...}, previous: {...} }\n\n// Get market intelligence\nconst market = await client.economics.getMarketIntelligence();\n\n// Calculate ROI\nconst roi = await client.economics.calculateROI({\n  investment: 100000,\n  risksAddressed: ['risk-1', 'risk-2'],\n  timeframeDays: 365\n});\nconsole.log(`ROI: ${roi.roi_percentage}%`);\n```\n\n### Red Team\n\n```typescript\n// Get methodologies\nconst methodologies = await client.redTeam.getMethodologies();\n// Returns: [{ id: 'stride', name: 'STRIDE', description: '...' }, ...]\n\n// Get simulations\nconst simulations = await client.redTeam.getSimulations({ limit: 10 });\n\n// Get threat intelligence\nconst intel = await client.redTeam.getIntelligence();\n\n// Generate attack paths\nconst paths = await client.redTeam.generateAttackPaths(diagramId, {\n  depth: 'comprehensive',\n  includeRemediations: true\n});\n\n// Get security requirements\nconst requirements = await client.redTeam.getSecurityRequirements(diagramId);\n```\n\n### Severity Assignment (AI-powered)\n\n```typescript\n// Estimate AI cost for severity assignment\nconst estimate = await client.compliance.estimateSeverityCost({\n  scanId: scanId,\n  accountId: accountId\n});\n// Returns: { estimated_tokens: 15000, estimated_cost_usd: 0.45, violations_count: 150 }\n\n// Assign severity using AI (automatically analyzes all violations)\nconst result = await client.compliance.assignSeverityAI({\n  scanId: scanId,\n  accountId: accountId,\n  model: 'claude-3-sonnet', // or 'gpt-4', 'gemini-pro'\n  batchSize: 50\n});\n// Returns: { status: 'completed', processed: 150, updated: 142, errors: 0 }\n\n// Manually assign severity to violations\nconst manualResult = await client.compliance.assignSeverityManual({\n  violationIds: ['v-123', 'v-456'],\n  severity: 'high' // critical, high, medium, low, info\n});\n// Returns: { updated: 2, violations: [...] }\n```\n\n### Scanner Rules\n\n```typescript\n// List scanner rules\nconst rules = await client.compliance.listScannerRules({\n  severity: 'critical',\n  provider: 'aws'\n});\n// Returns: [{ id: '...', name: 'S3 Public Access', severity: 'critical' }, ...]\n\n// Get scanner rule statistics\nconst stats = await client.compliance.getScannerStatistics();\n// Returns: { total_rules: 500, by_severity: {...}, by_provider: {...} }\n\n// Sync rules from cloud providers\nconst syncResult = await client.compliance.syncScannerRules({\n  providers: ['aws', 'azure', 'gcp']\n});\n// Returns: { synced: 150, new: 25, updated: 10 }\n\n// Create custom scanner rule\nconst rule = await client.compliance.createScannerRule({\n  name: 'Custom S3 Encryption Check',\n  description: 'Ensure all S3 buckets have encryption enabled',\n  severity: 'high',\n  provider: 'aws',\n  resourceType: 's3_bucket',\n  condition: {\n    field: 'encryption.enabled',\n    operator: 'equals',\n    value: true\n  }\n});\n```\n\n### Dynamic Cloud Scanning\n\n```typescript\n// Execute dynamic scan on cloud account\nconst scan = await client.compliance.executeDynamicScan({\n  accountId: accountId,\n  scanType: 'full', // full, quick, targeted\n  resources: ['ec2', 's3', 'iam'],\n  standards: ['CIS-AWS', 'SOC2']\n});\n// Returns: { scan_id: '...', status: 'running', estimated_duration: 300 }\n\n// Execute unified scan with flexible scope\nconst unifiedScan = await client.compliance.executeUnifiedScan({\n  scope: 'account', // account, standard, diagram\n  scopeId: accountId,\n  includeRemediation: true\n});\n// Returns: { scan_id: '...', status: 'queued' }\n```\n\n### Remediation Execution\n\n```typescript\n// Preview remediation before execution\nconst preview = await client.compliance.previewRemediation({\n  policyId: policyId,\n  accountId: accountId\n});\n// Returns: { actions: [...], risk_level: 'low', affected_resources: 5 }\n\n// Execute remediation\nconst result = await client.compliance.executeRemediation({\n  policyId: policyId,\n  accountId: accountId,\n  dryRun: false,\n  autoApprove: true\n});\n// Returns: { status: 'completed', resources_fixed: 5, rollback_available: true }\n```\n\n### AI Agents & Self-Healing\n\n```typescript\n// Get AI agent status\nconst status = await client.aiAgents.getStatus();\n// Returns: { active: true, agents: [...], capabilities: [...] }\n\n// Run specialist agent analysis\nconst analysis = await client.aiAgents.runSpecialist({\n  agentType: 'security', // security, compliance, cost, architecture\n  diagramId: diagramId\n});\n\n// Self-healing operations\nconst healingStatus = await client.aiAgents.getSelfHealingStatus();\n// Returns: { enabled: true, recent_actions: [...], autonomy_level: 'supervised' }\n\n// Get autonomy stats\nconst autonomyStats = await client.aiAgents.getAutonomyStats();\n// Returns: { total_remediations: 150, auto_approved: 120, manual_review: 30 }\n\n// Trigger remediation\nconst remediation = await client.aiAgents.triggerRemediation({\n  findingId: findingId,\n  autoApprove: false\n});\n\n// Approve/reject remediation action\nawait client.aiAgents.approveRemediation(remediationId);\nawait client.aiAgents.rejectRemediation(remediationId, 'Risk too high');\n\n// Rollback remediation\nawait client.aiAgents.rollbackRemediation(remediationId);\n\n// Emergency stop all autonomous actions\nawait client.aiAgents.emergencyStop();\n\n// Resume autonomous operations\nawait client.aiAgents.resumeOperations();\n```\n\n### Security Co-Pilot\n\n```typescript\n// Get security co-pilot status\nconst status = await client.securityCopilot.getStatus();\n// Returns: { enabled: true, mode: 'supervised', active_threats: 5 }\n\n// Get pending actions awaiting approval\nconst actions = await client.securityCopilot.getPendingActions();\n// Returns: [{ id: '...', type: 'patch', resource: '...', risk: 'low' }, ...]\n\n// Get action history\nconst history = await client.securityCopilot.getActionHistory({ limit: 50 });\n\n// Get active threats\nconst threats = await client.securityCopilot.getActiveThreats();\n\n// Approve/reject action\nawait client.securityCopilot.approveAction(actionId);\nawait client.securityCopilot.rejectAction(actionId);\n\n// Rollback action\nawait client.securityCopilot.rollbackAction(actionId);\n\n// Trigger security scan\nconst scan = await client.securityCopilot.triggerScan({ scope: 'full' });\n\n// Update settings\nawait client.securityCopilot.updateSettings({\n  autoRemediation: true,\n  maxRiskLevel: 'medium'\n});\n\n// Toggle co-pilot on/off\nawait client.securityCopilot.toggle(true);\n```\n\n### Presets Import\n\n```typescript\n// Import compliance presets\nconst presets = await client.compliance.importPresets({\n  provider: 'aws', // aws, azure, gcp, all\n  categories: ['security', 'cost', 'operations']\n});\n// Returns: { imported: 50, standards: [...], rules: [...] }\n```\n\n### Strategic Remediation Plan (AI-powered)\n\n```typescript\n// Generate strategic remediation plan for a severity level\n// Uses AI to analyze all violations and create a comprehensive plan\nconst plan = await client.compliance.generateStrategicPlan({\n  scanId: scanId,\n  accountId: accountId,\n  severity: 'critical' // critical, high, medium, low\n});\n// Returns: {\n//   id: 'uuid',\n//   severity: 'critical',\n//   status: 'generated',\n//   overview: 'Strategic overview of all critical violations...',\n//   rootCauses: [{ cause: '...', theme: '...', impact: '...' }],\n//   groupedViolations: [{ policy: '...', violations: [...] }],\n//   highImpactActions: [{ action: '...', impactScore: 95 }],\n//   remediationPhases: [{ phase: 1, duration: '1 week', actions: [...] }],\n//   successMetrics: [{ metric: '...', target: '...' }],\n//   estimatedTotalEffort: '2-3 weeks',\n//   costSavingsFinops: { monthly: 5000, annual: 60000 },\n//   costSavingsRisk: { riskReduction: '85%', avoidedIncidents: 12 }\n// }\n\n// Get existing strategic plan\nconst existing = await client.compliance.getStrategicPlan(planId);\n\n// List strategic plans for an account\nconst plans = await client.compliance.listStrategicPlans({\n  accountId: accountId,\n  severity: 'critical'\n});\n```\n\n### Mitigation Plan (AI-powered)\n\n```typescript\n// Get existing mitigation plan for a diagram\nconst plan = await client.threatModeling.getMitigationPlan(diagramId);\nif (plan) {\n  console.log(`Overview: ${plan.plan.overview}`);\n  console.log(`Recommendations: ${plan.plan.recommendations.length}`);\n  plan.plan.recommendations.forEach(rec => {\n    console.log(`  [${rec.rank}] ${rec.title} - ${rec.priority}`);\n  });\n}\n\n// Generate new mitigation plan (AI-powered, uses chunked processing)\nconst newPlan = await client.threatModeling.generateMitigationPlan(diagramId, {\n  forceRegenerate: true  // Force regenerate even if cached\n});\n// Returns comprehensive plan with:\n// - overview: Strategic summary of all threats\n// - recommendations: Ranked list with code snippets\n// - rootCauses: Identified patterns across threats\n// - remediationPhases: Phased approach with timelines\n// - successMetrics: Measurable criteria\n// - metadata: AI provider, generation time, etc.\n\nconsole.log(`Generated in ${newPlan.plan.metadata.generationTimeMs}ms`);\nconsole.log(`Threats analyzed: ${newPlan.plan.metadata.threatCount}`);\n\n// Access recommendations with code snippets\nnewPlan.plan.recommendations.forEach(rec => {\n  console.log(`[${rec.priority}] ${rec.title}`);\n  console.log(`  Impact: ${rec.impact}`);\n  console.log(`  Effort: ${rec.effort}`);\n  console.log(`  Affected threats: ${rec.affectedThreats?.join(', ')}`);\n  if (rec.codeSnippet) {\n    console.log(`  Code (${rec.codeLanguage}):`);\n    console.log(`    ${rec.codeSnippet}`);\n  }\n});\n\n// View root causes (patterns identified across multiple threats)\nnewPlan.plan.rootCauses.forEach(cause => {\n  console.log(`Root cause: ${cause.cause}`);\n  console.log(`  Theme: ${cause.theme}, Impact: ${cause.impact}`);\n});\n\n// View phased remediation plan\nnewPlan.plan.remediationPhases.forEach(phase => {\n  console.log(`Phase: ${phase.phase} (${phase.duration})`);\n  console.log(`  Actions: ${phase.actions.join(', ')}`);\n  console.log(`  Threats resolved: ${phase.threatsResolved}`);\n});\n\n// Update plan with manual edits\nconst updatedPlan = { ...newPlan.plan };\nupdatedPlan.recommendations[0].priority = 'immediate';\nawait client.threatModeling.updateMitigationPlan(diagramId, updatedPlan);\n```\n\n## Error Handling\n\n```typescript\nimport {\n  Aribot,\n  AribotError,\n  AuthenticationError,\n  RateLimitError,\n  ValidationError,\n  NotFoundError,\n  ServerError\n} from '@ayurak/sdk';\n\nconst client = new Aribot('your_api_key');\n\ntry {\n  const result = await client.threatModeling.analyzeDiagram(file);\n} catch (error) {\n  if (error instanceof AuthenticationError) {\n    console.error('Invalid API key');\n  } else if (error instanceof RateLimitError) {\n    console.error(`Rate limited. Retry after ${error.retryAfter} seconds`);\n  } else if (error instanceof ValidationError) {\n    console.error(`Invalid request: ${error.errors}`);\n  } else if (error instanceof NotFoundError) {\n    console.error('Resource not found');\n  } else if (error instanceof ServerError) {\n    console.error('Server error - try again later');\n  } else if (error instanceof AribotError) {\n    console.error(`API error: ${error.message}`);\n  }\n}\n```\n\n## Configuration\n\n```typescript\n// Custom base URL (for on-premise deployments)\nconst client = new Aribot('your_api_key', {\n  baseUrl: 'https://aribot.internal.company.com/api',\n  timeout: 60000\n});\n\n// Check API health\nconst health = await client.health();\n\n// Get current user info\nconst user = await client.me();\n\n// Get usage stats\nconst usage = await client.usage('month');\nconsole.log(`API calls used: ${usage.calls_used}/${usage.calls_limit}`);\n```\n\n## Node.js Usage\n\nFor Node.js environments, you can use the `fs` module to read files:\n\n```typescript\nimport { Aribot } from '@ayurak/sdk';\nimport { readFileSync } from 'fs';\n\nconst client = new Aribot(process.env.ARIBOT_API_KEY!);\n\n// Read file and create Blob\nconst buffer = readFileSync('architecture.png');\nconst blob = new Blob([buffer], { type: 'image/png' });\n\nconst result = await client.threatModeling.analyzeDiagram(blob, {\n  filename: 'architecture.png'\n});\n```\n\n## Browser Usage\n\n```typescript\nimport { Aribot } from '@ayurak/sdk';\n\nconst client = new Aribot('your_api_key');\n\n// Handle file input\nconst input = document.querySelector<HTMLInputElement>('#file-input');\ninput?.addEventListener('change', async (e) => {\n  const file = (e.target as HTMLInputElement).files?.[0];\n  if (file) {\n    const result = await client.threatModeling.analyzeDiagram(file);\n    console.log(result);\n  }\n});\n```\n\n## CI/CD Integration\n\n### GitHub Actions\n\n```yaml\n- name: Security Scan\n  uses: actions/setup-node@v4\n  with:\n    node-version: '20'\n\n- run: |\n    npm install aribot-sdk\n    node << 'EOF'\n    const { Aribot } = require('aribot-sdk');\n\n    const client = new Aribot(process.env.ARIBOT_API_KEY);\n\n    (async () => {\n      const result = await client.pipeline.scan(\n        process.env.PROJECT_ID,\n        {\n          commitSha: process.env.GITHUB_SHA,\n          failOnSeverity: 'high',\n          wait: true\n        }\n      );\n\n      if (result.status === 'failed') {\n        process.exit(1);\n      }\n    })();\n    EOF\n  env:\n    ARIBOT_API_KEY: ${{ secrets.ARIBOT_API_KEY }}\n    PROJECT_ID: ${{ vars.PROJECT_ID }}\n```\n\n## Changelog\n\n### v1.5.0\n- **Added**: Strategic Remediation Plan API (`client.compliance.generateStrategicPlan`, `getStrategicPlan`, `listStrategicPlans`) - AI-powered strategic planning for compliance violations with cost savings analysis\n- **Added**: Economic Intelligence Refresh (`client.economics.refreshRecommendations`) - Refresh AI-powered cost optimization recommendations\n- **Added**: Severity Assignment API (`client.compliance.estimateSeverityCost`, `assignSeverityAI`, `assignSeverityManual`)\n- **Added**: Scanner Rules API (`client.compliance.listScannerRules`, `getScannerStatistics`, `syncScannerRules`, `createScannerRule`)\n- **Added**: Dynamic Cloud Scanning (`client.compliance.executeDynamicScan`, `executeUnifiedScan`)\n- **Added**: Remediation Execution (`client.compliance.previewRemediation`, `executeRemediation`)\n- **Added**: AI Agents & Self-Healing module (`client.aiAgents`) with autonomous remediation\n- **Added**: Security Co-Pilot module (`client.securityCopilot`) for supervised security operations\n- **Added**: Presets Import (`client.compliance.importPresets`)\n- **Added**: Mitigation Plan API (`client.threatModeling.getMitigationPlan`, `generateMitigationPlan`, `updateMitigationPlan`) - AI-powered strategic remediation planning with chunked processing\n\n### v1.4.0\n- **Fixed**: Base URL corrected from `api.aribot.aristiun.com` to `api.aribot.ayurak.com`\n- **Added**: AI module (`client.ai`) - usage, quota, models, configure, analyze, queue status\n- **Added**: SBOM module (`client.sbom`) - document management, upload, vulnerability scanning\n- **Added**: Dashboard module (`client.dashboard`) - overview, recent activity, risk summary\n- **Added**: FinOps module (`client.finops`) - cost optimization, recommendations, cost breakdown\n- **Added**: Marketplace module (`client.marketplace`) - templates, categories, featured items\n- **Added**: API Keys module (`client.apiKeys`) - list, create, revoke API keys\n- **Added**: Framework-specific compliance scoring support\n\n## Support\n\n- Documentation: https://developer.ayurak.com/docs/js-sdk\n- API Reference: https://developer.ayurak.com/api\n- Issues: https://github.com/ayurak/aribot-js/issues\n\n## License\n\nMIT\n","readmeFilename":"README.md"}