@harness-engineering/cli 4.1.0 → 4.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/agents/skills/claude-code/harness-autopilot/SKILL.md +31 -0
- package/dist/agents/skills/claude-code/harness-catalog-retrospective/SKILL.md +124 -0
- package/dist/agents/skills/claude-code/harness-catalog-retrospective/skill.yaml +48 -0
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +13 -0
- package/dist/agents/skills/claude-code/harness-parallel-agents/SKILL.md +3 -0
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +3 -1
- package/dist/agents/skills/codex/harness-autopilot/SKILL.md +31 -0
- package/dist/agents/skills/codex/harness-catalog-retrospective/SKILL.md +124 -0
- package/dist/agents/skills/codex/harness-catalog-retrospective/skill.yaml +48 -0
- package/dist/agents/skills/codex/harness-execution/SKILL.md +13 -0
- package/dist/agents/skills/codex/harness-parallel-agents/SKILL.md +3 -0
- package/dist/agents/skills/codex/harness-planning/SKILL.md +3 -1
- package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +31 -0
- package/dist/agents/skills/cursor/harness-catalog-retrospective/SKILL.md +124 -0
- package/dist/agents/skills/cursor/harness-catalog-retrospective/skill.yaml +48 -0
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +13 -0
- package/dist/agents/skills/cursor/harness-parallel-agents/SKILL.md +3 -0
- package/dist/agents/skills/cursor/harness-planning/SKILL.md +3 -1
- package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +31 -0
- package/dist/agents/skills/gemini-cli/harness-catalog-retrospective/SKILL.md +124 -0
- package/dist/agents/skills/gemini-cli/harness-catalog-retrospective/skill.yaml +48 -0
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +13 -0
- package/dist/agents/skills/gemini-cli/harness-parallel-agents/SKILL.md +3 -0
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +3 -1
- package/dist/{agents-md-7L4PKKOM.js → agents-md-BK2UPKUC.js} +4 -4
- package/dist/{analyzer-XRCV63KC-HLTEIKAJ.js → analyzer-XRCV63KC-6T2Z32XC.js} +2 -2
- package/dist/{architecture-RCHFDI7E.js → architecture-7PNQZOWV.js} +5 -5
- package/dist/{assess-project-YUDPNRS6.js → assess-project-2QPCNN7N.js} +1 -1
- package/dist/bin/harness-mcp.js +15 -15
- package/dist/bin/harness.js +26 -26
- package/dist/{check-phase-gate-56GS3A72.js → check-phase-gate-RZUSDB3O.js} +5 -5
- package/dist/{chunk-UACYZCW4.js → chunk-33OU3LYX.js} +351 -4
- package/dist/{chunk-Y5HPJMTM.js → chunk-6STDKKAM.js} +2 -2
- package/dist/{chunk-GLHLXTKC.js → chunk-BJDT3VGQ.js} +6 -6
- package/dist/{chunk-YXOPQEFZ.js → chunk-D5YCPIK6.js} +2 -2
- package/dist/{chunk-Y33P35U3.js → chunk-DBCC7KIW.js} +5 -5
- package/dist/{chunk-XZNCONFG.js → chunk-DVG6DDX6.js} +1 -1
- package/dist/{chunk-GSYBGOY3.js → chunk-DW6HE5DH.js} +2 -2
- package/dist/{chunk-RY2U77OY.js → chunk-E5KJOUHI.js} +7 -7
- package/dist/{chunk-RZQZXWEL.js → chunk-HU7NS7JA.js} +6 -6
- package/dist/{chunk-AU4YPEIE.js → chunk-HUC73DZC.js} +3 -3
- package/dist/{chunk-ZU6T7W3U.js → chunk-J5MFNKE7.js} +2 -2
- package/dist/{chunk-4SKWGVYD.js → chunk-J7H5I4FO.js} +2 -2
- package/dist/{chunk-Z4XWWNYX.js → chunk-K5R2I37T.js} +203 -92
- package/dist/{chunk-YWRPQZL7.js → chunk-KHL6WFRL.js} +2 -2
- package/dist/{chunk-DGVT4DBI.js → chunk-KYFXXEK3.js} +3 -3
- package/dist/{chunk-NCMJXBEO.js → chunk-MHHISNS2.js} +2 -2
- package/dist/{chunk-ABRYIEWJ.js → chunk-RRCS27GT.js} +847 -800
- package/dist/{chunk-YJYUJSWK.js → chunk-RZTLXZHJ.js} +1 -1
- package/dist/{chunk-P4NA5OQX.js → chunk-SI4O2W4H.js} +2 -2
- package/dist/{chunk-BDGTZRZ6.js → chunk-UEXQMI6K.js} +56 -44
- package/dist/{chunk-XW5XVVMI.js → chunk-V2GJE5J5.js} +3 -3
- package/dist/{chunk-VG4G3R2V.js → chunk-VC2B275U.js} +2 -2
- package/dist/{chunk-OZSKLJQW.js → chunk-XACP5P2J.js} +2 -2
- package/dist/{chunk-IGWJRAJT.js → chunk-YTJIRQON.js} +2 -2
- package/dist/{chunk-N4AI2WFH.js → chunk-ZIJABBGZ.js} +2 -2
- package/dist/{ci-workflow-TFAA5BK7.js → ci-workflow-LGN7LHHO.js} +4 -4
- package/dist/{dist-ICW4QUEW.js → dist-FBBADRYS.js} +3 -1
- package/dist/{dist-MCTEX5QH.js → dist-LE5AU7FR.js} +17 -3
- package/dist/{docs-BBMAN3CY.js → docs-3BTPSHKE.js} +5 -5
- package/dist/{engine-R2YH74AL.js → engine-GWGU4AMH.js} +4 -4
- package/dist/{entropy-5UP5N6AF.js → entropy-35XURODP.js} +5 -5
- package/dist/{feedback-6MDCCFZL.js → feedback-NDGZZ37W.js} +1 -1
- package/dist/{generate-agent-definitions-KKAN5DB5.js → generate-agent-definitions-PYZ3E7SP.js} +5 -5
- package/dist/index.js +25 -25
- package/dist/{loader-2WT2ZE2T.js → loader-QK2OJXKB.js} +4 -4
- package/dist/{mcp-5V4LPMB3.js → mcp-Z5YMV7TA.js} +15 -15
- package/dist/{performance-2N3CFXLR.js → performance-VAYOYPVK.js} +5 -5
- package/dist/{review-pipeline-XZIGBU3Q.js → review-pipeline-UETEOWSS.js} +4 -4
- package/dist/{runtime-POME3GTR.js → runtime-J7KFACTK.js} +4 -4
- package/dist/{security-QLJLMSIW.js → security-6AIUZXF5.js} +1 -1
- package/dist/{state-events-YY5KBZTC.js → state-events-XQPHGLG5.js} +4 -4
- package/dist/{validate-VZORVK43.js → validate-ON7YMVLY.js} +5 -5
- package/dist/{validate-cross-check-OYKEDCST.js → validate-cross-check-HKKQA7K5.js} +4 -4
- package/package.json +8 -8
package/dist/bin/harness.js
CHANGED
|
@@ -3,40 +3,40 @@ import {
|
|
|
3
3
|
createProgram,
|
|
4
4
|
installCommandTelemetry,
|
|
5
5
|
printFirstRunWelcome
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
6
|
+
} from "../chunk-RRCS27GT.js";
|
|
7
|
+
import "../chunk-ZIJABBGZ.js";
|
|
8
|
+
import "../chunk-VC2B275U.js";
|
|
9
|
+
import "../chunk-SI4O2W4H.js";
|
|
10
|
+
import "../chunk-KHL6WFRL.js";
|
|
11
|
+
import "../chunk-DW6HE5DH.js";
|
|
12
|
+
import "../chunk-DVG6DDX6.js";
|
|
13
13
|
import "../chunk-KET4QQZB.js";
|
|
14
14
|
import "../chunk-YYFSFSB3.js";
|
|
15
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-YTJIRQON.js";
|
|
16
16
|
import "../chunk-CQ553GZO.js";
|
|
17
17
|
import "../chunk-ZP5E7YET.js";
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-MHHISNS2.js";
|
|
19
19
|
import "../chunk-GISMXMVL.js";
|
|
20
20
|
import "../chunk-V3ZQUCRH.js";
|
|
21
21
|
import "../chunk-TEFCFC4H.js";
|
|
22
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-V2GJE5J5.js";
|
|
23
23
|
import {
|
|
24
24
|
dispatchSkillsFromGit
|
|
25
|
-
} from "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
25
|
+
} from "../chunk-K5R2I37T.js";
|
|
26
|
+
import "../chunk-KYFXXEK3.js";
|
|
27
|
+
import "../chunk-D5YCPIK6.js";
|
|
28
|
+
import "../chunk-J5MFNKE7.js";
|
|
29
|
+
import "../chunk-HU7NS7JA.js";
|
|
30
|
+
import "../chunk-BJDT3VGQ.js";
|
|
31
|
+
import "../chunk-DBCC7KIW.js";
|
|
32
|
+
import "../chunk-E5KJOUHI.js";
|
|
33
33
|
import "../chunk-IOW3MW2K.js";
|
|
34
34
|
import "../chunk-3ISINLYT.js";
|
|
35
35
|
import "../chunk-4U5LDFCY.js";
|
|
36
|
-
import "../chunk-
|
|
37
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-HUC73DZC.js";
|
|
37
|
+
import "../chunk-J7H5I4FO.js";
|
|
38
38
|
import "../chunk-RC3OI5NK.js";
|
|
39
|
-
import "../chunk-
|
|
39
|
+
import "../chunk-XACP5P2J.js";
|
|
40
40
|
import "../chunk-W6Y7ZW3Y.js";
|
|
41
41
|
import "../chunk-WBVCN35T.js";
|
|
42
42
|
import "../chunk-UTJJJDNN.js";
|
|
@@ -45,7 +45,7 @@ import "../chunk-Y6SUQC32.js";
|
|
|
45
45
|
import {
|
|
46
46
|
findConfigFile,
|
|
47
47
|
loadConfig
|
|
48
|
-
} from "../chunk-
|
|
48
|
+
} from "../chunk-6STDKKAM.js";
|
|
49
49
|
import "../chunk-ZCZD7FHU.js";
|
|
50
50
|
import "../chunk-EBJQ6N4M.js";
|
|
51
51
|
import {
|
|
@@ -58,12 +58,12 @@ import {
|
|
|
58
58
|
readCheckState,
|
|
59
59
|
shouldRunCheck,
|
|
60
60
|
spawnBackgroundCheck
|
|
61
|
-
} from "../chunk-
|
|
61
|
+
} from "../chunk-33OU3LYX.js";
|
|
62
62
|
import {
|
|
63
63
|
CLI_VERSION
|
|
64
64
|
} from "../chunk-BM3PWGXQ.js";
|
|
65
|
-
import "../chunk-
|
|
66
|
-
import "../chunk-
|
|
65
|
+
import "../chunk-RZTLXZHJ.js";
|
|
66
|
+
import "../chunk-UEXQMI6K.js";
|
|
67
67
|
import "../chunk-WZJR6SOI.js";
|
|
68
68
|
import "../chunk-QCLOIUMX.js";
|
|
69
69
|
import "../chunk-XARGEOJV.js";
|
|
@@ -184,7 +184,7 @@ async function sessionStartDispatch(projectPath) {
|
|
|
184
184
|
return { dispatched: false };
|
|
185
185
|
}
|
|
186
186
|
try {
|
|
187
|
-
const result = await dispatchSkillsFromGit(projectPath, {});
|
|
187
|
+
const result = await dispatchSkillsFromGit(projectPath, { cachedOnly: true });
|
|
188
188
|
writeLastHead(projectPath, currentHead);
|
|
189
189
|
return { dispatched: true, result, currentHead };
|
|
190
190
|
} catch {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createCheckPhaseGateCommand,
|
|
3
3
|
runCheckPhaseGate
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-V2GJE5J5.js";
|
|
5
5
|
import "./chunk-Y6SUQC32.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-6STDKKAM.js";
|
|
7
7
|
import "./chunk-ZCZD7FHU.js";
|
|
8
8
|
import "./chunk-EBJQ6N4M.js";
|
|
9
9
|
import "./chunk-3WGJMBKH.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-33OU3LYX.js";
|
|
11
|
+
import "./chunk-RZTLXZHJ.js";
|
|
12
|
+
import "./chunk-UEXQMI6K.js";
|
|
13
13
|
import "./chunk-WZJR6SOI.js";
|
|
14
14
|
import "./chunk-QCLOIUMX.js";
|
|
15
15
|
import "./chunk-XARGEOJV.js";
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
resetParserCache,
|
|
32
32
|
resolveFileToLayer,
|
|
33
33
|
validateDependencies
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-RZTLXZHJ.js";
|
|
35
35
|
import {
|
|
36
36
|
AuthAuditEntrySchema,
|
|
37
37
|
AuthTokenPublicSchema,
|
|
@@ -55,6 +55,7 @@ import {
|
|
|
55
55
|
OTLPKeyValueSchema,
|
|
56
56
|
OTLPSpanSchema,
|
|
57
57
|
Ok,
|
|
58
|
+
PlanTaskSchema,
|
|
58
59
|
PromptCacheStatsSchema,
|
|
59
60
|
ProposalContentSchema,
|
|
60
61
|
ProposalDecisionSchema,
|
|
@@ -79,7 +80,7 @@ import {
|
|
|
79
80
|
init_dist,
|
|
80
81
|
isErr,
|
|
81
82
|
isOk
|
|
82
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-UEXQMI6K.js";
|
|
83
84
|
import {
|
|
84
85
|
DEFAULT_SKIP_DIRS,
|
|
85
86
|
GraphStore,
|
|
@@ -1383,6 +1384,7 @@ __export(dist_exports, {
|
|
|
1383
1384
|
PII_LINE_RE: () => PII_LINE_RE,
|
|
1384
1385
|
PII_TOKENS: () => PII_TOKENS,
|
|
1385
1386
|
PatternConfigSchema: () => PatternConfigSchema,
|
|
1387
|
+
PlanTaskSchema: () => PlanTaskSchema,
|
|
1386
1388
|
PredictionEngine: () => PredictionEngine,
|
|
1387
1389
|
PredictionOptionsSchema: () => PredictionOptionsSchema,
|
|
1388
1390
|
PredictionRegressionResultSchema: () => RegressionResultSchema,
|
|
@@ -1522,6 +1524,7 @@ __export(dist_exports, {
|
|
|
1522
1524
|
buildExternalId: () => buildExternalId,
|
|
1523
1525
|
buildProjectContext: () => buildProjectContext,
|
|
1524
1526
|
buildSnapshot: () => buildSnapshot,
|
|
1527
|
+
buildTaskGraph: () => buildTaskGraph,
|
|
1525
1528
|
calculateCacheSavings: () => calculateCacheSavings,
|
|
1526
1529
|
calculateCost: () => calculateCost,
|
|
1527
1530
|
calibrateDepth: () => calibrateDepth,
|
|
@@ -1633,6 +1636,7 @@ __export(dist_exports, {
|
|
|
1633
1636
|
generateRubric: () => generateRubric,
|
|
1634
1637
|
generateSuggestions: () => generateSuggestions,
|
|
1635
1638
|
getActionEmitter: () => getActionEmitter,
|
|
1639
|
+
getCatalogRetrospectiveReport: () => getCatalogRetrospectiveReport,
|
|
1636
1640
|
getExitCode: () => getExitCode,
|
|
1637
1641
|
getFeedbackConfig: () => getFeedbackConfig,
|
|
1638
1642
|
getInjectionPatterns: () => getInjectionPatterns,
|
|
@@ -1654,6 +1658,7 @@ __export(dist_exports, {
|
|
|
1654
1658
|
injectionRules: () => injectionRules,
|
|
1655
1659
|
insecureDefaultsRules: () => insecureDefaultsRules,
|
|
1656
1660
|
invalidateCheckState: () => invalidateCheckState,
|
|
1661
|
+
isAbandonedMidWorkflow: () => isAbandonedMidWorkflow,
|
|
1657
1662
|
isBadPort: () => isBadPort,
|
|
1658
1663
|
isClaimableBy: () => isClaimableBy,
|
|
1659
1664
|
isDuplicateFinding: () => isDuplicateFinding,
|
|
@@ -1726,6 +1731,7 @@ __export(dist_exports, {
|
|
|
1726
1731
|
parseSize: () => parseSize,
|
|
1727
1732
|
parseStrategyDoc: () => parseStrategyDoc,
|
|
1728
1733
|
pathTraversalRules: () => pathTraversalRules,
|
|
1734
|
+
planParallelization: () => planParallelization,
|
|
1729
1735
|
presetKind: () => presetKind,
|
|
1730
1736
|
previewFix: () => previewFix,
|
|
1731
1737
|
projectValue: () => projectValue,
|
|
@@ -1752,6 +1758,7 @@ __export(dist_exports, {
|
|
|
1752
1758
|
release: () => release,
|
|
1753
1759
|
removeContributions: () => removeContributions,
|
|
1754
1760
|
removeProvenance: () => removeProvenance,
|
|
1761
|
+
renderRetrospectiveMarkdown: () => renderRetrospectiveMarkdown,
|
|
1755
1762
|
requestMultiplePeerReviews: () => requestMultiplePeerReviews,
|
|
1756
1763
|
requestPeerReview: () => requestPeerReview,
|
|
1757
1764
|
resetFeedbackConfig: () => resetFeedbackConfig,
|
|
@@ -1839,6 +1846,7 @@ __export(dist_exports, {
|
|
|
1839
1846
|
validateFindings: () => validateFindings,
|
|
1840
1847
|
validateKnowledgeMap: () => validateKnowledgeMap,
|
|
1841
1848
|
validatePatternConfig: () => validatePatternConfig,
|
|
1849
|
+
validatePlanTasks: () => validatePlanTasks,
|
|
1842
1850
|
validatePulseConfig: () => validatePulseConfig,
|
|
1843
1851
|
validateRoadmapMode: () => validateRoadmapMode,
|
|
1844
1852
|
validateSolutionsDir: () => validateSolutionsDir,
|
|
@@ -14658,6 +14666,157 @@ function aggregateByDay2(records) {
|
|
|
14658
14666
|
function topSkills(records, n) {
|
|
14659
14667
|
return aggregateBySkill(records).slice(0, n);
|
|
14660
14668
|
}
|
|
14669
|
+
function isAbandonedMidWorkflow(record) {
|
|
14670
|
+
if (record.outcome === "abandoned") return true;
|
|
14671
|
+
return record.outcome !== "completed" && record.phasesReached.length > 0;
|
|
14672
|
+
}
|
|
14673
|
+
function resolveNowMs(records, now) {
|
|
14674
|
+
if (now) return now.getTime();
|
|
14675
|
+
let latest = Number.NEGATIVE_INFINITY;
|
|
14676
|
+
for (const record of records) {
|
|
14677
|
+
const t = Date.parse(record.startedAt);
|
|
14678
|
+
if (!Number.isNaN(t) && t > latest) latest = t;
|
|
14679
|
+
}
|
|
14680
|
+
return latest === Number.NEGATIVE_INFINITY ? Date.now() : latest;
|
|
14681
|
+
}
|
|
14682
|
+
function buildStat(skill, records, nowMs) {
|
|
14683
|
+
const invocations = records.length;
|
|
14684
|
+
const failures = records.filter((r) => r.outcome === "failed").length;
|
|
14685
|
+
const abandoned = records.filter(isAbandonedMidWorkflow).length;
|
|
14686
|
+
const timestamps = records.map((r) => r.startedAt).sort();
|
|
14687
|
+
const lastUsed = timestamps[timestamps.length - 1];
|
|
14688
|
+
const daysSinceLastUse = Math.floor((nowMs - Date.parse(lastUsed)) / DAY_MS);
|
|
14689
|
+
return {
|
|
14690
|
+
skill,
|
|
14691
|
+
invocations,
|
|
14692
|
+
failures,
|
|
14693
|
+
failureRate: failures / invocations,
|
|
14694
|
+
abandonedMidWorkflow: abandoned,
|
|
14695
|
+
lastUsed,
|
|
14696
|
+
daysSinceLastUse
|
|
14697
|
+
};
|
|
14698
|
+
}
|
|
14699
|
+
function groupBySkill(records) {
|
|
14700
|
+
const map = /* @__PURE__ */ new Map();
|
|
14701
|
+
for (const record of records) {
|
|
14702
|
+
const bucket = map.get(record.skill);
|
|
14703
|
+
if (bucket) bucket.push(record);
|
|
14704
|
+
else map.set(record.skill, [record]);
|
|
14705
|
+
}
|
|
14706
|
+
return map;
|
|
14707
|
+
}
|
|
14708
|
+
function computeCoverage(invokedSkills, catalogSkills) {
|
|
14709
|
+
if (!catalogSkills) {
|
|
14710
|
+
return { catalogSize: null, everInvoked: null, neverInvoked: null };
|
|
14711
|
+
}
|
|
14712
|
+
const catalog = new Set(catalogSkills);
|
|
14713
|
+
let everInvoked = 0;
|
|
14714
|
+
for (const skill of catalog) {
|
|
14715
|
+
if (invokedSkills.has(skill)) everInvoked++;
|
|
14716
|
+
}
|
|
14717
|
+
return {
|
|
14718
|
+
catalogSize: catalog.size,
|
|
14719
|
+
everInvoked,
|
|
14720
|
+
neverInvoked: catalog.size - everInvoked
|
|
14721
|
+
};
|
|
14722
|
+
}
|
|
14723
|
+
function getCatalogRetrospectiveReport(records, options = {}) {
|
|
14724
|
+
const inactiveDaysThreshold = options.inactiveDays ?? 90;
|
|
14725
|
+
const topN = options.topN ?? 10;
|
|
14726
|
+
const nowMs = resolveNowMs(records, options.now);
|
|
14727
|
+
const generatedAt = (options.now ?? /* @__PURE__ */ new Date()).toISOString();
|
|
14728
|
+
const bySkill = groupBySkill(records);
|
|
14729
|
+
const stats = Array.from(bySkill.entries()).map(([skill, recs]) => buildStat(skill, recs, nowMs));
|
|
14730
|
+
const topInvoked = [...stats].sort((a, b) => b.invocations - a.invocations || a.skill.localeCompare(b.skill)).slice(0, topN);
|
|
14731
|
+
const topFailing = stats.filter((s) => s.failures > 0).sort(
|
|
14732
|
+
(a, b) => b.failures - a.failures || b.failureRate - a.failureRate || a.skill.localeCompare(b.skill)
|
|
14733
|
+
).slice(0, topN);
|
|
14734
|
+
const abandonedMidWorkflow = stats.filter((s) => s.abandonedMidWorkflow > 0).sort(
|
|
14735
|
+
(a, b) => b.abandonedMidWorkflow - a.abandonedMidWorkflow || a.skill.localeCompare(b.skill)
|
|
14736
|
+
).slice(0, topN);
|
|
14737
|
+
const staleSkills = stats.filter((s) => s.daysSinceLastUse >= inactiveDaysThreshold).sort((a, b) => b.daysSinceLastUse - a.daysSinceLastUse || a.skill.localeCompare(b.skill));
|
|
14738
|
+
const timestamps = records.map((r) => r.startedAt).sort();
|
|
14739
|
+
const windowStart = timestamps[0] ?? null;
|
|
14740
|
+
const windowEnd = timestamps[timestamps.length - 1] ?? null;
|
|
14741
|
+
const windowDays = windowStart && windowEnd ? Math.max(0, Math.round((Date.parse(windowEnd) - Date.parse(windowStart)) / DAY_MS)) : 0;
|
|
14742
|
+
return {
|
|
14743
|
+
generatedAt,
|
|
14744
|
+
windowStart,
|
|
14745
|
+
windowEnd,
|
|
14746
|
+
windowDays,
|
|
14747
|
+
totalRecords: records.length,
|
|
14748
|
+
distinctSkills: bySkill.size,
|
|
14749
|
+
inactiveDaysThreshold,
|
|
14750
|
+
topN,
|
|
14751
|
+
topInvoked,
|
|
14752
|
+
topFailing,
|
|
14753
|
+
abandonedMidWorkflow,
|
|
14754
|
+
staleSkills,
|
|
14755
|
+
coverage: computeCoverage(new Set(bySkill.keys()), options.catalogSkills)
|
|
14756
|
+
};
|
|
14757
|
+
}
|
|
14758
|
+
function formatRate(rate) {
|
|
14759
|
+
return `${(rate * 100).toFixed(0)}%`;
|
|
14760
|
+
}
|
|
14761
|
+
function statRow(s) {
|
|
14762
|
+
return `| \`${s.skill}\` | ${s.invocations} | ${s.failures} (${formatRate(s.failureRate)}) | ${s.abandonedMidWorkflow} | ${s.lastUsed.slice(0, 10)} |`;
|
|
14763
|
+
}
|
|
14764
|
+
function renderStatSection(title, rows, emptyNote) {
|
|
14765
|
+
if (rows.length === 0) return `### ${title}
|
|
14766
|
+
|
|
14767
|
+
_${emptyNote}_
|
|
14768
|
+
`;
|
|
14769
|
+
const header = "| Skill | Invocations | Failures | Abandoned mid-workflow | Last used |\n| ----- | ----------- | -------- | ---------------------- | --------- |";
|
|
14770
|
+
return `### ${title}
|
|
14771
|
+
|
|
14772
|
+
${header}
|
|
14773
|
+
${rows.map(statRow).join("\n")}
|
|
14774
|
+
`;
|
|
14775
|
+
}
|
|
14776
|
+
function renderOverview(report) {
|
|
14777
|
+
const lines = ["## Overview", "", `- **Generated:** ${report.generatedAt}`];
|
|
14778
|
+
if (report.windowStart && report.windowEnd) {
|
|
14779
|
+
lines.push(
|
|
14780
|
+
`- **Window:** ${report.windowStart.slice(0, 10)} \u2192 ${report.windowEnd.slice(0, 10)} (${report.windowDays} days)`
|
|
14781
|
+
);
|
|
14782
|
+
} else {
|
|
14783
|
+
lines.push("- **Window:** no records");
|
|
14784
|
+
}
|
|
14785
|
+
lines.push(`- **Records:** ${report.totalRecords} across ${report.distinctSkills} skill(s)`);
|
|
14786
|
+
const { catalogSize, everInvoked, neverInvoked } = report.coverage;
|
|
14787
|
+
if (catalogSize != null && everInvoked != null && neverInvoked != null) {
|
|
14788
|
+
lines.push(
|
|
14789
|
+
`- **Telemetry coverage:** ${everInvoked}/${catalogSize} catalog skills have emitted telemetry (${neverInvoked} never invoked)`
|
|
14790
|
+
);
|
|
14791
|
+
}
|
|
14792
|
+
return lines.join("\n");
|
|
14793
|
+
}
|
|
14794
|
+
function staleEmptyNote(report) {
|
|
14795
|
+
const base = `No ever-invoked skill is inactive \u2265${report.inactiveDaysThreshold} days.`;
|
|
14796
|
+
if (report.windowDays < report.inactiveDaysThreshold) {
|
|
14797
|
+
return `${base} Note: the record window (${report.windowDays} days) is shorter than the threshold, so this signal cannot fire yet.`;
|
|
14798
|
+
}
|
|
14799
|
+
return base;
|
|
14800
|
+
}
|
|
14801
|
+
function renderRetrospectiveMarkdown(report) {
|
|
14802
|
+
const sections = [
|
|
14803
|
+
`# Catalog Retrospective \u2014 ${report.generatedAt.slice(0, 10)}`,
|
|
14804
|
+
renderOverview(report),
|
|
14805
|
+
renderStatSection("Top skills by invocations", report.topInvoked, "No invocations recorded."),
|
|
14806
|
+
renderStatSection("Top failing skills", report.topFailing, "No failing skills recorded."),
|
|
14807
|
+
renderStatSection(
|
|
14808
|
+
"Abandoned mid-workflow",
|
|
14809
|
+
report.abandonedMidWorkflow,
|
|
14810
|
+
"No abandoned-mid-workflow runs recorded."
|
|
14811
|
+
),
|
|
14812
|
+
renderStatSection(
|
|
14813
|
+
`Stale skills (inactive \u2265${report.inactiveDaysThreshold} days)`,
|
|
14814
|
+
report.staleSkills,
|
|
14815
|
+
staleEmptyNote(report)
|
|
14816
|
+
)
|
|
14817
|
+
];
|
|
14818
|
+
return sections.join("\n\n").trimEnd() + "\n";
|
|
14819
|
+
}
|
|
14661
14820
|
function isEmptyObject(v) {
|
|
14662
14821
|
return typeof v === "object" && v !== null && !Array.isArray(v) && Object.keys(v).length === 0;
|
|
14663
14822
|
}
|
|
@@ -15150,7 +15309,7 @@ function arrayLen(arr) {
|
|
|
15150
15309
|
return Array.isArray(arr) ? arr.length : 0;
|
|
15151
15310
|
}
|
|
15152
15311
|
async function gatherEntropyBlock(projectPath) {
|
|
15153
|
-
const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./analyzer-XRCV63KC-
|
|
15312
|
+
const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./analyzer-XRCV63KC-6T2Z32XC.js");
|
|
15154
15313
|
const analyzer = new EntropyAnalyzer2({
|
|
15155
15314
|
rootDir: projectPath,
|
|
15156
15315
|
include: ["src/**/*.ts", "src/**/*.tsx", "packages/*/src/**/*.ts"],
|
|
@@ -15364,6 +15523,185 @@ ${issues}`));
|
|
|
15364
15523
|
}
|
|
15365
15524
|
return Ok(result.data);
|
|
15366
15525
|
}
|
|
15526
|
+
function footprintOf(task) {
|
|
15527
|
+
const files = task.files || [];
|
|
15528
|
+
const owns = task.owns || [];
|
|
15529
|
+
return /* @__PURE__ */ new Set([...files, ...owns]);
|
|
15530
|
+
}
|
|
15531
|
+
function shareFootprint(a, b) {
|
|
15532
|
+
if (!a || !b) return false;
|
|
15533
|
+
for (const item of a) {
|
|
15534
|
+
if (b.has(item)) return true;
|
|
15535
|
+
}
|
|
15536
|
+
return false;
|
|
15537
|
+
}
|
|
15538
|
+
function addDependency(deps, consumer, producer) {
|
|
15539
|
+
if (!consumer || !producer) return;
|
|
15540
|
+
const consumerDeps = deps.get(consumer.id);
|
|
15541
|
+
if (consumerDeps) consumerDeps.add(producer.id);
|
|
15542
|
+
}
|
|
15543
|
+
function toGraphNode(task, deps) {
|
|
15544
|
+
const set = deps.get(task.id) || /* @__PURE__ */ new Set();
|
|
15545
|
+
return { id: task.id, dependsOn: [...set].sort() };
|
|
15546
|
+
}
|
|
15547
|
+
function buildTaskGraph(tasks) {
|
|
15548
|
+
const footprints = tasks.map(footprintOf);
|
|
15549
|
+
const deps = /* @__PURE__ */ new Map();
|
|
15550
|
+
for (const task of tasks) {
|
|
15551
|
+
deps.set(task.id, new Set(task.dependsOn || []));
|
|
15552
|
+
}
|
|
15553
|
+
for (let i = 0; i < tasks.length; i++) {
|
|
15554
|
+
for (let j = i + 1; j < tasks.length; j++) {
|
|
15555
|
+
if (shareFootprint(footprints[i], footprints[j])) {
|
|
15556
|
+
addDependency(deps, tasks[j], tasks[i]);
|
|
15557
|
+
}
|
|
15558
|
+
}
|
|
15559
|
+
}
|
|
15560
|
+
return tasks.map((task) => toGraphNode(task, deps));
|
|
15561
|
+
}
|
|
15562
|
+
function validatePlanTasks(tasks) {
|
|
15563
|
+
const errors = [];
|
|
15564
|
+
const warnings = [];
|
|
15565
|
+
const index = /* @__PURE__ */ new Map();
|
|
15566
|
+
tasks.forEach((t, i) => index.set(t.id, i));
|
|
15567
|
+
for (const t of tasks) {
|
|
15568
|
+
for (const dep of t.dependsOn || []) {
|
|
15569
|
+
if (!index.has(dep)) {
|
|
15570
|
+
errors.push(`Task "${t.id}" depends on unknown task id "${dep}".`);
|
|
15571
|
+
continue;
|
|
15572
|
+
}
|
|
15573
|
+
if (index.get(dep) > index.get(t.id)) {
|
|
15574
|
+
warnings.push(
|
|
15575
|
+
`Task "${t.id}" depends on "${dep}" which is declared later (consumer before producer).`
|
|
15576
|
+
);
|
|
15577
|
+
}
|
|
15578
|
+
}
|
|
15579
|
+
}
|
|
15580
|
+
const { cyclic } = findParallelGroups(buildTaskGraph(tasks));
|
|
15581
|
+
if (cyclic.length > 0) {
|
|
15582
|
+
errors.push(`Dependency cycle detected among tasks: ${cyclic.join(", ")}.`);
|
|
15583
|
+
}
|
|
15584
|
+
return { errors, warnings };
|
|
15585
|
+
}
|
|
15586
|
+
function waveSeverity(taskIds, conflicts) {
|
|
15587
|
+
const set = new Set(taskIds);
|
|
15588
|
+
let max = "none";
|
|
15589
|
+
for (const c of conflicts.conflicts) {
|
|
15590
|
+
if (!set.has(c.taskA) || !set.has(c.taskB)) continue;
|
|
15591
|
+
if (SEVERITY_RANK2[c.severity] > SEVERITY_RANK2[max]) max = c.severity;
|
|
15592
|
+
}
|
|
15593
|
+
return max;
|
|
15594
|
+
}
|
|
15595
|
+
function classifyFiring(severity, waveSize, minWaveSize, analysisLevel) {
|
|
15596
|
+
if (severity === "high") {
|
|
15597
|
+
return {
|
|
15598
|
+
firing: "serialize",
|
|
15599
|
+
reason: "high-severity conflicts predicted \u2014 running these tasks sequentially"
|
|
15600
|
+
};
|
|
15601
|
+
}
|
|
15602
|
+
if (waveSize < minWaveSize) {
|
|
15603
|
+
return {
|
|
15604
|
+
firing: "serialize",
|
|
15605
|
+
reason: `only ${waveSize} independent task(s), below minimum wave size ${minWaveSize} \u2014 running serially`
|
|
15606
|
+
};
|
|
15607
|
+
}
|
|
15608
|
+
if (severity === "medium") {
|
|
15609
|
+
return {
|
|
15610
|
+
firing: "confirm",
|
|
15611
|
+
reason: "medium-severity conflicts predicted \u2014 one confirmation before dispatch"
|
|
15612
|
+
};
|
|
15613
|
+
}
|
|
15614
|
+
if (analysisLevel === "file-only") {
|
|
15615
|
+
return {
|
|
15616
|
+
firing: "confirm",
|
|
15617
|
+
reason: "graph unavailable (file-only analysis) \u2014 transitive conflicts unknown, one confirmation before dispatch"
|
|
15618
|
+
};
|
|
15619
|
+
}
|
|
15620
|
+
return {
|
|
15621
|
+
firing: "auto-dispatch",
|
|
15622
|
+
reason: `${waveSize} independent tasks, ${severity === "none" ? "no" : severity} conflict severity, graph-expanded analysis \u2014 dispatching in parallel`
|
|
15623
|
+
};
|
|
15624
|
+
}
|
|
15625
|
+
function narrate(waves, reasons, serialized, cyclic, nodes) {
|
|
15626
|
+
const depMap = /* @__PURE__ */ new Map();
|
|
15627
|
+
for (const node of nodes) depMap.set(node.id, node.dependsOn);
|
|
15628
|
+
const cyclicSet = new Set(cyclic);
|
|
15629
|
+
const serializedSet = new Set(serialized);
|
|
15630
|
+
const labelDep = (id) => {
|
|
15631
|
+
if (cyclicSet.has(id)) return `${id} (cyclic)`;
|
|
15632
|
+
if (serializedSet.has(id)) return `${id} (serialized)`;
|
|
15633
|
+
return id;
|
|
15634
|
+
};
|
|
15635
|
+
const lines = [
|
|
15636
|
+
`Parallelization: ${waves.length} wave(s), ${serialized.length} serialized, ${cyclic.length} cyclic.`
|
|
15637
|
+
];
|
|
15638
|
+
waves.forEach((w, i) => {
|
|
15639
|
+
const waveSet = new Set(w.tasks);
|
|
15640
|
+
const blocking = [...new Set(w.tasks.flatMap((t) => depMap.get(t) ?? []))].filter((id) => !waveSet.has(id)).sort();
|
|
15641
|
+
const crossBucket = blocking.some((id) => serializedSet.has(id));
|
|
15642
|
+
const waitClause = blocking.length ? `waits on ${blocking.map(labelDep).join(", ")}${crossBucket ? " (cross-bucket prerequisite gates this wave)" : ""}` : "no upstream dependencies (root wave)";
|
|
15643
|
+
lines.push(
|
|
15644
|
+
`Wave ${i + 1} [${w.tasks.join(", ")}]: ${waitClause}; ${w.firing}: ${reasons[i] ?? ""}.`
|
|
15645
|
+
);
|
|
15646
|
+
});
|
|
15647
|
+
if (serialized.length > 0) {
|
|
15648
|
+
lines.push(
|
|
15649
|
+
`Serialized (run sequentially): [${serialized.join(
|
|
15650
|
+
", "
|
|
15651
|
+
)}] \u2014 high-severity conflict members or dependency-cycle members.`
|
|
15652
|
+
);
|
|
15653
|
+
}
|
|
15654
|
+
if (cyclic.length > 0) {
|
|
15655
|
+
lines.push(
|
|
15656
|
+
`Cyclic (blocked): [${cyclic.join(", ")}] \u2014 dependency cycle; resolve before scheduling.`
|
|
15657
|
+
);
|
|
15658
|
+
}
|
|
15659
|
+
return lines.join("\n");
|
|
15660
|
+
}
|
|
15661
|
+
function highRiskGroupMembers(conflicts) {
|
|
15662
|
+
const members = [];
|
|
15663
|
+
for (const group of conflicts.groups) {
|
|
15664
|
+
if (group.length > 1) members.push(...group);
|
|
15665
|
+
}
|
|
15666
|
+
return members;
|
|
15667
|
+
}
|
|
15668
|
+
function planParallelization(input) {
|
|
15669
|
+
const { tasks, conflicts } = input;
|
|
15670
|
+
const minWaveSize = input.minWaveSize ?? DEFAULT_MIN_WAVE_SIZE;
|
|
15671
|
+
const nodes = buildTaskGraph(tasks);
|
|
15672
|
+
const { waves: rawWaves, cyclic } = findParallelGroups(nodes);
|
|
15673
|
+
const serializedSet = new Set(cyclic);
|
|
15674
|
+
for (const id of highRiskGroupMembers(conflicts)) serializedSet.add(id);
|
|
15675
|
+
const serialized = [...serializedSet].sort();
|
|
15676
|
+
const depMap = /* @__PURE__ */ new Map();
|
|
15677
|
+
for (const node of nodes) depMap.set(node.id, node.dependsOn);
|
|
15678
|
+
const reasons = [];
|
|
15679
|
+
const waves = rawWaves.map((taskIds) => taskIds.filter((id) => !serializedSet.has(id))).filter((taskIds) => taskIds.length > 0).map((taskIds) => {
|
|
15680
|
+
const severity = waveSeverity(taskIds, conflicts);
|
|
15681
|
+
let { firing, reason } = classifyFiring(
|
|
15682
|
+
severity,
|
|
15683
|
+
taskIds.length,
|
|
15684
|
+
minWaveSize,
|
|
15685
|
+
conflicts.analysisLevel
|
|
15686
|
+
);
|
|
15687
|
+
const waveSet = new Set(taskIds);
|
|
15688
|
+
const crossBucketUpstream = [...new Set(taskIds.flatMap((t) => depMap.get(t) ?? []))].filter((id) => !waveSet.has(id) && serializedSet.has(id)).sort();
|
|
15689
|
+
if (crossBucketUpstream.length > 0 && firing === "auto-dispatch") {
|
|
15690
|
+
firing = "confirm";
|
|
15691
|
+
reason = `depends on ${crossBucketUpstream.join(
|
|
15692
|
+
", "
|
|
15693
|
+
)} running in the serialized/cyclic channel \u2014 cross-bucket prerequisite not parallel-safe, one confirmation before dispatch`;
|
|
15694
|
+
}
|
|
15695
|
+
reasons.push(reason);
|
|
15696
|
+
return { tasks: taskIds, severity, firing, analysisLevel: conflicts.analysisLevel };
|
|
15697
|
+
});
|
|
15698
|
+
return {
|
|
15699
|
+
waves,
|
|
15700
|
+
serialized,
|
|
15701
|
+
cyclic,
|
|
15702
|
+
narration: narrate(waves, reasons, serialized, cyclic, nodes)
|
|
15703
|
+
};
|
|
15704
|
+
}
|
|
15367
15705
|
function proposalsDir(projectPath) {
|
|
15368
15706
|
return path51.join(projectPath, ".harness", "proposals");
|
|
15369
15707
|
}
|
|
@@ -16063,7 +16401,7 @@ function writeStrategyDoc(doc, opts) {
|
|
|
16063
16401
|
throw e;
|
|
16064
16402
|
}
|
|
16065
16403
|
}
|
|
16066
|
-
var WHATWG_BAD_PORTS, BAD_PORT_SET, VALID_TYPES, CONVENTIONAL_PATTERN, LOOKBACK_PATTERN, PulseDbSourceSchema, PulseSourcesSchema, PulseConfigSchema, KNOWN_SECTION_NAMES, ISO_DATE, PLACEHOLDER_INLINE, REQUIRED, ALLOWED, StrategyFrontmatterSchema, StrategySectionSchema, StrategyDocSchema, BUG_TRACK_CATEGORIES, KNOWLEDGE_TRACK_CATEGORIES, ALL_SOLUTION_CATEGORIES, ISO_DATE2, BugTrackSchema, KnowledgeTrackSchema, BaseFrontmatter, SolutionDocFrontmatterSchema, TRACK_CATEGORIES, DEFAULT_AGNIX_TIMEOUT_MS, HARNESS_AGNIX_DISABLE, HARNESS_AGNIX_BIN, CLAUDE_MD_WARN_BYTES, CLAUDE_MD_ERROR_BYTES, CONTEXT_FILES, MIN_DESCRIPTION_LENGTH, SETTINGS_PATHS, KNOWN_HOOK_EVENTS, MCP_SETTINGS_FILES, REQUIRED_SECTIONS, SETTINGS_FILES, KNOWN_AGNIX_TOOLS, ROADMAP_READ_ALLOWLIST, ROADMAP_MD, DYNAMIC_ROADMAP_IO, KEBAB_CASE, TICKET_ID, DEFAULT_SECTIONS, DEFAULT_RATIOS, NODE_TYPE_TO_CATEGORY, SECTION_LEVEL_MAP, DEFAULT_LEVEL, DEFAULT_BUDGET, DEFAULT_LOADER_CONFIG, LEVEL_FRACTIONS, PHASE_PRIORITIES, ManifestSchema, BundleConstraintsSchema, BundleSchema, ContributionsSchema, LockfilePackageSchema, LockfileSchema, SharableLayerSchema, SharableForbiddenImportSchema, SharableBoundaryConfigSchema, SharableSecurityRulesSchema, VALID_SCOPES, LINE_PATTERN, START_PATTERN, END_PATTERN, readFile72, writeFile32, unlink22, mkdir22, copyFile2, DEFAULT_FIX_CONFIG, EXPORT_TYPE_KEYWORD, ALWAYS_UNSAFE_TYPES, idCounter, DEAD_CODE_FIX_ACTIONS, MustExportRuleSchema, MustExportDefaultRuleSchema, NoExportRuleSchema, MustImportRuleSchema, NoImportRuleSchema, NamingRuleSchema, MaxExportsRuleSchema, MaxLinesRuleSchema, RequireJSDocRuleSchema, RuleSchema, ConfigPatternSchema, PatternConfigSchema, DriftConfigSchema, DeadCodeConfigSchema, EntropyConfigSchema, BaselineManager, BenchmarkRunner, RegressionDetector, SOURCE_EXTENSIONS, FUNCTION_DECL_RE, CONST_DECL_RE, CriticalPathResolver, NoOpTelemetryAdapter, NoOpExecutor, ConsoleSink, feedbackConfig, ChecklistBuilder, AgentActionEmitter, globalEmitter, FileSink, NoOpSink, ConfidenceTierSchema, RegressionResultSchema, DirectionSchema, CategoryForecastSchema, SpecImpactSignalsSchema, SpecImpactEstimateSchema, ContributingFeatureSchema, AdjustedForecastSchema, PredictionWarningSchema, StabilityForecastSchema, PredictionResultSchema, PredictionOptionsSchema, VALID_STATUSES, EM_DASH, VALID_PRIORITIES, EM_DASH2, H3_NAME, FRONTMATTER, STATUS_RANK, META_FILE, ShardStore, MonolithStore, ALL_CATEGORIES, DIRECTION_THRESHOLD, PredictionEngine, DEFAULT_COEFFICIENTS, SpecImpactEstimator, EMPTY_HISTORY, ViolationHistoryManager, NORMALIZERS, MAX_SAMPLES, DEFAULT_WINDOW_WEEKS, DEFAULT_MIN_OCCURRENCES, FailureEntrySchema, HandoffSchema, GateCheckSchema, GateResultSchema, GateConfigSchema, HarnessStateSchema, DEFAULT_STATE, HARNESS_DIR, STATE_FILE, LEARNINGS_FILE, FAILURES_FILE, HANDOFF_FILE, GATE_CONFIG_FILE, INDEX_FILE, SESSIONS_DIR, SESSION_INDEX_FILE, SUMMARY_FILE, SESSION_STATE_FILE, ARCHIVE_DIR, CONTENT_HASHES_FILE, StreamInfoSchema, StreamIndexSchema, DEFAULT_STREAM_INDEX, EVENT_LOG_FILE, EVENT_BLOBS_DIR, MAX_LINE_BYTES, BLOB_REF_KEY, SNAPSHOT_FILE, STREAMS_DIR, STREAM_NAME_REGEX, branchCache, BRANCH_CACHE_TTL_MS, STATE_FILES, STATE_DIRS, MAX_CACHE_ENTRIES, learningsCacheMap, WEIGHTS, LOCK_RETRIES, LOCK_BACKOFFS, PROMOTABLE_OUTCOMES, failuresCacheMap, FAILURE_LINE_REGEX, SAFE_GATE_COMMAND, event_sourcing_exports, ScopeSchema, envelopeShape, StateImportedPayload, DecisionRecordedPayload, PositionSetPayload, BlockerOpenedPayload, BlockerResolvedPayload, ProgressSetPayload, SessionSummarizedPayload, LANES, LaneSchema, TaskRegisteredPayload, LaneTransitionedPayload, UserInputCapturedPayload, ApprovalRequestedPayload, ApprovalResolvedPayload, EventSchema, BlobRefSchema, StoredEventSchema, cached, localCounters, CORE_HANDLERS, KIND_LABEL, MATERIALIZE_DEBOUNCE_MS, pendingTimers, inflightMaterializes, ensured, TERMINAL_LANES, NON_TERMINAL, TABLE, RuleRegistry, DEFAULT_SECURITY_CONFIG, RuleOverrideSchema, SecurityConfigSchema, secretRules, injectionRules, xssRules, cryptoRules, pathTraversalRules, networkRules, deserializationRules, agentConfigRules, mcpRules, insecureDefaultsRules, sharpEdgesRules, nodeRules, expressRules, reactRules, goRules, SecurityScanner, OSV_ENDPOINT, DEFAULT_CACHE_DIR, DEFAULT_TTL_HOURS, hiddenUnicodePatterns, reRolingPatterns, permissionEscalationPatterns, encodedPayloadPatterns, indirectInjectionPatterns, contextManipulationPatterns, socialEngineeringPatterns, suspiciousPatterns, ALL_PATTERNS, DESTRUCTIVE_BASH, TAINT_DURATION_MS, DEFAULT_SESSION_ID, SecurityCategorySnapshotSchema, SupplyChainSnapshotSchema, SecurityTimelineSnapshotSchema, FindingLifecycleSchema, SecurityTimelineFileSchema, DirectionSchema2, SecurityTrendLineSchema, TrendAttributionSchema, SecurityTrendResultSchema, TimeToFixStatsSchema, TimeToFixResultSchema, EMPTY_SUPPLY_CHAIN, SecurityTimelineManager, ALL_CHECKS, STATUS_ICONS, CINotifier, ExclusionSet, PREFIX_PATTERNS, TEST_FILE_PATTERN, MD_FILE_PATTERN, ALL_DOMAINS, SECURITY_PATTERNS, JS_EXT_FALLBACKS, SEVERITY_RANK, SEVERITY_ORDER, SEVERITY_LABELS, VALIDATED_BY_RANK, VALIDATION_SCORES, DOMAIN_BASELINES, FACTOR_WEIGHTS, EVIDENCE_SATURATION, CORROBORATED_AGREEMENT, STANDALONE_AGREEMENT, AGREEMENT_LINE_GAP, COMPLIANCE_DESCRIPTOR, EXPORT_RE, BUG_DETECTION_DESCRIPTOR, SECURITY_DESCRIPTOR, EVAL_PATTERN, SECRET_PATTERNS, SQL_CONCAT_PATTERN, SHELL_EXEC_PATTERN, ARCHITECTURE_DESCRIPTOR, LARGE_FILE_THRESHOLD, VIOLATION_FILE_RE, LEARNINGS_DESCRIPTOR, RELEVANCE_THRESHOLD, ADVERSARIAL_DESCRIPTOR, UNVERIFIED_INPUT_PATTERN, PROMISE_NO_REJECT_PATTERN, UNGUARDED_OPTIONAL_CALL, COMPOSE_NO_AWAIT, FETCH_NO_TIMEOUT, TYPESCRIPT_STRICT_DESCRIPTOR, EXPLICIT_ANY_PATTERN, TS_IGNORE_PATTERN, UNSAFE_AS_UNKNOWN, NON_NULL_ASSERTION, VAGUE_HELPER_NAME, FRONTEND_RACES_DESCRIPTOR, AGENT_DESCRIPTORS, CONDITIONAL_SUBAGENT_DESCRIPTORS, AGENT_RUNNERS, SUBAGENT_ORDER, RISK_KEYWORDS, EXCLUDED_PATH_PATTERNS, ASYNC_UI_SIGNALS, WORD_BOUNDARY, DOWNGRADE_MAP, DEFAULT_PROVIDER_TIERS, SMALL_SUGGESTION_LINE_LIMIT, FILE_LINE_RANGE_PATTERN, FILE_LINE_PATTERN, FILE_ONLY_PATTERN, SECURITY_SENSITIVE_PATH, MIGRATION_PATH, TEST_PATH, CONFIG_PATH, STAGE_DOMAINS, CI_REVIEW_VERDICT_SCHEMA_VERSION, CI_RUNNERS, CI_ASSESSMENTS, CI_REVIEW_DOMAINS, ReviewFindingSchema, CiReviewVerdictSchema, VERDICT_MAP, RUNNER_PRESETS, VERDICT_MAP2, DEFAULT_EXEC_TIMEOUT_MS, DEFAULT_EXEC_MAX_STDOUT_BYTES, STDERR_CAP_BYTES, STDERR_TAIL_BYTES, defaultExecFile, EMPTY_TIER, EM_DASH3, DEFAULT_MILESTONE, MAX_CLOSEST_MATCHES, MACHINE_ASSIGNEE_PATTERNS, EXTERNAL_ID_RE, RETRY_DEFAULTS, GitHubIssuesSyncAdapter, syncMutex, PRIORITY_RANK, PRIORITY_RANK2, POSITION_WEIGHT, DEPENDENTS_WEIGHT, AFFINITY_WEIGHT, ConflictError, DEFAULTS, GitHubHttp, ETagStore, START_MARKER, END_MARKER, SERIALIZER_FIELDS, GitHubIssuesTrackerAdapter, LINEAR_ENDPOINT, EXTERNAL_PREFIX, HISTORY_MARKER, ISSUE_FIELDS, LinearTrackerAdapter, migrate_exports, HASH_RE, DEFAULT_CATCH_ALL, DEFAULT_INTAKE, DEFAULT_MAX_ACTIVE, InteractionTypeSchema, QuestionSchema, ConfirmationSchema, TransitionSchema, EmitInteractionInputSchema, ProjectScanner, SHELL_TEMPLATE, STYLES, SCRIPTS, MockLLMService, llmService, ContentPipeline, BlueprintGenerator, TOKENS_PER_MILLION, fallback_default, LITELLM_PRICING_URL, CACHE_TTL_MS, STALENESS_WARNING_DAYS, MICRODOLLARS_PER_DOLLAR, TOKENS_PER_MILLION2, StructuralStrategy, DEFAULT_TOKEN_BUDGET, CHARS_PER_TOKEN, TRUNCATION_MARKER, TruncationStrategy, CompactionPipeline, STABILITY_LOOKUP, TIER_ORDER, AnthropicCacheAdapter, TIER_ORDER2, OpenAICacheAdapter, TIER_ORDER3, CACHED_CONTENT_MARKER, GeminiCacheAdapter, VERSION, POSTHOG_BATCH_URL, MAX_ATTEMPTS, TIMEOUT_MS, DEFAULT_CAPACITY, CacheMetricsRecorder, RETRY_BACKOFFS_MS, DEFAULT_FLUSH_INTERVAL_MS, DEFAULT_BATCH_SIZE, defaultFetch, defaultWarn, OTLPExporter, SERVICE_NAME_ATTR, SpanKind, ModeSchema, SeveritySchema, TierSchema, StrengthFindingSchema, HarnessConfigSubsetSchema, HookFileSchema, ProjectContextSchema, AuditSummarySchema, AuditResultSchema, SEVERITY_WEIGHTS, clamp, HOOK_SCRIPT_TOKEN, NEVER_BLOCKS, ALWAYS_EXIT_ZERO, EXIT_ZERO_LINE, NONZERO_EXIT, GATE, ERREXIT, strength001NonblockingHooks, BASELINE_REWRITE, strength002Autobaseline, SKIP_RE, strength003SkipList, strength004EmptyThresholds, INIT_SKILL_PATH, DEFAULT_BASIC, strength005LowestTier, AUTO_PATTERN, COMMENT_LINE, NAME_VALUE_LINE, PAT_GATING, REVIEW_SIGNAL, strength006AutoapproveBaseline, CHECK_KEYS, SIGNAL_REGISTRY, HEALTH_SIGNAL_NAMES, CHECK_SIGNAL_MAP, SIGNAL_CATEGORY_MAP, strength007SnapshotSignalMismatch, ALL_RULES, HarnessStrengthAuditor, MAX_TOP_AFFECTED, CompoundLockHeldError, KNOWN_CATEGORIES, ProposalNotFoundError, ProposalConflictError, ALLOWED_FIELD_KEYS, PII_TOKENS, PII_FIELD_DENYLIST, PII_LINE_RE, ALLOWED_SET, PulseAdapterAlreadyRegisteredError, REGISTRY, MOCK_ADAPTER_NAME, ALLOWED_FIELD_SET, adapter, LOOKBACK_RE, MAX_LINES, INLINE_TEMPLATE, TRUNCATION_MARKER2, execFileAsync, FIX_RE, EMPTY_REPO_RE, execFileAsync2, TRACK_CATEGORIES2, STOPWORDS, KEYWORD_TO_CATEGORY, SECTION_ORDER, FILENAME;
|
|
16404
|
+
var WHATWG_BAD_PORTS, BAD_PORT_SET, VALID_TYPES, CONVENTIONAL_PATTERN, LOOKBACK_PATTERN, PulseDbSourceSchema, PulseSourcesSchema, PulseConfigSchema, KNOWN_SECTION_NAMES, ISO_DATE, PLACEHOLDER_INLINE, REQUIRED, ALLOWED, StrategyFrontmatterSchema, StrategySectionSchema, StrategyDocSchema, BUG_TRACK_CATEGORIES, KNOWLEDGE_TRACK_CATEGORIES, ALL_SOLUTION_CATEGORIES, ISO_DATE2, BugTrackSchema, KnowledgeTrackSchema, BaseFrontmatter, SolutionDocFrontmatterSchema, TRACK_CATEGORIES, DEFAULT_AGNIX_TIMEOUT_MS, HARNESS_AGNIX_DISABLE, HARNESS_AGNIX_BIN, CLAUDE_MD_WARN_BYTES, CLAUDE_MD_ERROR_BYTES, CONTEXT_FILES, MIN_DESCRIPTION_LENGTH, SETTINGS_PATHS, KNOWN_HOOK_EVENTS, MCP_SETTINGS_FILES, REQUIRED_SECTIONS, SETTINGS_FILES, KNOWN_AGNIX_TOOLS, ROADMAP_READ_ALLOWLIST, ROADMAP_MD, DYNAMIC_ROADMAP_IO, KEBAB_CASE, TICKET_ID, DEFAULT_SECTIONS, DEFAULT_RATIOS, NODE_TYPE_TO_CATEGORY, SECTION_LEVEL_MAP, DEFAULT_LEVEL, DEFAULT_BUDGET, DEFAULT_LOADER_CONFIG, LEVEL_FRACTIONS, PHASE_PRIORITIES, ManifestSchema, BundleConstraintsSchema, BundleSchema, ContributionsSchema, LockfilePackageSchema, LockfileSchema, SharableLayerSchema, SharableForbiddenImportSchema, SharableBoundaryConfigSchema, SharableSecurityRulesSchema, VALID_SCOPES, LINE_PATTERN, START_PATTERN, END_PATTERN, readFile72, writeFile32, unlink22, mkdir22, copyFile2, DEFAULT_FIX_CONFIG, EXPORT_TYPE_KEYWORD, ALWAYS_UNSAFE_TYPES, idCounter, DEAD_CODE_FIX_ACTIONS, MustExportRuleSchema, MustExportDefaultRuleSchema, NoExportRuleSchema, MustImportRuleSchema, NoImportRuleSchema, NamingRuleSchema, MaxExportsRuleSchema, MaxLinesRuleSchema, RequireJSDocRuleSchema, RuleSchema, ConfigPatternSchema, PatternConfigSchema, DriftConfigSchema, DeadCodeConfigSchema, EntropyConfigSchema, BaselineManager, BenchmarkRunner, RegressionDetector, SOURCE_EXTENSIONS, FUNCTION_DECL_RE, CONST_DECL_RE, CriticalPathResolver, NoOpTelemetryAdapter, NoOpExecutor, ConsoleSink, feedbackConfig, ChecklistBuilder, AgentActionEmitter, globalEmitter, FileSink, NoOpSink, ConfidenceTierSchema, RegressionResultSchema, DirectionSchema, CategoryForecastSchema, SpecImpactSignalsSchema, SpecImpactEstimateSchema, ContributingFeatureSchema, AdjustedForecastSchema, PredictionWarningSchema, StabilityForecastSchema, PredictionResultSchema, PredictionOptionsSchema, VALID_STATUSES, EM_DASH, VALID_PRIORITIES, EM_DASH2, H3_NAME, FRONTMATTER, STATUS_RANK, META_FILE, ShardStore, MonolithStore, ALL_CATEGORIES, DIRECTION_THRESHOLD, PredictionEngine, DEFAULT_COEFFICIENTS, SpecImpactEstimator, EMPTY_HISTORY, ViolationHistoryManager, NORMALIZERS, MAX_SAMPLES, DEFAULT_WINDOW_WEEKS, DEFAULT_MIN_OCCURRENCES, FailureEntrySchema, HandoffSchema, GateCheckSchema, GateResultSchema, GateConfigSchema, HarnessStateSchema, DEFAULT_STATE, HARNESS_DIR, STATE_FILE, LEARNINGS_FILE, FAILURES_FILE, HANDOFF_FILE, GATE_CONFIG_FILE, INDEX_FILE, SESSIONS_DIR, SESSION_INDEX_FILE, SUMMARY_FILE, SESSION_STATE_FILE, ARCHIVE_DIR, CONTENT_HASHES_FILE, StreamInfoSchema, StreamIndexSchema, DEFAULT_STREAM_INDEX, EVENT_LOG_FILE, EVENT_BLOBS_DIR, MAX_LINE_BYTES, BLOB_REF_KEY, SNAPSHOT_FILE, STREAMS_DIR, STREAM_NAME_REGEX, branchCache, BRANCH_CACHE_TTL_MS, STATE_FILES, STATE_DIRS, MAX_CACHE_ENTRIES, learningsCacheMap, WEIGHTS, LOCK_RETRIES, LOCK_BACKOFFS, PROMOTABLE_OUTCOMES, failuresCacheMap, FAILURE_LINE_REGEX, SAFE_GATE_COMMAND, event_sourcing_exports, ScopeSchema, envelopeShape, StateImportedPayload, DecisionRecordedPayload, PositionSetPayload, BlockerOpenedPayload, BlockerResolvedPayload, ProgressSetPayload, SessionSummarizedPayload, LANES, LaneSchema, TaskRegisteredPayload, LaneTransitionedPayload, UserInputCapturedPayload, ApprovalRequestedPayload, ApprovalResolvedPayload, EventSchema, BlobRefSchema, StoredEventSchema, cached, localCounters, CORE_HANDLERS, KIND_LABEL, MATERIALIZE_DEBOUNCE_MS, pendingTimers, inflightMaterializes, ensured, TERMINAL_LANES, NON_TERMINAL, TABLE, RuleRegistry, DEFAULT_SECURITY_CONFIG, RuleOverrideSchema, SecurityConfigSchema, secretRules, injectionRules, xssRules, cryptoRules, pathTraversalRules, networkRules, deserializationRules, agentConfigRules, mcpRules, insecureDefaultsRules, sharpEdgesRules, nodeRules, expressRules, reactRules, goRules, SecurityScanner, OSV_ENDPOINT, DEFAULT_CACHE_DIR, DEFAULT_TTL_HOURS, hiddenUnicodePatterns, reRolingPatterns, permissionEscalationPatterns, encodedPayloadPatterns, indirectInjectionPatterns, contextManipulationPatterns, socialEngineeringPatterns, suspiciousPatterns, ALL_PATTERNS, DESTRUCTIVE_BASH, TAINT_DURATION_MS, DEFAULT_SESSION_ID, SecurityCategorySnapshotSchema, SupplyChainSnapshotSchema, SecurityTimelineSnapshotSchema, FindingLifecycleSchema, SecurityTimelineFileSchema, DirectionSchema2, SecurityTrendLineSchema, TrendAttributionSchema, SecurityTrendResultSchema, TimeToFixStatsSchema, TimeToFixResultSchema, EMPTY_SUPPLY_CHAIN, SecurityTimelineManager, ALL_CHECKS, STATUS_ICONS, CINotifier, ExclusionSet, PREFIX_PATTERNS, TEST_FILE_PATTERN, MD_FILE_PATTERN, ALL_DOMAINS, SECURITY_PATTERNS, JS_EXT_FALLBACKS, SEVERITY_RANK, SEVERITY_ORDER, SEVERITY_LABELS, VALIDATED_BY_RANK, VALIDATION_SCORES, DOMAIN_BASELINES, FACTOR_WEIGHTS, EVIDENCE_SATURATION, CORROBORATED_AGREEMENT, STANDALONE_AGREEMENT, AGREEMENT_LINE_GAP, COMPLIANCE_DESCRIPTOR, EXPORT_RE, BUG_DETECTION_DESCRIPTOR, SECURITY_DESCRIPTOR, EVAL_PATTERN, SECRET_PATTERNS, SQL_CONCAT_PATTERN, SHELL_EXEC_PATTERN, ARCHITECTURE_DESCRIPTOR, LARGE_FILE_THRESHOLD, VIOLATION_FILE_RE, LEARNINGS_DESCRIPTOR, RELEVANCE_THRESHOLD, ADVERSARIAL_DESCRIPTOR, UNVERIFIED_INPUT_PATTERN, PROMISE_NO_REJECT_PATTERN, UNGUARDED_OPTIONAL_CALL, COMPOSE_NO_AWAIT, FETCH_NO_TIMEOUT, TYPESCRIPT_STRICT_DESCRIPTOR, EXPLICIT_ANY_PATTERN, TS_IGNORE_PATTERN, UNSAFE_AS_UNKNOWN, NON_NULL_ASSERTION, VAGUE_HELPER_NAME, FRONTEND_RACES_DESCRIPTOR, AGENT_DESCRIPTORS, CONDITIONAL_SUBAGENT_DESCRIPTORS, AGENT_RUNNERS, SUBAGENT_ORDER, RISK_KEYWORDS, EXCLUDED_PATH_PATTERNS, ASYNC_UI_SIGNALS, WORD_BOUNDARY, DOWNGRADE_MAP, DEFAULT_PROVIDER_TIERS, SMALL_SUGGESTION_LINE_LIMIT, FILE_LINE_RANGE_PATTERN, FILE_LINE_PATTERN, FILE_ONLY_PATTERN, SECURITY_SENSITIVE_PATH, MIGRATION_PATH, TEST_PATH, CONFIG_PATH, STAGE_DOMAINS, CI_REVIEW_VERDICT_SCHEMA_VERSION, CI_RUNNERS, CI_ASSESSMENTS, CI_REVIEW_DOMAINS, ReviewFindingSchema, CiReviewVerdictSchema, VERDICT_MAP, RUNNER_PRESETS, VERDICT_MAP2, DEFAULT_EXEC_TIMEOUT_MS, DEFAULT_EXEC_MAX_STDOUT_BYTES, STDERR_CAP_BYTES, STDERR_TAIL_BYTES, defaultExecFile, EMPTY_TIER, EM_DASH3, DEFAULT_MILESTONE, MAX_CLOSEST_MATCHES, MACHINE_ASSIGNEE_PATTERNS, EXTERNAL_ID_RE, RETRY_DEFAULTS, GitHubIssuesSyncAdapter, syncMutex, PRIORITY_RANK, PRIORITY_RANK2, POSITION_WEIGHT, DEPENDENTS_WEIGHT, AFFINITY_WEIGHT, ConflictError, DEFAULTS, GitHubHttp, ETagStore, START_MARKER, END_MARKER, SERIALIZER_FIELDS, GitHubIssuesTrackerAdapter, LINEAR_ENDPOINT, EXTERNAL_PREFIX, HISTORY_MARKER, ISSUE_FIELDS, LinearTrackerAdapter, migrate_exports, HASH_RE, DEFAULT_CATCH_ALL, DEFAULT_INTAKE, DEFAULT_MAX_ACTIVE, InteractionTypeSchema, QuestionSchema, ConfirmationSchema, TransitionSchema, EmitInteractionInputSchema, ProjectScanner, SHELL_TEMPLATE, STYLES, SCRIPTS, MockLLMService, llmService, ContentPipeline, BlueprintGenerator, TOKENS_PER_MILLION, fallback_default, LITELLM_PRICING_URL, CACHE_TTL_MS, STALENESS_WARNING_DAYS, MICRODOLLARS_PER_DOLLAR, TOKENS_PER_MILLION2, DAY_MS, StructuralStrategy, DEFAULT_TOKEN_BUDGET, CHARS_PER_TOKEN, TRUNCATION_MARKER, TruncationStrategy, CompactionPipeline, STABILITY_LOOKUP, TIER_ORDER, AnthropicCacheAdapter, TIER_ORDER2, OpenAICacheAdapter, TIER_ORDER3, CACHED_CONTENT_MARKER, GeminiCacheAdapter, VERSION, POSTHOG_BATCH_URL, MAX_ATTEMPTS, TIMEOUT_MS, DEFAULT_CAPACITY, CacheMetricsRecorder, RETRY_BACKOFFS_MS, DEFAULT_FLUSH_INTERVAL_MS, DEFAULT_BATCH_SIZE, defaultFetch, defaultWarn, OTLPExporter, SERVICE_NAME_ATTR, SpanKind, ModeSchema, SeveritySchema, TierSchema, StrengthFindingSchema, HarnessConfigSubsetSchema, HookFileSchema, ProjectContextSchema, AuditSummarySchema, AuditResultSchema, SEVERITY_WEIGHTS, clamp, HOOK_SCRIPT_TOKEN, NEVER_BLOCKS, ALWAYS_EXIT_ZERO, EXIT_ZERO_LINE, NONZERO_EXIT, GATE, ERREXIT, strength001NonblockingHooks, BASELINE_REWRITE, strength002Autobaseline, SKIP_RE, strength003SkipList, strength004EmptyThresholds, INIT_SKILL_PATH, DEFAULT_BASIC, strength005LowestTier, AUTO_PATTERN, COMMENT_LINE, NAME_VALUE_LINE, PAT_GATING, REVIEW_SIGNAL, strength006AutoapproveBaseline, CHECK_KEYS, SIGNAL_REGISTRY, HEALTH_SIGNAL_NAMES, CHECK_SIGNAL_MAP, SIGNAL_CATEGORY_MAP, strength007SnapshotSignalMismatch, ALL_RULES, HarnessStrengthAuditor, MAX_TOP_AFFECTED, CompoundLockHeldError, KNOWN_CATEGORIES, SEVERITY_RANK2, DEFAULT_MIN_WAVE_SIZE, ProposalNotFoundError, ProposalConflictError, ALLOWED_FIELD_KEYS, PII_TOKENS, PII_FIELD_DENYLIST, PII_LINE_RE, ALLOWED_SET, PulseAdapterAlreadyRegisteredError, REGISTRY, MOCK_ADAPTER_NAME, ALLOWED_FIELD_SET, adapter, LOOKBACK_RE, MAX_LINES, INLINE_TEMPLATE, TRUNCATION_MARKER2, execFileAsync, FIX_RE, EMPTY_REPO_RE, execFileAsync2, TRACK_CATEGORIES2, STOPWORDS, KEYWORD_TO_CATEGORY, SECTION_ORDER, FILENAME;
|
|
16067
16405
|
var init_dist3 = __esm({
|
|
16068
16406
|
"../core/dist/index.mjs"() {
|
|
16069
16407
|
init_chunk_OFA2AAZK();
|
|
@@ -22338,6 +22676,7 @@ console.log('Blueprint player initialized.');
|
|
|
22338
22676
|
STALENESS_WARNING_DAYS = 7;
|
|
22339
22677
|
MICRODOLLARS_PER_DOLLAR = 1e6;
|
|
22340
22678
|
TOKENS_PER_MILLION2 = 1e6;
|
|
22679
|
+
DAY_MS = 24 * 60 * 60 * 1e3;
|
|
22341
22680
|
StructuralStrategy = class {
|
|
22342
22681
|
name = "structural";
|
|
22343
22682
|
lossy = false;
|
|
@@ -23052,6 +23391,8 @@ console.log('Blueprint player initialized.');
|
|
|
23052
23391
|
lockPath;
|
|
23053
23392
|
};
|
|
23054
23393
|
KNOWN_CATEGORIES = new Set(ALL_SOLUTION_CATEGORIES);
|
|
23394
|
+
SEVERITY_RANK2 = { none: 0, low: 1, medium: 2, high: 3 };
|
|
23395
|
+
DEFAULT_MIN_WAVE_SIZE = 3;
|
|
23055
23396
|
ProposalNotFoundError = class extends Error {
|
|
23056
23397
|
constructor(id) {
|
|
23057
23398
|
super(`proposal not found: ${id}`);
|
|
@@ -23634,6 +23975,9 @@ export {
|
|
|
23634
23975
|
aggregateBySkill,
|
|
23635
23976
|
aggregateByDay2,
|
|
23636
23977
|
topSkills,
|
|
23978
|
+
isAbandonedMidWorkflow,
|
|
23979
|
+
getCatalogRetrospectiveReport,
|
|
23980
|
+
renderRetrospectiveMarkdown,
|
|
23637
23981
|
StructuralStrategy,
|
|
23638
23982
|
DEFAULT_TOKEN_BUDGET,
|
|
23639
23983
|
TruncationStrategy,
|
|
@@ -23676,6 +24020,9 @@ export {
|
|
|
23676
24020
|
CompoundLockHeldError,
|
|
23677
24021
|
acquireCompoundLock,
|
|
23678
24022
|
loadNotificationsConfig,
|
|
24023
|
+
buildTaskGraph,
|
|
24024
|
+
validatePlanTasks,
|
|
24025
|
+
planParallelization,
|
|
23679
24026
|
proposalsDir,
|
|
23680
24027
|
ProposalNotFoundError,
|
|
23681
24028
|
ProposalConflictError,
|
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
} from "./chunk-3WGJMBKH.js";
|
|
8
8
|
import {
|
|
9
9
|
init_dist as init_dist2
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-33OU3LYX.js";
|
|
11
11
|
import {
|
|
12
12
|
Err,
|
|
13
13
|
Ok
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-UEXQMI6K.js";
|
|
15
15
|
import {
|
|
16
16
|
init_dist,
|
|
17
17
|
skipDirGlobs
|