@veewo/gitnexus 1.5.7 → 1.5.8

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 (67) hide show
  1. package/dist/cli/ai-context.js +1 -7
  2. package/dist/cli/analyze-runtime-summary.js +0 -1
  3. package/dist/cli/analyze-runtime-summary.test.js +0 -2
  4. package/dist/cli/analyze-summary.d.ts +0 -2
  5. package/dist/cli/analyze-summary.js +0 -24
  6. package/dist/cli/analyze-summary.test.js +1 -65
  7. package/dist/cli/analyze.js +1 -5
  8. package/dist/cli/index.js +0 -2
  9. package/dist/core/ingestion/pipeline.js +0 -43
  10. package/dist/mcp/local/agent-safe-response.js +1 -1
  11. package/dist/mcp/local/local-backend.d.ts +0 -23
  12. package/dist/mcp/local/local-backend.js +69 -248
  13. package/dist/mcp/local/runtime-chain-verify.test.js +0 -49
  14. package/dist/mcp/local/runtime-claim-rule-registry.d.ts +0 -11
  15. package/dist/mcp/local/runtime-claim-rule-registry.js +0 -159
  16. package/dist/mcp/local/runtime-claim-rule-registry.test.js +67 -214
  17. package/dist/mcp/tools.js +0 -70
  18. package/dist/types/pipeline.d.ts +0 -3
  19. package/package.json +1 -1
  20. package/dist/benchmark/u2-e2e/phase5-rule-lab-acceptance-runner.d.ts +0 -60
  21. package/dist/benchmark/u2-e2e/phase5-rule-lab-acceptance-runner.js +0 -395
  22. package/dist/benchmark/u2-e2e/phase5-rule-lab-acceptance-runner.test.d.ts +0 -1
  23. package/dist/benchmark/u2-e2e/phase5-rule-lab-acceptance-runner.test.js +0 -41
  24. package/dist/cli/rule-lab.d.ts +0 -38
  25. package/dist/cli/rule-lab.js +0 -148
  26. package/dist/cli/rule-lab.test.d.ts +0 -1
  27. package/dist/cli/rule-lab.test.js +0 -31
  28. package/dist/core/ingestion/unity-runtime-binding-rules.d.ts +0 -26
  29. package/dist/core/ingestion/unity-runtime-binding-rules.js +0 -408
  30. package/dist/rule-lab/analyze.d.ts +0 -13
  31. package/dist/rule-lab/analyze.js +0 -125
  32. package/dist/rule-lab/analyze.test.d.ts +0 -1
  33. package/dist/rule-lab/analyze.test.js +0 -246
  34. package/dist/rule-lab/compile.d.ts +0 -5
  35. package/dist/rule-lab/compile.js +0 -51
  36. package/dist/rule-lab/compiled-bundles.d.ts +0 -30
  37. package/dist/rule-lab/compiled-bundles.js +0 -36
  38. package/dist/rule-lab/curate.d.ts +0 -33
  39. package/dist/rule-lab/curate.js +0 -155
  40. package/dist/rule-lab/curate.test.d.ts +0 -1
  41. package/dist/rule-lab/curate.test.js +0 -137
  42. package/dist/rule-lab/curation-input-builder.d.ts +0 -45
  43. package/dist/rule-lab/curation-input-builder.js +0 -133
  44. package/dist/rule-lab/discover.d.ts +0 -13
  45. package/dist/rule-lab/discover.js +0 -74
  46. package/dist/rule-lab/discover.test.d.ts +0 -1
  47. package/dist/rule-lab/discover.test.js +0 -42
  48. package/dist/rule-lab/paths.d.ts +0 -21
  49. package/dist/rule-lab/paths.js +0 -37
  50. package/dist/rule-lab/paths.test.d.ts +0 -1
  51. package/dist/rule-lab/paths.test.js +0 -46
  52. package/dist/rule-lab/promote.d.ts +0 -26
  53. package/dist/rule-lab/promote.js +0 -387
  54. package/dist/rule-lab/promote.test.d.ts +0 -1
  55. package/dist/rule-lab/promote.test.js +0 -314
  56. package/dist/rule-lab/regress.d.ts +0 -60
  57. package/dist/rule-lab/regress.js +0 -122
  58. package/dist/rule-lab/regress.test.d.ts +0 -1
  59. package/dist/rule-lab/regress.test.js +0 -68
  60. package/dist/rule-lab/review-pack.d.ts +0 -34
  61. package/dist/rule-lab/review-pack.js +0 -165
  62. package/dist/rule-lab/review-pack.test.d.ts +0 -1
  63. package/dist/rule-lab/review-pack.test.js +0 -116
  64. package/dist/rule-lab/types.d.ts +0 -135
  65. package/dist/rule-lab/types.js +0 -1
  66. package/skills/_shared/unity-rule-authoring-contract.md +0 -64
  67. package/skills/gitnexus-unity-rule-gen.md +0 -107
@@ -44,7 +44,6 @@ function generateGitNexusContent(projectName, stats, skillScope, generatedSkills
44
44
 
45
45
  > If step 1 warns the index is stale, ask user whether to rebuild index via \`gitnexus analyze\` when local CLI exists; otherwise resolve the pinned npx package spec from \`~/.gitnexus/config.json\` (\`cliPackageSpec\` first, then \`cliVersion\`) and run \`npx -y <resolved-spec> analyze\` (it reuses previous analyze scope/options by default; add \`--no-reuse-options\` to reset). If user declines, explicitly warn that retrieval may not reflect current codebase. For build/analyze/test commands, use a 10-30 minute timeout; on failure/timeout, report exact tool output and do not auto-retry or silently fall back to glob/grep.
46
46
  > \`query/context\` slim guidance is narrowing-first: inspect \`decision.recommended_follow_up\`, \`missing_proof_targets\`, and \`suggested_context_targets\` before upgrading to \`response_profile=full\`.
47
- > Query-time runtime closure is graph-only and does not require \`verification_rules\` / \`trigger_tokens\`; if you need hydration diagnostics such as \`needsParityRetry\` or strict fallback state, rerun with \`response_profile=full\` and then use parity before closure claims.
48
47
 
49
48
  ## Skills
50
49
 
@@ -55,8 +54,7 @@ function generateGitNexusContent(projectName, stats, skillScope, generatedSkills
55
54
  | Trace bugs / "Why is X failing?" | \`${skillRoot}/gitnexus-debugging/SKILL.md\` |
56
55
  | Rename / extract / split / refactor | \`${skillRoot}/gitnexus-refactoring/SKILL.md\` |
57
56
  | Tools, resources, schema reference | \`${skillRoot}/gitnexus-guide/SKILL.md\` |
58
- | Index, status, clean, wiki CLI commands | \`${skillRoot}/gitnexus-cli/SKILL.md\` |
59
- | Create Unity analyze_rules interactively | \`${skillRoot}/gitnexus-unity-rule-gen/SKILL.md\` |${generatedRows}
57
+ | Index, status, clean, wiki CLI commands | \`${skillRoot}/gitnexus-cli/SKILL.md\` |${generatedRows}
60
58
 
61
59
  ${GITNEXUS_END_MARKER}`;
62
60
  }
@@ -135,10 +133,6 @@ async function installSkills(repoPath) {
135
133
  name: 'gitnexus-cli',
136
134
  description: 'Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki, or list indexed repos. Examples: "Index this repo", "Reanalyze the codebase", "Generate a wiki"',
137
135
  },
138
- {
139
- name: 'gitnexus-unity-rule-gen',
140
- description: 'Use when the user wants to create Unity analyze_rules for a Unity project repo — interactively collecting chain clues, exploring the graph, generating rule YAML, compiling, and verifying. Examples: "Create unity rules", "Generate analyze rules", "Add resource binding rules for this Unity project"',
141
- },
142
136
  ];
143
137
  for (const skill of skills) {
144
138
  const skillDir = path.join(skillsDir, skill.name);
@@ -4,7 +4,6 @@ export function toPipelineRuntimeSummary(input) {
4
4
  communityResult: input.communityResult,
5
5
  processResult: input.processResult,
6
6
  unityResult: input.unityResult,
7
- unityRuleBindingResult: input.unityRuleBindingResult,
8
7
  scopeDiagnostics: input.scopeDiagnostics,
9
8
  csharpPreprocDiagnostics: input.csharpPreprocDiagnostics,
10
9
  };
@@ -7,7 +7,6 @@ test('toPipelineRuntimeSummary drops graph reference and preserves reporting fie
7
7
  communityResult: { stats: { totalCommunities: 3 } },
8
8
  processResult: { stats: { totalProcesses: 2 } },
9
9
  unityResult: { diagnostics: ['scanContext: scripts=1'] },
10
- unityRuleBindingResult: { edgesInjected: 1, ruleResults: [], diagnostics: { summary: [] } },
11
10
  csharpPreprocDiagnostics: {
12
11
  enabled: true,
13
12
  defineSymbolCount: 2,
@@ -21,6 +20,5 @@ test('toPipelineRuntimeSummary drops graph reference and preserves reporting fie
21
20
  assert.equal('graph' in out, false);
22
21
  assert.equal(out.totalFileCount, 12);
23
22
  assert.equal(out.communityResult?.stats.totalCommunities, 3);
24
- assert.equal(out.unityRuleBindingResult?.edgesInjected, 1);
25
23
  assert.equal(out.csharpPreprocDiagnostics?.normalizedFiles, 1);
26
24
  });
@@ -1,5 +1,4 @@
1
1
  import type { CSharpPreprocDiagnostics } from '../types/pipeline.js';
2
- import type { UnityRuntimeBindingResult } from '../core/ingestion/unity-runtime-binding-rules.js';
3
2
  export interface FallbackInsertStats {
4
3
  attempted: number;
5
4
  succeeded: number;
@@ -7,6 +6,5 @@ export interface FallbackInsertStats {
7
6
  }
8
7
  export declare function formatCSharpPreprocDiagnosticsSummary(diagnostics: CSharpPreprocDiagnostics | undefined, previewLimit?: number): string[];
9
8
  export declare function formatUnityDiagnosticsSummary(diagnostics: string[] | undefined, previewLimit?: number): string[];
10
- export declare function formatUnityRuleBindingSummary(result: UnityRuntimeBindingResult | undefined, previewLimit?: number): string[];
11
9
  export declare function formatFallbackSummary(warnings: string[] | undefined, stats: FallbackInsertStats | undefined, previewLimit?: number): string[];
12
10
  export declare function resolveFallbackStats(warnings: string[] | undefined, stats: FallbackInsertStats | undefined): FallbackInsertStats;
@@ -32,30 +32,6 @@ export function formatUnityDiagnosticsSummary(diagnostics, previewLimit = 3) {
32
32
  }
33
33
  return lines;
34
34
  }
35
- export function formatUnityRuleBindingSummary(result, previewLimit = 3) {
36
- if (!result)
37
- return [];
38
- const diagnostics = result.diagnostics;
39
- const lines = ['Unity Rule Binding Diagnostics:'];
40
- for (const message of diagnostics.summary) {
41
- if (!message.startsWith('rule_binding.anomaly:')) {
42
- lines.push(`- ${message}`);
43
- }
44
- }
45
- const anomalies = diagnostics.anomalies;
46
- if (anomalies.length === 0) {
47
- return lines;
48
- }
49
- lines.push(`- rule_binding.anomalies: count=${anomalies.length}`);
50
- const limit = previewLimit > 0 ? previewLimit : anomalies.length;
51
- for (const message of anomalies.slice(0, limit)) {
52
- lines.push(`- rule_binding.anomaly: ${message}`);
53
- }
54
- if (anomalies.length > limit) {
55
- lines.push(`- rule_binding.anomaly: ... ${anomalies.length - limit} more`);
56
- }
57
- return lines;
58
- }
59
35
  export function formatFallbackSummary(warnings, stats, previewLimit = 5) {
60
36
  if (!warnings || warnings.length === 0) {
61
37
  return [];
@@ -1,6 +1,6 @@
1
1
  import test from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
- import { formatFallbackSummary, formatUnityDiagnosticsSummary, formatUnityRuleBindingSummary, resolveFallbackStats, } from './analyze-summary.js';
3
+ import { formatFallbackSummary, formatUnityDiagnosticsSummary, resolveFallbackStats, } from './analyze-summary.js';
4
4
  test('formatUnityDiagnosticsSummary returns empty when diagnostics are missing', () => {
5
5
  const lines = formatUnityDiagnosticsSummary([]);
6
6
  assert.deepEqual(lines, []);
@@ -29,70 +29,6 @@ test('formatUnityDiagnosticsSummary truncates output after max preview items', (
29
29
  '... 1 more',
30
30
  ]);
31
31
  });
32
- test('formatUnityRuleBindingSummary renders diagnostics and agent report status', () => {
33
- const lines = formatUnityRuleBindingSummary({
34
- edgesInjected: 3,
35
- ruleResults: [{ ruleId: 'unity.global-init', edgesInjected: 3 }],
36
- diagnostics: {
37
- rulesEvaluated: 1,
38
- bindingsEvaluated: 1,
39
- bindingsByKind: { method_triggers_scene_load: 1 },
40
- methodLookupCalls: 5,
41
- methodLookupCacheHits: 4,
42
- sceneRuntimeTraversalCalls: 3,
43
- sceneRuntimeTraversalCacheHits: 2,
44
- sceneRuntimeResourcesVisited: 6,
45
- anomalies: [],
46
- shouldAgentReport: false,
47
- agentReportReason: 'no anomalies detected',
48
- summary: [
49
- 'rule_binding.summary: rules=1, bindings=1, edges=3',
50
- 'rule_binding.lookup: method_calls=5, cache_hits=4',
51
- 'rule_binding.agent_report: should_report=false reason="no anomalies detected"',
52
- ],
53
- },
54
- });
55
- assert.deepEqual(lines, [
56
- 'Unity Rule Binding Diagnostics:',
57
- '- rule_binding.summary: rules=1, bindings=1, edges=3',
58
- '- rule_binding.lookup: method_calls=5, cache_hits=4',
59
- '- rule_binding.agent_report: should_report=false reason="no anomalies detected"',
60
- ]);
61
- });
62
- test('formatUnityRuleBindingSummary renders anomaly preview', () => {
63
- const lines = formatUnityRuleBindingSummary({
64
- edgesInjected: 0,
65
- ruleResults: [],
66
- diagnostics: {
67
- rulesEvaluated: 1,
68
- bindingsEvaluated: 1,
69
- bindingsByKind: { method_triggers_scene_load: 1 },
70
- methodLookupCalls: 0,
71
- methodLookupCacheHits: 0,
72
- sceneRuntimeTraversalCalls: 0,
73
- sceneRuntimeTraversalCacheHits: 0,
74
- sceneRuntimeResourcesVisited: 0,
75
- anomalies: [
76
- 'rule=unity.global-init: scene "Global" not found in File(.unity) index',
77
- 'rule=unity.global-init: method_triggers_scene_load missing host_class_pattern, loader_methods, or scene_name',
78
- ],
79
- shouldAgentReport: true,
80
- agentReportReason: 'rule-binding anomalies detected',
81
- summary: [
82
- 'rule_binding.summary: rules=1, bindings=1, edges=0',
83
- 'rule_binding.agent_report: should_report=true reason="rule-binding anomalies detected"',
84
- ],
85
- },
86
- }, 1);
87
- assert.deepEqual(lines, [
88
- 'Unity Rule Binding Diagnostics:',
89
- '- rule_binding.summary: rules=1, bindings=1, edges=0',
90
- '- rule_binding.agent_report: should_report=true reason="rule-binding anomalies detected"',
91
- '- rule_binding.anomalies: count=2',
92
- '- rule_binding.anomaly: rule=unity.global-init: scene "Global" not found in File(.unity) index',
93
- '- rule_binding.anomaly: ... 1 more',
94
- ]);
95
- });
96
32
  test('formatFallbackSummary returns empty when no warnings exist', () => {
97
33
  const lines = formatFallbackSummary([], {
98
34
  attempted: 0,
@@ -19,7 +19,7 @@ import { generateAIContextFiles } from './ai-context.js';
19
19
  import { generateSkillFiles } from './skill-gen.js';
20
20
  import fs from 'fs/promises';
21
21
  import { resolveEffectiveAnalyzeOptions, validateStoredOptions } from './analyze-options.js';
22
- import { formatCSharpPreprocDiagnosticsSummary, formatFallbackSummary, formatUnityDiagnosticsSummary, formatUnityRuleBindingSummary, resolveFallbackStats, } from './analyze-summary.js';
22
+ import { formatCSharpPreprocDiagnosticsSummary, formatFallbackSummary, formatUnityDiagnosticsSummary, resolveFallbackStats, } from './analyze-summary.js';
23
23
  import { resolveChildProcessExit } from './exit-code.js';
24
24
  import { toPipelineRuntimeSummary } from './analyze-runtime-summary.js';
25
25
  const HEAP_MB = 8192;
@@ -432,10 +432,6 @@ export const analyzeCommand = async (inputPath, options) => {
432
432
  for (const line of unitySummaryLines) {
433
433
  console.log(` ${line}`);
434
434
  }
435
- const unityRuleBindingSummaryLines = formatUnityRuleBindingSummary(pipelineRuntime.unityRuleBindingResult);
436
- for (const line of unityRuleBindingSummaryLines) {
437
- console.log(` ${line}`);
438
- }
439
435
  const csharpPreprocSummaryLines = formatCSharpPreprocDiagnosticsSummary(pipelineRuntime.csharpPreprocDiagnostics);
440
436
  for (const line of csharpPreprocSummaryLines) {
441
437
  console.log(` ${line}`);
package/dist/cli/index.js CHANGED
@@ -4,7 +4,6 @@
4
4
  import { Command } from 'commander';
5
5
  import { createRequire } from 'node:module';
6
6
  import { createLazyAction } from './lazy-action.js';
7
- import { attachRuleLabCommands } from './rule-lab.js';
8
7
  const _require = createRequire(import.meta.url);
9
8
  const pkg = _require('../../package.json');
10
9
  const program = new Command();
@@ -58,7 +57,6 @@ program
58
57
  .option('-f, --force', 'Skip confirmation prompt')
59
58
  .option('--all', 'Clean all indexed repos')
60
59
  .action(createLazyAction(() => import('./clean.js'), 'cleanCommand'));
61
- attachRuleLabCommands(program, (handlerName) => createLazyAction(() => import('./rule-lab.js'), handlerName));
62
60
  program
63
61
  .command('wiki [path]')
64
62
  .description('Generate repository wiki from knowledge graph')
@@ -9,11 +9,9 @@ import { processCommunities } from './community-processor.js';
9
9
  import { processProcesses } from './process-processor.js';
10
10
  import { processUnityResources } from './unity-resource-processor.js';
11
11
  import { applyUnityLifecycleSyntheticCalls } from './unity-lifecycle-synthetic-calls.js';
12
- import { applyUnityRuntimeBindingRules } from './unity-runtime-binding-rules.js';
13
12
  import { resolveUnityConfig } from '../config/unity-config.js';
14
13
  import { loadCSharpDefineProfileFromCsproj } from '../tree-sitter/csharp-define-profile.js';
15
14
  import { normalizeCSharpPreprocessorBranches } from '../tree-sitter/csharp-preproc-normalizer.js';
16
- import { loadAnalyzeRules } from '../../mcp/local/runtime-claim-rule-registry.js';
17
15
  import { createResolutionContext } from './resolution-context.js';
18
16
  import { createASTCache } from './ast-cache.js';
19
17
  import { walkRepositoryPaths, readFileContents, walkUnityResourcePaths } from './filesystem-walker.js';
@@ -341,7 +339,6 @@ export const runPipelineFromRepo = async (repoPath, onProgress, options) => {
341
339
  let communityResult;
342
340
  let processResult;
343
341
  let unityResult;
344
- let unityRuleBindingResult;
345
342
  if (!options?.skipGraphPhases) {
346
343
  // ── Phase 4.5: Method Resolution Order ──────────────────────────────
347
344
  onProgress({
@@ -422,45 +419,6 @@ export const runPipelineFromRepo = async (repoPath, onProgress, options) => {
422
419
  if (isDev && isUnityProject) {
423
420
  console.log(`[UnityLifecycle] auto-detected hosts=${unityLifecycleSyntheticResult.hostCount} syntheticEdges=${unityLifecycleSyntheticResult.syntheticEdgeCount} rejectedHosts=${unityLifecycleSyntheticResult.rejectedHostCount}`);
424
421
  }
425
- // Phase 5.7: rule-driven binding injection (Phase 3)
426
- try {
427
- const analyzeRules = await loadAnalyzeRules(repoPath);
428
- const bindingResult = applyUnityRuntimeBindingRules(graph, analyzeRules, unityConfig.config);
429
- unityRuleBindingResult = bindingResult;
430
- if (isDev && bindingResult.edgesInjected > 0) {
431
- console.log(`[UnityRuleBinding] injected ${bindingResult.edgesInjected} edges from ${analyzeRules.length} rule(s)`);
432
- }
433
- }
434
- catch (err) {
435
- // rule catalog missing or invalid — skip silently
436
- console.warn(`[UnityRuleBinding] failed to load or apply analyze rules: ${err instanceof Error ? err.message : String(err)}`);
437
- const reason = err instanceof Error ? err.message : String(err);
438
- unityRuleBindingResult = {
439
- edgesInjected: 0,
440
- ruleResults: [],
441
- diagnostics: {
442
- rulesEvaluated: 0,
443
- bindingsEvaluated: 0,
444
- bindingsByKind: {},
445
- methodLookupCalls: 0,
446
- methodLookupCacheHits: 0,
447
- sceneRuntimeTraversalCalls: 0,
448
- sceneRuntimeTraversalCacheHits: 0,
449
- sceneRuntimeResourcesVisited: 0,
450
- anomalies: [`failed to load/apply analyze rules: ${reason}`],
451
- shouldAgentReport: true,
452
- agentReportReason: 'failed to load/apply analyze rules',
453
- summary: [
454
- 'rule_binding.summary: rules=0, bindings=0, edges=0',
455
- 'rule_binding.bindings_by_kind: none',
456
- 'rule_binding.lookup: method_calls=0, cache_hits=0',
457
- 'rule_binding.scene_closure: traversals=0, cache_hits=0, visited_resources=0',
458
- 'rule_binding.agent_report: should_report=true reason="failed to load/apply analyze rules"',
459
- `rule_binding.anomaly: failed to load/apply analyze rules: ${reason}`,
460
- ],
461
- },
462
- };
463
- }
464
422
  // ── Phase 6: Processes ─────────────────────────────────────────────
465
423
  onProgress({
466
424
  phase: 'processes',
@@ -545,7 +503,6 @@ export const runPipelineFromRepo = async (repoPath, onProgress, options) => {
545
503
  communityResult,
546
504
  processResult,
547
505
  unityResult,
548
- unityRuleBindingResult,
549
506
  scopeDiagnostics: scopeSelection.diagnostics,
550
507
  csharpPreprocDiagnostics,
551
508
  };
@@ -416,7 +416,7 @@ function buildResourceChains(resourceChains) {
416
416
  }
417
417
  : undefined,
418
418
  }))
419
- .filter((chain) => Boolean(chain.sourceResourcePath && chain.intermediateResourcePath && chain.targetSymbol));
419
+ .filter((chain) => Boolean(chain.sourceResourcePath && chain.targetSymbol));
420
420
  }
421
421
  function buildUpgradeHints(input) {
422
422
  const repoArg = input.repoName ? ` --repo "${input.repoName}"` : '';
@@ -46,11 +46,6 @@ interface NextHopPayload {
46
46
  why: string;
47
47
  next_command: string;
48
48
  }
49
- interface RetrievalRuleHint {
50
- id: string;
51
- next_action: string;
52
- host_base_type?: string[];
53
- }
54
49
  export declare function pickVerificationTarget(input: {
55
50
  seedMode: ResourceSeedMode;
56
51
  seedPath?: string;
@@ -71,23 +66,10 @@ export declare function buildNextHops(input: {
71
66
  mappedSeedTargets: string[];
72
67
  resourceBindings: ResolvedUnityBinding[];
73
68
  verificationHint?: VerificationHint;
74
- retrievalRule?: RetrievalRuleHint;
75
69
  repoName?: string;
76
70
  symbolName: string;
77
71
  queryForSymbol: string;
78
72
  }): NextHopPayload[];
79
- export declare function pickRetrievalRuleHintFromBundle(input: {
80
- queryText?: string;
81
- symbolName?: string;
82
- seedPath?: string;
83
- rules: Array<{
84
- id: string;
85
- trigger_tokens?: string[];
86
- host_base_type?: string[];
87
- resource_types?: string[];
88
- next_action: string;
89
- }>;
90
- }): RetrievalRuleHint | undefined;
91
73
  export declare function resolveSeedTargetsFromResourceFile(repoPath: string, seedPath: string): Promise<string[]>;
92
74
  export declare function filterBm25ResultsByScopePreset<T extends {
93
75
  filePath?: string;
@@ -178,11 +160,6 @@ export declare class LocalBackend {
178
160
  }>>;
179
161
  callTool(method: string, params: any): Promise<any>;
180
162
  private unityUiTrace;
181
- private ruleLabAnalyze;
182
- private ruleLabReviewPack;
183
- private ruleLabCurate;
184
- private ruleLabPromote;
185
- private ruleLabRegress;
186
163
  /**
187
164
  * Query tool — process-grouped search.
188
165
  *