MCPcopy Index your code
hub / github.com/forloopcodes/contextplus / main

Function main

src/index.ts:531–629  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

529);
530
531async function main() {
532 const args = process.argv.slice(2);
533 if (args[0] === "init") {
534 await runInitCommand(args.slice(1));
535 return;
536 }
537 if (args[0] === "skeleton" || args[0] === "tree") {
538 const targetRoot = args[1] ? resolve(args[1]) : process.cwd();
539 const tree = await getContextTree({
540 rootDir: targetRoot,
541 includeSymbols: true,
542 maxTokens: 50000,
543 });
544 process.stdout.write(tree + "\n");
545 return;
546 }
547 await ensureMcpDataDir(ROOT_DIR);
548 const trackerController = createEmbeddingTrackerController({
549 rootDir: ROOT_DIR,
550 mode: process.env.CONTEXTPLUS_EMBED_TRACKER,
551 debounceMs: Number.parseInt(process.env.CONTEXTPLUS_EMBED_TRACKER_DEBOUNCE_MS ?? "700", 10),
552 maxFilesPerTick: Number.parseInt(process.env.CONTEXTPLUS_EMBED_TRACKER_MAX_FILES ?? "8", 10),
553 });
554 const transport = new StdioServerTransport();
555 await server.connect(transport);
556
557 let shuttingDown = false;
558 let stopParentMonitor = () => { };
559 const idleMonitor = createIdleMonitor({
560 timeoutMs: getIdleShutdownMs(process.env.CONTEXTPLUS_IDLE_TIMEOUT_MS),
561 onIdle: () => requestShutdown("idle-timeout", 0),
562 isTransportAlive: () => process.stdin.readable && !process.stdin.destroyed,
563 });
564
565 noteServerActivity = idleMonitor.touch;
566 ensureTrackerRunning = trackerController.ensureStarted;
567
568 const closeServer = async () => {
569 const closable = server as unknown as { close?: () => Promise<void> | void };
570 if (typeof closable.close === "function") {
571 await closable.close();
572 }
573 };
574 const closeTransport = async () => {
575 const closable = transport as unknown as { close?: () => Promise<void> | void };
576 if (typeof closable.close === "function") {
577 await closable.close();
578 }
579 };
580 const shutdown = async (reason: string, exitCode: number = 0) => {
581 if (shuttingDown) return;
582 shuttingDown = true;
583 console.error(`Context+ MCP shutdown requested: ${reason}`);
584 await runCleanup({
585 cancelEmbeddings: cancelAllEmbeddings,
586 stopTracker: trackerController.stop,
587 closeServer,
588 closeTransport,

Callers 1

index.tsFile · 0.85

Calls 12

runInitCommandFunction · 0.85
getContextTreeFunction · 0.85
ensureMcpDataDirFunction · 0.85
createIdleMonitorFunction · 0.85
getIdleShutdownMsFunction · 0.85
requestShutdownFunction · 0.85
startParentMonitorFunction · 0.85
getParentPollMsFunction · 0.85
stopParentMonitorFunction · 0.85
isBrokenPipeErrorFunction · 0.85
noteServerActivityFunction · 0.85

Tested by

no test coverage detected