The orchestrator sub-agent's ELEMENT_TOOL_OUTPUT_FORMAT was still running the pre-Codex-fix wording from before today's ab-corpus pass: - "Respond with one <op_tool> tag, nothing else" - "Do not combine multiple tags" Same self-defeating prompt that gave ab-v3 0/25 composite multi-tool runs. Production code path stayed broken while the harness kept getting fixed. Caught when investigating ab-v4's gpt-5.4 search-filters garbage — orchestrator-sub-agent's leading comment explicitly says it's kept verbatim against the ab-corpus version. Aligns with the latest scripts/ab-corpus/build-prompt.ts version: - "Respond with one or more <op_tool> tags" (multi-tool allowed) - STRATEGY A — element tools, one tag per component, with a 3-tag worked example - EMBEDDED COVERAGE — production-specific block listing the subset of add_*_v0 tools the embedded orchestrator can actually execute, inserted between Strategy A and Strategy B (the ab-corpus harness has full coverage so it doesn't need this block) - STRATEGY B — single batch_design covering the whole response when any component falls outside EMBEDDED COVERAGE - Explicit "Do not mix Strategy A and Strategy B" guard, naming the parser's silent-drop behavior design-parser.ts::tryParseElementToolOutput already collects every `<op_tool>` tag into tool_calls (line 61: `parsed.kind === 'tool_calls' && parsed.calls.length > 0`), so the multi-tool path works end-to-end on the production parser side too — no parser change needed. 3767 vitest pass, format clean, tsc silent. Real-user impact: web app chat / orchestrator runs against minimax / glm / kimi / deepseek now get the same multi-tool teaching that took composite routing from 0% to 42% in ab-v4. |
||
|---|---|---|
| .. | ||
| __tests__ | ||
| canvas | ||
| components | ||
| constants | ||
| hooks | ||
| i18n | ||
| lib | ||
| routes | ||
| services | ||
| stores | ||
| types | ||
| uikit | ||
| utils | ||
| variables | ||
| router.tsx | ||
| routeTree.gen.ts | ||
| styles.css | ||