@zhin.js/agent 0.1.30 → 0.1.31

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 (132) hide show
  1. package/README.md +47 -22
  2. package/lib/builtin/run-deferred-task-tool.d.ts +1 -1
  3. package/lib/builtin/run-deferred-task-tool.d.ts.map +1 -1
  4. package/lib/builtin/run-deferred-task-tool.js +1 -1
  5. package/lib/builtin/run-deferred-task-tool.js.map +1 -1
  6. package/lib/config/normalize-ai-config.d.ts +4 -0
  7. package/lib/config/normalize-ai-config.d.ts.map +1 -1
  8. package/lib/config/normalize-ai-config.js +23 -6
  9. package/lib/config/normalize-ai-config.js.map +1 -1
  10. package/lib/config/provider-instance.d.ts.map +1 -1
  11. package/lib/config/provider-instance.js +26 -7
  12. package/lib/config/provider-instance.js.map +1 -1
  13. package/lib/config/types.d.ts +2 -1
  14. package/lib/config/types.d.ts.map +1 -1
  15. package/lib/config/types.js.map +1 -1
  16. package/lib/config/validate-ai-config.d.ts.map +1 -1
  17. package/lib/config/validate-ai-config.js +5 -0
  18. package/lib/config/validate-ai-config.js.map +1 -1
  19. package/lib/deferred-worker-runner.d.ts +2 -0
  20. package/lib/deferred-worker-runner.d.ts.map +1 -1
  21. package/lib/deferred-worker-runner.js +17 -34
  22. package/lib/deferred-worker-runner.js.map +1 -1
  23. package/lib/index.d.ts +2 -1
  24. package/lib/index.d.ts.map +1 -1
  25. package/lib/index.js +1 -1
  26. package/lib/index.js.map +1 -1
  27. package/lib/init/activate-ai-database-storage.d.ts +1 -1
  28. package/lib/init/activate-ai-database-storage.d.ts.map +1 -1
  29. package/lib/init/activate-ai-database-storage.js +16 -13
  30. package/lib/init/activate-ai-database-storage.js.map +1 -1
  31. package/lib/init/create-zhin-agent.d.ts.map +1 -1
  32. package/lib/init/create-zhin-agent.js +17 -2
  33. package/lib/init/create-zhin-agent.js.map +1 -1
  34. package/lib/init/register-db-models.d.ts.map +1 -1
  35. package/lib/init/register-db-models.js +7 -8
  36. package/lib/init/register-db-models.js.map +1 -1
  37. package/lib/init/register-db-upgrade.d.ts +1 -1
  38. package/lib/init/register-db-upgrade.js +2 -2
  39. package/lib/init/register-db-upgrade.js.map +1 -1
  40. package/lib/init/register-management-tools.js +1 -1
  41. package/lib/init/register-management-tools.js.map +1 -1
  42. package/lib/media/subagent-user-delivery.d.ts +2 -9
  43. package/lib/media/subagent-user-delivery.d.ts.map +1 -1
  44. package/lib/media/subagent-user-delivery.js.map +1 -1
  45. package/lib/service.d.ts +31 -22
  46. package/lib/service.d.ts.map +1 -1
  47. package/lib/service.js +48 -19
  48. package/lib/service.js.map +1 -1
  49. package/lib/subagent-ai-events.d.ts +2 -2
  50. package/lib/subagent-ai-events.d.ts.map +1 -1
  51. package/lib/subagent-ai-events.js +17 -21
  52. package/lib/subagent-ai-events.js.map +1 -1
  53. package/lib/subagent.d.ts.map +1 -1
  54. package/lib/subagent.js +44 -59
  55. package/lib/subagent.js.map +1 -1
  56. package/lib/zhin-agent/agent-loop-standalone.d.ts +32 -0
  57. package/lib/zhin-agent/agent-loop-standalone.d.ts.map +1 -0
  58. package/lib/zhin-agent/agent-loop-standalone.js +144 -0
  59. package/lib/zhin-agent/agent-loop-standalone.js.map +1 -0
  60. package/lib/zhin-agent/agent-loop-turn.d.ts +51 -0
  61. package/lib/zhin-agent/agent-loop-turn.d.ts.map +1 -0
  62. package/lib/zhin-agent/agent-loop-turn.js +287 -0
  63. package/lib/zhin-agent/agent-loop-turn.js.map +1 -0
  64. package/lib/zhin-agent/builtin-tools.d.ts +3 -2
  65. package/lib/zhin-agent/builtin-tools.d.ts.map +1 -1
  66. package/lib/zhin-agent/builtin-tools.js +15 -16
  67. package/lib/zhin-agent/builtin-tools.js.map +1 -1
  68. package/lib/zhin-agent/config.d.ts +5 -2
  69. package/lib/zhin-agent/config.d.ts.map +1 -1
  70. package/lib/zhin-agent/config.js +3 -2
  71. package/lib/zhin-agent/config.js.map +1 -1
  72. package/lib/zhin-agent/deferred-delivery.d.ts +5 -0
  73. package/lib/zhin-agent/deferred-delivery.d.ts.map +1 -0
  74. package/lib/zhin-agent/deferred-delivery.js +29 -0
  75. package/lib/zhin-agent/deferred-delivery.js.map +1 -0
  76. package/lib/zhin-agent/index.d.ts +40 -8
  77. package/lib/zhin-agent/index.d.ts.map +1 -1
  78. package/lib/zhin-agent/index.js +162 -17
  79. package/lib/zhin-agent/index.js.map +1 -1
  80. package/lib/zhin-agent/model-resolver.d.ts +0 -1
  81. package/lib/zhin-agent/model-resolver.d.ts.map +1 -1
  82. package/lib/zhin-agent/model-resolver.js.map +1 -1
  83. package/lib/zhin-agent/multimodal-message.d.ts +9 -0
  84. package/lib/zhin-agent/multimodal-message.d.ts.map +1 -0
  85. package/lib/zhin-agent/multimodal-message.js +69 -0
  86. package/lib/zhin-agent/multimodal-message.js.map +1 -0
  87. package/lib/zhin-agent/prompt-access.d.ts +4 -0
  88. package/lib/zhin-agent/prompt-access.d.ts.map +1 -0
  89. package/lib/zhin-agent/prompt-access.js +7 -0
  90. package/lib/zhin-agent/prompt-access.js.map +1 -0
  91. package/lib/zhin-agent/prompt-controller.d.ts +53 -0
  92. package/lib/zhin-agent/prompt-controller.d.ts.map +1 -0
  93. package/lib/zhin-agent/prompt-controller.js +165 -0
  94. package/lib/zhin-agent/prompt-controller.js.map +1 -0
  95. package/lib/zhin-agent/prompt-input.d.ts +3 -0
  96. package/lib/zhin-agent/prompt-input.d.ts.map +1 -0
  97. package/lib/zhin-agent/prompt-input.js +8 -0
  98. package/lib/zhin-agent/prompt-input.js.map +1 -0
  99. package/lib/zhin-agent/session-io.d.ts +12 -7
  100. package/lib/zhin-agent/session-io.d.ts.map +1 -1
  101. package/lib/zhin-agent/session-io.js +18 -15
  102. package/lib/zhin-agent/session-io.js.map +1 -1
  103. package/lib/zhin-agent/session-message-queue.d.ts +20 -0
  104. package/lib/zhin-agent/session-message-queue.d.ts.map +1 -0
  105. package/lib/zhin-agent/session-message-queue.js +52 -0
  106. package/lib/zhin-agent/session-message-queue.js.map +1 -0
  107. package/lib/zhin-agent/tool-calls-user-format.d.ts.map +1 -1
  108. package/lib/zhin-agent/tool-calls-user-format.js +3 -0
  109. package/lib/zhin-agent/tool-calls-user-format.js.map +1 -1
  110. package/lib/zhin-agent/tool-orchestration.d.ts.map +1 -1
  111. package/lib/zhin-agent/tool-orchestration.js +35 -5
  112. package/lib/zhin-agent/tool-orchestration.js.map +1 -1
  113. package/lib/zhin-agent/tool-runtime.d.ts +2 -2
  114. package/lib/zhin-agent/tool-runtime.d.ts.map +1 -1
  115. package/lib/zhin-agent/tool-runtime.js +4 -4
  116. package/lib/zhin-agent/tool-runtime.js.map +1 -1
  117. package/lib/zhin-agent/turn-context.d.ts +9 -0
  118. package/lib/zhin-agent/turn-context.d.ts.map +1 -0
  119. package/lib/zhin-agent/turn-context.js +12 -0
  120. package/lib/zhin-agent/turn-context.js.map +1 -0
  121. package/lib/zhin-agent/turn-pipeline.d.ts +5 -1
  122. package/lib/zhin-agent/turn-pipeline.d.ts.map +1 -1
  123. package/lib/zhin-agent/turn-pipeline.js +113 -436
  124. package/lib/zhin-agent/turn-pipeline.js.map +1 -1
  125. package/lib/zhin-agent/zhin-agent-private.d.ts +11 -4
  126. package/lib/zhin-agent/zhin-agent-private.d.ts.map +1 -1
  127. package/lib/zhin-agent/zhin-agent-private.js.map +1 -1
  128. package/package.json +3 -3
  129. package/lib/zhin-agent/llm-runner.d.ts +0 -18
  130. package/lib/zhin-agent/llm-runner.d.ts.map +0 -1
  131. package/lib/zhin-agent/llm-runner.js +0 -163
  132. package/lib/zhin-agent/llm-runner.js.map +0 -1
package/README.md CHANGED
@@ -6,18 +6,18 @@ Zhin AI Agent 组合层:在 `@zhin.js/core` 的类型与 Provider 之上,提
6
6
 
7
7
  ## 功能特性
8
8
 
9
- - 🤖 **Agent 循环**:`Agent` / `createAgent`,支持工具调用、迭代与事件
9
+ - 🤖 **agentLoop 统一路径**:ZhinAgent、Subagent、Deferred Worker、AIService 均经 `agentLoop`(legacy `Agent.run` 仅保留在 `@zhin.js/ai` 供单测)
10
10
  - 📝 **会话管理**:`SessionManager`、内存/数据库会话、`SessionManager.generateId`
11
11
  - 🧠 **ZhinAgent**:与 Zhin 消息流集成的智能体(SOUL/TOOLS/AGENTS、工具收集、执行策略)
12
- - 🔍 **模型自动发现**:通过 `@zhin.js/ai` `ModelRegistry`(本包 re-export AI 原语,不单独导出 Registry)
13
- - 🔄 **模型自动降级**:首选模型失败时自动切换到次优模型,支持 Chat / Vision / Agent 三条路径
12
+ - 🔍 **模型自动发现**:`ModelRegistry` 调用 `listModels()`(OpenAI 兼容 `/v1/models`、Ollama `/api/tags`);结果写入 `provider.models` 并供 `getModel()` 校验;yaml 显式 `models` 时以配置为准
13
+ - 🔄 **模型自动降级**:首选模型失败时按 `resolveModelCandidates` 候选链 fallback(文本 / 多模态 / standalone 均走 agentLoop)
14
14
  - 🛡️ **6 层 Bash 安全**:`ExecPolicy` 纵深防御(危险黑名单、环境变量剥离、wrapper 剥离、复合命令拆分、只读放行、交互式审批)
15
15
  - 📂 **文件访问安全**:`FilePolicy` 路径检查、设备路径拦截、命令读写分类
16
16
  - 📋 **精简系统提示词**:`PromptBuilder` 组装 Context、Style、Tools、Safety,并按需注入 Platform、Skills、Memory、Bootstrap
17
17
  - 🔌 **框架挂载**:`initAgentModule()` 注册 `ctx.ai`、`ctx.agent`、定时任务、DB 模型等
18
- - 📦 **上下文与记忆**:`ContextManager`、`ConversationMemory`、`UserProfileStore`
18
+ - 📦 **上下文与记忆**:`ContextRepository`(`agent_messages`)、`AgentSessionStore`、`ImTranscriptStore`(`im_transcripts` + `chat_history`);辅助:`ContextManager`、`ConversationMemory`、`UserProfileStore`
19
19
  - ⏰ **跟进与定时**:`FollowUpManager`、`PersistentCronEngine`、cron 工具
20
- - 🔧 **内置工具**:bash、read_file、write_file、ask_user、web_searchchat_history
20
+ - 🔧 **内置工具**:bash、read_file、write_file、ask_user、web_search、`chat_history`(按关键词/最近条数查 `im_transcripts`)等
21
21
  - 📐 **会话压缩**:`compactSession`、token 估算、总结与裁剪
22
22
  - 🪝 **Hook 系统**:`registerAIHook`、`triggerAIHook` 等
23
23
 
@@ -44,8 +44,6 @@ npm install zhin.js
44
44
  import {
45
45
  initAgentModule,
46
46
  ZhinAgent,
47
- Agent,
48
- createAgent,
49
47
  AIService,
50
48
  SessionManager,
51
49
  registerAIHook,
@@ -64,16 +62,19 @@ useContext('ai', async (ai) => {
64
62
  仅在需要单独集成 Agent 能力时使用:
65
63
 
66
64
  ```javascript
67
- import { initAgentModule, createAgent, AIService } from '@zhin.js/agent'
65
+ import { initAgentModule, AIService } from '@zhin.js/agent'
68
66
  import { OllamaProvider } from '@zhin.js/core'
69
67
 
70
- // 初始化(需先有 DatabaseFeature 等)
71
68
  initAgentModule()
72
69
 
73
- // 低层 Agent
74
- const provider = new OllamaProvider({ baseUrl: 'http://localhost:11434' })
75
- const agent = createAgent(provider, { tools: [], systemPrompt: '你是一个助手' })
76
- const result = await agent.run('你好')
70
+ // 程序化 Agent(agentLoop 隔离 context)
71
+ useContext('ai', async (ai) => {
72
+ const result = await ai.runAgent('你好', {
73
+ provider: 'ollama',
74
+ systemPrompt: '你是一个助手',
75
+ })
76
+ console.log(result.content)
77
+ })
77
78
  ```
78
79
 
79
80
  ## 核心导出
@@ -81,13 +82,13 @@ const result = await agent.run('你好')
81
82
  | 类别 | 导出 |
82
83
  |------|------|
83
84
  | 初始化 | `initAgentModule` |
84
- | Agent | `Agent`, `createAgent`, `formatToolTitle` |
85
+ | Agent | `ServiceAgent`、`CreateServiceAgentOptions`(`AIService.createAgent`);legacy `Agent` / `createAgent` re-export 自 `@zhin.js/ai` |
85
86
  | Model harness | `MODEL_HARNESS_DEFAULTS`, `resolveModelHarness`, `mergeModelHarnessValues` |
86
87
  | 服务与会话 | `AIService`, `SessionManager`, `MemorySessionManager`, `DatabaseSessionManager`, `createMemorySessionManager`, `createDatabaseSessionManager` |
87
88
  | ZhinAgent | `ZhinAgent`,以及 config / exec-policy / file-policy / tool-runtime / prompt / builtin-tools 等子模块 |
88
89
  | 安全策略 | `checkExecPolicy`, `applyExecPolicyToTools`, `isDangerousCommand`, `stripEnvVarPrefix`, `stripSafeWrappers`, `splitCompoundCommand`, `extractCommandName`, `ExecPolicyResult`, `checkFileAccess`, `classifyBashCommand`, `isBlockedDevicePath` |
89
90
  | 提示词构建 | `buildRichSystemPrompt`, `buildEnhancedPersona`, `buildUserMessageWithHistory`, `buildContextHint` |
90
- | 上下文与记忆 | `ContextManager`, `createContextManager`, `ConversationMemory`, `UserProfileStore` |
91
+ | 上下文与记忆 | `ContextRepository`, `AgentSessionStore`, `ImTranscriptStore`(经 ZhinAgent 注入);`ContextManager`, `ConversationMemory`, `UserProfileStore` |
91
92
  | 跟进与定时 | `FollowUpManager`, `PersistentCronEngine`, `createCronTools`, `setCronManager`, `getCronManager` |
92
93
  | 压缩与 Bootstrap | `compactSession`, `estimateTokens`, `loadBootstrapFiles`, `loadSoulPersona`, `loadToolsGuide`, `loadAgentsMemory` |
93
94
  | Hook | `registerAIHook`, `unregisterAIHook`, `triggerAIHook`, `createAIHookEvent` |
@@ -118,7 +119,7 @@ declare module '@zhin.js/core' {
118
119
 
119
120
  | Context | 用途 |
120
121
  |---------|------|
121
- | `ctx.ai` | 业务侧 AI 服务:会话、`createAgent` / `runAgent`、全局 ZhinAgent |
122
+ | `ctx.ai` | 业务侧 AI 服务:会话、`createAgent`(→ `ServiceAgent`)/ `runAgent`、全局 ZhinAgent |
122
123
  | `ctx.agent` | 扩展编排资源:`orchestrator.addTool`、`addSkill`、`addMcp` 等;内置注册走 `root.inject('agent')` |
123
124
 
124
125
  主包 `zhin.js` 的 `Plugin.Contexts` 类型已包含上述两项。
@@ -155,23 +156,20 @@ ai:
155
156
 
156
157
  ### 2. 用 AIService 创建多个不同配置的 Agent
157
158
 
158
- `ctx.ai`(AIService)可以按需创建**多个互不共享状态的 Agent**,每个可指定不同 provider、model、systemPrompt、tools
159
+ `ctx.ai`(AIService)可以按需创建**多个互不共享状态的 Agent**(`ServiceAgent`),每个可指定不同 provider、model、systemPrompt、tools;底层均为 **`runAgentLoopStandaloneTurn`**:
159
160
 
160
161
  ```javascript
161
162
  import { useContext } from 'zhin.js'
162
163
 
163
164
  useContext('ai', async (ai) => {
164
- // 专用「代码助手」Agent
165
165
  const codeAgent = ai.createAgent({
166
166
  provider: 'openai',
167
167
  model: 'gpt-4o',
168
168
  systemPrompt: '你只负责代码审查与建议,不闲聊。',
169
169
  useBuiltinTools: true,
170
- tools: [/* 可选:额外工具 */],
171
170
  })
172
171
  const codeResult = await codeAgent.run('审查这段 TypeScript 的类型安全')
173
172
 
174
- // 专用「翻译」Agent,不用内置工具
175
173
  const translateAgent = ai.createAgent({
176
174
  provider: 'ollama',
177
175
  model: 'qwen2.5',
@@ -201,7 +199,7 @@ useContext('ai', async (ai) => {
201
199
 
202
200
  ### 4. 多 Agent 协作/编排(由 zhin.js 层实现)
203
201
 
204
- 本包只提供基础能力:`createAgent`、`ZhinAgent`、`ai.createAgent` 等。**多 Agent 串联/并联编排**(例如 A 的输出作为 B 的输入、按条件路由到不同专业 Agent)以及**按 bot / 按群组配置多个 ZhinAgent** 的调度与路由,将在 **zhin.js 主包**实现;插件侧通过 zhin.js 暴露的 API 使用即可,无需在业务里手写多实例维护与路由逻辑。
202
+ 本包只提供基础能力:`ZhinAgent`、`ai.createAgent`(`ServiceAgent`)、`ai.runAgent` 等。**多 Agent 串联/并联编排**(例如 A 的输出作为 B 的输入、按条件路由到不同专业 Agent)在 **zhin.js 主包** `runPipeline` / `runParallel` / `route` 实现;插件侧通过 zhin.js 暴露的 API 使用即可。
205
203
 
206
204
  ## 工具命名策略
207
205
 
@@ -209,6 +207,33 @@ useContext('ai', async (ai) => {
209
207
  - 非保留工具同名时采用 **后注册覆盖前注册**。
210
208
  - 冲突统一以 warn 记录:包含 `name`、`source`、`action`(`ignored`/`overridden`)。
211
209
 
210
+ ## Provider 与模型列表
211
+
212
+ `AIService` 构造时:
213
+
214
+ 1. 按 `ai.providers.<别名>` 实例化 Provider(须配置 `api`,如 `openai-completions`)。
215
+ 2. `registerLlmApiFromProviders`:**未写 `models` 的 provider** 在 ApiRegistry 注册为空白名单,由后台 `ModelRegistry.discover()` 填充 `provider.models`;**写了 `models`** 则用 yaml 白名单。
216
+ 3. `createZhinAgent` 启动时 `loadCache()` 先恢复上次发现结果,再异步刷新 `/v1/models`。
217
+
218
+ `agents.<name>.model`(如 `mimo-v2.5-pro`)须在发现列表中,或在中转 API 的 `/v1/models` 响应里出现;无需为每个模型手写 yaml,除非要锁定白名单。
219
+
220
+ ```yaml
221
+ ai:
222
+ providers:
223
+ openai-main:
224
+ api: openai-completions
225
+ baseUrl: ${OPENAI_BASE_URL}
226
+ apiKey: ${OPENAI_API_KEY}
227
+ # models 省略 → 自动 GET /v1/models
228
+ cloudflare-flash:
229
+ api: cloudflare-workers-ai
230
+ models: ["@cf/zai-org/glm-4.7-flash"] # 显式列表
231
+ agents:
232
+ zhin:
233
+ provider: openai-main
234
+ model: mimo-v2.5-pro
235
+ ```
236
+
212
237
  ## Model harness
213
238
 
214
239
  按 provider / model 覆盖 Agent 循环默认参数(当前主要为 **`maxIterations`**)。
@@ -267,7 +292,7 @@ src/
267
292
  │ ├── config.ts
268
293
  │ ├── prompt.ts
269
294
  │ ├── tool-runtime.ts # 运行时工具收集与执行路径规划
270
- │ └── context-tools.ts # chat_history, user_profile, spawn_task
295
+ │ └── builtin-tools.ts # chat_history(im_transcripts), user_profile, spawn_task
271
296
 
272
297
  ├── discovery/ # ★ 文件化资源发现
273
298
  │ ├── index.ts
@@ -12,7 +12,7 @@ export interface RunDeferredTaskToolOptions {
12
12
  export declare class RunDeferredTaskBuiltinTool extends BuiltinBaseTool {
13
13
  private readonly opts;
14
14
  readonly name = "run_deferred_task";
15
- readonly description = "\u5728\u9694\u79BB\u7684 Worker \u5B50 Agent \u4E2D\u6267\u884C deferred \u5DE5\u5177\u4EFB\u52A1\uFF08github/mcp/\u63D2\u4EF6\u7B49\uFF09\u3002\u8FD9\u662F\u8C03\u7528 deferred \u80FD\u529B\u7684\u552F\u4E00\u5165\u53E3";
15
+ readonly description = "\u5728\u9694\u79BB\u7684 Worker \u5B50 Agent \u4E2D\u5F02\u6B65\u6267\u884C deferred \u5DE5\u5177\u4EFB\u52A1\uFF08github/mcp/\u63D2\u4EF6\u7B49\uFF09\u3002\u7ACB\u5373\u8FD4\u56DE\u59D4\u6D3E\u6001\uFF0C\u5B8C\u6210\u540E\u5355\u72EC\u63A8\u9001\u7ED3\u679C\u3002\u8FD9\u662F\u8C03\u7528 deferred \u80FD\u529B\u7684\u552F\u4E00\u5165\u53E3";
16
16
  readonly parameters: ToolParametersSchema<Record<string, any>>;
17
17
  readonly kind = "meta";
18
18
  readonly executionTimeoutMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"run-deferred-task-tool.d.ts","sourceRoot":"","sources":["../../src/builtin/run-deferred-task-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,EAAE,oBAa1C,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,0BAA2B,SAAQ,eAAe;IAQjD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,WAAW,kOAC4D;IAChF,QAAQ,CAAC,UAAU,4CAAgC;IACnD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAEP,IAAI,EAAE,0BAA0B;IAOvD,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CAM9D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAEhF"}
1
+ {"version":3,"file":"run-deferred-task-tool.d.ts","sourceRoot":"","sources":["../../src/builtin/run-deferred-task-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,EAAE,oBAa1C,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,0BAA2B,SAAQ,eAAe;IAQjD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,WAAW,0VACgF;IACpG,QAAQ,CAAC,UAAU,4CAAgC;IACnD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAEP,IAAI,EAAE,0BAA0B;IAOvD,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CAM9D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAEhF"}
@@ -16,7 +16,7 @@ export const RUN_DEFERRED_TASK_PARAMETERS = {
16
16
  export class RunDeferredTaskBuiltinTool extends BuiltinBaseTool {
17
17
  opts;
18
18
  name = 'run_deferred_task';
19
- description = '在隔离的 Worker 子 Agent 中执行 deferred 工具任务(github/mcp/插件等)。这是调用 deferred 能力的唯一入口';
19
+ description = '在隔离的 Worker 子 Agent 中异步执行 deferred 工具任务(github/mcp/插件等)。立即返回委派态,完成后单独推送结果。这是调用 deferred 能力的唯一入口';
20
20
  parameters = RUN_DEFERRED_TASK_PARAMETERS;
21
21
  kind = 'meta';
22
22
  executionTimeoutMs;
@@ -1 +1 @@
1
- {"version":3,"file":"run-deferred-task-tool.js","sourceRoot":"","sources":["../../src/builtin/run-deferred-task-tool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,4BAA4B,GAAyB;IAChE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iCAAiC;SAC/C;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yCAAyC;SACvD;KACF;IACD,QAAQ,EAAE,CAAC,MAAM,CAAC;CACnB,CAAC;AAQF,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAQhC;IAPpB,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAClB,6EAA6E,CAAC;IACvE,UAAU,GAAG,4BAA4B,CAAC;IAC1C,IAAI,GAAG,MAAM,CAAC;IACd,kBAAkB,CAAS;IAEpC,YAA6B,IAAgC;QAC3D,KAAK,EAAE,CAAC;QADmB,SAAI,GAAJ,IAAI,CAA4B;QAE3D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAA6B;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,aAAa,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAgC;IACxE,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"run-deferred-task-tool.js","sourceRoot":"","sources":["../../src/builtin/run-deferred-task-tool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,4BAA4B,GAAyB;IAChE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iCAAiC;SAC/C;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yCAAyC;SACvD;KACF;IACD,QAAQ,EAAE,CAAC,MAAM,CAAC;CACnB,CAAC;AAQF,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAQhC;IAPpB,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAClB,iGAAiG,CAAC;IAC3F,UAAU,GAAG,4BAA4B,CAAC;IAC1C,IAAI,GAAG,MAAM,CAAC;IACd,kBAAkB,CAAS;IAEpC,YAA6B,IAAgC;QAC3D,KAAK,EAAE,CAAC;QADmB,SAAI,GAAJ,IAAI,CAA4B;QAE3D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAA6B;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,aAAa,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAgC;IACxE,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACvD,CAAC"}
@@ -1,5 +1,9 @@
1
1
  import type { AIConfig } from '@zhin.js/core';
2
2
  import type { AgentBindingConfig, ProviderInstanceConfig } from './types.js';
3
+ /** Normalize legacy `driver` → required `api` (ADR 0009 D1). */
4
+ export declare function normalizeProviderEntry(alias: string, cfg: ProviderInstanceConfig & {
5
+ driver?: string;
6
+ }): ProviderInstanceConfig;
3
7
  export interface NormalizedAiRoutingConfig {
4
8
  providers: Record<string, ProviderInstanceConfig>;
5
9
  agents: Record<string, AgentBindingConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-ai-config.d.ts","sourceRoot":"","sources":["../../src/config/normalize-ai-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AA2CpB,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,GAAG,SAAS,GAAG,yBAAyB,CAoB5F"}
1
+ {"version":3,"file":"normalize-ai-config.d.ts","sourceRoot":"","sources":["../../src/config/normalize-ai-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,eAAe,CAAC;AAE9D,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAgBpB,gEAAgE;AAChE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,sBAAsB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,sBAAsB,CAKxB;AA8BD,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,GAAG,SAAS,GAAG,yBAAyB,CA2B5F"}
@@ -1,12 +1,22 @@
1
+ import { driverToModelApi } from '@zhin.js/ai';
1
2
  import { DEFAULT_ZHIN_AGENT_NAME } from './types.js';
2
3
  const LEGACY_DRIVER_KEYS = new Set([
3
4
  'openai', 'anthropic', 'deepseek', 'moonshot', 'zhipu', 'google', 'gemini', 'ollama', 'cloudflare',
4
5
  ]);
5
- function isNewProviderShape(providers) {
6
+ function isNamedProviderShape(providers) {
6
7
  if (!providers || typeof providers !== 'object' || Array.isArray(providers))
7
8
  return false;
8
9
  const first = Object.values(providers)[0];
9
- return Boolean(first && typeof first === 'object' && 'driver' in first);
10
+ if (!first || typeof first !== 'object')
11
+ return false;
12
+ return 'api' in first || 'driver' in first;
13
+ }
14
+ /** Normalize legacy `driver` → required `api` (ADR 0009 D1). */
15
+ export function normalizeProviderEntry(alias, cfg) {
16
+ const legacyDriver = cfg.driver?.trim().toLowerCase();
17
+ const api = cfg.api?.trim() || (legacyDriver ? driverToModelApi(legacyDriver) : driverToModelApi(alias));
18
+ const { driver: _driver, ...rest } = cfg;
19
+ return { ...rest, api };
10
20
  }
11
21
  function normalizeLegacyProviders(legacy) {
12
22
  const out = {};
@@ -14,7 +24,7 @@ function normalizeLegacyProviders(legacy) {
14
24
  if (key === 'custom' || !cfg || typeof cfg !== 'object')
15
25
  continue;
16
26
  if (LEGACY_DRIVER_KEYS.has(key)) {
17
- out[key] = { driver: key, ...cfg };
27
+ out[key] = normalizeProviderEntry(key, { ...cfg, api: driverToModelApi(key) });
18
28
  }
19
29
  }
20
30
  return out;
@@ -35,9 +45,16 @@ function mergeLegacyRoutesIntoAgents(agents, routes) {
35
45
  * 解析 ai.providers / agents;兼容旧版 providers.<driver> 与顶层 ai.routes。
36
46
  */
37
47
  export function normalizeAiRoutingConfig(ai) {
38
- const providers = isNewProviderShape(ai?.providers)
39
- ? ai.providers
40
- : normalizeLegacyProviders(ai?.providers ?? {});
48
+ let providers;
49
+ if (isNamedProviderShape(ai?.providers)) {
50
+ providers = {};
51
+ for (const [alias, cfg] of Object.entries(ai.providers)) {
52
+ providers[alias] = normalizeProviderEntry(alias, cfg);
53
+ }
54
+ }
55
+ else {
56
+ providers = normalizeLegacyProviders(ai?.providers ?? {});
57
+ }
41
58
  const agents = { ...(ai?.agents ?? {}) };
42
59
  const legacyRoutes = ai?.routes ?? {};
43
60
  mergeLegacyRoutesIntoAgents(agents, legacyRoutes);
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-ai-config.js","sourceRoot":"","sources":["../../src/config/normalize-ai-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize-ai-config.js","sourceRoot":"","sources":["../../src/config/normalize-ai-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider-instance.d.ts","sourceRoot":"","sources":["../../src/config/provider-instance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,eAAe,CAAC;AAYhE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAkBzD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,sBAAsB,GAC1B,UAAU,GAAG,IAAI,CAuBnB;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,SAAS,GAC5D,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAQzB"}
1
+ {"version":3,"file":"provider-instance.d.ts","sourceRoot":"","sources":["../../src/config/provider-instance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,eAAe,CAAC;AAYhE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAwCzD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,sBAAsB,GAC1B,UAAU,GAAG,IAAI,CAqBnB;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,SAAS,GAC5D,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAQzB"}
@@ -1,5 +1,5 @@
1
1
  import { AnthropicProvider, CloudflareProvider, DeepSeekProvider, MoonshotProvider, OllamaProvider, OpenAIProvider, ZhipuProvider, GoogleProvider, } from '@zhin.js/core';
2
- const DRIVER_FACTORIES = {
2
+ const VENDOR_FACTORIES = {
3
3
  openai: { factory: OpenAIProvider, requireApiKey: true },
4
4
  anthropic: { factory: AnthropicProvider, requireApiKey: true },
5
5
  deepseek: { factory: DeepSeekProvider, requireApiKey: true },
@@ -9,12 +9,31 @@ const DRIVER_FACTORIES = {
9
9
  gemini: { factory: GoogleProvider, requireApiKey: true },
10
10
  ollama: { factory: OllamaProvider, requireApiKey: false },
11
11
  };
12
+ function resolveVendorAlias(alias, api) {
13
+ const lower = alias.trim().toLowerCase();
14
+ if (VENDOR_FACTORIES[lower] || lower === 'cloudflare')
15
+ return lower;
16
+ const head = lower.split(/[-_/]/)[0];
17
+ if (head && (VENDOR_FACTORIES[head] || head === 'cloudflare'))
18
+ return head;
19
+ switch (api) {
20
+ case 'anthropic-messages':
21
+ return 'anthropic';
22
+ case 'google-generative-ai':
23
+ return 'google';
24
+ case 'ollama-chat':
25
+ return 'ollama';
26
+ case 'cloudflare-workers-ai':
27
+ return 'cloudflare';
28
+ case 'openai-completions':
29
+ default:
30
+ return 'openai';
31
+ }
32
+ }
12
33
  export function createProviderInstance(alias, raw) {
13
- const driver = raw.driver?.trim().toLowerCase();
14
- if (!driver)
15
- return null;
16
- const { driver: _d, ...rest } = raw;
17
- if (driver === 'cloudflare') {
34
+ const vendor = resolveVendorAlias(alias, raw.api?.trim() || 'openai-completions');
35
+ const { api: _api, ...rest } = raw;
36
+ if (vendor === 'cloudflare') {
18
37
  const cfg = rest;
19
38
  if (!cfg.apiKey || !cfg.accountId)
20
39
  return null;
@@ -22,7 +41,7 @@ export function createProviderInstance(alias, raw) {
22
41
  provider.name = alias;
23
42
  return provider;
24
43
  }
25
- const entry = DRIVER_FACTORIES[driver];
44
+ const entry = VENDOR_FACTORIES[vendor];
26
45
  if (!entry)
27
46
  return null;
28
47
  const cfg = { ...rest };
@@ -1 +1 @@
1
- {"version":3,"file":"provider-instance.js","sourceRoot":"","sources":["../../src/config/provider-instance.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AAKvB,MAAM,gBAAgB,GAGlB;IACF,MAAM,EAAE,EAAE,OAAO,EAAE,cAAiC,EAAE,aAAa,EAAE,IAAI,EAAE;IAC3E,SAAS,EAAE,EAAE,OAAO,EAAE,iBAAoC,EAAE,aAAa,EAAE,IAAI,EAAE;IACjF,QAAQ,EAAE,EAAE,OAAO,EAAE,gBAAmC,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/E,QAAQ,EAAE,EAAE,OAAO,EAAE,gBAAmC,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/E,KAAK,EAAE,EAAE,OAAO,EAAE,aAAgC,EAAE,aAAa,EAAE,IAAI,EAAE;IACzE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAiC,EAAE,aAAa,EAAE,IAAI,EAAE;IAC3E,MAAM,EAAE,EAAE,OAAO,EAAE,cAAiC,EAAE,aAAa,EAAE,IAAI,EAAE;IAC3E,MAAM,EAAE,EAAE,OAAO,EAAE,cAAiC,EAAE,aAAa,EAAE,KAAK,EAAE;CAC7E,CAAC;AAEF,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,GAA2B;IAE3B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IAEpC,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAwB,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC5C,QAA0C,CAAC,IAAI,GAAG,KAAK,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,EAA2C,CAAC;IACjE,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEpD,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,QAA0C,CAAC,IAAI,GAAG,KAAK,CAAC;IACzD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,SAA6D;IAE7D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC1C,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC;IAC3B,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"provider-instance.js","sourceRoot":"","sources":["../../src/config/provider-instance.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { ProviderConfig } from '@zhin.js/core';
2
2
  export type ProviderDriver = 'openai' | 'anthropic' | 'deepseek' | 'moonshot' | 'zhipu' | 'google' | 'gemini' | 'ollama' | 'cloudflare';
3
3
  export interface ProviderInstanceConfig extends ProviderConfig {
4
- driver: ProviderDriver | string;
4
+ /** LLM protocol id (ADR 0009 D1), e.g. openai-completions */
5
+ api: string;
5
6
  }
6
7
  export interface RouteMatchConfig {
7
8
  adapter?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,UAAU,GACV,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,MAAM,EAAE,cAAc,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,yBAAyB;AACzB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,SAAS,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,UAAU,GACV,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,yBAAyB;AACzB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAkDA,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAmDA,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-ai-config.d.ts","sourceRoot":"","sources":["../../src/config/validate-ai-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,yBAAyB,GAAG,MAAM,EAAE,CAqChF"}
1
+ {"version":3,"file":"validate-ai-config.d.ts","sourceRoot":"","sources":["../../src/config/validate-ai-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,yBAAyB,GAAG,MAAM,EAAE,CA2ChF"}
@@ -1,6 +1,11 @@
1
1
  import { DEFAULT_ZHIN_AGENT_NAME } from './types.js';
2
2
  export function validateAiRoutingConfig(cfg) {
3
3
  const errors = [];
4
+ for (const [alias, prov] of Object.entries(cfg.providers)) {
5
+ if (!prov.api?.trim()) {
6
+ errors.push(`ai.providers.${alias}: api is required`);
7
+ }
8
+ }
4
9
  if (!cfg.agents[DEFAULT_ZHIN_AGENT_NAME]) {
5
10
  errors.push(`ai.agents.${DEFAULT_ZHIN_AGENT_NAME} is required`);
6
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate-ai-config.js","sourceRoot":"","sources":["../../src/config/validate-ai-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAGrD,MAAM,UAAU,uBAAuB,CAAC,GAA8B;IACpE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,aAAa,uBAAuB,cAAc,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,uBAAuB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,qBAAqB,CAAC,CAAC;QACtD,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,0BAA0B,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAChF,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;QAE7C,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;YACrC,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,aAAa,uBAAuB,0DAA0D,CAAC,CAAC;YAC9G,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,0CAA0C,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,0CAA0C,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"validate-ai-config.js","sourceRoot":"","sources":["../../src/config/validate-ai-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAGrD,MAAM,UAAU,uBAAuB,CAAC,GAA8B;IACpE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,mBAAmB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,aAAa,uBAAuB,cAAc,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,uBAAuB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,qBAAqB,CAAC,CAAC;QACtD,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,0BAA0B,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAChF,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;QAE7C,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;YACrC,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,aAAa,uBAAuB,0DAA0D,CAAC,CAAC;YAC9G,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,0CAA0C,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,0CAA0C,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { AIProvider, AgentTool } from '@zhin.js/core';
2
+ import type { ToolCallRecord } from './zhin-agent/tool-calls-user-format.js';
2
3
  import type { ModelRegistry } from '@zhin.js/ai';
3
4
  import type { ZhinAgentConfig, ExecApprovalMode } from './zhin-agent/config.js';
4
5
  import type { ToolContext } from '@zhin.js/core';
@@ -34,6 +35,7 @@ export interface DeferredWorkerResult {
34
35
  loadedToolNames: string[];
35
36
  iterations: number;
36
37
  status: 'ok' | 'partial' | 'error';
38
+ toolCalls?: ToolCallRecord[];
37
39
  }
38
40
  export declare class DeferredWorkerRunner {
39
41
  runSync(options: DeferredWorkerRunOptions): Promise<DeferredWorkerResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-worker-runner.d.ts","sourceRoot":"","sources":["../src/deferred-worker-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAe3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAOhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAMjD,0BAA0B;AAC1B,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,SAAS,EAAE,CAAC;IAC7B,eAAe,EAAE,SAAS,EAAE,CAAC;IAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,UAAU,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;CACpC;AAED,qBAAa,oBAAoB;IACzB,OAAO,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA8MhF"}
1
+ {"version":3,"file":"deferred-worker-runner.d.ts","sourceRoot":"","sources":["../src/deferred-worker-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQ3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAO7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAMjD,0BAA0B;AAC1B,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,SAAS,EAAE,CAAC;IAC7B,eAAe,EAAE,SAAS,EAAE,CAAC;IAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,UAAU,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACnC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,qBAAa,oBAAoB;IACzB,OAAO,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAgMhF"}
@@ -3,17 +3,14 @@
3
3
  */
4
4
  import { Logger } from '@zhin.js/core';
5
5
  import { formatCompact, formatCompactUsage, truncatePreview } from '@zhin.js/logger';
6
- import { createAgent } from '@zhin.js/ai';
7
6
  import { isOmittedToolSummary, sanitizeToolResult, stripHallucinatedToolCalls, } from '@zhin.js/ai';
8
7
  import { stripThinkBlocks } from './zhin-agent/text-sanitize.js';
8
+ import { runAgentLoopStandaloneTurn } from './zhin-agent/agent-loop-standalone.js';
9
9
  import { selectDeferredToolsForWorker } from './deferred-worker-tool-load.js';
10
10
  import { resolveAgentPromptMarkdown, resolveDeferredToolsForPlatform, } from './agent-prompt/index.js';
11
11
  import { resolveWorkerSlowToolTimeout } from './zhin-agent/config.js';
12
- import { applyExecPolicyToTools } from './security/exec-policy.js';
13
- import { RESERVED_TOOL_NAME_PREFIXES } from './reserved-tools.js';
14
- import { resolveContextBudget } from './zhin-agent/context-budget.js';
15
12
  import { createOwnerOrchestratedToolResultTransform } from './orchestrator/owner-confirm-orchestration.js';
16
- import { runWithDirectAgentExecution } from './security/bash-tool-context.js';
13
+ import { applyExecPolicyToTools } from './security/exec-policy.js';
17
14
  import { DEFAULT_TOOL_SEARCH_ORCHESTRATOR_TOOLS } from './zhin-agent/config.js';
18
15
  const logger = new Logger(null, 'DeferredWorker');
19
16
  const ORCHESTRATOR_TOOL_SET = new Set(DEFAULT_TOOL_SEARCH_ORCHESTRATOR_TOOLS);
@@ -77,14 +74,6 @@ export class DeferredWorkerRunner {
77
74
  }));
78
75
  }
79
76
  const model = provider.models[0];
80
- const contextBudget = execPolicyConfig
81
- ? resolveContextBudget({
82
- config: execPolicyConfig,
83
- provider,
84
- modelRegistry: modelRegistry ?? null,
85
- model,
86
- })
87
- : null;
88
77
  const platformBody = await resolveAgentPromptMarkdown({
89
78
  ctx: promptCtx,
90
79
  config: execPolicyConfig,
@@ -117,24 +106,20 @@ ${goal}${platformBlock}
117
106
  toolQuery,
118
107
  loadedToolNames,
119
108
  });
120
- const agent = createAgent(provider, {
121
- model,
122
- systemPrompt,
123
- tools,
124
- maxIterations,
125
- turnTimeout: execPolicyConfig?.timeout ?? 60_000,
126
- // Worker 须能注册 bash/read_file 等内置名;仅保留编排类元工具不可被插件覆盖
127
- reservedToolNames: [...ORCHESTRATOR_TOOL_SET],
128
- reservedToolNamePrefixes: RESERVED_TOOL_NAME_PREFIXES,
129
- contextWindow: contextBudget?.contextWindow ?? provider.contextWindow,
130
- forceMicroCompactEachTurn: true,
131
- transformToolResult: createOwnerOrchestratedToolResultTransform({
132
- toolContext: origin,
133
- disableHardOrchestration: true,
134
- }),
135
- });
136
109
  try {
137
- const result = await runWithDirectAgentExecution(origin, () => agent.run(goal));
110
+ const result = await runAgentLoopStandaloneTurn({
111
+ provider,
112
+ model,
113
+ systemPrompt,
114
+ tools,
115
+ userInput: goal,
116
+ maxIterations,
117
+ toolContext: origin,
118
+ transformToolResult: createOwnerOrchestratedToolResultTransform({
119
+ toolContext: origin,
120
+ disableHardOrchestration: true,
121
+ }),
122
+ });
138
123
  const hitMaxIter = result.iterations >= maxIterations;
139
124
  const summary = buildWorkerSummary(result, summaryMaxChars, hitMaxIter);
140
125
  logger.info(formatCompact({
@@ -164,6 +149,7 @@ ${goal}${platformBlock}
164
149
  loadedToolNames,
165
150
  iterations: result.iterations,
166
151
  status: hitMaxIter ? 'partial' : 'ok',
152
+ toolCalls: result.toolCalls,
167
153
  };
168
154
  }
169
155
  catch (error) {
@@ -193,13 +179,10 @@ ${goal}${platformBlock}
193
179
  status: 'error',
194
180
  };
195
181
  }
196
- finally {
197
- agent.dispose();
198
- }
199
182
  }
200
183
  }
201
184
  function buildWorkerSummary(result, maxChars, hitMaxIter) {
202
- const raw = result.content?.trim() || '';
185
+ const raw = result.content.trim() || '';
203
186
  let cleaned = sanitizeToolResult(stripHallucinatedToolCalls(stripThinkBlocks(raw)), { maxChars });
204
187
  if (isOmittedToolSummary(cleaned)) {
205
188
  cleaned = summarizeWorkerToolCalls(result.toolCalls, maxChars);
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-worker-runner.js","sourceRoot":"","sources":["../src/deferred-worker-runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAuB,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,0CAA0C,EAAE,MAAM,+CAA+C,CAAC;AAC3G,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,sCAAsC,EAAE,MAAM,wBAAwB,CAAC;AAEhF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAClD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS,sCAAsC,CAAC,CAAC;AAEtF,0BAA0B;AAC1B,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC;AAoCrD,MAAM,OAAO,oBAAoB;IAC/B,KAAK,CAAC,OAAO,CAAC,OAAiC;QAC7C,MAAM,EACJ,IAAI,EACJ,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,MAAM,EACN,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,eAAe,GAAG,gCAAgC,EAClD,OAAO,GACR,GAAG,OAAO,CAAC;QAEZ,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,SAAS,GAA4B;YACzC,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;SACrC,CAAC;QACF,MAAM,MAAM,GAAG,+BAA+B,CAC5C,SAAS,EACT,KAAK,EACL,IAAI,EACJ,eAAe,EACf,cAAc,EACd,4BAA4B,CAC7B,CAAC;QAEF,MAAM,WAAW,GAAgB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,OAAO,GAAG,CAAC,IAA2B,EAAE,EAAE;YAC9C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO;YACjF,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAEnC,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAE;gBACzB,MAAM,EAAE,WAAW;gBACnB,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC;gBAChC,UAAU,EAAE,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;gBACvC,KAAK,EAAE,kBAAkB;aAC1B,CAAC,CAAC,CAAC;YACJ,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBACtB,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,qCAAqC;oBAC5C,UAAU,EAAE,KAAK;oBACjB,IAAI,EAAE,oDAAoD;iBAC3D,CAAC;gBACF,eAAe,EAAE,EAAE;gBACnB,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,OAAO;aAChB,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,GAAG,WAAW,CAAC;QACxB,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,EAAE;gBACtD,YAAY,EAAE,gBAAgB,IAAI,gBAAgB,CAAC,sBAAsB;aAC1E,CAAC,CAAC;QACL,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;YACnE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxB,GAAG,CAAC;gBACJ,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;aACzE,CAAC,CAAC,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,aAAa,GAAG,gBAAgB;YACpC,CAAC,CAAC,oBAAoB,CAAC;gBACnB,MAAM,EAAE,gBAAgB;gBACxB,QAAQ;gBACR,aAAa,EAAE,aAAa,IAAI,IAAI;gBACpC,KAAK;aACN,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC;YACpD,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,EAAE;YACvC,CAAC,CAAC,oBAAoB,YAAY,CAAC,IAAI,EAAE,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,YAAY,GAAG;;;;;EAKvB,IAAI,GAAG,aAAa;;;;;;mFAM6D,CAAC;QAEhF,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,gBAAgB,EAAE,qBAAqB,IAAI,EAAE,CAAC;QAE7F,MAAM,CAAC,IAAI,CAAC,aAAa,CAAE;YACzB,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC;YAChC,UAAU,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YACpE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;SACjC,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,EAAE,CAAC;YACd,KAAK,EAAE,OAAO;YACd,IAAI;YACJ,SAAS;YACT,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE;YAClC,KAAK;YACL,YAAY;YACZ,KAAK;YACL,aAAa;YACb,WAAW,EAAE,gBAAgB,EAAE,OAAO,IAAI,MAAM;YAChD,mDAAmD;YACnD,iBAAiB,EAAE,CAAC,GAAG,qBAAqB,CAAC;YAC7C,wBAAwB,EAAE,2BAA2B;YACrD,aAAa,EAAE,aAAa,EAAE,aAAa,IAAI,QAAQ,CAAC,aAAa;YACrE,yBAAyB,EAAE,IAAI;YAC/B,mBAAmB,EAAE,0CAA0C,CAAC;gBAC9D,WAAW,EAAE,MAAM;gBACnB,wBAAwB,EAAE,IAAI;aAC/B,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,aAAa,CAAC;YACtD,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAE;gBACzB,MAAM,EAAE,MAAM;gBACd,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,UAAU,IAAI,SAAS;gBAChC,IAAI,EAAE,MAAM,CAAC,UAAU;gBACvB,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;gBAChC,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC;gBACvC,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC;aACvC,CAAC,CAAC,CAAC;YACJ,MAAM,OAAO,EAAE,CAAC;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI;gBACJ,SAAS;gBACT,eAAe;gBACf,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;aACtC,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBACtB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;oBACrC,YAAY,EAAE,eAAe;oBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,OAAO;iBACR,CAAC;gBACF,eAAe;gBACf,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;aACtC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAE;gBACzB,MAAM,EAAE,MAAM;gBACd,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;gBAChC,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC;aACjC,CAAC,CAAC,CAAC;YACJ,MAAM,OAAO,EAAE,CAAC;gBACd,KAAK,EAAE,QAAQ;gBACf,IAAI;gBACJ,SAAS;gBACT,eAAe;gBACf,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBACtB,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE,eAAe;oBAC7B,KAAK,EAAE,QAAQ;iBAChB,CAAC;gBACF,eAAe;gBACf,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,OAAO;aAChB,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;CACF;AAED,SAAS,kBAAkB,CACzB,MAAmB,EACnB,QAAgB,EAChB,UAAmB;IAEnB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,kBAAkB,CAC9B,0BAA0B,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EACjD,EAAE,QAAQ,EAAE,CACb,CAAC;IACF,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,aAAa,CAAC;IAC1B,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,IAAI,wCAAwC,CAAC;IACtD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC/C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC;AACvD,CAAC;AAED,SAAS,wBAAwB,CAC/B,SAAmC,EACnC,QAAgB;IAEhB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACvB,OAAO,0BAA0B,CAAC;IACpC,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACtC,MAAM,GAAG,GACP,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,EAAE;YACpC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,+BAA+B,CAAC;IACzC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"deferred-worker-runner.js","sourceRoot":"","sources":["../src/deferred-worker-runner.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -23,6 +23,7 @@ export type { StorageBackend, DbModel } from '@zhin.js/ai';
23
23
  export { estimateTokens, estimateMessagesTokens, splitMessagesByTokenShare, chunkMessagesByMaxTokens, computeAdaptiveChunkRatio, resolveContextWindowTokens, evaluateContextWindowGuard, summarizeWithFallback, summarizeInStages, pruneHistoryForContext, compactSession, DEFAULT_CONTEXT_TOKENS, } from '@zhin.js/ai';
24
24
  export type { ContextWindowSource, ContextWindowInfo, ContextWindowGuardResult, PruneResult } from '@zhin.js/ai';
25
25
  export { AIService } from './service.js';
26
+ export type { ServiceAgent, ServiceAgentResult, CreateServiceAgentOptions } from './service.js';
26
27
  export { ZhinAgent } from './zhin-agent/index.js';
27
28
  export type { ZhinAgentConfig, OnChunkCallback } from './zhin-agent/index.js';
28
29
  export { DEFAULT_CONFIG as ZHIN_AGENT_DEFAULT_CONFIG, DEFAULT_ORCHESTRATOR_TOOLS, SECTION_SEP, } from './zhin-agent/config.js';
@@ -35,7 +36,7 @@ export { buildRichSystemPrompt, buildLiteSystemPromptWithPlatform, buildContextH
35
36
  export type { RichSystemPromptContext, PromptSectionDebugInfo } from './zhin-agent/prompt.js';
36
37
  export { registerAgentPromptContributor, unregisterAgentPromptContributor, getAgentPromptContributor, clearAgentPromptContributors, resolveAgentPromptSections, resolveAgentPromptMarkdown, resolveDeferredToolsForPlatform, formatAgentPromptSectionsMarkdown, } from './agent-prompt/index.js';
37
38
  export type { ResolveAgentPromptOptions } from './agent-prompt/index.js';
38
- export { createChatHistoryTool, createUserProfileTool, createSpawnTaskTool } from './zhin-agent/builtin-tools.js';
39
+ export { createImTranscriptHistoryTool, createUserProfileTool, createSpawnTaskTool } from './zhin-agent/builtin-tools.js';
39
40
  export { UserProfileStore, AI_USER_PROFILE_MODEL } from './user-profile.js';
40
41
  export { SubagentManager } from './subagent.js';
41
42
  export type { SubagentOrigin, SubagentResultDelivery, SubagentResultSender, SpawnOptions, SubagentManagerOptions, } from './subagent.js';