@ai-setting/roy-agent-core 1.7.52 → 1.7.53

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 (334) hide show
  1. package/dist/config/config-component.d.ts +346 -0
  2. package/dist/config/config-parser.d.ts +45 -0
  3. package/dist/config/env-key.d.ts +97 -0
  4. package/dist/config/env-source.d.ts +113 -0
  5. package/dist/config/file-source.d.ts +90 -0
  6. package/dist/config/index.d.ts +4 -0
  7. package/dist/config/protocol-resolver.d.ts +94 -0
  8. package/dist/env/agent/agent-component.d.ts +646 -0
  9. package/dist/env/agent/agent-config-registration.d.ts +18 -0
  10. package/dist/env/agent/agent-registry.d.ts +500 -0
  11. package/dist/env/agent/index.d.ts +9 -0
  12. package/dist/env/agent/summary-agent.d.ts +44 -0
  13. package/dist/env/agent/types.d.ts +503 -0
  14. package/dist/env/commands/commands-component.d.ts +97 -0
  15. package/dist/env/commands/commands-config-registration.d.ts +19 -0
  16. package/dist/env/commands/index.d.ts +7 -0
  17. package/dist/env/commands/parser.d.ts +18 -0
  18. package/dist/env/commands/types.d.ts +133 -0
  19. package/dist/env/component.d.ts +186 -0
  20. package/dist/env/constants.d.ts +112 -0
  21. package/dist/env/context/env-context.d.ts +420 -0
  22. package/dist/env/context/env-event.d.ts +144 -0
  23. package/dist/env/context/index.d.ts +13 -0
  24. package/dist/env/debug/debug-component.d.ts +160 -0
  25. package/dist/env/debug/formatters/index.d.ts +8 -0
  26. package/dist/env/debug/formatters/repl-formatter.d.ts +80 -0
  27. package/dist/env/debug/formatters/trace-formatter.d.ts +43 -0
  28. package/dist/env/debug/formatters/tree-formatter.d.ts +72 -0
  29. package/dist/env/debug/index.d.ts +15 -0
  30. package/dist/env/debug/index.js +1 -1
  31. package/dist/env/debug/parser/regex-parser.d.ts +49 -0
  32. package/dist/env/debug/parser/span-builder.d.ts +79 -0
  33. package/dist/env/debug/reader/log-reader.d.ts +55 -0
  34. package/dist/env/debug/reader/span-db-reader.d.ts +70 -0
  35. package/dist/env/debug/types.d.ts +145 -0
  36. package/dist/env/environment.d.ts +185 -0
  37. package/dist/env/errors.d.ts +120 -0
  38. package/dist/env/event-source/bounty-cli-handler.d.ts +42 -0
  39. package/dist/env/event-source/bounty-im-handler.d.ts +232 -0
  40. package/dist/env/event-source/event-source-component.d.ts +177 -0
  41. package/dist/env/event-source/event-source-config-registration.d.ts +18 -0
  42. package/dist/env/event-source/event-source-handlers.d.ts +486 -0
  43. package/dist/env/event-source/event-store.d.ts +110 -0
  44. package/dist/env/event-source/idempotency-key.d.ts +19 -0
  45. package/dist/env/event-source/index.d.ts +15 -0
  46. package/dist/env/event-source/index.js +2 -2
  47. package/dist/env/event-source/timer-handler.d.ts +74 -0
  48. package/dist/env/event-source/types.d.ts +803 -0
  49. package/dist/env/hook/global-hook-manager.d.ts +73 -0
  50. package/dist/env/hook/hook-manager.d.ts +139 -0
  51. package/dist/env/hook/index.d.ts +9 -0
  52. package/dist/env/hook/types.d.ts +107 -0
  53. package/dist/env/index.d.ts +24 -0
  54. package/dist/env/index.js +4 -4
  55. package/dist/env/interface.d.ts +156 -0
  56. package/dist/env/lark-mention-utils.d.ts +59 -0
  57. package/dist/env/llm/adapter-ai-sdk.d.ts +10 -0
  58. package/dist/env/llm/adapter-pi-ai.d.ts +39 -0
  59. package/dist/env/llm/adapter.d.ts +80 -0
  60. package/dist/env/llm/factory.d.ts +13 -0
  61. package/dist/env/llm/hooks.d.ts +150 -0
  62. package/dist/env/llm/index.d.ts +16 -0
  63. package/dist/env/llm/invoke.d.ts +264 -0
  64. package/dist/env/llm/llm-cache.d.ts +38 -0
  65. package/dist/env/llm/llm.d.ts +238 -0
  66. package/dist/env/llm/opencode-session.d.ts +79 -0
  67. package/dist/env/llm/provider.d.ts +40 -0
  68. package/dist/env/llm/tool-args-parser.d.ts +77 -0
  69. package/dist/env/llm/tool-schema.d.ts +54 -0
  70. package/dist/env/llm/transform.d.ts +57 -0
  71. package/dist/env/llm/types.d.ts +818 -0
  72. package/dist/env/log-trace/decorator.d.ts +88 -0
  73. package/dist/env/log-trace/index.d.ts +14 -0
  74. package/dist/env/log-trace/log-trace-component.d.ts +268 -0
  75. package/dist/env/log-trace/log-trace-config-registration.d.ts +25 -0
  76. package/dist/env/log-trace/logger.d.ts +83 -0
  77. package/dist/env/log-trace/opentelemetry/cli-propagation.d.ts +105 -0
  78. package/dist/env/log-trace/opentelemetry/mod.d.ts +24 -0
  79. package/dist/env/log-trace/opentelemetry/propagation-env.d.ts +81 -0
  80. package/dist/env/log-trace/opentelemetry/propagation.d.ts +79 -0
  81. package/dist/env/log-trace/opentelemetry/tracer-provider.d.ts +157 -0
  82. package/dist/env/log-trace/span-storage.d.ts +37 -0
  83. package/dist/env/log-trace/trace-context.d.ts +28 -0
  84. package/dist/env/log-trace/types.d.ts +127 -0
  85. package/dist/env/mcp/command-resolver.d.ts +12 -0
  86. package/dist/env/mcp/config.d.ts +103 -0
  87. package/dist/env/mcp/index.d.ts +13 -0
  88. package/dist/env/mcp/loader.d.ts +78 -0
  89. package/dist/env/mcp/mcp-component.d.ts +54 -0
  90. package/dist/env/mcp/mcp-config-registration.d.ts +19 -0
  91. package/dist/env/mcp/npm-prefix/index.d.ts +17 -0
  92. package/dist/env/mcp/scanner.d.ts +38 -0
  93. package/dist/env/mcp/tool/adapter.d.ts +32 -0
  94. package/dist/env/mcp/tool/index.d.ts +4 -0
  95. package/dist/env/mcp/types.d.ts +131 -0
  96. package/dist/env/memory/built-in/index.d.ts +41 -0
  97. package/dist/env/memory/built-in/recall-memory.d.ts +29 -0
  98. package/dist/env/memory/built-in/record-memory.d.ts +44 -0
  99. package/dist/env/memory/index.d.ts +10 -0
  100. package/dist/env/memory/memory-component.d.ts +114 -0
  101. package/dist/env/memory/memory-config-registration.d.ts +18 -0
  102. package/dist/env/memory/memory-config.d.ts +18 -0
  103. package/dist/env/memory/plugin/index.d.ts +16 -0
  104. package/dist/env/memory/plugin/memory-agent.d.ts +126 -0
  105. package/dist/env/memory/plugin/memory-manager.d.ts +71 -0
  106. package/dist/env/memory/plugin/memory-plugin.d.ts +103 -0
  107. package/dist/env/memory/plugin/recall-memory.d.ts +16 -0
  108. package/dist/env/memory/plugin/types.d.ts +75 -0
  109. package/dist/env/memory/tools/memory-agent-tools.d.ts +109 -0
  110. package/dist/env/memory/types.d.ts +80 -0
  111. package/dist/env/paths.d.ts +46 -0
  112. package/dist/env/plugin/bounty-cli-notification-channel.d.ts +60 -0
  113. package/dist/env/plugin/event-bus-notification-channel.d.ts +50 -0
  114. package/dist/env/plugin/index.d.ts +13 -0
  115. package/dist/env/plugin/lark-cli-notification-channel.d.ts +61 -0
  116. package/dist/env/plugin/notification-channel.d.ts +143 -0
  117. package/dist/env/plugin/plugin-component.d.ts +232 -0
  118. package/dist/env/plugin/types.d.ts +146 -0
  119. package/dist/env/prompt/index.d.ts +7 -0
  120. package/dist/env/prompt/prompt-component.d.ts +194 -0
  121. package/dist/env/prompt/prompt-config-registration.d.ts +18 -0
  122. package/dist/env/prompt/prompt-store.d.ts +26 -0
  123. package/dist/env/prompt/prompts-index.d.ts +146 -0
  124. package/dist/env/prompt/renderer.d.ts +21 -0
  125. package/dist/env/prompt/types.d.ts +176 -0
  126. package/dist/env/session/hooks.d.ts +14 -0
  127. package/dist/env/session/index.d.ts +19 -0
  128. package/dist/env/session/search-query-parser.d.ts +41 -0
  129. package/dist/env/session/session-component.d.ts +464 -0
  130. package/dist/env/session/session-config-registration.d.ts +18 -0
  131. package/dist/env/session/session-id.d.ts +26 -0
  132. package/dist/env/session/session-message-converter.d.ts +142 -0
  133. package/dist/env/session/session-store.d.ts +188 -0
  134. package/dist/env/session/storage/index.d.ts +5 -0
  135. package/dist/env/session/storage/memory.d.ts +119 -0
  136. package/dist/env/session/storage/sqlite.d.ts +108 -0
  137. package/dist/env/session/types.d.ts +705 -0
  138. package/dist/env/session-tree-stopper.d.ts +79 -0
  139. package/dist/env/skill/config.d.ts +13 -0
  140. package/dist/env/skill/index.d.ts +6 -0
  141. package/dist/env/skill/parser.d.ts +9 -0
  142. package/dist/env/skill/scanner.d.ts +25 -0
  143. package/dist/env/skill/skill-component.d.ts +89 -0
  144. package/dist/env/skill/skill-config-registration.d.ts +18 -0
  145. package/dist/env/skill/tool/index.d.ts +1 -0
  146. package/dist/env/skill/tool/skill-tool.d.ts +15 -0
  147. package/dist/env/skill/types.d.ts +61 -0
  148. package/dist/env/task/backend/index.d.ts +24 -0
  149. package/dist/env/task/backend/index.js +704 -0
  150. package/dist/env/task/backend/roy-sidecar-task-port.d.ts +148 -0
  151. package/dist/env/task/backend/sqlite-task-port.d.ts +28 -0
  152. package/dist/env/task/backend/task-store-backend.d.ts +107 -0
  153. package/dist/env/task/backend/types.d.ts +293 -0
  154. package/dist/env/task/delegate/bg-task-id-storage.d.ts +9 -0
  155. package/dist/env/task/delegate/delegate-tool.d.ts +681 -0
  156. package/dist/env/task/delegate/index.d.ts +8 -0
  157. package/dist/env/task/delegate/process-registry.d.ts +58 -0
  158. package/dist/env/task/delegate/stop-tool.d.ts +12 -0
  159. package/dist/env/task/delegate/subagent-resolver.d.ts +25 -0
  160. package/dist/env/task/events/index.d.ts +7 -0
  161. package/dist/env/task/events/task-event-payloads.d.ts +101 -0
  162. package/dist/env/task/events/task-event-types.d.ts +23 -0
  163. package/dist/env/task/hooks/contexts.d.ts +191 -0
  164. package/dist/env/task/hooks/index.d.ts +7 -0
  165. package/dist/env/task/hooks/task-hook-points.d.ts +42 -0
  166. package/dist/env/task/index.d.ts +7 -0
  167. package/dist/env/task/plugins/auto-task-plugin.d.ts +38 -0
  168. package/dist/env/task/plugins/card-chat-routing.d.ts +135 -0
  169. package/dist/env/task/plugins/fake-user-message-helper.d.ts +90 -0
  170. package/dist/env/task/plugins/index.d.ts +8 -0
  171. package/dist/env/task/plugins/index.js +1 -1
  172. package/dist/env/task/plugins/lark-card-action-handler.d.ts +166 -0
  173. package/dist/env/task/plugins/lark-card-patch-notifier.d.ts +651 -0
  174. package/dist/env/task/plugins/lark-cli-task-notify-plugin.d.ts +248 -0
  175. package/dist/env/task/plugins/max-iteration-reminder-plugin.d.ts +112 -0
  176. package/dist/env/task/plugins/per-task-group-chat-plugin.d.ts +561 -0
  177. package/dist/env/task/plugins/task-tag-plugin.d.ts +70 -0
  178. package/dist/env/task/plugins/workflow-extractor-agent.d.ts +43 -0
  179. package/dist/env/task/registry-hook-installer.d.ts +43 -0
  180. package/dist/env/task/storage/index.d.ts +5 -0
  181. package/dist/env/task/storage/migrations/001_add_project_path_context.d.ts +14 -0
  182. package/dist/env/task/storage/migrations/002_add_task_type.d.ts +14 -0
  183. package/dist/env/task/storage/migrations/003_add_process_description.d.ts +20 -0
  184. package/dist/env/task/storage/migrations/004_rename_action_to_milestone.d.ts +37 -0
  185. package/dist/env/task/storage/migrations/005_convert_blob_description_to_text.d.ts +51 -0
  186. package/dist/env/task/storage/sqlite-task-store.d.ts +241 -0
  187. package/dist/env/task/tag-service.d.ts +138 -0
  188. package/dist/env/task/task-child-context.d.ts +70 -0
  189. package/dist/env/task/task-component.d.ts +270 -0
  190. package/dist/env/task/task-config-registration.d.ts +19 -0
  191. package/dist/env/task/task-creation-registry.d.ts +181 -0
  192. package/dist/env/task/task-reuse-context.d.ts +52 -0
  193. package/dist/env/task/task-reuse-registry.d.ts +31 -0
  194. package/dist/env/task/tools/batch-archive-tool.d.ts +9 -0
  195. package/dist/env/task/tools/batch-delete-tool.d.ts +9 -0
  196. package/dist/env/task/tools/complete-tool.d.ts +12 -0
  197. package/dist/env/task/tools/create-tool.d.ts +6 -0
  198. package/dist/env/task/tools/delete-tool.d.ts +6 -0
  199. package/dist/env/task/tools/get-tool.d.ts +6 -0
  200. package/dist/env/task/tools/index.d.ts +13 -0
  201. package/dist/env/task/tools/list-tool.d.ts +6 -0
  202. package/dist/env/task/tools/operation/create-tool.d.ts +12 -0
  203. package/dist/env/task/tools/operation/delete-tool.d.ts +6 -0
  204. package/dist/env/task/tools/operation/get-tool.d.ts +6 -0
  205. package/dist/env/task/tools/operation/index.d.ts +8 -0
  206. package/dist/env/task/tools/operation/list-tool.d.ts +6 -0
  207. package/dist/env/task/tools/operation/operation-types.d.ts +225 -0
  208. package/dist/env/task/tools/operation/update-tool.d.ts +6 -0
  209. package/dist/env/task/tools/search-tool.d.ts +9 -0
  210. package/dist/env/task/tools/task-tree-tool.d.ts +65 -0
  211. package/dist/env/task/tools/task-types.d.ts +255 -0
  212. package/dist/env/task/tools/update-tool.d.ts +6 -0
  213. package/dist/env/task/types.d.ts +290 -0
  214. package/dist/env/tool/built-in/bash-effect.d.ts +36 -0
  215. package/dist/env/tool/built-in/bash.d.ts +16 -0
  216. package/dist/env/tool/built-in/echo.d.ts +7 -0
  217. package/dist/env/tool/built-in/edit-file.d.ts +6 -0
  218. package/dist/env/tool/built-in/glob.d.ts +6 -0
  219. package/dist/env/tool/built-in/grep.d.ts +6 -0
  220. package/dist/env/tool/built-in/index.d.ts +39 -0
  221. package/dist/env/tool/built-in/query-background-process-tool.d.ts +113 -0
  222. package/dist/env/tool/built-in/read-file.d.ts +5 -0
  223. package/dist/env/tool/built-in/understand-image.d.ts +59 -0
  224. package/dist/env/tool/built-in/write-file.d.ts +5 -0
  225. package/dist/env/tool/index.d.ts +16 -0
  226. package/dist/env/tool/registry.d.ts +61 -0
  227. package/dist/env/tool/tool-component.d.ts +242 -0
  228. package/dist/env/tool/tool-config-registration.d.ts +18 -0
  229. package/dist/env/tool/types.d.ts +274 -0
  230. package/dist/env/tool/validator.d.ts +14 -0
  231. package/dist/env/types.d.ts +184 -0
  232. package/dist/env/workflow/decorators/decorator-node.d.ts +76 -0
  233. package/dist/env/workflow/decorators/edge.d.ts +42 -0
  234. package/dist/env/workflow/decorators/index.d.ts +13 -0
  235. package/dist/env/workflow/decorators/node-as.d.ts +40 -0
  236. package/dist/env/workflow/decorators/workflow.d.ts +30 -0
  237. package/dist/env/workflow/engine/dag-manager.d.ts +176 -0
  238. package/dist/env/workflow/engine/engine.d.ts +375 -0
  239. package/dist/env/workflow/engine/event-bus.d.ts +54 -0
  240. package/dist/env/workflow/engine/executor.d.ts +122 -0
  241. package/dist/env/workflow/engine/index.d.ts +15 -0
  242. package/dist/env/workflow/engine/node-registry.d.ts +159 -0
  243. package/dist/env/workflow/engine/scheduler.d.ts +164 -0
  244. package/dist/env/workflow/extractor/workflow-converter.d.ts +55 -0
  245. package/dist/env/workflow/fixtures.d.ts +401 -0
  246. package/dist/env/workflow/hooks/index.d.ts +4 -0
  247. package/dist/env/workflow/hooks/workflow-hook-points.d.ts +161 -0
  248. package/dist/env/workflow/index.d.ts +30 -0
  249. package/dist/env/workflow/index.js +1 -1
  250. package/dist/env/workflow/metadata/keys.d.ts +6 -0
  251. package/dist/env/workflow/nodes/agent-component-adapter.d.ts +175 -0
  252. package/dist/env/workflow/nodes/agent-node.d.ts +206 -0
  253. package/dist/env/workflow/nodes/ask-user-node.d.ts +66 -0
  254. package/dist/env/workflow/nodes/condition-node.d.ts +39 -0
  255. package/dist/env/workflow/nodes/index.d.ts +8 -0
  256. package/dist/env/workflow/nodes/merge-node.d.ts +40 -0
  257. package/dist/env/workflow/nodes/python-call-node.d.ts +95 -0
  258. package/dist/env/workflow/nodes/skill-node.d.ts +29 -0
  259. package/dist/env/workflow/nodes/tool-node.d.ts +58 -0
  260. package/dist/env/workflow/nodes/workflow-node.d.ts +118 -0
  261. package/dist/env/workflow/plugins/index.d.ts +6 -0
  262. package/dist/env/workflow/plugins/lark-cli-workflow-notify-plugin.d.ts +107 -0
  263. package/dist/env/workflow/plugins/workflow-json-output-plugin.d.ts +166 -0
  264. package/dist/env/workflow/runtime/runtime-cancellation-scope.d.ts +121 -0
  265. package/dist/env/workflow/service/index.d.ts +9 -0
  266. package/dist/env/workflow/service/registry.d.ts +37 -0
  267. package/dist/env/workflow/service/workflow-service.d.ts +422 -0
  268. package/dist/env/workflow/storage/index.d.ts +11 -0
  269. package/dist/env/workflow/storage/mock-repositories.d.ts +106 -0
  270. package/dist/env/workflow/storage/safe-json.d.ts +62 -0
  271. package/dist/env/workflow/storage/sqlite.d.ts +57 -0
  272. package/dist/env/workflow/storage/tag-repo.d.ts +65 -0
  273. package/dist/env/workflow/storage/workflow-repo.d.ts +161 -0
  274. package/dist/env/workflow/tools/ask-user-tool.d.ts +35 -0
  275. package/dist/env/workflow/tools/index.d.ts +16 -0
  276. package/dist/env/workflow/tools/run-workflow.d.ts +130 -0
  277. package/dist/env/workflow/tools/submit-json-output-tool.d.ts +38 -0
  278. package/dist/env/workflow/tools/workflow-add-tool.d.ts +47 -0
  279. package/dist/env/workflow/tools/workflow-get-tool.d.ts +29 -0
  280. package/dist/env/workflow/tools/workflow-list-tool.d.ts +55 -0
  281. package/dist/env/workflow/tools/workflow-run-status-tool.d.ts +26 -0
  282. package/dist/env/workflow/tools/workflow-run-stop-tool.d.ts +29 -0
  283. package/dist/env/workflow/tools/workflow-search-tool.d.ts +33 -0
  284. package/dist/env/workflow/tools/workflow-tag-list-tool.d.ts +59 -0
  285. package/dist/env/workflow/tools/workflow-validate-tool.d.ts +60 -0
  286. package/dist/env/workflow/types/context.d.ts +17 -0
  287. package/dist/env/workflow/types/decorators-types.d.ts +182 -0
  288. package/dist/env/workflow/types/edge.d.ts +33 -0
  289. package/dist/env/workflow/types/event.d.ts +869 -0
  290. package/dist/env/workflow/types/index.d.ts +16 -0
  291. package/dist/env/workflow/types/run.d.ts +235 -0
  292. package/dist/env/workflow/types/workflow-error.d.ts +79 -0
  293. package/dist/env/workflow/types/workflow-hil.d.ts +57 -0
  294. package/dist/env/workflow/types/workflow-message.d.ts +193 -0
  295. package/dist/env/workflow/types/workflow-session.d.ts +17 -0
  296. package/dist/env/workflow/types/workflow.d.ts +654 -0
  297. package/dist/env/workflow/types_compat.d.ts +10 -0
  298. package/dist/env/workflow/utils/agent-session-metadata.d.ts +35 -0
  299. package/dist/env/workflow/utils/build-agent-node-output.d.ts +11 -0
  300. package/dist/env/workflow/utils/create-workflow.d.ts +35 -0
  301. package/dist/env/workflow/utils/dependency-prescan.d.ts +67 -0
  302. package/dist/env/workflow/utils/execution-state.d.ts +46 -0
  303. package/dist/env/workflow/utils/extract-agent-json-output.d.ts +6 -0
  304. package/dist/env/workflow/utils/index.d.ts +14 -0
  305. package/dist/env/workflow/utils/json-schema-to-zod.d.ts +23 -0
  306. package/dist/env/workflow/utils/node-id-utils.d.ts +20 -0
  307. package/dist/env/workflow/utils/node-output-contracts.d.ts +137 -0
  308. package/dist/env/workflow/utils/node-registry-helper.d.ts +36 -0
  309. package/dist/env/workflow/utils/output-schema-hint.d.ts +7 -0
  310. package/dist/env/workflow/utils/parse-agent-output-config.d.ts +9 -0
  311. package/dist/env/workflow/utils/recovery-validator.d.ts +30 -0
  312. package/dist/env/workflow/utils/sensitive-redact.d.ts +37 -0
  313. package/dist/env/workflow/utils/session-parser.d.ts +23 -0
  314. package/dist/env/workflow/utils/session-recovery.d.ts +122 -0
  315. package/dist/env/workflow/utils/template-contract-validator.d.ts +87 -0
  316. package/dist/env/workflow/utils/template-resolver.d.ts +285 -0
  317. package/dist/env/workflow/utils/validate-workflow-definition.d.ts +57 -0
  318. package/dist/env/workflow/utils/validation-rules.d.ts +103 -0
  319. package/dist/env/workflow/utils/workflow-message-metadata.d.ts +20 -0
  320. package/dist/env/workflow/utils/workflow-sanitize.d.ts +51 -0
  321. package/dist/env/workflow/workflow-component.d.ts +138 -0
  322. package/dist/index.d.ts +59 -0
  323. package/dist/index.js +5 -5
  324. package/dist/shared/@ai-setting/{roy-agent-core-rcfewbzr.js → roy-agent-core-4sx6sdb2.js} +1 -1
  325. package/dist/shared/@ai-setting/{roy-agent-core-ezgsem94.js → roy-agent-core-ph5qbqcx.js} +1 -1
  326. package/dist/util/process/process-tree-killer.d.ts +67 -0
  327. package/dist/utils/id.d.ts +11 -0
  328. package/dist/utils/loose-json.d.ts +30 -0
  329. package/dist/utils/media.d.ts +70 -0
  330. package/dist/utils/temp-file-manager/index.d.ts +99 -0
  331. package/package.json +4 -2
  332. /package/dist/shared/@ai-setting/{roy-agent-core-s214vmmd.js → roy-agent-core-4vpk40ss.js} +0 -0
  333. /package/dist/shared/@ai-setting/{roy-agent-core-pkpkctvf.js → roy-agent-core-hch2geta.js} +0 -0
  334. /package/dist/shared/@ai-setting/{roy-agent-core-0cfaqnz9.js → roy-agent-core-k25gv86p.js} +0 -0
@@ -0,0 +1,238 @@
1
+ import { BaseComponent, type ComponentConfig } from "../component";
2
+ import { type LLMConfig, type LLMInvokeRequest, type LLMInvokeResult, type ModelLimits } from "./types";
3
+ import type { ConfigComponent } from "../../config/config-component";
4
+ import { ContextError } from "../errors";
5
+ /**
6
+ * Resolve fallback provider config by reading `~/.roy-agent/auth.json` and
7
+ * `~/.roy-agent/config.jsonc` directly (Task #2888 follow-up).
8
+ *
9
+ * Why this exists:
10
+ * When PiAiAdapter.stream() fails (e.g. finishReason=error, MIME 400, etc.),
11
+ * LLMComponent.invoke() falls back to AI SDK invoke(). The fallback must
12
+ * NOT reuse ctx.invokeConfig blindly — for some custom providers (e.g.
13
+ * minimax) that combination produces the wrong URL and HTTP 404. Reading
14
+ * config-driven per-provider baseURL/apiKey from auth.json is the
15
+ * user-controlled source of truth.
16
+ *
17
+ * Returned shape is just enough for the fallback path:
18
+ * - baseURL: from auth.json.providers.{name}.baseURL
19
+ * - apiKey: from auth.json.providers.{name}.apiKey
20
+ * - providerType: from config.jsonc.llm.providers.{name}.provider
21
+ * (defaults to "openai-compatible" if missing)
22
+ *
23
+ * @throws Error when auth.json has no entry for `providerId`
24
+ */
25
+ export interface FallbackProviderConfig {
26
+ baseURL: string;
27
+ apiKey: string;
28
+ providerType: string;
29
+ }
30
+ export declare function resolveFallbackProviderConfig(providerId: string): Promise<FallbackProviderConfig>;
31
+ /**
32
+ * LLMComponent 配置(通过 options.config 传递)
33
+ *
34
+ * 配置加载顺序(优先级从低到高):
35
+ * 1. File - 配置文件(通过 configPath 指定)
36
+ * 2. Env - 环境变量(通过 envPrefix 配置前缀)
37
+ * 3. Object - 直接传入的 config 对象(最高优先级)
38
+ *
39
+ * 环境变量转换规则:
40
+ * - 驼峰命名会被转换为下划线分隔的大写形式
41
+ * - 例如: "llm.defaultModel" + prefix "LLM" -> "LLM_LLM_DEFAULT_MODEL"
42
+ */
43
+ export interface LLMComponentOptions {
44
+ /** ConfigComponent 实例(必填) */
45
+ configComponent: ConfigComponent;
46
+ /** 配置文件相对路径(可选,基于 XDG_DATA_HOME) */
47
+ configPath?: string;
48
+ /** 环境变量前缀(可选,默认 "LLM") */
49
+ envPrefix?: string;
50
+ /** 直接传入的配置对象(可选,优先级最高) */
51
+ config?: Partial<LLMConfig>;
52
+ }
53
+ /**
54
+ * LLMComponent
55
+ * 管理 LLM 调用,使用 AI SDK 进行实际调用
56
+ *
57
+ * 配置通过 ConfigComponent 实时获取,支持配置热更新
58
+ *
59
+ * @example
60
+ * // 通过 ConfigComponent 加载配置
61
+ * const configComponent = new ConfigComponent();
62
+ * configComponent.setXdgDataHome(__dirname);
63
+ *
64
+ * const llmComponent = new LLMComponent();
65
+ * await llmComponent.init({
66
+ * env, // Environment 实例(必填)
67
+ * options: {
68
+ * configComponent, // ConfigComponent 实例
69
+ * configPath: "config.jsonc" // 配置文件路径
70
+ * }
71
+ * });
72
+ *
73
+ * // 配置更新后,下次调用会自动获取最新配置
74
+ * configComponent.set("llm.temperature", 0.5);
75
+ */
76
+ export declare class LLMComponent extends BaseComponent {
77
+ readonly name = "llm";
78
+ readonly version = "2.0.0";
79
+ private configComponent?;
80
+ /** 配置变更 watcher 清理函数 */
81
+ private configWatcher?;
82
+ /**
83
+ * P1-3: Cached LLM adapter instance.
84
+ *
85
+ * Instead of calling createLLMAdapter() on every invoke(), we cache the
86
+ * adapter here. The adapter is created lazily on first use and rebuilt
87
+ * only when the provider environment variable changes (via
88
+ * invalidateAdapterCache()).
89
+ */
90
+ private cachedAdapter?;
91
+ /** The provider name that was used to create the cached adapter */
92
+ private cachedAdapterProvider?;
93
+ constructor();
94
+ /**
95
+ * 初始化组件
96
+ *
97
+ * 配置加载优先级(从高到低):
98
+ * 1. Object - 直接传入的 config 对象
99
+ * 2. Env - 环境变量(通过 envPrefix 配置前缀)
100
+ * 3. File - 配置文件(通过 configPath 指定)
101
+ */
102
+ init(config: ComponentConfig): Promise<void>;
103
+ /**
104
+ * 注册配置到 ConfigComponent
105
+ *
106
+ * 配置加载顺序(优先级从低到高):
107
+ * 1. FileSource - 从配置文件加载(最低)
108
+ * 2. EnvSource - 从环境变量加载(中等)
109
+ * 3. MemorySource - 直接配置对象(最高)
110
+ */
111
+ private registerConfig;
112
+ /**
113
+ * 将配置对象展平为点号路径
114
+ *
115
+ * @example
116
+ * flattenConfig({ providers: { openai: { apiKey: "xxx" } } })
117
+ * -> { "llm.providers.openai.apiKey": "xxx" }
118
+ */
119
+ private flattenConfig;
120
+ /**
121
+ * 注册配置热更新监听
122
+ */
123
+ private registerConfigWatcher;
124
+ /**
125
+ * 处理配置变更(支持热更新)
126
+ */
127
+ protected onConfigChange(event: {
128
+ key: string;
129
+ oldValue?: unknown;
130
+ newValue?: unknown;
131
+ }): void;
132
+ /**
133
+ * 启动组件
134
+ */
135
+ onStart(): Promise<void>;
136
+ /**
137
+ * 停止组件
138
+ */
139
+ onStop(): Promise<void>;
140
+ /**
141
+ * 从配置源获取配置值
142
+ * 优先从 ConfigComponent 获取(支持热更新),否则返回默认值
143
+ */
144
+ private getLLMConfig;
145
+ /**
146
+ * 解析请求,构建调用上下文(invoke 和 invokeStream 共享)
147
+ */
148
+ private resolveRequest;
149
+ /**
150
+ * 调用 LLM
151
+ *
152
+ * 路由策略(Task 6 实现):
153
+ * - 读取 ROY_LLM_PROVIDER 环境变量(默认 pi-ai)
154
+ * - 通过 createLLMAdapter().chat() 统一接入
155
+ * - 若 PiAiAdapter 失败(如 model 不支持),保留 fallback 路径
156
+ *
157
+ * 流式事件通过 env.pushEnvEvent() 发布
158
+ */
159
+ /**
160
+ * P1-3: Get or create the cached LLM adapter.
161
+ *
162
+ * The adapter is created once and cached. If the ROY_LLM_PROVIDER
163
+ * environment variable changes, call invalidateAdapterCache() to force
164
+ * a rebuild on the next invoke().
165
+ */
166
+ private getAdapter;
167
+ /**
168
+ * P1-3: Invalidate the cached adapter.
169
+ *
170
+ * Call this when the LLM provider environment variable changes to force
171
+ * the adapter to be recreated on the next invoke().
172
+ */
173
+ invalidateAdapterCache(): void;
174
+ invoke(request: LLMInvokeRequest): Promise<LLMInvokeResult>;
175
+ /**
176
+ * Task #2719: 消费 adapter.stream() 返回的事件流,把 pi-ai AssistantMessageEvent
177
+ * 转成 llm.text / llm.reasoning env 事件(这样 Ink interactive 可以逐字渲染),
178
+ * 然后调用 streamHandle.result() 拿到最终 ChatResponse。
179
+ *
180
+ * 处理的事件类型(pi-ai AssistantMessageEvent):
181
+ * - text_delta → llm.text (delta + 累计 content)
182
+ * - thinking_delta → llm.reasoning (delta + 累计 content)
183
+ * - 其他事件(start/text_start/text_end/thinking_start/thinking_end/toolcall_xxx/done/error)跳过
184
+ *
185
+ * AiSdkAdapter.stream() 会 yield 单个完整 output 对象(不包含 type 字段),
186
+ * 不属于以上任意类型,所以不会被错误识别为流式事件。
187
+ */
188
+ private consumeStreamAndGetResult;
189
+ /**
190
+ * 公共收尾逻辑:threshold check + return LLMInvokeResult
191
+ */
192
+ private finalizeOutput;
193
+ /**
194
+ * 获取 Provider API Key
195
+ */
196
+ private getApiKey;
197
+ /**
198
+ * 获取 Provider
199
+ */
200
+ getProvider(id: string): import("./types").ProviderConfig;
201
+ /**
202
+ * 列出所有 Provider
203
+ */
204
+ listProviders(): string[];
205
+ /**
206
+ * 获取模型的限制配置
207
+ *
208
+ * @param providerId - Provider ID
209
+ * @param modelId - 模型 ID(可选,默认使用 provider 的 defaultModel)
210
+ * @returns 模型限制配置,如果没有配置则返回 undefined
211
+ */
212
+ getModelLimits(providerId: string, modelId?: string): ModelLimits | undefined;
213
+ /**
214
+ * 获取上下文窗口阈值配置
215
+ *
216
+ * @param providerId - Provider ID
217
+ * @param modelId - 模型 ID
218
+ * @returns 包含 contextWindow 和 thresholdRatio 的对象
219
+ */
220
+ getContextThresholdConfig(providerId: string, modelId?: string): {
221
+ contextWindow: number;
222
+ thresholdRatio: number;
223
+ };
224
+ /**
225
+ * 检测上下文阈值是否超过
226
+ *
227
+ * @param usage - LLM 使用量信息
228
+ * @param providerId - Provider ID
229
+ * @param modelId - 模型 ID
230
+ * @param sessionId - Session ID(用于错误信息)
231
+ * @returns 如果超过阈值,返回 ContextError;否则返回 undefined
232
+ */
233
+ checkContextThreshold(usage: {
234
+ totalTokens: number;
235
+ promptTokens?: number;
236
+ completionTokens?: number;
237
+ } | undefined, providerId: string, modelId: string | undefined, sessionId?: string): ContextError | undefined;
238
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @fileoverview OpenCode Go provider helpers.
3
+ *
4
+ * The OpenCode Go inference endpoint (`https://opencode.ai/inference/go/v1`)
5
+ * requires a stable `x-opencode-session` header per conversation; without it the
6
+ * server responds `400 MissingSessionID` and the request cannot be routed:
7
+ * https://opencode.ai/docs/go/#how-it-works
8
+ *
9
+ * This module is the single source of truth for:
10
+ * 1. detecting the OpenCode Go provider id, and
11
+ * 2. generating / memoizing a stable session id per conversation.
12
+ *
13
+ * Why it lives here instead of inside `invoke.ts`:
14
+ * roy-agent has TWO LLM transports that both hit the same endpoint —
15
+ * - `PiAiAdapter` (default path, `ROY_LLM_PROVIDER=pi-ai`)
16
+ * - `invoke()` in `invoke.ts` (AI SDK fallback, `ROY_LLM_PROVIDER=ai-sdk`)
17
+ * The header injection must be shared so neither path silently regresses.
18
+ * Historically only the AI SDK path injected it, so the default pi-ai path
19
+ * always failed with `MissingSessionID` and relied on the fallback.
20
+ *
21
+ * Provider id normalization:
22
+ * Users have registered the provider under several spellings across time
23
+ * (`opencode`, `opencode-go`, `opencodego`; see Task #4168 / #4170 / #4173).
24
+ * We normalize case and strip `-`/`_` so all of them match. The Feishu
25
+ * channel's chat-keyed session ids (`oc_...`) are irrelevant here: the header
26
+ * value is always a freshly generated `ses_...` id, so any conversation id
27
+ * (including `oc_...`) works as the cache key.
28
+ */
29
+ /**
30
+ * Generate an OpenCode-compatible `x-opencode-session` id.
31
+ *
32
+ * Official client format (sst/opencode source analysis, Task #4165):
33
+ * `ses_<12 hex timestamp><14 base62 random>` = 30 chars
34
+ *
35
+ * We do not enforce the exact 30-char length (the server only validates the
36
+ * `ses_` prefix and a minimum length), but we keep the same shape so the output
37
+ * is easy to recognize alongside the official client.
38
+ *
39
+ * @param nowMs - injectable clock (for tests)
40
+ */
41
+ export declare function generateOpencodeSessionId(nowMs?: number): string;
42
+ /**
43
+ * True when `providerId` refers to the OpenCode Go provider.
44
+ *
45
+ * Recognizes `opencode`, `opencode-go`, `opencode_go` and `opencodego`
46
+ * (case-insensitive). Unrelated providers (e.g. `deepseek`, `openai`) return
47
+ * false so we never send the header to endpoints that don't understand it.
48
+ */
49
+ export declare function isOpencodeProvider(providerId: string | undefined | null): boolean;
50
+ /**
51
+ * True when `baseURL` points at the OpenCode Go inference endpoint.
52
+ *
53
+ * Id-based detection misses the case where a user points some other provider
54
+ * name at the OpenCode endpoint; endpoint detection closes that gap. Only the
55
+ * official host is matched so unrelated gateways are unaffected.
56
+ */
57
+ export declare function isOpencodeEndpoint(baseURL: string | undefined | null): boolean;
58
+ /**
59
+ * Get (or create) the stable OpenCode session id for a conversation.
60
+ *
61
+ * `x-opencode-session` must be STABLE for the lifetime of a conversation
62
+ * (the server uses it for routing/caching, see #4168). The header is injected
63
+ * once per LLM turn, so we memoize the generated id per conversation key.
64
+ *
65
+ * - `conversationId` undefined → return an ephemeral id (no stable key to
66
+ * cache under, better than poisoning a shared entry).
67
+ * - The cache is a bounded FIFO so long-lived processes cannot grow it forever.
68
+ */
69
+ export declare function getOrCreateOpencodeSessionId(conversationId: string | undefined, nowMs?: number): string;
70
+ /**
71
+ * Build the request headers for a provider.
72
+ *
73
+ * Returns `{ "x-opencode-session": "ses_..." }` for OpenCode Go providers and
74
+ * an empty object for everyone else. Match is by provider id OR endpoint, so it
75
+ * keeps working if the provider is registered under a different name.
76
+ */
77
+ export declare function buildOpencodeHeaders(providerId: string | undefined | null, conversationId?: string, baseURL?: string): Record<string, string>;
78
+ /** Test-only: reset the conversation → session id cache between cases. */
79
+ export declare function __clearOpencodeSessionIdCache(): void;
@@ -0,0 +1,40 @@
1
+ import type { LLMConfig, LLMProvider, ProviderConfig } from "./types";
2
+ /**
3
+ * Provider 管理器
4
+ * 负责创建和管理 LLM Provider 实例
5
+ */
6
+ export declare class ProviderManager {
7
+ private providers;
8
+ /**
9
+ * 从配置初始化所有 Provider
10
+ */
11
+ initialize(config: LLMConfig): Promise<void>;
12
+ /**
13
+ * 获取 Provider
14
+ */
15
+ getProvider(id: string): LLMProvider | undefined;
16
+ /**
17
+ * 列出所有 Provider
18
+ */
19
+ listProviders(): LLMProvider[];
20
+ /**
21
+ * 解析 Provider 配置中的环境变量
22
+ */
23
+ resolveProviderConfig(config: ProviderConfig): Promise<ProviderConfig>;
24
+ /**
25
+ * 解析环境变量
26
+ * 支持 ${VAR} 格式
27
+ */
28
+ resolveEnvVar(value: string): Promise<string>;
29
+ /**
30
+ * 创建 Provider 实例
31
+ * 注意:实际创建需要根据 Provider 类型调用对应的 AI SDK
32
+ * 这里返回占位实现,真正的 Provider 创建需要 AI SDK 依赖
33
+ */
34
+ private createProvider;
35
+ /**
36
+ * 根据类型创建实际的 Provider 实例
37
+ * 需要外部传入 AI SDK 的 createProvider
38
+ */
39
+ createAIProvider(id: string, config: ProviderConfig, createFn: (apiKey: string, baseURL?: string) => unknown): LLMProvider;
40
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @fileoverview Tool call arguments parser - handles double-stringified JSON.
3
+ *
4
+ * LLMs sometimes double-stringify JSON arguments (a JSON string containing
5
+ * another JSON string). This module provides a safe parser that recursively
6
+ * attempts to parse until a real object is obtained, without leaking internal
7
+ * mechanisms like `_raw` into the conversation history.
8
+ *
9
+ * Features:
10
+ * - Recursive parsing for double/multi-stringified JSON
11
+ * - Debug logging when recursion is detected (alerts developers to LLM anomalies)
12
+ * - Maximum recursion depth protection (default: 5) to prevent infinite loops
13
+ */
14
+ /**
15
+ * 尝试把「文本工具调用标记」形式的参数抢救成 JSON 对象
16
+ *
17
+ * 输入形如:`<arg_key>command</arg_key><arg_value>ls -la</arg_value>`
18
+ * 或散落在一段乱码 JSON 里的若干组标记。
19
+ *
20
+ * @returns 抢救成功返回对象;失败返回 undefined
21
+ */
22
+ export declare function salvageTextualToolArgs(raw: string): Record<string, unknown> | undefined;
23
+ /** 剥掉文本工具调用标记(用于把"值里混进 marker"的脏 JSON 尽量救回来) */
24
+ export declare function stripTextualToolArgsMarkers(raw: string): string;
25
+ /** 参数解析结果(严格模式) */
26
+ export interface StrictToolArgsResult {
27
+ ok: boolean;
28
+ args: Record<string, unknown>;
29
+ /** 失败原因(ok=false 时给人/模型看) */
30
+ error?: string;
31
+ /** 是否经过抢救(marker 剥离 / 文本标记重建) */
32
+ salvaged?: boolean;
33
+ }
34
+ /**
35
+ * 严格解析 tool 参数(Task #4231)
36
+ *
37
+ * 与 `safeParseToolArgs` 的差别:
38
+ * - 失败时**不返回空对象**,而是 `{ok:false, error}` —— 调用方必须把错误回给模型,
39
+ * 不能拿 `{}` 去执行工具(否则会执行乱码命令 / 默认参数造成误操作)。
40
+ * - 会先尝试抢救上游退化格式(GLM 文本工具调用标记)。
41
+ */
42
+ export declare function parseToolArgsStrict(args: unknown): StrictToolArgsResult;
43
+ /**
44
+ * 递归清洗参数值里混入的上游文本工具调用标记(Task #4231)
45
+ *
46
+ * 只动字符串值,不改变结构;marker 被削掉后若变成空串则保留空串(不删 key,
47
+ * 避免工具因缺字段报"缺参数")。
48
+ */
49
+ export declare function sanitizeArgValues(args: Record<string, unknown>): Record<string, unknown>;
50
+ /**
51
+ * Safely parse tool call arguments, handling double-stringified JSON.
52
+ *
53
+ * LLMs sometimes double-stringify JSON arguments (a JSON string containing
54
+ * another JSON string). This function recursively attempts to parse until
55
+ * a real object is obtained.
56
+ *
57
+ * @param args - The arguments value (string, object, or double-stringified string)
58
+ * @param depth - Current recursion depth (internal use, default 0)
59
+ * @returns Parsed object, or empty object if parsing fails entirely
60
+ *
61
+ * @example
62
+ * // Normal object - returned as-is
63
+ * safeParseToolArgs({ key: "value" }) // => { key: "value" }
64
+ *
65
+ * @example
66
+ * // Normal JSON string - parsed
67
+ * safeParseToolArgs('{"key": "value"}') // => { key: "value" }
68
+ *
69
+ * @example
70
+ * // Double-stringified JSON - recursively parsed
71
+ * safeParseToolArgs('"{\\"key\\": \\"value\\"}"') // => { key: "value" }
72
+ *
73
+ * @example
74
+ * // Invalid JSON - returns empty object (no _raw leak)
75
+ * safeParseToolArgs("{invalid}") // => {}
76
+ */
77
+ export declare function safeParseToolArgs(args: unknown, depth?: number): Record<string, unknown>;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @fileoverview Tool parameters → JSON Schema(**消除悬空 $ref**)Task #4231
3
+ *
4
+ * ## 背景(真实线上故障,2026-10-15)
5
+ *
6
+ * 切到 `opencodego`(openai-compatible)provider 后,sub-agent 直接失败:
7
+ *
8
+ * ```
9
+ * Upstream request failed: [invalid_request_error]
10
+ * Invalid schema for function 'task_operation_create':
11
+ * Pointer '/definitions/zod/properties/milestone_type' does not exist
12
+ * ```
13
+ *
14
+ * 根因:`zod-to-json-schema` 用 `zodToJsonSchema(schema, "zod")` 会把 schema 包成
15
+ *
16
+ * ```json
17
+ * { "$ref": "#/definitions/zod", "definitions": { "zod": { ... } } }
18
+ * ```
19
+ *
20
+ * 而各处的"解包"逻辑只把 `definitions.zod` 提出来当顶层 schema,**丢掉了
21
+ * `definitions`**,但 `definitions.zod.properties` 里可能还有**指向 definitions 的
22
+ * `$ref`**(同一 Zod 实例被复用时,例如 `milestone_type` 与 `action_type` 共用
23
+ * 同一个 `z.enum(...)` 实例 → `action_type: {"$ref": "#/definitions/zod/properties/milestone_type"}`)。
24
+ *
25
+ * 解包后这些 `$ref` 就成了悬空指针:
26
+ * - 宽松的 provider(Anthropic / 部分网关)容忍 → 一直没暴露;
27
+ * - **strict 校验的 OpenAI 兼容网关(opencodego)直接 400**。
28
+ *
29
+ * ## 修法
30
+ *
31
+ * 统一走 `toolParametersToJsonSchema()`:
32
+ * 1. Zod → JSON Schema(带 name 也不怕)
33
+ * 2. **就地把所有 `$ref` 展开(dereference)**,支持
34
+ * `#/definitions/<name>`、`#/definitions/<name>/properties/<p>`、
35
+ * `#/$defs/...` 等指针,带环保护
36
+ * 3. 丢掉 `definitions` / `$defs` / `$schema`,保证顶层是
37
+ * `{ type: "object", properties: {...} }`
38
+ *
39
+ * 换 provider / 换 SDK 都不会再因为 schema 指针炸掉。
40
+ */
41
+ /** 判断是否是 Zod schema(zod v3/v4 都有 _def) */
42
+ export declare function isZodSchema(obj: unknown): boolean;
43
+ /**
44
+ * 深度扫描:schema 里是否还有 `$ref`(测试/自检用)
45
+ *
46
+ * @returns 找到的 ref 列表(空数组 = 干净)
47
+ */
48
+ export declare function findDanglingRefs(schema: unknown): string[];
49
+ /**
50
+ * 把 tool 的 `parameters` 规范化成可以直接发给 provider 的 JSON Schema
51
+ *
52
+ * @param parameters Zod schema 或已经是 JSON Schema 的对象
53
+ */
54
+ export declare function toolParametersToJsonSchema(parameters: unknown): Record<string, unknown>;
@@ -0,0 +1,57 @@
1
+ import type { LLMMessage, ToolInfo, ToolResult } from "./types";
2
+ /**
3
+ * LLM 消息转换工具
4
+ */
5
+ export declare class LLMTransform {
6
+ /**
7
+ * 标准化消息格式
8
+ * 根据不同 Provider 调整消息格式
9
+ */
10
+ normalizeMessages(messages: LLMMessage[], providerType: string): LLMMessage[];
11
+ /**
12
+ * 标准化为 OpenAI 格式
13
+ */
14
+ private normalizeForOpenAI;
15
+ /**
16
+ * 标准化为 Anthropic 格式
17
+ */
18
+ private normalizeForAnthropic;
19
+ /**
20
+ * 从 ToolInfo 提取 JSON Schema
21
+ */
22
+ extractToolSchema(tool: ToolInfo): {
23
+ name: string;
24
+ description?: string;
25
+ parameters: Record<string, unknown>;
26
+ };
27
+ /**
28
+ * 将 Zod Schema 转换为 JSON Schema
29
+ * 兼容 Zod v3 和 v4
30
+ */
31
+ zodToJsonSchema(schema: any): Record<string, unknown>;
32
+ /**
33
+ * 提取 Zod Schema 的结构
34
+ * 兼容 Zod v3 和 v4
35
+ *
36
+ * Zod v3: schema._def.typeName === "ZodObject"
37
+ * Zod v4: schema._def.type === "object"
38
+ */
39
+ private extractZodSchema;
40
+ /**
41
+ * 格式化工具结果
42
+ */
43
+ formatToolResult(result: ToolResult): {
44
+ role: "tool";
45
+ tool_call_id: string;
46
+ content: string;
47
+ isError?: boolean;
48
+ };
49
+ /**
50
+ * 解析工具参数
51
+ */
52
+ parseToolArguments(args: string): Record<string, unknown>;
53
+ /**
54
+ * 序列化工具参数为 JSON 字符串
55
+ */
56
+ serializeToolArguments(args: Record<string, unknown>): string;
57
+ }