@grifhinz/logics-manager 2.4.0 → 2.5.1
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 +12 -3
- package/VERSION +1 -1
- package/clients/shared-web/media/renderMarkdown.js +1 -1
- package/clients/viewer/browser-host.js +884 -22
- package/clients/viewer/index.html +21 -5
- package/clients/viewer/viewer.css +547 -2
- package/logics_manager/audit.py +2 -2
- package/logics_manager/cli.py +7 -1
- package/logics_manager/insights.py +1 -1
- package/logics_manager/lint.py +2 -2
- package/logics_manager/mcp.py +10 -2
- package/logics_manager/viewer.py +192 -13
- package/package.json +1 -1
- package/pyproject.toml +1 -1
|
@@ -23,12 +23,28 @@
|
|
|
23
23
|
<div class="viewer-topbar__meta" id="viewer-meta">Read-only local viewer</div>
|
|
24
24
|
</div>
|
|
25
25
|
<div class="viewer-topbar__actions">
|
|
26
|
-
<
|
|
27
|
-
<
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
<div class="viewer-refresh-menu">
|
|
27
|
+
<button class="btn" id="viewer-refresh-menu-button" type="button" title="Refresh options" aria-haspopup="menu" aria-expanded="false" aria-controls="viewer-refresh-menu">Refresh</button>
|
|
28
|
+
<div class="viewer-refresh-menu__panel" id="viewer-refresh-menu" role="menu" aria-label="Refresh options" hidden>
|
|
29
|
+
<label class="viewer-auto-refresh" title="Toggle automatic refresh">
|
|
30
|
+
<input id="viewer-auto-refresh" type="checkbox" checked />
|
|
31
|
+
<span>Auto</span>
|
|
32
|
+
</label>
|
|
33
|
+
<label class="viewer-refresh-menu__interval">
|
|
34
|
+
<span>Interval</span>
|
|
35
|
+
<select id="viewer-refresh-interval" aria-label="Automatic refresh interval">
|
|
36
|
+
<option value="5">5 sec</option>
|
|
37
|
+
<option value="10">10 sec</option>
|
|
38
|
+
<option value="15" selected>15 sec</option>
|
|
39
|
+
<option value="30">30 sec</option>
|
|
40
|
+
<option value="60">60 sec</option>
|
|
41
|
+
</select>
|
|
42
|
+
</label>
|
|
43
|
+
<button class="btn" data-action="refresh" type="button" title="Refresh viewer data now">Now</button>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
31
46
|
<button class="btn" id="viewer-git" type="button" title="Show Git status">Git</button>
|
|
47
|
+
<button class="btn" id="viewer-cdx" type="button" title="Show CDX status">CDX</button>
|
|
32
48
|
<button class="btn" id="viewer-insights" type="button" title="Show corpus insights">Insights</button>
|
|
33
49
|
<button class="btn" id="viewer-health" type="button" title="Show lint and audit health">Health</button>
|
|
34
50
|
</div>
|
|
@@ -51,6 +51,68 @@
|
|
|
51
51
|
flex: 0 0 auto;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
.viewer-topbar__actions button {
|
|
55
|
+
display: inline-flex;
|
|
56
|
+
align-items: center;
|
|
57
|
+
gap: 6px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.viewer-git-badges {
|
|
61
|
+
display: inline-flex;
|
|
62
|
+
align-items: center;
|
|
63
|
+
gap: 3px;
|
|
64
|
+
flex: 0 0 auto;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.viewer-git-badge {
|
|
68
|
+
display: inline-grid;
|
|
69
|
+
min-width: 16px;
|
|
70
|
+
height: 16px;
|
|
71
|
+
place-items: center;
|
|
72
|
+
border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
|
|
73
|
+
border-radius: 999px;
|
|
74
|
+
padding: 0 4px;
|
|
75
|
+
font-size: 10px;
|
|
76
|
+
font-weight: 700;
|
|
77
|
+
line-height: 1;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.viewer-git-badge--commits {
|
|
81
|
+
background: color-mix(in srgb, var(--vscode-textLink-foreground, #4ea1ff) 24%, transparent);
|
|
82
|
+
color: var(--vscode-textLink-foreground, #4ea1ff);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.viewer-git-badge--files {
|
|
86
|
+
background: rgba(245, 158, 11, 0.18);
|
|
87
|
+
color: #f59e0b;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.viewer-refresh-menu {
|
|
91
|
+
position: relative;
|
|
92
|
+
display: inline-flex;
|
|
93
|
+
align-items: center;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.viewer-refresh-menu__panel {
|
|
97
|
+
position: absolute;
|
|
98
|
+
top: calc(100% + 6px);
|
|
99
|
+
right: 0;
|
|
100
|
+
z-index: 60;
|
|
101
|
+
display: grid;
|
|
102
|
+
gap: 10px;
|
|
103
|
+
min-width: 180px;
|
|
104
|
+
padding: 10px;
|
|
105
|
+
border: 1px solid var(--vscode-panel-border, #333333);
|
|
106
|
+
border-radius: 6px;
|
|
107
|
+
background: var(--vscode-editorWidget-background, #202020);
|
|
108
|
+
color: var(--vscode-foreground, #d4d4d4);
|
|
109
|
+
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.viewer-refresh-menu__panel[hidden] {
|
|
113
|
+
display: none !important;
|
|
114
|
+
}
|
|
115
|
+
|
|
54
116
|
.viewer-auto-refresh {
|
|
55
117
|
display: inline-flex;
|
|
56
118
|
align-items: center;
|
|
@@ -69,6 +131,28 @@
|
|
|
69
131
|
margin: 0;
|
|
70
132
|
}
|
|
71
133
|
|
|
134
|
+
.viewer-refresh-menu__interval {
|
|
135
|
+
display: grid;
|
|
136
|
+
gap: 5px;
|
|
137
|
+
color: var(--vscode-descriptionForeground, #9da5b4);
|
|
138
|
+
font-size: 11px;
|
|
139
|
+
font-weight: 700;
|
|
140
|
+
text-transform: uppercase;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.viewer-refresh-menu__interval select {
|
|
144
|
+
width: 100%;
|
|
145
|
+
height: 30px;
|
|
146
|
+
border: 1px solid var(--vscode-panel-border, #333333);
|
|
147
|
+
border-radius: 4px;
|
|
148
|
+
background: var(--vscode-dropdown-background, var(--vscode-input-background, #1f1f1f));
|
|
149
|
+
color: var(--vscode-dropdown-foreground, var(--vscode-input-foreground, #e5e5e5));
|
|
150
|
+
padding: 0 8px;
|
|
151
|
+
font-size: 12px;
|
|
152
|
+
font-weight: 400;
|
|
153
|
+
text-transform: none;
|
|
154
|
+
}
|
|
155
|
+
|
|
72
156
|
.viewer-update {
|
|
73
157
|
flex: 0 0 auto;
|
|
74
158
|
display: flex;
|
|
@@ -308,6 +392,7 @@
|
|
|
308
392
|
}
|
|
309
393
|
|
|
310
394
|
.viewer-git,
|
|
395
|
+
.viewer-cdx,
|
|
311
396
|
.viewer-insights,
|
|
312
397
|
.viewer-health {
|
|
313
398
|
display: grid;
|
|
@@ -315,6 +400,7 @@
|
|
|
315
400
|
}
|
|
316
401
|
|
|
317
402
|
.viewer-git__summary,
|
|
403
|
+
.viewer-cdx__summary,
|
|
318
404
|
.viewer-insights__summary,
|
|
319
405
|
.viewer-health__summary {
|
|
320
406
|
display: grid;
|
|
@@ -322,19 +408,469 @@
|
|
|
322
408
|
gap: 8px;
|
|
323
409
|
}
|
|
324
410
|
|
|
411
|
+
.viewer-cdx__workspace {
|
|
412
|
+
display: grid;
|
|
413
|
+
grid-template-columns: minmax(280px, 1.35fr) minmax(240px, 0.85fr);
|
|
414
|
+
gap: 12px;
|
|
415
|
+
align-items: start;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
.viewer-cdx__stack {
|
|
419
|
+
display: grid;
|
|
420
|
+
gap: 12px;
|
|
421
|
+
min-width: 0;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
.viewer-cdx__card,
|
|
425
|
+
.viewer-cdx__section {
|
|
426
|
+
min-width: 0;
|
|
427
|
+
border: 1px solid var(--vscode-panel-border, #333333);
|
|
428
|
+
border-radius: 6px;
|
|
429
|
+
background: var(--vscode-editorWidget-background, #202020);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
.viewer-cdx__card {
|
|
433
|
+
padding: 10px;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
.viewer-cdx__label,
|
|
437
|
+
.viewer-cdx__meta {
|
|
438
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
439
|
+
font-size: 12px;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
.viewer-cdx__value {
|
|
443
|
+
margin-top: 4px;
|
|
444
|
+
font-size: 16px;
|
|
445
|
+
font-weight: 700;
|
|
446
|
+
overflow-wrap: anywhere;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
.viewer-cdx__section {
|
|
450
|
+
padding: 12px;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
.viewer-cdx__heading {
|
|
454
|
+
margin: 0 0 10px;
|
|
455
|
+
font-size: 13px;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
.viewer-cdx__list,
|
|
459
|
+
.viewer-cdx__commands {
|
|
460
|
+
display: grid;
|
|
461
|
+
gap: 6px;
|
|
462
|
+
margin: 0;
|
|
463
|
+
padding: 0;
|
|
464
|
+
list-style: none;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
.viewer-cdx__row,
|
|
468
|
+
.viewer-cdx__entity {
|
|
469
|
+
min-width: 0;
|
|
470
|
+
padding: 9px;
|
|
471
|
+
border: 1px solid color-mix(in srgb, var(--vscode-panel-border, #333333) 72%, transparent);
|
|
472
|
+
border-radius: 6px;
|
|
473
|
+
background: color-mix(in srgb, var(--vscode-editorWidget-background, #202020) 76%, transparent);
|
|
474
|
+
overflow-wrap: anywhere;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
.viewer-cdx__row,
|
|
478
|
+
.viewer-cdx__entity-main {
|
|
479
|
+
display: flex;
|
|
480
|
+
align-items: flex-start;
|
|
481
|
+
justify-content: space-between;
|
|
482
|
+
gap: 8px;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
.viewer-cdx__row strong,
|
|
486
|
+
.viewer-cdx__entity-main > span {
|
|
487
|
+
min-width: 0;
|
|
488
|
+
text-align: right;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
.viewer-cdx__entity-status {
|
|
492
|
+
display: flex;
|
|
493
|
+
flex-wrap: wrap;
|
|
494
|
+
justify-content: flex-end;
|
|
495
|
+
gap: 6px;
|
|
496
|
+
min-width: 110px;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
.viewer-cdx__badge {
|
|
500
|
+
display: inline-flex;
|
|
501
|
+
align-items: center;
|
|
502
|
+
justify-content: center;
|
|
503
|
+
min-height: 20px;
|
|
504
|
+
max-width: 100%;
|
|
505
|
+
border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
|
|
506
|
+
border-radius: 999px;
|
|
507
|
+
padding: 2px 8px;
|
|
508
|
+
font-size: 11px;
|
|
509
|
+
font-weight: 700;
|
|
510
|
+
line-height: 1.2;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
.viewer-cdx__remaining {
|
|
514
|
+
display: inline-flex;
|
|
515
|
+
align-items: baseline;
|
|
516
|
+
gap: 5px;
|
|
517
|
+
min-height: 24px;
|
|
518
|
+
border: 1px solid color-mix(in srgb, currentColor 32%, transparent);
|
|
519
|
+
border-radius: 999px;
|
|
520
|
+
padding: 3px 9px;
|
|
521
|
+
font-size: 11px;
|
|
522
|
+
font-weight: 700;
|
|
523
|
+
line-height: 1.2;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
.viewer-cdx__remaining span {
|
|
527
|
+
color: currentColor;
|
|
528
|
+
opacity: 0.8;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
.viewer-cdx__remaining strong {
|
|
532
|
+
font-size: 13px;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
.viewer-cdx__remaining--ok {
|
|
536
|
+
background: rgba(34, 197, 94, 0.14);
|
|
537
|
+
color: #22c55e;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
.viewer-cdx__remaining--warn {
|
|
541
|
+
background: rgba(245, 158, 11, 0.16);
|
|
542
|
+
color: #f59e0b;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
.viewer-cdx__remaining--bad {
|
|
546
|
+
background: rgba(239, 68, 68, 0.16);
|
|
547
|
+
color: #ef4444;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
.viewer-cdx__remaining--neutral {
|
|
551
|
+
background: color-mix(in srgb, var(--vscode-descriptionForeground, #aaaaaa) 14%, transparent);
|
|
552
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
.viewer-cdx__badge--ok {
|
|
556
|
+
background: rgba(34, 197, 94, 0.14);
|
|
557
|
+
color: #22c55e;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
.viewer-cdx__badge--warn {
|
|
561
|
+
background: rgba(245, 158, 11, 0.16);
|
|
562
|
+
color: #f59e0b;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
.viewer-cdx__badge--bad {
|
|
566
|
+
background: rgba(239, 68, 68, 0.16);
|
|
567
|
+
color: #ef4444;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
.viewer-cdx__badge--neutral {
|
|
571
|
+
background: color-mix(in srgb, var(--vscode-descriptionForeground, #aaaaaa) 14%, transparent);
|
|
572
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
.viewer-cdx__pills {
|
|
576
|
+
display: flex;
|
|
577
|
+
flex-wrap: wrap;
|
|
578
|
+
gap: 6px;
|
|
579
|
+
margin-top: 8px;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
.viewer-cdx__table-wrap {
|
|
583
|
+
min-width: 0;
|
|
584
|
+
overflow-x: auto;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
.viewer-cdx__table {
|
|
588
|
+
width: 100%;
|
|
589
|
+
min-width: 920px;
|
|
590
|
+
border-collapse: collapse;
|
|
591
|
+
font-size: 12px;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
.viewer-cdx__table th,
|
|
595
|
+
.viewer-cdx__table td {
|
|
596
|
+
padding: 7px 8px;
|
|
597
|
+
border-bottom: 1px solid color-mix(in srgb, var(--vscode-panel-border, #333333) 72%, transparent);
|
|
598
|
+
text-align: left;
|
|
599
|
+
vertical-align: middle;
|
|
600
|
+
white-space: nowrap;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
.viewer-cdx__table th {
|
|
604
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
605
|
+
font-size: 10px;
|
|
606
|
+
font-weight: 700;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
.viewer-cdx__table td {
|
|
610
|
+
color: var(--vscode-foreground, #d4d4d4);
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
.viewer-cdx__table tbody tr:last-child td {
|
|
614
|
+
border-bottom: 0;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
.viewer-cdx__session-name {
|
|
618
|
+
font-weight: 700;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
.viewer-cdx__pill {
|
|
622
|
+
display: inline-flex;
|
|
623
|
+
align-items: baseline;
|
|
624
|
+
gap: 5px;
|
|
625
|
+
min-width: 0;
|
|
626
|
+
max-width: 100%;
|
|
627
|
+
border-radius: 4px;
|
|
628
|
+
padding: 3px 6px;
|
|
629
|
+
background: var(--vscode-input-background, #1f1f1f);
|
|
630
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
631
|
+
font-size: 11px;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
.viewer-cdx__pill strong {
|
|
635
|
+
min-width: 0;
|
|
636
|
+
color: var(--vscode-foreground, #d4d4d4);
|
|
637
|
+
overflow-wrap: anywhere;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
.viewer-cdx__commands li {
|
|
641
|
+
display: grid;
|
|
642
|
+
grid-template-columns: 22px minmax(0, 1fr);
|
|
643
|
+
align-items: start;
|
|
644
|
+
gap: 7px;
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
.viewer-cdx__commands li > span {
|
|
648
|
+
display: grid;
|
|
649
|
+
width: 22px;
|
|
650
|
+
height: 22px;
|
|
651
|
+
place-items: center;
|
|
652
|
+
border-radius: 999px;
|
|
653
|
+
background: var(--vscode-input-background, #1f1f1f);
|
|
654
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
655
|
+
font-size: 11px;
|
|
656
|
+
font-weight: 700;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
.viewer-cdx__commands code {
|
|
660
|
+
display: block;
|
|
661
|
+
min-width: 0;
|
|
662
|
+
padding: 7px 9px;
|
|
663
|
+
border-radius: 6px;
|
|
664
|
+
background: var(--vscode-textCodeBlock-background, #111111);
|
|
665
|
+
color: var(--vscode-textPreformat-foreground, #d7ba7d);
|
|
666
|
+
overflow-wrap: anywhere;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
.viewer-cdx__state,
|
|
670
|
+
.viewer-cdx__empty {
|
|
671
|
+
margin: 0;
|
|
672
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
673
|
+
overflow-wrap: anywhere;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
@media (max-width: 860px) {
|
|
677
|
+
.viewer-cdx__workspace {
|
|
678
|
+
grid-template-columns: 1fr;
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
|
|
325
682
|
.viewer-git__section h2 {
|
|
326
683
|
margin-bottom: 8px;
|
|
327
684
|
}
|
|
328
685
|
|
|
686
|
+
.viewer-git__workspace {
|
|
687
|
+
display: grid;
|
|
688
|
+
grid-template-columns: minmax(120px, 0.45fr) minmax(220px, 0.9fr) minmax(280px, 1.3fr);
|
|
689
|
+
gap: 12px;
|
|
690
|
+
align-items: start;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.viewer-git__domains {
|
|
694
|
+
display: grid;
|
|
695
|
+
gap: 6px;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
.viewer-git__domain,
|
|
699
|
+
.viewer-git__file {
|
|
700
|
+
width: 100%;
|
|
701
|
+
min-width: 0;
|
|
702
|
+
border: 1px solid var(--vscode-panel-border, #333333);
|
|
703
|
+
border-radius: 6px;
|
|
704
|
+
background: var(--vscode-editorWidget-background, #202020);
|
|
705
|
+
color: var(--vscode-foreground, #dddddd);
|
|
706
|
+
font: inherit;
|
|
707
|
+
text-align: left;
|
|
708
|
+
cursor: pointer;
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
.viewer-git__domain {
|
|
712
|
+
display: flex;
|
|
713
|
+
align-items: center;
|
|
714
|
+
justify-content: space-between;
|
|
715
|
+
gap: 8px;
|
|
716
|
+
padding: 8px 9px;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
.viewer-git__domain-label {
|
|
720
|
+
display: inline-flex;
|
|
721
|
+
align-items: center;
|
|
722
|
+
gap: 5px;
|
|
723
|
+
min-width: 0;
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
.viewer-git__domain.is-active,
|
|
727
|
+
.viewer-git__file.is-active {
|
|
728
|
+
border-color: var(--vscode-focusBorder, #4ea1ff);
|
|
729
|
+
background: color-mix(in srgb, var(--vscode-editorWidget-background, #202020) 72%, var(--vscode-textLink-foreground, #4ea1ff));
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
.viewer-git__content,
|
|
733
|
+
.viewer-git__detail {
|
|
734
|
+
min-width: 0;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
.viewer-git__panel {
|
|
738
|
+
min-width: 0;
|
|
739
|
+
padding: 10px;
|
|
740
|
+
border: 1px solid var(--vscode-panel-border, #333333);
|
|
741
|
+
border-radius: 6px;
|
|
742
|
+
background: color-mix(in srgb, var(--vscode-editorWidget-background, #202020) 72%, transparent);
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
.viewer-git__panel[hidden] {
|
|
746
|
+
display: none !important;
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
.viewer-git__panel-header {
|
|
750
|
+
display: flex;
|
|
751
|
+
align-items: center;
|
|
752
|
+
justify-content: space-between;
|
|
753
|
+
gap: 10px;
|
|
754
|
+
margin-bottom: 10px;
|
|
755
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
756
|
+
font-size: 12px;
|
|
757
|
+
font-weight: 700;
|
|
758
|
+
text-transform: uppercase;
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
.viewer-git__panel-header strong {
|
|
762
|
+
min-width: 0;
|
|
763
|
+
overflow-wrap: anywhere;
|
|
764
|
+
text-align: right;
|
|
765
|
+
}
|
|
766
|
+
|
|
329
767
|
.viewer-git__files li {
|
|
330
768
|
min-width: 0;
|
|
769
|
+
overflow-wrap: anywhere;
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
.viewer-git__commits {
|
|
773
|
+
display: grid;
|
|
774
|
+
gap: 6px;
|
|
775
|
+
margin: 10px 0 0;
|
|
776
|
+
padding: 0;
|
|
777
|
+
list-style: none;
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
.viewer-git__commit-row {
|
|
781
|
+
min-width: 0;
|
|
782
|
+
padding: 8px 9px;
|
|
783
|
+
border: 1px solid var(--vscode-panel-border, #333333);
|
|
784
|
+
border-radius: 6px;
|
|
785
|
+
background: var(--vscode-editorWidget-background, #202020);
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
.viewer-git__commit-main,
|
|
789
|
+
.viewer-git__commit-meta {
|
|
790
|
+
display: flex;
|
|
791
|
+
gap: 8px;
|
|
792
|
+
min-width: 0;
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
.viewer-git__commit-main {
|
|
796
|
+
align-items: baseline;
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
.viewer-git__commit-main strong {
|
|
800
|
+
min-width: 0;
|
|
801
|
+
overflow-wrap: anywhere;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
.viewer-git__commit-meta {
|
|
805
|
+
align-items: center;
|
|
806
|
+
flex-wrap: wrap;
|
|
807
|
+
margin-top: 4px;
|
|
808
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
809
|
+
font-size: 12px;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
.viewer-git__commit-refs {
|
|
813
|
+
padding: 2px 6px;
|
|
814
|
+
border-radius: 999px;
|
|
815
|
+
background: color-mix(in srgb, var(--vscode-editorWidget-background, #202020) 70%, var(--vscode-textLink-foreground, #4ea1ff));
|
|
816
|
+
color: var(--vscode-textLink-foreground, #4ea1ff);
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
.viewer-git__file {
|
|
820
|
+
display: flex;
|
|
821
|
+
align-items: center;
|
|
822
|
+
justify-content: space-between;
|
|
823
|
+
gap: 8px;
|
|
331
824
|
padding: 7px 9px;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
.viewer-git__file-path {
|
|
828
|
+
min-width: 0;
|
|
829
|
+
overflow-wrap: anywhere;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
.viewer-git__file-kind {
|
|
833
|
+
flex: 0 0 auto;
|
|
834
|
+
padding: 2px 6px;
|
|
835
|
+
border-radius: 999px;
|
|
836
|
+
background: color-mix(in srgb, var(--vscode-textLink-foreground, #4ea1ff) 18%, transparent);
|
|
837
|
+
color: var(--vscode-textLink-foreground, #4ea1ff);
|
|
838
|
+
font-size: 11px;
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
.viewer-git__detail {
|
|
842
|
+
padding: 10px;
|
|
332
843
|
border: 1px solid var(--vscode-panel-border, #333333);
|
|
333
844
|
border-radius: 6px;
|
|
334
845
|
background: var(--vscode-editorWidget-background, #202020);
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
.viewer-git__detail-title {
|
|
849
|
+
margin-bottom: 8px;
|
|
850
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
851
|
+
font-size: 12px;
|
|
852
|
+
font-weight: 700;
|
|
853
|
+
text-transform: uppercase;
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
.viewer-git__diff {
|
|
857
|
+
min-height: 160px;
|
|
335
858
|
overflow-wrap: anywhere;
|
|
336
859
|
}
|
|
337
860
|
|
|
861
|
+
.viewer-git__diff-meta {
|
|
862
|
+
margin-bottom: 8px;
|
|
863
|
+
color: var(--vscode-descriptionForeground, #aaaaaa);
|
|
864
|
+
font-size: 12px;
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
.viewer-git__diff pre {
|
|
868
|
+
max-height: 58vh;
|
|
869
|
+
overflow: auto;
|
|
870
|
+
margin: 0;
|
|
871
|
+
white-space: pre;
|
|
872
|
+
}
|
|
873
|
+
|
|
338
874
|
.viewer-git__commit,
|
|
339
875
|
.viewer-git__state {
|
|
340
876
|
margin: 0;
|
|
@@ -354,6 +890,10 @@
|
|
|
354
890
|
.viewer-document {
|
|
355
891
|
inset: 8px;
|
|
356
892
|
}
|
|
893
|
+
|
|
894
|
+
.viewer-git__workspace {
|
|
895
|
+
grid-template-columns: 1fr;
|
|
896
|
+
}
|
|
357
897
|
}
|
|
358
898
|
|
|
359
899
|
.viewer-document__content a {
|
|
@@ -555,8 +1095,13 @@
|
|
|
555
1095
|
flex: 1 1 0;
|
|
556
1096
|
}
|
|
557
1097
|
|
|
558
|
-
.viewer-
|
|
559
|
-
flex:
|
|
1098
|
+
.viewer-refresh-menu {
|
|
1099
|
+
flex: 1 1 0;
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1102
|
+
.viewer-refresh-menu > .btn {
|
|
1103
|
+
width: 100%;
|
|
1104
|
+
justify-content: center;
|
|
560
1105
|
}
|
|
561
1106
|
|
|
562
1107
|
.viewer-document {
|
package/logics_manager/audit.py
CHANGED
|
@@ -172,9 +172,9 @@ def _has_mermaid_block(text: str) -> bool:
|
|
|
172
172
|
def _companion_doc_is_mature(doc: "DocMeta") -> bool:
|
|
173
173
|
status = _status_normalized(doc.status)
|
|
174
174
|
if doc.kind.kind == "product":
|
|
175
|
-
return status in {"active", "validated", "archived"}
|
|
175
|
+
return status in {"active", "accepted", "validated", "settled", "archived"}
|
|
176
176
|
if doc.kind.kind == "architecture":
|
|
177
|
-
return status in {"accepted", "superseded", "archived"}
|
|
177
|
+
return status in {"accepted", "validated", "superseded", "settled", "archived"}
|
|
178
178
|
return False
|
|
179
179
|
|
|
180
180
|
|
package/logics_manager/cli.py
CHANGED
|
@@ -195,15 +195,21 @@ def _find_executable_paths(command: str) -> list[str]:
|
|
|
195
195
|
def _print_path_conflict_guidance(paths: list[str]) -> None:
|
|
196
196
|
if len(paths) <= 1:
|
|
197
197
|
return
|
|
198
|
+
path_lines = [f" - {path}" for path in paths]
|
|
198
199
|
print(
|
|
199
200
|
"\n".join(
|
|
200
201
|
[
|
|
201
202
|
"",
|
|
202
203
|
"Multiple logics-manager executables are on PATH. If --version still shows an older release, an earlier install is taking precedence.",
|
|
204
|
+
"Detected executables:",
|
|
205
|
+
*path_lines,
|
|
203
206
|
"Diagnose with:",
|
|
204
|
-
"
|
|
207
|
+
" type -a logics-manager",
|
|
208
|
+
" whence -a logics-manager # zsh",
|
|
205
209
|
" pipx list",
|
|
206
210
|
" npm list -g @grifhinz/logics-manager --depth=0",
|
|
211
|
+
"",
|
|
212
|
+
"If you recently changed installs in zsh, run `rehash` or open a new terminal before retrying.",
|
|
207
213
|
]
|
|
208
214
|
)
|
|
209
215
|
)
|
|
@@ -10,7 +10,7 @@ from pathlib import Path
|
|
|
10
10
|
WORKFLOW_KINDS = ("request", "backlog", "task")
|
|
11
11
|
COMPANION_KINDS = ("product", "architecture")
|
|
12
12
|
OPEN_STATUSES = {"Draft", "Ready", "In progress", "Blocked"}
|
|
13
|
-
CLOSED_STATUSES = {"Done", "Archived"}
|
|
13
|
+
CLOSED_STATUSES = {"Done", "Settled", "Archived"}
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
@dataclass(frozen=True)
|
package/logics_manager/lint.py
CHANGED
|
@@ -25,8 +25,8 @@ KINDS = {
|
|
|
25
25
|
"request": Kind("logics/request", "req", False, ("From version", "Understanding", "Confidence"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
|
|
26
26
|
"backlog": Kind("logics/backlog", "item", True, ("From version", "Understanding", "Confidence", "Progress"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
|
|
27
27
|
"task": Kind("logics/tasks", "task", True, ("From version", "Understanding", "Confidence", "Progress"), ("Draft", "Ready", "In progress", "Blocked", "Done", "Obsolete", "Archived")),
|
|
28
|
-
"product": Kind("logics/product", "prod", False, ("Date", "Status", "Related request", "Related backlog", "Related task", "Related architecture", "Reminder"), ("Draft", "Proposed", "Active", "Validated", "Rejected", "Superseded", "Archived")),
|
|
29
|
-
"architecture": Kind("logics/architecture", "adr", False, ("Date", "Status", "Drivers", "Related request", "Related backlog", "Related task", "Reminder"), ("Draft", "Proposed", "Accepted", "Rejected", "Superseded", "Archived")),
|
|
28
|
+
"product": Kind("logics/product", "prod", False, ("Date", "Status", "Related request", "Related backlog", "Related task", "Related architecture", "Reminder"), ("Draft", "Proposed", "Active", "Accepted", "Validated", "Rejected", "Superseded", "Settled", "Archived")),
|
|
29
|
+
"architecture": Kind("logics/architecture", "adr", False, ("Date", "Status", "Drivers", "Related request", "Related backlog", "Related task", "Reminder"), ("Draft", "Proposed", "Accepted", "Validated", "Rejected", "Superseded", "Settled", "Archived")),
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
WORKFLOW_KINDS = {"request", "backlog", "task"}
|