mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 22:39:40 +02:00
Create a shared LLM client package that provides a unified interface to the mana-llm service, replacing 9 individual fetch-based integrations with consistent error handling, retry logic, and JSON extraction. Package (@manacore/shared-llm): - LlmModule with forRoot/forRootAsync (NestJS dynamic module) - LlmClientService: chat, json, vision, visionJson, embed, stream - LlmClient standalone class for non-NestJS consumers - extractJson utility (consolidates 3 markdown-stripping implementations) - retryFetch with exponential backoff (429, 5xx, network errors) - 44 unit tests (json-extractor, retry, llm-client) Migrated backends: - mana-core-auth: raw fetch → llm.json() - planta: raw fetch + vision → llm.visionJson() - nutriphi: raw fetch + regex → llm.visionJson() + llm.json() - chat: custom OllamaService (175 LOC) → llm.chatMessages() - context: raw fetch → llm.chat() (keeps token tracking) - traces: 2x raw fetch → llm.chat() - manadeck: @google/genai SDK → llm.json() + llm.visionJson() - bot-services: raw Ollama API → LlmClient standalone - matrix-ollama-bot: raw fetch → llm.chatMessages() + llm.vision() New credit operations: - AI_PLANT_ANALYSIS (2 credits, planta) - AI_GUIDE_GENERATION (5 credits, traces) - AI_CONTEXT_GENERATION (2 credits, context) - AI_BOT_CHAT (0.1 credits, matrix) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
47 lines
1.3 KiB
JSON
47 lines
1.3 KiB
JSON
{
|
|
"name": "@manacore/matrix-ollama-bot",
|
|
"version": "1.0.0",
|
|
"description": "Matrix bot for local LLM inference via Ollama - GDPR compliant",
|
|
"private": true,
|
|
"license": "MIT",
|
|
"pnpm": {
|
|
"neverBuiltDependencies": [
|
|
"@matrix-org/matrix-sdk-crypto-nodejs"
|
|
],
|
|
"overrides": {
|
|
"@matrix-org/matrix-sdk-crypto-nodejs": "npm:empty-npm-package@1.0.0"
|
|
}
|
|
},
|
|
"overrides": {
|
|
"@matrix-org/matrix-sdk-crypto-nodejs": "npm:empty-npm-package@1.0.0"
|
|
},
|
|
"scripts": {
|
|
"prebuild": "rm -rf dist || true",
|
|
"build": "tsc -p tsconfig.build.json",
|
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
"start": "nest start",
|
|
"start:dev": "nest start --watch",
|
|
"start:debug": "nest start --debug --watch",
|
|
"start:prod": "node dist/main",
|
|
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
"type-check": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@manacore/bot-services": "workspace:*",
|
|
"@manacore/matrix-bot-common": "workspace:*",
|
|
"@manacore/shared-llm": "workspace:^",
|
|
"@nestjs/common": "^10.4.15",
|
|
"@nestjs/config": "^3.3.0",
|
|
"@nestjs/core": "^10.4.15",
|
|
"@nestjs/platform-express": "^10.4.15",
|
|
"matrix-bot-sdk": "^0.7.1",
|
|
"reflect-metadata": "^0.2.2",
|
|
"rxjs": "^7.8.1"
|
|
},
|
|
"devDependencies": {
|
|
"@nestjs/cli": "^10.4.9",
|
|
"@nestjs/schematics": "^10.2.3",
|
|
"@types/node": "^22.10.5",
|
|
"typescript": "^5.7.3"
|
|
}
|
|
}
|