@downcity/agent 1.1.175 → 1.1.179
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/agent/local/AgentPluginFactory.d.ts +4 -2
- package/bin/agent/local/AgentPluginFactory.d.ts.map +1 -1
- package/bin/agent/local/AgentPluginFactory.js +4 -6
- package/bin/agent/local/AgentPluginFactory.js.map +1 -1
- package/bin/agent/local/AgentRuntimeAssembly.d.ts.map +1 -1
- package/bin/agent/local/AgentRuntimeAssembly.js +3 -8
- package/bin/agent/local/AgentRuntimeAssembly.js.map +1 -1
- package/bin/agent/local/ProjectSetup.d.ts +1 -1
- package/bin/agent/local/ProjectSetup.d.ts.map +1 -1
- package/bin/agent/local/ProjectSetup.js +2 -6
- package/bin/agent/local/ProjectSetup.js.map +1 -1
- package/bin/agent/local/services/AgentAssemblyService.d.ts +2 -3
- package/bin/agent/local/services/AgentAssemblyService.d.ts.map +1 -1
- package/bin/agent/local/services/AgentAssemblyService.js +9 -14
- package/bin/agent/local/services/AgentAssemblyService.js.map +1 -1
- package/bin/agent/local/services/AgentBackgroundService.d.ts.map +1 -1
- package/bin/agent/local/services/AgentBackgroundService.js +5 -6
- package/bin/agent/local/services/AgentBackgroundService.js.map +1 -1
- package/bin/agent/local/services/AgentSessionManager.d.ts +2 -2
- package/bin/agent/local/services/AgentSessionManager.d.ts.map +1 -1
- package/bin/agent/local/services/AgentSessionManager.js +1 -28
- package/bin/agent/local/services/AgentSessionManager.js.map +1 -1
- package/bin/config/AgentInitializer.d.ts +4 -4
- package/bin/config/AgentInitializer.d.ts.map +1 -1
- package/bin/config/AgentInitializer.js +7 -49
- package/bin/config/AgentInitializer.js.map +1 -1
- package/bin/config/DowncitySchema.d.ts +3 -4
- package/bin/config/DowncitySchema.d.ts.map +1 -1
- package/bin/config/DowncitySchema.js +1 -2
- package/bin/config/DowncitySchema.js.map +1 -1
- package/bin/executor/composer/system/default/SystemDomain.d.ts.map +1 -1
- package/bin/executor/composer/system/default/SystemDomain.js +1 -2
- package/bin/executor/composer/system/default/SystemDomain.js.map +1 -1
- package/bin/executor/composer/system/default/assets/core.prompt.d.ts +1 -1
- package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +1 -1
- package/bin/executor/composer/system/default/assets/core.prompt.js +1 -1
- package/bin/executor/composer/system/default/assets/core.prompt.js.map +1 -1
- package/bin/index.d.ts +0 -2
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +1 -4
- package/bin/index.js.map +1 -1
- package/bin/plugin/core/Activation.d.ts +6 -5
- package/bin/plugin/core/Activation.d.ts.map +1 -1
- package/bin/plugin/core/Activation.js +9 -9
- package/bin/plugin/core/Activation.js.map +1 -1
- package/bin/plugin/core/BasePlugin.d.ts +5 -4
- package/bin/plugin/core/BasePlugin.d.ts.map +1 -1
- package/bin/plugin/core/BasePlugin.js +7 -4
- package/bin/plugin/core/BasePlugin.js.map +1 -1
- package/bin/plugin/core/HookRegistry.d.ts +4 -0
- package/bin/plugin/core/HookRegistry.d.ts.map +1 -1
- package/bin/plugin/core/HookRegistry.js +40 -0
- package/bin/plugin/core/HookRegistry.js.map +1 -1
- package/bin/plugin/core/Manager.d.ts +1 -1
- package/bin/plugin/core/Manager.d.ts.map +1 -1
- package/bin/plugin/core/Manager.js +1 -1
- package/bin/plugin/core/Manager.js.map +1 -1
- package/bin/plugin/core/PluginActionRunner.d.ts +13 -7
- package/bin/plugin/core/PluginActionRunner.d.ts.map +1 -1
- package/bin/plugin/core/PluginActionRunner.js +46 -111
- package/bin/plugin/core/PluginActionRunner.js.map +1 -1
- package/bin/plugin/core/PluginCatalog.d.ts +1 -1
- package/bin/plugin/core/PluginCatalog.d.ts.map +1 -1
- package/bin/plugin/core/PluginCatalog.js +1 -21
- package/bin/plugin/core/PluginCatalog.js.map +1 -1
- package/bin/plugin/core/PluginLocalExecution.d.ts +12 -2
- package/bin/plugin/core/PluginLocalExecution.d.ts.map +1 -1
- package/bin/plugin/core/PluginLocalExecution.js +18 -24
- package/bin/plugin/core/PluginLocalExecution.js.map +1 -1
- package/bin/plugin/core/PluginRegistry.d.ts +60 -7
- package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
- package/bin/plugin/core/PluginRegistry.js +269 -42
- package/bin/plugin/core/PluginRegistry.js.map +1 -1
- package/bin/plugin/core/PluginStateController.d.ts +11 -36
- package/bin/plugin/core/PluginStateController.d.ts.map +1 -1
- package/bin/plugin/core/PluginStateController.js +45 -190
- package/bin/plugin/core/PluginStateController.js.map +1 -1
- package/bin/plugin/types/Plugin.d.ts +1 -1
- package/bin/plugin/types/Plugin.d.ts.map +1 -1
- package/bin/plugin/types/PluginState.d.ts +1 -1
- package/bin/plugin/types/PluginState.d.ts.map +1 -1
- package/bin/plugin/types/Plugins.d.ts +12 -12
- package/bin/plugin/types/Plugins.d.ts.map +1 -1
- package/bin/types/agent/AgentOptions.d.ts +12 -3
- package/bin/types/agent/AgentOptions.d.ts.map +1 -1
- package/bin/types/agent/AgentRuntimeAssembly.d.ts +1 -1
- package/bin/types/config/AgentProject.d.ts +6 -14
- package/bin/types/config/AgentProject.d.ts.map +1 -1
- package/bin/types/plugin/PluginRuntime.d.ts +23 -2
- package/bin/types/plugin/PluginRuntime.d.ts.map +1 -1
- package/bin/types/plugin/PluginState.d.ts +47 -36
- package/bin/types/plugin/PluginState.d.ts.map +1 -1
- package/bin/types/plugin/PluginState.js +4 -3
- package/bin/types/plugin/PluginState.js.map +1 -1
- package/bin/types/runtime/agent/AgentContext.d.ts +3 -3
- package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
- package/bin/types/runtime/agent/AgentContext.js.map +1 -1
- package/package.json +3 -3
- package/src/agent/local/AgentPluginFactory.ts +8 -8
- package/src/agent/local/AgentRuntimeAssembly.ts +3 -9
- package/src/agent/local/ProjectSetup.ts +1 -8
- package/src/agent/local/services/AgentAssemblyService.ts +13 -23
- package/src/agent/local/services/AgentBackgroundService.ts +5 -6
- package/src/agent/local/services/AgentSessionManager.ts +4 -26
- package/src/config/AgentInitializer.ts +7 -57
- package/src/config/DowncitySchema.ts +3 -4
- package/src/executor/composer/system/default/SystemDomain.ts +1 -2
- package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
- package/src/executor/composer/system/default/assets/core.prompt.ts.txt +1 -1
- package/src/index.ts +1 -8
- package/src/plugin/core/Activation.ts +10 -10
- package/src/plugin/core/BasePlugin.ts +9 -6
- package/src/plugin/core/HookRegistry.ts +41 -0
- package/src/plugin/core/Manager.ts +0 -2
- package/src/plugin/core/PluginActionRunner.ts +52 -133
- package/src/plugin/core/PluginCatalog.ts +1 -23
- package/src/plugin/core/PluginLocalExecution.ts +30 -25
- package/src/plugin/core/PluginRegistry.ts +298 -44
- package/src/plugin/core/PluginStateController.ts +45 -235
- package/src/plugin/types/Plugin.ts +2 -1
- package/src/plugin/types/PluginState.ts +2 -1
- package/src/plugin/types/Plugins.ts +12 -12
- package/src/types/agent/AgentOptions.ts +13 -3
- package/src/types/agent/AgentRuntimeAssembly.ts +1 -1
- package/src/types/config/AgentProject.ts +7 -15
- package/src/types/plugin/PluginRuntime.ts +23 -2
- package/src/types/plugin/PluginState.ts +50 -43
- package/src/types/runtime/agent/AgentContext.ts +3 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/bin/config/Defaults.d.ts +0 -21
- package/bin/config/Defaults.d.ts.map +0 -1
- package/bin/config/Defaults.js +0 -47
- package/bin/config/Defaults.js.map +0 -1
- package/bin/plugin/core/ProjectConfigStore.d.ts +0 -84
- package/bin/plugin/core/ProjectConfigStore.d.ts.map +0 -1
- package/bin/plugin/core/ProjectConfigStore.js +0 -89
- package/bin/plugin/core/ProjectConfigStore.js.map +0 -1
- package/src/config/Defaults.ts +0 -49
- package/src/plugin/core/ProjectConfigStore.ts +0 -155
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* PluginActionRunner
|
|
2
|
+
* PluginActionRunner:plugin command/action 兼容执行模块。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - 新模型中注册即生效,不再要求 plugin 处于 running 状态。
|
|
6
|
+
* - `command` 仅作为 CLI/RPC 对 action 的兼容入口;优先执行同名 action。
|
|
7
|
+
* - 延迟调度仍复用本模块,保证 schedule 到点后走统一 action 规则。
|
|
3
8
|
*/
|
|
4
9
|
import type { AgentContext } from "../../types/runtime/agent/AgentContext.js";
|
|
5
|
-
import type { BasePlugin } from "../../plugin/core/BasePlugin.js";
|
|
6
10
|
import type { PluginAction, PluginActionResult, PluginCommandResult, PluginStateSnapshot } from "../../plugin/types/Plugin.js";
|
|
7
11
|
import type { PluginActionScheduleInput } from "../../plugin/types/ActionSchedule.js";
|
|
8
12
|
import type { JsonValue } from "../../types/common/Json.js";
|
|
9
13
|
/**
|
|
10
|
-
*
|
|
14
|
+
* 按名称解析 plugin action。
|
|
11
15
|
*/
|
|
12
|
-
export declare function resolvePluginAction(plugin:
|
|
16
|
+
export declare function resolvePluginAction(plugin: {
|
|
17
|
+
actions?: Record<string, PluginAction<JsonValue, JsonValue>>;
|
|
18
|
+
}, actionName: string): PluginAction<JsonValue, JsonValue> | null;
|
|
13
19
|
/**
|
|
14
|
-
*
|
|
20
|
+
* 执行一个 plugin action。
|
|
15
21
|
*/
|
|
16
22
|
export declare function invokePluginAction(params: {
|
|
17
|
-
|
|
23
|
+
pluginName: string;
|
|
18
24
|
actionName: string;
|
|
19
25
|
payload?: JsonValue;
|
|
20
26
|
context: AgentContext;
|
|
21
27
|
}): Promise<PluginActionResult<JsonValue>>;
|
|
22
28
|
/**
|
|
23
|
-
*
|
|
29
|
+
* 统一执行 plugin command。
|
|
24
30
|
*/
|
|
25
31
|
export declare function runPluginCommand(params: {
|
|
26
32
|
pluginName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginActionRunner.d.ts","sourceRoot":"","sources":["../../../src/plugin/core/PluginActionRunner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PluginActionRunner.d.ts","sourceRoot":"","sources":["../../../src/plugin/core/PluginActionRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIxD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE;IACN,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;CAC9D,EACD,UAAU,EAAE,MAAM,GACjB,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,IAAI,CAI3C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;CACvB,GAAG,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAMzC;AA8CD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,GAAG,yBAAyB,CAAC;IACjD,OAAO,EAAE,YAAY,CAAC;CACvB,GAAG,OAAO,CAAC,mBAAmB,GAAG;IAAE,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAAE,CAAC,CA8FlE"}
|
|
@@ -1,68 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* PluginActionRunner
|
|
2
|
+
* PluginActionRunner:plugin command/action 兼容执行模块。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - 新模型中注册即生效,不再要求 plugin 处于 running 状态。
|
|
6
|
+
* - `command` 仅作为 CLI/RPC 对 action 的兼容入口;优先执行同名 action。
|
|
7
|
+
* - 延迟调度仍复用本模块,保证 schedule 到点后走统一 action 规则。
|
|
3
8
|
*/
|
|
4
9
|
import { ActionScheduleStore } from "../../plugin/core/ActionScheduleStore.js";
|
|
5
10
|
import { normalizeRunAtMsOrThrow } from "../../plugin/core/ActionScheduleTime.js";
|
|
6
|
-
import { controlPluginState, ensurePluginStateRecord, markPluginCommand, markPluginState, resolvePluginByName, toPluginStateSnapshot, } from "../../plugin/core/PluginStateController.js";
|
|
7
|
-
function resolveLifecycle(plugin) {
|
|
8
|
-
return plugin.lifecycle;
|
|
9
|
-
}
|
|
10
11
|
/**
|
|
11
|
-
*
|
|
12
|
+
* 按名称解析 plugin action。
|
|
12
13
|
*/
|
|
13
14
|
export function resolvePluginAction(plugin, actionName) {
|
|
14
15
|
const key = String(actionName || "").trim();
|
|
15
16
|
if (!key)
|
|
16
17
|
return null;
|
|
17
|
-
return plugin.actions[key] || null;
|
|
18
|
+
return plugin.actions?.[key] || null;
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
+
* 执行一个 plugin action。
|
|
21
22
|
*/
|
|
22
23
|
export async function invokePluginAction(params) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
try {
|
|
31
|
-
const payload = (params.payload ?? {});
|
|
32
|
-
const schema = action.input_schema?.zod;
|
|
33
|
-
const parsed_payload = schema ? schema.safeParse(payload) : null;
|
|
34
|
-
if (parsed_payload && !parsed_payload.success) {
|
|
35
|
-
return {
|
|
36
|
-
success: false,
|
|
37
|
-
error: `Invalid payload for ${params.plugin.name}.${params.actionName}: ${parsed_payload.error.message}`,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
const input_payload = parsed_payload?.success
|
|
41
|
-
? parsed_payload.data
|
|
42
|
-
: payload;
|
|
43
|
-
return await action.execute({
|
|
44
|
-
context: params.context,
|
|
45
|
-
payload: input_payload,
|
|
46
|
-
input: input_payload,
|
|
47
|
-
pluginName: params.plugin.name,
|
|
48
|
-
actionName: params.actionName,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
return {
|
|
53
|
-
success: false,
|
|
54
|
-
error: String(error),
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function toControlCommandAction(command) {
|
|
59
|
-
if (command === "status" ||
|
|
60
|
-
command === "start" ||
|
|
61
|
-
command === "stop" ||
|
|
62
|
-
command === "restart") {
|
|
63
|
-
return command;
|
|
64
|
-
}
|
|
65
|
-
return null;
|
|
24
|
+
return await params.context.plugins.runAction({
|
|
25
|
+
plugin: params.pluginName,
|
|
26
|
+
action: params.actionName,
|
|
27
|
+
payload: params.payload,
|
|
28
|
+
});
|
|
66
29
|
}
|
|
67
30
|
async function schedulePluginAction(params) {
|
|
68
31
|
try {
|
|
@@ -71,7 +34,7 @@ async function schedulePluginAction(params) {
|
|
|
71
34
|
const store = new ActionScheduleStore(params.context.rootPath);
|
|
72
35
|
try {
|
|
73
36
|
const job = store.createJob({
|
|
74
|
-
pluginName: params.
|
|
37
|
+
pluginName: params.pluginName,
|
|
75
38
|
actionName: params.command,
|
|
76
39
|
payload: params.payload ?? null,
|
|
77
40
|
runAtMs,
|
|
@@ -100,96 +63,69 @@ async function schedulePluginAction(params) {
|
|
|
100
63
|
}
|
|
101
64
|
}
|
|
102
65
|
/**
|
|
103
|
-
*
|
|
66
|
+
* 统一执行 plugin command。
|
|
104
67
|
*/
|
|
105
68
|
export async function runPluginCommand(params) {
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
69
|
+
const pluginName = String(params.pluginName || "").trim();
|
|
70
|
+
const command = String(params.command || "")
|
|
71
|
+
.trim()
|
|
72
|
+
.toLowerCase();
|
|
73
|
+
const plugin = params.context.plugins.get(pluginName);
|
|
74
|
+
const snapshot = params.context.plugins.status(pluginName) || undefined;
|
|
75
|
+
if (!plugin || !snapshot) {
|
|
110
76
|
return {
|
|
111
77
|
success: false,
|
|
112
78
|
message: `Unknown plugin: ${params.pluginName}`,
|
|
113
79
|
};
|
|
114
80
|
}
|
|
115
|
-
const record = ensurePluginStateRecord(plugin);
|
|
116
|
-
const command = String(params.command || "")
|
|
117
|
-
.trim()
|
|
118
|
-
.toLowerCase();
|
|
119
81
|
if (!command) {
|
|
120
82
|
return {
|
|
121
83
|
success: false,
|
|
122
|
-
plugin:
|
|
84
|
+
plugin: snapshot,
|
|
123
85
|
message: "command is required",
|
|
124
86
|
};
|
|
125
87
|
}
|
|
126
|
-
|
|
88
|
+
if (command === "status") {
|
|
89
|
+
return {
|
|
90
|
+
success: true,
|
|
91
|
+
plugin: snapshot,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
127
94
|
const action = resolvePluginAction(plugin, command);
|
|
128
95
|
if (params.schedule !== undefined && params.schedule !== null) {
|
|
129
96
|
if (!action) {
|
|
130
97
|
return {
|
|
131
98
|
success: false,
|
|
132
|
-
plugin:
|
|
99
|
+
plugin: snapshot,
|
|
133
100
|
message: `Scheduling only supports plugin actions. "${plugin.name}.${command}" is not a schedulable action.`,
|
|
134
101
|
};
|
|
135
102
|
}
|
|
136
103
|
return await schedulePluginAction({
|
|
137
|
-
plugin,
|
|
104
|
+
pluginName: plugin.name,
|
|
138
105
|
command,
|
|
139
106
|
payload: params.payload,
|
|
140
107
|
schedule: params.schedule,
|
|
141
|
-
recordSnapshot:
|
|
108
|
+
recordSnapshot: snapshot,
|
|
142
109
|
context: params.context,
|
|
143
110
|
});
|
|
144
111
|
}
|
|
145
112
|
if (action) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
plugin: toPluginStateSnapshot(record, plugin),
|
|
150
|
-
message: `Plugin "${plugin.name}" is not running`,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
const result = await invokePluginAction({
|
|
154
|
-
plugin,
|
|
155
|
-
actionName: command,
|
|
113
|
+
const result = await params.context.plugins.runAction({
|
|
114
|
+
plugin: plugin.name,
|
|
115
|
+
action: command,
|
|
156
116
|
payload: params.payload,
|
|
157
|
-
context: params.context,
|
|
158
|
-
});
|
|
159
|
-
if (!result.success) {
|
|
160
|
-
return {
|
|
161
|
-
success: false,
|
|
162
|
-
plugin: toPluginStateSnapshot(record, plugin),
|
|
163
|
-
message: result.error || "plugin action failed",
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
return {
|
|
167
|
-
success: true,
|
|
168
|
-
plugin: toPluginStateSnapshot(record, plugin),
|
|
169
|
-
...(result.data !== undefined ? { data: result.data } : {}),
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
const controlAction = toControlCommandAction(command);
|
|
173
|
-
if (controlAction) {
|
|
174
|
-
const result = await controlPluginState({
|
|
175
|
-
pluginName: plugin.name,
|
|
176
|
-
action: controlAction,
|
|
177
|
-
context: params.context,
|
|
178
117
|
});
|
|
179
118
|
return {
|
|
180
119
|
success: result.success,
|
|
181
|
-
|
|
182
|
-
...(result.
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
success: false,
|
|
188
|
-
plugin: toPluginStateSnapshot(record, plugin),
|
|
189
|
-
message: `Plugin "${plugin.name}" is not running`,
|
|
120
|
+
plugin: params.context.plugins.status(plugin.name) || snapshot,
|
|
121
|
+
...(result.message || result.error
|
|
122
|
+
? { message: result.message || result.error }
|
|
123
|
+
: {}),
|
|
124
|
+
...(result.data !== undefined ? { data: result.data } : {}),
|
|
125
|
+
...(result.error ? { error: result.error } : {}),
|
|
190
126
|
};
|
|
191
127
|
}
|
|
192
|
-
const handler =
|
|
128
|
+
const handler = plugin.lifecycle?.command;
|
|
193
129
|
if (handler) {
|
|
194
130
|
try {
|
|
195
131
|
const result = await handler({
|
|
@@ -199,21 +135,20 @@ export async function runPluginCommand(params) {
|
|
|
199
135
|
});
|
|
200
136
|
return {
|
|
201
137
|
...result,
|
|
202
|
-
plugin:
|
|
138
|
+
plugin: params.context.plugins.status(plugin.name) || snapshot,
|
|
203
139
|
};
|
|
204
140
|
}
|
|
205
141
|
catch (error) {
|
|
206
|
-
markPluginState(record, "error", String(error));
|
|
207
142
|
return {
|
|
208
143
|
success: false,
|
|
209
|
-
plugin:
|
|
144
|
+
plugin: params.context.plugins.status(plugin.name) || snapshot,
|
|
210
145
|
message: String(error),
|
|
211
146
|
};
|
|
212
147
|
}
|
|
213
148
|
}
|
|
214
149
|
return {
|
|
215
150
|
success: false,
|
|
216
|
-
plugin:
|
|
151
|
+
plugin: snapshot,
|
|
217
152
|
message: `Plugin "${plugin.name}" does not implement command "${command}"`,
|
|
218
153
|
};
|
|
219
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginActionRunner.js","sourceRoot":"","sources":["../../../src/plugin/core/PluginActionRunner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PluginActionRunner.js","sourceRoot":"","sources":["../../../src/plugin/core/PluginActionRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ export declare function listPluginViews(plugins: Iterable<Plugin>): PluginView[]
|
|
|
37
37
|
*
|
|
38
38
|
* 关键点(中文)
|
|
39
39
|
* - 传入 context 时会调用 plugin 自己的 availability。
|
|
40
|
-
* - 未传 context
|
|
40
|
+
* - 未传 context 时只返回静态目录说明,适合 Console 或 CLI 的目录回退展示。
|
|
41
41
|
*/
|
|
42
42
|
export declare function resolvePluginAvailability(params: {
|
|
43
43
|
plugins: Iterable<Plugin>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginCatalog.d.ts","sourceRoot":"","sources":["../../../src/plugin/core/PluginCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"PluginCatalog.d.ts","sourceRoot":"","sources":["../../../src/plugin/core/PluginCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,UAAU,EACX,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAE1E;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAEpF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAEvF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,MAAM,GACjB,CAAC,GAAG,IAAI,CAIV;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAuBvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,CAIvE;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8B9B;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,kBAAkB,CAkBrB"}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* - 调用方只需要传入当前已注册或准备展示的 plugin 实例集合。
|
|
7
7
|
* - Agent 的视角只有“传入的 plugin”,目录视图和可用性检查都从这些实例推导。
|
|
8
8
|
*/
|
|
9
|
-
import { isPluginEnabled } from "../../plugin/core/Activation.js";
|
|
10
9
|
/**
|
|
11
10
|
* 判断 plugin 是否声明了运行时生命周期。
|
|
12
11
|
*/
|
|
@@ -64,7 +63,7 @@ export function listPluginViews(plugins) {
|
|
|
64
63
|
*
|
|
65
64
|
* 关键点(中文)
|
|
66
65
|
* - 传入 context 时会调用 plugin 自己的 availability。
|
|
67
|
-
* - 未传 context
|
|
66
|
+
* - 未传 context 时只返回静态目录说明,适合 Console 或 CLI 的目录回退展示。
|
|
68
67
|
*/
|
|
69
68
|
export async function resolvePluginAvailability(params) {
|
|
70
69
|
const plugin = findPluginByName(params.plugins, params.pluginName);
|
|
@@ -78,17 +77,6 @@ export async function resolvePluginAvailability(params) {
|
|
|
78
77
|
if (params.context && plugin.availability) {
|
|
79
78
|
return await plugin.availability(params.context);
|
|
80
79
|
}
|
|
81
|
-
const enabled = isPluginEnabled({
|
|
82
|
-
plugin,
|
|
83
|
-
...(params.context ? { context: params.context } : {}),
|
|
84
|
-
});
|
|
85
|
-
if (!enabled) {
|
|
86
|
-
return {
|
|
87
|
-
enabled: false,
|
|
88
|
-
available: false,
|
|
89
|
-
reasons: [`Plugin "${plugin.name}" is disabled`],
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
80
|
const agentReason = String(params.agentError || "").trim();
|
|
93
81
|
if (agentReason || !params.context) {
|
|
94
82
|
return {
|
|
@@ -117,14 +105,6 @@ export function buildStaticPluginAvailability(params) {
|
|
|
117
105
|
reasons: [`Unknown plugin: ${params.pluginName}`],
|
|
118
106
|
};
|
|
119
107
|
}
|
|
120
|
-
const enabled = isPluginEnabled({ plugin });
|
|
121
|
-
if (!enabled) {
|
|
122
|
-
return {
|
|
123
|
-
enabled: false,
|
|
124
|
-
available: false,
|
|
125
|
-
reasons: [`Plugin "${plugin.name}" is disabled`],
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
108
|
const agentReason = String(params.agentError || "").trim();
|
|
129
109
|
return {
|
|
130
110
|
enabled: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginCatalog.js","sourceRoot":"","sources":["../../../src/plugin/core/PluginCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"PluginCatalog.js","sourceRoot":"","sources":["../../../src/plugin/core/PluginCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,21 @@
|
|
|
4
4
|
* 关键点(中文)
|
|
5
5
|
* - 这里不创建或维护任何全局注册表,调用方必须显式传入 plugin 集合。
|
|
6
6
|
* - 用于 CLI / 控制面这类没有运行中 Agent 实例、但需要执行 setup action 的场景。
|
|
7
|
-
* - 真正运行中的 Agent 仍应优先使用 `
|
|
7
|
+
* - 真正运行中的 Agent 仍应优先使用 `Agent.plugins.runAction`。
|
|
8
8
|
*/
|
|
9
9
|
import type { JsonValue } from "../../types/common/Json.js";
|
|
10
10
|
import type { Plugin, PluginActionResult, PluginAvailability, PluginCommandContext } from "../../plugin/types/Plugin.js";
|
|
11
|
+
import type { DowncityConfig } from "../../types/config/DowncityConfig.js";
|
|
12
|
+
type LocalPluginCommandContextInput = {
|
|
13
|
+
/** 当前项目根目录。 */
|
|
14
|
+
projectRoot: string;
|
|
15
|
+
/** 宿主显式传入的 agent 配置。 */
|
|
16
|
+
config?: DowncityConfig;
|
|
17
|
+
};
|
|
11
18
|
/**
|
|
12
19
|
* 创建本地 plugin 命令上下文。
|
|
13
20
|
*/
|
|
14
|
-
export declare function createLocalPluginCommandContext(
|
|
21
|
+
export declare function createLocalPluginCommandContext(input: string | LocalPluginCommandContextInput): PluginCommandContext;
|
|
15
22
|
/**
|
|
16
23
|
* 读取本地 plugin availability。
|
|
17
24
|
*/
|
|
@@ -19,6 +26,7 @@ export declare function getLocalPluginAvailability(params: {
|
|
|
19
26
|
plugins: Iterable<Plugin>;
|
|
20
27
|
projectRoot: string;
|
|
21
28
|
pluginName: string;
|
|
29
|
+
config?: DowncityConfig;
|
|
22
30
|
}): Promise<PluginAvailability>;
|
|
23
31
|
/**
|
|
24
32
|
* 直接执行本地 plugin action。
|
|
@@ -29,5 +37,7 @@ export declare function runLocalPluginAction(params: {
|
|
|
29
37
|
pluginName: string;
|
|
30
38
|
actionName: string;
|
|
31
39
|
payload?: JsonValue;
|
|
40
|
+
config?: DowncityConfig;
|
|
32
41
|
}): Promise<PluginActionResult<JsonValue>>;
|
|
42
|
+
export {};
|
|
33
43
|
//# sourceMappingURL=PluginLocalExecution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginLocalExecution.d.ts","sourceRoot":"","sources":["../../../src/plugin/core/PluginLocalExecution.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"PluginLocalExecution.d.ts","sourceRoot":"","sources":["../../../src/plugin/core/PluginLocalExecution.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,KAAK,8BAA8B,GAAG;IACpC,eAAe;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GAAG,8BAA8B,GAC7C,oBAAoB,CAuBtB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAuB9B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,GAAG,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CA6DzC"}
|
|
@@ -4,21 +4,25 @@
|
|
|
4
4
|
* 关键点(中文)
|
|
5
5
|
* - 这里不创建或维护任何全局注册表,调用方必须显式传入 plugin 集合。
|
|
6
6
|
* - 用于 CLI / 控制面这类没有运行中 Agent 实例、但需要执行 setup action 的场景。
|
|
7
|
-
* - 真正运行中的 Agent 仍应优先使用 `
|
|
7
|
+
* - 真正运行中的 Agent 仍应优先使用 `Agent.plugins.runAction`。
|
|
8
8
|
*/
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
import { logger as defaultLogger } from "../../utils/logger/Logger.js";
|
|
11
|
-
import {
|
|
12
|
-
import { isPluginEnabled } from "../../plugin/core/Activation.js";
|
|
11
|
+
import { resolveAgentEnv } from "../../config/Config.js";
|
|
13
12
|
import { findPluginByName } from "../../plugin/core/PluginCatalog.js";
|
|
14
13
|
import { createAgentPathRuntime, createAgentPluginConfigRuntime, } from "../../agent/local/AgentRuntimeAssembly.js";
|
|
14
|
+
import { createFallbackSdkConfig } from "../../agent/local/AgentInstructions.js";
|
|
15
15
|
/**
|
|
16
16
|
* 创建本地 plugin 命令上下文。
|
|
17
17
|
*/
|
|
18
|
-
export function createLocalPluginCommandContext(
|
|
18
|
+
export function createLocalPluginCommandContext(input) {
|
|
19
|
+
const projectRoot = typeof input === "string" ? input : input.projectRoot;
|
|
19
20
|
const rootPath = path.resolve(String(projectRoot || "").trim() || ".");
|
|
20
21
|
const env = resolveAgentEnv(rootPath);
|
|
21
|
-
const config =
|
|
22
|
+
const config = typeof input === "string" || !input.config
|
|
23
|
+
? createFallbackSdkConfig(path.basename(rootPath) || "agent")
|
|
24
|
+
: input.config;
|
|
25
|
+
const agent_id = String(config.id || "").trim() || path.basename(rootPath) || "agent";
|
|
22
26
|
defaultLogger.bindProjectRoot(rootPath);
|
|
23
27
|
return {
|
|
24
28
|
cwd: rootPath,
|
|
@@ -26,7 +30,7 @@ export function createLocalPluginCommandContext(projectRoot) {
|
|
|
26
30
|
logger: defaultLogger,
|
|
27
31
|
config,
|
|
28
32
|
env,
|
|
29
|
-
paths: createAgentPathRuntime(rootPath,
|
|
33
|
+
paths: createAgentPathRuntime(rootPath, agent_id),
|
|
30
34
|
pluginConfig: createAgentPluginConfigRuntime(rootPath),
|
|
31
35
|
};
|
|
32
36
|
}
|
|
@@ -42,18 +46,13 @@ export async function getLocalPluginAvailability(params) {
|
|
|
42
46
|
reasons: [`Unknown plugin: ${params.pluginName}`],
|
|
43
47
|
};
|
|
44
48
|
}
|
|
45
|
-
const context = createLocalPluginCommandContext(
|
|
49
|
+
const context = createLocalPluginCommandContext({
|
|
50
|
+
projectRoot: params.projectRoot,
|
|
51
|
+
config: params.config,
|
|
52
|
+
});
|
|
46
53
|
if (plugin.availability) {
|
|
47
54
|
return await plugin.availability(context);
|
|
48
55
|
}
|
|
49
|
-
const enabled = isPluginEnabled({ plugin, context });
|
|
50
|
-
if (!enabled) {
|
|
51
|
-
return {
|
|
52
|
-
enabled: false,
|
|
53
|
-
available: false,
|
|
54
|
-
reasons: [`Plugin "${plugin.name}" is disabled`],
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
56
|
return {
|
|
58
57
|
enabled: true,
|
|
59
58
|
available: true,
|
|
@@ -88,15 +87,10 @@ export async function runLocalPluginAction(params) {
|
|
|
88
87
|
message: `Plugin "${plugin.name}" does not implement action "${actionName}"`,
|
|
89
88
|
};
|
|
90
89
|
}
|
|
91
|
-
const context = createLocalPluginCommandContext(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
success: false,
|
|
96
|
-
error: `Plugin "${plugin.name}" is disabled`,
|
|
97
|
-
message: `Plugin "${plugin.name}" is disabled`,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
90
|
+
const context = createLocalPluginCommandContext({
|
|
91
|
+
projectRoot: params.projectRoot,
|
|
92
|
+
config: params.config,
|
|
93
|
+
});
|
|
100
94
|
try {
|
|
101
95
|
const payload = (params.payload ?? {});
|
|
102
96
|
const schema = action.input_schema?.zod;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginLocalExecution.js","sourceRoot":"","sources":["../../../src/plugin/core/PluginLocalExecution.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PluginLocalExecution.js","sourceRoot":"","sources":["../../../src/plugin/core/PluginLocalExecution.ts"],"names":[],"mappings":"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"}
|