@webskill/chatbot 0.6.0 → 0.7.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 CHANGED
@@ -154,9 +154,10 @@ so a symbol cannot be quietly downgraded — the change shows up in the diff.
154
154
  `configureA2uiMarkdown`, the `probe*` helpers, `RendererKind`,
155
155
  `RendererCapability` and `DEFAULT_RENDERER_CAPABILITIES`. Their shape
156
156
  tracks upstream ecosystems this package does not own.
157
- - **Surfaces introduced in this release** — `ChatAttachmentInput` and
158
- `ChatAttachmentMeta` (multimodal attachments), which no consumer has
159
- exercised yet.
157
+ - **Surfaces not yet exercised by consumers** — `ChatAttachmentInput` and
158
+ `ChatAttachmentMeta` (multimodal attachments), `ChatThinking` and
159
+ `ChatTokenUsage` (thinking segments and token usage persisted on messages,
160
+ 0.7.0), and `pickUsableLlmEntry` (usable-model entry criterion, 0.7.0).
160
161
  - **`RunSnapshot`** — the resume snapshot format, `@experimental` in
161
162
  `@webskill/sdk` for the same reason.
162
163
 
package/dist/chatbot.css CHANGED
@@ -279,9 +279,6 @@
279
279
  .right-2 {
280
280
  right: calc(var(--spacing) * 2);
281
281
  }
282
- .right-2\.5 {
283
- right: calc(var(--spacing) * 2.5);
284
- }
285
282
  .right-3 {
286
283
  right: calc(var(--spacing) * 3);
287
284
  }
@@ -381,6 +378,9 @@
381
378
  .my-3 {
382
379
  margin-block: calc(var(--spacing) * 3);
383
380
  }
381
+ .ms-1 {
382
+ margin-inline-start: var(--spacing);
383
+ }
384
384
  .ms-auto {
385
385
  margin-inline-start: auto;
386
386
  }
@@ -475,6 +475,10 @@
475
475
  width: calc(var(--spacing) * 9);
476
476
  height: calc(var(--spacing) * 9);
477
477
  }
478
+ .size-\[3px\] {
479
+ width: 3px;
480
+ height: 3px;
481
+ }
478
482
  .size-full {
479
483
  width: 100%;
480
484
  height: 100%;
@@ -482,6 +486,9 @@
482
486
  .h-0 {
483
487
  height: 0px;
484
488
  }
489
+ .h-2 {
490
+ height: calc(var(--spacing) * 2);
491
+ }
485
492
  .h-2\.5 {
486
493
  height: calc(var(--spacing) * 2.5);
487
494
  }
@@ -527,6 +534,9 @@
527
534
  .max-h-\[calc\(100dvh-2rem\)\] {
528
535
  max-height: calc(100dvh - 2rem);
529
536
  }
537
+ .max-h-\[var\(--radix-select-content-available-height\)\] {
538
+ max-height: var(--radix-select-content-available-height);
539
+ }
530
540
  .min-h-0 {
531
541
  min-height: 0px;
532
542
  }
@@ -575,6 +585,9 @@
575
585
  .w-72 {
576
586
  width: calc(var(--spacing) * 72);
577
587
  }
588
+ .w-80 {
589
+ width: calc(var(--spacing) * 80);
590
+ }
578
591
  .w-\[80\%\] {
579
592
  width: 80%;
580
593
  }
@@ -608,6 +621,9 @@
608
621
  .max-w-72 {
609
622
  max-width: calc(var(--spacing) * 72);
610
623
  }
624
+ .max-w-\[calc\(100vw-2rem\)\] {
625
+ max-width: calc(100vw - 2rem);
626
+ }
611
627
  .max-w-full {
612
628
  max-width: 100%;
613
629
  }
@@ -623,9 +639,6 @@
623
639
  .min-w-5 {
624
640
  min-width: calc(var(--spacing) * 5);
625
641
  }
626
- .min-w-20 {
627
- min-width: calc(var(--spacing) * 20);
628
- }
629
642
  .min-w-32 {
630
643
  min-width: calc(var(--spacing) * 32);
631
644
  }
@@ -635,6 +648,9 @@
635
648
  .min-w-44 {
636
649
  min-width: calc(var(--spacing) * 44);
637
650
  }
651
+ .min-w-\[var\(--radix-select-trigger-width\)\] {
652
+ min-width: var(--radix-select-trigger-width);
653
+ }
638
654
  .min-w-max {
639
655
  min-width: max-content;
640
656
  }
@@ -715,15 +731,9 @@
715
731
  .list-disc {
716
732
  list-style-type: disc;
717
733
  }
718
- .appearance-none {
719
- appearance: none;
720
- }
721
734
  .grid-cols-1 {
722
735
  grid-template-columns: repeat(1, minmax(0, 1fr));
723
736
  }
724
- .grid-cols-\[auto_auto_auto\] {
725
- grid-template-columns: auto auto auto;
726
- }
727
737
  .flex-col {
728
738
  flex-direction: column;
729
739
  }
@@ -778,6 +788,9 @@
778
788
  .gap-4 {
779
789
  gap: calc(var(--spacing) * 4);
780
790
  }
791
+ .gap-\[3px\] {
792
+ gap: 3px;
793
+ }
781
794
  :where(.space-y-1 > :not(:last-child)) {
782
795
  --tw-space-y-reverse: 0;
783
796
  margin-block-start: calc(var(--spacing) * var(--tw-space-y-reverse));
@@ -1024,6 +1037,9 @@
1024
1037
  .bg-primary {
1025
1038
  background-color: var(--primary);
1026
1039
  }
1040
+ .bg-secondary {
1041
+ background-color: var(--secondary);
1042
+ }
1027
1043
  .bg-sidebar {
1028
1044
  background-color: var(--sidebar);
1029
1045
  }
@@ -1054,6 +1070,9 @@
1054
1070
  .fill-ink {
1055
1071
  fill: var(--foreground);
1056
1072
  }
1073
+ .object-cover {
1074
+ object-fit: cover;
1075
+ }
1057
1076
  .p-0 {
1058
1077
  padding: 0px;
1059
1078
  }
@@ -1156,8 +1175,11 @@
1156
1175
  .pb-4 {
1157
1176
  padding-bottom: calc(var(--spacing) * 4);
1158
1177
  }
1159
- .pl-3 {
1160
- padding-left: calc(var(--spacing) * 3);
1178
+ .pl-2 {
1179
+ padding-left: calc(var(--spacing) * 2);
1180
+ }
1181
+ .pl-4 {
1182
+ padding-left: calc(var(--spacing) * 4);
1161
1183
  }
1162
1184
  .pl-5 {
1163
1185
  padding-left: calc(var(--spacing) * 5);
@@ -1247,9 +1269,6 @@
1247
1269
  .whitespace-pre-wrap {
1248
1270
  white-space: pre-wrap;
1249
1271
  }
1250
- .text-background {
1251
- color: var(--background);
1252
- }
1253
1272
  .text-canvas {
1254
1273
  color: var(--background);
1255
1274
  }
@@ -1422,6 +1441,10 @@
1422
1441
  -webkit-user-select: none;
1423
1442
  user-select: none;
1424
1443
  }
1444
+ .select-text {
1445
+ -webkit-user-select: text;
1446
+ user-select: text;
1447
+ }
1425
1448
  .group-focus-within\:opacity-100:is(:where(.group):focus-within *) {
1426
1449
  opacity: 100%;
1427
1450
  }
@@ -1429,6 +1452,9 @@
1429
1452
  opacity: 100%;
1430
1453
  }
1431
1454
  @media (hover: hover) {
1455
+ .group-hover\:bg-border:is(:where(.group):hover *) {
1456
+ background-color: var(--border);
1457
+ }
1432
1458
  .group-hover\:opacity-100:is(:where(.group):hover *) {
1433
1459
  opacity: 100%;
1434
1460
  }
@@ -1511,6 +1537,39 @@
1511
1537
  .peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size="sm"] ~ *) {
1512
1538
  top: var(--spacing);
1513
1539
  }
1540
+ .file\:mr-3::file-selector-button {
1541
+ margin-right: calc(var(--spacing) * 3);
1542
+ }
1543
+ .file\:cursor-pointer::file-selector-button {
1544
+ cursor: pointer;
1545
+ }
1546
+ .file\:rounded-md::file-selector-button {
1547
+ border-radius: calc(var(--radius) - 2px);
1548
+ }
1549
+ .file\:border-0::file-selector-button {
1550
+ border-style: var(--tw-border-style);
1551
+ border-width: 0px;
1552
+ }
1553
+ .file\:bg-primary::file-selector-button {
1554
+ background-color: var(--primary);
1555
+ }
1556
+ .file\:px-3::file-selector-button {
1557
+ padding-inline: calc(var(--spacing) * 3);
1558
+ }
1559
+ .file\:py-1::file-selector-button {
1560
+ padding-block: var(--spacing);
1561
+ }
1562
+ .file\:text-sm::file-selector-button {
1563
+ font-size: var(--text-sm);
1564
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1565
+ }
1566
+ .file\:font-medium::file-selector-button {
1567
+ --tw-font-weight: var(--font-weight-medium);
1568
+ font-weight: var(--font-weight-medium);
1569
+ }
1570
+ .file\:text-primary-foreground::file-selector-button {
1571
+ color: var(--primary-foreground);
1572
+ }
1514
1573
  .placeholder\:text-muted::placeholder {
1515
1574
  color: var(--muted-foreground);
1516
1575
  }
@@ -1581,12 +1640,15 @@
1581
1640
  .hover\:text-sidebar-accent-foreground:hover {
1582
1641
  color: var(--sidebar-accent-foreground);
1583
1642
  }
1584
- .hover\:opacity-85:hover {
1585
- opacity: 85%;
1586
- }
1587
1643
  .hover\:opacity-90:hover {
1588
1644
  opacity: 90%;
1589
1645
  }
1646
+ .hover\:file\:bg-primary\/90:hover::file-selector-button {
1647
+ background-color: var(--primary);
1648
+ @supports (color: color-mix(in lab, red, red)) {
1649
+ background-color: color-mix(in oklab, var(--primary) 90%, transparent);
1650
+ }
1651
+ }
1590
1652
  }
1591
1653
  .focus\:border-ring:focus {
1592
1654
  border-color: var(--ring);
@@ -1688,8 +1750,8 @@
1688
1750
  .data-dragging\:bg-subtle[data-dragging] {
1689
1751
  background-color: var(--accent);
1690
1752
  }
1691
- .data-\[active\=true\]\:bg-sidebar-accent[data-active="true"] {
1692
- background-color: var(--sidebar-accent);
1753
+ .data-\[active\=true\]\:bg-subtle[data-active="true"] {
1754
+ background-color: var(--accent);
1693
1755
  }
1694
1756
  .data-\[active\=true\]\:font-medium[data-active="true"] {
1695
1757
  --tw-font-weight: var(--font-weight-medium);
@@ -1725,6 +1787,9 @@
1725
1787
  .data-\[orientation\=vertical\]\:flex-col[data-orientation="vertical"] {
1726
1788
  flex-direction: column;
1727
1789
  }
1790
+ .data-\[placeholder\]\:text-muted[data-placeholder] {
1791
+ color: var(--muted-foreground);
1792
+ }
1728
1793
  .data-\[selected\=true\]\:bg-subtle[data-selected="true"] {
1729
1794
  background-color: var(--accent);
1730
1795
  }
@@ -2011,12 +2076,12 @@
2011
2076
  --secondary-foreground: oklch(0.205 0 0);
2012
2077
  --muted: oklch(0.97 0 0);
2013
2078
  --muted-foreground: oklch(0.556 0 0);
2014
- --accent: oklch(0.97 0 0);
2079
+ --accent: #0000000f;
2015
2080
  --accent-foreground: oklch(0.205 0 0);
2016
2081
  --border: oklch(0.922 0 0);
2017
2082
  --input: oklch(0.922 0 0);
2018
2083
  --ring: oklch(0.708 0 0);
2019
- --destructive: oklch(0.577 0.245 27.325);
2084
+ --destructive: oklch(0.52 0.22 27);
2020
2085
  --destructive-foreground: oklch(0.985 0 0);
2021
2086
  --success: oklch(0.62 0.13 150);
2022
2087
  --success-foreground: oklch(0.985 0 0);
@@ -2049,7 +2114,7 @@
2049
2114
  --sidebar-foreground: oklch(0.145 0 0);
2050
2115
  --sidebar-primary: oklch(0.205 0 0);
2051
2116
  --sidebar-primary-foreground: oklch(0.985 0 0);
2052
- --sidebar-accent: oklch(0.97 0 0);
2117
+ --sidebar-accent: #0000000f;
2053
2118
  --sidebar-accent-foreground: oklch(0.205 0 0);
2054
2119
  --sidebar-border: oklch(0.922 0 0);
2055
2120
  --sidebar-ring: oklch(0.708 0 0);
@@ -2101,7 +2166,7 @@
2101
2166
  --secondary-foreground: oklch(0.985 0 0);
2102
2167
  --muted: oklch(0.269 0 0);
2103
2168
  --muted-foreground: oklch(0.708 0 0);
2104
- --accent: oklch(0.269 0 0);
2169
+ --accent: #ffffff0d;
2105
2170
  --accent-foreground: oklch(0.985 0 0);
2106
2171
  --border: oklch(1 0 0 / 10%);
2107
2172
  --input: oklch(1 0 0 / 15%);
@@ -2134,7 +2199,7 @@
2134
2199
  --sidebar-foreground: oklch(0.985 0 0);
2135
2200
  --sidebar-primary: oklch(0.985 0 0);
2136
2201
  --sidebar-primary-foreground: oklch(0.205 0 0);
2137
- --sidebar-accent: oklch(0.269 0 0);
2202
+ --sidebar-accent: #ffffff0d;
2138
2203
  --sidebar-accent-foreground: oklch(0.985 0 0);
2139
2204
  --sidebar-border: oklch(1 0 0 / 10%);
2140
2205
  --sidebar-ring: oklch(0.556 0 0);
@@ -2318,6 +2383,15 @@
2318
2383
  .webskill-surface--form, .webskill-surface--metric, .webskill-surface--file, .webskill-surface--error, .webskill-surface--unsupported {
2319
2384
  padding: 1rem;
2320
2385
  }
2386
+ .webskill-surface.webskill-surface--spec {
2387
+ padding: 1rem;
2388
+ }
2389
+ .webskill-surface--spec > .webskill-spec-card:only-child, .webskill-surface--spec > div > .webskill-spec-card:only-child {
2390
+ border: 0;
2391
+ background: transparent;
2392
+ box-shadow: none;
2393
+ padding: 0;
2394
+ }
2321
2395
  .webskill-surface--form, .webskill-surface__field {
2322
2396
  display: flex;
2323
2397
  flex-direction: column;