vexp-cli 1.2.14 → 1.2.16

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.
@@ -16,6 +16,7 @@ const VEXP_MARKER_RE = /<!-- vexp(?:\s+v[\d.]+)? -->/;
16
16
  const VEXP_MARKER_END = "<!-- /vexp -->";
17
17
  // All vexp MCP tools (all read-only — safe to pre-approve).
18
18
  const VEXP_TOOLS = [
19
+ "run_pipeline",
19
20
  "get_context_capsule",
20
21
  "get_impact_graph",
21
22
  "search_logic_flow",
@@ -149,8 +150,8 @@ export function configureAgents(workspaceRoot, binaryPath, version, agentFilter)
149
150
  customCommands: [
150
151
  {
151
152
  name: "vexp-context",
152
- description: "Get vexp context capsule for current task",
153
- prompt: "{{{ input }}}\n\nFirst, call get_context_capsule with the above task description.",
153
+ description: "Get vexp context for current task",
154
+ prompt: "{{{ input }}}\n\nFirst, call run_pipeline with the above task description.",
154
155
  },
155
156
  ],
156
157
  contextProviders: [
@@ -229,12 +230,19 @@ function appendOrCreate(filePath, content, version) {
229
230
  fs.appendFileSync(filePath, "\n\n" + content);
230
231
  return "appended";
231
232
  }
232
- const versionMatch = markerMatch[0].match(/v([\d.]+)/);
233
- if (versionMatch && versionMatch[1] === version)
234
- return "skipped";
235
- const startIdx = existing.indexOf(markerMatch[0]);
233
+ // Find start of the LINE containing the marker (not the marker itself).
234
+ // The marker may be mid-line (e.g. `## heading <!-- vexp v1.2.14 -->`),
235
+ // so we walk backwards to the previous newline to avoid duplicating the heading.
236
+ const markerIdx = existing.indexOf(markerMatch[0]);
237
+ let startIdx = markerIdx;
238
+ while (startIdx > 0 && existing[startIdx - 1] !== '\n') {
239
+ startIdx--;
240
+ }
236
241
  const endIdx = existing.indexOf(VEXP_MARKER_END);
237
242
  if (endIdx !== -1) {
243
+ const existingSection = existing.substring(startIdx, endIdx + VEXP_MARKER_END.length);
244
+ if (existingSection === content)
245
+ return "skipped"; // truly identical → no write
238
246
  const before = existing.substring(0, startIdx);
239
247
  const after = existing.substring(endIdx + VEXP_MARKER_END.length);
240
248
  fs.writeFileSync(filePath, before + content + after, "utf-8");
@@ -255,27 +263,31 @@ function mergeJsonConfig(filePath, mergePayload, version) {
255
263
  // Malformed JSON: overwrite
256
264
  }
257
265
  }
258
- const existingVersion = existing.__vexp_version ?? (existing.__vexp ? "0.0.0" : undefined);
259
- if (existingVersion === version)
260
- return "skipped";
266
+ // Build the merged result first, then compare to avoid unnecessary writes.
267
+ const merged = { ...existing };
261
268
  for (const [key, value] of Object.entries(mergePayload)) {
262
269
  if (typeof value === "object" && value !== null && !Array.isArray(value)) {
263
- existing[key] = {
264
- ...(existing[key] ?? {}),
270
+ merged[key] = {
271
+ ...(merged[key] ?? {}),
265
272
  ...value,
266
273
  };
267
274
  }
268
- else if (Array.isArray(value) && Array.isArray(existing[key])) {
269
- existing[key] = [...existing[key], ...value];
275
+ else if (Array.isArray(value) && Array.isArray(merged[key])) {
276
+ merged[key] = [...merged[key], ...value];
270
277
  }
271
278
  else {
272
- existing[key] = value;
279
+ merged[key] = value;
273
280
  }
274
281
  }
275
- delete existing.__vexp;
276
- existing.__vexp_version = version;
282
+ delete merged.__vexp;
283
+ merged.__vexp_version = version;
284
+ // Compare serialized output — skip if truly identical
285
+ const mergedStr = JSON.stringify(merged, null, 2);
286
+ const existingStr = JSON.stringify(existing, null, 2);
287
+ if (mergedStr === existingStr)
288
+ return "skipped";
277
289
  fs.mkdirSync(path.dirname(filePath), { recursive: true });
278
- fs.writeFileSync(filePath, JSON.stringify(existing, null, 2), "utf-8");
290
+ fs.writeFileSync(filePath, mergedStr, "utf-8");
279
291
  return "merged";
280
292
  }
281
293
  // ---------------------------------------------------------------------------
@@ -433,95 +445,90 @@ function generateAgentConfig(template, vars) {
433
445
  function claudeCodeTemplate(vars) {
434
446
  return `## vexp — Context-Aware AI Coding <!-- vexp v${vars.version} -->
435
447
 
436
- ### MANDATORY: use vexp MCP tools before ANYTHING else
437
- For every task — questions, bug fixes, features, exploration:
438
- **call the \`get_context_capsule\` MCP tool first**.
439
-
440
- Do NOT use grep, glob, Bash, or Read to search/explore the codebase.
441
- Use vexp MCP tools instead they return pre-indexed, relevant context.
442
-
443
- ### Available MCP tools (invoke via tool interface, NOT via HTTP or bash)
444
- - \`get_context_capsule\` — most relevant code for your task or question (ALWAYS FIRST)
445
- - \`get_impact_graph\` — what breaks if you change a symbol
446
- - \`search_logic_flow\` — execution paths between functions
447
- - \`get_skeleton\` token-efficient file structure
448
+ ### MANDATORY: use vexp pipeline do NOT grep, glob, or Read files
449
+ For every task — bug fixes, features, refactors, debugging:
450
+ **call \`run_pipeline\` FIRST**. It executes context search + impact analysis +
451
+ memory recall in a single call, returning compressed results.
452
+
453
+ Do NOT use grep, glob, Bash, Read, or cat to search/explore the codebase.
454
+ vexp returns pre-indexed, graph-ranked context that is more relevant and
455
+ uses fewer tokens than manual file reading.
456
+
457
+ ### Primary Tool
458
+ - \`run_pipeline\` — **USE THIS FOR EVERYTHING**. Single call that runs
459
+ capsule + impact + memory server-side. Returns compressed results.
460
+ Auto-detects intent (debug/modify/refactor/explore) from your task.
461
+ Includes full file content for pivots (no need to Read files).
462
+ Examples:
463
+ - \`run_pipeline({ "task": "fix JWT validation bug" })\` — auto-detect
464
+ - \`run_pipeline({ "task": "refactor db layer", "preset": "refactor" })\` — explicit
465
+ - \`run_pipeline({ "task": "add auth", "observation": "using JWT" })\` — save insight in same call
466
+
467
+ ### Other MCP tools (use only when run_pipeline is insufficient)
468
+ - \`get_context_capsule\` — lightweight alternative for simple questions only
469
+ - \`get_impact_graph\` — standalone deep impact analysis of a specific symbol
470
+ - \`search_logic_flow\` — trace execution paths between two specific symbols
471
+ - \`get_skeleton\` — token-efficient file structure for a specific file
448
472
  - \`index_status\` — indexing status and health check
449
- - \`workspace_setup\` — bootstrap vexp config for a new project
450
- - \`submit_lsp_edges\` — submit type-resolved call edges (used by VS Code extension)
451
473
  - \`get_session_context\` — recall observations from current/previous sessions
452
- - \`search_memory\` — cross-session search for past decisions, insights, and explored code
453
- - \`save_observation\` — persist important insights with optional code symbol linking
454
-
455
- ### Smart Features (automatic — no action needed)
456
- - **Intent Detection**: vexp auto-detects query intent from your prompt keywords.
457
- "fix bug" → Debug mode (follows error paths), "refactor" → blast-radius mode,
458
- "add feature" → Modify mode, default → Read mode. Each mode optimizes result ranking.
459
- - **Hybrid Search**: combines keyword matching (FTS) + semantic similarity (TF-IDF) + graph
460
- centrality for better results. Finds \`validateCredentials\` when searching "authentication".
461
- - **Session Memory**: every tool call is auto-captured as an observation. Relevant memories
462
- from previous sessions are auto-surfaced inside \`get_context_capsule\` results. Observations
463
- linked to code symbols are auto-flagged stale when that code changes.
464
- - **Feedback Loop**: repeated queries with similar terms auto-expand the result budget.
465
- - **LSP Bridge**: VS Code captures type-resolved call edges for high-confidence call graphs.
466
- - **Change Coupling**: files modified together in git history are included as related context.
467
- - **Context Lineage**: frequently modified code gets a boost in relevance ranking.
474
+ - \`search_memory\` — cross-session search for past decisions
475
+ - \`save_observation\` — persist insights (prefer using run_pipeline's observation param instead)
468
476
 
469
477
  ### Workflow
470
- 1. \`get_context_capsule("your task or question")\` — ALWAYS FIRST (includes relevant memories)
471
- 2. Read the pivot files returned (full content)
472
- 3. Review supporting skeletons for broader context
473
- 4. Make targeted changes based on the context
474
- 5. \`get_impact_graph\` before refactoring to verify no regressions
475
- 6. \`save_observation\` to persist important decisions with code symbol links
476
- 7. \`search_memory\` or \`get_session_context\` to recall past work
478
+ 1. \`run_pipeline("your task")\` — ALWAYS FIRST. Returns pivots + impact + memories in 1 call
479
+ 2. Make targeted changes based on the context returned
480
+ 3. \`run_pipeline\` again ONLY if you need more context during implementation
481
+ 4. Do NOT chain multiple vexp calls — one \`run_pipeline\` replaces capsule + impact + memory + observation
482
+
483
+ ### Smart Features (automatic no action needed)
484
+ - **Intent Detection**: auto-detects from your task keywords. "fix bug" Debug, "refactor" blast-radius, "add" → Modify
485
+ - **Hybrid Search**: keyword + semantic + graph centrality ranking
486
+ - **Session Memory**: auto-captures observations; memories auto-surfaced in results
487
+ - **LSP Bridge**: VS Code captures type-resolved call edges
488
+ - **Change Coupling**: co-changed files included as related context
477
489
 
478
490
  ### Advanced Parameters
479
- - \`include_tests: true\` — include test files (useful for debugging)
480
- - \`max_tokens: 12000\` — increase token budget for complex tasks
481
- - \`pivot_depth: 3\` — deeper graph traversal for broad exploration
482
- - \`skeleton_detail: "detailed"\` — more verbose skeletons
491
+ - \`preset: "debug"\` — forces debug mode (capsule+tests+impact+memory)
492
+ - \`preset: "refactor"\` — deep impact analysis (depth 5)
493
+ - \`max_tokens: 12000\` — increase total budget for complex tasks
494
+ - \`include_tests: true\` — include test files in results
495
+ - \`include_file_content: false\` — omit full file content (lighter response)
483
496
 
484
497
  ### Multi-Repo Workspaces
485
- When multiple repos are indexed (monorepos, frontend+backend, microservices):
486
- - \`get_context_capsule\` queries **all repos** automatically — results show repo alias per file
487
- - Use \`repos: ["alias"]\` to restrict queries to specific repos
488
- - Use \`cross_repo: true\` on \`get_impact_graph\` and \`search_logic_flow\` to trace across repo boundaries
489
- - Use \`index_status\` to discover available repo aliases
490
- - \`get_skeleton\` accepts \`repo: "alias"\` to target a specific repo's files
498
+ \`run_pipeline\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope.
499
+ Use \`index_status\` to discover available repo aliases.
491
500
  <!-- /vexp -->`;
492
501
  }
493
502
  function cursorTemplate(vars) {
494
503
  return `## vexp rules for Cursor <!-- vexp v${vars.version} -->
495
504
 
496
- **MANDATORY: use vexp MCP tools for ALL file analysis.**
497
- Do NOT use grep, glob, search, or file reads to explore the codebase.
498
- Use vexp MCP tools instead — they return pre-indexed, relevant context.
505
+ **MANDATORY: use \`run_pipeline\` do NOT grep, glob, or read files manually.**
506
+ vexp returns pre-indexed, graph-ranked context in a single call.
499
507
 
500
508
  ### Workflow
501
- 1. \`get_context_capsule\` with your task description — ALWAYS FIRST
502
- 2. Review the provided pivot files and skeletons
503
- 3. Make targeted changes based on the context
504
- 4. \`get_impact_graph\` before refactoring exported symbols
509
+ 1. \`run_pipeline\` with your task description — ALWAYS FIRST (replaces all other tools)
510
+ 2. Make targeted changes based on the context returned
511
+ 3. \`run_pipeline\` again only if you need more context
505
512
 
506
513
  ### Available MCP tools
507
- - \`get_context_capsule\` — most relevant code (ALWAYS FIRST). Auto-detects intent: "fix bug" debug mode, "refactor" → blast-radius mode
508
- - \`get_impact_graph\` what breaks if you change a symbol
514
+ - \`run_pipeline\` — **PRIMARY TOOL**. Runs capsule + impact + memory in 1 call.
515
+ Auto-detects intent. Includes file content. Example: \`run_pipeline({ "task": "fix auth bug" })\`
516
+ - \`get_context_capsule\` — lightweight, for simple questions only
517
+ - \`get_impact_graph\` — impact analysis of a specific symbol
509
518
  - \`search_logic_flow\` — execution paths between functions
510
- - \`get_skeleton\` — token-efficient file structure
519
+ - \`get_skeleton\` — compact file structure
511
520
  - \`index_status\` — indexing status
512
- - \`workspace_setup\` — bootstrap vexp config for a new project
513
- - \`get_session_context\` — recall observations from current/previous sessions
514
- - \`search_memory\` — cross-session search for past decisions and insights
515
- - \`save_observation\` — persist important insights with optional code symbol linking
521
+ - \`get_session_context\` — recall observations from sessions
522
+ - \`search_memory\` — cross-session search
523
+ - \`save_observation\` — persist insights (prefer run_pipeline's observation param)
516
524
 
517
525
  ### Tips
518
- - vexp uses hybrid search (keywords + semantic similarity + graph centrality) — natural language queries work well
519
- - Add \`include_tests: true\` when debugging to include test files in results
520
- - Repeated queries auto-expand result budget via feedback loop
521
- - Session memory auto-captures observations; use \`save_observation\` for important decisions
526
+ - Natural language queries work well — vexp uses hybrid search (keyword + semantic + graph)
527
+ - Add \`include_tests: true\` when debugging
528
+ - Use \`preset: "refactor"\` for deep impact analysis
522
529
 
523
530
  ### Multi-Repo
524
- \`get_context_capsule\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope, \`cross_repo: true\` on \`get_impact_graph\`/\`search_logic_flow\` to trace across repos. Run \`index_status\` to see available aliases.
531
+ \`run_pipeline\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope. Run \`index_status\` to see aliases.
525
532
 
526
533
  > **Tip:** To avoid confirmation prompts on every tool call, enable Yolo mode:
527
534
  > Cursor Settings → Features → Agent → Enable Yolo Mode.
@@ -530,40 +537,31 @@ Use vexp MCP tools instead — they return pre-indexed, relevant context.
530
537
  function windsurfTemplate(vars) {
531
538
  return `## vexp for Windsurf <!-- vexp v${vars.version} -->
532
539
 
533
- **MANDATORY: use vexp MCP tools for ALL file analysis.**
534
- Do NOT use grep, glob, search, or file reads to explore the codebase.
535
- Use vexp MCP tools instead — they return pre-indexed, relevant context.
540
+ **MANDATORY: use \`run_pipeline\` do NOT grep, glob, or read files manually.**
541
+ vexp returns pre-indexed, graph-ranked context in a single call.
536
542
 
537
543
  ### Workflow
538
- 1. \`get_context_capsule\` — ALWAYS FIRST for any task or question
539
- 2. Review pivot files and skeletons returned
540
- 3. Make targeted changes based on the context
541
- 4. \`get_impact_graph\` before refactoring exported symbols
544
+ 1. \`run_pipeline\` with your task description — ALWAYS FIRST (replaces all other tools)
545
+ 2. Make targeted changes based on the context returned
546
+ 3. \`run_pipeline\` again only if you need more context
542
547
 
543
548
  ### Available MCP tools
544
- - \`get_context_capsule\` — most relevant code (ALWAYS FIRST). Auto-detects intent from your query
545
- - \`get_impact_graph\` what breaks if you change a symbol
549
+ - \`run_pipeline\` — **PRIMARY TOOL**. Runs capsule + impact + memory in 1 call.
550
+ Auto-detects intent. Includes file content. Example: \`run_pipeline({ "task": "fix auth bug" })\`
551
+ - \`get_context_capsule\` — lightweight, for simple questions only
552
+ - \`get_impact_graph\` — impact analysis of a specific symbol
546
553
  - \`search_logic_flow\` — execution paths between functions
547
- - \`get_skeleton\` — token-efficient file structure
554
+ - \`get_skeleton\` — compact file structure
548
555
  - \`index_status\` — indexing status
549
- - \`workspace_setup\` — bootstrap vexp config for a new project
550
- - \`get_session_context\` — recall observations from current/previous sessions
551
- - \`search_memory\` — cross-session search for past decisions and insights
552
- - \`save_observation\` — persist important insights with optional code symbol linking
556
+ - \`get_session_context\` — recall observations from sessions
557
+ - \`search_memory\` — cross-session search
558
+ - \`save_observation\` — persist insights (prefer run_pipeline's observation param)
553
559
 
554
- ### Smart Features (automatic)
555
- - **Intent Detection**: "fix bug" debug mode, "refactor" → blast-radius, "add" → modify
556
- - **Hybrid Search**: keyword + semantic + graph centrality ranking
557
- - **Session Memory**: auto-captures observations; use \`save_observation\` for important decisions
558
- - **Feedback Loop**: repeated queries auto-expand result budget
560
+ ### Smart Features
561
+ Intent auto-detection, hybrid ranking, session memory, auto-expanding budget.
559
562
 
560
- ### Multi-Repo Workspaces
561
- When multiple repos are indexed (monorepos, frontend+backend, microservices):
562
- - \`get_context_capsule\` queries **all repos** automatically — results show repo alias per file
563
- - Use \`repos: ["alias"]\` to restrict queries to specific repos
564
- - Use \`cross_repo: true\` on \`get_impact_graph\` and \`search_logic_flow\` to trace across repo boundaries
565
- - Use \`index_status\` to discover available repo aliases
566
- - \`get_skeleton\` accepts \`repo: "alias"\` to target a specific repo's files
563
+ ### Multi-Repo
564
+ \`run_pipeline\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope. Run \`index_status\` to see aliases.
567
565
  <!-- /vexp -->`;
568
566
  }
569
567
  function continueTemplate(vars) {
@@ -571,8 +569,8 @@ function continueTemplate(vars) {
571
569
  customCommands: [
572
570
  {
573
571
  name: "vexp-context",
574
- description: "Get vexp context capsule for current task",
575
- prompt: "{{{ input }}}\n\nFirst, call get_context_capsule with the above task description.",
572
+ description: "Run vexp pipeline for current task",
573
+ prompt: "{{{ input }}}\n\nFirst, call run_pipeline with the above task description.",
576
574
  },
577
575
  ],
578
576
  mcpServers: [
@@ -588,204 +586,181 @@ function continueTemplate(vars) {
588
586
  function augmentTemplate(vars) {
589
587
  return `## vexp for Augment <!-- vexp v${vars.version} -->
590
588
 
591
- **MANDATORY: use vexp MCP tools for ALL file analysis.**
592
- Do NOT use grep, glob, search, or file reads to explore the codebase.
593
- Use vexp MCP tools instead — they return pre-indexed, relevant context.
589
+ **MANDATORY: use \`run_pipeline\` do NOT grep, glob, or read files manually.**
590
+ vexp returns pre-indexed, graph-ranked context in a single call.
594
591
 
595
592
  When working on this codebase:
596
- 1. Start every task by calling \`get_context_capsule\` — ALWAYS FIRST
597
- 2. The capsule provides full content of pivot files + skeletons of related files
598
- 3. Use \`get_impact_graph\` before refactoring exported symbols
593
+ 1. \`run_pipeline\` with task description — ALWAYS FIRST
594
+ 2. Make targeted changes based on the context returned
595
+ 3. \`run_pipeline\` again only if you need more context
599
596
 
600
597
  ### Available MCP tools
601
- - \`get_context_capsule\` — most relevant code (ALWAYS FIRST). Auto-detects intent from your query
602
- - \`get_impact_graph\` what breaks if you change a symbol
598
+ - \`run_pipeline\` — **PRIMARY TOOL**. Runs capsule + impact + memory in 1 call.
599
+ Example: \`run_pipeline({ "task": "fix auth bug" })\`
600
+ - \`get_context_capsule\` — lightweight, for simple questions only
601
+ - \`get_impact_graph\` — standalone impact analysis
603
602
  - \`search_logic_flow\` — execution paths between functions
604
603
  - \`get_skeleton\` — token-efficient file structure
605
604
  - \`index_status\` — indexing status
606
- - \`workspace_setup\` — bootstrap vexp config for a new project
607
- - \`get_session_context\` — recall observations from current/previous sessions
608
- - \`search_memory\` — cross-session search for past decisions and insights
609
- - \`save_observation\` — persist important insights with optional code symbol linking
605
+ - \`get_session_context\` — recall observations from sessions
606
+ - \`search_memory\` — cross-session search
607
+ - \`save_observation\` — persist insights (prefer run_pipeline's observation param)
610
608
 
611
609
  ### Smart Features
612
- vexp auto-detects query intent (debug/refactor/modify/read) and uses hybrid ranking
613
- (keyword + semantic + graph centrality). Session memory auto-captures observations.
614
- Repeated queries auto-expand result budget.
610
+ Intent auto-detection, hybrid ranking, session memory, auto-expanding budget.
615
611
 
616
- ### Multi-Repo Workspaces
617
- When multiple repos are indexed (monorepos, frontend+backend, microservices):
618
- - \`get_context_capsule\` queries **all repos** automatically — results show repo alias per file
619
- - Use \`repos: ["alias"]\` to restrict queries to specific repos
620
- - Use \`cross_repo: true\` on \`get_impact_graph\` and \`search_logic_flow\` to trace across repo boundaries
621
- - Use \`index_status\` to discover available repo aliases
622
- - \`get_skeleton\` accepts \`repo: "alias"\` to target a specific repo's files
612
+ ### Multi-Repo
613
+ \`run_pipeline\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope. Run \`index_status\` to see aliases.
623
614
  <!-- /vexp -->`;
624
615
  }
625
616
  function copilotTemplate(vars) {
626
617
  return `## vexp context tools <!-- vexp v${vars.version} -->
627
618
 
628
- **MANDATORY: use vexp MCP tools for ALL file analysis.**
629
- Do NOT use grep, glob, search, or file reads to explore the codebase.
630
- Use vexp MCP tools instead — they return pre-indexed, relevant context.
619
+ **MANDATORY: use \`run_pipeline\` do NOT grep, glob, or read files manually.**
620
+ vexp returns pre-indexed, graph-ranked context in a single call.
631
621
 
632
622
  ### Workflow
633
- 1. \`get_context_capsule\` — ALWAYS FIRST for every task or question
634
- 2. Review the provided pivot files and skeletons
635
- 3. Make targeted changes based on the context
636
- 4. \`get_impact_graph\` before refactoring exported symbols
623
+ 1. \`run_pipeline\` with your task description — ALWAYS FIRST (replaces all other tools)
624
+ 2. Make targeted changes based on the context returned
625
+ 3. \`run_pipeline\` again only if you need more context
637
626
 
638
627
  ### Available MCP tools
639
- - \`get_context_capsule\` — most relevant code (ALWAYS FIRST). Auto-detects intent from your query
640
- - \`get_impact_graph\` shows which symbols depend on a given function/class
641
- - \`search_logic_flow\` — traces execution paths between functions
642
- - \`get_skeleton\` — token-efficient structural overview of a file
628
+ - \`run_pipeline\` — **PRIMARY TOOL**. Runs capsule + impact + memory in 1 call.
629
+ Auto-detects intent. Includes file content. Example: \`run_pipeline({ "task": "fix auth bug" })\`
630
+ - \`get_context_capsule\` — lightweight, for simple questions only
631
+ - \`get_impact_graph\` — impact analysis of a specific symbol
632
+ - \`search_logic_flow\` — execution paths between functions
633
+ - \`get_skeleton\` — compact file structure
643
634
  - \`index_status\` — indexing status
644
- - \`workspace_setup\` — bootstrap vexp config for a new project
645
- - \`get_session_context\` — recall observations from current/previous sessions
646
- - \`search_memory\` — cross-session search for past decisions and insights
647
- - \`save_observation\` — persist important insights with optional code symbol linking
635
+ - \`get_session_context\` — recall observations from sessions
636
+ - \`search_memory\` — cross-session search
637
+ - \`save_observation\` — persist insights (prefer run_pipeline's observation param)
648
638
 
649
639
  ### Smart Features
650
- vexp auto-detects query intent (debug/refactor/modify/read) and uses hybrid ranking
651
- (keyword + semantic + graph centrality). Session memory auto-captures observations.
652
- Repeated queries auto-expand result budget.
640
+ Intent auto-detection, hybrid ranking, session memory, auto-expanding budget.
653
641
 
654
642
  ### Multi-Repo
655
- \`get_context_capsule\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope, \`cross_repo: true\` on \`get_impact_graph\`/\`search_logic_flow\` to trace across repos. Run \`index_status\` to see available aliases.
643
+ \`run_pipeline\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope. Run \`index_status\` to see aliases.
656
644
  <!-- /vexp -->`;
657
645
  }
658
646
  function zedTemplate(vars) {
659
647
  return `## vexp for Zed <!-- vexp v${vars.version} -->
660
648
 
661
- **MANDATORY: use vexp MCP tools for ALL file analysis.**
662
- Do NOT use grep, glob, search, or file reads to explore the codebase.
663
- Use vexp MCP tools instead — they return pre-indexed, relevant context.
649
+ **MANDATORY: use \`run_pipeline\` do NOT grep, glob, or read files manually.**
650
+ vexp returns pre-indexed, graph-ranked context in a single call.
664
651
 
665
652
  ### Workflow
666
- 1. \`get_context_capsule\` — ALWAYS FIRST for any task or question
667
- 2. Review pivot files and skeletons returned
668
- 3. Make targeted changes based on the context
669
- 4. \`get_impact_graph\` before refactoring exported symbols
653
+ 1. \`run_pipeline\` with your task description — ALWAYS FIRST (replaces all other tools)
654
+ 2. Make targeted changes based on the context returned
655
+ 3. \`run_pipeline\` again only if you need more context
670
656
 
671
657
  ### Available MCP tools
672
- - \`get_context_capsule\` — most relevant code (ALWAYS FIRST). Auto-detects intent from your query
673
- - \`get_impact_graph\` dependency impact of a symbol change
658
+ - \`run_pipeline\` — **PRIMARY TOOL**. Runs capsule + impact + memory in 1 call.
659
+ Example: \`run_pipeline({ "task": "fix auth bug" })\`
660
+ - \`get_context_capsule\` — lightweight, for simple questions only
661
+ - \`get_impact_graph\` — impact analysis of a specific symbol
674
662
  - \`search_logic_flow\` — execution paths between functions
675
- - \`get_skeleton\` — compact structural view of a file
663
+ - \`get_skeleton\` — compact file structure
676
664
  - \`index_status\` — indexing status
677
- - \`workspace_setup\` — bootstrap vexp config for a new project
678
- - \`get_session_context\` — recall observations from current/previous sessions
679
- - \`search_memory\` — cross-session search for past decisions and insights
680
- - \`save_observation\` — persist important insights with optional code symbol linking
665
+ - \`get_session_context\` — recall observations from sessions
666
+ - \`search_memory\` — cross-session search
667
+ - \`save_observation\` — persist insights (prefer run_pipeline's observation param)
681
668
 
682
669
  ### Smart Features
683
- vexp auto-detects query intent (debug/refactor/modify/read) and uses hybrid ranking
684
- (keyword + semantic + graph centrality). Session memory auto-captures observations.
685
- Repeated queries auto-expand result budget.
670
+ Intent auto-detection, hybrid ranking, session memory, auto-expanding budget.
686
671
 
687
672
  ### Multi-Repo
688
- \`get_context_capsule\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope, \`cross_repo: true\` on \`get_impact_graph\`/\`search_logic_flow\` to trace across repos. Run \`index_status\` to see available aliases.
673
+ \`run_pipeline\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope. Run \`index_status\` to see aliases.
689
674
  <!-- /vexp -->`;
690
675
  }
691
676
  function agentsMdTemplate(vars) {
692
677
  return `## vexp <!-- vexp v${vars.version} -->
693
678
 
694
- **MANDATORY: use vexp MCP tools for ALL file analysis.**
695
- Do NOT use grep, glob, search, or file reads to explore the codebase.
696
- Use vexp MCP tools instead — they return pre-indexed, relevant context.
697
-
698
- Before any code change or question, call \`get_context_capsule\` with a description of your task.
699
- This provides the most relevant source files and their skeletons with minimal token usage.
679
+ **MANDATORY: use \`run_pipeline\` do NOT grep, glob, or Read files.**
680
+ vexp returns pre-indexed, graph-ranked context in a single call.
700
681
 
701
682
  ### Workflow
702
- 1. \`get_context_capsule\` — ALWAYS FIRST for any task or question
703
- 2. Review the provided pivot files and skeletons
704
- 3. Make targeted changes based on the context
705
- 4. \`get_impact_graph\` before refactoring exported symbols
683
+ 1. \`run_pipeline\` with your task description — ALWAYS FIRST (replaces all other tools)
684
+ 2. Make targeted changes based on the context returned
685
+ 3. \`run_pipeline\` again only if you need more context
706
686
 
707
687
  ### Available MCP tools
708
- - \`get_context_capsule\` — most relevant code (ALWAYS FIRST). Auto-detects intent from your query
709
- - \`get_impact_graph\` what breaks if you change a symbol
688
+ - \`run_pipeline\` — **PRIMARY TOOL**. Runs capsule + impact + memory in 1 call.
689
+ Auto-detects intent. Includes file content. Example: \`run_pipeline({ "task": "fix auth bug" })\`
690
+ - \`get_context_capsule\` — lightweight, for simple questions only
691
+ - \`get_impact_graph\` — impact analysis of a specific symbol
710
692
  - \`search_logic_flow\` — execution paths between functions
711
- - \`get_skeleton\` — token-efficient file structure
693
+ - \`get_skeleton\` — compact file structure
712
694
  - \`index_status\` — indexing status
713
- - \`workspace_setup\` — bootstrap vexp config for a new project
714
- - \`get_session_context\` — recall observations from current/previous sessions
715
- - \`search_memory\` — cross-session search for past decisions and insights
716
- - \`save_observation\` — persist important insights with optional code symbol linking
695
+ - \`get_session_context\` — recall observations from sessions
696
+ - \`search_memory\` — cross-session search
697
+ - \`save_observation\` — persist insights (prefer run_pipeline's observation param)
717
698
 
718
699
  ### Smart Features
719
- vexp auto-detects query intent (debug/refactor/modify/read) and uses hybrid ranking
720
- (keyword + semantic + graph centrality). Session memory auto-captures observations.
721
- Repeated queries auto-expand result budget. Use \`include_tests: true\` when debugging.
700
+ Intent auto-detection, hybrid ranking, session memory, auto-expanding budget.
722
701
 
723
702
  ### Multi-Repo
724
- \`get_context_capsule\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope, \`cross_repo: true\` on \`get_impact_graph\`/\`search_logic_flow\` to trace across repos. Run \`index_status\` to see available aliases.
703
+ \`run_pipeline\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope. Run \`index_status\` to see aliases.
725
704
  <!-- /vexp -->`;
726
705
  }
727
706
  function kiroTemplate(vars) {
728
707
  return `# vexp steering <!-- vexp v${vars.version} -->
729
708
 
730
- **MANDATORY: use vexp MCP tools for ALL file analysis.**
731
- Do NOT use grep, glob, search, or file reads to explore the codebase.
732
- Use vexp MCP tools instead — they return pre-indexed, relevant context.
733
-
734
- Always start tasks by calling \`get_context_capsule\` with a description of what you need.
709
+ **MANDATORY: use \`run_pipeline\` do NOT grep, glob, or read files manually.**
710
+ vexp returns pre-indexed, graph-ranked context in a single call.
735
711
 
736
712
  ## Workflow
737
- 1. \`get_context_capsule\` — ALWAYS FIRST for any task or question
738
- 2. Review the provided pivot files and skeletons
739
- 3. Make targeted changes based on the context
740
- 4. \`get_impact_graph\` before refactoring exported symbols
713
+ 1. \`run_pipeline\` with your task description — ALWAYS FIRST (replaces all other tools)
714
+ 2. Make targeted changes based on the context returned
715
+ 3. \`run_pipeline\` again only if you need more context
741
716
 
742
717
  ## Available vexp tools
743
- - \`get_context_capsule\` — most relevant code (ALWAYS FIRST). Auto-detects intent from your query
744
- - \`get_impact_graph\` impact analysis before refactoring
718
+ - \`run_pipeline\` — **PRIMARY TOOL**. Runs capsule + impact + memory in 1 call.
719
+ Example: \`run_pipeline({ "task": "fix auth bug" })\`
720
+ - \`get_context_capsule\` — lightweight, for simple questions only
721
+ - \`get_impact_graph\` — impact analysis of a specific symbol
745
722
  - \`search_logic_flow\` — trace execution paths
746
723
  - \`get_skeleton\` — compact file structure
747
724
  - \`index_status\` — indexing status
748
- - \`workspace_setup\` — bootstrap config for new projects
749
- - \`get_session_context\` — recall observations from current/previous sessions
750
- - \`search_memory\` — cross-session search for past decisions and insights
751
- - \`save_observation\` — persist important insights with optional code symbol linking
725
+ - \`get_session_context\` — recall observations from sessions
726
+ - \`search_memory\` — cross-session search
727
+ - \`save_observation\` — persist insights (prefer run_pipeline's observation param)
752
728
 
753
729
  ## Smart Features
754
- Intent detection (debug/refactor/modify/read), hybrid search, session memory, auto-expanding budget on repeated queries.
730
+ Intent auto-detection, hybrid ranking, session memory, auto-expanding budget.
755
731
 
756
732
  ## Multi-Repo
757
- \`get_context_capsule\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope, \`cross_repo: true\` on impact/flow. Run \`index_status\` to see aliases.
733
+ \`run_pipeline\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope. Run \`index_status\` to see aliases.
758
734
  <!-- /vexp -->`;
759
735
  }
760
736
  function genericTemplate(vars) {
761
737
  return `## vexp <!-- vexp v${vars.version} -->
762
738
 
763
- **MANDATORY: use vexp MCP tools for ALL file analysis.**
764
- Do NOT use grep, glob, search, or file reads to explore the codebase.
765
- Use vexp MCP tools instead — they return pre-indexed, relevant context.
739
+ **MANDATORY: use \`run_pipeline\` do NOT grep, glob, or Read files.**
740
+ vexp returns pre-indexed, graph-ranked context in a single call.
766
741
 
767
742
  ### Workflow
768
- 1. \`get_context_capsule\` — ALWAYS FIRST for any task or question
769
- 2. Review the provided pivot files and skeletons
770
- 3. Make targeted changes based on the context
771
- 4. \`get_impact_graph\` before refactoring exported symbols
743
+ 1. \`run_pipeline\` with your task description — ALWAYS FIRST (replaces all other tools)
744
+ 2. Make targeted changes based on the context returned
745
+ 3. \`run_pipeline\` again only if you need more context
772
746
 
773
747
  ### Available MCP tools
774
- - \`get_context_capsule\` — most relevant code (ALWAYS FIRST). Auto-detects intent from your query
775
- - \`get_impact_graph\` what breaks if you change a symbol
748
+ - \`run_pipeline\` — **PRIMARY TOOL**. Runs capsule + impact + memory in 1 call.
749
+ Example: \`run_pipeline({ "task": "fix auth bug" })\`
750
+ - \`get_context_capsule\` — lightweight, for simple questions only
751
+ - \`get_impact_graph\` — impact analysis of a specific symbol
776
752
  - \`search_logic_flow\` — execution paths between functions
777
- - \`get_skeleton\` — token-efficient file structure
753
+ - \`get_skeleton\` — compact file structure
778
754
  - \`index_status\` — indexing status
779
- - \`workspace_setup\` — bootstrap vexp config for a new project
780
- - \`get_session_context\` — recall observations from current/previous sessions
781
- - \`search_memory\` — cross-session search for past decisions and insights
782
- - \`save_observation\` — persist important insights with optional code symbol linking
755
+ - \`get_session_context\` — recall observations from sessions
756
+ - \`search_memory\` — cross-session search
757
+ - \`save_observation\` — persist insights (prefer run_pipeline's observation param)
783
758
 
784
759
  ### Smart Features
785
- Intent detection (debug/refactor/modify/read), hybrid search, session memory, auto-expanding budget on repeated queries.
760
+ Intent auto-detection, hybrid ranking, session memory, auto-expanding budget.
786
761
 
787
762
  ### Multi-Repo
788
- \`get_context_capsule\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope, \`cross_repo: true\` on impact/flow. Run \`index_status\` to see aliases.
763
+ \`run_pipeline\` auto-queries all indexed repos. Use \`repos: ["alias"]\` to scope. Run \`index_status\` to see aliases.
789
764
  <!-- /vexp -->`;
790
765
  }
791
766
  //# sourceMappingURL=agent-config.js.map