@cotestdev/ai-runner 0.0.2 → 0.0.4

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.
Files changed (77) hide show
  1. package/dist/ai-runner/src/runner.d.ts +1 -1
  2. package/dist/ai-runner/src/runner.d.ts.map +1 -1
  3. package/dist/ai-runner/src/runner.js +6 -1
  4. package/dist/ai-runner/src/runner.js.map +1 -1
  5. package/package.json +1 -1
  6. package/src/runner.ts +6 -1
  7. package/tests/agent/test-heal-agent.spec.ts +40 -57
  8. package/dist/agents/heal-agent.d.ts +0 -30
  9. package/dist/agents/heal-agent.d.ts.map +0 -1
  10. package/dist/agents/heal-agent.js +0 -76
  11. package/dist/agents/heal-agent.js.map +0 -1
  12. package/dist/agents/healer.d.ts +0 -73
  13. package/dist/agents/healer.d.ts.map +0 -1
  14. package/dist/agents/healer.js +0 -538
  15. package/dist/agents/healer.js.map +0 -1
  16. package/dist/agents/tools/form.d.ts +0 -22
  17. package/dist/agents/tools/form.d.ts.map +0 -1
  18. package/dist/agents/tools/form.js +0 -134
  19. package/dist/agents/tools/form.js.map +0 -1
  20. package/dist/agents/tools/index.d.ts +0 -13
  21. package/dist/agents/tools/index.d.ts.map +0 -1
  22. package/dist/agents/tools/index.js +0 -33
  23. package/dist/agents/tools/index.js.map +0 -1
  24. package/dist/agents/tools/navigate.d.ts +0 -22
  25. package/dist/agents/tools/navigate.d.ts.map +0 -1
  26. package/dist/agents/tools/navigate.js +0 -74
  27. package/dist/agents/tools/navigate.js.map +0 -1
  28. package/dist/agents/tools/snapshot.d.ts +0 -22
  29. package/dist/agents/tools/snapshot.d.ts.map +0 -1
  30. package/dist/agents/tools/snapshot.js +0 -110
  31. package/dist/agents/tools/snapshot.js.map +0 -1
  32. package/dist/agents/tools/verify.d.ts +0 -34
  33. package/dist/agents/tools/verify.d.ts.map +0 -1
  34. package/dist/agents/tools/verify.js +0 -169
  35. package/dist/agents/tools/verify.js.map +0 -1
  36. package/dist/agents/tools/wait.d.ts +0 -22
  37. package/dist/agents/tools/wait.d.ts.map +0 -1
  38. package/dist/agents/tools/wait.js +0 -104
  39. package/dist/agents/tools/wait.js.map +0 -1
  40. package/dist/agents/types.d.ts +0 -51
  41. package/dist/agents/types.d.ts.map +0 -1
  42. package/dist/agents/types.js +0 -6
  43. package/dist/agents/types.js.map +0 -1
  44. package/dist/ai-runner/src/examples/test-final.d.ts +0 -6
  45. package/dist/ai-runner/src/examples/test-final.d.ts.map +0 -1
  46. package/dist/ai-runner/src/examples/test-final.js +0 -73
  47. package/dist/ai-runner/src/examples/test-final.js.map +0 -1
  48. package/dist/ai-runner/src/examples/test-simple-tools.d.ts +0 -6
  49. package/dist/ai-runner/src/examples/test-simple-tools.d.ts.map +0 -1
  50. package/dist/ai-runner/src/examples/test-simple-tools.js +0 -149
  51. package/dist/ai-runner/src/examples/test-simple-tools.js.map +0 -1
  52. package/dist/ai-runner/src/examples/test-working.d.ts +0 -5
  53. package/dist/ai-runner/src/examples/test-working.d.ts.map +0 -1
  54. package/dist/ai-runner/src/examples/test-working.js +0 -43
  55. package/dist/ai-runner/src/examples/test-working.js.map +0 -1
  56. package/dist/ai-runner/src/examples/v-test-backend-adapter.d.ts +0 -15
  57. package/dist/ai-runner/src/examples/v-test-backend-adapter.d.ts.map +0 -1
  58. package/dist/ai-runner/src/examples/v-test-backend-adapter.js +0 -240
  59. package/dist/ai-runner/src/examples/v-test-backend-adapter.js.map +0 -1
  60. package/dist/core/runner.d.ts +0 -194
  61. package/dist/core/runner.d.ts.map +0 -1
  62. package/dist/core/runner.js +0 -650
  63. package/dist/core/runner.js.map +0 -1
  64. package/dist/index.d.ts +0 -8
  65. package/dist/index.d.ts.map +0 -1
  66. package/dist/index.js +0 -11
  67. package/dist/index.js.map +0 -1
  68. package/dist/types/external.d.ts +0 -6
  69. package/dist/types/external.d.ts.map +0 -1
  70. package/dist/types/external.js +0 -7
  71. package/dist/types/external.js.map +0 -1
  72. package/dist/types/index.d.ts +0 -153
  73. package/dist/types/index.d.ts.map +0 -1
  74. package/dist/types/index.js +0 -26
  75. package/dist/types/index.js.map +0 -1
  76. package/docs/PLAYWRIGHT_MCP_ADAPTER.md +0 -132
  77. package/docs/SCHEMA_EXTRACTION.md +0 -224
@@ -11,7 +11,7 @@ export declare class Runner {
11
11
  private variables;
12
12
  private constructor();
13
13
  static NewInstance(projectId: string, testCaseId: string): Runner;
14
- init(page: Page, context: BrowserContext): Promise<void>;
14
+ init(page: Page, context: BrowserContext, data?: Record<string, any>): Promise<void>;
15
15
  private loadOriginalScript;
16
16
  forEach(data: Record<string, any>[], callback: (index: number) => void): void;
17
17
  runStep(description: string, fn: () => Promise<void>): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAUvD,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAoB;IAClC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAA4C;IAE7D,OAAO;IAMP,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IA2B3D,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc;IAiB9C,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;IAUhE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAyC1D,OAAO,CAAC,eAAe;IAsBvB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAIlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAIrB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,MAAM,EAAE;IAIhB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3B,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CA2B3F"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAUvD,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAoB;IAClC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAA4C;IAE7D,OAAO;IAMP,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IA2B3D,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1F,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;IAUhE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAyC1D,OAAO,CAAC,eAAe;IAsBvB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAIlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAIrB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,MAAM,EAAE;IAIhB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3B,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CA2B3F"}
@@ -40,7 +40,7 @@ class Runner {
40
40
  }
41
41
  return runner;
42
42
  }
43
- async init(page, context) {
43
+ async init(page, context, data) {
44
44
  const adapter = await playwright_backend_adapter_1.PlaywrightBackendAdapter.create(context);
45
45
  this.state = {
46
46
  page,
@@ -54,6 +54,11 @@ class Runner {
54
54
  testCaseId: this.config.testCaseId,
55
55
  storageService: this.storageService,
56
56
  };
57
+ if (data) {
58
+ for (const [key, value] of Object.entries(data)) {
59
+ this.set(key, value);
60
+ }
61
+ }
57
62
  this.executor = new playwright_executor_1.PlaywrightExecutor(this.state);
58
63
  }
59
64
  loadOriginalScript() {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cotestdev/ai-runner",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "AI-powered self-healing SDK for Playwright test scripts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/runner.ts CHANGED
@@ -57,7 +57,7 @@ export class Runner {
57
57
  return runner;
58
58
  }
59
59
 
60
- async init(page: Page, context: BrowserContext) {
60
+ async init(page: Page, context: BrowserContext, data?: Record<string, any>): Promise<void> {
61
61
  const adapter = await PlaywrightBackendAdapter.create(context);
62
62
  this.state = {
63
63
  page,
@@ -71,6 +71,11 @@ export class Runner {
71
71
  testCaseId: this.config.testCaseId,
72
72
  storageService: this.storageService,
73
73
  };
74
+ if (data) {
75
+ for (const [key, value] of Object.entries(data)) {
76
+ this.set(key, value);
77
+ }
78
+ }
74
79
  this.executor = new PlaywrightExecutor(this.state);
75
80
  }
76
81
 
@@ -1,70 +1,53 @@
1
- /**
2
- * Self-healing Agent Test
3
- */
4
1
 
5
2
  import { test, expect } from '@playwright/test';
6
- import { Runner } from '../../src/index';
7
- test.describe('Self-healing Agent Test', () => {
8
- test.setTimeout(10000000)
9
- // const runner = Runner.NewInstance('12c57655-0ae2-4580-92f8-b4dc2388a7f5','71692142-7170-4246-898f-21a650dfa6d5');
10
- const runner = Runner.NewInstance('43af4db4-3249-4135-b279-97b24f27106b', '13bcfb12-4add-4b7d-ac4b-b46a4280141c');
11
- // test(`'Self-healing Agent Test 1`, async ({ page, context }) => {
12
- // runner.init(page, context)
3
+ import { Runner } from '@cotestdev/ai-runner';
13
4
 
14
- // await runner.runStep('导航到登录页面', async () => {
15
- // await page.goto('https://practice.expandtesting.com/login', { timeout: 1000000 });
16
- // });
5
+ test.describe(`Register user`, () => {
6
+ const runner = Runner.NewInstance('43af4db4-3249-4135-b279-97b24f27106b', '2e189c6f-6c2b-4086-8fe7-837bf1a6b1df');
17
7
 
18
- // await runner.runStep('填写登录信息并提交', async () => {
19
- // // const username = runner.get('username');
20
- // // const password = runner.get('password');
21
-
22
- // const username = 'practice';
23
- // const password = 'ExpandTesting@123';
24
- // await page.locator('input[name="user_name"]').fill(username, { timeout: 3000 });
25
- // await page.locator('input[name="password"]').fill(password, { timeout: 3000 });
26
- // runner.set('current_url', await page.url())
27
- // await page.getByRole('button', { name: 'Login' }).click();
28
- // });
8
+ test.afterEach(async () => {
9
+ runner.clear();
10
+ });
29
11
 
30
- // await runner.runStep('验证登录成功', async () => {
31
- // await expect(runner.get('current_url')).toBeEmpty
32
- // await expect(page).toHaveURL(/secure/);
33
- // await expect(page.locator('h1')).toContainText(runner.get('username'));
34
- // await expect(page.locator('h3')).toContainText('Hi, practice!');
35
- // await expect(page.locator('div.alert')).toContainText('You logged into a secure area!');
36
- // await expect(page.getByRole('link', { name: 'Logout' })).toBeVisible();
37
- // });
38
- // });
39
- runner.forEach([
40
- { username: 'practice', password: 'ExpandTesting@123' },
41
- ], (index) => {
42
- test.afterEach(async () => {
43
- runner.clear(); // 假设 runner 支持
44
- });
45
- test(`${index + 1}`, async ({ page, context }) => {
46
- runner.init(page, context)
12
+ [
13
+ {
14
+ "password": "abcd1234"
15
+ }
16
+ ].forEach((data, index) => {
17
+ test(`#${index + 1}`, async ({ page, context }) => {
18
+ await runner.init(page, context, data);
47
19
 
48
- await runner.runStep('导航到登录页面', async () => {
49
- await page.goto('https://practice.expandtesting.com/login', { timeout: 1000000 });
20
+ await runner.runStep('进入注册页面', async () => {
21
+ await page.goto('https://practice.expandtesting.com/register');
50
22
  });
51
23
 
52
- await runner.runStep('填写登录信息并提交', async () => {
53
- const username = runner.get('username');
54
- const password = runner.get('password');
55
- await page.locator('input[name="user_name"]').fill(username, { timeout: 3000 });
56
- await page.locator('input[name="password"]').fill(password, { timeout: 3000 });
57
- // runner.set('current_url', await page.url())
58
- await page.getByRole('button', { name: 'Login' }).click();
24
+ await runner.runStep('填写并提交注册信息,用户名使用唯一格式(如未提供则自动生成)', async () => {
25
+ // 获取测试参数中的用户名和密码,如未提供用户名则自动生成
26
+ let username: string;
27
+ if (runner.has('username')) {
28
+ username = runner.get('username');
29
+ } else {
30
+ const timestamp = Date.now();
31
+ username = `user${timestamp}`;
32
+ }
33
+ const password = runner.get('password') || 'abcd1234';
34
+
35
+ // 填写注册表单
36
+ await page.locator('input[type="text"]').first().fill(username);
37
+ await page.locator('input[type="password"]').first().fill(password);
38
+ await page.locator('input[type="password"]').nth(1).fill(password);
39
+
40
+ // 提交注册表单
41
+ await page.getByRole('button', { name: 'Register' }).click();
42
+
43
+ // 设置输出参数
44
+ runner.set('username', username);
59
45
  });
60
46
 
61
- await runner.runStep('验证登录成功', async () => {
62
- await expect(runner.get('current_url')).toBeEmpty
63
- await expect(page).toHaveURL(/secure/);
64
- await expect(page.locator('h1')).toContainText(runner.get('username'));
65
- await expect(page.locator('h3')).toContainText('Hi, practice!');
66
- await expect(page.locator('div.alert')).toContainText('You logged into a secure area!');
67
- await expect(page.getByRole('link', { name: 'Logout' })).toBeVisible();
47
+ await runner.runStep('确认注册成功', async () => {
48
+ // 验证注册成功后跳转到登录页面或显示成功提示
49
+ await expect(page).toHaveURL(/login/);
50
+ await expect(page.locator('.alert-success')).toContainText('Registration successful');
68
51
  });
69
52
  });
70
53
  });
@@ -1,30 +0,0 @@
1
- /**
2
- * 自愈 Agent
3
- * 使用 LangChain 的 Healer 执行 ReAct 循环
4
- */
5
- import type { HealAgentState, HealAgentResult, HealAgentConfig } from './types';
6
- /**
7
- * 自愈 Agent
8
- * 使用 LLM + ReAct 循环实现智能自愈
9
- */
10
- export declare class HealAgent {
11
- private config;
12
- private healer?;
13
- constructor(config?: HealAgentConfig);
14
- /**
15
- * 执行自愈
16
- *
17
- * 使用 Healer 通过 ReAct 循环执行自愈任务
18
- * - Thought: 分析错误和目标
19
- * - Action: 调用 Playwright 工具执行操作
20
- * - Observation: 观察工具执行结果
21
- * - Reflection: 判断是否继续或结束
22
- * - 循环直到成功或达到最大步数
23
- */
24
- heal(state: HealAgentState): Promise<HealAgentResult>;
25
- /**
26
- * 日志输出
27
- */
28
- private log;
29
- }
30
- //# sourceMappingURL=heal-agent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heal-agent.d.ts","sourceRoot":"","sources":["../../src/agents/heal-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAGhF;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,MAAM,GAAE,eAAoB;IAoBxC;;;;;;;;;OASG;IACG,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IA8B3D;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- /**
3
- * 自愈 Agent
4
- * 使用 LangChain 的 Healer 执行 ReAct 循环
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.HealAgent = void 0;
8
- const healer_1 = require("./healer");
9
- /**
10
- * 自愈 Agent
11
- * 使用 LLM + ReAct 循环实现智能自愈
12
- */
13
- class HealAgent {
14
- constructor(config = {}) {
15
- this.config = {
16
- maxSteps: config.maxSteps ?? 20,
17
- debugMode: config.debugMode ?? false,
18
- model: config.model,
19
- setVariable: config.setVariable,
20
- getAllVariables: config.getAllVariables
21
- };
22
- // 如果提供了模型配置,初始化 Healer
23
- if (this.config.model) {
24
- this.healer = new healer_1.Healer(this.config.model, {
25
- maxSteps: this.config.maxSteps,
26
- debugMode: this.config.debugMode,
27
- setVariable: this.config.setVariable,
28
- getAllVariables: this.config.getAllVariables
29
- });
30
- }
31
- }
32
- /**
33
- * 执行自愈
34
- *
35
- * 使用 Healer 通过 ReAct 循环执行自愈任务
36
- * - Thought: 分析错误和目标
37
- * - Action: 调用 Playwright 工具执行操作
38
- * - Observation: 观察工具执行结果
39
- * - Reflection: 判断是否继续或结束
40
- * - 循环直到成功或达到最大步数
41
- */
42
- async heal(state) {
43
- this.log('[HealAgent] ========== 开始自愈流程 ==========');
44
- this.log(`[HealAgent] 目标: ${state.objective}`);
45
- this.log(`[HealAgent] 错误: ${state.error}`);
46
- this.log(`[HealAgent] 最大步数: ${state.maxSteps || this.config.maxSteps}`);
47
- this.log(`[HealAgent] 模式: ${this.healer ? 'LLM Healer' : '未配置'}`);
48
- if (!this.healer) {
49
- const errorMsg = 'Healer 未初始化,请提供 model 配置';
50
- this.log(`[HealAgent] ❌ ${errorMsg}`);
51
- return {
52
- success: false,
53
- errorMessage: errorMsg,
54
- reasoning: '未配置模型,无法执行自愈',
55
- steps: 0,
56
- updatedVariables: {}
57
- };
58
- }
59
- this.log('[HealAgent] 使用 Healer(LLM Agent)');
60
- const result = await this.healer.execute(state);
61
- this.log(`[HealAgent] 执行结果: ${result.success ? '成功 ✅' : '失败 ❌'}`);
62
- this.log(`[HealAgent] 执行步数: ${result.steps}`);
63
- this.log('[HealAgent] ========== 自愈流程结束 ==========\n');
64
- return result;
65
- }
66
- /**
67
- * 日志输出
68
- */
69
- log(message) {
70
- if (this.config.debugMode) {
71
- console.log(message);
72
- }
73
- }
74
- }
75
- exports.HealAgent = HealAgent;
76
- //# sourceMappingURL=heal-agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heal-agent.js","sourceRoot":"","sources":["../../src/agents/heal-agent.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,qCAAkC;AAElC;;;GAGG;AACH,MAAa,SAAS;IAIpB,YAAY,SAA0B,EAAE;QACtC,IAAI,CAAC,MAAM,GAAG;YACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;YACpC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC;QAEF,uBAAuB;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC1C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;aAC7C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CAAC,KAAqB;QAC9B,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,0BAA0B,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;YAEtC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,QAAQ;gBACtB,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAE,CAAC;gBACR,gBAAgB,EAAE,EAAE;aACrB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAEvD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,GAAG,CAAC,OAAe;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;CACF;AAxED,8BAwEC"}
@@ -1,73 +0,0 @@
1
- /**
2
- * Healer - 测试自愈代理
3
- * 使用 LangChain 的 createAgent API 实现 ReAct 循环
4
- *
5
- * 参考:https://www.npmjs.com/package/langchain
6
- */
7
- import type { HealAgentState, HealAgentResult } from './types';
8
- import type { ModelConfig } from '../types/external';
9
- export declare class Healer {
10
- private modelConfig;
11
- private maxSteps;
12
- private debugMode;
13
- private reactSteps;
14
- private setVariableCallback?;
15
- private getAllVariablesCallback?;
16
- constructor(modelConfig: ModelConfig, config?: {
17
- maxSteps?: number;
18
- debugMode?: boolean;
19
- setVariable?: (name: string, value: any) => void;
20
- getAllVariables?: () => Record<string, any>;
21
- });
22
- /**
23
- * 默认的 setVariable 方法(当没有提供回调时使用)
24
- */
25
- private defaultSetVariable;
26
- /**
27
- * 默认的 getAllVariables 方法(当没有提供回调时使用)
28
- */
29
- private defaultGetAllVariables;
30
- /**
31
- * 执行自愈(使用 LangChain createAgent API)
32
- */
33
- execute(state: HealAgentState): Promise<HealAgentResult>;
34
- /**
35
- * 记录 Thought 步骤
36
- */
37
- private recordThoughtStep;
38
- /**
39
- * 记录 Action 步骤
40
- */
41
- private recordActionStep;
42
- /**
43
- * 记录 Observation 步骤
44
- */
45
- private recordObservationStep;
46
- /**
47
- * 创建带日志输出的 Playwright 工具
48
- */
49
- private createPlaywrightToolsWithLogging;
50
- /**
51
- * 创建 LLM 实例
52
- */
53
- private createLLM;
54
- /**
55
- * 构建系统提示
56
- */
57
- private buildSystemPrompt;
58
- /**
59
- * 构建用户消息
60
- */
61
- private buildUserMessage;
62
- /**
63
- * 判断是否成功
64
- * TODO: 后续优化成功判断逻辑,支持更多场景
65
- */
66
- private isSuccess;
67
- /**
68
- * 提取推理过程
69
- * TODO: 后续优化推理过程提取,支持更详细的分析
70
- */
71
- private extractReasoning;
72
- }
73
- //# sourceMappingURL=healer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"healer.d.ts","sourceRoot":"","sources":["../../src/agents/healer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAyDrD,qBAAa,MAAM;IACjB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,mBAAmB,CAAC,CAAqC;IACjE,OAAO,CAAC,uBAAuB,CAAC,CAA4B;gBAEhD,WAAW,EAAE,WAAW,EAAE,MAAM,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAO;IAQ5L;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAoK9D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;OAEG;IACH,OAAO,CAAC,gCAAgC;IA8CxC;;OAEG;IACH,OAAO,CAAC,SAAS;IA4BjB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkFzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;;OAGG;IACH,OAAO,CAAC,SAAS;IA6BjB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAmEzB"}