34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
# Channel contract
|
|
|
|
A channel translates an external invocation into profile-driven gateway input;
|
|
it does not select a rein class or execute a provider itself.
|
|
|
|
```python
|
|
@dataclass
|
|
class GatewayInvocation:
|
|
harness_profile: str
|
|
repo: str
|
|
title: str
|
|
description: str
|
|
actor: str = "agt"
|
|
project: str = "glas-harness"
|
|
report_to_hub: bool = True
|
|
```
|
|
|
|
`CLIChannel` is the current implementation. The CLI requires
|
|
`--harness-profile <id[@version]>`; the old sandbox-only input is removed
|
|
because it could not identify the rein, model route, tool policy, or contract
|
|
revision. Channels may obtain a profile choice from their own approved
|
|
configuration, but must pass it explicitly and must surface resolution refusal
|
|
to their caller.
|
|
|
|
The channel renders the full direct `GatewayResult`. State Hub receives only
|
|
the compact `ExecutionEvidence` subset.
|
|
|
|
## Adding a channel
|
|
|
|
Implement `parse_invocation` and `render_result`, then call `run_execution`
|
|
with an `ExecutionRequest`. Carry any assignment/role/duty/goal/resource
|
|
references supplied by the upstream workforce system. Do not duplicate profile
|
|
resolution, sandbox coordination, leadership decisions, or rein construction in
|
|
the channel.
|