@unson/brainbase-mcp 0.41.9 → 0.41.11

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.
@@ -186,6 +186,21 @@ function makePage(container, context) {
186
186
  return page;
187
187
  }
188
188
 
189
+ /** Names of judgment references from the local Graph, under the host's current access. */
190
+ function judgmentReferenceLabelReader(context) {
191
+ const client = createGraphClient({ fetcher: context.fetcher, basePath: '/api/graph', token: context.token });
192
+ return async (references) => {
193
+ const labels = new Map();
194
+ await Promise.all(references.map(async ({ ref }) => {
195
+ const result = await client.read(`/entities/${encodeURIComponent(ref)}`);
196
+ const entity = result.state === 'ok' && isRecord(result.payload?.entity) ? result.payload.entity : null;
197
+ const name = entity && entity.id === ref && typeof entity.name === 'string' ? entity.name.trim() : '';
198
+ if (name) labels.set(ref, name);
199
+ }));
200
+ return labels;
201
+ };
202
+ }
203
+
189
204
  function mountToday(container, context) {
190
205
  return createJudgmentHistoryUI({
191
206
  root: makePage(container, context),
@@ -195,6 +210,7 @@ function mountToday(container, context) {
195
210
  fetcher: context.fetcher,
196
211
  token: context.token,
197
212
  basePath: '/api/judgment-history',
213
+ resolveReferenceLabels: judgmentReferenceLabelReader(context),
198
214
  });
199
215
  }
200
216
 
@@ -4,7 +4,7 @@
4
4
  --bb-color-accent-strong: var(--bb-color-brand-indigo);
5
5
  --bb-color-action: var(--bb-color-brand-indigo);
6
6
  display: grid;
7
- grid-template-rows: auto auto minmax(0, 1fr);
7
+ grid-template-rows: auto auto auto minmax(0, 1fr);
8
8
  gap: 4px;
9
9
  height: 100%;
10
10
  min-height: 0;
@@ -108,6 +108,70 @@
108
108
  color: var(--bb-color-danger);
109
109
  }
110
110
 
111
+ .bb-minutes-toolbar {
112
+ display: flex;
113
+ flex-wrap: wrap;
114
+ gap: 8px 12px;
115
+ align-items: flex-end;
116
+ min-width: 0;
117
+ padding: 8px 12px;
118
+ border: 1px solid var(--bb-color-border);
119
+ border-radius: var(--bb-radius-md, 6px);
120
+ background: var(--bb-color-surface);
121
+ }
122
+
123
+ .bb-minutes-filter-host {
124
+ display: contents;
125
+ }
126
+
127
+ .bb-minutes-filter-field {
128
+ display: grid;
129
+ gap: 2px;
130
+ min-width: 0;
131
+ }
132
+
133
+ .bb-minutes-filter-field[hidden],
134
+ .bb-minutes-filter-host[hidden],
135
+ .bb-minutes-filter-reset[hidden] {
136
+ display: none;
137
+ }
138
+
139
+ .bb-minutes-filter-field.is-keyword {
140
+ flex: 1 1 180px;
141
+ max-width: 260px;
142
+ }
143
+
144
+ .bb-minutes-filter-field .bb-minutes-input {
145
+ min-height: 38px;
146
+ padding: 4px 8px;
147
+ font-size: 13px;
148
+ }
149
+
150
+ .bb-minutes-filter-period {
151
+ display: flex;
152
+ gap: 4px;
153
+ align-items: center;
154
+ }
155
+
156
+ .bb-minutes-filter-period .bb-minutes-input {
157
+ width: 8.75rem;
158
+ }
159
+
160
+ .bb-minutes-filter-period-sep {
161
+ color: var(--bb-color-muted);
162
+ }
163
+
164
+ .bb-minutes-filter-combobox {
165
+ min-width: 11rem;
166
+ max-width: 16rem;
167
+ }
168
+
169
+ .bb-minutes-create-reason {
170
+ color: var(--bb-color-muted);
171
+ font-size: 12px;
172
+ overflow-wrap: anywhere;
173
+ }
174
+
111
175
  .bb-minutes-columns {
112
176
  display: grid;
113
177
  grid-template-columns: minmax(340px, 380px) minmax(0, 1fr);
@@ -136,6 +200,12 @@
136
200
  overflow-y: auto;
137
201
  }
138
202
 
203
+ /* Keep the heading, actions and body together at the top instead of spreading them over the pane. */
204
+ .bb-minutes-detail-pane,
205
+ .bb-minutes-document {
206
+ align-content: start;
207
+ }
208
+
139
209
  .bb-minutes-list-pane {
140
210
  grid-template-rows: auto minmax(0, 1fr);
141
211
  gap: 0;
@@ -146,7 +216,8 @@
146
216
  .bb-minutes-detail-head,
147
217
  .bb-minutes-document-head,
148
218
  .bb-minutes-actions,
149
- .bb-minutes-version-band {
219
+ .bb-minutes-version-actions,
220
+ .bb-minutes-version-meta {
150
221
  display: flex;
151
222
  gap: 8px;
152
223
  align-items: center;
@@ -328,12 +399,66 @@
328
399
  margin: 0;
329
400
  }
330
401
 
331
- .bb-minutes-version-band {
402
+ .bb-minutes-version-actions {
403
+ justify-content: flex-start;
404
+ margin: 0;
405
+ }
406
+
407
+ /* Which version is shown sits quietly below the body (story-meeting-minutes-edit-and-withdraw-ui-v1 AC-06). */
408
+ .bb-minutes-version-meta {
409
+ justify-content: flex-start;
332
410
  margin: 0;
411
+ padding-top: 8px;
412
+ border-top: 1px solid var(--bb-color-border);
413
+ color: var(--bb-color-muted);
414
+ font-size: 12px;
415
+ }
416
+
417
+ .bb-minutes-withdrawn,
418
+ .bb-minutes-withdraw-guard,
419
+ .bb-minutes-edit-note {
420
+ margin: 0;
421
+ color: var(--bb-color-muted);
422
+ font-size: 13px;
423
+ overflow-wrap: anywhere;
424
+ }
425
+
426
+ .bb-minutes-withdrawn {
333
427
  padding: 8px 12px;
428
+ background: var(--bb-color-surface);
334
429
  border: 1px solid var(--bb-color-border);
335
- border-radius: 8px;
336
- font-size: 13px;
430
+ border-radius: var(--bb-radius-sm, 4px);
431
+ }
432
+
433
+ .bb-minutes-withdraw-confirm {
434
+ display: grid;
435
+ gap: 8px;
436
+ padding: 12px;
437
+ border: 1px solid var(--bb-color-danger);
438
+ border-radius: var(--bb-radius-sm, 4px);
439
+ background: var(--bb-color-paper);
440
+ }
441
+
442
+ .bb-minutes-withdraw-confirm p,
443
+ .bb-minutes-withdraw-confirm ul {
444
+ margin: 0;
445
+ }
446
+
447
+ .bb-minutes-withdraw-title {
448
+ font-weight: 600;
449
+ }
450
+
451
+ .bb-minutes-edit-form {
452
+ display: grid;
453
+ gap: 8px;
454
+ }
455
+
456
+ .bb-minutes-edit-form textarea {
457
+ width: 100%;
458
+ box-sizing: border-box;
459
+ min-height: 16rem;
460
+ font: inherit;
461
+ line-height: 1.6;
337
462
  }
338
463
 
339
464
  .bb-minutes-version-content {
@@ -419,6 +544,18 @@
419
544
  color: var(--bb-color-action-text);
420
545
  }
421
546
 
547
+ .bb-minutes-button.is-quiet {
548
+ border-color: var(--bb-color-border);
549
+ color: var(--bb-color-muted);
550
+ }
551
+
552
+ .bb-minutes-button.is-danger,
553
+ .bb-minutes-button.is-danger:hover {
554
+ border-color: var(--bb-color-danger);
555
+ background: var(--bb-color-danger);
556
+ color: var(--bb-color-action-text);
557
+ }
558
+
422
559
  .bb-minutes-button:disabled {
423
560
  cursor: wait;
424
561
  opacity: 0.6;
@@ -464,4 +601,100 @@
464
601
  .bb-minutes-columns {
465
602
  grid-template-columns: 1fr;
466
603
  }
604
+
605
+ .bb-minutes-filter-field {
606
+ flex: 1 1 calc(50% - 6px);
607
+ max-width: none;
608
+ }
609
+
610
+ .bb-minutes-filter-field.is-keyword,
611
+ .bb-minutes-filter-field.is-period {
612
+ flex-basis: 100%;
613
+ max-width: none;
614
+ }
615
+
616
+ .bb-minutes-filter-period .bb-minutes-input {
617
+ flex: 1 1 0;
618
+ width: auto;
619
+ min-width: 0;
620
+ }
621
+
622
+ .bb-minutes-filter-combobox {
623
+ min-width: 0;
624
+ max-width: none;
625
+ }
626
+ }
627
+
628
+ /* この会議から: project, tasks, decisions, storage and sharing. */
629
+ .bb-minutes-connections {
630
+ display: grid;
631
+ align-self: start;
632
+ align-content: start;
633
+ gap: 4px;
634
+ margin: 8px 0 4px;
635
+ padding: 8px 12px;
636
+ border: 1px solid var(--bb-color-border);
637
+ border-radius: var(--bb-radius-md, 6px);
638
+ background: var(--bb-color-surface);
639
+ }
640
+
641
+ .bb-minutes-connections-title {
642
+ margin: 0;
643
+ color: var(--bb-color-muted);
644
+ font-size: 12px;
645
+ font-weight: 700;
646
+ }
647
+
648
+ .bb-minutes-connection-list {
649
+ display: grid;
650
+ gap: 2px;
651
+ }
652
+
653
+ .bb-minutes-connection-row {
654
+ display: grid;
655
+ grid-template-columns: 7em minmax(0, 1fr);
656
+ gap: 8px;
657
+ align-items: baseline;
658
+ font-size: 13px;
659
+ line-height: 1.5;
660
+ }
661
+
662
+ .bb-minutes-connection-label {
663
+ color: var(--bb-color-muted);
664
+ font-size: 12px;
665
+ }
666
+
667
+ .bb-minutes-connection-items {
668
+ display: flex;
669
+ flex-wrap: wrap;
670
+ gap: 2px 12px;
671
+ margin: 0;
672
+ padding: 0;
673
+ list-style: none;
674
+ min-width: 0;
675
+ }
676
+
677
+ .bb-minutes-connection-items li {
678
+ min-width: 0;
679
+ overflow-wrap: anywhere;
680
+ }
681
+
682
+ .bb-minutes-connection-link {
683
+ color: var(--bb-color-brand-indigo);
684
+ }
685
+
686
+ .bb-minutes-connection-detail {
687
+ margin-left: 6px;
688
+ color: var(--bb-color-muted);
689
+ font-size: 12px;
690
+ }
691
+
692
+ .bb-minutes-connection-note {
693
+ margin: 0;
694
+ color: var(--bb-color-muted);
695
+ overflow-wrap: anywhere;
696
+ }
697
+
698
+ .bb-minutes-connection-note.is-unavailable {
699
+ color: var(--bb-color-warning);
467
700
  }