@sleep2agi/agent-network-dashboard 0.4.6-preview.240 → 0.4.6-preview.241
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +4 -4
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.html +1 -1
- package/.next/server/app/admin.rsc +1 -1
- package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +2 -2
- package/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs.html +1 -1
- package/.next/server/app/logs.rsc +1 -1
- package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages.html +1 -1
- package/.next/server/app/messages.rsc +1 -1
- package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node.html +1 -1
- package/.next/server/app/node.rsc +1 -1
- package/.next/server/app/node.segments/_full.segment.rsc +1 -1
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +1 -1
- package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes.html +1 -1
- package/.next/server/app/nodes.rsc +1 -1
- package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +1 -1
- package/.next/server/app/server-logs.rsc +1 -1
- package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
- package/.next/server/app/settings/networks.html +1 -1
- package/.next/server/app/settings/networks.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +1 -1
- package/.next/server/app/settings/tokens.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +2 -2
- package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/tasks.html +1 -1
- package/.next/server/app/tasks.rsc +1 -1
- package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{0ywq17o6g3he5.js → 024piwrreh8f2.js} +1 -1
- package/.next/static/chunks/{098y3q8._x_f1.js → 0q_r1c.28sp9o.js} +1 -1
- package/.next/static/chunks/{0prsuuo6ys6he.js → 0~xtfu.pii43f.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +16 -1
- package/package.json +1 -1
- package/scripts/topo-vendor-chip-tabular-test.mjs +89 -0
- /package/.next/static/{xTpsoTIOr85gWd2QOaJxr → f3jrAQcha7Ds5s5805MtC}/_buildManifest.js +0 -0
- /package/.next/static/{xTpsoTIOr85gWd2QOaJxr → f3jrAQcha7Ds5s5805MtC}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{xTpsoTIOr85gWd2QOaJxr → f3jrAQcha7Ds5s5805MtC}/_ssgManifest.js +0 -0
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":11285314,"timestamp":87198558526,"id":14,"parentId":1,"tags":{},"startTime":1778895170805,"traceId":"663214f164c3f4d7"},{"name":"turbopack-build-events","duration":110,"timestamp":87198985660,"id":15,"parentId":1,"tags":{},"startTime":1778895171232,"traceId":"663214f164c3f4d7"},{"name":"run-typescript","duration":13651873,"timestamp":87209857016,"id":16,"parentId":1,"tags":{},"startTime":1778895182103,"traceId":"663214f164c3f4d7"},{"name":"static-check","duration":1631219,"timestamp":87223738454,"id":19,"parentId":1,"tags":{},"startTime":1778895195985,"traceId":"663214f164c3f4d7"},{"name":"static-generation","duration":1027382,"timestamp":87225388959,"id":105,"parentId":1,"tags":{},"startTime":1778895197635,"traceId":"663214f164c3f4d7"},{"name":"telemetry-flush","duration":10420,"timestamp":87226488404,"id":114,"parentId":1,"tags":{},"startTime":1778895198735,"traceId":"663214f164c3f4d7"},{"name":"next-build","duration":28236152,"timestamp":87198262719,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778895170509,"traceId":"663214f164c3f4d7"}]
|
|
@@ -2145,8 +2145,23 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2145
2145
|
role="button"
|
|
2146
2146
|
tabIndex={0}
|
|
2147
2147
|
aria-pressed={isPinned}
|
|
2148
|
-
|
|
2148
|
+
/* Round 234 / Loop: vendor letter chip picks up
|
|
2149
|
+
tabular-nums to lock the ':N' suffix's digit
|
|
2150
|
+
width. Each vendor chip renders 'A:3', 'C:2',
|
|
2151
|
+
etc. inline at gap-0.5 — when one vendor's
|
|
2152
|
+
count rolls 9→10 the chip widens by the digit
|
|
2153
|
+
glyph delta and pushes downstream chips right,
|
|
2154
|
+
making the row visibly jitter. 8th surface
|
|
2155
|
+
in the info-density tabular-nums sweep,
|
|
2156
|
+
completing the HTML chip-side coverage after
|
|
2157
|
+
R232 working/online/active-links chips. The
|
|
2158
|
+
digit lives in the inner <span> at line 2194,
|
|
2159
|
+
but font-variant-numeric inherits, so applying
|
|
2160
|
+
it at the outer chip span reaches every
|
|
2161
|
+
descendant glyph for free. */
|
|
2162
|
+
className="tabular-nums inline-flex items-baseline gap-0.5 px-1 rounded anet-topo-chip-focus"
|
|
2149
2163
|
data-vendor-letter={v.initial}
|
|
2164
|
+
data-vendor-letter-count={v.count}
|
|
2150
2165
|
data-vendor-pinned={isPinned ? 'true' : 'false'}
|
|
2151
2166
|
data-vendor-hovered={hoveredVendor === v.initial ? 'true' : 'false'}
|
|
2152
2167
|
data-vendor-aliases={aliases.join(',')}
|
package/package.json
CHANGED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/* Round 234 verification: vendor letter chip (the inline chips
|
|
2
|
+
* showing 'A:3', 'C:2', etc. listing per-vendor session counts)
|
|
3
|
+
* picks up the Tailwind `tabular-nums` utility so its ':N' suffix
|
|
4
|
+
* digit doesn't reflow the chip row at the 9→10 boundary.
|
|
5
|
+
*
|
|
6
|
+
* 8th surface in the info-density tabular-nums sweep, completing
|
|
7
|
+
* the HTML chip-side after R232's working/online/active-links.
|
|
8
|
+
*
|
|
9
|
+
* Scenario: 4 working agents split across two vendors — 3 on
|
|
10
|
+
* claude-opus-4 (initial 'A') and 1 on gpt-4 (initial 'O') — so
|
|
11
|
+
* vendorDist.length === 2, which is the condition gating the
|
|
12
|
+
* chip strip render (line ~2116, `vendorDist.length > 1 && ...`).
|
|
13
|
+
* Expect two chips: A:3 and O:1.
|
|
14
|
+
*/
|
|
15
|
+
import { chromium } from 'playwright';
|
|
16
|
+
import { readFileSync } from 'node:fs';
|
|
17
|
+
|
|
18
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
19
|
+
const browser = await chromium.launch({ headless: true });
|
|
20
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
21
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
22
|
+
await ctx.addInitScript(() => {
|
|
23
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
24
|
+
});
|
|
25
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
26
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
27
|
+
const r = await route.fetch();
|
|
28
|
+
const b = await r.json();
|
|
29
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
30
|
+
const mk = (alias, model) => ({
|
|
31
|
+
alias, status: 'working', model, runtime: 'claude-code-cli',
|
|
32
|
+
network_id: nid, project_dir: null,
|
|
33
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
34
|
+
});
|
|
35
|
+
// Mix 3 claude-opus-4 (vendor 'A') + 1 gpt-4 (vendor 'O') so
|
|
36
|
+
// vendorDist.length === 2 — chip strip render gate (line ~2116).
|
|
37
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
38
|
+
mk('alpha', 'claude-opus-4'),
|
|
39
|
+
mk('beta', 'claude-opus-4'),
|
|
40
|
+
mk('gamma', 'claude-opus-4'),
|
|
41
|
+
mk('delta', 'gpt-4'),
|
|
42
|
+
] } });
|
|
43
|
+
});
|
|
44
|
+
await ctx.route('**/api/hub/messages*', (r2) => r2.fulfill({ json: { messages: [] } }));
|
|
45
|
+
await ctx.route('**/api/hub/tasks*', (r2) => r2.fulfill({ json: { tasks: [] } }));
|
|
46
|
+
|
|
47
|
+
const page = await ctx.newPage();
|
|
48
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
49
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 4, { timeout: 30000 });
|
|
50
|
+
await page.waitForSelector('[data-vendor-letter]', { timeout: 10000, state: 'attached' });
|
|
51
|
+
await page.waitForTimeout(300);
|
|
52
|
+
|
|
53
|
+
const out = await page.evaluate(() => {
|
|
54
|
+
const chips = Array.from(document.querySelectorAll('[data-vendor-letter]'));
|
|
55
|
+
return chips.map((c) => ({
|
|
56
|
+
initial: c.getAttribute('data-vendor-letter'),
|
|
57
|
+
countAttr: c.getAttribute('data-vendor-letter-count'),
|
|
58
|
+
classListHas: c.className.split(/\s+/).includes('tabular-nums'),
|
|
59
|
+
fontVarNumeric: getComputedStyle(c).fontVariantNumeric,
|
|
60
|
+
text: (c.textContent || '').trim(),
|
|
61
|
+
// Inner ':N' suffix span — verify font-variant-numeric inherits
|
|
62
|
+
innerFvn: (() => {
|
|
63
|
+
const inner = c.querySelectorAll('span');
|
|
64
|
+
// last span is the gray ':N' suffix
|
|
65
|
+
const last = inner[inner.length - 1];
|
|
66
|
+
return last ? getComputedStyle(last).fontVariantNumeric : null;
|
|
67
|
+
})(),
|
|
68
|
+
}));
|
|
69
|
+
});
|
|
70
|
+
await browser.close();
|
|
71
|
+
|
|
72
|
+
const hasTab = (s) => /tabular-nums/.test(s || '');
|
|
73
|
+
|
|
74
|
+
// Build a map of initial → count from the chips we found.
|
|
75
|
+
const countByInitial = Object.fromEntries(out.map(o => [o.initial, o.countAttr]));
|
|
76
|
+
const results = {
|
|
77
|
+
two_chips: out.length === 2,
|
|
78
|
+
all_have_initial: out.every(o => typeof o.initial === 'string' && o.initial.length === 1),
|
|
79
|
+
anthropic_count_3: countByInitial['A'] === '3',
|
|
80
|
+
openai_count_1: countByInitial['O'] === '1',
|
|
81
|
+
all_class_utility: out.every(o => o.classListHas === true),
|
|
82
|
+
all_fvn_tabular: out.every(o => hasTab(o.fontVarNumeric)),
|
|
83
|
+
all_inner_fvn_inherits: out.every(o => hasTab(o.innerFvn)),
|
|
84
|
+
texts_match_counts: out.every(o => new RegExp(`:${o.countAttr}$`).test(o.text)),
|
|
85
|
+
};
|
|
86
|
+
const ok = Object.values(results).every(Boolean);
|
|
87
|
+
console.log(`${ok ? '✅' : '❌'} vendor chip tabular:`, JSON.stringify(results),
|
|
88
|
+
'\n chips:', out);
|
|
89
|
+
process.exit(ok ? 0 : 1);
|
|
File without changes
|
/package/.next/static/{xTpsoTIOr85gWd2QOaJxr → f3jrAQcha7Ds5s5805MtC}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|