(isHeadless: boolean)
| 170 | } |
| 171 | |
| 172 | export async function getRequestTools(isHeadless: boolean) { |
| 173 | const availableTools = await getAllAvailableTools(isHeadless); |
| 174 | |
| 175 | const permissionsState = |
| 176 | await serviceContainer.get<ToolPermissionServiceState>( |
| 177 | SERVICE_NAMES.TOOL_PERMISSIONS, |
| 178 | ); |
| 179 | |
| 180 | const allowedTools: Tool[] = []; |
| 181 | for (const tool of availableTools) { |
| 182 | const result = checkToolPermission( |
| 183 | { name: tool.name, arguments: {} }, |
| 184 | permissionsState.permissions, |
| 185 | ); |
| 186 | |
| 187 | if ( |
| 188 | result.permission === "allow" || |
| 189 | (result.permission === "ask" && !isHeadless) |
| 190 | ) { |
| 191 | allowedTools.push(tool); |
| 192 | } |
| 193 | } |
| 194 | |
| 195 | return allowedTools.map(convertToolToChatCompletionTool); |
| 196 | } |
no test coverage detected