issue-flow 0.17.0 → 0.18.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/{agent-TB6W7PT7.js → agent-HMZTXCRT.js} +5 -5
- package/dist/{analyze-6M3KEOX7.js → analyze-Q4ONIWRZ.js} +10 -10
- package/dist/{apply-ADB3ZK7W.js → apply-EEFPY2W4.js} +5 -5
- package/dist/{bench-FM7I7EIV.js → bench-WWWXLTFH.js} +9 -9
- package/dist/{chunk-KZ5EY5XX.js → chunk-34OCSKOB.js} +7 -7
- package/dist/{chunk-UWDCIFTP.js → chunk-45WZ6GMI.js} +27 -43
- package/dist/chunk-45WZ6GMI.js.map +1 -0
- package/dist/{chunk-QMIQR7EE.js → chunk-62GVVZQO.js} +3 -3
- package/dist/{chunk-YII4U7ZD.js → chunk-6K2LCFG6.js} +2 -2
- package/dist/{chunk-A4H7P7T7.js → chunk-7UMMFOL2.js} +3 -3
- package/dist/chunk-7UMMFOL2.js.map +1 -0
- package/dist/{chunk-HJBF4WD2.js → chunk-CWSQVHVV.js} +59 -25
- package/dist/chunk-CWSQVHVV.js.map +1 -0
- package/dist/{chunk-SGTTR4XW.js → chunk-E4I6MMHD.js} +4 -4
- package/dist/{chunk-6YQT3SSM.js → chunk-ECU7YO7S.js} +2 -2
- package/dist/{chunk-MI5TREN3.js → chunk-EG2MGDP5.js} +6 -6
- package/dist/{chunk-RCZJQUTC.js → chunk-HOAHMERN.js} +43 -10
- package/dist/chunk-HOAHMERN.js.map +1 -0
- package/dist/{chunk-HLAPOUEM.js → chunk-KMCS76ZW.js} +3 -3
- package/dist/{chunk-KZXQWC7U.js → chunk-KRAGAUKD.js} +8 -8
- package/dist/{chunk-E6KXCV3T.js → chunk-LGHND47K.js} +2 -2
- package/dist/{chunk-DV7HUC4Z.js → chunk-LI35PIIS.js} +2 -2
- package/dist/{chunk-Z5O2XBWA.js → chunk-LTH6XYZ3.js} +5 -5
- package/dist/{chunk-2SUFAE6X.js → chunk-NEWNXZ65.js} +21 -12
- package/dist/{chunk-2SUFAE6X.js.map → chunk-NEWNXZ65.js.map} +1 -1
- package/dist/{chunk-LPWPFIIB.js → chunk-OODXFCQV.js} +7 -7
- package/dist/{chunk-ISZ54SVE.js → chunk-PMLE7KAQ.js} +17 -9
- package/dist/chunk-PMLE7KAQ.js.map +1 -0
- package/dist/{chunk-HY5HLFDU.js → chunk-QF7VEL3M.js} +115 -14
- package/dist/chunk-QF7VEL3M.js.map +1 -0
- package/dist/{chunk-B3TSS7BT.js → chunk-QJ44VG5G.js} +2 -2
- package/dist/{chunk-VE3IYNDN.js → chunk-SA6HXL4Y.js} +2 -2
- package/dist/{chunk-UK4E2FUA.js → chunk-TZYINKCC.js} +75 -53
- package/dist/chunk-TZYINKCC.js.map +1 -0
- package/dist/{chunk-32JSYXEK.js → chunk-V7QOIQYC.js} +2 -2
- package/dist/{chunk-ANI2NTR4.js → chunk-XUEMATVY.js} +6 -6
- package/dist/{chunk-D6ZBGJ3L.js → chunk-ZVZMWNCG.js} +129 -35
- package/dist/chunk-ZVZMWNCG.js.map +1 -0
- package/dist/cli.js +35 -35
- package/dist/cli.js.map +1 -1
- package/dist/{config-KGZUPAUP.js → config-LEBZZCJP.js} +4 -4
- package/dist/{conventions-RYN7OXJN.js → conventions-XOT6YW5L.js} +6 -6
- package/dist/{execute-QL3ZQIAP.js → execute-LELOSR5T.js} +14 -14
- package/dist/{generate-CX6KNHZS.js → generate-JGW5JSKB.js} +10 -10
- package/dist/{init-PDVQDRS6.js → init-TO6MUXO4.js} +7 -5
- package/dist/{operations-CAKIT2BO.js → operations-O4FORFIH.js} +4 -4
- package/dist/{plan-PRORGS3L.js → plan-OXAT344Q.js} +12 -12
- package/dist/{policy-WX6O2JID.js → policy-U5NBFAO5.js} +5 -5
- package/dist/{pr-27RMQI5F.js → pr-UZHNKKZC.js} +12 -12
- package/dist/{pr-review-VNESMAMT.js → pr-review-Q4ACAWDM.js} +9 -9
- package/dist/{prd-ZNC4T5BS.js → prd-6CYEMLDY.js} +12 -12
- package/dist/{recorder-N7U66HCO.js → recorder-2BAKPBRA.js} +2 -2
- package/dist/{resume-VLWIE264.js → resume-URCU6CIJ.js} +26 -26
- package/dist/{review-7CREJDKB.js → review-LVZT2TMW.js} +13 -13
- package/dist/{routing-VCDYHSXA.js → routing-EK6RBZM4.js} +6 -6
- package/dist/run-2RXJCJKT.js +56 -0
- package/dist/{usage-U7QNGCPK.js → usage-KTMYXAPF.js} +3 -3
- package/dist/{web-HUNDHCJ4.js → web-B5UPHHR5.js} +8 -8
- package/package.json +1 -1
- package/web/AGENTS.md +115 -7
- package/web/public/app.css +393 -245
- package/web/public/app.js +108 -38
- package/web/public/index.html +106 -78
- package/dist/chunk-A4H7P7T7.js.map +0 -1
- package/dist/chunk-D6ZBGJ3L.js.map +0 -1
- package/dist/chunk-HJBF4WD2.js.map +0 -1
- package/dist/chunk-HY5HLFDU.js.map +0 -1
- package/dist/chunk-ISZ54SVE.js.map +0 -1
- package/dist/chunk-RCZJQUTC.js.map +0 -1
- package/dist/chunk-UK4E2FUA.js.map +0 -1
- package/dist/chunk-UWDCIFTP.js.map +0 -1
- package/dist/run-3MPORLF5.js +0 -56
- /package/dist/{agent-TB6W7PT7.js.map → agent-HMZTXCRT.js.map} +0 -0
- /package/dist/{analyze-6M3KEOX7.js.map → analyze-Q4ONIWRZ.js.map} +0 -0
- /package/dist/{apply-ADB3ZK7W.js.map → apply-EEFPY2W4.js.map} +0 -0
- /package/dist/{bench-FM7I7EIV.js.map → bench-WWWXLTFH.js.map} +0 -0
- /package/dist/{chunk-KZ5EY5XX.js.map → chunk-34OCSKOB.js.map} +0 -0
- /package/dist/{chunk-QMIQR7EE.js.map → chunk-62GVVZQO.js.map} +0 -0
- /package/dist/{chunk-YII4U7ZD.js.map → chunk-6K2LCFG6.js.map} +0 -0
- /package/dist/{chunk-SGTTR4XW.js.map → chunk-E4I6MMHD.js.map} +0 -0
- /package/dist/{chunk-6YQT3SSM.js.map → chunk-ECU7YO7S.js.map} +0 -0
- /package/dist/{chunk-MI5TREN3.js.map → chunk-EG2MGDP5.js.map} +0 -0
- /package/dist/{chunk-HLAPOUEM.js.map → chunk-KMCS76ZW.js.map} +0 -0
- /package/dist/{chunk-KZXQWC7U.js.map → chunk-KRAGAUKD.js.map} +0 -0
- /package/dist/{chunk-E6KXCV3T.js.map → chunk-LGHND47K.js.map} +0 -0
- /package/dist/{chunk-DV7HUC4Z.js.map → chunk-LI35PIIS.js.map} +0 -0
- /package/dist/{chunk-Z5O2XBWA.js.map → chunk-LTH6XYZ3.js.map} +0 -0
- /package/dist/{chunk-LPWPFIIB.js.map → chunk-OODXFCQV.js.map} +0 -0
- /package/dist/{chunk-B3TSS7BT.js.map → chunk-QJ44VG5G.js.map} +0 -0
- /package/dist/{chunk-VE3IYNDN.js.map → chunk-SA6HXL4Y.js.map} +0 -0
- /package/dist/{chunk-32JSYXEK.js.map → chunk-V7QOIQYC.js.map} +0 -0
- /package/dist/{chunk-ANI2NTR4.js.map → chunk-XUEMATVY.js.map} +0 -0
- /package/dist/{config-KGZUPAUP.js.map → config-LEBZZCJP.js.map} +0 -0
- /package/dist/{conventions-RYN7OXJN.js.map → conventions-XOT6YW5L.js.map} +0 -0
- /package/dist/{execute-QL3ZQIAP.js.map → execute-LELOSR5T.js.map} +0 -0
- /package/dist/{generate-CX6KNHZS.js.map → generate-JGW5JSKB.js.map} +0 -0
- /package/dist/{init-PDVQDRS6.js.map → init-TO6MUXO4.js.map} +0 -0
- /package/dist/{operations-CAKIT2BO.js.map → operations-O4FORFIH.js.map} +0 -0
- /package/dist/{plan-PRORGS3L.js.map → plan-OXAT344Q.js.map} +0 -0
- /package/dist/{policy-WX6O2JID.js.map → policy-U5NBFAO5.js.map} +0 -0
- /package/dist/{pr-27RMQI5F.js.map → pr-UZHNKKZC.js.map} +0 -0
- /package/dist/{pr-review-VNESMAMT.js.map → pr-review-Q4ACAWDM.js.map} +0 -0
- /package/dist/{prd-ZNC4T5BS.js.map → prd-6CYEMLDY.js.map} +0 -0
- /package/dist/{recorder-N7U66HCO.js.map → recorder-2BAKPBRA.js.map} +0 -0
- /package/dist/{resume-VLWIE264.js.map → resume-URCU6CIJ.js.map} +0 -0
- /package/dist/{review-7CREJDKB.js.map → review-LVZT2TMW.js.map} +0 -0
- /package/dist/{routing-VCDYHSXA.js.map → routing-EK6RBZM4.js.map} +0 -0
- /package/dist/{run-3MPORLF5.js.map → run-2RXJCJKT.js.map} +0 -0
- /package/dist/{usage-U7QNGCPK.js.map → usage-KTMYXAPF.js.map} +0 -0
- /package/dist/{web-HUNDHCJ4.js.map → web-B5UPHHR5.js.map} +0 -0
|
@@ -3,26 +3,26 @@ import {
|
|
|
3
3
|
formatPhaseLine,
|
|
4
4
|
loadPhaseTiming,
|
|
5
5
|
snapshotTimingFields
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QJ44VG5G.js";
|
|
7
7
|
import {
|
|
8
8
|
runPr
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OODXFCQV.js";
|
|
10
10
|
import {
|
|
11
11
|
mostRecent,
|
|
12
12
|
prReviewDir,
|
|
13
13
|
readPrReviewIndex,
|
|
14
14
|
runPrReview
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-LTH6XYZ3.js";
|
|
16
16
|
import {
|
|
17
17
|
listPullRequests,
|
|
18
18
|
publishGitState
|
|
19
19
|
} from "./chunk-YUNBOUQH.js";
|
|
20
20
|
import {
|
|
21
21
|
runPrd
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-XUEMATVY.js";
|
|
23
23
|
import {
|
|
24
24
|
runReview
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-EG2MGDP5.js";
|
|
26
26
|
import {
|
|
27
27
|
PIPELINE_PHASES,
|
|
28
28
|
PIPELINE_PHASES_NO_BRANCH,
|
|
@@ -44,45 +44,45 @@ import {
|
|
|
44
44
|
saveExecutionPlan,
|
|
45
45
|
setQueueBranch,
|
|
46
46
|
setQueuePullRequest
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-7UMMFOL2.js";
|
|
48
48
|
import {
|
|
49
49
|
runInit
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-PMLE7KAQ.js";
|
|
51
51
|
import {
|
|
52
52
|
printQueueSummary,
|
|
53
53
|
printRunSummary,
|
|
54
54
|
runExecute,
|
|
55
55
|
stripMarkdown
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-KRAGAUKD.js";
|
|
57
57
|
import {
|
|
58
58
|
ensureWebMonitor
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-NEWNXZ65.js";
|
|
60
60
|
import {
|
|
61
61
|
runPlan
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-34OCSKOB.js";
|
|
63
63
|
import {
|
|
64
64
|
resolveCommandIssue
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-SA6HXL4Y.js";
|
|
66
66
|
import {
|
|
67
67
|
getProvider
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-62GVVZQO.js";
|
|
69
69
|
import {
|
|
70
70
|
beginUsageScope,
|
|
71
71
|
getRunUsageTotals
|
|
72
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-KMCS76ZW.js";
|
|
73
73
|
import {
|
|
74
74
|
assessDecomposition,
|
|
75
75
|
buildDecompositionReport,
|
|
76
76
|
proposeSubIssues,
|
|
77
77
|
resetAgentInvocationState
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-TZYINKCC.js";
|
|
79
79
|
import {
|
|
80
80
|
JournalPublisher,
|
|
81
81
|
MultiPublisher
|
|
82
82
|
} from "./chunk-WCCZJL7W.js";
|
|
83
83
|
import {
|
|
84
84
|
recommendedTarget
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-ZVZMWNCG.js";
|
|
86
86
|
import {
|
|
87
87
|
getPackageVersion
|
|
88
88
|
} from "./chunk-C5TL7T4V.js";
|
|
@@ -97,12 +97,12 @@ import {
|
|
|
97
97
|
loadRoutingConfig,
|
|
98
98
|
loadWebConfig,
|
|
99
99
|
onShutdown
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-QF7VEL3M.js";
|
|
101
101
|
import {
|
|
102
102
|
resolveIssuePaths,
|
|
103
103
|
resolveProjectPaths,
|
|
104
104
|
resolveQueuePaths
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-LI35PIIS.js";
|
|
106
106
|
import {
|
|
107
107
|
formatDuration,
|
|
108
108
|
getIcons,
|
|
@@ -513,11 +513,43 @@ async function loadResumableQueue(planFile, requested) {
|
|
|
513
513
|
const sameRequest = plan.requested.length === requested.length && plan.requested.every((id, index) => id === requested[index]);
|
|
514
514
|
return sameRequest ? plan : null;
|
|
515
515
|
}
|
|
516
|
+
function executableGraphIds(graph, requested) {
|
|
517
|
+
const roots = new Set(requested);
|
|
518
|
+
return [...graph.nodes.values()].filter((node) => roots.has(node.id) || node.issue?.state !== "closed").map((node) => node.id);
|
|
519
|
+
}
|
|
520
|
+
async function reconcileClosedDiscoveredIssues(plan, warn) {
|
|
521
|
+
let next = plan;
|
|
522
|
+
const closed = [];
|
|
523
|
+
for (const entry of plan.issues) {
|
|
524
|
+
if (entry.origin !== "discovered" || entry.status === "completed") continue;
|
|
525
|
+
try {
|
|
526
|
+
const issue = await getProvider(entry.source).get(entry.id);
|
|
527
|
+
if (issue?.state !== "closed") continue;
|
|
528
|
+
next = markQueueIssueCompleted(next, entry.id);
|
|
529
|
+
closed.push(entry.id);
|
|
530
|
+
} catch (err) {
|
|
531
|
+
warn(
|
|
532
|
+
`Could not refresh issue #${entry.id} before resuming the queue: ${err instanceof Error ? err.message : String(err)}`
|
|
533
|
+
);
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
return { plan: next, closed };
|
|
537
|
+
}
|
|
516
538
|
async function planQueue(input) {
|
|
517
539
|
const info = input.info ?? printInfo;
|
|
518
540
|
const warn = input.warn ?? printWarning;
|
|
519
541
|
const single = input.requested.length === 1;
|
|
520
|
-
|
|
542
|
+
let resumable = await loadResumableQueue(input.planFile, input.requested);
|
|
543
|
+
if (resumable !== null) {
|
|
544
|
+
const reconciled = await reconcileClosedDiscoveredIssues(resumable, warn);
|
|
545
|
+
resumable = reconciled.plan;
|
|
546
|
+
if (reconciled.closed.length > 0) {
|
|
547
|
+
await saveExecutionPlan(input.planFile, resumable);
|
|
548
|
+
info(
|
|
549
|
+
`Skipping already closed issue(s) in the resumed queue: ${reconciled.closed.map((id) => `#${id}`).join(", ")}.`
|
|
550
|
+
);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
521
553
|
if (resumable !== null && isQueueComplete(resumable)) {
|
|
522
554
|
const pr = resumable.pullRequest?.url;
|
|
523
555
|
info(
|
|
@@ -543,10 +575,8 @@ async function planQueue(input) {
|
|
|
543
575
|
known: input.known,
|
|
544
576
|
warn
|
|
545
577
|
});
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
}
|
|
549
|
-
const suggested = computeExecutionOrder(graph);
|
|
578
|
+
const schedulable = executableGraphIds(graph, input.requested);
|
|
579
|
+
const suggested = computeExecutionOrder(graph, { include: schedulable });
|
|
550
580
|
if (!suggested.ok) {
|
|
551
581
|
if (single) {
|
|
552
582
|
warn(
|
|
@@ -569,6 +599,9 @@ async function planQueue(input) {
|
|
|
569
599
|
noBranch: input.noBranch,
|
|
570
600
|
prReview: input.prReview
|
|
571
601
|
});
|
|
602
|
+
if (single && suggestedPlan.issues.length === 1 && suggestedPlan.issues[0]?.role !== "container") {
|
|
603
|
+
return { kind: "single" };
|
|
604
|
+
}
|
|
572
605
|
let choice;
|
|
573
606
|
try {
|
|
574
607
|
choice = await confirmQueue(suggestedPlan, requestedCount, {
|
|
@@ -588,7 +621,8 @@ async function planQueue(input) {
|
|
|
588
621
|
}
|
|
589
622
|
let plan = suggestedPlan;
|
|
590
623
|
if (choice === "cascade") {
|
|
591
|
-
const
|
|
624
|
+
const eligible = new Set(schedulable);
|
|
625
|
+
const include = collectCascadeIds(graph, input.requested).filter((id) => eligible.has(id));
|
|
592
626
|
const cascadeOrder = computeExecutionOrder(graph, { include });
|
|
593
627
|
if (!cascadeOrder.ok) {
|
|
594
628
|
warn(`Dependency cycle between issues: ${describeCycles(cascadeOrder.cycles)}.`);
|
|
@@ -2081,7 +2115,7 @@ async function maybeCreateSubIssues(issueNumber, plan, reportFile) {
|
|
|
2081
2115
|
printInfo("Nothing left to split: no pending story.");
|
|
2082
2116
|
return;
|
|
2083
2117
|
}
|
|
2084
|
-
const { runGenerate } = await import("./generate-
|
|
2118
|
+
const { runGenerate } = await import("./generate-JGW5JSKB.js");
|
|
2085
2119
|
for (const proposal of proposals) {
|
|
2086
2120
|
const instruction = [
|
|
2087
2121
|
`Create a sub-issue of #${issueNumber}: ${proposal.title}.`,
|
|
@@ -2692,4 +2726,4 @@ export {
|
|
|
2692
2726
|
publishIssueDetails,
|
|
2693
2727
|
runPipeline
|
|
2694
2728
|
};
|
|
2695
|
-
//# sourceMappingURL=chunk-
|
|
2729
|
+
//# sourceMappingURL=chunk-CWSQVHVV.js.map
|