converse-mcp-server 1.18.0-beta.5 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/converse.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "converse-mcp-server",
3
- "version": "1.18.0-beta.5",
3
+ "version": "2.0.0",
4
4
  "description": "Converse MCP Server - Converse with other LLMs with chat and consensus tools",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -11,56 +11,6 @@
11
11
  "engines": {
12
12
  "node": ">=20.0.0"
13
13
  },
14
- "keywords": [
15
- "mcp",
16
- "server",
17
- "ai",
18
- "chat",
19
- "consensus",
20
- "openai",
21
- "google",
22
- "gemini",
23
- "grok"
24
- ],
25
- "author": "Converse MCP Server",
26
- "license": "MIT",
27
- "homepage": "https://github.com/FallDownTheSystem/converse#readme",
28
- "repository": {
29
- "type": "git",
30
- "url": "git+https://github.com/FallDownTheSystem/converse.git"
31
- },
32
- "bugs": {
33
- "url": "https://github.com/FallDownTheSystem/converse/issues"
34
- },
35
- "files": [
36
- "src/",
37
- "bin/",
38
- "docs/",
39
- "README.md",
40
- ".env.example"
41
- ],
42
- "dependencies": {
43
- "@anthropic-ai/sdk": "^0.65.0",
44
- "@google/genai": "^1.22.0",
45
- "@mistralai/mistralai": "^1.10.0",
46
- "@modelcontextprotocol/sdk": "^1.19.1",
47
- "@openai/codex-sdk": "^0.45.0",
48
- "cors": "^2.8.5",
49
- "dotenv": "^17.2.3",
50
- "express": "^5.1.0",
51
- "lru-cache": "^11.2.2",
52
- "openai": "^6.1.0",
53
- "p-limit": "^4.0.0",
54
- "vite": "^7.1.9"
55
- },
56
- "devDependencies": {
57
- "@vitest/coverage-v8": "^3.2.4",
58
- "cross-env": "^10.1.0",
59
- "eslint": "^9.36.0",
60
- "prettier": "^3.6.2",
61
- "rimraf": "^6.0.1",
62
- "vitest": "^3.2.4"
63
- },
64
14
  "scripts": {
65
15
  "kill-server": "node scripts/kill-server.js",
66
16
  "start": "npm run kill-server && node src/index.js",
@@ -114,5 +64,55 @@
114
64
  "validate:fix": "node scripts/validate.js --fix",
115
65
  "validate:fast": "node scripts/validate.js --skip-tests --skip-lint",
116
66
  "precommit": "npm run validate"
67
+ },
68
+ "keywords": [
69
+ "mcp",
70
+ "server",
71
+ "ai",
72
+ "chat",
73
+ "consensus",
74
+ "openai",
75
+ "google",
76
+ "gemini",
77
+ "grok"
78
+ ],
79
+ "author": "Converse MCP Server",
80
+ "license": "MIT",
81
+ "homepage": "https://github.com/FallDownTheSystem/converse#readme",
82
+ "repository": {
83
+ "type": "git",
84
+ "url": "git+https://github.com/FallDownTheSystem/converse.git"
85
+ },
86
+ "bugs": {
87
+ "url": "https://github.com/FallDownTheSystem/converse/issues"
88
+ },
89
+ "files": [
90
+ "src/",
91
+ "bin/",
92
+ "docs/",
93
+ "README.md",
94
+ ".env.example"
95
+ ],
96
+ "dependencies": {
97
+ "@anthropic-ai/sdk": "^0.65.0",
98
+ "@google/genai": "^1.22.0",
99
+ "@mistralai/mistralai": "^1.10.0",
100
+ "@modelcontextprotocol/sdk": "^1.19.1",
101
+ "@openai/codex-sdk": "^0.45.0",
102
+ "cors": "^2.8.5",
103
+ "dotenv": "^17.2.3",
104
+ "express": "^5.1.0",
105
+ "lru-cache": "^11.2.2",
106
+ "openai": "^6.1.0",
107
+ "p-limit": "^4.0.0",
108
+ "vite": "^7.1.9"
109
+ },
110
+ "devDependencies": {
111
+ "@vitest/coverage-v8": "^3.2.4",
112
+ "cross-env": "^10.1.0",
113
+ "eslint": "^9.36.0",
114
+ "prettier": "^3.6.2",
115
+ "rimraf": "^6.0.1",
116
+ "vitest": "^3.2.4"
117
117
  }
118
- }
118
+ }
@@ -15,6 +15,7 @@
15
15
 
16
16
  import { debugLog, debugError } from '../utils/console.js';
17
17
  import { ProviderError, ErrorCodes, StopReasons } from './interface.js';
18
+ import { normalizeExtendedPath } from '../utils/pathUtils.js';
18
19
 
19
20
  // Supported Codex models with their configurations
20
21
  const SUPPORTED_MODELS = {
@@ -244,7 +245,9 @@ export const codexProvider = {
244
245
 
245
246
  // Read configuration values (with secure defaults)
246
247
  // Note: Using CLIENT_CWD directly, no separate CODEX_WORKING_DIRECTORY
247
- const workingDirectory = config.server?.client_cwd || process.cwd();
248
+ const rawWorkingDirectory = config.server?.client_cwd || process.cwd();
249
+ // Normalize Windows extended-length paths (\\?\C:\...) to regular paths
250
+ const workingDirectory = normalizeExtendedPath(rawWorkingDirectory);
248
251
  const sandbox = config.providers?.codexsandboxmode || 'read-only';
249
252
  const skipGitRepoCheck = config.providers?.codexskipgitcheck !== undefined ? config.providers.codexskipgitcheck : true;
250
253
  const approvalPolicy = config.providers?.codexapprovalpolicy || 'never';
@@ -252,7 +255,6 @@ export const codexProvider = {
252
255
  debugLog(`[Codex] Starting ${threadId ? 'resumed' : 'new'} thread`, {
253
256
  model,
254
257
  workingDirectory,
255
- workingDirectoryType: workingDirectory.startsWith('\\\\?\\') ? 'extended-length' : 'normal',
256
258
  sandbox,
257
259
  skipGitRepoCheck,
258
260
  approvalPolicy,
package/src/tools/chat.js CHANGED
@@ -827,10 +827,6 @@ chatTool.description = 'GENERAL CHAT & COLLABORATIVE THINKING - Development assi
827
827
  chatTool.inputSchema = {
828
828
  type: 'object',
829
829
  properties: {
830
- prompt: {
831
- type: 'string',
832
- description: 'Your question or topic with relevant context. More detail enables better responses. Example: "How should I structure the authentication module for this Express.js API?"',
833
- },
834
830
  model: {
835
831
  type: 'string',
836
832
  description: 'AI model to use. Examples: "auto" (recommended), "gpt-5", "gemini-2.5-pro", "grok-4-0709". Defaults to auto-selection.',
@@ -878,6 +874,10 @@ chatTool.inputSchema = {
878
874
  description: 'Execute chat in background. When true, returns continuation_id immediately and processes request asynchronously. Default: false',
879
875
  default: false
880
876
  },
877
+ prompt: {
878
+ type: 'string',
879
+ description: 'Your question or topic with relevant context. More detail enables better responses. Example: "How should I structure the authentication module for this Express.js API?"',
880
+ },
881
881
  },
882
882
  required: ['prompt'],
883
883
  };
@@ -1340,10 +1340,6 @@ consensusTool.description = 'PARALLEL CONSENSUS WITH CROSS-MODEL FEEDBACK - Quer
1340
1340
  consensusTool.inputSchema = {
1341
1341
  type: 'object',
1342
1342
  properties: {
1343
- prompt: {
1344
- type: 'string',
1345
- description: 'The problem or proposal to gather consensus on. Include context and specific questions. Example: "Should we use microservices or monolith architecture for our e-commerce platform with 100k users?"',
1346
- },
1347
1343
  models: {
1348
1344
  type: 'array',
1349
1345
  items: { type: 'string' },
@@ -1396,6 +1392,10 @@ consensusTool.inputSchema = {
1396
1392
  description: 'Execute consensus in background with detailed progress tracking. When true, returns continuation_id immediately and processes request asynchronously with per-provider status updates. Default: false',
1397
1393
  default: false
1398
1394
  },
1395
+ prompt: {
1396
+ type: 'string',
1397
+ description: 'The problem or proposal to gather consensus on. Include context and specific questions. Example: "Should we use microservices or monolith architecture for our e-commerce platform with 100k users?"',
1398
+ },
1399
1399
  },
1400
1400
  required: ['prompt', 'models'],
1401
1401
  };
@@ -197,3 +197,27 @@ export function getPlatformName() {
197
197
  };
198
198
  return platformMap[platform()] || platform();
199
199
  }
200
+
201
+ /**
202
+ * Normalize Windows extended-length paths to regular paths
203
+ * Removes the \\?\ prefix that Windows uses for paths longer than 260 characters
204
+ * @param {string} inputPath - Path that may have extended-length prefix
205
+ * @returns {string} Normalized path without extended-length prefix
206
+ */
207
+ export function normalizeExtendedPath(inputPath) {
208
+ if (!inputPath || typeof inputPath !== 'string') {
209
+ return inputPath;
210
+ }
211
+
212
+ // Remove Windows extended-length path prefix \\?\
213
+ if (inputPath.startsWith('\\\\?\\')) {
214
+ return inputPath.substring(4);
215
+ }
216
+
217
+ // Also handle UNC paths: \\?\UNC\server\share -> \\server\share
218
+ if (inputPath.startsWith('\\\\?\\UNC\\')) {
219
+ return '\\' + inputPath.substring(7);
220
+ }
221
+
222
+ return inputPath;
223
+ }