mcp-coordinator 0.5.0 → 0.6.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.
@@ -28,10 +28,10 @@ export class WorkingFilesTracker {
28
28
  const db = getDb();
29
29
  const existing = db.prepare("SELECT 1 FROM working_files WHERE agent_id = ? AND file_path = ?")
30
30
  .get(agentId, filePath);
31
- db.prepare(`INSERT INTO working_files (agent_id, file_path, started_at, last_activity_at, claim_until)
32
- VALUES (?, ?, strftime('%Y-%m-%dT%H:%M:%SZ', 'now'), strftime('%Y-%m-%dT%H:%M:%SZ', 'now'), strftime('%Y-%m-%dT%H:%M:%SZ', 'now', '+' || CAST(? AS TEXT) || ' minutes'))
33
- ON CONFLICT(agent_id, file_path) DO UPDATE SET
34
- last_activity_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now'),
31
+ db.prepare(`INSERT INTO working_files (agent_id, file_path, started_at, last_activity_at, claim_until)
32
+ VALUES (?, ?, strftime('%Y-%m-%dT%H:%M:%SZ', 'now'), strftime('%Y-%m-%dT%H:%M:%SZ', 'now'), strftime('%Y-%m-%dT%H:%M:%SZ', 'now', '+' || CAST(? AS TEXT) || ' minutes'))
33
+ ON CONFLICT(agent_id, file_path) DO UPDATE SET
34
+ last_activity_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now'),
35
35
  claim_until = strftime('%Y-%m-%dT%H:%M:%SZ', 'now', '+' || CAST(? AS TEXT) || ' minutes')`).run(agentId, filePath, ttlMinutes, ttlMinutes);
36
36
  this.metrics?.workingFilesStarts.inc({ result: existing ? "updated" : "inserted" });
37
37
  }
@@ -94,9 +94,9 @@ export class WorkingFilesTracker {
94
94
  return index;
95
95
  const db = getDb();
96
96
  const placeholders = filePaths.map(() => "?").join(",");
97
- const rows = db.prepare(`SELECT DISTINCT file_path, agent_id FROM working_files
98
- WHERE file_path IN (${placeholders})
99
- AND agent_id != ?
97
+ const rows = db.prepare(`SELECT DISTINCT file_path, agent_id FROM working_files
98
+ WHERE file_path IN (${placeholders})
99
+ AND agent_id != ?
100
100
  AND claim_until > strftime('%Y-%m-%dT%H:%M:%SZ', 'now')`).all(...filePaths, excludeAgentId);
101
101
  for (const r of rows) {
102
102
  let set = index.get(r.file_path);
package/package.json CHANGED
@@ -1,100 +1,100 @@
1
- {
2
- "name": "mcp-coordinator",
3
- "version": "0.5.0",
4
- "mcpName": "io.github.swoofer/mcp-coordinator",
5
- "description": "Embedded MQTT broker + MCP server for multi-agent coordination",
6
- "type": "module",
7
- "license": "MIT",
8
- "author": "Maxime Gagnon",
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/swoofer/mcp-coordinator.git"
12
- },
13
- "homepage": "https://swoofer.github.io/mcp-coordinator",
14
- "bugs": {
15
- "url": "https://github.com/swoofer/mcp-coordinator/issues"
16
- },
17
- "keywords": [
18
- "mcp",
19
- "mqtt",
20
- "broker",
21
- "multi-agent",
22
- "coordination",
23
- "claude",
24
- "anthropic"
25
- ],
26
- "main": "./dist/src/index.js",
27
- "types": "./dist/src/index.d.ts",
28
- "exports": {
29
- ".": {
30
- "types": "./dist/src/index.d.ts",
31
- "default": "./dist/src/index.js"
32
- },
33
- "./types": {
34
- "types": "./dist/src/types.d.ts",
35
- "default": "./dist/src/types.js"
36
- }
37
- },
38
- "bin": {
39
- "mcp-coordinator": "./dist/cli/index.js"
40
- },
41
- "files": [
42
- "dist/src/",
43
- "dist/cli/",
44
- "dashboard/",
45
- "LICENSE",
46
- "README.md"
47
- ],
48
- "scripts": {
49
- "build": "tsc",
50
- "test": "vitest run",
51
- "test:watch": "vitest",
52
- "cli": "tsx cli/index.ts",
53
- "start": "node dist/src/serve-http.js",
54
- "dev": "tsx src/serve-http.ts",
55
- "dev:stdio": "tsx src/index.ts",
56
- "prepublishOnly": "npm run build && npm test"
57
- },
58
- "dependencies": {
59
- "@modelcontextprotocol/sdk": "^1.12.0",
60
- "aedes": "^1.0.2",
61
- "better-sqlite3": "^12.8.0",
62
- "commander": "^14.0.3",
63
- "jose": "^6.2.2",
64
- "mqtt": "^5.15.0",
65
- "pino": "^10.3.1",
66
- "prom-client": "^15.1.3",
67
- "tar": "^7.4.3",
68
- "ws": "^8.20.0",
69
- "zod": "^3.23.0"
70
- },
71
- "devDependencies": {
72
- "@types/better-sqlite3": "^7.6.13",
73
- "@types/node": "^22.0.0",
74
- "@types/ws": "^8.18.1",
75
- "pino-pretty": "^13.1.3",
76
- "tsx": "^4.19.0",
77
- "typescript": "^5.7.0",
78
- "vitest": "^4.1.0"
79
- },
80
- "optionalDependencies": {
81
- "tree-sitter": "^0.21.1",
82
- "tree-sitter-typescript": "^0.21.2",
83
- "tree-sitter-javascript": "^0.21.4",
84
- "tree-sitter-python": "^0.21.0",
85
- "tree-sitter-go": "^0.21.0",
86
- "tree-sitter-rust": "^0.21.2",
87
- "tree-sitter-java": "^0.21.0",
88
- "tree-sitter-c-sharp": "^0.21.3",
89
- "tree-sitter-c": "^0.21.0",
90
- "tree-sitter-cpp": "^0.22.0",
91
- "tree-sitter-ruby": "^0.21.0",
92
- "tree-sitter-php": "^0.22.0",
93
- "tree-sitter-kotlin": "^0.3.0",
94
- "tree-sitter-swift": "^0.6.0",
95
- "tree-sitter-bash": "^0.21.0"
96
- },
97
- "engines": {
98
- "node": ">=20"
99
- }
100
- }
1
+ {
2
+ "name": "mcp-coordinator",
3
+ "version": "0.6.0",
4
+ "mcpName": "io.github.swoofer/mcp-coordinator",
5
+ "description": "Embedded MQTT broker + MCP server for multi-agent coordination",
6
+ "type": "module",
7
+ "license": "MIT",
8
+ "author": "Maxime Gagnon",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/swoofer/mcp-coordinator.git"
12
+ },
13
+ "homepage": "https://swoofer.github.io/mcp-coordinator",
14
+ "bugs": {
15
+ "url": "https://github.com/swoofer/mcp-coordinator/issues"
16
+ },
17
+ "keywords": [
18
+ "mcp",
19
+ "mqtt",
20
+ "broker",
21
+ "multi-agent",
22
+ "coordination",
23
+ "claude",
24
+ "anthropic"
25
+ ],
26
+ "main": "./dist/src/index.js",
27
+ "types": "./dist/src/index.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "types": "./dist/src/index.d.ts",
31
+ "default": "./dist/src/index.js"
32
+ },
33
+ "./types": {
34
+ "types": "./dist/src/types.d.ts",
35
+ "default": "./dist/src/types.js"
36
+ }
37
+ },
38
+ "bin": {
39
+ "mcp-coordinator": "./dist/cli/index.js"
40
+ },
41
+ "files": [
42
+ "dist/src/",
43
+ "dist/cli/",
44
+ "dashboard/",
45
+ "LICENSE",
46
+ "README.md"
47
+ ],
48
+ "scripts": {
49
+ "build": "tsc",
50
+ "test": "vitest run",
51
+ "test:watch": "vitest",
52
+ "cli": "tsx cli/index.ts",
53
+ "start": "node dist/src/serve-http.js",
54
+ "dev": "tsx src/serve-http.ts",
55
+ "dev:stdio": "tsx src/index.ts",
56
+ "prepublishOnly": "npm run build && npm test"
57
+ },
58
+ "dependencies": {
59
+ "@modelcontextprotocol/sdk": "^1.12.0",
60
+ "aedes": "^1.0.2",
61
+ "better-sqlite3": "^12.8.0",
62
+ "commander": "^14.0.3",
63
+ "jose": "^6.2.2",
64
+ "mqtt": "^5.15.0",
65
+ "pino": "^10.3.1",
66
+ "prom-client": "^15.1.3",
67
+ "tar": "^7.4.3",
68
+ "ws": "^8.20.0",
69
+ "zod": "^3.23.0"
70
+ },
71
+ "devDependencies": {
72
+ "@types/better-sqlite3": "^7.6.13",
73
+ "@types/node": "^22.0.0",
74
+ "@types/ws": "^8.18.1",
75
+ "pino-pretty": "^13.1.3",
76
+ "tsx": "^4.19.0",
77
+ "typescript": "^5.7.0",
78
+ "vitest": "^4.1.0"
79
+ },
80
+ "optionalDependencies": {
81
+ "tree-sitter": "^0.21.1",
82
+ "tree-sitter-typescript": "^0.21.2",
83
+ "tree-sitter-javascript": "^0.21.4",
84
+ "tree-sitter-python": "^0.21.0",
85
+ "tree-sitter-go": "^0.21.0",
86
+ "tree-sitter-rust": "^0.21.2",
87
+ "tree-sitter-java": "^0.21.0",
88
+ "tree-sitter-c-sharp": "^0.21.3",
89
+ "tree-sitter-c": "^0.21.0",
90
+ "tree-sitter-cpp": "^0.22.0",
91
+ "tree-sitter-ruby": "^0.21.0",
92
+ "tree-sitter-php": "^0.22.0",
93
+ "tree-sitter-kotlin": "^0.3.0",
94
+ "tree-sitter-swift": "^0.6.0",
95
+ "tree-sitter-bash": "^0.21.0"
96
+ },
97
+ "engines": {
98
+ "node": ">=20"
99
+ }
100
+ }