dsh-connect 0.6.6 → 0.7.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/README.md +16 -17
- package/README.zh.md +16 -17
- package/lib/binding.d.ts +2 -0
- package/lib/binding.d.ts.map +1 -1
- package/lib/binding.js +1 -1
- package/lib/binding.js.map +1 -1
- package/lib/commands.d.ts +13 -1
- package/lib/commands.d.ts.map +1 -1
- package/lib/commands.js +22 -6
- package/lib/commands.js.map +1 -1
- package/lib/dedup.d.ts +31 -0
- package/lib/dedup.d.ts.map +1 -0
- package/lib/dedup.js +52 -0
- package/lib/dedup.js.map +1 -0
- package/lib/i18n.d.ts +25 -1
- package/lib/i18n.d.ts.map +1 -1
- package/lib/i18n.js +50 -2
- package/lib/i18n.js.map +1 -1
- package/lib/index.d.ts +8 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -1
- package/lib/index.js.map +1 -1
- package/lib/mirror-lock.d.ts +51 -0
- package/lib/mirror-lock.d.ts.map +1 -0
- package/lib/mirror-lock.js +56 -0
- package/lib/mirror-lock.js.map +1 -0
- package/lib/retry.d.ts +35 -0
- package/lib/retry.d.ts.map +1 -0
- package/lib/retry.js +41 -0
- package/lib/retry.js.map +1 -0
- package/lib/runner.d.ts +54 -6
- package/lib/runner.d.ts.map +1 -1
- package/lib/runner.js +309 -107
- package/lib/runner.js.map +1 -1
- package/lib/scheduler.d.ts +46 -0
- package/lib/scheduler.d.ts.map +1 -0
- package/lib/scheduler.js +162 -0
- package/lib/scheduler.js.map +1 -0
- package/lib/service.d.ts +28 -1
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +114 -4
- package/lib/service.js.map +1 -1
- package/lib/types.d.ts +8 -0
- package/lib/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/LICENSE +0 -21
package/README.md
CHANGED
|
@@ -50,12 +50,12 @@ dsh plugin --profile web add dsh-connect-web
|
|
|
50
50
|
dsh plugin --profile web update dsh-connect dsh-connect-feishu
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
**Disable** —
|
|
53
|
+
**Disable** — override the bundle-registered entries with `disabled: true` in the profile patch (see `~/.dsh/profiles/<profile>/cordis.patch.yml`):
|
|
54
54
|
|
|
55
55
|
```yaml
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
- id: connect # set disabled: true (and connect-feishu) to disable
|
|
57
|
+
name: dsh-connect
|
|
58
|
+
disabled: true
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
**Complete removal** — uninstall the packages and delete the data they created:
|
|
@@ -70,21 +70,20 @@ rm -f ~/.dsh/.dsh-connect/feishu-credentials.json
|
|
|
70
70
|
## Quick start
|
|
71
71
|
|
|
72
72
|
1. **Install the plugins** (see above).
|
|
73
|
-
2. **Add the minimal config** to `~/.dsh/profiles/<profile>/cordis.patch.yml` (also see [`examples/profile-cordis.patch.yml`](../../examples/profile-cordis.patch.yml)):
|
|
73
|
+
2. **Add the minimal config** to `~/.dsh/profiles/<profile>/cordis.patch.yml` (also see [`examples/profile-cordis.patch.yml`](../../examples/profile-cordis.patch.yml)). The plugins register themselves via their bundle manifests, so only override their config — do **not** `insert` them again (duplicate ids crash dsh at boot):
|
|
74
74
|
|
|
75
75
|
```yaml
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
dmMode: open
|
|
76
|
+
- id: connect
|
|
77
|
+
name: dsh-connect
|
|
78
|
+
# workDir: D:\your\workdir # agent working directory (default: process cwd)
|
|
79
|
+
- id: connect-feishu
|
|
80
|
+
name: dsh-connect-feishu
|
|
81
|
+
config:
|
|
82
|
+
appId: cli_xxxx
|
|
83
|
+
appSecret: cli_secret_xxxx
|
|
84
|
+
transport: websocket
|
|
85
|
+
requireMention: true
|
|
86
|
+
dmMode: open
|
|
88
87
|
```
|
|
89
88
|
|
|
90
89
|
3. **Start the host** — `dsh web` (or `dsh run`). With no credentials configured, `dsh-connect-feishu` enters **one-click onboarding**: scan the QR / open the link from the log to authorize the bot.
|
package/README.zh.md
CHANGED
|
@@ -50,12 +50,12 @@ dsh plugin --profile web add dsh-connect-web
|
|
|
50
50
|
dsh plugin --profile web update dsh-connect dsh-connect-feishu
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
**禁用** ——
|
|
53
|
+
**禁用** —— 在 profile patch 中将 bundle 注册的条目覆盖为 `disabled: true`(参见 `~/.dsh/profiles/<profile>/cordis.patch.yml`):
|
|
54
54
|
|
|
55
55
|
```yaml
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
- id: connect # set disabled: true (and connect-feishu) to disable
|
|
57
|
+
name: dsh-connect
|
|
58
|
+
disabled: true
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
**彻底移除** —— 卸载软件包并删除它们产生的数据:
|
|
@@ -70,21 +70,20 @@ rm -f ~/.dsh/.dsh-connect/feishu-credentials.json
|
|
|
70
70
|
## 快速开始
|
|
71
71
|
|
|
72
72
|
1. **安装插件**(见上文)。
|
|
73
|
-
2. **添加最小配置**到 `~/.dsh/profiles/<profile>/cordis.patch.yml`(另见 [`examples/profile-cordis.patch.yml`](../../examples/profile-cordis.patch.yml)
|
|
73
|
+
2. **添加最小配置**到 `~/.dsh/profiles/<profile>/cordis.patch.yml`(另见 [`examples/profile-cordis.patch.yml`](../../examples/profile-cordis.patch.yml))。这些插件会通过各自的 bundle 清单自动注册,因此这里只需要**覆盖(override)**它们的配置——**不要**再用 `insert` 重新插入(重复的 `id` 会让 dsh 启动失败):
|
|
74
74
|
|
|
75
75
|
```yaml
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
dmMode: open
|
|
76
|
+
- id: connect
|
|
77
|
+
name: dsh-connect
|
|
78
|
+
# workDir: D:\your\workdir # agent working directory (default: process cwd)
|
|
79
|
+
- id: connect-feishu
|
|
80
|
+
name: dsh-connect-feishu
|
|
81
|
+
config:
|
|
82
|
+
appId: cli_xxxx
|
|
83
|
+
appSecret: cli_secret_xxxx
|
|
84
|
+
transport: websocket
|
|
85
|
+
requireMention: true
|
|
86
|
+
dmMode: open
|
|
88
87
|
```
|
|
89
88
|
|
|
90
89
|
3. **启动宿主** —— `dsh web`(或 `dsh run`)。未配置凭据时,`dsh-connect-feishu` 会进入**一键开通**流程:扫描日志中的二维码 / 打开链接以授权机器人。
|
package/lib/binding.d.ts
CHANGED
|
@@ -40,6 +40,8 @@ export interface ChatBinding {
|
|
|
40
40
|
replyRef?: string;
|
|
41
41
|
images?: readonly string[];
|
|
42
42
|
files?: readonly string[];
|
|
43
|
+
/** Source channel of the message; preserved so replay routes to the right runner. */
|
|
44
|
+
channel?: string;
|
|
43
45
|
}>;
|
|
44
46
|
/** Every conversation ever opened in this chat, oldest last. */
|
|
45
47
|
sessions: ChatSessionRecord[];
|
package/lib/binding.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAUA,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC9C,oGAAoG;IACpG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAUA,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC9C,oGAAoG;IACpG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1B,qFAAqF;QACrF,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,gEAAgE;IAChE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AA0BD,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;AAE5G,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;gBAExD,QAAQ,CAAC,EAAE,MAAM;IAM7B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI;IAOrD;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;;OAGG;IACH,OAAO,IAAI,gBAAgB,CAAC,WAAW,CAAC;IAIxC;;OAEG;IACH,IAAI,IAAI,WAAW,EAAE;IAIrB;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE;IAUjD,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI9D,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAQ/B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAU9C,OAAO,CAAC,IAAI;IAoCZ,OAAO,CAAC,IAAI;CAQb"}
|
package/lib/binding.js
CHANGED
|
@@ -137,7 +137,7 @@ export class BindingStore {
|
|
|
137
137
|
...(b.lockOwner === "feishu" || b.lockOwner === "web" ? { lockOwner: b.lockOwner } : {}),
|
|
138
138
|
...(typeof b.lockAcquiredAt === "number" ? { lockAcquiredAt: b.lockAcquiredAt } : {}),
|
|
139
139
|
...(typeof b.lockTimeoutMs === "number" ? { lockTimeoutMs: b.lockTimeoutMs } : {}),
|
|
140
|
-
...(Array.isArray(b.queuedMessages) ? { queuedMessages: b.queuedMessages.filter((m) => typeof m === "object" && m !== null && typeof m.text === "string" && typeof m.senderKey === "string") } : {}),
|
|
140
|
+
...(Array.isArray(b.queuedMessages) ? { queuedMessages: b.queuedMessages.filter((m) => typeof m === "object" && m !== null && typeof m.text === "string" && typeof m.senderKey === "string").map((m) => (typeof m.channel === "string" ? { ...m, channel: m.channel } : m)) } : {}),
|
|
141
141
|
sessions: normalizeSessions(b.sessions),
|
|
142
142
|
});
|
|
143
143
|
}
|
package/lib/binding.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"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"}
|
package/lib/commands.d.ts
CHANGED
|
@@ -54,7 +54,19 @@ export type Command = {
|
|
|
54
54
|
readonly kind: "renew";
|
|
55
55
|
} | {
|
|
56
56
|
readonly kind: "export";
|
|
57
|
-
readonly format?: "markdown"
|
|
57
|
+
readonly format?: "markdown";
|
|
58
|
+
} | {
|
|
59
|
+
readonly kind: "ps";
|
|
60
|
+
readonly text: string;
|
|
61
|
+
} | {
|
|
62
|
+
readonly kind: "remind";
|
|
63
|
+
readonly text: string;
|
|
64
|
+
} | {
|
|
65
|
+
readonly kind: "send";
|
|
66
|
+
readonly path: string;
|
|
67
|
+
} | {
|
|
68
|
+
readonly kind: "broadcast";
|
|
69
|
+
readonly text: string;
|
|
58
70
|
} | {
|
|
59
71
|
readonly kind: "help";
|
|
60
72
|
} | {
|
package/lib/commands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,MAAM,OAAO,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,MAAM,OAAO,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA8GjD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAgC5C"}
|
package/lib/commands.js
CHANGED
|
@@ -80,15 +80,27 @@ export function parseCommand(raw) {
|
|
|
80
80
|
case "/renew-lock":
|
|
81
81
|
return { kind: "renew" };
|
|
82
82
|
case "/export": {
|
|
83
|
-
// Parse optional format parameter: /export markdown
|
|
84
|
-
|
|
83
|
+
// Parse optional format parameter: /export markdown. "pdf" was never
|
|
84
|
+
// implemented — it falls back to the markdown export instead of
|
|
85
|
+
// replying "not supported".
|
|
86
|
+
if (arg === "markdown" || arg === "md" || arg === "pdf") {
|
|
85
87
|
return { kind: "export", format: "markdown" };
|
|
86
88
|
}
|
|
87
|
-
else if (arg === "pdf") {
|
|
88
|
-
return { kind: "export", format: "pdf" };
|
|
89
|
-
}
|
|
90
89
|
return { kind: "export" };
|
|
91
90
|
}
|
|
91
|
+
case "/ps":
|
|
92
|
+
case "/append":
|
|
93
|
+
return { kind: "ps", text: arg ?? "" };
|
|
94
|
+
case "/remind":
|
|
95
|
+
case "/remindme":
|
|
96
|
+
case "/alert":
|
|
97
|
+
return { kind: "remind", text: arg ?? "" };
|
|
98
|
+
case "/send":
|
|
99
|
+
case "/file":
|
|
100
|
+
return { kind: "send", path: arg ?? "" };
|
|
101
|
+
case "/broadcast":
|
|
102
|
+
case "/announce":
|
|
103
|
+
return { kind: "broadcast", text: arg ?? "" };
|
|
92
104
|
case "/help":
|
|
93
105
|
case "/start":
|
|
94
106
|
return { kind: "help" };
|
|
@@ -118,7 +130,11 @@ export function helpText(t) {
|
|
|
118
130
|
"- `/mirror [--timeout N]` create Web mirror session (optional timeout in minutes)",
|
|
119
131
|
"- `/unlock` manually release session lock",
|
|
120
132
|
"- `/renew` renew current session lock timeout",
|
|
121
|
-
"- `/export [markdown
|
|
133
|
+
"- `/export [markdown]` export conversation history as Markdown",
|
|
134
|
+
"- `/ps <note>` append a note to the running task",
|
|
135
|
+
"- `/remind <time> <text>` schedule a reminder (e.g. `/remind 10m take a break`)",
|
|
136
|
+
"- `/send <path>` send a file from the workspace (image / file / audio / video)",
|
|
137
|
+
"- `/broadcast <text>` send a message to every bound chat (admins only)",
|
|
122
138
|
"- `/new` " + t.helpNew,
|
|
123
139
|
"- `/clear` " + t.helpClear,
|
|
124
140
|
"- `/stop` " + t.helpStop,
|
package/lib/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/lib/dedup.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sliding-window duplicate guard for inbound messages.
|
|
3
|
+
*
|
|
4
|
+
* Channel SDKs can re-deliver the same event after a reconnect (the Feishu
|
|
5
|
+
* WebSocket dispatcher does this), which would otherwise queue the same user
|
|
6
|
+
* message twice. Each inbound message carries a stable per-message id in
|
|
7
|
+
* `replyRef`; keys are (channel, chatKey, messageId) within a recency window.
|
|
8
|
+
* Messages without an id (not all channels set one) are never deduplicated.
|
|
9
|
+
* @module dsh-connect/dedup
|
|
10
|
+
*/
|
|
11
|
+
export declare class InboundDedup {
|
|
12
|
+
/** Re-delivery of the same id inside this window is a duplicate (default 5 min). */
|
|
13
|
+
private readonly windowMs;
|
|
14
|
+
/** Hard cap on remembered ids; oldest entries are dropped beyond it. */
|
|
15
|
+
private readonly maxEntries;
|
|
16
|
+
/** key → last-seen timestamp */
|
|
17
|
+
private readonly seen;
|
|
18
|
+
constructor(
|
|
19
|
+
/** Re-delivery of the same id inside this window is a duplicate (default 5 min). */
|
|
20
|
+
windowMs?: number,
|
|
21
|
+
/** Hard cap on remembered ids; oldest entries are dropped beyond it. */
|
|
22
|
+
maxEntries?: number);
|
|
23
|
+
/**
|
|
24
|
+
* Record the message and report whether an identical id was already seen
|
|
25
|
+
* within the window. Side-effect free for messages without an id.
|
|
26
|
+
*/
|
|
27
|
+
isDuplicate(channel: string, chatKey: string, messageId: string | undefined, now?: number): boolean;
|
|
28
|
+
/** Forget ids older than the window, then the oldest beyond the cap. */
|
|
29
|
+
private prune;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=dedup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,qBAAa,YAAY;IAKrB,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAP7B,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;;IAGhD,oFAAoF;IACnE,QAAQ,SAAa;IACtC,wEAAwE;IACvD,UAAU,SAAO;IAGpC;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,OAAO;IASvG,wEAAwE;IACxE,OAAO,CAAC,KAAK;CAUd"}
|
package/lib/dedup.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sliding-window duplicate guard for inbound messages.
|
|
3
|
+
*
|
|
4
|
+
* Channel SDKs can re-deliver the same event after a reconnect (the Feishu
|
|
5
|
+
* WebSocket dispatcher does this), which would otherwise queue the same user
|
|
6
|
+
* message twice. Each inbound message carries a stable per-message id in
|
|
7
|
+
* `replyRef`; keys are (channel, chatKey, messageId) within a recency window.
|
|
8
|
+
* Messages without an id (not all channels set one) are never deduplicated.
|
|
9
|
+
* @module dsh-connect/dedup
|
|
10
|
+
*/
|
|
11
|
+
export class InboundDedup {
|
|
12
|
+
windowMs;
|
|
13
|
+
maxEntries;
|
|
14
|
+
/** key → last-seen timestamp */
|
|
15
|
+
seen = new Map();
|
|
16
|
+
constructor(
|
|
17
|
+
/** Re-delivery of the same id inside this window is a duplicate (default 5 min). */
|
|
18
|
+
windowMs = 5 * 60_000,
|
|
19
|
+
/** Hard cap on remembered ids; oldest entries are dropped beyond it. */
|
|
20
|
+
maxEntries = 1024) {
|
|
21
|
+
this.windowMs = windowMs;
|
|
22
|
+
this.maxEntries = maxEntries;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Record the message and report whether an identical id was already seen
|
|
26
|
+
* within the window. Side-effect free for messages without an id.
|
|
27
|
+
*/
|
|
28
|
+
isDuplicate(channel, chatKey, messageId, now = Date.now()) {
|
|
29
|
+
if (messageId === undefined || messageId === "")
|
|
30
|
+
return false;
|
|
31
|
+
const key = `${channel}\u0000${chatKey}\u0000${messageId}`;
|
|
32
|
+
const previous = this.seen.get(key);
|
|
33
|
+
this.seen.set(key, now);
|
|
34
|
+
if (this.seen.size > this.maxEntries)
|
|
35
|
+
this.prune(now);
|
|
36
|
+
return previous !== undefined && now - previous < this.windowMs;
|
|
37
|
+
}
|
|
38
|
+
/** Forget ids older than the window, then the oldest beyond the cap. */
|
|
39
|
+
prune(now) {
|
|
40
|
+
for (const [key, timestamp] of this.seen) {
|
|
41
|
+
if (now - timestamp >= this.windowMs)
|
|
42
|
+
this.seen.delete(key);
|
|
43
|
+
}
|
|
44
|
+
if (this.seen.size > this.maxEntries) {
|
|
45
|
+
const byAge = [...this.seen.entries()].sort((a, b) => a[1] - b[1]);
|
|
46
|
+
const overflow = this.seen.size - this.maxEntries;
|
|
47
|
+
for (let i = 0; i < overflow; i++)
|
|
48
|
+
this.seen.delete(byAge[i][0]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=dedup.js.map
|
package/lib/dedup.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedup.js","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAY;IAMJ;IAEA;IAPnB,gCAAgC;IACf,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElD;IACE,oFAAoF;IACnE,WAAW,CAAC,GAAG,MAAM;IACtC,wEAAwE;IACvD,aAAa,IAAI;QAFjB,aAAQ,GAAR,QAAQ,CAAa;QAErB,eAAU,GAAV,UAAU,CAAO;IACjC,CAAC;IAEJ;;;OAGG;IACH,WAAW,CAAC,OAAe,EAAE,OAAe,EAAE,SAA6B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QAC3F,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;QAC9D,MAAM,GAAG,GAAG,GAAG,OAAO,SAAS,OAAO,SAAS,SAAS,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,OAAO,QAAQ,KAAK,SAAS,IAAI,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAClE,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,GAAW;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF"}
|
package/lib/i18n.d.ts
CHANGED
|
@@ -76,6 +76,14 @@ export interface Messages {
|
|
|
76
76
|
actionCancelled: string;
|
|
77
77
|
toolStepLabel(n: number, name: string): string;
|
|
78
78
|
queuedHint(n: number): string;
|
|
79
|
+
psUsage: string;
|
|
80
|
+
psReceived(text: string): string;
|
|
81
|
+
psNoActiveSession: string;
|
|
82
|
+
psAppendLabel(text: string): string;
|
|
83
|
+
busyHint(text: string): string;
|
|
84
|
+
contextHighPrompt(pct: number): string;
|
|
85
|
+
contextHighTitle: string;
|
|
86
|
+
compactQueued: string;
|
|
79
87
|
notifyFull: string;
|
|
80
88
|
notifyImportant: string;
|
|
81
89
|
notifyResult: string;
|
|
@@ -205,6 +213,23 @@ export interface Messages {
|
|
|
205
213
|
reminderOnce: string;
|
|
206
214
|
reminderLine(state: string, id: string, prompt: string, kind: string, when: string): string;
|
|
207
215
|
remindersCount(n: number, list: string): string;
|
|
216
|
+
reminderFired(text: string): string;
|
|
217
|
+
reminderSet(atDisplay: string, text: string): string;
|
|
218
|
+
reminderNoText: string;
|
|
219
|
+
reminderParseFailed(arg: string): string;
|
|
220
|
+
reminderPersistedHeader: string;
|
|
221
|
+
broadcastUsage: string;
|
|
222
|
+
broadcastNotAdmin: string;
|
|
223
|
+
broadcastDisabled: string;
|
|
224
|
+
broadcastSent(n: number): string;
|
|
225
|
+
broadcastUnsupported: string;
|
|
226
|
+
sendUsage: string;
|
|
227
|
+
sendNotFound(path: string): string;
|
|
228
|
+
sendIsDir(path: string): string;
|
|
229
|
+
sendTooLarge(path: string): string;
|
|
230
|
+
sendUnsupported: string;
|
|
231
|
+
sendSent(path: string): string;
|
|
232
|
+
sendFailed(detail: string): string;
|
|
208
233
|
noWorkspaces: string;
|
|
209
234
|
workspaceSessions(n: number): string;
|
|
210
235
|
workspacesCount(n: number, list: string): string;
|
|
@@ -221,7 +246,6 @@ export interface Messages {
|
|
|
221
246
|
messageQueued(position: number): string;
|
|
222
247
|
queueProcessed(count: number): string;
|
|
223
248
|
exportMarkdown(path: string): string;
|
|
224
|
-
exportPdfNotSupported: string;
|
|
225
249
|
exportNoSession: string;
|
|
226
250
|
exportFailed(error: string): string;
|
|
227
251
|
mirrorStatus(sessionId: string, lockedBy?: string, timeoutMin?: number, queuedCount?: number): string;
|
package/lib/i18n.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|
package/lib/i18n.js
CHANGED
|
@@ -79,6 +79,14 @@ const zh = {
|
|
|
79
79
|
actionCancelled: "已取消,未执行任何操作。",
|
|
80
80
|
toolStepLabel: (n, name) => `🔧 第 ${n} 次工具调用 \`${name}\``,
|
|
81
81
|
queuedHint: (n) => `(还有 ${n} 条消息排队中)`,
|
|
82
|
+
psUsage: "用法:`/ps <补充信息>`,向正在执行的任务追加说明。",
|
|
83
|
+
psReceived: (text) => `✅ 已向当前任务追加:${text}`,
|
|
84
|
+
psNoActiveSession: "当前没有活动会话,无法追加。可发送消息开始新对话。",
|
|
85
|
+
psAppendLabel: (text) => `[用户通过 /ps 追加的说明]\n${text}`,
|
|
86
|
+
busyHint: (text) => `⏳ 上一个请求仍在处理中。使用 \`/ps ${text}\` 可向正在执行的任务追加补充信息;或发 \`/stop\` 停止当前任务。`,
|
|
87
|
+
contextHighPrompt: (pct) => `⚠️ 上下文占用已达 ${pct}%,接近上限。是否现在压缩上下文?\n(压缩可减少 token 占用,但会概括早期对话内容)`,
|
|
88
|
+
contextHighTitle: "上下文压缩建议",
|
|
89
|
+
compactQueued: "✅ 已确认,当前任务结束后将自动压缩上下文。",
|
|
82
90
|
notifyFull: "尽量输出过程",
|
|
83
91
|
notifyImportant: "输出重要节点",
|
|
84
92
|
notifyResult: "只输出结果",
|
|
@@ -210,6 +218,23 @@ const zh = {
|
|
|
210
218
|
reminderOnce: "一次性",
|
|
211
219
|
reminderLine: (state, id, prompt, kind, when) => `${state} [${id}] ${prompt}(${kind},${when})`,
|
|
212
220
|
remindersCount: (n, list) => `定时提醒(${n}):\n${list}`,
|
|
221
|
+
reminderFired: (text) => `⏰ 提醒:${text}`,
|
|
222
|
+
reminderSet: (atDisplay, text) => `⏰ 已设置提醒(${atDisplay}):${text}`,
|
|
223
|
+
reminderNoText: "用法:/remind <时间> <内容>,例如 /remind 10分钟 提醒我喝水",
|
|
224
|
+
reminderParseFailed: (arg) => `无法解析时间「${arg}」。支持「10分钟」「2小时」「14:30」`,
|
|
225
|
+
reminderPersistedHeader: "— 持久化提醒 —",
|
|
226
|
+
broadcastUsage: "用法:/broadcast <内容>,向所有已绑定的会话发送消息",
|
|
227
|
+
broadcastNotAdmin: "只有管理员(allowUsers 中配置的用户)才能广播",
|
|
228
|
+
broadcastDisabled: "广播未启用:请先在配置里设置 allowUsers",
|
|
229
|
+
broadcastSent: (n) => `📢 已广播给 ${n} 个会话`,
|
|
230
|
+
broadcastUnsupported: "广播服务不可用",
|
|
231
|
+
sendUsage: "用法:/send <路径>,发送工作区内的文件(图片/文件/音视频)",
|
|
232
|
+
sendNotFound: (path) => `文件不存在:${path}`,
|
|
233
|
+
sendIsDir: (path) => `${path} 是目录,请指定文件`,
|
|
234
|
+
sendTooLarge: (path) => `文件过大(> 20MB):${path}`,
|
|
235
|
+
sendUnsupported: "当前通道不支持发送文件,已改为发送文件路径",
|
|
236
|
+
sendSent: (path) => `📎 已发送:${path}`,
|
|
237
|
+
sendFailed: (detail) => `❌ 发送文件失败:${detail}`,
|
|
213
238
|
noWorkspaces: "还没有工作区。可用 `/workspace <绝对路径>` 新建。",
|
|
214
239
|
workspaceSessions: (n) => ` · ${n} 会话`,
|
|
215
240
|
workspacesCount: (n, list) => `工作区(${n}):\n${list}`,
|
|
@@ -226,7 +251,6 @@ const zh = {
|
|
|
226
251
|
messageQueued: (position) => `📥 消息已加入队列(第 ${position} 位),等待锁释放后自动执行`,
|
|
227
252
|
queueProcessed: (count) => `✅ 已处理队列中的 ${count} 条消息`,
|
|
228
253
|
exportMarkdown: (path) => `📄 对话历史已导出为 Markdown:\n${path}`,
|
|
229
|
-
exportPdfNotSupported: "⚠️ PDF 导出暂不支持,请使用 Markdown 格式",
|
|
230
254
|
exportNoSession: "当前没有活动会话,无法导出",
|
|
231
255
|
exportFailed: (error) => `❌ 导出失败:${error}`,
|
|
232
256
|
mirrorStatus: (sessionId, lockedBy, timeoutMin, queuedCount) => {
|
|
@@ -331,6 +355,14 @@ const en = {
|
|
|
331
355
|
actionCancelled: "Cancelled — nothing was changed.",
|
|
332
356
|
toolStepLabel: (n, name) => `🔧 Tool call #${n}: \`${name}\``,
|
|
333
357
|
queuedHint: (n) => `(${n} more message(s) queued)`,
|
|
358
|
+
psUsage: "Usage: `/ps <note>` — append a note to the running task.",
|
|
359
|
+
psReceived: (text) => `✅ Note appended to the current task: ${text}`,
|
|
360
|
+
psNoActiveSession: "No active session to append to. Send a message to start a new conversation.",
|
|
361
|
+
psAppendLabel: (text) => `[Note appended by the user via /ps]\n${text}`,
|
|
362
|
+
busyHint: (text) => `⏳ The previous request is still processing. Use \`/ps ${text}\` to append a note to the running task, or \`/stop\` to cancel it.`,
|
|
363
|
+
contextHighPrompt: (pct) => `⚠️ Context usage is at ${pct}%, close to the limit. Compact now?\n(Compaction reduces token usage but summarizes earlier conversation content)`,
|
|
364
|
+
contextHighTitle: "Context compaction suggestion",
|
|
365
|
+
compactQueued: "✅ Confirmed — the context will be compacted automatically once the current task finishes.",
|
|
334
366
|
notifyFull: "Full process",
|
|
335
367
|
notifyImportant: "Key milestones",
|
|
336
368
|
notifyResult: "Result only",
|
|
@@ -462,6 +494,23 @@ const en = {
|
|
|
462
494
|
reminderOnce: "one-time",
|
|
463
495
|
reminderLine: (state, id, prompt, kind, when) => `${state} [${id}] ${prompt} (${kind}, ${when})`,
|
|
464
496
|
remindersCount: (n, list) => `Scheduled reminders (${n}):\n${list}`,
|
|
497
|
+
reminderFired: (text) => `⏰ Reminder: ${text}`,
|
|
498
|
+
reminderSet: (atDisplay, text) => `⏰ Reminder set (${atDisplay}): ${text}`,
|
|
499
|
+
reminderNoText: "Usage: /remind <time> <text>, e.g. /remind 10m drink water",
|
|
500
|
+
reminderParseFailed: (arg) => `Cannot parse time "${arg}". Try "10m", "2h" or "14:30"`,
|
|
501
|
+
reminderPersistedHeader: "— persistent reminders —",
|
|
502
|
+
broadcastUsage: "Usage: /broadcast <text> — send a message to every bound chat",
|
|
503
|
+
broadcastNotAdmin: "Only admins (users listed in allowUsers) can broadcast",
|
|
504
|
+
broadcastDisabled: "Broadcast is disabled: configure allowUsers first",
|
|
505
|
+
broadcastSent: (n) => `📢 Broadcast to ${n} chat(s)`,
|
|
506
|
+
broadcastUnsupported: "Broadcast service unavailable",
|
|
507
|
+
sendUsage: "Usage: /send <path> — send a file from the workspace (image/file/audio/video)",
|
|
508
|
+
sendNotFound: (path) => `File not found: ${path}`,
|
|
509
|
+
sendIsDir: (path) => `${path} is a directory; pick a file`,
|
|
510
|
+
sendTooLarge: (path) => `File too large (> 20MB): ${path}`,
|
|
511
|
+
sendUnsupported: "This channel cannot send files; sending the file path instead",
|
|
512
|
+
sendSent: (path) => `📎 Sent: ${path}`,
|
|
513
|
+
sendFailed: (detail) => `❌ Failed to send file: ${detail}`,
|
|
465
514
|
noWorkspaces: "No workspaces yet. Create one with `/workspace <absolute path>`.",
|
|
466
515
|
workspaceSessions: (n) => ` · ${n} session(s)`,
|
|
467
516
|
workspacesCount: (n, list) => `Workspaces (${n}):\n${list}`,
|
|
@@ -478,7 +527,6 @@ const en = {
|
|
|
478
527
|
messageQueued: (position) => `📥 Message queued (position ${position}), will execute after lock release`,
|
|
479
528
|
queueProcessed: (count) => `✅ Processed ${count} queued message(s)`,
|
|
480
529
|
exportMarkdown: (path) => `📄 Conversation history exported to Markdown:\n${path}`,
|
|
481
|
-
exportPdfNotSupported: "⚠️ PDF export is not supported yet, please use Markdown format",
|
|
482
530
|
exportNoSession: "No active session to export",
|
|
483
531
|
exportFailed: (error) => `❌ Export failed: ${error}`,
|
|
484
532
|
mirrorStatus: (sessionId, lockedBy, timeoutMin, queuedCount) => {
|