diff --git a/.gitignore b/.gitignore index 598a422e..a2f5c070 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ __pycache__/ *.py[oc] build/ dist/ +dist-cjs/ wheels/ *.egg-info .coverage diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 00000000..28c7ea7e --- /dev/null +++ b/index.d.ts @@ -0,0 +1,18 @@ +import { MCPAgent } from './src/agents/mcp_agent.js' +import { MCPClient } from './src/client.js' +import { loadConfigFile } from './src/config.js' +import { BaseConnector } from './src/connectors/base.js' +import { HttpConnector } from './src/connectors/http.js' +import { StdioConnector } from './src/connectors/stdio.js' +import { WebSocketConnector } from './src/connectors/websocket.js' +import { Logger, logger } from './src/logging.js' +import { MCPSession } from './src/session.js' + +export { BaseAdapter, LangChainAdapter } from './src/adapters/index.js' +export * from './src/agents/utils/index.js' +export { ServerManager } from './src/managers/server_manager.js' +export * from './src/managers/tools/index.js' +export { setTelemetrySource, Telemetry } from './src/telemetry/index.js' +export type { StreamEvent } from '@langchain/core/tracers/log_stream' +export { BaseConnector, HttpConnector, loadConfigFile, Logger, logger, MCPAgent, MCPClient, MCPSession, StdioConnector, WebSocketConnector } +// # sourceMappingURL=index.d.ts.map diff --git a/index.d.ts.map b/index.d.ts.map new file mode 100644 index 00000000..5a0d0617 --- /dev/null +++ b/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAEvE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAEhE,cAAc,+BAA+B,CAAA;AAG7C,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGxE,YAAY,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAErE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA"} \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 00000000..a98c39cd --- /dev/null +++ b/index.js @@ -0,0 +1,18 @@ +import { MCPAgent } from './src/agents/mcp_agent.js' +import { MCPClient } from './src/client.js' +import { loadConfigFile } from './src/config.js' +import { BaseConnector } from './src/connectors/base.js' +import { HttpConnector } from './src/connectors/http.js' +import { StdioConnector } from './src/connectors/stdio.js' +import { WebSocketConnector } from './src/connectors/websocket.js' +import { Logger, logger } from './src/logging.js' +import { MCPSession } from './src/session.js' + +export { BaseAdapter, LangChainAdapter } from './src/adapters/index.js' +// Export AI SDK utilities +export * from './src/agents/utils/index.js' +export { ServerManager } from './src/managers/server_manager.js' +export * from './src/managers/tools/index.js' +// Export telemetry utilities +export { setTelemetrySource, Telemetry } from './src/telemetry/index.js' +export { BaseConnector, HttpConnector, loadConfigFile, Logger, logger, MCPAgent, MCPClient, MCPSession, StdioConnector, WebSocketConnector } diff --git a/package.json b/package.json index 479bcfae..5b92a302 100644 --- a/package.json +++ b/package.json @@ -29,14 +29,16 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.js" + "import": "./dist/index.js", + "require": "./dist-cjs/index.js" } }, - "main": "./dist/index.js", + "main": "./dist-cjs/index.js", "module": "./dist/index.js", "types": "./dist/index.d.ts", "files": [ - "dist" + "dist", + "dist-cjs" ], "engines": { "node": ">=22.0.0" @@ -45,7 +47,9 @@ "registry": "https://registry.npmjs.org" }, "scripts": { - "build": "rm -rf dist && tsc", + "build": "shx rm -rf dist && tsc", + "build:cjs": "shx rm -rf dist-cjs && tsc --project tsconfig.cjs.json && node scripts/create-cjs-package.cjs", + "build:all": "npm run build && npm run build:cjs", "lint": "eslint", "lint:fix": "eslint --fix", "test": "vitest", @@ -87,6 +91,7 @@ "eventsource": "^3.0.6", "fastembed": "^1.14.4", "langchain": "^0.3.27", + "lodash": "^4.17.21", "lodash-es": "^4.17.21", "posthog-node": "^5.1.1", "uuid": "^11.1.0", diff --git a/scripts/create-cjs-package.cjs b/scripts/create-cjs-package.cjs new file mode 100644 index 00000000..5cb4eba2 --- /dev/null +++ b/scripts/create-cjs-package.cjs @@ -0,0 +1,16 @@ +#!/usr/bin/env node + +const fs = require('node:fs') +const path = require('node:path') + +const distCjsDir = path.join(__dirname, '..', 'dist-cjs') +if (!fs.existsSync(distCjsDir)) { + fs.mkdirSync(distCjsDir, { recursive: true }) +} + +const packageJsonContent = { + type: 'commonjs', +} + +const packageJsonPath = path.join(distCjsDir, 'package.json') +fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2)) diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 00000000..3395cb9e --- /dev/null +++ b/src/index.ts @@ -0,0 +1,19 @@ +import { MCPAgent } from './agents/mcp_agent.js' +import { MCPClient } from './client.js' +import { loadConfigFile } from './config.js' +import { BaseConnector } from './connectors/base.js' +import { HttpConnector } from './connectors/http.js' +import { StdioConnector } from './connectors/stdio.js' +import { WebSocketConnector } from './connectors/websocket.js' + +import { Logger, logger } from './logging.js' +import { MCPSession } from './session.js' + +export { BaseAdapter, LangChainAdapter } from './adapters/index.js' +export { ServerManager } from './managers/server_manager.js' +export * from './managers/tools/index.js' + +// Export telemetry utilities +export { setTelemetrySource, Telemetry } from './telemetry/index.js' + +export { BaseConnector, HttpConnector, loadConfigFile, Logger, logger, MCPAgent, MCPClient, MCPSession, StdioConnector, WebSocketConnector } diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json new file mode 100644 index 00000000..74d832ff --- /dev/null +++ b/tsconfig.cjs.json @@ -0,0 +1,13 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": ".", + "module": "CommonJS", + "moduleResolution": "Node", + "outDir": "./dist-cjs", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true + }, + "include": ["index.ts", "src/**/*.ts"], + "exclude": ["examples", "node_modules", "dist", "dist-cjs"] +} diff --git a/tsconfig.json b/tsconfig.json index 8611fad1..3861f821 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,12 +7,13 @@ "resolveJsonModule": true, "strict": true, "declaration": true, + "declarationDir": "./dist", "declarationMap": true, "outDir": "./dist", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "skipLibCheck": true }, - "include": ["**/*.ts"], - "exclude": ["node_modules", "dist"] + "include": ["src/**/*.ts", "index.ts"], + "exclude": ["node_modules", "dist", "examples"] }