( ctx context.Context, _ toolspkg.Scope, req toolspkg.CallRequest, )
| 2120 | } |
| 2121 | |
| 2122 | func (n *daemonNativeTools) agentHeartbeatWake( |
| 2123 | ctx context.Context, |
| 2124 | _ toolspkg.Scope, |
| 2125 | req toolspkg.CallRequest, |
| 2126 | ) (toolspkg.ToolResult, error) { |
| 2127 | var input agentHeartbeatWakeInput |
| 2128 | if err := decodeNativeInput(req, &input); err != nil { |
| 2129 | return toolspkg.ToolResult{}, err |
| 2130 | } |
| 2131 | target, err := n.authoredAgentTarget(ctx, req.ToolID, input.WorkspaceID, input.AgentName) |
| 2132 | if err != nil { |
| 2133 | return toolspkg.ToolResult{}, err |
| 2134 | } |
| 2135 | sessionID, err := requiredNativeString(req.ToolID, "session_id", input.SessionID) |
| 2136 | if err != nil { |
| 2137 | return toolspkg.ToolResult{}, err |
| 2138 | } |
| 2139 | if _, err := n.nativeSessionInWorkspace(ctx, req.ToolID, target.workspaceID, sessionID); err != nil { |
| 2140 | return toolspkg.ToolResult{}, err |
| 2141 | } |
| 2142 | source := heartbeat.WakeSource(strings.TrimSpace(input.Source)) |
| 2143 | if source == "" { |
| 2144 | source = heartbeat.WakeSourceManual |
| 2145 | } |
| 2146 | decision, err := n.deps.HeartbeatWake.Wake(ctx, heartbeat.WakeRequest{ |
| 2147 | WorkspaceID: target.workspaceID, |
| 2148 | AgentName: target.agentName, |
| 2149 | SessionID: sessionID, |
| 2150 | Source: source, |
| 2151 | DryRun: input.DryRun, |
| 2152 | }) |
| 2153 | if err != nil { |
| 2154 | return toolspkg.ToolResult{}, err |
| 2155 | } |
| 2156 | payload, err := contract.HeartbeatWakeDecisionPayloadFromDomain(decision) |
| 2157 | if err != nil { |
| 2158 | return toolspkg.ToolResult{}, err |
| 2159 | } |
| 2160 | response := contract.HeartbeatWakeResponse{Decision: payload} |
| 2161 | if err := contract.ValidateAuthoredContextRedacted(response); err != nil { |
| 2162 | return toolspkg.ToolResult{}, err |
| 2163 | } |
| 2164 | return structuredResult(map[string]any{"wake": response}, string(payload.Result)) |
| 2165 | } |
| 2166 | |
| 2167 | func (n *daemonNativeTools) sessionEvents( |
| 2168 | ctx context.Context, |
nothing calls this directly
no test coverage detected