Feature: Actor registry coverage As a developer I want actor registry behaviors covered So that built-in and custom actors are validated # TODO: Uncomment when step definitions are implemented # Scenario: Skips built-in generation when no providers configured # Given an actor registry with no configured providers # When I ensure built-in actors are generated # Then no actors should be created # And no default actor should be set # # Scenario: Generates built-in actors and selects defaults # Given provider defaults are provider "openai" model "gpt-4o-mini" # And an actor registry with configured providers: # | type | name | model | # | openai | OpenAI | gpt-4o-mini | # | anthropic | Claude | opus | # When I ensure built-in actors are generated # Then the registry should list actors ["OpenAI/gpt-4o-mini", "Claude/opus"] # And the default actor should be "OpenAI/gpt-4o-mini" # When I remove actor "OpenAI/gpt-4o-mini" # Then the stored actors should be ["Claude/opus"] # # Scenario: Built-in actors include graph descriptors and capabilities # Given an actor registry with configured providers: # | type | name | model | # | openai | OpenAI | gpt-4o-mini | # When I ensure built-in actors are generated # Then the built-in actor payload should include graph descriptor and capabilities for "OpenAI/gpt-4o-mini" # # Scenario: Chooses first built-in actor when no defaults provided # Given an actor registry with configured providers: # | type | name | model | # | openai | OpenAI | gpt-4o-mini | # | anthropic | Claude | opus | # When I ensure built-in actors are generated # Then the registry should list actors ["OpenAI/gpt-4o-mini", "Claude/opus"] # And the default actor should be "OpenAI/gpt-4o-mini" # # Scenario: Rejects unsafe actor configurations without confirmation # Given an actor registry with no configured providers # When I attempt to upsert actor "local/unsafe" with unsafe config # Then a registry validation error should be raised for unsafe actor # # Scenario: Canonicalizes actor blob with graph descriptor and defaults # Given an actor registry with no configured providers # When I upsert actor "local/canonical" with provider "custom" model "demo-model" graph descriptor {"graph": "yes"} and options {"foo": "bar"} # Then the stored actor config should include provider "custom" model "demo-model" graph descriptor {"graph": "yes"} unsafe false and option "foo" "bar" # # Scenario: Wrapper methods preserve supplied graph descriptor and defaults # Given an actor registry with no configured providers # When I upsert actor "local/wrapper" with raw config {"provider": "local", "model": "wrap-model", "graph_descriptor": {"graph": "existing"}, "options": {"alpha": 1}} # And I retrieve actor "local/wrapper" via the registry # And I set the default actor to "local/wrapper" via the registry # Then the registry default actor via wrapper should be "local/wrapper" # And the saved actor config should keep graph descriptor {"graph": "existing"} and option "alpha" 1