Skip to content

Drive a governed Maestro tool call through Platform ToolExecution end to end #171

Description

@haasonsaas

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    architecture-reviewCross-service architecture review requestedenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions