docs(mantis): script catalog-tool turns through Code Mode exec (#127878)

* docs(mantis): script catalog-tool turns through Code Mode exec

Run 32570733988 blocked both lanes with 'Tool pdf not found': the proof
agent scripted a top-level pdf function_call, but the SUT agent runs Code
Mode where catalog tools execute from JavaScript inside exec. Document the
canonical route in the proof prompt, add a complete exec(pdf) scripted-event
example plus the document-extract configPatch to the staged-media recipe,
and pin the new guidance in the workflow test.

* docs(mantis): wait for the exec round trip before finish

ClawSweeper P2: send releases the mock response once the outbound message
is visible, and finish tears the lane down, so a slow exec/pdf round trip
could lose its function_call_output follow-up. Observe until the cumulative
provider-request count covers the follow-up and assert the recorded
function_call_output before finish; pin the contract in the workflow test.
This commit is contained in:
Ayaan Zaidi
2026-08-22 17:47:03 +05:30
committed by GitHub
parent c5121ada6c
commit f4cb545783
3 changed files with 108 additions and 7 deletions
@@ -781,6 +781,18 @@ describe("Mantis Telegram Desktop proof workflow", () => {
expect(prompt).toContain("not who sent it");
expect(prompt).not.toContain("trusted, tamper-protected");
expect(prompt).not.toContain("Provider request logs are diagnostic and pacing signals");
expect(prompt).toContain("Script catalog-tool turns as an `exec` function");
// The exec/pdf round trip outlives `send`; the recipe must wait for the
// follow-up function_call_output request before `finish` tears the lane down.
const stagedMediaRecipe = readFileSync(
".github/codex/prompts/mantis-recipes/staged-media-provider-proof.md",
"utf8",
);
expect(stagedMediaRecipe).toContain("--until-provider-requests 3");
expect(stagedMediaRecipe).toContain('select(.type == "function_call_output"');
expect(stagedMediaRecipe.indexOf("--until-provider-requests 3")).toBeLessThan(
stagedMediaRecipe.lastIndexOf("finish --lane baseline"),
);
expect(prompt).toContain("mantis-recipes/");
expect(prompt).toContain("recipe-suggestion.md");
expect(prompt).toContain("do not call `finish` and describe the block only in prose");