clinkx 0.2.3 → 0.3.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 (88) hide show
  1. package/README.md +40 -1
  2. package/conf/prompts/json-codereviewer.txt +1 -0
  3. package/conf/prompts/json.txt +1 -0
  4. package/dist/allowed-roots.d.ts +12 -0
  5. package/dist/allowed-roots.js +94 -0
  6. package/dist/allowed-roots.js.map +1 -0
  7. package/dist/context-builder/anchors.d.ts +11 -0
  8. package/dist/context-builder/anchors.js +19 -0
  9. package/dist/context-builder/anchors.js.map +1 -0
  10. package/dist/context-builder/bundle.d.ts +76 -0
  11. package/dist/context-builder/bundle.js +3573 -0
  12. package/dist/context-builder/bundle.js.map +1 -0
  13. package/dist/context-builder/codemap.d.ts +17 -0
  14. package/dist/context-builder/codemap.js +301 -0
  15. package/dist/context-builder/codemap.js.map +1 -0
  16. package/dist/context-builder/config.d.ts +60 -0
  17. package/dist/context-builder/config.js +204 -0
  18. package/dist/context-builder/config.js.map +1 -0
  19. package/dist/context-builder/delegate-packet.d.ts +182 -0
  20. package/dist/context-builder/delegate-packet.js +898 -0
  21. package/dist/context-builder/delegate-packet.js.map +1 -0
  22. package/dist/context-builder/delegate-reconstruction.d.ts +13 -0
  23. package/dist/context-builder/delegate-reconstruction.js +220 -0
  24. package/dist/context-builder/delegate-reconstruction.js.map +1 -0
  25. package/dist/context-builder/delegate-validation.d.ts +18 -0
  26. package/dist/context-builder/delegate-validation.js +367 -0
  27. package/dist/context-builder/delegate-validation.js.map +1 -0
  28. package/dist/context-builder/delegate.d.ts +24 -0
  29. package/dist/context-builder/delegate.js +133 -0
  30. package/dist/context-builder/delegate.js.map +1 -0
  31. package/dist/context-builder/diagnostics.d.ts +27 -0
  32. package/dist/context-builder/diagnostics.js +74 -0
  33. package/dist/context-builder/diagnostics.js.map +1 -0
  34. package/dist/context-builder/discovery.d.ts +118 -0
  35. package/dist/context-builder/discovery.js +1829 -0
  36. package/dist/context-builder/discovery.js.map +1 -0
  37. package/dist/context-builder/globs.d.ts +14 -0
  38. package/dist/context-builder/globs.js +175 -0
  39. package/dist/context-builder/globs.js.map +1 -0
  40. package/dist/context-builder/handler.d.ts +17 -0
  41. package/dist/context-builder/handler.js +3848 -0
  42. package/dist/context-builder/handler.js.map +1 -0
  43. package/dist/context-builder/path-signals.d.ts +7 -0
  44. package/dist/context-builder/path-signals.js +66 -0
  45. package/dist/context-builder/path-signals.js.map +1 -0
  46. package/dist/context-builder/paths.d.ts +30 -0
  47. package/dist/context-builder/paths.js +153 -0
  48. package/dist/context-builder/paths.js.map +1 -0
  49. package/dist/context-builder/progress.d.ts +15 -0
  50. package/dist/context-builder/progress.js +70 -0
  51. package/dist/context-builder/progress.js.map +1 -0
  52. package/dist/context-builder/receipt.d.ts +89 -0
  53. package/dist/context-builder/receipt.js +169 -0
  54. package/dist/context-builder/receipt.js.map +1 -0
  55. package/dist/context-builder/run-id.d.ts +7 -0
  56. package/dist/context-builder/run-id.js +31 -0
  57. package/dist/context-builder/run-id.js.map +1 -0
  58. package/dist/context-builder/schema.d.ts +431 -0
  59. package/dist/context-builder/schema.js +293 -0
  60. package/dist/context-builder/schema.js.map +1 -0
  61. package/dist/context-builder/secrets.d.ts +13 -0
  62. package/dist/context-builder/secrets.js +222 -0
  63. package/dist/context-builder/secrets.js.map +1 -0
  64. package/dist/context-builder/selection.d.ts +52 -0
  65. package/dist/context-builder/selection.js +1649 -0
  66. package/dist/context-builder/selection.js.map +1 -0
  67. package/dist/context-builder/status.d.ts +45 -0
  68. package/dist/context-builder/status.js +105 -0
  69. package/dist/context-builder/status.js.map +1 -0
  70. package/dist/context-builder/storage.d.ts +85 -0
  71. package/dist/context-builder/storage.js +746 -0
  72. package/dist/context-builder/storage.js.map +1 -0
  73. package/dist/context-builder/token-estimate.d.ts +8 -0
  74. package/dist/context-builder/token-estimate.js +17 -0
  75. package/dist/context-builder/token-estimate.js.map +1 -0
  76. package/dist/paths.d.ts +8 -0
  77. package/dist/paths.js +31 -43
  78. package/dist/paths.js.map +1 -1
  79. package/dist/pipeline.d.ts +47 -3
  80. package/dist/pipeline.js +135 -39
  81. package/dist/pipeline.js.map +1 -1
  82. package/dist/server.d.ts +1 -0
  83. package/dist/server.js +40 -10
  84. package/dist/server.js.map +1 -1
  85. package/package.json +2 -1
  86. package/dist/artifacts.d.ts +0 -9
  87. package/dist/artifacts.js +0 -24
  88. package/dist/artifacts.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemap.js","sourceRoot":"","sources":["../../src/context-builder/codemap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { chmod as fsChmod, stat as fsStat } from "node:fs/promises";
2
+ export type ContextBuilderInternalCaps = {
3
+ max_discovery_bytes: number;
4
+ max_discovery_candidates: number;
5
+ max_candidate_bytes: number;
6
+ max_candidate_slices: number;
7
+ max_search_preview_bytes: number;
8
+ max_warnings: number;
9
+ max_omissions: number;
10
+ max_paths_per_omission: number;
11
+ };
12
+ export declare const CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS: Readonly<{
13
+ max_discovery_bytes: number;
14
+ max_discovery_candidates: number;
15
+ max_candidate_bytes: number;
16
+ max_candidate_slices: number;
17
+ max_search_preview_bytes: number;
18
+ max_warnings: number;
19
+ max_omissions: number;
20
+ max_paths_per_omission: number;
21
+ }>;
22
+ export declare const CONTEXT_BUILDER_INTERNAL_CAP_HARD_LIMITS: Readonly<{
23
+ max_discovery_bytes: number;
24
+ max_discovery_candidates: number;
25
+ max_candidate_bytes: number;
26
+ max_candidate_slices: number;
27
+ max_search_preview_bytes: number;
28
+ max_warnings: number;
29
+ max_omissions: number;
30
+ max_paths_per_omission: number;
31
+ }>;
32
+ export declare function contextBuilderInternalCapsForManifest(caps?: Partial<ContextBuilderInternalCaps> | null): ContextBuilderInternalCaps;
33
+ export type ContextBuilderRunsDirResolverOptions = {
34
+ cwd?: string;
35
+ homeDir?: string;
36
+ env?: NodeJS.ProcessEnv;
37
+ mkdir?: (path: string, options: {
38
+ recursive: true;
39
+ mode: number;
40
+ }) => Promise<unknown>;
41
+ realpath?: (path: string) => Promise<string>;
42
+ stat?: typeof fsStat;
43
+ chmod?: typeof fsChmod;
44
+ platform?: NodeJS.Platform;
45
+ getuid?: () => number;
46
+ };
47
+ export declare function defaultContextBuilderRunsDir(options?: Pick<ContextBuilderRunsDirResolverOptions, "env">): string;
48
+ export declare function contextBuilderRunsDirFromEnv(options?: Pick<ContextBuilderRunsDirResolverOptions, "env">): string;
49
+ export declare function resolveContextBuilderRunsDir(runsDir?: string, options?: ContextBuilderRunsDirResolverOptions): Promise<string>;
50
+ export declare function getContextBuilderMaxConcurrent(env?: NodeJS.ProcessEnv): number;
51
+ export declare class ContextBuilderSemaphore {
52
+ private readonly max;
53
+ private current;
54
+ constructor(max?: number);
55
+ acquire(): void;
56
+ release(): void;
57
+ get active(): number;
58
+ get limit(): number;
59
+ }
60
+ export declare function expandCurrentUserTildePath(runsDir: string, home: string): string;
@@ -0,0 +1,204 @@
1
+ import { chmod as fsChmod, mkdir as fsMkdir, realpath as fsRealpath, stat as fsStat, } from "node:fs/promises";
2
+ import { homedir } from "node:os";
3
+ import { dirname, isAbsolute, join, parse, relative, resolve, } from "node:path";
4
+ import { ExecutionError } from "../errors.js";
5
+ export const CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS = Object.freeze({
6
+ max_discovery_bytes: 25_000_000,
7
+ max_discovery_candidates: 5_000,
8
+ max_candidate_bytes: 10_000_000,
9
+ max_candidate_slices: 2_000,
10
+ max_search_preview_bytes: 262_144,
11
+ max_warnings: 50,
12
+ max_omissions: 200,
13
+ max_paths_per_omission: 20,
14
+ });
15
+ export const CONTEXT_BUILDER_INTERNAL_CAP_HARD_LIMITS = Object.freeze({
16
+ max_discovery_bytes: 250_000_000,
17
+ max_discovery_candidates: 50_000,
18
+ max_candidate_bytes: 10_000_000,
19
+ max_candidate_slices: 2_000,
20
+ max_search_preview_bytes: 262_144,
21
+ max_warnings: 50,
22
+ max_omissions: 200,
23
+ max_paths_per_omission: 20,
24
+ });
25
+ const CONTEXT_BUILDER_DEFAULT_MAX_CONCURRENT = 1;
26
+ const CONTEXT_BUILDER_MAX_CONCURRENT_HARD_LIMIT = 32;
27
+ const CONTEXT_BUILDER_RUNS_DIR_ENV = "CLINKX_CONTEXT_BUILDER_RUNS_DIR";
28
+ const CONTEXT_BUILDER_MAX_CONCURRENT_ENV = "CLINKX_CONTEXT_BUILDER_MAX_CONCURRENT";
29
+ export function contextBuilderInternalCapsForManifest(caps = CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS) {
30
+ const source = caps ?? CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS;
31
+ return {
32
+ max_discovery_bytes: normalizeManifestInternalCap(source.max_discovery_bytes, CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS.max_discovery_bytes, CONTEXT_BUILDER_INTERNAL_CAP_HARD_LIMITS.max_discovery_bytes),
33
+ max_discovery_candidates: normalizeManifestInternalCap(source.max_discovery_candidates, CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS.max_discovery_candidates, CONTEXT_BUILDER_INTERNAL_CAP_HARD_LIMITS.max_discovery_candidates),
34
+ max_candidate_bytes: normalizeManifestInternalCap(source.max_candidate_bytes, CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS.max_candidate_bytes, CONTEXT_BUILDER_INTERNAL_CAP_HARD_LIMITS.max_candidate_bytes),
35
+ max_candidate_slices: normalizeManifestInternalCap(source.max_candidate_slices, CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS.max_candidate_slices, CONTEXT_BUILDER_INTERNAL_CAP_HARD_LIMITS.max_candidate_slices),
36
+ max_search_preview_bytes: normalizeManifestInternalCap(source.max_search_preview_bytes, CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS.max_search_preview_bytes, CONTEXT_BUILDER_INTERNAL_CAP_HARD_LIMITS.max_search_preview_bytes),
37
+ max_warnings: normalizeManifestInternalCap(source.max_warnings, CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS.max_warnings, CONTEXT_BUILDER_INTERNAL_CAP_HARD_LIMITS.max_warnings),
38
+ max_omissions: normalizeManifestInternalCap(source.max_omissions, CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS.max_omissions, CONTEXT_BUILDER_INTERNAL_CAP_HARD_LIMITS.max_omissions),
39
+ max_paths_per_omission: normalizeManifestInternalCap(source.max_paths_per_omission, CONTEXT_BUILDER_INTERNAL_CAP_DEFAULTS.max_paths_per_omission, CONTEXT_BUILDER_INTERNAL_CAP_HARD_LIMITS.max_paths_per_omission),
40
+ };
41
+ }
42
+ export function defaultContextBuilderRunsDir(options = {}) {
43
+ const env = options.env ?? process.env;
44
+ const xdgStateHome = env["XDG_STATE_HOME"];
45
+ const stateHome = xdgStateHome != null && xdgStateHome.trim() !== ""
46
+ ? xdgStateHome
47
+ : "~/.local/state";
48
+ return join(stateHome, "clinkx", "context-builder", "runs");
49
+ }
50
+ export function contextBuilderRunsDirFromEnv(options = {}) {
51
+ const env = options.env ?? process.env;
52
+ const configured = env[CONTEXT_BUILDER_RUNS_DIR_ENV];
53
+ if (configured != null && configured.trim() !== "") {
54
+ return configured;
55
+ }
56
+ return defaultContextBuilderRunsDir({ env });
57
+ }
58
+ export async function resolveContextBuilderRunsDir(runsDir, options = {}) {
59
+ const requestedRunsDir = runsDir === undefined
60
+ ? options.env === undefined
61
+ ? contextBuilderRunsDirFromEnv()
62
+ : contextBuilderRunsDirFromEnv({ env: options.env })
63
+ : runsDir;
64
+ if (requestedRunsDir.trim() === "") {
65
+ throw new Error("context_builder runs_dir must not be empty");
66
+ }
67
+ const cwd = resolve(options.cwd ?? process.cwd());
68
+ const home = resolve(options.homeDir ?? homedir());
69
+ const lexicalRunsDir = resolve(cwd, expandCurrentUserTildePath(requestedRunsDir, home));
70
+ const mkdir = options.mkdir ?? fsMkdir;
71
+ const realpath = options.realpath ?? fsRealpath;
72
+ await mkdir(lexicalRunsDir, { recursive: true, mode: 0o700 });
73
+ const [resolvedRunsDir, resolvedCwd, resolvedHome] = await Promise.all([
74
+ realpath(lexicalRunsDir),
75
+ realpath(cwd).catch(() => cwd),
76
+ realpath(home).catch(() => home),
77
+ ]);
78
+ rejectBroadContextBuilderRunsDir(resolvedRunsDir, {
79
+ cwd: resolvedCwd,
80
+ home: resolvedHome,
81
+ platform: options.platform ?? process.platform,
82
+ });
83
+ await enforcePrivateRunsDirLeaf(resolvedRunsDir, options);
84
+ return resolvedRunsDir;
85
+ }
86
+ export function getContextBuilderMaxConcurrent(env = process.env) {
87
+ return parsePositiveInteger(env[CONTEXT_BUILDER_MAX_CONCURRENT_ENV], CONTEXT_BUILDER_DEFAULT_MAX_CONCURRENT);
88
+ }
89
+ export class ContextBuilderSemaphore {
90
+ max;
91
+ current = 0;
92
+ constructor(max = getContextBuilderMaxConcurrent()) {
93
+ if (!Number.isSafeInteger(max) ||
94
+ max <= 0 ||
95
+ max > CONTEXT_BUILDER_MAX_CONCURRENT_HARD_LIMIT) {
96
+ throw new Error(`context_builder max_concurrent must be a positive integer at most ${CONTEXT_BUILDER_MAX_CONCURRENT_HARD_LIMIT}`);
97
+ }
98
+ this.max = max;
99
+ }
100
+ acquire() {
101
+ if (this.current >= this.max) {
102
+ throw new ExecutionError(`context_builder concurrency limit reached (${this.current}/${this.max}). Try again later.`);
103
+ }
104
+ this.current++;
105
+ }
106
+ release() {
107
+ if (this.current > 0) {
108
+ this.current--;
109
+ }
110
+ }
111
+ get active() {
112
+ return this.current;
113
+ }
114
+ get limit() {
115
+ return this.max;
116
+ }
117
+ }
118
+ export function expandCurrentUserTildePath(runsDir, home) {
119
+ if (runsDir === "~") {
120
+ return home;
121
+ }
122
+ if (runsDir.startsWith("~/") || runsDir.startsWith("~\\")) {
123
+ const separator = runsDir.startsWith("~/") ? "/" : "\\";
124
+ if (home.endsWith(separator)) {
125
+ return `${home}${runsDir.slice(2)}`;
126
+ }
127
+ return `${home}${runsDir.slice(1)}`;
128
+ }
129
+ return runsDir;
130
+ }
131
+ function rejectBroadContextBuilderRunsDir(runsDir, input) {
132
+ if (runsDir === parse(runsDir).root) {
133
+ throw new Error("context_builder runs_dir must not be filesystem root");
134
+ }
135
+ if (runsDir === input.home) {
136
+ throw new Error("context_builder runs_dir must not be the home directory");
137
+ }
138
+ if (isVolumeRoot(runsDir, input.platform)) {
139
+ throw new Error("context_builder runs_dir must not be a volume root");
140
+ }
141
+ if (isSamePathOrAncestor(runsDir, input.cwd)) {
142
+ throw new Error("context_builder runs_dir must not be the workspace root or an ancestor");
143
+ }
144
+ }
145
+ function isSamePathOrAncestor(candidate, child) {
146
+ const relation = relative(candidate, child);
147
+ return relation === "" || (!relation.startsWith("..") && !isAbsolute(relation));
148
+ }
149
+ function isVolumeRoot(runsDir, platform) {
150
+ if (platform !== "darwin") {
151
+ return false;
152
+ }
153
+ return dirname(runsDir) === "/Volumes";
154
+ }
155
+ async function enforcePrivateRunsDirLeaf(runsDir, options) {
156
+ const platform = options.platform ?? process.platform;
157
+ if (platform === "win32") {
158
+ return;
159
+ }
160
+ const getuid = options.getuid ?? process.getuid?.bind(process);
161
+ if (getuid == null) {
162
+ return;
163
+ }
164
+ const stat = options.stat ?? fsStat;
165
+ const chmod = options.chmod ?? fsChmod;
166
+ const uid = getuid();
167
+ const before = await stat(runsDir);
168
+ if (before.uid !== uid) {
169
+ throw new Error("context_builder runs_dir must be owned by the current user");
170
+ }
171
+ if ((before.mode & 0o777) !== 0o700) {
172
+ await chmod(runsDir, 0o700);
173
+ const after = await stat(runsDir);
174
+ if ((after.mode & 0o777) !== 0o700) {
175
+ throw new Error("context_builder runs_dir must be chmod 0700");
176
+ }
177
+ }
178
+ }
179
+ function parsePositiveInteger(value, fallback) {
180
+ if (value == null || value.trim() === "") {
181
+ return fallback;
182
+ }
183
+ const trimmed = value.trim();
184
+ if (!/^[1-9][0-9]*$/.test(trimmed)) {
185
+ throw new Error(`${CONTEXT_BUILDER_MAX_CONCURRENT_ENV} must be a positive decimal integer`);
186
+ }
187
+ const parsed = Number(trimmed);
188
+ if (!Number.isSafeInteger(parsed) ||
189
+ parsed > CONTEXT_BUILDER_MAX_CONCURRENT_HARD_LIMIT) {
190
+ throw new Error(`${CONTEXT_BUILDER_MAX_CONCURRENT_ENV} must be a positive decimal integer at most ${CONTEXT_BUILDER_MAX_CONCURRENT_HARD_LIMIT}`);
191
+ }
192
+ return parsed;
193
+ }
194
+ function normalizeManifestInternalCap(value, fallback, hardLimit) {
195
+ const defaultValue = Math.max(1, Math.min(fallback, hardLimit));
196
+ if (value == null ||
197
+ !Number.isFinite(value) ||
198
+ !Number.isInteger(value) ||
199
+ value <= 0) {
200
+ return defaultValue;
201
+ }
202
+ return Math.max(1, Math.min(value, hardLimit));
203
+ }
204
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/context-builder/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ import { type ContextBuilderOmission } from "./diagnostics.js";
2
+ import { type ContextBuilderContentCandidate, type ContextBuilderDiscoveryMetrics, type ContextBuilderSearchRecord, type ContextBuilderSliceRecord, type ContextBuilderTreeFile } from "./discovery.js";
3
+ import { type ContextBuilderResolvedFocusPath } from "./paths.js";
4
+ import { type ContextBuilderPublicBudget } from "./schema.js";
5
+ import { type ContextBuilderSelectionMetrics, type ContextBuilderSelectionResult } from "./selection.js";
6
+ export type ContextBuilderDelegatePacketPurpose = "curator" | "finalizer";
7
+ export type ContextBuilderDelegatePacketCaps = {
8
+ max_candidates: number;
9
+ max_search_records: number;
10
+ max_slice_records: number;
11
+ max_omissions: number;
12
+ max_paths_per_omission: number;
13
+ max_total_evidence_bytes: number;
14
+ max_preview_bytes: number;
15
+ max_slice_excerpt_bytes: number;
16
+ max_task_chars: number;
17
+ max_packet_estimated_tokens: number;
18
+ };
19
+ export declare const CONTEXT_BUILDER_DELEGATE_PACKET_CAP_DEFAULTS: Readonly<{
20
+ max_candidates: number;
21
+ max_search_records: number;
22
+ max_slice_records: number;
23
+ max_omissions: number;
24
+ max_paths_per_omission: number;
25
+ max_total_evidence_bytes: number;
26
+ max_preview_bytes: number;
27
+ max_slice_excerpt_bytes: number;
28
+ max_task_chars: number;
29
+ max_packet_estimated_tokens: number;
30
+ }>;
31
+ export declare const CONTEXT_BUILDER_DELEGATE_PACKET_CAP_PROFILE_DEFAULTS: Readonly<{
32
+ handoff_small: {
33
+ max_candidates: number;
34
+ max_search_records: number;
35
+ max_slice_records: number;
36
+ max_total_evidence_bytes: number;
37
+ max_preview_bytes: number;
38
+ max_slice_excerpt_bytes: number;
39
+ max_packet_estimated_tokens: number;
40
+ };
41
+ implementation_medium: {
42
+ max_candidates: number;
43
+ max_search_records: number;
44
+ max_slice_records: number;
45
+ max_total_evidence_bytes: number;
46
+ max_preview_bytes: number;
47
+ max_slice_excerpt_bytes: number;
48
+ max_packet_estimated_tokens: number;
49
+ };
50
+ review_deep: {
51
+ max_candidates: number;
52
+ max_search_records: number;
53
+ max_slice_records: number;
54
+ max_total_evidence_bytes: number;
55
+ max_preview_bytes: number;
56
+ max_slice_excerpt_bytes: number;
57
+ max_packet_estimated_tokens: number;
58
+ };
59
+ }>;
60
+ export type ContextBuilderDelegatePacketCandidate = {
61
+ id: string;
62
+ root_index: number;
63
+ path: string;
64
+ line_count: number;
65
+ size_bytes: number;
66
+ estimated_tokens: number;
67
+ discovery_reason: "focus_path" | "search_hit" | "eligible_candidate";
68
+ focus_requested?: boolean;
69
+ required_focus_ranges?: ContextBuilderDelegatePacketSelectedRange[];
70
+ deterministic_selected: boolean;
71
+ deterministic_coverage?: "none" | "partial" | "complete";
72
+ deterministic_ranges?: ContextBuilderDelegatePacketSelectedRange[];
73
+ uncovered_packet_ranges?: ContextBuilderDelegatePacketSelectedRange[];
74
+ ranges: ContextBuilderDelegatePacketRange[];
75
+ search_hits: ContextBuilderDelegatePacketSearchHit[];
76
+ };
77
+ export type ContextBuilderDelegatePacketRange = {
78
+ id: string;
79
+ start_line: number;
80
+ end_line: number;
81
+ source: "focus" | "search";
82
+ estimated_tokens: number;
83
+ excerpt: string;
84
+ excerpt_truncated: boolean;
85
+ };
86
+ export type ContextBuilderDelegatePacketSearchHit = {
87
+ line: number;
88
+ column: number;
89
+ search_term_index: number;
90
+ preview: string;
91
+ preview_truncated: boolean;
92
+ };
93
+ export type ContextBuilderDelegatePacketSelectedRange = {
94
+ id: string;
95
+ start_line: number;
96
+ end_line: number;
97
+ };
98
+ export type ContextBuilderDelegatePacketSelection = {
99
+ candidate_id: string;
100
+ root_index: number;
101
+ path: string;
102
+ ranges: ContextBuilderDelegatePacketSelectedRange[];
103
+ source: "focus" | "search";
104
+ bytes: number;
105
+ estimated_tokens: number;
106
+ };
107
+ export type ContextBuilderCuratorProposalRange = {
108
+ start_line: number;
109
+ end_line: number;
110
+ reason: string;
111
+ };
112
+ export type ContextBuilderCuratorProposalSelection = {
113
+ candidate_id: string;
114
+ ranges: ContextBuilderCuratorProposalRange[];
115
+ reason: string;
116
+ };
117
+ export type ContextBuilderCuratorProposal = {
118
+ selected: ContextBuilderCuratorProposalSelection[];
119
+ warnings: string[];
120
+ open_questions: string[];
121
+ };
122
+ export type ContextBuilderDelegatePacketMetrics = {
123
+ discovery: ContextBuilderDiscoveryMetrics;
124
+ selection: ContextBuilderSelectionMetrics;
125
+ candidates_included: number;
126
+ candidates_omitted_by_packet_cap: number;
127
+ search_records_included: number;
128
+ search_records_omitted_by_packet_cap: number;
129
+ slice_records_included: number;
130
+ slice_records_omitted_by_packet_cap: number;
131
+ evidence_bytes: number;
132
+ evidence_byte_cap_hit: boolean;
133
+ packet_estimated_tokens: number;
134
+ packet_token_cap_hit: boolean;
135
+ };
136
+ export type ContextBuilderDelegatePacket = {
137
+ version: "context-builder.delegate-packet.v1";
138
+ purpose: ContextBuilderDelegatePacketPurpose;
139
+ task: string;
140
+ rules: {
141
+ local_candidate_universe_only: true;
142
+ provider_must_not_discover_paths: true;
143
+ source_authority: "server";
144
+ absolute_paths_included: false;
145
+ raw_full_content_included: false;
146
+ };
147
+ budget: ContextBuilderPublicBudget;
148
+ candidates: ContextBuilderDelegatePacketCandidate[];
149
+ deterministic_selection: {
150
+ metrics: ContextBuilderSelectionMetrics;
151
+ selected: ContextBuilderDelegatePacketSelection[];
152
+ };
153
+ omissions: ContextBuilderOmission[];
154
+ metrics: ContextBuilderDelegatePacketMetrics;
155
+ curator_proposal?: ContextBuilderCuratorProposal;
156
+ local_selection_summary?: {
157
+ selected: ContextBuilderDelegatePacketSelection[];
158
+ };
159
+ };
160
+ export type ContextBuilderDelegatePacketDiscoveryInput = {
161
+ tree: readonly ContextBuilderTreeFile[];
162
+ content_candidates: readonly ContextBuilderContentCandidate[];
163
+ search: readonly ContextBuilderSearchRecord[];
164
+ slices: readonly ContextBuilderSliceRecord[];
165
+ omissions: readonly ContextBuilderOmission[];
166
+ metrics: ContextBuilderDiscoveryMetrics;
167
+ };
168
+ export type ContextBuilderDelegatePacketInput = {
169
+ task: string;
170
+ discovery: ContextBuilderDelegatePacketDiscoveryInput;
171
+ selection: ContextBuilderSelectionResult;
172
+ budget: ContextBuilderPublicBudget;
173
+ focus_paths?: readonly ContextBuilderResolvedFocusPath[];
174
+ caps?: Partial<ContextBuilderDelegatePacketCaps>;
175
+ };
176
+ export type ContextBuilderFinalizerPacketInput = ContextBuilderDelegatePacketInput & {
177
+ curator_proposal: ContextBuilderCuratorProposal;
178
+ };
179
+ export declare function buildContextBuilderCuratorPacket(input: ContextBuilderDelegatePacketInput): ContextBuilderDelegatePacket;
180
+ export declare function buildContextBuilderFinalizerPacket(input: ContextBuilderFinalizerPacketInput): ContextBuilderDelegatePacket;
181
+ export declare function contextBuilderCandidateId(rootIndex: number, path: string): string;
182
+ export declare function contextBuilderRangeId(candidateId: string, startLine: number, endLine: number): string;