@empiricalrun/test-gen 0.74.2 → 0.75.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 (93) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/agent/base/index.d.ts +36 -0
  3. package/dist/agent/base/index.d.ts.map +1 -0
  4. package/dist/agent/base/index.js +74 -0
  5. package/dist/agent/chat/agent-loop.d.ts +4 -5
  6. package/dist/agent/chat/agent-loop.d.ts.map +1 -1
  7. package/dist/agent/chat/agent-loop.js +2 -9
  8. package/dist/agent/chat/exports.d.ts +3 -3
  9. package/dist/agent/chat/exports.d.ts.map +1 -1
  10. package/dist/agent/chat/exports.js +5 -5
  11. package/dist/agent/chat/index.d.ts.map +1 -1
  12. package/dist/agent/chat/index.js +8 -11
  13. package/dist/agent/chat/state.d.ts +2 -3
  14. package/dist/agent/chat/state.d.ts.map +1 -1
  15. package/dist/agent/chat/state.js +0 -8
  16. package/dist/agent/chat/utils.d.ts +0 -1
  17. package/dist/agent/chat/utils.d.ts.map +1 -1
  18. package/dist/agent/chat/utils.js +1 -14
  19. package/dist/file-info/adapters/github/index.d.ts +2 -2
  20. package/dist/file-info/adapters/github/index.d.ts.map +1 -1
  21. package/dist/file-info/adapters/github/index.js +3 -2
  22. package/dist/file-info/adapters/github/reader.d.ts +3 -3
  23. package/dist/file-info/adapters/github/reader.d.ts.map +1 -1
  24. package/dist/file-info/adapters/github/reader.js +17 -16
  25. package/dist/tools/commit-and-create-pr/index.js +1 -1
  26. package/dist/tools/definitions/fetch-video-analysis.d.ts +28 -0
  27. package/dist/tools/definitions/fetch-video-analysis.d.ts.map +1 -1
  28. package/dist/tools/definitions/fetch-video-analysis.js +39 -4
  29. package/dist/tools/definitions/rename-file.d.ts +3 -0
  30. package/dist/tools/definitions/rename-file.d.ts.map +1 -0
  31. package/dist/tools/definitions/rename-file.js +23 -0
  32. package/dist/tools/delete-file/index.d.ts.map +1 -1
  33. package/dist/tools/delete-file/index.js +13 -1
  34. package/dist/tools/executor/index.d.ts.map +1 -1
  35. package/dist/tools/executor/index.js +4 -3
  36. package/dist/tools/executor/utils/checkpoint.d.ts +1 -3
  37. package/dist/tools/executor/utils/checkpoint.d.ts.map +1 -1
  38. package/dist/tools/executor/utils/checkpoint.js +17 -17
  39. package/dist/tools/executor/utils/git.d.ts +9 -1
  40. package/dist/tools/executor/utils/git.d.ts.map +1 -1
  41. package/dist/tools/executor/utils/git.js +72 -2
  42. package/dist/tools/{fetch-image → fetch-file}/index.d.ts +2 -2
  43. package/dist/tools/fetch-file/index.d.ts.map +1 -0
  44. package/dist/tools/fetch-file/index.js +97 -0
  45. package/dist/tools/fetch-video-analysis/index.d.ts +3 -3
  46. package/dist/tools/fetch-video-analysis/index.d.ts.map +1 -1
  47. package/dist/tools/fetch-video-analysis/index.js +71 -22
  48. package/dist/tools/fetch-video-analysis/local-ffmpeg-client.d.ts +8 -9
  49. package/dist/tools/fetch-video-analysis/local-ffmpeg-client.d.ts.map +1 -1
  50. package/dist/tools/fetch-video-analysis/local-ffmpeg-client.js +55 -17
  51. package/dist/tools/fetch-video-analysis/open-ai.d.ts +6 -0
  52. package/dist/tools/fetch-video-analysis/open-ai.d.ts.map +1 -0
  53. package/dist/tools/fetch-video-analysis/open-ai.js +37 -0
  54. package/dist/tools/fetch-video-analysis/utils.d.ts +6 -3
  55. package/dist/tools/fetch-video-analysis/utils.d.ts.map +1 -1
  56. package/dist/tools/fetch-video-analysis/utils.js +41 -15
  57. package/dist/tools/fetch-video-analysis/video-analysis.js +1 -1
  58. package/dist/tools/file-operations/create.d.ts.map +1 -1
  59. package/dist/tools/file-operations/create.js +6 -3
  60. package/dist/tools/file-operations/insert.d.ts.map +1 -1
  61. package/dist/tools/file-operations/insert.js +6 -3
  62. package/dist/tools/file-operations/replace.d.ts.map +1 -1
  63. package/dist/tools/file-operations/replace.js +6 -3
  64. package/dist/tools/file-operations/shared/git-helper.d.ts.map +1 -1
  65. package/dist/tools/file-operations/shared/git-helper.js +1 -1
  66. package/dist/tools/file-operations/view/index.d.ts +2 -5
  67. package/dist/tools/file-operations/view/index.d.ts.map +1 -1
  68. package/dist/tools/file-operations/view/index.js +2 -22
  69. package/dist/tools/index.d.ts +1 -1
  70. package/dist/tools/index.d.ts.map +1 -1
  71. package/dist/tools/index.js +14 -4
  72. package/dist/tools/issues/update-issue.d.ts.map +1 -1
  73. package/dist/tools/issues/update-issue.js +16 -9
  74. package/dist/tools/merge-conflicts/index.js +1 -1
  75. package/dist/tools/rename-file/index.d.ts +3 -0
  76. package/dist/tools/rename-file/index.d.ts.map +1 -0
  77. package/dist/tools/rename-file/index.js +88 -0
  78. package/dist/tools/run-test.js +2 -2
  79. package/dist/tools/trace-dot-zip/index.d.ts.map +1 -1
  80. package/dist/tools/trace-dot-zip/index.js +2 -1
  81. package/dist/tools/trace-dot-zip/types.d.ts +35 -3
  82. package/dist/tools/trace-dot-zip/types.d.ts.map +1 -1
  83. package/dist/tools/trace-dot-zip/utils/network-trace.d.ts +7 -2
  84. package/dist/tools/trace-dot-zip/utils/network-trace.d.ts.map +1 -1
  85. package/dist/tools/trace-dot-zip/utils/network-trace.js +130 -10
  86. package/dist/tools/upgrade-packages/index.js +1 -1
  87. package/dist/utils/index.d.ts +0 -1
  88. package/dist/utils/index.d.ts.map +1 -1
  89. package/dist/utils/index.js +1 -3
  90. package/package.json +5 -5
  91. package/tsconfig.tsbuildinfo +1 -1
  92. package/dist/tools/fetch-image/index.d.ts.map +0 -1
  93. package/dist/tools/fetch-image/index.js +0 -63
@@ -31,22 +31,29 @@ exports.updateIssueTool = {
31
31
  isInlineTool: true,
32
32
  execute: async ({ input, apiClient }) => {
33
33
  try {
34
- const { id, title, description, issue_type, test_issue_prompt, test_cases_affected = [], test_run_info = [], } = input;
34
+ const { id, title, description, issue_type, test_issue_prompt, test_cases_affected, test_run_info, } = input;
35
35
  if (!apiClient) {
36
36
  throw new Error("Dashboard API client is not available.");
37
37
  }
38
- const updateData = {
39
- test_cases_affected,
40
- test_run_info,
41
- };
42
- if (title !== undefined)
38
+ const updateData = {};
39
+ if (title !== undefined) {
43
40
  updateData.title = title;
44
- if (description !== undefined)
41
+ }
42
+ if (description !== undefined) {
45
43
  updateData.description = description;
46
- if (issue_type !== undefined)
44
+ }
45
+ if (issue_type !== undefined) {
47
46
  updateData.issue_type = issue_type;
48
- if (test_issue_prompt !== undefined)
47
+ }
48
+ if (test_issue_prompt !== undefined) {
49
49
  updateData.test_issue_prompt = test_issue_prompt;
50
+ }
51
+ if (test_cases_affected !== undefined && test_cases_affected.length > 0) {
52
+ updateData.test_cases_affected = test_cases_affected;
53
+ }
54
+ if (test_run_info !== undefined && test_run_info.length > 0) {
55
+ updateData.test_run_info = test_run_info;
56
+ }
50
57
  const response = await (0, utils_1.updateIssue)(apiClient, id, updateData);
51
58
  if (!response.data?.issue) {
52
59
  return {
@@ -59,7 +59,7 @@ exports.mergeConflictsTool = {
59
59
  }
60
60
  else if (mergeResult === "CONFLICTS") {
61
61
  const files = getConflictedFilesWithContents(repoPath);
62
- (0, git_1.commitFilesAsBotUser)({
62
+ (0, git_1.stageAndCommitFilesAsBotUser)({
63
63
  commitMessage: "Merge from main with conflicts",
64
64
  files: Object.keys(files),
65
65
  repoPath,
@@ -0,0 +1,3 @@
1
+ import type { Tool } from "@empiricalrun/shared-types";
2
+ export declare const renameFileTool: Tool;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/rename-file/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,4BAA4B,CAAC;AAQnE,eAAO,MAAM,cAAc,EAAE,IA6E5B,CAAC"}
@@ -0,0 +1,88 @@
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.renameFileTool = void 0;
7
+ const child_process_1 = require("child_process");
8
+ const promises_1 = require("fs/promises");
9
+ const path_1 = __importDefault(require("path"));
10
+ const web_1 = require("../../bin/utils/platform/web");
11
+ const rename_file_1 = require("../definitions/rename-file");
12
+ exports.renameFileTool = {
13
+ ...rename_file_1.renameFileTool,
14
+ execute: async ({ input, repoPath }) => {
15
+ try {
16
+ const oldFilePath = path_1.default.join(repoPath, input.oldPath);
17
+ const newFilePath = path_1.default.join(repoPath, input.newPath);
18
+ try {
19
+ const stats = await (0, promises_1.stat)(oldFilePath);
20
+ if (!stats.isFile()) {
21
+ return {
22
+ isError: true,
23
+ result: `Error: '${input.oldPath}' is not a file. Use a different tool to rename directories.`,
24
+ };
25
+ }
26
+ }
27
+ catch {
28
+ return {
29
+ isError: true,
30
+ result: `Error: File '${input.oldPath}' does not exist.`,
31
+ };
32
+ }
33
+ const resolvedOldPath = path_1.default.resolve(oldFilePath);
34
+ const resolvedNewPath = path_1.default.resolve(newFilePath);
35
+ const resolvedRepoPath = path_1.default.resolve(repoPath);
36
+ if (!resolvedOldPath.startsWith(resolvedRepoPath)) {
37
+ return {
38
+ isError: true,
39
+ result: `Error: Source file is outside the repository root.`,
40
+ };
41
+ }
42
+ if (!resolvedNewPath.startsWith(resolvedRepoPath)) {
43
+ return {
44
+ isError: true,
45
+ result: `Error: Destination path is outside the repository root.`,
46
+ };
47
+ }
48
+ try {
49
+ await (0, promises_1.stat)(newFilePath);
50
+ return {
51
+ isError: true,
52
+ result: `Error: Destination file '${input.newPath}' already exists.`,
53
+ };
54
+ }
55
+ catch {
56
+ // File doesn't exist, which is what we want
57
+ }
58
+ const newDir = path_1.default.dirname(newFilePath);
59
+ await (0, promises_1.mkdir)(newDir, { recursive: true });
60
+ await (0, promises_1.rename)(oldFilePath, newFilePath);
61
+ // Stage both files for git porcelain
62
+ function stageFile(filePath) {
63
+ return (0, child_process_1.execSync)(`git add ${filePath}`, { cwd: repoPath });
64
+ }
65
+ stageFile(oldFilePath);
66
+ stageFile(newFilePath);
67
+ // Run TypeScript compilation check
68
+ const tscResult = await (0, web_1.runTypescriptCompiler)(repoPath);
69
+ if (!tscResult.success) {
70
+ return {
71
+ result: `File renamed from '${input.oldPath}' to '${input.newPath}'. However, type checks are failing with errors:\n\n${tscResult.errors.join("\n")}`,
72
+ isError: true,
73
+ };
74
+ }
75
+ return {
76
+ isError: false,
77
+ result: `Successfully renamed file from '${input.oldPath}' to '${input.newPath}'`,
78
+ };
79
+ }
80
+ catch (error) {
81
+ console.error("Error renaming file", error);
82
+ return {
83
+ isError: true,
84
+ result: error instanceof Error ? error.message : String(error),
85
+ };
86
+ }
87
+ },
88
+ };
@@ -9,7 +9,7 @@ const fs_1 = __importDefault(require("fs"));
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const artifacts_1 = require("../artifacts");
11
11
  const utils_1 = require("../artifacts/utils");
12
- const utils_2 = require("../utils");
12
+ const json_1 = require("../utils/json");
13
13
  const run_test_1 = require("./definitions/run-test");
14
14
  function buildReportUrl(projectName, testRunId) {
15
15
  return `https://reports.empirical.run/${projectName}/${testRunId}/index.html`;
@@ -17,7 +17,7 @@ function buildReportUrl(projectName, testRunId) {
17
17
  function buildResult({ hasTestPassed, summaryJson, reportUrl, }) {
18
18
  const summaryWithoutConfig = { ...summaryJson, config: undefined };
19
19
  delete summaryWithoutConfig["config"];
20
- const truncatedSummaryJson = (0, utils_2.truncateJsonValues)(summaryWithoutConfig);
20
+ const truncatedSummaryJson = (0, json_1.truncateJsonValues)(summaryWithoutConfig);
21
21
  return `
22
22
  Test run is complete. Result: ${hasTestPassed ? "Passed" : "Failed"}
23
23
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/trace-dot-zip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,4BAA4B,CAAC;AAa9D,eAAO,MAAM,eAAe,EAAE,IAqD7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/trace-dot-zip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,4BAA4B,CAAC;AAa9D,eAAO,MAAM,eAAe,EAAE,IAwD7B,CAAC"}
@@ -28,11 +28,12 @@ exports.traceDotZipTool = {
28
28
  (0, network_trace_1.generateNetworkTraceFromZipUrl)({ url: traceFileUrl }),
29
29
  (0, console_trace_1.generateConsoleTraceFromZipUrl)({ url: traceFileUrl }),
30
30
  ]);
31
- const cleanNetworkTraceOutput = (0, network_trace_1.stripIrrelevantInfoFromNetworkFailureArray)(networkTraceOutput);
31
+ const cleanNetworkTraceOutput = (0, network_trace_1.stripIrrelevantInfoFromNetworkFailureArray)(networkTraceOutput.hydratedFailedCalls);
32
32
  return {
33
33
  isError: false,
34
34
  result: JSON.stringify({
35
35
  failed_network_requests: cleanNetworkTraceOutput,
36
+ request_sequence: networkTraceOutput.networkCallSequence,
36
37
  console_error_logs: consoleTraceOutput,
37
38
  }, null, 2),
38
39
  };
@@ -8,13 +8,35 @@ export type CapturedNetworkFailure = {
8
8
  headers: {
9
9
  [any: string]: string;
10
10
  }[] | [];
11
+ body?: {
12
+ mimeType?: string;
13
+ text?: string;
14
+ params?: any[];
15
+ _sha1?: string;
16
+ content?: string;
17
+ };
11
18
  };
12
19
  response: {
13
20
  headers: {
14
21
  [any: string]: string;
15
22
  }[] | [];
23
+ body?: {
24
+ mimeType?: string;
25
+ text?: string;
26
+ params?: any[];
27
+ _sha1?: string;
28
+ content?: string;
29
+ };
16
30
  };
17
31
  };
32
+ export type NetworkRequestSequence = {
33
+ step: number;
34
+ method: string;
35
+ endpoint: string;
36
+ status: number;
37
+ redirect_to?: string;
38
+ duration_ms: number;
39
+ };
18
40
  export type CapturedConsoleLog = {
19
41
  type: "console";
20
42
  messageType: "log" | "info" | "warning" | "error" | string;
@@ -44,11 +66,12 @@ export type PlaywrightNetworkTrace = {
44
66
  queryString: any[];
45
67
  headersSize: number;
46
68
  bodySize: number;
47
- postData: {
69
+ postData?: {
48
70
  mimeType: string;
49
- text: string;
71
+ text?: string;
50
72
  params: any[];
51
- _sha1: string;
73
+ _sha1?: string;
74
+ _file?: string;
52
75
  };
53
76
  };
54
77
  response: {
@@ -61,6 +84,15 @@ export type PlaywrightNetworkTrace = {
61
84
  bodySize: number;
62
85
  redirectURL: string;
63
86
  _transferSize: number;
87
+ content: {
88
+ size: number;
89
+ mimeType: string;
90
+ text?: string;
91
+ encoding?: string;
92
+ _sha1?: string;
93
+ _file?: string;
94
+ compression?: number;
95
+ };
64
96
  };
65
97
  cache: any;
66
98
  timings: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/trace-dot-zip/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC,EAAE,MAAM,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,OAAO,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,EAAE,GAAG,EAAE,CAAC;KAC3C,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,EAAE,GAAG,EAAE,CAAC;KAC3C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAC;YACf,GAAG,EAAE,MAAM,CAAC;YACZ,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,GAAG,EAAE,CAAC;YACf,OAAO,EAAE,GAAG,EAAE,CAAC;YACf,WAAW,EAAE,GAAG,EAAE,CAAC;YACnB,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE;gBACR,QAAQ,EAAE,MAAM,CAAC;gBACjB,IAAI,EAAE,MAAM,CAAC;gBACb,MAAM,EAAE,GAAG,EAAE,CAAC;gBACd,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,CAAC;QACF,QAAQ,EAAE;YACR,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,CAAC;YACnB,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,GAAG,EAAE,CAAC;YACf,OAAO,EAAE,GAAG,EAAE,CAAC;YACf,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;YACpB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,EAAE;YACP,GAAG,EAAE,MAAM,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,GAAG,EAAE,MAAM,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE;YAChB,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/trace-dot-zip/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CapturedNetworkFailure } from "../types";
1
+ import { CapturedNetworkFailure, NetworkRequestSequence, PlaywrightNetworkTrace } from "../types";
2
2
  type ArgsT = {
3
3
  url: string;
4
4
  logPrefix?: string;
@@ -15,7 +15,12 @@ export declare const generateNetworkTrace: ({ logPrefix, url, failure, }: ArgsT)
15
15
  allFailedCalls: CapturedNetworkFailure[];
16
16
  failedCallsWithinTimeRange: CapturedNetworkFailure[];
17
17
  }>;
18
- export declare const generateNetworkTraceFromZipUrl: ({ url, }: ArgsT) => Promise<CapturedNetworkFailure[]>;
18
+ export declare const generateNetworkTraceFromZipUrl: ({ url, }: ArgsT) => Promise<{
19
+ hydratedFailedCalls: CapturedNetworkFailure[];
20
+ networkCallSequence: NetworkRequestSequence[];
21
+ }>;
19
22
  export declare const stripIrrelevantInfoFromNetworkFailureArray: (failures: CapturedNetworkFailure[]) => Partial<CapturedNetworkFailure>[];
23
+ export declare const hydrateSha1Bodies: (failures: CapturedNetworkFailure[], zipUrl: string) => Promise<CapturedNetworkFailure[]>;
24
+ export declare const buildNetworkCallSequence: (unformattedFailedNetworkCallsWithHeaders: PlaywrightNetworkTrace[]) => NetworkRequestSequence[];
20
25
  export {};
21
26
  //# sourceMappingURL=network-trace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network-trace.d.ts","sourceRoot":"","sources":["../../../../src/tools/trace-dot-zip/utils/network-trace.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAA0B,MAAM,UAAU,CAAC;AAU1E,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EACJ;YACE,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;SAChB,GACD,SAAS,CAAC;KACf,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,8BAIxC,KAAK,KAAG,OAAO,CAAC;IACjB,cAAc,EAAE,sBAAsB,EAAE,CAAC;IACzC,0BAA0B,EAAE,sBAAsB,EAAE,CAAC;CACtD,CA8KA,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAU,UAElD,KAAK,KAAG,OAAO,CAAC,sBAAsB,EAAE,CAmC1C,CAAC;AAoBF,eAAO,MAAM,0CAA0C,GACrD,UAAU,sBAAsB,EAAE,KACjC,OAAO,CAAC,sBAAsB,CAAC,EAUjC,CAAC"}
1
+ {"version":3,"file":"network-trace.d.ts","sourceRoot":"","sources":["../../../../src/tools/trace-dot-zip/utils/network-trace.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAUlB,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EACJ;YACE,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;SAChB,GACD,SAAS,CAAC;KACf,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,8BAIxC,KAAK,KAAG,OAAO,CAAC;IACjB,cAAc,EAAE,sBAAsB,EAAE,CAAC;IACzC,0BAA0B,EAAE,sBAAsB,EAAE,CAAC;CACtD,CA+KA,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAU,UAElD,KAAK,KAAG,OAAO,CAAC;IACjB,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAC9C,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;CAC/C,CAyEA,CAAC;AAsBF,eAAO,MAAM,0CAA0C,GACrD,UAAU,sBAAsB,EAAE,KACjC,OAAO,CAAC,sBAAsB,CAAC,EAoBjC,CAAC;AAmCF,eAAO,MAAM,iBAAiB,GAC5B,UAAU,sBAAsB,EAAE,EAClC,QAAQ,MAAM,KACb,OAAO,CAAC,sBAAsB,EAAE,CA+BlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,0CAA0C,sBAAsB,EAAE,KACjE,sBAAsB,EA2BxB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stripIrrelevantInfoFromNetworkFailureArray = exports.generateNetworkTraceFromZipUrl = exports.generateNetworkTrace = void 0;
3
+ exports.buildNetworkCallSequence = exports.hydrateSha1Bodies = exports.stripIrrelevantInfoFromNetworkFailureArray = exports.generateNetworkTraceFromZipUrl = exports.generateNetworkTrace = void 0;
4
4
  const date_fns_1 = require("date-fns");
5
+ const json_1 = require("../../../utils/json");
5
6
  const extract_zip_1 = require("./extract-zip");
6
7
  const NON_RELEVANT_NETWORK_CALL_KEYWORDS = [
7
8
  "sentry",
@@ -97,6 +98,7 @@ const generateNetworkTrace = async ({ logPrefix = "network-trace", url, failure,
97
98
  method: call?.snapshot?.request?.method,
98
99
  request: {
99
100
  headers: call?.snapshot?.request?.headers ?? [],
101
+ body: call?.snapshot?.request?.postData ?? undefined,
100
102
  },
101
103
  response: {
102
104
  headers: call?.snapshot?.response?.headers ?? [],
@@ -130,7 +132,8 @@ const generateNetworkTrace = async ({ logPrefix = "network-trace", url, failure,
130
132
  exports.generateNetworkTrace = generateNetworkTrace;
131
133
  const generateNetworkTraceFromZipUrl = async ({ url, }) => {
132
134
  try {
133
- const failedCalls = [];
135
+ const allNetworkCalls = [];
136
+ const relevantNetworkCalls = [];
134
137
  await (0, extract_zip_1.extractFileFromZipFromUrl)({
135
138
  zipUrl: url,
136
139
  fileNames: ["0-trace.network"],
@@ -141,23 +144,47 @@ const generateNetworkTraceFromZipUrl = async ({ url, }) => {
141
144
  let lines = tempBuffer.split("\n");
142
145
  lines.slice(0, -1).forEach((line) => {
143
146
  const parsedNetworkTrace = JSON.parse(line);
144
- const responseStatus = parsedNetworkTrace?.snapshot?.response?.status;
145
- // const networkTriggerTime =
146
- // parsedNetworkTrace?.snapshot?.startedDateTime;
147
- if (400 <= responseStatus && responseStatus < 600) {
148
- failedCalls.push(parsedNetworkTrace);
147
+ const hasValidResponseStatus = !!parsedNetworkTrace?.snapshot?.response?.status;
148
+ const responseStatus = Number(parsedNetworkTrace?.snapshot?.response?.status);
149
+ allNetworkCalls.push(parsedNetworkTrace);
150
+ // only failures & redirects for detailed analysis
151
+ if (hasValidResponseStatus &&
152
+ (responseStatus === 308 ||
153
+ (400 <= responseStatus && responseStatus < 600))) {
154
+ relevantNetworkCalls.push(parsedNetworkTrace);
149
155
  }
150
156
  });
151
157
  tempBuffer = lines[lines.length - 1] || "";
152
158
  };
153
159
  },
154
160
  });
155
- return failedCalls.map(formatNetworkFailure);
161
+ const failedCalls = relevantNetworkCalls.filter((c) => {
162
+ const status = c.snapshot.response.status;
163
+ return 400 <= status && status < 600;
164
+ });
165
+ const sequenceCalls = allNetworkCalls.filter((c) => {
166
+ const hasValidResponseStatus = !!c.snapshot.response.status;
167
+ const status = Number(c.snapshot.response.status);
168
+ return (hasValidResponseStatus &&
169
+ ((400 <= status && status < 600) ||
170
+ status === 307 ||
171
+ status === 308 ||
172
+ status === 301 ||
173
+ status === 302));
174
+ // excluding: 304 (cached), 2xx success
175
+ });
176
+ const networkCallSequence = (0, exports.buildNetworkCallSequence)(sequenceCalls);
177
+ const formattedFailedCalls = failedCalls.map(formatNetworkFailure);
178
+ const hydratedFailedCalls = await (0, exports.hydrateSha1Bodies)(formattedFailedCalls, url);
179
+ return { hydratedFailedCalls, networkCallSequence };
156
180
  }
157
181
  catch (error) {
158
182
  console.error(`Error fetching or processing the zip file: ${url}`, error);
159
183
  }
160
- return [];
184
+ return {
185
+ hydratedFailedCalls: [],
186
+ networkCallSequence: [],
187
+ };
161
188
  };
162
189
  exports.generateNetworkTraceFromZipUrl = generateNetworkTraceFromZipUrl;
163
190
  const formatNetworkFailure = (call) => {
@@ -169,21 +196,114 @@ const formatNetworkFailure = (call) => {
169
196
  method: call?.snapshot?.request?.method,
170
197
  request: {
171
198
  headers: call?.snapshot?.request?.headers ?? [],
199
+ body: call?.snapshot?.request?.postData ?? undefined,
172
200
  },
173
201
  response: {
174
202
  headers: call?.snapshot?.response?.headers ?? [],
203
+ body: call?.snapshot?.response?.content ?? undefined,
175
204
  },
176
205
  };
177
206
  };
178
207
  const stripIrrelevantInfoFromNetworkFailureArray = (failures) => {
179
- return failures.map(({ endpoint, status, timestamp, method }) => {
208
+ return failures.map(({ endpoint, status, timestamp, method, request, response }) => {
180
209
  const strippedFailureInfo = {
181
210
  endpoint,
182
211
  status,
183
212
  timestamp,
184
213
  method,
214
+ request: {
215
+ headers: [],
216
+ body: request.body,
217
+ },
218
+ response: {
219
+ headers: [],
220
+ body: response.body,
221
+ },
185
222
  };
186
223
  return strippedFailureInfo;
187
224
  });
188
225
  };
189
226
  exports.stripIrrelevantInfoFromNetworkFailureArray = stripIrrelevantInfoFromNetworkFailureArray;
227
+ const resolveSha1File = async (zipUrl, sha1) => {
228
+ if (!sha1)
229
+ return undefined;
230
+ let result;
231
+ const fileName = `resources/${sha1}`; // the _sha1 reference is a filename like abcd.bin or abcd.json
232
+ await (0, extract_zip_1.extractFileFromZipFromUrl)({
233
+ zipUrl,
234
+ fileNames: [fileName],
235
+ chunkProcessor: () => {
236
+ let buffer = "";
237
+ return (chunk) => {
238
+ buffer += chunk.toString("utf-8");
239
+ result = buffer;
240
+ };
241
+ },
242
+ });
243
+ if (!result)
244
+ return undefined;
245
+ let truncatedContent;
246
+ try {
247
+ const parsedResult = JSON.parse(result);
248
+ truncatedContent = JSON.stringify((0, json_1.truncateJsonValues)(parsedResult));
249
+ }
250
+ catch {
251
+ truncatedContent = (0, json_1.truncateJsonValues)(result);
252
+ }
253
+ return truncatedContent;
254
+ };
255
+ const hydrateSha1Bodies = async (failures, zipUrl) => {
256
+ return Promise.all(failures.map(async (failure) => {
257
+ const reqSha1 = failure.request.body?._sha1;
258
+ const reqMimeType = failure.request.body?.mimeType;
259
+ const resSha1 = failure.response.body?._sha1;
260
+ const resMimeType = failure.response.body?.mimeType;
261
+ return {
262
+ ...failure,
263
+ request: {
264
+ ...failure.request,
265
+ body: reqSha1
266
+ ? {
267
+ mimeType: reqMimeType,
268
+ content: await resolveSha1File(zipUrl, reqSha1),
269
+ }
270
+ : failure.request.body,
271
+ },
272
+ response: {
273
+ ...failure.response,
274
+ body: resSha1
275
+ ? {
276
+ mimeType: resMimeType,
277
+ content: await resolveSha1File(zipUrl, resSha1),
278
+ }
279
+ : failure.response.body,
280
+ },
281
+ };
282
+ }));
283
+ };
284
+ exports.hydrateSha1Bodies = hydrateSha1Bodies;
285
+ const buildNetworkCallSequence = (unformattedFailedNetworkCallsWithHeaders) => {
286
+ return unformattedFailedNetworkCallsWithHeaders.map((trace, idx) => {
287
+ const snap = trace.snapshot;
288
+ const url = new URL(snap.request.url);
289
+ let redirect_to = undefined;
290
+ if (snap.response.redirectURL) {
291
+ try {
292
+ // attempting to make it absolute if relative
293
+ redirect_to = new URL(snap.response.redirectURL, snap.request.url).toString();
294
+ }
295
+ catch {
296
+ redirect_to = snap.response.redirectURL; // fallback as-is
297
+ }
298
+ }
299
+ return {
300
+ step: idx + 1,
301
+ method: snap.request.method,
302
+ endpoint: url.pathname,
303
+ status: snap.response.status,
304
+ redirect_to,
305
+ duration_ms: Math.round(snap.time),
306
+ };
307
+ });
308
+ };
309
+ exports.buildNetworkCallSequence = buildNetworkCallSequence;
@@ -50,7 +50,7 @@ exports.upgradePackagesTool = {
50
50
  };
51
51
  }
52
52
  const updateMessage = `upgrade ${changes.length} package${changes.length === 1 ? "" : "s"}`;
53
- (0, git_1.commitFilesAsBotUser)({
53
+ (0, git_1.stageAndCommitFilesAsBotUser)({
54
54
  commitMessage: `[upgrade-packages] ${updateMessage}`,
55
55
  files: ["package.json", "package-lock.json"],
56
56
  repoPath,
@@ -1,3 +1,2 @@
1
1
  export { getTypescriptTestBlock } from "../bin/utils/platform/web";
2
- export { truncateJsonValues } from "./json";
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.truncateJsonValues = exports.getTypescriptTestBlock = void 0;
3
+ exports.getTypescriptTestBlock = void 0;
4
4
  var web_1 = require("../bin/utils/platform/web");
5
5
  Object.defineProperty(exports, "getTypescriptTestBlock", { enumerable: true, get: function () { return web_1.getTypescriptTestBlock; } });
6
- var json_1 = require("./json");
7
- Object.defineProperty(exports, "truncateJsonValues", { enumerable: true, get: function () { return json_1.truncateJsonValues; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empiricalrun/test-gen",
3
- "version": "0.74.2",
3
+ "version": "0.75.0",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"
@@ -85,9 +85,9 @@
85
85
  "yauzl": "^3.1.3",
86
86
  "zod": "^3.23.8",
87
87
  "@empiricalrun/ast-parser": "^0.0.10",
88
- "@empiricalrun/llm": "^0.21.0",
89
- "@empiricalrun/r2-uploader": "^0.3.10",
90
- "@empiricalrun/test-run": "^0.11.0"
88
+ "@empiricalrun/llm": "^0.22.0",
89
+ "@empiricalrun/r2-uploader": "^0.3.11",
90
+ "@empiricalrun/test-run": "^0.11.1"
91
91
  },
92
92
  "devDependencies": {
93
93
  "@playwright/test": "1.53.2",
@@ -106,7 +106,7 @@
106
106
  "playwright": "1.53.2",
107
107
  "serve-handler": "^6.1.6",
108
108
  "ts-patch": "^3.3.0",
109
- "@empiricalrun/shared-types": "0.10.0"
109
+ "@empiricalrun/shared-types": "0.10.1"
110
110
  },
111
111
  "scripts": {
112
112
  "dev": "tspc --build --watch",
@@ -1 +1 @@
1
- {"root":["./src/index.ts","./src/logger.ts","./src/actions/assert.ts","./src/actions/click.ts","./src/actions/done.ts","./src/actions/fill.ts","./src/actions/goto.ts","./src/actions/hover.ts","./src/actions/index.ts","./src/actions/next-task.ts","./src/actions/press.ts","./src/actions/skill.ts","./src/actions/text-content.ts","./src/actions/constants/index.ts","./src/actions/utils/index.ts","./src/agent/browsing/index.ts","./src/agent/browsing/run.ts","./src/agent/browsing/utils.ts","./src/agent/chat/agent-loop.ts","./src/agent/chat/exports.ts","./src/agent/chat/filesystem-cache.ts","./src/agent/chat/index.ts","./src/agent/chat/models.ts","./src/agent/chat/state.ts","./src/agent/chat/types.ts","./src/agent/chat/utils.ts","./src/agent/chat/prompt/index.ts","./src/agent/chat/prompt/pw-utils-docs.ts","./src/agent/chat/prompt/repo.ts","./src/agent/chat/utils/tool-calls.ts","./src/agent/code-review/prompt.ts","./src/agent/codegen/create-test-block.ts","./src/agent/codegen/fix-ts-errors.ts","./src/agent/codegen/lexical-scoped-vars.ts","./src/agent/codegen/skills-retriever.ts","./src/agent/codegen/test-update-feedback.ts","./src/agent/codegen/types.ts","./src/agent/codegen/update-flow.ts","./src/agent/codegen/use-skill.ts","./src/agent/codegen/utils.ts","./src/agent/cua/computer.ts","./src/agent/cua/index.ts","./src/agent/cua/model.ts","./src/agent/cua/pw-codegen/element-from-point.ts","./src/agent/cua/pw-codegen/types.ts","./src/agent/cua/pw-codegen/pw-pause/for-recorder.ts","./src/agent/cua/pw-codegen/pw-pause/index.ts","./src/agent/cua/pw-codegen/pw-pause/ipc.ts","./src/agent/cua/pw-codegen/pw-pause/patch.ts","./src/agent/cua/pw-codegen/pw-pause/types.ts","./src/agent/cua/pw-codegen/pw-pause/utils.ts","./src/agent/diagnosis-agent/index.ts","./src/agent/diagnosis-agent/strict-mode-violation.ts","./src/agent/master/action-tool-calls.ts","./src/agent/master/element-annotation.ts","./src/agent/master/execute-browser-action.ts","./src/agent/master/execute-skill-action.ts","./src/agent/master/next-action.ts","./src/agent/master/planner.ts","./src/agent/master/run.ts","./src/agent/master/scroller.ts","./src/agent/master/with-hints.ts","./src/agent/master/browser-tests/cua.spec.ts","./src/agent/master/browser-tests/fixtures.ts","./src/agent/master/browser-tests/index.spec.ts","./src/agent/master/browser-tests/skills.spec.ts","./src/agent/master/icon-descriptor/index.ts","./src/agent/master/icon-descriptor/normalize-svg.ts","./src/agent/planner/run-time-planner.ts","./src/agent/planner/run.ts","./src/artifacts/index.ts","./src/artifacts/utils.ts","./src/auth/cli-auth.ts","./src/auth/index.ts","./src/auth/token-store.ts","./src/bin/environments.ts","./src/bin/index.ts","./src/bin/setup.ts","./src/bin/logger/index.ts","./src/bin/utils/context.ts","./src/bin/utils/index.ts","./src/bin/utils/fs/index.ts","./src/bin/utils/platform/web/index.ts","./src/bin/utils/platform/web/test-files/ts-path-import-validate.ts","./src/bin/utils/scenarios/index.ts","./src/browser-injected-scripts/annotate-elements.spec.ts","./src/constants/index.ts","./src/dashboard/client.ts","./src/dashboard/index.ts","./src/dashboard/totp.ts","./src/dashboard/types.ts","./src/errors/index.ts","./src/evals/append-create-test-agent.evals.ts","./src/evals/fetch-pom-skills-agent.evals.ts","./src/evals/master-agent.evals.ts","./src/evals/type.ts","./src/evals/update-scenario-agent.evals.ts","./src/file/client.ts","./src/file/server.ts","./src/file-info/index.ts","./src/file-info/adapters/file-system/index.ts","./src/file-info/adapters/file-system/reader.ts","./src/file-info/adapters/github/index.ts","./src/file-info/adapters/github/reader.ts","./src/human-in-the-loop/cli.ts","./src/human-in-the-loop/index.ts","./src/human-in-the-loop/ipc.ts","./src/page/index.ts","./src/prompts/lib/ts-transformer.ts","./src/recorder/env-variables.ts","./src/recorder/index.ts","./src/recorder/request.ts","./src/recorder/temp-files.ts","./src/recorder/upload.ts","./src/recorder/validation.ts","./src/test-build/index.ts","./src/tools/diagnosis-fetcher.ts","./src/tools/index.ts","./src/tools/list-environments.ts","./src/tools/run-test.ts","./src/tools/test-gen-browser.ts","./src/tools/commit-and-create-pr/index.ts","./src/tools/definitions/commit-and-create-pr.ts","./src/tools/definitions/delete-file.ts","./src/tools/definitions/download-build.ts","./src/tools/definitions/fetch-video-analysis.ts","./src/tools/definitions/grep.ts","./src/tools/definitions/list-tests-and-projects.ts","./src/tools/definitions/merge-conflicts.ts","./src/tools/definitions/run-test.ts","./src/tools/definitions/str_replace_editor.ts","./src/tools/definitions/test-gen-browser.ts","./src/tools/definitions/upgrade-packages.ts","./src/tools/definitions/utils.ts","./src/tools/delete-file/index.ts","./src/tools/download-build/index.ts","./src/tools/executor/index.ts","./src/tools/executor/utils/checkpoint.ts","./src/tools/executor/utils/git.ts","./src/tools/executor/utils/index.ts","./src/tools/executor/utils/pr-description.ts","./src/tools/fetch-image/index.ts","./src/tools/fetch-last-successful-test-run/index.ts","./src/tools/fetch-video-analysis/index.ts","./src/tools/fetch-video-analysis/local-ffmpeg-client.ts","./src/tools/fetch-video-analysis/utils.ts","./src/tools/fetch-video-analysis/video-analysis.ts","./src/tools/file-operations/create.ts","./src/tools/file-operations/index.ts","./src/tools/file-operations/insert.ts","./src/tools/file-operations/replace.ts","./src/tools/file-operations/shared/git-helper.ts","./src/tools/file-operations/shared/helpers.ts","./src/tools/file-operations/view/index.ts","./src/tools/grep/index.ts","./src/tools/grep/types.ts","./src/tools/grep/ripgrep/index.ts","./src/tools/issues/create-issue.ts","./src/tools/issues/index.ts","./src/tools/issues/list-issues.ts","./src/tools/issues/metadata-schema.ts","./src/tools/issues/update-issue.ts","./src/tools/issues/utils.ts","./src/tools/list-tests-and-projects/index.ts","./src/tools/merge-conflicts/index.ts","./src/tools/test-run-fetcher/index.ts","./src/tools/test-run-fetcher/types.ts","./src/tools/trace-dot-zip/index.ts","./src/tools/trace-dot-zip/types.ts","./src/tools/trace-dot-zip/utils/console-trace.ts","./src/tools/trace-dot-zip/utils/extract-zip.ts","./src/tools/trace-dot-zip/utils/network-trace.ts","./src/tools/triage-summary/index.ts","./src/tools/triage-summary/types.ts","./src/tools/triage-summary/utils.ts","./src/tools/upgrade-packages/index.ts","./src/tools/upgrade-packages/utils.ts","./src/tools/utils/queue.ts","./src/tools/view-failed-test-run-report/index.ts","./src/trace-utils/index.ts","./src/types/handlebars.d.ts","./src/types/index.ts","./src/utils/SQSClient.ts","./src/utils/dedup-image-fs.ts","./src/utils/dedup-image.ts","./src/utils/env.ts","./src/utils/exec.ts","./src/utils/file.ts","./src/utils/html.ts","./src/utils/index.ts","./src/utils/json.ts","./src/utils/model.ts","./src/utils/playwright-report-parser.ts","./src/utils/repo-tree.ts","./src/utils/slug.ts","./src/utils/string.ts","./src/utils/stripAnsi.ts"],"version":"5.8.3"}
1
+ {"root":["./src/index.ts","./src/logger.ts","./src/actions/assert.ts","./src/actions/click.ts","./src/actions/done.ts","./src/actions/fill.ts","./src/actions/goto.ts","./src/actions/hover.ts","./src/actions/index.ts","./src/actions/next-task.ts","./src/actions/press.ts","./src/actions/skill.ts","./src/actions/text-content.ts","./src/actions/constants/index.ts","./src/actions/utils/index.ts","./src/agent/base/index.ts","./src/agent/browsing/index.ts","./src/agent/browsing/run.ts","./src/agent/browsing/utils.ts","./src/agent/chat/agent-loop.ts","./src/agent/chat/exports.ts","./src/agent/chat/filesystem-cache.ts","./src/agent/chat/index.ts","./src/agent/chat/models.ts","./src/agent/chat/state.ts","./src/agent/chat/types.ts","./src/agent/chat/utils.ts","./src/agent/chat/prompt/index.ts","./src/agent/chat/prompt/pw-utils-docs.ts","./src/agent/chat/prompt/repo.ts","./src/agent/chat/utils/tool-calls.ts","./src/agent/code-review/prompt.ts","./src/agent/codegen/create-test-block.ts","./src/agent/codegen/fix-ts-errors.ts","./src/agent/codegen/lexical-scoped-vars.ts","./src/agent/codegen/skills-retriever.ts","./src/agent/codegen/test-update-feedback.ts","./src/agent/codegen/types.ts","./src/agent/codegen/update-flow.ts","./src/agent/codegen/use-skill.ts","./src/agent/codegen/utils.ts","./src/agent/cua/computer.ts","./src/agent/cua/index.ts","./src/agent/cua/model.ts","./src/agent/cua/pw-codegen/element-from-point.ts","./src/agent/cua/pw-codegen/types.ts","./src/agent/cua/pw-codegen/pw-pause/for-recorder.ts","./src/agent/cua/pw-codegen/pw-pause/index.ts","./src/agent/cua/pw-codegen/pw-pause/ipc.ts","./src/agent/cua/pw-codegen/pw-pause/patch.ts","./src/agent/cua/pw-codegen/pw-pause/types.ts","./src/agent/cua/pw-codegen/pw-pause/utils.ts","./src/agent/diagnosis-agent/index.ts","./src/agent/diagnosis-agent/strict-mode-violation.ts","./src/agent/master/action-tool-calls.ts","./src/agent/master/element-annotation.ts","./src/agent/master/execute-browser-action.ts","./src/agent/master/execute-skill-action.ts","./src/agent/master/next-action.ts","./src/agent/master/planner.ts","./src/agent/master/run.ts","./src/agent/master/scroller.ts","./src/agent/master/with-hints.ts","./src/agent/master/browser-tests/cua.spec.ts","./src/agent/master/browser-tests/fixtures.ts","./src/agent/master/browser-tests/index.spec.ts","./src/agent/master/browser-tests/skills.spec.ts","./src/agent/master/icon-descriptor/index.ts","./src/agent/master/icon-descriptor/normalize-svg.ts","./src/agent/planner/run-time-planner.ts","./src/agent/planner/run.ts","./src/artifacts/index.ts","./src/artifacts/utils.ts","./src/auth/cli-auth.ts","./src/auth/index.ts","./src/auth/token-store.ts","./src/bin/environments.ts","./src/bin/index.ts","./src/bin/setup.ts","./src/bin/logger/index.ts","./src/bin/utils/context.ts","./src/bin/utils/index.ts","./src/bin/utils/fs/index.ts","./src/bin/utils/platform/web/index.ts","./src/bin/utils/platform/web/test-files/ts-path-import-validate.ts","./src/bin/utils/scenarios/index.ts","./src/browser-injected-scripts/annotate-elements.spec.ts","./src/constants/index.ts","./src/dashboard/client.ts","./src/dashboard/index.ts","./src/dashboard/totp.ts","./src/dashboard/types.ts","./src/errors/index.ts","./src/evals/append-create-test-agent.evals.ts","./src/evals/fetch-pom-skills-agent.evals.ts","./src/evals/master-agent.evals.ts","./src/evals/type.ts","./src/evals/update-scenario-agent.evals.ts","./src/file/client.ts","./src/file/server.ts","./src/file-info/index.ts","./src/file-info/adapters/file-system/index.ts","./src/file-info/adapters/file-system/reader.ts","./src/file-info/adapters/github/index.ts","./src/file-info/adapters/github/reader.ts","./src/human-in-the-loop/cli.ts","./src/human-in-the-loop/index.ts","./src/human-in-the-loop/ipc.ts","./src/page/index.ts","./src/prompts/lib/ts-transformer.ts","./src/recorder/env-variables.ts","./src/recorder/index.ts","./src/recorder/request.ts","./src/recorder/temp-files.ts","./src/recorder/upload.ts","./src/recorder/validation.ts","./src/test-build/index.ts","./src/tools/diagnosis-fetcher.ts","./src/tools/index.ts","./src/tools/list-environments.ts","./src/tools/run-test.ts","./src/tools/test-gen-browser.ts","./src/tools/commit-and-create-pr/index.ts","./src/tools/definitions/commit-and-create-pr.ts","./src/tools/definitions/delete-file.ts","./src/tools/definitions/download-build.ts","./src/tools/definitions/fetch-video-analysis.ts","./src/tools/definitions/grep.ts","./src/tools/definitions/list-tests-and-projects.ts","./src/tools/definitions/merge-conflicts.ts","./src/tools/definitions/rename-file.ts","./src/tools/definitions/run-test.ts","./src/tools/definitions/str_replace_editor.ts","./src/tools/definitions/test-gen-browser.ts","./src/tools/definitions/upgrade-packages.ts","./src/tools/definitions/utils.ts","./src/tools/delete-file/index.ts","./src/tools/download-build/index.ts","./src/tools/executor/index.ts","./src/tools/executor/utils/checkpoint.ts","./src/tools/executor/utils/git.ts","./src/tools/executor/utils/index.ts","./src/tools/executor/utils/pr-description.ts","./src/tools/fetch-file/index.ts","./src/tools/fetch-last-successful-test-run/index.ts","./src/tools/fetch-video-analysis/index.ts","./src/tools/fetch-video-analysis/local-ffmpeg-client.ts","./src/tools/fetch-video-analysis/open-ai.ts","./src/tools/fetch-video-analysis/utils.ts","./src/tools/fetch-video-analysis/video-analysis.ts","./src/tools/file-operations/create.ts","./src/tools/file-operations/index.ts","./src/tools/file-operations/insert.ts","./src/tools/file-operations/replace.ts","./src/tools/file-operations/shared/git-helper.ts","./src/tools/file-operations/shared/helpers.ts","./src/tools/file-operations/view/index.ts","./src/tools/grep/index.ts","./src/tools/grep/types.ts","./src/tools/grep/ripgrep/index.ts","./src/tools/issues/create-issue.ts","./src/tools/issues/index.ts","./src/tools/issues/list-issues.ts","./src/tools/issues/metadata-schema.ts","./src/tools/issues/update-issue.ts","./src/tools/issues/utils.ts","./src/tools/list-tests-and-projects/index.ts","./src/tools/merge-conflicts/index.ts","./src/tools/rename-file/index.ts","./src/tools/test-run-fetcher/index.ts","./src/tools/test-run-fetcher/types.ts","./src/tools/trace-dot-zip/index.ts","./src/tools/trace-dot-zip/types.ts","./src/tools/trace-dot-zip/utils/console-trace.ts","./src/tools/trace-dot-zip/utils/extract-zip.ts","./src/tools/trace-dot-zip/utils/network-trace.ts","./src/tools/triage-summary/index.ts","./src/tools/triage-summary/types.ts","./src/tools/triage-summary/utils.ts","./src/tools/upgrade-packages/index.ts","./src/tools/upgrade-packages/utils.ts","./src/tools/utils/queue.ts","./src/tools/view-failed-test-run-report/index.ts","./src/trace-utils/index.ts","./src/types/handlebars.d.ts","./src/types/index.ts","./src/utils/SQSClient.ts","./src/utils/dedup-image-fs.ts","./src/utils/dedup-image.ts","./src/utils/env.ts","./src/utils/exec.ts","./src/utils/file.ts","./src/utils/html.ts","./src/utils/index.ts","./src/utils/json.ts","./src/utils/model.ts","./src/utils/playwright-report-parser.ts","./src/utils/repo-tree.ts","./src/utils/slug.ts","./src/utils/string.ts","./src/utils/stripAnsi.ts"],"version":"5.8.3"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/fetch-image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA8B,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,gBAAgB;;;;;;EAEpB,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAuDjE,CAAC"}