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.
Files changed (145) hide show
  1. package/dist/bin.d.ts +3 -0
  2. package/dist/bin.d.ts.map +1 -0
  3. package/dist/bin.js +9 -0
  4. package/dist/bin.js.map +1 -0
  5. package/dist/cli.d.ts +6 -0
  6. package/dist/cli.d.ts.map +1 -0
  7. package/dist/cli.js +21 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/commands/doctor.d.ts +2 -0
  10. package/dist/commands/doctor.d.ts.map +1 -0
  11. package/dist/commands/doctor.js +19 -0
  12. package/dist/commands/doctor.js.map +1 -0
  13. package/dist/commands/hook.d.ts +2 -0
  14. package/dist/commands/hook.d.ts.map +1 -0
  15. package/dist/commands/hook.js +23 -0
  16. package/dist/commands/hook.js.map +1 -0
  17. package/dist/commands/index-cmd.d.ts +2 -0
  18. package/dist/commands/index-cmd.d.ts.map +1 -0
  19. package/dist/commands/index-cmd.js +47 -0
  20. package/dist/commands/index-cmd.js.map +1 -0
  21. package/dist/commands/index.d.ts +13 -0
  22. package/dist/commands/index.d.ts.map +1 -0
  23. package/dist/commands/index.js +15 -0
  24. package/dist/commands/index.js.map +1 -0
  25. package/dist/commands/init.d.ts +2 -0
  26. package/dist/commands/init.d.ts.map +1 -0
  27. package/dist/commands/init.js +22 -0
  28. package/dist/commands/init.js.map +1 -0
  29. package/dist/commands/mcp.d.ts +2 -0
  30. package/dist/commands/mcp.d.ts.map +1 -0
  31. package/dist/commands/mcp.js +71 -0
  32. package/dist/commands/mcp.js.map +1 -0
  33. package/dist/commands/rag.d.ts +2 -0
  34. package/dist/commands/rag.d.ts.map +1 -0
  35. package/dist/commands/rag.js +27 -0
  36. package/dist/commands/rag.js.map +1 -0
  37. package/dist/commands/start.d.ts +6 -0
  38. package/dist/commands/start.d.ts.map +1 -0
  39. package/dist/commands/start.js +76 -0
  40. package/dist/commands/start.js.map +1 -0
  41. package/dist/commands/status.d.ts +2 -0
  42. package/dist/commands/status.d.ts.map +1 -0
  43. package/dist/commands/status.js +29 -0
  44. package/dist/commands/status.js.map +1 -0
  45. package/dist/commands/statusline.d.ts +2 -0
  46. package/dist/commands/statusline.d.ts.map +1 -0
  47. package/dist/commands/statusline.js +90 -0
  48. package/dist/commands/statusline.js.map +1 -0
  49. package/dist/commands/swarm.d.ts +4 -0
  50. package/dist/commands/swarm.d.ts.map +1 -0
  51. package/dist/commands/swarm.js +48 -0
  52. package/dist/commands/swarm.js.map +1 -0
  53. package/dist/commands/uninstall.d.ts +2 -0
  54. package/dist/commands/uninstall.d.ts.map +1 -0
  55. package/dist/commands/uninstall.js +16 -0
  56. package/dist/commands/uninstall.js.map +1 -0
  57. package/dist/context.d.ts +13 -0
  58. package/dist/context.d.ts.map +1 -0
  59. package/dist/context.js +31 -0
  60. package/dist/context.js.map +1 -0
  61. package/dist/doctor/checks.d.ts +18 -0
  62. package/dist/doctor/checks.d.ts.map +1 -0
  63. package/dist/doctor/checks.js +269 -0
  64. package/dist/doctor/checks.js.map +1 -0
  65. package/dist/hooks/handlers.d.ts +21 -0
  66. package/dist/hooks/handlers.d.ts.map +1 -0
  67. package/dist/hooks/handlers.js +191 -0
  68. package/dist/hooks/handlers.js.map +1 -0
  69. package/dist/index.d.ts +9 -0
  70. package/dist/index.d.ts.map +1 -0
  71. package/dist/index.js +9 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/integration/claude-md.d.ts +6 -0
  74. package/dist/integration/claude-md.d.ts.map +1 -0
  75. package/dist/integration/claude-md.js +30 -0
  76. package/dist/integration/claude-md.js.map +1 -0
  77. package/dist/integration/gitignore.d.ts +3 -0
  78. package/dist/integration/gitignore.d.ts.map +1 -0
  79. package/dist/integration/gitignore.js +13 -0
  80. package/dist/integration/gitignore.js.map +1 -0
  81. package/dist/integration/init.d.ts +17 -0
  82. package/dist/integration/init.d.ts.map +1 -0
  83. package/dist/integration/init.js +86 -0
  84. package/dist/integration/init.js.map +1 -0
  85. package/dist/integration/json-utils.d.ts +13 -0
  86. package/dist/integration/json-utils.d.ts.map +1 -0
  87. package/dist/integration/json-utils.js +33 -0
  88. package/dist/integration/json-utils.js.map +1 -0
  89. package/dist/integration/manifest.d.ts +17 -0
  90. package/dist/integration/manifest.d.ts.map +1 -0
  91. package/dist/integration/manifest.js +26 -0
  92. package/dist/integration/manifest.js.map +1 -0
  93. package/dist/integration/materialize.d.ts +9 -0
  94. package/dist/integration/materialize.d.ts.map +1 -0
  95. package/dist/integration/materialize.js +21 -0
  96. package/dist/integration/materialize.js.map +1 -0
  97. package/dist/integration/mcp-config.d.ts +4 -0
  98. package/dist/integration/mcp-config.d.ts.map +1 -0
  99. package/dist/integration/mcp-config.js +11 -0
  100. package/dist/integration/mcp-config.js.map +1 -0
  101. package/dist/integration/settings.d.ts +7 -0
  102. package/dist/integration/settings.d.ts.map +1 -0
  103. package/dist/integration/settings.js +70 -0
  104. package/dist/integration/settings.js.map +1 -0
  105. package/dist/integration/uninstall.d.ts +10 -0
  106. package/dist/integration/uninstall.d.ts.map +1 -0
  107. package/dist/integration/uninstall.js +71 -0
  108. package/dist/integration/uninstall.js.map +1 -0
  109. package/dist/launcher.d.ts +8 -0
  110. package/dist/launcher.d.ts.map +1 -0
  111. package/dist/launcher.js +18 -0
  112. package/dist/launcher.js.map +1 -0
  113. package/dist/mcp/server.d.ts +27 -0
  114. package/dist/mcp/server.d.ts.map +1 -0
  115. package/dist/mcp/server.js +311 -0
  116. package/dist/mcp/server.js.map +1 -0
  117. package/dist/plugin-content.d.ts +21 -0
  118. package/dist/plugin-content.d.ts.map +1 -0
  119. package/dist/plugin-content.js +67 -0
  120. package/dist/plugin-content.js.map +1 -0
  121. package/dist/rag/format.d.ts +3 -0
  122. package/dist/rag/format.d.ts.map +1 -0
  123. package/dist/rag/format.js +12 -0
  124. package/dist/rag/format.js.map +1 -0
  125. package/dist/retrieval-runtime.d.ts +21 -0
  126. package/dist/retrieval-runtime.d.ts.map +1 -0
  127. package/dist/retrieval-runtime.js +47 -0
  128. package/dist/retrieval-runtime.js.map +1 -0
  129. package/dist/status-line/git.d.ts +3 -0
  130. package/dist/status-line/git.d.ts.map +1 -0
  131. package/dist/status-line/git.js +34 -0
  132. package/dist/status-line/git.js.map +1 -0
  133. package/dist/status-line/render.d.ts +29 -0
  134. package/dist/status-line/render.d.ts.map +1 -0
  135. package/dist/status-line/render.js +72 -0
  136. package/dist/status-line/render.js.map +1 -0
  137. package/dist/swarm-runtime.d.ts +11 -0
  138. package/dist/swarm-runtime.d.ts.map +1 -0
  139. package/dist/swarm-runtime.js +76 -0
  140. package/dist/swarm-runtime.js.map +1 -0
  141. package/dist/version.d.ts +2 -0
  142. package/dist/version.d.ts.map +1 -0
  143. package/dist/version.js +5 -0
  144. package/dist/version.js.map +1 -0
  145. package/package.json +43 -0
package/dist/bin.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import './commands/index.js';
3
+ //# sourceMappingURL=bin.d.ts.map
@@ -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
@@ -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
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=doctor.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hook.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index-cmd.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=init.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rag.d.ts.map
@@ -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,6 @@
1
+ export declare function resolveClaudeBin(): string;
2
+ export interface StartResult {
3
+ exitCode: number;
4
+ }
5
+ export declare function runStart(cwd: string, passthrough: string[]): Promise<StartResult>;
6
+ //# sourceMappingURL=start.d.ts.map
@@ -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":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,cAAc,GAAG,gCAAgC,CAAC;AAExD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,QAAQ,CAAC;AACtD,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,WAAqB;IAC/D,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oBAAoB,cAAc,iEAAiE,CACpG,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,CAAC;QAC9B,GAAG;QACH,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,gBAAgB,EAAE,OAAO;KAC1B,CAAC,CAAC;IACH,IAAI,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;QAClD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC3B,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvF,CAAC;aACF,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,SAAS,kFAAkF,CAChG,CAAC;YACF,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,WAAW,CAAC,EAAE;gBAClF,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;aACnB,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,SAAS,MAAM,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;gBAC1E,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE;IAC1B,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iFAAiF,CAAC;SAC9F,QAAQ,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,UAAoB,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QACzD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=status.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=statusline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../../src/commands/statusline.ts"],"names":[],"mappings":""}