{"_id":"@aroha-sdk/audit","_rev":"4-c33fe133840535b11814b112e12203e8","name":"@aroha-sdk/audit","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.0":{"name":"@aroha-sdk/audit","version":"1.0.0","_id":"@aroha-sdk/audit@1.0.0","maintainers":[{"name":"aroha-labs","email":"projectmed99@gmail.com"}],"dist":{"shasum":"c358f2e11e0cad0e7671066a8a11461ee0d5c130","tarball":"https://registry.npmjs.org/@aroha-sdk/audit/-/audit-1.0.0.tgz","fileCount":3,"integrity":"sha512-LZMUSvxIQdvP5UkI2jLX044Y1Mu4ukx4fz3qNkBfJS7M1jhmnTFMj2a1eyTMX9NQABAOUYhpRCOmnOStUjXvmA==","signatures":[{"sig":"MEYCIQCqOlRNNMB4lf1rmiRvhzXpFGSaPNPDaAB1NmlFdiIFKQIhAK6+ydvAQlHJhi3Cl22O+0Gc4TcvvtbknE0sdKUcBZKZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3867},"type":"module","exports":{".":"./src/index.ts"},"gitHead":"67cbe687cd0664deb4374aaa75788c9d7119d74b","_npmUser":{"name":"aroha-labs","email":"projectmed99@gmail.com"},"_npmVersion":"11.13.0","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@noble/hashes":"^1.3.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/audit_1.0.0_1782173722708_0.4931268906977482","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@aroha-sdk/audit","version":"1.2.0","_id":"@aroha-sdk/audit@1.2.0","maintainers":[{"name":"aroha-labs","email":"projectmed99@gmail.com"}],"dist":{"shasum":"65acfbd1f801619e20f4313a71d122e3e22e0a96","tarball":"https://registry.npmjs.org/@aroha-sdk/audit/-/audit-1.2.0.tgz","fileCount":3,"integrity":"sha512-BdhLKNBsbCC36hjt25l4PnJx9EtMDy+WPkIAq2VatErIi1MLCZuHzbk5MAHvDxgIpB++cZ+f2qefEOa/OQhOBg==","signatures":[{"sig":"MEUCIQDCmku7RekOHwgO6THXX1CQdMyBO4PmFlehJ7MCeW0mDgIgGXj89ov3ZOo5ShfEYop53UG/ly/bXEkmH1CQ8yDAXQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3919},"type":"module","exports":{".":"./src/index.ts"},"gitHead":"cebebafa0728a76dfabc00754f72b6053ce54535","_npmUser":{"name":"aroha-labs","email":"projectmed99@gmail.com"},"_npmVersion":"11.13.0","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@noble/hashes":"^1.3.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/audit_1.2.0_1782180290826_0.04586652194330121","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@aroha-sdk/audit","version":"1.3.0","license":"MIT","_id":"@aroha-sdk/audit@1.3.0","maintainers":[{"name":"aroha-labs","email":"projectmed99@gmail.com"}],"dist":{"shasum":"4384565fcf98cf3f8896fe5ad412cb4a17736957","tarball":"https://registry.npmjs.org/@aroha-sdk/audit/-/audit-1.3.0.tgz","fileCount":12,"integrity":"sha512-79hPXNyy9b5n0oY3aYUF5INSVW/+4S1IvG+ZmsA3btEnB0bP/MZVS68H7s3jH456i+YE5zmhAYtpGCeN8uWrnQ==","signatures":[{"sig":"MEUCIC2jiQy0NuXQH53fQG3ioYl/ymmwoPITl87p96pkjAYlAiEAl5fjqPpMPj1nfcwQ0qD1t3T3PWkDIdrnKSlBdQ8VnA0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35420},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"815be1d4aa97d530b2494b657311696cb2e96b05","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"aroha-labs","email":"projectmed99@gmail.com"},"_npmVersion":"11.17.0","description":"Tamper-evident append-only audit log for Aroha saga and envelope events","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@noble/hashes":"^1.3.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/audit_1.3.0_1787083015473_0.057229932776516224","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@aroha-sdk/audit","version":"1.4.0","description":"Tamper-evident append-only audit log for Aroha saga and envelope events","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"tsc -p tsconfig.json","test":"vitest run","dev":"tsc -p tsconfig.json --watch"},"dependencies":{"@noble/hashes":"^1.3.3"},"devDependencies":{"typescript":"^5.4.5","vitest":"^1.6.0","@types/node":"^20.14.0"},"engines":{"node":">=22"},"license":"MIT","gitHead":"b8eed11bbd8d5b6643c567ef75b2b5ac044d5bc6","_id":"@aroha-sdk/audit@1.4.0","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-gxhm9FoZoHEDN+vm8NPGzlgzSLg8ucqwUL+CVy9+aTAsiIIR0wTduQHjDBRFGLe7F7KLETNqgOJd6c1D0RaxHg==","shasum":"d35f756f4f541adbf1e64852d0448bebe0e9f54d","tarball":"https://registry.npmjs.org/@aroha-sdk/audit/-/audit-1.4.0.tgz","fileCount":12,"unpackedSize":41878,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD6aHVRsjHkZdNU2J569RtCECCrisziLAYXHPe89uPmmQIgbhH6PEDWqCiVrJ5HVqoSOCU71/UTlAHDL4lV8nwyeqc="}]},"_npmUser":{"name":"aroha-labs","email":"projectmed99@gmail.com"},"directories":{},"maintainers":[{"name":"aroha-labs","email":"projectmed99@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/audit_1.4.0_1787537766502_0.9741071606444276"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-23T00:15:22.590Z","modified":"2026-08-24T02:16:06.784Z","1.0.0":"2026-06-23T00:15:22.841Z","1.2.0":"2026-06-23T02:04:50.959Z","1.3.0":"2026-08-18T19:56:55.625Z","1.4.0":"2026-08-24T02:16:06.643Z"},"license":"MIT","description":"Tamper-evident append-only audit log for Aroha saga and envelope events","maintainers":[{"name":"aroha-labs","email":"projectmed99@gmail.com"}],"readme":"# @aroha-sdk/audit\n\nAppend-only, hash-chained audit log for Aroha agent chains — prove that the mandate chain was honored end-to-end.\n\n## Install\n\n```bash\nnpm install @aroha-sdk/audit\n```\n\n## Quick example\n\n```typescript\nimport { AuditLog } from \"@aroha-sdk/audit\";\n\nconst log = new AuditLog({ path: \"./audit.jsonl\" });\n\n// Log each mandate verification event\nawait log.append({\n  event: \"mandate.verified\",\n  agentDID: \"did:aroha:flight-agent\",\n  grantorDID: \"did:aroha:orchestrator\",\n  constraints: { spendLimitUsd: 300, allowedActions: [\"book-flights\"] },\n  valid: true,\n  timestamp: Date.now(),\n});\n\n// Log the action taken under the mandate\nawait log.append({\n  event: \"action.executed\",\n  agentDID: \"did:aroha:flight-agent\",\n  action: \"book-flights\",\n  amountUsd: 299,\n  mandateToken: token,\n});\n\n// Verify the log hasn't been tampered with\nconst { intact, corruptedAt } = await log.verify();\n// intact === true\n\n// Export to SIEM\nconst jsonLines = await log.export({ since: Date.now() - 86_400_000 });\n```\n\n## Why this exists in the mandate chain\n\nCryptographic mandate bounds prevent over-scope at runtime. The audit log proves that those bounds were respected after the fact — providing a tamper-evident record of every mandate verification and every action taken under a mandate. Supports compliance, debugging, and reputation scoring.\n\n## API\n\n- `AuditLog(opts)` — create or open an append-only log file.\n  - `log.append(entry)` — append a hash-chained entry.\n  - `log.verify()` — check the chain for tampering. Returns `{ intact, corruptedAt? }`.\n  - `log.export(filter?)` — stream entries as JSON Lines for SIEM ingestion.\n- `createAuditMiddleware(log)` — Express/Hono middleware that auto-logs mandate events.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}