zcode-acp-server 0.14.3 → 0.17.1
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 +109 -9
- package/README.zh-CN.md +91 -9
- package/dist/backend/index.d.ts +1 -0
- package/dist/backend/index.d.ts.map +1 -1
- package/dist/backend/index.js +1 -0
- package/dist/backend/index.js.map +1 -1
- package/dist/backend/sandbox.d.ts +92 -23
- package/dist/backend/sandbox.d.ts.map +1 -1
- package/dist/backend/sandbox.js +265 -70
- package/dist/backend/sandbox.js.map +1 -1
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/config/auto-compact.d.ts.map +1 -1
- package/dist/config/auto-compact.js +6 -4
- package/dist/config/auto-compact.js.map +1 -1
- package/dist/config/mcp-discovery.d.ts.map +1 -1
- package/dist/config/mcp-discovery.js +7 -5
- package/dist/config/mcp-discovery.js.map +1 -1
- package/dist/handlers/background-tasks.d.ts.map +1 -1
- package/dist/handlers/background-tasks.js +2 -2
- package/dist/handlers/background-tasks.js.map +1 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +4 -4
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/replay.d.ts.map +1 -1
- package/dist/handlers/replay.js +11 -5
- package/dist/handlers/replay.js.map +1 -1
- package/dist/handlers/sandbox-allow.d.ts +71 -0
- package/dist/handlers/sandbox-allow.d.ts.map +1 -0
- package/dist/handlers/sandbox-allow.js +299 -0
- package/dist/handlers/sandbox-allow.js.map +1 -0
- package/dist/handlers/server-requests.d.ts.map +1 -1
- package/dist/handlers/server-requests.js +7 -5
- package/dist/handlers/server-requests.js.map +1 -1
- package/dist/handlers/session.d.ts +14 -1
- package/dist/handlers/session.d.ts.map +1 -1
- package/dist/handlers/session.js +193 -20
- package/dist/handlers/session.js.map +1 -1
- package/dist/handlers/slash.d.ts.map +1 -1
- package/dist/handlers/slash.js +15 -13
- package/dist/handlers/slash.js.map +1 -1
- package/dist/i18n.d.ts +111 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +222 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +114 -15
- package/dist/index.js.map +1 -1
- package/dist/interaction/adapter.d.ts.map +1 -1
- package/dist/interaction/adapter.js +10 -7
- package/dist/interaction/adapter.js.map +1 -1
- package/dist/remote/config.d.ts +7 -0
- package/dist/remote/config.d.ts.map +1 -1
- package/dist/remote/config.js +2 -0
- package/dist/remote/config.js.map +1 -1
- package/dist/remote/endpoint.d.ts.map +1 -1
- package/dist/remote/endpoint.js +66 -11
- package/dist/remote/endpoint.js.map +1 -1
- package/dist/remote/hub-server.d.ts +15 -0
- package/dist/remote/hub-server.d.ts.map +1 -1
- package/dist/remote/hub-server.js +205 -1
- package/dist/remote/hub-server.js.map +1 -1
- package/dist/repl/App.d.ts.map +1 -1
- package/dist/repl/App.js +3 -2
- package/dist/repl/App.js.map +1 -1
- package/dist/repl/model.d.ts +2 -0
- package/dist/repl/model.d.ts.map +1 -1
- package/dist/repl/model.js.map +1 -1
- package/dist/repl/run.d.ts.map +1 -1
- package/dist/repl/run.js +5 -0
- package/dist/repl/run.js.map +1 -1
- package/dist/server.d.ts +78 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +114 -3
- package/dist/server.js.map +1 -1
- package/dist/tasks-index.d.ts +27 -0
- package/dist/tasks-index.d.ts.map +1 -1
- package/dist/tasks-index.js +72 -3
- package/dist/tasks-index.js.map +1 -1
- package/docs/REMOTE-CLIENTS.md +43 -0
- package/docs/TROUBLESHOOTING.md +9 -3
- package/package.json +13 -12
- package/dist/remote/session-liveness.d.ts +0 -19
- package/dist/remote/session-liveness.d.ts.map +0 -1
- package/dist/remote/session-liveness.js +0 -70
- package/dist/remote/session-liveness.js.map +0 -1
- package/dist/repl/mouse.d.ts +0 -49
- package/dist/repl/mouse.d.ts.map +0 -1
- package/dist/repl/mouse.js +0 -165
- package/dist/repl/mouse.js.map +0 -1
package/dist/i18n.js
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge-emitted user-facing strings (editor popups, status/hint lines).
|
|
3
|
+
*
|
|
4
|
+
* Language selection, first match wins:
|
|
5
|
+
* 1. ZCODE_ACP_LANG — explicit override ("zh", "en"; prefixes like "zh_CN"
|
|
6
|
+
* accepted, case-insensitive)
|
|
7
|
+
* 2. The ZCode desktop app's language choice — `localePreference` (explicit
|
|
8
|
+
* user pick), falling back to `locale` (effective), in
|
|
9
|
+
* ~/.zcode/v2/setting.json; absent when the app was never installed
|
|
10
|
+
* 3. LC_ALL / LC_MESSAGES / LANG — POSIX locale sniff ("zh*" → zh)
|
|
11
|
+
* 4. English (the project ships bilingual READMEs; international default)
|
|
12
|
+
*
|
|
13
|
+
* `log()`/`warn()` diagnostics stay English — they are developer-facing.
|
|
14
|
+
* Resolved per call (not at import) so tests can stub the env per case; the
|
|
15
|
+
* app-settings read is memoized per process (it would otherwise hit the disk
|
|
16
|
+
* on every emitted message).
|
|
17
|
+
*/
|
|
18
|
+
import { readFileSync } from "node:fs";
|
|
19
|
+
import os from "node:os";
|
|
20
|
+
import path from "node:path";
|
|
21
|
+
export function resolveLanguage(env = process.env) {
|
|
22
|
+
// Non-string values (a malformed setting.json carrying `locale: 5` must
|
|
23
|
+
// never crash the bridge — pick is reached from messages() on hot paths)
|
|
24
|
+
// read as "no preference".
|
|
25
|
+
const pick = (value) => {
|
|
26
|
+
if (typeof value !== "string")
|
|
27
|
+
return undefined;
|
|
28
|
+
const v = value.toLowerCase();
|
|
29
|
+
if (v.startsWith("zh"))
|
|
30
|
+
return "zh";
|
|
31
|
+
if (v.startsWith("en"))
|
|
32
|
+
return "en";
|
|
33
|
+
return undefined;
|
|
34
|
+
};
|
|
35
|
+
return (pick(env.ZCODE_ACP_LANG) ??
|
|
36
|
+
pick(appLocale()) ??
|
|
37
|
+
pick(env.LC_ALL) ??
|
|
38
|
+
pick(env.LC_MESSAGES) ??
|
|
39
|
+
pick(env.LANG) ??
|
|
40
|
+
"en");
|
|
41
|
+
}
|
|
42
|
+
/** The ZCode desktop app's language choice, if the settings file exists.
|
|
43
|
+
* Memoized with an explicit flag: a settings value of literal null must
|
|
44
|
+
* cache as "no app locale", not re-read the file on every call. */
|
|
45
|
+
let appLocaleCache;
|
|
46
|
+
let appLocaleRead = false;
|
|
47
|
+
function appLocale() {
|
|
48
|
+
if (!appLocaleRead) {
|
|
49
|
+
appLocaleRead = true;
|
|
50
|
+
let locale;
|
|
51
|
+
try {
|
|
52
|
+
const raw = readFileSync(path.join(os.homedir(), ".zcode", "v2", "setting.json"), "utf8");
|
|
53
|
+
// Editors saving UTF-8 with a BOM leave \uFEFF in the string; JSON.parse
|
|
54
|
+
// rejects it, which would silently fall the bridge back to English.
|
|
55
|
+
const bomless = raw.charCodeAt(0) === 0xfeff ? raw.slice(1) : raw;
|
|
56
|
+
const parsed = JSON.parse(bomless);
|
|
57
|
+
const pref = typeof parsed.localePreference === "string" ? parsed.localePreference : undefined;
|
|
58
|
+
const eff = typeof parsed.locale === "string" ? parsed.locale : undefined;
|
|
59
|
+
locale = pref || eff; // an empty preference string reads as unset
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
locale = undefined; // app never installed / unreadable / malformed
|
|
63
|
+
}
|
|
64
|
+
appLocaleCache = locale;
|
|
65
|
+
}
|
|
66
|
+
return appLocaleCache;
|
|
67
|
+
}
|
|
68
|
+
const zh = {
|
|
69
|
+
sandboxOptionAllowAlways: "始终允许",
|
|
70
|
+
sandboxOptionAllowOnce: "仅此一次",
|
|
71
|
+
sandboxOptionRejectOnce: "拒绝一次",
|
|
72
|
+
sandboxOptionRejectAlways: "始终拒绝",
|
|
73
|
+
sandboxPopupTitle: (p) => `沙箱写入放行:${p}`,
|
|
74
|
+
sandboxPopupDetails: (p) => `沙箱拒绝了工作区外的写入:${p}\n“始终允许”写入配置的 allow 列表,“始终拒绝”写入 deny 列表(.zcode/acp/sandbox.json,可编辑撤销)。`,
|
|
75
|
+
sandboxProtectedHint: "[该路径受沙箱保护(.zcode/acp 配置区或 strictGit 的 .git),不能通过弹窗放行。strictGit 可在 .zcode/acp/sandbox.json 中关闭。]",
|
|
76
|
+
sandboxOverBroadHint: (p) => `[${p} 范围过宽($HOME 或其上级),沙箱不会弹窗放行;确需放行请手动编辑 .zcode/acp/sandbox.json 的 allow 列表。]`,
|
|
77
|
+
sandboxDenyListedHint: (p) => `[${p} 已在 .zcode/acp/sandbox.json 的 deny 列表中(你之前选择过始终拒绝)。要撤销,编辑该文件的 deny 数组即可。]`,
|
|
78
|
+
sandboxRejectAlwaysPersisted: (p) => `[已记入始终拒绝 ${p}(.zcode/acp/sandbox.json 的 deny 列表,可编辑撤销)。]`,
|
|
79
|
+
sandboxRejectAlwaysUnpersisted: (p) => `[已拒绝 ${p}(配置不可写,未持久化,同类写入下次仍会询问。)]`,
|
|
80
|
+
sandboxRejectOnceHint: (p) => `[已拒绝沙箱放行 ${p},未保存任何决定,同类写入会再次询问;如需放行,可编辑 .zcode/acp/sandbox.json 的 allow 列表(由桥写入,Agent 不可改)。]`,
|
|
81
|
+
sandboxContinuationPrompt: (p) => `[沙箱已放行 ${p},请继续刚才的任务。]`,
|
|
82
|
+
sandboxRestartHint: (p) => `[沙箱已放行 ${p},正在重启后端以应用新权限,随后自动继续…]`,
|
|
83
|
+
sandboxResumedStatus: "[沙箱后端已重启,会话已恢复,自动继续刚才的任务…]",
|
|
84
|
+
sandboxGenericDenialHint: "[沙箱拒绝了白名单外的写入。可放行目录:在弹窗中选择允许,或编辑 .zcode/acp/sandbox.json 后重启会话。]",
|
|
85
|
+
fsPermDeniedHint: (p) => `[命令被文件系统权限拒绝(Permission denied):${p}。这不是沙箱拦截,弹窗无法放行——请检查该目录的权限(chmod/chown)或 macOS 隐私设置,或让 Agent 改用有权限的路径。(同一路径仅提示一次。)]`,
|
|
86
|
+
networkRetry: (attempt, total) => `[网络异常,正在重试 (${attempt}/${total})…]`,
|
|
87
|
+
requestFailed: (err) => `[请求失败:${err}。会话仍可用,请重新发送消息重试。]`,
|
|
88
|
+
promptQueuedBehindTurn: "[上一个回复仍在生成,等待结束后发送…]",
|
|
89
|
+
thinkingPlaceholder: "正在思考…",
|
|
90
|
+
messageSwallowedByTurn: "[消息被并入仍在生成的回合,将被丢弃,请重新发送]",
|
|
91
|
+
interactionInterrupted: "交互中断:连接关闭或超时,请重新发起对话。",
|
|
92
|
+
planApproveOption: "同意——退出计划模式",
|
|
93
|
+
planRejectOption: "拒绝——继续规划",
|
|
94
|
+
planPopupTitle: "退出计划模式",
|
|
95
|
+
askSkipOption: "跳过",
|
|
96
|
+
askSkipQuestionTitle: "跳过此问题",
|
|
97
|
+
askIncludeOption: (lb) => `包含:${lb}`,
|
|
98
|
+
askSkipLabelOption: (lb) => `跳过:${lb}`,
|
|
99
|
+
askQuestionsTitle: "问题",
|
|
100
|
+
slashCompacted: "✓ 已压缩对话上下文",
|
|
101
|
+
slashCompactTimeout: "⚠ 压缩超时(300s),后端可能仍在处理——稍等片刻再发送",
|
|
102
|
+
slashGoalSet: (v) => `✓ 目标已设置:${v}`,
|
|
103
|
+
slashForked: (id) => `✓ 已分叉新会话:${id}`,
|
|
104
|
+
slashModelSet: (v) => `✓ 模型 = ${v}`,
|
|
105
|
+
slashTuiOnly: (cmd) => `⚠ /${cmd} 在 ACP 模式下不可用(需要 ZCode TUI)`,
|
|
106
|
+
replayCompactSummary: "压缩摘要",
|
|
107
|
+
replayContextHandoff: "上下文交接",
|
|
108
|
+
replayToolFallback: (tool) => `${tool} 工具`,
|
|
109
|
+
changedFilesTitle: (count, preview) => `变更文件 (${count}): ${preview}`,
|
|
110
|
+
affectedFilesList: (files) => `受影响文件:\n${files.join("\n")}`,
|
|
111
|
+
mcpNone: "📡 尚未配置 MCP 服务器。\n请使用 ZCode 桌面应用添加 MCP 服务器。",
|
|
112
|
+
mcpHeader: (n) => `📡 MCP 服务器 (${n})`,
|
|
113
|
+
mcpFromConfig: "来自 config.json:",
|
|
114
|
+
mcpFromPlugins: "来自插件:",
|
|
115
|
+
mcpFooter: "MCP 工具会在需要时由模型自动调用。",
|
|
116
|
+
slashCommandDescriptions: {
|
|
117
|
+
compact: "压缩对话上下文(释放 token)",
|
|
118
|
+
goal: "设置或查看会话目标",
|
|
119
|
+
fork: "在最新检查点分叉会话",
|
|
120
|
+
mode: "切换权限模式(plan/build/edit/yolo)",
|
|
121
|
+
model: "切换会话模型",
|
|
122
|
+
thought: "设置思考深度",
|
|
123
|
+
quota: "查看剩余用量配额(5 小时 / 周 / MCP)",
|
|
124
|
+
mcp: "列出可用的 MCP 服务器",
|
|
125
|
+
init: "创建或更新工作区 AGENTS.md 指令",
|
|
126
|
+
},
|
|
127
|
+
autoCompactStart: (used, threshold) => `🔄 自动压缩: 上下文用量 ${used} ≥ 阈值 ${threshold},正在压缩…`,
|
|
128
|
+
autoCompactTimeout: "⚠ 自动压缩超时(300s)——后端可能仍在处理",
|
|
129
|
+
autoCompactDone: "✓ 自动压缩: 上下文已压缩",
|
|
130
|
+
autoCompactFailed: (err) => `⚠ 自动压缩失败: ${err}`,
|
|
131
|
+
popupTitleExitPlan: "可以开始编码了吗?",
|
|
132
|
+
popupTitleToolPermission: (tool) => `工具权限 (${tool})`,
|
|
133
|
+
popupTitleInteraction: "交互",
|
|
134
|
+
replayToolCallFallback: "工具调用",
|
|
135
|
+
backgroundTaskTitle: (d) => (d ? `[后台] ${d}` : "[后台] 任务"),
|
|
136
|
+
slashErrGoalArg: "/goal 需要目标描述",
|
|
137
|
+
slashErrModelArg: "/model 需要模型 id",
|
|
138
|
+
slashErrSwitchFailed: (model) => `模型切换失败: ${model}`,
|
|
139
|
+
slashErrArg: (cmd) => `/${cmd} 需要参数`,
|
|
140
|
+
slashErrUnknown: (cmd) => `未知命令 /${cmd}`,
|
|
141
|
+
slashErrFailed: (cmd, msg) => `${cmd} 失败: ${msg}`,
|
|
142
|
+
};
|
|
143
|
+
const en = {
|
|
144
|
+
sandboxOptionAllowAlways: "Always allow",
|
|
145
|
+
sandboxOptionAllowOnce: "Allow once",
|
|
146
|
+
sandboxOptionRejectOnce: "Reject once",
|
|
147
|
+
sandboxOptionRejectAlways: "Always reject",
|
|
148
|
+
sandboxPopupTitle: (p) => `Sandbox write request: ${p}`,
|
|
149
|
+
sandboxPopupDetails: (p) => `The sandbox denied a write outside the workspace: ${p}\n"Always allow" persists to the config's allow list, "Always reject" to its deny list (.zcode/acp/sandbox.json, editable to undo).`,
|
|
150
|
+
sandboxProtectedHint: "[This path is sandbox-protected (the .zcode/acp config area, or .git under strictGit) and cannot be granted via popup. strictGit can be disabled in .zcode/acp/sandbox.json.]",
|
|
151
|
+
sandboxOverBroadHint: (p) => `[${p} is too broad ($HOME or an ancestor) for a popup grant; to allow it, edit the allow list in .zcode/acp/sandbox.json by hand.]`,
|
|
152
|
+
sandboxDenyListedHint: (p) => `[${p} is in the deny list of .zcode/acp/sandbox.json (you chose "Always reject" earlier). Edit that file's deny array to undo.]`,
|
|
153
|
+
sandboxRejectAlwaysPersisted: (p) => `[Recorded as always-rejected: ${p} (deny list in .zcode/acp/sandbox.json, editable to undo).]`,
|
|
154
|
+
sandboxRejectAlwaysUnpersisted: (p) => `[Rejected ${p} (config not writable, nothing persisted; the same write will ask again.)]`,
|
|
155
|
+
sandboxRejectOnceHint: (p) => `[Sandbox grant rejected for ${p}; no decision was saved and the same write will ask again. To grant, edit the allow list in .zcode/acp/sandbox.json (bridge-written, not agent-writable).]`,
|
|
156
|
+
sandboxContinuationPrompt: (p) => `[Sandbox granted ${p}; please continue the previous task.]`,
|
|
157
|
+
sandboxRestartHint: (p) => `[Sandbox granted ${p}; restarting the backend to apply the new permission, then continuing automatically…]`,
|
|
158
|
+
sandboxResumedStatus: "[Sandbox backend restarted, session restored; continuing the task…]",
|
|
159
|
+
sandboxGenericDenialHint: "[The sandbox denied a write outside the whitelist. To grant a directory: choose Allow in the popup, or edit .zcode/acp/sandbox.json and restart the session.]",
|
|
160
|
+
fsPermDeniedHint: (p) => `[A command was denied by filesystem permissions (Permission denied): ${p}. This is not a sandbox block and cannot be granted via popup — check the directory's permissions (chmod/chown) or macOS privacy settings, or steer the agent to a path it may access. (One-time notice per path.)]`,
|
|
161
|
+
networkRetry: (attempt, total) => `[Network error, retrying (${attempt}/${total})…]`,
|
|
162
|
+
requestFailed: (err) => `[Request failed: ${err}. The session is still usable — please resend.]`,
|
|
163
|
+
promptQueuedBehindTurn: "[The previous reply is still generating; sending once it finishes…]",
|
|
164
|
+
thinkingPlaceholder: "Thinking…",
|
|
165
|
+
messageSwallowedByTurn: "[The message was merged into a still-generating turn and will be dropped; please resend it.]",
|
|
166
|
+
interactionInterrupted: "Interaction interrupted: the connection closed or timed out; please start the request again.",
|
|
167
|
+
planApproveOption: "Approve — exit plan mode",
|
|
168
|
+
planRejectOption: "Reject — keep planning",
|
|
169
|
+
planPopupTitle: "Exit plan mode",
|
|
170
|
+
askSkipOption: "Skip",
|
|
171
|
+
askSkipQuestionTitle: "Skip this question",
|
|
172
|
+
askIncludeOption: (lb) => `Include: ${lb}`,
|
|
173
|
+
askSkipLabelOption: (lb) => `Skip: ${lb}`,
|
|
174
|
+
askQuestionsTitle: "questions",
|
|
175
|
+
slashCompacted: "✓ compacted conversation context",
|
|
176
|
+
slashCompactTimeout: "⚠ compact timed out (300s), backend may still be processing — wait a bit before sending",
|
|
177
|
+
slashGoalSet: (v) => `✓ goal set: ${v}`,
|
|
178
|
+
slashForked: (id) => `✓ forked new session: ${id}`,
|
|
179
|
+
slashModelSet: (v) => `✓ model = ${v}`,
|
|
180
|
+
slashTuiOnly: (cmd) => `⚠ /${cmd} is not available in ACP mode (requires ZCode TUI)`,
|
|
181
|
+
replayCompactSummary: "Compact summary",
|
|
182
|
+
replayContextHandoff: "Context handoff",
|
|
183
|
+
replayToolFallback: (tool) => `${tool} tool`,
|
|
184
|
+
changedFilesTitle: (count, preview) => `changed files (${count}): ${preview}`,
|
|
185
|
+
affectedFilesList: (files) => `affected files:\n${files.join("\n")}`,
|
|
186
|
+
mcpNone: "📡 No MCP servers configured.\nUse the ZCode desktop app to add MCP servers.",
|
|
187
|
+
mcpHeader: (n) => `📡 MCP Servers (${n})`,
|
|
188
|
+
mcpFromConfig: "From config.json:",
|
|
189
|
+
mcpFromPlugins: "From plugins:",
|
|
190
|
+
mcpFooter: "MCP tools are auto-invoked by the model when needed.",
|
|
191
|
+
slashCommandDescriptions: {
|
|
192
|
+
compact: "Compress conversation context (free up tokens)",
|
|
193
|
+
goal: "Set or show the session goal",
|
|
194
|
+
fork: "Fork the session at the latest checkpoint",
|
|
195
|
+
mode: "Switch permission mode (plan/build/edit/yolo)",
|
|
196
|
+
model: "Switch the session model",
|
|
197
|
+
thought: "Set the reasoning effort",
|
|
198
|
+
quota: "Show remaining usage quota (5h / weekly / MCP)",
|
|
199
|
+
mcp: "List available MCP servers",
|
|
200
|
+
init: "Create or update workspace AGENTS.md instructions",
|
|
201
|
+
},
|
|
202
|
+
autoCompactStart: (used, threshold) => `🔄 auto-compact: context usage ${used} ≥ threshold ${threshold}, compressing…`,
|
|
203
|
+
autoCompactTimeout: "⚠ auto-compact timed out (300s) — backend may still be processing",
|
|
204
|
+
autoCompactDone: "✓ auto-compact: context compressed",
|
|
205
|
+
autoCompactFailed: (err) => `⚠ auto-compact failed: ${err}`,
|
|
206
|
+
popupTitleExitPlan: "Ready to code?",
|
|
207
|
+
popupTitleToolPermission: (tool) => `tool permission (${tool})`,
|
|
208
|
+
popupTitleInteraction: "interaction",
|
|
209
|
+
replayToolCallFallback: "tool call",
|
|
210
|
+
backgroundTaskTitle: (d) => (d ? `[background] ${d}` : "[background] task"),
|
|
211
|
+
slashErrGoalArg: "/goal requires a goal description",
|
|
212
|
+
slashErrModelArg: "/model requires a model id",
|
|
213
|
+
slashErrSwitchFailed: (model) => `model switch failed for ${model}`,
|
|
214
|
+
slashErrArg: (cmd) => `/${cmd} requires an argument`,
|
|
215
|
+
slashErrUnknown: (cmd) => `unknown /${cmd}`,
|
|
216
|
+
slashErrFailed: (cmd, msg) => `${cmd} failed: ${msg}`,
|
|
217
|
+
};
|
|
218
|
+
/** Current message table — resolved per call so env changes/tests apply live. */
|
|
219
|
+
export function messages() {
|
|
220
|
+
return resolveLanguage() === "zh" ? zh : en;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=i18n.js.map
|
package/dist/i18n.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,4 +11,22 @@
|
|
|
11
11
|
* subcommand / the `zcode-acp-server` bin alias (both resolve to `dist/cli.js`).
|
|
12
12
|
*/
|
|
13
13
|
export declare function main(): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Pure idle decision for the serve bridge: exit only when nothing is attached
|
|
16
|
+
* (no ACP clients, no in-flight turns) AND that has been true for `idleMs`.
|
|
17
|
+
* Busy ticks refresh `lastBusy` at the call site, so a long turn with all
|
|
18
|
+
* clients gone still exits one idle window after it finishes — never mid-turn.
|
|
19
|
+
*/
|
|
20
|
+
export declare function serveIdleDecision(clients: number, pendingTurns: number, lastBusy: number, now: number, idleMs: number): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Headless bridge for remote session-create (`zcode-acp serve`): the same ACP
|
|
23
|
+
* surface as `main`, minus the stdio editor. Spawned detached by the hub with
|
|
24
|
+
* cwd = the chosen project; its lifecycle is the mirror of ADR-0001 — instead
|
|
25
|
+
* of following the editor's stdio, it follows remote interest: stays alive
|
|
26
|
+
* while any client is attached or any turn runs, exits SERVE_IDLE_MS after
|
|
27
|
+
* the last of those ends. Remote access is not optional here — without the
|
|
28
|
+
* endpoint the process has no reason to exist, so a missing config or failed
|
|
29
|
+
* endpoint exits instead of degrading.
|
|
30
|
+
*/
|
|
31
|
+
export declare function runHeadless(): Promise<void>;
|
|
14
32
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG;AAmEH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA2D1C;AA+GD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,OAAO,CAGT;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAsEjD"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ import { loadSkillCommands } from "./config/skill-discovery.js";
|
|
|
24
24
|
import { trackConnections } from "./remote/broadcast.js";
|
|
25
25
|
import { parseRemoteConfig } from "./remote/config.js";
|
|
26
26
|
import { startRemoteEndpoint } from "./remote/endpoint.js";
|
|
27
|
+
import { messages } from "./i18n.js";
|
|
27
28
|
import { ZcodeAcpServer } from "./server.js";
|
|
28
29
|
import { AGENT_INFO, SLASH_COMMANDS, log, warn } from "./utils.js";
|
|
29
30
|
/**
|
|
@@ -35,9 +36,15 @@ import { AGENT_INFO, SLASH_COMMANDS, log, warn } from "./utils.js";
|
|
|
35
36
|
function buildAllCommands() {
|
|
36
37
|
const pluginCommands = loadPluginCommands();
|
|
37
38
|
const skillCommands = loadSkillCommands();
|
|
39
|
+
// Localize the static commands' descriptions (names/hints stay as-is —
|
|
40
|
+
// they are tokens); plugin/skill descriptions come from their own sources.
|
|
41
|
+
const m = messages();
|
|
38
42
|
const seen = new Set(SLASH_COMMANDS.map((c) => c.name));
|
|
39
43
|
const merged = [
|
|
40
|
-
...SLASH_COMMANDS
|
|
44
|
+
...SLASH_COMMANDS.map((c) => ({
|
|
45
|
+
...c,
|
|
46
|
+
description: m.slashCommandDescriptions[c.name] ?? c.description,
|
|
47
|
+
})),
|
|
41
48
|
];
|
|
42
49
|
for (const c of [...pluginCommands, ...skillCommands]) {
|
|
43
50
|
if (!seen.has(c.name)) {
|
|
@@ -55,8 +62,6 @@ export async function main() {
|
|
|
55
62
|
const server = new ZcodeAcpServer();
|
|
56
63
|
// Load all commands once at startup (they don't change mid-session).
|
|
57
64
|
const allCommands = buildAllCommands();
|
|
58
|
-
/** Passthrough params parser for the ZCode-specific extension methods. */
|
|
59
|
-
const extParams = z.object({ sessionId: z.string() }).passthrough();
|
|
60
65
|
log(`starting ${AGENT_INFO.name} ${AGENT_INFO.version}, ACP protocol v${acp.PROTOCOL_VERSION}`);
|
|
61
66
|
// Remote access handle (null unless ZCODE_ACP_REMOTE is enabled and the
|
|
62
67
|
// loopback endpoint came up). Declared before shutdown so signal handlers
|
|
@@ -91,7 +96,29 @@ export async function main() {
|
|
|
91
96
|
void shutdown("backend dead");
|
|
92
97
|
}, 2000);
|
|
93
98
|
backendDeathInterval.unref();
|
|
94
|
-
const app =
|
|
99
|
+
const app = buildAgentApp(server, allCommands);
|
|
100
|
+
// Register broadcast tracking BEFORE connect so the stdio connection is
|
|
101
|
+
// captured, then wire the stdio transport. The same app is later shared
|
|
102
|
+
// with the remote WS endpoint.
|
|
103
|
+
trackConnections(app, server.clients);
|
|
104
|
+
app.connect(stream);
|
|
105
|
+
// Remote access (opt-in via ENV): serve the same app on a loopback WS/HTTP
|
|
106
|
+
// endpoint and register with the machine-level hub. Failures warn and leave
|
|
107
|
+
// the stdio link untouched.
|
|
108
|
+
const remoteConfig = parseRemoteConfig();
|
|
109
|
+
if (remoteConfig) {
|
|
110
|
+
remoteHandle = await startRemoteEndpoint(server, app, remoteConfig);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The full ACP method surface (spec + ZCode extensions), shared verbatim by
|
|
115
|
+
* the stdio server (`main`) and the headless serve bridge (`runHeadless`) —
|
|
116
|
+
* one build, two transports.
|
|
117
|
+
*/
|
|
118
|
+
function buildAgentApp(server, allCommands) {
|
|
119
|
+
/** Passthrough params parser for the ZCode-specific extension methods. */
|
|
120
|
+
const extParams = z.object({ sessionId: z.string() }).passthrough();
|
|
121
|
+
return (acp
|
|
95
122
|
.agent({ name: AGENT_INFO.name })
|
|
96
123
|
.onRequest("initialize", (ctx) => server.initialize(ctx.params))
|
|
97
124
|
.onRequest("session/new", async (ctx) => {
|
|
@@ -159,19 +186,91 @@ export async function main() {
|
|
|
159
186
|
// clients (e.g. Paseo) get -32601 and cannot create agents in a non-default
|
|
160
187
|
// mode.
|
|
161
188
|
.onRequest("session/set_mode", extParams, (ctx) => setMode(server, ctx.params, server.clients.broadcast()))
|
|
162
|
-
.onNotification("session/cancel", (ctx) => cancel(server, ctx.params));
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
189
|
+
.onNotification("session/cancel", (ctx) => cancel(server, ctx.params)));
|
|
190
|
+
}
|
|
191
|
+
// ---------- headless serve bridge (remote session-create, ADR-0014) ----------
|
|
192
|
+
/** How long a serve bridge stays up with no clients attached and no turn running. */
|
|
193
|
+
const SERVE_IDLE_MS = 10 * 60_000;
|
|
194
|
+
const SERVE_IDLE_CHECK_MS = 30_000;
|
|
195
|
+
/**
|
|
196
|
+
* Pure idle decision for the serve bridge: exit only when nothing is attached
|
|
197
|
+
* (no ACP clients, no in-flight turns) AND that has been true for `idleMs`.
|
|
198
|
+
* Busy ticks refresh `lastBusy` at the call site, so a long turn with all
|
|
199
|
+
* clients gone still exits one idle window after it finishes — never mid-turn.
|
|
200
|
+
*/
|
|
201
|
+
export function serveIdleDecision(clients, pendingTurns, lastBusy, now, idleMs) {
|
|
202
|
+
if (clients > 0 || pendingTurns > 0)
|
|
203
|
+
return false;
|
|
204
|
+
return now - lastBusy >= idleMs;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Headless bridge for remote session-create (`zcode-acp serve`): the same ACP
|
|
208
|
+
* surface as `main`, minus the stdio editor. Spawned detached by the hub with
|
|
209
|
+
* cwd = the chosen project; its lifecycle is the mirror of ADR-0001 — instead
|
|
210
|
+
* of following the editor's stdio, it follows remote interest: stays alive
|
|
211
|
+
* while any client is attached or any turn runs, exits SERVE_IDLE_MS after
|
|
212
|
+
* the last of those ends. Remote access is not optional here — without the
|
|
213
|
+
* endpoint the process has no reason to exist, so a missing config or failed
|
|
214
|
+
* endpoint exits instead of degrading.
|
|
215
|
+
*/
|
|
216
|
+
export async function runHeadless() {
|
|
171
217
|
const remoteConfig = parseRemoteConfig();
|
|
172
|
-
if (remoteConfig) {
|
|
173
|
-
|
|
218
|
+
if (!remoteConfig) {
|
|
219
|
+
warn("serve: remote access is required for a headless bridge — set " +
|
|
220
|
+
"ZCODE_ACP_REMOTE=1 and ZCODE_ACP_REMOTE_TOKEN");
|
|
221
|
+
process.exit(2);
|
|
174
222
|
}
|
|
223
|
+
const server = new ZcodeAcpServer({ serveMode: true });
|
|
224
|
+
const allCommands = buildAllCommands();
|
|
225
|
+
log(`starting ${AGENT_INFO.name} ${AGENT_INFO.version} serve (headless), project=${server.projectCwd()}`);
|
|
226
|
+
let remoteHandle = null;
|
|
227
|
+
let shuttingDown = false;
|
|
228
|
+
const shutdown = async (reason) => {
|
|
229
|
+
if (shuttingDown)
|
|
230
|
+
return;
|
|
231
|
+
shuttingDown = true;
|
|
232
|
+
log(`serve: shutting down (${reason})`);
|
|
233
|
+
if (remoteHandle)
|
|
234
|
+
await remoteHandle.stop();
|
|
235
|
+
if (server.backend)
|
|
236
|
+
await server.backend.close();
|
|
237
|
+
process.exit(0);
|
|
238
|
+
};
|
|
239
|
+
for (const sig of ["SIGTERM", "SIGINT", "SIGHUP"]) {
|
|
240
|
+
process.on(sig, () => void shutdown(sig));
|
|
241
|
+
}
|
|
242
|
+
// Backend reader died (zcode subprocess exited) — bridge is useless without it.
|
|
243
|
+
const backendDeathInterval = setInterval(() => {
|
|
244
|
+
if (server.backend?.isDead)
|
|
245
|
+
void shutdown("backend dead");
|
|
246
|
+
}, 2000);
|
|
247
|
+
backendDeathInterval.unref();
|
|
248
|
+
// No stdin lifecycle here by design: the hub spawns the serve bridge with
|
|
249
|
+
// stdin ignored, and ADR-0001's "editor closed stdin" signal has no editor
|
|
250
|
+
// to come from — idle exit below is this mode's shutdown path.
|
|
251
|
+
const app = buildAgentApp(server, allCommands);
|
|
252
|
+
// Track connections BEFORE the endpoint accepts any WS client so every
|
|
253
|
+
// remote connection lands in the broadcast registry from its first message.
|
|
254
|
+
trackConnections(app, server.clients);
|
|
255
|
+
remoteHandle = await startRemoteEndpoint(server, app, { ...remoteConfig, origin: "serve" });
|
|
256
|
+
if (!remoteHandle) {
|
|
257
|
+
warn("serve: remote endpoint failed to start — exiting");
|
|
258
|
+
process.exit(1);
|
|
259
|
+
}
|
|
260
|
+
// Idle lifecycle + the process's only keep-alive: the endpoint's HTTP server
|
|
261
|
+
// and heartbeat timers are all unref'd (ADR-0001), so without this interval
|
|
262
|
+
// the process would exit immediately. Deliberately NOT unref'd.
|
|
263
|
+
let lastBusy = Date.now();
|
|
264
|
+
const idleCheck = setInterval(() => {
|
|
265
|
+
if (server.clients.size > 0 || server.pendingTurns.size > 0) {
|
|
266
|
+
lastBusy = Date.now();
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
if (serveIdleDecision(server.clients.size, server.pendingTurns.size, lastBusy, Date.now(), SERVE_IDLE_MS)) {
|
|
270
|
+
void shutdown("idle — no clients attached and no turn running");
|
|
271
|
+
}
|
|
272
|
+
}, SERVE_IDLE_CHECK_MS);
|
|
273
|
+
void idleCheck;
|
|
175
274
|
}
|
|
176
275
|
// Only auto-run when invoked directly (not when imported by the Unified CLI
|
|
177
276
|
// dispatcher). In an ESM build there is no `require.main`, so fall back to an
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/interaction/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EACV,gCAAgC,EAChC,wBAAwB,EACxB,+BAA+B,EAChC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/interaction/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* into per-option yes/no popups; the user's Include picks are comma-joined
|
|
16
16
|
* into the final answer (mirrors the reference impl's `answers[q]: "a, b"`).
|
|
17
17
|
*/
|
|
18
|
+
import { messages } from "../i18n.js";
|
|
18
19
|
// ---------- classification ----------
|
|
19
20
|
export function isPermissionRequest(method) {
|
|
20
21
|
return method === "interaction/requestPermission";
|
|
@@ -105,15 +106,16 @@ export function acpPermissionResponseToZcode(acpResp) {
|
|
|
105
106
|
// ---------- ExitPlanMode → ACP requestPermission ----------
|
|
106
107
|
/** ExitPlanMode rendered as approve/reject permission options. */
|
|
107
108
|
export function exitPlanModeToAcpPermission(params, acpSid) {
|
|
109
|
+
const m = messages();
|
|
108
110
|
return {
|
|
109
111
|
options: [
|
|
110
|
-
{ kind: "allow_once", name:
|
|
111
|
-
{ kind: "reject_once", name:
|
|
112
|
+
{ kind: "allow_once", name: m.planApproveOption, optionId: "approve" },
|
|
113
|
+
{ kind: "reject_once", name: m.planRejectOption, optionId: "reject" },
|
|
112
114
|
],
|
|
113
115
|
sessionId: acpSid,
|
|
114
116
|
toolCall: {
|
|
115
117
|
toolCallId: params.toolCallId ?? "",
|
|
116
|
-
title:
|
|
118
|
+
title: m.planPopupTitle,
|
|
117
119
|
rawInput: params.input,
|
|
118
120
|
},
|
|
119
121
|
};
|
|
@@ -161,11 +163,12 @@ export function splitAskUserQuestions(params) {
|
|
|
161
163
|
if (labels.length === 0)
|
|
162
164
|
continue;
|
|
163
165
|
const multi = q.multiSelect === true;
|
|
166
|
+
const m = messages();
|
|
164
167
|
if (multi) {
|
|
165
168
|
const options = [];
|
|
166
169
|
for (const lb of labels) {
|
|
167
|
-
options.push({ optionId: `${lb}:yes`, kind: "allow_once", name:
|
|
168
|
-
options.push({ optionId: `${lb}:no`, kind: "reject_once", name:
|
|
170
|
+
options.push({ optionId: `${lb}:yes`, kind: "allow_once", name: m.askIncludeOption(lb) });
|
|
171
|
+
options.push({ optionId: `${lb}:no`, kind: "reject_once", name: m.askSkipLabelOption(lb) });
|
|
169
172
|
}
|
|
170
173
|
result.push({ question: q.question, multiSelect: true, options });
|
|
171
174
|
}
|
|
@@ -175,7 +178,7 @@ export function splitAskUserQuestions(params) {
|
|
|
175
178
|
kind: "allow_once",
|
|
176
179
|
name: lb,
|
|
177
180
|
}));
|
|
178
|
-
options.push({ optionId: "__skip__", kind: "reject_once", name:
|
|
181
|
+
options.push({ optionId: "__skip__", kind: "reject_once", name: m.askSkipOption });
|
|
179
182
|
result.push({ question: q.question, multiSelect: false, options });
|
|
180
183
|
}
|
|
181
184
|
}
|
|
@@ -250,7 +253,7 @@ export function buildAskUserElicitationForm(params, acpSid, toolCallId) {
|
|
|
250
253
|
continue;
|
|
251
254
|
// Titled enum option for "skip": const carries the sentinel value the
|
|
252
255
|
// parser recognizes; title is what the client renders in the dropdown.
|
|
253
|
-
const skipOption = { const: ELICIT_SKIP, title:
|
|
256
|
+
const skipOption = { const: ELICIT_SKIP, title: messages().askSkipQuestionTitle };
|
|
254
257
|
if (q.multiSelect) {
|
|
255
258
|
properties[key] = {
|
|
256
259
|
type: "array",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/interaction/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/interaction/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/remote/config.d.ts
CHANGED
|
@@ -21,6 +21,13 @@ export interface RemoteConfig {
|
|
|
21
21
|
hubPort: number;
|
|
22
22
|
hubHost: string;
|
|
23
23
|
bridgePort: number;
|
|
24
|
+
/**
|
|
25
|
+
* Who this bridge serves: "editor" (spawned by an editor over stdio) or
|
|
26
|
+
* "serve" (headless, hub-spawned for remote session-create, ADR-0014).
|
|
27
|
+
* Rides the registration heartbeat; the hub uses it to dedupe headless
|
|
28
|
+
* instances per workspace and label them for remote clients.
|
|
29
|
+
*/
|
|
30
|
+
origin: "editor" | "serve";
|
|
24
31
|
}
|
|
25
32
|
export declare const DEFAULT_HUB_PORT = 8377;
|
|
26
33
|
export declare const DEFAULT_BRIDGE_PORT = 8378;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/remote/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/remote/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAY5C,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,YAAY,GAAG,IAAI,CAkB3F;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,YAAY,GAAG,IAAI,CAaxF"}
|