@wickdninja/sweny-engine 0.1.0 → 0.2.0
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.
- package/dist/recipes/triage/prompts.d.ts +2 -2
- package/dist/recipes/triage/prompts.d.ts.map +1 -1
- package/dist/recipes/triage/prompts.js +12 -11
- package/dist/recipes/triage/prompts.js.map +1 -1
- package/dist/recipes/triage/steps/create-issue.d.ts.map +1 -1
- package/dist/recipes/triage/steps/create-issue.js +8 -5
- package/dist/recipes/triage/steps/create-issue.js.map +1 -1
- package/dist/recipes/triage/steps/create-pr.d.ts.map +1 -1
- package/dist/recipes/triage/steps/create-pr.js +6 -5
- package/dist/recipes/triage/steps/create-pr.js.map +1 -1
- package/dist/recipes/triage/steps/implement-fix.d.ts.map +1 -1
- package/dist/recipes/triage/steps/implement-fix.js +3 -2
- package/dist/recipes/triage/steps/implement-fix.js.map +1 -1
- package/dist/recipes/triage/steps/investigate.d.ts.map +1 -1
- package/dist/recipes/triage/steps/investigate.js +5 -5
- package/dist/recipes/triage/steps/investigate.js.map +1 -1
- package/dist/recipes/triage/steps/notify.d.ts.map +1 -1
- package/dist/recipes/triage/steps/notify.js +3 -2
- package/dist/recipes/triage/steps/notify.js.map +1 -1
- package/dist/recipes/triage/types.d.ts +10 -0
- package/dist/recipes/triage/types.d.ts.map +1 -1
- package/package.json +6 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ObservabilityProvider } from "@swenyai/providers/observability";
|
|
2
2
|
import type { TriageConfig } from "./types.js";
|
|
3
3
|
export declare function buildInvestigationPrompt(config: TriageConfig, observability: ObservabilityProvider, knownIssuesContent: string): string;
|
|
4
|
-
export declare function buildImplementPrompt(issueIdentifier: string): string;
|
|
5
|
-
export declare function buildPrDescriptionPrompt(issueIdentifier: string, issueUrl: string): string;
|
|
4
|
+
export declare function buildImplementPrompt(issueIdentifier: string, analysisDir?: string): string;
|
|
5
|
+
export declare function buildPrDescriptionPrompt(issueIdentifier: string, issueUrl: string, analysisDir?: string): string;
|
|
6
6
|
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/recipes/triage/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAO/C,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,qBAAqB,EACpC,kBAAkB,EAAE,MAAM,GACzB,MAAM,
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/recipes/triage/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAO/C,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,qBAAqB,EACpC,kBAAkB,EAAE,MAAM,GACzB,MAAM,CAiMR;AAMD,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,SAA4B,GAAG,MAAM,CA0C7G;AAMD,wBAAgB,wBAAwB,CACtC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAA4B,GACtC,MAAM,CAoCR"}
|
|
@@ -4,6 +4,7 @@ import { parseServiceMap } from "./service-map.js";
|
|
|
4
4
|
// Investigation Prompt
|
|
5
5
|
// ---------------------------------------------------------------------------
|
|
6
6
|
export function buildInvestigationPrompt(config, observability, knownIssuesContent) {
|
|
7
|
+
const analysisDir = config.analysisDir ?? ".github/triage-analysis";
|
|
7
8
|
const parts = [];
|
|
8
9
|
parts.push(`You are an autonomous SRE agent investigating production issues.
|
|
9
10
|
You have access to multiple tools and data sources. Your job is to investigate issues,
|
|
@@ -133,10 +134,10 @@ ${knownIssuesContent}`);
|
|
|
133
134
|
|
|
134
135
|
Create these files with your findings:
|
|
135
136
|
|
|
136
|
-
### 1.
|
|
137
|
+
### 1. \`${analysisDir}/investigation-log.md\`
|
|
137
138
|
Document your investigation process - commands run, what you found, reasoning.
|
|
138
139
|
|
|
139
|
-
### 2.
|
|
140
|
+
### 2. \`${analysisDir}/issues-report.md\`
|
|
140
141
|
For each issue found:
|
|
141
142
|
- Severity, Environment (Production/Staging/Both), Frequency
|
|
142
143
|
- Description, Evidence (logs, stack traces)
|
|
@@ -146,7 +147,7 @@ For each issue found:
|
|
|
146
147
|
- If exists: Note the issue identifier (e.g., ENG-123) and URL
|
|
147
148
|
- If not found: Note as "No existing Linear issue found"
|
|
148
149
|
|
|
149
|
-
### 3.
|
|
150
|
+
### 3. \`${analysisDir}/best-candidate.md\`
|
|
150
151
|
Select the BEST issue to fix based on impact, frequency, fixability.
|
|
151
152
|
Include full technical analysis, exact code changes, test plan, rollback plan.
|
|
152
153
|
|
|
@@ -193,13 +194,13 @@ Write files early and update them if needed. Do NOT keep investigating without w
|
|
|
193
194
|
// ---------------------------------------------------------------------------
|
|
194
195
|
// Implementation Prompt
|
|
195
196
|
// ---------------------------------------------------------------------------
|
|
196
|
-
export function buildImplementPrompt(issueIdentifier) {
|
|
197
|
+
export function buildImplementPrompt(issueIdentifier, analysisDir = ".github/triage-analysis") {
|
|
197
198
|
return `You are implementing a fix for an issue identified from production logs.
|
|
198
199
|
|
|
199
200
|
## Context
|
|
200
201
|
|
|
201
|
-
Read the best candidate analysis at
|
|
202
|
-
Also read
|
|
202
|
+
Read the best candidate analysis at \`${analysisDir}/best-candidate.md\`.
|
|
203
|
+
Also read \`${analysisDir}/investigation-log.md\` for context.
|
|
203
204
|
|
|
204
205
|
## Your Task
|
|
205
206
|
|
|
@@ -230,7 +231,7 @@ Also read \`.github/triage-analysis/investigation-log.md\` for context.
|
|
|
230
231
|
|
|
231
232
|
## Safety Guidelines
|
|
232
233
|
|
|
233
|
-
- If the fix is too complex or risky, create
|
|
234
|
+
- If the fix is too complex or risky, create \`${analysisDir}/fix-declined.md\` explaining why
|
|
234
235
|
- Do not make breaking changes
|
|
235
236
|
- Prefer defensive coding patterns
|
|
236
237
|
|
|
@@ -239,18 +240,18 @@ Start by reading the best-candidate.md file.`;
|
|
|
239
240
|
// ---------------------------------------------------------------------------
|
|
240
241
|
// PR Description Prompt
|
|
241
242
|
// ---------------------------------------------------------------------------
|
|
242
|
-
export function buildPrDescriptionPrompt(issueIdentifier, issueUrl) {
|
|
243
|
+
export function buildPrDescriptionPrompt(issueIdentifier, issueUrl, analysisDir = ".github/triage-analysis") {
|
|
243
244
|
return `Generate a pull request description.
|
|
244
245
|
|
|
245
246
|
## Context
|
|
246
247
|
|
|
247
|
-
1. Read
|
|
248
|
-
2. Read
|
|
248
|
+
1. Read \`${analysisDir}/best-candidate.md\` for issue details
|
|
249
|
+
2. Read \`${analysisDir}/investigation-log.md\` for context
|
|
249
250
|
3. Run \`git diff main..HEAD\` to see the changes made
|
|
250
251
|
|
|
251
252
|
## Output
|
|
252
253
|
|
|
253
|
-
Create
|
|
254
|
+
Create \`${analysisDir}/pr-description.md\` with:
|
|
254
255
|
|
|
255
256
|
## Summary
|
|
256
257
|
<What this PR fixes and why>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/recipes/triage/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,UAAU,wBAAwB,CACtC,MAAoB,EACpB,aAAoC,EACpC,kBAA0B;IAE1B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC;;;;;4BAKe,MAAM,CAAC,UAAU;;;;;EAK3C,MAAM,CAAC,aAAa,IAAI,iBAAiB;;;EAGzC,MAAM,CAAC,sBAAsB,IAAI,iBAAiB;;;;;;;qBAO/B,MAAM,CAAC,aAAa;gBACzB,MAAM,CAAC,SAAS;gBAChB,MAAM,CAAC,aAAa;yBACX,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BhD,aAAa,CAAC,qBAAqB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;4BA0BX,MAAM,CAAC,cAAc;;;;kFAIiC,CAAC,CAAC;IAElF,kCAAkC;IAClC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,IAAI,CAAC;;;;;;;;;;;;;gEAamD,CAAC,CAAC;IAEhE,uBAAuB;IACvB,IAAI,kBAAkB,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC;;;;;;;EAOb,kBAAkB,EAAE,CAAC,CAAC;IACtB,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,IAAI,CAAC;;;2BAGc,MAAM,CAAC,aAAa;sBACzB,MAAM,CAAC,SAAS;sBAChB,MAAM,CAAC,aAAa;+BACX,MAAM,CAAC,kBAAkB
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/recipes/triage/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,UAAU,wBAAwB,CACtC,MAAoB,EACpB,aAAoC,EACpC,kBAA0B;IAE1B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,yBAAyB,CAAC;IACpE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC;;;;;4BAKe,MAAM,CAAC,UAAU;;;;;EAK3C,MAAM,CAAC,aAAa,IAAI,iBAAiB;;;EAGzC,MAAM,CAAC,sBAAsB,IAAI,iBAAiB;;;;;;;qBAO/B,MAAM,CAAC,aAAa;gBACzB,MAAM,CAAC,SAAS;gBAChB,MAAM,CAAC,aAAa;yBACX,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BhD,aAAa,CAAC,qBAAqB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;4BA0BX,MAAM,CAAC,cAAc;;;;kFAIiC,CAAC,CAAC;IAElF,kCAAkC;IAClC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,IAAI,CAAC;;;;;;;;;;;;;gEAamD,CAAC,CAAC;IAEhE,uBAAuB;IACvB,IAAI,kBAAkB,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC;;;;;;;EAOb,kBAAkB,EAAE,CAAC,CAAC;IACtB,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,IAAI,CAAC;;;2BAGc,MAAM,CAAC,aAAa;sBACzB,MAAM,CAAC,SAAS;sBAChB,MAAM,CAAC,aAAa;+BACX,MAAM,CAAC,kBAAkB;;;;;;WAM7C,WAAW;;;WAGX,WAAW;;;;;;;;;;WAUX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EAyCyD,CAAC,CAAC;IAE/E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,UAAU,oBAAoB,CAAC,eAAuB,EAAE,WAAW,GAAG,yBAAyB;IACnG,OAAO;;;;wCAI+B,WAAW;cACrC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;aA0BZ,eAAe;;;;;iDAKqB,WAAW;;;;6CAIf,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,UAAU,wBAAwB,CACtC,eAAuB,EACvB,QAAgB,EAChB,WAAW,GAAG,yBAAyB;IAEvC,OAAO;;;;YAIG,WAAW;YACX,WAAW;;;;;WAKZ,WAAW;;;;;;;;;;;;;;;;;;;;;;;qBAuBD,eAAe,KAAK,QAAQ;4BACrB,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-issue.d.ts","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/create-issue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"create-issue.d.ts","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/create-issue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,8FAA8F;AAC9F,wBAAsB,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAwFzF"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import * as fs from "fs";
|
|
2
|
+
const TITLE_MAX_LENGTH = 100;
|
|
3
|
+
const DESCRIPTION_MAX_LENGTH = 10000;
|
|
2
4
|
/** Extract issue title from best-candidate.md, then get-or-create an issue in the tracker. */
|
|
3
5
|
export async function createIssue(ctx) {
|
|
4
6
|
const config = ctx.config;
|
|
7
|
+
const analysisDir = config.analysisDir ?? ".github/triage-analysis";
|
|
5
8
|
const issueTracker = ctx.providers.get("issueTracker");
|
|
6
9
|
// -------------------------------------------------------------------------
|
|
7
10
|
// 1. Extract issue title from best-candidate.md
|
|
8
11
|
// -------------------------------------------------------------------------
|
|
9
12
|
let issueTitle = "SWEny Triage: Automated bug fix";
|
|
10
13
|
if (!config.issueOverride) {
|
|
11
|
-
const bestCandidatePath =
|
|
14
|
+
const bestCandidatePath = `${analysisDir}/best-candidate.md`;
|
|
12
15
|
if (fs.existsSync(bestCandidatePath)) {
|
|
13
16
|
const content = fs.readFileSync(bestCandidatePath, "utf-8");
|
|
14
17
|
const headingMatch = content.match(/^#\s+(.+)$/m);
|
|
@@ -17,7 +20,7 @@ export async function createIssue(ctx) {
|
|
|
17
20
|
.replace(/`/g, "")
|
|
18
21
|
.replace(/^(Best\s+)?(Fix\s+)?(Candidate)(\s+Fix)?[:\s]*/i, "")
|
|
19
22
|
.trim()
|
|
20
|
-
.slice(0,
|
|
23
|
+
.slice(0, TITLE_MAX_LENGTH);
|
|
21
24
|
}
|
|
22
25
|
if (!issueTitle) {
|
|
23
26
|
issueTitle = "SWEny Triage: Automated bug fix";
|
|
@@ -52,9 +55,9 @@ export async function createIssue(ctx) {
|
|
|
52
55
|
else {
|
|
53
56
|
ctx.logger.info("No existing issue found, creating new one...");
|
|
54
57
|
let description = "";
|
|
55
|
-
const bestCandidatePath =
|
|
58
|
+
const bestCandidatePath = `${analysisDir}/best-candidate.md`;
|
|
56
59
|
if (fs.existsSync(bestCandidatePath)) {
|
|
57
|
-
description = fs.readFileSync(bestCandidatePath, "utf-8").slice(0,
|
|
60
|
+
description = fs.readFileSync(bestCandidatePath, "utf-8").slice(0, DESCRIPTION_MAX_LENGTH);
|
|
58
61
|
}
|
|
59
62
|
const labelIds = [config.bugLabelId];
|
|
60
63
|
if (config.triageLabelId) {
|
|
@@ -64,7 +67,7 @@ export async function createIssue(ctx) {
|
|
|
64
67
|
title: issueTitle,
|
|
65
68
|
projectId: config.projectId,
|
|
66
69
|
labels: labelIds,
|
|
67
|
-
priority: 2,
|
|
70
|
+
priority: config.issuePriority ?? 2,
|
|
68
71
|
stateId: config.stateBacklog,
|
|
69
72
|
description,
|
|
70
73
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-issue.js","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/create-issue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAKzB,8FAA8F;AAC9F,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAkC;IAClE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAwB,cAAc,CAAC,CAAC;IAE9E,4EAA4E;IAC5E,gDAAgD;IAChD,4EAA4E;IAC5E,IAAI,UAAU,GAAG,iCAAiC,CAAC;IAEnD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"create-issue.js","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/create-issue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-pr.d.ts","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/create-pr.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,yFAAyF;AACzF,wBAAsB,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"create-pr.d.ts","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/create-pr.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,yFAAyF;AACzF,wBAAsB,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAkGtF"}
|
|
@@ -23,20 +23,21 @@ export async function createPr(ctx) {
|
|
|
23
23
|
const issueTitle = issueData?.issueTitle ?? "";
|
|
24
24
|
const issueUrl = issueData?.issueUrl ?? "";
|
|
25
25
|
const branchName = implementData?.branchName ?? "";
|
|
26
|
+
const analysisDir = config.analysisDir ?? ".github/triage-analysis";
|
|
26
27
|
// -------------------------------------------------------------------------
|
|
27
28
|
// 1. Generate PR description with Claude
|
|
28
29
|
// -------------------------------------------------------------------------
|
|
29
|
-
const prDescPrompt = buildPrDescriptionPrompt(issueIdentifier, issueUrl);
|
|
30
|
+
const prDescPrompt = buildPrDescriptionPrompt(issueIdentifier, issueUrl, analysisDir);
|
|
30
31
|
await codingAgent.run({
|
|
31
32
|
prompt: prDescPrompt,
|
|
32
|
-
maxTurns: 10,
|
|
33
|
+
maxTurns: config.prDescriptionMaxTurns ?? 10,
|
|
33
34
|
env: { ...config.agentEnv },
|
|
34
35
|
});
|
|
35
36
|
// -------------------------------------------------------------------------
|
|
36
37
|
// 2. Create Pull Request
|
|
37
38
|
// -------------------------------------------------------------------------
|
|
38
39
|
let prBody = "";
|
|
39
|
-
const prDescPath =
|
|
40
|
+
const prDescPath = `${analysisDir}/pr-description.md`;
|
|
40
41
|
if (fs.existsSync(prDescPath)) {
|
|
41
42
|
prBody = fs.readFileSync(prDescPath, "utf-8");
|
|
42
43
|
}
|
|
@@ -54,8 +55,8 @@ This PR contains an automated fix for an issue identified in production logs.
|
|
|
54
55
|
title: prTitle,
|
|
55
56
|
body: prBody,
|
|
56
57
|
head: branchName,
|
|
57
|
-
base: "main",
|
|
58
|
-
labels: ["agent", "triage", "needs-review"],
|
|
58
|
+
base: config.baseBranch ?? "main",
|
|
59
|
+
labels: config.prLabels ?? ["agent", "triage", "needs-review"],
|
|
59
60
|
});
|
|
60
61
|
ctx.logger.info(`Created PR #${pr.number}: ${pr.url}`);
|
|
61
62
|
// -------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-pr.js","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/create-pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAK9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAkC;IAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAwB,eAAe,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAwB,cAAc,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAc,aAAa,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAExD,qDAAqD;IACrD,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACzD,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,eAAe,EAAE,MAAM,IAAI,oCAAoC;SACxE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC;IACzC,MAAM,eAAe,GAAG,SAAS,EAAE,eAAe,IAAI,EAAE,CAAC;IACzD,MAAM,UAAU,GAAG,SAAS,EAAE,UAAU,IAAI,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,SAAS,EAAE,QAAQ,IAAI,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,aAAa,EAAE,UAAU,IAAI,EAAE,CAAC;IAEnD,4EAA4E;IAC5E,yCAAyC;IACzC,4EAA4E;IAC5E,MAAM,YAAY,GAAG,wBAAwB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-pr.js","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/create-pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implement-fix.d.ts","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/implement-fix.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,+EAA+E;AAC/E,wBAAsB,YAAY,CAAC,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"implement-fix.d.ts","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/implement-fix.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,+EAA+E;AAC/E,wBAAsB,YAAY,CAAC,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CA4G1F"}
|
|
@@ -4,6 +4,7 @@ import { buildImplementPrompt } from "../prompts.js";
|
|
|
4
4
|
/** Create branch, run Claude to implement fix, check for changes, and push. */
|
|
5
5
|
export async function implementFix(ctx) {
|
|
6
6
|
const config = ctx.config;
|
|
7
|
+
const analysisDir = config.analysisDir ?? ".github/triage-analysis";
|
|
7
8
|
const sourceControl = ctx.providers.get("sourceControl");
|
|
8
9
|
const codingAgent = ctx.providers.get("codingAgent");
|
|
9
10
|
const issueData = getStepData(ctx, "create-issue");
|
|
@@ -48,7 +49,7 @@ export async function implementFix(ctx) {
|
|
|
48
49
|
// 3. Install Claude and implement fix
|
|
49
50
|
// -------------------------------------------------------------------------
|
|
50
51
|
await codingAgent.install();
|
|
51
|
-
const implementPrompt = buildImplementPrompt(issueIdentifier);
|
|
52
|
+
const implementPrompt = buildImplementPrompt(issueIdentifier, analysisDir);
|
|
52
53
|
await codingAgent.run({
|
|
53
54
|
prompt: implementPrompt,
|
|
54
55
|
maxTurns: config.maxImplementTurns,
|
|
@@ -58,7 +59,7 @@ export async function implementFix(ctx) {
|
|
|
58
59
|
// 4. Check for code changes
|
|
59
60
|
// -------------------------------------------------------------------------
|
|
60
61
|
// Check if fix was declined
|
|
61
|
-
const fixDeclinedPath =
|
|
62
|
+
const fixDeclinedPath = `${analysisDir}/fix-declined.md`;
|
|
62
63
|
if (fs.existsSync(fixDeclinedPath)) {
|
|
63
64
|
const reason = fs.readFileSync(fixDeclinedPath, "utf-8").trim();
|
|
64
65
|
ctx.logger.info(`Fix was declined by Claude: ${reason.slice(0, 200)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implement-fix.js","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/implement-fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAKzB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAkC;IACnE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAwB,eAAe,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAc,aAAa,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEnD,MAAM,eAAe,GAAG,SAAS,EAAE,eAAe,IAAI,EAAE,CAAC;IACzD,MAAM,eAAe,GAAG,SAAS,EAAE,eAAe,CAAC;IAEnD,4EAA4E;IAC5E,8CAA8C;IAC9C,4EAA4E;IAC5E,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;IAC/C,IAAI,UAAU,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAErE,IAAI,UAAU,IAAI,eAAe,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACjE,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,MAAM,CAAC,aAAa,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YACxD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,KAAK,QAAQ,UAAU,CAAC,GAAG,iDAAiD,CAAC,CAAC;QACpH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,GAAG,YAAY,UAAU,CAAC,KAAK,cAAc,CAAC,CAAC;YAChG,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,sBAAsB,UAAU,CAAC,GAAG,EAAE;gBAC9C,IAAI,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,GAAG,EAAE;aACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,qCAAqC;IACrC,4EAA4E;IAC5E,MAAM,aAAa,CAAC,oBAAoB,EAAE,CAAC;IAE3C,IAAI,UAAkB,CAAC;IACvB,IAAI,eAAe,EAAE,CAAC;QACpB,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,GAAG,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC;IAC7D,CAAC;IAED,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IAEjD,4EAA4E;IAC5E,sCAAsC;IACtC,4EAA4E;IAC5E,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;IAE5B,MAAM,eAAe,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"implement-fix.js","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/implement-fix.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"investigate.d.ts","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/investigate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"investigate.d.ts","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/investigate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,aAAa,CAAC;AAIrE,kFAAkF;AAClF,wBAAsB,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAmCzF"}
|
|
@@ -2,19 +2,19 @@ import * as fs from "fs";
|
|
|
2
2
|
import * as path from "path";
|
|
3
3
|
import { getStepData } from "../results.js";
|
|
4
4
|
import { buildInvestigationPrompt } from "../prompts.js";
|
|
5
|
-
const ANALYSIS_DIR = ".github/triage-analysis";
|
|
6
5
|
/** Run Claude coding agent to investigate production issues and parse results. */
|
|
7
6
|
export async function investigate(ctx) {
|
|
8
7
|
const config = ctx.config;
|
|
8
|
+
const analysisDir = config.analysisDir ?? ".github/triage-analysis";
|
|
9
9
|
const observability = ctx.providers.get("observability");
|
|
10
10
|
const codingAgent = ctx.providers.get("codingAgent");
|
|
11
|
-
fs.mkdirSync(
|
|
11
|
+
fs.mkdirSync(analysisDir, { recursive: true });
|
|
12
12
|
// Install coding agent CLI
|
|
13
13
|
await codingAgent.install();
|
|
14
14
|
// Get known issues context from prior step
|
|
15
15
|
const knownIssuesContent = getStepData(ctx, "build-context")?.knownIssuesContent ?? "";
|
|
16
16
|
// Write known issues file for reference
|
|
17
|
-
const knownIssuesPath = path.join(
|
|
17
|
+
const knownIssuesPath = path.join(analysisDir, "known-issues-context.md");
|
|
18
18
|
fs.writeFileSync(knownIssuesPath, knownIssuesContent);
|
|
19
19
|
// Build investigation prompt
|
|
20
20
|
const prompt = buildInvestigationPrompt(config, observability, knownIssuesContent);
|
|
@@ -25,10 +25,10 @@ export async function investigate(ctx) {
|
|
|
25
25
|
env: { ...config.agentEnv },
|
|
26
26
|
});
|
|
27
27
|
// Parse results
|
|
28
|
-
const result = parseInvestigationResults(
|
|
28
|
+
const result = parseInvestigationResults(analysisDir);
|
|
29
29
|
return {
|
|
30
30
|
status: "success",
|
|
31
|
-
data: result,
|
|
31
|
+
data: { ...result },
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
function parseInvestigationResults(analysisDir) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"investigate.js","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/investigate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAK7B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,
|
|
1
|
+
{"version":3,"file":"investigate.js","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/investigate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/notify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,sEAAsE;AACtE,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/notify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,sEAAsE;AACtE,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAmE9F"}
|
|
@@ -43,14 +43,15 @@ export async function sendNotification(ctx) {
|
|
|
43
43
|
lines.push("> **Dry Run**: Analysis only");
|
|
44
44
|
}
|
|
45
45
|
// Append investigation log if it exists
|
|
46
|
-
const
|
|
46
|
+
const analysisDir = config.analysisDir ?? ".github/triage-analysis";
|
|
47
|
+
const investigationLog = `${analysisDir}/investigation-log.md`;
|
|
47
48
|
if (fs.existsSync(investigationLog)) {
|
|
48
49
|
lines.push("");
|
|
49
50
|
lines.push("### Investigation Log");
|
|
50
51
|
lines.push(fs.readFileSync(investigationLog, "utf-8"));
|
|
51
52
|
}
|
|
52
53
|
// Append issues report if it exists
|
|
53
|
-
const issuesReport =
|
|
54
|
+
const issuesReport = `${analysisDir}/issues-report.md`;
|
|
54
55
|
if (fs.existsSync(issuesReport)) {
|
|
55
56
|
lines.push("");
|
|
56
57
|
lines.push("### Issues Found");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/notify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAIzB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAkC;IACvE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAuB,cAAc,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,uBAAuB,aAAa,EAAE,cAAc,IAAI,SAAS,EAAE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,kBAAkB;IAClB,MAAM,eAAe,GAAG,MAAM,EAAE,eAAe,IAAI,SAAS,EAAE,eAAe,CAAC;IAC9E,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,SAAS,EAAE,QAAQ,CAAC;IACzD,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,eAAe,eAAe,KAAK,QAAQ,GAAG,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,iBAAiB;IACjB,IAAI,aAAa,EAAE,UAAU,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CACR,+CAA+C,aAAa,CAAC,UAAU,oCAAoC,CAC5G,CAAC;IACJ,CAAC;SAAM,IAAI,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACtE,CAAC;SAAM,IAAI,eAAe,EAAE,MAAM,KAAK,SAAS,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,kBAAkB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,mCAAmC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC7C,CAAC;IAED,wCAAwC;IACxC,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../../src/recipes/triage/steps/notify.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,16 @@ export interface TriageConfig {
|
|
|
18
18
|
noveltyMode: boolean;
|
|
19
19
|
issueOverride: string;
|
|
20
20
|
additionalInstructions: string;
|
|
21
|
+
/** Default branch for PR targets (default: "main"). */
|
|
22
|
+
baseBranch?: string;
|
|
23
|
+
/** Labels applied to created PRs (default: ["agent", "triage", "needs-review"]). */
|
|
24
|
+
prLabels?: string[];
|
|
25
|
+
/** Directory for triage analysis files (default: ".github/triage-analysis"). */
|
|
26
|
+
analysisDir?: string;
|
|
27
|
+
/** Max Claude turns for PR description generation (default: 10). */
|
|
28
|
+
prDescriptionMaxTurns?: number;
|
|
29
|
+
/** Default priority for new issues (default: 2). */
|
|
30
|
+
issuePriority?: number;
|
|
21
31
|
agentEnv: Record<string, string>;
|
|
22
32
|
}
|
|
23
33
|
/** Result of the investigation (learn) phase. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/recipes/triage/types.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IAE3B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IAGvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IAGxB,UAAU,EAAE,MAAM,CAAC;IAGnB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAG/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,gCAAgC;AAChC,MAAM,WAAW,MAAM;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,gBAAgB,CAAC;IAClC,WAAW,EAAE,mBAAmB,CAAC;IACjC,cAAc,EAAE,SAAS,CAAC;IAC1B,kBAAkB,EAAE,aAAa,CAAC;IAClC,eAAe,EAAE,gBAAgB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/recipes/triage/types.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IAE3B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IAGvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IAGxB,UAAU,EAAE,MAAM,CAAC;IAGnB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAG/B,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAGpB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,gCAAgC;AAChC,MAAM,WAAW,MAAM;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,gBAAgB,CAAC;IAClC,WAAW,EAAE,mBAAmB,CAAC;IACjC,cAAc,EAAE,SAAS,CAAC;IAC1B,kBAAkB,EAAE,aAAa,CAAC;IAClC,eAAe,EAAE,gBAAgB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wickdninja/sweny-engine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Workflow engine for SWEny — Learn, Act, Report",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
7
|
-
"node": ">=
|
|
7
|
+
"node": ">=20.0.0"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
|
@@ -22,7 +22,10 @@
|
|
|
22
22
|
".": "./dist/index.js"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@swenyai/providers": "npm:@wickdninja/sweny-providers@^0.
|
|
25
|
+
"@swenyai/providers": "npm:@wickdninja/sweny-providers@^0.2.0"
|
|
26
|
+
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"@swenyai/providers": ">=0.1.0"
|
|
26
29
|
},
|
|
27
30
|
"devDependencies": {
|
|
28
31
|
"@types/node": "^22",
|