@harness-engineering/cli 3.0.0 → 3.1.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-execution/SKILL.md +35 -0
- package/dist/agents/skills/claude-code/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/agents/skills/codex/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +35 -0
- package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +33 -44
- package/dist/{agents-md-XOJE5ETA.js → agents-md-YYCLGMBF.js} +2 -2
- package/dist/{architecture-JEZPJ725.js → architecture-5KPP4ID4.js} +3 -3
- package/dist/{assess-project-RHXOQNMM.js → assess-project-B6ENHUAU.js} +1 -1
- package/dist/bin/harness-mcp.js +13 -13
- package/dist/bin/harness.js +22 -22
- package/dist/{check-phase-gate-GNDOMS35.js → check-phase-gate-REG3HWYC.js} +3 -3
- package/dist/{chunk-N24HCQA4.js → chunk-A65QO5KN.js} +132 -46
- package/dist/{chunk-UX3PQKVZ.js → chunk-BXKNWSG4.js} +1 -1
- package/dist/{chunk-XX4OLNWQ.js → chunk-C2ZGWMTN.js} +2 -2
- package/dist/{chunk-HEIMJJI4.js → chunk-DNX35Q5K.js} +2 -2
- package/dist/{chunk-BYVT5LVO.js → chunk-ERZCC5VH.js} +3 -3
- package/dist/{chunk-XFU6SB2Q.js → chunk-FL5SLUKZ.js} +62 -27
- package/dist/{chunk-NWLGL3IR.js → chunk-FUH4J43G.js} +1 -1
- package/dist/{chunk-MGUPSE6D.js → chunk-HIPBU2Q4.js} +5 -5
- package/dist/{chunk-3ISHDWO7.js → chunk-IF3JK3G5.js} +1 -1
- package/dist/{chunk-KAJOS3BA.js → chunk-LMZ2JTNP.js} +2 -2
- package/dist/{chunk-527G27VI.js → chunk-OQFEFVIN.js} +2 -2
- package/dist/{chunk-Z4AWEIBY.js → chunk-PZX2Y3RV.js} +3 -3
- package/dist/{chunk-ONCPJGHY.js → chunk-RGQXHCCH.js} +6 -6
- package/dist/{chunk-QBC7DI4Q.js → chunk-TCVQVHEF.js} +1 -1
- package/dist/{chunk-PC2R5RUJ.js → chunk-TE5YHHHZ.js} +1 -1
- package/dist/{chunk-HWTUUQOW.js → chunk-UBTMPO5H.js} +3 -3
- package/dist/{chunk-GSP2XIVS.js → chunk-XEOSSKIB.js} +1 -1
- package/dist/{chunk-DE5U6KOL.js → chunk-XZ2Q4UTW.js} +1 -1
- package/dist/{chunk-YQSYCBAH.js → chunk-YF3AY6KS.js} +6 -6
- package/dist/{chunk-GGKRA7A7.js → chunk-YQAFKOOL.js} +1 -1
- package/dist/{chunk-WWEVS7RO.js → chunk-ZOUJP3EY.js} +106 -80
- package/dist/{chunk-6WQCLCBO.js → chunk-ZRKFDE6M.js} +1 -1
- package/dist/{ci-workflow-ORZ4F45F.js → ci-workflow-JEYYCBOC.js} +2 -2
- package/dist/{dist-LHINSVK4.js → dist-3HW4LCHE.js} +15 -1
- package/dist/{docs-AU3DXFFO.js → docs-YRMW7UED.js} +3 -3
- package/dist/{engine-6GPWOYQH.js → engine-E7H5U3AC.js} +2 -2
- package/dist/{entropy-VLKDRMRT.js → entropy-3JBKCGJJ.js} +2 -2
- package/dist/{feedback-YXYY44ZC.js → feedback-U6VJ6AUJ.js} +1 -1
- package/dist/{generate-agent-definitions-XIHQPKG3.js → generate-agent-definitions-S2FRZF4Y.js} +3 -3
- package/dist/hooks/format-check.js +202 -0
- package/dist/hooks/quality-warner.js +32 -0
- package/dist/hooks/strict-quality-gate.js +48 -0
- package/dist/index.d.ts +8 -8
- package/dist/index.js +22 -22
- package/dist/{loader-YAN56MT3.js → loader-RGQJYERV.js} +2 -2
- package/dist/{mcp-RK3SFVYB.js → mcp-NDTFZXWF.js} +13 -13
- package/dist/{performance-64DPTLLQ.js → performance-FPWKC4CN.js} +3 -3
- package/dist/{review-pipeline-NENG6LW7.js → review-pipeline-WUHG7PHO.js} +2 -2
- package/dist/{runtime-FFIIRT2T.js → runtime-Q3ORD7LW.js} +2 -2
- package/dist/{security-3PIBN35B.js → security-JDHTRBGC.js} +1 -1
- package/dist/{validate-7IAF2ES3.js → validate-G3LKBOYA.js} +3 -3
- package/dist/{validate-cross-check-QPSAOZKD.js → validate-cross-check-4ITA72DF.js} +2 -2
- package/package.json +8 -8
- package/dist/hooks/quality-gate.js +0 -131
|
@@ -1505,6 +1505,7 @@ __export(dist_exports, {
|
|
|
1505
1505
|
assertPortUsable: () => assertPortUsable,
|
|
1506
1506
|
assertSanitized: () => assertSanitized,
|
|
1507
1507
|
assignFeature: () => assignFeature,
|
|
1508
|
+
assigneeInvariantHolds: () => assigneeInvariantHolds,
|
|
1508
1509
|
buildCiReviewVerdict: () => buildCiReviewVerdict,
|
|
1509
1510
|
buildDependencyGraph: () => buildDependencyGraph,
|
|
1510
1511
|
buildExclusionSet: () => buildExclusionSet,
|
|
@@ -1519,6 +1520,7 @@ __export(dist_exports, {
|
|
|
1519
1520
|
checkOverlap: () => checkOverlap,
|
|
1520
1521
|
checkRoadmapHealth: () => checkRoadmapHealth,
|
|
1521
1522
|
checkTaint: () => checkTaint,
|
|
1523
|
+
claim: () => claim,
|
|
1522
1524
|
classifyConfidence: () => classifyConfidence,
|
|
1523
1525
|
classifyFinding: () => classifyFinding,
|
|
1524
1526
|
clearEventHashCache: () => clearEventHashCache,
|
|
@@ -1639,8 +1641,10 @@ __export(dist_exports, {
|
|
|
1639
1641
|
insecureDefaultsRules: () => insecureDefaultsRules,
|
|
1640
1642
|
invalidateCheckState: () => invalidateCheckState,
|
|
1641
1643
|
isBadPort: () => isBadPort,
|
|
1644
|
+
isClaimableBy: () => isClaimableBy,
|
|
1642
1645
|
isDuplicateFinding: () => isDuplicateFinding,
|
|
1643
1646
|
isErr: () => isErr,
|
|
1647
|
+
isMachineAssignee: () => isMachineAssignee,
|
|
1644
1648
|
isOk: () => isOk,
|
|
1645
1649
|
isRegression: () => isRegression,
|
|
1646
1650
|
isSanitizedResult: () => isSanitizedResult,
|
|
@@ -1712,6 +1716,7 @@ __export(dist_exports, {
|
|
|
1712
1716
|
promoteSessionLearnings: () => promoteSessionLearnings,
|
|
1713
1717
|
proposalsDir: () => proposalsDir,
|
|
1714
1718
|
pruneLearnings: () => pruneLearnings,
|
|
1719
|
+
pushAssigneeToExternal: () => pushAssigneeToExternal,
|
|
1715
1720
|
reactRules: () => reactRules,
|
|
1716
1721
|
readAdoptionRecords: () => readAdoptionRecords,
|
|
1717
1722
|
readCheckState: () => readCheckState,
|
|
@@ -1723,6 +1728,7 @@ __export(dist_exports, {
|
|
|
1723
1728
|
readTaint: () => readTaint,
|
|
1724
1729
|
registerMockAdapter: () => registerMockAdapter,
|
|
1725
1730
|
registerPulseAdapter: () => registerPulseAdapter,
|
|
1731
|
+
release: () => release,
|
|
1726
1732
|
removeContributions: () => removeContributions,
|
|
1727
1733
|
removeProvenance: () => removeProvenance,
|
|
1728
1734
|
requestMultiplePeerReviews: () => requestMultiplePeerReviews,
|
|
@@ -1774,6 +1780,7 @@ __export(dist_exports, {
|
|
|
1774
1780
|
serializeRoadmap: () => serializeRoadmap,
|
|
1775
1781
|
serializeStrategyDoc: () => serializeStrategyDoc,
|
|
1776
1782
|
setActiveStream: () => setActiveStream,
|
|
1783
|
+
setStatus: () => setStatus,
|
|
1777
1784
|
sharpEdgesRules: () => sharpEdgesRules,
|
|
1778
1785
|
shouldRunCheck: () => shouldRunCheck,
|
|
1779
1786
|
spawnBackgroundCheck: () => spawnBackgroundCheck,
|
|
@@ -11702,6 +11709,61 @@ function resolveReverseStatus(externalStatus, labels, config) {
|
|
|
11702
11709
|
}
|
|
11703
11710
|
return null;
|
|
11704
11711
|
}
|
|
11712
|
+
function isMachineAssignee(assignee) {
|
|
11713
|
+
if (assignee === null) return false;
|
|
11714
|
+
return MACHINE_ASSIGNEE_PATTERNS.some((re) => re.test(assignee));
|
|
11715
|
+
}
|
|
11716
|
+
function assigneeInvariantHolds(feature) {
|
|
11717
|
+
return feature.assignee !== null === (feature.status === "in-progress");
|
|
11718
|
+
}
|
|
11719
|
+
function pushAssigneeToExternal(assignee) {
|
|
11720
|
+
return assignee !== null && !isMachineAssignee(assignee);
|
|
11721
|
+
}
|
|
11722
|
+
function pushUnassigned(roadmap, feature, prev, date) {
|
|
11723
|
+
roadmap.assignmentHistory.push({
|
|
11724
|
+
feature: feature.name,
|
|
11725
|
+
assignee: prev,
|
|
11726
|
+
action: "unassigned",
|
|
11727
|
+
date
|
|
11728
|
+
});
|
|
11729
|
+
}
|
|
11730
|
+
function isClaimableBy(feature, assignee) {
|
|
11731
|
+
return feature.assignee === null || feature.assignee === assignee;
|
|
11732
|
+
}
|
|
11733
|
+
function claim(roadmap, feature, assignee, date) {
|
|
11734
|
+
if (feature.status === "in-progress" && feature.assignee !== null && feature.assignee !== assignee) {
|
|
11735
|
+
return;
|
|
11736
|
+
}
|
|
11737
|
+
feature.status = "in-progress";
|
|
11738
|
+
if (feature.assignee === assignee) return;
|
|
11739
|
+
if (feature.assignee !== null) {
|
|
11740
|
+
pushUnassigned(roadmap, feature, feature.assignee, date);
|
|
11741
|
+
}
|
|
11742
|
+
feature.assignee = assignee;
|
|
11743
|
+
roadmap.assignmentHistory.push({
|
|
11744
|
+
feature: feature.name,
|
|
11745
|
+
assignee,
|
|
11746
|
+
action: "assigned",
|
|
11747
|
+
date
|
|
11748
|
+
});
|
|
11749
|
+
}
|
|
11750
|
+
function release(roadmap, feature, date) {
|
|
11751
|
+
if (feature.status === "in-progress") {
|
|
11752
|
+
feature.status = "planned";
|
|
11753
|
+
}
|
|
11754
|
+
if (feature.assignee === null) return;
|
|
11755
|
+
const prev = feature.assignee;
|
|
11756
|
+
feature.assignee = null;
|
|
11757
|
+
pushUnassigned(roadmap, feature, prev, date);
|
|
11758
|
+
}
|
|
11759
|
+
function setStatus(roadmap, feature, status, date) {
|
|
11760
|
+
feature.status = status;
|
|
11761
|
+
if (status !== "in-progress" && feature.assignee !== null) {
|
|
11762
|
+
const prev = feature.assignee;
|
|
11763
|
+
feature.assignee = null;
|
|
11764
|
+
pushUnassigned(roadmap, feature, prev, date);
|
|
11765
|
+
}
|
|
11766
|
+
}
|
|
11705
11767
|
function parseExternalId(externalId) {
|
|
11706
11768
|
const match = externalId.match(/^github:([^/]+)\/([^#]+)#(\d+)$/);
|
|
11707
11769
|
if (!match) return null;
|
|
@@ -11827,8 +11889,9 @@ async function syncToExternal(roadmap, adapter2, config, prefetchedTickets) {
|
|
|
11827
11889
|
}
|
|
11828
11890
|
return result;
|
|
11829
11891
|
}
|
|
11830
|
-
function applyTicketToFeature(ticketState, feature, config, forceSync, result) {
|
|
11831
|
-
|
|
11892
|
+
function applyTicketToFeature(roadmap, ticketState, feature, config, forceSync, result) {
|
|
11893
|
+
const localMachineClaim = isMachineAssignee(feature.assignee);
|
|
11894
|
+
if (!localMachineClaim && ticketState.assignee !== feature.assignee) {
|
|
11832
11895
|
result.assignmentChanges.push({
|
|
11833
11896
|
feature: feature.name,
|
|
11834
11897
|
from: feature.assignee,
|
|
@@ -11841,6 +11904,11 @@ function applyTicketToFeature(ticketState, feature, config, forceSync, result) {
|
|
|
11841
11904
|
const newStatus = resolvedStatus;
|
|
11842
11905
|
if (!forceSync && isRegression(feature.status, newStatus)) return;
|
|
11843
11906
|
if (!forceSync && feature.status === "blocked" && newStatus === "planned") return;
|
|
11907
|
+
const date = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
11908
|
+
if (localMachineClaim && newStatus !== "in-progress") {
|
|
11909
|
+
setStatus(roadmap, feature, newStatus, date);
|
|
11910
|
+
return;
|
|
11911
|
+
}
|
|
11844
11912
|
feature.status = newStatus;
|
|
11845
11913
|
}
|
|
11846
11914
|
async function syncFromExternal(roadmap, adapter2, config, options, prefetchedTickets) {
|
|
@@ -11869,7 +11937,7 @@ async function syncFromExternal(roadmap, adapter2, config, options, prefetchedTi
|
|
|
11869
11937
|
for (const ticketState of tickets) {
|
|
11870
11938
|
const feature = featureByExternalId.get(ticketState.externalId);
|
|
11871
11939
|
if (!feature) continue;
|
|
11872
|
-
applyTicketToFeature(ticketState, feature, config, forceSync, result);
|
|
11940
|
+
applyTicketToFeature(roadmap, ticketState, feature, config, forceSync, result);
|
|
11873
11941
|
}
|
|
11874
11942
|
return result;
|
|
11875
11943
|
}
|
|
@@ -12656,6 +12724,17 @@ function checkRoadmapHealth(roadmap, options) {
|
|
|
12656
12724
|
suggestion: `Link a spec/plan to make it actionable, or demote it to "backlog".`
|
|
12657
12725
|
});
|
|
12658
12726
|
}
|
|
12727
|
+
if (!assigneeInvariantHolds(feature)) {
|
|
12728
|
+
const orphaned = feature.status === "in-progress" && feature.assignee === null;
|
|
12729
|
+
findings.push({
|
|
12730
|
+
ruleId: "RMH005",
|
|
12731
|
+
severity: "error",
|
|
12732
|
+
milestone: milestone.name,
|
|
12733
|
+
feature: feature.name,
|
|
12734
|
+
message: orphaned ? `"${feature.name}" is "in-progress" with no assignee; an in-progress row must name who is executing it.` : `"${feature.name}" has assignee "${feature.assignee}" but status "${feature.status}"; an assignee means in-progress (set at execution start, cleared otherwise).`,
|
|
12735
|
+
suggestion: orphaned ? `Demote it to "planned" (or claim it) \u2014 run the roadmap skill's --groom mode.` : `Clear the assignee (or move it to "in-progress") \u2014 run the roadmap skill's --groom mode.`
|
|
12736
|
+
});
|
|
12737
|
+
}
|
|
12659
12738
|
}
|
|
12660
12739
|
}
|
|
12661
12740
|
return findings;
|
|
@@ -12680,6 +12759,23 @@ function groomRoadmap(roadmap, options) {
|
|
|
12680
12759
|
to: "backlog"
|
|
12681
12760
|
});
|
|
12682
12761
|
}
|
|
12762
|
+
if (feature.status !== "in-progress" && feature.assignee !== null) {
|
|
12763
|
+
changes.push({
|
|
12764
|
+
kind: "unassigned",
|
|
12765
|
+
feature: feature.name,
|
|
12766
|
+
from: milestone.name,
|
|
12767
|
+
to: feature.assignee
|
|
12768
|
+
});
|
|
12769
|
+
feature.assignee = null;
|
|
12770
|
+
} else if (feature.status === "in-progress" && feature.assignee === null) {
|
|
12771
|
+
feature.status = "planned";
|
|
12772
|
+
changes.push({
|
|
12773
|
+
kind: "demoted",
|
|
12774
|
+
feature: feature.name,
|
|
12775
|
+
from: milestone.name,
|
|
12776
|
+
to: "planned"
|
|
12777
|
+
});
|
|
12778
|
+
}
|
|
12683
12779
|
if (archiveDone && feature.status === "done" && !archive && !isIntake) {
|
|
12684
12780
|
archived.push(feature);
|
|
12685
12781
|
changes.push({
|
|
@@ -14111,7 +14207,7 @@ function acquireCompoundLock(category, opts = {}) {
|
|
|
14111
14207
|
fs46.writeSync(fd, String(process.pid));
|
|
14112
14208
|
fs46.closeSync(fd);
|
|
14113
14209
|
let released = false;
|
|
14114
|
-
const
|
|
14210
|
+
const release2 = () => {
|
|
14115
14211
|
if (released) return;
|
|
14116
14212
|
released = true;
|
|
14117
14213
|
try {
|
|
@@ -14123,13 +14219,13 @@ function acquireCompoundLock(category, opts = {}) {
|
|
|
14123
14219
|
process.removeListener("SIGTERM", onSignal);
|
|
14124
14220
|
process.removeListener("uncaughtException", onUncaught);
|
|
14125
14221
|
};
|
|
14126
|
-
const onExit = () =>
|
|
14222
|
+
const onExit = () => release2();
|
|
14127
14223
|
const onSignal = (sig) => {
|
|
14128
|
-
|
|
14224
|
+
release2();
|
|
14129
14225
|
process.kill(process.pid, sig);
|
|
14130
14226
|
};
|
|
14131
14227
|
const onUncaught = (err) => {
|
|
14132
|
-
|
|
14228
|
+
release2();
|
|
14133
14229
|
console.error(err && err.stack ? err.stack : err);
|
|
14134
14230
|
process.exit(1);
|
|
14135
14231
|
};
|
|
@@ -14137,7 +14233,7 @@ function acquireCompoundLock(category, opts = {}) {
|
|
|
14137
14233
|
process.once("SIGINT", onSignal);
|
|
14138
14234
|
process.once("SIGTERM", onSignal);
|
|
14139
14235
|
process.once("uncaughtException", onUncaught);
|
|
14140
|
-
return { category, lockPath, release };
|
|
14236
|
+
return { category, lockPath, release: release2 };
|
|
14141
14237
|
}
|
|
14142
14238
|
function readHolderPid(lockPath) {
|
|
14143
14239
|
try {
|
|
@@ -14852,7 +14948,7 @@ function writeStrategyDoc(doc, opts) {
|
|
|
14852
14948
|
throw e;
|
|
14853
14949
|
}
|
|
14854
14950
|
}
|
|
14855
|
-
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, 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, 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, StreamInfoSchema, StreamIndexSchema, DEFAULT_STREAM_INDEX, 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, EVENTS_FILE, STREAMS_DIR, STREAM_NAME_REGEX, branchCache, BRANCH_CACHE_TTL_MS, STATE_FILES, MAX_CACHE_ENTRIES, learningsCacheMap, WEIGHTS, LOCK_RETRIES, LOCK_BACKOFFS, PROMOTABLE_OUTCOMES, failuresCacheMap, FAILURE_LINE_REGEX, SAFE_GATE_COMMAND, SkillEventSchema, knownHashesCache, EVENT_FORMATTERS, 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_DASH2, STATUS_RANK, EM_DASH3, DEFAULT_MILESTONE, MAX_CLOSEST_MATCHES, 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, 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_SIGNAL_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;
|
|
14951
|
+
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, 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, 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, StreamInfoSchema, StreamIndexSchema, DEFAULT_STREAM_INDEX, 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, EVENTS_FILE, STREAMS_DIR, STREAM_NAME_REGEX, branchCache, BRANCH_CACHE_TTL_MS, STATE_FILES, MAX_CACHE_ENTRIES, learningsCacheMap, WEIGHTS, LOCK_RETRIES, LOCK_BACKOFFS, PROMOTABLE_OUTCOMES, failuresCacheMap, FAILURE_LINE_REGEX, SAFE_GATE_COMMAND, SkillEventSchema, knownHashesCache, EVENT_FORMATTERS, 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_DASH2, STATUS_RANK, EM_DASH3, DEFAULT_MILESTONE, MAX_CLOSEST_MATCHES, MACHINE_ASSIGNEE_PATTERNS, 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, 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_SIGNAL_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;
|
|
14856
14952
|
var init_dist3 = __esm({
|
|
14857
14953
|
"../core/dist/index.mjs"() {
|
|
14858
14954
|
init_chunk_FYTJQ2ZY();
|
|
@@ -19248,6 +19344,10 @@ var init_dist3 = __esm({
|
|
|
19248
19344
|
EM_DASH3 = "\u2014";
|
|
19249
19345
|
DEFAULT_MILESTONE = "Intake";
|
|
19250
19346
|
MAX_CLOSEST_MATCHES = 3;
|
|
19347
|
+
MACHINE_ASSIGNEE_PATTERNS = [
|
|
19348
|
+
/^orchestrator-[0-9a-f]{8}$/,
|
|
19349
|
+
/^[\w-]+-[0-9a-f]{8}$/
|
|
19350
|
+
];
|
|
19251
19351
|
RETRY_DEFAULTS = { maxRetries: 5, baseDelayMs: 1e3 };
|
|
19252
19352
|
GitHubIssuesSyncAdapter = class {
|
|
19253
19353
|
token;
|
|
@@ -19259,8 +19359,6 @@ var init_dist3 = __esm({
|
|
|
19259
19359
|
retryOpts;
|
|
19260
19360
|
/** Cached GitHub milestone name -> ID mapping */
|
|
19261
19361
|
milestoneCache = null;
|
|
19262
|
-
/** Cached authenticated user login (e.g., "@octocat") */
|
|
19263
|
-
authenticatedUserCache = null;
|
|
19264
19362
|
constructor(options) {
|
|
19265
19363
|
this.token = options.token;
|
|
19266
19364
|
this.config = options.config;
|
|
@@ -19311,41 +19409,20 @@ var init_dist3 = __esm({
|
|
|
19311
19409
|
cache.set(name, data.number);
|
|
19312
19410
|
return data.number;
|
|
19313
19411
|
}
|
|
19314
|
-
async getAuthenticatedUser() {
|
|
19315
|
-
if (this.authenticatedUserCache) return Ok(this.authenticatedUserCache);
|
|
19316
|
-
try {
|
|
19317
|
-
const response = await fetchWithRetry(
|
|
19318
|
-
this.fetchFn,
|
|
19319
|
-
`${this.apiBase}/user`,
|
|
19320
|
-
{ method: "GET", headers: this.headers() },
|
|
19321
|
-
this.retryOpts
|
|
19322
|
-
);
|
|
19323
|
-
if (!response.ok) {
|
|
19324
|
-
const text = await response.text();
|
|
19325
|
-
return Err(new Error(`GitHub API error ${response.status}: ${text}`));
|
|
19326
|
-
}
|
|
19327
|
-
const data = await response.json();
|
|
19328
|
-
this.authenticatedUserCache = `@${data.login}`;
|
|
19329
|
-
return Ok(this.authenticatedUserCache);
|
|
19330
|
-
} catch (error) {
|
|
19331
|
-
return Err(error instanceof Error ? error : new Error(String(error)));
|
|
19332
|
-
}
|
|
19333
|
-
}
|
|
19334
19412
|
/**
|
|
19335
|
-
* Resolve
|
|
19413
|
+
* Resolve a *human* assignee value to a GitHub login.
|
|
19336
19414
|
* - "@username" → "username"
|
|
19337
19415
|
* - "username" (no @) → "username"
|
|
19338
|
-
*
|
|
19339
|
-
*
|
|
19340
|
-
*
|
|
19416
|
+
*
|
|
19417
|
+
* Machine (orchestrator) ids are NOT GitHub logins and must never reach the
|
|
19418
|
+
* issue `assignee` field — callers gate on `pushAssigneeToExternal` before
|
|
19419
|
+
* calling this, so a machine id should not arrive here. As defense in depth
|
|
19420
|
+
* this returns `null` for one (rather than laundering it to the authenticated
|
|
19421
|
+
* user, the original bug that made machine claims look human-owned).
|
|
19341
19422
|
*/
|
|
19342
|
-
|
|
19423
|
+
resolveAssigneeLogin(assignee) {
|
|
19424
|
+
if (!pushAssigneeToExternal(assignee)) return null;
|
|
19343
19425
|
if (assignee.startsWith("@")) return assignee.slice(1);
|
|
19344
|
-
if (/^orchestrator-[0-9a-f]{8}$/.test(assignee) || /^[\w-]+-[0-9a-f]{8}$/.test(assignee)) {
|
|
19345
|
-
const userResult = await this.getAuthenticatedUser();
|
|
19346
|
-
if (userResult.ok) return userResult.value.replace(/^@/, "");
|
|
19347
|
-
return null;
|
|
19348
|
-
}
|
|
19349
19426
|
return assignee;
|
|
19350
19427
|
}
|
|
19351
19428
|
headers() {
|
|
@@ -19382,8 +19459,8 @@ var init_dist3 = __esm({
|
|
|
19382
19459
|
type: "Feature"
|
|
19383
19460
|
};
|
|
19384
19461
|
if (milestoneId) issuePayload.milestone = milestoneId;
|
|
19385
|
-
if (feature.assignee) {
|
|
19386
|
-
const login =
|
|
19462
|
+
if (feature.assignee && pushAssigneeToExternal(feature.assignee)) {
|
|
19463
|
+
const login = this.resolveAssigneeLogin(feature.assignee);
|
|
19387
19464
|
if (login) {
|
|
19388
19465
|
issuePayload.assignees = [login];
|
|
19389
19466
|
}
|
|
@@ -19423,9 +19500,11 @@ var init_dist3 = __esm({
|
|
|
19423
19500
|
}
|
|
19424
19501
|
if (changes.assignee !== void 0) {
|
|
19425
19502
|
if (changes.assignee) {
|
|
19426
|
-
|
|
19427
|
-
|
|
19428
|
-
|
|
19503
|
+
if (pushAssigneeToExternal(changes.assignee)) {
|
|
19504
|
+
const login = this.resolveAssigneeLogin(changes.assignee);
|
|
19505
|
+
if (login) {
|
|
19506
|
+
patch.assignees = [login];
|
|
19507
|
+
}
|
|
19429
19508
|
}
|
|
19430
19509
|
} else {
|
|
19431
19510
|
patch.assignees = [];
|
|
@@ -21618,6 +21697,13 @@ export {
|
|
|
21618
21697
|
decidePromotionForRow,
|
|
21619
21698
|
promoteFeature,
|
|
21620
21699
|
resolveReverseStatus,
|
|
21700
|
+
isMachineAssignee,
|
|
21701
|
+
assigneeInvariantHolds,
|
|
21702
|
+
pushAssigneeToExternal,
|
|
21703
|
+
isClaimableBy,
|
|
21704
|
+
claim,
|
|
21705
|
+
release,
|
|
21706
|
+
setStatus,
|
|
21621
21707
|
GitHubIssuesSyncAdapter,
|
|
21622
21708
|
loadTrackerSyncConfig,
|
|
21623
21709
|
syncToExternal,
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
init_dist,
|
|
6
6
|
paginate
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-A65QO5KN.js";
|
|
8
8
|
|
|
9
9
|
// src/mcp/tools/review-pipeline.ts
|
|
10
10
|
init_dist();
|
|
@@ -84,7 +84,7 @@ var runCodeReviewDefinition = {
|
|
|
84
84
|
};
|
|
85
85
|
async function handleRunCodeReview(input) {
|
|
86
86
|
try {
|
|
87
|
-
const { parseDiff, runReviewPipeline } = await import("./dist-
|
|
87
|
+
const { parseDiff, runReviewPipeline } = await import("./dist-3HW4LCHE.js");
|
|
88
88
|
const parseResult = parseDiff(input.diff);
|
|
89
89
|
if (!parseResult.ok) {
|
|
90
90
|
return {
|
|
@@ -27,7 +27,7 @@ var runSecurityScanDefinition = {
|
|
|
27
27
|
};
|
|
28
28
|
async function handleRunSecurityScan(input) {
|
|
29
29
|
try {
|
|
30
|
-
const core = await import("./dist-
|
|
30
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
31
31
|
const projectRoot = sanitizePath(input.path);
|
|
32
32
|
let configData = {};
|
|
33
33
|
try {
|
|
@@ -114,7 +114,7 @@ var getSecurityTrendsDefinition = {
|
|
|
114
114
|
};
|
|
115
115
|
async function handleGetSecurityTrends(input) {
|
|
116
116
|
try {
|
|
117
|
-
const core = await import("./dist-
|
|
117
|
+
const core = await import("./dist-3HW4LCHE.js");
|
|
118
118
|
const projectRoot = sanitizePath(input.path);
|
|
119
119
|
const manager = new core.SecurityTimelineManager(projectRoot);
|
|
120
120
|
const trendOptions = {};
|
|
@@ -33,7 +33,7 @@ var createSelfReviewDefinition = {
|
|
|
33
33
|
};
|
|
34
34
|
async function handleCreateSelfReview(input) {
|
|
35
35
|
try {
|
|
36
|
-
const { parseDiff, createSelfReview } = await import("./dist-
|
|
36
|
+
const { parseDiff, createSelfReview } = await import("./dist-3HW4LCHE.js");
|
|
37
37
|
const parseResult = parseDiff(input.diff);
|
|
38
38
|
if (!parseResult.ok) {
|
|
39
39
|
return resultToMcpResponse(parseResult);
|
|
@@ -119,7 +119,7 @@ var analyzeDiffDefinition = {
|
|
|
119
119
|
};
|
|
120
120
|
async function handleAnalyzeDiff(input) {
|
|
121
121
|
try {
|
|
122
|
-
const { parseDiff, analyzeDiff } = await import("./dist-
|
|
122
|
+
const { parseDiff, analyzeDiff } = await import("./dist-3HW4LCHE.js");
|
|
123
123
|
const parseResult = parseDiff(input.diff);
|
|
124
124
|
if (!parseResult.ok) {
|
|
125
125
|
return resultToMcpResponse(parseResult);
|
|
@@ -195,7 +195,7 @@ var requestPeerReviewDefinition = {
|
|
|
195
195
|
};
|
|
196
196
|
async function handleRequestPeerReview(input) {
|
|
197
197
|
try {
|
|
198
|
-
const { parseDiff, requestPeerReview } = await import("./dist-
|
|
198
|
+
const { parseDiff, requestPeerReview } = await import("./dist-3HW4LCHE.js");
|
|
199
199
|
const parseResult = parseDiff(input.diff);
|
|
200
200
|
if (!parseResult.ok) {
|
|
201
201
|
return resultToMcpResponse(parseResult);
|