Summary
Maestro has the design and partial bridge shape for Platform ToolExecution, but we need one real end-to-end governed execution path that proves the contract across Maestro runtime, Platform policy/approvals, ToolExecution state, CloudEvents, and timeline.
Start with one concrete tool class rather than trying to migrate every tool at once.
Why it matters
ToolExecution is the cleanest practical spine for the Maestro/Platform overlap. It is narrow enough to ship, but rich enough to validate the correlation model that later powers AgentRuntime, Slack decisions, audit, meter, governance learning, and timeline.
What to build
- Pick one high-signal tool path, preferably Bash/shell or one MCP tool path, and route it through Platform
ExecuteTool when the Platform bridge is enabled.
- Send normalized execution context: organization, workspace, Maestro session, AgentRun, AgentRunStep, actor, surface/channel, cwd/repo, command/tool name, sanitized args, and correlation ids.
- Support observe-only mode and governed mode.
- In governed mode, block local execution until Platform returns allow or an approval is resolved.
- On approval-required, surface the pending request through Maestro's approval UI/headless protocol and resume through Platform
ResumeToolExecution.
- Record
tool_execution_id, approval_request_id, and governed outcome into Maestro events and runtime metadata.
- Preserve local/offline behavior and existing safety semantics when disabled.
Acceptance criteria
- A test or smoke path shows one Maestro tool call creating a Platform ToolExecution record.
- Approval-required flow produces a pending request, resolves it, resumes execution, and records the final result.
- The final Maestro tool result event includes Platform correlation ids.
- Deny/unavailable/malformed Platform responses have explicit user-facing behavior and tests.
- Platform timeline can show the same tool execution without requiring bespoke joins.
Related: #73, #74, evalops/platform#917, evalops/platform#919, evalops/platform#765.
Summary
Maestro has the design and partial bridge shape for Platform ToolExecution, but we need one real end-to-end governed execution path that proves the contract across Maestro runtime, Platform policy/approvals, ToolExecution state, CloudEvents, and timeline.
Start with one concrete tool class rather than trying to migrate every tool at once.
Why it matters
ToolExecution is the cleanest practical spine for the Maestro/Platform overlap. It is narrow enough to ship, but rich enough to validate the correlation model that later powers AgentRuntime, Slack decisions, audit, meter, governance learning, and timeline.
What to build
ExecuteToolwhen the Platform bridge is enabled.ResumeToolExecution.tool_execution_id,approval_request_id, and governed outcome into Maestro events and runtime metadata.Acceptance criteria
Related: #73, #74, evalops/platform#917, evalops/platform#919, evalops/platform#765.