opencode-swarm 7.129.4 → 7.130.1
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/.opencode/skills/swarm-pr-review/SKILL.md +75 -26
- package/dist/background/pr-monitor-worker.d.ts +19 -0
- package/dist/cli/{config-doctor-2admdwc2.js → config-doctor-489wej17.js} +2 -2
- package/dist/cli/{curation-policy-s08pg90f.js → curation-policy-aaz0hap6.js} +2 -2
- package/dist/cli/{curator-6ggzktne.js → curator-by14m5fc.js} +12 -12
- package/dist/cli/{curator-llm-factory-w6ep20tm.js → curator-llm-factory-7rz7mvcr.js} +12 -12
- package/dist/cli/{guardrail-explain-0gr9wkj0.js → guardrail-explain-mvct2n9f.js} +13 -13
- package/dist/cli/{guardrail-log-7cychbgs.js → guardrail-log-2cejc33f.js} +3 -3
- package/dist/cli/{hive-promoter-4x3470c9.js → hive-promoter-trezcyrd.js} +12 -12
- package/dist/cli/{index-mgz9nm4a.js → index-3rnkyb60.js} +5 -5
- package/dist/cli/{index-jke1z4f2.js → index-4qrbvrz5.js} +41 -38
- package/dist/cli/{index-7ttstfv6.js → index-5xxgeksy.js} +9 -0
- package/dist/cli/{index-nbdge8b6.js → index-agte9w1e.js} +2 -2
- package/dist/cli/{index-v4n224r1.js → index-hjar4crm.js} +1 -1
- package/dist/cli/{index-hn1dxcr3.js → index-j0py44fv.js} +2 -2
- package/dist/cli/{index-8fy8q1px.js → index-jvyn76xe.js} +3 -3
- package/dist/cli/{index-bz814zsm.js → index-jxha73tm.js} +1 -1
- package/dist/cli/{index-yxz0c97p.js → index-nr5pr54q.js} +1 -1
- package/dist/cli/{index-cpssctv1.js → index-p6qgjkbt.js} +1 -1
- package/dist/cli/{index-hbbj7ktj.js → index-s8h2cedv.js} +1 -1
- package/dist/cli/{index-n08cksd6.js → index-ts9wh1ba.js} +4 -4
- package/dist/cli/{index-x7wt1g4w.js → index-wy3q73j2.js} +2 -2
- package/dist/cli/{index-nhexgq4a.js → index-xa29259t.js} +1 -1
- package/dist/cli/{index-803bqrzq.js → index-xdx5b4s1.js} +14 -14
- package/dist/cli/{index-8etcyr9r.js → index-zft4hp35.js} +1 -1
- package/dist/cli/index.js +12 -12
- package/dist/cli/{knowledge-escalator-jjyn29ht.js → knowledge-escalator-1ypz0266.js} +3 -3
- package/dist/cli/{knowledge-events-f75n3916.js → knowledge-events-yvcczmja.js} +1 -1
- package/dist/cli/{knowledge-store-7sahm702.js → knowledge-store-h8bp9eje.js} +1 -1
- package/dist/cli/{knowledge-validator-rjwvafv3.js → knowledge-validator-sz9v1fdq.js} +4 -4
- package/dist/cli/{scan-cursor-518rhxyd.js → scan-cursor-k9zyt374.js} +2 -2
- package/dist/cli/{schema-2x7wsb0n.js → schema-fkpn2r1s.js} +1 -1
- package/dist/cli/{skill-generator-hk6mc7pc.js → skill-generator-a6a9jxfd.js} +5 -5
- package/dist/config/schema.d.ts +2 -0
- package/dist/hooks/pr-workflow-gate.d.ts +9 -0
- package/dist/hooks/pr-workflow-response-gate.d.ts +29 -6
- package/dist/index.js +47 -43
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/manifest.d.ts +1 -0
- package/dist/tools/pr-workflow-status.d.ts +28 -0
- package/dist/tools/prepare-pr-workflow-checkout.d.ts +7 -1
- package/dist/tools/tool-metadata.d.ts +8 -0
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
readDoctorArtifact,
|
|
5
5
|
removeStraySwarmDir,
|
|
6
6
|
runConfigDoctor
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-p6qgjkbt.js";
|
|
8
8
|
import {
|
|
9
9
|
EvaluationTaskV1Schema,
|
|
10
10
|
GateAuditManifestV1Schema,
|
|
@@ -94,15 +94,15 @@ import {
|
|
|
94
94
|
retireSkill,
|
|
95
95
|
selectCandidateEntries,
|
|
96
96
|
syncBundledProjectSkillsIfMissingAsync
|
|
97
|
-
} from "./index-
|
|
97
|
+
} from "./index-jvyn76xe.js";
|
|
98
98
|
import {
|
|
99
99
|
readRecentEscalations
|
|
100
|
-
} from "./index-
|
|
100
|
+
} from "./index-3rnkyb60.js";
|
|
101
101
|
import {
|
|
102
102
|
alreadyCuratedThisGeneration,
|
|
103
103
|
claimNextScanBatch,
|
|
104
104
|
resolveCohortId
|
|
105
|
-
} from "./index-
|
|
105
|
+
} from "./index-s8h2cedv.js";
|
|
106
106
|
import {
|
|
107
107
|
CURATOR_INIT_PROMPT,
|
|
108
108
|
CURATOR_PHASE_PROMPT,
|
|
@@ -135,11 +135,11 @@ import {
|
|
|
135
135
|
validateActionability,
|
|
136
136
|
validateActionableFields,
|
|
137
137
|
validateLesson
|
|
138
|
-
} from "./index-
|
|
138
|
+
} from "./index-wy3q73j2.js";
|
|
139
139
|
import {
|
|
140
140
|
authorizeCuration,
|
|
141
141
|
buildConfigFingerprintInput
|
|
142
|
-
} from "./index-
|
|
142
|
+
} from "./index-xa29259t.js";
|
|
143
143
|
import {
|
|
144
144
|
cohortConfigFingerprint
|
|
145
145
|
} from "./index-rtry5xyf.js";
|
|
@@ -169,7 +169,7 @@ import {
|
|
|
169
169
|
transactFile,
|
|
170
170
|
transactKnowledge,
|
|
171
171
|
wordBigrams
|
|
172
|
-
} from "./index-
|
|
172
|
+
} from "./index-ts9wh1ba.js";
|
|
173
173
|
import {
|
|
174
174
|
MAX_EVENT_LOG_ENTRIES,
|
|
175
175
|
_internals,
|
|
@@ -179,7 +179,7 @@ import {
|
|
|
179
179
|
recordHiveKnowledgeEvent,
|
|
180
180
|
recordKnowledgeEvent,
|
|
181
181
|
resolveKnowledgeEventsPath
|
|
182
|
-
} from "./index-
|
|
182
|
+
} from "./index-jxha73tm.js";
|
|
183
183
|
import {
|
|
184
184
|
resolveHiveDataDir,
|
|
185
185
|
resolveHiveEventsPath,
|
|
@@ -201,7 +201,7 @@ import {
|
|
|
201
201
|
init_loader,
|
|
202
202
|
loadPluginConfig,
|
|
203
203
|
loadPluginConfigWithMeta
|
|
204
|
-
} from "./index-
|
|
204
|
+
} from "./index-nr5pr54q.js";
|
|
205
205
|
import {
|
|
206
206
|
RetrospectiveEvidenceSchema
|
|
207
207
|
} from "./index-k5jrywpr.js";
|
|
@@ -220,7 +220,7 @@ import {
|
|
|
220
220
|
init_schema,
|
|
221
221
|
init_tool_metadata,
|
|
222
222
|
stripKnownSwarmPrefix
|
|
223
|
-
} from "./index-
|
|
223
|
+
} from "./index-5xxgeksy.js";
|
|
224
224
|
import {
|
|
225
225
|
KNOWLEDGE_SCHEMA_VERSION,
|
|
226
226
|
OUTCOME_BLOCK_THRESHOLD,
|
|
@@ -652,7 +652,7 @@ async function assertCurrentCheckoutHead(directory, expectedHead) {
|
|
|
652
652
|
throw new Error(`BLOCKED: cannot resolve the current Git HEAD in "${directory}" to verify against PR head "${normalizedExpected}". ` + `This means Git could not resolve HEAD (the working directory may not be a Git repository, ` + `HEAD may be unborn, the commit object may be missing in a shallow clone, the Git binary may not be on PATH, ` + `or the bounded Git invocation may have timed out). ` + `Verify with: git -C "${directory}" rev-parse --verify HEAD^{commit}`);
|
|
653
653
|
}
|
|
654
654
|
if (currentHead.toLowerCase() !== normalizedExpected.toLowerCase()) {
|
|
655
|
-
throw new Error(`BLOCKED: current checkout HEAD "${currentHead}" does not match PR head "${normalizedExpected}" ` + `(working directory: "${directory}"). ` + `
|
|
655
|
+
throw new Error(`BLOCKED: current checkout HEAD "${currentHead}" does not match PR head "${normalizedExpected}" ` + `(working directory: "${directory}"). ` + `Run these bare, standalone commands from that directory: if the commit is not present locally, ` + `\`git fetch origin <pr-head-ref>\`; then \`git switch --detach ${normalizedExpected}\`. ` + `Do not prefix the switch with \`git -C\`; the read-only shell classifier refuses \`git -C ... switch\`.`);
|
|
656
656
|
}
|
|
657
657
|
return normalizedExpected;
|
|
658
658
|
}
|
|
@@ -736,6 +736,7 @@ var PR_REVIEW_READ_ONLY_TOOL_NAMES = new Set([
|
|
|
736
736
|
"codesearch",
|
|
737
737
|
"glob",
|
|
738
738
|
"grep",
|
|
739
|
+
"list",
|
|
739
740
|
"lsp",
|
|
740
741
|
"open",
|
|
741
742
|
"read",
|
|
@@ -743,6 +744,8 @@ var PR_REVIEW_READ_ONLY_TOOL_NAMES = new Set([
|
|
|
743
744
|
"skill",
|
|
744
745
|
"tree",
|
|
745
746
|
"view",
|
|
747
|
+
"web_fetch",
|
|
748
|
+
"web_search",
|
|
746
749
|
"webfetch",
|
|
747
750
|
"websearch"
|
|
748
751
|
]);
|
|
@@ -10796,7 +10799,7 @@ function handleSave(label, directory) {
|
|
|
10796
10799
|
let allowEmptyCommits = false;
|
|
10797
10800
|
try {
|
|
10798
10801
|
const { config } = loadPluginConfigWithMeta(directory);
|
|
10799
|
-
maxCheckpoints = config.checkpoint?.
|
|
10802
|
+
maxCheckpoints = config.checkpoint?.max_retention ?? maxCheckpoints;
|
|
10800
10803
|
allowEmptyCommits = config.checkpoint?.allow_empty_commits === true;
|
|
10801
10804
|
} catch {}
|
|
10802
10805
|
const log2 = readCheckpointLog(directory);
|
|
@@ -14271,7 +14274,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
|
|
|
14271
14274
|
}
|
|
14272
14275
|
if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
|
|
14273
14276
|
try {
|
|
14274
|
-
const skillModule = await import("./skill-generator-
|
|
14277
|
+
const skillModule = await import("./skill-generator-a6a9jxfd.js");
|
|
14275
14278
|
for (const cand of skillCandidates) {
|
|
14276
14279
|
if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
|
|
14277
14280
|
continue;
|
|
@@ -14608,7 +14611,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
|
|
|
14608
14611
|
} catch {}
|
|
14609
14612
|
}
|
|
14610
14613
|
if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
|
|
14611
|
-
const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-
|
|
14614
|
+
const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-1ypz0266.js");
|
|
14612
14615
|
for (const { id } of contradictedEntries) {
|
|
14613
14616
|
try {
|
|
14614
14617
|
await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
|
|
@@ -15407,7 +15410,7 @@ async function runCuratorPostMortem(directory, options = {}) {
|
|
|
15407
15410
|
warnings.push("Failed to collect knowledge summary.");
|
|
15408
15411
|
}
|
|
15409
15412
|
try {
|
|
15410
|
-
const { getScanStatus } = await import("./scan-cursor-
|
|
15413
|
+
const { getScanStatus } = await import("./scan-cursor-k9zyt374.js");
|
|
15411
15414
|
const scanStatus = await getScanStatus(directory);
|
|
15412
15415
|
if (scanStatus.remaining_estimate > 0) {
|
|
15413
15416
|
warnings.push(`Fair scan: reviewed ${knowledgeSummary.length} entries this sweep (generation ${scanStatus.generation}); ${scanStatus.remaining_estimate} more eligible entries will be visited in future curation sweeps.`);
|
|
@@ -15579,9 +15582,9 @@ var _internals19 = {
|
|
|
15579
15582
|
verifyPostMortemKnowledgeActions,
|
|
15580
15583
|
repairPostMortemActions,
|
|
15581
15584
|
loadDefaultKnowledgeConfig: async (directory) => {
|
|
15582
|
-
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-
|
|
15585
|
+
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-fkpn2r1s.js");
|
|
15583
15586
|
try {
|
|
15584
|
-
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-
|
|
15587
|
+
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-agte9w1e.js");
|
|
15585
15588
|
const loaded = loadPluginConfigWithMeta2(directory);
|
|
15586
15589
|
return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
|
|
15587
15590
|
} catch {
|
|
@@ -15589,11 +15592,11 @@ var _internals19 = {
|
|
|
15589
15592
|
}
|
|
15590
15593
|
},
|
|
15591
15594
|
applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
|
|
15592
|
-
const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-
|
|
15595
|
+
const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-by14m5fc.js");
|
|
15593
15596
|
return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
|
|
15594
15597
|
},
|
|
15595
15598
|
checkHivePromotions: async (entries, knowledgeConfig, directory) => {
|
|
15596
|
-
const { checkHivePromotions } = await import("./hive-promoter-
|
|
15599
|
+
const { checkHivePromotions } = await import("./hive-promoter-trezcyrd.js");
|
|
15597
15600
|
return checkHivePromotions(entries, knowledgeConfig, directory);
|
|
15598
15601
|
},
|
|
15599
15602
|
applyProposalTriage: async (directory, triage) => {
|
|
@@ -15602,7 +15605,7 @@ var _internals19 = {
|
|
|
15602
15605
|
activateProposal,
|
|
15603
15606
|
listSkills: listSkills2,
|
|
15604
15607
|
sanitizeSlug
|
|
15605
|
-
} = await import("./skill-generator-
|
|
15608
|
+
} = await import("./skill-generator-a6a9jxfd.js");
|
|
15606
15609
|
const result = {
|
|
15607
15610
|
approved: [],
|
|
15608
15611
|
rejected: [],
|
|
@@ -18124,9 +18127,9 @@ function hashContent(content) {
|
|
|
18124
18127
|
return createHash7("sha1").update(content).digest("hex");
|
|
18125
18128
|
}
|
|
18126
18129
|
async function loadConfigForPolicyCurator(directory) {
|
|
18127
|
-
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-
|
|
18130
|
+
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-fkpn2r1s.js");
|
|
18128
18131
|
try {
|
|
18129
|
-
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-
|
|
18132
|
+
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-agte9w1e.js");
|
|
18130
18133
|
const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
|
|
18131
18134
|
return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
|
|
18132
18135
|
} catch {
|
|
@@ -21328,7 +21331,7 @@ async function runFinalizeStage(ctx) {
|
|
|
21328
21331
|
}
|
|
21329
21332
|
}
|
|
21330
21333
|
try {
|
|
21331
|
-
const { CuratorConfigSchema: CCS } = await import("./schema-
|
|
21334
|
+
const { CuratorConfigSchema: CCS } = await import("./schema-fkpn2r1s.js");
|
|
21332
21335
|
const { config: pmLoadedConfig } = _internals28.loadPluginConfigWithMeta(ctx.directory);
|
|
21333
21336
|
const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
|
|
21334
21337
|
if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
|
|
@@ -23497,9 +23500,9 @@ var _internals32 = {
|
|
|
23497
23500
|
readSwarmFileAsync,
|
|
23498
23501
|
loadCuratorDeps: async () => {
|
|
23499
23502
|
const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate: createCuratorLLMDelegate2 }] = await Promise.all([
|
|
23500
|
-
import("./schema-
|
|
23501
|
-
import("./curator-
|
|
23502
|
-
import("./curator-llm-factory-
|
|
23503
|
+
import("./schema-fkpn2r1s.js"),
|
|
23504
|
+
import("./curator-by14m5fc.js"),
|
|
23505
|
+
import("./curator-llm-factory-7rz7mvcr.js")
|
|
23503
23506
|
]);
|
|
23504
23507
|
return { CuratorConfigSchema, curator, createCuratorLLMDelegate: createCuratorLLMDelegate2 };
|
|
23505
23508
|
}
|
|
@@ -23998,7 +24001,7 @@ import { fileURLToPath } from "url";
|
|
|
23998
24001
|
// package.json
|
|
23999
24002
|
var package_default = {
|
|
24000
24003
|
name: "opencode-swarm",
|
|
24001
|
-
version: "7.
|
|
24004
|
+
version: "7.130.1",
|
|
24002
24005
|
description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
|
|
24003
24006
|
main: "dist/index.js",
|
|
24004
24007
|
types: "dist/index.d.ts",
|
|
@@ -24520,7 +24523,7 @@ async function computeCurationDiagnostics(directory, entries) {
|
|
|
24520
24523
|
let scanCompleted = false;
|
|
24521
24524
|
let scanRemaining = 0;
|
|
24522
24525
|
try {
|
|
24523
|
-
const { getScanStatus } = await import("./scan-cursor-
|
|
24526
|
+
const { getScanStatus } = await import("./scan-cursor-k9zyt374.js");
|
|
24524
24527
|
const status = await getScanStatus(directory);
|
|
24525
24528
|
scanGeneration = status.generation;
|
|
24526
24529
|
scanCompleted = status.completed;
|
|
@@ -24530,17 +24533,17 @@ async function computeCurationDiagnostics(directory, entries) {
|
|
|
24530
24533
|
try {
|
|
24531
24534
|
const { isLinked: isLinked2 } = await import("./knowledge-link-4yd2z8ev.js");
|
|
24532
24535
|
if (isLinked2(directory)) {
|
|
24533
|
-
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-
|
|
24536
|
+
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-fkpn2r1s.js");
|
|
24534
24537
|
let config;
|
|
24535
24538
|
try {
|
|
24536
|
-
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-
|
|
24539
|
+
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-agte9w1e.js");
|
|
24537
24540
|
const loaded = loadPluginConfigWithMeta2(directory);
|
|
24538
24541
|
config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
|
|
24539
24542
|
} catch {
|
|
24540
24543
|
config = KnowledgeConfigSchema2.parse({});
|
|
24541
24544
|
}
|
|
24542
24545
|
const { cohortConfigFingerprint: cohortConfigFingerprint2 } = await import("./config-fingerprint-v22xh5a2.js");
|
|
24543
|
-
const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-
|
|
24546
|
+
const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-aaz0hap6.js");
|
|
24544
24547
|
const currentFp = cohortConfigFingerprint2(buildConfigFingerprintInput2(config));
|
|
24545
24548
|
const cohortFp = await readCohortConfigFingerprint(directory);
|
|
24546
24549
|
configMatch = cohortFp === null ? null : currentFp === cohortFp;
|
|
@@ -25738,7 +25741,7 @@ async function handleDoctorCommand(directory, args) {
|
|
|
25738
25741
|
const result = runConfigDoctor(config, directory);
|
|
25739
25742
|
let output;
|
|
25740
25743
|
if (enableAutoFix && result.hasAutoFixableIssues) {
|
|
25741
|
-
const { runConfigDoctorWithFixes } = await import("./config-doctor-
|
|
25744
|
+
const { runConfigDoctorWithFixes } = await import("./config-doctor-489wej17.js");
|
|
25742
25745
|
const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
|
|
25743
25746
|
applyLossy: true
|
|
25744
25747
|
});
|
|
@@ -44390,7 +44393,7 @@ function buildDetailedHelp(commandName, entry) {
|
|
|
44390
44393
|
async function handleHelpCommand(ctx) {
|
|
44391
44394
|
const targetCommand = ctx.args.join(" ");
|
|
44392
44395
|
if (!targetCommand) {
|
|
44393
|
-
const { buildHelpText } = await import("./index-
|
|
44396
|
+
const { buildHelpText } = await import("./index-xdx5b4s1.js");
|
|
44394
44397
|
return buildHelpText();
|
|
44395
44398
|
}
|
|
44396
44399
|
const tokens = targetCommand.split(/\s+/);
|
|
@@ -44399,7 +44402,7 @@ async function handleHelpCommand(ctx) {
|
|
|
44399
44402
|
return _internals9.buildDetailedHelp(resolved.key, resolved.entry);
|
|
44400
44403
|
}
|
|
44401
44404
|
const similar = _internals9.findSimilarCommands(targetCommand);
|
|
44402
|
-
const { buildHelpText: fullHelp } = await import("./index-
|
|
44405
|
+
const { buildHelpText: fullHelp } = await import("./index-xdx5b4s1.js");
|
|
44403
44406
|
if (similar.length > 0) {
|
|
44404
44407
|
return `Command '/swarm ${targetCommand}' not found.
|
|
44405
44408
|
|
|
@@ -44538,7 +44541,7 @@ var COMMAND_REGISTRY = {
|
|
|
44538
44541
|
},
|
|
44539
44542
|
"guardrail explain": {
|
|
44540
44543
|
handler: async (ctx) => {
|
|
44541
|
-
const { handleGuardrailExplain } = await import("./guardrail-explain-
|
|
44544
|
+
const { handleGuardrailExplain } = await import("./guardrail-explain-mvct2n9f.js");
|
|
44542
44545
|
return handleGuardrailExplain(ctx.directory, ctx.args);
|
|
44543
44546
|
},
|
|
44544
44547
|
description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
|
|
@@ -44548,7 +44551,7 @@ var COMMAND_REGISTRY = {
|
|
|
44548
44551
|
},
|
|
44549
44552
|
"guardrail-explain": {
|
|
44550
44553
|
handler: async (ctx) => {
|
|
44551
|
-
const { handleGuardrailExplain } = await import("./guardrail-explain-
|
|
44554
|
+
const { handleGuardrailExplain } = await import("./guardrail-explain-mvct2n9f.js");
|
|
44552
44555
|
return handleGuardrailExplain(ctx.directory, ctx.args);
|
|
44553
44556
|
},
|
|
44554
44557
|
description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
|
|
@@ -44558,7 +44561,7 @@ var COMMAND_REGISTRY = {
|
|
|
44558
44561
|
},
|
|
44559
44562
|
"guardrail-log": {
|
|
44560
44563
|
handler: async (ctx) => {
|
|
44561
|
-
const { handleGuardrailLog } = await import("./guardrail-log-
|
|
44564
|
+
const { handleGuardrailLog } = await import("./guardrail-log-2cejc33f.js");
|
|
44562
44565
|
return handleGuardrailLog(ctx.directory, ctx.args);
|
|
44563
44566
|
},
|
|
44564
44567
|
description: "Read the guardrail decision log (use --blocks-only for blocks)",
|
|
@@ -46342,7 +46345,7 @@ HARD CONSTRAINTS (apply regardless of skill load success):
|
|
|
46342
46345
|
- Test execution, explorer lanes, reviewer dispatch, and critic challenge are all permitted within this mode
|
|
46343
46346
|
- Quality is the only metric \u2014 there is no speed, efficiency, or time exception; time, tokens, and agent dispatches are irrelevant to correctness
|
|
46344
46347
|
- FOLLOW THE SKILL EXACTLY: execute every phase of the loaded SKILL.md in order with no shortcuts, no phase-skipping, and no premature synthesis. If a required coverage phase cannot complete, apply the skill's coverage gate (retry or verified equivalent alternative). If the gap still cannot be closed, stop and surface the lane failure to the user as BLOCKED; do not produce a degraded review, partial verdict, or final synthesis.
|
|
46345
|
-
- CHECK OUT THE EXACT PR HEAD LOCALLY before dispatching explorer lanes: resolve the authoritative full PR head SHA, verify the working tree is clean (git status --porcelain), and if
|
|
46348
|
+
- CHECK OUT THE EXACT PR HEAD LOCALLY before dispatching explorer lanes: resolve the authoritative full PR head SHA, verify the working tree is clean (git status --porcelain), and if it is dirty call \`prepare_pr_workflow_checkout\` before checkout \u2014 either with no \`paths\` to auto-discover and preserve every dirty and untracked change in one auditable stash, or with an explicit exact dirty tracked path set. It returns the stash OID and recovery command; an already-clean tree is a no-op. Do NOT run \`git stash\` through shell. Then use standalone commands: fetch the PR head, verify \`git cat-file -e <full_pr_head_sha>^{commit}\`, run \`git switch --detach <full_pr_head_sha>\`, confirm HEAD equals that SHA, and bind it through the PR-review controller. Do not use \`--track FETCH_HEAD\`. Explorers read the working-tree filesystem (Read/Glob/Grep), so without this checkout they read the base branch and produce invalid candidates. Always pass the base..head commit range in explorer delegations.
|
|
46346
46349
|
- RUN ALL BASE LANES: the default PR_REVIEW path always launches exactly six repository-agnostic base check-type lanes from the skill. Use \`mode: "swarm-pr-review:base"\` and the exact six \`workflow_lane\` identifiers. The runtime rejects partial, duplicate, or mislabelled waves. Do not collapse, omit, or scale down the base lanes for a small, docs-only, or CI-only PR.
|
|
46347
46350
|
- RETRY STRUCTURALLY: retry only failed base obligations in later \`swarm-pr-review:base\` async batches with the same exact \`pr_head_sha\`. Blocking \`dispatch_lanes\` and direct Task explorer/reviewer/critic dispatch are not provenance-equivalent and are rejected.
|
|
46348
46351
|
- USE ASYNC DISPATCH WITHOUT IDLING: launch the base lanes with one \`dispatch_lanes_async\` call when available, record the \`batch_id\`, then keep doing non-dependent architect work while they run. Poll with \`collect_lane_results\` without \`wait\` (or \`wait: false\`) to process settled lanes and continue independent work between polls; use \`wait: true\` only as the final join when no independent work remains.
|
|
@@ -529,6 +529,14 @@ var init_tool_metadata = __esm(() => {
|
|
|
529
529
|
capability: "observe"
|
|
530
530
|
}
|
|
531
531
|
},
|
|
532
|
+
pr_workflow_status: {
|
|
533
|
+
description: "Read-only architect observation of local git state (HEAD, branch, clean/dirty with a bounded changed-file list, remotes) plus a session-pinned PR workflow gate summary. Use to observe state under the fail-closed PR_REVIEW/PR_FEEDBACK gate. Never executes PR-controlled scripts and never reads another session gate.",
|
|
534
|
+
agents: ["architect"],
|
|
535
|
+
prWorkflow: {
|
|
536
|
+
modes: ["PR_REVIEW", "PR_FEEDBACK"],
|
|
537
|
+
capability: "observe"
|
|
538
|
+
}
|
|
539
|
+
},
|
|
532
540
|
batch_symbols: {
|
|
533
541
|
description: "Batched symbol extraction across multiple files. Returns per-file symbol summaries with isolated error handling.",
|
|
534
542
|
agents: [
|
|
@@ -1714,6 +1722,7 @@ var init_schema = __esm(() => {
|
|
|
1714
1722
|
CheckpointConfigSchema = exports_external.preprocess(rejectCheckpointPrototypePollution, exports_external.object({
|
|
1715
1723
|
enabled: exports_external.boolean().default(true),
|
|
1716
1724
|
auto_checkpoint_threshold: exports_external.number().int().min(1).max(20).default(3),
|
|
1725
|
+
max_retention: exports_external.number().int().min(1).max(100).default(20),
|
|
1717
1726
|
allow_empty_commits: exports_external.boolean().default(false)
|
|
1718
1727
|
}).strict());
|
|
1719
1728
|
ApplyPatchConfigSchema = exports_external.object({
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
loadPluginConfigWithMeta,
|
|
8
8
|
loadPluginConfigWithMetaAsync,
|
|
9
9
|
resolveWorktreeIsolationConfig
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-nr5pr54q.js";
|
|
11
11
|
import {
|
|
12
12
|
ApprovalEvidenceSchema,
|
|
13
13
|
BaseEvidenceSchema,
|
|
@@ -59,7 +59,7 @@ import {
|
|
|
59
59
|
WorktreeIsolationConfigSchema,
|
|
60
60
|
isQAAgent,
|
|
61
61
|
isSubagent
|
|
62
|
-
} from "./index-
|
|
62
|
+
} from "./index-5xxgeksy.js";
|
|
63
63
|
import"./index-bk5tah7q.js";
|
|
64
64
|
import {
|
|
65
65
|
MigrationStatusSchema,
|
|
@@ -12,14 +12,14 @@ import {
|
|
|
12
12
|
detectPosixWrites,
|
|
13
13
|
detectWindowsWrites,
|
|
14
14
|
resolveWriteTargets
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-4qrbvrz5.js";
|
|
16
16
|
import {
|
|
17
17
|
checkFileAuthority,
|
|
18
18
|
classifyFile,
|
|
19
19
|
isInDeclaredScope,
|
|
20
20
|
redactPath,
|
|
21
21
|
redactShellCommand
|
|
22
|
-
} from "./index-
|
|
22
|
+
} from "./index-hjar4crm.js";
|
|
23
23
|
|
|
24
24
|
// src/services/guardrail-explain-service.ts
|
|
25
25
|
import path from "path";
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
import {
|
|
3
3
|
ALLOWED_SKILL_PATH_PREFIXES,
|
|
4
4
|
validateSkillPath
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-wy3q73j2.js";
|
|
6
6
|
import {
|
|
7
7
|
computeOutcomeSignal,
|
|
8
8
|
readKnowledge,
|
|
9
9
|
resolveHiveKnowledgePath,
|
|
10
10
|
resolveSwarmKnowledgePath,
|
|
11
11
|
transactKnowledge
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-ts9wh1ba.js";
|
|
13
13
|
import {
|
|
14
14
|
effectiveRetrievalOutcomes,
|
|
15
15
|
readKnowledgeCounterRollups
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-jxha73tm.js";
|
|
17
17
|
import {
|
|
18
18
|
init_knowledge_types,
|
|
19
19
|
isActiveStatus
|
|
@@ -608,7 +608,7 @@ async function applyKnowledgeVerdictFeedback(directory, options) {
|
|
|
608
608
|
deltas.push({ id, delta });
|
|
609
609
|
}
|
|
610
610
|
if (deltas.length > 0) {
|
|
611
|
-
const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-
|
|
611
|
+
const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-h8bp9eje.js");
|
|
612
612
|
await bumpKnowledgeConfidenceBatch(directory, deltas, options?.floorOptions);
|
|
613
613
|
}
|
|
614
614
|
return {
|
|
@@ -650,7 +650,7 @@ async function applyConfidenceFloorAction(directory, touched, options) {
|
|
|
650
650
|
const recovered = touched.filter((e) => e.confidence > CONFIDENCE_FLOOR + FLOOR_EPSILON && e.confidence_floor_demoted);
|
|
651
651
|
if (atFloor.length === 0 && recovered.length === 0)
|
|
652
652
|
return;
|
|
653
|
-
const { readKnowledgeCounterRollups, effectiveRetrievalOutcomes } = await import("./knowledge-events-
|
|
653
|
+
const { readKnowledgeCounterRollups, effectiveRetrievalOutcomes } = await import("./knowledge-events-yvcczmja.js");
|
|
654
654
|
const rollups = await readKnowledgeCounterRollups(directory);
|
|
655
655
|
const flagIds = new Set;
|
|
656
656
|
for (const e of atFloor) {
|
|
@@ -717,11 +717,11 @@ async function applyConfidenceFloorAction(directory, touched, options) {
|
|
|
717
717
|
});
|
|
718
718
|
}
|
|
719
719
|
if (action === "quarantine" && toQuarantine.length > 0) {
|
|
720
|
-
const { quarantineEntry } = await import("./knowledge-validator-
|
|
721
|
-
const { KnowledgeConfigSchema } = await import("./schema-
|
|
720
|
+
const { quarantineEntry } = await import("./knowledge-validator-sz9v1fdq.js");
|
|
721
|
+
const { KnowledgeConfigSchema } = await import("./schema-fkpn2r1s.js");
|
|
722
722
|
let config;
|
|
723
723
|
try {
|
|
724
|
-
const { loadPluginConfigWithMeta } = await import("./index-
|
|
724
|
+
const { loadPluginConfigWithMeta } = await import("./index-agte9w1e.js");
|
|
725
725
|
const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
|
|
726
726
|
config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
|
|
727
727
|
} catch {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
authorizeCuration
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-xa29259t.js";
|
|
5
5
|
import {
|
|
6
6
|
findNearDuplicate,
|
|
7
7
|
inferTags,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
resolveSwarmKnowledgePath,
|
|
10
10
|
resolveSwarmRejectedPath,
|
|
11
11
|
transactKnowledge
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-ts9wh1ba.js";
|
|
13
13
|
import {
|
|
14
14
|
resolveKnowledgeStoreDir
|
|
15
15
|
} from "./index-q27bajqb.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
handleGuardrailExplain
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-j0py44fv.js";
|
|
5
5
|
import {
|
|
6
6
|
handleGuardrailLog
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-zft4hp35.js";
|
|
8
8
|
import {
|
|
9
9
|
COMMAND_REGISTRY,
|
|
10
10
|
SWARM_COMMAND_TOOL_ALLOWLIST,
|
|
@@ -83,28 +83,28 @@ import {
|
|
|
83
83
|
handleWriteRetroCommand,
|
|
84
84
|
normalizeSwarmCommandInput,
|
|
85
85
|
resolveCommand
|
|
86
|
-
} from "./index-
|
|
87
|
-
import"./index-
|
|
88
|
-
import"./index-
|
|
86
|
+
} from "./index-4qrbvrz5.js";
|
|
87
|
+
import"./index-hjar4crm.js";
|
|
88
|
+
import"./index-p6qgjkbt.js";
|
|
89
89
|
import"./index-kzvwb2se.js";
|
|
90
90
|
import"./index-4905hd2m.js";
|
|
91
91
|
import"./index-134d35c1.js";
|
|
92
92
|
import"./index-9f71ye47.js";
|
|
93
|
-
import"./index-
|
|
94
|
-
import"./index-
|
|
95
|
-
import"./index-
|
|
93
|
+
import"./index-jvyn76xe.js";
|
|
94
|
+
import"./index-3rnkyb60.js";
|
|
95
|
+
import"./index-s8h2cedv.js";
|
|
96
96
|
import"./index-vxv732ex.js";
|
|
97
97
|
import"./index-c8s9a3zh.js";
|
|
98
98
|
import"./index-9ss2m4rs.js";
|
|
99
99
|
import"./index-g4mnf3p5.js";
|
|
100
|
-
import"./index-
|
|
101
|
-
import"./index-
|
|
100
|
+
import"./index-wy3q73j2.js";
|
|
101
|
+
import"./index-xa29259t.js";
|
|
102
102
|
import"./index-rtry5xyf.js";
|
|
103
|
-
import"./index-
|
|
104
|
-
import"./index-
|
|
103
|
+
import"./index-ts9wh1ba.js";
|
|
104
|
+
import"./index-jxha73tm.js";
|
|
105
105
|
import"./index-ae75rja9.js";
|
|
106
106
|
import"./index-q27bajqb.js";
|
|
107
|
-
import"./index-
|
|
107
|
+
import"./index-nr5pr54q.js";
|
|
108
108
|
import"./index-k5jrywpr.js";
|
|
109
109
|
import"./index-n832052r.js";
|
|
110
110
|
import {
|
|
@@ -113,7 +113,7 @@ import {
|
|
|
113
113
|
init_constants,
|
|
114
114
|
init_schema,
|
|
115
115
|
stripKnownSwarmPrefix
|
|
116
|
-
} from "./index-
|
|
116
|
+
} from "./index-5xxgeksy.js";
|
|
117
117
|
import"./index-bk5tah7q.js";
|
|
118
118
|
import"./index-8fwhhayc.js";
|
|
119
119
|
import"./index-q1exe2b3.js";
|
package/dist/cli/index.js
CHANGED
|
@@ -7,34 +7,34 @@ import {
|
|
|
7
7
|
getPluginLockFilePaths,
|
|
8
8
|
package_default,
|
|
9
9
|
resolveCommand
|
|
10
|
-
} from "./index-
|
|
11
|
-
import"./index-
|
|
12
|
-
import"./index-
|
|
10
|
+
} from "./index-4qrbvrz5.js";
|
|
11
|
+
import"./index-hjar4crm.js";
|
|
12
|
+
import"./index-p6qgjkbt.js";
|
|
13
13
|
import"./index-kzvwb2se.js";
|
|
14
14
|
import"./index-4905hd2m.js";
|
|
15
15
|
import"./index-134d35c1.js";
|
|
16
16
|
import"./index-9f71ye47.js";
|
|
17
|
-
import"./index-
|
|
18
|
-
import"./index-
|
|
19
|
-
import"./index-
|
|
17
|
+
import"./index-jvyn76xe.js";
|
|
18
|
+
import"./index-3rnkyb60.js";
|
|
19
|
+
import"./index-s8h2cedv.js";
|
|
20
20
|
import"./index-vxv732ex.js";
|
|
21
21
|
import"./index-c8s9a3zh.js";
|
|
22
22
|
import"./index-9ss2m4rs.js";
|
|
23
23
|
import"./index-g4mnf3p5.js";
|
|
24
|
-
import"./index-
|
|
25
|
-
import"./index-
|
|
24
|
+
import"./index-wy3q73j2.js";
|
|
25
|
+
import"./index-xa29259t.js";
|
|
26
26
|
import"./index-rtry5xyf.js";
|
|
27
|
-
import"./index-
|
|
28
|
-
import"./index-
|
|
27
|
+
import"./index-ts9wh1ba.js";
|
|
28
|
+
import"./index-jxha73tm.js";
|
|
29
29
|
import"./index-ae75rja9.js";
|
|
30
30
|
import"./index-q27bajqb.js";
|
|
31
|
-
import"./index-
|
|
31
|
+
import"./index-nr5pr54q.js";
|
|
32
32
|
import"./index-k5jrywpr.js";
|
|
33
33
|
import"./index-n832052r.js";
|
|
34
34
|
import {
|
|
35
35
|
DEFAULT_AGENT_CONFIGS,
|
|
36
36
|
init_constants
|
|
37
|
-
} from "./index-
|
|
37
|
+
} from "./index-5xxgeksy.js";
|
|
38
38
|
import"./index-bk5tah7q.js";
|
|
39
39
|
import"./index-8fwhhayc.js";
|
|
40
40
|
import"./index-q1exe2b3.js";
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
maybeEscalateOnViolation,
|
|
9
9
|
maybeQuarantineOnContradiction,
|
|
10
10
|
readRecentEscalations
|
|
11
|
-
} from "./index-
|
|
12
|
-
import"./index-
|
|
13
|
-
import"./index-
|
|
11
|
+
} from "./index-3rnkyb60.js";
|
|
12
|
+
import"./index-ts9wh1ba.js";
|
|
13
|
+
import"./index-jxha73tm.js";
|
|
14
14
|
import"./index-ae75rja9.js";
|
|
15
15
|
import"./index-q27bajqb.js";
|
|
16
16
|
import"./index-bk5tah7q.js";
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
resolveKnowledgeCounterBaselinePath,
|
|
27
27
|
resolveKnowledgeEventsPath,
|
|
28
28
|
resolveLegacyApplicationLogPath
|
|
29
|
-
} from "./index-
|
|
29
|
+
} from "./index-jxha73tm.js";
|
|
30
30
|
import"./index-ae75rja9.js";
|
|
31
31
|
import"./index-q27bajqb.js";
|
|
32
32
|
import"./index-zgwm4ryv.js";
|