@copilotkit/pathfinder 1.1.0 → 1.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/CHANGELOG.md +19 -1
- package/README.md +61 -249
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +60 -0
- package/dist/cli.js.map +1 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +3 -1
- package/dist/db/client.js.map +1 -1
- package/dist/db/queries.d.ts +14 -3
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +46 -45
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.d.ts +5 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +11 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/index.js +2 -362
- package/dist/index.js.map +1 -1
- package/dist/indexing/chunking/html.d.ts +7 -0
- package/dist/indexing/chunking/html.d.ts.map +1 -0
- package/dist/indexing/chunking/html.js +356 -0
- package/dist/indexing/chunking/html.js.map +1 -0
- package/dist/indexing/chunking/index.js +2 -0
- package/dist/indexing/chunking/index.js.map +1 -1
- package/dist/indexing/orchestrator.d.ts +1 -0
- package/dist/indexing/orchestrator.d.ts.map +1 -1
- package/dist/indexing/orchestrator.js +27 -2
- package/dist/indexing/orchestrator.js.map +1 -1
- package/dist/indexing/source-indexer.d.ts.map +1 -1
- package/dist/indexing/source-indexer.js +1 -0
- package/dist/indexing/source-indexer.js.map +1 -1
- package/dist/ip-limiter.d.ts +11 -0
- package/dist/ip-limiter.d.ts.map +1 -0
- package/dist/ip-limiter.js +40 -0
- package/dist/ip-limiter.js.map +1 -0
- package/dist/llms-txt.d.ts +11 -0
- package/dist/llms-txt.d.ts.map +1 -0
- package/dist/llms-txt.js +43 -0
- package/dist/llms-txt.js.map +1 -0
- package/dist/mcp/server.d.ts +3 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +5 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/bash.d.ts +8 -0
- package/dist/mcp/tools/bash.d.ts.map +1 -1
- package/dist/mcp/tools/bash.js +59 -0
- package/dist/mcp/tools/bash.js.map +1 -1
- package/dist/mcp/tools/search.d.ts.map +1 -1
- package/dist/mcp/tools/search.js +11 -3
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/server.d.ts +6 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +492 -0
- package/dist/server.js.map +1 -0
- package/dist/skill-md.d.ts +3 -0
- package/dist/skill-md.d.ts.map +1 -0
- package/dist/skill-md.js +75 -0
- package/dist/skill-md.js.map +1 -0
- package/dist/types.d.ts +56 -18
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -3
- package/dist/types.js.map +1 -1
- package/dist/workspace.d.ts +13 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +118 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +14 -2
- package/pathfinder-docs.yaml +54 -0
- package/pathfinder.example.yaml +48 -0
- package/.superpowers/brainstorm/47098-1775507869/content/homepage-mockup.html +0 -324
- package/.superpowers/brainstorm/47098-1775507869/state/server-stopped +0 -1
- package/.superpowers/brainstorm/47098-1775507869/state/server.log +0 -13
- package/.superpowers/brainstorm/47098-1775507869/state/server.pid +0 -1
- package/.superpowers/brainstorm/82141-1775511032/content/migration-v2.html +0 -340
- package/.superpowers/brainstorm/82141-1775511032/content/migration.html +0 -340
- package/.superpowers/brainstorm/82141-1775511032/state/server-stopped +0 -1
- package/.superpowers/brainstorm/82141-1775511032/state/server.log +0 -4
- package/.superpowers/brainstorm/82141-1775511032/state/server.pid +0 -1
package/dist/db/queries.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,SAAmB,EACnB,KAAa,EACb,UAAmB;
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"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"}
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -8,4 +8,9 @@ export declare function generateSchema(dimensions: number): string;
|
|
|
8
8
|
* Safe to run even if they don't exist (IF EXISTS).
|
|
9
9
|
*/
|
|
10
10
|
export declare function generateMigration(): string;
|
|
11
|
+
/**
|
|
12
|
+
* Generate post-schema migration SQL for columns added after initial release.
|
|
13
|
+
* Safe to run repeatedly — uses IF NOT EXISTS / ADD COLUMN IF NOT EXISTS.
|
|
14
|
+
*/
|
|
15
|
+
export declare function generatePostSchemaMigration(): string;
|
|
11
16
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA8CzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAK1C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAKpD"}
|
package/dist/db/schema.js
CHANGED
|
@@ -24,6 +24,7 @@ CREATE TABLE IF NOT EXISTS chunks (
|
|
|
24
24
|
metadata JSONB NOT NULL DEFAULT '{}',
|
|
25
25
|
indexed_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
26
26
|
commit_sha TEXT,
|
|
27
|
+
version TEXT,
|
|
27
28
|
CONSTRAINT chunks_source_file_chunk_uniq UNIQUE (source_name, file_path, chunk_index)
|
|
28
29
|
);
|
|
29
30
|
|
|
@@ -60,4 +61,14 @@ DROP TABLE IF EXISTS doc_chunks CASCADE;
|
|
|
60
61
|
DROP TABLE IF EXISTS code_chunks CASCADE;
|
|
61
62
|
`;
|
|
62
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Generate post-schema migration SQL for columns added after initial release.
|
|
66
|
+
* Safe to run repeatedly — uses IF NOT EXISTS / ADD COLUMN IF NOT EXISTS.
|
|
67
|
+
*/
|
|
68
|
+
export function generatePostSchemaMigration() {
|
|
69
|
+
return `
|
|
70
|
+
ALTER TABLE chunks ADD COLUMN IF NOT EXISTS version TEXT;
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_version ON chunks (version);
|
|
72
|
+
`;
|
|
73
|
+
}
|
|
63
74
|
//# sourceMappingURL=schema.js.map
|
package/dist/db/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,2CAA2C;AAE3C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC7C,OAAO;;;;;;;;;6BASkB,UAAU
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,2CAA2C;AAE3C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC7C,OAAO;;;;;;;;;6BASkB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCtC,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC7B,OAAO;;;CAGV,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IACvC,OAAO;;;CAGV,CAAC;AACF,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,366 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import { randomUUID } from "node:crypto";
|
|
4
|
-
import { Bash } from "just-bash";
|
|
5
|
-
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
6
|
-
import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
|
|
7
|
-
import { createMcpServer } from "./mcp/server.js";
|
|
8
|
-
import { buildBashFilesMap, rebuildBashInstance } from "./mcp/tools/bash-fs.js";
|
|
9
|
-
import { initializeSchema, closePool } from "./db/client.js";
|
|
10
|
-
import { getIndexStats } from "./db/queries.js";
|
|
11
|
-
import { getConfig, getServerConfig, hasSearchTools, hasCollectTools, hasBashSemanticSearch } from "./config.js";
|
|
12
|
-
import { IndexingOrchestrator } from "./indexing/orchestrator.js";
|
|
13
|
-
import { createWebhookHandler } from "./webhooks/github.js";
|
|
14
|
-
import { SessionStateManager } from "./mcp/tools/bash-session.js";
|
|
15
|
-
const app = express();
|
|
16
|
-
app.use(cors({
|
|
17
|
-
origin: "*",
|
|
18
|
-
exposedHeaders: ["Mcp-Session-Id"],
|
|
19
|
-
}));
|
|
20
|
-
// ---------------------------------------------------------------------------
|
|
21
|
-
// Webhook endpoint — registered BEFORE express.json() so the handler receives
|
|
22
|
-
// a raw Buffer for HMAC signature verification.
|
|
23
|
-
//
|
|
24
|
-
// The handler is wired to the real orchestrator during start(). Until then,
|
|
25
|
-
// requests receive 503 (server still initializing).
|
|
26
|
-
// ---------------------------------------------------------------------------
|
|
27
|
-
let webhookHandler = null;
|
|
28
|
-
let orchestratorRef = null;
|
|
29
|
-
const startedAt = new Date();
|
|
30
|
-
const bashInstances = new Map();
|
|
31
|
-
const sessionStateManager = new SessionStateManager();
|
|
32
|
-
async function refreshBashInstances(sourceNames) {
|
|
33
|
-
const serverCfg = getServerConfig();
|
|
34
|
-
const bashTools = serverCfg.tools.filter(t => t.type === 'bash');
|
|
35
|
-
const searchToolNames = serverCfg.tools.filter(t => t.type === 'search').map(t => t.name);
|
|
36
|
-
for (const tool of bashTools) {
|
|
37
|
-
const affected = tool.sources.some(s => sourceNames.includes(s));
|
|
38
|
-
if (!affected)
|
|
39
|
-
continue;
|
|
40
|
-
const toolSources = serverCfg.sources.filter(s => tool.sources.includes(s.name));
|
|
41
|
-
const virtualFiles = tool.bash?.virtual_files === true;
|
|
42
|
-
const { bash, fileCount } = await rebuildBashInstance(toolSources, {
|
|
43
|
-
virtualFiles,
|
|
44
|
-
searchToolNames: virtualFiles ? searchToolNames : undefined,
|
|
45
|
-
cloneDir: getConfig().cloneDir,
|
|
46
|
-
});
|
|
47
|
-
bashInstances.set(tool.name, bash);
|
|
48
|
-
console.log(`[webhook] Refreshed bash tool "${tool.name}": ${fileCount} files`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
app.post("/webhooks/github", express.raw({ type: "application/json" }), async (req, res) => {
|
|
52
|
-
const handler = webhookHandler;
|
|
53
|
-
if (!handler) {
|
|
54
|
-
res.status(503).json({ error: "Server still initializing" });
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
try {
|
|
58
|
-
await handler(req, res);
|
|
59
|
-
// Schedule bash refresh after reindexing. The orchestrator runs async,
|
|
60
|
-
// so we use a delay heuristic — TODO: replace with event-based notification.
|
|
61
|
-
const serverCfg = getServerConfig();
|
|
62
|
-
const bashTools = serverCfg.tools.filter(t => t.type === 'bash');
|
|
63
|
-
if (bashTools.length > 0) {
|
|
64
|
-
const REFRESH_DELAY_MS = 30_000;
|
|
65
|
-
setTimeout(() => {
|
|
66
|
-
refreshBashInstances(serverCfg.sources.map(s => s.name)).catch(err => console.error('[webhook] Bash refresh failed:', err));
|
|
67
|
-
}, REFRESH_DELAY_MS);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
catch (err) {
|
|
71
|
-
console.error("[webhook] Handler error:", err);
|
|
72
|
-
if (!res.headersSent) {
|
|
73
|
-
res.status(500).json({ error: "Internal webhook handler error" });
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
// JSON parser for all other routes
|
|
78
|
-
app.use(express.json());
|
|
79
|
-
// ---------------------------------------------------------------------------
|
|
80
|
-
// OAuth discovery stubs — tell MCP clients that no auth is required.
|
|
81
|
-
// Newer Claude Code versions probe these before connecting.
|
|
82
|
-
// ---------------------------------------------------------------------------
|
|
83
|
-
// Return resource metadata with no authorization servers — signals "no auth required"
|
|
84
|
-
// per RFC 9728. Newer Claude Code versions probe this before connecting.
|
|
85
|
-
app.get("/.well-known/oauth-protected-resource", (req, res) => {
|
|
86
|
-
const host = req.headers.host || `localhost:${getConfig().port}`;
|
|
87
|
-
const proto = req.headers["x-forwarded-proto"] || "http";
|
|
88
|
-
res.json({
|
|
89
|
-
resource: `${proto}://${host}`,
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
app.get("/.well-known/oauth-authorization-server", (_req, res) => {
|
|
93
|
-
res.status(404).json({ error: "No authorization server — this resource does not require authentication" });
|
|
94
|
-
});
|
|
95
|
-
app.post("/register", (_req, res) => {
|
|
96
|
-
res.status(404).json({ error: "No authorization server — this resource does not require authentication" });
|
|
97
|
-
});
|
|
98
|
-
// ---------------------------------------------------------------------------
|
|
99
|
-
// MCP endpoint — session-based (initialize once, then tool calls reuse session)
|
|
100
|
-
// ---------------------------------------------------------------------------
|
|
101
|
-
const transports = {};
|
|
102
|
-
const sessionLastActivity = {};
|
|
103
|
-
const SESSION_TTL_MS = 30 * 60 * 1000; // 30 minutes
|
|
104
|
-
// Reap idle sessions every 5 minutes
|
|
105
|
-
setInterval(() => {
|
|
106
|
-
const now = Date.now();
|
|
107
|
-
let reaped = 0;
|
|
108
|
-
for (const sid of Object.keys(sessionLastActivity)) {
|
|
109
|
-
if (now - sessionLastActivity[sid] > SESSION_TTL_MS) {
|
|
110
|
-
delete transports[sid];
|
|
111
|
-
delete sessionLastActivity[sid];
|
|
112
|
-
sessionStateManager.cleanup(sid);
|
|
113
|
-
reaped++;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
if (reaped > 0) {
|
|
117
|
-
console.log(`[mcp] Reaped ${reaped} idle sessions (${Object.keys(transports).length} active)`);
|
|
118
|
-
}
|
|
119
|
-
}, 5 * 60 * 1000);
|
|
120
|
-
function clientIp(req) {
|
|
121
|
-
return req.headers["x-forwarded-for"]?.split(",")[0]?.trim()
|
|
122
|
-
|| req.socket.remoteAddress
|
|
123
|
-
|| "unknown";
|
|
124
|
-
}
|
|
125
|
-
app.post("/mcp", async (req, res) => {
|
|
126
|
-
try {
|
|
127
|
-
const sessionId = req.headers["mcp-session-id"];
|
|
128
|
-
const ip = clientIp(req);
|
|
129
|
-
// Existing session — route to its transport
|
|
130
|
-
if (sessionId && transports[sessionId]) {
|
|
131
|
-
sessionLastActivity[sessionId] = Date.now();
|
|
132
|
-
const method = req.body?.method;
|
|
133
|
-
if (method === 'tools/call') {
|
|
134
|
-
const params = req.body?.params;
|
|
135
|
-
const toolName = params?.name ?? 'unknown';
|
|
136
|
-
const args = params?.arguments;
|
|
137
|
-
const toolCfg = getServerConfig().tools.find(t => t.name === toolName);
|
|
138
|
-
if (toolCfg?.type === 'collect') {
|
|
139
|
-
try {
|
|
140
|
-
const dataPreview = JSON.stringify(args ?? {}).slice(0, 200);
|
|
141
|
-
console.log(`[mcp] ${toolName}(${dataPreview}) [${ip}]`);
|
|
142
|
-
}
|
|
143
|
-
catch {
|
|
144
|
-
console.log(`[mcp] ${toolName}(<unserializable>) [${ip}]`);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
else if (toolCfg?.type === 'bash') {
|
|
148
|
-
const cmd = args?.command ?? '';
|
|
149
|
-
console.log(`[mcp] ${toolName}(${JSON.stringify(cmd).slice(0, 200)}) [${ip}]`);
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
const query = args?.query ?? '';
|
|
153
|
-
const limit = args?.limit;
|
|
154
|
-
const extra = limit ? ` limit=${limit}` : '';
|
|
155
|
-
console.log(`[mcp] ${toolName}("${query}"${extra}) [${ip}]`);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
else if (method === 'tools/list') {
|
|
159
|
-
console.log(`[mcp] tools/list [${ip}]`);
|
|
160
|
-
}
|
|
161
|
-
await transports[sessionId].handleRequest(req, res, req.body);
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
// New session — must be an initialize request
|
|
165
|
-
if (!sessionId && isInitializeRequest(req.body)) {
|
|
166
|
-
const transport = new StreamableHTTPServerTransport({
|
|
167
|
-
sessionIdGenerator: () => randomUUID(),
|
|
168
|
-
onsessioninitialized: (sid) => {
|
|
169
|
-
transports[sid] = transport;
|
|
170
|
-
sessionLastActivity[sid] = Date.now();
|
|
171
|
-
console.log(`[mcp] New session ${sid.slice(0, 8)} (${Object.keys(transports).length} active) [${ip}]`);
|
|
172
|
-
},
|
|
173
|
-
});
|
|
174
|
-
transport.onclose = () => {
|
|
175
|
-
const sid = transport.sessionId;
|
|
176
|
-
if (sid && transports[sid]) {
|
|
177
|
-
delete transports[sid];
|
|
178
|
-
delete sessionLastActivity[sid];
|
|
179
|
-
sessionStateManager.cleanup(sid);
|
|
180
|
-
console.log(`[mcp] Session ${sid.slice(0, 8)} closed (${Object.keys(transports).length} active)`);
|
|
181
|
-
}
|
|
182
|
-
};
|
|
183
|
-
const server = createMcpServer(bashInstances, sessionStateManager, () => transport.sessionId ?? undefined);
|
|
184
|
-
await server.connect(transport);
|
|
185
|
-
await transport.handleRequest(req, res, req.body);
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
// Invalid request
|
|
189
|
-
res.status(400).json({
|
|
190
|
-
jsonrpc: "2.0",
|
|
191
|
-
error: { code: -32000, message: "Bad Request: No valid session. Send an initialize request first." },
|
|
192
|
-
id: null,
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
catch (error) {
|
|
196
|
-
console.error("[MCP] Error handling POST request:", error);
|
|
197
|
-
if (!res.headersSent) {
|
|
198
|
-
res.status(500).json({
|
|
199
|
-
jsonrpc: "2.0",
|
|
200
|
-
error: { code: -32603, message: "Internal server error" },
|
|
201
|
-
id: null,
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
// SSE stream for server-initiated notifications.
|
|
207
|
-
// Returns 405 when no valid session — the SDK interprets this as
|
|
208
|
-
// "server doesn't offer SSE at GET" which is the expected no-auth path.
|
|
209
|
-
// Returning 400 instead would cause the SDK to throw and trigger auth flow.
|
|
210
|
-
app.get("/mcp", async (req, res) => {
|
|
211
|
-
const sessionId = req.headers["mcp-session-id"];
|
|
212
|
-
if (sessionId && transports[sessionId]) {
|
|
213
|
-
await transports[sessionId].handleRequest(req, res);
|
|
214
|
-
}
|
|
215
|
-
else {
|
|
216
|
-
res.status(405).json({
|
|
217
|
-
jsonrpc: "2.0",
|
|
218
|
-
error: { code: -32000, message: "Method Not Allowed" },
|
|
219
|
-
id: null,
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
|
-
// Session termination
|
|
224
|
-
app.delete("/mcp", async (req, res) => {
|
|
225
|
-
const sessionId = req.headers["mcp-session-id"];
|
|
226
|
-
if (sessionId && transports[sessionId]) {
|
|
227
|
-
await transports[sessionId].handleRequest(req, res);
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
res.status(400).json({
|
|
231
|
-
jsonrpc: "2.0",
|
|
232
|
-
error: { code: -32000, message: "Invalid or missing session ID" },
|
|
233
|
-
id: null,
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
// ---------------------------------------------------------------------------
|
|
238
|
-
// Health check
|
|
239
|
-
// ---------------------------------------------------------------------------
|
|
240
|
-
app.get("/health", async (_req, res) => {
|
|
241
|
-
const uptime = Math.floor((Date.now() - startedAt.getTime()) / 1000);
|
|
242
|
-
const needsDb = hasSearchTools() || hasCollectTools() || hasBashSemanticSearch();
|
|
243
|
-
if (!needsDb) {
|
|
244
|
-
res.json({
|
|
245
|
-
status: "ok",
|
|
246
|
-
server: getServerConfig().server.name,
|
|
247
|
-
uptime_seconds: uptime,
|
|
248
|
-
started_at: startedAt.toISOString(),
|
|
249
|
-
indexing: false,
|
|
250
|
-
index: "not_configured",
|
|
251
|
-
});
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
254
|
-
try {
|
|
255
|
-
const stats = await getIndexStats();
|
|
256
|
-
res.json({
|
|
257
|
-
status: "ok",
|
|
258
|
-
server: getServerConfig().server.name,
|
|
259
|
-
uptime_seconds: uptime,
|
|
260
|
-
started_at: startedAt.toISOString(),
|
|
261
|
-
indexing: orchestratorRef?.isIndexing() ?? false,
|
|
262
|
-
index: {
|
|
263
|
-
total_chunks: stats.totalChunks,
|
|
264
|
-
by_source: stats.bySource,
|
|
265
|
-
indexed_repos: stats.indexedRepos,
|
|
266
|
-
sources: stats.indexStates.map((s) => ({
|
|
267
|
-
type: s.source_type,
|
|
268
|
-
key: s.source_key,
|
|
269
|
-
status: s.status,
|
|
270
|
-
last_indexed: s.last_indexed_at,
|
|
271
|
-
commit: s.last_commit_sha?.slice(0, 8) ?? null,
|
|
272
|
-
error: s.error_message ?? null,
|
|
273
|
-
})),
|
|
274
|
-
},
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
catch (err) {
|
|
278
|
-
console.error("[health] Database unavailable:", err);
|
|
279
|
-
res.status(503).json({
|
|
280
|
-
status: "degraded",
|
|
281
|
-
server: getServerConfig().server.name,
|
|
282
|
-
uptime_seconds: uptime,
|
|
283
|
-
started_at: startedAt.toISOString(),
|
|
284
|
-
index: "unavailable",
|
|
285
|
-
error: err instanceof Error ? err.message : String(err),
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
});
|
|
289
|
-
// ---------------------------------------------------------------------------
|
|
290
|
-
// Startup
|
|
291
|
-
// ---------------------------------------------------------------------------
|
|
292
|
-
async function start() {
|
|
293
|
-
const cfg = getConfig();
|
|
294
|
-
const serverCfg = getServerConfig();
|
|
295
|
-
const needsDb = hasSearchTools() || hasCollectTools() || hasBashSemanticSearch();
|
|
296
|
-
if (needsDb) {
|
|
297
|
-
console.log("[startup] Initializing database schema...");
|
|
298
|
-
await initializeSchema();
|
|
299
|
-
console.log("[startup] Database schema ready.");
|
|
300
|
-
}
|
|
301
|
-
// Log active sources from config
|
|
302
|
-
const sourceNames = serverCfg.sources.map(s => `${s.name} (${s.type})`);
|
|
303
|
-
console.log(`[startup] Active sources: ${sourceNames.join(', ')}`);
|
|
304
|
-
// Build shared Bash instances for bash tools. The filesystem is shared;
|
|
305
|
-
// per-session CWD tracking is handled at the tool registration layer.
|
|
306
|
-
const bashTools = serverCfg.tools.filter(t => t.type === 'bash');
|
|
307
|
-
const searchToolNames = serverCfg.tools.filter(t => t.type === 'search').map(t => t.name);
|
|
308
|
-
for (const tool of bashTools) {
|
|
309
|
-
const toolSources = serverCfg.sources.filter(s => tool.sources.includes(s.name));
|
|
310
|
-
const virtualFiles = tool.bash?.virtual_files === true;
|
|
311
|
-
const filesMap = await buildBashFilesMap(toolSources, {
|
|
312
|
-
virtualFiles,
|
|
313
|
-
searchToolNames: virtualFiles ? searchToolNames : undefined,
|
|
314
|
-
cloneDir: cfg.cloneDir,
|
|
315
|
-
});
|
|
316
|
-
bashInstances.set(tool.name, new Bash({ files: filesMap, cwd: '/' }));
|
|
317
|
-
console.log(`[startup] Bash tool "${tool.name}": ${Object.keys(filesMap).length} files loaded`);
|
|
318
|
-
}
|
|
319
|
-
// Indexing and webhooks only needed when search tools are configured
|
|
320
|
-
if (hasSearchTools()) {
|
|
321
|
-
const orchestrator = new IndexingOrchestrator();
|
|
322
|
-
orchestratorRef = orchestrator;
|
|
323
|
-
webhookHandler = createWebhookHandler(orchestrator);
|
|
324
|
-
orchestrator.checkAndIndex().catch((err) => {
|
|
325
|
-
console.error("[startup] Initial index check failed:", err);
|
|
326
|
-
});
|
|
327
|
-
orchestrator.startNightlyReindex();
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
console.log("[startup] No search tools configured — skipping indexing");
|
|
331
|
-
}
|
|
332
|
-
const serverName = serverCfg.server.name;
|
|
333
|
-
const server = app.listen(cfg.port, () => {
|
|
334
|
-
console.log(`[${serverName}] Running at http://localhost:${cfg.port}/mcp`);
|
|
335
|
-
console.log(`[health] http://localhost:${cfg.port}/health`);
|
|
336
|
-
});
|
|
337
|
-
server.on("error", (err) => {
|
|
338
|
-
if (err.code === "EADDRINUSE") {
|
|
339
|
-
console.error(`[startup] Port ${cfg.port} is already in use. Set PORT env var to use a different port.`);
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
console.error(`[startup] Server error:`, err);
|
|
343
|
-
}
|
|
344
|
-
process.exit(1);
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
start().catch((err) => {
|
|
1
|
+
import { startServer } from "./server.js";
|
|
2
|
+
startServer().catch((err) => {
|
|
348
3
|
console.error("[startup] Fatal error:", err);
|
|
349
4
|
process.exit(1);
|
|
350
5
|
});
|
|
351
|
-
// ---------------------------------------------------------------------------
|
|
352
|
-
// Graceful shutdown
|
|
353
|
-
// ---------------------------------------------------------------------------
|
|
354
|
-
async function shutdown(signal) {
|
|
355
|
-
console.log(`\n[shutdown] Received ${signal}, shutting down...`);
|
|
356
|
-
try {
|
|
357
|
-
await closePool();
|
|
358
|
-
}
|
|
359
|
-
catch (err) {
|
|
360
|
-
console.error("[shutdown] Error closing pool:", err);
|
|
361
|
-
}
|
|
362
|
-
process.exit(0);
|
|
363
|
-
}
|
|
364
|
-
process.on("SIGINT", () => shutdown("SIGINT"));
|
|
365
|
-
process.on("SIGTERM", () => shutdown("SIGTERM"));
|
|
366
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ChunkOutput, type SourceConfig } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Chunk HTML content into embedding-friendly chunks.
|
|
4
|
+
* Follows the ChunkerFn signature: (content, filePath, config) => ChunkOutput[]
|
|
5
|
+
*/
|
|
6
|
+
export declare function chunkHtml(content: string, filePath: string, config: SourceConfig): ChunkOutput[];
|
|
7
|
+
//# sourceMappingURL=html.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../src/indexing/chunking/html.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA8TrE;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,WAAW,EAAE,CAwDhG"}
|