agent-discover 1.3.4 → 1.3.6
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 +1 -0
- package/agent-desk-plugin.json +1 -1
- package/dist/ui/styles.css +127 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -59,6 +59,7 @@ Static MCP configs mean every server is always running, even when unused. Adding
|
|
|
59
59
|
- **Pre-download** -- fire-and-forget `npm cache add` (npx servers) or `uv tool install` (uvx servers) on registration, plus a dedicated `/preinstall` endpoint
|
|
60
60
|
- **Real-time dashboard** -- web UI at http://localhost:3424 with Servers and Browse tabs, dark/light theme, WebSocket updates
|
|
61
61
|
- **3 transport layers** -- MCP (stdio), REST API (HTTP), WebSocket (real-time events)
|
|
62
|
+
- **Declarative setup file** -- set `AGENT_DISCOVER_SETUP_FILE` to a JSON file listing servers to ensure-registered on startup. Idempotent (skips existing). Supports `auto_activate`, env var secret refs (`$VAR`), and tags. Automatically also reads a `.local.json` variant (e.g. `discover-setup.local.json`) for machine-specific servers with secrets. New `registry({ action: "sync" })` MCP action and `POST /api/sync` REST endpoint for on-demand re-read.
|
|
62
63
|
- **Bench harness** -- under `bench/`, comparing eager tool loading vs deferred discovery against real Claude Code and OpenCode hosts. Headline result at N=1000 against an adversarial natural-language verb pack: discover 100% accuracy + 27% lower per-turn token cost vs eager 80% accuracy. See [`bench/README.md`](bench/README.md).
|
|
63
64
|
|
|
64
65
|
---
|
package/agent-desk-plugin.json
CHANGED
package/dist/ui/styles.css
CHANGED
|
@@ -1478,3 +1478,130 @@ body {
|
|
|
1478
1478
|
border-color: var(--red);
|
|
1479
1479
|
color: var(--red);
|
|
1480
1480
|
}
|
|
1481
|
+
|
|
1482
|
+
/* --------------------------------------------------------------------------
|
|
1483
|
+
Mobile Responsive (768px)
|
|
1484
|
+
-------------------------------------------------------------------------- */
|
|
1485
|
+
|
|
1486
|
+
@media (max-width: 768px) {
|
|
1487
|
+
.layout {
|
|
1488
|
+
flex-direction: column;
|
|
1489
|
+
}
|
|
1490
|
+
.sidebar {
|
|
1491
|
+
position: fixed;
|
|
1492
|
+
bottom: 0;
|
|
1493
|
+
left: 0;
|
|
1494
|
+
right: 0;
|
|
1495
|
+
top: auto;
|
|
1496
|
+
width: 100%;
|
|
1497
|
+
height: auto;
|
|
1498
|
+
min-height: 0;
|
|
1499
|
+
flex-direction: row;
|
|
1500
|
+
align-items: center;
|
|
1501
|
+
padding: 0;
|
|
1502
|
+
z-index: 100;
|
|
1503
|
+
border-right: none;
|
|
1504
|
+
border-top: 1px solid var(--border);
|
|
1505
|
+
}
|
|
1506
|
+
.sidebar-header {
|
|
1507
|
+
display: none;
|
|
1508
|
+
}
|
|
1509
|
+
.sidebar-nav {
|
|
1510
|
+
display: flex;
|
|
1511
|
+
flex-direction: row;
|
|
1512
|
+
flex: 1;
|
|
1513
|
+
gap: 0;
|
|
1514
|
+
padding: 0;
|
|
1515
|
+
justify-content: space-around;
|
|
1516
|
+
}
|
|
1517
|
+
.nav-item {
|
|
1518
|
+
flex-direction: column;
|
|
1519
|
+
gap: 2px;
|
|
1520
|
+
padding: 8px 4px;
|
|
1521
|
+
font-size: 10px;
|
|
1522
|
+
border-radius: 0;
|
|
1523
|
+
flex: 1;
|
|
1524
|
+
justify-content: center;
|
|
1525
|
+
align-items: center;
|
|
1526
|
+
}
|
|
1527
|
+
.nav-item .material-symbols-outlined {
|
|
1528
|
+
font-size: 20px;
|
|
1529
|
+
}
|
|
1530
|
+
.nav-item .badge {
|
|
1531
|
+
display: none;
|
|
1532
|
+
}
|
|
1533
|
+
.sidebar-footer {
|
|
1534
|
+
display: none;
|
|
1535
|
+
}
|
|
1536
|
+
.content {
|
|
1537
|
+
margin-left: 0;
|
|
1538
|
+
padding: 16px 12px 72px;
|
|
1539
|
+
}
|
|
1540
|
+
.panel-header {
|
|
1541
|
+
flex-wrap: wrap;
|
|
1542
|
+
gap: 8px;
|
|
1543
|
+
}
|
|
1544
|
+
.section-title {
|
|
1545
|
+
font-size: 12px;
|
|
1546
|
+
}
|
|
1547
|
+
.server-grid {
|
|
1548
|
+
grid-template-columns: 1fr;
|
|
1549
|
+
}
|
|
1550
|
+
.form-row {
|
|
1551
|
+
flex-direction: column;
|
|
1552
|
+
gap: 8px;
|
|
1553
|
+
}
|
|
1554
|
+
.form-field {
|
|
1555
|
+
flex: 1 1 100% !important;
|
|
1556
|
+
}
|
|
1557
|
+
.add-server-form {
|
|
1558
|
+
padding: 12px;
|
|
1559
|
+
}
|
|
1560
|
+
.search-bar {
|
|
1561
|
+
max-width: 100%;
|
|
1562
|
+
}
|
|
1563
|
+
.search-bar input {
|
|
1564
|
+
max-width: 100%;
|
|
1565
|
+
}
|
|
1566
|
+
.log-filters {
|
|
1567
|
+
flex-wrap: wrap;
|
|
1568
|
+
gap: 6px;
|
|
1569
|
+
}
|
|
1570
|
+
.log-filters select {
|
|
1571
|
+
flex: 1 1 calc(50% - 3px);
|
|
1572
|
+
min-width: 0;
|
|
1573
|
+
}
|
|
1574
|
+
.log-time-picker {
|
|
1575
|
+
flex: 1 1 100%;
|
|
1576
|
+
}
|
|
1577
|
+
.log-time-dropdown {
|
|
1578
|
+
left: 0;
|
|
1579
|
+
right: 0;
|
|
1580
|
+
min-width: 0;
|
|
1581
|
+
}
|
|
1582
|
+
.log-time-custom-fields {
|
|
1583
|
+
flex-direction: column;
|
|
1584
|
+
gap: 6px;
|
|
1585
|
+
}
|
|
1586
|
+
.log-filter-search-wrap {
|
|
1587
|
+
max-width: 100%;
|
|
1588
|
+
}
|
|
1589
|
+
.log-filter-search-wrap input {
|
|
1590
|
+
max-width: 100%;
|
|
1591
|
+
}
|
|
1592
|
+
.server-card-header {
|
|
1593
|
+
flex-wrap: wrap;
|
|
1594
|
+
gap: 6px;
|
|
1595
|
+
}
|
|
1596
|
+
.server-card-actions {
|
|
1597
|
+
width: 100%;
|
|
1598
|
+
justify-content: flex-end;
|
|
1599
|
+
}
|
|
1600
|
+
.empty-state {
|
|
1601
|
+
padding: 32px 16px;
|
|
1602
|
+
}
|
|
1603
|
+
.btn-add-server {
|
|
1604
|
+
font-size: 12px;
|
|
1605
|
+
padding: 6px 10px;
|
|
1606
|
+
}
|
|
1607
|
+
}
|
package/package.json
CHANGED