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">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>221/221</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">95.23% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>80/84</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>2/2</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>221/221</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -284,448 +284,448 @@
|
|
|
284
284
|
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
285
|
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
286
|
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a></td><td class="line-coverage quiet"><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="cline-any cline-
|
|
302
|
-
<span class="cline-any cline-
|
|
303
|
-
<span class="cline-any cline-
|
|
304
|
-
<span class="cline-any cline-
|
|
305
|
-
<span class="cline-any cline-
|
|
306
|
-
<span class="cline-any cline-
|
|
307
|
-
<span class="cline-any cline-
|
|
308
|
-
<span class="cline-any cline-
|
|
309
|
-
<span class="cline-any cline-
|
|
310
|
-
<span class="cline-any cline-
|
|
311
|
-
<span class="cline-any cline-
|
|
312
|
-
<span class="cline-any cline-
|
|
313
|
-
<span class="cline-any cline-
|
|
314
|
-
<span class="cline-any cline-
|
|
315
|
-
<span class="cline-any cline-
|
|
316
|
-
<span class="cline-any cline-
|
|
317
|
-
<span class="cline-any cline-
|
|
318
|
-
<span class="cline-any cline-
|
|
319
|
-
<span class="cline-any cline-
|
|
320
|
-
<span class="cline-any cline-
|
|
321
|
-
<span class="cline-any cline-
|
|
322
|
-
<span class="cline-any cline-
|
|
323
|
-
<span class="cline-any cline-
|
|
324
|
-
<span class="cline-any cline-
|
|
325
|
-
<span class="cline-any cline-
|
|
326
|
-
<span class="cline-any cline-
|
|
327
|
-
<span class="cline-any cline-
|
|
328
|
-
<span class="cline-any cline-
|
|
329
|
-
<span class="cline-any cline-
|
|
330
|
-
<span class="cline-any cline-
|
|
331
|
-
<span class="cline-any cline-
|
|
332
|
-
<span class="cline-any cline-
|
|
333
|
-
<span class="cline-any cline-
|
|
334
|
-
<span class="cline-any cline-
|
|
335
|
-
<span class="cline-any cline-
|
|
336
|
-
<span class="cline-any cline-
|
|
337
|
-
<span class="cline-any cline-
|
|
338
|
-
<span class="cline-any cline-
|
|
339
|
-
<span class="cline-any cline-
|
|
340
|
-
<span class="cline-any cline-
|
|
341
|
-
<span class="cline-any cline-
|
|
342
|
-
<span class="cline-any cline-
|
|
343
|
-
<span class="cline-any cline-
|
|
344
|
-
<span class="cline-any cline-
|
|
345
|
-
<span class="cline-any cline-
|
|
346
|
-
<span class="cline-any cline-
|
|
347
|
-
<span class="cline-any cline-
|
|
348
|
-
<span class="cline-any cline-
|
|
349
|
-
<span class="cline-any cline-
|
|
350
|
-
<span class="cline-any cline-
|
|
351
|
-
<span class="cline-any cline-
|
|
352
|
-
<span class="cline-any cline-
|
|
353
|
-
<span class="cline-any cline-
|
|
354
|
-
<span class="cline-any cline-
|
|
355
|
-
<span class="cline-any cline-
|
|
356
|
-
<span class="cline-any cline-
|
|
357
|
-
<span class="cline-any cline-
|
|
358
|
-
<span class="cline-any cline-
|
|
359
|
-
<span class="cline-any cline-
|
|
360
|
-
<span class="cline-any cline-
|
|
361
|
-
<span class="cline-any cline-
|
|
362
|
-
<span class="cline-any cline-
|
|
363
|
-
<span class="cline-any cline-
|
|
364
|
-
<span class="cline-any cline-
|
|
365
|
-
<span class="cline-any cline-
|
|
366
|
-
<span class="cline-any cline-
|
|
367
|
-
<span class="cline-any cline-
|
|
368
|
-
<span class="cline-any cline-
|
|
369
|
-
<span class="cline-any cline-
|
|
370
|
-
<span class="cline-any cline-
|
|
371
|
-
<span class="cline-any cline-
|
|
372
|
-
<span class="cline-any cline-
|
|
373
|
-
<span class="cline-any cline-
|
|
374
|
-
<span class="cline-any cline-
|
|
375
|
-
<span class="cline-any cline-
|
|
376
|
-
<span class="cline-any cline-
|
|
377
|
-
<span class="cline-any cline-
|
|
378
|
-
<span class="cline-any cline-
|
|
379
|
-
<span class="cline-any cline-
|
|
380
|
-
<span class="cline-any cline-
|
|
381
|
-
<span class="cline-any cline-
|
|
382
|
-
<span class="cline-any cline-
|
|
383
|
-
<span class="cline-any cline-
|
|
384
|
-
<span class="cline-any cline-
|
|
385
|
-
<span class="cline-any cline-
|
|
386
|
-
<span class="cline-any cline-
|
|
387
|
-
<span class="cline-any cline-
|
|
388
|
-
<span class="cline-any cline-
|
|
389
|
-
<span class="cline-any cline-
|
|
390
|
-
<span class="cline-any cline-
|
|
391
|
-
<span class="cline-any cline-
|
|
392
|
-
<span class="cline-any cline-
|
|
393
|
-
<span class="cline-any cline-
|
|
394
|
-
<span class="cline-any cline-
|
|
395
|
-
<span class="cline-any cline-
|
|
396
|
-
<span class="cline-any cline-
|
|
397
|
-
<span class="cline-any cline-
|
|
398
|
-
<span class="cline-any cline-
|
|
399
|
-
<span class="cline-any cline-
|
|
400
|
-
<span class="cline-any cline-
|
|
401
|
-
<span class="cline-any cline-
|
|
402
|
-
<span class="cline-any cline-
|
|
403
|
-
<span class="cline-any cline-
|
|
404
|
-
<span class="cline-any cline-
|
|
405
|
-
<span class="cline-any cline-
|
|
406
|
-
<span class="cline-any cline-
|
|
407
|
-
<span class="cline-any cline-
|
|
408
|
-
<span class="cline-any cline-
|
|
409
|
-
<span class="cline-any cline-
|
|
410
|
-
<span class="cline-any cline-
|
|
411
|
-
<span class="cline-any cline-
|
|
412
|
-
<span class="cline-any cline-
|
|
413
|
-
<span class="cline-any cline-
|
|
414
|
-
<span class="cline-any cline-
|
|
415
|
-
<span class="cline-any cline-
|
|
416
|
-
<span class="cline-any cline-
|
|
417
|
-
<span class="cline-any cline-
|
|
418
|
-
<span class="cline-any cline-
|
|
419
|
-
<span class="cline-any cline-
|
|
420
|
-
<span class="cline-any cline-
|
|
421
|
-
<span class="cline-any cline-
|
|
422
|
-
<span class="cline-any cline-
|
|
423
|
-
<span class="cline-any cline-
|
|
424
|
-
<span class="cline-any cline-
|
|
425
|
-
<span class="cline-any cline-
|
|
426
|
-
<span class="cline-any cline-
|
|
427
|
-
<span class="cline-any cline-
|
|
428
|
-
<span class="cline-any cline-
|
|
429
|
-
<span class="cline-any cline-
|
|
430
|
-
<span class="cline-any cline-
|
|
431
|
-
<span class="cline-any cline-
|
|
432
|
-
<span class="cline-any cline-
|
|
433
|
-
<span class="cline-any cline-
|
|
434
|
-
<span class="cline-any cline-
|
|
435
|
-
<span class="cline-any cline-
|
|
436
|
-
<span class="cline-any cline-
|
|
437
|
-
<span class="cline-any cline-
|
|
438
|
-
<span class="cline-any cline-
|
|
439
|
-
<span class="cline-any cline-
|
|
440
|
-
<span class="cline-any cline-
|
|
441
|
-
<span class="cline-any cline-
|
|
442
|
-
<span class="cline-any cline-
|
|
443
|
-
<span class="cline-any cline-
|
|
444
|
-
<span class="cline-any cline-
|
|
445
|
-
<span class="cline-any cline-
|
|
446
|
-
<span class="cline-any cline-
|
|
447
|
-
<span class="cline-any cline-
|
|
448
|
-
<span class="cline-any cline-
|
|
449
|
-
<span class="cline-any cline-
|
|
450
|
-
<span class="cline-any cline-
|
|
451
|
-
<span class="cline-any cline-
|
|
452
|
-
<span class="cline-any cline-
|
|
453
|
-
<span class="cline-any cline-
|
|
454
|
-
<span class="cline-any cline-
|
|
455
|
-
<span class="cline-any cline-
|
|
456
|
-
<span class="cline-any cline-
|
|
457
|
-
<span class="cline-any cline-
|
|
458
|
-
<span class="cline-any cline-
|
|
459
|
-
<span class="cline-any cline-
|
|
460
|
-
<span class="cline-any cline-
|
|
461
|
-
<span class="cline-any cline-
|
|
462
|
-
<span class="cline-any cline-
|
|
463
|
-
<span class="cline-any cline-
|
|
464
|
-
<span class="cline-any cline-
|
|
465
|
-
<span class="cline-any cline-
|
|
466
|
-
<span class="cline-any cline-
|
|
467
|
-
<span class="cline-any cline-
|
|
468
|
-
<span class="cline-any cline-
|
|
469
|
-
<span class="cline-any cline-
|
|
470
|
-
<span class="cline-any cline-
|
|
471
|
-
<span class="cline-any cline-
|
|
472
|
-
<span class="cline-any cline-
|
|
473
|
-
<span class="cline-any cline-
|
|
474
|
-
<span class="cline-any cline-
|
|
475
|
-
<span class="cline-any cline-
|
|
476
|
-
<span class="cline-any cline-
|
|
477
|
-
<span class="cline-any cline-
|
|
478
|
-
<span class="cline-any cline-
|
|
479
|
-
<span class="cline-any cline-
|
|
480
|
-
<span class="cline-any cline-
|
|
481
|
-
<span class="cline-any cline-
|
|
482
|
-
<span class="cline-any cline-
|
|
483
|
-
<span class="cline-any cline-
|
|
484
|
-
<span class="cline-any cline-
|
|
485
|
-
<span class="cline-any cline-
|
|
486
|
-
<span class="cline-any cline-
|
|
487
|
-
<span class="cline-any cline-
|
|
488
|
-
<span class="cline-any cline-
|
|
489
|
-
<span class="cline-any cline-
|
|
490
|
-
<span class="cline-any cline-
|
|
491
|
-
<span class="cline-any cline-
|
|
492
|
-
<span class="cline-any cline-
|
|
493
|
-
<span class="cline-any cline-
|
|
494
|
-
<span class="cline-any cline-
|
|
495
|
-
<span class="cline-any cline-
|
|
496
|
-
<span class="cline-any cline-
|
|
497
|
-
<span class="cline-any cline-
|
|
498
|
-
<span class="cline-any cline-
|
|
499
|
-
<span class="cline-any cline-
|
|
500
|
-
<span class="cline-any cline-
|
|
501
|
-
<span class="cline-any cline-
|
|
502
|
-
<span class="cline-any cline-
|
|
503
|
-
<span class="cline-any cline-
|
|
504
|
-
<span class="cline-any cline-
|
|
505
|
-
<span class="cline-any cline-
|
|
506
|
-
<span class="cline-any cline-
|
|
507
|
-
<span class="cline-any cline-
|
|
508
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
<span class="
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
<span class="
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
<span class="
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a></td><td class="line-coverage quiet"><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-yes">22x</span>
|
|
301
|
+
<span class="cline-any cline-yes">22x</span>
|
|
302
|
+
<span class="cline-any cline-yes">22x</span>
|
|
303
|
+
<span class="cline-any cline-yes">22x</span>
|
|
304
|
+
<span class="cline-any cline-yes">22x</span>
|
|
305
|
+
<span class="cline-any cline-yes">11x</span>
|
|
306
|
+
<span class="cline-any cline-yes">3x</span>
|
|
307
|
+
<span class="cline-any cline-yes">11x</span>
|
|
308
|
+
<span class="cline-any cline-yes">11x</span>
|
|
309
|
+
<span class="cline-any cline-yes">1x</span>
|
|
310
|
+
<span class="cline-any cline-yes">1x</span>
|
|
311
|
+
<span class="cline-any cline-yes">1x</span>
|
|
312
|
+
<span class="cline-any cline-yes">1x</span>
|
|
313
|
+
<span class="cline-any cline-yes">1x</span>
|
|
314
|
+
<span class="cline-any cline-yes">1x</span>
|
|
315
|
+
<span class="cline-any cline-yes">1x</span>
|
|
316
|
+
<span class="cline-any cline-yes">1x</span>
|
|
317
|
+
<span class="cline-any cline-yes">22x</span>
|
|
318
|
+
<span class="cline-any cline-yes">22x</span>
|
|
319
|
+
<span class="cline-any cline-yes">2x</span>
|
|
320
|
+
<span class="cline-any cline-yes">1x</span>
|
|
321
|
+
<span class="cline-any cline-yes">1x</span>
|
|
322
|
+
<span class="cline-any cline-yes">1x</span>
|
|
323
|
+
<span class="cline-any cline-yes">1x</span>
|
|
324
|
+
<span class="cline-any cline-yes">2x</span>
|
|
325
|
+
<span class="cline-any cline-yes">2x</span>
|
|
326
|
+
<span class="cline-any cline-yes">1x</span>
|
|
327
|
+
<span class="cline-any cline-yes">1x</span>
|
|
328
|
+
<span class="cline-any cline-yes">1x</span>
|
|
329
|
+
<span class="cline-any cline-yes">1x</span>
|
|
330
|
+
<span class="cline-any cline-yes">1x</span>
|
|
331
|
+
<span class="cline-any cline-yes">1x</span>
|
|
332
|
+
<span class="cline-any cline-yes">1x</span>
|
|
333
|
+
<span class="cline-any cline-yes">1x</span>
|
|
334
|
+
<span class="cline-any cline-yes">1x</span>
|
|
335
|
+
<span class="cline-any cline-yes">1x</span>
|
|
336
|
+
<span class="cline-any cline-yes">1x</span>
|
|
337
|
+
<span class="cline-any cline-yes">2x</span>
|
|
338
|
+
<span class="cline-any cline-yes">2x</span>
|
|
339
|
+
<span class="cline-any cline-yes">20x</span>
|
|
340
|
+
<span class="cline-any cline-yes">22x</span>
|
|
341
|
+
<span class="cline-any cline-yes">3x</span>
|
|
342
|
+
<span class="cline-any cline-yes">3x</span>
|
|
343
|
+
<span class="cline-any cline-yes">3x</span>
|
|
344
|
+
<span class="cline-any cline-yes">3x</span>
|
|
345
|
+
<span class="cline-any cline-yes">3x</span>
|
|
346
|
+
<span class="cline-any cline-yes">3x</span>
|
|
347
|
+
<span class="cline-any cline-yes">1x</span>
|
|
348
|
+
<span class="cline-any cline-yes">1x</span>
|
|
349
|
+
<span class="cline-any cline-yes">1x</span>
|
|
350
|
+
<span class="cline-any cline-yes">1x</span>
|
|
351
|
+
<span class="cline-any cline-yes">1x</span>
|
|
352
|
+
<span class="cline-any cline-yes">1x</span>
|
|
353
|
+
<span class="cline-any cline-yes">1x</span>
|
|
354
|
+
<span class="cline-any cline-yes">1x</span>
|
|
355
|
+
<span class="cline-any cline-yes">2x</span>
|
|
356
|
+
<span class="cline-any cline-yes">3x</span>
|
|
357
|
+
<span class="cline-any cline-yes">3x</span>
|
|
358
|
+
<span class="cline-any cline-yes">3x</span>
|
|
359
|
+
<span class="cline-any cline-yes">3x</span>
|
|
360
|
+
<span class="cline-any cline-yes">3x</span>
|
|
361
|
+
<span class="cline-any cline-yes">3x</span>
|
|
362
|
+
<span class="cline-any cline-yes">3x</span>
|
|
363
|
+
<span class="cline-any cline-yes">3x</span>
|
|
364
|
+
<span class="cline-any cline-yes">3x</span>
|
|
365
|
+
<span class="cline-any cline-yes">3x</span>
|
|
366
|
+
<span class="cline-any cline-yes">3x</span>
|
|
367
|
+
<span class="cline-any cline-yes">17x</span>
|
|
368
|
+
<span class="cline-any cline-yes">22x</span>
|
|
369
|
+
<span class="cline-any cline-yes">6x</span>
|
|
370
|
+
<span class="cline-any cline-yes">6x</span>
|
|
371
|
+
<span class="cline-any cline-yes">6x</span>
|
|
372
|
+
<span class="cline-any cline-yes">6x</span>
|
|
373
|
+
<span class="cline-any cline-yes">6x</span>
|
|
374
|
+
<span class="cline-any cline-yes">6x</span>
|
|
375
|
+
<span class="cline-any cline-yes">6x</span>
|
|
376
|
+
<span class="cline-any cline-yes">5x</span>
|
|
377
|
+
<span class="cline-any cline-yes">5x</span>
|
|
378
|
+
<span class="cline-any cline-yes">6x</span>
|
|
379
|
+
<span class="cline-any cline-yes">5x</span>
|
|
380
|
+
<span class="cline-any cline-yes">6x</span>
|
|
381
|
+
<span class="cline-any cline-yes">6x</span>
|
|
382
|
+
<span class="cline-any cline-yes">1x</span>
|
|
383
|
+
<span class="cline-any cline-yes">1x</span>
|
|
384
|
+
<span class="cline-any cline-yes">1x</span>
|
|
385
|
+
<span class="cline-any cline-yes">1x</span>
|
|
386
|
+
<span class="cline-any cline-yes">1x</span>
|
|
387
|
+
<span class="cline-any cline-yes">1x</span>
|
|
388
|
+
<span class="cline-any cline-yes">1x</span>
|
|
389
|
+
<span class="cline-any cline-yes">1x</span>
|
|
390
|
+
<span class="cline-any cline-yes">4x</span>
|
|
391
|
+
<span class="cline-any cline-yes">6x</span>
|
|
392
|
+
<span class="cline-any cline-yes">6x</span>
|
|
393
|
+
<span class="cline-any cline-yes">1x</span>
|
|
394
|
+
<span class="cline-any cline-yes">1x</span>
|
|
395
|
+
<span class="cline-any cline-yes">1x</span>
|
|
396
|
+
<span class="cline-any cline-yes">1x</span>
|
|
397
|
+
<span class="cline-any cline-yes">1x</span>
|
|
398
|
+
<span class="cline-any cline-yes">1x</span>
|
|
399
|
+
<span class="cline-any cline-yes">1x</span>
|
|
400
|
+
<span class="cline-any cline-yes">1x</span>
|
|
401
|
+
<span class="cline-any cline-yes">3x</span>
|
|
402
|
+
<span class="cline-any cline-yes">3x</span>
|
|
403
|
+
<span class="cline-any cline-yes">3x</span>
|
|
404
|
+
<span class="cline-any cline-yes">3x</span>
|
|
405
|
+
<span class="cline-any cline-yes">4x</span>
|
|
406
|
+
<span class="cline-any cline-yes">4x</span>
|
|
407
|
+
<span class="cline-any cline-yes">4x</span>
|
|
408
|
+
<span class="cline-any cline-yes">4x</span>
|
|
409
|
+
<span class="cline-any cline-yes">4x</span>
|
|
410
|
+
<span class="cline-any cline-yes">4x</span>
|
|
411
|
+
<span class="cline-any cline-yes">4x</span>
|
|
412
|
+
<span class="cline-any cline-yes">3x</span>
|
|
413
|
+
<span class="cline-any cline-yes">3x</span>
|
|
414
|
+
<span class="cline-any cline-yes">6x</span>
|
|
415
|
+
<span class="cline-any cline-yes">1x</span>
|
|
416
|
+
<span class="cline-any cline-yes">1x</span>
|
|
417
|
+
<span class="cline-any cline-yes">6x</span>
|
|
418
|
+
<span class="cline-any cline-yes">1x</span>
|
|
419
|
+
<span class="cline-any cline-yes">1x</span>
|
|
420
|
+
<span class="cline-any cline-yes">6x</span>
|
|
421
|
+
<span class="cline-any cline-yes">1x</span>
|
|
422
|
+
<span class="cline-any cline-yes">1x</span>
|
|
423
|
+
<span class="cline-any cline-yes">3x</span>
|
|
424
|
+
<span class="cline-any cline-yes">3x</span>
|
|
425
|
+
<span class="cline-any cline-yes">6x</span>
|
|
426
|
+
<span class="cline-any cline-yes">3x</span>
|
|
427
|
+
<span class="cline-any cline-yes">6x</span>
|
|
428
|
+
<span class="cline-any cline-yes">1x</span>
|
|
429
|
+
<span class="cline-any cline-yes">1x</span>
|
|
430
|
+
<span class="cline-any cline-yes">1x</span>
|
|
431
|
+
<span class="cline-any cline-yes">1x</span>
|
|
432
|
+
<span class="cline-any cline-yes">1x</span>
|
|
433
|
+
<span class="cline-any cline-yes">1x</span>
|
|
434
|
+
<span class="cline-any cline-yes">1x</span>
|
|
435
|
+
<span class="cline-any cline-yes">1x</span>
|
|
436
|
+
<span class="cline-any cline-yes">1x</span>
|
|
437
|
+
<span class="cline-any cline-yes">1x</span>
|
|
438
|
+
<span class="cline-any cline-yes">6x</span>
|
|
439
|
+
<span class="cline-any cline-yes">2x</span>
|
|
440
|
+
<span class="cline-any cline-yes">2x</span>
|
|
441
|
+
<span class="cline-any cline-yes">2x</span>
|
|
442
|
+
<span class="cline-any cline-yes">2x</span>
|
|
443
|
+
<span class="cline-any cline-yes">2x</span>
|
|
444
|
+
<span class="cline-any cline-yes">2x</span>
|
|
445
|
+
<span class="cline-any cline-yes">2x</span>
|
|
446
|
+
<span class="cline-any cline-yes">2x</span>
|
|
447
|
+
<span class="cline-any cline-yes">2x</span>
|
|
448
|
+
<span class="cline-any cline-yes">2x</span>
|
|
449
|
+
<span class="cline-any cline-yes">2x</span>
|
|
450
|
+
<span class="cline-any cline-yes">2x</span>
|
|
451
|
+
<span class="cline-any cline-yes">2x</span>
|
|
452
|
+
<span class="cline-any cline-yes">2x</span>
|
|
453
|
+
<span class="cline-any cline-yes">3x</span>
|
|
454
|
+
<span class="cline-any cline-yes">3x</span>
|
|
455
|
+
<span class="cline-any cline-yes">11x</span>
|
|
456
|
+
<span class="cline-any cline-yes">22x</span>
|
|
457
|
+
<span class="cline-any cline-yes">2x</span>
|
|
458
|
+
<span class="cline-any cline-yes">2x</span>
|
|
459
|
+
<span class="cline-any cline-yes">1x</span>
|
|
460
|
+
<span class="cline-any cline-yes">1x</span>
|
|
461
|
+
<span class="cline-any cline-yes">1x</span>
|
|
462
|
+
<span class="cline-any cline-yes">1x</span>
|
|
463
|
+
<span class="cline-any cline-yes">1x</span>
|
|
464
|
+
<span class="cline-any cline-yes">1x</span>
|
|
465
|
+
<span class="cline-any cline-yes">9x</span>
|
|
466
|
+
<span class="cline-any cline-yes">22x</span>
|
|
467
|
+
<span class="cline-any cline-yes">3x</span>
|
|
468
|
+
<span class="cline-any cline-yes">3x</span>
|
|
469
|
+
<span class="cline-any cline-yes">1x</span>
|
|
470
|
+
<span class="cline-any cline-yes">1x</span>
|
|
471
|
+
<span class="cline-any cline-yes">1x</span>
|
|
472
|
+
<span class="cline-any cline-yes">2x</span>
|
|
473
|
+
<span class="cline-any cline-yes">3x</span>
|
|
474
|
+
<span class="cline-any cline-yes">1x</span>
|
|
475
|
+
<span class="cline-any cline-yes">1x</span>
|
|
476
|
+
<span class="cline-any cline-yes">1x</span>
|
|
477
|
+
<span class="cline-any cline-yes">1x</span>
|
|
478
|
+
<span class="cline-any cline-yes">1x</span>
|
|
479
|
+
<span class="cline-any cline-yes">1x</span>
|
|
480
|
+
<span class="cline-any cline-yes">6x</span>
|
|
481
|
+
<span class="cline-any cline-yes">22x</span>
|
|
482
|
+
<span class="cline-any cline-yes">2x</span>
|
|
483
|
+
<span class="cline-any cline-yes">2x</span>
|
|
484
|
+
<span class="cline-any cline-yes">2x</span>
|
|
485
|
+
<span class="cline-any cline-yes">2x</span>
|
|
486
|
+
<span class="cline-any cline-yes">2x</span>
|
|
487
|
+
<span class="cline-any cline-yes">4x</span>
|
|
488
|
+
<span class="cline-any cline-yes">22x</span>
|
|
489
|
+
<span class="cline-any cline-yes">3x</span>
|
|
490
|
+
<span class="cline-any cline-yes">3x</span>
|
|
491
|
+
<span class="cline-any cline-yes">1x</span>
|
|
492
|
+
<span class="cline-any cline-yes">1x</span>
|
|
493
|
+
<span class="cline-any cline-yes">1x</span>
|
|
494
|
+
<span class="cline-any cline-yes">2x</span>
|
|
495
|
+
<span class="cline-any cline-yes">3x</span>
|
|
496
|
+
<span class="cline-any cline-yes">1x</span>
|
|
497
|
+
<span class="cline-any cline-yes">1x</span>
|
|
498
|
+
<span class="cline-any cline-yes">1x</span>
|
|
499
|
+
<span class="cline-any cline-yes">1x</span>
|
|
500
|
+
<span class="cline-any cline-yes">2x</span>
|
|
501
|
+
<span class="cline-any cline-yes">2x</span>
|
|
502
|
+
<span class="cline-any cline-yes">1x</span>
|
|
503
|
+
<span class="cline-any cline-yes">1x</span>
|
|
504
|
+
<span class="cline-any cline-yes">1x</span>
|
|
505
|
+
<span class="cline-any cline-yes">1x</span>
|
|
506
|
+
<span class="cline-any cline-yes">1x</span>
|
|
507
|
+
<span class="cline-any cline-yes">1x</span>
|
|
508
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
509
|
+
installPlugin,
|
|
510
|
+
removePlugin,
|
|
511
|
+
getPlugin,
|
|
512
|
+
listInstalledPlugins,
|
|
513
|
+
getPluginInstallGuidance,
|
|
514
|
+
doctorPlugin,
|
|
515
|
+
doctorAllPlugins
|
|
516
|
+
} = require("./plugins-manager")
|
|
517
|
+
const { listRegistryPlugins } = require("./plugins-registry")
|
|
518
|
+
const { loadConfig } = require("./config")
|
|
519
|
+
const { getPluginLearn } = require("./plugins-learn")
|
|
520
|
+
|
|
521
|
+
async function handlePluginsCommand(options) {
|
|
522
|
+
const { positional, flags, humanMode, output, outputHumanTable, outputError } = options
|
|
523
|
+
const subcommand = positional[1]
|
|
524
|
+
|
|
525
|
+
function parseBooleanFlag(name, value) {
|
|
526
|
+
if (value === undefined) return null
|
|
527
|
+
const raw = String(value).trim().toLowerCase()
|
|
528
|
+
if (raw === "true") return true
|
|
529
|
+
if (raw === "false") return false
|
|
530
|
+
outputError({
|
|
531
|
+
code: 85,
|
|
532
|
+
type: "invalid_argument",
|
|
533
|
+
message: `Invalid --${name}. Use true or false`,
|
|
534
|
+
recoverable: false
|
|
535
|
+
})
|
|
536
|
+
return null
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
if (subcommand === "list") {
|
|
540
|
+
const plugins = listInstalledPlugins().map(p => ({
|
|
541
|
+
name: p.name,
|
|
542
|
+
version: p.version,
|
|
543
|
+
commands: (p.commands<span class="branch-0 cbranch-no" title="branch not covered" > || [])</span>.length,
|
|
544
|
+
description: p.description || ""
|
|
545
|
+
}))
|
|
546
|
+
if (humanMode) {
|
|
547
|
+
console.log("\n ⚡ Plugins\n")
|
|
548
|
+
outputHumanTable(plugins, [
|
|
549
|
+
{ key: "name", label: "Name" },
|
|
550
|
+
{ key: "version", label: "Version" },
|
|
551
|
+
{ key: "commands", label: "Commands" },
|
|
552
|
+
{ key: "description", label: "Description" }
|
|
553
|
+
])
|
|
554
|
+
console.log("")
|
|
555
|
+
} else {
|
|
556
|
+
output({ plugins })
|
|
557
|
+
}
|
|
558
|
+
return true
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
if (subcommand === "install") {
|
|
562
|
+
const ref = positional[2]
|
|
563
|
+
const gitRepo = flags.git
|
|
564
|
+
const manifestPath = flags["manifest-path"]
|
|
565
|
+
const gitRef = flags.ref
|
|
566
|
+
|
|
567
|
+
if (!ref && !gitRepo) {
|
|
568
|
+
outputError({
|
|
569
|
+
code: 85,
|
|
570
|
+
type: "invalid_argument",
|
|
571
|
+
message: "Usage: dcli plugins install <name|path> [--on-conflict fail|skip|replace] OR dcli plugins install --git <repo> --manifest-path <path> [--ref <ref>]",
|
|
572
|
+
recoverable: false
|
|
573
|
+
})
|
|
574
|
+
return true
|
|
575
|
+
}
|
|
576
|
+
const config = await loadConfig()
|
|
577
|
+
const result = installPlugin(ref || "(git)", {
|
|
578
|
+
onConflict: flags["on-conflict"] || "fail",
|
|
579
|
+
currentCommands: config.commands<span class="branch-0 cbranch-no" title="branch not covered" > || [],</span>
|
|
580
|
+
git: gitRepo,
|
|
581
|
+
manifestPath,
|
|
582
|
+
ref: gitRef
|
|
583
|
+
})
|
|
584
|
+
const guidance = getPluginInstallGuidance(result.plugin)
|
|
585
|
+
output({ ok: true, ...result, install_guidance: guidance })
|
|
586
|
+
return true
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
if (subcommand === "explore") {
|
|
590
|
+
const tags = String(flags.tags || "")
|
|
591
|
+
.split(",")
|
|
592
|
+
.map(t => t.trim())
|
|
593
|
+
.filter(Boolean)
|
|
594
|
+
const name = flags.name ? String(flags.name).trim() : ""
|
|
595
|
+
const hasLearnFilter = parseBooleanFlag("has-learn", flags["has-learn"])
|
|
596
|
+
if (flags["has-learn"] !== undefined && hasLearnFilter === null) return true
|
|
597
|
+
|
|
598
|
+
const installedFilter = parseBooleanFlag("installed", flags.installed)
|
|
599
|
+
if (flags.installed !== undefined && installedFilter === null) <span class="branch-0 cbranch-no" title="branch not covered" >return true</span>
|
|
600
|
+
|
|
601
|
+
const sourceFilter = flags.source ? String(flags.source).trim().toLowerCase() : null
|
|
602
|
+
if (sourceFilter && !["bundled", "git"].includes(sourceFilter)) {
|
|
603
|
+
outputError({
|
|
604
|
+
code: 85,
|
|
605
|
+
type: "invalid_argument",
|
|
606
|
+
message: "Invalid --source. Use bundled or git",
|
|
607
|
+
recoverable: false
|
|
608
|
+
})
|
|
609
|
+
return true
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
const limit = flags.limit === undefined ? null : Number(flags.limit)
|
|
613
|
+
if (flags.limit !== undefined && (!Number.isFinite(limit) || limit <= 0 || !Number.isInteger(limit))) {
|
|
614
|
+
outputError({
|
|
615
|
+
code: 85,
|
|
616
|
+
type: "invalid_argument",
|
|
617
|
+
message: "Invalid --limit. Use a positive integer",
|
|
618
|
+
recoverable: false
|
|
619
|
+
})
|
|
620
|
+
return true
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
const installedSet = new Set(listInstalledPlugins().map(p => p.name))
|
|
624
|
+
|
|
625
|
+
let plugins = listRegistryPlugins({ name, tags }).map(p => ({
|
|
626
|
+
name: p.name,
|
|
627
|
+
description: p.description,
|
|
628
|
+
tags: p.tags,
|
|
629
|
+
has_learn: p.has_learn === true,
|
|
630
|
+
installed: installedSet.has(p.name),
|
|
631
|
+
source_type: (p.source && p.source.type) || "bundled",
|
|
632
|
+
source_repo: p.source && p.source.repo<span class="branch-0 cbranch-no" title="branch not covered" > ? p.source.repo </span>: ""
|
|
633
|
+
}))
|
|
634
|
+
|
|
635
|
+
if (hasLearnFilter !== null) {
|
|
636
|
+
plugins = plugins.filter(p => p.has_learn === hasLearnFilter)
|
|
637
|
+
}
|
|
638
|
+
if (installedFilter !== null) {
|
|
639
|
+
plugins = plugins.filter(p => p.installed === installedFilter)
|
|
640
|
+
}
|
|
641
|
+
if (sourceFilter) {
|
|
642
|
+
plugins = plugins.filter(p => p.source_type === sourceFilter)
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
const total = plugins.length
|
|
646
|
+
if (limit !== null) plugins = plugins.slice(0, limit)
|
|
647
|
+
|
|
648
|
+
if (humanMode) {
|
|
649
|
+
console.log("\n ⚡ Plugin Registry\n")
|
|
650
|
+
outputHumanTable(plugins, [
|
|
651
|
+
{ key: "name", label: "Name" },
|
|
652
|
+
{ key: "installed", label: "Installed" },
|
|
653
|
+
{ key: "has_learn", label: "Learn" },
|
|
654
|
+
{ key: "source_type", label: "Source" },
|
|
655
|
+
{ key: "tags", label: "Tags" },
|
|
656
|
+
{ key: "description", label: "Description" }
|
|
657
|
+
])
|
|
658
|
+
console.log("")
|
|
659
|
+
} else {
|
|
660
|
+
output({
|
|
661
|
+
plugins,
|
|
662
|
+
total,
|
|
663
|
+
returned: plugins.length,
|
|
664
|
+
filters: {
|
|
665
|
+
name: name || null,
|
|
666
|
+
tags,
|
|
667
|
+
has_learn: hasLearnFilter,
|
|
668
|
+
installed: installedFilter,
|
|
669
|
+
source: sourceFilter,
|
|
670
|
+
limit: limit === null ? null : limit
|
|
671
|
+
}
|
|
672
|
+
})
|
|
673
|
+
}
|
|
674
|
+
return true
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
if (subcommand === "remove") {
|
|
678
|
+
const name = positional[2]
|
|
679
|
+
if (!name) {
|
|
680
|
+
outputError({ code: 85, type: "invalid_argument", message: "Usage: dcli plugins remove <name>", recoverable: false })
|
|
681
|
+
return true
|
|
682
|
+
}
|
|
683
|
+
output({ ok: true, removed: removePlugin(name) })
|
|
684
|
+
return true
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
if (subcommand === "show") {
|
|
688
|
+
const name = positional[2]
|
|
689
|
+
if (!name) {
|
|
690
|
+
outputError({ code: 85, type: "invalid_argument", message: "Usage: dcli plugins show <name>", recoverable: false })
|
|
691
|
+
return true
|
|
692
|
+
}
|
|
693
|
+
const plugin = getPlugin(name)
|
|
694
|
+
if (!plugin) {
|
|
695
|
+
outputError({ code: 92, type: "resource_not_found", message: `Plugin '${name}' is not installed`, suggestions: ["Run: dcli plugins list"] })
|
|
696
|
+
return true
|
|
697
|
+
}
|
|
698
|
+
output({ plugin, install_guidance: getPluginInstallGuidance(name) })
|
|
699
|
+
return true
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
if (subcommand === "doctor") {
|
|
703
|
+
const name = positional[2]
|
|
704
|
+
const report = name ? doctorPlugin(name) : doctorAllPlugins()
|
|
705
|
+
output(report)
|
|
706
|
+
return true
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
if (subcommand === "learn") {
|
|
710
|
+
const name = positional[2]
|
|
711
|
+
if (!name) {
|
|
712
|
+
outputError({ code: 85, type: "invalid_argument", message: "Usage: dcli plugins learn <name>", recoverable: false })
|
|
713
|
+
return true
|
|
714
|
+
}
|
|
715
|
+
const info = getPluginLearn(name)
|
|
716
|
+
if (humanMode) {
|
|
717
|
+
console.log(info.learn_markdown)
|
|
718
|
+
} else {
|
|
719
|
+
output(info)
|
|
720
|
+
}
|
|
721
|
+
return true
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
outputError({ code: 85, type: "invalid_argument", message: "Unknown plugins subcommand. Use: list, explore, install, remove, show, doctor, learn", recoverable: false })
|
|
725
|
+
return true
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
module.exports = { handlePluginsCommand }
|
|
729
729
|
</pre></td></tr></table></pre>
|
|
730
730
|
|
|
731
731
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -733,7 +733,7 @@
|
|
|
733
733
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
734
734
|
Code coverage generated by
|
|
735
735
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
736
|
-
at 2026-
|
|
736
|
+
at 2026-04-10T17:55:25.401Z
|
|
737
737
|
</div>
|
|
738
738
|
<script src="../prettify.js"></script>
|
|
739
739
|
<script>
|