@downcity/agent 1.1.174 → 1.1.178

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 (147) hide show
  1. package/bin/agent/local/AgentPluginFactory.d.ts +4 -2
  2. package/bin/agent/local/AgentPluginFactory.d.ts.map +1 -1
  3. package/bin/agent/local/AgentPluginFactory.js +4 -6
  4. package/bin/agent/local/AgentPluginFactory.js.map +1 -1
  5. package/bin/agent/local/AgentRuntimeAssembly.d.ts.map +1 -1
  6. package/bin/agent/local/AgentRuntimeAssembly.js +3 -8
  7. package/bin/agent/local/AgentRuntimeAssembly.js.map +1 -1
  8. package/bin/agent/local/ProjectSetup.d.ts +1 -1
  9. package/bin/agent/local/ProjectSetup.d.ts.map +1 -1
  10. package/bin/agent/local/ProjectSetup.js +2 -6
  11. package/bin/agent/local/ProjectSetup.js.map +1 -1
  12. package/bin/agent/local/services/AgentAssemblyService.d.ts +2 -3
  13. package/bin/agent/local/services/AgentAssemblyService.d.ts.map +1 -1
  14. package/bin/agent/local/services/AgentAssemblyService.js +9 -14
  15. package/bin/agent/local/services/AgentAssemblyService.js.map +1 -1
  16. package/bin/agent/local/services/AgentBackgroundService.d.ts.map +1 -1
  17. package/bin/agent/local/services/AgentBackgroundService.js +5 -6
  18. package/bin/agent/local/services/AgentBackgroundService.js.map +1 -1
  19. package/bin/agent/local/services/AgentSessionManager.d.ts +2 -2
  20. package/bin/agent/local/services/AgentSessionManager.d.ts.map +1 -1
  21. package/bin/agent/local/services/AgentSessionManager.js +1 -28
  22. package/bin/agent/local/services/AgentSessionManager.js.map +1 -1
  23. package/bin/config/AgentInitializer.d.ts +4 -4
  24. package/bin/config/AgentInitializer.d.ts.map +1 -1
  25. package/bin/config/AgentInitializer.js +7 -49
  26. package/bin/config/AgentInitializer.js.map +1 -1
  27. package/bin/config/DowncitySchema.d.ts +3 -4
  28. package/bin/config/DowncitySchema.d.ts.map +1 -1
  29. package/bin/config/DowncitySchema.js +1 -2
  30. package/bin/config/DowncitySchema.js.map +1 -1
  31. package/bin/executor/Executor.d.ts.map +1 -1
  32. package/bin/executor/Executor.js +1 -1
  33. package/bin/executor/Executor.js.map +1 -1
  34. package/bin/executor/composer/system/default/SystemDomain.d.ts.map +1 -1
  35. package/bin/executor/composer/system/default/SystemDomain.js +1 -2
  36. package/bin/executor/composer/system/default/SystemDomain.js.map +1 -1
  37. package/bin/executor/composer/system/default/assets/core.prompt.d.ts +1 -1
  38. package/bin/executor/composer/system/default/assets/core.prompt.d.ts.map +1 -1
  39. package/bin/executor/composer/system/default/assets/core.prompt.js +1 -1
  40. package/bin/executor/composer/system/default/assets/core.prompt.js.map +1 -1
  41. package/bin/index.d.ts +0 -2
  42. package/bin/index.d.ts.map +1 -1
  43. package/bin/index.js +1 -4
  44. package/bin/index.js.map +1 -1
  45. package/bin/plugin/core/Activation.d.ts +6 -5
  46. package/bin/plugin/core/Activation.d.ts.map +1 -1
  47. package/bin/plugin/core/Activation.js +9 -9
  48. package/bin/plugin/core/Activation.js.map +1 -1
  49. package/bin/plugin/core/BasePlugin.d.ts +5 -4
  50. package/bin/plugin/core/BasePlugin.d.ts.map +1 -1
  51. package/bin/plugin/core/BasePlugin.js +7 -4
  52. package/bin/plugin/core/BasePlugin.js.map +1 -1
  53. package/bin/plugin/core/HookRegistry.d.ts +4 -0
  54. package/bin/plugin/core/HookRegistry.d.ts.map +1 -1
  55. package/bin/plugin/core/HookRegistry.js +40 -0
  56. package/bin/plugin/core/HookRegistry.js.map +1 -1
  57. package/bin/plugin/core/Manager.d.ts +1 -1
  58. package/bin/plugin/core/Manager.d.ts.map +1 -1
  59. package/bin/plugin/core/Manager.js +1 -1
  60. package/bin/plugin/core/Manager.js.map +1 -1
  61. package/bin/plugin/core/PluginActionRunner.d.ts +13 -7
  62. package/bin/plugin/core/PluginActionRunner.d.ts.map +1 -1
  63. package/bin/plugin/core/PluginActionRunner.js +46 -111
  64. package/bin/plugin/core/PluginActionRunner.js.map +1 -1
  65. package/bin/plugin/core/PluginCatalog.d.ts +1 -1
  66. package/bin/plugin/core/PluginCatalog.d.ts.map +1 -1
  67. package/bin/plugin/core/PluginCatalog.js +1 -21
  68. package/bin/plugin/core/PluginCatalog.js.map +1 -1
  69. package/bin/plugin/core/PluginLocalExecution.d.ts +12 -2
  70. package/bin/plugin/core/PluginLocalExecution.d.ts.map +1 -1
  71. package/bin/plugin/core/PluginLocalExecution.js +18 -24
  72. package/bin/plugin/core/PluginLocalExecution.js.map +1 -1
  73. package/bin/plugin/core/PluginRegistry.d.ts +60 -7
  74. package/bin/plugin/core/PluginRegistry.d.ts.map +1 -1
  75. package/bin/plugin/core/PluginRegistry.js +269 -42
  76. package/bin/plugin/core/PluginRegistry.js.map +1 -1
  77. package/bin/plugin/core/PluginStateController.d.ts +11 -36
  78. package/bin/plugin/core/PluginStateController.d.ts.map +1 -1
  79. package/bin/plugin/core/PluginStateController.js +45 -190
  80. package/bin/plugin/core/PluginStateController.js.map +1 -1
  81. package/bin/plugin/types/Plugin.d.ts +1 -1
  82. package/bin/plugin/types/Plugin.d.ts.map +1 -1
  83. package/bin/plugin/types/PluginState.d.ts +1 -1
  84. package/bin/plugin/types/PluginState.d.ts.map +1 -1
  85. package/bin/plugin/types/Plugins.d.ts +12 -12
  86. package/bin/plugin/types/Plugins.d.ts.map +1 -1
  87. package/bin/session/services/SessionStateService.d.ts.map +1 -1
  88. package/bin/session/services/SessionStateService.js +1 -1
  89. package/bin/session/services/SessionStateService.js.map +1 -1
  90. package/bin/types/agent/AgentOptions.d.ts +12 -3
  91. package/bin/types/agent/AgentOptions.d.ts.map +1 -1
  92. package/bin/types/agent/AgentRuntimeAssembly.d.ts +1 -1
  93. package/bin/types/config/AgentProject.d.ts +6 -14
  94. package/bin/types/config/AgentProject.d.ts.map +1 -1
  95. package/bin/types/plugin/PluginRuntime.d.ts +23 -2
  96. package/bin/types/plugin/PluginRuntime.d.ts.map +1 -1
  97. package/bin/types/plugin/PluginState.d.ts +47 -36
  98. package/bin/types/plugin/PluginState.d.ts.map +1 -1
  99. package/bin/types/plugin/PluginState.js +4 -3
  100. package/bin/types/plugin/PluginState.js.map +1 -1
  101. package/bin/types/runtime/agent/AgentContext.d.ts +3 -3
  102. package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
  103. package/bin/types/runtime/agent/AgentContext.js.map +1 -1
  104. package/package.json +3 -3
  105. package/src/agent/local/AgentPluginFactory.ts +8 -8
  106. package/src/agent/local/AgentRuntimeAssembly.ts +3 -9
  107. package/src/agent/local/ProjectSetup.ts +1 -8
  108. package/src/agent/local/services/AgentAssemblyService.ts +13 -23
  109. package/src/agent/local/services/AgentBackgroundService.ts +5 -6
  110. package/src/agent/local/services/AgentSessionManager.ts +4 -26
  111. package/src/config/AgentInitializer.ts +7 -57
  112. package/src/config/DowncitySchema.ts +3 -4
  113. package/src/executor/Executor.ts +1 -3
  114. package/src/executor/composer/system/default/SystemDomain.ts +1 -2
  115. package/src/executor/composer/system/default/assets/core.prompt.ts +1 -1
  116. package/src/executor/composer/system/default/assets/core.prompt.ts.txt +1 -1
  117. package/src/index.ts +1 -8
  118. package/src/plugin/core/Activation.ts +10 -10
  119. package/src/plugin/core/BasePlugin.ts +9 -6
  120. package/src/plugin/core/HookRegistry.ts +41 -0
  121. package/src/plugin/core/Manager.ts +0 -2
  122. package/src/plugin/core/PluginActionRunner.ts +52 -133
  123. package/src/plugin/core/PluginCatalog.ts +1 -23
  124. package/src/plugin/core/PluginLocalExecution.ts +30 -25
  125. package/src/plugin/core/PluginRegistry.ts +298 -44
  126. package/src/plugin/core/PluginStateController.ts +45 -235
  127. package/src/plugin/types/Plugin.ts +2 -1
  128. package/src/plugin/types/PluginState.ts +2 -1
  129. package/src/plugin/types/Plugins.ts +12 -12
  130. package/src/session/services/SessionStateService.ts +1 -3
  131. package/src/types/agent/AgentOptions.ts +13 -3
  132. package/src/types/agent/AgentRuntimeAssembly.ts +1 -1
  133. package/src/types/config/AgentProject.ts +7 -15
  134. package/src/types/plugin/PluginRuntime.ts +23 -2
  135. package/src/types/plugin/PluginState.ts +50 -43
  136. package/src/types/runtime/agent/AgentContext.ts +3 -3
  137. package/tsconfig.tsbuildinfo +1 -1
  138. package/bin/config/Defaults.d.ts +0 -21
  139. package/bin/config/Defaults.d.ts.map +0 -1
  140. package/bin/config/Defaults.js +0 -47
  141. package/bin/config/Defaults.js.map +0 -1
  142. package/bin/plugin/core/ProjectConfigStore.d.ts +0 -84
  143. package/bin/plugin/core/ProjectConfigStore.d.ts.map +0 -1
  144. package/bin/plugin/core/ProjectConfigStore.js +0 -89
  145. package/bin/plugin/core/ProjectConfigStore.js.map +0 -1
  146. package/src/config/Defaults.ts +0 -49
  147. package/src/plugin/core/ProjectConfigStore.ts +0 -155
@@ -1,21 +0,0 @@
1
- /**
2
- * Agent 项目默认配置模板模块。
3
- *
4
- * 职责说明(中文)
5
- * - 集中声明初始化新项目时写入的默认 `downcity.json` 结构。
6
- * - 为创建流程提供一份稳定、最小可运行的默认配置基线。
7
- *
8
- * 边界说明(中文)
9
- * - 这里的默认值只服务“新项目生成”,不参与运行时多层配置合并。
10
- * - 业务运行过程中若要读取最终配置,应始终走 `Config.ts` 的装配逻辑。
11
- */
12
- import type { DowncityConfig } from "../types/config/DowncityConfig.js";
13
- /**
14
- * 默认 `downcity.json` 配置。
15
- *
16
- * 关键点(中文)
17
- * - 这是一份“初始化模板”,不是运行时的最终真相来源。
18
- * - 调用方若只想取某个字段的默认值,也应意识到它可能被用户项目配置覆盖。
19
- */
20
- export declare const DEFAULT_DOWNCITY_JSON: DowncityConfig;
21
- //# sourceMappingURL=Defaults.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Defaults.d.ts","sourceRoot":"","sources":["../../src/config/Defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,cA2BnC,CAAC"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Agent 项目默认配置模板模块。
3
- *
4
- * 职责说明(中文)
5
- * - 集中声明初始化新项目时写入的默认 `downcity.json` 结构。
6
- * - 为创建流程提供一份稳定、最小可运行的默认配置基线。
7
- *
8
- * 边界说明(中文)
9
- * - 这里的默认值只服务“新项目生成”,不参与运行时多层配置合并。
10
- * - 业务运行过程中若要读取最终配置,应始终走 `Config.ts` 的装配逻辑。
11
- */
12
- /**
13
- * 默认 `downcity.json` 配置。
14
- *
15
- * 关键点(中文)
16
- * - 这是一份“初始化模板”,不是运行时的最终真相来源。
17
- * - 调用方若只想取某个字段的默认值,也应意识到它可能被用户项目配置覆盖。
18
- */
19
- export const DEFAULT_DOWNCITY_JSON = {
20
- $schema: "./.downcity/schema/downcity.schema.json",
21
- id: "downcity",
22
- version: "1.0.0",
23
- start: {
24
- port: 5314,
25
- host: "0.0.0.0",
26
- },
27
- execution: {
28
- type: "api",
29
- modelId: "default",
30
- },
31
- plugins: {
32
- chat: {
33
- queue: {
34
- maxConcurrency: 2,
35
- mergeDebounceMs: 600,
36
- mergeMaxWaitMs: 2000,
37
- },
38
- channels: {
39
- telegram: {
40
- enabled: false,
41
- channelAccountId: undefined,
42
- },
43
- },
44
- },
45
- },
46
- };
47
- //# sourceMappingURL=Defaults.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Defaults.js","sourceRoot":"","sources":["../../src/config/Defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,OAAO,EAAE,yCAAyC;IAClD,EAAE,EAAE,UAAU;IACd,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;KAChB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,SAAS;KACnB;IACD,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,cAAc,EAAE,CAAC;gBACjB,eAAe,EAAE,GAAG;gBACpB,cAAc,EAAE,IAAI;aACrB;YACD,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,OAAO,EAAE,KAAK;oBACd,gBAAgB,EAAE,SAAS;iBAC5B;aACF;SACF;KACF;CACF,CAAC"}
@@ -1,84 +0,0 @@
1
- /**
2
- * Plugin 项目配置持久化工具。
3
- *
4
- * 关键点(中文)
5
- * - 新插件体系的用户配置统一写回项目 `downcity.json`。
6
- * - 这里只负责 `plugins` 配置域,避免把执行期合并态整包落盘。
7
- * - 这样既能保证重启后配置仍然生效,也能避免把平台全局配置误写进项目文件。
8
- */
9
- import type { DowncityConfig } from "../../types/config/DowncityConfig.js";
10
- import type { AgentPluginConfigRuntime } from "../../types/agent/AgentRuntimeAssembly.js";
11
- type PersistableSections = {
12
- /**
13
- * 插件配置块(可选)。
14
- */
15
- plugins?: DowncityConfig["plugins"];
16
- };
17
- type ProjectPluginConfigCarrier = {
18
- /**
19
- * 当前项目配置对象。
20
- */
21
- config: DowncityConfig;
22
- /**
23
- * plugin 配置持久化能力。
24
- */
25
- pluginConfig: AgentPluginConfigRuntime;
26
- };
27
- /**
28
- * 从项目配置读取单个 plugin 的原始配置块。
29
- */
30
- export declare function readProjectPluginRecord(config: Pick<DowncityConfig, "plugins"> | null | undefined, pluginName: string): Record<string, unknown>;
31
- /**
32
- * 从项目配置读取单个 plugin 的启用态。
33
- *
34
- * 关键点(中文)
35
- * - 未显式配置 `enabled: false` 时默认视为启用。
36
- * - Agent 不按插件名维护“必需插件”例外,避免 Runtime 理解具体业务插件。
37
- * - 这样可以保持“零配置即可使用”的内建 plugin 体验。
38
- */
39
- export declare function readProjectPluginEnabled(params: {
40
- /**
41
- * 项目配置对象(可选)。
42
- */
43
- config?: Pick<DowncityConfig, "plugins"> | null;
44
- /**
45
- * plugin 名称。
46
- */
47
- pluginName: string;
48
- }): boolean;
49
- /**
50
- * 将单个 plugin 的启用态写回项目配置。
51
- *
52
- * 关键点(中文)
53
- * - 这里只维护 `plugins.<name>.enabled`,不理解插件私有字段语义。
54
- * - 其余配置字段会原样保留,避免开关动作覆盖插件已有设置。
55
- */
56
- export declare function writeProjectPluginEnabled(params: {
57
- /**
58
- * 目标 plugin 名称。
59
- */
60
- pluginName: string;
61
- /**
62
- * 目标启用态。
63
- */
64
- enabled: boolean;
65
- /**
66
- * 当前项目配置与持久化能力。
67
- */
68
- context: ProjectPluginConfigCarrier;
69
- }): Promise<void>;
70
- /**
71
- * 将 plugins 配置块写回项目 `downcity.json`。
72
- */
73
- export declare function persistProjectPluginConfig(params: {
74
- /**
75
- * 项目根目录。
76
- */
77
- projectRoot: string;
78
- /**
79
- * 待持久化的配置块。
80
- */
81
- sections: PersistableSections;
82
- }): Promise<string>;
83
- export {};
84
- //# sourceMappingURL=ProjectConfigStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProjectConfigStore.d.ts","sourceRoot":"","sources":["../../../src/plugin/core/ProjectConfigStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEtF,KAAK,mBAAmB,GAAG;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;CACrC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IACvB;;OAEG;IACH,YAAY,EAAE,wBAAwB,CAAC;CACxC,CAAC;AA6BF;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1D,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C;;OAEG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;IAChD;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAKV;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,0BAA0B,CAAC;CACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlB"}
@@ -1,89 +0,0 @@
1
- /**
2
- * Plugin 项目配置持久化工具。
3
- *
4
- * 关键点(中文)
5
- * - 新插件体系的用户配置统一写回项目 `downcity.json`。
6
- * - 这里只负责 `plugins` 配置域,避免把执行期合并态整包落盘。
7
- * - 这样既能保证重启后配置仍然生效,也能避免把平台全局配置误写进项目文件。
8
- */
9
- import fs from "node:fs/promises";
10
- import path from "node:path";
11
- function getProjectDowncityJsonPath(projectRoot) {
12
- return path.join(path.resolve(projectRoot), "downcity.json");
13
- }
14
- async function readProjectDowncityConfig(projectRoot) {
15
- const downcityJsonPath = getProjectDowncityJsonPath(projectRoot);
16
- const raw = await fs.readFile(downcityJsonPath, "utf-8");
17
- const parsed = JSON.parse(raw);
18
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
19
- throw new Error(`Invalid downcity.json: expected object (${downcityJsonPath})`);
20
- }
21
- return parsed;
22
- }
23
- function readProjectPluginRecordFromConfig(config, pluginName) {
24
- const normalizedPluginName = String(pluginName || "").trim();
25
- if (!normalizedPluginName)
26
- return {};
27
- const current = config?.plugins?.[normalizedPluginName];
28
- if (!current || typeof current !== "object" || Array.isArray(current)) {
29
- return {};
30
- }
31
- return current;
32
- }
33
- /**
34
- * 从项目配置读取单个 plugin 的原始配置块。
35
- */
36
- export function readProjectPluginRecord(config, pluginName) {
37
- return readProjectPluginRecordFromConfig(config, pluginName);
38
- }
39
- /**
40
- * 从项目配置读取单个 plugin 的启用态。
41
- *
42
- * 关键点(中文)
43
- * - 未显式配置 `enabled: false` 时默认视为启用。
44
- * - Agent 不按插件名维护“必需插件”例外,避免 Runtime 理解具体业务插件。
45
- * - 这样可以保持“零配置即可使用”的内建 plugin 体验。
46
- */
47
- export function readProjectPluginEnabled(params) {
48
- const normalizedPluginName = String(params.pluginName || "").trim();
49
- if (!normalizedPluginName)
50
- return false;
51
- const current = readProjectPluginRecordFromConfig(params.config, normalizedPluginName);
52
- return current.enabled !== false;
53
- }
54
- /**
55
- * 将单个 plugin 的启用态写回项目配置。
56
- *
57
- * 关键点(中文)
58
- * - 这里只维护 `plugins.<name>.enabled`,不理解插件私有字段语义。
59
- * - 其余配置字段会原样保留,避免开关动作覆盖插件已有设置。
60
- */
61
- export async function writeProjectPluginEnabled(params) {
62
- const normalizedPluginName = String(params.pluginName || "").trim();
63
- if (!normalizedPluginName)
64
- return;
65
- if (!params.context.config.plugins) {
66
- params.context.config.plugins = {};
67
- }
68
- params.context.config.plugins[normalizedPluginName] = {
69
- ...readProjectPluginRecordFromConfig(params.context.config, normalizedPluginName),
70
- enabled: params.enabled,
71
- };
72
- await params.context.pluginConfig.persistProjectPlugins(params.context.config.plugins);
73
- }
74
- /**
75
- * 将 plugins 配置块写回项目 `downcity.json`。
76
- */
77
- export async function persistProjectPluginConfig(params) {
78
- const downcityJsonPath = getProjectDowncityJsonPath(params.projectRoot);
79
- const current = await readProjectDowncityConfig(params.projectRoot);
80
- const next = {
81
- ...current,
82
- ...(params.sections.plugins !== undefined
83
- ? { plugins: params.sections.plugins }
84
- : {}),
85
- };
86
- await fs.writeFile(downcityJsonPath, `${JSON.stringify(next, null, 2)}\n`, "utf-8");
87
- return downcityJsonPath;
88
- }
89
- //# sourceMappingURL=ProjectConfigStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProjectConfigStore.js","sourceRoot":"","sources":["../../../src/plugin/core/ProjectConfigStore.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Agent 项目默认配置模板模块。
3
- *
4
- * 职责说明(中文)
5
- * - 集中声明初始化新项目时写入的默认 `downcity.json` 结构。
6
- * - 为创建流程提供一份稳定、最小可运行的默认配置基线。
7
- *
8
- * 边界说明(中文)
9
- * - 这里的默认值只服务“新项目生成”,不参与运行时多层配置合并。
10
- * - 业务运行过程中若要读取最终配置,应始终走 `Config.ts` 的装配逻辑。
11
- */
12
-
13
- import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
14
-
15
- /**
16
- * 默认 `downcity.json` 配置。
17
- *
18
- * 关键点(中文)
19
- * - 这是一份“初始化模板”,不是运行时的最终真相来源。
20
- * - 调用方若只想取某个字段的默认值,也应意识到它可能被用户项目配置覆盖。
21
- */
22
- export const DEFAULT_DOWNCITY_JSON: DowncityConfig = {
23
- $schema: "./.downcity/schema/downcity.schema.json",
24
- id: "downcity",
25
- version: "1.0.0",
26
- start: {
27
- port: 5314,
28
- host: "0.0.0.0",
29
- },
30
- execution: {
31
- type: "api",
32
- modelId: "default",
33
- },
34
- plugins: {
35
- chat: {
36
- queue: {
37
- maxConcurrency: 2,
38
- mergeDebounceMs: 600,
39
- mergeMaxWaitMs: 2000,
40
- },
41
- channels: {
42
- telegram: {
43
- enabled: false,
44
- channelAccountId: undefined,
45
- },
46
- },
47
- },
48
- },
49
- };
@@ -1,155 +0,0 @@
1
- /**
2
- * Plugin 项目配置持久化工具。
3
- *
4
- * 关键点(中文)
5
- * - 新插件体系的用户配置统一写回项目 `downcity.json`。
6
- * - 这里只负责 `plugins` 配置域,避免把执行期合并态整包落盘。
7
- * - 这样既能保证重启后配置仍然生效,也能避免把平台全局配置误写进项目文件。
8
- */
9
-
10
- import fs from "node:fs/promises";
11
- import path from "node:path";
12
- import type { DowncityConfig } from "@/types/config/DowncityConfig.js";
13
- import type { AgentPluginConfigRuntime } from "@/types/agent/AgentRuntimeAssembly.js";
14
-
15
- type PersistableSections = {
16
- /**
17
- * 插件配置块(可选)。
18
- */
19
- plugins?: DowncityConfig["plugins"];
20
- };
21
-
22
- type ProjectPluginConfigCarrier = {
23
- /**
24
- * 当前项目配置对象。
25
- */
26
- config: DowncityConfig;
27
- /**
28
- * plugin 配置持久化能力。
29
- */
30
- pluginConfig: AgentPluginConfigRuntime;
31
- };
32
-
33
- function getProjectDowncityJsonPath(projectRoot: string): string {
34
- return path.join(path.resolve(projectRoot), "downcity.json");
35
- }
36
-
37
- async function readProjectDowncityConfig(projectRoot: string): Promise<DowncityConfig> {
38
- const downcityJsonPath = getProjectDowncityJsonPath(projectRoot);
39
- const raw = await fs.readFile(downcityJsonPath, "utf-8");
40
- const parsed = JSON.parse(raw) as unknown;
41
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
42
- throw new Error(`Invalid downcity.json: expected object (${downcityJsonPath})`);
43
- }
44
- return parsed as DowncityConfig;
45
- }
46
-
47
- function readProjectPluginRecordFromConfig(
48
- config: Pick<DowncityConfig, "plugins"> | null | undefined,
49
- pluginName: string,
50
- ): Record<string, unknown> {
51
- const normalizedPluginName = String(pluginName || "").trim();
52
- if (!normalizedPluginName) return {};
53
- const current = config?.plugins?.[normalizedPluginName];
54
- if (!current || typeof current !== "object" || Array.isArray(current)) {
55
- return {};
56
- }
57
- return current as Record<string, unknown>;
58
- }
59
-
60
- /**
61
- * 从项目配置读取单个 plugin 的原始配置块。
62
- */
63
- export function readProjectPluginRecord(
64
- config: Pick<DowncityConfig, "plugins"> | null | undefined,
65
- pluginName: string,
66
- ): Record<string, unknown> {
67
- return readProjectPluginRecordFromConfig(config, pluginName);
68
- }
69
-
70
- /**
71
- * 从项目配置读取单个 plugin 的启用态。
72
- *
73
- * 关键点(中文)
74
- * - 未显式配置 `enabled: false` 时默认视为启用。
75
- * - Agent 不按插件名维护“必需插件”例外,避免 Runtime 理解具体业务插件。
76
- * - 这样可以保持“零配置即可使用”的内建 plugin 体验。
77
- */
78
- export function readProjectPluginEnabled(params: {
79
- /**
80
- * 项目配置对象(可选)。
81
- */
82
- config?: Pick<DowncityConfig, "plugins"> | null;
83
- /**
84
- * plugin 名称。
85
- */
86
- pluginName: string;
87
- }): boolean {
88
- const normalizedPluginName = String(params.pluginName || "").trim();
89
- if (!normalizedPluginName) return false;
90
- const current = readProjectPluginRecordFromConfig(params.config, normalizedPluginName);
91
- return current.enabled !== false;
92
- }
93
-
94
- /**
95
- * 将单个 plugin 的启用态写回项目配置。
96
- *
97
- * 关键点(中文)
98
- * - 这里只维护 `plugins.<name>.enabled`,不理解插件私有字段语义。
99
- * - 其余配置字段会原样保留,避免开关动作覆盖插件已有设置。
100
- */
101
- export async function writeProjectPluginEnabled(params: {
102
- /**
103
- * 目标 plugin 名称。
104
- */
105
- pluginName: string;
106
- /**
107
- * 目标启用态。
108
- */
109
- enabled: boolean;
110
- /**
111
- * 当前项目配置与持久化能力。
112
- */
113
- context: ProjectPluginConfigCarrier;
114
- }): Promise<void> {
115
- const normalizedPluginName = String(params.pluginName || "").trim();
116
- if (!normalizedPluginName) return;
117
- if (!params.context.config.plugins) {
118
- params.context.config.plugins = {};
119
- }
120
- params.context.config.plugins[normalizedPluginName] = {
121
- ...readProjectPluginRecordFromConfig(
122
- params.context.config,
123
- normalizedPluginName,
124
- ),
125
- enabled: params.enabled,
126
- };
127
- await params.context.pluginConfig.persistProjectPlugins(
128
- params.context.config.plugins,
129
- );
130
- }
131
-
132
- /**
133
- * 将 plugins 配置块写回项目 `downcity.json`。
134
- */
135
- export async function persistProjectPluginConfig(params: {
136
- /**
137
- * 项目根目录。
138
- */
139
- projectRoot: string;
140
- /**
141
- * 待持久化的配置块。
142
- */
143
- sections: PersistableSections;
144
- }): Promise<string> {
145
- const downcityJsonPath = getProjectDowncityJsonPath(params.projectRoot);
146
- const current = await readProjectDowncityConfig(params.projectRoot);
147
- const next: DowncityConfig = {
148
- ...current,
149
- ...(params.sections.plugins !== undefined
150
- ? { plugins: params.sections.plugins }
151
- : {}),
152
- };
153
- await fs.writeFile(downcityJsonPath, `${JSON.stringify(next, null, 2)}\n`, "utf-8");
154
- return downcityJsonPath;
155
- }