Commit Graph

134 Commits

Author SHA1 Message Date
khyari hamza 02c75fb4bb feat(cli): enhance version/info/diagnostics with --format and --check
Add structured data builders and Rich renderers for version, info, and
diagnostics commands. Support --format rich/plain/json/yaml output parity
and --check flag for diagnostics (exits non-zero on errors).

Includes Behave scenarios, Robot smoke tests, ASV benchmarks, and updates
existing tests to match the new Rich panel output format.
2026-02-18 12:18:03 +00:00
freemo 2c8c6283f0 Fix: Minor linting issue 2026-02-18 00:18:12 -05:00
freemo b587c3315f Docs: Resolved docs warnings 2026-02-18 00:09:50 -05:00
freemo 0c7bfb1ae9 Tests: Fixed lint error 2026-02-17 23:34:16 -05:00
freemo b2c3c08415 Tests: Fixed broken tests 2026-02-17 22:59:16 -05:00
freemo 79f91c51b1 Tests: ensuring tests have coverage and work. 2026-02-17 20:55:49 -05:00
freemo a4db605e1c feat(tool): add resource binding resolution 2026-02-17 20:55:46 -05:00
freemo a8558f13ca feat(cli): add project context commands 2026-02-17 20:55:43 -05:00
freemo 08639183e2 feat(resource): add DAG linking and discovery 2026-02-17 20:55:32 -05:00
freemo 3b005ddcd4 feat(service): resolve automation profiles with precedence 2026-02-17 20:18:18 -05:00
freemo 7e7d2e7727 feat(execute): add changeset model and change capture 2026-02-17 20:18:15 -05:00
freemo 5480cd36fd feat(project): add context policy model 2026-02-17 20:07:38 -05:00
freemo 9464ec6285 feat(domain): add automation profile model and built-ins 2026-02-17 20:07:34 -05:00
freemo 02d384d209 fix(lint): narrow docstring tables to 88-char line limit
Fix 25 E501 line-too-long violations in RST/markdown docstring tables
across resource.py, tool.py, models.py, and lifecycle.py. Also fix
invalid test expectation in project_commands_coverage.feature where
project list with no database was expected to abort but now succeeds
with an empty list after the redesign.
2026-02-17 20:07:26 -05:00
brent.edwards b9984cac57 Merge branch 'master' into feature/m3-actor-schema-examples 2026-02-17 12:58:19 -08:00
brent.edwards bc5fa83d06 Merge branch 'master' into feature/m3-actor-schema-examples 2026-02-17 12:41:17 -08:00
CoreRasurae 798db9088e feat(tool): add tool registry persistence 2026-02-17 20:28:20 +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
khyari hamza 4ba714c389 style: shorten docstring markdown tables to satisfy E501 (88 cols) 2026-02-17 14:04:24 +00:00
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
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 ee5f0376d7 Replaced hand written Reference section with one generated from docstrings 2026-02-16 23:40:33 -05:00
Jeffrey Phillips Freeman 1fb91cba28 refactor(plan): remove legacy plan persistence 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
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
Jeffrey Phillips Freeman e273b52769 feat(db): add projects and project links tables 2026-02-16 12:18:51 -05:00
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 039ab87b52 feat(domain): rebaseline plan phases and apply states 2026-02-15 00:12:07 -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
khyari hamza 6eee0a8835 fix(sandbox): fix CI failures in git_worktree and factory integration tests
- git_worktree: verify original_path is the git repo root, not just a
  subdirectory of an unrelated parent repo (fixes false-positive on CI
  where temp dirs are inside the workspace checkout)
- Robot helper: update factory tests to reflect B4 implementations
  (git_worktree and copy_on_write are now supported strategies)

Refs: TASK-006
2026-02-14 04:01:20 +00:00
khyari hamza cc45b5ff2c feat(sandbox): add git_worktree and copy_on_write sandbox strategies
Implement GitWorktreeSandbox (worktree creation, commit+merge, rollback,
cleanup, branch sanitization, git timeouts) and CopyOnWriteSandbox
(directory copy, diff-based commit, rollback, cleanup).

Update SandboxFactory to wire new strategies, remove stale overlay/
versioning constants, add snapshot placeholder, align resource type
mapping to spec types (git-checkout, fs-mount, fs-directory, fs-file).

Add 40 Behave scenarios (19 git_worktree + 21 copy_on_write) with gwt/cow
prefixed steps. Update existing sandbox_factory_coverage feature (21
scenarios) to reflect new factory behavior.

All quality gates pass: ruff, pyright, 2325 scenarios, 97% coverage.

TASK-006 / Stage B4
2026-02-14 04:01:20 +00:00
Jeff 20321f21ee feat(skill): add skill domain model and resolver 2026-02-14 03:54:14 +00:00
Jeff eb1638a84e feat(session): add session domain models and contracts 2026-02-14 03:50:40 +00:00
freemo da8e5f716d feat(db): add resource registry tables 2026-02-13 22:46:03 -05:00