opencode-swarm 7.126.5 → 7.126.6
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 +15 -0
- package/dist/cli/{curator-llm-factory-y24xw3j4.js → curator-llm-factory-ffseqhr4.js} +1 -1
- package/dist/cli/{curator-5crbtfm1.js → curator-zmff7bha.js} +1 -1
- package/dist/cli/{guardrail-explain-3r26pm2s.js → guardrail-explain-n4eyw2ak.js} +2 -2
- package/dist/cli/{hive-promoter-9d2g1xf3.js → hive-promoter-s60fcnq0.js} +1 -1
- package/dist/cli/{index-hczdkknj.js → index-8exjgmrz.js} +12 -12
- package/dist/cli/{index-0543dz3t.js → index-p3cksay8.js} +2 -2
- package/dist/cli/{index-0y19k18q.js → index-w3q49fy4.js} +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/hooks/pr-workflow-gate.d.ts +12 -1
- package/dist/index.js +4 -4
- package/package.json +1 -1
|
@@ -824,6 +824,21 @@ specialist review outside this canonical ledger, but supplementary work never
|
|
|
824
824
|
replaces these portable rows. The `unclassified-risk` lane always runs to cover
|
|
825
825
|
novel failure modes and classification gaps.
|
|
826
826
|
|
|
827
|
+
> **Trigger-ID namespace — do not mix (issue #1931).** The `trigger_id` field
|
|
828
|
+
> passed to `write_pr_review_trigger_eval` accepts **only** the 11 micro-lane
|
|
829
|
+
> IDs in the table below. Three different namespaces appear in this skill and
|
|
830
|
+
> they are NOT interchangeable:
|
|
831
|
+
>
|
|
832
|
+
> | Namespace | Example values | Used where? | Valid as `trigger_id`? |
|
|
833
|
+
> | --- | --- | --- | --- |
|
|
834
|
+
> | Micro-lane IDs (this table) | `auth-identity-secrets`, `untrusted-input-boundaries`, ... | `workflow_lane` of `swarm-pr-review:micro` dispatch; `trigger_id` of trigger-eval rows | **YES — only these** |
|
|
835
|
+
> | Base-lane IDs | `intent-architecture`, `correctness-state`, `tests-falsifiability`, `security-trust`, `reliability-performance`, `compatibility-delivery` | `workflow_lane` of `swarm-pr-review:base` dispatch; validated by `enforcePrReviewBaseDimensions` | NO |
|
|
836
|
+
> | Dispatch modes | `swarm-pr-review:base`, `swarm-pr-review:micro`, `swarm-pr-review:reviewer`, `swarm-pr-review:critic` | `mode` field of `dispatch_lanes_async` | NO |
|
|
837
|
+
>
|
|
838
|
+
> The writer rejects unknown trigger IDs with the list of valid IDs. Short
|
|
839
|
+
> informal names (`correctness`, `security`, `deps`, `docs`, `tests`, `perf`)
|
|
840
|
+
> sometimes appear in prose summaries; they are shorthand, not literal IDs.
|
|
841
|
+
|
|
827
842
|
| Trigger ID | Scope | Trigger in diff or context pack | Launch micro-lane | Invariants to check |
|
|
828
843
|
|---|---|---|---|---|
|
|
829
844
|
| `auth-identity-secrets` | universal | authentication, authorization, identity, sessions, permissions, secrets, cryptography | Identity and secret boundaries | least privilege, confused-deputy paths, credential lifecycle, cryptographic misuse, safe defaults |
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
handleGuardrailExplain
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
4
|
+
} from "./index-w3q49fy4.js";
|
|
5
|
+
import"./index-8exjgmrz.js";
|
|
6
6
|
import"./index-v4n224r1.js";
|
|
7
7
|
import"./index-cpssctv1.js";
|
|
8
8
|
import"./index-kk1scggc.js";
|
|
@@ -962,10 +962,10 @@ function assertCurrentCheckoutHead(directory, expectedHead) {
|
|
|
962
962
|
const normalizedExpected = normalizePrHeadSha(expectedHead);
|
|
963
963
|
const currentHead = _test_exports.resolveCurrentGitHead(directory)?.trim();
|
|
964
964
|
if (!currentHead) {
|
|
965
|
-
throw new Error(`BLOCKED: cannot
|
|
965
|
+
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}`);
|
|
966
966
|
}
|
|
967
967
|
if (currentHead.toLowerCase() !== normalizedExpected.toLowerCase()) {
|
|
968
|
-
throw new Error(`BLOCKED: current checkout HEAD "${currentHead}" does not match PR head "${normalizedExpected}"`);
|
|
968
|
+
throw new Error(`BLOCKED: current checkout HEAD "${currentHead}" does not match PR head "${normalizedExpected}" ` + `(working directory: "${directory}"). ` + `Check out the exact PR head with: git -C "${directory}" switch --detach ${normalizedExpected}`);
|
|
969
969
|
}
|
|
970
970
|
return normalizedExpected;
|
|
971
971
|
}
|
|
@@ -1010,7 +1010,7 @@ var _test_exports = {
|
|
|
1010
1010
|
async function requireAnyActiveState(directory, sessionID) {
|
|
1011
1011
|
const state = await readPrWorkflowGateState(directory, sessionID);
|
|
1012
1012
|
if (!state) {
|
|
1013
|
-
throw new Error(`BLOCKED: no active PR workflow gate for session "${normalizeSessionID(sessionID)}"`);
|
|
1013
|
+
throw new Error(`BLOCKED: no active PR workflow gate for session "${normalizeSessionID(sessionID)}". ` + `The gate is activated by running \`/swarm pr-review <pr-ref>\` (PR_REVIEW) or \`/swarm pr-feedback <pr-ref>\` (PR_FEEDBACK), ` + `or by the first dispatch_lanes_async call with mode "swarm-pr-review:*" / "swarm-pr-feedback:*".`);
|
|
1014
1014
|
}
|
|
1015
1015
|
return state;
|
|
1016
1016
|
}
|
|
@@ -12280,11 +12280,11 @@ var _internals15 = {
|
|
|
12280
12280
|
}
|
|
12281
12281
|
},
|
|
12282
12282
|
applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
|
|
12283
|
-
const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-
|
|
12283
|
+
const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-zmff7bha.js");
|
|
12284
12284
|
return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
|
|
12285
12285
|
},
|
|
12286
12286
|
checkHivePromotions: async (entries, knowledgeConfig, directory) => {
|
|
12287
|
-
const { checkHivePromotions } = await import("./hive-promoter-
|
|
12287
|
+
const { checkHivePromotions } = await import("./hive-promoter-s60fcnq0.js");
|
|
12288
12288
|
return checkHivePromotions(entries, knowledgeConfig, directory);
|
|
12289
12289
|
},
|
|
12290
12290
|
applyProposalTriage: async (directory, triage) => {
|
|
@@ -20151,8 +20151,8 @@ var _internals28 = {
|
|
|
20151
20151
|
loadCuratorDeps: async () => {
|
|
20152
20152
|
const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate: createCuratorLLMDelegate2 }] = await Promise.all([
|
|
20153
20153
|
import("./schema-2x7wsb0n.js"),
|
|
20154
|
-
import("./curator-
|
|
20155
|
-
import("./curator-llm-factory-
|
|
20154
|
+
import("./curator-zmff7bha.js"),
|
|
20155
|
+
import("./curator-llm-factory-ffseqhr4.js")
|
|
20156
20156
|
]);
|
|
20157
20157
|
return { CuratorConfigSchema, curator, createCuratorLLMDelegate: createCuratorLLMDelegate2 };
|
|
20158
20158
|
}
|
|
@@ -20651,7 +20651,7 @@ import { fileURLToPath } from "url";
|
|
|
20651
20651
|
// package.json
|
|
20652
20652
|
var package_default = {
|
|
20653
20653
|
name: "opencode-swarm",
|
|
20654
|
-
version: "7.126.
|
|
20654
|
+
version: "7.126.6",
|
|
20655
20655
|
description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
|
|
20656
20656
|
main: "dist/index.js",
|
|
20657
20657
|
types: "dist/index.d.ts",
|
|
@@ -41213,7 +41213,7 @@ function buildDetailedHelp(commandName, entry) {
|
|
|
41213
41213
|
async function handleHelpCommand(ctx) {
|
|
41214
41214
|
const targetCommand = ctx.args.join(" ");
|
|
41215
41215
|
if (!targetCommand) {
|
|
41216
|
-
const { buildHelpText } = await import("./index-
|
|
41216
|
+
const { buildHelpText } = await import("./index-p3cksay8.js");
|
|
41217
41217
|
return buildHelpText();
|
|
41218
41218
|
}
|
|
41219
41219
|
const tokens = targetCommand.split(/\s+/);
|
|
@@ -41222,7 +41222,7 @@ async function handleHelpCommand(ctx) {
|
|
|
41222
41222
|
return _internals63.buildDetailedHelp(resolved.key, resolved.entry);
|
|
41223
41223
|
}
|
|
41224
41224
|
const similar = _internals63.findSimilarCommands(targetCommand);
|
|
41225
|
-
const { buildHelpText: fullHelp } = await import("./index-
|
|
41225
|
+
const { buildHelpText: fullHelp } = await import("./index-p3cksay8.js");
|
|
41226
41226
|
if (similar.length > 0) {
|
|
41227
41227
|
return `Command '/swarm ${targetCommand}' not found.
|
|
41228
41228
|
|
|
@@ -41361,7 +41361,7 @@ var COMMAND_REGISTRY = {
|
|
|
41361
41361
|
},
|
|
41362
41362
|
"guardrail explain": {
|
|
41363
41363
|
handler: async (ctx) => {
|
|
41364
|
-
const { handleGuardrailExplain } = await import("./guardrail-explain-
|
|
41364
|
+
const { handleGuardrailExplain } = await import("./guardrail-explain-n4eyw2ak.js");
|
|
41365
41365
|
return handleGuardrailExplain(ctx.directory, ctx.args);
|
|
41366
41366
|
},
|
|
41367
41367
|
description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
|
|
@@ -41371,7 +41371,7 @@ var COMMAND_REGISTRY = {
|
|
|
41371
41371
|
},
|
|
41372
41372
|
"guardrail-explain": {
|
|
41373
41373
|
handler: async (ctx) => {
|
|
41374
|
-
const { handleGuardrailExplain } = await import("./guardrail-explain-
|
|
41374
|
+
const { handleGuardrailExplain } = await import("./guardrail-explain-n4eyw2ak.js");
|
|
41375
41375
|
return handleGuardrailExplain(ctx.directory, ctx.args);
|
|
41376
41376
|
},
|
|
41377
41377
|
description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
handleGuardrailExplain
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-w3q49fy4.js";
|
|
5
5
|
import {
|
|
6
6
|
handleGuardrailLog
|
|
7
7
|
} from "./index-8etcyr9r.js";
|
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
handleWriteRetroCommand,
|
|
84
84
|
normalizeSwarmCommandInput,
|
|
85
85
|
resolveCommand
|
|
86
|
-
} from "./index-
|
|
86
|
+
} from "./index-8exjgmrz.js";
|
|
87
87
|
import"./index-v4n224r1.js";
|
|
88
88
|
import"./index-cpssctv1.js";
|
|
89
89
|
import"./index-kk1scggc.js";
|
package/dist/cli/index.js
CHANGED
|
@@ -188,7 +188,18 @@ export declare function bindPrReviewBase(directory: string, sessionID: string, o
|
|
|
188
188
|
baseRef: string;
|
|
189
189
|
baseSha: string;
|
|
190
190
|
}): Promise<PrWorkflowGateState>;
|
|
191
|
-
/**
|
|
191
|
+
/**
|
|
192
|
+
* Prove that caller-provided PR identity equals the actual checked-out commit.
|
|
193
|
+
*
|
|
194
|
+
* Two distinct failure modes are reported with separate, diagnostic-rich
|
|
195
|
+
* messages (issue #1931): a null HEAD means Git could not resolve HEAD at all
|
|
196
|
+
* (the directory may not be a repository, HEAD may be unborn, the commit may
|
|
197
|
+
* be missing from a shallow clone, the `git` binary may not be on PATH, or
|
|
198
|
+
* the bounded Git invocation may have timed out); a non-matching HEAD means
|
|
199
|
+
* a different commit is checked out. Both messages name `directory` and the
|
|
200
|
+
* exact remediation command so callers can self-diagnose instead of
|
|
201
|
+
* cascading into fictional root causes.
|
|
202
|
+
*/
|
|
192
203
|
export declare function assertCurrentCheckoutHead(directory: string, expectedHead: string): string;
|
|
193
204
|
/** Prove that every PR-review lane reads the immutable checked-out PR tree. */
|
|
194
205
|
export declare function assertPrReviewCleanCheckout(directory: string, mode?: PrWorkflowMode): void;
|