@cotestdev/ai-runner 0.0.5 → 0.0.7

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 (164) hide show
  1. package/.github/workflows/playwright.yml +27 -0
  2. package/dist/agents/logger.d.ts.map +1 -0
  3. package/dist/agents/logger.js.map +1 -0
  4. package/dist/{ai-runner/src/agents → agents}/playwright-executor.d.ts +3 -1
  5. package/dist/agents/playwright-executor.d.ts.map +1 -0
  6. package/dist/{ai-runner/src/agents → agents}/playwright-executor.js +74 -18
  7. package/dist/agents/playwright-executor.js.map +1 -0
  8. package/dist/agents/tools/playwright-backend-adapter.d.ts.map +1 -0
  9. package/dist/{ai-runner/src/agents → agents}/tools/playwright-backend-adapter.js +2 -1
  10. package/dist/agents/tools/playwright-backend-adapter.js.map +1 -0
  11. package/dist/agents/types.d.ts.map +1 -0
  12. package/dist/{core-infra/src → agents}/types.js.map +1 -1
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/{ai-runner/src/runner.d.ts → runner.d.ts} +7 -2
  16. package/dist/runner.d.ts.map +1 -0
  17. package/dist/{ai-runner/src/runner.js → runner.js} +23 -12
  18. package/dist/runner.js.map +1 -0
  19. package/dist/tools/index.d.ts.map +1 -0
  20. package/dist/tools/index.js.map +1 -0
  21. package/dist/tools/playwright-groups.d.ts.map +1 -0
  22. package/dist/tools/playwright-groups.js.map +1 -0
  23. package/dist/types/external.d.ts.map +1 -0
  24. package/dist/types/external.js.map +1 -0
  25. package/dist/types/index.d.ts.map +1 -0
  26. package/dist/types/index.js.map +1 -0
  27. package/package.json +5 -9
  28. package/playwright.config.ts +38 -0
  29. package/src/agents/logger.ts +20 -0
  30. package/src/agents/playwright-executor.ts +284 -0
  31. package/src/agents/tools/playwright-backend-adapter.ts +135 -0
  32. package/src/agents/tools/playwright-mcp-types.d.ts +72 -0
  33. package/src/agents/types.ts +80 -0
  34. package/src/index.ts +27 -0
  35. package/src/runner.ts +237 -0
  36. package/src/tools/index.ts +48 -0
  37. package/src/tools/playwright-groups.ts +54 -0
  38. package/src/types/external.ts +7 -0
  39. package/src/types/index.ts +118 -0
  40. package/tests/agent/playwright.config.ts +32 -0
  41. package/tests/agent/test-heal-agent.spec.ts +42 -0
  42. package/tsconfig.json +26 -0
  43. package/dist/ai-runner/src/agents/logger.d.ts.map +0 -1
  44. package/dist/ai-runner/src/agents/logger.js.map +0 -1
  45. package/dist/ai-runner/src/agents/playwright-executor.d.ts.map +0 -1
  46. package/dist/ai-runner/src/agents/playwright-executor.js.map +0 -1
  47. package/dist/ai-runner/src/agents/tools/playwright-backend-adapter.d.ts.map +0 -1
  48. package/dist/ai-runner/src/agents/tools/playwright-backend-adapter.js.map +0 -1
  49. package/dist/ai-runner/src/agents/types.d.ts.map +0 -1
  50. package/dist/ai-runner/src/agents/types.js.map +0 -1
  51. package/dist/ai-runner/src/index.d.ts.map +0 -1
  52. package/dist/ai-runner/src/index.js.map +0 -1
  53. package/dist/ai-runner/src/runner.d.ts.map +0 -1
  54. package/dist/ai-runner/src/runner.js.map +0 -1
  55. package/dist/ai-runner/src/tools/index.d.ts.map +0 -1
  56. package/dist/ai-runner/src/tools/index.js.map +0 -1
  57. package/dist/ai-runner/src/tools/playwright-groups.d.ts.map +0 -1
  58. package/dist/ai-runner/src/tools/playwright-groups.js.map +0 -1
  59. package/dist/ai-runner/src/types/external.d.ts.map +0 -1
  60. package/dist/ai-runner/src/types/external.js.map +0 -1
  61. package/dist/ai-runner/src/types/index.d.ts.map +0 -1
  62. package/dist/ai-runner/src/types/index.js.map +0 -1
  63. package/dist/core-infra/src/directory-validator.d.ts +0 -29
  64. package/dist/core-infra/src/directory-validator.d.ts.map +0 -1
  65. package/dist/core-infra/src/directory-validator.js +0 -91
  66. package/dist/core-infra/src/directory-validator.js.map +0 -1
  67. package/dist/core-infra/src/index.d.ts +0 -14
  68. package/dist/core-infra/src/index.d.ts.map +0 -1
  69. package/dist/core-infra/src/index.js +0 -44
  70. package/dist/core-infra/src/index.js.map +0 -1
  71. package/dist/core-infra/src/mcp/file-mcp-manager.d.ts +0 -14
  72. package/dist/core-infra/src/mcp/file-mcp-manager.d.ts.map +0 -1
  73. package/dist/core-infra/src/mcp/file-mcp-manager.js +0 -46
  74. package/dist/core-infra/src/mcp/file-mcp-manager.js.map +0 -1
  75. package/dist/core-infra/src/mcp/index.d.ts +0 -21
  76. package/dist/core-infra/src/mcp/index.d.ts.map +0 -1
  77. package/dist/core-infra/src/mcp/index.js +0 -17
  78. package/dist/core-infra/src/mcp/index.js.map +0 -1
  79. package/dist/core-infra/src/mcp/mcp-client.d.ts +0 -128
  80. package/dist/core-infra/src/mcp/mcp-client.d.ts.map +0 -1
  81. package/dist/core-infra/src/mcp/mcp-client.js +0 -163
  82. package/dist/core-infra/src/mcp/mcp-client.js.map +0 -1
  83. package/dist/core-infra/src/mcp/mcp-manager.d.ts +0 -21
  84. package/dist/core-infra/src/mcp/mcp-manager.d.ts.map +0 -1
  85. package/dist/core-infra/src/mcp/mcp-manager.js +0 -99
  86. package/dist/core-infra/src/mcp/mcp-manager.js.map +0 -1
  87. package/dist/core-infra/src/mcp/playwright-mcp-manager.d.ts +0 -19
  88. package/dist/core-infra/src/mcp/playwright-mcp-manager.d.ts.map +0 -1
  89. package/dist/core-infra/src/mcp/playwright-mcp-manager.js +0 -121
  90. package/dist/core-infra/src/mcp/playwright-mcp-manager.js.map +0 -1
  91. package/dist/core-infra/src/model.d.ts +0 -13
  92. package/dist/core-infra/src/model.d.ts.map +0 -1
  93. package/dist/core-infra/src/model.js +0 -191
  94. package/dist/core-infra/src/model.js.map +0 -1
  95. package/dist/core-infra/src/repositories/BaseRepository.d.ts +0 -69
  96. package/dist/core-infra/src/repositories/BaseRepository.d.ts.map +0 -1
  97. package/dist/core-infra/src/repositories/BaseRepository.js +0 -213
  98. package/dist/core-infra/src/repositories/BaseRepository.js.map +0 -1
  99. package/dist/core-infra/src/repositories/DirectoryRepository.d.ts +0 -70
  100. package/dist/core-infra/src/repositories/DirectoryRepository.d.ts.map +0 -1
  101. package/dist/core-infra/src/repositories/DirectoryRepository.js +0 -336
  102. package/dist/core-infra/src/repositories/DirectoryRepository.js.map +0 -1
  103. package/dist/core-infra/src/repositories/ExplorationRepository.d.ts +0 -34
  104. package/dist/core-infra/src/repositories/ExplorationRepository.d.ts.map +0 -1
  105. package/dist/core-infra/src/repositories/ExplorationRepository.js +0 -54
  106. package/dist/core-infra/src/repositories/ExplorationRepository.js.map +0 -1
  107. package/dist/core-infra/src/repositories/FileRepository.d.ts +0 -56
  108. package/dist/core-infra/src/repositories/FileRepository.d.ts.map +0 -1
  109. package/dist/core-infra/src/repositories/FileRepository.js +0 -132
  110. package/dist/core-infra/src/repositories/FileRepository.js.map +0 -1
  111. package/dist/core-infra/src/repositories/ModelConfigRepository.d.ts +0 -38
  112. package/dist/core-infra/src/repositories/ModelConfigRepository.d.ts.map +0 -1
  113. package/dist/core-infra/src/repositories/ModelConfigRepository.js +0 -59
  114. package/dist/core-infra/src/repositories/ModelConfigRepository.js.map +0 -1
  115. package/dist/core-infra/src/repositories/ProjectRepository.d.ts +0 -32
  116. package/dist/core-infra/src/repositories/ProjectRepository.d.ts.map +0 -1
  117. package/dist/core-infra/src/repositories/ProjectRepository.js +0 -67
  118. package/dist/core-infra/src/repositories/ProjectRepository.js.map +0 -1
  119. package/dist/core-infra/src/repositories/SettingsRepository.d.ts +0 -19
  120. package/dist/core-infra/src/repositories/SettingsRepository.d.ts.map +0 -1
  121. package/dist/core-infra/src/repositories/SettingsRepository.js +0 -72
  122. package/dist/core-infra/src/repositories/SettingsRepository.js.map +0 -1
  123. package/dist/core-infra/src/repositories/TableDataRepository.d.ts +0 -22
  124. package/dist/core-infra/src/repositories/TableDataRepository.d.ts.map +0 -1
  125. package/dist/core-infra/src/repositories/TableDataRepository.js +0 -33
  126. package/dist/core-infra/src/repositories/TableDataRepository.js.map +0 -1
  127. package/dist/core-infra/src/repositories/TestCaseRepository.d.ts +0 -120
  128. package/dist/core-infra/src/repositories/TestCaseRepository.d.ts.map +0 -1
  129. package/dist/core-infra/src/repositories/TestCaseRepository.js +0 -463
  130. package/dist/core-infra/src/repositories/TestCaseRepository.js.map +0 -1
  131. package/dist/core-infra/src/repositories/TestPlanRepository.d.ts +0 -35
  132. package/dist/core-infra/src/repositories/TestPlanRepository.d.ts.map +0 -1
  133. package/dist/core-infra/src/repositories/TestPlanRepository.js +0 -80
  134. package/dist/core-infra/src/repositories/TestPlanRepository.js.map +0 -1
  135. package/dist/core-infra/src/repositories/TestResultRepository.d.ts +0 -30
  136. package/dist/core-infra/src/repositories/TestResultRepository.d.ts.map +0 -1
  137. package/dist/core-infra/src/repositories/TestResultRepository.js +0 -54
  138. package/dist/core-infra/src/repositories/TestResultRepository.js.map +0 -1
  139. package/dist/core-infra/src/repositories/index.d.ts +0 -17
  140. package/dist/core-infra/src/repositories/index.d.ts.map +0 -1
  141. package/dist/core-infra/src/repositories/index.js +0 -31
  142. package/dist/core-infra/src/repositories/index.js.map +0 -1
  143. package/dist/core-infra/src/storageService.d.ts +0 -131
  144. package/dist/core-infra/src/storageService.d.ts.map +0 -1
  145. package/dist/core-infra/src/storageService.js +0 -304
  146. package/dist/core-infra/src/storageService.js.map +0 -1
  147. package/dist/core-infra/src/types.d.ts +0 -219
  148. package/dist/core-infra/src/types.d.ts.map +0 -1
  149. package/dist/core-infra/src/types.js +0 -3
  150. /package/dist/{ai-runner/src/agents → agents}/logger.d.ts +0 -0
  151. /package/dist/{ai-runner/src/agents → agents}/logger.js +0 -0
  152. /package/dist/{ai-runner/src/agents → agents}/tools/playwright-backend-adapter.d.ts +0 -0
  153. /package/dist/{ai-runner/src/agents → agents}/types.d.ts +0 -0
  154. /package/dist/{ai-runner/src/agents → agents}/types.js +0 -0
  155. /package/dist/{ai-runner/src/index.d.ts → index.d.ts} +0 -0
  156. /package/dist/{ai-runner/src/index.js → index.js} +0 -0
  157. /package/dist/{ai-runner/src/tools → tools}/index.d.ts +0 -0
  158. /package/dist/{ai-runner/src/tools → tools}/index.js +0 -0
  159. /package/dist/{ai-runner/src/tools → tools}/playwright-groups.d.ts +0 -0
  160. /package/dist/{ai-runner/src/tools → tools}/playwright-groups.js +0 -0
  161. /package/dist/{ai-runner/src/types → types}/external.d.ts +0 -0
  162. /package/dist/{ai-runner/src/types → types}/external.js +0 -0
  163. /package/dist/{ai-runner/src/types → types}/index.d.ts +0 -0
  164. /package/dist/{ai-runner/src/types → types}/index.js +0 -0
@@ -1,34 +0,0 @@
1
- import { BaseRepository } from './BaseRepository';
2
- import { ExplorationRecord } from '../types';
3
- /**
4
- * ExplorationRepository handles all storage operations for exploration records
5
- * Responsible for managing web exploration and test generation history
6
- */
7
- export declare class ExplorationRepository extends BaseRepository {
8
- constructor(projectId: string);
9
- /**
10
- * Save an exploration record
11
- */
12
- saveExplorationRecord(record: ExplorationRecord): Promise<void>;
13
- /**
14
- * Load an exploration record by ID
15
- */
16
- loadExplorationRecord(recordId: string): Promise<ExplorationRecord | null>;
17
- /**
18
- * List all exploration records sorted by start time (newest first)
19
- */
20
- listExplorationRecords(): Promise<ExplorationRecord[]>;
21
- /**
22
- * Update an exploration record
23
- */
24
- updateExplorationRecord(record: ExplorationRecord): Promise<void>;
25
- /**
26
- * Delete an exploration record
27
- */
28
- deleteExplorationRecord(recordId: string): Promise<void>;
29
- /**
30
- * Get exploration records for a specific URL
31
- */
32
- getRecordsByUrl(url: string): Promise<ExplorationRecord[]>;
33
- }
34
- //# sourceMappingURL=ExplorationRepository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExplorationRepository.d.ts","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/ExplorationRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;gBACzC,SAAS,EAAE,MAAM;IAI/B;;OAEG;IACG,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE;;OAEG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAIhF;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAK5D;;OAEG;IACG,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE;;OAEG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D;;OAEG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAIjE"}
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExplorationRepository = void 0;
4
- const path_1 = require("path");
5
- const BaseRepository_1 = require("./BaseRepository");
6
- /**
7
- * ExplorationRepository handles all storage operations for exploration records
8
- * Responsible for managing web exploration and test generation history
9
- */
10
- class ExplorationRepository extends BaseRepository_1.BaseRepository {
11
- constructor(projectId) {
12
- super((0, path_1.join)("projects", projectId, 'explorations'));
13
- }
14
- /**
15
- * Save an exploration record
16
- */
17
- async saveExplorationRecord(record) {
18
- await this.save(record.id, record, 'json');
19
- }
20
- /**
21
- * Load an exploration record by ID
22
- */
23
- async loadExplorationRecord(recordId) {
24
- return this.load(recordId, 'json');
25
- }
26
- /**
27
- * List all exploration records sorted by start time (newest first)
28
- */
29
- async listExplorationRecords() {
30
- const records = await this.listAll();
31
- return records.sort((a, b) => b.startedAt - a.startedAt);
32
- }
33
- /**
34
- * Update an exploration record
35
- */
36
- async updateExplorationRecord(record) {
37
- await this.saveExplorationRecord(record);
38
- }
39
- /**
40
- * Delete an exploration record
41
- */
42
- async deleteExplorationRecord(recordId) {
43
- await this.delete(recordId, 'json');
44
- }
45
- /**
46
- * Get exploration records for a specific URL
47
- */
48
- async getRecordsByUrl(url) {
49
- const records = await this.listExplorationRecords();
50
- return records.filter(r => r.url === url);
51
- }
52
- }
53
- exports.ExplorationRepository = ExplorationRepository;
54
- //# sourceMappingURL=ExplorationRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExplorationRepository.js","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/ExplorationRepository.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,qDAAkD;AAGlD;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,+BAAc;IACrD,YAAY,SAAiB;QAC7B,KAAK,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAyB;QACnD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,QAAgB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAoB,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB;QAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAqB,CAAC;QACxD,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,uBAAuB,CAAC,MAAyB;QACrD,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAAC,QAAgB;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,GAAW;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAC5C,CAAC;CACF;AAhDD,sDAgDC"}
@@ -1,56 +0,0 @@
1
- export interface FileInfo {
2
- name: string;
3
- size: number;
4
- uploadedAt: string;
5
- path: string;
6
- }
7
- /**
8
- * FileRepository - Handles file storage for test cases
9
- * Each test case has its own files directory
10
- */
11
- export declare class FileRepository {
12
- private projectId;
13
- private filesBaseDir;
14
- constructor(projectId: string);
15
- /**
16
- * Ensure base files directory exists
17
- */
18
- private ensureBaseDir;
19
- /**
20
- * Get files directory for a specific test case
21
- */
22
- getTestFilesDir(testId: string): string;
23
- /**
24
- * Ensure test files directory exists
25
- */
26
- private ensureTestFilesDir;
27
- /**
28
- * Save a file for a test case
29
- */
30
- saveFile(testId: string, fileName: string, content: Buffer): FileInfo;
31
- /**
32
- * Load a file for a test case
33
- */
34
- loadFile(testId: string, fileName: string): Buffer | null;
35
- /**
36
- * List all files for a test case
37
- */
38
- listFiles(testId: string): FileInfo[];
39
- /**
40
- * Delete a file for a test case
41
- */
42
- deleteFile(testId: string, fileName: string): boolean;
43
- /**
44
- * Delete all files for a test case
45
- */
46
- deleteAllFiles(testId: string): void;
47
- /**
48
- * Check if a file exists
49
- */
50
- fileExists(testId: string, fileName: string): boolean;
51
- /**
52
- * Get file info
53
- */
54
- getFileInfo(testId: string, fileName: string): FileInfo | null;
55
- }
56
- //# sourceMappingURL=FileRepository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileRepository.d.ts","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/FileRepository.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;gBAEjB,SAAS,EAAE,MAAM;IAM7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIvC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ;IAerE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQzD;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAmBrC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IASrD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQpC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKrD;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;CAc/D"}
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FileRepository = void 0;
4
- const fs_1 = require("fs");
5
- const path_1 = require("path");
6
- const os_1 = require("os");
7
- const STORAGE_DIR = (0, path_1.join)((0, os_1.homedir)(), '.test_agent');
8
- /**
9
- * FileRepository - Handles file storage for test cases
10
- * Each test case has its own files directory
11
- */
12
- class FileRepository {
13
- constructor(projectId) {
14
- this.projectId = projectId;
15
- this.filesBaseDir = (0, path_1.join)(STORAGE_DIR, 'projects', projectId, 'files');
16
- this.ensureBaseDir();
17
- }
18
- /**
19
- * Ensure base files directory exists
20
- */
21
- ensureBaseDir() {
22
- if (!(0, fs_1.existsSync)(this.filesBaseDir)) {
23
- (0, fs_1.mkdirSync)(this.filesBaseDir, { recursive: true });
24
- }
25
- }
26
- /**
27
- * Get files directory for a specific test case
28
- */
29
- getTestFilesDir(testId) {
30
- return (0, path_1.join)(this.filesBaseDir, testId);
31
- }
32
- /**
33
- * Ensure test files directory exists
34
- */
35
- ensureTestFilesDir(testId) {
36
- const dir = this.getTestFilesDir(testId);
37
- if (!(0, fs_1.existsSync)(dir)) {
38
- (0, fs_1.mkdirSync)(dir, { recursive: true });
39
- }
40
- }
41
- /**
42
- * Save a file for a test case
43
- */
44
- saveFile(testId, fileName, content) {
45
- this.ensureTestFilesDir(testId);
46
- const filePath = (0, path_1.join)(this.getTestFilesDir(testId), fileName);
47
- (0, fs_1.writeFileSync)(filePath, content);
48
- const stats = (0, fs_1.statSync)(filePath);
49
- return {
50
- name: fileName,
51
- size: stats.size,
52
- uploadedAt: new Date().toISOString(),
53
- path: filePath,
54
- };
55
- }
56
- /**
57
- * Load a file for a test case
58
- */
59
- loadFile(testId, fileName) {
60
- const filePath = (0, path_1.join)(this.getTestFilesDir(testId), fileName);
61
- if (!(0, fs_1.existsSync)(filePath)) {
62
- return null;
63
- }
64
- return (0, fs_1.readFileSync)(filePath);
65
- }
66
- /**
67
- * List all files for a test case
68
- */
69
- listFiles(testId) {
70
- const dir = this.getTestFilesDir(testId);
71
- if (!(0, fs_1.existsSync)(dir)) {
72
- return [];
73
- }
74
- const files = (0, fs_1.readdirSync)(dir);
75
- return files.map(fileName => {
76
- const filePath = (0, path_1.join)(dir, fileName);
77
- const stats = (0, fs_1.statSync)(filePath);
78
- return {
79
- name: fileName,
80
- size: stats.size,
81
- uploadedAt: stats.mtime.toISOString(),
82
- path: filePath,
83
- };
84
- });
85
- }
86
- /**
87
- * Delete a file for a test case
88
- */
89
- deleteFile(testId, fileName) {
90
- const filePath = (0, path_1.join)(this.getTestFilesDir(testId), fileName);
91
- if (!(0, fs_1.existsSync)(filePath)) {
92
- return false;
93
- }
94
- (0, fs_1.unlinkSync)(filePath);
95
- return true;
96
- }
97
- /**
98
- * Delete all files for a test case
99
- */
100
- deleteAllFiles(testId) {
101
- const dir = this.getTestFilesDir(testId);
102
- if (!(0, fs_1.existsSync)(dir)) {
103
- return;
104
- }
105
- (0, fs_1.rmSync)(dir, { recursive: true });
106
- }
107
- /**
108
- * Check if a file exists
109
- */
110
- fileExists(testId, fileName) {
111
- const filePath = (0, path_1.join)(this.getTestFilesDir(testId), fileName);
112
- return (0, fs_1.existsSync)(filePath);
113
- }
114
- /**
115
- * Get file info
116
- */
117
- getFileInfo(testId, fileName) {
118
- const filePath = (0, path_1.join)(this.getTestFilesDir(testId), fileName);
119
- if (!(0, fs_1.existsSync)(filePath)) {
120
- return null;
121
- }
122
- const stats = (0, fs_1.statSync)(filePath);
123
- return {
124
- name: fileName,
125
- size: stats.size,
126
- uploadedAt: stats.mtime.toISOString(),
127
- path: filePath,
128
- };
129
- }
130
- }
131
- exports.FileRepository = FileRepository;
132
- //# sourceMappingURL=FileRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileRepository.js","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/FileRepository.ts"],"names":[],"mappings":"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"}
@@ -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"}