@empiricalrun/test-gen 0.75.0 → 0.77.0

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 (254) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/agent/base/index.d.ts +32 -21
  3. package/dist/agent/base/index.d.ts.map +1 -1
  4. package/dist/agent/base/index.js +100 -57
  5. package/dist/agent/browsing/run.d.ts +1 -2
  6. package/dist/agent/browsing/run.d.ts.map +1 -1
  7. package/dist/agent/browsing/run.js +3 -9
  8. package/dist/agent/browsing/utils.d.ts +2 -9
  9. package/dist/agent/browsing/utils.d.ts.map +1 -1
  10. package/dist/agent/browsing/utils.js +5 -109
  11. package/dist/agent/chat/agent-loop.d.ts +8 -7
  12. package/dist/agent/chat/agent-loop.d.ts.map +1 -1
  13. package/dist/agent/chat/agent-loop.js +7 -18
  14. package/dist/agent/chat/exports.d.ts +9 -6
  15. package/dist/agent/chat/exports.d.ts.map +1 -1
  16. package/dist/agent/chat/exports.js +11 -13
  17. package/dist/agent/chat/index.d.ts +6 -10
  18. package/dist/agent/chat/index.d.ts.map +1 -1
  19. package/dist/agent/chat/index.js +117 -196
  20. package/dist/agent/chat/models.d.ts +0 -2
  21. package/dist/agent/chat/models.d.ts.map +1 -1
  22. package/dist/agent/chat/models.js +12 -26
  23. package/dist/agent/chat/prompt/pw-utils-docs.d.ts +1 -1
  24. package/dist/agent/chat/prompt/pw-utils-docs.d.ts.map +1 -1
  25. package/dist/agent/chat/prompt/pw-utils-docs.js +52 -0
  26. package/dist/agent/chat/prompt/repo.d.ts.map +1 -1
  27. package/dist/agent/chat/prompt/repo.js +11 -22
  28. package/dist/agent/chat/prompt/test-case-def.d.ts +2 -0
  29. package/dist/agent/chat/prompt/test-case-def.d.ts.map +1 -0
  30. package/dist/agent/chat/prompt/test-case-def.js +44 -0
  31. package/dist/agent/chat/state.d.ts +8 -8
  32. package/dist/agent/chat/state.d.ts.map +1 -1
  33. package/dist/agent/chat/state.js +17 -47
  34. package/dist/agent/chat/utils.d.ts +4 -5
  35. package/dist/agent/chat/utils.d.ts.map +1 -1
  36. package/dist/agent/chat/utils.js +15 -9
  37. package/dist/agent/cli.d.ts +11 -0
  38. package/dist/agent/cli.d.ts.map +1 -0
  39. package/dist/agent/cli.js +213 -0
  40. package/dist/agent/code-review/executor/index.d.ts +5 -0
  41. package/dist/agent/code-review/executor/index.d.ts.map +1 -0
  42. package/dist/agent/code-review/executor/index.js +13 -0
  43. package/dist/agent/code-review/index.d.ts +12 -0
  44. package/dist/agent/code-review/index.d.ts.map +1 -0
  45. package/dist/agent/code-review/index.js +159 -0
  46. package/dist/agent/code-review/parser.d.ts +5 -0
  47. package/dist/agent/code-review/parser.d.ts.map +1 -0
  48. package/dist/agent/code-review/parser.js +70 -0
  49. package/dist/agent/code-review/types.d.ts +36 -0
  50. package/dist/agent/code-review/types.d.ts.map +1 -0
  51. package/dist/agent/code-review/types.js +13 -0
  52. package/dist/agent/cua/index.d.ts.map +1 -1
  53. package/dist/agent/cua/index.js +18 -2
  54. package/dist/agent/cua/model.d.ts.map +1 -1
  55. package/dist/agent/cua/model.js +4 -1
  56. package/dist/agent/cua/pw-codegen/pw-pause/index.d.ts.map +1 -1
  57. package/dist/agent/index.d.ts +10 -0
  58. package/dist/agent/index.d.ts.map +1 -0
  59. package/dist/agent/index.js +19 -0
  60. package/dist/agent/triage/index.d.ts +7 -0
  61. package/dist/agent/triage/index.d.ts.map +1 -0
  62. package/dist/agent/triage/index.js +103 -0
  63. package/dist/agent/video-analysis/executor/index.d.ts +5 -0
  64. package/dist/agent/video-analysis/executor/index.d.ts.map +1 -0
  65. package/dist/agent/video-analysis/executor/index.js +10 -0
  66. package/dist/agent/video-analysis/index.d.ts +7 -0
  67. package/dist/agent/video-analysis/index.d.ts.map +1 -0
  68. package/dist/agent/video-analysis/index.js +60 -0
  69. package/dist/artifacts/index.d.ts +1 -1
  70. package/dist/artifacts/index.d.ts.map +1 -1
  71. package/dist/artifacts/index.js +3 -1
  72. package/dist/artifacts/utils.d.ts.map +1 -1
  73. package/dist/bin/index.js +68 -23
  74. package/dist/constants/index.d.ts +14 -0
  75. package/dist/constants/index.d.ts.map +1 -1
  76. package/dist/constants/index.js +33 -1
  77. package/dist/file/server.d.ts +1 -3
  78. package/dist/file/server.d.ts.map +1 -1
  79. package/dist/file/server.js +0 -13
  80. package/dist/file-info/adapters/file-system/index.d.ts.map +1 -1
  81. package/dist/file-info/adapters/file-system/reader.d.ts.map +1 -1
  82. package/dist/file-info/adapters/file-system/reader.js +8 -1
  83. package/dist/file-info/adapters/github/index.d.ts.map +1 -1
  84. package/dist/file-info/adapters/github/index.js +1 -2
  85. package/dist/file-info/adapters/github/reader.d.ts +4 -9
  86. package/dist/file-info/adapters/github/reader.d.ts.map +1 -1
  87. package/dist/file-info/adapters/github/reader.js +166 -134
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/tools/analyse-video/index.d.ts +5 -0
  90. package/dist/tools/analyse-video/index.d.ts.map +1 -0
  91. package/dist/tools/analyse-video/index.js +50 -0
  92. package/dist/tools/create-pull-request/index.d.ts.map +1 -0
  93. package/dist/tools/{definitions/commit-and-create-pr.js → create-pull-request/index.js} +28 -1
  94. package/dist/tools/create-pull-request/utils.d.ts +21 -0
  95. package/dist/tools/create-pull-request/utils.d.ts.map +1 -0
  96. package/dist/tools/create-pull-request/utils.js +83 -0
  97. package/dist/tools/definitions/{fetch-video-analysis.d.ts → analyse-video.d.ts} +17 -12
  98. package/dist/tools/definitions/analyse-video.d.ts.map +1 -0
  99. package/dist/tools/definitions/analyse-video.js +60 -0
  100. package/dist/tools/definitions/review-pull-request.d.ts +3 -0
  101. package/dist/tools/definitions/review-pull-request.d.ts.map +1 -0
  102. package/dist/tools/definitions/review-pull-request.js +16 -0
  103. package/dist/tools/definitions/str_replace_editor.d.ts +1 -0
  104. package/dist/tools/definitions/str_replace_editor.d.ts.map +1 -1
  105. package/dist/tools/definitions/str_replace_editor.js +4 -1
  106. package/dist/tools/definitions/test-gen-browser.d.ts +0 -3
  107. package/dist/tools/definitions/test-gen-browser.d.ts.map +1 -1
  108. package/dist/tools/definitions/test-gen-browser.js +33 -8
  109. package/dist/tools/delete-file/index.d.ts.map +1 -1
  110. package/dist/tools/delete-file/index.js +1 -19
  111. package/dist/tools/executor/base.d.ts +32 -0
  112. package/dist/tools/executor/base.d.ts.map +1 -0
  113. package/dist/tools/executor/base.js +114 -0
  114. package/dist/tools/executor/index.d.ts +3 -22
  115. package/dist/tools/executor/index.d.ts.map +1 -1
  116. package/dist/tools/executor/index.js +13 -92
  117. package/dist/tools/executor/utils/checkpoint.d.ts +1 -1
  118. package/dist/tools/executor/utils/checkpoint.d.ts.map +1 -1
  119. package/dist/tools/executor/utils/checkpoint.js +6 -2
  120. package/dist/tools/executor/utils/git.d.ts +2 -2
  121. package/dist/tools/executor/utils/git.d.ts.map +1 -1
  122. package/dist/tools/executor/utils/git.js +7 -3
  123. package/dist/tools/executor/utils/index.d.ts.map +1 -1
  124. package/dist/tools/executor/utils/index.js +1 -1
  125. package/dist/tools/fetch-session-diff/index.d.ts +3 -0
  126. package/dist/tools/fetch-session-diff/index.d.ts.map +1 -0
  127. package/dist/tools/fetch-session-diff/index.js +46 -0
  128. package/dist/tools/file-operations/create.d.ts.map +1 -1
  129. package/dist/tools/file-operations/create.js +1 -4
  130. package/dist/tools/file-operations/index.d.ts +2 -1
  131. package/dist/tools/file-operations/index.d.ts.map +1 -1
  132. package/dist/tools/file-operations/index.js +4 -1
  133. package/dist/tools/file-operations/insert.d.ts +1 -2
  134. package/dist/tools/file-operations/insert.d.ts.map +1 -1
  135. package/dist/tools/file-operations/insert.js +1 -4
  136. package/dist/tools/file-operations/replace.d.ts.map +1 -1
  137. package/dist/tools/file-operations/replace.js +1 -4
  138. package/dist/tools/grep/index.d.ts.map +1 -1
  139. package/dist/tools/grep/index.js +18 -11
  140. package/dist/tools/index.d.ts +28 -2
  141. package/dist/tools/index.d.ts.map +1 -1
  142. package/dist/tools/index.js +52 -33
  143. package/dist/tools/merge-conflicts/index.d.ts.map +1 -1
  144. package/dist/tools/merge-conflicts/index.js +1 -1
  145. package/dist/tools/rename-file/index.js +1 -1
  146. package/dist/tools/review-pull-request/index.d.ts +3 -0
  147. package/dist/tools/review-pull-request/index.d.ts.map +1 -0
  148. package/dist/tools/review-pull-request/index.js +89 -0
  149. package/dist/tools/run-test.d.ts.map +1 -1
  150. package/dist/tools/run-test.js +25 -3
  151. package/dist/tools/test-gen-browser.d.ts.map +1 -1
  152. package/dist/tools/test-gen-browser.js +51 -47
  153. package/dist/tools/test-run-fetcher/index.d.ts.map +1 -1
  154. package/dist/tools/test-run-fetcher/index.js +4 -14
  155. package/dist/tools/utils/urls.d.ts +5 -0
  156. package/dist/tools/utils/urls.d.ts.map +1 -0
  157. package/dist/tools/utils/urls.js +19 -0
  158. package/dist/tools/view-failed-test-run-report/index.d.ts.map +1 -1
  159. package/dist/tools/view-failed-test-run-report/index.js +3 -15
  160. package/dist/utils/artifact-paths.d.ts +20 -0
  161. package/dist/utils/artifact-paths.d.ts.map +1 -0
  162. package/dist/utils/artifact-paths.js +16 -0
  163. package/dist/utils/dedup-image-fs.d.ts +2 -16
  164. package/dist/utils/dedup-image-fs.d.ts.map +1 -1
  165. package/dist/utils/dedup-image-fs.js +12 -16
  166. package/dist/utils/dedup-image.d.ts +1 -14
  167. package/dist/utils/dedup-image.d.ts.map +1 -1
  168. package/dist/utils/dedup-image.js +7 -62
  169. package/dist/{tools/fetch-video-analysis/local-ffmpeg-client.d.ts → utils/ffmpeg/index.d.ts} +9 -6
  170. package/dist/utils/ffmpeg/index.d.ts.map +1 -0
  171. package/dist/utils/ffmpeg/index.js +415 -0
  172. package/dist/utils/file.d.ts +1 -0
  173. package/dist/utils/file.d.ts.map +1 -1
  174. package/dist/utils/file.js +45 -1
  175. package/dist/utils/find-threshold.d.ts +8 -0
  176. package/dist/utils/find-threshold.d.ts.map +1 -0
  177. package/dist/utils/find-threshold.js +55 -0
  178. package/dist/utils/hash.d.ts +2 -0
  179. package/dist/utils/hash.d.ts.map +1 -0
  180. package/dist/utils/hash.js +24 -0
  181. package/dist/utils/model.d.ts +1 -1
  182. package/dist/utils/model.d.ts.map +1 -1
  183. package/dist/utils/model.js +7 -5
  184. package/dist/utils/repo-tree.d.ts +0 -1
  185. package/dist/utils/repo-tree.d.ts.map +1 -1
  186. package/dist/utils/repo-tree.js +2 -14
  187. package/dist/utils/slug.js +1 -1
  188. package/dist/video-core/agent-orchestrator.d.ts +14 -0
  189. package/dist/video-core/agent-orchestrator.d.ts.map +1 -0
  190. package/dist/video-core/agent-orchestrator.js +78 -0
  191. package/dist/video-core/analysis-server.d.ts +24 -0
  192. package/dist/video-core/analysis-server.d.ts.map +1 -0
  193. package/dist/video-core/analysis-server.js +398 -0
  194. package/dist/video-core/analysis-viewer.html +1374 -0
  195. package/dist/video-core/index.d.ts +44 -0
  196. package/dist/video-core/index.d.ts.map +1 -0
  197. package/dist/video-core/index.js +204 -0
  198. package/dist/video-core/model-limits.d.ts +4 -0
  199. package/dist/video-core/model-limits.d.ts.map +1 -0
  200. package/dist/video-core/model-limits.js +67 -0
  201. package/dist/video-core/storage-manager.d.ts +5 -0
  202. package/dist/video-core/storage-manager.d.ts.map +1 -0
  203. package/dist/video-core/storage-manager.js +55 -0
  204. package/dist/video-core/types.d.ts +13 -0
  205. package/dist/video-core/types.d.ts.map +1 -0
  206. package/dist/video-core/types.js +2 -0
  207. package/dist/video-core/utils.d.ts +25 -0
  208. package/dist/video-core/utils.d.ts.map +1 -0
  209. package/dist/video-core/utils.js +211 -0
  210. package/dist/video-core/xml-parser.d.ts +3 -0
  211. package/dist/video-core/xml-parser.d.ts.map +1 -0
  212. package/dist/video-core/xml-parser.js +27 -0
  213. package/package.json +5 -6
  214. package/tsconfig.tsbuildinfo +1 -1
  215. package/dist/agent/chat/prompt/index.d.ts +0 -5
  216. package/dist/agent/chat/prompt/index.d.ts.map +0 -1
  217. package/dist/agent/chat/prompt/index.js +0 -189
  218. package/dist/agent/chat/utils/tool-calls.d.ts +0 -21
  219. package/dist/agent/chat/utils/tool-calls.d.ts.map +0 -1
  220. package/dist/agent/chat/utils/tool-calls.js +0 -64
  221. package/dist/agent/code-review/prompt.d.ts +0 -2
  222. package/dist/agent/code-review/prompt.d.ts.map +0 -1
  223. package/dist/agent/code-review/prompt.js +0 -19
  224. package/dist/agent/diagnosis-agent/index.d.ts +0 -11
  225. package/dist/agent/diagnosis-agent/index.d.ts.map +0 -1
  226. package/dist/agent/diagnosis-agent/index.js +0 -88
  227. package/dist/agent/diagnosis-agent/strict-mode-violation.d.ts +0 -10
  228. package/dist/agent/diagnosis-agent/strict-mode-violation.d.ts.map +0 -1
  229. package/dist/agent/diagnosis-agent/strict-mode-violation.js +0 -30
  230. package/dist/tools/commit-and-create-pr/index.d.ts.map +0 -1
  231. package/dist/tools/commit-and-create-pr/index.js +0 -83
  232. package/dist/tools/definitions/commit-and-create-pr.d.ts +0 -3
  233. package/dist/tools/definitions/commit-and-create-pr.d.ts.map +0 -1
  234. package/dist/tools/definitions/fetch-video-analysis.d.ts.map +0 -1
  235. package/dist/tools/definitions/fetch-video-analysis.js +0 -61
  236. package/dist/tools/fetch-video-analysis/index.d.ts +0 -5
  237. package/dist/tools/fetch-video-analysis/index.d.ts.map +0 -1
  238. package/dist/tools/fetch-video-analysis/index.js +0 -138
  239. package/dist/tools/fetch-video-analysis/local-ffmpeg-client.d.ts.map +0 -1
  240. package/dist/tools/fetch-video-analysis/local-ffmpeg-client.js +0 -247
  241. package/dist/tools/fetch-video-analysis/open-ai.d.ts +0 -6
  242. package/dist/tools/fetch-video-analysis/open-ai.d.ts.map +0 -1
  243. package/dist/tools/fetch-video-analysis/open-ai.js +0 -37
  244. package/dist/tools/fetch-video-analysis/utils.d.ts +0 -13
  245. package/dist/tools/fetch-video-analysis/utils.d.ts.map +0 -1
  246. package/dist/tools/fetch-video-analysis/utils.js +0 -98
  247. package/dist/tools/fetch-video-analysis/video-analysis.d.ts +0 -7
  248. package/dist/tools/fetch-video-analysis/video-analysis.d.ts.map +0 -1
  249. package/dist/tools/fetch-video-analysis/video-analysis.js +0 -54
  250. package/dist/tools/file-operations/shared/git-helper.d.ts +0 -4
  251. package/dist/tools/file-operations/shared/git-helper.d.ts.map +0 -1
  252. package/dist/tools/file-operations/shared/git-helper.js +0 -29
  253. package/eslint.config.mjs +0 -43
  254. /package/dist/tools/{commit-and-create-pr → create-pull-request}/index.d.ts +0 -0
@@ -1,98 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.zipAndUploadFramesToR2 = exports.uploadSummaryToR2 = exports.uploadFramesToR2 = exports.safeCleanupDirectory = void 0;
7
- const r2_uploader_1 = require("@empiricalrun/r2-uploader");
8
- const child_process_1 = require("child_process");
9
- const fs_1 = require("fs");
10
- const path_1 = __importDefault(require("path"));
11
- const safeCleanupDirectory = async (dirPath, label = "cleanup") => {
12
- try {
13
- console.log(`[${label}] Cleaning up directory: ${dirPath}`);
14
- await fs_1.promises.rm(dirPath, { recursive: true });
15
- }
16
- catch (error) {
17
- console.warn(`[${label}] Failed to cleanup directory ${dirPath}:`, error instanceof Error ? error.message : String(error));
18
- }
19
- };
20
- exports.safeCleanupDirectory = safeCleanupDirectory;
21
- const uploadFilesToR2 = async (files, videoUrlHash) => {
22
- const label = `video-analysis-upload:${videoUrlHash}`;
23
- const start = Date.now();
24
- console.log(`[${label}] preparing ${files.length} files for upload...`);
25
- console.log(`[${label}] starting upload of ${files.length} files to video-analysis/${videoUrlHash}/...`);
26
- const interval = setInterval(() => {
27
- const secs = Math.round((Date.now() - start) / 1000);
28
- console.log(`[${label}] uploading... ${secs}s elapsed`);
29
- }, 1000);
30
- try {
31
- await (0, r2_uploader_1.uploadInMemoryFiles)({
32
- files,
33
- destinationDir: videoUrlHash,
34
- uploadBucket: "video-analysis",
35
- });
36
- }
37
- finally {
38
- clearInterval(interval);
39
- const secs = Math.round((Date.now() - start) / 1000);
40
- console.log(`[${label}] upload complete in ${secs}s`);
41
- }
42
- };
43
- const uploadFramesToR2 = async (videoInfo, frames, r2BaseUrl) => {
44
- const { analysis_id: videoUrlHash } = videoInfo;
45
- const frameFiles = frames.map((f) => {
46
- const fileName = `frame_${f.metadata.index}_${videoUrlHash}.png`;
47
- const buffer = Buffer.from(f.image, "base64");
48
- return { buffer, fileName, mimeType: "image/png" };
49
- });
50
- console.log(`[video-analysis-upload] uploading ${frameFiles.length} frames to video-analysis/${videoUrlHash}/...`);
51
- await uploadFilesToR2(frameFiles, videoUrlHash);
52
- return frames.map((f) => ({
53
- index: f.metadata.index,
54
- path: f.metadata.path,
55
- fileName: `frame_${f.metadata.index}_${videoUrlHash}.png`,
56
- url: `${r2BaseUrl}frame_${f.metadata.index}_${videoUrlHash}.png`,
57
- }));
58
- };
59
- exports.uploadFramesToR2 = uploadFramesToR2;
60
- const uploadSummaryToR2 = async (videoInfo, r2BaseUrl) => {
61
- try {
62
- const { analysis_id: videoUrlHash } = videoInfo;
63
- const filesToUpload = [
64
- {
65
- buffer: Buffer.from(JSON.stringify(videoInfo, null, 2)),
66
- fileName: "summary.json",
67
- mimeType: "application/json",
68
- },
69
- ];
70
- console.log(`[video-analysis-upload] uploading ${filesToUpload.length} files to video-analysis/${videoUrlHash}/...`);
71
- await uploadFilesToR2(filesToUpload, videoUrlHash);
72
- return r2BaseUrl;
73
- }
74
- catch (error) {
75
- console.error("Error uploading video analysis to R2:", error);
76
- throw error;
77
- }
78
- };
79
- exports.uploadSummaryToR2 = uploadSummaryToR2;
80
- const zipAndUploadFramesToR2 = async (uniqueFrames, outputZipPath, videoUrlHash) => {
81
- const filePaths = uniqueFrames.map((u) => u.metadata.path);
82
- await new Promise((resolve, reject) => {
83
- (0, child_process_1.execFile)("zip", ["-0", "-j", outputZipPath, ...filePaths], (err) => {
84
- if (err)
85
- return reject(err);
86
- resolve();
87
- });
88
- });
89
- const tempUploadDir = path_1.default.dirname(outputZipPath);
90
- console.log(`[zip-upload] Uploading zip file: ${outputZipPath} to video-analysis/${videoUrlHash}/`);
91
- return await (0, r2_uploader_1.uploadDirectory)({
92
- sourceDir: tempUploadDir,
93
- fileList: [outputZipPath],
94
- destinationDir: videoUrlHash,
95
- uploadBucket: "video-analysis",
96
- });
97
- };
98
- exports.zipAndUploadFramesToR2 = zipAndUploadFramesToR2;
@@ -1,7 +0,0 @@
1
- import { TraceClient } from "@empiricalrun/llm";
2
- import { SupportedChatModels, Usage } from "@empiricalrun/shared-types";
3
- export declare function analyzeFramesWithLLM(frameBase64Data: string[], trace?: TraceClient, selectedModel?: SupportedChatModels, apiKey?: string): Promise<{
4
- analysis: string;
5
- usage: Usage;
6
- }>;
7
- //# sourceMappingURL=video-analysis.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"video-analysis.d.ts","sourceRoot":"","sources":["../../../src/tools/fetch-video-analysis/video-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAEL,mBAAmB,EACnB,KAAK,EACN,MAAM,4BAA4B,CAAC;AAIpC,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,MAAM,EAAE,EACzB,KAAK,CAAC,EAAE,WAAW,EACnB,aAAa,CAAC,EAAE,mBAAmB,EACnC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAgE7C"}
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.analyzeFramesWithLLM = analyzeFramesWithLLM;
4
- const chat_1 = require("@empiricalrun/llm/chat");
5
- const models_1 = require("../../agent/chat/models");
6
- async function analyzeFramesWithLLM(frameBase64Data, trace, selectedModel, apiKey) {
7
- const llmSpan = trace?.span({
8
- name: "llm-frame-analysis",
9
- input: { frameCount: frameBase64Data.length },
10
- });
11
- const selectedChatModel = selectedModel || (0, models_1.getDefaultChatModelId)();
12
- try {
13
- // TODO: Move to canonical chat model
14
- let chatModel = new chat_1.GeminiChatModel(selectedChatModel, [], apiKey || process.env.GOOGLE_API_KEY);
15
- chatModel.validateEnvVarsForAuth();
16
- const frameAttachments = frameBase64Data.map((frameBase64, index) => ({
17
- url: frameBase64,
18
- contentType: "image/png",
19
- name: `frame-${index}.png`,
20
- }));
21
- const userMessage = `
22
- Analyze the ${frameBase64Data.length} frames that are extracted from a screen recording.`;
23
- chatModel.pushUserMessage(userMessage, frameAttachments);
24
- const systemPrompt = `
25
- You are given a set of unique frames from a screen recording. Your job is to return a verbose bullet list of what is going on in the video. Don't miss out on anything.
26
- `;
27
- // Get LLM response
28
- const response = await chatModel.getLLMResponse({
29
- systemPrompt,
30
- tools: [], // No tools needed for this analysis
31
- selectedModel: selectedChatModel,
32
- trace: llmSpan,
33
- hasThinkingEnabled: false,
34
- hasInterleavedThinkingEnabled: false,
35
- });
36
- if (!response) {
37
- throw new Error("No response from LLM");
38
- }
39
- chatModel.pushMessage(response);
40
- const usage = chatModel.getUsage();
41
- const analysisResult = chatModel.getHumanReadableLatestMessage();
42
- llmSpan?.end({ output: { analysis: analysisResult?.textMessage } });
43
- return {
44
- analysis: analysisResult?.textMessage || "No analysis generated",
45
- usage,
46
- };
47
- }
48
- catch (error) {
49
- console.error("Error in LLM frame analysis", error);
50
- llmSpan?.end();
51
- const message = error instanceof Error ? error.message : String(error);
52
- throw new Error(`Error analyzing frames with AI: ${message}`);
53
- }
54
- }
@@ -1,4 +0,0 @@
1
- import { CollectArtifacts } from "@empiricalrun/shared-types";
2
- declare function collectGitPatchArtifact(filePath: string, repoDir: string, operation: "create" | "replace" | "insert", collectArtifacts?: CollectArtifacts): Promise<void>;
3
- export { collectGitPatchArtifact };
4
- //# sourceMappingURL=git-helper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-helper.d.ts","sourceRoot":"","sources":["../../../../src/tools/file-operations/shared/git-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAQpC,iBAAe,uBAAuB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,EAC1C,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.collectGitPatchArtifact = collectGitPatchArtifact;
7
- const path_1 = __importDefault(require("path"));
8
- const git_1 = require("../../executor/utils/git");
9
- async function collectGitPatchArtifact(filePath, repoDir, operation, collectArtifacts) {
10
- if (!collectArtifacts)
11
- return;
12
- try {
13
- const gitPatch = operation === "create"
14
- ? (0, git_1.getGitDiffForNewFile)(filePath, repoDir)
15
- : (0, git_1.getGitDiffStaged)(filePath, repoDir);
16
- if (gitPatch.trim()) {
17
- const patchArtifact = {
18
- name: `${path_1.default.basename(filePath, path_1.default.extname(filePath))}_${operation}.patch`,
19
- contentType: "text/plain",
20
- data: Buffer.from(gitPatch, "utf-8"),
21
- };
22
- collectArtifacts([patchArtifact]);
23
- }
24
- }
25
- catch (error) {
26
- // Ignore git diff errors, don't fail the operation
27
- console.warn(`Failed to generate git patch for ${filePath}:`, error);
28
- }
29
- }
package/eslint.config.mjs DELETED
@@ -1,43 +0,0 @@
1
- import libraryConfig from "../eslint-config/library.mjs";
2
- import tsParser from "@typescript-eslint/parser";
3
- import js from "@eslint/js";
4
-
5
- export default [
6
- ...libraryConfig,
7
- {
8
- files: ["src/**/*.ts", "src/**/*.tsx"],
9
- languageOptions: {
10
- parser: tsParser,
11
- globals: {
12
- window: true,
13
- document: true,
14
- },
15
- parserOptions: {
16
- project: "./tsconfig.lint.json",
17
- tsconfigRootDir: import.meta.dirname,
18
- },
19
- },
20
- },
21
- {
22
- files: ["**/*.js"],
23
- ...js.configs.recommended,
24
- languageOptions: {
25
- globals: {
26
- browser: true,
27
- },
28
- parserOptions: {
29
- ecmaVersion: 2022,
30
- sourceType: "module",
31
- },
32
- },
33
- rules: {
34
- "@typescript-eslint/no-floating-promises": "off",
35
- "@typescript-eslint/no-misused-promises": "off",
36
- "@typescript-eslint/no-unsafe-assignment": "off",
37
- "@typescript-eslint/no-unsafe-call": "off",
38
- "@typescript-eslint/no-unsafe-member-access": "off",
39
- "@typescript-eslint/no-unsafe-return": "off",
40
- "no-unused-vars": "warn",
41
- },
42
- },
43
- ];