downcity 1.0.446 → 1.0.452
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/bin/main/city/daemon/Api.d.ts.map +1 -1
- package/bin/main/modules/cli/AgentChat.d.ts.map +1 -1
- package/bin/main/modules/cli/AgentChat.js +214 -42
- package/bin/main/modules/cli/AgentChat.js.map +1 -1
- package/bin/main/modules/cli/IndexAgentCommand.d.ts.map +1 -1
- package/bin/main/modules/cli/IndexAgentCommand.js +3 -17
- package/bin/main/modules/cli/IndexAgentCommand.js.map +1 -1
- package/bin/main/modules/cli/ServiceCommandRemote.d.ts.map +1 -1
- package/bin/main/modules/cli/ServiceCommandRemote.js +6 -13
- package/bin/main/modules/cli/ServiceCommandRemote.js.map +1 -1
- package/bin/main/modules/rpc/Client.d.ts.map +1 -1
- package/bin/main/modules/rpc/Client.js +7 -2
- package/bin/main/modules/rpc/Client.js.map +1 -1
- package/bin/main/modules/rpc/Paths.d.ts.map +1 -1
- package/bin/main/modules/rpc/Paths.js +7 -3
- package/bin/main/modules/rpc/Paths.js.map +1 -1
- package/bin/main/modules/rpc/Transport.d.ts.map +1 -1
- package/bin/main/modules/rpc/Transport.js +0 -24
- package/bin/main/modules/rpc/Transport.js.map +1 -1
- package/bin/main/service/ServiceCommand.d.ts.map +1 -1
- package/bin/main/service/ServiceCommand.js +2 -5
- package/bin/main/service/ServiceCommand.js.map +1 -1
- package/bin/services/shell/runtime/ShellActionRuntimeSupport.d.ts.map +1 -1
- package/bin/services/shell/runtime/ShellActionRuntimeSupport.js +11 -0
- package/bin/services/shell/runtime/ShellActionRuntimeSupport.js.map +1 -1
- package/bin/types/cli/AgentChat.d.ts.map +1 -1
- package/bin/types/cli/AgentChat.js +6 -3
- package/bin/types/cli/AgentChat.js.map +1 -1
- package/docs/cli-tree.md +1 -2
- package/package.json +1 -1
- package/test/main/agent-command.test.mjs +5 -7
- package/test/main/cli-command-tree.test.mjs +3 -7
- package/test/main/local-rpc-transport.test.mjs +75 -14
- package/test/runtime/shell-service.test.mjs +22 -0
- package/bin/main/modules/cli/AgentQuest.d.ts.map +0 -1
- package/bin/main/modules/cli/AgentQuest.js +0 -249
- package/bin/main/modules/cli/AgentQuest.js.map +0 -1
- package/bin/types/cli/AgentQuest.d.ts.map +0 -1
- package/bin/types/cli/AgentQuest.js +0 -16
- package/bin/types/cli/AgentQuest.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../../../src/main/city/daemon/Api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../../../src/main/city/daemon/Api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentChat.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/cli/AgentChat.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"AgentChat.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/cli/AgentChat.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAEzB,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAmGlC;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,yBAAyB,CAAC;CACvC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAiFrC;AAmID;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC7E"}
|
|
@@ -2,15 +2,29 @@
|
|
|
2
2
|
* `city agent chat` 命令实现。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
5
|
+
* - 统一覆盖交互式持续对话与一次性消息模式,不再保留独立 `quest` 命令。
|
|
6
|
+
* - 目标 agent 始终按 console registry 名称解析,不依赖当前工作目录。
|
|
7
|
+
* - 默认复用 Console UI 主会话:`consoleui-chat-main`。
|
|
8
8
|
*/
|
|
9
9
|
import { createInterface } from "node:readline/promises";
|
|
10
10
|
import prompts from "prompts";
|
|
11
|
+
import { callAgentTransport } from "../../../main/modules/rpc/Transport.js";
|
|
11
12
|
import { emitCliBlock } from "./CliReporter.js";
|
|
12
|
-
import {
|
|
13
|
+
import { printResult } from "../../../shared/utils/cli/CliOutput.js";
|
|
14
|
+
import { resolveProjectRootByAgentName, validateAgentProjectRoot, } from "./ServiceCommandSupport.js";
|
|
13
15
|
import { listRegisteredAgentsForCli } from "./AgentSelection.js";
|
|
16
|
+
import { AGENT_CHAT_DEFAULT_SESSION_ID } from "../../../types/cli/AgentChat.js";
|
|
17
|
+
const AGENT_CHAT_EXECUTE_TIMEOUT_MS = 120_000;
|
|
18
|
+
function normalizeChatMessage(input) {
|
|
19
|
+
return String(input || "").trim();
|
|
20
|
+
}
|
|
21
|
+
function isChatSuccess(payload) {
|
|
22
|
+
if (!payload || payload.success !== true)
|
|
23
|
+
return false;
|
|
24
|
+
if (payload.result?.success === false)
|
|
25
|
+
return false;
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
14
28
|
async function resolveChatTargetAgentName(inputName) {
|
|
15
29
|
const explicit = String(inputName || "").trim();
|
|
16
30
|
if (explicit)
|
|
@@ -65,24 +79,161 @@ function printAssistantReply(replyText) {
|
|
|
65
79
|
}
|
|
66
80
|
console.log(`\n${text}\n`);
|
|
67
81
|
}
|
|
82
|
+
function printQueuedResult(params) {
|
|
83
|
+
emitCliBlock({
|
|
84
|
+
tone: "info",
|
|
85
|
+
title: "Turn queued",
|
|
86
|
+
facts: [
|
|
87
|
+
{
|
|
88
|
+
label: "agent",
|
|
89
|
+
value: params.agentName,
|
|
90
|
+
},
|
|
91
|
+
...(params.payload.result?.queueItemId
|
|
92
|
+
? [
|
|
93
|
+
{
|
|
94
|
+
label: "queue item",
|
|
95
|
+
value: params.payload.result.queueItemId,
|
|
96
|
+
},
|
|
97
|
+
]
|
|
98
|
+
: []),
|
|
99
|
+
],
|
|
100
|
+
});
|
|
101
|
+
}
|
|
68
102
|
/**
|
|
69
|
-
*
|
|
103
|
+
* 向目标 agent 的 Console 主会话发送一轮消息。
|
|
70
104
|
*/
|
|
71
|
-
export async function
|
|
72
|
-
|
|
105
|
+
export async function executeAgentChatTurn(params) {
|
|
106
|
+
const agentName = String(params.agentName || "").trim();
|
|
107
|
+
const message = normalizeChatMessage(params.message);
|
|
108
|
+
const sessionId = AGENT_CHAT_DEFAULT_SESSION_ID;
|
|
109
|
+
if (!agentName) {
|
|
110
|
+
return {
|
|
111
|
+
agentName: "",
|
|
112
|
+
sessionId,
|
|
113
|
+
success: false,
|
|
114
|
+
error: "Missing target agent name.",
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
if (!message) {
|
|
118
|
+
return {
|
|
119
|
+
agentName,
|
|
120
|
+
sessionId,
|
|
121
|
+
success: false,
|
|
122
|
+
error: "Chat message is required.",
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
const resolved = await resolveProjectRootByAgentName(agentName);
|
|
126
|
+
if (!resolved.projectRoot) {
|
|
127
|
+
return {
|
|
128
|
+
agentName,
|
|
129
|
+
sessionId,
|
|
130
|
+
success: false,
|
|
131
|
+
error: resolved.error || "Failed to resolve agent project path",
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
const pathError = validateAgentProjectRoot(resolved.projectRoot);
|
|
135
|
+
if (pathError) {
|
|
136
|
+
return {
|
|
137
|
+
agentName,
|
|
138
|
+
projectRoot: resolved.projectRoot,
|
|
139
|
+
sessionId,
|
|
140
|
+
success: false,
|
|
141
|
+
error: pathError,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
const remote = await callAgentTransport({
|
|
145
|
+
projectRoot: resolved.projectRoot,
|
|
146
|
+
path: `/api/dashboard/sessions/${encodeURIComponent(sessionId)}/execute`,
|
|
147
|
+
method: "POST",
|
|
148
|
+
timeoutMs: AGENT_CHAT_EXECUTE_TIMEOUT_MS,
|
|
149
|
+
host: params.transport?.host,
|
|
150
|
+
port: params.transport?.port,
|
|
151
|
+
authToken: params.transport?.token,
|
|
152
|
+
body: {
|
|
153
|
+
instructions: message,
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
if (!remote.success || !remote.data) {
|
|
157
|
+
return {
|
|
158
|
+
agentName,
|
|
159
|
+
projectRoot: resolved.projectRoot,
|
|
160
|
+
sessionId,
|
|
161
|
+
success: false,
|
|
162
|
+
error: remote.error || "Unknown error",
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
agentName,
|
|
167
|
+
projectRoot: resolved.projectRoot,
|
|
168
|
+
sessionId: String(remote.data.sessionId || sessionId),
|
|
169
|
+
success: isChatSuccess(remote.data),
|
|
170
|
+
payload: remote.data,
|
|
171
|
+
...(isChatSuccess(remote.data)
|
|
172
|
+
? {}
|
|
173
|
+
: {
|
|
174
|
+
error: String(remote.data.result?.error || remote.data.error || "").trim() ||
|
|
175
|
+
"Unknown error",
|
|
176
|
+
}),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
async function runOneShotChat(params) {
|
|
180
|
+
const outcome = await executeAgentChatTurn({
|
|
181
|
+
agentName: params.agentName,
|
|
182
|
+
message: params.message,
|
|
183
|
+
transport: {
|
|
184
|
+
host: params.options.host,
|
|
185
|
+
port: params.options.port,
|
|
186
|
+
token: params.options.token,
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
if (params.options.json === true) {
|
|
190
|
+
printResult({
|
|
191
|
+
asJson: true,
|
|
192
|
+
success: outcome.success,
|
|
193
|
+
title: "agent chat",
|
|
194
|
+
payload: {
|
|
195
|
+
agent: params.agentName,
|
|
196
|
+
...(outcome.projectRoot ? { projectRoot: outcome.projectRoot } : {}),
|
|
197
|
+
sessionId: outcome.sessionId,
|
|
198
|
+
...(outcome.payload?.result ? { result: outcome.payload.result } : {}),
|
|
199
|
+
...(outcome.error ? { error: outcome.error } : {}),
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
if (!outcome.success || !outcome.payload) {
|
|
73
205
|
emitCliBlock({
|
|
74
206
|
tone: "error",
|
|
75
|
-
title: "
|
|
76
|
-
|
|
207
|
+
title: "Agent chat failed",
|
|
208
|
+
facts: [
|
|
209
|
+
{
|
|
210
|
+
label: "agent",
|
|
211
|
+
value: params.agentName,
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
label: "error",
|
|
215
|
+
value: outcome.error || "Unknown error",
|
|
216
|
+
},
|
|
217
|
+
],
|
|
77
218
|
});
|
|
78
219
|
return;
|
|
79
220
|
}
|
|
80
|
-
|
|
81
|
-
|
|
221
|
+
if (outcome.payload.result?.queued === true) {
|
|
222
|
+
printQueuedResult({
|
|
223
|
+
agentName: params.agentName,
|
|
224
|
+
payload: outcome.payload,
|
|
225
|
+
});
|
|
82
226
|
return;
|
|
227
|
+
}
|
|
228
|
+
printAssistantReply(String(outcome.payload.result?.userVisible || ""));
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* 启动交互式持续对话。
|
|
232
|
+
*/
|
|
233
|
+
async function runInteractiveChat(params) {
|
|
83
234
|
emitCliBlock({
|
|
84
235
|
tone: "info",
|
|
85
|
-
title: `Agent chat · ${agentName}`,
|
|
236
|
+
title: `Agent chat · ${params.agentName}`,
|
|
86
237
|
note: "Shared session: consoleui-chat-main · Type /exit to quit.",
|
|
87
238
|
});
|
|
88
239
|
const rl = createInterface({
|
|
@@ -92,21 +243,19 @@ export async function chatCommand(options) {
|
|
|
92
243
|
});
|
|
93
244
|
try {
|
|
94
245
|
while (true) {
|
|
95
|
-
const line = await rl.question(`${agentName}> `);
|
|
96
|
-
const text =
|
|
97
|
-
if (!text)
|
|
246
|
+
const line = await rl.question(`${params.agentName}> `);
|
|
247
|
+
const text = normalizeChatMessage(line);
|
|
248
|
+
if (!text)
|
|
98
249
|
continue;
|
|
99
|
-
|
|
100
|
-
if (text === "/exit" || text === "/quit") {
|
|
250
|
+
if (text === "/exit" || text === "/quit")
|
|
101
251
|
break;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
instructions: text,
|
|
252
|
+
const outcome = await executeAgentChatTurn({
|
|
253
|
+
agentName: params.agentName,
|
|
254
|
+
message: text,
|
|
106
255
|
transport: {
|
|
107
|
-
host: options.host,
|
|
108
|
-
port: options.port,
|
|
109
|
-
token: options.token,
|
|
256
|
+
host: params.options.host,
|
|
257
|
+
port: params.options.port,
|
|
258
|
+
token: params.options.token,
|
|
110
259
|
},
|
|
111
260
|
});
|
|
112
261
|
if (!outcome.success || !outcome.payload) {
|
|
@@ -116,7 +265,7 @@ export async function chatCommand(options) {
|
|
|
116
265
|
facts: [
|
|
117
266
|
{
|
|
118
267
|
label: "agent",
|
|
119
|
-
value: agentName,
|
|
268
|
+
value: params.agentName,
|
|
120
269
|
},
|
|
121
270
|
{
|
|
122
271
|
label: "error",
|
|
@@ -127,23 +276,9 @@ export async function chatCommand(options) {
|
|
|
127
276
|
continue;
|
|
128
277
|
}
|
|
129
278
|
if (outcome.payload.result?.queued === true) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
facts: [
|
|
134
|
-
{
|
|
135
|
-
label: "agent",
|
|
136
|
-
value: agentName,
|
|
137
|
-
},
|
|
138
|
-
...(outcome.payload.result.queueItemId
|
|
139
|
-
? [
|
|
140
|
-
{
|
|
141
|
-
label: "queue item",
|
|
142
|
-
value: outcome.payload.result.queueItemId,
|
|
143
|
-
},
|
|
144
|
-
]
|
|
145
|
-
: []),
|
|
146
|
-
],
|
|
279
|
+
printQueuedResult({
|
|
280
|
+
agentName: params.agentName,
|
|
281
|
+
payload: outcome.payload,
|
|
147
282
|
});
|
|
148
283
|
continue;
|
|
149
284
|
}
|
|
@@ -154,4 +289,41 @@ export async function chatCommand(options) {
|
|
|
154
289
|
rl.close();
|
|
155
290
|
}
|
|
156
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* `city agent chat` 统一入口。
|
|
294
|
+
*/
|
|
295
|
+
export async function chatCommand(options) {
|
|
296
|
+
const agentName = await resolveChatTargetAgentName(options.to);
|
|
297
|
+
if (!agentName)
|
|
298
|
+
return;
|
|
299
|
+
const oneShotMessage = normalizeChatMessage(String(options.message || ""));
|
|
300
|
+
if (oneShotMessage) {
|
|
301
|
+
await runOneShotChat({
|
|
302
|
+
agentName,
|
|
303
|
+
message: oneShotMessage,
|
|
304
|
+
options,
|
|
305
|
+
});
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
if (options.json === true) {
|
|
309
|
+
emitCliBlock({
|
|
310
|
+
tone: "error",
|
|
311
|
+
title: "JSON mode requires --message",
|
|
312
|
+
note: "Use `city agent chat --message <text> --json` for one-shot structured output.",
|
|
313
|
+
});
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
317
|
+
emitCliBlock({
|
|
318
|
+
tone: "error",
|
|
319
|
+
title: "Interactive terminal required",
|
|
320
|
+
note: "Use this command in a local terminal with TTY support, or pass `--message` for one-shot mode.",
|
|
321
|
+
});
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
await runInteractiveChat({
|
|
325
|
+
agentName,
|
|
326
|
+
options,
|
|
327
|
+
});
|
|
328
|
+
}
|
|
157
329
|
//# sourceMappingURL=AgentChat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentChat.js","sourceRoot":"","sources":["../../../../src/main/modules/cli/AgentChat.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AgentChat.js","sourceRoot":"","sources":["../../../../src/main/modules/cli/AgentChat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexAgentCommand.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/cli/IndexAgentCommand.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"IndexAgentCommand.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/cli/IndexAgentCommand.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAyBjD;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,gBAAgB,EAAE,OAAO,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,+BAA+B,GACvC,IAAI,CA4LN"}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { emitRegisteredAgentListWithOptions, resolveCliAgentStartProjectRoot, } from "./AgentSelection.js";
|
|
9
9
|
import { chatCommand } from "./AgentChat.js";
|
|
10
|
-
import { questCommand } from "./AgentQuest.js";
|
|
11
10
|
import { initCommand } from "./Init.js";
|
|
12
11
|
import { restartCommand } from "./Restart.js";
|
|
13
12
|
import { runCommand } from "./Run.js";
|
|
@@ -65,8 +64,10 @@ export function registerAgentCommands(program, context) {
|
|
|
65
64
|
}));
|
|
66
65
|
agent
|
|
67
66
|
.command("chat")
|
|
68
|
-
.description("在终端中与指定 Agent
|
|
67
|
+
.description("在终端中与指定 Agent 对话(交互式或一次性)")
|
|
69
68
|
.option("-t, --to <name>", "目标 agent 名称(省略时交互选择)")
|
|
69
|
+
.option("-m, --message <text>", "一次性发送一轮消息并退出")
|
|
70
|
+
.option("--json [enabled]", "一次性模式下以 JSON 输出", parseBoolean)
|
|
70
71
|
.option("--host <host>", "Server host(覆盖自动解析)")
|
|
71
72
|
.addOption(new context.hiddenPortOption("--port <port>").argParser(parsePort).hideHelp())
|
|
72
73
|
.option("--token <token>", "覆盖 Bearer Token(仅远程 HTTP 调用需要)")
|
|
@@ -74,21 +75,6 @@ export function registerAgentCommands(program, context) {
|
|
|
74
75
|
.action(createVersionBanner(context.version, async (options) => {
|
|
75
76
|
await chatCommand(options);
|
|
76
77
|
}));
|
|
77
|
-
agent
|
|
78
|
-
.command("quest <instructions...>")
|
|
79
|
-
.description("向指定 Agent 的 Console 主会话发送一轮消息")
|
|
80
|
-
.requiredOption("-t, --to <name>", "目标 agent 名称(从 console registry 解析)")
|
|
81
|
-
.option("--host <host>", "Server host(覆盖自动解析)")
|
|
82
|
-
.addOption(new context.hiddenPortOption("--port <port>").argParser(parsePort).hideHelp())
|
|
83
|
-
.option("--token <token>", "覆盖 Bearer Token(仅远程 HTTP 调用需要)")
|
|
84
|
-
.option("--json [enabled]", "以 JSON 输出", parseBoolean)
|
|
85
|
-
.helpOption("--help", "display help for command")
|
|
86
|
-
.action(createVersionBanner(context.version, async (instructions, options) => {
|
|
87
|
-
await questCommand({
|
|
88
|
-
instructions,
|
|
89
|
-
options,
|
|
90
|
-
});
|
|
91
|
-
}));
|
|
92
78
|
agent
|
|
93
79
|
.command("status [path]")
|
|
94
80
|
.description("查看后台 Agent 进程(daemon)状态")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexAgentCommand.js","sourceRoot":"","sources":["../../../../src/main/modules/cli/IndexAgentCommand.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"IndexAgentCommand.js","sourceRoot":"","sources":["../../../../src/main/modules/cli/IndexAgentCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceCommandRemote.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/cli/ServiceCommandRemote.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,qBAAqB,EAErB,oBAAoB,EAGrB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ServiceCommandRemote.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/cli/ServiceCommandRemote.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,qBAAqB,EAErB,oBAAoB,EAGrB,MAAM,4BAA4B,CAAC;AASpC;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDzF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DhB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEhB"}
|
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
* - 统一处理 list/control/command 三类需要访问 Agent server 的命令。
|
|
6
6
|
* - 这里不负责命令注册,只负责 transport 调用与结果输出。
|
|
7
7
|
*/
|
|
8
|
-
import { callAgentTransport
|
|
8
|
+
import { callAgentTransport } from "../../../main/modules/rpc/Transport.js";
|
|
9
9
|
import { printResult } from "../../../shared/utils/cli/CliOutput.js";
|
|
10
10
|
import { parseCommandPayload, resolveServiceProjectRoot, validateAgentProjectRoot, } from "./ServiceCommandSupport.js";
|
|
11
|
+
const SERVICE_COMMAND_TIMEOUT_MS = 120_000;
|
|
11
12
|
/**
|
|
12
13
|
* 执行 `service list`。
|
|
13
14
|
*/
|
|
@@ -62,10 +63,7 @@ export async function runServiceListCommand(options) {
|
|
|
62
63
|
success: false,
|
|
63
64
|
title: "service list failed",
|
|
64
65
|
payload: {
|
|
65
|
-
error:
|
|
66
|
-
error: remote.error,
|
|
67
|
-
fallback: "Service list requires an active Agent server. Start via `city agent start` first.",
|
|
68
|
-
}),
|
|
66
|
+
error: remote.error || "Unknown error",
|
|
69
67
|
},
|
|
70
68
|
});
|
|
71
69
|
}
|
|
@@ -127,10 +125,7 @@ export async function runServiceControlCommand(params) {
|
|
|
127
125
|
success: false,
|
|
128
126
|
title: `service ${params.action} failed`,
|
|
129
127
|
payload: {
|
|
130
|
-
error:
|
|
131
|
-
error: remote.error,
|
|
132
|
-
fallback: `Service ${params.action} requires an active Agent server. Start via \`city agent start\` first.`,
|
|
133
|
-
}),
|
|
128
|
+
error: remote.error || "Unknown error",
|
|
134
129
|
},
|
|
135
130
|
});
|
|
136
131
|
}
|
|
@@ -167,6 +162,7 @@ export async function runServiceCommandBridge(params) {
|
|
|
167
162
|
projectRoot,
|
|
168
163
|
path: "/api/services/command",
|
|
169
164
|
method: "POST",
|
|
165
|
+
timeoutMs: SERVICE_COMMAND_TIMEOUT_MS,
|
|
170
166
|
host: params.options.host,
|
|
171
167
|
port: params.options.port,
|
|
172
168
|
authToken: params.options.token,
|
|
@@ -197,10 +193,7 @@ export async function runServiceCommandBridge(params) {
|
|
|
197
193
|
success: false,
|
|
198
194
|
title: "service command failed",
|
|
199
195
|
payload: {
|
|
200
|
-
error:
|
|
201
|
-
error: remote.error,
|
|
202
|
-
fallback: "Service command requires an active Agent server. Start via `city agent start` first.",
|
|
203
|
-
}),
|
|
196
|
+
error: remote.error || "Unknown error",
|
|
204
197
|
},
|
|
205
198
|
});
|
|
206
199
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceCommandRemote.js","sourceRoot":"","sources":["../../../../src/main/modules/cli/ServiceCommandRemote.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"ServiceCommandRemote.js","sourceRoot":"","sources":["../../../../src/main/modules/cli/ServiceCommandRemote.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/rpc/Client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAelG;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/rpc/Client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAelG;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CA+ErC"}
|
|
@@ -23,6 +23,11 @@ function toLocalRpcRequest(params) {
|
|
|
23
23
|
export async function callLocalServer(params) {
|
|
24
24
|
const endpoint = getLocalRpcEndpoint(params.projectRoot);
|
|
25
25
|
const request = toLocalRpcRequest(params);
|
|
26
|
+
const timeoutMs = typeof params.timeoutMs === "number" &&
|
|
27
|
+
Number.isFinite(params.timeoutMs) &&
|
|
28
|
+
params.timeoutMs > 0
|
|
29
|
+
? Math.floor(params.timeoutMs)
|
|
30
|
+
: LOCAL_RPC_TIMEOUT_MS;
|
|
26
31
|
return await new Promise((resolve) => {
|
|
27
32
|
const socket = net.createConnection(endpoint);
|
|
28
33
|
let settled = false;
|
|
@@ -35,7 +40,7 @@ export async function callLocalServer(params) {
|
|
|
35
40
|
resolve(result);
|
|
36
41
|
};
|
|
37
42
|
socket.setEncoding("utf8");
|
|
38
|
-
socket.setTimeout(
|
|
43
|
+
socket.setTimeout(timeoutMs);
|
|
39
44
|
socket.on("connect", () => {
|
|
40
45
|
socket.write(`${JSON.stringify(request)}\n`);
|
|
41
46
|
});
|
|
@@ -71,7 +76,7 @@ export async function callLocalServer(params) {
|
|
|
71
76
|
socket.on("timeout", () => {
|
|
72
77
|
finish({
|
|
73
78
|
success: false,
|
|
74
|
-
error: `Local RPC timed out after ${
|
|
79
|
+
error: `Local RPC timed out after ${timeoutMs}ms (${endpoint})`,
|
|
75
80
|
});
|
|
76
81
|
});
|
|
77
82
|
socket.on("error", (error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../../src/main/modules/rpc/Client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAEnC,SAAS,iBAAiB,CAAC,MAA+B;IACxD,OAAO;QACL,SAAS,EAAE,MAAM,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACtC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;QAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA+B;IAE/B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../../src/main/modules/rpc/Client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Paths.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/rpc/Paths.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Paths.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/rpc/Paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuBH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQ/D"}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
5
|
* - 本地受信任进程之间统一通过 IPC socket/pipe 通信。
|
|
6
|
-
* - Unix
|
|
6
|
+
* - Unix 平台使用 city 全局 runtime 目录下的稳定 socket 文件,避免不同启动上下文
|
|
7
|
+
* 的 `TMPDIR` 不一致,导致同一个 agent 被解析到两个不同 socket 路径。
|
|
7
8
|
* - Windows 平台使用命名 pipe,并基于项目路径 hash 保证稳定唯一。
|
|
8
9
|
*/
|
|
9
10
|
import crypto from "node:crypto";
|
|
10
|
-
import os from "node:os";
|
|
11
11
|
import path from "node:path";
|
|
12
|
+
import { getCityRuntimeDirPath } from "../../../main/city/runtime/CityPaths.js";
|
|
12
13
|
function buildProjectDigest(projectRoot) {
|
|
13
14
|
return crypto
|
|
14
15
|
.createHash("sha1")
|
|
@@ -20,6 +21,9 @@ function buildWindowsPipeName(projectRoot) {
|
|
|
20
21
|
const digest = buildProjectDigest(projectRoot);
|
|
21
22
|
return `\\\\.\\pipe\\downcity-local-${digest}`;
|
|
22
23
|
}
|
|
24
|
+
function getLocalRpcUnixDirPath() {
|
|
25
|
+
return path.join(getCityRuntimeDirPath(), "local-rpc");
|
|
26
|
+
}
|
|
23
27
|
/**
|
|
24
28
|
* 返回本地 RPC endpoint。
|
|
25
29
|
*/
|
|
@@ -27,6 +31,6 @@ export function getLocalRpcEndpoint(projectRoot) {
|
|
|
27
31
|
if (process.platform === "win32") {
|
|
28
32
|
return buildWindowsPipeName(projectRoot);
|
|
29
33
|
}
|
|
30
|
-
return path.join(
|
|
34
|
+
return path.join(getLocalRpcUnixDirPath(), `downcity-local-${buildProjectDigest(projectRoot)}.sock`);
|
|
31
35
|
}
|
|
32
36
|
//# sourceMappingURL=Paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Paths.js","sourceRoot":"","sources":["../../../../src/main/modules/rpc/Paths.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Paths.js","sourceRoot":"","sources":["../../../../src/main/modules/rpc/Paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,OAAO,MAAM;SACV,UAAU,CAAC,MAAM,CAAC;SAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACjC,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC/C,OAAO,+BAA+B,MAAM,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,WAAW,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CACd,sBAAsB,EAAE,EACxB,kBAAkB,kBAAkB,CAAC,WAAW,CAAC,OAAO,CACzD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/rpc/Transport.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIlG;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAKV;AAED
|
|
1
|
+
{"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../../../../src/main/modules/rpc/Transport.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIlG;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAKV;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAQrC"}
|