opencode-swarm 7.164.5 → 7.164.6

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 (78) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +12 -12
  2. package/dist/background/pending-delegations.d.ts +9 -2
  3. package/dist/background/pr-review-contract.d.ts +9 -0
  4. package/dist/cli/{coder-settlement-x9wbqx46.js → coder-settlement-6qgvzx40.js} +9 -9
  5. package/dist/cli/{config-doctor-axd9d6hs.js → config-doctor-d1cbh67h.js} +2 -2
  6. package/dist/cli/{core-f1a1fk13.js → core-g0cvvj3b.js} +1 -1
  7. package/dist/cli/{curation-policy-2cy7wejw.js → curation-policy-7f8x9yg6.js} +4 -4
  8. package/dist/cli/{curator-drift-3s3q4wsy.js → curator-drift-0r0scc8r.js} +4 -4
  9. package/dist/cli/curator-llm-factory-dw7md4nr.js +66 -0
  10. package/dist/cli/{curator-b104f7a7.js → curator-q3qn89wn.js} +32 -32
  11. package/dist/cli/{evidence-summary-service-5xsjs3x3.js → evidence-summary-service-3meyb8rc.js} +13 -13
  12. package/dist/cli/{gate-evidence-ypja4156.js → gate-evidence-mhc0w7vp.js} +5 -5
  13. package/dist/cli/guardrail-explain-6cbszhw1.js +67 -0
  14. package/dist/cli/{guardrail-log-6t4e2j5f.js → guardrail-log-0nd1eqvz.js} +6 -6
  15. package/dist/cli/{guardrail-reset-es0bg976.js → guardrail-reset-mzeyd6jh.js} +32 -32
  16. package/dist/cli/{hive-promoter-yzv5g7jy.js → hive-promoter-w7g879cm.js} +32 -32
  17. package/dist/cli/{index-ea7sehgy.js → index-12xzj0hm.js} +2 -2
  18. package/dist/cli/{index-rz87mx1c.js → index-2c3np82d.js} +1 -1
  19. package/dist/cli/{index-fwebva1m.js → index-4k16cz8r.js} +6 -6
  20. package/dist/cli/{index-7rat6nyh.js → index-59hvr3f4.js} +4 -4
  21. package/dist/cli/{index-yrsag0vs.js → index-5p1tzpwh.js} +1 -1
  22. package/dist/cli/{index-aaqbhn9h.js → index-6f9yvd67.js} +2 -2
  23. package/dist/cli/{index-25jze7sf.js → index-7v3bb0h3.js} +1 -1
  24. package/dist/cli/{index-3gb7bw7h.js → index-935ww10s.js} +165 -93
  25. package/dist/cli/{index-4krjn1gn.js → index-9qvmsyab.js} +1 -1
  26. package/dist/cli/{index-aper29nf.js → index-ay9cr8tr.js} +1 -1
  27. package/dist/cli/{index-xj4kbtdw.js → index-b0m3efpf.js} +2 -2
  28. package/dist/cli/{index-tfa2p4y4.js → index-cyhw0der.js} +1 -1
  29. package/dist/cli/{index-553veay1.js → index-ew99d4y6.js} +1 -1
  30. package/dist/cli/{index-wbnyc50b.js → index-g5714mpv.js} +3 -3
  31. package/dist/cli/{index-3rrc5x4v.js → index-g94qqwnz.js} +2 -2
  32. package/dist/cli/{index-0trtcm9n.js → index-gwg7a00b.js} +7 -7
  33. package/dist/cli/{index-4jmtdtm9.js → index-hdapetg1.js} +2 -2
  34. package/dist/cli/{index-8h9nng7f.js → index-j3hsjynw.js} +4 -4
  35. package/dist/cli/{index-xm7dc14y.js → index-j645xpsm.js} +1 -1
  36. package/dist/cli/{index-rc6hec4j.js → index-jzvrvdmr.js} +4 -4
  37. package/dist/cli/{index-1q2dwv69.js → index-kvb4dwgf.js} +1 -1
  38. package/dist/cli/{index-164m995b.js → index-p56xc59p.js} +1 -1
  39. package/dist/cli/{index-50s9q4c1.js → index-pvp5tnn2.js} +1 -1
  40. package/dist/cli/{index-er8ba9be.js → index-qdbgc16x.js} +39 -6
  41. package/dist/cli/{index-q0gtgwyr.js → index-rysxqae0.js} +7 -7
  42. package/dist/cli/{index-j9a4fsxg.js → index-t1nkr7cz.js} +1 -1
  43. package/dist/cli/{index-25z5qwkk.js → index-tegp2mny.js} +1 -1
  44. package/dist/cli/{index-ywtcznk2.js → index-ty3vtqe2.js} +3 -3
  45. package/dist/cli/{index-hnjkpk57.js → index-x6zyc38w.js} +1 -1
  46. package/dist/cli/{index-maxz22c1.js → index-x76mprg2.js} +8 -8
  47. package/dist/cli/{index-ssb67ff6.js → index-y4z0rhsa.js} +34 -34
  48. package/dist/cli/{index-1f4nandk.js → index-yh8wxegw.js} +1 -1
  49. package/dist/cli/{index-4emx8hhh.js → index-ze5zyv28.js} +1 -1
  50. package/dist/cli/{index-y42pra05.js → index-zfwd65c2.js} +3 -3
  51. package/dist/cli/{index-0zbze3n6.js → index-zjg5ajf5.js} +1 -1
  52. package/dist/cli/{index-s09b63xg.js → index-zypacgjc.js} +5 -5
  53. package/dist/cli/index.js +32 -32
  54. package/dist/cli/{knowledge-escalator-evjd8g7y.js → knowledge-escalator-aca0nhqg.js} +11 -11
  55. package/dist/cli/{knowledge-events-q46z1wy6.js → knowledge-events-n5t313ht.js} +9 -9
  56. package/dist/cli/{knowledge-link-ffmzf72f.js → knowledge-link-8ea4ksda.js} +3 -3
  57. package/dist/cli/{knowledge-store-z82f5x9k.js → knowledge-store-j97ejf6a.js} +4 -4
  58. package/dist/cli/{knowledge-validator-19gbnxx2.js → knowledge-validator-01evhydg.js} +6 -6
  59. package/dist/cli/{pending-delegations-t4cqk5ha.js → pending-delegations-w73abdk3.js} +4 -4
  60. package/dist/cli/{pr-subscriptions-3enjtq0k.js → pr-subscriptions-05dzvavk.js} +4 -4
  61. package/dist/cli/{pr-workflow-gate-3ecgfsge.js → pr-workflow-gate-t0tnkx5f.js} +34 -32
  62. package/dist/cli/{runner-wqy2hbxn.js → runner-fh7t0mn9.js} +4 -4
  63. package/dist/cli/{scan-cursor-8wcy0dvf.js → scan-cursor-63zx2qd8.js} +5 -5
  64. package/dist/cli/{schema-hsw9r2tm.js → schema-t1scx08g.js} +1 -1
  65. package/dist/cli/{scope-persistence-mbwt4grd.js → scope-persistence-1a5qmchf.js} +7 -7
  66. package/dist/cli/{skill-generator-kg32a5jy.js → skill-generator-7werbwgv.js} +13 -13
  67. package/dist/cli/{worktree-collision-ownership-0rfw6kp3.js → worktree-collision-ownership-wzdzky33.js} +5 -5
  68. package/dist/cli/{worktree-isolation-qcwt09ve.js → worktree-isolation-m02ay3kg.js} +32 -32
  69. package/dist/hooks/delegation-gate.d.ts +3 -1
  70. package/dist/hooks/pr-workflow-gate.d.ts +10 -2
  71. package/dist/index.js +27 -24
  72. package/dist/pr-review/authorization.d.ts +13 -3
  73. package/dist/tools/authorize-pr-review-reentry.d.ts +5 -4
  74. package/dist/tools/dispatch-lanes.d.ts +1 -0
  75. package/dist/tools/pr-workflow-status.d.ts +2 -0
  76. package/package.json +1 -1
  77. package/dist/cli/curator-llm-factory-cv7ft0mb.js +0 -66
  78. package/dist/cli/guardrail-explain-cvha7b9p.js +0 -67
@@ -6,7 +6,7 @@ import {
6
6
  resolveExecutableFromPath,
7
7
  runEvaluation,
8
8
  runExternalTool
9
- } from "./index-25jze7sf.js";
9
+ } from "./index-7v3bb0h3.js";
10
10
  import {
11
11
  finalizeShellAuditForClose,
12
12
  isPolicyProtectedPath,
@@ -15,13 +15,13 @@ import {
15
15
  protectedRoots,
16
16
  redactDecisionLineForArchive,
17
17
  stableCanonicalStringify
18
- } from "./index-ea7sehgy.js";
18
+ } from "./index-12xzj0hm.js";
19
19
  import {
20
20
  detectStraySwarmDirs,
21
21
  readDoctorArtifact,
22
22
  removeStraySwarmDir,
23
23
  runConfigDoctor
24
- } from "./index-1q2dwv69.js";
24
+ } from "./index-kvb4dwgf.js";
25
25
  import {
26
26
  MAX_TRANSIENT_RETRIES,
27
27
  archiveEvidence,
@@ -65,7 +65,7 @@ import {
65
65
  validateProjectRoot,
66
66
  validateSymlinkBoundary,
67
67
  validateTargetWithinRoot
68
- } from "./index-maxz22c1.js";
68
+ } from "./index-x76mprg2.js";
69
69
  import {
70
70
  EvaluationTaskV1Schema,
71
71
  GateAuditManifestV1Schema,
@@ -82,7 +82,7 @@ import {
82
82
  saveGateAuditResult,
83
83
  savePromotionDecision,
84
84
  saveTaskSetSnapshot
85
- } from "./index-4krjn1gn.js";
85
+ } from "./index-9qvmsyab.js";
86
86
  import {
87
87
  canonicalHash,
88
88
  canonicalJson,
@@ -124,15 +124,15 @@ import {
124
124
  retireSkill,
125
125
  selectCandidateEntries,
126
126
  syncBundledProjectSkillsIfMissingAsync
127
- } from "./index-7rat6nyh.js";
127
+ } from "./index-59hvr3f4.js";
128
128
  import {
129
129
  readRecentEscalations
130
- } from "./index-s09b63xg.js";
130
+ } from "./index-zypacgjc.js";
131
131
  import {
132
132
  alreadyCuratedThisGeneration,
133
133
  claimNextScanBatch,
134
134
  resolveCohortId
135
- } from "./index-aaqbhn9h.js";
135
+ } from "./index-6f9yvd67.js";
136
136
  import {
137
137
  CURATOR_INIT_PROMPT,
138
138
  CURATOR_PHASE_PROMPT,
@@ -143,7 +143,7 @@ import {
143
143
  getGlobalEventBus,
144
144
  getGroupCommitWriter,
145
145
  importLegacyJsonl
146
- } from "./index-1f4nandk.js";
146
+ } from "./index-yh8wxegw.js";
147
147
  import {
148
148
  DURABILITY_CLASSES,
149
149
  applySynchronousForClass,
@@ -159,7 +159,7 @@ import {
159
159
  resolveSpeckitProjection,
160
160
  validateSpeckit,
161
161
  writeProjectedSpecSync
162
- } from "./index-0zbze3n6.js";
162
+ } from "./index-zjg5ajf5.js";
163
163
  import {
164
164
  loadDatabaseCtor
165
165
  } from "./index-zaab1wz9.js";
@@ -169,7 +169,7 @@ import {
169
169
  listActive,
170
170
  subscribe,
171
171
  unsubscribe
172
- } from "./index-y42pra05.js";
172
+ } from "./index-zfwd65c2.js";
173
173
  import {
174
174
  clearWorktreeMergeStatus,
175
175
  getAllWorktreeMergeFailures,
@@ -181,7 +181,7 @@ import {
181
181
  listCoderSettlementWalStates,
182
182
  recoverCoderSettlement,
183
183
  recoverStaleCoderSettlements
184
- } from "./index-fwebva1m.js";
184
+ } from "./index-4k16cz8r.js";
185
185
  import {
186
186
  parsePorcelainV2Snapshot,
187
187
  resolveCommitCountSince,
@@ -214,7 +214,7 @@ import {
214
214
  WORKTREE_LIFECYCLE_LOCK_FILE,
215
215
  recordWorktreeProvisioningOwner,
216
216
  removeWorktreeProvisioningOwner
217
- } from "./index-xj4kbtdw.js";
217
+ } from "./index-b0m3efpf.js";
218
218
  import {
219
219
  appendUnactionable,
220
220
  quarantineEntry,
@@ -225,11 +225,11 @@ import {
225
225
  validateActionableFields,
226
226
  validateLesson,
227
227
  validateSkillPath
228
- } from "./index-rc6hec4j.js";
228
+ } from "./index-jzvrvdmr.js";
229
229
  import {
230
230
  authorizeCuration,
231
231
  buildConfigFingerprintInput
232
- } from "./index-hnjkpk57.js";
232
+ } from "./index-x6zyc38w.js";
233
233
  import {
234
234
  cohortConfigFingerprint
235
235
  } from "./index-rtry5xyf.js";
@@ -260,12 +260,12 @@ import {
260
260
  transitionTaskWorkflowEvidence,
261
261
  withTaskEvidenceTransaction,
262
262
  writeWorkflowWalFile
263
- } from "./index-wbnyc50b.js";
263
+ } from "./index-g5714mpv.js";
264
264
  import {
265
265
  makeWorktreeBranchName,
266
266
  provisionWorktree,
267
267
  removeWorktree
268
- } from "./index-j9a4fsxg.js";
268
+ } from "./index-t1nkr7cz.js";
269
269
  import {
270
270
  DEFAULT_STALE_DELEGATION_TIMEOUT_MS,
271
271
  DELEGATION_COMPACTION_HIGH_WATER_BYTES,
@@ -284,6 +284,7 @@ import {
284
284
  PrReviewReviewerVerdictFieldsSchema,
285
285
  PrReviewRunIdSchema,
286
286
  collectDelegationLedgerHealth,
287
+ decodePrReviewWorkflowBinding,
287
288
  findByBatchId,
288
289
  generatePrReviewRunId,
289
290
  maintainBackgroundDelegations,
@@ -298,7 +299,7 @@ import {
298
299
  scanBackgroundCoderReservationsForAdmission,
299
300
  scanDelegationsForRecovery,
300
301
  sweepStaleDelegations
301
- } from "./index-er8ba9be.js";
302
+ } from "./index-qdbgc16x.js";
302
303
  import {
303
304
  compositeSessionKey,
304
305
  sessionKeySuffix
@@ -309,7 +310,7 @@ import {
309
310
  clearAllScopes,
310
311
  clearScopeBindingFromDisk,
311
312
  clearScopeBindings
312
- } from "./index-8h9nng7f.js";
313
+ } from "./index-j3hsjynw.js";
313
314
  import {
314
315
  appendLedgerEvent,
315
316
  computePlanLedgerHash,
@@ -324,7 +325,7 @@ import {
324
325
  readPlanEpochIdentity,
325
326
  replayFromLedgerWithStatus,
326
327
  takeSnapshotEvent
327
- } from "./index-xm7dc14y.js";
328
+ } from "./index-j645xpsm.js";
328
329
  import {
329
330
  CORE_EVENT_LOCKED,
330
331
  appendCoreEventSync,
@@ -334,7 +335,7 @@ import {
334
335
  hasSpecDriftAuditEvent,
335
336
  hasTaskRepairAuditEvent,
336
337
  readCoreEvents
337
- } from "./index-50s9q4c1.js";
338
+ } from "./index-pvp5tnn2.js";
338
339
  import {
339
340
  sanitizeDiagnosticText
340
341
  } from "./index-556ja8an.js";
@@ -383,7 +384,7 @@ import {
383
384
  transactFile,
384
385
  transactKnowledge,
385
386
  wordBigrams
386
- } from "./index-q0gtgwyr.js";
387
+ } from "./index-rysxqae0.js";
387
388
  import {
388
389
  MAX_EVENT_LOG_ENTRIES,
389
390
  _internals as _internals2,
@@ -399,10 +400,10 @@ import {
399
400
  recordKnowledgeEvent,
400
401
  recordPhaseCloseIntent,
401
402
  resolveKnowledgeEventsPath
402
- } from "./index-0trtcm9n.js";
403
+ } from "./index-gwg7a00b.js";
403
404
  import {
404
405
  resolveWorktreeIsolationConfig
405
- } from "./index-4jmtdtm9.js";
406
+ } from "./index-hdapetg1.js";
406
407
  import {
407
408
  RetrospectiveEvidenceSchema
408
409
  } from "./index-zg9d392c.js";
@@ -411,7 +412,7 @@ import {
411
412
  readSwarmFileAsync,
412
413
  safeHook,
413
414
  validateSwarmPath
414
- } from "./index-rz87mx1c.js";
415
+ } from "./index-2c3np82d.js";
415
416
  import {
416
417
  bunSpawn,
417
418
  bunSpawnSync,
@@ -426,7 +427,7 @@ import {
426
427
  loadGateOverrides,
427
428
  loadPluginConfig,
428
429
  loadPluginConfigWithMeta
429
- } from "./index-553veay1.js";
430
+ } from "./index-ew99d4y6.js";
430
431
  import {
431
432
  DEFAULT_HARNESS_EVOLUTION_CONFIG,
432
433
  DEFAULT_PR_REVIEW_RESILIENCE_CONFIG,
@@ -443,7 +444,7 @@ import {
443
444
  resolveAutoReviewConfig,
444
445
  resolveGeneratedAgentRole,
445
446
  stripKnownSwarmPrefix
446
- } from "./index-yrsag0vs.js";
447
+ } from "./index-5p1tzpwh.js";
447
448
  import {
448
449
  init_git_executable,
449
450
  resolveGitExecutable,
@@ -459,7 +460,7 @@ import {
459
460
  observeCuratorCompliance,
460
461
  observeStoreHealth,
461
462
  readLearningHealth
462
- } from "./index-164m995b.js";
463
+ } from "./index-p56xc59p.js";
463
464
  import {
464
465
  AGENT_TOOL_MAP,
465
466
  ALL_AGENT_NAMES,
@@ -490,10 +491,10 @@ import {
490
491
  resolveLinkDir,
491
492
  sanitizeLinkId,
492
493
  writeLinkPointer
493
- } from "./index-25z5qwkk.js";
494
+ } from "./index-tegp2mny.js";
494
495
  import {
495
496
  atomicWriteFile
496
- } from "./index-4emx8hhh.js";
497
+ } from "./index-ze5zyv28.js";
497
498
  import {
498
499
  KNOWLEDGE_SCHEMA_VERSION,
499
500
  OUTCOME_BLOCK_THRESHOLD,
@@ -515,7 +516,7 @@ import {
515
516
  matchTempGrammar,
516
517
  parseTargetBasename,
517
518
  resetSwarmArtifactCache
518
- } from "./index-tfa2p4y4.js";
519
+ } from "./index-cyhw0der.js";
519
520
  import {
520
521
  emit,
521
522
  getLastHeartbeat,
@@ -10131,10 +10132,18 @@ async function writeAuthorizationFile(filePath, file) {
10131
10132
  }
10132
10133
  }
10133
10134
  function pruneAuthorizations(records, nowMs) {
10134
- const unexpired = records.filter((record) => Date.parse(record.expiresAt) > nowMs).sort((left, right) => right.createdAt.localeCompare(left.createdAt));
10135
- const unconsumed = unexpired.filter((record) => !record.consumedAt);
10136
- const consumed = unexpired.filter((record) => record.consumedAt).slice(0, Math.max(0, MAX_PERSISTED_AUTHORIZATIONS - unconsumed.length));
10137
- return [...unconsumed.slice(0, MAX_PERSISTED_AUTHORIZATIONS), ...consumed];
10135
+ const unexpired = records.filter((record) => Date.parse(record.expiresAt) > nowMs);
10136
+ const newest = (left, right) => {
10137
+ const leftAt = left.consumedAt ?? left.createdAt;
10138
+ const rightAt = right.consumedAt ?? right.createdAt;
10139
+ return leftAt === rightAt ? 0 : leftAt > rightAt ? -1 : 1;
10140
+ };
10141
+ const live = unexpired.filter((record) => !record.consumedAt).sort(newest);
10142
+ const consumed = unexpired.filter((record) => Boolean(record.consumedAt)).sort(newest);
10143
+ return [
10144
+ ...live,
10145
+ ...consumed.slice(0, Math.max(0, MAX_PERSISTED_AUTHORIZATIONS - live.length))
10146
+ ];
10138
10147
  }
10139
10148
  var lf = import_proper_lockfile3.default;
10140
10149
  async function withAuthorizationLock(filePath, write) {
@@ -10157,6 +10166,30 @@ async function withAuthorizationLock(filePath, write) {
10157
10166
  function authorizationMatchesBinding(record, binding) {
10158
10167
  return binding.prHeadSha === record.prHeadSha && binding.revisionDigest === record.revisionDigest && binding.generation === record.generation && binding.workflowInstanceId === record.workflowInstanceId && binding.runId === record.runId;
10159
10168
  }
10169
+ async function hasPrReviewReentryAuthorizationAgainstBinding(directory, sessionID, request, binding) {
10170
+ const trimmedSession = sessionID.trim();
10171
+ if (!trimmedSession)
10172
+ return false;
10173
+ const filePath = reentryAuthorizationFilePath(directory, trimmedSession);
10174
+ try {
10175
+ return await withAuthorizationLock(filePath, async () => {
10176
+ const existing = await readAuthorizationFile(filePath);
10177
+ if (!existing)
10178
+ return false;
10179
+ const nowMs = Date.now();
10180
+ const records = pruneAuthorizations(existing.authorizations, nowMs);
10181
+ if (records.length !== existing.authorizations.length) {
10182
+ await writeAuthorizationFile(filePath, {
10183
+ ...existing,
10184
+ authorizations: records
10185
+ });
10186
+ }
10187
+ return records.some((record) => !record.consumedAt && record.role === request.role && record.sessionId === trimmedSession && authorizationMatchesBinding(record, binding));
10188
+ });
10189
+ } catch {
10190
+ return false;
10191
+ }
10192
+ }
10160
10193
  async function reservePrReviewReentryAuthorizationAgainstBinding(directory, sessionID, request, binding) {
10161
10194
  const trimmedSession = sessionID.trim();
10162
10195
  if (!trimmedSession)
@@ -10208,6 +10241,7 @@ var _internals17 = {
10208
10241
  reentryAuthorizationFilePath,
10209
10242
  pruneAuthorizations,
10210
10243
  authorizationMatchesBinding,
10244
+ hasPrReviewReentryAuthorizationAgainstBinding,
10211
10245
  renameImpl: (from, to) => fsp3.rename(from, to),
10212
10246
  renameRetryDelaysMs: RENAME_RETRY_DELAYS_MS,
10213
10247
  renameWithRetryAsync,
@@ -10727,7 +10761,7 @@ function hasRevisionIndependentDiscoverySemantics(directory, qualified, state) {
10727
10761
  gitHead: state.prHeadSha ?? "",
10728
10762
  revisionDigest: artifact.revisionDigest,
10729
10763
  workflowInstanceId: state.workflowInstanceId,
10730
- workflowRevision: state.revision,
10764
+ workflowRevision: qualified.record.workflowGeneration,
10731
10765
  baseSha: state.prReviewBaseSha,
10732
10766
  reviewScope: state.prReviewBaseSha && state.prHeadSha ? `complete PR diff ${state.prReviewBaseSha}...${state.prHeadSha}` : undefined
10733
10767
  }
@@ -10818,7 +10852,7 @@ function latestStructuredReceiptUnresolvedForBaseDimension(directory, state, rev
10818
10852
  gitHead: state.prHeadSha ?? "",
10819
10853
  revisionDigest,
10820
10854
  workflowInstanceId: state.workflowInstanceId,
10821
- workflowRevision: state.revision,
10855
+ workflowRevision: record.workflowGeneration,
10822
10856
  baseSha: state.prReviewBaseSha,
10823
10857
  reviewScope
10824
10858
  }
@@ -12255,7 +12289,7 @@ async function submitPrReviewResult(directory, childSessionId, input) {
12255
12289
  reason: "invalid child session or result envelope"
12256
12290
  };
12257
12291
  }
12258
- const preliminary = readDelegations(directory).filter((record) => record.subagentSessionId === child && record.batchId === input.batchId && record.laneId === input.laneId);
12292
+ const preliminary = readDelegations(directory).filter((record2) => record2.subagentSessionId === child && record2.correlationId === child && (record2.mode === "swarm-pr-review:base" || record2.mode === "swarm-pr-review:micro"));
12259
12293
  if (preliminary.length !== 1) {
12260
12294
  return {
12261
12295
  status: "rejected",
@@ -12263,6 +12297,21 @@ async function submitPrReviewResult(directory, childSessionId, input) {
12263
12297
  };
12264
12298
  }
12265
12299
  const parentSessionId = preliminary[0].parentSessionId;
12300
+ const record = preliminary[0];
12301
+ if (!record.batchId || !record.laneId) {
12302
+ return {
12303
+ status: "rejected",
12304
+ reason: "delegation batch/lane provenance is missing"
12305
+ };
12306
+ }
12307
+ if (input.batchId !== undefined && input.batchId !== record.batchId || input.laneId !== undefined && input.laneId !== record.laneId) {
12308
+ return {
12309
+ status: "rejected",
12310
+ reason: "delegation batch/lane identity mismatch"
12311
+ };
12312
+ }
12313
+ const batchId = record.batchId;
12314
+ const laneId = record.laneId;
12266
12315
  return withSessionStateMutation(directory, parentSessionId, async () => {
12267
12316
  const state = await readPrWorkflowGateStateFromDisk3(directory, parentSessionId);
12268
12317
  if (!state || state.mode !== "PR_REVIEW" || !state.workflowInstanceId || !state.prHeadSha || !state.prReviewBaseSha) {
@@ -12275,7 +12324,17 @@ async function submitPrReviewResult(directory, childSessionId, input) {
12275
12324
  if (ctx.revisionDigest !== input.revisionDigest) {
12276
12325
  return { status: "rejected", reason: "stale dispatch revision digest" };
12277
12326
  }
12278
- const record = preliminary[0];
12327
+ const dispatchWorkflowInstanceId = decodePrReviewWorkflowBinding(record.jobId);
12328
+ const dispatchWorkflowRevision = record.workflowGeneration;
12329
+ if (!dispatchWorkflowInstanceId || dispatchWorkflowRevision === undefined) {
12330
+ return {
12331
+ status: "rejected",
12332
+ reason: "delegation workflow binding provenance is missing"
12333
+ };
12334
+ }
12335
+ if (dispatchWorkflowInstanceId !== state.workflowInstanceId) {
12336
+ return { status: "rejected", reason: "stale workflow instance binding" };
12337
+ }
12279
12338
  if (record.mode !== "swarm-pr-review:base" && record.mode !== "swarm-pr-review:micro" || path15.resolve(record.workspace?.directory ?? "") !== path15.resolve(directory)) {
12280
12339
  return {
12281
12340
  status: "rejected",
@@ -12290,8 +12349,8 @@ async function submitPrReviewResult(directory, childSessionId, input) {
12290
12349
  const existingReceiptDigest = record.result?.prReviewResultReceipt?.semanticEnvelopeDigest;
12291
12350
  const submission = reducePrReviewEvent(state, {
12292
12351
  type: "lane_structured_result_submitted",
12293
- batchId: input.batchId,
12294
- laneId: input.laneId,
12352
+ batchId,
12353
+ laneId,
12295
12354
  generation: state.revision,
12296
12355
  semanticEnvelopeDigest,
12297
12356
  outcome: parsedResult.data.outcome,
@@ -12306,18 +12365,18 @@ async function submitPrReviewResult(directory, childSessionId, input) {
12306
12365
  const published = await publishPrReviewResultReceipt(directory, {
12307
12366
  parentSessionId,
12308
12367
  childSessionId: child,
12309
- batchId: input.batchId,
12310
- laneId: input.laneId,
12368
+ batchId,
12369
+ laneId,
12311
12370
  expectedWorkflowInstanceId: state.workflowInstanceId,
12312
- expectedWorkflowRevision: state.revision,
12371
+ expectedWorkflowRevision: dispatchWorkflowRevision,
12313
12372
  expectedBaseSha: state.prReviewBaseSha,
12314
12373
  receipt: {
12315
12374
  schemaVersion: 1,
12316
12375
  mode: record.mode,
12317
- workflowInstanceId: state.workflowInstanceId,
12318
- workflowRevision: state.revision,
12319
- batchId: input.batchId,
12320
- laneId: input.laneId,
12376
+ workflowInstanceId: dispatchWorkflowInstanceId,
12377
+ workflowRevision: dispatchWorkflowRevision,
12378
+ batchId,
12379
+ laneId,
12321
12380
  workflowLane: record.workflowLane,
12322
12381
  ownedWorkflowLanes,
12323
12382
  baseSha: state.prReviewBaseSha,
@@ -16500,10 +16559,9 @@ async function enforcePrWorkflowToolBefore(directory, sessionID, toolName, args,
16500
16559
  if (state.mode === "PR_REVIEW") {
16501
16560
  let hasAuthorizedDirectReentry = false;
16502
16561
  if (isDirectAgentTask && requestedAgentFields.length === 1 && requestedAgentFields[0] === "subagent_type" && requestedRoles.length === 1 && (requestedRoles[0] === "reviewer" || requestedRoles[0] === "test_engineer") && callID) {
16503
- hasAuthorizedDirectReentry = Boolean(await reserveActivePrReviewReentryAuthorization(directory, sessionID, {
16504
- role: requestedRoles[0],
16505
- callID
16506
- }));
16562
+ hasAuthorizedDirectReentry = await hasActivePrReviewReentryAuthorization(directory, sessionID, {
16563
+ role: requestedRoles[0]
16564
+ });
16507
16565
  }
16508
16566
  const isAllowedReviewTool = isInternalWorkflowTool || hasAuthorizedDirectReentry || isNamedReadOnlyTool || isReadOnlyShell && (!isShellCheckout || isCanonicalReviewCheckout);
16509
16567
  if (!isAllowedReviewTool || Boolean(state.prHeadSha) && (isRemoteCheckoutTool || isShellCheckout)) {
@@ -16604,6 +16662,18 @@ async function prReviewReentryBindingFromState(directory, state) {
16604
16662
  } : {}
16605
16663
  };
16606
16664
  }
16665
+ async function hasActivePrReviewReentryAuthorization(directory, sessionID, request) {
16666
+ const normalizedSessionID = normalizeSessionID(sessionID);
16667
+ return withSessionStateMutation(directory, normalizedSessionID, async () => {
16668
+ const state = await readPrWorkflowGateStateFromDisk3(directory, normalizedSessionID);
16669
+ if (!state)
16670
+ return false;
16671
+ const binding = await prReviewReentryBindingFromState(directory, state);
16672
+ if (!binding)
16673
+ return false;
16674
+ return hasPrReviewReentryAuthorizationAgainstBinding(directory, normalizedSessionID, request, binding);
16675
+ });
16676
+ }
16607
16677
  async function reserveActivePrReviewReentryAuthorization(directory, sessionID, request) {
16608
16678
  const normalizedSessionID = normalizeSessionID(sessionID);
16609
16679
  return withSessionStateMutation(directory, normalizedSessionID, async () => {
@@ -18204,7 +18274,7 @@ function successfulObligationsFromExactBatch2(directory, state, batchId, expecte
18204
18274
  gitHead: state.prHeadSha ?? "",
18205
18275
  revisionDigest: expectedRevisionDigest ?? "",
18206
18276
  workflowInstanceId: state.workflowInstanceId,
18207
- workflowRevision: state.revision,
18277
+ workflowRevision: qualified.record.workflowGeneration,
18208
18278
  baseSha: state.prReviewBaseSha,
18209
18279
  reviewScope: state.mode === "PR_REVIEW" && state.prReviewBaseSha && state.prHeadSha ? `complete PR diff ${state.prReviewBaseSha}...${state.prHeadSha}` : undefined
18210
18280
  }
@@ -18261,8 +18331,10 @@ function validateExactStructuredReceiptCoverage2(input) {
18261
18331
  };
18262
18332
  }
18263
18333
  const receipt = parsedReceipt2.data;
18334
+ const recordWorkflowInstanceId = decodePrReviewWorkflowBinding(input.record.jobId);
18335
+ const recordWorkflowRevision = input.record.workflowGeneration;
18264
18336
  const ownedWorkflowLanes = input.expected.ownedWorkflowLanes?.length ? [...input.expected.ownedWorkflowLanes] : [input.expected.workflowLane];
18265
- if (receipt.mode !== input.expected.mode || receipt.workflowInstanceId !== input.expected.workflowInstanceId || receipt.workflowRevision !== input.expected.workflowRevision || receipt.baseSha !== input.expected.baseSha || receipt.batchId !== input.record.batchId || receipt.laneId !== input.record.laneId || receipt.childSessionId !== input.record.subagentSessionId || receipt.workflowLane !== input.expected.workflowLane || !ownedLaneSetsEqual(receipt.ownedWorkflowLanes, ownedWorkflowLanes) || receipt.headSha !== input.expected.prHeadSha || receipt.dispatchRevisionDigest !== input.expected.revisionDigest) {
18337
+ if (!recordWorkflowInstanceId || recordWorkflowRevision === undefined || recordWorkflowInstanceId !== input.expected.workflowInstanceId || recordWorkflowRevision !== input.expected.workflowRevision || receipt.mode !== input.expected.mode || receipt.workflowInstanceId !== recordWorkflowInstanceId || receipt.workflowRevision !== recordWorkflowRevision || receipt.baseSha !== input.expected.baseSha || receipt.batchId !== input.record.batchId || receipt.laneId !== input.record.laneId || receipt.childSessionId !== input.record.subagentSessionId || receipt.workflowLane !== input.expected.workflowLane || !ownedLaneSetsEqual(receipt.ownedWorkflowLanes, ownedWorkflowLanes) || receipt.headSha !== input.expected.prHeadSha || receipt.dispatchRevisionDigest !== input.expected.revisionDigest) {
18266
18338
  return {
18267
18339
  status: "rejected",
18268
18340
  failure: failedLaneValidation("discovery.coverage", "exact child/workflow/revision-bound structured receipt", "mismatched structured receipt").failure
@@ -18398,7 +18470,7 @@ function workflowArtifactHasContractMarker(directory, state, record, expectedMod
18398
18470
  gitHead: state.prHeadSha ?? "",
18399
18471
  revisionDigest: expectedRevisionDigest ?? "",
18400
18472
  workflowInstanceId: state.workflowInstanceId,
18401
- workflowRevision: state.revision,
18473
+ workflowRevision: record.workflowGeneration,
18402
18474
  baseSha: state.prReviewBaseSha,
18403
18475
  reviewScope
18404
18476
  }
@@ -26105,7 +26177,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
26105
26177
  };
26106
26178
  }
26107
26179
  async function sweepActiveNearDuplicates(directory, options = {}) {
26108
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ywtcznk2.js");
26180
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ty3vtqe2.js");
26109
26181
  const { config } = loadPluginConfigWithMeta2(directory);
26110
26182
  const sweepConfig = config.learning?.dedup_sweep;
26111
26183
  if (sweepConfig?.enabled === false)
@@ -27242,7 +27314,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
27242
27314
  }
27243
27315
  if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
27244
27316
  try {
27245
- const skillModule = await import("./skill-generator-kg32a5jy.js");
27317
+ const skillModule = await import("./skill-generator-7werbwgv.js");
27246
27318
  for (const cand of skillCandidates) {
27247
27319
  if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
27248
27320
  continue;
@@ -27714,7 +27786,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
27714
27786
  } catch {}
27715
27787
  }
27716
27788
  if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
27717
- const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-evjd8g7y.js");
27789
+ const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-aca0nhqg.js");
27718
27790
  for (const { id } of contradictedEntries) {
27719
27791
  try {
27720
27792
  await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
@@ -28546,7 +28618,7 @@ async function runCuratorPostMortem(directory, options = {}) {
28546
28618
  warnings.push("Failed to collect knowledge summary.");
28547
28619
  }
28548
28620
  try {
28549
- const { getScanStatus } = await import("./scan-cursor-8wcy0dvf.js");
28621
+ const { getScanStatus } = await import("./scan-cursor-63zx2qd8.js");
28550
28622
  const scanStatus = await getScanStatus(directory);
28551
28623
  if (scanStatus.remaining_estimate > 0) {
28552
28624
  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.`);
@@ -28718,9 +28790,9 @@ var _internals28 = {
28718
28790
  verifyPostMortemKnowledgeActions,
28719
28791
  repairPostMortemActions,
28720
28792
  loadDefaultKnowledgeConfig: async (directory) => {
28721
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-hsw9r2tm.js");
28793
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-t1scx08g.js");
28722
28794
  try {
28723
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ywtcznk2.js");
28795
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ty3vtqe2.js");
28724
28796
  const loaded = loadPluginConfigWithMeta2(directory);
28725
28797
  return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
28726
28798
  } catch {
@@ -28728,11 +28800,11 @@ var _internals28 = {
28728
28800
  }
28729
28801
  },
28730
28802
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
28731
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-b104f7a7.js");
28803
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-q3qn89wn.js");
28732
28804
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
28733
28805
  },
28734
28806
  checkHivePromotions: async (entries, knowledgeConfig, directory) => {
28735
- const { checkHivePromotions } = await import("./hive-promoter-yzv5g7jy.js");
28807
+ const { checkHivePromotions } = await import("./hive-promoter-w7g879cm.js");
28736
28808
  return checkHivePromotions(entries, knowledgeConfig, directory);
28737
28809
  },
28738
28810
  applyProposalTriage: async (directory, triage) => {
@@ -28741,7 +28813,7 @@ var _internals28 = {
28741
28813
  activateProposal,
28742
28814
  listSkills: listSkills2,
28743
28815
  sanitizeSlug
28744
- } = await import("./skill-generator-kg32a5jy.js");
28816
+ } = await import("./skill-generator-7werbwgv.js");
28745
28817
  const result = {
28746
28818
  approved: [],
28747
28819
  rejected: [],
@@ -28783,7 +28855,7 @@ var _internals28 = {
28783
28855
  return result;
28784
28856
  },
28785
28857
  readPriorDriftReports: async (directory) => {
28786
- const { readPriorDriftReports } = await import("./curator-drift-3s3q4wsy.js");
28858
+ const { readPriorDriftReports } = await import("./curator-drift-0r0scc8r.js");
28787
28859
  return readPriorDriftReports(directory);
28788
28860
  },
28789
28861
  readSwarmKnowledge: (directory) => readKnowledge(resolveSwarmKnowledgePath(directory))
@@ -30070,9 +30142,9 @@ function hashContent(content) {
30070
30142
  return createHash17("sha1").update(content).digest("hex");
30071
30143
  }
30072
30144
  async function loadConfigForPolicyCurator(directory) {
30073
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-hsw9r2tm.js");
30145
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-t1scx08g.js");
30074
30146
  try {
30075
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ywtcznk2.js");
30147
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ty3vtqe2.js");
30076
30148
  const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
30077
30149
  return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
30078
30150
  } catch {
@@ -42735,7 +42807,7 @@ async function runFinalizeStage(ctx) {
42735
42807
  }
42736
42808
  }
42737
42809
  try {
42738
- const { CuratorConfigSchema: CCS } = await import("./schema-hsw9r2tm.js");
42810
+ const { CuratorConfigSchema: CCS } = await import("./schema-t1scx08g.js");
42739
42811
  const { config: pmLoadedConfig } = _internals42.loadPluginConfigWithMeta(ctx.directory);
42740
42812
  const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
42741
42813
  if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
@@ -44962,9 +45034,9 @@ var _internals46 = {
44962
45034
  loadPluginConfigWithMeta,
44963
45035
  loadCuratorDeps: async () => {
44964
45036
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate: createCuratorLLMDelegate2 }] = await Promise.all([
44965
- import("./schema-hsw9r2tm.js"),
44966
- import("./curator-b104f7a7.js"),
44967
- import("./curator-llm-factory-cv7ft0mb.js")
45037
+ import("./schema-t1scx08g.js"),
45038
+ import("./curator-q3qn89wn.js"),
45039
+ import("./curator-llm-factory-dw7md4nr.js")
44968
45040
  ]);
44969
45041
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate: createCuratorLLMDelegate2 };
44970
45042
  }
@@ -46007,7 +46079,7 @@ async function computeCurationDiagnostics(directory, entries) {
46007
46079
  let scanCompleted = false;
46008
46080
  let scanRemaining = 0;
46009
46081
  try {
46010
- const { getScanStatus } = await import("./scan-cursor-8wcy0dvf.js");
46082
+ const { getScanStatus } = await import("./scan-cursor-63zx2qd8.js");
46011
46083
  const status = await getScanStatus(directory);
46012
46084
  scanGeneration = status.generation;
46013
46085
  scanCompleted = status.completed;
@@ -46015,19 +46087,19 @@ async function computeCurationDiagnostics(directory, entries) {
46015
46087
  } catch {}
46016
46088
  let configMatch = null;
46017
46089
  try {
46018
- const { isLinked: isLinked2 } = await import("./knowledge-link-ffmzf72f.js");
46090
+ const { isLinked: isLinked2 } = await import("./knowledge-link-8ea4ksda.js");
46019
46091
  if (isLinked2(directory)) {
46020
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-hsw9r2tm.js");
46092
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-t1scx08g.js");
46021
46093
  let config;
46022
46094
  try {
46023
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ywtcznk2.js");
46095
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ty3vtqe2.js");
46024
46096
  const loaded = loadPluginConfigWithMeta2(directory);
46025
46097
  config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
46026
46098
  } catch {
46027
46099
  config = KnowledgeConfigSchema2.parse({});
46028
46100
  }
46029
46101
  const { cohortConfigFingerprint: cohortConfigFingerprint2 } = await import("./config-fingerprint-v22xh5a2.js");
46030
- const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-2cy7wejw.js");
46102
+ const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-7f8x9yg6.js");
46031
46103
  const currentFp = cohortConfigFingerprint2(buildConfigFingerprintInput2(config));
46032
46104
  const cohortFp = await readCohortConfigFingerprint(directory);
46033
46105
  configMatch = cohortFp === null ? null : currentFp === cohortFp;
@@ -47416,7 +47488,7 @@ async function handleDoctorCommand(directory, args) {
47416
47488
  const result = runConfigDoctor(config, directory);
47417
47489
  let output;
47418
47490
  if (enableAutoFix && result.hasAutoFixableIssues) {
47419
- const { runConfigDoctorWithFixes } = await import("./config-doctor-axd9d6hs.js");
47491
+ const { runConfigDoctorWithFixes } = await import("./config-doctor-d1cbh67h.js");
47420
47492
  const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
47421
47493
  applyLossy: true
47422
47494
  });
@@ -48356,7 +48428,7 @@ async function handleEvidenceCommand(directory, args) {
48356
48428
  return formatTaskEvidenceMarkdown(evidenceData);
48357
48429
  }
48358
48430
  async function handleEvidenceSummaryCommand(directory) {
48359
- const { buildEvidenceSummary } = await import("./evidence-summary-service-5xsjs3x3.js");
48431
+ const { buildEvidenceSummary } = await import("./evidence-summary-service-3meyb8rc.js");
48360
48432
  const artifact = await buildEvidenceSummary(directory);
48361
48433
  if (!artifact) {
48362
48434
  return "No plan found. Run `/swarm plan` to check plan status.";
@@ -83745,7 +83817,7 @@ async function runValidationWithTransientRetry(input, candidateContent, baseline
83745
83817
  if (!input.dispatcher) {
83746
83818
  throw new Error("no evaluation dispatcher available (cannot run validation)");
83747
83819
  }
83748
- const { createModelEvaluationExecutor: createModelEvaluationExecutor2 } = await import("./runner-wqy2hbxn.js");
83820
+ const { createModelEvaluationExecutor: createModelEvaluationExecutor2 } = await import("./runner-fh7t0mn9.js");
83749
83821
  const executor = createModelEvaluationExecutor2(input.dispatcher, input.sessionId);
83750
83822
  const result = await withProtectedSetIntegrity([evalInputRoot, ...protectedRoots(input.directory)], () => _internals99.evaluateCandidateV1({
83751
83823
  projectRoot: input.directory,
@@ -85880,7 +85952,7 @@ function buildDetailedHelp(commandName, entry) {
85880
85952
  async function handleHelpCommand(ctx) {
85881
85953
  const targetCommand = ctx.args.join(" ");
85882
85954
  if (!targetCommand) {
85883
- const { buildHelpText } = await import("./index-ssb67ff6.js");
85955
+ const { buildHelpText } = await import("./index-y4z0rhsa.js");
85884
85956
  return buildHelpText();
85885
85957
  }
85886
85958
  const tokens = targetCommand.split(/\s+/);
@@ -85889,7 +85961,7 @@ async function handleHelpCommand(ctx) {
85889
85961
  return _internals102.buildDetailedHelp(resolved.key, resolved.entry);
85890
85962
  }
85891
85963
  const similar = _internals102.findSimilarCommands(targetCommand);
85892
- const { buildHelpText: fullHelp } = await import("./index-ssb67ff6.js");
85964
+ const { buildHelpText: fullHelp } = await import("./index-y4z0rhsa.js");
85893
85965
  if (similar.length > 0) {
85894
85966
  return `Command '/swarm ${targetCommand}' not found.
85895
85967
 
@@ -86220,7 +86292,7 @@ var COMMAND_REGISTRY = {
86220
86292
  },
86221
86293
  "guardrail explain": {
86222
86294
  handler: async (ctx) => {
86223
- const { handleGuardrailExplain } = await import("./guardrail-explain-cvha7b9p.js");
86295
+ const { handleGuardrailExplain } = await import("./guardrail-explain-6cbszhw1.js");
86224
86296
  return handleGuardrailExplain(ctx.directory, ctx.args);
86225
86297
  },
86226
86298
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -86230,7 +86302,7 @@ var COMMAND_REGISTRY = {
86230
86302
  },
86231
86303
  "guardrail reset": {
86232
86304
  handler: async (ctx) => {
86233
- const { handleGuardrailReset } = await import("./guardrail-reset-es0bg976.js");
86305
+ const { handleGuardrailReset } = await import("./guardrail-reset-mzeyd6jh.js");
86234
86306
  return handleGuardrailReset(ctx.args, ctx.sessionID);
86235
86307
  },
86236
86308
  description: "Reset one exact active invocation/action circuit after repair",
@@ -86239,7 +86311,7 @@ var COMMAND_REGISTRY = {
86239
86311
  },
86240
86312
  "guardrail-explain": {
86241
86313
  handler: async (ctx) => {
86242
- const { handleGuardrailExplain } = await import("./guardrail-explain-cvha7b9p.js");
86314
+ const { handleGuardrailExplain } = await import("./guardrail-explain-6cbszhw1.js");
86243
86315
  return handleGuardrailExplain(ctx.directory, ctx.args);
86244
86316
  },
86245
86317
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -86249,7 +86321,7 @@ var COMMAND_REGISTRY = {
86249
86321
  },
86250
86322
  "guardrail-reset": {
86251
86323
  handler: async (ctx) => {
86252
- const { handleGuardrailReset } = await import("./guardrail-reset-es0bg976.js");
86324
+ const { handleGuardrailReset } = await import("./guardrail-reset-mzeyd6jh.js");
86253
86325
  return handleGuardrailReset(ctx.args, ctx.sessionID);
86254
86326
  },
86255
86327
  description: "Reset one exact active invocation/action circuit after repair",
@@ -86259,7 +86331,7 @@ var COMMAND_REGISTRY = {
86259
86331
  },
86260
86332
  "guardrail-log": {
86261
86333
  handler: async (ctx) => {
86262
- const { handleGuardrailLog } = await import("./guardrail-log-6t4e2j5f.js");
86334
+ const { handleGuardrailLog } = await import("./guardrail-log-0nd1eqvz.js");
86263
86335
  return handleGuardrailLog(ctx.directory, ctx.args);
86264
86336
  },
86265
86337
  description: "Read the guardrail decision log (use --blocks-only for blocks)",
@@ -88207,13 +88279,13 @@ HARD CONSTRAINTS (apply regardless of skill load success):
88207
88279
  - Treat the controller Git-state result as final for the attempt: \`clean\` proceeds; \`stashable\` permits one preparation call; \`recovery-required\` or \`indeterminate\` means report the typed \`required_action\`, abort/clear any already-active gate, and STOP unless \`retryable: true\`. Never loop on stash against an unmerged index or in-progress Git operation.
88208
88280
  - RUN ALL BASE LANES: the default PR_REVIEW path covers all six repository-agnostic base dimensions from the skill on every PR. Use \`mode: "swarm-pr-review:base"\`, the exact \`workflow_lane\` identifiers, and the exact bound \`pr_head_sha\`. \`pr_review_resilience\` is DISABLED by default, so the legacy one-wave base dispatch is the default path at every depth tier \u2014 do not emit \`pr_review_wave_stage\` or \`pr_review_wave_attempt\` unless a project has explicitly enabled it. Only when a project explicitly sets \`pr_review_resilience.enabled: true\` must depth tier M/L stage attempt 0 as one singleton \`pr_review_wave_stage: "canary"\` batch followed by a \`"fanout"\` batch whose combined canary+fanout ownership partitions all six dimensions exactly once; tier L still requires six singleton combined lanes, and tier S keeps the legacy one-wave path regardless. The runtime rejects omitted stage metadata, partial, duplicate, mislabelled, or structurally invalid waves.
88209
88281
  - SETTLE DISCOVERY LANES STRUCTURED-FIRST: for Profile A base and micro discovery lanes, require exactly one \`submit_pr_review_result\` call and then stop. Deprecated transcript \`[CANDIDATE]\` / \`[CLEAN]\` rows are legacy-only compatibility for lanes whose snapped \`pr_review_legacy_transcript_compatibility\` contract explicitly enables them; they are OFF by default for new config and must never be duplicated after the structured submission.
88210
- - RETRY STRUCTURALLY: retry only unresolved failed base obligations in later \`swarm-pr-review:base\` async batches with the same exact \`pr_head_sha\`. Under staged resilience, attempts are numbered by \`pr_review_wave_attempt\`: attempt 0 plus at most two retry attempts (1 and 2), each with one singleton canary batch and then its matching fanout batch when obligations remain. Blocking \`dispatch_lanes\` and direct Task explorer/reviewer/critic dispatch are not provenance-equivalent and are rejected. If the runtime returns typed \`retry_exhausted\` or \`circuit_open\`, or if the second retry still cannot close coverage, collect every lane to settlement, do not probe downstream writers or micro lanes, call \`abort_pr_workflow\` with \`mode: "PR_REVIEW"\`, \`kind: "recovery"\`, and a non-empty one-line \`reason\` naming the failed lane or correlated failure and exhausted retries, then call \`prepare_pr_workflow_checkout\` with \`operation: "restore"\` before reporting the blocker.
88282
+ - RETRY STRUCTURALLY: retry only unresolved failed base obligations in later \`swarm-pr-review:base\` async batches with the same exact \`pr_head_sha\`. Under staged resilience, attempts are numbered by \`pr_review_wave_attempt\`: attempt 0 plus at most two retry attempts (1 and 2), each with one singleton canary batch and then its matching fanout batch when obligations remain. Blocking \`dispatch_lanes\` and direct Task explorer/reviewer/critic dispatch are not provenance-equivalent and are rejected. If the runtime returns typed \`retry_exhausted\` or \`circuit_open\`, or if the second retry still cannot close coverage, collect every lane to settlement, do not probe downstream writers or micro lanes, and settle N-of-6 truthfully with \`partial_base_coverage\` when coverage remains incomplete. Call \`prepare_pr_workflow_checkout\` with \`operation: "restore"\` only when the settlement reports checkout restoration is required.
88211
88283
  - RECOVER CONTRACT FAILURES EXPLICITLY: when collection reports \`workflow_lane_failure_class: "contract"\`, retry that one singleton base dimension once with \`pr_review_contract_retry: true\`; this retry is outside staged \`pr_review_wave_attempt\` accounting and cannot be combined with stage metadata. When fewer than six base dimensions settle but every launched lane is terminal or explicitly cancelled, the \`post_explorer\` findings write may explicitly submit \`partial_base_coverage: { unresolved_dimensions: [<exactly the uncovered dimensions>] }\` (issue #2383 N-of-6 settlement). Never infer or omit dimensions from this disclosure: the runtime derives each dimension's terminal state from lane evidence, persists an immutable coverage receipt, and rejects any declaration that does not exactly match the derived settlement.
88212
88284
  - USE ASYNC DISPATCH WITHOUT IDLING: each admissible base wave uses one \`dispatch_lanes_async\` call. With enabled tier-M/L staged resilience, this means one singleton canary call followed by one unresolved-only fanout call after canary admission; it never means one legacy call carrying the whole initial base wave. Record each \`batch_id\`, then keep doing non-dependent architect work while its lanes run. Poll with \`collect_lane_results\` without \`wait\` (or \`wait: false\`) to process settled lanes and continue independent work between polls; use \`wait: true\` only as the final join when no independent work remains.
88213
88285
  - EVALUATE ALL RISK FAMILIES: after the base explorer lanes settle, evaluate every repository-agnostic trigger row against the exact diff/context pack. Record applicable families as \`MATCHED\` and inapplicable families as provenance-free \`NOT_TRIGGERED\` with concrete absence evidence; \`unclassified-risk\` always remains \`MATCHED\`. Launch \`swarm-pr-review:micro\` lanes only for the \`MATCHED\` IDs. The first micro dispatch MUST pass the complete exact eleven-row \`trigger_evaluation\`, which freezes it for this session; any subsequent same-session micro batch may omit it and reuse the frozen ledger, while an explicitly supplied copy must remain exactly identical. Use each dispatched trigger ID as \`workflow_lane\`. Missing an evaluation row or a matched-family attestation is BLOCKED; a \`NOT_TRIGGERED\` family must not create a micro artifact.
88214
88286
  - RUN HEAD-BOUND VALIDATION: dispatch independent reviewers with \`mode: "swarm-pr-review:reviewer"\` and critics with \`mode: "swarm-pr-review:critic"\`, unique \`workflow_lane\` obligations, role-correct agents, and the same exact \`pr_head_sha\`. Critic dispatch is blocked until all declared reviewer obligations have successful artifacts.
88215
88287
  - COMPLETE EXPLICITLY: after final artifacts and synthesis, call \`complete_pr_workflow\` with \`mode: "PR_REVIEW"\`, the bound \`pr_head_sha\`, and the terminal \`report_verdict\` the coverage kind allows (issue #2383): COMPLETE may APPROVE, REQUEST_CHANGES, or INCOMPLETE; PARTIAL only REQUEST_CHANGES or INCOMPLETE; NO_COVERAGE must be INCOMPLETE and skips the findings ladder entirely. Never leave the session trapped in a stale workflow gate. When completion reports checkout restoration is required, call \`prepare_pr_workflow_checkout\` with \`operation: "restore"\` before returning to the user. For a publication-armed workflow whose exact publication cannot proceed, \`abort_pr_workflow\` with \`kind: "armed_recovery"\` plus the armed-recovery identity fields is the audited escape that preserves validated work.
88216
- - ABORT IF UNRECOVERABLE: if the PR head cannot be fetched/checked out (the working tree stays on the wrong branch), a compound \`git fetch && git checkout\` keeps being rejected as read-only shell syntax (run them as TWO separate standalone commands first), the merge-base bind is unreachable, or the bounded lane retries above are exhausted, call \`abort_pr_workflow\` with \`mode: "PR_REVIEW"\`, \`kind: "recovery"\`, and a one-line \`reason\` instead of looping. The tool accepts unbound and bound workflows but refuses while PR workflow lanes are in flight (collect their results first). Aborting clears the durable gate and stops the auto-resume loop; the user can force-clear via \`/swarm abort-pr-workflow\`. Do NOT abort while useful bounded recovery work remains.
88288
+ - ABORT IF UNRECOVERABLE: if the PR head cannot be fetched/checked out (the working tree stays on the wrong branch), a compound \`git fetch && git checkout\` keeps being rejected as read-only shell syntax (run them as TWO separate standalone commands first), or the merge-base bind is unreachable, call \`abort_pr_workflow\` with \`mode: "PR_REVIEW"\`, \`kind: "recovery"\`, and a one-line \`reason\` instead of looping. The tool accepts unbound and bound workflows but refuses while PR workflow lanes are in flight (collect their results first). Aborting clears the durable gate and stops the auto-resume loop; the user can force-clear via \`/swarm abort-pr-workflow\`. Do NOT abort while useful bounded recovery or N-of-6 settlement work remains.
88217
88289
  - Honor any free-text instructions that follow the closing bracket of the signal as additional reviewer focus, without weakening the validation ladder above.
88218
88290
 
88219
88291
  ### MODE: PR_FEEDBACK
@@ -92258,7 +92330,7 @@ function getDisplayFinalPromptPressure() {
92258
92330
  async function rehydratePrSubscriptions(sessionID, directory) {
92259
92331
  const map = new Map;
92260
92332
  try {
92261
- const { listActive: listActive2 } = await import("./pr-subscriptions-3enjtq0k.js");
92333
+ const { listActive: listActive2 } = await import("./pr-subscriptions-05dzvavk.js");
92262
92334
  const records = await listActive2(directory);
92263
92335
  for (const record of records) {
92264
92336
  if (record.sessionID !== sessionID)
@@ -92704,7 +92776,7 @@ function isLaneOwnedByCurrentSession(branchName, expectedSessionId) {
92704
92776
  return extracted === expectedSessionId;
92705
92777
  }
92706
92778
  async function inspectStandardWorktreeCollisionOwnership(identity) {
92707
- const collisionOwnership = await import("./worktree-collision-ownership-0rfw6kp3.js");
92779
+ const collisionOwnership = await import("./worktree-collision-ownership-wzdzky33.js");
92708
92780
  return collisionOwnership.inspectStandardWorktreeCollisionOwnership(identity);
92709
92781
  }
92710
92782
  async function runRecoveryGit(directory, args, timeoutMs = 15000) {
@@ -93113,7 +93185,7 @@ async function precreateStandardWorktreeSession(args) {
93113
93185
  const laneProfile = computeLaneRuntimeProfile(worktreeConfig.runtime_isolation, laneIndex, handle.worktreePath);
93114
93186
  if (laneProfile) {
93115
93187
  try {
93116
- const { writeLaneProfileToDiskReal } = await import("./core-f1a1fk13.js");
93188
+ const { writeLaneProfileToDiskReal } = await import("./core-g0cvvj3b.js");
93117
93189
  await writeLaneProfileToDiskReal(handle.worktreePath, laneProfile.laneIndex, laneProfile.envOverrides);
93118
93190
  } catch {}
93119
93191
  }
@@ -94038,7 +94110,7 @@ async function finishStandardWorktreeDispatch(directory, dispatch, config, callI
94038
94110
  }
94039
94111
  clearWorktreeMergeStatus(statusKey);
94040
94112
  try {
94041
- const { removeLaneProfileFromDiskReal } = await import("./core-f1a1fk13.js");
94113
+ const { removeLaneProfileFromDiskReal } = await import("./core-g0cvvj3b.js");
94042
94114
  await removeLaneProfileFromDiskReal(dispatch.handle.worktreePath, dispatch.laneIndex);
94043
94115
  } catch {}
94044
94116
  const state = serializationStateBySessionID.get(dispatch.parentSessionID);
@@ -94241,4 +94313,4 @@ var _internals104 = {
94241
94313
  resolveGitExecutable
94242
94314
  };
94243
94315
 
94244
- export { resetActionCircuitExternally, getBlockingActionCircuit, dcNormalizeCommand, dcUnwrapWrappers, dcSplitSegments, dcExtractRecursiveRmTargets, dcEvaluateRecursiveDeleteTargets, dcCheckJunctionCreation, dcExtractWindowsCmdTargets, dcExtractPowerShellTargets, getSharedClassifierGuardrailBlock, classifyCommand, normalizeSwarmCommandInput, canonicalCommandKey, formatCommandNotFound, executeSwarmCommand, SWARM_COMMAND_TOOL_COMMANDS, SWARM_COMMAND_TOOL_ALLOWLIST, HUMAN_ONLY_SWARM_COMMANDS, classifySwarmCommandToolUse, classifySwarmCommandChatFallbackUse, detectPosixWrites, detectWindowsWrites, resolveWriteTargets, getAgentSession, parseLeanLaneIndex, computeLaneRuntimeProfile, MAX_TRACKED_STANDARD_WORKTREE_CALLS, awaitingMergeByCallID, standardWorktreeByCallID, standardWorktreeSerializationSessions, getStandardWorktreeDegradationReason, resetStandardWorktreeIsolationState, checkStandardWorktreeSerializationRelease, sanitizeWorktreeTaskId, preProvisionCollisionCheck, isLaneOwnedByCurrentSession, precreateStandardWorktreeSession, preserveBackgroundWorktreeOwnershipForCallId, preserveDirtyWorktreeForCallId, preserveDirtyWorktreeAtPath, cleanupStandardWorktreeForCallId, abortStandardWorktreeDispatch, finishStandardWorktreeDispatch, readLaneEnvFileFromDisk, _internals104 as _internals, prWorkflowSessionFileStem, ensurePrWorkflowSafeParentDirectory, writePrWorkflowAtomicJson, PrWorkflowCheckoutMutationTimeoutError, withPrWorkflowCheckoutMutationLock, PR_REVIEW_REPORT_VERDICTS, allowedPrReviewReportVerdicts, normalizePrReviewPartialBaseCoverageRecord, rollbackPrReviewPartialBaseCoverageAdmission, readPrReviewTerminalCoverageForReport, PR_REVIEW_REQUIRED_MICRO_LANE_IDS, PR_REVIEW_DEPTH_TIER_THRESHOLDS, PR_REVIEW_BASE_LANE_FLOORS, PR_REVIEW_TIER_L_CONSOLIDATED_LANE_FLOOR, PR_REVIEW_MICRO_LANE_FLOORS, computePrReviewDepthTier, MAX_PR_FEEDBACK_INVENTORY_AMENDMENTS, activatePrWorkflow, readPrWorkflowGateState, submitPrReviewResult, withPrWorkflowCheckoutPreparationLock, withInactivePrWorkflowCheckoutRestoreLock, clearPrWorkflowGateState, collectPrWorkflowPendingLaneLiveness, settlePresumedStalePrWorkflowLanes, abortPrWorkflow, recoverArmedPrWorkflow, bindPrWorkflowHead, rebindPrFeedbackHead, bindPrReviewBase, assertCurrentCheckoutHead, assertPrReviewCleanCheckout, enforcePrWorkflowDispatchLanesAsync, PrReviewResilienceCircuitOpenError, PrReviewResilienceRetryExhaustedError, enforcePrReviewBaseDimensions, rollbackPrReviewBaseAdmissionIfUnlaunched, admitPrReviewPartialBaseCoverage2 as admitPrReviewPartialBaseCoverage, assertPrReviewBaseCoverageSettled2 as assertPrReviewBaseCoverageSettled, recordPrReviewValidationBatch, assertPrReviewValidationSettled, declarePrFeedbackInventory, enforcePrFeedbackVerificationOwnership, assertPrFeedbackVerificationSettled, recordPrFeedbackStageA, recordPrFeedbackGateBatch, assertPrFeedbackGatePhaseSettled, assertPrFeedbackReadyToPublish, invalidatePrFeedbackPublication, describePrWorkflowPublicationSection, findDanglingLivePublicationGeneration, recordPrFeedbackPushAttemptResult, resolvePrReviewWriterRunId, markPrReviewTriggerEvaluationComplete, bindPrReviewTriggerLedger, assertPrReviewArtifactBoundary, assertPrReviewArtifactRecordsMatchAuthoritativeVerdicts, markPrReviewArtifactBoundary, markPrReviewHandoffComplete, transitionPrReviewToFeedback, declarePrFeedbackScope, resolvePrFeedbackScopeDeclaration, consumePrFeedbackScopeDeclaration, validatePrFeedbackScopeBinding, enforcePrWorkflowToolBefore, readPrReviewReentryBindingContext, reserveActivePrReviewReentryAuthorization, completePrWorkflow, _test_exports2 as _test_exports, normalizePrWorkflowShellCommand, describePrWorkflowRevisionDigestFailure, formatPrReviewLaneValidationFailure, validatePrReviewDiscoveryLaneCompletion2 as validatePrReviewDiscoveryLaneCompletion, validatePrWorkflowTransportRecovery, prReviewDiscoveryArtifactCoversLane, MAX_SALVAGED_SCHEMA_ERROR_CHARS, readPrWorkflowGateStateForRecovery, handleAcknowledgeSpecDriftCommand, handleAgentsCommand, handleAnalyzeCommand, handleApproveWriteCommand, handleArchiveCommand, handleAutoProceedCommand, handleBenchmarkCommand, handleBrainstormCommand, handleCheckpointCommand, handleCiSimulateCommand, handleClarifyCommand, createCuratorLLMDelegate, _internals27 as _internals1, normalizeRecommendationEntryIdToken, parseKnowledgeRecommendations, parseKnowledgeRecommendationsWithDiagnostics, parseStructuredCuratorBlocks, readCuratorSummary, writeCuratorSummary, appendCuratorRecommendation, mergeCuratorPhaseSummary, filterPhaseEvents, checkPhaseCompliance, runCuratorInit, runCuratorPhase, applyCuratorKnowledgeUpdates, isHiveEligible, countDistinctProjects, checkHivePromotions, _internals31 as _internals2, createHivePromoterHook, promoteToHive, promoteFromSwarm, safeRealpathSync, handleCloseCommand, handleCodebaseReviewCommand, handleConcurrencyCommand, handleConfigCommand, handleConsolidateCommand, handleCostsCommand, handleCouncilCommand, handleCurateCommand, handleDarkMatterCommand, handleDeepDiveCommand, handleDeepResearchCommand, getPluginConfigDir, getPluginCachePaths, getPluginLockFilePaths, VERSION_PINNED_LEAF, discoverVersionPinnedCachePaths, readCachePackageVersion, handleDiagnoseCommand, handleDoctorCommand, handleEvidenceCommand, handleEvidenceSummaryCommand, handleExportCommand, handleFullAutoCommand, handleGateAuditCommand, handleGateStatsCommand, handleHandoffCommand, handleBlueprintValidateCommand, handleBlueprintCurrentCommand, handleBlueprintHistoryCommand, handleBlueprintDiffCommand, handleBlueprintExportCommand, handleHarnessCandidateValidateCommand, handleHarnessCandidateShowCommand, handleHarnessCandidateDiffCommand, handleHistoryCommand, handleKnowledgeQuarantineCommand, handleKnowledgeRestoreCommand, handleKnowledgeMigrateCommand, handleKnowledgeListCommand, handleKnowledgeUnactionableCommand, handleKnowledgeRetryHardeningCommand, handleLearningCommand, handleLinkCommand, handleMemoryCommand, handleMemoryStatusCommand, handleMemoryValueLogCommand, handleMemoryMigrateCommand, handleMemoryImportCommand, handleMemoryExportCommand, handlePlanCommand, handlePreflightCommand, handlePromoteCommand, handleQaGatesCommand, handleRecoverCommand, handleResetCommand, handleResetSessionCommand, handleRetrieveCommand, handleReviewCommand, handleRollbackCommand, handleSddStatusCommand, handleSddValidateCommand, handleSddProjectCommand, handleSddCommand, handleSimulateCommand, handleSpecifyCommand, handleStatusCommand, handleSyncPlanCommand, handleTurboCommand, handleUnlinkCommand, handleWriteRetroCommand, handleHelpCommand, COMMAND_REGISTRY, VALID_COMMANDS, _internals102 as _internals3, resolveCommand };
94316
+ export { resetActionCircuitExternally, getBlockingActionCircuit, dcNormalizeCommand, dcUnwrapWrappers, dcSplitSegments, dcExtractRecursiveRmTargets, dcEvaluateRecursiveDeleteTargets, dcCheckJunctionCreation, dcExtractWindowsCmdTargets, dcExtractPowerShellTargets, getSharedClassifierGuardrailBlock, classifyCommand, normalizeSwarmCommandInput, canonicalCommandKey, formatCommandNotFound, executeSwarmCommand, SWARM_COMMAND_TOOL_COMMANDS, SWARM_COMMAND_TOOL_ALLOWLIST, HUMAN_ONLY_SWARM_COMMANDS, classifySwarmCommandToolUse, classifySwarmCommandChatFallbackUse, detectPosixWrites, detectWindowsWrites, resolveWriteTargets, getAgentSession, parseLeanLaneIndex, computeLaneRuntimeProfile, MAX_TRACKED_STANDARD_WORKTREE_CALLS, awaitingMergeByCallID, standardWorktreeByCallID, standardWorktreeSerializationSessions, getStandardWorktreeDegradationReason, resetStandardWorktreeIsolationState, checkStandardWorktreeSerializationRelease, sanitizeWorktreeTaskId, preProvisionCollisionCheck, isLaneOwnedByCurrentSession, precreateStandardWorktreeSession, preserveBackgroundWorktreeOwnershipForCallId, preserveDirtyWorktreeForCallId, preserveDirtyWorktreeAtPath, cleanupStandardWorktreeForCallId, abortStandardWorktreeDispatch, finishStandardWorktreeDispatch, readLaneEnvFileFromDisk, _internals104 as _internals, prWorkflowSessionFileStem, ensurePrWorkflowSafeParentDirectory, writePrWorkflowAtomicJson, PrWorkflowCheckoutMutationTimeoutError, withPrWorkflowCheckoutMutationLock, PR_REVIEW_REPORT_VERDICTS, allowedPrReviewReportVerdicts, normalizePrReviewPartialBaseCoverageRecord, rollbackPrReviewPartialBaseCoverageAdmission, readPrReviewTerminalCoverageForReport, PR_REVIEW_REQUIRED_MICRO_LANE_IDS, PR_REVIEW_DEPTH_TIER_THRESHOLDS, PR_REVIEW_BASE_LANE_FLOORS, PR_REVIEW_TIER_L_CONSOLIDATED_LANE_FLOOR, PR_REVIEW_MICRO_LANE_FLOORS, computePrReviewDepthTier, MAX_PR_FEEDBACK_INVENTORY_AMENDMENTS, activatePrWorkflow, readPrWorkflowGateState, submitPrReviewResult, withPrWorkflowCheckoutPreparationLock, withInactivePrWorkflowCheckoutRestoreLock, clearPrWorkflowGateState, collectPrWorkflowPendingLaneLiveness, settlePresumedStalePrWorkflowLanes, abortPrWorkflow, recoverArmedPrWorkflow, bindPrWorkflowHead, rebindPrFeedbackHead, bindPrReviewBase, assertCurrentCheckoutHead, assertPrReviewCleanCheckout, enforcePrWorkflowDispatchLanesAsync, PrReviewResilienceCircuitOpenError, PrReviewResilienceRetryExhaustedError, enforcePrReviewBaseDimensions, rollbackPrReviewBaseAdmissionIfUnlaunched, admitPrReviewPartialBaseCoverage2 as admitPrReviewPartialBaseCoverage, assertPrReviewBaseCoverageSettled2 as assertPrReviewBaseCoverageSettled, recordPrReviewValidationBatch, assertPrReviewValidationSettled, declarePrFeedbackInventory, enforcePrFeedbackVerificationOwnership, assertPrFeedbackVerificationSettled, recordPrFeedbackStageA, recordPrFeedbackGateBatch, assertPrFeedbackGatePhaseSettled, assertPrFeedbackReadyToPublish, invalidatePrFeedbackPublication, describePrWorkflowPublicationSection, findDanglingLivePublicationGeneration, recordPrFeedbackPushAttemptResult, resolvePrReviewWriterRunId, markPrReviewTriggerEvaluationComplete, bindPrReviewTriggerLedger, assertPrReviewArtifactBoundary, assertPrReviewArtifactRecordsMatchAuthoritativeVerdicts, markPrReviewArtifactBoundary, markPrReviewHandoffComplete, transitionPrReviewToFeedback, declarePrFeedbackScope, resolvePrFeedbackScopeDeclaration, consumePrFeedbackScopeDeclaration, validatePrFeedbackScopeBinding, enforcePrWorkflowToolBefore, readPrReviewReentryBindingContext, hasActivePrReviewReentryAuthorization, reserveActivePrReviewReentryAuthorization, completePrWorkflow, _test_exports2 as _test_exports, normalizePrWorkflowShellCommand, describePrWorkflowRevisionDigestFailure, formatPrReviewLaneValidationFailure, validatePrReviewDiscoveryLaneCompletion2 as validatePrReviewDiscoveryLaneCompletion, validatePrWorkflowTransportRecovery, prReviewDiscoveryArtifactCoversLane, MAX_SALVAGED_SCHEMA_ERROR_CHARS, readPrWorkflowGateStateForRecovery, handleAcknowledgeSpecDriftCommand, handleAgentsCommand, handleAnalyzeCommand, handleApproveWriteCommand, handleArchiveCommand, handleAutoProceedCommand, handleBenchmarkCommand, handleBrainstormCommand, handleCheckpointCommand, handleCiSimulateCommand, handleClarifyCommand, createCuratorLLMDelegate, _internals27 as _internals1, normalizeRecommendationEntryIdToken, parseKnowledgeRecommendations, parseKnowledgeRecommendationsWithDiagnostics, parseStructuredCuratorBlocks, readCuratorSummary, writeCuratorSummary, appendCuratorRecommendation, mergeCuratorPhaseSummary, filterPhaseEvents, checkPhaseCompliance, runCuratorInit, runCuratorPhase, applyCuratorKnowledgeUpdates, isHiveEligible, countDistinctProjects, checkHivePromotions, _internals31 as _internals2, createHivePromoterHook, promoteToHive, promoteFromSwarm, safeRealpathSync, handleCloseCommand, handleCodebaseReviewCommand, handleConcurrencyCommand, handleConfigCommand, handleConsolidateCommand, handleCostsCommand, handleCouncilCommand, handleCurateCommand, handleDarkMatterCommand, handleDeepDiveCommand, handleDeepResearchCommand, getPluginConfigDir, getPluginCachePaths, getPluginLockFilePaths, VERSION_PINNED_LEAF, discoverVersionPinnedCachePaths, readCachePackageVersion, handleDiagnoseCommand, handleDoctorCommand, handleEvidenceCommand, handleEvidenceSummaryCommand, handleExportCommand, handleFullAutoCommand, handleGateAuditCommand, handleGateStatsCommand, handleHandoffCommand, handleBlueprintValidateCommand, handleBlueprintCurrentCommand, handleBlueprintHistoryCommand, handleBlueprintDiffCommand, handleBlueprintExportCommand, handleHarnessCandidateValidateCommand, handleHarnessCandidateShowCommand, handleHarnessCandidateDiffCommand, handleHistoryCommand, handleKnowledgeQuarantineCommand, handleKnowledgeRestoreCommand, handleKnowledgeMigrateCommand, handleKnowledgeListCommand, handleKnowledgeUnactionableCommand, handleKnowledgeRetryHardeningCommand, handleLearningCommand, handleLinkCommand, handleMemoryCommand, handleMemoryStatusCommand, handleMemoryValueLogCommand, handleMemoryMigrateCommand, handleMemoryImportCommand, handleMemoryExportCommand, handlePlanCommand, handlePreflightCommand, handlePromoteCommand, handleQaGatesCommand, handleRecoverCommand, handleResetCommand, handleResetSessionCommand, handleRetrieveCommand, handleReviewCommand, handleRollbackCommand, handleSddStatusCommand, handleSddValidateCommand, handleSddProjectCommand, handleSddCommand, handleSimulateCommand, handleSpecifyCommand, handleStatusCommand, handleSyncPlanCommand, handleTurboCommand, handleUnlinkCommand, handleWriteRetroCommand, handleHelpCommand, COMMAND_REGISTRY, VALID_COMMANDS, _internals102 as _internals3, resolveCommand };