opencode-swarm 7.181.3 → 7.181.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 (64) hide show
  1. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  2. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  3. package/dist/cli/{coder-settlement-txte2m87.js → coder-settlement-vbs5rj3z.js} +3 -3
  4. package/dist/cli/{config-doctor-101n3c1r.js → config-doctor-3cb51z08.js} +2 -2
  5. package/dist/cli/{core-s0yzzpaj.js → core-0h7y8z0s.js} +1 -1
  6. package/dist/cli/{curator-dp49fr0p.js → curator-9sn55eyk.js} +22 -22
  7. package/dist/cli/{curator-drift-r7w3cg3m.js → curator-drift-d4jkgrba.js} +5 -5
  8. package/dist/cli/{curator-llm-factory-tycc9xkw.js → curator-llm-factory-zwc2gpe7.js} +22 -22
  9. package/dist/cli/{evidence-summary-service-r648x5f2.js → evidence-summary-service-sb5seqs3.js} +8 -8
  10. package/dist/cli/{gate-evidence-8rh69tsh.js → gate-evidence-emq2y7kz.js} +2 -2
  11. package/dist/cli/{guardrail-explain-dfyj1g1c.js → guardrail-explain-a3hcrpwv.js} +23 -23
  12. package/dist/cli/{guardrail-log-yr60w7h6.js → guardrail-log-ftv03v4x.js} +3 -3
  13. package/dist/cli/{guardrail-reset-eztc62va.js → guardrail-reset-d6qmnvff.js} +22 -22
  14. package/dist/cli/{hive-promoter-g56ba4a4.js → hive-promoter-pktjn46n.js} +22 -22
  15. package/dist/cli/{index-k5rqe97g.js → index-0ea0c676.js} +5 -5
  16. package/dist/cli/{index-dy9mxh0z.js → index-12fxtcce.js} +24 -24
  17. package/dist/cli/{index-m4e3p8na.js → index-1epynxc4.js} +1 -1
  18. package/dist/cli/{index-8c37kzh6.js → index-1msszzg2.js} +1 -1
  19. package/dist/cli/{index-rchygh27.js → index-3ga3ts3h.js} +1 -1
  20. package/dist/cli/{index-xqr076aq.js → index-4qpz7mpn.js} +1 -1
  21. package/dist/cli/{index-1ks0rnzn.js → index-54sd9bbn.js} +5 -5
  22. package/dist/cli/{index-kexzhwbq.js → index-68ben2q8.js} +2 -2
  23. package/dist/cli/{index-hcaspktr.js → index-6jrn46zy.js} +1 -1
  24. package/dist/cli/{index-h6gxh3an.js → index-9eg8f4zm.js} +117 -66
  25. package/dist/cli/{index-vgjmahnd.js → index-9s2rp2j5.js} +2 -2
  26. package/dist/cli/{index-ekwe81my.js → index-dkprb20b.js} +1 -1
  27. package/dist/cli/{index-7s6ct0t2.js → index-dwc1wztn.js} +4 -4
  28. package/dist/cli/{index-1w1xrk5k.js → index-enmvd9ap.js} +1 -1
  29. package/dist/cli/{index-6ep83w7x.js → index-epq8am78.js} +1 -1
  30. package/dist/cli/{index-ttgex8ky.js → index-fsye9ygy.js} +2 -2
  31. package/dist/cli/{index-mdqp0cq2.js → index-gtpq64q7.js} +1 -1
  32. package/dist/cli/{index-yv0q0hp9.js → index-hqa71xfm.js} +3 -3
  33. package/dist/cli/{index-789tdsfv.js → index-j97nc02q.js} +1 -1
  34. package/dist/cli/{index-qdz43cne.js → index-myacmqmf.js} +22 -22
  35. package/dist/cli/{index-ckrm4784.js → index-r4vve32m.js} +3 -3
  36. package/dist/cli/{index-4ffryqb1.js → index-rgfz80gt.js} +1 -1
  37. package/dist/cli/{index-2pt5g7zz.js → index-v4h99xhr.js} +1 -1
  38. package/dist/cli/{index-yzapt508.js → index-x4am0jxt.js} +3 -3
  39. package/dist/cli/{index-nw8pfcw1.js → index-y03jadcy.js} +1 -1
  40. package/dist/cli/{index-4jvt3r77.js → index-y28np6j9.js} +1 -1
  41. package/dist/cli/{index-sr9k8sh7.js → index-zp6fss8c.js} +3 -3
  42. package/dist/cli/index.js +23 -23
  43. package/dist/cli/{knowledge-escalator-0rcft6q4.js → knowledge-escalator-5q4y97e4.js} +6 -6
  44. package/dist/cli/{knowledge-events-7jyz3qxs.js → knowledge-events-x7q8yepd.js} +4 -4
  45. package/dist/cli/{knowledge-store-asa26g6p.js → knowledge-store-r7ng2nf8.js} +1 -1
  46. package/dist/cli/{knowledge-validator-j3x9ezej.js → knowledge-validator-e78m6cqe.js} +2 -2
  47. package/dist/cli/{mcp-70hefjk6.js → mcp-208jwxps.js} +1 -1
  48. package/dist/cli/{model-preflight-szekh1dc.js → model-preflight-xakn1356.js} +22 -22
  49. package/dist/cli/{pending-delegations-rb6bhv5x.js → pending-delegations-w4a5tg11.js} +2 -2
  50. package/dist/cli/{pr-subscriptions-v4ms5pfb.js → pr-subscriptions-8289esc9.js} +1 -1
  51. package/dist/cli/{pr-workflow-gate-qmfpz6wb.js → pr-workflow-gate-b7yx0x21.js} +22 -22
  52. package/dist/cli/{scan-cursor-7zn4t1hw.js → scan-cursor-edpbzp72.js} +2 -2
  53. package/dist/cli/{schema-tx62mfy8.js → schema-dnsxhyr3.js} +1 -1
  54. package/dist/cli/{scope-persistence-f8w12sns.js → scope-persistence-z1f7d4tw.js} +5 -5
  55. package/dist/cli/{server-f2vrp2wc.js → server-t2edntv4.js} +22 -22
  56. package/dist/cli/{skill-generator-jme09w7n.js → skill-generator-5n7vf0s3.js} +7 -7
  57. package/dist/cli/{snapshot-coordination-init-ad83sq6c.js → snapshot-coordination-init-t14dk9je.js} +22 -22
  58. package/dist/cli/{speckit-checkoff-98gfvn3r.js → speckit-checkoff-4ws84g13.js} +3 -3
  59. package/dist/cli/{worktree-collision-ownership-47kdjtqb.js → worktree-collision-ownership-wj6337ec.js} +2 -2
  60. package/dist/cli/{worktree-isolation-etaawcnt.js → worktree-isolation-9fyj85tc.js} +22 -22
  61. package/dist/hooks/delegation-gate.d.ts +10 -8
  62. package/dist/hooks/task-id-resolver.d.ts +7 -0
  63. package/dist/index.js +14 -5
  64. package/package.json +1 -1
@@ -8,7 +8,7 @@ import {
8
8
  protectedRoots,
9
9
  redactDecisionLineForArchive,
10
10
  stableCanonicalStringify
11
- } from "./index-mdqp0cq2.js";
11
+ } from "./index-gtpq64q7.js";
12
12
  import {
13
13
  LANGUAGE_REGISTRY,
14
14
  _internals as _internals3,
@@ -36,13 +36,13 @@ import {
36
36
  getGroupCommitWriter,
37
37
  importLegacyJsonl,
38
38
  readPriorDriftReports
39
- } from "./index-nw8pfcw1.js";
39
+ } from "./index-y03jadcy.js";
40
40
  import {
41
41
  detectStraySwarmDirs,
42
42
  readDoctorArtifact,
43
43
  removeStraySwarmDir,
44
44
  runConfigDoctor
45
- } from "./index-ekwe81my.js";
45
+ } from "./index-dkprb20b.js";
46
46
  import {
47
47
  MAX_TRANSIENT_RETRIES,
48
48
  archiveEvidence,
@@ -82,7 +82,7 @@ import {
82
82
  updateTaskStatus,
83
83
  validateProjectRoot,
84
84
  withPlanLifecycleLock
85
- } from "./index-k5rqe97g.js";
85
+ } from "./index-0ea0c676.js";
86
86
  import {
87
87
  EvaluationTaskV1Schema,
88
88
  GateAuditManifestV1Schema,
@@ -119,7 +119,7 @@ import {
119
119
  resolveSpeckitProjection,
120
120
  validateSpeckit,
121
121
  writeProjectedSpecSync
122
- } from "./index-4ffryqb1.js";
122
+ } from "./index-rgfz80gt.js";
123
123
  import {
124
124
  containsControlChars,
125
125
  containsPathTraversal,
@@ -147,16 +147,16 @@ import {
147
147
  retireSkill,
148
148
  selectCandidateEntries,
149
149
  syncBundledProjectSkillsIfMissingAsync
150
- } from "./index-yzapt508.js";
150
+ } from "./index-x4am0jxt.js";
151
151
  import {
152
152
  buildEscalationBriefing,
153
153
  readRecentEscalations
154
- } from "./index-1ks0rnzn.js";
154
+ } from "./index-54sd9bbn.js";
155
155
  import {
156
156
  alreadyCuratedThisGeneration,
157
157
  claimNextScanBatch,
158
158
  resolveCohortId
159
- } from "./index-m4e3p8na.js";
159
+ } from "./index-1epynxc4.js";
160
160
  import {
161
161
  CURATOR_CONSOLIDATION_PROMPT,
162
162
  CURATOR_INIT_PROMPT,
@@ -188,7 +188,7 @@ import {
188
188
  listCoderSettlementWalStates,
189
189
  recoverCoderSettlement,
190
190
  recoverStaleCoderSettlements
191
- } from "./index-ckrm4784.js";
191
+ } from "./index-r4vve32m.js";
192
192
  import {
193
193
  parsePorcelainV2Snapshot,
194
194
  resolveCommitCountSince,
@@ -259,7 +259,7 @@ import {
259
259
  transitionTaskWorkflowEvidence,
260
260
  withTaskEvidenceTransaction,
261
261
  writeWorkflowWalFile
262
- } from "./index-789tdsfv.js";
262
+ } from "./index-j97nc02q.js";
263
263
  import {
264
264
  isPathUnderSwarmWorktreeBase,
265
265
  listLiveLaneOwners,
@@ -268,7 +268,7 @@ import {
268
268
  recordLiveLaneOwner,
269
269
  removeWorktree,
270
270
  resolveWorktreeBaseDir
271
- } from "./index-2pt5g7zz.js";
271
+ } from "./index-v4h99xhr.js";
272
272
  import {
273
273
  DEFAULT_STALE_DELEGATION_TIMEOUT_MS,
274
274
  DELEGATION_COMPACTION_HIGH_WATER_BYTES,
@@ -302,7 +302,7 @@ import {
302
302
  scanBackgroundCoderReservationsForAdmission,
303
303
  scanDelegationsForRecovery,
304
304
  sweepStaleDelegations
305
- } from "./index-8c37kzh6.js";
305
+ } from "./index-1msszzg2.js";
306
306
  import {
307
307
  MAX_EVENT_LOG_ENTRIES,
308
308
  _internals,
@@ -321,7 +321,7 @@ import {
321
321
  recordKnowledgeEvent,
322
322
  recordPhaseCloseIntent,
323
323
  resolveKnowledgeEventsPath
324
- } from "./index-yv0q0hp9.js";
324
+ } from "./index-hqa71xfm.js";
325
325
  import {
326
326
  estimateCharsForTokens,
327
327
  estimateTokens,
@@ -349,7 +349,7 @@ import {
349
349
  validateActionableFields,
350
350
  validateLesson,
351
351
  validateSkillPath
352
- } from "./index-xqr076aq.js";
352
+ } from "./index-4qpz7mpn.js";
353
353
  import {
354
354
  MAX_CURATION_PROPOSALS,
355
355
  authorizeCuration,
@@ -360,7 +360,7 @@ import {
360
360
  } from "./index-rtry5xyf.js";
361
361
  import {
362
362
  resolveWorktreeIsolationConfig
363
- } from "./index-vgjmahnd.js";
363
+ } from "./index-9s2rp2j5.js";
364
364
  import {
365
365
  RetrospectiveEvidenceSchema
366
366
  } from "./index-frcemc0b.js";
@@ -372,7 +372,7 @@ import {
372
372
  clearScopeBindings,
373
373
  readAuthoritativeScopeBindingSet,
374
374
  readDeclaredScopeFilesFromBindings
375
- } from "./index-4jvt3r77.js";
375
+ } from "./index-y28np6j9.js";
376
376
  import {
377
377
  clearPlanLedgerForReset,
378
378
  computePlanStructureHash,
@@ -388,7 +388,7 @@ import {
388
388
  replayFromLedgerWithStatus,
389
389
  resolvePlanningProfile,
390
390
  takeSnapshotEvent
391
- } from "./index-ttgex8ky.js";
391
+ } from "./index-fsye9ygy.js";
392
392
  import {
393
393
  CORE_EVENT_LOCKED,
394
394
  appendCoreEventSync,
@@ -475,7 +475,7 @@ import {
475
475
  transactFile,
476
476
  transactKnowledge,
477
477
  wordBigrams
478
- } from "./index-7s6ct0t2.js";
478
+ } from "./index-dwc1wztn.js";
479
479
  import {
480
480
  readTailJsonl,
481
481
  readTailJsonlDetailed,
@@ -551,7 +551,7 @@ import {
551
551
  loadGateOverrides,
552
552
  loadPluginConfig,
553
553
  loadPluginConfigWithMeta
554
- } from "./index-hcaspktr.js";
554
+ } from "./index-6jrn46zy.js";
555
555
  import {
556
556
  addDeferredWarning,
557
557
  advisoryWarn,
@@ -583,7 +583,7 @@ import {
583
583
  resolveContextWindow,
584
584
  resolveGeneratedAgentRole,
585
585
  stripKnownSwarmPrefix
586
- } from "./index-rchygh27.js";
586
+ } from "./index-3ga3ts3h.js";
587
587
  import {
588
588
  AGENT_TOOL_MAP,
589
589
  ALL_AGENT_NAMES,
@@ -3346,7 +3346,7 @@ async function importLegacyPrWorkflowGateStateIfNeeded(directory, sessionID, all
3346
3346
  return null;
3347
3347
  throw error2;
3348
3348
  }
3349
- const legacy = allowSalvagedImport ? (await (await import("./pr-workflow-gate-qmfpz6wb.js")).readPrWorkflowGateStateForRecovery(directory, sessionID))?.state ?? null : await readPrWorkflowGateStateFileFromDisk(filePath, sessionID);
3349
+ const legacy = allowSalvagedImport ? (await (await import("./pr-workflow-gate-b7yx0x21.js")).readPrWorkflowGateStateForRecovery(directory, sessionID))?.state ?? null : await readPrWorkflowGateStateFileFromDisk(filePath, sessionID);
3350
3350
  if (!legacy)
3351
3351
  return null;
3352
3352
  const namespace = workflowGateStateCoordinationNamespace(sessionID);
@@ -3433,7 +3433,7 @@ async function deleteStateWhileLocked(directory, sessionID, options = {}) {
3433
3433
  let recoveryState = null;
3434
3434
  if (!currentAuthoritative) {
3435
3435
  if (options.allowSalvagedRead) {
3436
- const { readPrWorkflowGateStateForRecovery } = await import("./pr-workflow-gate-qmfpz6wb.js");
3436
+ const { readPrWorkflowGateStateForRecovery } = await import("./pr-workflow-gate-b7yx0x21.js");
3437
3437
  recoveryState = (await readPrWorkflowGateStateForRecovery(directory, normalizedSessionID))?.state ?? null;
3438
3438
  }
3439
3439
  if (!recoveryState) {
@@ -8419,7 +8419,7 @@ var TASK_ID_RESOLUTION_LIMITS = {
8419
8419
  maxTokenChars: 80
8420
8420
  };
8421
8421
  var TEXT_FIELDS = ["prompt", "description", "task", "input"];
8422
- var EXPLICIT_FIELDS = [
8422
+ var EXPLICIT_TASK_ID_FIELDS = [
8423
8423
  "plan_task_id",
8424
8424
  "planTaskId",
8425
8425
  "task_id",
@@ -8431,8 +8431,44 @@ var PLAN_CANDIDATE = /\b(\d+\.\d+(?:\.\d+)*)\b/g;
8431
8431
  var TASK_LINE = /^\s*TASK\s*[:=]\s*(.*)$/gim;
8432
8432
  var ATTRIBUTION_ID_MARKER = /\b(?:task_id|task-id|taskId)\s*[:=]\s*([A-Za-z0-9][A-Za-z0-9._-]*)/gi;
8433
8433
  var ATTRIBUTION_TASK_MARKER = /\bTASK\s*[:=]\s*([A-Za-z0-9][A-Za-z0-9._-]*)[ \t]*(?=\r?$)/gim;
8434
+ var ATTRIBUTION_TASK_MARKER_STANDALONE = /^TASK\s*[:=]\s*([A-Za-z0-9][A-Za-z0-9._-]*)[ \t]*\r?$/gim;
8434
8435
  var ATTRIBUTION_ID_MARKER_RAW = /\b(?:task_id|task-id|taskId)\s*[:=][ \t]*([^\s]*)/gi;
8435
8436
  var ATTRIBUTION_TASK_MARKER_RAW = /\bTASK\s*[:=][ \t]*([^\s]+)[ \t]*(?=\r?$)/gim;
8437
+ var ATTRIBUTION_TASK_MARKER_RAW_STANDALONE = /^TASK\s*[:=][ \t]*([^\s]+)[ \t]*\r?$/gim;
8438
+ function stripUntrustedAttributionMarkdown(text) {
8439
+ const lines = text.split(/\r?\n/);
8440
+ const kept = [];
8441
+ let fence;
8442
+ let inBlockQuote = false;
8443
+ for (const line of lines) {
8444
+ if (fence) {
8445
+ const close = line.match(/^[ \t]{0,3}(`+|~+)[ \t]*$/);
8446
+ if (close && close[1][0] === fence.marker && close[1].length >= fence.length) {
8447
+ fence = undefined;
8448
+ }
8449
+ continue;
8450
+ }
8451
+ const open2 = line.match(/^[ \t]{0,3}(`{3,}|~{3,})(.*)$/);
8452
+ if (open2 && !(open2[1][0] === "`" && open2[2].includes("`"))) {
8453
+ fence = { marker: open2[1][0], length: open2[1].length };
8454
+ continue;
8455
+ }
8456
+ if (/^[ \t]{0,3}>/.test(line)) {
8457
+ inBlockQuote = true;
8458
+ continue;
8459
+ }
8460
+ if (inBlockQuote) {
8461
+ if (line.trim() === "") {
8462
+ inBlockQuote = false;
8463
+ } else {
8464
+ continue;
8465
+ }
8466
+ }
8467
+ kept.push(line);
8468
+ }
8469
+ return kept.join(`
8470
+ `);
8471
+ }
8436
8472
  function isSafeAttributionId(value) {
8437
8473
  return value.length <= TASK_ID_RESOLUTION_LIMITS.maxTokenChars && SAFE_ATTRIBUTION_ID.test(value) && !/^ses_/i.test(value) && !value.includes("..");
8438
8474
  }
@@ -8502,7 +8538,7 @@ function resolveTaskId(input, options) {
8502
8538
  textFields.push(raw);
8503
8539
  }
8504
8540
  const explicit = new Set;
8505
- for (const field of EXPLICIT_FIELDS) {
8541
+ for (const field of EXPLICIT_TASK_ID_FIELDS) {
8506
8542
  const raw = input[field];
8507
8543
  if (raw === undefined || raw === null)
8508
8544
  continue;
@@ -8569,12 +8605,11 @@ function resolveTaskId(input, options) {
8569
8605
  if (textSelection)
8570
8606
  return textSelection;
8571
8607
  } else {
8608
+ const markerTextFields = options.standaloneTaskMarkerOnly ? textFields.map(stripUntrustedAttributionMarkdown) : textFields;
8572
8609
  let hasInvalidRawMarker = false;
8573
- for (const rawMarker of [
8574
- ATTRIBUTION_ID_MARKER_RAW,
8575
- ATTRIBUTION_TASK_MARKER_RAW
8576
- ]) {
8577
- for (const text of textFields) {
8610
+ const rawMarkers = options.standaloneTaskMarkerOnly ? [ATTRIBUTION_TASK_MARKER_RAW_STANDALONE] : [ATTRIBUTION_ID_MARKER_RAW, ATTRIBUTION_TASK_MARKER_RAW];
8611
+ for (const rawMarker of rawMarkers) {
8612
+ for (const text of markerTextFields) {
8578
8613
  rawMarker.lastIndex = 0;
8579
8614
  for (const match of text.matchAll(rawMarker)) {
8580
8615
  const value = match[1];
@@ -8590,8 +8625,9 @@ function resolveTaskId(input, options) {
8590
8625
  if (hasInvalidRawMarker)
8591
8626
  return { status: "invalid", input: "marker" };
8592
8627
  const marked = new Set;
8593
- for (const marker of [ATTRIBUTION_ID_MARKER, ATTRIBUTION_TASK_MARKER]) {
8594
- for (const text of textFields) {
8628
+ const markers = options.standaloneTaskMarkerOnly ? [ATTRIBUTION_TASK_MARKER_STANDALONE] : [ATTRIBUTION_ID_MARKER, ATTRIBUTION_TASK_MARKER];
8629
+ for (const marker of markers) {
8630
+ for (const text of markerTextFields) {
8595
8631
  marker.lastIndex = 0;
8596
8632
  for (const match of text.matchAll(marker)) {
8597
8633
  const value = match[1];
@@ -14723,7 +14759,7 @@ function isLaneOwnedByCurrentSession(branchName, expectedSessionId) {
14723
14759
  return extracted === expectedSessionId;
14724
14760
  }
14725
14761
  async function inspectStandardWorktreeCollisionOwnership(identity) {
14726
- const collisionOwnership = await import("./worktree-collision-ownership-47kdjtqb.js");
14762
+ const collisionOwnership = await import("./worktree-collision-ownership-wj6337ec.js");
14727
14763
  return collisionOwnership.inspectStandardWorktreeCollisionOwnership(identity);
14728
14764
  }
14729
14765
  async function runRecoveryGit(directory, args, timeoutMs = 15000) {
@@ -15149,7 +15185,7 @@ async function precreateStandardWorktreeSession(args) {
15149
15185
  const laneProfile = computeLaneRuntimeProfile(worktreeConfig.runtime_isolation, laneIndex, handle.worktreePath);
15150
15186
  if (laneProfile) {
15151
15187
  try {
15152
- const { writeLaneProfileToDiskReal } = await import("./core-s0yzzpaj.js");
15188
+ const { writeLaneProfileToDiskReal } = await import("./core-0h7y8z0s.js");
15153
15189
  await writeLaneProfileToDiskReal(handle.worktreePath, laneProfile.laneIndex, laneProfile.envOverrides);
15154
15190
  } catch {}
15155
15191
  }
@@ -16128,7 +16164,7 @@ async function finishStandardWorktreeDispatch(directory, dispatch, config, callI
16128
16164
  }
16129
16165
  clearWorktreeMergeStatus(statusKey);
16130
16166
  try {
16131
- const { removeLaneProfileFromDiskReal } = await import("./core-s0yzzpaj.js");
16167
+ const { removeLaneProfileFromDiskReal } = await import("./core-0h7y8z0s.js");
16132
16168
  await removeLaneProfileFromDiskReal(dispatch.handle.worktreePath, dispatch.laneIndex);
16133
16169
  } catch {}
16134
16170
  const state = serializationStateBySessionID.get(dispatch.parentSessionID);
@@ -21491,6 +21527,13 @@ var TASK_GATE_AGENTS = new Set([
21491
21527
  "explorer",
21492
21528
  "sme"
21493
21529
  ]);
21530
+ var EXPLICIT_TASK_EVIDENCE_AGENTS = new Set([
21531
+ "critic",
21532
+ "critic_sounding_board",
21533
+ "critic_drift_verifier",
21534
+ "critic_hallucination_verifier",
21535
+ "critic_architecture_supervisor"
21536
+ ]);
21494
21537
 
21495
21538
  // src/hooks/realtime-learning-nudge.ts
21496
21539
  var realtimeLearningNudgeBySession = new Map;
@@ -23391,7 +23434,7 @@ function clearCriticalShownIds(sessionID) {
23391
23434
  async function rehydratePrSubscriptions(sessionID, directory) {
23392
23435
  const map = new Map;
23393
23436
  try {
23394
- const { listActive: listActive2 } = await import("./pr-subscriptions-v4ms5pfb.js");
23437
+ const { listActive: listActive2 } = await import("./pr-subscriptions-8289esc9.js");
23395
23438
  const records = await listActive2(directory);
23396
23439
  for (const record of records) {
23397
23440
  if (record.sessionID !== sessionID)
@@ -40335,9 +40378,9 @@ function hashContent(content) {
40335
40378
  return createHash24("sha1").update(content).digest("hex");
40336
40379
  }
40337
40380
  async function loadConfigForPolicyCurator(directory) {
40338
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-tx62mfy8.js");
40381
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-dnsxhyr3.js");
40339
40382
  try {
40340
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-sr9k8sh7.js");
40383
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-zp6fss8c.js");
40341
40384
  const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
40342
40385
  return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
40343
40386
  } catch {
@@ -43395,7 +43438,7 @@ async function resolveCuratorLLMDelegate(directory, mode, sessionId) {
43395
43438
  const seam = _internals37.createCuratorLLMDelegate;
43396
43439
  if (seam)
43397
43440
  return seam(directory, mode, sessionId);
43398
- const { createCuratorLLMDelegate } = await import("./curator-llm-factory-tycc9xkw.js");
43441
+ const { createCuratorLLMDelegate } = await import("./curator-llm-factory-zwc2gpe7.js");
43399
43442
  return createCuratorLLMDelegate(directory, mode, sessionId);
43400
43443
  }
43401
43444
  async function reconcileCloseTerminalStateForPlan(directory, targetPlan, options) {
@@ -43790,7 +43833,7 @@ async function runFinalizeStage(ctx) {
43790
43833
  }
43791
43834
  }
43792
43835
  try {
43793
- const { CuratorConfigSchema: CCS } = await import("./schema-tx62mfy8.js");
43836
+ const { CuratorConfigSchema: CCS } = await import("./schema-dnsxhyr3.js");
43794
43837
  const { config: pmLoadedConfig } = _internals37.loadPluginConfigWithMeta(ctx.directory);
43795
43838
  const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
43796
43839
  if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
@@ -45972,7 +46015,7 @@ function serializeAgentSession(s) {
45972
46015
  }
45973
46016
  async function writeSnapshot(directory, state) {
45974
46017
  try {
45975
- const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-ad83sq6c.js");
46018
+ const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-t14dk9je.js");
45976
46019
  await ensureSnapshotCoordinationReady(directory);
45977
46020
  const snapshot = {
45978
46021
  version: 3,
@@ -49035,7 +49078,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
49035
49078
  };
49036
49079
  }
49037
49080
  async function sweepActiveNearDuplicates(directory, options = {}) {
49038
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-sr9k8sh7.js");
49081
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-zp6fss8c.js");
49039
49082
  const { config } = loadPluginConfigWithMeta2(directory);
49040
49083
  const sweepConfig = config.learning?.dedup_sweep;
49041
49084
  if (sweepConfig?.enabled === false)
@@ -50159,7 +50202,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
50159
50202
  }
50160
50203
  if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
50161
50204
  try {
50162
- const skillModule = await import("./skill-generator-jme09w7n.js");
50205
+ const skillModule = await import("./skill-generator-5n7vf0s3.js");
50163
50206
  for (const cand of skillCandidates) {
50164
50207
  if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
50165
50208
  continue;
@@ -50631,7 +50674,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
50631
50674
  } catch {}
50632
50675
  }
50633
50676
  if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
50634
- const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-0rcft6q4.js");
50677
+ const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-5q4y97e4.js");
50635
50678
  for (const { id } of contradictedEntries) {
50636
50679
  try {
50637
50680
  await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
@@ -51463,7 +51506,7 @@ async function runCuratorPostMortem(directory, options = {}) {
51463
51506
  warnings.push("Failed to collect knowledge summary.");
51464
51507
  }
51465
51508
  try {
51466
- const { getScanStatus } = await import("./scan-cursor-7zn4t1hw.js");
51509
+ const { getScanStatus } = await import("./scan-cursor-edpbzp72.js");
51467
51510
  const scanStatus = await getScanStatus(directory);
51468
51511
  if (scanStatus.remaining_estimate > 0) {
51469
51512
  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.`);
@@ -51635,9 +51678,9 @@ var _internals55 = {
51635
51678
  verifyPostMortemKnowledgeActions,
51636
51679
  repairPostMortemActions,
51637
51680
  loadDefaultKnowledgeConfig: async (directory) => {
51638
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-tx62mfy8.js");
51681
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-dnsxhyr3.js");
51639
51682
  try {
51640
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-sr9k8sh7.js");
51683
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-zp6fss8c.js");
51641
51684
  const loaded = loadPluginConfigWithMeta2(directory);
51642
51685
  return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
51643
51686
  } catch {
@@ -51645,11 +51688,11 @@ var _internals55 = {
51645
51688
  }
51646
51689
  },
51647
51690
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
51648
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-dp49fr0p.js");
51691
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-9sn55eyk.js");
51649
51692
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
51650
51693
  },
51651
51694
  checkHivePromotions: async (entries2, knowledgeConfig, directory) => {
51652
- const { checkHivePromotions } = await import("./hive-promoter-g56ba4a4.js");
51695
+ const { checkHivePromotions } = await import("./hive-promoter-pktjn46n.js");
51653
51696
  return checkHivePromotions(entries2, knowledgeConfig, directory);
51654
51697
  },
51655
51698
  applyProposalTriage: async (directory, triage) => {
@@ -51658,7 +51701,7 @@ var _internals55 = {
51658
51701
  activateProposal,
51659
51702
  listSkills: listSkills2,
51660
51703
  sanitizeSlug
51661
- } = await import("./skill-generator-jme09w7n.js");
51704
+ } = await import("./skill-generator-5n7vf0s3.js");
51662
51705
  const result = {
51663
51706
  approved: [],
51664
51707
  rejected: [],
@@ -51700,7 +51743,7 @@ var _internals55 = {
51700
51743
  return result;
51701
51744
  },
51702
51745
  readPriorDriftReports: async (directory) => {
51703
- const { readPriorDriftReports: readPriorDriftReports2 } = await import("./curator-drift-r7w3cg3m.js");
51746
+ const { readPriorDriftReports: readPriorDriftReports2 } = await import("./curator-drift-d4jkgrba.js");
51704
51747
  return readPriorDriftReports2(directory);
51705
51748
  },
51706
51749
  readSwarmKnowledge: (directory) => readKnowledge(resolveSwarmKnowledgePath(directory))
@@ -61496,9 +61539,9 @@ var _internals65 = {
61496
61539
  loadPluginConfigWithMeta,
61497
61540
  loadCuratorDeps: async () => {
61498
61541
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate }] = await Promise.all([
61499
- import("./schema-tx62mfy8.js"),
61500
- import("./curator-dp49fr0p.js"),
61501
- import("./curator-llm-factory-tycc9xkw.js")
61542
+ import("./schema-dnsxhyr3.js"),
61543
+ import("./curator-9sn55eyk.js"),
61544
+ import("./curator-llm-factory-zwc2gpe7.js")
61502
61545
  ]);
61503
61546
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate };
61504
61547
  }
@@ -63832,7 +63875,7 @@ async function computeCurationDiagnostics(directory, entries2) {
63832
63875
  let scanCompleted = false;
63833
63876
  let scanRemaining = 0;
63834
63877
  try {
63835
- const { getScanStatus } = await import("./scan-cursor-7zn4t1hw.js");
63878
+ const { getScanStatus } = await import("./scan-cursor-edpbzp72.js");
63836
63879
  const status = await getScanStatus(directory);
63837
63880
  scanGeneration = status.generation;
63838
63881
  scanCompleted = status.completed;
@@ -63842,10 +63885,10 @@ async function computeCurationDiagnostics(directory, entries2) {
63842
63885
  try {
63843
63886
  const { isLinked: isLinked2 } = await import("./knowledge-link-655xa3db.js");
63844
63887
  if (isLinked2(directory)) {
63845
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-tx62mfy8.js");
63888
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-dnsxhyr3.js");
63846
63889
  let config;
63847
63890
  try {
63848
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-sr9k8sh7.js");
63891
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-zp6fss8c.js");
63849
63892
  const loaded = loadPluginConfigWithMeta2(directory);
63850
63893
  config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
63851
63894
  } catch {
@@ -65288,7 +65331,7 @@ async function handleDoctorCommand(directory, args) {
65288
65331
  const result = runConfigDoctor(config, directory);
65289
65332
  let output;
65290
65333
  if (enableAutoFix && result.hasAutoFixableIssues) {
65291
- const { runConfigDoctorWithFixes } = await import("./config-doctor-101n3c1r.js");
65334
+ const { runConfigDoctorWithFixes } = await import("./config-doctor-3cb51z08.js");
65292
65335
  const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
65293
65336
  applyLossy: true
65294
65337
  });
@@ -65326,7 +65369,7 @@ async function handleDoctorCommand(directory, args) {
65326
65369
  `;
65327
65370
  }
65328
65371
  try {
65329
- const { runModelPreflight } = await import("./model-preflight-szekh1dc.js");
65372
+ const { runModelPreflight } = await import("./model-preflight-xakn1356.js");
65330
65373
  const preflight = await runModelPreflight(config, swarmState.opencodeClient, { generatedAgentNames: swarmState.generatedAgentNames });
65331
65374
  const missingSelection = preflight.resolutions.filter((resolution) => resolution.status === "missing-selection");
65332
65375
  const unresolved = preflight.catalogAvailable ? preflight.resolutions.filter((resolution) => resolution.status === "unresolved") : [];
@@ -66253,7 +66296,7 @@ async function handleEvidenceCommand(directory, args) {
66253
66296
  return formatTaskEvidenceMarkdown(evidenceData);
66254
66297
  }
66255
66298
  async function handleEvidenceSummaryCommand(directory) {
66256
- const { buildEvidenceSummary } = await import("./evidence-summary-service-r648x5f2.js");
66299
+ const { buildEvidenceSummary } = await import("./evidence-summary-service-sb5seqs3.js");
66257
66300
  const artifact = await buildEvidenceSummary(directory);
66258
66301
  if (!artifact) {
66259
66302
  return "No plan found. Run `/swarm plan` to check plan status.";
@@ -90443,7 +90486,7 @@ function createCuratorLLMDelegate(directory, mode = "init", sessionId) {
90443
90486
  }
90444
90487
  const sdkOpts = signal ? { signal } : {};
90445
90488
  try {
90446
- const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-qdz43cne.js");
90489
+ const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-myacmqmf.js");
90447
90490
  const createResult = await client.session.create({
90448
90491
  ...sessionId ? {
90449
90492
  body: {
@@ -91185,7 +91228,7 @@ async function cancelPrFeedbackLoop(directory, sessionID, reason) {
91185
91228
  clearedEvents: []
91186
91229
  };
91187
91230
  try {
91188
- const { cancelPrFeedbackPublication: cancelPrFeedbackPublication2 } = await import("./pr-workflow-gate-qmfpz6wb.js");
91231
+ const { cancelPrFeedbackPublication: cancelPrFeedbackPublication2 } = await import("./pr-workflow-gate-b7yx0x21.js");
91189
91232
  await cancelPrFeedbackPublication2(directory, sessionID, reason);
91190
91233
  } catch (err) {
91191
91234
  warn(`[pr-feedback-loop] cancelPrFeedbackPublication failed (fail-open): ${err instanceof Error ? err.message : String(err)}`);
@@ -107831,7 +107874,7 @@ function buildDetailedHelp(commandName, entry) {
107831
107874
  async function handleHelpCommand(ctx) {
107832
107875
  const targetCommand = ctx.args.join(" ");
107833
107876
  if (!targetCommand) {
107834
- const { buildHelpText } = await import("./index-dy9mxh0z.js");
107877
+ const { buildHelpText } = await import("./index-12fxtcce.js");
107835
107878
  return buildHelpText();
107836
107879
  }
107837
107880
  const tokens = targetCommand.split(/\s+/);
@@ -107845,7 +107888,7 @@ async function handleHelpCommand(ctx) {
107845
107888
  > Note: \`/swarm ${resolved.key}\` is a deprecated alias for \`/swarm ${aliasTarget}\`.` : detailed;
107846
107889
  }
107847
107890
  const similar = _internals25.findSimilarCommands(targetCommand);
107848
- const { buildHelpText: fullHelp } = await import("./index-dy9mxh0z.js");
107891
+ const { buildHelpText: fullHelp } = await import("./index-12fxtcce.js");
107849
107892
  if (similar.length > 0) {
107850
107893
  return `Command '/swarm ${targetCommand}' not found.
107851
107894
 
@@ -108160,7 +108203,7 @@ var COMMAND_REGISTRY = {
108160
108203
  },
108161
108204
  "guardrail explain": {
108162
108205
  handler: async (ctx) => {
108163
- const { handleGuardrailExplain } = await import("./guardrail-explain-dfyj1g1c.js");
108206
+ const { handleGuardrailExplain } = await import("./guardrail-explain-a3hcrpwv.js");
108164
108207
  return handleGuardrailExplain(ctx.directory, ctx.args);
108165
108208
  },
108166
108209
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -108170,7 +108213,7 @@ var COMMAND_REGISTRY = {
108170
108213
  },
108171
108214
  "guardrail reset": {
108172
108215
  handler: async (ctx) => {
108173
- const { handleGuardrailReset } = await import("./guardrail-reset-eztc62va.js");
108216
+ const { handleGuardrailReset } = await import("./guardrail-reset-d6qmnvff.js");
108174
108217
  return handleGuardrailReset(ctx.args, ctx.sessionID);
108175
108218
  },
108176
108219
  description: "Reset one exact active invocation/action circuit after repair",
@@ -108191,7 +108234,7 @@ var COMMAND_REGISTRY = {
108191
108234
  },
108192
108235
  "guardrail-log": {
108193
108236
  handler: async (ctx) => {
108194
- const { handleGuardrailLog } = await import("./guardrail-log-yr60w7h6.js");
108237
+ const { handleGuardrailLog } = await import("./guardrail-log-ftv03v4x.js");
108195
108238
  return handleGuardrailLog(ctx.directory, ctx.args);
108196
108239
  },
108197
108240
  description: "Read the guardrail decision log (use --blocks-only for blocks)",
@@ -109945,6 +109988,14 @@ Mutation delegations are performed by calling the **Task** tool. Read-only advis
109945
109988
  All delegations MUST follow the receiving agent's INPUT FORMAT exactly. Do NOT invent fields, omit required fields, or force one agent's schema onto another. Every delegation MUST begin with the agent name, include \`TASK:\`, and include \`SKILLS:\` when that agent prompt supports skills.
109946
109989
  Do NOT add conversational preamble before the agent prefix. Begin directly with the agent name.
109947
109990
 
109991
+ TASK ATTRIBUTION: For task-scoped delegations, put the exact numeric plan task ID
109992
+ alone on a standalone \`TASK:\` line (for example, \`TASK: 1.1\`) and put the objective
109993
+ on the following line. When the Task arguments support an explicit field, set
109994
+ \`task_id\` to the same numeric value as a tool argument (not as prompt prose). Keep
109995
+ the numeric ID consistent across the TASK line, \`task_id\`, and any acceptance text.
109996
+ Plan-level critics and other project-wide reviews must omit task attribution rather
109997
+ than guessing from ambient prose or session state.
109998
+
109948
109999
  {{AGENT_PREFIX}}[agent]
109949
110000
  TASK: [single objective]
109950
110001
  [agent-specific fields required by that agent's INPUT FORMAT]
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  init_loader,
4
4
  loadPluginConfigWithMeta
5
- } from "./index-hcaspktr.js";
5
+ } from "./index-6jrn46zy.js";
6
6
  import {
7
7
  init_schema
8
- } from "./index-rchygh27.js";
8
+ } from "./index-3ga3ts3h.js";
9
9
  import {
10
10
  DEFAULT_WORKTREE_ISOLATION_CONFIG,
11
11
  init_constants
@@ -12,7 +12,7 @@ import {
12
12
  PluginConfigSchema,
13
13
  init_schema,
14
14
  stripKnownSwarmPrefix
15
- } from "./index-rchygh27.js";
15
+ } from "./index-3ga3ts3h.js";
16
16
  import {
17
17
  ALL_AGENT_NAMES,
18
18
  TOOL_NAME_SET,
@@ -739,7 +739,7 @@ async function applyConfidenceFloorAction(directory, touched, options) {
739
739
  const {
740
740
  readAuthoritativeKnowledgeCounterRollups,
741
741
  effectiveRetrievalOutcomes
742
- } = await import("./knowledge-events-7jyz3qxs.js");
742
+ } = await import("./knowledge-events-x7q8yepd.js");
743
743
  const rollups = await readAuthoritativeKnowledgeCounterRollups(directory);
744
744
  const flagIds = new Set;
745
745
  for (const e of atFloor) {
@@ -806,11 +806,11 @@ async function applyConfidenceFloorAction(directory, touched, options) {
806
806
  });
807
807
  }
808
808
  if (action === "quarantine" && toQuarantine.length > 0) {
809
- const { quarantineEntry } = await import("./knowledge-validator-j3x9ezej.js");
810
- const { KnowledgeConfigSchema } = await import("./schema-tx62mfy8.js");
809
+ const { quarantineEntry } = await import("./knowledge-validator-e78m6cqe.js");
810
+ const { KnowledgeConfigSchema } = await import("./schema-dnsxhyr3.js");
811
811
  let config;
812
812
  try {
813
- const { loadPluginConfigWithMeta } = await import("./index-sr9k8sh7.js");
813
+ const { loadPluginConfigWithMeta } = await import("./index-zp6fss8c.js");
814
814
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
815
815
  config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
816
816
  } catch {
@@ -4,7 +4,7 @@ import {
4
4
  readShellAuditTail,
5
5
  redactPath,
6
6
  redactShellCommand
7
- } from "./index-mdqp0cq2.js";
7
+ } from "./index-gtpq64q7.js";
8
8
 
9
9
  // src/services/guardrail-log-service.ts
10
10
  var BLOCK_TYPES = new Set([
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  init_loader,
11
11
  loadPluginConfig
12
- } from "./index-hcaspktr.js";
12
+ } from "./index-6jrn46zy.js";
13
13
  import {
14
14
  init_logger,
15
15
  log,
@@ -25,11 +25,11 @@ import {
25
25
  import {
26
26
  init_loader,
27
27
  loadPluginConfig
28
- } from "./index-hcaspktr.js";
28
+ } from "./index-6jrn46zy.js";
29
29
  import {
30
30
  init_package,
31
31
  package_default
32
- } from "./index-rchygh27.js";
32
+ } from "./index-3ga3ts3h.js";
33
33
  import {
34
34
  criticalWarn,
35
35
  init_logger,
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  init_schema,
10
10
  stripKnownSwarmPrefix
11
- } from "./index-rchygh27.js";
11
+ } from "./index-3ga3ts3h.js";
12
12
  import {
13
13
  init_constants
14
14
  } from "./index-2t21pv2v.js";