-
Notifications
You must be signed in to change notification settings - Fork 0
CI bot using minisweagent #28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
TensorZero CI Bot Automated CommentThe CI failure is due to ESLint violations in newly added TypeScript files. The linter flagged:
I’ve provided a patch that:
After applying the patch, re-run lint and tests. This should resolve the ESLint errors and allow the TypeScript Tests job to proceed. Try running the following commands to address the issues: Warning I encountered an error while trying to create a follow-up PR: Failed to create follow-up PR using remote https://x-access-token:***@github.com/tensorzero/experimental-ci-bot.git: git apply --whitespace=nowarn /tmp/tensorzero-pr-A8mwLs/repo/tensorzero.patch failed: error: corrupt patch at line 54 The patch I tried to generate is as follows: diff --git a/src/adapters/cli.ts b/src/adapters/cli.ts
index a8e3c1d..4b2f8b6 100644
--- a/src/adapters/cli.ts
+++ b/src/adapters/cli.ts
@@ -1,14 +1,15 @@
/**
* CLI adapter - converts CLI options into AgentRunnerInput
*/
-import { Octokit } from '@octokit/rest'
+import * as github from '@actions/github'
import { execSync } from 'child_process'
import type { CliOptions } from '../cli/args.js'
import type {
AgentRunnerInput,
PullRequestInfo,
CIFailureInfo
} from '../core/types.js'
+import type { OctokitInstance } from '../pullRequests.js'
import type { WorkflowJobsResponse } from '../generate-pr-patch/types.js'
import type { FailedJobSummary } from '../tensorZeroClient.js'
import {
@@ -35,7 +36,7 @@ function getGitHubToken(options: CliOptions): string {
if (token) {
console.log('[CLI Adapter] Using token from gh CLI')
return token
- }
+ }
} catch (error) {
// gh CLI not available or not authenticated
}
@@ -52,7 +53,7 @@ function getGitHubToken(options: CliOptions): string {
* Fetch PR information from GitHub API
*/
async function fetchPullRequestInfo(
- octokit: Octokit,
+ octokit: OctokitInstance,
owner: string,
repo: string,
prNumber: number
@@ -204,7 +205,7 @@ async function fetchCIFailureInfo(
export async function createAgentInputFromCli(
options: CliOptions
): Promise<AgentRunnerInput> {
// Get GitHub token
const token = getGitHubToken(options)
- // Create Octokit instance
- const octokit = new Octokit({ auth: token })
+ // Create Octokit instance compatible with our types
+ const octokit = github.getOctokit(token)
// Parse repository
const [owner, repo] = options.repository.split('/')
@@ -230,7 +231,7 @@ export async function createAgentInputFromCli(
console.log(
`[CLI Adapter] Searching for failed workflow runs for commit ${pullRequest.headSha.substring(0, 7)}...`
)
- workflowRunId = await findLatestFailedWorkflowRun(
- octokit as any,
+ workflowRunId = await findLatestFailedWorkflowRun(
+ octokit,
owner,
repo,
pullRequest.headSha
@@ -272,7 +273,7 @@ export async function createAgentInputFromCli(
return {
- octokit: octokit as any, // Type compatibility
+ octokit, // already OctokitInstance-compatible
token,
pullRequest,
ciFailure,
diff --git a/src/adapters/github-actions.ts b/src/adapters/github-actions.ts
index 1732c08..02d62fb 100644
--- a/src/adapters/github-actions.ts
+++ b/src/adapters/github-actions.ts
@@ -8,6 +8,7 @@ import type {
PullRequestInfo,
CIFailureInfo
} from '../core/types.js'
+import type { OctokitInstance } from '../pullRequests.js'
import type { WorkflowJobsResponse } from '../generate-pr-patch/types.js'
import type { FailedJobSummary } from '../tensorZeroClient.js'
import { getFailedWorkflowRunLogs } from '../pullRequests.js'
@@ -154,7 +155,7 @@ function getAllFailedJobs(
* Extract PR information from GitHub Actions context
*/
async function extractPullRequestInfo(
- octokit: any,
+ octokit: OctokitInstance,
owner: string,
repo: string
): Promise<PullRequestInfo | null> {
@@ -280,7 +281,7 @@ export async function createAgentInputFromGitHubActions(): Promise<AgentRunnerIn
}
return {
- octokit: octokit as any,
+ octokit,
token,
pullRequest,
ciFailure,
diff --git a/src/cli/args.ts b/src/cli/args.ts
index b7b570d..b8d042e 100644
--- a/src/cli/args.ts
+++ b/src/cli/args.ts
@@ -130,6 +130,7 @@ export function parseArgs(args: string[]): CliOptions {
case '--help':
case '-h':
printHelp()
+ break
process.exit(0)
default:
@@ -191,7 +192,7 @@ Environment Variables:
OPENAI_API_KEY OpenAI API key (alternative to Anthropic)
Examples:
- # Dry run - automatically finds latest failed workflow run
- experimental-ci-bot --repo tensorzero/tensorzero --pr 123 --dry-run
+ # Dry run - automatically finds latest failed workflow run
+ experimental-ci-bot --repo tensorzero/tensorzero --pr 123 --dry-run
# Create actual PR/comments (requires write access)
- export GITHUB_TOKEN=\$(gh auth token)
+ export GITHUB_TOKEN=$(gh auth token)
experimental-ci-bot --repo myorg/myrepo --pr 456
diff --git a/src/core/agent-runner.ts b/src/core/agent-runner.ts
index 9ece98a..6e5c5cc 100644
--- a/src/core/agent-runner.ts
+++ b/src/core/agent-runner.ts
@@ -127,7 +127,7 @@ function getCommentPrefix(filePath: string): string {
return '//'
}
/**
* Run test mode: add comments to files without running agent
*/
@@ -206,17 +206,15 @@ export async function runAgent(
const { repoDir, cleanup, git } = await clonePullRequestRepository(
token,
pullRequest.owner,
pullRequest.repo,
- {
- number: pullRequest.number,
- head: { ref: pullRequest.headRef, sha: pullRequest.headSha },
- base: { ref: pullRequest.baseRef },
- html_url: pullRequest.htmlUrl
- } as any
+ {
+ head: { ref: pullRequest.headRef, sha: pullRequest.headSha },
+ base: { ref: pullRequest.baseRef }
+ }
)
try {
// Write CI failure context file
const ciContext: CIFailureContext = {
diff --git a/src/miniSweAgentClient.ts b/src/miniSweAgentClient.ts
index 55b8f15..a5b2df8 100644
--- a/src/miniSweAgentClient.ts
+++ b/src/miniSweAgentClient.ts
@@ -87,7 +87,7 @@ export async function runMiniSweAgent(
const {
task,
cwd,
tensorZeroConfigPath,
- trajectoryOutputPath: _trajectoryOutputPath, // Ignored - we always use temp file now
+ // trajectoryOutputPath is intentionally ignored; we always use a temp file
costLimit = 3.0,
stepLimit = 0,
modelName,
diff --git a/src/pullRequests.ts b/src/pullRequests.ts
index 7a780f9..0a6a4d3 100644
--- a/src/pullRequests.ts
+++ b/src/pullRequests.ts
@@ -216,6 +216,13 @@ export async function getFailedWorkflowRunLogs(
owner?: string,
repo?: string
): Promise<string> {
+ interface GHJob {
+ id: number
+ name: string
+ conclusion: string | null
+ }
+ interface JobsResponse {
+ jobs?: GHJob[] }
// Validate that owner and repo are provided
if (!owner || !repo) {
throw new Error(
@@ -234,9 +241,9 @@ export async function getFailedWorkflowRunLogs(
encoding: 'utf-8'
})
- const jobsData = JSON.parse(jobsOutput)
- const jobs = jobsData.jobs || []
+ const jobsData = JSON.parse(jobsOutput) as JobsResponse
+ const jobs: GHJob[] = jobsData.jobs ?? []
- // Filter to failed jobs
- const failedJobs = jobs.filter(
- (job: any) => job.conclusion && job.conclusion !== 'success'
+ // Filter to failed jobs
+ const failedJobs = jobs.filter(
+ (job) => job.conclusion && job.conclusion !== 'success'
)
if (failedJobs.length === 0) {
@@ -246,7 +253,7 @@ export async function getFailedWorkflowRunLogs(
}
// Fetch logs for each failed job
- const logPromises = failedJobs.map(async (job: any) => {
+ const logPromises = failedJobs.map(async (job: GHJob) => {
try {
const logsArgs = [
'api',
diff --git a/src/adapters/cli.ts b/src/adapters/cli.ts
index 4b2f8b6..62a1c2f 100644
--- a/src/adapters/cli.ts
+++ b/src/adapters/cli.ts
@@ -27,7 +27,7 @@ function getGitHubToken(options: CliOptions): string {
try {
const token = execSync('gh auth token', { encoding: 'utf-8' }).trim()
if (token) {
console.log('[CLI Adapter] Using token from gh CLI')
return token
- }
+ }
} catch {
// gh CLI not available or not authenticated
} |
TensorZero CI Bot Automated CommentThe CI failed on the "Lint" step due to TypeScript ESLint rule violations introduced in the new files. Specifically:
I’ve provided a patch that fixes all 11 reported lint errors by:
After applying the patch, linting should pass and the CI should proceed to the test step. Try running the following commands to address the issues: Warning I encountered an error while trying to create a follow-up PR: Failed to create follow-up PR using remote https://x-access-token:***@github.com/tensorzero/experimental-ci-bot.git: git apply --whitespace=nowarn /tmp/tensorzero-pr-i9iQl0/repo/tensorzero.patch failed: error: patch fragment without header at line 15: @@ -34,7 +35,7 @@ function getGitHubToken(options: CliOptions): string { The patch I tried to generate is as follows: diff --git a/src/adapters/cli.ts b/src/adapters/cli.ts
index a8e3c1d..c2d0c3a 100644
--- a/src/adapters/cli.ts
+++ b/src/adapters/cli.ts
@@ -10,6 +10,7 @@ import type { WorkflowJobsResponse } from '../generate-pr-patch/types.js'
import type { FailedJobSummary } from '../tensorZeroClient.js'
import {
getFailedWorkflowRunLogs,
- findLatestFailedWorkflowRun
+ findLatestFailedWorkflowRun,
+ type OctokitInstance
} from '../pullRequests.js'
/**
@@ -34,7 +35,7 @@ function getGitHubToken(options: CliOptions): string {
if (token) {
console.log('[CLI Adapter] Using token from gh CLI')
return token
- }
- } catch (error) {
+ }
+ } catch {
// gh CLI not available or not authenticated
}
@@ -208,7 +209,7 @@ export async function createAgentInputFromCli(
console.log(
`[CLI Adapter] Searching for failed workflow runs for commit ${pullRequest.headSha.substring(0, 7)}...`
)
- workflowRunId = await findLatestFailedWorkflowRun(
- octokit as any,
+ workflowRunId = await findLatestFailedWorkflowRun(
+ octokit as unknown as OctokitInstance,
owner,
repo,
pullRequest.headSha
@@ -244,7 +245,7 @@ export async function createAgentInputFromCli(
return {
- octokit: octokit as any, // Type compatibility
+ octokit: octokit as unknown as OctokitInstance,
token,
pullRequest,
ciFailure,
diff --git a/src/adapters/github-actions.ts b/src/adapters/github-actions.ts
index 1732c08..6f8f0d3 100644
--- a/src/adapters/github-actions.ts
+++ b/src/adapters/github-actions.ts
@@ -12,6 +12,7 @@ import type { WorkflowJobsResponse } from '../generate-pr-patch/types.js'
import type { FailedJobSummary } from '../tensorZeroClient.js'
import { getFailedWorkflowRunLogs } from '../pullRequests.js'
+import type { OctokitInstance } from '../pullRequests.js'
/**
* Parse action inputs from GitHub Actions environment
@@ -168,7 +169,7 @@ function getAllFailedJobs(
* Extract PR information from GitHub Actions context
*/
async function extractPullRequestInfo(
- octokit: any,
+ octokit: OctokitInstance,
owner: string,
repo: string
): Promise<PullRequestInfo | null> {
@@ -279,7 +280,7 @@ export async function createAgentInputFromGitHubActions(): Promise<AgentRunnerIn
}
return {
- octokit: octokit as any,
+ octokit: octokit as OctokitInstance,
token,
pullRequest,
ciFailure,
diff --git a/src/cli/args.ts b/src/cli/args.ts
index b7b570d..e3f4d16 100644
--- a/src/cli/args.ts
+++ b/src/cli/args.ts
@@ -130,6 +130,7 @@ export function parseArgs(args: string[]): CliOptions {
case '--help':
case '-h':
printHelp()
+ break
process.exit(0)
default:
@@ -191,7 +192,7 @@ Environment Variables:
ANTHROPIC_API_KEY Anthropic API key (required for mini-swe-agent)
OPENAI_API_KEY OpenAI API key (alternative to Anthropic)
Examples:
# Dry run - automatically finds latest failed workflow run
experimental-ci-bot --repo tensorzero/tensorzero --pr 123 --dry-run
# Create actual PR/comments (requires write access)
- export GITHUB_TOKEN=\$(gh auth token)
+ export GITHUB_TOKEN=$(gh auth token)
experimental-ci-bot --repo myorg/myrepo --pr 456
# Fix a specific workflow run
diff --git a/src/core/agent-runner.ts b/src/core/agent-runner.ts
index 9ece98a..c1f9cb2 100644
--- a/src/core/agent-runner.ts
+++ b/src/core/agent-runner.ts
@@ -151,13 +151,10 @@ export async function runAgent(
const { repoDir, cleanup, git } = await clonePullRequestRepository(
token,
pullRequest.owner,
pullRequest.repo,
- {
- number: pullRequest.number,
- head: { ref: pullRequest.headRef, sha: pullRequest.headSha },
- base: { ref: pullRequest.baseRef },
- html_url: pullRequest.htmlUrl
- } as any
+ {
+ head: { ref: pullRequest.headRef, sha: pullRequest.headSha },
+ base: { ref: pullRequest.baseRef }
+ }
)
try {
diff --git a/src/miniSweAgentClient.ts b/src/miniSweAgentClient.ts
index 55b8f15..c7e6ef1 100644
--- a/src/miniSweAgentClient.ts
+++ b/src/miniSweAgentClient.ts
@@ -84,7 +84,6 @@ export async function runMiniSweAgent(
const {
task,
cwd,
tensorZeroConfigPath,
- trajectoryOutputPath: _trajectoryOutputPath, // Ignored - we always use temp file now
costLimit = 3.0,
stepLimit = 0,
modelName,
diff --git a/src/pullRequests.ts b/src/pullRequests.ts
index 7a780f2..8c4a6ab 100644
--- a/src/pullRequests.ts
+++ b/src/pullRequests.ts
@@ -1,6 +1,7 @@
/**
* High-level GitHub pull request operations.
*
+ *
* This module provides functions for working with GitHub pull requests, including:
* - Creating follow-up PRs with automated fixes based on LLM-generated diffs
* - Fetching failed workflow run logs using the GitHub CLI
@@ -207,6 +208,12 @@ export async function createFollowupPrFromWorkingDir(
return {
number: createdPr.data.number,
id: createdPr.data.id,
htmlUrl: createdPr.data.html_url
}
}
@@ -214,6 +221,11 @@ export async function getFailedWorkflowRunLogs(
workflowRunId: number,
owner?: string,
repo?: string
): Promise<string> {
+ interface WorkflowJobItem {
+ id: number
+ name: string
+ conclusion?: string | null
+ }
// Validate that owner and repo are provided
if (!owner || !repo) {
throw new Error(
@@ -232,7 +244,7 @@ export async function getFailedWorkflowRunLogs(
encoding: 'utf-8'
})
- const jobsData = JSON.parse(jobsOutput)
+ const jobsData = JSON.parse(jobsOutput) as { jobs: WorkflowJobItem[] }
const jobs = jobsData.jobs || []
// Filter to failed jobs
@@ -243,7 +255,7 @@ export async function getFailedWorkflowRunLogs(
}
// Fetch logs for each failed job
- const logPromises = failedJobs.map(async (job: any) => {
+ const logPromises = failedJobs.map(async (job: WorkflowJobItem) => {
try {
const logsArgs = [
'api',
`repos/${owner}/${repo}/actions/jobs/${job.id}/logs`,
diff --git a/src/adapters/cli.ts b/src/adapters/cli.ts
index c2d0c3a..8f1927d 100644
--- a/src/adapters/cli.ts
+++ b/src/adapters/cli.ts
@@ -1,4 +1,4 @@
-/**
+ /**
* CLI adapter - converts CLI options into AgentRunnerInput
*/
import { Octokit } from '@octokit/rest' |
TensorZero CI Bot Automated CommentThe TypeScript CI failed at the Lint step due to several ESLint violations:
I’ve provided a patch that:
After applying the patch, run the linter and tests locally to verify:
This should resolve the CI lint failures. Try running the following commands to address the issues: Warning I encountered an error while trying to create a follow-up PR: Failed to create follow-up PR using remote https://x-access-token:***@github.com/tensorzero/experimental-ci-bot.git: git apply --whitespace=nowarn /tmp/tensorzero-pr-DBseVU/repo/tensorzero.patch failed: error: patch fragment without header at line 23: @@ -35,8 +36,8 @@ function getGitHubToken(options: CliOptions): string { The patch I tried to generate is as follows: diff --git a/src/adapters/cli.ts b/src/adapters/cli.ts
index a8e3c1d..2b8ba8d 100644
--- a/src/adapters/cli.ts
+++ b/src/adapters/cli.ts
@@ -3,7 +3,7 @@
* CLI adapter - converts CLI options into AgentRunnerInput
*/
-import { Octokit } from '@octokit/rest'
+import * as github from '@actions/github'
import { execSync } from 'child_process'
import type { CliOptions } from '../cli/args.js'
import type {
AgentRunnerInput,
@@ -13,6 +13,7 @@ import type {
} from '../core/types.js'
import type { WorkflowJobsResponse } from '../generate-pr-patch/types.js'
import type { FailedJobSummary } from '../tensorZeroClient.js'
+import type { OctokitInstance } from '../pullRequests.js'
import {
getFailedWorkflowRunLogs,
findLatestFailedWorkflowRun
} from '../pullRequests.js'
@@ -35,8 +36,8 @@ function getGitHubToken(options: CliOptions): string {
const token = execSync('gh auth token', { encoding: 'utf-8' }).trim()
if (token) {
console.log('[CLI Adapter] Using token from gh CLI')
return token
}
- } catch (error) {
+ } catch {
// gh CLI not available or not authenticated
}
@@ -165,7 +166,7 @@ async function getJobStatus(
*/
export async function createAgentInputFromCli(
options: CliOptions
-): Promise<AgentRunnerInput> {
+): Promise<AgentRunnerInput> {
// Get GitHub token
const token = getGitHubToken(options)
// Create Octokit instance
- const octokit = new Octokit({ auth: token })
+ const octokit: OctokitInstance = github.getOctokit(token)
// Parse repository
const [owner, repo] = options.repository.split('/')
@@ -200,7 +201,7 @@ export async function createAgentInputFromCli(
workflowRunId = await findLatestFailedWorkflowRun(
- octokit as any,
+ octokit,
owner,
repo,
pullRequest.headSha
)
@@ -236,7 +237,7 @@ export async function createAgentInputFromCli(
: undefined
return {
- octokit: octokit as any, // Type compatibility
+ octokit,
token,
pullRequest,
ciFailure,
diff --git a/src/adapters/github-actions.ts b/src/adapters/github-actions.ts
index 1732c08..b8d6680 100644
--- a/src/adapters/github-actions.ts
+++ b/src/adapters/github-actions.ts
@@ -12,6 +12,7 @@ import type {
CIFailureInfo
} from '../core/types.js'
import type { WorkflowJobsResponse } from '../generate-pr-patch/types.js'
+import type { OctokitInstance } from '../pullRequests.js'
import type { FailedJobSummary } from '../tensorZeroClient.js'
import { getFailedWorkflowRunLogs } from '../pullRequests.js'
@@ -162,7 +163,7 @@ function getAllFailedJobs(
* Extract PR information from GitHub Actions context
*/
async function extractPullRequestInfo(
- octokit: any,
+ octokit: OctokitInstance,
owner: string,
repo: string
): Promise<PullRequestInfo | null> {
@@ -271,7 +272,7 @@ export async function createAgentInputFromGitHubActions(): Promise<AgentRunnerIn
}
return {
- octokit: octokit as any,
+ octokit: octokit as OctokitInstance,
token,
pullRequest,
ciFailure,
diff --git a/src/cli/args.ts b/src/cli/args.ts
index b7d570d..f9e880a 100644
--- a/src/cli/args.ts
+++ b/src/cli/args.ts
@@ -130,6 +130,7 @@ export function parseArgs(args: string[]): CliOptions {
case '--help':
case '-h':
printHelp()
+ break
process.exit(0)
default:
@@ -191,7 +192,7 @@ Environment Variables:
# Create actual PR/comments (requires write access)
export GITHUB_TOKEN=\$(gh auth token)
- experimental-ci-bot --repo myorg/myrepo --pr 456
+ experimental-ci-bot --repo myorg/myrepo --pr 456
# Fix a specific workflow run
experimental-ci-bot --repo owner/repo --pr 789 --workflow-run-id 12345
diff --git a/src/core/agent-runner.ts b/src/core/agent-runner.ts
index 9ece98a..2d32a2e 100644
--- a/src/core/agent-runner.ts
+++ b/src/core/agent-runner.ts
@@ -30,6 +30,7 @@ import {
} from '../generate-pr-patch/ciFailureContext.js'
import { clonePullRequestRepository, getPullRequestDiff } from '../git.js'
import {
+ type PullRequestData as GitPullRequestData,
type CreatePullRequestToInferenceRequest,
createPullRequestToInferenceRecord
} from '../clickhouseClient.js'
@@ -259,13 +260,14 @@ export async function runAgent(
token,
pullRequest.owner,
pullRequest.repo,
- {
+ ({
number: pullRequest.number,
head: { ref: pullRequest.headRef, sha: pullRequest.headSha },
base: { ref: pullRequest.baseRef },
html_url: pullRequest.htmlUrl
- } as any
+ } as unknown as GitPullRequestData)
)
+
try {
// Write CI failure context file
diff --git a/src/miniSweAgentClient.ts b/src/miniSweAgentClient.ts
index 55b8f15..a6e1df5 100644
--- a/src/miniSweAgentClient.ts
+++ b/src/miniSweAgentClient.ts
@@ -85,7 +85,6 @@ export async function runMiniSweAgent(
const {
task,
cwd,
- tensorZeroConfigPath,
- trajectoryOutputPath: _trajectoryOutputPath, // Ignored - we always use temp file now
+ tensorZeroConfigPath,
costLimit = 3.0,
stepLimit = 0,
modelName,
diff --git a/src/pullRequests.ts b/src/pullRequests.ts
index 7a780f2..39d634a 100644
--- a/src/pullRequests.ts
+++ b/src/pullRequests.ts
@@ -212,6 +212,11 @@ export async function createFollowupPrFromWorkingDir(
return {
number: createdPr.data.number,
id: createdPr.data.id,
htmlUrl: createdPr.data.html_url
}
}
@@ -221,6 +226,10 @@ export async function getFailedWorkflowRunLogs(
owner?: string,
repo?: string
): Promise<string> {
+ interface WorkflowRunJobsResponse {
+ jobs?: { id: number; name: string; conclusion?: string | null }[]
+ }
+
// Validate that owner and repo are provided
if (!owner || !repo) {
throw new Error(
@@ -234,8 +243,8 @@ export async function getFailedWorkflowRunLogs(
'--paginate'
]
- const { stdout: jobsOutput } = await execFileAsync('gh', jobsArgs, {
+ const { stdout: jobsOutput } = await execFileAsync('gh', jobsArgs, {
maxBuffer: 20 * 1024 * 1024,
encoding: 'utf-8'
})
- const jobsData = JSON.parse(jobsOutput)
- const jobs = jobsData.jobs || []
+ const jobsData = JSON.parse(jobsOutput) as WorkflowRunJobsResponse
+ const jobs = jobsData.jobs ?? []
@@ -250,7 +259,7 @@ export async function getFailedWorkflowRunLogs(
}
// Fetch logs for each failed job
- const logPromises = failedJobs.map(async (job: any) => {
+ const logPromises = failedJobs.map(async (job) => {
try {
const logsArgs = [
'api',
@@ -259,7 +268,7 @@ export async function getFailedWorkflowRunLogs(
'--paginate'
]
- const { stdout: logs } = await execFileAsync('gh', logsArgs, {
+ const { stdout: logs } = await execFileAsync('gh', logsArgs, {
maxBuffer: 20 * 1024 * 1024,
encoding: 'utf-8'
})
diff --git a/src/adapters/cli.ts b/src/adapters/cli.ts
index 2b8ba8d..4b7ab0a 100644
--- a/src/adapters/cli.ts
+++ b/src/adapters/cli.ts
@@ -9,7 +9,6 @@ import type {
CIFailureInfo
} from '../core/types.js'
import type { WorkflowJobsResponse } from '../generate-pr-patch/types.js'
-import type { FailedJobSummary } from '../tensorZeroClient.js'
import type { OctokitInstance } from '../pullRequests.js'
import {
getFailedWorkflowRunLogs,
findLatestFailedWorkflowRun
diff --git a/src/core/agent-runner.ts b/src/core/agent-runner.ts
index 2d32a2e..b3a9d8b 100644
--- a/src/core/agent-runner.ts
+++ b/src/core/agent-runner.ts
@@ -30,7 +30,7 @@ import {
} from '../generate-pr-patch/ciFailureContext.js'
import { clonePullRequestRepository, getPullRequestDiff } from '../git.js'
import {
- type PullRequestData as GitPullRequestData,
+ type PullRequestData as GitPullRequestData,
type CreatePullRequestToInferenceRequest,
createPullRequestToInferenceRecord
} from '../clickhouseClient.js' |
Closes #22