@shapeshift-labs/frontier-loom-ui 0.1.0 → 0.1.2

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.
@@ -559,10 +559,10 @@ tr.risk-review td:first-child { color: var(--review); }
559
559
  padding: 10px;
560
560
  }
561
561
  .agent-work-layout {
562
- gap: 0;
562
+ gap: 10px;
563
563
  padding: 8px;
564
- overflow: hidden;
565
- grid-template-rows: minmax(0, 1fr);
564
+ overflow: auto;
565
+ grid-template-rows: auto minmax(0, 1fr);
566
566
  }
567
567
  .goal-card {
568
568
  min-width: 0;
@@ -647,6 +647,12 @@ tr.risk-review td:first-child { color: var(--review); }
647
647
  .goal-status small {
648
648
  color: var(--muted);
649
649
  }
650
+ .goal-reliability {
651
+ display: block;
652
+ margin-top: 6px;
653
+ color: var(--muted);
654
+ text-align: right;
655
+ }
650
656
  .work-kpis,
651
657
  .performance-summary,
652
658
  .testing-summary,
@@ -1225,6 +1231,235 @@ tr.risk-review td:first-child { color: var(--review); }
1225
1231
  margin-top: 4px;
1226
1232
  color: var(--muted);
1227
1233
  }
1234
+ .swarm-capacity-panel {
1235
+ min-width: 0;
1236
+ display: grid;
1237
+ gap: 8px;
1238
+ border: 1px solid var(--line);
1239
+ border-radius: 7px;
1240
+ background: #0d0f10;
1241
+ padding: 10px;
1242
+ }
1243
+ .swarm-capacity-summary {
1244
+ min-width: 0;
1245
+ display: grid;
1246
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1247
+ gap: 8px;
1248
+ }
1249
+ .swarm-capacity-summary > div {
1250
+ min-width: 0;
1251
+ display: grid;
1252
+ gap: 2px;
1253
+ border: 1px solid var(--line);
1254
+ border-radius: 6px;
1255
+ background: #090a0b;
1256
+ padding: 8px;
1257
+ }
1258
+ .swarm-capacity-summary span,
1259
+ .swarm-capacity-summary small,
1260
+ .swarm-lane-main small,
1261
+ .swarm-lane-numbers span,
1262
+ .swarm-lane-agents span {
1263
+ min-width: 0;
1264
+ overflow: hidden;
1265
+ text-overflow: ellipsis;
1266
+ white-space: nowrap;
1267
+ color: var(--muted);
1268
+ }
1269
+ .swarm-capacity-summary span {
1270
+ font-size: 10px;
1271
+ font-weight: 700;
1272
+ text-transform: uppercase;
1273
+ }
1274
+ .swarm-capacity-summary b {
1275
+ min-width: 0;
1276
+ overflow: hidden;
1277
+ text-overflow: ellipsis;
1278
+ white-space: nowrap;
1279
+ color: var(--text);
1280
+ font-size: 18px;
1281
+ line-height: 1.1;
1282
+ }
1283
+ .swarm-capacity-summary small,
1284
+ .swarm-lane-main small,
1285
+ .swarm-lane-numbers span,
1286
+ .swarm-lane-agents span {
1287
+ font-size: 11px;
1288
+ }
1289
+ .swarm-lane-strip {
1290
+ min-width: 0;
1291
+ display: grid;
1292
+ gap: 6px;
1293
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1294
+ }
1295
+ .swarm-lane-row {
1296
+ min-width: 0;
1297
+ display: grid;
1298
+ grid-template-columns: minmax(150px, 1.2fr) minmax(126px, .8fr) minmax(126px, .9fr);
1299
+ gap: 8px;
1300
+ align-items: center;
1301
+ border: 1px solid var(--line);
1302
+ border-radius: 6px;
1303
+ background: #090a0b;
1304
+ padding: 7px 8px;
1305
+ }
1306
+ .swarm-lane-main,
1307
+ .swarm-lane-numbers,
1308
+ .swarm-lane-agents {
1309
+ min-width: 0;
1310
+ display: grid;
1311
+ gap: 2px;
1312
+ }
1313
+ .swarm-lane-main b {
1314
+ min-width: 0;
1315
+ overflow: hidden;
1316
+ text-overflow: ellipsis;
1317
+ white-space: nowrap;
1318
+ color: var(--text);
1319
+ font-size: 13px;
1320
+ }
1321
+ .swarm-lane-agents {
1322
+ display: flex;
1323
+ flex-wrap: wrap;
1324
+ justify-content: flex-end;
1325
+ gap: 4px;
1326
+ }
1327
+ .swarm-lane-agents code {
1328
+ max-width: 100%;
1329
+ overflow: hidden;
1330
+ text-overflow: ellipsis;
1331
+ white-space: nowrap;
1332
+ border: 1px solid var(--line);
1333
+ border-radius: 999px;
1334
+ background: #0d0f10;
1335
+ color: var(--muted);
1336
+ padding: 2px 6px;
1337
+ font-size: 10px;
1338
+ }
1339
+ .swarm-lane-empty,
1340
+ .swarm-lane-more {
1341
+ margin: 0;
1342
+ color: var(--muted);
1343
+ font-size: 12px;
1344
+ }
1345
+ .lane-work-layout {
1346
+ min-width: 0;
1347
+ min-height: 0;
1348
+ max-height: 100%;
1349
+ display: grid;
1350
+ grid-template-rows: auto minmax(0, 1fr);
1351
+ gap: 10px;
1352
+ padding: 8px;
1353
+ overflow: auto;
1354
+ scrollbar-gutter: stable;
1355
+ }
1356
+ .lane-roster-panel {
1357
+ --lane-roster-columns: minmax(180px, 1.1fr) minmax(210px, 1.2fr) minmax(116px, .55fr) minmax(260px, 1.4fr);
1358
+ min-width: 0;
1359
+ min-height: 0;
1360
+ max-height: 100%;
1361
+ display: grid;
1362
+ grid-template-rows: auto minmax(0, 1fr);
1363
+ border: 1px solid var(--line);
1364
+ border-radius: 7px;
1365
+ background: #0d0f10;
1366
+ overflow: hidden;
1367
+ }
1368
+ .lane-roster-head,
1369
+ .lane-roster-row {
1370
+ min-width: 0;
1371
+ display: grid;
1372
+ grid-template-columns: var(--lane-roster-columns);
1373
+ gap: 10px;
1374
+ align-items: center;
1375
+ }
1376
+ .lane-roster-head {
1377
+ border-bottom: 1px solid var(--line);
1378
+ background: #101214;
1379
+ padding: 7px 10px;
1380
+ }
1381
+ .lane-roster-head span {
1382
+ min-width: 0;
1383
+ overflow: hidden;
1384
+ text-overflow: ellipsis;
1385
+ white-space: nowrap;
1386
+ color: var(--muted);
1387
+ font-size: 10px;
1388
+ font-weight: 700;
1389
+ letter-spacing: 0;
1390
+ text-transform: uppercase;
1391
+ }
1392
+ .lane-roster-list {
1393
+ min-width: 0;
1394
+ min-height: 0;
1395
+ display: grid;
1396
+ align-content: start;
1397
+ overflow: auto;
1398
+ overscroll-behavior: contain;
1399
+ scrollbar-gutter: stable;
1400
+ }
1401
+ .lane-roster-row {
1402
+ border-bottom: 1px solid var(--line);
1403
+ background: #0d0f10;
1404
+ padding: 7px 10px;
1405
+ }
1406
+ .lane-roster-row:last-child {
1407
+ border-bottom: 0;
1408
+ }
1409
+ .lane-roster-row:hover {
1410
+ background: #111315;
1411
+ }
1412
+ .lane-cell {
1413
+ min-width: 0;
1414
+ display: grid;
1415
+ gap: 2px;
1416
+ }
1417
+ .lane-cell b,
1418
+ .lane-cell small,
1419
+ .lane-cell span {
1420
+ min-width: 0;
1421
+ overflow: hidden;
1422
+ text-overflow: ellipsis;
1423
+ white-space: nowrap;
1424
+ }
1425
+ .lane-cell b {
1426
+ color: var(--text);
1427
+ font-size: 13px;
1428
+ line-height: 1.2;
1429
+ }
1430
+ .lane-cell small,
1431
+ .lane-cell span {
1432
+ color: var(--muted);
1433
+ font-size: 11px;
1434
+ line-height: 1.2;
1435
+ }
1436
+ .lane-cell-agents {
1437
+ display: flex;
1438
+ flex-wrap: wrap;
1439
+ justify-content: flex-start;
1440
+ gap: 5px;
1441
+ }
1442
+ .lane-cell-agents code {
1443
+ max-width: 100%;
1444
+ overflow: hidden;
1445
+ text-overflow: ellipsis;
1446
+ white-space: nowrap;
1447
+ border: 1px solid var(--line);
1448
+ border-radius: 999px;
1449
+ background: #090a0b;
1450
+ color: var(--muted);
1451
+ padding: 2px 6px;
1452
+ font-size: 11px;
1453
+ line-height: 1.2;
1454
+ }
1455
+ .lane-roster-empty {
1456
+ margin: 0;
1457
+ min-height: 96px;
1458
+ display: grid;
1459
+ align-items: center;
1460
+ color: var(--muted);
1461
+ padding: 18px 14px;
1462
+ }
1228
1463
  .agent-roster-panel {
1229
1464
  --agent-roster-columns: minmax(128px, .72fr) minmax(300px, 2.1fr) minmax(96px, .54fr) minmax(88px, .5fr) minmax(96px, .54fr) minmax(168px, .92fr);
1230
1465
  min-width: 0;
@@ -3095,6 +3330,24 @@ tr.risk-review td:first-child { color: var(--review); }
3095
3330
  max-height: clamp(190px, 34vh, 300px);
3096
3331
  overflow: hidden;
3097
3332
  }
3333
+ .swarm-capacity-summary,
3334
+ .swarm-lane-strip {
3335
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3336
+ }
3337
+ .swarm-lane-row {
3338
+ grid-template-columns: minmax(0, 1fr) minmax(112px, auto);
3339
+ }
3340
+ .swarm-lane-agents {
3341
+ grid-column: 1 / -1;
3342
+ justify-content: flex-start;
3343
+ }
3344
+ .lane-roster-panel {
3345
+ --lane-roster-columns: minmax(160px, 1fr) minmax(180px, 1fr) minmax(98px, auto);
3346
+ }
3347
+ .lane-roster-head span:last-child,
3348
+ .lane-cell-agents {
3349
+ grid-column: 1 / -1;
3350
+ }
3098
3351
  .overview-card-scroll {
3099
3352
  min-height: 0;
3100
3353
  flex: 1 1 auto;
@@ -3118,13 +3371,15 @@ tr.risk-review td:first-child { color: var(--review); }
3118
3371
  .success-summary,
3119
3372
  .work-kpis,
3120
3373
  .work-cost-metrics,
3121
- .performance-summary,
3122
- .optimization-signal-grid,
3123
- .optimization-behavior-grid,
3124
- .efficiency-summary,
3125
- .epic-grid,
3126
- .merge-flow,
3127
- .chart-grid,
3374
+ .performance-summary,
3375
+ .optimization-signal-grid,
3376
+ .optimization-behavior-grid,
3377
+ .efficiency-summary,
3378
+ .swarm-capacity-summary,
3379
+ .swarm-lane-strip,
3380
+ .epic-grid,
3381
+ .merge-flow,
3382
+ .chart-grid,
3128
3383
  .stat-grid,
3129
3384
  .bottleneck-list,
3130
3385
  .contribution-summary,
@@ -3142,8 +3397,10 @@ tr.risk-review td:first-child { color: var(--review); }
3142
3397
  .testing-split,
3143
3398
  .history-branch,
3144
3399
  .history-event,
3145
- .testing-row,
3146
- .task-dialog-head,
3400
+ .testing-row,
3401
+ .lane-roster-row,
3402
+ .swarm-lane-row,
3403
+ .task-dialog-head,
3147
3404
  .task-dialog-section.split,
3148
3405
  .simple-row,
3149
3406
  .optimization-behavior-row,
@@ -3170,6 +3427,9 @@ tr.risk-review td:first-child { color: var(--review); }
3170
3427
  .agent-roster-head {
3171
3428
  display: none;
3172
3429
  }
3430
+ .lane-roster-head {
3431
+ display: none;
3432
+ }
3173
3433
  .agent-worker-card {
3174
3434
  grid-template-columns: 1fr;
3175
3435
  gap: 7px;
package/dist/server.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import http from 'node:http';
2
- import { type FrontierCodexDashboardSnapshotInput } from '@shapeshift-labs/frontier-swarm-codex';
3
- export interface FrontierLoomUiServerOptions extends FrontierCodexDashboardSnapshotInput {
2
+ export interface FrontierLoomUiServerOptions {
3
+ cwd?: string;
4
+ run?: string;
5
+ collection?: string;
6
+ continuation?: string;
4
7
  host?: string;
5
8
  port?: number;
6
9
  staticDir?: string;