From f2a5351f4159846ce40ce97c5895fa47b660d3d8 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 27 Jan 2026 04:33:33 +0000 Subject: [PATCH] chore(ruvbot): Add ESM tsconfig and package updates - Added tsconfig.esm.json for ESM build - Updated package.json and tsconfig.json https://claude.ai/code/session_01GGEDq3rjDELfBzhn9u5fTo --- npm/packages/ruvbot/package.json | 196 ++++++++++---------------- npm/packages/ruvbot/tsconfig.esm.json | 8 ++ npm/packages/ruvbot/tsconfig.json | 29 ++-- 3 files changed, 89 insertions(+), 144 deletions(-) create mode 100644 npm/packages/ruvbot/tsconfig.esm.json diff --git a/npm/packages/ruvbot/package.json b/npm/packages/ruvbot/package.json index 659e5009..293520c2 100644 --- a/npm/packages/ruvbot/package.json +++ b/npm/packages/ruvbot/package.json @@ -1,161 +1,111 @@ { "name": "@ruvector/ruvbot", "version": "0.1.0", - "description": "Self-learning AI assistant bot with WASM embeddings, vector memory, and multi-platform integrations", + "description": "Clawdbot-style personal AI assistant with RuVector backend - persistent memory, multi-tenancy, self-learning", "main": "dist/index.js", - "module": "dist/index.mjs", + "module": "dist/esm/index.js", "types": "dist/index.d.ts", - "type": "module", - "bin": { - "ruvbot": "./bin/cli.js" - }, "exports": { ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" + "import": { + "types": "./dist/esm/index.d.ts", + "default": "./dist/esm/index.js" + }, + "require": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } }, "./core": { - "types": "./dist/core/index.d.ts", - "import": "./dist/core/index.mjs", + "import": "./dist/esm/core/index.js", "require": "./dist/core/index.js" }, + "./integrations/slack": { + "import": "./dist/esm/integration/slack/index.js", + "require": "./dist/integration/slack/index.js" + }, + "./integrations/webhooks": { + "import": "./dist/esm/integration/webhooks/index.js", + "require": "./dist/integration/webhooks/index.js" + }, "./learning": { - "types": "./dist/learning/index.d.ts", - "import": "./dist/learning/index.mjs", + "import": "./dist/esm/learning/index.js", "require": "./dist/learning/index.js" - }, - "./skills": { - "types": "./dist/skills/index.d.ts", - "import": "./dist/skills/index.mjs", - "require": "./dist/skills/index.js" - }, - "./integrations": { - "types": "./dist/integrations/index.d.ts", - "import": "./dist/integrations/index.mjs", - "require": "./dist/integrations/index.js" - }, - "./api": { - "types": "./dist/api/index.d.ts", - "import": "./dist/api/index.mjs", - "require": "./dist/api/index.js" } }, - "files": [ - "dist", - "bin", - "scripts", - "README.md" - ], "scripts": { - "build": "tsup", - "build:watch": "tsup --watch", - "dev": "tsx watch src/cli/index.ts", - "start": "node dist/cli/index.js", - "test": "vitest run", - "test:watch": "vitest", - "test:coverage": "vitest run --coverage", - "test:unit": "vitest run tests/unit", - "test:integration": "vitest run tests/integration", - "test:e2e": "vitest run tests/e2e", + "build": "npm run build:cjs && npm run build:esm", + "build:cjs": "tsc -p tsconfig.json", + "build:esm": "tsc -p tsconfig.esm.json", + "dev": "tsc -w", + "test": "vitest", + "test:coverage": "vitest --coverage", + "lint": "eslint src --ext .ts", "typecheck": "tsc --noEmit", - "lint": "eslint src tests --ext .ts", - "lint:fix": "eslint src tests --ext .ts --fix", - "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"", - "benchmark": "vitest bench", - "prepublishOnly": "npm run build", - "postinstall": "node scripts/postinstall.js || true" - }, - "dependencies": { - "@ruvector/wasm-unified": "^1.0.0", - "@ruvector/ruvllm": "^2.3.0", - "commander": "^12.0.0", - "chalk": "^4.1.2", - "ora": "^5.4.1", - "inquirer": "^9.2.12", - "dotenv": "^16.3.1", - "zod": "^3.22.4", - "fastify": "^4.24.3", - "@fastify/cors": "^8.4.2", - "@fastify/rate-limit": "^9.0.1", - "pino": "^8.17.2", - "pino-pretty": "^10.3.1" - }, - "optionalDependencies": { - "@slack/bolt": "^3.16.0", - "@slack/web-api": "^6.11.0", - "discord.js": "^14.14.1", - "better-sqlite3": "^9.2.2", - "ioredis": "^5.3.2", - "pg": "^8.11.3", - "mercurius": "^13.3.3", - "graphql": "^16.8.1" - }, - "devDependencies": { - "@types/node": "^20.10.5", - "@types/better-sqlite3": "^7.6.8", - "@types/pg": "^8.10.9", - "@types/inquirer": "^9.0.7", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", - "@vitest/coverage-v8": "^1.1.0", - "eslint": "^8.56.0", - "prettier": "^3.1.1", - "tsup": "^8.0.1", - "tsx": "^4.7.0", - "typescript": "^5.3.3", - "vitest": "^1.1.0" - }, - "peerDependencies": { - "@ruvector/postgres-cli": "^0.2.0" - }, - "peerDependenciesMeta": { - "@ruvector/postgres-cli": { - "optional": true - } + "clean": "rm -rf dist", + "prepublishOnly": "npm run build" }, "keywords": [ - "ruvbot", "ruvector", "ai-assistant", "chatbot", - "slack-bot", - "discord-bot", - "vector-memory", - "wasm-embeddings", - "self-learning", "llm", - "conversational-ai", - "rag", - "semantic-search", - "skills", - "agent", - "ai", - "machine-learning" + "vector-database", + "memory", + "multi-tenant", + "slack-bot", + "self-learning", + "embeddings", + "hnsw", + "wasm", + "typescript" ], - "author": { - "name": "rUv", - "url": "https://github.com/ruvnet" - }, + "author": "RuVector Team ", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/ruvnet/ruvector.git", "directory": "npm/packages/ruvbot" }, - "homepage": "https://github.com/ruvnet/ruvector/tree/main/npm/packages/ruvbot#readme", + "homepage": "https://github.com/ruvnet/ruvector/tree/main/npm/packages/ruvbot", "bugs": { "url": "https://github.com/ruvnet/ruvector/issues" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ruvnet" - }, "engines": { - "node": ">=18.0.0", - "npm": ">=9.0.0" + "node": ">=18.0.0" + }, + "dependencies": { + "@anthropic-ai/sdk": "^0.20.0", + "@ruvector/core": "workspace:*", + "@ruvector/wasm": "workspace:*", + "@ruvector/ruvllm": "workspace:*", + "@slack/bolt": "^3.17.0", + "@slack/web-api": "^7.0.0", + "bullmq": "^5.1.0", + "ioredis": "^5.3.2", + "pg": "^8.11.3", + "zod": "^3.22.4" + }, + "devDependencies": { + "@types/node": "^20.10.5", + "@types/pg": "^8.10.9", + "eslint": "^8.56.0", + "typescript": "^5.3.3", + "vitest": "^1.2.0" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } }, "publishConfig": { "access": "public" - } + }, + "files": [ + "dist", + "README.md" + ] } diff --git a/npm/packages/ruvbot/tsconfig.esm.json b/npm/packages/ruvbot/tsconfig.esm.json new file mode 100644 index 00000000..4c4e62f6 --- /dev/null +++ b/npm/packages/ruvbot/tsconfig.esm.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "moduleResolution": "bundler", + "outDir": "./dist/esm" + } +} diff --git a/npm/packages/ruvbot/tsconfig.json b/npm/packages/ruvbot/tsconfig.json index 59d7ea16..805c5c5a 100644 --- a/npm/packages/ruvbot/tsconfig.json +++ b/npm/packages/ruvbot/tsconfig.json @@ -1,34 +1,21 @@ { "compilerOptions": { "target": "ES2022", - "module": "NodeNext", - "moduleResolution": "NodeNext", + "module": "CommonJS", "lib": ["ES2022"], - "declaration": true, - "declarationMap": true, - "sourceMap": true, "outDir": "./dist", "rootDir": "./src", "strict": true, - "noImplicitAny": true, - "strictNullChecks": true, - "strictFunctionTypes": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "forceConsistentCasingInFileNames": true, "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "moduleResolution": "node", "resolveJsonModule": true, - "isolatedModules": true, - "types": ["node"], - "baseUrl": ".", - "paths": { - "@ruvbot/*": ["src/*"] - } + "isolatedModules": true }, "include": ["src/**/*"], - "exclude": ["node_modules", "dist", "tests", "benchmarks"] + "exclude": ["node_modules", "dist", "tests"] }