Accept Chrome recorder JSON without a trailing extract step

CH
2mo ago
+69-22

Summary

  • Chrome side-panel Save/Quick Download writes workflows that end on click/input and use targetText. WorkflowDefinitionSchema rejected those files, so run-workflow-no-ai could not load a recording it just produced.
  • Drop the load-time “must end with extract” validator (extract remains the right generation convention for run-as-tool, not a recorder requirement).
  • Accept targetText as an alias for target_text so semantic replay sees the captured label.

Test plan

  • Load a click-ending Chrome-shaped payload (targetText) via WorkflowDefinitionSchema.model_validate
  • target_text snake_case still loads
  • Extract-ending workflows still load
  • python cli.py run-workflow-no-ai path/to/sidepanel-download.json on a recording that was not manually given an extract step

Made with Cursor


Summary by cubic

Fixes loading of Chrome recorder JSON exports so run-workflow-no-ai can replay recordings that end on click/input instead of extract. Now accepts targetText as an alias for target_text.

  • Drops the load-time validator that required a trailing extract step; extract remains the recommended generation convention for run-as-tool.