@zhiweiliu/playwright-generator 1.0.28 → 1.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -72,9 +72,10 @@ The installed module will have amazing features to facilitate your day-to-day te
72
72
  - **Node.js**: Version 16.0 or higher
73
73
  - **npm**: Version 7.0 or higher
74
74
  - **Git**: For version control integration
75
- - **LLM API Access** (optional): Depending on your AI model choice
76
- - Copilot: GitHub Copilot API credentials
75
+ - **LLM API Access**: Depending on your AI model choice:
77
76
  - Claude: Anthropic API key with Claude access enabled (visit https://console.anthropic.com/)
77
+ - Azure OpenAI: Azure subscription with an OpenAI resource and deployment
78
+ - ChatGPT: OpenAI API key (visit https://platform.openai.com/)
78
79
 
79
80
  ## Installation & Quick Start
80
81
 
@@ -133,9 +134,14 @@ project-root/
133
134
 
134
135
  ```env
135
136
  # AI Model Configuration
136
- AI_MODEL=copilot # Options: copilot, claude
137
- COPILOT_API_KEY=your_key_here # Required if using Copilot
137
+ AI_MODEL=claude # Options: claude, azure-openai, chatgpt
138
138
  CLAUDE_API_KEY=sk-ant-... # Required if using Claude (starts with sk-ant-)
139
+ AZURE_OPENAI_API_KEY= # Required if using Azure OpenAI
140
+ AZURE_OPENAI_ENDPOINT= # e.g. https://<resource>.openai.azure.com
141
+ AZURE_OPENAI_DEPLOYMENT= # e.g. gpt-4o
142
+ AZURE_OPENAI_API_VERSION=2024-02-01 # Optional, defaults to 2024-02-01
143
+ CHATGPT_API_KEY= # Required if using ChatGPT (starts with sk-)
144
+ CHATGPT_MODEL=gpt-4o # Optional, defaults to gpt-4o
139
145
 
140
146
  # Playwright Configuration
141
147
  BROWSER=chromium # Options: chromium, firefox, webkit
@@ -196,9 +202,10 @@ Playwright test automation code is generated by running a command, with generate
196
202
  - The test case ID tag must be specified with the generation command, allowing generation of one test case at a time
197
203
  - If an output file is specified, the command will either append the generated test case to the file or update it if it already exists
198
204
  - If no output file is specified, the command will either append to `generated.test.ts` or update the test case if it exists
199
- - The following AI models are supported (specify with generation command; Copilot is used by default):
200
- - **Copilot**: GitHub Copilot API
205
+ - The following AI models are supported:
201
206
  - **Claude**: Anthropic Claude 3 Haiku API (widely available)
207
+ - **Azure OpenAI**: Azure-hosted OpenAI models (e.g. gpt-4o)
208
+ - **ChatGPT**: OpenAI API (e.g. gpt-4o)
202
209
 
203
210
  The generator now strips Markdown and explanation text from model output automatically, keeping only the extracted TypeScript test function before writing to `generated/*.test.ts`.
204
211
 
@@ -207,11 +214,14 @@ The generator now strips Markdown and explanation text from model output automat
207
214
  **Generation Commands**:
208
215
 
209
216
  ```bash
210
- # Generate with default model (Copilot)
217
+ # Generate test code (default: claude)
211
218
  npx playwright-generator generate --tc TC-0001
212
219
 
213
- # Generate with specific model
214
- npx playwright-generator generate --tc TC-0001 --model claude
220
+ # Generate with Azure OpenAI
221
+ npx playwright-generator generate --tc TC-0001 --model azure-openai
222
+
223
+ # Generate with ChatGPT
224
+ npx playwright-generator generate --tc TC-0001 --model chatgpt
215
225
 
216
226
  # Generate to specific output file
217
227
  npx playwright-generator generate --tc TC-0001 --output login.test.ts
@@ -316,8 +326,8 @@ Workflow file location: `.github/workflows/playwright-tests.yml`
316
326
 
317
327
  | Issue | Solution |
318
328
  | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
319
- | `API key not found` | Verify `.env` file exists and `COPILOT_API_KEY` or `CLAUDE_API_KEY` is set |
320
- | `Claude API connection failed` | Check `CLAUDE_API_KEY` is valid and account has Claude API access; ensure key starts with `sk-ant-`. Visit https://console.anthropic.com/ to enable Claude API. Uses Claude 3 Haiku which is widely available. If issues persist, try Copilot instead. |
329
+ | `API key not found` | Verify `.env` file exists and `CLAUDE_API_KEY` or `AZURE_OPENAI_API_KEY` is set |
330
+ | `Claude API connection failed` | Check `CLAUDE_API_KEY` is valid and account has Claude API access; ensure key starts with `sk-ant-`. Visit https://console.anthropic.com/ to enable Claude API. Uses Claude 3 Haiku which is widely available. |
321
331
  | `Tests timing out` | Increase `TIMEOUT` in `.env` or use explicit waits in test cases |
322
332
  | `Generated code doesn't compile` | Review the natural language description for clarity; regenerate with a refined prompt |
323
333
  | `Tests pass locally but fail in CI` | Check `BASE_URL` environment variable and add debugging with screenshots |
package/dist/cli.js CHANGED
@@ -12,7 +12,7 @@ const program = new commander_1.Command();
12
12
  program
13
13
  .name("playwright-generator")
14
14
  .description("Generate Playwright test cases from natural language using LLM")
15
- .version("1.0.28");
15
+ .version("1.0.30");
16
16
  // Init command
17
17
  program
18
18
  .command("init [projectPath]")
@@ -31,7 +31,7 @@ program
31
31
  .command("generate")
32
32
  .description("Generate Playwright test code from natural language test cases")
33
33
  .option("-tc, --tc <testCaseIds>", "Comma-separated test case IDs (e.g., TC-0001,TC-0002)")
34
- .option("-m, --model <model>", "LLM model to use (copilot or claude)", "copilot")
34
+ .option("-m, --model <model>", "LLM model to use (claude, azure-openai or chatgpt)", "claude")
35
35
  .option("-o, --output <outputFile>", "Output file name (relative to generated/ folder)")
36
36
  .action(async (options) => {
37
37
  try {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,0CAAoD;AACpD,kDAAuD;AACvD,kDAA0B;AAE1B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,sBAAsB,CAAC;KAC5B,WAAW,CAAC,gEAAgE,CAAC;KAC7E,OAAO,CAAC,QAAQ,CAAC,CAAC;AAErB,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;IAC5B,MAAM,UAAU,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,IAAA,wBAAiB,EAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,mBAAmB;AACnB,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CACL,yBAAyB,EACzB,uDAAuD,CACxD;KACA,MAAM,CACL,qBAAqB,EACrB,sCAAsC,EACtC,SAAS,CACV;KACA,MAAM,CACL,2BAA2B,EAC3B,kDAAkD,CACnD;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CACT,sEAAsE,CACvE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,MAAM,IAAA,2BAAgB,EAAC,WAAW,EAAE;YAClC,WAAW;YACX,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,MAAM;SAC3B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,eAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC9B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,4BAA4B;AAC5B,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4CZ,CAAC,CACD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,0CAAoD;AACpD,kDAAuD;AACvD,kDAA0B;AAE1B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,sBAAsB,CAAC;KAC5B,WAAW,CAAC,gEAAgE,CAAC;KAC7E,OAAO,CAAC,QAAQ,CAAC,CAAC;AAErB,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;IAC5B,MAAM,UAAU,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,IAAA,wBAAiB,EAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,mBAAmB;AACnB,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CACL,yBAAyB,EACzB,uDAAuD,CACxD;KACA,MAAM,CACL,qBAAqB,EACrB,oDAAoD,EACpD,QAAQ,CACT;KACA,MAAM,CACL,2BAA2B,EAC3B,kDAAkD,CACnD;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CACT,sEAAsE,CACvE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,MAAM,IAAA,2BAAgB,EAAC,WAAW,EAAE;YAClC,WAAW;YACX,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,MAAM;SAC3B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,eAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC9B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,4BAA4B;AAC5B,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4CZ,CAAC,CACD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyU1E"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8U1E"}
@@ -27,9 +27,14 @@ async function initializeProject(projectPath) {
27
27
  }
28
28
  // Copy .env.example to project
29
29
  const envExampleContent = `# AI Model Configuration
30
- AI_MODEL=copilot
31
- COPILOT_API_KEY=
32
- CLAUDE_API_KEY=
30
+ AI_MODEL=claude # Options: claude, azure-openai
31
+ CLAUDE_API_KEY= # Required if using Claude (starts with sk-ant-)
32
+ AZURE_OPENAI_API_KEY= # Required if using Azure OpenAI
33
+ AZURE_OPENAI_ENDPOINT= # e.g. https://<resource>.openai.azure.com
34
+ AZURE_OPENAI_DEPLOYMENT= # e.g. gpt-4o
35
+ AZURE_OPENAI_API_VERSION=2024-02-01 # Optional, defaults to 2024-02-01
36
+ CHATGPT_API_KEY= # Required if using ChatGPT (starts with sk-)
37
+ CHATGPT_MODEL=gpt-4o # Optional, defaults to gpt-4o
33
38
 
34
39
  # Playwright Configuration
35
40
  BROWSER=chromium
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAIA,8CA8UC;AAlVD,gDAAwB;AACxB,wDAA0B;AAC1B,kDAA0B;AAEnB,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,sDAAsD,WAAW,KAAK,CACvE,CACF,CAAC;QAEF,6BAA6B;QAC7B,MAAM,WAAW,GAAG;YAClB,OAAO;YACP,WAAW;YACX,cAAc;YACd,OAAO;YACP,mBAAmB;YACnB,mBAAmB;SACpB,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,kBAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,+BAA+B;QAC/B,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;CAmB7B,CAAC;QACE,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC7D,MAAM,kBAAE,CAAC,SAAS,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAErD,uCAAuC;QACvC,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,kBAAE,CAAC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC5B,CAAC;QACE,MAAM,kBAAE,CAAC,SAAS,CAChB,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,EAC9C,gBAAgB,CACjB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAE3D,gDAAgD;QAChD,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,OAAO;YAChB,WAAW,EACT,+DAA+D;YACjE,OAAO,EAAE;gBACP,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,wBAAwB;gBACrC,YAAY,EAAE,mDAAmD;gBACjE,aAAa,EAAE,iCAAiC;gBAChD,cAAc,EAAE,wBAAwB;gBACxC,YAAY,EAAE,wBAAwB;gBACtC,MAAM,EAAE,wBAAwB;aACjC;YACD,eAAe,EAAE;gBACf,kBAAkB,EAAE,SAAS;gBAC7B,aAAa,EAAE,UAAU;gBACzB,MAAM,EAAE,SAAS;aAClB;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC;YACjD,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,MAAM,kBAAE,CAAC,SAAS,CAChB,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EACtC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CACrC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAEnD,uEAAuE;QACvE,MAAM,QAAQ,GAAG;YACf,eAAe,EAAE;gBACf,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,UAAU;gBAClB,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;gBACtB,MAAM,EAAE,IAAI;gBACZ,eAAe,EAAE,IAAI;gBACrB,gCAAgC,EAAE,IAAI;gBACtC,YAAY,EAAE,IAAI;gBAClB,gBAAgB,EAAE,UAAU;gBAC5B,KAAK,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC;aACnC;YACD,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB,CAAC;QAEF,MAAM,kBAAE,CAAC,SAAS,CAChB,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,EACvC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAClC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAEpD,2BAA2B;QAC3B,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGlC,CAAC;QAEE,MAAM,kBAAE,CAAC,SAAS,CAChB,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,2BAA2B,CAAC,EAC5D,sBAAsB,CACvB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAElE,iCAAiC;QACjC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BpB,CAAC;QAEE,MAAM,kBAAE,CAAC,SAAS,CAChB,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,wCAAwC,CAAC,EAChE,QAAQ,CACT,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAE9D,wCAAwC;QACxC,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG;;;;;;;;;;;;;CAavB,CAAC;YACI,MAAM,kBAAE,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CACT,+DAA+D,CAChE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
package/dist/config.d.ts CHANGED
@@ -1,7 +1,12 @@
1
1
  export interface Config {
2
- aiModel: "copilot" | "claude";
3
- copilotApiKey?: string;
2
+ aiModel: "claude" | "azure-openai" | "chatgpt";
4
3
  claudeApiKey?: string;
4
+ azureOpenAIApiKey?: string;
5
+ azureOpenAIEndpoint?: string;
6
+ azureOpenAIDeployment?: string;
7
+ azureOpenAIApiVersion?: string;
8
+ chatGPTApiKey?: string;
9
+ chatGPTModel?: string;
5
10
  browser: "chromium" | "firefox" | "webkit";
6
11
  headless: boolean;
7
12
  baseUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC,OAAO,CAAC,UAAU;IAelB,SAAS,IAAI,MAAM;IAInB,cAAc,IAAI,OAAO;IAczB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI3C,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAG5C;;AAED,wBAA2C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC,OAAO,CAAC,UAAU;IAoBlB,SAAS,IAAI,MAAM;IAInB,cAAc,IAAI,OAAO;IAkBzB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI3C,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAG5C;;AAED,wBAA2C"}
package/dist/config.js CHANGED
@@ -21,9 +21,14 @@ class ConfigManager {
21
21
  }
22
22
  loadConfig() {
23
23
  return {
24
- aiModel: process.env.AI_MODEL || "copilot",
25
- copilotApiKey: process.env.COPILOT_API_KEY,
24
+ aiModel: process.env.AI_MODEL || "claude",
26
25
  claudeApiKey: process.env.CLAUDE_API_KEY,
26
+ azureOpenAIApiKey: process.env.AZURE_OPENAI_API_KEY,
27
+ azureOpenAIEndpoint: process.env.AZURE_OPENAI_ENDPOINT,
28
+ azureOpenAIDeployment: process.env.AZURE_OPENAI_DEPLOYMENT,
29
+ azureOpenAIApiVersion: process.env.AZURE_OPENAI_API_VERSION || "2024-02-01",
30
+ chatGPTApiKey: process.env.CHATGPT_API_KEY,
31
+ chatGPTModel: process.env.CHATGPT_MODEL || "gpt-4o",
27
32
  browser: process.env.BROWSER ||
28
33
  "chromium",
29
34
  headless: process.env.HEADLESS !== "false",
@@ -36,12 +41,19 @@ class ConfigManager {
36
41
  return this.config;
37
42
  }
38
43
  validateConfig() {
39
- const { aiModel, copilotApiKey, claudeApiKey } = this.config;
40
- if (aiModel === "copilot" && !copilotApiKey) {
41
- throw new Error("COPILOT_API_KEY is required when using Copilot model");
44
+ const { aiModel, claudeApiKey, azureOpenAIApiKey, azureOpenAIEndpoint, azureOpenAIDeployment } = this.config;
45
+ if (aiModel === "azure-openai") {
46
+ if (!azureOpenAIApiKey || !azureOpenAIEndpoint || !azureOpenAIDeployment) {
47
+ throw new Error("AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT and AZURE_OPENAI_DEPLOYMENT are required when using Azure OpenAI");
48
+ }
42
49
  }
43
- if (aiModel === "claude" && !claudeApiKey) {
44
- throw new Error("CLAUDE_API_KEY is required when using Claude model");
50
+ else if (aiModel === "chatgpt") {
51
+ if (!this.config.chatGPTApiKey) {
52
+ throw new Error("CHATGPT_API_KEY is required when using ChatGPT");
53
+ }
54
+ }
55
+ else if (!claudeApiKey) {
56
+ throw new Error("CLAUDE_API_KEY is required when using Claude");
45
57
  }
46
58
  return true;
47
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,gDAAwB;AACxB,4CAAoB;AAEpB,6BAA6B;AAC7B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAahB,MAAa,aAAa;IAIxB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEO,UAAU;QAChB,OAAO;YACL,OAAO,EAAG,OAAO,CAAC,GAAG,CAAC,QAAiC,IAAI,SAAS;YACpE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;YAC1C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;YACxC,OAAO,EACJ,OAAO,CAAC,GAAG,CAAC,OAA6C;gBAC1D,UAAU;YACZ,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO;YAC1C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,uBAAuB;YACxD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,EAAE,CAAC;YACrD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,EAAE,CAAC;SAClD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,cAAc;QACZ,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7D,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,OAAO,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,OAAO,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAvDD,sCAuDC;AAED,kBAAe,aAAa,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,gDAAwB;AACxB,4CAAoB;AAEpB,6BAA6B;AAC7B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAkBhB,MAAa,aAAa;IAIxB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEO,UAAU;QAChB,OAAO;YACL,OAAO,EAAG,OAAO,CAAC,GAAG,CAAC,QAAkD,IAAI,QAAQ;YACpF,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;YACxC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;YACnD,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YACtD,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;YAC1D,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,YAAY;YAC3E,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;YAC1C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,QAAQ;YACnD,OAAO,EACJ,OAAO,CAAC,GAAG,CAAC,OAA6C;gBAC1D,UAAU;YACZ,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO;YAC1C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,uBAAuB;YACxD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,EAAE,CAAC;YACrD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,EAAE,CAAC;SAClD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,cAAc;QACZ,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7G,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,iBAAiB,IAAI,CAAC,mBAAmB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACzE,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;YAClI,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,OAAO,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,OAAO,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAhED,sCAgEC;AAED,kBAAe,aAAa,CAAC,WAAW,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { LLMProvider, LLMPrompt, GeneratedCode } from "./provider";
2
+ export declare class AzureOpenAIProvider extends LLMProvider {
3
+ private apiKey;
4
+ private endpoint;
5
+ private deploymentName;
6
+ private apiVersion;
7
+ constructor(apiKey: string, endpoint: string, deploymentName: string, apiVersion?: string);
8
+ private get url();
9
+ validateConnection(): Promise<boolean>;
10
+ generateTestCode(prompt: LLMPrompt): Promise<GeneratedCode>;
11
+ }
12
+ //# sourceMappingURL=azure-openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-openai.d.ts","sourceRoot":"","sources":["../../src/llm/azure-openai.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnE,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,SAAe;IAW/F,OAAO,KAAK,GAAG,GAEd;IAEK,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IActC,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;CA+BlE"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AzureOpenAIProvider = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const provider_1 = require("./provider");
9
+ class AzureOpenAIProvider extends provider_1.LLMProvider {
10
+ constructor(apiKey, endpoint, deploymentName, apiVersion = "2024-02-01") {
11
+ super();
12
+ if (!apiKey)
13
+ throw new Error("Azure OpenAI API key is required");
14
+ if (!endpoint)
15
+ throw new Error("Azure OpenAI endpoint is required");
16
+ if (!deploymentName)
17
+ throw new Error("Azure OpenAI deployment name is required");
18
+ this.apiKey = apiKey;
19
+ this.endpoint = endpoint.replace(/\/$/, "");
20
+ this.deploymentName = deploymentName;
21
+ this.apiVersion = apiVersion;
22
+ }
23
+ get url() {
24
+ return `${this.endpoint}/openai/deployments/${this.deploymentName}/chat/completions?api-version=${this.apiVersion}`;
25
+ }
26
+ async validateConnection() {
27
+ try {
28
+ const response = await axios_1.default.post(this.url, { messages: [{ role: "user", content: "test" }], max_tokens: 10 }, { headers: { "api-key": this.apiKey, "Content-Type": "application/json" }, timeout: 5000 });
29
+ return response.status === 200;
30
+ }
31
+ catch (error) {
32
+ console.error("Azure OpenAI connection validation failed:", error.response?.data || error.message);
33
+ return false;
34
+ }
35
+ }
36
+ async generateTestCode(prompt) {
37
+ try {
38
+ const response = await axios_1.default.post(this.url, {
39
+ messages: [{ role: "user", content: this.buildPrompt(prompt) }],
40
+ max_tokens: 2000,
41
+ temperature: 0.2,
42
+ }, {
43
+ headers: { "api-key": this.apiKey, "Content-Type": "application/json" },
44
+ timeout: 30000,
45
+ });
46
+ const generatedCode = response.data.choices?.[0]?.message?.content || "";
47
+ if (!generatedCode.trim())
48
+ throw new Error("Empty response from Azure OpenAI");
49
+ return {
50
+ code: generatedCode,
51
+ timestamp: new Date(),
52
+ model: "azure-openai",
53
+ testCaseId: prompt.testCaseId,
54
+ };
55
+ }
56
+ catch (error) {
57
+ const errorMessage = error.response
58
+ ? `HTTP ${error.response.status}: ${error.response.data?.error?.message || error.response.data}`
59
+ : error.message;
60
+ throw new Error(`Failed to generate code with Azure OpenAI: ${errorMessage}`);
61
+ }
62
+ }
63
+ }
64
+ exports.AzureOpenAIProvider = AzureOpenAIProvider;
65
+ //# sourceMappingURL=azure-openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-openai.js","sourceRoot":"","sources":["../../src/llm/azure-openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { LLMProvider, LLMPrompt, GeneratedCode } from "./provider";
2
+ export declare class ChatGPTProvider extends LLMProvider {
3
+ private apiKey;
4
+ private model;
5
+ private baseUrl;
6
+ constructor(apiKey: string, model?: string);
7
+ validateConnection(): Promise<boolean>;
8
+ generateTestCode(prompt: LLMPrompt): Promise<GeneratedCode>;
9
+ }
10
+ //# sourceMappingURL=chatgpt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatgpt.d.ts","sourceRoot":"","sources":["../../src/llm/chatgpt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnE,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAgD;gBAEnD,MAAM,EAAE,MAAM,EAAE,KAAK,SAAW;IAOtC,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IActC,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;CAgClE"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ChatGPTProvider = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const provider_1 = require("./provider");
9
+ class ChatGPTProvider extends provider_1.LLMProvider {
10
+ constructor(apiKey, model = "gpt-4o") {
11
+ super();
12
+ this.baseUrl = "https://api.openai.com/v1/chat/completions";
13
+ if (!apiKey)
14
+ throw new Error("ChatGPT API key is required");
15
+ this.apiKey = apiKey;
16
+ this.model = model;
17
+ }
18
+ async validateConnection() {
19
+ try {
20
+ const response = await axios_1.default.post(this.baseUrl, { model: this.model, messages: [{ role: "user", content: "test" }], max_tokens: 10 }, { headers: { Authorization: `Bearer ${this.apiKey}`, "Content-Type": "application/json" }, timeout: 5000 });
21
+ return response.status === 200;
22
+ }
23
+ catch (error) {
24
+ console.error("ChatGPT connection validation failed:", error.response?.data || error.message);
25
+ return false;
26
+ }
27
+ }
28
+ async generateTestCode(prompt) {
29
+ try {
30
+ const response = await axios_1.default.post(this.baseUrl, {
31
+ model: this.model,
32
+ messages: [{ role: "user", content: this.buildPrompt(prompt) }],
33
+ max_tokens: 2000,
34
+ temperature: 0.2,
35
+ }, {
36
+ headers: { Authorization: `Bearer ${this.apiKey}`, "Content-Type": "application/json" },
37
+ timeout: 30000,
38
+ });
39
+ const generatedCode = response.data.choices?.[0]?.message?.content || "";
40
+ if (!generatedCode.trim())
41
+ throw new Error("Empty response from ChatGPT");
42
+ return {
43
+ code: generatedCode,
44
+ timestamp: new Date(),
45
+ model: "chatgpt",
46
+ testCaseId: prompt.testCaseId,
47
+ };
48
+ }
49
+ catch (error) {
50
+ const errorMessage = error.response
51
+ ? `HTTP ${error.response.status}: ${error.response.data?.error?.message || error.response.data}`
52
+ : error.message;
53
+ throw new Error(`Failed to generate code with ChatGPT: ${errorMessage}`);
54
+ }
55
+ }
56
+ }
57
+ exports.ChatGPTProvider = ChatGPTProvider;
58
+ //# sourceMappingURL=chatgpt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatgpt.js","sourceRoot":"","sources":["../../src/llm/chatgpt.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yCAAmE;AAEnE,MAAa,eAAgB,SAAQ,sBAAW;IAK9C,YAAY,MAAc,EAAE,KAAK,GAAG,QAAQ;QAC1C,KAAK,EAAE,CAAC;QAHF,YAAO,GAAG,4CAA4C,CAAC;QAI7D,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,IAAI,CAAC,OAAO,EACZ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EACpF,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAC3G,CAAC;YACF,OAAO,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;QACjC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9F,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAiB;QACtC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,IAAI,CAAC,OAAO,EACZ;gBACE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/D,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,GAAG;aACjB,EACD;gBACE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBACvF,OAAO,EAAE,KAAK;aACf,CACF,CAAC;YAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAE1E,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,KAAK,EAAE,SAAS;gBAChB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ;gBACjC,CAAC,CAAC,QAAQ,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAChG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yCAAyC,YAAY,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;CACF;AA1DD,0CA0DC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKzC,qBAAa,UAAU;IACrB,MAAM,CAAC,cAAc,IAAI,WAAW;CAuBrC;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC,qBAAa,UAAU;IACrB,MAAM,CAAC,cAAc,IAAI,WAAW;CAkBrC;AAED,eAAe,UAAU,CAAC"}
package/dist/llm/index.js CHANGED
@@ -4,25 +4,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LLMFactory = void 0;
7
- const copilot_1 = require("./copilot");
8
7
  const claude_1 = require("./claude");
8
+ const azure_openai_1 = require("./azure-openai");
9
+ const chatgpt_1 = require("./chatgpt");
9
10
  const config_1 = __importDefault(require("../config"));
10
11
  class LLMFactory {
11
12
  static createProvider() {
12
13
  const config = config_1.default.getConfig();
13
- if (config.aiModel === "copilot") {
14
- if (!config.copilotApiKey) {
15
- throw new Error("Copilot API key not configured. Set COPILOT_API_KEY in .env");
16
- }
17
- return new copilot_1.CopilotProvider(config.copilotApiKey);
14
+ if (config.aiModel === "azure-openai") {
15
+ if (!config.azureOpenAIApiKey)
16
+ throw new Error("Azure OpenAI API key not configured. Set AZURE_OPENAI_API_KEY in .env");
17
+ if (!config.azureOpenAIEndpoint)
18
+ throw new Error("Azure OpenAI endpoint not configured. Set AZURE_OPENAI_ENDPOINT in .env");
19
+ if (!config.azureOpenAIDeployment)
20
+ throw new Error("Azure OpenAI deployment not configured. Set AZURE_OPENAI_DEPLOYMENT in .env");
21
+ return new azure_openai_1.AzureOpenAIProvider(config.azureOpenAIApiKey, config.azureOpenAIEndpoint, config.azureOpenAIDeployment, config.azureOpenAIApiVersion);
18
22
  }
19
- if (config.aiModel === "claude") {
20
- if (!config.claudeApiKey) {
21
- throw new Error("Claude API key not configured. Set CLAUDE_API_KEY in .env");
22
- }
23
- return new claude_1.ClaudeProvider(config.claudeApiKey);
23
+ if (config.aiModel === "chatgpt") {
24
+ if (!config.chatGPTApiKey)
25
+ throw new Error("ChatGPT API key not configured. Set CHATGPT_API_KEY in .env");
26
+ return new chatgpt_1.ChatGPTProvider(config.chatGPTApiKey, config.chatGPTModel);
24
27
  }
25
- throw new Error(`Unknown AI model: ${config.aiModel}`);
28
+ if (!config.claudeApiKey)
29
+ throw new Error("Claude API key not configured. Set CLAUDE_API_KEY in .env");
30
+ return new claude_1.ClaudeProvider(config.claudeApiKey);
26
31
  }
27
32
  }
28
33
  exports.LLMFactory = LLMFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":";;;;;;AACA,uCAA4C;AAC5C,qCAA0C;AAC1C,uDAAsC;AAEtC,MAAa,UAAU;IACrB,MAAM,CAAC,cAAc;QACnB,MAAM,MAAM,GAAG,gBAAa,CAAC,SAAS,EAAE,CAAC;QAEzC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,yBAAe,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,uBAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAxBD,gCAwBC;AAED,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":";;;;;;AACA,qCAA0C;AAC1C,iDAAqD;AACrD,uCAA4C;AAC5C,uDAAsC;AAEtC,MAAa,UAAU;IACrB,MAAM,CAAC,cAAc;QACnB,MAAM,MAAM,GAAG,gBAAa,CAAC,SAAS,EAAE,CAAC;QAEzC,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,iBAAiB;gBAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;YACxH,IAAI,CAAC,MAAM,CAAC,mBAAmB;gBAAE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC5H,IAAI,CAAC,MAAM,CAAC,qBAAqB;gBAAE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;YAClI,OAAO,IAAI,kCAAmB,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACnJ,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;YAC1G,OAAO,IAAI,yBAAe,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACvG,OAAO,IAAI,uBAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;CACF;AAnBD,gCAmBC;AAED,kBAAe,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhiweiliu/playwright-generator",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "description": "Generate Playwright test cases from natural language using LLM",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -33,11 +33,11 @@
33
33
  },
34
34
  "repository": {
35
35
  "type": "git",
36
- "url": "https://github.com/yourusername/playwright-generator.git"
36
+ "url": "https://github.com/zhiweil/playwright-generator.git"
37
37
  },
38
- "homepage": "https://github.com/yourusername/playwright-generator#readme",
38
+ "homepage": "https://github.com/zhiweil/playwright-generator#readme",
39
39
  "bugs": {
40
- "url": "https://github.com/yourusername/playwright-generator/issues"
40
+ "url": "https://github.com/zhiweil/playwright-generator/issues"
41
41
  },
42
42
  "dependencies": {
43
43
  "axios": "^1.6.0",