@harness-engineering/cli 4.1.0 → 4.3.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-N4ULMUAK.js} +4 -4
- package/dist/{analyzer-XRCV63KC-HLTEIKAJ.js → analyzer-XRCV63KC-WGRHW2ZM.js} +2 -2
- package/dist/{architecture-RCHFDI7E.js → architecture-OIMIBDJC.js} +5 -5
- package/dist/{assess-project-YUDPNRS6.js → assess-project-ITSB6W4L.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-GN4X7HT6.js} +5 -5
- package/dist/{chunk-N4AI2WFH.js → chunk-574JCBYH.js} +2 -2
- package/dist/{chunk-RY2U77OY.js → chunk-5BUHPOCP.js} +7 -7
- package/dist/{chunk-IGWJRAJT.js → chunk-6NEJPS7W.js} +2 -2
- package/dist/{chunk-NCMJXBEO.js → chunk-73QZ43DF.js} +2 -2
- package/dist/{chunk-YJYUJSWK.js → chunk-7RH2NTLA.js} +1 -1
- package/dist/{chunk-XZNCONFG.js → chunk-CMU4DNLY.js} +1 -1
- package/dist/{chunk-UACYZCW4.js → chunk-CRHQYBDA.js} +396 -13
- package/dist/{chunk-4SKWGVYD.js → chunk-D7A5JR7M.js} +2 -2
- package/dist/{chunk-P4NA5OQX.js → chunk-GTHL3TRZ.js} +2 -2
- package/dist/{chunk-ZU6T7W3U.js → chunk-H5GN7R43.js} +2 -2
- package/dist/{chunk-YXOPQEFZ.js → chunk-HJYAXAYQ.js} +2 -2
- package/dist/{chunk-Z4XWWNYX.js → chunk-HSYU3RUW.js} +203 -92
- package/dist/{chunk-Y33P35U3.js → chunk-JZL2O3RC.js} +5 -5
- package/dist/{chunk-XW5XVVMI.js → chunk-LP764MGR.js} +3 -3
- package/dist/{chunk-Y5HPJMTM.js → chunk-LTYVAKWK.js} +2 -2
- package/dist/{chunk-DGVT4DBI.js → chunk-MEDRUIRO.js} +3 -3
- package/dist/{chunk-GSYBGOY3.js → chunk-MIZQY35D.js} +2 -2
- package/dist/{chunk-YWRPQZL7.js → chunk-NEMB36N4.js} +2 -2
- package/dist/{chunk-GLHLXTKC.js → chunk-PT65VY4S.js} +6 -6
- package/dist/{chunk-AU4YPEIE.js → chunk-T46G6YNI.js} +3 -3
- package/dist/{chunk-ABRYIEWJ.js → chunk-TDPQZAEE.js} +1069 -853
- package/dist/{chunk-VG4G3R2V.js → chunk-TKPAOB2T.js} +2 -2
- package/dist/{chunk-RZQZXWEL.js → chunk-U2NOOATF.js} +6 -6
- package/dist/{chunk-BDGTZRZ6.js → chunk-VJDSB7CI.js} +159 -85
- package/dist/{chunk-OZSKLJQW.js → chunk-XKILFNRK.js} +2 -2
- package/dist/{ci-workflow-TFAA5BK7.js → ci-workflow-PA3WL6WK.js} +4 -4
- package/dist/{dist-MCTEX5QH.js → dist-BWFFVKEW.js} +34 -4
- package/dist/{dist-ICW4QUEW.js → dist-ISDDHDOR.js} +19 -3
- package/dist/{docs-BBMAN3CY.js → docs-HOTWQJQF.js} +5 -5
- package/dist/{engine-R2YH74AL.js → engine-MVG2SPGD.js} +4 -4
- package/dist/{entropy-5UP5N6AF.js → entropy-3B4U2BTF.js} +5 -5
- package/dist/{feedback-6MDCCFZL.js → feedback-WIWWDVUC.js} +1 -1
- package/dist/{generate-agent-definitions-KKAN5DB5.js → generate-agent-definitions-KPRHY6X3.js} +5 -5
- package/dist/index.js +25 -25
- package/dist/{loader-2WT2ZE2T.js → loader-SPJ2ZGYW.js} +4 -4
- package/dist/{mcp-5V4LPMB3.js → mcp-RIPEYDMU.js} +15 -15
- package/dist/{performance-2N3CFXLR.js → performance-JYFS27B3.js} +5 -5
- package/dist/{review-pipeline-XZIGBU3Q.js → review-pipeline-BDT6Y6QV.js} +4 -4
- package/dist/{runtime-POME3GTR.js → runtime-ZEPHPPQJ.js} +4 -4
- package/dist/{security-QLJLMSIW.js → security-FWSDTTEW.js} +1 -1
- package/dist/{state-events-YY5KBZTC.js → state-events-PBDNQPXT.js} +4 -4
- package/dist/{validate-VZORVK43.js → validate-XIMNCIKR.js} +5 -5
- package/dist/{validate-cross-check-OYKEDCST.js → validate-cross-check-H2OUHTID.js} +4 -4
- package/package.json +8 -8
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
resetParserCache,
|
|
32
32
|
resolveFileToLayer,
|
|
33
33
|
validateDependencies
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-7RH2NTLA.js";
|
|
35
35
|
import {
|
|
36
36
|
AuthAuditEntrySchema,
|
|
37
37
|
AuthTokenPublicSchema,
|
|
@@ -44,6 +44,9 @@ import {
|
|
|
44
44
|
GatewayEventSchema,
|
|
45
45
|
INDEXED_FILE_KINDS,
|
|
46
46
|
INSIGHTS_KEYS,
|
|
47
|
+
ModelProposalActionSchema,
|
|
48
|
+
ModelProposalContentSchema,
|
|
49
|
+
ModelProposalStatusSchema,
|
|
47
50
|
NotificationActionSchema,
|
|
48
51
|
NotificationDeliveryResultSchema,
|
|
49
52
|
NotificationEnvelopeSchema,
|
|
@@ -55,19 +58,23 @@ import {
|
|
|
55
58
|
OTLPKeyValueSchema,
|
|
56
59
|
OTLPSpanSchema,
|
|
57
60
|
Ok,
|
|
61
|
+
PlanTaskSchema,
|
|
58
62
|
PromptCacheStatsSchema,
|
|
59
63
|
ProposalContentSchema,
|
|
60
64
|
ProposalDecisionSchema,
|
|
61
65
|
ProposalGateFindingSchema,
|
|
62
66
|
ProposalGateSchema,
|
|
63
67
|
ProposalKindSchema,
|
|
68
|
+
ProposalSchema,
|
|
64
69
|
ProposalSourceSchema,
|
|
65
70
|
ProposalStatusSchema,
|
|
71
|
+
ProposalTypeSchema,
|
|
66
72
|
REQUIRED_STRATEGY_SECTIONS,
|
|
67
73
|
SESSIONS_DEFAULTS,
|
|
68
74
|
SESSION_SECTION_NAMES,
|
|
69
75
|
STANDARD_COGNITIVE_MODES,
|
|
70
76
|
SessionSummarySchema,
|
|
77
|
+
SkillKindSchema,
|
|
71
78
|
SkillProposalSchema,
|
|
72
79
|
SkillProvenanceSchema,
|
|
73
80
|
TokenScopeSchema,
|
|
@@ -78,8 +85,9 @@ import {
|
|
|
78
85
|
WebhookSubscriptionSchema,
|
|
79
86
|
init_dist,
|
|
80
87
|
isErr,
|
|
81
|
-
isOk
|
|
82
|
-
|
|
88
|
+
isOk,
|
|
89
|
+
migrateProposalRecord
|
|
90
|
+
} from "./chunk-VJDSB7CI.js";
|
|
83
91
|
import {
|
|
84
92
|
DEFAULT_SKIP_DIRS,
|
|
85
93
|
GraphStore,
|
|
@@ -1361,6 +1369,9 @@ __export(dist_exports, {
|
|
|
1361
1369
|
ManifestSchema: () => ManifestSchema,
|
|
1362
1370
|
MetricResultSchema: () => MetricResultSchema,
|
|
1363
1371
|
ModeSchema: () => ModeSchema,
|
|
1372
|
+
ModelProposalActionSchema: () => ModelProposalActionSchema,
|
|
1373
|
+
ModelProposalContentSchema: () => ModelProposalContentSchema,
|
|
1374
|
+
ModelProposalStatusSchema: () => ModelProposalStatusSchema,
|
|
1364
1375
|
ModuleSizeCollector: () => ModuleSizeCollector,
|
|
1365
1376
|
MonolithStore: () => MonolithStore,
|
|
1366
1377
|
NoOpExecutor: () => NoOpExecutor,
|
|
@@ -1383,6 +1394,7 @@ __export(dist_exports, {
|
|
|
1383
1394
|
PII_LINE_RE: () => PII_LINE_RE,
|
|
1384
1395
|
PII_TOKENS: () => PII_TOKENS,
|
|
1385
1396
|
PatternConfigSchema: () => PatternConfigSchema,
|
|
1397
|
+
PlanTaskSchema: () => PlanTaskSchema,
|
|
1386
1398
|
PredictionEngine: () => PredictionEngine,
|
|
1387
1399
|
PredictionOptionsSchema: () => PredictionOptionsSchema,
|
|
1388
1400
|
PredictionRegressionResultSchema: () => RegressionResultSchema,
|
|
@@ -1398,8 +1410,10 @@ __export(dist_exports, {
|
|
|
1398
1410
|
ProposalGateSchema: () => ProposalGateSchema,
|
|
1399
1411
|
ProposalKindSchema: () => ProposalKindSchema,
|
|
1400
1412
|
ProposalNotFoundError: () => ProposalNotFoundError,
|
|
1413
|
+
ProposalSchema: () => ProposalSchema,
|
|
1401
1414
|
ProposalSourceSchema: () => ProposalSourceSchema,
|
|
1402
1415
|
ProposalStatusSchema: () => ProposalStatusSchema,
|
|
1416
|
+
ProposalTypeSchema: () => ProposalTypeSchema,
|
|
1403
1417
|
PulseAdapterAlreadyRegisteredError: () => PulseAdapterAlreadyRegisteredError,
|
|
1404
1418
|
PulseConfigSchema: () => PulseConfigSchema,
|
|
1405
1419
|
PulseDbSourceSchema: () => PulseDbSourceSchema,
|
|
@@ -1439,6 +1453,7 @@ __export(dist_exports, {
|
|
|
1439
1453
|
SharableLayerSchema: () => SharableLayerSchema,
|
|
1440
1454
|
SharableSecurityRulesSchema: () => SharableSecurityRulesSchema,
|
|
1441
1455
|
ShardStore: () => ShardStore,
|
|
1456
|
+
SkillKindSchema: () => SkillKindSchema,
|
|
1442
1457
|
SkillProposalSchema: () => SkillProposalSchema,
|
|
1443
1458
|
SkillProvenanceSchema: () => SkillProvenanceSchema,
|
|
1444
1459
|
SolutionDocFrontmatterSchema: () => SolutionDocFrontmatterSchema,
|
|
@@ -1522,6 +1537,7 @@ __export(dist_exports, {
|
|
|
1522
1537
|
buildExternalId: () => buildExternalId,
|
|
1523
1538
|
buildProjectContext: () => buildProjectContext,
|
|
1524
1539
|
buildSnapshot: () => buildSnapshot,
|
|
1540
|
+
buildTaskGraph: () => buildTaskGraph,
|
|
1525
1541
|
calculateCacheSavings: () => calculateCacheSavings,
|
|
1526
1542
|
calculateCost: () => calculateCost,
|
|
1527
1543
|
calibrateDepth: () => calibrateDepth,
|
|
@@ -1564,6 +1580,7 @@ __export(dist_exports, {
|
|
|
1564
1580
|
createError: () => createError,
|
|
1565
1581
|
createFixes: () => createFixes,
|
|
1566
1582
|
createForbiddenImportFixes: () => createForbiddenImportFixes,
|
|
1583
|
+
createModelProposal: () => createModelProposal,
|
|
1567
1584
|
createNodeRoadmapIO: () => createNodeRoadmapIO,
|
|
1568
1585
|
createOrphanedDepFixes: () => createOrphanedDepFixes,
|
|
1569
1586
|
createOsvClient: () => createOsvClient,
|
|
@@ -1633,6 +1650,7 @@ __export(dist_exports, {
|
|
|
1633
1650
|
generateRubric: () => generateRubric,
|
|
1634
1651
|
generateSuggestions: () => generateSuggestions,
|
|
1635
1652
|
getActionEmitter: () => getActionEmitter,
|
|
1653
|
+
getCatalogRetrospectiveReport: () => getCatalogRetrospectiveReport,
|
|
1636
1654
|
getExitCode: () => getExitCode,
|
|
1637
1655
|
getFeedbackConfig: () => getFeedbackConfig,
|
|
1638
1656
|
getInjectionPatterns: () => getInjectionPatterns,
|
|
@@ -1654,6 +1672,7 @@ __export(dist_exports, {
|
|
|
1654
1672
|
injectionRules: () => injectionRules,
|
|
1655
1673
|
insecureDefaultsRules: () => insecureDefaultsRules,
|
|
1656
1674
|
invalidateCheckState: () => invalidateCheckState,
|
|
1675
|
+
isAbandonedMidWorkflow: () => isAbandonedMidWorkflow,
|
|
1657
1676
|
isBadPort: () => isBadPort,
|
|
1658
1677
|
isClaimableBy: () => isClaimableBy,
|
|
1659
1678
|
isDuplicateFinding: () => isDuplicateFinding,
|
|
@@ -1692,6 +1711,7 @@ __export(dist_exports, {
|
|
|
1692
1711
|
markProtectedFindings: () => markProtectedFindings,
|
|
1693
1712
|
mcpRules: () => mcpRules,
|
|
1694
1713
|
migrate: () => migrate_exports,
|
|
1714
|
+
migrateProposalRecord: () => migrateProposalRecord,
|
|
1695
1715
|
migrateToStreams: () => migrateToStreams,
|
|
1696
1716
|
needsMergeOursDriverWarning: () => needsMergeOursDriverWarning,
|
|
1697
1717
|
networkRules: () => networkRules,
|
|
@@ -1726,6 +1746,7 @@ __export(dist_exports, {
|
|
|
1726
1746
|
parseSize: () => parseSize,
|
|
1727
1747
|
parseStrategyDoc: () => parseStrategyDoc,
|
|
1728
1748
|
pathTraversalRules: () => pathTraversalRules,
|
|
1749
|
+
planParallelization: () => planParallelization,
|
|
1729
1750
|
presetKind: () => presetKind,
|
|
1730
1751
|
previewFix: () => previewFix,
|
|
1731
1752
|
projectValue: () => projectValue,
|
|
@@ -1752,6 +1773,7 @@ __export(dist_exports, {
|
|
|
1752
1773
|
release: () => release,
|
|
1753
1774
|
removeContributions: () => removeContributions,
|
|
1754
1775
|
removeProvenance: () => removeProvenance,
|
|
1776
|
+
renderRetrospectiveMarkdown: () => renderRetrospectiveMarkdown,
|
|
1755
1777
|
requestMultiplePeerReviews: () => requestMultiplePeerReviews,
|
|
1756
1778
|
requestPeerReview: () => requestPeerReview,
|
|
1757
1779
|
resetFeedbackConfig: () => resetFeedbackConfig,
|
|
@@ -1839,6 +1861,7 @@ __export(dist_exports, {
|
|
|
1839
1861
|
validateFindings: () => validateFindings,
|
|
1840
1862
|
validateKnowledgeMap: () => validateKnowledgeMap,
|
|
1841
1863
|
validatePatternConfig: () => validatePatternConfig,
|
|
1864
|
+
validatePlanTasks: () => validatePlanTasks,
|
|
1842
1865
|
validatePulseConfig: () => validatePulseConfig,
|
|
1843
1866
|
validateRoadmapMode: () => validateRoadmapMode,
|
|
1844
1867
|
validateSolutionsDir: () => validateSolutionsDir,
|
|
@@ -14658,6 +14681,157 @@ function aggregateByDay2(records) {
|
|
|
14658
14681
|
function topSkills(records, n) {
|
|
14659
14682
|
return aggregateBySkill(records).slice(0, n);
|
|
14660
14683
|
}
|
|
14684
|
+
function isAbandonedMidWorkflow(record) {
|
|
14685
|
+
if (record.outcome === "abandoned") return true;
|
|
14686
|
+
return record.outcome !== "completed" && record.phasesReached.length > 0;
|
|
14687
|
+
}
|
|
14688
|
+
function resolveNowMs(records, now) {
|
|
14689
|
+
if (now) return now.getTime();
|
|
14690
|
+
let latest = Number.NEGATIVE_INFINITY;
|
|
14691
|
+
for (const record of records) {
|
|
14692
|
+
const t = Date.parse(record.startedAt);
|
|
14693
|
+
if (!Number.isNaN(t) && t > latest) latest = t;
|
|
14694
|
+
}
|
|
14695
|
+
return latest === Number.NEGATIVE_INFINITY ? Date.now() : latest;
|
|
14696
|
+
}
|
|
14697
|
+
function buildStat(skill, records, nowMs) {
|
|
14698
|
+
const invocations = records.length;
|
|
14699
|
+
const failures = records.filter((r) => r.outcome === "failed").length;
|
|
14700
|
+
const abandoned = records.filter(isAbandonedMidWorkflow).length;
|
|
14701
|
+
const timestamps = records.map((r) => r.startedAt).sort();
|
|
14702
|
+
const lastUsed = timestamps[timestamps.length - 1];
|
|
14703
|
+
const daysSinceLastUse = Math.floor((nowMs - Date.parse(lastUsed)) / DAY_MS);
|
|
14704
|
+
return {
|
|
14705
|
+
skill,
|
|
14706
|
+
invocations,
|
|
14707
|
+
failures,
|
|
14708
|
+
failureRate: failures / invocations,
|
|
14709
|
+
abandonedMidWorkflow: abandoned,
|
|
14710
|
+
lastUsed,
|
|
14711
|
+
daysSinceLastUse
|
|
14712
|
+
};
|
|
14713
|
+
}
|
|
14714
|
+
function groupBySkill(records) {
|
|
14715
|
+
const map = /* @__PURE__ */ new Map();
|
|
14716
|
+
for (const record of records) {
|
|
14717
|
+
const bucket = map.get(record.skill);
|
|
14718
|
+
if (bucket) bucket.push(record);
|
|
14719
|
+
else map.set(record.skill, [record]);
|
|
14720
|
+
}
|
|
14721
|
+
return map;
|
|
14722
|
+
}
|
|
14723
|
+
function computeCoverage(invokedSkills, catalogSkills) {
|
|
14724
|
+
if (!catalogSkills) {
|
|
14725
|
+
return { catalogSize: null, everInvoked: null, neverInvoked: null };
|
|
14726
|
+
}
|
|
14727
|
+
const catalog = new Set(catalogSkills);
|
|
14728
|
+
let everInvoked = 0;
|
|
14729
|
+
for (const skill of catalog) {
|
|
14730
|
+
if (invokedSkills.has(skill)) everInvoked++;
|
|
14731
|
+
}
|
|
14732
|
+
return {
|
|
14733
|
+
catalogSize: catalog.size,
|
|
14734
|
+
everInvoked,
|
|
14735
|
+
neverInvoked: catalog.size - everInvoked
|
|
14736
|
+
};
|
|
14737
|
+
}
|
|
14738
|
+
function getCatalogRetrospectiveReport(records, options = {}) {
|
|
14739
|
+
const inactiveDaysThreshold = options.inactiveDays ?? 90;
|
|
14740
|
+
const topN = options.topN ?? 10;
|
|
14741
|
+
const nowMs = resolveNowMs(records, options.now);
|
|
14742
|
+
const generatedAt = (options.now ?? /* @__PURE__ */ new Date()).toISOString();
|
|
14743
|
+
const bySkill = groupBySkill(records);
|
|
14744
|
+
const stats = Array.from(bySkill.entries()).map(([skill, recs]) => buildStat(skill, recs, nowMs));
|
|
14745
|
+
const topInvoked = [...stats].sort((a, b) => b.invocations - a.invocations || a.skill.localeCompare(b.skill)).slice(0, topN);
|
|
14746
|
+
const topFailing = stats.filter((s) => s.failures > 0).sort(
|
|
14747
|
+
(a, b) => b.failures - a.failures || b.failureRate - a.failureRate || a.skill.localeCompare(b.skill)
|
|
14748
|
+
).slice(0, topN);
|
|
14749
|
+
const abandonedMidWorkflow = stats.filter((s) => s.abandonedMidWorkflow > 0).sort(
|
|
14750
|
+
(a, b) => b.abandonedMidWorkflow - a.abandonedMidWorkflow || a.skill.localeCompare(b.skill)
|
|
14751
|
+
).slice(0, topN);
|
|
14752
|
+
const staleSkills = stats.filter((s) => s.daysSinceLastUse >= inactiveDaysThreshold).sort((a, b) => b.daysSinceLastUse - a.daysSinceLastUse || a.skill.localeCompare(b.skill));
|
|
14753
|
+
const timestamps = records.map((r) => r.startedAt).sort();
|
|
14754
|
+
const windowStart = timestamps[0] ?? null;
|
|
14755
|
+
const windowEnd = timestamps[timestamps.length - 1] ?? null;
|
|
14756
|
+
const windowDays = windowStart && windowEnd ? Math.max(0, Math.round((Date.parse(windowEnd) - Date.parse(windowStart)) / DAY_MS)) : 0;
|
|
14757
|
+
return {
|
|
14758
|
+
generatedAt,
|
|
14759
|
+
windowStart,
|
|
14760
|
+
windowEnd,
|
|
14761
|
+
windowDays,
|
|
14762
|
+
totalRecords: records.length,
|
|
14763
|
+
distinctSkills: bySkill.size,
|
|
14764
|
+
inactiveDaysThreshold,
|
|
14765
|
+
topN,
|
|
14766
|
+
topInvoked,
|
|
14767
|
+
topFailing,
|
|
14768
|
+
abandonedMidWorkflow,
|
|
14769
|
+
staleSkills,
|
|
14770
|
+
coverage: computeCoverage(new Set(bySkill.keys()), options.catalogSkills)
|
|
14771
|
+
};
|
|
14772
|
+
}
|
|
14773
|
+
function formatRate(rate) {
|
|
14774
|
+
return `${(rate * 100).toFixed(0)}%`;
|
|
14775
|
+
}
|
|
14776
|
+
function statRow(s) {
|
|
14777
|
+
return `| \`${s.skill}\` | ${s.invocations} | ${s.failures} (${formatRate(s.failureRate)}) | ${s.abandonedMidWorkflow} | ${s.lastUsed.slice(0, 10)} |`;
|
|
14778
|
+
}
|
|
14779
|
+
function renderStatSection(title, rows, emptyNote) {
|
|
14780
|
+
if (rows.length === 0) return `### ${title}
|
|
14781
|
+
|
|
14782
|
+
_${emptyNote}_
|
|
14783
|
+
`;
|
|
14784
|
+
const header = "| Skill | Invocations | Failures | Abandoned mid-workflow | Last used |\n| ----- | ----------- | -------- | ---------------------- | --------- |";
|
|
14785
|
+
return `### ${title}
|
|
14786
|
+
|
|
14787
|
+
${header}
|
|
14788
|
+
${rows.map(statRow).join("\n")}
|
|
14789
|
+
`;
|
|
14790
|
+
}
|
|
14791
|
+
function renderOverview(report) {
|
|
14792
|
+
const lines = ["## Overview", "", `- **Generated:** ${report.generatedAt}`];
|
|
14793
|
+
if (report.windowStart && report.windowEnd) {
|
|
14794
|
+
lines.push(
|
|
14795
|
+
`- **Window:** ${report.windowStart.slice(0, 10)} \u2192 ${report.windowEnd.slice(0, 10)} (${report.windowDays} days)`
|
|
14796
|
+
);
|
|
14797
|
+
} else {
|
|
14798
|
+
lines.push("- **Window:** no records");
|
|
14799
|
+
}
|
|
14800
|
+
lines.push(`- **Records:** ${report.totalRecords} across ${report.distinctSkills} skill(s)`);
|
|
14801
|
+
const { catalogSize, everInvoked, neverInvoked } = report.coverage;
|
|
14802
|
+
if (catalogSize != null && everInvoked != null && neverInvoked != null) {
|
|
14803
|
+
lines.push(
|
|
14804
|
+
`- **Telemetry coverage:** ${everInvoked}/${catalogSize} catalog skills have emitted telemetry (${neverInvoked} never invoked)`
|
|
14805
|
+
);
|
|
14806
|
+
}
|
|
14807
|
+
return lines.join("\n");
|
|
14808
|
+
}
|
|
14809
|
+
function staleEmptyNote(report) {
|
|
14810
|
+
const base = `No ever-invoked skill is inactive \u2265${report.inactiveDaysThreshold} days.`;
|
|
14811
|
+
if (report.windowDays < report.inactiveDaysThreshold) {
|
|
14812
|
+
return `${base} Note: the record window (${report.windowDays} days) is shorter than the threshold, so this signal cannot fire yet.`;
|
|
14813
|
+
}
|
|
14814
|
+
return base;
|
|
14815
|
+
}
|
|
14816
|
+
function renderRetrospectiveMarkdown(report) {
|
|
14817
|
+
const sections = [
|
|
14818
|
+
`# Catalog Retrospective \u2014 ${report.generatedAt.slice(0, 10)}`,
|
|
14819
|
+
renderOverview(report),
|
|
14820
|
+
renderStatSection("Top skills by invocations", report.topInvoked, "No invocations recorded."),
|
|
14821
|
+
renderStatSection("Top failing skills", report.topFailing, "No failing skills recorded."),
|
|
14822
|
+
renderStatSection(
|
|
14823
|
+
"Abandoned mid-workflow",
|
|
14824
|
+
report.abandonedMidWorkflow,
|
|
14825
|
+
"No abandoned-mid-workflow runs recorded."
|
|
14826
|
+
),
|
|
14827
|
+
renderStatSection(
|
|
14828
|
+
`Stale skills (inactive \u2265${report.inactiveDaysThreshold} days)`,
|
|
14829
|
+
report.staleSkills,
|
|
14830
|
+
staleEmptyNote(report)
|
|
14831
|
+
)
|
|
14832
|
+
];
|
|
14833
|
+
return sections.join("\n\n").trimEnd() + "\n";
|
|
14834
|
+
}
|
|
14661
14835
|
function isEmptyObject(v) {
|
|
14662
14836
|
return typeof v === "object" && v !== null && !Array.isArray(v) && Object.keys(v).length === 0;
|
|
14663
14837
|
}
|
|
@@ -15150,7 +15324,7 @@ function arrayLen(arr) {
|
|
|
15150
15324
|
return Array.isArray(arr) ? arr.length : 0;
|
|
15151
15325
|
}
|
|
15152
15326
|
async function gatherEntropyBlock(projectPath) {
|
|
15153
|
-
const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./analyzer-XRCV63KC-
|
|
15327
|
+
const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./analyzer-XRCV63KC-WGRHW2ZM.js");
|
|
15154
15328
|
const analyzer = new EntropyAnalyzer2({
|
|
15155
15329
|
rootDir: projectPath,
|
|
15156
15330
|
include: ["src/**/*.ts", "src/**/*.tsx", "packages/*/src/**/*.ts"],
|
|
@@ -15364,6 +15538,185 @@ ${issues}`));
|
|
|
15364
15538
|
}
|
|
15365
15539
|
return Ok(result.data);
|
|
15366
15540
|
}
|
|
15541
|
+
function footprintOf(task) {
|
|
15542
|
+
const files = task.files || [];
|
|
15543
|
+
const owns = task.owns || [];
|
|
15544
|
+
return /* @__PURE__ */ new Set([...files, ...owns]);
|
|
15545
|
+
}
|
|
15546
|
+
function shareFootprint(a, b) {
|
|
15547
|
+
if (!a || !b) return false;
|
|
15548
|
+
for (const item of a) {
|
|
15549
|
+
if (b.has(item)) return true;
|
|
15550
|
+
}
|
|
15551
|
+
return false;
|
|
15552
|
+
}
|
|
15553
|
+
function addDependency(deps, consumer, producer) {
|
|
15554
|
+
if (!consumer || !producer) return;
|
|
15555
|
+
const consumerDeps = deps.get(consumer.id);
|
|
15556
|
+
if (consumerDeps) consumerDeps.add(producer.id);
|
|
15557
|
+
}
|
|
15558
|
+
function toGraphNode(task, deps) {
|
|
15559
|
+
const set = deps.get(task.id) || /* @__PURE__ */ new Set();
|
|
15560
|
+
return { id: task.id, dependsOn: [...set].sort() };
|
|
15561
|
+
}
|
|
15562
|
+
function buildTaskGraph(tasks) {
|
|
15563
|
+
const footprints = tasks.map(footprintOf);
|
|
15564
|
+
const deps = /* @__PURE__ */ new Map();
|
|
15565
|
+
for (const task of tasks) {
|
|
15566
|
+
deps.set(task.id, new Set(task.dependsOn || []));
|
|
15567
|
+
}
|
|
15568
|
+
for (let i = 0; i < tasks.length; i++) {
|
|
15569
|
+
for (let j = i + 1; j < tasks.length; j++) {
|
|
15570
|
+
if (shareFootprint(footprints[i], footprints[j])) {
|
|
15571
|
+
addDependency(deps, tasks[j], tasks[i]);
|
|
15572
|
+
}
|
|
15573
|
+
}
|
|
15574
|
+
}
|
|
15575
|
+
return tasks.map((task) => toGraphNode(task, deps));
|
|
15576
|
+
}
|
|
15577
|
+
function validatePlanTasks(tasks) {
|
|
15578
|
+
const errors = [];
|
|
15579
|
+
const warnings = [];
|
|
15580
|
+
const index = /* @__PURE__ */ new Map();
|
|
15581
|
+
tasks.forEach((t, i) => index.set(t.id, i));
|
|
15582
|
+
for (const t of tasks) {
|
|
15583
|
+
for (const dep of t.dependsOn || []) {
|
|
15584
|
+
if (!index.has(dep)) {
|
|
15585
|
+
errors.push(`Task "${t.id}" depends on unknown task id "${dep}".`);
|
|
15586
|
+
continue;
|
|
15587
|
+
}
|
|
15588
|
+
if (index.get(dep) > index.get(t.id)) {
|
|
15589
|
+
warnings.push(
|
|
15590
|
+
`Task "${t.id}" depends on "${dep}" which is declared later (consumer before producer).`
|
|
15591
|
+
);
|
|
15592
|
+
}
|
|
15593
|
+
}
|
|
15594
|
+
}
|
|
15595
|
+
const { cyclic } = findParallelGroups(buildTaskGraph(tasks));
|
|
15596
|
+
if (cyclic.length > 0) {
|
|
15597
|
+
errors.push(`Dependency cycle detected among tasks: ${cyclic.join(", ")}.`);
|
|
15598
|
+
}
|
|
15599
|
+
return { errors, warnings };
|
|
15600
|
+
}
|
|
15601
|
+
function waveSeverity(taskIds, conflicts) {
|
|
15602
|
+
const set = new Set(taskIds);
|
|
15603
|
+
let max = "none";
|
|
15604
|
+
for (const c of conflicts.conflicts) {
|
|
15605
|
+
if (!set.has(c.taskA) || !set.has(c.taskB)) continue;
|
|
15606
|
+
if (SEVERITY_RANK2[c.severity] > SEVERITY_RANK2[max]) max = c.severity;
|
|
15607
|
+
}
|
|
15608
|
+
return max;
|
|
15609
|
+
}
|
|
15610
|
+
function classifyFiring(severity, waveSize, minWaveSize, analysisLevel) {
|
|
15611
|
+
if (severity === "high") {
|
|
15612
|
+
return {
|
|
15613
|
+
firing: "serialize",
|
|
15614
|
+
reason: "high-severity conflicts predicted \u2014 running these tasks sequentially"
|
|
15615
|
+
};
|
|
15616
|
+
}
|
|
15617
|
+
if (waveSize < minWaveSize) {
|
|
15618
|
+
return {
|
|
15619
|
+
firing: "serialize",
|
|
15620
|
+
reason: `only ${waveSize} independent task(s), below minimum wave size ${minWaveSize} \u2014 running serially`
|
|
15621
|
+
};
|
|
15622
|
+
}
|
|
15623
|
+
if (severity === "medium") {
|
|
15624
|
+
return {
|
|
15625
|
+
firing: "confirm",
|
|
15626
|
+
reason: "medium-severity conflicts predicted \u2014 one confirmation before dispatch"
|
|
15627
|
+
};
|
|
15628
|
+
}
|
|
15629
|
+
if (analysisLevel === "file-only") {
|
|
15630
|
+
return {
|
|
15631
|
+
firing: "confirm",
|
|
15632
|
+
reason: "graph unavailable (file-only analysis) \u2014 transitive conflicts unknown, one confirmation before dispatch"
|
|
15633
|
+
};
|
|
15634
|
+
}
|
|
15635
|
+
return {
|
|
15636
|
+
firing: "auto-dispatch",
|
|
15637
|
+
reason: `${waveSize} independent tasks, ${severity === "none" ? "no" : severity} conflict severity, graph-expanded analysis \u2014 dispatching in parallel`
|
|
15638
|
+
};
|
|
15639
|
+
}
|
|
15640
|
+
function narrate(waves, reasons, serialized, cyclic, nodes) {
|
|
15641
|
+
const depMap = /* @__PURE__ */ new Map();
|
|
15642
|
+
for (const node of nodes) depMap.set(node.id, node.dependsOn);
|
|
15643
|
+
const cyclicSet = new Set(cyclic);
|
|
15644
|
+
const serializedSet = new Set(serialized);
|
|
15645
|
+
const labelDep = (id) => {
|
|
15646
|
+
if (cyclicSet.has(id)) return `${id} (cyclic)`;
|
|
15647
|
+
if (serializedSet.has(id)) return `${id} (serialized)`;
|
|
15648
|
+
return id;
|
|
15649
|
+
};
|
|
15650
|
+
const lines = [
|
|
15651
|
+
`Parallelization: ${waves.length} wave(s), ${serialized.length} serialized, ${cyclic.length} cyclic.`
|
|
15652
|
+
];
|
|
15653
|
+
waves.forEach((w, i) => {
|
|
15654
|
+
const waveSet = new Set(w.tasks);
|
|
15655
|
+
const blocking = [...new Set(w.tasks.flatMap((t) => depMap.get(t) ?? []))].filter((id) => !waveSet.has(id)).sort();
|
|
15656
|
+
const crossBucket = blocking.some((id) => serializedSet.has(id));
|
|
15657
|
+
const waitClause = blocking.length ? `waits on ${blocking.map(labelDep).join(", ")}${crossBucket ? " (cross-bucket prerequisite gates this wave)" : ""}` : "no upstream dependencies (root wave)";
|
|
15658
|
+
lines.push(
|
|
15659
|
+
`Wave ${i + 1} [${w.tasks.join(", ")}]: ${waitClause}; ${w.firing}: ${reasons[i] ?? ""}.`
|
|
15660
|
+
);
|
|
15661
|
+
});
|
|
15662
|
+
if (serialized.length > 0) {
|
|
15663
|
+
lines.push(
|
|
15664
|
+
`Serialized (run sequentially): [${serialized.join(
|
|
15665
|
+
", "
|
|
15666
|
+
)}] \u2014 high-severity conflict members or dependency-cycle members.`
|
|
15667
|
+
);
|
|
15668
|
+
}
|
|
15669
|
+
if (cyclic.length > 0) {
|
|
15670
|
+
lines.push(
|
|
15671
|
+
`Cyclic (blocked): [${cyclic.join(", ")}] \u2014 dependency cycle; resolve before scheduling.`
|
|
15672
|
+
);
|
|
15673
|
+
}
|
|
15674
|
+
return lines.join("\n");
|
|
15675
|
+
}
|
|
15676
|
+
function highRiskGroupMembers(conflicts) {
|
|
15677
|
+
const members = [];
|
|
15678
|
+
for (const group of conflicts.groups) {
|
|
15679
|
+
if (group.length > 1) members.push(...group);
|
|
15680
|
+
}
|
|
15681
|
+
return members;
|
|
15682
|
+
}
|
|
15683
|
+
function planParallelization(input) {
|
|
15684
|
+
const { tasks, conflicts } = input;
|
|
15685
|
+
const minWaveSize = input.minWaveSize ?? DEFAULT_MIN_WAVE_SIZE;
|
|
15686
|
+
const nodes = buildTaskGraph(tasks);
|
|
15687
|
+
const { waves: rawWaves, cyclic } = findParallelGroups(nodes);
|
|
15688
|
+
const serializedSet = new Set(cyclic);
|
|
15689
|
+
for (const id of highRiskGroupMembers(conflicts)) serializedSet.add(id);
|
|
15690
|
+
const serialized = [...serializedSet].sort();
|
|
15691
|
+
const depMap = /* @__PURE__ */ new Map();
|
|
15692
|
+
for (const node of nodes) depMap.set(node.id, node.dependsOn);
|
|
15693
|
+
const reasons = [];
|
|
15694
|
+
const waves = rawWaves.map((taskIds) => taskIds.filter((id) => !serializedSet.has(id))).filter((taskIds) => taskIds.length > 0).map((taskIds) => {
|
|
15695
|
+
const severity = waveSeverity(taskIds, conflicts);
|
|
15696
|
+
let { firing, reason } = classifyFiring(
|
|
15697
|
+
severity,
|
|
15698
|
+
taskIds.length,
|
|
15699
|
+
minWaveSize,
|
|
15700
|
+
conflicts.analysisLevel
|
|
15701
|
+
);
|
|
15702
|
+
const waveSet = new Set(taskIds);
|
|
15703
|
+
const crossBucketUpstream = [...new Set(taskIds.flatMap((t) => depMap.get(t) ?? []))].filter((id) => !waveSet.has(id) && serializedSet.has(id)).sort();
|
|
15704
|
+
if (crossBucketUpstream.length > 0 && firing === "auto-dispatch") {
|
|
15705
|
+
firing = "confirm";
|
|
15706
|
+
reason = `depends on ${crossBucketUpstream.join(
|
|
15707
|
+
", "
|
|
15708
|
+
)} running in the serialized/cyclic channel \u2014 cross-bucket prerequisite not parallel-safe, one confirmation before dispatch`;
|
|
15709
|
+
}
|
|
15710
|
+
reasons.push(reason);
|
|
15711
|
+
return { tasks: taskIds, severity, firing, analysisLevel: conflicts.analysisLevel };
|
|
15712
|
+
});
|
|
15713
|
+
return {
|
|
15714
|
+
waves,
|
|
15715
|
+
serialized,
|
|
15716
|
+
cyclic,
|
|
15717
|
+
narration: narrate(waves, reasons, serialized, cyclic, nodes)
|
|
15718
|
+
};
|
|
15719
|
+
}
|
|
15367
15720
|
function proposalsDir(projectPath) {
|
|
15368
15721
|
return path51.join(projectPath, ".harness", "proposals");
|
|
15369
15722
|
}
|
|
@@ -15384,7 +15737,8 @@ async function createProposal(projectPath, input) {
|
|
|
15384
15737
|
const proposal = SkillProposalSchema.parse({
|
|
15385
15738
|
id,
|
|
15386
15739
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
15387
|
-
kind:
|
|
15740
|
+
kind: "skill",
|
|
15741
|
+
skillKind: validated.kind,
|
|
15388
15742
|
targetSkill: validated.targetSkill,
|
|
15389
15743
|
proposedBy: validated.proposedBy,
|
|
15390
15744
|
source: {
|
|
@@ -15395,11 +15749,9 @@ async function createProposal(projectPath, input) {
|
|
|
15395
15749
|
content: validated.content,
|
|
15396
15750
|
status: "open"
|
|
15397
15751
|
});
|
|
15398
|
-
if (proposal.
|
|
15752
|
+
if (proposal.skillKind === "refinement" && proposal.targetSkill) {
|
|
15399
15753
|
const existing = await listProposals(projectPath, { status: "open" });
|
|
15400
|
-
const clash = existing.find(
|
|
15401
|
-
(p) => p.kind === "refinement" && p.targetSkill === proposal.targetSkill
|
|
15402
|
-
);
|
|
15754
|
+
const clash = existing.filter((p) => p.kind === "skill").find((p) => p.skillKind === "refinement" && p.targetSkill === proposal.targetSkill);
|
|
15403
15755
|
if (clash) {
|
|
15404
15756
|
throw new ProposalConflictError(
|
|
15405
15757
|
`An open refinement proposal already exists for skill "${proposal.targetSkill}" (id: ${clash.id})`
|
|
@@ -15411,11 +15763,27 @@ async function createProposal(projectPath, input) {
|
|
|
15411
15763
|
writeAtomic(proposalPath(projectPath, id), JSON.stringify(proposal, null, 2));
|
|
15412
15764
|
return proposal;
|
|
15413
15765
|
}
|
|
15766
|
+
async function createModelProposal(projectPath, content, opts = {}) {
|
|
15767
|
+
const id = `proposal_${randomUUID2().replace(/-/g, "")}`;
|
|
15768
|
+
const record = ProposalSchema.parse({
|
|
15769
|
+
id,
|
|
15770
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
15771
|
+
kind: "model",
|
|
15772
|
+
proposedBy: opts.proposedBy ?? "orchestrator",
|
|
15773
|
+
source: opts.source ?? { justification: content.justification.summary },
|
|
15774
|
+
model: content,
|
|
15775
|
+
status: "open"
|
|
15776
|
+
});
|
|
15777
|
+
const dir = proposalsDir(projectPath);
|
|
15778
|
+
ensureDir(dir);
|
|
15779
|
+
writeAtomic(proposalPath(projectPath, id), JSON.stringify(record, null, 2));
|
|
15780
|
+
return record;
|
|
15781
|
+
}
|
|
15414
15782
|
async function getProposal(projectPath, id) {
|
|
15415
15783
|
const file = proposalPath(projectPath, id);
|
|
15416
15784
|
try {
|
|
15417
15785
|
const raw = fs49.readFileSync(file, "utf-8");
|
|
15418
|
-
const parsed =
|
|
15786
|
+
const parsed = ProposalSchema.safeParse(JSON.parse(raw));
|
|
15419
15787
|
return parsed.success ? parsed.data : null;
|
|
15420
15788
|
} catch {
|
|
15421
15789
|
return null;
|
|
@@ -15436,6 +15804,7 @@ async function listProposals(projectPath, opts = {}) {
|
|
|
15436
15804
|
const proposal = await getProposal(projectPath, id);
|
|
15437
15805
|
if (!proposal) continue;
|
|
15438
15806
|
if (opts.status && opts.status !== "all" && proposal.status !== opts.status) continue;
|
|
15807
|
+
if (opts.kind && proposal.kind !== opts.kind) continue;
|
|
15439
15808
|
out.push(proposal);
|
|
15440
15809
|
}
|
|
15441
15810
|
out.sort((a, b) => a.createdAt > b.createdAt ? -1 : a.createdAt < b.createdAt ? 1 : 0);
|
|
@@ -15444,13 +15813,16 @@ async function listProposals(projectPath, opts = {}) {
|
|
|
15444
15813
|
async function updateProposal(projectPath, id, patch) {
|
|
15445
15814
|
const current = await getProposal(projectPath, id);
|
|
15446
15815
|
if (!current) throw new ProposalNotFoundError(id);
|
|
15447
|
-
const
|
|
15816
|
+
const base = {
|
|
15448
15817
|
...current,
|
|
15449
15818
|
...patch,
|
|
15450
15819
|
id: current.id,
|
|
15451
15820
|
createdAt: current.createdAt,
|
|
15452
15821
|
kind: current.kind
|
|
15453
|
-
}
|
|
15822
|
+
};
|
|
15823
|
+
const next = ProposalSchema.parse(
|
|
15824
|
+
current.kind === "skill" ? { ...base, skillKind: current.skillKind } : base
|
|
15825
|
+
);
|
|
15454
15826
|
writeAtomic(proposalPath(projectPath, id), JSON.stringify(next, null, 2));
|
|
15455
15827
|
return next;
|
|
15456
15828
|
}
|
|
@@ -16063,7 +16435,7 @@ function writeStrategyDoc(doc, opts) {
|
|
|
16063
16435
|
throw e;
|
|
16064
16436
|
}
|
|
16065
16437
|
}
|
|
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;
|
|
16438
|
+
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
16439
|
var init_dist3 = __esm({
|
|
16068
16440
|
"../core/dist/index.mjs"() {
|
|
16069
16441
|
init_chunk_OFA2AAZK();
|
|
@@ -16103,6 +16475,7 @@ var init_dist3 = __esm({
|
|
|
16103
16475
|
init_dist();
|
|
16104
16476
|
init_dist();
|
|
16105
16477
|
init_dist();
|
|
16478
|
+
init_dist();
|
|
16106
16479
|
WHATWG_BAD_PORTS = Object.freeze([
|
|
16107
16480
|
1,
|
|
16108
16481
|
7,
|
|
@@ -22338,6 +22711,7 @@ console.log('Blueprint player initialized.');
|
|
|
22338
22711
|
STALENESS_WARNING_DAYS = 7;
|
|
22339
22712
|
MICRODOLLARS_PER_DOLLAR = 1e6;
|
|
22340
22713
|
TOKENS_PER_MILLION2 = 1e6;
|
|
22714
|
+
DAY_MS = 24 * 60 * 60 * 1e3;
|
|
22341
22715
|
StructuralStrategy = class {
|
|
22342
22716
|
name = "structural";
|
|
22343
22717
|
lossy = false;
|
|
@@ -23052,6 +23426,8 @@ console.log('Blueprint player initialized.');
|
|
|
23052
23426
|
lockPath;
|
|
23053
23427
|
};
|
|
23054
23428
|
KNOWN_CATEGORIES = new Set(ALL_SOLUTION_CATEGORIES);
|
|
23429
|
+
SEVERITY_RANK2 = { none: 0, low: 1, medium: 2, high: 3 };
|
|
23430
|
+
DEFAULT_MIN_WAVE_SIZE = 3;
|
|
23055
23431
|
ProposalNotFoundError = class extends Error {
|
|
23056
23432
|
constructor(id) {
|
|
23057
23433
|
super(`proposal not found: ${id}`);
|
|
@@ -23634,6 +24010,9 @@ export {
|
|
|
23634
24010
|
aggregateBySkill,
|
|
23635
24011
|
aggregateByDay2,
|
|
23636
24012
|
topSkills,
|
|
24013
|
+
isAbandonedMidWorkflow,
|
|
24014
|
+
getCatalogRetrospectiveReport,
|
|
24015
|
+
renderRetrospectiveMarkdown,
|
|
23637
24016
|
StructuralStrategy,
|
|
23638
24017
|
DEFAULT_TOKEN_BUDGET,
|
|
23639
24018
|
TruncationStrategy,
|
|
@@ -23676,10 +24055,14 @@ export {
|
|
|
23676
24055
|
CompoundLockHeldError,
|
|
23677
24056
|
acquireCompoundLock,
|
|
23678
24057
|
loadNotificationsConfig,
|
|
24058
|
+
buildTaskGraph,
|
|
24059
|
+
validatePlanTasks,
|
|
24060
|
+
planParallelization,
|
|
23679
24061
|
proposalsDir,
|
|
23680
24062
|
ProposalNotFoundError,
|
|
23681
24063
|
ProposalConflictError,
|
|
23682
24064
|
createProposal,
|
|
24065
|
+
createModelProposal,
|
|
23683
24066
|
getProposal,
|
|
23684
24067
|
listProposals,
|
|
23685
24068
|
updateProposal,
|