opencode-swarm 7.192.0 → 7.192.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 (120) hide show
  1. package/.opencode/skills/critic-gate/SKILL.md +2 -1
  2. package/.opencode/skills/execute/SKILL.md +1 -1
  3. package/.opencode/skills/swarm-pr-review/SKILL.md +2 -2
  4. package/.opencode/skills/swarm-pr-review/references/lane-output-recoverability.md +18 -8
  5. package/README.md +5 -3
  6. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  7. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  8. package/dist/agents/critic.d.ts +2 -2
  9. package/dist/background/pr-review-trigger-contract.d.ts +145 -0
  10. package/dist/cli/{auto-checkpoint-fzybxf58.js → auto-checkpoint-735m8sz7.js} +8 -8
  11. package/dist/cli/{capability-probe-3mgxcfr9.js → capability-probe-rty1315z.js} +1 -1
  12. package/dist/cli/{checkpoint-6fr9tc3h.js → checkpoint-ptzc5jev.js} +16 -16
  13. package/dist/cli/{coder-settlement-1t0r6q0r.js → coder-settlement-hh5165m1.js} +12 -12
  14. package/dist/cli/{config-doctor-0kd6w45h.js → config-doctor-wzzvhpcr.js} +15 -15
  15. package/dist/cli/{core-dxraa2ss.js → core-0jarm64k.js} +3 -3
  16. package/dist/cli/{curation-policy-6p6fcfjb.js → curation-policy-yzdznz4z.js} +6 -6
  17. package/dist/cli/{curator-drift-6qb0c363.js → curator-drift-f4aqxz9e.js} +8 -8
  18. package/dist/cli/{curator-hwwp7e2g.js → curator-f7crssw2.js} +43 -43
  19. package/dist/cli/curator-llm-factory-kxnzvhje.js +82 -0
  20. package/dist/cli/{doctor-knowledge-receipt-phase-id-ay2ngn4a.js → doctor-knowledge-receipt-phase-id-qvp1h3xv.js} +8 -8
  21. package/dist/cli/{evidence-summary-service-fyyzhbsc.js → evidence-summary-service-379skych.js} +19 -19
  22. package/dist/cli/{gate-evidence-zt2vj631.js → gate-evidence-b4cfrrgn.js} +7 -7
  23. package/dist/cli/guardrail-explain-tcnfc3te.js +83 -0
  24. package/dist/cli/{guardrail-log-ppgfsfzt.js → guardrail-log-xe1evybk.js} +7 -7
  25. package/dist/cli/{guardrail-reset-4psprskt.js → guardrail-reset-jwx5hsgp.js} +43 -43
  26. package/dist/cli/{hive-promoter-vxrwvhga.js → hive-promoter-nks9a9s8.js} +43 -43
  27. package/dist/cli/{index-y9v41185.js → index-0e1nxkte.js} +1 -1
  28. package/dist/cli/{index-r9yvpr2m.js → index-1n7sf9gz.js} +2 -2
  29. package/dist/cli/{index-d5dwf6q6.js → index-25zjz6kv.js} +5 -5
  30. package/dist/cli/{index-ywmz75rj.js → index-29z0w323.js} +7 -7
  31. package/dist/cli/{index-05t8f1bj.js → index-2y7y0bxf.js} +43 -43
  32. package/dist/cli/{index-sxw0jbyc.js → index-4qreeddq.js} +4 -4
  33. package/dist/cli/{index-mj237f76.js → index-4tfr4j1a.js} +7 -7
  34. package/dist/cli/{index-z3ahy9c2.js → index-4twjbsfw.js} +2 -2
  35. package/dist/cli/{index-sxj143a4.js → index-5dws7eyb.js} +1 -1
  36. package/dist/cli/{index-b2j231jy.js → index-5gy5dc2n.js} +2 -2
  37. package/dist/cli/{index-hqqfxytt.js → index-5s74qd5b.js} +1 -1
  38. package/dist/cli/{index-dexj54h2.js → index-7a92gwbg.js} +4 -4
  39. package/dist/cli/{index-egkph2cs.js → index-7bppy3ve.js} +4 -4
  40. package/dist/cli/{index-mqf06fyy.js → index-878ksabw.js} +11 -11
  41. package/dist/cli/{index-p1z7pafk.js → index-89826pb5.js} +2 -2
  42. package/dist/cli/{index-2fpv2wmc.js → index-8zj647hc.js} +1 -1
  43. package/dist/cli/{index-ecx8jh7s.js → index-914wsfyy.js} +2 -2
  44. package/dist/cli/{index-tv0m2css.js → index-a83gmv2e.js} +2 -2
  45. package/dist/cli/{index-zk6ttjkt.js → index-a9m7h5v0.js} +2 -2
  46. package/dist/cli/{index-sx3g9nwg.js → index-asm2r4g2.js} +4 -4
  47. package/dist/cli/{index-v9geqn2t.js → index-ba87gkb4.js} +20 -6
  48. package/dist/cli/{index-3zwhxk98.js → index-bgzpw6ge.js} +1 -1
  49. package/dist/cli/{index-3c8v05x1.js → index-br28jc6d.js} +3 -3
  50. package/dist/cli/{index-sgxbqba0.js → index-bzfn85kq.js} +119 -55
  51. package/dist/cli/{index-zv71frp3.js → index-cf003krm.js} +6 -6
  52. package/dist/cli/{index-mcv0v2dp.js → index-dt4cjxbz.js} +1 -1
  53. package/dist/cli/{index-mjfpaxw3.js → index-dtet46e6.js} +7 -7
  54. package/dist/cli/{index-8bx6vhzk.js → index-e8k0v19e.js} +1 -1
  55. package/dist/cli/{index-nkgzkt7c.js → index-eaess7dm.js} +1 -1
  56. package/dist/cli/{index-93zvq6wn.js → index-ejq082zj.js} +5 -5
  57. package/dist/cli/{index-4d04qzw5.js → index-f54stv77.js} +3 -3
  58. package/dist/cli/{index-kfevm0n5.js → index-fzqn2kk8.js} +2 -2
  59. package/dist/cli/{index-n8q43eff.js → index-g8jd3h4r.js} +2 -2
  60. package/dist/cli/{index-gv63kdd3.js → index-hcsz7bhg.js} +3 -3
  61. package/dist/cli/{index-ngjjwcam.js → index-k96fx4yw.js} +2 -2
  62. package/dist/cli/{index-feaxsjrt.js → index-mbn4vn3z.js} +1 -1
  63. package/dist/cli/{index-7vnr5cmp.js → index-mtqwyjrg.js} +1 -1
  64. package/dist/cli/{index-qs9myayh.js → index-nwswxes7.js} +4 -4
  65. package/dist/cli/{index-aazwrwy1.js → index-q0bctx7k.js} +1 -1
  66. package/dist/cli/{index-1ajj6zbq.js → index-qp3twbdz.js} +45 -45
  67. package/dist/cli/{index-rehvfgre.js → index-qta3x82z.js} +253 -108
  68. package/dist/cli/{index-646s7gp9.js → index-w8e73tp0.js} +12 -7
  69. package/dist/cli/{index-c5644p1y.js → index-w917g452.js} +6 -6
  70. package/dist/cli/{index-9qwmx95b.js → index-w9y482mp.js} +1 -1
  71. package/dist/cli/{index-bx6x9ee7.js → index-xen0j48x.js} +2 -2
  72. package/dist/cli/{index-6v42d116.js → index-xf5v44qh.js} +3 -3
  73. package/dist/cli/{index-3pkeqcxe.js → index-ypvz2c60.js} +7 -7
  74. package/dist/cli/{index-x00ghp37.js → index-yte4hqhv.js} +3 -3
  75. package/dist/cli/index.d.ts +2 -2
  76. package/dist/cli/index.js +60 -54
  77. package/dist/cli/{knowledge-escalator-b45xccz8.js → knowledge-escalator-gzzr7cy2.js} +14 -14
  78. package/dist/cli/{knowledge-events-rtmavbyy.js → knowledge-events-b16yc189.js} +12 -12
  79. package/dist/cli/{knowledge-link-6hw3z6wn.js → knowledge-link-a5tvjqdt.js} +5 -5
  80. package/dist/cli/{knowledge-store-0beaqdxd.js → knowledge-store-arj3by4h.js} +6 -6
  81. package/dist/cli/{knowledge-validator-r1kjxt80.js → knowledge-validator-b3qhjg0t.js} +8 -8
  82. package/dist/cli/{mcp-gq7gy5qm.js → mcp-972t0jt0.js} +1 -1
  83. package/dist/cli/{model-preflight-za9f75h1.js → model-preflight-f1xvxk6e.js} +43 -43
  84. package/dist/cli/{pending-delegations-ba4bbh3d.js → pending-delegations-fv5xz799.js} +12 -12
  85. package/dist/cli/{pr-subscriptions-9ge667xn.js → pr-subscriptions-4mcwj33s.js} +12 -12
  86. package/dist/cli/{pr-workflow-gate-p1sv3vp7.js → pr-workflow-gate-ap5cp211.js} +45 -43
  87. package/dist/cli/{runner-ssnsje35.js → runner-8qybgy4n.js} +6 -6
  88. package/dist/cli/{scan-cursor-hrn48cja.js → scan-cursor-tceyckdx.js} +7 -7
  89. package/dist/cli/{schema-6cwam61t.js → schema-pqevpe3m.js} +1 -1
  90. package/dist/cli/{scope-persistence-z8b0cj5e.js → scope-persistence-ta6ydymv.js} +15 -15
  91. package/dist/cli/{server-sqxa4vjy.js → server-s9bfax7h.js} +43 -43
  92. package/dist/cli/{skill-generator-6dfgb9hj.js → skill-generator-xdg4626x.js} +16 -16
  93. package/dist/cli/{snapshot-coordination-init-rt4xyayx.js → snapshot-coordination-init-wn0hnwyv.js} +43 -43
  94. package/dist/cli/{speckit-checkoff-q1zqzwbw.js → speckit-checkoff-8x139jpf.js} +4 -4
  95. package/dist/cli/{telemetry-9szfdfqv.js → telemetry-qaymh4gg.js} +1 -1
  96. package/dist/cli/{workspace-snapshot-9f12p1s1.js → workspace-snapshot-vfpnxjsp.js} +3 -3
  97. package/dist/cli/{worktree-collision-ownership-ge241a9e.js → worktree-collision-ownership-as8hnnff.js} +13 -13
  98. package/dist/cli/{worktree-isolation-c9x73qrk.js → worktree-isolation-7vrs8t9b.js} +49 -43
  99. package/dist/commands/turbo.d.ts +4 -3
  100. package/dist/config/constants.d.ts +2 -2
  101. package/dist/config/plan-schema.d.ts +16 -0
  102. package/dist/epic/phase-readiness.d.ts +4 -2
  103. package/dist/evaluation/ephemeral-agent-dispatcher.d.ts +11 -0
  104. package/dist/failures/provider-message-error.d.ts +32 -0
  105. package/dist/hooks/delegation-gate/worktree-isolation.d.ts +40 -0
  106. package/dist/hooks/delegation-gate.d.ts +13 -0
  107. package/dist/hooks/extractors.d.ts +2 -0
  108. package/dist/hooks/guardrails/index.d.ts +2 -0
  109. package/dist/hooks/guardrails/parallel-gate-attribution.d.ts +10 -0
  110. package/dist/hooks/pr-workflow-gate.d.ts +12 -1
  111. package/dist/index.js +415 -412
  112. package/dist/plan/ledger.d.ts +21 -3
  113. package/dist/sandbox/linux/bubblewrap-executor.d.ts +24 -0
  114. package/dist/services/skill-optimizer/store.d.ts +2 -2
  115. package/dist/tools/phase-complete.d.ts +4 -0
  116. package/dist/tools/write-pr-review-trigger-eval.d.ts +4 -0
  117. package/opencode-swarm.schema.json +1 -1
  118. package/package.json +1 -1
  119. package/dist/cli/curator-llm-factory-w6hvns5a.js +0 -82
  120. package/dist/cli/guardrail-explain-ddtj3djc.js +0 -83
@@ -8,14 +8,14 @@ import {
8
8
  protectedRoots,
9
9
  redactDecisionLineForArchive,
10
10
  stableCanonicalStringify
11
- } from "./index-6v42d116.js";
11
+ } from "./index-xf5v44qh.js";
12
12
  import {
13
13
  detectStraySwarmDirs,
14
14
  readDoctorArtifact,
15
15
  removeStraySwarmDir,
16
16
  resolvePlanParallelizationFlag,
17
17
  runConfigDoctor
18
- } from "./index-x00ghp37.js";
18
+ } from "./index-yte4hqhv.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-d5dwf6q6.js";
30
+ } from "./index-25zjz6kv.js";
31
31
  import {
32
32
  JAVA_SYMBOL_GRAMMAR,
33
33
  LANGUAGE_REGISTRY,
@@ -56,7 +56,7 @@ import {
56
56
  runEvaluation,
57
57
  runExternalTool,
58
58
  withDisposableWorktree
59
- } from "./index-y9v41185.js";
59
+ } from "./index-0e1nxkte.js";
60
60
  import {
61
61
  EvaluationTaskV1Schema,
62
62
  GateAuditManifestV1Schema,
@@ -73,7 +73,7 @@ import {
73
73
  saveGateAuditResult,
74
74
  savePromotionDecision,
75
75
  saveTaskSetSnapshot
76
- } from "./index-b2j231jy.js";
76
+ } from "./index-5gy5dc2n.js";
77
77
  import {
78
78
  canonicalHash,
79
79
  canonicalJson,
@@ -89,7 +89,7 @@ import {
89
89
  alreadyCuratedThisGeneration,
90
90
  claimNextScanBatch,
91
91
  resolveCohortId
92
- } from "./index-ecx8jh7s.js";
92
+ } from "./index-914wsfyy.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-3c8v05x1.js";
111
+ } from "./index-br28jc6d.js";
112
112
  import {
113
113
  assertNoUnsettledCoderDispatch,
114
114
  listCoderSettlementWalStates,
115
115
  recoverCoderSettlement,
116
116
  recoverStaleCoderSettlements
117
- } from "./index-mj237f76.js";
117
+ } from "./index-4tfr4j1a.js";
118
118
  import {
119
119
  BUNDLED_PROJECT_SKILL_ROOT,
120
120
  DEFAULT_SKILL_MIN_CONFIDENCE,
@@ -135,11 +135,11 @@ import {
135
135
  retireSkill,
136
136
  selectCandidateEntries,
137
137
  syncBundledProjectSkillsIfMissingAsync
138
- } from "./index-sx3g9nwg.js";
138
+ } from "./index-asm2r4g2.js";
139
139
  import {
140
140
  buildEscalationBriefing,
141
141
  readRecentEscalations
142
- } from "./index-c5644p1y.js";
142
+ } from "./index-w917g452.js";
143
143
  import {
144
144
  parsePorcelainV2Snapshot,
145
145
  resolveCommitCountSince,
@@ -167,7 +167,7 @@ import {
167
167
  resolveRemoteUrlIdentity,
168
168
  resolveRemoteUrlIdentityAsync,
169
169
  switchPrFeedbackTrackingCandidateAsync
170
- } from "./index-kfevm0n5.js";
170
+ } from "./index-fzqn2kk8.js";
171
171
  import {
172
172
  buildCorrelationId,
173
173
  buildIssueUrl,
@@ -188,13 +188,13 @@ import {
188
188
  sweepStale,
189
189
  unsubscribe,
190
190
  updateSnapshot
191
- } from "./index-mjfpaxw3.js";
191
+ } from "./index-dtet46e6.js";
192
192
  import {
193
193
  WORKTREE_LIFECYCLE_LOCK_FILE,
194
194
  recordWorktreeProvisioningOwner,
195
195
  removeWorktreeProvisioningOwner,
196
196
  scanWorktreeProvisioningOwnersForRecovery
197
- } from "./index-n8q43eff.js";
197
+ } from "./index-g8jd3h4r.js";
198
198
  import {
199
199
  getLanguageForExtension
200
200
  } from "./index-pt7h91zc.js";
@@ -223,7 +223,7 @@ import {
223
223
  swarmOverwriteCandidates,
224
224
  trackedDirtyCandidates,
225
225
  transientBackoff
226
- } from "./index-zv71frp3.js";
226
+ } from "./index-cf003krm.js";
227
227
  import {
228
228
  EPIC_MODE_CONFIG_DISABLED_MESSAGE,
229
229
  PlanRecoverySupersededError,
@@ -255,7 +255,7 @@ import {
255
255
  updateEpicRecord,
256
256
  updateTaskStatus,
257
257
  withPlanLifecycleLock
258
- } from "./index-mqf06fyy.js";
258
+ } from "./index-878ksabw.js";
259
259
  import {
260
260
  containsControlChars,
261
261
  containsPathTraversal,
@@ -271,7 +271,7 @@ import {
271
271
  resolveSpeckitProjection,
272
272
  validateSpeckit,
273
273
  writeProjectedSpecSync
274
- } from "./index-hqqfxytt.js";
274
+ } from "./index-5s74qd5b.js";
275
275
  import {
276
276
  clearWorktreeMergeStatus,
277
277
  getAllWorktreeMergeFailures,
@@ -303,7 +303,7 @@ import {
303
303
  transitionTaskWorkflowEvidenceWithStatus,
304
304
  withTaskEvidenceTransaction,
305
305
  writeWorkflowWalFile
306
- } from "./index-dexj54h2.js";
306
+ } from "./index-7a92gwbg.js";
307
307
  import {
308
308
  isPathUnderSwarmWorktreeBase,
309
309
  listLiveLaneOwners,
@@ -312,7 +312,7 @@ import {
312
312
  recordLiveLaneOwner,
313
313
  removeWorktree,
314
314
  resolveWorktreeBaseDir
315
- } from "./index-4d04qzw5.js";
315
+ } from "./index-f54stv77.js";
316
316
  import {
317
317
  GitBinaryMissingError,
318
318
  GitSpawnCwdError,
@@ -354,7 +354,7 @@ import {
354
354
  scanBackgroundCoderReservationsForAdmission,
355
355
  scanDelegationsForRecovery,
356
356
  sweepStaleDelegations
357
- } from "./index-3pkeqcxe.js";
357
+ } from "./index-ypvz2c60.js";
358
358
  import {
359
359
  MAX_EVENT_LOG_ENTRIES,
360
360
  _internals,
@@ -366,7 +366,7 @@ import {
366
366
  recordHiveKnowledgeEvent,
367
367
  recordKnowledgeEvent,
368
368
  resolveKnowledgeEventsPath
369
- } from "./index-sxw0jbyc.js";
369
+ } from "./index-4qreeddq.js";
370
370
  import {
371
371
  commitDisplayedMembership,
372
372
  commitEmptyRetrieval,
@@ -379,7 +379,7 @@ import {
379
379
  queryLiveMemberships,
380
380
  reconcilePhaseClose,
381
381
  recordPhaseCloseIntent
382
- } from "./index-646s7gp9.js";
382
+ } from "./index-w8e73tp0.js";
383
383
  import {
384
384
  sanitizeContextText
385
385
  } from "./index-m9zzj4ee.js";
@@ -390,7 +390,7 @@ import {
390
390
  readSwarmFileAsync,
391
391
  safeHook,
392
392
  validateSwarmPath
393
- } from "./index-nkgzkt7c.js";
393
+ } from "./index-eaess7dm.js";
394
394
  import {
395
395
  bunFile,
396
396
  bunSpawn,
@@ -410,18 +410,18 @@ import {
410
410
  validateActionableFields,
411
411
  validateLesson,
412
412
  validateSkillPath
413
- } from "./index-egkph2cs.js";
413
+ } from "./index-7bppy3ve.js";
414
414
  import {
415
415
  MAX_CURATION_PROPOSALS,
416
416
  authorizeCuration,
417
417
  buildConfigFingerprintInput
418
- } from "./index-sxj143a4.js";
418
+ } from "./index-5dws7eyb.js";
419
419
  import {
420
420
  cohortConfigFingerprint
421
421
  } from "./index-rtry5xyf.js";
422
422
  import {
423
423
  resolveWorktreeIsolationConfig
424
- } from "./index-p1z7pafk.js";
424
+ } from "./index-89826pb5.js";
425
425
  import {
426
426
  RetrospectiveEvidenceSchema
427
427
  } from "./index-g22dps7x.js";
@@ -433,8 +433,9 @@ import {
433
433
  clearScopeBindings,
434
434
  readAuthoritativeScopeBindingSet,
435
435
  readDeclaredScopeFilesFromBindings
436
- } from "./index-93zvq6wn.js";
436
+ } from "./index-ejq082zj.js";
437
437
  import {
438
+ approvedSnapshotCoversPlan,
438
439
  clearPlanLedgerForReset,
439
440
  computePlanStructureHash,
440
441
  getOrAdoptPlanEpochUnderLock,
@@ -449,7 +450,7 @@ import {
449
450
  replayFromLedgerWithStatus,
450
451
  resolvePlanningProfile,
451
452
  takeSnapshotEvent
452
- } from "./index-v9geqn2t.js";
453
+ } from "./index-ba87gkb4.js";
453
454
  import {
454
455
  CORE_EVENT_LOCKED,
455
456
  appendCoreEventSync,
@@ -459,7 +460,7 @@ import {
459
460
  hasSpecDriftAuditEvent,
460
461
  hasTaskRepairAuditEvent,
461
462
  readCoreEvents
462
- } from "./index-zk6ttjkt.js";
463
+ } from "./index-a9m7h5v0.js";
463
464
  import {
464
465
  DEFAULT_QA_GATES,
465
466
  computeProfileHash,
@@ -467,7 +468,7 @@ import {
467
468
  getEffectiveGates,
468
469
  getProfileLookupForIdentity,
469
470
  setGatesForIdentity
470
- } from "./index-mcv0v2dp.js";
471
+ } from "./index-dt4cjxbz.js";
471
472
  import {
472
473
  MAX_COORDINATION_STATE_LIST_ROWS,
473
474
  deleteCoordinationImports,
@@ -478,7 +479,7 @@ import {
478
479
  listCoordinationStates,
479
480
  transitionCoordinationState,
480
481
  withCoordinationTransaction
481
- } from "./index-feaxsjrt.js";
482
+ } from "./index-mbn4vn3z.js";
482
483
  import {
483
484
  DURABILITY_CLASSES,
484
485
  closeAllProjectDbs,
@@ -487,7 +488,7 @@ import {
487
488
  projectDbExists,
488
489
  projectDbPath,
489
490
  withImmediateTransaction
490
- } from "./index-2fpv2wmc.js";
491
+ } from "./index-8zj647hc.js";
491
492
  import {
492
493
  canonicalExistingFilesystemPath,
493
494
  canonicalPathForFutureIo,
@@ -507,7 +508,7 @@ import {
507
508
  observeModelLimitResolution,
508
509
  observeStoreHealth,
509
510
  readLearningHealth
510
- } from "./index-z3ahy9c2.js";
511
+ } from "./index-4twjbsfw.js";
511
512
  import {
512
513
  appendKnowledge,
513
514
  appendRejectedLesson,
@@ -538,7 +539,7 @@ import {
538
539
  transactFile,
539
540
  transactKnowledge,
540
541
  wordBigrams
541
- } from "./index-ywmz75rj.js";
542
+ } from "./index-29z0w323.js";
542
543
  import {
543
544
  readTailJsonl,
544
545
  readTailJsonlDetailed,
@@ -559,13 +560,13 @@ import {
559
560
  resolveLinkDir,
560
561
  sanitizeLinkId,
561
562
  writeLinkPointer
562
- } from "./index-3zwhxk98.js";
563
+ } from "./index-bgzpw6ge.js";
563
564
  import {
564
565
  atomicWriteFile
565
- } from "./index-r9yvpr2m.js";
566
+ } from "./index-1n7sf9gz.js";
566
567
  import {
567
568
  withEvidenceLock
568
- } from "./index-8bx6vhzk.js";
569
+ } from "./index-e8k0v19e.js";
569
570
  import {
570
571
  assertProjectRoot
571
572
  } from "./index-t7hmqgjy.js";
@@ -579,7 +580,7 @@ import {
579
580
  pseudonymousRef,
580
581
  resolveLineageSalt,
581
582
  telemetry
582
- } from "./index-7vnr5cmp.js";
583
+ } from "./index-mtqwyjrg.js";
583
584
  import {
584
585
  SESSION_KEY_SEPARATOR,
585
586
  canonicalRootKey,
@@ -605,7 +606,7 @@ import {
605
606
  matchTempGrammar,
606
607
  parseTargetBasename,
607
608
  resetSwarmArtifactCache
608
- } from "./index-qs9myayh.js";
609
+ } from "./index-nwswxes7.js";
609
610
  import {
610
611
  PlanSchema,
611
612
  TaskStatusSchema,
@@ -623,7 +624,7 @@ import {
623
624
  loadPluginConfig,
624
625
  loadPluginConfigWithMeta,
625
626
  resolveEpicConfig
626
- } from "./index-9qwmx95b.js";
627
+ } from "./index-w9y482mp.js";
627
628
  import {
628
629
  GIT_BINARY_ENV_VAR,
629
630
  addDeferredWarning,
@@ -656,7 +657,7 @@ import {
656
657
  resolveContextWindow,
657
658
  resolveGeneratedAgentRole,
658
659
  stripKnownSwarmPrefix
659
- } from "./index-tv0m2css.js";
660
+ } from "./index-a83gmv2e.js";
660
661
  import {
661
662
  AGENT_TOOL_MAP,
662
663
  ALL_AGENT_NAMES,
@@ -700,7 +701,7 @@ import {
700
701
  init_executor,
701
702
  isUntrustedEnvKey,
702
703
  isValidEnvKey
703
- } from "./index-sgxbqba0.js";
704
+ } from "./index-bzfn85kq.js";
704
705
  import {
705
706
  init_path_identity,
706
707
  sanitizeDiagnosticText,
@@ -2505,6 +2506,11 @@ var TriggerCoverageDegradationSchema = exports_external.object({
2505
2506
  source_lane_id: exports_external.string().trim().min(1),
2506
2507
  reason: exports_external.string().trim().min(1)
2507
2508
  }).strict();
2509
+ var TriggerReceiptCoveredFamilySchema = exports_external.object({
2510
+ trigger_id: TriggerIdSchema,
2511
+ source_batch_id: exports_external.string().trim().min(1),
2512
+ source_lane_id: exports_external.string().trim().min(1)
2513
+ }).strict();
2508
2514
  var ReceiptEnvelopeSchema = exports_external.object({
2509
2515
  run_id: exports_external.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/),
2510
2516
  pr_head_sha: exports_external.string().trim().regex(/^[0-9a-f]{6,64}$/i),
@@ -2521,6 +2527,7 @@ var V2ReceiptSchema = ReceiptEnvelopeSchema.extend({
2521
2527
  no_match_count: exports_external.number().int().min(0),
2522
2528
  rows: exports_external.array(V2RowSchema),
2523
2529
  coverage_degradations: exports_external.array(TriggerCoverageDegradationSchema).default([]),
2530
+ receipt_covered_families: exports_external.array(TriggerReceiptCoveredFamilySchema).default([]),
2524
2531
  base_verification: exports_external.enum(["live", "bound_fallback"]).optional()
2525
2532
  }).strict();
2526
2533
  function assertCanonicalDefinitionFields(rows) {
@@ -2571,13 +2578,14 @@ function prReviewTriggerLedgerDigest(rows) {
2571
2578
  ]);
2572
2579
  return createHash3("sha256").update(JSON.stringify(canonical)).digest("hex");
2573
2580
  }
2574
- function parsedReceipt(schemaVersion, rows, coverageDegradations = [], baseVerification) {
2581
+ function parsedReceipt(schemaVersion, rows, coverageDegradations = [], baseVerification, receiptCoveredFamilies = []) {
2575
2582
  return {
2576
2583
  schemaVersion,
2577
2584
  rows,
2578
2585
  matchedRows: rows.filter((row) => row.result === "MATCHED"),
2579
2586
  notTriggeredRows: rows.filter((row) => row.result === "NOT_TRIGGERED"),
2580
2587
  coverageDegradations,
2588
+ receiptCoveredFamilies,
2581
2589
  ...baseVerification ? { baseVerification } : {}
2582
2590
  };
2583
2591
  }
@@ -2611,7 +2619,7 @@ function parsePrReviewTriggerReceipt(input) {
2611
2619
  throw new Error(`PR_REVIEW trigger receipt ${field} is inconsistent: expected ${expected}`);
2612
2620
  }
2613
2621
  }
2614
- return parsedReceipt(2, validated2.rows, receipt.coverage_degradations, receipt.base_verification);
2622
+ return parsedReceipt(2, validated2.rows, receipt.coverage_degradations, receipt.base_verification, receipt.receipt_covered_families);
2615
2623
  }
2616
2624
  if (schemaVersion !== undefined && schemaVersion !== 1) {
2617
2625
  throw new Error(`Unsupported PR_REVIEW trigger schema_version: ${schemaVersion}`);
@@ -3449,7 +3457,7 @@ async function importLegacyPrWorkflowGateStateIfNeeded(directory, sessionID, all
3449
3457
  return null;
3450
3458
  throw error2;
3451
3459
  }
3452
- const legacy = allowSalvagedImport ? (await (await import("./pr-workflow-gate-p1sv3vp7.js")).readPrWorkflowGateStateForRecovery(directory, sessionID))?.state ?? null : await readPrWorkflowGateStateFileFromDisk(filePath, sessionID);
3460
+ const legacy = allowSalvagedImport ? (await (await import("./pr-workflow-gate-ap5cp211.js")).readPrWorkflowGateStateForRecovery(directory, sessionID))?.state ?? null : await readPrWorkflowGateStateFileFromDisk(filePath, sessionID);
3453
3461
  if (!legacy)
3454
3462
  return null;
3455
3463
  const namespace = workflowGateStateCoordinationNamespace(sessionID);
@@ -3536,7 +3544,7 @@ async function deleteStateWhileLocked(directory, sessionID, options = {}) {
3536
3544
  let recoveryState = null;
3537
3545
  if (!currentAuthoritative) {
3538
3546
  if (options.allowSalvagedRead) {
3539
- const { readPrWorkflowGateStateForRecovery } = await import("./pr-workflow-gate-p1sv3vp7.js");
3547
+ const { readPrWorkflowGateStateForRecovery } = await import("./pr-workflow-gate-ap5cp211.js");
3540
3548
  recoveryState = (await readPrWorkflowGateStateForRecovery(directory, normalizedSessionID))?.state ?? null;
3541
3549
  }
3542
3550
  if (!recoveryState) {
@@ -8194,6 +8202,7 @@ import * as path16 from "path";
8194
8202
 
8195
8203
  // src/hooks/delegation-gate/worktree-isolation.ts
8196
8204
  init_constants();
8205
+ init_schema();
8197
8206
  import { createHash as createHash16 } from "crypto";
8198
8207
  import * as fs8 from "fs/promises";
8199
8208
  import * as path14 from "path";
@@ -10060,6 +10069,32 @@ var MAX_TRACKED_STANDARD_WORKTREE_CALLS = 256;
10060
10069
  var awaitingMergeByCallID = new Map;
10061
10070
  var standardWorktreeByCallID = new Map;
10062
10071
  var standardWorktreeSerializationSessions = new Set;
10072
+ var LANE_CHILD_SESSION_LIMIT = 512;
10073
+ var laneChildSessionAgents = new Map;
10074
+ function recordLaneChildSession(sessionId, agent) {
10075
+ laneChildSessionAgents.delete(sessionId);
10076
+ laneChildSessionAgents.set(sessionId, agent);
10077
+ while (laneChildSessionAgents.size > LANE_CHILD_SESSION_LIMIT) {
10078
+ const oldest = laneChildSessionAgents.keys().next().value;
10079
+ if (oldest === undefined)
10080
+ break;
10081
+ laneChildSessionAgents.delete(oldest);
10082
+ }
10083
+ }
10084
+ function assertTaskIdNotForeignLaneSession(args) {
10085
+ if (!args)
10086
+ return;
10087
+ const taskId = typeof args.task_id === "string" ? args.task_id.trim() : "";
10088
+ if (!taskId)
10089
+ return;
10090
+ const owner = laneChildSessionAgents.get(taskId);
10091
+ if (owner === undefined)
10092
+ return;
10093
+ const requested = typeof args.subagent_type === "string" ? stripKnownSwarmPrefix(args.subagent_type).toLowerCase() : "";
10094
+ if (requested === owner)
10095
+ return;
10096
+ throw new Error(`TASK_SESSION_RESUME_MISMATCH: task_id "${taskId}" is the session this plugin created for an isolated ${owner} lane; ` + `passing it would resume that ${owner} session as ${requested || "another agent"} (its lane, history and scope). ` + 'Set task_id to the plan task id (e.g. "1.1") or omit it; never pass a `ses_\u2026` id returned in a Task result ' + `for a different agent. Omitting it starts a fresh ${requested || "agent"} session.`);
10097
+ }
10063
10098
  var standardWorktreeMergeQueue = Promise.resolve();
10064
10099
  var standardWorktreeLaneIndexBySession = new Map;
10065
10100
  var serializationStateBySessionID = new Map;
@@ -10138,6 +10173,28 @@ function handleStandardWorktreeFailure(parentSessionID, policy, message) {
10138
10173
  }
10139
10174
  serializeStandardWorktreeDispatches(parentSessionID, message);
10140
10175
  }
10176
+ var WORKTREE_LIFECYCLE_LOCK_WAIT_MARGIN_MS = 5000;
10177
+ var WORKTREE_LIFECYCLE_LOCK_WAIT_MIN_MS = 1e4;
10178
+ var WORKTREE_DISPATCH_HOOK_BUDGET_MS = 60000;
10179
+ var WORKTREE_PROVISION_ALLOWANCE_MS = 15000;
10180
+ function resolveWorktreeLifecycleLockWaitMs(sessionCreateTimeoutMs) {
10181
+ const createMs = Math.max(0, sessionCreateTimeoutMs);
10182
+ const coverHolder = createMs + WORKTREE_LIFECYCLE_LOCK_WAIT_MARGIN_MS;
10183
+ const roomInHook = WORKTREE_DISPATCH_HOOK_BUDGET_MS - createMs - WORKTREE_SESSION_CREATE_SETTLE_GRACE_MS - WORKTREE_PROVISION_ALLOWANCE_MS;
10184
+ return Math.max(WORKTREE_LIFECYCLE_LOCK_WAIT_MIN_MS, Math.min(coverHolder, roomInHook));
10185
+ }
10186
+ async function acquireWorktreeLifecycleLockWithin(directory, taskId, waitMs) {
10187
+ const deadline = _internals20.now() + Math.max(0, waitMs);
10188
+ for (;; ) {
10189
+ const attempt = await _internals20.tryAcquireWorktreeLifecycleLock(directory, WORKTREE_LIFECYCLE_LOCK_FILE, "worktree-provisioning", taskId);
10190
+ if (attempt.acquired)
10191
+ return attempt;
10192
+ const remaining = deadline - _internals20.now();
10193
+ if (remaining <= 0)
10194
+ return attempt;
10195
+ await _internals20.sleep(Math.min(remaining, 50 + Math.floor(Math.random() * 200)));
10196
+ }
10197
+ }
10141
10198
  function hardStopStandardWorktreeLifecycle(parentSessionID, message) {
10142
10199
  const session = ensureAgentSession(parentSessionID);
10143
10200
  pushAdvisory(session, message);
@@ -10165,6 +10222,7 @@ function getStandardWorktreeDegradationReason(sessionID) {
10165
10222
  function resetStandardWorktreeIsolationState() {
10166
10223
  standardWorktreeByCallID.clear();
10167
10224
  standardWorktreeSerializationSessions.clear();
10225
+ laneChildSessionAgents.clear();
10168
10226
  serializationStateBySessionID.clear();
10169
10227
  standardWorktreeDegradationReasonBySession.clear();
10170
10228
  awaitingMergeByCallID.clear();
@@ -10334,7 +10392,7 @@ function isLaneOwnedByCurrentSession(branchName, expectedSessionId) {
10334
10392
  return extracted === expectedSessionId;
10335
10393
  }
10336
10394
  async function inspectStandardWorktreeCollisionOwnership(identity) {
10337
- const collisionOwnership = await import("./worktree-collision-ownership-ge241a9e.js");
10395
+ const collisionOwnership = await import("./worktree-collision-ownership-as8hnnff.js");
10338
10396
  return collisionOwnership.inspectStandardWorktreeCollisionOwnership(identity);
10339
10397
  }
10340
10398
  async function runRecoveryGit(directory, args, timeoutMs = 15000) {
@@ -10484,9 +10542,10 @@ async function precreateStandardWorktreeSession(args) {
10484
10542
  })
10485
10543
  };
10486
10544
  let recoveryLaunch;
10487
- const lifecycleLock = await _internals20.tryAcquireWorktreeLifecycleLock(args.directory, WORKTREE_LIFECYCLE_LOCK_FILE, "worktree-provisioning", args.taskId);
10545
+ const lifecycleLockWaitMs = resolveWorktreeLifecycleLockWaitMs(resolveSessionCreateTimeoutMs(args));
10546
+ const lifecycleLock = await acquireWorktreeLifecycleLockWithin(args.directory, args.taskId, lifecycleLockWaitMs);
10488
10547
  if (!lifecycleLock.acquired) {
10489
- hardStopStandardWorktreeLifecycle(args.parentSessionID, "STANDARD_WORKTREE_LIFECYCLE_BUSY: init orphan recovery is active; retry this coder dispatch after recovery completes.");
10548
+ hardStopStandardWorktreeLifecycle(args.parentSessionID, `STANDARD_WORKTREE_LIFECYCLE_BUSY: the worktree lifecycle lock stayed busy for ${Math.round(lifecycleLockWaitMs / 1000)}s (another lane is provisioning or init orphan recovery is running); retry this coder dispatch. ` + "The wait follows worktree.session_create_timeout_ms: that budget plus 5s, at least 10s, and \u2014 up to the default 30s budget \u2014 short enough that this dispatch (its own session create and worktree provisioning included) still fits the 60s host hook budget.");
10490
10549
  }
10491
10550
  try {
10492
10551
  const collision = await _internals20.preProvisionCollisionCheck(args.taskId, args.directory, args.parentSessionID);
@@ -10761,7 +10820,7 @@ async function precreateStandardWorktreeSession(args) {
10761
10820
  const laneProfile = computeLaneRuntimeProfile(worktreeConfig.runtime_isolation, laneIndex, handle.worktreePath);
10762
10821
  if (laneProfile) {
10763
10822
  try {
10764
- const { writeLaneProfileToDiskReal } = await import("./core-dxraa2ss.js");
10823
+ const { writeLaneProfileToDiskReal } = await import("./core-0jarm64k.js");
10765
10824
  await writeLaneProfileToDiskReal(handle.worktreePath, laneProfile.laneIndex, laneProfile.envOverrides);
10766
10825
  } catch {}
10767
10826
  }
@@ -10858,6 +10917,7 @@ async function precreateStandardWorktreeSession(args) {
10858
10917
  throw new Error("STANDARD_WORKTREE_SESSION_CREATE_FAILED: missing child session id.");
10859
10918
  }
10860
10919
  args.outputArgs.task_id = childSessionId;
10920
+ recordLaneChildSession(childSessionId, "coder");
10861
10921
  ensureAgentSession(childSessionId, "coder", handle.worktreePath);
10862
10922
  recordSessionWorkspaceRoot(childSessionId, handle.worktreePath);
10863
10923
  rememberStandardWorktreeDispatch({
@@ -11754,7 +11814,7 @@ async function finishStandardWorktreeDispatch(directory, dispatch, config, callI
11754
11814
  }
11755
11815
  clearWorktreeMergeStatus(statusKey);
11756
11816
  try {
11757
- const { removeLaneProfileFromDiskReal } = await import("./core-dxraa2ss.js");
11817
+ const { removeLaneProfileFromDiskReal } = await import("./core-0jarm64k.js");
11758
11818
  await removeLaneProfileFromDiskReal(dispatch.handle.worktreePath, dispatch.laneIndex);
11759
11819
  } catch {}
11760
11820
  const state = serializationStateBySessionID.get(dispatch.parentSessionID);
@@ -11939,6 +11999,10 @@ var _internals20 = {
11939
11999
  preserveDirtyWorktreeForCallId,
11940
12000
  preserveBackgroundWorktreeOwnershipForCallId,
11941
12001
  tryAcquireWorktreeLifecycleLock: tryAcquireLock,
12002
+ acquireWorktreeLifecycleLockWithin,
12003
+ resolveWorktreeLifecycleLockWaitMs,
12004
+ now: () => Date.now(),
12005
+ sleep: (ms) => new Promise((resolve6) => setTimeout(resolve6, ms)),
11942
12006
  recordWorktreeProvisioningOwner,
11943
12007
  removeWorktreeProvisioningOwner,
11944
12008
  lookupWorktreeRecoveryAuthoritiesByTask,
@@ -19028,6 +19092,12 @@ function emitTrajectoryHealth(directory, data) {
19028
19092
  }
19029
19093
  function getTrajectoryPath(sessionId, directory) {
19030
19094
  const relativePath = path25.join("trajectories", `${sessionId}.jsonl`);
19095
+ return trajectorySwarmPath(directory, relativePath);
19096
+ }
19097
+ function trajectorySwarmPath(directory, relativePath) {
19098
+ if (typeof directory !== "string" || directory.trim() === "" || !path25.isAbsolute(directory)) {
19099
+ throw new Error(`[trajectory-store] workspace directory must be a non-blank absolute path (got ${JSON.stringify(directory)})`);
19100
+ }
19031
19101
  return validateSwarmPath(directory, relativePath);
19032
19102
  }
19033
19103
  function getMetaPath(trajectoryPath) {
@@ -19211,7 +19281,7 @@ async function cleanupOldTrajectoryFiles(directory, maxAgeDays = TRAJECTORY_LIMI
19211
19281
  if (removed >= TRAJECTORY_LIMITS.maxDeletionsPerRun)
19212
19282
  break;
19213
19283
  try {
19214
- const dirPath = validateSwarmPath(directory, subdir);
19284
+ const dirPath = trajectorySwarmPath(directory, subdir);
19215
19285
  const entries = await fs16.readdir(dirPath, { withFileTypes: true });
19216
19286
  const candidates = [];
19217
19287
  for (const entry of entries) {
@@ -19761,6 +19831,27 @@ async function commitTaskTerminalUnderPlanLock(options) {
19761
19831
  };
19762
19832
  });
19763
19833
  }
19834
+
19835
+ // src/parallel/tier3-classifier.ts
19836
+ var TIER_3_EXACT_BASENAMES = new Set([
19837
+ "auth",
19838
+ "authenticate",
19839
+ "authentication",
19840
+ "authorization",
19841
+ "permission",
19842
+ "permissions",
19843
+ "crypto",
19844
+ "secret",
19845
+ "secrets",
19846
+ "secretscan"
19847
+ ]);
19848
+ var TIER_3_DIRECTORY_SEGMENTS = new Set([
19849
+ "auth",
19850
+ "security",
19851
+ "crypto",
19852
+ "permission",
19853
+ "secret"
19854
+ ]);
19764
19855
  // src/hooks/guardrails/index.ts
19765
19856
  init_constants();
19766
19857
  init_schema();
@@ -25490,9 +25581,7 @@ async function isPlanCriticApproved(directory) {
25490
25581
  return false;
25491
25582
  if (approved.approval?.verdict !== "APPROVED" || approved.approval?.source !== "plan_critic_gate")
25492
25583
  return false;
25493
- if (approved.payloadHash !== computePlanStructureHash(plan))
25494
- return false;
25495
- return true;
25584
+ return approvedSnapshotCoversPlan(approved, plan);
25496
25585
  } catch {
25497
25586
  return false;
25498
25587
  }
@@ -25847,21 +25936,27 @@ function clearAllTaskModelRoutingState() {
25847
25936
  import { existsSync as existsSync14, mkdirSync as mkdirSync9, readFileSync as readFileSync16, writeFileSync as writeFileSync9 } from "fs";
25848
25937
  import * as path30 from "path";
25849
25938
  var SESSION_START_FILE = "session-start.jsonl";
25939
+ function sessionStartPath(directory) {
25940
+ if (typeof directory !== "string" || directory.trim() === "" || !path30.isAbsolute(directory)) {
25941
+ return null;
25942
+ }
25943
+ return path30.join(directory, ".swarm", "session", SESSION_START_FILE);
25944
+ }
25850
25945
  function recordSessionStart(directory, startMs) {
25851
25946
  try {
25852
- const swarmDir = path30.join(directory, ".swarm");
25853
- const sessionDir = path30.join(swarmDir, "session");
25854
- const filePath = path30.join(sessionDir, SESSION_START_FILE);
25947
+ const filePath = sessionStartPath(directory);
25948
+ if (filePath === null)
25949
+ return;
25855
25950
  const line = JSON.stringify({ startMs, ts: Date.now() });
25856
- mkdirSync9(sessionDir, { recursive: true });
25951
+ mkdirSync9(path30.dirname(filePath), { recursive: true });
25857
25952
  writeFileSync9(filePath, `${line}
25858
25953
  `, { flag: "a" });
25859
25954
  } catch {}
25860
25955
  }
25861
25956
  function readEarliestSessionStart(directory) {
25862
25957
  try {
25863
- const filePath = path30.join(directory, ".swarm", "session", SESSION_START_FILE);
25864
- if (!existsSync14(filePath))
25958
+ const filePath = sessionStartPath(directory);
25959
+ if (filePath === null || !existsSync14(filePath))
25865
25960
  return null;
25866
25961
  const content = readFileSync16(filePath, "utf-8");
25867
25962
  const lines = content.split(`
@@ -26577,6 +26672,9 @@ function resolveInitialTurboMode(directory) {
26577
26672
  function startAgentSession(sessionId, agentName, staleDurationMs = STALE_SESSION_TTL_MS, directory) {
26578
26673
  const now = Date.now();
26579
26674
  claimSnapshotSessionOwnership(sessionId, true);
26675
+ if (typeof directory === "string" && directory.trim() === "") {
26676
+ directory = undefined;
26677
+ }
26580
26678
  const owningProjectKey = directory ? hydrationProjectKey(directory) : undefined;
26581
26679
  const hydrationAuthority = owningProjectKey ? captureCurrentHydrationAuthority(owningProjectKey) : undefined;
26582
26680
  const hydrationStamp = owningProjectKey ? nextSessionHydrationStamp(owningProjectKey) : undefined;
@@ -27502,7 +27600,7 @@ function clearCriticalShownIds(sessionID) {
27502
27600
  async function rehydratePrSubscriptions(sessionID, directory) {
27503
27601
  const map = new Map;
27504
27602
  try {
27505
- const { listActive: listActive2 } = await import("./pr-subscriptions-9ge667xn.js");
27603
+ const { listActive: listActive2 } = await import("./pr-subscriptions-4mcwj33s.js");
27506
27604
  const records = await listActive2(directory);
27507
27605
  for (const record of records) {
27508
27606
  if (record.sessionID !== sessionID)
@@ -35941,7 +36039,7 @@ ${USAGE2}`;
35941
36039
  // src/services/spec-drift-recovery.ts
35942
36040
  import { createHash as createHash26 } from "crypto";
35943
36041
  import { mkdir as mkdir6, readFile as readFile10, unlink as unlink2 } from "fs/promises";
35944
- import { dirname as dirname16 } from "path";
36042
+ import { dirname as dirname17 } from "path";
35945
36043
  var SPEC_DRIFT_RECOVERY_AGENT = "spec-drift-recovery";
35946
36044
  var _internals41 = {
35947
36045
  appendEvent,
@@ -36022,7 +36120,7 @@ async function unlinkIfExists(filePath) {
36022
36120
  }
36023
36121
  }
36024
36122
  async function writeWal3(walPath, wal) {
36025
- await mkdir6(dirname16(walPath), { recursive: true });
36123
+ await mkdir6(dirname17(walPath), { recursive: true });
36026
36124
  await atomicWriteFile(walPath, `${JSON.stringify(wal, null, 2)}
36027
36125
  `);
36028
36126
  }
@@ -41989,6 +42087,43 @@ import * as path47 from "path";
41989
42087
  // src/hooks/skill-improver-llm-factory.ts
41990
42088
  init_schema();
41991
42089
 
42090
+ // src/failures/provider-message-error.ts
42091
+ function readProviderMessageError(info) {
42092
+ if (!info || typeof info !== "object")
42093
+ return null;
42094
+ const error2 = info.error;
42095
+ if (!error2 || typeof error2 !== "object")
42096
+ return null;
42097
+ const { name, data } = error2;
42098
+ const details = data && typeof data === "object" ? data : {};
42099
+ const statusCode = typeof details.statusCode === "number" && Number.isFinite(details.statusCode) ? details.statusCode : undefined;
42100
+ const rawMessage = typeof details.message === "string" && details.message.trim().length > 0 ? details.message : "no message";
42101
+ const classified = classifyProviderFailure(statusCode === undefined ? rawMessage : { message: rawMessage, status: statusCode });
42102
+ return {
42103
+ name: typeof name === "string" && name.length > 0 ? name.slice(0, 64) : "UnknownError",
42104
+ ...statusCode === undefined ? {} : { statusCode },
42105
+ message: classified.evidence.display || "no message",
42106
+ category: classified.category
42107
+ };
42108
+ }
42109
+ function formatProviderMessageError(prefix, error2) {
42110
+ const status = error2.statusCode === undefined ? "" : ` (HTTP ${error2.statusCode})`;
42111
+ return `${prefix}: ${error2.name}${status}: ${error2.message}`;
42112
+ }
42113
+ function providerMessageErrorToError(prefix, error2) {
42114
+ const err = new Error(formatProviderMessageError(prefix, error2));
42115
+ if (error2.statusCode !== undefined)
42116
+ err.status = error2.statusCode;
42117
+ err.category = error2.category;
42118
+ err.providerError = error2;
42119
+ return err;
42120
+ }
42121
+ function throwIfProviderMessageError(prefix, info) {
42122
+ const error2 = readProviderMessageError(info);
42123
+ if (error2)
42124
+ throw providerMessageErrorToError(prefix, error2);
42125
+ }
42126
+
41992
42127
  // src/utils/model-dispatch-fallback.ts
41993
42128
  function parseModelString2(model) {
41994
42129
  if (!model || !model.trim())
@@ -42253,6 +42388,7 @@ ${userInput}` : userInput;
42253
42388
  if (!promptResult.data) {
42254
42389
  throw new Error(`skill_improver LLM prompt failed: ${JSON.stringify(promptResult.error)}`);
42255
42390
  }
42391
+ throwIfProviderMessageError("skill_improver LLM prompt provider error", promptResult.data.info);
42256
42392
  return promptResult.data;
42257
42393
  },
42258
42394
  scope: sessionId ? {
@@ -44048,9 +44184,9 @@ function hashContent(content) {
44048
44184
  return createHash29("sha1").update(content).digest("hex");
44049
44185
  }
44050
44186
  async function loadConfigForPolicyCurator(directory) {
44051
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-6cwam61t.js");
44187
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-pqevpe3m.js");
44052
44188
  try {
44053
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-gv63kdd3.js");
44189
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-hcsz7bhg.js");
44054
44190
  const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
44055
44191
  return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
44056
44192
  } catch {
@@ -47108,7 +47244,7 @@ async function resolveCuratorLLMDelegate(directory, mode, sessionId) {
47108
47244
  const seam = _internals46.createCuratorLLMDelegate;
47109
47245
  if (seam)
47110
47246
  return seam(directory, mode, sessionId);
47111
- const { createCuratorLLMDelegate } = await import("./curator-llm-factory-w6hvns5a.js");
47247
+ const { createCuratorLLMDelegate } = await import("./curator-llm-factory-kxnzvhje.js");
47112
47248
  return createCuratorLLMDelegate(directory, mode, sessionId);
47113
47249
  }
47114
47250
  async function reconcileCloseTerminalStateForPlan(directory, targetPlan, options) {
@@ -47503,7 +47639,7 @@ async function runFinalizeStage(ctx) {
47503
47639
  }
47504
47640
  }
47505
47641
  try {
47506
- const { CuratorConfigSchema: CCS } = await import("./schema-6cwam61t.js");
47642
+ const { CuratorConfigSchema: CCS } = await import("./schema-pqevpe3m.js");
47507
47643
  const { config: pmLoadedConfig } = _internals46.loadPluginConfigWithMeta(ctx.directory);
47508
47644
  const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
47509
47645
  if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
@@ -51536,7 +51672,7 @@ function serializeAgentSession(s) {
51536
51672
  }
51537
51673
  async function writeSnapshot(directory, state) {
51538
51674
  try {
51539
- const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-rt4xyayx.js");
51675
+ const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-wn0hnwyv.js");
51540
51676
  await ensureSnapshotCoordinationReady(directory);
51541
51677
  const snapshot = {
51542
51678
  version: 3,
@@ -54557,7 +54693,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
54557
54693
  };
54558
54694
  }
54559
54695
  async function sweepActiveNearDuplicates(directory, options = {}) {
54560
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-gv63kdd3.js");
54696
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-hcsz7bhg.js");
54561
54697
  const { config } = loadPluginConfigWithMeta2(directory);
54562
54698
  const sweepConfig = config.learning?.dedup_sweep;
54563
54699
  if (sweepConfig?.enabled === false)
@@ -55681,7 +55817,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
55681
55817
  }
55682
55818
  if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
55683
55819
  try {
55684
- const skillModule = await import("./skill-generator-6dfgb9hj.js");
55820
+ const skillModule = await import("./skill-generator-xdg4626x.js");
55685
55821
  for (const cand of skillCandidates) {
55686
55822
  if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
55687
55823
  continue;
@@ -56153,7 +56289,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
56153
56289
  } catch {}
56154
56290
  }
56155
56291
  if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
56156
- const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-b45xccz8.js");
56292
+ const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-gzzr7cy2.js");
56157
56293
  for (const { id } of contradictedEntries) {
56158
56294
  try {
56159
56295
  await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
@@ -56985,7 +57121,7 @@ async function runCuratorPostMortem(directory, options = {}) {
56985
57121
  warnings.push("Failed to collect knowledge summary.");
56986
57122
  }
56987
57123
  try {
56988
- const { getScanStatus } = await import("./scan-cursor-hrn48cja.js");
57124
+ const { getScanStatus } = await import("./scan-cursor-tceyckdx.js");
56989
57125
  const scanStatus = await getScanStatus(directory);
56990
57126
  if (scanStatus.remaining_estimate > 0) {
56991
57127
  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.`);
@@ -57157,9 +57293,9 @@ var _internals68 = {
57157
57293
  verifyPostMortemKnowledgeActions,
57158
57294
  repairPostMortemActions,
57159
57295
  loadDefaultKnowledgeConfig: async (directory) => {
57160
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-6cwam61t.js");
57296
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-pqevpe3m.js");
57161
57297
  try {
57162
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-gv63kdd3.js");
57298
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-hcsz7bhg.js");
57163
57299
  const loaded = loadPluginConfigWithMeta2(directory);
57164
57300
  return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
57165
57301
  } catch {
@@ -57167,11 +57303,11 @@ var _internals68 = {
57167
57303
  }
57168
57304
  },
57169
57305
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
57170
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-hwwp7e2g.js");
57306
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-f7crssw2.js");
57171
57307
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
57172
57308
  },
57173
57309
  checkHivePromotions: async (entries2, knowledgeConfig, directory) => {
57174
- const { checkHivePromotions } = await import("./hive-promoter-vxrwvhga.js");
57310
+ const { checkHivePromotions } = await import("./hive-promoter-nks9a9s8.js");
57175
57311
  return checkHivePromotions(entries2, knowledgeConfig, directory);
57176
57312
  },
57177
57313
  applyProposalTriage: async (directory, triage) => {
@@ -57180,7 +57316,7 @@ var _internals68 = {
57180
57316
  activateProposal,
57181
57317
  listSkills: listSkills2,
57182
57318
  sanitizeSlug
57183
- } = await import("./skill-generator-6dfgb9hj.js");
57319
+ } = await import("./skill-generator-xdg4626x.js");
57184
57320
  const result = {
57185
57321
  approved: [],
57186
57322
  rejected: [],
@@ -57222,7 +57358,7 @@ var _internals68 = {
57222
57358
  return result;
57223
57359
  },
57224
57360
  readPriorDriftReports: async (directory) => {
57225
- const { readPriorDriftReports: readPriorDriftReports2 } = await import("./curator-drift-6qb0c363.js");
57361
+ const { readPriorDriftReports: readPriorDriftReports2 } = await import("./curator-drift-f4aqxz9e.js");
57226
57362
  return readPriorDriftReports2(directory);
57227
57363
  },
57228
57364
  readSwarmKnowledge: (directory) => readKnowledge(resolveSwarmKnowledgePath(directory))
@@ -65666,7 +65802,7 @@ function wireCloseInternals() {
65666
65802
  archiveEvidence,
65667
65803
  endAgentSession,
65668
65804
  flushAndDrainTelemetry: async () => {
65669
- const { flushAndDrainTelemetry } = await import("./telemetry-9szfdfqv.js");
65805
+ const { flushAndDrainTelemetry } = await import("./telemetry-qaymh4gg.js");
65670
65806
  return flushAndDrainTelemetry();
65671
65807
  },
65672
65808
  finalizeContextTelemetry,
@@ -67492,9 +67628,9 @@ var _internals76 = {
67492
67628
  loadPluginConfigWithMeta,
67493
67629
  loadCuratorDeps: async () => {
67494
67630
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate }] = await Promise.all([
67495
- import("./schema-6cwam61t.js"),
67496
- import("./curator-hwwp7e2g.js"),
67497
- import("./curator-llm-factory-w6hvns5a.js")
67631
+ import("./schema-pqevpe3m.js"),
67632
+ import("./curator-f7crssw2.js"),
67633
+ import("./curator-llm-factory-kxnzvhje.js")
67498
67634
  ]);
67499
67635
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate };
67500
67636
  }
@@ -69944,7 +70080,7 @@ async function computeCurationDiagnostics(directory, entries2) {
69944
70080
  let scanCompleted = false;
69945
70081
  let scanRemaining = 0;
69946
70082
  try {
69947
- const { getScanStatus } = await import("./scan-cursor-hrn48cja.js");
70083
+ const { getScanStatus } = await import("./scan-cursor-tceyckdx.js");
69948
70084
  const status = await getScanStatus(directory);
69949
70085
  scanGeneration = status.generation;
69950
70086
  scanCompleted = status.completed;
@@ -69952,19 +70088,19 @@ async function computeCurationDiagnostics(directory, entries2) {
69952
70088
  } catch {}
69953
70089
  let configMatch = null;
69954
70090
  try {
69955
- const { isLinked: isLinked2 } = await import("./knowledge-link-6hw3z6wn.js");
70091
+ const { isLinked: isLinked2 } = await import("./knowledge-link-a5tvjqdt.js");
69956
70092
  if (isLinked2(directory)) {
69957
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-6cwam61t.js");
70093
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-pqevpe3m.js");
69958
70094
  let config;
69959
70095
  try {
69960
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-gv63kdd3.js");
70096
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-hcsz7bhg.js");
69961
70097
  const loaded = loadPluginConfigWithMeta2(directory);
69962
70098
  config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
69963
70099
  } catch {
69964
70100
  config = KnowledgeConfigSchema2.parse({});
69965
70101
  }
69966
70102
  const { cohortConfigFingerprint: cohortConfigFingerprint2 } = await import("./config-fingerprint-v22xh5a2.js");
69967
- const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-6p6fcfjb.js");
70103
+ const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-yzdznz4z.js");
69968
70104
  const currentFp = cohortConfigFingerprint2(buildConfigFingerprintInput2(config));
69969
70105
  const cohortFp = await readCohortConfigFingerprint(directory);
69970
70106
  configMatch = cohortFp === null ? null : currentFp === cohortFp;
@@ -71413,7 +71549,7 @@ async function handleDoctorCommand(directory, args) {
71413
71549
  const result = runConfigDoctor(config, directory, planParallelizationEnabled);
71414
71550
  let output;
71415
71551
  if (enableAutoFix && result.hasAutoFixableIssues) {
71416
- const { runConfigDoctorWithFixes } = await import("./config-doctor-0kd6w45h.js");
71552
+ const { runConfigDoctorWithFixes } = await import("./config-doctor-wzzvhpcr.js");
71417
71553
  const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
71418
71554
  applyLossy: true
71419
71555
  });
@@ -71451,7 +71587,7 @@ async function handleDoctorCommand(directory, args) {
71451
71587
  `;
71452
71588
  }
71453
71589
  try {
71454
- const { runModelPreflight } = await import("./model-preflight-za9f75h1.js");
71590
+ const { runModelPreflight } = await import("./model-preflight-f1xvxk6e.js");
71455
71591
  const preflight = await runModelPreflight(config, swarmState.opencodeClient, { generatedAgentNames: swarmState.generatedAgentNames });
71456
71592
  const missingSelection = preflight.resolutions.filter((resolution) => resolution.status === "missing-selection");
71457
71593
  const unresolved = preflight.catalogAvailable ? preflight.resolutions.filter((resolution) => resolution.status === "unresolved") : [];
@@ -71485,7 +71621,7 @@ async function handleDoctorCommand(directory, args) {
71485
71621
  }
71486
71622
  } catch {}
71487
71623
  try {
71488
- const { renderKnowledgeReceiptPhaseIdSection } = await import("./doctor-knowledge-receipt-phase-id-ay2ngn4a.js");
71624
+ const { renderKnowledgeReceiptPhaseIdSection } = await import("./doctor-knowledge-receipt-phase-id-qvp1h3xv.js");
71489
71625
  output += await renderKnowledgeReceiptPhaseIdSection(directory, enableAutoFix);
71490
71626
  } catch {}
71491
71627
  const strayDirs = detectStraySwarmDirs(directory);
@@ -73502,7 +73638,7 @@ async function handleEvidenceCommand(directory, args) {
73502
73638
  return formatTaskEvidenceMarkdown(evidenceData);
73503
73639
  }
73504
73640
  async function handleEvidenceSummaryCommand(directory) {
73505
- const { buildEvidenceSummary } = await import("./evidence-summary-service-fyyzhbsc.js");
73641
+ const { buildEvidenceSummary } = await import("./evidence-summary-service-379skych.js");
73506
73642
  const artifact = await buildEvidenceSummary(directory);
73507
73643
  if (!artifact) {
73508
73644
  return "No plan found. Run `/swarm plan` to check plan status.";
@@ -73651,7 +73787,7 @@ Before reviewing the plan, check whether it was silently mutated since last crit
73651
73787
  1. Call the \`get_approved_plan\` tool (no arguments required \u2014 it derives identity internally).
73652
73788
  2. Examine the response:
73653
73789
  - If \`success: false\` with \`reason: "no_approved_snapshot"\`: this is the first plan or no prior approval exists. Note this and proceed with plan review.
73654
- - If \`drift_detected: false\`: baseline integrity confirmed \u2014 the plan has not been mutated since the last critic approval. Proceed with plan review.
73790
+ - If \`drift_detected: false\`: baseline integrity confirmed \u2014 the plan has not been mutated since the last critic approval. A different \`current_phase\` (the phase cursor), task/phase statuses, or a \`current_hash\` that differs from the approved hash are execution progress here, not drift. Proceed with plan review.
73655
73791
  - If \`drift_detected: true\` AND \`approved_plan\` is defined: CRITICAL finding \u2014 plan mutated after approval. Compare \`approved_plan\` vs \`current_plan\` to identify what changed (phases added/removed, tasks modified, scope changes). Report findings in a \`## BASELINE DRIFT\` section before the rubric assessment.
73656
73792
  - If \`drift_detected: true\` AND \`approved_plan\` is undefined but \`current_plan_error\` is present: CRITICAL finding \u2014 plan identity was mutated (tampering detected). Report \`current_plan_error\` as primary evidence; state that direct comparison is unavailable due to identity mutation. Report findings in a \`## BASELINE DRIFT\` section before the rubric assessment.
73657
73793
  - If \`drift_detected: "unknown"\`: flag as warning and proceed with caution.
@@ -73878,7 +74014,7 @@ Before reviewing individual tasks, check whether the plan itself was silently mu
73878
74014
  1. Call the \`get_approved_plan\` tool (no arguments required \u2014 it derives identity internally).
73879
74015
  2. Examine the response:
73880
74016
  - If \`success: false\` with \`reason: "no_approved_snapshot"\`: this is likely the first phase or no prior approval exists. Note this and proceed to per-task review.
73881
- - If \`drift_detected: false\`: baseline integrity confirmed \u2014 the plan has not been mutated since the last critic approval. Proceed to per-task review.
74017
+ - If \`drift_detected: false\`: baseline integrity confirmed \u2014 the plan has not been mutated since the last critic approval. A different \`current_phase\` (the phase cursor), task/phase statuses, or a \`current_hash\` that differs from the approved hash are execution progress here, not drift. Proceed to per-task review.
73882
74018
  - If \`drift_detected: true\` AND \`approved_plan\` is defined: CRITICAL finding \u2014 plan mutated after approval. Compare \`approved_plan\` vs \`current_plan\` to identify what changed (phases added/removed, tasks modified, scope changes). Report findings in a \`## BASELINE DRIFT\` section before the per-task rubric.
73883
74019
  - If \`drift_detected: true\` AND \`approved_plan\` is undefined but \`current_plan_error\` is present: CRITICAL finding \u2014 plan identity was mutated (tampering detected). Report \`current_plan_error\` as primary evidence; state that direct comparison is unavailable due to identity mutation. Report findings in a \`## BASELINE DRIFT\` section before the per-task rubric.
73884
74020
  - If \`drift_detected: "unknown"\`: current plan.json is unavailable. Flag this as a warning and proceed.
@@ -97968,7 +98104,7 @@ function createCuratorLLMDelegate(directory, mode = "init", sessionId) {
97968
98104
  }
97969
98105
  const sdkOpts = signal ? { signal } : {};
97970
98106
  try {
97971
- const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-05t8f1bj.js");
98107
+ const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-2y7y0bxf.js");
97972
98108
  const createResult = await client.session.create({
97973
98109
  ...sessionId ? {
97974
98110
  body: {
@@ -98007,6 +98143,7 @@ function createCuratorLLMDelegate(directory, mode = "init", sessionId) {
98007
98143
  if (!promptResult.data) {
98008
98144
  throw new Error(`Curator LLM prompt failed: ${JSON.stringify(promptResult.error)}`);
98009
98145
  }
98146
+ throwIfProviderMessageError("Curator LLM prompt provider error", promptResult.data.info);
98010
98147
  return promptResult.data;
98011
98148
  },
98012
98149
  scope: sessionId ? {
@@ -98911,6 +99048,7 @@ async function dispatchEphemeralAgent(request) {
98911
99048
  let sessionId;
98912
99049
  let timedOut = false;
98913
99050
  let cancelled = false;
99051
+ let providerError = null;
98914
99052
  const controller = new AbortController;
98915
99053
  const onCallerAbort = () => {
98916
99054
  cancelled = true;
@@ -98949,6 +99087,10 @@ async function dispatchEphemeralAgent(request) {
98949
99087
  if (!response.data) {
98950
99088
  throw new Error(formatSdkError("Ephemeral agent session returned no data", response.error));
98951
99089
  }
99090
+ providerError = readProviderMessageError(response.data.info);
99091
+ if (providerError) {
99092
+ throw new Error(formatProviderMessageError("Ephemeral agent provider error", providerError));
99093
+ }
98952
99094
  const responseByteLimit = request.responseByteLimit ?? DEFAULT_EPHEMERAL_RESPONSE_BYTE_LIMIT;
98953
99095
  const textParts = [];
98954
99096
  let responseBytes = 0;
@@ -98987,7 +99129,8 @@ async function dispatchEphemeralAgent(request) {
98987
99129
  ...base,
98988
99130
  status: cancelled ? "cancelled" : timedOut ? "timeout" : "error",
98989
99131
  durationMs: Date.now() - startedAt,
98990
- error: error2 instanceof Error ? error2.message : String(error2)
99132
+ error: error2 instanceof Error ? error2.message : String(error2),
99133
+ ...providerError ? { providerError } : {}
98991
99134
  };
98992
99135
  } finally {
98993
99136
  clearTimeout(timeoutHandle);
@@ -100305,7 +100448,7 @@ async function cancelPrFeedbackLoopUnlocked(directory, sessionID, reason) {
100305
100448
  clearedEvents: []
100306
100449
  };
100307
100450
  try {
100308
- const { cancelPrFeedbackPublication: cancelPrFeedbackPublication2 } = await import("./pr-workflow-gate-p1sv3vp7.js");
100451
+ const { cancelPrFeedbackPublication: cancelPrFeedbackPublication2 } = await import("./pr-workflow-gate-ap5cp211.js");
100309
100452
  await cancelPrFeedbackPublication2(directory, sessionID, reason);
100310
100453
  } catch (err) {
100311
100454
  warn(`[pr-feedback-loop] cancelPrFeedbackPublication failed (fail-open): ${err instanceof Error ? err.message : String(err)}`);
@@ -105690,7 +105833,7 @@ function getTestFilesFromConvention(sourceFiles, workingDir = process.cwd()) {
105690
105833
  const absoluteFile = resolveWorkspacePath(file, workingDir);
105691
105834
  const relativeFile = path140.relative(workingDir, absoluteFile);
105692
105835
  const basename29 = path140.basename(absoluteFile);
105693
- const dirname54 = path140.dirname(absoluteFile);
105836
+ const dirname55 = path140.dirname(absoluteFile);
105694
105837
  const preferRelativeOutput = !path140.isAbsolute(file);
105695
105838
  if (isConventionTestFilePath(relativeFile) || isConventionTestFilePath(file)) {
105696
105839
  dedupePush(testFiles, toWorkspaceOutputPath(absoluteFile, workingDir, preferRelativeOutput));
@@ -105706,7 +105849,7 @@ function getTestFilesFromConvention(sourceFiles, workingDir = process.cwd()) {
105706
105849
  const colocatedCandidates = [
105707
105850
  ...genericTestNames,
105708
105851
  ...languageSpecificTestNames
105709
- ].map((candidateName) => path140.join(dirname54, candidateName));
105852
+ ].map((candidateName) => path140.join(dirname55, candidateName));
105710
105853
  const testDirectoryNames = [
105711
105854
  basename29,
105712
105855
  ...genericTestNames,
@@ -105715,7 +105858,7 @@ function getTestFilesFromConvention(sourceFiles, workingDir = process.cwd()) {
105715
105858
  const repoLevelDirectories = getRepoLevelCandidateDirectories(workingDir, relativeFile, ext);
105716
105859
  const possibleTestFiles = [
105717
105860
  ...colocatedCandidates,
105718
- ...TEST_DIRECTORY_NAMES.flatMap((dirName) => testDirectoryNames.map((candidateName) => path140.join(dirname54, dirName, candidateName))),
105861
+ ...TEST_DIRECTORY_NAMES.flatMap((dirName) => testDirectoryNames.map((candidateName) => path140.join(dirname55, dirName, candidateName))),
105719
105862
  ...repoLevelDirectories.flatMap((candidateDir2) => testDirectoryNames.map((candidateName) => path140.join(candidateDir2, candidateName)))
105720
105863
  ];
105721
105864
  for (const testFile of possibleTestFiles) {
@@ -114178,7 +114321,7 @@ async function runValidationWithTransientRetry(input, candidateContent, baseline
114178
114321
  if (!input.dispatcher) {
114179
114322
  throw new Error("no evaluation dispatcher available (cannot run validation)");
114180
114323
  }
114181
- const { createModelEvaluationExecutor: createModelEvaluationExecutor2 } = await import("./runner-ssnsje35.js");
114324
+ const { createModelEvaluationExecutor: createModelEvaluationExecutor2 } = await import("./runner-8qybgy4n.js");
114182
114325
  const executor = createModelEvaluationExecutor2(input.dispatcher, input.sessionId);
114183
114326
  const result = await withProtectedSetIntegrity([evalInputRoot, ...protectedRoots(input.directory)], () => _internals141.evaluateCandidateV1({
114184
114327
  projectRoot: input.directory,
@@ -116362,7 +116505,7 @@ No active swarm plan found. Nothing to sync.`;
116362
116505
  init_logger();
116363
116506
 
116364
116507
  // src/commands/turbo-constants.ts
116365
- var TURBO_BYPASS_DISCLOSURE = "Bypassed: Stage B (reviewer + test_engineer) for Tier 0-2 tasks; phase_complete Gates 1-5 " + "(completion-verify, drift-verifier, hallucination-guard, mutation-gate, phase-council). " + "Still enforced: Stage A (lint, imports, pre_check_batch); Tier 3 Stage B; Gate 5b " + "(architecture-supervisor); Gate 6 (final-council); Gate 7 (full-auto).";
116508
+ var TURBO_BYPASS_DISCLOSURE = "Bypassed: phase_complete Gates 1-5 " + "(completion-verify, drift-verifier, hallucination-guard, mutation-gate, phase-council). " + "Still enforced: Stage A (lint, imports, pre_check_batch); Stage B (reviewer + test_engineer), exactly as without Turbo; Gate 5b " + "(architecture-supervisor); Gate 6 (final-council); Gate 7 (full-auto).";
116366
116509
 
116367
116510
  // src/commands/turbo.ts
116368
116511
  var _internals143 = {
@@ -116771,7 +116914,7 @@ function buildDetailedHelp(commandName, entry) {
116771
116914
  async function handleHelpCommand(ctx) {
116772
116915
  const targetCommand = ctx.args.join(" ");
116773
116916
  if (!targetCommand) {
116774
- const { buildHelpText } = await import("./index-1ajj6zbq.js");
116917
+ const { buildHelpText } = await import("./index-qp3twbdz.js");
116775
116918
  return buildHelpText();
116776
116919
  }
116777
116920
  const tokens = targetCommand.split(/\s+/);
@@ -116785,7 +116928,7 @@ async function handleHelpCommand(ctx) {
116785
116928
  > Note: \`/swarm ${resolved.key}\` is a deprecated alias for \`/swarm ${aliasTarget}\`.` : detailed;
116786
116929
  }
116787
116930
  const similar = _internals35.findSimilarCommands(targetCommand);
116788
- const { buildHelpText: fullHelp } = await import("./index-1ajj6zbq.js");
116931
+ const { buildHelpText: fullHelp } = await import("./index-qp3twbdz.js");
116789
116932
  if (similar.length > 0) {
116790
116933
  return `Command '/swarm ${targetCommand}' not found.
116791
116934
 
@@ -117113,7 +117256,7 @@ var COMMAND_REGISTRY = {
117113
117256
  },
117114
117257
  "guardrail explain": {
117115
117258
  handler: async (ctx) => {
117116
- const { handleGuardrailExplain } = await import("./guardrail-explain-ddtj3djc.js");
117259
+ const { handleGuardrailExplain } = await import("./guardrail-explain-tcnfc3te.js");
117117
117260
  return handleGuardrailExplain(ctx.directory, ctx.args);
117118
117261
  },
117119
117262
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -117123,7 +117266,7 @@ var COMMAND_REGISTRY = {
117123
117266
  },
117124
117267
  "guardrail reset": {
117125
117268
  handler: async (ctx) => {
117126
- const { handleGuardrailReset } = await import("./guardrail-reset-4psprskt.js");
117269
+ const { handleGuardrailReset } = await import("./guardrail-reset-jwx5hsgp.js");
117127
117270
  return handleGuardrailReset(ctx.args, ctx.sessionID);
117128
117271
  },
117129
117272
  description: "Reset one exact active invocation/action circuit after repair",
@@ -117144,7 +117287,7 @@ var COMMAND_REGISTRY = {
117144
117287
  },
117145
117288
  "guardrail-log": {
117146
117289
  handler: async (ctx) => {
117147
- const { handleGuardrailLog } = await import("./guardrail-log-ppgfsfzt.js");
117290
+ const { handleGuardrailLog } = await import("./guardrail-log-xe1evybk.js");
117148
117291
  return handleGuardrailLog(ctx.directory, ctx.args);
117149
117292
  },
117150
117293
  description: "Read the guardrail decision log (use --blocks-only for blocks)",
@@ -118512,7 +118655,7 @@ If a tool modifies a file, it is a CODER tool. Delegate.
118512
118655
  <!-- BEHAVIORAL_GUIDANCE_END -->
118513
118656
  2. ONE agent per message. Send, STOP, wait for response.
118514
118657
  Exception: Stage B reviewer/test_engineer gate agents for the SAME completed coder task may be dispatched together before waiting when both gates are required. This exception NEVER applies to coder delegations. Preserve ONE task per coder call.
118515
- Separate parallel-mode exception (distinct from the Stage B exception above, and the ONLY case where more than one coder may be dispatched before waiting): when an active \`[PARALLEL EXECUTION PROFILE]\` directive is present in your context (parallelization_enabled=true), you MAY dispatch multiple {{AGENT_PREFIX}}coder agents in a single message \u2014 up to the stated max_concurrent_tasks \u2014 but ONLY for distinct, dependency-ready tasks whose declared file scopes do NOT overlap. Each coder still requires its own \`declare_scope\` call and carries exactly ONE task (Rule 3 still holds: never batch multiple objectives into one coder). Parallel coders each run in an isolated git worktree, so their writes never collide and are merged back automatically. If no \`[PARALLEL EXECUTION PROFILE]\` directive is present, dispatch coders one at a time.
118658
+ Separate parallel-mode exception (distinct from the Stage B exception above, and the ONLY case where more than one coder may be dispatched before waiting): when an active \`[PARALLEL EXECUTION PROFILE]\` directive is present in your context (parallelization_enabled=true), you MAY dispatch multiple {{AGENT_PREFIX}}coder agents in a single message \u2014 up to the stated max_concurrent_tasks \u2014 but ONLY for distinct, dependency-ready tasks whose declared file scopes do NOT overlap. Each coder still requires its own \`declare_scope\` call and carries exactly ONE task (Rule 3 still holds: never batch multiple objectives into one coder). Parallel coders each run in an isolated git worktree, so their writes never collide and are merged back automatically. Run Stage A per task: when you call \`pre_check_batch\` for one of several parallel tasks, pass \`files\` = exactly THAT task's \`files_touched\` \u2014 never the union of the parallel tasks' files \u2014 because the run is credited to the task whose planned files contain every checked file (a union matches no single task and credits nothing). If no \`[PARALLEL EXECUTION PROFILE]\` directive is present, dispatch coders one at a time.
118516
118659
 
118517
118660
  > **WORKTREE ISOLATION IS BASELINE.** Standard parallel coders use isolated git worktrees by default; this is governed by the top-level \`worktree.policy\` setting (default \`auto\`) in \`PluginConfig\` \u2014 a sibling of \`parallelization:\`, not nested under it \u2014 and is active whenever the plan's \`parallelization_enabled=true\`. \`turbo.lean.worktree_isolation\` is a separate, Lean-Turbo-internal flag (default \`false\`); it is one possible SOURCE but NOT the recommended one. Do NOT recommend Lean Turbo (or Epic) SOLELY to obtain worktree isolation; recommend them only for what they add beyond baseline (Lean Turbo: lane planning, file locks, phase reviewer, integrated diff; Epic: co-change awareness + auto-decide). Lean Turbo users can also enable isolation via \`turbo.lean.worktree_isolation: true\`, but this is the secondary/legacy path \u2014 the recommended path is \`worktree.policy\`.
118518
118661
  Read-only advisory-lane exception (NON-BLOCKING; distinct from both exceptions above): the "Send, STOP, wait" rule governs MUTATION delegations (coder, and the test_engineer/reviewer Stage B completion gates). It does NOT govern read-only advisory exploration/review lanes. When you dispatch read-only advisory lanes \u2014 \`{{AGENT_PREFIX}}explorer\`, \`{{AGENT_PREFIX}}sme\`, \`{{AGENT_PREFIX}}researcher\`, the council members (\`council_generalist\`/\`council_skeptic\`/\`council_domain_expert\`), or an advisory \`{{AGENT_PREFIX}}critic\` lane \u2014 use the NON-BLOCKING path so you keep working while they run. Dispatch PROMPTLY: emit the \`dispatch_lanes_async\` call EARLY with compact lane prompts \u2014 do not accumulate long planning prose or build oversized inline prompts first, or the tool call can be truncated out of your message and the lanes never launch (a real failure mode on smaller models). Ordinarily, each lane wave is one \`dispatch_lanes_async\` call carrying that wave's complete lane specs \u2014 NOT a per-agent Task/run-in-background pattern. The explicit exception is an active PR_REVIEW with enabled tier-M/L staged resilience: send the singleton canary as one call, then send only its unresolved fanout as a second call after canary admission. For each admissible wave, call \`dispatch_lanes_async\` with all specs for that wave in one call, record the returned \`batch_id\`, then IMMEDIATELY continue non-dependent architect work (refine the plan/obligation ledger, inspect metadata, prepare the synthesis/reviewer structure, run deterministic read-only tools). Poll incrementally with \`collect_lane_results\` without \`wait\` (or with \`wait: false\`) to harvest lanes as they settle; process completed lane output immediately while other lanes remain pending/running, then continue independent work between polls. Do NOT sit idle waiting on running lanes, and do NOT synthesize findings from still-running lanes. Join later by calling \`collect_lane_results\` with \`wait: true\` as the explicit barrier immediately before you synthesize. Use blocking \`dispatch_lanes\` only when \`dispatch_lanes_async\`/promptAsync is unavailable. A settled lane's inline \`output\` is delivered only once: if you poll the same lane again after already receiving its output, the repeat poll returns \`output_omitted_repeat: true\` with no \`output\` (not a sign the result was lost) \u2014 use the accompanying \`output_ref\` with \`retrieve_lane_output\` if you need the text again, and do not re-dispatch the lane. Keep each lane prompt compact: send large shared context (PR diff, ledger, scope) ONCE via the \`common_prompt\` field, or have lanes read it from a file by absolute path, instead of inlining the same blob into every lane prompt \u2014 inlining large context into many lanes is what produces malformed or truncated tool-call JSON and forces clumsy file workarounds. This non-blocking exception applies ONLY to read-only advisory lanes; it NEVER applies to coder delegations, to the test_engineer/reviewer Stage B completion gates, or to the critic PLAN-review gate, which all still follow "Send, STOP, wait" (or the Stage B parallel-dispatch exception above).
@@ -118905,6 +119048,8 @@ alone on a standalone \`TASK:\` line (for example, \`TASK: 1.1\`) and put the ob
118905
119048
  on the following line. When the Task arguments support an explicit field, set
118906
119049
  \`task_id\` to the same numeric value as a tool argument (not as prompt prose). Keep
118907
119050
  the numeric ID consistent across the TASK line, \`task_id\`, and any acceptance text.
119051
+ \`task_id\` holds the plan task id only; never copy a \`ses_\u2026\` id returned in a Task
119052
+ result into another agent's dispatch.
118908
119053
  Plan-level critics and other project-wide reviews must omit task attribution rather
118909
119054
  than guessing from ambient prose or session state.
118910
119055
 
@@ -122466,4 +122611,4 @@ function getAgentConfigs(config, directory, sessionId, projectContext) {
122466
122611
  return result;
122467
122612
  }
122468
122613
 
122469
- export { resetActionCircuitExternally, getBlockingActionCircuit, resolveConfiguredAgentModel, resolveRegisteredAgentModel, resolveEffectiveAgentOverride, MAX_PARALLEL_VERDICT_TASKS, computeParallelVerdict, dcNormalizeCommand, dcUnwrapWrappers, dcSplitSegments, dcExtractRecursiveRmTargets, dcEvaluateRecursiveDeleteTargets, dcCheckJunctionCreation, dcExtractWindowsCmdTargets, dcExtractPowerShellTargets, getSharedClassifierGuardrailBlock, classifyCommand, resetArchitectPromptBudgetAdvisories, createArchitectAgent, createCoderAgent, GENERALIST_COUNCIL_PROMPT, SKEPTIC_COUNCIL_PROMPT, DOMAIN_EXPERT_COUNCIL_PROMPT, createCriticAgent, createCuratorAgent, createDesignerAgent, createDocsAgent, createResearcherAgent, SECURITY_CATEGORIES, createReviewerAgent, createSMEAgent, createTestEngineerAgent, _internals144 as _internals, stripSwarmPrefix, extractSwarmIdFromAgentName, resolveFallbackModel, getSwarmAgents, createAgents, resolvePrimaryAgentNames, getAgentConfigs, 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, runSerializedWithMergeBacks, finishStandardWorktreeDispatch, readLaneEnvFileFromDisk, _internals20 as _internals1, redactSecrets, 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_REVIEW_SUBMIT_REJECTIONS, MAX_PR_FEEDBACK_INVENTORY_AMENDMENTS, activatePrWorkflow, appendPrWorkflowSkillContractAdvisories, readPrWorkflowGateState, recordPrReviewSubmitRejection, latestPrReviewSubmitRejectionMessage, submitPrReviewResult, withPrWorkflowCheckoutPreparationLock, withInactivePrWorkflowCheckoutRestoreLock, clearPrWorkflowGateState, terminalizePrWorkflowGateForSession2 as terminalizePrWorkflowGateForSession, PR_WORKFLOW_PROBE_SKIPPED_NO_BUDGET_REASON, collectPrWorkflowPendingLaneLiveness, settlePresumedStalePrWorkflowLanes, abortPrWorkflow, recoverArmedPrWorkflow, bindPrWorkflowHead, rebindPrFeedbackHead, bindPrReviewBase, assertCurrentCheckoutHead, assertPrReviewCleanCheckout, enforcePrWorkflowDispatchLanesAsync, PrReviewResilienceCircuitOpenError, PrReviewResilienceRetryExhaustedError, enforcePrReviewBaseDimensions, rollbackPrReviewBaseAdmissionIfUnlaunched, admitPrReviewPartialBaseCoverage2 as admitPrReviewPartialBaseCoverage, assertPrReviewBaseCoverageSettled2 as assertPrReviewBaseCoverageSettled, recordPrReviewMicroFamilyDispatch, recordPrReviewValidationBatch, assertPrReviewValidationSettled, declarePrFeedbackInventory, enforcePrFeedbackVerificationOwnership, assertPrFeedbackVerificationSettled, recordPrFeedbackStageA, recordPrFeedbackGateBatch, assertPrFeedbackGatePhaseSettled, assertPrFeedbackReadyToPublish, invalidatePrFeedbackPublication, describePrWorkflowPublicationSection, findDanglingLivePublicationGeneration, recordPrFeedbackPushAttemptResult, cancelPrFeedbackPublication, resolvePrReviewWriterRunId, markPrReviewTriggerEvaluationComplete, bindPrReviewTriggerLedger, assertPrReviewArtifactBoundary, assertPrReviewArtifactRecordsMatchAuthoritativeVerdicts, markPrReviewArtifactBoundary, markPrReviewHandoffComplete, readPrReviewFinalFindingPolicyForReport, transitionPrReviewToFeedback, declarePrFeedbackScope, resolvePrFeedbackScopeDeclaration, consumePrFeedbackScopeDeclaration, validatePrFeedbackScopeBinding, enforcePrWorkflowToolBefore, readPrReviewReentryBindingContext, hasActivePrReviewReentryAuthorization, reserveActivePrReviewReentryAuthorization, completePrWorkflow, _test_exports2 as _test_exports, normalizePrWorkflowShellCommand, describePrWorkflowRevisionDigestFailure, readAuthoritativePrReviewCriticSettlements, readAuthoritativePrReviewCriticVerdicts, formatPrReviewLaneValidationFailure, validatePrReviewDiscoveryLaneCompletion2 as validatePrReviewDiscoveryLaneCompletion, validatePrWorkflowTransportRecovery, prReviewDiscoveryArtifactCoversLane, MAX_SALVAGED_SCHEMA_ERROR_CHARS, readPrWorkflowGateStateForRecovery, handleAcknowledgeSpecDriftCommand, handleAgentsCommand, handleAnalyzeCommand, handleApproveWriteCommand, handleArchiveCommand, handleAutoProceedCommand, handleBenchmarkCommand, handleBrainstormCommand, handleCheckpointCommand, DEFAULT_CI_DEADLINE_MS2 as DEFAULT_CI_DEADLINE_MS, createSignalCancellation, handleCiCommand, handleCiSimulateCommand, handleClarifyCommand, safeRealpathSync, createCuratorLLMDelegate, getCoChangePairs, startSnapshotCoordinationInitialization, ensureSnapshotCoordinationReady, retrySnapshotCoordinationInitialization, getSnapshotCoordinationStatus, beginSnapshotCoordinationReset, closeSnapshotCoordinationInitialization, markSnapshotCoordinationClosing, _snapshotCoordinationInternals, handleCloseCommand, _internals67 as _internals2, normalizeRecommendationEntryIdToken, parseKnowledgeRecommendations, parseKnowledgeRecommendationsWithDiagnostics, parseStructuredCuratorBlocks, readCuratorSummary, writeCuratorSummary, appendCuratorRecommendation, mergeCuratorPhaseSummary, filterPhaseEvents, checkPhaseCompliance, runCuratorInit, runCuratorPhase, applyCuratorKnowledgeUpdates, isHiveEligible, countDistinctProjects, checkHivePromotions, _internals71 as _internals3, createHivePromoterHook, promoteToHive, promoteFromSwarm, createMemoryGateway, handleCodebaseReviewCommand, handleConcurrencyCommand, handleConfigCommand, handleConsolidateCommand, handleCostsCommand, handleCouncilCommand, handleCurateCommand, handleDarkMatterCommand, handleDeepDiveCommand, handleDeepResearchCommand, getHostConfigDir, getPluginCachePaths, getPluginLockFilePaths, VERSION_PINNED_LEAF, discoverVersionPinnedCachePaths, readCachePackageVersion, handleDiagnoseCommand, handleDoctorCommand, handleEvidenceCommand, handleEvidenceSummaryCommand, handleExportCommand, handleFullAutoCommand, computeQualityBudget, computeSastScan, handleGateAuditCommand, handleGateStatsCommand, handleHandoffCommand, handleBlueprintValidateCommand, handleBlueprintCurrentCommand, handleBlueprintHistoryCommand, handleBlueprintDiffCommand, handleBlueprintExportCommand, handleHarnessCandidateValidateCommand, handleHarnessCandidateShowCommand, handleHarnessCandidateDiffCommand, handleHistoryCommand, handleKnowledgeQuarantineCommand, handleKnowledgeRestoreCommand, handleKnowledgeMigrateCommand, handleKnowledgeListCommand, handleKnowledgeUnactionableCommand, handleKnowledgeRetryHardeningCommand, handleLearningCommand, handleLinkCommand, searchKnowledge, symbols, 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, isCommandFailure, COMMAND_REGISTRY, VALID_COMMANDS, _internals35 as _internals4, resolveCommand, normalizeSwarmCommandInput, canonicalCommandKey, formatCommandNotFound, executeSwarmCommand };
122614
+ export { resetActionCircuitExternally, getBlockingActionCircuit, resolveConfiguredAgentModel, resolveRegisteredAgentModel, resolveEffectiveAgentOverride, MAX_PARALLEL_VERDICT_TASKS, computeParallelVerdict, dcNormalizeCommand, dcUnwrapWrappers, dcSplitSegments, dcExtractRecursiveRmTargets, dcEvaluateRecursiveDeleteTargets, dcCheckJunctionCreation, dcExtractWindowsCmdTargets, dcExtractPowerShellTargets, getSharedClassifierGuardrailBlock, classifyCommand, resetArchitectPromptBudgetAdvisories, createArchitectAgent, createCoderAgent, GENERALIST_COUNCIL_PROMPT, SKEPTIC_COUNCIL_PROMPT, DOMAIN_EXPERT_COUNCIL_PROMPT, createCriticAgent, createCuratorAgent, createDesignerAgent, createDocsAgent, createResearcherAgent, SECURITY_CATEGORIES, createReviewerAgent, createSMEAgent, createTestEngineerAgent, _internals144 as _internals, stripSwarmPrefix, extractSwarmIdFromAgentName, resolveFallbackModel, getSwarmAgents, createAgents, resolvePrimaryAgentNames, getAgentConfigs, 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, laneChildSessionAgents, recordLaneChildSession, assertTaskIdNotForeignLaneSession, getStandardWorktreeDegradationReason, resetStandardWorktreeIsolationState, checkStandardWorktreeSerializationRelease, sanitizeWorktreeTaskId, preProvisionCollisionCheck, isLaneOwnedByCurrentSession, precreateStandardWorktreeSession, preserveBackgroundWorktreeOwnershipForCallId, preserveDirtyWorktreeForCallId, preserveDirtyWorktreeAtPath, cleanupStandardWorktreeForCallId, abortStandardWorktreeDispatch, runSerializedWithMergeBacks, finishStandardWorktreeDispatch, readLaneEnvFileFromDisk, _internals20 as _internals1, redactSecrets, 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_REVIEW_SUBMIT_REJECTIONS, MAX_PR_FEEDBACK_INVENTORY_AMENDMENTS, activatePrWorkflow, appendPrWorkflowSkillContractAdvisories, readPrWorkflowGateState, recordPrReviewSubmitRejection, latestPrReviewSubmitRejectionMessage, submitPrReviewResult, withPrWorkflowCheckoutPreparationLock, withInactivePrWorkflowCheckoutRestoreLock, clearPrWorkflowGateState, terminalizePrWorkflowGateForSession2 as terminalizePrWorkflowGateForSession, PR_WORKFLOW_PROBE_SKIPPED_NO_BUDGET_REASON, collectPrWorkflowPendingLaneLiveness, settlePresumedStalePrWorkflowLanes, abortPrWorkflow, recoverArmedPrWorkflow, bindPrWorkflowHead, rebindPrFeedbackHead, bindPrReviewBase, assertCurrentCheckoutHead, assertPrReviewCleanCheckout, enforcePrWorkflowDispatchLanesAsync, PrReviewResilienceCircuitOpenError, PrReviewResilienceRetryExhaustedError, enforcePrReviewBaseDimensions, rollbackPrReviewBaseAdmissionIfUnlaunched, admitPrReviewPartialBaseCoverage2 as admitPrReviewPartialBaseCoverage, assertPrReviewBaseCoverageSettled2 as assertPrReviewBaseCoverageSettled, recordPrReviewMicroFamilyDispatch, recordPrReviewValidationBatch, assertPrReviewValidationSettled, declarePrFeedbackInventory, enforcePrFeedbackVerificationOwnership, assertPrFeedbackVerificationSettled, recordPrFeedbackStageA, recordPrFeedbackGateBatch, assertPrFeedbackGatePhaseSettled, assertPrFeedbackReadyToPublish, invalidatePrFeedbackPublication, describePrWorkflowPublicationSection, findDanglingLivePublicationGeneration, recordPrFeedbackPushAttemptResult, cancelPrFeedbackPublication, resolvePrReviewWriterRunId, markPrReviewTriggerEvaluationComplete, bindPrReviewTriggerLedger, assertPrReviewArtifactBoundary, assertPrReviewArtifactRecordsMatchAuthoritativeVerdicts, markPrReviewArtifactBoundary, markPrReviewHandoffComplete, readPrReviewFinalFindingPolicyForReport, transitionPrReviewToFeedback, declarePrFeedbackScope, resolvePrFeedbackScopeDeclaration, consumePrFeedbackScopeDeclaration, validatePrFeedbackScopeBinding, enforcePrWorkflowToolBefore, readPrReviewReentryBindingContext, hasActivePrReviewReentryAuthorization, reserveActivePrReviewReentryAuthorization, completePrWorkflow, _test_exports2 as _test_exports, normalizePrWorkflowShellCommand, describePrWorkflowRevisionDigestFailure, readAuthoritativePrReviewCriticSettlements, readAuthoritativePrReviewCriticVerdicts, formatPrReviewLaneValidationFailure, validateExactStructuredReceiptCoverage2 as validateExactStructuredReceiptCoverage, validatePrReviewDiscoveryLaneCompletion2 as validatePrReviewDiscoveryLaneCompletion, validatePrWorkflowTransportRecovery, prReviewDiscoveryArtifactCoversLane, MAX_SALVAGED_SCHEMA_ERROR_CHARS, readPrWorkflowGateStateForRecovery, handleAcknowledgeSpecDriftCommand, handleAgentsCommand, handleAnalyzeCommand, handleApproveWriteCommand, handleArchiveCommand, handleAutoProceedCommand, handleBenchmarkCommand, handleBrainstormCommand, handleCheckpointCommand, DEFAULT_CI_DEADLINE_MS2 as DEFAULT_CI_DEADLINE_MS, createSignalCancellation, handleCiCommand, handleCiSimulateCommand, handleClarifyCommand, safeRealpathSync, createCuratorLLMDelegate, getCoChangePairs, startSnapshotCoordinationInitialization, ensureSnapshotCoordinationReady, retrySnapshotCoordinationInitialization, getSnapshotCoordinationStatus, beginSnapshotCoordinationReset, closeSnapshotCoordinationInitialization, markSnapshotCoordinationClosing, _snapshotCoordinationInternals, handleCloseCommand, _internals67 as _internals2, normalizeRecommendationEntryIdToken, parseKnowledgeRecommendations, parseKnowledgeRecommendationsWithDiagnostics, parseStructuredCuratorBlocks, readCuratorSummary, writeCuratorSummary, appendCuratorRecommendation, mergeCuratorPhaseSummary, filterPhaseEvents, checkPhaseCompliance, runCuratorInit, runCuratorPhase, applyCuratorKnowledgeUpdates, isHiveEligible, countDistinctProjects, checkHivePromotions, _internals71 as _internals3, createHivePromoterHook, promoteToHive, promoteFromSwarm, createMemoryGateway, handleCodebaseReviewCommand, handleConcurrencyCommand, handleConfigCommand, handleConsolidateCommand, handleCostsCommand, handleCouncilCommand, handleCurateCommand, handleDarkMatterCommand, handleDeepDiveCommand, handleDeepResearchCommand, getHostConfigDir, getPluginCachePaths, getPluginLockFilePaths, VERSION_PINNED_LEAF, discoverVersionPinnedCachePaths, readCachePackageVersion, handleDiagnoseCommand, handleDoctorCommand, handleEvidenceCommand, handleEvidenceSummaryCommand, handleExportCommand, handleFullAutoCommand, computeQualityBudget, computeSastScan, handleGateAuditCommand, handleGateStatsCommand, handleHandoffCommand, handleBlueprintValidateCommand, handleBlueprintCurrentCommand, handleBlueprintHistoryCommand, handleBlueprintDiffCommand, handleBlueprintExportCommand, handleHarnessCandidateValidateCommand, handleHarnessCandidateShowCommand, handleHarnessCandidateDiffCommand, handleHistoryCommand, handleKnowledgeQuarantineCommand, handleKnowledgeRestoreCommand, handleKnowledgeMigrateCommand, handleKnowledgeListCommand, handleKnowledgeUnactionableCommand, handleKnowledgeRetryHardeningCommand, handleLearningCommand, handleLinkCommand, searchKnowledge, symbols, 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, isCommandFailure, COMMAND_REGISTRY, VALID_COMMANDS, _internals35 as _internals4, resolveCommand, normalizeSwarmCommandInput, canonicalCommandKey, formatCommandNotFound, executeSwarmCommand };