| 139 | } |
| 140 | |
| 141 | function createMockTask(options: MockTaskOptions = {}) { |
| 142 | const { supportsImages = false, rooIgnoreAllowed = true, maxImageFileSize = 5, maxTotalImageSize = 20 } = options |
| 143 | |
| 144 | return { |
| 145 | cwd: "/test/workspace", |
| 146 | api: { |
| 147 | getModel: vi.fn().mockReturnValue({ |
| 148 | info: { supportsImages }, |
| 149 | }), |
| 150 | }, |
| 151 | consecutiveMistakeCount: 0, |
| 152 | didToolFailInCurrentTurn: false, |
| 153 | didRejectTool: false, |
| 154 | ask: vi.fn().mockResolvedValue({ response: "yesButtonClicked", text: undefined, images: undefined }), |
| 155 | say: vi.fn().mockResolvedValue(undefined), |
| 156 | sayAndCreateMissingParamError: vi.fn().mockResolvedValue("Missing required parameter: path"), |
| 157 | recordToolError: vi.fn(), |
| 158 | rooIgnoreController: { |
| 159 | validateAccess: vi.fn().mockReturnValue(rooIgnoreAllowed), |
| 160 | }, |
| 161 | fileContextTracker: { |
| 162 | trackFileContext: vi.fn().mockResolvedValue(undefined), |
| 163 | }, |
| 164 | providerRef: { |
| 165 | deref: vi.fn().mockReturnValue({ |
| 166 | getState: vi.fn().mockResolvedValue({ |
| 167 | maxImageFileSize, |
| 168 | maxTotalImageSize, |
| 169 | }), |
| 170 | }), |
| 171 | }, |
| 172 | } |
| 173 | } |
| 174 | |
| 175 | function createMockCallbacks() { |
| 176 | return { |