@cotestdev/ai-runner 0.0.5 → 0.0.6

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 (162) hide show
  1. package/dist/agents/logger.d.ts.map +1 -0
  2. package/dist/agents/logger.js.map +1 -0
  3. package/dist/agents/playwright-executor.d.ts.map +1 -0
  4. package/dist/agents/playwright-executor.js.map +1 -0
  5. package/dist/agents/tools/playwright-backend-adapter.d.ts.map +1 -0
  6. package/dist/agents/tools/playwright-backend-adapter.js.map +1 -0
  7. package/dist/agents/types.d.ts.map +1 -0
  8. package/dist/{core-infra/src → agents}/types.js.map +1 -1
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/runner.d.ts.map +1 -0
  12. package/dist/runner.js.map +1 -0
  13. package/dist/tools/index.d.ts.map +1 -0
  14. package/dist/tools/index.js.map +1 -0
  15. package/dist/tools/playwright-groups.d.ts.map +1 -0
  16. package/dist/tools/playwright-groups.js.map +1 -0
  17. package/dist/types/external.d.ts.map +1 -0
  18. package/dist/types/external.js.map +1 -0
  19. package/dist/types/index.d.ts.map +1 -0
  20. package/dist/types/index.js.map +1 -0
  21. package/package.json +2 -7
  22. package/playwright.config.ts +38 -0
  23. package/src/agents/logger.ts +20 -0
  24. package/src/agents/playwright-executor.ts +252 -0
  25. package/src/agents/tools/playwright-backend-adapter.ts +134 -0
  26. package/src/agents/tools/playwright-mcp-types.d.ts +71 -0
  27. package/src/agents/types.ts +80 -0
  28. package/src/index.ts +27 -0
  29. package/src/runner.ts +224 -0
  30. package/src/tools/index.ts +48 -0
  31. package/src/tools/playwright-groups.ts +54 -0
  32. package/src/types/external.ts +7 -0
  33. package/src/types/index.ts +118 -0
  34. package/tests/agent/test-heal-agent.spec.ts +54 -0
  35. package/tsconfig.json +26 -0
  36. package/dist/ai-runner/src/agents/logger.d.ts.map +0 -1
  37. package/dist/ai-runner/src/agents/logger.js.map +0 -1
  38. package/dist/ai-runner/src/agents/playwright-executor.d.ts.map +0 -1
  39. package/dist/ai-runner/src/agents/playwright-executor.js.map +0 -1
  40. package/dist/ai-runner/src/agents/tools/playwright-backend-adapter.d.ts.map +0 -1
  41. package/dist/ai-runner/src/agents/tools/playwright-backend-adapter.js.map +0 -1
  42. package/dist/ai-runner/src/agents/types.d.ts.map +0 -1
  43. package/dist/ai-runner/src/agents/types.js.map +0 -1
  44. package/dist/ai-runner/src/index.d.ts.map +0 -1
  45. package/dist/ai-runner/src/index.js.map +0 -1
  46. package/dist/ai-runner/src/runner.d.ts.map +0 -1
  47. package/dist/ai-runner/src/runner.js.map +0 -1
  48. package/dist/ai-runner/src/tools/index.d.ts.map +0 -1
  49. package/dist/ai-runner/src/tools/index.js.map +0 -1
  50. package/dist/ai-runner/src/tools/playwright-groups.d.ts.map +0 -1
  51. package/dist/ai-runner/src/tools/playwright-groups.js.map +0 -1
  52. package/dist/ai-runner/src/types/external.d.ts.map +0 -1
  53. package/dist/ai-runner/src/types/external.js.map +0 -1
  54. package/dist/ai-runner/src/types/index.d.ts.map +0 -1
  55. package/dist/ai-runner/src/types/index.js.map +0 -1
  56. package/dist/core-infra/src/directory-validator.d.ts +0 -29
  57. package/dist/core-infra/src/directory-validator.d.ts.map +0 -1
  58. package/dist/core-infra/src/directory-validator.js +0 -91
  59. package/dist/core-infra/src/directory-validator.js.map +0 -1
  60. package/dist/core-infra/src/index.d.ts +0 -14
  61. package/dist/core-infra/src/index.d.ts.map +0 -1
  62. package/dist/core-infra/src/index.js +0 -44
  63. package/dist/core-infra/src/index.js.map +0 -1
  64. package/dist/core-infra/src/mcp/file-mcp-manager.d.ts +0 -14
  65. package/dist/core-infra/src/mcp/file-mcp-manager.d.ts.map +0 -1
  66. package/dist/core-infra/src/mcp/file-mcp-manager.js +0 -46
  67. package/dist/core-infra/src/mcp/file-mcp-manager.js.map +0 -1
  68. package/dist/core-infra/src/mcp/index.d.ts +0 -21
  69. package/dist/core-infra/src/mcp/index.d.ts.map +0 -1
  70. package/dist/core-infra/src/mcp/index.js +0 -17
  71. package/dist/core-infra/src/mcp/index.js.map +0 -1
  72. package/dist/core-infra/src/mcp/mcp-client.d.ts +0 -128
  73. package/dist/core-infra/src/mcp/mcp-client.d.ts.map +0 -1
  74. package/dist/core-infra/src/mcp/mcp-client.js +0 -163
  75. package/dist/core-infra/src/mcp/mcp-client.js.map +0 -1
  76. package/dist/core-infra/src/mcp/mcp-manager.d.ts +0 -21
  77. package/dist/core-infra/src/mcp/mcp-manager.d.ts.map +0 -1
  78. package/dist/core-infra/src/mcp/mcp-manager.js +0 -99
  79. package/dist/core-infra/src/mcp/mcp-manager.js.map +0 -1
  80. package/dist/core-infra/src/mcp/playwright-mcp-manager.d.ts +0 -19
  81. package/dist/core-infra/src/mcp/playwright-mcp-manager.d.ts.map +0 -1
  82. package/dist/core-infra/src/mcp/playwright-mcp-manager.js +0 -121
  83. package/dist/core-infra/src/mcp/playwright-mcp-manager.js.map +0 -1
  84. package/dist/core-infra/src/model.d.ts +0 -13
  85. package/dist/core-infra/src/model.d.ts.map +0 -1
  86. package/dist/core-infra/src/model.js +0 -191
  87. package/dist/core-infra/src/model.js.map +0 -1
  88. package/dist/core-infra/src/repositories/BaseRepository.d.ts +0 -69
  89. package/dist/core-infra/src/repositories/BaseRepository.d.ts.map +0 -1
  90. package/dist/core-infra/src/repositories/BaseRepository.js +0 -213
  91. package/dist/core-infra/src/repositories/BaseRepository.js.map +0 -1
  92. package/dist/core-infra/src/repositories/DirectoryRepository.d.ts +0 -70
  93. package/dist/core-infra/src/repositories/DirectoryRepository.d.ts.map +0 -1
  94. package/dist/core-infra/src/repositories/DirectoryRepository.js +0 -336
  95. package/dist/core-infra/src/repositories/DirectoryRepository.js.map +0 -1
  96. package/dist/core-infra/src/repositories/ExplorationRepository.d.ts +0 -34
  97. package/dist/core-infra/src/repositories/ExplorationRepository.d.ts.map +0 -1
  98. package/dist/core-infra/src/repositories/ExplorationRepository.js +0 -54
  99. package/dist/core-infra/src/repositories/ExplorationRepository.js.map +0 -1
  100. package/dist/core-infra/src/repositories/FileRepository.d.ts +0 -56
  101. package/dist/core-infra/src/repositories/FileRepository.d.ts.map +0 -1
  102. package/dist/core-infra/src/repositories/FileRepository.js +0 -132
  103. package/dist/core-infra/src/repositories/FileRepository.js.map +0 -1
  104. package/dist/core-infra/src/repositories/ModelConfigRepository.d.ts +0 -38
  105. package/dist/core-infra/src/repositories/ModelConfigRepository.d.ts.map +0 -1
  106. package/dist/core-infra/src/repositories/ModelConfigRepository.js +0 -59
  107. package/dist/core-infra/src/repositories/ModelConfigRepository.js.map +0 -1
  108. package/dist/core-infra/src/repositories/ProjectRepository.d.ts +0 -32
  109. package/dist/core-infra/src/repositories/ProjectRepository.d.ts.map +0 -1
  110. package/dist/core-infra/src/repositories/ProjectRepository.js +0 -67
  111. package/dist/core-infra/src/repositories/ProjectRepository.js.map +0 -1
  112. package/dist/core-infra/src/repositories/SettingsRepository.d.ts +0 -19
  113. package/dist/core-infra/src/repositories/SettingsRepository.d.ts.map +0 -1
  114. package/dist/core-infra/src/repositories/SettingsRepository.js +0 -72
  115. package/dist/core-infra/src/repositories/SettingsRepository.js.map +0 -1
  116. package/dist/core-infra/src/repositories/TableDataRepository.d.ts +0 -22
  117. package/dist/core-infra/src/repositories/TableDataRepository.d.ts.map +0 -1
  118. package/dist/core-infra/src/repositories/TableDataRepository.js +0 -33
  119. package/dist/core-infra/src/repositories/TableDataRepository.js.map +0 -1
  120. package/dist/core-infra/src/repositories/TestCaseRepository.d.ts +0 -120
  121. package/dist/core-infra/src/repositories/TestCaseRepository.d.ts.map +0 -1
  122. package/dist/core-infra/src/repositories/TestCaseRepository.js +0 -463
  123. package/dist/core-infra/src/repositories/TestCaseRepository.js.map +0 -1
  124. package/dist/core-infra/src/repositories/TestPlanRepository.d.ts +0 -35
  125. package/dist/core-infra/src/repositories/TestPlanRepository.d.ts.map +0 -1
  126. package/dist/core-infra/src/repositories/TestPlanRepository.js +0 -80
  127. package/dist/core-infra/src/repositories/TestPlanRepository.js.map +0 -1
  128. package/dist/core-infra/src/repositories/TestResultRepository.d.ts +0 -30
  129. package/dist/core-infra/src/repositories/TestResultRepository.d.ts.map +0 -1
  130. package/dist/core-infra/src/repositories/TestResultRepository.js +0 -54
  131. package/dist/core-infra/src/repositories/TestResultRepository.js.map +0 -1
  132. package/dist/core-infra/src/repositories/index.d.ts +0 -17
  133. package/dist/core-infra/src/repositories/index.d.ts.map +0 -1
  134. package/dist/core-infra/src/repositories/index.js +0 -31
  135. package/dist/core-infra/src/repositories/index.js.map +0 -1
  136. package/dist/core-infra/src/storageService.d.ts +0 -131
  137. package/dist/core-infra/src/storageService.d.ts.map +0 -1
  138. package/dist/core-infra/src/storageService.js +0 -304
  139. package/dist/core-infra/src/storageService.js.map +0 -1
  140. package/dist/core-infra/src/types.d.ts +0 -219
  141. package/dist/core-infra/src/types.d.ts.map +0 -1
  142. package/dist/core-infra/src/types.js +0 -3
  143. /package/dist/{ai-runner/src/agents → agents}/logger.d.ts +0 -0
  144. /package/dist/{ai-runner/src/agents → agents}/logger.js +0 -0
  145. /package/dist/{ai-runner/src/agents → agents}/playwright-executor.d.ts +0 -0
  146. /package/dist/{ai-runner/src/agents → agents}/playwright-executor.js +0 -0
  147. /package/dist/{ai-runner/src/agents → agents}/tools/playwright-backend-adapter.d.ts +0 -0
  148. /package/dist/{ai-runner/src/agents → agents}/tools/playwright-backend-adapter.js +0 -0
  149. /package/dist/{ai-runner/src/agents → agents}/types.d.ts +0 -0
  150. /package/dist/{ai-runner/src/agents → agents}/types.js +0 -0
  151. /package/dist/{ai-runner/src/index.d.ts → index.d.ts} +0 -0
  152. /package/dist/{ai-runner/src/index.js → index.js} +0 -0
  153. /package/dist/{ai-runner/src/runner.d.ts → runner.d.ts} +0 -0
  154. /package/dist/{ai-runner/src/runner.js → runner.js} +0 -0
  155. /package/dist/{ai-runner/src/tools → tools}/index.d.ts +0 -0
  156. /package/dist/{ai-runner/src/tools → tools}/index.js +0 -0
  157. /package/dist/{ai-runner/src/tools → tools}/playwright-groups.d.ts +0 -0
  158. /package/dist/{ai-runner/src/tools → tools}/playwright-groups.js +0 -0
  159. /package/dist/{ai-runner/src/types → types}/external.d.ts +0 -0
  160. /package/dist/{ai-runner/src/types → types}/external.js +0 -0
  161. /package/dist/{ai-runner/src/types → types}/index.d.ts +0 -0
  162. /package/dist/{ai-runner/src/types → types}/index.js +0 -0
@@ -1,38 +0,0 @@
1
- import { BaseRepository } from './BaseRepository';
2
- import { ModelConfig } from '../types';
3
- /**
4
- * ModelConfigRepository handles all storage operations for model configurations
5
- * Responsible for managing AI model settings and credentials
6
- */
7
- export declare class ModelConfigRepository extends BaseRepository {
8
- constructor();
9
- /**
10
- * Save a model configuration
11
- */
12
- saveModelConfig(config: ModelConfig): Promise<void>;
13
- /**
14
- * Load a model configuration by ID
15
- */
16
- loadModelConfig(configId: string): Promise<ModelConfig | null>;
17
- /**
18
- * List all model configurations sorted by update time (newest first)
19
- */
20
- listModelConfigs(): Promise<ModelConfig[]>;
21
- /**
22
- * Update a model configuration
23
- */
24
- updateModelConfig(config: ModelConfig): Promise<void>;
25
- /**
26
- * Delete a model configuration
27
- */
28
- deleteModelConfig(configId: string): Promise<void>;
29
- /**
30
- * Check if a model configuration exists
31
- */
32
- exists(configId: string): Promise<boolean>;
33
- /**
34
- * List all model configurations (synchronous)
35
- */
36
- listModelConfigsSync(): ModelConfig[];
37
- }
38
- //# sourceMappingURL=ModelConfigRepository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelConfigRepository.d.ts","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/ModelConfigRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;;IAKvD;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIpE;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKhD;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhD;;OAEG;IACH,oBAAoB,IAAI,WAAW,EAAE;CAItC"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelConfigRepository = void 0;
4
- const BaseRepository_1 = require("./BaseRepository");
5
- /**
6
- * ModelConfigRepository handles all storage operations for model configurations
7
- * Responsible for managing AI model settings and credentials
8
- */
9
- class ModelConfigRepository extends BaseRepository_1.BaseRepository {
10
- constructor() {
11
- super('models');
12
- }
13
- /**
14
- * Save a model configuration
15
- */
16
- async saveModelConfig(config) {
17
- await this.save(config.id, config, 'json');
18
- }
19
- /**
20
- * Load a model configuration by ID
21
- */
22
- async loadModelConfig(configId) {
23
- return this.load(configId, 'json');
24
- }
25
- /**
26
- * List all model configurations sorted by update time (newest first)
27
- */
28
- async listModelConfigs() {
29
- const configs = await this.listAll();
30
- return configs.sort((a, b) => b.updatedAt - a.updatedAt);
31
- }
32
- /**
33
- * Update a model configuration
34
- */
35
- async updateModelConfig(config) {
36
- await this.saveModelConfig(config);
37
- }
38
- /**
39
- * Delete a model configuration
40
- */
41
- async deleteModelConfig(configId) {
42
- await this.delete(configId, 'json');
43
- }
44
- /**
45
- * Check if a model configuration exists
46
- */
47
- async exists(configId) {
48
- return this.existsSync(configId, 'json');
49
- }
50
- /**
51
- * List all model configurations (synchronous)
52
- */
53
- listModelConfigsSync() {
54
- const configs = this.listAllSync();
55
- return configs.sort((a, b) => b.updatedAt - a.updatedAt);
56
- }
57
- }
58
- exports.ModelConfigRepository = ModelConfigRepository;
59
- //# sourceMappingURL=ModelConfigRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelConfigRepository.js","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/ModelConfigRepository.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAGlD;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,+BAAc;IACvD;QACE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAmB;QACvC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAc,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAe,CAAC;QAClD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAmB;QACzC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAe,CAAC;QAChD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAvDD,sDAuDC"}
@@ -1,32 +0,0 @@
1
- import { BaseRepository } from './BaseRepository';
2
- import type { Project } from '../types';
3
- /**
4
- * ProjectRepository handles all CRUD operations for projects
5
- * Projects are stored at ~/.test_agent/projects
6
- */
7
- export declare class ProjectRepository extends BaseRepository {
8
- private projectJSON;
9
- constructor();
10
- /**
11
- * Save a new project or update an existing one
12
- */
13
- saveProject(project: Project): void;
14
- /**
15
- * Load a single project by ID
16
- */
17
- loadProject(projectId: string): Project | null;
18
- /**
19
- * List all projects
20
- */
21
- listProjects(): Project[];
22
- private listDirectories;
23
- /**
24
- * Delete a project by ID
25
- */
26
- deleteProject(projectId: string): void;
27
- /**
28
- * Check if a project exists
29
- */
30
- exists(projectId: string): Promise<boolean>;
31
- }
32
- //# sourceMappingURL=ProjectRepository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProjectRepository.d.ts","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/ProjectRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,OAAO,CAAC,WAAW,CAAqB;;IAMxC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAI9C;;OAEG;IACH,YAAY,IAAI,OAAO,EAAE;IAezB,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKtC;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAIlD"}
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProjectRepository = void 0;
4
- const path_1 = require("path");
5
- const BaseRepository_1 = require("./BaseRepository");
6
- const fs_1 = require("fs");
7
- /**
8
- * ProjectRepository handles all CRUD operations for projects
9
- * Projects are stored at ~/.test_agent/projects
10
- */
11
- class ProjectRepository extends BaseRepository_1.BaseRepository {
12
- constructor() {
13
- super('projects');
14
- this.projectJSON = "project";
15
- }
16
- /**
17
- * Save a new project or update an existing one
18
- */
19
- saveProject(project) {
20
- this.saveSync((0, path_1.join)(project.id, this.projectJSON), project);
21
- }
22
- /**
23
- * Load a single project by ID
24
- */
25
- loadProject(projectId) {
26
- return this.loadSync((0, path_1.join)(projectId, this.projectJSON));
27
- }
28
- /**
29
- * List all projects
30
- */
31
- listProjects() {
32
- const projectDir = this.getBaseDir();
33
- const projectIds = this.listDirectories(projectDir);
34
- const projects = [];
35
- for (const projectId of projectIds) {
36
- const project = this.loadSync((0, path_1.join)(projectId, this.projectJSON));
37
- if (project) {
38
- projects.push(project);
39
- }
40
- else {
41
- projects.push({ id: 'default', 'description': 'Default Project', 'name': 'Default', 'createdAt': 0, isActive: false });
42
- }
43
- }
44
- return projects;
45
- }
46
- listDirectories(dirPath) {
47
- return (0, fs_1.readdirSync)(dirPath, { withFileTypes: true })
48
- .filter(dirent => dirent.isDirectory())
49
- .map(dirent => dirent.name);
50
- }
51
- /**
52
- * Delete a project by ID
53
- */
54
- deleteProject(projectId) {
55
- const projectDir = this.getBaseDir();
56
- (0, fs_1.rmSync)((0, path_1.join)(projectDir, projectId), { recursive: true });
57
- }
58
- /**
59
- * Check if a project exists
60
- */
61
- async exists(projectId) {
62
- const project = this.loadProject((0, path_1.join)(projectId, this.projectJSON));
63
- return project !== null;
64
- }
65
- }
66
- exports.ProjectRepository = ProjectRepository;
67
- //# sourceMappingURL=ProjectRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProjectRepository.js","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/ProjectRepository.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,qDAAkD;AAElD,2BAAyC;AAEzC;;;GAGG;AACH,MAAa,iBAAkB,SAAQ,+BAAc;IAGnD;QACE,KAAK,CAAC,UAAU,CAAC,CAAC;QAHZ,gBAAW,GAAW,SAAS,CAAC;IAIxC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAgB;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAU,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,YAAY;QACV,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAU,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAC1E,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACzH,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,eAAe,CAAC,OAAe;QACrC,OAAO,IAAA,gBAAW,EAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACjD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;aACtC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAAiB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,IAAA,WAAM,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACpE,OAAO,OAAO,KAAK,IAAI,CAAC;IAC1B,CAAC;CACF;AA5DD,8CA4DC"}
@@ -1,19 +0,0 @@
1
- import { BaseRepository } from './BaseRepository';
2
- import { AppSettings } from '../types';
3
- /**
4
- * SettingsRepository handles all storage operations for application settings
5
- * Responsible for managing user preferences and configuration
6
- */
7
- export declare class SettingsRepository extends BaseRepository {
8
- private readonly SETTINGS_ID;
9
- constructor();
10
- /**
11
- * Save application settings
12
- */
13
- saveSettings(settings: AppSettings): Promise<void>;
14
- /**
15
- * Load application settings
16
- */
17
- loadSettings(): Promise<AppSettings | null>;
18
- }
19
- //# sourceMappingURL=SettingsRepository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsRepository.d.ts","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/SettingsRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;;IAM1C;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;CAUlD"}
@@ -1,72 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.SettingsRepository = void 0;
37
- const BaseRepository_1 = require("./BaseRepository");
38
- /**
39
- * SettingsRepository handles all storage operations for application settings
40
- * Responsible for managing user preferences and configuration
41
- */
42
- class SettingsRepository extends BaseRepository_1.BaseRepository {
43
- constructor() {
44
- super('.');
45
- this.SETTINGS_ID = 'settings';
46
- }
47
- /**
48
- * Save application settings
49
- */
50
- async saveSettings(settings) {
51
- // Save at root of storage directory
52
- const path = `${this.storageDir}/settings.json`;
53
- const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
54
- await fs.writeFile(path, JSON.stringify(settings, null, 2), 'utf-8');
55
- }
56
- /**
57
- * Load application settings
58
- */
59
- async loadSettings() {
60
- const path = `${this.storageDir}/settings.json`;
61
- try {
62
- const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
63
- const content = await fs.readFile(path, 'utf-8');
64
- return JSON.parse(content);
65
- }
66
- catch {
67
- return null;
68
- }
69
- }
70
- }
71
- exports.SettingsRepository = SettingsRepository;
72
- //# sourceMappingURL=SettingsRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsRepository.js","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/SettingsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAkD;AAGlD;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,+BAAc;IAGpD;QACE,KAAK,CAAC,GAAG,CAAC,CAAC;QAHI,gBAAW,GAAG,UAAU,CAAC;IAI1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAqB;QACtC,oCAAoC;QACpC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,gBAAgB,CAAC;QAChD,MAAM,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;QACvC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,gBAAgB,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AA9BD,gDA8BC"}
@@ -1,22 +0,0 @@
1
- import { BaseRepository } from './BaseRepository';
2
- import type { TableData } from '../types';
3
- /**
4
- * TableDataRepository handles storage operations for test table data
5
- * Stores table data in data directory as {testId}.json
6
- */
7
- export declare class TableDataRepository extends BaseRepository {
8
- constructor(projectId: string);
9
- /**
10
- * Save table data for a test
11
- */
12
- saveTableData(tableData: TableData): Promise<void>;
13
- /**
14
- * Load table data for a test
15
- */
16
- loadTableData(testId: string): Promise<TableData | null>;
17
- /**
18
- * Delete table data for a test
19
- */
20
- deleteTableData(testId: string): Promise<void>;
21
- }
22
- //# sourceMappingURL=TableDataRepository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableDataRepository.d.ts","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/TableDataRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;gBACzC,SAAS,EAAE,MAAM;IAI7B;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAI9D;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TableDataRepository = void 0;
4
- const BaseRepository_1 = require("./BaseRepository");
5
- /**
6
- * TableDataRepository handles storage operations for test table data
7
- * Stores table data in data directory as {testId}.json
8
- */
9
- class TableDataRepository extends BaseRepository_1.BaseRepository {
10
- constructor(projectId) {
11
- super(`projects/${projectId}/data`);
12
- }
13
- /**
14
- * Save table data for a test
15
- */
16
- async saveTableData(tableData) {
17
- await this.save(tableData.testId, tableData);
18
- }
19
- /**
20
- * Load table data for a test
21
- */
22
- async loadTableData(testId) {
23
- return this.load(testId);
24
- }
25
- /**
26
- * Delete table data for a test
27
- */
28
- async deleteTableData(testId) {
29
- await this.delete(testId);
30
- }
31
- }
32
- exports.TableDataRepository = TableDataRepository;
33
- //# sourceMappingURL=TableDataRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableDataRepository.js","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/TableDataRepository.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAGlD;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,+BAAc;IACrD,YAAY,SAAiB;QAC3B,KAAK,CAAC,YAAY,SAAS,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAoB;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,OAAO,IAAI,CAAC,IAAI,CAAY,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF;AAzBD,kDAyBC"}
@@ -1,120 +0,0 @@
1
- import { BaseRepository } from './BaseRepository';
2
- import { TestCase, TestStep, TestDirectory } from '../types';
3
- /**
4
- * TestCaseRepository handles all storage operations for test cases
5
- * Responsible for managing test case data, steps, and associated scripts
6
- * Supports hierarchical directory organization (up to 3 levels)
7
- */
8
- export declare class TestCaseRepository extends BaseRepository {
9
- constructor(projectId: string);
10
- /**
11
- * Get scripts directory - project-aware
12
- * When project is active: ~/.test_agent/projects/{projectId}/scripts
13
- * When no project: ~/.test_agent/scripts
14
- */
15
- private getScriptsDir;
16
- /**
17
- * Get steps directory - project-aware
18
- * When project is active: ~/.test_agent/projects/{projectId}/steps
19
- * When no project: ~/.test_agent/steps
20
- */
21
- private getStepsDir;
22
- /**
23
- * Ensure scripts directory exists
24
- */
25
- private ensureScriptsDir;
26
- /**
27
- * Ensure steps directory exists
28
- */
29
- private ensureStepsDir;
30
- /**
31
- * Save a test case with support for directory paths
32
- */
33
- saveTestCase(testCase: TestCase): void;
34
- /**
35
- * Load a test case with its steps and script
36
- */
37
- loadTestCase(testId: string, path?: string): TestCase | null;
38
- /**
39
- * Recursively find a test case file by ID
40
- */
41
- private findTestCaseFile;
42
- /**
43
- * List all test cases sorted by creation date (newest first)
44
- * Returns a hierarchical directory tree
45
- */
46
- listTestCases(): TestCase[];
47
- /**
48
- * Build complete directory tree
49
- */
50
- buildDirectoryTree(): TestDirectory;
51
- /**
52
- * Recursively build directory tree
53
- */
54
- private buildDirectoryTreeRecursive;
55
- /**
56
- * List test cases in a specific directory recursively.
57
- * Loads full test data including steps
58
- */
59
- listTestCasesRecursively(dirPath: string, seen?: Set<string>): TestCase[];
60
- /**
61
- * List test cases in a specific directory
62
- */
63
- private listTestCasesInDirectory;
64
- /**
65
- * Delete a test case and its associated data
66
- */
67
- deleteTestCase(testId: string): void;
68
- /**
69
- * Save test case steps
70
- */
71
- saveTestSteps(testId: string, steps: TestStep[]): void;
72
- /**
73
- * Load test case steps
74
- */
75
- loadTestSteps(testId: string): TestStep[];
76
- /**
77
- * Delete all steps for a test case
78
- */
79
- private deleteTestSteps;
80
- updateStepBreakPoint(testId: string, id: string, isBreakpoint?: boolean): void;
81
- /**
82
- * Save a single test step or insert a new one
83
- * @returns true if updated, false if created
84
- */
85
- saveTestStep(testId: string, step: {
86
- id: string;
87
- description?: string;
88
- isBreakpoint?: boolean;
89
- }, afterStepId?: string): boolean;
90
- /**
91
- * Insert a new step after a specific step
92
- */
93
- insertStep(testId: string, afterStepId: string | null | undefined, newStep: TestStep): void;
94
- /**
95
- * Delete a specific step by ID
96
- */
97
- deleteStep(testId: string, stepId: string): boolean;
98
- /**
99
- * Save Playwright script for a test case
100
- */
101
- saveTestScript(testId: string, script: string): void;
102
- /**
103
- * Load Playwright script for a test case
104
- */
105
- loadTestScript(testId: string): string | undefined;
106
- hasTestScript(testId: string): boolean;
107
- /**
108
- * Delete Playwright script for a test case
109
- */
110
- private deleteTestScript;
111
- /**
112
- * Get the file path for a test step file
113
- */
114
- private getStepsFilePath;
115
- /**
116
- * Get the file path for a test script file
117
- */
118
- private getScriptFilePath;
119
- }
120
- //# sourceMappingURL=TestCaseRepository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TestCaseRepository.d.ts","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/TestCaseRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI7D;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;gBACxC,SAAS,EAAE,MAAM;IAI7B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAMrB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAmBtC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAoC5D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;;OAGG;IACH,aAAa,IAAI,QAAQ,EAAE;IAI3B;;OAEG;IACH,kBAAkB,IAAI,aAAa;IAInC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAuEnC;;;KAGC;IACD,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,QAAQ,EAAE;IA+BpF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA6BhC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASpC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAkBtD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IASzC;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IASvE;;;OAGG;IACH,YAAY,CACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,EAClE,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO;IAuCV;;OAEG;IACH,UAAU,CACR,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,OAAO,EAAE,QAAQ,GAChB,IAAI;IAsBP;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAsBnD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQpD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQlD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}