@zhin.js/agent 0.3.0 → 0.3.1

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 (193) hide show
  1. package/README.md +11 -12
  2. package/lib/agent-prompt/resolver.d.ts +2 -1
  3. package/lib/agent-prompt/resolver.d.ts.map +1 -1
  4. package/lib/agent-prompt/resolver.js +8 -3
  5. package/lib/agent-prompt/resolver.js.map +1 -1
  6. package/lib/assistant/home-policy.js +20 -21
  7. package/lib/assistant/home-policy.js.map +1 -1
  8. package/lib/assistant/home-tools.d.ts.map +1 -1
  9. package/lib/assistant/home-tools.js +5 -2
  10. package/lib/assistant/home-tools.js.map +1 -1
  11. package/lib/bootstrap.d.ts +12 -0
  12. package/lib/bootstrap.d.ts.map +1 -1
  13. package/lib/bootstrap.js +14 -0
  14. package/lib/bootstrap.js.map +1 -1
  15. package/lib/builtin/analyze-media-tool.d.ts.map +1 -1
  16. package/lib/builtin/analyze-media-tool.js +11 -5
  17. package/lib/builtin/analyze-media-tool.js.map +1 -1
  18. package/lib/builtin/bash-tool.d.ts +4 -2
  19. package/lib/builtin/bash-tool.d.ts.map +1 -1
  20. package/lib/builtin/bash-tool.js +17 -14
  21. package/lib/builtin/bash-tool.js.map +1 -1
  22. package/lib/builtin/generate-image-tool.d.ts +1 -1
  23. package/lib/builtin/generate-image-tool.d.ts.map +1 -1
  24. package/lib/builtin/generate-image-tool.js +3 -3
  25. package/lib/builtin/generate-image-tool.js.map +1 -1
  26. package/lib/builtin/grep-tool.d.ts.map +1 -1
  27. package/lib/builtin/grep-tool.js +4 -1
  28. package/lib/builtin/grep-tool.js.map +1 -1
  29. package/lib/builtin/read-file-tool.d.ts.map +1 -1
  30. package/lib/builtin/read-file-tool.js +4 -4
  31. package/lib/builtin/read-file-tool.js.map +1 -1
  32. package/lib/builtin/web-fetch-tool.d.ts +1 -1
  33. package/lib/builtin/web-fetch-tool.d.ts.map +1 -1
  34. package/lib/builtin/web-fetch-tool.js +2 -25
  35. package/lib/builtin/web-fetch-tool.js.map +1 -1
  36. package/lib/builtin-tools.js +1 -1
  37. package/lib/builtin-tools.js.map +1 -1
  38. package/lib/config/fix-ai-config.js +1 -1
  39. package/lib/config/normalize-ai-config.d.ts +4 -1
  40. package/lib/config/normalize-ai-config.d.ts.map +1 -1
  41. package/lib/config/normalize-ai-config.js +50 -7
  42. package/lib/config/normalize-ai-config.js.map +1 -1
  43. package/lib/config/provider-instance.d.ts.map +1 -1
  44. package/lib/config/provider-instance.js +2 -51
  45. package/lib/config/provider-instance.js.map +1 -1
  46. package/lib/config/types.d.ts +8 -4
  47. package/lib/config/types.d.ts.map +1 -1
  48. package/lib/config/types.js.map +1 -1
  49. package/lib/config/validate-ai-config.d.ts.map +1 -1
  50. package/lib/config/validate-ai-config.js +12 -2
  51. package/lib/config/validate-ai-config.js.map +1 -1
  52. package/lib/deferred-worker-runner.d.ts.map +1 -1
  53. package/lib/deferred-worker-runner.js +39 -12
  54. package/lib/deferred-worker-runner.js.map +1 -1
  55. package/lib/index.d.ts +5 -1
  56. package/lib/index.d.ts.map +1 -1
  57. package/lib/index.js +3 -1
  58. package/lib/index.js.map +1 -1
  59. package/lib/init/introspection-collectors.d.ts +1 -1
  60. package/lib/init/introspection-collectors.d.ts.map +1 -1
  61. package/lib/init/introspection-collectors.js.map +1 -1
  62. package/lib/init/introspection-commands-format.d.ts +1 -1
  63. package/lib/init/introspection-commands-format.d.ts.map +1 -1
  64. package/lib/init/introspection-commands-format.js.map +1 -1
  65. package/lib/init/register-agent-mesh-mcp.d.ts.map +1 -1
  66. package/lib/init/register-agent-mesh-mcp.js +18 -2
  67. package/lib/init/register-agent-mesh-mcp.js.map +1 -1
  68. package/lib/init/register-ai-service.d.ts.map +1 -1
  69. package/lib/init/register-ai-service.js +2 -1
  70. package/lib/init/register-ai-service.js.map +1 -1
  71. package/lib/init/register-builtin-tools.d.ts.map +1 -1
  72. package/lib/init/register-builtin-tools.js +7 -5
  73. package/lib/init/register-builtin-tools.js.map +1 -1
  74. package/lib/init/register-introspection-commands.d.ts.map +1 -1
  75. package/lib/init/register-introspection-commands.js +8 -9
  76. package/lib/init/register-introspection-commands.js.map +1 -1
  77. package/lib/init/register-owner-approve-commands.d.ts.map +1 -1
  78. package/lib/init/register-owner-approve-commands.js +16 -22
  79. package/lib/init/register-owner-approve-commands.js.map +1 -1
  80. package/lib/mcp-client/bridge.d.ts +4 -4
  81. package/lib/mcp-client/bridge.d.ts.map +1 -1
  82. package/lib/mcp-client/bridge.js.map +1 -1
  83. package/lib/mcp-server/agent-mesh-tools.js +1 -1
  84. package/lib/mcp-server/agent-mesh-tools.js.map +1 -1
  85. package/lib/media/media-capabilities.d.ts.map +1 -1
  86. package/lib/media/media-capabilities.js +5 -7
  87. package/lib/media/media-capabilities.js.map +1 -1
  88. package/lib/media/resolve-config.d.ts.map +1 -1
  89. package/lib/media/resolve-config.js +5 -7
  90. package/lib/media/resolve-config.js.map +1 -1
  91. package/lib/memory-layers.d.ts.map +1 -1
  92. package/lib/memory-layers.js +10 -15
  93. package/lib/memory-layers.js.map +1 -1
  94. package/lib/orchestrator/owner-confirm-orchestration.d.ts +1 -1
  95. package/lib/orchestrator/owner-confirm-orchestration.d.ts.map +1 -1
  96. package/lib/orchestrator/owner-confirm-orchestration.js +3 -9
  97. package/lib/orchestrator/owner-confirm-orchestration.js.map +1 -1
  98. package/lib/plugin-ai-hook-bus.d.ts.map +1 -1
  99. package/lib/plugin-ai-hook-bus.js +2 -7
  100. package/lib/plugin-ai-hook-bus.js.map +1 -1
  101. package/lib/security/audit-logger.js +5 -5
  102. package/lib/security/audit-logger.js.map +1 -1
  103. package/lib/security/dangerous-tool-policy.d.ts +4 -0
  104. package/lib/security/dangerous-tool-policy.d.ts.map +1 -1
  105. package/lib/security/dangerous-tool-policy.js +42 -40
  106. package/lib/security/dangerous-tool-policy.js.map +1 -1
  107. package/lib/security/exec-policy.d.ts.map +1 -1
  108. package/lib/security/exec-policy.js +8 -43
  109. package/lib/security/exec-policy.js.map +1 -1
  110. package/lib/security/file-policy.d.ts +8 -0
  111. package/lib/security/file-policy.d.ts.map +1 -1
  112. package/lib/security/file-policy.js +48 -12
  113. package/lib/security/file-policy.js.map +1 -1
  114. package/lib/security/file-role-policy.d.ts +6 -3
  115. package/lib/security/file-role-policy.d.ts.map +1 -1
  116. package/lib/security/file-role-policy.js +28 -5
  117. package/lib/security/file-role-policy.js.map +1 -1
  118. package/lib/security/index.d.ts +2 -0
  119. package/lib/security/index.d.ts.map +1 -1
  120. package/lib/security/index.js +2 -0
  121. package/lib/security/index.js.map +1 -1
  122. package/lib/security/network-policy.d.ts +41 -0
  123. package/lib/security/network-policy.d.ts.map +1 -0
  124. package/lib/security/network-policy.js +158 -0
  125. package/lib/security/network-policy.js.map +1 -0
  126. package/lib/security/sandbox.d.ts +1 -0
  127. package/lib/security/sandbox.d.ts.map +1 -1
  128. package/lib/security/sandbox.js +7 -70
  129. package/lib/security/sandbox.js.map +1 -1
  130. package/lib/service.d.ts.map +1 -1
  131. package/lib/service.js +3 -4
  132. package/lib/service.js.map +1 -1
  133. package/lib/types/disposable.d.ts +5 -0
  134. package/lib/types/disposable.d.ts.map +1 -0
  135. package/lib/types/disposable.js +2 -0
  136. package/lib/types/disposable.js.map +1 -0
  137. package/lib/zhin-agent/agent-loop-standalone.d.ts +11 -0
  138. package/lib/zhin-agent/agent-loop-standalone.d.ts.map +1 -1
  139. package/lib/zhin-agent/agent-loop-standalone.js +26 -7
  140. package/lib/zhin-agent/agent-loop-standalone.js.map +1 -1
  141. package/lib/zhin-agent/agent-loop-turn.d.ts.map +1 -1
  142. package/lib/zhin-agent/agent-loop-turn.js +76 -9
  143. package/lib/zhin-agent/agent-loop-turn.js.map +1 -1
  144. package/lib/zhin-agent/agents-instruction.d.ts +15 -0
  145. package/lib/zhin-agent/agents-instruction.d.ts.map +1 -0
  146. package/lib/zhin-agent/agents-instruction.js +98 -0
  147. package/lib/zhin-agent/agents-instruction.js.map +1 -0
  148. package/lib/zhin-agent/compaction-runtime.d.ts.map +1 -1
  149. package/lib/zhin-agent/compaction-runtime.js +7 -1
  150. package/lib/zhin-agent/compaction-runtime.js.map +1 -1
  151. package/lib/zhin-agent/config.d.ts +28 -3
  152. package/lib/zhin-agent/config.d.ts.map +1 -1
  153. package/lib/zhin-agent/config.js +53 -2
  154. package/lib/zhin-agent/config.js.map +1 -1
  155. package/lib/zhin-agent/index.d.ts +3 -0
  156. package/lib/zhin-agent/index.d.ts.map +1 -1
  157. package/lib/zhin-agent/index.js +31 -28
  158. package/lib/zhin-agent/index.js.map +1 -1
  159. package/lib/zhin-agent/model-harness.js +1 -1
  160. package/lib/zhin-agent/phase-trace.d.ts +12 -1
  161. package/lib/zhin-agent/phase-trace.d.ts.map +1 -1
  162. package/lib/zhin-agent/phase-trace.js +25 -0
  163. package/lib/zhin-agent/phase-trace.js.map +1 -1
  164. package/lib/zhin-agent/prompt-assembly.d.ts +11 -2
  165. package/lib/zhin-agent/prompt-assembly.d.ts.map +1 -1
  166. package/lib/zhin-agent/prompt-assembly.js +34 -8
  167. package/lib/zhin-agent/prompt-assembly.js.map +1 -1
  168. package/lib/zhin-agent/prompt-trace.d.ts +20 -0
  169. package/lib/zhin-agent/prompt-trace.d.ts.map +1 -0
  170. package/lib/zhin-agent/prompt-trace.js +72 -0
  171. package/lib/zhin-agent/prompt-trace.js.map +1 -0
  172. package/lib/zhin-agent/prompt.d.ts +23 -1
  173. package/lib/zhin-agent/prompt.d.ts.map +1 -1
  174. package/lib/zhin-agent/prompt.js +87 -44
  175. package/lib/zhin-agent/prompt.js.map +1 -1
  176. package/lib/zhin-agent/tool-catalog.d.ts.map +1 -1
  177. package/lib/zhin-agent/tool-catalog.js +9 -1
  178. package/lib/zhin-agent/tool-catalog.js.map +1 -1
  179. package/lib/zhin-agent/turn-pipeline.d.ts.map +1 -1
  180. package/lib/zhin-agent/turn-pipeline.js +44 -11
  181. package/lib/zhin-agent/turn-pipeline.js.map +1 -1
  182. package/lib/zhin-agent/turn-user-message.d.ts +4 -1
  183. package/lib/zhin-agent/turn-user-message.d.ts.map +1 -1
  184. package/lib/zhin-agent/turn-user-message.js +39 -0
  185. package/lib/zhin-agent/turn-user-message.js.map +1 -1
  186. package/lib/zhin-agent/workspace-prompt.d.ts +10 -0
  187. package/lib/zhin-agent/workspace-prompt.d.ts.map +1 -0
  188. package/lib/zhin-agent/workspace-prompt.js +55 -0
  189. package/lib/zhin-agent/workspace-prompt.js.map +1 -0
  190. package/lib/zhin-agent/zhin-agent-private.d.ts +2 -0
  191. package/lib/zhin-agent/zhin-agent-private.d.ts.map +1 -1
  192. package/lib/zhin-agent/zhin-agent-private.js.map +1 -1
  193. package/package.json +17 -7
@@ -0,0 +1,72 @@
1
+ import { formatCompact, Logger, truncatePreview } from '@zhin.js/logger';
2
+ const logger = new Logger(null, 'ZhinAgent');
3
+ function estTokensFromChars(chars) {
4
+ return Math.ceil(chars / 4);
5
+ }
6
+ function agentMessageChars(msg) {
7
+ if (!Array.isArray(msg.content))
8
+ return 0;
9
+ let n = 0;
10
+ for (const part of msg.content) {
11
+ if (part.type === 'text')
12
+ n += part.text.length;
13
+ else
14
+ n += JSON.stringify(part).length;
15
+ }
16
+ return n;
17
+ }
18
+ function toolsSchemaChars(tools) {
19
+ return tools.reduce((sum, t) => {
20
+ const blob = JSON.stringify({
21
+ name: t.name,
22
+ description: t.description,
23
+ parameters: t.parameters,
24
+ });
25
+ return sum + blob.length;
26
+ }, 0);
27
+ }
28
+ function formatSections(sections) {
29
+ if (!sections?.length)
30
+ return undefined;
31
+ return sections.map(s => `${s.id}:${s.approxChars}`).join(',');
32
+ }
33
+ /** 记录发往 LLM 的提示词规模(分段、历史、工具 schema),不默认 dump 全文。 */
34
+ export function logPromptComposition(input) {
35
+ if (!input.config.promptTraceEnabled)
36
+ return;
37
+ const systemChars = input.systemPrompt.length;
38
+ const historyChars = input.historyMessages.reduce((sum, m) => sum + agentMessageChars(m), 0);
39
+ const schemaChars = toolsSchemaChars(input.tools);
40
+ const userChars = input.userPreview?.length ?? 0;
41
+ const totalEst = estTokensFromChars(systemChars + historyChars + schemaChars + userChars);
42
+ const flat = {
43
+ phase: 'prompt.compose',
44
+ session: input.sessionId,
45
+ label: input.label,
46
+ systemChars,
47
+ systemEstTokens: estTokensFromChars(systemChars),
48
+ historyMsgs: input.historyMessages.length,
49
+ historyChars,
50
+ historyEstTokens: estTokensFromChars(historyChars),
51
+ toolCount: input.tools.length,
52
+ toolsSchemaChars: schemaChars,
53
+ toolsSchemaEstTokens: estTokensFromChars(schemaChars),
54
+ totalEstTokens: totalEst,
55
+ };
56
+ const sections = formatSections(input.sections);
57
+ if (sections)
58
+ flat.sections = sections;
59
+ if (input.tools.length > 0) {
60
+ flat.toolNames = input.tools.map(t => t.name).join(',');
61
+ }
62
+ if (userChars > 0) {
63
+ flat.userChars = userChars;
64
+ flat.userPreview = truncatePreview(input.userPreview, 80);
65
+ }
66
+ if (input.config.promptTraceVerbose) {
67
+ flat.systemHead = truncatePreview(input.systemPrompt, 120);
68
+ flat.systemTail = truncatePreview(input.systemPrompt.slice(Math.max(0, input.systemPrompt.length - 120)), 120);
69
+ }
70
+ logger.info(formatCompact(flat));
71
+ }
72
+ //# sourceMappingURL=prompt-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-trace.js","sourceRoot":"","sources":["../../src/zhin-agent/prompt-trace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGzE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAQ7C,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAiB;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;YAC3C,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAkB;IAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC;QACH,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,cAAc,CAAC,QAAmC;IACzD,IAAI,CAAC,QAAQ,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjE,CAAC;AAaD,oDAAoD;AACpD,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB;QAAE,OAAO;IAE7C,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;IAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC,CAAC;IAE1F,MAAM,IAAI,GAA8C;QACtD,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,KAAK,CAAC,SAAS;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW;QACX,eAAe,EAAE,kBAAkB,CAAC,WAAW,CAAC;QAChD,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM;QACzC,YAAY;QACZ,gBAAgB,EAAE,kBAAkB,CAAC,YAAY,CAAC;QAClD,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;QAC7B,gBAAgB,EAAE,WAAW;QAC7B,oBAAoB,EAAE,kBAAkB,CAAC,WAAW,CAAC;QACrD,cAAc,EAAE,QAAQ;KACzB,CAAC;IAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAY,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,eAAe,CAC/B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,EACtE,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC"}
@@ -12,8 +12,26 @@ import type { ZhinAgentConfig } from './config.js';
12
12
  import { type FileRole } from '../security/file-role-policy.js';
13
13
  export declare const FIXED_DISCIPLINE_RULES: readonly ["Never claim actions, results, or system state unless confirmed by tool output.", "If a capability is unavailable, state it honestly and suggest the closest valid alternative.", "Lead with the answer or result; avoid unnecessary preambles and filler."];
14
14
  export declare function contentToText(c: string | ContentPart[] | ContentPart | null | undefined): string;
15
+ /** @deprecated 主路径使用 contextRepository 原生 messages;保留供兼容调用。 */
15
16
  export declare function buildUserMessageWithHistory(history: AgentMessage[], currentContent: string): string;
16
17
  export declare function buildEnhancedPersona(config: Required<ZhinAgentConfig>, profileSummary: string, toneHint: string): string;
18
+ export declare const TURN_CONTEXT_BEGIN = "[Turn context]";
19
+ export declare const TURN_CONTEXT_END = "[/Turn context]";
20
+ export interface TurnContextEnvelopeInput {
21
+ commMessage?: Message;
22
+ profileSummary?: string;
23
+ toneHint?: string;
24
+ deferredStats?: string;
25
+ activeSkillsContext?: string;
26
+ quoteSystemHint?: string;
27
+ /** 形如 provider/modelId */
28
+ modelLine?: string;
29
+ sdk?: string;
30
+ agentsContext?: string;
31
+ }
32
+ /** 每轮易变上下文:不进可缓存 system,前缀到 user 消息。 */
33
+ export declare function buildTurnContextEnvelope(input: TurnContextEnvelopeInput): string | null;
34
+ export declare function prependTurnContextEnvelope(content: string, envelope: string | null | undefined): string;
17
35
  /** 从 Message 重算 SenderRole 并推导文件策略档位(提示词 §3b) */
18
36
  export declare function resolvePromptFileRole(commMessage: Message): FileRole | undefined;
19
37
  /** 会话级 IM 锚点(同 session 内稳定);写入 # Runtime 段,不再单独追加 Context: 行 */
@@ -32,6 +50,8 @@ export interface RichSystemPromptContext {
32
50
  platformSections?: string;
33
51
  /** 当前会话 Message(仅用于 # Runtime 中的 Session 行) */
34
52
  commMessage?: Message;
53
+ /** SDK 分治编排片段(workspace prompts/orchestrator*.md) */
54
+ orchestratorSdk?: string;
35
55
  }
36
56
  /** 单段字符数统计(日志 / Harness debug;与 buildRichSystemPrompt 分段一致) */
37
57
  export interface PromptSectionDebugInfo {
@@ -56,6 +76,8 @@ export declare function buildRichSystemPrompt(ctx: RichSystemPromptContext): str
56
76
  export declare function buildRichSystemPromptWithBuilder(ctx: RichSystemPromptContext): string;
57
77
  /** Vision / lite paths: persona + optional platform + context hint. */
58
78
  export declare function buildLiteSystemPromptWithPlatform(personaBlock: string, platformSections?: string, contextHint?: string): string;
59
- /** 本轮有引用消息时追加说明;不写入常驻 system 模板,避免每轮无引用也膨胀 */
79
+ /** 本轮有引用消息时的说明;写入 [Turn context],不进入可缓存 system */
80
+ export declare function resolveQuoteSystemHint(commMessage?: AgentTurnMessage): string | undefined;
81
+ /** @deprecated 引用说明已迁入 [Turn context];保留供旧测试/调用方 */
60
82
  export declare function appendQuoteContextSystemHint(prompt: string, commMessage?: AgentTurnMessage): string;
61
83
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAiC,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKnD,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,iCAAiC,CAAC;AAEzC,eAAO,MAAM,sBAAsB,wQAIzB,CAAC;AAEX,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAehG;AAsBD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAQnG;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,EACjC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAQhF;AAED,gEAAgE;AAChE,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAS5E;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAgPD,+DAA+D;AAC/D,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,uBAAuB,GAAG,sBAAsB,EAAE,CAqBrG;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,uBAAuB,GAAG,MAAM,CAsB1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,uBAAuB,GAAG,MAAM,CAgIrF;AAED,uEAAuE;AACvE,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,MAAM,EACzB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAOR;AAED,8CAA8C;AAC9C,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAInG"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/prompt.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { resolveIMSessionIdFromMessage } from '@zhin.js/core';
11
11
  import { getFileMemoryContext, formatMemoryPathsHint } from '../memory-layers.js';
12
12
  import { PromptBuilder } from './prompt-builder.js';
13
13
  import { buildSenderRolesFilePermissionsPrompt, inferFileRole, } from '../security/file-role-policy.js';
14
+ import { resolveWorkspacePrompt } from './workspace-prompt.js';
14
15
  export const FIXED_DISCIPLINE_RULES = [
15
16
  'Never claim actions, results, or system state unless confirmed by tool output.',
16
17
  'If a capability is unavailable, state it honestly and suggest the closest valid alternative.',
@@ -55,6 +56,7 @@ function agentMessageToText(message) {
55
56
  }
56
57
  return '';
57
58
  }
59
+ /** @deprecated 主路径使用 contextRepository 原生 messages;保留供兼容调用。 */
58
60
  export function buildUserMessageWithHistory(history, currentContent) {
59
61
  if (history.length === 0)
60
62
  return currentContent;
@@ -73,11 +75,64 @@ export function buildEnhancedPersona(config, profileSummary, toneHint) {
73
75
  if (toneHint) {
74
76
  persona += `\n\n[Tone hint] ${toneHint}`;
75
77
  }
76
- const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
77
- const timeStr = new Date().toLocaleString('zh-CN', { timeZone: tz });
78
- persona += `\n\nCurrent time: ${timeStr} (${tz})`;
79
78
  return persona;
80
79
  }
80
+ export const TURN_CONTEXT_BEGIN = '[Turn context]';
81
+ export const TURN_CONTEXT_END = '[/Turn context]';
82
+ /** 每轮易变上下文:不进可缓存 system,前缀到 user 消息。 */
83
+ export function buildTurnContextEnvelope(input) {
84
+ const lines = [];
85
+ const now = new Date();
86
+ const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
87
+ const timeStr = now.toLocaleString('zh-CN', { timeZone: tz });
88
+ lines.push(`Time: ${timeStr} (${tz})`);
89
+ if (input.modelLine?.trim()) {
90
+ lines.push(`Model: ${input.modelLine.trim()}`);
91
+ }
92
+ if (input.sdk?.trim()) {
93
+ lines.push(`Sdk: ${input.sdk.trim()}`);
94
+ }
95
+ if (input.commMessage) {
96
+ const sessionLine = formatSessionContextLine(input.commMessage);
97
+ if (sessionLine)
98
+ lines.push(sessionLine);
99
+ const sessionKey = resolveIMSessionIdFromMessage(input.commMessage);
100
+ const memoryPaths = formatMemoryPathsHint(String(input.commMessage.$adapter), sessionKey);
101
+ if (memoryPaths)
102
+ lines.push(`Memory paths: ${memoryPaths}`);
103
+ const fileMemory = getFileMemoryContext(undefined, String(input.commMessage.$adapter), sessionKey);
104
+ if (fileMemory?.trim()) {
105
+ lines.push('Memory snapshot:');
106
+ lines.push(fileMemory.trim());
107
+ }
108
+ }
109
+ if (input.deferredStats?.trim()) {
110
+ lines.push(`Deferred catalog: ${input.deferredStats.trim()}`);
111
+ }
112
+ if (input.profileSummary?.trim()) {
113
+ lines.push(input.profileSummary.trim());
114
+ }
115
+ if (input.toneHint?.trim()) {
116
+ lines.push(`[Tone hint] ${input.toneHint.trim()}`);
117
+ }
118
+ if (input.activeSkillsContext?.trim()) {
119
+ lines.push(input.activeSkillsContext.trim());
120
+ }
121
+ if (input.quoteSystemHint?.trim()) {
122
+ lines.push(input.quoteSystemHint.trim());
123
+ }
124
+ if (input.agentsContext?.trim()) {
125
+ lines.push(input.agentsContext.trim());
126
+ }
127
+ if (lines.length === 0)
128
+ return null;
129
+ return `${TURN_CONTEXT_BEGIN}\n${lines.join('\n')}\n${TURN_CONTEXT_END}`;
130
+ }
131
+ export function prependTurnContextEnvelope(content, envelope) {
132
+ if (!envelope?.trim())
133
+ return content;
134
+ return `${envelope.trim()}\n\n${content}`;
135
+ }
81
136
  /** 从 Message 重算 SenderRole 并推导文件策略档位(提示词 §3b) */
82
137
  export function resolvePromptFileRole(commMessage) {
83
138
  if (!commMessage)
@@ -177,26 +232,14 @@ function resolvePersonaLead(config, bootstrapContext) {
177
232
  return config.persona;
178
233
  }
179
234
  /**
180
- * 身份 + 会话级运行时(Host / Time / IM Session)。
235
+ * 稳定运行时(可缓存):不含时间、会话、deferred 统计、memory 正文。
181
236
  */
182
- function buildContextSection(config, commMessage, bootstrapContext) {
183
- const now = new Date();
184
- const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
185
- const timeStr = now.toLocaleString('zh-CN', { timeZone: tz });
186
- const cwd = process.cwd();
187
- const sessionKey = commMessage
188
- ? resolveIMSessionIdFromMessage(commMessage)
189
- : undefined;
190
- const memoryPaths = formatMemoryPathsHint(commMessage ? String(commMessage.$adapter) : undefined, sessionKey);
237
+ function buildContextSection(config, _commMessage, bootstrapContext) {
191
238
  const envItems = [
192
- `CWD: ${cwd}`,
239
+ `CWD: ${process.cwd()}`,
193
240
  `Host: ${os.platform()} | Node ${process.version} | Shell: ${process.env.SHELL || 'unknown'}`,
194
- `Time: ${timeStr} (${tz})`,
195
- `Memory: ${memoryPaths}`,
241
+ 'Volatile runtime (time, session, deferred catalog, memory) is in [Turn context] on each user message.',
196
242
  ];
197
- const sessionLine = commMessage ? formatSessionContextLine(commMessage) : null;
198
- if (sessionLine)
199
- envItems.push(sessionLine);
200
243
  return [
201
244
  resolvePersonaLead(config, bootstrapContext),
202
245
  '',
@@ -214,21 +257,18 @@ function buildDirectToolsSection() {
214
257
  ];
215
258
  return ['# Tools', ...prependBullets(items)].join('\n');
216
259
  }
217
- /** toolSearch 编排层:合并原 Tools + Deferred */
218
- function buildOrchestrationSection(deferredStats) {
260
+ /** toolSearch 编排层:合并原 Tools + Deferred + 可选 workspace/sdk 片段 */
261
+ function buildOrchestrationSection(modelSdk) {
262
+ const resolved = resolveWorkspacePrompt('orchestrator', modelSdk);
263
+ if (resolved.trim()) {
264
+ return resolved.trim().startsWith('#')
265
+ ? resolved.trim()
266
+ : `# Orchestration\n${resolved.trim()}`;
267
+ }
219
268
  const items = [
220
- 'Use run_deferred_task for real work; do not call other deferred tool names directly.',
221
- 'For public web lookup, call web_search directly (all users, including read-only file tier).',
222
- 'When the user asks to read/fetch a URL or external page, delegate with run_deferred_task (tool_query: web_fetch). Do not claim you lack web access — the Worker has web_fetch.',
223
- 'User requests to follow instructions from a fetched document (e.g. skill.md, exam) are in scope once content is retrieved via run_deferred_task.',
224
- 'History lines tagged `[Deferred worker 完成]` are prior worker outputs (not user input)—treat them as ground truth for follow-ups like 开始考试 / 继续.',
225
- 'Lines tagged `[Deferred worker 完成 — 自动续聊]` are system-triggered continuations after a worker finishes—execute the next step immediately.',
226
- 'Use tool_search only when the needed tool or domain is unclear.',
227
- 'Use ask_user only when blocked and master input is required.',
228
- 'Use background execution only when explicitly requested.',
229
- deferredStats
230
- ? `Deferred catalog: ${deferredStats}. Worker runs bash, read_file, and domain tools.`
231
- : 'Deferred worker runs bash, read_file, and domain tools.',
269
+ 'Use run_deferred_task for real work; do not call other deferred tool names directly on the orchestrator.',
270
+ 'Delegate execution via run_deferred_task(goal, tool_query); do not invent factual answers the worker should retrieve.',
271
+ 'Use tool_search when the needed tool or domain is unclear.',
232
272
  ];
233
273
  return ['# Orchestration', ...prependBullets(items)].join('\n');
234
274
  }
@@ -325,18 +365,16 @@ function buildMemorySection(commMessage) {
325
365
  * 用于观测渐进披露与 token 压力,不改变线上 prompt 拼接逻辑。
326
366
  */
327
367
  export function describePromptSectionsForDebug(ctx) {
328
- const { config, skillRegistry, skillsSummaryXML, activeSkillsContext, bootstrapContext, toolSearchDeferredStats, platformSections, } = ctx;
368
+ const { config, skillRegistry, skillsSummaryXML, bootstrapContext, toolSearchDeferredStats, platformSections, orchestratorSdk, } = ctx;
329
369
  const toolSearchActive = true;
330
370
  const boot = bootstrapContext?.trim() ? bootstrapContext : null;
331
371
  const pairs = [
332
372
  ['§1_runtime', buildContextSection(config, ctx.commMessage, bootstrapContext)],
333
373
  ['§2_style', toolSearchActive ? null : buildCommunicationSection()],
334
- ['§3_tools', toolSearchActive ? buildOrchestrationSection(toolSearchDeferredStats) : buildDirectToolsSection()],
374
+ ['§3_tools', toolSearchActive ? buildOrchestrationSection(orchestratorSdk) : buildDirectToolsSection()],
335
375
  ['§4_security', buildSecuritySection()],
336
376
  ['§6c_platform', buildPlatformSection(platformSections, toolSearchActive)],
337
377
  ['§8_skills', buildSkillsSection(skillRegistry, skillsSummaryXML, toolSearchActive)],
338
- ['§9_active_skills', buildActiveSkillsSection(activeSkillsContext)],
339
- ['§10_memory', buildMemorySection(ctx.commMessage)],
340
378
  ['§11_bootstrap', boot],
341
379
  ];
342
380
  return pairs
@@ -344,19 +382,17 @@ export function describePromptSectionsForDebug(ctx) {
344
382
  .map(([id, c]) => ({ id, approxChars: c.length }));
345
383
  }
346
384
  export function buildRichSystemPrompt(ctx) {
347
- const { config, skillRegistry, skillsSummaryXML, activeSkillsContext, bootstrapContext, toolSearchDeferredStats, platformSections, } = ctx;
385
+ const { config, skillRegistry, skillsSummaryXML, bootstrapContext, toolSearchDeferredStats, platformSections, orchestratorSdk, } = ctx;
348
386
  const toolSearchActive = true;
349
387
  const sections = [
350
388
  buildContextSection(config, ctx.commMessage, bootstrapContext),
351
389
  toolSearchActive ? null : buildCommunicationSection(),
352
390
  toolSearchActive
353
- ? buildOrchestrationSection(toolSearchDeferredStats)
391
+ ? buildOrchestrationSection(orchestratorSdk)
354
392
  : buildDirectToolsSection(),
355
393
  buildSecuritySection(),
356
394
  buildPlatformSection(platformSections, toolSearchActive),
357
395
  buildSkillsSection(skillRegistry, skillsSummaryXML, toolSearchActive),
358
- buildActiveSkillsSection(activeSkillsContext),
359
- buildMemorySection(ctx.commMessage),
360
396
  bootstrapContext || null,
361
397
  ];
362
398
  return sections.filter(Boolean).join(SECTION_SEP);
@@ -495,11 +531,18 @@ export function buildLiteSystemPromptWithPlatform(personaBlock, platformSections
495
531
  parts.push(hint);
496
532
  return parts.join('\n\n');
497
533
  }
498
- /** 本轮有引用消息时追加说明;不写入常驻 system 模板,避免每轮无引用也膨胀 */
499
- export function appendQuoteContextSystemHint(prompt, commMessage) {
534
+ /** 本轮有引用消息时的说明;写入 [Turn context],不进入可缓存 system */
535
+ export function resolveQuoteSystemHint(commMessage) {
500
536
  const hint = commMessage?.extra?.[QUOTE_CONTEXT_SYSTEM_EXTRA_KEY];
501
537
  if (typeof hint !== 'string' || !hint.trim())
538
+ return undefined;
539
+ return hint.trim();
540
+ }
541
+ /** @deprecated 引用说明已迁入 [Turn context];保留供旧测试/调用方 */
542
+ export function appendQuoteContextSystemHint(prompt, commMessage) {
543
+ const hint = resolveQuoteSystemHint(commMessage);
544
+ if (!hint)
502
545
  return prompt;
503
- return `${prompt.trim()}\n\n${hint.trim()}`;
546
+ return `${prompt.trim()}\n\n${hint}`;
504
547
  }
505
548
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/zhin-agent/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAa,8BAA8B,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAKlG,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,qCAAqC,EACrC,aAAa,GAEd,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,gFAAgF;IAChF,8FAA8F;IAC9F,yEAAyE;CACjE,CAAC;AAEX,MAAM,UAAU,aAAa,CAAC,CAA0D;IACtF,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IACzB,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACnB,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;YAC3B,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,CAAC;YAChC,KAAK,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;YAC5B,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,CAAC;YAChC,KAAK,MAAM,CAAC,CAAC,OAAQ,CAA4C,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;YACtF,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,mEAAmE;AACnE,SAAS,kBAAkB,CAAC,OAAqB;IAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAI,OAAgC,CAAC,OAAO,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,CAAC,EAA4C,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC;aAC3E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,GAAG,CAAC;aACT,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACjC,OAAQ,OAA4B,CAAC,OAAO;aACzC,MAAM,CAAC,CAAC,CAAC,EAA4C,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aAC1E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAuB,EAAE,cAAsB;IACzF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAChD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/G,MAAM,KAAK,GAAG,OAAO;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;SACxD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,GAAG,sBAAsB,wJAAwJ,YAAY,OAAO,sBAAsB,KAAK,cAAc,EAAE,CAAC;AACzP,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAiC,EACjC,cAAsB,EACtB,QAAgB;IAEhB,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAE7B,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,IAAI,OAAO,cAAc,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,mBAAmB,QAAQ,EAAE,CAAC;IAC3C,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACrE,OAAO,IAAI,qBAAqB,OAAO,KAAK,EAAE,GAAG,CAAC;IAClD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,qBAAqB,CAAC,WAAoB;IACxD,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAClD,OAAO,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,wBAAwB,CAAC,WAAoB;IAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,WAAW,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzE,IAAI,WAAW,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3E,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,OAAO,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAAC,YAAqB,EAAE,QAAgB;IACtE,OAAO,EAAE,CAAC;AACZ,CAAC;AAgBD,yBAAyB;AAEzB,MAAM,kBAAkB,GAAG,qEAAqE,CAAC;AACjG,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC,SAAS,cAAc,CAAC,KAAmC;IACzD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAC1C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC,MAAM,IAAc,EAAE,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI;SACR,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,GAAG,GAAG,2BAA2B;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,OAAO,CAAC;IAC1C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,OAAO,GAAiF,EAAE,CAAC;IACjG,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC/C,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sDAAsD;AACtD,SAAS,8BAA8B,CACrC,gBAAwB,EACxB,aAAmC;IAEnC,IAAI,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,EAAE,IAAI,EAAE,CAAC;QAChD,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,CAAC,CAAC,WAAW;SACpB,CAAC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,gBAAgB,GAAG,GAAG,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,gBAAoC;IAC5D,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAiC,EAAE,gBAAyB;IACtF,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvC,OAAO,6DAA6D,CAAC;IACvE,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,MAAiC,EACjC,WAAqB,EACrB,gBAAyB;IAEzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,WAAW;QAC5B,CAAC,CAAC,6BAA6B,CAAC,WAAW,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAE9G,MAAM,QAAQ,GAAG;QACf,QAAQ,GAAG,EAAE;QACb,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,OAAO,CAAC,OAAO,aAAa,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE;QAC7F,SAAS,OAAO,KAAK,EAAE,GAAG;QAC1B,WAAW,WAAW,EAAE;KACzB,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,IAAI,WAAW;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5C,OAAO;QACL,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC;QAC5C,EAAE;QACF,WAAW;QACX,GAAG,cAAc,CAAC,QAAQ,CAAC;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,qBAAqB;AACrB,SAAS,uBAAuB;IAC9B,MAAM,KAAK,GAAG;QACZ,oEAAoE;QACpE,4BAA4B;QAC5B,uEAAuE;QACvE,GAAG,sBAAsB;KAC1B,CAAC;IACF,OAAO,CAAC,SAAS,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,0CAA0C;AAC1C,SAAS,yBAAyB,CAAC,aAAsB;IACvD,MAAM,KAAK,GAAG;QACZ,sFAAsF;QACtF,6FAA6F;QAC7F,gLAAgL;QAChL,kJAAkJ;QAClJ,iJAAiJ;QACjJ,0IAA0I;QAC1I,iEAAiE;QACjE,8DAA8D;QAC9D,0DAA0D;QAC1D,aAAa;YACX,CAAC,CAAC,qBAAqB,aAAa,kDAAkD;YACtF,CAAC,CAAC,yDAAyD;KAC9D,CAAC;IACF,OAAO,CAAC,iBAAiB,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,QAAQ,GAAG;QACf,6IAA6I;QAC7I,uGAAuG;QACvG,+RAA+R;QAC/R,4IAA4I;QAC5I,qGAAqG;QACrG,yDAAyD;QACzD,kDAAkD;KACnD,CAAC;IACF,OAAO;QACL,YAAY;QACZ,EAAE;QACF,qCAAqC,EAAE;QACvC,EAAE;QACF,GAAG,cAAc,CAAC,QAAQ,CAAC;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,gBAAoC,EAAE,gBAAyB;IAC3F,MAAM,IAAI,GAAG,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,KAAK,GAAG,gBAAgB;QAC5B,CAAC,CAAC,kFAAkF;QACpF,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,iBAAiB,KAAK,GAAG,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,yBAAyB;IAChC,MAAM,KAAK,GAAG;QACZ,iCAAiC;QACjC,iCAAiC;QACjC,4BAA4B;QAC5B,+EAA+E;KAChF,CAAC;IACF,OAAO,CAAC,SAAS,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CACzB,aAAmC,EACnC,gBAAwB,EACxB,gBAAyB;IAEzB,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,8BAA8B,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAChF,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO;YACL,oBAAoB;YACpB,OAAO;YACP,EAAE;YACF,2FAA2F;SAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,wBAAwB,GAAG,gBAAgB,GAAG,uNAAuN,CAAC;IAC/Q,CAAC;IACD,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,KAAK,GAAa,CAAC,oBAAoB,CAAC,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,qNAAqN,CAAC,CAAC;QAClO,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,mBAA2B;IAC3D,IAAI,CAAC,mBAAmB;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,qBAAqB,GAAG,mBAAmB,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,WAAqB;IAC/C,MAAM,UAAU,GAAG,WAAW;QAC5B,CAAC,CAAC,6BAA6B,CAAC,WAAW,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACvH,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO;QACL,UAAU;QACV,EAAE;QACF,UAAU;QACV,EAAE;QACF,gHAAgH;KACjH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAQD;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,GAA4B;IACzE,MAAM,EACJ,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAC9E,uBAAuB,EAAE,gBAAgB,GAC1C,GAAG,GAAG,CAAC;IACR,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAC9B,MAAM,IAAI,GAAG,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,MAAM,KAAK,GAA8B;QACvC,CAAC,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC9E,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC;QACnE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC;QAC/G,CAAC,aAAa,EAAE,oBAAoB,EAAE,CAAC;QACvC,CAAC,cAAc,EAAE,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC1E,CAAC,WAAW,EAAE,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACpF,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;QACnE,CAAC,YAAY,EAAE,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC,eAAe,EAAE,IAAI,CAAC;KACxB,CAAC;IACF,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAA4B;IAChE,MAAM,EACJ,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAC9E,uBAAuB,EAAE,gBAAgB,GAC1C,GAAG,GAAG,CAAC;IACR,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAE9B,MAAM,QAAQ,GAAsB;QAClC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC;QAC9D,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,EAAE;QACrD,gBAAgB;YACd,CAAC,CAAC,yBAAyB,CAAC,uBAAuB,CAAC;YACpD,CAAC,CAAC,uBAAuB,EAAE;QAC7B,oBAAoB,EAAE;QACtB,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;QACxD,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;QACrE,wBAAwB,CAAC,mBAAmB,CAAC;QAC7C,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC;QACnC,gBAAgB,IAAI,IAAI;KACzB,CAAC;IAEF,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC,CAAC,GAA4B;IAC3E,MAAM,EACJ,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAC9E,uBAAuB,EAAE,gBAAgB,GAC1C,GAAG,GAAG,CAAC;IACR,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAE9B,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;QAChC,aAAa,EAAE,MAAM;QACrB,iBAAiB,EAAE,KAAK;QACxB,iBAAiB,EAAE,CAAC,gBAAgB;KACrC,CAAC,CAAC;IAEH,mBAAmB;IACnB,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IAEzF,WAAW;IACX,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW;QAChC,CAAC,CAAC,6BAA6B,CAAC,GAAG,CAAC,WAAW,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CAAC,UAAU,CAAC;QACjB,GAAG;QACH,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;QACvB,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS;QACrC,SAAS,EAAE,GAAG,OAAO,KAAK,EAAE,GAAG;QAC/B,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC;KAC9G,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,CAAC,gBAAgB,CAAC;YACvB,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,yBAAyB,EAAE;YACpC,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC;QACvB,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,oBAAoB,EAAE;QAC/B,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CAAC,gBAAgB,CAAC;YACvB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,yBAAyB,CAAC,uBAAuB,CAAC;YAC3D,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,gBAAgB,CAAC;YACvB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,uBAAuB,EAAE;YAClC,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC9E,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,gBAAgB,CAAC;gBACvB,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC5F,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,gBAAgB,CAAC;YACvB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,aAAa;IACb,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO,CAAC,gBAAgB,CAAC;YACvB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,sBAAsB,mBAAmB,EAAE;YACpD,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,WAAW;IACX,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/H,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,SAAS,CAAC;YAChB,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACZ,IAAI,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7B,OAAO,CAAC,gBAAgB,CAAC;YACvB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,iCAAiC,CAC/C,YAAoB,EACpB,gBAAyB,EACzB,WAAoB;IAEpB,MAAM,KAAK,GAAa,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC/D,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC;IACjC,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,4BAA4B,CAAC,MAAc,EAAE,WAA8B;IACzF,MAAM,IAAI,GAAG,WAAW,EAAE,KAAK,EAAE,CAAC,8BAA8B,CAAC,CAAC;IAClE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC5D,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/zhin-agent/prompt.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/tool-catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,mCAAmC;AACnC,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAElF;AASD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAUtE;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,SAAS,EAAE,EACrB,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,mBAAmB,CAwBrB"}
1
+ {"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/tool-catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,mCAAmC;AACnC,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAElF;AASD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAiBtE;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,SAAS,EAAE,EACrB,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,mBAAmB,CAwBrB"}
@@ -15,13 +15,21 @@ function domainForToolName(name) {
15
15
  }
16
16
  export function summarizeDeferredDomains(deferred) {
17
17
  const counts = new Map();
18
+ const otherNames = [];
18
19
  for (const tool of deferred) {
19
20
  const domain = domainForToolName(tool.name);
20
21
  counts.set(domain, (counts.get(domain) ?? 0) + 1);
22
+ if (domain === 'other')
23
+ otherNames.push(tool.name);
21
24
  }
22
25
  const parts = [...counts.entries()]
23
26
  .sort((a, b) => b[1] - a[1])
24
- .map(([domain, count]) => `${domain}(${count})`);
27
+ .map(([domain, count]) => {
28
+ if (domain === 'other' && otherNames.length > 0 && otherNames.length <= 12) {
29
+ return `other(${count}): ${otherNames.join(', ')}`;
30
+ }
31
+ return `${domain}(${count})`;
32
+ });
25
33
  return parts.length > 0 ? parts.join(', ') : 'none';
26
34
  }
27
35
  /** 按常驻名拆分;未在 orchestrator 列表中的工具归入 deferred */
@@ -1 +1 @@
1
- {"version":3,"file":"tool-catalog.js","sourceRoot":"","sources":["../../src/zhin-agent/tool-catalog.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAS,0BAA0B,CAAC,CAAC;AAE9E,mCAAmC;AACnC,MAAM,UAAU,+BAA+B,CAAC,QAAqB;IACnE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAqB;IAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;SAChC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACtD,CAAC;AAQD,+CAA+C;AAC/C,MAAM,UAAU,2BAA2B,CACzC,QAAqB,EACrB,iBAAoC;IAEpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,YAAY,GAAgB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,OAAO;QACL,YAAY;QACZ,QAAQ;QACR,WAAW,EAAE,wBAAwB,CAAC,QAAQ,CAAC;KAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tool-catalog.js","sourceRoot":"","sources":["../../src/zhin-agent/tool-catalog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"turn-pipeline.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/turn-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA8B/C,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,IAAI,EACL,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK7C,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,EAAE,OAAO,aAAa,EAAE,YAAY,EAAE,CAAC;IACxD,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAeD,wBAAsB,eAAe,CACnC,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,EACpB,aAAa,GAAE,IAAI,EAAO,EAC1B,OAAO,CAAC,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,aAAa,EAAE,CAAC,CA6L1B;AAED,iDAAiD;AAEjD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,WAAW,EAAE,EACpB,WAAW,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,aAAa,EAAE,CAAC,CAoH1B"}
1
+ {"version":3,"file":"turn-pipeline.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/turn-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgC/C,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,IAAI,EACL,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK7C,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,EAAE,OAAO,aAAa,EAAE,YAAY,EAAE,CAAC;IACxD,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAeD,wBAAsB,eAAe,CACnC,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,EACpB,aAAa,GAAE,IAAI,EAAO,EAC1B,OAAO,CAAC,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,aAAa,EAAE,CAAC,CA6M1B;AAED,iDAAiD;AAEjD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,WAAW,EAAE,EACpB,WAAW,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,aAAa,EAAE,CAAC,CAmI1B"}
@@ -9,9 +9,11 @@ import { resolveModelCandidates } from './model-resolver.js';
9
9
  import { mergeToolOutboundElements } from '../media/media-tool-bridge.js';
10
10
  import { providerSupportsVision } from '../media/vision-capability.js';
11
11
  import { touchSession, resolveSessionIsNewBeforeCreate, beginTurnSession as beginTurnSessionIO, } from './session-io.js';
12
- import { buildTurnUserMessages } from './turn-user-message.js';
12
+ import { buildTurnUserMessages, applyTurnContextToUserMessages, prependEnvelopeToFirstUserText } from './turn-user-message.js';
13
13
  import { runAgentLoopTextTurn, runAgentLoopVisionTurn } from './agent-loop-turn.js';
14
- import { buildEnhancedPersona } from './prompt.js';
14
+ import { buildTurnContextEnvelope, resolveQuoteSystemHint } from './prompt.js';
15
+ import { buildAgentsEnvelopeContext } from './agents-instruction.js';
16
+ import { getModel } from '@zhin.js/ai';
15
17
  import { collectRuntimeTools } from './tool-runtime.js';
16
18
  import { buildMultimodalVisionSystemPrompt } from './prompt-assembly.js';
17
19
  import { attachWebSearchLocale } from './web-search-locale-attach.js';
@@ -127,12 +129,27 @@ export async function processTextTurn(host, content, commMessage, externalTools
127
129
  }));
128
130
  const profileSummary = await host.userProfiles.buildProfileSummary(userId);
129
131
  const toneHint = host.config.toneAwareness ? detectTone(content).hint : '';
130
- const personaEnhanced = buildEnhancedPersona(host.config, profileSummary, toneHint);
132
+ const personaForChat = host.buildDisciplinedPrompt(host.config.persona);
131
133
  const chatCandidates = resolveModelCandidates(host.getTurnProvider().models, host.modelRegistry, host.getTurnProvider().name, host.config, 'chat');
132
- logPhase(host.phaseConfig, 'path.agent_loop', sessionId, { toolCount: allTools.length });
134
+ const modelId = chatCandidates[0] || host.getTurnProvider().models[0] || 'gpt-4o-mini';
135
+ const providerAlias = host.getTurnProvider().name;
136
+ const llmModel = getModel(providerAlias, modelId);
137
+ const agentsContext = await buildAgentsEnvelopeContext();
138
+ const turnEnvelope = buildTurnContextEnvelope({
139
+ commMessage,
140
+ profileSummary,
141
+ toneHint,
142
+ deferredStats,
143
+ activeSkillsContext: host.activeSkillsContext || undefined,
144
+ quoteSystemHint: resolveQuoteSystemHint(commMessage),
145
+ modelLine: `${providerAlias}/${modelId}`,
146
+ sdk: llmModel.sdk,
147
+ agentsContext: agentsContext ?? undefined,
148
+ });
133
149
  const userMessages = extras?.prebuiltMessages?.length
134
- ? extras.prebuiltMessages
135
- : turnUser.promptMessages;
150
+ ? prependEnvelopeToFirstUserText(extras.prebuiltMessages, turnEnvelope)
151
+ : applyTurnContextToUserMessages(turnUser.promptMessages, turnEnvelope);
152
+ logPhase(host.phaseConfig, 'path.agent_loop', sessionId, { toolCount: allTools.length });
136
153
  const loopResult = await host.promptController.schedule({
137
154
  sessionKey,
138
155
  sessionId,
@@ -148,8 +165,8 @@ export async function processTextTurn(host, content, commMessage, externalTools
148
165
  contextForTools,
149
166
  allTools,
150
167
  resolvedTools,
151
- personaEnhanced,
152
- modelId: chatCandidates[0] || host.getTurnProvider().models[0] || 'gpt-4o-mini',
168
+ personaEnhanced: personaForChat,
169
+ modelId,
153
170
  modelCandidates: chatCandidates,
154
171
  onChunk,
155
172
  initialMessages,
@@ -223,22 +240,38 @@ export async function processMultimodalTurn(host, parts, commMessage, onChunk) {
223
240
  const textContent = summarizeMultimodalParts(parts, supportsVision);
224
241
  const turnUser = buildTurnUserMessages(commMessage, textContent);
225
242
  const profileSummary = await host.userProfiles.buildProfileSummary(userId);
226
- const personaEnhanced = host.buildDisciplinedPrompt(buildEnhancedPersona(host.config, profileSummary, ''));
243
+ const toneHint = host.config.toneAwareness ? detectTone(textContent).hint : '';
244
+ const personaForVision = host.buildDisciplinedPrompt(host.config.persona);
227
245
  const visionSystemPrompt = await buildMultimodalVisionSystemPrompt(host, {
228
246
  commMessage,
229
247
  sessionId,
230
248
  textContent,
231
- personaEnhanced,
249
+ personaEnhanced: personaForVision,
232
250
  });
233
251
  const visionCandidates = resolveModelCandidates(host.getTurnProvider().models, host.modelRegistry, host.getTurnProvider().name, host.config, 'vision');
252
+ const visionModelId = visionCandidates[0] || host.getTurnProvider().models[0] || 'gpt-4o-mini';
253
+ const visionProviderAlias = host.getTurnProvider().name;
254
+ const visionLlmModel = getModel(visionProviderAlias, visionModelId);
255
+ const agentsContext = await buildAgentsEnvelopeContext();
234
256
  logPhase(host.phaseConfig, 'path.agent_loop', sessionId, { mode: 'multimodal' });
257
+ const turnEnvelope = buildTurnContextEnvelope({
258
+ commMessage,
259
+ profileSummary,
260
+ toneHint,
261
+ activeSkillsContext: host.activeSkillsContext || undefined,
262
+ quoteSystemHint: resolveQuoteSystemHint(commMessage),
263
+ modelLine: `${visionProviderAlias}/${visionModelId}`,
264
+ sdk: visionLlmModel.sdk,
265
+ agentsContext: agentsContext ?? undefined,
266
+ });
235
267
  const userMessage = await buildVisionUserMessage(userMessagePlainText(turnUser.promptMessages[0]), parts, supportsVision, DEFAULT_MULTIMODAL_CONFIG.maxFileBytes);
268
+ const userMessages = prependEnvelopeToFirstUserText([userMessage], turnEnvelope);
236
269
  let loopResult;
237
270
  try {
238
271
  loopResult = await host.promptController.schedule({
239
272
  sessionKey,
240
273
  sessionId,
241
- userMessages: [userMessage],
274
+ userMessages,
242
275
  commMessage,
243
276
  onChunk,
244
277
  execute: (initialMessages, hooks, signal, _turnId) => runAgentLoopVisionTurn({