superacli 1.1.13 → 1.1.14
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/.agents/skills/humanenv-usage/SKILL.md +19 -0
- package/AGENTS.md +62 -0
- package/CONTRIBUTING.md +6 -2
- package/cli/plugin-install-guidance.js +25 -11
- package/cli/plugins-registry.js +25 -6
- package/cli/skills-catalog.js +85 -10
- package/coverage/clover.xml +1073 -965
- package/coverage/lcov-report/cli/adapter-schema.js.html +32 -32
- package/coverage/lcov-report/cli/adapters/builtin.js.html +1 -1
- package/coverage/lcov-report/cli/adapters/http.js.html +1 -1
- package/coverage/lcov-report/cli/adapters/index.html +1 -1
- package/coverage/lcov-report/cli/adapters/mcp.js.html +1 -1
- package/coverage/lcov-report/cli/adapters/openapi.js.html +1 -1
- package/coverage/lcov-report/cli/adapters/process.js.html +1 -1
- package/coverage/lcov-report/cli/adapters/shell.js.html +1 -1
- package/coverage/lcov-report/cli/ask.js.html +1 -1
- package/coverage/lcov-report/cli/config.js.html +109 -109
- package/coverage/lcov-report/cli/discover.js.html +1 -1
- package/coverage/lcov-report/cli/executor.js.html +1 -1
- package/coverage/lcov-report/cli/help-json.js.html +1 -1
- package/coverage/lcov-report/cli/index.html +92 -92
- package/coverage/lcov-report/cli/mcp-diagnostics.js.html +1 -1
- package/coverage/lcov-report/cli/mcp-discovery.js.html +1 -1
- package/coverage/lcov-report/cli/mcp-local.js.html +1 -1
- package/coverage/lcov-report/cli/mcp-stdio-jsonrpc.js.html +1 -1
- package/coverage/lcov-report/cli/namespace-passthrough.js.html +1 -1
- package/coverage/lcov-report/cli/plan-runtime.js.html +1 -1
- package/coverage/lcov-report/cli/planner.js.html +1 -1
- package/coverage/lcov-report/cli/plugin-install-guidance.js.html +919 -877
- package/coverage/lcov-report/cli/plugins-command.js.html +452 -452
- package/coverage/lcov-report/cli/plugins-learn.js.html +60 -60
- package/coverage/lcov-report/cli/plugins-manager.js.html +133 -133
- package/coverage/lcov-report/cli/plugins-registry.js.html +105 -48
- package/coverage/lcov-report/cli/plugins-store.js.html +106 -106
- package/coverage/lcov-report/cli/skills-catalog.js.html +366 -141
- package/coverage/lcov-report/cli/skills-mcp.js.html +1 -1
- package/coverage/lcov-report/cli/skills.js.html +1 -1
- package/coverage/lcov-report/index.html +19 -19
- package/coverage/lcov-report/server/app.js.html +1 -1
- package/coverage/lcov-report/server/index.html +1 -1
- package/coverage/lcov-report/server/routes/ask.js.html +1 -1
- package/coverage/lcov-report/server/routes/commands.js.html +1 -1
- package/coverage/lcov-report/server/routes/config.js.html +1 -1
- package/coverage/lcov-report/server/routes/index.html +1 -1
- package/coverage/lcov-report/server/routes/jobs.js.html +1 -1
- package/coverage/lcov-report/server/routes/mcp.js.html +1 -1
- package/coverage/lcov-report/server/routes/plans.js.html +1 -1
- package/coverage/lcov-report/server/routes/plugins.js.html +1 -1
- package/coverage/lcov-report/server/routes/specs.js.html +1 -1
- package/coverage/lcov-report/server/services/configService.js.html +1 -1
- package/coverage/lcov-report/server/services/index.html +1 -1
- package/coverage/lcov-report/server/services/pluginsService.js.html +1 -1
- package/coverage/lcov-report/server/storage/adapter.js.html +1 -1
- package/coverage/lcov-report/server/storage/file.js.html +1 -1
- package/coverage/lcov-report/server/storage/index.html +1 -1
- package/coverage/lcov-report/server/storage/mongo.js.html +1 -1
- package/coverage/lcov.info +1423 -1120
- package/package.json +1 -1
- package/plugins/beads/install-guidance.json +10 -0
- package/plugins/beads/meta.json +5 -0
- package/plugins/codedb/meta.json +5 -0
- package/plugins/codedb/plugin.json +169 -0
- package/plugins/codedb/skills/quickstart/SKILL.md +65 -0
- package/plugins/humanenv/.agents/skills/humanenv-sdk-python-usage/SKILL.md +37 -0
- package/plugins/humanenv/.agents/skills/humanenv-usage/SKILL.md +32 -0
- package/plugins/humanenv/plugin.json +65 -0
- package/plugins/humanenv/skills/quickstart/SKILL.md +95 -0
- package/plugins/mmx/install-guidance.json +10 -0
- package/plugins/mmx/meta.json +5 -0
- package/plugins/mmx/plugin.json +413 -0
- package/plugins/mmx/skills/quickstart/SKILL.md +234 -0
- package/plugins/plugins.json +21 -9
- package/plugins/rtk/README.md +63 -0
- package/plugins/rtk/plugin.json +79 -0
- package/plugins/rtk/skills/quickstart/SKILL.md +78 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">35.89% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>42/117</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/0</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">0% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/
|
|
42
|
+
<span class='fraction'>0/14</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">35.89% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>42/117</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -180,41 +180,26 @@
|
|
|
180
180
|
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
181
|
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
182
|
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a></td><td class="line-coverage quiet"><span class="cline-any cline-
|
|
184
|
-
<span class="cline-any cline-
|
|
185
|
-
<span class="cline-any cline-
|
|
186
|
-
<span class="cline-any cline-
|
|
187
|
-
<span class="cline-any cline-
|
|
188
|
-
<span class="cline-any cline-
|
|
189
|
-
<span class="cline-any cline-
|
|
190
|
-
<span class="cline-any cline-
|
|
191
|
-
<span class="cline-any cline-
|
|
192
|
-
<span class="cline-any cline-
|
|
193
|
-
<span class="cline-any cline-
|
|
194
|
-
<span class="cline-any cline-
|
|
195
|
-
<span class="cline-any cline-no"> </span>
|
|
196
|
-
<span class="cline-any cline-no"> </span>
|
|
197
|
-
<span class="cline-any cline-no"> </span>
|
|
198
|
-
<span class="cline-any cline-no"> </span>
|
|
199
|
-
<span class="cline-any cline-no"> </span>
|
|
200
|
-
<span class="cline-any cline-no"> </span>
|
|
201
|
-
<span class="cline-any cline-no"> </span>
|
|
202
|
-
<span class="cline-any cline-no"> </span>
|
|
203
|
-
<span class="cline-any cline-no"> </span>
|
|
204
|
-
<span class="cline-any cline-no"> </span>
|
|
205
|
-
<span class="cline-any cline-no"> </span>
|
|
206
|
-
<span class="cline-any cline-no"> </span>
|
|
207
|
-
<span class="cline-any cline-no"> </span>
|
|
208
|
-
<span class="cline-any cline-no"> </span>
|
|
209
|
-
<span class="cline-any cline-no"> </span>
|
|
210
|
-
<span class="cline-any cline-no"> </span>
|
|
211
|
-
<span class="cline-any cline-no"> </span>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
184
|
+
<span class="cline-any cline-yes">1x</span>
|
|
185
|
+
<span class="cline-any cline-yes">1x</span>
|
|
186
|
+
<span class="cline-any cline-yes">1x</span>
|
|
187
|
+
<span class="cline-any cline-yes">1x</span>
|
|
188
|
+
<span class="cline-any cline-yes">1x</span>
|
|
189
|
+
<span class="cline-any cline-yes">1x</span>
|
|
190
|
+
<span class="cline-any cline-yes">1x</span>
|
|
191
|
+
<span class="cline-any cline-yes">1x</span>
|
|
192
|
+
<span class="cline-any cline-yes">1x</span>
|
|
193
|
+
<span class="cline-any cline-yes">1x</span>
|
|
194
|
+
<span class="cline-any cline-yes">1x</span>
|
|
212
195
|
<span class="cline-any cline-no"> </span>
|
|
213
196
|
<span class="cline-any cline-no"> </span>
|
|
214
197
|
<span class="cline-any cline-no"> </span>
|
|
198
|
+
<span class="cline-any cline-yes">1x</span>
|
|
215
199
|
<span class="cline-any cline-no"> </span>
|
|
216
200
|
<span class="cline-any cline-no"> </span>
|
|
217
201
|
<span class="cline-any cline-no"> </span>
|
|
202
|
+
<span class="cline-any cline-yes">1x</span>
|
|
218
203
|
<span class="cline-any cline-no"> </span>
|
|
219
204
|
<span class="cline-any cline-no"> </span>
|
|
220
205
|
<span class="cline-any cline-no"> </span>
|
|
@@ -226,11 +211,13 @@
|
|
|
226
211
|
<span class="cline-any cline-no"> </span>
|
|
227
212
|
<span class="cline-any cline-no"> </span>
|
|
228
213
|
<span class="cline-any cline-no"> </span>
|
|
214
|
+
<span class="cline-any cline-yes">1x</span>
|
|
229
215
|
<span class="cline-any cline-no"> </span>
|
|
230
216
|
<span class="cline-any cline-no"> </span>
|
|
231
217
|
<span class="cline-any cline-no"> </span>
|
|
232
218
|
<span class="cline-any cline-no"> </span>
|
|
233
219
|
<span class="cline-any cline-no"> </span>
|
|
220
|
+
<span class="cline-any cline-yes">1x</span>
|
|
234
221
|
<span class="cline-any cline-no"> </span>
|
|
235
222
|
<span class="cline-any cline-no"> </span>
|
|
236
223
|
<span class="cline-any cline-no"> </span>
|
|
@@ -243,34 +230,43 @@
|
|
|
243
230
|
<span class="cline-any cline-no"> </span>
|
|
244
231
|
<span class="cline-any cline-no"> </span>
|
|
245
232
|
<span class="cline-any cline-no"> </span>
|
|
233
|
+
<span class="cline-any cline-yes">1x</span>
|
|
246
234
|
<span class="cline-any cline-no"> </span>
|
|
247
235
|
<span class="cline-any cline-no"> </span>
|
|
248
236
|
<span class="cline-any cline-no"> </span>
|
|
237
|
+
<span class="cline-any cline-yes">1x</span>
|
|
249
238
|
<span class="cline-any cline-no"> </span>
|
|
250
239
|
<span class="cline-any cline-no"> </span>
|
|
251
240
|
<span class="cline-any cline-no"> </span>
|
|
241
|
+
<span class="cline-any cline-yes">1x</span>
|
|
252
242
|
<span class="cline-any cline-no"> </span>
|
|
253
243
|
<span class="cline-any cline-no"> </span>
|
|
254
244
|
<span class="cline-any cline-no"> </span>
|
|
245
|
+
<span class="cline-any cline-yes">1x</span>
|
|
255
246
|
<span class="cline-any cline-no"> </span>
|
|
256
247
|
<span class="cline-any cline-no"> </span>
|
|
257
248
|
<span class="cline-any cline-no"> </span>
|
|
258
249
|
<span class="cline-any cline-no"> </span>
|
|
250
|
+
<span class="cline-any cline-yes">1x</span>
|
|
259
251
|
<span class="cline-any cline-no"> </span>
|
|
260
252
|
<span class="cline-any cline-no"> </span>
|
|
261
253
|
<span class="cline-any cline-no"> </span>
|
|
262
254
|
<span class="cline-any cline-no"> </span>
|
|
255
|
+
<span class="cline-any cline-yes">1x</span>
|
|
263
256
|
<span class="cline-any cline-no"> </span>
|
|
264
257
|
<span class="cline-any cline-no"> </span>
|
|
265
258
|
<span class="cline-any cline-no"> </span>
|
|
266
259
|
<span class="cline-any cline-no"> </span>
|
|
267
260
|
<span class="cline-any cline-no"> </span>
|
|
261
|
+
<span class="cline-any cline-yes">1x</span>
|
|
268
262
|
<span class="cline-any cline-no"> </span>
|
|
269
263
|
<span class="cline-any cline-no"> </span>
|
|
270
264
|
<span class="cline-any cline-no"> </span>
|
|
265
|
+
<span class="cline-any cline-yes">1x</span>
|
|
271
266
|
<span class="cline-any cline-no"> </span>
|
|
272
267
|
<span class="cline-any cline-no"> </span>
|
|
273
268
|
<span class="cline-any cline-no"> </span>
|
|
269
|
+
<span class="cline-any cline-yes">1x</span>
|
|
274
270
|
<span class="cline-any cline-no"> </span>
|
|
275
271
|
<span class="cline-any cline-no"> </span>
|
|
276
272
|
<span class="cline-any cline-no"> </span>
|
|
@@ -284,40 +280,44 @@
|
|
|
284
280
|
<span class="cline-any cline-no"> </span>
|
|
285
281
|
<span class="cline-any cline-no"> </span>
|
|
286
282
|
<span class="cline-any cline-no"> </span>
|
|
287
|
-
<span class="cline-any cline-
|
|
288
|
-
<span class="cline-any cline-
|
|
289
|
-
<span class="cline-any cline-
|
|
290
|
-
<span class="cline-any cline-
|
|
291
|
-
<span class="cline-any cline-
|
|
292
|
-
<span class="cline-any cline-
|
|
293
|
-
<span class="cline-any cline-
|
|
294
|
-
<span class="cline-any cline-
|
|
295
|
-
<span class="cline-any cline-
|
|
296
|
-
<span class="cline-any cline-
|
|
297
|
-
<span class="cline-any cline-
|
|
298
|
-
<span class="cline-any cline-
|
|
299
|
-
<span class="cline-any cline-
|
|
300
|
-
<span class="cline-any cline-
|
|
301
|
-
<span class="
|
|
302
|
-
<span class="
|
|
303
|
-
<span class="
|
|
304
|
-
<span class="
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
283
|
+
<span class="cline-any cline-yes">1x</span>
|
|
284
|
+
<span class="cline-any cline-yes">1x</span>
|
|
285
|
+
<span class="cline-any cline-yes">1x</span>
|
|
286
|
+
<span class="cline-any cline-yes">1x</span>
|
|
287
|
+
<span class="cline-any cline-yes">1x</span>
|
|
288
|
+
<span class="cline-any cline-yes">1x</span>
|
|
289
|
+
<span class="cline-any cline-yes">1x</span>
|
|
290
|
+
<span class="cline-any cline-yes">1x</span>
|
|
291
|
+
<span class="cline-any cline-yes">1x</span>
|
|
292
|
+
<span class="cline-any cline-yes">1x</span>
|
|
293
|
+
<span class="cline-any cline-yes">1x</span>
|
|
294
|
+
<span class="cline-any cline-yes">1x</span>
|
|
295
|
+
<span class="cline-any cline-yes">1x</span>
|
|
296
|
+
<span class="cline-any cline-yes">1x</span>
|
|
297
|
+
<span class="cline-any cline-yes">1x</span>
|
|
298
|
+
<span class="cline-any cline-yes">1x</span>
|
|
299
|
+
<span class="cline-any cline-yes">1x</span>
|
|
300
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const fs = require("fs")
|
|
301
|
+
const os = require("os")
|
|
302
|
+
const path = require("path")
|
|
303
|
+
|
|
304
|
+
const SUPERCLI_DIR = path.join(os.homedir(), ".supercli")
|
|
305
|
+
const SUPERCLI_PLUGINS_DIR = path.join(SUPERCLI_DIR, "plugins")
|
|
306
|
+
const SUPERCLI_LOCAL_LOCK_FILE = path.join(SUPERCLI_PLUGINS_DIR, "plugins.lock.json")
|
|
307
|
+
const SUPERCLI_SERVER_LOCK_FILE = path.join(SUPERCLI_PLUGINS_DIR, "server.lock.json")
|
|
308
|
+
|
|
309
|
+
const LEGACY_DCLI_DIR = path.join(os.homedir(), ".dcli")
|
|
310
|
+
const LEGACY_PLUGINS_FILE = path.join(LEGACY_DCLI_DIR, "plugins.lock.json")
|
|
311
|
+
|
|
312
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function ensurePluginsDir() {</span></span>
|
|
313
313
|
<span class="cstat-no" title="statement not covered" > if (!fs.existsSync(SUPERCLI_PLUGINS_DIR)) fs.mkdirSync(SUPERCLI_PLUGINS_DIR, { recursive: true })</span>
|
|
314
314
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
315
|
-
|
|
316
|
-
<span class="cstat-no" title="statement not covered" >function emptyLock() {</span>
|
|
315
|
+
|
|
316
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function emptyLock() {</span></span>
|
|
317
317
|
<span class="cstat-no" title="statement not covered" > return { version: 1, installed: {} }</span>
|
|
318
318
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
319
|
-
|
|
320
|
-
<span class="cstat-no" title="statement not covered" >function readLockFile(filePath) {</span>
|
|
319
|
+
|
|
320
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function readLockFile(filePath) {</span></span>
|
|
321
321
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
322
322
|
<span class="cstat-no" title="statement not covered" > if (!fs.existsSync(filePath)) return emptyLock()</span>
|
|
323
323
|
<span class="cstat-no" title="statement not covered" > const parsed = JSON.parse(fs.readFileSync(filePath, "utf-8"))</span>
|
|
@@ -328,14 +328,14 @@
|
|
|
328
328
|
<span class="cstat-no" title="statement not covered" > return emptyLock()</span>
|
|
329
329
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
330
330
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
331
|
-
|
|
332
|
-
<span class="cstat-no" title="statement not covered" >function writeLockFile(filePath, lock) {</span>
|
|
331
|
+
|
|
332
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function writeLockFile(filePath, lock) {</span></span>
|
|
333
333
|
<span class="cstat-no" title="statement not covered" > ensurePluginsDir()</span>
|
|
334
334
|
<span class="cstat-no" title="statement not covered" > fs.writeFileSync(filePath, JSON.stringify(lock, null, 2))</span>
|
|
335
335
|
<span class="cstat-no" title="statement not covered" > return lock</span>
|
|
336
336
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
337
|
-
|
|
338
|
-
<span class="cstat-no" title="statement not covered" >function readPluginsLock() {</span>
|
|
337
|
+
|
|
338
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function readPluginsLock() {</span></span>
|
|
339
339
|
<span class="cstat-no" title="statement not covered" > if (fs.existsSync(SUPERCLI_LOCAL_LOCK_FILE)) {</span>
|
|
340
340
|
<span class="cstat-no" title="statement not covered" > return readLockFile(SUPERCLI_LOCAL_LOCK_FILE)</span>
|
|
341
341
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
@@ -347,44 +347,44 @@
|
|
|
347
347
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
348
348
|
<span class="cstat-no" title="statement not covered" > return emptyLock()</span>
|
|
349
349
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
350
|
-
|
|
351
|
-
<span class="cstat-no" title="statement not covered" >function writePluginsLock(lock) {</span>
|
|
350
|
+
|
|
351
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function writePluginsLock(lock) {</span></span>
|
|
352
352
|
<span class="cstat-no" title="statement not covered" > return writeLockFile(SUPERCLI_LOCAL_LOCK_FILE, lock)</span>
|
|
353
353
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
354
|
-
|
|
355
|
-
<span class="cstat-no" title="statement not covered" >function readServerPluginsLock() {</span>
|
|
354
|
+
|
|
355
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function readServerPluginsLock() {</span></span>
|
|
356
356
|
<span class="cstat-no" title="statement not covered" > return readLockFile(SUPERCLI_SERVER_LOCK_FILE)</span>
|
|
357
357
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
358
|
-
|
|
359
|
-
<span class="cstat-no" title="statement not covered" >function writeServerPluginsLock(lock) {</span>
|
|
358
|
+
|
|
359
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function writeServerPluginsLock(lock) {</span></span>
|
|
360
360
|
<span class="cstat-no" title="statement not covered" > return writeLockFile(SUPERCLI_SERVER_LOCK_FILE, lock)</span>
|
|
361
361
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
362
|
-
|
|
363
|
-
<span class="cstat-no" title="statement not covered" >function listInstalledPlugins() {</span>
|
|
362
|
+
|
|
363
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function listInstalledPlugins() {</span></span>
|
|
364
364
|
<span class="cstat-no" title="statement not covered" > const lock = readPluginsLock()</span>
|
|
365
365
|
<span class="cstat-no" title="statement not covered" > return Object.values(lock.installed)</span>
|
|
366
366
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
367
|
-
|
|
368
|
-
<span class="cstat-no" title="statement not covered" >function listServerInstalledPlugins() {</span>
|
|
367
|
+
|
|
368
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function listServerInstalledPlugins() {</span></span>
|
|
369
369
|
<span class="cstat-no" title="statement not covered" > const lock = readServerPluginsLock()</span>
|
|
370
370
|
<span class="cstat-no" title="statement not covered" > return Object.values(lock.installed)</span>
|
|
371
371
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
372
|
-
|
|
373
|
-
<span class="cstat-no" title="statement not covered" >function pluginCommands(plugin) {</span>
|
|
372
|
+
|
|
373
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function pluginCommands(plugin) {</span></span>
|
|
374
374
|
<span class="cstat-no" title="statement not covered" > const commands = []</span>
|
|
375
375
|
<span class="cstat-no" title="statement not covered" > for (const cmd of (plugin.commands || [])) commands.push(cmd)</span>
|
|
376
376
|
<span class="cstat-no" title="statement not covered" > return commands</span>
|
|
377
377
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
378
|
-
|
|
379
|
-
<span class="cstat-no" title="statement not covered" >function getInstalledPluginCommands() {</span>
|
|
378
|
+
|
|
379
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function getInstalledPluginCommands() {</span></span>
|
|
380
380
|
<span class="cstat-no" title="statement not covered" > return listInstalledPlugins().flatMap(pluginCommands)</span>
|
|
381
381
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
382
|
-
|
|
383
|
-
<span class="cstat-no" title="statement not covered" >function getServerPluginCommands() {</span>
|
|
382
|
+
|
|
383
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function getServerPluginCommands() {</span></span>
|
|
384
384
|
<span class="cstat-no" title="statement not covered" > return listServerInstalledPlugins().flatMap(pluginCommands)</span>
|
|
385
385
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
386
|
-
|
|
387
|
-
<span class="cstat-no" title="statement not covered" >function getEffectivePluginCommands() {</span>
|
|
386
|
+
|
|
387
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >function getEffectivePluginCommands() {</span></span>
|
|
388
388
|
<span class="cstat-no" title="statement not covered" > const localPlugins = listInstalledPlugins()</span>
|
|
389
389
|
<span class="cstat-no" title="statement not covered" > const serverPlugins = listServerInstalledPlugins()</span>
|
|
390
390
|
<span class="cstat-no" title="statement not covered" > const localNames = new Set(localPlugins.map(p => p.name))</span>
|
|
@@ -397,23 +397,23 @@
|
|
|
397
397
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
398
398
|
<span class="cstat-no" title="statement not covered" > return commands</span>
|
|
399
399
|
<span class="cstat-no" title="statement not covered" >}</span>
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
400
|
+
|
|
401
|
+
module.exports = {
|
|
402
|
+
SUPERCLI_DIR,
|
|
403
|
+
SUPERCLI_PLUGINS_DIR,
|
|
404
|
+
SUPERCLI_LOCAL_LOCK_FILE,
|
|
405
|
+
SUPERCLI_SERVER_LOCK_FILE,
|
|
406
|
+
LEGACY_PLUGINS_FILE,
|
|
407
|
+
readPluginsLock,
|
|
408
|
+
writePluginsLock,
|
|
409
|
+
readServerPluginsLock,
|
|
410
|
+
writeServerPluginsLock,
|
|
411
|
+
listInstalledPlugins,
|
|
412
|
+
listServerInstalledPlugins,
|
|
413
|
+
getInstalledPluginCommands,
|
|
414
|
+
getServerPluginCommands,
|
|
415
|
+
getEffectivePluginCommands,
|
|
416
|
+
}
|
|
417
417
|
</pre></td></tr></table></pre>
|
|
418
418
|
|
|
419
419
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -421,7 +421,7 @@
|
|
|
421
421
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
422
422
|
Code coverage generated by
|
|
423
423
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
424
|
-
at 2026-
|
|
424
|
+
at 2026-04-10T17:55:25.401Z
|
|
425
425
|
</div>
|
|
426
426
|
<script src="../prettify.js"></script>
|
|
427
427
|
<script>
|