@reqlan/analytical 0.9.1 → 0.10.1

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 (179) hide show
  1. package/README.md +19 -2
  2. package/README.template.md +1 -1
  3. package/out/core/barrel-page.d.ts +2 -1
  4. package/out/core/barrel-page.js +18 -83
  5. package/out/core/barrel-page.js.map +1 -1
  6. package/out/core/base-discovery.d.ts +6 -0
  7. package/out/core/base-discovery.js +47 -2
  8. package/out/core/base-discovery.js.map +1 -1
  9. package/out/core/create-base.js +10 -14
  10. package/out/core/create-base.js.map +1 -1
  11. package/out/core/file-reference-resolve.js +3 -1
  12. package/out/core/file-reference-resolve.js.map +1 -1
  13. package/out/core/index-error.d.ts +3 -3
  14. package/out/core/index-error.js.map +1 -1
  15. package/out/core/index-state-types.d.ts +47 -0
  16. package/out/core/index-state-types.js +11 -0
  17. package/out/core/index-state-types.js.map +1 -0
  18. package/out/core/path-relative.d.ts +15 -0
  19. package/out/core/path-relative.js +84 -0
  20. package/out/core/path-relative.js.map +1 -0
  21. package/out/core/rqignore.js +62 -62
  22. package/out/core/rqignore.js.map +1 -1
  23. package/out/core/types.d.ts +4 -3
  24. package/out/core/types.js +4 -1
  25. package/out/core/types.js.map +1 -1
  26. package/out/core/workspace-paths.d.ts +1 -2
  27. package/out/core/workspace-paths.js +6 -46
  28. package/out/core/workspace-paths.js.map +1 -1
  29. package/out/export/build-export-snapshot.js +1 -1
  30. package/out/export/build-export-snapshot.js.map +1 -1
  31. package/out/export/export-utils.d.ts +5 -0
  32. package/out/export/export-utils.js +38 -0
  33. package/out/export/export-utils.js.map +1 -0
  34. package/out/export/write-csv-export.js +1 -1
  35. package/out/export/write-csv-export.js.map +1 -1
  36. package/out/export/write-markdown-export.js +1 -1
  37. package/out/export/write-markdown-export.js.map +1 -1
  38. package/out/index-store/base-registry.d.ts +2 -3
  39. package/out/index-store/base-registry.js +8 -4
  40. package/out/index-store/base-registry.js.map +1 -1
  41. package/out/index-store/fuzzy-search-hit.d.ts +10 -0
  42. package/out/index-store/fuzzy-search-hit.js +2 -0
  43. package/out/index-store/fuzzy-search-hit.js.map +1 -0
  44. package/out/index-store/index-diagnostics-store.d.ts +4 -0
  45. package/out/index-store/index-diagnostics-store.js +44 -88
  46. package/out/index-store/index-diagnostics-store.js.map +1 -1
  47. package/out/index-store/index-file-error.d.ts +1 -1
  48. package/out/index-store/index-parse-issues.d.ts +4 -3
  49. package/out/index-store/index-parse-issues.js +0 -38
  50. package/out/index-store/index-parse-issues.js.map +1 -1
  51. package/out/index-store/index-status.d.ts +1 -1
  52. package/out/index-store/sqlite-store.d.ts +6 -2
  53. package/out/index-store/sqlite-store.js +70 -613
  54. package/out/index-store/sqlite-store.js.map +1 -1
  55. package/out/index-store/webview-graph-queries.d.ts +5 -0
  56. package/out/index-store/webview-graph-queries.js.map +1 -1
  57. package/out/index-store/workspace-index-file.d.ts +3 -14
  58. package/out/index-store/workspace-index-file.js +1 -114
  59. package/out/index-store/workspace-index-file.js.map +1 -1
  60. package/out/index-store/workspace-index-sync.d.ts +4 -17
  61. package/out/index-store/workspace-index-sync.js +29 -11
  62. package/out/index-store/workspace-index-sync.js.map +1 -1
  63. package/out/index-store/workspace-index.d.ts +36 -9
  64. package/out/index-store/workspace-index.js +223 -120
  65. package/out/index-store/workspace-index.js.map +1 -1
  66. package/out/index.d.ts +16 -43
  67. package/out/index.js +9 -25
  68. package/out/index.js.map +1 -1
  69. package/out/native/generated.d.ts +102 -0
  70. package/out/native/generated.js +4 -0
  71. package/out/native/generated.js.map +1 -0
  72. package/out/native/index.d.ts +17 -0
  73. package/out/native/index.js +12 -0
  74. package/out/native/index.js.map +1 -0
  75. package/out/native/load-native.d.ts +50 -0
  76. package/out/native/load-native.js +186 -0
  77. package/out/native/load-native.js.map +1 -0
  78. package/out/{analysis-api.d.ts → native/native-analysis-api.d.ts} +19 -19
  79. package/out/native/native-analysis-api.js +212 -0
  80. package/out/native/native-analysis-api.js.map +1 -0
  81. package/out/native/native-index-store.d.ts +5 -0
  82. package/out/native/native-index-store.js +6 -0
  83. package/out/native/native-index-store.js.map +1 -0
  84. package/out/native/native-sql-db.d.ts +135 -0
  85. package/out/native/native-sql-db.js +217 -0
  86. package/out/native/native-sql-db.js.map +1 -0
  87. package/out/native/native-workspace-index.d.ts +164 -0
  88. package/out/native/native-workspace-index.js +283 -0
  89. package/out/native/native-workspace-index.js.map +1 -0
  90. package/out/native/open-analysis-api.d.ts +16 -0
  91. package/out/native/open-analysis-api.js +21 -0
  92. package/out/native/open-analysis-api.js.map +1 -0
  93. package/out/native/parse-source.d.ts +24 -0
  94. package/out/native/parse-source.js +26 -0
  95. package/out/native/parse-source.js.map +1 -0
  96. package/package.json +18 -30
  97. package/out/analysis/analyser-registry.d.ts +0 -21
  98. package/out/analysis/analyser-registry.js +0 -33
  99. package/out/analysis/analyser-registry.js.map +0 -1
  100. package/out/analysis/completion-tracking-analyser.d.ts +0 -3
  101. package/out/analysis/completion-tracking-analyser.js +0 -37
  102. package/out/analysis/completion-tracking-analyser.js.map +0 -1
  103. package/out/analysis/contextual-search.d.ts +0 -26
  104. package/out/analysis/contextual-search.js +0 -94
  105. package/out/analysis/contextual-search.js.map +0 -1
  106. package/out/analysis/deprecation-impact-analyser.d.ts +0 -3
  107. package/out/analysis/deprecation-impact-analyser.js +0 -21
  108. package/out/analysis/deprecation-impact-analyser.js.map +0 -1
  109. package/out/analysis/file-related-analyser.d.ts +0 -5
  110. package/out/analysis/file-related-analyser.js +0 -41
  111. package/out/analysis/file-related-analyser.js.map +0 -1
  112. package/out/analysis/fuzzy-search-analyser.d.ts +0 -17
  113. package/out/analysis/fuzzy-search-analyser.js +0 -25
  114. package/out/analysis/fuzzy-search-analyser.js.map +0 -1
  115. package/out/analysis/fuzzy-search-worker-client.d.ts +0 -39
  116. package/out/analysis/fuzzy-search-worker-client.js +0 -178
  117. package/out/analysis/fuzzy-search-worker-client.js.map +0 -1
  118. package/out/analysis/fuzzy-search-worker.d.ts +0 -32
  119. package/out/analysis/fuzzy-search-worker.js +0 -81
  120. package/out/analysis/fuzzy-search-worker.js.map +0 -1
  121. package/out/analysis/fuzzy-search.d.ts +0 -62
  122. package/out/analysis/fuzzy-search.js +0 -471
  123. package/out/analysis/fuzzy-search.js.map +0 -1
  124. package/out/analysis/git-dates-analyser.d.ts +0 -12
  125. package/out/analysis/git-dates-analyser.js +0 -96
  126. package/out/analysis/git-dates-analyser.js.map +0 -1
  127. package/out/analysis/list-ideas-analyser.d.ts +0 -3
  128. package/out/analysis/list-ideas-analyser.js +0 -7
  129. package/out/analysis/list-ideas-analyser.js.map +0 -1
  130. package/out/analysis/local-graph-analyser.d.ts +0 -6
  131. package/out/analysis/local-graph-analyser.js +0 -42
  132. package/out/analysis/local-graph-analyser.js.map +0 -1
  133. package/out/analysis/semantic-search-analyser.d.ts +0 -8
  134. package/out/analysis/semantic-search-analyser.js +0 -51
  135. package/out/analysis/semantic-search-analyser.js.map +0 -1
  136. package/out/analysis-api.js +0 -199
  137. package/out/analysis-api.js.map +0 -1
  138. package/out/core/analytical-store.d.ts +0 -85
  139. package/out/core/analytical-store.js +0 -143
  140. package/out/core/analytical-store.js.map +0 -1
  141. package/out/core/context-model.d.ts +0 -204
  142. package/out/core/context-model.js +0 -36
  143. package/out/core/context-model.js.map +0 -1
  144. package/out/core/context-signals.d.ts +0 -154
  145. package/out/core/context-signals.js +0 -406
  146. package/out/core/context-signals.js.map +0 -1
  147. package/out/create-runtime.d.ts +0 -47
  148. package/out/create-runtime.js +0 -79
  149. package/out/create-runtime.js.map +0 -1
  150. package/out/export/export-html.d.ts +0 -4
  151. package/out/export/export-html.js +0 -12
  152. package/out/export/export-html.js.map +0 -1
  153. package/out/export/html-export-assets.d.ts +0 -3
  154. package/out/export/html-export-assets.js +0 -2294
  155. package/out/export/html-export-assets.js.map +0 -1
  156. package/out/export/html-export-template.d.ts +0 -18
  157. package/out/export/html-export-template.js +0 -1154
  158. package/out/export/html-export-template.js.map +0 -1
  159. package/out/export/html-export-utils.d.ts +0 -86
  160. package/out/export/html-export-utils.js +0 -485
  161. package/out/export/html-export-utils.js.map +0 -1
  162. package/out/export/write-html-export.d.ts +0 -2
  163. package/out/export/write-html-export.js +0 -181
  164. package/out/export/write-html-export.js.map +0 -1
  165. package/out/graph/physics-core-source.d.ts +0 -5
  166. package/out/graph/physics-core-source.js +0 -8
  167. package/out/graph/physics-core-source.js.map +0 -1
  168. package/out/graph/physics-core.d.ts +0 -141
  169. package/out/graph/physics-core.js +0 -237
  170. package/out/graph/physics-core.js.map +0 -1
  171. package/out/index-store/file-treatment.d.ts +0 -40
  172. package/out/index-store/file-treatment.js +0 -144
  173. package/out/index-store/file-treatment.js.map +0 -1
  174. package/out/index-store/idea-extractor.d.ts +0 -11
  175. package/out/index-store/idea-extractor.js +0 -351
  176. package/out/index-store/idea-extractor.js.map +0 -1
  177. package/out/index-store/overview-coverage.d.ts +0 -23
  178. package/out/index-store/overview-coverage.js +0 -254
  179. package/out/index-store/overview-coverage.js.map +0 -1
package/out/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- export { createAnalyticalStore } from './core/analytical-store.js';
2
- export type { AnalyticalState, AnalyticalStore, AnalyticalStoreState, AnalysisRun, DocumentUpdate, DocumentUpdateIdea, IndexError, FileIndexIssue, IndexState, WorkspaceChange, WorkspaceFileChange } from './core/analytical-store.js';
3
- export type { IndexErrorPhase } from './core/analytical-store.js';
1
+ export type { DocumentUpdate, DocumentUpdateIdea, IndexError, IndexEvent, FileIndexIssue, IndexState, WorkspaceChange, WorkspaceFileChange } from './core/index-state-types.js';
2
+ export type { IndexErrorPhase } from './core/index-state-types.js';
4
3
  export { toIndexErrorDetail, toFileIndexIssueView, errorCauseMessage } from './core/index-error.js';
5
4
  export type { IndexErrorDetail, FileIndexIssueView } from './core/index-error.js';
6
5
  export { normalizeIndexedDocument, resolveWorkspaceFileUri, toWorkspaceRelativePath } from './core/workspace-paths.js';
6
+ export { fileUriFromFsPath, fsPathFromFileUri, isWindowsAbsolutePath } from './core/path-relative.js';
7
7
  export { APPLICATION_MEMORY_DIR, CONFIG_FILENAME, IDEAS_INDEX_FILENAME, INDEX_DIAGNOSTICS_FILENAME, RQIGNORE_FILENAME, resolveApplicationMemoryPath, resolveIdeasIndexDbPath, resolveIndexDiagnosticsDbPath } from './core/application-memory.js';
8
8
  export { DEFAULT_RQIGNORE_PATTERNS, createRqIgnoreFilter, defaultRqIgnoreFileContents, isIgnoredPath, loadRqIgnore, resolveRqIgnorePath } from './core/rqignore.js';
9
9
  export type { RqIgnoreFilter } from './core/rqignore.js';
@@ -11,71 +11,44 @@ export { createBase } from './core/create-base.js';
11
11
  export type { CreateBaseResult } from './core/create-base.js';
12
12
  export { barrelPage, planBarrelPage, rewriteSiblingRefs } from './core/barrel-page.js';
13
13
  export type { BarrelPageChildPlan, BarrelPageOptions, BarrelPagePlan, BarrelPagePlanOptions, BarrelPageResult } from './core/barrel-page.js';
14
- export { baseForPath, childBasesOf, discoverBases, discoverBasesUnder, filesOwnedByBase, isPathInsideOrEqual, selectDefaultBase, stableBaseId, toBaseDescriptor } from './core/base-discovery.js';
14
+ export { baseForPath, childBasesOf, discoverBases, discoverBasesUnder, filesOwnedByBase, isPathInsideOrEqual, nearestBaseRoot, selectDefaultBase, stableBaseId, toBaseDescriptor } from './core/base-discovery.js';
15
15
  export type { BaseDescriptor } from './core/base-discovery.js';
16
16
  export { BaseRegistry } from './index-store/base-registry.js';
17
17
  export type { BaseStatusEntry, RegisteredBase } from './index-store/base-registry.js';
18
18
  export { resolveReferencedFilePath } from './core/file-reference-resolve.js';
19
- export type { Analyser, AnalyserContext } from './analysis/analyser-registry.js';
20
- export { AnalyserRegistry } from './analysis/analyser-registry.js';
21
- export { listAllIdeasAnalyser } from './analysis/list-ideas-analyser.js';
22
- export { fileRelatedAnalyser } from './analysis/file-related-analyser.js';
23
- export { deprecationImpactAnalyser } from './analysis/deprecation-impact-analyser.js';
24
- export { gitDatesAnalyser } from './analysis/git-dates-analyser.js';
25
- export type { GitDateInfo } from './analysis/git-dates-analyser.js';
26
- export { completionTrackingAnalyser } from './analysis/completion-tracking-analyser.js';
27
- export { localGraphAnalyser } from './analysis/local-graph-analyser.js';
28
- export { semanticSearchAnalyser } from './analysis/semantic-search-analyser.js';
29
- export { applyContextDistanceScoring, CONTEXT_UNREACHABLE_HOP, normalizeContextRef, rerankMatchesWithContext, resolveSearchContextRefs } from './analysis/contextual-search.js';
30
- export type { SearchContextIndex, SearchContextStore } from './analysis/contextual-search.js';
31
- export { fuzzySearchAnalyser } from './analysis/fuzzy-search-analyser.js';
32
- export type { FuzzySearchParams } from './analysis/fuzzy-search-analyser.js';
33
- export { filterAndScoreIdeas, filterAndScoreIdeasAsync, findSearchHighlightRanges, fuzzySubsequence, matchQueryTokens, normalizeSearchSeparators, splitSearchHighlight, splitSearchTokens } from './analysis/fuzzy-search.js';
34
- export type { FuzzySearchHit, SearchHighlightOptions, SearchHighlightPart, SearchHighlightRange } from './analysis/fuzzy-search.js';
35
- export { FuzzySearchWorkerClient, SearchCancelledError, resolveFuzzySearchWorkerPath } from './analysis/fuzzy-search-worker-client.js';
36
- export type { FuzzySearchWorkerIdea, FuzzySearchWorkerInbound, FuzzySearchWorkerOutbound } from './analysis/fuzzy-search-worker.js';
37
- export type { FuzzySearchWorkerSearchResult } from './analysis/fuzzy-search-worker-client.js';
38
- export { extractIndexedDocument } from './index-store/idea-extractor.js';
39
19
  export { SqliteIndexStore } from './index-store/sqlite-store.js';
40
20
  export type { IdeasTableQuery, IdeasetsTableQuery, ReferencesTableQuery, AttributesTableQuery, AttributeTableRow, GitIdeaTimelineEvent, ColumnFilter, ReferenceFilter, IdeasSortColumn, IdeasetsSortColumn, ReferencesSortColumn, AttributesSortColumn, IdeasGroupBy, ReferencesGroupBy, SortDirection } from './index-store/webview-table-queries.js';
41
21
  export { attributeKeyFromChipItem, attributeJsonPath, formatAttributeValue, aggregateAttributesFromRows, filterAndPageAttributes, edgeKindsForReferenceViewTypes } from './index-store/webview-table-queries.js';
42
22
  export type { GraphViewQuery, GraphViewSlice, GraphNodeView, GraphEdgeView, GraphTruncationBasis } from './index-store/webview-graph-queries.js';
43
- export { applyFileTreatment, cycleFileTreatment, DEFAULT_FILE_TREATMENT, FILE_TREATMENT_MODES, FILE_TREATMENT_OPTIONS, fileCompoundNodeId, fileIdeasetDisplayName, fileIdeasetNodeId, fileTreatmentLabel, fileTreatmentOption, fileUriFromFileCompoundId, fileUriFromFileIdeasetId, isFileIdeasetNode, isFileIdeasetNodeId, normalizeFileTreatment } from './index-store/file-treatment.js';
44
- export type { FileTreatment, FileTreatmentOption } from './index-store/file-treatment.js';
45
- export { computeOverviewCoverageScores } from './index-store/overview-coverage.js';
46
- export type { OverviewCoverageScores, ComputeOverviewCoverageOptions } from './index-store/overview-coverage.js';
23
+ export type { OverviewCoverageScores } from './native/native-workspace-index.js';
47
24
  export { GRAPH_MAX_NODES, GRAPH_NODES_HARD_CAP, GRAPH_TRUNCATION_BASIS_OPTIONS, buildGraphFilterWhereClause, buildGraphTruncationOrderClause, buildGraphViewSlice, buildGraphSliceForIdeaIds, toGraphNodeView, isWildcardReferenceEdge, CONTEXT_MIN_HOP_DEPTH, CONTEXT_MAX_HOP_DEPTH, clampGraphHopDepth } from './index-store/webview-graph-queries.js';
48
25
  export { ACTIVITY_BAR_MAX_NODES, BLOCKING_STATUSES } from './core/types.js';
49
- export type { ActivityBarScope, AncestorChainResult, CurrentFileSlice, IdeaWithRange, OutlineNode, ReferenceListRow, ReqlanContextModel, ContextAnomaly, ContextDimensionContribution, ContextDimensionId, ContextFileEntry, ContextFocus, ContextFootprint, GitAuthorRollup, GitContextSlice, GitFocusStats, GitFocusCommit, GitPeerChangeRate, WorkspaceBaseGlance, WorkspaceContextSlice } from './core/types.js';
50
- export type { ContextFileLensDetail, ContextReferencesSlice, ContextSelection } from './core/context-model.js';
51
- export { CONTEXT_DIMENSION_LABELS, CONTEXT_DIMENSION_WEIGHTS, CONTEXT_GRAPH_SEARCH_DIMENSIONS, DEFAULT_ENABLED_DIMENSIONS } from './core/context-model.js';
52
- export { buildAiReadiness, buildContextFingerprint, buildFocusSignals, CONTEXT_FINGERPRINT_AXIS_HELP, CONTEXT_FINGERPRINT_HELP, emptyContextSignals, emptyContextSynthesis, fingerprintAxisTooltip, formatAiReadinessMarkdown, formatFingerprintMarkdown, formatSynthesisMarkdown, hopDistancesFromCenter, hopDistancesFromCenters, hotspotBandFromRisk, hotspotBorderColor, hotspotBorderWidth, impactOpacityForHopDistance, requirementCardCue, synthesizeFocusContext, thinChurnIntensity, timelineMilestones } from './core/context-signals.js';
53
- export type { AiReadiness, ContextCoverageLevel, ContextFingerprintAxes, ContextHotspotBand, ContextRiskLevel, ContextSignals, ContextSynthesis, DevelopmentHistorySignals, FocusSignalInput, LifecycleSignals, QualitySignals, RelationshipSignals, RiskSignals } from './core/context-signals.js';
54
26
  export { resolveBidirectionalIdeaReferences } from './core/idea-references.js';
55
27
  export type { IdeaReferenceStore } from './core/idea-references.js';
56
28
  export * from './core/types.js';
57
29
  export { FILTER_EMPTY, FILTER_EMPTY_LABEL, FILTER_NOT_PRESENT, FILTER_NOT_PRESENT_LABEL, FILTER_UNSPECIFIED, attributePresence, filterDisplayLabel, isFilterEmpty, isFilterNotPresent, isFilterUnspecified, isSpecialFilterValue, statusFilterKey, statusFilterKeyFromAttributes, statusIsNotPresent, tagsAreNotPresent, tagsFilterKeysFromAttributes } from './core/filter-specials.js';
58
30
  export type { AttributePresence } from './core/filter-specials.js';
59
31
  export { WorkspaceIndex, WorkspaceIndex as HeadlessIndexService } from './index-store/workspace-index.js';
60
- export type { IdleCheckResult } from './index-store/workspace-index.js';
32
+ export type { FuzzySearchResult, IdleCheckResult } from './index-store/workspace-index.js';
33
+ export type { FuzzySearchHit } from './index-store/fuzzy-search-hit.js';
61
34
  export type { IndexStatusSnapshot, IndexSyncProgress } from './index-store/index-status.js';
62
35
  export { IndexDiagnosticsStore, pathDepthFromUri } from './index-store/index-diagnostics-store.js';
63
36
  export type { IndexDiagnosticsOverview, IndexFileOutcome, IndexFileTimingRecord, IndexFileTimingRow, IndexSyncRunRecord, IndexSyncRunSummary, IndexTimingTrigger } from './index-store/index-diagnostics-store.js';
64
- export { collectParseIssues, fileIssue, fileIssueFromError, unnamedIdeaIssues, validIdeas } from './index-store/index-parse-issues.js';
37
+ export { fileIssue, fileIssueFromError, unnamedIdeaIssues, validIdeas } from './index-store/index-parse-issues.js';
65
38
  export type { FileIndexIssueDraft } from './index-store/index-parse-issues.js';
66
39
  export { IndexFileError, recordCaughtFileIssue, recordCaughtIndexError, toFileIndexIssueDraft } from './index-store/index-file-error.js';
67
- export { activateAnalysisRuntime, createAnalysisRuntime, deactivateAnalysisRuntime } from './create-runtime.js';
68
- export type { AnalysisRuntime, AnalysisRuntimeOptions } from './create-runtime.js';
69
- export { AnalysisApi } from './analysis-api.js';
70
- export type { InteractionDescriptor, RequirementMatch, SearchRequirementsOptions } from './analysis-api.js';
40
+ export { NativeAnalysisApi } from './native/native-analysis-api.js';
41
+ export type { AnalysisRuntimeOptions, InteractionDescriptor, RequirementMatch, SearchRequirementsOptions } from './native/native-analysis-api.js';
42
+ export { openAnalysisApi, type HeadlessAnalysisApi, type OpenedAnalysisApi } from './native/open-analysis-api.js';
43
+ export { nativeEngineRequested, loadNativeEngine, tryLoadNativeEngine, nativeEngineAvailable, addNativeEngineSearchDirs, resetNativeEngineCache } from './native/load-native.js';
44
+ export { NativeWorkspaceIndex } from './native/native-workspace-index.js';
45
+ export type { NativeSyncResult } from './native/native-workspace-index.js';
46
+ export { NativeIndexStore } from './native/native-index-store.js';
47
+ export { NativeSqlConnection } from './native/native-sql-db.js';
71
48
  export { buildExportSnapshot } from './export/build-export-snapshot.js';
72
- export { exportHtml } from './export/export-html.js';
73
49
  export { exportMarkdown } from './export/export-markdown.js';
74
50
  export { exportJson } from './export/export-json.js';
75
51
  export { exportCsv } from './export/export-csv.js';
76
52
  export { csvEscape } from './export/write-csv-export.js';
77
- export { writeHtmlExport } from './export/write-html-export.js';
78
53
  export { isSecretRqPath } from './export/secret-rq.js';
79
54
  export type { ExportCounts, ExportClusterStrategy, ExportFormat, ExportHeaderLink, ExportProgress, ExportProgressCallback, ExportProgressPhase, ExportRequest, ExportResult, ExportRuntimeMode, ExportScope, ExportSnapshot } from './export/types.js';
80
- export { DEFAULT_PHYSICS_SETTINGS, ReqlanGraphPhysics, accumulateForces, hashAngle, integrateFromForces, stepPhysics } from './graph/physics-core.js';
81
- export type { PhysicsCoreSettings, PhysicsEdge, PhysicsStepState } from './graph/physics-core.js';
package/out/index.js CHANGED
@@ -1,50 +1,34 @@
1
- export { createAnalyticalStore } from './core/analytical-store.js';
2
1
  export { toIndexErrorDetail, toFileIndexIssueView, errorCauseMessage } from './core/index-error.js';
3
2
  export { normalizeIndexedDocument, resolveWorkspaceFileUri, toWorkspaceRelativePath } from './core/workspace-paths.js';
3
+ export { fileUriFromFsPath, fsPathFromFileUri, isWindowsAbsolutePath } from './core/path-relative.js';
4
4
  export { APPLICATION_MEMORY_DIR, CONFIG_FILENAME, IDEAS_INDEX_FILENAME, INDEX_DIAGNOSTICS_FILENAME, RQIGNORE_FILENAME, resolveApplicationMemoryPath, resolveIdeasIndexDbPath, resolveIndexDiagnosticsDbPath } from './core/application-memory.js';
5
5
  export { DEFAULT_RQIGNORE_PATTERNS, createRqIgnoreFilter, defaultRqIgnoreFileContents, isIgnoredPath, loadRqIgnore, resolveRqIgnorePath } from './core/rqignore.js';
6
6
  export { createBase } from './core/create-base.js';
7
7
  export { barrelPage, planBarrelPage, rewriteSiblingRefs } from './core/barrel-page.js';
8
- export { baseForPath, childBasesOf, discoverBases, discoverBasesUnder, filesOwnedByBase, isPathInsideOrEqual, selectDefaultBase, stableBaseId, toBaseDescriptor } from './core/base-discovery.js';
8
+ export { baseForPath, childBasesOf, discoverBases, discoverBasesUnder, filesOwnedByBase, isPathInsideOrEqual, nearestBaseRoot, selectDefaultBase, stableBaseId, toBaseDescriptor } from './core/base-discovery.js';
9
9
  export { BaseRegistry } from './index-store/base-registry.js';
10
10
  export { resolveReferencedFilePath } from './core/file-reference-resolve.js';
11
- export { AnalyserRegistry } from './analysis/analyser-registry.js';
12
- export { listAllIdeasAnalyser } from './analysis/list-ideas-analyser.js';
13
- export { fileRelatedAnalyser } from './analysis/file-related-analyser.js';
14
- export { deprecationImpactAnalyser } from './analysis/deprecation-impact-analyser.js';
15
- export { gitDatesAnalyser } from './analysis/git-dates-analyser.js';
16
- export { completionTrackingAnalyser } from './analysis/completion-tracking-analyser.js';
17
- export { localGraphAnalyser } from './analysis/local-graph-analyser.js';
18
- export { semanticSearchAnalyser } from './analysis/semantic-search-analyser.js';
19
- export { applyContextDistanceScoring, CONTEXT_UNREACHABLE_HOP, normalizeContextRef, rerankMatchesWithContext, resolveSearchContextRefs } from './analysis/contextual-search.js';
20
- export { fuzzySearchAnalyser } from './analysis/fuzzy-search-analyser.js';
21
- export { filterAndScoreIdeas, filterAndScoreIdeasAsync, findSearchHighlightRanges, fuzzySubsequence, matchQueryTokens, normalizeSearchSeparators, splitSearchHighlight, splitSearchTokens } from './analysis/fuzzy-search.js';
22
- export { FuzzySearchWorkerClient, SearchCancelledError, resolveFuzzySearchWorkerPath } from './analysis/fuzzy-search-worker-client.js';
23
- export { extractIndexedDocument } from './index-store/idea-extractor.js';
24
11
  export { SqliteIndexStore } from './index-store/sqlite-store.js';
25
12
  export { attributeKeyFromChipItem, attributeJsonPath, formatAttributeValue, aggregateAttributesFromRows, filterAndPageAttributes, edgeKindsForReferenceViewTypes } from './index-store/webview-table-queries.js';
26
- export { applyFileTreatment, cycleFileTreatment, DEFAULT_FILE_TREATMENT, FILE_TREATMENT_MODES, FILE_TREATMENT_OPTIONS, fileCompoundNodeId, fileIdeasetDisplayName, fileIdeasetNodeId, fileTreatmentLabel, fileTreatmentOption, fileUriFromFileCompoundId, fileUriFromFileIdeasetId, isFileIdeasetNode, isFileIdeasetNodeId, normalizeFileTreatment } from './index-store/file-treatment.js';
27
- export { computeOverviewCoverageScores } from './index-store/overview-coverage.js';
28
13
  export { GRAPH_MAX_NODES, GRAPH_NODES_HARD_CAP, GRAPH_TRUNCATION_BASIS_OPTIONS, buildGraphFilterWhereClause, buildGraphTruncationOrderClause, buildGraphViewSlice, buildGraphSliceForIdeaIds, toGraphNodeView, isWildcardReferenceEdge, CONTEXT_MIN_HOP_DEPTH, CONTEXT_MAX_HOP_DEPTH, clampGraphHopDepth } from './index-store/webview-graph-queries.js';
29
14
  export { ACTIVITY_BAR_MAX_NODES, BLOCKING_STATUSES } from './core/types.js';
30
- export { CONTEXT_DIMENSION_LABELS, CONTEXT_DIMENSION_WEIGHTS, CONTEXT_GRAPH_SEARCH_DIMENSIONS, DEFAULT_ENABLED_DIMENSIONS } from './core/context-model.js';
31
- export { buildAiReadiness, buildContextFingerprint, buildFocusSignals, CONTEXT_FINGERPRINT_AXIS_HELP, CONTEXT_FINGERPRINT_HELP, emptyContextSignals, emptyContextSynthesis, fingerprintAxisTooltip, formatAiReadinessMarkdown, formatFingerprintMarkdown, formatSynthesisMarkdown, hopDistancesFromCenter, hopDistancesFromCenters, hotspotBandFromRisk, hotspotBorderColor, hotspotBorderWidth, impactOpacityForHopDistance, requirementCardCue, synthesizeFocusContext, thinChurnIntensity, timelineMilestones } from './core/context-signals.js';
32
15
  export { resolveBidirectionalIdeaReferences } from './core/idea-references.js';
33
16
  export * from './core/types.js';
34
17
  export { FILTER_EMPTY, FILTER_EMPTY_LABEL, FILTER_NOT_PRESENT, FILTER_NOT_PRESENT_LABEL, FILTER_UNSPECIFIED, attributePresence, filterDisplayLabel, isFilterEmpty, isFilterNotPresent, isFilterUnspecified, isSpecialFilterValue, statusFilterKey, statusFilterKeyFromAttributes, statusIsNotPresent, tagsAreNotPresent, tagsFilterKeysFromAttributes } from './core/filter-specials.js';
35
18
  export { WorkspaceIndex, WorkspaceIndex as HeadlessIndexService } from './index-store/workspace-index.js';
36
19
  export { IndexDiagnosticsStore, pathDepthFromUri } from './index-store/index-diagnostics-store.js';
37
- export { collectParseIssues, fileIssue, fileIssueFromError, unnamedIdeaIssues, validIdeas } from './index-store/index-parse-issues.js';
20
+ export { fileIssue, fileIssueFromError, unnamedIdeaIssues, validIdeas } from './index-store/index-parse-issues.js';
38
21
  export { IndexFileError, recordCaughtFileIssue, recordCaughtIndexError, toFileIndexIssueDraft } from './index-store/index-file-error.js';
39
- export { activateAnalysisRuntime, createAnalysisRuntime, deactivateAnalysisRuntime } from './create-runtime.js';
40
- export { AnalysisApi } from './analysis-api.js';
22
+ export { NativeAnalysisApi } from './native/native-analysis-api.js';
23
+ export { openAnalysisApi } from './native/open-analysis-api.js';
24
+ export { nativeEngineRequested, loadNativeEngine, tryLoadNativeEngine, nativeEngineAvailable, addNativeEngineSearchDirs, resetNativeEngineCache } from './native/load-native.js';
25
+ export { NativeWorkspaceIndex } from './native/native-workspace-index.js';
26
+ export { NativeIndexStore } from './native/native-index-store.js';
27
+ export { NativeSqlConnection } from './native/native-sql-db.js';
41
28
  export { buildExportSnapshot } from './export/build-export-snapshot.js';
42
- export { exportHtml } from './export/export-html.js';
43
29
  export { exportMarkdown } from './export/export-markdown.js';
44
30
  export { exportJson } from './export/export-json.js';
45
31
  export { exportCsv } from './export/export-csv.js';
46
32
  export { csvEscape } from './export/write-csv-export.js';
47
- export { writeHtmlExport } from './export/write-html-export.js';
48
33
  export { isSecretRqPath } from './export/secret-rq.js';
49
- export { DEFAULT_PHYSICS_SETTINGS, ReqlanGraphPhysics, accumulateForces, hashAngle, integrateFromForces, stepPhysics } from './graph/physics-core.js';
50
34
  //# sourceMappingURL=index.js.map
package/out/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ export type CompletionSummary = {
2
+ total: number;
3
+ byStatus: Partial<{
4
+ [key in string]: number;
5
+ }>;
6
+ byTag: Partial<{
7
+ [key in string]: number;
8
+ }>;
9
+ outstanding: IdeaSummary[];
10
+ deprecated: IdeaSummary[];
11
+ };
12
+ export type DeprecationImpact = {
13
+ deprecated: IdeaSummary;
14
+ dependents: IdeaSummary[];
15
+ };
16
+ export type EdgeDto = {
17
+ id: string;
18
+ sourceId: string;
19
+ targetId?: string | null;
20
+ targetFile?: string | null;
21
+ kind: string;
22
+ label?: string | null;
23
+ };
24
+ export type ExportHeaderLinkDto = {
25
+ href: string;
26
+ label: string;
27
+ };
28
+ export type ExportRequestDto = {
29
+ format: string;
30
+ outputDir: string;
31
+ exportName: string;
32
+ workspaceRoot?: string | null;
33
+ templateId?: string;
34
+ scope?: string;
35
+ sourceFileUri?: string | null;
36
+ includeRequirementsPage?: boolean;
37
+ includeGraphPage?: boolean;
38
+ printEntryFileName?: string;
39
+ excludeSecretFiles?: boolean;
40
+ excludeIgnoredFiles?: boolean;
41
+ runtimeMode?: string;
42
+ clusterStrategy?: string;
43
+ includeIdeaPages?: boolean;
44
+ includeFilePages?: boolean;
45
+ includeCodeFilePages?: boolean;
46
+ includeClusterPages?: boolean;
47
+ includeAttributePages?: boolean;
48
+ includePrintPages?: boolean;
49
+ maxGraphNodes?: number | null;
50
+ urlBase?: string | null;
51
+ headerLink?: ExportHeaderLinkDto | null;
52
+ };
53
+ export type ExportResultDto = {
54
+ outputDir: string;
55
+ indexFilePath: string;
56
+ printFilePath: string;
57
+ dataFilePath: string;
58
+ };
59
+ export type FileReferenceMatch = {
60
+ path: string;
61
+ ideas: IdeaSummary[];
62
+ };
63
+ export type FileRelatedRequirements = {
64
+ fileUri: string;
65
+ ideasInFile: IdeaSummary[];
66
+ referencingIdeas: IdeaSummary[];
67
+ commentLinkedIdeas: IdeaSummary[];
68
+ folderReferencingIdeas: IdeaSummary[];
69
+ };
70
+ export type GraphSlice = {
71
+ centerId: string;
72
+ depth: number;
73
+ nodes: IdeaSummary[];
74
+ edges: EdgeDto[];
75
+ };
76
+ export type IdeaSummary = {
77
+ id: string;
78
+ name: string;
79
+ kind: string;
80
+ fileUri: string;
81
+ lineStart: number;
82
+ summary: string;
83
+ status?: string | null;
84
+ statusKey: string;
85
+ tags: string[];
86
+ tagsKeys: string[];
87
+ };
88
+ export type InteractionDescriptor = {
89
+ name: string;
90
+ description: string;
91
+ parameters: Partial<{
92
+ [key in string]: string;
93
+ }>;
94
+ };
95
+ export type RequirementMatch = {
96
+ idea: IdeaSummary;
97
+ score?: number | null;
98
+ reasons?: string[] | null;
99
+ };
100
+ export type SearchRequirementsOptions = {
101
+ context?: string[];
102
+ };
@@ -0,0 +1,4 @@
1
+ // Generated by reqlan-analytical export-ts. Do not edit.
2
+ // rq:["../../../reqlan rq/core_analysis/rust_port.rq".ts_interface]
3
+ export {};
4
+ //# sourceMappingURL=generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated.js","sourceRoot":"","sources":["../../src/native/generated.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,oEAAoE"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Core analytical engine for CLI and MCP: Rust via napi, no Langium.
3
+ * rq:["../../../reqlan rq/core_analysis/rust_port.rq".native_bridge]
4
+ * rq:["../../../reqlan rq/core_analysis/rust_port.rq".cutover]
5
+ */
6
+ export { createBase } from '../core/create-base.js';
7
+ export type { CreateBaseResult } from '../core/create-base.js';
8
+ export { barrelPage, planBarrelPage, rewriteSiblingRefs } from '../core/barrel-page.js';
9
+ export type { BarrelPageChildPlan, BarrelPageOptions, BarrelPagePlan, BarrelPagePlanOptions, BarrelPageResult } from '../core/barrel-page.js';
10
+ export { toWorkspaceRelativePath } from '../core/path-relative.js';
11
+ export type { CompletionSummary, FileRelatedRequirements, GraphSlice, IdeaSummary } from '../core/types.js';
12
+ export type { ExportClusterStrategy, ExportRuntimeMode, ExportScope } from '../export/types.js';
13
+ export { NativeAnalysisApi } from './native-analysis-api.js';
14
+ export type { AnalysisRuntimeOptions, InteractionDescriptor, RequirementMatch, SearchRequirementsOptions } from './native-analysis-api.js';
15
+ export { openAnalysisApi, type HeadlessAnalysisApi, type OpenedAnalysisApi } from './open-analysis-api.js';
16
+ export { extractIdeaNames, parseReqlanSource } from './parse-source.js';
17
+ export type { NativeParseDiagnostic, NativeParseElement, NativeParseResult } from './parse-source.js';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Core analytical engine for CLI and MCP: Rust via napi, no Langium.
3
+ * rq:["../../../reqlan rq/core_analysis/rust_port.rq".native_bridge]
4
+ * rq:["../../../reqlan rq/core_analysis/rust_port.rq".cutover]
5
+ */
6
+ export { createBase } from '../core/create-base.js';
7
+ export { barrelPage, planBarrelPage, rewriteSiblingRefs } from '../core/barrel-page.js';
8
+ export { toWorkspaceRelativePath } from '../core/path-relative.js';
9
+ export { NativeAnalysisApi } from './native-analysis-api.js';
10
+ export { openAnalysisApi } from './open-analysis-api.js';
11
+ export { extractIdeaNames, parseReqlanSource } from './parse-source.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAQxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAYnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAO7D,OAAO,EACH,eAAe,EAGlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { NativeSqlDbHandle } from './native-sql-db.js';
2
+ import type { NativeWorkspaceIndexHandle } from './native-workspace-index.js';
3
+ export interface NativeAnalysisRuntimeHandle {
4
+ ensureReady(): void;
5
+ searchRequirements(query: string, limit: number, context?: string[]): unknown;
6
+ listRequirements(limit: number): unknown;
7
+ getFileContext(filePath: string): unknown;
8
+ getLocalGraph(filePath: string, depth: number): unknown;
9
+ summarizeSubtree(requirementName: string, depth: number): unknown;
10
+ getCompletionStatus(): unknown;
11
+ getDeprecationImpact(): unknown;
12
+ exportGraph(request: unknown): unknown;
13
+ resolveRequirementReference(name?: string): unknown;
14
+ resolveFileReference(pathPrefix?: string): unknown;
15
+ }
16
+ export interface NativeModule {
17
+ NativeAnalysisRuntime: {
18
+ open(workspaceRoot: string, storagePath?: string): NativeAnalysisRuntimeHandle;
19
+ };
20
+ NativeSqlDb: {
21
+ open(path: string): NativeSqlDbHandle;
22
+ };
23
+ NativeWorkspaceIndex: {
24
+ open(workspaceRoot: string, storagePath?: string): NativeWorkspaceIndexHandle;
25
+ };
26
+ /** Single-file parse; present on core engine builds with CLI parse. */
27
+ parseReqlanSource?(source: string): unknown;
28
+ /** Top-level idea names in a document (git-context historical extract). */
29
+ extractIdeaNames?(source: string): string[];
30
+ /** Barrel-page plan from source text (no filesystem writes). */
31
+ barrelPagePlan?(source: string, containerName: string | undefined, sourceFileName: string): unknown;
32
+ /** Seed a reqlan base marker (`.reqlan/` + `config.json` + `.rqignore`). */
33
+ createBase?(baseRoot: string): unknown;
34
+ }
35
+ /**
36
+ * Register directories that may contain a staged host-matching `reqlan_napi.node`
37
+ * (used by the VS Code extension after per-target VSIX packaging).
38
+ */
39
+ export declare function addNativeEngineSearchDirs(...dirs: string[]): void;
40
+ /**
41
+ * Native engine is required. Env overrides that forced the old JS/sql.js path
42
+ * are rejected so production always uses the host core engine.
43
+ */
44
+ export declare function nativeEngineRequested(): boolean;
45
+ /** Load the host-matching core engine `.node`, or `undefined` when unavailable. */
46
+ export declare function tryLoadNativeEngine(): NativeModule | undefined;
47
+ export declare function loadNativeEngine(): NativeModule;
48
+ export declare function nativeEngineAvailable(): boolean;
49
+ /** Clear the load cache (tests / after registering new search dirs). */
50
+ export declare function resetNativeEngineCache(): void;
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Native engine feature flag and napi-rs loader.
3
+ * rq:["../../../reqlan rq/distribution/distribution.rq".rust_binary_distribution]
4
+ * rq:["../../../reqlan rq/distribution/distribution.rq".extension_host_target]
5
+ * rq:["../../../reqlan rq/core_analysis/rust_port.rq".native_bridge]
6
+ * rq:["../../../reqlan rq/core_analysis/rust_port.rq".cutover]
7
+ */
8
+ import { createRequire } from 'node:module';
9
+ import { existsSync } from 'node:fs';
10
+ import { dirname, join } from 'node:path';
11
+ import { fileURLToPath } from 'node:url';
12
+ function moduleDirectory() {
13
+ if (typeof __dirname === 'string') {
14
+ return __dirname;
15
+ }
16
+ return dirname(fileURLToPath(import.meta.url));
17
+ }
18
+ function nativeRequire() {
19
+ if (typeof __filename === 'string') {
20
+ return createRequire(__filename);
21
+ }
22
+ return createRequire(import.meta.url);
23
+ }
24
+ /** Extra directories to search for a staged `reqlan_napi.node` (e.g. extension VSIX `native/`). */
25
+ const extraSearchDirs = [];
26
+ /** null = not probed yet; undefined = probed, missing; NativeModule = loaded */
27
+ let cachedEngine = null;
28
+ /**
29
+ * Register directories that may contain a staged host-matching `reqlan_napi.node`
30
+ * (used by the VS Code extension after per-target VSIX packaging).
31
+ */
32
+ export function addNativeEngineSearchDirs(...dirs) {
33
+ for (const dir of dirs) {
34
+ if (dir && !extraSearchDirs.includes(dir)) {
35
+ extraSearchDirs.push(dir);
36
+ }
37
+ }
38
+ cachedEngine = null;
39
+ }
40
+ function loadCached() {
41
+ if (cachedEngine === null) {
42
+ cachedEngine = tryLoadNativeEngineUncached();
43
+ }
44
+ return cachedEngine;
45
+ }
46
+ /**
47
+ * Native engine is required. Env overrides that forced the old JS/sql.js path
48
+ * are rejected so production always uses the host core engine.
49
+ */
50
+ export function nativeEngineRequested() {
51
+ const value = process.env.REQLAN_ANALYTICAL_ENGINE?.trim().toLowerCase();
52
+ if (value === 'js' || value === 'typescript' || value === 'sqljs') {
53
+ throw new Error(`REQLAN_ANALYTICAL_ENGINE=${value} is no longer supported; the native engine is required.`);
54
+ }
55
+ return true;
56
+ }
57
+ const HOST_PACKAGE_BY_PLATFORM = {
58
+ 'linux-x64': '@reqlan/analytical-linux-x64-gnu',
59
+ 'linux-arm64': '@reqlan/analytical-linux-arm64-gnu',
60
+ 'darwin-arm64': '@reqlan/analytical-darwin-arm64',
61
+ 'darwin-x64': '@reqlan/analytical-darwin-x64',
62
+ 'win32-x64': '@reqlan/analytical-win32-x64-msvc',
63
+ 'win32-arm64': '@reqlan/analytical-win32-arm64-msvc'
64
+ };
65
+ const HOST_BINARY_BY_PLATFORM = {
66
+ 'linux-x64': 'reqlan_napi.linux-x64-gnu.node',
67
+ 'linux-arm64': 'reqlan_napi.linux-arm64-gnu.node',
68
+ 'darwin-arm64': 'reqlan_napi.darwin-arm64.node',
69
+ 'darwin-x64': 'reqlan_napi.darwin-x64.node',
70
+ 'win32-x64': 'reqlan_napi.win32-x64-msvc.node',
71
+ 'win32-arm64': 'reqlan_napi.win32-arm64-msvc.node'
72
+ };
73
+ function hostPackageName(platform = process.platform, arch = process.arch) {
74
+ return HOST_PACKAGE_BY_PLATFORM[`${platform}-${arch}`];
75
+ }
76
+ const CRATE_BINARY_NAMES = [
77
+ 'reqlan_napi.node',
78
+ 'libreqlan_napi.so',
79
+ 'libreqlan_napi.dylib',
80
+ 'reqlan_napi.dll'
81
+ ];
82
+ /**
83
+ * Walk toward the repo root looking for `crates/Cargo.toml`.
84
+ * Compiled output lives in `packages/analytical/out/native/` (four levels below
85
+ * the repo root); a naive `../../../crates` incorrectly resolves to `packages/crates`.
86
+ */
87
+ function findRepoRoot(start) {
88
+ let dir = start;
89
+ for (let i = 0; i < 10; i++) {
90
+ if (existsSync(join(dir, 'crates', 'Cargo.toml'))) {
91
+ return dir;
92
+ }
93
+ const parent = dirname(dir);
94
+ if (parent === dir) {
95
+ break;
96
+ }
97
+ dir = parent;
98
+ }
99
+ return undefined;
100
+ }
101
+ function crateBuildCandidates(repoRoot) {
102
+ const target = join(repoRoot, 'crates', 'target');
103
+ const configs = ['release', 'debug'];
104
+ return configs.flatMap(config => CRATE_BINARY_NAMES.map(name => join(target, config, name)));
105
+ }
106
+ function hostNativePackageFile(repoRoot) {
107
+ const hostBinary = HOST_BINARY_BY_PLATFORM[`${process.platform}-${process.arch}`];
108
+ if (!hostBinary) {
109
+ return undefined;
110
+ }
111
+ const suffix = hostBinary.replace(/^reqlan_napi\./, '').replace(/\.node$/, '');
112
+ return join(repoRoot, 'packages', 'analytical-native', suffix, hostBinary);
113
+ }
114
+ function candidatePaths() {
115
+ const here = moduleDirectory();
116
+ const hostPkg = hostPackageName();
117
+ const hostBinary = HOST_BINARY_BY_PLATFORM[`${process.platform}-${process.arch}`];
118
+ const repoRoot = findRepoRoot(here);
119
+ const staged = extraSearchDirs.flatMap(dir => [
120
+ join(dir, 'reqlan_napi.node'),
121
+ ...(hostBinary ? [join(dir, hostBinary)] : []),
122
+ join(dir, 'libreqlan_napi.so'),
123
+ join(dir, 'libreqlan_napi.dylib'),
124
+ join(dir, 'reqlan_napi.dll')
125
+ ]);
126
+ const stagedHostPkg = repoRoot ? hostNativePackageFile(repoRoot) : undefined;
127
+ return [
128
+ ...staged,
129
+ ...(stagedHostPkg ? [stagedHostPkg] : []),
130
+ // Prefer the host-matching optionalDependency package first.
131
+ ...(hostPkg ? [hostPkg] : []),
132
+ // Local crate builds (dev / CI cargo output).
133
+ ...(repoRoot ? crateBuildCandidates(repoRoot) : []),
134
+ // Remaining platform packages (wrong-host installs still listed for clear errors).
135
+ '@reqlan/analytical-linux-x64-gnu',
136
+ '@reqlan/analytical-linux-arm64-gnu',
137
+ '@reqlan/analytical-darwin-arm64',
138
+ '@reqlan/analytical-darwin-x64',
139
+ '@reqlan/analytical-win32-x64-msvc',
140
+ '@reqlan/analytical-win32-arm64-msvc'
141
+ ].filter((c, i, arr) => arr.indexOf(c) === i);
142
+ }
143
+ function tryRequire(candidate) {
144
+ // Skip known-missing filesystem paths without attempting require.
145
+ if (!candidate.startsWith('@') && !existsSync(candidate)) {
146
+ return undefined;
147
+ }
148
+ try {
149
+ return nativeRequire()(candidate);
150
+ }
151
+ catch {
152
+ return undefined;
153
+ }
154
+ }
155
+ /** Load the host-matching core engine `.node`, or `undefined` when unavailable. */
156
+ function tryLoadNativeEngineUncached() {
157
+ for (const candidate of candidatePaths()) {
158
+ const loaded = tryRequire(candidate);
159
+ if (loaded?.NativeAnalysisRuntime && loaded?.NativeSqlDb && loaded?.NativeWorkspaceIndex) {
160
+ return loaded;
161
+ }
162
+ }
163
+ return undefined;
164
+ }
165
+ /** Load the host-matching core engine `.node`, or `undefined` when unavailable. */
166
+ export function tryLoadNativeEngine() {
167
+ return loadCached();
168
+ }
169
+ export function loadNativeEngine() {
170
+ const loaded = loadCached();
171
+ if (loaded) {
172
+ return loaded;
173
+ }
174
+ const tried = candidatePaths().join('\n');
175
+ throw new Error(`Native analytical engine is required but the host .node was not found. ` +
176
+ `Build crates/reqlan-napi (cargo build -p reqlan-napi) or install the host ` +
177
+ `optionalDependency package. Tried:\n${tried}`);
178
+ }
179
+ export function nativeEngineAvailable() {
180
+ return loadCached() !== undefined;
181
+ }
182
+ /** Clear the load cache (tests / after registering new search dirs). */
183
+ export function resetNativeEngineCache() {
184
+ cachedEngine = null;
185
+ }
186
+ //# sourceMappingURL=load-native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-native.js","sourceRoot":"","sources":["../../src/native/load-native.ts"],"names":[],"mappings":"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"}