opencode-swarm 7.190.1 → 7.191.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +2 -2
  2. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  3. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  4. package/dist/cli/{auto-checkpoint-26m3h5f4.js → auto-checkpoint-rdwd6w8t.js} +6 -6
  5. package/dist/cli/{checkpoint-7a0achpv.js → checkpoint-jvccxnf3.js} +10 -10
  6. package/dist/cli/{coder-settlement-dsb1t39t.js → coder-settlement-tezdqdzb.js} +4 -4
  7. package/dist/cli/{config-doctor-9txawzng.js → config-doctor-48ehw0b0.js} +8 -8
  8. package/dist/cli/{core-kv7jz9ty.js → core-xevv38dk.js} +2 -2
  9. package/dist/cli/{curator-drift-kxn5sk3z.js → curator-drift-ej1s4fv9.js} +6 -6
  10. package/dist/cli/{curator-llm-factory-hs2y9kmw.js → curator-llm-factory-bx720pwc.js} +27 -27
  11. package/dist/cli/{curator-26yzg8wp.js → curator-xckkw7yt.js} +27 -27
  12. package/dist/cli/{doctor-knowledge-receipt-phase-id-z8wea03e.js → doctor-knowledge-receipt-phase-id-89jrgknr.js} +6 -6
  13. package/dist/cli/{evidence-summary-service-bg5zq78s.js → evidence-summary-service-b8jqdf13.js} +11 -11
  14. package/dist/cli/{gate-evidence-0beg9c7r.js → gate-evidence-xcydwkha.js} +3 -3
  15. package/dist/cli/{guardrail-explain-n8bm0hpm.js → guardrail-explain-wvymt5na.js} +28 -28
  16. package/dist/cli/{guardrail-log-r2zazmbn.js → guardrail-log-5mmc2y1v.js} +4 -4
  17. package/dist/cli/{guardrail-reset-0q54t44w.js → guardrail-reset-8nje6gxk.js} +27 -27
  18. package/dist/cli/{hive-promoter-7dr5b9zv.js → hive-promoter-sd1h9vjg.js} +27 -27
  19. package/dist/cli/{index-sfjpbnqs.js → index-0331n4t3.js} +27 -27
  20. package/dist/cli/{index-ay8ggtgr.js → index-25p51rw2.js} +2 -2
  21. package/dist/cli/{index-bcwmn4d7.js → index-2e2v96yk.js} +1 -1
  22. package/dist/cli/{index-yy5yyyst.js → index-46fe64s6.js} +5 -5
  23. package/dist/cli/{index-67a6mk20.js → index-4c7qdtcy.js} +1 -1
  24. package/dist/cli/{index-rjzn7hf0.js → index-4wsvkvhc.js} +4 -4
  25. package/dist/cli/{index-fthhppnc.js → index-5y2y23ac.js} +29 -29
  26. package/dist/cli/{index-xdq6mak1.js → index-7r41s196.js} +1 -1
  27. package/dist/cli/{index-dbdkh7pq.js → index-7rapcpgx.js} +2 -2
  28. package/dist/cli/{index-2c47efpt.js → index-9mq96f00.js} +2 -2
  29. package/dist/cli/{index-1f084tqn.js → index-ap0tkg3v.js} +102 -63
  30. package/dist/cli/{index-bfyh3gpe.js → index-aw4ex9kn.js} +4 -4
  31. package/dist/cli/{index-sc7t1tev.js → index-evj271tm.js} +6 -6
  32. package/dist/cli/{index-spgfs5y7.js → index-hq84mfha.js} +1 -1
  33. package/dist/cli/{index-4a15347d.js → index-hqdfm79v.js} +1 -1
  34. package/dist/cli/{index-pkhbd2t5.js → index-j5nhx6e8.js} +1 -0
  35. package/dist/cli/{index-enq166kw.js → index-kar6wt5k.js} +2 -2
  36. package/dist/cli/{index-cewpxcwm.js → index-kdsdybmz.js} +5 -5
  37. package/dist/cli/{index-dnp4qtpf.js → index-ks4h9hag.js} +1 -1
  38. package/dist/cli/{index-f46dbyew.js → index-mnx6hgh0.js} +3 -3
  39. package/dist/cli/{index-v3j9fk16.js → index-msz0qtfy.js} +1 -1
  40. package/dist/cli/{index-hx1fmywk.js → index-n9wg3f7d.js} +2 -2
  41. package/dist/cli/{index-s8b67e6h.js → index-pksy4nzv.js} +4 -0
  42. package/dist/cli/{index-efztf4yw.js → index-r27sprvr.js} +1 -1
  43. package/dist/cli/{index-s9cgnd2z.js → index-rq6tz67x.js} +1 -1
  44. package/dist/cli/{index-0yrg10jx.js → index-se6v59r8.js} +2 -2
  45. package/dist/cli/{index-0gve0mkj.js → index-tn2znwwf.js} +3 -3
  46. package/dist/cli/{index-26e2s6r1.js → index-wxsmmw0j.js} +1 -1
  47. package/dist/cli/{index-ha0w0a7t.js → index-y6hwrfkt.js} +2 -2
  48. package/dist/cli/{index-m28dzyy8.js → index-y8ak7me7.js} +3 -3
  49. package/dist/cli/{index-0z8vdkvg.js → index-ykkpkzf7.js} +2 -2
  50. package/dist/cli/{index-gqb8etv4.js → index-zr2ywh0s.js} +3 -3
  51. package/dist/cli/index.js +28 -28
  52. package/dist/cli/{knowledge-escalator-hdrqt5pj.js → knowledge-escalator-8ppf9pcx.js} +9 -9
  53. package/dist/cli/{knowledge-events-ttebc8gn.js → knowledge-events-6tqb0a12.js} +7 -7
  54. package/dist/cli/{knowledge-store-8cxv6w2n.js → knowledge-store-2y8rpsj2.js} +1 -1
  55. package/dist/cli/{knowledge-validator-kr5xmqpa.js → knowledge-validator-5drk80a9.js} +2 -2
  56. package/dist/cli/{mcp-jtk79ygp.js → mcp-pehs7fdc.js} +1 -1
  57. package/dist/cli/{model-preflight-d6tt7479.js → model-preflight-wq4ejsrk.js} +27 -27
  58. package/dist/cli/{pending-delegations-ttk09f50.js → pending-delegations-6yd5nraz.js} +2 -2
  59. package/dist/cli/{pr-subscriptions-2kbeezsr.js → pr-subscriptions-a1xd8smp.js} +1 -1
  60. package/dist/cli/{pr-workflow-gate-3ra6p7k4.js → pr-workflow-gate-prb2tzz7.js} +27 -27
  61. package/dist/cli/{scan-cursor-zzccy117.js → scan-cursor-waxfq7x5.js} +2 -2
  62. package/dist/cli/{schema-9prswg1x.js → schema-zx5j97ww.js} +2 -2
  63. package/dist/cli/{scope-persistence-eqm8vwnx.js → scope-persistence-2q1jzy0h.js} +6 -6
  64. package/dist/cli/{server-swjre81h.js → server-70mbpd3m.js} +27 -27
  65. package/dist/cli/{skill-generator-d8dk9vps.js → skill-generator-xarcb8vm.js} +10 -10
  66. package/dist/cli/{snapshot-coordination-init-f49y0zr0.js → snapshot-coordination-init-cqxsm2rr.js} +27 -27
  67. package/dist/cli/{speckit-checkoff-pnb6q9gd.js → speckit-checkoff-fgt7fdvj.js} +4 -4
  68. package/dist/cli/{worktree-collision-ownership-3c7xyc4p.js → worktree-collision-ownership-bk6znw4c.js} +2 -2
  69. package/dist/cli/{worktree-isolation-jggdf28m.js → worktree-isolation-79jmdq2z.js} +27 -27
  70. package/dist/config/evidence-schema.d.ts +3 -0
  71. package/dist/index.js +46 -38
  72. package/dist/pr-review/render-review-body.d.ts +53 -0
  73. package/dist/tools/index.d.ts +1 -0
  74. package/dist/tools/manifest.d.ts +1 -0
  75. package/dist/tools/pr-review-submission.d.ts +10 -0
  76. package/dist/tools/secretscan.d.ts +26 -4
  77. package/dist/tools/tool-metadata.d.ts +4 -0
  78. package/package.json +1 -1
@@ -8,14 +8,14 @@ import {
8
8
  protectedRoots,
9
9
  redactDecisionLineForArchive,
10
10
  stableCanonicalStringify
11
- } from "./index-enq166kw.js";
11
+ } from "./index-kar6wt5k.js";
12
12
  import {
13
13
  detectStraySwarmDirs,
14
14
  readDoctorArtifact,
15
15
  removeStraySwarmDir,
16
16
  resolvePlanParallelizationFlag,
17
17
  runConfigDoctor
18
- } from "./index-bfyh3gpe.js";
18
+ } from "./index-aw4ex9kn.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-hx1fmywk.js";
30
+ } from "./index-n9wg3f7d.js";
31
31
  import {
32
32
  JAVA_SYMBOL_GRAMMAR,
33
33
  LANGUAGE_REGISTRY,
@@ -89,7 +89,7 @@ import {
89
89
  alreadyCuratedThisGeneration,
90
90
  claimNextScanBatch,
91
91
  resolveCohortId
92
- } from "./index-s9cgnd2z.js";
92
+ } from "./index-rq6tz67x.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-bcwmn4d7.js";
111
+ } from "./index-2e2v96yk.js";
112
112
  import {
113
113
  assertNoUnsettledCoderDispatch,
114
114
  listCoderSettlementWalStates,
115
115
  recoverCoderSettlement,
116
116
  recoverStaleCoderSettlements
117
- } from "./index-gqb8etv4.js";
117
+ } from "./index-zr2ywh0s.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-0gve0mkj.js";
138
+ } from "./index-tn2znwwf.js";
139
139
  import {
140
140
  buildEscalationBriefing,
141
141
  readRecentEscalations
142
- } from "./index-sc7t1tev.js";
142
+ } from "./index-evj271tm.js";
143
143
  import {
144
144
  parsePorcelainV2Snapshot,
145
145
  resolveCommitCountSince,
@@ -223,7 +223,7 @@ import {
223
223
  swarmOverwriteCandidates,
224
224
  trackedDirtyCandidates,
225
225
  transientBackoff
226
- } from "./index-m28dzyy8.js";
226
+ } from "./index-y8ak7me7.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-cewpxcwm.js";
258
+ } from "./index-kdsdybmz.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-spgfs5y7.js";
274
+ } from "./index-hq84mfha.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-v3j9fk16.js";
306
+ } from "./index-msz0qtfy.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-0z8vdkvg.js";
315
+ } from "./index-ykkpkzf7.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-4a15347d.js";
357
+ } from "./index-hqdfm79v.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-2c47efpt.js";
369
+ } from "./index-9mq96f00.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-0yrg10jx.js";
382
+ } from "./index-se6v59r8.js";
383
383
  import {
384
384
  sanitizeContextText
385
385
  } from "./index-m9zzj4ee.js";
@@ -410,7 +410,7 @@ import {
410
410
  validateActionableFields,
411
411
  validateLesson,
412
412
  validateSkillPath
413
- } from "./index-xdq6mak1.js";
413
+ } from "./index-7r41s196.js";
414
414
  import {
415
415
  MAX_CURATION_PROPOSALS,
416
416
  authorizeCuration,
@@ -421,10 +421,10 @@ import {
421
421
  } from "./index-rtry5xyf.js";
422
422
  import {
423
423
  resolveWorktreeIsolationConfig
424
- } from "./index-f46dbyew.js";
424
+ } from "./index-mnx6hgh0.js";
425
425
  import {
426
426
  RetrospectiveEvidenceSchema
427
- } from "./index-pkhbd2t5.js";
427
+ } from "./index-j5nhx6e8.js";
428
428
  import {
429
429
  MAX_PENDING_SCOPE_BINDINGS,
430
430
  canonicalWorkspaceIdentity,
@@ -433,7 +433,7 @@ import {
433
433
  clearScopeBindings,
434
434
  readAuthoritativeScopeBindingSet,
435
435
  readDeclaredScopeFilesFromBindings
436
- } from "./index-dnp4qtpf.js";
436
+ } from "./index-ks4h9hag.js";
437
437
  import {
438
438
  clearPlanLedgerForReset,
439
439
  computePlanStructureHash,
@@ -449,7 +449,7 @@ import {
449
449
  replayFromLedgerWithStatus,
450
450
  resolvePlanningProfile,
451
451
  takeSnapshotEvent
452
- } from "./index-dbdkh7pq.js";
452
+ } from "./index-7rapcpgx.js";
453
453
  import {
454
454
  CORE_EVENT_LOCKED,
455
455
  appendCoreEventSync,
@@ -538,7 +538,7 @@ import {
538
538
  transactFile,
539
539
  transactKnowledge,
540
540
  wordBigrams
541
- } from "./index-rjzn7hf0.js";
541
+ } from "./index-4wsvkvhc.js";
542
542
  import {
543
543
  readTailJsonl,
544
544
  readTailJsonlDetailed,
@@ -623,7 +623,7 @@ import {
623
623
  loadPluginConfig,
624
624
  loadPluginConfigWithMeta,
625
625
  resolveEpicConfig
626
- } from "./index-efztf4yw.js";
626
+ } from "./index-r27sprvr.js";
627
627
  import {
628
628
  GIT_BINARY_ENV_VAR,
629
629
  addDeferredWarning,
@@ -656,7 +656,7 @@ import {
656
656
  resolveContextWindow,
657
657
  resolveGeneratedAgentRole,
658
658
  stripKnownSwarmPrefix
659
- } from "./index-ha0w0a7t.js";
659
+ } from "./index-y6hwrfkt.js";
660
660
  import {
661
661
  AGENT_TOOL_MAP,
662
662
  ALL_AGENT_NAMES,
@@ -682,7 +682,7 @@ import {
682
682
  init_agent_names,
683
683
  init_constants,
684
684
  init_tool_metadata
685
- } from "./index-s8b67e6h.js";
685
+ } from "./index-pksy4nzv.js";
686
686
  import {
687
687
  KNOWLEDGE_SCHEMA_VERSION,
688
688
  OUTCOME_BLOCK_THRESHOLD,
@@ -3449,7 +3449,7 @@ async function importLegacyPrWorkflowGateStateIfNeeded(directory, sessionID, all
3449
3449
  return null;
3450
3450
  throw error2;
3451
3451
  }
3452
- const legacy = allowSalvagedImport ? (await (await import("./pr-workflow-gate-3ra6p7k4.js")).readPrWorkflowGateStateForRecovery(directory, sessionID))?.state ?? null : await readPrWorkflowGateStateFileFromDisk(filePath, sessionID);
3452
+ const legacy = allowSalvagedImport ? (await (await import("./pr-workflow-gate-prb2tzz7.js")).readPrWorkflowGateStateForRecovery(directory, sessionID))?.state ?? null : await readPrWorkflowGateStateFileFromDisk(filePath, sessionID);
3453
3453
  if (!legacy)
3454
3454
  return null;
3455
3455
  const namespace = workflowGateStateCoordinationNamespace(sessionID);
@@ -3536,7 +3536,7 @@ async function deleteStateWhileLocked(directory, sessionID, options = {}) {
3536
3536
  let recoveryState = null;
3537
3537
  if (!currentAuthoritative) {
3538
3538
  if (options.allowSalvagedRead) {
3539
- const { readPrWorkflowGateStateForRecovery } = await import("./pr-workflow-gate-3ra6p7k4.js");
3539
+ const { readPrWorkflowGateStateForRecovery } = await import("./pr-workflow-gate-prb2tzz7.js");
3540
3540
  recoveryState = (await readPrWorkflowGateStateForRecovery(directory, normalizedSessionID))?.state ?? null;
3541
3541
  }
3542
3542
  if (!recoveryState) {
@@ -10334,7 +10334,7 @@ function isLaneOwnedByCurrentSession(branchName, expectedSessionId) {
10334
10334
  return extracted === expectedSessionId;
10335
10335
  }
10336
10336
  async function inspectStandardWorktreeCollisionOwnership(identity) {
10337
- const collisionOwnership = await import("./worktree-collision-ownership-3c7xyc4p.js");
10337
+ const collisionOwnership = await import("./worktree-collision-ownership-bk6znw4c.js");
10338
10338
  return collisionOwnership.inspectStandardWorktreeCollisionOwnership(identity);
10339
10339
  }
10340
10340
  async function runRecoveryGit(directory, args, timeoutMs = 15000) {
@@ -10761,7 +10761,7 @@ async function precreateStandardWorktreeSession(args) {
10761
10761
  const laneProfile = computeLaneRuntimeProfile(worktreeConfig.runtime_isolation, laneIndex, handle.worktreePath);
10762
10762
  if (laneProfile) {
10763
10763
  try {
10764
- const { writeLaneProfileToDiskReal } = await import("./core-kv7jz9ty.js");
10764
+ const { writeLaneProfileToDiskReal } = await import("./core-xevv38dk.js");
10765
10765
  await writeLaneProfileToDiskReal(handle.worktreePath, laneProfile.laneIndex, laneProfile.envOverrides);
10766
10766
  } catch {}
10767
10767
  }
@@ -11754,7 +11754,7 @@ async function finishStandardWorktreeDispatch(directory, dispatch, config, callI
11754
11754
  }
11755
11755
  clearWorktreeMergeStatus(statusKey);
11756
11756
  try {
11757
- const { removeLaneProfileFromDiskReal } = await import("./core-kv7jz9ty.js");
11757
+ const { removeLaneProfileFromDiskReal } = await import("./core-xevv38dk.js");
11758
11758
  await removeLaneProfileFromDiskReal(dispatch.handle.worktreePath, dispatch.laneIndex);
11759
11759
  } catch {}
11760
11760
  const state = serializationStateBySessionID.get(dispatch.parentSessionID);
@@ -27502,7 +27502,7 @@ function clearCriticalShownIds(sessionID) {
27502
27502
  async function rehydratePrSubscriptions(sessionID, directory) {
27503
27503
  const map = new Map;
27504
27504
  try {
27505
- const { listActive: listActive2 } = await import("./pr-subscriptions-2kbeezsr.js");
27505
+ const { listActive: listActive2 } = await import("./pr-subscriptions-a1xd8smp.js");
27506
27506
  const records = await listActive2(directory);
27507
27507
  for (const record of records) {
27508
27508
  if (record.sessionID !== sessionID)
@@ -44048,9 +44048,9 @@ function hashContent(content) {
44048
44048
  return createHash29("sha1").update(content).digest("hex");
44049
44049
  }
44050
44050
  async function loadConfigForPolicyCurator(directory) {
44051
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-9prswg1x.js");
44051
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-zx5j97ww.js");
44052
44052
  try {
44053
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-yy5yyyst.js");
44053
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-46fe64s6.js");
44054
44054
  const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
44055
44055
  return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
44056
44056
  } catch {
@@ -47108,7 +47108,7 @@ async function resolveCuratorLLMDelegate(directory, mode, sessionId) {
47108
47108
  const seam = _internals46.createCuratorLLMDelegate;
47109
47109
  if (seam)
47110
47110
  return seam(directory, mode, sessionId);
47111
- const { createCuratorLLMDelegate } = await import("./curator-llm-factory-hs2y9kmw.js");
47111
+ const { createCuratorLLMDelegate } = await import("./curator-llm-factory-bx720pwc.js");
47112
47112
  return createCuratorLLMDelegate(directory, mode, sessionId);
47113
47113
  }
47114
47114
  async function reconcileCloseTerminalStateForPlan(directory, targetPlan, options) {
@@ -47503,7 +47503,7 @@ async function runFinalizeStage(ctx) {
47503
47503
  }
47504
47504
  }
47505
47505
  try {
47506
- const { CuratorConfigSchema: CCS } = await import("./schema-9prswg1x.js");
47506
+ const { CuratorConfigSchema: CCS } = await import("./schema-zx5j97ww.js");
47507
47507
  const { config: pmLoadedConfig } = _internals46.loadPluginConfigWithMeta(ctx.directory);
47508
47508
  const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
47509
47509
  if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
@@ -51536,7 +51536,7 @@ function serializeAgentSession(s) {
51536
51536
  }
51537
51537
  async function writeSnapshot(directory, state) {
51538
51538
  try {
51539
- const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-f49y0zr0.js");
51539
+ const { ensureSnapshotCoordinationReady } = await import("./snapshot-coordination-init-cqxsm2rr.js");
51540
51540
  await ensureSnapshotCoordinationReady(directory);
51541
51541
  const snapshot = {
51542
51542
  version: 3,
@@ -54557,7 +54557,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
54557
54557
  };
54558
54558
  }
54559
54559
  async function sweepActiveNearDuplicates(directory, options = {}) {
54560
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-yy5yyyst.js");
54560
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-46fe64s6.js");
54561
54561
  const { config } = loadPluginConfigWithMeta2(directory);
54562
54562
  const sweepConfig = config.learning?.dedup_sweep;
54563
54563
  if (sweepConfig?.enabled === false)
@@ -55681,7 +55681,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
55681
55681
  }
55682
55682
  if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
55683
55683
  try {
55684
- const skillModule = await import("./skill-generator-d8dk9vps.js");
55684
+ const skillModule = await import("./skill-generator-xarcb8vm.js");
55685
55685
  for (const cand of skillCandidates) {
55686
55686
  if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
55687
55687
  continue;
@@ -56153,7 +56153,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
56153
56153
  } catch {}
56154
56154
  }
56155
56155
  if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
56156
- const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-hdrqt5pj.js");
56156
+ const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-8ppf9pcx.js");
56157
56157
  for (const { id } of contradictedEntries) {
56158
56158
  try {
56159
56159
  await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
@@ -56985,7 +56985,7 @@ async function runCuratorPostMortem(directory, options = {}) {
56985
56985
  warnings.push("Failed to collect knowledge summary.");
56986
56986
  }
56987
56987
  try {
56988
- const { getScanStatus } = await import("./scan-cursor-zzccy117.js");
56988
+ const { getScanStatus } = await import("./scan-cursor-waxfq7x5.js");
56989
56989
  const scanStatus = await getScanStatus(directory);
56990
56990
  if (scanStatus.remaining_estimate > 0) {
56991
56991
  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 +57157,9 @@ var _internals68 = {
57157
57157
  verifyPostMortemKnowledgeActions,
57158
57158
  repairPostMortemActions,
57159
57159
  loadDefaultKnowledgeConfig: async (directory) => {
57160
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-9prswg1x.js");
57160
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-zx5j97ww.js");
57161
57161
  try {
57162
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-yy5yyyst.js");
57162
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-46fe64s6.js");
57163
57163
  const loaded = loadPluginConfigWithMeta2(directory);
57164
57164
  return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
57165
57165
  } catch {
@@ -57167,11 +57167,11 @@ var _internals68 = {
57167
57167
  }
57168
57168
  },
57169
57169
  applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
57170
- const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-26yzg8wp.js");
57170
+ const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-xckkw7yt.js");
57171
57171
  return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
57172
57172
  },
57173
57173
  checkHivePromotions: async (entries2, knowledgeConfig, directory) => {
57174
- const { checkHivePromotions } = await import("./hive-promoter-7dr5b9zv.js");
57174
+ const { checkHivePromotions } = await import("./hive-promoter-sd1h9vjg.js");
57175
57175
  return checkHivePromotions(entries2, knowledgeConfig, directory);
57176
57176
  },
57177
57177
  applyProposalTriage: async (directory, triage) => {
@@ -57180,7 +57180,7 @@ var _internals68 = {
57180
57180
  activateProposal,
57181
57181
  listSkills: listSkills2,
57182
57182
  sanitizeSlug
57183
- } = await import("./skill-generator-d8dk9vps.js");
57183
+ } = await import("./skill-generator-xarcb8vm.js");
57184
57184
  const result = {
57185
57185
  approved: [],
57186
57186
  rejected: [],
@@ -57222,7 +57222,7 @@ var _internals68 = {
57222
57222
  return result;
57223
57223
  },
57224
57224
  readPriorDriftReports: async (directory) => {
57225
- const { readPriorDriftReports: readPriorDriftReports2 } = await import("./curator-drift-kxn5sk3z.js");
57225
+ const { readPriorDriftReports: readPriorDriftReports2 } = await import("./curator-drift-ej1s4fv9.js");
57226
57226
  return readPriorDriftReports2(directory);
57227
57227
  },
57228
57228
  readSwarmKnowledge: (directory) => readKnowledge(resolveSwarmKnowledgePath(directory))
@@ -67492,9 +67492,9 @@ var _internals76 = {
67492
67492
  loadPluginConfigWithMeta,
67493
67493
  loadCuratorDeps: async () => {
67494
67494
  const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate }] = await Promise.all([
67495
- import("./schema-9prswg1x.js"),
67496
- import("./curator-26yzg8wp.js"),
67497
- import("./curator-llm-factory-hs2y9kmw.js")
67495
+ import("./schema-zx5j97ww.js"),
67496
+ import("./curator-xckkw7yt.js"),
67497
+ import("./curator-llm-factory-bx720pwc.js")
67498
67498
  ]);
67499
67499
  return { CuratorConfigSchema, curator, createCuratorLLMDelegate };
67500
67500
  }
@@ -69932,7 +69932,7 @@ async function computeCurationDiagnostics(directory, entries2) {
69932
69932
  let scanCompleted = false;
69933
69933
  let scanRemaining = 0;
69934
69934
  try {
69935
- const { getScanStatus } = await import("./scan-cursor-zzccy117.js");
69935
+ const { getScanStatus } = await import("./scan-cursor-waxfq7x5.js");
69936
69936
  const status = await getScanStatus(directory);
69937
69937
  scanGeneration = status.generation;
69938
69938
  scanCompleted = status.completed;
@@ -69942,10 +69942,10 @@ async function computeCurationDiagnostics(directory, entries2) {
69942
69942
  try {
69943
69943
  const { isLinked: isLinked2 } = await import("./knowledge-link-6hw3z6wn.js");
69944
69944
  if (isLinked2(directory)) {
69945
- const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-9prswg1x.js");
69945
+ const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-zx5j97ww.js");
69946
69946
  let config;
69947
69947
  try {
69948
- const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-yy5yyyst.js");
69948
+ const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-46fe64s6.js");
69949
69949
  const loaded = loadPluginConfigWithMeta2(directory);
69950
69950
  config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
69951
69951
  } catch {
@@ -71401,7 +71401,7 @@ async function handleDoctorCommand(directory, args) {
71401
71401
  const result = runConfigDoctor(config, directory, planParallelizationEnabled);
71402
71402
  let output;
71403
71403
  if (enableAutoFix && result.hasAutoFixableIssues) {
71404
- const { runConfigDoctorWithFixes } = await import("./config-doctor-9txawzng.js");
71404
+ const { runConfigDoctorWithFixes } = await import("./config-doctor-48ehw0b0.js");
71405
71405
  const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
71406
71406
  applyLossy: true
71407
71407
  });
@@ -71439,7 +71439,7 @@ async function handleDoctorCommand(directory, args) {
71439
71439
  `;
71440
71440
  }
71441
71441
  try {
71442
- const { runModelPreflight } = await import("./model-preflight-d6tt7479.js");
71442
+ const { runModelPreflight } = await import("./model-preflight-wq4ejsrk.js");
71443
71443
  const preflight = await runModelPreflight(config, swarmState.opencodeClient, { generatedAgentNames: swarmState.generatedAgentNames });
71444
71444
  const missingSelection = preflight.resolutions.filter((resolution) => resolution.status === "missing-selection");
71445
71445
  const unresolved = preflight.catalogAvailable ? preflight.resolutions.filter((resolution) => resolution.status === "unresolved") : [];
@@ -71473,7 +71473,7 @@ async function handleDoctorCommand(directory, args) {
71473
71473
  }
71474
71474
  } catch {}
71475
71475
  try {
71476
- const { renderKnowledgeReceiptPhaseIdSection } = await import("./doctor-knowledge-receipt-phase-id-z8wea03e.js");
71476
+ const { renderKnowledgeReceiptPhaseIdSection } = await import("./doctor-knowledge-receipt-phase-id-89jrgknr.js");
71477
71477
  output += await renderKnowledgeReceiptPhaseIdSection(directory, enableAutoFix);
71478
71478
  } catch {}
71479
71479
  const strayDirs = detectStraySwarmDirs(directory);
@@ -73490,7 +73490,7 @@ async function handleEvidenceCommand(directory, args) {
73490
73490
  return formatTaskEvidenceMarkdown(evidenceData);
73491
73491
  }
73492
73492
  async function handleEvidenceSummaryCommand(directory) {
73493
- const { buildEvidenceSummary } = await import("./evidence-summary-service-bg5zq78s.js");
73493
+ const { buildEvidenceSummary } = await import("./evidence-summary-service-b8jqdf13.js");
73494
73494
  const artifact = await buildEvidenceSummary(directory);
73495
73495
  if (!artifact) {
73496
73496
  return "No plan found. Run `/swarm plan` to check plan status.";
@@ -97956,7 +97956,7 @@ function createCuratorLLMDelegate(directory, mode = "init", sessionId) {
97956
97956
  }
97957
97957
  const sdkOpts = signal ? { signal } : {};
97958
97958
  try {
97959
- const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-sfjpbnqs.js");
97959
+ const { getSwarmAgents: getSwarmAgents2, resolveFallbackModel: resolveFallbackModel2 } = await import("./index-0331n4t3.js");
97960
97960
  const createResult = await client.session.create({
97961
97961
  ...sessionId ? {
97962
97962
  body: {
@@ -100293,7 +100293,7 @@ async function cancelPrFeedbackLoopUnlocked(directory, sessionID, reason) {
100293
100293
  clearedEvents: []
100294
100294
  };
100295
100295
  try {
100296
- const { cancelPrFeedbackPublication: cancelPrFeedbackPublication2 } = await import("./pr-workflow-gate-3ra6p7k4.js");
100296
+ const { cancelPrFeedbackPublication: cancelPrFeedbackPublication2 } = await import("./pr-workflow-gate-prb2tzz7.js");
100297
100297
  await cancelPrFeedbackPublication2(directory, sessionID, reason);
100298
100298
  } catch (err) {
100299
100299
  warn(`[pr-feedback-loop] cancelPrFeedbackPublication failed (fail-open): ${err instanceof Error ? err.message : String(err)}`);
@@ -102695,6 +102695,22 @@ function isExcluded(entry, relPath, exactNames, globPatterns) {
102695
102695
  }
102696
102696
  return false;
102697
102697
  }
102698
+ function isIgnoredExplicitPath(relPath, ignoreExact, ignoreGlobs) {
102699
+ const segments = relPath.split("/");
102700
+ const file = segments[segments.length - 1] ?? "";
102701
+ if (isExcluded(file, relPath, ignoreExact, ignoreGlobs)) {
102702
+ return true;
102703
+ }
102704
+ let prefix = "";
102705
+ for (let i = 0;i < segments.length - 1; i++) {
102706
+ const segment = segments[i] ?? "";
102707
+ prefix = prefix.length === 0 ? segment : `${prefix}/${segment}`;
102708
+ if (isExcluded(segment, prefix, ignoreExact, ignoreGlobs)) {
102709
+ return true;
102710
+ }
102711
+ }
102712
+ return false;
102713
+ }
102698
102714
  function validateDirectoryInput(dir) {
102699
102715
  if (!dir || dir.length === 0) {
102700
102716
  return "directory is required";
@@ -103323,6 +103339,7 @@ var secretscan = createSwarmTool({
103323
103339
  skipped_files: skippedFiles + stats.fileErrors + stats.symlinkSkipped,
103324
103340
  policy_skipped_files: 0,
103325
103341
  requested_files: 0,
103342
+ ignored_files: 0,
103326
103343
  incomplete_files: incompleteFiles,
103327
103344
  incomplete_paths: discovery.incompletePaths
103328
103345
  };
@@ -103385,6 +103402,7 @@ async function runSecretscanOnFiles(files, directory, rawRequestedFiles) {
103385
103402
  let filesScanned = 0;
103386
103403
  let skippedFiles = 0;
103387
103404
  let policySkippedFiles = 0;
103405
+ let ignoredFiles = 0;
103388
103406
  const requestedFiles = Math.max(0, rawRequestedFiles ?? files.length);
103389
103407
  const incompletePaths = [];
103390
103408
  const rawRoot = path137.resolve(directory);
@@ -103412,6 +103430,18 @@ async function runSecretscanOnFiles(files, directory, rawRequestedFiles) {
103412
103430
  if (!rootStat.isDirectory()) {
103413
103431
  throw new Error("target must be a directory");
103414
103432
  }
103433
+ const ignoreExact = new Set;
103434
+ const ignoreGlobs = [];
103435
+ for (const pattern of loadSecretScanIgnore(canonicalRoot)) {
103436
+ if (pattern.length === 0)
103437
+ continue;
103438
+ if (isGlobOrPathPattern(pattern)) {
103439
+ ignoreGlobs.push(pattern);
103440
+ } else {
103441
+ ignoreExact.add(pattern);
103442
+ }
103443
+ }
103444
+ const hasIgnorePatterns = ignoreExact.size > 0 || ignoreGlobs.length > 0;
103415
103445
  const filesToScan = files.slice(0, MAX_EXPLICIT_FILES_SCANNED);
103416
103446
  let incompleteFiles = Math.max(0, files.length - filesToScan.length);
103417
103447
  if (files.length > filesToScan.length) {
@@ -103505,6 +103535,14 @@ async function runSecretscanOnFiles(files, directory, rawRequestedFiles) {
103505
103535
  recordIncompletePath(incompletePaths, canonicalRoot, scanPath, "scope_escape");
103506
103536
  continue;
103507
103537
  }
103538
+ if (hasIgnorePatterns) {
103539
+ const relPath = path137.relative(canonicalRoot, scanPath).replace(/\\/g, "/");
103540
+ if (isIgnoredExplicitPath(relPath, ignoreExact, ignoreGlobs)) {
103541
+ skippedFiles++;
103542
+ ignoredFiles++;
103543
+ continue;
103544
+ }
103545
+ }
103508
103546
  const outcome = scanFileForSecrets(scanPath, "explicit");
103509
103547
  switch (outcome.status) {
103510
103548
  case "scanned":
@@ -103542,6 +103580,7 @@ async function runSecretscanOnFiles(files, directory, rawRequestedFiles) {
103542
103580
  files_scanned: filesScanned,
103543
103581
  skipped_files: skippedFiles,
103544
103582
  policy_skipped_files: policySkippedFiles,
103583
+ ignored_files: ignoredFiles,
103545
103584
  requested_files: requestedFiles,
103546
103585
  incomplete_files: incompleteFiles,
103547
103586
  incomplete_paths: incompletePaths
@@ -116707,7 +116746,7 @@ function buildDetailedHelp(commandName, entry) {
116707
116746
  async function handleHelpCommand(ctx) {
116708
116747
  const targetCommand = ctx.args.join(" ");
116709
116748
  if (!targetCommand) {
116710
- const { buildHelpText } = await import("./index-fthhppnc.js");
116749
+ const { buildHelpText } = await import("./index-5y2y23ac.js");
116711
116750
  return buildHelpText();
116712
116751
  }
116713
116752
  const tokens = targetCommand.split(/\s+/);
@@ -116721,7 +116760,7 @@ async function handleHelpCommand(ctx) {
116721
116760
  > Note: \`/swarm ${resolved.key}\` is a deprecated alias for \`/swarm ${aliasTarget}\`.` : detailed;
116722
116761
  }
116723
116762
  const similar = _internals35.findSimilarCommands(targetCommand);
116724
- const { buildHelpText: fullHelp } = await import("./index-fthhppnc.js");
116763
+ const { buildHelpText: fullHelp } = await import("./index-5y2y23ac.js");
116725
116764
  if (similar.length > 0) {
116726
116765
  return `Command '/swarm ${targetCommand}' not found.
116727
116766
 
@@ -117049,7 +117088,7 @@ var COMMAND_REGISTRY = {
117049
117088
  },
117050
117089
  "guardrail explain": {
117051
117090
  handler: async (ctx) => {
117052
- const { handleGuardrailExplain } = await import("./guardrail-explain-n8bm0hpm.js");
117091
+ const { handleGuardrailExplain } = await import("./guardrail-explain-wvymt5na.js");
117053
117092
  return handleGuardrailExplain(ctx.directory, ctx.args);
117054
117093
  },
117055
117094
  description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
@@ -117059,7 +117098,7 @@ var COMMAND_REGISTRY = {
117059
117098
  },
117060
117099
  "guardrail reset": {
117061
117100
  handler: async (ctx) => {
117062
- const { handleGuardrailReset } = await import("./guardrail-reset-0q54t44w.js");
117101
+ const { handleGuardrailReset } = await import("./guardrail-reset-8nje6gxk.js");
117063
117102
  return handleGuardrailReset(ctx.args, ctx.sessionID);
117064
117103
  },
117065
117104
  description: "Reset one exact active invocation/action circuit after repair",
@@ -117080,7 +117119,7 @@ var COMMAND_REGISTRY = {
117080
117119
  },
117081
117120
  "guardrail-log": {
117082
117121
  handler: async (ctx) => {
117083
- const { handleGuardrailLog } = await import("./guardrail-log-r2zazmbn.js");
117122
+ const { handleGuardrailLog } = await import("./guardrail-log-5mmc2y1v.js");
117084
117123
  return handleGuardrailLog(ctx.directory, ctx.args);
117085
117124
  },
117086
117125
  description: "Read the guardrail decision log (use --blocks-only for blocks)",
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  loadPlanJsonOnly
4
- } from "./index-cewpxcwm.js";
4
+ } from "./index-kdsdybmz.js";
5
5
  import {
6
6
  isCanonicalPathWithinRoot
7
7
  } from "./index-6b295cas.js";
@@ -14,7 +14,7 @@ import {
14
14
  legacyEpicIssuePath,
15
15
  migrateLegacyEpicConfig,
16
16
  resolveEpicConfig
17
- } from "./index-efztf4yw.js";
17
+ } from "./index-r27sprvr.js";
18
18
  import {
19
19
  FALLBACK_MODELS_MAX,
20
20
  GATE_CONFIG_KNOWN_SECTION_KEYS,
@@ -24,13 +24,13 @@ import {
24
24
  init_schema,
25
25
  retiredEpicKeyReplacement,
26
26
  stripKnownSwarmPrefix
27
- } from "./index-ha0w0a7t.js";
27
+ } from "./index-y6hwrfkt.js";
28
28
  import {
29
29
  ALL_AGENT_NAMES,
30
30
  TOOL_NAME_SET,
31
31
  init_constants,
32
32
  init_tool_metadata
33
- } from "./index-s8b67e6h.js";
33
+ } from "./index-pksy4nzv.js";
34
34
  import {
35
35
  log
36
36
  } from "./index-zgwm4ryv.js";
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  readKnowledgeEvents,
4
4
  recordKnowledgeEvent
5
- } from "./index-2c47efpt.js";
5
+ } from "./index-9mq96f00.js";
6
6
  import {
7
7
  queryHistoricalOutcomes
8
- } from "./index-0yrg10jx.js";
8
+ } from "./index-se6v59r8.js";
9
9
  import {
10
10
  jaccardBigram,
11
11
  readKnowledge,
@@ -13,7 +13,7 @@ import {
13
13
  resolveSwarmKnowledgePath,
14
14
  transactKnowledge,
15
15
  wordBigrams
16
- } from "./index-rjzn7hf0.js";
16
+ } from "./index-4wsvkvhc.js";
17
17
  import {
18
18
  init_knowledge_types,
19
19
  isActiveStatus
@@ -226,11 +226,11 @@ async function maybeQuarantineOnContradiction(directory, entryId, threshold, win
226
226
  alreadyInactive: true
227
227
  };
228
228
  }
229
- const { quarantineEntry } = await import("./knowledge-validator-kr5xmqpa.js");
229
+ const { quarantineEntry } = await import("./knowledge-validator-5drk80a9.js");
230
230
  let policyConfig;
231
231
  try {
232
- const { KnowledgeConfigSchema } = await import("./schema-9prswg1x.js");
233
- const { loadPluginConfigWithMeta } = await import("./index-yy5yyyst.js");
232
+ const { KnowledgeConfigSchema } = await import("./schema-zx5j97ww.js");
233
+ const { loadPluginConfigWithMeta } = await import("./index-46fe64s6.js");
234
234
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
235
235
  policyConfig = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
236
236
  } catch {
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  writeSpeckitCheckoffLedger
4
- } from "./index-67a6mk20.js";
4
+ } from "./index-4c7qdtcy.js";
5
5
  import {
6
6
  validateSpecContent
7
7
  } from "./index-0725jpp7.js";
@@ -4735,7 +4735,7 @@ async function reconcileLegacyCoderSettlements(directory, maxRecords, onReconcil
4735
4735
  const candidates = readDelegations(directory).filter((record) => record.normalizedAgent === "coder" && Boolean(record.legacyCoderSettlementTransfer) && Boolean(record.terminalResult)).slice(0, maxRecords);
4736
4736
  if (candidates.length === 0)
4737
4737
  return 0;
4738
- const { transferCoderSettlementToBackground } = await import("./coder-settlement-dsb1t39t.js");
4738
+ const { transferCoderSettlementToBackground } = await import("./coder-settlement-tezdqdzb.js");
4739
4739
  let transferred = 0;
4740
4740
  for (const record of candidates) {
4741
4741
  try {