lacuna-cli 0.1.5 → 0.1.7

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 (107) hide show
  1. package/README.md +83 -21
  2. package/dist/agent/context.d.ts +2 -0
  3. package/dist/agent/context.d.ts.map +1 -1
  4. package/dist/agent/context.js +314 -1
  5. package/dist/agent/context.js.map +1 -1
  6. package/dist/agent/fix-loop.d.ts +5 -0
  7. package/dist/agent/fix-loop.d.ts.map +1 -1
  8. package/dist/agent/fix-loop.js +376 -41
  9. package/dist/agent/fix-loop.js.map +1 -1
  10. package/dist/agent/generator.d.ts +8 -1
  11. package/dist/agent/generator.d.ts.map +1 -1
  12. package/dist/agent/generator.js +89 -11
  13. package/dist/agent/generator.js.map +1 -1
  14. package/dist/agent/loop.d.ts +8 -0
  15. package/dist/agent/loop.d.ts.map +1 -1
  16. package/dist/agent/loop.js +108 -46
  17. package/dist/agent/loop.js.map +1 -1
  18. package/dist/agent/{prompts.d.ts → prompts/index.d.ts} +12 -2
  19. package/dist/agent/prompts/index.d.ts.map +1 -0
  20. package/dist/agent/prompts/index.js +668 -0
  21. package/dist/agent/prompts/index.js.map +1 -0
  22. package/dist/agent/prompts/nextjs.d.ts +12 -0
  23. package/dist/agent/prompts/nextjs.d.ts.map +1 -0
  24. package/dist/agent/prompts/nextjs.js +138 -0
  25. package/dist/agent/prompts/nextjs.js.map +1 -0
  26. package/dist/agent/prompts/react-native.d.ts +4 -0
  27. package/dist/agent/prompts/react-native.d.ts.map +1 -0
  28. package/dist/agent/prompts/react-native.js +82 -0
  29. package/dist/agent/prompts/react-native.js.map +1 -0
  30. package/dist/agent/prompts/react.d.ts +2 -0
  31. package/dist/agent/prompts/react.d.ts.map +1 -0
  32. package/dist/agent/prompts/react.js +48 -0
  33. package/dist/agent/prompts/react.js.map +1 -0
  34. package/dist/agent/prompts/runners/js-common.d.ts +2 -0
  35. package/dist/agent/prompts/runners/js-common.d.ts.map +1 -0
  36. package/dist/agent/prompts/runners/js-common.js +13 -0
  37. package/dist/agent/prompts/runners/js-common.js.map +1 -0
  38. package/dist/agent/prompts/runners/typescript.d.ts +2 -0
  39. package/dist/agent/prompts/runners/typescript.d.ts.map +1 -0
  40. package/dist/agent/prompts/runners/typescript.js +12 -0
  41. package/dist/agent/prompts/runners/typescript.js.map +1 -0
  42. package/dist/agent/prompts/runners/vitest.d.ts +2 -0
  43. package/dist/agent/prompts/runners/vitest.d.ts.map +1 -0
  44. package/dist/agent/prompts/runners/vitest.js +23 -0
  45. package/dist/agent/prompts/runners/vitest.js.map +1 -0
  46. package/dist/agent/prompts/vue.d.ts +3 -0
  47. package/dist/agent/prompts/vue.d.ts.map +1 -0
  48. package/dist/agent/prompts/vue.js +29 -0
  49. package/dist/agent/prompts/vue.js.map +1 -0
  50. package/dist/commands/analyze.d.ts.map +1 -1
  51. package/dist/commands/analyze.js +43 -32
  52. package/dist/commands/analyze.js.map +1 -1
  53. package/dist/commands/fix.d.ts +2 -0
  54. package/dist/commands/fix.d.ts.map +1 -1
  55. package/dist/commands/fix.js +32 -3
  56. package/dist/commands/fix.js.map +1 -1
  57. package/dist/commands/init.d.ts.map +1 -1
  58. package/dist/commands/init.js +208 -32
  59. package/dist/commands/init.js.map +1 -1
  60. package/dist/lib/config.d.ts +3 -3
  61. package/dist/lib/config.d.ts.map +1 -1
  62. package/dist/lib/config.js +3 -1
  63. package/dist/lib/config.js.map +1 -1
  64. package/dist/lib/coverage/gaps.d.ts +2 -2
  65. package/dist/lib/coverage/gaps.d.ts.map +1 -1
  66. package/dist/lib/coverage/gaps.js +35 -5
  67. package/dist/lib/coverage/gaps.js.map +1 -1
  68. package/dist/lib/coverage/index.d.ts +1 -1
  69. package/dist/lib/coverage/index.d.ts.map +1 -1
  70. package/dist/lib/coverage/index.js +1 -1
  71. package/dist/lib/coverage/index.js.map +1 -1
  72. package/dist/lib/detector.d.ts +1 -0
  73. package/dist/lib/detector.d.ts.map +1 -1
  74. package/dist/lib/detector.js +41 -8
  75. package/dist/lib/detector.js.map +1 -1
  76. package/dist/lib/providers/anthropic.d.ts.map +1 -1
  77. package/dist/lib/providers/anthropic.js +46 -3
  78. package/dist/lib/providers/anthropic.js.map +1 -1
  79. package/dist/lib/providers/openai-compatible.d.ts +1 -1
  80. package/dist/lib/providers/openai-compatible.d.ts.map +1 -1
  81. package/dist/lib/providers/openai-compatible.js +43 -2
  82. package/dist/lib/providers/openai-compatible.js.map +1 -1
  83. package/dist/lib/providers/types.d.ts +4 -0
  84. package/dist/lib/providers/types.d.ts.map +1 -1
  85. package/dist/lib/providers/types.js +10 -0
  86. package/dist/lib/providers/types.js.map +1 -1
  87. package/dist/lib/skeleton.d.ts +4 -0
  88. package/dist/lib/skeleton.d.ts.map +1 -1
  89. package/dist/lib/skeleton.js +220 -0
  90. package/dist/lib/skeleton.js.map +1 -1
  91. package/dist/lib/validate.d.ts +1 -0
  92. package/dist/lib/validate.d.ts.map +1 -1
  93. package/dist/lib/validate.js +179 -15
  94. package/dist/lib/validate.js.map +1 -1
  95. package/dist/lib/worker-display.d.ts +10 -0
  96. package/dist/lib/worker-display.d.ts.map +1 -1
  97. package/dist/lib/worker-display.js +53 -5
  98. package/dist/lib/worker-display.js.map +1 -1
  99. package/oclif.manifest.json +16 -2
  100. package/package.json +1 -1
  101. package/dist/agent/prompts.d.ts.map +0 -1
  102. package/dist/agent/prompts.js +0 -632
  103. package/dist/agent/prompts.js.map +0 -1
  104. package/dist/lib/report-upload.d.ts +0 -3
  105. package/dist/lib/report-upload.d.ts.map +0 -1
  106. package/dist/lib/report-upload.js +0 -15
  107. package/dist/lib/report-upload.js.map +0 -1
package/README.md CHANGED
@@ -23,16 +23,18 @@ lacuna analyze / lacuna generate lacuna fix
23
23
  │ └── For each failing test file:
24
24
  └── For each gap: (generate only) ├── Runs file alone → captures error output
25
25
  ├── Reads source + existing tests ├── Reads the test file + its source file
26
- ├── Reads imported type definitions ├── Reads imported type definitions
27
- ├── Reads tsconfig paths, deps, ├── Reads tsconfig paths, deps, setup file
28
- and test setup file ├── Detects network mocking issues
29
- ├── Sends full context to AI model ├── AI reasons in <thinking>, writes fix
30
- ├── AI reasons then writes tests ├── Writes the fixed file
31
- ├── Runs the tests ├── ✅ Pass → next file
32
- ├── Pass next file └── ❌ Fail → records what failed,
33
- └── Fail → records what failed, detects oscillation (stops early),
34
- detects oscillation (stops early), retries with negative constraints
35
- retries with negative constraints restores original on final failure
26
+ ├── Extracts used symbol definitions ├── Reads imported type definitions
27
+ │ (hook return shapes, service ├── Reads tsconfig paths, deps, setup file
28
+ method sigs, transitive types) ├── Detects network mocking issues
29
+ ├── Reads tsconfig paths, deps, ├── AI reasons in <thinking>, writes fix
30
+ │ and test setup file ├── Writes the fixed file
31
+ ├── Sends full context to AI model ├── ✅ Pass → next file
32
+ ├── AI reasons then writes tests └── ❌ Fail → records what failed,
33
+ ├── Runs the tests detects oscillation (stops early),
34
+ ├── Pass → next file retries with negative constraints
35
+ └── Fail → records what failed, restores original on final failure
36
+ detects oscillation (stops early),
37
+ retries with negative constraints
36
38
  restores original on final failure
37
39
  ```
38
40
 
@@ -60,6 +62,33 @@ lacuna generate # AI fills the gaps
60
62
 
61
63
  ---
62
64
 
65
+ ## Supported stacks
66
+
67
+ Lacuna's AI prompts are tuned for frameworks that have been field-tested. Runner support (coverage collection + test generation) exists for other languages, but prompt guidance quality will vary.
68
+
69
+ ### Tested — works well
70
+
71
+ | Stack | Test runner | What's tuned |
72
+ |---|---|---|
73
+ | **TypeScript / JavaScript** (utilities, services, hooks) | Vitest, Jest | Hook return shape extraction, service method verification, TypeScript type-safety rules (`T[]` not `Array<T>`, no `as any` on mock shapes), mock structure (object vs factory), `jest.mocked()` / `vi.mocked()` pattern, factory hoisting rules |
74
+ | **React** | Vitest, Jest | RTL query hierarchy, `act()` async rules, loading state (unmounted vs disabled button), unhandled rejection handling, mock lifecycle (`mockResolvedValueOnce`), `findBy` over `waitFor` preference |
75
+ | **React Native** / Expo | Jest (`jest-expo`) | RNTL v14 async contract (`render()` + `fireEvent` must be awaited), infra mocks (Reanimated, AsyncStorage, safe area, vector icons), compound component factories, mock shape accuracy (hook destructure matching, service method names), dynamic text template resolution, toast vs screen text, icon-only button handling, `useFocusEffect` mocking, test cascade detection |
76
+ | **Next.js** | Vitest | Server/client boundary mocks, `next/navigation`, `next/headers`, `next/cache`, server actions, `'use client'`/`'use server'` directive detection |
77
+
78
+ ### Supported — not yet field-tested
79
+
80
+ | Stack | Test runner | Status |
81
+ |---|---|---|
82
+ | Vue | Vitest | Runner works. `@testing-library/vue` guidance included. Field-testing pending. |
83
+ | Python | pytest | Runner + coverage detection works. AI prompt guidance is generic — framework-specific tuning (pytest-django, FastAPI, etc.) will be added once field-tested. |
84
+ | PHP | PHPUnit, Pest | Runner + coverage detection works. Framework-specific prompt tuning coming once field-tested. |
85
+
86
+ ### Runner support only
87
+
88
+ Go, Ruby (RSpec), Rust (cargo test), C# (dotnet test), Java (Gradle / Maven), Swift — lacuna can run their suites and collect coverage, but AI prompt guidance is not yet tuned for these.
89
+
90
+ ---
91
+
63
92
  ## Commands
64
93
 
65
94
  ### `lacuna init`
@@ -67,10 +96,16 @@ Interactive setup wizard. Configures your model, test runner, source directory,
67
96
 
68
97
  Works from any subdirectory — lacuna finds the project root automatically.
69
98
 
70
- For **React and Next.js** projects, `lacuna init` also:
99
+ For **React** projects, `lacuna init` also:
71
100
  - Installs `@testing-library/react`, `@testing-library/jest-dom`, `@testing-library/user-event`, and `jsdom`
72
- - Creates `vitest.config.ts` with the correct `environment: 'jsdom'` and `@/` alias (read from your `tsconfig.json`)
73
- - Creates a setup file pre-loaded with global `vi.mock()` calls for `next/navigation`, `next/headers`, and `next/cache` so individual tests don't need to mock them
101
+ - Creates `vitest.config.ts` with `environment: 'jsdom'` and `restoreMocks: true` + `clearMocks: true`
102
+ - Creates a setup file with `@testing-library/jest-dom` and `beforeEach`/`afterEach` mock cleanup hooks
103
+
104
+ For **Next.js** projects, the setup is different — Next.js and plain React are not compatible:
105
+ - Installs the same testing-library packages but does **not** add `environment: 'jsdom'` to vitest config (Next.js manages its own environment)
106
+ - Adds `@/` alias (from your `tsconfig.json`) and a `server-only` stub alias to vitest config
107
+ - Creates a setup file with global `vi.mock()` calls for `next/navigation`, `next/headers`, `next/cache`, `next/image`, and `next/font` — these are Next.js-specific mocks that would crash a plain React project
108
+ - If test dependencies are found in `node_modules` but not declared in `package.json` (e.g. from a different branch), lacuna will prompt you to add them — undeclared deps break CI on a fresh checkout
74
109
 
75
110
  ```bash
76
111
  lacuna init
@@ -108,7 +143,7 @@ lacuna generate --format json --output report.json
108
143
  ```
109
144
 
110
145
  ### `lacuna fix`
111
- Finds all failing tests and repairs them using AI — without rewriting them from scratch. Sends each failing file along with its error output and source code to the model, which surgically fixes what's broken and retries until it passes.
146
+ Finds all failing tests and repairs them using AI. Sends each failing file along with its error output and source code to the model, which surgically fixes what's broken and retries until it passes. If all fix retries fail, lacuna automatically deletes the broken test and regenerates it from the source file — a clean slate rather than another round of patchwork.
112
147
 
113
148
  ```bash
114
149
  lacuna fix
@@ -117,15 +152,19 @@ lacuna fix --file src/utils/math.test.ts # fix a single test file (skips full
117
152
  lacuna fix --dry-run # preview fixes without writing
118
153
  lacuna fix --verbose # live code panel as model writes each fix
119
154
  lacuna fix --fresh # re-run the suite even if cache is recent
155
+ lacuna fix --no-regenerate-on-failure # disable the regen fallback (fix only, no delete)
156
+ lacuna fix --fix-polluters # also handle tests that pass alone but fail in suite
120
157
  ```
121
158
 
122
- Unlike `lacuna generate`, which creates new tests, `lacuna fix` operates on existing failing tests. It preserves all test logic and only changes what is necessary to make the suite pass.
159
+ Unlike `lacuna generate`, which creates new tests, `lacuna fix` operates on existing failing tests and preserves all test logic where possible.
160
+
161
+ **Regeneration fallback (default on):** When fix retries are exhausted, lacuna deletes the test file and regenerates it from scratch using the generate path. This works better than continued repair for structurally broken tests — the AI starts with a clean conversation and full source context instead of carrying forward a chain of failed hypotheses. Use `--no-regenerate-on-failure` to disable this and get fix-only behaviour.
123
162
 
124
- If all retries fail or the model oscillates (identical output detected), the original file is restored automatically. Your test suite is always left in a coherent state.
163
+ **Passing in isolation, failing in suite (`--fix-polluters`):** Some tests pass when run alone but fail in the full suite. `--fix-polluters` handles these in two phases: (1) bisect the test suite to find if another file is leaking state (e.g. an uncleaned mock or global), and fix the polluter; (2) if no polluter can be isolated (the test has an internal spy lifecycle bug), delete and regenerate the victim file directly.
125
164
 
126
- If a fix attempt breaks an import (causing 0 tests to be collected) or reduces the number of passing tests, lacuna detects the regression and tells the model exactly what the original failure was — so it doesn't waste further iterations trying to recover from the wrong problem.
165
+ If all retries fail or the model oscillates (identical output detected), the original file is restored automatically. If a fix attempt breaks an import or reduces passing tests, lacuna detects the regression and anchors the next retry to the original error.
127
166
 
128
- When `--file` is given, lacuna skips the full suite and runs only the target file — much faster for iterating on a single broken test. Without `--file`, the failing-files list is cached for 30 minutes. After a fix run, the cache is updated to contain only the files that are still failing — so re-running `lacuna fix` immediately picks up exactly where the last run left off. Once all files are fixed, the cache is cleared so the next run does a clean suite scan.
167
+ When `--file` is given, lacuna skips the full suite and runs only the target file. Without `--file`, the failing-files list is cached for 30 minutes. After a fix run, the cache is updated to contain only the still-failing files — so re-running immediately picks up where the last run left off.
129
168
 
130
169
  ### `lacuna run`
131
170
  Runs your test suite and reports coverage. No AI involved.
@@ -167,7 +206,7 @@ Created by `lacuna init`. All fields are optional with sensible defaults.
167
206
  | `testRunner` | auto-detect | `jest` \| `vitest` \| `pytest` \| `mocha` \| `go-test` |
168
207
  | `coverageFormat` | `lcov` | `lcov` \| `json-summary` |
169
208
  | `coverageDir` | `coverage` | Where your test runner writes coverage |
170
- | `sourceDir` | `src` | Root directory of source files set during `lacuna init` |
209
+ | `sourceDir` | `"src"` | Source directory to scan. Accepts a string or an array — `["src", "lib", "utils"]` scans multiple directories |
171
210
  | `threshold` | `80` | Minimum line coverage % to pass |
172
211
  | `maxIterations` | `3` | How many times to retry a failing generated test |
173
212
  | `coverageTimeout` | `300` | Seconds before the test suite is killed (prevents hanging on open handles) |
@@ -257,7 +296,25 @@ beforeEach(() => {
257
296
  lacuna generate
258
297
  ```
259
298
 
260
- Every generated test will import from `src/test/mocks.ts` instead of creating its own `vi.fn()` calls. If a test needs a mock that doesn't exist yet, Claude will add it to the mocks file and import it — keeping everything centralized.
299
+ Every generated test will import from `src/test/mocks.ts` instead of creating its own `vi.fn()` calls. If a test needs a mock that doesn't exist yet, lacuna will add it to the mocks file and import it — keeping everything centralized.
300
+
301
+ ### How lacuna reads and updates the shared mock file
302
+
303
+ Lacuna parses your mock file before every prompt and builds a **mock inventory** — a structured table of every `vi.mock()` call, its line number, and all the keys it exports:
304
+
305
+ ```
306
+ 'react-router-dom' → useNavigate, useParams
307
+ 'axios' → get, post, put, delete
308
+ ```
309
+
310
+ This inventory is injected into every prompt so the AI knows exactly which modules are already mocked and what they export. When the AI needs to add a new export (e.g. a new API client method), it updates the **existing** `vi.mock()` block with the full list of old + new exports — never appending a second block for the same module.
311
+
312
+ **Structure rules the AI follows:**
313
+ - Module already in inventory → update the existing block (never a duplicate)
314
+ - New mock variable → declare near same-domain exports, reset in existing `beforeEach`
315
+ - New module → append at end before the final `beforeEach`
316
+
317
+ For fix prompts, the mock file is **compressed** before sending (multi-line React component stub bodies are collapsed to `vi.fn()`) to reduce token cost while preserving all `vi.mock()` blocks and factory functions. For generate prompts, only the inventory and exports list are sent — the raw file is skipped entirely since the AI only needs to know what to import, not re-read every implementation.
261
318
 
262
319
  ---
263
320
 
@@ -445,7 +502,12 @@ lacuna/
445
502
  │ │ ├── fix-loop.ts # fix → run → retry loop for failing tests
446
503
  │ │ ├── context.ts # builds context for the AI (source + tests + mocks + type definitions)
447
504
  │ │ ├── generator.ts # calls the AI model, manages conversation history
448
- │ │ └── prompts.ts # system prompt + user prompt templates
505
+ │ │ └── prompts/ # prompt builders split by framework
506
+ │ │ ├── index.ts # system prompt + generate/fix/retry prompt assembly
507
+ │ │ ├── react-native.ts # RNTL v14 rules, infra mock guidance, error detectors
508
+ │ │ ├── nextjs.ts # Next.js boundary analysis, server action mocks
509
+ │ │ ├── react.ts # React web testing rules (act, RTL, timers)
510
+ │ │ └── vue.ts # Vue testing guidance
449
511
  │ ├── lib/
450
512
  │ │ ├── config.ts # cosmiconfig loader + zod schema
451
513
  │ │ ├── detector.ts # auto-detects test runner and language
@@ -14,11 +14,13 @@ export interface FileContext {
14
14
  tsconfigPaths: string | null;
15
15
  typeDefinitions: string | null;
16
16
  localImportPaths: string[] | null;
17
+ localImportContents: string | null;
17
18
  reactMajorVersion: number | null;
18
19
  }
19
20
  export declare function computeRelativeImport(fromFile: string, toFile: string): string;
20
21
  export declare function collectTypeDefinitions(sourceCode: string, absoluteSourcePath: string, cwd: string): Promise<string | null>;
21
22
  export declare function collectLocalImportPaths(sourceCode: string, absoluteSourcePath: string, absoluteTestFilePath: string, cwd: string): Promise<string[] | null>;
23
+ export declare function collectUsedSymbolsContext(sourceCode: string, absoluteSourcePath: string, cwd: string): Promise<string | null>;
22
24
  export declare function detectReactMajorVersion(cwd: string): Promise<number | null>;
23
25
  export declare function buildFixFileContext(absTestPath: string, cwd: string, config?: LacunaConfig): Promise<Pick<FileContext, 'mocksCode' | 'mocksImportPath' | 'setupFileCode' | 'packageDeps' | 'tsconfigPaths'>>;
24
26
  export declare function buildFileContext(sourceFilePath: string, cwd: string, env: DetectedEnvironment, config?: LacunaConfig): Promise<FileContext>;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEpD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACjC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAGD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAI9E;AA8JD,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6CxB;AAMD,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,oBAAoB,EAAE,MAAM,EAC5B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAmB1B;AAGD,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWjF;AAkFD,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,iBAAiB,GAAG,eAAe,GAAG,aAAa,GAAG,eAAe,CAAC,CAAC,CAwBjH;AAED,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,mBAAmB,EACxB,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,CAuDtB"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEpD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACjC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAGD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAI9E;AA8JD,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6CxB;AAMD,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,oBAAoB,EAAE,MAAM,EAC5B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAmB1B;AA0ND,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2ExB;AAGD,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWjF;AAkFD,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,iBAAiB,GAAG,eAAe,GAAG,aAAa,GAAG,eAAe,CAAC,CAAC,CAwBjH;AAED,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,mBAAmB,EACxB,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,CAyDtB"}
@@ -207,6 +207,317 @@ export async function collectLocalImportPaths(sourceCode, absoluteSourcePath, ab
207
207
  }
208
208
  return results.length > 0 ? results : null;
209
209
  }
210
+ // ─── Used-symbols context ─────────────────────────────────────────────────────
211
+ // Builds a targeted map of exactly what the source component uses from its local
212
+ // imports: hook return shapes, service method signatures, type declarations.
213
+ // No arbitrary line cap — output is naturally bounded by what's actually referenced.
214
+ // BFS follows transitive type references (e.g. Draw type used by useDraws hook).
215
+ // Extract a brace-balanced block starting at lines[startIdx].
216
+ // Also handles brace-less type aliases by continuing while a continuation is implied.
217
+ function extractBraceBlock(lines, startIdx) {
218
+ const block = [];
219
+ let depth = 0;
220
+ let opened = false;
221
+ for (let i = startIdx; i < lines.length; i++) {
222
+ block.push(lines[i]);
223
+ for (const ch of lines[i]) {
224
+ if (ch === '{') {
225
+ depth++;
226
+ opened = true;
227
+ }
228
+ else if (ch === '}')
229
+ depth--;
230
+ }
231
+ if (opened && depth <= 0)
232
+ break;
233
+ if (!opened && i > startIdx) {
234
+ const t = lines[i].trimEnd();
235
+ const nextStartsCont = (i + 1 < lines.length) && /^\s*[|&]/.test(lines[i + 1]);
236
+ const isCont = t.endsWith('|') || t.endsWith('&') || t.endsWith(',') || t.endsWith('=') || nextStartsCont;
237
+ if (!isCont)
238
+ break;
239
+ }
240
+ }
241
+ return block.join('\n');
242
+ }
243
+ const MAX_FN_LINES = 25;
244
+ // For long functions/hooks: keep signature + "// ..." + last return statement.
245
+ function summariseFunctionBlock(code) {
246
+ const lines = code.split('\n');
247
+ if (lines.length <= MAX_FN_LINES)
248
+ return code;
249
+ let bodyOpen = 0;
250
+ for (let i = 0; i < lines.length; i++) {
251
+ if (lines[i].includes('{')) {
252
+ bodyOpen = i;
253
+ break;
254
+ }
255
+ }
256
+ let returnStart = -1;
257
+ for (let i = lines.length - 2; i > bodyOpen; i--) {
258
+ if (/^\s*return\b/.test(lines[i])) {
259
+ returnStart = i;
260
+ break;
261
+ }
262
+ }
263
+ const sig = lines.slice(0, bodyOpen + 1);
264
+ if (returnStart === -1)
265
+ return [...sig, ' // ...', '}'].join('\n');
266
+ return [...sig, ' // ...', ...lines.slice(returnStart)].join('\n');
267
+ }
268
+ // For classes: keep declaration + method signatures, collapse all bodies.
269
+ function summariseClassBlock(code) {
270
+ const lines = code.split('\n');
271
+ const out = [lines[0]];
272
+ let depth = 0;
273
+ for (const ch of lines[0]) {
274
+ if (ch === '{')
275
+ depth++;
276
+ else if (ch === '}')
277
+ depth--;
278
+ }
279
+ let i = 1;
280
+ while (i < lines.length) {
281
+ const line = lines[i];
282
+ const t = line.trim();
283
+ if (!t || /^[/*]/.test(t) || t === '}') {
284
+ out.push(line);
285
+ for (const ch of line) {
286
+ if (ch === '{')
287
+ depth++;
288
+ else if (ch === '}')
289
+ depth--;
290
+ }
291
+ i++;
292
+ continue;
293
+ }
294
+ // At class body depth (1): detect method-like lines by presence of '('
295
+ if (depth === 1 && /\(/.test(t) && !/^\s*\/\//.test(line)) {
296
+ const sigLines = [];
297
+ let d = depth;
298
+ let j = i;
299
+ while (j < lines.length) {
300
+ const l = lines[j];
301
+ d += (l.match(/\{/g) ?? []).length - (l.match(/\}/g) ?? []).length;
302
+ sigLines.push(l);
303
+ j++;
304
+ if (d > depth)
305
+ break; // body opened
306
+ if (d === depth)
307
+ break; // abstract / no body
308
+ }
309
+ // Show sig lines but strip the opening `{` from the last one
310
+ for (let k = 0; k < sigLines.length - 1; k++)
311
+ out.push(sigLines[k]);
312
+ const last = sigLines[sigLines.length - 1].replace(/\s*\{[^}]*$/, '').trimEnd();
313
+ if (last.trim())
314
+ out.push(last);
315
+ if (d > depth) {
316
+ // Skip method body
317
+ i = j;
318
+ while (i < lines.length && d > depth) {
319
+ d += (lines[i].match(/\{/g) ?? []).length - (lines[i].match(/\}/g) ?? []).length;
320
+ i++;
321
+ }
322
+ depth = d;
323
+ continue;
324
+ }
325
+ depth = d;
326
+ i = j;
327
+ continue;
328
+ }
329
+ out.push(line);
330
+ for (const ch of line) {
331
+ if (ch === '{')
332
+ depth++;
333
+ else if (ch === '}')
334
+ depth--;
335
+ }
336
+ i++;
337
+ }
338
+ return out.join('\n');
339
+ }
340
+ // PascalCase identifiers in code that look like local type references.
341
+ const TYPE_REF_BUILTINS = new Set([
342
+ 'React', 'Promise', 'String', 'Number', 'Boolean', 'Array', 'Object', 'Error',
343
+ 'Date', 'Map', 'Set', 'RegExp', 'Function', 'Symbol', 'URL', 'JSON', 'Event',
344
+ 'HTMLElement', 'Element', 'Node', 'Window', 'Document', 'MouseEvent', 'KeyboardEvent',
345
+ 'FC', 'ReactNode', 'ReactElement', 'ComponentProps', 'Dispatch', 'SetStateAction',
346
+ 'MutableRefObject', 'RefObject', 'CSSProperties', 'SyntheticEvent', 'PropsWithChildren',
347
+ 'Partial', 'Required', 'Readonly', 'Record', 'Pick', 'Omit', 'Exclude', 'Extract',
348
+ 'NonNullable', 'ReturnType', 'InstanceType', 'Parameters', 'Awaited',
349
+ 'View', 'Text', 'ScrollView', 'FlatList', 'TouchableOpacity', 'Animated',
350
+ ]);
351
+ function extractTypeRefs(code) {
352
+ const found = new Set();
353
+ for (const m of code.matchAll(/\b([A-Z][a-zA-Z0-9]+)\b/g)) {
354
+ if (!TYPE_REF_BUILTINS.has(m[1]))
355
+ found.add(m[1]);
356
+ }
357
+ return [...found];
358
+ }
359
+ function extractAllExportNames(code) {
360
+ const names = [];
361
+ for (const m of code.matchAll(/^export\s+(?:async\s+)?(?:function|const|class|interface|type|enum)\s+(\w+)/gm))
362
+ names.push(m[1]);
363
+ for (const m of code.matchAll(/^export\s+\{([^}]+)\}/gm)) {
364
+ for (const part of m[1].split(',')) {
365
+ const name = part.trim().split(/\s+as\s+/).pop()?.trim();
366
+ if (name && /^\w+$/.test(name))
367
+ names.push(name);
368
+ }
369
+ }
370
+ return [...new Set(names)];
371
+ }
372
+ function extractSymbolFromCode(code, name) {
373
+ const lines = code.split('\n');
374
+ for (let i = 0; i < lines.length; i++) {
375
+ const line = lines[i];
376
+ if (!/\bexport\b/.test(line))
377
+ continue;
378
+ // Re-export: export [type] { X as Y } from './path'
379
+ const reFrom = line.match(/^export\s+(?:type\s+)?\{([^}]+)\}\s+from\s+['"]([^'"]+)['"]/);
380
+ if (reFrom) {
381
+ for (const part of reFrom[1].split(',')) {
382
+ const halves = part.trim().replace(/^type\s+/, '').split(/\s+as\s+/);
383
+ const exported = (halves[1] ?? halves[0]).trim();
384
+ if (exported === name)
385
+ return { code: '', reexportPath: reFrom[2], reexportName: halves[0].trim() };
386
+ }
387
+ continue;
388
+ }
389
+ if (name === 'default' && /^\s*export\s+default\b/.test(line)) {
390
+ return { code: summariseFunctionBlock(extractBraceBlock(lines, i)) };
391
+ }
392
+ if (new RegExp(`^\\s*export\\s+(?:async\\s+)?function\\s*\\*?\\s*${name}\\s*[<(]`).test(line)) {
393
+ return { code: summariseFunctionBlock(extractBraceBlock(lines, i)) };
394
+ }
395
+ if (new RegExp(`^\\s*export\\s+const\\s+${name}\\s*[=:]`).test(line)) {
396
+ return { code: summariseFunctionBlock(extractBraceBlock(lines, i)) };
397
+ }
398
+ if (new RegExp(`^\\s*export\\s+(?:abstract\\s+)?class\\s+${name}\\b`).test(line)) {
399
+ return { code: summariseClassBlock(extractBraceBlock(lines, i)) };
400
+ }
401
+ if (new RegExp(`^\\s*export\\s+(?:default\\s+)?(?:interface|type|enum)\\s+${name}\\b`).test(line)) {
402
+ return { code: extractBraceBlock(lines, i) };
403
+ }
404
+ }
405
+ return null;
406
+ }
407
+ // Parse which symbols a source file imports from each local dependency.
408
+ // Returns Map<absoluteFilePath, Set<symbolName>> — '*' means namespace import.
409
+ async function parseImportedSymbols(code, fromAbsPath, cwd, aliases) {
410
+ const result = new Map();
411
+ for (const m of code.matchAll(/^import(?:\s+type)?\s+(.+?)\s+from\s+['"]([^'"]+)['"]/gm)) {
412
+ const clause = m[1].trim();
413
+ const base = resolveLocalImport(m[2], fromAbsPath, cwd, aliases);
414
+ if (!base)
415
+ continue;
416
+ const file = await resolveToFile(base);
417
+ if (!file)
418
+ continue;
419
+ const syms = result.get(file) ?? new Set();
420
+ result.set(file, syms);
421
+ if (/\*\s+as\s+/.test(clause)) {
422
+ syms.add('*');
423
+ continue;
424
+ }
425
+ const namedMatch = clause.match(/\{([^}]+)\}/);
426
+ if (namedMatch) {
427
+ for (const part of namedMatch[1].split(',')) {
428
+ const name = part.trim().replace(/^type\s+/, '').split(/\s+as\s+/)[0].trim();
429
+ if (/^\w+$/.test(name))
430
+ syms.add(name);
431
+ }
432
+ }
433
+ const stripped = clause.replace(/\{[^}]*\}/, '').replace(/\*\s+as\s+\w+/, '').trim();
434
+ const def = stripped.match(/^(\w+)/);
435
+ if (def && def[1] !== 'type')
436
+ syms.add('default');
437
+ }
438
+ return result;
439
+ }
440
+ const MAX_SYMBOLS_TOTAL_CHARS = 14000;
441
+ // Builds targeted context from only the symbols the source component actually uses.
442
+ // For each imported symbol: extracts its declaration, collapses function bodies to
443
+ // signature + return, collapses class bodies to method signatures.
444
+ // Transitively follows PascalCase type references through their import chains (BFS).
445
+ export async function collectUsedSymbolsContext(sourceCode, absoluteSourcePath, cwd) {
446
+ const aliases = await readTsconfigAliases(cwd);
447
+ const directImports = await parseImportedSymbols(sourceCode, absoluteSourcePath, cwd, aliases);
448
+ const queue = [];
449
+ for (const [file, syms] of directImports)
450
+ queue.push({ file, symbols: new Set(syms) });
451
+ const visited = new Set(); // `${file}::${symbol}`
452
+ const fileSections = [];
453
+ let totalChars = 0;
454
+ while (queue.length > 0 && totalChars < MAX_SYMBOLS_TOTAL_CHARS) {
455
+ const { file, symbols } = queue.shift();
456
+ let fileContent;
457
+ try {
458
+ fileContent = await readFile(file, 'utf-8');
459
+ }
460
+ catch {
461
+ continue;
462
+ }
463
+ const toProcess = symbols.has('*') ? new Set(extractAllExportNames(fileContent)) : symbols;
464
+ const fileBlocks = [];
465
+ const typeRefs = new Set();
466
+ for (const sym of toProcess) {
467
+ const key = `${file}::${sym}`;
468
+ if (visited.has(key))
469
+ continue;
470
+ visited.add(key);
471
+ const result = extractSymbolFromCode(fileContent, sym);
472
+ if (!result)
473
+ continue;
474
+ if (result.reexportPath) {
475
+ const base = resolveLocalImport(result.reexportPath, file, cwd, aliases);
476
+ if (base) {
477
+ const reFile = await resolveToFile(base);
478
+ if (reFile) {
479
+ const reSym = result.reexportName ?? sym;
480
+ if (!visited.has(`${reFile}::${reSym}`))
481
+ queue.push({ file: reFile, symbols: new Set([reSym]) });
482
+ }
483
+ }
484
+ continue;
485
+ }
486
+ if (result.code) {
487
+ fileBlocks.push(result.code);
488
+ for (const ref of extractTypeRefs(result.code))
489
+ typeRefs.add(ref);
490
+ }
491
+ }
492
+ // Follow type references: first check same file, then follow cross-file imports
493
+ if (typeRefs.size > 0) {
494
+ // Same-file types (defined in this file but not yet extracted)
495
+ for (const ref of typeRefs) {
496
+ const key = `${file}::${ref}`;
497
+ if (visited.has(key))
498
+ continue;
499
+ const local = extractSymbolFromCode(fileContent, ref);
500
+ if (local?.code) {
501
+ visited.add(key);
502
+ fileBlocks.push(local.code);
503
+ }
504
+ }
505
+ // Cross-file types (imported by this file from another local file)
506
+ const typeImports = await parseImportedSymbols(fileContent, file, cwd, aliases);
507
+ for (const [typeFile, typeSyms] of typeImports) {
508
+ const relevant = new Set([...typeSyms].filter(s => typeRefs.has(s)));
509
+ if (relevant.size > 0)
510
+ queue.push({ file: typeFile, symbols: relevant });
511
+ }
512
+ }
513
+ if (fileBlocks.length > 0) {
514
+ const section = `// from ${relative(cwd, file)}\n${fileBlocks.join('\n\n')}`;
515
+ fileSections.push(section);
516
+ totalChars += section.length;
517
+ }
518
+ }
519
+ return fileSections.length > 0 ? fileSections.join('\n\n') : null;
520
+ }
210
521
  // Reads the React major version from package.json, or null if React is not a dependency.
211
522
  export async function detectReactMajorVersion(cwd) {
212
523
  try {
@@ -339,11 +650,12 @@ export async function buildFileContext(sourceFilePath, cwd, env, config) {
339
650
  }
340
651
  catch { /* setup file not found — skip */ }
341
652
  }
342
- const [packageDeps, tsconfigPaths, typeDefinitions, localImportPaths, reactMajorVersion] = await Promise.all([
653
+ const [packageDeps, tsconfigPaths, typeDefinitions, localImportPaths, localImportContents, reactMajorVersion] = await Promise.all([
343
654
  readPackageDeps(cwd),
344
655
  readTsconfigPaths(cwd),
345
656
  collectTypeDefinitions(sourceCode, absoluteSource, cwd),
346
657
  collectLocalImportPaths(sourceCode, absoluteSource, suggestedTestFile, cwd),
658
+ collectUsedSymbolsContext(sourceCode, absoluteSource, cwd),
347
659
  detectReactMajorVersion(cwd),
348
660
  ]);
349
661
  return {
@@ -360,6 +672,7 @@ export async function buildFileContext(sourceFilePath, cwd, env, config) {
360
672
  tsconfigPaths,
361
673
  typeDefinitions,
362
674
  localImportPaths,
675
+ localImportContents,
363
676
  reactMajorVersion,
364
677
  };
365
678
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"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"}