@vivantel/virage-cli 0.1.46 → 0.1.48

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.
@@ -6,7 +6,27 @@ export async function runQuery(queryText, opts) {
6
6
  const filter = opts.branch
7
7
  ? { branch: opts.branch }
8
8
  : undefined;
9
- const results = await cfg.vectorStore.search(queryEmbedding, opts.topK, undefined, filter ? { filter } : undefined);
9
+ const useHybrid = opts.hybrid ?? cfg.search?.hybrid ?? false;
10
+ const hybridAlpha = opts.hybridAlpha ?? cfg.search?.hybridAlpha;
11
+ const searchOptions = {
12
+ ...(filter ? { filter } : {}),
13
+ ...(useHybrid ? { hybrid: true, hybridAlpha, queryText } : {}),
14
+ };
15
+ let results = await cfg.vectorStore.search(queryEmbedding, opts.topK, undefined, searchOptions);
16
+ // Apply re-ranker from config, or bootstrap one if --rerank flag is set
17
+ let reranker = cfg.search?.reranker;
18
+ if (!reranker && opts.rerank) {
19
+ try {
20
+ const mod = await import("@vivantel/virage-reranker-cross-encoder");
21
+ reranker = mod.createReranker({});
22
+ }
23
+ catch {
24
+ console.error("Install @vivantel/virage-reranker-cross-encoder to use --rerank:\n npm install @vivantel/virage-reranker-cross-encoder");
25
+ }
26
+ }
27
+ if (reranker) {
28
+ results = await reranker.rerank(queryText, results, opts.topK);
29
+ }
10
30
  await cfg.vectorStore.close?.();
11
31
  if (opts.json) {
12
32
  console.log(JSON.stringify(results.map((r) => ({
@@ -21,7 +41,7 @@ export async function runQuery(queryText, opts) {
21
41
  console.log("No results found.");
22
42
  return;
23
43
  }
24
- console.log(`\nšŸ” Top ${results.length} result(s) for: "${queryText}"\n`);
44
+ console.log(`\nTop ${results.length} result(s) for: "${queryText}"\n`);
25
45
  console.log("─".repeat(60));
26
46
  for (let i = 0; i < results.length; i++) {
27
47
  const r = results[i];
@@ -1 +1 @@
1
- {"version":3,"file":"query-cmd.js","sourceRoot":"","sources":["../../src/cli/query-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAUnD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,SAAiB,EACjB,IAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAwC,IAAI,CAAC,MAAM;QAC7D,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACzB,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,OAAO,GAAyB,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,CAChE,cAAc,EACd,IAAI,CAAC,IAAI,EACT,SAAS,EACT,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAChC,CAAC;IAEF,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;IAEhC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,EACH,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,oBAAoB,SAAS,KAAK,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,MAAM,GACV,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACnE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"query-cmd.js","sourceRoot":"","sources":["../../src/cli/query-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAanD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,SAAiB,EACjB,IAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAwC,IAAI,CAAC,MAAM;QAC7D,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACzB,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAEhE,MAAM,aAAa,GAAkB;QACnC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;IAEF,IAAI,OAAO,GAAyB,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,CAC9D,cAAc,EACd,IAAI,CAAC,IAAI,EACT,SAAS,EACT,aAAa,CACd,CAAC;IAEF,wEAAwE;IACxE,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IACpC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;YACpE,QAAQ,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CACX,yHAAyH,CAC1H,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;IAEhC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,EACH,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,MAAM,oBAAoB,SAAS,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,MAAM,GACV,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACnE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vivantel/virage-cli",
3
- "version": "0.1.46",
3
+ "version": "0.1.48",
4
4
  "type": "module",
5
5
  "description": "CLI for the Virage RAG pipeline — provides the virage command",
6
6
  "repository": {
@@ -52,7 +52,7 @@
52
52
  "dependencies": {
53
53
  "@inquirer/prompts": "^8.5.2",
54
54
  "@vivantel/virage-agent-claude": "0.2.20",
55
- "@vivantel/virage-core": "0.2.26",
55
+ "@vivantel/virage-core": "0.2.28",
56
56
  "@vivantel/virage-skills": "0.1.7",
57
57
  "chokidar": "^5.0.0",
58
58
  "cli-progress": "^3.12.0",
@@ -1 +0,0 @@
1
- body{color:#eee;background:#1a1a2e;margin:0;padding:0;font-family:monospace}.layout{min-height:100vh;display:flex}.sidebar{background:#0f1b2d;border-right:1px solid #1e3a5f;flex-direction:column;gap:4px;width:160px;min-width:160px;padding:16px 0;display:flex}.sidebar-logo{color:#7ec8e3;border-bottom:1px solid #1e3a5f;margin-bottom:8px;padding:4px 16px 12px;font-size:1.2em;font-weight:700}.sidebar a{color:#aaa;border-left:3px solid #0000;padding:8px 16px;text-decoration:none;display:block}.sidebar a:hover{color:#eee;background:#16213e}.sidebar a.active{color:#7ec8e3;background:#16213e;border-left-color:#7ec8e3}.main-content{flex:1;max-width:1000px;padding:24px 32px;overflow-y:auto}.container{max-width:900px}h1{color:#7ec8e3}h2{color:#7ec8e3;margin-top:0}.card{background:#16213e;border-radius:8px;margin:12px 0;padding:16px}.card.error{border-left:4px solid #ff6b6b}.card.warning{color:#f5a623;border-left:4px solid #f5a623}.metrics{flex-wrap:wrap;gap:8px;display:flex}.metric{margin:8px 16px;display:inline-block}.metric .value{color:#7ec8e3;font-size:2em}.metric .label{color:#888;font-size:.8em}.bar{background:#0f3460;border-radius:4px;height:16px;margin:4px 0;position:relative}.bar-fill{background:#7ec8e3;border-radius:4px;height:100%}.anomaly{color:#ff6b6b}table{border-collapse:collapse;width:100%}td,th{text-align:left;border-bottom:1px solid #333;padding:6px 12px}.project-switcher{background:#16213e;border-radius:8px;flex-direction:column;gap:8px;margin-bottom:4px;padding:12px 16px;display:flex}.project-header-row{align-items:center;gap:10px;display:flex}.project-current{color:#7ec8e3;font-size:1.1em;font-weight:700}.project-dropdown-toggle{color:#7ec8e3;cursor:pointer;background:0 0;border:1px solid #0f3460;border-radius:4px;padding:3px 10px;font-family:monospace;font-size:.85em}.project-dropdown-toggle:hover{background:#0f3460}.project-list{border:1px solid #0f3460;border-radius:4px;margin:0;padding:0;list-style:none;overflow:hidden}.project-list li{cursor:pointer;justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.project-list li:hover{background:#0f3460}.project-list li.active{color:#7ec8e3;cursor:default;background:#0f3460}.project-list .project-path{color:#888;font-size:.75em}.project-add-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-add-form input{color:#eee;background:#0f3460;border:1px solid #333;border-radius:4px;flex:1;min-width:200px;padding:5px 10px;font-family:monospace;font-size:.9em}.project-add-form input:focus{border-color:#7ec8e3;outline:none}.project-add-form button{color:#7ec8e3;cursor:pointer;background:#0f3460;border:1px solid #7ec8e3;border-radius:4px;padding:5px 14px;font-family:monospace}.project-add-form button:hover{color:#1a1a2e;background:#7ec8e3}.project-add-error{color:#ff6b6b;width:100%;font-size:.85em}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}button,select,input[type=text],input[type=range]{font-family:monospace}button{color:#7ec8e3;cursor:pointer;background:#0f3460;border:1px solid #7ec8e3;border-radius:4px;padding:5px 14px}button:hover:not(:disabled){color:#1a1a2e;background:#7ec8e3}button:disabled{opacity:.5;cursor:not-allowed}.btn-danger{color:#ff6b6b;border-color:#ff6b6b}.btn-danger:hover:not(:disabled){color:#1a1a2e;background:#ff6b6b}.btn-sm{padding:2px 8px;font-size:.85em}select{color:#eee;background:#0f3460;border:1px solid #333;border-radius:4px;padding:5px 10px}.confirm-inline{align-items:center;gap:4px;display:flex}.chunk-table{border-collapse:collapse;width:100%;font-size:.9em}.chunk-table th{color:#7ec8e3;border-bottom:2px solid #1e3a5f;padding:6px 10px}.chunk-table td{vertical-align:top;border-bottom:1px solid #1e2540;padding:5px 10px}.source-file{color:#7ec8e3;white-space:nowrap;font-size:.85em}.content-preview{color:#ccc}.hash{color:#555;white-space:nowrap;font-size:.8em}.search-form{margin-bottom:16px}.search-input{color:#eee;box-sizing:border-box;background:#0f3460;border:1px solid #333;border-radius:4px;width:100%;margin-bottom:8px;padding:8px 12px;font-size:1em}.search-input:focus{border-color:#7ec8e3;outline:none}.search-controls{align-items:center;gap:12px;display:flex}.search-results{flex-direction:column;gap:10px;margin-top:12px;display:flex}.search-result-card{cursor:default}.result-header{justify-content:space-between;margin-bottom:6px;display:flex}.source-badge{color:#7ec8e3;background:#0f3460;border-radius:4px;padding:2px 8px;font-size:.8em}.similarity-badge{color:#7ec87e;background:#1a3a1a;border-radius:4px;padding:2px 8px;font-size:.8em}.result-content{color:#ccc;white-space:pre-wrap;margin:0;font-size:.9em}.pipeline-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.pipeline-log{white-space:pre-wrap;color:#7ec8e3;background:#0a0e1a;border:1px solid #1e3a5f;border-radius:6px;min-height:240px;max-height:480px;padding:14px;font-size:.9em;line-height:1.5;overflow-y:auto}.status-badge{border-radius:4px;padding:3px 10px;font-size:.85em;font-weight:700}.status-disconnected{color:#888;background:#222}.status-connecting{color:#ac8;background:#1a2a10}.status-connected{color:#7ec87e;background:#0a2a10}.status-error{color:#ff6b6b;background:#2a0a0a}.experiment-table{border-collapse:collapse;width:100%;font-size:.9em}.experiment-table th{color:#7ec8e3;border-bottom:2px solid #1e3a5f;padding:6px 10px}.experiment-table td{vertical-align:middle;border-bottom:1px solid #1e2540;padding:5px 10px}.experiment-table .expanded-row td{background:#111a2e}.row-actions{gap:4px;display:flex}.experiment-detail{margin:4px 0 8px;font-size:.9em}.experiment-detail pre{background:#0a0e1a;border-radius:4px;padding:10px;overflow-x:auto}.compare-result table{font-size:.9em}.compare-result td{padding:4px 10px}.badge{border-radius:4px;padding:2px 8px;font-size:.85em;font-weight:700}.badge-accept{color:#7ec87e;background:#0a2a10}.badge-reject{color:#ff6b6b;background:#2a0a0a}.badge-inconclusive{color:#cc6;background:#2a2a0a}