| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 1 | httprr trace v1 |
| Josh Bleecher Snyder | 534783d | 2025-07-29 08:17:37 -0700 | [diff] [blame] | 2 | 18226 2450 |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 3 | POST https://api.anthropic.com/v1/messages HTTP/1.1
|
| 4 | Host: api.anthropic.com
|
| 5 | User-Agent: Go-http-client/1.1
|
| Josh Bleecher Snyder | 534783d | 2025-07-29 08:17:37 -0700 | [diff] [blame] | 6 | Content-Length: 18028
|
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 7 | Anthropic-Version: 2023-06-01
|
| 8 | Content-Type: application/json
|
| 9 |
|
| 10 | { |
| Josh Bleecher Snyder | ab6a811 | 2025-05-24 12:22:00 -0700 | [diff] [blame] | 11 | "model": "claude-sonnet-4-20250514", |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 12 | "messages": [ |
| 13 | { |
| 14 | "role": "user", |
| 15 | "content": [ |
| 16 | { |
| 17 | "type": "text", |
| Josh Bleecher Snyder | 3b44cc3 | 2025-07-22 02:28:14 +0000 | [diff] [blame] | 18 | "text": "What tools are available to you? Please just list them briefly.", |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 19 | "cache_control": { |
| 20 | "type": "ephemeral" |
| 21 | } |
| 22 | } |
| 23 | ] |
| 24 | } |
| 25 | ], |
| 26 | "max_tokens": 8192, |
| 27 | "tools": [ |
| 28 | { |
| 29 | "name": "bash", |
| Josh Bleecher Snyder | 6fe809c | 2025-07-24 16:22:51 -0700 | [diff] [blame] | 30 | "description": "Executes shell commands via bash -c, returning combined stdout/stderr.\nBash state changes (working dir, variables, aliases) don't persist between calls.\n\nWith background=true, returns immediately, with output redirected to a file.\nUse background for servers/demos that need to stay running.\n\nMUST set slow_ok=true for potentially slow commands: builds, downloads,\ninstalls, tests, or any other substantive operation.\n\n\u003cpwd\u003e/\u003c/pwd\u003e", |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 31 | "input_schema": { |
| 32 | "type": "object", |
| 33 | "required": [ |
| 34 | "command" |
| 35 | ], |
| 36 | "properties": { |
| 37 | "command": { |
| 38 | "type": "string", |
| Josh Bleecher Snyder | 17b2fd9 | 2025-07-09 22:47:13 +0000 | [diff] [blame] | 39 | "description": "Shell to execute" |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 40 | }, |
| Josh Bleecher Snyder | 17b2fd9 | 2025-07-09 22:47:13 +0000 | [diff] [blame] | 41 | "slow_ok": { |
| 42 | "type": "boolean", |
| 43 | "description": "Use extended timeout" |
| Philip Zeyliger | b60f0f2 | 2025-04-23 18:19:32 +0000 | [diff] [blame] | 44 | }, |
| 45 | "background": { |
| 46 | "type": "boolean", |
| Josh Bleecher Snyder | 17b2fd9 | 2025-07-09 22:47:13 +0000 | [diff] [blame] | 47 | "description": "Execute in background" |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 48 | } |
| 49 | } |
| 50 | } |
| 51 | }, |
| 52 | { |
| 53 | "name": "keyword_search", |
| Josh Bleecher Snyder | dce8d84 | 2025-05-09 12:27:19 -0700 | [diff] [blame] | 54 | "description": "\nkeyword_search locates files with a search-and-filter approach.\nUse when navigating unfamiliar codebases with only conceptual understanding or vague user questions.\n\nEffective use:\n- Provide a detailed query for accurate relevance ranking\n- Prefer MANY SPECIFIC terms over FEW GENERAL ones (high precision beats high recall)\n- Order search terms by importance (most important first)\n- Supports regex search terms for flexible matching\n\nIMPORTANT: Do NOT use this tool if you have precise information like log lines, error messages, stack traces, filenames, or symbols. Use direct approaches (rg, cat, etc.) instead.\n", |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 55 | "input_schema": { |
| 56 | "type": "object", |
| 57 | "required": [ |
| 58 | "query", |
| Josh Bleecher Snyder | 250348e | 2025-04-30 10:31:28 -0700 | [diff] [blame] | 59 | "search_terms" |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 60 | ], |
| 61 | "properties": { |
| 62 | "query": { |
| 63 | "type": "string", |
| 64 | "description": "A detailed statement of what you're trying to find or learn." |
| 65 | }, |
| Josh Bleecher Snyder | 250348e | 2025-04-30 10:31:28 -0700 | [diff] [blame] | 66 | "search_terms": { |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 67 | "type": "array", |
| 68 | "items": { |
| 69 | "type": "string" |
| 70 | }, |
| Josh Bleecher Snyder | 250348e | 2025-04-30 10:31:28 -0700 | [diff] [blame] | 71 | "description": "List of search terms in descending order of importance." |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 72 | } |
| 73 | } |
| 74 | } |
| 75 | }, |
| 76 | { |
| Josh Bleecher Snyder | b421a24 | 2025-05-29 23:22:55 +0000 | [diff] [blame] | 77 | "name": "patch", |
| Josh Bleecher Snyder | 534783d | 2025-07-29 08:17:37 -0700 | [diff] [blame] | 78 | "description": "File modification tool for precise text edits.\n\nOperations:\n- replace: Substitute unique text with new content\n- append_eof: Append new text at the end of the file\n- prepend_bof: Insert new text at the beginning of the file\n- overwrite: Replace the entire file with new content (automatically creates the file)\n\nUsage notes:\n- All inputs are interpreted literally (no automatic newline or whitespace handling)\n- For replace operations, oldText must appear EXACTLY ONCE in the file", |
| Josh Bleecher Snyder | b421a24 | 2025-05-29 23:22:55 +0000 | [diff] [blame] | 79 | "input_schema": { |
| 80 | "type": "object", |
| 81 | "required": [ |
| 82 | "path", |
| 83 | "patches" |
| 84 | ], |
| 85 | "properties": { |
| 86 | "path": { |
| 87 | "type": "string", |
| Josh Bleecher Snyder | 136b66d | 2025-07-30 11:48:58 -0700 | [diff] [blame] | 88 | "description": "Path to the file to patch" |
| Josh Bleecher Snyder | b421a24 | 2025-05-29 23:22:55 +0000 | [diff] [blame] | 89 | }, |
| 90 | "patches": { |
| 91 | "type": "array", |
| 92 | "description": "List of patch requests to apply", |
| 93 | "items": { |
| 94 | "type": "object", |
| 95 | "required": [ |
| 96 | "operation", |
| 97 | "newText" |
| 98 | ], |
| 99 | "properties": { |
| 100 | "operation": { |
| 101 | "type": "string", |
| 102 | "enum": [ |
| 103 | "replace", |
| 104 | "append_eof", |
| 105 | "prepend_bof", |
| 106 | "overwrite" |
| 107 | ], |
| 108 | "description": "Type of operation to perform" |
| 109 | }, |
| 110 | "oldText": { |
| 111 | "type": "string", |
| 112 | "description": "Text to locate for the operation (must be unique in file, required for replace)" |
| 113 | }, |
| 114 | "newText": { |
| 115 | "type": "string", |
| 116 | "description": "The new text to use (empty for deletions)" |
| 117 | } |
| 118 | } |
| 119 | } |
| 120 | } |
| 121 | } |
| 122 | } |
| 123 | }, |
| 124 | { |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 125 | "name": "think", |
| 126 | "description": "Think out loud, take notes, form plans. Has no external effects.", |
| 127 | "input_schema": { |
| 128 | "type": "object", |
| 129 | "required": [ |
| 130 | "thoughts" |
| 131 | ], |
| 132 | "properties": { |
| 133 | "thoughts": { |
| 134 | "type": "string", |
| 135 | "description": "The thoughts, notes, or plans to record" |
| 136 | } |
| 137 | } |
| 138 | } |
| 139 | }, |
| 140 | { |
| Josh Bleecher Snyder | 112b923 | 2025-05-23 11:26:33 -0700 | [diff] [blame] | 141 | "name": "todo_read", |
| 142 | "description": "Reads the current todo list. Use frequently to track progress and understand what's pending.", |
| 143 | "input_schema": { |
| 144 | "type": "object", |
| 145 | "properties": {} |
| 146 | } |
| 147 | }, |
| 148 | { |
| 149 | "name": "todo_write", |
| 150 | "description": "todo_write: Creates and manages a structured task list for tracking work and communicating progress to users. Use early and often.\n\nUse for:\n- multi-step tasks\n- complex work\n- when users provide multiple requests\n- conversations that start trivial but grow in scope\n- when users request additional work (directly or via feedback)\n\nSkip for:\n- trivial single-step tasks\n- purely conversational exchanges\n\nUpdate dynamically as work evolves - conversations can spawn tasks, simple tasks can become complex, and new discoveries may require additional work.\n\nRules:\n- Update immediately when task states or task list changes\n- Only one task \"in-progress\" at any time\n- Each update completely replaces the task list - include all tasks (past and present)\n- Never modify or delete completed tasks\n- Queued and in-progress tasks may be restructured as understanding evolves\n- Tasks should be atomic, clear, precise, and actionable\n- If the user adds new tasks: append, don't replace\n", |
| 151 | "input_schema": { |
| 152 | "type": "object", |
| 153 | "required": [ |
| 154 | "tasks" |
| 155 | ], |
| 156 | "properties": { |
| 157 | "tasks": { |
| 158 | "type": "array", |
| 159 | "description": "Array of tasks to write", |
| 160 | "items": { |
| 161 | "type": "object", |
| 162 | "required": [ |
| 163 | "id", |
| 164 | "task", |
| 165 | "status" |
| 166 | ], |
| 167 | "properties": { |
| 168 | "id": { |
| 169 | "type": "string", |
| 170 | "description": "stable, unique hyphenated slug" |
| 171 | }, |
| 172 | "task": { |
| 173 | "type": "string", |
| 174 | "description": "actionable step in active tense, sentence case, plain text only, displayed to user" |
| 175 | }, |
| 176 | "status": { |
| 177 | "type": "string", |
| 178 | "enum": [ |
| 179 | "queued", |
| 180 | "in-progress", |
| 181 | "completed" |
| 182 | ], |
| 183 | "description": "current task status" |
| 184 | } |
| 185 | } |
| 186 | } |
| 187 | } |
| 188 | } |
| 189 | } |
| 190 | }, |
| 191 | { |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 192 | "name": "done", |
| 193 | "description": "Use this tool when you have achieved the user's goal. The parameters form a checklist which you should evaluate.", |
| 194 | "input_schema": { |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 195 | "type": "object", |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 196 | "properties": { |
| Josh Bleecher Snyder | 9c74cb9 | 2025-07-24 12:52:04 -0700 | [diff] [blame] | 197 | "checked_guidance": { |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 198 | "type": "object", |
| 199 | "required": [ |
| 200 | "status" |
| 201 | ], |
| 202 | "properties": { |
| 203 | "status": { |
| 204 | "type": "string", |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 205 | "enum": [ |
| 206 | "yes", |
| 207 | "no", |
| Josh Bleecher Snyder | 9c74cb9 | 2025-07-24 12:52:04 -0700 | [diff] [blame] | 208 | "n/a" |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 209 | ] |
| 210 | }, |
| Josh Bleecher Snyder | 9c74cb9 | 2025-07-24 12:52:04 -0700 | [diff] [blame] | 211 | "comments": { |
| 212 | "type": "string" |
| 213 | } |
| 214 | }, |
| 215 | "description": "Checked for and followed any directory-specific guidance files for all modified files." |
| 216 | }, |
| 217 | "tested": { |
| 218 | "type": "object", |
| 219 | "required": [ |
| 220 | "status" |
| 221 | ], |
| 222 | "properties": { |
| 223 | "status": { |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 224 | "type": "string", |
| Josh Bleecher Snyder | 9c74cb9 | 2025-07-24 12:52:04 -0700 | [diff] [blame] | 225 | "enum": [ |
| 226 | "yes", |
| 227 | "no", |
| 228 | "n/a" |
| 229 | ] |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 230 | }, |
| 231 | "comments": { |
| Josh Bleecher Snyder | 9c74cb9 | 2025-07-24 12:52:04 -0700 | [diff] [blame] | 232 | "type": "string" |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 233 | } |
| Josh Bleecher Snyder | 9c74cb9 | 2025-07-24 12:52:04 -0700 | [diff] [blame] | 234 | }, |
| 235 | "description": "If code was changed, tests were written or updated, and all tests pass." |
| 236 | }, |
| 237 | "code_reviewed": { |
| 238 | "type": "object", |
| 239 | "required": [ |
| 240 | "status" |
| 241 | ], |
| 242 | "properties": { |
| 243 | "status": { |
| 244 | "type": "string", |
| 245 | "enum": [ |
| 246 | "yes", |
| 247 | "no", |
| 248 | "n/a" |
| 249 | ] |
| 250 | }, |
| 251 | "comments": { |
| 252 | "type": "string" |
| 253 | } |
| 254 | }, |
| 255 | "description": "If any commits were made, the codereview tool was run and its output addressed." |
| 256 | }, |
| 257 | "git_commit": { |
| 258 | "type": "object", |
| 259 | "required": [ |
| 260 | "status" |
| 261 | ], |
| 262 | "properties": { |
| 263 | "status": { |
| 264 | "type": "string", |
| 265 | "enum": [ |
| 266 | "yes", |
| 267 | "no", |
| 268 | "n/a" |
| 269 | ] |
| 270 | }, |
| 271 | "comments": { |
| 272 | "type": "string" |
| 273 | } |
| 274 | }, |
| 275 | "description": "All code changes were committed. A git hook adds Co-Authored-By and Change-ID trailers. The git user is already configured correctly." |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 276 | } |
| 277 | } |
| 278 | } |
| 279 | }, |
| 280 | { |
| 281 | "name": "codereview", |
| Josh Bleecher Snyder | 272c4a9 | 2025-06-04 16:08:42 -0700 | [diff] [blame] | 282 | "description": "Run an automated code review before presenting git commits to the user. Call if/when you've completed your current work and are ready for user feedback.", |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 283 | "input_schema": { |
| Josh Bleecher Snyder | 2b2090e | 2025-04-29 16:41:34 -0700 | [diff] [blame] | 284 | "type": "object", |
| philip.zeyliger | 57162e0 | 2025-06-18 09:59:48 -0700 | [diff] [blame] | 285 | "properties": { |
| 286 | "timeout": { |
| 287 | "type": "string", |
| 288 | "description": "Timeout as a Go duration string (default: 1m)", |
| 289 | "default": "1m" |
| 290 | } |
| 291 | } |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 292 | } |
| 293 | }, |
| 294 | { |
| Josh Bleecher Snyder | a4092d2 | 2025-05-14 18:32:53 -0700 | [diff] [blame] | 295 | "name": "about_sketch", |
| 296 | "description": "Provides information about Sketch.\n\nWhen to use this tool:\n\n- The user is asking how to USE Sketch itself (not asking Sketch to perform a task)\n- The user has questions about Sketch functionality, setup, or capabilities\n- The user needs help with Sketch-specific concepts like running commands, secrets management, git integration\n- The query is about \"How do I do X in Sketch?\" or \"Is it possible to Y in Sketch?\" or just \"Help\"\n- The user is confused about how a Sketch feature works or how to access it\n- You need to know how to interact with the host environment, e.g. port forwarding or pulling changes the user has made outside of Sketch\n", |
| 297 | "input_schema": { |
| 298 | "type": "object", |
| 299 | "properties": {} |
| 300 | } |
| 301 | }, |
| 302 | { |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 303 | "name": "browser_navigate", |
| 304 | "description": "Navigate the browser to a specific URL and wait for page to load", |
| 305 | "input_schema": { |
| 306 | "type": "object", |
| 307 | "properties": { |
| 308 | "url": { |
| 309 | "type": "string", |
| 310 | "description": "The URL to navigate to" |
| Philip Zeyliger | 80b488d | 2025-05-10 18:21:54 -0700 | [diff] [blame] | 311 | }, |
| 312 | "timeout": { |
| 313 | "type": "string", |
| 314 | "description": "Timeout as a Go duration string (default: 5s)" |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 315 | } |
| 316 | }, |
| 317 | "required": [ |
| 318 | "url" |
| 319 | ] |
| 320 | } |
| 321 | }, |
| 322 | { |
| 323 | "name": "browser_click", |
| 324 | "description": "Click the first element matching a CSS selector", |
| 325 | "input_schema": { |
| 326 | "type": "object", |
| 327 | "properties": { |
| 328 | "selector": { |
| 329 | "type": "string", |
| 330 | "description": "CSS selector for the element to click" |
| 331 | }, |
| 332 | "wait_visible": { |
| 333 | "type": "boolean", |
| 334 | "description": "Wait for the element to be visible before clicking" |
| Philip Zeyliger | 80b488d | 2025-05-10 18:21:54 -0700 | [diff] [blame] | 335 | }, |
| 336 | "timeout": { |
| 337 | "type": "string", |
| 338 | "description": "Timeout as a Go duration string (default: 5s)" |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 339 | } |
| 340 | }, |
| 341 | "required": [ |
| 342 | "selector" |
| 343 | ] |
| 344 | } |
| 345 | }, |
| 346 | { |
| 347 | "name": "browser_type", |
| 348 | "description": "Type text into an input or textarea element", |
| 349 | "input_schema": { |
| 350 | "type": "object", |
| 351 | "properties": { |
| 352 | "selector": { |
| 353 | "type": "string", |
| 354 | "description": "CSS selector for the input element" |
| 355 | }, |
| 356 | "text": { |
| 357 | "type": "string", |
| 358 | "description": "Text to type into the element" |
| 359 | }, |
| 360 | "clear": { |
| 361 | "type": "boolean", |
| 362 | "description": "Clear the input field before typing" |
| Philip Zeyliger | 80b488d | 2025-05-10 18:21:54 -0700 | [diff] [blame] | 363 | }, |
| 364 | "timeout": { |
| 365 | "type": "string", |
| 366 | "description": "Timeout as a Go duration string (default: 5s)" |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 367 | } |
| 368 | }, |
| 369 | "required": [ |
| 370 | "selector", |
| 371 | "text" |
| 372 | ] |
| 373 | } |
| 374 | }, |
| 375 | { |
| 376 | "name": "browser_wait_for", |
| 377 | "description": "Wait for an element to be present in the DOM", |
| 378 | "input_schema": { |
| 379 | "type": "object", |
| 380 | "properties": { |
| 381 | "selector": { |
| 382 | "type": "string", |
| 383 | "description": "CSS selector for the element to wait for" |
| 384 | }, |
| Philip Zeyliger | 80b488d | 2025-05-10 18:21:54 -0700 | [diff] [blame] | 385 | "timeout": { |
| 386 | "type": "string", |
| 387 | "description": "Timeout as a Go duration string (default: 5s)" |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 388 | } |
| 389 | }, |
| 390 | "required": [ |
| 391 | "selector" |
| 392 | ] |
| 393 | } |
| 394 | }, |
| 395 | { |
| 396 | "name": "browser_get_text", |
| Josh Bleecher Snyder | cb55726 | 2025-06-30 23:55:20 +0000 | [diff] [blame] | 397 | "description": "Get the innerText of an element, returned in innerText tag. Can be used to read the web page.", |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 398 | "input_schema": { |
| 399 | "type": "object", |
| 400 | "properties": { |
| 401 | "selector": { |
| 402 | "type": "string", |
| 403 | "description": "CSS selector for the element to get text from" |
| Philip Zeyliger | 80b488d | 2025-05-10 18:21:54 -0700 | [diff] [blame] | 404 | }, |
| 405 | "timeout": { |
| 406 | "type": "string", |
| 407 | "description": "Timeout as a Go duration string (default: 5s)" |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 408 | } |
| 409 | }, |
| 410 | "required": [ |
| 411 | "selector" |
| 412 | ] |
| 413 | } |
| 414 | }, |
| 415 | { |
| 416 | "name": "browser_eval", |
| 417 | "description": "Evaluate JavaScript in the browser context", |
| 418 | "input_schema": { |
| 419 | "type": "object", |
| 420 | "properties": { |
| 421 | "expression": { |
| 422 | "type": "string", |
| 423 | "description": "JavaScript expression to evaluate" |
| Philip Zeyliger | 80b488d | 2025-05-10 18:21:54 -0700 | [diff] [blame] | 424 | }, |
| 425 | "timeout": { |
| 426 | "type": "string", |
| 427 | "description": "Timeout as a Go duration string (default: 5s)" |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 428 | } |
| 429 | }, |
| 430 | "required": [ |
| 431 | "expression" |
| 432 | ] |
| 433 | } |
| 434 | }, |
| 435 | { |
| Philip Zeyliger | 72252cb | 2025-05-10 17:00:08 -0700 | [diff] [blame] | 436 | "name": "browser_scroll_into_view", |
| 437 | "description": "Scroll an element into view if it's not visible", |
| 438 | "input_schema": { |
| 439 | "type": "object", |
| 440 | "properties": { |
| 441 | "selector": { |
| 442 | "type": "string", |
| 443 | "description": "CSS selector for the element to scroll into view" |
| Philip Zeyliger | 80b488d | 2025-05-10 18:21:54 -0700 | [diff] [blame] | 444 | }, |
| 445 | "timeout": { |
| 446 | "type": "string", |
| 447 | "description": "Timeout as a Go duration string (default: 5s)" |
| Philip Zeyliger | 72252cb | 2025-05-10 17:00:08 -0700 | [diff] [blame] | 448 | } |
| 449 | }, |
| 450 | "required": [ |
| 451 | "selector" |
| 452 | ] |
| 453 | } |
| 454 | }, |
| 455 | { |
| Philip Zeyliger | 0522484 | 2025-05-10 18:26:08 -0700 | [diff] [blame] | 456 | "name": "browser_resize", |
| 457 | "description": "Resize the browser window to a specific width and height", |
| 458 | "input_schema": { |
| 459 | "type": "object", |
| 460 | "properties": { |
| 461 | "width": { |
| 462 | "type": "integer", |
| 463 | "description": "Window width in pixels" |
| 464 | }, |
| 465 | "height": { |
| 466 | "type": "integer", |
| 467 | "description": "Window height in pixels" |
| 468 | }, |
| 469 | "timeout": { |
| 470 | "type": "string", |
| 471 | "description": "Timeout as a Go duration string (default: 5s)" |
| 472 | } |
| 473 | }, |
| 474 | "required": [ |
| 475 | "width", |
| 476 | "height" |
| 477 | ] |
| 478 | } |
| 479 | }, |
| 480 | { |
| Philip Zeyliger | 18e3368 | 2025-05-13 16:34:21 -0700 | [diff] [blame] | 481 | "name": "browser_recent_console_logs", |
| 482 | "description": "Get recent browser console logs", |
| 483 | "input_schema": { |
| 484 | "type": "object", |
| 485 | "properties": { |
| 486 | "limit": { |
| 487 | "type": "integer", |
| 488 | "description": "Maximum number of log entries to return (default: 100)" |
| 489 | } |
| 490 | } |
| 491 | } |
| 492 | }, |
| 493 | { |
| 494 | "name": "browser_clear_console_logs", |
| 495 | "description": "Clear all captured browser console logs", |
| 496 | "input_schema": { |
| 497 | "type": "object", |
| 498 | "properties": {} |
| 499 | } |
| 500 | }, |
| 501 | { |
| Philip Zeyliger | 80b488d | 2025-05-10 18:21:54 -0700 | [diff] [blame] | 502 | "name": "browser_take_screenshot", |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 503 | "description": "Take a screenshot of the page or a specific element", |
| 504 | "input_schema": { |
| 505 | "type": "object", |
| 506 | "properties": { |
| 507 | "selector": { |
| 508 | "type": "string", |
| 509 | "description": "CSS selector for the element to screenshot (optional)" |
| 510 | }, |
| 511 | "format": { |
| 512 | "type": "string", |
| 513 | "description": "Output format ('base64' or 'png'), defaults to 'base64'", |
| 514 | "enum": [ |
| 515 | "base64", |
| 516 | "png" |
| 517 | ] |
| Philip Zeyliger | 80b488d | 2025-05-10 18:21:54 -0700 | [diff] [blame] | 518 | }, |
| 519 | "timeout": { |
| 520 | "type": "string", |
| 521 | "description": "Timeout as a Go duration string (default: 5s)" |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 522 | } |
| 523 | } |
| 524 | } |
| 525 | }, |
| 526 | { |
| Philip Zeyliger | 542bda3 | 2025-06-11 18:31:03 -0700 | [diff] [blame] | 527 | "name": "read_image", |
| Philip Zeyliger | 72252cb | 2025-05-10 17:00:08 -0700 | [diff] [blame] | 528 | "description": "Read an image file (such as a screenshot) and encode it for sending to the LLM", |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 529 | "input_schema": { |
| 530 | "type": "object", |
| 531 | "properties": { |
| Philip Zeyliger | 72252cb | 2025-05-10 17:00:08 -0700 | [diff] [blame] | 532 | "path": { |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 533 | "type": "string", |
| Philip Zeyliger | 72252cb | 2025-05-10 17:00:08 -0700 | [diff] [blame] | 534 | "description": "Path to the image file to read" |
| Philip Zeyliger | 80b488d | 2025-05-10 18:21:54 -0700 | [diff] [blame] | 535 | }, |
| 536 | "timeout": { |
| 537 | "type": "string", |
| 538 | "description": "Timeout as a Go duration string (default: 5s)" |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 539 | } |
| 540 | }, |
| 541 | "required": [ |
| Philip Zeyliger | 72252cb | 2025-05-10 17:00:08 -0700 | [diff] [blame] | 542 | "path" |
| Philip Zeyliger | 33d282f | 2025-05-03 04:01:54 +0000 | [diff] [blame] | 543 | ] |
| 544 | } |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 545 | } |
| 546 | ], |
| 547 | "system": [ |
| 548 | { |
| Josh Bleecher Snyder | 9224eb0 | 2025-07-26 04:45:05 +0000 | [diff] [blame] | 549 | "text": "You are the expert software engineer and architect powering Sketch,\nan agentic coding environment that helps users accomplish coding tasks through autonomous analysis and implementation.\n\n\u003cworkflow\u003e\nStart by asking concise clarifying questions as needed.\nOnce the intent is clear, work autonomously.\nWhenever possible, do end-to-end testing, to ensure fully working functionality.\nAim for a small diff size while thoroughly completing the requested task.\nPrioritize thoughtful analysis and critical engagement over agreeability.\n\nBreak down the overall goal into a series of smaller steps.\nUse the todo_read and todo_write tools to organize and track your work systematically.\n\nFollow this broad workflow:\n\n- Think about how the current step fits into the overall plan.\n- Do research. Good tool choices: bash, think, keyword_search\n- Make edits.\n- If you have completed a standalone chunk of work, make a git commit.\n- Update your todo task list.\n- Repeat.\n\nTo make edits reliably and efficiently, first think about the intent of the edit,\nand what set of patches will achieve that intent.\nThen use the patch tool to make those edits. Combine all edits to any given file into a single patch tool call.\n\nYou may run tool calls in parallel.\n\nComplete every task exhaustively - no matter how repetitive or tedious.\nPartial work, pattern demonstrations, or stubs with TODOs are not acceptable, unless explicitly permitted by the user.\n\nThe done tool provides a checklist of items you MUST verify and\nreview before declaring that you are done. Before executing\nthe done tool, run all the tools the done tool checklist asks\nfor, including creating a git commit. Do not forget to run tests.\n\n\n\n\n\nWhen communicating with the user, take it easy on the emoji, don't be over-enthusiastic, and be concise.\n\nDocker is available. Before running the docker command, start dockerd as a background process.\nAlways use --network=host when running docker containers.\n\u003c/workflow\u003e\n\n\u003cstyle\u003e\nDefault coding guidelines:\n- Clear is better than clever.\n- Minimal inline comments: non-obvious logic and key decisions only.\n- When no commit message style guidance is provided: write a single lowercase line starting with an imperative verb, ≤50 chars, no period\n\u003c/style\u003e\n\n\u003csystem_info\u003e\n\u003cplatform\u003e\nlinux/amd64\n\u003c/platform\u003e\n\u003cpwd\u003e\n/\n\u003c/pwd\u003e\n\u003ccurrent_date\u003e\n2025-07-25\n\u003c/current_date\u003e\n\u003c/system_info\u003e\n\n\u003cgit_info\u003e\n\u003cgit_root\u003e\n\n\u003c/git_root\u003e\n\u003cHEAD\u003e\nHEAD\n\u003c/HEAD\u003e\n\n\u003c/git_info\u003e\n\n", |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 550 | "type": "text", |
| 551 | "cache_control": { |
| 552 | "type": "ephemeral" |
| 553 | } |
| 554 | } |
| 555 | ] |
| 556 | }HTTP/2.0 200 OK
|
| 557 | Anthropic-Organization-Id: 3c473a21-7208-450a-a9f8-80aebda45c1b
|
| Josh Bleecher Snyder | 3b44cc3 | 2025-07-22 02:28:14 +0000 | [diff] [blame] | 558 | Anthropic-Ratelimit-Input-Tokens-Limit: 2000000
|
| 559 | Anthropic-Ratelimit-Input-Tokens-Remaining: 2000000
|
| Josh Bleecher Snyder | 534783d | 2025-07-29 08:17:37 -0700 | [diff] [blame] | 560 | Anthropic-Ratelimit-Input-Tokens-Reset: 2025-07-31T01:39:04Z
|
| Josh Bleecher Snyder | 3b44cc3 | 2025-07-22 02:28:14 +0000 | [diff] [blame] | 561 | Anthropic-Ratelimit-Output-Tokens-Limit: 400000
|
| 562 | Anthropic-Ratelimit-Output-Tokens-Remaining: 400000
|
| Josh Bleecher Snyder | 534783d | 2025-07-29 08:17:37 -0700 | [diff] [blame] | 563 | Anthropic-Ratelimit-Output-Tokens-Reset: 2025-07-31T01:39:09Z
|
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 564 | Anthropic-Ratelimit-Requests-Limit: 4000
|
| 565 | Anthropic-Ratelimit-Requests-Remaining: 3999
|
| Josh Bleecher Snyder | 534783d | 2025-07-29 08:17:37 -0700 | [diff] [blame] | 566 | Anthropic-Ratelimit-Requests-Reset: 2025-07-31T01:39:03Z
|
| Josh Bleecher Snyder | 3b44cc3 | 2025-07-22 02:28:14 +0000 | [diff] [blame] | 567 | Anthropic-Ratelimit-Tokens-Limit: 2400000
|
| 568 | Anthropic-Ratelimit-Tokens-Remaining: 2400000
|
| Josh Bleecher Snyder | 534783d | 2025-07-29 08:17:37 -0700 | [diff] [blame] | 569 | Anthropic-Ratelimit-Tokens-Reset: 2025-07-31T01:39:04Z
|
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 570 | Cf-Cache-Status: DYNAMIC
|
| Josh Bleecher Snyder | 534783d | 2025-07-29 08:17:37 -0700 | [diff] [blame] | 571 | Cf-Ray: 96796139ad9b17f0-SJC
|
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 572 | Content-Type: application/json
|
| Josh Bleecher Snyder | 534783d | 2025-07-29 08:17:37 -0700 | [diff] [blame] | 573 | Date: Thu, 31 Jul 2025 01:39:09 GMT
|
| 574 | Request-Id: req_011CReF3FF82j1DdKxe9UfcT
|
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 575 | Server: cloudflare
|
| Sean McCullough | 485afc6 | 2025-04-28 14:28:39 -0700 | [diff] [blame] | 576 | Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
|
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 577 | Via: 1.1 google
|
| 578 | X-Robots-Tag: none
|
| 579 |
|
| Josh Bleecher Snyder | 534783d | 2025-07-29 08:17:37 -0700 | [diff] [blame] | 580 | {"id":"msg_01MrEYnet6DtgPztpsmM8fFX","type":"message","role":"assistant","model":"claude-sonnet-4-20250514","content":[{"type":"text","text":"Here are the tools available to me:\n\n**File & Code Management:**\n- `bash` - Execute shell commands\n- `patch` - Modify files with precise text edits\n- `keyword_search` - Search codebase by keywords/concepts\n\n**Task Management:**\n- `todo_read` - Read current task list\n- `todo_write` - Create/update task list\n- `think` - Internal notes and planning\n\n**Development Workflow:**\n- `codereview` - Run automated code review\n- `done` - Mark work complete with checklist verification\n\n**Browser Automation:**\n- `browser_navigate` - Navigate to URLs\n- `browser_click` - Click elements\n- `browser_type` - Type into inputs\n- `browser_wait_for` - Wait for elements\n- `browser_get_text` - Read element text\n- `browser_eval` - Execute JavaScript\n- `browser_scroll_into_view` - Scroll to elements\n- `browser_resize` - Resize browser window\n- `browser_recent_console_logs` - Get console logs\n- `browser_clear_console_logs` - Clear console logs\n- `browser_take_screenshot` - Take screenshots\n\n**Utilities:**\n- `read_image` - Read and encode image files\n- `about_sketch` - Get help with Sketch functionality"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":3,"cache_creation_input_tokens":4178,"cache_read_input_tokens":0,"output_tokens":304,"service_tier":"standard"}} |