Add a pause that holds an agent after its current step
This commit is contained in:
@@ -10,8 +10,8 @@ import (
|
||||
"time"
|
||||
|
||||
"g.fc.run/ai/byre/internal/api"
|
||||
"g.fc.run/ai/byre/internal/claude"
|
||||
"g.fc.run/ai/byre/internal/git"
|
||||
"g.fc.run/ai/byre/internal/hookcmd"
|
||||
"g.fc.run/ai/byre/internal/ids"
|
||||
"g.fc.run/ai/byre/internal/mcp"
|
||||
"g.fc.run/ai/byre/internal/store"
|
||||
@@ -282,15 +282,23 @@ func (m *Manager) dropSnapshots(repo, taskID string) error {
|
||||
return git.DeleteSnapshotRefs(context.Background(), repo, taskID)
|
||||
}
|
||||
|
||||
func (m *Manager) afterTool(l *live) claude.HookFunc {
|
||||
func (m *Manager) afterTool(l *live) hookcmd.Func {
|
||||
return func(ctx context.Context, input json.RawMessage) (map[string]any, error) {
|
||||
in := struct {
|
||||
HookEventName string `json:"hook_event_name"`
|
||||
}{}
|
||||
err := json.Unmarshal(input, &in)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m.holdWhilePaused(ctx, l)
|
||||
mt := m.deliverMidTurn(ctx, l)
|
||||
if mt.text == "" {
|
||||
return map[string]any{}, nil
|
||||
}
|
||||
return map[string]any{
|
||||
"hookSpecificOutput": map[string]any{
|
||||
"hookEventName": "PostToolUse",
|
||||
"hookEventName": in.HookEventName,
|
||||
"additionalContext": mt.text,
|
||||
},
|
||||
}, nil
|
||||
|
||||
Reference in New Issue
Block a user