dsh-connect 0.2.0 → 0.5.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 +21 -0
- package/lib/commands.d.ts +4 -1
- package/lib/commands.d.ts.map +1 -1
- package/lib/commands.js +26 -25
- package/lib/commands.js.map +1 -1
- package/lib/i18n.d.ts +158 -0
- package/lib/i18n.d.ts.map +1 -0
- package/lib/i18n.js +309 -0
- package/lib/i18n.js.map +1 -0
- package/lib/index.d.ts +23 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -1
- package/lib/index.js.map +1 -1
- package/lib/runner.d.ts +33 -0
- package/lib/runner.d.ts.map +1 -1
- package/lib/runner.js +439 -129
- package/lib/runner.js.map +1 -1
- package/lib/types.d.ts +14 -0
- package/lib/types.d.ts.map +1 -1
- package/package.json +10 -1
package/README.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# dsh-connect
|
|
2
|
+
|
|
3
|
+
The **channel-agnostic core** for connecting [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (**DSH**) agents to chat platforms (Feishu / Lark and more): session binding, agent driving, streaming reply bridging, and local commands.
|
|
4
|
+
|
|
5
|
+
> Install together with a channel adapter, e.g. [dsh-connect-feishu](https://www.npmjs.com/package/dsh-connect-feishu).
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
dsh plugin --profile web add dsh-connect dsh-connect-feishu
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Documentation
|
|
14
|
+
|
|
15
|
+
For features, the command list, configuration options, and channel setup steps, see the GitHub repository:
|
|
16
|
+
|
|
17
|
+
https://github.com/IvanWu2015/dsh-connect
|
|
18
|
+
|
|
19
|
+
## License
|
|
20
|
+
|
|
21
|
+
MIT
|
package/lib/commands.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* agent, so they stay fast and side-effect-free for the model.
|
|
4
4
|
* @module dsh-connect/commands
|
|
5
5
|
*/
|
|
6
|
+
import type { Messages } from "./i18n.js";
|
|
6
7
|
export type Command = {
|
|
7
8
|
readonly kind: "new";
|
|
8
9
|
} | {
|
|
@@ -34,6 +35,8 @@ export type Command = {
|
|
|
34
35
|
readonly limit?: number;
|
|
35
36
|
} | {
|
|
36
37
|
readonly kind: "goals";
|
|
38
|
+
} | {
|
|
39
|
+
readonly kind: "schedule";
|
|
37
40
|
} | {
|
|
38
41
|
readonly kind: "model";
|
|
39
42
|
} | {
|
|
@@ -45,5 +48,5 @@ export type Command = {
|
|
|
45
48
|
readonly text: string;
|
|
46
49
|
};
|
|
47
50
|
export declare function parseCommand(raw: string): Command;
|
|
48
|
-
export declare
|
|
51
|
+
export declare function helpText(t: Messages): string;
|
|
49
52
|
//# sourceMappingURL=commands.d.ts.map
|
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;
|
|
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,YAAY,CAAA;CAAE,GAC/B;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,CAgEjD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAsB5C"}
|
package/lib/commands.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Slash-command parsing for chat control. Commands run without waking the
|
|
3
|
-
* agent, so they stay fast and side-effect-free for the model.
|
|
4
|
-
* @module dsh-connect/commands
|
|
5
|
-
*/
|
|
6
1
|
export function parseCommand(raw) {
|
|
7
2
|
const text = raw.trim();
|
|
8
3
|
const space = text.indexOf(" ");
|
|
@@ -52,6 +47,9 @@ export function parseCommand(raw) {
|
|
|
52
47
|
case "/goals":
|
|
53
48
|
case "/goal":
|
|
54
49
|
return { kind: "goals" };
|
|
50
|
+
case "/schedule":
|
|
51
|
+
case "/reminders":
|
|
52
|
+
return { kind: "schedule" };
|
|
55
53
|
case "/model":
|
|
56
54
|
return { kind: "model" };
|
|
57
55
|
case "/workspaces":
|
|
@@ -64,24 +62,27 @@ export function parseCommand(raw) {
|
|
|
64
62
|
return { kind: "message", text };
|
|
65
63
|
}
|
|
66
64
|
}
|
|
67
|
-
export
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
65
|
+
export function helpText(t) {
|
|
66
|
+
return [
|
|
67
|
+
t.helpHeader,
|
|
68
|
+
"- `/menu` " + t.helpMenu,
|
|
69
|
+
"- `/settings`(`/set`)" + t.helpSettings,
|
|
70
|
+
"- `/status` " + t.helpStatus,
|
|
71
|
+
"- `/task` " + t.helpTask,
|
|
72
|
+
"- `/chat`(`/session`)" + t.helpChat,
|
|
73
|
+
"- `/dir` " + t.helpDir,
|
|
74
|
+
"- `/workspace <absolute path>` " + t.helpWorkspace,
|
|
75
|
+
"- `/plugins` " + t.helpPlugins,
|
|
76
|
+
"- `/compact` " + t.helpCompact,
|
|
77
|
+
"- `/history [count]` " + t.helpHistory,
|
|
78
|
+
"- `/goals` " + t.helpGoals,
|
|
79
|
+
"- `/schedule` " + t.helpSchedule,
|
|
80
|
+
"- `/model` " + t.helpModel,
|
|
81
|
+
"- `/workspaces` " + t.helpWorkspaces,
|
|
82
|
+
"- `/new` " + t.helpNew,
|
|
83
|
+
"- `/clear` " + t.helpClear,
|
|
84
|
+
"- `/stop` " + t.helpStop,
|
|
85
|
+
"- " + t.helpOther,
|
|
86
|
+
].join("\n");
|
|
87
|
+
}
|
|
87
88
|
//# sourceMappingURL=commands.js.map
|
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/i18n.d.ts
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal user-facing string tables for `dsh-connect`. Every message a user
|
|
3
|
+
* can see (menus, command replies, status lines, hints) lives here in both
|
|
4
|
+
* `zh` and `en`; the configured `language` picks the active table. Keep this
|
|
5
|
+
* file free of imports from the runner so it can be shared by any module.
|
|
6
|
+
* @module dsh-connect/i18n
|
|
7
|
+
*/
|
|
8
|
+
export type Language = "zh" | "en";
|
|
9
|
+
/** All user-visible strings, as template functions where they interpolate. */
|
|
10
|
+
export interface Messages {
|
|
11
|
+
reasonCompleted: string;
|
|
12
|
+
reasonAborted: string;
|
|
13
|
+
reasonBlocked: string;
|
|
14
|
+
reasonError: string;
|
|
15
|
+
reasonMaxTokens: string;
|
|
16
|
+
reasonInterrupted: string;
|
|
17
|
+
reasonUnknown: string;
|
|
18
|
+
menuRoot: string;
|
|
19
|
+
menuWorkspace: string;
|
|
20
|
+
menuChat: string;
|
|
21
|
+
menuSettings: string;
|
|
22
|
+
menuModel: string;
|
|
23
|
+
menuReasoning: string;
|
|
24
|
+
menuNotify: string;
|
|
25
|
+
rootSectionWorkspace: string;
|
|
26
|
+
rootSectionChat: string;
|
|
27
|
+
rootSectionTask: string;
|
|
28
|
+
rootSectionSystem: string;
|
|
29
|
+
rootMenuFooter: string;
|
|
30
|
+
thinkingHint: string;
|
|
31
|
+
processingFailed(detail: string): string;
|
|
32
|
+
imageDownloadFailed(imageError: string): string;
|
|
33
|
+
imagesStaged(locations: string, description: string): string;
|
|
34
|
+
imageDescriptionLabel(description: string): string;
|
|
35
|
+
imageNoDescription: string;
|
|
36
|
+
visionPrompt: string;
|
|
37
|
+
taskEnded(reasonLabel: string): string;
|
|
38
|
+
errorCode(code: string): string;
|
|
39
|
+
reasonMessage(message: string): string;
|
|
40
|
+
produced(text: string): string;
|
|
41
|
+
newChatDone: string;
|
|
42
|
+
chatCleared: string;
|
|
43
|
+
stopRequested: string;
|
|
44
|
+
dirUsage: string;
|
|
45
|
+
dirNotExists(path: string): string;
|
|
46
|
+
dirNotExistsHint(path: string): string;
|
|
47
|
+
dirUnreadable(path: string): string;
|
|
48
|
+
dirSwitched(path: string): string;
|
|
49
|
+
workspaceUsage: string;
|
|
50
|
+
menuClosed: string;
|
|
51
|
+
menuExit: string;
|
|
52
|
+
menuBack: string;
|
|
53
|
+
menuWorkspaceAction: string;
|
|
54
|
+
menuChatAction: string;
|
|
55
|
+
menuStatusAction: string;
|
|
56
|
+
menuTaskAction: string;
|
|
57
|
+
menuHistoryAction: string;
|
|
58
|
+
menuGoalsAction: string;
|
|
59
|
+
menuScheduleAction: string;
|
|
60
|
+
menuCompactAction: string;
|
|
61
|
+
menuPluginsAction: string;
|
|
62
|
+
menuSettingsAction: string;
|
|
63
|
+
menuNewChat: string;
|
|
64
|
+
menuSettingsModel: string;
|
|
65
|
+
menuSettingsReasoning: string;
|
|
66
|
+
menuSettingsNotify: string;
|
|
67
|
+
menuSettingsOverview: string;
|
|
68
|
+
streamLabel(on: boolean): string;
|
|
69
|
+
summaryLabel(on: boolean): string;
|
|
70
|
+
statusNoSession(workdir: string): string;
|
|
71
|
+
statusRunning: string;
|
|
72
|
+
statusIdle: string;
|
|
73
|
+
statusField(status: string): string;
|
|
74
|
+
modelField(model: string): string;
|
|
75
|
+
workdirField(workdir: string): string;
|
|
76
|
+
queuedField(n: number): string;
|
|
77
|
+
sessionField(id: string): string;
|
|
78
|
+
contextField(total: number, surface: number): string;
|
|
79
|
+
noTodos: string;
|
|
80
|
+
currentTodos(n: number, list: string): string;
|
|
81
|
+
settingsHeader: string;
|
|
82
|
+
modelSetting(model: string): string;
|
|
83
|
+
reasoningSetting(effort: string): string;
|
|
84
|
+
agentPresetSetting(preset: string): string;
|
|
85
|
+
workdirSetting(workdir: string): string;
|
|
86
|
+
workspacesSetting: string;
|
|
87
|
+
notConfigured: string;
|
|
88
|
+
chatCountField(n: number): string;
|
|
89
|
+
allowUsersField(n: number, all: boolean): string;
|
|
90
|
+
allowChatsField(n: number, all: boolean): string;
|
|
91
|
+
stateDirField(dir: string): string;
|
|
92
|
+
noModelsFound: string;
|
|
93
|
+
defaultLabel: string;
|
|
94
|
+
modelName(name: string, provider: string): string;
|
|
95
|
+
effortLow: string;
|
|
96
|
+
effortMedium: string;
|
|
97
|
+
effortHigh: string;
|
|
98
|
+
effortDefault: string;
|
|
99
|
+
noPlugins: string;
|
|
100
|
+
pluginDisabled: string;
|
|
101
|
+
pluginEnabled: string;
|
|
102
|
+
pluginsTruncated(all: number, shown: number): string;
|
|
103
|
+
pluginsCount(n: number): string;
|
|
104
|
+
workspaceServiceUnavailable: string;
|
|
105
|
+
workspaceCreated(title: string, path: string): string;
|
|
106
|
+
createFailed(error: string): string;
|
|
107
|
+
noActiveSessionCompact: string;
|
|
108
|
+
sessionRunning: string;
|
|
109
|
+
compactionUnavailable: string;
|
|
110
|
+
nothingToCompact: string;
|
|
111
|
+
contextCompacted: string;
|
|
112
|
+
compactFailed(message: string): string;
|
|
113
|
+
noActiveSession: string;
|
|
114
|
+
noMessagesYet: string;
|
|
115
|
+
recentMessages(n: number, list: string): string;
|
|
116
|
+
noActiveGoals: string;
|
|
117
|
+
goalPhaseActive: string;
|
|
118
|
+
goalPhasePaused: string;
|
|
119
|
+
goalPhaseBlocked: string;
|
|
120
|
+
goalPhaseComplete: string;
|
|
121
|
+
goalObjective(objective: string): string;
|
|
122
|
+
goalStatus(status: string): string;
|
|
123
|
+
goalRounds(started: number, max: number): string;
|
|
124
|
+
goalAutoRun(armed: boolean): string;
|
|
125
|
+
goalBlockedReason(message: string): string;
|
|
126
|
+
noReminders: string;
|
|
127
|
+
reminderDue: string;
|
|
128
|
+
reminderClock: string;
|
|
129
|
+
reminderEvery(minutes: number): string;
|
|
130
|
+
reminderOnce: string;
|
|
131
|
+
reminderLine(state: string, id: string, prompt: string, kind: string, when: string): string;
|
|
132
|
+
remindersCount(n: number, list: string): string;
|
|
133
|
+
noWorkspaces: string;
|
|
134
|
+
workspaceSessions(n: number): string;
|
|
135
|
+
workspacesCount(n: number, list: string): string;
|
|
136
|
+
currentDir: string;
|
|
137
|
+
helpHeader: string;
|
|
138
|
+
helpMenu: string;
|
|
139
|
+
helpSettings: string;
|
|
140
|
+
helpStatus: string;
|
|
141
|
+
helpTask: string;
|
|
142
|
+
helpChat: string;
|
|
143
|
+
helpDir: string;
|
|
144
|
+
helpWorkspace: string;
|
|
145
|
+
helpPlugins: string;
|
|
146
|
+
helpCompact: string;
|
|
147
|
+
helpHistory: string;
|
|
148
|
+
helpGoals: string;
|
|
149
|
+
helpSchedule: string;
|
|
150
|
+
helpModel: string;
|
|
151
|
+
helpWorkspaces: string;
|
|
152
|
+
helpNew: string;
|
|
153
|
+
helpClear: string;
|
|
154
|
+
helpStop: string;
|
|
155
|
+
helpOther: string;
|
|
156
|
+
}
|
|
157
|
+
export declare function messages(lang: Language): Messages;
|
|
158
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|
package/lib/i18n.js
ADDED
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal user-facing string tables for `dsh-connect`. Every message a user
|
|
3
|
+
* can see (menus, command replies, status lines, hints) lives here in both
|
|
4
|
+
* `zh` and `en`; the configured `language` picks the active table. Keep this
|
|
5
|
+
* file free of imports from the runner so it can be shared by any module.
|
|
6
|
+
* @module dsh-connect/i18n
|
|
7
|
+
*/
|
|
8
|
+
const zh = {
|
|
9
|
+
reasonCompleted: "✅ 完成",
|
|
10
|
+
reasonAborted: "⏹️ 已中止",
|
|
11
|
+
reasonBlocked: "🚫 阻塞",
|
|
12
|
+
reasonError: "❌ 出错",
|
|
13
|
+
reasonMaxTokens: "⚠️ 达到输出上限",
|
|
14
|
+
reasonInterrupted: "⚠️ 被中断",
|
|
15
|
+
reasonUnknown: "❓ 未知",
|
|
16
|
+
menuRoot: "主菜单",
|
|
17
|
+
menuWorkspace: "切换工作目录",
|
|
18
|
+
menuChat: "切换对话",
|
|
19
|
+
menuSettings: "设置",
|
|
20
|
+
menuModel: "切换模型",
|
|
21
|
+
menuReasoning: "推理强度",
|
|
22
|
+
menuNotify: "通知设置",
|
|
23
|
+
rootSectionWorkspace: "📁 工作区",
|
|
24
|
+
rootSectionChat: "💬 会话",
|
|
25
|
+
rootSectionTask: "📋 任务",
|
|
26
|
+
rootSectionSystem: "🛠️ 系统",
|
|
27
|
+
rootMenuFooter: "轻触按钮选择 · 操作后自动返回主菜单 · 60 秒无操作自动关闭",
|
|
28
|
+
thinkingHint: "🤔 深度思考中…\n",
|
|
29
|
+
processingFailed: (detail) => `⚠️ 处理失败:${detail}`,
|
|
30
|
+
imageDownloadFailed: (imageError) => `[用户发送了图片,但下载失败:${imageError}]`,
|
|
31
|
+
imagesStaged: (locations, description) => description !== ""
|
|
32
|
+
? `[用户发送了图片,图片已保存到以下路径(可用工具查看):\n${locations}\n图片内容说明:\n${description}]`
|
|
33
|
+
: `[用户发送了图片,图片已保存到以下路径(可用工具查看):\n${locations}\n(未能自动分析图片内容,请用文件/终端工具查看这些图片。)]`,
|
|
34
|
+
imageDescriptionLabel: (description) => `图片内容说明:\n${description}`,
|
|
35
|
+
imageNoDescription: "(未能自动分析图片内容,请用文件/终端工具查看这些图片。)",
|
|
36
|
+
visionPrompt: "请详细描述这些图片的内容(物体、场景、文字、布局、氛围等),供一个无法直接查看图片的主模型理解。",
|
|
37
|
+
taskEnded: (reasonLabel) => `**任务结束**:${reasonLabel}`,
|
|
38
|
+
errorCode: (code) => `错误码:\`${code}\``,
|
|
39
|
+
reasonMessage: (message) => `原因:${message}`,
|
|
40
|
+
produced: (text) => `已产出:${text}`,
|
|
41
|
+
newChatDone: "已开启新会话。",
|
|
42
|
+
chatCleared: "会话已清空。",
|
|
43
|
+
stopRequested: "已请求停止当前任务。",
|
|
44
|
+
dirUsage: "请输入绝对路径,例如 `/dir D:\\projects\\my-app`。",
|
|
45
|
+
dirNotExists: (path) => `目录不存在或不是文件夹:${path}`,
|
|
46
|
+
dirNotExistsHint: (path) => `目录不存在或不是文件夹:${path}\n(请先创建该目录,再执行 /workspace)`,
|
|
47
|
+
dirUnreadable: (path) => `无法访问目录:${path}`,
|
|
48
|
+
dirSwitched: (path) => `工作目录已切换为:\n${path}\n(已开启新会话)`,
|
|
49
|
+
workspaceUsage: "用法:`/workspace <绝对路径>`,例如 `/workspace D:\\projects\\new-app`。",
|
|
50
|
+
menuClosed: "菜单已关闭。",
|
|
51
|
+
menuExit: "❌ 退出",
|
|
52
|
+
menuBack: "🔙 返回",
|
|
53
|
+
menuWorkspaceAction: "📁 切换工作目录",
|
|
54
|
+
menuChatAction: "💬 切换对话",
|
|
55
|
+
menuStatusAction: "📊 查看状态",
|
|
56
|
+
menuTaskAction: "📋 查看任务",
|
|
57
|
+
menuHistoryAction: "🗒️ 历史消息",
|
|
58
|
+
menuGoalsAction: "🎯 目标",
|
|
59
|
+
menuScheduleAction: "⏰ 定时提醒",
|
|
60
|
+
menuCompactAction: "🗜️ 压缩上下文",
|
|
61
|
+
menuPluginsAction: "🔌 查看插件",
|
|
62
|
+
menuSettingsAction: "⚙️ 设置",
|
|
63
|
+
menuNewChat: "➕ 新建对话",
|
|
64
|
+
menuSettingsModel: "🤖 切换模型",
|
|
65
|
+
menuSettingsReasoning: "🧠 推理强度",
|
|
66
|
+
menuSettingsNotify: "🔔 通知设置",
|
|
67
|
+
menuSettingsOverview: "📄 配置总览",
|
|
68
|
+
streamLabel: (on) => `流式输出:${on ? "开" : "关"}`,
|
|
69
|
+
summaryLabel: (on) => `结束摘要:${on ? "开" : "关"}`,
|
|
70
|
+
statusNoSession: (workdir) => `状态:无活动会话\n工作目录:${workdir}`,
|
|
71
|
+
statusRunning: "🟢 运行中",
|
|
72
|
+
statusIdle: "⚪ 空闲",
|
|
73
|
+
statusField: (status) => `状态:${status}`,
|
|
74
|
+
modelField: (model) => `模型:${model}`,
|
|
75
|
+
workdirField: (workdir) => `工作目录:${workdir}`,
|
|
76
|
+
queuedField: (n) => `待处理消息:${n}`,
|
|
77
|
+
sessionField: (id) => `会话:${id}`,
|
|
78
|
+
contextField: (total, surface) => `上下文:${total} tokens(会话 ${surface})`,
|
|
79
|
+
noTodos: "当前没有任务清单。",
|
|
80
|
+
currentTodos: (n, list) => `当前任务(${n} 项):\n${list}`,
|
|
81
|
+
settingsHeader: "⚙️ 设置:",
|
|
82
|
+
modelSetting: (model) => `模型:${model}`,
|
|
83
|
+
reasoningSetting: (effort) => `推理强度:${effort}`,
|
|
84
|
+
agentPresetSetting: (preset) => `Agent 预设:${preset}`,
|
|
85
|
+
workdirSetting: (workdir) => `工作目录:${workdir}`,
|
|
86
|
+
workspacesSetting: "工作区列表:",
|
|
87
|
+
notConfigured: "(未配置)",
|
|
88
|
+
chatCountField: (n) => `对话数:${n}`,
|
|
89
|
+
allowUsersField: (n, all) => `发送者白名单:${all ? "全部放行" : `${n} 人`}`,
|
|
90
|
+
allowChatsField: (n, all) => `会话白名单:${all ? "全部放行" : `${n} 个`}`,
|
|
91
|
+
stateDirField: (dir) => `状态目录:${dir}`,
|
|
92
|
+
noModelsFound: "(未发现可用模型)",
|
|
93
|
+
defaultLabel: "默认",
|
|
94
|
+
modelName: (name, provider) => `${name}(${provider})`,
|
|
95
|
+
effortLow: "低 (low)",
|
|
96
|
+
effortMedium: "中 (medium)",
|
|
97
|
+
effortHigh: "高 (high)",
|
|
98
|
+
effortDefault: "默认(跟随模型)",
|
|
99
|
+
noPlugins: "未获取到插件清单。",
|
|
100
|
+
pluginDisabled: "⛔ 禁用",
|
|
101
|
+
pluginEnabled: "✅ 启用",
|
|
102
|
+
pluginsTruncated: (all, shown) => `… 共 ${all} 个,仅显示前 ${shown} 个`,
|
|
103
|
+
pluginsCount: (n) => `插件(${n}):`,
|
|
104
|
+
workspaceServiceUnavailable: "工作区服务不可用。",
|
|
105
|
+
workspaceCreated: (title, path) => `工作区已创建:\n${title} (${path})`,
|
|
106
|
+
createFailed: (error) => `创建失败:${error}`,
|
|
107
|
+
noActiveSessionCompact: "当前没有活动会话,无法压缩。",
|
|
108
|
+
sessionRunning: "当前会话正在运行,请稍后再试(或先 /stop)。",
|
|
109
|
+
compactionUnavailable: "压缩服务不可用(当前预设未挂载压缩后端)。",
|
|
110
|
+
nothingToCompact: "没有可压缩的历史。",
|
|
111
|
+
contextCompacted: "上下文已压缩。",
|
|
112
|
+
compactFailed: (message) => `压缩失败:${message}`,
|
|
113
|
+
noActiveSession: "当前没有活动会话。",
|
|
114
|
+
noMessagesYet: "会话里还没有消息。",
|
|
115
|
+
recentMessages: (n, list) => `最近 ${n} 条消息:\n${list}`,
|
|
116
|
+
noActiveGoals: "当前没有进行中的目标。",
|
|
117
|
+
goalPhaseActive: "🟢 进行中",
|
|
118
|
+
goalPhasePaused: "⏸️ 已暂停",
|
|
119
|
+
goalPhaseBlocked: "🚫 受阻",
|
|
120
|
+
goalPhaseComplete: "✅ 已完成",
|
|
121
|
+
goalObjective: (objective) => `🎯 目标:${objective}`,
|
|
122
|
+
goalStatus: (status) => `状态:${status}`,
|
|
123
|
+
goalRounds: (started, max) => `轮次:${started}/${max}`,
|
|
124
|
+
goalAutoRun: (armed) => `自动续跑:${armed ? "已武装" : "已解除"}`,
|
|
125
|
+
goalBlockedReason: (message) => `受阻原因:${message}`,
|
|
126
|
+
noReminders: "本会话没有定时提醒。可对 Agent 说「5 分钟后提醒我…」来创建(需在配置里挂载 schedule 插件)。",
|
|
127
|
+
reminderDue: "⚠️ 已到期",
|
|
128
|
+
reminderClock: "⏰",
|
|
129
|
+
reminderEvery: (minutes) => `每 ${minutes} 分钟`,
|
|
130
|
+
reminderOnce: "一次性",
|
|
131
|
+
reminderLine: (state, id, prompt, kind, when) => `${state} [${id}] ${prompt}(${kind},${when})`,
|
|
132
|
+
remindersCount: (n, list) => `定时提醒(${n}):\n${list}`,
|
|
133
|
+
noWorkspaces: "还没有工作区。可用 `/workspace <绝对路径>` 新建。",
|
|
134
|
+
workspaceSessions: (n) => ` · ${n} 会话`,
|
|
135
|
+
workspacesCount: (n, list) => `工作区(${n}):\n${list}`,
|
|
136
|
+
currentDir: "当前目录",
|
|
137
|
+
helpHeader: "可用命令(本地执行,不消耗模型):",
|
|
138
|
+
helpMenu: "打开主菜单(层级点选,可返回)",
|
|
139
|
+
helpSettings: "设置:模型 / 推理强度 / 通知 / 配置总览",
|
|
140
|
+
helpStatus: "查看会话状态、模型、工作目录、排队数",
|
|
141
|
+
helpTask: "查看当前任务清单(todo)",
|
|
142
|
+
helpChat: "列出对话,点选切换或新建",
|
|
143
|
+
helpDir: "列出工作目录,点选切换(或 `/dir <绝对路径>` 手动指定)",
|
|
144
|
+
helpWorkspace: "新建工作区",
|
|
145
|
+
helpPlugins: "查看插件清单",
|
|
146
|
+
helpCompact: "压缩当前会话上下文",
|
|
147
|
+
helpHistory: "查看最近会话消息",
|
|
148
|
+
helpGoals: "查看当前目标",
|
|
149
|
+
helpSchedule: "查看本会话的定时提醒",
|
|
150
|
+
helpModel: "查看 / 切换模型",
|
|
151
|
+
helpWorkspaces: "列出所有工作区",
|
|
152
|
+
helpNew: "开启新对话",
|
|
153
|
+
helpClear: "清空当前对话",
|
|
154
|
+
helpStop: "停止当前任务",
|
|
155
|
+
helpOther: "其他文本将作为任务发送给 DSH Agent",
|
|
156
|
+
};
|
|
157
|
+
const en = {
|
|
158
|
+
reasonCompleted: "✅ Done",
|
|
159
|
+
reasonAborted: "⏹️ Aborted",
|
|
160
|
+
reasonBlocked: "🚫 Blocked",
|
|
161
|
+
reasonError: "❌ Error",
|
|
162
|
+
reasonMaxTokens: "⚠️ Output limit reached",
|
|
163
|
+
reasonInterrupted: "⚠️ Interrupted",
|
|
164
|
+
reasonUnknown: "❓ Unknown",
|
|
165
|
+
menuRoot: "Main menu",
|
|
166
|
+
menuWorkspace: "Switch workdir",
|
|
167
|
+
menuChat: "Switch conversation",
|
|
168
|
+
menuSettings: "Settings",
|
|
169
|
+
menuModel: "Switch model",
|
|
170
|
+
menuReasoning: "Reasoning effort",
|
|
171
|
+
menuNotify: "Notifications",
|
|
172
|
+
rootSectionWorkspace: "📁 Workspace",
|
|
173
|
+
rootSectionChat: "💬 Session",
|
|
174
|
+
rootSectionTask: "📋 Tasks",
|
|
175
|
+
rootSectionSystem: "🛠️ System",
|
|
176
|
+
rootMenuFooter: "Tap a button · returns to the main menu after an action · auto-closes after 60 s idle",
|
|
177
|
+
thinkingHint: "🤔 Deep thinking…\n",
|
|
178
|
+
processingFailed: (detail) => `⚠️ Processing failed: ${detail}`,
|
|
179
|
+
imageDownloadFailed: (imageError) => `[The user sent an image, but download failed: ${imageError}]`,
|
|
180
|
+
imagesStaged: (locations, description) => description !== ""
|
|
181
|
+
? `[The user sent images, saved to the following paths (viewable with tools):\n${locations}\nImage description:\n${description}]`
|
|
182
|
+
: `[The user sent images, saved to the following paths (viewable with tools):\n${locations}\n(No image analysis available — inspect the files with the file/terminal tools.)]`,
|
|
183
|
+
imageDescriptionLabel: (description) => `Image description:\n${description}`,
|
|
184
|
+
imageNoDescription: "(No image analysis available — inspect the files with the file/terminal tools.)",
|
|
185
|
+
visionPrompt: "Describe these images in detail (objects, scene, text, layout, atmosphere, etc.) for a main model that cannot view images directly.",
|
|
186
|
+
taskEnded: (reasonLabel) => `**Task ended** — ${reasonLabel}`,
|
|
187
|
+
errorCode: (code) => `Error code: \`${code}\``,
|
|
188
|
+
reasonMessage: (message) => `Reason: ${message}`,
|
|
189
|
+
produced: (text) => `Output: ${text}`,
|
|
190
|
+
newChatDone: "New conversation started.",
|
|
191
|
+
chatCleared: "Conversation cleared.",
|
|
192
|
+
stopRequested: "Stop requested for the current task.",
|
|
193
|
+
dirUsage: "Enter an absolute path, e.g. `/dir D:\\projects\\my-app`.",
|
|
194
|
+
dirNotExists: (path) => `Directory does not exist or is not a folder: ${path}`,
|
|
195
|
+
dirNotExistsHint: (path) => `Directory does not exist or is not a folder: ${path}\n(create the directory first, then run /workspace)`,
|
|
196
|
+
dirUnreadable: (path) => `Cannot access directory: ${path}`,
|
|
197
|
+
dirSwitched: (path) => `Workdir switched to:\n${path}\n(new conversation started)`,
|
|
198
|
+
workspaceUsage: "Usage: `/workspace <absolute path>`, e.g. `/workspace D:\\projects\\new-app`.",
|
|
199
|
+
menuClosed: "Menu closed.",
|
|
200
|
+
menuExit: "❌ Exit",
|
|
201
|
+
menuBack: "🔙 Back",
|
|
202
|
+
menuWorkspaceAction: "📁 Switch workdir",
|
|
203
|
+
menuChatAction: "💬 Switch conversation",
|
|
204
|
+
menuStatusAction: "📊 Status",
|
|
205
|
+
menuTaskAction: "📋 Tasks",
|
|
206
|
+
menuHistoryAction: "🗒️ History",
|
|
207
|
+
menuGoalsAction: "🎯 Goals",
|
|
208
|
+
menuScheduleAction: "⏰ Reminders",
|
|
209
|
+
menuCompactAction: "🗜️ Compact context",
|
|
210
|
+
menuPluginsAction: "🔌 Plugins",
|
|
211
|
+
menuSettingsAction: "⚙️ Settings",
|
|
212
|
+
menuNewChat: "➕ New conversation",
|
|
213
|
+
menuSettingsModel: "🤖 Switch model",
|
|
214
|
+
menuSettingsReasoning: "🧠 Reasoning effort",
|
|
215
|
+
menuSettingsNotify: "🔔 Notifications",
|
|
216
|
+
menuSettingsOverview: "📄 Config overview",
|
|
217
|
+
streamLabel: (on) => `Streaming output: ${on ? "on" : "off"}`,
|
|
218
|
+
summaryLabel: (on) => `End-of-turn summary: ${on ? "on" : "off"}`,
|
|
219
|
+
statusNoSession: (workdir) => `Status: no active session\nWorkdir: ${workdir}`,
|
|
220
|
+
statusRunning: "🟢 Running",
|
|
221
|
+
statusIdle: "⚪ Idle",
|
|
222
|
+
statusField: (status) => `Status: ${status}`,
|
|
223
|
+
modelField: (model) => `Model: ${model}`,
|
|
224
|
+
workdirField: (workdir) => `Workdir: ${workdir}`,
|
|
225
|
+
queuedField: (n) => `Queued messages: ${n}`,
|
|
226
|
+
sessionField: (id) => `Session: ${id}`,
|
|
227
|
+
contextField: (total, surface) => `Context: ${total} tokens (session ${surface})`,
|
|
228
|
+
noTodos: "No task list.",
|
|
229
|
+
currentTodos: (n, list) => `Current tasks (${n}):\n${list}`,
|
|
230
|
+
settingsHeader: "⚙️ Settings:",
|
|
231
|
+
modelSetting: (model) => `Model: ${model}`,
|
|
232
|
+
reasoningSetting: (effort) => `Reasoning effort: ${effort}`,
|
|
233
|
+
agentPresetSetting: (preset) => `Agent preset: ${preset}`,
|
|
234
|
+
workdirSetting: (workdir) => `Workdir: ${workdir}`,
|
|
235
|
+
workspacesSetting: "Workspaces:",
|
|
236
|
+
notConfigured: "(not configured)",
|
|
237
|
+
chatCountField: (n) => `Conversations: ${n}`,
|
|
238
|
+
allowUsersField: (n, all) => `Sender allowlist: ${all ? "allow all" : `${n} user(s)`}`,
|
|
239
|
+
allowChatsField: (n, all) => `Chat allowlist: ${all ? "allow all" : `${n} chat(s)`}`,
|
|
240
|
+
stateDirField: (dir) => `State dir: ${dir}`,
|
|
241
|
+
noModelsFound: "(no usable models found)",
|
|
242
|
+
defaultLabel: "Default",
|
|
243
|
+
modelName: (name, provider) => `${name} (${provider})`,
|
|
244
|
+
effortLow: "Low (low)",
|
|
245
|
+
effortMedium: "Medium (medium)",
|
|
246
|
+
effortHigh: "High (high)",
|
|
247
|
+
effortDefault: "Default (follow model)",
|
|
248
|
+
noPlugins: "Could not fetch the plugin list.",
|
|
249
|
+
pluginDisabled: "⛔ Disabled",
|
|
250
|
+
pluginEnabled: "✅ Enabled",
|
|
251
|
+
pluginsTruncated: (all, shown) => `… ${all} total, showing the first ${shown}`,
|
|
252
|
+
pluginsCount: (n) => `Plugins (${n}):`,
|
|
253
|
+
workspaceServiceUnavailable: "Workspace service unavailable.",
|
|
254
|
+
workspaceCreated: (title, path) => `Workspace created:\n${title} (${path})`,
|
|
255
|
+
createFailed: (error) => `Creation failed: ${error}`,
|
|
256
|
+
noActiveSessionCompact: "No active session to compact.",
|
|
257
|
+
sessionRunning: "The session is running — try again later (or `/stop` first).",
|
|
258
|
+
compactionUnavailable: "Compaction service unavailable (the current preset does not mount a compaction backend).",
|
|
259
|
+
nothingToCompact: "Nothing to compact.",
|
|
260
|
+
contextCompacted: "Context compacted.",
|
|
261
|
+
compactFailed: (message) => `Compaction failed: ${message}`,
|
|
262
|
+
noActiveSession: "No active session.",
|
|
263
|
+
noMessagesYet: "No messages in the session yet.",
|
|
264
|
+
recentMessages: (n, list) => `Recent ${n} message(s):\n${list}`,
|
|
265
|
+
noActiveGoals: "No goal in progress.",
|
|
266
|
+
goalPhaseActive: "🟢 Active",
|
|
267
|
+
goalPhasePaused: "⏸️ Paused",
|
|
268
|
+
goalPhaseBlocked: "🚫 Blocked",
|
|
269
|
+
goalPhaseComplete: "✅ Completed",
|
|
270
|
+
goalObjective: (objective) => `🎯 Goal: ${objective}`,
|
|
271
|
+
goalStatus: (status) => `Status: ${status}`,
|
|
272
|
+
goalRounds: (started, max) => `Rounds: ${started}/${max}`,
|
|
273
|
+
goalAutoRun: (armed) => `Auto-continue: ${armed ? "armed" : "disarmed"}`,
|
|
274
|
+
goalBlockedReason: (message) => `Blocked reason: ${message}`,
|
|
275
|
+
noReminders: "No scheduled reminders in this session. Tell the agent “remind me in 5 minutes…” to create one (requires the schedule plugin mounted in the profile).",
|
|
276
|
+
reminderDue: "⚠️ Due",
|
|
277
|
+
reminderClock: "⏰",
|
|
278
|
+
reminderEvery: (minutes) => `every ${minutes} min`,
|
|
279
|
+
reminderOnce: "one-time",
|
|
280
|
+
reminderLine: (state, id, prompt, kind, when) => `${state} [${id}] ${prompt} (${kind}, ${when})`,
|
|
281
|
+
remindersCount: (n, list) => `Scheduled reminders (${n}):\n${list}`,
|
|
282
|
+
noWorkspaces: "No workspaces yet. Create one with `/workspace <absolute path>`.",
|
|
283
|
+
workspaceSessions: (n) => ` · ${n} session(s)`,
|
|
284
|
+
workspacesCount: (n, list) => `Workspaces (${n}):\n${list}`,
|
|
285
|
+
currentDir: "Current directory",
|
|
286
|
+
helpHeader: "Available commands (run locally, no model tokens):",
|
|
287
|
+
helpMenu: "open the main menu (hierarchical, back supported)",
|
|
288
|
+
helpSettings: "settings: model / reasoning effort / notifications / config overview",
|
|
289
|
+
helpStatus: "session status, model, workdir, queue length",
|
|
290
|
+
helpTask: "show the current task list (todo)",
|
|
291
|
+
helpChat: "list conversations; tap to switch or create",
|
|
292
|
+
helpDir: "list workdirs; tap to switch (or `/dir <absolute path>` to set manually)",
|
|
293
|
+
helpWorkspace: "create a workspace",
|
|
294
|
+
helpPlugins: "list installed plugins",
|
|
295
|
+
helpCompact: "compact the current session context",
|
|
296
|
+
helpHistory: "show recent session messages",
|
|
297
|
+
helpGoals: "show current goals",
|
|
298
|
+
helpSchedule: "show scheduled reminders for this session",
|
|
299
|
+
helpModel: "view / switch the model",
|
|
300
|
+
helpWorkspaces: "list all workspaces",
|
|
301
|
+
helpNew: "start a new conversation",
|
|
302
|
+
helpClear: "clear the current conversation",
|
|
303
|
+
helpStop: "stop the current task",
|
|
304
|
+
helpOther: "any other text is sent to the DSH agent as a task",
|
|
305
|
+
};
|
|
306
|
+
export function messages(lang) {
|
|
307
|
+
return lang === "en" ? en : zh;
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=i18n.js.map
|
package/lib/i18n.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|