Commit Graph

265 Commits

Author SHA1 Message Date
freemo a2da043cbd feat(M1.2): PlanExecutionContext, RuntimeExecuteActor, and runtime mode
CI / lint (pull_request) Successful in 25s
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 21s
CI / typecheck (pull_request) Successful in 39s
CI / security (pull_request) Successful in 37s
CI / build (pull_request) Successful in 26s
CI / integration_tests (pull_request) Successful in 4m43s
CI / unit_tests (pull_request) Successful in 11m2s
CI / docker (pull_request) Successful in 58s
CI / benchmark-regression (pull_request) Successful in 18m58s
CI / coverage (pull_request) Successful in 24m24s
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
freemo ca1c341b18 Tests: Significantly improved coverage of the unit tests
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 19s
CI / security (pull_request) Successful in 28s
CI / typecheck (pull_request) Successful in 32s
CI / integration_tests (pull_request) Successful in 2m39s
CI / unit_tests (pull_request) Successful in 5m22s
CI / docker (pull_request) Successful in 38s
CI / benchmark-regression (pull_request) Successful in 17m47s
CI / coverage (pull_request) Successful in 19m6s
CI / lint (push) Successful in 14s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 20s
CI / security (push) Successful in 29s
CI / typecheck (push) Successful in 36s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 3m23s
CI / unit_tests (push) Successful in 9m12s
CI / docker (push) Successful in 16s
CI / benchmark-publish (push) Successful in 10m4s
CI / coverage (push) Successful in 19m27s
2026-02-22 00:43:08 -05:00
CoreRasurae d37cfbe769 test(robot): fix failing integration tests related to safe.directory config and git version
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 17s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 18s
CI / typecheck (pull_request) Successful in 31s
CI / security (pull_request) Successful in 38s
CI / integration_tests (pull_request) Successful in 3m58s
CI / unit_tests (pull_request) Successful in 5m59s
CI / docker (pull_request) Successful in 38s
CI / benchmark-regression (pull_request) Successful in 16m0s
CI / coverage (pull_request) Successful in 16m29s
CI / lint (push) Successful in 14s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 17s
CI / security (push) Successful in 32s
CI / typecheck (push) Successful in 37s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 2m44s
CI / unit_tests (push) Successful in 5m27s
CI / docker (push) Successful in 39s
CI / benchmark-publish (push) Successful in 9m11s
CI / coverage (push) Successful in 16m23s
2026-02-21 18:11:31 +00:00
CoreRasurae e3ddf6c868 fix(security): remove eval-based config parsing 2026-02-21 16:32:03 +00:00
CoreRasurae ca6dbd4576 feat(skill): add skill registry persistence 2026-02-21 16:30:40 +00:00
CoreRasurae 975fbba070 feat(skill): add git operation skills 2026-02-21 16:30:33 +00:00
CoreRasurae 8a219286d6 feat(change): add ChangeSet models and invocation tracker 2026-02-21 16:27:40 +00:00
freemo 34a9672e7f Chore: Fixed bad formatting
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 19s
CI / security (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 36s
CI / integration_tests (pull_request) Successful in 2m34s
CI / unit_tests (pull_request) Successful in 4m41s
CI / docker (pull_request) Successful in 38s
CI / benchmark-regression (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
2026-02-21 10:23:33 -05:00
freemo 2980b14e7b test: boost combined branch coverage to 97% with additional behave scenarios
Add ~60 new behave scenarios across output rendering, tool router, file ops,
and skill search features targeting uncovered lines and branches. Key additions:
- ElementHandle validation guards (empty id, type, negative index, None args)
- Handle close/context-manager edge cases
- Table list-row and batch-row coverage
- Color/box-draw/JSON/YAML materializer edge cases
- Format selection paths (detect capabilities, explicit flag, empty format)
- Session ColumnDef, double-close guard, force-close open handles
- Tool router schema export and provider format scenarios
- File ops edge cases and search stat-failure/glob-include tests

All nox checks pass: lint, typecheck (0 errors), unit_tests (4730 scenarios),
coverage_report (97.0% >= 97% threshold).
2026-02-21 10:23:33 -05:00
freemo 2881b0cf7a fix(test): resolve ambiguous behave step in combined branch merge 2026-02-21 10:23:33 -05:00
freemo 5bdca88eca feat(change): add tool router for providers 2026-02-21 10:23:31 -05:00
freemo 9f2e7e88b0 feat(plan): add diff review and apply integration
Add PlanApplyService with diff(), artifacts(), persist_apply_summary(),
handle_merge_failure(), and guard_empty_changeset() methods.

- plan diff: renders changeset in rich/plain/json/yaml formats
- plan artifacts: shows plan metadata, changeset summary, sandbox refs
- persist_apply_summary: stores files_changed/validations_run in plan metadata
- handle_merge_failure: transitions plan to error state with conflict details
- guard_empty_changeset: blocks apply on empty changeset (--allow-empty override)

CLI: plan diff and plan artifacts commands with --format flag.
Tests: 20 Behave scenarios, 8 Robot integration tests, 4 ASV benchmarks.
Docs: docs/reference/plan_apply.md with CLI reference.

Implements D0b.apply from the implementation plan.
2026-02-21 10:22:18 -05:00
freemo 1df21e6a64 feat(cli): add output rendering framework with materialization strategies 2026-02-21 10:19:45 -05:00
freemo eae18c7578 feat(skill): add directory and search skills 2026-02-21 10:18:26 -05:00
freemo 582af29a24 feat(skill): add file operation skills 2026-02-21 10:18:26 -05:00
freemo 7aa36759c6 feat(plan): execute strategize and execute via actors 2026-02-21 10:18:26 -05:00
brent.edwards 37018341e3 Merge remote-tracking branch 'origin/master' into develop-aditya
CI / lint (pull_request) Successful in 16s
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 32s
CI / typecheck (pull_request) Successful in 38s
CI / security (pull_request) Successful in 44s
CI / build (pull_request) Successful in 31s
CI / integration_tests (pull_request) Successful in 3m41s
CI / unit_tests (pull_request) Successful in 5m18s
CI / docker (pull_request) Successful in 38s
CI / benchmark-regression (pull_request) Successful in 16m0s
CI / coverage (pull_request) Successful in 27m37s
2026-02-20 23:02:06 +00:00
brent.edwards 7bf8056003 style: fix formatting
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 20s
CI / build (pull_request) Successful in 25s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 32s
CI / security (pull_request) Successful in 1m2s
CI / integration_tests (pull_request) Failing after 2m49s
CI / benchmark-regression (pull_request) Failing after 2m33s
CI / unit_tests (pull_request) Failing after 7m54s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 16m44s
2026-02-20 20:38:53 +00:00
brent.edwards ab8ed19aa7 fix(tests): remove AutomationLevel references after legacy field removal
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 19s
CI / lint (pull_request) Failing after 22s
CI / build (pull_request) Successful in 27s
CI / typecheck (pull_request) Successful in 55s
CI / coverage (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been skipped
CI / security (pull_request) Successful in 1m7s
CI / unit_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
Master's refactor(automation) commit removed the AutomationLevel enum
and automation_level field from Plan. Update all behave steps, robot
helpers, and feature scenarios that referenced the removed type:

- cli_lifecycle_robot_alignment_steps.py: drop import and field assignment
- persistence_robot_alignment_steps.py: drop import and field assignment
- subplan_model_steps.py: drop import, parameter, and field assignment
- subplan_model.feature: replace automation level scenario with profile check
- helper_cli_lifecycle.py: drop import and field assignment
- helper_persistence_lifecycle.py: drop import, field assignment, and assertion
2026-02-20 20:34:29 +00:00
brent.edwards aefcc74d76 fix(test): resolve AmbiguousStep collision after master merge
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 18s
CI / build (pull_request) Successful in 16s
CI / security (pull_request) Successful in 42s
CI / typecheck (pull_request) Successful in 44s
CI / integration_tests (pull_request) Successful in 2m57s
CI / unit_tests (pull_request) Successful in 5m9s
CI / docker (pull_request) Successful in 43s
CI / benchmark-regression (pull_request) Successful in 14m0s
CI / coverage (pull_request) Successful in 14m9s
Renamed 'listing actors with namespace' step in actor_loading_steps.py
to 'listing loaded actors with namespace' to avoid collision with
actor_registry_persistence_steps.py from master. Updated
actor_loading.feature to use renamed step.
2026-02-20 20:24:10 +00:00
brent.edwards 85dc638093 Merge branch 'master' into develop-aditya
# Conflicts:
#	implementation_plan.md
2026-02-20 18:58:05 +00:00
brent.edwards d1b3c25a5e Merge branch 'master' into develop-brent-2
# Conflicts:
#	implementation_plan.md
#	src/cleveragents/cli/main.py
2026-02-20 18:25:28 +00:00
brent.edwards a181b774c9 Merge branch 'feature/m6-perf-scale' into develop-brent-2
# Conflicts:
#	docs/development/testing.md
2026-02-20 16:31:01 +00:00
brent.edwards 5c323470e2 Merge branch 'feature/m6-validation-edge' into develop-brent-2 2026-02-20 16:30:19 +00:00
brent.edwards 4d41459800 Merge branch 'feature/m6-review-playbook' into develop-brent-2 2026-02-20 16:30:15 +00:00
brent.edwards 2cfa9eafbc Merge branch 'feature/m5-subplan-tests' into develop-brent-2 2026-02-20 16:30:11 +00:00
brent.edwards 96b5704c8a Merge branch 'feature/m3-config-cli' into develop-brent-2
# Conflicts:
#	src/cleveragents/cli/main.py
2026-02-20 16:29:54 +00:00
brent.edwards 881750ad54 Merge branch 'feature/m3-session-cli' into develop-brent-2 2026-02-20 16:29:16 +00:00
brent.edwards 06c01a1d7b Merge branch 'feature/m1-persistence-tests-robot' into develop-brent-2 2026-02-20 16:29:11 +00:00
freemo 174e117d8e refactor(automation): remove automation_level legacy fields 2026-02-20 15:57:21 +00:00
freemo 81162bfe91 feat(skill): add inline tool executor 2026-02-20 08:50:08 -05:00
freemo c0eb9d1efd feat(skill): add skill context and registry 2026-02-20 08:50:08 -05:00
freemo b18bace06b feat(skill): add skill protocol and metadata 2026-02-20 08:50:08 -05:00
freemo 3bd02a7c6e feat(cli): add automation-profile commands
Add CLI command group `agents automation-profile` with add, remove,
list, and show subcommands for managing automation profiles that
control plan execution autonomy.

Changes:
- New `automation_profile.py` CLI module with YAML config input,
  schema_version guard, namespaced name validation, --update support,
  and all output formats (json/yaml/plain/table/rich)
- Register automation-profile in main CLI app
- Add deprecation warnings for --automation-level on plan use and
  set-automation-level commands
- Update CLI reference docs with command examples, built-in profiles
  list, and deprecation notes
- 26 Behave scenarios covering all commands and error paths
- 9 Robot Framework integration smoke tests
- ASV benchmarks for CLI parsing performance
- Mark A6.cli items complete in implementation_plan.md
2026-02-20 08:50:06 -05:00
freemo 46381750ab feat(cli): add tool and validation commands 2026-02-20 08:49:30 -05:00
freemo ad91b4e89d feat(cli): add resource tree and inspect commands
Add tree, inspect, link-child, and unlink-child subcommands to the
agents resource CLI group. Extend ResourceRegistryService with
link_child, unlink_child, get_children, and get_resource_tree methods.

- tree: display resource hierarchy with --depth, --type, and format options
- inspect: show resource details with --tree and --file options
- link-child/unlink-child: manage DAG edges with cycle detection
- 24 Behave scenarios, 4 Robot integration tests, ASV benchmarks
- CLI reference documentation in docs/reference/resource_cli.md
2026-02-20 08:48:33 -05:00
freemo 0ad18d4306 feat(actor): align actor registry persistence 2026-02-20 08:48:33 -05:00
brent.edwards 0dfdc02564 test(perf): add scale test fixtures 2026-02-20 03:31:43 +00:00
brent.edwards 558bcaf586 test(validation): add edge case suites 2026-02-20 02:54:08 +00:00
brent.edwards 04c8a886db feat(cli): add session commands 2026-02-20 01:10:19 +00:00
brent.edwards f182148d82 test(persistence): add Robot persistence coverage 2026-02-20 00:28:15 +00:00
brent.edwards 69a86858a7 feat(cli): add config get/set/list commands 2026-02-19 23:48:40 +00:00
brent.edwards 4f90d7703b test(cli): add Robot lifecycle CLI coverage 2026-02-19 22:44:34 +00:00
brent.edwards 2ba753c799 test(domain): add subplan model suites 2026-02-19 22:07:56 +00:00
brent.edwards 83dcfe35dc docs(qa): add review playbook and priority matrix 2026-02-19 22:00:53 +00:00
khyari hamza eeb0d49377 test(security): add coverage for audit CLI, logging, and redaction edge cases
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 29s
CI / security (pull_request) Successful in 38s
CI / integration_tests (pull_request) Successful in 2m22s
CI / unit_tests (pull_request) Successful in 4m0s
CI / docker (pull_request) Successful in 37s
CI / benchmark-regression (pull_request) Successful in 10m6s
CI / coverage (pull_request) Successful in 11m21s
Add 22 new Behave scenarios covering:
- audit CLI commands (list, show, prune, count)
- audit service context manager and owned-session paths
- corrupt JSON details fallback in _row_to_entry
- configure_structlog dev/prod/invalid and get_logger
- redaction edge cases (empty key, empty URL, empty pattern,
  show_secrets bypass, nested dict processor)
2026-02-19 20:10:56 +00:00
khyari hamza 201be39632 fix(security): address review findings for audit logging
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 19s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 22s
CI / security (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 52s
CI / integration_tests (pull_request) Successful in 2m19s
CI / unit_tests (pull_request) Successful in 6m55s
CI / docker (pull_request) Successful in 37s
CI / benchmark-regression (pull_request) Successful in 11m13s
CI / coverage (pull_request) Failing after 13m40s
2026-02-19 19:23:30 +00:00
khyari hamza ae41167a1d feat(security): add audit logging for apply 2026-02-19 19:23:30 +00:00
khyari hamza cea3bad758 refactor(ops): address re-review findings for cleanup commands
- Use model_copy(update=...) in test helpers so Pydantic ge=
  validators are enforced during tests, not just env vars (NEW-1)
- Promote _extract_plan_id_from_sandbox to public staticmethod
  and reuse in CLI active-plan detection to eliminate duplicate
  plan-ID parsing logic (NEW-2)
- Cache _get_sandbox_dirs result for service instance lifetime
  and have CLI active-plan detection use the cached listing so
  /tmp is iterated only once per invocation (NEW-3)
2026-02-19 14:20:16 +00:00
khyari hamza bab4560dde feat(ops): add cleanup commands 2026-02-19 13:46:48 +00:00