agent-comms 1.13.0 → 1.14.0
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/plugin.json +1 -1
- package/README.md +1 -1
- package/dist/bridges/pi/index.d.ts +5 -2
- package/dist/bridges/pi/index.d.ts.map +1 -1
- package/dist/bridges/pi/index.js +89 -6
- package/dist/bridges/pi/index.js.map +1 -1
- package/dist/bridges/user/controller.d.ts +1 -0
- package/dist/bridges/user/controller.d.ts.map +1 -1
- package/dist/bridges/user/controller.js +12 -0
- package/dist/bridges/user/controller.js.map +1 -1
- package/dist/bridges/user/tui.js +2 -0
- package/dist/bridges/user/tui.js.map +1 -1
- package/dist/bridges/user/web/build.d.ts +3 -5
- package/dist/bridges/user/web/build.d.ts.map +1 -1
- package/dist/bridges/user/web/build.js +11 -36
- package/dist/bridges/user/web/build.js.map +1 -1
- package/dist/bridges/user/web/frontend/components/App.d.ts +23 -0
- package/dist/bridges/user/web/frontend/components/App.d.ts.map +1 -0
- package/dist/bridges/user/web/frontend/components/App.js +7 -0
- package/dist/bridges/user/web/frontend/components/App.js.map +1 -0
- package/dist/bridges/user/web/frontend/components/ChatArea.d.ts +14 -0
- package/dist/bridges/user/web/frontend/components/ChatArea.d.ts.map +1 -0
- package/dist/bridges/user/web/frontend/components/ChatArea.js +38 -0
- package/dist/bridges/user/web/frontend/components/ChatArea.js.map +1 -0
- package/dist/bridges/user/web/frontend/components/CreateRoomForm.d.ts +11 -0
- package/dist/bridges/user/web/frontend/components/CreateRoomForm.d.ts.map +1 -0
- package/dist/bridges/user/web/frontend/components/CreateRoomForm.js +33 -0
- package/dist/bridges/user/web/frontend/components/CreateRoomForm.js.map +1 -0
- package/dist/bridges/user/web/frontend/components/JoinForm.d.ts +11 -0
- package/dist/bridges/user/web/frontend/components/JoinForm.d.ts.map +1 -0
- package/dist/bridges/user/web/frontend/components/JoinForm.js +28 -0
- package/dist/bridges/user/web/frontend/components/JoinForm.js.map +1 -0
- package/dist/bridges/user/web/frontend/components/Message.d.ts +8 -0
- package/dist/bridges/user/web/frontend/components/Message.d.ts.map +1 -0
- package/dist/bridges/user/web/frontend/components/Message.js +15 -0
- package/dist/bridges/user/web/frontend/components/Message.js.map +1 -0
- package/dist/bridges/user/web/frontend/components/MessageList.d.ts +8 -0
- package/dist/bridges/user/web/frontend/components/MessageList.d.ts.map +1 -0
- package/dist/bridges/user/web/frontend/components/MessageList.js +16 -0
- package/dist/bridges/user/web/frontend/components/MessageList.js.map +1 -0
- package/dist/bridges/user/web/frontend/components/ProjectTree.d.ts +17 -0
- package/dist/bridges/user/web/frontend/components/ProjectTree.d.ts.map +1 -0
- package/dist/bridges/user/web/frontend/components/ProjectTree.js +59 -0
- package/dist/bridges/user/web/frontend/components/ProjectTree.js.map +1 -0
- package/dist/bridges/user/web/frontend/components/Sidebar.d.ts +16 -0
- package/dist/bridges/user/web/frontend/components/Sidebar.d.ts.map +1 -0
- package/dist/bridges/user/web/frontend/components/Sidebar.js +31 -0
- package/dist/bridges/user/web/frontend/components/Sidebar.js.map +1 -0
- package/dist/bridges/user/web/frontend/dom.d.ts +12 -22
- package/dist/bridges/user/web/frontend/dom.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/dom.js +24 -49
- package/dist/bridges/user/web/frontend/dom.js.map +1 -1
- package/dist/bridges/user/web/frontend/input.d.ts +15 -0
- package/dist/bridges/user/web/frontend/input.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/input.js +38 -0
- package/dist/bridges/user/web/frontend/input.js.map +1 -1
- package/dist/bridges/user/web/frontend/main.d.ts +3 -3
- package/dist/bridges/user/web/frontend/main.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/main.js +65 -50
- package/dist/bridges/user/web/frontend/main.js.map +1 -1
- package/dist/bridges/user/web/frontend/messages.d.ts +17 -0
- package/dist/bridges/user/web/frontend/messages.d.ts.map +1 -0
- package/dist/bridges/user/web/frontend/messages.js +82 -0
- package/dist/bridges/user/web/frontend/messages.js.map +1 -0
- package/dist/bridges/user/web/frontend/project-tree.d.ts +9 -0
- package/dist/bridges/user/web/frontend/project-tree.d.ts.map +1 -0
- package/dist/bridges/user/web/frontend/project-tree.js +173 -0
- package/dist/bridges/user/web/frontend/project-tree.js.map +1 -0
- package/dist/bridges/user/web/frontend/state.d.ts +8 -1
- package/dist/bridges/user/web/frontend/state.d.ts.map +1 -1
- package/dist/bridges/user/web/frontend/state.js +17 -1
- package/dist/bridges/user/web/frontend/state.js.map +1 -1
- package/dist/bridges/user/web/frontend/types.d.ts +52 -0
- package/dist/bridges/user/web/frontend/types.d.ts.map +1 -1
- package/dist/bridges/user/web/server.d.ts.map +1 -1
- package/dist/bridges/user/web/server.js +26 -3
- package/dist/bridges/user/web/server.js.map +1 -1
- package/dist/bridges/user/web/test/web-server.integration.test.d.ts +7 -0
- package/dist/bridges/user/web/test/web-server.integration.test.d.ts.map +1 -0
- package/dist/bridges/user/web/test/web-server.integration.test.js +187 -0
- package/dist/bridges/user/web/test/web-server.integration.test.js.map +1 -0
- package/dist/core/bridge.d.ts +15 -0
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +60 -0
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/mesh-store.d.ts +3 -0
- package/dist/core/mesh-store.d.ts.map +1 -1
- package/dist/core/mesh-store.js +107 -7
- package/dist/core/mesh-store.js.map +1 -1
- package/dist/core/test/bridge.unit.test.d.ts +5 -0
- package/dist/core/test/bridge.unit.test.d.ts.map +1 -0
- package/dist/core/test/bridge.unit.test.js +120 -0
- package/dist/core/test/bridge.unit.test.js.map +1 -0
- package/dist/core/types.d.ts +10 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +6 -0
- package/dist/core/types.js.map +1 -1
- package/package.json +4 -3
- package/dist/bridges/user/web/frontend/render.d.ts +0 -30
- package/dist/bridges/user/web/frontend/render.d.ts.map +0 -1
- package/dist/bridges/user/web/frontend/render.js +0 -129
- package/dist/bridges/user/web/frontend/render.js.map +0 -1
- package/dist/bridges/user/web/frontend/test/dom.unit.test.d.ts +0 -5
- package/dist/bridges/user/web/frontend/test/dom.unit.test.d.ts.map +0 -1
- package/dist/bridges/user/web/frontend/test/dom.unit.test.js +0 -149
- package/dist/bridges/user/web/frontend/test/dom.unit.test.js.map +0 -1
- package/dist/bridges/user/web/frontend/test/input.unit.test.d.ts +0 -5
- package/dist/bridges/user/web/frontend/test/input.unit.test.d.ts.map +0 -1
- package/dist/bridges/user/web/frontend/test/input.unit.test.js +0 -131
- package/dist/bridges/user/web/frontend/test/input.unit.test.js.map +0 -1
- package/dist/bridges/user/web/frontend/test/render.unit.test.d.ts +0 -5
- package/dist/bridges/user/web/frontend/test/render.unit.test.d.ts.map +0 -1
- package/dist/bridges/user/web/frontend/test/render.unit.test.js +0 -436
- package/dist/bridges/user/web/frontend/test/render.unit.test.js.map +0 -1
- package/dist/bridges/user/web/frontend/test/state.unit.test.d.ts +0 -5
- package/dist/bridges/user/web/frontend/test/state.unit.test.d.ts.map +0 -1
- package/dist/bridges/user/web/frontend/test/state.unit.test.js +0 -119
- package/dist/bridges/user/web/frontend/test/state.unit.test.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateRoomForm.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/CreateRoomForm.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAY3C,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,QAAQ,GACY;IACpB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CACtC,QAAQ,CACT,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,YAAY,GAAG,CAAC,CAAQ,EAAE,EAAE;QAChC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;QACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtB,cAAc,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,EAAE,EAAC,kBAAkB,EAAC,KAAK,EAAC,SAAS,YACxC,gBAAM,KAAK,EAAC,kBAAkB,EAAC,QAAQ,EAAE,YAAY,aACnD,yCAEE,gBACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,WAAW,EAChB,QAAQ,QACR,WAAW,EAAC,oBAAoB,EAChC,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gCACb,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4BACnC,CAAC,GACD,IACI,EACR,oCAEE,kBACE,IAAI,EAAC,WAAW,EAChB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gCACd,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gCACpC,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;oCAC9D,WAAW,CAAC,GAAG,CAAC,CAAC;gCACnB,CAAC;4BACH,CAAC,aAED,iBAAQ,KAAK,EAAC,QAAQ,uBAAgB,EACtC,iBAAQ,KAAK,EAAC,SAAS,wBAAiB,EACxC,iBAAQ,KAAK,EAAC,QAAQ,uBAAgB,IAC/B,IACH,EACR,sDAEE,gBACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,kBAAkB,EACvB,WAAW,EAAC,0BAA0B,EACtC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gCACb,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4BAC1C,CAAC,GACD,IACI,EACR,eAAK,KAAK,EAAC,kBAAkB,aAC3B,iBAAQ,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,oBAAoB,uBAEvC,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,oBAAoB,EAAC,OAAO,EAAE,QAAQ,uBAEzD,IACL,IACD,GACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JoinForm — inline form for joining a room by name.
|
|
3
|
+
*/
|
|
4
|
+
interface JoinFormProps {
|
|
5
|
+
visible: boolean;
|
|
6
|
+
onSubmit: (roomName: string) => void;
|
|
7
|
+
onCancel: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function JoinForm({ visible, onSubmit, onCancel }: JoinFormProps): import("preact").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=JoinForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JoinForm.d.ts","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/JoinForm.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAKH,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,aAAa,gCAoCtE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* JoinForm — inline form for joining a room by name.
|
|
4
|
+
*/
|
|
5
|
+
import { useState } from "preact/hooks";
|
|
6
|
+
import { inputFromEvent } from "../dom.js";
|
|
7
|
+
export function JoinForm({ visible, onSubmit, onCancel }) {
|
|
8
|
+
const [roomName, setRoomName] = useState("");
|
|
9
|
+
if (!visible)
|
|
10
|
+
return _jsx("div", { id: "join-form", class: "join-form hidden" });
|
|
11
|
+
const handleSubmit = () => {
|
|
12
|
+
const trimmed = roomName.trim();
|
|
13
|
+
if (trimmed) {
|
|
14
|
+
onSubmit(trimmed);
|
|
15
|
+
setRoomName("");
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const handleKeyDown = (e) => {
|
|
19
|
+
if (e.key === "Enter")
|
|
20
|
+
handleSubmit();
|
|
21
|
+
if (e.key === "Escape")
|
|
22
|
+
onCancel();
|
|
23
|
+
};
|
|
24
|
+
return (_jsxs("div", { id: "join-form", class: "join-form", children: [_jsx("input", { class: "join-input", type: "text", placeholder: "Room name...", autocomplete: "off", value: roomName, onInput: (e) => {
|
|
25
|
+
setRoomName(inputFromEvent(e).value);
|
|
26
|
+
}, onKeyDown: handleKeyDown }), _jsx("button", { class: "join-submit", onClick: handleSubmit, children: "Join" })] }));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=JoinForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JoinForm.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/JoinForm.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAQ3C,MAAM,UAAU,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAiB;IACrE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE7C,IAAI,CAAC,OAAO;QAAE,OAAO,cAAK,EAAE,EAAC,WAAW,EAAC,KAAK,EAAC,kBAAkB,GAAG,CAAC;IAErE,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,WAAW,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;QACzC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE,YAAY,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;YAAE,QAAQ,EAAE,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,EAAE,EAAC,WAAW,EAAC,KAAK,EAAC,WAAW,aACnC,gBACE,KAAK,EAAC,YAAY,EAClB,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,cAAc,EAC1B,YAAY,EAAC,KAAK,EAClB,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACvC,CAAC,EACD,SAAS,EAAE,aAAa,GACxB,EACF,iBAAQ,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,YAAY,qBAExC,IACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/Message.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,wBAAgB,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,gCAwB/D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
2
|
+
import { formatTime } from "../dom.js";
|
|
3
|
+
export function Message({ message }) {
|
|
4
|
+
switch (message.type) {
|
|
5
|
+
case "chat":
|
|
6
|
+
return (_jsxs("div", { class: "msg", children: [_jsx("span", { class: "sender", children: message.sender }), _jsx("span", { class: "time", children: formatTime(message.timestamp) }), ":", " ", message.content] }));
|
|
7
|
+
case "dm":
|
|
8
|
+
return (_jsxs("div", { class: "msg dm", children: [_jsx("span", { class: "dm-badge", children: "DM" }), " ", _jsx("span", { class: "sender", children: message.sender }), _jsx("span", { class: "time", children: formatTime(message.timestamp) }), ":", " ", message.content] }));
|
|
9
|
+
case "system":
|
|
10
|
+
return _jsx("div", { class: "msg system", children: message.text });
|
|
11
|
+
case "status":
|
|
12
|
+
return _jsx("div", { class: "msg status", children: message.text });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=Message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/Message.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,UAAU,OAAO,CAAC,EAAE,OAAO,EAA+B;IAC9D,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,OAAO,CACL,eAAK,KAAK,EAAC,KAAK,aACd,eAAM,KAAK,EAAC,QAAQ,YAAE,OAAO,CAAC,MAAM,GAAQ,EAC5C,eAAM,KAAK,EAAC,MAAM,YAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,GAAQ,OAAE,GAAG,EAC7D,OAAO,CAAC,OAAO,IACZ,CACP,CAAC;QACJ,KAAK,IAAI;YACP,OAAO,CACL,eAAK,KAAK,EAAC,QAAQ,aACjB,eAAM,KAAK,EAAC,UAAU,mBAAU,EAAC,GAAG,EACpC,eAAM,KAAK,EAAC,QAAQ,YAAE,OAAO,CAAC,MAAM,GAAQ,EAC5C,eAAM,KAAK,EAAC,MAAM,YAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,GAAQ,OAAE,GAAG,EAC7D,OAAO,CAAC,OAAO,IACZ,CACP,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,cAAK,KAAK,EAAC,YAAY,YAAE,OAAO,CAAC,IAAI,GAAO,CAAC;QACtD,KAAK,QAAQ;YACX,OAAO,cAAK,KAAK,EAAC,YAAY,YAAE,OAAO,CAAC,IAAI,GAAO,CAAC;IACxD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MessageList — scrollable message area with auto-scroll.
|
|
3
|
+
*/
|
|
4
|
+
import type { DisplayMessage } from "../types.js";
|
|
5
|
+
export declare function MessageList({ messages }: {
|
|
6
|
+
messages: DisplayMessage[];
|
|
7
|
+
}): import("preact").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=MessageList.d.ts.map
|
|
@@ -0,0 +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,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,gCAgBvE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "preact/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* MessageList — scrollable message area with auto-scroll.
|
|
4
|
+
*/
|
|
5
|
+
import { useRef, useEffect } from "preact/hooks";
|
|
6
|
+
import { Message } from "./Message.js";
|
|
7
|
+
export function MessageList({ messages }) {
|
|
8
|
+
const ref = useRef(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (ref.current) {
|
|
11
|
+
ref.current.scrollTop = ref.current.scrollHeight;
|
|
12
|
+
}
|
|
13
|
+
}, [messages.length]);
|
|
14
|
+
return (_jsx("div", { id: "messages", ref: ref, children: messages.map((msg, i) => (_jsx(Message, { message: msg }, i))) }));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=MessageList.js.map
|
|
@@ -0,0 +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,EAAE,QAAQ,EAAkC;IACtE,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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProjectTree — recursive tree view of agents grouped by working directory.
|
|
3
|
+
*
|
|
4
|
+
* Shows directories as expandable/collapsible nodes with agents nested inside.
|
|
5
|
+
* Manual rooms appear in a separate flat list below the tree.
|
|
6
|
+
*/
|
|
7
|
+
import type { ProjectTree as ProjectTreeData } from "../types.js";
|
|
8
|
+
interface ProjectTreeProps {
|
|
9
|
+
tree: ProjectTreeData;
|
|
10
|
+
onJoinRoom: (roomId: string) => void;
|
|
11
|
+
onSelectAgent: (agentId: string) => void;
|
|
12
|
+
onRenameAgent: (agentId: string, newName: string) => void;
|
|
13
|
+
currentRoom: string | undefined;
|
|
14
|
+
}
|
|
15
|
+
export declare function ProjectTree({ tree, onJoinRoom, onSelectAgent, onRenameAgent, currentRoom, }: ProjectTreeProps): import("preact").JSX.Element;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=ProjectTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectTree.d.ts","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/ProjectTree.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAGV,WAAW,IAAI,eAAe,EAE/B,MAAM,aAAa,CAAC;AAGrB,UAAU,gBAAgB;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,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,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,GACZ,EAAE,gBAAgB,gCA+BlB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* ProjectTree — recursive tree view of agents grouped by working directory.
|
|
4
|
+
*
|
|
5
|
+
* Shows directories as expandable/collapsible nodes with agents nested inside.
|
|
6
|
+
* Manual rooms appear in a separate flat list below the tree.
|
|
7
|
+
*/
|
|
8
|
+
import { useState } from "preact/hooks";
|
|
9
|
+
import { inputFromEvent } from "../dom.js";
|
|
10
|
+
export function ProjectTree({ tree, onJoinRoom, onSelectAgent, onRenameAgent, currentRoom, }) {
|
|
11
|
+
return (_jsxs("div", { class: "project-tree", children: [tree.roots.map((node) => (_jsx(TreeNodeView, { node: node, onJoinRoom: onJoinRoom, onSelectAgent: onSelectAgent, onRenameAgent: onRenameAgent, currentRoom: currentRoom }))), tree.manualRooms.length > 0 && (_jsxs("div", { class: "tree-section", children: [_jsx("h3", { class: "tree-section-heading", children: "Rooms" }), tree.manualRooms.map((room) => (_jsxs("div", { class: "room-item" + (currentRoom === room.id ? " active" : ""), onClick: () => {
|
|
12
|
+
onJoinRoom(room.id);
|
|
13
|
+
}, children: [_jsx("span", { children: room.name }), _jsxs("span", { children: ["(", String(room.members.length), ")"] })] }, room.id)))] }))] }));
|
|
14
|
+
}
|
|
15
|
+
function TreeNodeView({ node, onJoinRoom, onSelectAgent, onRenameAgent, currentRoom, }) {
|
|
16
|
+
if (node.type === "agent") {
|
|
17
|
+
return (_jsx(AgentView, { node: node, onSelectAgent: onSelectAgent, onRenameAgent: onRenameAgent }));
|
|
18
|
+
}
|
|
19
|
+
return (_jsx(DirectoryView, { node: node, onJoinRoom: onJoinRoom, onSelectAgent: onSelectAgent, onRenameAgent: onRenameAgent, currentRoom: currentRoom }));
|
|
20
|
+
}
|
|
21
|
+
function DirectoryView({ node, onJoinRoom, onSelectAgent, onRenameAgent, currentRoom, }) {
|
|
22
|
+
const [expanded, setExpanded] = useState(true);
|
|
23
|
+
return (_jsxs("div", { class: "tree-directory", children: [_jsxs("div", { class: "tree-directory-name", children: [_jsxs("span", { class: "tree-folder-toggle", onClick: () => {
|
|
24
|
+
setExpanded(!expanded);
|
|
25
|
+
}, children: [_jsx("span", { class: "tree-folder-icon", children: expanded ? "📂" : "📁" }), _jsx("span", { children: node.name })] }), node.roomId && (_jsx("span", { class: `tree-room-join${currentRoom === node.roomId ? " active" : ""}`, onClick: () => {
|
|
26
|
+
if (node.roomId)
|
|
27
|
+
onJoinRoom(node.roomId);
|
|
28
|
+
}, children: "\uD83D\uDCAC" }))] }), 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))) }))] }));
|
|
29
|
+
}
|
|
30
|
+
function AgentView({ node, onSelectAgent, onRenameAgent }) {
|
|
31
|
+
const [editing, setEditing] = useState(false);
|
|
32
|
+
const [editName, setEditName] = useState("");
|
|
33
|
+
const handleDoubleClick = () => {
|
|
34
|
+
setEditName(node.name);
|
|
35
|
+
setEditing(true);
|
|
36
|
+
};
|
|
37
|
+
const handleSubmit = () => {
|
|
38
|
+
const trimmed = editName.trim();
|
|
39
|
+
if (trimmed && trimmed !== node.name) {
|
|
40
|
+
onRenameAgent(node.agentId, trimmed);
|
|
41
|
+
}
|
|
42
|
+
setEditing(false);
|
|
43
|
+
};
|
|
44
|
+
const handleKeyDown = (e) => {
|
|
45
|
+
if (e.key === "Enter")
|
|
46
|
+
handleSubmit();
|
|
47
|
+
if (e.key === "Escape")
|
|
48
|
+
setEditing(false);
|
|
49
|
+
};
|
|
50
|
+
if (editing) {
|
|
51
|
+
return (_jsxs("div", { class: "tree-agent agent-item editing", children: [_jsx("span", { class: `status-dot ${node.status}` }), _jsx("input", { class: "agent-rename-input", type: "text", value: editName, autofocus: true, onInput: (e) => {
|
|
52
|
+
setEditName(inputFromEvent(e).value);
|
|
53
|
+
}, onKeyDown: handleKeyDown, onBlur: handleSubmit })] }));
|
|
54
|
+
}
|
|
55
|
+
return (_jsxs("div", { class: "tree-agent agent-item", onClick: () => {
|
|
56
|
+
onSelectAgent(node.agentId);
|
|
57
|
+
}, onDblClick: handleDoubleClick, children: [_jsx("span", { class: `status-dot ${node.status}` }), _jsx("span", { children: node.name })] }));
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=ProjectTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectTree.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/ProjectTree.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sidebar — rooms list, agents list, create/join room controls.
|
|
3
|
+
*/
|
|
4
|
+
import type { Agent, Room } from "../types.js";
|
|
5
|
+
interface SidebarProps {
|
|
6
|
+
rooms: Room[];
|
|
7
|
+
agents: Agent[];
|
|
8
|
+
currentRoom: string | undefined;
|
|
9
|
+
onJoinRoom: (roomId: string) => void;
|
|
10
|
+
onSelectAgent: (agentId: string) => void;
|
|
11
|
+
onCreateRoom: (name: string, type: "public" | "private" | "secret", description: string) => void;
|
|
12
|
+
onJoinRoomInput: (roomName: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function Sidebar({ rooms, agents, currentRoom, onJoinRoom, onSelectAgent, onCreateRoom, onJoinRoomInput, }: SidebarProps): import("preact").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=Sidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/Sidebar.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAI/C,UAAU,YAAY;IACpB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,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;CAC7C;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,MAAM,EACN,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,EACZ,eAAe,GAChB,EAAE,YAAY,gCAoFd"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Sidebar — rooms list, agents list, create/join room controls.
|
|
4
|
+
*/
|
|
5
|
+
import { useState } from "preact/hooks";
|
|
6
|
+
import { CreateRoomForm } from "./CreateRoomForm.js";
|
|
7
|
+
import { JoinForm } from "./JoinForm.js";
|
|
8
|
+
export function Sidebar({ rooms, agents, currentRoom, onJoinRoom, onSelectAgent, onCreateRoom, onJoinRoomInput, }) {
|
|
9
|
+
const [createFormVisible, setCreateFormVisible] = useState(false);
|
|
10
|
+
const [joinFormVisible, setJoinFormVisible] = useState(false);
|
|
11
|
+
return (_jsxs("div", { id: "sidebar", children: [_jsx("h2", { children: "Agent Comms" }), _jsxs("div", { class: "sidebar-section", children: [_jsxs("div", { class: "section-heading", children: [_jsx("h3", { children: "Rooms" }), _jsx("button", { id: "create-room-toggle", class: "icon-btn", title: "Create room", onClick: () => {
|
|
12
|
+
setCreateFormVisible((v) => !v);
|
|
13
|
+
}, children: "+" })] }), _jsx(CreateRoomForm, { visible: createFormVisible, onSubmit: (name, type, desc) => {
|
|
14
|
+
onCreateRoom(name, type, desc);
|
|
15
|
+
setCreateFormVisible(false);
|
|
16
|
+
}, onCancel: () => {
|
|
17
|
+
setCreateFormVisible(false);
|
|
18
|
+
} }), _jsx("div", { id: "room-list", children: rooms.map((room) => (_jsxs("div", { class: `room-item${currentRoom === room.id ? " active" : ""}`, onClick: () => {
|
|
19
|
+
onJoinRoom(room.id);
|
|
20
|
+
}, children: [room.type.charAt(0).toUpperCase(), " ", room.name, " ", _jsxs("span", { style: "color:var(--dim)", children: ["(", String(room.members.length), ")"] })] }, room.id))) }), _jsx("button", { id: "join-toggle-btn", class: "join-toggle-btn", onClick: () => {
|
|
21
|
+
setJoinFormVisible((v) => !v);
|
|
22
|
+
}, children: "+ Join Room" }), _jsx(JoinForm, { visible: joinFormVisible, onSubmit: (name) => {
|
|
23
|
+
onJoinRoomInput(name);
|
|
24
|
+
setJoinFormVisible(false);
|
|
25
|
+
}, onCancel: () => {
|
|
26
|
+
setJoinFormVisible(false);
|
|
27
|
+
} }), _jsx("h3", { children: "Agents" }), _jsx("div", { id: "agent-list", children: agents.map((agent) => (_jsxs("div", { class: "agent-item", onClick: () => {
|
|
28
|
+
onSelectAgent(agent.id);
|
|
29
|
+
}, children: [_jsx("span", { class: `status-dot ${agent.status}` }), ` ${agent.name}`] }, agent.id))) })] })] }));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=Sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../../../../src/bridges/user/web/frontend/components/Sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* DOM utilities for the web UI.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* escapeHtml and formatTime are used by message rendering.
|
|
5
|
+
* requireElement is used by the entry point to grab the root mount point.
|
|
6
6
|
*/
|
|
7
|
-
/**
|
|
8
|
-
* Query selector scoped to a root element.
|
|
9
|
-
* Returns `undefined` if not found (not null).
|
|
10
|
-
*/
|
|
11
|
-
export declare function querySelector(root: ParentNode, selector: string): HTMLElement | undefined;
|
|
12
7
|
/**
|
|
13
8
|
* Query selector that throws if the element is missing.
|
|
14
9
|
* Use for elements that must exist in the HTML shell.
|
|
@@ -16,23 +11,18 @@ export declare function querySelector(root: ParentNode, selector: string): HTMLE
|
|
|
16
11
|
export declare function requireElement(root: ParentNode, selector: string): HTMLElement;
|
|
17
12
|
export declare function requireElement<K extends keyof HTMLElementTagNameMap>(root: ParentNode, selector: string, tag: K): HTMLElementTagNameMap[K];
|
|
18
13
|
/**
|
|
19
|
-
* HTML-escape a string for safe insertion
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Create an HTML element with optional attributes and children.
|
|
24
|
-
*/
|
|
25
|
-
export declare function createElement<K extends keyof HTMLElementTagNameMap>(doc: Document, tag: K, attrs?: Record<string, string>, ...children: (string | Node)[]): HTMLElementTagNameMap[K];
|
|
26
|
-
/**
|
|
27
|
-
* Remove all children from an element.
|
|
28
|
-
*/
|
|
29
|
-
export declare function clearChildren(el: HTMLElement): void;
|
|
30
|
-
/**
|
|
31
|
-
* Append a child and return the parent for chaining.
|
|
14
|
+
* HTML-escape a string for safe insertion.
|
|
15
|
+
* With Preact JSX, text content is auto-escaped — this is only needed
|
|
16
|
+
* when constructing raw HTML strings.
|
|
32
17
|
*/
|
|
33
|
-
export declare function
|
|
18
|
+
export declare function escapeHtml(text: string): string;
|
|
34
19
|
/**
|
|
35
20
|
* Format an ISO timestamp to HH:MM:SS for display.
|
|
36
21
|
*/
|
|
37
22
|
export declare function formatTime(timestamp: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Get an input or select element from an event target.
|
|
25
|
+
* Avoids type assertions by using instanceof narrowing.
|
|
26
|
+
*/
|
|
27
|
+
export declare function inputFromEvent(e: Event): HTMLInputElement | HTMLSelectElement;
|
|
38
28
|
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/dom.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/dom.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;AAChF,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAClE,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,GACL,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAgB5B;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,gBAAgB,GAAG,iBAAiB,CAS7E"}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* DOM utilities for the web UI.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* escapeHtml and formatTime are used by message rendering.
|
|
5
|
+
* requireElement is used by the entry point to grab the root mount point.
|
|
6
6
|
*/
|
|
7
|
-
/**
|
|
8
|
-
* Query selector scoped to a root element.
|
|
9
|
-
* Returns `undefined` if not found (not null).
|
|
10
|
-
*/
|
|
11
|
-
export function querySelector(root, selector) {
|
|
12
|
-
const el = root.querySelector(selector);
|
|
13
|
-
return el ?? undefined;
|
|
14
|
-
}
|
|
15
7
|
export function requireElement(root, selector, tag) {
|
|
16
8
|
const el = root.querySelector(selector);
|
|
17
9
|
if (!el)
|
|
@@ -22,45 +14,16 @@ export function requireElement(root, selector, tag) {
|
|
|
22
14
|
return el;
|
|
23
15
|
}
|
|
24
16
|
/**
|
|
25
|
-
* HTML-escape a string for safe insertion
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const div = doc.createElement("div");
|
|
29
|
-
div.textContent = text;
|
|
30
|
-
return div.innerHTML;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Create an HTML element with optional attributes and children.
|
|
34
|
-
*/
|
|
35
|
-
export function createElement(doc, tag, attrs, ...children) {
|
|
36
|
-
const el = doc.createElement(tag);
|
|
37
|
-
if (attrs) {
|
|
38
|
-
for (const [key, value] of Object.entries(attrs)) {
|
|
39
|
-
el.setAttribute(key, value);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
for (const child of children) {
|
|
43
|
-
if (typeof child === "string") {
|
|
44
|
-
el.appendChild(doc.createTextNode(child));
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
el.appendChild(child);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return el;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Remove all children from an element.
|
|
54
|
-
*/
|
|
55
|
-
export function clearChildren(el) {
|
|
56
|
-
el.innerHTML = "";
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Append a child and return the parent for chaining.
|
|
17
|
+
* HTML-escape a string for safe insertion.
|
|
18
|
+
* With Preact JSX, text content is auto-escaped — this is only needed
|
|
19
|
+
* when constructing raw HTML strings.
|
|
60
20
|
*/
|
|
61
|
-
export function
|
|
62
|
-
|
|
63
|
-
|
|
21
|
+
export function escapeHtml(text) {
|
|
22
|
+
return text
|
|
23
|
+
.replace(/&/g, "&")
|
|
24
|
+
.replace(/</g, "<")
|
|
25
|
+
.replace(/>/g, ">")
|
|
26
|
+
.replace(/"/g, """);
|
|
64
27
|
}
|
|
65
28
|
/**
|
|
66
29
|
* Format an ISO timestamp to HH:MM:SS for display.
|
|
@@ -68,4 +31,16 @@ export function appendTo(parent, child) {
|
|
|
68
31
|
export function formatTime(timestamp) {
|
|
69
32
|
return timestamp.slice(11, 19);
|
|
70
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Get an input or select element from an event target.
|
|
36
|
+
* Avoids type assertions by using instanceof narrowing.
|
|
37
|
+
*/
|
|
38
|
+
export function inputFromEvent(e) {
|
|
39
|
+
const target = e.target;
|
|
40
|
+
if (target instanceof HTMLInputElement ||
|
|
41
|
+
target instanceof HTMLSelectElement) {
|
|
42
|
+
return target;
|
|
43
|
+
}
|
|
44
|
+
throw new Error("Event target is not an input element");
|
|
45
|
+
}
|
|
71
46
|
//# sourceMappingURL=dom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/dom.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/dom.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,UAAU,cAAc,CAC5B,IAAgB,EAChB,QAAgB,EAChB,GAAY;IAEZ,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAc,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;IACpE,IAAI,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,WAAW,QAAQ,aAAa,GAAG,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAC1E,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,CAAQ;IACrC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,IACE,MAAM,YAAY,gBAAgB;QAClC,MAAM,YAAY,iBAAiB,EACnC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -18,5 +18,20 @@ export type InputResult = {
|
|
|
18
18
|
} | {
|
|
19
19
|
kind: "ignored";
|
|
20
20
|
};
|
|
21
|
+
export type LocalRoute = {
|
|
22
|
+
kind: "join_room";
|
|
23
|
+
room: string;
|
|
24
|
+
} | {
|
|
25
|
+
kind: "leave_room";
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Classify an InputResult to determine if it should be handled locally
|
|
29
|
+
* (e.g. join_room needs to set client state and fetch history) or sent
|
|
30
|
+
* directly to the server via sendAction.
|
|
31
|
+
*
|
|
32
|
+
* Returns null for actions that should go through sendAction directly,
|
|
33
|
+
* and for non-action results (local, ignored).
|
|
34
|
+
*/
|
|
35
|
+
export declare function routeAction(result: InputResult): LocalRoute | null;
|
|
21
36
|
export declare function parseInput(text: string, currentRoom: string | undefined, dmTarget?: string): InputResult;
|
|
22
37
|
//# sourceMappingURL=input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/input.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMzC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAMxB,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,WAAW,CA6Bb"}
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/input.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMzC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAMxB,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAE3B;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,CAUlE;AAMD,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,WAAW,CA6Bb"}
|
|
@@ -4,6 +4,26 @@
|
|
|
4
4
|
* Pure logic, no DOM dependency. Returns an Action or a local command result.
|
|
5
5
|
* Testable in isolation.
|
|
6
6
|
*/
|
|
7
|
+
/**
|
|
8
|
+
* Classify an InputResult to determine if it should be handled locally
|
|
9
|
+
* (e.g. join_room needs to set client state and fetch history) or sent
|
|
10
|
+
* directly to the server via sendAction.
|
|
11
|
+
*
|
|
12
|
+
* Returns null for actions that should go through sendAction directly,
|
|
13
|
+
* and for non-action results (local, ignored).
|
|
14
|
+
*/
|
|
15
|
+
export function routeAction(result) {
|
|
16
|
+
if (result.kind !== "action")
|
|
17
|
+
return null;
|
|
18
|
+
const action = result.action;
|
|
19
|
+
if (action.action === "join_room") {
|
|
20
|
+
return { kind: "join_room", room: action.room };
|
|
21
|
+
}
|
|
22
|
+
if (action.action === "leave_room") {
|
|
23
|
+
return { kind: "leave_room" };
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
7
27
|
// ---------------------------------------------------------------------------
|
|
8
28
|
// Parser
|
|
9
29
|
// ---------------------------------------------------------------------------
|
|
@@ -111,6 +131,24 @@ function parseCommand(text, currentRoom) {
|
|
|
111
131
|
kind: "action",
|
|
112
132
|
action: { action: "destroy_room", room: parts[1] },
|
|
113
133
|
};
|
|
134
|
+
case "rename":
|
|
135
|
+
if (!parts[1] || !parts[2]) {
|
|
136
|
+
return {
|
|
137
|
+
kind: "local",
|
|
138
|
+
result: {
|
|
139
|
+
type: "error",
|
|
140
|
+
text: "Usage: /rename <agent> <new-name>",
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
kind: "action",
|
|
146
|
+
action: {
|
|
147
|
+
action: "rename_agent",
|
|
148
|
+
agent: parts[1],
|
|
149
|
+
name: parts.slice(2).join(" "),
|
|
150
|
+
},
|
|
151
|
+
};
|
|
114
152
|
case "help":
|
|
115
153
|
return {
|
|
116
154
|
kind: "local",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/input.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/input.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Entry point — bootstraps the web UI.
|
|
2
|
+
* Entry point — bootstraps the web UI with Preact.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Owns the state store, WebSocket connection, and action handlers.
|
|
5
|
+
* Renders the App component on every state change.
|
|
6
6
|
*/
|
|
7
7
|
import "./styles.css";
|
|
8
8
|
//# sourceMappingURL=main.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/main.
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../src/bridges/user/web/frontend/main.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,cAAc,CAAC"}
|