From 9e5372f37b10011fcfc72131dcfe4beaf115a399 Mon Sep 17 00:00:00 2001 From: ztimson Date: Tue, 30 Dec 2025 23:55:21 -0500 Subject: [PATCH] Fixed more bugs --- package.json | 2 +- src/refine.mjs | 15 ++++++++++----- src/review.mjs | 5 ++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index c1c6f33..9826270 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ztimson/ai-agents", - "version": "0.0.8", + "version": "0.1.0", "description": "AI agents", "keywords": ["ai", "review"], "author": "ztimson", diff --git a/src/refine.mjs b/src/refine.mjs index e297f4f..6046713 100644 --- a/src/refine.mjs +++ b/src/refine.mjs @@ -32,7 +32,7 @@ dotenv.config({path: '.env.local', override: true, quiet: true}); if(resp.ok) return resp.json(); else throw new Error(`${resp.status} ${await resp.text()}`); }); - if(issueData.labels.length !== 1 || issueData.labels?.[0] !== 'Review/AI') { + if(issueData.labels?.[0]?.name !== 1 || issueData.labels?.[0] !== 'Review/AI') { console.log('Skipping'); return process.exit(); } @@ -150,11 +150,13 @@ Output ONLY markdown. No explanations, labels, or extra formatting.`}); if(!body) throw new Error('Invalid response from AI'); // Check for duplicates + const repoInfo = await fetch(`${git}/api/v1/repos/${owner}/${repo}`, {headers: {'Authorization': `token ${auth}`},}).then(resp => resp.ok ? resp.json() : null); const search = await fetch(`${git}/api/v1/repos/issues/search`, { method: 'POST', headers: {'Authorization': `token ${auth}`, 'Content-Type': 'application/json'}, body: JSON.stringify({ - priority_repo_id: repo, + owner, + priority_repo_id: repoInfo.id, type: 'issues', limit: 3, q: title @@ -167,7 +169,7 @@ Output ONLY markdown. No explanations, labels, or extra formatting.`}); system: `Your job is to identify duplicates. Respond with the ID number of the duplicate or nothing if there are no matches \n\n${dupes}` }))?.pop()?.content; // Handle duplicates - if(!!hasDuplicates && (dupeId = dupeIds.find(id => hasDuplicates.includes(id.toString()))) != null) { + if(!!hasDuplicates && (dupeId = dupeIds.find(id => new RegExp(`(^| )${id}( |$)`, 'm').test(hasDuplicates)))) { await fetch(`${git}/api/v1/repos/${owner}/${repo}/issues/${ticket}/comments`, { method: 'POST', headers: {'Authorization': `token ${auth}`, 'Content-Type': 'application/json'}, @@ -188,7 +190,7 @@ Output ONLY markdown. No explanations, labels, or extra formatting.`}); } // Update ticket - const updateRes = await fetch(`${git}/api/v1/repos/${owner}/${repo}/issues/${ticket}`, { + await fetch(`${git}/api/v1/repos/${owner}/${repo}/issues/${ticket}`, { method: 'PATCH', headers: {'Authorization': `token ${auth}`, 'Content-Type': 'application/json'}, body: JSON.stringify({title, body}) @@ -202,4 +204,7 @@ Output ONLY markdown. No explanations, labels, or extra formatting.`}); } console.log(`Title: ${title}\nType: ${type}\nBody:\n${body}`); -})(); +})().catch(err => { + console.error(`Error: ${err.message || err.toString()}`); + process.exit(1); +}); diff --git a/src/review.mjs b/src/review.mjs index cd071e6..e1c87a3 100644 --- a/src/review.mjs +++ b/src/review.mjs @@ -106,4 +106,7 @@ dotenv.config({path: '.env.local', override: true, quiet: true, debug: false}); if(!res.ok) throw new Error(`${res.status} ${await res.text()}`); } console.log(comments.map(c => `${c.path}${c.new_position ? `:${c.new_position}` : ''}\n${c.body}`).join('\n\n') + '\n\n' + summary); -})(); +})().catch(err => { + console.error(`Error: ${err.message || err.toString()}`); + process.exit(1); +});