{"_id":"@delta-ltsc/sdk","_rev":"2-fdadb9f1c02a425134d62a6a90772d4e","name":"@delta-ltsc/sdk","dist-tags":{"latest":"0.3.1"},"versions":{"0.3.1":{"name":"@delta-ltsc/sdk","version":"0.3.1","keywords":["compression","llm","tokens","transformer","wasm","lossless"],"author":{"name":"Triage Sec","email":"nicks@triage-sec.com"},"license":"MIT","_id":"@delta-ltsc/sdk@0.3.1","maintainers":[{"name":"nicksriv","email":"nicks@triage-sec.com"}],"contributors":[{"name":"Nikhil Srivastava"},{"name":"Omansh Bainsla"},{"name":"Sahil Chatiwala"}],"homepage":"https://github.com/delta-ltsc/delta#readme","bugs":{"url":"https://github.com/delta-ltsc/delta/issues"},"dist":{"shasum":"74f111afe26682fa51eced5ba603e91ce8370020","tarball":"https://registry.npmjs.org/@delta-ltsc/sdk/-/sdk-0.3.1.tgz","fileCount":55,"integrity":"sha512-MsTX1YtCtfcQA4EnjTkCdMqiKDi/r3GkjmiQEQsOk7Vy9nTncjBFJUgl9b+Mqakw9WICyuSnTZsES4HGXzcijg==","signatures":[{"sig":"MEYCIQD9FbK6gfzR+EhZN2pflWe0MQXn+YOxoPjngEGHPYbb6wIhANId16D7OuXBfrHHQALwhduhYjZTA8hxjDY8nyyvjrs/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394037},"main":"./dist/esm/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js"},"./wasm":{"types":"./dist/types/wasm/index.d.ts","import":"./dist/esm/wasm/index.js"}},"gitHead":"57b3fc5157a3ecd50d50ad33b7fae10de15a7079","scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"npm run build:esm && npm run build:types && npm run copy:wasm && npm run copy:json","clean":"rm -rf dist","build:esm":"tsc -p tsconfig.esm.json","copy:json":"mkdir -p dist/esm/dictionaries && cp src/dictionaries/*.json dist/esm/dictionaries/","copy:wasm":"mkdir -p dist/esm/wasm/pkg && cp src/wasm/pkg/*.js src/wasm/pkg/*.wasm src/wasm/pkg/*.d.ts dist/esm/wasm/pkg/ 2>/dev/null || echo 'WASM copy - some files may be missing'","serve:test":"node ./scripts/serve-test.mjs","build:types":"tsc -p tsconfig.types.json","test:browser":"playwright test","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"nicksriv","email":"nicks@triage-sec.com"},"repository":{"url":"git+https://github.com/delta-ltsc/delta.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript SDK for Delta LTSC - Lossless Token Sequence Compression","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.55.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@playwright/test":"^1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.1_1769850569971_0.9503635612054115","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-31T09:09:29.897Z","modified":"2026-02-01T01:51:54.668Z","0.3.1":"2026-01-31T09:09:30.166Z"},"bugs":{"url":"https://github.com/delta-ltsc/delta/issues"},"author":{"name":"Triage Sec","email":"nicks@triage-sec.com"},"license":"MIT","homepage":"https://github.com/delta-ltsc/delta#readme","keywords":["compression","llm","tokens","transformer","wasm","lossless"],"repository":{"url":"git+https://github.com/delta-ltsc/delta.git","type":"git"},"description":"TypeScript SDK for Delta LTSC - Lossless Token Sequence Compression","contributors":[{"name":"Nikhil Srivastava"},{"name":"Omansh Bainsla"},{"name":"Sahil Chatiwala"}],"maintainers":[{"email":"nicks@triage-sec.com","name":"nicksriv"},{"email":"sahil@triage-sec.com","name":"sahil_triage"}],"readme":"# @delta-ltsc/sdk\n\n[![npm](https://img.shields.io/npm/v/@delta-ltsc/sdk)](https://www.npmjs.com/package/@delta-ltsc/sdk)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](../../LICENSE)\n\nTypeScript SDK for **Delta LTSC** - Lossless Token Sequence Compression for LLMs.\n\nReduce LLM inference costs by compressing repetitive token patterns in prompts while maintaining perfect reconstruction. Achieve 30-60% compression on structured inputs with a format that fine-tuned models can understand.\n\n## Features\n\n- **Lossless compression** - Perfect round-trip reconstruction guaranteed\n- **High performance** - Rust/WASM core with O(n log n) suffix array algorithms\n- **Cross-platform** - Works in browsers, Node.js, Deno, and edge runtimes\n- **Streaming support** - Handle inputs of any size with constant memory\n- **Worker threads** - Non-blocking compression for large inputs\n- **Static dictionaries** - Pre-built patterns for Python, TypeScript, SQL, and more\n- **TypeScript-first** - Full type safety and IntelliSense support\n\n## Installation\n\n```bash\nnpm install @delta-ltsc/sdk\n```\n\n## Quick Start\n\n```typescript\nimport { compress, decompress, initWasm } from '@delta-ltsc/sdk';\n\n// Initialize WASM module (required once)\nawait initWasm();\n\n// Compress tokens\nconst tokens = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3];\nconst result = await compress(tokens);\n\nconsole.log(`Compressed: ${result.originalLength} → ${result.compressedLength} tokens`);\nconsole.log(`Savings: ${((1 - result.compressionRatio) * 100).toFixed(1)}%`);\n\n// Decompress (lossless)\nconst restored = await decompress(result.serializedTokens);\nconsole.assert(JSON.stringify(tokens) === JSON.stringify(restored));\n```\n\n## Configuration\n\n```typescript\nconst result = await compress(tokens, {\n  // Pattern discovery\n  minSubsequenceLength: 2,    // Minimum pattern length (default: 2)\n  maxSubsequenceLength: 8,    // Maximum pattern length (default: 8)\n  \n  // Selection algorithm\n  selectionMode: 'greedy',    // 'greedy' | 'optimal' | 'beam'\n  \n  // Hierarchical compression\n  hierarchicalEnabled: true,  // Allow patterns of patterns\n  hierarchicalMaxDepth: 3,    // Maximum nesting depth\n  \n  // Verification\n  verify: true,               // Enable round-trip verification\n});\n```\n\n## Static Dictionaries\n\nUse pre-built dictionaries for domain-specific compression:\n\n```typescript\nconst result = await compress(pythonCodeTokens, {\n  staticDictionary: 'python-v1',\n});\n```\n\nAvailable dictionaries: `python-v1`, `typescript-v1`, `markdown-v1`, `json-v1`, `sql-v1`\n\n## Streaming\n\nFor large inputs that exceed memory constraints:\n\n```typescript\nimport { createStreamingCompressor } from '@delta-ltsc/sdk';\n\nconst compressor = await createStreamingCompressor();\n\nfor await (const chunk of tokenStream) {\n  await compressor.addChunk(chunk);\n}\n\nconst result = await compressor.finish();\n```\n\n## Worker Threads\n\nNon-blocking compression for UI responsiveness:\n\n```typescript\nimport { createWorkerPool } from '@delta-ltsc/sdk';\n\nconst pool = await createWorkerPool(4);\nconst result = await pool.compress(tokens);\npool.terminate();\n```\n\n## Browser Usage\n\n```html\n<script type=\"module\">\n  import { compress, initWasm } from 'https://esm.sh/@delta-ltsc/sdk';\n  \n  await initWasm();\n  const result = await compress([1, 2, 3, 1, 2, 3]);\n  console.log('Compression ratio:', result.compressionRatio);\n</script>\n```\n\n## API Reference\n\n### Core Functions\n\n| Function | Description |\n|----------|-------------|\n| `compress(tokens, config?)` | Compress a token sequence |\n| `decompress(tokens, config?)` | Decompress to original tokens |\n| `discoverPatterns(tokens, minLen?, maxLen?)` | Find patterns without compressing |\n\n### Streaming\n\n| Function | Description |\n|----------|-------------|\n| `createStreamingCompressor(config?)` | Create a streaming compressor instance |\n| `compressStream(asyncIterable, config?)` | Compress an async iterable stream |\n\n### Workers\n\n| Function | Description |\n|----------|-------------|\n| `createWorkerPool(count?)` | Create a pool of worker threads |\n| `compressInWorker(tokens, config?)` | Single-use worker compression |\n\n### Dictionaries\n\n| Function | Description |\n|----------|-------------|\n| `loadStaticDictionary(id)` | Load a built-in dictionary |\n| `createStaticDictionary(id, patterns)` | Create a custom dictionary |\n\n### Utilities\n\n| Function | Description |\n|----------|-------------|\n| `initWasm()` | Initialize the WASM module |\n| `isWasmInitialized()` | Check initialization status |\n| `extractDictionary(tokens)` | Extract dictionary from compressed tokens |\n| `isCompressed(tokens)` | Check if tokens are in compressed format |\n\n## Documentation\n\n- [Quick Start Guide](./docs/QUICKSTART.md)\n- [API Reference](./docs/API.md)\n- [Main Repository](https://github.com/delta-ltsc/delta)\n\n## Optional ML Features\n\nFor pattern importance scoring and quality prediction:\n\n```bash\nnpm install @delta-ltsc/ml\n```\n\n```typescript\nimport { HeuristicQualityPredictor } from '@delta-ltsc/ml';\n\nconst predictor = new HeuristicQualityPredictor();\nconst prediction = await predictor.predict(compressionResult);\n\nif (!prediction.acceptable) {\n  console.log(`Recommendation: ${prediction.recommendation}`);\n}\n```\n\n## License\n\nMIT License - see [LICENSE](../../LICENSE) for details.\n\n## Contributors\n\nBuilt by [Triage Sec](https://triage-sec.com) - an applied team of researchers and engineers working towards building resiliency for AI systems.\n\n- Nikhil Srivastava (University of California, Berkeley)\n- Omansh Bainsla (Georgia Tech)\n- Sahil Chatiwala (Georgia Tech)\n","readmeFilename":"README.md"}