@cleocode/core 2026.6.15 → 2026.6.18

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 (55) hide show
  1. package/dist/docs/export-document.js +41 -0
  2. package/dist/docs/export-document.js.map +1 -1
  3. package/dist/gc/janitor.d.ts +149 -0
  4. package/dist/gc/janitor.d.ts.map +1 -0
  5. package/dist/gc/janitor.js +760 -0
  6. package/dist/gc/janitor.js.map +1 -0
  7. package/dist/internal.d.ts +1 -0
  8. package/dist/internal.d.ts.map +1 -1
  9. package/dist/internal.js +3 -0
  10. package/dist/internal.js.map +1 -1
  11. package/dist/llm/cli-ops.d.ts +15 -4
  12. package/dist/llm/cli-ops.d.ts.map +1 -1
  13. package/dist/llm/cli-ops.js +78 -21
  14. package/dist/llm/cli-ops.js.map +1 -1
  15. package/dist/llm/credential-pool.d.ts +62 -0
  16. package/dist/llm/credential-pool.d.ts.map +1 -1
  17. package/dist/llm/credential-pool.js +161 -0
  18. package/dist/llm/credential-pool.js.map +1 -1
  19. package/dist/llm/cross-provider-selector.d.ts +8 -3
  20. package/dist/llm/cross-provider-selector.d.ts.map +1 -1
  21. package/dist/llm/cross-provider-selector.js +71 -8
  22. package/dist/llm/cross-provider-selector.js.map +1 -1
  23. package/dist/llm/plugin-facade.js +122 -1
  24. package/dist/llm/plugin-facade.js.map +1 -1
  25. package/dist/selfimprove/fix-gen-context.d.ts +172 -0
  26. package/dist/selfimprove/fix-gen-context.d.ts.map +1 -0
  27. package/dist/selfimprove/fix-gen-context.js +218 -0
  28. package/dist/selfimprove/fix-gen-context.js.map +1 -0
  29. package/dist/selfimprove/fix-gen.d.ts +60 -4
  30. package/dist/selfimprove/fix-gen.d.ts.map +1 -1
  31. package/dist/selfimprove/fix-gen.js +76631 -256
  32. package/dist/selfimprove/fix-gen.js.map +6 -1
  33. package/dist/selfimprove/op-source-map.d.ts +92 -0
  34. package/dist/selfimprove/op-source-map.d.ts.map +1 -0
  35. package/dist/selfimprove/op-source-map.js +187 -0
  36. package/dist/selfimprove/op-source-map.js.map +1 -0
  37. package/dist/selfimprove/probe-helper.d.ts +61 -0
  38. package/dist/selfimprove/probe-helper.d.ts.map +1 -0
  39. package/dist/selfimprove/probe-helper.js +64 -0
  40. package/dist/selfimprove/probe-helper.js.map +1 -0
  41. package/dist/selfimprove/scenarios/seeded-code-regression/golden.json +18 -0
  42. package/dist/selfimprove/scenarios/seeded-code-regression/scenario.json +12 -0
  43. package/dist/setup/index.d.ts +1 -0
  44. package/dist/setup/index.d.ts.map +1 -1
  45. package/dist/setup/index.js +1 -0
  46. package/dist/setup/index.js.map +1 -1
  47. package/dist/setup/sections/models-roles.d.ts +32 -1
  48. package/dist/setup/sections/models-roles.d.ts.map +1 -1
  49. package/dist/setup/sections/models-roles.js +118 -19
  50. package/dist/setup/sections/models-roles.js.map +1 -1
  51. package/dist/setup/whoami-summary.d.ts +34 -0
  52. package/dist/setup/whoami-summary.d.ts.map +1 -0
  53. package/dist/setup/whoami-summary.js +106 -0
  54. package/dist/setup/whoami-summary.js.map +1 -0
  55. package/package.json +12 -12
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Static op-coordinate → source-file map for the self-improvement fix-gen stage.
3
+ *
4
+ * Given a regression's `opCoord` (the `domain.operation` string produced by
5
+ * {@link "../selfimprove/envelope-diff.js".DiffEntry.opCoord}, e.g. `tasks.show`),
6
+ * this module resolves the **repo-relative** paths of the CLI handler and the
7
+ * core module(s) most likely to contain the regression. The file list is fed into
8
+ * the fix-gen prompt builder ({@link "./fix-gen-context.js"}) so the LLM receives
9
+ * bounded, targeted code context rather than zero context or an unbounded repo
10
+ * dump.
11
+ *
12
+ * ## Design: static map, not a registry query
13
+ *
14
+ * The ops catalog (the `OPERATIONS` array in `@cleocode/contracts`) encodes
15
+ * `{ gateway, domain, operation }` but does NOT track source-file provenance.
16
+ * Runtime nexus queries (`cleo nexus query`) would work but introduce an
17
+ * in-process dependency on the nexus subsystem (an expensive side-effectful
18
+ * import in the fix-gen hot path). A **static map keyed by `domain.operation`**
19
+ * is the cost-free alternative: it is derived once (by reading the repo's known
20
+ * handler layout), is small enough to inline, and carries zero import-time cost.
21
+ *
22
+ * The map covers the common `tasks` domain operations exercised by the canonical
23
+ * scenarios. The entry for an unregistered `opCoord` returns an empty file list
24
+ * (`{ handlerFiles: [], coreFiles: [] }`) — the fix-gen stage degrades gracefully
25
+ * to "no context" (the model still receives the regression diff and may emit
26
+ * `NO_PATCH`, which is the honest outcome when context is absent).
27
+ *
28
+ * ## File path convention
29
+ *
30
+ * Every path is **repo-relative** (no leading `/`). The file content loader
31
+ * ({@link "./fix-gen-context.js"}) resolves them against `repoContext.projectRoot`
32
+ * before reading.
33
+ *
34
+ * Import-time side-effect-free: no IO, no dynamic imports.
35
+ *
36
+ * @module @cleocode/core/selfimprove/op-source-map
37
+ * @epic T11889
38
+ * @task T11988
39
+ */
40
+ /**
41
+ * Resolved source files for one op-coordinate.
42
+ *
43
+ * - `handlerFiles`: the CLI dispatch handler(s) in `packages/cleo/src/dispatch/domains/`
44
+ * - `coreFiles`: the core-logic module(s) in `packages/core/src/` (the file most
45
+ * likely to contain the regression for this operation)
46
+ *
47
+ * Both lists are repo-relative. Either may be empty when not applicable.
48
+ */
49
+ export interface OpSourceEntry {
50
+ /** CLI dispatch handler files (repo-relative). */
51
+ readonly handlerFiles: readonly string[];
52
+ /** Core module files that implement the operation logic (repo-relative). */
53
+ readonly coreFiles: readonly string[];
54
+ }
55
+ /**
56
+ * Resolve the handler + core source files for a given op-coordinate.
57
+ *
58
+ * Returns the {@link OpSourceEntry} from the static map when the `opCoord` is
59
+ * registered, or {@link EMPTY_ENTRY} when it is not. NEVER throws. The returned
60
+ * lists contain repo-relative paths; callers resolve them against the project root
61
+ * before reading.
62
+ *
63
+ * @param opCoord - The op coordinate to resolve (e.g. `'tasks.show'`).
64
+ * @returns The resolved {@link OpSourceEntry} (may be empty for unknown ops).
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * const { handlerFiles, coreFiles } = resolveOpSourceFiles('tasks.show');
69
+ * // handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts']
70
+ * // coreFiles: ['packages/core/src/tasks/show.ts']
71
+ * ```
72
+ */
73
+ export declare function resolveOpSourceFiles(opCoord: string): OpSourceEntry;
74
+ /**
75
+ * Collect the unique set of source files for a list of op-coordinates.
76
+ *
77
+ * Deduplicates across entries so a scenario with two ops from the same handler
78
+ * does not include the handler twice. Returns the merged `{ handlerFiles, coreFiles }`
79
+ * with order preserved (first-seen wins for dedup).
80
+ *
81
+ * @param opCoords - The op-coordinate strings to collect files for.
82
+ * @returns The merged, deduplicated {@link OpSourceEntry}.
83
+ *
84
+ * @example
85
+ * ```ts
86
+ * const entry = collectOpSourceFiles(['tasks.find', 'tasks.show']);
87
+ * // entry.handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts']
88
+ * // entry.coreFiles: ['packages/core/src/tasks/find.ts', 'packages/core/src/tasks/show.ts']
89
+ * ```
90
+ */
91
+ export declare function collectOpSourceFiles(opCoords: readonly string[]): OpSourceEntry;
92
+ //# sourceMappingURL=op-source-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op-source-map.d.ts","sourceRoot":"","sources":["../../src/selfimprove/op-source-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AA2FD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAEnE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,aAAa,CAuB/E"}
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Static op-coordinate → source-file map for the self-improvement fix-gen stage.
3
+ *
4
+ * Given a regression's `opCoord` (the `domain.operation` string produced by
5
+ * {@link "../selfimprove/envelope-diff.js".DiffEntry.opCoord}, e.g. `tasks.show`),
6
+ * this module resolves the **repo-relative** paths of the CLI handler and the
7
+ * core module(s) most likely to contain the regression. The file list is fed into
8
+ * the fix-gen prompt builder ({@link "./fix-gen-context.js"}) so the LLM receives
9
+ * bounded, targeted code context rather than zero context or an unbounded repo
10
+ * dump.
11
+ *
12
+ * ## Design: static map, not a registry query
13
+ *
14
+ * The ops catalog (the `OPERATIONS` array in `@cleocode/contracts`) encodes
15
+ * `{ gateway, domain, operation }` but does NOT track source-file provenance.
16
+ * Runtime nexus queries (`cleo nexus query`) would work but introduce an
17
+ * in-process dependency on the nexus subsystem (an expensive side-effectful
18
+ * import in the fix-gen hot path). A **static map keyed by `domain.operation`**
19
+ * is the cost-free alternative: it is derived once (by reading the repo's known
20
+ * handler layout), is small enough to inline, and carries zero import-time cost.
21
+ *
22
+ * The map covers the common `tasks` domain operations exercised by the canonical
23
+ * scenarios. The entry for an unregistered `opCoord` returns an empty file list
24
+ * (`{ handlerFiles: [], coreFiles: [] }`) — the fix-gen stage degrades gracefully
25
+ * to "no context" (the model still receives the regression diff and may emit
26
+ * `NO_PATCH`, which is the honest outcome when context is absent).
27
+ *
28
+ * ## File path convention
29
+ *
30
+ * Every path is **repo-relative** (no leading `/`). The file content loader
31
+ * ({@link "./fix-gen-context.js"}) resolves them against `repoContext.projectRoot`
32
+ * before reading.
33
+ *
34
+ * Import-time side-effect-free: no IO, no dynamic imports.
35
+ *
36
+ * @module @cleocode/core/selfimprove/op-source-map
37
+ * @epic T11889
38
+ * @task T11988
39
+ */
40
+ /**
41
+ * The static `opCoord → source files` map.
42
+ *
43
+ * Keys are `domain.operation` strings (lowercase, e.g. `'tasks.show'`). Values
44
+ * are {@link OpSourceEntry} objects with repo-relative paths.
45
+ *
46
+ * Coverage: the `tasks` domain operations exercised by the built-in scenarios
47
+ * (T11988: `seeded-code-regression`) plus the pre-existing `dhq-replay-find`
48
+ * scenario (`tasks.find`, `tasks.show`).
49
+ *
50
+ * @internal
51
+ */
52
+ const OP_SOURCE_MAP = {
53
+ 'tasks.show': {
54
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
55
+ coreFiles: ['packages/core/src/tasks/show.ts'],
56
+ },
57
+ 'tasks.find': {
58
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
59
+ coreFiles: ['packages/core/src/tasks/find.ts'],
60
+ },
61
+ 'tasks.list': {
62
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
63
+ coreFiles: ['packages/core/src/tasks/list.ts'],
64
+ },
65
+ 'tasks.add': {
66
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
67
+ coreFiles: ['packages/core/src/tasks/add.ts'],
68
+ },
69
+ 'tasks.update': {
70
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
71
+ coreFiles: ['packages/core/src/tasks/update.ts'],
72
+ },
73
+ 'tasks.complete': {
74
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
75
+ coreFiles: ['packages/core/src/tasks/complete.ts'],
76
+ },
77
+ 'tasks.delete': {
78
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
79
+ coreFiles: ['packages/core/src/tasks/delete.ts'],
80
+ },
81
+ 'tasks.next': {
82
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
83
+ coreFiles: ['packages/core/src/tasks/next.ts'],
84
+ },
85
+ 'tasks.current': {
86
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
87
+ coreFiles: ['packages/core/src/tasks/current.ts'],
88
+ },
89
+ 'tasks.tree': {
90
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
91
+ coreFiles: ['packages/core/src/tasks/generic-tree.ts'],
92
+ },
93
+ 'tasks.analyze': {
94
+ handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts'],
95
+ coreFiles: ['packages/core/src/tasks/analyze.ts'],
96
+ },
97
+ 'memory.find': {
98
+ handlerFiles: ['packages/cleo/src/dispatch/domains/memory.ts'],
99
+ coreFiles: [],
100
+ },
101
+ 'memory.fetch': {
102
+ handlerFiles: ['packages/cleo/src/dispatch/domains/memory.ts'],
103
+ coreFiles: [],
104
+ },
105
+ 'selfimprove.run': {
106
+ handlerFiles: ['packages/cleo/src/dispatch/domains/selfimprove.ts'],
107
+ coreFiles: ['packages/core/src/selfimprove/run-loop.ts'],
108
+ },
109
+ /**
110
+ * `selfimprove.probe` — the seeded-code-regression scenario target (T11988).
111
+ * The probe-helper is intentionally broken (`probeVersion()` returns `2`
112
+ * instead of `1`); the fix is a single-line change in this file.
113
+ */
114
+ 'selfimprove.probe': {
115
+ handlerFiles: ['packages/cleo/src/dispatch/domains/selfimprove.ts'],
116
+ coreFiles: ['packages/core/src/selfimprove/probe-helper.ts'],
117
+ },
118
+ };
119
+ /**
120
+ * An empty source entry returned for unknown or unmapped op-coordinates.
121
+ *
122
+ * The fix-gen stage treats an empty file list as "no context available" and
123
+ * degrades the prompt to the regression-only view. The model may still produce
124
+ * a patch (or `NO_PATCH`) without file context.
125
+ */
126
+ const EMPTY_ENTRY = { handlerFiles: [], coreFiles: [] };
127
+ /**
128
+ * Resolve the handler + core source files for a given op-coordinate.
129
+ *
130
+ * Returns the {@link OpSourceEntry} from the static map when the `opCoord` is
131
+ * registered, or {@link EMPTY_ENTRY} when it is not. NEVER throws. The returned
132
+ * lists contain repo-relative paths; callers resolve them against the project root
133
+ * before reading.
134
+ *
135
+ * @param opCoord - The op coordinate to resolve (e.g. `'tasks.show'`).
136
+ * @returns The resolved {@link OpSourceEntry} (may be empty for unknown ops).
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * const { handlerFiles, coreFiles } = resolveOpSourceFiles('tasks.show');
141
+ * // handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts']
142
+ * // coreFiles: ['packages/core/src/tasks/show.ts']
143
+ * ```
144
+ */
145
+ export function resolveOpSourceFiles(opCoord) {
146
+ return OP_SOURCE_MAP[opCoord] ?? EMPTY_ENTRY;
147
+ }
148
+ /**
149
+ * Collect the unique set of source files for a list of op-coordinates.
150
+ *
151
+ * Deduplicates across entries so a scenario with two ops from the same handler
152
+ * does not include the handler twice. Returns the merged `{ handlerFiles, coreFiles }`
153
+ * with order preserved (first-seen wins for dedup).
154
+ *
155
+ * @param opCoords - The op-coordinate strings to collect files for.
156
+ * @returns The merged, deduplicated {@link OpSourceEntry}.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * const entry = collectOpSourceFiles(['tasks.find', 'tasks.show']);
161
+ * // entry.handlerFiles: ['packages/cleo/src/dispatch/domains/tasks.ts']
162
+ * // entry.coreFiles: ['packages/core/src/tasks/find.ts', 'packages/core/src/tasks/show.ts']
163
+ * ```
164
+ */
165
+ export function collectOpSourceFiles(opCoords) {
166
+ const seenHandler = new Set();
167
+ const seenCore = new Set();
168
+ const handlerFiles = [];
169
+ const coreFiles = [];
170
+ for (const coord of opCoords) {
171
+ const entry = resolveOpSourceFiles(coord);
172
+ for (const f of entry.handlerFiles) {
173
+ if (!seenHandler.has(f)) {
174
+ seenHandler.add(f);
175
+ handlerFiles.push(f);
176
+ }
177
+ }
178
+ for (const f of entry.coreFiles) {
179
+ if (!seenCore.has(f)) {
180
+ seenCore.add(f);
181
+ coreFiles.push(f);
182
+ }
183
+ }
184
+ }
185
+ return { handlerFiles, coreFiles };
186
+ }
187
+ //# sourceMappingURL=op-source-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"op-source-map.js","sourceRoot":"","sources":["../../src/selfimprove/op-source-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Self-improvement probe helper — selfimprove.probe op (T11988).
3
+ *
4
+ * This tiny module exists to give the seeded-code-regression scenario a
5
+ * **real, patchable code bug** for end-to-end fix-gen proof. The function
6
+ * {@link probeVersion} is supposed to return `1` (the canonical probe API
7
+ * version), but ships with an intentional off-by-one (`return 2`) so that a
8
+ * live replay of the `seeded-code-regression` scenario diverges from the
9
+ * golden (`version: 1`) and the LLM can produce a correct one-line unified
10
+ * diff to fix it.
11
+ *
12
+ * ### Why a dedicated file?
13
+ *
14
+ * The seeded bug must be:
15
+ * 1. **In a repo-relative path** the op-source-map can register under
16
+ * `selfimprove.probe` so the fix-gen context loader includes it in the
17
+ * LLM prompt.
18
+ * 2. **Minimal** — the simplest possible off-by-one so the model cannot
19
+ * rationally refuse (`NO_PATCH`).
20
+ * 3. **Self-contained** — no live DB, no side effects; the probe op
21
+ * never mutates.
22
+ *
23
+ * ### Fixing the bug
24
+ *
25
+ * Change `return 2` → `return 1` in {@link probeVersion}. This is the EXACT
26
+ * one-line fix the self-improvement loop's LLM fix-gen stage should propose
27
+ * when replaying the seeded scenario.
28
+ *
29
+ * @module @cleocode/core/selfimprove/probe-helper
30
+ * @task T11988
31
+ */
32
+ /**
33
+ * Return the canonical probe API version.
34
+ *
35
+ * Expected value: `1`.
36
+ *
37
+ * @returns The probe version number.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * probeVersion(); // => 1 (expected)
42
+ * ```
43
+ *
44
+ * @bug SEEDED — currently returns `2` instead of `1` (T11988 intentional).
45
+ * The seeded-code-regression scenario golden asserts `version: 1`; the
46
+ * mismatch is the regression the fix-gen LLM prompt targets.
47
+ */
48
+ export declare function probeVersion(): number;
49
+ /**
50
+ * Build the `selfimprove.probe` response payload.
51
+ *
52
+ * Returns `{ probe: 'ok', version: <probeVersion()> }` — the envelope `data`
53
+ * block the `selfimprove.probe` query op emits.
54
+ *
55
+ * @returns The probe response payload.
56
+ */
57
+ export declare function buildProbePayload(): {
58
+ probe: 'ok';
59
+ version: number;
60
+ };
61
+ //# sourceMappingURL=probe-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe-helper.d.ts","sourceRoot":"","sources":["../../src/selfimprove/probe-helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAEpE"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Self-improvement probe helper — selfimprove.probe op (T11988).
3
+ *
4
+ * This tiny module exists to give the seeded-code-regression scenario a
5
+ * **real, patchable code bug** for end-to-end fix-gen proof. The function
6
+ * {@link probeVersion} is supposed to return `1` (the canonical probe API
7
+ * version), but ships with an intentional off-by-one (`return 2`) so that a
8
+ * live replay of the `seeded-code-regression` scenario diverges from the
9
+ * golden (`version: 1`) and the LLM can produce a correct one-line unified
10
+ * diff to fix it.
11
+ *
12
+ * ### Why a dedicated file?
13
+ *
14
+ * The seeded bug must be:
15
+ * 1. **In a repo-relative path** the op-source-map can register under
16
+ * `selfimprove.probe` so the fix-gen context loader includes it in the
17
+ * LLM prompt.
18
+ * 2. **Minimal** — the simplest possible off-by-one so the model cannot
19
+ * rationally refuse (`NO_PATCH`).
20
+ * 3. **Self-contained** — no live DB, no side effects; the probe op
21
+ * never mutates.
22
+ *
23
+ * ### Fixing the bug
24
+ *
25
+ * Change `return 2` → `return 1` in {@link probeVersion}. This is the EXACT
26
+ * one-line fix the self-improvement loop's LLM fix-gen stage should propose
27
+ * when replaying the seeded scenario.
28
+ *
29
+ * @module @cleocode/core/selfimprove/probe-helper
30
+ * @task T11988
31
+ */
32
+ /**
33
+ * Return the canonical probe API version.
34
+ *
35
+ * Expected value: `1`.
36
+ *
37
+ * @returns The probe version number.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * probeVersion(); // => 1 (expected)
42
+ * ```
43
+ *
44
+ * @bug SEEDED — currently returns `2` instead of `1` (T11988 intentional).
45
+ * The seeded-code-regression scenario golden asserts `version: 1`; the
46
+ * mismatch is the regression the fix-gen LLM prompt targets.
47
+ */
48
+ export function probeVersion() {
49
+ // SEEDED BUG (T11988): should be `return 1` — intentional off-by-one for
50
+ // the seeded-code-regression end-to-end fix-gen scenario.
51
+ return 2;
52
+ }
53
+ /**
54
+ * Build the `selfimprove.probe` response payload.
55
+ *
56
+ * Returns `{ probe: 'ok', version: <probeVersion()> }` — the envelope `data`
57
+ * block the `selfimprove.probe` query op emits.
58
+ *
59
+ * @returns The probe response payload.
60
+ */
61
+ export function buildProbePayload() {
62
+ return { probe: 'ok', version: probeVersion() };
63
+ }
64
+ //# sourceMappingURL=probe-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe-helper.js","sourceRoot":"","sources":["../../src/selfimprove/probe-helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY;IAC1B,yEAAyE;IACzE,0DAA0D;IAC1D,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC;AAClD,CAAC"}
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "seeded-code-regression",
3
+ "envelopes": [
4
+ {
5
+ "success": true,
6
+ "meta": {
7
+ "gateway": "query",
8
+ "domain": "selfimprove",
9
+ "operation": "probe",
10
+ "source": "rpc"
11
+ },
12
+ "data": {
13
+ "probe": "ok",
14
+ "version": 1
15
+ }
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "seeded-code-regression",
3
+ "description": "Seeded code-regression scenario for end-to-end fix-gen proof (T11988). A deliberately broken selfimprove helper returns the wrong value; the regression is detectable from the replay envelope and fixable by a targeted one-line code patch.",
4
+ "ops": [
5
+ {
6
+ "gateway": "query",
7
+ "domain": "selfimprove",
8
+ "operation": "probe",
9
+ "params": { "scenario": "seeded-code-regression" }
10
+ }
11
+ ]
12
+ }
@@ -27,6 +27,7 @@ export { createProjectConventionsSection } from './sections/project-conventions.
27
27
  export { createSentientSection } from './sections/sentient.js';
28
28
  export { createTelemetrySection } from './sections/telemetry.js';
29
29
  export { createVerificationSection, type VerificationCheck, } from './sections/verification.js';
30
+ export { printWhoamiSummaryAndOfferTui } from './whoami-summary.js';
30
31
  export { StubWizardIO, WizardFatalError, WizardInterruptError, type WizardIO, type WizardOptions, WizardRunner, type WizardRunResult, type WizardSection, type WizardSectionResult, type WizardSectionRunner, } from './wizard.js';
31
32
  /**
32
33
  * Construct every built-in {@link WizardSectionRunner} in canonical order.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAM1E,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,cAAmB,GAAG,mBAAmB,EAAE,CAazF;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,cAAmB,GAAG,YAAY,CAEpF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAM1E,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,cAAmB,GAAG,mBAAmB,EAAE,CAazF;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,cAAmB,GAAG,YAAY,CAEpF"}
@@ -37,6 +37,7 @@ export { createProjectConventionsSection } from './sections/project-conventions.
37
37
  export { createSentientSection } from './sections/sentient.js';
38
38
  export { createTelemetrySection } from './sections/telemetry.js';
39
39
  export { createVerificationSection, } from './sections/verification.js';
40
+ export { printWhoamiSummaryAndOfferTui } from './whoami-summary.js';
40
41
  export { StubWizardIO, WizardFatalError, WizardInterruptError, WizardRunner, } from './wizard.js';
41
42
  /**
42
43
  * Construct every built-in {@link WizardSectionRunner} in canonical order.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAuB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,YAAY,EAA4B,MAAM,aAAa,CAAC;AAErE,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAuB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,yBAAyB,GAE1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EAGpB,YAAY,GAKb,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAA0B,EAAE;IAChE,OAAO;QACL,gBAAgB,CAAC,OAAO,CAAC;QACzB,wBAAwB,EAAE;QAC1B,qBAAqB,EAAE;QACvB,qBAAqB,EAAE;QACvB,+BAA+B,EAAE;QACjC,oBAAoB,EAAE;QACtB,kBAAkB,EAAE;QACpB,yBAAyB,EAAE;QAC3B,sBAAsB,EAAE;QACxB,yBAAyB,EAAE;KAC5B,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,UAA0B,EAAE;IACpE,OAAO,IAAI,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAuB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,YAAY,EAA4B,MAAM,aAAa,CAAC;AAErE,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAuB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,yBAAyB,GAE1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EAGpB,YAAY,GAKb,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAA0B,EAAE;IAChE,OAAO;QACL,gBAAgB,CAAC,OAAO,CAAC;QACzB,wBAAwB,EAAE;QAC1B,qBAAqB,EAAE;QACvB,qBAAqB,EAAE;QACvB,+BAA+B,EAAE;QACjC,oBAAoB,EAAE;QACtB,kBAAkB,EAAE;QACpB,yBAAyB,EAAE;QAC3B,sBAAsB,EAAE;QACxB,yBAAyB,EAAE;KAC5B,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,UAA0B,EAAE;IACpE,OAAO,IAAI,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D,CAAC"}
@@ -29,7 +29,8 @@
29
29
  * @task T11726
30
30
  * @epic T11671 (E6-ONBOARDING-FRONT-DOOR)
31
31
  */
32
- import type { WizardSectionRunner } from '../wizard.js';
32
+ import type { LocalModelFitEnvelope } from '../../llm/local-model-fit.js';
33
+ import type { WizardIO, WizardSectionRunner } from '../wizard.js';
33
34
  /**
34
35
  * Build the `models-roles` section runner (T11726).
35
36
  *
@@ -37,4 +38,34 @@ import type { WizardSectionRunner } from '../wizard.js';
37
38
  * @task T11726
38
39
  */
39
40
  export declare function createModelsRolesSection(): WizardSectionRunner;
41
+ /**
42
+ * Injectable dependency for the Ollama model picker — lets tests stub out
43
+ * `rankLocalModelFit` without reaching into the real OS/network layer.
44
+ *
45
+ * @internal
46
+ */
47
+ export type LocalModelFitRanker = () => Promise<LocalModelFitEnvelope>;
48
+ /**
49
+ * Interactive Ollama model picker driven by fit-gated recommendations (T11983).
50
+ *
51
+ * Behaviour:
52
+ * - Calls `rankLocalModelFit` to detect hardware + Ollama state.
53
+ * - Below the 4 GB floor → informs the user (cloud-only guidance) and returns
54
+ * `null` (caller skips the binding).
55
+ * - Above the floor with recommendations → presents a ranked pick list of
56
+ * 2–3 candidates (never auto-selects, never auto-pulls — RECOMMEND-NEVER-KILL).
57
+ * - Already-pulled models are surfaced first with a `[pulled]` tag.
58
+ * - Free-text fallback offered as the last option so the user can type any tag.
59
+ * - Returns the chosen model tag, or `null` if the user skipped.
60
+ *
61
+ * The ranker is injectable so tests can supply a stub envelope without
62
+ * hitting the OS or network.
63
+ *
64
+ * @param io - Wizard I/O surface.
65
+ * @param ranker - Override the fit ranker for tests (defaults to the real one).
66
+ * @returns The chosen Ollama model tag, or `null` when the user skipped / below floor.
67
+ *
68
+ * @task T11983
69
+ */
70
+ export declare function _pickOllamaModelInteractive(io: WizardIO, ranker?: LocalModelFitRanker): Promise<string | null>;
40
71
  //# sourceMappingURL=models-roles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models-roles.d.ts","sourceRoot":"","sources":["../../../src/setup/sections/models-roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAUH,OAAO,KAAK,EAA2B,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA8CjF;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,mBAAmB,CAwI9D"}
1
+ {"version":3,"file":"models-roles.d.ts","sourceRoot":"","sources":["../../../src/setup/sections/models-roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAUH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,KAAK,EAAE,QAAQ,EAAiB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA8CjF;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,mBAAmB,CAqJ9D;AAoCD;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAevE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,2BAA2B,CAC/C,EAAE,EAAE,QAAQ,EACZ,MAAM,GAAE,mBAAgD,GACvD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgExB"}