Add project tools and strict provider execution
This commit is contained in:
@@ -45,6 +45,7 @@ python -m cmdforge.cli # Alternative CLI invocation
|
||||
- **resolver.py**: Tool resolution. `resolve_tool()` searches: project manifest → local tools → owner/name → registry. Returns `ResolvedTool` with path info
|
||||
- **collection.py**: Collection management (`Collection` dataclass, `resolve_tool_references()`, `classify_tool_reference()`), local collection storage in `~/.cmdforge/collections/`
|
||||
- **providers.py**: Provider abstraction. Supports subprocess CLI tools, OpenAI-compatible HTTP APIs, experimental PTY wrappers, fallback chains, and tool/MCP-server allowlists. Auto-discovers installed providers on first run. Config in `~/.cmdforge/providers.yaml` with versioned migration.
|
||||
- **Provider execution contract**: Providers declare locality, typed capabilities, model identity, context/cost/latency hints, and an approved data classification. `ProviderExecutionPolicy` filters every fallback candidate; `ProviderResult` records runtime-owned provider/model provenance.
|
||||
- **skills.py**: Validated Agent Skills loader for per-provider `SKILL.md` context under `~/.cmdforge/providers/<name>/skills/`
|
||||
- **mcp_client.py / mcp_server.py**: Stdio and Streamable HTTP MCP integration, configuration, schema discovery, transport security, and exposure policy
|
||||
- **profiles.py**: AI persona profiles with system prompts, stored in `~/.cmdforge/profiles/`
|
||||
@@ -115,6 +116,11 @@ Use `cmdforge mcp configure codex` or
|
||||
`cmdforge mcp configure claude-code --scope project` to register the stdio MCP
|
||||
server and install a marked project-policy block. Preview with `--dry-run`.
|
||||
This bootstrap never adds tools to the MCP `server.expose` allowlist.
|
||||
Project-owned tools belong under `./.cmdforge/`, created with
|
||||
`cmdforge create NAME --project` or `forge-tool --name NAME --project`. Do not
|
||||
edit CmdForge core merely to add another project's tools. Sensitive runs should
|
||||
use `--no-fallback` and `--result-envelope json`; provenance must come from the
|
||||
runtime rather than model-generated fields.
|
||||
|
||||
### Step Types
|
||||
|
||||
|
||||
Reference in New Issue
Block a user