@hachej/boring-agent 0.1.93 → 0.1.94
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/dist/{chunk-CJ2BW2W2.js → chunk-EOMY2HDT.js} +1 -0
- package/dist/{chunk-4TKUT7IL.js → chunk-N4AATPH7.js} +255 -73
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +1 -1
- package/dist/{errors-C38f6pol.d.ts → errors-G6T6S7PQ.d.ts} +2 -0
- package/dist/front/index.d.ts +68 -8
- package/dist/front/index.js +594 -593
- package/dist/front/styles.css +179 -109
- package/dist/{lease-BqeCLGPL.d.ts → lease-CusB-uLg.d.ts} +3 -1
- package/dist/{piChatSessionService-BrPqKrpY.d.ts → piChatSessionService-C0KbcGw9.d.ts} +7 -1
- package/dist/server/agent-host/testing/gatewayConformance.d.ts +3 -3
- package/dist/server/agent-host/testing/gatewayConformance.js +77 -0
- package/dist/server/index.d.ts +44 -5
- package/dist/server/index.js +2 -2
- package/dist/server/worker/index.js +2 -2
- package/dist/shared/index.d.ts +4 -4
- package/dist/{types-uQozUhGt.d.ts → types-C-Eroi__.d.ts} +2 -2
- package/docs/AGENT_GATEWAY_V0.md +152 -0
- package/package.json +4 -4
package/dist/front/styles.css
CHANGED
|
@@ -227,9 +227,6 @@
|
|
|
227
227
|
.mb-2 {
|
|
228
228
|
margin-bottom: calc(var(--spacing) * 2);
|
|
229
229
|
}
|
|
230
|
-
.\!ml-auto {
|
|
231
|
-
margin-left: auto !important;
|
|
232
|
-
}
|
|
233
230
|
.ml-1 {
|
|
234
231
|
margin-left: var(--spacing);
|
|
235
232
|
}
|
|
@@ -413,6 +410,12 @@
|
|
|
413
410
|
.min-h-6 {
|
|
414
411
|
min-height: calc(var(--spacing) * 6);
|
|
415
412
|
}
|
|
413
|
+
.min-h-7 {
|
|
414
|
+
min-height: calc(var(--spacing) * 7);
|
|
415
|
+
}
|
|
416
|
+
.min-h-10 {
|
|
417
|
+
min-height: calc(var(--spacing) * 10);
|
|
418
|
+
}
|
|
416
419
|
.min-h-16 {
|
|
417
420
|
min-height: calc(var(--spacing) * 16);
|
|
418
421
|
}
|
|
@@ -422,9 +425,6 @@
|
|
|
422
425
|
.\!w-auto {
|
|
423
426
|
width: auto !important;
|
|
424
427
|
}
|
|
425
|
-
.\!w-full {
|
|
426
|
-
width: 100% !important;
|
|
427
|
-
}
|
|
428
428
|
.w-1 {
|
|
429
429
|
width: var(--spacing);
|
|
430
430
|
}
|
|
@@ -479,15 +479,9 @@
|
|
|
479
479
|
.w-px {
|
|
480
480
|
width: 1px;
|
|
481
481
|
}
|
|
482
|
-
.\!max-w-\[80\%\] {
|
|
483
|
-
max-width: 80% !important;
|
|
484
|
-
}
|
|
485
482
|
.\!max-w-\[180px\] {
|
|
486
483
|
max-width: 180px !important;
|
|
487
484
|
}
|
|
488
|
-
.\!max-w-full {
|
|
489
|
-
max-width: 100% !important;
|
|
490
|
-
}
|
|
491
485
|
.max-w-2xl {
|
|
492
486
|
max-width: var(--container-2xl);
|
|
493
487
|
}
|
|
@@ -497,9 +491,6 @@
|
|
|
497
491
|
.max-w-\[45\%\] {
|
|
498
492
|
max-width: 45%;
|
|
499
493
|
}
|
|
500
|
-
.max-w-\[95\%\] {
|
|
501
|
-
max-width: 95%;
|
|
502
|
-
}
|
|
503
494
|
.max-w-\[220px\] {
|
|
504
495
|
max-width: 220px;
|
|
505
496
|
}
|
|
@@ -570,9 +561,6 @@
|
|
|
570
561
|
.grid-cols-1 {
|
|
571
562
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
572
563
|
}
|
|
573
|
-
.grid-cols-\[auto_1fr\] {
|
|
574
|
-
grid-template-columns: auto 1fr;
|
|
575
|
-
}
|
|
576
564
|
.flex-col {
|
|
577
565
|
flex-direction: column;
|
|
578
566
|
}
|
|
@@ -606,9 +594,6 @@
|
|
|
606
594
|
.justify-start {
|
|
607
595
|
justify-content: flex-start;
|
|
608
596
|
}
|
|
609
|
-
.\!gap-1\.5 {
|
|
610
|
-
gap: calc(var(--spacing) * 1.5) !important;
|
|
611
|
-
}
|
|
612
597
|
.\!gap-2 {
|
|
613
598
|
gap: calc(var(--spacing) * 2) !important;
|
|
614
599
|
}
|
|
@@ -677,9 +662,6 @@
|
|
|
677
662
|
text-overflow: ellipsis;
|
|
678
663
|
white-space: nowrap;
|
|
679
664
|
}
|
|
680
|
-
.\!overflow-visible {
|
|
681
|
-
overflow: visible !important;
|
|
682
|
-
}
|
|
683
665
|
.overflow-auto {
|
|
684
666
|
overflow: auto;
|
|
685
667
|
}
|
|
@@ -698,8 +680,8 @@
|
|
|
698
680
|
.overflow-y-hidden {
|
|
699
681
|
overflow-y: hidden;
|
|
700
682
|
}
|
|
701
|
-
|
|
702
|
-
|
|
683
|
+
.overscroll-contain {
|
|
684
|
+
overscroll-behavior: contain;
|
|
703
685
|
}
|
|
704
686
|
.\!rounded-full {
|
|
705
687
|
border-radius: calc(infinity * 1px) !important;
|
|
@@ -898,18 +880,6 @@
|
|
|
898
880
|
border-color: color-mix(in oklab, var(--destructive) 40%, transparent);
|
|
899
881
|
}
|
|
900
882
|
}
|
|
901
|
-
.border-input\/40 {
|
|
902
|
-
border-color: var(--input);
|
|
903
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
904
|
-
border-color: color-mix(in oklab, var(--input) 40%, transparent);
|
|
905
|
-
}
|
|
906
|
-
}
|
|
907
|
-
.border-input\/60 {
|
|
908
|
-
border-color: var(--input);
|
|
909
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
910
|
-
border-color: color-mix(in oklab, var(--input) 60%, transparent);
|
|
911
|
-
}
|
|
912
|
-
}
|
|
913
883
|
.border-primary\/25 {
|
|
914
884
|
border-color: var(--primary);
|
|
915
885
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -937,9 +907,6 @@
|
|
|
937
907
|
background-color: color-mix(in oklab, var(--muted) 40%, transparent) !important;
|
|
938
908
|
}
|
|
939
909
|
}
|
|
940
|
-
.\!bg-secondary {
|
|
941
|
-
background-color: var(--secondary) !important;
|
|
942
|
-
}
|
|
943
910
|
.\!bg-transparent {
|
|
944
911
|
background-color: transparent !important;
|
|
945
912
|
}
|
|
@@ -1018,12 +985,6 @@
|
|
|
1018
985
|
.bg-accent {
|
|
1019
986
|
background-color: var(--accent);
|
|
1020
987
|
}
|
|
1021
|
-
.bg-accent\/5 {
|
|
1022
|
-
background-color: var(--accent);
|
|
1023
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
1024
|
-
background-color: color-mix(in oklab, var(--accent) 5%, transparent);
|
|
1025
|
-
}
|
|
1026
|
-
}
|
|
1027
988
|
.bg-accent\/10 {
|
|
1028
989
|
background-color: var(--accent);
|
|
1029
990
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1093,12 +1054,6 @@
|
|
|
1093
1054
|
background-color: color-mix(in oklab, var(--border) 70%, transparent);
|
|
1094
1055
|
}
|
|
1095
1056
|
}
|
|
1096
|
-
.bg-card\/40 {
|
|
1097
|
-
background-color: var(--card);
|
|
1098
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
1099
|
-
background-color: color-mix(in oklab, var(--card) 40%, transparent);
|
|
1100
|
-
}
|
|
1101
|
-
}
|
|
1102
1057
|
.bg-card\/60 {
|
|
1103
1058
|
background-color: var(--card);
|
|
1104
1059
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1114,12 +1069,6 @@
|
|
|
1114
1069
|
.bg-destructive {
|
|
1115
1070
|
background-color: var(--destructive);
|
|
1116
1071
|
}
|
|
1117
|
-
.bg-destructive\/5 {
|
|
1118
|
-
background-color: var(--destructive);
|
|
1119
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
1120
|
-
background-color: color-mix(in oklab, var(--destructive) 5%, transparent);
|
|
1121
|
-
}
|
|
1122
|
-
}
|
|
1123
1072
|
.bg-destructive\/10 {
|
|
1124
1073
|
background-color: var(--destructive);
|
|
1125
1074
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1228,9 +1177,6 @@
|
|
|
1228
1177
|
.object-cover {
|
|
1229
1178
|
object-fit: cover;
|
|
1230
1179
|
}
|
|
1231
|
-
.\!p-0 {
|
|
1232
|
-
padding: 0 !important;
|
|
1233
|
-
}
|
|
1234
1180
|
.p-0 {
|
|
1235
1181
|
padding: 0;
|
|
1236
1182
|
}
|
|
@@ -1240,6 +1186,9 @@
|
|
|
1240
1186
|
.p-1 {
|
|
1241
1187
|
padding: var(--spacing);
|
|
1242
1188
|
}
|
|
1189
|
+
.p-1\.5 {
|
|
1190
|
+
padding: calc(var(--spacing) * 1.5);
|
|
1191
|
+
}
|
|
1243
1192
|
.p-2 {
|
|
1244
1193
|
padding: calc(var(--spacing) * 2);
|
|
1245
1194
|
}
|
|
@@ -1261,9 +1210,6 @@
|
|
|
1261
1210
|
.\!px-2 {
|
|
1262
1211
|
padding-inline: calc(var(--spacing) * 2) !important;
|
|
1263
1212
|
}
|
|
1264
|
-
.\!px-4 {
|
|
1265
|
-
padding-inline: calc(var(--spacing) * 4) !important;
|
|
1266
|
-
}
|
|
1267
1213
|
.px-0 {
|
|
1268
1214
|
padding-inline: 0;
|
|
1269
1215
|
}
|
|
@@ -1300,9 +1246,6 @@
|
|
|
1300
1246
|
.\!py-0 {
|
|
1301
1247
|
padding-block: 0 !important;
|
|
1302
1248
|
}
|
|
1303
|
-
.\!py-2\.5 {
|
|
1304
|
-
padding-block: calc(var(--spacing) * 2.5) !important;
|
|
1305
|
-
}
|
|
1306
1249
|
.py-0 {
|
|
1307
1250
|
padding-block: 0;
|
|
1308
1251
|
}
|
|
@@ -1339,9 +1282,6 @@
|
|
|
1339
1282
|
.py-px {
|
|
1340
1283
|
padding-block: 1px;
|
|
1341
1284
|
}
|
|
1342
|
-
.pt-0 {
|
|
1343
|
-
padding-top: 0;
|
|
1344
|
-
}
|
|
1345
1285
|
.pt-1 {
|
|
1346
1286
|
padding-top: var(--spacing);
|
|
1347
1287
|
}
|
|
@@ -1503,6 +1443,10 @@
|
|
|
1503
1443
|
--tw-font-weight: var(--font-weight-medium);
|
|
1504
1444
|
font-weight: var(--font-weight-medium);
|
|
1505
1445
|
}
|
|
1446
|
+
.font-normal {
|
|
1447
|
+
--tw-font-weight: var(--font-weight-normal);
|
|
1448
|
+
font-weight: var(--font-weight-normal);
|
|
1449
|
+
}
|
|
1506
1450
|
.font-semibold {
|
|
1507
1451
|
--tw-font-weight: var(--font-weight-semibold);
|
|
1508
1452
|
font-weight: var(--font-weight-semibold);
|
|
@@ -1551,9 +1495,6 @@
|
|
|
1551
1495
|
color: color-mix(in oklab, var(--muted-foreground) 75%, transparent) !important;
|
|
1552
1496
|
}
|
|
1553
1497
|
}
|
|
1554
|
-
.\!text-secondary-foreground {
|
|
1555
|
-
color: var(--secondary-foreground) !important;
|
|
1556
|
-
}
|
|
1557
1498
|
.text-\[color\:var\(--accent\)\] {
|
|
1558
1499
|
color: var(--accent);
|
|
1559
1500
|
}
|
|
@@ -1617,12 +1558,6 @@
|
|
|
1617
1558
|
.text-accent-foreground {
|
|
1618
1559
|
color: var(--accent-foreground);
|
|
1619
1560
|
}
|
|
1620
|
-
.text-accent\/80 {
|
|
1621
|
-
color: var(--accent);
|
|
1622
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
1623
|
-
color: color-mix(in oklab, var(--accent) 80%, transparent);
|
|
1624
|
-
}
|
|
1625
|
-
}
|
|
1626
1561
|
.text-amber-600 {
|
|
1627
1562
|
color: var(--color-amber-600);
|
|
1628
1563
|
}
|
|
@@ -1638,12 +1573,6 @@
|
|
|
1638
1573
|
color: color-mix(in oklab, var(--destructive) 60%, transparent);
|
|
1639
1574
|
}
|
|
1640
1575
|
}
|
|
1641
|
-
.text-destructive\/70 {
|
|
1642
|
-
color: var(--destructive);
|
|
1643
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
1644
|
-
color: color-mix(in oklab, var(--destructive) 70%, transparent);
|
|
1645
|
-
}
|
|
1646
|
-
}
|
|
1647
1576
|
.text-destructive\/90 {
|
|
1648
1577
|
color: var(--destructive);
|
|
1649
1578
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1983,6 +1912,26 @@
|
|
|
1983
1912
|
rotate: 180deg;
|
|
1984
1913
|
}
|
|
1985
1914
|
}
|
|
1915
|
+
.group-\[\.is-assistant\]\:w-full {
|
|
1916
|
+
&:is(:where(.group):is(.is-assistant) *) {
|
|
1917
|
+
width: 100%;
|
|
1918
|
+
}
|
|
1919
|
+
}
|
|
1920
|
+
.group-\[\.is-assistant\]\:max-w-\[40\.5rem\] {
|
|
1921
|
+
&:is(:where(.group):is(.is-assistant) *) {
|
|
1922
|
+
max-width: 40.5rem;
|
|
1923
|
+
}
|
|
1924
|
+
}
|
|
1925
|
+
.group-\[\.is-assistant\]\:bg-transparent {
|
|
1926
|
+
&:is(:where(.group):is(.is-assistant) *) {
|
|
1927
|
+
background-color: transparent;
|
|
1928
|
+
}
|
|
1929
|
+
}
|
|
1930
|
+
.group-\[\.is-assistant\]\:p-0 {
|
|
1931
|
+
&:is(:where(.group):is(.is-assistant) *) {
|
|
1932
|
+
padding: 0;
|
|
1933
|
+
}
|
|
1934
|
+
}
|
|
1986
1935
|
.group-\[\.is-assistant\]\:text-foreground {
|
|
1987
1936
|
&:is(:where(.group):is(.is-assistant) *) {
|
|
1988
1937
|
color: var(--foreground);
|
|
@@ -1993,7 +1942,12 @@
|
|
|
1993
1942
|
margin-left: auto;
|
|
1994
1943
|
}
|
|
1995
1944
|
}
|
|
1996
|
-
.group-\[\.is-user\]\:
|
|
1945
|
+
.group-\[\.is-user\]\:max-w-\[80\%\] {
|
|
1946
|
+
&:is(:where(.group):is(.is-user) *) {
|
|
1947
|
+
max-width: 80%;
|
|
1948
|
+
}
|
|
1949
|
+
}
|
|
1950
|
+
.group-\[\.is-user\]\:rounded-\[var\(--radius-lg\)\] {
|
|
1997
1951
|
&:is(:where(.group):is(.is-user) *) {
|
|
1998
1952
|
border-radius: var(--radius-lg);
|
|
1999
1953
|
}
|
|
@@ -2008,9 +1962,9 @@
|
|
|
2008
1962
|
padding-inline: calc(var(--spacing) * 4);
|
|
2009
1963
|
}
|
|
2010
1964
|
}
|
|
2011
|
-
.group-\[\.is-user\]\:py-
|
|
1965
|
+
.group-\[\.is-user\]\:py-2\.5 {
|
|
2012
1966
|
&:is(:where(.group):is(.is-user) *) {
|
|
2013
|
-
padding-block: calc(var(--spacing) *
|
|
1967
|
+
padding-block: calc(var(--spacing) * 2.5);
|
|
2014
1968
|
}
|
|
2015
1969
|
}
|
|
2016
1970
|
.group-\[\.is-user\]\:text-foreground {
|
|
@@ -2090,6 +2044,11 @@
|
|
|
2090
2044
|
border-width: 0px;
|
|
2091
2045
|
}
|
|
2092
2046
|
}
|
|
2047
|
+
.empty\:hidden {
|
|
2048
|
+
&:empty {
|
|
2049
|
+
display: none;
|
|
2050
|
+
}
|
|
2051
|
+
}
|
|
2093
2052
|
.focus-within\:shadow-\[0_1px_3px_-1px_oklch\(0_0_0\/0\.08\)\,0_10px_28px_-14px_oklch\(0_0_0\/0\.16\)\,inset_0_0_0_1px_oklch\(from_var\(--accent\)_l_c_h\/0\.45\)\] {
|
|
2094
2053
|
&:focus-within {
|
|
2095
2054
|
--tw-shadow: 0 1px 3px -1px var(--tw-shadow-color, oklch(0 0 0/0.08)), 0 10px 28px -14px var(--tw-shadow-color, oklch(0 0 0/0.16)), inset 0 0 0 1px var(--tw-shadow-color, oklch(from var(--accent) l c h/0.45));
|
|
@@ -2109,16 +2068,6 @@
|
|
|
2109
2068
|
}
|
|
2110
2069
|
}
|
|
2111
2070
|
}
|
|
2112
|
-
.hover\:border-border\/70 {
|
|
2113
|
-
&:hover {
|
|
2114
|
-
@media (hover: hover) {
|
|
2115
|
-
border-color: var(--border);
|
|
2116
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
2117
|
-
border-color: color-mix(in oklab, var(--border) 70%, transparent);
|
|
2118
|
-
}
|
|
2119
|
-
}
|
|
2120
|
-
}
|
|
2121
|
-
}
|
|
2122
2071
|
.hover\:border-border\/80 {
|
|
2123
2072
|
&:hover {
|
|
2124
2073
|
@media (hover: hover) {
|
|
@@ -2187,16 +2136,6 @@
|
|
|
2187
2136
|
}
|
|
2188
2137
|
}
|
|
2189
2138
|
}
|
|
2190
|
-
.hover\:bg-card\/70 {
|
|
2191
|
-
&:hover {
|
|
2192
|
-
@media (hover: hover) {
|
|
2193
|
-
background-color: var(--card);
|
|
2194
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
2195
|
-
background-color: color-mix(in oklab, var(--card) 70%, transparent);
|
|
2196
|
-
}
|
|
2197
|
-
}
|
|
2198
|
-
}
|
|
2199
|
-
}
|
|
2200
2139
|
.hover\:bg-destructive\/10 {
|
|
2201
2140
|
&:hover {
|
|
2202
2141
|
@media (hover: hover) {
|
|
@@ -2284,6 +2223,16 @@
|
|
|
2284
2223
|
}
|
|
2285
2224
|
}
|
|
2286
2225
|
}
|
|
2226
|
+
.hover\:bg-muted\/70 {
|
|
2227
|
+
&:hover {
|
|
2228
|
+
@media (hover: hover) {
|
|
2229
|
+
background-color: var(--muted);
|
|
2230
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2231
|
+
background-color: color-mix(in oklab, var(--muted) 70%, transparent);
|
|
2232
|
+
}
|
|
2233
|
+
}
|
|
2234
|
+
}
|
|
2235
|
+
}
|
|
2287
2236
|
.hover\:bg-primary\/10 {
|
|
2288
2237
|
&:hover {
|
|
2289
2238
|
@media (hover: hover) {
|
|
@@ -2476,6 +2425,17 @@
|
|
|
2476
2425
|
--tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
|
2477
2426
|
}
|
|
2478
2427
|
}
|
|
2428
|
+
.focus-visible\:ring-offset-2 {
|
|
2429
|
+
&:focus-visible {
|
|
2430
|
+
--tw-ring-offset-width: 2px;
|
|
2431
|
+
--tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
|
2432
|
+
}
|
|
2433
|
+
}
|
|
2434
|
+
.focus-visible\:ring-offset-background {
|
|
2435
|
+
&:focus-visible {
|
|
2436
|
+
--tw-ring-offset-color: var(--background);
|
|
2437
|
+
}
|
|
2438
|
+
}
|
|
2479
2439
|
.focus-visible\:outline-none {
|
|
2480
2440
|
&:focus-visible {
|
|
2481
2441
|
--tw-outline-style: none;
|
|
@@ -5666,6 +5626,116 @@
|
|
|
5666
5626
|
}
|
|
5667
5627
|
}
|
|
5668
5628
|
}
|
|
5629
|
+
[data-boring-agent] .boring-agent-markdown {
|
|
5630
|
+
font-size: 0.8125rem;
|
|
5631
|
+
line-height: 1.25rem;
|
|
5632
|
+
}
|
|
5633
|
+
[data-boring-agent] .boring-agent-markdown p, [data-boring-agent] .boring-agent-markdown ol, [data-boring-agent] .boring-agent-markdown ul {
|
|
5634
|
+
margin-block: 0.75rem;
|
|
5635
|
+
}
|
|
5636
|
+
[data-boring-agent] .boring-agent-markdown h1, [data-boring-agent] .boring-agent-markdown h2, [data-boring-agent] .boring-agent-markdown h3 {
|
|
5637
|
+
color: var(--foreground);
|
|
5638
|
+
font-weight: 600;
|
|
5639
|
+
letter-spacing: -0.015em;
|
|
5640
|
+
}
|
|
5641
|
+
[data-boring-agent] .boring-agent-markdown h1 {
|
|
5642
|
+
margin-block: 1.5rem 0.5rem;
|
|
5643
|
+
font-size: 1.25rem;
|
|
5644
|
+
line-height: 1.5rem;
|
|
5645
|
+
}
|
|
5646
|
+
[data-boring-agent] .boring-agent-markdown h2 {
|
|
5647
|
+
margin-block: 1.5rem 0.5rem;
|
|
5648
|
+
font-size: 1rem;
|
|
5649
|
+
line-height: 1.5rem;
|
|
5650
|
+
}
|
|
5651
|
+
[data-boring-agent] .boring-agent-markdown h3 {
|
|
5652
|
+
margin-block: 1rem 0.5rem;
|
|
5653
|
+
font-size: 0.875rem;
|
|
5654
|
+
line-height: 1.25rem;
|
|
5655
|
+
}
|
|
5656
|
+
[data-boring-agent] .boring-agent-markdown ol, [data-boring-agent] .boring-agent-markdown ul {
|
|
5657
|
+
padding-inline-start: 1.5rem;
|
|
5658
|
+
list-style-position: outside;
|
|
5659
|
+
}
|
|
5660
|
+
[data-boring-agent] .boring-agent-markdown ol {
|
|
5661
|
+
list-style-type: decimal;
|
|
5662
|
+
}
|
|
5663
|
+
[data-boring-agent] .boring-agent-markdown ul {
|
|
5664
|
+
list-style-type: disc;
|
|
5665
|
+
}
|
|
5666
|
+
[data-boring-agent] .boring-agent-markdown li {
|
|
5667
|
+
padding-inline-start: 0.25rem;
|
|
5668
|
+
font: inherit;
|
|
5669
|
+
}
|
|
5670
|
+
[data-boring-agent] .boring-agent-markdown li + li {
|
|
5671
|
+
margin-top: 0.25rem;
|
|
5672
|
+
}
|
|
5673
|
+
[data-boring-agent] .boring-agent-markdown li::marker {
|
|
5674
|
+
color: var(--muted-foreground);
|
|
5675
|
+
}
|
|
5676
|
+
[data-boring-agent] .boring-agent-markdown strong {
|
|
5677
|
+
color: var(--foreground);
|
|
5678
|
+
font-weight: 600;
|
|
5679
|
+
}
|
|
5680
|
+
[data-boring-agent] .boring-agent-markdown a {
|
|
5681
|
+
color: var(--accent);
|
|
5682
|
+
text-underline-offset: 0.25rem;
|
|
5683
|
+
}
|
|
5684
|
+
[data-boring-agent] .boring-agent-markdown a:hover {
|
|
5685
|
+
text-decoration-line: underline;
|
|
5686
|
+
}
|
|
5687
|
+
[data-boring-agent] .boring-agent-markdown blockquote {
|
|
5688
|
+
margin-block: 1rem;
|
|
5689
|
+
padding: 0.75rem 1rem;
|
|
5690
|
+
border: 1px solid var(--border);
|
|
5691
|
+
border-radius: var(--radius-md);
|
|
5692
|
+
background: var(--muted);
|
|
5693
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
5694
|
+
background: color-mix(in oklab, var(--muted) 45%, transparent);
|
|
5695
|
+
}
|
|
5696
|
+
color: var(--muted-foreground);
|
|
5697
|
+
font-style: normal;
|
|
5698
|
+
}
|
|
5699
|
+
[data-boring-agent] .boring-agent-markdown blockquote p {
|
|
5700
|
+
margin-block: 0;
|
|
5701
|
+
}
|
|
5702
|
+
[data-boring-agent] .boring-agent-markdown table {
|
|
5703
|
+
width: 100%;
|
|
5704
|
+
border-collapse: collapse;
|
|
5705
|
+
font-size: inherit;
|
|
5706
|
+
font-variant-numeric: tabular-nums;
|
|
5707
|
+
text-align: left;
|
|
5708
|
+
}
|
|
5709
|
+
[data-boring-agent] .boring-agent-markdown thead {
|
|
5710
|
+
background: var(--muted);
|
|
5711
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
5712
|
+
background: color-mix(in oklab, var(--muted) 45%, transparent);
|
|
5713
|
+
}
|
|
5714
|
+
}
|
|
5715
|
+
[data-boring-agent] .boring-agent-markdown th, [data-boring-agent] .boring-agent-markdown td {
|
|
5716
|
+
padding: 0.5rem 1rem;
|
|
5717
|
+
border-bottom: 1px solid var(--border);
|
|
5718
|
+
}
|
|
5719
|
+
[data-boring-agent] .boring-agent-markdown th {
|
|
5720
|
+
font-weight: 600;
|
|
5721
|
+
}
|
|
5722
|
+
[data-boring-agent] .boring-agent-markdown tbody tr:last-child td {
|
|
5723
|
+
border-bottom: 0;
|
|
5724
|
+
}
|
|
5725
|
+
[data-boring-agent] .boring-agent-markdown pre {
|
|
5726
|
+
margin: 0;
|
|
5727
|
+
padding: 0;
|
|
5728
|
+
border: 0;
|
|
5729
|
+
background: transparent;
|
|
5730
|
+
overflow-x: auto;
|
|
5731
|
+
overscroll-behavior-x: contain;
|
|
5732
|
+
}
|
|
5733
|
+
[data-boring-agent] .boring-agent-markdown > *:first-child {
|
|
5734
|
+
margin-top: 0;
|
|
5735
|
+
}
|
|
5736
|
+
[data-boring-agent] .boring-agent-markdown > *:last-child {
|
|
5737
|
+
margin-bottom: 0;
|
|
5738
|
+
}
|
|
5669
5739
|
[data-theme="dark"] {
|
|
5670
5740
|
--background: oklch(0.145 0.004 285.823);
|
|
5671
5741
|
--foreground: oklch(0.985 0 0);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { D as InterruptReceipt, j as StopReceipt, p as AgentDefinitionErrorCode, q as AgentDeploymentErrorCode } from './piChatEvent-BsMp3MSo.js';
|
|
2
2
|
import { p as AgentSendInput, j as AgentEvent } from './harness-Cc48o6uS.js';
|
|
3
|
-
import { b as AgentSessionRef, n as AgentSendReceipt, A as AgentGateway, a as AuthorizedAgentScope } from './errors-
|
|
3
|
+
import { b as AgentSessionRef, n as AgentSendReceipt, A as AgentGateway, a as AuthorizedAgentScope } from './errors-G6T6S7PQ.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { b as Workspace } from './sandbox-DAD8cWQR.js';
|
|
6
6
|
|
|
@@ -10,6 +10,8 @@ interface WorkspaceAgentDispatcherContext {
|
|
|
10
10
|
}
|
|
11
11
|
type WorkspaceAgentDispatcherSendInput = Omit<AgentSendInput, 'ctx'>;
|
|
12
12
|
interface WorkspaceAgentDispatcherDispatchInput extends WorkspaceAgentDispatcherSendInput {
|
|
13
|
+
/** Optional title for a newly created addressed session. */
|
|
14
|
+
title?: string;
|
|
13
15
|
/** Durable caller-owned idempotency key. */
|
|
14
16
|
requestId: string;
|
|
15
17
|
/** Defaults to requestId. */
|
|
@@ -16,6 +16,10 @@ interface PiSessionCreateInit {
|
|
|
16
16
|
title?: string;
|
|
17
17
|
modelDefault?: ChatModelSelection;
|
|
18
18
|
}
|
|
19
|
+
/** Server-only prompt admission selector; browser schemas never accept requireIdle. */
|
|
20
|
+
type AgentPromptPayload = PromptPayload & {
|
|
21
|
+
readonly requireIdle?: true;
|
|
22
|
+
};
|
|
19
23
|
type PiChatReplayRangeError = {
|
|
20
24
|
type: 'replay_gap';
|
|
21
25
|
latestSeq: number;
|
|
@@ -45,13 +49,15 @@ interface PiChatSessionService {
|
|
|
45
49
|
readAttachment?(ctx: PiSessionRequestContext, sessionId: string, messageId: string, index: number): Promise<PiChatAttachmentResult>;
|
|
46
50
|
readState(ctx: PiSessionRequestContext, sessionId: string): Promise<PiChatSnapshot>;
|
|
47
51
|
subscribe(ctx: PiSessionRequestContext, sessionId: string, cursor: number, subscriber: PiChatEventSubscriber): Promise<PiChatEventStreamResult>;
|
|
48
|
-
prompt(ctx: PiSessionRequestContext, sessionId: string, payload:
|
|
52
|
+
prompt(ctx: PiSessionRequestContext, sessionId: string, payload: AgentPromptPayload): Promise<PromptReceipt>;
|
|
49
53
|
followUp(ctx: PiSessionRequestContext, sessionId: string, payload: FollowUpPayload): Promise<FollowUpReceipt>;
|
|
50
54
|
clearQueue(ctx: PiSessionRequestContext, sessionId: string, payload: QueueClearPayload): Promise<QueueClearReceipt>;
|
|
51
55
|
interrupt(ctx: PiSessionRequestContext, sessionId: string, payload: InterruptPayload): Promise<CommandReceipt>;
|
|
52
56
|
stop(ctx: PiSessionRequestContext, sessionId: string, payload: StopPayload): Promise<StopReceipt>;
|
|
53
57
|
}
|
|
54
58
|
interface AgentCoreSessionService extends PiChatSessionService {
|
|
59
|
+
/** Trusted host-only validation/binding seam; never exposed as an HTTP route. */
|
|
60
|
+
ensurePiSessionBound?(ctx: PiSessionRequestContext, sessionId: string): Promise<void>;
|
|
55
61
|
createSession(ctx: PiSessionRequestContext, init?: PiSessionCreateInit): Promise<SessionSummary>;
|
|
56
62
|
deleteSession(ctx: PiSessionRequestContext, sessionId: string): Promise<void>;
|
|
57
63
|
dispose?(): Promise<void>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as AgentGateway, a as AuthorizedAgentScope, b as AgentSessionRef, c as AgentSessionActivity } from '../../../errors-
|
|
2
|
-
import { A as AgentGatewayEffect } from '../../../types-
|
|
1
|
+
import { A as AgentGateway, a as AuthorizedAgentScope, b as AgentSessionRef, c as AgentSessionActivity } from '../../../errors-G6T6S7PQ.js';
|
|
2
|
+
import { A as AgentGatewayEffect } from '../../../types-C-Eroi__.js';
|
|
3
3
|
import '../../../piChatEvent-BsMp3MSo.js';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import 'fastify';
|
|
@@ -8,7 +8,7 @@ import '@mariozechner/pi-coding-agent';
|
|
|
8
8
|
import '../../../sandbox-DAD8cWQR.js';
|
|
9
9
|
import '@hachej/boring-bash/agent';
|
|
10
10
|
import '@hachej/boring-sandbox/providers/node-workspace';
|
|
11
|
-
import '../../../piChatSessionService-
|
|
11
|
+
import '../../../piChatSessionService-C0KbcGw9.js';
|
|
12
12
|
|
|
13
13
|
/** G1 ships only the embedded bounded-replay contract. */
|
|
14
14
|
type GatewayReplayConformanceLevel = 'B';
|
|
@@ -286,6 +286,83 @@ function gatewayConformance(options) {
|
|
|
286
286
|
expect(await connection.stop({ requestId: "stop" })).toEqual(stop);
|
|
287
287
|
await connection.close();
|
|
288
288
|
});
|
|
289
|
+
it("keeps strict-idle busy admission retryable and idempotent", async () => {
|
|
290
|
+
const fixture = await options.createFixture();
|
|
291
|
+
const scope = fixture.issueScope();
|
|
292
|
+
const ref = await createSession(fixture, scope, "strict-idle-retry");
|
|
293
|
+
const connection = await fixture.gateway.connectSession({ scope, ref });
|
|
294
|
+
const input = {
|
|
295
|
+
kind: "prompt",
|
|
296
|
+
requestId: "strict-review",
|
|
297
|
+
clientNonce: "strict-review",
|
|
298
|
+
content: "model-facing review",
|
|
299
|
+
displayContent: "Visible review",
|
|
300
|
+
requireIdle: true
|
|
301
|
+
};
|
|
302
|
+
fixture.setActivity(ref, "running");
|
|
303
|
+
await expectCode(connection.send(input), AgentGatewayErrorCode.AGENT_COMMAND_INVALID_STATE);
|
|
304
|
+
fixture.setActivity(ref, "idle");
|
|
305
|
+
const accepted = await connection.send(input);
|
|
306
|
+
expect(accepted).toMatchObject({ accepted: true, disposition: "prompt" });
|
|
307
|
+
await expect(connection.send(input)).resolves.toMatchObject({ ...accepted, duplicate: true });
|
|
308
|
+
await expectCode(
|
|
309
|
+
connection.send({ ...input, displayContent: "changed payload" }),
|
|
310
|
+
AgentGatewayErrorCode.AGENT_REQUEST_CONFLICT
|
|
311
|
+
);
|
|
312
|
+
await connection.close();
|
|
313
|
+
});
|
|
314
|
+
it("admits exactly one of two concurrent strict-idle prompts", async () => {
|
|
315
|
+
const fixture = await options.createFixture();
|
|
316
|
+
const scope = fixture.issueScope();
|
|
317
|
+
const ref = await createSession(fixture, scope, "strict-idle-race");
|
|
318
|
+
const connection = await fixture.gateway.connectSession({ scope, ref });
|
|
319
|
+
fixture.setActivity(ref, "idle");
|
|
320
|
+
const outcome = async (requestId) => {
|
|
321
|
+
try {
|
|
322
|
+
await connection.send({
|
|
323
|
+
kind: "prompt",
|
|
324
|
+
requestId,
|
|
325
|
+
clientNonce: requestId,
|
|
326
|
+
content: requestId,
|
|
327
|
+
requireIdle: true
|
|
328
|
+
});
|
|
329
|
+
return "accepted";
|
|
330
|
+
} catch (error) {
|
|
331
|
+
return error.code;
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
const outcomes = await Promise.all([outcome("strict-a"), outcome("strict-b")]);
|
|
335
|
+
expect(outcomes.sort()).toEqual([
|
|
336
|
+
AgentGatewayErrorCode.AGENT_COMMAND_INVALID_STATE,
|
|
337
|
+
"accepted"
|
|
338
|
+
].sort());
|
|
339
|
+
await connection.close();
|
|
340
|
+
});
|
|
341
|
+
it("keeps ordinary error recovery while strict-idle prompts reject error state", async () => {
|
|
342
|
+
const fixture = await options.createFixture();
|
|
343
|
+
const scope = fixture.issueScope();
|
|
344
|
+
const strictRef = await createSession(fixture, scope, "strict-error");
|
|
345
|
+
const strictConnection = await fixture.gateway.connectSession({ scope, ref: strictRef });
|
|
346
|
+
fixture.setActivity(strictRef, "error");
|
|
347
|
+
await expectCode(strictConnection.send({
|
|
348
|
+
kind: "prompt",
|
|
349
|
+
requestId: "strict-error-prompt",
|
|
350
|
+
clientNonce: "strict-error-prompt",
|
|
351
|
+
content: "strict",
|
|
352
|
+
requireIdle: true
|
|
353
|
+
}), AgentGatewayErrorCode.AGENT_COMMAND_INVALID_STATE);
|
|
354
|
+
await strictConnection.close();
|
|
355
|
+
const recoveryRef = await createSession(fixture, scope, "ordinary-error");
|
|
356
|
+
const recoveryConnection = await fixture.gateway.connectSession({ scope, ref: recoveryRef });
|
|
357
|
+
fixture.setActivity(recoveryRef, "error");
|
|
358
|
+
await expect(recoveryConnection.send({
|
|
359
|
+
kind: "prompt",
|
|
360
|
+
requestId: "ordinary-recovery",
|
|
361
|
+
clientNonce: "ordinary-recovery",
|
|
362
|
+
content: "recover"
|
|
363
|
+
})).resolves.toMatchObject({ disposition: "prompt" });
|
|
364
|
+
await recoveryConnection.close();
|
|
365
|
+
});
|
|
289
366
|
it("covers the complete command-state table and queue selector semantics", async () => {
|
|
290
367
|
const fixture = await options.createFixture();
|
|
291
368
|
const scope = fixture.issueScope();
|