opencode-swarm 7.146.2 → 7.146.4

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 (86) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +27 -44
  2. package/.opencode/skills/swarm-pr-review/references/findings-persistence-contract.md +52 -12
  3. package/.opencode/skills/swarm-pr-review/references/lane-output-recoverability.md +6 -3
  4. package/.opencode/skills/swarm-pr-review/references/parser-dry-run.md +19 -1
  5. package/.opencode/skills/swarm-pr-review/references/verdict-settlement-contract.md +41 -0
  6. package/dist/agents/council-prompts.d.ts +3 -3
  7. package/dist/background/candidate-contract.d.ts +21 -1
  8. package/dist/background/candidate-parser.d.ts +21 -1
  9. package/dist/background/pending-delegations.d.ts +8 -1
  10. package/dist/background/pr-review-collection-receipt.d.ts +70 -0
  11. package/dist/cli/{config-doctor-vstrprja.js → config-doctor-578ebqhn.js} +2 -2
  12. package/dist/cli/{core-3wzpwe5z.js → core-2ne03a43.js} +1 -1
  13. package/dist/cli/{curation-policy-x19e8bqc.js → curation-policy-g353f457.js} +6 -6
  14. package/dist/cli/{curator-llm-factory-6bra0bfd.js → curator-llm-factory-6hgn7p6n.js} +27 -27
  15. package/dist/cli/{curator-cvy1s7wd.js → curator-w52frg17.js} +27 -27
  16. package/dist/cli/{evidence-summary-service-yhap2xph.js → evidence-summary-service-nj4p6a0d.js} +11 -11
  17. package/dist/cli/{gate-evidence-vxbyq5sb.js → gate-evidence-4vnjdh9y.js} +6 -6
  18. package/dist/cli/{guardrail-explain-h8cnwa02.js → guardrail-explain-rq01z1yz.js} +28 -28
  19. package/dist/cli/{guardrail-log-syb7tz2w.js → guardrail-log-ratb651f.js} +3 -3
  20. package/dist/cli/{hive-promoter-3tex870c.js → hive-promoter-pbm9kee1.js} +27 -27
  21. package/dist/cli/{index-yxhcy5cm.js → index-1mbdwy12.js} +55 -1
  22. package/dist/cli/{index-01ybcsa5.js → index-3neh2mxk.js} +2 -2
  23. package/dist/cli/{index-5e5a1y2r.js → index-3p4wgm0d.js} +1 -1
  24. package/dist/cli/{index-4vwn66wk.js → index-5cbbtbvf.js} +3 -3
  25. package/dist/cli/{index-z5ppkn8y.js → index-6eycwm3v.js} +6 -6
  26. package/dist/cli/{index-bghwrr59.js → index-6q35swn2.js} +1 -1
  27. package/dist/cli/{index-qbpxrw95.js → index-8py21zn6.js} +2 -2
  28. package/dist/cli/{index-tj861zhd.js → index-96zkay2e.js} +4 -4
  29. package/dist/cli/{index-y3hmyvt6.js → index-bq4mvwht.js} +2 -2
  30. package/dist/cli/{index-rfph0nhf.js → index-brb64k96.js} +1426 -635
  31. package/dist/cli/{index-p0m03xa6.js → index-df8xj9hr.js} +4 -4
  32. package/dist/cli/{index-cr90rcg3.js → index-dp5w9s5z.js} +7 -7
  33. package/dist/cli/{index-w0cj7zyd.js → index-f75qjtn5.js} +1 -1
  34. package/dist/cli/{index-vmfaafte.js → index-ffqdah8s.js} +5 -5
  35. package/dist/cli/{index-f3x2gsby.js → index-fp2d44f5.js} +1 -1
  36. package/dist/cli/{index-jv9xs6mb.js → index-g2r8nknz.js} +2 -2
  37. package/dist/cli/{index-n4k0pt5f.js → index-g335vrc7.js} +4 -4
  38. package/dist/cli/{index-z9ed68jt.js → index-gr3zfcsh.js} +18 -4
  39. package/dist/cli/{index-w5r84rd1.js → index-hcb25p12.js} +1 -1
  40. package/dist/cli/{index-ycgm9pzg.js → index-hw1yghpg.js} +7 -6
  41. package/dist/cli/{index-a1febb2k.js → index-jgwhpza8.js} +2 -2
  42. package/dist/cli/{index-cx67qa9g.js → index-kjmcp9mf.js} +1 -1
  43. package/dist/cli/{index-42nq97rb.js → index-kv2j4cnq.js} +6 -6
  44. package/dist/cli/{index-zkaz3fhw.js → index-p3k155dv.js} +2 -2
  45. package/dist/cli/{index-qyvjp0bq.js → index-q81s0m8k.js} +66 -37
  46. package/dist/cli/{index-97psh79d.js → index-rpy0bent.js} +178 -18
  47. package/dist/cli/{index-r46q6996.js → index-t798v5pq.js} +29 -29
  48. package/dist/cli/{index-e1hjd15c.js → index-tp5ytzzg.js} +1 -1
  49. package/dist/cli/{index-vj9bba5k.js → index-vdrwj7z0.js} +4 -4
  50. package/dist/cli/{index-46cypnz3.js → index-wesj94x0.js} +4 -4
  51. package/dist/cli/{index-c9jr4j2q.js → index-xsxj4vbf.js} +1 -1
  52. package/dist/cli/index.js +27 -27
  53. package/dist/cli/{knowledge-escalator-mn4sx4qd.js → knowledge-escalator-jbazxmk5.js} +11 -11
  54. package/dist/cli/{knowledge-events-x975ngy4.js → knowledge-events-jyqy3st8.js} +9 -9
  55. package/dist/cli/{knowledge-link-8pr02pza.js → knowledge-link-jkx8xjxp.js} +5 -5
  56. package/dist/cli/{knowledge-store-33p762ey.js → knowledge-store-e2defagd.js} +6 -6
  57. package/dist/cli/{knowledge-validator-q5jc0scs.js → knowledge-validator-pnmdsw2b.js} +8 -8
  58. package/dist/cli/{pending-delegations-kkrczqv7.js → pending-delegations-k2yqg1sj.js} +3 -3
  59. package/dist/cli/{pr-subscriptions-2xn238xt.js → pr-subscriptions-js5v2xr6.js} +3 -3
  60. package/dist/cli/{runner-e7z9cf5y.js → runner-q7d22d1w.js} +6 -6
  61. package/dist/cli/{scan-cursor-p7t5mb4x.js → scan-cursor-snx85enn.js} +7 -7
  62. package/dist/cli/{schema-t8bmshhj.js → schema-6rmxzg6g.js} +1 -1
  63. package/dist/cli/{scope-persistence-2kyrgsca.js → scope-persistence-23cqafkx.js} +7 -7
  64. package/dist/cli/{skill-generator-fwvmcv8m.js → skill-generator-980zjk9q.js} +13 -13
  65. package/dist/cli/{telemetry-t109dhv7.js → telemetry-xzy0qeap.js} +1 -1
  66. package/dist/cli/{worktree-collision-ownership-2jtg2my1.js → worktree-collision-ownership-xj0bsg92.js} +3 -3
  67. package/dist/cli/{worktree-isolation-87j70zg1.js → worktree-isolation-4d0nc04c.js} +27 -27
  68. package/dist/commands/close.d.ts +1 -0
  69. package/dist/commands/context-map-stats.d.ts +5 -0
  70. package/dist/config/schema.d.ts +16 -0
  71. package/dist/context-map/telemetry.d.ts +168 -26
  72. package/dist/council/council-evidence-writer.d.ts +2 -1
  73. package/dist/council/council-freshness.d.ts +49 -0
  74. package/dist/council/council-review-identity.d.ts +133 -0
  75. package/dist/council/council-round-state.d.ts +27 -3
  76. package/dist/council/disagreement-detector.d.ts +12 -2
  77. package/dist/council/general-council-types.d.ts +32 -0
  78. package/dist/council/types.d.ts +43 -7
  79. package/dist/hooks/pr-workflow-gate.d.ts +58 -5
  80. package/dist/index.js +177 -152
  81. package/dist/observability/catalog.d.ts +7 -5
  82. package/dist/telemetry.d.ts +22 -1
  83. package/dist/tools/dispatch-lanes.d.ts +30 -8
  84. package/dist/tools/phase-complete/gates/types.d.ts +7 -0
  85. package/dist/tools/write-final-council-evidence.d.ts +1 -7
  86. package/package.json +2 -1
@@ -4,14 +4,14 @@ import {
4
4
  PlanSchema,
5
5
  TaskStatusSchema,
6
6
  init_loader
7
- } from "./index-01ybcsa5.js";
7
+ } from "./index-3neh2mxk.js";
8
8
  import {
9
9
  assertProjectRoot,
10
10
  withEvidenceLock
11
- } from "./index-bghwrr59.js";
11
+ } from "./index-6q35swn2.js";
12
12
  import {
13
13
  emit
14
- } from "./index-qyvjp0bq.js";
14
+ } from "./index-q81s0m8k.js";
15
15
  import {
16
16
  criticalWarn,
17
17
  init_logger,
@@ -962,4 +962,4 @@ var _internals = {
962
962
  randomUUID: () => crypto.randomUUID()
963
963
  };
964
964
 
965
- export { derivePlanId, derivePlanIdentityHash, normalizeExecutionProfileForHash, LedgerStaleWriterError, computePlanHash, computePlanStructureHash, computeCurrentPlanHash, ledgerExists, getLatestLedgerSeq, readLedgerEvents, initLedger, readPlanEpochIdentity, getOrAdoptPlanEpochUnderLock, appendLedgerEvent, takeSnapshotWithRetry, takeSnapshotEvent, replaceTruncatedLedgerWithRecoveryRoot, replayFromLedger, replayFromLedgerWithStatus, readLedgerEventsWithIntegrity, loadLastApprovedPlan };
965
+ export { normalizeExecutionProfileForHash, derivePlanId, derivePlanIdentityHash, LedgerStaleWriterError, computePlanHash, computePlanStructureHash, computeCurrentPlanHash, ledgerExists, getLatestLedgerSeq, readLedgerEvents, initLedger, readPlanEpochIdentity, getOrAdoptPlanEpochUnderLock, appendLedgerEvent, takeSnapshotWithRetry, takeSnapshotEvent, replaceTruncatedLedgerWithRecoveryRoot, replayFromLedger, replayFromLedgerWithStatus, readLedgerEventsWithIntegrity, loadLastApprovedPlan };
@@ -1,11 +1,11 @@
1
1
  // @bun
2
2
  import {
3
3
  loadPluginConfigWithMeta
4
- } from "./index-01ybcsa5.js";
4
+ } from "./index-3neh2mxk.js";
5
5
  import {
6
6
  KnowledgeConfigSchema,
7
7
  init_schema
8
- } from "./index-z9ed68jt.js";
8
+ } from "./index-gr3zfcsh.js";
9
9
  import {
10
10
  validateSwarmPath
11
11
  } from "./index-w8pgjr75.js";
@@ -14,16 +14,16 @@ import {
14
14
  } from "./index-ae75rja9.js";
15
15
  import {
16
16
  resolveKnowledgeStoreDir
17
- } from "./index-w0cj7zyd.js";
17
+ } from "./index-f75qjtn5.js";
18
18
  import {
19
19
  atomicWriteFile
20
- } from "./index-qbpxrw95.js";
20
+ } from "./index-8py21zn6.js";
21
21
  import {
22
22
  assertProjectRoot
23
- } from "./index-bghwrr59.js";
23
+ } from "./index-6q35swn2.js";
24
24
  import {
25
25
  emit
26
- } from "./index-qyvjp0bq.js";
26
+ } from "./index-q81s0m8k.js";
27
27
  import {
28
28
  require_proper_lockfile
29
29
  } from "./index-7g4c7s5r.js";
@@ -2693,7 +2693,7 @@ async function applyKnowledgeVerdictFeedback(directory, options) {
2693
2693
  }
2694
2694
  let bumps = 0;
2695
2695
  if (deltas.length > 0) {
2696
- const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-33p762ey.js");
2696
+ const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-e2defagd.js");
2697
2697
  bumps = await bumpKnowledgeConfidenceBatch(directory, deltas, options?.floorOptions);
2698
2698
  }
2699
2699
  return {
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  atomicWriteFile
4
- } from "./index-qbpxrw95.js";
4
+ } from "./index-8py21zn6.js";
5
5
  import {
6
6
  init_logger,
7
7
  warn
@@ -6,12 +6,12 @@ import {
6
6
  resolveSwarmKnowledgePath,
7
7
  transactKnowledge,
8
8
  wordBigrams
9
- } from "./index-42nq97rb.js";
9
+ } from "./index-kv2j4cnq.js";
10
10
  import {
11
11
  queryHistoricalOutcomes,
12
12
  readKnowledgeEvents,
13
13
  recordKnowledgeEvent
14
- } from "./index-cr90rcg3.js";
14
+ } from "./index-dp5w9s5z.js";
15
15
  import {
16
16
  init_knowledge_types,
17
17
  isActiveStatus
@@ -224,11 +224,11 @@ async function maybeQuarantineOnContradiction(directory, entryId, threshold, win
224
224
  alreadyInactive: true
225
225
  };
226
226
  }
227
- const { quarantineEntry } = await import("./knowledge-validator-q5jc0scs.js");
227
+ const { quarantineEntry } = await import("./knowledge-validator-pnmdsw2b.js");
228
228
  let policyConfig;
229
229
  try {
230
- const { KnowledgeConfigSchema } = await import("./schema-t8bmshhj.js");
231
- const { loadPluginConfigWithMeta } = await import("./index-4vwn66wk.js");
230
+ const { KnowledgeConfigSchema } = await import("./schema-6rmxzg6g.js");
231
+ const { loadPluginConfigWithMeta } = await import("./index-5cbbtbvf.js");
232
232
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
233
233
  policyConfig = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
234
234
  } catch {
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  redactPath,
4
4
  redactShellCommand
5
- } from "./index-c9jr4j2q.js";
5
+ } from "./index-xsxj4vbf.js";
6
6
 
7
7
  // src/services/guardrail-log-service.ts
8
8
  import * as fs from "fs/promises";
@@ -2,14 +2,14 @@
2
2
  import {
3
3
  readKnowledge,
4
4
  transactKnowledge
5
- } from "./index-42nq97rb.js";
5
+ } from "./index-kv2j4cnq.js";
6
6
  import {
7
7
  init_git_executable,
8
8
  resolveGitExecutableAsync
9
9
  } from "./index-9e6fdz2h.js";
10
10
  import {
11
11
  resolveKnowledgeStoreDir
12
- } from "./index-w0cj7zyd.js";
12
+ } from "./index-f75qjtn5.js";
13
13
  import {
14
14
  init_knowledge_types,
15
15
  isActiveStatus
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  authorizeCuration
4
- } from "./index-e1hjd15c.js";
4
+ } from "./index-tp5ytzzg.js";
5
5
  import {
6
6
  findNearDuplicate,
7
7
  inferTags,
@@ -9,13 +9,13 @@ import {
9
9
  resolveSwarmKnowledgePath,
10
10
  resolveSwarmRejectedPath,
11
11
  transactKnowledge
12
- } from "./index-42nq97rb.js";
12
+ } from "./index-kv2j4cnq.js";
13
13
  import {
14
14
  resolveKnowledgeStoreDir
15
- } from "./index-w0cj7zyd.js";
15
+ } from "./index-f75qjtn5.js";
16
16
  import {
17
17
  atomicWriteFile
18
- } from "./index-qbpxrw95.js";
18
+ } from "./index-8py21zn6.js";
19
19
  import {
20
20
  require_proper_lockfile
21
21
  } from "./index-7g4c7s5r.js";
@@ -21,7 +21,7 @@ var package_default;
21
21
  var init_package = __esm(() => {
22
22
  package_default = {
23
23
  name: "opencode-swarm",
24
- version: "7.146.2",
24
+ version: "7.146.4",
25
25
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
26
26
  main: "dist/index.js",
27
27
  types: "dist/index.d.ts",
@@ -131,6 +131,7 @@ var init_package = __esm(() => {
131
131
  "check:events": "bun run scripts/check-event-contract.ts",
132
132
  "check:retention": "bun run scripts/check-retention-registry.ts",
133
133
  "check:test-file-cap": "bun run scripts/check-test-file-cap.ts",
134
+ "check:pending-fragment": "bun run scripts/check-pending-fragment.ts",
134
135
  "check:gate-portability": "bun run scripts/check-gate-portability.ts",
135
136
  "check:bare-spawn": "bun run scripts/check-bare-executable-spawn.ts",
136
137
  "check:memory-recall": "bun run scripts/memory-recall-regression.ts"
@@ -1384,12 +1385,25 @@ var init_schema = __esm(() => {
1384
1385
  CouncilConfigSchema = exports_external.object({
1385
1386
  enabled: exports_external.boolean().default(false),
1386
1387
  maxRounds: exports_external.number().int().min(1).max(10).default(3),
1387
- parallelTimeoutMs: exports_external.number().int().min(5000).max(120000).default(30000),
1388
+ parallelTimeoutMs: exports_external.number().int().min(5000).max(120000).default(30000).describe("DEPRECATED \u2014 inert. Accepted for parse compatibility only; no runtime consumer exists and no timeout is enforced. Config doctor warns when this is explicitly set. Remove the key; dispatch timeouts are governed by the agent host. Scheduled for removal in a future release."),
1388
1389
  vetoPriority: exports_external.boolean().default(true),
1389
1390
  requireAllMembers: exports_external.boolean().default(false).describe("When true, submit_council_verdicts rejects if fewer than 5 member verdicts are provided. Equivalent to minimumMembers: 5."),
1390
- minimumMembers: exports_external.number().int().min(1).max(5).default(3).describe("Minimum distinct council member verdicts required for synthesis. Default 3. Set to 1 to disable quorum enforcement. requireAllMembers: true overrides this to 5 (stricter constraint wins)."),
1391
- escalateOnMaxRounds: exports_external.string().optional().describe("Optional webhook URL or handler name invoked when maxRounds is reached without APPROVE. Declared for forward compatibility; no behavior is implemented yet."),
1391
+ minimumMembers: exports_external.number().int().min(1).max(5).default(3).describe("Minimum distinct council member verdicts required for synthesis (task/phase councils only \u2014 the final council uses finalCompletionPolicy). Default 3. Set to 1 to disable quorum enforcement. requireAllMembers: true overrides this to 5 (stricter constraint wins)."),
1392
+ escalateOnMaxRounds: exports_external.string().optional().describe("Optional webhook URL or handler name declared for escalation when maxRounds is reached without APPROVE. REMAINS INERT \u2014 no handler or webhook execution exists or is added; config doctor warns when it is set (issue #1650). Max-rounds exhaustion emits a durable structured event and a user escalation message; wiring real outbound escalation requires a separate security review."),
1392
1393
  phaseConcernsAllowComplete: exports_external.boolean().default(true).describe("When true, a phase-level council CONCERNS verdict with only MEDIUM/LOW findings does NOT block phase completion \u2014 the advisory notes are logged as warnings and the phase proceeds. When false, CONCERNS blocks like REJECT. Note: HIGH/CRITICAL findings from CONCERNS members are always promoted to requiredFixes and block at the tool level regardless of this setting. Default: true."),
1394
+ finalCompletionPolicy: exports_external.object({
1395
+ mode: exports_external.enum(["all_required", "quorum"]).default("all_required").describe("'all_required' (default) preserves the exact legacy final council: all five canonical roles, five distinct members, zero absentees. 'quorum' is an explicit weakening that accepts a bounded minimum of distinct canonical members instead of all five."),
1396
+ minimumMembers: exports_external.number().int().min(3).max(5).optional().describe('Required when mode is "quorum": minimum distinct canonical council members (3\u20135) that must vote. Unknown, duplicate, and cross-swarm identities never count.')
1397
+ }).default({ mode: "all_required" }).superRefine((policy, ctx) => {
1398
+ if (policy.mode === "quorum" && policy.minimumMembers === undefined) {
1399
+ ctx.addIssue({
1400
+ code: "custom",
1401
+ path: ["minimumMembers"],
1402
+ message: 'finalCompletionPolicy.mode "quorum" requires an explicit minimumMembers between 3 and 5.'
1403
+ });
1404
+ }
1405
+ }).describe("Final-council completion policy. Missing/default is all_required (strict five-member requirement). The normalized policy participates in the council policy digest, so any change invalidates previously accepted final-council evidence."),
1406
+ freshnessMaxAgeHours: exports_external.number().int().min(1).max(720).default(24).describe("Maximum age (hours, 1\u2013720) of phase-council, architecture-supervisor, and final-council evidence. Default 24 preserves prior behavior. Part of the council policy digest, so changing it invalidates prior council evidence."),
1393
1407
  general: GeneralCouncilConfigSchema.optional()
1394
1408
  }).strict();
1395
1409
  PrMonitorConfigSchema = exports_external.object({
@@ -9,7 +9,7 @@ import {
9
9
  readEvaluationRun,
10
10
  saveEvaluationRun,
11
11
  saveTaskSetSnapshot
12
- } from "./index-zkaz3fhw.js";
12
+ } from "./index-p3k155dv.js";
13
13
  import {
14
14
  canonicalHash,
15
15
  computeCandidateInputContentHash,
@@ -42,8 +42,8 @@ var SWARM_TEMP_GRAMMARS = [
42
42
  token: "instance",
43
43
  quarantineEligible: true,
44
44
  parsesTarget: true,
45
- producers: ["src/hooks/pr-workflow-gate.ts:12961"],
46
- note: "pre/post-rename file-identity verification (assertOpened/ClosedSwarmFileIdentity, pr-workflow-gate.ts:11844-11889) is writer-specific and load-bearing"
45
+ producers: ["src/hooks/pr-workflow-gate.ts:13358"],
46
+ note: "pre/post-rename file-identity verification (assertOpened/ClosedSwarmFileIdentity, pr-workflow-gate.ts:13300-13356) is writer-specific and load-bearing"
47
47
  },
48
48
  {
49
49
  id: "target-suffix-tmp-num-num-json",
@@ -123,10 +123,10 @@ var SWARM_TEMP_GRAMMARS = [
123
123
  "src/tools/spec-write.ts:98",
124
124
  "src/sdd/effective-spec.ts:1149",
125
125
  "src/background/lane-output-store.ts:353",
126
- "src/background/pending-delegations.ts:905",
126
+ "src/background/pending-delegations.ts:922",
127
127
  "src/background/delegation-health.ts:300",
128
128
  "src/hooks/delegation-gate/worktree-provisioning-owner.ts:100",
129
- "src/tools/submit-phase-council-verdicts.ts:437",
129
+ "src/tools/submit-phase-council-verdicts.ts:458",
130
130
  "src/summaries/store.ts:46 (pre-#2035)"
131
131
  ],
132
132
  note: "background lane/delegation stores keep bounded-retry rename semantics wired into their callers (#2034/#2276 delivery contracts); migration candidates for a follow-up but grammars registered"
@@ -171,7 +171,7 @@ var SWARM_TEMP_GRAMMARS = [
171
171
  quarantineEligible: true,
172
172
  parsesTarget: true,
173
173
  producers: [
174
- "src/tools/write-pr-review-artifact.ts:107",
174
+ "src/tools/write-pr-review-artifact.ts:135",
175
175
  "src/tools/write-pr-review-trigger-eval.ts:574"
176
176
  ],
177
177
  note: "bundled-skills writes outside .swarm (project skill roots) and keeps its own contained-directory logic (invariant 4 bundled-skill ownership)"
@@ -232,7 +232,7 @@ var SWARM_TEMP_GRAMMARS = [
232
232
  "src/tools/record-recurrence-sweep.ts:125",
233
233
  "src/tools/record-issue-reproduction.ts:85",
234
234
  "src/tools/record-issue-publication.ts:74",
235
- "src/tools/write-final-council-evidence.ts:311"
235
+ "src/tools/write-final-council-evidence.ts:403"
236
236
  ],
237
237
  note: "constant-name temps: no per-invocation token \u2014 reported when stale, never auto-quarantined (may be an in-flight writer of any process)"
238
238
  },
@@ -294,6 +294,7 @@ var WRITER_CLASSIFICATION = Object.freeze({
294
294
  "src/commands/archive-sqlite.ts": "registered-bespoke",
295
295
  "src/context-map/capsule-persistence.ts": "registered-bespoke",
296
296
  "src/context-map/persistence.ts": "registered-bespoke",
297
+ "src/context-map/telemetry.ts": "registered-bespoke",
297
298
  "src/evidence/documents-retention.ts": "registered-bespoke",
298
299
  "src/evidence/manager.ts": "registered-bespoke",
299
300
  "src/full-auto/state.ts": "registered-bespoke",
@@ -12,14 +12,14 @@ import {
12
12
  detectPosixWrites,
13
13
  detectWindowsWrites,
14
14
  resolveWriteTargets
15
- } from "./index-rfph0nhf.js";
15
+ } from "./index-brb64k96.js";
16
16
  import {
17
17
  checkFileAuthority,
18
18
  classifyFile,
19
19
  isInDeclaredScope,
20
20
  redactPath,
21
21
  redactShellCommand
22
- } from "./index-c9jr4j2q.js";
22
+ } from "./index-xsxj4vbf.js";
23
23
 
24
24
  // src/services/guardrail-explain-service.ts
25
25
  import path from "path";
@@ -92,7 +92,7 @@ var _internals = {
92
92
  symlinkSync: fs.symlinkSync
93
93
  },
94
94
  writeScopeToDisk: async (directory, taskId, files) => {
95
- const { writeScopeToDisk: realWrite } = await import("./scope-persistence-2kyrgsca.js");
95
+ const { writeScopeToDisk: realWrite } = await import("./scope-persistence-23cqafkx.js");
96
96
  return realWrite(directory, taskId, files);
97
97
  },
98
98
  writeLaneProfileToDisk: async (_worktreePath, _laneIndex, _envOverrides) => {
@@ -6,10 +6,10 @@ import {
6
6
  } from "./index-ae75rja9.js";
7
7
  import {
8
8
  resolveKnowledgeStoreDir
9
- } from "./index-w0cj7zyd.js";
9
+ } from "./index-f75qjtn5.js";
10
10
  import {
11
11
  atomicWriteFile
12
- } from "./index-qbpxrw95.js";
12
+ } from "./index-8py21zn6.js";
13
13
  import {
14
14
  init_knowledge_types,
15
15
  isActiveStatus
@@ -709,7 +709,7 @@ async function applyConfidenceFloorAction(directory, touched, options) {
709
709
  const {
710
710
  readAuthoritativeKnowledgeCounterRollups,
711
711
  effectiveRetrievalOutcomes
712
- } = await import("./knowledge-events-x975ngy4.js");
712
+ } = await import("./knowledge-events-jyqy3st8.js");
713
713
  const rollups = await readAuthoritativeKnowledgeCounterRollups(directory);
714
714
  const flagIds = new Set;
715
715
  for (const e of atFloor) {
@@ -776,11 +776,11 @@ async function applyConfidenceFloorAction(directory, touched, options) {
776
776
  });
777
777
  }
778
778
  if (action === "quarantine" && toQuarantine.length > 0) {
779
- const { quarantineEntry } = await import("./knowledge-validator-q5jc0scs.js");
780
- const { KnowledgeConfigSchema } = await import("./schema-t8bmshhj.js");
779
+ const { quarantineEntry } = await import("./knowledge-validator-pnmdsw2b.js");
780
+ const { KnowledgeConfigSchema } = await import("./schema-6rmxzg6g.js");
781
781
  let config;
782
782
  try {
783
- const { loadPluginConfigWithMeta } = await import("./index-4vwn66wk.js");
783
+ const { loadPluginConfigWithMeta } = await import("./index-5cbbtbvf.js");
784
784
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
785
785
  config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
786
786
  } catch {
@@ -9,11 +9,11 @@ import {
9
9
  } from "./index-y8552snf.js";
10
10
  import {
11
11
  atomicWriteFile
12
- } from "./index-qbpxrw95.js";
12
+ } from "./index-8py21zn6.js";
13
13
  import {
14
14
  assertProjectRoot,
15
15
  withEvidenceLock
16
- } from "./index-bghwrr59.js";
16
+ } from "./index-6q35swn2.js";
17
17
  import {
18
18
  exports_external,
19
19
  init_zod