mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-09-17 23:52:36 +00:00
* feat(analyze): add incremental watch mode * fix(watch): harden control file reads * fix(watch): contain refresh errors and bound reads * fix(watch): stream strict control file reads * fix(watch): harden refresh recovery and lifecycle * fix(watch): report ignored repository defaults * fix(analyze): preserve signal exit semantics * style(analyze): format signal exit helper * test(config): exercise descriptor growth guard * test(watch): await source event before rename * fix(watch): keep live-index retries honest and ignore analyzer writes Hold retry backoff when events merge, stop only after a live-index mutation, skip .gitnexus self-writes, and reject the remaining one-shot watch flags. Export impact-risk scoring from gitnexus-shared so consumers can share the same scale. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(watch): contain queue edge cases after review Preserve overflow-only refreshes, contain synchronous refresh failures, and mark successful atomic publication before later operations can fail. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Gergő Magyar <gergomagyar@icloud.com>
222 lines
7.9 KiB
TypeScript
222 lines
7.9 KiB
TypeScript
// Graph types
|
|
export type {
|
|
NodeLabel,
|
|
NodeProperties,
|
|
RelationshipType,
|
|
GraphNode,
|
|
GraphRelationship,
|
|
} from './graph/types.js';
|
|
|
|
// Schema constants
|
|
export {
|
|
NODE_TABLES,
|
|
REL_TABLE_NAME,
|
|
REL_TYPES,
|
|
EMBEDDING_TABLE_NAME,
|
|
} from './lbug/schema-constants.js';
|
|
export type { NodeTableName, RelType } from './lbug/schema-constants.js';
|
|
|
|
// Language support
|
|
export { SupportedLanguages } from './languages.js';
|
|
export {
|
|
getLanguageFromFilename,
|
|
getSyntaxLanguageFromFilename,
|
|
isBladeTemplateFilename,
|
|
} from './language-detection.js';
|
|
export type { MroStrategy } from './mro-strategy.js';
|
|
|
|
// Impact risk scoring
|
|
export { scoreImpactRisk, unusedAxesForImpactWalk } from './impact-risk.js';
|
|
export type {
|
|
ImpactRisk,
|
|
ImpactRiskAxis,
|
|
ImpactRiskInput,
|
|
ImpactRiskResult,
|
|
UnusedImpactRiskAxis,
|
|
UnusedImpactRiskReason,
|
|
} from './impact-risk.js';
|
|
|
|
// Pipeline progress
|
|
export type { PipelinePhase, PipelineProgress } from './pipeline.js';
|
|
|
|
// ─── Scope-based resolution — RFC #909 (Ring 1 #910) ────────────────────────
|
|
// Data model (RFC §2)
|
|
export type {
|
|
ParameterTypeClass,
|
|
SymbolDefinition,
|
|
TypeParameter,
|
|
} from './scope-resolution/symbol-definition.js';
|
|
export type {
|
|
ScopeId,
|
|
DefId,
|
|
ScopeKind,
|
|
Range,
|
|
Capture,
|
|
CaptureMatch,
|
|
BindingRef,
|
|
ImportEdge,
|
|
TypeRef,
|
|
Scope,
|
|
ResolutionEvidence,
|
|
Resolution,
|
|
Reference,
|
|
ReferenceIndex,
|
|
LookupParams,
|
|
RegistryContributor,
|
|
ParsedImport,
|
|
ParsedTypeBinding,
|
|
WorkspaceIndex,
|
|
Callsite,
|
|
ScopeLookup,
|
|
} from './scope-resolution/types.js';
|
|
|
|
// Evidence + tie-break constants (RFC Appendix A, Appendix B)
|
|
export { EvidenceWeights, typeBindingWeightAtDepth } from './scope-resolution/evidence-weights.js';
|
|
export { ORIGIN_PRIORITY } from './scope-resolution/origin-priority.js';
|
|
export type { OriginForTieBreak } from './scope-resolution/origin-priority.js';
|
|
|
|
// Language classification (RFC §6.1 Ring 3/4 governance)
|
|
export {
|
|
LanguageClassifications,
|
|
isProductionLanguage,
|
|
} from './scope-resolution/language-classification.js';
|
|
export type { LanguageClassification } from './scope-resolution/language-classification.js';
|
|
|
|
// Core indexes over per-file artifacts (RFC §3.1; Ring 2 SHARED #913)
|
|
export { buildDefIndex } from './scope-resolution/def-index.js';
|
|
export type { DefIndex } from './scope-resolution/def-index.js';
|
|
export { buildModuleScopeIndex } from './scope-resolution/module-scope-index.js';
|
|
export type { ModuleScopeIndex, ModuleScopeEntry } from './scope-resolution/module-scope-index.js';
|
|
export { buildQualifiedNameIndex } from './scope-resolution/qualified-name-index.js';
|
|
export type { QualifiedNameIndex } from './scope-resolution/qualified-name-index.js';
|
|
|
|
// Strict type-reference resolver (RFC §4.6; Ring 2 SHARED #916)
|
|
// `ScopeLookup` is defined in `./scope-resolution/types.js` and exported
|
|
// from the type-export block above — not from this module.
|
|
export { resolveTypeRef } from './scope-resolution/resolve-type-ref.js';
|
|
export type { ResolveTypeRefContext } from './scope-resolution/resolve-type-ref.js';
|
|
|
|
// ScopeExtractor output contracts (RFC §3.2 Phase 1; Ring 2 PKG #919)
|
|
export type { ParsedFile } from './scope-resolution/parsed-file.js';
|
|
export type {
|
|
ReferenceSite,
|
|
ReferenceKind,
|
|
CallForm,
|
|
MixedChainStep,
|
|
} from './scope-resolution/reference-site.js';
|
|
export type {
|
|
CallableFlowOperand,
|
|
CallableFlowExpectedSignature,
|
|
CallableFlowPassingMode,
|
|
CallableFlowInvocationKind,
|
|
CallableFlowSeedSite,
|
|
CallableFlowCopySite,
|
|
CallableFlowAliasSite,
|
|
CallableFlowAddressSite,
|
|
CallableFlowStoreSite,
|
|
CallableFlowLoadSite,
|
|
CallableFlowFormalSite,
|
|
CallableFlowArgumentSite,
|
|
CallableFlowInvokeSite,
|
|
CallableFlowSite,
|
|
} from './scope-resolution/callable-flow-site.js';
|
|
|
|
// Method-dispatch materialized view over HeritageMap (RFC §3.1; Ring 2 SHARED #914)
|
|
export { buildMethodDispatchIndex } from './scope-resolution/method-dispatch-index.js';
|
|
export type {
|
|
MethodDispatchIndex,
|
|
MethodDispatchInput,
|
|
} from './scope-resolution/method-dispatch-index.js';
|
|
|
|
// SCC-aware cross-file finalize (RFC §3.2 Phase 2; Ring 2 SHARED #915)
|
|
export { finalize } from './scope-resolution/finalize-algorithm.js';
|
|
export type {
|
|
FinalizeInput,
|
|
FinalizeFile,
|
|
FinalizeHooks,
|
|
FinalizeOutput,
|
|
FinalizedScc,
|
|
FinalizeStats,
|
|
} from './scope-resolution/finalize-algorithm.js';
|
|
|
|
// Scope-aware registries + 7-step lookup (RFC §4; Ring 2 SHARED #917)
|
|
export { buildClassRegistry } from './scope-resolution/registries/class-registry.js';
|
|
export type { ClassRegistry } from './scope-resolution/registries/class-registry.js';
|
|
export { buildMethodRegistry } from './scope-resolution/registries/method-registry.js';
|
|
export type {
|
|
MethodRegistry,
|
|
MethodLookupOptions,
|
|
} from './scope-resolution/registries/method-registry.js';
|
|
export { buildFieldRegistry } from './scope-resolution/registries/field-registry.js';
|
|
export type {
|
|
FieldRegistry,
|
|
FieldLookupOptions,
|
|
} from './scope-resolution/registries/field-registry.js';
|
|
export { buildMacroRegistry } from './scope-resolution/registries/macro-registry.js';
|
|
export type { MacroRegistry } from './scope-resolution/registries/macro-registry.js';
|
|
export { lookupCore } from './scope-resolution/registries/lookup-core.js';
|
|
export type { CoreLookupParams } from './scope-resolution/registries/lookup-core.js';
|
|
export { lookupQualified } from './scope-resolution/registries/lookup-qualified.js';
|
|
export type { LookupQualifiedParams } from './scope-resolution/registries/lookup-qualified.js';
|
|
export { composeEvidence, confidenceFromEvidence } from './scope-resolution/registries/evidence.js';
|
|
export type { RawSignals } from './scope-resolution/registries/evidence.js';
|
|
export {
|
|
compareByConfidenceWithTiebreaks,
|
|
CONFIDENCE_EPSILON,
|
|
} from './scope-resolution/registries/tie-breaks.js';
|
|
export type { TieBreakKey } from './scope-resolution/registries/tie-breaks.js';
|
|
export {
|
|
CLASS_KINDS,
|
|
METHOD_KINDS,
|
|
FIELD_KINDS,
|
|
MACRO_KINDS,
|
|
} from './scope-resolution/registries/context.js';
|
|
export type {
|
|
RegistryContext,
|
|
RegistryProviders,
|
|
OwnedMembersByOwnerLookup,
|
|
OwnerScopedContributor,
|
|
ArityVerdict,
|
|
ConstraintContext,
|
|
} from './scope-resolution/registries/context.js';
|
|
|
|
// Scope tree spine + position lookup (RFC §2.2 + §3.1; Ring 2 SHARED #912)
|
|
export { makeScopeId, clearScopeIdInternPool } from './scope-resolution/scope-id.js';
|
|
export type { ScopeIdInput } from './scope-resolution/scope-id.js';
|
|
export {
|
|
buildScopeTree,
|
|
canParentScope,
|
|
ScopeTreeInvariantError,
|
|
} from './scope-resolution/scope-tree.js';
|
|
export type { ScopeTree } from './scope-resolution/scope-tree.js';
|
|
export { buildPositionIndex } from './scope-resolution/position-index.js';
|
|
export type { PositionIndex } from './scope-resolution/position-index.js';
|
|
|
|
// Resilient fetch primitives — bounded retries + per-process circuit breaker.
|
|
// Test-only helpers (`__resetBreakerRegistry__`, `classifyOutcome`) are
|
|
// reachable via the separate `gitnexus-shared/test-helpers` subpath; do
|
|
// NOT add them here. Production consumers must not call them.
|
|
export { withRetry, computeBackoffMs } from './integrations/retry.js';
|
|
export type { RetryOptions, RetryDecision } from './integrations/retry.js';
|
|
export { CircuitBreaker, CircuitOpenError, getBreaker } from './integrations/circuit-breaker.js';
|
|
export type { CircuitBreakerOptions } from './integrations/circuit-breaker.js';
|
|
export {
|
|
resilientFetch,
|
|
ResilientFetchExhaustedError,
|
|
RETRY_AFTER_CAP_MS,
|
|
parseRetryAfter,
|
|
isTerminalNetworkError,
|
|
} from './integrations/resilient-fetch.js';
|
|
export type { ResilientFetchOptions } from './integrations/resilient-fetch.js';
|
|
|
|
// Understand-Quickly registry integration (opt-in)
|
|
export {
|
|
UNDERSTAND_QUICKLY_DISPATCH_URL,
|
|
UNDERSTAND_QUICKLY_EVENT_TYPE,
|
|
UNDERSTAND_QUICKLY_TOKEN_ENV,
|
|
buildUqDispatchPayload,
|
|
isValidOwnerRepo,
|
|
parseOwnerRepoFromRemote,
|
|
stripGitSuffix,
|
|
} from './integrations/understand-quickly.js';
|
|
export type { UqDispatchPayload } from './integrations/understand-quickly.js';
|