Lands the authoritative data model and constants for the pure scope-based
resolution RFC (#909) as Ring 1, part 1. No runtime behavior changes —
types + constants only.
New in gitnexus-shared/src/scope-resolution/:
- types.ts — Scope, ScopeKind, ScopeId, DefId, Range, Capture,
BindingRef, ImportEdge, TypeRef, Resolution, ResolutionEvidence,
Reference, ReferenceIndex, LookupParams, RegistryContributor
- evidence-weights.ts — EvidenceWeights constant map + typeBindingWeightAtDepth
(RFC Appendix A)
- origin-priority.ts — ORIGIN_PRIORITY constant map for deterministic
tie-breaks (RFC Appendix B)
- language-classification.ts — LanguageClassification type +
LanguageClassifications map (production × 14, experimental × 2
for vue/cobol; governs Ring 4 DAG-retirement gate)
- symbol-definition.ts — SymbolDefinition moved from
gitnexus/src/core/ingestion/model/symbol-table.ts so scope-resolution
types can reference it from the shared package
Consumer updates:
- symbol-table.ts: removes local SymbolDefinition declaration; imports
from gitnexus-shared
- model/index.ts: drops SymbolDefinition from barrel re-export per
"direct imports from gitnexus-shared" convention (see
gitnexus-shared feedback in project memory)
- 9 source files + 5 test files: import SymbolDefinition directly
from 'gitnexus-shared'
Verification:
- gitnexus-shared builds clean (tsc)
- gitnexus builds clean (scripts/build.js)
- 131/132 unit test files pass; 3767 tests green
- Zero behavior changes; SymbolDefinition shape unchanged
Blocks: #911 (LanguageProvider hook interface extensions) and all of
Ring 2 (#912-#925). Closes part of #909.