@post-print/agent-test 2.0.0 → 2.0.1

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 (134) hide show
  1. package/dist/sdk/cli.d.ts +1 -1
  2. package/dist/sdk/cli.d.ts.map +1 -1
  3. package/dist/sdk/cli.js +49 -14
  4. package/dist/sdk/cli.js.map +1 -1
  5. package/dist/sdk/definitions.js +1 -1
  6. package/dist/sdk/definitions.js.map +1 -1
  7. package/dist/sdk/execution-reporter.d.ts +18 -0
  8. package/dist/sdk/execution-reporter.d.ts.map +1 -0
  9. package/dist/sdk/execution-reporter.js +171 -0
  10. package/dist/sdk/execution-reporter.js.map +1 -0
  11. package/dist/sdk/execution-runner.d.ts +14 -0
  12. package/dist/sdk/execution-runner.d.ts.map +1 -0
  13. package/dist/sdk/execution-runner.js +80 -0
  14. package/dist/sdk/execution-runner.js.map +1 -0
  15. package/dist/sdk/execution-store.d.ts +92 -0
  16. package/dist/sdk/execution-store.d.ts.map +1 -0
  17. package/dist/sdk/execution-store.js +357 -0
  18. package/dist/sdk/execution-store.js.map +1 -0
  19. package/dist/sdk/expect.d.ts.map +1 -1
  20. package/dist/sdk/expect.js +33 -5
  21. package/dist/sdk/expect.js.map +1 -1
  22. package/dist/sdk/playwright-cli.d.ts +2 -0
  23. package/dist/sdk/playwright-cli.d.ts.map +1 -0
  24. package/dist/sdk/playwright-cli.js +6 -0
  25. package/dist/sdk/playwright-cli.js.map +1 -0
  26. package/dist/sdk/reporter.d.ts.map +1 -1
  27. package/dist/sdk/reporter.js +40 -0
  28. package/dist/sdk/reporter.js.map +1 -1
  29. package/dist/sdk/runtime.d.ts +1 -1
  30. package/dist/sdk/runtime.d.ts.map +1 -1
  31. package/dist/sdk/runtime.js +14 -5
  32. package/dist/sdk/runtime.js.map +1 -1
  33. package/dist/sdk/test.d.ts +10 -1
  34. package/dist/sdk/test.d.ts.map +1 -1
  35. package/dist/sdk/test.js +45 -4
  36. package/dist/sdk/test.js.map +1 -1
  37. package/dist/sdk/types.d.ts +2 -1
  38. package/dist/sdk/types.d.ts.map +1 -1
  39. package/dist/sdk/viewer.d.ts +3 -9
  40. package/dist/sdk/viewer.d.ts.map +1 -1
  41. package/dist/sdk/viewer.js +41 -127
  42. package/dist/sdk/viewer.js.map +1 -1
  43. package/dist/viewer/bootstrap.d.ts +10 -0
  44. package/dist/viewer/bootstrap.d.ts.map +1 -0
  45. package/dist/viewer/bootstrap.js +2 -0
  46. package/dist/viewer/bootstrap.js.map +1 -0
  47. package/dist/viewer/client-entry.d.ts +2 -0
  48. package/dist/viewer/client-entry.d.ts.map +1 -0
  49. package/dist/viewer/client-entry.js +31 -0
  50. package/dist/viewer/client-entry.js.map +1 -0
  51. package/dist/viewer/generated-api.d.ts +15 -0
  52. package/dist/viewer/generated-api.d.ts.map +1 -0
  53. package/dist/viewer/generated-api.js +42 -0
  54. package/dist/viewer/generated-api.js.map +1 -0
  55. package/dist/viewer/generated-contracts.d.ts +13 -0
  56. package/dist/viewer/generated-contracts.d.ts.map +1 -0
  57. package/dist/viewer/generated-contracts.js +12 -0
  58. package/dist/viewer/generated-contracts.js.map +1 -0
  59. package/dist/viewer/main.js +64 -3
  60. package/dist/viewer/main.js.map +1 -1
  61. package/dist/viewer/page.d.ts +2 -4
  62. package/dist/viewer/page.d.ts.map +1 -1
  63. package/dist/viewer/page.js +18 -194
  64. package/dist/viewer/page.js.map +1 -1
  65. package/dist/viewer/presentation.d.ts +8 -0
  66. package/dist/viewer/presentation.d.ts.map +1 -0
  67. package/dist/viewer/presentation.js +45 -0
  68. package/dist/viewer/presentation.js.map +1 -0
  69. package/dist/viewer/protocol.d.ts +21 -0
  70. package/dist/viewer/protocol.d.ts.map +1 -0
  71. package/dist/viewer/protocol.js +6 -0
  72. package/dist/viewer/protocol.js.map +1 -0
  73. package/dist/viewer/server.d.ts +5 -10
  74. package/dist/viewer/server.d.ts.map +1 -1
  75. package/dist/viewer/server.js +301 -199
  76. package/dist/viewer/server.js.map +1 -1
  77. package/dist/viewer/styles.d.ts +1 -1
  78. package/dist/viewer/styles.d.ts.map +1 -1
  79. package/dist/viewer/styles.js +82 -429
  80. package/dist/viewer/styles.js.map +1 -1
  81. package/dist/viewer/stylex.css +1322 -0
  82. package/dist/viewer/test-catalog.d.ts +43 -0
  83. package/dist/viewer/test-catalog.d.ts.map +1 -0
  84. package/dist/viewer/test-catalog.js +27 -0
  85. package/dist/viewer/test-catalog.js.map +1 -0
  86. package/dist/viewer/v2-client.d.ts +7 -0
  87. package/dist/viewer/v2-client.d.ts.map +1 -0
  88. package/dist/viewer/v2-client.js +1862 -0
  89. package/dist/viewer/v2-client.js.map +1 -0
  90. package/package.json +14 -4
  91. package/dist/compare-scenario.d.ts +0 -65
  92. package/dist/compare-scenario.d.ts.map +0 -1
  93. package/dist/compare-scenario.js +0 -325
  94. package/dist/compare-scenario.js.map +0 -1
  95. package/dist/failures.d.ts +0 -8
  96. package/dist/failures.d.ts.map +0 -1
  97. package/dist/failures.js +0 -7
  98. package/dist/failures.js.map +0 -1
  99. package/dist/scenario-story.d.ts +0 -41
  100. package/dist/scenario-story.d.ts.map +0 -1
  101. package/dist/scenario-story.js +0 -477
  102. package/dist/scenario-story.js.map +0 -1
  103. package/dist/scenario-usage.d.ts +0 -15
  104. package/dist/scenario-usage.d.ts.map +0 -1
  105. package/dist/scenario-usage.js +0 -18
  106. package/dist/scenario-usage.js.map +0 -1
  107. package/dist/sdk/viewer-results.d.ts +0 -43
  108. package/dist/sdk/viewer-results.d.ts.map +0 -1
  109. package/dist/sdk/viewer-results.js +0 -126
  110. package/dist/sdk/viewer-results.js.map +0 -1
  111. package/dist/types.d.ts +0 -328
  112. package/dist/types.d.ts.map +0 -1
  113. package/dist/types.js +0 -2
  114. package/dist/types.js.map +0 -1
  115. package/dist/viewer/catalog.d.ts +0 -66
  116. package/dist/viewer/catalog.d.ts.map +0 -1
  117. package/dist/viewer/catalog.js +0 -49
  118. package/dist/viewer/catalog.js.map +0 -1
  119. package/dist/viewer/client.d.ts +0 -7
  120. package/dist/viewer/client.d.ts.map +0 -1
  121. package/dist/viewer/client.js +0 -14
  122. package/dist/viewer/client.js.map +0 -1
  123. package/dist/viewer/events.d.ts +0 -118
  124. package/dist/viewer/events.d.ts.map +0 -1
  125. package/dist/viewer/events.js +0 -51
  126. package/dist/viewer/events.js.map +0 -1
  127. package/dist/viewer/run-controller.d.ts +0 -43
  128. package/dist/viewer/run-controller.d.ts.map +0 -1
  129. package/dist/viewer/run-controller.js +0 -475
  130. package/dist/viewer/run-controller.js.map +0 -1
  131. package/dist/worker-pool.d.ts +0 -12
  132. package/dist/worker-pool.d.ts.map +0 -1
  133. package/dist/worker-pool.js +0 -26
  134. package/dist/worker-pool.js.map +0 -1
@@ -1,444 +1,97 @@
1
- export function reportCss() {
1
+ export function viewerCss() {
2
2
  return `
3
- @layer reset, base, layout, components;
4
- :root {
5
- color-scheme: dark;
6
- --bg: oklch(0.18 0.02 250);
7
- --panel: oklch(0.23 0.025 250);
8
- --panel-2: oklch(0.2 0.022 250);
9
- --text: oklch(0.93 0.015 250);
10
- --muted: oklch(0.72 0.03 250);
11
- --border: oklch(0.32 0.03 250);
12
- --pass: oklch(0.8 0.16 155);
13
- --fail: oklch(0.72 0.16 20);
14
- --skip: oklch(0.84 0.14 85);
15
- --user-bubble: oklch(0.3 0.06 250);
16
- --assistant-bubble: oklch(0.26 0.04 155);
17
- --system-bubble: oklch(0.26 0.04 300);
18
- --tool: oklch(0.82 0.12 80);
19
- --tool-bubble: oklch(0.26 0.04 80);
20
- --arm-a: oklch(0.72 0.12 250);
21
- --arm-b: oklch(0.78 0.14 75);
22
- --arm-0: var(--arm-a);
23
- --arm-1: var(--arm-b);
24
- --arm-2: oklch(0.76 0.13 145);
25
- --arm-3: oklch(0.74 0.12 20);
26
- }
27
- @layer reset {
3
+ :root {
4
+ color-scheme: dark;
5
+ --bg: oklch(0.155 0.018 258);
6
+ --sidebar: oklch(0.19 0.022 258);
7
+ --panel: oklch(0.205 0.024 258);
8
+ --panel-2: oklch(0.23 0.026 258);
9
+ --panel-3: oklch(0.255 0.03 258);
10
+ --text: oklch(0.95 0.012 255);
11
+ --muted: oklch(0.72 0.03 255);
12
+ --subtle: oklch(0.61 0.03 255);
13
+ --border: oklch(0.315 0.035 258);
14
+ --border-strong: oklch(0.4 0.045 258);
15
+ --accent: oklch(0.72 0.12 175);
16
+ --accent-soft: oklch(0.72 0.12 175 / 0.12);
17
+ --pass: oklch(0.79 0.16 155);
18
+ --pass-soft: oklch(0.79 0.16 155 / 0.11);
19
+ --fail: oklch(0.73 0.18 25);
20
+ --fail-soft: oklch(0.73 0.18 25 / 0.11);
21
+ --skip: oklch(0.82 0.14 85);
22
+ --skip-soft: oklch(0.82 0.14 85 / 0.11);
23
+ --focus: oklch(0.78 0.16 235);
24
+ }
28
25
  * { box-sizing: border-box; }
29
- body { margin: 0; }
30
- h1, h2, h3, h4, p, ol { margin: 0; }
31
- dl, dd { margin: 0; }
32
- }
33
- @layer base {
26
+ html { background: var(--bg); }
34
27
  body {
35
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
28
+ margin: 0;
36
29
  background: var(--bg);
37
30
  color: var(--text);
31
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
32
+ font-size: 16px;
38
33
  line-height: 1.5;
39
- word-spacing: normal;
34
+ -webkit-font-smoothing: antialiased;
40
35
  }
41
- main { max-width: 68rem; margin-inline: auto; padding: 1.5rem 1.25rem 3rem; }
42
- main:has(.compare-layout) { max-width: 96rem; }
43
- h1 { font-size: 1.7rem; font-weight: 650; letter-spacing: -0.02em; }
44
- h2 { font-size: 1.05rem; font-weight: 650; }
45
- h3 { font-size: 0.8rem; color: var(--muted); font-weight: 650; }
46
- h4 { font-size: 0.75rem; margin-block: 0.9rem 0.35rem; color: var(--muted); font-weight: 650; }
47
- .muted { color: var(--muted); }
48
- .empty { color: var(--muted); font-size: 0.85rem; font-style: italic; }
49
- .empty.note { margin-bottom: 0.5rem; }
50
- }
51
- @layer layout {
52
- .report-header { display: grid; gap: 0.25rem; margin-bottom: 1rem; }
53
- .brand { color: var(--muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
54
- .lede, .when { color: var(--muted); font-size: 0.85rem; }
55
- .summary, .cost, .guide, .compare {
56
- background: var(--panel);
57
- border: 1px solid var(--border);
58
- border-radius: 12px;
59
- padding: 0.9rem 1rem;
36
+ h1, h2, h3, p { margin-block: 0; }
37
+ .message-markdown > :first-child { margin-block-start: 0; }
38
+ .message-markdown > :last-child { margin-block-end: 0; }
39
+ .message-markdown p {
40
+ margin-block: 0 0.55rem;
41
+ white-space: pre-wrap;
60
42
  }
61
- .summary { display: grid; gap: 0.65rem; }
62
- .stats { display: flex; flex-wrap: wrap; gap: 0.5rem; }
63
- .suite { margin-top: 1.75rem; display: grid; gap: 0.55rem; }
64
- .suite-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; }
65
- .suite-title { display: flex; align-items: center; gap: 0.5rem; }
66
- .cost { margin-top: 0.85rem; display: grid; gap: 0.65rem; }
67
- .cost-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 0.75rem; }
68
- .guide { margin-top: 0.85rem; }
69
- .diagnostics { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.7rem; margin-bottom: 0.9rem; }
70
- .meta-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 0.45rem 0.75rem; }
71
- }
72
- @layer components {
73
- .stat {
74
- display: inline-flex;
75
- align-items: baseline;
76
- gap: 0.35rem;
77
- padding: 0.4rem 0.65rem;
78
- border-radius: 8px;
79
- background: var(--panel-2);
80
- font-size: 0.85rem;
43
+ .message-markdown ul,
44
+ .message-markdown ol {
45
+ margin-block: 0.45rem;
46
+ padding-inline-start: 1.35rem;
81
47
  }
82
- .stat strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
83
- .stat-pass strong { color: var(--pass); }
84
- .stat-fail strong { color: var(--fail); }
85
- .stat-skip strong { color: var(--skip); }
86
- .guide h2 { font-size: 0.95rem; }
87
- .guide ol { margin: 0.65rem 0 0; padding-inline-start: 1.2rem; display: grid; gap: 0.35rem; color: var(--muted); font-size: 0.88rem; }
88
- .cost-lede { color: var(--muted); font-size: 0.85rem; }
89
- .cost-item { display: grid; gap: 0.15rem; }
90
- .cost-value { font-size: 1.2rem; font-weight: 650; font-variant-numeric: tabular-nums; }
91
- .cost-label { font-size: 0.8rem; font-weight: 650; }
92
- .cost-detail { color: var(--muted); font-size: 0.75rem; }
93
- .host {
94
- color: var(--muted);
95
- font-size: 0.72rem;
96
- background: var(--panel-2);
97
- border: 1px solid var(--border);
98
- border-radius: 999px;
99
- padding: 0.1rem 0.5rem;
48
+ .message-markdown li { padding-inline-start: 0.1rem; }
49
+ .message-markdown li + li { margin-top: 0.25rem; }
50
+ .message-markdown strong { font-weight: 750; }
51
+ .message-markdown em { color: var(--muted); }
52
+ .message-markdown code {
53
+ padding: 0.08rem 0.25rem;
54
+ border-radius: 4px;
55
+ background: var(--panel-3);
56
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
57
+ font-size: 0.92em;
100
58
  }
101
- .suite-counts { display: flex; flex-wrap: wrap; gap: 0.75rem; color: var(--muted); font-size: 0.85rem; }
102
- .tokens { color: var(--muted); font-size: 0.78rem; font-variant-numeric: tabular-nums; }
103
- .usage-summary, .scenario-meta {
104
- background: var(--panel-2);
59
+ .message-markdown pre {
60
+ max-width: 100%;
61
+ margin-block: 0.55rem;
62
+ padding: 0.65rem 0.75rem;
63
+ overflow-x: auto;
105
64
  border: 1px solid var(--border);
106
65
  border-radius: 8px;
107
- padding: 0.65rem 0.7rem;
66
+ background: var(--bg);
67
+ color: var(--text);
68
+ line-height: 1.55;
69
+ }
70
+ .message-markdown pre code {
71
+ display: block;
72
+ padding: 0;
73
+ border-radius: 0;
74
+ background: transparent;
75
+ font-size: 0.74rem;
76
+ }
77
+ .message-markdown a {
78
+ color: var(--accent);
79
+ text-underline-offset: 0.15em;
80
+ }
81
+ .message-markdown blockquote {
82
+ margin: 0.55rem 0;
83
+ padding-inline-start: 0.75rem;
84
+ border-inline-start: 2px solid var(--border-strong);
85
+ color: var(--muted);
86
+ }
87
+ button, select { font-family: inherit; }
88
+ button:focus-visible, select:focus-visible, summary:focus-visible, a:focus-visible {
89
+ outline: 2px solid var(--focus);
90
+ outline-offset: 3px;
108
91
  }
109
- .meta-item { display: grid; gap: 0.1rem; }
110
- .meta-key { color: var(--muted); font-size: 0.75rem; }
111
- .meta-val { font-size: 0.88rem; font-variant-numeric: tabular-nums; word-break: break-word; }
112
- .meta-row { margin-bottom: 0.7rem; }
113
- details.scenario {
114
- background: var(--panel);
115
- border: 1px solid var(--border);
116
- border-radius: 10px;
117
- margin: 0.45rem 0;
118
- overflow: hidden;
119
- }
120
- details.scenario summary {
121
- cursor: pointer;
122
- display: flex;
123
- flex-wrap: wrap;
124
- gap: 0.45rem 0.65rem;
125
- align-items: center;
126
- list-style: none;
127
- padding: 0.55rem 0.7rem;
128
- }
129
- details.scenario[open] summary { border-bottom: 1px solid var(--border); background: #17202d; }
130
- details.scenario summary::-webkit-details-marker { display: none; }
131
- .scenario-heading { display: grid; gap: 0.1rem; min-width: 12rem; flex: 1 1 16rem; }
132
- .scenario-name { font-weight: 600; font-size: 0.9rem; }
133
- .scenario-lede { color: var(--muted); font-size: 0.78rem; font-weight: 400; }
134
- .duration { color: var(--muted); margin-left: auto; font-variant-numeric: tabular-nums; }
135
- .badge {
136
- display: inline-block;
137
- font-size: 0.66rem;
138
- font-weight: 700;
139
- text-transform: uppercase;
140
- letter-spacing: 0.04em;
141
- padding: 0.1rem 0.4rem;
142
- border-radius: 999px;
143
- border: 1px solid transparent;
144
- }
145
- .status-passed { color: var(--pass); border-color: color-mix(in srgb, var(--pass) 40%, transparent); }
146
- .status-failed { color: var(--fail); border-color: color-mix(in srgb, var(--fail) 40%, transparent); }
147
- .status-skipped { color: var(--skip); border-color: color-mix(in srgb, var(--skip) 40%, transparent); }
148
- .scenario-body { padding: 0.7rem; }
149
- .diagnostics { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.7rem; margin-bottom: 0.9rem; }
150
- .diagnostics section { background: var(--panel-2); border: 1px solid var(--border); border-radius: 8px; padding: 0.65rem 0.7rem; min-width: 0; }
151
- .conversation { min-width: 0; }
152
-
153
- .story { margin-bottom: 0.85rem; }
154
- .story-criteria { display: grid; gap: 0.55rem; }
155
- .story-criteria > h3 { margin: 0; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }
156
- .story-section { display: grid; gap: 0.3rem; }
157
- .story-section + .story-section { padding-block-start: 0.55rem; border-block-start: 1px solid var(--border); }
158
- .story-section h4 { margin: 0; font-size: 0.84rem; color: var(--text); }
159
- .story-section-description { margin: 0 0 0.4rem; color: var(--muted); font-size: 0.82rem; }
160
- .story-list, .story-checks, .story-notes { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 0.25rem; color: var(--text); }
161
- .story-checks { list-style: none; padding-left: 0; }
162
- .story-check { display: flex; gap: 0.4rem; }
163
- .story-check-icon { width: 1rem; flex: none; font-weight: 700; }
164
- .story-check-pass .story-check-icon { color: var(--pass); }
165
- .story-check-fail .story-check-icon { color: var(--fail); }
166
- .story-notes { color: var(--muted); }
167
- .failures { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; }
168
- .failures li { border-left: 3px solid var(--fail); padding-left: 0.6rem; }
169
- .failure-label { margin: 0; font-weight: 600; font-size: 0.85rem; color: var(--fail); }
170
- .failure-hint { margin: 0.1rem 0 0; font-size: 0.78rem; color: var(--muted); }
171
- .failure-message { margin: 0.3rem 0 0; font-size: 0.82rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; word-break: break-word; background: #0b1017; border: 1px solid var(--border); border-radius: 6px; padding: 0.45rem 0.55rem; }
172
- .failure-evidence { margin: 0.35rem 0 0; font-size: 0.75rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; word-break: break-word; color: var(--muted); background: #0b1017; border: 1px dashed var(--border); border-radius: 6px; padding: 0.4rem 0.5rem; }
173
-
174
- .verdicts { display: flex; flex-direction: column; gap: 0.55rem; }
175
- .verdict { border-left: 3px solid var(--border); padding-left: 0.6rem; }
176
- .verdict-pass { border-left-color: var(--pass); }
177
- .verdict-fail { border-left-color: var(--fail); }
178
- .verdict-icon { display: inline-block; width: 1.1rem; font-weight: 700; }
179
- .verdict-pass .verdict-icon { color: var(--pass); }
180
- .verdict-fail .verdict-icon { color: var(--fail); }
181
- .question { margin: 0; font-size: 0.85rem; font-weight: 600; }
182
- .rationale { margin: 0.3rem 0 0; font-size: 0.82rem; color: var(--muted); }
183
- .judge-evidence { margin: 0.35rem 0 0; padding-inline-start: 1.1rem; color: var(--muted); font-size: 0.78rem; }
184
- .judge-exchange { margin-block-start: 0.5rem; border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
185
- .judge-exchange > summary { cursor: pointer; padding: 0.4rem 0.55rem; color: var(--muted); font-size: 0.75rem; font-weight: 650; }
186
- .judge-exchange[open] > summary { border-block-end: 1px solid var(--border); background: var(--panel); }
187
- .judge-chat { display: grid; gap: 0.55rem; padding: 0.55rem; }
188
- .judge-turn { display: grid; gap: 0.25rem; min-width: 0; }
189
- .judge-turn > span { color: var(--muted); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
190
- .judge-turn pre { max-height: 22rem; margin: 0; padding: 0.5rem; overflow: auto; border: 1px solid var(--border); border-radius: 6px; background: #0b1017; color: var(--text); font: 0.72rem/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
191
- .judge-response pre { border-inline-start: 3px solid var(--pass); }
192
-
193
- .chat {
194
- display: flex;
195
- flex-direction: column;
196
- gap: 0.75rem;
197
- max-width: 46rem;
198
- word-spacing: normal;
199
- letter-spacing: normal;
200
- }
201
- .chat-row { display: flex; }
202
- .chat-row.side-left { justify-content: flex-start; }
203
- .chat-row.side-right { justify-content: flex-end; }
204
- .chat-row.side-center { justify-content: center; }
205
- .bubble {
206
- max-width: min(40rem, 92%);
207
- border-radius: 10px;
208
- padding: 0.7rem 0.9rem;
209
- border: 1px solid var(--border);
210
- word-spacing: normal;
211
- }
212
- .bubble-label {
213
- font-size: 0.68rem;
214
- font-weight: 700;
215
- text-transform: uppercase;
216
- letter-spacing: 0.04em;
217
- color: var(--muted);
218
- margin-bottom: 0.35rem;
219
- }
220
- .bubble-text {
221
- white-space: pre-wrap;
222
- overflow-wrap: break-word;
223
- word-break: normal;
224
- font-size: 0.95rem;
225
- line-height: 1.5;
226
- }
227
- .bubble.role-user { background: var(--user-bubble); border-top-right-radius: 3px; }
228
- .bubble.role-assistant { background: var(--assistant-bubble); border-top-left-radius: 3px; }
229
- .bubble.role-context {
230
- background: color-mix(in srgb, var(--skip) 14%, var(--panel-2));
231
- max-width: min(44rem, 94%);
232
- }
233
- .bubble.role-system, .bubble.role-tool { background: var(--system-bubble); font-size: 0.88rem; max-width: min(42rem, 94%); }
234
-
235
- .tool-card {
236
- display: flex;
237
- flex-wrap: wrap;
238
- align-items: baseline;
239
- gap: 0.3rem 0.55rem;
240
- width: fit-content;
241
- max-width: min(40rem, 100%);
242
- border-radius: 7px;
243
- padding: 0.38rem 0.5rem;
244
- border: 1px solid color-mix(in srgb, var(--tool) 35%, var(--border));
245
- background: var(--tool-bubble);
246
- word-spacing: normal;
247
- }
248
- .tool-card-head {
249
- display: flex;
250
- align-items: center;
251
- gap: 0.4rem;
252
- font-size: 0.74rem;
253
- font-weight: 700;
254
- color: var(--tool);
255
- }
256
- .tool-icon { display: none; }
257
- .tool-name { font-weight: 700; }
258
- .tool-args {
259
- margin-top: 0;
260
- display: grid;
261
- gap: 0.22rem;
262
- padding-top: 0;
263
- border-top: 0;
264
- }
265
- .tool-arg {
266
- display: grid;
267
- grid-template-columns: max-content minmax(0, 1fr);
268
- gap: 0.3rem 0.45rem;
269
- align-items: start;
270
- font-size: 0.72rem;
271
- }
272
- .tool-arg-key { color: var(--muted); padding-top: 0.2rem; }
273
- .tool-arg code {
274
- display: block;
275
- color: var(--text);
276
- background: #0b1017;
277
- border-radius: 6px;
278
- padding: 0.18rem 0.35rem;
279
- overflow-wrap: anywhere;
280
- word-break: break-word;
281
- white-space: pre-wrap;
282
- line-height: 1.3;
283
- }
284
-
285
- .shell-commands { margin: 0; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 0.3rem; }
286
- .shell-commands li { font-size: 0.8rem; background: #0b1017; border: 1px solid var(--border); border-radius: 6px; padding: 0.3rem 0.5rem; }
287
- code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.85em; }
288
- .trace-details { margin-top: 0.75rem; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
289
- .trace-details summary { cursor: pointer; display: flex; justify-content: space-between; gap: 0.75rem; padding: 0.55rem 0.7rem; font-size: 0.82rem; font-weight: 650; }
290
- .trace-details summary span { color: var(--muted); font-weight: 400; font-variant-numeric: tabular-nums; }
291
- .trace-details[open] summary { border-bottom: 1px solid var(--border); background: var(--panel-2); }
292
- .trace-details > .chat, .trace-details > h4, .trace-details > .shell-commands, .trace-details > .empty { margin-inline: 0.7rem; }
293
- .trace-details > .chat { margin-block: 0.7rem; }
294
- .trace-details > .shell-commands { margin-bottom: 0.7rem; }
295
-
296
- .compare-layout {
297
- container-type: inline-size;
298
- display: grid;
299
- gap: 0.9rem;
300
- }
301
- .compare-tablist {
302
- display: flex;
303
- flex-wrap: wrap;
304
- gap: 0.35rem;
305
- }
306
- .compare-tab-input {
307
- position: absolute;
308
- width: 1px;
309
- height: 1px;
310
- padding: 0;
311
- margin: -1px;
312
- overflow: hidden;
313
- clip: rect(0, 0, 0, 0);
314
- white-space: nowrap;
315
- border: 0;
316
- }
317
- .compare-tab {
318
- font: inherit;
319
- border-radius: 8px;
320
- border: 1px solid var(--border);
321
- background: var(--panel-2);
322
- color: var(--text);
323
- padding: 0.35rem 0.65rem;
324
- cursor: pointer;
325
- }
326
- .compare-tab-input:checked + .compare-tab,
327
- .compare-tab[aria-selected="true"] {
328
- background: color-mix(in srgb, var(--pass) 16%, var(--panel-2));
329
- border-color: color-mix(in srgb, var(--pass) 40%, var(--border));
330
- }
331
- .compare-tabs .compare-arms,
332
- .compare-tabs .compare-arms[data-arm-count] {
333
- grid-template-columns: minmax(0, 1fr);
334
- }
335
- .compare-tabs .compare-arm { display: none; }
336
- .compare-arms {
337
- display: grid;
338
- grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
339
- gap: 0.85rem;
340
- align-items: stretch;
341
- }
342
- .compare-arms[data-arm-count="3"],
343
- .compare-arms[data-arm-count="4"] {
344
- grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
345
- }
346
- .compare-arm {
347
- min-width: 0;
348
- display: grid;
349
- align-content: start;
350
- gap: 0.65rem;
351
- background: var(--panel-2);
352
- border: 1px solid var(--border);
353
- border-radius: 10px;
354
- padding: 0.75rem 0.8rem 0.85rem;
355
- border-block-start-width: 3px;
356
- border-block-start-color: var(--arm-accent, var(--arm-a));
357
- }
358
- .compare-arm-a { border-block-start-color: var(--arm-a); }
359
- .compare-arm-b { border-block-start-color: var(--arm-b); }
360
- .compare-arm-header { display: grid; gap: 0.15rem; padding-bottom: 0.55rem; border-bottom: 1px solid var(--border); }
361
- .compare-arm-kicker {
362
- color: var(--muted);
363
- font-size: 0.66rem;
364
- font-weight: 700;
365
- letter-spacing: 0.06em;
366
- text-transform: uppercase;
367
- }
368
- .compare-arm .compare-arm-kicker { color: var(--arm-accent, var(--muted)); }
369
- .compare-arm-a .compare-arm-kicker { color: var(--arm-a); }
370
- .compare-arm-b .compare-arm-kicker { color: var(--arm-b); }
371
- .compare-arm-header h3 { color: var(--text); font-size: 0.95rem; }
372
- .compare-arm-description { color: var(--muted); font-size: 0.8rem; }
373
- .compare-arm-metrics { color: var(--muted); font-size: 0.78rem; font-variant-numeric: tabular-nums; }
374
- .compare-arm .bubble, .compare-arm .tool-card { max-width: 100%; }
375
-
376
- .compare {
377
- margin-top: 0;
378
- background: var(--panel);
379
- border: 1px solid var(--border);
380
- border-radius: 10px;
381
- padding: 0.85rem 0.9rem 1rem;
382
- }
383
- .compare-header { margin-bottom: 0.65rem; }
384
- .compare-header h3, .compare-header h4 { margin-bottom: 0.2rem; }
385
- .story-criteria > .comparison-metrics { margin-top: 0.85rem; padding: 0.8rem 0 0; background: transparent; border: 0; border-top: 1px solid var(--border); border-radius: 0; }
386
- .compare-winners { margin: 0 0 0.75rem; }
387
- .compare-winners h3 { margin-bottom: 0.35rem; }
388
- .compare-winners ul {
389
- margin: 0;
390
- padding-left: 1.1rem;
391
- display: grid;
392
- gap: 0.25rem;
393
- font-size: 0.85rem;
394
- }
395
- .compare-winner-pass { color: var(--pass); }
396
- .compare-winner-fail { color: var(--fail); }
397
- .compare-callouts {
398
- margin: 0.5rem 0 0;
399
- padding-left: 1.1rem;
400
- display: grid;
401
- gap: 0.25rem;
402
- font-size: 0.85rem;
403
- }
404
- .compare-details { margin-top: 0.65rem; color: var(--muted); font-size: 0.78rem; }
405
- .compare-table-wrap { overflow-x: auto; }
406
- .compare-table {
407
- width: 100%;
408
- border-collapse: collapse;
409
- font-size: 0.8rem;
410
- font-variant-numeric: tabular-nums;
411
- }
412
- .compare-table th, .compare-table td {
413
- border-bottom: 1px solid var(--border);
414
- padding: 0.4rem 0.45rem;
415
- text-align: left;
416
- vertical-align: middle;
417
- }
418
- .compare-table th { color: var(--muted); font-weight: 600; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.04em; }
419
- .delta-up { color: var(--fail); }
420
- .delta-down { color: var(--pass); }
421
- .delta-flat { color: var(--muted); }
422
- .compare-table td.is-better { color: var(--pass); font-weight: 650; background: color-mix(in srgb, var(--pass) 12%, transparent); }
423
- .compare-table td.is-worse { color: var(--fail); font-weight: 650; background: color-mix(in srgb, var(--fail) 12%, transparent); }
424
- .compare-table td.is-outcome-pass { color: var(--pass); font-weight: 650; }
425
- .compare-table td.is-outcome-fail { color: var(--fail); font-weight: 650; background: color-mix(in srgb, var(--fail) 12%, transparent); }
426
- .compare-table td.is-expected-failure { color: var(--muted); font-weight: 650; background: color-mix(in srgb, var(--muted) 9%, transparent); }
427
- .is-better { color: var(--pass); font-weight: 650; }
428
- .is-worse { color: var(--fail); font-weight: 650; }
429
-
430
- @container (max-width: 44rem) {
431
- .compare-arms { grid-template-columns: minmax(0, 1fr); }
432
- }
433
-
434
- @media (max-width: 720px) {
435
- main { padding: 0.75rem; }
436
- .suite-header { align-items: flex-start; flex-direction: column; gap: 0.2rem; }
437
- .diagnostics { grid-template-columns: 1fr; }
438
- .bubble, .tool-card { max-width: 92%; }
439
- .compare-arms { grid-template-columns: minmax(0, 1fr); }
440
- }
441
- }
442
- `;
92
+ button:disabled { cursor: not-allowed; opacity: 0.5; }
93
+ summary { list-style: none; }
94
+ summary::-webkit-details-marker { display: none; }
95
+ `;
443
96
  }
444
97
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/viewer/styles.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwbP,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/viewer/styles.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FL,CAAC;AACJ,CAAC"}