Feature: Actor registry coverage As a developer I want actor registry behaviors covered So that built-in and custom actors are validated 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