typebulb 0.39.3 → 0.41.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 +9 -7
- package/dist/agents/claude/client.js +214 -194
- package/dist/agents/claude/styles.css +35 -20
- package/dist/agents/pi/client.js +242 -222
- package/dist/agents/pi/matchu-patchu.ts +1 -1
- package/dist/agents/pi/styles.css +35 -20
- package/dist/dts/tbTypings.d.ts +4 -3
- package/dist/dts/tbTypings.d.ts.map +1 -1
- package/dist/dts/tbTypings.js +21 -6
- package/dist/dts/tbTypings.js.map +1 -1
- package/dist/format/parse.d.ts +7 -0
- package/dist/format/parse.d.ts.map +1 -1
- package/dist/format/parse.js +4 -1
- package/dist/format/parse.js.map +1 -1
- package/dist/index.js +329 -307
- package/dist/lint/codeView.d.ts +24 -0
- package/dist/lint/codeView.d.ts.map +1 -0
- package/dist/lint/codeView.js +128 -0
- package/dist/lint/codeView.js.map +1 -0
- package/dist/lint/index.d.ts +7 -0
- package/dist/lint/index.d.ts.map +1 -1
- package/dist/lint/index.js +33 -17
- package/dist/lint/index.js.map +1 -1
- package/dist/render.js +159 -139
- package/dist/servers.js +599 -95
- package/package.json +1 -1
|
@@ -118,21 +118,27 @@ body {
|
|
|
118
118
|
gap: .4rem;
|
|
119
119
|
align-items: center;
|
|
120
120
|
}
|
|
121
|
-
/*
|
|
122
|
-
|
|
123
|
-
of vertical alignment; when these drift apart it reads as amateurish
|
|
124
|
-
|
|
121
|
+
/* THE CENTERING RECIPE for EVERY word-label control on any surface — the status-bar pills and
|
|
122
|
+
floating overlay pills below, and the launcher row's trust switch + B scope chip. One rule = one
|
|
123
|
+
source of vertical alignment; when these drift apart it reads as amateurish, so a new word
|
|
124
|
+
control joins this selector rather than centering itself (don't re-tweak per button — fix it
|
|
125
|
+
here or nowhere). Icon buttons opt back out, keeping flex (see .pill.glyph). Segoe UI's font
|
|
125
126
|
ascent (~1.08em) dwarfs its descent (~0.25em), so anything that centers the LINE BOX —
|
|
126
127
|
flex, line-height, padding — parks the glyphs ~2px low at pill sizes. `text-box` trims the
|
|
127
128
|
line box to the glyphs (cap→baseline) so centering centers the letters themselves. It only
|
|
128
129
|
applies to block containers (not flex), hence inline-block + align-content, not inline-flex
|
|
129
|
-
+ align-items. Browsers without text-box (Firefox) fall back to plain line-box centering.
|
|
130
|
-
|
|
131
|
-
.pill, .token, .overlay-pill {
|
|
130
|
+
+ align-items. Browsers without text-box (Firefox) fall back to plain line-box centering. */
|
|
131
|
+
.pill, .token, .overlay-pill, .trust-toggle, .batch-b {
|
|
132
132
|
display: inline-block;
|
|
133
133
|
align-content: center;
|
|
134
134
|
text-align: center;
|
|
135
135
|
text-box: trim-both cap alphabetic;
|
|
136
|
+
}
|
|
137
|
+
/* Chip shape shared by the status-bar pills (interactive and passive) AND the floating overlay
|
|
138
|
+
pills (copy, breakout, code⇄run) — opaque, so they read cleanly over the message text the
|
|
139
|
+
transparent strip lets through. The launcher row's pills take only the recipe above; their
|
|
140
|
+
shape is the row's (.trust-toggle, .batch-b). */
|
|
141
|
+
.pill, .token, .overlay-pill {
|
|
136
142
|
height: var(--pill-h);
|
|
137
143
|
padding: 0 .7rem;
|
|
138
144
|
border-radius: 7px;
|
|
@@ -821,9 +827,10 @@ a.server-port:hover { text-decoration: underline; }
|
|
|
821
827
|
row's snippet line bleeds under the next row as overlapping text. max-content tracks never
|
|
822
828
|
compress; the list scrolls, rows keep their content height. */
|
|
823
829
|
.bulb-list { display: grid; grid-template-columns: auto 1fr auto auto auto auto; grid-auto-rows: max-content; column-gap: .6rem; row-gap: .15rem; align-items: center; align-content: start; padding-right: 4px; flex: 1; min-height: 0; overflow-y: auto; }
|
|
824
|
-
/* The scope column (TB-Batch.md Invariant 7): a seventh track
|
|
825
|
-
|
|
826
|
-
matching cell, spacer included). The B
|
|
830
|
+
/* The scope column (TB-Batch.md Invariant 7): a seventh track heading the control cluster (before
|
|
831
|
+
trust — a launch scope is an execution concern, like a trust tier), present only while some row
|
|
832
|
+
carries a scope (bulbsPill.ts anyScope — rows emit a matching cell, spacer included). The B
|
|
833
|
+
affordance keeps it one --pill-h square. */
|
|
827
834
|
.bulb-list.has-scope { grid-template-columns: auto 1fr auto auto auto auto auto; }
|
|
828
835
|
/* A stopped bulb's name isn't a link (no running URL), so it stays plain foreground. */
|
|
829
836
|
.server-name.stopped { color: var(--fg); }
|
|
@@ -839,7 +846,11 @@ a.server-port:hover { text-decoration: underline; }
|
|
|
839
846
|
the row shows THAT a scope applies, the tooltip and click-menu name it. Dim = batches exist but
|
|
840
847
|
launch is unscoped; lit (.on) = play launches scoped (newest default) or running scoped.
|
|
841
848
|
Static (running) keeps the lit look without the hand cursor. */
|
|
842
|
-
|
|
849
|
+
/* Square (its one glyph has no text pill's width to earn) and otherwise typography-free: the shared
|
|
850
|
+
pill box, font and trim, so its B is the same size and sits on the same baseline as the trust
|
|
851
|
+
switch beside it. Its own font-family was the bug — a monospace cap is a different size from a
|
|
852
|
+
Segoe cap at one font-size, which reads as two badly-aligned widgets. */
|
|
853
|
+
.batch-b { font-size: var(--pill-font); color: var(--muted); background: transparent; border: 1px solid var(--border); border-radius: 5px; width: var(--pill-h); height: var(--pill-h); padding: 0; cursor: pointer; }
|
|
843
854
|
.batch-b.on { color: var(--accent); border-color: var(--accent); }
|
|
844
855
|
.batch-b.static { cursor: default; }
|
|
845
856
|
/* The B's menu rides the composer popup register (.at-popup/.at-row/.dlg-catcher — one mini-menu
|
|
@@ -876,18 +887,21 @@ a.server-port:hover { text-decoration: underline; }
|
|
|
876
887
|
.bulb-list .picker-snippet { grid-column: 2 / -1; margin: 0 .4rem .2rem 0; }
|
|
877
888
|
.bulb-time { color: var(--muted); font-size: .72rem; font-variant-numeric: tabular-nums; text-align: right; margin-right: .4rem; }
|
|
878
889
|
/* The row's chrome buttons share one reset; sizing + colour differ below. Play/stop are round icon
|
|
879
|
-
buttons (friendlier, space-economic)
|
|
880
|
-
|
|
890
|
+
buttons (friendlier, space-economic) and stay flex — a replaced SVG mis-seats under the
|
|
891
|
+
word-pill trim, the .pill.glyph case; the trust switch is a word, so it seats via the shared
|
|
892
|
+
recipe. Logs is a link, not a button (see .server-logs above), so it's not in this group. */
|
|
881
893
|
.server-stop, .bulb-launch, .trust-toggle {
|
|
882
894
|
font: inherit; appearance: none; margin: 0; cursor: pointer; box-sizing: border-box;
|
|
883
895
|
background: transparent; border: 1px solid var(--border); border-radius: 5px;
|
|
884
|
-
height: 1.7rem;
|
|
896
|
+
height: 1.7rem;
|
|
885
897
|
}
|
|
886
898
|
/* Shorter than the icon buttons: a bordered text pill at full row height reads as cramped, where
|
|
887
|
-
the round play/stop icons are meant to fill it.
|
|
888
|
-
|
|
899
|
+
the round play/stop icons are meant to fill it. The shared pill box + font, not a bespoke pair —
|
|
900
|
+
its own .76rem/1.45rem seated the word a full 1px below every statusbar pill, which is exactly how
|
|
901
|
+
this drifts (measured: a per-control size is a per-control seating). */
|
|
902
|
+
.trust-toggle { font-size: var(--pill-font); height: var(--pill-h); padding: 0 .5rem; color: var(--muted); justify-self: center; }
|
|
889
903
|
.trust-toggle:hover, .trust-toggle.on { color: var(--accent); border-color: var(--accent); }
|
|
890
|
-
.server-stop, .bulb-launch { width: 1.7rem; padding: 0; border-radius: 50%; margin-left: .4rem; }
|
|
904
|
+
.server-stop, .bulb-launch { display: inline-flex; align-items: center; justify-content: center; width: 1.7rem; padding: 0; border-radius: 50%; margin-left: .4rem; }
|
|
891
905
|
.btn-icon { width: 16px; height: 16px; }
|
|
892
906
|
/* A stopped bulb's play button is dormant — the title is the primary launch target — so it's
|
|
893
907
|
hidden until the row is hovered or keyboard-selected. visibility (not display) reserves its slot,
|
|
@@ -895,9 +909,10 @@ a.server-port:hover { text-decoration: underline; }
|
|
|
895
909
|
:port link: green is the live-app axis (play to launch → :port to open it), distinct from the
|
|
896
910
|
blue source/name. The green even travels left→right as a bulb goes stopped→running. */
|
|
897
911
|
.bulb-launch { color: var(--fold-marker); visibility: hidden; }
|
|
898
|
-
/*
|
|
899
|
-
|
|
900
|
-
|
|
912
|
+
/* No optical nudge on the play glyph, deliberately: Material's play_arrow already carries one (its
|
|
913
|
+
path spans 320→760 in a 0→960 frame — ~1px right at icon size, compensating a right triangle's
|
|
914
|
+
left-leaning mass). Our own translateX(1px) stacked a second correction and measured 2px right of
|
|
915
|
+
the button's centre. Any glyph that reads off-centre here is the frame's business, not the app's. */
|
|
901
916
|
.server-row:hover .bulb-launch, .server-row.active .bulb-launch { visibility: visible; }
|
|
902
917
|
.bulb-launch:hover { border-color: var(--fold-marker); background: color-mix(in srgb, var(--fold-marker) 12%, transparent); }
|
|
903
918
|
/* Launching: stays visible (hover-independent) and shimmers until the row flips to a stop button,
|