@xgjktech/xg_cwork_im 1.17.21 → 1.17.23

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 (102) hide show
  1. package/README.md +55 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/account-connection.d.ts.map +1 -1
  6. package/dist/src/account-connection.js +97 -7
  7. package/dist/src/account-connection.js.map +1 -1
  8. package/dist/src/action-run-event.d.ts +8 -0
  9. package/dist/src/action-run-event.d.ts.map +1 -0
  10. package/dist/src/action-run-event.js +35 -0
  11. package/dist/src/action-run-event.js.map +1 -0
  12. package/dist/src/action-run-event.test.d.ts +2 -0
  13. package/dist/src/action-run-event.test.d.ts.map +1 -0
  14. package/dist/src/action-run-event.test.js +51 -0
  15. package/dist/src/action-run-event.test.js.map +1 -0
  16. package/dist/src/action-store-access.d.ts +27 -0
  17. package/dist/src/action-store-access.d.ts.map +1 -0
  18. package/dist/src/action-store-access.js +74 -0
  19. package/dist/src/action-store-access.js.map +1 -0
  20. package/dist/src/agent-context-types.d.ts +85 -10
  21. package/dist/src/agent-context-types.d.ts.map +1 -1
  22. package/dist/src/agent-context-types.js +50 -7
  23. package/dist/src/agent-context-types.js.map +1 -1
  24. package/dist/src/agent-context-types.test.js +55 -2
  25. package/dist/src/agent-context-types.test.js.map +1 -1
  26. package/dist/src/auto-model-router.d.ts +36 -0
  27. package/dist/src/auto-model-router.d.ts.map +1 -0
  28. package/dist/src/auto-model-router.js +60 -0
  29. package/dist/src/auto-model-router.js.map +1 -0
  30. package/dist/src/auto-model-router.test.d.ts +2 -0
  31. package/dist/src/auto-model-router.test.d.ts.map +1 -0
  32. package/dist/src/auto-model-router.test.js +99 -0
  33. package/dist/src/auto-model-router.test.js.map +1 -0
  34. package/dist/src/build-project-prompt.d.ts.map +1 -1
  35. package/dist/src/build-project-prompt.js +53 -17
  36. package/dist/src/build-project-prompt.js.map +1 -1
  37. package/dist/src/build-project-prompt.test.d.ts +2 -0
  38. package/dist/src/build-project-prompt.test.d.ts.map +1 -0
  39. package/dist/src/build-project-prompt.test.js +100 -0
  40. package/dist/src/build-project-prompt.test.js.map +1 -0
  41. package/dist/src/channel-config.d.ts +191 -1
  42. package/dist/src/channel-config.d.ts.map +1 -1
  43. package/dist/src/channel-config.js +83 -0
  44. package/dist/src/channel-config.js.map +1 -1
  45. package/dist/src/channel-config.test.d.ts +2 -0
  46. package/dist/src/channel-config.test.d.ts.map +1 -0
  47. package/dist/src/channel-config.test.js +56 -0
  48. package/dist/src/channel-config.test.js.map +1 -0
  49. package/dist/src/channel-disabled-account.test.d.ts +2 -0
  50. package/dist/src/channel-disabled-account.test.d.ts.map +1 -0
  51. package/dist/src/channel-disabled-account.test.js +44 -0
  52. package/dist/src/channel-disabled-account.test.js.map +1 -0
  53. package/dist/src/dispatch-mentioned-reply.d.ts +8 -0
  54. package/dist/src/dispatch-mentioned-reply.d.ts.map +1 -1
  55. package/dist/src/dispatch-mentioned-reply.js +42 -3
  56. package/dist/src/dispatch-mentioned-reply.js.map +1 -1
  57. package/dist/src/gateway-session-queue.d.ts +8 -0
  58. package/dist/src/gateway-session-queue.d.ts.map +1 -1
  59. package/dist/src/gateway-session-queue.js +3 -0
  60. package/dist/src/gateway-session-queue.js.map +1 -1
  61. package/dist/src/inbound-input-media.js +1 -1
  62. package/dist/src/inbound-input-media.js.map +1 -1
  63. package/dist/src/inbound-model.d.ts +22 -5
  64. package/dist/src/inbound-model.d.ts.map +1 -1
  65. package/dist/src/inbound-model.js +27 -11
  66. package/dist/src/inbound-model.js.map +1 -1
  67. package/dist/src/inbound-model.test.d.ts +2 -0
  68. package/dist/src/inbound-model.test.d.ts.map +1 -0
  69. package/dist/src/inbound-model.test.js +66 -0
  70. package/dist/src/inbound-model.test.js.map +1 -0
  71. package/dist/src/nas-volumes.d.ts +43 -0
  72. package/dist/src/nas-volumes.d.ts.map +1 -0
  73. package/dist/src/nas-volumes.js +191 -0
  74. package/dist/src/nas-volumes.js.map +1 -0
  75. package/dist/src/nas-volumes.test.d.ts +2 -0
  76. package/dist/src/nas-volumes.test.d.ts.map +1 -0
  77. package/dist/src/nas-volumes.test.js +111 -0
  78. package/dist/src/nas-volumes.test.js.map +1 -0
  79. package/dist/src/plan-tool-middleware.d.ts +5 -0
  80. package/dist/src/plan-tool-middleware.d.ts.map +1 -1
  81. package/dist/src/plan-tool-middleware.js +27 -0
  82. package/dist/src/plan-tool-middleware.js.map +1 -1
  83. package/dist/src/plan-tool-middleware.test.js +28 -0
  84. package/dist/src/plan-tool-middleware.test.js.map +1 -1
  85. package/dist/src/single-chat-no-reply-fallback.d.ts +14 -0
  86. package/dist/src/single-chat-no-reply-fallback.d.ts.map +1 -0
  87. package/dist/src/single-chat-no-reply-fallback.js +20 -0
  88. package/dist/src/single-chat-no-reply-fallback.js.map +1 -0
  89. package/dist/src/subagent-progress-hooks.d.ts +11 -0
  90. package/dist/src/subagent-progress-hooks.d.ts.map +1 -0
  91. package/dist/src/subagent-progress-hooks.js +41 -0
  92. package/dist/src/subagent-progress-hooks.js.map +1 -0
  93. package/dist/src/types.d.ts +26 -2
  94. package/dist/src/types.d.ts.map +1 -1
  95. package/dist/src/types.js.map +1 -1
  96. package/dist/src/user-facing-errors.d.ts +1 -0
  97. package/dist/src/user-facing-errors.d.ts.map +1 -1
  98. package/dist/src/user-facing-errors.js +7 -0
  99. package/dist/src/user-facing-errors.js.map +1 -1
  100. package/dist/src/user-facing-errors.test.js +8 -1
  101. package/dist/src/user-facing-errors.test.js.map +1 -1
  102. package/package.json +2 -2
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { isKnowledgeBaseByPath, isKnowledgeBaseByProjectIdOnly, } from "./agent-context-types.js";
5
5
  import { normalizeWorkspaceRelativeSegment, resolveLocalAbsolutePath, } from "./project-path-normalize.js";
6
+ import { normalizeNasVolumesForPrompt } from "./nas-volumes.js";
6
7
  const DEFAULT_SANDBOX_PREFIX = "/workspace";
7
8
  const DEFAULT_PROJECT_PROMPT_MAX_CHARS = 15_000;
8
9
  export function resolvePromptMaxChars(config) {
@@ -96,35 +97,70 @@ export function buildAgentContextPromptBlock(input) {
96
97
  const { agentContext, config, workspaceHostRoot, log } = input;
97
98
  const lines = [];
98
99
  const maxChars = resolvePromptMaxChars(config);
99
- const pathInfo = resolveSandboxProjectPath(agentContext.localRoot, config);
100
+ const pathInfo = agentContext.localRoot
101
+ ? resolveSandboxProjectPath(agentContext.localRoot, config)
102
+ : undefined;
103
+ const nasVolumes = normalizeNasVolumesForPrompt(agentContext.nasVolumes);
100
104
  lines.push("## 当前项目");
101
- lines.push("");
102
- lines.push(`- 项目根目录:\`${pathInfo.sandboxPath}\``);
103
- if (pathInfo.workspaceRelativeSegment) {
104
- lines.push(`- Workspace 相对路径:\`${pathInfo.workspaceRelativeSegment}\``);
105
- lines.push(`- 本条消息入站附件:\`${pathInfo.sandboxPath}/input\``);
106
- if (pathInfo.pathMode === "relative") {
107
- lines.push(`- 未配置 \`inboundMediaSandboxRootPrefix\`,默认采用 workspace 相对路径(\`./...\`)以兼容沙箱与非沙箱环境。`);
108
- lines.push(`- 若当前运行时要求绝对前缀路径,请在通道配置中显式设置 \`inboundMediaSandboxRootPrefix\`(例如 \`${DEFAULT_SANDBOX_PREFIX}\`)。`);
105
+ if (pathInfo) {
106
+ lines.push("");
107
+ lines.push(`- 项目根目录:\`${pathInfo.sandboxPath}\``);
108
+ if (pathInfo.workspaceRelativeSegment) {
109
+ lines.push(`- Workspace 相对路径:\`${pathInfo.workspaceRelativeSegment}\``);
110
+ lines.push(`- 本条消息入站附件:\`${pathInfo.sandboxPath}/input\``);
111
+ if (pathInfo.pathMode === "relative") {
112
+ lines.push(`- 未配置 \`inboundMediaSandboxRootPrefix\`,默认采用 workspace 相对路径(\`./...\`)以兼容沙箱与非沙箱环境。`);
113
+ lines.push(`- 若当前运行时要求绝对前缀路径,请在通道配置中显式设置 \`inboundMediaSandboxRootPrefix\`(例如 \`${DEFAULT_SANDBOX_PREFIX}\`)。`);
114
+ }
115
+ }
116
+ if (pathInfo.hostNote) {
117
+ lines.push(`- ${pathInfo.hostNote}`);
118
+ lines.push(`- 注意:host_absolute 模式下附件落盘路径为宿主机绝对路径,沙箱 Agent 可能无法读取`);
109
119
  }
110
120
  }
111
- if (pathInfo.hostNote) {
112
- lines.push(`- ${pathInfo.hostNote}`);
113
- lines.push(`- 注意:host_absolute 模式下附件落盘路径为宿主机绝对路径,沙箱 Agent 可能无法读取`);
121
+ if (nasVolumes.length > 0) {
122
+ lines.push("");
123
+ lines.push("### 本次会话文件目录");
124
+ lines.push("本次会话需要读取的文件位于以下已授权目录:");
125
+ for (const volume of nasVolumes) {
126
+ lines.push(`- \`${volume.sandboxDir}\`(${volume.mode === "ro" ? "只读" : "可读写"})`);
127
+ }
128
+ const preferredWritePath = pathInfo?.sandboxPath ?? nasVolumes.find((volume) => volume.mode === "rw")?.sandboxDir;
129
+ if (preferredWritePath) {
130
+ lines.push(`- 首选文件写入目录:\`${preferredWritePath}\`${pathInfo ? "(localRoot 优先)" : ""}`);
131
+ }
132
+ else {
133
+ lines.push("- 当前 NAS 目录均为只读;不要尝试向这些目录写入文件。");
134
+ }
114
135
  }
115
136
  lines.push("");
116
137
  lines.push("### 目录用途");
117
- lines.push("- **项目产出**:项目相关文件的创建与修改应保存在项目根目录或其子目录下;子目录结构由已启用的 skill 决定。");
138
+ if (pathInfo) {
139
+ lines.push("- **项目产出**:项目相关文件的创建与修改应保存在项目根目录或其子目录下;子目录结构由已启用的 skill 决定。");
140
+ }
141
+ else {
142
+ const writableNas = nasVolumes.find((volume) => volume.mode === "rw");
143
+ lines.push(writableNas
144
+ ? `- **项目产出**:项目相关文件优先保存到可写目录 \`${writableNas.sandboxDir}\` 或其子目录。`
145
+ : "- **项目产出**:当前未指定可写项目目录;除非用户另有明确要求,不要向只读 NAS 目录写入。");
146
+ }
118
147
  const kbLine = knowledgeBasePurposeLine(agentContext);
119
148
  if (kbLine) {
120
149
  lines.push(kbLine);
121
150
  }
122
151
  lines.push("");
123
152
  lines.push("### 操作约束");
124
- lines.push("- 仅在本项目根目录下处理项目相关文件;不要在 workspace 其他位置查找类似目录。");
125
- lines.push("- 项目根目录可能尚无文件或仅有部分内容,向用户如实说明即可,不要猜测其他路径。");
153
+ if (pathInfo) {
154
+ lines.push(nasVolumes.length > 0
155
+ ? "- 仅在本项目根目录及上述已授权 NAS 目录下处理项目相关文件;不要在 workspace 其他位置查找类似目录。"
156
+ : "- 仅在本项目根目录下处理项目相关文件;不要在 workspace 其他位置查找类似目录。");
157
+ lines.push("- 项目根目录可能尚无文件或仅有部分内容,向用户如实说明即可,不要猜测其他路径。");
158
+ }
159
+ else {
160
+ lines.push("- 仅在上述已授权 NAS 目录下读取或处理项目文件;不要在 workspace 其他位置查找类似目录。");
161
+ }
126
162
  lines.push('- 对用户统一称为「本项目」,不要提及 OpenClaw workspace 等实现细节。');
127
- if (workspaceHostRoot?.trim() && agentContext.localRoot.kind === "workspace_relative") {
163
+ if (workspaceHostRoot?.trim() && agentContext.localRoot?.kind === "workspace_relative") {
128
164
  try {
129
165
  resolveLocalAbsolutePath(agentContext.localRoot, workspaceHostRoot);
130
166
  }
@@ -141,7 +177,7 @@ export function buildAgentContextPromptBlock(input) {
141
177
  }
142
178
  return {
143
179
  block: lines.join("\n"),
144
- sandboxProjectPath: pathInfo.sandboxPath,
180
+ sandboxProjectPath: pathInfo?.sandboxPath,
145
181
  };
146
182
  }
147
183
  //# sourceMappingURL=build-project-prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-project-prompt.js","sourceRoot":"","sources":["../../src/build-project-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-project-prompt.js","sourceRoot":"","sources":["../../src/build-project-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACH,qBAAqB,EACrB,8BAA8B,GAEjC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,iCAAiC,EACjC,wBAAwB,GAE3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAGhE,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAC5C,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAEhD,MAAM,UAAU,qBAAqB,CAAC,MAAkB;IACpD,OAAO,OAAO,MAAM,CAAC,qBAAqB,KAAK,QAAQ,IAAI,MAAM,CAAC,qBAAqB,GAAG,CAAC;QACvF,CAAC,CAAC,MAAM,CAAC,qBAAqB;QAC9B,CAAC,CAAC,gCAAgC,CAAC;AAC3C,CAAC;AAcD,SAAS,aAAa,CAAC,MAAkB;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,6BAA6B,EAAE,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,yBAAyB,CACrC,SAAwB,EACxB,MAAkB;IAElB,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACrC,OAAO;YACH,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;YAClC,QAAQ,EACJ,6CAA6C;YACjD,QAAQ,EAAE,MAAM;SACnB,CAAC;IACN,CAAC;IACD,MAAM,GAAG,GAAG,iCAAiC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO;YACH,WAAW,EAAE,KAAK,GAAG,EAAE;YACvB,wBAAwB,EAAE,GAAG;YAC7B,QAAQ,EAAE,UAAU;SACvB,CAAC;IACN,CAAC;IACD,OAAO;QACH,WAAW,EAAE,GAAG,MAAM,IAAI,GAAG,EAAE;QAC/B,wBAAwB,EAAE,GAAG;QAC7B,QAAQ,EAAE,UAAU;KACvB,CAAC;AACN,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,GAAW;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC;AAC/C,CAAC;AASD;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAA6B;IACrE,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAE1B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IACtC,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,MAAM,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAkB;IACzC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,wBAAwB,CAAC,YAAsC;IACpE,MAAM,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC;IACtC,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAE1B,IAAI,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,CACH,6BAA6B,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;YACvE,mCAAmC,CACtC,CAAC;IACN,CAAC;IAED,IAAI,8BAA8B,CAAC,EAAE,CAAC,EAAE,CAAC;QACrC,OAAO,CACH,4BAA4B,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ;YACvD,mCAAmC,CACtC,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,CACH,oCAAoC,MAAM,UAAU;QACpD,mCAAmC,CACtC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAA8B;IACvE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS;QACnC,CAAC,CAAC,yBAAyB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3D,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,UAAU,GAAG,4BAA4B,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAEzE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,IAAI,QAAQ,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,sBAAsB,QAAQ,CAAC,wBAAwB,IAAI,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,WAAW,UAAU,CAAC,CAAC;YAC3D,IAAI,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CACN,oFAAoF,CACvF,CAAC;gBACF,KAAK,CAAC,IAAI,CACN,uEAAuE,sBAAsB,MAAM,CACtG,CAAC;YACN,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACrF,CAAC;QAED,MAAM,kBAAkB,GACpB,QAAQ,EAAE,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,UAAU,CAAC;QAC3F,IAAI,kBAAkB,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,gBAAgB,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,IAAI,QAAQ,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CACN,6DAA6D,CAChE,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CACN,WAAW;YACP,CAAC,CAAC,gCAAgC,WAAW,CAAC,UAAU,WAAW;YACnE,CAAC,CAAC,mDAAmD,CAC5D,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACtD,IAAI,MAAM,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,IAAI,QAAQ,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CACN,UAAU,CAAC,MAAM,GAAG,CAAC;YACjB,CAAC,CAAC,4DAA4D;YAC9D,CAAC,CAAC,+CAA+C,CACxD,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAE5D,IAAI,iBAAiB,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC,SAAS,EAAE,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACrF,IAAI,CAAC;YACD,wBAAwB,CAAC,YAAY,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,GAAG,EAAE,IAAI,EAAE,CAAC,kDAAkD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAED,MAAM,EAAE,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAI,EAAE,EAAE,CAAC;QACL,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,kBAAkB,EAAE,QAAQ,EAAE,WAAW;KAC5C,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=build-project-prompt.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-project-prompt.test.d.ts","sourceRoot":"","sources":["../../src/build-project-prompt.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,100 @@
1
+ import assert from "node:assert/strict";
2
+ import { describe, it } from "node:test";
3
+ import { buildAgentContextPromptBlock } from "./build-project-prompt.js";
4
+ const config = { baseUrl: "https://im.example.test" };
5
+ describe("buildAgentContextPromptBlock nasVolumes", () => {
6
+ it("lists NAS directories and selects the first rw directory without localRoot", () => {
7
+ const result = buildAgentContextPromptBlock({
8
+ config,
9
+ agentContext: {
10
+ nasVolumes: [
11
+ { realDir: "/data/touqian/a", dockerDir: "case/archive", mode: "ro" },
12
+ { realDir: "/data/touqian/b", dockerDir: "case/output", mode: "rw" },
13
+ ],
14
+ },
15
+ });
16
+ assert.match(result.block, /本次会话需要读取的文件位于以下已授权目录/);
17
+ assert.match(result.block, /`\/workspace\/case\/archive`(只读)/);
18
+ assert.match(result.block, /`\/workspace\/case\/output`(可读写)/);
19
+ assert.match(result.block, /首选文件写入目录:`\/workspace\/case\/output`/);
20
+ });
21
+ it("prefers localRoot as the write directory", () => {
22
+ const result = buildAgentContextPromptBlock({
23
+ config,
24
+ agentContext: {
25
+ localRoot: { kind: "workspace_relative", path: "project/main" },
26
+ nasVolumes: [{ realDir: "/data/touqian/b", dockerDir: "case/output", mode: "rw" }],
27
+ },
28
+ });
29
+ assert.match(result.block, /首选文件写入目录:`\.\/project\/main`(localRoot 优先)/);
30
+ });
31
+ it("keeps the legacy prompt unchanged when nasVolumes is empty", () => {
32
+ const base = {
33
+ config,
34
+ agentContext: { localRoot: { kind: "workspace_relative", path: "project/main" } },
35
+ };
36
+ const omitted = buildAgentContextPromptBlock(base);
37
+ const empty = buildAgentContextPromptBlock({
38
+ ...base,
39
+ agentContext: { ...base.agentContext, nasVolumes: [] },
40
+ });
41
+ assert.equal(empty.block, omitted.block);
42
+ assert.ok(empty.block.includes("仅在本项目根目录下处理项目相关文件"));
43
+ assert.ok(!empty.block.includes("NAS"));
44
+ });
45
+ it("renders the touqian workbench context with the rw input directory as output", () => {
46
+ const background = [
47
+ "用户从工作台待办进入,请结合以下背景信息协助用户处理待办:",
48
+ "待办内容:Rezpegaldesleukin-Nektar Therapeutics-特应性皮炎,斑秃-初级BD快核",
49
+ "待办分类:产品引进-投前",
50
+ "分组名称:无",
51
+ "业务类型:touqian",
52
+ "业务ID:3090270000000000307",
53
+ "引用内容:使用bd-fast-review-revision这个skill进行处理,按BD首轮复核指示函的事项描述进行首轮核验。",
54
+ "引用技能:这是投前报告修订业务,处理待办的时候需要使用bd-fast-review-revision(skill)处理待办的流程",
55
+ ].join("\n");
56
+ const result = buildAgentContextPromptBlock({
57
+ config,
58
+ agentContext: {
59
+ nasVolumes: [
60
+ {
61
+ realDir: "/data/touqian/CP202205250005/deliverables",
62
+ dockerDir: "touqian/2026/08/3090270000000000307/CP202205250005/deliverables",
63
+ mode: "ro",
64
+ },
65
+ {
66
+ realDir: "/data/touqian/CP202205250005/sequences/0000",
67
+ dockerDir: "touqian/2026/08/3090270000000000307/CP202205250005/sequences/0000",
68
+ mode: "ro",
69
+ },
70
+ {
71
+ realDir: "/data/touqian/CP202205250005/sequences/0001/input",
72
+ dockerDir: "touqian/2026/08/3090270000000000307/CP202205250005/sequences/0001/input",
73
+ mode: "rw",
74
+ },
75
+ ],
76
+ background,
77
+ },
78
+ });
79
+ assert.equal(result.block, `## 当前项目
80
+
81
+ ### 本次会话文件目录
82
+ 本次会话需要读取的文件位于以下已授权目录:
83
+ - \`/workspace/touqian/2026/08/3090270000000000307/CP202205250005/deliverables\`(只读)
84
+ - \`/workspace/touqian/2026/08/3090270000000000307/CP202205250005/sequences/0000\`(只读)
85
+ - \`/workspace/touqian/2026/08/3090270000000000307/CP202205250005/sequences/0001/input\`(可读写)
86
+ - 首选文件写入目录:\`/workspace/touqian/2026/08/3090270000000000307/CP202205250005/sequences/0001/input\`
87
+
88
+ ### 目录用途
89
+ - **项目产出**:项目相关文件优先保存到可写目录 \`/workspace/touqian/2026/08/3090270000000000307/CP202205250005/sequences/0001/input\` 或其子目录。
90
+
91
+ ### 操作约束
92
+ - 仅在上述已授权 NAS 目录下读取或处理项目文件;不要在 workspace 其他位置查找类似目录。
93
+ - 对用户统一称为「本项目」,不要提及 OpenClaw workspace 等实现细节。
94
+
95
+ ## 项目背景
96
+
97
+ ${background}`);
98
+ });
99
+ });
100
+ //# sourceMappingURL=build-project-prompt.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-project-prompt.test.js","sourceRoot":"","sources":["../../src/build-project-prompt.test.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  import type { OpenClawConfig } from "openclaw/plugin-sdk";
5
5
  import { z } from "zod";
6
6
  import type { OpenClawChatType } from "./inbound-chat-type.js";
7
- import type { XgImConfig } from "./types.js";
7
+ import type { XgImConfig, AutoModelRoutingConfig } from "./types.js";
8
8
  export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
9
9
  robotKey: z.ZodOptional<z.ZodString>;
10
10
  appKey: z.ZodOptional<z.ZodString>;
@@ -29,6 +29,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
29
29
  maxPendingMessages: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
30
30
  syncServiceBaseUrl: z.ZodOptional<z.ZodString>;
31
31
  projectPromptMaxChars: z.ZodOptional<z.ZodNumber>;
32
+ nasVolumeAllowedRoots: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
32
33
  blockStreaming: z.ZodOptional<z.ZodBoolean>;
33
34
  blockStreamingCoalesce: z.ZodOptional<z.ZodObject<{
34
35
  minChars: z.ZodOptional<z.ZodNumber>;
@@ -46,6 +47,36 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
46
47
  deliverModelFallbackNotice: z.ZodOptional<z.ZodBoolean>;
47
48
  deliverSegmentBuffer: z.ZodOptional<z.ZodBoolean>;
48
49
  deliverPartialSnapshot: z.ZodOptional<z.ZodBoolean>;
50
+ autoModelRouting: z.ZodOptional<z.ZodObject<{
51
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
52
+ version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
53
+ simpleModel: z.ZodOptional<z.ZodString>;
54
+ standardModel: z.ZodOptional<z.ZodString>;
55
+ complexModel: z.ZodOptional<z.ZodString>;
56
+ criticalModel: z.ZodOptional<z.ZodString>;
57
+ /** 指定模型模式的模型默认推理等级映射(key 为完整 model ref)。 */
58
+ thinkingDefaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["off", "minimal", "low", "medium", "high", "xhigh", "adaptive", "max"]>>>;
59
+ /** 允许启用自动路由的 Agent ID 白名单;缺省/空表示不启用任何 Agent。 */
60
+ agentAllowlist: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
61
+ }, "strip", z.ZodTypeAny, {
62
+ enabled: boolean;
63
+ version: string;
64
+ agentAllowlist: string[];
65
+ simpleModel?: string | undefined;
66
+ standardModel?: string | undefined;
67
+ complexModel?: string | undefined;
68
+ criticalModel?: string | undefined;
69
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
70
+ }, {
71
+ enabled?: boolean | undefined;
72
+ version?: string | undefined;
73
+ simpleModel?: string | undefined;
74
+ standardModel?: string | undefined;
75
+ complexModel?: string | undefined;
76
+ criticalModel?: string | undefined;
77
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
78
+ agentAllowlist?: string[] | undefined;
79
+ }>>;
49
80
  accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
50
81
  robotKey: z.ZodOptional<z.ZodString>;
51
82
  appKey: z.ZodOptional<z.ZodString>;
@@ -63,6 +94,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
63
94
  maxPendingMessages: z.ZodOptional<z.ZodNumber>;
64
95
  syncServiceBaseUrl: z.ZodOptional<z.ZodString>;
65
96
  projectPromptMaxChars: z.ZodOptional<z.ZodNumber>;
97
+ nasVolumeAllowedRoots: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
66
98
  /**
67
99
  * 为 false 时关闭:assistant 在 tool 前的 text 块不再提前 HTTP deliver(整轮结束才发)。
68
100
  * 未配置时默认开启。
@@ -92,6 +124,37 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
92
124
  * 未配置且 blockStreaming 开启时默认开启。
93
125
  */
94
126
  deliverSegmentBuffer: z.ZodOptional<z.ZodBoolean>;
127
+ /** Auto Model Routing(模型 + 推理等级自动路由);默认关闭。 */
128
+ autoModelRouting: z.ZodOptional<z.ZodObject<{
129
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
130
+ version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
131
+ simpleModel: z.ZodOptional<z.ZodString>;
132
+ standardModel: z.ZodOptional<z.ZodString>;
133
+ complexModel: z.ZodOptional<z.ZodString>;
134
+ criticalModel: z.ZodOptional<z.ZodString>;
135
+ /** 指定模型模式的模型默认推理等级映射(key 为完整 model ref)。 */
136
+ thinkingDefaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<["off", "minimal", "low", "medium", "high", "xhigh", "adaptive", "max"]>>>;
137
+ /** 允许启用自动路由的 Agent ID 白名单;缺省/空表示不启用任何 Agent。 */
138
+ agentAllowlist: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
139
+ }, "strip", z.ZodTypeAny, {
140
+ enabled: boolean;
141
+ version: string;
142
+ agentAllowlist: string[];
143
+ simpleModel?: string | undefined;
144
+ standardModel?: string | undefined;
145
+ complexModel?: string | undefined;
146
+ criticalModel?: string | undefined;
147
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
148
+ }, {
149
+ enabled?: boolean | undefined;
150
+ version?: string | undefined;
151
+ simpleModel?: string | undefined;
152
+ standardModel?: string | undefined;
153
+ complexModel?: string | undefined;
154
+ criticalModel?: string | undefined;
155
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
156
+ agentAllowlist?: string[] | undefined;
157
+ }>>;
95
158
  }, "strip", z.ZodTypeAny, {
96
159
  agentId: string;
97
160
  groupPolicy: "open" | "mention";
@@ -108,6 +171,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
108
171
  maxPendingMessages?: number | undefined;
109
172
  syncServiceBaseUrl?: string | undefined;
110
173
  projectPromptMaxChars?: number | undefined;
174
+ nasVolumeAllowedRoots?: string[] | undefined;
111
175
  blockStreaming?: boolean | undefined;
112
176
  blockStreamingCoalesce?: {
113
177
  minChars?: number | undefined;
@@ -116,6 +180,16 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
116
180
  } | undefined;
117
181
  deliverModelFallbackNotice?: boolean | undefined;
118
182
  deliverSegmentBuffer?: boolean | undefined;
183
+ autoModelRouting?: {
184
+ enabled: boolean;
185
+ version: string;
186
+ agentAllowlist: string[];
187
+ simpleModel?: string | undefined;
188
+ standardModel?: string | undefined;
189
+ complexModel?: string | undefined;
190
+ criticalModel?: string | undefined;
191
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
192
+ } | undefined;
119
193
  }, {
120
194
  robotKey?: string | undefined;
121
195
  appKey?: string | undefined;
@@ -132,6 +206,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
132
206
  maxPendingMessages?: number | undefined;
133
207
  syncServiceBaseUrl?: string | undefined;
134
208
  projectPromptMaxChars?: number | undefined;
209
+ nasVolumeAllowedRoots?: string[] | undefined;
135
210
  blockStreaming?: boolean | undefined;
136
211
  blockStreamingCoalesce?: {
137
212
  minChars?: number | undefined;
@@ -140,6 +215,16 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
140
215
  } | undefined;
141
216
  deliverModelFallbackNotice?: boolean | undefined;
142
217
  deliverSegmentBuffer?: boolean | undefined;
218
+ autoModelRouting?: {
219
+ enabled?: boolean | undefined;
220
+ version?: string | undefined;
221
+ simpleModel?: string | undefined;
222
+ standardModel?: string | undefined;
223
+ complexModel?: string | undefined;
224
+ criticalModel?: string | undefined;
225
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
226
+ agentAllowlist?: string[] | undefined;
227
+ } | undefined;
143
228
  }>>>;
144
229
  }, "strip", z.ZodTypeAny, {
145
230
  agentId: string;
@@ -169,6 +254,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
169
254
  maxPendingMessages?: number | undefined;
170
255
  syncServiceBaseUrl?: string | undefined;
171
256
  projectPromptMaxChars?: number | undefined;
257
+ nasVolumeAllowedRoots?: string[] | undefined;
172
258
  blockStreaming?: boolean | undefined;
173
259
  blockStreamingCoalesce?: {
174
260
  minChars?: number | undefined;
@@ -177,6 +263,16 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
177
263
  } | undefined;
178
264
  deliverModelFallbackNotice?: boolean | undefined;
179
265
  deliverSegmentBuffer?: boolean | undefined;
266
+ autoModelRouting?: {
267
+ enabled: boolean;
268
+ version: string;
269
+ agentAllowlist: string[];
270
+ simpleModel?: string | undefined;
271
+ standardModel?: string | undefined;
272
+ complexModel?: string | undefined;
273
+ criticalModel?: string | undefined;
274
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
275
+ } | undefined;
180
276
  }> | undefined;
181
277
  robotKey?: string | undefined;
182
278
  appKey?: string | undefined;
@@ -190,6 +286,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
190
286
  systemPrompt?: string | undefined;
191
287
  syncServiceBaseUrl?: string | undefined;
192
288
  projectPromptMaxChars?: number | undefined;
289
+ nasVolumeAllowedRoots?: string[] | undefined;
193
290
  blockStreaming?: boolean | undefined;
194
291
  blockStreamingCoalesce?: {
195
292
  minChars?: number | undefined;
@@ -199,6 +296,16 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
199
296
  deliverModelFallbackNotice?: boolean | undefined;
200
297
  deliverSegmentBuffer?: boolean | undefined;
201
298
  deliverPartialSnapshot?: boolean | undefined;
299
+ autoModelRouting?: {
300
+ enabled: boolean;
301
+ version: string;
302
+ agentAllowlist: string[];
303
+ simpleModel?: string | undefined;
304
+ standardModel?: string | undefined;
305
+ complexModel?: string | undefined;
306
+ criticalModel?: string | undefined;
307
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
308
+ } | undefined;
202
309
  }, {
203
310
  baseUrl: string;
204
311
  accounts?: Record<string, {
@@ -217,6 +324,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
217
324
  maxPendingMessages?: number | undefined;
218
325
  syncServiceBaseUrl?: string | undefined;
219
326
  projectPromptMaxChars?: number | undefined;
327
+ nasVolumeAllowedRoots?: string[] | undefined;
220
328
  blockStreaming?: boolean | undefined;
221
329
  blockStreamingCoalesce?: {
222
330
  minChars?: number | undefined;
@@ -225,6 +333,16 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
225
333
  } | undefined;
226
334
  deliverModelFallbackNotice?: boolean | undefined;
227
335
  deliverSegmentBuffer?: boolean | undefined;
336
+ autoModelRouting?: {
337
+ enabled?: boolean | undefined;
338
+ version?: string | undefined;
339
+ simpleModel?: string | undefined;
340
+ standardModel?: string | undefined;
341
+ complexModel?: string | undefined;
342
+ criticalModel?: string | undefined;
343
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
344
+ agentAllowlist?: string[] | undefined;
345
+ } | undefined;
228
346
  }> | undefined;
229
347
  robotKey?: string | undefined;
230
348
  appKey?: string | undefined;
@@ -248,6 +366,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
248
366
  maxPendingMessages?: number | undefined;
249
367
  syncServiceBaseUrl?: string | undefined;
250
368
  projectPromptMaxChars?: number | undefined;
369
+ nasVolumeAllowedRoots?: string[] | undefined;
251
370
  blockStreaming?: boolean | undefined;
252
371
  blockStreamingCoalesce?: {
253
372
  minChars?: number | undefined;
@@ -257,6 +376,16 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
257
376
  deliverModelFallbackNotice?: boolean | undefined;
258
377
  deliverSegmentBuffer?: boolean | undefined;
259
378
  deliverPartialSnapshot?: boolean | undefined;
379
+ autoModelRouting?: {
380
+ enabled?: boolean | undefined;
381
+ version?: string | undefined;
382
+ simpleModel?: string | undefined;
383
+ standardModel?: string | undefined;
384
+ complexModel?: string | undefined;
385
+ criticalModel?: string | undefined;
386
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
387
+ agentAllowlist?: string[] | undefined;
388
+ } | undefined;
260
389
  }>, {
261
390
  agentId: string;
262
391
  baseUrl: string;
@@ -285,6 +414,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
285
414
  maxPendingMessages?: number | undefined;
286
415
  syncServiceBaseUrl?: string | undefined;
287
416
  projectPromptMaxChars?: number | undefined;
417
+ nasVolumeAllowedRoots?: string[] | undefined;
288
418
  blockStreaming?: boolean | undefined;
289
419
  blockStreamingCoalesce?: {
290
420
  minChars?: number | undefined;
@@ -293,6 +423,16 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
293
423
  } | undefined;
294
424
  deliverModelFallbackNotice?: boolean | undefined;
295
425
  deliverSegmentBuffer?: boolean | undefined;
426
+ autoModelRouting?: {
427
+ enabled: boolean;
428
+ version: string;
429
+ agentAllowlist: string[];
430
+ simpleModel?: string | undefined;
431
+ standardModel?: string | undefined;
432
+ complexModel?: string | undefined;
433
+ criticalModel?: string | undefined;
434
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
435
+ } | undefined;
296
436
  }> | undefined;
297
437
  robotKey?: string | undefined;
298
438
  appKey?: string | undefined;
@@ -306,6 +446,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
306
446
  systemPrompt?: string | undefined;
307
447
  syncServiceBaseUrl?: string | undefined;
308
448
  projectPromptMaxChars?: number | undefined;
449
+ nasVolumeAllowedRoots?: string[] | undefined;
309
450
  blockStreaming?: boolean | undefined;
310
451
  blockStreamingCoalesce?: {
311
452
  minChars?: number | undefined;
@@ -315,6 +456,16 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
315
456
  deliverModelFallbackNotice?: boolean | undefined;
316
457
  deliverSegmentBuffer?: boolean | undefined;
317
458
  deliverPartialSnapshot?: boolean | undefined;
459
+ autoModelRouting?: {
460
+ enabled: boolean;
461
+ version: string;
462
+ agentAllowlist: string[];
463
+ simpleModel?: string | undefined;
464
+ standardModel?: string | undefined;
465
+ complexModel?: string | undefined;
466
+ criticalModel?: string | undefined;
467
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
468
+ } | undefined;
318
469
  }, {
319
470
  baseUrl: string;
320
471
  accounts?: Record<string, {
@@ -333,6 +484,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
333
484
  maxPendingMessages?: number | undefined;
334
485
  syncServiceBaseUrl?: string | undefined;
335
486
  projectPromptMaxChars?: number | undefined;
487
+ nasVolumeAllowedRoots?: string[] | undefined;
336
488
  blockStreaming?: boolean | undefined;
337
489
  blockStreamingCoalesce?: {
338
490
  minChars?: number | undefined;
@@ -341,6 +493,16 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
341
493
  } | undefined;
342
494
  deliverModelFallbackNotice?: boolean | undefined;
343
495
  deliverSegmentBuffer?: boolean | undefined;
496
+ autoModelRouting?: {
497
+ enabled?: boolean | undefined;
498
+ version?: string | undefined;
499
+ simpleModel?: string | undefined;
500
+ standardModel?: string | undefined;
501
+ complexModel?: string | undefined;
502
+ criticalModel?: string | undefined;
503
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
504
+ agentAllowlist?: string[] | undefined;
505
+ } | undefined;
344
506
  }> | undefined;
345
507
  robotKey?: string | undefined;
346
508
  appKey?: string | undefined;
@@ -364,6 +526,7 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
364
526
  maxPendingMessages?: number | undefined;
365
527
  syncServiceBaseUrl?: string | undefined;
366
528
  projectPromptMaxChars?: number | undefined;
529
+ nasVolumeAllowedRoots?: string[] | undefined;
367
530
  blockStreaming?: boolean | undefined;
368
531
  blockStreamingCoalesce?: {
369
532
  minChars?: number | undefined;
@@ -373,6 +536,16 @@ export declare const XgImConfigSchema: z.ZodEffects<z.ZodObject<{
373
536
  deliverModelFallbackNotice?: boolean | undefined;
374
537
  deliverSegmentBuffer?: boolean | undefined;
375
538
  deliverPartialSnapshot?: boolean | undefined;
539
+ autoModelRouting?: {
540
+ enabled?: boolean | undefined;
541
+ version?: string | undefined;
542
+ simpleModel?: string | undefined;
543
+ standardModel?: string | undefined;
544
+ complexModel?: string | undefined;
545
+ criticalModel?: string | undefined;
546
+ thinkingDefaults?: Record<string, "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | "max"> | undefined;
547
+ agentAllowlist?: string[] | undefined;
548
+ } | undefined;
376
549
  }>;
377
550
  /** 将 `robotKey`(推荐)或旧字段 `appKey` 归一为鉴权可用的密钥(两字段同步为同一非空值)。 */
378
551
  export declare function normalizeRobotKey<T extends {
@@ -414,6 +587,23 @@ export declare function resolveDispatchOpenClawCfg(cfg: OpenClawConfig, config:
414
587
  */
415
588
  export declare function resolveXgImGroupSystemPrompt(cfg: OpenClawConfig, accountId: string): string | undefined;
416
589
  export declare function isConfigured(cfg: OpenClawConfig): boolean;
590
+ /** Auto Model Routing 运行时配置(归一默认值)。 */
591
+ export declare function resolveAutoModelRoutingConfig(config: XgImConfig): AutoModelRoutingConfig;
592
+ /**
593
+ * Auto 路由是否对本 Agent 生效:enabled=true 且 Agent 在白名单。
594
+ * allowlist 缺省/为空时不启用任何 Agent(安全默认,避免未经灰度就自动路由)。
595
+ */
596
+ export declare function isAutoModelRoutingEnabled(cfg: AutoModelRoutingConfig, agentId: string): boolean;
597
+ /**
598
+ * 解析 Auto Router 的四模型槽位;任一槽位缺失即视为未就绪(返回 undefined,
599
+ * 由调用方回退 Agent 默认配置,绝不把半套配置用于路由)。
600
+ */
601
+ export declare function resolveAutoModelRoutingSlots(cfg: AutoModelRoutingConfig): {
602
+ simpleModel: string;
603
+ standardModel: string;
604
+ complexModel: string;
605
+ criticalModel: string;
606
+ } | undefined;
417
607
  export declare function resolveInboundCommandAuthorized(rt: unknown, cfg: OpenClawConfig, p: {
418
608
  accountId: string;
419
609
  senderId: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"channel-config.d.ts","sourceRoot":"","sources":["../../src/channel-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA8C7C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAjCzB,gCAAgC;;;;;;;;;;;;;;QAchC;;;WAGG;;QAEH,8DAA8D;;;;;;;;;;;;;;QAE9D;;;WAGG;;QAEH;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFD,CAAC;AAEP,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAIhG;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,CA8BxF;AAED,gDAAgD;AAChD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE1E;AAED,iDAAiD;AACjD,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEhF;AAED,kDAAkD;AAClD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEzE;AAED,8DAA8D;AAC9D,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE3E;AAED;;;;GAIG;AACH,eAAO,MAAM,mCAAmC;;;;CAItC,CAAC;AAEX,6DAA6D;AAC7D,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,qBAAqB,EAAE,OAAO,CAAA;CAAE,CAExG;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,cAAc,CAsBlG;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAmBvG;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAOzD;AAUD,wBAAgB,+BAA+B,CAC3C,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,cAAc,EACnB,CAAC,EAAE;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,iEAAiE;IACjE,QAAQ,EAAE,gBAAgB,CAAC;CAC9B,GACF,OAAO,CA6BT"}
1
+ {"version":3,"file":"channel-config.d.ts","sourceRoot":"","sources":["../../src/channel-config.ts"],"names":[],"mappings":"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"}