Commit Graph

1526 Commits

Author SHA1 Message Date
brent.edwards 9e9f229b3a fix(test): commit edge row so delete step sees it in its own session
The "Deleting a resource with edges is rejected" scenario was failing
because the ResourceEdgeModel row was flushed but never committed.
Since ResourceRepository.delete() obtains its own session from the
factory, the uncommitted edge was invisible and ResourceHasEdgesError
was never raised.
2026-02-18 00:28:29 +00:00
brent.edwards b1c011702f feat: merge branch 'master' into feature/m3-skill-domain-robot 2026-02-18 00:21:04 +00:00
CoreRasurae 47cad3c77b feat(session): add session persistence and repositories 2026-02-18 00:10:15 +00:00
brent.edwards ea7fcc0ba0 fix(test): resolve AmbiguousStep collision, invalid ULIDs, and edge commit
Three issues prevented the behave suite from running:

1. plan_persistence_steps.py and plan_repository_steps.py both defined
   @then('the retrieved plan description should be "..."'), causing an
   AmbiguousStep error that broke all ~50 feature files. Renamed the
   persistence step to "the persisted plan description should be".

2. The three-level hierarchy scenario used plan IDs containing O, I,
   and L which are excluded from the ULID charset. Replaced with valid
   characters (O->0, I->0, L->K).

3. resource_repository_steps.py flushed but never committed the edge
   row, so the delete method's separate session could not see it.
2026-02-18 00:09:56 +00:00
brent.edwards bd647d58cf fix(resource_repository_steps.py): add missing commit() statement 2026-02-18 00:04:09 +00:00
brent.edwards d950d48aa9 fix(resource_repository_steps.py): add missing commit() statement 2026-02-18 00:00:22 +00:00
brent.edwards 2840514729 feat: Merge branch 'master' into feature/m1-resource-db-robot-tests 2026-02-17 15:59:22 -08:00
brent.edwards d24079f129 fix(resource_repository_steps.py): add missing commit() statement 2026-02-17 23:58:10 +00:00
brent.edwards 6c7bcab01e feat: merge branch 'master' into feature/m3-session-domain-robot 2026-02-17 15:56:13 -08:00
brent.edwards 9db88a9541 fix(test): commit edge row so delete step sees it in its own session
The "Deleting a resource with edges is rejected" scenario was failing
because the ResourceEdgeModel row was flushed but never committed.
Since ResourceRepository.delete() obtains its own session from the
factory, the uncommitted edge was invisible and ResourceHasEdgesError
was never raised.
2026-02-17 23:38:45 +00:00
brent.edwards cdbd0bdd23 feat: merge branch 'master' into feature/m3-skill-cli 2026-02-17 22:45:44 +00:00
brent.edwards 08c911a41d Merge pull request 'feature/m3-actor-schema-examples' (#93) from feature/m3-actor-schema-examples into master
Reviewed-on: cleveragents/cleveragents-core#93
2026-02-17 22:31:32 +00:00
brent.edwards da40bff33d fix(test): commit edge row so delete step sees it in its own session
The "Deleting a resource with edges is rejected" scenario was failing
because the ResourceEdgeModel row was flushed but never committed.
Since ResourceRepository.delete() obtains its own session from the
factory, the uncommitted edge was invisible and ResourceHasEdgesError
was never raised.
2026-02-17 22:26:38 +00:00
brent.edwards a7ed08a4f3 fix(test): commit edge row so delete step sees it in its own session
The "Deleting a resource with edges is rejected" scenario was failing
because the ResourceEdgeModel row was flushed but never committed.
Since ResourceRepository.delete() obtains its own session from the
factory, the uncommitted edge was invisible and ResourceHasEdgesError
was never raised.
2026-02-17 22:20:06 +00:00
brent.edwards 3d2cd05f56 test(tool): add robot tool model smoke tests 2026-02-17 21:14:46 +00:00
brent.edwards 5d2e70cff0 test(db): add resource registry robot smoke test 2026-02-17 21:07:54 +00:00
mngrif 642f757d02 testing airspeedvelocity 2026-02-17 15:59:21 -05:00
brent.edwards b9984cac57 Merge branch 'master' into feature/m3-actor-schema-examples 2026-02-17 12:58:19 -08:00
brent.edwards 5f77dd92cd build(merge): merge with master 2026-02-17 20:57:37 +00:00
brent.edwards 81e4ffe92a build(merge): merge with master 2026-02-17 20:54:52 +00:00
brent.edwards 8386ce0f76 Merge pull request 'feat(tool): add tool registry persistence' (#80) from feature/m3-tool-registry into master
Reviewed-on: cleveragents/cleveragents-core#80
2026-02-17 20:50:32 +00:00
mngrif fb055193c5 testing airspeedvelocity 2026-02-17 15:43:46 -05:00
brent.edwards bc5fa83d06 Merge branch 'master' into feature/m3-actor-schema-examples 2026-02-17 12:41:17 -08:00
brent.edwards 49362381bd Merge branch 'master' into feature/m3-skill-cli 2026-02-17 12:37:17 -08:00
brent.edwards 4f32daa740 test(session): add robot session model smoke tests 2026-02-17 20:33:53 +00:00
mngrif 033bfd04a7 testing airspeedvelocity 2026-02-17 15:30:07 -05:00
brent.edwards 53c41f904f Merge branch 'master' into feature/m3-skill-schema 2026-02-17 12:28:28 -08:00
CoreRasurae 798db9088e feat(tool): add tool registry persistence 2026-02-17 20:28:20 +00:00
brent.edwards f912a136b7 test(persistence): add plan/action persistence suites 2026-02-17 20:25:12 +00:00
brent.edwards b8d2bfe252 test(cli): expand lifecycle command coverage 2026-02-17 20:01:18 +00:00
brent.edwards f0815dd126 test(skill): add robot skill resolver smoke tests 2026-02-17 19:58:15 +00:00
mngrif 1f0db6e43a testing airspeedvelocity 2026-02-17 14:36:07 -05:00
mngrif f07afb23c7 testing airspeedvelocity 2026-02-17 14:15:04 -05:00
mngrif 8e2cd0f2e8 testing airspeedvelocity 2026-02-17 14:12:52 -05:00
mngrif 4b4df78ff9 testing airspeedvelocity 2026-02-17 14:10:16 -05:00
brent.edwards 767d9d0f82 Merge pull request 'test(cov): Fix coverage test failures' (#94) from fix/behave_tests_coverage into master
Reviewed-on: cleveragents/cleveragents-core#94
2026-02-17 19:04:45 +00:00
mngrif b0cb67163c testing airspeedvelocity 2026-02-17 14:01:09 -05:00
brent.edwards 7538add6bb fix: merge with master to fix lint 2026-02-17 18:45:55 +00:00
CoreRasurae ef905baff6 test(cov): Fix coverage test failures 2026-02-17 16:40:18 +00:00
brent.edwards 1f8760f94a Merge pull request 'fix(test): correct project list scenario that expected abort on empty db' (#90) from fix/project-list-test into master
Reviewed-on: cleveragents/cleveragents-core#90
2026-02-17 16:04:05 +00:00
aditya c562557da8 feat(cli): add skill commands 2026-02-17 14:44:40 +00:00
khyari hamza 46f697bd95 fix(test): add temp directory and DB bootstrap to project list scenario
The 'Test project list command with no projects' scenario was missing a
Given step to set up a writable working directory. Without it, the
container fell back to CWD/.cleveragents/db.sqlite which could not be
opened (directory did not exist), causing sqlite3.OperationalError.

- Add 'Given I have a temporary working directory' to the scenario
- Bootstrap the SQLite schema in the When step so the ns_projects table
  exists for the empty-list query
2026-02-17 14:40:16 +00:00
aditya 6a84132078 fix(actor): fix actor schema validation and tests
Fix issues identified during test execution:

- Improve name validation to reject multiple slashes and empty parts
- Fix conditional routing YAML to include all exit nodes
- Fix QuotedString parse type to standard quoted format
- Fix line length in error message (split across lines)
- All 47 Behave scenarios pass (0 failures)
- All Robot Framework integration tests pass (283 passed, 3 skipped)
- All ASV benchmarks execute successfully

Part 12 (bugfix) of C1.schema implementation.
2026-02-17 14:31:11 +00:00
aditya a5a134826e docs(actor): add C1.schema implementation notes and development log
Add comprehensive documentation for C1.schema task:

- Notes section in Implementation Checklist with design decisions
- Development Log entry with full implementation summary
- Traceability for all deliverables (code, docs, tests, benchmarks)
- Quality metrics and next steps documented
- Complete file/line number references for all artifacts

Part 11 (final) of C1.schema implementation (Actor YAML Schema Models).
2026-02-17 14:09:53 +00:00
khyari hamza 4ba714c389 style: shorten docstring markdown tables to satisfy E501 (88 cols) 2026-02-17 14:04:24 +00:00
aditya 419168fd95 perf(actor): add ASV benchmarks for actor schema
Add performance benchmarks for actor schema operations:

- Minimal/full LLM actor parsing benchmarks
- Tool actor validation benchmarks
- Simple/complex graph topology validation (cycle detection)
- File I/O operations (load/save YAML)
- Serialization benchmarks (model_dump)

Part 10 of C1.schema implementation (Actor YAML Schema Models).
2026-02-17 13:54:27 +00:00
aditya 1f05648b2a test(actor): add Robot Framework integration tests for actor schema
Add Robot Framework smoke tests for actor schema validation:

- Valid actor tests: All 5 example YAMLs (LLM, tool, graph actors)
- Invalid name tests: Missing namespace validation
- Invalid LLM tests: Missing model field validation
- Invalid TOOL tests: Missing tools field validation
- Invalid GRAPH tests: Missing route and duplicate node IDs
- Helper script: CLI interface for schema validation from Robot

Part 9 of C1.schema implementation (Actor YAML Schema Models).
2026-02-17 13:46:04 +00:00
aditya 1049634d0d test(actor): add Behave step definitions for actor schema
Add step definitions for 50+ test scenarios:

- Given steps: YAML templates for LLM/TOOL/GRAPH actors and invalid configs
- When steps: Schema validation from string/file and YAML I/O
- Then steps: Assertions for validation, fields, collections, and errors
- Test data: Minimal and complex configurations for all scenarios
- Full coverage: All actor types, graph topologies, and error cases

Part 8 of C1.schema implementation (Actor YAML Schema Models).
2026-02-17 13:43:07 +00:00
aditya 9ca1ceea49 test(actor): add comprehensive Behave scenarios for actor schema
Add 50+ Behave test scenarios covering all validation rules:

Valid Scenarios (20):
- LLM actors (minimal, with prompt, tools, memory, context)
- TOOL actors (minimal, inline definitions)
- GRAPH actors (linear, conditional, subgraphs)
- All example YAML files (simple_llm, llm_with_tools, etc.)
- Context views (strategist, executor, reviewer, full)
- Memory configurations
- Environment variables

Invalid Name Scenarios (4):
- Missing namespace
- Multiple slashes
- Empty namespace
- Empty name

Invalid LLM/TOOL/GRAPH Scenarios (7):
- LLM without model
- TOOL without tools
- TOOL with empty tools list
- GRAPH without model
- GRAPH without route

Graph Topology Validation (6):
- Duplicate node IDs
- Invalid entry node
- Invalid exit nodes
- Invalid edge references (from_node, to_node)
- Cyclic graphs

Tool/Node Validation (3):
- Inline tool without namespace
- Invalid parameter names
- Invalid node ID formats

Additional Scenarios (10):
- YAML I/O (save/reload, missing files)
- Edge priorities
- Memory configurations (disabled, limits, summarization)

Part 7 of C1.schema implementation (Actor YAML Schema Models).
2026-02-17 13:34:48 +00:00
aditya 411bc3325f docs(actor): add comprehensive actor schema reference documentation
Add complete reference documentation for actor YAML schema:

Documentation Sections:
- Actor types overview (LLM, TOOL, GRAPH)
- Complete field definitions for all models
- Tool node semantics (references vs inline definitions)
- Graph constraints and topology rules
- Comprehensive validation rules with examples
- Error messages with causes and fixes

Field Definitions:
- Top-level actor fields (name, type, model, etc.)
- ToolParameter and ToolDefinition fields
- MemoryConfig and ContextConfigSchema fields
- ContextView enum (strategist, executor, reviewer, full)

Graph Documentation:
- Node types (AGENT, TOOL, CONDITIONAL, SUBGRAPH)
- Edge definition and conditional routing
- RouteDefinition structure
- Cycle detection explanation

Validation Rules:
1. Unique node IDs
2. Entry node existence
3. Exit nodes existence
4. Edge reference validity
5. Acyclic graph requirement
6. Node reachability

Examples:
- Simple LLM actor
- LLM with inline tools
- Simple graph workflow
- Complex graph with conditionals
- Error examples with fixes

Part 6 of C1.schema implementation (Actor YAML Schema Models).
2026-02-17 13:26:15 +00:00