pi-interview 0.6.1 → 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.
- package/README.md +42 -25
- package/form/script.js +1417 -387
- package/form/styles.css +420 -17
- package/index.ts +412 -65
- package/package.json +1 -1
- package/schema.ts +81 -20
- package/server.ts +766 -90
package/form/styles.css
CHANGED
|
@@ -239,6 +239,22 @@ body {
|
|
|
239
239
|
min-width: 0;
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
+
.option-item-body {
|
|
243
|
+
flex: 1;
|
|
244
|
+
min-width: 0;
|
|
245
|
+
display: grid;
|
|
246
|
+
gap: 10px;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.option-item-label {
|
|
250
|
+
display: flex;
|
|
251
|
+
align-items: center;
|
|
252
|
+
gap: 0;
|
|
253
|
+
min-height: 20px;
|
|
254
|
+
min-width: 0;
|
|
255
|
+
flex-wrap: wrap;
|
|
256
|
+
}
|
|
257
|
+
|
|
242
258
|
.option-item:hover {
|
|
243
259
|
border-color: var(--border-focus);
|
|
244
260
|
background: var(--bg-hover);
|
|
@@ -334,7 +350,7 @@ input[type="checkbox"] {
|
|
|
334
350
|
display: inline-grid;
|
|
335
351
|
place-content: center;
|
|
336
352
|
margin: 0;
|
|
337
|
-
margin-top:
|
|
353
|
+
margin-top: 2px;
|
|
338
354
|
flex-shrink: 0;
|
|
339
355
|
}
|
|
340
356
|
|
|
@@ -1393,6 +1409,9 @@ button {
|
|
|
1393
1409
|
padding: 0.75rem;
|
|
1394
1410
|
overflow-x: hidden;
|
|
1395
1411
|
line-height: 1.5;
|
|
1412
|
+
white-space: pre-wrap;
|
|
1413
|
+
overflow-wrap: anywhere;
|
|
1414
|
+
word-break: break-word;
|
|
1396
1415
|
}
|
|
1397
1416
|
|
|
1398
1417
|
.code-block code {
|
|
@@ -1400,6 +1419,91 @@ button {
|
|
|
1400
1419
|
font-size: var(--font-size-code);
|
|
1401
1420
|
background: none;
|
|
1402
1421
|
padding: 0;
|
|
1422
|
+
white-space: inherit;
|
|
1423
|
+
overflow-wrap: inherit;
|
|
1424
|
+
word-break: inherit;
|
|
1425
|
+
}
|
|
1426
|
+
|
|
1427
|
+
.markdown-content-block .code-block-header {
|
|
1428
|
+
border-bottom: 0;
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1431
|
+
.markdown-preview {
|
|
1432
|
+
padding: 0.875rem;
|
|
1433
|
+
display: grid;
|
|
1434
|
+
gap: 0.625rem;
|
|
1435
|
+
color: var(--fg);
|
|
1436
|
+
line-height: 1.6;
|
|
1437
|
+
text-wrap: pretty;
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1440
|
+
.markdown-preview > * {
|
|
1441
|
+
margin: 0;
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
.markdown-preview h1,
|
|
1445
|
+
.markdown-preview h2,
|
|
1446
|
+
.markdown-preview h3,
|
|
1447
|
+
.markdown-preview h4,
|
|
1448
|
+
.markdown-preview h5,
|
|
1449
|
+
.markdown-preview h6 {
|
|
1450
|
+
font-family: var(--font-display);
|
|
1451
|
+
line-height: 1.2;
|
|
1452
|
+
text-wrap: balance;
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
.markdown-preview h1 { font-size: 1.2rem; }
|
|
1456
|
+
.markdown-preview h2 { font-size: 1.1rem; }
|
|
1457
|
+
.markdown-preview h3 { font-size: 1rem; }
|
|
1458
|
+
|
|
1459
|
+
.markdown-preview ul,
|
|
1460
|
+
.markdown-preview ol {
|
|
1461
|
+
margin: 0;
|
|
1462
|
+
padding-left: 1.25rem;
|
|
1463
|
+
display: grid;
|
|
1464
|
+
gap: 0.35rem;
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
.markdown-preview blockquote {
|
|
1468
|
+
margin: 0;
|
|
1469
|
+
padding-left: 0.75rem;
|
|
1470
|
+
border-left: 3px solid var(--accent-muted);
|
|
1471
|
+
color: var(--fg-muted);
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
.markdown-preview pre {
|
|
1475
|
+
margin: 0;
|
|
1476
|
+
padding: 0.75rem;
|
|
1477
|
+
border-radius: 6px;
|
|
1478
|
+
background: color-mix(in srgb, var(--bg-body) 90%, transparent);
|
|
1479
|
+
border: 1px solid var(--border-muted);
|
|
1480
|
+
overflow-x: auto;
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
.markdown-preview pre code {
|
|
1484
|
+
font-family: var(--font-mono);
|
|
1485
|
+
font-size: var(--font-size-code);
|
|
1486
|
+
white-space: pre;
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1489
|
+
.markdown-preview code {
|
|
1490
|
+
font-family: var(--font-mono);
|
|
1491
|
+
font-size: 0.75rem;
|
|
1492
|
+
background: color-mix(in srgb, var(--bg-body) 80%, transparent);
|
|
1493
|
+
padding: 0.1rem 0.3rem;
|
|
1494
|
+
border-radius: 4px;
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
.markdown-preview a {
|
|
1498
|
+
color: var(--accent);
|
|
1499
|
+
text-underline-offset: 2px;
|
|
1500
|
+
}
|
|
1501
|
+
|
|
1502
|
+
.markdown-preview p code,
|
|
1503
|
+
.markdown-preview li code,
|
|
1504
|
+
.markdown-preview blockquote code {
|
|
1505
|
+
white-space: normal;
|
|
1506
|
+
overflow-wrap: anywhere;
|
|
1403
1507
|
}
|
|
1404
1508
|
|
|
1405
1509
|
.code-block-lines-container {
|
|
@@ -1468,25 +1572,11 @@ button {
|
|
|
1468
1572
|
|
|
1469
1573
|
/* Option with code */
|
|
1470
1574
|
.option-item.has-code {
|
|
1471
|
-
position: relative;
|
|
1472
|
-
flex-direction: column;
|
|
1473
|
-
align-items: stretch;
|
|
1474
1575
|
min-width: 0;
|
|
1475
1576
|
}
|
|
1476
1577
|
|
|
1477
|
-
.option-item.has-code > input {
|
|
1478
|
-
position: absolute;
|
|
1479
|
-
top: 6px;
|
|
1480
|
-
left: 8px;
|
|
1481
|
-
}
|
|
1482
|
-
|
|
1483
|
-
.option-item.has-code > span:first-of-type {
|
|
1484
|
-
margin-left: 1.5rem;
|
|
1485
|
-
}
|
|
1486
|
-
|
|
1487
1578
|
.option-item.has-code .code-block {
|
|
1488
|
-
margin
|
|
1489
|
-
margin-left: 1.5rem;
|
|
1579
|
+
margin: 0;
|
|
1490
1580
|
}
|
|
1491
1581
|
|
|
1492
1582
|
/* Question-level code block */
|
|
@@ -1812,6 +1902,320 @@ button {
|
|
|
1812
1902
|
animation: option-slide-in 0.25s ease-out backwards;
|
|
1813
1903
|
}
|
|
1814
1904
|
|
|
1905
|
+
.option-row {
|
|
1906
|
+
position: relative;
|
|
1907
|
+
display: grid;
|
|
1908
|
+
gap: 0;
|
|
1909
|
+
min-width: 0;
|
|
1910
|
+
border-radius: 8px;
|
|
1911
|
+
background: var(--bg-elevated);
|
|
1912
|
+
border: 1px solid var(--border-muted);
|
|
1913
|
+
transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
|
|
1914
|
+
}
|
|
1915
|
+
|
|
1916
|
+
.option-row.generated {
|
|
1917
|
+
animation: option-slide-in 0.25s ease-out backwards;
|
|
1918
|
+
}
|
|
1919
|
+
|
|
1920
|
+
.option-row:hover {
|
|
1921
|
+
border-color: var(--border-focus);
|
|
1922
|
+
background: var(--bg-hover);
|
|
1923
|
+
}
|
|
1924
|
+
|
|
1925
|
+
.option-row.focused {
|
|
1926
|
+
border-color: var(--card-accent, var(--accent));
|
|
1927
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--card-accent, var(--accent)) 20%, transparent);
|
|
1928
|
+
}
|
|
1929
|
+
|
|
1930
|
+
.option-row-main {
|
|
1931
|
+
display: flex;
|
|
1932
|
+
align-items: flex-start;
|
|
1933
|
+
gap: 10px;
|
|
1934
|
+
min-width: 0;
|
|
1935
|
+
padding: var(--option-padding);
|
|
1936
|
+
}
|
|
1937
|
+
|
|
1938
|
+
.option-row-main .option-item {
|
|
1939
|
+
flex: 1;
|
|
1940
|
+
min-width: 0;
|
|
1941
|
+
padding: 0;
|
|
1942
|
+
border: none;
|
|
1943
|
+
background: transparent;
|
|
1944
|
+
box-shadow: none;
|
|
1945
|
+
}
|
|
1946
|
+
|
|
1947
|
+
.option-row-main .option-item:hover,
|
|
1948
|
+
.option-row-main .option-item.focused {
|
|
1949
|
+
border: none;
|
|
1950
|
+
background: transparent;
|
|
1951
|
+
box-shadow: none;
|
|
1952
|
+
}
|
|
1953
|
+
|
|
1954
|
+
.option-ask-btn {
|
|
1955
|
+
align-self: center;
|
|
1956
|
+
margin-left: auto;
|
|
1957
|
+
border: none;
|
|
1958
|
+
border-radius: 999px;
|
|
1959
|
+
padding: 6px 10px;
|
|
1960
|
+
background: color-mix(in srgb, var(--card-accent, var(--accent)) 12%, transparent);
|
|
1961
|
+
color: var(--card-accent, var(--accent));
|
|
1962
|
+
font-family: var(--font-body);
|
|
1963
|
+
font-size: 11px;
|
|
1964
|
+
font-weight: 600;
|
|
1965
|
+
opacity: 0;
|
|
1966
|
+
transform: translateY(-2px);
|
|
1967
|
+
pointer-events: none;
|
|
1968
|
+
transition: opacity 150ms ease, transform 150ms ease, background 150ms ease;
|
|
1969
|
+
}
|
|
1970
|
+
|
|
1971
|
+
.option-row:hover .option-ask-btn,
|
|
1972
|
+
.option-row:focus-within .option-ask-btn,
|
|
1973
|
+
.option-row.focused .option-ask-btn,
|
|
1974
|
+
.option-row.ask-open .option-ask-btn {
|
|
1975
|
+
opacity: 1;
|
|
1976
|
+
transform: translateY(0);
|
|
1977
|
+
pointer-events: auto;
|
|
1978
|
+
}
|
|
1979
|
+
|
|
1980
|
+
.option-row.ask-open {
|
|
1981
|
+
border-color: color-mix(in srgb, var(--card-accent, var(--accent)) 55%, var(--border-muted));
|
|
1982
|
+
background: color-mix(in srgb, var(--card-accent, var(--accent)) 6%, var(--bg-elevated));
|
|
1983
|
+
overflow: hidden;
|
|
1984
|
+
}
|
|
1985
|
+
|
|
1986
|
+
.option-row.ask-open .option-ask-btn {
|
|
1987
|
+
margin-top: 2px;
|
|
1988
|
+
}
|
|
1989
|
+
|
|
1990
|
+
.option-note-wrap {
|
|
1991
|
+
margin: 0 16px 16px 42px;
|
|
1992
|
+
}
|
|
1993
|
+
|
|
1994
|
+
.option-note-input {
|
|
1995
|
+
width: 100%;
|
|
1996
|
+
min-width: 0;
|
|
1997
|
+
border: 1px solid var(--border-muted);
|
|
1998
|
+
border-radius: 8px;
|
|
1999
|
+
background: var(--bg-body);
|
|
2000
|
+
color: var(--fg);
|
|
2001
|
+
font-family: var(--font-body);
|
|
2002
|
+
font-size: 13px;
|
|
2003
|
+
line-height: 1.4;
|
|
2004
|
+
padding: 8px 10px;
|
|
2005
|
+
}
|
|
2006
|
+
|
|
2007
|
+
.option-note-input::placeholder {
|
|
2008
|
+
color: var(--fg-dim);
|
|
2009
|
+
}
|
|
2010
|
+
|
|
2011
|
+
.option-insight-panel {
|
|
2012
|
+
display: grid;
|
|
2013
|
+
gap: 10px;
|
|
2014
|
+
margin: 0 16px 16px 16px;
|
|
2015
|
+
padding-top: 12px;
|
|
2016
|
+
border-top: 1px solid color-mix(in srgb, var(--card-accent, var(--accent)) 22%, var(--border-muted));
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
.option-insight-meta-row {
|
|
2020
|
+
display: flex;
|
|
2021
|
+
justify-content: space-between;
|
|
2022
|
+
align-items: center;
|
|
2023
|
+
gap: 10px;
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
.option-insight-model,
|
|
2027
|
+
.option-insight-meta {
|
|
2028
|
+
font-size: 11px;
|
|
2029
|
+
color: var(--fg-muted);
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
.option-insight-chips {
|
|
2033
|
+
display: flex;
|
|
2034
|
+
flex-wrap: wrap;
|
|
2035
|
+
gap: 6px;
|
|
2036
|
+
}
|
|
2037
|
+
|
|
2038
|
+
.option-insight-chip,
|
|
2039
|
+
.option-insight-secondary,
|
|
2040
|
+
.option-insight-primary,
|
|
2041
|
+
.option-insight-submit,
|
|
2042
|
+
.option-insight-advanced-toggle,
|
|
2043
|
+
.option-insight-unpin {
|
|
2044
|
+
border: 1px solid var(--border-muted);
|
|
2045
|
+
border-radius: 999px;
|
|
2046
|
+
background: transparent;
|
|
2047
|
+
color: var(--fg-muted);
|
|
2048
|
+
font-family: var(--font-body);
|
|
2049
|
+
font-size: 11px;
|
|
2050
|
+
cursor: pointer;
|
|
2051
|
+
}
|
|
2052
|
+
|
|
2053
|
+
.option-insight-chip,
|
|
2054
|
+
.option-insight-secondary,
|
|
2055
|
+
.option-insight-primary,
|
|
2056
|
+
.option-insight-submit,
|
|
2057
|
+
.option-insight-unpin {
|
|
2058
|
+
padding: 6px 10px;
|
|
2059
|
+
}
|
|
2060
|
+
|
|
2061
|
+
.option-insight-chip.active,
|
|
2062
|
+
.option-insight-primary,
|
|
2063
|
+
.option-insight-submit {
|
|
2064
|
+
border-color: color-mix(in srgb, var(--card-accent, var(--accent)) 55%, transparent);
|
|
2065
|
+
color: var(--card-accent, var(--accent));
|
|
2066
|
+
background: color-mix(in srgb, var(--card-accent, var(--accent)) 10%, transparent);
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
.option-insight-input,
|
|
2070
|
+
.option-insight-select {
|
|
2071
|
+
width: 100%;
|
|
2072
|
+
border: 1px solid var(--border-muted);
|
|
2073
|
+
border-radius: 12px;
|
|
2074
|
+
padding: 10px 12px;
|
|
2075
|
+
background: var(--bg-body);
|
|
2076
|
+
color: var(--fg);
|
|
2077
|
+
font-family: var(--font-body);
|
|
2078
|
+
font-size: 13px;
|
|
2079
|
+
}
|
|
2080
|
+
|
|
2081
|
+
.option-insight-input {
|
|
2082
|
+
min-height: 72px;
|
|
2083
|
+
resize: vertical;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
.option-insight-advanced-toggle {
|
|
2087
|
+
padding: 0;
|
|
2088
|
+
border: none;
|
|
2089
|
+
color: var(--fg-muted);
|
|
2090
|
+
}
|
|
2091
|
+
|
|
2092
|
+
.option-insight-advanced {
|
|
2093
|
+
display: grid;
|
|
2094
|
+
grid-template-columns: 1fr 1fr;
|
|
2095
|
+
gap: 8px;
|
|
2096
|
+
}
|
|
2097
|
+
|
|
2098
|
+
.option-insight-actions,
|
|
2099
|
+
.option-insight-result-actions {
|
|
2100
|
+
display: flex;
|
|
2101
|
+
flex-wrap: wrap;
|
|
2102
|
+
gap: 8px;
|
|
2103
|
+
}
|
|
2104
|
+
|
|
2105
|
+
.option-insight-error {
|
|
2106
|
+
font-size: 11px;
|
|
2107
|
+
color: var(--error);
|
|
2108
|
+
}
|
|
2109
|
+
|
|
2110
|
+
.option-insight-result {
|
|
2111
|
+
display: grid;
|
|
2112
|
+
gap: 8px;
|
|
2113
|
+
border-top: 1px solid var(--border-muted);
|
|
2114
|
+
padding-top: 10px;
|
|
2115
|
+
}
|
|
2116
|
+
|
|
2117
|
+
.option-insight-summary {
|
|
2118
|
+
margin: 0;
|
|
2119
|
+
color: var(--fg);
|
|
2120
|
+
}
|
|
2121
|
+
|
|
2122
|
+
.option-insight-summary.pinned {
|
|
2123
|
+
font-size: 12px;
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
.option-insight-bullets {
|
|
2127
|
+
margin: 0;
|
|
2128
|
+
padding-left: 18px;
|
|
2129
|
+
display: grid;
|
|
2130
|
+
gap: 4px;
|
|
2131
|
+
color: var(--fg-muted);
|
|
2132
|
+
}
|
|
2133
|
+
|
|
2134
|
+
.option-insight-suggestion-label {
|
|
2135
|
+
font-size: 10px;
|
|
2136
|
+
text-transform: uppercase;
|
|
2137
|
+
letter-spacing: 0.06em;
|
|
2138
|
+
color: var(--fg-muted);
|
|
2139
|
+
}
|
|
2140
|
+
|
|
2141
|
+
.option-insight-suggested-text {
|
|
2142
|
+
display: block;
|
|
2143
|
+
padding: 10px 12px;
|
|
2144
|
+
border-radius: 10px;
|
|
2145
|
+
background: var(--bg-body);
|
|
2146
|
+
font-family: var(--font-mono);
|
|
2147
|
+
font-size: 12px;
|
|
2148
|
+
white-space: pre-wrap;
|
|
2149
|
+
overflow-wrap: anywhere;
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
.option-insight-suggested-text.compact {
|
|
2153
|
+
padding: 8px 10px;
|
|
2154
|
+
font-size: 11px;
|
|
2155
|
+
}
|
|
2156
|
+
|
|
2157
|
+
.option-insight-pinned-list {
|
|
2158
|
+
display: grid;
|
|
2159
|
+
gap: 8px;
|
|
2160
|
+
margin: 0 16px 16px 16px;
|
|
2161
|
+
}
|
|
2162
|
+
|
|
2163
|
+
.option-insight-pinned {
|
|
2164
|
+
border: 1px solid var(--border-muted);
|
|
2165
|
+
border-radius: 12px;
|
|
2166
|
+
padding: 10px 12px;
|
|
2167
|
+
background: color-mix(in srgb, var(--bg-body) 88%, transparent);
|
|
2168
|
+
display: grid;
|
|
2169
|
+
gap: 6px;
|
|
2170
|
+
}
|
|
2171
|
+
|
|
2172
|
+
.option-insight-pinned-head {
|
|
2173
|
+
display: flex;
|
|
2174
|
+
justify-content: space-between;
|
|
2175
|
+
gap: 10px;
|
|
2176
|
+
align-items: center;
|
|
2177
|
+
}
|
|
2178
|
+
|
|
2179
|
+
.option-insight-pinned-prompt {
|
|
2180
|
+
font-size: 11px;
|
|
2181
|
+
color: var(--card-accent, var(--accent));
|
|
2182
|
+
font-family: var(--font-mono);
|
|
2183
|
+
}
|
|
2184
|
+
|
|
2185
|
+
.option-insight-unpin {
|
|
2186
|
+
padding: 4px 8px;
|
|
2187
|
+
}
|
|
2188
|
+
|
|
2189
|
+
@media (max-width: 640px) {
|
|
2190
|
+
.option-row-main {
|
|
2191
|
+
flex-wrap: wrap;
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
.option-ask-btn {
|
|
2195
|
+
opacity: 1;
|
|
2196
|
+
transform: none;
|
|
2197
|
+
pointer-events: auto;
|
|
2198
|
+
margin-left: 1.5rem;
|
|
2199
|
+
}
|
|
2200
|
+
|
|
2201
|
+
.option-insight-panel,
|
|
2202
|
+
.option-insight-pinned-list {
|
|
2203
|
+
margin-left: 1rem;
|
|
2204
|
+
margin-right: 1rem;
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2207
|
+
.option-insight-meta-row,
|
|
2208
|
+
.option-insight-actions,
|
|
2209
|
+
.option-insight-result-actions {
|
|
2210
|
+
align-items: flex-start;
|
|
2211
|
+
flex-direction: column;
|
|
2212
|
+
}
|
|
2213
|
+
|
|
2214
|
+
.option-insight-advanced {
|
|
2215
|
+
grid-template-columns: 1fr;
|
|
2216
|
+
}
|
|
2217
|
+
}
|
|
2218
|
+
|
|
1815
2219
|
/* Side-by-side layout */
|
|
1816
2220
|
.question-side-layout {
|
|
1817
2221
|
display: grid;
|
|
@@ -1831,4 +2235,3 @@ button {
|
|
|
1831
2235
|
grid-template-columns: 1fr;
|
|
1832
2236
|
}
|
|
1833
2237
|
}
|
|
1834
|
-
|