agentweaver 0.1.17 → 0.1.19
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 +112 -23
- package/dist/artifacts.js +41 -0
- package/dist/index.js +258 -29
- package/dist/interactive/controller.js +323 -13
- package/dist/interactive/ink/index.js +2 -2
- package/dist/interactive/state.js +10 -0
- package/dist/interactive/web/index.js +326 -0
- package/dist/interactive/web/protocol.js +160 -0
- package/dist/interactive/web/server.js +1011 -0
- package/dist/interactive/web/static/app.js +1580 -0
- package/dist/interactive/web/static/index.html +114 -0
- package/dist/interactive/web/static/styles.css +2 -0
- package/dist/interactive/web/static/styles.input.css +849 -0
- package/dist/pipeline/flow-catalog.js +4 -0
- package/dist/pipeline/flow-specs/auto-common-guided.json +313 -0
- package/dist/pipeline/flow-specs/auto-common.json +3 -1
- package/dist/pipeline/flow-specs/design-review/design-review-loop.json +2 -0
- package/dist/pipeline/flow-specs/design-review.json +2 -0
- package/dist/pipeline/flow-specs/implement.json +3 -1
- package/dist/pipeline/flow-specs/plan.json +4 -0
- package/dist/pipeline/flow-specs/playbook-init.json +199 -0
- package/dist/pipeline/flow-specs/review/review-fix.json +3 -1
- package/dist/pipeline/flow-specs/review/review-loop.json +4 -0
- package/dist/pipeline/flow-specs/review/review.json +2 -0
- package/dist/pipeline/node-registry.js +45 -0
- package/dist/pipeline/nodes/flow-run-node.js +13 -1
- package/dist/pipeline/nodes/playbook-ensure-node.js +115 -0
- package/dist/pipeline/nodes/playbook-inventory-node.js +51 -0
- package/dist/pipeline/nodes/playbook-questions-form-node.js +166 -0
- package/dist/pipeline/nodes/playbook-write-node.js +243 -0
- package/dist/pipeline/nodes/project-guidance-node.js +69 -0
- package/dist/pipeline/prompt-registry.js +4 -1
- package/dist/pipeline/prompt-runtime.js +6 -2
- package/dist/pipeline/spec-types.js +19 -0
- package/dist/pipeline/value-resolver.js +39 -1
- package/dist/playbook/practice-candidates.js +12 -0
- package/dist/playbook/repo-inventory.js +208 -0
- package/dist/prompts.js +31 -0
- package/dist/runtime/artifact-catalog.js +379 -0
- package/dist/runtime/playbook.js +485 -0
- package/dist/runtime/project-guidance.js +339 -0
- package/dist/structured-artifact-schema-registry.js +8 -0
- package/dist/structured-artifact-schemas.json +235 -0
- package/dist/structured-artifacts.js +7 -1
- package/docs/declarative-workflows.md +565 -0
- package/docs/features.md +77 -0
- package/docs/playbook.md +327 -0
- package/package.json +8 -3
|
@@ -0,0 +1,849 @@
|
|
|
1
|
+
@import "tailwindcss" source(none);
|
|
2
|
+
|
|
3
|
+
@source "./index.html";
|
|
4
|
+
@source "./app.js";
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
color-scheme: dark;
|
|
8
|
+
--aw-bg: #070b0a;
|
|
9
|
+
--aw-bg-soft: #0b1210;
|
|
10
|
+
--aw-panel: #0f1714;
|
|
11
|
+
--aw-panel-muted: #111d19;
|
|
12
|
+
--aw-border: #22352e;
|
|
13
|
+
--aw-border-strong: #36564a;
|
|
14
|
+
--aw-text: #e8f3ed;
|
|
15
|
+
--aw-muted: #91a79b;
|
|
16
|
+
--aw-dim: #6f8379;
|
|
17
|
+
--aw-accent: #38e08f;
|
|
18
|
+
--aw-accent-strong: #7af7bd;
|
|
19
|
+
--aw-accent-soft: rgba(56, 224, 143, 0.13);
|
|
20
|
+
--aw-cyan: #65d8ff;
|
|
21
|
+
--aw-danger: #ff6b6b;
|
|
22
|
+
--aw-success: #38e08f;
|
|
23
|
+
--aw-warning: #f2c94c;
|
|
24
|
+
--aw-shadow: 0 28px 90px rgba(0, 0, 0, 0.45);
|
|
25
|
+
--aw-glow: 0 0 0 1px rgba(56, 224, 143, 0.08), 0 18px 60px rgba(56, 224, 143, 0.08);
|
|
26
|
+
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
* {
|
|
30
|
+
box-sizing: border-box;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
[hidden] {
|
|
34
|
+
display: none !important;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
html,
|
|
38
|
+
body {
|
|
39
|
+
height: 100%;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
body {
|
|
43
|
+
@apply m-0 overflow-hidden;
|
|
44
|
+
background:
|
|
45
|
+
linear-gradient(180deg, rgba(56, 224, 143, 0.08), transparent 24rem),
|
|
46
|
+
radial-gradient(circle at 88% 8%, rgba(101, 216, 255, 0.09), transparent 24rem),
|
|
47
|
+
var(--aw-bg);
|
|
48
|
+
color: var(--aw-text);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
button,
|
|
52
|
+
input,
|
|
53
|
+
select,
|
|
54
|
+
textarea {
|
|
55
|
+
font: inherit;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
button {
|
|
59
|
+
@apply inline-flex min-h-8 items-center justify-center gap-2 rounded-md px-3 py-1.5 text-sm font-semibold transition;
|
|
60
|
+
border: 1px solid var(--aw-border-strong);
|
|
61
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.015));
|
|
62
|
+
color: var(--aw-text);
|
|
63
|
+
cursor: pointer;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
button:hover,
|
|
67
|
+
button:focus-visible {
|
|
68
|
+
border-color: var(--aw-accent);
|
|
69
|
+
color: var(--aw-accent-strong);
|
|
70
|
+
outline: 2px solid transparent;
|
|
71
|
+
box-shadow: 0 0 0 3px rgba(56, 224, 143, 0.12);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
button.primary {
|
|
75
|
+
border-color: rgba(56, 224, 143, 0.75);
|
|
76
|
+
background: linear-gradient(180deg, rgba(56, 224, 143, 0.26), rgba(56, 224, 143, 0.13));
|
|
77
|
+
color: var(--aw-accent-strong);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
button.danger {
|
|
81
|
+
border-color: rgba(255, 107, 107, 0.68);
|
|
82
|
+
color: #ffb3b3;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
button:disabled {
|
|
86
|
+
cursor: not-allowed;
|
|
87
|
+
opacity: 0.48;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.app-shell {
|
|
91
|
+
@apply grid h-full;
|
|
92
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.topbar {
|
|
96
|
+
@apply grid items-center gap-4 px-4 py-3;
|
|
97
|
+
grid-template-columns: minmax(220px, 1fr) auto auto;
|
|
98
|
+
border-bottom: 1px solid var(--aw-border);
|
|
99
|
+
background: rgba(7, 11, 10, 0.88);
|
|
100
|
+
backdrop-filter: blur(16px);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.identity {
|
|
104
|
+
min-width: 0;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
h1,
|
|
108
|
+
h2,
|
|
109
|
+
p {
|
|
110
|
+
margin: 0;
|
|
111
|
+
letter-spacing: 0;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
h1 {
|
|
115
|
+
@apply text-xl font-semibold leading-tight;
|
|
116
|
+
color: var(--aw-text);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
h1::before {
|
|
120
|
+
content: "▰";
|
|
121
|
+
margin-right: 0.55rem;
|
|
122
|
+
color: var(--aw-accent);
|
|
123
|
+
font-size: 0.78em;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
h2 {
|
|
127
|
+
@apply text-xs font-bold uppercase tracking-normal;
|
|
128
|
+
color: var(--aw-muted);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.identity p,
|
|
132
|
+
.status-strip {
|
|
133
|
+
color: var(--aw-muted);
|
|
134
|
+
font-size: 13px;
|
|
135
|
+
line-height: 1.35;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.identity p {
|
|
139
|
+
@apply overflow-hidden text-ellipsis whitespace-nowrap;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.status-strip,
|
|
143
|
+
.topbar-actions,
|
|
144
|
+
.pane-heading,
|
|
145
|
+
.modal-actions {
|
|
146
|
+
@apply flex items-center gap-2;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.topbar-actions {
|
|
150
|
+
@apply justify-end;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.connection {
|
|
154
|
+
@apply inline-flex min-w-24 justify-center rounded-full px-2.5 py-1 text-xs font-bold;
|
|
155
|
+
border: 1px solid currentColor;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.connection-connecting {
|
|
159
|
+
color: var(--aw-warning);
|
|
160
|
+
background: rgba(242, 201, 76, 0.13);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.connection-connected {
|
|
164
|
+
color: var(--aw-success);
|
|
165
|
+
background: rgba(56, 224, 143, 0.14);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.connection-disconnected,
|
|
169
|
+
.connection-error,
|
|
170
|
+
.connection-closed {
|
|
171
|
+
color: var(--aw-danger);
|
|
172
|
+
background: rgba(255, 107, 107, 0.12);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.workspace {
|
|
176
|
+
@apply grid min-h-0 gap-3 p-3;
|
|
177
|
+
grid-template-columns: minmax(230px, 300px) minmax(380px, 1fr) minmax(300px, 440px);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.flows-pane,
|
|
181
|
+
.details-pane,
|
|
182
|
+
.log-pane,
|
|
183
|
+
.help-panel,
|
|
184
|
+
.work-panel {
|
|
185
|
+
@apply grid min-h-0 overflow-hidden rounded-lg;
|
|
186
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
187
|
+
border: 1px solid var(--aw-border);
|
|
188
|
+
background: linear-gradient(180deg, rgba(15, 23, 20, 0.96), rgba(10, 16, 14, 0.96));
|
|
189
|
+
box-shadow: var(--aw-glow);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.details-pane {
|
|
193
|
+
gap: 10px;
|
|
194
|
+
grid-template-rows: auto minmax(92px, 0.24fr) minmax(0, 1fr);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.split-panels {
|
|
198
|
+
@apply grid min-h-0 gap-3;
|
|
199
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.pane-heading {
|
|
203
|
+
@apply min-h-10 justify-between px-3 py-2;
|
|
204
|
+
border-bottom: 1px solid var(--aw-border);
|
|
205
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012));
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.flows-list {
|
|
209
|
+
@apply min-h-0 overflow-auto p-2;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.flow-row {
|
|
213
|
+
@apply grid w-full items-center gap-2 rounded-md border border-transparent bg-transparent px-2 py-1.5 text-left;
|
|
214
|
+
grid-template-columns: 20px minmax(0, 1fr);
|
|
215
|
+
min-height: 36px;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.flow-row:hover,
|
|
219
|
+
.flow-row:focus-visible {
|
|
220
|
+
background: rgba(56, 224, 143, 0.08);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.flow-row.selected {
|
|
224
|
+
border-color: rgba(56, 224, 143, 0.62);
|
|
225
|
+
background: var(--aw-accent-soft);
|
|
226
|
+
color: var(--aw-accent-strong);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.flow-row.folder {
|
|
230
|
+
font-weight: 700;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.flow-icon {
|
|
234
|
+
color: var(--aw-dim);
|
|
235
|
+
text-align: center;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.flow-label {
|
|
239
|
+
@apply overflow-hidden text-ellipsis whitespace-nowrap;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.flow-meta {
|
|
243
|
+
@apply overflow-hidden text-ellipsis whitespace-nowrap;
|
|
244
|
+
grid-column: 2;
|
|
245
|
+
color: var(--aw-dim);
|
|
246
|
+
font-size: 11px;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.text-panel {
|
|
250
|
+
@apply m-0 min-h-0 overflow-auto p-3;
|
|
251
|
+
overflow-wrap: anywhere;
|
|
252
|
+
white-space: pre-wrap;
|
|
253
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
|
|
254
|
+
font-size: 12px;
|
|
255
|
+
line-height: 1.5;
|
|
256
|
+
background: rgba(7, 11, 10, 0.42);
|
|
257
|
+
color: #d7eadf;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.text-panel.compact {
|
|
261
|
+
border-bottom: 1px solid var(--aw-border);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.log-output {
|
|
265
|
+
background:
|
|
266
|
+
linear-gradient(180deg, rgba(56, 224, 143, 0.035), transparent 8rem),
|
|
267
|
+
#050806;
|
|
268
|
+
color: #d8f7e7;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.help-panel {
|
|
272
|
+
position: absolute;
|
|
273
|
+
top: 72px;
|
|
274
|
+
right: 12px;
|
|
275
|
+
width: min(520px, calc(100vw - 24px));
|
|
276
|
+
max-height: calc(100vh - 88px);
|
|
277
|
+
z-index: 6;
|
|
278
|
+
box-shadow: var(--aw-shadow);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.artifact-drawer {
|
|
282
|
+
@apply fixed right-0 top-0 z-10 grid h-full;
|
|
283
|
+
width: min(1120px, calc(100vw - 32px));
|
|
284
|
+
grid-template-rows: auto auto minmax(0, 1fr);
|
|
285
|
+
border-left: 1px solid var(--aw-border-strong);
|
|
286
|
+
background: rgba(10, 16, 14, 0.98);
|
|
287
|
+
box-shadow: var(--aw-shadow);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.artifact-drawer-header {
|
|
291
|
+
@apply flex items-start justify-between gap-3 px-4 py-3;
|
|
292
|
+
border-bottom: 1px solid var(--aw-border);
|
|
293
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.012));
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.artifact-drawer-header p,
|
|
297
|
+
.artifact-message,
|
|
298
|
+
.artifact-empty,
|
|
299
|
+
.artifact-row-main span,
|
|
300
|
+
.artifact-selected p,
|
|
301
|
+
.artifact-action-status {
|
|
302
|
+
color: var(--aw-muted);
|
|
303
|
+
font-size: 13px;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.artifact-message {
|
|
307
|
+
padding: 10px 14px;
|
|
308
|
+
border-bottom: 1px solid var(--aw-border);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.artifact-drawer-body {
|
|
312
|
+
@apply grid min-h-0 gap-0;
|
|
313
|
+
grid-template-columns: minmax(300px, 0.42fr) minmax(420px, 1fr);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.artifact-list-pane,
|
|
317
|
+
.artifact-preview {
|
|
318
|
+
@apply grid min-h-0;
|
|
319
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.artifact-list-pane {
|
|
323
|
+
border-right: 1px solid var(--aw-border);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.artifact-list {
|
|
327
|
+
@apply min-h-0 overflow-auto px-3 py-2;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.artifact-group {
|
|
331
|
+
@apply grid gap-2 py-2;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
.artifact-group h3 {
|
|
335
|
+
@apply m-0 text-xs font-bold uppercase tracking-normal;
|
|
336
|
+
color: var(--aw-dim);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.artifact-row {
|
|
340
|
+
@apply grid items-center gap-2 rounded-md p-2;
|
|
341
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
342
|
+
border: 1px solid var(--aw-border);
|
|
343
|
+
background: rgba(7, 11, 10, 0.42);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
.artifact-row.selected {
|
|
347
|
+
border-color: rgba(56, 224, 143, 0.62);
|
|
348
|
+
background: var(--aw-accent-soft);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.artifact-row-main {
|
|
352
|
+
@apply grid min-h-0 justify-stretch gap-1 border-0 bg-transparent p-0 text-left;
|
|
353
|
+
box-shadow: none;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
.artifact-row-main:hover,
|
|
357
|
+
.artifact-row-main:focus-visible {
|
|
358
|
+
box-shadow: none;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.artifact-row-main strong {
|
|
362
|
+
@apply overflow-hidden text-ellipsis whitespace-nowrap;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.artifact-row-meta {
|
|
366
|
+
@apply grid min-w-0 gap-1;
|
|
367
|
+
grid-template-columns: auto auto minmax(0, 1fr);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
.artifact-row-meta span {
|
|
371
|
+
@apply min-w-0 overflow-hidden text-ellipsis whitespace-nowrap;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
.artifact-row-meta span:not(:last-child)::after {
|
|
375
|
+
content: "|";
|
|
376
|
+
margin-left: 0.25rem;
|
|
377
|
+
color: var(--aw-dim);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.artifact-row-actions {
|
|
381
|
+
@apply flex items-center gap-2;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
.artifact-row-actions a,
|
|
385
|
+
.artifact-action-link {
|
|
386
|
+
color: var(--aw-cyan);
|
|
387
|
+
font-size: 12px;
|
|
388
|
+
font-weight: 700;
|
|
389
|
+
text-decoration: none;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
.artifact-row-actions a:hover,
|
|
393
|
+
.artifact-row-actions a:focus-visible,
|
|
394
|
+
.artifact-action-link:hover,
|
|
395
|
+
.artifact-action-link:focus-visible {
|
|
396
|
+
color: var(--aw-accent-strong);
|
|
397
|
+
text-decoration: underline;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
.artifact-preview {
|
|
401
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
.artifact-preview-header {
|
|
405
|
+
@apply grid gap-2 px-3 py-2;
|
|
406
|
+
border-bottom: 1px solid var(--aw-border);
|
|
407
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012));
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
.artifact-selected {
|
|
411
|
+
@apply grid min-w-0 gap-1;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
.artifact-selected h2,
|
|
415
|
+
.artifact-selected p {
|
|
416
|
+
@apply overflow-hidden text-ellipsis whitespace-nowrap;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.artifact-toolbar {
|
|
420
|
+
@apply flex flex-wrap items-center gap-2;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
.artifact-action-link {
|
|
424
|
+
@apply inline-flex min-h-8 items-center justify-center rounded-md px-3 py-1.5;
|
|
425
|
+
border: 1px solid var(--aw-border-strong);
|
|
426
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.015));
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.artifact-action-link.disabled {
|
|
430
|
+
color: var(--aw-dim);
|
|
431
|
+
cursor: not-allowed;
|
|
432
|
+
opacity: 0.48;
|
|
433
|
+
pointer-events: none;
|
|
434
|
+
text-decoration: none;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.artifact-action-status {
|
|
438
|
+
min-height: 18px;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
.artifact-preview-content {
|
|
442
|
+
@apply grid min-h-0 gap-3 overflow-auto;
|
|
443
|
+
align-content: start;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
.artifact-rendered-markdown {
|
|
447
|
+
@apply grid gap-3;
|
|
448
|
+
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
449
|
+
font-size: 14px;
|
|
450
|
+
line-height: 1.6;
|
|
451
|
+
color: var(--aw-text);
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
.artifact-rendered-markdown h1,
|
|
455
|
+
.artifact-rendered-markdown h2,
|
|
456
|
+
.artifact-rendered-markdown h3,
|
|
457
|
+
.artifact-rendered-markdown h4,
|
|
458
|
+
.artifact-rendered-markdown h5,
|
|
459
|
+
.artifact-rendered-markdown h6 {
|
|
460
|
+
margin: 0;
|
|
461
|
+
color: var(--aw-text);
|
|
462
|
+
font-weight: 750;
|
|
463
|
+
text-transform: none;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
.artifact-rendered-markdown h1 {
|
|
467
|
+
font-size: 22px;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
.artifact-rendered-markdown h1::before {
|
|
471
|
+
content: none;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
.artifact-rendered-markdown h2 {
|
|
475
|
+
font-size: 18px;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
.artifact-rendered-markdown h3 {
|
|
479
|
+
font-size: 15px;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
.artifact-rendered-markdown p,
|
|
483
|
+
.artifact-rendered-markdown ul,
|
|
484
|
+
.artifact-rendered-markdown ol {
|
|
485
|
+
margin: 0;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
.artifact-rendered-markdown ul,
|
|
489
|
+
.artifact-rendered-markdown ol {
|
|
490
|
+
padding-left: 1.35rem;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
.artifact-rendered-markdown a,
|
|
494
|
+
.artifact-placeholder-actions a {
|
|
495
|
+
color: var(--aw-cyan);
|
|
496
|
+
font-weight: 700;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
.artifact-rendered-markdown code,
|
|
500
|
+
.artifact-rendered-markdown pre,
|
|
501
|
+
.artifact-text-preview {
|
|
502
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
.artifact-rendered-markdown code {
|
|
506
|
+
border: 1px solid var(--aw-border);
|
|
507
|
+
border-radius: 4px;
|
|
508
|
+
background: rgba(101, 216, 255, 0.08);
|
|
509
|
+
padding: 0.08rem 0.28rem;
|
|
510
|
+
color: #d8f7e7;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
.artifact-rendered-markdown pre,
|
|
514
|
+
.artifact-text-preview {
|
|
515
|
+
@apply m-0 overflow-auto rounded-md p-3;
|
|
516
|
+
border: 1px solid var(--aw-border);
|
|
517
|
+
background: rgba(3, 7, 6, 0.62);
|
|
518
|
+
color: #d7eadf;
|
|
519
|
+
font-size: 12px;
|
|
520
|
+
line-height: 1.5;
|
|
521
|
+
overflow-wrap: anywhere;
|
|
522
|
+
white-space: pre-wrap;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
.artifact-rendered-markdown pre code {
|
|
526
|
+
border: 0;
|
|
527
|
+
background: transparent;
|
|
528
|
+
padding: 0;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
.artifact-rendered-markdown table {
|
|
532
|
+
width: 100%;
|
|
533
|
+
border-collapse: collapse;
|
|
534
|
+
font-size: 13px;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
.artifact-rendered-markdown th,
|
|
538
|
+
.artifact-rendered-markdown td {
|
|
539
|
+
border: 1px solid var(--aw-border);
|
|
540
|
+
padding: 6px 8px;
|
|
541
|
+
text-align: left;
|
|
542
|
+
vertical-align: top;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
.artifact-rendered-markdown th {
|
|
546
|
+
background: rgba(255, 255, 255, 0.05);
|
|
547
|
+
color: var(--aw-accent-strong);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
.artifact-json-viewer {
|
|
551
|
+
@apply grid gap-3;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
.artifact-preview-modes {
|
|
555
|
+
@apply flex flex-wrap items-center gap-2;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
.artifact-preview-warning,
|
|
559
|
+
.artifact-truncation {
|
|
560
|
+
@apply rounded-md px-3 py-2;
|
|
561
|
+
border: 1px solid rgba(242, 201, 76, 0.42);
|
|
562
|
+
background: rgba(242, 201, 76, 0.11);
|
|
563
|
+
color: #ffe49a;
|
|
564
|
+
font-size: 13px;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
.artifact-kind-label {
|
|
568
|
+
@apply inline-flex w-fit rounded-full px-2.5 py-1 text-xs font-bold uppercase tracking-normal;
|
|
569
|
+
border: 1px solid var(--aw-border-strong);
|
|
570
|
+
color: var(--aw-cyan);
|
|
571
|
+
background: rgba(101, 216, 255, 0.09);
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
.artifact-placeholder {
|
|
575
|
+
@apply grid gap-3 rounded-md p-3;
|
|
576
|
+
border: 1px dashed var(--aw-border-strong);
|
|
577
|
+
background: rgba(7, 11, 10, 0.38);
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
.artifact-placeholder dl {
|
|
581
|
+
@apply grid gap-2;
|
|
582
|
+
grid-template-columns: minmax(80px, auto) minmax(0, 1fr);
|
|
583
|
+
margin: 0;
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
.artifact-placeholder dt {
|
|
587
|
+
color: var(--aw-muted);
|
|
588
|
+
font-weight: 700;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
.artifact-placeholder dd {
|
|
592
|
+
margin: 0;
|
|
593
|
+
overflow-wrap: anywhere;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
.artifact-placeholder-actions {
|
|
597
|
+
@apply flex flex-wrap gap-3;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
.artifact-empty {
|
|
601
|
+
@apply rounded-md p-3;
|
|
602
|
+
border: 1px dashed var(--aw-border);
|
|
603
|
+
background: rgba(7, 11, 10, 0.32);
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
.modal-root:empty {
|
|
607
|
+
display: none;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
.modal-root {
|
|
611
|
+
@apply fixed inset-0 z-20 grid place-items-center p-5;
|
|
612
|
+
background: rgba(2, 5, 4, 0.72);
|
|
613
|
+
backdrop-filter: blur(8px);
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
.modal {
|
|
617
|
+
@apply grid w-full rounded-lg;
|
|
618
|
+
width: min(720px, 100%);
|
|
619
|
+
max-height: min(760px, calc(100vh - 40px));
|
|
620
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
621
|
+
border: 1px solid var(--aw-border-strong);
|
|
622
|
+
background: var(--aw-panel);
|
|
623
|
+
box-shadow: var(--aw-shadow);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
.modal.form-flow-routing-editor {
|
|
627
|
+
width: min(940px, 100%);
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
.modal-header,
|
|
631
|
+
.modal-body,
|
|
632
|
+
.modal-footer {
|
|
633
|
+
padding: 12px 14px;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
.modal-header {
|
|
637
|
+
border-bottom: 1px solid var(--aw-border);
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
.modal-header p,
|
|
641
|
+
.field-help,
|
|
642
|
+
.field-option small,
|
|
643
|
+
.modal-note {
|
|
644
|
+
color: var(--aw-muted);
|
|
645
|
+
font-size: 13px;
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
.modal-body {
|
|
649
|
+
@apply grid min-h-0 gap-3 overflow-auto;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
.modal-footer {
|
|
653
|
+
@apply flex items-center justify-between gap-3;
|
|
654
|
+
border-top: 1px solid var(--aw-border);
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
.modal-actions {
|
|
658
|
+
@apply flex-wrap justify-end;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
.form-fields {
|
|
662
|
+
@apply grid gap-3;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
.form-fields.route-fields {
|
|
666
|
+
gap: 0;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
.field-pair {
|
|
670
|
+
@apply grid items-start gap-4 py-3;
|
|
671
|
+
grid-template-columns: minmax(220px, 0.9fr) minmax(280px, 1.1fr);
|
|
672
|
+
border-bottom: 1px solid var(--aw-border);
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
.field-pair:first-child {
|
|
676
|
+
padding-top: 0;
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
.field-pair:last-child {
|
|
680
|
+
border-bottom: 0;
|
|
681
|
+
padding-bottom: 0;
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
.field {
|
|
685
|
+
@apply grid gap-1.5;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
.field label,
|
|
689
|
+
.field-title {
|
|
690
|
+
font-weight: 700;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.field input[type="text"],
|
|
694
|
+
.field textarea,
|
|
695
|
+
.field select {
|
|
696
|
+
@apply min-h-9 w-full rounded-md px-2.5 py-2;
|
|
697
|
+
border: 1px solid var(--aw-border-strong);
|
|
698
|
+
background: #070b0a;
|
|
699
|
+
color: var(--aw-text);
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
.field input[type="text"]:focus,
|
|
703
|
+
.field textarea:focus,
|
|
704
|
+
.field select:focus {
|
|
705
|
+
border-color: var(--aw-accent);
|
|
706
|
+
outline: 2px solid transparent;
|
|
707
|
+
box-shadow: 0 0 0 3px rgba(56, 224, 143, 0.12);
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
.field textarea {
|
|
711
|
+
resize: vertical;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
.check-row,
|
|
715
|
+
.field-option {
|
|
716
|
+
@apply flex items-start gap-2;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
.option-list {
|
|
720
|
+
@apply grid gap-1.5;
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
.error-text {
|
|
724
|
+
color: var(--aw-danger);
|
|
725
|
+
font-weight: 700;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
::selection {
|
|
729
|
+
background: rgba(56, 224, 143, 0.32);
|
|
730
|
+
color: var(--aw-text);
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
::-webkit-scrollbar {
|
|
734
|
+
width: 10px;
|
|
735
|
+
height: 10px;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
::-webkit-scrollbar-thumb {
|
|
739
|
+
background: #284137;
|
|
740
|
+
border: 2px solid #08100d;
|
|
741
|
+
border-radius: 999px;
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
::-webkit-scrollbar-track {
|
|
745
|
+
background: #08100d;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
@media (max-width: 1080px) {
|
|
749
|
+
body {
|
|
750
|
+
overflow: auto;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
.app-shell {
|
|
754
|
+
min-height: 100%;
|
|
755
|
+
height: auto;
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
.workspace {
|
|
759
|
+
grid-template-columns: minmax(220px, 0.35fr) minmax(0, 1fr);
|
|
760
|
+
grid-template-rows: minmax(260px, 42vh) minmax(320px, 1fr);
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
.log-pane {
|
|
764
|
+
grid-column: 1 / -1;
|
|
765
|
+
min-height: 320px;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
.artifact-drawer {
|
|
769
|
+
width: min(960px, calc(100vw - 18px));
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
.artifact-drawer-body {
|
|
773
|
+
grid-template-columns: minmax(280px, 0.45fr) minmax(360px, 1fr);
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
@media (max-width: 760px) {
|
|
778
|
+
.topbar {
|
|
779
|
+
grid-template-columns: 1fr;
|
|
780
|
+
gap: 10px;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
.status-strip,
|
|
784
|
+
.topbar-actions {
|
|
785
|
+
justify-content: flex-start;
|
|
786
|
+
flex-wrap: wrap;
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
.workspace,
|
|
790
|
+
.split-panels {
|
|
791
|
+
grid-template-columns: 1fr;
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
.workspace {
|
|
795
|
+
grid-template-rows: 260px 520px 340px;
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
.artifact-drawer {
|
|
799
|
+
top: auto;
|
|
800
|
+
bottom: 0;
|
|
801
|
+
height: min(92vh, 760px);
|
|
802
|
+
width: 100vw;
|
|
803
|
+
grid-template-rows: auto auto minmax(0, 1fr);
|
|
804
|
+
border-left: 0;
|
|
805
|
+
border-top: 1px solid var(--aw-border-strong);
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
.artifact-drawer-header {
|
|
809
|
+
align-items: flex-start;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
.artifact-drawer-body {
|
|
813
|
+
grid-template-columns: 1fr;
|
|
814
|
+
grid-template-rows: minmax(190px, 0.42fr) minmax(260px, 1fr);
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
.artifact-list-pane {
|
|
818
|
+
border-right: 0;
|
|
819
|
+
border-bottom: 1px solid var(--aw-border);
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
.artifact-row {
|
|
823
|
+
grid-template-columns: 1fr;
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
.artifact-row-actions {
|
|
827
|
+
justify-content: flex-start;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
.artifact-row-meta {
|
|
831
|
+
grid-template-columns: minmax(0, 1fr);
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
.artifact-row-meta span:not(:last-child)::after {
|
|
835
|
+
content: "";
|
|
836
|
+
margin-left: 0;
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
.artifact-selected h2,
|
|
840
|
+
.artifact-selected p {
|
|
841
|
+
white-space: normal;
|
|
842
|
+
overflow-wrap: anywhere;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
.field-pair {
|
|
846
|
+
grid-template-columns: 1fr;
|
|
847
|
+
gap: 12px;
|
|
848
|
+
}
|
|
849
|
+
}
|