@octocodeai/octocode-tools-core 16.3.0 → 16.6.0

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 (181) hide show
  1. package/README.md +564 -0
  2. package/dist/config.d.ts +7 -0
  3. package/dist/direct.js +39 -41
  4. package/dist/errors/pathUtils.d.ts +1 -1
  5. package/dist/github/directoryFetch.d.ts +2 -1
  6. package/dist/github/githubAPI.d.ts +32 -1
  7. package/dist/github/history.d.ts +3 -0
  8. package/dist/github/prTransformation.d.ts +1 -1
  9. package/dist/github/repoStructureRecursive.d.ts +6 -0
  10. package/dist/index.d.ts +16 -30
  11. package/dist/index.js +44 -46
  12. package/dist/oql/adapters/compile.d.ts +25 -0
  13. package/dist/oql/adapters/github.d.ts +3 -0
  14. package/dist/oql/adapters/local.d.ts +7 -0
  15. package/dist/oql/adapters/materialize.d.ts +11 -0
  16. package/dist/oql/adapters/pagination.d.ts +21 -0
  17. package/dist/oql/adapters/researchTargets.d.ts +50 -0
  18. package/dist/oql/adapters/resultMap.d.ts +20 -0
  19. package/dist/oql/adapters/ruleYaml.d.ts +11 -0
  20. package/dist/oql/adapters/runner.d.ts +14 -0
  21. package/dist/oql/adapters/v2.d.ts +32 -0
  22. package/dist/oql/capabilities.d.ts +31 -0
  23. package/dist/oql/defaults.d.ts +26 -0
  24. package/dist/oql/diagnostics.d.ts +25 -0
  25. package/dist/oql/diffLanes.d.ts +29 -0
  26. package/dist/oql/envelope.d.ts +19 -0
  27. package/dist/oql/features.d.ts +7 -0
  28. package/dist/oql/index.d.ts +26 -0
  29. package/dist/oql/index.js +49 -0
  30. package/dist/oql/normalize.d.ts +5 -0
  31. package/dist/oql/planner.d.ts +7 -0
  32. package/dist/oql/research/analyze.d.ts +134 -0
  33. package/dist/oql/research/packets.d.ts +80 -0
  34. package/dist/oql/run.d.ts +32 -0
  35. package/dist/oql/schema.d.ts +1018 -0
  36. package/dist/oql/schemeText.d.ts +138 -0
  37. package/dist/oql/shorthand.d.ts +177 -0
  38. package/dist/oql/targetParams.d.ts +20 -0
  39. package/dist/oql/transformers/contract.d.ts +19 -0
  40. package/dist/oql/transformers/github/code.d.ts +17 -0
  41. package/dist/oql/transformers/github/common.d.ts +8 -0
  42. package/dist/oql/transformers/language.d.ts +1 -0
  43. package/dist/oql/transformers/registry.d.ts +16 -0
  44. package/dist/oql/transformers/types.d.ts +11 -0
  45. package/dist/oql/types.d.ts +633 -0
  46. package/dist/oql/v2params.d.ts +22 -0
  47. package/dist/providers/providerQueries.d.ts +9 -0
  48. package/dist/providers/providerResults.d.ts +2 -0
  49. package/dist/providers/types.d.ts +1 -1
  50. package/dist/schema.d.ts +13 -0
  51. package/dist/schema.js +8 -0
  52. package/dist/scheme/coreSchemas.d.ts +5 -5
  53. package/dist/scheme/fields.d.ts +6 -6
  54. package/dist/serverConfig.d.ts +1 -2
  55. package/dist/session.d.ts +2 -24
  56. package/dist/shared/config/defaults.d.ts +14 -0
  57. package/dist/shared/config/index.d.ts +9 -0
  58. package/dist/shared/config/index.js +9 -0
  59. package/dist/shared/config/loader.d.ts +7 -0
  60. package/dist/shared/config/resolver.d.ts +2 -0
  61. package/dist/shared/config/resolverCache.d.ts +12 -0
  62. package/dist/shared/config/resolverSections.d.ts +10 -0
  63. package/dist/shared/config/runtimeSurface.d.ts +21 -0
  64. package/dist/shared/config/schemas.d.ts +11 -0
  65. package/dist/shared/config/types.d.ts +92 -0
  66. package/dist/shared/config/validator.d.ts +2 -0
  67. package/dist/shared/credentials/constants.d.ts +2 -0
  68. package/dist/shared/credentials/credentialCache.d.ts +13 -0
  69. package/dist/shared/credentials/credentialEncryption.d.ts +10 -0
  70. package/dist/shared/credentials/credentialUtils.d.ts +4 -0
  71. package/dist/shared/credentials/envTokens.d.ts +9 -0
  72. package/dist/shared/credentials/ghCli.d.ts +1 -0
  73. package/dist/shared/credentials/index.d.ts +3 -0
  74. package/dist/shared/credentials/index.js +8 -0
  75. package/dist/shared/credentials/schemas.d.ts +22 -0
  76. package/dist/shared/credentials/storage.d.ts +30 -0
  77. package/dist/shared/credentials/testing.d.ts +2 -0
  78. package/dist/shared/credentials/testing.js +8 -0
  79. package/dist/shared/credentials/tokenRefresh.d.ts +24 -0
  80. package/dist/shared/credentials/tokenResolution.d.ts +30 -0
  81. package/dist/shared/credentials/types.d.ts +28 -0
  82. package/dist/shared/fs-utils.d.ts +2 -0
  83. package/dist/shared/fs-utils.js +8 -0
  84. package/dist/shared/index.d.ts +6 -0
  85. package/dist/shared/languageSelectors.d.ts +23 -0
  86. package/dist/shared/paths.d.ts +31 -0
  87. package/dist/shared/paths.js +8 -0
  88. package/dist/shared/platform/index.d.ts +1 -0
  89. package/dist/shared/platform/index.js +8 -0
  90. package/dist/shared/platform/platform.d.ts +8 -0
  91. package/dist/shared/session/index.d.ts +5 -0
  92. package/dist/shared/session/index.js +8 -0
  93. package/dist/shared/session/schemas.d.ts +103 -0
  94. package/dist/shared/session/sessionCache.d.ts +9 -0
  95. package/dist/shared/session/sessionDiskIO.d.ts +6 -0
  96. package/dist/shared/session/statsDefaults.d.ts +4 -0
  97. package/dist/shared/session/storage.d.ts +20 -0
  98. package/dist/shared/session/types.d.ts +53 -0
  99. package/dist/tools/directToolCatalog.d.ts +15 -56
  100. package/dist/tools/directToolCatalog.exec.d.ts +11 -0
  101. package/dist/tools/directToolCatalog.meta.d.ts +82 -0
  102. package/dist/tools/github_clone_repo/cache.d.ts +5 -1
  103. package/dist/tools/github_clone_repo/scheme.d.ts +56 -9
  104. package/dist/tools/github_clone_repo/types.d.ts +3 -1
  105. package/dist/tools/github_fetch_content/scheme.d.ts +112 -4
  106. package/dist/tools/github_fetch_content/types.d.ts +39 -0
  107. package/dist/tools/github_search_code/scheme.d.ts +6 -6
  108. package/dist/tools/github_search_pull_requests/contentResponse.d.ts +0 -1
  109. package/dist/tools/github_search_pull_requests/execution.d.ts +1 -11
  110. package/dist/tools/github_search_pull_requests/scheme.d.ts +6 -2
  111. package/dist/tools/github_search_repos/scheme.d.ts +7 -6
  112. package/dist/tools/github_view_repo_structure/execution.d.ts +0 -9
  113. package/dist/tools/github_view_repo_structure/scheme.d.ts +10 -6
  114. package/dist/tools/local_binary_inspect/archiveOps.d.ts +2 -0
  115. package/dist/tools/local_binary_inspect/binaryInspector.d.ts +48 -7
  116. package/dist/tools/local_binary_inspect/binaryOps.d.ts +16 -7
  117. package/dist/tools/local_binary_inspect/scheme.d.ts +10 -7
  118. package/dist/tools/local_fetch_content/scheme.d.ts +2 -2
  119. package/dist/tools/local_find_files/scheme.d.ts +2 -2
  120. package/dist/tools/local_ripgrep/lspBoost.d.ts +54 -0
  121. package/dist/tools/local_ripgrep/rankingProfile.d.ts +113 -0
  122. package/dist/tools/local_ripgrep/ripgrepResultBuilder.d.ts +10 -1
  123. package/dist/tools/local_ripgrep/scheme.d.ts +29 -4
  124. package/dist/tools/local_ripgrep/structuralSearch.d.ts +3 -4
  125. package/dist/tools/local_view_structure/scheme.d.ts +2 -2
  126. package/dist/tools/local_view_structure/structureFilters.d.ts +1 -3
  127. package/dist/tools/local_view_structure/structureResponse.d.ts +1 -0
  128. package/dist/tools/lsp/semantic_content/scheme.d.ts +174 -10
  129. package/dist/tools/lsp/shared/callHierarchyTraversal.d.ts +2 -2
  130. package/dist/tools/lsp/shared/resolveSymbolAnchor.d.ts +2 -2
  131. package/dist/tools/lsp/shared/semanticTypes.d.ts +36 -6
  132. package/dist/tools/oql_search/execution.d.ts +7 -0
  133. package/dist/tools/package_search/execution.d.ts +10 -0
  134. package/dist/tools/package_search/scheme.d.ts +9 -7
  135. package/dist/tools/providerMappers.d.ts +24 -5
  136. package/dist/tools/toolConfig.d.ts +1 -0
  137. package/dist/tools/toolMetadata/proxies.d.ts +0 -6
  138. package/dist/tools/toolNames.d.ts +2 -0
  139. package/dist/tools/utils.d.ts +3 -7
  140. package/dist/types/bulk.d.ts +0 -2
  141. package/dist/types/execution.d.ts +1 -2
  142. package/dist/types/server.d.ts +0 -1
  143. package/dist/types/session.d.ts +0 -19
  144. package/dist/types/toolResults.d.ts +2 -3
  145. package/dist/utils/contextUtils.d.ts +49 -2
  146. package/dist/utils/core/lines.d.ts +16 -0
  147. package/dist/utils/core/types.d.ts +12 -1
  148. package/dist/utils/file/filters.d.ts +2 -11
  149. package/dist/utils/markdownOutline.d.ts +10 -0
  150. package/dist/utils/parsers/diff.d.ts +18 -0
  151. package/dist/utils/response/error.d.ts +38 -4
  152. package/dist/utils/response/groupedFinalizer.d.ts +0 -25
  153. package/package.json +51 -14
  154. package/dist/commands/BaseCommandBuilder.d.ts +0 -14
  155. package/dist/commands/FindCommandBuilder.d.ts +0 -23
  156. package/dist/commands/LsCommandBuilder.d.ts +0 -15
  157. package/dist/commands/RipgrepCommandBuilder.d.ts +0 -27
  158. package/dist/hints/dynamic.d.ts +0 -6
  159. package/dist/hints/index.d.ts +0 -2
  160. package/dist/hints/types.d.ts +0 -1
  161. package/dist/tools/github_clone_repo/hints.d.ts +0 -2
  162. package/dist/tools/github_fetch_content/hints.d.ts +0 -2
  163. package/dist/tools/github_search_code/hints.d.ts +0 -2
  164. package/dist/tools/github_search_pull_requests/hints.d.ts +0 -2
  165. package/dist/tools/github_search_repos/hints.d.ts +0 -2
  166. package/dist/tools/github_view_repo_structure/hints.d.ts +0 -2
  167. package/dist/tools/local_fetch_content/hints.d.ts +0 -2
  168. package/dist/tools/local_find_files/hints.d.ts +0 -2
  169. package/dist/tools/local_ripgrep/grepFallbackExecutor.d.ts +0 -3
  170. package/dist/tools/local_ripgrep/hints.d.ts +0 -2
  171. package/dist/tools/local_ripgrep/ripgrepParser.d.ts +0 -9
  172. package/dist/tools/local_view_structure/hints.d.ts +0 -2
  173. package/dist/tools/local_view_structure/structureParser.d.ts +0 -3
  174. package/dist/tools/local_view_structure/structureWalker.d.ts +0 -24
  175. package/dist/tools/lsp/semantic_content/hints.d.ts +0 -4
  176. package/dist/tools/package_search/hints.d.ts +0 -2
  177. package/dist/types/metadata.d.ts +0 -69
  178. package/dist/utils/exec/commandAvailability.d.ts +0 -19
  179. package/dist/utils/exec/ripgrepBinary.d.ts +0 -3
  180. package/dist/utils/pagination/outputSizeLimit.d.ts +0 -16
  181. package/dist/utils/response/structuredPagination.d.ts +0 -9
@@ -0,0 +1,5 @@
1
+ import { type OqlCanonicalInput, type OqlInputQuery, type OqlQuery, type OqlSearchInput } from './types.js';
2
+ declare function asArray<T>(v: T | T[] | undefined): T[] | undefined;
3
+ export declare function normalizeInput(input: OqlSearchInput): OqlCanonicalInput;
4
+ export declare function normalizeQuery(input: OqlInputQuery): OqlQuery;
5
+ export { asArray };
@@ -0,0 +1,7 @@
1
+ import type { OqlExplainPlan, OqlQuery } from './types.js';
2
+ export interface PlanQueryResult {
3
+ plan: OqlExplainPlan;
4
+ /** True when no node is UNSUPPORTED and no blocking diagnostic exists. */
5
+ executable: boolean;
6
+ }
7
+ export declare function planQuery(query: OqlQuery, rawInput: unknown): PlanQueryResult;
@@ -0,0 +1,134 @@
1
+ export type ResearchIntent = 'general' | 'reachability' | 'dependencies' | 'symbols';
2
+ export type ResearchMode = 'plan' | 'analyze' | 'prove';
3
+ export type ResearchFlowStep = {
4
+ readonly id: string;
5
+ readonly purpose: string;
6
+ readonly tools: readonly string[];
7
+ readonly produces: readonly string[];
8
+ readonly evidence: 'heuristic' | 'proof';
9
+ };
10
+ export type ResearchSymbolVerdict = 'reachable' | 'candidate-unused-export' | 'transitive-dead' | 'unused-export' | 'unknown';
11
+ export type ResearchSymbolRow = {
12
+ readonly symbol: string;
13
+ readonly kind: string;
14
+ readonly file: string;
15
+ readonly line: number;
16
+ readonly evidenceSource: 'ast' | 'regex';
17
+ readonly directRefs: number;
18
+ readonly externalRefs: number;
19
+ readonly retainedBy: readonly string[];
20
+ readonly verdict: ResearchSymbolVerdict;
21
+ };
22
+ export type ResearchGraphFactFile = {
23
+ readonly file: string;
24
+ readonly source: 'native-ast';
25
+ readonly language: string;
26
+ readonly declarations: readonly {
27
+ readonly name: string;
28
+ readonly kind: string;
29
+ readonly line: number;
30
+ readonly exported: boolean;
31
+ readonly parent?: string;
32
+ }[];
33
+ readonly imports: readonly {
34
+ readonly specifier: string;
35
+ readonly line: number;
36
+ readonly importKind: string;
37
+ readonly localName?: string;
38
+ readonly importedName?: string;
39
+ }[];
40
+ readonly exports: readonly {
41
+ readonly name: string;
42
+ readonly line: number;
43
+ readonly exportKind: string;
44
+ readonly localName?: string;
45
+ readonly source?: string;
46
+ }[];
47
+ readonly calls: readonly {
48
+ readonly caller: string;
49
+ readonly callee: string;
50
+ readonly line: number;
51
+ readonly kind: string;
52
+ }[];
53
+ readonly edges: readonly {
54
+ readonly from: string;
55
+ readonly to: string;
56
+ readonly relation: string;
57
+ readonly source: string;
58
+ readonly line: number;
59
+ }[];
60
+ readonly diagnostics: readonly string[];
61
+ };
62
+ export type ResearchFileIssue = {
63
+ readonly kind: 'unusedFile';
64
+ readonly file: string;
65
+ readonly retainedBy: readonly string[];
66
+ readonly verdict: 'unused-file';
67
+ };
68
+ export type ResearchDependencyIssue = {
69
+ readonly kind: 'unlistedDependency' | 'unusedDependency' | 'duplicateDependency';
70
+ readonly packageName: string;
71
+ readonly manifest: string;
72
+ readonly usedBy: readonly string[];
73
+ readonly declaredIn: readonly string[];
74
+ readonly verdict: string;
75
+ };
76
+ export type ResearchManifestSummary = {
77
+ readonly manifest: string;
78
+ readonly name?: string;
79
+ readonly entrypoints: readonly string[];
80
+ readonly dependencyCount: number;
81
+ };
82
+ export type ResearchGraphCapabilitySummary = {
83
+ readonly graphFactExtensions: readonly string[];
84
+ readonly capabilityCount: number;
85
+ readonly factFamilies: readonly string[];
86
+ readonly sourceFilesByLanguage: Readonly<Record<string, number>>;
87
+ readonly graphFilesByLanguage: Readonly<Record<string, number>>;
88
+ readonly missingGraphFacts: readonly {
89
+ readonly extension: string;
90
+ readonly files: number;
91
+ readonly reason: string;
92
+ }[];
93
+ };
94
+ export type ResearchAnalysisResult = {
95
+ readonly kind: 'researchFlow';
96
+ readonly goal: string;
97
+ readonly intent: ResearchIntent;
98
+ readonly facets: readonly string[];
99
+ readonly mode: ResearchMode;
100
+ readonly root: string;
101
+ readonly flow: readonly ResearchFlowStep[];
102
+ readonly summary: {
103
+ readonly manifests: number;
104
+ readonly sourceFiles: number;
105
+ readonly entrypoints: number;
106
+ readonly reachableFiles: number;
107
+ readonly unusedFiles: number;
108
+ readonly unlistedDependencies: number;
109
+ readonly unusedDependencies: number;
110
+ readonly duplicateDependencies: number;
111
+ readonly exportedSymbols: number;
112
+ readonly candidateUnusedExports: number;
113
+ readonly transitiveDeadExports: number;
114
+ readonly nativeGraphFiles: number;
115
+ readonly nativeGraphDeclarations: number;
116
+ readonly nativeGraphCalls: number;
117
+ };
118
+ readonly manifests: readonly ResearchManifestSummary[];
119
+ readonly files: readonly ResearchFileIssue[];
120
+ readonly dependencies: readonly ResearchDependencyIssue[];
121
+ readonly symbols: readonly ResearchSymbolRow[];
122
+ readonly graphFacts: readonly ResearchGraphFactFile[];
123
+ readonly graphCapabilities: ResearchGraphCapabilitySummary;
124
+ readonly caveats: readonly string[];
125
+ };
126
+ export type AnalyzeResearchOptions = {
127
+ readonly root: string;
128
+ readonly goal?: string;
129
+ readonly intent?: string;
130
+ readonly facets?: readonly string[];
131
+ readonly mode?: ResearchMode;
132
+ readonly maxFiles?: number;
133
+ };
134
+ export declare function analyzeResearchFlow(options: AnalyzeResearchOptions): Promise<ResearchAnalysisResult>;
@@ -0,0 +1,80 @@
1
+ import type { OqlContinuation } from '../types.js';
2
+ import type { ResearchAnalysisResult } from './analyze.js';
3
+ export type EvidenceSource = 'ripgrep' | 'regex' | 'ast' | 'symbols' | 'lsp' | 'manifest' | 'graph' | 'exactRead';
4
+ export type EvidenceConfidence = 'exact' | 'heuristic' | 'partial';
5
+ export interface EvidenceLocation {
6
+ uri: string;
7
+ range?: {
8
+ start: {
9
+ line: number;
10
+ character?: number;
11
+ };
12
+ end?: {
13
+ line: number;
14
+ character?: number;
15
+ };
16
+ };
17
+ }
18
+ export interface EvidenceSubject extends EvidenceLocation {
19
+ id: string;
20
+ kind: 'file' | 'symbol' | 'function' | 'class' | 'method' | 'interface' | 'type' | 'dependency' | 'package' | 'entrypoint';
21
+ name?: string;
22
+ symbolKind?: number | string;
23
+ language?: string;
24
+ }
25
+ export type EvidenceClaim = 'defines' | 'declares' | 'exports' | 'imports' | 'references' | 'calls' | 'extends' | 'implements' | 'typeUses' | 'entrypoint' | 'unresolved' | 'textMatch' | 'structuralMatch';
26
+ export type EvidenceFlag = 'same-file' | 'external' | 'type-only' | 'test-only' | 'dynamic' | 'string-only' | 'unreachable' | 'generated' | 'declaration';
27
+ export interface EvidenceFact {
28
+ id: string;
29
+ subject: EvidenceSubject;
30
+ claim: EvidenceClaim;
31
+ source: EvidenceSource;
32
+ confidence: EvidenceConfidence;
33
+ flags?: EvidenceFlag[];
34
+ value?: unknown;
35
+ }
36
+ export type EvidenceRelation = 'contains' | 'defines' | 'exports' | 'imports' | 'references' | 'calls' | 'constructs' | 'extends' | 'implements' | 'typeUses' | 'retains' | 'reachableFrom' | 'declaresDependency' | 'usesDependency';
37
+ export interface EvidenceEdge {
38
+ id: string;
39
+ from: EvidenceSubject;
40
+ to: EvidenceSubject;
41
+ relation: EvidenceRelation;
42
+ source: EvidenceSource;
43
+ confidence: EvidenceConfidence;
44
+ flags?: EvidenceFlag[];
45
+ via?: EvidenceLocation;
46
+ }
47
+ export type PacketVerdict = 'reachable' | 'candidate-dead' | 'transitive-dead' | 'candidate-unused-file' | 'candidate-unused-dependency' | 'unknown';
48
+ export type PacketProofStatus = 'candidate' | 'confirmed-by-lsp' | 'confirmed-by-ast-and-lsp' | 'needs-framework-graph' | 'conflicting-evidence';
49
+ export type MissingProofKind = 'lsp-unavailable' | 'dynamic-import-unresolved' | 'framework-entrypoint-unknown' | 'tsconfig-paths-unresolved' | 'manifest-rule-missing' | 'parser-failed' | 'pagination-open';
50
+ export interface MissingProof {
51
+ kind: MissingProofKind;
52
+ severity: 'low' | 'medium' | 'high';
53
+ location?: EvidenceLocation;
54
+ }
55
+ export interface ResearchEvidencePacket {
56
+ subject: EvidenceSubject;
57
+ verdict: PacketVerdict;
58
+ proofStatus: PacketProofStatus;
59
+ why: EvidenceFact[];
60
+ retainedBy: EvidenceEdge[];
61
+ retains?: EvidenceEdge[];
62
+ missingProof: MissingProof[];
63
+ proof?: Record<string, unknown>;
64
+ risk: {
65
+ deleteRisk: 'low' | 'medium' | 'high' | 'unknown';
66
+ reason: string;
67
+ };
68
+ next: Record<string, OqlContinuation>;
69
+ }
70
+ export interface ResearchGraphSummary {
71
+ subjects: number;
72
+ facts: number;
73
+ edges: number;
74
+ byVerdict: Record<PacketVerdict, number>;
75
+ }
76
+ export interface ResearchPacketBundle {
77
+ packets: ResearchEvidencePacket[];
78
+ graphSummary: ResearchGraphSummary;
79
+ }
80
+ export declare function buildResearchPackets(analysis: ResearchAnalysisResult): ResearchPacketBundle;
@@ -0,0 +1,32 @@
1
+ import type { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';
2
+ import { type OqlContinuation, type OqlQuery, type OqlResultRow, type OqlRunResult, type OqlSearchInput } from './types.js';
3
+ export interface RunOptions {
4
+ authInfo?: AuthInfo;
5
+ /** Plan only; do not execute. Maps to `octocode search --dry-run`. */
6
+ dryRun?: boolean;
7
+ }
8
+ export declare function runOqlSearch(input: OqlSearchInput, options?: RunOptions): Promise<OqlRunResult>;
9
+ /**
10
+ * Emit executable `next.*` continuations (contract Gate 10). Every continuation
11
+ * is a full canonical OQL query runnable as-is.
12
+ *
13
+ * Envelope-level:
14
+ * - next.page — more result pages remain
15
+ * - next.matchPage — per-file matches were capped
16
+ *
17
+ * Per-row continuations are produced by a registry keyed by row kind (and, for
18
+ * record rows, recordType) so adding a new row's continuations is one entry,
19
+ * never another `else if`:
20
+ * - code → next.fetch (read exact content) [+ next.semantic on local]
21
+ * - content → next.charRange (page the body)
22
+ * - artifact → next.structure / next.files rooted at the extracted path
23
+ * - materialized→ next.structure / next.files rooted at the checkpoint path
24
+ * - semantics → next.fetch (read the code at a symbol location)
25
+ * - graph → next.graph (bounded LSP proof for candidate graph pages)
26
+ */
27
+ export interface ContinuationCtx {
28
+ query: OqlQuery;
29
+ /** code rows: rebuild an absolute `from` from a relativized row path. */
30
+ fileFrom?: (rowPath: string) => OqlQuery['from'];
31
+ }
32
+ export declare function buildArtifactContinuations(row: OqlResultRow, ctx: ContinuationCtx): Record<string, OqlContinuation> | undefined;