opencode-swarm 7.197.0 → 7.197.1

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 (71) 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/{auto-checkpoint-s05sxmg6.js → auto-checkpoint-1dv9a1w5.js} +4 -4
  4. package/dist/cli/{checkpoint-kzyy9b7y.js → checkpoint-rkjb6kpr.js} +8 -8
  5. package/dist/cli/{coder-settlement-d1qqfgdm.js → coder-settlement-eavtvg8d.js} +3 -3
  6. package/dist/cli/{config-doctor-yrven0ya.js → config-doctor-4ck8e1fq.js} +7 -7
  7. package/dist/cli/{core-qpmksfae.js → core-cyj0vphv.js} +1 -1
  8. package/dist/cli/{curator-drift-2h6nf0mw.js → curator-drift-15mcxawb.js} +5 -5
  9. package/dist/cli/{curator-llm-factory-kt3jhgs9.js → curator-llm-factory-k0yebhsk.js} +25 -25
  10. package/dist/cli/{curator-mqnqst1g.js → curator-p1r777m5.js} +25 -25
  11. package/dist/cli/{doctor-knowledge-receipt-phase-id-d8arz38j.js → doctor-knowledge-receipt-phase-id-k204028d.js} +4 -4
  12. package/dist/cli/{evidence-summary-service-gjs4zssz.js → evidence-summary-service-4mx5ge81.js} +9 -9
  13. package/dist/cli/{gate-evidence-9n5r17hq.js → gate-evidence-pa8qadxh.js} +2 -2
  14. package/dist/cli/{guardrail-explain-g4wcr664.js → guardrail-explain-pba5em4h.js} +26 -26
  15. package/dist/cli/{guardrail-log-0hy23f7d.js → guardrail-log-24fbykv3.js} +3 -3
  16. package/dist/cli/{guardrail-reset-9z5rmp3f.js → guardrail-reset-rfnr2vnn.js} +25 -25
  17. package/dist/cli/{hive-promoter-w8f840ah.js → hive-promoter-0ht8jafr.js} +25 -25
  18. package/dist/cli/{index-67w61x1b.js → index-0sw6gjtn.js} +3 -3
  19. package/dist/cli/{index-eabxecjf.js → index-3h4tajza.js} +2 -2
  20. package/dist/cli/{index-8zwmfh9d.js → index-528gk6k1.js} +1 -1
  21. package/dist/cli/{index-agvmmvdt.js → index-56n6nb7p.js} +25 -25
  22. package/dist/cli/{index-jvpvghyh.js → index-57g7yqx9.js} +125 -72
  23. package/dist/cli/{index-xb3h5tvj.js → index-6g81mmmy.js} +4 -4
  24. package/dist/cli/{index-g749xs7c.js → index-9rqvm5sk.js} +2 -2
  25. package/dist/cli/{index-t3tzk566.js → index-9vwsvgzp.js} +1 -1
  26. package/dist/cli/{index-dgvf1jey.js → index-a9bs0c71.js} +1 -1
  27. package/dist/cli/{index-5p0jhn2s.js → index-d0m3snqt.js} +1 -1
  28. package/dist/cli/{index-njfkqr77.js → index-d483e4gz.js} +3 -3
  29. package/dist/cli/{index-ysbmrmzk.js → index-efen9p4c.js} +1 -1
  30. package/dist/cli/{index-8ahnfc03.js → index-f0d3z2ha.js} +2 -2
  31. package/dist/cli/{index-avbvxmw2.js → index-fmgkemn9.js} +1 -1
  32. package/dist/cli/{index-v8jhmn8x.js → index-h69nppa3.js} +1 -1
  33. package/dist/cli/{index-mbdkr2sh.js → index-hyxw4j9t.js} +1 -1
  34. package/dist/cli/{index-29xr45xr.js → index-kah11mjw.js} +3 -3
  35. package/dist/cli/{index-20m9q2z9.js → index-mwh6srje.js} +1 -1
  36. package/dist/cli/{index-3qqnz0jg.js → index-pek9gmwm.js} +3 -3
  37. package/dist/cli/{index-xf6tdsyr.js → index-pywrvjxj.js} +3 -3
  38. package/dist/cli/{index-jvzfw0n5.js → index-qae4572e.js} +1 -1
  39. package/dist/cli/{index-fzx1wfxn.js → index-qqe9tt5y.js} +1 -1
  40. package/dist/cli/{index-g1r94prs.js → index-r9ab1sat.js} +27 -27
  41. package/dist/cli/{index-9sqcmzc2.js → index-rqbhn0mh.js} +2 -2
  42. package/dist/cli/{index-ng6me2hh.js → index-syrktqz9.js} +2 -2
  43. package/dist/cli/{index-401a12w5.js → index-t4nxee8x.js} +1 -1
  44. package/dist/cli/{index-bpnpvhja.js → index-tstk9xx7.js} +1 -1
  45. package/dist/cli/{index-1gnrtz76.js → index-vanjqbhp.js} +5 -5
  46. package/dist/cli/{index-9px1knpj.js → index-xtb61w73.js} +1 -1
  47. package/dist/cli/{index-1cks27mv.js → index-z5rkkhng.js} +6 -6
  48. package/dist/cli/index.js +26 -26
  49. package/dist/cli/{knowledge-escalator-42cvn0ec.js → knowledge-escalator-89crpby4.js} +7 -7
  50. package/dist/cli/{knowledge-events-v0xavjkd.js → knowledge-events-eyratqdp.js} +5 -5
  51. package/dist/cli/{knowledge-store-s01cread.js → knowledge-store-kkwds05z.js} +1 -1
  52. package/dist/cli/{knowledge-validator-kvtcqpke.js → knowledge-validator-fww6p37v.js} +2 -2
  53. package/dist/cli/{mcp-ff73w9z7.js → mcp-8t3m998m.js} +1 -1
  54. package/dist/cli/{model-preflight-0k8bd388.js → model-preflight-98g183my.js} +25 -25
  55. package/dist/cli/{pending-delegations-bmj7djk1.js → pending-delegations-qj5e0hh2.js} +2 -2
  56. package/dist/cli/{pr-subscriptions-9dbrw7ky.js → pr-subscriptions-edwd3syw.js} +1 -1
  57. package/dist/cli/{pr-workflow-gate-wg003fkd.js → pr-workflow-gate-t8veygyh.js} +25 -25
  58. package/dist/cli/{scan-cursor-d93q0q3s.js → scan-cursor-0ffhpz79.js} +2 -2
  59. package/dist/cli/{schema-0ny9ef6s.js → schema-zytt0t7a.js} +1 -1
  60. package/dist/cli/{scope-persistence-ekcfq34x.js → scope-persistence-p8a9a2xb.js} +5 -5
  61. package/dist/cli/{server-rpx7pkg1.js → server-q4b9s64v.js} +25 -25
  62. package/dist/cli/{skill-generator-h1w7s5dh.js → skill-generator-wt7d640t.js} +8 -8
  63. package/dist/cli/{snapshot-coordination-init-f6ecsn9c.js → snapshot-coordination-init-ywxyf130.js} +25 -25
  64. package/dist/cli/{speckit-checkoff-kf0zkpdw.js → speckit-checkoff-y8na83hj.js} +3 -3
  65. package/dist/cli/{worktree-collision-ownership-p7zmj4ag.js → worktree-collision-ownership-kssmhrpk.js} +2 -2
  66. package/dist/cli/{worktree-isolation-nz90xvw5.js → worktree-isolation-w6np680v.js} +25 -25
  67. package/dist/hooks/pr-workflow-gate.d.ts +12 -0
  68. package/dist/hooks/pr-workflow-response-gate.d.ts +8 -0
  69. package/dist/index.js +8 -8
  70. package/dist/pr-review/persistence.d.ts +18 -1
  71. package/package.json +1 -1
@@ -8,14 +8,14 @@ import {
8
8
  protectedRoots,
9
9
  redactDecisionLineForArchive,
10
10
  stableCanonicalStringify
11
- } from "./index-8zwmfh9d.js";
11
+ } from "./index-528gk6k1.js";
12
12
  import {
13
13
  detectStraySwarmDirs,
14
14
  readDoctorArtifact,
15
15
  removeStraySwarmDir,
16
16
  resolvePlanParallelizationFlag,
17
17
  runConfigDoctor
18
- } from "./index-67w61x1b.js";
18
+ } from "./index-0sw6gjtn.js";
19
19
  import {
20
20
  archiveEvidence,
21
21
  checkRequirementCoverage,
@@ -27,7 +27,7 @@ import {
27
27
  sanitizeTaskId,
28
28
  saveEvidence,
29
29
  validateProjectRoot
30
- } from "./index-jvzfw0n5.js";
30
+ } from "./index-qae4572e.js";
31
31
  import {
32
32
  JAVA_SYMBOL_GRAMMAR,
33
33
  LANGUAGE_REGISTRY,
@@ -89,7 +89,7 @@ import {
89
89
  alreadyCuratedThisGeneration,
90
90
  claimNextScanBatch,
91
91
  resolveCohortId
92
- } from "./index-dgvf1jey.js";
92
+ } from "./index-a9bs0c71.js";
93
93
  import {
94
94
  CURATOR_CONSOLIDATION_PROMPT,
95
95
  CURATOR_INIT_PROMPT,
@@ -108,13 +108,13 @@ import {
108
108
  getGroupCommitWriter,
109
109
  importLegacyJsonl,
110
110
  readPriorDriftReports
111
- } from "./index-ysbmrmzk.js";
111
+ } from "./index-efen9p4c.js";
112
112
  import {
113
113
  assertNoUnsettledCoderDispatch,
114
114
  listCoderSettlementWalStates,
115
115
  recoverCoderSettlement,
116
116
  recoverStaleCoderSettlements
117
- } from "./index-njfkqr77.js";
117
+ } from "./index-d483e4gz.js";
118
118
  import {
119
119
  BUNDLED_PROJECT_SKILL_ROOT,
120
120
  DEFAULT_SKILL_MIN_CONFIDENCE,
@@ -137,11 +137,11 @@ import {
137
137
  skillContractDigest,
138
138
  splitSkillFrontmatter,
139
139
  syncBundledProjectSkillsIfMissingAsync
140
- } from "./index-29xr45xr.js";
140
+ } from "./index-kah11mjw.js";
141
141
  import {
142
142
  buildEscalationBriefing,
143
143
  readRecentEscalations
144
- } from "./index-1cks27mv.js";
144
+ } from "./index-z5rkkhng.js";
145
145
  import {
146
146
  parsePorcelainV2Snapshot,
147
147
  resolveCommitCountSince,
@@ -225,7 +225,7 @@ import {
225
225
  swarmOverwriteCandidates,
226
226
  trackedDirtyCandidates,
227
227
  transientBackoff
228
- } from "./index-xf6tdsyr.js";
228
+ } from "./index-pywrvjxj.js";
229
229
  import {
230
230
  EPIC_MODE_CONFIG_DISABLED_MESSAGE,
231
231
  PlanRecoverySupersededError,
@@ -257,7 +257,7 @@ import {
257
257
  updateEpicRecord,
258
258
  updateTaskStatus,
259
259
  withPlanLifecycleLock
260
- } from "./index-1gnrtz76.js";
260
+ } from "./index-vanjqbhp.js";
261
261
  import {
262
262
  containsControlChars,
263
263
  containsPathTraversal,
@@ -273,7 +273,7 @@ import {
273
273
  resolveSpeckitProjection,
274
274
  validateSpeckit,
275
275
  writeProjectedSpecSync
276
- } from "./index-t3tzk566.js";
276
+ } from "./index-9vwsvgzp.js";
277
277
  import {
278
278
  clearWorktreeMergeStatus,
279
279
  getAllWorktreeMergeFailures,
@@ -305,7 +305,7 @@ import {
305
305
  transitionTaskWorkflowEvidenceWithStatus,
306
306
  withTaskEvidenceTransaction,
307
307
  writeWorkflowWalFile
308
- } from "./index-401a12w5.js";
308
+ } from "./index-t4nxee8x.js";
309
309
  import {
310
310
  isPathUnderSwarmWorktreeBase,
311
311
  listLiveLaneOwners,
@@ -314,7 +314,7 @@ import {
314
314
  recordLiveLaneOwner,
315
315
  removeWorktree,
316
316
  resolveWorktreeBaseDir
317
- } from "./index-mbdkr2sh.js";
317
+ } from "./index-hyxw4j9t.js";
318
318
  import {
319
319
  GitBinaryMissingError,
320
320
  GitSpawnCwdError,
@@ -356,7 +356,7 @@ import {
356
356
  scanBackgroundCoderReservationsForAdmission,
357
357
  scanDelegationsForRecovery,
358
358
  sweepStaleDelegations
359
- } from "./index-9px1knpj.js";
359
+ } from "./index-xtb61w73.js";
360
360
  import {
361
361
  MAX_EVENT_LOG_ENTRIES,
362
362
  _internals,
@@ -368,7 +368,7 @@ import {
368
368
  recordHiveKnowledgeEvent,
369
369
  recordKnowledgeEvent,
370
370
  resolveKnowledgeEventsPath
371
- } from "./index-eabxecjf.js";
371
+ } from "./index-3h4tajza.js";
372
372
  import {
373
373
  commitDisplayedMembership,
374
374
  commitEmptyRetrieval,
@@ -381,7 +381,7 @@ import {
381
381
  queryLiveMemberships,
382
382
  reconcilePhaseClose,
383
383
  recordPhaseCloseIntent
384
- } from "./index-ng6me2hh.js";
384
+ } from "./index-syrktqz9.js";
385
385
  import {
386
386
  sanitizeContextText
387
387
  } from "./index-m9zzj4ee.js";
@@ -412,7 +412,7 @@ import {
412
412
  validateActionableFields,
413
413
  validateLesson,
414
414
  validateSkillPath
415
- } from "./index-avbvxmw2.js";
415
+ } from "./index-fmgkemn9.js";
416
416
  import {
417
417
  MAX_CURATION_PROPOSALS,
418
418
  authorizeCuration,
@@ -423,7 +423,7 @@ import {
423
423
  } from "./index-rtry5xyf.js";
424
424
  import {
425
425
  resolveWorktreeIsolationConfig
426
- } from "./index-g749xs7c.js";
426
+ } from "./index-9rqvm5sk.js";
427
427
  import {
428
428
  RetrospectiveEvidenceSchema
429
429
  } from "./index-g22dps7x.js";
@@ -435,7 +435,7 @@ import {
435
435
  clearScopeBindings,
436
436
  readAuthoritativeScopeBindingSet,
437
437
  readDeclaredScopeFilesFromBindings
438
- } from "./index-fzx1wfxn.js";
438
+ } from "./index-qqe9tt5y.js";
439
439
  import {
440
440
  approvedSnapshotCoversPlan,
441
441
  clearPlanLedgerForReset,
@@ -452,7 +452,7 @@ import {
452
452
  replayFromLedgerWithStatus,
453
453
  resolvePlanningProfile,
454
454
  takeSnapshotEvent
455
- } from "./index-9sqcmzc2.js";
455
+ } from "./index-rqbhn0mh.js";
456
456
  import {
457
457
  CORE_EVENT_LOCKED,
458
458
  appendCoreEventSync,
@@ -541,7 +541,7 @@ import {
541
541
  transactFile,
542
542
  transactKnowledge,
543
543
  wordBigrams
544
- } from "./index-xb3h5tvj.js";
544
+ } from "./index-6g81mmmy.js";
545
545
  import {
546
546
  readTailJsonl,
547
547
  readTailJsonlDetailed,
@@ -626,7 +626,7 @@ import {
626
626
  loadPluginConfig,
627
627
  loadPluginConfigWithMeta,
628
628
  resolveEpicConfig
629
- } from "./index-bpnpvhja.js";
629
+ } from "./index-tstk9xx7.js";
630
630
  import {
631
631
  GIT_BINARY_ENV_VAR,
632
632
  addDeferredWarning,
@@ -659,7 +659,7 @@ import {
659
659
  resolveContextWindow,
660
660
  resolveGeneratedAgentRole,
661
661
  stripKnownSwarmPrefix
662
- } from "./index-20m9q2z9.js";
662
+ } from "./index-mwh6srje.js";
663
663
  import {
664
664
  AGENT_TOOL_MAP,
665
665
  ALL_AGENT_NAMES,
@@ -3097,8 +3097,10 @@ function bindPrReviewPersistenceHooks(nextHooks) {
3097
3097
  hooks = nextHooks;
3098
3098
  }
3099
3099
  var codec;
3100
- function bindPrReviewStateCodec(nextCodec) {
3100
+ var observabilityFieldNames = [];
3101
+ function bindPrReviewStateCodec(nextCodec, nextObservabilityFieldNames) {
3101
3102
  codec = nextCodec;
3103
+ observabilityFieldNames = nextObservabilityFieldNames;
3102
3104
  }
3103
3105
  function requireCodec() {
3104
3106
  if (!codec) {
@@ -3459,7 +3461,7 @@ async function importLegacyPrWorkflowGateStateIfNeeded(directory, sessionID, all
3459
3461
  return null;
3460
3462
  throw error2;
3461
3463
  }
3462
- const legacy = allowSalvagedImport ? (await (await import("./pr-workflow-gate-wg003fkd.js")).readPrWorkflowGateStateForRecovery(directory, sessionID))?.state ?? null : await readPrWorkflowGateStateFileFromDisk(filePath, sessionID);
3464
+ const legacy = allowSalvagedImport ? (await (await import("./pr-workflow-gate-t8veygyh.js")).readPrWorkflowGateStateForRecovery(directory, sessionID))?.state ?? null : await readPrWorkflowGateStateFileFromDisk(filePath, sessionID);
3463
3465
  if (!legacy)
3464
3466
  return null;
3465
3467
  const namespace = workflowGateStateCoordinationNamespace(sessionID);
@@ -3489,25 +3491,62 @@ async function importLegacyPrWorkflowGateStateIfNeeded(directory, sessionID, all
3489
3491
  }
3490
3492
  return authoritative;
3491
3493
  }
3492
- async function writeStateWhileLocked(directory, state, options = {}) {
3494
+ function withDurableObservabilityFields(incoming, current) {
3495
+ if (!current || observabilityFieldNames.length === 0)
3496
+ return incoming;
3497
+ const merged = {
3498
+ ...{ ...incoming }
3499
+ };
3500
+ const durable = current;
3501
+ const instanceReplaced = current.workflowInstanceId !== undefined && current.workflowInstanceId !== incoming.workflowInstanceId;
3502
+ for (const field of observabilityFieldNames) {
3503
+ if (instanceReplaced)
3504
+ delete merged[field];
3505
+ else if (durable[field] !== undefined)
3506
+ merged[field] = durable[field];
3507
+ else
3508
+ delete merged[field];
3509
+ }
3510
+ return merged;
3511
+ }
3512
+ function enforceObservabilityOnlyMutation(validated, current) {
3513
+ if (!current)
3514
+ return;
3515
+ const incoming = validated;
3516
+ const durable = current;
3517
+ const skip = new Set(observabilityFieldNames);
3518
+ skip.add("updatedAt");
3519
+ skip.add("revision");
3520
+ const keys = new Set([...Object.keys(incoming), ...Object.keys(durable)]);
3521
+ for (const key of keys) {
3522
+ if (skip.has(key))
3523
+ continue;
3524
+ if (JSON.stringify(incoming[key]) !== JSON.stringify(durable[key])) {
3525
+ throw new Error(`BLOCKED: appendObservabilityStateWhileLocked may change only observability fields and updatedAt; field "${key}" also differs from the durable state`);
3526
+ }
3527
+ }
3528
+ }
3529
+ async function persistStateRowWhileLocked(directory, validated, bumpRevision, options = {}) {
3493
3530
  const bound = requireCodec();
3494
- const validated = bound.parse(state);
3495
3531
  let currentAuthoritative = readPrWorkflowGateStateCoordinationRow(directory, validated.sessionID);
3496
3532
  let current = currentAuthoritative?.state ?? null;
3497
3533
  if (!current) {
3498
3534
  current = await readPrWorkflowGateStateFromDisk(directory, validated.sessionID);
3499
3535
  currentAuthoritative = readPrWorkflowGateStateCoordinationRow(directory, validated.sessionID);
3500
3536
  }
3537
+ let effective = validated;
3538
+ if (bumpRevision) {
3539
+ effective = withDurableObservabilityFields(validated, current);
3540
+ } else {
3541
+ enforceObservabilityOnlyMutation(validated, current);
3542
+ }
3501
3543
  if (current ? current.revision !== validated.revision : validated.revision !== 0) {
3502
3544
  throw new Error("BLOCKED: PR workflow gate state changed concurrently; reload the active session state before retrying");
3503
3545
  }
3504
3546
  if (current?.workflowInstanceId && validated.workflowInstanceId !== current.workflowInstanceId && options.replaceWorkflowInstanceId !== current.workflowInstanceId) {
3505
3547
  throw new Error("BLOCKED: PR workflow gate state changed concurrently; reload the active session state before retrying");
3506
3548
  }
3507
- const nextState = bound.parse({
3508
- ...validated,
3509
- revision: validated.revision + 1
3510
- });
3549
+ const nextState = bound.parse(bumpRevision ? { ...effective, revision: validated.revision + 1 } : effective);
3511
3550
  const result = transitionCoordinationState(directory, {
3512
3551
  namespace: workflowGateStateCoordinationNamespace(validated.sessionID),
3513
3552
  entityKey: WORKFLOW_STATE_ENTITY_KEY,
@@ -3523,6 +3562,16 @@ async function writeStateWhileLocked(directory, state, options = {}) {
3523
3562
  rememberState(directory, nextState);
3524
3563
  return nextState;
3525
3564
  }
3565
+ async function writeStateWhileLocked(directory, state, options = {}) {
3566
+ const bound = requireCodec();
3567
+ const validated = bound.parse(state);
3568
+ return persistStateRowWhileLocked(directory, validated, true, options);
3569
+ }
3570
+ async function appendObservabilityStateWhileLocked(directory, state) {
3571
+ const bound = requireCodec();
3572
+ const validated = bound.parse(state);
3573
+ return persistStateRowWhileLocked(directory, validated, false);
3574
+ }
3526
3575
  async function deleteStateWhileLocked(directory, sessionID, options = {}) {
3527
3576
  const normalizedSessionID = normalizeSessionID(sessionID);
3528
3577
  let currentAuthoritative = null;
@@ -3546,7 +3595,7 @@ async function deleteStateWhileLocked(directory, sessionID, options = {}) {
3546
3595
  let recoveryState = null;
3547
3596
  if (!currentAuthoritative) {
3548
3597
  if (options.allowSalvagedRead) {
3549
- const { readPrWorkflowGateStateForRecovery } = await import("./pr-workflow-gate-wg003fkd.js");
3598
+ const { readPrWorkflowGateStateForRecovery } = await import("./pr-workflow-gate-t8veygyh.js");
3550
3599
  recoveryState = (await readPrWorkflowGateStateForRecovery(directory, normalizedSessionID))?.state ?? null;
3551
3600
  }
3552
3601
  if (!recoveryState) {
@@ -11320,7 +11369,7 @@ function isLaneOwnedByCurrentSession(branchName, expectedSessionId) {
11320
11369
  return extracted === expectedSessionId;
11321
11370
  }
11322
11371
  async function inspectStandardWorktreeCollisionOwnership(identity) {
11323
- const collisionOwnership = await import("./worktree-collision-ownership-p7zmj4ag.js");
11372
+ const collisionOwnership = await import("./worktree-collision-ownership-kssmhrpk.js");
11324
11373
  return collisionOwnership.inspectStandardWorktreeCollisionOwnership(identity);
11325
11374
  }
11326
11375
  async function runRecoveryGit(directory, args, timeoutMs = 15000) {
@@ -11748,7 +11797,7 @@ async function precreateStandardWorktreeSession(args) {
11748
11797
  const laneProfile = computeLaneRuntimeProfile(worktreeConfig.runtime_isolation, laneIndex, handle.worktreePath);
11749
11798
  if (laneProfile) {
11750
11799
  try {
11751
- const { writeLaneProfileToDiskReal } = await import("./core-qpmksfae.js");
11800
+ const { writeLaneProfileToDiskReal } = await import("./core-cyj0vphv.js");
11752
11801
  await writeLaneProfileToDiskReal(handle.worktreePath, laneProfile.laneIndex, laneProfile.envOverrides);
11753
11802
  } catch {}
11754
11803
  }
@@ -12742,7 +12791,7 @@ async function finishStandardWorktreeDispatch(directory, dispatch, config, callI
12742
12791
  }
12743
12792
  clearWorktreeMergeStatus(statusKey);
12744
12793
  try {
12745
- const { removeLaneProfileFromDiskReal } = await import("./core-qpmksfae.js");
12794
+ const { removeLaneProfileFromDiskReal } = await import("./core-cyj0vphv.js");
12746
12795
  await removeLaneProfileFromDiskReal(dispatch.handle.worktreePath, dispatch.laneIndex);
12747
12796
  } catch {}
12748
12797
  const state = serializationStateBySessionID.get(dispatch.parentSessionID);
@@ -29175,7 +29224,7 @@ function clearCriticalShownIds(sessionID) {
29175
29224
  async function rehydratePrSubscriptions(sessionID, directory) {
29176
29225
  const map = new Map;
29177
29226
  try {
29178
- const { listActive: listActive2 } = await import("./pr-subscriptions-9dbrw7ky.js");
29227
+ const { listActive: listActive2 } = await import("./pr-subscriptions-edwd3syw.js");
29179
29228
  const records = await listActive2(directory);
29180
29229
  for (const record of records) {
29181
29230
  if (record.sessionID !== sessionID)
@@ -29763,7 +29812,7 @@ async function appendPrWorkflowSkillContractAdvisories(directory, sessionID, adv
29763
29812
  }
29764
29813
  if (merged.length === current.length)
29765
29814
  return;
29766
- await writeStateWhileLocked(directory, {
29815
+ await appendObservabilityStateWhileLocked(directory, {
29767
29816
  ...existing,
29768
29817
  skillContractAdvisories: merged,
29769
29818
  updatedAt: isoNow()
@@ -29821,7 +29870,7 @@ async function recordPrReviewSubmitRejection(directory, childSessionId, message)
29821
29870
  message: bounded
29822
29871
  }
29823
29872
  ].slice(-MAX_PR_REVIEW_SUBMIT_REJECTIONS);
29824
- await writeStateWhileLocked(directory, {
29873
+ await appendObservabilityStateWhileLocked(directory, {
29825
29874
  ...locked,
29826
29875
  prReviewSubmitRejections: journal,
29827
29876
  updatedAt: isoNow()
@@ -29871,7 +29920,7 @@ async function recordPrReviewVerdictRejection(directory, sessionID, message, att
29871
29920
  message: bounded
29872
29921
  }
29873
29922
  ].slice(-MAX_PR_REVIEW_VERDICT_REJECTIONS);
29874
- await writeStateWhileLocked(directory, {
29923
+ await appendObservabilityStateWhileLocked(directory, {
29875
29924
  ...locked,
29876
29925
  prReviewVerdictRejections: journal,
29877
29926
  updatedAt: isoNow()
@@ -35468,7 +35517,11 @@ bindPrReviewPersistenceHooks(_test_exports2);
35468
35517
  bindPrReviewStateCodec({
35469
35518
  safeParse: (data) => PrWorkflowGateStateSchema.safeParse(data),
35470
35519
  parse: (data) => PrWorkflowGateStateSchema.parse(data)
35471
- });
35520
+ }, [
35521
+ "prReviewSubmitRejections",
35522
+ "prReviewVerdictRejections",
35523
+ "skillContractAdvisories"
35524
+ ]);
35472
35525
  bindPrReviewCompletionHelpers({
35473
35526
  createPrReviewGateContext: createPrReviewGateContext2,
35474
35527
  requireBoundState: requireBoundState2,
@@ -46177,9 +46230,9 @@ function hashContent(content) {
46177
46230
  return createHash29("sha1").update(content).digest("hex");
46178
46231
  }
46179
46232
  async function loadConfigForPolicyCurator(directory) {
46180
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-0ny9ef6s.js");
46233
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-zytt0t7a.js");
46181
46234
  try {
46182
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-3qqnz0jg.js");
46235
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-pek9gmwm.js");
46183
46236
  const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
46184
46237
  return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
46185
46238
  } catch {
@@ -49237,7 +49290,7 @@ async function resolveCuratorLLMDelegate(directory, mode, sessionId) {
49237
49290
  const seam = _internals50.createCuratorLLMDelegate;
49238
49291
  if (seam)
49239
49292
  return seam(directory, mode, sessionId);
49240
- const { createCuratorLLMDelegate } = await import("./curator-llm-factory-kt3jhgs9.js");
49293
+ const { createCuratorLLMDelegate } = await import("./curator-llm-factory-k0yebhsk.js");
49241
49294
  return createCuratorLLMDelegate(directory, mode, sessionId);
49242
49295
  }
49243
49296
  async function reconcileCloseTerminalStateForPlan(directory, targetPlan, options) {
@@ -49632,7 +49685,7 @@ async function runFinalizeStage(ctx) {
49632
49685
  }
49633
49686
  }
49634
49687
  try {
49635
- const { CuratorConfigSchema: CCS } = await import("./schema-0ny9ef6s.js");
49688
+ const { CuratorConfigSchema: CCS } = await import("./schema-zytt0t7a.js");
49636
49689
  const { config: pmLoadedConfig } = _internals50.loadPluginConfigWithMeta(ctx.directory);
49637
49690
  const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
49638
49691
  if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
@@ -53665,7 +53718,7 @@ function serializeAgentSession(s) {
53665
53718
  }
53666
53719
  async function writeSnapshot(directory, state) {
53667
53720
  try {
53668
- const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-f6ecsn9c.js");
53721
+ const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-ywxyf130.js");
53669
53722
  await ensureSnapshotCoordinationReady(directory);
53670
53723
  const snapshot = {
53671
53724
  version: 3,
@@ -56721,7 +56774,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
56721
56774
  };
56722
56775
  }
56723
56776
  async function sweepActiveNearDuplicates(directory, options = {}) {
56724
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-3qqnz0jg.js");
56777
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-pek9gmwm.js");
56725
56778
  const { config } = loadPluginConfigWithMeta2(directory);
56726
56779
  const sweepConfig = config.learning?.dedup_sweep;
56727
56780
  if (sweepConfig?.enabled === false)
@@ -57845,7 +57898,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
57845
57898
  }
57846
57899
  if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
57847
57900
  try {
57848
- const skillModule = await import("./skill-generator-h1w7s5dh.js");
57901
+ const skillModule = await import("./skill-generator-wt7d640t.js");
57849
57902
  for (const cand of skillCandidates) {
57850
57903
  if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
57851
57904
  continue;
@@ -58317,7 +58370,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
58317
58370
  } catch {}
58318
58371
  }
58319
58372
  if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
58320
- const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-42cvn0ec.js");
58373
+ const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-89crpby4.js");
58321
58374
  for (const { id } of contradictedEntries) {
58322
58375
  try {
58323
58376
  await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
@@ -59149,7 +59202,7 @@ async function runCuratorPostMortem(directory, options = {}) {
59149
59202
  warnings.push("Failed to collect knowledge summary.");
59150
59203
  }
59151
59204
  try {
59152
- const { getScanStatus } = await import("./scan-cursor-d93q0q3s.js");
59205
+ const { getScanStatus } = await import("./scan-cursor-0ffhpz79.js");
59153
59206
  const scanStatus = await getScanStatus(directory);
59154
59207
  if (scanStatus.remaining_estimate > 0) {
59155
59208
  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.`);
@@ -59321,9 +59374,9 @@ var _internals72 = {
59321
59374
  verifyPostMortemKnowledgeActions,
59322
59375
  repairPostMortemActions,
59323
59376
  loadDefaultKnowledgeConfig: async (directory) => {
59324
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-0ny9ef6s.js");
59377
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-zytt0t7a.js");
59325
59378
  try {
59326
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-3qqnz0jg.js");
59379
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-pek9gmwm.js");
59327
59380
  const loaded = loadPluginConfigWithMeta2(directory);
59328
59381
  return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
59329
59382
  } catch {
@@ -59331,11 +59384,11 @@ var _internals72 = {
59331
59384
  }
59332
59385
  },
59333
59386
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
59334
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-mqnqst1g.js");
59387
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-p1r777m5.js");
59335
59388
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
59336
59389
  },
59337
59390
  checkHivePromotions: async (entries2, knowledgeConfig, directory) => {
59338
- const { checkHivePromotions } = await import("./hive-promoter-w8f840ah.js");
59391
+ const { checkHivePromotions } = await import("./hive-promoter-0ht8jafr.js");
59339
59392
  return checkHivePromotions(entries2, knowledgeConfig, directory);
59340
59393
  },
59341
59394
  applyProposalTriage: async (directory, triage) => {
@@ -59344,7 +59397,7 @@ var _internals72 = {
59344
59397
  activateProposal,
59345
59398
  listSkills: listSkills2,
59346
59399
  sanitizeSlug
59347
- } = await import("./skill-generator-h1w7s5dh.js");
59400
+ } = await import("./skill-generator-wt7d640t.js");
59348
59401
  const result = {
59349
59402
  approved: [],
59350
59403
  rejected: [],
@@ -59386,7 +59439,7 @@ var _internals72 = {
59386
59439
  return result;
59387
59440
  },
59388
59441
  readPriorDriftReports: async (directory) => {
59389
- const { readPriorDriftReports: readPriorDriftReports2 } = await import("./curator-drift-2h6nf0mw.js");
59442
+ const { readPriorDriftReports: readPriorDriftReports2 } = await import("./curator-drift-15mcxawb.js");
59390
59443
  return readPriorDriftReports2(directory);
59391
59444
  },
59392
59445
  readSwarmKnowledge: (directory) => readKnowledge(resolveSwarmKnowledgePath(directory))
@@ -69656,9 +69709,9 @@ var _internals80 = {
69656
69709
  loadPluginConfigWithMeta,
69657
69710
  loadCuratorDeps: async () => {
69658
69711
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate }] = await Promise.all([
69659
- import("./schema-0ny9ef6s.js"),
69660
- import("./curator-mqnqst1g.js"),
69661
- import("./curator-llm-factory-kt3jhgs9.js")
69712
+ import("./schema-zytt0t7a.js"),
69713
+ import("./curator-p1r777m5.js"),
69714
+ import("./curator-llm-factory-k0yebhsk.js")
69662
69715
  ]);
69663
69716
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate };
69664
69717
  }
@@ -72108,7 +72161,7 @@ async function computeCurationDiagnostics(directory, entries2) {
72108
72161
  let scanCompleted = false;
72109
72162
  let scanRemaining = 0;
72110
72163
  try {
72111
- const { getScanStatus } = await import("./scan-cursor-d93q0q3s.js");
72164
+ const { getScanStatus } = await import("./scan-cursor-0ffhpz79.js");
72112
72165
  const status = await getScanStatus(directory);
72113
72166
  scanGeneration = status.generation;
72114
72167
  scanCompleted = status.completed;
@@ -72118,10 +72171,10 @@ async function computeCurationDiagnostics(directory, entries2) {
72118
72171
  try {
72119
72172
  const { isLinked: isLinked2 } = await import("./knowledge-link-8bn2b7vr.js");
72120
72173
  if (isLinked2(directory)) {
72121
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-0ny9ef6s.js");
72174
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-zytt0t7a.js");
72122
72175
  let config;
72123
72176
  try {
72124
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-3qqnz0jg.js");
72177
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-pek9gmwm.js");
72125
72178
  const loaded = loadPluginConfigWithMeta2(directory);
72126
72179
  config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
72127
72180
  } catch {
@@ -73577,7 +73630,7 @@ async function handleDoctorCommand(directory, args) {
73577
73630
  const result = runConfigDoctor(config, directory, planParallelizationEnabled);
73578
73631
  let output;
73579
73632
  if (enableAutoFix && result.hasAutoFixableIssues) {
73580
- const { runConfigDoctorWithFixes } = await import("./config-doctor-yrven0ya.js");
73633
+ const { runConfigDoctorWithFixes } = await import("./config-doctor-4ck8e1fq.js");
73581
73634
  const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
73582
73635
  applyLossy: true
73583
73636
  });
@@ -73615,7 +73668,7 @@ async function handleDoctorCommand(directory, args) {
73615
73668
  `;
73616
73669
  }
73617
73670
  try {
73618
- const { runModelPreflight } = await import("./model-preflight-0k8bd388.js");
73671
+ const { runModelPreflight } = await import("./model-preflight-98g183my.js");
73619
73672
  const preflight = await runModelPreflight(config, swarmState.opencodeClient, { generatedAgentNames: swarmState.generatedAgentNames });
73620
73673
  const missingSelection = preflight.resolutions.filter((resolution) => resolution.status === "missing-selection");
73621
73674
  const unresolved = preflight.catalogAvailable ? preflight.resolutions.filter((resolution) => resolution.status === "unresolved") : [];
@@ -73649,7 +73702,7 @@ async function handleDoctorCommand(directory, args) {
73649
73702
  }
73650
73703
  } catch {}
73651
73704
  try {
73652
- const { renderKnowledgeReceiptPhaseIdSection } = await import("./doctor-knowledge-receipt-phase-id-d8arz38j.js");
73705
+ const { renderKnowledgeReceiptPhaseIdSection } = await import("./doctor-knowledge-receipt-phase-id-k204028d.js");
73653
73706
  output += await renderKnowledgeReceiptPhaseIdSection(directory, enableAutoFix);
73654
73707
  } catch {}
73655
73708
  const strayDirs = detectStraySwarmDirs(directory);
@@ -75666,7 +75719,7 @@ async function handleEvidenceCommand(directory, args) {
75666
75719
  return formatTaskEvidenceMarkdown(evidenceData);
75667
75720
  }
75668
75721
  async function handleEvidenceSummaryCommand(directory) {
75669
- const { buildEvidenceSummary } = await import("./evidence-summary-service-gjs4zssz.js");
75722
+ const { buildEvidenceSummary } = await import("./evidence-summary-service-4mx5ge81.js");
75670
75723
  const artifact = await buildEvidenceSummary(directory);
75671
75724
  if (!artifact) {
75672
75725
  return "No plan found. Run `/swarm plan` to check plan status.";
@@ -100132,7 +100185,7 @@ function createCuratorLLMDelegate(directory, mode = "init", sessionId) {
100132
100185
  }
100133
100186
  const sdkOpts = signal ? { signal } : {};
100134
100187
  try {
100135
- const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-agvmmvdt.js");
100188
+ const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-56n6nb7p.js");
100136
100189
  const createResult = await client.session.create({
100137
100190
  ...sessionId ? {
100138
100191
  body: {
@@ -102230,7 +102283,7 @@ async function cancelPrFeedbackLoopUnlocked(directory, sessionID, reason) {
102230
102283
  clearedEvents: []
102231
102284
  };
102232
102285
  try {
102233
- const { cancelPrFeedbackPublication: cancelPrFeedbackPublication2 } = await import("./pr-workflow-gate-wg003fkd.js");
102286
+ const { cancelPrFeedbackPublication: cancelPrFeedbackPublication2 } = await import("./pr-workflow-gate-t8veygyh.js");
102234
102287
  await cancelPrFeedbackPublication2(directory, sessionID, reason);
102235
102288
  } catch (err) {
102236
102289
  warn(`[pr-feedback-loop] cancelPrFeedbackPublication failed (fail-open): ${err instanceof Error ? err.message : String(err)}`);
@@ -118696,7 +118749,7 @@ function buildDetailedHelp(commandName, entry) {
118696
118749
  async function handleHelpCommand(ctx) {
118697
118750
  const targetCommand = ctx.args.join(" ");
118698
118751
  if (!targetCommand) {
118699
- const { buildHelpText } = await import("./index-g1r94prs.js");
118752
+ const { buildHelpText } = await import("./index-r9ab1sat.js");
118700
118753
  return buildHelpText();
118701
118754
  }
118702
118755
  const tokens = targetCommand.split(/\s+/);
@@ -118710,7 +118763,7 @@ async function handleHelpCommand(ctx) {
118710
118763
  > Note: \`/swarm ${resolved.key}\` is a deprecated alias for \`/swarm ${aliasTarget}\`.` : detailed;
118711
118764
  }
118712
118765
  const similar = _internals39.findSimilarCommands(targetCommand);
118713
- const { buildHelpText: fullHelp } = await import("./index-g1r94prs.js");
118766
+ const { buildHelpText: fullHelp } = await import("./index-r9ab1sat.js");
118714
118767
  if (similar.length > 0) {
118715
118768
  return `Command '/swarm ${targetCommand}' not found.
118716
118769
 
@@ -119038,7 +119091,7 @@ var COMMAND_REGISTRY = {
119038
119091
  },
119039
119092
  "guardrail explain": {
119040
119093
  handler: async (ctx) => {
119041
- const { handleGuardrailExplain } = await import("./guardrail-explain-g4wcr664.js");
119094
+ const { handleGuardrailExplain } = await import("./guardrail-explain-pba5em4h.js");
119042
119095
  return handleGuardrailExplain(ctx.directory, ctx.args);
119043
119096
  },
119044
119097
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -119048,7 +119101,7 @@ var COMMAND_REGISTRY = {
119048
119101
  },
119049
119102
  "guardrail reset": {
119050
119103
  handler: async (ctx) => {
119051
- const { handleGuardrailReset } = await import("./guardrail-reset-9z5rmp3f.js");
119104
+ const { handleGuardrailReset } = await import("./guardrail-reset-rfnr2vnn.js");
119052
119105
  return handleGuardrailReset(ctx.args, ctx.sessionID);
119053
119106
  },
119054
119107
  description: "Reset one exact active invocation/action circuit after repair",
@@ -119069,7 +119122,7 @@ var COMMAND_REGISTRY = {
119069
119122
  },
119070
119123
  "guardrail-log": {
119071
119124
  handler: async (ctx) => {
119072
- const { handleGuardrailLog } = await import("./guardrail-log-0hy23f7d.js");
119125
+ const { handleGuardrailLog } = await import("./guardrail-log-24fbykv3.js");
119073
119126
  return handleGuardrailLog(ctx.directory, ctx.args);
119074
119127
  },
119075
119128
  description: "Read the guardrail decision log (use --blocks-only for blocks)",
@@ -739,7 +739,7 @@ async function applyConfidenceFloorAction(directory, touched, options) {
739
739
  const {
740
740
  readAuthoritativeKnowledgeCounterRollups,
741
741
  effectiveRetrievalOutcomes
742
- } = await import("./knowledge-events-v0xavjkd.js");
742
+ } = await import("./knowledge-events-eyratqdp.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-kvtcqpke.js");
810
- const { KnowledgeConfigSchema } = await import("./schema-0ny9ef6s.js");
809
+ const { quarantineEntry } = await import("./knowledge-validator-fww6p37v.js");
810
+ const { KnowledgeConfigSchema } = await import("./schema-zytt0t7a.js");
811
811
  let config;
812
812
  try {
813
- const { loadPluginConfigWithMeta } = await import("./index-3qqnz0jg.js");
813
+ const { loadPluginConfigWithMeta } = await import("./index-pek9gmwm.js");
814
814
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
815
815
  config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
816
816
  } catch {
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  init_loader,
4
4
  loadPluginConfigWithMeta
5
- } from "./index-bpnpvhja.js";
5
+ } from "./index-tstk9xx7.js";
6
6
  import {
7
7
  init_schema
8
- } from "./index-20m9q2z9.js";
8
+ } from "./index-mwh6srje.js";
9
9
  import {
10
10
  DEFAULT_WORKTREE_ISOLATION_CONFIG,
11
11
  init_constants
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  writeSpeckitCheckoffLedger
4
- } from "./index-v8jhmn8x.js";
4
+ } from "./index-h69nppa3.js";
5
5
  import {
6
6
  validateSpecContent
7
7
  } from "./index-0725jpp7.js";