lacuna-cli 0.1.4 → 0.1.6
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.
- package/README.md +51 -21
- package/dist/agent/fix-loop.d.ts +5 -0
- package/dist/agent/fix-loop.d.ts.map +1 -1
- package/dist/agent/fix-loop.js +342 -35
- package/dist/agent/fix-loop.js.map +1 -1
- package/dist/agent/generator.d.ts +4 -1
- package/dist/agent/generator.d.ts.map +1 -1
- package/dist/agent/generator.js +42 -3
- package/dist/agent/generator.js.map +1 -1
- package/dist/agent/loop.d.ts +8 -0
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +26 -9
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/prompts.d.ts +8 -0
- package/dist/agent/prompts.d.ts.map +1 -1
- package/dist/agent/prompts.js +395 -67
- package/dist/agent/prompts.js.map +1 -1
- package/dist/commands/fix.d.ts +2 -0
- package/dist/commands/fix.d.ts.map +1 -1
- package/dist/commands/fix.js +31 -2
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +245 -34
- package/dist/commands/init.js.map +1 -1
- package/dist/lib/config.d.ts +8 -8
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +8 -6
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/coverage/gaps.d.ts +2 -2
- package/dist/lib/coverage/gaps.d.ts.map +1 -1
- package/dist/lib/coverage/gaps.js +4 -4
- package/dist/lib/coverage/gaps.js.map +1 -1
- package/dist/lib/detector.d.ts +3 -2
- package/dist/lib/detector.d.ts.map +1 -1
- package/dist/lib/detector.js +138 -0
- package/dist/lib/detector.js.map +1 -1
- package/dist/lib/providers/anthropic.d.ts.map +1 -1
- package/dist/lib/providers/anthropic.js +26 -3
- package/dist/lib/providers/anthropic.js.map +1 -1
- package/dist/lib/providers/openai-compatible.d.ts +1 -1
- package/dist/lib/providers/openai-compatible.d.ts.map +1 -1
- package/dist/lib/providers/openai-compatible.js +17 -1
- package/dist/lib/providers/openai-compatible.js.map +1 -1
- package/dist/lib/skeleton.d.ts +4 -0
- package/dist/lib/skeleton.d.ts.map +1 -1
- package/dist/lib/skeleton.js +220 -0
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/lib/validate.d.ts +1 -0
- package/dist/lib/validate.d.ts.map +1 -1
- package/dist/lib/validate.js +132 -0
- package/dist/lib/validate.js.map +1 -1
- package/dist/lib/worker-display.d.ts +3 -0
- package/dist/lib/worker-display.d.ts.map +1 -1
- package/dist/lib/worker-display.js +19 -4
- package/dist/lib/worker-display.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/report-upload.d.ts +0 -3
- package/dist/lib/report-upload.d.ts.map +0 -1
- package/dist/lib/report-upload.js +0 -15
- package/dist/lib/report-upload.js.map +0 -1
- package/oclif.manifest.json +0 -295
package/oclif.manifest.json
DELETED
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"commands": {
|
|
3
|
-
"analyze": {
|
|
4
|
-
"aliases": [],
|
|
5
|
-
"args": {},
|
|
6
|
-
"description": "Analyze test coverage and show gaps — no files are changed",
|
|
7
|
-
"examples": [
|
|
8
|
-
"$ lacuna analyze",
|
|
9
|
-
"$ lacuna analyze --threshold 90",
|
|
10
|
-
"$ lacuna analyze --format json",
|
|
11
|
-
"$ lacuna analyze --format markdown"
|
|
12
|
-
],
|
|
13
|
-
"flags": {
|
|
14
|
-
"threshold": {
|
|
15
|
-
"char": "t",
|
|
16
|
-
"description": "Minimum coverage percentage",
|
|
17
|
-
"name": "threshold",
|
|
18
|
-
"hasDynamicHelp": false,
|
|
19
|
-
"multiple": false,
|
|
20
|
-
"type": "option"
|
|
21
|
-
},
|
|
22
|
-
"format": {
|
|
23
|
-
"char": "F",
|
|
24
|
-
"description": "Output format",
|
|
25
|
-
"name": "format",
|
|
26
|
-
"default": "terminal",
|
|
27
|
-
"hasDynamicHelp": false,
|
|
28
|
-
"multiple": false,
|
|
29
|
-
"options": [
|
|
30
|
-
"terminal",
|
|
31
|
-
"json",
|
|
32
|
-
"markdown"
|
|
33
|
-
],
|
|
34
|
-
"type": "option"
|
|
35
|
-
},
|
|
36
|
-
"output": {
|
|
37
|
-
"char": "o",
|
|
38
|
-
"description": "Write report to file instead of stdout",
|
|
39
|
-
"name": "output",
|
|
40
|
-
"hasDynamicHelp": false,
|
|
41
|
-
"multiple": false,
|
|
42
|
-
"type": "option"
|
|
43
|
-
},
|
|
44
|
-
"verbose": {
|
|
45
|
-
"char": "v",
|
|
46
|
-
"description": "Show uncovered line numbers per file",
|
|
47
|
-
"name": "verbose",
|
|
48
|
-
"allowNo": false,
|
|
49
|
-
"type": "boolean"
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"hasDynamicHelp": false,
|
|
53
|
-
"hiddenAliases": [],
|
|
54
|
-
"id": "analyze",
|
|
55
|
-
"pluginAlias": "lacuna-cli",
|
|
56
|
-
"pluginName": "lacuna-cli",
|
|
57
|
-
"pluginType": "core",
|
|
58
|
-
"strict": true,
|
|
59
|
-
"enableJsonFlag": false,
|
|
60
|
-
"isESM": true,
|
|
61
|
-
"relativePath": [
|
|
62
|
-
"dist",
|
|
63
|
-
"commands",
|
|
64
|
-
"analyze.js"
|
|
65
|
-
]
|
|
66
|
-
},
|
|
67
|
-
"fix": {
|
|
68
|
-
"aliases": [],
|
|
69
|
-
"args": {},
|
|
70
|
-
"description": "Find and fix failing tests using AI — preserves existing tests, only repairs what is broken",
|
|
71
|
-
"examples": [
|
|
72
|
-
"$ lacuna fix",
|
|
73
|
-
"$ lacuna fix --workers 4",
|
|
74
|
-
"$ lacuna fix --file src/utils/math.test.ts",
|
|
75
|
-
"$ lacuna fix --dry-run"
|
|
76
|
-
],
|
|
77
|
-
"flags": {
|
|
78
|
-
"dry-run": {
|
|
79
|
-
"description": "Show what would be changed without writing files",
|
|
80
|
-
"name": "dry-run",
|
|
81
|
-
"allowNo": false,
|
|
82
|
-
"type": "boolean"
|
|
83
|
-
},
|
|
84
|
-
"file": {
|
|
85
|
-
"char": "f",
|
|
86
|
-
"description": "Target a specific test file instead of all failing tests",
|
|
87
|
-
"name": "file",
|
|
88
|
-
"hasDynamicHelp": false,
|
|
89
|
-
"multiple": false,
|
|
90
|
-
"type": "option"
|
|
91
|
-
},
|
|
92
|
-
"verbose": {
|
|
93
|
-
"char": "v",
|
|
94
|
-
"description": "Show model output and full test runner logs",
|
|
95
|
-
"name": "verbose",
|
|
96
|
-
"allowNo": false,
|
|
97
|
-
"type": "boolean"
|
|
98
|
-
},
|
|
99
|
-
"model": {
|
|
100
|
-
"char": "m",
|
|
101
|
-
"description": "Model to use (overrides .lacuna.json)",
|
|
102
|
-
"name": "model",
|
|
103
|
-
"hasDynamicHelp": false,
|
|
104
|
-
"multiple": false,
|
|
105
|
-
"type": "option"
|
|
106
|
-
},
|
|
107
|
-
"workers": {
|
|
108
|
-
"char": "w",
|
|
109
|
-
"description": "Number of parallel workers (each handles one file at a time)",
|
|
110
|
-
"name": "workers",
|
|
111
|
-
"default": 1,
|
|
112
|
-
"hasDynamicHelp": false,
|
|
113
|
-
"multiple": false,
|
|
114
|
-
"type": "option"
|
|
115
|
-
},
|
|
116
|
-
"fresh": {
|
|
117
|
-
"description": "Re-run the full test suite even if a recent failing-files cache exists",
|
|
118
|
-
"name": "fresh",
|
|
119
|
-
"allowNo": false,
|
|
120
|
-
"type": "boolean"
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
"hasDynamicHelp": false,
|
|
124
|
-
"hiddenAliases": [],
|
|
125
|
-
"id": "fix",
|
|
126
|
-
"pluginAlias": "lacuna-cli",
|
|
127
|
-
"pluginName": "lacuna-cli",
|
|
128
|
-
"pluginType": "core",
|
|
129
|
-
"strict": true,
|
|
130
|
-
"enableJsonFlag": false,
|
|
131
|
-
"isESM": true,
|
|
132
|
-
"relativePath": [
|
|
133
|
-
"dist",
|
|
134
|
-
"commands",
|
|
135
|
-
"fix.js"
|
|
136
|
-
]
|
|
137
|
-
},
|
|
138
|
-
"generate": {
|
|
139
|
-
"aliases": [],
|
|
140
|
-
"args": {},
|
|
141
|
-
"description": "Run the full agent loop: analyze gaps, generate tests, verify they pass",
|
|
142
|
-
"examples": [
|
|
143
|
-
"$ lacuna generate",
|
|
144
|
-
"$ lacuna generate --dry-run",
|
|
145
|
-
"$ lacuna generate --file src/utils/math.ts",
|
|
146
|
-
"$ lacuna generate --format json --output report.json"
|
|
147
|
-
],
|
|
148
|
-
"flags": {
|
|
149
|
-
"dry-run": {
|
|
150
|
-
"description": "Print what would be written without touching the filesystem",
|
|
151
|
-
"name": "dry-run",
|
|
152
|
-
"allowNo": false,
|
|
153
|
-
"type": "boolean"
|
|
154
|
-
},
|
|
155
|
-
"file": {
|
|
156
|
-
"char": "f",
|
|
157
|
-
"description": "Target a specific source file instead of the whole project",
|
|
158
|
-
"name": "file",
|
|
159
|
-
"hasDynamicHelp": false,
|
|
160
|
-
"multiple": false,
|
|
161
|
-
"type": "option"
|
|
162
|
-
},
|
|
163
|
-
"verbose": {
|
|
164
|
-
"char": "v",
|
|
165
|
-
"description": "Show model output and full test runner logs",
|
|
166
|
-
"name": "verbose",
|
|
167
|
-
"allowNo": false,
|
|
168
|
-
"type": "boolean"
|
|
169
|
-
},
|
|
170
|
-
"model": {
|
|
171
|
-
"char": "m",
|
|
172
|
-
"description": "Model to use (overrides .lacuna.json)",
|
|
173
|
-
"name": "model",
|
|
174
|
-
"hasDynamicHelp": false,
|
|
175
|
-
"multiple": false,
|
|
176
|
-
"type": "option"
|
|
177
|
-
},
|
|
178
|
-
"threshold": {
|
|
179
|
-
"char": "t",
|
|
180
|
-
"description": "Override coverage threshold",
|
|
181
|
-
"name": "threshold",
|
|
182
|
-
"hasDynamicHelp": false,
|
|
183
|
-
"multiple": false,
|
|
184
|
-
"type": "option"
|
|
185
|
-
},
|
|
186
|
-
"format": {
|
|
187
|
-
"char": "F",
|
|
188
|
-
"description": "Output format for the final report",
|
|
189
|
-
"name": "format",
|
|
190
|
-
"default": "terminal",
|
|
191
|
-
"hasDynamicHelp": false,
|
|
192
|
-
"multiple": false,
|
|
193
|
-
"options": [
|
|
194
|
-
"terminal",
|
|
195
|
-
"json",
|
|
196
|
-
"markdown"
|
|
197
|
-
],
|
|
198
|
-
"type": "option"
|
|
199
|
-
},
|
|
200
|
-
"output": {
|
|
201
|
-
"char": "o",
|
|
202
|
-
"description": "Write report to file instead of stdout",
|
|
203
|
-
"name": "output",
|
|
204
|
-
"hasDynamicHelp": false,
|
|
205
|
-
"multiple": false,
|
|
206
|
-
"type": "option"
|
|
207
|
-
},
|
|
208
|
-
"workers": {
|
|
209
|
-
"char": "w",
|
|
210
|
-
"description": "Number of parallel workers (each handles one file at a time)",
|
|
211
|
-
"name": "workers",
|
|
212
|
-
"default": 1,
|
|
213
|
-
"hasDynamicHelp": false,
|
|
214
|
-
"multiple": false,
|
|
215
|
-
"type": "option"
|
|
216
|
-
},
|
|
217
|
-
"fresh": {
|
|
218
|
-
"description": "Force a fresh coverage run even if a recent report already exists",
|
|
219
|
-
"name": "fresh",
|
|
220
|
-
"allowNo": false,
|
|
221
|
-
"type": "boolean"
|
|
222
|
-
}
|
|
223
|
-
},
|
|
224
|
-
"hasDynamicHelp": false,
|
|
225
|
-
"hiddenAliases": [],
|
|
226
|
-
"id": "generate",
|
|
227
|
-
"pluginAlias": "lacuna-cli",
|
|
228
|
-
"pluginName": "lacuna-cli",
|
|
229
|
-
"pluginType": "core",
|
|
230
|
-
"strict": true,
|
|
231
|
-
"enableJsonFlag": false,
|
|
232
|
-
"isESM": true,
|
|
233
|
-
"relativePath": [
|
|
234
|
-
"dist",
|
|
235
|
-
"commands",
|
|
236
|
-
"generate.js"
|
|
237
|
-
]
|
|
238
|
-
},
|
|
239
|
-
"init": {
|
|
240
|
-
"aliases": [],
|
|
241
|
-
"args": {},
|
|
242
|
-
"description": "Interactive setup wizard — configure lacuna for your project",
|
|
243
|
-
"examples": [
|
|
244
|
-
"$ lacuna init"
|
|
245
|
-
],
|
|
246
|
-
"flags": {},
|
|
247
|
-
"hasDynamicHelp": false,
|
|
248
|
-
"hiddenAliases": [],
|
|
249
|
-
"id": "init",
|
|
250
|
-
"pluginAlias": "lacuna-cli",
|
|
251
|
-
"pluginName": "lacuna-cli",
|
|
252
|
-
"pluginType": "core",
|
|
253
|
-
"strict": true,
|
|
254
|
-
"enableJsonFlag": false,
|
|
255
|
-
"isESM": true,
|
|
256
|
-
"relativePath": [
|
|
257
|
-
"dist",
|
|
258
|
-
"commands",
|
|
259
|
-
"init.js"
|
|
260
|
-
]
|
|
261
|
-
},
|
|
262
|
-
"run": {
|
|
263
|
-
"aliases": [],
|
|
264
|
-
"args": {},
|
|
265
|
-
"description": "Run the test suite and report coverage",
|
|
266
|
-
"examples": [
|
|
267
|
-
"$ lacuna run"
|
|
268
|
-
],
|
|
269
|
-
"flags": {
|
|
270
|
-
"verbose": {
|
|
271
|
-
"char": "v",
|
|
272
|
-
"description": "Show full test output",
|
|
273
|
-
"name": "verbose",
|
|
274
|
-
"allowNo": false,
|
|
275
|
-
"type": "boolean"
|
|
276
|
-
}
|
|
277
|
-
},
|
|
278
|
-
"hasDynamicHelp": false,
|
|
279
|
-
"hiddenAliases": [],
|
|
280
|
-
"id": "run",
|
|
281
|
-
"pluginAlias": "lacuna-cli",
|
|
282
|
-
"pluginName": "lacuna-cli",
|
|
283
|
-
"pluginType": "core",
|
|
284
|
-
"strict": true,
|
|
285
|
-
"enableJsonFlag": false,
|
|
286
|
-
"isESM": true,
|
|
287
|
-
"relativePath": [
|
|
288
|
-
"dist",
|
|
289
|
-
"commands",
|
|
290
|
-
"run.js"
|
|
291
|
-
]
|
|
292
|
-
}
|
|
293
|
-
},
|
|
294
|
-
"version": "0.1.4"
|
|
295
|
-
}
|