{"_id":"@beltoinc/slyos-sdk","_rev":"7-a2f3de4462224673900b84eee179f56d","name":"@beltoinc/slyos-sdk","dist-tags":{"latest":"1.5.6"},"versions":{"1.5.0":{"name":"@beltoinc/slyos-sdk","version":"1.5.0","keywords":["ai","on-device","machine-learning","llm","transformers","slyos","edge-ai","rag"],"author":{"name":"Belto Inc."},"license":"MIT","_id":"@beltoinc/slyos-sdk@1.5.0","maintainers":[{"name":"belto_inc","email":"emil.shirokikh@belto.world"}],"homepage":"https://github.com/BeltoAI/sly.os#readme","bugs":{"url":"https://github.com/BeltoAI/sly.os/issues"},"dist":{"shasum":"4b50248cb43f0a148c9550b5158942d56fdbf484","tarball":"https://registry.npmjs.org/@beltoinc/slyos-sdk/-/slyos-sdk-1.5.0.tgz","fileCount":7,"integrity":"sha512-rR2YCXQ13Odt6U0anitkXq17BNgaIIp7GnQgA70dZKR6HK3gzm+Yd9PGHzTBpIwCF0Eq6aEvLgr9YivCtXV/kg==","signatures":[{"sig":"MEUCIQClTndNdXX3NYrt4y6R1HNoiJyEN2P2FeE3lNq40rk5ZwIgcj85B95H6dPN1iDlL7PmMT9JtpxCHL/wSfoJEXopUdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173087},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"cc57a146f5049b1c09dc22780da3ac8febbfed91","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"belto_inc","email":"emil.shirokikh@belto.world"},"repository":{"url":"git+https://github.com/BeltoAI/sly.os.git","type":"git"},"_npmVersion":"10.8.2","description":"SlyOS - On-Device AI SDK for Web and Node.js","directories":{},"_nodeVersion":"20.20.0","dependencies":{"axios":"^1.6.5","@huggingface/transformers":"^3.1.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/slyos-sdk_1.5.0_1773893765501_0.966248343028099","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@beltoinc/slyos-sdk","version":"1.5.1","keywords":["ai","on-device","machine-learning","llm","transformers","slyos","edge-ai","rag"],"author":{"name":"Belto Inc."},"license":"MIT","_id":"@beltoinc/slyos-sdk@1.5.1","maintainers":[{"name":"belto_inc","email":"emil.shirokikh@belto.world"}],"homepage":"https://github.com/BeltoAI/sly.os#readme","bugs":{"url":"https://github.com/BeltoAI/sly.os/issues"},"dist":{"shasum":"66fa85e7d495128350f3e4f068aec45098faa0f9","tarball":"https://registry.npmjs.org/@beltoinc/slyos-sdk/-/slyos-sdk-1.5.1.tgz","fileCount":7,"integrity":"sha512-pvsNrDP6/ajia2fSIF7rXsbmRYnQpPm/sr2TSwOD/b9/JDravM1+L5B5YZhD1fHWmoIe2gLqMbT+pWJBmgTjvA==","signatures":[{"sig":"MEUCIFc3ojKPGTVOznXPOg7+xlBtNoTSiO015aii/gjKIhe/AiEAoa6MlCXQ9KcVbxqbix/r6rlz7gQmxAc108shgtmnPHg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191621},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"d52d0163d20ae9cf23b125443f7a66310d845dac","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"belto_inc","email":"emil.shirokikh@belto.world"},"repository":{"url":"git+https://github.com/BeltoAI/sly.os.git","type":"git"},"_npmVersion":"10.8.2","description":"SlyOS - On-Device AI SDK for Web and Node.js","directories":{},"_nodeVersion":"20.20.0","dependencies":{"axios":"^1.6.5","@huggingface/transformers":"^3.1.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/slyos-sdk_1.5.1_1773895230301_0.20082255092445322","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@beltoinc/slyos-sdk","version":"1.5.2","keywords":["ai","on-device","machine-learning","llm","transformers","slyos","edge-ai","rag"],"author":{"name":"Belto Inc."},"license":"MIT","_id":"@beltoinc/slyos-sdk@1.5.2","maintainers":[{"name":"belto_inc","email":"emil.shirokikh@belto.world"}],"homepage":"https://github.com/BeltoAI/sly.os#readme","bugs":{"url":"https://github.com/BeltoAI/sly.os/issues"},"dist":{"shasum":"c3388444f77dc00229f64b70376a6111f9e8da54","tarball":"https://registry.npmjs.org/@beltoinc/slyos-sdk/-/slyos-sdk-1.5.2.tgz","fileCount":7,"integrity":"sha512-pHgLcTnCow0G/dfn5Q82F/m+qny+IJW8QhTIB0S1poDJNwiQIrIVrxJHYl83wxZ40xQloqt444aDStYrouctnA==","signatures":[{"sig":"MEUCIQCS2rT10TwJqu/up7DUOqN81IUGqDyQ/XHsKON4gxa1vwIgFz92iP1BQ/sUvMhp/WZCYzyqzOsW76amSHyLehkuzgw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194451},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"b54def4533ca338a8018a01e6a39cdb7b6b08d90","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"belto_inc","email":"emil.shirokikh@belto.world"},"repository":{"url":"git+https://github.com/BeltoAI/sly.os.git","type":"git"},"_npmVersion":"10.8.2","description":"SlyOS - On-Device AI SDK for Web and Node.js","directories":{},"_nodeVersion":"20.20.0","dependencies":{"axios":"^1.6.5","@huggingface/transformers":"^3.1.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/slyos-sdk_1.5.2_1773933557737_0.30224890853856845","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@beltoinc/slyos-sdk","version":"1.5.3","keywords":["ai","on-device","machine-learning","llm","transformers","slyos","edge-ai","rag"],"author":{"name":"Belto Inc."},"license":"MIT","_id":"@beltoinc/slyos-sdk@1.5.3","maintainers":[{"name":"belto_inc","email":"emil.shirokikh@belto.world"}],"homepage":"https://github.com/BeltoAI/sly.os#readme","bugs":{"url":"https://github.com/BeltoAI/sly.os/issues"},"dist":{"shasum":"6784eafe8c5bd954bf856159e5f371abbdd0e25d","tarball":"https://registry.npmjs.org/@beltoinc/slyos-sdk/-/slyos-sdk-1.5.3.tgz","fileCount":10,"integrity":"sha512-zpWJZ/QnMo61x4BS7n4y9+bS3XjptcZ+He9INiXRAJP4pof7GO8YDwXEYg9Epj91UfJF55U6sQ9V2vZLncR1tw==","signatures":[{"sig":"MEQCIGBRsHg01+a4w5kk1hjNN8fIV321p9rdZxSs0B/OrOvQAiBc3glJ9oont1ijGq84nTWt30WVld2qaDTUgNVxm478Ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166052},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"4d09ce2d648aedb085f3a2727c50420aad63e492","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"belto_inc","email":"emil.shirokikh@belto.world"},"repository":{"url":"git+https://github.com/BeltoAI/sly.os.git","type":"git"},"_npmVersion":"10.8.2","description":"SlyOS - On-Device AI SDK for Web and Node.js","directories":{},"_nodeVersion":"20.20.0","dependencies":{"axios":"^1.6.5","@huggingface/transformers":"^3.1.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/slyos-sdk_1.5.3_1773952552740_0.8914033812772322","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@beltoinc/slyos-sdk","version":"1.5.4","keywords":["ai","on-device","machine-learning","llm","transformers","slyos","edge-ai","rag"],"author":{"name":"Belto Inc."},"license":"MIT","_id":"@beltoinc/slyos-sdk@1.5.4","maintainers":[{"name":"belto_inc","email":"emil.shirokikh@belto.world"}],"homepage":"https://github.com/BeltoAI/sly.os#readme","bugs":{"url":"https://github.com/BeltoAI/sly.os/issues"},"dist":{"shasum":"de9ac836673e2a51370f37d9fb1b8b93b7922b4c","tarball":"https://registry.npmjs.org/@beltoinc/slyos-sdk/-/slyos-sdk-1.5.4.tgz","fileCount":10,"integrity":"sha512-DK/lYyd57OtRkMJ9NQyJvxUhgi2uw7iO5r0kWbbhImAT/HcevlSZk9UuLzSffPct/YKoi/1pVsEEt9GEmOmvPQ==","signatures":[{"sig":"MEUCIQDbxbPuCav4nIDb2cuigUDa6u9kO9E20hhHh0h2uxNwzwIgJJOY4tn45GTMW/WVcXCcATV+g2Xne9WP4pgZPdWgAZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166052},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a610db7e14e88ac0a1c13224bd56026dbdd0eb90","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"belto_inc","email":"emil.shirokikh@belto.world"},"repository":{"url":"git+https://github.com/BeltoAI/sly.os.git","type":"git"},"_npmVersion":"10.8.2","description":"SlyOS - On-Device AI SDK for Web and Node.js","directories":{},"_nodeVersion":"20.20.0","dependencies":{"axios":"^1.6.5","@huggingface/transformers":"^3.1.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/slyos-sdk_1.5.4_1773952969412_0.6474735235762741","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"@beltoinc/slyos-sdk","version":"1.5.5","keywords":["ai","on-device","machine-learning","llm","transformers","slyos","edge-ai","rag"],"author":{"name":"Belto Inc."},"license":"MIT","_id":"@beltoinc/slyos-sdk@1.5.5","maintainers":[{"name":"belto_inc","email":"emil.shirokikh@belto.world"}],"homepage":"https://github.com/BeltoAI/sly.os#readme","bugs":{"url":"https://github.com/BeltoAI/sly.os/issues"},"dist":{"shasum":"9948ef8fd6ffc25cf212e0a353563a43b019088d","tarball":"https://registry.npmjs.org/@beltoinc/slyos-sdk/-/slyos-sdk-1.5.5.tgz","fileCount":10,"integrity":"sha512-DO6JB5w6LfeS04aatwrrLdw0KGnVIAi/FtRYt8fhKmOY2adwfOszR2gOdwAvOorJ2idxNDTiwtsSj2B9XhFNSQ==","signatures":[{"sig":"MEUCIHNtWiQ9l2hvnEATZ76NJRoA+WswNPsMBpxO56rpmwA3AiEA48+HGXZnkqwG8bhYc7446Nh2THouI+SxDjPOd+zbRUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167032},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"e50b1b8f3370cb84c90f4d6f81ab96ae66625533","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"belto_inc","email":"emil.shirokikh@belto.world"},"repository":{"url":"git+https://github.com/BeltoAI/sly.os.git","type":"git"},"_npmVersion":"10.8.2","description":"SlyOS - On-Device AI SDK for Web and Node.js","directories":{},"_nodeVersion":"20.20.0","dependencies":{"axios":"^1.6.5","@huggingface/transformers":"^3.1.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/slyos-sdk_1.5.5_1773953440996_0.4563097905753568","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"@beltoinc/slyos-sdk","version":"1.5.6","description":"SlyOS - On-Device AI SDK for Web and Node.js","main":"dist/index.js","types":"dist/index.d.ts","type":"module","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"keywords":["ai","on-device","machine-learning","llm","transformers","slyos","edge-ai","rag"],"author":{"name":"Belto Inc."},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/BeltoAI/sly.os.git"},"dependencies":{"axios":"^1.6.5","@huggingface/transformers":"^3.1.2"},"devDependencies":{"typescript":"^5.3.3"},"gitHead":"29b3b6bd99d120637c880e6c4608e83125173be2","_id":"@beltoinc/slyos-sdk@1.5.6","bugs":{"url":"https://github.com/BeltoAI/sly.os/issues"},"homepage":"https://github.com/BeltoAI/sly.os#readme","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-GRBRcbeZvtPjYjRvLyd/CR/F4ubOz/fLMoSvtSF5frS3iP87wClPPf3MN5jMD5sav+N5gJNFHDteKSHeFYLv4Q==","shasum":"2e33dcac41b904a11c89d078c8fd810918d12020","tarball":"https://registry.npmjs.org/@beltoinc/slyos-sdk/-/slyos-sdk-1.5.6.tgz","fileCount":7,"unpackedSize":206156,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDBeJpwyq39eql4Ip9z5mr6CxAhqmpoCxlNw9JNZ2AjFQIgc0UoxNXszyqxeSg+QSn9VEJND4o827qHKhwmw885nqM="}]},"_npmUser":{"name":"belto_inc","email":"emil.shirokikh@belto.world"},"directories":{},"maintainers":[{"name":"belto_inc","email":"emil.shirokikh@belto.world"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/slyos-sdk_1.5.6_1775578643771_0.33798750450317616"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-19T04:16:05.364Z","modified":"2026-04-07T16:17:24.055Z","1.5.0":"2026-03-19T04:16:05.646Z","1.5.1":"2026-03-19T04:40:30.471Z","1.5.2":"2026-03-19T15:19:17.921Z","1.5.3":"2026-03-19T20:35:52.909Z","1.5.4":"2026-03-19T20:42:49.567Z","1.5.5":"2026-03-19T20:50:41.156Z","1.5.6":"2026-04-07T16:17:23.917Z"},"bugs":{"url":"https://github.com/BeltoAI/sly.os/issues"},"author":{"name":"Belto Inc."},"license":"MIT","homepage":"https://github.com/BeltoAI/sly.os#readme","keywords":["ai","on-device","machine-learning","llm","transformers","slyos","edge-ai","rag"],"repository":{"type":"git","url":"git+https://github.com/BeltoAI/sly.os.git"},"description":"SlyOS - On-Device AI SDK for Web and Node.js","maintainers":[{"name":"belto_inc","email":"emil.shirokikh@belto.world"}],"readme":"# 🔥 @beltoinc/slyos-sdk\r\n\r\nOfficial SDK for SlyOS on-device AI platform. Run AI models locally in browsers and Node.js.\r\n\r\n---\r\n\r\n## 📦 Installation\r\n```bash\r\nnpm install @beltoinc/slyos-sdk\r\n```\r\n\r\n**npm:** https://www.npmjs.com/package/@beltoinc/slyos-sdk\r\n\r\n---\r\n\r\n## 🚀 Quick Start\r\n```javascript\r\nimport SlyOS from '@beltoinc/slyos-sdk';\r\n\r\n// 1. Initialize\r\nconst sdk = new SlyOS({\r\n  apiKey: 'sk_live_your_api_key'\r\n});\r\nawait sdk.initialize();\r\n\r\n// 2. Load model (downloads ~200MB once)\r\nawait sdk.loadModel('quantum-1.7b');\r\n\r\n// 3. Generate responses\r\nconst response = await sdk.generate('quantum-1.7b', \r\n  'What is artificial intelligence?',\r\n  {\r\n    temperature: 0.7,\r\n    maxTokens: 100,\r\n    topP: 0.9\r\n  }\r\n);\r\n\r\nconsole.log(response);\r\n// AI runs locally - no per-inference charges!\r\n```\r\n\r\n---\r\n\r\n## 📚 API Reference\r\n\r\n### Constructor\r\n```typescript\r\nnew SlyOS(config: SlyOSConfig)\r\n```\r\n\r\n**Config:**\r\n```typescript\r\n{\r\n  apiKey: string;      // Get from dashboard\r\n  apiUrl?: string;     // Optional, defaults to production\r\n}\r\n```\r\n\r\n---\r\n\r\n### Methods\r\n\r\n#### `initialize()`\r\nAuthenticates with SlyOS backend and registers device.\r\n```javascript\r\nawait sdk.initialize();\r\n```\r\n\r\n**Returns:** `Promise<DeviceProfile>`\r\n\r\n---\r\n\r\n#### `loadModel(modelId)`\r\nDownloads and caches AI model locally.\r\n```javascript\r\nawait sdk.loadModel('quantum-1.7b');\r\n```\r\n\r\n**Parameters:**\r\n- `modelId` (string): Model identifier\r\n  - `quantum-1.7b` - 900MB, recommended\r\n  - `quantum-3b` - 1.6GB, high quality\r\n  - `quantum-code-3b` - 1.6GB, code-optimized\r\n  - `quantum-8b` - 4.2GB, best quality\r\n\r\n**Returns:** `Promise<void>`\r\n\r\n**First call:** Downloads model (~1-2 min)  \r\n**Subsequent calls:** Uses cached model (<1 sec)\r\n\r\n---\r\n\r\n#### `generate(modelId, prompt, options?)`\r\nGenerates AI response locally.\r\n```javascript\r\nconst response = await sdk.generate('quantum-1.7b', \r\n  'Tell me about your menu',\r\n  {\r\n    temperature: 0.7,\r\n    maxTokens: 150,\r\n    topP: 0.9\r\n  }\r\n);\r\n```\r\n\r\n**Parameters:**\r\n- `modelId` (string): Model to use\r\n- `prompt` (string): Input text\r\n- `options` (object, optional):\r\n  - `temperature` (0-2): Creativity (default: 0.7)\r\n  - `maxTokens` (10-2000): Max response length (default: 100)\r\n  - `topP` (0-1): Nucleus sampling (default: 0.9)\r\n\r\n**Returns:** `Promise<string>` - Generated text\r\n\r\n---\r\n\r\n#### `chatCompletion(options)`\r\nOpenAI-compatible chat completions.\r\n```javascript\r\nconst response = await sdk.chatCompletion({\r\n  model: 'quantum-3b',\r\n  messages: [\r\n    { role: 'system', content: 'You are a helpful assistant.' },\r\n    { role: 'user', content: 'Explain quantum computing' }\r\n  ],\r\n  temperature: 0.7,\r\n  maxTokens: 512,\r\n  topP: 0.9,\r\n  frequencyPenalty: 0,\r\n  presencePenalty: 0\r\n});\r\n\r\nconsole.log(response.choices[0].message.content);\r\n```\r\n\r\n**Parameters:**\r\n- `model` (string): Model ID to use\r\n- `messages` (array): Conversation messages with role and content\r\n- `temperature` (0-2, optional): Creativity control (default: 0.7)\r\n- `maxTokens` (optional): Maximum response length\r\n- `topP` (0-1, optional): Nucleus sampling\r\n- `frequencyPenalty` (optional): Reduce repeated tokens\r\n- `presencePenalty` (optional): Encourage new topics\r\n\r\n**Returns:** `Promise<ChatCompletionResponse>`\r\n\r\n---\r\n\r\n#### `transcribe(modelId, audio, options?)`\r\nSpeech-to-text using voicecore models.\r\n```javascript\r\nconst audioData = await fetch('audio.wav').then(r => r.arrayBuffer());\r\n\r\nconst result = await sdk.transcribe('voicecore-base', audioData, {\r\n  language: 'en'\r\n});\r\n\r\nconsole.log(result.text); // Transcribed text\r\n```\r\n\r\n**Parameters:**\r\n- `modelId` (string): STT model (`voicecore-base` or `voicecore-small`)\r\n- `audio` (ArrayBuffer): Audio data\r\n- `options` (object, optional):\r\n  - `language` (string): Language code (default: 'en')\r\n\r\n**Returns:** `Promise<TranscriptionResult>`\r\n\r\n---\r\n\r\n#### `recommendModel(category?)`\r\nReturns best model for the current device's hardware.\r\n```javascript\r\nconst recommendation = sdk.recommendModel('llm');\r\nconsole.log(recommendation.modelId); // e.g., 'quantum-1.7b'\r\n```\r\n\r\n---\r\n\r\n#### `searchModels(query, options?)`\r\nSearch HuggingFace Hub for ONNX-compatible models.\r\n```javascript\r\nconst results = await sdk.searchModels('code generation', {\r\n  limit: 10\r\n});\r\n\r\nresults.forEach(model => {\r\n  console.log(model.name, model.downloads);\r\n});\r\n```\r\n\r\n**Parameters:**\r\n- `query` (string): Search keywords\r\n- `options` (object, optional):\r\n  - `limit` (number): Results to return (default: 5)\r\n\r\n**Returns:** `Promise<Array<ModelSearchResult>>`\r\n\r\n---\r\n\r\n#### `getDeviceProfile()`\r\nReturns the device's hardware profile (CPU, RAM, GPU, screen, network).\r\n\r\n---\r\n\r\n#### `getModelContextWindow()`\r\nReturns current model's context window size in tokens.\r\n\r\n---\r\n\r\n#### `getDeviceId()`\r\nReturns the persistent device identifier.\r\n\r\n---\r\n\r\n#### `destroy()`\r\nFlushes pending telemetry and cleans up timers. Call before shutting down.\r\n```javascript\r\nawait sdk.destroy(); // Ensures telemetry is sent\r\n```\r\n\r\n#### `getSdkVersion()`\r\nReturns the current SDK version string (e.g. `'1.4.0'`).\r\n\r\n#### `getAvailableModels()`\r\nReturns available models grouped by category (`llm`, `stt`).\r\n\r\n#### `canRunModel(modelId, quant?)`\r\nChecks if the current device can run a specific model based on hardware profile.\r\n\r\n#### `ragQuery(modelId, knowledgeBaseId, query, options?)`\r\nPerforms a RAG query against a cloud-indexed knowledge base. Requires Hybrid RAG plan.\r\n\r\n#### `ragQueryLocal(modelId, knowledgeBaseId, query, options?)`\r\nPerforms a RAG query using locally-cached embeddings for offline-capable retrieval.\r\n\r\n#### `ragQueryOffline(modelId, knowledgeBaseId, query, options?)`\r\nFully offline RAG query using pre-synced knowledge base data.\r\n\r\n#### `syncKnowledgeBase(knowledgeBaseId)`\r\nDownloads and caches a knowledge base locally for offline RAG queries.\r\n\r\n---\r\n\r\n## 🌐 Platform Support\r\n\r\n| Platform | Status | Notes |\r\n|----------|--------|-------|\r\n| **Chrome** | ✅ Supported | Recommended |\r\n| **Safari** | ✅ Supported | iOS 16+ |\r\n| **Edge** | ✅ Supported | Chromium-based |\r\n| **Firefox** | ⚠️ Limited | Some models work |\r\n| **Node.js** | ✅ Supported | v18+ |\r\n| **React Native** | 🚧 Coming Soon | Q3 2026 |\r\n\r\n---\r\n\r\n## 💡 Usage Examples\r\n\r\n### Basic Chatbot\r\n```javascript\r\nimport SlyOS from '@beltoinc/slyos-sdk';\r\n\r\nconst sdk = new SlyOS({ apiKey: 'sk_live_...' });\r\nawait sdk.initialize();\r\nawait sdk.loadModel('quantum-1.7b');\r\n\r\nasync function chat(userMessage) {\r\n  return await sdk.generate('quantum-1.7b', userMessage);\r\n}\r\n\r\nconst response = await chat('What are your hours?');\r\nconsole.log(response);\r\n```\r\n\r\n---\r\n\r\n### With System Prompt\r\n```javascript\r\nconst systemPrompt = `You are a helpful assistant for McDonald's. \r\nHelp with menu, hours, and nutrition. Be friendly and concise.`;\r\n\r\nconst userMessage = 'What breakfast items do you have?';\r\nconst fullPrompt = `${systemPrompt}\\n\\nCustomer: ${userMessage}\\nAssistant:`;\r\n\r\nconst response = await sdk.generate('quantum-1.7b', fullPrompt, {\r\n  temperature: 0.7,\r\n  maxTokens: 150\r\n});\r\n```\r\n\r\n---\r\n\r\n### React Integration\r\n```jsx\r\nimport { useState, useEffect } from 'react';\r\nimport SlyOS from '@beltoinc/slyos-sdk';\r\n\r\nfunction Chatbot() {\r\n  const [sdk, setSdk] = useState(null);\r\n  const [loading, setLoading] = useState(true);\r\n  const [response, setResponse] = useState('');\r\n\r\n  useEffect(() => {\r\n    async function init() {\r\n      const client = new SlyOS({ apiKey: 'sk_live_...' });\r\n      await client.initialize();\r\n      await client.loadModel('quantum-1.7b');\r\n      setSdk(client);\r\n      setLoading(false);\r\n    }\r\n    init();\r\n  }, []);\r\n\r\n  async function handleChat(message) {\r\n    const reply = await sdk.generate('quantum-1.7b', message);\r\n    setResponse(reply);\r\n  }\r\n\r\n  if (loading) return <div>Loading AI...</div>;\r\n  \r\n  return (\r\n    <div>\r\n      <button onClick={() => handleChat('Hello!')}>\r\n        Chat\r\n      </button>\r\n      <p>{response}</p>\r\n    </div>\r\n  );\r\n}\r\n```\r\n\r\n---\r\n\r\n## 🔧 Advanced Configuration\r\n\r\n### Custom Backend URL\r\n```javascript\r\nconst sdk = new SlyOS({\r\n  apiKey: 'sk_live_...',\r\n  apiUrl: 'https://api.slyos.world'\r\n});\r\n```\r\n\r\n---\r\n\r\n### Multiple Models\r\n```javascript\r\nawait sdk.loadModel('quantum-1.7b');\r\nawait sdk.loadModel('quantum-3b');\r\n\r\n// Use different models\r\nconst fast = await sdk.generate('quantum-1.7b', 'Quick question?');\r\nconst detailed = await sdk.generate('quantum-3b', 'Complex question?');\r\n```\r\n\r\n---\r\n\r\n## 📊 Performance\r\n\r\n### Benchmarks (Quantum 1.7B)\r\n\r\n| Metric | Browser | Node.js |\r\n|--------|---------|---------|\r\n| First load | 60-120s | 30-60s |\r\n| Cached load | <1s | <0.5s |\r\n| Inference | 10-15 tok/s | 15-25 tok/s |\r\n| Memory | 1.2GB | 900MB |\r\n\r\n---\r\n\r\n## 🐛 Troubleshooting\r\n\r\n### Model won't load\r\n```javascript\r\n// Check browser console for errors\r\n// Ensure 2GB+ RAM available\r\n// Try smaller model (quantum-1.7b)\r\n```\r\n\r\n### CORS errors\r\n```javascript\r\n// Backend must allow your domain\r\n// Check CORS_ORIGIN environment variable\r\n```\r\n\r\n### Slow inference\r\n```javascript\r\n// Use smaller model\r\n// Reduce maxTokens\r\n// Check CPU/RAM availability\r\n```\r\n\r\n---\r\n\r\n## 🔒 Security\r\n\r\n- API keys stored client-side (localStorage)\r\n- All inference happens locally (private)\r\n- Inference telemetry batched locally (flushed every 10 inferences or 60s)\r\n- No user data sent to cloud\r\n\r\n---\r\n\r\n## 📦 Package Info\r\n\r\n- **Package:** `@beltoinc/slyos-sdk`\r\n- **Version:** 1.4.0\r\n- **License:** Proprietary\r\n- **Size:** 168 KB (unpacked)\r\n- **Dependencies:** axios, @huggingface/transformers\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\nProprietary — See LICENSE file for details\r\n\r\n---\r\n\r\n## 🙏 Credits\r\n\r\nBuilt with Hugging Face Transformers.js\r\n\r\n---\r\n\r\n## 📞 Support\r\n\r\n- **npm:** https://www.npmjs.com/package/@beltoinc/slyos-sdk\r\n- **GitHub:** https://github.com/BeltoAI/sly.os\r\n- **Docs:** See main README.md\r\n- **Email:** support@slyos.world\r\n","readmeFilename":"README.md"}