agent-comms 2.21.6 → 2.21.7
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/dist/bridges/claude-code/channel.d.ts.map +1 -1
- package/dist/bridges/claude-code/channel.js +8 -4
- package/dist/bridges/claude-code/channel.js.map +1 -1
- package/dist/bridges/codex/tool.d.ts.map +1 -1
- package/dist/bridges/codex/tool.js +5 -3
- package/dist/bridges/codex/tool.js.map +1 -1
- package/dist/bridges/mcp/{index.d.ts → server.d.ts} +1 -1
- package/dist/bridges/mcp/server.d.ts.map +1 -0
- package/dist/bridges/mcp/{index.js → server.js} +6 -4
- package/dist/bridges/mcp/server.js.map +1 -0
- package/dist/bridges/opencode/plugin.d.ts.map +1 -1
- package/dist/bridges/opencode/plugin.js +3 -1
- package/dist/bridges/opencode/plugin.js.map +1 -1
- package/dist/bridges/pi/{index.d.ts → extension.d.ts} +1 -1
- package/dist/bridges/pi/extension.d.ts.map +1 -0
- package/dist/bridges/pi/{index.js → extension.js} +12 -11
- package/dist/bridges/pi/extension.js.map +1 -0
- package/dist/bridges/{index.d.ts → registry.d.ts} +1 -1
- package/dist/bridges/registry.d.ts.map +1 -0
- package/dist/bridges/{index.js → registry.js} +2 -2
- package/dist/bridges/registry.js.map +1 -0
- package/dist/bridges/user/cli.d.ts +1 -1
- package/dist/bridges/user/cli.d.ts.map +1 -1
- package/dist/bridges/user/cli.js +3 -3
- package/dist/bridges/user/cli.js.map +1 -1
- package/dist/bridges/user/controller.d.ts +4 -4
- package/dist/bridges/user/controller.d.ts.map +1 -1
- package/dist/bridges/user/controller.js +4 -4
- package/dist/bridges/user/controller.js.map +1 -1
- package/dist/bridges/user/tui.js +13 -9
- package/dist/bridges/user/tui.js.map +1 -1
- package/dist/bridges/user/web/dist/bundle.js +2 -2
- package/dist/bridges/user/web/dist/mesh-worker.js +1 -1
- package/dist/bridges/user/web/dist/sw.js +1 -1
- package/dist/bridges/user/web/frontend/api.d.ts +1 -1
- package/dist/bridges/user/web/frontend/api.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/api.js +7 -2
- package/dist/bridges/user/web/frontend/api.js.map +1 -1
- package/dist/bridges/user/web/frontend/components/App.d.ts +3 -3
- package/dist/bridges/user/web/frontend/components/App.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/components/ChatArea.d.ts +1 -1
- package/dist/bridges/user/web/frontend/components/ChatArea.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/components/ChatArea.js +3 -2
- package/dist/bridges/user/web/frontend/components/ChatArea.js.map +1 -1
- package/dist/bridges/user/web/frontend/components/MessageList.d.ts +2 -2
- package/dist/bridges/user/web/frontend/components/MessageList.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/components/MessageList.js +1 -1
- package/dist/bridges/user/web/frontend/components/MessageList.js.map +1 -1
- package/dist/bridges/user/web/frontend/components/ProjectTree.js +1 -1
- package/dist/bridges/user/web/frontend/components/ProjectTree.js.map +1 -1
- package/dist/bridges/user/web/frontend/components/Sidebar.d.ts +2 -2
- package/dist/bridges/user/web/frontend/components/Sidebar.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/dom.d.ts +0 -3
- package/dist/bridges/user/web/frontend/dom.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/dom.js +4 -2
- package/dist/bridges/user/web/frontend/dom.js.map +1 -1
- package/dist/bridges/user/web/frontend/input.js +13 -7
- package/dist/bridges/user/web/frontend/input.js.map +1 -1
- package/dist/bridges/user/web/frontend/main.js +4 -2
- package/dist/bridges/user/web/frontend/main.js.map +1 -1
- package/dist/bridges/user/web/frontend/mesh-client.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/mesh-client.js +23 -10
- package/dist/bridges/user/web/frontend/mesh-client.js.map +1 -1
- package/dist/bridges/user/web/frontend/mesh-worker.js +6 -4
- package/dist/bridges/user/web/frontend/mesh-worker.js.map +1 -1
- package/dist/bridges/user/web/frontend/messages.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/messages.js +2 -0
- package/dist/bridges/user/web/frontend/messages.js.map +1 -1
- package/dist/bridges/user/web/frontend/project-tree.d.ts +1 -1
- package/dist/bridges/user/web/frontend/project-tree.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/project-tree.js.map +1 -1
- package/dist/bridges/user/web/frontend/state.d.ts +7 -7
- package/dist/bridges/user/web/frontend/state.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/state.js.map +1 -1
- package/dist/bridges/user/web/frontend/sw.js +23 -17
- package/dist/bridges/user/web/frontend/sw.js.map +1 -1
- package/dist/bridges/user/web/frontend/url-sync.d.ts +3 -3
- package/dist/bridges/user/web/frontend/url-sync.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/url-sync.js +7 -5
- package/dist/bridges/user/web/frontend/url-sync.js.map +1 -1
- package/dist/bridges/user/web/generated-html.js +1 -1
- package/dist/bridges/user/web/port-discovery.d.ts.map +1 -1
- package/dist/bridges/user/web/port-discovery.js +1 -1
- package/dist/bridges/user/web/port-discovery.js.map +1 -1
- package/dist/bridges/user/web/server.d.ts.map +1 -1
- package/dist/bridges/user/web/server.js +47 -23
- package/dist/bridges/user/web/server.js.map +1 -1
- package/dist/bridges/user/web/test/port-discovery.unit.test.js +46 -20
- package/dist/bridges/user/web/test/port-discovery.unit.test.js.map +1 -1
- package/dist/bridges/user/web/test/web-server.integration.test.js +27 -9
- package/dist/bridges/user/web/test/web-server.integration.test.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +9 -7
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-registry.js +5 -5
- package/dist/core/agent-registry.js.map +1 -1
- package/dist/core/bridge.d.ts +2 -2
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +7 -1
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/comms-store.d.ts +24 -24
- package/dist/core/comms-store.d.ts.map +1 -1
- package/dist/core/connection-approval.d.ts +4 -7
- package/dist/core/connection-approval.d.ts.map +1 -1
- package/dist/core/connection-approval.js +3 -6
- package/dist/core/connection-approval.js.map +1 -1
- package/dist/core/delivery-engine.d.ts +1 -1
- package/dist/core/delivery-engine.d.ts.map +1 -1
- package/dist/core/delivery-engine.js +8 -6
- package/dist/core/delivery-engine.js.map +1 -1
- package/dist/core/discovery-mdns.d.ts +3 -1
- package/dist/core/discovery-mdns.d.ts.map +1 -1
- package/dist/core/discovery-mdns.js +17 -10
- package/dist/core/discovery-mdns.js.map +1 -1
- package/dist/core/discovery-tailscale.d.ts +1 -1
- package/dist/core/discovery-tailscale.d.ts.map +1 -1
- package/dist/core/discovery-tailscale.js +25 -13
- package/dist/core/discovery-tailscale.js.map +1 -1
- package/dist/core/discovery.d.ts +10 -10
- package/dist/core/discovery.d.ts.map +1 -1
- package/dist/core/discovery.js +6 -8
- package/dist/core/discovery.js.map +1 -1
- package/dist/core/federation-bridge.d.ts +1 -1
- package/dist/core/federation-bridge.d.ts.map +1 -1
- package/dist/core/federation-bridge.js +4 -4
- package/dist/core/federation-bridge.js.map +1 -1
- package/dist/core/federation.d.ts +16 -16
- package/dist/core/federation.d.ts.map +1 -1
- package/dist/core/federation.js +33 -14
- package/dist/core/federation.js.map +1 -1
- package/dist/core/handshake.d.ts +10 -10
- package/dist/core/handshake.d.ts.map +1 -1
- package/dist/core/handshake.js +9 -4
- package/dist/core/handshake.js.map +1 -1
- package/dist/core/identity-store.d.ts +8 -8
- package/dist/core/identity-store.d.ts.map +1 -1
- package/dist/core/identity-store.js +7 -3
- package/dist/core/identity-store.js.map +1 -1
- package/dist/core/identity.d.ts.map +1 -1
- package/dist/core/identity.js +111 -42
- package/dist/core/identity.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/mcp-registry-retry.d.ts.map +1 -1
- package/dist/core/mcp-registry-retry.js +4 -1
- package/dist/core/mcp-registry-retry.js.map +1 -1
- package/dist/core/mesh-store-shared.d.ts +2 -5
- package/dist/core/mesh-store-shared.d.ts.map +1 -1
- package/dist/core/mesh-store-shared.js +21 -5
- package/dist/core/mesh-store-shared.js.map +1 -1
- package/dist/core/mesh-store.d.ts +3 -4
- package/dist/core/mesh-store.d.ts.map +1 -1
- package/dist/core/mesh-store.js +12 -10
- package/dist/core/mesh-store.js.map +1 -1
- package/dist/core/peer-lifecycle.d.ts +9 -9
- package/dist/core/peer-lifecycle.d.ts.map +1 -1
- package/dist/core/peer-lifecycle.js.map +1 -1
- package/dist/core/push-manager.d.ts +1 -2
- package/dist/core/push-manager.d.ts.map +1 -1
- package/dist/core/push-manager.js.map +1 -1
- package/dist/core/random-id.d.ts +1 -1
- package/dist/core/random-id.d.ts.map +1 -1
- package/dist/core/random-id.js +4 -2
- package/dist/core/random-id.js.map +1 -1
- package/dist/core/room-lifecycle.d.ts +2 -2
- package/dist/core/room-lifecycle.d.ts.map +1 -1
- package/dist/core/room-lifecycle.js +4 -3
- package/dist/core/room-lifecycle.js.map +1 -1
- package/dist/core/room-messaging.d.ts +1 -1
- package/dist/core/room-messaging.d.ts.map +1 -1
- package/dist/core/room-messaging.js +2 -2
- package/dist/core/room-messaging.js.map +1 -1
- package/dist/core/room-protocol.d.ts +1 -1
- package/dist/core/room-protocol.d.ts.map +1 -1
- package/dist/core/room-protocol.js +6 -6
- package/dist/core/room-protocol.js.map +1 -1
- package/dist/core/room-router.d.ts +3 -3
- package/dist/core/room-router.d.ts.map +1 -1
- package/dist/core/room-router.js +19 -1
- package/dist/core/room-router.js.map +1 -1
- package/dist/core/stale-agent-checker.d.ts.map +1 -1
- package/dist/core/stale-agent-checker.js +4 -1
- package/dist/core/stale-agent-checker.js.map +1 -1
- package/dist/core/store.d.ts +2 -2
- package/dist/core/store.d.ts.map +1 -1
- package/dist/core/store.js +16 -9
- package/dist/core/store.js.map +1 -1
- package/dist/core/test/identity.unit.test.js +42 -9
- package/dist/core/test/identity.unit.test.js.map +1 -1
- package/dist/core/tool.d.ts +23 -23
- package/dist/core/tool.d.ts.map +1 -1
- package/dist/core/tool.js +115 -174
- package/dist/core/tool.js.map +1 -1
- package/dist/core/transport.d.ts +42 -65
- package/dist/core/transport.d.ts.map +1 -1
- package/dist/core/types.d.ts +52 -46
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +42 -25
- package/dist/core/types.js.map +1 -1
- package/dist/core/vapid.d.ts.map +1 -1
- package/dist/core/vapid.js +6 -2
- package/dist/core/vapid.js.map +1 -1
- package/dist/core/web-push.d.ts +2 -2
- package/dist/core/web-push.d.ts.map +1 -1
- package/dist/core/web-push.js +29 -11
- package/dist/core/web-push.js.map +1 -1
- package/dist/core/wire-mesh-transport.d.ts +10 -10
- package/dist/core/wire-mesh-transport.d.ts.map +1 -1
- package/dist/core/wire-mesh-transport.js +7 -5
- package/dist/core/wire-mesh-transport.js.map +1 -1
- package/dist/test/approval.integration.test.js +25 -14
- package/dist/test/approval.integration.test.js.map +1 -1
- package/dist/test/bridge-mesh.test.js +6 -1
- package/dist/test/bridge-mesh.test.js.map +1 -1
- package/dist/test/broadcast-window.integration.test.js +7 -3
- package/dist/test/broadcast-window.integration.test.js.map +1 -1
- package/dist/test/coordinator-socket-error.integration.test.js +5 -1
- package/dist/test/coordinator-socket-error.integration.test.js.map +1 -1
- package/dist/test/delivery-receipt.helper.js +56 -33
- package/dist/test/delivery-receipt.helper.js.map +1 -1
- package/dist/test/federation.integration.test.js +33 -14
- package/dist/test/federation.integration.test.js.map +1 -1
- package/dist/test/handshake.test.js +23 -7
- package/dist/test/handshake.test.js.map +1 -1
- package/dist/test/identity-restart.integration.test.js +15 -7
- package/dist/test/identity-restart.integration.test.js.map +1 -1
- package/dist/test/identity-store.test.js +14 -6
- package/dist/test/identity-store.test.js.map +1 -1
- package/dist/test/listener-policy.integration.test.js +3 -2
- package/dist/test/listener-policy.integration.test.js.map +1 -1
- package/dist/test/mcp-registry-retry.test.js +14 -3
- package/dist/test/mcp-registry-retry.test.js.map +1 -1
- package/dist/test/mesh-e2e.integration.test.js +27 -10
- package/dist/test/mesh-e2e.integration.test.js.map +1 -1
- package/dist/test/mesh-smoke.runner.js +1 -1
- package/dist/test/mesh-smoke.runner.js.map +1 -1
- package/dist/test/presence-readvertise.integration.test.d.ts +1 -1
- package/dist/test/presence-readvertise.integration.test.js +5 -2
- package/dist/test/presence-readvertise.integration.test.js.map +1 -1
- package/dist/test/random-id.test.js +3 -1
- package/dist/test/random-id.test.js.map +1 -1
- package/dist/test/room-admission-tool-actions.test.js +2 -1
- package/dist/test/room-admission-tool-actions.test.js.map +1 -1
- package/dist/test/room-destroy-revocation.integration.test.js +4 -1
- package/dist/test/room-destroy-revocation.integration.test.js.map +1 -1
- package/dist/test/room-invite-directed.integration.test.js +2 -1
- package/dist/test/room-invite-directed.integration.test.js.map +1 -1
- package/dist/test/room-join-admission.test.js +7 -5
- package/dist/test/room-join-admission.test.js.map +1 -1
- package/dist/test/room-kick-revocation.integration.test.js +5 -1
- package/dist/test/room-kick-revocation.integration.test.js.map +1 -1
- package/dist/test/room-path.test.js +3 -2
- package/dist/test/room-path.test.js.map +1 -1
- package/dist/test/room-read-directed.integration.test.js +6 -2
- package/dist/test/room-read-directed.integration.test.js.map +1 -1
- package/dist/test/room-router.test.js +3 -1
- package/dist/test/room-router.test.js.map +1 -1
- package/dist/test/room-send-directed.integration.test.js +2 -1
- package/dist/test/room-send-directed.integration.test.js.map +1 -1
- package/dist/test/room-send-retry-queue.test.js +6 -2
- package/dist/test/room-send-retry-queue.test.js.map +1 -1
- package/dist/test/room-send-retry.integration.test.js +21 -7
- package/dist/test/room-send-retry.integration.test.js.map +1 -1
- package/dist/test/room-token-store.test.js +30 -7
- package/dist/test/room-token-store.test.js.map +1 -1
- package/dist/test/state-sync-convergence.test.js +2 -1
- package/dist/test/state-sync-convergence.test.js.map +1 -1
- package/dist/test/test-transport.d.ts +1 -1
- package/dist/test/test-transport.d.ts.map +1 -1
- package/dist/test/test-transport.js +7 -3
- package/dist/test/test-transport.js.map +1 -1
- package/dist/test/wire-mesh-transport.test.js +41 -27
- package/dist/test/wire-mesh-transport.test.js.map +1 -1
- package/package.json +4 -3
- package/dist/bridges/index.d.ts.map +0 -1
- package/dist/bridges/index.js.map +0 -1
- package/dist/bridges/mcp/index.d.ts.map +0 -1
- package/dist/bridges/mcp/index.js.map +0 -1
- package/dist/bridges/pi/index.d.ts.map +0 -1
- package/dist/bridges/pi/index.js.map +0 -1
package/dist/bridges/user/tui.js
CHANGED
|
@@ -32,7 +32,7 @@ const RESET = "\x1b[0m";
|
|
|
32
32
|
const CLEAR_LINE = "\r\x1b[2K";
|
|
33
33
|
function prompt(controller) {
|
|
34
34
|
const room = controller.activeRoom;
|
|
35
|
-
return room ? `${GREEN}${room}${RESET} > ` : `${DIM}>${RESET} `;
|
|
35
|
+
return room !== undefined ? `${GREEN}${room}${RESET} > ` : `${DIM}>${RESET} `;
|
|
36
36
|
}
|
|
37
37
|
export async function runTui(userName) {
|
|
38
38
|
const controller = new ChatController(userName);
|
|
@@ -61,7 +61,7 @@ export async function runTui(userName) {
|
|
|
61
61
|
if (trimmed.startsWith("/")) {
|
|
62
62
|
await handleCommand(trimmed, controller);
|
|
63
63
|
}
|
|
64
|
-
else if (controller.activeRoom) {
|
|
64
|
+
else if (controller.activeRoom !== undefined) {
|
|
65
65
|
const result = await controller.sendToCurrentRoom(trimmed);
|
|
66
66
|
if (result.isError) {
|
|
67
67
|
process.stdout.write(`${RED}${result.content}${RESET}\n`);
|
|
@@ -96,7 +96,7 @@ async function handleCommand(input, c) {
|
|
|
96
96
|
const arg2 = parts.slice(2).join(" ");
|
|
97
97
|
switch (cmd) {
|
|
98
98
|
case "join": {
|
|
99
|
-
if (
|
|
99
|
+
if (arg1 === undefined) {
|
|
100
100
|
process.stdout.write(`${YELLOW}Usage: /join <room>${RESET}\n`);
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
@@ -131,7 +131,7 @@ async function handleCommand(input, c) {
|
|
|
131
131
|
return;
|
|
132
132
|
}
|
|
133
133
|
case "dm": {
|
|
134
|
-
if (
|
|
134
|
+
if (arg1 === undefined || !arg2) {
|
|
135
135
|
process.stdout.write(`${YELLOW}Usage: /dm <agent> <message>${RESET}\n`);
|
|
136
136
|
return;
|
|
137
137
|
}
|
|
@@ -140,7 +140,7 @@ async function handleCommand(input, c) {
|
|
|
140
140
|
return;
|
|
141
141
|
}
|
|
142
142
|
case "create": {
|
|
143
|
-
if (
|
|
143
|
+
if (arg1 === undefined) {
|
|
144
144
|
process.stdout.write(`${YELLOW}Usage: /create <name>${RESET}\n`);
|
|
145
145
|
return;
|
|
146
146
|
}
|
|
@@ -150,7 +150,7 @@ async function handleCommand(input, c) {
|
|
|
150
150
|
}
|
|
151
151
|
case "invite": {
|
|
152
152
|
const agentId = parts[2];
|
|
153
|
-
if (
|
|
153
|
+
if (arg1 === undefined || agentId === undefined) {
|
|
154
154
|
process.stdout.write(`${YELLOW}Usage: /invite <room> <agent>${RESET}\n`);
|
|
155
155
|
return;
|
|
156
156
|
}
|
|
@@ -160,7 +160,7 @@ async function handleCommand(input, c) {
|
|
|
160
160
|
}
|
|
161
161
|
case "decline": {
|
|
162
162
|
const reason = parts.slice(2).join(" ");
|
|
163
|
-
if (
|
|
163
|
+
if (arg1 === undefined || !reason) {
|
|
164
164
|
process.stdout.write(`${YELLOW}Usage: /decline <room> <reason>${RESET}\n`);
|
|
165
165
|
return;
|
|
166
166
|
}
|
|
@@ -170,7 +170,7 @@ async function handleCommand(input, c) {
|
|
|
170
170
|
}
|
|
171
171
|
case "kick": {
|
|
172
172
|
const agentId = parts[2];
|
|
173
|
-
if (
|
|
173
|
+
if (arg1 === undefined || agentId === undefined) {
|
|
174
174
|
process.stdout.write(`${YELLOW}Usage: /kick <room> <agent>${RESET}\n`);
|
|
175
175
|
return;
|
|
176
176
|
}
|
|
@@ -179,7 +179,7 @@ async function handleCommand(input, c) {
|
|
|
179
179
|
return;
|
|
180
180
|
}
|
|
181
181
|
case "destroy": {
|
|
182
|
-
if (
|
|
182
|
+
if (arg1 === undefined) {
|
|
183
183
|
process.stdout.write(`${YELLOW}Usage: /destroy <room>${RESET}\n`);
|
|
184
184
|
return;
|
|
185
185
|
}
|
|
@@ -207,6 +207,8 @@ async function handleCommand(input, c) {
|
|
|
207
207
|
case "quit":
|
|
208
208
|
process.stdout.write(`${DIM}Goodbye!${RESET}\n`);
|
|
209
209
|
process.exit(0);
|
|
210
|
+
return;
|
|
211
|
+
case undefined:
|
|
210
212
|
default:
|
|
211
213
|
process.stdout.write(`${YELLOW}Unknown command: /${String(cmd)}. Type /help for commands.${RESET}\n`);
|
|
212
214
|
}
|
|
@@ -252,6 +254,8 @@ function formatForTerminal(event) {
|
|
|
252
254
|
return `${CYAN}✎ ${event.oldName} is now ${event.newName}${RESET}`;
|
|
253
255
|
case "connection_request":
|
|
254
256
|
return `${CYAN}🔗 Connection request from ${event.peerId} (${event.name})${RESET}`;
|
|
257
|
+
default:
|
|
258
|
+
return event;
|
|
255
259
|
}
|
|
256
260
|
}
|
|
257
261
|
//# sourceMappingURL=tui.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../src/bridges/user/tui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,eAAe;AACf,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,OAAO,GAAG,UAAU,CAAC;AAC3B,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B,SAAS,MAAM,CAAC,UAA0B;IACxC,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC;IACnC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../src/bridges/user/tui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,eAAe;AACf,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,OAAO,GAAG,UAAU,CAAC;AAC3B,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B,SAAS,MAAM,CAAC,UAA0B;IACxC,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC;IACnC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAgB;IAC3C,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IACxB,OAAO,CAAC,GAAG,CACT,GAAG,IAAI,gBAAgB,IAAI,GAAG,QAAQ,UAAU,KAAK,KAAK,UAAU,CAAC,OAAO,GAAG,CAChF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,GAAG,GAAG,mEAAmE,KAAK,IAAI,CACnF,CAAC;IAEF,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,kDAAkD;IAClD,SAAS,SAAS,CAAC,KAAoB;QACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEpC,SAAS,OAAO,CAAC,GAAU;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,UAAU,GAAG,GAAG,UAAU,GAAG,CAAC,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,UAAU,CAAC,EAAE,CAC1E,CAAC;IACJ,CAAC;IACD,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEhC,aAAa;IACb,KAAK,UAAU,WAAW,CAAC,KAAa;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,iDAAiD,KAAK,IAAI,CACpE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS,GAAG;QACV,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACxC,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAChC,GAAG,EAAE,CAAC;YACR,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,EAAE,CAAC;IAEN,oBAAoB;IACpB,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAClB,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjC,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,KAAK,UAAU,aAAa,CAAC,KAAa,EAAE,CAAiB;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,sBAAsB,KAAK,IAAI,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxC,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;oBACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvC,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;YACnC,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACpC,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,+BAA+B,KAAK,IAAI,CAAC,CAAC;gBACxE,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,wBAAwB,KAAK,IAAI,CAAC,CAAC;gBACjE,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACxD,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,gCAAgC,KAAK,IAAI,CACnD,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7C,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,kCAAkC,KAAK,IAAI,CACrD,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,8BAA8B,KAAK,IAAI,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,yBAAyB,KAAK,IAAI,CAAC,CAAC;gBAClE,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzC,WAAW,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,KAAK,MAAM;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,YAAY,KAAK;IAC/C,KAAK,QAAQ,KAAK;IAClB,KAAK,SAAS,KAAK;IACnB,KAAK,SAAS,KAAK;IACnB,KAAK,UAAU,KAAK;IACpB,KAAK,QAAQ,KAAK;IAClB,KAAK,MAAM,KAAK;IAChB,KAAK,UAAU,KAAK;IACpB,KAAK,UAAU,KAAK;IACpB,KAAK,WAAW,KAAK;IACrB,KAAK,QAAQ,KAAK;IAClB,KAAK,WAAW,KAAK;IACrB,KAAK,QAAQ,KAAK;IAClB,KAAK,QAAQ,KAAK;IAClB,GAAG,kDAAkD,KAAK,IAAI,CAAC,CAAC;YAC9D,OAAO;QACT,KAAK,MAAM;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,KAAK,SAAS,CAAC;QACf;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,qBAAqB,MAAM,CAAC,GAAG,CAAC,6BAA6B,KAAK,IAAI,CAChF,CAAC;IACN,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,SAAS,WAAW,CAClB,MAAuD;IAEvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB;IAC7C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,cAAc;YACjB,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAClG,KAAK,IAAI;YACP,OAAO,GAAG,OAAO,WAAW,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrF,KAAK,eAAe;YAClB,OAAO,GAAG,KAAK,KAAK,KAAK,CAAC,KAAK,WAAW,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;QACjE,KAAK,aAAa;YAChB,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;QAChE,KAAK,eAAe;YAClB,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,KAAK,WAAW,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;QACnF,KAAK,iBAAiB;YACpB,OAAO,GAAG,GAAG,aAAa,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;QACxF,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,QAAQ,oBAAoB,KAAK,CAAC,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACpF,CAAC;QACD,KAAK,iBAAiB;YACpB,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC,SAAS,uBAAuB,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QACrG,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO;iBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;iBACrC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,GAAG,GAAG,cAAc,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,KAAK,EAAE,CAAC;QAC5D,CAAC;QACD,KAAK,cAAc;YACjB,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,WAAW,KAAK,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;QACrE,KAAK,oBAAoB;YACvB,OAAO,GAAG,IAAI,8BAA8B,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;QACrF;YACE,OAAO,KAAqB,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var En=Object.defineProperty;var In=(e,n,t)=>n in e?En(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var A=(e,n,t)=>In(e,typeof n!="symbol"?n+"":n,t);var G,h,Te,Dn,j,we,Se,Me,ce,O,F,je,pe,le,de,Nn,q={},K=[],Ln=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Q=Array.isArray;function M(e,n){for(var t in n)e[t]=n[t];return e}function ue(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function $n(e,n,t){var o,i,r,a={};for(r in n)r=="key"?o=n[r]:r=="ref"?i=n[r]:a[r]=n[r];if(arguments.length>2&&(a.children=arguments.length>3?G.call(arguments,2):t),typeof e=="function"&&e.defaultProps!=null)for(r in e.defaultProps)a[r]===void 0&&(a[r]=e.defaultProps[r]);return V(e,a,o,i,null)}function V(e,n,t,o,i){var r={type:e,props:n,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++Te,__i:-1,__u:0};return i==null&&h.vnode!=null&&h.vnode(r),r}function P(e){return e.children}function B(e,n){this.props=e,this.context=n}function N(e,n){if(n==null)return e.__?N(e.__,e.__i+1):null;for(var t;n<e.__k.length;n++)if((t=e.__k[n])!=null&&t.__e!=null)return t.__e;return typeof e.type=="function"?N(e):null}function Fn(e){if(e.__P&&e.__d){var n=e.__v,t=n.__e,o=[],i=[],r=M({},n);r.__v=n.__v+1,h.vnode&&h.vnode(r),me(e.__P,r,n,e.__n,e.__P.namespaceURI,32&n.__u?[t]:null,o,t??N(n),!!(32&n.__u),i),r.__v=n.__v,r.__.__k[r.__i]=r,Ne(o,r,i),n.__e=n.__=null,r.__e!=t&&Pe(r)}}function Pe(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(n){if(n!=null&&n.__e!=null)return e.__e=e.__c.base=n.__e}),Pe(e)}function Re(e){(!e.__d&&(e.__d=!0)&&j.push(e)&&!X.__r++||we!=h.debounceRendering)&&((we=h.debounceRendering)||Se)(X)}function X(){try{for(var e,n=1;j.length;)j.length>n&&j.sort(Me),e=j.shift(),n=j.length,Fn(e)}finally{j.length=X.__r=0}}function Ee(e,n,t,o,i,r,a,d,u,l,p){var f,s,m,y,C,k,_,g=o&&o.__k||K,R=n.length;for(u=Hn(t,n,g,u,R),f=0;f<R;f++)(m=t.__k[f])!=null&&(s=m.__i!=-1&&g[m.__i]||q,m.__i=f,k=me(e,m,s,i,r,a,d,u,l,p),y=m.__e,m.ref&&s.ref!=m.ref&&(s.ref&&fe(s.ref,null,m),p.push(m.ref,m.__c||y,m)),C==null&&y!=null&&(C=y),(_=!!(4&m.__u))||s.__k===m.__k?(u=Ie(m,u,e,_),_&&s.__e&&(s.__e=null)):typeof m.type=="function"&&k!==void 0?u=k:y&&(u=y.nextSibling),m.__u&=-7);return t.__e=C,u}function Hn(e,n,t,o,i){var r,a,d,u,l,p=t.length,f=p,s=0;for(e.__k=new Array(i),r=0;r<i;r++)(a=n[r])!=null&&typeof a!="boolean"&&typeof a!="function"?(typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?a=e.__k[r]=V(null,a,null,null,null):Q(a)?a=e.__k[r]=V(P,{children:a},null,null,null):a.constructor===void 0&&a.__b>0?a=e.__k[r]=V(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):e.__k[r]=a,u=r+s,a.__=e,a.__b=e.__b+1,d=null,(l=a.__i=zn(a,t,u,f))!=-1&&(f--,(d=t[l])&&(d.__u|=2)),d==null||d.__v==null?(l==-1&&(i>p?s--:i<p&&s++),typeof a.type!="function"&&(a.__u|=4)):l!=u&&(l==u-1?s--:l==u+1?s++:(l>u?s--:s++,a.__u|=4))):e.__k[r]=null;if(f)for(r=0;r<p;r++)(d=t[r])!=null&&(2&d.__u)==0&&(d.__e==o&&(o=N(d)),$e(d,d));return o}function Ie(e,n,t,o){var i,r;if(typeof e.type=="function"){for(i=e.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=e,n=Ie(i[r],n,t,o));return n}e.__e!=n&&(o&&(n&&e.type&&!n.parentNode&&(n=N(e)),t.insertBefore(e.__e,n||null)),n=e.__e);do n=n&&n.nextSibling;while(n!=null&&n.nodeType==8);return n}function zn(e,n,t,o){var i,r,a,d=e.key,u=e.type,l=n[t],p=l!=null&&(2&l.__u)==0;if(l===null&&d==null||p&&d==l.key&&u==l.type)return t;if(o>(p?1:0)){for(i=t-1,r=t+1;i>=0||r<n.length;)if((l=n[a=i>=0?i--:r++])!=null&&(2&l.__u)==0&&d==l.key&&u==l.type)return a}return-1}function Ce(e,n,t){n[0]=="-"?e.setProperty(n,t??""):e[n]=t==null?"":typeof t!="number"||Ln.test(n)?t:t+"px"}function J(e,n,t,o,i){var r,a;e:if(n=="style")if(typeof t=="string")e.style.cssText=t;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(n in o)t&&n in t||Ce(e.style,n,"");if(t)for(n in t)o&&t[n]==o[n]||Ce(e.style,n,t[n])}else if(n[0]=="o"&&n[1]=="n")r=n!=(n=n.replace(je,"$1")),a=n.toLowerCase(),n=a in e||n=="onFocusOut"||n=="onFocusIn"?a.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+r]=t,t?o?t[F]=o[F]:(t[F]=pe,e.addEventListener(n,r?de:le,r)):e.removeEventListener(n,r?de:le,r);else{if(i=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=t??"";break e}catch{}typeof t=="function"||(t==null||t===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&t==1?"":t))}}function Ae(e){return function(n){if(this.l){var t=this.l[n.type+e];if(n[O]==null)n[O]=pe++;else if(n[O]<t[F])return;return t(h.event?h.event(n):n)}}}function me(e,n,t,o,i,r,a,d,u,l){var p,f,s,m,y,C,k,_,g,R,L,I,$,ke,U,ae,T=n.type;if(n.constructor!==void 0)return null;128&t.__u&&(u=!!(32&t.__u),r=[d=n.__e=t.__e]),(p=h.__b)&&p(n);e:if(typeof T=="function"){f=a.length;try{if(g=n.props,R=T.prototype&&T.prototype.render,L=(p=T.contextType)&&o[p.__c],I=p?L?L.props.value:p.__:o,t.__c?_=(s=n.__c=t.__c).__=s.__E:(R?n.__c=s=new T(g,I):(n.__c=s=new B(g,I),s.constructor=T,s.render=Un),L&&L.sub(s),s.state||(s.state={}),s.__n=o,m=s.__d=!0,s.__h=[],s._sb=[]),R&&s.__s==null&&(s.__s=s.state),R&&T.getDerivedStateFromProps!=null&&(s.__s==s.state&&(s.__s=M({},s.__s)),M(s.__s,T.getDerivedStateFromProps(g,s.__s))),y=s.props,C=s.state,s.__v=n,m)R&&T.getDerivedStateFromProps==null&&s.componentWillMount!=null&&s.componentWillMount(),R&&s.componentDidMount!=null&&s.__h.push(s.componentDidMount);else{if(R&&T.getDerivedStateFromProps==null&&g!==y&&s.componentWillReceiveProps!=null&&s.componentWillReceiveProps(g,I),n.__v==t.__v||!s.__e&&s.shouldComponentUpdate!=null&&s.shouldComponentUpdate(g,s.__s,I)===!1){n.__v!=t.__v&&(s.props=g,s.state=s.__s,s.__d=!1),n.__e=t.__e,n.__k=t.__k,n.__k.some(function(D){D&&(D.__=n)}),K.push.apply(s.__h,s._sb),s._sb=[],s.__h.length&&a.push(s);break e}s.componentWillUpdate!=null&&s.componentWillUpdate(g,s.__s,I),R&&s.componentDidUpdate!=null&&s.__h.push(function(){s.componentDidUpdate(y,C,k)})}if(s.context=I,s.props=g,s.__P=e,s.__e=!1,$=h.__r,ke=0,R)s.state=s.__s,s.__d=!1,$&&$(n),p=s.render(s.props,s.state,s.context),K.push.apply(s.__h,s._sb),s._sb=[];else do s.__d=!1,$&&$(n),p=s.render(s.props,s.state,s.context),s.state=s.__s;while(s.__d&&++ke<25);s.state=s.__s,s.getChildContext!=null&&(o=M(M({},o),s.getChildContext())),R&&!m&&s.getSnapshotBeforeUpdate!=null&&(k=s.getSnapshotBeforeUpdate(y,C)),U=p!=null&&p.type===P&&p.key==null?Le(p.props.children):p,d=Ee(e,Q(U)?U:[U],n,t,o,i,r,a,d,u,l),s.base=n.__e,n.__u&=-161,s.__h.length&&a.push(s),_&&(s.__E=s.__=null)}catch(D){if(a.length=f,n.__v=null,u||r!=null){if(D.then){for(n.__u|=u?160:128;d&&d.nodeType==8&&d.nextSibling;)d=d.nextSibling;r!=null&&(r[r.indexOf(d)]=null),n.__e=d}else if(r!=null)for(ae=r.length;ae--;)ue(r[ae])}else n.__e=t.__e;n.__k==null&&(n.__k=t.__k||[]),D.then||De(n),h.__e(D,n,t)}}else r==null&&n.__v==t.__v?(n.__k=t.__k,n.__e=t.__e):d=n.__e=Wn(t.__e,n,t,o,i,r,a,u,l);return(p=h.diffed)&&p(n),128&n.__u?void 0:d}function De(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(De))}function Ne(e,n,t){for(var o=0;o<t.length;o++)fe(t[o],t[++o],t[++o]);h.__c&&h.__c(n,e),e.some(function(i){try{e=i.__h,i.__h=[],e.some(function(r){r.call(i)})}catch(r){h.__e(r,i.__v)}})}function Le(e){return typeof e!="object"||e==null||e.__b>0?e:Q(e)?e.map(Le):e.constructor!==void 0?null:M({},e)}function Wn(e,n,t,o,i,r,a,d,u){var l,p,f,s,m,y,C,k=t.props||q,_=n.props,g=n.type;if(g=="svg"?i="http://www.w3.org/2000/svg":g=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),r!=null){for(l=0;l<r.length;l++)if((m=r[l])&&"setAttribute"in m==!!g&&(g?m.localName==g:m.nodeType==3)){e=m,r[l]=null;break}}if(e==null){if(g==null)return document.createTextNode(_);e=document.createElementNS(i,g,_.is&&_),d&&(h.__m&&h.__m(n,r),d=!1),r=null}if(g==null)k===_||d&&e.data==_||(e.data=_);else{if(r=g=="textarea"&&_.defaultValue!=null?null:r&&G.call(e.childNodes),!d&&r!=null)for(k={},l=0;l<e.attributes.length;l++)k[(m=e.attributes[l]).name]=m.value;for(l in k)m=k[l],l=="dangerouslySetInnerHTML"?f=m:l=="children"||l in _||l=="value"&&"defaultValue"in _||l=="checked"&&"defaultChecked"in _||J(e,l,null,m,i);for(l in _)m=_[l],l=="children"?s=m:l=="dangerouslySetInnerHTML"?p=m:l=="value"?y=m:l=="checked"?C=m:d&&typeof m!="function"||k[l]===m||J(e,l,m,k[l],i);if(p)d||f&&(p.__html==f.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),n.__k=[];else if(f&&(e.innerHTML=""),Ee(n.type=="template"?e.content:e,Q(s)?s:[s],n,t,o,g=="foreignObject"?"http://www.w3.org/1999/xhtml":i,r,a,r?r[0]:t.__k&&N(t,0),d,u),r!=null)for(l=r.length;l--;)ue(r[l]);d&&g!="textarea"||(l="value",g=="progress"&&y==null?e.removeAttribute("value"):y!=null&&(y!==e[l]||g=="progress"&&!y||g=="option"&&y!=k[l])&&J(e,l,y,k[l],i),l="checked",C!=null&&C!=e[l]&&J(e,l,C,k[l],i))}return e}function fe(e,n,t){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&n==null||(e.__u=e(n))}else e.current=n}catch(i){h.__e(i,t)}}function $e(e,n,t){var o,i;if(h.unmount&&h.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||fe(o,null,n)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(r){h.__e(r,n)}o.base=o.__P=o.__n=null}if(o=e.__k)for(i=0;i<o.length;i++)o[i]&&$e(o[i],n,t||typeof e.type!="function");t||ue(e.__e),e.__c=e.__=e.__e=void 0}function Un(e,n,t){return this.constructor(e,t)}function Fe(e,n,t){var o,i,r,a;n==document&&(n=document.documentElement),h.__&&h.__(e,n),i=(o=typeof t=="function")?null:t&&t.__k||n.__k,r=[],a=[],me(n,e=(!o&&t||n).__k=$n(P,null,[e]),i||q,q,n.namespaceURI,!o&&t?[t]:i?null:n.firstChild?G.call(n.childNodes):null,r,!o&&t?t:i?i.__e:n.firstChild,o,a),Ne(r,e,a),e.props.children=null}G=K.slice,h={__e:function(e,n,t,o){for(var i,r,a;n=n.__;)if((i=n.__c)&&!i.__)try{if((r=i.constructor)&&r.getDerivedStateFromError!=null&&(i.setState(r.getDerivedStateFromError(e)),a=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,o||{}),a=i.__d),a)return i.__E=i}catch(d){e=d}throw e}},Te=0,Dn=function(e){return e!=null&&e.constructor===void 0},B.prototype.setState=function(e,n){var t;t=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=M({},this.state),typeof e=="function"&&(e=e(M({},t),this.props)),e&&M(t,e),e!=null&&this.__v&&(n&&this._sb.push(n),Re(this))},B.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Re(this))},B.prototype.render=P,j=[],Se=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Me=function(e,n){return e.__v.__b-n.__v.__b},X.__r=0,ce=Math.random().toString(8),O="__d"+ce,F="__a"+ce,je=/(PointerCapture)$|Capture$/i,pe=0,le=Ae(!1),de=Ae(!0),Nn=0;document.head.appendChild(Object.assign(document.createElement("style"),{textContent:`:root {
|
|
1
|
+
"use strict";(()=>{var In=Object.defineProperty;var Dn=(e,n,t)=>n in e?In(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var C=(e,n,t)=>Dn(e,typeof n!="symbol"?n+"":n,t);var Y,h,Se,Nn,E,Re,Me,Ee,le,J,F,Pe,ue,de,pe,Ln,q={},K=[],$n=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,G=Array.isArray;function M(e,n){for(var t in n)e[t]=n[t];return e}function me(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Fn(e,n,t){var o,i,r,a={};for(r in n)r=="key"?o=n[r]:r=="ref"?i=n[r]:a[r]=n[r];if(arguments.length>2&&(a.children=arguments.length>3?Y.call(arguments,2):t),typeof e=="function"&&e.defaultProps!=null)for(r in e.defaultProps)a[r]===void 0&&(a[r]=e.defaultProps[r]);return V(e,a,o,i,null)}function V(e,n,t,o,i){var r={type:e,props:n,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++Se,__i:-1,__u:0};return i==null&&h.vnode!=null&&h.vnode(r),r}function P(e){return e.children}function B(e,n){this.props=e,this.context=n}function N(e,n){if(n==null)return e.__?N(e.__,e.__i+1):null;for(var t;n<e.__k.length;n++)if((t=e.__k[n])!=null&&t.__e!=null)return t.__e;return typeof e.type=="function"?N(e):null}function Hn(e){if(e.__P&&e.__d){var n=e.__v,t=n.__e,o=[],i=[],r=M({},n);r.__v=n.__v+1,h.vnode&&h.vnode(r),fe(e.__P,r,n,e.__n,e.__P.namespaceURI,32&n.__u?[t]:null,o,t??N(n),!!(32&n.__u),i),r.__v=n.__v,r.__.__k[r.__i]=r,Le(o,r,i),n.__e=n.__=null,r.__e!=t&&je(r)}}function je(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(n){if(n!=null&&n.__e!=null)return e.__e=e.__c.base=n.__e}),je(e)}function Ae(e){(!e.__d&&(e.__d=!0)&&E.push(e)&&!X.__r++||Re!=h.debounceRendering)&&((Re=h.debounceRendering)||Me)(X)}function X(){try{for(var e,n=1;E.length;)E.length>n&&E.sort(Ee),e=E.shift(),n=E.length,Hn(e)}finally{E.length=X.__r=0}}function Ie(e,n,t,o,i,r,a,d,u,l,p){var f,s,m,y,A,k,_,g=o&&o.__k||K,R=n.length;for(u=On(t,n,g,u,R),f=0;f<R;f++)(m=t.__k[f])!=null&&(s=m.__i!=-1&&g[m.__i]||q,m.__i=f,k=fe(e,m,s,i,r,a,d,u,l,p),y=m.__e,m.ref&&s.ref!=m.ref&&(s.ref&&_e(s.ref,null,m),p.push(m.ref,m.__c||y,m)),A==null&&y!=null&&(A=y),(_=!!(4&m.__u))||s.__k===m.__k?(u=De(m,u,e,_),_&&s.__e&&(s.__e=null)):typeof m.type=="function"&&k!==void 0?u=k:y&&(u=y.nextSibling),m.__u&=-7);return t.__e=A,u}function On(e,n,t,o,i){var r,a,d,u,l,p=t.length,f=p,s=0;for(e.__k=new Array(i),r=0;r<i;r++)(a=n[r])!=null&&typeof a!="boolean"&&typeof a!="function"?(typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?a=e.__k[r]=V(null,a,null,null,null):G(a)?a=e.__k[r]=V(P,{children:a},null,null,null):a.constructor===void 0&&a.__b>0?a=e.__k[r]=V(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):e.__k[r]=a,u=r+s,a.__=e,a.__b=e.__b+1,d=null,(l=a.__i=zn(a,t,u,f))!=-1&&(f--,(d=t[l])&&(d.__u|=2)),d==null||d.__v==null?(l==-1&&(i>p?s--:i<p&&s++),typeof a.type!="function"&&(a.__u|=4)):l!=u&&(l==u-1?s--:l==u+1?s++:(l>u?s--:s++,a.__u|=4))):e.__k[r]=null;if(f)for(r=0;r<p;r++)(d=t[r])!=null&&(2&d.__u)==0&&(d.__e==o&&(o=N(d)),Fe(d,d));return o}function De(e,n,t,o){var i,r;if(typeof e.type=="function"){for(i=e.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=e,n=De(i[r],n,t,o));return n}e.__e!=n&&(o&&(n&&e.type&&!n.parentNode&&(n=N(e)),t.insertBefore(e.__e,n||null)),n=e.__e);do n=n&&n.nextSibling;while(n!=null&&n.nodeType==8);return n}function zn(e,n,t,o){var i,r,a,d=e.key,u=e.type,l=n[t],p=l!=null&&(2&l.__u)==0;if(l===null&&d==null||p&&d==l.key&&u==l.type)return t;if(o>(p?1:0)){for(i=t-1,r=t+1;i>=0||r<n.length;)if((l=n[a=i>=0?i--:r++])!=null&&(2&l.__u)==0&&d==l.key&&u==l.type)return a}return-1}function Ce(e,n,t){n[0]=="-"?e.setProperty(n,t??""):e[n]=t==null?"":typeof t!="number"||$n.test(n)?t:t+"px"}function U(e,n,t,o,i){var r,a;e:if(n=="style")if(typeof t=="string")e.style.cssText=t;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(n in o)t&&n in t||Ce(e.style,n,"");if(t)for(n in t)o&&t[n]==o[n]||Ce(e.style,n,t[n])}else if(n[0]=="o"&&n[1]=="n")r=n!=(n=n.replace(Pe,"$1")),a=n.toLowerCase(),n=a in e||n=="onFocusOut"||n=="onFocusIn"?a.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+r]=t,t?o?t[F]=o[F]:(t[F]=ue,e.addEventListener(n,r?pe:de,r)):e.removeEventListener(n,r?pe:de,r);else{if(i=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=t??"";break e}catch{}typeof t=="function"||(t==null||t===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&t==1?"":t))}}function Te(e){return function(n){if(this.l){var t=this.l[n.type+e];if(n[J]==null)n[J]=ue++;else if(n[J]<t[F])return;return t(h.event?h.event(n):n)}}}function fe(e,n,t,o,i,r,a,d,u,l){var p,f,s,m,y,A,k,_,g,R,L,I,$,we,W,ce,T=n.type;if(n.constructor!==void 0)return null;128&t.__u&&(u=!!(32&t.__u),r=[d=n.__e=t.__e]),(p=h.__b)&&p(n);e:if(typeof T=="function"){f=a.length;try{if(g=n.props,R=T.prototype&&T.prototype.render,L=(p=T.contextType)&&o[p.__c],I=p?L?L.props.value:p.__:o,t.__c?_=(s=n.__c=t.__c).__=s.__E:(R?n.__c=s=new T(g,I):(n.__c=s=new B(g,I),s.constructor=T,s.render=Un),L&&L.sub(s),s.state||(s.state={}),s.__n=o,m=s.__d=!0,s.__h=[],s._sb=[]),R&&s.__s==null&&(s.__s=s.state),R&&T.getDerivedStateFromProps!=null&&(s.__s==s.state&&(s.__s=M({},s.__s)),M(s.__s,T.getDerivedStateFromProps(g,s.__s))),y=s.props,A=s.state,s.__v=n,m)R&&T.getDerivedStateFromProps==null&&s.componentWillMount!=null&&s.componentWillMount(),R&&s.componentDidMount!=null&&s.__h.push(s.componentDidMount);else{if(R&&T.getDerivedStateFromProps==null&&g!==y&&s.componentWillReceiveProps!=null&&s.componentWillReceiveProps(g,I),n.__v==t.__v||!s.__e&&s.shouldComponentUpdate!=null&&s.shouldComponentUpdate(g,s.__s,I)===!1){n.__v!=t.__v&&(s.props=g,s.state=s.__s,s.__d=!1),n.__e=t.__e,n.__k=t.__k,n.__k.some(function(D){D&&(D.__=n)}),K.push.apply(s.__h,s._sb),s._sb=[],s.__h.length&&a.push(s);break e}s.componentWillUpdate!=null&&s.componentWillUpdate(g,s.__s,I),R&&s.componentDidUpdate!=null&&s.__h.push(function(){s.componentDidUpdate(y,A,k)})}if(s.context=I,s.props=g,s.__P=e,s.__e=!1,$=h.__r,we=0,R)s.state=s.__s,s.__d=!1,$&&$(n),p=s.render(s.props,s.state,s.context),K.push.apply(s.__h,s._sb),s._sb=[];else do s.__d=!1,$&&$(n),p=s.render(s.props,s.state,s.context),s.state=s.__s;while(s.__d&&++we<25);s.state=s.__s,s.getChildContext!=null&&(o=M(M({},o),s.getChildContext())),R&&!m&&s.getSnapshotBeforeUpdate!=null&&(k=s.getSnapshotBeforeUpdate(y,A)),W=p!=null&&p.type===P&&p.key==null?$e(p.props.children):p,d=Ie(e,G(W)?W:[W],n,t,o,i,r,a,d,u,l),s.base=n.__e,n.__u&=-161,s.__h.length&&a.push(s),_&&(s.__E=s.__=null)}catch(D){if(a.length=f,n.__v=null,u||r!=null){if(D.then){for(n.__u|=u?160:128;d&&d.nodeType==8&&d.nextSibling;)d=d.nextSibling;r!=null&&(r[r.indexOf(d)]=null),n.__e=d}else if(r!=null)for(ce=r.length;ce--;)me(r[ce])}else n.__e=t.__e;n.__k==null&&(n.__k=t.__k||[]),D.then||Ne(n),h.__e(D,n,t)}}else r==null&&n.__v==t.__v?(n.__k=t.__k,n.__e=t.__e):d=n.__e=Wn(t.__e,n,t,o,i,r,a,u,l);return(p=h.diffed)&&p(n),128&n.__u?void 0:d}function Ne(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(Ne))}function Le(e,n,t){for(var o=0;o<t.length;o++)_e(t[o],t[++o],t[++o]);h.__c&&h.__c(n,e),e.some(function(i){try{e=i.__h,i.__h=[],e.some(function(r){r.call(i)})}catch(r){h.__e(r,i.__v)}})}function $e(e){return typeof e!="object"||e==null||e.__b>0?e:G(e)?e.map($e):e.constructor!==void 0?null:M({},e)}function Wn(e,n,t,o,i,r,a,d,u){var l,p,f,s,m,y,A,k=t.props||q,_=n.props,g=n.type;if(g=="svg"?i="http://www.w3.org/2000/svg":g=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),r!=null){for(l=0;l<r.length;l++)if((m=r[l])&&"setAttribute"in m==!!g&&(g?m.localName==g:m.nodeType==3)){e=m,r[l]=null;break}}if(e==null){if(g==null)return document.createTextNode(_);e=document.createElementNS(i,g,_.is&&_),d&&(h.__m&&h.__m(n,r),d=!1),r=null}if(g==null)k===_||d&&e.data==_||(e.data=_);else{if(r=g=="textarea"&&_.defaultValue!=null?null:r&&Y.call(e.childNodes),!d&&r!=null)for(k={},l=0;l<e.attributes.length;l++)k[(m=e.attributes[l]).name]=m.value;for(l in k)m=k[l],l=="dangerouslySetInnerHTML"?f=m:l=="children"||l in _||l=="value"&&"defaultValue"in _||l=="checked"&&"defaultChecked"in _||U(e,l,null,m,i);for(l in _)m=_[l],l=="children"?s=m:l=="dangerouslySetInnerHTML"?p=m:l=="value"?y=m:l=="checked"?A=m:d&&typeof m!="function"||k[l]===m||U(e,l,m,k[l],i);if(p)d||f&&(p.__html==f.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),n.__k=[];else if(f&&(e.innerHTML=""),Ie(n.type=="template"?e.content:e,G(s)?s:[s],n,t,o,g=="foreignObject"?"http://www.w3.org/1999/xhtml":i,r,a,r?r[0]:t.__k&&N(t,0),d,u),r!=null)for(l=r.length;l--;)me(r[l]);d&&g!="textarea"||(l="value",g=="progress"&&y==null?e.removeAttribute("value"):y!=null&&(y!==e[l]||g=="progress"&&!y||g=="option"&&y!=k[l])&&U(e,l,y,k[l],i),l="checked",A!=null&&A!=e[l]&&U(e,l,A,k[l],i))}return e}function _e(e,n,t){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&n==null||(e.__u=e(n))}else e.current=n}catch(i){h.__e(i,t)}}function Fe(e,n,t){var o,i;if(h.unmount&&h.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||_e(o,null,n)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(r){h.__e(r,n)}o.base=o.__P=o.__n=null}if(o=e.__k)for(i=0;i<o.length;i++)o[i]&&Fe(o[i],n,t||typeof e.type!="function");t||me(e.__e),e.__c=e.__=e.__e=void 0}function Un(e,n,t){return this.constructor(e,t)}function He(e,n,t){var o,i,r,a;n==document&&(n=document.documentElement),h.__&&h.__(e,n),i=(o=typeof t=="function")?null:t&&t.__k||n.__k,r=[],a=[],fe(n,e=(!o&&t||n).__k=Fn(P,null,[e]),i||q,q,n.namespaceURI,!o&&t?[t]:i?null:n.firstChild?Y.call(n.childNodes):null,r,!o&&t?t:i?i.__e:n.firstChild,o,a),Le(r,e,a),e.props.children=null}Y=K.slice,h={__e:function(e,n,t,o){for(var i,r,a;n=n.__;)if((i=n.__c)&&!i.__)try{if((r=i.constructor)&&r.getDerivedStateFromError!=null&&(i.setState(r.getDerivedStateFromError(e)),a=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,o||{}),a=i.__d),a)return i.__E=i}catch(d){e=d}throw e}},Se=0,Nn=function(e){return e!=null&&e.constructor===void 0},B.prototype.setState=function(e,n){var t;t=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=M({},this.state),typeof e=="function"&&(e=e(M({},t),this.props)),e&&M(t,e),e!=null&&this.__v&&(n&&this._sb.push(n),Ae(this))},B.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ae(this))},B.prototype.render=P,E=[],Me=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ee=function(e,n){return e.__v.__b-n.__v.__b},X.__r=0,le=Math.random().toString(8),J="__d"+le,F="__a"+le,Pe=/(PointerCapture)$|Capture$/i,ue=0,de=Te(!1),pe=Te(!0),Ln=0;document.head.appendChild(Object.assign(document.createElement("style"),{textContent:`:root {
|
|
2
2
|
--bg: #1a1a2e;
|
|
3
3
|
--surface: #16213e;
|
|
4
4
|
--border: #0f3460;
|
|
@@ -562,4 +562,4 @@ body {
|
|
|
562
562
|
background: var(--accent);
|
|
563
563
|
color: var(--bg);
|
|
564
564
|
}
|
|
565
|
-
`}));var H,b,_e,He,Z=0,qe=[],x=h,ze=x.__b,We=x.__r,Ue=x.diffed,Je=x.__c,Oe=x.unmount,Ve=x.__;function he(e,n){x.__h&&x.__h(b,e,Z||n),Z=0;var t=b.__H||(b.__H={__:[],__h:[]});return e>=t.__.length&&t.__.push({}),t.__[e]}function w(e){return Z=1,Jn(Qe,e)}function Jn(e,n,t){var o=he(H++,2);if(o.t=e,!o.__c&&(o.__=[t?t(n):Qe(void 0,n),function(d){var u=o.__N?o.__N[0]:o.__[0],l=o.t(u,d);u!==l&&(o.__N=[l,o.__[1]],o.__c.setState({}))}],o.__c=b,!b.__f)){var i=function(d,u,l){if(!o.__c.__H)return!0;var p=!1,f=o.__c.props!==d;if(o.__c.__H.__.some(function(m){if(m.__N){p=!0;var y=m.__[0];m.__=m.__N,m.__N=void 0,y!==m.__[0]&&(f=!0)}}),r){var s=r.call(this,d,u,l);return p?s||f:s}return!p||f};b.__f=!0;var r=b.shouldComponentUpdate,a=b.componentWillUpdate;b.componentWillUpdate=function(d,u,l){if(this.__e){var p=r;r=void 0,i(d,u,l),r=p}a&&a.call(this,d,u,l)},b.shouldComponentUpdate=i}return o.__N||o.__}function Ke(e,n){var t=he(H++,3);!x.__s&&Ge(t.__H,n)&&(t.__=e,t.u=n,b.__H.__h.push(t))}function Xe(e){return Z=5,On(function(){return{current:e}},[])}function On(e,n){var t=he(H++,7);return Ge(t.__H,n)&&(t.__=e(),t.__H=n,t.__h=e),t.__}function Vn(){for(var e;e=qe.shift();){var n=e.__H;if(e.__P&&n)try{n.__h.some(Y),n.__h.some(ge),n.__h=[]}catch(t){n.__h=[],x.__e(t,e.__v)}}}x.__b=function(e){b=null,ze&&ze(e)},x.__=function(e,n){e&&n.__k&&n.__k.__m&&(e.__m=n.__k.__m),Ve&&Ve(e,n)},x.__r=function(e){We&&We(e),H=0;var n=(b=e.__c).__H;n&&(_e===b?(n.__h=[],b.__h=[],n.__.some(function(t){t.__N&&(t.__=t.__N),t.u=t.__N=void 0})):(n.__h.some(Y),n.__h.some(ge),n.__h=[],H=0)),_e=b},x.diffed=function(e){Ue&&Ue(e);var n=e.__c;n&&n.__H&&(n.__H.__h.length&&(qe.push(n)!==1&&He===x.requestAnimationFrame||((He=x.requestAnimationFrame)||Bn)(Vn)),n.__H.__.some(function(t){t.u&&(t.__H=t.u,t.u=void 0)})),_e=b=null},x.__c=function(e,n){n.some(function(t){try{t.__h.some(Y),t.__h=t.__h.filter(function(o){return!o.__||ge(o)})}catch(o){n.some(function(i){i.__h&&(i.__h=[])}),n=[],x.__e(o,t.__v)}}),Je&&Je(e,n)},x.unmount=function(e){Oe&&Oe(e);var n,t=e.__c;t&&t.__H&&(t.__H.__.some(function(o){try{Y(o)}catch(i){n=i}}),t.__H=void 0,n&&x.__e(n,t.__v))};var Be=typeof requestAnimationFrame=="function";function Bn(e){var n,t=function(){clearTimeout(o),Be&&cancelAnimationFrame(n),setTimeout(e)},o=setTimeout(t,35);Be&&(n=requestAnimationFrame(t))}function Y(e){var n=b,t=e.__c;typeof t=="function"&&(e.__c=void 0,t()),b=n}function ge(e){var n=b;e.__c=e.__(),b=n}function Ge(e,n){return!e||e.length!==n.length||n.some(function(t,o){return t!==e[o]})}function Qe(e,n){return typeof n=="function"?n(e):n}function Ye(e,n,t){let o=e.querySelector(n);if(!o)throw new Error(`Required element not found: ${n}`);if(t&&o.tagName.toLowerCase()!==t)throw new Error(`Element ${n} must be <${t}>, got <${o.tagName.toLowerCase()}>`);return o}function ve(e){return e.slice(11,19)}function S(e){let n=e.target;if(n instanceof HTMLInputElement||n instanceof HTMLSelectElement)return n;throw new Error("Event target is not an input element")}function Ze(e){if(e.kind!=="action")return null;let n=e.action;return n.action==="join_room"?{kind:"join_room",room:n.room}:n.action==="leave_room"?{kind:"leave_room"}:null}function ee(e,n,t){let o=e.trim();return o.length===0?{kind:"ignored"}:o.startsWith("/")?qn(o,n):n?{kind:"action",action:{action:"send",target:n,content:o}}:t?{kind:"action",action:{action:"dm",target:t,content:o}}:{kind:"local",result:{type:"error",text:"Join a room or select an agent first"}}}function qn(e,n){let t=e.slice(1).split(/\s+/),o=(t[0]??"").toLowerCase();switch(o){case"join":return t[1]?{kind:"action",action:{action:"join_room",room:t[1]}}:{kind:"local",result:{type:"error",text:"Usage: /join <room>"}};case"leave":return{kind:"action",action:{action:"leave_room",room:t[1]??n??""}};case"rooms":return{kind:"action",action:{action:"list_rooms"}};case"agents":return{kind:"action",action:{action:"list_agents"}};case"dm":return!t[1]||!t[2]?{kind:"local",result:{type:"error",text:"Usage: /dm <agent> <message>"}}:{kind:"action",action:{action:"dm",target:t[1],content:t.slice(2).join(" ")}};case"create":return t[1]?{kind:"action",action:{action:"create_room",name:t[1],type:"public"}}:{kind:"local",result:{type:"error",text:"Usage: /create <name>"}};case"destroy":return t[1]?{kind:"action",action:{action:"destroy_room",room:t[1]}}:{kind:"local",result:{type:"error",text:"Usage: /destroy <room>"}};case"rename":return!t[1]||!t[2]?{kind:"local",result:{type:"error",text:"Usage: /rename <agent> <new-name>"}}:{kind:"action",action:{action:"rename_agent",agent:t[1],name:t.slice(2).join(" ")}};case"help":return{kind:"local",result:{type:"help",text:"Commands: /join, /leave, /rooms, /agents, /dm, /create, /destroy, /rename, /help"}};default:return{kind:"local",result:{type:"unknown",text:`Unknown command: /${o}`}}}}var Kn=0;function c(e,n,t,o,i,r){n||(n={});var a,d,u=n;if("ref"in u)for(d in u={},n)d=="ref"?a=n[d]:u[d]=n[d];var l={type:e,props:u,key:t,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Kn,__i:-1,__u:0,__source:i,__self:r};if(typeof e=="function"&&(a=e.defaultProps))for(d in a)u[d]===void 0&&(u[d]=a[d]);return h.vnode&&h.vnode(l),l}function en({message:e}){switch(e.type){case"chat":return c("div",{class:"msg",children:[c("span",{class:"sender",children:e.sender}),c("span",{class:"time",children:ve(e.timestamp)}),":"," ",e.content]});case"dm":return c("div",{class:"msg dm",children:[c("span",{class:"dm-badge",children:"DM"})," ",c("span",{class:"sender",children:e.sender}),c("span",{class:"time",children:ve(e.timestamp)}),":"," ",e.content]});case"system":return c("div",{class:"msg system",children:e.text});case"status":return c("div",{class:"msg status",children:e.text})}}function nn({messages:e}){let n=Xe(null);return Ke(()=>{n.current&&(n.current.scrollTop=n.current.scrollHeight)},[e.length]),c("div",{id:"messages",ref:n,children:e.map((t,o)=>c(en,{message:t},o))})}function tn({messages:e,currentRoom:n,dmTarget:t,connected:o,onSendAction:i,onLeaveRoom:r,onConnectToMesh:a}){let[d,u]=w(""),l=n??(t?`DM with ${t}`:"Select a room"),p=()=>{let s=d.trim();if(!s)return;switch(ee(s,n,t).kind){case"action":i(s);break;case"local":i(s);break;case"ignored":break}u("")},f=s=>{s.key==="Enter"&&p()};return c("div",{id:"main",children:[c("div",{id:"header",children:[l,n&&c("button",{class:"leave-btn",onClick:r,children:"Leave"})]}),c(nn,{messages:e}),!o&&e.length===0&&c("div",{class:"connect-prompt",children:[c("p",{children:"Connect to a local mesh to discover agents and rooms."}),c("button",{class:"connect-btn",onClick:a,children:"Connect to local mesh"})]}),c("div",{id:"input-bar",children:[c("input",{id:"input",type:"text",placeholder:"Type a message or /command...",autocomplete:"off",value:d,onInput:s=>{u(S(s).value)},onKeyDown:f}),c("button",{id:"send-btn",onClick:p,children:"Send"})]})]})}function rn(e,n,t){let[o,...i]=n;if(o===void 0){e.agents.push(t);return}let r=e.children.get(o);r||(r={children:new Map,agents:[]},e.children.set(o,r)),rn(r,i,t)}function sn(e,n){let[t,...o]=n;if(t===void 0)return;let i=e.children.get(t);i||(i={children:new Map,agents:[]},e.children.set(t,i)),sn(i,o)}var an="Project room for ";function on(e){return e.description.startsWith(an)}function Xn(e){return e.description.slice(an.length)}function cn(e,n){let t=n.filter(p=>!on(p)),o=new Map;for(let p of n)on(p)&&o.set(Xn(p),p);let i=new Set;for(let p of e)i.add(p.cwd);for(let p of o.keys())i.add(p);if(i.size===0)return{roots:[],manualRooms:t};let r=Array.from(i),a=Qn(r),d=a==="/"?[]:ne(a),u={children:new Map,agents:[]};for(let p of e){let f=ne(p.cwd).slice(d.length);rn(u,f,p)}for(let p of o.keys()){let f=ne(p).slice(d.length);sn(u,f)}let l=ln(u,a,"",o);return{roots:dn(l),manualRooms:t}}function ne(e){return e.split("/").filter(n=>n.length>0)}function Gn(...e){return"/"+e.join("/")}function Qn(e){if(e.length===0)return"/";let n=e.map(ne),t=Math.min(...n.map(i=>i.length)),o=0;for(let i=0;i<t;i++){let r=n[0]?.[i];if(r===void 0)break;if(n.every(a=>a[i]===r))o++;else break}return o>0&&o--,o===0?"/":Gn(...n[0]?.slice(0,o)??[])}function ln(e,n,t,o){let i=[];for(let[r,a]of e.children){let d=t===""&&n==="/"?"/"+r:t===""?n+"/"+r:t+"/"+r,u=ln(a,n,d,o),l=o.get(d);(u.length>0||l)&&i.push({type:"directory",name:r,path:d,...l?{roomId:l.id}:{},children:dn(u)})}for(let r of e.agents)i.push({type:"agent",name:r.name,agentId:r.id,status:r.status,cwd:r.cwd});return i}function dn(e){return[...e].sort((n,t)=>n.type!==t.type?n.type==="directory"?-1:1:n.name.localeCompare(t.name))}function pn({visible:e,onSubmit:n,onCancel:t}){let[o,i]=w(""),[r,a]=w("public"),[d,u]=w("");return e?c("div",{id:"create-room-form",class:"visible",children:c("form",{class:"create-room-form",onSubmit:p=>{p.preventDefault(),o.trim()&&(n(o.trim(),r,d.trim()),i(""),a("public"),u(""))},children:[c("label",{children:["Room name",c("input",{type:"text",name:"room-name",required:!0,placeholder:"e.g. project-alpha",value:o,onInput:p=>{i(S(p).value)}})]}),c("label",{children:["Type",c("select",{name:"room-type",value:r,onChange:p=>{let f=S(p).value;(f==="public"||f==="private"||f==="secret")&&a(f)},children:[c("option",{value:"public",children:"Public"}),c("option",{value:"private",children:"Private"}),c("option",{value:"secret",children:"Secret"})]})]}),c("label",{children:["Description (optional)",c("input",{type:"text",name:"room-description",placeholder:"What is this room about?",value:d,onInput:p=>{u(S(p).value)}})]}),c("div",{class:"create-room-btns",children:[c("button",{type:"submit",class:"create-room-submit",children:"Create"}),c("button",{type:"button",class:"create-room-cancel",onClick:t,children:"Cancel"})]})]})}):null}function un({visible:e,onSubmit:n,onCancel:t}){let[o,i]=w("");if(!e)return c("div",{id:"join-form",class:"join-form hidden"});let r=()=>{let d=o.trim();d&&(n(d),i(""))};return c("div",{id:"join-form",class:"join-form",children:[c("input",{class:"join-input",type:"text",placeholder:"Room name...",autocomplete:"off",value:o,onInput:d=>{i(S(d).value)},onKeyDown:d=>{d.key==="Enter"&&r(),d.key==="Escape"&&t()}}),c("button",{class:"join-submit",onClick:r,children:"Join"})]})}function mn({tree:e,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i}){return c("div",{id:"room-list",class:"project-tree",children:[e.roots.map(r=>c(fn,{node:r,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i})),e.manualRooms.length>0&&c("div",{class:"tree-section",children:[c("h3",{class:"tree-section-heading",children:"Rooms"}),e.manualRooms.map(r=>c("div",{class:"room-item"+(i===r.id?" active":""),onClick:()=>{n(r.id)},children:[c("span",{children:r.name}),c("span",{children:["(",String(r.members.length),")"]})]},r.id))]})]})}function fn({node:e,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i}){return e.type==="agent"?c(Zn,{node:e,onSelectAgent:t,onRenameAgent:o}):c(Yn,{node:e,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i})}function Yn({node:e,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i}){let[r,a]=w(!0),d=e.roomId!==void 0,u=i===e.roomId;return c("div",{class:"tree-directory",children:[c("div",{class:"tree-directory-name",children:[c("span",{class:"tree-folder-toggle",title:"Expand/collapse",onClick:l=>{l.stopPropagation(),a(!r)},children:c("span",{class:"tree-folder-icon",children:r?"\u{1F4C2}":"\u{1F4C1}"})}),c("span",{class:`tree-directory-label${u?" active":""}${d?" clickable":""}`,onClick:()=>{e.roomId&&n(e.roomId)},children:e.name})]}),r&&c("div",{class:"tree-children",children:e.children.map(l=>c(fn,{node:l,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i},l.type==="agent"?l.agentId:l.path))})]})}function Zn({node:e,onSelectAgent:n,onRenameAgent:t}){let[o,i]=w(!1),[r,a]=w(""),d=()=>{a(e.name),i(!0)},u=()=>{let p=r.trim();p&&p!==e.name&&t(e.agentId,p),i(!1)},l=p=>{p.key==="Enter"&&u(),p.key==="Escape"&&i(!1)};return o?c("div",{class:"tree-agent agent-item editing",children:[c("span",{class:`status-dot ${e.status}`}),c("input",{class:"agent-rename-input",type:"text",value:r,autofocus:!0,onInput:p=>{a(S(p).value)},onKeyDown:l,onBlur:u})]}):c("div",{class:"tree-agent agent-item",onClick:()=>{n(e.agentId)},onDblClick:d,children:[c("span",{class:`status-dot ${e.status}`}),c("span",{children:e.name})]})}function _n({rooms:e,agents:n,currentRoom:t,collapsed:o,onJoinRoom:i,onSelectAgent:r,onRenameAgent:a,onCreateRoom:d,onJoinRoomInput:u}){let[l,p]=w(!1),[f,s]=w(!1),[m,y]=w(!1),C=m?n:n.filter(_=>_.status!=="offline"),k=cn(C,e);return c("div",{id:"sidebar",class:o?"sidebar-collapsed":"",children:[c("h2",{children:["Agent Comms",c("button",{id:"toggle-offline-btn",class:`icon-btn${m?" active":""}`,title:`${m?"Hide":"Show"} offline agents`,onClick:()=>{y(_=>!_)},children:m?"\u25C9":"\u25CE"})]}),c("div",{class:"sidebar-section",children:[c(mn,{tree:k,onJoinRoom:i,onSelectAgent:r,onRenameAgent:a,currentRoom:t}),c("div",{class:"section-heading",children:[c("h3",{children:"Create"}),c("button",{id:"create-room-toggle",class:"icon-btn",title:"Create room",onClick:()=>{p(_=>!_)},children:"+"})]}),c(pn,{visible:l,onSubmit:(_,g,R)=>{d(_,g,R),p(!1)},onCancel:()=>{p(!1)}}),c("button",{id:"join-toggle-btn",class:"join-toggle-btn",onClick:()=>{s(_=>!_)},children:"+ Join Room"}),c(un,{visible:f,onSubmit:_=>{u(_),s(!1)},onCancel:()=>{s(!1)}})]})]})}function gn(e){let[n,t]=w(!1);return c(P,{children:[c("button",{id:"sidebar-toggle",class:"sidebar-toggle-btn",title:n?"Expand sidebar":"Collapse sidebar",onClick:()=>{t(o=>!o)},children:n?"\u2630":"\u2715"}),c(_n,{rooms:e.rooms,agents:e.agents,currentRoom:e.currentRoom,collapsed:n,onJoinRoom:e.onJoinRoom,onSelectAgent:e.onSelectAgent,onRenameAgent:e.onRenameAgent,onCreateRoom:e.onCreateRoom,onJoinRoomInput:e.onJoinRoomInput}),c(tn,{messages:e.messages,currentRoom:e.currentRoom,dmTarget:e.dmTarget,connected:e.connected,onSendAction:e.onSendAction,onLeaveRoom:e.onLeaveRoom,onConnectToMesh:e.onConnectToMesh})]})}function et(e){return typeof e=="object"&&e!==null}function nt(e){return Array.isArray(e)}function tt(e){return Array.isArray(e)}function ot(e){return Array.isArray(e)}function rt(e){return et(e)&&typeof e.type=="string"}async function hn(){let n=await(await fetch("/api/agents")).json();if(!nt(n))throw new Error("Invalid agents response");return n}async function vn(){let n=await(await fetch("/api/rooms")).json();if(!tt(n))throw new Error("Invalid rooms response");return n}async function yn(e,n){let t=n?`/api/rooms/${encodeURIComponent(e)}/messages?since=${encodeURIComponent(n)}`:`/api/rooms/${encodeURIComponent(e)}/messages`,i=await(await fetch(t)).json();if(!ot(i))throw new Error("Invalid messages response");return i}var te=class{constructor(n){A(this,"ws");A(this,"reconnectTimer");A(this,"handler");this.handler=n}connect(){let n=location.protocol==="https:"?"wss:":"ws:",t=new WebSocket(`${n}//${location.host}`);this.ws=t,t.onopen=()=>{this.handler.onOpen?.()},t.onclose=()=>{this.handler.onClose?.(),this.scheduleReconnect()},t.onerror=()=>{},t.onmessage=o=>{let i=JSON.parse(typeof o.data=="string"?o.data:String(o.data));rt(i)&&this.handler.onFrame?.(i)}}sendAction(n){let t=this.ws;t?.readyState===WebSocket.OPEN&&t.send(JSON.stringify(n))}disconnect(){this.reconnectTimer!==void 0&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=void 0);let n=this.ws;n&&n.close(),this.ws=void 0}scheduleReconnect(){this.reconnectTimer=setTimeout(()=>{this.connect()},3e3)}};var bn={currentRoom:void 0,dmTarget:void 0,agents:[],rooms:[],messages:[],connected:!1},oe=class{constructor(){A(this,"state",{...bn});A(this,"listeners",new Set)}subscribe(n){return this.listeners.add(n),()=>{this.listeners.delete(n)}}get(){return this.state}setCurrentRoom(n){this.state={...this.state,currentRoom:n},this.notify()}setDmTarget(n){this.state={...this.state,dmTarget:n},this.notify()}setAgents(n){this.state={...this.state,agents:n},this.notify()}setRooms(n){this.state={...this.state,rooms:n},this.notify()}setConnected(n){this.state={...this.state,connected:n},this.notify()}addMessage(n){this.state={...this.state,messages:[...this.state.messages,n]},this.notify()}setMessages(n){this.state={...this.state,messages:n},this.notify()}clearMessages(){this.state={...this.state,messages:[]},this.notify()}applyState(n,t){this.state={...this.state,agents:n,rooms:t},this.notify()}reset(){this.state={...bn,messages:[]},this.notify()}notify(){let n=this.state;for(let t of this.listeners)t(n)}};var re=class{constructor(){A(this,"worker");A(this,"state",{agents:[],rooms:[],connected:!1});A(this,"listeners",new Set);A(this,"actionCounter",0);A(this,"pendingActions",new Map)}connect(){if(this.worker)return;let n=new SharedWorker("./mesh-worker.js");if(this.worker=n,n.port.onmessage=i=>{let r=JSON.parse(typeof i.data=="string"?i.data:String(i.data));if(it(r))switch(r.type){case"state":{if(!("state"in r)||typeof r.state!="object"||r.state===null||!("agents"in r.state)||!("rooms"in r.state))break;let a=r.state,d=typeof a.agents=="object"&&a.agents!==null?Object.values(a.agents):[],u=typeof a.rooms=="object"&&a.rooms!==null?Object.values(a.rooms):[];this.state={...this.state,agents:d,rooms:u},this.notify();break}case"connected":this.state={...this.state,connected:!0},this.notify();break;case"disconnected":this.state={...this.state,connected:!1},this.notify();break;case"patch":this.postToWorker({type:"getState"});break;case"actionResult":break;case"actionError":break}},n.port.start(),/^(localhost|127\.\d+\.\d+\.\d+)(:\d+)?$/.test(location.host)){let r=`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}/ws/mesh`;this.postToWorker({type:"init",url:r})}else this.probeLocalMesh(19877,10)}get(){return this.state}subscribe(n){return this.listeners.add(n),()=>{this.listeners.delete(n)}}sendAction(n){let t=String(++this.actionCounter);this.postToWorker({type:"action",id:t,action:n})}disconnect(){this.worker&&(this.worker.port.close(),this.worker=void 0),this.pendingActions.clear()}probeLocalMesh(n,t){let o=0,i=r=>{if(o>=t)return;o++;let a=`ws://127.0.0.1:${String(r)}/ws/mesh`;fetch(`http://127.0.0.1:${String(r)}/`,{mode:"no-cors"}).then(()=>{this.postToWorker({type:"init",url:a})}).catch(()=>{i(r+1)})};i(n)}postToWorker(n){this.worker&&this.worker.port.postMessage(JSON.stringify(n))}notify(){let n=this.state;for(let t of this.listeners)t(n)}};function it(e){return typeof e=="object"&&e!==null&&"type"in e}var st=/^(localhost|127\.\d+\.\d+\.\d+)(:\d+)?$/;function xn(e){return st.test(e)}function kn(e){return e.getItem("agent-comms-connected")==="true"}function wn(e,n){switch(e.type){case"room_message":return n===e.message.room?{type:"chat",sender:e.message.from,content:e.message.content,timestamp:e.message.timestamp}:void 0;case"dm":return{type:"dm",sender:e.message.from,content:e.message.content,timestamp:e.message.timestamp};case"member_joined":return{type:"system",text:`${e.agent} joined ${e.room}`};case"member_left":return{type:"system",text:`${e.agent} left ${e.room}`};case"member_status":return{type:"status",text:`${e.agent} is now ${e.status} in ${e.room}`};case"delivery_status":return{type:"status",text:`Message ${e.messageId} ${e.status} by ${e.agent}`};case"room_members":return n===e.room?{type:"system",text:`Members: ${e.members.map(o=>`${o.name} (${o.status})`).join(", ")}`}:void 0;case"room_invite":{let t=e.roomDescription?` \u2014 ${e.roomDescription}`:"";return{type:"system",text:`${e.fromName} invited you to "${e.room}"${t}`}}case"invite_declined":return{type:"system",text:`${e.agentName} declined invite to ${e.room}: "${e.reason}"`};case"name_changed":return{type:"system",text:`${e.oldName} is now known as ${e.newName}`}}}function Rn(e){return{type:"chat",sender:e.from,content:e.content,timestamp:e.timestamp}}var at="Project room for ";function Cn(e){let n=new URLSearchParams(e),t=n.get("room");if(t)return{kind:"room",roomId:t};let o=n.get("dm");if(o)return{kind:"dm",agentId:o};let i=n.get("cwd");if(i)return{kind:"cwd",path:i}}function An(e,n){switch(e.kind){case"room":return n.some(t=>t.id===e.roomId)?{kind:"room",targetId:e.roomId}:void 0;case"dm":return{kind:"dm",targetId:e.agentId};case"cwd":{let t=n.find(o=>o.description===`${at}${e.path}`);return t?{kind:"room",targetId:t.id}:void 0}}}function Tn(e){let n=new URL(location.href);n.searchParams.delete("room"),n.searchParams.delete("dm"),n.searchParams.delete("cwd"),e.currentRoom?n.searchParams.set("room",e.currentRoom):e.dmTarget&&n.searchParams.set("dm",e.dmTarget);let t=n.pathname+n.search+n.hash;history.replaceState(null,"",t)}var z=xn(location.host),ct=Ye(document,"#root"),v=new oe,be=new re;be.subscribe(e=>{e.agents.length>0&&v.setAgents(e.agents),e.rooms.length>0&&v.setRooms(e.rooms),v.setConnected(e.connected)});function E(e){v.addMessage(e)}var ie,xe=new te({onOpen:()=>{v.setConnected(!0),E({type:"system",text:"Connected to mesh"})},onClose:()=>{v.setConnected(!1),E({type:"system",text:"Disconnected \u2014 reconnecting..."})},onFrame:lt});function lt(e){let n=v.get();switch(e.type){case"delivery":{let t=wn(e.event,n.currentRoom);t&&E(t),(e.event.type==="member_joined"||e.event.type==="member_left"||e.event.type==="member_status"||e.event.type==="name_changed")&&ye();break}case"result":if(E({type:"system",text:e.result.content}),!e.result.isError){if(ie?.action==="join_room"&&!v.get().currentRoom){let t=ie.room;v.setDmTarget(void 0),v.setCurrentRoom(t)}ye()}ie=void 0;break;case"error":E({type:"status",text:`Error: ${e.message}`});break;case"state":v.applyState(e.agents,e.rooms);break}}function W(e){ie=e,xe.sendAction(e)}async function ye(){if(!z)return;let[e,n]=await Promise.all([hn(),vn()]);v.setAgents(e),v.setRooms(n)}async function se(e){if(v.setDmTarget(void 0),v.setCurrentRoom(e),v.clearMessages(),W({action:"join_room",room:e}),z){let n=await yn(e);v.setMessages(n.map(Rn))}E({type:"system",text:`Joined ${e}`})}function Mn(e){v.setCurrentRoom(void 0),v.setDmTarget(e),v.clearMessages()}function jn(){let e=v.get().currentRoom;e&&(W({action:"leave_room",room:e}),v.setCurrentRoom(void 0),v.clearMessages(),E({type:"system",text:`Left room "${e}"`}))}function dt(e){let n=v.get(),t=ee(e,n.currentRoom,n.dmTarget),o=Ze(t);if(o)switch(o.kind){case"join_room":se(o.room);return;case"leave_room":jn();return}switch(t.kind){case"action":W(t.action);break;case"local":E({type:"system",text:t.result.text});break;case"ignored":break}}function pt(e,n,t){let o={action:"create_room",name:e,type:n,...t?{description:t}:{}};W(o)}function ut(e){se(e)}function mt(e,n){W({action:"rename_agent",agent:e,name:n})}function Pn(){let e=v.get();Tn({currentRoom:e.currentRoom,dmTarget:e.dmTarget}),Fe(c(gn,{rooms:e.rooms,agents:e.agents,currentRoom:e.currentRoom,dmTarget:e.dmTarget,messages:e.messages,connected:e.connected,onJoinRoom:n=>{se(n)},onSelectAgent:Mn,onRenameAgent:mt,onLeaveRoom:jn,onSendAction:dt,onCreateRoom:pt,onJoinRoomInput:ut,onConnectToMesh:()=>{localStorage.setItem("agent-comms-connected","true"),be.connect(),z&&xe.connect()}}),ct)}v.subscribe(Pn);var Sn=Cn(location.search);Pn();var ft=kn(localStorage);(z||ft)&&(be.connect(),z&&xe.connect());ye().then(()=>{if(!Sn)return;let e=v.get(),n=An(Sn,e.rooms);if(n)switch(n.kind){case"room":se(n.targetId);break;case"dm":Mn(n.targetId);break}});})();
|
|
565
|
+
`}));var H,b,ge,Oe,Z=0,Ke=[],x=h,ze=x.__b,We=x.__r,Ue=x.diffed,Je=x.__c,Ve=x.unmount,Be=x.__;function ve(e,n){x.__h&&x.__h(b,e,Z||n),Z=0;var t=b.__H||(b.__H={__:[],__h:[]});return e>=t.__.length&&t.__.push({}),t.__[e]}function w(e){return Z=1,Jn(Qe,e)}function Jn(e,n,t){var o=ve(H++,2);if(o.t=e,!o.__c&&(o.__=[t?t(n):Qe(void 0,n),function(d){var u=o.__N?o.__N[0]:o.__[0],l=o.t(u,d);u!==l&&(o.__N=[l,o.__[1]],o.__c.setState({}))}],o.__c=b,!b.__f)){var i=function(d,u,l){if(!o.__c.__H)return!0;var p=!1,f=o.__c.props!==d;if(o.__c.__H.__.some(function(m){if(m.__N){p=!0;var y=m.__[0];m.__=m.__N,m.__N=void 0,y!==m.__[0]&&(f=!0)}}),r){var s=r.call(this,d,u,l);return p?s||f:s}return!p||f};b.__f=!0;var r=b.shouldComponentUpdate,a=b.componentWillUpdate;b.componentWillUpdate=function(d,u,l){if(this.__e){var p=r;r=void 0,i(d,u,l),r=p}a&&a.call(this,d,u,l)},b.shouldComponentUpdate=i}return o.__N||o.__}function Xe(e,n){var t=ve(H++,3);!x.__s&&Ge(t.__H,n)&&(t.__=e,t.u=n,b.__H.__h.push(t))}function Ye(e){return Z=5,Vn(function(){return{current:e}},[])}function Vn(e,n){var t=ve(H++,7);return Ge(t.__H,n)&&(t.__=e(),t.__H=n,t.__h=e),t.__}function Bn(){for(var e;e=Ke.shift();){var n=e.__H;if(e.__P&&n)try{n.__h.some(Q),n.__h.some(he),n.__h=[]}catch(t){n.__h=[],x.__e(t,e.__v)}}}x.__b=function(e){b=null,ze&&ze(e)},x.__=function(e,n){e&&n.__k&&n.__k.__m&&(e.__m=n.__k.__m),Be&&Be(e,n)},x.__r=function(e){We&&We(e),H=0;var n=(b=e.__c).__H;n&&(ge===b?(n.__h=[],b.__h=[],n.__.some(function(t){t.__N&&(t.__=t.__N),t.u=t.__N=void 0})):(n.__h.some(Q),n.__h.some(he),n.__h=[],H=0)),ge=b},x.diffed=function(e){Ue&&Ue(e);var n=e.__c;n&&n.__H&&(n.__H.__h.length&&(Ke.push(n)!==1&&Oe===x.requestAnimationFrame||((Oe=x.requestAnimationFrame)||qn)(Bn)),n.__H.__.some(function(t){t.u&&(t.__H=t.u,t.u=void 0)})),ge=b=null},x.__c=function(e,n){n.some(function(t){try{t.__h.some(Q),t.__h=t.__h.filter(function(o){return!o.__||he(o)})}catch(o){n.some(function(i){i.__h&&(i.__h=[])}),n=[],x.__e(o,t.__v)}}),Je&&Je(e,n)},x.unmount=function(e){Ve&&Ve(e);var n,t=e.__c;t&&t.__H&&(t.__H.__.some(function(o){try{Q(o)}catch(i){n=i}}),t.__H=void 0,n&&x.__e(n,t.__v))};var qe=typeof requestAnimationFrame=="function";function qn(e){var n,t=function(){clearTimeout(o),qe&&cancelAnimationFrame(n),setTimeout(e)},o=setTimeout(t,35);qe&&(n=requestAnimationFrame(t))}function Q(e){var n=b,t=e.__c;typeof t=="function"&&(e.__c=void 0,t()),b=n}function he(e){var n=b;e.__c=e.__(),b=n}function Ge(e,n){return!e||e.length!==n.length||n.some(function(t,o){return t!==e[o]})}function Qe(e,n){return typeof n=="function"?n(e):n}function Ze(e,n,t){let o=e.querySelector(n);if(!o)throw new Error(`Required element not found: ${n}`);if(t!==void 0&&o.tagName.toLowerCase()!==t)throw new Error(`Element ${n} must be <${t}>, got <${o.tagName.toLowerCase()}>`);return o}var Kn=11,Xn=19;function ye(e){return e.slice(Kn,Xn)}function S(e){let n=e.target;if(n instanceof HTMLInputElement||n instanceof HTMLSelectElement)return n;throw new Error("Event target is not an input element")}function en(e){if(e.kind!=="action")return null;let n=e.action;return n.action==="join_room"?{kind:"join_room",room:n.room}:n.action==="leave_room"?{kind:"leave_room"}:null}function ee(e,n,t){let o=e.trim();return o.length===0?{kind:"ignored"}:o.startsWith("/")?Yn(o,n):n!==void 0&&n!==""?{kind:"action",action:{action:"send",target:n,content:o}}:t!==void 0&&t!==""?{kind:"action",action:{action:"dm",target:t,content:o}}:{kind:"local",result:{type:"error",text:"Join a room or select an agent first"}}}function Yn(e,n){let t=e.slice(1).split(/\s+/),o=(t[0]??"").toLowerCase();switch(o){case"join":return t[1]===void 0||t[1]===""?{kind:"local",result:{type:"error",text:"Usage: /join <room>"}}:{kind:"action",action:{action:"join_room",room:t[1]}};case"leave":return{kind:"action",action:{action:"leave_room",room:t[1]??n??""}};case"rooms":return{kind:"action",action:{action:"list_rooms"}};case"agents":return{kind:"action",action:{action:"list_agents"}};case"dm":return t[1]===void 0||t[1]===""||t[2]===void 0||t[2]===""?{kind:"local",result:{type:"error",text:"Usage: /dm <agent> <message>"}}:{kind:"action",action:{action:"dm",target:t[1],content:t.slice(2).join(" ")}};case"create":return t[1]===void 0||t[1]===""?{kind:"local",result:{type:"error",text:"Usage: /create <name>"}}:{kind:"action",action:{action:"create_room",name:t[1],type:"public"}};case"destroy":return t[1]===void 0||t[1]===""?{kind:"local",result:{type:"error",text:"Usage: /destroy <room>"}}:{kind:"action",action:{action:"destroy_room",room:t[1]}};case"rename":return t[1]===void 0||t[1]===""||t[2]===void 0||t[2]===""?{kind:"local",result:{type:"error",text:"Usage: /rename <agent> <new-name>"}}:{kind:"action",action:{action:"rename_agent",agent:t[1],name:t.slice(2).join(" ")}};case"help":return{kind:"local",result:{type:"help",text:"Commands: /join, /leave, /rooms, /agents, /dm, /create, /destroy, /rename, /help"}};default:return{kind:"local",result:{type:"unknown",text:`Unknown command: /${o}`}}}}var Gn=0;function c(e,n,t,o,i,r){n||(n={});var a,d,u=n;if("ref"in u)for(d in u={},n)d=="ref"?a=n[d]:u[d]=n[d];var l={type:e,props:u,key:t,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Gn,__i:-1,__u:0,__source:i,__self:r};if(typeof e=="function"&&(a=e.defaultProps))for(d in a)u[d]===void 0&&(u[d]=a[d]);return h.vnode&&h.vnode(l),l}function nn({message:e}){switch(e.type){case"chat":return c("div",{class:"msg",children:[c("span",{class:"sender",children:e.sender}),c("span",{class:"time",children:ye(e.timestamp)}),":"," ",e.content]});case"dm":return c("div",{class:"msg dm",children:[c("span",{class:"dm-badge",children:"DM"})," ",c("span",{class:"sender",children:e.sender}),c("span",{class:"time",children:ye(e.timestamp)}),":"," ",e.content]});case"system":return c("div",{class:"msg system",children:e.text});case"status":return c("div",{class:"msg status",children:e.text})}}function tn({messages:e}){let n=Ye(null);return Xe(()=>{n.current&&(n.current.scrollTop=n.current.scrollHeight)},[e.length]),c("div",{id:"messages",ref:n,children:e.map((t,o)=>c(nn,{message:t},o))})}function on({messages:e,currentRoom:n,dmTarget:t,connected:o,onSendAction:i,onLeaveRoom:r,onConnectToMesh:a}){let[d,u]=w(""),l=n??(t!==void 0?`DM with ${t}`:"Select a room"),p=()=>{let s=d.trim();if(!s)return;switch(ee(s,n,t).kind){case"action":i(s);break;case"local":i(s);break;case"ignored":break}u("")},f=s=>{s.key==="Enter"&&p()};return c("div",{id:"main",children:[c("div",{id:"header",children:[l,n!==void 0&&c("button",{class:"leave-btn",onClick:r,children:"Leave"})]}),c(tn,{messages:e}),!o&&e.length===0&&c("div",{class:"connect-prompt",children:[c("p",{children:"Connect to a local mesh to discover agents and rooms."}),c("button",{class:"connect-btn",onClick:a,children:"Connect to local mesh"})]}),c("div",{id:"input-bar",children:[c("input",{id:"input",type:"text",placeholder:"Type a message or /command...",autocomplete:"off",value:d,onInput:s=>{u(S(s).value)},onKeyDown:f}),c("button",{id:"send-btn",onClick:p,children:"Send"})]})]})}function sn(e,n,t){let[o,...i]=n;if(o===void 0){e.agents.push(t);return}let r=e.children.get(o);r||(r={children:new Map,agents:[]},e.children.set(o,r)),sn(r,i,t)}function an(e,n){let[t,...o]=n;if(t===void 0)return;let i=e.children.get(t);i||(i={children:new Map,agents:[]},e.children.set(t,i)),an(i,o)}var cn="Project room for ";function rn(e){return e.description.startsWith(cn)}function Qn(e){return e.description.slice(cn.length)}function ln(e,n){let t=n.filter(p=>!rn(p)),o=new Map;for(let p of n)rn(p)&&o.set(Qn(p),p);let i=new Set;for(let p of e)i.add(p.cwd);for(let p of o.keys())i.add(p);if(i.size===0)return{roots:[],manualRooms:t};let r=Array.from(i),a=et(r),d=a==="/"?[]:ne(a),u={children:new Map,agents:[]};for(let p of e){let f=ne(p.cwd).slice(d.length);sn(u,f,p)}for(let p of o.keys()){let f=ne(p).slice(d.length);an(u,f)}let l=dn(u,a,"",o);return{roots:pn(l),manualRooms:t}}function ne(e){return e.split("/").filter(n=>n.length>0)}function Zn(...e){return"/"+e.join("/")}function et(e){if(e.length===0)return"/";let n=e.map(ne),t=Math.min(...n.map(i=>i.length)),o=0;for(let i=0;i<t;i++){let r=n[0]?.[i];if(r===void 0)break;if(n.every(a=>a[i]===r))o++;else break}return o>0&&o--,o===0?"/":Zn(...n[0]?.slice(0,o)??[])}function dn(e,n,t,o){let i=[];for(let[r,a]of e.children){let d=t===""&&n==="/"?"/"+r:t===""?n+"/"+r:t+"/"+r,u=dn(a,n,d,o),l=o.get(d);(u.length>0||l)&&i.push({type:"directory",name:r,path:d,...l?{roomId:l.id}:{},children:pn(u)})}for(let r of e.agents)i.push({type:"agent",name:r.name,agentId:r.id,status:r.status,cwd:r.cwd});return i}function pn(e){return[...e].sort((n,t)=>n.type!==t.type?n.type==="directory"?-1:1:n.name.localeCompare(t.name))}function un({visible:e,onSubmit:n,onCancel:t}){let[o,i]=w(""),[r,a]=w("public"),[d,u]=w("");return e?c("div",{id:"create-room-form",class:"visible",children:c("form",{class:"create-room-form",onSubmit:p=>{p.preventDefault(),o.trim()&&(n(o.trim(),r,d.trim()),i(""),a("public"),u(""))},children:[c("label",{children:["Room name",c("input",{type:"text",name:"room-name",required:!0,placeholder:"e.g. project-alpha",value:o,onInput:p=>{i(S(p).value)}})]}),c("label",{children:["Type",c("select",{name:"room-type",value:r,onChange:p=>{let f=S(p).value;(f==="public"||f==="private"||f==="secret")&&a(f)},children:[c("option",{value:"public",children:"Public"}),c("option",{value:"private",children:"Private"}),c("option",{value:"secret",children:"Secret"})]})]}),c("label",{children:["Description (optional)",c("input",{type:"text",name:"room-description",placeholder:"What is this room about?",value:d,onInput:p=>{u(S(p).value)}})]}),c("div",{class:"create-room-btns",children:[c("button",{type:"submit",class:"create-room-submit",children:"Create"}),c("button",{type:"button",class:"create-room-cancel",onClick:t,children:"Cancel"})]})]})}):null}function mn({visible:e,onSubmit:n,onCancel:t}){let[o,i]=w("");if(!e)return c("div",{id:"join-form",class:"join-form hidden"});let r=()=>{let d=o.trim();d&&(n(d),i(""))};return c("div",{id:"join-form",class:"join-form",children:[c("input",{class:"join-input",type:"text",placeholder:"Room name...",autocomplete:"off",value:o,onInput:d=>{i(S(d).value)},onKeyDown:d=>{d.key==="Enter"&&r(),d.key==="Escape"&&t()}}),c("button",{class:"join-submit",onClick:r,children:"Join"})]})}function fn({tree:e,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i}){return c("div",{id:"room-list",class:"project-tree",children:[e.roots.map(r=>c(_n,{node:r,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i})),e.manualRooms.length>0&&c("div",{class:"tree-section",children:[c("h3",{class:"tree-section-heading",children:"Rooms"}),e.manualRooms.map(r=>c("div",{class:"room-item"+(i===r.id?" active":""),onClick:()=>{n(r.id)},children:[c("span",{children:r.name}),c("span",{children:["(",String(r.members.length),")"]})]},r.id))]})]})}function _n({node:e,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i}){return e.type==="agent"?c(tt,{node:e,onSelectAgent:t,onRenameAgent:o}):c(nt,{node:e,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i})}function nt({node:e,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i}){let[r,a]=w(!0),d=e.roomId!==void 0,u=i===e.roomId;return c("div",{class:"tree-directory",children:[c("div",{class:"tree-directory-name",children:[c("span",{class:"tree-folder-toggle",title:"Expand/collapse",onClick:l=>{l.stopPropagation(),a(!r)},children:c("span",{class:"tree-folder-icon",children:r?"\u{1F4C2}":"\u{1F4C1}"})}),c("span",{class:`tree-directory-label${u?" active":""}${d?" clickable":""}`,onClick:()=>{e.roomId!==void 0&&n(e.roomId)},children:e.name})]}),r&&c("div",{class:"tree-children",children:e.children.map(l=>c(_n,{node:l,onJoinRoom:n,onSelectAgent:t,onRenameAgent:o,currentRoom:i},l.type==="agent"?l.agentId:l.path))})]})}function tt({node:e,onSelectAgent:n,onRenameAgent:t}){let[o,i]=w(!1),[r,a]=w(""),d=()=>{a(e.name),i(!0)},u=()=>{let p=r.trim();p&&p!==e.name&&t(e.agentId,p),i(!1)},l=p=>{p.key==="Enter"&&u(),p.key==="Escape"&&i(!1)};return o?c("div",{class:"tree-agent agent-item editing",children:[c("span",{class:`status-dot ${e.status}`}),c("input",{class:"agent-rename-input",type:"text",value:r,autofocus:!0,onInput:p=>{a(S(p).value)},onKeyDown:l,onBlur:u})]}):c("div",{class:"tree-agent agent-item",onClick:()=>{n(e.agentId)},onDblClick:d,children:[c("span",{class:`status-dot ${e.status}`}),c("span",{children:e.name})]})}function gn({rooms:e,agents:n,currentRoom:t,collapsed:o,onJoinRoom:i,onSelectAgent:r,onRenameAgent:a,onCreateRoom:d,onJoinRoomInput:u}){let[l,p]=w(!1),[f,s]=w(!1),[m,y]=w(!1),A=m?n:n.filter(_=>_.status!=="offline"),k=ln(A,e);return c("div",{id:"sidebar",class:o?"sidebar-collapsed":"",children:[c("h2",{children:["Agent Comms",c("button",{id:"toggle-offline-btn",class:`icon-btn${m?" active":""}`,title:`${m?"Hide":"Show"} offline agents`,onClick:()=>{y(_=>!_)},children:m?"\u25C9":"\u25CE"})]}),c("div",{class:"sidebar-section",children:[c(fn,{tree:k,onJoinRoom:i,onSelectAgent:r,onRenameAgent:a,currentRoom:t}),c("div",{class:"section-heading",children:[c("h3",{children:"Create"}),c("button",{id:"create-room-toggle",class:"icon-btn",title:"Create room",onClick:()=>{p(_=>!_)},children:"+"})]}),c(un,{visible:l,onSubmit:(_,g,R)=>{d(_,g,R),p(!1)},onCancel:()=>{p(!1)}}),c("button",{id:"join-toggle-btn",class:"join-toggle-btn",onClick:()=>{s(_=>!_)},children:"+ Join Room"}),c(mn,{visible:f,onSubmit:_=>{u(_),s(!1)},onCancel:()=>{s(!1)}})]})]})}function hn(e){let[n,t]=w(!1);return c(P,{children:[c("button",{id:"sidebar-toggle",class:"sidebar-toggle-btn",title:n?"Expand sidebar":"Collapse sidebar",onClick:()=>{t(o=>!o)},children:n?"\u2630":"\u2715"}),c(gn,{rooms:e.rooms,agents:e.agents,currentRoom:e.currentRoom,collapsed:n,onJoinRoom:e.onJoinRoom,onSelectAgent:e.onSelectAgent,onRenameAgent:e.onRenameAgent,onCreateRoom:e.onCreateRoom,onJoinRoomInput:e.onJoinRoomInput}),c(on,{messages:e.messages,currentRoom:e.currentRoom,dmTarget:e.dmTarget,connected:e.connected,onSendAction:e.onSendAction,onLeaveRoom:e.onLeaveRoom,onConnectToMesh:e.onConnectToMesh})]})}function ot(e){return typeof e=="object"&&e!==null}function rt(e){return Array.isArray(e)}function it(e){return Array.isArray(e)}function st(e){return Array.isArray(e)}function at(e){return ot(e)&&typeof e.type=="string"}async function vn(){let n=await(await fetch("/api/agents")).json();if(!rt(n))throw new Error("Invalid agents response");return n}async function yn(){let n=await(await fetch("/api/rooms")).json();if(!it(n))throw new Error("Invalid rooms response");return n}async function bn(e,n){let t=n!==void 0?`/api/rooms/${encodeURIComponent(e)}/messages?since=${encodeURIComponent(n)}`:`/api/rooms/${encodeURIComponent(e)}/messages`,i=await(await fetch(t)).json();if(!st(i))throw new Error("Invalid messages response");return i}var ct=3e3,te=class{constructor(n){C(this,"ws");C(this,"reconnectTimer");C(this,"handler");this.handler=n}connect(){let n=location.protocol==="https:"?"wss:":"ws:",t=new WebSocket(`${n}//${location.host}`);this.ws=t,t.onopen=()=>{this.handler.onOpen?.()},t.onclose=()=>{this.handler.onClose?.(),this.scheduleReconnect()},t.onerror=()=>{},t.onmessage=o=>{let i=JSON.parse(typeof o.data=="string"?o.data:String(o.data));at(i)&&this.handler.onFrame?.(i)}}sendAction(n){let t=this.ws;t?.readyState===WebSocket.OPEN&&t.send(JSON.stringify(n))}disconnect(){this.reconnectTimer!==void 0&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=void 0);let n=this.ws;n&&n.close(),this.ws=void 0}scheduleReconnect(){this.reconnectTimer=setTimeout(()=>{this.connect()},ct)}};var xn={currentRoom:void 0,dmTarget:void 0,agents:[],rooms:[],messages:[],connected:!1},oe=class{constructor(){C(this,"state",{...xn});C(this,"listeners",new Set)}subscribe(n){return this.listeners.add(n),()=>{this.listeners.delete(n)}}get(){return this.state}setCurrentRoom(n){this.state={...this.state,currentRoom:n},this.notify()}setDmTarget(n){this.state={...this.state,dmTarget:n},this.notify()}setAgents(n){this.state={...this.state,agents:n},this.notify()}setRooms(n){this.state={...this.state,rooms:n},this.notify()}setConnected(n){this.state={...this.state,connected:n},this.notify()}addMessage(n){this.state={...this.state,messages:[...this.state.messages,n]},this.notify()}setMessages(n){this.state={...this.state,messages:n},this.notify()}clearMessages(){this.state={...this.state,messages:[]},this.notify()}applyState(n,t){this.state={...this.state,agents:n,rooms:t},this.notify()}reset(){this.state={...xn,messages:[]},this.notify()}notify(){let n=this.state;for(let t of this.listeners)t(n)}};var re=class{constructor(){C(this,"worker");C(this,"state",{agents:[],rooms:[],connected:!1});C(this,"listeners",new Set);C(this,"actionCounter",0);C(this,"pendingActions",new Map)}connect(){if(this.worker)return;let n=new SharedWorker("./mesh-worker.js");if(this.worker=n,n.port.onmessage=i=>{let r=JSON.parse(typeof i.data=="string"?i.data:String(i.data));if(lt(r))switch(r.type){case"state":{if(!("state"in r)||typeof r.state!="object"||r.state===null||!("agents"in r.state)||!("rooms"in r.state))break;let a=r.state,d=ie(a.agents)?Object.values(a.agents).filter(dt):[],u=ie(a.rooms)?Object.values(a.rooms).filter(pt):[];this.state={...this.state,agents:d,rooms:u},this.notify();break}case"connected":this.state={...this.state,connected:!0},this.notify();break;case"disconnected":this.state={...this.state,connected:!1},this.notify();break;case"patch":this.postToWorker({type:"getState"});break;case"actionResult":break;case"actionError":break}},n.port.start(),/^(localhost|127\.\d+\.\d+\.\d+)(:\d+)?$/.test(location.host)){let r=`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}/ws/mesh`;this.postToWorker({type:"init",url:r})}else this.probeLocalMesh(19877,10)}get(){return this.state}subscribe(n){return this.listeners.add(n),()=>{this.listeners.delete(n)}}sendAction(n){let t=String(++this.actionCounter);this.postToWorker({type:"action",id:t,action:n})}disconnect(){this.worker&&(this.worker.port.close(),this.worker=void 0),this.pendingActions.clear()}probeLocalMesh(n,t){let o=0,i=r=>{if(o>=t)return;o++;let a=`ws://127.0.0.1:${String(r)}/ws/mesh`;fetch(`http://127.0.0.1:${String(r)}/`,{mode:"no-cors"}).then(()=>{this.postToWorker({type:"init",url:a})}).catch(()=>{i(r+1)})};i(n)}postToWorker(n){this.worker&&this.worker.port.postMessage(JSON.stringify(n))}notify(){let n=this.state;for(let t of this.listeners)t(n)}};function lt(e){return typeof e=="object"&&e!==null&&"type"in e}function ie(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function dt(e){return ie(e)&&typeof e.id=="string"&&typeof e.name=="string"}function pt(e){return ie(e)&&typeof e.id=="string"&&typeof e.name=="string"}var ut=/^(localhost|127\.\d+\.\d+\.\d+)(:\d+)?$/;function kn(e){return ut.test(e)}function wn(e){return e.getItem("agent-comms-connected")==="true"}function Rn(e,n){switch(e.type){case"room_message":return n===e.message.room?{type:"chat",sender:e.message.from,content:e.message.content,timestamp:e.message.timestamp}:void 0;case"dm":return{type:"dm",sender:e.message.from,content:e.message.content,timestamp:e.message.timestamp};case"member_joined":return{type:"system",text:`${e.agent} joined ${e.room}`};case"member_left":return{type:"system",text:`${e.agent} left ${e.room}`};case"member_status":return{type:"status",text:`${e.agent} is now ${e.status} in ${e.room}`};case"delivery_status":return{type:"status",text:`Message ${e.messageId} ${e.status} by ${e.agent}`};case"room_members":return n===e.room?{type:"system",text:`Members: ${e.members.map(o=>`${o.name} (${o.status})`).join(", ")}`}:void 0;case"room_invite":{let t=e.roomDescription?` \u2014 ${e.roomDescription}`:"";return{type:"system",text:`${e.fromName} invited you to "${e.room}"${t}`}}case"invite_declined":return{type:"system",text:`${e.agentName} declined invite to ${e.room}: "${e.reason}"`};case"name_changed":return{type:"system",text:`${e.oldName} is now known as ${e.newName}`};default:return e}}function An(e){return{type:"chat",sender:e.from,content:e.content,timestamp:e.timestamp}}var mt="Project room for ";function Cn(e){let n=new URLSearchParams(e),t=n.get("room");if(t!==null&&t!=="")return{kind:"room",roomId:t};let o=n.get("dm");if(o!==null&&o!=="")return{kind:"dm",agentId:o};let i=n.get("cwd");if(i!==null&&i!=="")return{kind:"cwd",path:i}}function Tn(e,n){switch(e.kind){case"room":return n.some(t=>t.id===e.roomId)?{kind:"room",targetId:e.roomId}:void 0;case"dm":return{kind:"dm",targetId:e.agentId};case"cwd":{let t=n.find(o=>o.description===`${mt}${e.path}`);return t?{kind:"room",targetId:t.id}:void 0}default:return e}}function Sn(e){let n=new URL(location.href);n.searchParams.delete("room"),n.searchParams.delete("dm"),n.searchParams.delete("cwd"),e.currentRoom!==void 0&&e.currentRoom!==""?n.searchParams.set("room",e.currentRoom):e.dmTarget!==void 0&&e.dmTarget!==""&&n.searchParams.set("dm",e.dmTarget);let t=n.pathname+n.search+n.hash;history.replaceState(null,"",t)}var O=kn(location.host),ft=Ze(document,"#root"),v=new oe,xe=new re;xe.subscribe(e=>{e.agents.length>0&&v.setAgents(e.agents),e.rooms.length>0&&v.setRooms(e.rooms),v.setConnected(e.connected)});function j(e){v.addMessage(e)}var se,ke=new te({onOpen:()=>{v.setConnected(!0),j({type:"system",text:"Connected to mesh"})},onClose:()=>{v.setConnected(!1),j({type:"system",text:"Disconnected \u2014 reconnecting..."})},onFrame:_t});function _t(e){let n=v.get();switch(e.type){case"delivery":{let t=Rn(e.event,n.currentRoom);t&&j(t),(e.event.type==="member_joined"||e.event.type==="member_left"||e.event.type==="member_status"||e.event.type==="name_changed")&&be();break}case"result":if(j({type:"system",text:e.result.content}),!e.result.isError){if(se?.action==="join_room"&&(v.get().currentRoom===void 0||v.get().currentRoom==="")){let t=se.room;v.setDmTarget(void 0),v.setCurrentRoom(t)}be()}se=void 0;break;case"error":j({type:"status",text:`Error: ${e.message}`});break;case"state":v.applyState(e.agents,e.rooms);break}}function z(e){se=e,ke.sendAction(e)}async function be(){if(!O)return;let[e,n]=await Promise.all([vn(),yn()]);v.setAgents(e),v.setRooms(n)}async function ae(e){if(v.setDmTarget(void 0),v.setCurrentRoom(e),v.clearMessages(),z({action:"join_room",room:e}),O){let n=await bn(e);v.setMessages(n.map(An))}j({type:"system",text:`Joined ${e}`})}function En(e){v.setCurrentRoom(void 0),v.setDmTarget(e),v.clearMessages()}function Pn(){let e=v.get().currentRoom;e!==void 0&&e!==""&&(z({action:"leave_room",room:e}),v.setCurrentRoom(void 0),v.clearMessages(),j({type:"system",text:`Left room "${e}"`}))}function gt(e){let n=v.get(),t=ee(e,n.currentRoom,n.dmTarget),o=en(t);if(o)switch(o.kind){case"join_room":ae(o.room);return;case"leave_room":Pn();return}switch(t.kind){case"action":z(t.action);break;case"local":j({type:"system",text:t.result.text});break;case"ignored":break}}function ht(e,n,t){let o={action:"create_room",name:e,type:n,...t?{description:t}:{}};z(o)}function vt(e){ae(e)}function yt(e,n){z({action:"rename_agent",agent:e,name:n})}function jn(){let e=v.get();Sn({currentRoom:e.currentRoom,dmTarget:e.dmTarget}),He(c(hn,{rooms:e.rooms,agents:e.agents,currentRoom:e.currentRoom,dmTarget:e.dmTarget,messages:e.messages,connected:e.connected,onJoinRoom:n=>{ae(n)},onSelectAgent:En,onRenameAgent:yt,onLeaveRoom:Pn,onSendAction:gt,onCreateRoom:ht,onJoinRoomInput:vt,onConnectToMesh:()=>{localStorage.setItem("agent-comms-connected","true"),xe.connect(),O&&ke.connect()}}),ft)}v.subscribe(jn);var Mn=Cn(location.search);jn();var bt=wn(localStorage);(O||bt)&&(xe.connect(),O&&ke.connect());be().then(()=>{if(!Mn)return;let e=v.get(),n=Tn(Mn,e.rooms);if(n)switch(n.kind){case"room":ae(n.targetId);break;case"dm":En(n.targetId);break}});})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var o=new Map,i=new Map,a=new Map,d=new Map;function l(e){for(let[t,s]of Object.entries(e.agents))o.set(t,s);for(let[t,s]of Object.entries(e.rooms))i.set(t,s);for(let[t,s]of Object.entries(e.messages))a.set(t,s);for(let[t,s]of Object.entries(e.dms))d.set(t,s)}function p(e){switch(e.type){case"agent_upsert":{let t=o.get(e.agent.id);if(t){let s=e.agent;for(let n of t.subscribedRooms)s.subscribedRooms.includes(n)||s.subscribedRooms.push(n);o.set(s.id,s)}else o.set(e.agent.id,e.agent);break}case"agent_offline":{let t=o.get(e.agentId);t&&(t.status="offline",o.set(e.agentId,t));break}case"room_upsert":{let t=i.get(e.room.id);if(t){let s=e.room;for(let n of t.members)s.members.includes(n)||s.members.push(n);i.set(s.id,s)}else i.set(e.room.id,e.room);break}case"room_delete":i.delete(e.roomId);break;case"message_add":{let t=a.get(e.roomId)??[];t.push(e.message),a.set(e.roomId,t);break}case"dm_add":{let t=d.get(e.key)??[];t.push(e.message),d.set(e.key,t);break}case"delivery":break;case"message_read":{if(e.room){let t=a.get(e.room);if(t){let s=t.find(n=>n.id===e.messageId);s&&!s.readBy.includes(e.readBy)&&s.readBy.push(e.readBy)}}else for(let[,t]of d){let s=t.find(n=>n.id===e.messageId);s&&!s.readBy.includes(e.readBy)&&s.readBy.push(e.readBy)}break}}}function
|
|
1
|
+
"use strict";(()=>{var o=new Map,i=new Map,a=new Map,d=new Map;function l(e){for(let[t,s]of Object.entries(e.agents))o.set(t,s);for(let[t,s]of Object.entries(e.rooms))i.set(t,s);for(let[t,s]of Object.entries(e.messages))a.set(t,s);for(let[t,s]of Object.entries(e.dms))d.set(t,s)}function p(e){switch(e.type){case"agent_upsert":{let t=o.get(e.agent.id);if(t){let s=e.agent;for(let n of t.subscribedRooms)s.subscribedRooms.includes(n)||s.subscribedRooms.push(n);o.set(s.id,s)}else o.set(e.agent.id,e.agent);break}case"agent_offline":{let t=o.get(e.agentId);t&&(t.status="offline",o.set(e.agentId,t));break}case"room_upsert":{let t=i.get(e.room.id);if(t){let s=e.room;for(let n of t.members)s.members.includes(n)||s.members.push(n);i.set(s.id,s)}else i.set(e.room.id,e.room);break}case"room_delete":i.delete(e.roomId);break;case"message_add":{let t=a.get(e.roomId)??[];t.push(e.message),a.set(e.roomId,t);break}case"dm_add":{let t=d.get(e.key)??[];t.push(e.message),d.set(e.key,t);break}case"delivery":break;case"message_read":{if(e.room!==void 0){let t=a.get(e.room);if(t){let s=t.find(n=>n.id===e.messageId);s&&!s.readBy.includes(e.readBy)&&s.readBy.push(e.readBy)}}else for(let[,t]of d){let s=t.find(n=>n.id===e.messageId);s&&!s.readBy.includes(e.readBy)&&s.readBy.push(e.readBy)}break}}}function m(){return{agents:[...o.values()],rooms:[...i.values()]}}var f,g,c;function u(e){c=e,g!==void 0&&(clearTimeout(g),g=void 0);let t=new WebSocket(e);f=t,t.onopen=()=>{r({type:"connected"})},t.onclose=()=>{f=void 0,r({type:"disconnected"}),S()},t.onerror=()=>{},t.onmessage=s=>{let n=JSON.parse(typeof s.data=="string"?s.data:String(s.data));k(n)}}var b=3e3;function S(){c!==void 0&&(g=setTimeout(()=>{c!==void 0&&u(c)},b))}function k(e){if(M(e)){e.method==="state_sync"?(l(e.state),r({type:"state",state:m()})):(p(e.patch),r({type:"patch",patch:e.patch}));return}typeof e=="object"&&e!==null&&"type"in e&&(e.type==="result"&&"result"in e&&typeof e.result=="object"&&e.result!==null&&"content"in e.result&&typeof e.result.content=="string"&&"isError"in e.result&&typeof e.result.isError=="boolean"?r({type:"actionResult",id:"",result:{content:e.result.content,isError:e.result.isError}}):e.type==="error"&&"message"in e&&typeof e.message=="string"&&r({type:"actionError",id:"",message:e.message}))}function M(e){if(typeof e!="object"||e===null||!("method"in e))return!1;let t=e.method;return typeof t=="string"&&(t==="state_sync"||t==="state_update")}var y=new Set;function r(e){let t=JSON.stringify(e);for(let s of y)try{s.postMessage(t)}catch{}}function v(e){switch(e.type){case"init":u(e.url);break;case"action":{f?.readyState===WebSocket.OPEN&&f.send(JSON.stringify(e.action));break}case"getState":r({type:"state",state:m()});break}}function R(e){if(typeof e!="object"||e===null||!("type"in e))return!1;let t=e.type;return typeof t=="string"&&(t==="init"||t==="action"||t==="getState")}self.addEventListener("connect",e=>{let t=e.ports[0];if(t!==void 0){y.add(t);try{t.postMessage(JSON.stringify({type:"state",state:m()}))}catch{}t.onmessage=s=>{let n=JSON.parse(typeof s.data=="string"?s.data:String(s.data));R(n)&&v(n)}}});})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var o="agent-comms-v1",
|
|
1
|
+
"use strict";(()=>{var o="agent-comms-v1",c=["./","./bundle.js","./sw.js","./manifest.json","./icons/icon-96x96.svg","./icons/icon-192x192.svg","./icons/icon-512x512.svg"];self.addEventListener("install",e=>{e.waitUntil(self.caches.open(o).then(async n=>n.addAll(c)).then(async()=>self.skipWaiting()))});self.addEventListener("activate",e=>{e.waitUntil(self.caches.keys().then(async n=>Promise.all(n.filter(t=>t!==o).map(async t=>self.caches.delete(t)))))});var l=200,d=300;function a(e,n){return e.method==="GET"&&n.status>=l&&n.status<d}self.addEventListener("fetch",e=>{if(new URL(e.request.url).pathname.startsWith("/api/")){e.respondWith(fetch(e.request).then(t=>{if(a(e.request,t)){let i=t.clone();self.caches.open(o).then(async s=>s.put(e.request,i))}return t}).catch(async()=>self.caches.open(o).then(async t=>t.match(e.request)).then(t=>t??new Response("Offline",{status:503}))));return}e.respondWith(self.caches.open(o).then(async t=>t.match(e.request)).then(async t=>t||fetch(e.request).then(i=>{if(a(e.request,i)){let s=i.clone();self.caches.open(o).then(async r=>r.put(e.request,s))}return i})))});self.addEventListener("push",e=>{let n="Agent Comms",t="New message";if(e.data)try{let i=e.data.json();typeof i.title=="string"&&(n=i.title),typeof i.body=="string"&&(t=i.body)}catch{let i=e.data.text();i&&(t=i)}e.waitUntil(self.registration.showNotification(n,{body:t,data:{url:self.location.origin}}))});self.addEventListener("notificationclick",e=>{e.notification.close();let n=e.notification.data,t=typeof n=="object"&&n!==null&&"url"in n&&typeof n.url=="string"?n.url:self.location.origin;e.waitUntil(self.clients.matchAll({type:"window",includeUncontrolled:!0}).then(async i=>{for(let s of i)if(s.url===t&&"focus"in s)return s.focus();return self.clients.openWindow(t)}))});})();
|
|
@@ -20,7 +20,7 @@ export declare class CommsWs {
|
|
|
20
20
|
private ws;
|
|
21
21
|
private reconnectTimer;
|
|
22
22
|
private readonly handler;
|
|
23
|
-
constructor(handler: WsEventHandler);
|
|
23
|
+
constructor(handler: Readonly<WsEventHandler>);
|
|
24
24
|
connect(): void;
|
|
25
25
|
sendAction(action: Action): void;
|
|
26
26
|
disconnect(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,OAAO,EACR,MAAM,YAAY,CAAC;AAqCpB,wBAAsB,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC,CAK3D;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAKzD;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,OAAO,EACR,MAAM,YAAY,CAAC;AAqCpB,wBAAsB,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC,CAK3D;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAKzD;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAS3B;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAStE;AASD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAwB;IAClC,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAE7B,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC;IAI7C,OAAO,IAAI,IAAI;IA2Bf,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOhC,UAAU,IAAI,IAAI;IAYlB,OAAO,CAAC,iBAAiB;CAK1B"}
|
|
@@ -47,7 +47,7 @@ export async function fetchRooms() {
|
|
|
47
47
|
return body;
|
|
48
48
|
}
|
|
49
49
|
export async function fetchRoomMessages(roomId, since) {
|
|
50
|
-
const url = since
|
|
50
|
+
const url = since !== undefined
|
|
51
51
|
? `/api/rooms/${encodeURIComponent(roomId)}/messages?since=${encodeURIComponent(since)}`
|
|
52
52
|
: `/api/rooms/${encodeURIComponent(roomId)}/messages`;
|
|
53
53
|
const res = await fetch(url);
|
|
@@ -67,6 +67,11 @@ export async function postAction(action) {
|
|
|
67
67
|
throw new Error("Invalid action result");
|
|
68
68
|
return body;
|
|
69
69
|
}
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
// WebSocket client
|
|
72
|
+
// ---------------------------------------------------------------------------
|
|
73
|
+
/** Delay before attempting to reconnect a dropped WebSocket connection. */
|
|
74
|
+
const RECONNECT_DELAY_MS = 3000;
|
|
70
75
|
export class CommsWs {
|
|
71
76
|
ws;
|
|
72
77
|
reconnectTimer;
|
|
@@ -115,7 +120,7 @@ export class CommsWs {
|
|
|
115
120
|
scheduleReconnect() {
|
|
116
121
|
this.reconnectTimer = setTimeout(() => {
|
|
117
122
|
this.connect();
|
|
118
|
-
},
|
|
123
|
+
}, RECONNECT_DELAY_MS);
|
|
119
124
|
}
|
|
120
125
|
}
|
|
121
126
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,CACL,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CACxE,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC3D,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,IAAI,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,IAAI,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,KAAc;IAEd,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { Agent, DisplayMessage, Room } from "../types.js";
|
|
8
8
|
export interface AppProps {
|
|
9
|
-
rooms: Room[];
|
|
10
|
-
agents: Agent[];
|
|
9
|
+
rooms: readonly Room[];
|
|
10
|
+
agents: readonly Agent[];
|
|
11
11
|
currentRoom: string | undefined;
|
|
12
12
|
dmTarget: string | undefined;
|
|
13
|
-
messages: DisplayMessage[];
|
|
13
|
+
messages: readonly DisplayMessage[];
|
|
14
14
|
connected: boolean;
|
|
15
15
|
onJoinRoom: (roomId: string) => void;
|
|
16
16
|
onSelectAgent: (agentId: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/App.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAI/D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/App.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAI/D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,EACrC,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;IACV,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,gCAqClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatArea.d.ts","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/ChatArea.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,UAAU,aAAa;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatArea.d.ts","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/ChatArea.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,UAAU,aAAa;IACrB,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,GAChB,EAAE,aAAa,gCAkEf"}
|
|
@@ -8,7 +8,8 @@ import { parseInput } from "../input.js";
|
|
|
8
8
|
import { MessageList } from "./MessageList.js";
|
|
9
9
|
export function ChatArea({ messages, currentRoom, dmTarget, connected, onSendAction, onLeaveRoom, onConnectToMesh, }) {
|
|
10
10
|
const [inputText, setInputText] = useState("");
|
|
11
|
-
const headerText = currentRoom ??
|
|
11
|
+
const headerText = currentRoom ??
|
|
12
|
+
(dmTarget !== undefined ? `DM with ${dmTarget}` : "Select a room");
|
|
12
13
|
const handleSend = () => {
|
|
13
14
|
const trimmed = inputText.trim();
|
|
14
15
|
if (!trimmed)
|
|
@@ -31,7 +32,7 @@ export function ChatArea({ messages, currentRoom, dmTarget, connected, onSendAct
|
|
|
31
32
|
if (e.key === "Enter")
|
|
32
33
|
handleSend();
|
|
33
34
|
};
|
|
34
|
-
return (_jsxs("div", { id: "main", children: [_jsxs("div", { id: "header", children: [headerText, currentRoom && (_jsx("button", { class: "leave-btn", onClick: onLeaveRoom, children: "Leave" }))] }), _jsx(MessageList, { messages: messages }), !connected && messages.length === 0 && (_jsxs("div", { class: "connect-prompt", children: [_jsx("p", { children: "Connect to a local mesh to discover agents and rooms." }), _jsx("button", { class: "connect-btn", onClick: onConnectToMesh, children: "Connect to local mesh" })] })), _jsxs("div", { id: "input-bar", children: [_jsx("input", { id: "input", type: "text", placeholder: "Type a message or /command...", autocomplete: "off", value: inputText, onInput: (e) => {
|
|
35
|
+
return (_jsxs("div", { id: "main", children: [_jsxs("div", { id: "header", children: [headerText, currentRoom !== undefined && (_jsx("button", { class: "leave-btn", onClick: onLeaveRoom, children: "Leave" }))] }), _jsx(MessageList, { messages: messages }), !connected && messages.length === 0 && (_jsxs("div", { class: "connect-prompt", children: [_jsx("p", { children: "Connect to a local mesh to discover agents and rooms." }), _jsx("button", { class: "connect-btn", onClick: onConnectToMesh, children: "Connect to local mesh" })] })), _jsxs("div", { id: "input-bar", children: [_jsx("input", { id: "input", type: "text", placeholder: "Type a message or /command...", autocomplete: "off", value: inputText, onInput: (e) => {
|
|
35
36
|
setInputText(inputFromEvent(e).value);
|
|
36
37
|
}, onKeyDown: handleKeyDown }), _jsx("button", { id: "send-btn", onClick: handleSend, children: "Send" })] })] }));
|
|
37
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatArea.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/ChatArea.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAY/C,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,GACD;IACd,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,UAAU,GACd,WAAW,
|
|
1
|
+
{"version":3,"file":"ChatArea.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/ChatArea.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAY/C,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,GACD;IACd,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,UAAU,GACd,WAAW;QACX,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAErE,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC1D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,OAAO;gBACV,wDAAwD;gBACxD,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM;QACV,CAAC;QACD,YAAY,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;QACzC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE,UAAU,EAAE,CAAC;IACtC,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,EAAE,EAAC,MAAM,aACZ,eAAK,EAAE,EAAC,QAAQ,aACb,UAAU,EACV,WAAW,KAAK,SAAS,IAAI,CAC5B,iBAAQ,KAAK,EAAC,WAAW,EAAC,OAAO,EAAE,WAAW,sBAErC,CACV,IACG,EACN,KAAC,WAAW,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAClC,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CACtC,eAAK,KAAK,EAAC,gBAAgB,aACzB,gFAA4D,EAC5D,iBAAQ,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,eAAe,sCAE3C,IACL,CACP,EACD,eAAK,EAAE,EAAC,WAAW,aACjB,gBACE,EAAE,EAAC,OAAO,EACV,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,+BAA+B,EAC3C,YAAY,EAAC,KAAK,EAClB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACb,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBACxC,CAAC,EACD,SAAS,EAAE,aAAa,GACxB,EACF,iBAAQ,EAAE,EAAC,UAAU,EAAC,OAAO,EAAE,UAAU,qBAEhC,IACL,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* MessageList — scrollable message area with auto-scroll.
|
|
3
3
|
*/
|
|
4
4
|
import type { DisplayMessage } from "../types.js";
|
|
5
|
-
export declare function MessageList({ messages }: {
|
|
6
|
-
messages: DisplayMessage[];
|
|
5
|
+
export declare function MessageList({ messages, }: {
|
|
6
|
+
messages: readonly DisplayMessage[];
|
|
7
7
|
}): import("preact").JSX.Element;
|
|
8
8
|
//# sourceMappingURL=MessageList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/MessageList.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,wBAAgB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/MessageList.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CACrC,gCAgBA"}
|
|
@@ -4,7 +4,7 @@ import { jsx as _jsx } from "preact/jsx-runtime";
|
|
|
4
4
|
*/
|
|
5
5
|
import { useRef, useEffect } from "preact/hooks";
|
|
6
6
|
import { Message } from "./Message.js";
|
|
7
|
-
export function MessageList({ messages }) {
|
|
7
|
+
export function MessageList({ messages, }) {
|
|
8
8
|
const ref = useRef(null);
|
|
9
9
|
useEffect(() => {
|
|
10
10
|
if (ref.current) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/MessageList.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/MessageList.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,GAGT;IACC,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QACnD,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtB,OAAO,CACL,cAAK,EAAE,EAAC,UAAU,EAAC,GAAG,EAAE,GAAG,YACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACxB,KAAC,OAAO,IAAS,OAAO,EAAE,GAAG,IAAf,CAAC,CAAkB,CAClC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -26,7 +26,7 @@ function DirectoryView({ node, onJoinRoom, onSelectAgent, onRenameAgent, current
|
|
|
26
26
|
e.stopPropagation();
|
|
27
27
|
setExpanded(!expanded);
|
|
28
28
|
}, children: _jsx("span", { class: "tree-folder-icon", children: expanded ? "📂" : "📁" }) }), _jsx("span", { class: `tree-directory-label${isCurrentRoom ? " active" : ""}${hasRoom ? " clickable" : ""}`, onClick: () => {
|
|
29
|
-
if (node.roomId)
|
|
29
|
+
if (node.roomId !== undefined)
|
|
30
30
|
onJoinRoom(node.roomId);
|
|
31
31
|
}, children: node.name })] }), expanded && (_jsx("div", { class: "tree-children", children: node.children.map((child) => (_jsx(TreeNodeView, { node: child, onJoinRoom: onJoinRoom, onSelectAgent: onSelectAgent, onRenameAgent: onRenameAgent, currentRoom: currentRoom }, child.type === "agent" ? child.agentId : child.path))) }))] }));
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectTree.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/ProjectTree.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ProjectTree.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/ProjectTree.tsx"],"names":[],"mappings":"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"}
|