Skip to content

fix(handlers): tools/call pass-through полного payload#14

Merged
DubovskiyIM merged 1 commit into
mainfrom
fix/mcp-approval-passthrough
May 8, 2026
Merged

fix(handlers): tools/call pass-through полного payload#14
DubovskiyIM merged 1 commit into
mainfrom
fix/mcp-approval-passthrough

Conversation

@DubovskiyIM
Copy link
Copy Markdown
Member

Что

makeToolCallHandler whitelist'ил response 4 полями (status / effectId / createdEntity / effects), теряя approvalRequestId и прочие top-level поля.

Зачем

Intent с lifecycle.requiresApproval возвращает {status:'pending_approval', approvalRequestId:'ar_...', ...}. Без approvalRequestId LLM/агент не может в следующем тулколе вызвать approve_request — а это основной flow Акта 3 Fold-демо.

Тест

scripts/e2e/fold-demo-flow.mjs (idf), step "MCP Akt 3 full flow: deleteResource → approve через MCP" — был red, стал green. Полный harness 13/13 зелёный (REST + MCP stdio + booking backward-compat).

Изменение

-      text: JSON.stringify({
-        status: payload.status,
-        effectId: payload.id,
-        createdEntity: payload.createdEntity,
-        effects: payload.effects,
-      }, null, 2),
+      text: JSON.stringify(payload, null, 2),

Pass-through full payload — нет резона subset'ить, агенту полезен весь контекст ответа.

Whitelist только {status,effectId,createdEntity,effects} дропал
approvalRequestId и прочие top-level поля из IDF agent route.

Для intent'а с lifecycle.requiresApproval ответ выглядит как
{status:'pending_approval', approvalRequestId:'ar_...', ...} — без
approvalRequestId LLM не может вызвать approve_request.

Регрессия покрыта e2e:fold-demo ("MCP Akt 3 full flow").
@DubovskiyIM DubovskiyIM merged commit 1d8ae9d into main May 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants