Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/bodo-run_askds.json
T

1 line
73 KiB
JSON

{"repo": "bodo-run/askds", "files": {"src/api.ts": {"c4cbce662ace8ac2353ee784022ed775df9974c4": {"t": 1785745562.764003, "n": 2869, "h": "303537d3cc17884e", "c": "import OpenAI from \"openai\";\n\nimport { Config, Message } from \"./types.js\";\nimport { ui } from \"./ui.js\";\nimport fs from \"fs\";\nexport const apis = {\n DEEPSEEK: {\n provider: \"DeepSeek\",\n endpoint: \"https://api.deepseek.com\",\n model: \"deepseek-reasoner\",\n apiKey: process.env.DEEPSEEK_API_KEY,\n maxTokens: 4096,\n temperature: 0.01,\n },\n} as const;\n\nexport async function streamAIResponse({\n api,\n config,\n messages,\n appendReasoningMessages = false,\n}: {\n api: (typeof apis)[keyof typeof apis];\n config: Config;\n messages: Message[];\n appendReasoningMessages?: boolean;\n}): Promise<string> {\n if (!api.apiKey) {\n throw new Error(`API key for ${api.provider} is not set`);\n }\n\n const client = new OpenAI({\n apiKey: api.apiKey,\n baseURL: api.endpoint,\n });\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), config.timeout);\n\n try {\n if (config.debug) {\n ui.appendOutputLog(`Sending messages to ${api.provider}...`);\n }\n\n if (appendReasoningMessages) {\n const streamResponse = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n stream: true,\n },\n {\n signal: controller.signal,\n }\n );\n\n let fullContent = \"\";\n let fullReasoning = \"\";\n let chunkCount = 0;\n\n for await (const chunk of streamResponse) {\n chunkCount++;\n const contentChunk = chunk.choices[0]?.delta?.content || \"\";\n const reasoningChunk =\n (chunk as any).choices[0]?.delta?.reasoning_content || \"\";\n\n if (config.debug && chunkCount % 25 === 0) {\n fs.appendFileSync(\"api-response.txt\", JSON.stringify(chunk) + \"\\n\\n\");\n }\n\n fullContent += contentChunk;\n fullReasoning += reasoningChunk;\n\n const displayText = reasoningChunk || contentChunk;\n ui.appendReasoningLog(displayText);\n }\n\n return fullContent || fullReasoning;\n } else {\n const response = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n },\n {\n signal: controller.signal,\n }\n );\n\n return response.choices[0].message.content || \"\";\n }\n } catch (error: unknown) {\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(\n `API request timed out after ${config.timeout / 1000} seconds`\n );\n }\n\n if (config.debug) {\n ui.appendOutputLog(\n `[${api.provider}] API Error: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n\n throw error;\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"}, "5428f3cd869f031fa22265f2eee5828ff4150b46": {"t": 1785754246.1496308, "n": 2869, "h": "303537d3cc17884e", "c": "import OpenAI from \"openai\";\n\nimport { Config, Message } from \"./types.js\";\nimport { ui } from \"./ui.js\";\nimport fs from \"fs\";\nexport const apis = {\n DEEPSEEK: {\n provider: \"DeepSeek\",\n endpoint: \"https://api.deepseek.com\",\n model: \"deepseek-reasoner\",\n apiKey: process.env.DEEPSEEK_API_KEY,\n maxTokens: 4096,\n temperature: 0.01,\n },\n} as const;\n\nexport async function streamAIResponse({\n api,\n config,\n messages,\n appendReasoningMessages = false,\n}: {\n api: (typeof apis)[keyof typeof apis];\n config: Config;\n messages: Message[];\n appendReasoningMessages?: boolean;\n}): Promise<string> {\n if (!api.apiKey) {\n throw new Error(`API key for ${api.provider} is not set`);\n }\n\n const client = new OpenAI({\n apiKey: api.apiKey,\n baseURL: api.endpoint,\n });\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), config.timeout);\n\n try {\n if (config.debug) {\n ui.appendOutputLog(`Sending messages to ${api.provider}...`);\n }\n\n if (appendReasoningMessages) {\n const streamResponse = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n stream: true,\n },\n {\n signal: controller.signal,\n }\n );\n\n let fullContent = \"\";\n let fullReasoning = \"\";\n let chunkCount = 0;\n\n for await (const chunk of streamResponse) {\n chunkCount++;\n const contentChunk = chunk.choices[0]?.delta?.content || \"\";\n const reasoningChunk =\n (chunk as any).choices[0]?.delta?.reasoning_content || \"\";\n\n if (config.debug && chunkCount % 25 === 0) {\n fs.appendFileSync(\"api-response.txt\", JSON.stringify(chunk) + \"\\n\\n\");\n }\n\n fullContent += contentChunk;\n fullReasoning += reasoningChunk;\n\n const displayText = reasoningChunk || contentChunk;\n ui.appendReasoningLog(displayText);\n }\n\n return fullContent || fullReasoning;\n } else {\n const response = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n },\n {\n signal: controller.signal,\n }\n );\n\n return response.choices[0].message.content || \"\";\n }\n } catch (error: unknown) {\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(\n `API request timed out after ${config.timeout / 1000} seconds`\n );\n }\n\n if (config.debug) {\n ui.appendOutputLog(\n `[${api.provider}] API Error: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n\n throw error;\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"}, "269b419beea6c05deddb7f08d27bc55be2663d34": {"t": 1785754250.335142, "n": 3220, "h": "2f9277ded57fb9eb", "c": "import OpenAI from \"openai\";\n\nimport { Config, Message } from \"./types.js\";\nimport { ui } from \"./ui.js\";\n\nexport const apis = {\n DEEPSEEK: {\n name: \"DeepSeek\",\n endpoint: \"https://api.deepseek.com\",\n model: \"deepseek-reasoner\",\n apiKey: process.env.DEEPSEEK_API_KEY,\n maxTokens: 4096,\n temperature: 0.01,\n },\n FIREWORKS: {\n name: \"Fireworks\",\n endpoint: \"https://api.fireworks.ai/inference/v1\",\n model: \"accounts/me-63642b/deployedModels/fast-apply-de5bd7ca\",\n apiKey: process.env.FIREWORKS_AI_API_KEY,\n maxTokens: 4096,\n temperature: 0.6,\n },\n} as const;\n\nexport async function streamAIResponse({\n api,\n config,\n messages,\n appendReasoningMessages = false,\n}: {\n api: (typeof apis)[keyof typeof apis];\n config: Config;\n messages: Message[];\n appendReasoningMessages?: boolean;\n}): Promise<string> {\n if (!api.apiKey) {\n throw new Error(`API key for ${api.name} is not set`);\n }\n\n const client = new OpenAI({\n apiKey: api.apiKey,\n baseURL: api.endpoint,\n });\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), config.timeout);\n\n try {\n if (config.debug) {\n ui.appendOutputLog(`Sending messages to ${api.name}...`);\n }\n\n if (appendReasoningMessages) {\n const streamResponse = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n stream: true,\n },\n {\n signal: controller.signal,\n }\n );\n\n let fullContent = \"\";\n let fullReasoning = \"\";\n let chunkCount = 0;\n\n for await (const chunk of streamResponse) {\n chunkCount++;\n const contentChunk = chunk.choices[0]?.delta?.content || \"\";\n const reasoningChunk =\n (chunk as any).choices[0]?.delta?.reasoning_content || \"\";\n\n if (config.debug && chunkCount % 25 === 0) {\n ui.appendOutputLog(\n `[${api.name}] Received ${chunkCount} chunks. ` +\n `Content: ${contentChunk.length}b, ` +\n `Reasoning: ${reasoningChunk.length}b\\n`\n );\n }\n\n fullContent += contentChunk;\n fullReasoning += reasoningChunk;\n\n const displayText = reasoningChunk || contentChunk;\n ui.appendReasoningLog(displayText);\n }\n\n return fullContent || fullReasoning;\n } else {\n const response = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n },\n {\n signal: controller.signal,\n }\n );\n\n return response.choices[0].message.content || \"\";\n }\n } catch (error: unknown) {\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(\n `API request timed out after ${config.timeout / 1000} seconds`\n );\n }\n\n if (config.debug) {\n ui.appendOutputLog(\n `[${api.name}] API Error: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n\n throw error;\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"}, "94160cc976a607b3f80324a36293d7b6ffef8bb9": {"t": 1785754251.5416791, "n": 3218, "h": "19cc16131f82d643", "c": "import OpenAI from \"openai\";\n\nimport { Config, Message } from \"./types.js\";\nimport { ui } from \"./ui.js\";\n\nexport const apis = {\n DEEPSEEK: {\n name: \"DeepSeek\",\n endpoint: \"https://api.deepseek.com\",\n model: \"deepseek-reasoner\",\n apiKey: process.env.DEEPSEEK_API_KEY,\n maxTokens: 4096,\n temperature: 0.01,\n },\n FIREWORKS: {\n name: \"Fireworks\",\n endpoint: \"https://api.fireworks.ai/inference/v1\",\n model: \"accounts/me-63642b/deployedModels/fast-apply-de5bd7ca\",\n apiKey: process.env.FIREWORKS_AI_API_KEY,\n maxTokens: 4096,\n temperature: 0.6,\n },\n} as const;\n\nexport async function streamAIResponse({\n api,\n config,\n messages,\n appendReasoningMessages = false,\n}: {\n api: (typeof apis)[keyof typeof apis];\n config: Config;\n messages: Message[];\n appendReasoningMessages?: boolean;\n}): Promise<string> {\n if (!api.apiKey) {\n throw new Error(`API key for ${api.name} is not set`);\n }\n\n const client = new OpenAI({\n apiKey: api.apiKey,\n baseURL: api.endpoint,\n });\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), config.timeout);\n\n try {\n if (config.debug) {\n ui.appendOutputLog(`Sending messages to ${api.name}...`);\n }\n\n if (appendReasoningMessages) {\n const streamResponse = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n stream: true,\n },\n {\n signal: controller.signal,\n }\n );\n\n let fullContent = \"\";\n let fullReasoning = \"\";\n let chunkCount = 0;\n\n for await (const chunk of streamResponse) {\n chunkCount++;\n const contentChunk = chunk.choices[0]?.delta?.content || \"\";\n const reasoningChunk =\n (chunk as any).choices[0]?.delta?.reasoning_content || \"\";\n\n if (config.debug && chunkCount % 25 === 0) {\n ui.appendOutputLog(\n `[${api.name}] Received ${chunkCount} chunks. ` +\n `Content: ${contentChunk.length}b, ` +\n `Reasoning: ${reasoningChunk.length}b`\n );\n }\n\n fullContent += contentChunk;\n fullReasoning += reasoningChunk;\n\n const displayText = reasoningChunk || contentChunk;\n ui.appendReasoningLog(displayText);\n }\n\n return fullContent || fullReasoning;\n } else {\n const response = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n },\n {\n signal: controller.signal,\n }\n );\n\n return response.choices[0].message.content || \"\";\n }\n } catch (error: unknown) {\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(\n `API request timed out after ${config.timeout / 1000} seconds`\n );\n }\n\n if (config.debug) {\n ui.appendOutputLog(\n `[${api.name}] API Error: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n\n throw error;\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"}, "f558c907b6d198022523af6af162c14d8beebaf9": {"t": 1785754252.8068871, "n": 3268, "h": "7ad2a38739cf63ae", "c": "import OpenAI from \"openai\";\n\nimport { Config, Message } from \"./types.js\";\nimport { ui } from \"./ui.js\";\n\nexport const apis = {\n DEEPSEEK: {\n name: \"DeepSeek\",\n endpoint: \"https://api.deepseek.com\",\n model: \"deepseek-reasoner\",\n apiKey: process.env.DEEPSEEK_API_KEY,\n maxTokens: 4096,\n temperature: 0.01,\n },\n FIREWORKS: {\n name: \"Fireworks\",\n endpoint: \"https://api.fireworks.ai/inference/v1\",\n model: \"accounts/me-63642b/deployedModels/fast-apply-de5bd7ca\",\n apiKey: process.env.FIREWORKS_AI_API_KEY,\n maxTokens: 4096,\n temperature: 0.6,\n },\n} as const;\n\nexport async function streamAIResponse({\n api,\n config,\n messages,\n appendReasoningMessages = false,\n}: {\n api: (typeof apis)[keyof typeof apis];\n config: Config;\n messages: Message[];\n appendReasoningMessages?: boolean;\n}): Promise<string> {\n if (!api.apiKey) {\n throw new Error(`API key for ${api.name} is not set`);\n }\n\n const client = new OpenAI({\n apiKey: api.apiKey,\n baseURL: api.endpoint,\n });\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), config.timeout);\n\n try {\n if (config.debug) {\n ui.appendOutputLog(`Sending messages to ${api.name}...`);\n }\n\n if (appendReasoningMessages) {\n const streamResponse = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n stream: true,\n },\n {\n signal: controller.signal,\n }\n );\n\n let fullContent = \"\";\n let fullReasoning = \"\";\n let chunkCount = 0;\n\n for await (const chunk of streamResponse) {\n chunkCount++;\n const contentChunk = chunk.choices[0]?.delta?.content || \"\";\n const reasoningChunk =\n (chunk as any).choices[0]?.delta?.reasoning_content || \"\";\n\n if (config.debug && chunkCount % 25 === 0) {\n ui.appendOutputLog(\n `[${api.name}] Received ${chunkCount} chunks. ` +\n `Content: ${contentChunk.length}b, ` +\n `Reasoning: ${reasoningChunk.length}b`\n );\n }\n\n fullContent += contentChunk;\n fullReasoning += reasoningChunk;\n\n if (!config.hideReasoning) {\n const displayText = reasoningChunk || contentChunk;\n ui.appendReasoningLog(displayText);\n }\n }\n\n return fullContent || fullReasoning;\n } else {\n const response = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n },\n {\n signal: controller.signal,\n }\n );\n\n return response.choices[0].message.content || \"\";\n }\n } catch (error: unknown) {\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(\n `API request timed out after ${config.timeout / 1000} seconds`\n );\n }\n\n if (config.debug) {\n ui.appendOutputLog(\n `[${api.name}] API Error: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n\n throw error;\n } finally {\n clearTimeout(timeoutId);\n }\n}"}, "b51e24205a25e20cde77b265bcfb7726c0670de1": {"t": 1785754254.2039807, "n": 3235, "h": "3466becd271d7616", "c": "import OpenAI from \"openai\";\n\nimport { Config, Message } from \"./types.js\";\nimport { ui } from \"./ui.js\";\n\nexport const apis = {\n DEEPSEEK: {\n name: \"DeepSeek\",\n endpoint: \"https://api.deepseek.com\",\n model: \"deepseek-reasoner\",\n apiKey: process.env.DEEPSEEK_API_KEY,\n maxTokens: 4096,\n temperature: 0.01,\n },\n FIREWORKS: {\n name: \"Fireworks\",\n endpoint: \"https://api.fireworks.ai/inference/v1\",\n model: \"fast-apply-7b-v1.0\",\n apiKey: process.env.FIREWORKS_AI_API_KEY,\n maxTokens: 4096,\n temperature: 0.01,\n },\n} as const;\n\nexport async function streamAIResponse({\n api,\n config,\n messages,\n appendReasoningMessages = false,\n}: {\n api: (typeof apis)[keyof typeof apis];\n config: Config;\n messages: Message[];\n appendReasoningMessages?: boolean;\n}): Promise<string> {\n if (!api.apiKey) {\n throw new Error(`API key for ${api.name} is not set`);\n }\n\n const client = new OpenAI({\n apiKey: api.apiKey,\n baseURL: api.endpoint,\n });\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), config.timeout);\n\n try {\n if (config.debug) {\n ui.appendOutputLog(`Sending messages to ${api.name}...`);\n }\n\n if (appendReasoningMessages) {\n const streamResponse = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n stream: true,\n },\n {\n signal: controller.signal,\n }\n );\n\n let fullContent = \"\";\n let fullReasoning = \"\";\n let chunkCount = 0;\n\n for await (const chunk of streamResponse) {\n chunkCount++;\n const contentChunk = chunk.choices[0]?.delta?.content || \"\";\n const reasoningChunk =\n (chunk as any).choices[0]?.delta?.reasoning_content || \"\";\n\n if (config.debug && chunkCount % 25 === 0) {\n ui.appendOutputLog(\n `[${api.name}] Received ${chunkCount} chunks. ` +\n `Content: ${contentChunk.length}b, ` +\n `Reasoning: ${reasoningChunk.length}b`\n );\n }\n\n fullContent += contentChunk;\n fullReasoning += reasoningChunk;\n\n if (!config.hideReasoning) {\n const displayText = reasoningChunk || contentChunk;\n ui.appendReasoningLog(displayText);\n }\n }\n\n return fullContent || fullReasoning;\n } else {\n const response = await client.chat.completions.create(\n {\n model: api.model,\n messages,\n temperature: api.temperature,\n max_tokens: api.maxTokens,\n },\n {\n signal: controller.signal,\n }\n );\n\n return response.choices[0].message.content || \"\";\n }\n } catch (error: unknown) {\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(\n `API request timed out after ${config.timeout / 1000} seconds`\n );\n }\n\n if (config.debug) {\n ui.appendOutputLog(\n `[${api.name}] API Error: ${\n error instanceof Error ? error.message : String(error)\n }`\n );\n }\n\n throw error;\n } finally {\n clearTimeout(timeoutId);\n }\n}\n"}, "be2a4eae7c669f368a60dc7c72a53854153a156c": {"t": 1785754255.619933, "n": 850, "h": "edb5c81bbefbad32", "c": "import OpenAI from \"openai\";\n\nimport { Config, Message } from \"./types.js\";\nimport { ui } from \"./ui.js\";\n\nexport async function streamAIResponse(\n config: Config,\n messages: Message[]\n): Promise<string> {\n const openai = new OpenAI({\n apiKey: config.apiKey,\n baseURL: \"https://api.fireworks.ai/inference/v1\",\n });\n\n try {\n if (config.debug) {\n ui.appendOutputLog(\"Sending messages to AI...\");\n }\n\n const response = await openai.chat.completions.create({\n model: \"@kortix-ai/fast-apply-7b-v1.0\",\n messages,\n temperature: 0.01,\n max_tokens: 4096,\n });\n\n return response.choices[0].message.content || \"\";\n } catch (error: unknown) {\n if (config.debug) {\n ui.appendOutputLog(\n `API Error: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n throw error;\n }\n}\n"}}, "README.md": {"c4cbce662ace8ac2353ee784022ed775df9974c4": {"t": 1785747261.4882612, "n": 2330, "h": "eed299479317f161", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and suggests fixes.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ---------------------------------------------------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-ui` | Hide UI | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n| `--timeout` | Timeout for AI response | `120` |\n| `--run` | Run this command. when using run [test-command-and-args...] is ignored | `false` |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures + repo content using Deepseek R1\n3. Prints the solution/suggestion\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n## Experimental Fixing\n\n```bash\naskds --fix npm test\n```\n\n`--fix` uses DeepSeek R1 to fix the code by calling it again with original code and the fix returned from the first call.\n"}, "113d742a54bff05d622c7f480da8a1035c34912a": {"t": 1785754244.9889762, "n": 2330, "h": "eed299479317f161", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and suggests fixes.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ---------------------------------------------------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-ui` | Hide UI | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n| `--timeout` | Timeout for AI response | `120` |\n| `--run` | Run this command. when using run [test-command-and-args...] is ignored | `false` |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures + repo content using Deepseek R1\n3. Prints the solution/suggestion\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n## Experimental Fixing\n\n```bash\naskds --fix npm test\n```\n\n`--fix` uses DeepSeek R1 to fix the code by calling it again with original code and the fix returned from the first call.\n"}, "5428f3cd869f031fa22265f2eee5828ff4150b46": {"t": 1785754246.161576, "n": 2468, "h": "8601a9d2053d07db", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and suggests fixes.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ---------------------------------------------------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-ui` | Hide UI | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n| `--timeout` | Timeout for AI response | `120` |\n| `--run` | Run this command. when using run [test-command-and-args...] is ignored | `false` |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures + repo content using Deepseek R1\n3. Prints the solution/suggestion\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n## Experimental Fixing\n\n```bash\naskds --fix npm test\n```\n\n`--fix` uses Ollama to fix the code. You will need to have Ollama installed and running.\n\nYou also need to pull the `fastapply` model and add it to Ollama.\n\n```bash\n./scripts/ollama.sh\n```\n\n> [!NOTE]\n> `fast-apply` is a 7B model, and requires a lot of memory.\n"}, "269b419beea6c05deddb7f08d27bc55be2663d34": {"t": 1785754250.7607026, "n": 2284, "h": "24fa0c04c874f40a", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and suggests fixes.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ---------------------------------------------------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-ui` | Hide UI | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n| `--timeout` | Timeout for AI response | `120` |\n| `--run` | Run this command. when using run [test-command-and-args...] is ignored | `false` |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures + repo content using Deepseek R1\n3. Prints the solution/suggestion\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n## Experimental Fixing\n\n```bash\naskds --fix npm test\n```\n\nYou will need to have a Fireworks AI API key set under `FIREWORKS_API_KEY`.\n"}, "94160cc976a607b3f80324a36293d7b6ffef8bb9": {"t": 1785754252.1256335, "n": 1797, "h": "76395327ede82ae8", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and suggests fixes.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-ui` | Hide UI | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n| `--timeout` | Timeout for AI response | `120` |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures + repo content using Deepseek R1\n3. Prints the solution/suggestion\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n## Experimental Fixing\n\n```bash\naskds --fix npm test\n```\n\nYou will need to have a Fireworks AI API key set under `FIREWORKS_API_KEY`.\n"}, "68d7858bd66347abcb2b2e52d85fd3e176f404dc": {"t": 1785754253.3541067, "n": 1720, "h": "524cedfd4b2b144e", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and suggests fixes.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures + repo content using Deepseek R1\n3. Prints the solution/suggestion\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n## Experimental Fixing\n\n```bash\naskds --fix npm test\n```\n\nYou will need to have a Fireworks AI API key set under `FIREWORKS_API_KEY`.\n"}, "9c1af463656ce64a3d4a900293c1c5e5cfba5890": {"t": 1785754258.1831055, "n": 1721, "h": "1e6cdf3410017777", "c": "import { it, expect, describe } from \"vitest\";\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and suggests fixes.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures + repo content using Deepseek R1\n3. Prints the solution/suggestion\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n## Experimental Fixing\n\n```bash\naskds --fix npm test\n```\n\nYou will need to have a Fireworks AI API key set under `FIREWORKS_API_KEY`.\n"}, "f558c907b6d198022523af6af162c14d8beebaf9": {"t": 1785754261.3452082, "n": 1586, "h": "42ccc3defda64c06", "c": "import { it, expect, describe } from \"vitest\";\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and suggests fixes.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures + repo content using Deepseek R1\n3. Prints the solution/suggestion\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n"}, "9bd9b4a5c971aede7141db8e66fa1a3476862de6": {"t": 1785754262.569079, "n": 1658, "h": "6093eb9f89dc948e", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and suggests fixes.\n\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ---------------------- | ----------------------------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures + repo content using Deepseek R1\n3. Prints the solution/suggestion\n\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n"}, "9219c068b730f307399c51f38c2d3da8864df363": {"t": 1785754263.861641, "n": 4036, "h": "b1fe3f3a6be90ef7", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and can automatically apply fixes using [`fast-apply`](https://github.com/kortix-ai/fast-apply).\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\nRun tests and automatically apply fixes:\n\n```bash\nexport FIREWORKS_AI_API_KEY=\"your-api-key\"\naskds --fix npm test\n```\n\n## Fix Options\n\n> Note: `--fix` is not yet implemented yet. Work in progress...\n\n- `--fix`: Enable automatic fixing. You will need a Fireworks AI API key.\n- `--interactive`: Confirm each change before applying, only works with `--fix`\n\nExample workflow:\n\n```bash\n# Run tests and apply fixes interactively\naskds --fix --interactive npm test\n\n# See proposed changes without modifying files\naskds --fix npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ---------------------- | ----------------------------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n| `FIREWORKS_AI_API_KEY` | Required API key for applying fixes | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n| `--fix` | Enable automatic fixing | `false` |\n| `--interactive` | Confirm each fix | `false` |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures using Fireworks AI\n3. Generates targeted fixes while preserving code structure\n4. Applies changes safely with user confirmation (if `--fix` is enabled)\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n### Interactive Fixing\n\n```bash\naskai --fix --interactive npm test\n```\n\n### Custom Test Command\n\n```bash\naskai --fix cargo test --features special\n```\n\n## CLI Reference\n\n```\nUsage: askds [options] [test-command-and-args...]\n\nArguments:\n test-command-and-args Test command to execute\n\nOptions:\n -V, --version output the version number\n --fix Automatically apply AI-suggested fixes\n (default: false)\n --interactive Confirm each change before applying (requires\n --fix) (default: true)\n --debug Enable debug mode (default: false)\n --serialize <command> Repository serialization command (default:\n \"yek\")\n --system-prompt <file> Path to system prompt file\n --hide-reasoning Hide reasoning UI (default: false)\n --timeout <seconds> Timeout for AI response (default: \"120\")\n --test-file-pattern <pattern> Glob pattern for test files (default:\n [\"**/*.{test,spec}.*\",\"**/*.{tests,specs}.*\",\"**/__tests__/**/*\",\"**/__test__/**/*\",\"**/test/**/*\",\"**/tests/**/*\"])\n --source-file-pattern <pattern> Glob pattern for source files (default:\n [\"!**/*.{test,spec}.*\",\"!**/*.{tests,specs}.*\",\"!**/__tests__/**/*\",\"!**/__test__/**/*\",\"!**/test/**/*\",\"!**/tests/**/*\"])\n -h, --help display help for command\n\n```\n"}, "b51e24205a25e20cde77b265bcfb7726c0670de1": {"t": 1785754265.1055422, "n": 3971, "h": "8eabb2134af67791", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and can automatically apply fixes using [`fast-apply`](https://github.com/kortix-ai/fast-apply).\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\nRun tests and automatically apply fixes:\n\n```bash\nexport FIREWORKS_AI_API_KEY=\"your-api-key\"\naskds --fix npm test\n```\n\n## Fix Options\n\n- `--fix`: Enable automatic fixing. You will need a Fireworks AI API key.\n- `--interactive`: Confirm each change before applying, only works with `--fix`\n\nExample workflow:\n\n```bash\n# Run tests and apply fixes interactively\naskds --fix --interactive npm test\n\n# See proposed changes without modifying files\naskds --fix npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ---------------------- | ----------------------------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n| `FIREWORKS_AI_API_KEY` | Required API key for applying fixes | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n| `--fix` | Enable automatic fixing | `false` |\n| `--interactive` | Confirm each fix | `false` |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures using Fireworks AI\n3. Generates targeted fixes while preserving code structure\n4. Applies changes safely with user confirmation (if `--fix` is enabled)\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n### Interactive Fixing\n\n```bash\naskai --fix --interactive npm test\n```\n\n### Custom Test Command\n\n```bash\naskai --fix cargo test --features special\n```\n\n## CLI Reference\n\n```\nUsage: askds [options] [test-command-and-args...]\n\nArguments:\n test-command-and-args Test command to execute\n\nOptions:\n -V, --version output the version number\n --fix Automatically apply AI-suggested fixes\n (default: false)\n --interactive Confirm each change before applying (requires\n --fix) (default: true)\n --debug Enable debug mode (default: false)\n --serialize <command> Repository serialization command (default:\n \"yek\")\n --system-prompt <file> Path to system prompt file\n --hide-reasoning Hide reasoning UI (default: false)\n --timeout <seconds> Timeout for AI response (default: \"120\")\n --test-file-pattern <pattern> Glob pattern for test files (default:\n [\"**/*.{test,spec}.*\",\"**/*.{tests,specs}.*\",\"**/__tests__/**/*\",\"**/__test__/**/*\",\"**/test/**/*\",\"**/tests/**/*\"])\n --source-file-pattern <pattern> Glob pattern for source files (default:\n [\"!**/*.{test,spec}.*\",\"!**/*.{tests,specs}.*\",\"!**/__tests__/**/*\",\"!**/__test__/**/*\",\"!**/test/**/*\",\"!**/tests/**/*\"])\n -h, --help display help for command\n\n```\n"}, "c470a4179dceffba1bef6f0cff9a314e19196efd": {"t": 1785754266.3781385, "n": 2570, "h": "8c4449aa1c159bea", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests, analyzes failures, and can automatically apply fixes using [`fast-apply`](https://github.com/kortix-ai/fast-apply).\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\nnpm install -g askds\n```\n\n## Basic Usage\n\nRun tests with AI analysis:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\nRun tests and automatically apply fixes:\n\n```bash\nexport FIREWORKS_AI_API_KEY=\"your-api-key\"\naskds --fix npm test\n```\n\n## Fix Options\n\n- `--fix`: Enable automatic fixing. You will need a Fireworks AI API key.\n- `--interactive`: Confirm each change before applying, only works with `--fix`\n\nExample workflow:\n\n```bash\n# Run tests and apply fixes interactively\naskds --fix --interactive npm test\n\n# See proposed changes without modifying files\naskds --fix npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ---------------------- | ----------------------------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n| `FIREWORKS_AI_API_KEY` | Required API key for applying fixes | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n| `--fix` | Enable automatic fixing | `false` |\n| `--interactive` | Confirm each fix | `false` |\n\n## How It Works\n\n1. Runs your test command\n2. Analyzes failures using Fireworks AI\n3. Generates targeted fixes while preserving code structure\n4. Applies changes safely with user confirmation (if `--fix` is enabled)\n\n## Examples\n\n### Basic Test Analysis\n\n```bash\naskai npm test\n```\n\n### Interactive Fixing\n\n```bash\naskai --fix --interactive npm test\n```\n\n### Custom Test Command\n\n```bash\naskai --fix cargo test --features special\n```\n"}, "64a1e789739ba85fa38f4f99624cbbaabc00c490": {"t": 1785754267.56029, "n": 2832, "h": "2c6c897049dd7e16", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repository serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\ncurl -fsSL https://bodo.run/yek.sh | bash\n```\n\nThen install `askds`:\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\nFor commands with arguments:\n\n```bash\naskds npm test -- --watch\naskds cargo test --features special\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n\n## Examples\n\n### Serialization\n\nSee [`yek`](https://github.com/bodo-run/yek) for more information on serialization. You can run any command that outputs a string to the console using `--serialize`.\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Asking Questions\n\nSince we run the command you provide to get test results, you can execute any arbitrary command to feed input to the AI agent.\n\n```bash\naskds --serialize=\"yek src/\" echo \"Review my changes\"\n```\n\n### Writing Custom Prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide Reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n\n### Debug Mode\n\n```bash\naskds --debug npm test\n```\n\n### Automatic Fixes\n\nApply AI-suggested fixes:\n\n```bash\naskds fix --interactive\n```\n\nOptions:\n\n- `--dry-run`: Show proposed changes without modifying files\n- `--interactive`: Confirm each change before applying\n\nExample workflow:\n\n1. Run tests and get analysis:\n ```bash\n askds npm test\n ```\n2. Apply fixes automatically:\n ```bash\n askds fix\n ```\n3. Review and commit changes:\n ```bash\n git diff\n git commit -am 'Apply AI fixes'\n ```\n"}, "0d8d3cc5a9b3a9e97df64b95d5b65f72a9e54a94": {"t": 1785754268.8532214, "n": 2378, "h": "4f926b6c836389a9", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repository serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\ncurl -fsSL https://bodo.run/yek.sh | bash\n```\n\nThen install `askds`:\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\nFor commands with arguments:\n\n```bash\naskds npm test -- --watch\naskds cargo test --features special\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n\n## Examples\n\n### Serialization\n\nSee [`yek`](https://github.com/bodo-run/yek) for more information on serialization. You can run any command that outputs a string to the console using `--serialize`.\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Asking Questions\n\nSince we run the command you provide to get test results, you can execute any arbitrary command to feed input to the AI agent.\n\n```bash\naskds --serialize=\"yek src/\" echo \"Review my changes\"\n```\n\n### Writing Custom Prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide Reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n\n### Debug Mode\n\n```bash\naskds --debug npm test\n```\n\n"}, "bc2301e937e41b7d6e4752abe0114a2fd7754822": {"t": 1785754270.1871572, "n": 2377, "h": "8fb8f0b880276171", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repository serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\ncurl -fsSL https://bodo.run/yek.sh | bash\n```\n\nThen install `askds`:\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\nFor commands with arguments:\n\n```bash\naskds npm test -- --watch\naskds cargo test --features special\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n\n## Examples\n\n### Serialization\n\nSee [`yek`](https://github.com/bodo-run/yek) for more information on serialization. You can run any command that outputs a string to the console using `--serialize`.\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Asking Questions\n\nSince we run the command you provide to get test results, you can execute any arbitrary command to feed input to the AI agent.\n\n```bash\naskds --serialize=\"yek src/\" echo \"Review my changes\"\n```\n\n### Writing Custom Prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide Reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n\n### Debug Mode\n\n```bash\naskds --debug npm test\n```\n"}, "ac08bf1045a3e7b34f967f95a43b1b13b1a7c4c7": {"t": 1785754271.3489811, "n": 2272, "h": "792fcda95568fa8d", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repository serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\ncurl -fsSL https://bodo.run/yek.sh | bash\n```\n\nThen install `askds`:\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\nCommand line options:\n\n| Flag | Description | Default |\n| ----------------------- | ----------------------------- | -------------- |\n| `--test-file-pattern` | Glob pattern for test files | `**/*.test.ts` |\n| `--source-file-pattern` | Glob pattern for source files | `src/**/*.ts` |\n| `--serialize` | Repository serialization cmd | `yek` |\n| `--debug` | Enable debug mode | `false` |\n| `--hide-reasoning` | Hide AI reasoning | `false` |\n| `--system-prompt` | Custom system prompt file | - |\n\n## Examples\n\n### Serialization\n\nSee [`yek`](https://github.com/bodo-run/yek) for more information on serialization. You can run any command that outputs a string to the console using `--serialize`.\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Asking Questions\n\nSince we run the command you provide to get test results, you can execute any arbitrary command to feed input to the AI agent.\n\n```bash\naskds --serialize=\"yek src/\" echo \"Review my changes\"\n```\n\n### Writing Custom Prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide Reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n\n### Debug Mode\n\n```bash\naskds --debug npm test\n```\n"}, "724778485152b7ff4d0e970f0d93bd484e21779a": {"t": 1785754273.5944593, "n": 1632, "h": "6b94c8ddf81a7f15", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repository serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed:\n\n```bash\ncurl -fsSL https://bodo.run/yek.sh | bash\n```\n\nThen install `askds`:\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\n## Examples\n\n### Serialization\n\nSee [`yek`](https://github.com/bodo-run/yek) for more information on serialization. You can run any command that outputs a string to the console using `--serialize`.\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Asking Questions\n\nSince we run the command you provide to get test results, you can execute any arbitrary command to feed input to the AI agent.\n\n```bash\naskds --serialize=\"yek src/\" echo \"Review my changes\"\n```\n\n### Writing Custom Prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide Reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n\n### Debug Mode\n\n```bash\naskds --debug npm test\n```\n"}, "5ab7e7efa7d8647d2024fc730741ce7054dcf4fb": {"t": 1785754275.7792406, "n": 1642, "h": "4dc5a1acc75e8535", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repo serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed.\n\n```bash\ncurl -fsSL https://bodo.run/yek.sh | bash\n```\n\nThen install `askds`:\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\n## Examples\n\n### Serialization\n\nSee [`yek`](https://github.com/bodo-run/yek) for more information on serialization. You can run any command that outputs a string to the console for `--serialize`.\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Asking any question\n\nSince we're running the command you provided to us to get the test results, you can run any arbitrary command to feed that to the AI agent.\n\n```bash\naskds --serialize=\"yek src/\" echo \"Review my changes\"\n```\n\n### Writing your own prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n\n### Debug mode\n\n```bash\naskds --debug npm test\n```\n"}, "20f310f22b714dc6db39e9be1efd03c653bd1af8": {"t": 1785754277.2179651, "n": 1225, "h": "0aa2268be4306316", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repo serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n## Installation\n\nMake sure you have [`yek`](https://github.com/bodo-run/yek) installed.\n\n```bash\ncurl -fsSL https://bodo.run/yek.sh | bash\n```\n\nThen install `askds`:\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\n## Examples\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Writing your own prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n\n### Debug mode\n\n```bash\naskds --debug npm test\n```\n"}, "0afdb70e6c5942a7add3284b16ce91e9baf539a3": {"t": 1785754281.7363868, "n": 1079, "h": "03ca40a9303bafea", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repo serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n\n\n[Screencast](https://github.com/user-attachments/assets/477e92e2-6701-4138-8ffb-c910ef61571e)\n\n\n\n## Installation\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\n## Examples\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Writing your own prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n\n### Debug mode\n\n```bash\naskds --debug npm test\n```\n"}, "e770933fabc6fb06578f52e84903a27449ccc389": {"t": 1785754283.5319595, "n": 1018, "h": "03b5c2e20d90e881", "c": "# `askds` - DeepSeek R1-powered test debugger\n\n`askds` is a test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repo serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n![screencast](./docs/screencast.mp4)\n\n## Installation\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\n## Examples\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Writing your own prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n\n### Debug mode\n\n```bash\naskds --debug npm test\n```\n"}, "b2ed42891c01731449c112b17d7df4102f2832b2": {"t": 1785754285.3666203, "n": 978, "h": "a796eb3d6c20a86f", "c": "# `askds` - AI-powered test debugger\n\nDeepSeek R1 powered test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repo serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n## Installation\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\n## Examples\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Writing your own prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n\n### Debug mode\n\n```bash\naskds --debug npm test\n```\n"}, "dd4ead51d9f564a431f0c7798c351b4ca39ab7d7": {"t": 1785754287.3690493, "n": 980, "h": "bfdb5421ea0428fe", "c": "# `askds` - AI-powered test debugger\n\nDeepSeek R1 powered test debugger that helps diagnose test failures using DeepSeek R1. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repo serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n## Installation\n\n```bash\nnpm install -g askds\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskds npm test\n```\n\nWith debug mode:\n\n```bash\naskds --debug npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\n## Examples\n\n```bash\naskds --serialize=\"yek src/\" npm test\n```\n\n### Writing your own prompts\n\n```bash\naskds --system-prompt=\"./prompts/fix-test.txt\" cargo test\n```\n\n### Hide reasoning\n\n```bash\naskds --hide-reasoning cargo test\n```\n"}, "5066d56d81247e5520324adca9f5a0adc3ecbe17": {"t": 1785754288.5535414, "n": 842, "h": "bd0f9d7f12b1dec3", "c": "# `askai` - AI-powered test debugger\n\nAI-powered test debugger that helps diagnose test failures using AI. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repo serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n## Installation\n\n```bash\nnpm install -g askai\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskai npm test\n```\n\nWith debug mode:\n\n```bash\naskai --debug npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\n## Examples\n\n### For JavaScript/Node.js\n\n```bash\naskai --serialize=\"yek --exclude 'node_modules'\" npm test\n```\n"}, "79f45e24f53af8853444b1efc3e20b2a65966954": {"t": 1785754290.1690328, "n": 815, "h": "a8d90df03b86f475", "c": "# `askai`\n\nAI-powered test debugger that helps diagnose test failures using AI. It runs your tests and provides the results to an AI agent to analyze and suggest solutions.\n\nFor repo serialization, it uses [`yek`](https://github.com/bodo-run/yek) to serialize the repository.\n\n## Installation\n\n```bash\nnpm install -g askai\n```\n\n## Usage\n\nBasic usage:\n\n```bash\nexport DEEPSEEK_API_KEY=\"your-api-key\"\naskai npm test\n```\n\nWith debug mode:\n\n```bash\naskai --debug npm test\n```\n\n## Configuration\n\nSet these environment variables to customize behavior:\n\n| Variable | Description | Default |\n| ------------------ | ---------------- | ------- |\n| `DEEPSEEK_API_KEY` | Required API key | - |\n\n## Examples\n\n### For JavaScript/Node.js\n\n```bash\naskai --serialize=\"yek --exclude 'node_modules'\" npm test\n```\n"}}}}