{"_id":"@denispro2006/duke-ai-kernel","name":"@denispro2006/duke-ai-kernel","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@denispro2006/duke-ai-kernel","version":"1.0.0","description":"AI kernel for the duke-messenger platform — handles LLM routing, context management, and real-time messaging via WebSocket.","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/denispro2006/duke-ai-kernel.git"},"scripts":{"dev":"tsx watch src/index.ts","build":"tsc","start":"node dist/index.js","lint":"eslint .","lint:fix":"eslint . --fix","format":"prettier --write .","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","db:migrate":"node dist/db/migrate.js"},"dependencies":{"express":"^5.0.0","ws":"^8.18.0","bull":"^4.16.0","ioredis":"^5.4.1","openai":"^4.77.0","@anthropic-ai/sdk":"^0.36.0","pino":"^9.6.0","pino-http":"^10.3.0","dotenv":"^16.4.7","zod":"^3.24.1","uuid":"^11.0.5","pg":"^8.13.1"},"devDependencies":{"@types/express":"^5.0.0","@types/ws":"^8.5.13","@types/bull":"^4.10.0","@types/node":"^22.10.0","@types/uuid":"^10.0.0","@types/pg":"^8.11.10","@types/supertest":"^6.0.2","typescript":"^5.7.2","tsx":"^4.19.2","vitest":"^2.1.8","@vitest/coverage-v8":"^2.1.8","supertest":"^7.0.0","eslint":"^9.16.0","@typescript-eslint/eslint-plugin":"^8.18.0","@typescript-eslint/parser":"^8.18.0","prettier":"^3.4.2"},"engines":{"node":">=20.0.0"},"license":"MIT","_id":"@denispro2006/duke-ai-kernel@1.0.0","gitHead":"a91957d52f71ab9c4e7cb46ab67dfdc682f79340","bugs":{"url":"https://github.com/denispro2006/duke-ai-kernel/issues"},"homepage":"https://github.com/denispro2006/duke-ai-kernel#readme","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-zrzggnpv7dR08iu9fZQoik1+2HZG59Bn8Vl+dsLAbphqcucdVFqFvCsnEOfftKjHcgtuUpYWXE6CUzVJ5VHjoA==","shasum":"1e3f79d13d6eb00eda3401ea8a0652f72a35769c","tarball":"https://registry.npmjs.org/@denispro2006/duke-ai-kernel/-/duke-ai-kernel-1.0.0.tgz","fileCount":120,"unpackedSize":120550,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBB7jdRoZqLdwkKB5n5HoFJybhA6oAcruR1OBr13vOSNAiEA38z8/UmL+HVor86TjMNSvM802OJt1eBA2WC5UaIOqGA="}]},"_npmUser":{"name":"denispro2006","email":"ntvelksina5@gmail.com"},"directories":{},"maintainers":[{"name":"denispro2006","email":"ntvelksina5@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/duke-ai-kernel_1.0.0_1778083910217_0.7243433407712392"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-06T16:11:50.069Z","1.0.0":"2026-05-06T16:11:50.353Z","modified":"2026-05-06T16:11:50.585Z"},"maintainers":[{"name":"denispro2006","email":"ntvelksina5@gmail.com"}],"description":"AI kernel for the duke-messenger platform — handles LLM routing, context management, and real-time messaging via WebSocket.","homepage":"https://github.com/denispro2006/duke-ai-kernel#readme","repository":{"type":"git","url":"git+https://github.com/denispro2006/duke-ai-kernel.git"},"bugs":{"url":"https://github.com/denispro2006/duke-ai-kernel/issues"},"license":"MIT","readme":"# duke-ai-kernel\n\nAI kernel for the [duke-messenger](https://github.com/duke-messenger) platform. Handles LLM routing, context management, and real-time messaging via WebSocket.\n\n## Quick Start\n\n```bash\n# 1. Clone and install\ngit clone https://github.com/duke-messenger/duke-ai-kernel\ncd duke-ai-kernel\nnpm install\n\n# 2. Configure environment\ncp .env.example .env\n# Edit .env with your API keys\n\n# 3. Start the kernel\nnpm run dev\n```\n\nThe kernel starts on `http://localhost:3000` by default.\n\n## Features\n\n- **Unified LLM routing** — route requests to OpenAI, Anthropic, or local Ollama models\n- **Context management** — per-conversation history with configurable token-budget trimming\n- **Real-time streaming** — stream responses to clients over WebSocket\n- **Plugin pipeline** — extend with custom pre/post processors\n- **Worker concurrency** — bounded async workers prevent rate-limit saturation\n\n## Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Runtime | Node.js 20+ |\n| Framework | Express 5 |\n| WebSocket | ws |\n| Language | TypeScript |\n| Testing | Vitest |\n\n## Scripts\n\n```bash\nnpm run dev          # Start with hot reload\nnpm run build        # Compile TypeScript\nnpm start            # Run compiled output\nnpm run lint         # Check code style\nnpm run typecheck    # Type-check without building\nnpm test             # Run all tests\nnpm run test:coverage # Run tests with coverage report\n```\n\n## Environment Variables\n\nCopy `.env.example` to `.env`. At minimum you need:\n\n```\nOPENAI_API_KEY=sk-...\nAUTH_SECRET=your-secret-here\n```\n\nSee [Environment Variables](docs/api.md) for the full reference.\n\n## Docker\n\n```bash\n# Start kernel + Redis\ndocker compose up -d\n\n# Verify\ncurl http://localhost:3000/api/v1/healthz\n```\n\n## Documentation\n\n- [API Reference](docs/api.md)\n- [Architecture & Data Flow](docs/api.md)\n\n## License\n\nMIT © duke-messenger contributors\n","readmeFilename":"README.md","_rev":"1-28c5e55ca4f2edab0f8d2d7ec2fdf44f"}