()
| 112 | * @see https://docs.skybridge.tech/api-reference/use-tool-info |
| 113 | */ |
| 114 | export function useToolInfo< |
| 115 | TS extends Partial<ToolSignature> = Record<string, never>, |
| 116 | >() { |
| 117 | const input = useHostContext("toolInput"); |
| 118 | const output = useHostContext("toolOutput"); |
| 119 | const responseMetadata = useHostContext("toolResponseMetadata"); |
| 120 | |
| 121 | const status = deriveStatus(output, responseMetadata); |
| 122 | |
| 123 | type Input = UnknownObject & TS["input"]; |
| 124 | type Output = UnknownObject & TS["output"]; |
| 125 | type Metadata = UnknownObject & TS["responseMetadata"]; |
| 126 | |
| 127 | return { |
| 128 | input: input ?? undefined, |
| 129 | status, |
| 130 | isIdle: false, |
| 131 | isPending: status === "pending", |
| 132 | isSuccess: status === "success", |
| 133 | output, |
| 134 | responseMetadata, |
| 135 | } as ToolState<Input, Output, Metadata>; |
| 136 | } |
no test coverage detected