mrvn-cli 0.5.21 → 0.5.22
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/index.js +18 -3
- package/dist/index.js.map +1 -1
- package/dist/marvin-serve.js +17 -2
- package/dist/marvin-serve.js.map +1 -1
- package/dist/marvin.js +18 -3
- package/dist/marvin.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -25807,6 +25807,7 @@ function generateProposedActions(issues) {
|
|
|
25807
25807
|
// src/skills/builtin/jira/sprint-progress.ts
|
|
25808
25808
|
import { query as query3 } from "@anthropic-ai/claude-agent-sdk";
|
|
25809
25809
|
var DONE_STATUSES15 = /* @__PURE__ */ new Set(["done", "closed", "resolved", "obsolete", "wont do", "cancelled"]);
|
|
25810
|
+
var PROGRESS_DONE_STATUSES = /* @__PURE__ */ new Set(["done", "closed", "resolved", "obsolete", "wont do"]);
|
|
25810
25811
|
var BATCH_SIZE = 5;
|
|
25811
25812
|
var MAX_LINKED_ISSUES = 50;
|
|
25812
25813
|
var BLOCKED_WEIGHT_RISK_THRESHOLD = 0.3;
|
|
@@ -26733,8 +26734,16 @@ async function _assessArtifactRecursive(store, client, host, options, visited, d
|
|
|
26733
26734
|
children.push(childReport);
|
|
26734
26735
|
}
|
|
26735
26736
|
if (children.length > 0) {
|
|
26737
|
+
const childProgressValues = children.map((c) => {
|
|
26738
|
+
const updates = c.appliedUpdates.length > 0 ? c.appliedUpdates : c.proposedUpdates;
|
|
26739
|
+
const lastStatus = findLast(updates, (u) => u.field === "status");
|
|
26740
|
+
if (lastStatus && PROGRESS_DONE_STATUSES.has(String(lastStatus.proposedValue))) return 100;
|
|
26741
|
+
const lastProgress = findLast(updates, (u) => u.field === "progress");
|
|
26742
|
+
if (lastProgress) return lastProgress.proposedValue;
|
|
26743
|
+
return c.marvinProgress;
|
|
26744
|
+
});
|
|
26736
26745
|
const rolledUpProgress = Math.round(
|
|
26737
|
-
|
|
26746
|
+
childProgressValues.reduce((s, p) => s + p, 0) / childProgressValues.length
|
|
26738
26747
|
);
|
|
26739
26748
|
if (rolledUpProgress !== currentProgress) {
|
|
26740
26749
|
proposedUpdates.push({
|
|
@@ -26750,7 +26759,7 @@ async function _assessArtifactRecursive(store, client, host, options, visited, d
|
|
|
26750
26759
|
const appliedUpdates = [];
|
|
26751
26760
|
if (options.applyUpdates && proposedUpdates.length > 0) {
|
|
26752
26761
|
const doneArtifacts = new Set(
|
|
26753
|
-
proposedUpdates.filter((u) => u.field === "status" &&
|
|
26762
|
+
proposedUpdates.filter((u) => u.field === "status" && PROGRESS_DONE_STATUSES.has(String(u.proposedValue))).map((u) => u.artifactId)
|
|
26754
26763
|
);
|
|
26755
26764
|
for (const update of proposedUpdates) {
|
|
26756
26765
|
if (update.field === "review") continue;
|
|
@@ -27078,6 +27087,12 @@ function formatArtifactChild(parts, child, depth) {
|
|
|
27078
27087
|
formatArtifactChild(parts, grandchild, depth + 1);
|
|
27079
27088
|
}
|
|
27080
27089
|
}
|
|
27090
|
+
function findLast(arr, predicate) {
|
|
27091
|
+
for (let i = arr.length - 1; i >= 0; i--) {
|
|
27092
|
+
if (predicate(arr[i])) return arr[i];
|
|
27093
|
+
}
|
|
27094
|
+
return void 0;
|
|
27095
|
+
}
|
|
27081
27096
|
|
|
27082
27097
|
// src/skills/builtin/jira/tools.ts
|
|
27083
27098
|
var JIRA_TYPE = "jira-issue";
|
|
@@ -33575,7 +33590,7 @@ function createProgram() {
|
|
|
33575
33590
|
const program = new Command();
|
|
33576
33591
|
program.name("marvin").description(
|
|
33577
33592
|
"AI-powered product development assistant with Product Owner, Delivery Manager, and Technical Lead personas"
|
|
33578
|
-
).version("0.5.
|
|
33593
|
+
).version("0.5.22");
|
|
33579
33594
|
program.command("init").description("Initialize a new Marvin project in the current directory").action(async () => {
|
|
33580
33595
|
await initCommand();
|
|
33581
33596
|
});
|