bikky 0.3.12 → 0.4.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/CONTRIBUTING.md +206 -0
- package/README.md +116 -154
- package/dist/config.d.ts +49 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +125 -4
- package/dist/config.js.map +1 -1
- package/dist/daemon/extraction.d.ts.map +1 -1
- package/dist/daemon/extraction.js +24 -19
- package/dist/daemon/extraction.js.map +1 -1
- package/dist/daemon/loop.d.ts.map +1 -1
- package/dist/daemon/loop.js +15 -1
- package/dist/daemon/loop.js.map +1 -1
- package/dist/daemon/qdrant.d.ts.map +1 -1
- package/dist/daemon/qdrant.js +0 -1
- package/dist/daemon/qdrant.js.map +1 -1
- package/dist/lib/qdrant-pool.d.ts +57 -0
- package/dist/lib/qdrant-pool.d.ts.map +1 -0
- package/dist/lib/qdrant-pool.js +104 -0
- package/dist/lib/qdrant-pool.js.map +1 -0
- package/dist/mcp/api.d.ts +56 -19
- package/dist/mcp/api.d.ts.map +1 -1
- package/dist/mcp/api.js +133 -72
- package/dist/mcp/api.js.map +1 -1
- package/dist/mcp/helpers.d.ts +0 -1
- package/dist/mcp/helpers.d.ts.map +1 -1
- package/dist/mcp/helpers.js +2 -15
- package/dist/mcp/helpers.js.map +1 -1
- package/dist/mcp/helpers.test.js +3 -21
- package/dist/mcp/helpers.test.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +29 -14
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +0 -7
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +337 -219
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/types.d.ts +0 -3
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/routing.d.ts +53 -0
- package/dist/routing.d.ts.map +1 -0
- package/dist/routing.js +129 -0
- package/dist/routing.js.map +1 -0
- package/dist/routing.test.d.ts +2 -0
- package/dist/routing.test.d.ts.map +1 -0
- package/dist/routing.test.js +79 -0
- package/dist/routing.test.js.map +1 -0
- package/docs/config/fully-hosted.md +57 -0
- package/docs/config/hosted-models.md +50 -0
- package/docs/config/hosted-qdrant-local-models.md +39 -0
- package/docs/config/local.md +34 -0
- package/docs/configuration.md +374 -0
- package/docs/screenshots/dashboard.png +0 -0
- package/docs/screenshots/graph.png +0 -0
- package/docs/screenshots/memory.png +0 -0
- package/package.json +7 -4
- package/dist/mcp/api.test.d.ts +0 -6
- package/dist/mcp/api.test.d.ts.map +0 -1
- package/dist/mcp/api.test.js +0 -130
- package/dist/mcp/api.test.js.map +0 -1
- package/dist/mcp/tools.integration.itest.d.ts +0 -23
- package/dist/mcp/tools.integration.itest.d.ts.map +0 -1
- package/dist/mcp/tools.integration.itest.js +0 -171
- package/dist/mcp/tools.integration.itest.js.map +0 -1
- package/dist/mcp/tools.test.d.ts +0 -16
- package/dist/mcp/tools.test.d.ts.map +0 -1
- package/dist/mcp/tools.test.js +0 -908
- package/dist/mcp/tools.test.js.map +0 -1
package/dist/mcp/index.js
CHANGED
|
@@ -14,18 +14,12 @@
|
|
|
14
14
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
15
15
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
16
16
|
import { QDRANT_INDEXES } from "./taxonomy.js";
|
|
17
|
-
import { log,
|
|
17
|
+
import { log, rebuildPool, hasPool, setReady, setSetupError, ensureCollectionsAll, initEmbedding, } from "./api.js";
|
|
18
18
|
import { registerTools } from "./tools.js";
|
|
19
|
-
import { loadConfig } from "../config.js";
|
|
19
|
+
import { loadConfig, getEffectiveDestinations } from "../config.js";
|
|
20
20
|
export async function startMcpServer() {
|
|
21
21
|
log("INFO", `Starting bikky MCP server (PID ${process.pid})`);
|
|
22
22
|
const cfg = loadConfig();
|
|
23
|
-
// Resolve credentials from config (which already merges env vars)
|
|
24
|
-
const qUrl = cfg.qdrant_url?.replace(/\/+$/, "") || null;
|
|
25
|
-
const qKey = cfg.qdrant_api_key || null;
|
|
26
|
-
setQdrantUrl(qUrl);
|
|
27
|
-
setQdrantApiKey(qKey);
|
|
28
|
-
setCollection(cfg.collection);
|
|
29
23
|
// Initialize embedding provider — wrapped so an unknown provider name or
|
|
30
24
|
// misconfiguration produces a setup_required status instead of crashing the
|
|
31
25
|
// MCP stdio transport. The server always comes up; tools degrade via
|
|
@@ -50,20 +44,41 @@ export async function startMcpServer() {
|
|
|
50
44
|
log("ERROR", `Embedding init failed: ${msg}`);
|
|
51
45
|
// Continue — server will report setup_required for memory tools.
|
|
52
46
|
}
|
|
53
|
-
|
|
47
|
+
// Build the destination pool from config. Each destination is its own
|
|
48
|
+
// QdrantClient; missing destinations leave the server in setup_required.
|
|
49
|
+
try {
|
|
50
|
+
rebuildPool();
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
54
|
+
setSetupError(`Destination pool init failed: ${msg}`);
|
|
55
|
+
log("ERROR", `Destination pool init failed: ${msg}`);
|
|
56
|
+
}
|
|
57
|
+
if (hasPool()) {
|
|
54
58
|
try {
|
|
55
|
-
await
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
const results = await ensureCollectionsAll(QDRANT_INDEXES);
|
|
60
|
+
const ok = results.filter((r) => r.ok);
|
|
61
|
+
const failed = results.filter((r) => !r.ok);
|
|
62
|
+
for (const r of ok) {
|
|
63
|
+
log("INFO", `Destination '${r.destination.name}' ready ✓ (${r.destination.collection})`);
|
|
64
|
+
}
|
|
65
|
+
for (const r of failed) {
|
|
66
|
+
log("ERROR", `Destination '${r.destination.name}' failed: ${r.error}`);
|
|
67
|
+
}
|
|
68
|
+
setReady(ok.length > 0);
|
|
69
|
+
if (failed.length > 0 && ok.length === 0) {
|
|
70
|
+
setSetupError(`All destinations failed to initialize. First error: ${failed[0]?.error ?? "(none)"}`);
|
|
71
|
+
}
|
|
58
72
|
}
|
|
59
73
|
catch (e) {
|
|
60
74
|
const msg = e instanceof Error ? e.message : String(e);
|
|
61
75
|
setSetupError(`Qdrant initialization failed: ${msg}`);
|
|
62
|
-
log("ERROR", `Failed to initialize
|
|
76
|
+
log("ERROR", `Failed to initialize collections: ${msg}`);
|
|
63
77
|
}
|
|
64
78
|
}
|
|
65
79
|
else {
|
|
66
|
-
|
|
80
|
+
const dests = getEffectiveDestinations(cfg);
|
|
81
|
+
log("INFO", `Memory not configured — no destinations (got ${dests.length}). Use get_setup_status + configure_credentials.`);
|
|
67
82
|
}
|
|
68
83
|
const mcp = new McpServer({
|
|
69
84
|
name: "bikky",
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,GAAG,EACH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools.d.ts
CHANGED
|
@@ -2,12 +2,5 @@
|
|
|
2
2
|
* MCP tool definitions for memory.
|
|
3
3
|
*/
|
|
4
4
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
|
-
interface WorkspaceScope {
|
|
6
|
-
workspaceId?: string;
|
|
7
|
-
actorId?: string;
|
|
8
|
-
includeLegacy: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare function resolveScope(workspaceId?: string, includeLegacyWorkspace?: boolean, actorId?: string): WorkspaceScope;
|
|
11
5
|
export declare function registerTools(mcp: McpServer): void;
|
|
12
|
-
export {};
|
|
13
6
|
//# sourceMappingURL=tools.d.ts.map
|
package/dist/mcp/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsSzE,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAujDlD"}
|