yandecode 0.1.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/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +9 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +21 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +19 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/hook.d.ts +2 -0
- package/dist/commands/hook.d.ts.map +1 -0
- package/dist/commands/hook.js +23 -0
- package/dist/commands/hook.js.map +1 -0
- package/dist/commands/index-cmd.d.ts +2 -0
- package/dist/commands/index-cmd.d.ts.map +1 -0
- package/dist/commands/index-cmd.js +47 -0
- package/dist/commands/index-cmd.js.map +1 -0
- package/dist/commands/index.d.ts +13 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +15 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +22 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/mcp.d.ts +2 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +71 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/rag.d.ts +2 -0
- package/dist/commands/rag.d.ts.map +1 -0
- package/dist/commands/rag.js +27 -0
- package/dist/commands/rag.js.map +1 -0
- package/dist/commands/start.d.ts +6 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +76 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +29 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/statusline.d.ts +2 -0
- package/dist/commands/statusline.d.ts.map +1 -0
- package/dist/commands/statusline.js +90 -0
- package/dist/commands/statusline.js.map +1 -0
- package/dist/commands/swarm.d.ts +4 -0
- package/dist/commands/swarm.d.ts.map +1 -0
- package/dist/commands/swarm.js +48 -0
- package/dist/commands/swarm.js.map +1 -0
- package/dist/commands/uninstall.d.ts +2 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +16 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/context.d.ts +13 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +31 -0
- package/dist/context.js.map +1 -0
- package/dist/doctor/checks.d.ts +18 -0
- package/dist/doctor/checks.d.ts.map +1 -0
- package/dist/doctor/checks.js +269 -0
- package/dist/doctor/checks.js.map +1 -0
- package/dist/hooks/handlers.d.ts +21 -0
- package/dist/hooks/handlers.d.ts.map +1 -0
- package/dist/hooks/handlers.js +191 -0
- package/dist/hooks/handlers.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/integration/claude-md.d.ts +6 -0
- package/dist/integration/claude-md.d.ts.map +1 -0
- package/dist/integration/claude-md.js +30 -0
- package/dist/integration/claude-md.js.map +1 -0
- package/dist/integration/gitignore.d.ts +3 -0
- package/dist/integration/gitignore.d.ts.map +1 -0
- package/dist/integration/gitignore.js +13 -0
- package/dist/integration/gitignore.js.map +1 -0
- package/dist/integration/init.d.ts +17 -0
- package/dist/integration/init.d.ts.map +1 -0
- package/dist/integration/init.js +86 -0
- package/dist/integration/init.js.map +1 -0
- package/dist/integration/json-utils.d.ts +13 -0
- package/dist/integration/json-utils.d.ts.map +1 -0
- package/dist/integration/json-utils.js +33 -0
- package/dist/integration/json-utils.js.map +1 -0
- package/dist/integration/manifest.d.ts +17 -0
- package/dist/integration/manifest.d.ts.map +1 -0
- package/dist/integration/manifest.js +26 -0
- package/dist/integration/manifest.js.map +1 -0
- package/dist/integration/materialize.d.ts +9 -0
- package/dist/integration/materialize.d.ts.map +1 -0
- package/dist/integration/materialize.js +21 -0
- package/dist/integration/materialize.js.map +1 -0
- package/dist/integration/mcp-config.d.ts +4 -0
- package/dist/integration/mcp-config.d.ts.map +1 -0
- package/dist/integration/mcp-config.js +11 -0
- package/dist/integration/mcp-config.js.map +1 -0
- package/dist/integration/settings.d.ts +7 -0
- package/dist/integration/settings.d.ts.map +1 -0
- package/dist/integration/settings.js +70 -0
- package/dist/integration/settings.js.map +1 -0
- package/dist/integration/uninstall.d.ts +10 -0
- package/dist/integration/uninstall.d.ts.map +1 -0
- package/dist/integration/uninstall.js +71 -0
- package/dist/integration/uninstall.js.map +1 -0
- package/dist/launcher.d.ts +8 -0
- package/dist/launcher.d.ts.map +1 -0
- package/dist/launcher.js +18 -0
- package/dist/launcher.js.map +1 -0
- package/dist/mcp/server.d.ts +27 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +311 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/plugin-content.d.ts +21 -0
- package/dist/plugin-content.d.ts.map +1 -0
- package/dist/plugin-content.js +67 -0
- package/dist/plugin-content.js.map +1 -0
- package/dist/rag/format.d.ts +3 -0
- package/dist/rag/format.d.ts.map +1 -0
- package/dist/rag/format.js +12 -0
- package/dist/rag/format.js.map +1 -0
- package/dist/retrieval-runtime.d.ts +21 -0
- package/dist/retrieval-runtime.d.ts.map +1 -0
- package/dist/retrieval-runtime.js +47 -0
- package/dist/retrieval-runtime.js.map +1 -0
- package/dist/status-line/git.d.ts +3 -0
- package/dist/status-line/git.d.ts.map +1 -0
- package/dist/status-line/git.js +34 -0
- package/dist/status-line/git.js.map +1 -0
- package/dist/status-line/render.d.ts +29 -0
- package/dist/status-line/render.d.ts.map +1 -0
- package/dist/status-line/render.js +72 -0
- package/dist/status-line/render.js.map +1 -0
- package/dist/swarm-runtime.d.ts +11 -0
- package/dist/swarm-runtime.d.ts.map +1 -0
- package/dist/swarm-runtime.js +76 -0
- package/dist/swarm-runtime.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +43 -0
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,qBAAqB,CAAC"}
|
package/dist/bin.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import './commands/index.js';
|
|
3
|
+
import { main } from './cli.js';
|
|
4
|
+
main(process.argv).catch((error) => {
|
|
5
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
6
|
+
process.stderr.write(`yandecode: ${message}\n`);
|
|
7
|
+
process.exitCode = 1;
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,OAAO,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
export type CommandRegistrar = (program: Command) => void;
|
|
3
|
+
export declare function registerCommand(registrar: CommandRegistrar): void;
|
|
4
|
+
export declare function buildProgram(): Command;
|
|
5
|
+
export declare function main(argv: string[]): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAI1D,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAEjE;AAED,wBAAgB,YAAY,IAAI,OAAO,CAStC;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { VERSION } from './version.js';
|
|
3
|
+
const registrars = [];
|
|
4
|
+
export function registerCommand(registrar) {
|
|
5
|
+
registrars.push(registrar);
|
|
6
|
+
}
|
|
7
|
+
export function buildProgram() {
|
|
8
|
+
const program = new Command();
|
|
9
|
+
program
|
|
10
|
+
.name('yandecode')
|
|
11
|
+
.description('YandeCode — local-first agent harness for Claude Code')
|
|
12
|
+
.version(VERSION, '-v, --version')
|
|
13
|
+
.showHelpAfterError();
|
|
14
|
+
for (const register of registrars)
|
|
15
|
+
register(program);
|
|
16
|
+
return program;
|
|
17
|
+
}
|
|
18
|
+
export async function main(argv) {
|
|
19
|
+
await buildProgram().parseAsync(argv);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,MAAM,UAAU,GAAuB,EAAE,CAAC;AAE1C,MAAM,UAAU,eAAe,CAAC,SAA2B;IACzD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,uDAAuD,CAAC;SACpE,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;SACjC,kBAAkB,EAAE,CAAC;IACxB,KAAK,MAAM,QAAQ,IAAI,UAAU;QAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,MAAM,YAAY,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { registerCommand } from '../cli.js';
|
|
2
|
+
import { defaultProbeVersion, doctorExitCode, formatDoctor, runDoctor } from '../doctor/checks.js';
|
|
3
|
+
import { VERSION } from '../version.js';
|
|
4
|
+
registerCommand((program) => {
|
|
5
|
+
program
|
|
6
|
+
.command('doctor')
|
|
7
|
+
.description('Check the YandeCode installation and this project')
|
|
8
|
+
.action(() => {
|
|
9
|
+
const results = runDoctor({
|
|
10
|
+
cwd: process.cwd(),
|
|
11
|
+
probeVersion: defaultProbeVersion,
|
|
12
|
+
nodeVersion: process.version,
|
|
13
|
+
yandecodeVersion: VERSION,
|
|
14
|
+
});
|
|
15
|
+
process.stdout.write(formatDoctor(results));
|
|
16
|
+
process.exitCode = doctorExitCode(results);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE;IAC1B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,OAAO,GAAG,SAAS,CAAC;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,YAAY,EAAE,mBAAmB;YACjC,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,gBAAgB,EAAE,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { registerCommand } from '../cli.js';
|
|
2
|
+
import { runHookCommand } from '../hooks/handlers.js';
|
|
3
|
+
async function readStdin() {
|
|
4
|
+
if (process.stdin.isTTY)
|
|
5
|
+
return '';
|
|
6
|
+
const chunks = [];
|
|
7
|
+
for await (const chunk of process.stdin)
|
|
8
|
+
chunks.push(Buffer.from(chunk));
|
|
9
|
+
return Buffer.concat(chunks).toString('utf8');
|
|
10
|
+
}
|
|
11
|
+
registerCommand((program) => {
|
|
12
|
+
program
|
|
13
|
+
.command('hook <event>')
|
|
14
|
+
.description('Claude Code hook entry point (reads the hook JSON from stdin)')
|
|
15
|
+
.action(async (event) => {
|
|
16
|
+
const stdinText = await readStdin();
|
|
17
|
+
const result = await runHookCommand(event, stdinText, process.cwd());
|
|
18
|
+
if (result.stdout)
|
|
19
|
+
process.stdout.write(result.stdout);
|
|
20
|
+
process.exitCode = result.exitCode;
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,KAAK,UAAU,SAAS;IACtB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE;IAC1B,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,+DAA+D,CAAC;SAC5E,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,MAAM,SAAS,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/index-cmd.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { registerCommand } from '../cli.js';
|
|
2
|
+
import { openRuntime } from '../context.js';
|
|
3
|
+
import { createRetrieval } from '../retrieval-runtime.js';
|
|
4
|
+
function printStatus(status) {
|
|
5
|
+
process.stdout.write(`documents ${status.documents}, chunks ${status.chunks}, dirty ${status.dirtyFiles}, generation ${status.generation}, vectors ${status.vectorCount}, inSync ${status.inSync}\n`);
|
|
6
|
+
}
|
|
7
|
+
registerCommand((program) => {
|
|
8
|
+
program
|
|
9
|
+
.command('index')
|
|
10
|
+
.description('Build or update the local RAG index for this repository')
|
|
11
|
+
.option('--full', 'reprocess every file from scratch, bumping the index generation')
|
|
12
|
+
.option('--rebuild-vectors', 'rebuild the vector index from stored embeddings without re-embedding')
|
|
13
|
+
.option('--status', 'print index status and exit without indexing')
|
|
14
|
+
.action(async (options) => {
|
|
15
|
+
const rt = openRuntime(process.cwd());
|
|
16
|
+
const retrieval = createRetrieval(rt);
|
|
17
|
+
try {
|
|
18
|
+
if (options.status) {
|
|
19
|
+
printStatus(retrieval.indexing.status());
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const mode = options.rebuildVectors
|
|
23
|
+
? 'rebuild-vectors'
|
|
24
|
+
: options.full
|
|
25
|
+
? 'full'
|
|
26
|
+
: 'incremental';
|
|
27
|
+
const report = await retrieval.indexing.run({
|
|
28
|
+
mode,
|
|
29
|
+
onProgress: (p) => {
|
|
30
|
+
process.stdout.write(`\r${p.phase.padEnd(8)} ${p.done}/${p.total}${p.path ? ` ${p.path}` : ''}${' '.repeat(20)}`);
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
process.stdout.write('\n');
|
|
34
|
+
process.stdout.write(`added ${report.added}, changed ${report.changed}, removed ${report.removed}, unchanged ${report.unchanged}, chunks ${report.chunks}, generation ${report.generation}, ${report.durationMs}ms\n`);
|
|
35
|
+
const status = retrieval.indexing.status();
|
|
36
|
+
if (!status.inSync) {
|
|
37
|
+
process.stderr.write('index is out of sync after the run; try "yandecode index --rebuild-vectors"\n');
|
|
38
|
+
process.exitCode = 1;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
await retrieval.dispose();
|
|
43
|
+
rt.close();
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=index-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-cmd.js","sourceRoot":"","sources":["../../src/commands/index-cmd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,SAAS,WAAW,CAAC,MAAmB;IACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,MAAM,CAAC,SAAS,YAAY,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,UAAU,gBAAgB,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,WAAW,YAAY,MAAM,CAAC,MAAM,IAAI,CAChL,CAAC;AACJ,CAAC;AAED,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE;IAC1B,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,iEAAiE,CAAC;SACnF,MAAM,CACL,mBAAmB,EACnB,sEAAsE,CACvE;SACA,MAAM,CAAC,UAAU,EAAE,8CAA8C,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,OAAuE,EAAE,EAAE;QACxF,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAc,OAAO,CAAC,cAAc;gBAC5C,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,OAAO,CAAC,IAAI;oBACZ,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,aAAa,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC1C,IAAI;gBACJ,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAC5F,CAAC;gBACJ,CAAC;aACF,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,SAAS,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC,OAAO,eAAe,MAAM,CAAC,SAAS,YAAY,MAAM,CAAC,MAAM,gBAAgB,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,MAAM,CACjM,CAAC;YACF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+EAA+E,CAChF,CAAC;gBACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAC1B,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import './init.js';
|
|
2
|
+
import './uninstall.js';
|
|
3
|
+
import './doctor.js';
|
|
4
|
+
import './status.js';
|
|
5
|
+
import './hook.js';
|
|
6
|
+
import './mcp.js';
|
|
7
|
+
import './rag.js';
|
|
8
|
+
import './index-cmd.js';
|
|
9
|
+
import './start.js';
|
|
10
|
+
import './swarm.js';
|
|
11
|
+
import './statusline.js';
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,CAAC;AACnB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AACrB,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC;AAClB,OAAO,UAAU,CAAC;AAClB,OAAO,gBAAgB,CAAC;AACxB,OAAO,YAAY,CAAC;AACpB,OAAO,YAAY,CAAC;AACpB,OAAO,iBAAiB,CAAC;AACzB,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Each command module registers itself via registerCommand() on import.
|
|
2
|
+
// Later tasks add one `import './<command>.js';` line here.
|
|
3
|
+
import './init.js';
|
|
4
|
+
import './uninstall.js';
|
|
5
|
+
import './doctor.js';
|
|
6
|
+
import './status.js';
|
|
7
|
+
import './hook.js';
|
|
8
|
+
import './mcp.js';
|
|
9
|
+
import './rag.js';
|
|
10
|
+
import './index-cmd.js';
|
|
11
|
+
import './start.js';
|
|
12
|
+
import './swarm.js';
|
|
13
|
+
import './statusline.js';
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,4DAA4D;AAC5D,OAAO,WAAW,CAAC;AACnB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC;AACrB,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC;AAClB,OAAO,UAAU,CAAC;AAClB,OAAO,gBAAgB,CAAC;AACxB,OAAO,YAAY,CAAC;AACpB,OAAO,YAAY,CAAC;AACpB,OAAO,iBAAiB,CAAC;AACzB,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { registerCommand } from '../cli.js';
|
|
2
|
+
import { runInit } from '../integration/init.js';
|
|
3
|
+
registerCommand((program) => {
|
|
4
|
+
program
|
|
5
|
+
.command('init')
|
|
6
|
+
.description('Set up YandeCode in the current project (idempotent, non-destructive)')
|
|
7
|
+
.option('--force', 'overwrite managed files even if you edited them', false)
|
|
8
|
+
.action(async (opts) => {
|
|
9
|
+
const report = await runInit(process.cwd(), { force: opts.force });
|
|
10
|
+
const counts = report.files.reduce((acc, f) => ({ ...acc, [f.action]: (acc[f.action] ?? 0) + 1 }), {});
|
|
11
|
+
process.stdout.write(`YandeCode initialized in ${report.root}\n`);
|
|
12
|
+
process.stdout.write(` managed files: ${Object.entries(counts)
|
|
13
|
+
.map(([k, v]) => `${v} ${k}`)
|
|
14
|
+
.join(', ')}\n`);
|
|
15
|
+
for (const f of report.files.filter((x) => x.action === 'preserved')) {
|
|
16
|
+
process.stdout.write(` preserved (edited by you, use --force to overwrite): ${f.path}\n`);
|
|
17
|
+
}
|
|
18
|
+
process.stdout.write(` config: ${report.configCreated ? 'created yandecode.json' : 'kept yandecode.json'}\n`);
|
|
19
|
+
process.stdout.write('Next: yandecode doctor, then yandecode index, then yandecode start\n');
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE;IAC1B,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uEAAuE,CAAC;SACpF,MAAM,CAAC,SAAS,EAAE,iDAAiD,EAAE,KAAK,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAC9D,EAAE,CACH,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;QAClE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oBAAoB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAClB,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,qBAAqB,IAAI,CACzF,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
2
|
+
import { registerCommand } from '../cli.js';
|
|
3
|
+
import { openRuntime } from '../context.js';
|
|
4
|
+
import { createMcpServer } from '../mcp/server.js';
|
|
5
|
+
import { createProvider, createRetrieval } from '../retrieval-runtime.js';
|
|
6
|
+
import { createSwarmRuntime } from '../swarm-runtime.js';
|
|
7
|
+
registerCommand((program) => {
|
|
8
|
+
const mcp = program.command('mcp').description('MCP server commands');
|
|
9
|
+
mcp
|
|
10
|
+
.command('serve')
|
|
11
|
+
.description('Run the YandeCode MCP server over stdio (used by Claude Code)')
|
|
12
|
+
.action(async () => {
|
|
13
|
+
const rt = openRuntime(process.cwd());
|
|
14
|
+
const AUTO_REINDEX_MAX_DIRTY = 20;
|
|
15
|
+
// One long-lived embedding provider for the whole server process (mirrors swarm-runtime.ts's
|
|
16
|
+
// memory provider): the ONNX pipeline lazy-loads on first use and idle-times-out on its own,
|
|
17
|
+
// so holding it here means rag_search no longer reconstructs it on every single call.
|
|
18
|
+
// documents/chunker/index/retriever are still rebuilt fresh on every call below, so index
|
|
19
|
+
// freshness after an incremental reindex is unaffected.
|
|
20
|
+
const sharedProvider = createProvider(rt);
|
|
21
|
+
const search = async (query, options) => {
|
|
22
|
+
const dirty = rt.index.listDirty().length;
|
|
23
|
+
if (dirty >= 1 && dirty <= AUTO_REINDEX_MAX_DIRTY) {
|
|
24
|
+
const pre = createRetrieval(rt, sharedProvider);
|
|
25
|
+
try {
|
|
26
|
+
await pre.indexing.run({ mode: 'incremental' });
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
await pre.dispose();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Re-created below so the loaded vector index reflects any reindex that just ran.
|
|
33
|
+
const retrieval = createRetrieval(rt, sharedProvider);
|
|
34
|
+
try {
|
|
35
|
+
return await retrieval.retriever.search(query, options);
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
await retrieval.dispose();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const note = () => {
|
|
42
|
+
const dirty = rt.index.listDirty().length;
|
|
43
|
+
return dirty > AUTO_REINDEX_MAX_DIRTY
|
|
44
|
+
? `NOTE: ${dirty} files changed since the last index; run "yandecode index".`
|
|
45
|
+
: null;
|
|
46
|
+
};
|
|
47
|
+
const swarmRt = await createSwarmRuntime(rt);
|
|
48
|
+
const server = createMcpServer({
|
|
49
|
+
rt,
|
|
50
|
+
search,
|
|
51
|
+
note,
|
|
52
|
+
swarmService: swarmRt.swarmService,
|
|
53
|
+
messages: swarmRt.messages,
|
|
54
|
+
memoryService: swarmRt.memoryService,
|
|
55
|
+
memoryRetriever: swarmRt.memoryRetriever,
|
|
56
|
+
});
|
|
57
|
+
const transport = new StdioServerTransport();
|
|
58
|
+
await rt.events.emit({ event: 'mcp_started' });
|
|
59
|
+
const shutdown = async () => {
|
|
60
|
+
await rt.events.emit({ event: 'mcp_stopped' });
|
|
61
|
+
await server.close();
|
|
62
|
+
await sharedProvider.dispose();
|
|
63
|
+
rt.close();
|
|
64
|
+
};
|
|
65
|
+
process.stdin.on('close', () => void shutdown());
|
|
66
|
+
process.on('SIGINT', () => void shutdown().then(() => process.exit(0)));
|
|
67
|
+
process.on('SIGTERM', () => void shutdown().then(() => process.exit(0)));
|
|
68
|
+
await server.connect(transport);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag.d.ts","sourceRoot":"","sources":["../../src/commands/rag.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { registerCommand } from '../cli.js';
|
|
2
|
+
import { openRuntime } from '../context.js';
|
|
3
|
+
import { formatRagResults } from '../rag/format.js';
|
|
4
|
+
import { createRetrieval } from '../retrieval-runtime.js';
|
|
5
|
+
registerCommand((program) => {
|
|
6
|
+
const rag = program.command('rag').description('RAG search commands');
|
|
7
|
+
rag
|
|
8
|
+
.command('search <query>')
|
|
9
|
+
.description('Hybrid search over the local RAG index')
|
|
10
|
+
.option('--limit <n>', 'max results', (v) => Number.parseInt(v, 10))
|
|
11
|
+
.option('--json', 'print raw JSON instead of formatted text')
|
|
12
|
+
.action(async (query, options) => {
|
|
13
|
+
const rt = openRuntime(process.cwd());
|
|
14
|
+
const retrieval = createRetrieval(rt);
|
|
15
|
+
try {
|
|
16
|
+
const hits = await retrieval.retriever.search(query, {
|
|
17
|
+
limit: options.limit ?? rt.config.rag.maxResults,
|
|
18
|
+
});
|
|
19
|
+
process.stdout.write(options.json ? `${JSON.stringify(hits, null, 2)}\n` : formatRagResults(query, hits));
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
await retrieval.dispose();
|
|
23
|
+
rt.close();
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=rag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag.js","sourceRoot":"","sources":["../../src/commands/rag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IACtE,GAAG;SACA,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACnE,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAA2C,EAAE,EAAE;QAC3E,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE;gBACnD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU;aACjD,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CACpF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAC1B,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AASA,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CA4DvF"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { spawn, spawnSync } from 'node:child_process';
|
|
2
|
+
import { registerCommand } from '../cli.js';
|
|
3
|
+
import { openRuntime } from '../context.js';
|
|
4
|
+
import { defaultProbeVersion, doctorExitCode, formatDoctor, runDoctor } from '../doctor/checks.js';
|
|
5
|
+
import { createRetrieval } from '../retrieval-runtime.js';
|
|
6
|
+
import { VERSION } from '../version.js';
|
|
7
|
+
const DANGEROUS_FLAG = '--dangerously-skip-permissions';
|
|
8
|
+
export function resolveClaudeBin() {
|
|
9
|
+
return process.env.YANDECODE_CLAUDE_BIN ?? 'claude';
|
|
10
|
+
}
|
|
11
|
+
export async function runStart(cwd, passthrough) {
|
|
12
|
+
if (passthrough.includes(DANGEROUS_FLAG)) {
|
|
13
|
+
process.stderr.write(`refusing to pass ${DANGEROUS_FLAG}: YandeCode relies on Claude Code's normal permission prompts\n`);
|
|
14
|
+
return { exitCode: 1 };
|
|
15
|
+
}
|
|
16
|
+
const doctorResults = runDoctor({
|
|
17
|
+
cwd,
|
|
18
|
+
probeVersion: defaultProbeVersion,
|
|
19
|
+
nodeVersion: process.version,
|
|
20
|
+
yandecodeVersion: VERSION,
|
|
21
|
+
});
|
|
22
|
+
if (doctorExitCode(doctorResults) !== 0) {
|
|
23
|
+
process.stdout.write(formatDoctor(doctorResults));
|
|
24
|
+
return { exitCode: 1 };
|
|
25
|
+
}
|
|
26
|
+
const rt = openRuntime(cwd);
|
|
27
|
+
try {
|
|
28
|
+
const retrieval = createRetrieval(rt);
|
|
29
|
+
try {
|
|
30
|
+
await retrieval.indexing.run({
|
|
31
|
+
mode: 'incremental',
|
|
32
|
+
onProgress: (p) => {
|
|
33
|
+
process.stdout.write(`\r${p.phase.padEnd(8)} ${p.done}/${p.total}${' '.repeat(20)}`);
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
process.stdout.write('\n');
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
await retrieval.dispose();
|
|
40
|
+
}
|
|
41
|
+
const claudeBin = resolveClaudeBin();
|
|
42
|
+
const probe = spawnSync(claudeBin, ['--version'], { encoding: 'utf8', timeout: 5000 });
|
|
43
|
+
if (probe.status !== 0) {
|
|
44
|
+
process.stderr.write(`"${claudeBin} --version" failed; install Claude Code: https://code.claude.com/docs/en/setup\n`);
|
|
45
|
+
return { exitCode: 1 };
|
|
46
|
+
}
|
|
47
|
+
await rt.events.emit({ event: 'start_launched', data: { args: passthrough } });
|
|
48
|
+
const exitCode = await new Promise((resolve) => {
|
|
49
|
+
const child = spawn(claudeBin, ['--agent', 'yandecode-dispatcher', ...passthrough], {
|
|
50
|
+
stdio: 'inherit',
|
|
51
|
+
cwd: rt.paths.root,
|
|
52
|
+
});
|
|
53
|
+
child.on('exit', (code) => resolve(code ?? 1));
|
|
54
|
+
child.on('error', (err) => {
|
|
55
|
+
process.stderr.write(`failed to launch "${claudeBin}": ${err.message}\n`);
|
|
56
|
+
resolve(1);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
await rt.events.emit({ event: 'start_exited', data: { exitCode } });
|
|
60
|
+
return { exitCode };
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
rt.close();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
registerCommand((program) => {
|
|
67
|
+
program
|
|
68
|
+
.command('start')
|
|
69
|
+
.description('Index the repository and launch Claude Code with the YandeCode dispatcher agent')
|
|
70
|
+
.argument('[claudeArgs...]', 'arguments passed through to claude after --')
|
|
71
|
+
.action(async (claudeArgs) => {
|
|
72
|
+
const result = await runStart(process.cwd(), claudeArgs);
|
|
73
|
+
process.exitCode = result.exitCode;
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SCHEMA_VERSION } from '@yandecode/core';
|
|
2
|
+
import { registerCommand } from '../cli.js';
|
|
3
|
+
import { openRuntime } from '../context.js';
|
|
4
|
+
registerCommand((program) => {
|
|
5
|
+
program
|
|
6
|
+
.command('status')
|
|
7
|
+
.description('Show workspace, index and recent activity')
|
|
8
|
+
.action(() => {
|
|
9
|
+
const rt = openRuntime(process.cwd());
|
|
10
|
+
try {
|
|
11
|
+
const counts = rt.index.counts();
|
|
12
|
+
const dirty = rt.index.listDirty().length;
|
|
13
|
+
const meta = rt.index.getMeta('repository');
|
|
14
|
+
process.stdout.write(`Workspace ${rt.paths.root}\n`);
|
|
15
|
+
process.stdout.write(`Config rag=${rt.config.rag.enabled ? 'on' : 'off'} maxResults=${rt.config.rag.maxResults} model=${rt.config.rag.embeddingModel}\n`);
|
|
16
|
+
process.stdout.write(`Schema version ${SCHEMA_VERSION}\n`);
|
|
17
|
+
process.stdout.write(`Repository index ${counts.documents} documents, ${counts.chunks} chunks, generation ${meta?.generation ?? 0}\n`);
|
|
18
|
+
process.stdout.write(`Dirty files ${dirty}\n`);
|
|
19
|
+
const recent = rt.events.recent(5);
|
|
20
|
+
process.stdout.write('Recent events\n');
|
|
21
|
+
for (const e of recent)
|
|
22
|
+
process.stdout.write(` ${e.ts} ${e.event}\n`);
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
rt.close();
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE;IAC1B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;YAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4BAA4B,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,IAAI,CAClJ,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,cAAc,IAAI,CAAC,CAAC;YACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wBAAwB,MAAM,CAAC,SAAS,eAAe,MAAM,CAAC,MAAM,uBAAuB,IAAI,EAAE,UAAU,IAAI,CAAC,IAAI,CACrH,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,KAAK,IAAI,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,MAAM;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC1E,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../../src/commands/statusline.ts"],"names":[],"mappings":""}
|