@copilotkit/pathfinder 1.1.0 → 1.5.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.
Files changed (154) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/README.md +65 -248
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +70 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/config.d.ts +8 -0
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +58 -5
  10. package/dist/config.js.map +1 -1
  11. package/dist/db/client.d.ts.map +1 -1
  12. package/dist/db/client.js +3 -1
  13. package/dist/db/client.js.map +1 -1
  14. package/dist/db/queries.d.ts +21 -4
  15. package/dist/db/queries.d.ts.map +1 -1
  16. package/dist/db/queries.js +101 -45
  17. package/dist/db/queries.js.map +1 -1
  18. package/dist/db/schema.d.ts +5 -0
  19. package/dist/db/schema.d.ts.map +1 -1
  20. package/dist/db/schema.js +11 -0
  21. package/dist/db/schema.js.map +1 -1
  22. package/dist/faq-txt.d.ts +12 -0
  23. package/dist/faq-txt.d.ts.map +1 -0
  24. package/dist/faq-txt.js +37 -0
  25. package/dist/faq-txt.js.map +1 -0
  26. package/dist/index.js +2 -362
  27. package/dist/index.js.map +1 -1
  28. package/dist/indexing/chunking/html.d.ts +7 -0
  29. package/dist/indexing/chunking/html.d.ts.map +1 -0
  30. package/dist/indexing/chunking/html.js +356 -0
  31. package/dist/indexing/chunking/html.js.map +1 -0
  32. package/dist/indexing/chunking/index.js +5 -0
  33. package/dist/indexing/chunking/index.js.map +1 -1
  34. package/dist/indexing/chunking/qa.d.ts +8 -0
  35. package/dist/indexing/chunking/qa.d.ts.map +1 -0
  36. package/dist/indexing/chunking/qa.js +22 -0
  37. package/dist/indexing/chunking/qa.js.map +1 -0
  38. package/dist/indexing/distiller.d.ts +29 -0
  39. package/dist/indexing/distiller.d.ts.map +1 -0
  40. package/dist/indexing/distiller.js +104 -0
  41. package/dist/indexing/distiller.js.map +1 -0
  42. package/dist/indexing/orchestrator.d.ts +9 -3
  43. package/dist/indexing/orchestrator.d.ts.map +1 -1
  44. package/dist/indexing/orchestrator.js +113 -83
  45. package/dist/indexing/orchestrator.js.map +1 -1
  46. package/dist/indexing/pipeline.d.ts +18 -0
  47. package/dist/indexing/pipeline.d.ts.map +1 -0
  48. package/dist/indexing/pipeline.js +68 -0
  49. package/dist/indexing/pipeline.js.map +1 -0
  50. package/dist/indexing/providers/discord-api.d.ts +79 -0
  51. package/dist/indexing/providers/discord-api.d.ts.map +1 -0
  52. package/dist/indexing/providers/discord-api.js +167 -0
  53. package/dist/indexing/providers/discord-api.js.map +1 -0
  54. package/dist/indexing/providers/discord.d.ts +25 -0
  55. package/dist/indexing/providers/discord.d.ts.map +1 -0
  56. package/dist/indexing/providers/discord.js +282 -0
  57. package/dist/indexing/providers/discord.js.map +1 -0
  58. package/dist/indexing/providers/file.d.ts +18 -0
  59. package/dist/indexing/providers/file.d.ts.map +1 -0
  60. package/dist/indexing/providers/file.js +262 -0
  61. package/dist/indexing/providers/file.js.map +1 -0
  62. package/dist/indexing/providers/index.d.ts +5 -0
  63. package/dist/indexing/providers/index.d.ts.map +1 -0
  64. package/dist/indexing/providers/index.js +22 -0
  65. package/dist/indexing/providers/index.js.map +1 -0
  66. package/dist/indexing/providers/slack-api.d.ts +62 -0
  67. package/dist/indexing/providers/slack-api.d.ts.map +1 -0
  68. package/dist/indexing/providers/slack-api.js +167 -0
  69. package/dist/indexing/providers/slack-api.js.map +1 -0
  70. package/dist/indexing/providers/slack.d.ts +21 -0
  71. package/dist/indexing/providers/slack.d.ts.map +1 -0
  72. package/dist/indexing/providers/slack.js +192 -0
  73. package/dist/indexing/providers/slack.js.map +1 -0
  74. package/dist/indexing/providers/types.d.ts +56 -0
  75. package/dist/indexing/providers/types.d.ts.map +1 -0
  76. package/dist/indexing/providers/types.js +3 -0
  77. package/dist/indexing/providers/types.js.map +1 -0
  78. package/dist/indexing/url-derivation.d.ts +2 -2
  79. package/dist/indexing/url-derivation.d.ts.map +1 -1
  80. package/dist/indexing/url-derivation.js.map +1 -1
  81. package/dist/indexing/utils.d.ts +19 -0
  82. package/dist/indexing/utils.d.ts.map +1 -0
  83. package/dist/indexing/utils.js +63 -0
  84. package/dist/indexing/utils.js.map +1 -0
  85. package/dist/ip-limiter.d.ts +11 -0
  86. package/dist/ip-limiter.d.ts.map +1 -0
  87. package/dist/ip-limiter.js +40 -0
  88. package/dist/ip-limiter.js.map +1 -0
  89. package/dist/llms-txt.d.ts +11 -0
  90. package/dist/llms-txt.d.ts.map +1 -0
  91. package/dist/llms-txt.js +43 -0
  92. package/dist/llms-txt.js.map +1 -0
  93. package/dist/mcp/server.d.ts +3 -1
  94. package/dist/mcp/server.d.ts.map +1 -1
  95. package/dist/mcp/server.js +9 -1
  96. package/dist/mcp/server.js.map +1 -1
  97. package/dist/mcp/tools/bash-fs.d.ts.map +1 -1
  98. package/dist/mcp/tools/bash-fs.js +4 -1
  99. package/dist/mcp/tools/bash-fs.js.map +1 -1
  100. package/dist/mcp/tools/bash.d.ts +8 -0
  101. package/dist/mcp/tools/bash.d.ts.map +1 -1
  102. package/dist/mcp/tools/bash.js +59 -0
  103. package/dist/mcp/tools/bash.js.map +1 -1
  104. package/dist/mcp/tools/knowledge.d.ts +13 -0
  105. package/dist/mcp/tools/knowledge.d.ts.map +1 -0
  106. package/dist/mcp/tools/knowledge.js +92 -0
  107. package/dist/mcp/tools/knowledge.js.map +1 -0
  108. package/dist/mcp/tools/search.d.ts.map +1 -1
  109. package/dist/mcp/tools/search.js +11 -3
  110. package/dist/mcp/tools/search.js.map +1 -1
  111. package/dist/server.d.ts +6 -0
  112. package/dist/server.d.ts.map +1 -0
  113. package/dist/server.js +595 -0
  114. package/dist/server.js.map +1 -0
  115. package/dist/skill-md.d.ts +3 -0
  116. package/dist/skill-md.d.ts.map +1 -0
  117. package/dist/skill-md.js +75 -0
  118. package/dist/skill-md.js.map +1 -0
  119. package/dist/types.d.ts +844 -38
  120. package/dist/types.d.ts.map +1 -1
  121. package/dist/types.js +88 -6
  122. package/dist/types.js.map +1 -1
  123. package/dist/validate.d.ts +29 -0
  124. package/dist/validate.d.ts.map +1 -0
  125. package/dist/validate.js +192 -0
  126. package/dist/validate.js.map +1 -0
  127. package/dist/webhooks/discord.d.ts +13 -0
  128. package/dist/webhooks/discord.d.ts.map +1 -0
  129. package/dist/webhooks/discord.js +57 -0
  130. package/dist/webhooks/discord.js.map +1 -0
  131. package/dist/webhooks/slack.d.ts +13 -0
  132. package/dist/webhooks/slack.d.ts.map +1 -0
  133. package/dist/webhooks/slack.js +106 -0
  134. package/dist/webhooks/slack.js.map +1 -0
  135. package/dist/workspace.d.ts +13 -0
  136. package/dist/workspace.d.ts.map +1 -0
  137. package/dist/workspace.js +118 -0
  138. package/dist/workspace.js.map +1 -0
  139. package/package.json +27 -2
  140. package/pathfinder-docs.yaml +54 -0
  141. package/pathfinder.example.yaml +48 -0
  142. package/.superpowers/brainstorm/47098-1775507869/content/homepage-mockup.html +0 -324
  143. package/.superpowers/brainstorm/47098-1775507869/state/server-stopped +0 -1
  144. package/.superpowers/brainstorm/47098-1775507869/state/server.log +0 -13
  145. package/.superpowers/brainstorm/47098-1775507869/state/server.pid +0 -1
  146. package/.superpowers/brainstorm/82141-1775511032/content/migration-v2.html +0 -340
  147. package/.superpowers/brainstorm/82141-1775511032/content/migration.html +0 -340
  148. package/.superpowers/brainstorm/82141-1775511032/state/server-stopped +0 -1
  149. package/.superpowers/brainstorm/82141-1775511032/state/server.log +0 -4
  150. package/.superpowers/brainstorm/82141-1775511032/state/server.pid +0 -1
  151. package/dist/indexing/source-indexer.d.ts +0 -68
  152. package/dist/indexing/source-indexer.d.ts.map +0 -1
  153. package/dist/indexing/source-indexer.js +0 -379
  154. package/dist/indexing/source-indexer.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,366 +1,6 @@
1
- import express from "express";
2
- import cors from "cors";
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"}