opencode-swarm 7.143.3 → 7.143.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.
Files changed (48) hide show
  1. package/dist/cli/{config-doctor-ddbwxt14.js → config-doctor-az6nqawx.js} +2 -2
  2. package/dist/cli/{core-gfk2tsre.js → core-a6rzajem.js} +1 -1
  3. package/dist/cli/{curator-llm-factory-z23scnwb.js → curator-llm-factory-j42j5rcr.js} +17 -17
  4. package/dist/cli/{curator-hkcd03bx.js → curator-tbw9przg.js} +17 -17
  5. package/dist/cli/{evidence-summary-service-cbhsye6e.js → evidence-summary-service-3f319cst.js} +6 -6
  6. package/dist/cli/{gate-evidence-5xd9j34y.js → gate-evidence-k2yycngf.js} +2 -2
  7. package/dist/cli/{guardrail-explain-49vn7rv6.js → guardrail-explain-tsgsw91f.js} +18 -18
  8. package/dist/cli/{guardrail-log-ghymef5s.js → guardrail-log-70cxb3va.js} +3 -3
  9. package/dist/cli/{hive-promoter-akf3x240.js → hive-promoter-nksqxfs4.js} +17 -17
  10. package/dist/cli/{index-9py8e0dk.js → index-19wyta2k.js} +3 -3
  11. package/dist/cli/{index-etxy4vz9.js → index-5qqyvwqw.js} +4 -4
  12. package/dist/cli/{index-vdkywste.js → index-6htwcbxh.js} +1 -1
  13. package/dist/cli/{index-ds7j4hth.js → index-8fq18k02.js} +3 -3
  14. package/dist/cli/{index-e1feasna.js → index-8qmnqd6g.js} +1 -1
  15. package/dist/cli/{index-6cgp4ska.js → index-9m5gz9ea.js} +2 -2
  16. package/dist/cli/{index-xq2effek.js → index-bt47jrhx.js} +2 -2
  17. package/dist/cli/{index-30yyh3m0.js → index-c9d5y70c.js} +3 -3
  18. package/dist/cli/{index-64pk7525.js → index-dmtq7tvd.js} +1 -1
  19. package/dist/cli/{index-1y0rggw0.js → index-f39n8pbr.js} +1 -1
  20. package/dist/cli/{index-vatqcjnd.js → index-f3xf9dv5.js} +5 -5
  21. package/dist/cli/{index-3qw0bsgr.js → index-gbr0jbxy.js} +1 -1
  22. package/dist/cli/{index-m7gss7zy.js → index-gz3z9d64.js} +57 -49
  23. package/dist/cli/{index-e3g0t29w.js → index-ja15rdzd.js} +1 -1
  24. package/dist/cli/{index-x90gktjx.js → index-jmgm1npc.js} +1 -1
  25. package/dist/cli/{index-tj18fe58.js → index-mewk624g.js} +19 -19
  26. package/dist/cli/{index-qykq6vge.js → index-seedt8m3.js} +3 -3
  27. package/dist/cli/{index-86tn52b3.js → index-td2ga37v.js} +1 -1
  28. package/dist/cli/{index-a6rnw33a.js → index-v9qmhrj9.js} +2 -2
  29. package/dist/cli/{index-4mr3ga48.js → index-z0j133c4.js} +1 -1
  30. package/dist/cli/{index-1et48zgf.js → index-z4g05zbr.js} +1 -1
  31. package/dist/cli/index.js +17 -17
  32. package/dist/cli/{knowledge-escalator-mgg6kvva.js → knowledge-escalator-8akk4n18.js} +6 -6
  33. package/dist/cli/{knowledge-events-yjmkrrv2.js → knowledge-events-51qk8fq2.js} +4 -4
  34. package/dist/cli/{knowledge-store-647twyjp.js → knowledge-store-7rsezhav.js} +1 -1
  35. package/dist/cli/{knowledge-validator-0nsax3n6.js → knowledge-validator-nq75s9et.js} +2 -2
  36. package/dist/cli/{scan-cursor-vgmzg5ys.js → scan-cursor-em4vrcw6.js} +2 -2
  37. package/dist/cli/{schema-mzh2tam4.js → schema-1wmfgtm9.js} +1 -1
  38. package/dist/cli/{scope-persistence-m4ah4fay.js → scope-persistence-8ehnjgsg.js} +4 -4
  39. package/dist/cli/{skill-generator-eyf32w7h.js → skill-generator-3jstr1sx.js} +7 -7
  40. package/dist/cli/{worktree-isolation-grxn94v9.js → worktree-isolation-cc3x13ng.js} +17 -17
  41. package/dist/commands/registry.d.ts +2 -2
  42. package/dist/hooks/review-receipt-collector.d.ts +1 -0
  43. package/dist/index.d.ts +6 -1
  44. package/dist/index.js +12 -12
  45. package/dist/session/snapshot-reader.d.ts +11 -0
  46. package/dist/state.d.ts +4 -3
  47. package/dist/tools/dispatch-lanes.d.ts +1 -0
  48. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
1
  // @bun
2
2
  import {
3
3
  stableCanonicalStringify
4
- } from "./index-vdkywste.js";
4
+ } from "./index-6htwcbxh.js";
5
5
  import {
6
6
  detectStraySwarmDirs,
7
7
  readDoctorArtifact,
8
8
  removeStraySwarmDir,
9
9
  runConfigDoctor
10
- } from "./index-e3g0t29w.js";
10
+ } from "./index-ja15rdzd.js";
11
11
  import {
12
12
  MAX_TRANSIENT_RETRIES,
13
13
  archiveEvidence,
@@ -54,7 +54,7 @@ import {
54
54
  updateTaskCheckpointReceipt,
55
55
  updateTaskStatus,
56
56
  validateProjectRoot
57
- } from "./index-30yyh3m0.js";
57
+ } from "./index-c9d5y70c.js";
58
58
  import {
59
59
  loadDatabaseCtor
60
60
  } from "./index-134d35c1.js";
@@ -106,7 +106,7 @@ import {
106
106
  alreadyCuratedThisGeneration,
107
107
  claimNextScanBatch,
108
108
  resolveCohortId
109
- } from "./index-64pk7525.js";
109
+ } from "./index-dmtq7tvd.js";
110
110
  import {
111
111
  CURATOR_INIT_PROMPT,
112
112
  CURATOR_PHASE_PROMPT,
@@ -141,7 +141,7 @@ import {
141
141
  startupOrphanRecovery,
142
142
  withTaskEvidenceTransaction,
143
143
  writeWorkflowWalFile
144
- } from "./index-86tn52b3.js";
144
+ } from "./index-td2ga37v.js";
145
145
  import {
146
146
  changedFilesSinceSnapshot,
147
147
  parsePorcelainV2Snapshot,
@@ -188,16 +188,16 @@ import {
188
188
  retireSkill,
189
189
  selectCandidateEntries,
190
190
  syncBundledProjectSkillsIfMissingAsync
191
- } from "./index-9py8e0dk.js";
191
+ } from "./index-19wyta2k.js";
192
192
  import {
193
193
  readRecentEscalations
194
- } from "./index-vatqcjnd.js";
194
+ } from "./index-f3xf9dv5.js";
195
195
  import {
196
196
  MAX_PENDING_SCOPE_BINDINGS,
197
197
  clearAllScopes,
198
198
  clearScopeBindingFromDisk,
199
199
  clearScopeBindings
200
- } from "./index-a6rnw33a.js";
200
+ } from "./index-v9qmhrj9.js";
201
201
  import {
202
202
  appendLedgerEvent,
203
203
  computePlanHash,
@@ -210,7 +210,7 @@ import {
210
210
  readPlanEpochIdentity,
211
211
  replayFromLedgerWithStatus,
212
212
  takeSnapshotEvent
213
- } from "./index-e1feasna.js";
213
+ } from "./index-8qmnqd6g.js";
214
214
  import {
215
215
  isPathWithinDeclaredScope
216
216
  } from "./index-556ja8an.js";
@@ -238,7 +238,7 @@ import {
238
238
  import {
239
239
  provisionWorktree,
240
240
  removeWorktree
241
- } from "./index-3qw0bsgr.js";
241
+ } from "./index-gbr0jbxy.js";
242
242
  import {
243
243
  SandboxCapabilityProbe,
244
244
  init_capability_probe
@@ -262,10 +262,10 @@ import {
262
262
  recordKnowledgeEvent,
263
263
  recordPhaseCloseIntent,
264
264
  resolveKnowledgeEventsPath
265
- } from "./index-ds7j4hth.js";
265
+ } from "./index-8fq18k02.js";
266
266
  import {
267
267
  resolveWorktreeIsolationConfig
268
- } from "./index-6cgp4ska.js";
268
+ } from "./index-9m5gz9ea.js";
269
269
  import {
270
270
  RetrospectiveEvidenceSchema
271
271
  } from "./index-gprxjmm7.js";
@@ -275,7 +275,7 @@ import {
275
275
  init_loader,
276
276
  loadPluginConfig,
277
277
  loadPluginConfigWithMeta
278
- } from "./index-1y0rggw0.js";
278
+ } from "./index-f39n8pbr.js";
279
279
  import {
280
280
  DEFAULT_SKILL_OPT_CONFIG,
281
281
  FALLBACK_MODELS_MAX,
@@ -289,7 +289,7 @@ import {
289
289
  package_default,
290
290
  resolveAutoReviewConfig,
291
291
  stripKnownSwarmPrefix
292
- } from "./index-1et48zgf.js";
292
+ } from "./index-z4g05zbr.js";
293
293
  import {
294
294
  readSwarmFileAsync,
295
295
  safeHook,
@@ -324,7 +324,7 @@ import {
324
324
  validateActionableFields,
325
325
  validateLesson,
326
326
  validateSkillPath
327
- } from "./index-4mr3ga48.js";
327
+ } from "./index-z0j133c4.js";
328
328
  import {
329
329
  authorizeCuration,
330
330
  buildConfigFingerprintInput
@@ -361,7 +361,7 @@ import {
361
361
  transactFile,
362
362
  transactKnowledge,
363
363
  wordBigrams
364
- } from "./index-etxy4vz9.js";
364
+ } from "./index-5qqyvwqw.js";
365
365
  import {
366
366
  resolveHiveDataDir,
367
367
  resolveHiveEventsPath,
@@ -4153,7 +4153,7 @@ async function cleanupRecoveredWorktree(directory, descriptor) {
4153
4153
  awaitingMergeByCallID,
4154
4154
  cleanupStandardWorktreeForCallId,
4155
4155
  standardWorktreeByCallID
4156
- } = await import("./worktree-isolation-grxn94v9.js");
4156
+ } = await import("./worktree-isolation-cc3x13ng.js");
4157
4157
  standardWorktreeByCallID.delete(descriptor.callID);
4158
4158
  if (hasResidue)
4159
4159
  awaitingMergeByCallID.set(descriptor.callID, {
@@ -4232,7 +4232,7 @@ async function recoverCoderSettlement(directory, taskId) {
4232
4232
  awaitingMergeByCallID,
4233
4233
  finishStandardWorktreeDispatch,
4234
4234
  standardWorktreeByCallID
4235
- } = await import("./worktree-isolation-grxn94v9.js");
4235
+ } = await import("./worktree-isolation-cc3x13ng.js");
4236
4236
  const descriptor = wal.worktree;
4237
4237
  const reconstructedDispatch = {
4238
4238
  callID: descriptor.callID,
@@ -14931,7 +14931,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
14931
14931
  };
14932
14932
  }
14933
14933
  async function sweepActiveNearDuplicates(directory, options = {}) {
14934
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-qykq6vge.js");
14934
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-seedt8m3.js");
14935
14935
  const { config } = loadPluginConfigWithMeta2(directory);
14936
14936
  const sweepConfig = config.learning?.dedup_sweep;
14937
14937
  if (sweepConfig?.enabled === false)
@@ -16015,7 +16015,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
16015
16015
  }
16016
16016
  if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
16017
16017
  try {
16018
- const skillModule = await import("./skill-generator-eyf32w7h.js");
16018
+ const skillModule = await import("./skill-generator-3jstr1sx.js");
16019
16019
  for (const cand of skillCandidates) {
16020
16020
  if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
16021
16021
  continue;
@@ -16475,7 +16475,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
16475
16475
  } catch {}
16476
16476
  }
16477
16477
  if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
16478
- const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-mgg6kvva.js");
16478
+ const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-8akk4n18.js");
16479
16479
  for (const { id } of contradictedEntries) {
16480
16480
  try {
16481
16481
  await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
@@ -17294,7 +17294,7 @@ async function runCuratorPostMortem(directory, options = {}) {
17294
17294
  warnings.push("Failed to collect knowledge summary.");
17295
17295
  }
17296
17296
  try {
17297
- const { getScanStatus } = await import("./scan-cursor-vgmzg5ys.js");
17297
+ const { getScanStatus } = await import("./scan-cursor-em4vrcw6.js");
17298
17298
  const scanStatus = await getScanStatus(directory);
17299
17299
  if (scanStatus.remaining_estimate > 0) {
17300
17300
  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.`);
@@ -17466,9 +17466,9 @@ var _internals23 = {
17466
17466
  verifyPostMortemKnowledgeActions,
17467
17467
  repairPostMortemActions,
17468
17468
  loadDefaultKnowledgeConfig: async (directory) => {
17469
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-mzh2tam4.js");
17469
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-1wmfgtm9.js");
17470
17470
  try {
17471
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-qykq6vge.js");
17471
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-seedt8m3.js");
17472
17472
  const loaded = loadPluginConfigWithMeta2(directory);
17473
17473
  return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
17474
17474
  } catch {
@@ -17476,11 +17476,11 @@ var _internals23 = {
17476
17476
  }
17477
17477
  },
17478
17478
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
17479
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-hkcd03bx.js");
17479
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-tbw9przg.js");
17480
17480
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
17481
17481
  },
17482
17482
  checkHivePromotions: async (entries, knowledgeConfig, directory) => {
17483
- const { checkHivePromotions } = await import("./hive-promoter-akf3x240.js");
17483
+ const { checkHivePromotions } = await import("./hive-promoter-nksqxfs4.js");
17484
17484
  return checkHivePromotions(entries, knowledgeConfig, directory);
17485
17485
  },
17486
17486
  applyProposalTriage: async (directory, triage) => {
@@ -17489,7 +17489,7 @@ var _internals23 = {
17489
17489
  activateProposal,
17490
17490
  listSkills: listSkills2,
17491
17491
  sanitizeSlug
17492
- } = await import("./skill-generator-eyf32w7h.js");
17492
+ } = await import("./skill-generator-3jstr1sx.js");
17493
17493
  const result = {
17494
17494
  approved: [],
17495
17495
  rejected: [],
@@ -18825,9 +18825,9 @@ function hashContent(content) {
18825
18825
  return createHash7("sha1").update(content).digest("hex");
18826
18826
  }
18827
18827
  async function loadConfigForPolicyCurator(directory) {
18828
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-mzh2tam4.js");
18828
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-1wmfgtm9.js");
18829
18829
  try {
18830
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-qykq6vge.js");
18830
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-seedt8m3.js");
18831
18831
  const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
18832
18832
  return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
18833
18833
  } catch {
@@ -27669,7 +27669,7 @@ async function runFinalizeStage(ctx) {
27669
27669
  }
27670
27670
  }
27671
27671
  try {
27672
- const { CuratorConfigSchema: CCS } = await import("./schema-mzh2tam4.js");
27672
+ const { CuratorConfigSchema: CCS } = await import("./schema-1wmfgtm9.js");
27673
27673
  const { config: pmLoadedConfig } = _internals36.loadPluginConfigWithMeta(ctx.directory);
27674
27674
  const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
27675
27675
  if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
@@ -28373,7 +28373,7 @@ No active state was archived or removed. Fix the reported durable-state problem,
28373
28373
  "",
28374
28374
  "## Context",
28375
28375
  "- Reset context.md for next session",
28376
- "- Cleared agent sessions and delegation chains",
28376
+ "- Cleared agent sessions, delegation chains, and active-agent mappings",
28377
28377
  ...cleanResult.configBackupsRemoved > 0 ? [
28378
28378
  `- Removed ${cleanResult.configBackupsRemoved} stale config backup file(s)`
28379
28379
  ] : [],
@@ -29947,9 +29947,9 @@ var _internals41 = {
29947
29947
  loadPluginConfigWithMeta,
29948
29948
  loadCuratorDeps: async () => {
29949
29949
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate: createCuratorLLMDelegate2 }] = await Promise.all([
29950
- import("./schema-mzh2tam4.js"),
29951
- import("./curator-hkcd03bx.js"),
29952
- import("./curator-llm-factory-z23scnwb.js")
29950
+ import("./schema-1wmfgtm9.js"),
29951
+ import("./curator-tbw9przg.js"),
29952
+ import("./curator-llm-factory-j42j5rcr.js")
29953
29953
  ]);
29954
29954
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate: createCuratorLLMDelegate2 };
29955
29955
  }
@@ -30854,7 +30854,7 @@ async function computeCurationDiagnostics(directory, entries) {
30854
30854
  let scanCompleted = false;
30855
30855
  let scanRemaining = 0;
30856
30856
  try {
30857
- const { getScanStatus } = await import("./scan-cursor-vgmzg5ys.js");
30857
+ const { getScanStatus } = await import("./scan-cursor-em4vrcw6.js");
30858
30858
  const status = await getScanStatus(directory);
30859
30859
  scanGeneration = status.generation;
30860
30860
  scanCompleted = status.completed;
@@ -30864,10 +30864,10 @@ async function computeCurationDiagnostics(directory, entries) {
30864
30864
  try {
30865
30865
  const { isLinked: isLinked2 } = await import("./knowledge-link-fn5j3r4q.js");
30866
30866
  if (isLinked2(directory)) {
30867
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-mzh2tam4.js");
30867
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-1wmfgtm9.js");
30868
30868
  let config;
30869
30869
  try {
30870
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-qykq6vge.js");
30870
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-seedt8m3.js");
30871
30871
  const loaded = loadPluginConfigWithMeta2(directory);
30872
30872
  config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
30873
30873
  } catch {
@@ -32085,7 +32085,7 @@ async function handleDoctorCommand(directory, args) {
32085
32085
  const result = runConfigDoctor(config, directory);
32086
32086
  let output;
32087
32087
  if (enableAutoFix && result.hasAutoFixableIssues) {
32088
- const { runConfigDoctorWithFixes } = await import("./config-doctor-ddbwxt14.js");
32088
+ const { runConfigDoctorWithFixes } = await import("./config-doctor-az6nqawx.js");
32089
32089
  const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
32090
32090
  applyLossy: true
32091
32091
  });
@@ -32922,7 +32922,7 @@ async function handleEvidenceCommand(directory, args) {
32922
32922
  return formatTaskEvidenceMarkdown(evidenceData);
32923
32923
  }
32924
32924
  async function handleEvidenceSummaryCommand(directory) {
32925
- const { buildEvidenceSummary } = await import("./evidence-summary-service-cbhsye6e.js");
32925
+ const { buildEvidenceSummary } = await import("./evidence-summary-service-3f319cst.js");
32926
32926
  const artifact = await buildEvidenceSummary(directory);
32927
32927
  if (!artifact) {
32928
32928
  return "No plan found. Run `/swarm plan` to check plan status.";
@@ -49988,6 +49988,9 @@ async function handleResetSessionCommand(directory, _args) {
49988
49988
  const chainCount = swarmState.delegationChains.size;
49989
49989
  swarmState.delegationChains.clear();
49990
49990
  results.push(`\u2705 Cleared ${chainCount} delegation chain(s)`);
49991
+ const activeAgentCount = swarmState.activeAgent.size;
49992
+ swarmState.activeAgent.clear();
49993
+ results.push(`\u2705 Cleared ${activeAgentCount} active-agent mapping(s)`);
49991
49994
  const worktreesDir = path81.resolve(path81.dirname(directory), SWARM_WORKTREE_DIR_NAME);
49992
49995
  try {
49993
49996
  if (fs36.existsSync(worktreesDir)) {
@@ -52199,6 +52202,7 @@ function parseReviewerOutput(text, options = {}) {
52199
52202
  };
52200
52203
  }
52201
52204
  var _internals75 = {
52205
+ delegationBegin: telemetry.delegationBegin,
52202
52206
  delegationEnd: telemetry.delegationEnd,
52203
52207
  resolveReviewerTaskScope,
52204
52208
  buildReviewerTaskScope,
@@ -52664,6 +52668,7 @@ async function dispatchReviewerWithFallback(input, prompt, timeoutMs, promptByte
52664
52668
  const models = [input.reviewerModel, ...input.reviewerFallbackModels ?? []];
52665
52669
  const attempts = [];
52666
52670
  for (let index = 0;index < models.length; index++) {
52671
+ telemetry.delegationBegin(input.sessionID, input.reviewerAgent, input.trigger);
52667
52672
  const result = await input.dispatcher.dispatch({
52668
52673
  directory: input.directory,
52669
52674
  parentSessionId: input.sessionID,
@@ -52958,6 +52963,7 @@ async function runReviewEngine(input) {
52958
52963
  validationError = validation.error;
52959
52964
  for (const [retryIndex, attempt] of validation.attempts.entries()) {
52960
52965
  allDispatches.push(attempt);
52966
+ telemetry.delegationBegin(input.sessionID, input.validatorAgent, input.trigger);
52961
52967
  telemetry.delegationEnd(input.sessionID, input.validatorAgent, input.trigger, attempt.status, {
52962
52968
  ...attempt.costFields,
52963
52969
  gate: "finding_validation",
@@ -57468,7 +57474,7 @@ function buildDetailedHelp(commandName, entry) {
57468
57474
  async function handleHelpCommand(ctx) {
57469
57475
  const targetCommand = ctx.args.join(" ");
57470
57476
  if (!targetCommand) {
57471
- const { buildHelpText } = await import("./index-tj18fe58.js");
57477
+ const { buildHelpText } = await import("./index-mewk624g.js");
57472
57478
  return buildHelpText();
57473
57479
  }
57474
57480
  const tokens = targetCommand.split(/\s+/);
@@ -57477,7 +57483,7 @@ async function handleHelpCommand(ctx) {
57477
57483
  return _internals87.buildDetailedHelp(resolved.key, resolved.entry);
57478
57484
  }
57479
57485
  const similar = _internals87.findSimilarCommands(targetCommand);
57480
- const { buildHelpText: fullHelp } = await import("./index-tj18fe58.js");
57486
+ const { buildHelpText: fullHelp } = await import("./index-mewk624g.js");
57481
57487
  if (similar.length > 0) {
57482
57488
  return `Command '/swarm ${targetCommand}' not found.
57483
57489
 
@@ -57654,7 +57660,7 @@ var COMMAND_REGISTRY = {
57654
57660
  },
57655
57661
  "guardrail explain": {
57656
57662
  handler: async (ctx) => {
57657
- const { handleGuardrailExplain } = await import("./guardrail-explain-49vn7rv6.js");
57663
+ const { handleGuardrailExplain } = await import("./guardrail-explain-tsgsw91f.js");
57658
57664
  return handleGuardrailExplain(ctx.directory, ctx.args);
57659
57665
  },
57660
57666
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -57664,7 +57670,7 @@ var COMMAND_REGISTRY = {
57664
57670
  },
57665
57671
  "guardrail-explain": {
57666
57672
  handler: async (ctx) => {
57667
- const { handleGuardrailExplain } = await import("./guardrail-explain-49vn7rv6.js");
57673
+ const { handleGuardrailExplain } = await import("./guardrail-explain-tsgsw91f.js");
57668
57674
  return handleGuardrailExplain(ctx.directory, ctx.args);
57669
57675
  },
57670
57676
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -57674,7 +57680,7 @@ var COMMAND_REGISTRY = {
57674
57680
  },
57675
57681
  "guardrail-log": {
57676
57682
  handler: async (ctx) => {
57677
- const { handleGuardrailLog } = await import("./guardrail-log-ghymef5s.js");
57683
+ const { handleGuardrailLog } = await import("./guardrail-log-70cxb3va.js");
57678
57684
  return handleGuardrailLog(ctx.directory, ctx.args);
57679
57685
  },
57680
57686
  description: "Read the guardrail decision log (use --blocks-only for blocks)",
@@ -57970,7 +57976,7 @@ var COMMAND_REGISTRY = {
57970
57976
  sessionID: ctx.sessionID
57971
57977
  }),
57972
57978
  description: "Use /swarm finalize to finalize the swarm project and archive evidence",
57973
- details: "Idempotent 4-stage terminal finalization: (1) finalize writes retrospectives for in-progress phases, (2) archive creates timestamped bundle of swarm artifacts and evidence, (3) clean removes active-state files for a clean slate, (4) align performs aggressive git reset --hard to the default remote branch, discarding uncommitted changes and gitignored build artifacts (user-created untracked files are preserved); falls back to a cautious reset that preserves uncommitted changes when the aggressive path cannot proceed. WARNING: alignment discards local changes and gitignored files. Resets agent sessions and delegation chains. Reads .swarm/close-lessons.md for explicit lessons and runs curation. Use --skill-review to run the quota-bounded skill_improver in proposal mode. Use --dry-run to preview what finalize would archive, clean, and align without taking the lock or changing anything.",
57979
+ details: "Idempotent 4-stage terminal finalization: (1) finalize writes retrospectives for in-progress phases, (2) archive creates timestamped bundle of swarm artifacts and evidence, (3) clean removes active-state files for a clean slate, (4) align performs aggressive git reset --hard to the default remote branch, discarding uncommitted changes and gitignored build artifacts (user-created untracked files are preserved); falls back to a cautious reset that preserves uncommitted changes when the aggressive path cannot proceed. WARNING: alignment discards local changes and gitignored files. Resets agent sessions, delegation chains, and active-agent mappings. Reads .swarm/close-lessons.md for explicit lessons and runs curation. Use --skill-review to run the quota-bounded skill_improver in proposal mode. Use --dry-run to preview what finalize would archive, clean, and align without taking the lock or changing anything.",
57974
57980
  args: "--prune-branches, --skill-review, --dry-run",
57975
57981
  category: "core",
57976
57982
  toolPolicy: "none"
@@ -58326,7 +58332,7 @@ Subcommands:
58326
58332
  "reset-session": {
58327
58333
  handler: (ctx) => handleResetSessionCommand(ctx.directory, ctx.args),
58328
58334
  description: "Clear session state while preserving plan, evidence, and knowledge",
58329
- details: "Deletes only .swarm/session/state.json and any other session files. Clears in-memory agent sessions and delegation chains. Preserves plan, evidence, and knowledge for cross-session continuity. Before deleting, auto-backs up the session files it removes to .swarm/reset-backups/<timestamp>/ (newest 5 kept).",
58335
+ details: "Deletes only .swarm/session/state.json and any other session files. Clears in-memory agent sessions, delegation chains, and active-agent mappings. Preserves plan, evidence, and knowledge for cross-session continuity. Before deleting, auto-backs up the session files it removes to .swarm/reset-backups/<timestamp>/ (newest 5 kept).",
58330
58336
  args: "",
58331
58337
  category: "utility",
58332
58338
  toolPolicy: "restricted"
@@ -63803,6 +63809,7 @@ function sweepStaleSessions(staleDurationMs = STALE_SESSION_TTL_MS, now2 = Date.
63803
63809
  for (const id of staleIds) {
63804
63810
  swarmState.agentSessions.delete(id);
63805
63811
  swarmState.delegationChains.delete(id);
63812
+ swarmState.activeAgent.delete(id);
63806
63813
  }
63807
63814
  return staleIds;
63808
63815
  }
@@ -63928,6 +63935,8 @@ function endAgentSession(sessionId) {
63928
63935
  });
63929
63936
  }
63930
63937
  swarmState.agentSessions.delete(sessionId);
63938
+ swarmState.activeAgent.delete(sessionId);
63939
+ swarmState.delegationChains.delete(sessionId);
63931
63940
  clearRealtimeLearningNudgeSession(sessionId);
63932
63941
  resetSessionQueue(sessionId);
63933
63942
  resetPrmPatternSupport(sessionId);
@@ -64191,7 +64200,6 @@ function beginInvocation(sessionId, agentName) {
64191
64200
  const key = `${stripped}:${newId}`;
64192
64201
  session.windows[key] = window;
64193
64202
  pruneOldWindows(sessionId, 24 * 60 * 60 * 1000, 50);
64194
- telemetry.delegationBegin(sessionId, stripped, session.currentTaskId ?? "unknown");
64195
64203
  return window;
64196
64204
  }
64197
64205
  function getActiveWindow(sessionId) {
@@ -65032,7 +65040,7 @@ async function precreateStandardWorktreeSession(args) {
65032
65040
  const laneProfile = computeLaneRuntimeProfile(worktreeConfig.runtime_isolation, laneIndex, provisionResult.worktreePath);
65033
65041
  if (laneProfile) {
65034
65042
  try {
65035
- const { writeLaneProfileToDiskReal } = await import("./core-gfk2tsre.js");
65043
+ const { writeLaneProfileToDiskReal } = await import("./core-a6rzajem.js");
65036
65044
  await writeLaneProfileToDiskReal(provisionResult.worktreePath, laneProfile.laneIndex, laneProfile.envOverrides);
65037
65045
  } catch {}
65038
65046
  }
@@ -65531,7 +65539,7 @@ async function finishStandardWorktreeDispatch(directory, dispatch, config, callI
65531
65539
  }
65532
65540
  clearWorktreeMergeStatus(statusKey);
65533
65541
  try {
65534
- const { removeLaneProfileFromDiskReal } = await import("./core-gfk2tsre.js");
65542
+ const { removeLaneProfileFromDiskReal } = await import("./core-a6rzajem.js");
65535
65543
  await removeLaneProfileFromDiskReal(dispatch.handle.worktreePath, dispatch.laneIndex);
65536
65544
  } catch {}
65537
65545
  const state = serializationStateBySessionID.get(dispatch.parentSessionID);
@@ -6,7 +6,7 @@ import {
6
6
  PluginConfigSchema,
7
7
  init_schema,
8
8
  stripKnownSwarmPrefix
9
- } from "./index-1et48zgf.js";
9
+ } from "./index-z4g05zbr.js";
10
10
  import {
11
11
  ALL_AGENT_NAMES,
12
12
  init_constants
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  redactPath,
4
4
  redactShellCommand
5
- } from "./index-vdkywste.js";
5
+ } from "./index-6htwcbxh.js";
6
6
 
7
7
  // src/services/guardrail-log-service.ts
8
8
  import * as fs from "fs/promises";
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-xq2effek.js";
4
+ } from "./index-bt47jrhx.js";
5
5
  import {
6
6
  handleGuardrailLog
7
- } from "./index-x90gktjx.js";
7
+ } from "./index-jmgm1npc.js";
8
8
  import {
9
9
  COMMAND_REGISTRY,
10
10
  SWARM_COMMAND_TOOL_ALLOWLIST,
@@ -84,44 +84,44 @@ import {
84
84
  handleWriteRetroCommand,
85
85
  normalizeSwarmCommandInput,
86
86
  resolveCommand
87
- } from "./index-m7gss7zy.js";
88
- import"./index-vdkywste.js";
89
- import"./index-e3g0t29w.js";
90
- import"./index-30yyh3m0.js";
87
+ } from "./index-gz3z9d64.js";
88
+ import"./index-6htwcbxh.js";
89
+ import"./index-ja15rdzd.js";
90
+ import"./index-c9d5y70c.js";
91
91
  import"./index-134d35c1.js";
92
92
  import"./index-b6e016tv.js";
93
93
  import"./index-4q9vfav6.js";
94
94
  import"./index-k92cagmt.js";
95
95
  import"./index-y8552snf.js";
96
- import"./index-64pk7525.js";
96
+ import"./index-dmtq7tvd.js";
97
97
  import"./index-xmzmeknp.js";
98
98
  import"./index-c8s9a3zh.js";
99
99
  import"./index-9ss2m4rs.js";
100
- import"./index-86tn52b3.js";
100
+ import"./index-td2ga37v.js";
101
101
  import"./index-74hpm6sh.js";
102
- import"./index-9py8e0dk.js";
103
- import"./index-vatqcjnd.js";
104
- import"./index-a6rnw33a.js";
105
- import"./index-e1feasna.js";
102
+ import"./index-19wyta2k.js";
103
+ import"./index-f3xf9dv5.js";
104
+ import"./index-v9qmhrj9.js";
105
+ import"./index-8qmnqd6g.js";
106
106
  import"./index-556ja8an.js";
107
107
  import"./index-gdd4jt6b.js";
108
108
  import"./index-zsrtt42s.js";
109
109
  import"./index-k3cxyk66.js";
110
110
  import"./index-8aabbfhv.js";
111
- import"./index-3qw0bsgr.js";
111
+ import"./index-gbr0jbxy.js";
112
112
  import"./index-8fwhhayc.js";
113
113
  import"./index-q1exe2b3.js";
114
114
  import"./index-7sy3aa9m.js";
115
115
  import"./index-4905hd2m.js";
116
- import"./index-ds7j4hth.js";
117
- import"./index-6cgp4ska.js";
116
+ import"./index-8fq18k02.js";
117
+ import"./index-9m5gz9ea.js";
118
118
  import"./index-gprxjmm7.js";
119
119
  import"./index-n832052r.js";
120
- import"./index-1y0rggw0.js";
120
+ import"./index-f39n8pbr.js";
121
121
  import {
122
122
  init_schema,
123
123
  stripKnownSwarmPrefix
124
- } from "./index-1et48zgf.js";
124
+ } from "./index-z4g05zbr.js";
125
125
  import"./index-rn0eq85g.js";
126
126
  import"./index-4rhhvd1a.js";
127
127
  import {
@@ -131,10 +131,10 @@ import {
131
131
  } from "./index-jqsfsqbx.js";
132
132
  import"./index-z6xqpmqg.js";
133
133
  import"./index-zjygnfay.js";
134
- import"./index-4mr3ga48.js";
134
+ import"./index-z0j133c4.js";
135
135
  import"./index-tq5s07ta.js";
136
136
  import"./index-rtry5xyf.js";
137
- import"./index-etxy4vz9.js";
137
+ import"./index-5qqyvwqw.js";
138
138
  import"./index-ae75rja9.js";
139
139
  import"./index-w7x7qxz2.js";
140
140
  import"./index-erfnw81g.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  _internals,
4
4
  resolveWorktreeIsolationConfig
5
- } from "./index-6cgp4ska.js";
5
+ } from "./index-9m5gz9ea.js";
6
6
  import {
7
7
  ApprovalEvidenceSchema,
8
8
  BaseEvidenceSchema,
@@ -42,7 +42,7 @@ import {
42
42
  loadPluginConfig,
43
43
  loadPluginConfigWithMeta,
44
44
  loadPluginConfigWithMetaAsync
45
- } from "./index-1y0rggw0.js";
45
+ } from "./index-f39n8pbr.js";
46
46
  import {
47
47
  AUTO_REVIEW_V8_BURN_IN_DECISION,
48
48
  AgentOverrideConfigSchema,
@@ -64,7 +64,7 @@ import {
64
64
  TurboConfigSchema,
65
65
  WorktreeIsolationConfigSchema,
66
66
  resolveAutoReviewConfig
67
- } from "./index-1et48zgf.js";
67
+ } from "./index-z4g05zbr.js";
68
68
  import"./index-4rhhvd1a.js";
69
69
  import {
70
70
  ALL_AGENT_NAMES,
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  autoCommitDirty,
8
8
  cleanUntrackedFiles
9
- } from "./index-3qw0bsgr.js";
9
+ } from "./index-gbr0jbxy.js";
10
10
  import {
11
11
  validateSwarmPath
12
12
  } from "./index-rn0eq85g.js";
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  computePlanStructureHash,
4
4
  derivePlanId
5
- } from "./index-e1feasna.js";
5
+ } from "./index-8qmnqd6g.js";
6
6
  import {
7
7
  unsafePathTextReason
8
8
  } from "./index-556ja8an.js";
9
9
  import {
10
10
  PlanSchema
11
- } from "./index-1y0rggw0.js";
11
+ } from "./index-f39n8pbr.js";
12
12
  import {
13
13
  assertProjectRoot
14
14
  } from "./index-k31en0ja.js";
@@ -9,7 +9,7 @@ import {
9
9
  resolveSwarmKnowledgePath,
10
10
  resolveSwarmRejectedPath,
11
11
  transactKnowledge
12
- } from "./index-etxy4vz9.js";
12
+ } from "./index-5qqyvwqw.js";
13
13
  import {
14
14
  resolveKnowledgeStoreDir
15
15
  } from "./index-w7x7qxz2.js";
@@ -21,7 +21,7 @@ var package_default;
21
21
  var init_package = __esm(() => {
22
22
  package_default = {
23
23
  name: "opencode-swarm",
24
- version: "7.143.3",
24
+ version: "7.143.4",
25
25
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
26
26
  main: "dist/index.js",
27
27
  types: "dist/index.d.ts",