aditya
f8bc02869a
Merge branch 'master' into feature/m3-agent-skills-loader
2026-02-26 14:43:52 +00:00
aditya
cb82fc51df
feat(skill): add agent skills loader
...
Implemented AgentSkillSpec loader that parses SKILL.md frontmatter and
progressive disclosure sections (discover/activate/deactivate) into
structured SkillStep objects with stable 1-based ordering.
Mapped Agent Skills to AgentSkillToolDescriptor with namespaced naming
(namespace/short_name), source="agent_skill", read-only defaults, and
AgentSkillResourceSlot bindings for scripts/, references/, and assets/
directories. All resource slots are unconditionally read_only.
Added explicit validation for missing frontmatter fields (name,
description) and invalid namespace format with actionable error messages.
Added docs/reference/agent_skills.md covering folder layout, SKILL.md
parsing rules, progressive disclosure model, and tool mapping.
Added Behave scenarios covering valid/invalid SKILL.md parsing,
namespaced naming, step ordering, missing frontmatter errors, progressive
disclosure lifecycle, tool mapping, and resource binding slots.
Added Robot Framework integration tests using the deploy-to-staging
example skill folder (robot/agent_skills_loader.robot).
Added ASV benchmarks for parsing throughput, folder load, progressive
disclosure lifecycle, and resource listing
(benchmarks/agent_skills_loader_bench.py).
ISSUES CLOSED : #160
2026-02-26 09:10:35 +00:00
aditya
b8d7c4c893
Merge branch 'master' into feature/m2-actor-yaml
2026-02-26 06:21:39 +00:00
freemo
e3fcce413b
feat(changeset): persist changesets and diff artifacts
...
Add SQLite persistence for ChangeSet entries and ToolInvocation records
via new changeset_repository module implementing the ChangeSetStore protocol.
- Alembic migration d0_001 creates changeset_entries and tool_invocations tables
- SqliteChangeSetStore, ChangeSetEntryRepository, ToolInvocationRepository
- PlanApplyService.cleanup_changeset() for cancel/failure cleanup
- Behave tests (17 scenarios), Robot tests (5 cases), ASV benchmarks
- Reference documentation in docs/reference/changeset.md
Closes #163
2026-02-26 02:47:14 +00:00
freemo
3a2b134f3c
test(coverage): add Behave scenarios for remaining under-tested modules
...
Added Behave BDD feature files and step definitions targeting coverage
gaps in six modules:
- container.py: exercise get_database_url env-var fallback, AI provider
None path, cached container singleton, override_providers edge cases
(lines 66-69, 125-130; branches at 51, 57, 82, 87, 256, 284-288)
- correction_service.py: exercise exception-handling paths in
execute_revert and execute_append via monkeypatched analyze_impact
and ULID failures (lines 254-262, 320-328)
- plan_lifecycle_service.py: exercise _persisted UoW commit paths,
InvalidPhaseTransitionError custom message branch, non-reusable
action archive, and error_details merge logic (branches at 100,
216, 237, 327, 461, 570, 576, 607)
- plan.py (CLI): exercise spec-dict optional field branches,
_print_lifecycle_plan conditional rendering, use_action argument
parsing, auto-resolve paths, legacy wrappers, and validation
error branches across 66 scenarios
- skill.py (CLI): exercise singleton cache, timestamp-absent show,
no-tools MCP, add/remove/list/show format and error branches
across 26 scenarios
- models.py (DB): exercise to_domain/from_domain None-field branches
in SkillModel, SessionModel, ToolModel, LifecycleActionModel,
LifecyclePlanModel, NamespacedProjectModel, and SessionMessageModel
across 41 scenarios
All 302 features, 6503 scenarios, 28271 steps pass (nox -e unit_tests).
ISSUES CLOSED : #446
2026-02-25 19:38:43 -05:00
brent.edwards
d055b59d7c
Merge branch 'master' into develop-brent-4
2026-02-25 20:05:18 +00:00
brent.edwards
3b58432ecc
docs(merge): merge new docs into branch
2026-02-25 19:41:56 +00:00
freemo
c4f71e930d
feat(concurrency): add plan resume
...
Implement step-level progress persistence and plan resume with graceful
shutdown handling.
- Add ResumeCheckpoint, ResumeMetadata, ResumeEligibility, ResumeSummary
domain models (resume.py)
- Add PlanResumeService with validate_eligibility(), build_resume_summary(),
resume_plan(dry_run), record_step_checkpoint(), record_shutdown()
- Add last_completed_step and last_checkpoint_id fields to Plan model
- Add 'plan resume' CLI command with --dry-run flag
- Update plan lifecycle docs (ADR-006) with resume behavior section
- Add Behave tests (24 scenarios in plan_resume.feature)
- Add Robot Framework integration tests (10 tests)
- Add ASV benchmarks for resume overhead
Closes #328
2026-02-25 14:00:04 -05:00
freemo
134dce896a
feat(provider): add cost controls and fallback
...
Add token/cost tracking, budget enforcement (per-plan and per-day),
provider fallback selection with capability filtering, and cost
metadata for plan models.
New modules:
- providers/cost_table.py: CostEntry + ProviderCostTable with default
pricing for OpenAI, Anthropic, Google, Groq, Together, Cohere, Mock
- providers/cost_tracker.py: BudgetStatus enum, BudgetCheckResult,
CostTracker with warn-at-90%/block-at-100% enforcement
- providers/fallback_selector.py: FallbackSelector with capability
filtering (tool_calls, streaming, vision, json_mode) and budget
- domain/models/core/cost_metadata.py: CostMetadata + BudgetExhaustionEvent
Modified:
- config/settings.py: budget_per_plan, budget_per_day, fallback_providers
- domain/models/core/plan.py: cost_metadata field + CLI dict surfacing
- providers/__init__.py: public exports for new classes
Testing:
- 71 Behave scenarios in features/cost_controls.feature (all pass)
- 6 Robot Framework integration tests (all pass)
- ASV benchmarks in benchmarks/cost_controls_bench.py
- nox lint, typecheck, format, docs, build, dead_code, security_scan pass
Closes #324
2026-02-25 12:08:01 -05:00
freemo
7a298ede6e
feat(concurrency): add plan and project locks
...
Implemented plan-level and project-level locking with configurable timeouts.
Added locks table via Alembic migration storing owner_id, resource_type,
resource_id, acquired_at, and expires_at. Locks enforced in
PlanLifecycleService transitions. Support for re-entrant acquisition,
lock renewal, graceful shutdown release, and startup cleanup of expired
locks. Added diagnostics check for stale lock reporting.
ISSUES CLOSED : #327
2026-02-25 10:48:05 -05:00
aditya
913fd31e07
Merge branch 'master' into feature/m2-actor-yaml
2026-02-25 10:31:07 +00:00
aditya
e476d2de0e
feat(actor): extend hierarchical actor YAML schema and loader
...
Extend actor YAML schema to support hierarchical graphs with explicit
node types (agent, tool, conditional, subgraph), per-node LSP bindings
(lsp_binding with server, languages, auto, capabilities), and tool-source
references (skills, mcp_servers, agent_skills).
Add schema validation for namespaced actor references, duplicate node IDs,
edge target existence, and graph reachability — all nodes must be reachable
from entry_node via explicit edges or conditional node routing targets.
Update loader to report YAML parse errors with precise line/column positions
and schema validation errors with dotted field paths and remediation hints
pointing to docs/reference/actor_config.md.
Add docs/reference/actor_config.md as the practical configuration reference
covering hierarchical graph examples, node type table, topology rules, and
common error cases with fix guidance.
Refresh examples/actors/graph_workflow.yaml to replace deprecated actor_path
with actor_ref. Add benchmarks/actor_yaml_bench.py for schema load overhead.
Tests: 95 Behave scenarios, 10 Robot smoke tests (including hierarchical
loader smoke test), security scan clean, coverage 99% (threshold 97%).
ISSUES CLOSED : #157
2026-02-25 10:30:42 +00:00
CoreRasurae
a7dc917021
fix(security): harden template rendering
...
ISSUES CLOSED : #319
2026-02-25 10:06:27 +00:00
CoreRasurae
8604bc66b6
fix(security): enforce explicit exception handling
...
ISSUES CLOSED : #320
2026-02-25 10:05:57 +00:00
CoreRasurae
d70a5d84ae
feat(plan): add error recovery patterns and CLI hints
...
ISSUES CLOSED : #186
2026-02-25 10:05:10 +00:00
CoreRasurae
fe69d132f1
feat(dod): enforce definition-of-done gating
...
ISSUES CLOSED : #178
2026-02-25 10:04:31 +00:00
CoreRasurae
4874f2ad6f
feat(validation): add validation pipeline and results model
...
ISSUES CLOSED : #175
2026-02-25 10:03:57 +00:00
CoreRasurae
57fcc880c3
feat(apply): run validation attachments
...
ISSUES CLOSED : #176
2026-02-25 10:03:21 +00:00
CoreRasurae
95b6ed57c2
feat(change): add diff review artifacts
...
ISSUES CLOSED : #303
2026-02-25 10:02:38 +00:00
CoreRasurae
ab6a3fd732
feat(apply): add validation-gated apply pipeline
...
ISSUES CLOSED : #155
2026-02-25 10:01:57 +00:00
brent.edwards
e230700857
Merge feature/m1-e2e-sourcecode into develop-brent-4
2026-02-25 06:36:45 +00:00
brent.edwards
dbc9be9fc0
Merge feature/m2-actor-tool-smoke into develop-brent-4
2026-02-25 06:35:44 +00:00
brent.edwards
0397a00eb6
test(e2e): add M1 source-code plan lifecycle suite
2026-02-25 04:50:43 +00:00
brent.edwards
9bf87a20d9
chore(pr): address code review feedback for PR #421
...
- Added CHANGELOG.md entry for M2 E2E test suite (CONTRIBUTING.md §6)
- Added Brent E. Edwards to CONTRIBUTORS.md (CONTRIBUTING.md §8)
- Fixed docs/development/testing.md: corrected M2 Behave scenario count
from 11 to 10 to match actual feature file
- Added standard explanatory comments to benchmark sys.path setup
for consistency with project convention (advisory)
- Replaced untyped lambda handler with typed _m2_noop_handler function
in step definitions (advisory)
All nox stages pass: lint, typecheck, format, unit_tests (280 features /
5846 scenarios / 0 failures), integration_tests (682 passed),
coverage_report (97.2%).
ISSUES CLOSED : #169
2026-02-25 04:13:55 +00:00
brent.edwards
f3ddb48faf
chore(pr): address code review feedback for PR #420
...
Added CHANGELOG entry for CLI extension test suite. Added Brent Edwards
to CONTRIBUTORS.md. Replaced broad except Exception with specific
ValidationError catch in benchmark. Moved import json to module
top-level in robot helper script.
ISSUES CLOSED : #326
2026-02-25 02:55:40 +00:00
brent.edwards
a2a91c3d9c
Merge branch 'master' into feature/m2-actor-tool-smoke
2026-02-24 21:59:58 +00:00
brent.edwards
c8434e21f3
Merge branch 'master' into feature/m4-cli-extension-tests
2026-02-24 21:56:43 +00:00
brent.edwards
093a74953f
test(e2e): add M2 actor + tool source smoke suite
...
Add comprehensive E2E test suite for M2 (Actor Graphs + Tool Sources) epic:
- Behave BDD: 10 scenarios covering actor YAML loading, skill registry,
tool lifecycle (discover/activate/execute/deactivate), and MCP stub
- Robot Framework: 6 integration tests via CLI helper script
- ASV benchmarks: 12 benchmarks for actor loading, skill registry,
tool lifecycle, and MCP stub performance baselines
- MCP stub server mock: in-process fake with 3 tools (search/fetch/transform)
- Fixtures: hierarchical graph actor YAML + skill pack with tool refs and
inline tools
- Docs: updated testing.md with M2 smoke suite section
Closes #169
2026-02-24 21:55:24 +00:00
brent.edwards
2c21611ad5
test(cli): cover action and plan extensions
...
Added comprehensive test coverage for CLI extension features from #325 :
- Behave scenarios for automation_profile resolution, invariant ordering,
and actor override error cases
- Output snapshot assertions for JSON/YAML/table formats
- Robot integration test for action show with optional actors/invariants
- ASV benchmark for extended CLI scenario runtime baseline
- Updated testing.md with CLI extension test fixture documentation
ISSUES CLOSED : #326
2026-02-24 20:11:42 +00:00
freemo
f7993d7309
feat(cli): align actor commands to YAML
...
Align actor add/remove/list/show commands to YAML-first configs,
namespaced names, and --format json|yaml|plain output support.
Changes:
- Add --format option to list, show, add, and update commands
- Add --update flag to add command for updating existing actors
- Add _actor_spec_dict helper for structured output serialization
- Update _print_actor to support format_output rendering
- Add Behave feature tests for CLI format scenarios (11 scenarios)
- Add Robot Framework integration test for show output fields
- Add ASV benchmark for actor CLI parsing overhead
- Add CLI reference documentation for actor commands
ISSUES CLOSED : #288
2026-02-24 19:12:01 +00:00
freemo
c47e6445d0
feat(actor): compile hierarchical actor configs to LangGraph
...
Add ActorCompiler module that translates GRAPH-type ActorConfigSchema
definitions into LangGraph NodeConfig/Edge structures with LSP binding
metadata. Includes subgraph resolution with cross-actor cycle detection,
entry/exit validation, and CompilationMetadata for diagnostics.
New files:
- src/cleveragents/actor/compiler.py: Core compiler with compile_actor()
- features/actor_compiler.feature: 13 Behave scenarios
- features/steps/actor_compiler_steps.py: Step definitions
- robot/actor_compiler.robot: 4 Robot smoke tests
- benchmarks/actor_compiler_bench.py: ASV performance benchmarks
- docs/reference/actor_compiler.md: Compilation pipeline reference
Modified:
- src/cleveragents/actor/__init__.py: Export compiler types
- vulture_whitelist.py: Whitelist new public API
ISSUES CLOSED : #158
2026-02-24 17:57:18 +00:00
khyari hamza
bfc6ab0fb1
feat(resource): add handler runtime for git-checkout and fs-directory
2026-02-23 22:20:44 +00:00
khyari hamza
832fe369fe
refactor(benchmark): clean up resource registry bench per review
...
- remove unused imports (UTC, datetime, ResourceKind, SandboxStrategy)
- remove dead code (_bench_ulid, _CB32, _BENCH_CTR)
- use StaticPool for in-memory SQLite consistency
2026-02-23 22:20:44 +00:00
khyari hamza
78213084ae
feat(resource): add resource registry and DAG metadata
2026-02-23 22:20:44 +00:00
khyari hamza
abcfba7e66
feat(decision): add decision domain and context snapshots
2026-02-23 22:19:19 +00:00
freemo
76375134f1
Fix: linting errors fixed
2026-02-23 09:47:00 -05:00
freemo
f69224e7e9
feat(cli): add action and plan CLI extensions
2026-02-23 10:46:53 +00:00
freemo
999013a4a4
feat(plan): add phase reversion state machine
2026-02-23 10:45:01 +00:00
freemo
234a2fe52a
feat(config): add config service with multi-level resolution
2026-02-23 10:44:58 +00:00
brent.edwards
f48eb5a05f
feat(cli): add interactive repl
...
Implement `agents repl` command providing an interactive read-eval-print
loop that dispatches to existing CLI commands without the `agents` prefix.
Features:
- Command dispatch via existing Typer app
- readline history with --no-history opt-out (default: ~/.cleveragents/history)
- Tab-completion for all CLI commands and built-in commands
- !! last-command repetition
- Prompt context from CLEVERAGENTS_PROJECT / CLEVERAGENTS_PLAN env vars
- Ctrl+C (continue) and Ctrl+D (exit) signal handling
- Multi-line input with \ continuation
- :help and :exit/:quit built-in commands
Test coverage:
- 15 Behave scenarios (features/repl.feature)
- 10 Robot Framework smoke tests (robot/repl_smoke.robot)
- ASV benchmark suite (benchmarks/repl_bench.py)
- All nox sessions pass: lint, typecheck, unit_tests, integration_tests
- Coverage: 97.2% (threshold: 97%)
2026-02-23 03:11:12 +00:00
freemo
92c83ecc7e
Fix: Fixed linting errors
2026-02-22 14:18:24 -05:00
freemo
dd3c70665e
Merge remote-tracking branch 'origin/feature/m6-acp-stubs' into feature/jeff-combined-day14-batch2
2026-02-22 17:05:00 +00:00
freemo
ee67ecb7cb
merge: resolve M4.1+M4.2 conflicts (M4.2 supersedes M4.1 models/service)
2026-02-22 17:04:03 +00:00
freemo
e2fa756be4
merge: resolve M1.2 conflict in services/__init__.py
2026-02-22 16:54:36 +00:00
freemo
9371992525
Merge remote-tracking branch 'origin/feature/m5-automation-profiles' into feature/jeff-combined-day14-batch2
2026-02-22 16:50:42 +00:00
freemo
5946dcc636
merge: resolve M3.5+M4.1 conflict in services/__init__.py
2026-02-22 16:49:56 +00:00
freemo
62605bc6f8
merge: resolve M2.7+M3.5 conflict in cli/main.py
2026-02-22 16:46:07 +00:00
freemo
dc2a42889a
Merge remote-tracking branch 'origin/feature/m2-lsp-stubs' into feature/jeff-combined-day14-batch2
2026-02-22 16:43:52 +00:00
freemo
33a5adcfee
feat(M4.2): Correction service with revert/append BFS + dry-run
...
Adds CorrectionRequest, CorrectionResult, CorrectionMode,
CorrectionPatch, CorrectionDryRunReport, CorrectionNotFoundError,
and CorrectionConflictError domain models.
Implements CorrectionService with BFS-based revert (marks decisions
as rolled back and restores via inverse changes) and append mode
(spawns a child correction plan). Includes request_correction()
with dry-run support and dispatch_correction() convenience method.
33 Behave scenarios, 8 Robot smoke tests, ASV benchmark suite,
and reference documentation.
Ref: Day-14 Rebaseline – M4.2 Decision-correction flows [Jeff]
2026-02-22 16:40:06 +00:00
freemo
a2da043cbd
feat(M1.2): PlanExecutionContext, RuntimeExecuteActor, and runtime mode
...
Adds PlanExecutionContext carrying plan metadata and delegating
changeset ops to ChangeSetStore. RuntimeExecuteResult captures
execution output (changeset_id, tool_call_count, sandbox_refs,
decision_ids_processed, execution_duration_ms).
RuntimeExecuteActor dispatches StrategyDecision lists through
ToolRunner with full changeset capture and optional streaming
callbacks. PlanExecutor gains execution_context param with
has_runtime / changeset_store / execution_context properties
and _run_execute_with_runtime / _run_execute_with_stub split.
31 Behave scenarios, 5 Robot smoke tests, ASV benchmark suite,
and reference documentation.
Ref: Day-14 Rebaseline – M1.2 Plan-execute runtime wiring [Jeff]
2026-02-22 15:13:43 +00:00