sneakoscope 4.8.7 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/README.md +51 -726
  2. package/bench/tasks/t01-off-by-one/repo/package.json +9 -0
  3. package/bench/tasks/t01-off-by-one/repo/src/pagination.js +5 -0
  4. package/bench/tasks/t01-off-by-one/repo/test.js +5 -0
  5. package/bench/tasks/t01-off-by-one/task.json +13 -0
  6. package/bench/tasks/t02-signature-cochange/repo/package.json +9 -0
  7. package/bench/tasks/t02-signature-cochange/repo/src/admin.js +5 -0
  8. package/bench/tasks/t02-signature-cochange/repo/src/audit.js +5 -0
  9. package/bench/tasks/t02-signature-cochange/repo/src/labels.js +3 -0
  10. package/bench/tasks/t02-signature-cochange/repo/src/profile.js +5 -0
  11. package/bench/tasks/t02-signature-cochange/repo/test.js +9 -0
  12. package/bench/tasks/t02-signature-cochange/task.json +12 -0
  13. package/bench/tasks/t03-type-puzzle/repo/package.json +9 -0
  14. package/bench/tasks/t03-type-puzzle/repo/src/config.js +4 -0
  15. package/bench/tasks/t03-type-puzzle/repo/test.js +6 -0
  16. package/bench/tasks/t03-type-puzzle/task.json +13 -0
  17. package/bench/tasks/t04-refactor-preserve/repo/package.json +9 -0
  18. package/bench/tasks/t04-refactor-preserve/repo/src/cart.js +8 -0
  19. package/bench/tasks/t04-refactor-preserve/repo/test.js +4 -0
  20. package/bench/tasks/t04-refactor-preserve/task.json +12 -0
  21. package/bench/tasks/t05-performance/repo/package.json +9 -0
  22. package/bench/tasks/t05-performance/repo/src/pairs.js +9 -0
  23. package/bench/tasks/t05-performance/repo/test.js +11 -0
  24. package/bench/tasks/t05-performance/task.json +12 -0
  25. package/bench/tasks/t06-mistake-rule/repo/package.json +9 -0
  26. package/bench/tasks/t06-mistake-rule/repo/src/loader.js +6 -0
  27. package/bench/tasks/t06-mistake-rule/repo/test.js +7 -0
  28. package/bench/tasks/t06-mistake-rule/task.json +12 -0
  29. package/config/bench-baseline.json +7 -0
  30. package/crates/sks-core/Cargo.lock +1 -1
  31. package/crates/sks-core/Cargo.toml +1 -1
  32. package/crates/sks-core/src/main.rs +1 -1
  33. package/dist/bin/install.js +35 -0
  34. package/dist/bin/sks.js +1 -1
  35. package/dist/cli/cli-theme.js +51 -0
  36. package/dist/cli/command-registry.js +15 -4
  37. package/dist/cli/help-fast.js +18 -8
  38. package/dist/cli/insane-search-command.js +36 -8
  39. package/dist/cli/install-helpers.js +32 -0
  40. package/dist/commands/codex-lb.js +2 -0
  41. package/dist/commands/doctor.js +62 -6
  42. package/dist/commands/proof.js +6 -3
  43. package/dist/config/skills-manifest.json +82 -54
  44. package/dist/core/agents/agent-conflict-graph.js +5 -0
  45. package/dist/core/agents/agent-lease.js +5 -0
  46. package/dist/core/agents/agent-ledger-schemas.js +1 -0
  47. package/dist/core/agents/agent-orchestrator.js +268 -62
  48. package/dist/core/agents/agent-output-validator.js +14 -3
  49. package/dist/core/agents/agent-patch-queue-store.js +95 -2
  50. package/dist/core/agents/agent-patch-queue.js +6 -3
  51. package/dist/core/agents/agent-patch-schema.js +13 -0
  52. package/dist/core/agents/agent-proof-evidence.js +6 -1
  53. package/dist/core/agents/agent-runner-fake.js +40 -0
  54. package/dist/core/agents/agent-worker-pipeline.js +36 -2
  55. package/dist/core/agents/codex-exec-worker-adapter.js +2 -0
  56. package/dist/core/agents/native-worker-backend-router.js +58 -1
  57. package/dist/core/codex-app/sks-menubar.js +18 -5
  58. package/dist/core/codex-app.js +1 -0
  59. package/dist/core/codex-control/codex-sdk-config-policy.js +2 -1
  60. package/dist/core/codex-control/codex-sdk-env-policy.js +1 -1
  61. package/dist/core/codex-control/schemas/agent-worker-result.schema.js +12 -3
  62. package/dist/core/codex-hooks/codex-hook-managed-install.js +5 -0
  63. package/dist/core/codex-hooks/codex-hook-state-writer.js +70 -11
  64. package/dist/core/codex-hooks/codex-hook-trust-doctor.js +2 -2
  65. package/dist/core/codex-lb/codex-lb-env.js +20 -1
  66. package/dist/core/commands/basic-cli.js +21 -2
  67. package/dist/core/commands/check-command.js +37 -5
  68. package/dist/core/commands/computer-use-command.js +62 -7
  69. package/dist/core/commands/db-command.js +31 -5
  70. package/dist/core/commands/fast-mode-command.js +3 -0
  71. package/dist/core/commands/gate-result-contract.js +43 -0
  72. package/dist/core/commands/gates-command.js +6 -1
  73. package/dist/core/commands/gc-command.js +29 -2
  74. package/dist/core/commands/goal-command.js +9 -2
  75. package/dist/core/commands/gx-command.js +79 -7
  76. package/dist/core/commands/image-ux-review-command.js +188 -13
  77. package/dist/core/commands/mad-db-command.js +85 -176
  78. package/dist/core/commands/mad-sks-command.js +230 -29
  79. package/dist/core/commands/menubar-command.js +22 -1
  80. package/dist/core/commands/naruto-command.js +64 -10
  81. package/dist/core/commands/plan-command.js +76 -0
  82. package/dist/core/commands/ppt-command.js +159 -24
  83. package/dist/core/commands/qa-loop-command.js +6 -2
  84. package/dist/core/commands/release-command.js +55 -2
  85. package/dist/core/commands/research-command.js +1 -1
  86. package/dist/core/commands/review-command.js +217 -0
  87. package/dist/core/commands/route-success-helpers.js +59 -0
  88. package/dist/core/commands/run-command.js +19 -7
  89. package/dist/core/commands/seo-command.js +49 -1
  90. package/dist/core/commands/ui-command.js +161 -0
  91. package/dist/core/commands/uninstall-command.js +15 -1
  92. package/dist/core/db-safety.js +2 -2
  93. package/dist/core/doctor/doctor-transaction.js +8 -0
  94. package/dist/core/doctor/doctor-zellij-repair.js +1 -0
  95. package/dist/core/doctor/imagegen-repair.js +161 -0
  96. package/dist/core/feature-fixture-runner.js +2 -2
  97. package/dist/core/feature-fixtures.js +58 -37
  98. package/dist/core/feature-registry.js +102 -2
  99. package/dist/core/fsx.js +39 -6
  100. package/dist/core/image-ux-review/imagegen-adapter.js +48 -11
  101. package/dist/core/image-ux-review.js +16 -0
  102. package/dist/core/imagegen/imagegen-capability.js +11 -5
  103. package/dist/core/imagegen/require-imagegen.js +57 -0
  104. package/dist/core/init/skills.js +10 -5
  105. package/dist/core/mad-db/mad-db-coordinator.js +94 -18
  106. package/dist/core/mad-db/mad-db-policy.js +12 -10
  107. package/dist/core/mad-sks/executors/executor-base.js +8 -2
  108. package/dist/core/mad-sks/executors/index.js +4 -0
  109. package/dist/core/mad-sks/executors/sql-plane-executor.js +194 -0
  110. package/dist/core/naruto/naruto-active-pool.js +15 -4
  111. package/dist/core/naruto/naruto-real-worker-child.js +10 -0
  112. package/dist/core/naruto/naruto-role-policy.js +3 -0
  113. package/dist/core/naruto/naruto-task-hints.js +10 -0
  114. package/dist/core/naruto/naruto-work-graph.js +8 -2
  115. package/dist/core/naruto/naruto-work-item.js +6 -0
  116. package/dist/core/naruto/solution-tournament.js +101 -0
  117. package/dist/core/permission-gates.js +30 -0
  118. package/dist/core/pipeline-internals/runtime-core.js +11 -3
  119. package/dist/core/pipeline-internals/runtime-gates.js +27 -0
  120. package/dist/core/ppt-review/index.js +6 -1
  121. package/dist/core/ppt-review/slide-imagegen-review.js +75 -10
  122. package/dist/core/ppt.js +70 -2
  123. package/dist/core/proof/auto-finalize.js +70 -11
  124. package/dist/core/proof/proof-schema.js +2 -0
  125. package/dist/core/proof/route-adapter.js +5 -1
  126. package/dist/core/proof/route-finalizer.js +8 -5
  127. package/dist/core/proof/selftest-proof-fixtures.js +18 -5
  128. package/dist/core/proof/validation.js +2 -0
  129. package/dist/core/provider/model-router.js +53 -0
  130. package/dist/core/release/release-gate-node.js +3 -0
  131. package/dist/core/release/release-gate-resource-governor.js +1 -0
  132. package/dist/core/routes/constants.js +1 -1
  133. package/dist/core/routes.js +65 -18
  134. package/dist/core/safety/mutation-guard.js +5 -1
  135. package/dist/core/stop-gate/gate-evaluator.js +102 -0
  136. package/dist/core/stop-gate/stop-gate-check.js +16 -1
  137. package/dist/core/stop-gate/stop-gate-writer.js +4 -0
  138. package/dist/core/triwiki/agents-md-projector.js +184 -0
  139. package/dist/core/triwiki-wrongness/wrongness-schema.js +3 -1
  140. package/dist/core/trust-kernel/trust-kernel-schema.js +1 -0
  141. package/dist/core/trust-kernel/trust-report.js +1 -1
  142. package/dist/core/trust-kernel/trust-status.js +2 -0
  143. package/dist/core/ui/dashboard-html.js +111 -0
  144. package/dist/core/update/update-migration-state.js +366 -15
  145. package/dist/core/update-check.js +178 -81
  146. package/dist/core/verification/diff-quality.js +100 -0
  147. package/dist/core/verification/impact-scan.js +164 -0
  148. package/dist/core/verification/machine-feedback.js +146 -0
  149. package/dist/core/verification/mistake-rule-compiler.js +195 -0
  150. package/dist/core/version.js +1 -1
  151. package/dist/core/zellij/zellij-self-heal.js +9 -6
  152. package/dist/scripts/check-feature-quality.js +2 -2
  153. package/dist/scripts/cli-output-consistency-check.js +57 -0
  154. package/dist/scripts/coding-bench-check.js +136 -0
  155. package/dist/scripts/doctor-imagegen-repair-check.js +62 -0
  156. package/dist/scripts/ensure-bin-executable.js +11 -3
  157. package/dist/scripts/harness-benchmark-check.js +104 -0
  158. package/dist/scripts/legacy-update-e2e-check.js +228 -0
  159. package/dist/scripts/mad-db-command-check.js +11 -8
  160. package/dist/scripts/mad-db-route-identity-check.js +8 -6
  161. package/dist/scripts/mad-db-safety-conflict-matrix-check.js +31 -8
  162. package/dist/scripts/mad-db-skill-policy-snapshot-check.js +4 -5
  163. package/dist/scripts/ppt-real-imagegen-wiring-check.js +5 -1
  164. package/dist/scripts/proof-root-cause-policy-check.js +2 -0
  165. package/dist/scripts/release-dag-full-coverage-check.js +13 -4
  166. package/dist/scripts/release-gate-dag-runner.js +14 -0
  167. package/dist/scripts/release-gate-existence-audit.js +2 -1
  168. package/dist/scripts/release-gate-planner.js +2 -1
  169. package/dist/scripts/release-gate-script-parity-check.js +1 -1
  170. package/dist/scripts/release-metadata-1-19-check.js +2 -1
  171. package/dist/scripts/seo-geo-feature-fixture-quality-check.js +1 -1
  172. package/dist/scripts/sks-1-11-gate-lib.js +8 -6
  173. package/dist/scripts/ux-review-real-loop-fixture-check.js +9 -4
  174. package/dist/scripts/ux-review-run-wires-imagegen-check.js +4 -0
  175. package/docs/assets/sneakoscope-architecture-pipeline.jpg +0 -0
  176. package/docs/demo.tape +28 -0
  177. package/package.json +67 -3
  178. package/schemas/codex/completion-proof.schema.json +3 -2
  179. package/schemas/release/release-gate-node.schema.json +2 -1
  180. package/dist/scripts/agent-backfill-route-blackbox.js +0 -5
  181. package/dist/scripts/agent-dynamic-pool-route-blackbox.js +0 -5
  182. package/dist/scripts/agent-parallel-write-blackbox.js +0 -56
  183. package/dist/scripts/agent-patch-swarm-route-blackbox.js +0 -10
  184. package/dist/scripts/agent-route-blackbox-lib.js +0 -132
  185. package/dist/scripts/blackbox-command-import-smoke.js +0 -143
  186. package/dist/scripts/blackbox-global-shim.js +0 -77
  187. package/dist/scripts/blackbox-matrix.js +0 -70
  188. package/dist/scripts/blackbox-npx-one-shot.js +0 -69
  189. package/dist/scripts/blackbox-pack-install.js +0 -174
  190. package/dist/scripts/brand-neutrality-zero-leakage-blackbox.js +0 -4
  191. package/dist/scripts/build-once-runner-blackbox.js +0 -34
  192. package/dist/scripts/codex-0140-integration-blackbox.js +0 -13
  193. package/dist/scripts/codex-agent-type-blackbox.js +0 -4
  194. package/dist/scripts/codex-app-harness-blackbox.js +0 -4
  195. package/dist/scripts/codex-app-skill-agent-blackbox.js +0 -4
  196. package/dist/scripts/codex-hook-approval-blackbox.js +0 -4
  197. package/dist/scripts/codex-init-deep-directory-local-blackbox.js +0 -4
  198. package/dist/scripts/codex-native-feature-broker-blackbox.js +0 -4
  199. package/dist/scripts/codex-native-pattern-analysis-blackbox.js +0 -4
  200. package/dist/scripts/codex-native-read-repair-split-blackbox.js +0 -55
  201. package/dist/scripts/codex-native-reference-cache-blackbox.js +0 -41
  202. package/dist/scripts/core-skill-integrity-blackbox.js +0 -32
  203. package/dist/scripts/dfix-fast-blackbox-check.js +0 -37
  204. package/dist/scripts/dfix-parallel-write-blackbox.js +0 -48
  205. package/dist/scripts/dfix-patch-swarm-route-blackbox.js +0 -10
  206. package/dist/scripts/doctor-context7-mcp-repair-blackbox.js +0 -16
  207. package/dist/scripts/doctor-dirty-repair-blackbox.js +0 -22
  208. package/dist/scripts/doctor-dirty-semantic-blackbox.js +0 -8
  209. package/dist/scripts/doctor-fix-production-blackbox.js +0 -26
  210. package/dist/scripts/doctor-native-capability-repair-blackbox.js +0 -39
  211. package/dist/scripts/doctor-startup-config-repair-blackbox.js +0 -13
  212. package/dist/scripts/doctor-supabase-mcp-repair-blackbox.js +0 -14
  213. package/dist/scripts/doctor-transaction-engine-blackbox.js +0 -28
  214. package/dist/scripts/doctor-zellij-fix-blackbox.js +0 -4
  215. package/dist/scripts/doctor-zellij-no-homebrew-blackbox.js +0 -4
  216. package/dist/scripts/doctor-zellij-upgrade-blackbox.js +0 -4
  217. package/dist/scripts/gate-pack-runner-blackbox.js +0 -27
  218. package/dist/scripts/gate-pack-v2-blackbox.js +0 -18
  219. package/dist/scripts/geo-cli-blackbox-check.js +0 -18
  220. package/dist/scripts/loop-collision-blackbox.js +0 -3
  221. package/dist/scripts/loop-concurrency-oversubscription-blackbox.js +0 -3
  222. package/dist/scripts/loop-fixture-production-misuse-blackbox.js +0 -3
  223. package/dist/scripts/loop-kill-interrupt-real-blackbox.js +0 -3
  224. package/dist/scripts/loop-merge-strategy-blackbox.js +0 -3
  225. package/dist/scripts/loop-mesh-production-e2e-blackbox.js +0 -3
  226. package/dist/scripts/loop-side-effect-blackbox.js +0 -3
  227. package/dist/scripts/mad-db-operation-lifecycle-blackbox.js +0 -29
  228. package/dist/scripts/mad-sks-actual-executor-blackbox.js +0 -5
  229. package/dist/scripts/mad-zellij-headless-fallback-blackbox.js +0 -4
  230. package/dist/scripts/mad-zellij-self-heal-blackbox.js +0 -4
  231. package/dist/scripts/naruto-loop-mesh-blackbox.js +0 -3
  232. package/dist/scripts/naruto-real-parallelism-blackbox.js +0 -307
  233. package/dist/scripts/naruto-worktree-coding-blackbox.js +0 -29
  234. package/dist/scripts/parallel-runtime-real-blackbox.js +0 -44
  235. package/dist/scripts/pipeline-codex-native-doctor-mad-routing-real-blackbox.js +0 -77
  236. package/dist/scripts/pipeline-codex-native-e2e-blackbox.js +0 -13
  237. package/dist/scripts/pipeline-codex-native-image-routing-real-blackbox.js +0 -50
  238. package/dist/scripts/pipeline-codex-native-loop-routing-real-blackbox.js +0 -74
  239. package/dist/scripts/pipeline-codex-native-qa-routing-real-blackbox.js +0 -51
  240. package/dist/scripts/pipeline-codex-native-research-routing-real-blackbox.js +0 -45
  241. package/dist/scripts/pipeline-execution-profile-routing-blackbox.js +0 -4
  242. package/dist/scripts/postinstall-global-doctor-blackbox.js +0 -12
  243. package/dist/scripts/ppt-full-e2e-blackbox-check.js +0 -109
  244. package/dist/scripts/ppt-imagegen-blackbox-check.js +0 -46
  245. package/dist/scripts/project-skill-dedupe-blackbox.js +0 -36
  246. package/dist/scripts/qa-backfill-route-blackbox.js +0 -5
  247. package/dist/scripts/qa-patch-swarm-route-blackbox.js +0 -10
  248. package/dist/scripts/release-full-parallelism-blackbox.js +0 -41
  249. package/dist/scripts/release-triwiki-first-runner-blackbox.js +0 -48
  250. package/dist/scripts/release-wiring-3110-blackbox.js +0 -27
  251. package/dist/scripts/release-wiring-3112-blackbox.js +0 -17
  252. package/dist/scripts/release-wiring-3113-blackbox.js +0 -17
  253. package/dist/scripts/research-backfill-route-blackbox.js +0 -5
  254. package/dist/scripts/research-final-reviewer-blackbox.js +0 -70
  255. package/dist/scripts/research-stage-cycle-runtime-blackbox.js +0 -40
  256. package/dist/scripts/research-synthesis-writer-blackbox.js +0 -24
  257. package/dist/scripts/route-blackbox-realism-check.js +0 -21
  258. package/dist/scripts/scheduler-resource-claim-blackbox.js +0 -24
  259. package/dist/scripts/seo-cli-blackbox-check.js +0 -18
  260. package/dist/scripts/sks-3110-all-feature-regression-blackbox.js +0 -116
  261. package/dist/scripts/sks-3112-all-feature-regression-blackbox.js +0 -29
  262. package/dist/scripts/sks-3113-all-feature-regression-blackbox.js +0 -17
  263. package/dist/scripts/sks-400-all-feature-regression-blackbox.js +0 -21
  264. package/dist/scripts/sks-400-extreme-parallel-blackbox.js +0 -8
  265. package/dist/scripts/sks-400-five-minute-blackbox.js +0 -9
  266. package/dist/scripts/sks-400-legacy-purge-blackbox.js +0 -8
  267. package/dist/scripts/sks-401-all-feature-regression-blackbox.js +0 -46
  268. package/dist/scripts/sks-401-five-minute-actual-blackbox.js +0 -23
  269. package/dist/scripts/sks-402-all-feature-regression-blackbox.js +0 -9
  270. package/dist/scripts/sks-402-five-minute-real-blackbox.js +0 -22
  271. package/dist/scripts/sksd-warm-cache-blackbox.js +0 -12
  272. package/dist/scripts/supabase-secret-preservation-blackbox.js +0 -29
  273. package/dist/scripts/team-backfill-route-blackbox.js +0 -5
  274. package/dist/scripts/team-parallel-write-blackbox.js +0 -55
  275. package/dist/scripts/team-patch-swarm-route-blackbox.js +0 -10
  276. package/dist/scripts/triwiki-affected-graph-blackbox.js +0 -28
  277. package/dist/scripts/triwiki-proof-bank-blackbox.js +0 -30
  278. package/dist/scripts/triwiki-proof-bank-lock-blackbox.js +0 -7
  279. package/dist/scripts/update-preserves-supabase-keys-blackbox.js +0 -27
  280. package/dist/scripts/ux-patch-swarm-route-blackbox.js +0 -10
  281. package/dist/scripts/ux-review-imagegen-blackbox-check.js +0 -67
  282. package/dist/scripts/zellij-initial-main-only-blackbox.js +0 -28
  283. package/dist/scripts/zellij-pane-lock-concurrency-blackbox.js +0 -80
  284. package/dist/scripts/zellij-pane-lock-open-worker-integration-blackbox.js +0 -137
  285. package/dist/scripts/zellij-self-heal-typed-blackbox.js +0 -4
  286. package/dist/scripts/zellij-slot-telemetry-real-blackbox.js +0 -20
  287. package/dist/scripts/zellij-stacked-fallback-integration-blackbox.js +0 -81
  288. package/dist/scripts/zellij-worker-pane-real-ui-blackbox.js +0 -202
@@ -1,39 +1,39 @@
1
1
  {
2
2
  "schema": "sks.skills-manifest.v1",
3
- "package_version": "4.8.7",
3
+ "package_version": "5.1.2",
4
4
  "skills": [
5
5
  {
6
6
  "canonical_name": "answer",
7
7
  "type": "official",
8
- "content_sha256": "eb501fbc70c0ba8fd6df6abcbe5cda0bc39693e0f0abc6c8867f4ef441fa793d",
8
+ "content_sha256": "60713f899c13699e3b331f26287a1c04d5d54e0dba35cce8e16956dece6f2160",
9
9
  "hash_history": [],
10
10
  "deprecated_aliases": []
11
11
  },
12
12
  {
13
13
  "canonical_name": "autoresearch",
14
14
  "type": "official",
15
- "content_sha256": "1250cf46bc3fa1c66c4b5a44315631848a4ef5c326ad194aca0f964d274ffcf8",
15
+ "content_sha256": "51a573bf4489ff5eedaae8b2619ceb7d190b5028999e3ac475abf516d44c09bc",
16
16
  "hash_history": [],
17
17
  "deprecated_aliases": []
18
18
  },
19
19
  {
20
20
  "canonical_name": "autoresearch-loop",
21
21
  "type": "official",
22
- "content_sha256": "2baab5c1b25d265494981303ae4c33715dc27154f64662badf447a7d88f1117f",
22
+ "content_sha256": "694b350433eaa8dbc7508b9373d06c2170031dbe16d90fc98fba8a34cfd9bdb9",
23
23
  "hash_history": [],
24
24
  "deprecated_aliases": []
25
25
  },
26
26
  {
27
27
  "canonical_name": "commit",
28
28
  "type": "official",
29
- "content_sha256": "aa6a9593461eba7abd11b8c9bc035d9a1d496f1798fb013ec09288777d1f3c43",
29
+ "content_sha256": "106e93dffcd465cce75d37a874f58d8f01bdb2348c6887f0d51fe7d24de7906a",
30
30
  "hash_history": [],
31
31
  "deprecated_aliases": []
32
32
  },
33
33
  {
34
34
  "canonical_name": "commit-and-push",
35
35
  "type": "official",
36
- "content_sha256": "7866ccc825979a7a501f905485c91b10d73f646292b5d5fd07111928afe324fa",
36
+ "content_sha256": "e818c535ab15c36c8ad36d4fe4e54aa77a402905608068674c6b60c830d1a87e",
37
37
  "hash_history": [],
38
38
  "deprecated_aliases": []
39
39
  },
@@ -47,56 +47,56 @@
47
47
  {
48
48
  "canonical_name": "computer-use-fast",
49
49
  "type": "official",
50
- "content_sha256": "7d7dd5da1b4e7e673183f736dc0b9adf1b3235d18dfa17dc616e2e5a3f77429f",
50
+ "content_sha256": "ee2385c268225c6e9950d4d10df759f555e2d5d0fb9122265ef1d01829a9a8b3",
51
51
  "hash_history": [],
52
52
  "deprecated_aliases": []
53
53
  },
54
54
  {
55
55
  "canonical_name": "context7-docs",
56
56
  "type": "official",
57
- "content_sha256": "bac43a8e4c8fd76b994e7af28b0ce2d56306dcaac72136328ebb3514b988bbbd",
57
+ "content_sha256": "65802524044ec7f72b30182b57827fdcabecfe961de4e444ff88b61a987522c7",
58
58
  "hash_history": [],
59
59
  "deprecated_aliases": []
60
60
  },
61
61
  {
62
62
  "canonical_name": "cu",
63
63
  "type": "official",
64
- "content_sha256": "96bb1df88ff15a94e91d903d2eac5bf0ffd49d8f6365d71818cd4ffa8c936b3f",
64
+ "content_sha256": "446a82ad000dd817067505c81b3c3bef7f9064880dab16c976bdfb8f32942db9",
65
65
  "hash_history": [],
66
66
  "deprecated_aliases": []
67
67
  },
68
68
  {
69
69
  "canonical_name": "db",
70
70
  "type": "official",
71
- "content_sha256": "b3e208167c5a01b4e88f8ac2026dbdf3d8a9f7976fe5bb1aabc60b5035da8278",
71
+ "content_sha256": "c87f491658fbd2980515fe24c429f47a1508b4245675bfa00066647046eec4ed",
72
72
  "hash_history": [],
73
73
  "deprecated_aliases": []
74
74
  },
75
75
  {
76
76
  "canonical_name": "db-safety-guard",
77
77
  "type": "official",
78
- "content_sha256": "49eef27e8c37732660a5ebe26b47a84e7e7cc685917b0acbdf7eb3a94e366887",
78
+ "content_sha256": "55fafd80ab781e7054a2a9f05872c12be6ae11a4bf5cc864124a4f50f453ff4b",
79
79
  "hash_history": [],
80
80
  "deprecated_aliases": []
81
81
  },
82
82
  {
83
83
  "canonical_name": "design-artifact-expert",
84
84
  "type": "official",
85
- "content_sha256": "5c023adcb40a555b4698179945c3b79322719d6dc3369a0947a261d31b751db0",
85
+ "content_sha256": "4f7859bce20ae4b54b18b2ffee0cbd3fe2d455f742972a3259051e2fbd458ff5",
86
86
  "hash_history": [],
87
87
  "deprecated_aliases": []
88
88
  },
89
89
  {
90
90
  "canonical_name": "design-system-builder",
91
91
  "type": "official",
92
- "content_sha256": "bec2bddc9009a670de33df3787103c8f8206f5a17070b8cb64bbab184fba2053",
92
+ "content_sha256": "131d42d8a866982018af401482ffca64ad5260884bb329a94b8bfbe68bf8a664",
93
93
  "hash_history": [],
94
94
  "deprecated_aliases": []
95
95
  },
96
96
  {
97
97
  "canonical_name": "design-ui-editor",
98
98
  "type": "official",
99
- "content_sha256": "6c3fe7738cd62378ab33aeac103f372d8e0726288e42a9ce1d2cf2caa0ace1f3",
99
+ "content_sha256": "200e0a2cdb4b34237bc9f7df0b386d3ed2344507d8a4c8b4500f7c897dbc80dc",
100
100
  "hash_history": [],
101
101
  "deprecated_aliases": []
102
102
  },
@@ -110,98 +110,98 @@
110
110
  {
111
111
  "canonical_name": "fast-mode",
112
112
  "type": "official",
113
- "content_sha256": "97f152b5575d7b0e24d321d79ec6fe498e60abce562d388ccd45d31732746be5",
113
+ "content_sha256": "9ab535faa315b9fdbe97d78746d532ef70743fbd7bd143efe3f648f3fcf26bc4",
114
114
  "hash_history": [],
115
115
  "deprecated_aliases": []
116
116
  },
117
117
  {
118
118
  "canonical_name": "fast-off",
119
119
  "type": "official",
120
- "content_sha256": "509362aa713498cf0d8c10c8b5c7b7a70b29d78da5dc2fa265d66071e7478115",
120
+ "content_sha256": "642c70a36e0bc0a090b842b2a727be347a5f10f14e2926564f1731f68053486c",
121
121
  "hash_history": [],
122
122
  "deprecated_aliases": []
123
123
  },
124
124
  {
125
125
  "canonical_name": "fast-on",
126
126
  "type": "official",
127
- "content_sha256": "f02f7c8fe1e766ed6c341d059e1ce469a8e5032438bd8381affcdbe4d6d90dde",
127
+ "content_sha256": "060780cafbf637549bfb5f960aa2c78d5abd2d29a6432214b87f122592dabe39",
128
128
  "hash_history": [],
129
129
  "deprecated_aliases": []
130
130
  },
131
131
  {
132
132
  "canonical_name": "from-chat-img",
133
133
  "type": "official",
134
- "content_sha256": "8cef38c9f7c97b31378cd626d8fa43a05cfc29cdb62ec6a0bcd77595f7ca8015",
134
+ "content_sha256": "a19ec76a4c1061ff8cd5d8869d67077e700625089b4897debc5527877568595a",
135
135
  "hash_history": [],
136
136
  "deprecated_aliases": []
137
137
  },
138
138
  {
139
139
  "canonical_name": "getdesign-reference",
140
140
  "type": "official",
141
- "content_sha256": "a86adcfbe2e031b7dd438506efba4ebccd98fba4b9a70392fccdfcb118d19116",
141
+ "content_sha256": "307f83f9725d05cb1d9b03cbdd37b0c769a3b2638fc7c7a96042215f8d9c9613",
142
142
  "hash_history": [],
143
143
  "deprecated_aliases": []
144
144
  },
145
145
  {
146
146
  "canonical_name": "goal",
147
147
  "type": "official",
148
- "content_sha256": "35456da6a929270f9df8c54a351bf0a2a867a9b903cc3918cb2e40a040d60ca6",
148
+ "content_sha256": "4065a7d4a83784b06448f2b0d2c9bb2b66da7f38e6cad87165b36c57c600fc1a",
149
149
  "hash_history": [],
150
150
  "deprecated_aliases": []
151
151
  },
152
152
  {
153
153
  "canonical_name": "gx",
154
154
  "type": "official",
155
- "content_sha256": "f5e16f2e0c8000ed9672af28090608688a72e983304451f2f13a4c70a4a21d53",
155
+ "content_sha256": "c69ff85ad8ff98ebb3bbadf8a0fe4e35bb752e00e4d1d5f6645665f7ea0d7150",
156
156
  "hash_history": [],
157
157
  "deprecated_aliases": []
158
158
  },
159
159
  {
160
160
  "canonical_name": "gx-visual-generate",
161
161
  "type": "official",
162
- "content_sha256": "15d184b6b1fe61706764568868709b912024ab8ad0e416fbaeaa480e3182c1f9",
162
+ "content_sha256": "e595fdec9d180ab8b62a24efd10bc5328f0c7b46c059c9b33791a3a3758bcec4",
163
163
  "hash_history": [],
164
164
  "deprecated_aliases": []
165
165
  },
166
166
  {
167
167
  "canonical_name": "gx-visual-read",
168
168
  "type": "official",
169
- "content_sha256": "99878b9fa667228676dc2d3b0f53ecdda8c62df94684697ad53f96699d95d5bc",
169
+ "content_sha256": "1ca14bb2d34f29cdad9761147173f1425c3633a0b5fc1380a7b16d59eb6c0d16",
170
170
  "hash_history": [],
171
171
  "deprecated_aliases": []
172
172
  },
173
173
  {
174
174
  "canonical_name": "gx-visual-validate",
175
175
  "type": "official",
176
- "content_sha256": "8a095b1d2212ac197a7912ebc64653d5f8cb3872d9bb4b5e525814ba7158ee96",
176
+ "content_sha256": "c7ffcfbafc7e5b3f9283093206cf98d06418664f04241b1e784b3f5ff754343e",
177
177
  "hash_history": [],
178
178
  "deprecated_aliases": []
179
179
  },
180
180
  {
181
181
  "canonical_name": "help",
182
182
  "type": "official",
183
- "content_sha256": "5bb21aef1078642511505a5cdc02f6a631767201255eaba3c721ca3530c47e54",
183
+ "content_sha256": "3082acc6e918088422f0e88f399df85aaef0c4bfe3c4e4a8e0834a901058ff89",
184
184
  "hash_history": [],
185
185
  "deprecated_aliases": []
186
186
  },
187
187
  {
188
188
  "canonical_name": "honest-mode",
189
189
  "type": "official",
190
- "content_sha256": "506335fe70355dfe1b045ab13e4fb746f49fc7169433ce18fec74b0c04eb987d",
190
+ "content_sha256": "12911988adfcdbe84447b6088737b4225eeed65ffff227b6e5a25ecef36b194f",
191
191
  "hash_history": [],
192
192
  "deprecated_aliases": []
193
193
  },
194
194
  {
195
195
  "canonical_name": "hproof-claim-ledger",
196
196
  "type": "official",
197
- "content_sha256": "837743afc2f559fbd294cf916b73f68d907f3bcc275c9d340342c9e876da238d",
197
+ "content_sha256": "1e316d75e3e77b77f70632de135e873fb2ebfb9749fd9147a6edfdda5158dab6",
198
198
  "hash_history": [],
199
199
  "deprecated_aliases": []
200
200
  },
201
201
  {
202
202
  "canonical_name": "hproof-evidence-bind",
203
203
  "type": "official",
204
- "content_sha256": "0ad34819b743ba3644d851c37b0a964b7aa19b3b8f79107f271f0a75b37f69a2",
204
+ "content_sha256": "1cd3ac3c98f2d37a99ec17911156db8161ba2c5548a6de3923ae1a8fca099518",
205
205
  "hash_history": [],
206
206
  "deprecated_aliases": []
207
207
  },
@@ -215,14 +215,14 @@
215
215
  {
216
216
  "canonical_name": "imagegen",
217
217
  "type": "official",
218
- "content_sha256": "e8bdd4695a6e716ccfe19ed591d03710aaf0c8e1529196d3fd6c2fd2b84c8de1",
218
+ "content_sha256": "935ed73b10f87022457864455b65a1dac495e72c8210cfcb9a78144d61b67c0f",
219
219
  "hash_history": [],
220
220
  "deprecated_aliases": []
221
221
  },
222
222
  {
223
223
  "canonical_name": "imagegen-source-scout",
224
224
  "type": "official",
225
- "content_sha256": "9b7b42e64de3c731ed42c85c8188cea0d6b2a074b87e653c953459b13c777a4f",
225
+ "content_sha256": "432a0b86d575f2d21458a259b297432fedf25aaa0a19c0a1f6958a2345bf0731",
226
226
  "hash_history": [],
227
227
  "deprecated_aliases": []
228
228
  },
@@ -236,14 +236,14 @@
236
236
  {
237
237
  "canonical_name": "insane-search",
238
238
  "type": "official",
239
- "content_sha256": "3589b5961e7683740c4c397e66a9a31222a5ddbfbd52eb85b2036c4892f14347",
239
+ "content_sha256": "79c2615ca42c3bfd93dacae98631f1053d7fb5b704d4c908ffcd51fa0a646d67",
240
240
  "hash_history": [],
241
241
  "deprecated_aliases": []
242
242
  },
243
243
  {
244
244
  "canonical_name": "kage-bunshin",
245
245
  "type": "official",
246
- "content_sha256": "d5c41416021ef9b77752a576a0e7c583b44274abe4d5bb22d3fc0705b5b1ec19",
246
+ "content_sha256": "9d386304cdf56c70f8275e528a524a48d0d994e9be5980bc75aa5ef7ab019f38",
247
247
  "hash_history": [],
248
248
  "deprecated_aliases": []
249
249
  },
@@ -257,14 +257,14 @@
257
257
  {
258
258
  "canonical_name": "mad-db",
259
259
  "type": "official",
260
- "content_sha256": "1f57f8f133688de485d7f1739d19fdf611a7a73d353c58c7f1e402e15b233076",
260
+ "content_sha256": "56dc403ad9ee561513a9f929a0e06a3ec02c2b3edf6a83fa935d9623476864ea",
261
261
  "hash_history": [],
262
262
  "deprecated_aliases": []
263
263
  },
264
264
  {
265
265
  "canonical_name": "mad-sks",
266
266
  "type": "official",
267
- "content_sha256": "26334cc7286c8f289a8a605786231d076d969a0d3e339da5a8ead9a63791694e",
267
+ "content_sha256": "c970e328447756c46bb77053e7fb3598970216547deb8066f315442f0da961d0",
268
268
  "hash_history": [],
269
269
  "deprecated_aliases": []
270
270
  },
@@ -280,28 +280,35 @@
280
280
  {
281
281
  "canonical_name": "performance-evaluator",
282
282
  "type": "official",
283
- "content_sha256": "d722992ec4d0660f22e489a90da2810a7830c30f493f0fee0e2d4979252e6f5a",
283
+ "content_sha256": "9959b2461bf29a5f9e2fb1339b0445d9543a440b71bd6f26d4ae681fc9989a02",
284
284
  "hash_history": [],
285
285
  "deprecated_aliases": []
286
286
  },
287
287
  {
288
288
  "canonical_name": "pipeline-runner",
289
289
  "type": "official",
290
- "content_sha256": "d7d4ceaceabe0903a04a376954747ee9b6c315a73052c951f5470f488c1d6d1d",
290
+ "content_sha256": "9b3f50cf84fcac1f29fb5548f3188b6a5739ded632821424fe949df81c252c19",
291
+ "hash_history": [],
292
+ "deprecated_aliases": []
293
+ },
294
+ {
295
+ "canonical_name": "plan",
296
+ "type": "official",
297
+ "content_sha256": "476e2438cb99c26ce5d7604b2b2ec8e30db7247e97efd90f8860743cee34852e",
291
298
  "hash_history": [],
292
299
  "deprecated_aliases": []
293
300
  },
294
301
  {
295
302
  "canonical_name": "ppt",
296
303
  "type": "official",
297
- "content_sha256": "e4c21f41d533f5fc7920a9833e99b9b6e51d62ca682a6d4186a5d5e3b7c88a98",
304
+ "content_sha256": "be7bc2d4be61cbcac7b14f35fcc0890fdcff255a90105876d08c9d58867d52ac",
298
305
  "hash_history": [],
299
306
  "deprecated_aliases": []
300
307
  },
301
308
  {
302
309
  "canonical_name": "prompt-pipeline",
303
310
  "type": "official",
304
- "content_sha256": "498e88ed0ca59e10db7a2e8835f985254b17a80ae6cfb623a5e747f07a59e1d6",
311
+ "content_sha256": "bf3dc48b9d279a454ac826ff7929f1fd9a51667da75c7848c467b59324340009",
305
312
  "hash_history": [],
306
313
  "deprecated_aliases": []
307
314
  },
@@ -317,21 +324,21 @@
317
324
  {
318
325
  "canonical_name": "reasoning-router",
319
326
  "type": "official",
320
- "content_sha256": "c41ce62468fcccdcc3c2decbf33aed0c524dfe27c31a394064497719aa9b2afa",
327
+ "content_sha256": "5a8af4b83ee1539af515c3e0070f738bc43582a4a67f86a692a692732733e3c8",
321
328
  "hash_history": [],
322
329
  "deprecated_aliases": []
323
330
  },
324
331
  {
325
332
  "canonical_name": "reflection",
326
333
  "type": "official",
327
- "content_sha256": "4939f70f7378666934c390b421f799eadaa47961654733fbd421a4b4707742a3",
334
+ "content_sha256": "acf2f0ed4ab2a162b0542f91ee0aabecdaca1160305f6cb948ad547922669210",
328
335
  "hash_history": [],
329
336
  "deprecated_aliases": []
330
337
  },
331
338
  {
332
339
  "canonical_name": "release-review",
333
340
  "type": "official",
334
- "content_sha256": "3d8b36cc9013d29ca2435812f32fa7a3ac1e28170252f0d97d46b7f7a84334b5",
341
+ "content_sha256": "337553bc9cf0ac0c501171a8b1c65215f9d538824e4231259e9fb7e6c6e80ed9",
335
342
  "hash_history": [],
336
343
  "deprecated_aliases": []
337
344
  },
@@ -345,7 +352,14 @@
345
352
  {
346
353
  "canonical_name": "research-discovery",
347
354
  "type": "official",
348
- "content_sha256": "6a37e3acaf1801e24ce6b70736993502396cff6e4de99c2182020468a3744850",
355
+ "content_sha256": "ce83a34cc4b5b84a4ecf7188541cddf00c087764f78884d7da02aa8b4862230a",
356
+ "hash_history": [],
357
+ "deprecated_aliases": []
358
+ },
359
+ {
360
+ "canonical_name": "review",
361
+ "type": "official",
362
+ "content_sha256": "16792f2f51b2e161ae6371a4b0da62e891e732a531e08a82a757d1d65f669c89",
349
363
  "hash_history": [],
350
364
  "deprecated_aliases": []
351
365
  },
@@ -366,14 +380,14 @@
366
380
  {
367
381
  "canonical_name": "shadow-clone",
368
382
  "type": "official",
369
- "content_sha256": "013cac960cbf627e04b5c50ff45e15ed824a2863ed8d2a40bca46f8c688b3f8b",
383
+ "content_sha256": "ee8efed4651eb463869e293fcb43103c1a070b686e8745bbc6109e4f941885a1",
370
384
  "hash_history": [],
371
385
  "deprecated_aliases": []
372
386
  },
373
387
  {
374
388
  "canonical_name": "sks",
375
389
  "type": "official",
376
- "content_sha256": "ba939b92845092f0f79a749b964cb54c8514a78305731de633f0aae1594464ff",
390
+ "content_sha256": "49820a64aa2abfe015ecbe5f2566e1a9ad796f10c97531e36c5cda8fe46baa5b",
377
391
  "hash_history": [],
378
392
  "deprecated_aliases": [
379
393
  "ralph",
@@ -385,14 +399,21 @@
385
399
  {
386
400
  "canonical_name": "solution-scout",
387
401
  "type": "official",
388
- "content_sha256": "35fc6b90f2dae5f07ba9978121a9847c2e6221f6c9f2fa50d9214185a850939f",
402
+ "content_sha256": "5bbeda855719edd3dfa4120877a72b31ab58444edec2d89d5370e6198e732d5c",
403
+ "hash_history": [],
404
+ "deprecated_aliases": []
405
+ },
406
+ {
407
+ "canonical_name": "swarm",
408
+ "type": "official",
409
+ "content_sha256": "b61f775806c7963c123e2c94566c97b2328d515bd8e5e132ae3ec5be8b0103f3",
389
410
  "hash_history": [],
390
411
  "deprecated_aliases": []
391
412
  },
392
413
  {
393
414
  "canonical_name": "team",
394
415
  "type": "official",
395
- "content_sha256": "fafb2e51ae9b0f555edb2a940b995162c0b58d0c1ca40998ddce1b9ef3fd5ee2",
416
+ "content_sha256": "a7759e9fabe9183426f581f5ea6533982b22c000eddc955e057d78a0f3df4bfe",
396
417
  "hash_history": [],
397
418
  "deprecated_aliases": [
398
419
  "agent-team"
@@ -401,42 +422,42 @@
401
422
  {
402
423
  "canonical_name": "turbo-context-pack",
403
424
  "type": "official",
404
- "content_sha256": "681a9917622120e63e50f13f9f15ea9b1ee24bcda53b56b2995d0670e5a46379",
425
+ "content_sha256": "f6102a39ae4b9a52d77160d78cc0e270520bc88583a170fec298b7a4283b408b",
405
426
  "hash_history": [],
406
427
  "deprecated_aliases": []
407
428
  },
408
429
  {
409
430
  "canonical_name": "ui-ux-review",
410
431
  "type": "official",
411
- "content_sha256": "dcf08b18a2154ddcbec47142454bf0ce2c2585c1d36fc6b8a00d8b5302420eb4",
432
+ "content_sha256": "ba7281ec9a5c5dc3911fa9737375aaa396634165c199458f1d9091341cac9d36",
412
433
  "hash_history": [],
413
434
  "deprecated_aliases": []
414
435
  },
415
436
  {
416
437
  "canonical_name": "ultra-search",
417
438
  "type": "official",
418
- "content_sha256": "119a8f2dfcab262a94f95fd3ce5f1d6cc87717052ca3799611df903bd4d14fdf",
439
+ "content_sha256": "3e6b036c36f0680aa574b9cb0ba759ae99ec2f39764c8723c8e5e92871f5f463",
419
440
  "hash_history": [],
420
441
  "deprecated_aliases": []
421
442
  },
422
443
  {
423
444
  "canonical_name": "ux-review",
424
445
  "type": "official",
425
- "content_sha256": "3cb20729475d9466becde13c10785deb104c743898e6d66536edf15e21022447",
446
+ "content_sha256": "100ca2e1d0ae286b27a6ca9267193ec49079a98986529ab68628c159030b33dd",
426
447
  "hash_history": [],
427
448
  "deprecated_aliases": []
428
449
  },
429
450
  {
430
451
  "canonical_name": "visual-review",
431
452
  "type": "official",
432
- "content_sha256": "d7bf165e9d04fc4a19b9bac29e158d0f0b6ee2781061d10860ecec9720c5463b",
453
+ "content_sha256": "571f372b93317328f07e00aa1afcb9dcda6b3b87767f817e0ec37485487ae822",
433
454
  "hash_history": [],
434
455
  "deprecated_aliases": []
435
456
  },
436
457
  {
437
458
  "canonical_name": "wiki",
438
459
  "type": "official",
439
- "content_sha256": "8257bd01a5439d1ba4518ed62aec06a0b116208774c209913fc82b25208c7c1e",
460
+ "content_sha256": "076987814552a05a777e81dc27a7650ba156ba7db1842fee98b33ec3a23122a1",
440
461
  "hash_history": [],
441
462
  "deprecated_aliases": [
442
463
  "wiki-refresh",
@@ -446,14 +467,21 @@
446
467
  {
447
468
  "canonical_name": "with-local-llm-off",
448
469
  "type": "official",
449
- "content_sha256": "f124a2ce9dca73ee39852ae9356ece2734f157e502bfbd4b5ce64fcdfd0410a5",
470
+ "content_sha256": "c8abbe73a7ed0effb57b68cb44b0d566922d0677f58d5c7029d959392313df5a",
450
471
  "hash_history": [],
451
472
  "deprecated_aliases": []
452
473
  },
453
474
  {
454
475
  "canonical_name": "with-local-llm-on",
455
476
  "type": "official",
456
- "content_sha256": "e81f97104d432081430d664e1e8ce3ff39ff22639c05a18b054f2b16e7f18d64",
477
+ "content_sha256": "c4956446f185808d011b6ca160b2cee71c987a8d7c75b20d8c100bd7d595c8ce",
478
+ "hash_history": [],
479
+ "deprecated_aliases": []
480
+ },
481
+ {
482
+ "canonical_name": "work",
483
+ "type": "official",
484
+ "content_sha256": "78b08a3e2fbc2de1e4c39b39d320c98e7a00bebd2591b58321c68703e89fd9d8",
457
485
  "hash_history": [],
458
486
  "deprecated_aliases": []
459
487
  }
@@ -6,6 +6,8 @@ export function buildAgentConflictGraph(leases) {
6
6
  for (let j = i + 1; j < writeLeases.length; j += 1) {
7
7
  const a = writeLeases[i];
8
8
  const b = writeLeases[j];
9
+ if (a && b && a.agent_id !== b.agent_id && sameTournamentGroup(a, b))
10
+ continue;
9
11
  if (a && b && a.agent_id !== b.agent_id && pathOverlaps(a.path, b.path)) {
10
12
  conflicts.push({ a: a.id, b: b.id, path_a: a.path, path_b: b.path, reason: 'overlapping_write_lease' });
11
13
  }
@@ -19,4 +21,7 @@ export function buildAgentConflictGraph(leases) {
19
21
  blockers: conflicts.map((conflict) => conflict.reason + ':' + conflict.path_a + ':' + conflict.path_b)
20
22
  };
21
23
  }
24
+ function sameTournamentGroup(a, b) {
25
+ return Boolean(a.tournament_group_id && b.tournament_group_id && a.tournament_group_id === b.tournament_group_id);
26
+ }
22
27
  //# sourceMappingURL=agent-conflict-graph.js.map
@@ -18,12 +18,17 @@ export function validateAgentLeases(leases) {
18
18
  for (let j = i + 1; j < writeLeases.length; j += 1) {
19
19
  const a = writeLeases[i];
20
20
  const b = writeLeases[j];
21
+ if (a && b && a.agent_id !== b.agent_id && sameTournamentGroup(a, b))
22
+ continue;
21
23
  if (a && b && a.agent_id !== b.agent_id && pathOverlaps(a.path, b.path))
22
24
  blockers.push('write_overlap:' + a.agent_id + ':' + a.path + ':' + b.agent_id + ':' + b.path);
23
25
  }
24
26
  }
25
27
  return { ok: blockers.length === 0, blockers };
26
28
  }
29
+ function sameTournamentGroup(a, b) {
30
+ return Boolean(a.tournament_group_id && b.tournament_group_id && a.tournament_group_id === b.tournament_group_id);
31
+ }
27
32
  export function createAgentLease(input) {
28
33
  const leasePath = normalizeLeasePath(input.path);
29
34
  const lease = {
@@ -104,6 +104,7 @@ export const AGENT_CENTRAL_LEDGER_RUNTIME_SCHEMAS = {
104
104
  route: { type: 'string' },
105
105
  generated_at: { type: 'string' },
106
106
  backend: { type: 'string' },
107
+ execution_class: { enum: ['real', 'mock_fixture'] },
107
108
  real_parallel_claim: { type: 'boolean' },
108
109
  fake_backend_disclaimer: { anyOf: [{ type: 'string' }, { type: 'null' }] },
109
110
  agent_count: { type: 'integer', minimum: 0 },