@downcity/agent 1.1.43 → 1.1.51

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.
Files changed (171) hide show
  1. package/README.md +6 -8
  2. package/bin/agent/Agent.d.ts +31 -16
  3. package/bin/agent/Agent.d.ts.map +1 -1
  4. package/bin/agent/Agent.js +47 -63
  5. package/bin/agent/Agent.js.map +1 -1
  6. package/bin/agent/RemoteAgent.d.ts +6 -6
  7. package/bin/agent/RemoteAgent.d.ts.map +1 -1
  8. package/bin/agent/RemoteAgent.js +377 -267
  9. package/bin/agent/RemoteAgent.js.map +1 -1
  10. package/bin/config/AgentInitializer.d.ts +4 -4
  11. package/bin/config/AgentInitializer.d.ts.map +1 -1
  12. package/bin/config/AgentInitializer.js +14 -12
  13. package/bin/config/AgentInitializer.js.map +1 -1
  14. package/bin/config/Config.d.ts +9 -30
  15. package/bin/config/Config.d.ts.map +1 -1
  16. package/bin/config/Config.js +23 -70
  17. package/bin/config/Config.js.map +1 -1
  18. package/bin/config/Defaults.d.ts.map +1 -1
  19. package/bin/config/Defaults.js +1 -9
  20. package/bin/config/Defaults.js.map +1 -1
  21. package/bin/config/DowncitySchema.d.ts.map +1 -1
  22. package/bin/config/DowncitySchema.js +3 -111
  23. package/bin/config/DowncitySchema.js.map +1 -1
  24. package/bin/config/ExecutionBinding.d.ts +0 -15
  25. package/bin/config/ExecutionBinding.d.ts.map +1 -1
  26. package/bin/config/ExecutionBinding.js +1 -21
  27. package/bin/config/ExecutionBinding.js.map +1 -1
  28. package/bin/config/Paths.d.ts +4 -43
  29. package/bin/config/Paths.d.ts.map +1 -1
  30. package/bin/config/Paths.js +10 -30
  31. package/bin/config/Paths.js.map +1 -1
  32. package/bin/config/PlatformPaths.d.ts +0 -4
  33. package/bin/config/PlatformPaths.d.ts.map +1 -1
  34. package/bin/config/PlatformPaths.js +5 -1
  35. package/bin/config/PlatformPaths.js.map +1 -1
  36. package/bin/executor/composer/system/default/assets/init/PROFILE.md.d.ts +1 -1
  37. package/bin/executor/composer/system/default/assets/init/PROFILE.md.d.ts.map +1 -1
  38. package/bin/executor/composer/system/default/assets/init/PROFILE.md.js +1 -1
  39. package/bin/executor/composer/system/default/assets/init/PROFILE.md.js.map +1 -1
  40. package/bin/executor/tools/shell/ShellToolFormatting.js +2 -2
  41. package/bin/executor/tools/shell/ShellToolFormatting.js.map +1 -1
  42. package/bin/executor/types/SessionRun.d.ts +1 -1
  43. package/bin/index.d.ts +4 -6
  44. package/bin/index.d.ts.map +1 -1
  45. package/bin/index.js +5 -5
  46. package/bin/index.js.map +1 -1
  47. package/bin/plugin/core/PluginCommandRequest.d.ts +1 -1
  48. package/bin/plugin/core/PluginCommandRequest.js +1 -1
  49. package/bin/plugin/core/PluginLocalExecution.d.ts.map +1 -1
  50. package/bin/plugin/core/PluginLocalExecution.js +4 -8
  51. package/bin/plugin/core/PluginLocalExecution.js.map +1 -1
  52. package/bin/plugin/types/PluginApi.d.ts +1 -1
  53. package/bin/rpc/Client.d.ts +104 -0
  54. package/bin/rpc/Client.d.ts.map +1 -0
  55. package/bin/rpc/Client.js +300 -0
  56. package/bin/rpc/Client.js.map +1 -0
  57. package/bin/rpc/Server.d.ts +41 -0
  58. package/bin/rpc/Server.d.ts.map +1 -0
  59. package/bin/rpc/Server.js +164 -0
  60. package/bin/rpc/Server.js.map +1 -0
  61. package/bin/runtime/host/daemon/Api.d.ts +1 -1
  62. package/bin/runtime/host/daemon/Client.d.ts +1 -1
  63. package/bin/runtime/host/daemon/Client.d.ts.map +1 -1
  64. package/bin/runtime/host/daemon/Client.js +30 -20
  65. package/bin/runtime/host/daemon/Client.js.map +1 -1
  66. package/bin/runtime/server/http/control/OverviewRoutes.js +1 -1
  67. package/bin/runtime/server/http/control/OverviewRoutes.js.map +1 -1
  68. package/bin/session/index.d.ts +1 -1
  69. package/bin/session/index.d.ts.map +1 -1
  70. package/bin/session/index.js +1 -1
  71. package/bin/session/index.js.map +1 -1
  72. package/bin/session/storage/Paths.d.ts +0 -4
  73. package/bin/session/storage/Paths.d.ts.map +1 -1
  74. package/bin/session/storage/Paths.js +0 -6
  75. package/bin/session/storage/Paths.js.map +1 -1
  76. package/bin/types/agent/AgentTypes.d.ts +23 -52
  77. package/bin/types/agent/AgentTypes.d.ts.map +1 -1
  78. package/bin/types/config/AgentProject.d.ts +6 -5
  79. package/bin/types/config/AgentProject.d.ts.map +1 -1
  80. package/bin/types/config/DowncityConfig.d.ts +8 -66
  81. package/bin/types/config/DowncityConfig.d.ts.map +1 -1
  82. package/bin/types/config/LlmConfig.d.ts +1 -1
  83. package/bin/types/config/Start.d.ts +3 -0
  84. package/bin/types/config/Start.d.ts.map +1 -1
  85. package/bin/types/config/Start.js +2 -0
  86. package/bin/types/config/Start.js.map +1 -1
  87. package/bin/types/runtime/host/Store.d.ts +7 -50
  88. package/bin/types/runtime/host/Store.d.ts.map +1 -1
  89. package/bin/types/runtime/platform/Platform.d.ts +6 -6
  90. package/bin/types/runtime/platform/Platform.d.ts.map +1 -1
  91. package/bin/types/runtime/platform/PlatformGateway.d.ts +2 -2
  92. package/bin/types/runtime/platform/PlatformGateway.d.ts.map +1 -1
  93. package/bin/utils/Time.d.ts +0 -1
  94. package/bin/utils/Time.d.ts.map +1 -1
  95. package/bin/utils/Time.js +0 -7
  96. package/bin/utils/Time.js.map +1 -1
  97. package/bin/utils/storage/index.d.ts +0 -1
  98. package/bin/utils/storage/index.d.ts.map +1 -1
  99. package/bin/utils/storage/index.js +0 -6
  100. package/bin/utils/storage/index.js.map +1 -1
  101. package/package.json +4 -6
  102. package/src/agent/Agent.ts +54 -71
  103. package/src/agent/RemoteAgent.ts +515 -345
  104. package/src/config/AgentInitializer.ts +14 -12
  105. package/src/config/Config.ts +28 -85
  106. package/src/config/Defaults.ts +1 -9
  107. package/src/config/DowncitySchema.ts +3 -113
  108. package/src/config/ExecutionBinding.ts +1 -23
  109. package/src/config/Paths.ts +10 -43
  110. package/src/config/PlatformPaths.ts +5 -1
  111. package/src/executor/composer/system/default/assets/init/PROFILE.md.ts +1 -1
  112. package/src/executor/composer/system/default/assets/init/PROFILE.md.ts.txt +1 -2
  113. package/src/executor/tools/shell/ShellToolFormatting.ts +2 -2
  114. package/src/executor/types/SessionRun.ts +1 -1
  115. package/src/index.ts +7 -14
  116. package/src/plugin/core/PluginCommandRequest.ts +1 -1
  117. package/src/plugin/core/PluginLocalExecution.ts +4 -8
  118. package/src/plugin/types/PluginApi.ts +1 -1
  119. package/src/rpc/Client.ts +467 -0
  120. package/src/rpc/Server.ts +302 -0
  121. package/src/runtime/host/daemon/Api.ts +1 -1
  122. package/src/runtime/host/daemon/Client.ts +44 -22
  123. package/src/runtime/server/http/control/OverviewRoutes.ts +1 -1
  124. package/src/session/index.ts +0 -1
  125. package/src/session/storage/Paths.ts +0 -10
  126. package/src/types/agent/AgentTypes.ts +23 -57
  127. package/src/types/config/AgentProject.ts +6 -5
  128. package/src/types/config/DowncityConfig.ts +8 -67
  129. package/src/types/config/LlmConfig.ts +1 -1
  130. package/src/types/config/Start.ts +3 -0
  131. package/src/types/runtime/host/Store.ts +7 -53
  132. package/src/types/runtime/platform/Platform.ts +6 -6
  133. package/src/types/runtime/platform/PlatformGateway.ts +2 -2
  134. package/src/utils/Time.ts +0 -6
  135. package/src/utils/storage/index.ts +0 -7
  136. package/tsconfig.tsbuildinfo +1 -1
  137. package/bin/config/ConfigEnvResolver.d.ts +0 -22
  138. package/bin/config/ConfigEnvResolver.d.ts.map +0 -1
  139. package/bin/config/ConfigEnvResolver.js +0 -41
  140. package/bin/config/ConfigEnvResolver.js.map +0 -1
  141. package/bin/runtime/server/rpc/Server.d.ts +0 -18
  142. package/bin/runtime/server/rpc/Server.d.ts.map +0 -1
  143. package/bin/runtime/server/rpc/Server.js +0 -315
  144. package/bin/runtime/server/rpc/Server.js.map +0 -1
  145. package/bin/runtime/transport/rpc/Client.d.ts +0 -13
  146. package/bin/runtime/transport/rpc/Client.d.ts.map +0 -1
  147. package/bin/runtime/transport/rpc/Client.js +0 -98
  148. package/bin/runtime/transport/rpc/Client.js.map +0 -1
  149. package/bin/runtime/transport/rpc/Paths.d.ts +0 -14
  150. package/bin/runtime/transport/rpc/Paths.d.ts.map +0 -1
  151. package/bin/runtime/transport/rpc/Paths.js +0 -42
  152. package/bin/runtime/transport/rpc/Paths.js.map +0 -1
  153. package/bin/runtime/transport/rpc/Transport.d.ts +0 -21
  154. package/bin/runtime/transport/rpc/Transport.d.ts.map +0 -1
  155. package/bin/runtime/transport/rpc/Transport.js +0 -30
  156. package/bin/runtime/transport/rpc/Transport.js.map +0 -1
  157. package/bin/types/common/ResolvedConfigValue.d.ts +0 -12
  158. package/bin/types/common/ResolvedConfigValue.d.ts.map +0 -1
  159. package/bin/types/common/ResolvedConfigValue.js +0 -2
  160. package/bin/types/common/ResolvedConfigValue.js.map +0 -1
  161. package/bin/types/runtime/rpc/LocalRpc.d.ts +0 -69
  162. package/bin/types/runtime/rpc/LocalRpc.d.ts.map +0 -1
  163. package/bin/types/runtime/rpc/LocalRpc.js +0 -9
  164. package/bin/types/runtime/rpc/LocalRpc.js.map +0 -1
  165. package/src/config/ConfigEnvResolver.ts +0 -52
  166. package/src/runtime/server/rpc/Server.ts +0 -408
  167. package/src/runtime/transport/rpc/Client.ts +0 -113
  168. package/src/runtime/transport/rpc/Paths.ts +0 -50
  169. package/src/runtime/transport/rpc/Transport.ts +0 -43
  170. package/src/types/common/ResolvedConfigValue.ts +0 -16
  171. package/src/types/runtime/rpc/LocalRpc.ts +0 -72
@@ -1,22 +0,0 @@
1
- /**
2
- * Agent 配置域环境变量占位符解析模块。
3
- *
4
- * 职责说明(中文)
5
- * - 负责把配置树中的 `${ENV_NAME}` 形式占位符替换为运行时可见的环境变量值。
6
- * - 服务 `downcity.json` 等配置载体的解析流程,让配置读取相关逻辑集中留在 `config/` 语义域。
7
- *
8
- * 边界说明(中文)
9
- * - 该模块只处理结构遍历与替换,不读取文件,也不决定环境变量来源优先级。
10
- * - 这里只负责“如何替换”,不负责“缺失变量时是否报错”的业务策略。
11
- */
12
- import type { ResolvedConfigValue } from "../types/common/ResolvedConfigValue.js";
13
- /**
14
- * 递归解析配置值中的环境变量占位符。
15
- *
16
- * 关键点(中文)
17
- * - 仅替换“整个字符串就是 `${VAR}`”的场景,不处理字符串内插值拼接。
18
- * - 数组与对象会递归遍历,保持原有结构不变。
19
- * - 未命中的环境变量会返回 `undefined`,由调用方决定后续行为。
20
- */
21
- export declare function resolveEnvPlaceholdersDeep(value: ResolvedConfigValue, resolveEnvVar: (name: string) => string | undefined): ResolvedConfigValue;
22
- //# sourceMappingURL=ConfigEnvResolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfigEnvResolver.d.ts","sourceRoot":"","sources":["../../src/config/ConfigEnvResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAEjF;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAClD,mBAAmB,CAyBrB"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Agent 配置域环境变量占位符解析模块。
3
- *
4
- * 职责说明(中文)
5
- * - 负责把配置树中的 `${ENV_NAME}` 形式占位符替换为运行时可见的环境变量值。
6
- * - 服务 `downcity.json` 等配置载体的解析流程,让配置读取相关逻辑集中留在 `config/` 语义域。
7
- *
8
- * 边界说明(中文)
9
- * - 该模块只处理结构遍历与替换,不读取文件,也不决定环境变量来源优先级。
10
- * - 这里只负责“如何替换”,不负责“缺失变量时是否报错”的业务策略。
11
- */
12
- /**
13
- * 递归解析配置值中的环境变量占位符。
14
- *
15
- * 关键点(中文)
16
- * - 仅替换“整个字符串就是 `${VAR}`”的场景,不处理字符串内插值拼接。
17
- * - 数组与对象会递归遍历,保持原有结构不变。
18
- * - 未命中的环境变量会返回 `undefined`,由调用方决定后续行为。
19
- */
20
- export function resolveEnvPlaceholdersDeep(value, resolveEnvVar) {
21
- if (typeof value === "string") {
22
- const match = value.match(/^\$\{([A-Z0-9_]+)\}$/);
23
- if (!match)
24
- return value;
25
- const envVar = match[1];
26
- return resolveEnvVar(envVar);
27
- }
28
- if (Array.isArray(value)) {
29
- return value.map((item) => resolveEnvPlaceholdersDeep(item, resolveEnvVar));
30
- }
31
- if (value && typeof value === "object") {
32
- const obj = value;
33
- const out = {};
34
- for (const [key, child] of Object.entries(obj)) {
35
- out[key] = resolveEnvPlaceholdersDeep(child, resolveEnvVar);
36
- }
37
- return out;
38
- }
39
- return value;
40
- }
41
- //# sourceMappingURL=ConfigEnvResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfigEnvResolver.js","sourceRoot":"","sources":["../../src/config/ConfigEnvResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAA0B,EAC1B,aAAmD;IAEnD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAAmB,CAAC;QAChC,MAAM,GAAG,GAA2C,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,GAAG,CAAC,GAAG,0BAA0B,CACnC,KAA4B,EAC5B,aAAa,CACd,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Local RPC server。
3
- *
4
- * 关键点(中文)
5
- * - 只服务本地受信任进程,不暴露 HTTP 协议。
6
- * - 这里承接本机 CLI 访问 agent runtime 的 IPC 路由,并与 HTTP 能力保持语义一致。
7
- */
8
- import type { AgentRuntime } from "../../../types/runtime/agent/AgentRuntime.js";
9
- import type { AgentContext } from "../../../types/runtime/agent/AgentContext.js";
10
- import type { LocalRpcServerHandle } from "../../../types/runtime/rpc/LocalRpc.js";
11
- /**
12
- * 启动本地 RPC server。
13
- */
14
- export declare function startLocalRpcServer(params: {
15
- context: AgentContext;
16
- runtime: AgentRuntime;
17
- }): Promise<LocalRpcServerHandle>;
18
- //# sourceMappingURL=Server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../../../../src/runtime/server/rpc/Server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAE1E,OAAO,KAAK,EAAqC,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAwW/G;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,YAAY,CAAC;CACvB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2BhC"}
@@ -1,315 +0,0 @@
1
- /**
2
- * Local RPC server。
3
- *
4
- * 关键点(中文)
5
- * - 只服务本地受信任进程,不暴露 HTTP 协议。
6
- * - 这里承接本机 CLI 访问 agent runtime 的 IPC 路由,并与 HTTP 能力保持语义一致。
7
- */
8
- import fs from "fs-extra";
9
- import net from "node:net";
10
- import path from "node:path";
11
- import { listPluginStates, controlPluginState } from "../../../plugin/core/PluginStateController.js";
12
- import { runPluginCommand } from "../../../plugin/core/PluginActionRunner.js";
13
- import { parsePluginCommandRequestBody } from "../../../plugin/core/PluginCommandRequest.js";
14
- import { executeBySessionId } from "../../../runtime/server/http/control/ExecuteBySession.js";
15
- import { getLocalRpcEndpoint } from "../../../runtime/transport/rpc/Paths.js";
16
- async function isSocketEndpointActive(endpoint) {
17
- return await new Promise((resolve) => {
18
- const socket = net.createConnection(endpoint);
19
- let settled = false;
20
- const finish = (value) => {
21
- if (settled)
22
- return;
23
- settled = true;
24
- socket.destroy();
25
- resolve(value);
26
- };
27
- socket.setTimeout(200);
28
- socket.on("connect", () => finish(true));
29
- socket.on("timeout", () => finish(false));
30
- socket.on("error", () => finish(false));
31
- });
32
- }
33
- function isObjectRecord(value) {
34
- return Boolean(value && typeof value === "object" && !Array.isArray(value));
35
- }
36
- function createSuccessResponse(requestId, data, status = 200) {
37
- return {
38
- requestId,
39
- status,
40
- success: true,
41
- data,
42
- };
43
- }
44
- function createErrorResponse(requestId, status, error) {
45
- return {
46
- requestId,
47
- status,
48
- success: false,
49
- error,
50
- };
51
- }
52
- async function handlePluginControl(params) {
53
- const body = isObjectRecord(params.body) ? params.body : {};
54
- const pluginName = String(body.pluginName || "").trim();
55
- const action = String(body.action || "").trim();
56
- if (!pluginName || !action) {
57
- return createErrorResponse(params.requestId, 400, "pluginName and action are required");
58
- }
59
- const result = await controlPluginState({
60
- pluginName,
61
- action,
62
- context: params.context,
63
- });
64
- const payload = {
65
- success: result.success,
66
- ...(result.plugin ? { plugin: result.plugin } : {}),
67
- ...(result.error ? { error: result.error } : {}),
68
- };
69
- return createSuccessResponse(params.requestId, payload);
70
- }
71
- async function handlePluginCommand(params) {
72
- let body;
73
- try {
74
- body = parsePluginCommandRequestBody(params.body);
75
- }
76
- catch (error) {
77
- return createErrorResponse(params.requestId, 400, String(error));
78
- }
79
- if (!body.pluginName || !body.command) {
80
- return createErrorResponse(params.requestId, 400, "pluginName and command are required");
81
- }
82
- const result = await runPluginCommand({
83
- pluginName: body.pluginName,
84
- command: body.command,
85
- payload: body.payload,
86
- schedule: body.schedule,
87
- context: params.context,
88
- });
89
- const payload = {
90
- success: result.success,
91
- ...(result.plugin ? { plugin: result.plugin } : {}),
92
- ...(result.data !== undefined ? { data: result.data } : {}),
93
- ...(result.message ? { message: result.message } : {}),
94
- ...(result.success ? {} : { error: result.message || "plugin command failed" }),
95
- };
96
- return createSuccessResponse(params.requestId, payload);
97
- }
98
- async function handlePluginAvailability(params) {
99
- const body = isObjectRecord(params.body) ? params.body : {};
100
- const pluginName = String(body.pluginName || "").trim();
101
- if (!pluginName) {
102
- return createErrorResponse(params.requestId, 400, "pluginName is required");
103
- }
104
- const availability = await params.context.plugins.availability(pluginName);
105
- const payload = {
106
- success: true,
107
- pluginName,
108
- availability,
109
- };
110
- return createSuccessResponse(params.requestId, payload);
111
- }
112
- async function handlePluginAction(params) {
113
- const body = isObjectRecord(params.body) ? params.body : {};
114
- const pluginName = String(body.pluginName || "").trim();
115
- const actionName = String(body.actionName || "").trim();
116
- if (!pluginName) {
117
- return createErrorResponse(params.requestId, 400, "pluginName is required");
118
- }
119
- if (!actionName) {
120
- return createErrorResponse(params.requestId, 400, "actionName is required");
121
- }
122
- const result = await params.context.plugins.runAction({
123
- plugin: pluginName,
124
- action: actionName,
125
- payload: body.payload,
126
- });
127
- const payload = {
128
- success: result.success,
129
- pluginName,
130
- actionName,
131
- ...(result.data !== undefined ? { data: result.data } : {}),
132
- ...(result.message ? { message: result.message } : {}),
133
- ...(result.error ? { error: result.error } : {}),
134
- };
135
- return createSuccessResponse(params.requestId, payload, result.success ? 200 : 400);
136
- }
137
- function matchControlSessionExecutePath(pathname) {
138
- const match = /^\/api\/control\/sessions\/([^/]+)\/execute$/.exec(String(pathname || "").trim());
139
- if (!match)
140
- return null;
141
- try {
142
- return decodeURIComponent(match[1] || "").trim() || null;
143
- }
144
- catch {
145
- return null;
146
- }
147
- }
148
- async function handleControlSessionExecute(params) {
149
- if (!params.runtime) {
150
- return createErrorResponse(params.requestId, 500, "Local RPC control execute requires agent runtime");
151
- }
152
- const body = isObjectRecord(params.body) ? params.body : {};
153
- const instructions = String(body.instructions || "").trim();
154
- const attachments = Array.isArray(body.attachments)
155
- ? body.attachments
156
- : undefined;
157
- if (!params.sessionId) {
158
- return createErrorResponse(params.requestId, 400, "sessionId is required");
159
- }
160
- if (!instructions) {
161
- return createErrorResponse(params.requestId, 400, "instructions are required");
162
- }
163
- try {
164
- const result = await executeBySessionId({
165
- agentState: params.runtime,
166
- executionContext: params.context,
167
- sessionId: params.sessionId,
168
- instructions,
169
- attachments,
170
- });
171
- return createSuccessResponse(params.requestId, {
172
- success: true,
173
- sessionId: params.sessionId,
174
- result,
175
- });
176
- }
177
- catch (error) {
178
- return createErrorResponse(params.requestId, 500, String(error));
179
- }
180
- }
181
- async function dispatchRequest(params) {
182
- const { request } = params;
183
- if (request.method === "GET" &&
184
- request.path === "/api/plugins/list") {
185
- const payload = {
186
- success: true,
187
- plugins: listPluginStates({ context: params.context }),
188
- };
189
- return createSuccessResponse(request.requestId, payload);
190
- }
191
- if (request.method === "POST" &&
192
- request.path === "/api/plugins/control") {
193
- return await handlePluginControl({
194
- requestId: request.requestId,
195
- body: request.body,
196
- context: params.context,
197
- });
198
- }
199
- if (request.method === "POST" &&
200
- request.path === "/api/plugins/command") {
201
- return await handlePluginCommand({
202
- requestId: request.requestId,
203
- body: request.body,
204
- context: params.context,
205
- });
206
- }
207
- if (request.method === "GET" && request.path === "/api/plugins/catalog") {
208
- const payload = {
209
- success: true,
210
- plugins: params.context.plugins.list(),
211
- };
212
- return createSuccessResponse(request.requestId, payload);
213
- }
214
- if (request.method === "POST" && request.path === "/api/plugins/availability") {
215
- return await handlePluginAvailability({
216
- requestId: request.requestId,
217
- body: request.body,
218
- context: params.context,
219
- });
220
- }
221
- if (request.method === "POST" && request.path === "/api/plugins/action") {
222
- return await handlePluginAction({
223
- requestId: request.requestId,
224
- body: request.body,
225
- context: params.context,
226
- });
227
- }
228
- const controlSessionId = request.method === "POST"
229
- ? matchControlSessionExecutePath(request.path)
230
- : null;
231
- if (controlSessionId) {
232
- return await handleControlSessionExecute({
233
- requestId: request.requestId,
234
- body: request.body,
235
- context: params.context,
236
- runtime: params.runtime,
237
- sessionId: controlSessionId,
238
- });
239
- }
240
- return createErrorResponse(request.requestId, 404, `Unknown local RPC path: ${request.method} ${request.path}`);
241
- }
242
- async function ensureEndpointReady(endpoint) {
243
- if (process.platform === "win32")
244
- return;
245
- await fs.ensureDir(path.dirname(endpoint));
246
- const exists = await fs.pathExists(endpoint);
247
- if (!exists)
248
- return;
249
- if (await isSocketEndpointActive(endpoint)) {
250
- throw new Error(`Local RPC endpoint already in use: ${endpoint}`);
251
- }
252
- await fs.remove(endpoint);
253
- }
254
- function writeResponse(socket, response) {
255
- socket.end(`${JSON.stringify(response)}\n`);
256
- }
257
- function bindConnectionHandler(params) {
258
- const { server, context, runtime } = params;
259
- server.on("connection", (socket) => {
260
- let buffered = "";
261
- socket.setEncoding("utf8");
262
- socket.on("data", async (chunk) => {
263
- buffered += String(chunk || "");
264
- const newlineIndex = buffered.indexOf("\n");
265
- if (newlineIndex < 0)
266
- return;
267
- const raw = buffered.slice(0, newlineIndex).trim();
268
- if (!raw) {
269
- writeResponse(socket, createErrorResponse("unknown", 400, "Empty local RPC payload"));
270
- return;
271
- }
272
- try {
273
- const request = JSON.parse(raw);
274
- const response = await dispatchRequest({
275
- request,
276
- context,
277
- runtime,
278
- });
279
- writeResponse(socket, response);
280
- }
281
- catch (error) {
282
- writeResponse(socket, createErrorResponse("unknown", 400, `Invalid local RPC request: ${String(error)}`));
283
- }
284
- });
285
- });
286
- }
287
- /**
288
- * 启动本地 RPC server。
289
- */
290
- export async function startLocalRpcServer(params) {
291
- const endpoint = getLocalRpcEndpoint(params.context.rootPath);
292
- await ensureEndpointReady(endpoint);
293
- const server = net.createServer();
294
- bindConnectionHandler({
295
- server,
296
- context: params.context,
297
- runtime: params.runtime,
298
- });
299
- await new Promise((resolve, reject) => {
300
- server.once("error", reject);
301
- server.listen(endpoint, () => resolve());
302
- });
303
- return {
304
- endpoint,
305
- async stop() {
306
- await new Promise((resolve) => {
307
- server.close(() => resolve());
308
- });
309
- if (process.platform !== "win32") {
310
- await fs.remove(endpoint);
311
- }
312
- },
313
- };
314
- }
315
- //# sourceMappingURL=Server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/runtime/server/rpc/Server.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Local RPC 客户端。
3
- *
4
- * 关键点(中文)
5
- * - 只用于本机受信任 IPC,不附加 HTTP Bearer 鉴权。
6
- * - 返回结构与 HTTP `callServer()` 对齐,便于上层透明切换 transport。
7
- */
8
- import type { DaemonJsonApiCallParams, DaemonJsonApiCallResult } from "../../../runtime/host/daemon/Api.js";
9
- /**
10
- * 通过本地 IPC 调用 agent runtime。
11
- */
12
- export declare function callLocalServer<T>(params: DaemonJsonApiCallParams): Promise<DaemonJsonApiCallResult<T>>;
13
- //# sourceMappingURL=Client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../../src/runtime/transport/rpc/Client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AAetC;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CA+ErC"}
@@ -1,98 +0,0 @@
1
- /**
2
- * Local RPC 客户端。
3
- *
4
- * 关键点(中文)
5
- * - 只用于本机受信任 IPC,不附加 HTTP Bearer 鉴权。
6
- * - 返回结构与 HTTP `callServer()` 对齐,便于上层透明切换 transport。
7
- */
8
- import net from "node:net";
9
- import { nanoid } from "nanoid";
10
- import { getLocalRpcEndpoint } from "./Paths.js";
11
- const LOCAL_RPC_TIMEOUT_MS = 5_000;
12
- function toLocalRpcRequest(params) {
13
- return {
14
- requestId: nanoid(),
15
- path: String(params.path || "").trim(),
16
- method: params.method || "GET",
17
- ...(params.body !== undefined ? { body: params.body } : {}),
18
- };
19
- }
20
- /**
21
- * 通过本地 IPC 调用 agent runtime。
22
- */
23
- export async function callLocalServer(params) {
24
- const endpoint = getLocalRpcEndpoint(params.projectRoot);
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;
31
- return await new Promise((resolve) => {
32
- const socket = net.createConnection(endpoint);
33
- let settled = false;
34
- let buffered = "";
35
- const finish = (result) => {
36
- if (settled)
37
- return;
38
- settled = true;
39
- socket.destroy();
40
- resolve(result);
41
- };
42
- socket.setEncoding("utf8");
43
- socket.setTimeout(timeoutMs);
44
- socket.on("connect", () => {
45
- socket.write(`${JSON.stringify(request)}\n`);
46
- });
47
- socket.on("data", (chunk) => {
48
- buffered += String(chunk || "");
49
- const newlineIndex = buffered.indexOf("\n");
50
- if (newlineIndex < 0)
51
- return;
52
- const raw = buffered.slice(0, newlineIndex).trim();
53
- if (!raw) {
54
- finish({
55
- success: false,
56
- error: `Local RPC returned empty payload from ${endpoint}`,
57
- });
58
- return;
59
- }
60
- try {
61
- const response = JSON.parse(raw);
62
- finish({
63
- success: response.success,
64
- status: response.status,
65
- ...(response.data !== undefined ? { data: response.data } : {}),
66
- ...(response.error ? { error: response.error } : {}),
67
- });
68
- }
69
- catch (error) {
70
- finish({
71
- success: false,
72
- error: `Local RPC returned invalid JSON from ${endpoint}: ${String(error)}`,
73
- });
74
- }
75
- });
76
- socket.on("timeout", () => {
77
- finish({
78
- success: false,
79
- error: `Local RPC timed out after ${timeoutMs}ms (${endpoint})`,
80
- });
81
- });
82
- socket.on("error", (error) => {
83
- finish({
84
- success: false,
85
- error: `Local RPC unavailable at ${endpoint}: ${String(error)}`,
86
- });
87
- });
88
- socket.on("end", () => {
89
- if (settled)
90
- return;
91
- finish({
92
- success: false,
93
- error: `Local RPC closed without response (${endpoint})`,
94
- });
95
- });
96
- });
97
- }
98
- //# sourceMappingURL=Client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../../src/runtime/transport/rpc/Client.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Local RPC 路径工具。
3
- *
4
- * 关键点(中文)
5
- * - 本地受信任进程之间统一通过 IPC socket/pipe 通信。
6
- * - Unix 平台使用 city 全局 runtime 目录下的稳定 socket 文件,避免不同启动上下文
7
- * 的 `TMPDIR` 不一致,导致同一个 agent 被解析到两个不同 socket 路径。
8
- * - Windows 平台使用命名 pipe,并基于项目路径 hash 保证稳定唯一。
9
- */
10
- /**
11
- * 返回本地 RPC endpoint。
12
- */
13
- export declare function getLocalRpcEndpoint(projectRoot: string): string;
14
- //# sourceMappingURL=Paths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Paths.d.ts","sourceRoot":"","sources":["../../../../src/runtime/transport/rpc/Paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8BH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQ/D"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Local RPC 路径工具。
3
- *
4
- * 关键点(中文)
5
- * - 本地受信任进程之间统一通过 IPC socket/pipe 通信。
6
- * - Unix 平台使用 city 全局 runtime 目录下的稳定 socket 文件,避免不同启动上下文
7
- * 的 `TMPDIR` 不一致,导致同一个 agent 被解析到两个不同 socket 路径。
8
- * - Windows 平台使用命名 pipe,并基于项目路径 hash 保证稳定唯一。
9
- */
10
- import crypto from "node:crypto";
11
- import path from "node:path";
12
- import { getPlatformRootDirPath } from "../../../config/PlatformPaths.js";
13
- /**
14
- * 读取平台级运行目录。
15
- */
16
- function getPlatformRuntimeDirPath() {
17
- return path.join(getPlatformRootDirPath(), "main");
18
- }
19
- function buildProjectDigest(projectRoot) {
20
- return crypto
21
- .createHash("sha1")
22
- .update(path.resolve(projectRoot))
23
- .digest("hex")
24
- .slice(0, 16);
25
- }
26
- function buildWindowsPipeName(projectRoot) {
27
- const digest = buildProjectDigest(projectRoot);
28
- return `\\\\.\\pipe\\downcity-local-${digest}`;
29
- }
30
- function getLocalRpcUnixDirPath() {
31
- return path.join(getPlatformRuntimeDirPath(), "local-rpc");
32
- }
33
- /**
34
- * 返回本地 RPC endpoint。
35
- */
36
- export function getLocalRpcEndpoint(projectRoot) {
37
- if (process.platform === "win32") {
38
- return buildWindowsPipeName(projectRoot);
39
- }
40
- return path.join(getLocalRpcUnixDirPath(), `downcity-local-${buildProjectDigest(projectRoot)}.sock`);
41
- }
42
- //# sourceMappingURL=Paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Paths.js","sourceRoot":"","sources":["../../../../src/runtime/transport/rpc/Paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;GAEG;AACH,SAAS,yBAAyB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,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,yBAAyB,EAAE,EAAE,WAAW,CAAC,CAAC;AAC7D,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,21 +0,0 @@
1
- /**
2
- * 本地/远程 transport 选择器。
3
- *
4
- * 关键点(中文)
5
- * - 本地受信任调用默认优先使用 IPC。
6
- * - 只有显式传入 `host/port` 时,才视为外部 HTTP 调用。
7
- * - 当前返回结构与 `callServer()` 保持一致,方便命令层复用。
8
- */
9
- import type { DaemonJsonApiCallParams, DaemonJsonApiCallResult } from "../../../runtime/host/daemon/Api.js";
10
- /**
11
- * 判断是否应强制使用 HTTP transport。
12
- */
13
- export declare function shouldUseHttpTransport(params: {
14
- host?: string;
15
- port?: number;
16
- }): boolean;
17
- /**
18
- * 统一调用 agent transport。
19
- */
20
- export declare function callAgentTransport<T>(params: DaemonJsonApiCallParams): Promise<DaemonJsonApiCallResult<T>>;
21
- //# sourceMappingURL=Transport.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../../../../src/runtime/transport/rpc/Transport.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AAItC;;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"}