Add a pause that holds an agent after its current step

This commit is contained in:
Ian Gulliver
2026-10-22 21:55:42 -07:00
parent 73519bf4dd
commit 293c21ca8c
25 changed files with 1014 additions and 472 deletions
+11 -3
View File
@@ -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