opencode-swarm 7.125.3 → 7.125.4

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.
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  createCuratorLLMDelegate
4
- } from "./index-m5e00g9s.js";
4
+ } from "./index-7xg876np.js";
5
5
  import"./index-xezv6tdw.js";
6
6
  import"./index-pk099nqv.js";
7
7
  import"./index-kk1scggc.js";
@@ -14,7 +14,7 @@ import {
14
14
  runCuratorInit,
15
15
  runCuratorPhase,
16
16
  writeCuratorSummary
17
- } from "./index-m5e00g9s.js";
17
+ } from "./index-7xg876np.js";
18
18
  import"./index-xezv6tdw.js";
19
19
  import"./index-pk099nqv.js";
20
20
  import"./index-kk1scggc.js";
@@ -1,8 +1,8 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-x8entmky.js";
5
- import"./index-m5e00g9s.js";
4
+ } from "./index-jkwyjr8x.js";
5
+ import"./index-7xg876np.js";
6
6
  import"./index-xezv6tdw.js";
7
7
  import"./index-pk099nqv.js";
8
8
  import"./index-kk1scggc.js";
@@ -7,7 +7,7 @@ import {
7
7
  isHiveEligible,
8
8
  promoteFromSwarm,
9
9
  promoteToHive
10
- } from "./index-m5e00g9s.js";
10
+ } from "./index-7xg876np.js";
11
11
  import"./index-xezv6tdw.js";
12
12
  import"./index-pk099nqv.js";
13
13
  import"./index-kk1scggc.js";
@@ -12133,11 +12133,11 @@ var _internals15 = {
12133
12133
  }
12134
12134
  },
12135
12135
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
12136
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-arwm18td.js");
12136
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-n6whbm4r.js");
12137
12137
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
12138
12138
  },
12139
12139
  checkHivePromotions: async (entries, knowledgeConfig, directory) => {
12140
- const { checkHivePromotions } = await import("./hive-promoter-q79naynh.js");
12140
+ const { checkHivePromotions } = await import("./hive-promoter-mpjq0fw9.js");
12141
12141
  return checkHivePromotions(entries, knowledgeConfig, directory);
12142
12142
  },
12143
12143
  applyProposalTriage: async (directory, triage) => {
@@ -20004,8 +20004,8 @@ var _internals28 = {
20004
20004
  loadCuratorDeps: async () => {
20005
20005
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate: createCuratorLLMDelegate2 }] = await Promise.all([
20006
20006
  import("./schema-bw68my66.js"),
20007
- import("./curator-arwm18td.js"),
20008
- import("./curator-llm-factory-yq5vf298.js")
20007
+ import("./curator-n6whbm4r.js"),
20008
+ import("./curator-llm-factory-0hncnz9t.js")
20009
20009
  ]);
20010
20010
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate: createCuratorLLMDelegate2 };
20011
20011
  }
@@ -20504,7 +20504,7 @@ import { fileURLToPath } from "url";
20504
20504
  // package.json
20505
20505
  var package_default = {
20506
20506
  name: "opencode-swarm",
20507
- version: "7.125.3",
20507
+ version: "7.125.4",
20508
20508
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
20509
20509
  main: "dist/index.js",
20510
20510
  types: "dist/index.d.ts",
@@ -28574,6 +28574,12 @@ function serializeAgentSession(s) {
28574
28574
  },
28575
28575
  ...s.cachedCohortId !== undefined && {
28576
28576
  cachedCohortId: s.cachedCohortId
28577
+ },
28578
+ ...s.lastObservedModel !== undefined && {
28579
+ lastObservedModel: s.lastObservedModel
28580
+ },
28581
+ ...s.lastObservedProviderID !== undefined && {
28582
+ lastObservedProviderID: s.lastObservedProviderID
28577
28583
  }
28578
28584
  };
28579
28585
  }
@@ -41010,7 +41016,7 @@ function buildDetailedHelp(commandName, entry) {
41010
41016
  async function handleHelpCommand(ctx) {
41011
41017
  const targetCommand = ctx.args.join(" ");
41012
41018
  if (!targetCommand) {
41013
- const { buildHelpText } = await import("./index-7p6jkkat.js");
41019
+ const { buildHelpText } = await import("./index-hr2kzcem.js");
41014
41020
  return buildHelpText();
41015
41021
  }
41016
41022
  const tokens = targetCommand.split(/\s+/);
@@ -41019,7 +41025,7 @@ async function handleHelpCommand(ctx) {
41019
41025
  return _internals62.buildDetailedHelp(resolved.key, resolved.entry);
41020
41026
  }
41021
41027
  const similar = _internals62.findSimilarCommands(targetCommand);
41022
- const { buildHelpText: fullHelp } = await import("./index-7p6jkkat.js");
41028
+ const { buildHelpText: fullHelp } = await import("./index-hr2kzcem.js");
41023
41029
  if (similar.length > 0) {
41024
41030
  return `Command '/swarm ${targetCommand}' not found.
41025
41031
 
@@ -41158,7 +41164,7 @@ var COMMAND_REGISTRY = {
41158
41164
  },
41159
41165
  "guardrail explain": {
41160
41166
  handler: async (ctx) => {
41161
- const { handleGuardrailExplain } = await import("./guardrail-explain-mscq3veq.js");
41167
+ const { handleGuardrailExplain } = await import("./guardrail-explain-8gknrsbb.js");
41162
41168
  return handleGuardrailExplain(ctx.directory, ctx.args);
41163
41169
  },
41164
41170
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -41168,7 +41174,7 @@ var COMMAND_REGISTRY = {
41168
41174
  },
41169
41175
  "guardrail-explain": {
41170
41176
  handler: async (ctx) => {
41171
- const { handleGuardrailExplain } = await import("./guardrail-explain-mscq3veq.js");
41177
+ const { handleGuardrailExplain } = await import("./guardrail-explain-8gknrsbb.js");
41172
41178
  return handleGuardrailExplain(ctx.directory, ctx.args);
41173
41179
  },
41174
41180
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -44447,6 +44453,17 @@ init_constants();
44447
44453
  init_schema();
44448
44454
  init_logger();
44449
44455
 
44456
+ // src/utils/provider-error-classification.ts
44457
+ var TRANSIENT_STATUS_CODES = new Set([
44458
+ 408,
44459
+ 429,
44460
+ 500,
44461
+ 502,
44462
+ 503,
44463
+ 504,
44464
+ 529
44465
+ ]);
44466
+
44450
44467
  // src/hooks/guardrails/destructive-command.ts
44451
44468
  import * as fsSync3 from "fs";
44452
44469
  import * as path83 from "path";
@@ -44788,9 +44805,6 @@ init_schema();
44788
44805
  // src/hooks/model-limits.ts
44789
44806
  var loggedFirstCalls = new Set;
44790
44807
 
44791
- // src/hooks/guardrails/messages-transform.ts
44792
- var TRANSIENT_STATUS_CODES = new Set([408, 429, 500, 502, 503, 504, 529]);
44793
-
44794
44808
  // src/hooks/guardrails/nontransient-circuit.ts
44795
44809
  init_schema();
44796
44810
  var IMMEDIATE_HARD_STOP_CATEGORIES = new Set([
@@ -45552,9 +45566,9 @@ function detectInterpreterEval(cmd) {
45552
45566
  return [];
45553
45567
  const suffixWords = getSuffixWords(cmd);
45554
45568
  const evalFlags = {
45555
- python: ["-c", "-m"],
45556
- python3: ["-c", "-m"],
45557
- python2: ["-c", "-m"],
45569
+ python: ["-c"],
45570
+ python3: ["-c"],
45571
+ python2: ["-c"],
45558
45572
  node: ["-e", "-p", "-pe"],
45559
45573
  bun: ["-e", "-p", "-pe"],
45560
45574
  ruby: ["-e"],
@@ -46497,7 +46511,6 @@ var SPEC_DRIFT_BLOCKED_TOOLS = new Set([
46497
46511
  "lean_turbo_run_phase",
46498
46512
  "lean_turbo_acquire_locks"
46499
46513
  ]);
46500
- var TRANSIENT_STATUS_CODES2 = new Set([408, 429, 500, 502, 503, 504, 529]);
46501
46514
  var toolCallsSinceLastWrite = new Map;
46502
46515
  var noOpWarningIssued = new Set;
46503
46516
  // src/hooks/delegation-gate.ts
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-x8entmky.js";
4
+ } from "./index-jkwyjr8x.js";
5
5
  import {
6
6
  handleGuardrailLog
7
7
  } from "./index-4ycq2mrp.js";
@@ -83,7 +83,7 @@ import {
83
83
  handleWriteRetroCommand,
84
84
  normalizeSwarmCommandInput,
85
85
  resolveCommand
86
- } from "./index-m5e00g9s.js";
86
+ } from "./index-7xg876np.js";
87
87
  import"./index-xezv6tdw.js";
88
88
  import"./index-pk099nqv.js";
89
89
  import"./index-kk1scggc.js";
@@ -12,7 +12,7 @@ import {
12
12
  detectPosixWrites,
13
13
  detectWindowsWrites,
14
14
  resolveWriteTargets
15
- } from "./index-m5e00g9s.js";
15
+ } from "./index-7xg876np.js";
16
16
  import {
17
17
  checkFileAuthority,
18
18
  classifyFile,
package/dist/cli/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  getPluginLockFilePaths,
8
8
  package_default,
9
9
  resolveCommand
10
- } from "./index-m5e00g9s.js";
10
+ } from "./index-7xg876np.js";
11
11
  import"./index-xezv6tdw.js";
12
12
  import"./index-pk099nqv.js";
13
13
  import"./index-kk1scggc.js";
@@ -189,8 +189,42 @@ export declare function extractSpecRequirementBodyById(specText: string, id: str
189
189
  * fold is symmetric (both sides go through this one function), so it can only
190
190
  * REDUCE false-blocks — it never opens a bypass, since covered/uncovered still
191
191
  * differ by whole words, not punctuation.
192
+ *
193
+ * Issue #1896: encoding tolerance. Canonicalizes Unicode via NFC first (so a
194
+ * decomposed accent vs its composed form compare equal — same text, different
195
+ * byte encoding), and folds the section sign `§` (U+00A7) — and the common
196
+ * Latin-1 mojibake `§` a non-UTF-8 web save produces — to the spaced word token
197
+ * " section " so `§4.2`, `§ 4.2`, `§ 4.2`, and `section 4.2` all compare equal.
198
+ * Both additions are symmetric and information-preserving, so they can only
199
+ * reduce false-blocks. A literal `??` (U+003F run, from a save that DESTROYED the
200
+ * `§`) is NOT recoverable here — the coverage-miss diagnostic surfaces it instead.
192
201
  */
193
202
  export declare function normalizeAcceptanceText(s: string): string;
203
+ /**
204
+ * Issue #1896: bounded, diagnostic description of WHY an ACCEPTANCE text failed
205
+ * to cover a requirement body. The coverage check is a SUBSTRING match
206
+ * (`acceptance.includes(body)`), so "first divergence" is defined against the
207
+ * best-aligning window: the longest prefix of the normalized expected body that
208
+ * still appears as a substring of the normalized acceptance. `divergenceOffset`
209
+ * is the length of that matched prefix; the snippets show the expected text at
210
+ * the break and the acceptance text where the match ran out. All scans and
211
+ * snippets are capped so this stays O(1)-bounded on large spec bodies. When the
212
+ * raw (pre-normalization) text carries mojibake markers (a `??` run, U+FFFD, or a
213
+ * Latin-1 `Â`-prefixed byte), a corruption hint is attached — this is the signal
214
+ * that unblocks the destroyed-`§`-as-`??` case the diagnostic exists for.
215
+ */
216
+ export interface CoverageMissDiagnostic {
217
+ expectedSnippet: string;
218
+ foundSnippet: string;
219
+ divergenceOffset: number;
220
+ corruptionHint?: string;
221
+ }
222
+ export declare function describeCoverageMiss(params: {
223
+ rawExpectedBody: string;
224
+ rawAcceptanceText: string;
225
+ normalizedExpected: string;
226
+ normalizedAcceptance: string;
227
+ }): CoverageMissDiagnostic;
194
228
  /**
195
229
  * FR-001/FR-002/FR-005/SC-001/SC-002/SC-006 (issue #1687): mechanical coverage
196
230
  * check that the ACCEPTANCE text CONTAINS the verbatim requirement body for each
@@ -213,6 +247,7 @@ export declare function checkAcceptanceCoversFrRefs(params: {
213
247
  }): {
214
248
  covered: boolean;
215
249
  missingId?: string;
250
+ diagnostic?: CoverageMissDiagnostic;
216
251
  };
217
252
  interface MessageInfo {
218
253
  role: string;
@@ -70,7 +70,7 @@ export declare function detectInteractiveSession(command: string, shell: 'posix'
70
70
  * - Redirection operators: >, >>, >|, <<, <<- (here-docs)
71
71
  * - Write-effect builtins: cp, mv, install, ln, truncate, dd (of=)
72
72
  * - In-place editors: sed -i, perl -i, awk -i
73
- * - Interpreter eval: python -c/-m, node -e, bun -e, ruby -e, perl -e, php -r
73
+ * - Interpreter eval: python -c, node -e, bun -e, ruby -e, perl -e, php -r
74
74
  * - Network downloaders: curl -o, wget -O, scp
75
75
  * - Archive extraction: tar -x, unzip, gunzip
76
76
  * - Git destructive: git checkout --, git restore, git reset --hard, git clean -fd