openlore 2.0.10 → 2.0.11
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/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +77 -233
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/serve.d.ts +49 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +362 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +23 -7
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/services/mcp-watcher.d.ts +9 -0
- package/dist/core/services/mcp-watcher.d.ts.map +1 -1
- package/dist/core/services/mcp-watcher.js +10 -0
- package/dist/core/services/mcp-watcher.js.map +1 -1
- package/dist/core/services/serve-client.d.ts +40 -0
- package/dist/core/services/serve-client.d.ts.map +1 -0
- package/dist/core/services/serve-client.js +115 -0
- package/dist/core/services/serve-client.js.map +1 -0
- package/dist/core/services/tool-dispatch.d.ts +28 -0
- package/dist/core/services/tool-dispatch.d.ts.map +1 -0
- package/dist/core/services/tool-dispatch.js +246 -0
- package/dist/core/services/tool-dispatch.js.map +1 -0
- package/examples/pi/README.md +70 -0
- package/examples/pi/openlore.ts +358 -0
- package/package.json +1 -1
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* openlore serve — local HTTP daemon (warm, loopback-only).
|
|
3
|
+
*
|
|
4
|
+
* A long-lived process that keeps openlore's caches warm across calls and
|
|
5
|
+
* exposes the tool surface over plain HTTP so non-MCP clients (e.g. a Pi
|
|
6
|
+
* extension) can hit it with `fetch` — no JSON-RPC, no subprocess-per-call.
|
|
7
|
+
*
|
|
8
|
+
* It reuses the SAME tool dispatch as the stdio MCP server
|
|
9
|
+
* ({@link dispatchTool}) so the two transports can't drift, and the SAME tool
|
|
10
|
+
* presets ({@link selectActiveTools}) so a small-model client gets a focused
|
|
11
|
+
* surface (default: `navigation`).
|
|
12
|
+
*
|
|
13
|
+
* Endpoints (all loopback):
|
|
14
|
+
* GET /health → { ok, version, root, preset, tools, uptimeMs }
|
|
15
|
+
* POST /tool/:name body { directory?, args } → handler result (JSON)
|
|
16
|
+
*
|
|
17
|
+
* Discovery: writes `.openlore/serve.json` { port, pid, host, token?, startedAt }
|
|
18
|
+
* in the served root so a client can find and reuse a running daemon.
|
|
19
|
+
*
|
|
20
|
+
* Security: binds 127.0.0.1 only. An optional --token must be presented as the
|
|
21
|
+
* `x-openlore-token` header, keeping other local users off the port.
|
|
22
|
+
*
|
|
23
|
+
* Freshness (watcher + continuous re-analyze) is layered on separately; this
|
|
24
|
+
* module is the transport + lifecycle core.
|
|
25
|
+
*/
|
|
26
|
+
import { Command } from 'commander';
|
|
27
|
+
import { createServer } from 'node:http';
|
|
28
|
+
import { createRequire } from 'node:module';
|
|
29
|
+
import { writeFile, readFile, unlink, mkdir } from 'node:fs/promises';
|
|
30
|
+
import { join, resolve } from 'node:path';
|
|
31
|
+
import { logger } from '../../utils/logger.js';
|
|
32
|
+
import { OPENLORE_DIR } from '../../constants.js';
|
|
33
|
+
import { dispatchTool, UnknownToolError } from '../../core/services/tool-dispatch.js';
|
|
34
|
+
import { validateDirectory } from '../../core/services/mcp-handlers/utils.js';
|
|
35
|
+
import { McpWatcher } from '../../core/services/mcp-watcher.js';
|
|
36
|
+
import { openloreAnalyze } from '../../api/analyze.js';
|
|
37
|
+
import { TOOL_DEFINITIONS, TOOL_PRESETS, selectActiveTools } from './mcp.js';
|
|
38
|
+
/**
|
|
39
|
+
* Debounce before a full call-graph re-analyze after edits settle. Longer than
|
|
40
|
+
* the watcher's signature debounce (WATCH_DEBOUNCE_MS=400) because re-analysis
|
|
41
|
+
* is heavier; a few seconds of quiet is the signal that an edit burst is done.
|
|
42
|
+
*/
|
|
43
|
+
const REANALYZE_DEBOUNCE_MS = 4000;
|
|
44
|
+
const _require = createRequire(import.meta.url);
|
|
45
|
+
const _pkgVersion = _require('../../../package.json').version;
|
|
46
|
+
const SERVE_FILE = 'serve.json';
|
|
47
|
+
const MAX_BODY_BYTES = 1_000_000; // tool args are small; reject anything larger
|
|
48
|
+
function serveFilePath(root) {
|
|
49
|
+
return join(root, OPENLORE_DIR, SERVE_FILE);
|
|
50
|
+
}
|
|
51
|
+
/** Read a JSON request body with a hard size ceiling. Rejects on overflow/parse error. */
|
|
52
|
+
function readJsonBody(req) {
|
|
53
|
+
return new Promise((resolve_, reject) => {
|
|
54
|
+
const chunks = [];
|
|
55
|
+
let size = 0;
|
|
56
|
+
req.on('data', (c) => {
|
|
57
|
+
size += c.length;
|
|
58
|
+
if (size > MAX_BODY_BYTES) {
|
|
59
|
+
reject(new Error('request body too large'));
|
|
60
|
+
req.destroy();
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
chunks.push(c);
|
|
64
|
+
});
|
|
65
|
+
req.on('end', () => {
|
|
66
|
+
const raw = Buffer.concat(chunks).toString('utf-8').trim();
|
|
67
|
+
if (!raw)
|
|
68
|
+
return resolve_({});
|
|
69
|
+
try {
|
|
70
|
+
resolve_(JSON.parse(raw));
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
reject(new Error('invalid JSON body'));
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
req.on('error', reject);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function sendJson(res, status, body) {
|
|
80
|
+
const text = JSON.stringify(body);
|
|
81
|
+
res.writeHead(status, {
|
|
82
|
+
'content-type': 'application/json',
|
|
83
|
+
'content-length': Buffer.byteLength(text),
|
|
84
|
+
});
|
|
85
|
+
res.end(text);
|
|
86
|
+
}
|
|
87
|
+
/** Read <root>/.openlore/serve.json if present. */
|
|
88
|
+
async function readDescriptor(root) {
|
|
89
|
+
try {
|
|
90
|
+
return JSON.parse(await readFile(serveFilePath(root), 'utf-8'));
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Confirm a descriptor points at a LIVE openlore daemon — not a stale serve.json
|
|
98
|
+
* left by a SIGKILL'd process, nor a recycled port now owned by something else.
|
|
99
|
+
* Verifies GET /health returns our `ok: true` shape, so we never signal a PID we
|
|
100
|
+
* can't positively identify as our own daemon.
|
|
101
|
+
*/
|
|
102
|
+
async function daemonAlive(desc) {
|
|
103
|
+
try {
|
|
104
|
+
const res = await fetch(`http://${desc.host}:${desc.port}/health`, {
|
|
105
|
+
signal: AbortSignal.timeout(1000),
|
|
106
|
+
});
|
|
107
|
+
if (!res.ok)
|
|
108
|
+
return false;
|
|
109
|
+
const body = (await res.json().catch(() => null));
|
|
110
|
+
return body?.ok === true;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/** Stop a daemon previously started for `root` by signalling its recorded pid. */
|
|
117
|
+
async function stopDaemon(root) {
|
|
118
|
+
const path = serveFilePath(root);
|
|
119
|
+
const desc = await readDescriptor(root);
|
|
120
|
+
if (!desc) {
|
|
121
|
+
logger.warning(`No running openlore serve daemon found for ${root}.`);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
// Only signal a PID we've confirmed is our live daemon on the recorded port.
|
|
125
|
+
// A stale serve.json could otherwise point at a recycled PID belonging to an
|
|
126
|
+
// unrelated process — SIGTERM to that would be a nasty surprise.
|
|
127
|
+
if (!(await daemonAlive(desc))) {
|
|
128
|
+
await unlink(path).catch(() => { });
|
|
129
|
+
logger.warning(`No live daemon at ${desc.host}:${desc.port}; removed stale ${SERVE_FILE}.`);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
process.kill(desc.pid, 'SIGTERM');
|
|
134
|
+
logger.success(`Sent SIGTERM to openlore serve (pid ${desc.pid}).`);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
await unlink(path).catch(() => { });
|
|
138
|
+
logger.warning(`Daemon pid ${desc.pid} not signalable; removed stale ${SERVE_FILE}.`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
export async function startServe(options) {
|
|
142
|
+
const root = resolve(options.directory ?? process.cwd());
|
|
143
|
+
if (options.stop) {
|
|
144
|
+
await stopDaemon(root);
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
const host = options.host ?? '127.0.0.1';
|
|
148
|
+
const presetName = options.preset ?? 'navigation';
|
|
149
|
+
if (presetName !== 'all' && !TOOL_PRESETS[presetName]) {
|
|
150
|
+
logger.error(`Unknown --preset "${presetName}". Known: ${Object.keys(TOOL_PRESETS).join(', ')}, all.`);
|
|
151
|
+
process.exitCode = 1;
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
// Active tool surface: 'all' = every tool, otherwise the named preset.
|
|
155
|
+
const activeNames = new Set((presetName === 'all'
|
|
156
|
+
? TOOL_DEFINITIONS
|
|
157
|
+
: selectActiveTools(TOOL_DEFINITIONS, { preset: presetName })).map((t) => t.name));
|
|
158
|
+
// Don't start a second daemon for a root already served by a healthy one —
|
|
159
|
+
// a concurrent spawn (two MCP clients, or pi + MCP) would otherwise leave two
|
|
160
|
+
// watchers racing on the same .openlore/analysis. Reuse the live one instead.
|
|
161
|
+
const existing = await readDescriptor(root);
|
|
162
|
+
if (existing && (await daemonAlive(existing))) {
|
|
163
|
+
logger.success(`openlore serve already running for ${root} at http://${existing.host}:${existing.port} — reusing.`);
|
|
164
|
+
return {
|
|
165
|
+
port: existing.port,
|
|
166
|
+
host: existing.host,
|
|
167
|
+
token: existing.token,
|
|
168
|
+
baseUrl: `http://${existing.host}:${existing.port}`,
|
|
169
|
+
close: async () => { }, // never tear down a daemon this process didn't start
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
const token = options.token ?? (process.env.OPENLORE_SERVE_TOKEN || undefined);
|
|
173
|
+
const startedAt = new Date().toISOString();
|
|
174
|
+
const startMs = Date.now();
|
|
175
|
+
const server = createServer((req, res) => {
|
|
176
|
+
void handleRequest(req, res).catch((err) => {
|
|
177
|
+
sendJson(res, 500, { error: err instanceof Error ? err.message : String(err) });
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
async function handleRequest(req, res) {
|
|
181
|
+
const url = new URL(req.url ?? '/', `http://${host}`);
|
|
182
|
+
// Token gate (skips /health so liveness checks need no secret).
|
|
183
|
+
if (token && url.pathname !== '/health') {
|
|
184
|
+
if (req.headers['x-openlore-token'] !== token) {
|
|
185
|
+
sendJson(res, 401, { error: 'invalid or missing x-openlore-token' });
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (req.method === 'GET' && url.pathname === '/health') {
|
|
190
|
+
sendJson(res, 200, {
|
|
191
|
+
ok: true,
|
|
192
|
+
version: _pkgVersion,
|
|
193
|
+
root,
|
|
194
|
+
preset: presetName,
|
|
195
|
+
tools: [...activeNames],
|
|
196
|
+
uptimeMs: Date.now() - startMs,
|
|
197
|
+
});
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
if (req.method === 'POST' && url.pathname.startsWith('/tool/')) {
|
|
201
|
+
const name = decodeURIComponent(url.pathname.slice('/tool/'.length));
|
|
202
|
+
// The preset is ADVISORY (reported by /health for clients that want a
|
|
203
|
+
// curated list, e.g. the Pi extension). The daemon dispatches any known
|
|
204
|
+
// tool so it can back multiple clients with different surfaces — notably
|
|
205
|
+
// the MCP server, which delegates all ~45 tools here. Unknown tools 404
|
|
206
|
+
// via UnknownToolError below.
|
|
207
|
+
let body;
|
|
208
|
+
try {
|
|
209
|
+
body = await readJsonBody(req);
|
|
210
|
+
}
|
|
211
|
+
catch (err) {
|
|
212
|
+
sendJson(res, 400, { error: err instanceof Error ? err.message : 'bad request' });
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const args = body.args ?? {};
|
|
216
|
+
// Directory precedence: explicit body.directory → args.directory → served root.
|
|
217
|
+
const directory = (typeof body.directory === 'string' && body.directory)
|
|
218
|
+
|| (typeof args.directory === 'string' && args.directory)
|
|
219
|
+
|| root;
|
|
220
|
+
// Ensure handlers receive directory in args (they read it from there).
|
|
221
|
+
if (typeof args.directory !== 'string')
|
|
222
|
+
args.directory = directory;
|
|
223
|
+
try {
|
|
224
|
+
await validateDirectory(directory);
|
|
225
|
+
}
|
|
226
|
+
catch (err) {
|
|
227
|
+
sendJson(res, 400, { error: err instanceof Error ? err.message : 'invalid directory' });
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
try {
|
|
231
|
+
const result = await dispatchTool(name, args, directory);
|
|
232
|
+
sendJson(res, 200, result ?? null);
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
if (err instanceof UnknownToolError) {
|
|
236
|
+
sendJson(res, 404, { error: err.message });
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
sendJson(res, 500, { error: err instanceof Error ? err.message : String(err) });
|
|
240
|
+
}
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
sendJson(res, 404, { error: `No route for ${req.method} ${url.pathname}` });
|
|
244
|
+
}
|
|
245
|
+
// Bind (port 0 → OS picks a free ephemeral port).
|
|
246
|
+
const port = options.port ? parseInt(options.port, 10) : 0;
|
|
247
|
+
await new Promise((resolve_, reject) => {
|
|
248
|
+
server.once('error', reject);
|
|
249
|
+
server.listen(port, host, resolve_);
|
|
250
|
+
});
|
|
251
|
+
const addr = server.address();
|
|
252
|
+
const boundPort = typeof addr === 'object' && addr ? addr.port : port;
|
|
253
|
+
const descriptor = {
|
|
254
|
+
port: boundPort,
|
|
255
|
+
pid: process.pid,
|
|
256
|
+
host,
|
|
257
|
+
token,
|
|
258
|
+
startedAt,
|
|
259
|
+
version: _pkgVersion,
|
|
260
|
+
};
|
|
261
|
+
await mkdir(join(root, OPENLORE_DIR), { recursive: true });
|
|
262
|
+
await writeFile(serveFilePath(root), JSON.stringify(descriptor, null, 2) + '\n', 'utf-8');
|
|
263
|
+
logger.success(`openlore serve listening on http://${host}:${boundPort} (preset: ${presetName})`);
|
|
264
|
+
logger.discovery(`Discovery file: ${serveFilePath(root)}`);
|
|
265
|
+
// ── Freshness: watcher (signatures + vector) + debounced call-graph re-analyze ──
|
|
266
|
+
// The watcher keeps signatures/vector fresh between commits and primes the read
|
|
267
|
+
// cache in place. Its onBatchFlushed hook schedules a heavier full re-analyze so
|
|
268
|
+
// the CALL GRAPH (which the watcher deliberately skips) also stays fresh between
|
|
269
|
+
// commits — turning divergence from "wait for the next commit" into continuous.
|
|
270
|
+
let watcher;
|
|
271
|
+
let reanalyzeTimer;
|
|
272
|
+
let reanalyzeRunning = false;
|
|
273
|
+
let reanalyzePending = false;
|
|
274
|
+
const runReanalyze = async () => {
|
|
275
|
+
if (reanalyzeRunning) {
|
|
276
|
+
reanalyzePending = true;
|
|
277
|
+
return;
|
|
278
|
+
} // single-flight + coalesce
|
|
279
|
+
reanalyzeRunning = true;
|
|
280
|
+
try {
|
|
281
|
+
await openloreAnalyze({ rootPath: root, force: true });
|
|
282
|
+
logger.discovery(`[serve] call graph re-analyzed (${root})`);
|
|
283
|
+
}
|
|
284
|
+
catch (err) {
|
|
285
|
+
logger.warning(`[serve] re-analyze failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
286
|
+
}
|
|
287
|
+
finally {
|
|
288
|
+
reanalyzeRunning = false;
|
|
289
|
+
if (reanalyzePending) {
|
|
290
|
+
reanalyzePending = false;
|
|
291
|
+
scheduleReanalyze();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
function scheduleReanalyze() {
|
|
296
|
+
if (reanalyzeTimer)
|
|
297
|
+
clearTimeout(reanalyzeTimer);
|
|
298
|
+
reanalyzeTimer = setTimeout(() => void runReanalyze(), REANALYZE_DEBOUNCE_MS);
|
|
299
|
+
}
|
|
300
|
+
if (options.watch !== false) {
|
|
301
|
+
watcher = new McpWatcher({ rootPath: root, onBatchFlushed: () => scheduleReanalyze() });
|
|
302
|
+
try {
|
|
303
|
+
await watcher.start();
|
|
304
|
+
logger.discovery(`[serve] watching ${root} — signatures/vector live, call-graph re-analyze debounced`);
|
|
305
|
+
}
|
|
306
|
+
catch (err) {
|
|
307
|
+
logger.warning(`[serve] watcher failed to start: ${err instanceof Error ? err.message : String(err)}`);
|
|
308
|
+
watcher = undefined;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
// Clean shutdown: drop the descriptor so clients don't reuse a dead port.
|
|
312
|
+
// Signal handlers exit the process; the returned close() is for in-process
|
|
313
|
+
// callers (tests) that must not kill the host.
|
|
314
|
+
let shuttingDown = false;
|
|
315
|
+
const teardown = async () => {
|
|
316
|
+
if (shuttingDown)
|
|
317
|
+
return;
|
|
318
|
+
shuttingDown = true;
|
|
319
|
+
if (reanalyzeTimer)
|
|
320
|
+
clearTimeout(reanalyzeTimer);
|
|
321
|
+
if (watcher)
|
|
322
|
+
await watcher.stop().catch(() => { });
|
|
323
|
+
await unlink(serveFilePath(root)).catch(() => { });
|
|
324
|
+
await new Promise((res) => server.close(() => res()));
|
|
325
|
+
};
|
|
326
|
+
const exitAfterTeardown = async () => {
|
|
327
|
+
await teardown();
|
|
328
|
+
process.exit(0);
|
|
329
|
+
};
|
|
330
|
+
process.on('SIGINT', () => void exitAfterTeardown());
|
|
331
|
+
process.on('SIGTERM', () => void exitAfterTeardown());
|
|
332
|
+
return {
|
|
333
|
+
port: boundPort,
|
|
334
|
+
host,
|
|
335
|
+
token,
|
|
336
|
+
baseUrl: `http://${host}:${boundPort}`,
|
|
337
|
+
close: teardown,
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
export const serveCommand = new Command('serve')
|
|
341
|
+
.description('Start a warm local HTTP daemon exposing openlore tools (loopback, for editor/agent integrations like Pi)')
|
|
342
|
+
.option('-d, --directory <path>', 'Project root to serve (discovery file written here)', process.cwd())
|
|
343
|
+
.option('-p, --port <number>', 'Port to bind (default: ephemeral free port)')
|
|
344
|
+
.option('--host <host>', 'Host to bind', '127.0.0.1')
|
|
345
|
+
.option('--preset <name>', 'Advisory tool surface reported by /health (minimal, navigation, or all). The daemon still ' +
|
|
346
|
+
'dispatches any known tool; clients curate their own surface. Default: navigation', 'navigation')
|
|
347
|
+
.option('--token <token>', 'Require this token as the x-openlore-token header (default: $OPENLORE_SERVE_TOKEN)')
|
|
348
|
+
.option('--no-watch', 'Disable the freshness watcher + debounced call-graph re-analyze')
|
|
349
|
+
.option('--stop', 'Stop a running daemon for --directory and exit')
|
|
350
|
+
.addHelpText('after', `
|
|
351
|
+
Examples:
|
|
352
|
+
$ openlore serve Warm daemon, navigation preset, ephemeral port
|
|
353
|
+
$ openlore serve --preset all --port 7077 All tools on a fixed port
|
|
354
|
+
$ openlore serve --stop Stop the daemon serving this directory
|
|
355
|
+
|
|
356
|
+
$ curl 127.0.0.1:$PORT/health
|
|
357
|
+
$ curl -XPOST 127.0.0.1:$PORT/tool/orient -d '{"args":{"task":"add rate limiting"}}'
|
|
358
|
+
`)
|
|
359
|
+
.action(async (options) => {
|
|
360
|
+
await startServe(options);
|
|
361
|
+
});
|
|
362
|
+
//# sourceMappingURL=serve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAA6C,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7E;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,WAAW,GAAI,QAAQ,CAAC,uBAAuB,CAAyB,CAAC,OAAO,CAAC;AAiCvF,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,8CAA8C;AAEhF,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,0FAA0F;AAC1F,SAAS,YAAY,CAAC,GAAoB;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC;YACjB,IAAI,IAAI,GAAG,cAAc,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBAC5C,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3D,IAAI,CAAC,GAAG;gBAAE,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAa;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE;QACpB,cAAc,EAAE,kBAAkB;QAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;KAC1C,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,mDAAmD;AACnD,KAAK,UAAU,cAAc,CAAC,IAAY;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAoB,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,WAAW,CAAC,IAAqB;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,SAAS,EAAE;YACjE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAA4B,CAAC;QAC7E,OAAO,IAAI,EAAE,EAAE,KAAK,IAAI,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,OAAO,CAAC,8CAA8C,IAAI,GAAG,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IACD,6EAA6E;IAC7E,6EAA6E;IAC7E,iEAAiE;IACjE,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,qBAAqB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,mBAAmB,UAAU,GAAG,CAAC,CAAC;QAC5F,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,uCAAuC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,GAAG,kCAAkC,UAAU,GAAG,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAwB;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEzD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC;IAClD,IAAI,UAAU,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,qBAAqB,UAAU,aAAa,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,uEAAuE;IACvE,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,CAAC,UAAU,KAAK,KAAK;QACnB,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC9D,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACrB,CAAC;IAEF,2EAA2E;IAC3E,8EAA8E;IAC9E,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,QAAQ,IAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,OAAO,CACZ,sCAAsC,IAAI,cAAc,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,aAAa,CACpG,CAAC;QACF,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,EAAE,UAAU,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;YACnD,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,qDAAqD;SAC7E,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,KAAK,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACzC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,aAAa,CAAC,GAAoB,EAAE,GAAmB;QACpE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;QAEtD,gEAAgE;QAChE,IAAI,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC9C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAC,CAAC;gBACrE,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACvD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,WAAW;gBACpB,IAAI;gBACJ,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC;gBACvB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;aAC/B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACrE,sEAAsE;YACtE,wEAAwE;YACxE,yEAAyE;YACzE,wEAAwE;YACxE,8BAA8B;YAC9B,IAAI,IAA6B,CAAC;YAClC,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;gBAClF,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAI,IAAI,CAAC,IAAgC,IAAI,EAAE,CAAC;YAC1D,gFAAgF;YAChF,MAAM,SAAS,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;mBACnE,CAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;mBACtD,IAAI,CAAC;YACV,uEAAuE;YACvE,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;gBAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAEnE,IAAI,CAAC;gBACH,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACxF,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBACzD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;oBACpC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC3C,OAAO;gBACT,CAAC;gBACD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC;YACD,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,gBAAgB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,kDAAkD;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,IAAI,OAAO,CAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtE,MAAM,UAAU,GAAoB;QAClC,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,IAAI;QACJ,KAAK;QACL,SAAS;QACT,OAAO,EAAE,WAAW;KACrB,CAAC;IACF,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1F,MAAM,CAAC,OAAO,CAAC,sCAAsC,IAAI,IAAI,SAAS,aAAa,UAAU,GAAG,CAAC,CAAC;IAClG,MAAM,CAAC,SAAS,CAAC,mBAAmB,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE3D,mFAAmF;IACnF,gFAAgF;IAChF,iFAAiF;IACjF,iFAAiF;IACjF,gFAAgF;IAChF,IAAI,OAA+B,CAAC;IACpC,IAAI,cAAyD,CAAC;IAC9D,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC7C,IAAI,gBAAgB,EAAE,CAAC;YAAC,gBAAgB,GAAG,IAAI,CAAC;YAAC,OAAO;QAAC,CAAC,CAAC,2BAA2B;QACtF,gBAAgB,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,mCAAmC,IAAI,GAAG,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC;gBAAS,CAAC;YACT,gBAAgB,GAAG,KAAK,CAAC;YACzB,IAAI,gBAAgB,EAAE,CAAC;gBAAC,gBAAgB,GAAG,KAAK,CAAC;gBAAC,iBAAiB,EAAE,CAAC;YAAC,CAAC;QAC1E,CAAC;IACH,CAAC,CAAC;IACF,SAAS,iBAAiB;QACxB,IAAI,cAAc;YAAE,YAAY,CAAC,cAAc,CAAC,CAAC;QACjD,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,YAAY,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,GAAG,IAAI,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,SAAS,CAAC,oBAAoB,IAAI,4DAA4D,CAAC,CAAC;QACzG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvG,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,+CAA+C;IAC/C,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;QACzC,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,IAAI,cAAc;YAAE,YAAY,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,OAAO;YAAE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClD,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,KAAK,IAAmB,EAAE;QAClD,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,iBAAiB,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,iBAAiB,EAAE,CAAC,CAAC;IAEtD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,UAAU,IAAI,IAAI,SAAS,EAAE;QACtC,KAAK,EAAE,QAAQ;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,0GAA0G,CAAC;KACvH,MAAM,CAAC,wBAAwB,EAAE,qDAAqD,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KACtG,MAAM,CAAC,qBAAqB,EAAE,6CAA6C,CAAC;KAC5E,MAAM,CAAC,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC;KACpD,MAAM,CACL,iBAAiB,EACjB,4FAA4F;IAC1F,kFAAkF,EACpF,YAAY,CACb;KACA,MAAM,CAAC,iBAAiB,EAAE,oFAAoF,CAAC;KAC/G,MAAM,CAAC,YAAY,EAAE,iEAAiE,CAAC;KACvF,MAAM,CAAC,QAAQ,EAAE,gDAAgD,CAAC;KAClE,WAAW,CACV,OAAO,EACP;;;;;;;;CAQH,CACE;KACA,MAAM,CAAC,KAAK,EAAE,OAAwB,EAAE,EAAE;IACzC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqQpC,eAAO,MAAM,YAAY,SAgLrB,CAAC"}
|
|
@@ -88,7 +88,7 @@ async function copyFile(src, dest, force) {
|
|
|
88
88
|
// ============================================================================
|
|
89
89
|
// SKILL MANIFESTS
|
|
90
90
|
// ============================================================================
|
|
91
|
-
function buildManifest(projectRoot) {
|
|
91
|
+
function buildManifest(projectRoot, piGlobal = false) {
|
|
92
92
|
const ex = join(PACKAGE_ROOT, 'examples');
|
|
93
93
|
const VIBE_SKILLS = [
|
|
94
94
|
'openlore-analyze-codebase',
|
|
@@ -182,13 +182,23 @@ function buildManifest(projectRoot) {
|
|
|
182
182
|
dest: join(projectRoot, '.opencode', 'prompts', 'sisyphus-sdd.md'),
|
|
183
183
|
},
|
|
184
184
|
],
|
|
185
|
+
// Pi (pi.dev) — a single TS extension, not per-skill markdown. Project-local
|
|
186
|
+
// by default; --global installs it for every project.
|
|
187
|
+
pi: [
|
|
188
|
+
{
|
|
189
|
+
src: join(ex, 'pi', 'openlore.ts'),
|
|
190
|
+
dest: piGlobal
|
|
191
|
+
? join(homedir(), '.pi', 'agent', 'extensions', 'openlore.ts')
|
|
192
|
+
: join(projectRoot, '.pi', 'extensions', 'openlore.ts'),
|
|
193
|
+
},
|
|
194
|
+
],
|
|
185
195
|
};
|
|
186
196
|
}
|
|
187
197
|
// ============================================================================
|
|
188
198
|
// CORE
|
|
189
199
|
// ============================================================================
|
|
190
|
-
async function runSetup(projectRoot, tools, force) {
|
|
191
|
-
const manifest = buildManifest(projectRoot);
|
|
200
|
+
async function runSetup(projectRoot, tools, force, piGlobal = false) {
|
|
201
|
+
const manifest = buildManifest(projectRoot, piGlobal);
|
|
192
202
|
const results = [];
|
|
193
203
|
for (const tool of tools) {
|
|
194
204
|
for (const entry of manifest[tool]) {
|
|
@@ -211,17 +221,18 @@ async function runSetup(projectRoot, tools, force) {
|
|
|
211
221
|
export const setupCommand = new Command('setup')
|
|
212
222
|
.description('Install workflow skills and agent integration files into this project.\n' +
|
|
213
223
|
'Copies static assets from the openlore package — safe to re-run (skips existing files).')
|
|
214
|
-
.option('--tools <list>', 'Comma-separated list of tools to install: vibe, cline, claude, opencode, gsd, bmad (default: all)')
|
|
224
|
+
.option('--tools <list>', 'Comma-separated list of tools to install: vibe, cline, claude, opencode, gsd, bmad, pi (default: all)')
|
|
215
225
|
.option('--force', 'Overwrite existing files (use after upgrading openlore to pull in updated skills)', false)
|
|
216
226
|
.option('--dir <path>', 'Project root directory', process.cwd())
|
|
227
|
+
.option('--global', 'For the pi target: install the extension to ~/.pi/agent/extensions/ instead of the project', false)
|
|
217
228
|
.action(async (options) => {
|
|
218
229
|
const projectRoot = options.dir;
|
|
219
|
-
const allTools = ['vibe', 'cline', 'gsd', 'bmad', 'claude', 'opencode', 'omoa'];
|
|
230
|
+
const allTools = ['vibe', 'cline', 'gsd', 'bmad', 'claude', 'opencode', 'omoa', 'pi'];
|
|
220
231
|
let tools;
|
|
221
232
|
if (options.tools) {
|
|
222
233
|
tools = options.tools.split(',').map((t) => t.trim()).filter((t) => allTools.includes(t));
|
|
223
234
|
if (tools.length === 0) {
|
|
224
|
-
logger.error('setup: no valid tools specified. Valid values: vibe, cline, gsd, bmad, claude, opencode, omoa');
|
|
235
|
+
logger.error('setup: no valid tools specified. Valid values: vibe, cline, gsd, bmad, claude, opencode, omoa, pi');
|
|
225
236
|
process.exit(1);
|
|
226
237
|
}
|
|
227
238
|
}
|
|
@@ -262,6 +273,10 @@ export const setupCommand = new Command('setup')
|
|
|
262
273
|
value: 'omoa',
|
|
263
274
|
checked: omoaDetected,
|
|
264
275
|
},
|
|
276
|
+
{
|
|
277
|
+
name: 'Pi (.pi/extensions/openlore.ts — warm-daemon extension; --global for ~/.pi)',
|
|
278
|
+
value: 'pi',
|
|
279
|
+
},
|
|
265
280
|
],
|
|
266
281
|
});
|
|
267
282
|
if (selected.length === 0) {
|
|
@@ -279,7 +294,7 @@ export const setupCommand = new Command('setup')
|
|
|
279
294
|
logger.success(`Installing workflow skills into ${projectRoot}`);
|
|
280
295
|
let results;
|
|
281
296
|
try {
|
|
282
|
-
results = await runSetup(projectRoot, tools, options.force);
|
|
297
|
+
results = await runSetup(projectRoot, tools, options.force, options.global);
|
|
283
298
|
}
|
|
284
299
|
catch (err) {
|
|
285
300
|
logger.error(`setup failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -305,6 +320,7 @@ export const setupCommand = new Command('setup')
|
|
|
305
320
|
gsd: 'get-shit-done (GSD)',
|
|
306
321
|
bmad: 'BMAD',
|
|
307
322
|
omoa: 'oh-my-openagent (SDD plugins)',
|
|
323
|
+
pi: 'Pi (pi.dev)',
|
|
308
324
|
};
|
|
309
325
|
for (const tool of tools) {
|
|
310
326
|
const entries = byTool[tool] ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAqB3E,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,mFAAmF;AACnF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAEjD,KAAK,UAAU,UAAU,CAAC,CAAS;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU,CAAC,WAAmB;IAC3C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,UAAU,GAAG;QACjB,uBAAuB;QACvB,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,uBAAuB,CAAC;QACvD,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,sBAAsB,CAAC;QACtD,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,sBAAsB,CAAC;QACtD,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,qBAAqB,CAAC;QACrD,oBAAoB;QACpB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,uBAAuB,CAAC;QAC1D,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,sBAAsB,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,sBAAsB,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,qBAAqB,CAAC;KACzD,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,MAAM,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACvC,CAAC;IAED,sFAAsF;IACtF,KAAK,MAAM,YAAY,IAAI;QACzB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC;QAClD,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC;KACnC,EAAE,CAAC;QACF,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAAE,OAAO,IAAI,CAAC;QACrF,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,GAAW,EACX,IAAY,EACZ,KAAc;IAEd,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACxC,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,SAAS,aAAa,CAAC,WAAmB,EAAE,QAAQ,GAAG,KAAK;IAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAG;QAClB,2BAA2B;QAC3B,qBAAqB;QACrB,gBAAgB;QAChB,2BAA2B;QAC3B,mBAAmB;QACnB,0BAA0B;QAC1B,wBAAwB;QACxB,sBAAsB;KACvB,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,4CAA4C;IAEjF,MAAM,eAAe,GAAG;QACtB,8BAA8B;QAC9B,8BAA8B;QAC9B,8BAA8B;QAC9B,+BAA+B;QAC/B,2BAA2B;QAC3B,+BAA+B;QAC/B,yBAAyB;KAC1B,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;IAEjE,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,CAAC,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;IAEhG,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC;YACzD,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC;SAC7D,CAAC,CAAC;QACH,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC;SAC1D,CAAC,CAAC;QACH,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC;YAC7C,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC;SAC5D,CAAC,CAAC;QACH,IAAI,EAAE;YACJ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5B,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;gBACrC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC;aAC7D,CAAC,CAAC;YACH,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;gBACpC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;aAC5D,CAAC,CAAC;SACJ;QACD,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,CAAC;YAClD,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC;SAC/D,CAAC,CAAC;QACH,QAAQ,EAAE;YACR,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,CAAC;gBAClD,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC;aACjE,CAAC,CAAC;YACH;gBACE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,gBAAgB,CAAC;gBAC3C,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,CAAC;aAClE;SACF;QACD,IAAI,EAAE;YACJ,0BAA0B;YAC1B;gBACE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,CAAC;gBACxD,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC;aACpE;YACD;gBACE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,CAAC;gBAC5D,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,CAAC;aACxE;YACD;gBACE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,gCAAgC,CAAC;gBACtE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,gCAAgC,CAAC;aAClF;YACD;gBACE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,wCAAwC,CAAC;gBACrF,IAAI,EAAE,IAAI,CACR,WAAW,EACX,WAAW,EACX,SAAS,EACT,KAAK,EACL,wCAAwC,CACzC;aACF;YACD;gBACE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,8BAA8B,CAAC;gBACpE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,8BAA8B,CAAC;aAChF;YACD;gBACE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,sCAAsC,CAAC;gBACnF,IAAI,EAAE,IAAI,CACR,WAAW,EACX,WAAW,EACX,SAAS,EACT,KAAK,EACL,sCAAsC,CACvC;aACF;YACD,6BAA6B;YAC7B;gBACE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAC;gBACvD,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,CAAC;aACnE;SACF;QACD,6EAA6E;QAC7E,sDAAsD;QACtD,EAAE,EAAE;YACF;gBACE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC;gBAClC,IAAI,EAAE,QAAQ;oBACZ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC;oBAC9D,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC;aAC1D;SACF;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,OAAO;AACP,+EAA+E;AAE/E,KAAK,UAAU,QAAQ,CACrB,WAAmB,EACnB,KAAiB,EACjB,KAAc,EACd,QAAQ,GAAG,KAAK;IAEhB,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,OAAO,CAAC,6BAA6B,KAAK,CAAC,GAAG,+BAA+B,CAAC,CAAC;gBACtF,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC5C,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACzD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CACV,0EAA0E;IACxE,yFAAyF,CAC5F;KACA,MAAM,CACL,gBAAgB,EAChB,uGAAuG,CACxG;KACA,MAAM,CACL,SAAS,EACT,mFAAmF,EACnF,KAAK,CACN;KACA,MAAM,CAAC,cAAc,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC/D,MAAM,CAAC,UAAU,EAAE,4FAA4F,EAAE,KAAK,CAAC;KACvH,MAAM,CAAC,KAAK,EAAE,OAAyE,EAAE,EAAE;IAC1F,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAChC,MAAM,QAAQ,GAAe,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAElG,IAAI,KAAiB,CAAC;IACtB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,GAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACjF,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACrB,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CACV,mGAAmG,CACpG,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC;YAC9B,OAAO,EAAE,sDAAsD;YAC/D,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,8DAA8D;oBACpE,KAAK,EAAE,QAAoB;iBAC5B;gBACD;oBACE,IAAI,EAAE,wEAAwE;oBAC9E,KAAK,EAAE,OAAmB;iBAC3B;gBACD;oBACE,IAAI,EAAE,kEAAkE;oBACxE,KAAK,EAAE,MAAkB;iBAC1B;gBACD;oBACE,IAAI,EAAE,2FAA2F;oBACjG,KAAK,EAAE,UAAsB;iBAC9B;gBACD;oBACE,IAAI,EAAE,sEAAsE;oBAC5E,KAAK,EAAE,KAAiB;iBACzB;gBACD;oBACE,IAAI,EAAE,oEAAoE;oBAC1E,KAAK,EAAE,MAAkB;iBAC1B;gBACD;oBACE,IAAI,EAAE,uGAAuG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE;oBAChJ,KAAK,EAAE,MAAkB;oBACzB,OAAO,EAAE,YAAY;iBACtB;gBACD;oBACE,IAAI,EAAE,wFAAwF;oBAC9F,KAAK,EAAE,IAAgB;iBACxB;aACF;SACF,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,KAAK,GAAG,QAAQ,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CACV,2CAA2C;YACzC,4CAA4C;YAC5C,mDAAmD,CACtD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,mCAAmC,WAAW,EAAE,CAAC,CAAC;IAEjE,IAAI,OAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACxC,yEAAyE;QACzE,2EAA2E;QAC3E,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,4EAA4E;IAC5E,MAAM,MAAM,GAAkC,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,MAAM,GAA6B;QACvC,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,qBAAqB;QAC1B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,+BAA+B;QACrC,EAAE,EAAE,aAAa;KAClB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAgB,CAAC,EAAE,CAAC,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GACV,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5F,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,aAAa,OAAO,aAAa,OAAO,qBAAqB,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC1E,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CACT,sHAAsH,CACvH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,mFAAmF,CACpF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;iFAmB+D,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -29,6 +29,7 @@ import { installCommand } from './install/index.js';
|
|
|
29
29
|
import { preflightCommand } from './preflight/index.js';
|
|
30
30
|
import { exportCommand } from './export/index.js';
|
|
31
31
|
import { manifestCommand } from './manifest/index.js';
|
|
32
|
+
import { serveCommand } from './commands/serve.js';
|
|
32
33
|
import { configureLogger } from '../utils/logger.js';
|
|
33
34
|
// Read version from package.json at runtime so it never drifts from the published version
|
|
34
35
|
const require = createRequire(import.meta.url);
|
|
@@ -130,5 +131,6 @@ program.addCommand(installCommand);
|
|
|
130
131
|
program.addCommand(preflightCommand);
|
|
131
132
|
program.addCommand(exportCommand);
|
|
132
133
|
program.addCommand(manifestCommand);
|
|
134
|
+
program.addCommand(serveCommand);
|
|
133
135
|
program.parse();
|
|
134
136
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,0FAA0F;AAC1F,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEzE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,mDAAmD;AACnD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACxC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAEhC,eAAe,CAAC;QACd,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;QAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,KAAK;QAC7B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;KAC9D,CAAC,CAAC;IAEH,qEAAqE;IACrE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;QAC/C,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8EAA8E;gBAC9E,sCAAsC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CACV,uEAAuE;IACrE,4EAA4E;IAC5E,iEAAiE,CACpE;KACA,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,aAAa,EAAE,8BAA8B,EAAE,KAAK,CAAC;KAC5D,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,KAAK,CAAC;KACxD,MAAM,CAAC,YAAY,EAAE,kDAAkD,CAAC;KACxE,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,uBAAuB,CAAC;KACzE,MAAM,CACL,kBAAkB,EAClB,0EAA0E,CAC3E;KACA,MAAM,CAAC,YAAY,EAAE,uEAAuE,CAAC;KAC7F,MAAM,CAAC,gBAAgB,EAAE,uDAAuD,EAAE,QAAQ,CAAC;KAC3F,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCH,CACE,CAAC;AAEJ,uBAAuB;AACvB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -40,6 +40,14 @@ export interface McpWatcherOptions {
|
|
|
40
40
|
embedFileCeiling?: number;
|
|
41
41
|
/** Extra glob patterns to ignore in addition to defaults */
|
|
42
42
|
ignore?: string[];
|
|
43
|
+
/**
|
|
44
|
+
* Fired after each coalesced batch is flushed to disk (signatures + vector).
|
|
45
|
+
* Lets a host — e.g. the `openlore serve` daemon — schedule heavier work, such
|
|
46
|
+
* as a debounced full call-graph re-analyze, off the watcher's own lane. The
|
|
47
|
+
* watcher deliberately excludes the call graph (too expensive synchronously),
|
|
48
|
+
* so this is the seam where continuous call-graph freshness is layered on.
|
|
49
|
+
*/
|
|
50
|
+
onBatchFlushed?: (changedAbsPaths: string[]) => void;
|
|
43
51
|
}
|
|
44
52
|
/**
|
|
45
53
|
* True if a root-relative path should never be watched. Evaluated as a cheap
|
|
@@ -60,6 +68,7 @@ export declare class McpWatcher {
|
|
|
60
68
|
private readonly embedFileCeiling;
|
|
61
69
|
private readonly extraIgnore;
|
|
62
70
|
private readonly debug;
|
|
71
|
+
private readonly onBatchFlushed?;
|
|
63
72
|
private fsWatcher?;
|
|
64
73
|
private gitWatcher?;
|
|
65
74
|
private pending;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-watcher.d.ts","sourceRoot":"","sources":["../../../src/core/services/mcp-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAuCH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-watcher.d.ts","sourceRoot":"","sources":["../../../src/core/services/mcp-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAuCH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACtD;AA4CD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUzD;AAID,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAsC;IAEtE,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAY;IAG/B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,UAAU,CAAC,CAAgC;IACnD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAC,CAAgB;gBAE7B,OAAO,EAAE,iBAAiB;IAiBhC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiEtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B;;;OAGG;IACH,OAAO,CAAC,OAAO;IASf,kFAAkF;IAClF,OAAO,CAAC,UAAU;IASlB;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAqBb;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;;;;;OAMG;YACW,WAAW;IA6HzB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IA0BjC;;;;;OAKG;IACH,OAAO,KAAK,kBAAkB,GAE7B;IAED;;;;;;;OAOG;YACW,WAAW;YASX,cAAc;IAc5B,OAAO,CAAC,aAAa;YAUP,YAAY;IAyB1B;;;OAGG;YACW,aAAa;IAuD3B,iFAAiF;YACnE,gBAAgB;CAwB/B"}
|
|
@@ -113,6 +113,7 @@ export class McpWatcher {
|
|
|
113
113
|
embedFileCeiling;
|
|
114
114
|
extraIgnore;
|
|
115
115
|
debug;
|
|
116
|
+
onBatchFlushed;
|
|
116
117
|
fsWatcher;
|
|
117
118
|
gitWatcher;
|
|
118
119
|
// ── Coalescing queue (Step 1) ──────────────────────────────────────────────
|
|
@@ -141,6 +142,7 @@ export class McpWatcher {
|
|
|
141
142
|
this.embed = options.embed ?? true;
|
|
142
143
|
this.extraIgnore = options.ignore ?? [];
|
|
143
144
|
this.debug = !!process.env.OPENLORE_WATCH_DEBUG;
|
|
145
|
+
this.onBatchFlushed = options.onBatchFlushed;
|
|
144
146
|
}
|
|
145
147
|
// ── Lifecycle ──────────────────────────────────────────────────────────────
|
|
146
148
|
async start() {
|
|
@@ -407,6 +409,14 @@ export class McpWatcher {
|
|
|
407
409
|
// 5. One summary line per batch (Step 6). Per-file detail is behind debug.
|
|
408
410
|
const n = changedFiles.length;
|
|
409
411
|
process.stderr.write(`[mcp-watcher] ${isBulk ? `coalesced ${n} changes` : `updated ${n} file${n === 1 ? '' : 's'}`} (${Date.now() - t0}ms)\n`);
|
|
412
|
+
// Real change flushed (signatures + edges patched on disk). Hand off to any
|
|
413
|
+
// host lane — e.g. serve's debounced call-graph re-analyze. Reached only when
|
|
414
|
+
// a meaningful batch was processed (the no-op early returns above skip it).
|
|
415
|
+
// Best-effort: a host callback error must never break the watcher.
|
|
416
|
+
try {
|
|
417
|
+
this.onBatchFlushed?.(absPaths);
|
|
418
|
+
}
|
|
419
|
+
catch { /* host lane is best-effort */ }
|
|
410
420
|
}
|
|
411
421
|
/**
|
|
412
422
|
* Self-heal a schema-reset graph by spawning one detached `analyze --force`
|