{"_id":"@aiassesstech/sdk","_rev":"8-42e82772ca5928b786727dac03712e1d","name":"@aiassesstech/sdk","dist-tags":{"latest":"0.8.0"},"versions":{"0.7.0":{"name":"@aiassesstech/sdk","version":"0.7.0","keywords":["ai","ethics","assessment","sdk","ai-safety","testing","4d-framework","lying","cheating","stealing","harm","ethical-ai","responsible-ai"],"author":{"name":"AI Assess Tech"},"license":"MIT","_id":"@aiassesstech/sdk@0.7.0","maintainers":[{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"}],"homepage":"https://www.aiassesstech.com/docs","bugs":{"url":"https://github.com/aiassesstech/sdk-ts/issues"},"dist":{"shasum":"7d708d0f7a80577a36e1f895bfef0509754af48f","tarball":"https://registry.npmjs.org/@aiassesstech/sdk/-/sdk-0.7.0.tgz","fileCount":21,"integrity":"sha512-jFqbfVFmCEn8j+rw422n7c2UdblT3uoabetSgdk9XusxtwqUoa+Es3YtXRt06jPQYuuRI4SZhze1hfp/mX5ivg==","signatures":[{"sig":"MEQCIALLXhEk6Ieskc2jyu3ti635jV1kpEOyrHlOR38X/UR/AiAfdg+IkQLR9BKLiu0Dr7zvsGrBikqgbHknZa/u2N+f9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66896},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"873e2585f7c8e52b20c21e6ec4702daa361f9767","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","test:all":"npm run test && npm run test:e2e","test:e2e":"jest --config e2e/jest.e2e.config.js","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"},"repository":{"url":"git+https://github.com/aiassesstech/sdk-ts.git","type":"git"},"_npmVersion":"11.2.0","description":"AI Assess Tech SDK for ethical AI assessment - Test AI systems across 4 dimensions: Lying, Cheating, Stealing, and Harm","directories":{},"_nodeVersion":"20.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.11","@types/node":"^20.10.6","@jest/test-sequencer":"^29.7.0","@typescript-eslint/parser":"^6.17.0","@typescript-eslint/eslint-plugin":"^6.17.0"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.0_1766563403549_0.7016600457781836","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@aiassesstech/sdk","version":"0.7.1","keywords":["ai","ethics","assessment","sdk","ai-safety","testing","4d-framework","lying","cheating","stealing","harm","ethical-ai","responsible-ai"],"author":{"name":"AI Assess Tech"},"license":"MIT","_id":"@aiassesstech/sdk@0.7.1","maintainers":[{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"}],"homepage":"https://www.aiassesstech.com/docs","bugs":{"url":"https://github.com/aiassesstech/sdk-ts/issues"},"dist":{"shasum":"8042ff1c91ec7eff57d881ce6e77bfb6a5506a34","tarball":"https://registry.npmjs.org/@aiassesstech/sdk/-/sdk-0.7.1.tgz","fileCount":17,"integrity":"sha512-IE0uXPjL5+RyUUwJLVKYVRr1T1wP4jjTWR+s/ZLRJpHUR5/eJY2JlxxO0nqNdCBIACjtboOfsRllB0jikxfGgA==","signatures":[{"sig":"MEUCIQDU5AnsTlRAxoLkhyF8XN9KyMMITq9fETVeULv/L1cwmAIgdBw36epB3WMxNpGXti4fT1oVr+I4K2DaoiVlNmqSNM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75469},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d6e5428ca52cdc18427673d375614b783f7bcde1","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","test:all":"npm run test && npm run test:e2e","test:e2e":"jest --config e2e/jest.e2e.config.js","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"},"repository":{"url":"git+https://github.com/aiassesstech/sdk-ts.git","type":"git"},"_npmVersion":"11.2.0","description":"AI Assess Tech SDK for ethical AI assessment - Test AI systems across 4 dimensions: Lying, Cheating, Stealing, and Harm","directories":{},"_nodeVersion":"20.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.11","@types/node":"^20.10.6","@jest/test-sequencer":"^29.7.0","@typescript-eslint/parser":"^6.17.0","@typescript-eslint/eslint-plugin":"^6.17.0"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.1_1768859599528_0.2804590783298957","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@aiassesstech/sdk","version":"0.7.2","keywords":["ai","ethics","assessment","sdk","ai-safety","testing","4d-framework","lying","cheating","stealing","harm","ethical-ai","responsible-ai"],"author":{"name":"AI Assess Tech"},"license":"MIT","_id":"@aiassesstech/sdk@0.7.2","maintainers":[{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"}],"homepage":"https://www.aiassesstech.com/docs","bugs":{"url":"https://github.com/aiassesstech/sdk-ts/issues"},"dist":{"shasum":"303af75bba4abcdd8321515d0022cb23efdfde6d","tarball":"https://registry.npmjs.org/@aiassesstech/sdk/-/sdk-0.7.2.tgz","fileCount":17,"integrity":"sha512-0m5dA4xJQrkTjXSQrlVu4Dgy6BRMcxeSLgNbWP/3mbunq1yT7DiDBd4E1QlInT9eFJozDkWNkILctFc0vuv05g==","signatures":[{"sig":"MEYCIQC/mE4HVZBUgKILhKtxvnHCfncTBmh6EfNW0NssZrX74gIhAKxA+kxaX1eri4YvIqAor1k1CpbjYeoTAikC+9swA0ml","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75599},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d6e5428ca52cdc18427673d375614b783f7bcde1","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","test:all":"npm run test && npm run test:e2e","test:e2e":"jest --config e2e/jest.e2e.config.js","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"},"repository":{"url":"git+https://github.com/aiassesstech/sdk-ts.git","type":"git"},"_npmVersion":"11.2.0","description":"AI Assess Tech SDK for ethical AI assessment - Test AI systems across 4 dimensions: Lying, Cheating, Stealing, and Harm","directories":{},"_nodeVersion":"20.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.11","@types/node":"^20.10.6","@jest/test-sequencer":"^29.7.0","@typescript-eslint/parser":"^6.17.0","@typescript-eslint/eslint-plugin":"^6.17.0"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.2_1768860020561_0.40820199409353997","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@aiassesstech/sdk","version":"0.7.3","keywords":["ai","ethics","assessment","sdk","ai-safety","testing","4d-framework","lying","cheating","stealing","harm","ethical-ai","responsible-ai"],"author":{"name":"AI Assess Tech"},"license":"MIT","_id":"@aiassesstech/sdk@0.7.3","maintainers":[{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"}],"homepage":"https://www.aiassesstech.com/docs","bugs":{"url":"https://github.com/aiassesstech/sdk-ts/issues"},"dist":{"shasum":"cf2eaf8335a8e1ee60184c15318207845f76d1a0","tarball":"https://registry.npmjs.org/@aiassesstech/sdk/-/sdk-0.7.3.tgz","fileCount":17,"integrity":"sha512-IlAm2h3vpA944OQPLSasMQ09BXLOoInU8kpAxHHtxiZh0CYKEDbX+fFFBZUbay80N2KzwXiUiI0L10a58oztWw==","signatures":[{"sig":"MEUCIQDca/f+HWO72Amj8bOogrP1aXZuGJAwzo8qG4nAI8SYqQIgfRu/ZypOqpNPfyMN9yQwlstkZDCPDJ8ajN1Ex+QloZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84700},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1b3b23cdf2051a98d64c1b260347268d2820fbb2","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","test:all":"npm run test && npm run test:e2e","test:e2e":"jest --config e2e/jest.e2e.config.js","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"},"repository":{"url":"git+https://github.com/aiassesstech/sdk-ts.git","type":"git"},"_npmVersion":"11.2.0","description":"AI Assess Tech SDK for ethical AI assessment - Test AI systems across 4 dimensions: Lying, Cheating, Stealing, and Harm","directories":{},"_nodeVersion":"20.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.11","@types/node":"^20.10.6","@jest/test-sequencer":"^29.7.0","@typescript-eslint/parser":"^6.17.0","@typescript-eslint/eslint-plugin":"^6.17.0"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.3_1776521362654_0.7575803203687117","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@aiassesstech/sdk","version":"0.7.4","keywords":["ai","ethics","assessment","sdk","ai-safety","testing","4d-framework","lying","cheating","stealing","harm","ethical-ai","responsible-ai"],"author":{"name":"AI Assess Tech"},"license":"MIT","_id":"@aiassesstech/sdk@0.7.4","maintainers":[{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"}],"homepage":"https://www.aiassesstech.com/docs","bugs":{"url":"https://github.com/aiassesstech/sdk-ts/issues"},"dist":{"shasum":"fcd40ccc97657a13bcf3f5f5dcfe8ffe603cec12","tarball":"https://registry.npmjs.org/@aiassesstech/sdk/-/sdk-0.7.4.tgz","fileCount":17,"integrity":"sha512-XhOcl4LViyB/2L60fiCHyw8n0T02nidooLjcJSR+p2BzSBCzTRtmT3rJN5FCuc/fIEF/M1XZCafMH9qH6QkJVg==","signatures":[{"sig":"MEUCIQCzots93mffZoVV0z+zwzVdRXUyKaMiTBrnCrdoH+ygmwIgZYce3Rx/wJticCqc3nw4aWireZrq8karYt8oipY5Fqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92540},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"03cb4dcd8e334da512d798f9f5e7417529cc8e33","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","test:all":"npm run test && npm run test:e2e","test:e2e":"jest --config e2e/jest.e2e.config.js","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"},"repository":{"url":"git+https://github.com/aiassesstech/sdk-ts.git","type":"git"},"_npmVersion":"11.2.0","description":"AI Assess Tech SDK for ethical AI assessment - Test AI systems across 4 dimensions: Lying, Cheating, Stealing, and Harm","directories":{},"_nodeVersion":"20.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.11","@types/node":"^20.10.6","@jest/test-sequencer":"^29.7.0","@typescript-eslint/parser":"^6.17.0","@typescript-eslint/eslint-plugin":"^6.17.0"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.4_1777770551585_0.05607428293141825","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"@aiassesstech/sdk","version":"0.7.5","keywords":["ai","ethics","assessment","sdk","ai-safety","testing","4d-framework","lying","cheating","stealing","harm","ethical-ai","responsible-ai"],"author":{"name":"AI Assess Tech"},"license":"MIT","_id":"@aiassesstech/sdk@0.7.5","maintainers":[{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"}],"homepage":"https://www.aiassesstech.com/docs","bugs":{"url":"https://github.com/aiassesstech/sdk-ts/issues"},"bin":{"aiassess":"dist/cli.js"},"dist":{"shasum":"da94cddfb874a6c4d007374fdc34c0434e5c5ac9","tarball":"https://registry.npmjs.org/@aiassesstech/sdk/-/sdk-0.7.5.tgz","fileCount":17,"integrity":"sha512-Odv38JyV3Q2EB/IfQkQu6xmZmeYZvlPS2+csxwwPfODbtollom7A8uEqbc4fBBfGkehtwTB6OgX4DlZkrizrLw==","signatures":[{"sig":"MEQCIA2FvgbPprkaBXcf9ue3tEL6ZLiS4XMSy3kG/V3P14NZAiBHPVYXFvbvaGEq55Lgm9ZwXsxo6pxn/qr7tN9h8Hp7AA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92586},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"482adc51cb1d25307508ae0ebe46a539b2b95641","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","test:all":"npm run test && npm run test:e2e","test:e2e":"jest --config e2e/jest.e2e.config.js","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"},"repository":{"url":"git+https://github.com/aiassesstech/sdk-ts.git","type":"git"},"_npmVersion":"11.2.0","description":"AI Assess Tech SDK for ethical AI assessment - Test AI systems across 4 dimensions: Lying, Cheating, Stealing, and Harm","directories":{},"_nodeVersion":"20.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.11","@types/node":"^20.10.6","@jest/test-sequencer":"^29.7.0","@typescript-eslint/parser":"^6.17.0","@typescript-eslint/eslint-plugin":"^6.17.0"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.5_1777785200415_0.7864785982906981","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"@aiassesstech/sdk","version":"0.7.6","keywords":["ai","ethics","assessment","sdk","ai-safety","testing","4d-framework","lying","cheating","stealing","harm","ethical-ai","responsible-ai"],"author":{"name":"AI Assess Tech"},"license":"MIT","_id":"@aiassesstech/sdk@0.7.6","maintainers":[{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"}],"homepage":"https://www.aiassesstech.com/docs","bugs":{"url":"https://github.com/aiassesstech/sdk-ts/issues"},"bin":{"aiassess":"dist/cli.js"},"dist":{"shasum":"ab76ee861c903cfce00498d459b6c94f3390d555","tarball":"https://registry.npmjs.org/@aiassesstech/sdk/-/sdk-0.7.6.tgz","fileCount":17,"integrity":"sha512-WNiP7vXN5pLtCKJI3hUPzFXDd8lubkhTFb6Szn82JKBxpnZnpxGpPpKr+z/1oEkZJFFnp/II+EUSDw9v7gewYw==","signatures":[{"sig":"MEYCIQC+2J+Pitc/BdVMhf8c9K7q/jrCaczU7aXKT4P9uA7xdAIhALbb57iNJ3HPCLp2UBN4AbZ3hK4LUdefLac+k5LuY6+W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95437},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b285b4165444ce38b46ea51e909f62d303853d6d","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","test:all":"npm run test && npm run test:e2e","test:e2e":"jest --config e2e/jest.e2e.config.js","test:watch":"jest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"},"repository":{"url":"git+https://github.com/aiassesstech/sdk-ts.git","type":"git"},"_npmVersion":"11.2.0","description":"AI Assess Tech SDK for ethical AI assessment - Test AI systems across 4 dimensions: Lying, Cheating, Stealing, and Harm","directories":{},"_nodeVersion":"20.18.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.11","@types/node":"^20.10.6","@jest/test-sequencer":"^29.7.0","@typescript-eslint/parser":"^6.17.0","@typescript-eslint/eslint-plugin":"^6.17.0"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.7.6_1777787180149_0.26330358415733834","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@aiassesstech/sdk","version":"0.8.0","description":"AI Assess Tech SDK for ethical AI assessment - Test AI systems across 4 dimensions: Lying, Cheating, Stealing, and Harm","main":"dist/index.js","types":"dist/index.d.ts","bin":{"aiassess":"dist/cli.js"},"scripts":{"build":"tsc","test":"jest","test:watch":"jest --watch","test:e2e":"jest --config e2e/jest.e2e.config.js","test:all":"npm run test && npm run test:e2e","lint":"eslint src --ext .ts","prepublishOnly":"npm run build"},"keywords":["ai","ethics","assessment","sdk","ai-safety","testing","4d-framework","lying","cheating","stealing","harm","ethical-ai","responsible-ai"],"author":{"name":"AI Assess Tech"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aiassesstech/sdk-ts.git"},"homepage":"https://www.aiassesstech.com/docs","bugs":{"url":"https://github.com/aiassesstech/sdk-ts/issues"},"dependencies":{},"peerDependencies":{},"devDependencies":{"@jest/test-sequencer":"^29.7.0","@types/jest":"^29.5.11","@types/node":"^20.10.6","@typescript-eslint/eslint-plugin":"^6.17.0","@typescript-eslint/parser":"^6.17.0","eslint":"^8.56.0","jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.3.3"},"engines":{"node":">=18.0.0"},"_id":"@aiassesstech/sdk@0.8.0","gitHead":"504d01598b00947e042eed475553f9f4751301d5","_nodeVersion":"20.18.1","_npmVersion":"11.2.0","dist":{"integrity":"sha512-Do4xpExgR6WOozI11humeU1DfJ8UQ8wglOsoxRB7tKi01+PqackArkH2HVUItYMg41P9iw2KvpBnum+WVeyI6A==","shasum":"5539e7cbccfe91c7357c63acba72f23ec41d1a98","tarball":"https://registry.npmjs.org/@aiassesstech/sdk/-/sdk-0.8.0.tgz","fileCount":19,"unpackedSize":117896,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB9ye7vanKVjjwIE8jkCn/I8Elu9h4sd3EVHyTHlKwGbAiEA/zeHoQ1TM0RO1jbY1eT2j8Zz9BaLH3upjvt1LtdXyMw="}]},"_npmUser":{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"},"directories":{},"maintainers":[{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.8.0_1781359237188_0.8244486676352838"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-24T08:03:23.464Z","modified":"2026-06-13T14:00:37.477Z","0.7.0":"2025-12-24T08:03:23.692Z","0.7.1":"2026-01-19T21:53:19.667Z","0.7.2":"2026-01-19T22:00:20.724Z","0.7.3":"2026-04-18T14:09:22.830Z","0.7.4":"2026-05-03T01:09:11.743Z","0.7.5":"2026-05-03T05:13:20.560Z","0.7.6":"2026-05-03T05:46:20.313Z","0.8.0":"2026-06-13T14:00:37.343Z"},"bugs":{"url":"https://github.com/aiassesstech/sdk-ts/issues"},"author":{"name":"AI Assess Tech"},"license":"MIT","homepage":"https://www.aiassesstech.com/docs","keywords":["ai","ethics","assessment","sdk","ai-safety","testing","4d-framework","lying","cheating","stealing","harm","ethical-ai","responsible-ai"],"repository":{"type":"git","url":"git+https://github.com/aiassesstech/sdk-ts.git"},"description":"AI Assess Tech SDK for ethical AI assessment - Test AI systems across 4 dimensions: Lying, Cheating, Stealing, and Harm","maintainers":[{"name":"goodgidanc","email":"gidanc.defend.good@gmail.com"}],"readme":"# AI Assess Tech SDK\n\nOfficial TypeScript SDK for assessing AI systems for ethical alignment. Test your AI across 4 dimensions: **Lying**, **Cheating**, **Stealing**, and **Harm**.\n\n[![npm version](https://badge.fury.io/js/@aiassesstech%2Fsdk.svg)](https://www.npmjs.com/package/@aiassesstech/sdk)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Features\n\n- 🔒 **Privacy-First**: Your AI's API keys, system prompts, and configuration never leave your environment\n- 🎯 **Server-Controlled**: Test configuration, questions, and thresholds managed via Health Check Key\n- 🔄 **CI/CD Ready**: Auto-detects GitHub Actions, GitLab CI, CircleCI, and more\n- 📊 **Full Traceability**: Each assessment generates IDs for audit trails\n- ⚡ **Simple Integration**: One-line assessment with any AI provider\n\n## Installation\n\n```bash\nnpm install @aiassesstech/sdk\n```\n\n## Quick Start\n\n```typescript\nimport { AIAssessClient } from '@aiassesstech/sdk';\n\n// 1. Create client with your Health Check Key\nconst client = new AIAssessClient({\n  healthCheckKey: process.env.AIASSESS_KEY!\n});\n\n// 2. Run assessment - configuration comes from server\nconst result = await client.assess(async (question) => {\n  // Your AI callback - send question to your AI and return response\n  return await myAI.chat(question);\n});\n\n// 3. Check result\nconsole.log('Passed:', result.overallPassed);\nconsole.log('Scores:', result.scores);\nconsole.log('Classification:', result.classification);\n```\n\n## How It Works\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│ Your Environment                                            │\n├─────────────────────────────────────────────────────────────┤\n│                                                             │\n│  1. SDK fetches config from AI Assess Tech server           │\n│     (questions, thresholds, test mode)                      │\n│                                                             │\n│  2. SDK sends questions to YOUR AI via your callback        │\n│     → Your API keys stay private                            │\n│     → Your system prompts stay private                      │\n│                                                             │\n│  3. SDK submits responses to server for scoring             │\n│                                                             │\n│  4. You receive scores, pass/fail, and classification       │\n│                                                             │\n└─────────────────────────────────────────────────────────────┘\n```\n\n## Usage Examples\n\n### Evaluate AI Output (NEW in v0.8.0)\n\n```typescript\n// Evaluate AI-generated text for ethical alignment\nconst result = await client.evaluate({\n  outputText: \"The AI-generated text to evaluate...\",\n  targetAi: { provider: \"anthropic\", model: \"claude-sonnet-4\" },\n  subjectLabel: \"customer-service-bot-v2\",\n});\n\nconsole.log(`Verdict: ${result.verdict}`);       // \"GREEN\" | \"YELLOW\" | \"RED\"\nconsole.log(`Score: ${(result.overallScore * 100).toFixed(0)}%`);\nconsole.log(`Aligned: ${result.alignedCount}/${result.totalPrinciples}`);\nconsole.log(`Verify: ${result.verifyUrl}`);\n\n// Per-dimension scores\nconsole.log(`Lying:    ${result.verdicts.lying}`);\nconsole.log(`Cheating: ${result.verdicts.cheating}`);\nconsole.log(`Stealing: ${result.verdicts.stealing}`);\nconsole.log(`Harm:     ${result.verdicts.harm}`);\n```\n\n### Basic Assessment\n\n```typescript\nconst result = await client.assess(async (question) => {\n  return await myAI.chat(question);\n});\n\nconsole.log(`Classification: ${result.classification}`);\nconsole.log(`Lying Score: ${result.scores.lying}/10`);\nconsole.log(`Overall: ${result.overallPassed ? 'PASSED ✅' : 'FAILED ❌'}`);\n```\n\n### With Progress Updates\n\n```typescript\nconst result = await client.assess(\n  async (question) => await myAI.chat(question),\n  {\n    onProgress: (progress) => {\n      console.log(`${progress.percentage}% - Testing ${progress.dimension}`);\n    }\n  }\n);\n```\n\n### Startup Health Check (Blocking)\n\n```typescript\n// Block until AI passes - exits process on failure\nawait client.blockUntilPass(\n  async (question) => await myAI.chat(question),\n  {\n    maxRetries: 3,\n    retryDelayMs: 60000, // 1 minute between retries\n    exitOnFailure: true\n  }\n);\n\nconsole.log('✅ AI passed ethical assessment, starting app...');\nstartApp();\n```\n\n### CI/CD Pipeline Integration\n\n```typescript\nconst result = await client.assess(\n  async (question) => await myAI.chat(question),\n  {\n    metadata: {\n      gitCommit: process.env.GITHUB_SHA,\n      branch: process.env.GITHUB_REF_NAME,\n      deployVersion: process.env.VERSION\n    }\n  }\n);\n\n// Exit code for CI/CD\nprocess.exit(result.overallPassed ? 0 : 1);\n```\n\n## AI Provider Setup\n\nYou'll need an API key from your AI provider (OpenAI, Anthropic, Google Gemini, or xAI Grok) to run assessments.\n\n📖 **[Get your API key with our step-by-step guides](https://aiassesstech.com/docs/api-keys)** — most providers offer free credits!\n\nYour AI provider API key stays private and never leaves your environment.\n\n### With OpenAI\n\n```typescript\nimport OpenAI from 'openai';\nimport { AIAssessClient } from '@aiassesstech/sdk';\n\nconst openai = new OpenAI(); // Uses OPENAI_API_KEY env var\nconst client = new AIAssessClient({\n  healthCheckKey: process.env.AIASSESS_KEY!\n});\n\nconst result = await client.assess(async (question) => {\n  const response = await openai.chat.completions.create({\n    model: 'gpt-4',\n    messages: [{ role: 'user', content: question }]\n  });\n  return response.choices[0].message.content || '';\n});\n```\n\n### With Anthropic\n\n```typescript\nimport Anthropic from '@anthropic-ai/sdk';\nimport { AIAssessClient } from '@aiassesstech/sdk';\n\nconst anthropic = new Anthropic();\nconst client = new AIAssessClient({\n  healthCheckKey: process.env.AIASSESS_KEY!\n});\n\nconst result = await client.assess(async (question) => {\n  const response = await anthropic.messages.create({\n    model: 'claude-3-sonnet-20240229',\n    max_tokens: 100,\n    messages: [{ role: 'user', content: question }]\n  });\n  return response.content[0].type === 'text' \n    ? response.content[0].text \n    : '';\n});\n```\n\n### With Retry Wrapper (for Flaky APIs)\n\n```typescript\nimport { AIAssessClient, withRetry } from '@aiassesstech/sdk';\n\nconst result = await client.assess(\n  withRetry(\n    async (question) => await flakyAI.chat(question),\n    { maxRetries: 3, backoffMs: 1000 }\n  )\n);\n```\n\n### Dry Run Mode (Development)\n\n```typescript\n// Only asks 5 questions, returns mock scores\nconst result = await client.assess(\n  async (question) => await myAI.chat(question),\n  { dryRun: true }\n);\n```\n\n## Assessment Result\n\nThe `assess()` method returns an `AssessmentResult` object:\n\n```typescript\ninterface AssessmentResult {\n  runId: string;           // Server-generated ID for verification\n  sdkSessionId: string;    // Client-generated session ID\n  \n  scores: {\n    lying: number;         // 0-10 scale\n    cheating: number;\n    stealing: number;\n    harm: number;\n  };\n  \n  passed: {\n    lying: boolean;        // Did score meet threshold?\n    cheating: boolean;\n    stealing: boolean;\n    harm: boolean;\n  };\n  \n  overallPassed: boolean;  // All dimensions must pass\n  \n  classification: \n    | \"Well Adjusted\"      // High scores across all dimensions\n    | \"Misguided\"          // Low lying, high harm (believes false things but tries to do good)\n    | \"Manipulative\"       // High lying, low harm (deceives but avoids direct harm)\n    | \"Psychopath\";        // Low scores across the board\n  \n  thresholds: { ... };     // Thresholds used from server config\n\n  // Phase 2 (v1.2): graduated personality distribution\n  // Per-dimension counts sum to 30; aggregate sums to 120.\n  // Null for legacy v1 results; always present for v2 results.\n  personalityDistribution: PersonalityDistribution | null;\n\n  // Scoring methodology version. 1 = legacy binary-derived, 2 = graduated\n  // distribution (Phase 2). Do NOT compare v1 and v2 records as if they\n  // used the same methodology — Noah's drift corridor enforces this guard.\n  scoringVersion: 1 | 2;\n\n  verifyUrl: string;       // URL to verify this result\n  completedAt: string;     // ISO timestamp\n  versions: { ... };       // SDK and question set versions\n  keyName: string;         // Name of Health Check Key used\n}\n```\n\n## Server-Controlled Configuration\n\nConfiguration is managed via the **Health Check Key** on the AI Assess Tech dashboard:\n\n- **Test Mode**: ISOLATED (each question independent) or CONVERSATIONAL (coming in v0.8.0)\n- **Framework**: Which question set to use\n- **Thresholds**: Pass thresholds per dimension (0-10 scale)\n- **Rate Limits**: Hourly/monthly assessment limits\n\nCreate different keys for different scenarios:\n- `prod-strict`: Production with strict thresholds\n- `staging-relaxed`: Staging with relaxed thresholds\n- `ci-quick`: CI/CD pipeline checks\n\n## Error Handling\n\n```typescript\nimport { \n  AIAssessClient, \n  SDKError, \n  ValidationError, \n  RateLimitError,\n  QuestionTimeoutError,\n  ErrorCode \n} from '@aiassesstech/sdk';\n\ntry {\n  const result = await client.assess(callback);\n} catch (error) {\n  if (error instanceof RateLimitError) {\n    console.log(`Rate limited. Retry after ${error.retryAfterMs}ms`);\n  } else if (error instanceof ValidationError) {\n    if (error.code === ErrorCode.KEY_EXPIRED) {\n      console.log('Health Check Key has expired');\n    } else if (error.code === ErrorCode.INVALID_KEY) {\n      console.log('Invalid Health Check Key');\n    }\n  } else if (error instanceof QuestionTimeoutError) {\n    console.log(`Question ${error.questionId} timed out`);\n  } else if (error instanceof SDKError) {\n    console.log(`SDK Error: ${error.message} (${error.code})`);\n  }\n}\n```\n\n## Configuration Options\n\n```typescript\nconst client = new AIAssessClient({\n  // Required: Your Health Check Key from the dashboard\n  healthCheckKey: 'hck_...',\n  \n  // Optional: Override base URL (default: https://www.aiassesstech.com)\n  baseUrl: 'https://www.aiassesstech.com',\n  \n  // Optional: Per-question timeout in ms (default: 30000 = 30s)\n  perQuestionTimeoutMs: 30000,\n  \n  // Optional: Overall timeout in ms (default: 360000 = 6 min)\n  overallTimeoutMs: 360000\n});\n```\n\n## Environment Detection\n\nThe SDK automatically detects CI/CD environments:\n\n```typescript\nimport { detectEnvironment, isCI } from '@aiassesstech/sdk';\n\nconsole.log('Is CI:', isCI());\nconsole.log('Environment:', detectEnvironment());\n// {\n//   nodeVersion: 'v20.10.0',\n//   platform: 'linux',\n//   ciProvider: 'github-actions',\n//   ciJobId: '12345678',\n//   gitCommit: 'abc123...',\n//   gitBranch: 'main'\n// }\n```\n\nSupported CI providers:\n- GitHub Actions\n- GitLab CI\n- CircleCI\n- Jenkins\n- Travis CI\n- Buildkite\n- Azure Pipelines\n- AWS CodeBuild\n- Bitbucket Pipelines\n- Drone CI\n- Vercel\n- Netlify\n- And more...\n\n## Requirements\n\n- Node.js 18.0.0 or higher\n- Valid Health Check Key from [AI Assess Tech](https://www.aiassesstech.com)\n\n## Getting a Health Check Key\n\n1. Sign up at [https://www.aiassesstech.com](https://www.aiassesstech.com)\n2. Go to Settings → Health Check Keys\n3. Click \"Create New Key\"\n4. Configure your key (test mode, thresholds, rate limits)\n5. Copy the key (`hck_...`) and store it securely\n\n## Support\n\n- 📚 [Documentation](https://www.aiassesstech.com/docs)\n- 🐛 [Issue Tracker](https://github.com/aiassesstech/sdk-ts/issues)\n- 📧 [Support](mailto:support@aiassesstech.com)\n\n## License\n\nMIT © AI Assess Tech\n","readmeFilename":"README.md"}