@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.
- package/dist/cli/ai-context.js +1 -7
- package/dist/cli/analyze-runtime-summary.js +0 -1
- package/dist/cli/analyze-runtime-summary.test.js +0 -2
- package/dist/cli/analyze-summary.d.ts +0 -2
- package/dist/cli/analyze-summary.js +0 -24
- package/dist/cli/analyze-summary.test.js +1 -65
- package/dist/cli/analyze.js +1 -5
- package/dist/cli/index.js +0 -2
- package/dist/core/ingestion/pipeline.js +0 -43
- package/dist/mcp/local/agent-safe-response.js +1 -1
- package/dist/mcp/local/local-backend.d.ts +0 -23
- package/dist/mcp/local/local-backend.js +69 -248
- package/dist/mcp/local/runtime-chain-verify.test.js +0 -49
- package/dist/mcp/local/runtime-claim-rule-registry.d.ts +0 -11
- package/dist/mcp/local/runtime-claim-rule-registry.js +0 -159
- package/dist/mcp/local/runtime-claim-rule-registry.test.js +67 -214
- package/dist/mcp/tools.js +0 -70
- package/dist/types/pipeline.d.ts +0 -3
- package/package.json +1 -1
- package/dist/benchmark/u2-e2e/phase5-rule-lab-acceptance-runner.d.ts +0 -60
- package/dist/benchmark/u2-e2e/phase5-rule-lab-acceptance-runner.js +0 -395
- package/dist/benchmark/u2-e2e/phase5-rule-lab-acceptance-runner.test.d.ts +0 -1
- package/dist/benchmark/u2-e2e/phase5-rule-lab-acceptance-runner.test.js +0 -41
- package/dist/cli/rule-lab.d.ts +0 -38
- package/dist/cli/rule-lab.js +0 -148
- package/dist/cli/rule-lab.test.d.ts +0 -1
- package/dist/cli/rule-lab.test.js +0 -31
- package/dist/core/ingestion/unity-runtime-binding-rules.d.ts +0 -26
- package/dist/core/ingestion/unity-runtime-binding-rules.js +0 -408
- package/dist/rule-lab/analyze.d.ts +0 -13
- package/dist/rule-lab/analyze.js +0 -125
- package/dist/rule-lab/analyze.test.d.ts +0 -1
- package/dist/rule-lab/analyze.test.js +0 -246
- package/dist/rule-lab/compile.d.ts +0 -5
- package/dist/rule-lab/compile.js +0 -51
- package/dist/rule-lab/compiled-bundles.d.ts +0 -30
- package/dist/rule-lab/compiled-bundles.js +0 -36
- package/dist/rule-lab/curate.d.ts +0 -33
- package/dist/rule-lab/curate.js +0 -155
- package/dist/rule-lab/curate.test.d.ts +0 -1
- package/dist/rule-lab/curate.test.js +0 -137
- package/dist/rule-lab/curation-input-builder.d.ts +0 -45
- package/dist/rule-lab/curation-input-builder.js +0 -133
- package/dist/rule-lab/discover.d.ts +0 -13
- package/dist/rule-lab/discover.js +0 -74
- package/dist/rule-lab/discover.test.d.ts +0 -1
- package/dist/rule-lab/discover.test.js +0 -42
- package/dist/rule-lab/paths.d.ts +0 -21
- package/dist/rule-lab/paths.js +0 -37
- package/dist/rule-lab/paths.test.d.ts +0 -1
- package/dist/rule-lab/paths.test.js +0 -46
- package/dist/rule-lab/promote.d.ts +0 -26
- package/dist/rule-lab/promote.js +0 -387
- package/dist/rule-lab/promote.test.d.ts +0 -1
- package/dist/rule-lab/promote.test.js +0 -314
- package/dist/rule-lab/regress.d.ts +0 -60
- package/dist/rule-lab/regress.js +0 -122
- package/dist/rule-lab/regress.test.d.ts +0 -1
- package/dist/rule-lab/regress.test.js +0 -68
- package/dist/rule-lab/review-pack.d.ts +0 -34
- package/dist/rule-lab/review-pack.js +0 -165
- package/dist/rule-lab/review-pack.test.d.ts +0 -1
- package/dist/rule-lab/review-pack.test.js +0 -116
- package/dist/rule-lab/types.d.ts +0 -135
- package/dist/rule-lab/types.js +0 -1
- package/skills/_shared/unity-rule-authoring-contract.md +0 -64
- package/skills/gitnexus-unity-rule-gen.md +0 -107
package/dist/cli/ai-context.js
CHANGED
|
@@ -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,
|
|
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,
|
package/dist/cli/analyze.js
CHANGED
|
@@ -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,
|
|
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.
|
|
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
|
*
|