Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/adapter_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ body:
id: host
attributes:
label: Agent host/runtime
placeholder: Codex, Claude Code, OpenCode, Cursor, VS Code, etc.
placeholder: Codex, Claude Code
validations:
required: true
- type: textarea
Expand Down
7 changes: 7 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,13 @@ TFY is a Rust-first token-saving middleware for AI-agent I/O boundaries. It shou
4. **Truthful adapter claims** — MCP support means host-routed MCP tool/resource integration. Do not claim private Codex hook interception, provider prompt mutation, or universal shell interception unless implemented and tested.
5. **Preview-only output validation** — do not claim workspace apply authority until explicit authority/provenance gates and tests exist.

## Product routing rules

- Bare project-local `tfy start --agent` is the simple product path: it must prepare the generic TFY agent wrapper plus Codex and Claude Code official project hook routes by default; public product wording should name supported hosts only.
- Do not regress bare `tfy start --agent` back to wrapper-only behavior unless the product direction is explicitly changed with tests and docs.
- Do not implement that default by aliasing it to `--host all`; this would silently expand scope beyond the Codex/Claude supported named-host path.
- Setup/configuration remains `configured_unverified` and `active=false` until real route-bound raw/ledger/no-negative/positive-savings evidence exists. Never treat host config creation as launch support.

## Code ownership map

- `crates/tfy-core/` — reusable token-saving primitives, raw store, redaction, context/code compression, command feedback.
Expand Down
59 changes: 31 additions & 28 deletions README.md

Large diffs are not rendered by default.

33 changes: 0 additions & 33 deletions crates/tfy-cli/src/adapter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,46 +92,13 @@ pub(crate) fn execute_adapter(cmd: AdapterCmd) -> Result<()> {
"automatic_interception": "mcp_host_routing_required_not_private_hook",
"claim_gate": "real_host_invocation_plus_ledger_raw_no_negative_savings_evidence"
},
{
"target": "cursor",
"status": "config_snippet_available",
"automatic_interception": "mcp_host_routing_required_not_private_hook",
"claim_gate": "real_host_invocation_plus_ledger_raw_no_negative_savings_evidence"
},
{
"target": "opencode",
"status": "config_snippet_available",
"automatic_interception": "mcp_host_routing_required_not_private_hook",
"claim_gate": "real_host_invocation_plus_ledger_raw_no_negative_savings_evidence"
},
{
"target": "hermes",
"status": "config_snippet_available",
"automatic_interception": "mcp_host_routing_required_not_private_hook",
"claim_gate": "real_host_invocation_plus_ledger_raw_no_negative_savings_evidence"
},
{
"target": "openclaw",
"status": "planned_discovery",
"automatic_interception": "not_claimed_without_official_route_evidence"
},
{
"target": "mcp",
"status": "supported",
"automatic_interception": "mcp_host_routing_required_not_private_hook",
"gateways": ["tool", "context", "output", "state"],
"transport": "stdio",
"claim_gate": "mcp_server_fixture_tests"
},
{
"target": "editor",
"status": "planned",
"automatic_interception": "not_claimed_without_host_e2e_tests"
},
{
"target": "provider",
"status": "planned_optional_adapter",
"automatic_interception": "not_core_correctness"
}
]
})),
Expand Down
Loading
Loading