3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-01 21:49:29 +00:00

recompile improvers

This commit is contained in:
Don Syme 2025-09-17 16:41:49 +01:00
parent 2d0b9e6972
commit f300dfc425
6 changed files with 156 additions and 102 deletions

43
.github/workflows/ask.lock.yml generated vendored
View file

@ -2,7 +2,7 @@
# To update this file, edit the corresponding .md file and run: # To update this file, edit the corresponding .md file and run:
# gh aw compile # gh aw compile
# #
# Effective stop-time: 2025-09-19 14:50:09 # Effective stop-time: 2025-09-19 15:41:02
name: "Question Answering Researcher" name: "Question Answering Researcher"
on: on:
@ -767,7 +767,7 @@ jobs:
description: "Create a new GitHub pull request", description: "Create a new GitHub pull request",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["title", "body"], required: ["title", "body", "branch"],
properties: { properties: {
title: { type: "string", description: "Pull request title" }, title: { type: "string", description: "Pull request title" },
body: { body: {
@ -776,8 +776,7 @@ jobs:
}, },
branch: { branch: {
type: "string", type: "string",
description: description: "Required branch name",
"Optional branch name (will be auto-generated if not provided)",
}, },
labels: { labels: {
type: "array", type: "array",
@ -899,9 +898,9 @@ jobs:
description: "Push changes to a pull request branch", description: "Push changes to a pull request branch",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["branch_name", "message"], required: ["branch", "message"],
properties: { properties: {
branch_name: { branch: {
type: "string", type: "string",
description: description:
"The name of the branch to push to, should be the branch name associated with the pull request", "The name of the branch to push to, should be the branch name associated with the pull request",
@ -1000,12 +999,19 @@ jobs:
? tool.inputSchema.required ? tool.inputSchema.required
: []; : [];
if (requiredFields.length) { if (requiredFields.length) {
const missing = requiredFields.filter(f => args[f] === undefined); const missing = requiredFields.filter(f => {
const value = args[f];
return (
value === undefined ||
value === null ||
(typeof value === "string" && value.trim() === "")
);
});
if (missing.length) { if (missing.length) {
replyError( replyError(
id, id,
-32602, -32602,
`Invalid arguments: missing ${missing.map(m => `'${m}'`).join(", ")}` `Invalid arguments: missing or empty ${missing.map(m => `'${m}'`).join(", ")}`
); );
return; return;
} }
@ -1072,7 +1078,7 @@ jobs:
WORKFLOW_NAME="Question Answering Researcher" WORKFLOW_NAME="Question Answering Researcher"
# Check stop-time limit # Check stop-time limit
STOP_TIME="2025-09-19 14:50:09" STOP_TIME="2025-09-19 15:41:02"
echo "Checking stop-time limit: $STOP_TIME" echo "Checking stop-time limit: $STOP_TIME"
# Convert stop time to epoch seconds # Convert stop time to epoch seconds
@ -1886,13 +1892,16 @@ jobs:
); );
continue; continue;
} }
if (!item.branch || typeof item.branch !== "string") {
errors.push(
`Line ${i + 1}: create-pull-request requires a 'branch' string field`
);
continue;
}
// Sanitize text content // Sanitize text content
item.title = sanitizeContent(item.title); item.title = sanitizeContent(item.title);
item.body = sanitizeContent(item.body); item.body = sanitizeContent(item.body);
// Sanitize branch name if present item.branch = sanitizeContent(item.branch);
if (item.branch && typeof item.branch === "string") {
item.branch = sanitizeContent(item.branch);
}
// Sanitize labels if present // Sanitize labels if present
if (item.labels && Array.isArray(item.labels)) { if (item.labels && Array.isArray(item.labels)) {
item.labels = item.labels.map( item.labels = item.labels.map(
@ -1989,10 +1998,10 @@ jobs:
} }
break; break;
case "push-to-pr-branch": case "push-to-pr-branch":
// Validate required branch_name field // Validate required branch field
if (!item.branch_name || typeof item.branch_name !== "string") { if (!item.branch || typeof item.branch !== "string") {
errors.push( errors.push(
`Line ${i + 1}: push-to-pr-branch requires a 'branch_name' string field` `Line ${i + 1}: push-to-pr-branch requires a 'branch' string field`
); );
continue; continue;
} }
@ -2004,7 +2013,7 @@ jobs:
continue; continue;
} }
// Sanitize text content // Sanitize text content
item.branch_name = sanitizeContent(item.branch_name); item.branch = sanitizeContent(item.branch);
item.message = sanitizeContent(item.message); item.message = sanitizeContent(item.message);
// Validate pull_request_number if provided (for target "*") // Validate pull_request_number if provided (for target "*")
const pushPRNumValidation = validateIssueOrPRNumber( const pushPRNumValidation = validateIssueOrPRNumber(

43
.github/workflows/ci-doctor.lock.yml generated vendored
View file

@ -2,7 +2,7 @@
# To update this file, edit the corresponding .md file and run: # To update this file, edit the corresponding .md file and run:
# gh aw compile # gh aw compile
# #
# Effective stop-time: 2025-09-19 14:50:09 # Effective stop-time: 2025-09-19 15:41:02
name: "CI Failure Doctor" name: "CI Failure Doctor"
"on": "on":
@ -248,7 +248,7 @@ jobs:
description: "Create a new GitHub pull request", description: "Create a new GitHub pull request",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["title", "body"], required: ["title", "body", "branch"],
properties: { properties: {
title: { type: "string", description: "Pull request title" }, title: { type: "string", description: "Pull request title" },
body: { body: {
@ -257,8 +257,7 @@ jobs:
}, },
branch: { branch: {
type: "string", type: "string",
description: description: "Required branch name",
"Optional branch name (will be auto-generated if not provided)",
}, },
labels: { labels: {
type: "array", type: "array",
@ -380,9 +379,9 @@ jobs:
description: "Push changes to a pull request branch", description: "Push changes to a pull request branch",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["branch_name", "message"], required: ["branch", "message"],
properties: { properties: {
branch_name: { branch: {
type: "string", type: "string",
description: description:
"The name of the branch to push to, should be the branch name associated with the pull request", "The name of the branch to push to, should be the branch name associated with the pull request",
@ -481,12 +480,19 @@ jobs:
? tool.inputSchema.required ? tool.inputSchema.required
: []; : [];
if (requiredFields.length) { if (requiredFields.length) {
const missing = requiredFields.filter(f => args[f] === undefined); const missing = requiredFields.filter(f => {
const value = args[f];
return (
value === undefined ||
value === null ||
(typeof value === "string" && value.trim() === "")
);
});
if (missing.length) { if (missing.length) {
replyError( replyError(
id, id,
-32602, -32602,
`Invalid arguments: missing ${missing.map(m => `'${m}'`).join(", ")}` `Invalid arguments: missing or empty ${missing.map(m => `'${m}'`).join(", ")}`
); );
return; return;
} }
@ -553,7 +559,7 @@ jobs:
WORKFLOW_NAME="CI Failure Doctor" WORKFLOW_NAME="CI Failure Doctor"
# Check stop-time limit # Check stop-time limit
STOP_TIME="2025-09-19 14:50:09" STOP_TIME="2025-09-19 15:41:02"
echo "Checking stop-time limit: $STOP_TIME" echo "Checking stop-time limit: $STOP_TIME"
# Convert stop time to epoch seconds # Convert stop time to epoch seconds
@ -1500,13 +1506,16 @@ jobs:
); );
continue; continue;
} }
if (!item.branch || typeof item.branch !== "string") {
errors.push(
`Line ${i + 1}: create-pull-request requires a 'branch' string field`
);
continue;
}
// Sanitize text content // Sanitize text content
item.title = sanitizeContent(item.title); item.title = sanitizeContent(item.title);
item.body = sanitizeContent(item.body); item.body = sanitizeContent(item.body);
// Sanitize branch name if present item.branch = sanitizeContent(item.branch);
if (item.branch && typeof item.branch === "string") {
item.branch = sanitizeContent(item.branch);
}
// Sanitize labels if present // Sanitize labels if present
if (item.labels && Array.isArray(item.labels)) { if (item.labels && Array.isArray(item.labels)) {
item.labels = item.labels.map( item.labels = item.labels.map(
@ -1603,10 +1612,10 @@ jobs:
} }
break; break;
case "push-to-pr-branch": case "push-to-pr-branch":
// Validate required branch_name field // Validate required branch field
if (!item.branch_name || typeof item.branch_name !== "string") { if (!item.branch || typeof item.branch !== "string") {
errors.push( errors.push(
`Line ${i + 1}: push-to-pr-branch requires a 'branch_name' string field` `Line ${i + 1}: push-to-pr-branch requires a 'branch' string field`
); );
continue; continue;
} }
@ -1618,7 +1627,7 @@ jobs:
continue; continue;
} }
// Sanitize text content // Sanitize text content
item.branch_name = sanitizeContent(item.branch_name); item.branch = sanitizeContent(item.branch);
item.message = sanitizeContent(item.message); item.message = sanitizeContent(item.message);
// Validate pull_request_number if provided (for target "*") // Validate pull_request_number if provided (for target "*")
const pushPRNumValidation = validateIssueOrPRNumber( const pushPRNumValidation = validateIssueOrPRNumber(

View file

@ -2,7 +2,7 @@
# To update this file, edit the corresponding .md file and run: # To update this file, edit the corresponding .md file and run:
# gh aw compile # gh aw compile
# #
# Effective stop-time: 2025-09-19 14:50:09 # Effective stop-time: 2025-09-19 15:41:02
name: "Daily Backlog Burner" name: "Daily Backlog Burner"
"on": "on":
@ -228,7 +228,7 @@ jobs:
description: "Create a new GitHub pull request", description: "Create a new GitHub pull request",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["title", "body"], required: ["title", "body", "branch"],
properties: { properties: {
title: { type: "string", description: "Pull request title" }, title: { type: "string", description: "Pull request title" },
body: { body: {
@ -237,8 +237,7 @@ jobs:
}, },
branch: { branch: {
type: "string", type: "string",
description: description: "Required branch name",
"Optional branch name (will be auto-generated if not provided)",
}, },
labels: { labels: {
type: "array", type: "array",
@ -360,9 +359,9 @@ jobs:
description: "Push changes to a pull request branch", description: "Push changes to a pull request branch",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["branch_name", "message"], required: ["branch", "message"],
properties: { properties: {
branch_name: { branch: {
type: "string", type: "string",
description: description:
"The name of the branch to push to, should be the branch name associated with the pull request", "The name of the branch to push to, should be the branch name associated with the pull request",
@ -461,12 +460,19 @@ jobs:
? tool.inputSchema.required ? tool.inputSchema.required
: []; : [];
if (requiredFields.length) { if (requiredFields.length) {
const missing = requiredFields.filter(f => args[f] === undefined); const missing = requiredFields.filter(f => {
const value = args[f];
return (
value === undefined ||
value === null ||
(typeof value === "string" && value.trim() === "")
);
});
if (missing.length) { if (missing.length) {
replyError( replyError(
id, id,
-32602, -32602,
`Invalid arguments: missing ${missing.map(m => `'${m}'`).join(", ")}` `Invalid arguments: missing or empty ${missing.map(m => `'${m}'`).join(", ")}`
); );
return; return;
} }
@ -533,7 +539,7 @@ jobs:
WORKFLOW_NAME="Daily Backlog Burner" WORKFLOW_NAME="Daily Backlog Burner"
# Check stop-time limit # Check stop-time limit
STOP_TIME="2025-09-19 14:50:09" STOP_TIME="2025-09-19 15:41:02"
echo "Checking stop-time limit: $STOP_TIME" echo "Checking stop-time limit: $STOP_TIME"
# Convert stop time to epoch seconds # Convert stop time to epoch seconds
@ -1413,13 +1419,16 @@ jobs:
); );
continue; continue;
} }
if (!item.branch || typeof item.branch !== "string") {
errors.push(
`Line ${i + 1}: create-pull-request requires a 'branch' string field`
);
continue;
}
// Sanitize text content // Sanitize text content
item.title = sanitizeContent(item.title); item.title = sanitizeContent(item.title);
item.body = sanitizeContent(item.body); item.body = sanitizeContent(item.body);
// Sanitize branch name if present item.branch = sanitizeContent(item.branch);
if (item.branch && typeof item.branch === "string") {
item.branch = sanitizeContent(item.branch);
}
// Sanitize labels if present // Sanitize labels if present
if (item.labels && Array.isArray(item.labels)) { if (item.labels && Array.isArray(item.labels)) {
item.labels = item.labels.map( item.labels = item.labels.map(
@ -1516,10 +1525,10 @@ jobs:
} }
break; break;
case "push-to-pr-branch": case "push-to-pr-branch":
// Validate required branch_name field // Validate required branch field
if (!item.branch_name || typeof item.branch_name !== "string") { if (!item.branch || typeof item.branch !== "string") {
errors.push( errors.push(
`Line ${i + 1}: push-to-pr-branch requires a 'branch_name' string field` `Line ${i + 1}: push-to-pr-branch requires a 'branch' string field`
); );
continue; continue;
} }
@ -1531,7 +1540,7 @@ jobs:
continue; continue;
} }
// Sanitize text content // Sanitize text content
item.branch_name = sanitizeContent(item.branch_name); item.branch = sanitizeContent(item.branch);
item.message = sanitizeContent(item.message); item.message = sanitizeContent(item.message);
// Validate pull_request_number if provided (for target "*") // Validate pull_request_number if provided (for target "*")
const pushPRNumValidation = validateIssueOrPRNumber( const pushPRNumValidation = validateIssueOrPRNumber(

View file

@ -2,7 +2,7 @@
# To update this file, edit the corresponding .md file and run: # To update this file, edit the corresponding .md file and run:
# gh aw compile # gh aw compile
# #
# Effective stop-time: 2025-09-19 14:50:09 # Effective stop-time: 2025-09-19 15:41:02
name: "Daily Perf Improver" name: "Daily Perf Improver"
"on": "on":
@ -242,7 +242,7 @@ jobs:
description: "Create a new GitHub pull request", description: "Create a new GitHub pull request",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["title", "body"], required: ["title", "body", "branch"],
properties: { properties: {
title: { type: "string", description: "Pull request title" }, title: { type: "string", description: "Pull request title" },
body: { body: {
@ -251,8 +251,7 @@ jobs:
}, },
branch: { branch: {
type: "string", type: "string",
description: description: "Required branch name",
"Optional branch name (will be auto-generated if not provided)",
}, },
labels: { labels: {
type: "array", type: "array",
@ -374,9 +373,9 @@ jobs:
description: "Push changes to a pull request branch", description: "Push changes to a pull request branch",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["branch_name", "message"], required: ["branch", "message"],
properties: { properties: {
branch_name: { branch: {
type: "string", type: "string",
description: description:
"The name of the branch to push to, should be the branch name associated with the pull request", "The name of the branch to push to, should be the branch name associated with the pull request",
@ -475,12 +474,19 @@ jobs:
? tool.inputSchema.required ? tool.inputSchema.required
: []; : [];
if (requiredFields.length) { if (requiredFields.length) {
const missing = requiredFields.filter(f => args[f] === undefined); const missing = requiredFields.filter(f => {
const value = args[f];
return (
value === undefined ||
value === null ||
(typeof value === "string" && value.trim() === "")
);
});
if (missing.length) { if (missing.length) {
replyError( replyError(
id, id,
-32602, -32602,
`Invalid arguments: missing ${missing.map(m => `'${m}'`).join(", ")}` `Invalid arguments: missing or empty ${missing.map(m => `'${m}'`).join(", ")}`
); );
return; return;
} }
@ -547,7 +553,7 @@ jobs:
WORKFLOW_NAME="Daily Perf Improver" WORKFLOW_NAME="Daily Perf Improver"
# Check stop-time limit # Check stop-time limit
STOP_TIME="2025-09-19 14:50:09" STOP_TIME="2025-09-19 15:41:02"
echo "Checking stop-time limit: $STOP_TIME" echo "Checking stop-time limit: $STOP_TIME"
# Convert stop time to epoch seconds # Convert stop time to epoch seconds
@ -1488,13 +1494,16 @@ jobs:
); );
continue; continue;
} }
if (!item.branch || typeof item.branch !== "string") {
errors.push(
`Line ${i + 1}: create-pull-request requires a 'branch' string field`
);
continue;
}
// Sanitize text content // Sanitize text content
item.title = sanitizeContent(item.title); item.title = sanitizeContent(item.title);
item.body = sanitizeContent(item.body); item.body = sanitizeContent(item.body);
// Sanitize branch name if present item.branch = sanitizeContent(item.branch);
if (item.branch && typeof item.branch === "string") {
item.branch = sanitizeContent(item.branch);
}
// Sanitize labels if present // Sanitize labels if present
if (item.labels && Array.isArray(item.labels)) { if (item.labels && Array.isArray(item.labels)) {
item.labels = item.labels.map( item.labels = item.labels.map(
@ -1591,10 +1600,10 @@ jobs:
} }
break; break;
case "push-to-pr-branch": case "push-to-pr-branch":
// Validate required branch_name field // Validate required branch field
if (!item.branch_name || typeof item.branch_name !== "string") { if (!item.branch || typeof item.branch !== "string") {
errors.push( errors.push(
`Line ${i + 1}: push-to-pr-branch requires a 'branch_name' string field` `Line ${i + 1}: push-to-pr-branch requires a 'branch' string field`
); );
continue; continue;
} }
@ -1606,7 +1615,7 @@ jobs:
continue; continue;
} }
// Sanitize text content // Sanitize text content
item.branch_name = sanitizeContent(item.branch_name); item.branch = sanitizeContent(item.branch);
item.message = sanitizeContent(item.message); item.message = sanitizeContent(item.message);
// Validate pull_request_number if provided (for target "*") // Validate pull_request_number if provided (for target "*")
const pushPRNumValidation = validateIssueOrPRNumber( const pushPRNumValidation = validateIssueOrPRNumber(

View file

@ -2,7 +2,7 @@
# To update this file, edit the corresponding .md file and run: # To update this file, edit the corresponding .md file and run:
# gh aw compile # gh aw compile
# #
# Effective stop-time: 2025-09-19 14:50:09 # Effective stop-time: 2025-09-19 15:41:02
name: "Daily Test Coverage Improver" name: "Daily Test Coverage Improver"
"on": "on":
@ -242,7 +242,7 @@ jobs:
description: "Create a new GitHub pull request", description: "Create a new GitHub pull request",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["title", "body"], required: ["title", "body", "branch"],
properties: { properties: {
title: { type: "string", description: "Pull request title" }, title: { type: "string", description: "Pull request title" },
body: { body: {
@ -251,8 +251,7 @@ jobs:
}, },
branch: { branch: {
type: "string", type: "string",
description: description: "Required branch name",
"Optional branch name (will be auto-generated if not provided)",
}, },
labels: { labels: {
type: "array", type: "array",
@ -374,9 +373,9 @@ jobs:
description: "Push changes to a pull request branch", description: "Push changes to a pull request branch",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["branch_name", "message"], required: ["branch", "message"],
properties: { properties: {
branch_name: { branch: {
type: "string", type: "string",
description: description:
"The name of the branch to push to, should be the branch name associated with the pull request", "The name of the branch to push to, should be the branch name associated with the pull request",
@ -475,12 +474,19 @@ jobs:
? tool.inputSchema.required ? tool.inputSchema.required
: []; : [];
if (requiredFields.length) { if (requiredFields.length) {
const missing = requiredFields.filter(f => args[f] === undefined); const missing = requiredFields.filter(f => {
const value = args[f];
return (
value === undefined ||
value === null ||
(typeof value === "string" && value.trim() === "")
);
});
if (missing.length) { if (missing.length) {
replyError( replyError(
id, id,
-32602, -32602,
`Invalid arguments: missing ${missing.map(m => `'${m}'`).join(", ")}` `Invalid arguments: missing or empty ${missing.map(m => `'${m}'`).join(", ")}`
); );
return; return;
} }
@ -547,7 +553,7 @@ jobs:
WORKFLOW_NAME="Daily Test Coverage Improver" WORKFLOW_NAME="Daily Test Coverage Improver"
# Check stop-time limit # Check stop-time limit
STOP_TIME="2025-09-19 14:50:09" STOP_TIME="2025-09-19 15:41:02"
echo "Checking stop-time limit: $STOP_TIME" echo "Checking stop-time limit: $STOP_TIME"
# Convert stop time to epoch seconds # Convert stop time to epoch seconds
@ -1463,13 +1469,16 @@ jobs:
); );
continue; continue;
} }
if (!item.branch || typeof item.branch !== "string") {
errors.push(
`Line ${i + 1}: create-pull-request requires a 'branch' string field`
);
continue;
}
// Sanitize text content // Sanitize text content
item.title = sanitizeContent(item.title); item.title = sanitizeContent(item.title);
item.body = sanitizeContent(item.body); item.body = sanitizeContent(item.body);
// Sanitize branch name if present item.branch = sanitizeContent(item.branch);
if (item.branch && typeof item.branch === "string") {
item.branch = sanitizeContent(item.branch);
}
// Sanitize labels if present // Sanitize labels if present
if (item.labels && Array.isArray(item.labels)) { if (item.labels && Array.isArray(item.labels)) {
item.labels = item.labels.map( item.labels = item.labels.map(
@ -1566,10 +1575,10 @@ jobs:
} }
break; break;
case "push-to-pr-branch": case "push-to-pr-branch":
// Validate required branch_name field // Validate required branch field
if (!item.branch_name || typeof item.branch_name !== "string") { if (!item.branch || typeof item.branch !== "string") {
errors.push( errors.push(
`Line ${i + 1}: push-to-pr-branch requires a 'branch_name' string field` `Line ${i + 1}: push-to-pr-branch requires a 'branch' string field`
); );
continue; continue;
} }
@ -1581,7 +1590,7 @@ jobs:
continue; continue;
} }
// Sanitize text content // Sanitize text content
item.branch_name = sanitizeContent(item.branch_name); item.branch = sanitizeContent(item.branch);
item.message = sanitizeContent(item.message); item.message = sanitizeContent(item.message);
// Validate pull_request_number if provided (for target "*") // Validate pull_request_number if provided (for target "*")
const pushPRNumValidation = validateIssueOrPRNumber( const pushPRNumValidation = validateIssueOrPRNumber(

43
.github/workflows/pr-fix.lock.yml generated vendored
View file

@ -2,7 +2,7 @@
# To update this file, edit the corresponding .md file and run: # To update this file, edit the corresponding .md file and run:
# gh aw compile # gh aw compile
# #
# Effective stop-time: 2025-09-19 14:50:09 # Effective stop-time: 2025-09-19 15:41:02
name: "PR Fix" name: "PR Fix"
on: on:
@ -772,7 +772,7 @@ jobs:
description: "Create a new GitHub pull request", description: "Create a new GitHub pull request",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["title", "body"], required: ["title", "body", "branch"],
properties: { properties: {
title: { type: "string", description: "Pull request title" }, title: { type: "string", description: "Pull request title" },
body: { body: {
@ -781,8 +781,7 @@ jobs:
}, },
branch: { branch: {
type: "string", type: "string",
description: description: "Required branch name",
"Optional branch name (will be auto-generated if not provided)",
}, },
labels: { labels: {
type: "array", type: "array",
@ -904,9 +903,9 @@ jobs:
description: "Push changes to a pull request branch", description: "Push changes to a pull request branch",
inputSchema: { inputSchema: {
type: "object", type: "object",
required: ["branch_name", "message"], required: ["branch", "message"],
properties: { properties: {
branch_name: { branch: {
type: "string", type: "string",
description: description:
"The name of the branch to push to, should be the branch name associated with the pull request", "The name of the branch to push to, should be the branch name associated with the pull request",
@ -1005,12 +1004,19 @@ jobs:
? tool.inputSchema.required ? tool.inputSchema.required
: []; : [];
if (requiredFields.length) { if (requiredFields.length) {
const missing = requiredFields.filter(f => args[f] === undefined); const missing = requiredFields.filter(f => {
const value = args[f];
return (
value === undefined ||
value === null ||
(typeof value === "string" && value.trim() === "")
);
});
if (missing.length) { if (missing.length) {
replyError( replyError(
id, id,
-32602, -32602,
`Invalid arguments: missing ${missing.map(m => `'${m}'`).join(", ")}` `Invalid arguments: missing or empty ${missing.map(m => `'${m}'`).join(", ")}`
); );
return; return;
} }
@ -1077,7 +1083,7 @@ jobs:
WORKFLOW_NAME="PR Fix" WORKFLOW_NAME="PR Fix"
# Check stop-time limit # Check stop-time limit
STOP_TIME="2025-09-19 14:50:09" STOP_TIME="2025-09-19 15:41:02"
echo "Checking stop-time limit: $STOP_TIME" echo "Checking stop-time limit: $STOP_TIME"
# Convert stop time to epoch seconds # Convert stop time to epoch seconds
@ -1917,13 +1923,16 @@ jobs:
); );
continue; continue;
} }
if (!item.branch || typeof item.branch !== "string") {
errors.push(
`Line ${i + 1}: create-pull-request requires a 'branch' string field`
);
continue;
}
// Sanitize text content // Sanitize text content
item.title = sanitizeContent(item.title); item.title = sanitizeContent(item.title);
item.body = sanitizeContent(item.body); item.body = sanitizeContent(item.body);
// Sanitize branch name if present item.branch = sanitizeContent(item.branch);
if (item.branch && typeof item.branch === "string") {
item.branch = sanitizeContent(item.branch);
}
// Sanitize labels if present // Sanitize labels if present
if (item.labels && Array.isArray(item.labels)) { if (item.labels && Array.isArray(item.labels)) {
item.labels = item.labels.map( item.labels = item.labels.map(
@ -2020,10 +2029,10 @@ jobs:
} }
break; break;
case "push-to-pr-branch": case "push-to-pr-branch":
// Validate required branch_name field // Validate required branch field
if (!item.branch_name || typeof item.branch_name !== "string") { if (!item.branch || typeof item.branch !== "string") {
errors.push( errors.push(
`Line ${i + 1}: push-to-pr-branch requires a 'branch_name' string field` `Line ${i + 1}: push-to-pr-branch requires a 'branch' string field`
); );
continue; continue;
} }
@ -2035,7 +2044,7 @@ jobs:
continue; continue;
} }
// Sanitize text content // Sanitize text content
item.branch_name = sanitizeContent(item.branch_name); item.branch = sanitizeContent(item.branch);
item.message = sanitizeContent(item.message); item.message = sanitizeContent(item.message);
// Validate pull_request_number if provided (for target "*") // Validate pull_request_number if provided (for target "*")
const pushPRNumValidation = validateIssueOrPRNumber( const pushPRNumValidation = validateIssueOrPRNumber(