@empiricalrun/test-gen 0.80.0 → 0.80.2

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 (49) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/agent/chat/exports.d.ts +1 -1
  3. package/dist/agent/chat/exports.d.ts.map +1 -1
  4. package/dist/agent/chat/exports.js +3 -4
  5. package/dist/agent/chat/index.d.ts.map +1 -1
  6. package/dist/agent/chat/index.js +13 -9
  7. package/dist/agent/chat/prompt/skills.d.ts +3 -0
  8. package/dist/agent/chat/prompt/skills.d.ts.map +1 -0
  9. package/dist/agent/chat/prompt/skills.js +36 -0
  10. package/dist/agent/triage/index.d.ts.map +1 -1
  11. package/dist/agent/triage/index.js +2 -1
  12. package/dist/file-info/adapters/github/reader.d.ts +1 -9
  13. package/dist/file-info/adapters/github/reader.d.ts.map +1 -1
  14. package/dist/file-info/adapters/github/reader.js +8 -130
  15. package/dist/file-info/index.d.ts +0 -1
  16. package/dist/file-info/index.d.ts.map +1 -1
  17. package/dist/file-info/index.js +1 -3
  18. package/dist/telemetry/index.d.ts.map +1 -1
  19. package/dist/telemetry/index.js +2 -0
  20. package/dist/tools/api-client/index.d.ts.map +1 -1
  21. package/dist/tools/api-client/index.js +88 -3
  22. package/dist/tools/executor/index.d.ts.map +1 -1
  23. package/dist/tools/executor/index.js +12 -0
  24. package/dist/tools/fetch-file/index.d.ts.map +1 -1
  25. package/dist/tools/fetch-file/index.js +3 -11
  26. package/dist/tools/index.d.ts +1 -3
  27. package/dist/tools/index.d.ts.map +1 -1
  28. package/dist/tools/index.js +8 -23
  29. package/dist/tools/safe-bash/index.d.ts.map +1 -1
  30. package/dist/tools/safe-bash/index.js +55 -4
  31. package/dist/tools/slack-message/index.d.ts +3 -0
  32. package/dist/tools/slack-message/index.d.ts.map +1 -0
  33. package/dist/tools/slack-message/index.js +69 -0
  34. package/dist/tools/test-run-fetcher/types.d.ts +0 -36
  35. package/dist/tools/test-run-fetcher/types.d.ts.map +1 -1
  36. package/dist/tools/utils/apply-line-limit.d.ts +4 -0
  37. package/dist/tools/utils/apply-line-limit.d.ts.map +1 -0
  38. package/dist/tools/utils/apply-line-limit.js +18 -0
  39. package/package.json +6 -6
  40. package/tsconfig.tsbuildinfo +1 -1
  41. package/dist/file-info/adapters/github/index.d.ts +0 -12
  42. package/dist/file-info/adapters/github/index.d.ts.map +0 -1
  43. package/dist/file-info/adapters/github/index.js +0 -29
  44. package/dist/tools/utils/queue.d.ts +0 -5
  45. package/dist/tools/utils/queue.d.ts.map +0 -1
  46. package/dist/tools/utils/queue.js +0 -41
  47. package/dist/utils/SQSClient.d.ts +0 -14
  48. package/dist/utils/SQSClient.d.ts.map +0 -1
  49. package/dist/utils/SQSClient.js +0 -116
@@ -1,16 +1,14 @@
1
1
  import { PendingToolCall, SupportedChatModels, Tool, ToolDefinition } from "@empiricalrun/shared-types/chat-agent";
2
- import { ServicePayload } from "@empiricalrun/shared-types/tool-execute-service";
3
2
  export { safeBashTool } from "./definitions/safe-bash";
4
3
  export { scrapeHtmlTool } from "./firecrawl-scrape";
5
4
  export { validateToolInput } from "./utils/validate-schema";
6
5
  type ToolOrToolDefinition = Tool | ToolDefinition;
6
+ export declare const testGenerationToolsWithoutBrowserAgent: ToolOrToolDefinition[];
7
7
  export declare const testGenerationTools: ToolOrToolDefinition[];
8
- export declare const allToolsDefinitions: ToolOrToolDefinition[];
9
8
  export declare function hasBuiltInTextEditor(model: SupportedChatModels): boolean;
10
9
  export declare function hasBuiltInWebFetch(model: SupportedChatModels): boolean;
11
10
  export declare function textEditorToolsForModel(model: SupportedChatModels): ToolOrToolDefinition[];
12
11
  export declare function textViewToolsForModel(model: SupportedChatModels): ToolOrToolDefinition[];
13
12
  export declare function toolsNeedBrowser(toolCalls: PendingToolCall[]): boolean;
14
13
  export declare function nameForTelemetry(toolCall: PendingToolCall): string;
15
- export declare function sendToolRequestToRemoteQueue(payload: ServicePayload): Promise<void>;
16
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,IAAI,EACJ,cAAc,EACf,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAiCjF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,KAAK,oBAAoB,GAAG,IAAI,GAAG,cAAc,CAAC;AAclD,eAAO,MAAM,mBAAmB,EAAE,oBAAoB,EAMrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,oBAAoB,EAcrD,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,WAE9D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,WAE5D;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,GACzB,oBAAoB,EAAE,CAExB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,GACzB,oBAAoB,EAAE,CAExB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,WAM5D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAQlE;AAED,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,cAAc,iBAoBzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,IAAI,EACJ,cAAc,EACf,MAAM,uCAAuC,CAAC;AA+B/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,KAAK,oBAAoB,GAAG,IAAI,GAAG,cAAc,CAAC;AAclD,eAAO,MAAM,sCAAsC,EAAE,oBAAoB,EAKxE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,oBAAoB,EAGrD,CAAC;AAkBF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,WAE9D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,WAE5D;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,GACzB,oBAAoB,EAAE,CAExB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,GACzB,oBAAoB,EAAE,CAExB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,WAM5D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAQlE"}
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.allToolsDefinitions = exports.testGenerationTools = exports.validateToolInput = exports.scrapeHtmlTool = exports.safeBashTool = void 0;
3
+ exports.testGenerationTools = exports.testGenerationToolsWithoutBrowserAgent = exports.validateToolInput = exports.scrapeHtmlTool = exports.safeBashTool = void 0;
4
4
  exports.hasBuiltInTextEditor = hasBuiltInTextEditor;
5
5
  exports.hasBuiltInWebFetch = hasBuiltInWebFetch;
6
6
  exports.textEditorToolsForModel = textEditorToolsForModel;
7
7
  exports.textViewToolsForModel = textViewToolsForModel;
8
8
  exports.toolsNeedBrowser = toolsNeedBrowser;
9
9
  exports.nameForTelemetry = nameForTelemetry;
10
- exports.sendToolRequestToRemoteQueue = sendToolRequestToRemoteQueue;
11
- const SQSClient_1 = require("../utils/SQSClient");
12
10
  const create_pull_request_1 = require("./create-pull-request");
13
11
  const analyse_video_1 = require("./definitions/analyse-video");
14
12
  const delete_file_1 = require("./definitions/delete-file");
@@ -30,7 +28,6 @@ const issues_v1_1 = require("./issues-v1");
30
28
  const list_environments_1 = require("./list-environments");
31
29
  const test_run_fetcher_1 = require("./test-run-fetcher");
32
30
  const triage_summary_1 = require("./triage-summary");
33
- const queue_1 = require("./utils/queue");
34
31
  var safe_bash_2 = require("./definitions/safe-bash");
35
32
  Object.defineProperty(exports, "safeBashTool", { enumerable: true, get: function () { return safe_bash_2.safeBashTool; } });
36
33
  var firecrawl_scrape_2 = require("./firecrawl-scrape");
@@ -48,14 +45,17 @@ const commonTools = [
48
45
  list_tests_and_projects_1.listProjectsTool,
49
46
  list_tests_and_projects_1.listTestsForProjectTool,
50
47
  ];
51
- exports.testGenerationTools = [
52
- test_gen_browser_1.generateTestWithBrowserAgent,
48
+ exports.testGenerationToolsWithoutBrowserAgent = [
53
49
  create_pull_request_1.createPullRequestTool,
54
50
  merge_conflicts_1.mergeConflictsTool,
55
51
  delete_file_1.deleteFileTool,
56
52
  rename_file_1.renameFileTool,
57
53
  ];
58
- exports.allToolsDefinitions = [
54
+ exports.testGenerationTools = [
55
+ test_gen_browser_1.generateTestWithBrowserAgent,
56
+ ...exports.testGenerationToolsWithoutBrowserAgent,
57
+ ];
58
+ const allToolsDefinitions = [
59
59
  ...commonTools,
60
60
  ...exports.testGenerationTools,
61
61
  analyse_video_1.analyseVideo,
@@ -83,7 +83,7 @@ function textViewToolsForModel(model) {
83
83
  return !hasBuiltInTextEditor(model) ? Object.values(str_replace_editor_1.textViewTools) : [];
84
84
  }
85
85
  function toolsNeedBrowser(toolCalls) {
86
- return toolCalls.some((toolCall) => exports.allToolsDefinitions.find((t) => t.schema.name === toolCall.name)
86
+ return toolCalls.some((toolCall) => allToolsDefinitions.find((t) => t.schema.name === toolCall.name)
87
87
  ?.needsBrowser);
88
88
  }
89
89
  function nameForTelemetry(toolCall) {
@@ -96,18 +96,3 @@ function nameForTelemetry(toolCall) {
96
96
  return toolName;
97
97
  }
98
98
  }
99
- async function sendToolRequestToRemoteQueue(payload) {
100
- const needsBrowser = toolsNeedBrowser(payload.toolCalls);
101
- const queueUrl = (0, queue_1.getQueueUrl)(payload.toolCalls, needsBrowser);
102
- if (!queueUrl) {
103
- throw new Error(`queueUrl is required for remote execution.`);
104
- }
105
- const region = process.env.AWS_REGION;
106
- const accessKeyId = process.env.AWS_ACCESS_KEY_ID;
107
- const secretAccessKey = process.env.AWS_SECRET_ACCESS_KEY;
108
- if (!region || !accessKeyId || !secretAccessKey) {
109
- throw new Error("AWS_REGION, AWS_ACCESS_KEY_ID, and AWS_SECRET_ACCESS_KEY must be set");
110
- }
111
- const sqs = new SQSClient_1.SQSClient(region, accessKeyId, secretAccessKey);
112
- await sqs.sendMessage(queueUrl, payload);
113
- }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/safe-bash/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,uCAAuC,CAAC;AA0I9E,eAAO,MAAM,YAAY,EAAE,IAoF1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/safe-bash/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,uCAAuC,CAAC;AAqN9E,eAAO,MAAM,YAAY,EAAE,IAmF1B,CAAC"}
@@ -4,8 +4,60 @@ exports.safeBashTool = void 0;
4
4
  const child_process_1 = require("child_process");
5
5
  const util_1 = require("util");
6
6
  const safe_bash_1 = require("../definitions/safe-bash");
7
+ const apply_line_limit_1 = require("../utils/apply-line-limit");
7
8
  const validators_1 = require("../utils/validators");
8
9
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
10
+ function execWithProcessGroupTimeout(script, options) {
11
+ return new Promise((resolve, reject) => {
12
+ const child = (0, child_process_1.spawn)("/bin/bash", ["-c", script], {
13
+ cwd: options.cwd,
14
+ env: options.env,
15
+ detached: true,
16
+ stdio: ["ignore", "pipe", "pipe"],
17
+ });
18
+ let stdout = "";
19
+ let stderr = "";
20
+ let killed = false;
21
+ child.stdout.on("data", (data) => {
22
+ stdout += data.toString();
23
+ });
24
+ child.stderr.on("data", (data) => {
25
+ stderr += data.toString();
26
+ });
27
+ const timer = setTimeout(() => {
28
+ killed = true;
29
+ // Kill the entire process group (negative pid)
30
+ try {
31
+ process.kill(-child.pid, "SIGKILL");
32
+ }
33
+ catch {
34
+ // Process group may already be gone
35
+ }
36
+ }, options.timeout);
37
+ child.on("close", (code) => {
38
+ clearTimeout(timer);
39
+ if (killed) {
40
+ const error = new Error("Process timed out");
41
+ error.stdout = stdout;
42
+ error.stderr = stderr || `Process timed out after ${options.timeout}ms`;
43
+ reject(error);
44
+ }
45
+ else if (code !== 0) {
46
+ const error = new Error(`Process exited with code ${code}`);
47
+ error.stdout = stdout;
48
+ error.stderr = stderr || `Process exited with code ${code}`;
49
+ reject(error);
50
+ }
51
+ else {
52
+ resolve({ stdout, stderr });
53
+ }
54
+ });
55
+ child.on("error", (err) => {
56
+ clearTimeout(timer);
57
+ reject(err);
58
+ });
59
+ });
60
+ }
9
61
  const DANGEROUS_PATTERNS = [
10
62
  /git\s+checkout/i,
11
63
  /git\s+switch/i,
@@ -71,10 +123,10 @@ function containsDangerousPattern(script) {
71
123
  function formatResult({ stdout, stderr, gitStatus, validationResult, }) {
72
124
  const parts = [];
73
125
  if (stdout.trim()) {
74
- parts.push(`## stdout\n\`\`\`\n${stdout.trim()}\n\`\`\``);
126
+ parts.push(`## stdout\n\`\`\`\n${(0, apply_line_limit_1.applyLineLimit)(stdout.trim(), apply_line_limit_1.SAFE_BASH_TRIM_MESSAGE)}\n\`\`\``);
75
127
  }
76
128
  if (stderr.trim()) {
77
- parts.push(`## stderr\n\`\`\`\n${stderr.trim()}\n\`\`\``);
129
+ parts.push(`## stderr\n\`\`\`\n${(0, apply_line_limit_1.applyLineLimit)(stderr.trim(), apply_line_limit_1.SAFE_BASH_TRIM_MESSAGE)}\n\`\`\``);
78
130
  }
79
131
  if (validationResult) {
80
132
  if (!validationResult.success) {
@@ -110,10 +162,9 @@ exports.safeBashTool = {
110
162
  let stdout = "";
111
163
  let stderr = "";
112
164
  try {
113
- const result = await execAsync(script, {
165
+ const result = await execWithProcessGroupTimeout(script, {
114
166
  cwd: repoPath,
115
167
  timeout,
116
- shell: "/bin/bash",
117
168
  env: { ...process.env, ...environmentOverrides },
118
169
  });
119
170
  stdout = result.stdout;
@@ -0,0 +1,3 @@
1
+ import type { Tool } from "@empiricalrun/shared-types/chat-agent";
2
+ export declare const slackMessageTool: Tool;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/slack-message/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uCAAuC,CAAC;AAuBlE,eAAO,MAAM,gBAAgB,EAAE,IAiD9B,CAAC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.slackMessageTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const SlackActionSchema = zod_1.z.object({
6
+ label: zod_1.z.string().describe("Button label text"),
7
+ url: zod_1.z.string().describe("URL to open when clicked"),
8
+ style: zod_1.z
9
+ .enum(["primary", "danger"])
10
+ .optional()
11
+ .describe("Optional button style: primary (green) or danger (red)"),
12
+ });
13
+ const SlackMessageSchema = zod_1.z.object({
14
+ channel_id: zod_1.z.string().describe("Slack channel ID to post the message to"),
15
+ message: zod_1.z.string().describe("Message text to post"),
16
+ actions: zod_1.z
17
+ .array(SlackActionSchema)
18
+ .optional()
19
+ .describe("Optional list of action buttons to include below the message. Each button opens a URL when clicked."),
20
+ });
21
+ exports.slackMessageTool = {
22
+ schema: {
23
+ name: "slackMessage",
24
+ description: `Post a message to a Slack channel.
25
+
26
+ Use this tool to send messages to Slack channels that are linked to the project.
27
+
28
+ ## Known channels
29
+
30
+ - \`C07AQ97P37D\` - #notifications-customer
31
+ - \`C08P2JDA3AR\` - #agent-sessions
32
+ - \`C09DP3HBGEB\` - #agent-sessions-preprod
33
+ - \`C08UZP9TT3K\` - #agent-errors-prod
34
+ - \`C09AR2WQPDX\` - #issues-alerts
35
+ - \`C09SFF6TKAQ\` - #requests-alerts
36
+ - \`C0A6S4VUYKX\` - #customer-summaries
37
+ - \`C07CJT50B45\` - #alerts
38
+ - \`C0AFJ20FHTP\` - #alerts-staging
39
+ `,
40
+ parameters: SlackMessageSchema,
41
+ },
42
+ needsBrowser: false,
43
+ isInlineTool: true,
44
+ execute: async ({ input, apiClient }) => {
45
+ if (!apiClient) {
46
+ throw new Error("Dashboard API client is not available.");
47
+ }
48
+ try {
49
+ const response = await apiClient.request("/api/slack/message", {
50
+ method: "POST",
51
+ body: {
52
+ channel_id: input.channel_id,
53
+ message: input.message,
54
+ actions: input.actions,
55
+ },
56
+ });
57
+ return {
58
+ isError: false,
59
+ result: JSON.stringify(response, null, 2),
60
+ };
61
+ }
62
+ catch (error) {
63
+ return {
64
+ isError: true,
65
+ result: `Slack message failed: ${error instanceof Error ? error.message : String(error)}`,
66
+ };
67
+ }
68
+ },
69
+ };
@@ -49,23 +49,6 @@ type FailedRunMetadata = {
49
49
  pw_test_id: string;
50
50
  varying_retries: boolean;
51
51
  };
52
- type CapturedNetworkFailure = {
53
- endpoint: string;
54
- status: number;
55
- timestamp: string;
56
- distanceFromFailureInMilliseconds: number;
57
- method: string;
58
- request: {
59
- headers: {
60
- [any: string]: string;
61
- }[];
62
- };
63
- response: {
64
- headers: {
65
- [any: string]: string;
66
- }[];
67
- };
68
- };
69
52
  type TestCaseSummaryDetail = {
70
53
  id: number;
71
54
  test_case_id: number;
@@ -75,26 +58,7 @@ type TestCaseSummaryDetail = {
75
58
  failure_type: string;
76
59
  failure_type_description: string;
77
60
  last_commit_before_run_started_at: string;
78
- merged_summary?: {
79
- content: string;
80
- } | null;
81
61
  failed_run_metadata: FailedRunMetadata;
82
- visual_diff_summary: {
83
- failedStep: string;
84
- reason: string;
85
- summary: string;
86
- videos_picked_for_comparison: {
87
- failure: string;
88
- success: string;
89
- };
90
- } | null;
91
- error_stack_summary?: {
92
- content: string;
93
- } | null;
94
- network_metadata: {
95
- failed_calls: CapturedNetworkFailure[];
96
- failed_calls_within_time_range: CapturedNetworkFailure[];
97
- } | null;
98
62
  created_at: string;
99
63
  slug: string;
100
64
  failing_line: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/test-run-fetcher/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/test-run-fetcher/types.ts"],"names":[],"mappings":"AACA,KAAK,OAAO,GAAG;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,KAAK,eAAe,GAAG,OAAO,GAAG;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;IACjC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,mBAAmB,EAAE,iBAAiB,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,CAAC;YACjB,OAAO,EAAE,eAAe,CAAC;YACzB,uBAAuB,EAAE,qBAAqB,EAAE,CAAC;SAClD,CAAC;KACH,GAAG,IAAI,CAAC;IACT,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function applyLineLimit(text: string, trimMessage: string): string;
2
+ export declare function fetchFileTrimMessage(url: string): string;
3
+ export declare const SAFE_BASH_TRIM_MESSAGE = "[Output trimmed: showing first 100 lines only. Pipe output and grep if needed.]";
4
+ //# sourceMappingURL=apply-line-limit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-line-limit.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/apply-line-limit.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAQxE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,eAAO,MAAM,sBAAsB,oFACgD,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SAFE_BASH_TRIM_MESSAGE = void 0;
4
+ exports.applyLineLimit = applyLineLimit;
5
+ exports.fetchFileTrimMessage = fetchFileTrimMessage;
6
+ const DEFAULT_LINE_LIMIT = 100;
7
+ function applyLineLimit(text, trimMessage) {
8
+ const lines = text.split("\n");
9
+ if (lines.length <= DEFAULT_LINE_LIMIT) {
10
+ return text;
11
+ }
12
+ const trimmedText = lines.slice(0, DEFAULT_LINE_LIMIT).join("\n");
13
+ return trimmedText + "\n\n" + trimMessage;
14
+ }
15
+ function fetchFileTrimMessage(url) {
16
+ return `[Output trimmed: showing first 100 lines. To get the full output, use the Bash tool to fetch via curl and search the response: curl "${url}"]`;
17
+ }
18
+ exports.SAFE_BASH_TRIM_MESSAGE = "[Output trimmed: showing first 100 lines only. Pipe output and grep if needed.]";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empiricalrun/test-gen",
3
- "version": "0.80.0",
3
+ "version": "0.80.2",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"
@@ -90,17 +90,17 @@
90
90
  "zod": "^4.0.1",
91
91
  "@empiricalrun/ast-parser": "^0.0.10",
92
92
  "@empiricalrun/cua": "^0.3.0",
93
- "@empiricalrun/dashboard-client": "^0.2.0",
93
+ "@empiricalrun/dashboard-client": "^0.2.1",
94
94
  "@empiricalrun/shared-types": "0.12.1",
95
95
  "@empiricalrun/llm": "^0.26.0",
96
96
  "@empiricalrun/r2-uploader": "^0.9.1",
97
97
  "@empiricalrun/trace-utils": "^0.1.0",
98
- "@empiricalrun/reporter": "^0.28.0",
99
- "@empiricalrun/test-run": "^0.16.0",
98
+ "@empiricalrun/reporter": "^0.28.1",
99
+ "@empiricalrun/test-run": "^0.16.1",
100
100
  "videostil": "0.3.5"
101
101
  },
102
102
  "devDependencies": {
103
- "@playwright/test": "1.57.0",
103
+ "@playwright/test": "1.58.2",
104
104
  "@types/async-retry": "^1.4.8",
105
105
  "@types/console-log-level": "^1.4.5",
106
106
  "@types/detect-port": "^1.3.5",
@@ -113,7 +113,7 @@
113
113
  "@types/pixelmatch": "^5.2.6",
114
114
  "@types/serve-handler": "^6.1.4",
115
115
  "js-levenshtein": "^1.1.6",
116
- "playwright": "1.57.0",
116
+ "playwright": "1.58.2",
117
117
  "serve-handler": "^6.1.6",
118
118
  "ts-patch": "^3.3.0"
119
119
  },
@@ -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/text-content.ts","./src/actions/constants/index.ts","./src/actions/utils/index.ts","./src/agent/cli.ts","./src/agent/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/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/pw-utils-docs.ts","./src/agent/chat/prompt/repo.ts","./src/agent/chat/prompt/test-case-def.ts","./src/agent/chat/prompt/trace-utils-docs.ts","./src/agent/code-review/index.ts","./src/agent/code-review/types.ts","./src/agent/code-review/xml-parser.ts","./src/agent/code-review/executor/index.ts","./src/agent/fast-triage/index.ts","./src/agent/master/action-tool-calls.ts","./src/agent/master/element-annotation.ts","./src/agent/master/execute-browser-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/planner/run-time-planner.ts","./src/agent/planner/run.ts","./src/agent/triage/index.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/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/tool-response-from-sandbox.ts","./src/dashboard/tool-response.ts","./src/dashboard/totp.ts","./src/dashboard/types.ts","./src/errors/index.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/generate-summary/frame-sampling.ts","./src/generate-summary/generate-error-stack-summary.ts","./src/generate-summary/generate-failed-step-screenshot-diff-summary.ts","./src/generate-summary/generate-grouped-summary.ts","./src/generate-summary/merge-summary.ts","./src/generate-summary/pick-videos-for-comparison.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/telemetry/index.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/analyse-video/index.ts","./src/tools/api-client/index.ts","./src/tools/create-pull-request/index.ts","./src/tools/create-pull-request/utils.ts","./src/tools/definitions/analyse-video.ts","./src/tools/definitions/delete-file.ts","./src/tools/definitions/download-build.ts","./src/tools/definitions/grep.ts","./src/tools/definitions/list-tests-and-projects.ts","./src/tools/definitions/merge-conflicts.ts","./src/tools/definitions/publish-markdown-report.ts","./src/tools/definitions/rename-file.ts","./src/tools/definitions/run-test.ts","./src/tools/definitions/safe-bash.ts","./src/tools/definitions/str_replace_editor.ts","./src/tools/definitions/test-gen-browser.ts","./src/tools/definitions/trace-dot-zip.ts","./src/tools/definitions/utils.ts","./src/tools/delete-file/index.ts","./src/tools/download-build/index.ts","./src/tools/executor/base.ts","./src/tools/executor/index.ts","./src/tools/executor/types.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-file/utils.ts","./src/tools/fetch-session-diff/index.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/helpers.ts","./src/tools/file-operations/view/index.ts","./src/tools/firecrawl-scrape/index.ts","./src/tools/grep/index.ts","./src/tools/grep/types.ts","./src/tools/grep/ripgrep/index.ts","./src/tools/issues-v1/index.ts","./src/tools/issues-v1/list-issues.ts","./src/tools/issues-v1/utils.ts","./src/tools/issues-v2/create-issue.ts","./src/tools/issues-v2/set-issue-description.ts","./src/tools/issues-v2/update-issue.ts","./src/tools/list-tests-and-projects/index.ts","./src/tools/merge-conflicts/index.ts","./src/tools/publish-markdown-report/index.ts","./src/tools/rename-file/index.ts","./src/tools/safe-bash/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-screenshots.ts","./src/tools/trace-dot-zip/utils/extract-steps.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/utils/queue.ts","./src/tools/utils/validate-schema.ts","./src/tools/utils/validators.ts","./src/types/handlebars.d.ts","./src/types/index.ts","./src/utils/SQSClient.ts","./src/utils/env.ts","./src/utils/exec.ts","./src/utils/file.ts","./src/utils/hash.ts","./src/utils/html.ts","./src/utils/index.ts","./src/utils/json.ts","./src/utils/model.ts","./src/utils/playwright-test-id.ts","./src/utils/repo-tree.ts","./src/utils/slug.ts","./src/utils/string.ts","./src/utils/stripAnsi.ts","./src/utils/url-validation.ts","./src/utils/dedup/dedup-image.ts","./src/utils/dedup/find-threshold.ts","./src/video-core/index.ts","./src/video-core/model-limits.ts","./src/video-core/storage-manager.ts","./src/video-core/types.ts","./src/video-core/utils.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/text-content.ts","./src/actions/constants/index.ts","./src/actions/utils/index.ts","./src/agent/cli.ts","./src/agent/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/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/pw-utils-docs.ts","./src/agent/chat/prompt/repo.ts","./src/agent/chat/prompt/skills.ts","./src/agent/chat/prompt/test-case-def.ts","./src/agent/chat/prompt/trace-utils-docs.ts","./src/agent/code-review/index.ts","./src/agent/code-review/types.ts","./src/agent/code-review/xml-parser.ts","./src/agent/code-review/executor/index.ts","./src/agent/fast-triage/index.ts","./src/agent/master/action-tool-calls.ts","./src/agent/master/element-annotation.ts","./src/agent/master/execute-browser-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/planner/run-time-planner.ts","./src/agent/planner/run.ts","./src/agent/triage/index.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/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/tool-response-from-sandbox.ts","./src/dashboard/tool-response.ts","./src/dashboard/totp.ts","./src/dashboard/types.ts","./src/errors/index.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/reader.ts","./src/generate-summary/frame-sampling.ts","./src/generate-summary/generate-error-stack-summary.ts","./src/generate-summary/generate-failed-step-screenshot-diff-summary.ts","./src/generate-summary/generate-grouped-summary.ts","./src/generate-summary/merge-summary.ts","./src/generate-summary/pick-videos-for-comparison.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/telemetry/index.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/analyse-video/index.ts","./src/tools/api-client/index.ts","./src/tools/create-pull-request/index.ts","./src/tools/create-pull-request/utils.ts","./src/tools/definitions/analyse-video.ts","./src/tools/definitions/delete-file.ts","./src/tools/definitions/download-build.ts","./src/tools/definitions/grep.ts","./src/tools/definitions/list-tests-and-projects.ts","./src/tools/definitions/merge-conflicts.ts","./src/tools/definitions/publish-markdown-report.ts","./src/tools/definitions/rename-file.ts","./src/tools/definitions/run-test.ts","./src/tools/definitions/safe-bash.ts","./src/tools/definitions/str_replace_editor.ts","./src/tools/definitions/test-gen-browser.ts","./src/tools/definitions/trace-dot-zip.ts","./src/tools/definitions/utils.ts","./src/tools/delete-file/index.ts","./src/tools/download-build/index.ts","./src/tools/executor/base.ts","./src/tools/executor/index.ts","./src/tools/executor/types.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-file/utils.ts","./src/tools/fetch-session-diff/index.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/helpers.ts","./src/tools/file-operations/view/index.ts","./src/tools/firecrawl-scrape/index.ts","./src/tools/grep/index.ts","./src/tools/grep/types.ts","./src/tools/grep/ripgrep/index.ts","./src/tools/issues-v1/index.ts","./src/tools/issues-v1/list-issues.ts","./src/tools/issues-v1/utils.ts","./src/tools/issues-v2/create-issue.ts","./src/tools/issues-v2/set-issue-description.ts","./src/tools/issues-v2/update-issue.ts","./src/tools/list-tests-and-projects/index.ts","./src/tools/merge-conflicts/index.ts","./src/tools/publish-markdown-report/index.ts","./src/tools/rename-file/index.ts","./src/tools/safe-bash/index.ts","./src/tools/slack-message/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-screenshots.ts","./src/tools/trace-dot-zip/utils/extract-steps.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/utils/apply-line-limit.ts","./src/tools/utils/validate-schema.ts","./src/tools/utils/validators.ts","./src/types/handlebars.d.ts","./src/types/index.ts","./src/utils/env.ts","./src/utils/exec.ts","./src/utils/file.ts","./src/utils/hash.ts","./src/utils/html.ts","./src/utils/index.ts","./src/utils/json.ts","./src/utils/model.ts","./src/utils/playwright-test-id.ts","./src/utils/repo-tree.ts","./src/utils/slug.ts","./src/utils/string.ts","./src/utils/stripAnsi.ts","./src/utils/url-validation.ts","./src/utils/dedup/dedup-image.ts","./src/utils/dedup/find-threshold.ts","./src/video-core/index.ts","./src/video-core/model-limits.ts","./src/video-core/storage-manager.ts","./src/video-core/types.ts","./src/video-core/utils.ts"],"version":"5.8.3"}
@@ -1,12 +0,0 @@
1
- import { IDashboardAPIClient } from "@empiricalrun/shared-types/api/base";
2
- import { ToolResult } from "@empiricalrun/shared-types/chat-agent";
3
- import { type StrReplaceInputParams } from "../../../tools/file-operations/shared/helpers";
4
- export { getFileInfoFromGitHub } from "./reader";
5
- export declare function viewFileUsingGitHub({ input, repoName, apiClient, branchName, baseBranch, }: {
6
- input: StrReplaceInputParams;
7
- repoName: string;
8
- apiClient: IDashboardAPIClient;
9
- branchName: string;
10
- baseBranch: string;
11
- }): Promise<ToolResult>;
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/file-info/adapters/github/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAEnE,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,wBAAsB,mBAAmB,CAAC,EACxC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,GACX,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,UAAU,CAAC,CA2BtB"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFileInfoFromGitHub = void 0;
4
- exports.viewFileUsingGitHub = viewFileUsingGitHub;
5
- const helpers_1 = require("../../../tools/file-operations/shared/helpers");
6
- const reader_1 = require("./reader");
7
- var reader_2 = require("./reader");
8
- Object.defineProperty(exports, "getFileInfoFromGitHub", { enumerable: true, get: function () { return reader_2.getFileInfoFromGitHub; } });
9
- async function viewFileUsingGitHub({ input, repoName, apiClient, branchName, baseBranch, }) {
10
- const filePath = (0, helpers_1.normalizePath)(input.path);
11
- const githubReader = new reader_1.GitHubFileReader(repoName, apiClient);
12
- const fileData = await githubReader.readFile(filePath, branchName, baseBranch);
13
- if (!fileData) {
14
- return {
15
- result: `Error: File or directory ${filePath} is not found.`,
16
- isError: true,
17
- };
18
- }
19
- if (fileData.isDirectory) {
20
- return {
21
- result: fileData.content,
22
- isError: false,
23
- };
24
- }
25
- return {
26
- result: (0, helpers_1.formatLinesWithNumbers)(fileData.content, input.view_range),
27
- isError: false,
28
- };
29
- }
@@ -1,5 +0,0 @@
1
- import { PendingToolCall } from "@empiricalrun/shared-types/chat-agent";
2
- export declare function appendSuffixToQueueUrl(queueUrl: string, suffix: string): string;
3
- export declare function replaceRegionInUrl(url: string, newRegion: string): string;
4
- export declare function getQueueUrl(toolCalls: PendingToolCall[], needsBrowser: boolean): string;
5
- //# sourceMappingURL=queue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/tools/utils/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOzE;AAkBD,wBAAgB,WAAW,CACzB,SAAS,EAAE,eAAe,EAAE,EAC5B,YAAY,EAAE,OAAO,GACpB,MAAM,CAeR"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.appendSuffixToQueueUrl = appendSuffixToQueueUrl;
4
- exports.replaceRegionInUrl = replaceRegionInUrl;
5
- exports.getQueueUrl = getQueueUrl;
6
- function appendSuffixToQueueUrl(queueUrl, suffix) {
7
- const parts = queueUrl.split("/");
8
- const queueName = parts.pop();
9
- const queueNameWithoutFifo = queueName?.replace(/\.fifo$/, "");
10
- return `${parts.join("/")}/${queueNameWithoutFifo}-${suffix}.fifo`;
11
- }
12
- function replaceRegionInUrl(url, newRegion) {
13
- const parsedUrl = new URL(url);
14
- parsedUrl.hostname = parsedUrl.hostname.replace(/\.([a-z0-9-]+)\.amazonaws\.com$/, `.${newRegion}.amazonaws.com`);
15
- return parsedUrl.toString();
16
- }
17
- function buildQueueUrlsForPreview(baseQueueUrl) {
18
- const buildHash = process.env.TOOL_EXECUTION_SERVICE_BUILD_HASH;
19
- if (!buildHash) {
20
- throw new Error("TOOL_EXECUTION_SERVICE_BUILD_HASH is not set");
21
- }
22
- const updatedRegionForQueue = replaceRegionInUrl(baseQueueUrl, process.env.AWS_REGION);
23
- const queueUrl = appendSuffixToQueueUrl(updatedRegionForQueue, buildHash);
24
- console.log("queueUrl for preview", queueUrl);
25
- return queueUrl;
26
- }
27
- function getQueueUrl(toolCalls, needsBrowser) {
28
- const browserSqsQueueUrl = process.env.TOOL_EXECUTION_SQS_URL_BROWSER;
29
- const baseSqsQueueUrl = process.env.TOOL_EXECUTION_SQS_URL;
30
- const queueUrl = needsBrowser ? browserSqsQueueUrl : baseSqsQueueUrl;
31
- if (!queueUrl) {
32
- throw new Error("No queue URL found");
33
- }
34
- const vercelEnv = process.env.VERCEL_ENV || "";
35
- if (vercelEnv !== "preview") {
36
- return queueUrl;
37
- }
38
- else {
39
- return buildQueueUrlsForPreview(queueUrl);
40
- }
41
- }
@@ -1,14 +0,0 @@
1
- import { ServicePayload } from "@empiricalrun/shared-types/tool-execute-service";
2
- export declare class SQSClient {
3
- private region;
4
- private accessKeyId;
5
- private secretAccessKey;
6
- private sessionToken?;
7
- constructor(region: string, accessKeyId: string, secretAccessKey: string, sessionToken?: string);
8
- private sha256;
9
- private hmacSha256;
10
- private getSignatureKey;
11
- private sign;
12
- sendMessage(queueUrl: string, payload: ServicePayload): Promise<void>;
13
- }
14
- //# sourceMappingURL=SQSClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SQSClient.d.ts","sourceRoot":"","sources":["../../src/utils/SQSClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAEjF,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAC,CAAS;gBAG5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM;YAQT,MAAM;YAON,UAAU;YAkBV,eAAe;YAgBf,IAAI;IASZ,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAyG5E"}