minimal-agent 0.12.0 → 0.14.0

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 (472) hide show
  1. package/README.md +6 -5
  2. package/package.json +62 -5
  3. package/plugins/computer_use/.claude-plugin/plugin.json +1 -1
  4. package/plugins/cron-runner/src/commands.js +4 -4
  5. package/plugins/cron-runner/src/commands.ts +4 -4
  6. package/plugins/workflow-runner/.claude-plugin/plugin.json +2 -2
  7. package/plugins/workflow-runner/commands/workflow.md +57 -90
  8. package/plugins/workflow-runner/commands/workflows.md +4 -4
  9. package/plugins/workflow-runner/plugin.js +24 -13
  10. package/plugins/workflow-runner/plugin.ts +28 -13
  11. package/plugins/workflow-runner/src/discovery.js +160 -0
  12. package/plugins/workflow-runner/src/discovery.ts +194 -0
  13. package/plugins/workflow-runner/src/goalAnchor.js +53 -0
  14. package/plugins/workflow-runner/src/goalAnchor.ts +59 -0
  15. package/plugins/workflow-runner/src/index.js +204 -185
  16. package/plugins/workflow-runner/src/index.ts +249 -224
  17. package/plugins/workflow-runner/src/inputCoercion.js +40 -0
  18. package/plugins/workflow-runner/src/inputCoercion.ts +43 -0
  19. package/plugins/workflow-runner/src/journal.js +224 -0
  20. package/plugins/workflow-runner/src/journal.ts +274 -0
  21. package/plugins/workflow-runner/src/jsonSchema.js +132 -0
  22. package/plugins/workflow-runner/src/jsonSchema.ts +162 -0
  23. package/plugins/workflow-runner/src/moduleResolution.js +64 -0
  24. package/plugins/workflow-runner/src/moduleResolution.ts +71 -0
  25. package/plugins/workflow-runner/src/resourceInputs.js +220 -0
  26. package/plugins/workflow-runner/src/resourceInputs.ts +300 -0
  27. package/plugins/workflow-runner/src/runner.js +404 -467
  28. package/plugins/workflow-runner/src/runner.ts +491 -535
  29. package/plugins/workflow-runner/src/runtime/config.js +46 -0
  30. package/plugins/workflow-runner/src/runtime/config.ts +69 -0
  31. package/plugins/workflow-runner/src/runtime/context.js +1304 -0
  32. package/plugins/workflow-runner/src/runtime/context.ts +1786 -0
  33. package/plugins/workflow-runner/src/runtime/exec.js +34 -0
  34. package/plugins/workflow-runner/src/runtime/exec.ts +53 -0
  35. package/plugins/workflow-runner/src/runtime/flow.js +8 -0
  36. package/plugins/workflow-runner/src/runtime/flow.ts +12 -0
  37. package/plugins/workflow-runner/src/runtime/fs.js +27 -0
  38. package/plugins/workflow-runner/src/runtime/fs.ts +41 -0
  39. package/plugins/workflow-runner/src/runtime/model.js +6 -0
  40. package/plugins/workflow-runner/src/runtime/model.ts +8 -0
  41. package/plugins/workflow-runner/src/runtime/output.js +7 -0
  42. package/plugins/workflow-runner/src/runtime/output.ts +21 -0
  43. package/plugins/workflow-runner/src/runtime/scheduler.js +141 -0
  44. package/plugins/workflow-runner/src/runtime/scheduler.ts +166 -0
  45. package/plugins/workflow-runner/src/runtime/state.js +16 -0
  46. package/plugins/workflow-runner/src/runtime/state.ts +19 -0
  47. package/plugins/workflow-runner/src/runtime/tools.js +3 -0
  48. package/plugins/workflow-runner/src/runtime/tools.ts +6 -0
  49. package/plugins/workflow-runner/src/sandbox.js +141 -0
  50. package/plugins/workflow-runner/src/sandbox.ts +182 -0
  51. package/plugins/workflow-runner/src/scriptGuard.d.mts +38 -0
  52. package/plugins/workflow-runner/src/scriptGuard.mjs +449 -0
  53. package/plugins/workflow-runner/src/taskIdentity.js +172 -152
  54. package/plugins/workflow-runner/src/taskIdentity.ts +233 -200
  55. package/plugins/workflow-runner/src/toolRuntime.js +29 -8
  56. package/plugins/workflow-runner/src/toolRuntime.ts +36 -11
  57. package/plugins/workflow-runner/src/types.js +7 -105
  58. package/plugins/workflow-runner/src/types.ts +155 -520
  59. package/plugins/workflow-runner/src/util.js +47 -0
  60. package/plugins/workflow-runner/src/util.ts +51 -0
  61. package/plugins/workflow-runner/src/workflowContext.js +20 -0
  62. package/plugins/workflow-runner/src/workflowContext.ts +58 -0
  63. package/plugins/workflow-runner/src/workflowDependencies.js +36 -0
  64. package/plugins/workflow-runner/src/workflowDependencies.ts +59 -0
  65. package/plugins/workflow-runner/src/workflowFingerprint.js +118 -0
  66. package/plugins/workflow-runner/src/workflowFingerprint.ts +122 -0
  67. package/plugins/workflow-runner/src/workflowState.js +542 -469
  68. package/plugins/workflow-runner/src/workflowState.ts +639 -589
  69. package/plugins/workflow-runner/test/api.test.ts +223 -0
  70. package/plugins/workflow-runner/test/apiCapabilities.test.ts +614 -0
  71. package/plugins/workflow-runner/test/apiConcurrencyGate.test.ts +104 -0
  72. package/plugins/workflow-runner/test/apiEcho.test.ts +210 -0
  73. package/plugins/workflow-runner/test/apiReadText.test.ts +178 -0
  74. package/plugins/workflow-runner/test/apiResourceLedger.test.ts +184 -0
  75. package/plugins/workflow-runner/test/childWorkflow.test.ts +304 -0
  76. package/plugins/workflow-runner/test/discovery.test.ts +234 -0
  77. package/plugins/workflow-runner/test/goalAnchor.test.ts +106 -0
  78. package/plugins/workflow-runner/test/goalController.test.ts +317 -0
  79. package/plugins/workflow-runner/test/journalLanes.test.ts +198 -0
  80. package/plugins/workflow-runner/test/listResources.test.ts +106 -0
  81. package/plugins/workflow-runner/test/resourceInputs.test.ts +294 -0
  82. package/plugins/workflow-runner/test/sandbox.test.ts +126 -0
  83. package/plugins/workflow-runner/test/scheduler.test.ts +70 -0
  84. package/plugins/workflow-runner/test/scriptGuard.test.ts +276 -0
  85. package/plugins/workflow-runner/test/skillDocSync.test.ts +78 -0
  86. package/plugins/workflow-runner/test/taskIdentity.test.ts +288 -179
  87. package/plugins/workflow-runner/test/workflowFingerprint.test.ts +106 -0
  88. package/plugins/workflow-runner/test/workflowState.test.ts +429 -0
  89. package/skills/pptx/examples/assets/cover-bg.svg +23 -0
  90. package/skills/pptx/examples/assets/icon-spark.svg +5 -0
  91. package/skills/skill-creator/scripts/run_eval.py +3 -2
  92. package/skills/ui-design/SKILL.md +5 -2
  93. package/skills/ui-design/references/layout-composition.md +1 -1
  94. package/skills/workflow-creator/SKILL.md +344 -0
  95. package/skills/workflow-creator/assets/template/workflow.mjs +48 -0
  96. package/skills/workflow-creator/references/api.md +216 -0
  97. package/skills/workflow-creator/references/migration.md +103 -0
  98. package/skills/workflow-creator/references/patterns.md +779 -0
  99. package/skills/workflow-creator/scripts/list-resources.mjs +205 -0
  100. package/skills/workflow-creator/scripts/scaffold.mjs +148 -0
  101. package/skills/workflow-creator/scripts/validate.mjs +275 -0
  102. package/skills/workflow-creator/scripts/workflow-creator.test.mjs +82 -0
  103. package/src/advisor/advisorCoordinator.js +503 -0
  104. package/src/advisor/advisorCoordinator.ts +657 -0
  105. package/src/cli/configMenu.tsx +0 -1
  106. package/src/cli/print.js +44 -6
  107. package/src/cli/print.ts +73 -4
  108. package/src/cli/streamJson.js +5 -6
  109. package/src/cli/streamJson.ts +8 -4
  110. package/src/cli/wizards/advisorWizard.js +4 -2
  111. package/src/cli/wizards/advisorWizard.tsx +8 -2
  112. package/src/cli/wizards/contextAdvisorWizard.js +5 -4
  113. package/src/cli/wizards/contextAdvisorWizard.tsx +7 -6
  114. package/src/collaboration/taskFlow.js +115 -0
  115. package/src/collaboration/taskFlow.ts +169 -0
  116. package/src/config/configDefaults.js +41 -1
  117. package/src/config/configDefaults.ts +43 -1
  118. package/src/config/configDiagnostics.ts +2 -2
  119. package/src/config/configFile.js +40 -9
  120. package/src/config/configFile.ts +60 -11
  121. package/src/config/configService.js +443 -74
  122. package/src/config/configService.ts +723 -142
  123. package/src/config/numericLimits.js +22 -0
  124. package/src/config/numericLimits.ts +24 -0
  125. package/src/config.js +1 -0
  126. package/src/config.ts +3 -2
  127. package/src/context/budgetPlan.js +1 -1
  128. package/src/context/budgetPlan.ts +1 -1
  129. package/src/context/compact.js +7 -2
  130. package/src/context/compact.ts +9 -2
  131. package/src/context/microCompactLite.js +212 -13
  132. package/src/context/microCompactLite.ts +261 -12
  133. package/src/context/sessionRegistry.js +8 -1
  134. package/src/context/sessionRegistry.ts +18 -5
  135. package/src/context/toolResultArchive.js +72 -0
  136. package/src/context/toolResultArchive.ts +95 -0
  137. package/src/goal/errors.js +8 -0
  138. package/src/goal/errors.ts +18 -0
  139. package/src/goal/goalRuntime.js +344 -0
  140. package/src/goal/goalRuntime.ts +466 -0
  141. package/src/goal/goalStore.js +200 -0
  142. package/src/goal/goalStore.ts +219 -0
  143. package/src/goal/index.js +4 -0
  144. package/src/goal/index.ts +4 -0
  145. package/src/goal/statusMapping.js +71 -0
  146. package/src/goal/statusMapping.ts +95 -0
  147. package/src/goal/types.js +7 -0
  148. package/src/goal/types.ts +179 -0
  149. package/src/goal/workflowController.js +306 -0
  150. package/src/goal/workflowController.ts +360 -0
  151. package/src/harness/evidenceLedger.js +2 -0
  152. package/src/harness/evidenceLedger.ts +1 -0
  153. package/src/harness/stallGuard.js +9 -3
  154. package/src/harness/stallGuard.ts +7 -3
  155. package/src/images/imageResolver.js +161 -0
  156. package/src/images/imageResolver.ts +189 -0
  157. package/src/infra/verification.js +56 -20
  158. package/src/infra/verification.ts +87 -20
  159. package/src/llm/client.js +79 -21
  160. package/src/llm/client.ts +182 -35
  161. package/src/llm/gatewayClient.js +201 -0
  162. package/src/llm/gatewayClient.ts +299 -0
  163. package/src/llm/messageProvenance.js +46 -0
  164. package/src/llm/messageProvenance.ts +58 -0
  165. package/src/llm/modelProvider.js +1 -0
  166. package/src/llm/modelProvider.ts +22 -0
  167. package/src/llm/providers/anthropicFormat.js +108 -1
  168. package/src/llm/providers/anthropicFormat.ts +115 -4
  169. package/src/llm/providers/openaiFormat.js +9 -0
  170. package/src/llm/providers/openaiFormat.ts +12 -3
  171. package/src/loop.js +319 -54
  172. package/src/loop.ts +373 -57
  173. package/src/main.js +4 -1
  174. package/src/main.tsx +4 -1
  175. package/src/managedExecution/index.js +2 -0
  176. package/src/managedExecution/index.ts +2 -0
  177. package/src/managedExecution/registry.js +15 -0
  178. package/src/managedExecution/registry.ts +20 -0
  179. package/src/managedExecution/types.js +1 -0
  180. package/src/managedExecution/types.ts +86 -0
  181. package/src/modelRef.js +9 -0
  182. package/src/modelRef.ts +31 -0
  183. package/src/multimodal.js +14 -28
  184. package/src/multimodal.ts +17 -33
  185. package/src/net/lanDiscovery.js +65 -0
  186. package/src/net/lanDiscovery.ts +82 -0
  187. package/src/plugin-sdk.js +28 -3
  188. package/src/plugin-sdk.ts +39 -6
  189. package/src/plugins/pluginApi.ts +16 -1
  190. package/src/plugins/pluginLoader.js +4 -0
  191. package/src/plugins/pluginLoader.ts +6 -0
  192. package/src/plugins/pluginRunner.js +152 -9
  193. package/src/plugins/pluginRunner.ts +186 -8
  194. package/src/plugins/slashFallback.js +113 -0
  195. package/src/plugins/slashFallback.ts +137 -0
  196. package/src/prompts/policyRegistry.js +15 -8
  197. package/src/prompts/policyRegistry.ts +18 -8
  198. package/src/prompts/promptAssembly.js +103 -12
  199. package/src/prompts/promptAssembly.ts +114 -12
  200. package/src/prompts/skillList.js +21 -3
  201. package/src/prompts/skillList.ts +27 -2
  202. package/src/prompts/stableSystemPrompt.js +18 -0
  203. package/src/prompts/stableSystemPrompt.ts +33 -0
  204. package/src/runtime/agentRuntimeContext.js +8 -2
  205. package/src/runtime/agentRuntimeContext.ts +17 -4
  206. package/src/session/runAgentTurn.js +78 -12
  207. package/src/session/runAgentTurn.ts +105 -23
  208. package/src/session/runTurn.js +10 -9
  209. package/src/session/runTurn.ts +17 -8
  210. package/src/session/sessionState.ts +2 -0
  211. package/src/team/auth.js +186 -0
  212. package/src/team/auth.ts +298 -0
  213. package/src/team/cli.js +105 -0
  214. package/src/team/cli.ts +122 -0
  215. package/src/team/onlineToolContract.js +64 -0
  216. package/src/team/onlineToolContract.ts +109 -0
  217. package/src/team/toolPolicy.js +36 -0
  218. package/src/team/toolPolicy.ts +75 -0
  219. package/src/tools/advisor/advisor.js +148 -37
  220. package/src/tools/advisor/advisor.ts +161 -38
  221. package/src/tools/advisor/advisorDecision.js +71 -0
  222. package/src/tools/advisor/advisorDecision.ts +85 -0
  223. package/src/tools/agent/agent.js +18 -5
  224. package/src/tools/agent/agent.ts +21 -7
  225. package/src/tools/agent/agentControl.js +246 -0
  226. package/src/tools/agent/agentControl.ts +284 -0
  227. package/src/tools/agent/agentTaskService.js +40 -1
  228. package/src/tools/agent/agentTaskService.ts +44 -1
  229. package/src/tools/agent/agentTypes.js +14 -2
  230. package/src/tools/agent/agentTypes.ts +15 -2
  231. package/src/tools/applypatch/applyPatch.js +362 -0
  232. package/src/tools/applypatch/applyPatch.ts +428 -0
  233. package/src/tools/bash/bash.js +70 -18
  234. package/src/tools/bash/bash.ts +75 -20
  235. package/src/tools/capabilities.js +10 -5
  236. package/src/tools/capabilities.ts +10 -5
  237. package/src/tools/computeruse/computerIntent.js +32 -0
  238. package/src/tools/computeruse/computerIntent.ts +46 -0
  239. package/src/tools/computeruse/telemetryLog.js +12 -0
  240. package/src/tools/computeruse/telemetryLog.ts +16 -0
  241. package/src/tools/computeruse/vision/telemetry.js +1 -0
  242. package/src/tools/computeruse/vision/telemetry.ts +1 -0
  243. package/src/tools/effectiveToolSet.js +4 -0
  244. package/src/tools/effectiveToolSet.ts +4 -0
  245. package/src/tools/index.js +21 -2
  246. package/src/tools/index.ts +33 -2
  247. package/src/tools/powershell/powershell.js +18 -1
  248. package/src/tools/powershell/powershell.ts +18 -2
  249. package/src/tools/presentresult/presentresult.js +6 -15
  250. package/src/tools/presentresult/presentresult.ts +6 -15
  251. package/src/tools/read/read.js +69 -11
  252. package/src/tools/read/read.ts +70 -11
  253. package/src/tools/shared/fileUtils.js +1 -2
  254. package/src/tools/shared/fileUtils.ts +1 -2
  255. package/src/tools/shared/permanentDeleteGuard.js +34 -3
  256. package/src/tools/shared/permanentDeleteGuard.ts +43 -6
  257. package/src/tools/shared/toolOutputStore.js +23 -1
  258. package/src/tools/shared/toolOutputStore.ts +22 -1
  259. package/src/tools/skill/skill.js +9 -3
  260. package/src/tools/skill/skill.ts +8 -4
  261. package/src/tools/toolPromptGuides.js +117 -0
  262. package/src/tools/toolPromptGuides.ts +137 -0
  263. package/src/tools/webbrowser/agentBrowserPath.js +19 -9
  264. package/src/tools/webbrowser/agentBrowserPath.ts +70 -28
  265. package/src/tools/webbrowser/browser.js +27 -11
  266. package/src/tools/webbrowser/browser.ts +68 -24
  267. package/src/tools/webbrowser/browserAutomation.js +329 -0
  268. package/src/tools/webbrowser/browserAutomation.ts +467 -0
  269. package/src/tools/webbrowser/browserAxState.js +97 -0
  270. package/src/tools/webbrowser/browserAxState.ts +142 -0
  271. package/src/tools/webbrowser/browserBatch.js +1578 -0
  272. package/src/tools/webbrowser/browserBatch.ts +2382 -0
  273. package/src/tools/webbrowser/browserCdp.js +208 -0
  274. package/src/tools/webbrowser/browserCdp.ts +255 -0
  275. package/src/tools/webbrowser/browserConditions.js +24 -0
  276. package/src/tools/webbrowser/browserConditions.ts +45 -0
  277. package/src/tools/webbrowser/browserContent.js +281 -0
  278. package/src/tools/webbrowser/browserContent.ts +438 -0
  279. package/src/tools/webbrowser/browserControl.js +131 -30
  280. package/src/tools/webbrowser/browserControl.ts +210 -50
  281. package/src/tools/webbrowser/browserDaemon.js +22 -14
  282. package/src/tools/webbrowser/browserDaemon.ts +54 -21
  283. package/src/tools/webbrowser/browserFrames.js +47 -0
  284. package/src/tools/webbrowser/browserFrames.ts +54 -0
  285. package/src/tools/webbrowser/browserInteractionResolver.js +17 -0
  286. package/src/tools/webbrowser/browserInteractionResolver.ts +40 -0
  287. package/src/tools/webbrowser/browserLocator.js +140 -0
  288. package/src/tools/webbrowser/browserLocator.ts +194 -0
  289. package/src/tools/webbrowser/browserOutcome.js +10 -17
  290. package/src/tools/webbrowser/browserOutcome.ts +48 -31
  291. package/src/tools/webbrowser/browserRecovery.js +58 -0
  292. package/src/tools/webbrowser/browserRecovery.ts +83 -0
  293. package/src/tools/webbrowser/browserRunRegistry.js +35 -3
  294. package/src/tools/webbrowser/browserRunRegistry.ts +91 -15
  295. package/src/tools/webbrowser/browserService.js +28 -2
  296. package/src/tools/webbrowser/browserService.ts +49 -9
  297. package/src/tools/webbrowser/browserStream.js +132 -33
  298. package/src/tools/webbrowser/browserStream.ts +224 -50
  299. package/src/tools/webbrowser/browserTabs.js +48 -15
  300. package/src/tools/webbrowser/browserTabs.ts +178 -96
  301. package/src/tools/webbrowser/webbrowser.js +683 -144
  302. package/src/tools/webbrowser/webbrowser.ts +979 -236
  303. package/src/tools/webfetch/preapproved.js +0 -2
  304. package/src/tools/webfetch/preapproved.ts +0 -2
  305. package/src/tools/websearch/websearch.js +129 -8
  306. package/src/tools/websearch/websearch.ts +138 -6
  307. package/src/types.ts +450 -42
  308. package/src/ui/App.js +377 -58
  309. package/src/ui/App.tsx +576 -111
  310. package/src/ui/LiveArea.js +14 -8
  311. package/src/ui/LiveArea.tsx +14 -10
  312. package/src/ui/MessageList.js +63 -20
  313. package/src/ui/MessageList.tsx +101 -16
  314. package/src/ui/ModelPicker.js +7 -4
  315. package/src/ui/ModelPicker.tsx +55 -8
  316. package/src/ui/hooks/useChat.js +152 -163
  317. package/src/ui/hooks/useChat.ts +396 -334
  318. package/src/ui/loginCommand.js +56 -0
  319. package/src/ui/loginCommand.ts +63 -0
  320. package/src/ui/toolProgress.js +41 -0
  321. package/src/ui/toolProgress.ts +44 -0
  322. package/src/web/browserBridge.js +20 -2
  323. package/src/web/browserBridge.ts +20 -2
  324. package/src/web/protocol.ts +1897 -194
  325. package/workflows/adaptive-research/workflow.mjs +86 -0
  326. package/workflows/e2e-capabilities/workflow.mjs +102 -0
  327. package/workflows/e2e-llm/workflow.mjs +52 -0
  328. package/workflows/e2e-smoke/workflow.mjs +59 -0
  329. package/workflows/e2e-vision-schema/README.md +48 -0
  330. package/workflows/e2e-vision-schema/workflow.mjs +149 -0
  331. package/workflows/e2e-write-greet/workflow.mjs +37 -0
  332. package/workflows/file-census/README.md +14 -0
  333. package/workflows/file-census/scripts/.gitkeep +2 -0
  334. package/workflows/file-census/workflow.mjs +110 -0
  335. package/workflows/goal/README.md +166 -0
  336. package/workflows/goal/prompts/audit.md +57 -0
  337. package/workflows/goal/prompts/contract.md +56 -0
  338. package/workflows/goal/prompts/iterate.md +37 -0
  339. package/workflows/goal/workflow.mjs +501 -0
  340. package/workflows/illustrate/README.md +90 -0
  341. package/workflows/illustrate/assets/engines.json +20 -0
  342. package/workflows/illustrate/assets/extract-baidu.js +21 -0
  343. package/workflows/illustrate/assets/extract-bing.js +33 -0
  344. package/workflows/illustrate/assets/extract-google.js +31 -0
  345. package/workflows/illustrate/workflow.mjs +301 -0
  346. package/workflows/plan/workflow.mjs +389 -0
  347. package/workflows/question-crops/README.md +35 -0
  348. package/workflows/question-crops/prompts/inventory.md +23 -0
  349. package/workflows/question-crops/scripts/image-ops.mjs +305 -0
  350. package/workflows/question-crops/scripts/image-ops.test.mjs +95 -0
  351. package/workflows/question-crops/workflow.mjs +172 -0
  352. package/workflows/ralph-loop/workflow.mjs +162 -0
  353. package/workflows/research/DESIGN.md +449 -0
  354. package/workflows/research/README.md +74 -0
  355. package/workflows/research/prompts/s0-goal.md +43 -0
  356. package/workflows/research/prompts/s1-early-exit.md +22 -0
  357. package/workflows/research/prompts/s1-map.md +58 -0
  358. package/workflows/research/prompts/s2-options.md +53 -0
  359. package/workflows/research/prompts/s3-deep-dive.md +56 -0
  360. package/workflows/research/prompts/s4-verify.md +74 -0
  361. package/workflows/research/prompts/s5-synthesis.md +81 -0
  362. package/workflows/research/prompts/s5b-fill-gaps.md +32 -0
  363. package/workflows/research/prompts/s6-package.md +32 -0
  364. package/workflows/research/scripts/build-report.mjs +98 -0
  365. package/workflows/research/workflow.mjs +288 -0
  366. package/workflows/wechat-reading-shots/prompts/collect-params.md +16 -0
  367. package/workflows/wechat-reading-shots/prompts/evaluate.md +20 -0
  368. package/workflows/wechat-reading-shots/prompts/open-book.md +28 -0
  369. package/workflows/wechat-reading-shots/prompts/read-page.md +13 -0
  370. package/workflows/wechat-reading-shots/prompts/turn-batch.md +24 -0
  371. package/workflows/wechat-reading-shots/test/control-flow.test.ts +329 -0
  372. package/workflows/wechat-reading-shots/workflow.mjs +266 -0
  373. package/workflows/wrong-question-docx/README.md +55 -0
  374. package/workflows/wrong-question-docx/prompts/figure-qa.md +8 -0
  375. package/workflows/wrong-question-docx/prompts/transcribe.md +25 -0
  376. package/workflows/wrong-question-docx/scripts/workbook.mjs +857 -0
  377. package/workflows/wrong-question-docx/test/control-flow.test.ts +165 -0
  378. package/workflows/wrong-question-docx/test/workbook.test.mjs +303 -0
  379. package/workflows/wrong-question-docx/workflow.mjs +485 -0
  380. package/plugins/workflow-runner/src/agentCommon.js +0 -354
  381. package/plugins/workflow-runner/src/agentCommon.ts +0 -435
  382. package/plugins/workflow-runner/src/controlFlow/branch.js +0 -40
  383. package/plugins/workflow-runner/src/controlFlow/branch.ts +0 -46
  384. package/plugins/workflow-runner/src/controlFlow/loop.js +0 -211
  385. package/plugins/workflow-runner/src/controlFlow/loop.ts +0 -248
  386. package/plugins/workflow-runner/src/controlFlow/pause.js +0 -129
  387. package/plugins/workflow-runner/src/controlFlow/pause.ts +0 -141
  388. package/plugins/workflow-runner/src/controlFlow/signal.js +0 -21
  389. package/plugins/workflow-runner/src/controlFlow/signal.ts +0 -29
  390. package/plugins/workflow-runner/src/controlFlow/types.js +0 -18
  391. package/plugins/workflow-runner/src/controlFlow/types.ts +0 -63
  392. package/plugins/workflow-runner/src/dslManifest.js +0 -72
  393. package/plugins/workflow-runner/src/dslManifest.ts +0 -127
  394. package/plugins/workflow-runner/src/expressions.js +0 -618
  395. package/plugins/workflow-runner/src/expressions.ts +0 -622
  396. package/plugins/workflow-runner/src/loader.js +0 -573
  397. package/plugins/workflow-runner/src/loader.ts +0 -721
  398. package/plugins/workflow-runner/src/multimodal.js +0 -38
  399. package/plugins/workflow-runner/src/multimodal.ts +0 -64
  400. package/plugins/workflow-runner/src/recovery.js +0 -119
  401. package/plugins/workflow-runner/src/recovery.ts +0 -149
  402. package/plugins/workflow-runner/src/stepExecutors/agent.js +0 -173
  403. package/plugins/workflow-runner/src/stepExecutors/agent.ts +0 -234
  404. package/plugins/workflow-runner/src/stepExecutors/assert.js +0 -41
  405. package/plugins/workflow-runner/src/stepExecutors/assert.ts +0 -50
  406. package/plugins/workflow-runner/src/stepExecutors/echo.js +0 -31
  407. package/plugins/workflow-runner/src/stepExecutors/echo.ts +0 -38
  408. package/plugins/workflow-runner/src/stepExecutors/llm.js +0 -99
  409. package/plugins/workflow-runner/src/stepExecutors/llm.ts +0 -133
  410. package/plugins/workflow-runner/src/stepExecutors/set.js +0 -49
  411. package/plugins/workflow-runner/src/stepExecutors/set.ts +0 -56
  412. package/plugins/workflow-runner/src/stepExecutors/skill.js +0 -111
  413. package/plugins/workflow-runner/src/stepExecutors/skill.ts +0 -140
  414. package/plugins/workflow-runner/src/stepExecutors/tool.js +0 -208
  415. package/plugins/workflow-runner/src/stepExecutors/tool.ts +0 -256
  416. package/plugins/workflow-runner/src/stepExecutors/verify.js +0 -58
  417. package/plugins/workflow-runner/src/stepExecutors/verify.ts +0 -68
  418. package/plugins/workflow-runner/src/stepPipeline.js +0 -277
  419. package/plugins/workflow-runner/src/stepPipeline.ts +0 -366
  420. package/plugins/workflow-runner/test/agent.test.ts +0 -587
  421. package/plugins/workflow-runner/test/agentLlmError.test.ts +0 -373
  422. package/plugins/workflow-runner/test/bashBlacklist.sweep.test.ts +0 -65
  423. package/plugins/workflow-runner/test/captureMisbind.test.ts +0 -99
  424. package/plugins/workflow-runner/test/cli.e2e.test.ts +0 -147
  425. package/plugins/workflow-runner/test/context-files.test.ts +0 -320
  426. package/plugins/workflow-runner/test/e2e.test.ts +0 -370
  427. package/plugins/workflow-runner/test/engineRobustness.test.ts +0 -226
  428. package/plugins/workflow-runner/test/expressions.test.ts +0 -397
  429. package/plugins/workflow-runner/test/foundation.test.ts +0 -126
  430. package/plugins/workflow-runner/test/graceful.test.ts +0 -139
  431. package/plugins/workflow-runner/test/greedyInputs.load.test.ts +0 -47
  432. package/plugins/workflow-runner/test/hostCapability.test.ts +0 -108
  433. package/plugins/workflow-runner/test/illustrate.load.test.ts +0 -183
  434. package/plugins/workflow-runner/test/jsonPayload.test.ts +0 -83
  435. package/plugins/workflow-runner/test/loader.test.ts +0 -617
  436. package/plugins/workflow-runner/test/maxTurnsRetryDelay.test.ts +0 -33
  437. package/plugins/workflow-runner/test/multimodal.test.ts +0 -342
  438. package/plugins/workflow-runner/test/output-schema.test.ts +0 -213
  439. package/plugins/workflow-runner/test/parseWorkflowArgs.test.ts +0 -87
  440. package/plugins/workflow-runner/test/pluginRunner.isolation.test.ts +0 -269
  441. package/plugins/workflow-runner/test/ppt.load.test.ts +0 -1220
  442. package/plugins/workflow-runner/test/ralphLoop.e2e.test.ts +0 -220
  443. package/plugins/workflow-runner/test/recovery.test.ts +0 -265
  444. package/plugins/workflow-runner/test/runner.test.ts +0 -911
  445. package/plugins/workflow-runner/test/runnerPreflight.test.ts +0 -379
  446. package/plugins/workflow-runner/test/skillTurnDone.test.ts +0 -71
  447. package/plugins/workflow-runner/test/stateLifecycle.test.ts +0 -150
  448. package/plugins/workflow-runner/test/stepPipeline.test.ts +0 -114
  449. package/plugins/workflow-runner/test/taskArbitration.test.ts +0 -338
  450. package/plugins/workflow-runner/test/taskLifecycle.test.ts +0 -270
  451. package/plugins/workflow-runner/test/toolArtifactOverwrite.test.ts +0 -221
  452. package/plugins/workflow-runner/test/toolCapabilityBoundary.test.ts +0 -29
  453. package/plugins/workflow-runner/test/toolRuntimeIntegration.test.ts +0 -168
  454. package/plugins/workflow-runner/test/webppt.load.test.ts +0 -250
  455. package/plugins/workflow-runner/test/word.load.test.ts +0 -208
  456. package/plugins/workflow-runner/test/workflows.smoke.test.ts +0 -76
  457. package/plugins/workflow-runner/test/yamlGuardConditions.test.ts +0 -207
  458. package/src/advisorState.js +0 -22
  459. package/src/cli/configWizard.js +0 -293
  460. package/src/tools/toolProgressBridge.js +0 -48
  461. package/workflows/adaptive-research.yaml +0 -50
  462. package/workflows/book-review-short.yaml +0 -125
  463. package/workflows/e2e-write-greet.yaml +0 -31
  464. package/workflows/illustrate.yaml +0 -227
  465. package/workflows/plan.yaml +0 -470
  466. package/workflows/ppt.yaml +0 -1670
  467. package/workflows/ralph-loop.yaml +0 -199
  468. package/workflows/schema.json +0 -176
  469. package/workflows/webppt.yaml +0 -496
  470. package/workflows/wechat-reading-shots.yaml +0 -315
  471. package/workflows/word.yaml +0 -720
  472. package/workflows/youtube-shorts.yaml +0 -202
@@ -1,199 +0,0 @@
1
- name: ralph-loop
2
- description: |
3
- Ralph Wiggum 迭代开发循环——通过重复执行同一目标直到完成。
4
-
5
- 核心机制:while 循环 + fresh context(每轮重置 history)+ 哨兵协议 + 验证门。
6
- 状态机(phase: PLAN→BUILD→VERIFY/HEAL→DONE)全部用 type:set 确定性赋值,
7
- prompt 拼装也用 set(曾用 llm 步当赋值/拼串——模型自由回复非确定,是事故源)。
8
-
9
- 哨兵协议(精确匹配,防"incomplete 含 complete"类误判):
10
- <promise>DONE</promise> 任务真正完成(过验证门后 break)
11
- <promise>NEED_REPLAN</promise> 当前方案走不通,回 PLAN
12
- <promise>NEED_GOAL_REVISION</promise> 目标本身有问题,干净终止
13
- <learning>一句话</learning> 踩坑记录(存档供后续轮参考,不影响流程)
14
-
15
- 用法:/workflow ralph-loop "你的目标" --input max_iterations=50 --input verify_checks="shell:bun test"
16
- inputs:
17
- - name: goal
18
- type: string
19
- required: true
20
- greedy: true
21
- description: "不可变目标描述(可一句话自然语言;命令行 workflow 名后整句进 goal,不被空格拆碎)"
22
- - name: max_iterations
23
- type: number
24
- default: 50
25
- description: "【高级·用 --input max_iterations=N】最大迭代次数(安全阀,默认 50,硬上限 200)"
26
- - name: verify_checks
27
- type: string
28
- default: ""
29
- description: "【高级·用 --input verify_checks=...】验证门检查项(逗号分隔,如 'shell:bun test,file_exists:src/index.ts')。空则跳过验证门。"
30
-
31
- self_heal:
32
- max_retries: 1 # 单步瞬态失败(LLM 超时等)重试一次
33
- retry_delay_ms: 3000 # 重试退避,给瞬态故障留恢复窗口
34
-
35
- steps:
36
- # === 初始化(确定性 set,零 LLM)。learnings 的权威载体是 VarStack 变量——
37
- # fresh_context 每轮重置的是 history 不是变量栈,变量天然跨轮存活;
38
- # 曾用「Write 文件 + 每轮 Read 回读」,Read 输出带行号/空文件标记,
39
- # 回写时把格式垃圾逐轮累积进档案。文件仅作存档副本(事后排查用)。 ===
40
- - id: init_state
41
- title: "初始化状态机"
42
- type: set
43
- set:
44
- phase: PLAN
45
- learnings_text: ""
46
-
47
- # ============================================================
48
- # 主迭代循环(while 模式 + fresh_context)
49
- # 每轮:set 拼 prompt → agent 工作 → 教训累积 → 哨兵检测 → 阶段推进
50
- # ============================================================
51
- - type: loop
52
- id: main_loop
53
- title: "迭代开发"
54
- max_iterations: "${inputs.max_iterations}"
55
- fresh_context: true
56
- do:
57
- # --- 1. 构造本轮 prompt(确定性字符串拼装,set 步零 LLM) ---
58
- - id: build_prompt
59
- title: "拼装本轮指令"
60
- type: set
61
- set:
62
- prompt_text: |
63
- # 不可变目标 (IMMUTABLE GOAL)
64
- ${inputs.goal}
65
- ⚠️ 你不能修改或扩大上述目标。
66
-
67
- # 当前阶段: ${upper(phase)}
68
- ${phase == 'PLAN' ? '分析任务、拆解步骤、识别风险与未知项;先想清楚再动手。' :
69
- phase == 'BUILD' ? '按计划实现,一次只聚焦一个子任务,落到具体文件改动。' :
70
- phase == 'VERIFY' ? '运行测试/检查输出/核对验收标准,用证据确认,别凭感觉。' :
71
- phase == 'HEAL' ? '已多次验证失败:停止猜测,定位根因再修,避免回归。' :
72
- '目标已达成。'}
73
-
74
- # 与循环驱动的通信协议(务必逐字遵守标签格式)
75
- - 任务**真正完成**时输出 `<promise>DONE</promise>`(驱动会运行验证门)
76
- - 当前方案走不通、要换打法时输出 `<promise>NEED_REPLAN</promise>`(回 PLAN)
77
- - **目标本身**有问题时输出 `<promise>NEED_GOAL_REVISION</promise>`(干净终止)
78
- - 踩到的坑用 `<learning>一句话</learning>` 标记(驱动自动存档供后续参考)
79
- ⚠️ 切勿为逃出循环而谎报完成——只有陈述完全为真时才输出完成哨兵。
80
-
81
- ${learnings_text != '' ? '# 关键教训(必须遵守,避免重复踩坑)\n' + learnings_text : ''}
82
-
83
- ---
84
- 本轮任务 (迭代 ${_iter})
85
-
86
- # --- 2. 执行 agent 工作(TAOR 引擎,有工具能力) ---
87
- - id: work
88
- title: "执行本轮工作"
89
- agent: "${prompt_text}"
90
- maxTurns: 15
91
- capture:
92
- text: output
93
-
94
- # --- 3. 提取 learning(确定性正则 extract,零 LLM 零幻觉;
95
- # 曾用 llm 步提取——模型可能改写/漏抄/编造,教训档案被污染) ---
96
- - id: extract_learning
97
- title: "提取本轮教训"
98
- type: set
99
- set:
100
- extracted_learning: "${join(extract(output, '<learning>(.*?)</learning>'), '\n- ')}"
101
-
102
- # 累积到 VarStack(权威载体,跨轮存活、无文件格式污染)。
103
- - id: accumulate_learning
104
- type: set
105
- set:
106
- learnings_text: "${learnings_text}- ${extracted_learning}\n"
107
- when: "extracted_learning != ''"
108
-
109
- # 存档副本落盘(事后排查用;状态目录随成功归档为 ralph-loop.done)
110
- - id: save_learning
111
- title: "教训存档落盘"
112
- tool: Write
113
- args:
114
- file_path: .minimal-agent-workflow/ralph-loop/learnings.md
115
- content: "${learnings_text}"
116
- when: "extracted_learning != ''"
117
- onError: continue
118
-
119
- # --- 5. 哨兵检测(平铺互斥分支,精确匹配;不再有嵌套 then/else 迷宫) ---
120
-
121
- # 5a. 完成哨兵(精确标签,防 "incomplete" 含 "complete" 类误判)→ 验证门
122
- - id: on_done
123
- title: "哨兵检测·完成"
124
- type: branch
125
- condition: "includes(lower(output), '<promise>done</promise>')"
126
- then:
127
- # 验证门:verify_checks 为空时自动通过(verify 空检查列表 = pass);
128
- # 失败时 onError:continue 让 verify_passed 绑占位文本(≠ true)→ 闸门拦下回 BUILD
129
- - id: run_verify
130
- type: verify
131
- checks: "${inputs.verify_checks}"
132
- onFail: "验证未通过,回到 BUILD 继续"
133
- capture:
134
- passed: verify_passed
135
- onError: continue
136
- - id: verify_gate
137
- type: branch
138
- condition: "verify_passed == true"
139
- then:
140
- - id: set_done
141
- type: set
142
- set:
143
- phase: DONE
144
- - id: exit_success
145
- type: break
146
- else:
147
- # 验证未过:模型谎报/漏测 → 回 BUILD 继续迭代(不 break)
148
- - id: back_to_build
149
- type: set
150
- set:
151
- phase: BUILD
152
-
153
- # 5b. 重新规划哨兵 → 回 PLAN(auto_advance 有 <promise> 守卫,本轮不会被推进吞掉)
154
- # 完整标签匹配——裸词 'need_replan' 会被 agent 复述协议说明文本误触
155
- - id: on_replan
156
- title: "哨兵检测·重新规划"
157
- type: branch
158
- condition: "includes(lower(output), '<promise>need_replan</promise>')"
159
- then:
160
- - id: replan
161
- type: set
162
- set:
163
- phase: PLAN
164
-
165
- # 5c. 目标修订哨兵 → 干净终止(仅此哨兵终止;learning-only 输出绝不落到这里)
166
- # 完整标签匹配,理由同 5b
167
- - id: on_goal_revision
168
- title: "哨兵检测·目标修订"
169
- type: branch
170
- condition: "includes(lower(output), '<promise>need_goal_revision</promise>')"
171
- then:
172
- - id: set_goal_revision
173
- type: set
174
- set:
175
- phase: GOAL_REVISION
176
- - id: exit_goal_revision
177
- type: break
178
-
179
- # 5d. 自动阶段推进:仅当本轮没有任何流程哨兵(<promise>…)时才推进。
180
- # learning 标签不是流程哨兵,不阻止推进;NEED_REPLAN 轮被守卫拦住,replan 不被吞。
181
- - id: auto_advance
182
- title: "阶段自动推进"
183
- type: branch
184
- condition: "phase == 'PLAN' && !includes(lower(output), '<promise>')"
185
- then:
186
- - id: to_build
187
- type: set
188
- set:
189
- phase: BUILD
190
-
191
- # === 循环结束后的收尾 ===
192
- - id: final_summary
193
- title: "完成·执行总结"
194
- llm: |
195
- 总结本轮 ralph-loop 的执行结果(最终阶段:${phase})。
196
- - phase=DONE:目标完成,列出关键产出物。
197
- - phase=GOAL_REVISION:目标本身需要修订,说明模型给出的理由。
198
- - 其它:因达到迭代上限而退出,说明当前进度和下一步建议。
199
- maxTurns: 1
@@ -1,176 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://github.com/billsoft/kakadeai/minimal-agent/workflows/schema.json",
4
- "title": "minimal-agent workflow",
5
- "description": "Workflow YAML schema, v0.1 — see docs/workflow-plugin-plan.md",
6
- "type": "object",
7
- "required": ["name", "description", "steps"],
8
- "additionalProperties": true,
9
- "properties": {
10
- "name": { "type": "string", "minLength": 1 },
11
- "description": { "type": "string", "minLength": 1 },
12
- "version": { "type": "string" },
13
- "inputs": {
14
- "type": "array",
15
- "items": {
16
- "type": "object",
17
- "required": ["name"],
18
- "properties": {
19
- "name": { "type": "string", "minLength": 1 },
20
- "type": { "enum": ["string", "number", "enum"] },
21
- "required": { "type": "boolean" },
22
- "default": {},
23
- "values": { "type": "array", "items": { "type": "string" } },
24
- "description": { "type": "string" }
25
- }
26
- }
27
- },
28
- "steps": {
29
- "type": "array",
30
- "minItems": 1,
31
- "items": { "$ref": "#/definitions/step" }
32
- },
33
- "self_heal": {
34
- "type": "object",
35
- "description": "Workflow-level retry/resume policy.",
36
- "properties": {
37
- "backoff": { "type": "number", "minimum": 0 },
38
- "max_retries": { "type": "number", "minimum": 0 },
39
- "retry_delay_ms": { "type": "number", "minimum": 0 },
40
- "max_turns_retry_delay_ms": { "type": "number", "minimum": 0 }
41
- },
42
- "additionalProperties": true
43
- },
44
- "__meta": { "type": "object" }
45
- },
46
- "definitions": {
47
- "step": {
48
- "type": "object",
49
- "required": ["id"],
50
- "properties": {
51
- "id": { "type": "string", "minLength": 1 },
52
- "title": {
53
- "type": "string",
54
- "minLength": 1,
55
- "description": "任意步可选:人话进度显示名(支持 ${} 插值)。声明后状态行显示这段文案(如「阶段2/6·起草实现计划」),不再显示块内相对序号。"
56
- },
57
- "tool": { "type": "string" },
58
- "skill": { "type": "string" },
59
- "llm": { "type": "string" },
60
- "type": {
61
- "enum": ["assert", "verify", "set", "branch", "loop", "break", "continue", "echo", "pause"],
62
- "description": "控制流节点类型。'continue'=跳到(目标)循环下一轮迭代;'echo'=确定性输出插值消息(不烧 LLM)。"
63
- },
64
- "args": {
65
- "type": "object",
66
- "description": "tool 步参数(深度 ${} 插值)。⚠️ Bash 命令注意:${} 是引擎插值、发生在 shell 之前——shell 单引号会原样保留插值后的文本,不做算术/变量二次展开(sed -n '$((${i}+1))p' 会把字面 $((0+1))p 喂给 sed)。需要序号让 loop over 直接产出最终值(如 1 基行号)。"
67
- },
68
- "input": { "type": "string" },
69
- "capture": {
70
- "type": "object",
71
- "additionalProperties": { "type": "string" }
72
- },
73
- "when": { "type": "string" },
74
- "onError": { "enum": ["halt", "continue", "recover"] },
75
- "target": {
76
- "type": "string",
77
- "minLength": 1,
78
- "description": "仅 type=break/continue:目标循环 id(标签语义)。缺省=最近一层循环;指定后信号穿透中间层循环直达该 loop。"
79
- },
80
- "message": {
81
- "type": "string",
82
- "minLength": 1,
83
- "description": "仅 type=echo(必填):确定性输出给用户的消息,支持 ${} 插值。"
84
- },
85
- "goal_supplement": {
86
- "type": "boolean",
87
- "description": "动作步/pause 可选:本步产出作为「用户补充要求」并入贯穿目标锚定,注入后续每一步。"
88
- },
89
- "maxTurns": { "type": "number" },
90
- "images": {
91
- "type": "array",
92
- "description": "仅 llm / agent 节点可选:OpenAI 兼容图片输入。字符串表示路径/URL;对象可设置 detail 与 max_long_side_pixel。",
93
- "items": {
94
- "oneOf": [
95
- { "type": "string", "minLength": 1 },
96
- {
97
- "type": "object",
98
- "required": ["source"],
99
- "properties": {
100
- "source": { "type": "string", "minLength": 1 },
101
- "detail": { "enum": ["low", "default", "high"] },
102
- "max_long_side_pixel": { "type": "integer", "minimum": 1 }
103
- },
104
- "additionalProperties": true
105
- }
106
- ]
107
- }
108
- },
109
- "parse_inline_images": {
110
- "type": "boolean",
111
- "description": "仅 llm / agent 节点可选:解析 prompt 中的 @./image.png 或图片 URL。"
112
- },
113
- "image_detail": {
114
- "enum": ["low", "default", "high"],
115
- "description": "仅 llm / agent 节点可选:本步骤图片 detail 默认值。"
116
- },
117
- "image_max_long_side_pixel": {
118
- "type": "integer",
119
- "minimum": 1,
120
- "description": "仅 llm / agent 节点可选:本步骤图片最长边默认值。"
121
- },
122
- "condition": { "type": "string" },
123
- "onFail": { "type": "string" },
124
- "then": {
125
- "type": "array",
126
- "items": { "$ref": "#/definitions/step" }
127
- },
128
- "else": {
129
- "type": "array",
130
- "items": { "$ref": "#/definitions/step" }
131
- },
132
- "over": { "type": "string" },
133
- "as": { "type": "string" },
134
- "do": {
135
- "type": "array",
136
- "items": { "$ref": "#/definitions/step" }
137
- },
138
- "prompt": { "type": "string" },
139
- "free_text": {
140
- "type": "string",
141
- "enum": ["halt", "approve"],
142
- "description": "type=pause 时自由输入的处理方式:halt=不放行(默认);approve=作为补充要求放行,可配 capture.text 传给后续步骤。"
143
- },
144
- "max_iterations": {
145
- "oneOf": [{ "type": "integer", "minimum": 1 }, { "type": "string", "minLength": 1 }]
146
- },
147
- "done_when": {
148
- "type": "string",
149
- "minLength": 1,
150
- "description": "仅 agent 步可选:确定性完成条件(白名单表达式,如 fileExists('./out/x.pptx'))。不满足时引擎自动提醒同一 agent 继续执行(上限 2 次),仍不满足按可重试失败处理。弱模型「宣告要干却不调工具就停」的引擎级兜底。"
151
- },
152
- "output_schema": {
153
- "type": "object",
154
- "description": "⚠ ADR-05 新增:LLM 输出 JSON Schema 强约束,走 provider-native structured output。仅 llm 节点生效(skill 节点 loader 拒绝);详见 docs/workflow-design.md。"
155
- },
156
- "context_files": {
157
- "type": "array",
158
- "items": {
159
- "type": "object",
160
- "required": ["path"],
161
- "properties": {
162
- "path": { "type": "string", "minLength": 1 },
163
- "hint": { "type": "string" }
164
- }
165
- },
166
- "description": "⚠ ADR-05 新增:仅 llm 节点声明可用的上下文文件清单(path + hint),runner 拼进 prompt 并开放 Read 子循环,不 inline 内容(skill 节点 loader 拒绝)。详见 docs/workflow-design.md。"
167
- },
168
- "allowed_tools": {
169
- "type": "array",
170
- "items": { "type": "string", "minLength": 1 },
171
- "description": "⚠ ADR-05 新增:与 context_files 配对的 mini ReAct 工具白名单,缺省 ['Read']。详见 docs/05-advanced-workflow-integration.md。"
172
- }
173
- }
174
- }
175
- }
176
- }