@unson/brainbase-mcp 0.7.0 → 0.8.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.
Files changed (83) hide show
  1. package/contracts/foundation/graph-history.sql +634 -0
  2. package/contracts/judgment-value-proof/schema.json +43 -1
  3. package/dist/canonical-task-service.js +16 -5
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.js +107 -0
  6. package/dist/company-os-objectives.d.ts +11 -0
  7. package/dist/company-os-objectives.js +84 -47
  8. package/dist/foundation-authenticated-tools.d.ts +56 -0
  9. package/dist/foundation-authenticated-tools.js +347 -0
  10. package/dist/foundation-graph-http.d.ts +43 -0
  11. package/dist/foundation-graph-http.js +243 -0
  12. package/dist/foundation-graph-write.d.ts +90 -0
  13. package/dist/foundation-graph-write.js +447 -0
  14. package/dist/foundation-public-provider.d.ts +140 -0
  15. package/dist/foundation-public-provider.js +192 -0
  16. package/dist/graph-corrections.d.ts +157 -0
  17. package/dist/graph-corrections.js +620 -0
  18. package/dist/graph-foundation-reader.d.ts +60 -0
  19. package/dist/graph-foundation-reader.js +494 -0
  20. package/dist/graph-retrieval.d.ts +6 -1
  21. package/dist/graph-revision-reader.d.ts +80 -0
  22. package/dist/graph-revision-reader.js +246 -0
  23. package/dist/graph-web-http.d.ts +26 -0
  24. package/dist/graph-web-http.js +215 -0
  25. package/dist/graph-web.d.ts +364 -0
  26. package/dist/graph-web.js +639 -0
  27. package/dist/judgment-problem-snapshot.d.ts +30 -2
  28. package/dist/judgment-problem-snapshot.js +302 -6
  29. package/dist/judgment-value-proof-review.d.ts +166 -0
  30. package/dist/judgment-value-proof-review.js +437 -0
  31. package/dist/judgment-value-proof.d.ts +28 -1
  32. package/dist/judgment-value-proof.js +53 -8
  33. package/dist/knowledge-continuation.d.ts +127 -0
  34. package/dist/knowledge-continuation.js +446 -0
  35. package/dist/knowledge-lookup.d.ts +178 -0
  36. package/dist/knowledge-lookup.js +758 -0
  37. package/dist/local-web-fetch-bridge.d.ts +5 -0
  38. package/dist/local-web-fetch-bridge.js +37 -0
  39. package/dist/local-web-host.d.ts +109 -0
  40. package/dist/local-web-host.js +688 -0
  41. package/dist/local-web-security.d.ts +25 -0
  42. package/dist/local-web-security.js +95 -0
  43. package/dist/organization-graph.d.ts +15 -0
  44. package/dist/organization-graph.js +24 -4
  45. package/dist/personal-knowledge.d.ts +12 -0
  46. package/dist/personal-knowledge.js +29 -0
  47. package/dist/personal-memory-handover.d.ts +108 -0
  48. package/dist/personal-memory-handover.js +369 -0
  49. package/dist/philosophy-revision-reader.d.ts +85 -0
  50. package/dist/philosophy-revision-reader.js +241 -0
  51. package/dist/portable-graph.d.ts +24 -0
  52. package/dist/portable-graph.js +77 -0
  53. package/dist/server.d.ts +7 -2
  54. package/dist/server.js +9 -6
  55. package/dist/value-proof-review-http.d.ts +25 -0
  56. package/dist/value-proof-review-http.js +185 -0
  57. package/dist/world-model.d.ts +21 -3
  58. package/dist/world-model.js +94 -12
  59. package/package.json +94 -3
  60. package/ui/brainbase-tokens.css +56 -0
  61. package/ui/graph-own-share.js +367 -0
  62. package/ui/graph-projects-view.css +23 -0
  63. package/ui/graph-projects-view.js +730 -0
  64. package/ui/graph-registry-view.css +101 -0
  65. package/ui/graph-registry-view.js +804 -0
  66. package/ui/graph-view-shared.css +522 -0
  67. package/ui/graph-view-shared.js +1227 -0
  68. package/ui/judgment-view.css +119 -45
  69. package/ui/local-web-shell.css +396 -0
  70. package/ui/local-web-shell.js +378 -0
  71. package/ui/objective-editor-http-port.js +154 -0
  72. package/ui/objective-editor.css +180 -74
  73. package/ui/objective-editor.js +490 -43
  74. package/ui/outcome-knowledge.css +50 -14
  75. package/ui/outcome-knowledge.js +15 -1
  76. package/ui/outcome-mana.css +91 -14
  77. package/ui/outcome-mana.js +958 -61
  78. package/ui/value-proof-review.css +504 -0
  79. package/ui/value-proof-review.js +1104 -0
  80. package/ui/workspace-kit.css +485 -0
  81. package/ui/workspace-kit.js +229 -0
  82. package/ui/world-model-view.css +188 -0
  83. package/ui/world-model-view.js +486 -0
@@ -1,20 +1,38 @@
1
+ /*
2
+ * 判断の追跡. Looks like the organization edition's outcome parts: the header
3
+ * sits in a gradient box, each section is a white box and state notices are
4
+ * soft colored boxes. Every color comes from brainbase-tokens.css; the
5
+ * fallbacks keep the previous palette for hosts that do not load the tokens.
6
+ */
1
7
  .judgment-view {
2
- --judgment-ink: #172033;
3
- --judgment-muted: #667085;
4
- --judgment-border: #d8dee9;
5
- --judgment-panel: #ffffff;
6
- --judgment-surface: #f5f7fb;
7
- --judgment-accent: #3157d5;
8
- --judgment-success: #18794e;
9
- --judgment-warning: #9a6700;
10
- --judgment-danger: #b42318;
8
+ --judgment-ink: var(--bb-color-ink, #172033);
9
+ --judgment-muted: var(--bb-color-muted, #667085);
10
+ --judgment-border: var(--bb-color-border, #d8dee9);
11
+ --judgment-border-strong: var(--bb-color-border-strong, #d8dee9);
12
+ --judgment-panel: var(--bb-color-panel, #ffffff);
13
+ --judgment-surface: var(--bb-color-surface, #f5f7fb);
14
+ --judgment-header-start: var(--bb-color-header-start, #ffffff);
15
+ --judgment-header-end: var(--bb-color-header-end, #f5f7fb);
16
+ --judgment-eyebrow: var(--bb-color-eyebrow, #3157d5);
17
+ --judgment-accent: var(--bb-color-accent, #3157d5);
18
+ --judgment-accent-soft: var(--bb-color-accent-soft, #eef2ff);
19
+ --judgment-accent-strong: var(--bb-color-accent-strong, #1d2d68);
20
+ --judgment-focus: var(--bb-color-focus, #3157d5);
21
+ --judgment-success: var(--bb-color-success, #18794e);
22
+ --judgment-success-soft: var(--bb-color-success-soft, #f8fafc);
23
+ --judgment-warning: var(--bb-color-warning, #9a6700);
24
+ --judgment-warning-soft: var(--bb-color-warning-soft, #f8fafc);
25
+ --judgment-unavailable: var(--bb-color-warning, #995c00);
26
+ --judgment-danger: var(--bb-color-danger, #b42318);
27
+ --judgment-danger-soft: var(--bb-color-danger-soft, #f8fafc);
28
+ --judgment-invalid: var(--bb-color-danger, #8e2a2a);
11
29
  box-sizing: border-box;
12
30
  max-width: 920px;
13
31
  margin: 0 auto;
14
- padding: 28px;
15
32
  color: var(--judgment-ink);
16
- background: var(--judgment-surface);
17
- font: 15px/1.6 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
33
+ font-family: var(--bb-font-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
34
+ font-size: 14px;
35
+ line-height: 1.5;
18
36
  }
19
37
 
20
38
  .judgment-view *,
@@ -23,17 +41,23 @@
23
41
  box-sizing: inherit;
24
42
  }
25
43
 
44
+ /* Part header: eyebrow, title, lead and status inside the gradient box. */
26
45
  .judgment-view-header {
27
46
  display: grid;
28
- gap: 8px;
29
- margin-bottom: 20px;
47
+ gap: 0;
48
+ margin-bottom: 14px;
49
+ padding: 24px;
50
+ border: 1px solid var(--judgment-border);
51
+ border-radius: var(--bb-radius-lg, 16px);
52
+ background: linear-gradient(135deg, var(--judgment-header-start), var(--judgment-header-end));
30
53
  }
31
54
 
32
55
  .judgment-view-kicker {
33
- color: var(--judgment-accent);
34
- font-size: 11px;
35
- font-weight: 700;
56
+ color: var(--judgment-eyebrow);
57
+ font-size: .72rem;
58
+ font-weight: 750;
36
59
  letter-spacing: .12em;
60
+ text-transform: uppercase;
37
61
  }
38
62
 
39
63
  .judgment-view h1,
@@ -44,14 +68,15 @@
44
68
  }
45
69
 
46
70
  .judgment-view h1 {
47
- margin-bottom: 0;
48
- font-size: clamp(24px, 4vw, 34px);
71
+ margin: 4px 0 8px;
72
+ font-size: clamp(1.45rem, 3vw, 2rem);
73
+ line-height: 1.25;
49
74
  letter-spacing: -.02em;
50
75
  }
51
76
 
52
77
  .judgment-view h2 {
53
78
  margin-bottom: 14px;
54
- font-size: 18px;
79
+ font-size: 1.1rem;
55
80
  }
56
81
 
57
82
  .judgment-view h3 {
@@ -65,7 +90,7 @@
65
90
  }
66
91
 
67
92
  .judgment-view-mode {
68
- margin-bottom: 0;
93
+ margin-bottom: 12px;
69
94
  }
70
95
 
71
96
  .judgment-view-status {
@@ -73,30 +98,32 @@
73
98
  border: 1px solid currentColor;
74
99
  border-radius: 999px;
75
100
  padding: 2px 10px;
101
+ background: var(--judgment-panel);
76
102
  font-size: 12px;
77
103
  font-weight: 700;
78
104
  }
79
105
 
80
106
  .judgment-view-panel {
81
107
  margin-top: 14px;
82
- padding: 20px;
108
+ padding: 18px;
83
109
  border: 1px solid var(--judgment-border);
84
- border-radius: 12px;
110
+ border-radius: var(--bb-radius-md, 14px);
85
111
  background: var(--judgment-panel);
86
- box-shadow: 0 2px 10px rgb(22 32 55 / 4%);
87
112
  }
88
113
 
89
114
  .judgment-view-conclusion {
90
- border-color: color-mix(in srgb, var(--judgment-accent) 45%, var(--judgment-border));
115
+ box-shadow: inset 3px 0 var(--judgment-accent);
91
116
  }
92
117
 
93
118
  .judgment-view-conclusion-value {
94
119
  overflow: auto;
95
120
  margin: 0;
96
- padding: 14px;
97
- border-radius: 8px;
98
- background: #eef2ff;
99
- color: #1d2d68;
121
+ padding: 12px 14px;
122
+ border-radius: var(--bb-radius-sm, 7px);
123
+ background: var(--judgment-accent-soft);
124
+ color: var(--judgment-accent-strong);
125
+ font-family: var(--bb-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
126
+ font-size: 13px;
100
127
  white-space: pre-wrap;
101
128
  overflow-wrap: anywhere;
102
129
  }
@@ -106,16 +133,21 @@
106
133
  }
107
134
 
108
135
  .judgment-view a {
109
- color: var(--judgment-accent);
110
- font-weight: 600;
136
+ color: var(--judgment-accent-strong);
137
+ font-weight: 650;
138
+ }
139
+
140
+ .judgment-view a:focus-visible {
141
+ outline: 3px solid color-mix(in srgb, var(--judgment-focus) 45%, var(--judgment-panel));
142
+ outline-offset: 2px;
111
143
  }
112
144
 
145
+ /* State boxes: soft background and text in the state's color. */
113
146
  .judgment-view-notice {
114
147
  margin: 0;
115
- padding: 10px 12px;
116
- border-left: 3px solid currentColor;
117
- border-radius: 4px;
118
- background: #f8fafc;
148
+ padding: 11px 12px;
149
+ border-radius: var(--bb-radius-sm, 7px);
150
+ background: var(--judgment-surface);
119
151
  }
120
152
 
121
153
  .judgment-view-notice.is-unknown,
@@ -124,19 +156,35 @@
124
156
  color: var(--judgment-warning);
125
157
  }
126
158
 
159
+ .judgment-view-notice.is-unknown {
160
+ background: var(--judgment-warning-soft);
161
+ }
162
+
127
163
  .judgment-view-notice.is-permission_denied,
128
164
  .judgment-view-status.is-permission_denied {
129
165
  color: var(--judgment-danger);
130
166
  }
131
167
 
168
+ .judgment-view-notice.is-permission_denied {
169
+ background: var(--judgment-danger-soft);
170
+ }
171
+
132
172
  .judgment-view-notice.is-unavailable,
133
173
  .judgment-view-status.is-unavailable {
134
- color: #995c00;
174
+ color: var(--judgment-unavailable);
175
+ }
176
+
177
+ .judgment-view-notice.is-unavailable {
178
+ background: var(--judgment-warning-soft);
135
179
  }
136
180
 
137
181
  .judgment-view-notice.is-invalid,
138
182
  .judgment-view-status.is-invalid {
139
- color: #8e2a2a;
183
+ color: var(--judgment-invalid);
184
+ }
185
+
186
+ .judgment-view-notice.is-invalid {
187
+ background: var(--judgment-danger-soft);
140
188
  }
141
189
 
142
190
  .judgment-view-notice.is-resolved,
@@ -144,14 +192,29 @@
144
192
  color: var(--judgment-success);
145
193
  }
146
194
 
195
+ .judgment-view-notice.is-resolved {
196
+ color: var(--judgment-accent-strong);
197
+ background: var(--judgment-success-soft);
198
+ }
199
+
147
200
  .judgment-view-run-meta,
148
201
  .judgment-view-question,
149
202
  .judgment-view-objective-state {
150
203
  margin-bottom: 10px;
151
204
  }
152
205
 
206
+ .judgment-view > .judgment-view-notice,
207
+ .judgment-view-run-meta {
208
+ margin-top: 14px;
209
+ }
210
+
211
+ .judgment-view-run-meta {
212
+ color: var(--judgment-muted);
213
+ font-size: 13px;
214
+ }
215
+
153
216
  .judgment-view-objective-state {
154
- font-size: 18px;
217
+ font-size: 1.1rem;
155
218
  font-weight: 700;
156
219
  }
157
220
 
@@ -184,6 +247,12 @@
184
247
  padding-left: 20px;
185
248
  }
186
249
 
250
+ .judgment-view-child-list {
251
+ gap: 8px;
252
+ padding-left: 0;
253
+ list-style: none;
254
+ }
255
+
187
256
  .judgment-view-reference-list li,
188
257
  .judgment-view-evidence-list li,
189
258
  .judgment-view-criteria li {
@@ -193,10 +262,12 @@
193
262
  .judgment-view-child {
194
263
  display: grid;
195
264
  gap: 2px;
196
- padding: 9px 11px;
197
- border-left: 3px solid var(--judgment-border);
198
- border-radius: 4px;
199
- background: #f8fafc;
265
+ padding: 10px 12px;
266
+ border: 1px solid var(--judgment-border);
267
+ border-left: 3px solid var(--judgment-border-strong);
268
+ border-radius: var(--bb-radius-sm, 7px);
269
+ background: var(--judgment-panel);
270
+ overflow-wrap: anywhere;
200
271
  }
201
272
 
202
273
  .judgment-view-child.is-completed {
@@ -206,6 +277,7 @@
206
277
  .judgment-view-child.is-failed,
207
278
  .judgment-view-child.is-held {
208
279
  border-left-color: var(--judgment-warning);
280
+ background: var(--judgment-warning-soft);
209
281
  }
210
282
 
211
283
  .judgment-view-evaluation-block + .judgment-view-evaluation-block {
@@ -218,15 +290,17 @@
218
290
  margin-top: 0;
219
291
  }
220
292
 
221
- @media (max-width: 640px) {
222
- .judgment-view {
293
+ @media (max-width: 760px) {
294
+ .judgment-view-header {
223
295
  padding: 18px;
224
296
  }
225
297
 
226
298
  .judgment-view-panel {
227
- padding: 16px;
299
+ padding: 14px;
228
300
  }
301
+ }
229
302
 
303
+ @media (max-width: 640px) {
230
304
  .judgment-view-meta {
231
305
  grid-template-columns: 1fr;
232
306
  }
@@ -0,0 +1,396 @@
1
+ /*
2
+ * Shell of the local Web host, in the organization edition's layout: a dark
3
+ * left rail (brand, navigation, source) and a paper workspace. Uses only the
4
+ * shared tokens in brainbase-tokens.css.
5
+ */
6
+ body {
7
+ margin: 0;
8
+ min-width: 320px;
9
+ background: var(--bb-color-canvas);
10
+ color: var(--bb-color-ink);
11
+ font-family: var(--bb-font-sans);
12
+ font-feature-settings: "tnum" 1;
13
+ }
14
+
15
+ .bb-shell {
16
+ min-height: 100dvh;
17
+ display: grid;
18
+ grid-template-columns: 240px minmax(0, 1fr);
19
+ background: var(--bb-color-canvas);
20
+ color: var(--bb-color-ink);
21
+ font-size: 14px;
22
+ line-height: 1.6;
23
+ }
24
+
25
+ .bb-shell *,
26
+ .bb-shell *::before,
27
+ .bb-shell *::after {
28
+ box-sizing: border-box;
29
+ }
30
+
31
+ /* Zero specificity, so the parts' and the workspace kit's own type sizes win. */
32
+ :where(.bb-shell) :where(button, select, input, textarea) {
33
+ font: inherit;
34
+ }
35
+
36
+ .bb-shell button:focus-visible,
37
+ .bb-shell a:focus-visible,
38
+ .bb-shell select:focus-visible,
39
+ .bb-shell summary:focus-visible {
40
+ outline: 2px solid var(--bb-color-focus);
41
+ outline-offset: 3px;
42
+ }
43
+
44
+ /* Left rail */
45
+ .bb-shell-sidebar {
46
+ position: sticky;
47
+ top: 0;
48
+ z-index: 30;
49
+ height: 100dvh;
50
+ display: flex;
51
+ flex-direction: column;
52
+ overflow: auto;
53
+ border-right: 1px solid var(--bb-color-rail-border);
54
+ padding: 28px 12px 12px;
55
+ background: var(--bb-color-rail);
56
+ color: var(--bb-color-rail-text);
57
+ }
58
+
59
+ .bb-shell-brand {
60
+ padding: 0 12px 28px;
61
+ color: var(--bb-color-rail-strong);
62
+ font-size: 24px;
63
+ font-weight: 780;
64
+ line-height: 1;
65
+ letter-spacing: -.035em;
66
+ }
67
+
68
+ .bb-shell-nav {
69
+ display: grid;
70
+ gap: 4px;
71
+ }
72
+
73
+ .bb-shell-nav-link {
74
+ min-height: 42px;
75
+ display: flex;
76
+ align-items: center;
77
+ gap: 12px;
78
+ border-radius: 8px;
79
+ padding: 0 12px;
80
+ color: var(--bb-color-rail-text);
81
+ font-size: 13px;
82
+ font-weight: 620;
83
+ text-decoration: none;
84
+ }
85
+
86
+ .bb-shell-nav-link:hover {
87
+ background: var(--bb-color-rail-hover);
88
+ color: var(--bb-color-rail-strong);
89
+ }
90
+
91
+ .bb-shell-nav-link[aria-current="page"] {
92
+ background: var(--bb-color-rail-active);
93
+ color: var(--bb-color-rail-strong);
94
+ box-shadow: inset 3px 0 var(--bb-color-accent);
95
+ }
96
+
97
+ .bb-shell-icon {
98
+ width: 19px;
99
+ height: 19px;
100
+ flex: 0 0 auto;
101
+ fill: none;
102
+ stroke: currentColor;
103
+ stroke-width: 1.7;
104
+ stroke-linecap: round;
105
+ stroke-linejoin: round;
106
+ }
107
+
108
+ .bb-shell-source {
109
+ display: grid;
110
+ gap: var(--bb-space-3);
111
+ margin-top: auto;
112
+ border-top: 1px solid var(--bb-color-rail-border);
113
+ padding: var(--bb-space-4) 10px var(--bb-space-1);
114
+ font-size: 12px;
115
+ }
116
+
117
+ .bb-shell-fact {
118
+ display: grid;
119
+ gap: 2px;
120
+ min-width: 0;
121
+ }
122
+
123
+ .bb-shell-fact-label {
124
+ color: var(--bb-color-rail-muted);
125
+ font-size: 10px;
126
+ font-weight: 620;
127
+ }
128
+
129
+ .bb-shell-fact-value {
130
+ min-width: 0;
131
+ color: var(--bb-color-rail-text);
132
+ overflow-wrap: anywhere;
133
+ }
134
+
135
+ .bb-shell-fact:first-child .bb-shell-fact-value {
136
+ font-family: var(--bb-font-mono);
137
+ font-size: 11px;
138
+ }
139
+
140
+ .bb-shell-fact.is-warning .bb-shell-fact-value,
141
+ .bb-shell-source .is-danger {
142
+ color: var(--bb-color-warning-soft);
143
+ }
144
+
145
+ .bb-shell-source .bb-shell-link-button {
146
+ border-color: var(--bb-color-rail-border);
147
+ color: var(--bb-color-rail-text);
148
+ background: transparent;
149
+ }
150
+
151
+ /* Right detail rail (the organization edition's decision rail) */
152
+ .bb-shell.has-rail {
153
+ grid-template-columns: 240px minmax(0, 1fr) 380px;
154
+ }
155
+
156
+ .bb-shell-rail {
157
+ position: sticky;
158
+ top: 0;
159
+ height: 100dvh;
160
+ min-width: 0;
161
+ overflow: auto;
162
+ border-left: 1px solid var(--bb-color-border);
163
+ padding: 44px 30px 48px;
164
+ background: var(--bb-color-surface);
165
+ }
166
+
167
+ .bb-shell-rail[hidden],
168
+ .bb-shell-rail-slot[hidden] {
169
+ display: none;
170
+ }
171
+
172
+ /* Workspace */
173
+ .bb-shell-workspace {
174
+ min-width: 0;
175
+ background: var(--bb-color-paper);
176
+ }
177
+
178
+ .bb-shell-mobile-bar,
179
+ .bb-shell-backdrop {
180
+ display: none;
181
+ }
182
+
183
+ .bb-shell-main {
184
+ min-width: 0;
185
+ }
186
+
187
+ .bb-shell-screen[hidden] {
188
+ display: none;
189
+ }
190
+
191
+ .bb-shell-page {
192
+ display: grid;
193
+ gap: var(--bb-space-6);
194
+ max-width: 1440px;
195
+ min-width: 0;
196
+ margin: 0 auto;
197
+ padding: 40px 48px 72px;
198
+ }
199
+
200
+ .bb-shell-objectives,
201
+ .bb-shell-world-model {
202
+ min-width: 0;
203
+ }
204
+
205
+ .bb-shell-slot:empty {
206
+ display: none;
207
+ }
208
+
209
+ .bb-shell-notice {
210
+ margin: 0;
211
+ border: 1px solid var(--bb-color-border);
212
+ border-left: 3px solid var(--bb-color-warning);
213
+ padding: 14px 16px;
214
+ background: var(--bb-color-warning-soft);
215
+ color: var(--bb-color-warning);
216
+ font-size: 13px;
217
+ }
218
+
219
+ .bb-shell-gate {
220
+ display: grid;
221
+ gap: var(--bb-space-3);
222
+ max-width: 760px;
223
+ margin: 40px auto;
224
+ border: 1px solid var(--bb-color-border);
225
+ border-left: 3px solid var(--bb-color-warning);
226
+ padding: var(--bb-space-5);
227
+ background: var(--bb-color-surface);
228
+ }
229
+
230
+ .bb-shell-gate h2,
231
+ .bb-shell-gate p {
232
+ margin: 0;
233
+ }
234
+
235
+ .bb-shell-gate h2 {
236
+ font-size: 18px;
237
+ letter-spacing: -.02em;
238
+ }
239
+
240
+ .bb-shell-commands {
241
+ display: grid;
242
+ gap: var(--bb-space-2);
243
+ margin: 0;
244
+ padding-left: var(--bb-space-5);
245
+ }
246
+
247
+ .bb-shell-commands code {
248
+ display: block;
249
+ border: 1px solid var(--bb-color-border);
250
+ border-radius: var(--bb-radius-sm);
251
+ padding: var(--bb-space-2) var(--bb-space-3);
252
+ background: var(--bb-color-panel);
253
+ font-family: var(--bb-font-mono);
254
+ font-size: 12px;
255
+ overflow-wrap: anywhere;
256
+ white-space: pre-wrap;
257
+ }
258
+
259
+ .bb-shell-button,
260
+ .bb-shell-link-button {
261
+ justify-self: start;
262
+ min-height: 38px;
263
+ display: inline-flex;
264
+ align-items: center;
265
+ gap: var(--bb-space-2);
266
+ border: 1px solid var(--bb-color-border-strong);
267
+ border-radius: var(--bb-radius-sm);
268
+ padding: 8px 13px;
269
+ background: var(--bb-color-panel);
270
+ color: var(--bb-color-ink);
271
+ font-size: 13px;
272
+ font-weight: 680;
273
+ cursor: pointer;
274
+ }
275
+
276
+ .bb-shell-button:hover,
277
+ .bb-shell-link-button:hover {
278
+ border-color: var(--bb-color-muted);
279
+ }
280
+
281
+ .bb-shell-link-button {
282
+ min-height: 30px;
283
+ padding: 4px 10px;
284
+ font-size: 12px;
285
+ }
286
+
287
+ @media (max-width: 1260px) {
288
+ .bb-shell {
289
+ grid-template-columns: 216px minmax(0, 1fr);
290
+ }
291
+
292
+ .bb-shell.has-rail {
293
+ grid-template-columns: 216px minmax(0, 1fr) 340px;
294
+ }
295
+
296
+ .bb-shell-page {
297
+ padding-inline: 32px;
298
+ }
299
+
300
+ .bb-shell-rail {
301
+ padding-inline: 24px;
302
+ }
303
+ }
304
+
305
+ @media (max-width: 1180px) {
306
+ .bb-shell.has-rail {
307
+ grid-template-columns: 216px minmax(0, 1fr);
308
+ }
309
+
310
+ .bb-shell.has-rail .bb-shell-sidebar {
311
+ grid-row: 1 / span 2;
312
+ }
313
+
314
+ .bb-shell-rail {
315
+ grid-column: 2;
316
+ position: static;
317
+ height: auto;
318
+ border-top: 1px solid var(--bb-color-border);
319
+ border-left: 0;
320
+ }
321
+ }
322
+
323
+ @media (max-width: 760px) {
324
+ .bb-shell {
325
+ grid-template-columns: minmax(0, 1fr);
326
+ }
327
+
328
+ .bb-shell-sidebar {
329
+ position: fixed;
330
+ left: 0;
331
+ width: min(300px, 88vw);
332
+ transform: translateX(-100%);
333
+ transition: transform .2s ease;
334
+ }
335
+
336
+ .bb-shell-sidebar.is-open {
337
+ transform: translateX(0);
338
+ }
339
+
340
+ .bb-shell-backdrop.is-open {
341
+ position: fixed;
342
+ inset: 0;
343
+ z-index: 20;
344
+ display: block;
345
+ border: 0;
346
+ background: var(--bb-color-overlay);
347
+ }
348
+
349
+ .bb-shell-mobile-bar {
350
+ position: sticky;
351
+ top: 0;
352
+ z-index: 10;
353
+ height: 56px;
354
+ display: flex;
355
+ align-items: center;
356
+ justify-content: space-between;
357
+ border-bottom: 1px solid var(--bb-color-border);
358
+ padding: 0 18px;
359
+ background: var(--bb-color-paper);
360
+ }
361
+
362
+ .bb-shell-menu-button {
363
+ min-height: 36px;
364
+ border: 1px solid var(--bb-color-border-strong);
365
+ border-radius: var(--bb-radius-sm);
366
+ padding: 6px 12px;
367
+ background: var(--bb-color-panel);
368
+ color: var(--bb-color-ink);
369
+ font-weight: 680;
370
+ cursor: pointer;
371
+ }
372
+
373
+ .bb-shell.has-rail {
374
+ grid-template-columns: minmax(0, 1fr);
375
+ }
376
+
377
+ .bb-shell-rail {
378
+ grid-column: 1;
379
+ padding: 30px 18px 44px;
380
+ }
381
+
382
+ .bb-shell-page {
383
+ padding: 24px 18px 52px;
384
+ }
385
+
386
+ .bb-shell-gate {
387
+ margin: 24px 18px;
388
+ padding: var(--bb-space-4);
389
+ }
390
+ }
391
+
392
+ @media (prefers-reduced-motion: reduce) {
393
+ .bb-shell-sidebar {
394
+ transition: none;
395
+ }
396
+ }