opencode-swarm 7.170.0 → 7.170.2

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 (73) 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/agents/reviewer-directive-compliance.d.ts +23 -7
  4. package/dist/cli/{coder-settlement-65zx1bet.js → coder-settlement-rrm3ngsa.js} +7 -7
  5. package/dist/cli/{config-doctor-c30rss1c.js → config-doctor-rnfyv55m.js} +2 -2
  6. package/dist/cli/{core-8wkbr1tr.js → core-b161yfjy.js} +1 -1
  7. package/dist/cli/{curation-policy-k74qz9ms.js → curation-policy-tg84dnnd.js} +4 -4
  8. package/dist/cli/{curator-pckzk1q4.js → curator-dfcpzqwr.js} +28 -28
  9. package/dist/cli/{curator-llm-factory-jkjqasfs.js → curator-llm-factory-cjrh0sa3.js} +28 -28
  10. package/dist/cli/{evidence-summary-service-4ydcapke.js → evidence-summary-service-7jfq6dax.js} +11 -11
  11. package/dist/cli/{gate-evidence-xwqfky3m.js → gate-evidence-0e70dqjg.js} +4 -4
  12. package/dist/cli/{guardrail-explain-fe2veh2s.js → guardrail-explain-a40pmzzc.js} +29 -29
  13. package/dist/cli/{guardrail-log-z38j69bx.js → guardrail-log-71wvwyd0.js} +6 -6
  14. package/dist/cli/{guardrail-reset-mmnzt4mz.js → guardrail-reset-znw5636e.js} +28 -28
  15. package/dist/cli/{hive-promoter-68hrw1y1.js → hive-promoter-pznn5yfn.js} +28 -28
  16. package/dist/cli/{index-ye43mdfm.js → index-19xctk9g.js} +1 -1
  17. package/dist/cli/{index-3eh2n3dx.js → index-1kt9xbrt.js} +2 -2
  18. package/dist/cli/{index-mjn6aqqk.js → index-24pamt0h.js} +2 -2
  19. package/dist/cli/{index-td6xrw55.js → index-29gnavqx.js} +1 -1
  20. package/dist/cli/{index-06rbdzqn.js → index-2q6qj0vw.js} +3 -3
  21. package/dist/cli/{index-3p3y55xg.js → index-3q7bb7qz.js} +7 -7
  22. package/dist/cli/{index-r1z8nrb6.js → index-45x6meqp.js} +5 -5
  23. package/dist/cli/{index-9xk97bcf.js → index-4m9hfbhe.js} +3 -3
  24. package/dist/cli/{index-xnpjwc4h.js → index-4say55ww.js} +1 -1
  25. package/dist/cli/{index-5qt9yf5w.js → index-5y7kqjyt.js} +1 -1
  26. package/dist/cli/{index-gfbggp8k.js → index-70avfxnw.js} +3 -3
  27. package/dist/cli/{index-xztkjj3c.js → index-7a180w76.js} +30 -30
  28. package/dist/cli/{index-j144fgk8.js → index-7htmxmjp.js} +71 -70
  29. package/dist/cli/{index-z5vas8c3.js → index-7pgzjj3z.js} +28 -28
  30. package/dist/cli/{index-nprdr0sm.js → index-7sz2rkx3.js} +2 -2
  31. package/dist/cli/{index-31sqcdsd.js → index-8v2k9xqv.js} +4 -4
  32. package/dist/cli/{index-4wc5gfgm.js → index-9g3c0w22.js} +1 -1
  33. package/dist/cli/{index-59fcfpkh.js → index-9vxaf499.js} +1 -1
  34. package/dist/cli/{index-7h01bkm6.js → index-a0vggadp.js} +1 -1
  35. package/dist/cli/{index-8w1mrvbd.js → index-d1sdve0x.js} +7 -7
  36. package/dist/cli/{index-pw00xcj0.js → index-dbg2g834.js} +4 -4
  37. package/dist/cli/{index-n0d5hrs4.js → index-efkxjmdb.js} +2 -2
  38. package/dist/cli/{index-9ttqbhvw.js → index-g0q47r3r.js} +1 -1
  39. package/dist/cli/{index-zw3hkzch.js → index-g2sc35qk.js} +12 -4
  40. package/dist/cli/{index-p6fj7qz7.js → index-gs4m1dxw.js} +3 -3
  41. package/dist/cli/{index-5bbem0ey.js → index-j1tjd6aq.js} +5 -5
  42. package/dist/cli/{index-fgp96k3r.js → index-p6zt0qm1.js} +2 -2
  43. package/dist/cli/{index-bx1wgn3a.js → index-sf32ny5w.js} +1 -1
  44. package/dist/cli/{index-0xprxg95.js → index-w79t20a6.js} +3 -3
  45. package/dist/cli/{index-3axdtaf0.js → index-we9jztxd.js} +4 -4
  46. package/dist/cli/{index-ssx8087p.js → index-x067zyvp.js} +6 -6
  47. package/dist/cli/{index-t73888m0.js → index-z4ewmn1h.js} +1 -1
  48. package/dist/cli/{index-bm5xrfnx.js → index-zr6ev5kt.js} +1 -1
  49. package/dist/cli/index.js +28 -28
  50. package/dist/cli/{knowledge-escalator-pz2faktx.js → knowledge-escalator-95gqgg8e.js} +10 -10
  51. package/dist/cli/{knowledge-events-s6s8qedx.js → knowledge-events-hcx770h3.js} +8 -8
  52. package/dist/cli/{knowledge-link-rkxfrmhm.js → knowledge-link-twmzh8cf.js} +3 -3
  53. package/dist/cli/{knowledge-store-dgv3xw3h.js → knowledge-store-ppmrqs41.js} +4 -4
  54. package/dist/cli/{knowledge-validator-22qppdyv.js → knowledge-validator-63rfvqmw.js} +6 -6
  55. package/dist/cli/{pending-delegations-4r21nf9d.js → pending-delegations-dqdetx92.js} +6 -6
  56. package/dist/cli/{pr-subscriptions-d52xy3zd.js → pr-subscriptions-z9t7f7m0.js} +6 -6
  57. package/dist/cli/{pr-workflow-gate-0de81kzw.js → pr-workflow-gate-wqrcb5m8.js} +28 -28
  58. package/dist/cli/{runner-1dwrgyyr.js → runner-2r5j33tm.js} +4 -4
  59. package/dist/cli/{scan-cursor-ahbbejab.js → scan-cursor-xzmmf7r4.js} +5 -5
  60. package/dist/cli/{schema-17h2hcw9.js → schema-6bn7mj29.js} +1 -1
  61. package/dist/cli/{scope-persistence-gcn3zm5e.js → scope-persistence-wyg0rb07.js} +10 -10
  62. package/dist/cli/{skill-generator-hkqr5qs7.js → skill-generator-kwnwapfn.js} +12 -12
  63. package/dist/cli/{snapshot-coordination-init-ms36zxv6.js → snapshot-coordination-init-ajvmd1z6.js} +28 -28
  64. package/dist/cli/{telemetry-fdtaemnv.js → telemetry-yst95z2f.js} +1 -1
  65. package/dist/cli/{worktree-collision-ownership-7v7gg511.js → worktree-collision-ownership-dm6nq9yw.js} +6 -6
  66. package/dist/cli/{worktree-isolation-nanamt25.js → worktree-isolation-b10h20sv.js} +28 -28
  67. package/dist/hooks/incremental-verify.d.ts +3 -1
  68. package/dist/hooks/normalize-tool-name.d.ts +16 -0
  69. package/dist/hooks/phase-complete-directive-gate.d.ts +13 -0
  70. package/dist/hooks/phase-directives.d.ts +31 -2
  71. package/dist/hooks/reviewer-verdict-parser.d.ts +6 -1
  72. package/dist/index.js +35 -27
  73. package/package.json +1 -1
@@ -16,16 +16,17 @@ import {
16
16
  resolveExecutableFromPath,
17
17
  runEvaluation,
18
18
  runExternalTool
19
- } from "./index-7h01bkm6.js";
19
+ } from "./index-a0vggadp.js";
20
20
  import {
21
21
  finalizeShellAuditForClose,
22
22
  isPolicyProtectedPath,
23
+ isTaskToolId,
23
24
  normalizeToolName,
24
25
  normalizeToolNameLowerCase,
25
26
  protectedRoots,
26
27
  redactDecisionLineForArchive,
27
28
  stableCanonicalStringify
28
- } from "./index-zw3hkzch.js";
29
+ } from "./index-g2sc35qk.js";
29
30
  import {
30
31
  canonicalProjectKey,
31
32
  closeGroupCommitWriter,
@@ -38,7 +39,7 @@ import {
38
39
  readDoctorArtifact,
39
40
  removeStraySwarmDir,
40
41
  runConfigDoctor
41
- } from "./index-ye43mdfm.js";
42
+ } from "./index-19xctk9g.js";
42
43
  import {
43
44
  MAX_TRANSIENT_RETRIES,
44
45
  archiveEvidence,
@@ -80,7 +81,7 @@ import {
80
81
  updateTaskStatus,
81
82
  validateProjectRoot,
82
83
  withPlanLifecycleLock
83
- } from "./index-3p3y55xg.js";
84
+ } from "./index-3q7bb7qz.js";
84
85
  import {
85
86
  EvaluationTaskV1Schema,
86
87
  GateAuditManifestV1Schema,
@@ -97,7 +98,7 @@ import {
97
98
  saveGateAuditResult,
98
99
  savePromotionDecision,
99
100
  saveTaskSetSnapshot
100
- } from "./index-xnpjwc4h.js";
101
+ } from "./index-4say55ww.js";
101
102
  import {
102
103
  canonicalHash,
103
104
  canonicalJson,
@@ -145,15 +146,15 @@ import {
145
146
  retireSkill,
146
147
  selectCandidateEntries,
147
148
  syncBundledProjectSkillsIfMissingAsync
148
- } from "./index-9xk97bcf.js";
149
+ } from "./index-4m9hfbhe.js";
149
150
  import {
150
151
  readRecentEscalations
151
- } from "./index-r1z8nrb6.js";
152
+ } from "./index-45x6meqp.js";
152
153
  import {
153
154
  alreadyCuratedThisGeneration,
154
155
  claimNextScanBatch,
155
156
  resolveCohortId
156
- } from "./index-3eh2n3dx.js";
157
+ } from "./index-1kt9xbrt.js";
157
158
  import {
158
159
  CURATOR_CONSOLIDATION_PROMPT,
159
160
  CURATOR_INIT_PROMPT,
@@ -173,7 +174,7 @@ import {
173
174
  sweepStale,
174
175
  unsubscribe,
175
176
  updateSnapshot
176
- } from "./index-gfbggp8k.js";
177
+ } from "./index-70avfxnw.js";
177
178
  import {
178
179
  clearWorktreeMergeStatus,
179
180
  getAllWorktreeMergeFailures,
@@ -185,7 +186,7 @@ import {
185
186
  listCoderSettlementWalStates,
186
187
  recoverCoderSettlement,
187
188
  recoverStaleCoderSettlements
188
- } from "./index-5bbem0ey.js";
189
+ } from "./index-j1tjd6aq.js";
189
190
  import {
190
191
  parsePorcelainV2Snapshot,
191
192
  resolveCommitCountSince,
@@ -256,7 +257,7 @@ import {
256
257
  transitionTaskWorkflowEvidence,
257
258
  withTaskEvidenceTransaction,
258
259
  writeWorkflowWalFile
259
- } from "./index-06rbdzqn.js";
260
+ } from "./index-2q6qj0vw.js";
260
261
  import {
261
262
  isPathUnderSwarmWorktreeBase,
262
263
  listLiveLaneOwners,
@@ -265,7 +266,7 @@ import {
265
266
  recordLiveLaneOwner,
266
267
  removeWorktree,
267
268
  resolveWorktreeBaseDir
268
- } from "./index-59fcfpkh.js";
269
+ } from "./index-9vxaf499.js";
269
270
  import {
270
271
  DEFAULT_STALE_DELEGATION_TIMEOUT_MS,
271
272
  DELEGATION_COMPACTION_HIGH_WATER_BYTES,
@@ -299,7 +300,7 @@ import {
299
300
  scanBackgroundCoderReservationsForAdmission,
300
301
  scanDelegationsForRecovery,
301
302
  sweepStaleDelegations
302
- } from "./index-0xprxg95.js";
303
+ } from "./index-w79t20a6.js";
303
304
  import {
304
305
  MAX_EVENT_LOG_ENTRIES,
305
306
  _internals,
@@ -315,7 +316,7 @@ import {
315
316
  recordKnowledgeEvent,
316
317
  recordPhaseCloseIntent,
317
318
  resolveKnowledgeEventsPath
318
- } from "./index-8w1mrvbd.js";
319
+ } from "./index-d1sdve0x.js";
319
320
  import {
320
321
  estimateTokens,
321
322
  readSwarmFileAsync,
@@ -341,18 +342,18 @@ import {
341
342
  validateActionableFields,
342
343
  validateLesson,
343
344
  validateSkillPath
344
- } from "./index-31sqcdsd.js";
345
+ } from "./index-8v2k9xqv.js";
345
346
  import {
346
347
  MAX_CURATION_PROPOSALS,
347
348
  authorizeCuration,
348
349
  buildConfigFingerprintInput
349
- } from "./index-bm5xrfnx.js";
350
+ } from "./index-zr6ev5kt.js";
350
351
  import {
351
352
  cohortConfigFingerprint
352
353
  } from "./index-rtry5xyf.js";
353
354
  import {
354
355
  resolveWorktreeIsolationConfig
355
- } from "./index-mjn6aqqk.js";
356
+ } from "./index-24pamt0h.js";
356
357
  import {
357
358
  RetrospectiveEvidenceSchema
358
359
  } from "./index-3qf1vxtb.js";
@@ -362,7 +363,7 @@ import {
362
363
  clearAllScopes,
363
364
  clearScopeBindingFromDisk,
364
365
  clearScopeBindings
365
- } from "./index-3axdtaf0.js";
366
+ } from "./index-we9jztxd.js";
366
367
  import {
367
368
  clearPlanLedgerForReset,
368
369
  computePlanStructureHash,
@@ -378,7 +379,7 @@ import {
378
379
  replayFromLedgerWithStatus,
379
380
  resolvePlanningProfile,
380
381
  takeSnapshotEvent
381
- } from "./index-pw00xcj0.js";
382
+ } from "./index-dbg2g834.js";
382
383
  import {
383
384
  CORE_EVENT_LOCKED,
384
385
  appendCoreEventSync,
@@ -388,7 +389,7 @@ import {
388
389
  hasSpecDriftAuditEvent,
389
390
  hasTaskRepairAuditEvent,
390
391
  readCoreEvents
391
- } from "./index-fgp96k3r.js";
392
+ } from "./index-p6zt0qm1.js";
392
393
  import {
393
394
  DEFAULT_QA_GATES,
394
395
  computeProfileHash,
@@ -431,7 +432,7 @@ import {
431
432
  observeCuratorCompliance,
432
433
  observeStoreHealth,
433
434
  readLearningHealth
434
- } from "./index-5qt9yf5w.js";
435
+ } from "./index-5y7kqjyt.js";
435
436
  import {
436
437
  appendKnowledge,
437
438
  appendRejectedLesson,
@@ -461,7 +462,7 @@ import {
461
462
  transactFile,
462
463
  transactKnowledge,
463
464
  wordBigrams
464
- } from "./index-ssx8087p.js";
465
+ } from "./index-x067zyvp.js";
465
466
  import {
466
467
  readTailJsonl,
467
468
  readTailJsonlDetailed,
@@ -482,7 +483,7 @@ import {
482
483
  resolveLinkDir,
483
484
  sanitizeLinkId,
484
485
  writeLinkPointer
485
- } from "./index-9ttqbhvw.js";
486
+ } from "./index-g0q47r3r.js";
486
487
  import {
487
488
  assertProjectRoot,
488
489
  atomicWriteFile,
@@ -491,7 +492,7 @@ import {
491
492
  listActiveLocks,
492
493
  tryAcquireLock,
493
494
  withEvidenceLock
494
- } from "./index-bx1wgn3a.js";
495
+ } from "./index-sf32ny5w.js";
495
496
  import {
496
497
  require_proper_lockfile
497
498
  } from "./index-7g4c7s5r.js";
@@ -502,7 +503,7 @@ import {
502
503
  extractWorkflowIds,
503
504
  getLastHeartbeat,
504
505
  telemetry
505
- } from "./index-nprdr0sm.js";
506
+ } from "./index-7sz2rkx3.js";
506
507
  import {
507
508
  atomicWriteSwarmFile,
508
509
  atomicWriteSwarmFileSync,
@@ -527,7 +528,7 @@ import {
527
528
  loadGateOverrides,
528
529
  loadPluginConfig,
529
530
  loadPluginConfigWithMeta
530
- } from "./index-td6xrw55.js";
531
+ } from "./index-29gnavqx.js";
531
532
  import {
532
533
  init_git_executable,
533
534
  resolveGitExecutable,
@@ -556,7 +557,7 @@ import {
556
557
  resolveAutoReviewConfig,
557
558
  resolveGeneratedAgentRole,
558
559
  stripKnownSwarmPrefix
559
- } from "./index-4wc5gfgm.js";
560
+ } from "./index-9g3c0w22.js";
560
561
  import {
561
562
  AGENT_TOOL_MAP,
562
563
  ALL_AGENT_NAMES,
@@ -3170,7 +3171,7 @@ async function importLegacyPrWorkflowGateStateIfNeeded(directory, sessionID, all
3170
3171
  return null;
3171
3172
  throw error2;
3172
3173
  }
3173
- const legacy = allowSalvagedImport ? (await (await import("./pr-workflow-gate-0de81kzw.js")).readPrWorkflowGateStateForRecovery(directory, sessionID))?.state ?? null : await readPrWorkflowGateStateFileFromDisk(filePath, sessionID);
3174
+ const legacy = allowSalvagedImport ? (await (await import("./pr-workflow-gate-wqrcb5m8.js")).readPrWorkflowGateStateForRecovery(directory, sessionID))?.state ?? null : await readPrWorkflowGateStateFileFromDisk(filePath, sessionID);
3174
3175
  if (!legacy)
3175
3176
  return null;
3176
3177
  const namespace = workflowGateStateCoordinationNamespace(sessionID);
@@ -3240,7 +3241,7 @@ async function deleteStateWhileLocked(directory, sessionID, options = {}) {
3240
3241
  let recoveryState = null;
3241
3242
  if (!currentAuthoritative) {
3242
3243
  if (options.allowSalvagedRead) {
3243
- const { readPrWorkflowGateStateForRecovery } = await import("./pr-workflow-gate-0de81kzw.js");
3244
+ const { readPrWorkflowGateStateForRecovery } = await import("./pr-workflow-gate-wqrcb5m8.js");
3244
3245
  recoveryState = (await readPrWorkflowGateStateForRecovery(directory, normalizedSessionID))?.state ?? null;
3245
3246
  }
3246
3247
  if (!recoveryState) {
@@ -6878,7 +6879,7 @@ var NETWORK_TOOLS = new Set([
6878
6879
  "request",
6879
6880
  "gitingest"
6880
6881
  ]);
6881
- var SUBAGENT_TOOLS = new Set(["task", "agent", "delegate"]);
6882
+ var SUBAGENT_TOOLS = new Set(["agent", "delegate"]);
6882
6883
 
6883
6884
  // src/parallel/review-router.ts
6884
6885
  init_git_executable();
@@ -13874,7 +13875,7 @@ function isLaneOwnedByCurrentSession(branchName, expectedSessionId) {
13874
13875
  return extracted === expectedSessionId;
13875
13876
  }
13876
13877
  async function inspectStandardWorktreeCollisionOwnership(identity) {
13877
- const collisionOwnership = await import("./worktree-collision-ownership-7v7gg511.js");
13878
+ const collisionOwnership = await import("./worktree-collision-ownership-dm6nq9yw.js");
13878
13879
  return collisionOwnership.inspectStandardWorktreeCollisionOwnership(identity);
13879
13880
  }
13880
13881
  async function runRecoveryGit(directory, args, timeoutMs = 15000) {
@@ -14300,7 +14301,7 @@ async function precreateStandardWorktreeSession(args) {
14300
14301
  const laneProfile = computeLaneRuntimeProfile(worktreeConfig.runtime_isolation, laneIndex, handle.worktreePath);
14301
14302
  if (laneProfile) {
14302
14303
  try {
14303
- const { writeLaneProfileToDiskReal } = await import("./core-8wkbr1tr.js");
14304
+ const { writeLaneProfileToDiskReal } = await import("./core-b161yfjy.js");
14304
14305
  await writeLaneProfileToDiskReal(handle.worktreePath, laneProfile.laneIndex, laneProfile.envOverrides);
14305
14306
  } catch {}
14306
14307
  }
@@ -15271,7 +15272,7 @@ async function finishStandardWorktreeDispatch(directory, dispatch, config, callI
15271
15272
  }
15272
15273
  clearWorktreeMergeStatus(statusKey);
15273
15274
  try {
15274
- const { removeLaneProfileFromDiskReal } = await import("./core-8wkbr1tr.js");
15275
+ const { removeLaneProfileFromDiskReal } = await import("./core-b161yfjy.js");
15275
15276
  await removeLaneProfileFromDiskReal(dispatch.handle.worktreePath, dispatch.laneIndex);
15276
15277
  } catch {}
15277
15278
  const state = serializationStateBySessionID.get(dispatch.parentSessionID);
@@ -21795,7 +21796,7 @@ function getDisplayFinalPromptPressure() {
21795
21796
  async function rehydratePrSubscriptions(sessionID, directory) {
21796
21797
  const map = new Map;
21797
21798
  try {
21798
- const { listActive: listActive2 } = await import("./pr-subscriptions-d52xy3zd.js");
21799
+ const { listActive: listActive2 } = await import("./pr-subscriptions-z9t7f7m0.js");
21799
21800
  const records = await listActive2(directory);
21800
21801
  for (const record of records) {
21801
21802
  if (record.sessionID !== sessionID)
@@ -38114,9 +38115,9 @@ function hashContent(content) {
38114
38115
  return createHash23("sha1").update(content).digest("hex");
38115
38116
  }
38116
38117
  async function loadConfigForPolicyCurator(directory) {
38117
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-17h2hcw9.js");
38118
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-6bn7mj29.js");
38118
38119
  try {
38119
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-p6fj7qz7.js");
38120
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-gs4m1dxw.js");
38120
38121
  const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
38121
38122
  return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
38122
38123
  } catch {
@@ -41174,7 +41175,7 @@ async function resolveCuratorLLMDelegate(directory, mode, sessionId) {
41174
41175
  const seam = _internals35.createCuratorLLMDelegate;
41175
41176
  if (seam)
41176
41177
  return seam(directory, mode, sessionId);
41177
- const { createCuratorLLMDelegate } = await import("./curator-llm-factory-jkjqasfs.js");
41178
+ const { createCuratorLLMDelegate } = await import("./curator-llm-factory-cjrh0sa3.js");
41178
41179
  return createCuratorLLMDelegate(directory, mode, sessionId);
41179
41180
  }
41180
41181
  async function reconcileCloseTerminalStateForPlan(directory, targetPlan, options) {
@@ -41569,7 +41570,7 @@ async function runFinalizeStage(ctx) {
41569
41570
  }
41570
41571
  }
41571
41572
  try {
41572
- const { CuratorConfigSchema: CCS } = await import("./schema-17h2hcw9.js");
41573
+ const { CuratorConfigSchema: CCS } = await import("./schema-6bn7mj29.js");
41573
41574
  const { config: pmLoadedConfig } = _internals35.loadPluginConfigWithMeta(ctx.directory);
41574
41575
  const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
41575
41576
  if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
@@ -43386,7 +43387,7 @@ function serializeAgentSession(s) {
43386
43387
  }
43387
43388
  async function writeSnapshot(directory, state) {
43388
43389
  try {
43389
- const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-ms36zxv6.js");
43390
+ const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-ajvmd1z6.js");
43390
43391
  await ensureSnapshotCoordinationReady(directory);
43391
43392
  const snapshot = {
43392
43393
  version: 3,
@@ -46042,7 +46043,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
46042
46043
  };
46043
46044
  }
46044
46045
  async function sweepActiveNearDuplicates(directory, options = {}) {
46045
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-p6fj7qz7.js");
46046
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-gs4m1dxw.js");
46046
46047
  const { config } = loadPluginConfigWithMeta2(directory);
46047
46048
  const sweepConfig = config.learning?.dedup_sweep;
46048
46049
  if (sweepConfig?.enabled === false)
@@ -47166,7 +47167,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
47166
47167
  }
47167
47168
  if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
47168
47169
  try {
47169
- const skillModule = await import("./skill-generator-hkqr5qs7.js");
47170
+ const skillModule = await import("./skill-generator-kwnwapfn.js");
47170
47171
  for (const cand of skillCandidates) {
47171
47172
  if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
47172
47173
  continue;
@@ -47638,7 +47639,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
47638
47639
  } catch {}
47639
47640
  }
47640
47641
  if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
47641
- const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-pz2faktx.js");
47642
+ const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-95gqgg8e.js");
47642
47643
  for (const { id } of contradictedEntries) {
47643
47644
  try {
47644
47645
  await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
@@ -48470,7 +48471,7 @@ async function runCuratorPostMortem(directory, options = {}) {
48470
48471
  warnings.push("Failed to collect knowledge summary.");
48471
48472
  }
48472
48473
  try {
48473
- const { getScanStatus } = await import("./scan-cursor-ahbbejab.js");
48474
+ const { getScanStatus } = await import("./scan-cursor-xzmmf7r4.js");
48474
48475
  const scanStatus = await getScanStatus(directory);
48475
48476
  if (scanStatus.remaining_estimate > 0) {
48476
48477
  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.`);
@@ -48642,9 +48643,9 @@ var _internals51 = {
48642
48643
  verifyPostMortemKnowledgeActions,
48643
48644
  repairPostMortemActions,
48644
48645
  loadDefaultKnowledgeConfig: async (directory) => {
48645
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-17h2hcw9.js");
48646
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-6bn7mj29.js");
48646
48647
  try {
48647
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-p6fj7qz7.js");
48648
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-gs4m1dxw.js");
48648
48649
  const loaded = loadPluginConfigWithMeta2(directory);
48649
48650
  return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
48650
48651
  } catch {
@@ -48652,11 +48653,11 @@ var _internals51 = {
48652
48653
  }
48653
48654
  },
48654
48655
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
48655
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-pckzk1q4.js");
48656
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-dfcpzqwr.js");
48656
48657
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
48657
48658
  },
48658
48659
  checkHivePromotions: async (entries2, knowledgeConfig, directory) => {
48659
- const { checkHivePromotions } = await import("./hive-promoter-68hrw1y1.js");
48660
+ const { checkHivePromotions } = await import("./hive-promoter-pznn5yfn.js");
48660
48661
  return checkHivePromotions(entries2, knowledgeConfig, directory);
48661
48662
  },
48662
48663
  applyProposalTriage: async (directory, triage) => {
@@ -48665,7 +48666,7 @@ var _internals51 = {
48665
48666
  activateProposal,
48666
48667
  listSkills: listSkills2,
48667
48668
  sanitizeSlug
48668
- } = await import("./skill-generator-hkqr5qs7.js");
48669
+ } = await import("./skill-generator-kwnwapfn.js");
48669
48670
  const result = {
48670
48671
  approved: [],
48671
48672
  rejected: [],
@@ -56186,7 +56187,7 @@ function wireCloseInternals() {
56186
56187
  archiveEvidence,
56187
56188
  endAgentSession,
56188
56189
  flushAndDrainTelemetry: async () => {
56189
- const { flushAndDrainTelemetry } = await import("./telemetry-fdtaemnv.js");
56190
+ const { flushAndDrainTelemetry } = await import("./telemetry-yst95z2f.js");
56190
56191
  return flushAndDrainTelemetry();
56191
56192
  },
56192
56193
  finalizeContextTelemetry,
@@ -57538,9 +57539,9 @@ var _internals60 = {
57538
57539
  loadPluginConfigWithMeta,
57539
57540
  loadCuratorDeps: async () => {
57540
57541
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate }] = await Promise.all([
57541
- import("./schema-17h2hcw9.js"),
57542
- import("./curator-pckzk1q4.js"),
57543
- import("./curator-llm-factory-jkjqasfs.js")
57542
+ import("./schema-6bn7mj29.js"),
57543
+ import("./curator-dfcpzqwr.js"),
57544
+ import("./curator-llm-factory-cjrh0sa3.js")
57544
57545
  ]);
57545
57546
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate };
57546
57547
  }
@@ -58537,7 +58538,7 @@ async function computeCurationDiagnostics(directory, entries2) {
58537
58538
  let scanCompleted = false;
58538
58539
  let scanRemaining = 0;
58539
58540
  try {
58540
- const { getScanStatus } = await import("./scan-cursor-ahbbejab.js");
58541
+ const { getScanStatus } = await import("./scan-cursor-xzmmf7r4.js");
58541
58542
  const status = await getScanStatus(directory);
58542
58543
  scanGeneration = status.generation;
58543
58544
  scanCompleted = status.completed;
@@ -58545,19 +58546,19 @@ async function computeCurationDiagnostics(directory, entries2) {
58545
58546
  } catch {}
58546
58547
  let configMatch = null;
58547
58548
  try {
58548
- const { isLinked: isLinked2 } = await import("./knowledge-link-rkxfrmhm.js");
58549
+ const { isLinked: isLinked2 } = await import("./knowledge-link-twmzh8cf.js");
58549
58550
  if (isLinked2(directory)) {
58550
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-17h2hcw9.js");
58551
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-6bn7mj29.js");
58551
58552
  let config;
58552
58553
  try {
58553
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-p6fj7qz7.js");
58554
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-gs4m1dxw.js");
58554
58555
  const loaded = loadPluginConfigWithMeta2(directory);
58555
58556
  config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
58556
58557
  } catch {
58557
58558
  config = KnowledgeConfigSchema2.parse({});
58558
58559
  }
58559
58560
  const { cohortConfigFingerprint: cohortConfigFingerprint2 } = await import("./config-fingerprint-v22xh5a2.js");
58560
- const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-k74qz9ms.js");
58561
+ const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-tg84dnnd.js");
58561
58562
  const currentFp = cohortConfigFingerprint2(buildConfigFingerprintInput2(config));
58562
58563
  const cohortFp = await readCohortConfigFingerprint(directory);
58563
58564
  configMatch = cohortFp === null ? null : currentFp === cohortFp;
@@ -59948,7 +59949,7 @@ async function handleDoctorCommand(directory, args) {
59948
59949
  const result = runConfigDoctor(config, directory);
59949
59950
  let output;
59950
59951
  if (enableAutoFix && result.hasAutoFixableIssues) {
59951
- const { runConfigDoctorWithFixes } = await import("./config-doctor-c30rss1c.js");
59952
+ const { runConfigDoctorWithFixes } = await import("./config-doctor-rnfyv55m.js");
59952
59953
  const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
59953
59954
  applyLossy: true
59954
59955
  });
@@ -60902,7 +60903,7 @@ async function handleEvidenceCommand(directory, args) {
60902
60903
  return formatTaskEvidenceMarkdown(evidenceData);
60903
60904
  }
60904
60905
  async function handleEvidenceSummaryCommand(directory) {
60905
- const { buildEvidenceSummary } = await import("./evidence-summary-service-4ydcapke.js");
60906
+ const { buildEvidenceSummary } = await import("./evidence-summary-service-7jfq6dax.js");
60906
60907
  const artifact = await buildEvidenceSummary(directory);
60907
60908
  if (!artifact) {
60908
60909
  return "No plan found. Run `/swarm plan` to check plan status.";
@@ -80906,7 +80907,7 @@ function createCuratorLLMDelegate(directory, mode = "init", sessionId) {
80906
80907
  }
80907
80908
  const sdkOpts = signal ? { signal } : {};
80908
80909
  try {
80909
- const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-z5vas8c3.js");
80910
+ const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-7pgzjj3z.js");
80910
80911
  const createResult = await client.session.create({
80911
80912
  ...sessionId ? {
80912
80913
  body: {
@@ -90314,7 +90315,7 @@ function boundedPathAlias(value) {
90314
90315
  function gateActionArgs(tool2, args) {
90315
90316
  const projection = {};
90316
90317
  const normalizedTool = normalizeToolNameLowerCase(tool2 ?? "");
90317
- if (normalizedTool === "task") {
90318
+ if (isTaskToolId(tool2)) {
90318
90319
  const discriminator = gateDenialDiscriminator(tool2, args);
90319
90320
  if (discriminator)
90320
90321
  projection.subagent_type = discriminator;
@@ -90372,7 +90373,7 @@ function gateActionIdentity(tool2, args) {
90372
90373
  var MAX_DISCRIMINATOR_LENGTH = 64;
90373
90374
  function gateDenialDiscriminator(tool2, args) {
90374
90375
  try {
90375
- if (normalizeToolNameLowerCase(tool2 ?? "") !== "task")
90376
+ if (!isTaskToolId(tool2 ?? ""))
90376
90377
  return "";
90377
90378
  const subagentType = readOwnDataValue(args, "subagent_type");
90378
90379
  if (typeof subagentType !== "string" || subagentType.length === 0) {
@@ -95110,7 +95111,7 @@ async function runValidationWithTransientRetry(input, candidateContent, baseline
95110
95111
  if (!input.dispatcher) {
95111
95112
  throw new Error("no evaluation dispatcher available (cannot run validation)");
95112
95113
  }
95113
- const { createModelEvaluationExecutor: createModelEvaluationExecutor2 } = await import("./runner-1dwrgyyr.js");
95114
+ const { createModelEvaluationExecutor: createModelEvaluationExecutor2 } = await import("./runner-2r5j33tm.js");
95114
95115
  const executor = createModelEvaluationExecutor2(input.dispatcher, input.sessionId);
95115
95116
  const result = await withProtectedSetIntegrity([evalInputRoot, ...protectedRoots(input.directory)], () => _internals114.evaluateCandidateV1({
95116
95117
  projectRoot: input.directory,
@@ -97739,7 +97740,7 @@ function buildDetailedHelp(commandName, entry) {
97739
97740
  async function handleHelpCommand(ctx) {
97740
97741
  const targetCommand = ctx.args.join(" ");
97741
97742
  if (!targetCommand) {
97742
- const { buildHelpText } = await import("./index-xztkjj3c.js");
97743
+ const { buildHelpText } = await import("./index-7a180w76.js");
97743
97744
  return buildHelpText();
97744
97745
  }
97745
97746
  const tokens = targetCommand.split(/\s+/);
@@ -97753,7 +97754,7 @@ async function handleHelpCommand(ctx) {
97753
97754
  > Note: \`/swarm ${resolved.key}\` is a deprecated alias for \`/swarm ${aliasTarget}\`.` : detailed;
97754
97755
  }
97755
97756
  const similar = _internals24.findSimilarCommands(targetCommand);
97756
- const { buildHelpText: fullHelp } = await import("./index-xztkjj3c.js");
97757
+ const { buildHelpText: fullHelp } = await import("./index-7a180w76.js");
97757
97758
  if (similar.length > 0) {
97758
97759
  return `Command '/swarm ${targetCommand}' not found.
97759
97760
 
@@ -98068,7 +98069,7 @@ var COMMAND_REGISTRY = {
98068
98069
  },
98069
98070
  "guardrail explain": {
98070
98071
  handler: async (ctx) => {
98071
- const { handleGuardrailExplain } = await import("./guardrail-explain-fe2veh2s.js");
98072
+ const { handleGuardrailExplain } = await import("./guardrail-explain-a40pmzzc.js");
98072
98073
  return handleGuardrailExplain(ctx.directory, ctx.args);
98073
98074
  },
98074
98075
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -98078,7 +98079,7 @@ var COMMAND_REGISTRY = {
98078
98079
  },
98079
98080
  "guardrail reset": {
98080
98081
  handler: async (ctx) => {
98081
- const { handleGuardrailReset } = await import("./guardrail-reset-mmnzt4mz.js");
98082
+ const { handleGuardrailReset } = await import("./guardrail-reset-znw5636e.js");
98082
98083
  return handleGuardrailReset(ctx.args, ctx.sessionID);
98083
98084
  },
98084
98085
  description: "Reset one exact active invocation/action circuit after repair",
@@ -98099,7 +98100,7 @@ var COMMAND_REGISTRY = {
98099
98100
  },
98100
98101
  "guardrail-log": {
98101
98102
  handler: async (ctx) => {
98102
- const { handleGuardrailLog } = await import("./guardrail-log-z38j69bx.js");
98103
+ const { handleGuardrailLog } = await import("./guardrail-log-71wvwyd0.js");
98103
98104
  return handleGuardrailLog(ctx.directory, ctx.args);
98104
98105
  },
98105
98106
  description: "Read the guardrail decision log (use --blocks-only for blocks)",
@@ -101702,11 +101703,11 @@ function createResearcherAgent(model, customPrompt, customAppendPrompt) {
101702
101703
  }
101703
101704
 
101704
101705
  // src/agents/reviewer-directive-compliance.ts
101705
- var DIRECTIVE_COMPLIANCE_OUTPUT_SPEC = `DIRECTIVE_COMPLIANCE: one line per retrieval membership shown during this phase. Copy the encoded trace_id and entry_id tokens exactly from the DIRECTIVES TO VERIFY block. Use exactly one of:
101706
+ var DIRECTIVE_COMPLIANCE_OUTPUT_SPEC = `DIRECTIVE_COMPLIANCE: one line per listed obligation. Copy the encoded trace_id and entry_id tokens exactly from the DIRECTIVES TO VERIFY block. Use exactly one of:
101706
101707
  VERIFIED:<trace_id>:<entry_id> evidence=<file:line | predicate_passed>
101707
101708
  VIOLATED:<trace_id>:<entry_id> evidence=<file:line | failing_predicate>
101708
101709
  N/A:<trace_id>:<entry_id> reason=<why it does not apply to this change>
101709
- Every listed trace_id + entry_id pair MUST appear exactly once. The same entry_id may appear under more than one trace_id and requires one verdict per pair. If a directive carries a verification_predicate, you MUST run it and report predicate_passed / failing_predicate as the evidence. Omitting a listed CRITICAL pair is itself a VIOLATED verdict.`;
101710
+ Every listed trace_id + entry_id pair MUST appear exactly once in your verdicts. If a directive carries a verification_predicate, you MUST run it and report predicate_passed / failing_predicate as the evidence. Omitting a listed CRITICAL pair is itself a VIOLATED verdict.`;
101710
101711
 
101711
101712
  // src/agents/reviewer.ts
101712
101713
  var REVIEWER_MEMORY_OUTCOME_GUIDANCE = "Use `swarm_memory_outcome` after evaluating recalled memory or a graph answer. When overturning a memory-backed claim, record `corrected` and include the correction text and relevant file/symbol anchors.";
@@ -22,66 +22,66 @@ import {
22
22
  resolveFallbackModel,
23
23
  resolvePrimaryAgentNames,
24
24
  stripSwarmPrefix
25
- } from "./index-j144fgk8.js";
25
+ } from "./index-7htmxmjp.js";
26
26
  import"./index-5400m33a.js";
27
- import"./index-7h01bkm6.js";
28
- import"./index-zw3hkzch.js";
27
+ import"./index-a0vggadp.js";
28
+ import"./index-g2sc35qk.js";
29
29
  import"./index-cgpwjctj.js";
30
- import"./index-ye43mdfm.js";
31
- import"./index-3p3y55xg.js";
32
- import"./index-xnpjwc4h.js";
30
+ import"./index-19xctk9g.js";
31
+ import"./index-3q7bb7qz.js";
32
+ import"./index-4say55ww.js";
33
33
  import"./index-txdagbh7.js";
34
34
  import"./index-9br68j86.js";
35
35
  import"./index-cw912re7.js";
36
- import"./index-9xk97bcf.js";
37
- import"./index-r1z8nrb6.js";
38
- import"./index-3eh2n3dx.js";
36
+ import"./index-4m9hfbhe.js";
37
+ import"./index-45x6meqp.js";
38
+ import"./index-1kt9xbrt.js";
39
39
  import {
40
40
  createExplorerAgent
41
41
  } from "./index-fyfbpz4f.js";
42
- import"./index-gfbggp8k.js";
42
+ import"./index-70avfxnw.js";
43
43
  import"./index-0hgmsyfp.js";
44
44
  import"./index-zsrtt42s.js";
45
- import"./index-5bbem0ey.js";
45
+ import"./index-j1tjd6aq.js";
46
46
  import"./index-fhh02gwx.js";
47
47
  import"./index-nyn01yrz.js";
48
48
  import"./index-b43rt5ph.js";
49
49
  import"./index-q7sjgr1y.js";
50
- import"./index-06rbdzqn.js";
51
- import"./index-59fcfpkh.js";
52
- import"./index-0xprxg95.js";
53
- import"./index-8w1mrvbd.js";
50
+ import"./index-2q6qj0vw.js";
51
+ import"./index-9vxaf499.js";
52
+ import"./index-w79t20a6.js";
53
+ import"./index-d1sdve0x.js";
54
54
  import"./index-b3pmzbh1.js";
55
55
  import"./index-2s7dvzff.js";
56
- import"./index-31sqcdsd.js";
57
- import"./index-bm5xrfnx.js";
56
+ import"./index-8v2k9xqv.js";
57
+ import"./index-zr6ev5kt.js";
58
58
  import"./index-rtry5xyf.js";
59
- import"./index-mjn6aqqk.js";
59
+ import"./index-24pamt0h.js";
60
60
  import"./index-3qf1vxtb.js";
61
61
  import"./index-n832052r.js";
62
- import"./index-3axdtaf0.js";
63
- import"./index-pw00xcj0.js";
64
- import"./index-fgp96k3r.js";
62
+ import"./index-we9jztxd.js";
63
+ import"./index-dbg2g834.js";
64
+ import"./index-p6zt0qm1.js";
65
65
  import"./index-br3mvbsa.js";
66
66
  import"./index-bernkwgf.js";
67
67
  import"./index-dvbf6fpn.js";
68
68
  import"./index-rdm3px0g.js";
69
69
  import"./index-ry16d01s.js";
70
- import"./index-5qt9yf5w.js";
71
- import"./index-ssx8087p.js";
70
+ import"./index-5y7kqjyt.js";
71
+ import"./index-x067zyvp.js";
72
72
  import"./index-vzm6zre7.js";
73
73
  import"./index-ae75rja9.js";
74
- import"./index-9ttqbhvw.js";
75
- import"./index-bx1wgn3a.js";
74
+ import"./index-g0q47r3r.js";
75
+ import"./index-sf32ny5w.js";
76
76
  import"./index-7g4c7s5r.js";
77
- import"./index-nprdr0sm.js";
77
+ import"./index-7sz2rkx3.js";
78
78
  import"./index-nbdmdyke.js";
79
79
  import"./index-1xnse449.js";
80
80
  import"./index-ee6ydtfe.js";
81
- import"./index-td6xrw55.js";
81
+ import"./index-29gnavqx.js";
82
82
  import"./index-0mhftbpp.js";
83
83
  import"./index-a1w58b47.js";
84
- import"./index-4wc5gfgm.js";
84
+ import"./index-9g3c0w22.js";
85
85
  import"./index-sxt7fgcw.js";
86
86
  import"./index-bk5tah7q.js";
87
87
  import"./index-bpmtbmy9.js";
@@ -236,7 +236,7 @@ var CATALOG_SOURCE = [
236
236
  category: "delegation",
237
237
  severity: "info",
238
238
  privacyClass: "pseudonymous",
239
- producer: "src/index.ts:1796",
239
+ producer: "src/index.ts:1802",
240
240
  consumers: NO_CONSUMERS,
241
241
  futureOwnerIssue: ISSUE_SINK,
242
242
  retentionOwnerIssue: ISSUE_COST_RETENTION,
@@ -250,7 +250,7 @@ var CATALOG_SOURCE = [
250
250
  category: "delegation",
251
251
  severity: "notice",
252
252
  privacyClass: "pseudonymous",
253
- producer: "src/index.ts:1816",
253
+ producer: "src/index.ts:1822",
254
254
  consumers: CONSUMER_COST_JOIN,
255
255
  retentionOwnerIssue: ISSUE_COST_RETENTION,
256
256
  requiredWorkflowIds: REQUIRE_SESSION,