@aexol/opencode-wizard 0.1.15 → 0.2.0
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 +2 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -0
- package/dist/server.d.ts +22 -0
- package/dist/server.js +65 -45
- package/dist/server.js.map +1 -1
- package/dist/smoke-published-skills.js +21 -2
- package/dist/smoke-published-skills.js.map +1 -1
- package/dist/storage.d.ts +5 -0
- package/dist/storage.js +43 -0
- package/dist/storage.js.map +1 -0
- package/dist/tui.js +219 -126
- package/dist/tui.js.map +1 -1
- package/package.json +3 -2
package/dist/tui.js
CHANGED
|
@@ -214,11 +214,34 @@ const getSkillTags = skill => {
|
|
|
214
214
|
if (tagLabels.length === 0) return 'no tags';
|
|
215
215
|
return tagLabels.join(', ');
|
|
216
216
|
};
|
|
217
|
-
const
|
|
217
|
+
const isUserScopeAssignment = assignmentSource => assignmentSource === 'USER' || assignmentSource === 'USER_GLOBAL' || assignmentSource === 'USER_WORKSPACE';
|
|
218
|
+
const getSkillScopeLabel = (skill, state) => {
|
|
219
|
+
if (state === 'installable') return 'AVAILABLE';
|
|
220
|
+
if (isUserScopeAssignment(skill.assignmentSource) || state === 'user-scope') return 'USER SCOPE';
|
|
221
|
+
if (state === 'global-scope' || skill.contextKind === 'global') return 'GLOBAL SCOPE';
|
|
222
|
+
return 'PROJECT SCOPE';
|
|
223
|
+
};
|
|
224
|
+
const getSkillPreferenceScope = skill => {
|
|
225
|
+
if (skill.assignmentSource === 'USER_GLOBAL') return 'global';
|
|
226
|
+
if (skill.assignmentSource === 'USER_WORKSPACE') return 'project';
|
|
227
|
+
if (skill.contextKind === 'global') return 'global';
|
|
228
|
+
return 'project';
|
|
229
|
+
};
|
|
230
|
+
const getSkillMeta = (skill, state) => `${getSkillScopeLabel(skill, state)} · ${skill.assignmentLabel} · ${skill.policyLabel} · ${getSkillTags(skill)}`;
|
|
218
231
|
const getRowStateLabel = row => {
|
|
219
|
-
|
|
232
|
+
const scopeLabel = getSkillScopeLabel(row.skill, row.state);
|
|
233
|
+
if (row.ignored) return `ignored · ${scopeLabel}`;
|
|
220
234
|
if (row.state === 'installable') return 'not installed';
|
|
221
|
-
return
|
|
235
|
+
return `active · ${scopeLabel}`;
|
|
236
|
+
};
|
|
237
|
+
const getSkillRowState = skill => {
|
|
238
|
+
if (isUserScopeAssignment(skill.assignmentSource)) return 'user-scope';
|
|
239
|
+
if (skill.contextKind === 'global') return 'global-scope';
|
|
240
|
+
return 'project-scope';
|
|
241
|
+
};
|
|
242
|
+
const getErrorMessage = error => {
|
|
243
|
+
if (error instanceof Error && error.message) return error.message;
|
|
244
|
+
return 'Preference update failed. Check plugin auth/backend status and try again.';
|
|
222
245
|
};
|
|
223
246
|
const SkillCatalogRow = props => {
|
|
224
247
|
const skill = props.row.skill;
|
|
@@ -262,7 +285,7 @@ const SkillCatalogRow = props => {
|
|
|
262
285
|
_$insertNode(_el$27, _el$28);
|
|
263
286
|
_$setProp(_el$27, "onMouseUp", () => props.onInstall(props.row, 'global'));
|
|
264
287
|
_$setProp(_el$27, "flexShrink", 0);
|
|
265
|
-
_$insertNode(_el$28, _$createTextNode(`
|
|
288
|
+
_$insertNode(_el$28, _$createTextNode(`GLOBAL SCOPE`));
|
|
266
289
|
_$setProp(_el$28, "wrapMode", "none");
|
|
267
290
|
_$effect(_$p => _$setProp(_el$28, "fg", props.theme.textMuted, _$p));
|
|
268
291
|
return _el$27;
|
|
@@ -278,7 +301,7 @@ const SkillCatalogRow = props => {
|
|
|
278
301
|
_$insertNode(_el$32, _el$33);
|
|
279
302
|
_$setProp(_el$32, "onMouseUp", () => props.onInstall(props.row, 'project'));
|
|
280
303
|
_$setProp(_el$32, "flexShrink", 0);
|
|
281
|
-
_$insertNode(_el$33, _$createTextNode(`
|
|
304
|
+
_$insertNode(_el$33, _$createTextNode(`PROJECT SCOPE`));
|
|
282
305
|
_$setProp(_el$33, "wrapMode", "none");
|
|
283
306
|
_$effect(_$p => _$setProp(_el$33, "fg", props.theme.textMuted, _$p));
|
|
284
307
|
return _el$32;
|
|
@@ -380,11 +403,11 @@ const WizardSkillsDialogContent = props => {
|
|
|
380
403
|
const rows = [...catalog.skills.map(skill => ({
|
|
381
404
|
skill,
|
|
382
405
|
ignored: false,
|
|
383
|
-
state: skill
|
|
406
|
+
state: getSkillRowState(skill)
|
|
384
407
|
})), ...currentStatus.snapshot.ignoredPublishedSkills.skills.map(skill => ({
|
|
385
408
|
skill,
|
|
386
409
|
ignored: true,
|
|
387
|
-
state: skill
|
|
410
|
+
state: getSkillRowState(skill)
|
|
388
411
|
})), ...(currentStatus.snapshot.installableCatalog?.skills ?? []).filter(skill => !activeSkillSlugs.has(skill.skillSlug) && !ignoredSkillSlugs.has(skill.skillSlug)).map(skill => ({
|
|
389
412
|
skill,
|
|
390
413
|
ignored: false,
|
|
@@ -412,29 +435,30 @@ const WizardSkillsDialogContent = props => {
|
|
|
412
435
|
_el$52 = _$createElement("b"),
|
|
413
436
|
_el$53 = _$createTextNode(` skills`),
|
|
414
437
|
_el$54 = _$createTextNode(` · `),
|
|
415
|
-
_el$55 = _$createTextNode(`
|
|
416
|
-
_el$56 = _$createTextNode(`
|
|
417
|
-
_el$57 = _$createTextNode(`
|
|
418
|
-
_el$58 = _$createTextNode(`
|
|
419
|
-
_el$59 = _$
|
|
420
|
-
_el$60 = _$
|
|
421
|
-
_el$61 = _$createTextNode(
|
|
422
|
-
_el$62 = _$
|
|
438
|
+
_el$55 = _$createTextNode(` GLOBAL SCOPE · `),
|
|
439
|
+
_el$56 = _$createTextNode(` PROJECT SCOPE · `),
|
|
440
|
+
_el$57 = _$createTextNode(` USER SCOPE · `),
|
|
441
|
+
_el$58 = _$createTextNode(` ignored · `),
|
|
442
|
+
_el$59 = _$createTextNode(` installable`),
|
|
443
|
+
_el$60 = _$createElement("text"),
|
|
444
|
+
_el$61 = _$createTextNode(`page `),
|
|
445
|
+
_el$62 = _$createTextNode(`/`),
|
|
423
446
|
_el$63 = _$createElement("box"),
|
|
424
447
|
_el$64 = _$createElement("box"),
|
|
425
|
-
_el$65 = _$createElement("
|
|
426
|
-
_el$
|
|
427
|
-
_el$68 = _$
|
|
428
|
-
_el$69 = _$
|
|
429
|
-
_el$70 = _$createElement("
|
|
448
|
+
_el$65 = _$createElement("box"),
|
|
449
|
+
_el$66 = _$createElement("text"),
|
|
450
|
+
_el$68 = _$createElement("text"),
|
|
451
|
+
_el$69 = _$createTextNode(` shown`),
|
|
452
|
+
_el$70 = _$createElement("box"),
|
|
453
|
+
_el$71 = _$createElement("text");
|
|
430
454
|
_$insertNode(_el$49, _el$50);
|
|
431
|
-
_$insertNode(_el$49, _el$62);
|
|
432
455
|
_$insertNode(_el$49, _el$63);
|
|
456
|
+
_$insertNode(_el$49, _el$64);
|
|
433
457
|
_$setProp(_el$49, "width", "100%");
|
|
434
458
|
_$setProp(_el$49, "flexDirection", "column");
|
|
435
459
|
_$setProp(_el$49, "overflow", "hidden");
|
|
436
460
|
_$insertNode(_el$50, _el$51);
|
|
437
|
-
_$insertNode(_el$50, _el$
|
|
461
|
+
_$insertNode(_el$50, _el$60);
|
|
438
462
|
_$setProp(_el$50, "width", "100%");
|
|
439
463
|
_$setProp(_el$50, "flexDirection", "row");
|
|
440
464
|
_$setProp(_el$50, "justifyContent", "space-between");
|
|
@@ -445,24 +469,26 @@ const WizardSkillsDialogContent = props => {
|
|
|
445
469
|
_$insertNode(_el$51, _el$56);
|
|
446
470
|
_$insertNode(_el$51, _el$57);
|
|
447
471
|
_$insertNode(_el$51, _el$58);
|
|
472
|
+
_$insertNode(_el$51, _el$59);
|
|
448
473
|
_$setProp(_el$51, "wrapMode", "none");
|
|
449
474
|
_$setProp(_el$51, "overflow", "hidden");
|
|
450
475
|
_$insertNode(_el$52, _el$53);
|
|
451
476
|
_$insert(_el$52, () => catalog.publishedSkillCount, _el$53);
|
|
452
477
|
_$insert(_el$51, () => catalog.assignmentCounts.global, _el$55);
|
|
453
478
|
_$insert(_el$51, () => catalog.assignmentCounts.project, _el$56);
|
|
454
|
-
_$insert(_el$51, () =>
|
|
455
|
-
_$insert(_el$51, () => currentStatus.snapshot.
|
|
456
|
-
_$
|
|
457
|
-
_$insertNode(_el$
|
|
458
|
-
_$
|
|
459
|
-
_$
|
|
460
|
-
_$insert(_el$
|
|
461
|
-
_$
|
|
462
|
-
_$setProp(_el$
|
|
463
|
-
_$setProp(_el$
|
|
464
|
-
_$setProp(_el$
|
|
465
|
-
_$
|
|
479
|
+
_$insert(_el$51, () => catalog.assignmentCounts.user, _el$57);
|
|
480
|
+
_$insert(_el$51, () => currentStatus.snapshot.ignoredPublishedSkills.count, _el$58);
|
|
481
|
+
_$insert(_el$51, () => currentStatus.snapshot.installableCatalog?.count ?? 0, _el$59);
|
|
482
|
+
_$insertNode(_el$60, _el$61);
|
|
483
|
+
_$insertNode(_el$60, _el$62);
|
|
484
|
+
_$setProp(_el$60, "wrapMode", "none");
|
|
485
|
+
_$insert(_el$60, currentPage + 1, _el$62);
|
|
486
|
+
_$insert(_el$60, totalPages, null);
|
|
487
|
+
_$setProp(_el$63, "width", "100%");
|
|
488
|
+
_$setProp(_el$63, "flexDirection", "column");
|
|
489
|
+
_$setProp(_el$63, "marginTop", 1);
|
|
490
|
+
_$setProp(_el$63, "overflow", "hidden");
|
|
491
|
+
_$insert(_el$63, () => visibleRows.map(row => _$createComponent(SkillCatalogRow, {
|
|
466
492
|
row: row,
|
|
467
493
|
get theme() {
|
|
468
494
|
return props.theme;
|
|
@@ -477,27 +503,27 @@ const WizardSkillsDialogContent = props => {
|
|
|
477
503
|
return props.onUninstallSkill;
|
|
478
504
|
}
|
|
479
505
|
})));
|
|
480
|
-
_$insertNode(_el$63, _el$64);
|
|
481
|
-
_$insertNode(_el$63, _el$67);
|
|
482
|
-
_$insertNode(_el$63, _el$69);
|
|
483
|
-
_$setProp(_el$63, "width", "100%");
|
|
484
|
-
_$setProp(_el$63, "flexDirection", "row");
|
|
485
|
-
_$setProp(_el$63, "justifyContent", "space-between");
|
|
486
|
-
_$setProp(_el$63, "overflow", "hidden");
|
|
487
506
|
_$insertNode(_el$64, _el$65);
|
|
488
|
-
_$
|
|
489
|
-
_$
|
|
490
|
-
_$
|
|
491
|
-
_$setProp(_el$
|
|
492
|
-
_$
|
|
493
|
-
_$setProp(_el$
|
|
494
|
-
_$
|
|
495
|
-
_$
|
|
496
|
-
_$
|
|
497
|
-
_$
|
|
498
|
-
_$setProp(_el$
|
|
499
|
-
_$insertNode(_el$
|
|
500
|
-
_$setProp(_el$
|
|
507
|
+
_$insertNode(_el$64, _el$68);
|
|
508
|
+
_$insertNode(_el$64, _el$70);
|
|
509
|
+
_$setProp(_el$64, "width", "100%");
|
|
510
|
+
_$setProp(_el$64, "flexDirection", "row");
|
|
511
|
+
_$setProp(_el$64, "justifyContent", "space-between");
|
|
512
|
+
_$setProp(_el$64, "overflow", "hidden");
|
|
513
|
+
_$insertNode(_el$65, _el$66);
|
|
514
|
+
_$setProp(_el$65, "onMouseUp", goBack);
|
|
515
|
+
_$setProp(_el$65, "flexShrink", 0);
|
|
516
|
+
_$insertNode(_el$66, _$createTextNode(`← Prev`));
|
|
517
|
+
_$setProp(_el$66, "wrapMode", "none");
|
|
518
|
+
_$insertNode(_el$68, _el$69);
|
|
519
|
+
_$setProp(_el$68, "wrapMode", "none");
|
|
520
|
+
_$setProp(_el$68, "overflow", "hidden");
|
|
521
|
+
_$insert(_el$68, () => visibleRows.length, _el$69);
|
|
522
|
+
_$insertNode(_el$70, _el$71);
|
|
523
|
+
_$setProp(_el$70, "onMouseUp", goForward);
|
|
524
|
+
_$setProp(_el$70, "flexShrink", 0);
|
|
525
|
+
_$insertNode(_el$71, _$createTextNode(`Next →`));
|
|
526
|
+
_$setProp(_el$71, "wrapMode", "none");
|
|
501
527
|
_$effect(_p$ => {
|
|
502
528
|
var _v$8 = props.theme.text,
|
|
503
529
|
_v$9 = props.theme.textMuted,
|
|
@@ -505,10 +531,10 @@ const WizardSkillsDialogContent = props => {
|
|
|
505
531
|
_v$1 = props.theme.textMuted,
|
|
506
532
|
_v$10 = canGoForward ? props.theme.text : props.theme.textMuted;
|
|
507
533
|
_v$8 !== _p$.e && (_p$.e = _$setProp(_el$51, "fg", _v$8, _p$.e));
|
|
508
|
-
_v$9 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
509
|
-
_v$0 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
510
|
-
_v$1 !== _p$.o && (_p$.o = _$setProp(_el$
|
|
511
|
-
_v$10 !== _p$.i && (_p$.i = _$setProp(_el$
|
|
534
|
+
_v$9 !== _p$.t && (_p$.t = _$setProp(_el$60, "fg", _v$9, _p$.t));
|
|
535
|
+
_v$0 !== _p$.a && (_p$.a = _$setProp(_el$66, "fg", _v$0, _p$.a));
|
|
536
|
+
_v$1 !== _p$.o && (_p$.o = _$setProp(_el$68, "fg", _v$1, _p$.o));
|
|
537
|
+
_v$10 !== _p$.i && (_p$.i = _$setProp(_el$71, "fg", _v$10, _p$.i));
|
|
512
538
|
return _p$;
|
|
513
539
|
}, {
|
|
514
540
|
e: undefined,
|
|
@@ -520,7 +546,33 @@ const WizardSkillsDialogContent = props => {
|
|
|
520
546
|
return _el$49;
|
|
521
547
|
})();
|
|
522
548
|
};
|
|
523
|
-
return
|
|
549
|
+
return (() => {
|
|
550
|
+
var _el$73 = _$createElement("box");
|
|
551
|
+
_$setProp(_el$73, "width", "100%");
|
|
552
|
+
_$setProp(_el$73, "flexDirection", "column");
|
|
553
|
+
_$setProp(_el$73, "overflow", "hidden");
|
|
554
|
+
_$insert(_el$73, _$createComponent(PreferenceActionNoticeRow, {
|
|
555
|
+
get notice() {
|
|
556
|
+
return props.actionNotice();
|
|
557
|
+
},
|
|
558
|
+
get theme() {
|
|
559
|
+
return props.theme;
|
|
560
|
+
}
|
|
561
|
+
}), null);
|
|
562
|
+
_$insert(_el$73, content, null);
|
|
563
|
+
return _el$73;
|
|
564
|
+
})();
|
|
565
|
+
};
|
|
566
|
+
const PreferenceActionNoticeRow = props => {
|
|
567
|
+
if (props.notice.kind === 'idle') return null;
|
|
568
|
+
return (() => {
|
|
569
|
+
var _el$74 = _$createElement("text");
|
|
570
|
+
_$setProp(_el$74, "wrapMode", "none");
|
|
571
|
+
_$setProp(_el$74, "overflow", "hidden");
|
|
572
|
+
_$insert(_el$74, () => compactStatusMessage(props.notice.message));
|
|
573
|
+
_$effect(_$p => _$setProp(_el$74, "fg", props.notice.kind === 'error' ? props.theme.warning : props.theme.textMuted, _$p));
|
|
574
|
+
return _el$74;
|
|
575
|
+
})();
|
|
524
576
|
};
|
|
525
577
|
const ReadyRows = props => {
|
|
526
578
|
const statusRows = [_$createComponent(Row, {
|
|
@@ -548,12 +600,12 @@ const ReadyRows = props => {
|
|
|
548
600
|
})];
|
|
549
601
|
if (!props.snapshot.catalog) {
|
|
550
602
|
return (() => {
|
|
551
|
-
var _el$
|
|
552
|
-
_$setProp(_el$
|
|
553
|
-
_$setProp(_el$
|
|
554
|
-
_$setProp(_el$
|
|
555
|
-
_$insert(_el$
|
|
556
|
-
_$insert(_el$
|
|
603
|
+
var _el$75 = _$createElement("box");
|
|
604
|
+
_$setProp(_el$75, "width", "100%");
|
|
605
|
+
_$setProp(_el$75, "flexDirection", "column");
|
|
606
|
+
_$setProp(_el$75, "overflow", "hidden");
|
|
607
|
+
_$insert(_el$75, statusRows, null);
|
|
608
|
+
_$insert(_el$75, _$createComponent(Row, {
|
|
557
609
|
label: "catalog",
|
|
558
610
|
get value() {
|
|
559
611
|
return formatSkillsCatalogUnavailableMessage(props.snapshot);
|
|
@@ -565,22 +617,22 @@ const ReadyRows = props => {
|
|
|
565
617
|
return props.theme.text;
|
|
566
618
|
}
|
|
567
619
|
}), null);
|
|
568
|
-
return _el$
|
|
620
|
+
return _el$75;
|
|
569
621
|
})();
|
|
570
622
|
}
|
|
571
623
|
const counts = props.snapshot.catalog.assignmentCounts;
|
|
572
624
|
return (() => {
|
|
573
|
-
var _el$
|
|
574
|
-
_el$
|
|
575
|
-
_$insertNode(_el$
|
|
576
|
-
_$setProp(_el$
|
|
577
|
-
_$setProp(_el$
|
|
578
|
-
_$setProp(_el$
|
|
579
|
-
_$insert(_el$
|
|
580
|
-
_$insertNode(_el$
|
|
581
|
-
_$setProp(_el$
|
|
582
|
-
_$setProp(_el$
|
|
583
|
-
_$insert(_el$
|
|
625
|
+
var _el$76 = _$createElement("box"),
|
|
626
|
+
_el$77 = _$createElement("text");
|
|
627
|
+
_$insertNode(_el$76, _el$77);
|
|
628
|
+
_$setProp(_el$76, "width", "100%");
|
|
629
|
+
_$setProp(_el$76, "flexDirection", "column");
|
|
630
|
+
_$setProp(_el$76, "overflow", "hidden");
|
|
631
|
+
_$insert(_el$76, statusRows, _el$77);
|
|
632
|
+
_$insertNode(_el$77, _$createTextNode(`catalog:`));
|
|
633
|
+
_$setProp(_el$77, "wrapMode", "none");
|
|
634
|
+
_$setProp(_el$77, "overflow", "hidden");
|
|
635
|
+
_$insert(_el$76, _$createComponent(CatalogBullet, {
|
|
584
636
|
get value() {
|
|
585
637
|
return `${props.snapshot.catalog.publishedSkillCount} loaded`;
|
|
586
638
|
},
|
|
@@ -588,23 +640,31 @@ const ReadyRows = props => {
|
|
|
588
640
|
return props.theme;
|
|
589
641
|
}
|
|
590
642
|
}), null);
|
|
591
|
-
_$insert(_el$
|
|
643
|
+
_$insert(_el$76, _$createComponent(CatalogBullet, {
|
|
644
|
+
get value() {
|
|
645
|
+
return `${counts.global} GLOBAL SCOPE`;
|
|
646
|
+
},
|
|
647
|
+
get theme() {
|
|
648
|
+
return props.theme;
|
|
649
|
+
}
|
|
650
|
+
}), null);
|
|
651
|
+
_$insert(_el$76, _$createComponent(CatalogBullet, {
|
|
592
652
|
get value() {
|
|
593
|
-
return `${counts.
|
|
653
|
+
return `${counts.project} PROJECT SCOPE`;
|
|
594
654
|
},
|
|
595
655
|
get theme() {
|
|
596
656
|
return props.theme;
|
|
597
657
|
}
|
|
598
658
|
}), null);
|
|
599
|
-
_$insert(_el$
|
|
659
|
+
_$insert(_el$76, _$createComponent(CatalogBullet, {
|
|
600
660
|
get value() {
|
|
601
|
-
return `${counts.
|
|
661
|
+
return `${counts.user} USER SCOPE`;
|
|
602
662
|
},
|
|
603
663
|
get theme() {
|
|
604
664
|
return props.theme;
|
|
605
665
|
}
|
|
606
666
|
}), null);
|
|
607
|
-
_$insert(_el$
|
|
667
|
+
_$insert(_el$76, _$createComponent(CatalogBullet, {
|
|
608
668
|
get value() {
|
|
609
669
|
return `${props.snapshot.ignoredPublishedSkills.count} ignored`;
|
|
610
670
|
},
|
|
@@ -612,13 +672,30 @@ const ReadyRows = props => {
|
|
|
612
672
|
return props.theme;
|
|
613
673
|
}
|
|
614
674
|
}), null);
|
|
615
|
-
_$effect(_$p => _$setProp(_el$
|
|
616
|
-
return _el$
|
|
675
|
+
_$effect(_$p => _$setProp(_el$77, "fg", props.theme.textMuted, _$p));
|
|
676
|
+
return _el$76;
|
|
617
677
|
})();
|
|
618
678
|
};
|
|
619
679
|
const WizardSkillsDialog = props => {
|
|
620
680
|
const theme = createMemo(() => props.api.theme.current);
|
|
621
|
-
const
|
|
681
|
+
const [actionNotice, setActionNotice] = createSignal({
|
|
682
|
+
kind: 'idle'
|
|
683
|
+
});
|
|
684
|
+
const refreshAfterPreferenceChange = message => {
|
|
685
|
+
setActionNotice({
|
|
686
|
+
kind: 'success',
|
|
687
|
+
message
|
|
688
|
+
});
|
|
689
|
+
props.refreshStatus({
|
|
690
|
+
showLoading: false
|
|
691
|
+
});
|
|
692
|
+
requestRender(props.api);
|
|
693
|
+
};
|
|
694
|
+
const showPreferenceFailure = error => {
|
|
695
|
+
setActionNotice({
|
|
696
|
+
kind: 'error',
|
|
697
|
+
message: getErrorMessage(error)
|
|
698
|
+
});
|
|
622
699
|
props.refreshStatus({
|
|
623
700
|
showLoading: false
|
|
624
701
|
});
|
|
@@ -628,19 +705,29 @@ const WizardSkillsDialog = props => {
|
|
|
628
705
|
const currentStatus = props.status();
|
|
629
706
|
if (currentStatus.kind !== 'ready') return;
|
|
630
707
|
const scopeKey = currentStatus.snapshot.ignoredPublishedSkills.scopeKey;
|
|
708
|
+
setActionNotice({
|
|
709
|
+
kind: 'pending',
|
|
710
|
+
message: row.ignored ? 'Removing ignore preference…' : 'Ignoring skill…'
|
|
711
|
+
});
|
|
712
|
+
requestRender(props.api);
|
|
631
713
|
void setPublishedSkillIgnored({
|
|
632
714
|
worktree: props.api.state.path.worktree,
|
|
633
715
|
directory: props.api.state.path.directory,
|
|
634
716
|
scopeKey,
|
|
635
717
|
skillSlug: row.skill.skillSlug,
|
|
636
718
|
ignored: !row.ignored,
|
|
637
|
-
preferenceScope: row.
|
|
638
|
-
}).then(refreshAfterPreferenceChange).catch(
|
|
719
|
+
preferenceScope: getSkillPreferenceScope(row.skill)
|
|
720
|
+
}).then(() => refreshAfterPreferenceChange(row.ignored ? 'Skill is no longer ignored.' : 'Skill ignored.')).catch(showPreferenceFailure);
|
|
639
721
|
};
|
|
640
722
|
const installSkill = (row, preferenceScope) => {
|
|
641
723
|
const currentStatus = props.status();
|
|
642
724
|
if (currentStatus.kind !== 'ready') return;
|
|
643
725
|
const scopeKey = currentStatus.snapshot.ignoredPublishedSkills.scopeKey;
|
|
726
|
+
setActionNotice({
|
|
727
|
+
kind: 'pending',
|
|
728
|
+
message: `Installing skill for ${preferenceScope.toUpperCase()} SCOPE…`
|
|
729
|
+
});
|
|
730
|
+
requestRender(props.api);
|
|
644
731
|
void setPublishedSkillInstalled({
|
|
645
732
|
worktree: props.api.state.path.worktree,
|
|
646
733
|
directory: props.api.state.path.directory,
|
|
@@ -648,61 +735,67 @@ const WizardSkillsDialog = props => {
|
|
|
648
735
|
skillSlug: row.skill.skillSlug,
|
|
649
736
|
installed: true,
|
|
650
737
|
preferenceScope
|
|
651
|
-
}).then(refreshAfterPreferenceChange).catch(
|
|
738
|
+
}).then(() => refreshAfterPreferenceChange(`Skill installed for ${preferenceScope.toUpperCase()} SCOPE.`)).catch(showPreferenceFailure);
|
|
652
739
|
};
|
|
653
740
|
const uninstallSkill = row => {
|
|
654
741
|
const currentStatus = props.status();
|
|
655
742
|
if (currentStatus.kind !== 'ready') return;
|
|
656
743
|
const scopeKey = currentStatus.snapshot.ignoredPublishedSkills.scopeKey;
|
|
744
|
+
setActionNotice({
|
|
745
|
+
kind: 'pending',
|
|
746
|
+
message: 'Uninstalling skill…'
|
|
747
|
+
});
|
|
748
|
+
requestRender(props.api);
|
|
657
749
|
void setPublishedSkillInstalled({
|
|
658
750
|
worktree: props.api.state.path.worktree,
|
|
659
751
|
directory: props.api.state.path.directory,
|
|
660
752
|
scopeKey,
|
|
661
753
|
skillSlug: row.skill.skillSlug,
|
|
662
754
|
installed: false,
|
|
663
|
-
preferenceScope: row.
|
|
664
|
-
}).then(refreshAfterPreferenceChange).catch(
|
|
755
|
+
preferenceScope: getSkillPreferenceScope(row.skill)
|
|
756
|
+
}).then(() => refreshAfterPreferenceChange('Skill uninstalled.')).catch(showPreferenceFailure);
|
|
665
757
|
};
|
|
666
758
|
createEffect(() => {
|
|
667
759
|
props.api.ui?.dialog?.setSize?.('xlarge');
|
|
668
760
|
});
|
|
669
761
|
return (() => {
|
|
670
|
-
var _el$
|
|
671
|
-
_el$
|
|
672
|
-
_el$
|
|
673
|
-
_el$
|
|
674
|
-
_el$
|
|
675
|
-
_el$
|
|
676
|
-
_el$
|
|
677
|
-
_$insertNode(_el$
|
|
678
|
-
_$insertNode(_el$
|
|
679
|
-
_$setProp(_el$
|
|
680
|
-
_$setProp(_el$
|
|
681
|
-
_$setProp(_el$
|
|
682
|
-
_$setProp(_el$
|
|
683
|
-
_$setProp(_el$
|
|
684
|
-
_$insertNode(_el$
|
|
685
|
-
_$insertNode(_el$
|
|
686
|
-
_$setProp(_el$
|
|
687
|
-
_$setProp(_el$
|
|
688
|
-
_$setProp(_el$
|
|
689
|
-
_$setProp(_el$
|
|
690
|
-
_$insertNode(_el$78, _el$79);
|
|
691
|
-
_$setProp(_el$78, "wrapMode", "none");
|
|
692
|
-
_$setProp(_el$78, "overflow", "hidden");
|
|
693
|
-
_$insertNode(_el$79, _$createTextNode(`Wizard Skills`));
|
|
762
|
+
var _el$79 = _$createElement("box"),
|
|
763
|
+
_el$80 = _$createElement("box"),
|
|
764
|
+
_el$81 = _$createElement("text"),
|
|
765
|
+
_el$82 = _$createElement("b"),
|
|
766
|
+
_el$84 = _$createElement("box"),
|
|
767
|
+
_el$85 = _$createElement("text"),
|
|
768
|
+
_el$87 = _$createElement("box");
|
|
769
|
+
_$insertNode(_el$79, _el$80);
|
|
770
|
+
_$insertNode(_el$79, _el$87);
|
|
771
|
+
_$setProp(_el$79, "width", "100%");
|
|
772
|
+
_$setProp(_el$79, "flexDirection", "column");
|
|
773
|
+
_$setProp(_el$79, "paddingLeft", 1);
|
|
774
|
+
_$setProp(_el$79, "paddingRight", 1);
|
|
775
|
+
_$setProp(_el$79, "paddingBottom", 1);
|
|
776
|
+
_$insertNode(_el$80, _el$81);
|
|
777
|
+
_$insertNode(_el$80, _el$84);
|
|
778
|
+
_$setProp(_el$80, "width", "100%");
|
|
779
|
+
_$setProp(_el$80, "flexDirection", "row");
|
|
780
|
+
_$setProp(_el$80, "justifyContent", "space-between");
|
|
781
|
+
_$setProp(_el$80, "overflow", "hidden");
|
|
694
782
|
_$insertNode(_el$81, _el$82);
|
|
695
|
-
_$setProp(_el$81, "
|
|
696
|
-
_$
|
|
697
|
-
_$
|
|
698
|
-
_$
|
|
699
|
-
_$setProp(_el$84, "
|
|
700
|
-
_$
|
|
701
|
-
_$setProp(_el$
|
|
702
|
-
_$
|
|
783
|
+
_$setProp(_el$81, "wrapMode", "none");
|
|
784
|
+
_$setProp(_el$81, "overflow", "hidden");
|
|
785
|
+
_$insertNode(_el$82, _$createTextNode(`Wizard Skills`));
|
|
786
|
+
_$insertNode(_el$84, _el$85);
|
|
787
|
+
_$setProp(_el$84, "flexShrink", 0);
|
|
788
|
+
_$insertNode(_el$85, _$createTextNode(`Close`));
|
|
789
|
+
_$setProp(_el$85, "wrapMode", "none");
|
|
790
|
+
_$setProp(_el$87, "width", "100%");
|
|
791
|
+
_$setProp(_el$87, "flexDirection", "column");
|
|
792
|
+
_$setProp(_el$87, "marginTop", 1);
|
|
793
|
+
_$setProp(_el$87, "overflow", "hidden");
|
|
794
|
+
_$insert(_el$87, _$createComponent(WizardSkillsDialogContent, {
|
|
703
795
|
get status() {
|
|
704
796
|
return props.status;
|
|
705
797
|
},
|
|
798
|
+
actionNotice: actionNotice,
|
|
706
799
|
get theme() {
|
|
707
800
|
return theme();
|
|
708
801
|
},
|
|
@@ -714,16 +807,16 @@ const WizardSkillsDialog = props => {
|
|
|
714
807
|
var _v$11 = theme().text,
|
|
715
808
|
_v$12 = props.onClose,
|
|
716
809
|
_v$13 = theme().textMuted;
|
|
717
|
-
_v$11 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
718
|
-
_v$12 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
719
|
-
_v$13 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
810
|
+
_v$11 !== _p$.e && (_p$.e = _$setProp(_el$81, "fg", _v$11, _p$.e));
|
|
811
|
+
_v$12 !== _p$.t && (_p$.t = _$setProp(_el$84, "onMouseUp", _v$12, _p$.t));
|
|
812
|
+
_v$13 !== _p$.a && (_p$.a = _$setProp(_el$85, "fg", _v$13, _p$.a));
|
|
720
813
|
return _p$;
|
|
721
814
|
}, {
|
|
722
815
|
e: undefined,
|
|
723
816
|
t: undefined,
|
|
724
817
|
a: undefined
|
|
725
818
|
});
|
|
726
|
-
return _el$
|
|
819
|
+
return _el$79;
|
|
727
820
|
})();
|
|
728
821
|
};
|
|
729
822
|
const openWizardSkillsDialog = (api, status, refreshStatus) => {
|