Commit Graph

1524 Commits

Author SHA1 Message Date
aditya aaad293b6d feat(actor): add main ActorConfigSchema and YAML I/O
Add complete actor configuration schema:

Main Schema:
- ActorConfigSchema: top-level model bringing all components together
- Type-specific field requirements (LLM, TOOL, GRAPH)
- Model validator for cross-field validation
- Environment variable mappings

YAML I/O Methods:
- from_yaml_file(): load and validate from YAML
- to_yaml_file(): save configuration to YAML
- Proper error handling (FileNotFoundError, YAMLError, ValidationError)

Validation Logic:
- LLM actors require 'model' field
- TOOL actors require at least one tool
- GRAPH actors require 'model' and 'route' with cycle detection
- Namespaced name validation (namespace/name format)

Part 4 of C1.schema implementation (Actor YAML Schema Models).
2026-02-17 12:40:07 +00:00
aditya a39dd1115d feat(actor): add graph topology models (nodes, edges, routes)
Add graph workflow models for ActorType.GRAPH:

Graph Models:
- EdgeDefinition: connections between nodes with conditional routing
- NodeDefinition: node specifications (agent, tool, conditional, subgraph)
- RouteDefinition: complete graph topology with validation

Validation Features:
- Unique node ID validation
- Reference validation for all edges and entry/exit points
- Cycle detection using DFS algorithm
- Node ID format validation (alphanumeric with underscores/hyphens)

Part 3 of C1.schema implementation (Actor YAML Schema Models).
2026-02-17 12:35:44 +00:00
aditya 40190e0f2b feat(actor): add tool and config Pydantic models
Add base configuration models for actor YAML schema:

Tool Models:
- ToolParameter: parameter definitions for inline tools
- ToolDefinition: complete inline tool with Python code

Configuration Models:
- MemoryConfig: conversation history and memory settings
- ContextConfigSchema: file inclusion and context window config

All models include comprehensive validation:
- Parameter name validation (valid Python identifiers)
- Tool name validation (namespace/name format)
- Field validators using Pydantic v2 patterns

Part 2 of C1.schema implementation (Actor YAML Schema Models).
2026-02-17 12:30:21 +00:00
aditya b01178e214 feat(actor): add core enums (ActorType, NodeType, ContextView)
Add three fundamental enums for actor YAML schema validation:
- ActorType: LLM, TOOL, GRAPH execution models
- NodeType: AGENT, TOOL, CONDITIONAL, SUBGRAPH node types
- ContextView: STRATEGIST, EXECUTOR, REVIEWER, FULL context filtering

Part 1 of C1.schema implementation (Actor YAML Schema Models).
2026-02-17 12:19:39 +00:00
aditya 6d7b759f25 style(skill): apply ruff auto-formatting to skill schema files 2026-02-17 10:13:19 +00:00
aditya 08ad4ea683 Merge branch 'master' into feature/m3-skill-schema 2026-02-17 09:57:49 +00:00
freemo 43b231b33b Docs: Fixed some missing check-off marks on todo items 2026-02-17 00:08:44 -05:00
Jeffrey Phillips Freeman 4dc05051dd feat(cli): add project commands (core) 2026-02-16 23:56:55 -05:00
Jeffrey Phillips Freeman 827c241baa feat(service): wire resource registry and project services 2026-02-16 23:53:50 -05:00
Jeffrey Phillips Freeman 0c6ed1c709 feat(repo): add project repositories 2026-02-16 23:50:59 -05:00
Jeffrey Phillips Freeman 96ceedbef4 Docs: Cleaned up ADR home page with better descriptions of content 2026-02-16 23:49:18 -05:00
Jeffrey Phillips Freeman ee5f0376d7 Replaced hand written Reference section with one generated from docstrings 2026-02-16 23:40:33 -05:00
brent.edwards 002eafd6f7 Merge pull request 'feat(qa): enforce coverage >=97% in CI' (#50) from feature/q0-min-coverage into master
Reviewed-on: cleveragents/cleveragents-core#50
2026-02-17 04:01:09 +00:00
Jeffrey Phillips Freeman 339b7de700 Docs: Added ADRs and improved TOC handling 2026-02-16 22:11:01 -05:00
brent.edwards 6f7ab08e12 Merge branch 'master' into feature/q0-min-coverage
# Conflicts:
#	benchmarks/cli_format_bench.py
#	benchmarks/plan_phase_migration_bench.py
#	benchmarks/project_migration_bench.py
#	benchmarks/resource_registry_migration_bench.py
#	benchmarks/uow_lifecycle_bench.py
2026-02-17 02:35:20 +00:00
brent.edwards 2f681b74ca docs(implementation_plan.md): Added what was accomplished 2026-02-17 02:27:59 +00:00
brent.edwards 122af46305 fix(tests): resolve unit test and benchmark failures
- Fix project_repository_steps session mismatch: use shared session
  for repos so context.pr_session.commit() commits flushed data
- Fix cli_format_bench setup/teardown to accept fmt parameter for
  parameterized ASV benchmarks
- Fix plan_model_bench PlanPhase.APPLIED -> PlanPhase.APPLY
- Fix benchmark idempotency: use batch counters to generate unique IDs
  across repeated ASV iterations (plan_phase_migration_bench,
  project_migration_bench, resource_registry_migration_bench)
- Fix uow_lifecycle_bench FK constraint by reusing pre-seeded action
- Fix plan_lifecycle_persistence_bench to create fresh plan per iteration
2026-02-17 02:24:35 +00:00
brent.edwards 7ddd99b07d chore(merge): integrate master into feature/q0-min-coverage
Resolve three merge conflicts from master integration:

- benchmarks/coverage_report_bench.py: remove duplicate PYPROJECT_PATH
  constant (already defined below the conflict region)
- noxfile.py: combine HEAD's os.makedirs('build') guard with master's
  resolved PYTHONPATH (Path('src').resolve())
- implementation_plan.md: take master for completed Q0-min-ci block,
  preserve HEAD's in-progress Q0-min-coverage state, adopt master's
  Q0-Advanced consolidation (no standalone commits)
2026-02-17 00:56:43 +00:00
brent.edwards 5254708146 Merge branch 'master' into fix/benchmark-tests 2026-02-17 00:41:16 +00:00
Jeffrey Phillips Freeman 1fb91cba28 refactor(plan): remove legacy plan persistence 2026-02-17 00:38:33 +00:00
Jeffrey Phillips Freeman 44533444ed feat(service): persist plan lifecycle via repositories 2026-02-17 00:38:33 +00:00
Jeffrey Phillips Freeman d0f265ef62 feat(service): persist plan lifecycle via repositories 2026-02-17 00:37:53 +00:00
freemo ea76990bb6 Docs: Fixed some bugs int he ToC's javascript 2026-02-16 19:26:49 -05:00
freemo 155a5d7819 Docs: Updated ADRs and referenced them from the specification 2026-02-16 18:53:06 -05:00
CoreRasurae 946933139c fix(bench): Benchmark tests database issues on concurrent test calls 2026-02-16 23:13:08 +00:00
CoreRasurae d111157573 fix(bench): use unique names per iteration to avoid UNIQUE constraint failures 2026-02-16 22:28:04 +00:00
Jeffrey Phillips Freeman f7d2f63ab8 feat(cli): add resource commands (core) 2026-02-16 16:46:54 -05:00
Jeffrey Phillips Freeman 36c571db83 feat(repo): add resource repositories 2026-02-16 21:35:54 +00:00
freemo c5617b0457 Build: Added even more MCP and LSP servers to the devcontainer 2026-02-16 16:29:30 -05:00
freemo 3240c94f9d Build: Updated devcontainer with relevant mcp servers on opencode 2026-02-16 15:07:35 -05:00
freemo 983eee7a37 Fix: Fixed failing unit tests due to outdated behave version and alembic typo, and other fixes. 2026-02-16 14:21:06 -05:00
Jeffrey Phillips Freeman e273b52769 feat(db): add projects and project links tables 2026-02-16 12:18:51 -05:00
aditya c41581b7c4 docs(skill): add skill YAML schema and examples 2026-02-16 19:52:47 +05:30
Jeffrey Phillips Freeman dbca60c98e feat(db): add projects and project links tables 2026-02-15 11:04:18 -05:00
Jeffrey Phillips Freeman 5a7703473a feat(resource): add git-checkout and fs-directory resource types 2026-02-15 10:44:14 -05:00
Jeffrey Phillips Freeman 1f06bb2f76 feat(resource): add resource type model + schema loader 2026-02-15 15:19:09 +00:00
Jeffrey Phillips Freeman ae40bb24c0 feat(uow): wire lifecycle repositories 2026-02-15 09:04:17 +00:00
Jeffrey Phillips Freeman 5691858d46 feat(repo): add lifecycle plan repository 2026-02-15 08:29:31 +00:00
Jeffrey Phillips Freeman 6183ee3230 feat(db): rebaseline plan phase/state enums for Action and Apply terminal states 2026-02-15 06:16:19 +00:00
freemo d07e9903eb Docs: Reassigned blocking tasks to me. 2026-02-15 00:14:19 -05:00
freemo 039ab87b52 feat(domain): rebaseline plan phases and apply states 2026-02-15 00:12:07 -05:00
freemo 88e8957cba Docs: Updated implementation plan 2026-02-14 20:30:55 -05:00
Jeff (CTO) 2277ac1b8e feat(tool): add built-in file tools 2026-02-14 14:03:28 -05:00
freemo 2d345ae31c feat(tool): add tool lifecycle runtime
Implement the four-stage tool lifecycle (discover/activate/execute/deactivate)
with capability enforcement, per-plan activation caching, JSON Schema validation,
execution tracing, and cancellation propagation.

New modules:
- tool/context.py: ToolExecutionContext, BoundResource, Change, CancellationToken
- tool/lifecycle.py: ToolRuntime, ToolInstance protocol, ToolLifecycleCache
- tool/schema_validator.py: JSON Schema input/output validation

Tests: 57 Behave scenarios, 6 Robot smoke tests, 5 ASV benchmarks
Coverage: context 100%, schema_validator 100%, lifecycle 94%, overall 97%
2026-02-14 18:55:48 +00:00
Jeff (CTO) 156e3ffde9 feat(cli): stabilize action/plan output formats 2026-02-14 13:51:12 -05:00
Jeff (CTO) 18482b938f feat(tool): add tool runtime core 2026-02-14 13:46:10 -05:00
freemo 65988669a6 feat(cli): align plan use/list/status flags
- plan use: accept positional PROJECT args, add --automation-profile,
  --invariant (repeatable), and actor override flags
- lifecycle-list: add --state/--processing-state, --action filters,
  optional positional REGEX for name filtering, Action column in output
- plan status: enhanced detail view with processing state, project
  links, arguments order, automation profile provenance, actor
  overrides, automation level, and full timestamps
- Add docs/reference/plan_cli.md reference documentation
- Add Behave feature (17 scenarios) with mock service steps
- Add Robot smoke test (7 cases) with import-safe helper
- Add ASV benchmarks for plan use/list/status commands
2026-02-14 13:42:02 -05:00
Jeff (CTO) d98666651f feat(cli): align action commands to spec
- Enforce config-only 'action create --config <file>' (remove legacy
  inline flags: --name, --strategy-actor, --execution-actor,
  --definition-of-done, --arg)
- Load config via ActionConfigSchema.from_yaml_file() then
  Action.from_config() with clear validation error surfacing
- Remove 'action available' subcommand (no draft state; actions are
  available by default)
- Add REGEX positional arg to 'action list' for name filtering
- Add Short Name and Definition of Done summary to all CLI outputs
- Add 'action list --namespace/-n' and '--state/-s' filters
- Update existing tests to match new config-only create flow
- Add features/action_cli_spec_alignment.feature (19 scenarios)
- Add robot/action_cli_spec.robot smoke tests
- Add benchmarks/action_cli_bench.py ASV benchmarks
- Add docs/reference/action_cli.md
2026-02-14 12:16:39 -05:00
freemo a64687f2a2 Docs: Updated specification to clear up a few inconsistencies 2026-02-14 10:59:06 -05:00
freemo 7fde8fcd13 Docs: Updated implementation plan schedule for latest progress and spec 2026-02-14 00:19:20 -05:00