@sleep2agi/agent-network-dashboard 0.5.3-preview.73 → 0.5.3-preview.75
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 +5 -5
- package/.next/fallback-build-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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- 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 +2 -2
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin.html +2 -2
- package/.next/server/app/admin.rsc +2 -2
- package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
- 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 +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- 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 +3 -3
- package/.next/server/app/login.segments/_full.segment.rsc +3 -3
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/logs.html +2 -2
- package/.next/server/app/logs.rsc +2 -2
- package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/messages.html +2 -2
- package/.next/server/app/messages.rsc +2 -2
- package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
- package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/node.html +2 -2
- package/.next/server/app/node.rsc +2 -2
- package/.next/server/app/node.segments/_full.segment.rsc +2 -2
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +2 -2
- package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes.html +2 -2
- package/.next/server/app/nodes.rsc +2 -2
- package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +2 -2
- package/.next/server/app/server-logs.rsc +2 -2
- package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +2 -2
- package/.next/server/app/settings/networks.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +2 -2
- package/.next/server/app/settings/tokens.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
- 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 +3 -3
- package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- 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/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks.html +2 -2
- package/.next/server/app/tasks.rsc +2 -2
- package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
- 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/[root-of-the-server]__0sv~g.o._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +2 -2
- 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 +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{0wso-0yjvy31v.js → 0cb0745~1z~js.js} +1 -1
- package/.next/static/chunks/{0q.024-h32581.css → 0dl7n87ozjehm.css} +1 -1
- package/.next/static/chunks/{0-30mxnx4455~.js → 0mpe8sb12.ao9.js} +1 -1
- package/.next/static/chunks/{14_q5a9jibgap.js → 0ou2iksckjl0w.js} +2 -2
- package/.next/static/chunks/{0flg8-pet5c3g.js → 0x04jr~0yu-4q.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +63 -11
- package/package.json +1 -1
- package/scripts/topo-chip-row-unit-hover-tracking-test.mjs +124 -0
- package/scripts/topo-group-label-member-alias-hover-test.mjs +125 -0
- /package/.next/static/{7cnMi8-gNmotWT14Dep6q → 5Uw27VWJXgLXr1mUDan9t}/_buildManifest.js +0 -0
- /package/.next/static/{7cnMi8-gNmotWT14Dep6q → 5Uw27VWJXgLXr1mUDan9t}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{7cnMi8-gNmotWT14Dep6q → 5Uw27VWJXgLXr1mUDan9t}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/* Round 561 verification: group-label opacity lifts to 1.0 when
|
|
2
|
+
* operator hovers a NODE ALIAS that's a member of this group.
|
|
3
|
+
* 4th anchor in the inspection-overrides-encoding family.
|
|
4
|
+
*
|
|
5
|
+
* Mock: 3 'alpha-' prefix sessions (1 group) + 3 standalone
|
|
6
|
+
* (orphan band). Hover the alpha-1 node → group 'alpha·' label
|
|
7
|
+
* should lift opacity 0.55 → 1.0.
|
|
8
|
+
*
|
|
9
|
+
* Test phases:
|
|
10
|
+
* 1. confirm grid layout active
|
|
11
|
+
* 2. rest: group 'alpha·' opacity = 0.55
|
|
12
|
+
* 3. hover a node from alpha group → 'alpha·' opacity = 1.0,
|
|
13
|
+
* member-alias-hovered attr = 'true'
|
|
14
|
+
* 4. orphan group should NOT lift (its members aren't hovered)
|
|
15
|
+
* 5. source-side regex confirms wiring
|
|
16
|
+
*/
|
|
17
|
+
import { chromium } from 'playwright';
|
|
18
|
+
import { readFileSync } from 'node:fs';
|
|
19
|
+
|
|
20
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
21
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
22
|
+
|
|
23
|
+
const browser = await chromium.launch({ headless: true });
|
|
24
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
|
|
25
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
26
|
+
await ctx.addInitScript(() => {
|
|
27
|
+
try {
|
|
28
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
29
|
+
localStorage.setItem('anet-topo-layout', 'grid');
|
|
30
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
31
|
+
} catch {}
|
|
32
|
+
});
|
|
33
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
34
|
+
const r = await route.fetch();
|
|
35
|
+
const b = await r.json();
|
|
36
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
37
|
+
const mk = (alias, status = 'idle') => ({
|
|
38
|
+
alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
39
|
+
network_id: nid, project_dir: null,
|
|
40
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
41
|
+
});
|
|
42
|
+
// alpha-group has WORKING members → ants run at rest. Hovering a
|
|
43
|
+
// member alias should keep ants running (R561 refined gate).
|
|
44
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
45
|
+
mk('alpha·1', 'working'), mk('alpha·2', 'working'), mk('alpha·3'),
|
|
46
|
+
mk('foo'), mk('bar'), mk('baz'),
|
|
47
|
+
] } });
|
|
48
|
+
});
|
|
49
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
50
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
51
|
+
const page = await ctx.newPage();
|
|
52
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
|
|
53
|
+
await page.waitForSelector('[data-group-label]', { timeout: 15000 });
|
|
54
|
+
await page.waitForTimeout(500);
|
|
55
|
+
|
|
56
|
+
const probeGroups = async () => {
|
|
57
|
+
return page.evaluate(() => {
|
|
58
|
+
const els = Array.from(document.querySelectorAll('[data-group-label]'));
|
|
59
|
+
return els.map(el => {
|
|
60
|
+
// Find the matching outer <g> with data-group-box-live to read the
|
|
61
|
+
// ants-gate refinement. The box rect sits within the same parent
|
|
62
|
+
// group as the label — both nest under the per-band <g> in the
|
|
63
|
+
// groupBoxes.map() loop.
|
|
64
|
+
const parent = el.closest('g')?.parentElement || null;
|
|
65
|
+
const boxRect = parent?.querySelector('[data-group-box-live]') || null;
|
|
66
|
+
return {
|
|
67
|
+
key: el.getAttribute('data-group-label'),
|
|
68
|
+
orphan: el.getAttribute('data-group-label-orphan') === 'true',
|
|
69
|
+
opacityAttr: el.getAttribute('data-group-label-opacity'),
|
|
70
|
+
computedOpacity: getComputedStyle(el).opacity,
|
|
71
|
+
memberAliasHovered: el.getAttribute('data-group-label-member-alias-hovered') === 'true',
|
|
72
|
+
boxLive: boxRect?.getAttribute('data-group-box-live'),
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const restGroups = await probeGroups();
|
|
79
|
+
|
|
80
|
+
// Hover a node from the alpha group.
|
|
81
|
+
await page.hover('g[data-node="alpha·1"]');
|
|
82
|
+
await page.waitForTimeout(400);
|
|
83
|
+
const hoverGroups = await probeGroups();
|
|
84
|
+
|
|
85
|
+
await browser.close();
|
|
86
|
+
|
|
87
|
+
const restAlpha = restGroups.find(g => g.key === 'alpha·');
|
|
88
|
+
const restOrphan = restGroups.find(g => g.orphan);
|
|
89
|
+
const hoverAlpha = hoverGroups.find(g => g.key === 'alpha·');
|
|
90
|
+
const hoverOrphan = hoverGroups.find(g => g.orphan);
|
|
91
|
+
|
|
92
|
+
const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
|
|
93
|
+
const sourceFlag = /const isMemberAliasHovered = !!hoveredAlias && groupKeys\[hoveredAlias\] === box\.key;/.test(src);
|
|
94
|
+
const sourceOpacity = /opacity=\{isPinned \|\| isHovered \|\| isMemberAliasHovered \? 1 : box\.isOrphan \? 0\.4 : 0\.55\}/.test(src);
|
|
95
|
+
const sourceAttr = /data-group-label-member-alias-hovered=/.test(src);
|
|
96
|
+
|
|
97
|
+
const results = {
|
|
98
|
+
alpha_present: !!restAlpha,
|
|
99
|
+
orphan_present: !!restOrphan,
|
|
100
|
+
rest_alpha_opacity_0_55: restAlpha?.computedOpacity === '0.55',
|
|
101
|
+
rest_alpha_attr_not_hovered: restAlpha?.memberAliasHovered === false,
|
|
102
|
+
rest_orphan_opacity_0_4: restOrphan?.computedOpacity === '0.4',
|
|
103
|
+
hover_alpha_opacity_1: hoverAlpha?.computedOpacity === '1',
|
|
104
|
+
hover_alpha_attr_hovered: hoverAlpha?.memberAliasHovered === true,
|
|
105
|
+
hover_orphan_opacity_unchanged: hoverOrphan?.computedOpacity === '0.4',
|
|
106
|
+
hover_orphan_attr_not_hovered: hoverOrphan?.memberAliasHovered === false,
|
|
107
|
+
// R561 ants-gate refinement: alpha group has working members.
|
|
108
|
+
// Rest: ants run ('true'). Pre-R561 hovering a member alias
|
|
109
|
+
// halted ants ('false'); R561 keeps them running on member-alias
|
|
110
|
+
// hover ('true'). Direct label hover would still halt — not
|
|
111
|
+
// exercised here.
|
|
112
|
+
rest_alpha_ants_running: restAlpha?.boxLive === 'true',
|
|
113
|
+
hover_alpha_ants_keep_running: hoverAlpha?.boxLive === 'true',
|
|
114
|
+
source_flag: sourceFlag,
|
|
115
|
+
source_opacity: sourceOpacity,
|
|
116
|
+
source_attr: sourceAttr,
|
|
117
|
+
};
|
|
118
|
+
const ok = Object.values(results).every(Boolean);
|
|
119
|
+
console.log(`${ok ? '✅' : '❌'} R561 group-label member-alias-hover opacity lift (4th anchor in inspection-overrides-encoding):`,
|
|
120
|
+
JSON.stringify(results, null, 2),
|
|
121
|
+
'\n rest alpha:', JSON.stringify(restAlpha),
|
|
122
|
+
'\n rest orphan:', JSON.stringify(restOrphan),
|
|
123
|
+
'\n hover alpha:', JSON.stringify(hoverAlpha),
|
|
124
|
+
'\n hover orphan:', JSON.stringify(hoverOrphan));
|
|
125
|
+
process.exit(ok ? 0 : 1);
|
|
File without changes
|
/package/.next/static/{7cnMi8-gNmotWT14Dep6q → 5Uw27VWJXgLXr1mUDan9t}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|