@downcity/city 1.1.29 → 1.1.39
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 +5 -11
- package/bin/cli/Index.js +10 -5
- package/bin/cli/Index.js.map +1 -1
- package/bin/cli/agent/AgentChat.js +1 -1
- package/bin/cli/agent/AgentChat.js.map +1 -1
- package/bin/cli/agent/AgentManager.js +3 -3
- package/bin/cli/agent/AgentManager.js.map +1 -1
- package/bin/cli/agent/Init.d.ts.map +1 -1
- package/bin/cli/agent/Init.js +14 -14
- package/bin/cli/agent/Init.js.map +1 -1
- package/bin/cli/agent/Restart.js +1 -1
- package/bin/cli/agent/Restart.js.map +1 -1
- package/bin/cli/agent/Run.d.ts.map +1 -1
- package/bin/cli/agent/Run.js +12 -19
- package/bin/cli/agent/Run.js.map +1 -1
- package/bin/cli/agent/Start.js +1 -1
- package/bin/cli/agent/Start.js.map +1 -1
- package/bin/cli/control-plane/ControlPlaneProcess.d.ts.map +1 -1
- package/bin/cli/control-plane/ControlPlaneProcess.js +2 -3
- package/bin/cli/control-plane/ControlPlaneProcess.js.map +1 -1
- package/bin/cli/model/ModelSupport.d.ts +1 -1
- package/bin/cli/model/ModelSupport.d.ts.map +1 -1
- package/bin/cli/model/ModelSupport.js +1 -1
- package/bin/cli/model/ModelSupport.js.map +1 -1
- package/bin/cli/shared/Chat.d.ts +1 -1
- package/bin/cli/shared/Chat.js +1 -1
- package/bin/cli/shared/ChatAuth.d.ts.map +1 -1
- package/bin/cli/shared/ChatAuth.js +5 -7
- package/bin/cli/shared/ChatAuth.js.map +1 -1
- package/bin/cli/shared/ChatManager.d.ts +1 -1
- package/bin/cli/shared/ChatManager.d.ts.map +1 -1
- package/bin/cli/shared/ChatManager.js +20 -21
- package/bin/cli/shared/ChatManager.js.map +1 -1
- package/bin/cli/shared/Config.js +1 -1
- package/bin/cli/shared/Config.js.map +1 -1
- package/bin/cli/shared/ManagedPluginActionCommands.d.ts +15 -0
- package/bin/cli/shared/ManagedPluginActionCommands.d.ts.map +1 -0
- package/bin/cli/shared/{PluginRuntimeActionCommands.js → ManagedPluginActionCommands.js} +13 -12
- package/bin/cli/shared/ManagedPluginActionCommands.js.map +1 -0
- package/bin/cli/shared/{PluginRuntimeRemote.d.ts → ManagedPluginRemote.d.ts} +6 -6
- package/bin/cli/shared/{PluginRuntimeRemote.d.ts.map → ManagedPluginRemote.d.ts.map} +1 -1
- package/bin/cli/shared/{PluginRuntimeRemote.js → ManagedPluginRemote.js} +14 -14
- package/bin/cli/shared/ManagedPluginRemote.js.map +1 -0
- package/bin/cli/shared/PluginScheduleCommand.d.ts +3 -2
- package/bin/cli/shared/PluginScheduleCommand.d.ts.map +1 -1
- package/bin/cli/shared/PluginScheduleCommand.js +12 -11
- package/bin/cli/shared/PluginScheduleCommand.js.map +1 -1
- package/bin/cli/shared/{PluginRuntimeSupport.d.ts → PluginTargetSupport.d.ts} +7 -7
- package/bin/cli/shared/PluginTargetSupport.d.ts.map +1 -0
- package/bin/cli/shared/{PluginRuntimeSupport.js → PluginTargetSupport.js} +7 -8
- package/bin/cli/shared/{PluginRuntimeSupport.js.map → PluginTargetSupport.js.map} +1 -1
- package/bin/cli/shared/Plugins.d.ts.map +1 -1
- package/bin/cli/shared/Plugins.js +30 -21
- package/bin/cli/shared/Plugins.js.map +1 -1
- package/bin/cli/shared/PortHints.js +1 -1
- package/bin/config/DowncitySchema.d.ts.map +1 -1
- package/bin/config/DowncitySchema.js +2 -8
- package/bin/config/DowncitySchema.js.map +1 -1
- package/bin/config/Paths.d.ts +2 -2
- package/bin/config/Paths.js +2 -2
- package/bin/control/AgentStatusApiRoutes.js +2 -2
- package/bin/control/AgentStatusApiRoutes.js.map +1 -1
- package/bin/control/ChannelAccountApiRoutes.d.ts.map +1 -1
- package/bin/control/ChannelAccountApiRoutes.js +6 -7
- package/bin/control/ChannelAccountApiRoutes.js.map +1 -1
- package/bin/control/ControlGateway.d.ts.map +1 -1
- package/bin/control/ControlGateway.js +3 -2
- package/bin/control/ControlGateway.js.map +1 -1
- package/bin/control/PluginApiRoutes.d.ts.map +1 -1
- package/bin/control/PluginApiRoutes.js +38 -30
- package/bin/control/PluginApiRoutes.js.map +1 -1
- package/bin/control/gateway/AgentActions.d.ts.map +1 -1
- package/bin/control/gateway/AgentActions.js +16 -11
- package/bin/control/gateway/AgentActions.js.map +1 -1
- package/bin/control/gateway/AgentCatalog.js +1 -1
- package/bin/control/gateway/AgentCatalog.js.map +1 -1
- package/bin/control/instant/InstantApiRoutes.d.ts +3 -3
- package/bin/control/instant/InstantApiRoutes.d.ts.map +1 -1
- package/bin/control/instant/InstantApiRoutes.js +5 -5
- package/bin/control/instant/InstantApiRoutes.js.map +1 -1
- package/bin/control/instant/{InstantSessionService.d.ts → InstantSessionRunner.d.ts} +7 -7
- package/bin/control/instant/InstantSessionRunner.d.ts.map +1 -0
- package/bin/control/instant/{InstantSessionService.js → InstantSessionRunner.js} +4 -4
- package/bin/control/instant/InstantSessionRunner.js.map +1 -0
- package/bin/http/auth/RoutePolicy.js +4 -4
- package/bin/http/auth/RoutePolicy.js.map +1 -1
- package/bin/model/runtime/CreateRuntimeModel.d.ts +2 -10
- package/bin/model/runtime/CreateRuntimeModel.d.ts.map +1 -1
- package/bin/model/runtime/CreateRuntimeModel.js +1 -16
- package/bin/model/runtime/CreateRuntimeModel.js.map +1 -1
- package/bin/model/runtime/ExecutionModelBinding.d.ts +46 -0
- package/bin/model/runtime/ExecutionModelBinding.d.ts.map +1 -0
- package/bin/model/runtime/ExecutionModelBinding.js +96 -0
- package/bin/model/runtime/ExecutionModelBinding.js.map +1 -0
- package/bin/process/daemon/Api.d.ts +2 -2
- package/bin/process/daemon/Api.js +1 -1
- package/bin/process/registry/AgentHostRuntime.d.ts +1 -9
- package/bin/process/registry/AgentHostRuntime.d.ts.map +1 -1
- package/bin/process/registry/AgentHostRuntime.js +2 -156
- package/bin/process/registry/AgentHostRuntime.js.map +1 -1
- package/package.json +3 -2
- package/src/cli/Index.ts +13 -5
- package/src/cli/agent/AgentChat.ts +1 -1
- package/src/cli/agent/AgentManager.ts +3 -3
- package/src/cli/agent/Init.ts +15 -14
- package/src/cli/agent/Restart.ts +1 -1
- package/src/cli/agent/Run.ts +12 -18
- package/src/cli/agent/Start.ts +1 -1
- package/src/cli/control-plane/ControlPlaneProcess.ts +2 -3
- package/src/cli/model/ModelSupport.ts +1 -1
- package/src/cli/shared/Chat.ts +1 -1
- package/src/cli/shared/ChatAuth.ts +10 -11
- package/src/cli/shared/ChatManager.ts +21 -22
- package/src/cli/shared/Config.ts +1 -1
- package/src/cli/shared/{PluginRuntimeActionCommands.ts → ManagedPluginActionCommands.ts} +18 -15
- package/src/cli/shared/{PluginRuntimeRemote.ts → ManagedPluginRemote.ts} +15 -15
- package/src/cli/shared/PluginScheduleCommand.ts +12 -11
- package/src/cli/shared/{PluginRuntimeSupport.ts → PluginTargetSupport.ts} +8 -9
- package/src/cli/shared/Plugins.ts +38 -28
- package/src/cli/shared/PortHints.ts +1 -1
- package/src/config/DowncitySchema.ts +2 -8
- package/src/config/Paths.ts +2 -2
- package/src/control/AgentStatusApiRoutes.ts +5 -5
- package/src/control/ChannelAccountApiRoutes.ts +6 -7
- package/src/control/ControlGateway.ts +3 -2
- package/src/control/PluginApiRoutes.ts +42 -32
- package/src/control/gateway/AgentActions.ts +16 -11
- package/src/control/gateway/AgentCatalog.ts +1 -1
- package/src/control/instant/InstantApiRoutes.ts +8 -8
- package/src/control/instant/{InstantSessionService.ts → InstantSessionRunner.ts} +7 -7
- package/src/http/auth/RoutePolicy.ts +4 -4
- package/src/model/runtime/CreateRuntimeModel.ts +1 -26
- package/src/model/runtime/ExecutionModelBinding.ts +120 -0
- package/src/process/daemon/Api.ts +2 -2
- package/src/process/registry/AgentHostRuntime.ts +2 -164
- package/tsconfig.json +2 -1
- package/bin/cli/shared/PluginRuntimeActionCommands.d.ts +0 -14
- package/bin/cli/shared/PluginRuntimeActionCommands.d.ts.map +0 -1
- package/bin/cli/shared/PluginRuntimeActionCommands.js.map +0 -1
- package/bin/cli/shared/PluginRuntimeRemote.js.map +0 -1
- package/bin/cli/shared/PluginRuntimeSupport.d.ts.map +0 -1
- package/bin/control/instant/InstantSessionService.d.ts.map +0 -1
- package/bin/control/instant/InstantSessionService.js.map +0 -1
- package/bin/platform/chatAuthorization/Store.d.ts +0 -31
- package/bin/platform/chatAuthorization/Store.d.ts.map +0 -1
- package/bin/platform/chatAuthorization/Store.js +0 -145
- package/bin/platform/chatAuthorization/Store.js.map +0 -1
- package/bin/process/registry/PluginRuntime.d.ts +0 -24
- package/bin/process/registry/PluginRuntime.d.ts.map +0 -1
- package/bin/process/registry/PluginRuntime.js +0 -31
- package/bin/process/registry/PluginRuntime.js.map +0 -1
- package/src/platform/chatAuthorization/Store.ts +0 -181
- package/src/process/registry/PluginRuntime.ts +0 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"ManagedPluginRemote.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/ManagedPluginRemote.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,oBAAoB,EAEpB,mBAAmB,EAGpB,MAAM,iBAAiB,CAAC;AASzB;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD9F;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,oBAAoB,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DhB;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CAAC,MAAM,EAAE;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEhB"}
|
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
* `city plugin` 运行态远程 Agent server 调用辅助。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* - 统一处理
|
|
5
|
+
* - 统一处理 list/control/command 三类需要访问 Agent server 的命令。
|
|
6
6
|
* - 这里不负责命令注册,只负责 transport 调用与结果输出。
|
|
7
7
|
*/
|
|
8
8
|
import { callAgentTransport } from "@downcity/agent";
|
|
9
9
|
import { printResult } from "../../utils/cli/CliOutput.js";
|
|
10
|
-
import { parseCommandPayload, resolvePluginProjectRoot, validateAgentProjectRoot, } from "./
|
|
10
|
+
import { parseCommandPayload, resolvePluginProjectRoot, validateAgentProjectRoot, } from "./PluginTargetSupport.js";
|
|
11
11
|
const PLUGIN_COMMAND_TIMEOUT_MS = 120_000;
|
|
12
12
|
/**
|
|
13
|
-
* 执行 `plugin list
|
|
13
|
+
* 执行 `plugin list`。
|
|
14
14
|
*/
|
|
15
|
-
export async function
|
|
15
|
+
export async function runManagedPluginListCommand(options) {
|
|
16
16
|
const resolved = await resolvePluginProjectRoot(options);
|
|
17
17
|
if (!resolved.projectRoot) {
|
|
18
18
|
printResult({
|
|
19
19
|
asJson: options.json,
|
|
20
20
|
success: false,
|
|
21
|
-
title: "plugin
|
|
21
|
+
title: "plugin list failed",
|
|
22
22
|
payload: {
|
|
23
23
|
error: resolved.error || "Failed to resolve agent project path",
|
|
24
24
|
},
|
|
@@ -31,7 +31,7 @@ export async function runPluginRuntimeListCommand(options) {
|
|
|
31
31
|
printResult({
|
|
32
32
|
asJson: options.json,
|
|
33
33
|
success: false,
|
|
34
|
-
title: "plugin
|
|
34
|
+
title: "plugin list failed",
|
|
35
35
|
payload: {
|
|
36
36
|
error: pathError,
|
|
37
37
|
},
|
|
@@ -40,7 +40,7 @@ export async function runPluginRuntimeListCommand(options) {
|
|
|
40
40
|
}
|
|
41
41
|
const remote = await callAgentTransport({
|
|
42
42
|
projectRoot,
|
|
43
|
-
path: "/api/plugins/
|
|
43
|
+
path: "/api/plugins/list",
|
|
44
44
|
method: "GET",
|
|
45
45
|
host: options.host,
|
|
46
46
|
port: options.port,
|
|
@@ -50,7 +50,7 @@ export async function runPluginRuntimeListCommand(options) {
|
|
|
50
50
|
printResult({
|
|
51
51
|
asJson: options.json,
|
|
52
52
|
success: Boolean(remote.data.success),
|
|
53
|
-
title: remote.data.success ? "plugin
|
|
53
|
+
title: remote.data.success ? "plugin listed" : "plugin list failed",
|
|
54
54
|
payload: {
|
|
55
55
|
...(Array.isArray(remote.data.plugins) ? { plugins: remote.data.plugins } : {}),
|
|
56
56
|
...(remote.data.error ? { error: remote.data.error } : {}),
|
|
@@ -61,7 +61,7 @@ export async function runPluginRuntimeListCommand(options) {
|
|
|
61
61
|
printResult({
|
|
62
62
|
asJson: options.json,
|
|
63
63
|
success: false,
|
|
64
|
-
title: "plugin
|
|
64
|
+
title: "plugin list failed",
|
|
65
65
|
payload: {
|
|
66
66
|
error: remote.error || "Unknown error",
|
|
67
67
|
},
|
|
@@ -70,7 +70,7 @@ export async function runPluginRuntimeListCommand(options) {
|
|
|
70
70
|
/**
|
|
71
71
|
* 执行 `plugin status/start/stop/restart`。
|
|
72
72
|
*/
|
|
73
|
-
export async function
|
|
73
|
+
export async function runManagedPluginControlCommand(params) {
|
|
74
74
|
const resolved = await resolvePluginProjectRoot(params.options);
|
|
75
75
|
if (!resolved.projectRoot) {
|
|
76
76
|
printResult({
|
|
@@ -98,7 +98,7 @@ export async function runPluginRuntimeControlCommand(params) {
|
|
|
98
98
|
}
|
|
99
99
|
const remote = await callAgentTransport({
|
|
100
100
|
projectRoot,
|
|
101
|
-
path: "/api/plugins/
|
|
101
|
+
path: "/api/plugins/control",
|
|
102
102
|
method: "POST",
|
|
103
103
|
host: params.options.host,
|
|
104
104
|
port: params.options.port,
|
|
@@ -132,7 +132,7 @@ export async function runPluginRuntimeControlCommand(params) {
|
|
|
132
132
|
/**
|
|
133
133
|
* 执行 `plugin command` 桥接。
|
|
134
134
|
*/
|
|
135
|
-
export async function
|
|
135
|
+
export async function runManagedPluginCommandBridge(params) {
|
|
136
136
|
const resolved = await resolvePluginProjectRoot(params.options);
|
|
137
137
|
if (!resolved.projectRoot) {
|
|
138
138
|
printResult({
|
|
@@ -160,7 +160,7 @@ export async function runPluginRuntimeCommandBridge(params) {
|
|
|
160
160
|
}
|
|
161
161
|
const remote = await callAgentTransport({
|
|
162
162
|
projectRoot,
|
|
163
|
-
path: "/api/plugins/
|
|
163
|
+
path: "/api/plugins/command",
|
|
164
164
|
method: "POST",
|
|
165
165
|
timeoutMs: PLUGIN_COMMAND_TIMEOUT_MS,
|
|
166
166
|
host: params.options.host,
|
|
@@ -197,4 +197,4 @@ export async function runPluginRuntimeCommandBridge(params) {
|
|
|
197
197
|
},
|
|
198
198
|
});
|
|
199
199
|
}
|
|
200
|
-
//# sourceMappingURL=
|
|
200
|
+
//# sourceMappingURL=ManagedPluginRemote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManagedPluginRemote.js","sourceRoot":"","sources":["../../../src/cli/shared/ManagedPluginRemote.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* `city plugin schedule` 命令。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
5
|
+
* - 命令名保留 schedule,是用户侧“延迟执行任务”的操作语义。
|
|
6
|
+
* - 内部使用 Agent 的 ActionScheduleStore,不依赖独立 schedule plugin。
|
|
7
|
+
* - 这里同时承载 schedule 子命令注册与 ActionSchedule 本地存储读写流程。
|
|
7
8
|
*/
|
|
8
9
|
import type { Command } from "commander";
|
|
9
10
|
import type { PluginCliBaseOptions } from "@downcity/agent";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginScheduleCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/PluginScheduleCommand.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PluginScheduleCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/PluginScheduleCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAS5D;;GAEG;AACH,wBAAsB,4BAA4B,CAAC,MAAM,EAAE;IACzD,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DhB;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAAC,MAAM,EAAE;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,oBAAoB,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEhB;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,oBAAoB,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FhB;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAyCpE"}
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* `city plugin schedule` 命令。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
5
|
+
* - 命令名保留 schedule,是用户侧“延迟执行任务”的操作语义。
|
|
6
|
+
* - 内部使用 Agent 的 ActionScheduleStore,不依赖独立 schedule plugin。
|
|
7
|
+
* - 这里同时承载 schedule 子命令注册与 ActionSchedule 本地存储读写流程。
|
|
7
8
|
*/
|
|
8
|
-
import {
|
|
9
|
+
import { ActionScheduleStore } from "@downcity/agent";
|
|
9
10
|
import { printResult } from "../../utils/cli/CliOutput.js";
|
|
10
|
-
import { addPluginScheduleOptions, normalizeScheduledJobStatus, parsePositiveIntOption, resolvePluginScheduleProjectRoot, validateAgentProjectRoot, } from "./
|
|
11
|
+
import { addPluginScheduleOptions, normalizeScheduledJobStatus, parsePositiveIntOption, resolvePluginScheduleProjectRoot, validateAgentProjectRoot, } from "./PluginTargetSupport.js";
|
|
11
12
|
/**
|
|
12
13
|
* 执行 `plugin schedule list`。
|
|
13
14
|
*/
|
|
@@ -42,7 +43,7 @@ export async function runPluginScheduleListCommand(params) {
|
|
|
42
43
|
const limit = params.limitRaw
|
|
43
44
|
? parsePositiveIntOption(params.limitRaw, "limit")
|
|
44
45
|
: 100;
|
|
45
|
-
const store = new
|
|
46
|
+
const store = new ActionScheduleStore(projectRoot);
|
|
46
47
|
try {
|
|
47
48
|
const jobs = store.listJobs({ status, limit });
|
|
48
49
|
printResult({
|
|
@@ -113,7 +114,7 @@ export async function runPluginScheduleInfoCommand(params) {
|
|
|
113
114
|
});
|
|
114
115
|
return;
|
|
115
116
|
}
|
|
116
|
-
const store = new
|
|
117
|
+
const store = new ActionScheduleStore(projectRoot);
|
|
117
118
|
try {
|
|
118
119
|
const job = store.getJobById(jobId);
|
|
119
120
|
if (!job) {
|
|
@@ -181,7 +182,7 @@ export async function runPluginScheduleCancelCommand(params) {
|
|
|
181
182
|
});
|
|
182
183
|
return;
|
|
183
184
|
}
|
|
184
|
-
const store = new
|
|
185
|
+
const store = new ActionScheduleStore(projectRoot);
|
|
185
186
|
try {
|
|
186
187
|
const current = store.getJobById(jobId);
|
|
187
188
|
if (!current) {
|
|
@@ -238,11 +239,11 @@ export async function runPluginScheduleCancelCommand(params) {
|
|
|
238
239
|
export function registerPluginScheduleCommands(plugin) {
|
|
239
240
|
const schedule = plugin
|
|
240
241
|
.command("schedule")
|
|
241
|
-
.description("
|
|
242
|
+
.description("查看和管理持久化延迟 action 任务")
|
|
242
243
|
.helpOption("--help", "display help for command");
|
|
243
244
|
addPluginScheduleOptions(schedule
|
|
244
245
|
.command("list")
|
|
245
|
-
.description("列出当前 agent
|
|
246
|
+
.description("列出当前 agent 的延迟 action 任务")
|
|
246
247
|
.option("--status <status>", "状态过滤(pending|running|succeeded|failed|cancelled)")
|
|
247
248
|
.option("--limit <n>", "返回条数(默认 100)")).action(async (opts) => {
|
|
248
249
|
await runPluginScheduleListCommand({
|
|
@@ -253,7 +254,7 @@ export function registerPluginScheduleCommands(plugin) {
|
|
|
253
254
|
});
|
|
254
255
|
addPluginScheduleOptions(schedule
|
|
255
256
|
.command("info <jobId>")
|
|
256
|
-
.description("
|
|
257
|
+
.description("查看单个延迟 action 任务详情")).action(async (jobId, opts) => {
|
|
257
258
|
await runPluginScheduleInfoCommand({
|
|
258
259
|
jobId,
|
|
259
260
|
options: opts,
|
|
@@ -261,7 +262,7 @@ export function registerPluginScheduleCommands(plugin) {
|
|
|
261
262
|
});
|
|
262
263
|
addPluginScheduleOptions(schedule
|
|
263
264
|
.command("cancel <jobId>")
|
|
264
|
-
.description("
|
|
265
|
+
.description("取消一个尚未执行的延迟 action 任务")).action(async (jobId, opts) => {
|
|
265
266
|
await runPluginScheduleCancelCommand({
|
|
266
267
|
jobId,
|
|
267
268
|
options: opts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginScheduleCommand.js","sourceRoot":"","sources":["../../../src/cli/shared/PluginScheduleCommand.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PluginScheduleCommand.js","sourceRoot":"","sources":["../../../src/cli/shared/PluginScheduleCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* `city plugin` 运行态命令共享辅助 + Agent 预检。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* - 统一承载 runtime
|
|
5
|
+
* - 统一承载 plugin runtime 命令的参数解析、目标 agent 路径解析与项目目录校验。
|
|
6
6
|
* - 提供 `checkAgentPreflight` 供 start/restart/status 等命令统一使用。
|
|
7
7
|
* - 保持 command 注册层只关注命令树,不再直接承载路径解析细节。
|
|
8
8
|
*/
|
|
9
9
|
import type { Command } from "commander";
|
|
10
10
|
import type { JsonValue } from "@downcity/agent";
|
|
11
|
-
import type {
|
|
11
|
+
import type { ActionScheduleJobStatus } from "@downcity/agent";
|
|
12
12
|
import type { PluginCliBaseOptions } from "@downcity/agent";
|
|
13
13
|
export declare function isRegistryEntryRunning(entry: {
|
|
14
14
|
status?: "running" | "stopped";
|
|
@@ -37,7 +37,7 @@ export declare function parsePositiveIntOption(value: string, fieldName: string)
|
|
|
37
37
|
/**
|
|
38
38
|
* 归一化 schedule 状态过滤参数。
|
|
39
39
|
*/
|
|
40
|
-
export declare function normalizeScheduledJobStatus(value: string | undefined):
|
|
40
|
+
export declare function normalizeScheduledJobStatus(value: string | undefined): ActionScheduleJobStatus | undefined;
|
|
41
41
|
/**
|
|
42
42
|
* 解析项目根目录。
|
|
43
43
|
*/
|
|
@@ -50,14 +50,14 @@ export declare function resolveProjectRootByAgentName(agentName: string): Promis
|
|
|
50
50
|
error?: string;
|
|
51
51
|
}>;
|
|
52
52
|
/**
|
|
53
|
-
* 统一解析 runtime
|
|
53
|
+
* 统一解析 plugin runtime 命令目标路径(agent 优先于 path)。
|
|
54
54
|
*/
|
|
55
55
|
export declare function resolvePluginProjectRoot(options: PluginCliBaseOptions): Promise<{
|
|
56
56
|
projectRoot?: string;
|
|
57
57
|
error?: string;
|
|
58
58
|
}>;
|
|
59
59
|
/**
|
|
60
|
-
* 解析
|
|
60
|
+
* 解析 ActionSchedule 管理命令目标路径。
|
|
61
61
|
*/
|
|
62
62
|
export declare function resolvePluginScheduleProjectRoot(options: PluginCliBaseOptions): Promise<{
|
|
63
63
|
projectRoot?: string;
|
|
@@ -76,7 +76,7 @@ export declare function parseCommandPayload(raw?: string): JsonValue | undefined
|
|
|
76
76
|
*/
|
|
77
77
|
export declare function addPluginTargetOptions(command: Command): Command;
|
|
78
78
|
/**
|
|
79
|
-
* 注入
|
|
79
|
+
* 注入 ActionSchedule 管理命令通用选项。
|
|
80
80
|
*/
|
|
81
81
|
export declare function addPluginScheduleOptions(command: Command): Command;
|
|
82
|
-
//# sourceMappingURL=
|
|
82
|
+
//# sourceMappingURL=PluginTargetSupport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginTargetSupport.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/PluginTargetSupport.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAI5D,wBAAgB,sBAAsB,CACpC,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,GACxC,OAAO,CAET;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAM/E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,uBAAuB,GAAG,SAAS,CAerC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA6BD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAkCD;AAED;;GAEG;AACH,wBAAsB,gCAAgC,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAQD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAUvE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAQhE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAKlE"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* `city plugin` 运行态命令共享辅助 + Agent 预检。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* - 统一承载 runtime
|
|
5
|
+
* - 统一承载 plugin runtime 命令的参数解析、目标 agent 路径解析与项目目录校验。
|
|
6
6
|
* - 提供 `checkAgentPreflight` 供 start/restart/status 等命令统一使用。
|
|
7
7
|
* - 保持 command 注册层只关注命令树,不再直接承载路径解析细节。
|
|
8
8
|
*/
|
|
@@ -11,11 +11,10 @@ import fs from "node:fs";
|
|
|
11
11
|
import { getProfileMdPath, getDowncityJsonPath } from "../../config/Paths.js";
|
|
12
12
|
import { listManagedAgentEntries } from "../../process/registry/CityRegistry.js";
|
|
13
13
|
import { isCityRunning } from "../../process/registry/CityRuntime.js";
|
|
14
|
-
import { ensureRuntimeExecutionBindingReady } from "@downcity/agent";
|
|
15
14
|
import { parsePort, resolveAgentName } from "./IndexSupport.js";
|
|
16
15
|
import { CliError } from "./CliError.js";
|
|
17
16
|
import { parseBoolean } from "./IndexSupport.js";
|
|
18
|
-
import {
|
|
17
|
+
import { assertProjectExecutionModelReady } from "../../model/runtime/ExecutionModelBinding.js";
|
|
19
18
|
export function isRegistryEntryRunning(entry) {
|
|
20
19
|
return entry.status !== "stopped";
|
|
21
20
|
}
|
|
@@ -54,7 +53,7 @@ export async function checkAgentPreflight(projectRoot, options) {
|
|
|
54
53
|
});
|
|
55
54
|
}
|
|
56
55
|
// 关键点(中文):提前校验 execution binding,避免"启动成功后秒退"。
|
|
57
|
-
|
|
56
|
+
assertProjectExecutionModelReady(projectRoot);
|
|
58
57
|
}
|
|
59
58
|
/**
|
|
60
59
|
* 解析正整数参数。
|
|
@@ -126,7 +125,7 @@ export async function resolveProjectRootByAgentName(agentName) {
|
|
|
126
125
|
return { projectRoot: matchedRoots[0] };
|
|
127
126
|
}
|
|
128
127
|
/**
|
|
129
|
-
* 统一解析 runtime
|
|
128
|
+
* 统一解析 plugin runtime 命令目标路径(agent 优先于 path)。
|
|
130
129
|
*/
|
|
131
130
|
export async function resolvePluginProjectRoot(options) {
|
|
132
131
|
const explicitAgent = String(options.agent || "").trim();
|
|
@@ -158,7 +157,7 @@ export async function resolvePluginProjectRoot(options) {
|
|
|
158
157
|
return { projectRoot };
|
|
159
158
|
}
|
|
160
159
|
/**
|
|
161
|
-
* 解析
|
|
160
|
+
* 解析 ActionSchedule 管理命令目标路径。
|
|
162
161
|
*/
|
|
163
162
|
export async function resolvePluginScheduleProjectRoot(options) {
|
|
164
163
|
const explicitAgent = String(options.agent || "").trim();
|
|
@@ -214,7 +213,7 @@ export function addPluginTargetOptions(command) {
|
|
|
214
213
|
.option("--json [enabled]", "以 JSON 输出", parseBoolean, true);
|
|
215
214
|
}
|
|
216
215
|
/**
|
|
217
|
-
* 注入
|
|
216
|
+
* 注入 ActionSchedule 管理命令通用选项。
|
|
218
217
|
*/
|
|
219
218
|
export function addPluginScheduleOptions(command) {
|
|
220
219
|
return command
|
|
@@ -222,4 +221,4 @@ export function addPluginScheduleOptions(command) {
|
|
|
222
221
|
.option("--agent <name>", "agent 名称(从 managed agent registry 解析)")
|
|
223
222
|
.option("--json [enabled]", "以 JSON 输出", parseBoolean, true);
|
|
224
223
|
}
|
|
225
|
-
//# sourceMappingURL=
|
|
224
|
+
//# sourceMappingURL=PluginTargetSupport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"PluginTargetSupport.js","sourceRoot":"","sources":["../../../src/cli/shared/PluginTargetSupport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugins.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/Plugins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Plugins.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/Plugins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4jBzC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkJ7D"}
|
|
@@ -8,15 +8,19 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import fs from "node:fs";
|
|
10
10
|
import prompts from "prompts";
|
|
11
|
-
import { buildStaticPluginAvailability,
|
|
11
|
+
import { buildStaticPluginAvailability, findPluginByName, listPluginViews, listPluginsWithLifecycle, listPluginsWithoutLifecycle, runLocalPluginAction, } from "@downcity/agent";
|
|
12
|
+
import { createBuiltinPlugins } from "@downcity/plugins";
|
|
12
13
|
import { printResult } from "../../utils/cli/CliOutput.js";
|
|
13
14
|
import { getDowncityJsonPath } from "../../config/Paths.js";
|
|
14
15
|
import { emitCliBlock } from "./CliReporter.js";
|
|
15
16
|
import { parseBoolean, parsePort } from "./IndexSupport.js";
|
|
16
|
-
import { resolveProjectRoot } from "./
|
|
17
|
-
import {
|
|
17
|
+
import { resolveProjectRoot } from "./PluginTargetSupport.js";
|
|
18
|
+
import { runManagedPluginCommandBridge, runManagedPluginControlCommand, } from "./ManagedPluginRemote.js";
|
|
18
19
|
import { registerPluginScheduleCommands } from "./PluginScheduleCommand.js";
|
|
19
20
|
import { setCityPluginEnabled } from "../../platform/PluginLifecycle.js";
|
|
21
|
+
function createPluginCatalog() {
|
|
22
|
+
return createBuiltinPlugins();
|
|
23
|
+
}
|
|
20
24
|
async function resolvePluginProjectRoot(options) {
|
|
21
25
|
return { projectRoot: resolveProjectRoot(options.path) };
|
|
22
26
|
}
|
|
@@ -42,6 +46,7 @@ function parseCommandPayload(raw) {
|
|
|
42
46
|
function buildSafeStaticPluginAvailability(pluginName) {
|
|
43
47
|
try {
|
|
44
48
|
const availability = buildStaticPluginAvailability({
|
|
49
|
+
plugins: createPluginCatalog(),
|
|
45
50
|
pluginName,
|
|
46
51
|
});
|
|
47
52
|
const normalizedReasons = availability.reasons.map((reason) => {
|
|
@@ -109,23 +114,26 @@ function renderPluginCatalogTable(rows) {
|
|
|
109
114
|
}
|
|
110
115
|
}
|
|
111
116
|
function listStaticCatalogEntries() {
|
|
112
|
-
const
|
|
117
|
+
const plugins = createPluginCatalog();
|
|
118
|
+
const managedEntries = listPluginsWithLifecycle(plugins).map((plugin) => ({
|
|
113
119
|
name: plugin.name,
|
|
114
|
-
title:
|
|
115
|
-
kind: "
|
|
120
|
+
title: String(plugin.title || plugin.name || "").trim() || plugin.name,
|
|
121
|
+
kind: "managed",
|
|
116
122
|
enabled: true,
|
|
117
123
|
available: true,
|
|
118
124
|
actionCount: Object.keys(plugin.actions || {}).length,
|
|
119
125
|
actions: Object.keys(plugin.actions || {}).sort((left, right) => left.localeCompare(right)),
|
|
120
126
|
hasSystem: typeof plugin.system === "function",
|
|
121
|
-
note: "
|
|
127
|
+
note: "Managed plugin. Use `city plugin start/stop/restart/status` with an agent target for live state.",
|
|
122
128
|
}));
|
|
123
|
-
const
|
|
129
|
+
const localPlugins = listPluginsWithoutLifecycle(plugins);
|
|
130
|
+
const localEntries = listPluginViews(localPlugins)
|
|
131
|
+
.map((plugin) => {
|
|
124
132
|
const availability = buildSafeStaticPluginAvailability(plugin.name);
|
|
125
133
|
return {
|
|
126
134
|
name: plugin.name,
|
|
127
135
|
title: plugin.title,
|
|
128
|
-
kind: "
|
|
136
|
+
kind: "local",
|
|
129
137
|
enabled: availability.enabled,
|
|
130
138
|
available: availability.available,
|
|
131
139
|
actionCount: plugin.actions.length,
|
|
@@ -134,7 +142,7 @@ function listStaticCatalogEntries() {
|
|
|
134
142
|
note: availability.reasons.join("; ") || undefined,
|
|
135
143
|
};
|
|
136
144
|
});
|
|
137
|
-
const merged = [...
|
|
145
|
+
const merged = [...managedEntries, ...localEntries];
|
|
138
146
|
const unique = new Map();
|
|
139
147
|
for (const entry of merged) {
|
|
140
148
|
if (!unique.has(entry.name)) {
|
|
@@ -326,7 +334,7 @@ function printPluginLifecycleResult(params) {
|
|
|
326
334
|
});
|
|
327
335
|
}
|
|
328
336
|
async function runPluginLifecycleCommand(params) {
|
|
329
|
-
const plugin =
|
|
337
|
+
const plugin = findPluginByName(createPluginCatalog(), params.pluginName);
|
|
330
338
|
if (!plugin) {
|
|
331
339
|
printResult({
|
|
332
340
|
asJson: params.asJson === true,
|
|
@@ -448,6 +456,7 @@ async function runPluginActionCommand(params) {
|
|
|
448
456
|
}
|
|
449
457
|
const payload = parseCommandPayload(params.payload);
|
|
450
458
|
const local = await runLocalPluginAction({
|
|
459
|
+
plugins: createPluginCatalog(),
|
|
451
460
|
projectRoot: resolved.projectRoot,
|
|
452
461
|
pluginName: params.pluginName,
|
|
453
462
|
actionName: params.actionName,
|
|
@@ -500,7 +509,7 @@ export function registerPluginsCommand(program) {
|
|
|
500
509
|
});
|
|
501
510
|
plugin
|
|
502
511
|
.command("status <pluginName>")
|
|
503
|
-
.description("按 agent
|
|
512
|
+
.description("按 agent 目标查看托管 plugin 运行状态")
|
|
504
513
|
.option("--path <path>", "项目根目录(默认当前目录)", ".")
|
|
505
514
|
.option("--agent <name>", "agent 名称(从 managed agent registry 解析)")
|
|
506
515
|
.option("--host <host>", "Server host(覆盖自动解析)")
|
|
@@ -508,7 +517,7 @@ export function registerPluginsCommand(program) {
|
|
|
508
517
|
.option("--token <token>", "覆盖 Bearer Token(仅远程 HTTP 调用需要;默认本地走 IPC)")
|
|
509
518
|
.option("--json [enabled]", "以 JSON 输出", parseBoolean, true)
|
|
510
519
|
.action(async (pluginName, opts) => {
|
|
511
|
-
await
|
|
520
|
+
await runManagedPluginControlCommand({
|
|
512
521
|
pluginName,
|
|
513
522
|
action: "status",
|
|
514
523
|
options: opts,
|
|
@@ -516,7 +525,7 @@ export function registerPluginsCommand(program) {
|
|
|
516
525
|
});
|
|
517
526
|
plugin
|
|
518
527
|
.command("start <pluginName>")
|
|
519
|
-
.description("按 agent
|
|
528
|
+
.description("按 agent 目标启动托管 plugin")
|
|
520
529
|
.option("--path <path>", "项目根目录(默认当前目录)", ".")
|
|
521
530
|
.option("--agent <name>", "agent 名称(从 managed agent registry 解析)")
|
|
522
531
|
.option("--host <host>", "Server host(覆盖自动解析)")
|
|
@@ -524,7 +533,7 @@ export function registerPluginsCommand(program) {
|
|
|
524
533
|
.option("--token <token>", "覆盖 Bearer Token(仅远程 HTTP 调用需要;默认本地走 IPC)")
|
|
525
534
|
.option("--json [enabled]", "以 JSON 输出", parseBoolean, true)
|
|
526
535
|
.action(async (pluginName, opts) => {
|
|
527
|
-
await
|
|
536
|
+
await runManagedPluginControlCommand({
|
|
528
537
|
pluginName,
|
|
529
538
|
action: "start",
|
|
530
539
|
options: opts,
|
|
@@ -532,7 +541,7 @@ export function registerPluginsCommand(program) {
|
|
|
532
541
|
});
|
|
533
542
|
plugin
|
|
534
543
|
.command("stop <pluginName>")
|
|
535
|
-
.description("按 agent
|
|
544
|
+
.description("按 agent 目标停止托管 plugin")
|
|
536
545
|
.option("--path <path>", "项目根目录(默认当前目录)", ".")
|
|
537
546
|
.option("--agent <name>", "agent 名称(从 managed agent registry 解析)")
|
|
538
547
|
.option("--host <host>", "Server host(覆盖自动解析)")
|
|
@@ -540,7 +549,7 @@ export function registerPluginsCommand(program) {
|
|
|
540
549
|
.option("--token <token>", "覆盖 Bearer Token(仅远程 HTTP 调用需要;默认本地走 IPC)")
|
|
541
550
|
.option("--json [enabled]", "以 JSON 输出", parseBoolean, true)
|
|
542
551
|
.action(async (pluginName, opts) => {
|
|
543
|
-
await
|
|
552
|
+
await runManagedPluginControlCommand({
|
|
544
553
|
pluginName,
|
|
545
554
|
action: "stop",
|
|
546
555
|
options: opts,
|
|
@@ -548,7 +557,7 @@ export function registerPluginsCommand(program) {
|
|
|
548
557
|
});
|
|
549
558
|
plugin
|
|
550
559
|
.command("restart <pluginName>")
|
|
551
|
-
.description("按 agent
|
|
560
|
+
.description("按 agent 目标重启托管 plugin")
|
|
552
561
|
.option("--path <path>", "项目根目录(默认当前目录)", ".")
|
|
553
562
|
.option("--agent <name>", "agent 名称(从 managed agent registry 解析)")
|
|
554
563
|
.option("--host <host>", "Server host(覆盖自动解析)")
|
|
@@ -556,7 +565,7 @@ export function registerPluginsCommand(program) {
|
|
|
556
565
|
.option("--token <token>", "覆盖 Bearer Token(仅远程 HTTP 调用需要;默认本地走 IPC)")
|
|
557
566
|
.option("--json [enabled]", "以 JSON 输出", parseBoolean, true)
|
|
558
567
|
.action(async (pluginName, opts) => {
|
|
559
|
-
await
|
|
568
|
+
await runManagedPluginControlCommand({
|
|
560
569
|
pluginName,
|
|
561
570
|
action: "restart",
|
|
562
571
|
options: opts,
|
|
@@ -564,7 +573,7 @@ export function registerPluginsCommand(program) {
|
|
|
564
573
|
});
|
|
565
574
|
plugin
|
|
566
575
|
.command("command <pluginName> <command>")
|
|
567
|
-
.description("按 agent
|
|
576
|
+
.description("按 agent 目标转发托管 plugin command")
|
|
568
577
|
.option("--payload <json>", "可选 payload(JSON 字符串或普通字符串)")
|
|
569
578
|
.option("--path <path>", "项目根目录(默认当前目录)", ".")
|
|
570
579
|
.option("--agent <name>", "agent 名称(从 managed agent registry 解析)")
|
|
@@ -573,7 +582,7 @@ export function registerPluginsCommand(program) {
|
|
|
573
582
|
.option("--token <token>", "覆盖 Bearer Token(仅远程 HTTP 调用需要;默认本地走 IPC)")
|
|
574
583
|
.option("--json [enabled]", "以 JSON 输出", parseBoolean, true)
|
|
575
584
|
.action(async (pluginName, command, opts) => {
|
|
576
|
-
await
|
|
585
|
+
await runManagedPluginCommandBridge({
|
|
577
586
|
pluginName,
|
|
578
587
|
command,
|
|
579
588
|
payloadRaw: opts.payload,
|