@shapeshift-labs/frontier-loom-ui 0.1.1 → 0.1.3

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;
@@ -1231,6 +1231,235 @@ tr.risk-review td:first-child { color: var(--review); }
1231
1231
  margin-top: 4px;
1232
1232
  color: var(--muted);
1233
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
+ }
1234
1463
  .agent-roster-panel {
1235
1464
  --agent-roster-columns: minmax(128px, .72fr) minmax(300px, 2.1fr) minmax(96px, .54fr) minmax(88px, .5fr) minmax(96px, .54fr) minmax(168px, .92fr);
1236
1465
  min-width: 0;
@@ -3101,6 +3330,24 @@ tr.risk-review td:first-child { color: var(--review); }
3101
3330
  max-height: clamp(190px, 34vh, 300px);
3102
3331
  overflow: hidden;
3103
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
+ }
3104
3351
  .overview-card-scroll {
3105
3352
  min-height: 0;
3106
3353
  flex: 1 1 auto;
@@ -3124,13 +3371,15 @@ tr.risk-review td:first-child { color: var(--review); }
3124
3371
  .success-summary,
3125
3372
  .work-kpis,
3126
3373
  .work-cost-metrics,
3127
- .performance-summary,
3128
- .optimization-signal-grid,
3129
- .optimization-behavior-grid,
3130
- .efficiency-summary,
3131
- .epic-grid,
3132
- .merge-flow,
3133
- .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,
3134
3383
  .stat-grid,
3135
3384
  .bottleneck-list,
3136
3385
  .contribution-summary,
@@ -3148,8 +3397,10 @@ tr.risk-review td:first-child { color: var(--review); }
3148
3397
  .testing-split,
3149
3398
  .history-branch,
3150
3399
  .history-event,
3151
- .testing-row,
3152
- .task-dialog-head,
3400
+ .testing-row,
3401
+ .lane-roster-row,
3402
+ .swarm-lane-row,
3403
+ .task-dialog-head,
3153
3404
  .task-dialog-section.split,
3154
3405
  .simple-row,
3155
3406
  .optimization-behavior-row,
@@ -3176,6 +3427,9 @@ tr.risk-review td:first-child { color: var(--review); }
3176
3427
  .agent-roster-head {
3177
3428
  display: none;
3178
3429
  }
3430
+ .lane-roster-head {
3431
+ display: none;
3432
+ }
3179
3433
  .agent-worker-card {
3180
3434
  grid-template-columns: 1fr;
3181
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;