( ctx context.Context, scope toolspkg.Scope, req toolspkg.CallRequest, )
| 2023 | } |
| 2024 | |
| 2025 | func (n *daemonNativeTools) sessionHealth( |
| 2026 | ctx context.Context, |
| 2027 | scope toolspkg.Scope, |
| 2028 | req toolspkg.CallRequest, |
| 2029 | ) (toolspkg.ToolResult, error) { |
| 2030 | var input sessionIDInput |
| 2031 | if err := decodeNativeInput(req, &input); err != nil { |
| 2032 | return toolspkg.ToolResult{}, err |
| 2033 | } |
| 2034 | sessionID, err := requiredNativeString(req.ToolID, "session_id", input.SessionID) |
| 2035 | if err != nil { |
| 2036 | return toolspkg.ToolResult{}, err |
| 2037 | } |
| 2038 | resolved, err := n.nativeResolvedWorkspace(ctx, req.ToolID, input.WorkspaceID, scope) |
| 2039 | if err != nil { |
| 2040 | return toolspkg.ToolResult{}, err |
| 2041 | } |
| 2042 | sessionWorkspaceID, err := nativeResolvedRegistryWorkspaceID(&resolved) |
| 2043 | if err != nil { |
| 2044 | return toolspkg.ToolResult{}, nativeNetworkInputError(req.ToolID, err) |
| 2045 | } |
| 2046 | if _, err := n.nativeSessionInWorkspace(ctx, req.ToolID, sessionWorkspaceID, sessionID); err != nil { |
| 2047 | return toolspkg.ToolResult{}, err |
| 2048 | } |
| 2049 | if n == nil || n.deps == nil || n.deps.SessionHealth == nil { |
| 2050 | return toolspkg.ToolResult{}, errors.New("daemon: session health service is required") |
| 2051 | } |
| 2052 | health, err := n.deps.SessionHealth.GetSessionHealth(ctx, sessionID) |
| 2053 | if err != nil { |
| 2054 | return toolspkg.ToolResult{}, err |
| 2055 | } |
| 2056 | payload, err := contract.SessionHealthPayloadFromDomain(health) |
| 2057 | if err != nil { |
| 2058 | return toolspkg.ToolResult{}, err |
| 2059 | } |
| 2060 | if err := contract.ValidateAuthoredContextRedacted(payload); err != nil { |
| 2061 | return toolspkg.ToolResult{}, err |
| 2062 | } |
| 2063 | return structuredResult(map[string]any{nativeToolsHealthKey: payload}, string(payload.Health)) |
| 2064 | } |
| 2065 | |
| 2066 | func (n *daemonNativeTools) agentHeartbeatStatus( |
| 2067 | ctx context.Context, |
nothing calls this directly
no test coverage detected