opencode-swarm 7.164.4 → 7.164.5

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 (74) hide show
  1. package/dist/cli/{coder-settlement-zzy2egsx.js → coder-settlement-x9wbqx46.js} +8 -8
  2. package/dist/cli/{config-doctor-62xd5far.js → config-doctor-axd9d6hs.js} +2 -2
  3. package/dist/cli/{core-7kdmc7h9.js → core-f1a1fk13.js} +1 -1
  4. package/dist/cli/{curation-policy-913dnxqq.js → curation-policy-2cy7wejw.js} +5 -5
  5. package/dist/cli/{curator-4s6ekk85.js → curator-b104f7a7.js} +29 -29
  6. package/dist/cli/{curator-llm-factory-q3t3r632.js → curator-llm-factory-cv7ft0mb.js} +29 -29
  7. package/dist/cli/{evidence-summary-service-gw936xgz.js → evidence-summary-service-5xsjs3x3.js} +12 -12
  8. package/dist/cli/{gate-evidence-4we18rhr.js → gate-evidence-ypja4156.js} +5 -5
  9. package/dist/cli/{guardrail-explain-jjbnrcqn.js → guardrail-explain-cvha7b9p.js} +30 -30
  10. package/dist/cli/{guardrail-log-9d4f09qt.js → guardrail-log-6t4e2j5f.js} +6 -6
  11. package/dist/cli/{guardrail-reset-1hpd6bkj.js → guardrail-reset-es0bg976.js} +29 -29
  12. package/dist/cli/{hive-promoter-nr8dsxhe.js → hive-promoter-yzv5g7jy.js} +29 -29
  13. package/dist/cli/{index-7zbk1e24.js → index-0trtcm9n.js} +8 -8
  14. package/dist/cli/{index-stj85yx1.js → index-164m995b.js} +1 -1
  15. package/dist/cli/{index-k1m9214q.js → index-1dz8hv7p.js} +3 -3
  16. package/dist/cli/{index-k8vy89vm.js → index-1q2dwv69.js} +1 -1
  17. package/dist/cli/{index-x9ayhkkx.js → index-25jze7sf.js} +1 -1
  18. package/dist/cli/{index-qfrrcdhj.js → index-25z5qwkk.js} +1 -1
  19. package/dist/cli/{index-qkwx4rrc.js → index-3gb7bw7h.js} +80 -69
  20. package/dist/cli/{index-ne38vr77.js → index-3rrc5x4v.js} +2 -2
  21. package/dist/cli/{index-5k226hxp.js → index-4emx8hhh.js} +1 -1
  22. package/dist/cli/{index-v7a8e7rv.js → index-4jmtdtm9.js} +2 -2
  23. package/dist/cli/{index-jba9jgse.js → index-4krjn1gn.js} +2 -2
  24. package/dist/cli/{index-z408nj03.js → index-50s9q4c1.js} +2 -2
  25. package/dist/cli/{index-vx28633q.js → index-553veay1.js} +75 -23
  26. package/dist/cli/{index-4tgtbptw.js → index-7rat6nyh.js} +3 -3
  27. package/dist/cli/{index-q9yz8da4.js → index-8h9nng7f.js} +4 -4
  28. package/dist/cli/{index-x63jqvj3.js → index-aaqbhn9h.js} +2 -2
  29. package/dist/cli/{index-nwpg81ke.js → index-aper29nf.js} +1 -1
  30. package/dist/cli/{index-pztdbtgw.js → index-ea7sehgy.js} +3 -3
  31. package/dist/cli/{index-cf54ftj1.js → index-er8ba9be.js} +3 -3
  32. package/dist/cli/{index-08e6x59x.js → index-fwebva1m.js} +5 -5
  33. package/dist/cli/{index-gt6p21cs.js → index-fxxja498.js} +1 -1
  34. package/dist/cli/{index-prammvxb.js → index-hnjkpk57.js} +1 -1
  35. package/dist/cli/{index-8fjx6k2s.js → index-j9a4fsxg.js} +1 -1
  36. package/dist/cli/{index-vzs3st30.js → index-maxz22c1.js} +7 -7
  37. package/dist/cli/{index-eh2k07pp.js → index-q0gtgwyr.js} +6 -6
  38. package/dist/cli/{index-t2tqbq62.js → index-rc6hec4j.js} +4 -4
  39. package/dist/cli/{index-xjw7j7et.js → index-s09b63xg.js} +5 -5
  40. package/dist/cli/{index-et9y4ga8.js → index-ssb67ff6.js} +31 -31
  41. package/dist/cli/{index-0m94jsss.js → index-wbnyc50b.js} +4 -4
  42. package/dist/cli/{index-yx3xqb0w.js → index-xm7dc14y.js} +3 -3
  43. package/dist/cli/{index-tme2kjvq.js → index-y42pra05.js} +3 -3
  44. package/dist/cli/{index-wzmchqry.js → index-yrsag0vs.js} +31 -52
  45. package/dist/cli/{index-a0jhxx5q.js → index-ywtcznk2.js} +12 -4
  46. package/dist/cli/index.js +29 -29
  47. package/dist/cli/{knowledge-escalator-hp1ctjpe.js → knowledge-escalator-evjd8g7y.js} +11 -11
  48. package/dist/cli/{knowledge-events-0qrenmng.js → knowledge-events-q46z1wy6.js} +9 -9
  49. package/dist/cli/{knowledge-link-f5g5d171.js → knowledge-link-ffmzf72f.js} +4 -4
  50. package/dist/cli/{knowledge-store-8er824g9.js → knowledge-store-z82f5x9k.js} +5 -5
  51. package/dist/cli/{knowledge-validator-0jd3htcj.js → knowledge-validator-19gbnxx2.js} +7 -7
  52. package/dist/cli/{pending-delegations-d1n5faxg.js → pending-delegations-t4cqk5ha.js} +4 -4
  53. package/dist/cli/{pr-subscriptions-s2b2yvbd.js → pr-subscriptions-3enjtq0k.js} +4 -4
  54. package/dist/cli/{pr-workflow-gate-51s842yy.js → pr-workflow-gate-3ecgfsge.js} +29 -29
  55. package/dist/cli/{runner-nkh65pcm.js → runner-wqy2hbxn.js} +5 -5
  56. package/dist/cli/{scan-cursor-gt55f3d6.js → scan-cursor-8wcy0dvf.js} +6 -6
  57. package/dist/cli/{schema-rpdz901j.js → schema-hsw9r2tm.js} +5 -1
  58. package/dist/cli/{scope-persistence-js1ywq04.js → scope-persistence-mbwt4grd.js} +8 -8
  59. package/dist/cli/{skill-generator-xsxes2w0.js → skill-generator-kg32a5jy.js} +13 -13
  60. package/dist/cli/{telemetry-9tfts5q2.js → telemetry-j14cj552.js} +1 -1
  61. package/dist/cli/{worktree-collision-ownership-54ca6mb8.js → worktree-collision-ownership-0rfw6kp3.js} +4 -4
  62. package/dist/cli/{worktree-isolation-haesnft8.js → worktree-isolation-qcwt09ve.js} +29 -29
  63. package/dist/config/index.d.ts +3 -3
  64. package/dist/config/loader.d.ts +34 -1
  65. package/dist/config/schema.d.ts +61 -7
  66. package/dist/index.js +59 -59
  67. package/dist/tools/build-check.d.ts +8 -0
  68. package/dist/tools/placeholder-scan.d.ts +10 -1
  69. package/dist/tools/pre-check-batch.d.ts +20 -8
  70. package/dist/tools/quality-budget.d.ts +2 -0
  71. package/dist/tools/sast-scan.d.ts +10 -2
  72. package/dist/tools/sbom-generate.d.ts +14 -0
  73. package/dist/tools/syntax-check.d.ts +11 -3
  74. package/package.json +1 -1
@@ -4,29 +4,29 @@ import {
4
4
  } from "./index-rz87mx1c.js";
5
5
  import {
6
6
  loadPluginConfigWithMeta
7
- } from "./index-vx28633q.js";
7
+ } from "./index-553veay1.js";
8
8
  import {
9
9
  KnowledgeConfigSchema,
10
10
  init_schema
11
- } from "./index-wzmchqry.js";
11
+ } from "./index-yrsag0vs.js";
12
12
  import {
13
13
  observeReceiptTransition
14
- } from "./index-stj85yx1.js";
14
+ } from "./index-164m995b.js";
15
15
  import {
16
16
  resolveHiveEventsPath
17
17
  } from "./index-ae75rja9.js";
18
18
  import {
19
19
  resolveKnowledgeStoreDir
20
- } from "./index-qfrrcdhj.js";
20
+ } from "./index-25z5qwkk.js";
21
21
  import {
22
22
  atomicWriteFile
23
- } from "./index-5k226hxp.js";
23
+ } from "./index-4emx8hhh.js";
24
24
  import {
25
25
  assertProjectRoot
26
- } from "./index-gt6p21cs.js";
26
+ } from "./index-fxxja498.js";
27
27
  import {
28
28
  emit
29
- } from "./index-k1m9214q.js";
29
+ } from "./index-1dz8hv7p.js";
30
30
  import {
31
31
  require_proper_lockfile
32
32
  } from "./index-7g4c7s5r.js";
@@ -2810,7 +2810,7 @@ async function applyKnowledgeVerdictFeedback(directory, options) {
2810
2810
  }
2811
2811
  let bumps = 0;
2812
2812
  if (deltas.length > 0) {
2813
- const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-8er824g9.js");
2813
+ const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-z82f5x9k.js");
2814
2814
  bumps = await bumpKnowledgeConfidenceBatch(directory, deltas, options?.floorOptions);
2815
2815
  }
2816
2816
  return {
@@ -6,7 +6,7 @@ import {
6
6
  pseudonymousRef,
7
7
  resolveLineageSalt,
8
8
  telemetry
9
- } from "./index-k1m9214q.js";
9
+ } from "./index-1dz8hv7p.js";
10
10
 
11
11
  // src/health/learning-health.ts
12
12
  import { promises as fs } from "fs";
@@ -217,7 +217,7 @@ var CATALOG_SOURCE = [
217
217
  category: "delegation",
218
218
  severity: "info",
219
219
  privacyClass: "pseudonymous",
220
- producer: "src/index.ts:642",
220
+ producer: "src/index.ts:643",
221
221
  consumers: CONSUMER_COST_CORRECTION,
222
222
  retentionOwnerIssue: ISSUE_COST_RETENTION,
223
223
  requiredWorkflowIds: REQUIRE_SESSION_AND_TASK,
@@ -230,7 +230,7 @@ var CATALOG_SOURCE = [
230
230
  category: "delegation",
231
231
  severity: "info",
232
232
  privacyClass: "pseudonymous",
233
- producer: "src/index.ts:1567",
233
+ producer: "src/index.ts:1573",
234
234
  consumers: NO_CONSUMERS,
235
235
  futureOwnerIssue: ISSUE_SINK,
236
236
  retentionOwnerIssue: ISSUE_COST_RETENTION,
@@ -244,7 +244,7 @@ var CATALOG_SOURCE = [
244
244
  category: "delegation",
245
245
  severity: "notice",
246
246
  privacyClass: "pseudonymous",
247
- producer: "src/index.ts:1587",
247
+ producer: "src/index.ts:1593",
248
248
  consumers: CONSUMER_COST_JOIN,
249
249
  retentionOwnerIssue: ISSUE_COST_RETENTION,
250
250
  requiredWorkflowIds: REQUIRE_SESSION,
@@ -6,7 +6,7 @@ import {
6
6
  PluginConfigSchema,
7
7
  init_schema,
8
8
  stripKnownSwarmPrefix
9
- } from "./index-wzmchqry.js";
9
+ } from "./index-yrsag0vs.js";
10
10
  import {
11
11
  ALL_AGENT_NAMES,
12
12
  init_constants
@@ -9,7 +9,7 @@ import {
9
9
  readEvaluationRun,
10
10
  saveEvaluationRun,
11
11
  saveTaskSetSnapshot
12
- } from "./index-jba9jgse.js";
12
+ } from "./index-4krjn1gn.js";
13
13
  import {
14
14
  canonicalHash,
15
15
  computeCandidateInputContentHash,
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  atomicWriteFile
4
- } from "./index-5k226hxp.js";
4
+ } from "./index-4emx8hhh.js";
5
5
  import {
6
6
  init_logger,
7
7
  warn
@@ -6,7 +6,7 @@ import {
6
6
  resolveExecutableFromPath,
7
7
  runEvaluation,
8
8
  runExternalTool
9
- } from "./index-x9ayhkkx.js";
9
+ } from "./index-25jze7sf.js";
10
10
  import {
11
11
  finalizeShellAuditForClose,
12
12
  isPolicyProtectedPath,
@@ -15,13 +15,13 @@ import {
15
15
  protectedRoots,
16
16
  redactDecisionLineForArchive,
17
17
  stableCanonicalStringify
18
- } from "./index-pztdbtgw.js";
18
+ } from "./index-ea7sehgy.js";
19
19
  import {
20
20
  detectStraySwarmDirs,
21
21
  readDoctorArtifact,
22
22
  removeStraySwarmDir,
23
23
  runConfigDoctor
24
- } from "./index-k8vy89vm.js";
24
+ } from "./index-1q2dwv69.js";
25
25
  import {
26
26
  MAX_TRANSIENT_RETRIES,
27
27
  archiveEvidence,
@@ -65,7 +65,7 @@ import {
65
65
  validateProjectRoot,
66
66
  validateSymlinkBoundary,
67
67
  validateTargetWithinRoot
68
- } from "./index-vzs3st30.js";
68
+ } from "./index-maxz22c1.js";
69
69
  import {
70
70
  EvaluationTaskV1Schema,
71
71
  GateAuditManifestV1Schema,
@@ -82,7 +82,7 @@ import {
82
82
  saveGateAuditResult,
83
83
  savePromotionDecision,
84
84
  saveTaskSetSnapshot
85
- } from "./index-jba9jgse.js";
85
+ } from "./index-4krjn1gn.js";
86
86
  import {
87
87
  canonicalHash,
88
88
  canonicalJson,
@@ -124,15 +124,15 @@ import {
124
124
  retireSkill,
125
125
  selectCandidateEntries,
126
126
  syncBundledProjectSkillsIfMissingAsync
127
- } from "./index-4tgtbptw.js";
127
+ } from "./index-7rat6nyh.js";
128
128
  import {
129
129
  readRecentEscalations
130
- } from "./index-xjw7j7et.js";
130
+ } from "./index-s09b63xg.js";
131
131
  import {
132
132
  alreadyCuratedThisGeneration,
133
133
  claimNextScanBatch,
134
134
  resolveCohortId
135
- } from "./index-x63jqvj3.js";
135
+ } from "./index-aaqbhn9h.js";
136
136
  import {
137
137
  CURATOR_INIT_PROMPT,
138
138
  CURATOR_PHASE_PROMPT,
@@ -169,7 +169,7 @@ import {
169
169
  listActive,
170
170
  subscribe,
171
171
  unsubscribe
172
- } from "./index-tme2kjvq.js";
172
+ } from "./index-y42pra05.js";
173
173
  import {
174
174
  clearWorktreeMergeStatus,
175
175
  getAllWorktreeMergeFailures,
@@ -181,7 +181,7 @@ import {
181
181
  listCoderSettlementWalStates,
182
182
  recoverCoderSettlement,
183
183
  recoverStaleCoderSettlements
184
- } from "./index-08e6x59x.js";
184
+ } from "./index-fwebva1m.js";
185
185
  import {
186
186
  parsePorcelainV2Snapshot,
187
187
  resolveCommitCountSince,
@@ -225,11 +225,11 @@ import {
225
225
  validateActionableFields,
226
226
  validateLesson,
227
227
  validateSkillPath
228
- } from "./index-t2tqbq62.js";
228
+ } from "./index-rc6hec4j.js";
229
229
  import {
230
230
  authorizeCuration,
231
231
  buildConfigFingerprintInput
232
- } from "./index-prammvxb.js";
232
+ } from "./index-hnjkpk57.js";
233
233
  import {
234
234
  cohortConfigFingerprint
235
235
  } from "./index-rtry5xyf.js";
@@ -260,12 +260,12 @@ import {
260
260
  transitionTaskWorkflowEvidence,
261
261
  withTaskEvidenceTransaction,
262
262
  writeWorkflowWalFile
263
- } from "./index-0m94jsss.js";
263
+ } from "./index-wbnyc50b.js";
264
264
  import {
265
265
  makeWorktreeBranchName,
266
266
  provisionWorktree,
267
267
  removeWorktree
268
- } from "./index-8fjx6k2s.js";
268
+ } from "./index-j9a4fsxg.js";
269
269
  import {
270
270
  DEFAULT_STALE_DELEGATION_TIMEOUT_MS,
271
271
  DELEGATION_COMPACTION_HIGH_WATER_BYTES,
@@ -298,7 +298,7 @@ import {
298
298
  scanBackgroundCoderReservationsForAdmission,
299
299
  scanDelegationsForRecovery,
300
300
  sweepStaleDelegations
301
- } from "./index-cf54ftj1.js";
301
+ } from "./index-er8ba9be.js";
302
302
  import {
303
303
  compositeSessionKey,
304
304
  sessionKeySuffix
@@ -309,7 +309,7 @@ import {
309
309
  clearAllScopes,
310
310
  clearScopeBindingFromDisk,
311
311
  clearScopeBindings
312
- } from "./index-q9yz8da4.js";
312
+ } from "./index-8h9nng7f.js";
313
313
  import {
314
314
  appendLedgerEvent,
315
315
  computePlanLedgerHash,
@@ -324,7 +324,7 @@ import {
324
324
  readPlanEpochIdentity,
325
325
  replayFromLedgerWithStatus,
326
326
  takeSnapshotEvent
327
- } from "./index-yx3xqb0w.js";
327
+ } from "./index-xm7dc14y.js";
328
328
  import {
329
329
  CORE_EVENT_LOCKED,
330
330
  appendCoreEventSync,
@@ -334,7 +334,7 @@ import {
334
334
  hasSpecDriftAuditEvent,
335
335
  hasTaskRepairAuditEvent,
336
336
  readCoreEvents
337
- } from "./index-z408nj03.js";
337
+ } from "./index-50s9q4c1.js";
338
338
  import {
339
339
  sanitizeDiagnosticText
340
340
  } from "./index-556ja8an.js";
@@ -383,7 +383,7 @@ import {
383
383
  transactFile,
384
384
  transactKnowledge,
385
385
  wordBigrams
386
- } from "./index-eh2k07pp.js";
386
+ } from "./index-q0gtgwyr.js";
387
387
  import {
388
388
  MAX_EVENT_LOG_ENTRIES,
389
389
  _internals as _internals2,
@@ -399,10 +399,10 @@ import {
399
399
  recordKnowledgeEvent,
400
400
  recordPhaseCloseIntent,
401
401
  resolveKnowledgeEventsPath
402
- } from "./index-7zbk1e24.js";
402
+ } from "./index-0trtcm9n.js";
403
403
  import {
404
404
  resolveWorktreeIsolationConfig
405
- } from "./index-v7a8e7rv.js";
405
+ } from "./index-4jmtdtm9.js";
406
406
  import {
407
407
  RetrospectiveEvidenceSchema
408
408
  } from "./index-zg9d392c.js";
@@ -423,9 +423,10 @@ import {
423
423
  PlanSchema,
424
424
  exports_loader,
425
425
  init_loader,
426
+ loadGateOverrides,
426
427
  loadPluginConfig,
427
428
  loadPluginConfigWithMeta
428
- } from "./index-vx28633q.js";
429
+ } from "./index-553veay1.js";
429
430
  import {
430
431
  DEFAULT_HARNESS_EVOLUTION_CONFIG,
431
432
  DEFAULT_PR_REVIEW_RESILIENCE_CONFIG,
@@ -442,7 +443,7 @@ import {
442
443
  resolveAutoReviewConfig,
443
444
  resolveGeneratedAgentRole,
444
445
  stripKnownSwarmPrefix
445
- } from "./index-wzmchqry.js";
446
+ } from "./index-yrsag0vs.js";
446
447
  import {
447
448
  init_git_executable,
448
449
  resolveGitExecutable,
@@ -458,7 +459,7 @@ import {
458
459
  observeCuratorCompliance,
459
460
  observeStoreHealth,
460
461
  readLearningHealth
461
- } from "./index-stj85yx1.js";
462
+ } from "./index-164m995b.js";
462
463
  import {
463
464
  AGENT_TOOL_MAP,
464
465
  ALL_AGENT_NAMES,
@@ -489,10 +490,10 @@ import {
489
490
  resolveLinkDir,
490
491
  sanitizeLinkId,
491
492
  writeLinkPointer
492
- } from "./index-qfrrcdhj.js";
493
+ } from "./index-25z5qwkk.js";
493
494
  import {
494
495
  atomicWriteFile
495
- } from "./index-5k226hxp.js";
496
+ } from "./index-4emx8hhh.js";
496
497
  import {
497
498
  KNOWLEDGE_SCHEMA_VERSION,
498
499
  OUTCOME_BLOCK_THRESHOLD,
@@ -506,7 +507,7 @@ import {
506
507
  listActiveLocks,
507
508
  tryAcquireLock,
508
509
  withEvidenceLock
509
- } from "./index-gt6p21cs.js";
510
+ } from "./index-fxxja498.js";
510
511
  import {
511
512
  atomicWriteSwarmFile,
512
513
  atomicWriteSwarmFileSync,
@@ -519,7 +520,7 @@ import {
519
520
  emit,
520
521
  getLastHeartbeat,
521
522
  telemetry
522
- } from "./index-k1m9214q.js";
523
+ } from "./index-1dz8hv7p.js";
523
524
  import {
524
525
  require_proper_lockfile
525
526
  } from "./index-7g4c7s5r.js";
@@ -26104,7 +26105,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
26104
26105
  };
26105
26106
  }
26106
26107
  async function sweepActiveNearDuplicates(directory, options = {}) {
26107
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-a0jhxx5q.js");
26108
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ywtcznk2.js");
26108
26109
  const { config } = loadPluginConfigWithMeta2(directory);
26109
26110
  const sweepConfig = config.learning?.dedup_sweep;
26110
26111
  if (sweepConfig?.enabled === false)
@@ -27241,7 +27242,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
27241
27242
  }
27242
27243
  if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
27243
27244
  try {
27244
- const skillModule = await import("./skill-generator-xsxes2w0.js");
27245
+ const skillModule = await import("./skill-generator-kg32a5jy.js");
27245
27246
  for (const cand of skillCandidates) {
27246
27247
  if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
27247
27248
  continue;
@@ -27713,7 +27714,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
27713
27714
  } catch {}
27714
27715
  }
27715
27716
  if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
27716
- const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-hp1ctjpe.js");
27717
+ const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-evjd8g7y.js");
27717
27718
  for (const { id } of contradictedEntries) {
27718
27719
  try {
27719
27720
  await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
@@ -28545,7 +28546,7 @@ async function runCuratorPostMortem(directory, options = {}) {
28545
28546
  warnings.push("Failed to collect knowledge summary.");
28546
28547
  }
28547
28548
  try {
28548
- const { getScanStatus } = await import("./scan-cursor-gt55f3d6.js");
28549
+ const { getScanStatus } = await import("./scan-cursor-8wcy0dvf.js");
28549
28550
  const scanStatus = await getScanStatus(directory);
28550
28551
  if (scanStatus.remaining_estimate > 0) {
28551
28552
  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.`);
@@ -28717,9 +28718,9 @@ var _internals28 = {
28717
28718
  verifyPostMortemKnowledgeActions,
28718
28719
  repairPostMortemActions,
28719
28720
  loadDefaultKnowledgeConfig: async (directory) => {
28720
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-rpdz901j.js");
28721
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-hsw9r2tm.js");
28721
28722
  try {
28722
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-a0jhxx5q.js");
28723
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ywtcznk2.js");
28723
28724
  const loaded = loadPluginConfigWithMeta2(directory);
28724
28725
  return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
28725
28726
  } catch {
@@ -28727,11 +28728,11 @@ var _internals28 = {
28727
28728
  }
28728
28729
  },
28729
28730
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
28730
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-4s6ekk85.js");
28731
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-b104f7a7.js");
28731
28732
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
28732
28733
  },
28733
28734
  checkHivePromotions: async (entries, knowledgeConfig, directory) => {
28734
- const { checkHivePromotions } = await import("./hive-promoter-nr8dsxhe.js");
28735
+ const { checkHivePromotions } = await import("./hive-promoter-yzv5g7jy.js");
28735
28736
  return checkHivePromotions(entries, knowledgeConfig, directory);
28736
28737
  },
28737
28738
  applyProposalTriage: async (directory, triage) => {
@@ -28740,7 +28741,7 @@ var _internals28 = {
28740
28741
  activateProposal,
28741
28742
  listSkills: listSkills2,
28742
28743
  sanitizeSlug
28743
- } = await import("./skill-generator-xsxes2w0.js");
28744
+ } = await import("./skill-generator-kg32a5jy.js");
28744
28745
  const result = {
28745
28746
  approved: [],
28746
28747
  rejected: [],
@@ -30069,9 +30070,9 @@ function hashContent(content) {
30069
30070
  return createHash17("sha1").update(content).digest("hex");
30070
30071
  }
30071
30072
  async function loadConfigForPolicyCurator(directory) {
30072
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-rpdz901j.js");
30073
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-hsw9r2tm.js");
30073
30074
  try {
30074
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-a0jhxx5q.js");
30075
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ywtcznk2.js");
30075
30076
  const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
30076
30077
  return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
30077
30078
  } catch {
@@ -42734,7 +42735,7 @@ async function runFinalizeStage(ctx) {
42734
42735
  }
42735
42736
  }
42736
42737
  try {
42737
- const { CuratorConfigSchema: CCS } = await import("./schema-rpdz901j.js");
42738
+ const { CuratorConfigSchema: CCS } = await import("./schema-hsw9r2tm.js");
42738
42739
  const { config: pmLoadedConfig } = _internals42.loadPluginConfigWithMeta(ctx.directory);
42739
42740
  const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
42740
42741
  if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
@@ -43623,7 +43624,7 @@ var _internals42 = {
43623
43624
  closePlanTerminalState: reconcileCloseTerminalStateForPlan,
43624
43625
  endAgentSession,
43625
43626
  flushAndDrainTelemetry: async () => {
43626
- const { flushAndDrainTelemetry } = await import("./telemetry-9tfts5q2.js");
43627
+ const { flushAndDrainTelemetry } = await import("./telemetry-j14cj552.js");
43627
43628
  return flushAndDrainTelemetry();
43628
43629
  },
43629
43630
  finalizeContextTelemetry: (directory) => {
@@ -44961,9 +44962,9 @@ var _internals46 = {
44961
44962
  loadPluginConfigWithMeta,
44962
44963
  loadCuratorDeps: async () => {
44963
44964
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate: createCuratorLLMDelegate2 }] = await Promise.all([
44964
- import("./schema-rpdz901j.js"),
44965
- import("./curator-4s6ekk85.js"),
44966
- import("./curator-llm-factory-q3t3r632.js")
44965
+ import("./schema-hsw9r2tm.js"),
44966
+ import("./curator-b104f7a7.js"),
44967
+ import("./curator-llm-factory-cv7ft0mb.js")
44967
44968
  ]);
44968
44969
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate: createCuratorLLMDelegate2 };
44969
44970
  }
@@ -46006,7 +46007,7 @@ async function computeCurationDiagnostics(directory, entries) {
46006
46007
  let scanCompleted = false;
46007
46008
  let scanRemaining = 0;
46008
46009
  try {
46009
- const { getScanStatus } = await import("./scan-cursor-gt55f3d6.js");
46010
+ const { getScanStatus } = await import("./scan-cursor-8wcy0dvf.js");
46010
46011
  const status = await getScanStatus(directory);
46011
46012
  scanGeneration = status.generation;
46012
46013
  scanCompleted = status.completed;
@@ -46014,19 +46015,19 @@ async function computeCurationDiagnostics(directory, entries) {
46014
46015
  } catch {}
46015
46016
  let configMatch = null;
46016
46017
  try {
46017
- const { isLinked: isLinked2 } = await import("./knowledge-link-f5g5d171.js");
46018
+ const { isLinked: isLinked2 } = await import("./knowledge-link-ffmzf72f.js");
46018
46019
  if (isLinked2(directory)) {
46019
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-rpdz901j.js");
46020
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-hsw9r2tm.js");
46020
46021
  let config;
46021
46022
  try {
46022
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-a0jhxx5q.js");
46023
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-ywtcznk2.js");
46023
46024
  const loaded = loadPluginConfigWithMeta2(directory);
46024
46025
  config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
46025
46026
  } catch {
46026
46027
  config = KnowledgeConfigSchema2.parse({});
46027
46028
  }
46028
46029
  const { cohortConfigFingerprint: cohortConfigFingerprint2 } = await import("./config-fingerprint-v22xh5a2.js");
46029
- const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-913dnxqq.js");
46030
+ const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-2cy7wejw.js");
46030
46031
  const currentFp = cohortConfigFingerprint2(buildConfigFingerprintInput2(config));
46031
46032
  const cohortFp = await readCohortConfigFingerprint(directory);
46032
46033
  configMatch = cohortFp === null ? null : currentFp === cohortFp;
@@ -47415,7 +47416,7 @@ async function handleDoctorCommand(directory, args) {
47415
47416
  const result = runConfigDoctor(config, directory);
47416
47417
  let output;
47417
47418
  if (enableAutoFix && result.hasAutoFixableIssues) {
47418
- const { runConfigDoctorWithFixes } = await import("./config-doctor-62xd5far.js");
47419
+ const { runConfigDoctorWithFixes } = await import("./config-doctor-axd9d6hs.js");
47419
47420
  const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
47420
47421
  applyLossy: true
47421
47422
  });
@@ -48355,7 +48356,7 @@ async function handleEvidenceCommand(directory, args) {
48355
48356
  return formatTaskEvidenceMarkdown(evidenceData);
48356
48357
  }
48357
48358
  async function handleEvidenceSummaryCommand(directory) {
48358
- const { buildEvidenceSummary } = await import("./evidence-summary-service-gw936xgz.js");
48359
+ const { buildEvidenceSummary } = await import("./evidence-summary-service-5xsjs3x3.js");
48359
48360
  const artifact = await buildEvidenceSummary(directory);
48360
48361
  if (!artifact) {
48361
48362
  return "No plan found. Run `/swarm plan` to check plan status.";
@@ -51024,13 +51025,21 @@ var quality_budget = createSwarmTool({
51024
51025
  }).optional().describe("Quality budget thresholds")
51025
51026
  },
51026
51027
  async execute(args, directory, ctx) {
51027
- const result = await _internals55.qualityBudget(args, directory, ctx?.abort);
51028
+ const typedArgs = args;
51029
+ const fileOverrides = _internals55.loadGateOverrides(directory)?.quality_budget;
51030
+ const mergedConfig = {
51031
+ ...fileOverrides,
51032
+ ...typedArgs.config,
51033
+ ...fileOverrides?.enabled === false ? { enabled: false } : {}
51034
+ };
51035
+ const result = await _internals55.qualityBudget({ changed_files: typedArgs.changed_files, config: mergedConfig }, directory, ctx?.abort);
51028
51036
  return JSON.stringify(result);
51029
51037
  }
51030
51038
  });
51031
51039
  var _internals55 = {
51032
51040
  qualityBudget,
51033
- computeQualityMetrics
51041
+ computeQualityMetrics,
51042
+ loadGateOverrides
51034
51043
  };
51035
51044
 
51036
51045
  // src/tools/sast-scan.ts
@@ -53745,7 +53754,7 @@ function scanFileWithTierA(filePath, language) {
53745
53754
  return [];
53746
53755
  }
53747
53756
  }
53748
- async function sastScan(input, directory, config) {
53757
+ async function sastScan(input, directory, gates) {
53749
53758
  const {
53750
53759
  changed_files,
53751
53760
  severity_threshold = "medium",
@@ -53754,11 +53763,12 @@ async function sastScan(input, directory, config) {
53754
53763
  offline_only = false,
53755
53764
  abort_signal
53756
53765
  } = input;
53757
- if (config?.gates?.sast_scan?.enabled === false) {
53766
+ if (gates?.sast_scan?.enabled === false) {
53758
53767
  return {
53759
53768
  verdict: "pass",
53760
53769
  findings: [],
53761
53770
  summary: {
53771
+ disabled_reason: "sast_scan disabled by configuration",
53762
53772
  engine: "tier_a",
53763
53773
  files_scanned: 0,
53764
53774
  findings_count: 0,
@@ -54193,7 +54203,7 @@ var sast_scan = createSwarmTool({
54193
54203
  session_id: ctx?.sessionID,
54194
54204
  abort_signal: ctx?.abort
54195
54205
  };
54196
- const result = await _internals58.sastScan(input, directory);
54206
+ const result = await _internals58.sastScan(input, directory, _internals58.loadGateOverrides(directory));
54197
54207
  return JSON.stringify(result, null, 2);
54198
54208
  }
54199
54209
  });
@@ -54202,7 +54212,8 @@ var _internals58 = {
54202
54212
  sast_scan,
54203
54213
  checkSemgrepAvailable: (directory, abortSignal) => checkSemgrepAvailable(directory, abortSignal),
54204
54214
  isSemgrepAvailable: () => isSemgrepAvailable(),
54205
- runSemgrep: (options) => runSemgrep(options)
54215
+ runSemgrep: (options) => runSemgrep(options),
54216
+ loadGateOverrides
54206
54217
  };
54207
54218
 
54208
54219
  // src/evaluation/gate-audit.ts
@@ -83734,7 +83745,7 @@ async function runValidationWithTransientRetry(input, candidateContent, baseline
83734
83745
  if (!input.dispatcher) {
83735
83746
  throw new Error("no evaluation dispatcher available (cannot run validation)");
83736
83747
  }
83737
- const { createModelEvaluationExecutor: createModelEvaluationExecutor2 } = await import("./runner-nkh65pcm.js");
83748
+ const { createModelEvaluationExecutor: createModelEvaluationExecutor2 } = await import("./runner-wqy2hbxn.js");
83738
83749
  const executor = createModelEvaluationExecutor2(input.dispatcher, input.sessionId);
83739
83750
  const result = await withProtectedSetIntegrity([evalInputRoot, ...protectedRoots(input.directory)], () => _internals99.evaluateCandidateV1({
83740
83751
  projectRoot: input.directory,
@@ -85869,7 +85880,7 @@ function buildDetailedHelp(commandName, entry) {
85869
85880
  async function handleHelpCommand(ctx) {
85870
85881
  const targetCommand = ctx.args.join(" ");
85871
85882
  if (!targetCommand) {
85872
- const { buildHelpText } = await import("./index-et9y4ga8.js");
85883
+ const { buildHelpText } = await import("./index-ssb67ff6.js");
85873
85884
  return buildHelpText();
85874
85885
  }
85875
85886
  const tokens = targetCommand.split(/\s+/);
@@ -85878,7 +85889,7 @@ async function handleHelpCommand(ctx) {
85878
85889
  return _internals102.buildDetailedHelp(resolved.key, resolved.entry);
85879
85890
  }
85880
85891
  const similar = _internals102.findSimilarCommands(targetCommand);
85881
- const { buildHelpText: fullHelp } = await import("./index-et9y4ga8.js");
85892
+ const { buildHelpText: fullHelp } = await import("./index-ssb67ff6.js");
85882
85893
  if (similar.length > 0) {
85883
85894
  return `Command '/swarm ${targetCommand}' not found.
85884
85895
 
@@ -86209,7 +86220,7 @@ var COMMAND_REGISTRY = {
86209
86220
  },
86210
86221
  "guardrail explain": {
86211
86222
  handler: async (ctx) => {
86212
- const { handleGuardrailExplain } = await import("./guardrail-explain-jjbnrcqn.js");
86223
+ const { handleGuardrailExplain } = await import("./guardrail-explain-cvha7b9p.js");
86213
86224
  return handleGuardrailExplain(ctx.directory, ctx.args);
86214
86225
  },
86215
86226
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -86219,7 +86230,7 @@ var COMMAND_REGISTRY = {
86219
86230
  },
86220
86231
  "guardrail reset": {
86221
86232
  handler: async (ctx) => {
86222
- const { handleGuardrailReset } = await import("./guardrail-reset-1hpd6bkj.js");
86233
+ const { handleGuardrailReset } = await import("./guardrail-reset-es0bg976.js");
86223
86234
  return handleGuardrailReset(ctx.args, ctx.sessionID);
86224
86235
  },
86225
86236
  description: "Reset one exact active invocation/action circuit after repair",
@@ -86228,7 +86239,7 @@ var COMMAND_REGISTRY = {
86228
86239
  },
86229
86240
  "guardrail-explain": {
86230
86241
  handler: async (ctx) => {
86231
- const { handleGuardrailExplain } = await import("./guardrail-explain-jjbnrcqn.js");
86242
+ const { handleGuardrailExplain } = await import("./guardrail-explain-cvha7b9p.js");
86232
86243
  return handleGuardrailExplain(ctx.directory, ctx.args);
86233
86244
  },
86234
86245
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -86238,7 +86249,7 @@ var COMMAND_REGISTRY = {
86238
86249
  },
86239
86250
  "guardrail-reset": {
86240
86251
  handler: async (ctx) => {
86241
- const { handleGuardrailReset } = await import("./guardrail-reset-1hpd6bkj.js");
86252
+ const { handleGuardrailReset } = await import("./guardrail-reset-es0bg976.js");
86242
86253
  return handleGuardrailReset(ctx.args, ctx.sessionID);
86243
86254
  },
86244
86255
  description: "Reset one exact active invocation/action circuit after repair",
@@ -86248,7 +86259,7 @@ var COMMAND_REGISTRY = {
86248
86259
  },
86249
86260
  "guardrail-log": {
86250
86261
  handler: async (ctx) => {
86251
- const { handleGuardrailLog } = await import("./guardrail-log-9d4f09qt.js");
86262
+ const { handleGuardrailLog } = await import("./guardrail-log-6t4e2j5f.js");
86252
86263
  return handleGuardrailLog(ctx.directory, ctx.args);
86253
86264
  },
86254
86265
  description: "Read the guardrail decision log (use --blocks-only for blocks)",
@@ -92247,7 +92258,7 @@ function getDisplayFinalPromptPressure() {
92247
92258
  async function rehydratePrSubscriptions(sessionID, directory) {
92248
92259
  const map = new Map;
92249
92260
  try {
92250
- const { listActive: listActive2 } = await import("./pr-subscriptions-s2b2yvbd.js");
92261
+ const { listActive: listActive2 } = await import("./pr-subscriptions-3enjtq0k.js");
92251
92262
  const records = await listActive2(directory);
92252
92263
  for (const record of records) {
92253
92264
  if (record.sessionID !== sessionID)
@@ -92693,7 +92704,7 @@ function isLaneOwnedByCurrentSession(branchName, expectedSessionId) {
92693
92704
  return extracted === expectedSessionId;
92694
92705
  }
92695
92706
  async function inspectStandardWorktreeCollisionOwnership(identity) {
92696
- const collisionOwnership = await import("./worktree-collision-ownership-54ca6mb8.js");
92707
+ const collisionOwnership = await import("./worktree-collision-ownership-0rfw6kp3.js");
92697
92708
  return collisionOwnership.inspectStandardWorktreeCollisionOwnership(identity);
92698
92709
  }
92699
92710
  async function runRecoveryGit(directory, args, timeoutMs = 15000) {
@@ -93102,7 +93113,7 @@ async function precreateStandardWorktreeSession(args) {
93102
93113
  const laneProfile = computeLaneRuntimeProfile(worktreeConfig.runtime_isolation, laneIndex, handle.worktreePath);
93103
93114
  if (laneProfile) {
93104
93115
  try {
93105
- const { writeLaneProfileToDiskReal } = await import("./core-7kdmc7h9.js");
93116
+ const { writeLaneProfileToDiskReal } = await import("./core-f1a1fk13.js");
93106
93117
  await writeLaneProfileToDiskReal(handle.worktreePath, laneProfile.laneIndex, laneProfile.envOverrides);
93107
93118
  } catch {}
93108
93119
  }
@@ -94027,7 +94038,7 @@ async function finishStandardWorktreeDispatch(directory, dispatch, config, callI
94027
94038
  }
94028
94039
  clearWorktreeMergeStatus(statusKey);
94029
94040
  try {
94030
- const { removeLaneProfileFromDiskReal } = await import("./core-7kdmc7h9.js");
94041
+ const { removeLaneProfileFromDiskReal } = await import("./core-f1a1fk13.js");
94031
94042
  await removeLaneProfileFromDiskReal(dispatch.handle.worktreePath, dispatch.laneIndex);
94032
94043
  } catch {}
94033
94044
  const state = serializationStateBySessionID.get(dispatch.parentSessionID);