03d2df26ce77719f21290dfd0048988474772517
5 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
aecbaa00f6 |
fix(actor): resolve CI failures for config-actor format PR
CI / push-validation (pull_request) Successful in 39s
CI / helm (pull_request) Successful in 46s
CI / build (pull_request) Successful in 49s
CI / lint (pull_request) Successful in 1m14s
CI / quality (pull_request) Successful in 1m14s
CI / typecheck (pull_request) Successful in 1m29s
CI / security (pull_request) Successful in 1m30s
CI / integration_tests (pull_request) Successful in 4m49s
CI / unit_tests (pull_request) Successful in 6m25s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Failing after 11m18s
CI / status-check (pull_request) Failing after 3s
Lint (ruff):
- schema.py: import `cast`, replace non-breaking hyphens, inline SIM103
return, wrap long is_nested_v3 line
- config.py: replace `if k in d: del d[k]` with `pop`, collapse nested
ifs (SIM102)
- format both reformatted-only files (ruff format)
Typecheck (pyright):
- config.py: guard `actor_type.lower()` calls with isinstance checks so
the None branch is type-safe
Unit tests (behave):
- Remove duplicate `@then('v3actor the command ...')` and
`@then('the actor should be registered with type ...')` registrations
that crashed step-registry with AmbiguousStep — shared versions live
in actor_add_v3_schema_validation_steps.py
- Add missing Actor import; drop unused ActorConfiguration / is_v3_yaml
imports and unused provider/model locals
- Populate `context.registered_actor_type` from the upsert call args so
the shared assertion step works for combined-format scenarios
- Add a `@when("I run the actor add command without a name argument")`
step that exercises the CLI's "Actor name is required" validation
path (the previously-active step always supplied a name, masking the
scenario's intent)
ISSUES CLOSED: #11189
|
||
|
|
7b91b66b28 |
Fix actor add --config crash with combined-format config.actor (#11189)
When users register actors via `agents actor add --config` using the
spec-compliant combined config.actor YAML format — either as a compact
string (config:\n actor: "<provider>/<model>") or as a nested dict
(config:\n actor:\n type: llm\n provider: aws) — the CLI crashed
with click.BadParameter: "Invalid value: 'provider' is required" because
the parser did not detect or flatten the nested structure.
Added:
- _detect_nested_config_actor() in schema.py to recognise both
compact-string and nested-dict forms of config-actor format.
- _flatten_config_actor() in schema.py to merge config["actor"]
fields into the dict top-level (removing the wrapper).
- Flattening logic in ActorConfiguration.from_blob() to handle both
string ("<provider>/<model>") and nested-dict forms of config.actor.
- CLI flattening step at the start of `agents actor add` command.
- New BDD scenarios for combined-format registration.
- Unit tests for detection, flattening, schema-v3 detection, and
full from_blob() flow.
ISSUES CLOSED: #11189
|
||
|
|
883ec872e2 |
fix(CI): resolve remaining lint/format violations in PR #8722
CI / lint (push) Successful in 1m54s
CI / build (push) Successful in 1m29s
CI / quality (push) Successful in 2m1s
CI / typecheck (push) Successful in 2m7s
CI / security (push) Successful in 2m20s
CI / helm (push) Successful in 29s
CI / integration_tests (push) Successful in 4m17s
CI / push-validation (push) Successful in 20s
CI / e2e_tests (push) Successful in 4m21s
CI / unit_tests (push) Successful in 5m42s
CI / benchmark-regression (push) Has been skipped
CI / docker (push) Successful in 2m1s
CI / coverage (push) Successful in 13m48s
CI / status-check (push) Successful in 4s
CI / benchmark-publish (push) Successful in 1h17m24s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 51s
CI / helm (pull_request) Successful in 32s
CI / lint (pull_request) Successful in 1m4s
CI / typecheck (pull_request) Successful in 1m18s
CI / quality (pull_request) Successful in 1m19s
CI / security (pull_request) Successful in 1m25s
CI / push-validation (pull_request) Successful in 20s
CI / integration_tests (pull_request) Successful in 3m31s
CI / benchmark-regression (pull_request) Failing after 53s
CI / e2e_tests (pull_request) Successful in 5m13s
CI / unit_tests (pull_request) Successful in 6m43s
CI / coverage (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
- Apply ruff format to features/steps/strategize_decision_recording_steps.py: expanded single-line set literal to multi-line canonical form (PEP 87) This was the sole remaining CI lint blocker per review cycle 14. - Remove unused imports from tests/actor/test_registry_builtin_yaml.py: removed 'Settings' and 'ProviderRegistry' to fix F401 errors. These were pre-existing violations caught by ruff check. ISSUES CLOSED: #8522 Closes: #8722 |
||
|
|
8dc55655e9 |
feat(actor): make built-in actors virtual, resolved on-demand from provider registry
CI / push-validation (push) Successful in 41s
CI / helm (push) Successful in 42s
CI / benchmark-publish (push) Failing after 56s
CI / build (push) Successful in 1m6s
CI / lint (push) Successful in 1m13s
CI / quality (push) Successful in 1m34s
CI / typecheck (push) Successful in 2m12s
CI / security (push) Successful in 2m13s
CI / e2e_tests (push) Successful in 3m45s
CI / integration_tests (push) Successful in 3m57s
CI / unit_tests (push) Successful in 4m53s
CI / docker (push) Successful in 1m34s
CI / coverage (push) Successful in 11m27s
CI / status-check (push) Successful in 3s
CI / benchmark-publish (pull_request) Has been skipped
CI / helm (pull_request) Successful in 32s
CI / push-validation (pull_request) Successful in 33s
CI / build (pull_request) Successful in 53s
CI / lint (pull_request) Successful in 59s
CI / quality (pull_request) Successful in 1m28s
CI / security (pull_request) Successful in 1m29s
CI / typecheck (pull_request) Successful in 1m32s
CI / e2e_tests (pull_request) Successful in 4m1s
CI / integration_tests (pull_request) Successful in 5m4s
CI / unit_tests (pull_request) Successful in 5m51s
CI / docker (pull_request) Successful in 1m27s
CI / coverage (pull_request) Successful in 11m51s
CI / status-check (pull_request) Successful in 3s
Replace the DB-persistence approach for built-in actors with in-memory virtual resolution. Built-in actors (e.g. openai/gpt-4o, anthropic/claude-sonnet) are now resolved on-demand from ProviderRegistry at query time and merged with persisted custom actors — no database writes occur for built-in actors. Key changes: - Add ActorRegistry._resolve_virtual_builtin_actors(): generates virtual Actor objects in-memory from configured providers (is_built_in=True, id=None) - ActorRegistry.list()/list_actors(): merges virtual built-ins with custom DB actors; custom actors win on name collision; result sorted alphabetically - ActorRegistry.get()/get_actor(): DB-first, virtual built-in fallback, NotFoundError if neither - ActorRegistry.remove()/remove_actor(): rejects virtual built-in names with ValidationError - ActorRegistry.set_default_actor(): stores only the actor name string via new actor_preferences singleton table; no actor row created for virtual built-ins - ActorRegistry.get_default_actor(): reads preference name, resolves via DB→virtual chain, returns actor with is_default=True - Remove ensure_built_in_actors() entirely — 20+ call sites cleaned up including plan.py - Remove ActorRepository.upsert_built_in() — no longer needed - Remove is_built_in from ActorModel DB column (kept on Actor domain model for virtual actors) - New Alembic migration m10_001_virtual_builtin_actors: drops is_built_in column, adds actor_preferences singleton table - Add ActorService.set_default_actor_name() and get_default_actor_name() for preference storage without requiring a DB actor row - Update 15+ Behave step files and 5 feature files; add new features/virtual_builtin_actors.feature with 8 scenarios covering list, show, remove, set-default, get-default, no-DB-writes guarantees - Rewrite tests/actor/test_registry_builtin_yaml.py: TestEnsureBuiltInActorsWithYaml → TestResolveVirtualBuiltinActors plus new TestListActors, TestGetActor, TestRemoveActor, TestDefaultActor test classes Quality gates: lint ✓, typecheck ✓, unit_tests ✓ (15674 scenarios), coverage ✓ (97.10%), integration_tests ✓ (1997 tests) ISSUES CLOSED: #10923 |
||
|
|
bb6765d85e |
fix(actor): add v3 YAML text generation for built-in actors
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 56s
CI / quality (pull_request) Successful in 1m12s
CI / typecheck (pull_request) Successful in 1m26s
CI / security (pull_request) Successful in 1m20s
CI / build (pull_request) Successful in 38s
CI / helm (pull_request) Successful in 36s
CI / push-validation (pull_request) Successful in 36s
CI / integration_tests (pull_request) Successful in 3m10s
CI / e2e_tests (pull_request) Successful in 3m21s
CI / unit_tests (pull_request) Successful in 4m31s
CI / docker (pull_request) Successful in 1m31s
CI / coverage (pull_request) Successful in 11m45s
CI / status-check (pull_request) Successful in 3s
CI / status-check (push) Blocked by required conditions
CI / push-validation (push) Successful in 37s
CI / helm (push) Successful in 41s
CI / benchmark-publish (push) Failing after 56s
CI / build (push) Successful in 1m0s
CI / lint (push) Successful in 1m35s
CI / quality (push) Successful in 1m37s
CI / typecheck (push) Successful in 1m59s
CI / security (push) Successful in 2m0s
CI / e2e_tests (push) Successful in 3m53s
CI / integration_tests (push) Successful in 4m44s
CI / unit_tests (push) Successful in 5m27s
CI / docker (push) Successful in 1m30s
CI / coverage (push) Failing after 22m54s
Built-in actors (e.g., openai/gpt-4, anthropic/claude-3-opus) were failing silently with agents actor run because they lacked the required v3 type field in their stored configuration. The ReactiveConfigParser._is_v3_format() check failed, resulting in empty agents/routes dictionaries and no output. This fix adds _generate_builtin_actor_yaml() helper to ActorRegistry that generates spec-compliant v3 YAML text including: - type: llm (required for v3 format recognition) - description (required by v3 schema) - name, model, provider, capabilities, unsafe, source fields The ensure_built_in_actors() method now calls this helper and persists yaml_text via upsert_actor(), ensuring built-in actors work identically to custom actors with the agents actor run command. Existing built-in actors will be automatically refreshed on next startup since they are regenerated from the provider registry - no database migration needed. Added: - _generate_builtin_actor_yaml() helper method - BDD feature file with scenarios for v3 YAML format - Step definitions for new BDD scenarios - Unit tests covering YAML generation and schema validation - CHANGELOG entry ISSUES CLOSED: #10883 |