Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 156 additions & 10 deletions apps/vscode-e2e/src/suite/tools/apply-diff.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,14 +181,43 @@ function validateInput(input) {
// Check for tool execution
if (message.type === "say" && message.say === "api_req_started" && message.text) {
console.log("API request started:", message.text.substring(0, 200))

// More robust detection of apply_diff tool
try {
const requestData = JSON.parse(message.text)
if (requestData.request && requestData.request.includes("apply_diff")) {
const text = message.text
if (
text.includes("apply_diff") ||
text.includes('"tool":"apply_diff"') ||
text.includes("applyDiff") ||
text.includes("appliedDiff")
) {
applyDiffExecuted = true
console.log("apply_diff tool executed!")
} else {
// Also try to parse as JSON if it doesn't match string patterns
let requestData: { request?: string } | null = null
try {
requestData = JSON.parse(text)
} catch {
// Try extracting JSON from the text
const jsonMatch = text.match(/\{[\s\S]*\}/)
if (jsonMatch) {
requestData = JSON.parse(jsonMatch[0])
}
}

if (
requestData &&
requestData.request &&
(requestData.request.includes("apply_diff") || requestData.request.includes("appliedDiff"))
) {
applyDiffExecuted = true
console.log("apply_diff tool executed (parsed from JSON)!")
}
}
} catch (e) {
console.log("Failed to parse api_req_started message:", e)
console.log("Raw text:", message.text.substring(0, 500))
}
}
}
Expand Down Expand Up @@ -294,14 +323,43 @@ ${testFile.content}\nAssume the file exists and you can modify it directly.`,
// Check for tool execution
if (message.type === "say" && message.say === "api_req_started" && message.text) {
console.log("API request started:", message.text.substring(0, 200))

// More robust detection of apply_diff tool
try {
const requestData = JSON.parse(message.text)
if (requestData.request && requestData.request.includes("apply_diff")) {
const text = message.text
if (
text.includes("apply_diff") ||
text.includes('"tool":"apply_diff"') ||
text.includes("applyDiff") ||
text.includes("appliedDiff")
) {
applyDiffExecuted = true
console.log("apply_diff tool executed!")
} else {
// Also try to parse as JSON if it doesn't match string patterns
let requestData: { request?: string } | null = null
try {
requestData = JSON.parse(text)
} catch {
// Try extracting JSON from the text
const jsonMatch = text.match(/\{[\s\S]*\}/)
if (jsonMatch) {
requestData = JSON.parse(jsonMatch[0])
}
}

if (
requestData &&
requestData.request &&
(requestData.request.includes("apply_diff") || requestData.request.includes("appliedDiff"))
) {
applyDiffExecuted = true
console.log("apply_diff tool executed (parsed from JSON)!")
}
}
} catch (e) {
console.log("Failed to parse api_req_started message:", e)
console.log("Raw text:", message.text.substring(0, 500))
}
}
}
Expand Down Expand Up @@ -413,14 +471,43 @@ function keepThis() {
// Check for tool execution
if (message.type === "say" && message.say === "api_req_started" && message.text) {
console.log("API request started:", message.text.substring(0, 200))

// More robust detection of apply_diff tool
try {
const requestData = JSON.parse(message.text)
if (requestData.request && requestData.request.includes("apply_diff")) {
const text = message.text
if (
text.includes("apply_diff") ||
text.includes('"tool":"apply_diff"') ||
text.includes("applyDiff") ||
text.includes("appliedDiff")
) {
applyDiffExecuted = true
console.log("apply_diff tool executed!")
} else {
// Also try to parse as JSON if it doesn't match string patterns
let requestData: { request?: string } | null = null
try {
requestData = JSON.parse(text)
} catch {
// Try extracting JSON from the text
const jsonMatch = text.match(/\{[\s\S]*\}/)
if (jsonMatch) {
requestData = JSON.parse(jsonMatch[0])
}
}

if (
requestData &&
requestData.request &&
(requestData.request.includes("apply_diff") || requestData.request.includes("appliedDiff"))
) {
applyDiffExecuted = true
console.log("apply_diff tool executed (parsed from JSON)!")
}
}
} catch (e) {
console.log("Failed to parse api_req_started message:", e)
console.log("Raw text:", message.text.substring(0, 500))
}
}
}
Expand Down Expand Up @@ -521,14 +608,43 @@ ${testFile.content}\nAssume the file exists and you can modify it directly.`,
// Check for tool execution attempt
if (message.type === "say" && message.say === "api_req_started" && message.text) {
console.log("API request started:", message.text.substring(0, 200))

// More robust detection of apply_diff tool
try {
const requestData = JSON.parse(message.text)
if (requestData.request && requestData.request.includes("apply_diff")) {
const text = message.text
if (
text.includes("apply_diff") ||
text.includes('"tool":"apply_diff"') ||
text.includes("applyDiff") ||
text.includes("appliedDiff")
) {
applyDiffAttempted = true
console.log("apply_diff tool attempted!")
} else {
// Also try to parse as JSON if it doesn't match string patterns
let requestData: { request?: string } | null = null
try {
requestData = JSON.parse(text)
} catch {
// Try extracting JSON from the text
const jsonMatch = text.match(/\{[\s\S]*\}/)
if (jsonMatch) {
requestData = JSON.parse(jsonMatch[0])
}
}

if (
requestData &&
requestData.request &&
(requestData.request.includes("apply_diff") || requestData.request.includes("appliedDiff"))
) {
applyDiffAttempted = true
console.log("apply_diff tool attempted (parsed from JSON)!")
}
}
} catch (e) {
console.log("Failed to parse api_req_started message:", e)
console.log("Raw text:", message.text.substring(0, 500))
}
}
}
Expand Down Expand Up @@ -651,15 +767,45 @@ function checkInput(input) {
// Check for tool execution
if (message.type === "say" && message.say === "api_req_started" && message.text) {
console.log("API request started:", message.text.substring(0, 200))

// More robust detection of apply_diff tool
try {
const requestData = JSON.parse(message.text)
if (requestData.request && requestData.request.includes("apply_diff")) {
const text = message.text
if (
text.includes("apply_diff") ||
text.includes('"tool":"apply_diff"') ||
text.includes("applyDiff") ||
text.includes("appliedDiff")
) {
applyDiffExecuted = true
applyDiffCount++
console.log(`apply_diff tool executed! (count: ${applyDiffCount})`)
} else {
// Also try to parse as JSON if it doesn't match string patterns
let requestData: { request?: string } | null = null
try {
requestData = JSON.parse(text)
} catch {
// Try extracting JSON from the text
const jsonMatch = text.match(/\{[\s\S]*\}/)
if (jsonMatch) {
requestData = JSON.parse(jsonMatch[0])
}
}

if (
requestData &&
requestData.request &&
(requestData.request.includes("apply_diff") || requestData.request.includes("appliedDiff"))
) {
applyDiffExecuted = true
applyDiffCount++
console.log(`apply_diff tool executed (parsed from JSON)! (count: ${applyDiffCount})`)
}
}
} catch (e) {
console.log("Failed to parse api_req_started message:", e)
console.log("Raw text:", message.text.substring(0, 500))
}
}
}
Expand Down
Loading
Loading