发布

  • [OPIK-5307] [OPIK-5308] [FE] Add Agent Sandbox page (#5947)

    frostbyte_neo 发布于 2026-03-30 15:49:40 +00:00

    • [OPIK-5307] [OPIK-5308] [FE] Add Agent Sandbox page with pairing flow and job execution

    Implements the Agent Sandbox frontend page allowing developers to connect
    their local agent to Opik via a local runner, test it with dynamic inputs,
    and view execution results.

    Key features:

    • Disconnected state with pair code command, countdown timer, and flow diagram
    • Connected state with Input/Configuration tabs and dynamic agent input form
    • Job creation and status polling with result display
    • Integration with existing local-runners backend API (snake_case wire format)
    • Shift+Enter keyboard shortcut for Run
    • Feature toggle ready (TOGGLE_RUNNERS_ENABLED)

    Implements OPIK-5307: Agent Sandbox - Empty State
    Implements OPIK-5308: Agent Sandbox - Running Agent

    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

    • [OPIK-5307] [FE] Move AgentConfigurationEditView to pages-shared and restore config editor

    Moves AgentConfigurationEditView, useAgentConfigurationSave, and
    BlueprintDiffDialog to v2/pages-shared/agent-configuration/ to allow
    reuse from the Agent Sandbox page without violating the no-cross-page-imports
    dependency rule.

    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

    • [OPIK-5308] [FE] Fix input type coercion for agent params

    Add coerceValue to properly convert form string values to their correct
    types before sending to the backend. Handles Python types (str, int,
    float, bool, dict, Optional) by parsing JSON for objects, Number() for
    numerics, and null for empty Optional fields.

    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

    • [OPIK-5308] [FE] Revert config.yml and fix job creation mutation
    • Revert config.yml default back to false (local-only change for testing)
    • Extract job ID from Location header when response body is empty
    • Add non-empty fallback for error toast message

    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

    • [OPIK-5307] [FE] Address PR review comments
    • Rename poll constants to POLL_INTERVAL_WHILE_DISCONNECTED/CONNECTED
    • Remove unwired "Save as new version" button from Configuration tab
    • Use explicit !== undefined checks instead of truthiness for numbers
    • Simplify staleTime to data.expires_in_seconds * 1000

    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com


    Co-authored-by: Claude Opus 4.6 (1M context) noreply@anthropic.com

    下载附件