diff options
Diffstat (limited to 'internal/agentchannel/agentchannel.go')
| -rw-r--r-- | internal/agentchannel/agentchannel.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/internal/agentchannel/agentchannel.go b/internal/agentchannel/agentchannel.go index 83c5f8d..202283e 100644 --- a/internal/agentchannel/agentchannel.go +++ b/internal/agentchannel/agentchannel.go @@ -19,6 +19,8 @@ import ( "context" "errors" "fmt" + + "github.com/thepeterstone/claudomator/internal/role" ) // ErrAgentBlocked is returned by AgentChannel.AskUser when the transport cannot @@ -80,6 +82,15 @@ type AgentChannel interface { // (via its instructions/model); this just gives it a mechanism to act on // it. ProposeEpic(ctx context.Context, spec EpicProposal) (epicID string, err error) + // ProposeRoleConfig lets a retro-role agent (internal/scheduler. + // StoryOrchestrator's Phase 8 retro stage) propose a new draft + // role_configs version for a role, after reflecting on a completed + // story's history (task tree, escalations, cost, evaluator/arbitration + // feedback). Implementations create a new "draft"-status role_configs + // row and return its version number — they never touch whatever version + // is currently "active" for that role; promoting a draft to active stays + // a human action via the existing POST /api/roles/{role}/activate. + ProposeRoleConfig(ctx context.Context, config role.RoleConfig) (version int, err error) } // BlockedError is returned by Run when the agent asked the user a question and |
