bothouse-dsh 0.1.50 → 0.1.52

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.
Files changed (33) hide show
  1. package/README.en.md +1 -1
  2. package/README.md +2 -2
  3. package/collab/cli-member.mjs +9 -1
  4. package/collab/devices.html +319 -0
  5. package/collab/dsh-member.mjs +2 -1
  6. package/collab/pages-migrate.mjs +50 -0
  7. package/collab/plugin.mjs +11 -1
  8. package/collab/team-mode-rules.md +5 -5
  9. package/collab/wiki-galaxy/index.html +345 -0
  10. package/cordis.patch.yml +15 -2
  11. package/locale/en.json +6 -0
  12. package/locale/zh.json +6 -0
  13. package/{client → node_modules/bothouse-dsh-channels}/client.js +3 -99
  14. package/node_modules/bothouse-dsh-channels/index.js +2 -0
  15. package/node_modules/bothouse-dsh-channels/locale/en.json +6 -0
  16. package/node_modules/bothouse-dsh-channels/locale/zh.json +6 -0
  17. package/node_modules/bothouse-dsh-channels/package.json +29 -0
  18. package/node_modules/bothouse-dsh-desk/client.js +36 -0
  19. package/node_modules/bothouse-dsh-desk/index.js +2 -0
  20. package/node_modules/bothouse-dsh-desk/locale/en.json +6 -0
  21. package/node_modules/bothouse-dsh-desk/locale/zh.json +6 -0
  22. package/node_modules/bothouse-dsh-desk/package.json +34 -0
  23. package/node_modules/bothouse-dsh-devices/client.js +44 -0
  24. package/node_modules/bothouse-dsh-devices/index.js +2 -0
  25. package/node_modules/bothouse-dsh-devices/locale/en.json +6 -0
  26. package/node_modules/bothouse-dsh-devices/locale/zh.json +6 -0
  27. package/node_modules/bothouse-dsh-devices/package.json +34 -0
  28. package/node_modules/bothouse-dsh-panel/client.js +42 -0
  29. package/node_modules/bothouse-dsh-panel/index.js +2 -0
  30. package/node_modules/bothouse-dsh-panel/locale/en.json +6 -0
  31. package/node_modules/bothouse-dsh-panel/locale/zh.json +6 -0
  32. package/node_modules/bothouse-dsh-panel/package.json +34 -0
  33. package/package.json +15 -16
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "bothouse-dsh-channels",
3
+ "version": "0.1.0",
4
+ "description": "Discord-style shell for the Web GUI: server rail, channel list, and Agent member list",
5
+ "type": "module",
6
+ "main": "./index.js",
7
+ "exports": {
8
+ ".": "./index.js",
9
+ "./client": "./client.js",
10
+ "./locale/*.json": "./locale/*.json",
11
+ "./package.json": "./package.json"
12
+ },
13
+ "license": "Apache-2.0",
14
+ "dsh": {
15
+ "client": {
16
+ "inject": [
17
+ "@deepseek-ai/dsh-api-session-controller",
18
+ "@deepseek-ai/dsh-api-workspace-controller",
19
+ "@deepseek-ai/dsh-client-locale",
20
+ "@deepseek-ai/dsh-client-ui-conversation",
21
+ "@deepseek-ai/dsh-client-ui-layout",
22
+ "@deepseek-ai/dsh-client-ui-primitives",
23
+ "@deepseek-ai/dsh-client-ui-sidebar",
24
+ "@deepseek-ai/dsh-client-ui-workspace"
25
+ ],
26
+ "platform": "web"
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,36 @@
1
+ window.__ModuleLoader__.load({
2
+ id: "bothouse-dsh-desk",
3
+ factory: (require) => {
4
+ var module = { exports: {} };
5
+ var exports = module.exports;
6
+ "use strict";
7
+ const { jsx } = require("react/jsx-runtime");
8
+ const primitives = require("@deepseek-ai/dsh-client-ui-primitives");
9
+ const NS = "bothouse-dsh-desk";
10
+ const DICT = {"zh":{"label":"团队工作台"},"en":{"label":"Team desk"}};
11
+ const BG = "var(--dsw-alias-bg-base)";
12
+ // Same frame as client-ui-discord EmbedPage: same-origin page, relative to document.baseURI so
13
+ // the panel proxy's /dsh/ prefix is kept.
14
+ function EmbedPage({ path, title }) {
15
+ const src = new URL(path, document.baseURI).toString();
16
+ return jsx("div", { style: { boxSizing: "border-box", display: "flex", width: "100%", height: "100%", minHeight: 0, paddingTop: "var(--dsh-frame-top-clearance, 0px)", background: BG },
17
+ children: jsx("iframe", { src, title, loading: "lazy", referrerPolicy: "no-referrer", style: { flex: 1, width: "100%", height: "100%", border: 0, background: BG } }) });
18
+ }
19
+ function Icon({ size }) { return jsx(primitives.IconChecklistOutlineRegular, { size }); }
20
+ exports.inject = ["slots", "locale", "layout"];
21
+ exports.apply = function apply(ctx) {
22
+ ctx.effect(() => ctx.locale.register(NS, DICT), NS + ": dictionaries");
23
+ const t = ctx.locale.bind(NS);
24
+ ctx.slots.inject("main", () => ctx.slots.register({
25
+ name: "main", key: "collab-desk", locale: NS,
26
+ inject: () => ({ path: "collab/desk", title: t("label") }),
27
+ }, EmbedPage));
28
+ ctx.slots.inject("sidebar.panellist", () => ctx.slots.register({
29
+ name: "sidebar.panellist", id: "collab-desk", order: 6, locale: NS, label: () => t("label"),
30
+ }, Icon));
31
+ if (location.hash === "#collab-desk") ctx.layout.selectPanel("collab-desk");
32
+ };
33
+
34
+ return module.exports;
35
+ }
36
+ });
@@ -0,0 +1,2 @@
1
+ // Host half: nothing; the page lives entirely in ./client.js.
2
+ export function apply() {}
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "Team desk",
4
+ "description": "Live board of tasks and events."
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "团队工作台",
4
+ "description": "任务和事件的实时看板。"
5
+ }
6
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "bothouse-dsh-desk",
3
+ "version": "0.1.0",
4
+ "description": "Live board of tasks and events.",
5
+ "type": "module",
6
+ "main": "./index.js",
7
+ "exports": {
8
+ ".": "./index.js",
9
+ "./client": "./client.js",
10
+ "./locale/*.json": "./locale/*.json",
11
+ "./package.json": "./package.json"
12
+ },
13
+ "license": "Apache-2.0",
14
+ "files": [
15
+ "index.js",
16
+ "client.js",
17
+ "locale/*.json"
18
+ ],
19
+ "dsh": {
20
+ "client": {
21
+ "inject": [
22
+ "@deepseek-ai/dsh-api-session-controller",
23
+ "@deepseek-ai/dsh-api-workspace-controller",
24
+ "@deepseek-ai/dsh-client-locale",
25
+ "@deepseek-ai/dsh-client-ui-conversation",
26
+ "@deepseek-ai/dsh-client-ui-layout",
27
+ "@deepseek-ai/dsh-client-ui-primitives",
28
+ "@deepseek-ai/dsh-client-ui-sidebar",
29
+ "@deepseek-ai/dsh-client-ui-workspace"
30
+ ],
31
+ "platform": "web"
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,44 @@
1
+ window.__ModuleLoader__.load({
2
+ id: "bothouse-dsh-devices",
3
+ factory: (require) => {
4
+ var module = { exports: {} };
5
+ var exports = module.exports;
6
+ "use strict";
7
+ const { jsx } = require("react/jsx-runtime");
8
+ const primitives = require("@deepseek-ai/dsh-client-ui-primitives");
9
+ const NS = "bothouse-dsh-devices";
10
+ const DICT = {"zh":{"label":"其他电脑"},"en":{"label":"Other computers"}};
11
+ const BG = "var(--dsw-alias-bg-base)";
12
+ // Same frame as client-ui-discord EmbedPage: same-origin page, relative to document.baseURI so
13
+ // the panel proxy's /dsh/ prefix is kept.
14
+ function EmbedPage({ path, title }) {
15
+ const src = new URL(path, document.baseURI).toString();
16
+ return jsx("div", { style: { boxSizing: "border-box", display: "flex", width: "100%", height: "100%", minHeight: 0, paddingTop: "var(--dsh-frame-top-clearance, 0px)", background: BG },
17
+ children: jsx("iframe", { src, title, loading: "lazy", referrerPolicy: "no-referrer", style: { flex: 1, width: "100%", height: "100%", border: 0, background: BG } }) });
18
+ }
19
+ function Icon({ size }) { return jsx(primitives.IconLinkOutlineRegular, { size }); }
20
+ exports.inject = ["slots", "locale", "layout"];
21
+ exports.apply = function apply(ctx) {
22
+ ctx.effect(() => ctx.locale.register(NS, DICT), NS + ": dictionaries");
23
+ const t = ctx.locale.bind(NS);
24
+ ctx.slots.inject("main", () => ctx.slots.register({
25
+ name: "main", key: "collab-devices", locale: NS,
26
+ inject: () => ({ path: "collab/devices", title: t("label") }),
27
+ }, EmbedPage));
28
+ ctx.slots.inject("sidebar.panellist", () => ctx.slots.register({
29
+ name: "sidebar.panellist", id: "collab-devices", order: 9, locale: NS, label: () => t("label"),
30
+ }, Icon));
31
+ ctx.effect(() => {
32
+ const beat = () => {
33
+ globalThis.fetch?.(new URL("collab/api/remote/alive", document.baseURI), { method: "POST", credentials: "same-origin" }).catch(() => {});
34
+ };
35
+ beat();
36
+ const timer = setInterval(beat, 3000);
37
+ return () => clearInterval(timer);
38
+ }, NS + ": remote link heartbeat");
39
+ if (location.hash === "#collab-devices") ctx.layout.selectPanel("collab-devices");
40
+ };
41
+
42
+ return module.exports;
43
+ }
44
+ });
@@ -0,0 +1,2 @@
1
+ // Host half: nothing; the page lives entirely in ./client.js.
2
+ export function apply() {}
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "Other computers",
4
+ "description": "Pair another computer by a one-time number and drive its channels, desk and panel."
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "其他电脑",
4
+ "description": "用一次性号码配对另一台电脑,操作它的频道、工作台和面板。"
5
+ }
6
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "bothouse-dsh-devices",
3
+ "version": "0.1.0",
4
+ "description": "Pair another computer by a one-time number and drive its channels, desk and panel.",
5
+ "type": "module",
6
+ "main": "./index.js",
7
+ "exports": {
8
+ ".": "./index.js",
9
+ "./client": "./client.js",
10
+ "./locale/*.json": "./locale/*.json",
11
+ "./package.json": "./package.json"
12
+ },
13
+ "license": "Apache-2.0",
14
+ "files": [
15
+ "index.js",
16
+ "client.js",
17
+ "locale/*.json"
18
+ ],
19
+ "dsh": {
20
+ "client": {
21
+ "inject": [
22
+ "@deepseek-ai/dsh-api-session-controller",
23
+ "@deepseek-ai/dsh-api-workspace-controller",
24
+ "@deepseek-ai/dsh-client-locale",
25
+ "@deepseek-ai/dsh-client-ui-conversation",
26
+ "@deepseek-ai/dsh-client-ui-layout",
27
+ "@deepseek-ai/dsh-client-ui-primitives",
28
+ "@deepseek-ai/dsh-client-ui-sidebar",
29
+ "@deepseek-ai/dsh-client-ui-workspace"
30
+ ],
31
+ "platform": "web"
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,42 @@
1
+ window.__ModuleLoader__.load({
2
+ id: "bothouse-dsh-panel",
3
+ factory: (require) => {
4
+ var module = { exports: {} };
5
+ var exports = module.exports;
6
+ "use strict";
7
+ const { jsx } = require("react/jsx-runtime");
8
+ const primitives = require("@deepseek-ai/dsh-client-ui-primitives");
9
+ const NS = "bothouse-dsh-panel";
10
+ const DICT = {"zh":{"label":"bothouse 面板","galaxy":"Wiki 星河"},"en":{"label":"bothouse panel","galaxy":"Wiki galaxy"}};
11
+ const BG = "var(--dsw-alias-bg-base)";
12
+ // Same frame as client-ui-discord EmbedPage: same-origin page, relative to document.baseURI so
13
+ // the panel proxy's /dsh/ prefix is kept.
14
+ function EmbedPage({ path, title }) {
15
+ const src = new URL(path, document.baseURI).toString();
16
+ return jsx("div", { style: { boxSizing: "border-box", display: "flex", width: "100%", height: "100%", minHeight: 0, paddingTop: "var(--dsh-frame-top-clearance, 0px)", background: BG },
17
+ children: jsx("iframe", { src, title, loading: "lazy", referrerPolicy: "no-referrer", style: { flex: 1, width: "100%", height: "100%", border: 0, background: BG } }) });
18
+ }
19
+ function Icon({ size }) { return jsx(primitives.IconGaugeOutlineRegular, { size }); }
20
+ exports.inject = ["slots", "locale", "layout"];
21
+ exports.apply = function apply(ctx) {
22
+ ctx.effect(() => ctx.locale.register(NS, DICT), NS + ": dictionaries");
23
+ const t = ctx.locale.bind(NS);
24
+ ctx.slots.inject("main", () => ctx.slots.register({
25
+ name: "main", key: "bothouse-panel", locale: NS,
26
+ inject: () => ({ path: "collab/panel/", title: t("label") }),
27
+ }, EmbedPage));
28
+ ctx.slots.inject("sidebar.panellist", () => ctx.slots.register({
29
+ name: "sidebar.panellist", id: "bothouse-panel", order: 7, locale: NS, label: () => t("label"),
30
+ }, Icon));
31
+ ctx.slots.inject("main", () => ctx.slots.register({
32
+ name: "main", key: "wiki-galaxy", locale: NS,
33
+ inject: () => ({ path: "collab/panel/wiki-galaxy", title: t("galaxy") }),
34
+ }, EmbedPage));
35
+ // After the registrations: selecting a panel whose main entry is not registered yet fails.
36
+ if (location.hash === "#wiki-galaxy") ctx.layout.selectPanel("wiki-galaxy");
37
+ if (location.hash === "#bothouse-panel") ctx.layout.selectPanel("bothouse-panel");
38
+ };
39
+
40
+ return module.exports;
41
+ }
42
+ });
@@ -0,0 +1,2 @@
1
+ // Host half: nothing; the page lives entirely in ./client.js.
2
+ export function apply() {}
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "bothouse panel",
4
+ "description": "bothouse management panel: roles, usage, wiki galaxy."
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "bothouse 面板",
4
+ "description": "bothouse 管理面板:角色、用量、Wiki 星河。"
5
+ }
6
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "bothouse-dsh-panel",
3
+ "version": "0.1.0",
4
+ "description": "bothouse management panel: roles, usage, wiki galaxy.",
5
+ "type": "module",
6
+ "main": "./index.js",
7
+ "exports": {
8
+ ".": "./index.js",
9
+ "./client": "./client.js",
10
+ "./locale/*.json": "./locale/*.json",
11
+ "./package.json": "./package.json"
12
+ },
13
+ "license": "Apache-2.0",
14
+ "files": [
15
+ "index.js",
16
+ "client.js",
17
+ "locale/*.json"
18
+ ],
19
+ "dsh": {
20
+ "client": {
21
+ "inject": [
22
+ "@deepseek-ai/dsh-api-session-controller",
23
+ "@deepseek-ai/dsh-api-workspace-controller",
24
+ "@deepseek-ai/dsh-client-locale",
25
+ "@deepseek-ai/dsh-client-ui-conversation",
26
+ "@deepseek-ai/dsh-client-ui-layout",
27
+ "@deepseek-ai/dsh-client-ui-primitives",
28
+ "@deepseek-ai/dsh-client-ui-sidebar",
29
+ "@deepseek-ai/dsh-client-ui-workspace"
30
+ ],
31
+ "platform": "web"
32
+ }
33
+ }
34
+ }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "bothouse-dsh",
3
- "version": "0.1.50",
3
+ "version": "0.1.52",
4
4
  "description": "BotHouse channels for DeepSeek Harness: Discord-style rooms where DSH models and local CLIs (Claude Code, Codex, Gemini) are members",
5
5
  "type": "module",
6
6
  "main": "./collab/plugin.mjs",
7
7
  "exports": {
8
8
  ".": "./collab/plugin.mjs",
9
- "./client": "./client/client.js",
9
+ "./locale/*.json": "./locale/*.json",
10
10
  "./package.json": "./package.json"
11
11
  },
12
12
  "keywords": [
@@ -28,8 +28,10 @@
28
28
  "collab/*.json",
29
29
  "collab/team-mode-rules.md",
30
30
  "collab/desk/index.html",
31
+ "collab/devices.html",
32
+ "collab/wiki-galaxy/index.html",
31
33
  "collab/avatars/*.png",
32
- "client/client.js",
34
+ "locale/*.json",
33
35
  "cordis.patch.yml",
34
36
  "README.md",
35
37
  "README.en.md"
@@ -37,19 +39,6 @@
37
39
  "dsh": {
38
40
  "bundle": {
39
41
  "patch": "./cordis.patch.yml"
40
- },
41
- "client": {
42
- "inject": [
43
- "@deepseek-ai/dsh-api-session-controller",
44
- "@deepseek-ai/dsh-api-workspace-controller",
45
- "@deepseek-ai/dsh-client-locale",
46
- "@deepseek-ai/dsh-client-ui-conversation",
47
- "@deepseek-ai/dsh-client-ui-layout",
48
- "@deepseek-ai/dsh-client-ui-primitives",
49
- "@deepseek-ai/dsh-client-ui-sidebar",
50
- "@deepseek-ai/dsh-client-ui-workspace"
51
- ],
52
- "platform": "web"
53
42
  }
54
43
  },
55
44
  "engines": {
@@ -63,8 +52,18 @@
63
52
  "dependencies": {
64
53
  "@agentclientprotocol/sdk": "1.4.0",
65
54
  "@zed-industries/claude-code-acp": "^0.16.2",
55
+ "bothouse-dsh-channels": "0.1.0",
56
+ "bothouse-dsh-desk": "0.1.0",
57
+ "bothouse-dsh-devices": "0.1.0",
58
+ "bothouse-dsh-panel": "0.1.0",
66
59
  "ws": "8.22.1"
67
60
  },
61
+ "bundleDependencies": [
62
+ "bothouse-dsh-channels",
63
+ "bothouse-dsh-desk",
64
+ "bothouse-dsh-panel",
65
+ "bothouse-dsh-devices"
66
+ ],
68
67
  "optionalDependencies": {
69
68
  "@agentclientprotocol/codex-acp": "^2.2.2"
70
69
  }