opencode-swarm 7.197.0 → 7.197.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/cli/{auto-checkpoint-s05sxmg6.js → auto-checkpoint-6qp3jn7f.js} +4 -4
  4. package/dist/cli/{checkpoint-kzyy9b7y.js → checkpoint-qe10m65d.js} +8 -8
  5. package/dist/cli/{coder-settlement-d1qqfgdm.js → coder-settlement-ry7zxj9v.js} +3 -3
  6. package/dist/cli/{config-doctor-yrven0ya.js → config-doctor-vcjcdf3f.js} +7 -7
  7. package/dist/cli/{core-qpmksfae.js → core-czytse6q.js} +1 -1
  8. package/dist/cli/{curator-mqnqst1g.js → curator-0wa5gjc8.js} +25 -25
  9. package/dist/cli/{curator-drift-2h6nf0mw.js → curator-drift-vf2egpr8.js} +5 -5
  10. package/dist/cli/{curator-llm-factory-kt3jhgs9.js → curator-llm-factory-k4f4c61r.js} +25 -25
  11. package/dist/cli/{doctor-knowledge-receipt-phase-id-d8arz38j.js → doctor-knowledge-receipt-phase-id-tkjsgcp6.js} +4 -4
  12. package/dist/cli/{evidence-summary-service-gjs4zssz.js → evidence-summary-service-p9wx1m45.js} +9 -9
  13. package/dist/cli/{gate-evidence-9n5r17hq.js → gate-evidence-bfmc23yw.js} +2 -2
  14. package/dist/cli/{guardrail-explain-g4wcr664.js → guardrail-explain-vv4c5b39.js} +26 -26
  15. package/dist/cli/{guardrail-log-0hy23f7d.js → guardrail-log-dtkzgxz8.js} +3 -3
  16. package/dist/cli/{guardrail-reset-9z5rmp3f.js → guardrail-reset-pbcfymhq.js} +25 -25
  17. package/dist/cli/{hive-promoter-w8f840ah.js → hive-promoter-g2sngbc0.js} +25 -25
  18. package/dist/cli/{index-g1r94prs.js → index-15j2cze3.js} +27 -27
  19. package/dist/cli/{index-1gnrtz76.js → index-1x9ybm51.js} +5 -5
  20. package/dist/cli/{index-njfkqr77.js → index-23kb8srf.js} +3 -3
  21. package/dist/cli/{index-ng6me2hh.js → index-2vtr85p8.js} +2 -2
  22. package/dist/cli/{index-dgvf1jey.js → index-5fzc5krd.js} +1 -1
  23. package/dist/cli/{index-401a12w5.js → index-65n2ccy2.js} +1 -1
  24. package/dist/cli/{index-29xr45xr.js → index-6ayj4y71.js} +3 -3
  25. package/dist/cli/{index-bpnpvhja.js → index-afrdvad3.js} +1 -1
  26. package/dist/cli/{index-mbdkr2sh.js → index-e21b8sjj.js} +1 -1
  27. package/dist/cli/{index-8ahnfc03.js → index-evpq5mqt.js} +2 -2
  28. package/dist/cli/{index-ysbmrmzk.js → index-fz45trs6.js} +1 -1
  29. package/dist/cli/{index-9sqcmzc2.js → index-gw7nkn2q.js} +2 -2
  30. package/dist/cli/{index-eabxecjf.js → index-h5g0nyy8.js} +2 -2
  31. package/dist/cli/{index-1cks27mv.js → index-mk15vyfe.js} +6 -6
  32. package/dist/cli/{index-67w61x1b.js → index-n06vxt1k.js} +3 -3
  33. package/dist/cli/{index-xb3h5tvj.js → index-n0ghdmvx.js} +4 -4
  34. package/dist/cli/{index-8zwmfh9d.js → index-nhz85frs.js} +1 -1
  35. package/dist/cli/{index-v8jhmn8x.js → index-ntr6263n.js} +1 -1
  36. package/dist/cli/{index-20m9q2z9.js → index-pnbcknzr.js} +1 -1
  37. package/dist/cli/{index-t3tzk566.js → index-ptxtqhwv.js} +1 -1
  38. package/dist/cli/{index-g749xs7c.js → index-q267bpej.js} +2 -2
  39. package/dist/cli/{index-jvpvghyh.js → index-rbevpmff.js} +148 -75
  40. package/dist/cli/{index-avbvxmw2.js → index-sx4brx0w.js} +1 -1
  41. package/dist/cli/{index-9px1knpj.js → index-tbm7q03h.js} +1 -1
  42. package/dist/cli/{index-jvzfw0n5.js → index-xa7ak8ss.js} +1 -1
  43. package/dist/cli/{index-agvmmvdt.js → index-xg9t03dg.js} +25 -25
  44. package/dist/cli/{index-xf6tdsyr.js → index-xq0w60za.js} +3 -3
  45. package/dist/cli/{index-fzx1wfxn.js → index-z7zk3enh.js} +1 -1
  46. package/dist/cli/{index-3qqnz0jg.js → index-zh1dmz46.js} +3 -3
  47. package/dist/cli/{index-5p0jhn2s.js → index-ztchs2p8.js} +1 -1
  48. package/dist/cli/index.js +26 -26
  49. package/dist/cli/{knowledge-escalator-42cvn0ec.js → knowledge-escalator-pad570yc.js} +7 -7
  50. package/dist/cli/{knowledge-events-v0xavjkd.js → knowledge-events-gx3x4wfs.js} +5 -5
  51. package/dist/cli/{knowledge-store-s01cread.js → knowledge-store-me6bx879.js} +1 -1
  52. package/dist/cli/{knowledge-validator-kvtcqpke.js → knowledge-validator-qykag9de.js} +2 -2
  53. package/dist/cli/{mcp-ff73w9z7.js → mcp-bn8qx2m6.js} +1 -1
  54. package/dist/cli/{model-preflight-0k8bd388.js → model-preflight-5pjf9jd2.js} +25 -25
  55. package/dist/cli/{pending-delegations-bmj7djk1.js → pending-delegations-5w5f18wt.js} +2 -2
  56. package/dist/cli/{pr-subscriptions-9dbrw7ky.js → pr-subscriptions-psecfgcz.js} +1 -1
  57. package/dist/cli/{pr-workflow-gate-wg003fkd.js → pr-workflow-gate-g8q09z1c.js} +25 -25
  58. package/dist/cli/{scan-cursor-d93q0q3s.js → scan-cursor-w0w1axgk.js} +2 -2
  59. package/dist/cli/{schema-0ny9ef6s.js → schema-yav9fk87.js} +1 -1
  60. package/dist/cli/{scope-persistence-ekcfq34x.js → scope-persistence-4wakfabk.js} +5 -5
  61. package/dist/cli/{server-rpx7pkg1.js → server-y8c23gcg.js} +25 -25
  62. package/dist/cli/{skill-generator-h1w7s5dh.js → skill-generator-ddrq8e52.js} +8 -8
  63. package/dist/cli/{snapshot-coordination-init-f6ecsn9c.js → snapshot-coordination-init-ckz8tz0b.js} +25 -25
  64. package/dist/cli/{speckit-checkoff-kf0zkpdw.js → speckit-checkoff-789etrtx.js} +3 -3
  65. package/dist/cli/{worktree-collision-ownership-p7zmj4ag.js → worktree-collision-ownership-yv7y35wq.js} +2 -2
  66. package/dist/cli/{worktree-isolation-nz90xvw5.js → worktree-isolation-5tebr6z1.js} +25 -25
  67. package/dist/commands/close/constants.d.ts +17 -1
  68. package/dist/commands/close/fs-helpers.d.ts +6 -1
  69. package/dist/hooks/pr-workflow-gate.d.ts +12 -0
  70. package/dist/hooks/pr-workflow-response-gate.d.ts +8 -0
  71. package/dist/index.js +10 -10
  72. package/dist/pr-review/persistence.d.ts +18 -1
  73. 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-nhz85frs.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-n06vxt1k.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-xa7ak8ss.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-5fzc5krd.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-fz45trs6.js";
112
112
  import {
113
113
  assertNoUnsettledCoderDispatch,
114
114
  listCoderSettlementWalStates,
115
115
  recoverCoderSettlement,
116
116
  recoverStaleCoderSettlements
117
- } from "./index-njfkqr77.js";
117
+ } from "./index-23kb8srf.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-6ayj4y71.js";
141
141
  import {
142
142
  buildEscalationBriefing,
143
143
  readRecentEscalations
144
- } from "./index-1cks27mv.js";
144
+ } from "./index-mk15vyfe.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-xq0w60za.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-1x9ybm51.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-ptxtqhwv.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-65n2ccy2.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-e21b8sjj.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-tbm7q03h.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-h5g0nyy8.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-2vtr85p8.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-sx4brx0w.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-q267bpej.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-z7zk3enh.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-gw7nkn2q.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-n0ghdmvx.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-afrdvad3.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-pnbcknzr.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-g8q09z1c.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-g8q09z1c.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-yv7y35wq.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-czytse6q.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-czytse6q.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-psecfgcz.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,
@@ -42552,7 +42605,28 @@ var ACTIVE_STATE_DIRS_TO_CLEAN = [
42552
42605
  "runs",
42553
42606
  "epic"
42554
42607
  ];
42555
- var ACTIVE_STATE_UNLINK_RETRY_DELAYS_MS = [25, 50, 100, 200];
42608
+ var ACTIVE_STATE_UNLINK_RETRY_DELAYS_MS = [
42609
+ 25,
42610
+ 50,
42611
+ 100,
42612
+ 200,
42613
+ 400,
42614
+ 600,
42615
+ 800,
42616
+ 1000,
42617
+ 1000,
42618
+ 1000,
42619
+ 1000,
42620
+ 1000,
42621
+ 1000,
42622
+ 1000,
42623
+ 1000,
42624
+ 1000,
42625
+ 1000,
42626
+ 1000,
42627
+ 1000,
42628
+ 1000
42629
+ ];
42556
42630
 
42557
42631
  // src/commands/close/internals.ts
42558
42632
  var closeReceiptLifecycleInternals = {
@@ -42988,8 +43062,7 @@ async function unlinkActiveStateFileWithRetry(filePath) {
42988
43062
  if (code !== "EBUSY" && code !== "EPERM" || delay2 === undefined) {
42989
43063
  throw error2;
42990
43064
  }
42991
- if (attempt === 0)
42992
- _internals50.collectGarbageBestEffort();
43065
+ _internals50.collectGarbageBestEffort();
42993
43066
  await _internals50.sleep(delay2);
42994
43067
  }
42995
43068
  }
@@ -46177,9 +46250,9 @@ function hashContent(content) {
46177
46250
  return createHash29("sha1").update(content).digest("hex");
46178
46251
  }
46179
46252
  async function loadConfigForPolicyCurator(directory) {
46180
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-0ny9ef6s.js");
46253
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-yav9fk87.js");
46181
46254
  try {
46182
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-3qqnz0jg.js");
46255
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-zh1dmz46.js");
46183
46256
  const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
46184
46257
  return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
46185
46258
  } catch {
@@ -49237,7 +49310,7 @@ async function resolveCuratorLLMDelegate(directory, mode, sessionId) {
49237
49310
  const seam = _internals50.createCuratorLLMDelegate;
49238
49311
  if (seam)
49239
49312
  return seam(directory, mode, sessionId);
49240
- const { createCuratorLLMDelegate } = await import("./curator-llm-factory-kt3jhgs9.js");
49313
+ const { createCuratorLLMDelegate } = await import("./curator-llm-factory-k4f4c61r.js");
49241
49314
  return createCuratorLLMDelegate(directory, mode, sessionId);
49242
49315
  }
49243
49316
  async function reconcileCloseTerminalStateForPlan(directory, targetPlan, options) {
@@ -49632,7 +49705,7 @@ async function runFinalizeStage(ctx) {
49632
49705
  }
49633
49706
  }
49634
49707
  try {
49635
- const { CuratorConfigSchema: CCS } = await import("./schema-0ny9ef6s.js");
49708
+ const { CuratorConfigSchema: CCS } = await import("./schema-yav9fk87.js");
49636
49709
  const { config: pmLoadedConfig } = _internals50.loadPluginConfigWithMeta(ctx.directory);
49637
49710
  const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
49638
49711
  if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
@@ -53665,7 +53738,7 @@ function serializeAgentSession(s) {
53665
53738
  }
53666
53739
  async function writeSnapshot(directory, state) {
53667
53740
  try {
53668
- const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-f6ecsn9c.js");
53741
+ const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-ckz8tz0b.js");
53669
53742
  await ensureSnapshotCoordinationReady(directory);
53670
53743
  const snapshot = {
53671
53744
  version: 3,
@@ -56721,7 +56794,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
56721
56794
  };
56722
56795
  }
56723
56796
  async function sweepActiveNearDuplicates(directory, options = {}) {
56724
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-3qqnz0jg.js");
56797
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-zh1dmz46.js");
56725
56798
  const { config } = loadPluginConfigWithMeta2(directory);
56726
56799
  const sweepConfig = config.learning?.dedup_sweep;
56727
56800
  if (sweepConfig?.enabled === false)
@@ -57845,7 +57918,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
57845
57918
  }
57846
57919
  if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
57847
57920
  try {
57848
- const skillModule = await import("./skill-generator-h1w7s5dh.js");
57921
+ const skillModule = await import("./skill-generator-ddrq8e52.js");
57849
57922
  for (const cand of skillCandidates) {
57850
57923
  if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
57851
57924
  continue;
@@ -58317,7 +58390,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
58317
58390
  } catch {}
58318
58391
  }
58319
58392
  if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
58320
- const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-42cvn0ec.js");
58393
+ const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-pad570yc.js");
58321
58394
  for (const { id } of contradictedEntries) {
58322
58395
  try {
58323
58396
  await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
@@ -59149,7 +59222,7 @@ async function runCuratorPostMortem(directory, options = {}) {
59149
59222
  warnings.push("Failed to collect knowledge summary.");
59150
59223
  }
59151
59224
  try {
59152
- const { getScanStatus } = await import("./scan-cursor-d93q0q3s.js");
59225
+ const { getScanStatus } = await import("./scan-cursor-w0w1axgk.js");
59153
59226
  const scanStatus = await getScanStatus(directory);
59154
59227
  if (scanStatus.remaining_estimate > 0) {
59155
59228
  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 +59394,9 @@ var _internals72 = {
59321
59394
  verifyPostMortemKnowledgeActions,
59322
59395
  repairPostMortemActions,
59323
59396
  loadDefaultKnowledgeConfig: async (directory) => {
59324
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-0ny9ef6s.js");
59397
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-yav9fk87.js");
59325
59398
  try {
59326
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-3qqnz0jg.js");
59399
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-zh1dmz46.js");
59327
59400
  const loaded = loadPluginConfigWithMeta2(directory);
59328
59401
  return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
59329
59402
  } catch {
@@ -59331,11 +59404,11 @@ var _internals72 = {
59331
59404
  }
59332
59405
  },
59333
59406
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
59334
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-mqnqst1g.js");
59407
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-0wa5gjc8.js");
59335
59408
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
59336
59409
  },
59337
59410
  checkHivePromotions: async (entries2, knowledgeConfig, directory) => {
59338
- const { checkHivePromotions } = await import("./hive-promoter-w8f840ah.js");
59411
+ const { checkHivePromotions } = await import("./hive-promoter-g2sngbc0.js");
59339
59412
  return checkHivePromotions(entries2, knowledgeConfig, directory);
59340
59413
  },
59341
59414
  applyProposalTriage: async (directory, triage) => {
@@ -59344,7 +59417,7 @@ var _internals72 = {
59344
59417
  activateProposal,
59345
59418
  listSkills: listSkills2,
59346
59419
  sanitizeSlug
59347
- } = await import("./skill-generator-h1w7s5dh.js");
59420
+ } = await import("./skill-generator-ddrq8e52.js");
59348
59421
  const result = {
59349
59422
  approved: [],
59350
59423
  rejected: [],
@@ -59386,7 +59459,7 @@ var _internals72 = {
59386
59459
  return result;
59387
59460
  },
59388
59461
  readPriorDriftReports: async (directory) => {
59389
- const { readPriorDriftReports: readPriorDriftReports2 } = await import("./curator-drift-2h6nf0mw.js");
59462
+ const { readPriorDriftReports: readPriorDriftReports2 } = await import("./curator-drift-vf2egpr8.js");
59390
59463
  return readPriorDriftReports2(directory);
59391
59464
  },
59392
59465
  readSwarmKnowledge: (directory) => readKnowledge(resolveSwarmKnowledgePath(directory))
@@ -69656,9 +69729,9 @@ var _internals80 = {
69656
69729
  loadPluginConfigWithMeta,
69657
69730
  loadCuratorDeps: async () => {
69658
69731
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate }] = await Promise.all([
69659
- import("./schema-0ny9ef6s.js"),
69660
- import("./curator-mqnqst1g.js"),
69661
- import("./curator-llm-factory-kt3jhgs9.js")
69732
+ import("./schema-yav9fk87.js"),
69733
+ import("./curator-0wa5gjc8.js"),
69734
+ import("./curator-llm-factory-k4f4c61r.js")
69662
69735
  ]);
69663
69736
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate };
69664
69737
  }
@@ -72108,7 +72181,7 @@ async function computeCurationDiagnostics(directory, entries2) {
72108
72181
  let scanCompleted = false;
72109
72182
  let scanRemaining = 0;
72110
72183
  try {
72111
- const { getScanStatus } = await import("./scan-cursor-d93q0q3s.js");
72184
+ const { getScanStatus } = await import("./scan-cursor-w0w1axgk.js");
72112
72185
  const status = await getScanStatus(directory);
72113
72186
  scanGeneration = status.generation;
72114
72187
  scanCompleted = status.completed;
@@ -72118,10 +72191,10 @@ async function computeCurationDiagnostics(directory, entries2) {
72118
72191
  try {
72119
72192
  const { isLinked: isLinked2 } = await import("./knowledge-link-8bn2b7vr.js");
72120
72193
  if (isLinked2(directory)) {
72121
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-0ny9ef6s.js");
72194
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-yav9fk87.js");
72122
72195
  let config;
72123
72196
  try {
72124
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-3qqnz0jg.js");
72197
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-zh1dmz46.js");
72125
72198
  const loaded = loadPluginConfigWithMeta2(directory);
72126
72199
  config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
72127
72200
  } catch {
@@ -73577,7 +73650,7 @@ async function handleDoctorCommand(directory, args) {
73577
73650
  const result = runConfigDoctor(config, directory, planParallelizationEnabled);
73578
73651
  let output;
73579
73652
  if (enableAutoFix && result.hasAutoFixableIssues) {
73580
- const { runConfigDoctorWithFixes } = await import("./config-doctor-yrven0ya.js");
73653
+ const { runConfigDoctorWithFixes } = await import("./config-doctor-vcjcdf3f.js");
73581
73654
  const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
73582
73655
  applyLossy: true
73583
73656
  });
@@ -73615,7 +73688,7 @@ async function handleDoctorCommand(directory, args) {
73615
73688
  `;
73616
73689
  }
73617
73690
  try {
73618
- const { runModelPreflight } = await import("./model-preflight-0k8bd388.js");
73691
+ const { runModelPreflight } = await import("./model-preflight-5pjf9jd2.js");
73619
73692
  const preflight = await runModelPreflight(config, swarmState.opencodeClient, { generatedAgentNames: swarmState.generatedAgentNames });
73620
73693
  const missingSelection = preflight.resolutions.filter((resolution) => resolution.status === "missing-selection");
73621
73694
  const unresolved = preflight.catalogAvailable ? preflight.resolutions.filter((resolution) => resolution.status === "unresolved") : [];
@@ -73649,7 +73722,7 @@ async function handleDoctorCommand(directory, args) {
73649
73722
  }
73650
73723
  } catch {}
73651
73724
  try {
73652
- const { renderKnowledgeReceiptPhaseIdSection } = await import("./doctor-knowledge-receipt-phase-id-d8arz38j.js");
73725
+ const { renderKnowledgeReceiptPhaseIdSection } = await import("./doctor-knowledge-receipt-phase-id-tkjsgcp6.js");
73653
73726
  output += await renderKnowledgeReceiptPhaseIdSection(directory, enableAutoFix);
73654
73727
  } catch {}
73655
73728
  const strayDirs = detectStraySwarmDirs(directory);
@@ -75666,7 +75739,7 @@ async function handleEvidenceCommand(directory, args) {
75666
75739
  return formatTaskEvidenceMarkdown(evidenceData);
75667
75740
  }
75668
75741
  async function handleEvidenceSummaryCommand(directory) {
75669
- const { buildEvidenceSummary } = await import("./evidence-summary-service-gjs4zssz.js");
75742
+ const { buildEvidenceSummary } = await import("./evidence-summary-service-p9wx1m45.js");
75670
75743
  const artifact = await buildEvidenceSummary(directory);
75671
75744
  if (!artifact) {
75672
75745
  return "No plan found. Run `/swarm plan` to check plan status.";
@@ -100132,7 +100205,7 @@ function createCuratorLLMDelegate(directory, mode = "init", sessionId) {
100132
100205
  }
100133
100206
  const sdkOpts = signal ? { signal } : {};
100134
100207
  try {
100135
- const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-agvmmvdt.js");
100208
+ const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-xg9t03dg.js");
100136
100209
  const createResult = await client.session.create({
100137
100210
  ...sessionId ? {
100138
100211
  body: {
@@ -102230,7 +102303,7 @@ async function cancelPrFeedbackLoopUnlocked(directory, sessionID, reason) {
102230
102303
  clearedEvents: []
102231
102304
  };
102232
102305
  try {
102233
- const { cancelPrFeedbackPublication: cancelPrFeedbackPublication2 } = await import("./pr-workflow-gate-wg003fkd.js");
102306
+ const { cancelPrFeedbackPublication: cancelPrFeedbackPublication2 } = await import("./pr-workflow-gate-g8q09z1c.js");
102234
102307
  await cancelPrFeedbackPublication2(directory, sessionID, reason);
102235
102308
  } catch (err) {
102236
102309
  warn(`[pr-feedback-loop] cancelPrFeedbackPublication failed (fail-open): ${err instanceof Error ? err.message : String(err)}`);
@@ -118696,7 +118769,7 @@ function buildDetailedHelp(commandName, entry) {
118696
118769
  async function handleHelpCommand(ctx) {
118697
118770
  const targetCommand = ctx.args.join(" ");
118698
118771
  if (!targetCommand) {
118699
- const { buildHelpText } = await import("./index-g1r94prs.js");
118772
+ const { buildHelpText } = await import("./index-15j2cze3.js");
118700
118773
  return buildHelpText();
118701
118774
  }
118702
118775
  const tokens = targetCommand.split(/\s+/);
@@ -118710,7 +118783,7 @@ async function handleHelpCommand(ctx) {
118710
118783
  > Note: \`/swarm ${resolved.key}\` is a deprecated alias for \`/swarm ${aliasTarget}\`.` : detailed;
118711
118784
  }
118712
118785
  const similar = _internals39.findSimilarCommands(targetCommand);
118713
- const { buildHelpText: fullHelp } = await import("./index-g1r94prs.js");
118786
+ const { buildHelpText: fullHelp } = await import("./index-15j2cze3.js");
118714
118787
  if (similar.length > 0) {
118715
118788
  return `Command '/swarm ${targetCommand}' not found.
118716
118789
 
@@ -119038,7 +119111,7 @@ var COMMAND_REGISTRY = {
119038
119111
  },
119039
119112
  "guardrail explain": {
119040
119113
  handler: async (ctx) => {
119041
- const { handleGuardrailExplain } = await import("./guardrail-explain-g4wcr664.js");
119114
+ const { handleGuardrailExplain } = await import("./guardrail-explain-vv4c5b39.js");
119042
119115
  return handleGuardrailExplain(ctx.directory, ctx.args);
119043
119116
  },
119044
119117
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -119048,7 +119121,7 @@ var COMMAND_REGISTRY = {
119048
119121
  },
119049
119122
  "guardrail reset": {
119050
119123
  handler: async (ctx) => {
119051
- const { handleGuardrailReset } = await import("./guardrail-reset-9z5rmp3f.js");
119124
+ const { handleGuardrailReset } = await import("./guardrail-reset-pbcfymhq.js");
119052
119125
  return handleGuardrailReset(ctx.args, ctx.sessionID);
119053
119126
  },
119054
119127
  description: "Reset one exact active invocation/action circuit after repair",
@@ -119069,7 +119142,7 @@ var COMMAND_REGISTRY = {
119069
119142
  },
119070
119143
  "guardrail-log": {
119071
119144
  handler: async (ctx) => {
119072
- const { handleGuardrailLog } = await import("./guardrail-log-0hy23f7d.js");
119145
+ const { handleGuardrailLog } = await import("./guardrail-log-dtkzgxz8.js");
119073
119146
  return handleGuardrailLog(ctx.directory, ctx.args);
119074
119147
  },
119075
119148
  description: "Read the guardrail decision log (use --blocks-only for blocks)",
@@ -9,7 +9,7 @@ import {
9
9
  resolveSwarmKnowledgePath,
10
10
  resolveSwarmRejectedPath,
11
11
  transactKnowledge
12
- } from "./index-xb3h5tvj.js";
12
+ } from "./index-n0ghdmvx.js";
13
13
  import {
14
14
  resolveKnowledgeStoreDir
15
15
  } from "./index-ry5g9s8d.js";