@qwickapps/qwickbrain-proxy 1.0.0 → 1.0.2
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/CHANGELOG.md +67 -0
- package/README.md +44 -2
- package/dist/bin/cli.js +1 -1
- package/dist/bin/cli.js.map +1 -1
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +7 -2
- package/dist/db/client.js.map +1 -1
- package/dist/lib/connection-manager.d.ts.map +1 -1
- package/dist/lib/connection-manager.js +4 -1
- package/dist/lib/connection-manager.js.map +1 -1
- package/dist/lib/proxy-server.d.ts +2 -0
- package/dist/lib/proxy-server.d.ts.map +1 -1
- package/dist/lib/proxy-server.js +134 -39
- package/dist/lib/proxy-server.js.map +1 -1
- package/dist/lib/qwickbrain-client.d.ts +6 -0
- package/dist/lib/qwickbrain-client.d.ts.map +1 -1
- package/dist/lib/qwickbrain-client.js +61 -1
- package/dist/lib/qwickbrain-client.js.map +1 -1
- package/package.json +1 -1
- package/src/bin/cli.ts +1 -1
- package/src/db/client.ts +7 -2
- package/src/lib/connection-manager.ts +4 -1
- package/src/lib/proxy-server.ts +137 -40
- package/src/lib/qwickbrain-client.ts +62 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,73 @@ All notable changes to the QwickBrain MCP Proxy will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.2] - 2026-01-08
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Blocking Startup Issue**: Removed blocking connection attempts that prevented server from starting in offline mode
|
|
13
|
+
- Removed `await this.qwickbrainClient.connect()` from startup sequence
|
|
14
|
+
- Server now starts immediately (< 0.5s) regardless of network connectivity
|
|
15
|
+
- Connection manager handles network state transitions gracefully without throwing errors
|
|
16
|
+
- **Health Check Blocking**: Changed initial health check to fire-and-forget background task
|
|
17
|
+
- Eliminates 5-second timeout delay during startup
|
|
18
|
+
- MCP server becomes available immediately while connection attempts continue in background
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **Event-Driven Architecture**: Startup and network state management now fully event-driven
|
|
23
|
+
- Server startup no longer blocks on network operations
|
|
24
|
+
- Health checks run in background with exponential backoff (1s → 2s → 4s → 8s → 16s → 32s → 60s max)
|
|
25
|
+
- Connection state changes trigger appropriate background actions via events
|
|
26
|
+
- Added `onConnectionRestored()` handler for automatic cache sync when connection is restored
|
|
27
|
+
- **Improved Resilience**: Enhanced degraded mode operation
|
|
28
|
+
- Server exposes fallback tools immediately even when offline
|
|
29
|
+
- Background reconnection continues while serving cached data
|
|
30
|
+
- Disconnect errors during shutdown are now gracefully ignored
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- **Background Cache Sync**: Automatic cache population when connection is restored
|
|
35
|
+
- Event-driven preloading of workflows and rules on `'connected'` event
|
|
36
|
+
- Configurable preload items via `cache.preload` array
|
|
37
|
+
- Foundation for sync queue processing (TODO: implementation)
|
|
38
|
+
|
|
39
|
+
### Technical Details
|
|
40
|
+
|
|
41
|
+
- **Non-Blocking Startup**: MCP server ready in < 0.5s vs previous 5+ second timeout/crash
|
|
42
|
+
- **Event Listeners**: Connection manager emits `stateChange`, `connected`, `disconnected`, `reconnecting` events
|
|
43
|
+
- **Graceful Degradation**: Tools available immediately with metadata indicating data source (live/cache/stale)
|
|
44
|
+
|
|
45
|
+
## [1.0.1] - 2025-01-08
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
- **Database Migration Path**: Fixed relative path issue in drizzle migrations causing initialization failures when installed globally
|
|
50
|
+
- Updated `runMigrations()` to use absolute path resolution with `fileURLToPath` and `dirname`
|
|
51
|
+
- Migrations now correctly locate `drizzle/` directory relative to package installation
|
|
52
|
+
- **Server Configuration**: Corrected default QwickBrain server URL
|
|
53
|
+
- Changed hostname from `macmini-devserver.local` to `macmini-devserver`
|
|
54
|
+
- Added `/sse` endpoint path for SSE transport mode
|
|
55
|
+
- Updated CLI init command and documentation
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
|
|
59
|
+
- **Dynamic Tool Forwarding**: Proxy now transparently forwards ALL tools from upstream QwickBrain server
|
|
60
|
+
- Added `listTools()` method to dynamically fetch available tools from upstream
|
|
61
|
+
- Added `callTool()` method for generic tool forwarding
|
|
62
|
+
- Tools like `analyze_repository`, `search_codebase`, `list_documents`, etc. now available through proxy
|
|
63
|
+
- **Enhanced Tool Support**: Beyond cached document tools, now supports all QwickBrain tools including:
|
|
64
|
+
- Code analysis tools (analyze_repository, analyze_file, find_functions, find_classes, get_imports, explain_function)
|
|
65
|
+
- Semantic search tools (search_codebase, search_documents, search_memories)
|
|
66
|
+
- Document management tools (create_document, update_document, delete_document, list_documents)
|
|
67
|
+
- Repository management tools (add_repository, list_repositories, remove_repository, update_repository)
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
|
|
71
|
+
- Tool listing now dynamically fetched from upstream server instead of hardcoded
|
|
72
|
+
- Fallback to minimal cached tool set when upstream unavailable
|
|
73
|
+
- Non-document tools forwarded directly without caching (real-time results)
|
|
74
|
+
|
|
8
75
|
## [1.0.0] - 2025-01-08
|
|
9
76
|
|
|
10
77
|
### Added
|
package/README.md
CHANGED
|
@@ -9,6 +9,48 @@ Local MCP proxy for QwickBrain with caching and resilience features.
|
|
|
9
9
|
- **Graceful degradation**: Serves stale cached data when QwickBrain is unavailable
|
|
10
10
|
- **Write queue**: Queues write operations when offline, syncs when reconnected
|
|
11
11
|
- **Health monitoring**: Continuous health checks and connection state management
|
|
12
|
+
- **Dynamic tool forwarding**: Transparently forwards all QwickBrain tools to MCP clients
|
|
13
|
+
|
|
14
|
+
## Available Tools
|
|
15
|
+
|
|
16
|
+
The proxy provides access to all QwickBrain tools:
|
|
17
|
+
|
|
18
|
+
**Code Analysis:**
|
|
19
|
+
- `analyze_repository` - Analyze repository structure and dependencies
|
|
20
|
+
- `analyze_file` - Extract functions, classes, and structure from files
|
|
21
|
+
- `find_functions` - Find functions matching a pattern
|
|
22
|
+
- `find_classes` - Find classes matching a pattern
|
|
23
|
+
- `get_imports` - Get imports from files
|
|
24
|
+
- `explain_function` - Get detailed function explanations
|
|
25
|
+
|
|
26
|
+
**Semantic Search:**
|
|
27
|
+
- `search_codebase` - Search code with natural language queries
|
|
28
|
+
- `search_documents` - Search engineering documents
|
|
29
|
+
- `search_memories` - Search project memories
|
|
30
|
+
|
|
31
|
+
**Document Management:**
|
|
32
|
+
- `create_document` - Create ADRs, FRDs, designs, spikes, reviews
|
|
33
|
+
- `get_document` - Retrieve specific documents (cached)
|
|
34
|
+
- `list_documents` - List documents by type/project
|
|
35
|
+
- `update_document` - Update existing documents
|
|
36
|
+
- `delete_document` - Remove documents
|
|
37
|
+
|
|
38
|
+
**Repository Management:**
|
|
39
|
+
- `add_repository` - Index GitHub repositories
|
|
40
|
+
- `list_repositories` - List indexed repositories
|
|
41
|
+
- `remove_repository` - Remove from index
|
|
42
|
+
- `update_repository` - Pull and re-index changes
|
|
43
|
+
|
|
44
|
+
**Workflows & Memories:**
|
|
45
|
+
- `get_workflow` - Get workflow definitions (cached)
|
|
46
|
+
- `list_workflows` - List available workflows
|
|
47
|
+
- `create_workflow` - Define new workflows
|
|
48
|
+
- `update_workflow` - Modify workflows
|
|
49
|
+
- `get_memory` - Retrieve memories (cached)
|
|
50
|
+
- `set_memory` - Store project context
|
|
51
|
+
- `list_memories` - List available memories
|
|
52
|
+
|
|
53
|
+
Document tools (workflows, documents, memories) are cached locally for offline access. Other tools require active connection to QwickBrain server.
|
|
12
54
|
|
|
13
55
|
## Installation
|
|
14
56
|
|
|
@@ -25,7 +67,7 @@ qwickbrain-proxy init
|
|
|
25
67
|
```
|
|
26
68
|
|
|
27
69
|
This creates a default configuration at `~/.qwickbrain/config.json` with:
|
|
28
|
-
- QwickBrain URL: `http://macmini-devserver
|
|
70
|
+
- QwickBrain URL: `http://macmini-devserver:3000/sse`
|
|
29
71
|
- Connection mode: `sse` (Server-Sent Events)
|
|
30
72
|
- Cache directory: `~/.qwickbrain/cache`
|
|
31
73
|
|
|
@@ -41,7 +83,7 @@ Configure mode:
|
|
|
41
83
|
```bash
|
|
42
84
|
# SSE mode (default)
|
|
43
85
|
qwickbrain-proxy config set qwickbrain.mode sse
|
|
44
|
-
qwickbrain-proxy config set qwickbrain.url http://macmini-devserver
|
|
86
|
+
qwickbrain-proxy config set qwickbrain.url http://macmini-devserver:3000/sse
|
|
45
87
|
|
|
46
88
|
# MCP stdio mode
|
|
47
89
|
qwickbrain-proxy config set qwickbrain.mode mcp
|
package/dist/bin/cli.js
CHANGED
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/db/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAQtC,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAA0B,GAAG;IACpE,EAAE,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC;IAC9C,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAA;CAC1B,CAaA;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,QAO3D;AAED,MAAM,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/db/client.js
CHANGED
|
@@ -2,9 +2,10 @@ import Database from 'better-sqlite3';
|
|
|
2
2
|
import { drizzle } from 'drizzle-orm/better-sqlite3';
|
|
3
3
|
import { migrate } from 'drizzle-orm/better-sqlite3/migrator';
|
|
4
4
|
import * as schema from './schema.js';
|
|
5
|
-
import { join } from 'path';
|
|
5
|
+
import { join, dirname } from 'path';
|
|
6
6
|
import { homedir } from 'os';
|
|
7
7
|
import { mkdirSync } from 'fs';
|
|
8
|
+
import { fileURLToPath } from 'url';
|
|
8
9
|
const DEFAULT_CACHE_DIR = join(homedir(), '.qwickbrain', 'cache');
|
|
9
10
|
export function createDatabase(cacheDir = DEFAULT_CACHE_DIR) {
|
|
10
11
|
// Ensure cache directory exists
|
|
@@ -18,6 +19,10 @@ export function createDatabase(cacheDir = DEFAULT_CACHE_DIR) {
|
|
|
18
19
|
}
|
|
19
20
|
export function runMigrations(db) {
|
|
20
21
|
// Drizzle will look for migrations in drizzle/ directory
|
|
21
|
-
|
|
22
|
+
// Use absolute path relative to package installation
|
|
23
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
24
|
+
const __dirname = dirname(__filename);
|
|
25
|
+
const migrationsFolder = join(__dirname, '../../drizzle');
|
|
26
|
+
migrate(db, { migrationsFolder });
|
|
22
27
|
}
|
|
23
28
|
//# sourceMappingURL=client.js.map
|
package/dist/db/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAElE,MAAM,UAAU,cAAc,CAAC,WAAmB,iBAAiB;IAIjE,gCAAgC;IAChC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpC,yCAAyC;IACzC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEpC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAA8B;IAC1D,yDAAyD;IACzD,qDAAqD;IACrD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC1D,OAAO,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/lib/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAoC;gBAE7C,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC;IAM5E,QAAQ,IAAI,eAAe;IAI3B,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAShC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/lib/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAoC;gBAE7C,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC;IAM5E,QAAQ,IAAI,eAAe;IAI3B,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAShC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B,IAAI,IAAI,IAAI;IAaN,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAyBrC,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,mBAAmB;IAO3B,aAAa,IAAI,IAAI;IAOf,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAgBnD"}
|
|
@@ -25,7 +25,10 @@ export class ConnectionManager extends EventEmitter {
|
|
|
25
25
|
}
|
|
26
26
|
async start() {
|
|
27
27
|
this.isStopped = false;
|
|
28
|
-
|
|
28
|
+
// Start health check in background (don't block server startup)
|
|
29
|
+
this.healthCheck().catch(err => {
|
|
30
|
+
console.error('Initial health check error:', err);
|
|
31
|
+
});
|
|
29
32
|
this.scheduleHealthCheck();
|
|
30
33
|
}
|
|
31
34
|
stop() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/lib/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACzC,KAAK,GAAoB,cAAc,CAAC;IACxC,iBAAiB,GAAG,CAAC,CAAC;IACtB,cAAc,GAA0B,IAAI,CAAC;IAC7C,gBAAgB,GAA0B,IAAI,CAAC;IAC/C,gBAAgB,CAAmB;IACnC,MAAM,CAAuB;IAC7B,SAAS,GAAG,KAAK,CAAC;IAClB,aAAa,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEzD,YAAY,gBAAkC,EAAE,MAA4B;QAC1E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,KAAsB;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,
|
|
1
|
+
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/lib/connection-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,13 @@ export declare class ProxyServer {
|
|
|
8
8
|
private config;
|
|
9
9
|
constructor(db: DB, config: Config);
|
|
10
10
|
private setupConnectionListeners;
|
|
11
|
+
private onConnectionRestored;
|
|
11
12
|
private setupHandlers;
|
|
12
13
|
private createMetadata;
|
|
13
14
|
private handleGetWorkflow;
|
|
14
15
|
private handleGetDocument;
|
|
15
16
|
private handleGetMemory;
|
|
17
|
+
private handleGenericTool;
|
|
16
18
|
start(): Promise<void>;
|
|
17
19
|
stop(): Promise<void>;
|
|
18
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-server.d.ts","sourceRoot":"","sources":["../../src/lib/proxy-server.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAI1C,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAS;gBAEX,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM;IA2BlC,OAAO,CAAC,wBAAwB;
|
|
1
|
+
{"version":3,"file":"proxy-server.d.ts","sourceRoot":"","sources":["../../src/lib/proxy-server.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAI1C,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAS;gBAEX,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM;IA2BlC,OAAO,CAAC,wBAAwB;YAsBlB,oBAAoB;IAsBlC,OAAO,CAAC,aAAa;IAuHrB,OAAO,CAAC,cAAc;YAQR,iBAAiB;YAIjB,iBAAiB;YAmEjB,eAAe;YAgDf,iBAAiB;IAmDzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAU5B"}
|
package/dist/lib/proxy-server.js
CHANGED
|
@@ -36,56 +36,97 @@ export class ProxyServer {
|
|
|
36
36
|
});
|
|
37
37
|
this.connectionManager.on('connected', ({ latencyMs }) => {
|
|
38
38
|
console.error(`Connected to QwickBrain (latency: ${latencyMs}ms)`);
|
|
39
|
+
// Event-driven: trigger background sync when connection restored
|
|
40
|
+
this.onConnectionRestored().catch(err => {
|
|
41
|
+
console.error('Background sync error:', err);
|
|
42
|
+
});
|
|
39
43
|
});
|
|
40
44
|
this.connectionManager.on('disconnected', ({ error }) => {
|
|
41
45
|
console.error(`Disconnected from QwickBrain: ${error}`);
|
|
42
46
|
});
|
|
43
47
|
}
|
|
48
|
+
async onConnectionRestored() {
|
|
49
|
+
console.error('Starting background cache sync...');
|
|
50
|
+
// Preload critical documents in background
|
|
51
|
+
const preloadItems = this.config.cache.preload || [];
|
|
52
|
+
for (const itemType of preloadItems) {
|
|
53
|
+
try {
|
|
54
|
+
if (itemType === 'workflows') {
|
|
55
|
+
// TODO: List and cache all workflows
|
|
56
|
+
console.error('Preloading workflows...');
|
|
57
|
+
}
|
|
58
|
+
else if (itemType === 'rules') {
|
|
59
|
+
// TODO: List and cache all rules
|
|
60
|
+
console.error('Preloading rules...');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.error(`Failed to preload ${itemType}:`, error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
console.error('Background cache sync complete');
|
|
68
|
+
}
|
|
44
69
|
setupHandlers() {
|
|
45
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () =>
|
|
46
|
-
tools
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
70
|
+
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
71
|
+
// Try to fetch tools from upstream if connected
|
|
72
|
+
if (this.connectionManager.getState() === 'connected') {
|
|
73
|
+
try {
|
|
74
|
+
const tools = await this.connectionManager.execute(async () => {
|
|
75
|
+
return await this.qwickbrainClient.listTools();
|
|
76
|
+
});
|
|
77
|
+
return { tools };
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error('Failed to list tools from upstream:', error);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Fallback to minimal tool set when offline or error
|
|
84
|
+
return {
|
|
85
|
+
tools: [
|
|
86
|
+
{
|
|
87
|
+
name: 'get_workflow',
|
|
88
|
+
description: 'Get a workflow definition by name (cached)',
|
|
89
|
+
inputSchema: {
|
|
90
|
+
type: 'object',
|
|
91
|
+
properties: {
|
|
92
|
+
name: { type: 'string', description: 'Workflow name' },
|
|
93
|
+
},
|
|
94
|
+
required: ['name'],
|
|
54
95
|
},
|
|
55
|
-
required: ['name'],
|
|
56
96
|
},
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
97
|
+
{
|
|
98
|
+
name: 'get_document',
|
|
99
|
+
description: 'Get a document by name and type (cached)',
|
|
100
|
+
inputSchema: {
|
|
101
|
+
type: 'object',
|
|
102
|
+
properties: {
|
|
103
|
+
name: { type: 'string', description: 'Document name' },
|
|
104
|
+
doc_type: { type: 'string', description: 'Document type (rule, frd, design, etc.)' },
|
|
105
|
+
project: { type: 'string', description: 'Project name (optional)' },
|
|
106
|
+
},
|
|
107
|
+
required: ['name', 'doc_type'],
|
|
67
108
|
},
|
|
68
|
-
required: ['name', 'doc_type'],
|
|
69
109
|
},
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
110
|
+
{
|
|
111
|
+
name: 'get_memory',
|
|
112
|
+
description: 'Get a memory/context document by name (cached)',
|
|
113
|
+
inputSchema: {
|
|
114
|
+
type: 'object',
|
|
115
|
+
properties: {
|
|
116
|
+
name: { type: 'string', description: 'Memory name' },
|
|
117
|
+
project: { type: 'string', description: 'Project name (optional)' },
|
|
118
|
+
},
|
|
119
|
+
required: ['name'],
|
|
79
120
|
},
|
|
80
|
-
required: ['name'],
|
|
81
121
|
},
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
})
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
});
|
|
85
125
|
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
86
126
|
const { name, arguments: args } = request.params;
|
|
87
127
|
try {
|
|
88
128
|
let result;
|
|
129
|
+
// Handle cacheable document tools specially
|
|
89
130
|
switch (name) {
|
|
90
131
|
case 'get_workflow':
|
|
91
132
|
result = await this.handleGetWorkflow(args?.name);
|
|
@@ -97,7 +138,9 @@ export class ProxyServer {
|
|
|
97
138
|
result = await this.handleGetMemory(args?.name, args?.project);
|
|
98
139
|
break;
|
|
99
140
|
default:
|
|
100
|
-
|
|
141
|
+
// Generic forwarding for all other tools (analyze_repository, search_codebase, etc.)
|
|
142
|
+
result = await this.handleGenericTool(name, args || {});
|
|
143
|
+
break;
|
|
101
144
|
}
|
|
102
145
|
return {
|
|
103
146
|
content: [
|
|
@@ -234,15 +277,61 @@ export class ProxyServer {
|
|
|
234
277
|
_metadata: this.createMetadata('cache'),
|
|
235
278
|
};
|
|
236
279
|
}
|
|
280
|
+
async handleGenericTool(name, args) {
|
|
281
|
+
// Generic tool forwarding - no caching for non-document tools
|
|
282
|
+
if (this.connectionManager.getState() !== 'connected') {
|
|
283
|
+
return {
|
|
284
|
+
error: {
|
|
285
|
+
code: 'UNAVAILABLE',
|
|
286
|
+
message: `QwickBrain unavailable - cannot call tool: ${name}`,
|
|
287
|
+
suggestions: [
|
|
288
|
+
'Check internet connection',
|
|
289
|
+
'Wait for automatic reconnection',
|
|
290
|
+
],
|
|
291
|
+
},
|
|
292
|
+
_metadata: this.createMetadata('cache'),
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
try {
|
|
296
|
+
const result = await this.connectionManager.execute(async () => {
|
|
297
|
+
return await this.qwickbrainClient.callTool(name, args);
|
|
298
|
+
});
|
|
299
|
+
// Parse the MCP response format
|
|
300
|
+
if (result && typeof result === 'object' && 'content' in result) {
|
|
301
|
+
const content = result.content;
|
|
302
|
+
if (Array.isArray(content) && content[0]?.type === 'text') {
|
|
303
|
+
// Parse the text content as JSON
|
|
304
|
+
const data = JSON.parse(content[0].text);
|
|
305
|
+
return {
|
|
306
|
+
data,
|
|
307
|
+
_metadata: this.createMetadata('live'),
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
// Fallback: return raw result
|
|
312
|
+
return {
|
|
313
|
+
data: result,
|
|
314
|
+
_metadata: this.createMetadata('live'),
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
catch (error) {
|
|
318
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
319
|
+
return {
|
|
320
|
+
error: {
|
|
321
|
+
code: 'TOOL_ERROR',
|
|
322
|
+
message: `Tool call failed: ${errorMessage}`,
|
|
323
|
+
},
|
|
324
|
+
_metadata: this.createMetadata('cache'),
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
}
|
|
237
328
|
async start() {
|
|
238
329
|
// Clean up expired cache entries on startup
|
|
239
330
|
const { documentsDeleted, memoriesDeleted } = await this.cacheManager.cleanupExpiredEntries();
|
|
240
331
|
if (documentsDeleted > 0 || memoriesDeleted > 0) {
|
|
241
332
|
console.error(`Cache cleanup: removed ${documentsDeleted} documents, ${memoriesDeleted} memories`);
|
|
242
333
|
}
|
|
243
|
-
//
|
|
244
|
-
await this.qwickbrainClient.connect();
|
|
245
|
-
// Start connection manager
|
|
334
|
+
// Start connection manager (handles connection gracefully, doesn't throw)
|
|
246
335
|
await this.connectionManager.start();
|
|
247
336
|
// Start MCP server
|
|
248
337
|
const transport = new StdioServerTransport();
|
|
@@ -251,7 +340,13 @@ export class ProxyServer {
|
|
|
251
340
|
}
|
|
252
341
|
async stop() {
|
|
253
342
|
this.connectionManager.stop();
|
|
254
|
-
|
|
343
|
+
try {
|
|
344
|
+
await this.qwickbrainClient.disconnect();
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
// Ignore disconnect errors (client may never have connected)
|
|
348
|
+
console.error('Disconnect error (ignoring):', error);
|
|
349
|
+
}
|
|
255
350
|
await this.server.close();
|
|
256
351
|
}
|
|
257
352
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-server.js","sourceRoot":"","sources":["../../src/lib/proxy-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proxy-server.js","sourceRoot":"","sources":["../../src/lib/proxy-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,12 @@ export declare class QwickBrainClient {
|
|
|
19
19
|
private getMemoryMCP;
|
|
20
20
|
private getMemoryHTTP;
|
|
21
21
|
healthCheck(): Promise<boolean>;
|
|
22
|
+
listTools(): Promise<Array<{
|
|
23
|
+
name: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
inputSchema?: unknown;
|
|
26
|
+
}>>;
|
|
27
|
+
callTool(name: string, args?: Record<string, unknown>): Promise<unknown>;
|
|
22
28
|
disconnect(): Promise<void>;
|
|
23
29
|
}
|
|
24
30
|
//# sourceMappingURL=qwickbrain-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwickbrain-client.d.ts","sourceRoot":"","sources":["../../src/lib/qwickbrain-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA8BjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC;IAKlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAShB,UAAU;YAuBV,UAAU;IAsBlB,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC;YAQhB,cAAc;YA4Bd,eAAe;IA0BvB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAQ9D,YAAY;YA0BZ,aAAa;IAyBrB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"qwickbrain-client.d.ts","sourceRoot":"","sources":["../../src/lib/qwickbrain-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA8BjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC;IAKlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAShB,UAAU;YAuBV,UAAU;IAsBlB,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC;YAQhB,cAAc;YA4Bd,eAAe;IA0BvB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAQ9D,YAAY;YA0BZ,aAAa;IAyBrB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IA2B/B,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAyB1F,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BxE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAOlC"}
|
|
@@ -167,7 +167,8 @@ export class QwickBrainClient {
|
|
|
167
167
|
if (this.mode === 'mcp' || this.mode === 'sse') {
|
|
168
168
|
// For MCP/SSE mode, check if client is connected
|
|
169
169
|
if (!this.client) {
|
|
170
|
-
|
|
170
|
+
// Don't create new connection in health check - just return false
|
|
171
|
+
return false;
|
|
171
172
|
}
|
|
172
173
|
// Try listing tools as health check
|
|
173
174
|
await this.client.listTools();
|
|
@@ -183,9 +184,68 @@ export class QwickBrainClient {
|
|
|
183
184
|
}
|
|
184
185
|
}
|
|
185
186
|
catch (error) {
|
|
187
|
+
// Connection dropped - clear client to force reconnection
|
|
188
|
+
this.client = null;
|
|
189
|
+
this.transport = null;
|
|
186
190
|
return false;
|
|
187
191
|
}
|
|
188
192
|
}
|
|
193
|
+
async listTools() {
|
|
194
|
+
if (this.mode === 'mcp' || this.mode === 'sse') {
|
|
195
|
+
if (!this.client) {
|
|
196
|
+
throw new Error('MCP client not connected');
|
|
197
|
+
}
|
|
198
|
+
const result = await this.client.listTools();
|
|
199
|
+
return result.tools;
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
// For HTTP mode, fetch tools from API
|
|
203
|
+
if (!this.config.url) {
|
|
204
|
+
throw new Error('HTTP mode requires url to be configured');
|
|
205
|
+
}
|
|
206
|
+
const response = await fetch(`${this.config.url}/mcp/tools`, {
|
|
207
|
+
headers: {
|
|
208
|
+
...(this.config.apiKey && { 'Authorization': `Bearer ${this.config.apiKey}` }),
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
if (!response.ok) {
|
|
212
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
213
|
+
}
|
|
214
|
+
const json = await response.json();
|
|
215
|
+
return json.tools;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
async callTool(name, args) {
|
|
219
|
+
if (this.mode === 'mcp' || this.mode === 'sse') {
|
|
220
|
+
if (!this.client) {
|
|
221
|
+
throw new Error('MCP client not connected');
|
|
222
|
+
}
|
|
223
|
+
const result = await this.client.callTool({
|
|
224
|
+
name,
|
|
225
|
+
arguments: args || {},
|
|
226
|
+
});
|
|
227
|
+
// Return the raw result - let the caller parse it
|
|
228
|
+
return result;
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
// For HTTP mode, call tool via API
|
|
232
|
+
if (!this.config.url) {
|
|
233
|
+
throw new Error('HTTP mode requires url to be configured');
|
|
234
|
+
}
|
|
235
|
+
const response = await fetch(`${this.config.url}/mcp/tool`, {
|
|
236
|
+
method: 'POST',
|
|
237
|
+
headers: {
|
|
238
|
+
'Content-Type': 'application/json',
|
|
239
|
+
...(this.config.apiKey && { 'Authorization': `Bearer ${this.config.apiKey}` }),
|
|
240
|
+
},
|
|
241
|
+
body: JSON.stringify({ name, arguments: args || {} }),
|
|
242
|
+
});
|
|
243
|
+
if (!response.ok) {
|
|
244
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
245
|
+
}
|
|
246
|
+
return response.json();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
189
249
|
async disconnect() {
|
|
190
250
|
if ((this.mode === 'mcp' || this.mode === 'sse') && this.client && this.transport) {
|
|
191
251
|
await this.client.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwickbrain-client.js","sourceRoot":"","sources":["../../src/lib/qwickbrain-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"qwickbrain-client.js","sourceRoot":"","sources":["../../src/lib/qwickbrain-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/bin/cli.ts
CHANGED
package/src/db/client.ts
CHANGED
|
@@ -2,9 +2,10 @@ import Database from 'better-sqlite3';
|
|
|
2
2
|
import { drizzle } from 'drizzle-orm/better-sqlite3';
|
|
3
3
|
import { migrate } from 'drizzle-orm/better-sqlite3/migrator';
|
|
4
4
|
import * as schema from './schema.js';
|
|
5
|
-
import { join } from 'path';
|
|
5
|
+
import { join, dirname } from 'path';
|
|
6
6
|
import { homedir } from 'os';
|
|
7
7
|
import { mkdirSync } from 'fs';
|
|
8
|
+
import { fileURLToPath } from 'url';
|
|
8
9
|
|
|
9
10
|
const DEFAULT_CACHE_DIR = join(homedir(), '.qwickbrain', 'cache');
|
|
10
11
|
|
|
@@ -28,7 +29,11 @@ export function createDatabase(cacheDir: string = DEFAULT_CACHE_DIR): {
|
|
|
28
29
|
|
|
29
30
|
export function runMigrations(db: ReturnType<typeof drizzle>) {
|
|
30
31
|
// Drizzle will look for migrations in drizzle/ directory
|
|
31
|
-
|
|
32
|
+
// Use absolute path relative to package installation
|
|
33
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
34
|
+
const __dirname = dirname(__filename);
|
|
35
|
+
const migrationsFolder = join(__dirname, '../../drizzle');
|
|
36
|
+
migrate(db, { migrationsFolder });
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
export type DB = ReturnType<typeof createDatabase>['db'];
|
|
@@ -34,7 +34,10 @@ export class ConnectionManager extends EventEmitter {
|
|
|
34
34
|
|
|
35
35
|
async start(): Promise<void> {
|
|
36
36
|
this.isStopped = false;
|
|
37
|
-
|
|
37
|
+
// Start health check in background (don't block server startup)
|
|
38
|
+
this.healthCheck().catch(err => {
|
|
39
|
+
console.error('Initial health check error:', err);
|
|
40
|
+
});
|
|
38
41
|
this.scheduleHealthCheck();
|
|
39
42
|
}
|
|
40
43
|
|
package/src/lib/proxy-server.ts
CHANGED
|
@@ -57,6 +57,10 @@ export class ProxyServer {
|
|
|
57
57
|
|
|
58
58
|
this.connectionManager.on('connected', ({ latencyMs }) => {
|
|
59
59
|
console.error(`Connected to QwickBrain (latency: ${latencyMs}ms)`);
|
|
60
|
+
// Event-driven: trigger background sync when connection restored
|
|
61
|
+
this.onConnectionRestored().catch(err => {
|
|
62
|
+
console.error('Background sync error:', err);
|
|
63
|
+
});
|
|
60
64
|
});
|
|
61
65
|
|
|
62
66
|
this.connectionManager.on('disconnected', ({ error }) => {
|
|
@@ -64,47 +68,84 @@ export class ProxyServer {
|
|
|
64
68
|
});
|
|
65
69
|
}
|
|
66
70
|
|
|
71
|
+
private async onConnectionRestored(): Promise<void> {
|
|
72
|
+
console.error('Starting background cache sync...');
|
|
73
|
+
|
|
74
|
+
// Preload critical documents in background
|
|
75
|
+
const preloadItems = this.config.cache.preload || [];
|
|
76
|
+
for (const itemType of preloadItems) {
|
|
77
|
+
try {
|
|
78
|
+
if (itemType === 'workflows') {
|
|
79
|
+
// TODO: List and cache all workflows
|
|
80
|
+
console.error('Preloading workflows...');
|
|
81
|
+
} else if (itemType === 'rules') {
|
|
82
|
+
// TODO: List and cache all rules
|
|
83
|
+
console.error('Preloading rules...');
|
|
84
|
+
}
|
|
85
|
+
} catch (error) {
|
|
86
|
+
console.error(`Failed to preload ${itemType}:`, error);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
console.error('Background cache sync complete');
|
|
91
|
+
}
|
|
92
|
+
|
|
67
93
|
private setupHandlers(): void {
|
|
68
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () =>
|
|
69
|
-
tools
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
94
|
+
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
95
|
+
// Try to fetch tools from upstream if connected
|
|
96
|
+
if (this.connectionManager.getState() === 'connected') {
|
|
97
|
+
try {
|
|
98
|
+
const tools = await this.connectionManager.execute(async () => {
|
|
99
|
+
return await this.qwickbrainClient.listTools();
|
|
100
|
+
});
|
|
101
|
+
return { tools };
|
|
102
|
+
} catch (error) {
|
|
103
|
+
console.error('Failed to list tools from upstream:', error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Fallback to minimal tool set when offline or error
|
|
108
|
+
return {
|
|
109
|
+
tools: [
|
|
110
|
+
{
|
|
111
|
+
name: 'get_workflow',
|
|
112
|
+
description: 'Get a workflow definition by name (cached)',
|
|
113
|
+
inputSchema: {
|
|
114
|
+
type: 'object',
|
|
115
|
+
properties: {
|
|
116
|
+
name: { type: 'string', description: 'Workflow name' },
|
|
117
|
+
},
|
|
118
|
+
required: ['name'],
|
|
77
119
|
},
|
|
78
|
-
required: ['name'],
|
|
79
120
|
},
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
121
|
+
{
|
|
122
|
+
name: 'get_document',
|
|
123
|
+
description: 'Get a document by name and type (cached)',
|
|
124
|
+
inputSchema: {
|
|
125
|
+
type: 'object',
|
|
126
|
+
properties: {
|
|
127
|
+
name: { type: 'string', description: 'Document name' },
|
|
128
|
+
doc_type: { type: 'string', description: 'Document type (rule, frd, design, etc.)' },
|
|
129
|
+
project: { type: 'string', description: 'Project name (optional)' },
|
|
130
|
+
},
|
|
131
|
+
required: ['name', 'doc_type'],
|
|
90
132
|
},
|
|
91
|
-
required: ['name', 'doc_type'],
|
|
92
133
|
},
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
134
|
+
{
|
|
135
|
+
name: 'get_memory',
|
|
136
|
+
description: 'Get a memory/context document by name (cached)',
|
|
137
|
+
inputSchema: {
|
|
138
|
+
type: 'object',
|
|
139
|
+
properties: {
|
|
140
|
+
name: { type: 'string', description: 'Memory name' },
|
|
141
|
+
project: { type: 'string', description: 'Project name (optional)' },
|
|
142
|
+
},
|
|
143
|
+
required: ['name'],
|
|
102
144
|
},
|
|
103
|
-
required: ['name'],
|
|
104
145
|
},
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
})
|
|
146
|
+
],
|
|
147
|
+
};
|
|
148
|
+
});
|
|
108
149
|
|
|
109
150
|
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
110
151
|
const { name, arguments: args } = request.params;
|
|
@@ -112,6 +153,7 @@ export class ProxyServer {
|
|
|
112
153
|
try {
|
|
113
154
|
let result: MCPResponse;
|
|
114
155
|
|
|
156
|
+
// Handle cacheable document tools specially
|
|
115
157
|
switch (name) {
|
|
116
158
|
case 'get_workflow':
|
|
117
159
|
result = await this.handleGetWorkflow(args?.name as string);
|
|
@@ -130,7 +172,9 @@ export class ProxyServer {
|
|
|
130
172
|
);
|
|
131
173
|
break;
|
|
132
174
|
default:
|
|
133
|
-
|
|
175
|
+
// Generic forwarding for all other tools (analyze_repository, search_codebase, etc.)
|
|
176
|
+
result = await this.handleGenericTool(name, args || {});
|
|
177
|
+
break;
|
|
134
178
|
}
|
|
135
179
|
|
|
136
180
|
return {
|
|
@@ -292,6 +336,57 @@ export class ProxyServer {
|
|
|
292
336
|
};
|
|
293
337
|
}
|
|
294
338
|
|
|
339
|
+
private async handleGenericTool(name: string, args: Record<string, unknown>): Promise<MCPResponse> {
|
|
340
|
+
// Generic tool forwarding - no caching for non-document tools
|
|
341
|
+
if (this.connectionManager.getState() !== 'connected') {
|
|
342
|
+
return {
|
|
343
|
+
error: {
|
|
344
|
+
code: 'UNAVAILABLE',
|
|
345
|
+
message: `QwickBrain unavailable - cannot call tool: ${name}`,
|
|
346
|
+
suggestions: [
|
|
347
|
+
'Check internet connection',
|
|
348
|
+
'Wait for automatic reconnection',
|
|
349
|
+
],
|
|
350
|
+
},
|
|
351
|
+
_metadata: this.createMetadata('cache'),
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
try {
|
|
356
|
+
const result = await this.connectionManager.execute(async () => {
|
|
357
|
+
return await this.qwickbrainClient.callTool(name, args);
|
|
358
|
+
});
|
|
359
|
+
|
|
360
|
+
// Parse the MCP response format
|
|
361
|
+
if (result && typeof result === 'object' && 'content' in result) {
|
|
362
|
+
const content = (result as any).content;
|
|
363
|
+
if (Array.isArray(content) && content[0]?.type === 'text') {
|
|
364
|
+
// Parse the text content as JSON
|
|
365
|
+
const data = JSON.parse(content[0].text);
|
|
366
|
+
return {
|
|
367
|
+
data,
|
|
368
|
+
_metadata: this.createMetadata('live'),
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// Fallback: return raw result
|
|
374
|
+
return {
|
|
375
|
+
data: result,
|
|
376
|
+
_metadata: this.createMetadata('live'),
|
|
377
|
+
};
|
|
378
|
+
} catch (error) {
|
|
379
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
380
|
+
return {
|
|
381
|
+
error: {
|
|
382
|
+
code: 'TOOL_ERROR',
|
|
383
|
+
message: `Tool call failed: ${errorMessage}`,
|
|
384
|
+
},
|
|
385
|
+
_metadata: this.createMetadata('cache'),
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
295
390
|
async start(): Promise<void> {
|
|
296
391
|
// Clean up expired cache entries on startup
|
|
297
392
|
const { documentsDeleted, memoriesDeleted } = await this.cacheManager.cleanupExpiredEntries();
|
|
@@ -299,10 +394,7 @@ export class ProxyServer {
|
|
|
299
394
|
console.error(`Cache cleanup: removed ${documentsDeleted} documents, ${memoriesDeleted} memories`);
|
|
300
395
|
}
|
|
301
396
|
|
|
302
|
-
//
|
|
303
|
-
await this.qwickbrainClient.connect();
|
|
304
|
-
|
|
305
|
-
// Start connection manager
|
|
397
|
+
// Start connection manager (handles connection gracefully, doesn't throw)
|
|
306
398
|
await this.connectionManager.start();
|
|
307
399
|
|
|
308
400
|
// Start MCP server
|
|
@@ -314,7 +406,12 @@ export class ProxyServer {
|
|
|
314
406
|
|
|
315
407
|
async stop(): Promise<void> {
|
|
316
408
|
this.connectionManager.stop();
|
|
317
|
-
|
|
409
|
+
try {
|
|
410
|
+
await this.qwickbrainClient.disconnect();
|
|
411
|
+
} catch (error) {
|
|
412
|
+
// Ignore disconnect errors (client may never have connected)
|
|
413
|
+
console.error('Disconnect error (ignoring):', error);
|
|
414
|
+
}
|
|
318
415
|
await this.server.close();
|
|
319
416
|
}
|
|
320
417
|
}
|
|
@@ -232,10 +232,11 @@ export class QwickBrainClient {
|
|
|
232
232
|
if (this.mode === 'mcp' || this.mode === 'sse') {
|
|
233
233
|
// For MCP/SSE mode, check if client is connected
|
|
234
234
|
if (!this.client) {
|
|
235
|
-
|
|
235
|
+
// Don't create new connection in health check - just return false
|
|
236
|
+
return false;
|
|
236
237
|
}
|
|
237
238
|
// Try listing tools as health check
|
|
238
|
-
await this.client
|
|
239
|
+
await this.client.listTools();
|
|
239
240
|
return true;
|
|
240
241
|
} else {
|
|
241
242
|
// For HTTP mode, ping health endpoint
|
|
@@ -246,10 +247,69 @@ export class QwickBrainClient {
|
|
|
246
247
|
return response.ok;
|
|
247
248
|
}
|
|
248
249
|
} catch (error) {
|
|
250
|
+
// Connection dropped - clear client to force reconnection
|
|
251
|
+
this.client = null;
|
|
252
|
+
this.transport = null;
|
|
249
253
|
return false;
|
|
250
254
|
}
|
|
251
255
|
}
|
|
252
256
|
|
|
257
|
+
async listTools(): Promise<Array<{ name: string; description?: string; inputSchema?: unknown }>> {
|
|
258
|
+
if (this.mode === 'mcp' || this.mode === 'sse') {
|
|
259
|
+
if (!this.client) {
|
|
260
|
+
throw new Error('MCP client not connected');
|
|
261
|
+
}
|
|
262
|
+
const result = await this.client.listTools();
|
|
263
|
+
return result.tools;
|
|
264
|
+
} else {
|
|
265
|
+
// For HTTP mode, fetch tools from API
|
|
266
|
+
if (!this.config.url) {
|
|
267
|
+
throw new Error('HTTP mode requires url to be configured');
|
|
268
|
+
}
|
|
269
|
+
const response = await fetch(`${this.config.url}/mcp/tools`, {
|
|
270
|
+
headers: {
|
|
271
|
+
...(this.config.apiKey && { 'Authorization': `Bearer ${this.config.apiKey}` }),
|
|
272
|
+
},
|
|
273
|
+
});
|
|
274
|
+
if (!response.ok) {
|
|
275
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
276
|
+
}
|
|
277
|
+
const json = await response.json() as { tools: Array<{ name: string; description?: string; inputSchema?: unknown }> };
|
|
278
|
+
return json.tools;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
async callTool(name: string, args?: Record<string, unknown>): Promise<unknown> {
|
|
283
|
+
if (this.mode === 'mcp' || this.mode === 'sse') {
|
|
284
|
+
if (!this.client) {
|
|
285
|
+
throw new Error('MCP client not connected');
|
|
286
|
+
}
|
|
287
|
+
const result = await this.client.callTool({
|
|
288
|
+
name,
|
|
289
|
+
arguments: args || {},
|
|
290
|
+
});
|
|
291
|
+
// Return the raw result - let the caller parse it
|
|
292
|
+
return result;
|
|
293
|
+
} else {
|
|
294
|
+
// For HTTP mode, call tool via API
|
|
295
|
+
if (!this.config.url) {
|
|
296
|
+
throw new Error('HTTP mode requires url to be configured');
|
|
297
|
+
}
|
|
298
|
+
const response = await fetch(`${this.config.url}/mcp/tool`, {
|
|
299
|
+
method: 'POST',
|
|
300
|
+
headers: {
|
|
301
|
+
'Content-Type': 'application/json',
|
|
302
|
+
...(this.config.apiKey && { 'Authorization': `Bearer ${this.config.apiKey}` }),
|
|
303
|
+
},
|
|
304
|
+
body: JSON.stringify({ name, arguments: args || {} }),
|
|
305
|
+
});
|
|
306
|
+
if (!response.ok) {
|
|
307
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
308
|
+
}
|
|
309
|
+
return response.json();
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
253
313
|
async disconnect(): Promise<void> {
|
|
254
314
|
if ((this.mode === 'mcp' || this.mode === 'sse') && this.client && this.transport) {
|
|
255
315
|
await this.client.close();
|