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,24 +0,0 @@
1
- import fs from 'node:fs/promises';
2
- import path from 'node:path';
3
- import { assertGate, emitGate, makeTempRoot, writeText } from './sks-3-1-8-check-lib.js';
4
- import { importDist } from './sks-1-18-gate-lib.js';
5
- const tmp = await makeTempRoot('sks-scheduler-claim-');
6
- await writeText(path.join(tmp, 'package.json'), JSON.stringify({ version: '4.0.2', scripts: { 'secret:one': 'node -e "setTimeout(()=>process.exit(0),20)"', 'zellij:one': 'node -e "setTimeout(()=>process.exit(0),20)"' } }, null, 2));
7
- await writeText(path.join(tmp, 'package-lock.json'), JSON.stringify({ lockfileVersion: 3 }, null, 2));
8
- await writeText(path.join(tmp, 'release-gates.v2.json'), JSON.stringify({ schema: 'sks.release-gates.v2', gates: [gate('secret:one', ['secret-sensitive']), gate('zellij:one', ['zellij-real'])] }, null, 2));
9
- const scheduler = await importDist('core/release/extreme-parallel-scheduler.js');
10
- const report = await scheduler.executeExtremeSchedule({
11
- root: tmp,
12
- graph: { schema: 'sks.triwiki-affected-graph.v1', root: tmp, tier: 'confidence', changed_files: [], affected_modules: [], gate_packs: ['secret', 'zellij'], gates: ['secret:one', 'zellij:one'], release_equivalent_within_scope: true, confidence: 'affected-release-equivalent', conservative_reason: null, reused_proofs: [], invalidated_proofs: [], required_new_proofs: [] },
13
- slaMs: 30_000,
14
- budget: { schema: 'sks.resource-class-budget.v1', cpu_light: 4, cpu_heavy: 1, io_light: 4, io_heavy: 1, fs_read: 4, network: 1, remote_model_real: 1, zellij_real: 1, browser_real: 1, secret_sensitive: 1 },
15
- useProofBank: false
16
- });
17
- const timeline = JSON.parse(await fs.readFile(report.resource_claim_timeline, 'utf8'));
18
- assertGate(report.ok === true && report.executed_packs.length === 2, 'scheduler must execute selected packs', report);
19
- assertGate(timeline.events.some((event) => event.event === 'claim') && timeline.events.some((event) => event.event === 'release'), 'scheduler must write claim/release timeline', timeline);
20
- emitGate('scheduler:resource-claim-blackbox', { packs: report.executed_packs.length, timeline: timeline.events.length });
21
- function gate(id, resource) {
22
- return { id, command: `npm run ${id} --silent`, deps: [], resource, side_effect: 'hermetic', timeout_ms: 5000, cache: { enabled: false, inputs: ['package.json'] }, isolation: { home: 'temp', codex_home: 'temp', report_dir: 'per-gate' }, preset: ['release'] };
23
- }
24
- //# sourceMappingURL=scheduler-resource-claim-blackbox.js.map
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import { assertGate, emitGate, runSks, runSksJson } from './search-visibility-gate-lib.js';
4
- const commands = runSksJson(['commands', '--json']).json;
5
- assertGate(commands.commands.some((row) => row.name === 'seo-geo-optimizer' && /unified SEO\/GEO optimizer/i.test(row.description)), 'commands --json must expose seo-geo-optimizer');
6
- assertGate(!commands.commands.some((row) => row.name === 'seo' || row.name === 'geo'), 'commands --json must not expose split seo/geo command surfaces');
7
- const optimizerUsage = runSks(['usage', 'seo-geo-optimizer']);
8
- assertGate(/sks seo-geo-optimizer \[seo\|geo\] doctor\|audit\|plan\|apply\|verify\|status\|rollback\|fixture/.test(optimizerUsage.stdout), 'usage seo-geo-optimizer must expose unified lifecycle');
9
- const doctor = runSksJson(['seo-geo-optimizer', 'doctor', '--mode', 'seo', '--json']).json;
10
- assertGate(doctor.route === '$SEO-GEO-OPTIMIZER' && doctor.schema === 'sks.search-visibility.doctor-command.v1', 'optimizer seo doctor must preserve unified route identity', doctor);
11
- const invalid = runSks(['seo-geo-optimizer', 'nonsense-subcommand'], { allowFailure: true });
12
- assertGate(invalid.status === 2 && /Usage: sks seo-geo-optimizer/.test(invalid.stderr), 'invalid optimizer subcommand must exit 2 with usage', {
13
- status: invalid.status,
14
- stdout: invalid.stdout,
15
- stderr: invalid.stderr,
16
- });
17
- emitGate('seo:cli-blackbox', { adapter: doctor.adapter, confidence: doctor.confidence });
18
- //# sourceMappingURL=seo-cli-blackbox-check.js.map
@@ -1,116 +0,0 @@
1
- #!/usr/bin/env node
2
- import fs from 'node:fs/promises';
3
- import path from 'node:path';
4
- import { root as repoRoot } from './sks-1-18-gate-lib.js';
5
- import { assertGate, emitGate, makeTempRoot, writeManagedCoreSkill, writeText, writeUserSkill } from './sks-3-1-8-check-lib.js';
6
- import { syncCoreSkillsIntegrity } from '../core/codex-native/core-skill-integrity.js';
7
- import { dedupeProjectSkills } from '../core/codex-native/project-skill-dedupe.js';
8
- import { repairNativeCapabilities } from '../core/codex-native/native-capability-repair.js';
9
- import { withSecretPreservationGuard } from '../core/config/secret-preservation.js';
10
- import { runProcess } from '../core/fsx.js';
11
- import { buildReleaseGateScriptParityReport } from './release-gate-script-parity-check.js';
12
- const root = await makeTempRoot('sks-3110-all-feature-');
13
- process.env.CODEX_HOME = path.join(root, 'codex-home');
14
- const parity = buildReleaseGateScriptParityReport();
15
- const coreA = await syncCoreSkillsIntegrity({ root, apply: true });
16
- const coreB = await syncCoreSkillsIntegrity({ root, apply: true });
17
- const loopPath = path.join(root, '.agents', 'skills', 'loop', 'SKILL.md');
18
- await fs.appendFile(loopPath, '\ncorruption\n', 'utf8');
19
- const coreC = await syncCoreSkillsIntegrity({ root, apply: true });
20
- await writeManagedCoreSkill(root, '.codex/skills', 'loop');
21
- const dedupeA = await dedupeProjectSkills({ root, fix: true, yes: true });
22
- await writeUserSkill(root, '.agents/skills', 'user-loop-a', 'Loop');
23
- await writeUserSkill(root, '.codex/skills', 'user-loop-b', 'loop');
24
- const dedupeB = await dedupeProjectSkills({ root, fix: true, yes: false });
25
- const dedupeC = await dedupeProjectSkills({ root, fix: true, yes: true, quarantineUserDuplicates: true });
26
- process.env.SKS_CHROME_EXTENSION_READY = '1';
27
- process.env.SKS_COMPUTER_USE_CAPABILITY = 'verified';
28
- const repairable = await repairNativeCapabilities({ root, fix: true, yes: true, fixture: 'all-repairable' });
29
- delete process.env.SKS_CHROME_EXTENSION_READY;
30
- delete process.env.SKS_COMPUTER_USE_CAPABILITY;
31
- const manual = await repairNativeCapabilities({ root, fix: true, yes: true, fixture: 'manual-required' });
32
- const envFile = path.join(root, '.env.local');
33
- await writeText(envFile, 'NEXT_PUBLIC_SUPABASE_ANON_KEY=all-feature-secret\nSUPABASE_SERVICE_ROLE_KEY=service-secret\n');
34
- const deleteSecretGuard = await expectSecretGuardRestored('delete-secret-fixture', async () => {
35
- await fs.writeFile(envFile, 'NEXT_PUBLIC_SUPABASE_ANON_KEY=all-feature-secret\n', 'utf8');
36
- });
37
- let text = await fs.readFile(envFile, 'utf8');
38
- assertGate(text.includes('SUPABASE_SERVICE_ROLE_KEY=service-secret'), 'delete fixture must restore missing Supabase service key', text);
39
- assertGate(deleteSecretGuard.includes('SUPABASE_SERVICE_ROLE_KEY:missing'), 'delete fixture must report restored missing service key', deleteSecretGuard);
40
- const changeSecretGuard = await expectSecretGuardRestored('change-secret-fixture', async () => {
41
- await fs.writeFile(envFile, 'NEXT_PUBLIC_SUPABASE_ANON_KEY=changed\nSUPABASE_SERVICE_ROLE_KEY=service-secret\n', 'utf8');
42
- });
43
- text = await fs.readFile(envFile, 'utf8');
44
- assertGate(text.includes('NEXT_PUBLIC_SUPABASE_ANON_KEY=all-feature-secret'), 'change fixture must rollback Supabase anon key mutation', text);
45
- assertGate(changeSecretGuard.includes('NEXT_PUBLIC_SUPABASE_ANON_KEY:changed'), 'change fixture must report restored changed anon key', changeSecretGuard);
46
- const doctorRoot = await makeTempRoot('sks-3110-doctor-fix-');
47
- await writeText(path.join(doctorRoot, 'package.json'), '{"name":"sks-3110-doctor-fixture","private":true}\n');
48
- await writeText(path.join(doctorRoot, '.env.local'), 'NEXT_PUBLIC_SUPABASE_ANON_KEY=doctor-secret\n');
49
- const fixtureBin = path.join(doctorRoot, 'codex-fixture');
50
- await writeText(fixtureBin, '#!/usr/bin/env node\nconsole.log(JSON.stringify({ checks: { fixture: { category: "runtime", status: "ok" } } }));\n');
51
- await fs.chmod(fixtureBin, 0o755);
52
- const doctor = await runProcess(process.execPath, [
53
- path.join(repoRoot, 'dist', 'bin', 'sks.js'),
54
- 'doctor',
55
- '--fix',
56
- '--local-only',
57
- '--yes',
58
- '--json',
59
- '--codex-bin',
60
- fixtureBin
61
- ], {
62
- cwd: doctorRoot,
63
- env: {
64
- HOME: path.join(doctorRoot, 'home'),
65
- CODEX_HOME: path.join(doctorRoot, 'codex-home'),
66
- SKS_GLOBAL_ROOT: path.join(doctorRoot, 'global-sks'),
67
- SKS_CHROME_EXTENSION_READY: '1',
68
- SKS_COMPUTER_USE_CAPABILITY: 'verified'
69
- },
70
- timeoutMs: 120_000,
71
- maxOutputBytes: 512 * 1024
72
- });
73
- const doctorGuardReport = JSON.parse(await fs.readFile(path.join(doctorRoot, '.sneakoscope', 'reports', 'secret-preservation-guard.json'), 'utf8'));
74
- const guardReport = JSON.parse(await fs.readFile(path.join(root, '.sneakoscope', 'reports', 'secret-preservation-guard.json'), 'utf8'));
75
- const reportText = JSON.stringify(await readReports(path.join(root, '.sneakoscope', 'reports')));
76
- assertGate(parity.ok === true, 'release gate/script/dist parity must pass inside all-feature regression', parity);
77
- assertGate(coreA.installed_count > 0, 'core skills must install in temp root', coreA);
78
- assertGate(coreB.installed_count === 0 && coreB.restored_count === 0, 'second core sync must be idempotent', coreB);
79
- assertGate(coreC.restored_count > 0, 'corrupt managed core skill must restore', coreC);
80
- assertGate(dedupeA.actions.some((action) => action.action === 'quarantined'), 'managed duplicate must quarantine', dedupeA);
81
- assertGate(dedupeB.blockers.some((blocker) => blocker.includes('user_duplicate_requires_confirmation')), 'unconfirmed user duplicate must be manual_required', dedupeB);
82
- assertGate(dedupeC.active_unique_by_canonical_name === true, 'confirmed user duplicate quarantine must restore active uniqueness', dedupeC);
83
- assertGate(repairable.ok === true, 'all-repairable native fixture must pass postcheck', repairable);
84
- assertGate(manual.capabilities.some((state) => state.repairability === 'manual-required' && state.after !== 'verified'), 'manual native fixture must not false-verify', manual);
85
- assertGate(guardReport.rollback_attempted === true && guardReport.rollback_ok === true, 'secret guard must record rollback success', guardReport);
86
- assertGate(!reportText.includes('all-feature-secret') && !reportText.includes('service-secret'), 'reports must not contain raw secret literals');
87
- assertGate(doctor.code === 0 || doctor.code === 1, 'doctor --fix fixture must complete with a bounded readiness exit code under secret guard', { code: doctor.code, stdout: doctor.stdout.slice(-2000), stderr: doctor.stderr.slice(-2000) });
88
- assertGate(doctor.stdout.includes('"schema"') && doctor.stdout.includes('"command_aliases"'), 'doctor --fix fixture must emit structured doctor output', doctor.stdout.slice(-2000));
89
- assertGate(doctorGuardReport.ok === true && doctorGuardReport.raw_values_recorded === false, 'doctor --fix guard report must be sanitized and successful', doctorGuardReport);
90
- emitGate('sks:3110-all-feature-regression', {
91
- core_installed: coreA.installed_count,
92
- manual_native_count: manual.capabilities.filter((state) => state.repairability === 'manual-required' && state.after !== 'verified').length
93
- });
94
- async function readReports(dir) {
95
- const out = {};
96
- const rows = await fs.readdir(dir, { withFileTypes: true }).catch(() => []);
97
- for (const row of rows) {
98
- if (!row.isFile() || !row.name.endsWith('.json'))
99
- continue;
100
- out[row.name] = await fs.readFile(path.join(dir, row.name), 'utf8');
101
- }
102
- return out;
103
- }
104
- async function expectSecretGuardRestored(operation, fn) {
105
- try {
106
- await withSecretPreservationGuard(root, operation, fn);
107
- }
108
- catch (err) {
109
- const message = err instanceof Error ? err.message : String(err);
110
- assertGate(message.startsWith('secret_preservation_restored:'), `${operation} must be restored and reported by secret guard`, message);
111
- return message;
112
- }
113
- assertGate(false, `${operation} must throw after restoring protected secret mutation`, {});
114
- return '';
115
- }
116
- //# sourceMappingURL=sks-3110-all-feature-regression-blackbox.js.map
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env node
2
- import { assertGate, emitGate, exists, readJson } from './sks-1-18-gate-lib.js';
3
- const scripts = readJson('package.json').scripts || {};
4
- const required = [
5
- 'release:gate-script-parity',
6
- 'codex:0140-capability',
7
- 'codex:0140-feature-probes',
8
- 'doctor:fix-production-blackbox',
9
- 'doctor:startup-config-repair-blackbox',
10
- 'doctor:context7-mcp-repair-blackbox',
11
- 'doctor:supabase-mcp-repair-blackbox',
12
- 'native-capability:postcheck',
13
- 'secret:preservation-guard',
14
- 'secret:supabase-preservation-blackbox',
15
- 'update:preserves-supabase-keys',
16
- 'core-skill:no-drift',
17
- 'skill:dedupe-blackbox',
18
- 'release:dag-full-coverage'
19
- ];
20
- for (const id of required)
21
- assertGate(Boolean(scripts[id]), `3.1.12 regression required script missing: ${id}`);
22
- for (const file of [
23
- 'src/core/doctor/doctor-transaction.ts',
24
- 'src/core/codex-control/codex-0140-capability.ts',
25
- 'src/core/config/secret-preservation.ts'
26
- ])
27
- assertGate(exists(file), `3.1.12 regression required file missing: ${file}`);
28
- emitGate('sks:3112-all-feature-regression', { scenarios: required.length });
29
- //# sourceMappingURL=sks-3112-all-feature-regression-blackbox.js.map
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env node
2
- import { assertGate, emitGate, exists, readJson } from './sks-1-18-gate-lib.js';
3
- import { REQUIRED_3113_RELEASE_IDS } from './release-3113-required-gates.js';
4
- const scripts = readJson('package.json').scripts || {};
5
- for (const id of REQUIRED_3113_RELEASE_IDS)
6
- assertGate(Boolean(scripts[id]), `3.1.13 regression required script missing: ${id}`);
7
- for (const file of [
8
- 'src/core/codex-control/codex-0140-usage-parser.ts',
9
- 'src/core/doctor/doctor-transaction.ts',
10
- 'src/core/codex/agent-config-file-repair.ts',
11
- 'src/core/mcp/mcp-config-preservation.ts',
12
- 'src/core/config/secret-preservation.ts',
13
- 'src/core/codex-native/native-capability-postcheck.ts'
14
- ])
15
- assertGate(exists(file), `3.1.13 regression required file missing: ${file}`);
16
- emitGate('sks:3113-all-feature-regression', { scenarios: REQUIRED_3113_RELEASE_IDS.length });
17
- //# sourceMappingURL=sks-3113-all-feature-regression-blackbox.js.map
@@ -1,21 +0,0 @@
1
- // @ts-nocheck
2
- import { assertGate, emitGate, packageScripts, readText } from './sks-1-18-gate-lib.js';
3
- const scripts = packageScripts();
4
- const required = [
5
- 'triwiki:proof-bank',
6
- 'triwiki:affected-graph',
7
- 'gate-pack:runner',
8
- 'scheduler:extreme-parallel',
9
- 'pipeline:five-minute-sla',
10
- 'build-once:runner',
11
- 'probes:memoization',
12
- 'doctor:dirty-repair',
13
- 'legacy:gate-inventory',
14
- 'certificate:sla'
15
- ];
16
- for (const id of required)
17
- assertGate(Boolean(scripts[id]), `4.0.0 script missing: ${id}`);
18
- const changelog = readText('CHANGELOG.md');
19
- assertGate(changelog.includes('[4.0.0]'), 'CHANGELOG must include 4.0.0 entry');
20
- emitGate('sks:400-all-feature-regression', { scripts: required.length });
21
- //# sourceMappingURL=sks-400-all-feature-regression-blackbox.js.map
@@ -1,8 +0,0 @@
1
- // @ts-nocheck
2
- import { assertGate, emitGate, importDist, root } from './sks-1-18-gate-lib.js';
3
- const scheduler = await importDist('core/release/extreme-parallel-scheduler.js');
4
- const schedule = scheduler.planExtremeParallelSchedule(root);
5
- assertGate(schedule.sequential_ms > 0 && schedule.critical_path_ms > 0, 'extreme scheduler blackbox must estimate work', schedule);
6
- assertGate(schedule.critical_path_ms <= schedule.sequential_ms, 'critical path must not exceed sequential path', schedule);
7
- emitGate('scheduler:extreme-parallel-blackbox', { reduction_ratio: schedule.reduction_ratio, batches: schedule.batches.length });
8
- //# sourceMappingURL=sks-400-extreme-parallel-blackbox.js.map
@@ -1,9 +0,0 @@
1
- // @ts-nocheck
2
- import { assertGate, emitGate, importDist, root } from './sks-1-18-gate-lib.js';
3
- const graphMod = await importDist('core/triwiki/triwiki-affected-graph.js');
4
- const sla = await importDist('core/release/sla-scheduler.js');
5
- const graph = graphMod.computeTriWikiAffectedGraph({ root, changedFiles: ['src/core/triwiki/triwiki-proof-bank.ts'], tier: 'affected' });
6
- const plan = sla.planFiveMinuteSla(root, graph);
7
- assertGate(plan.certificate.sla_ms === 300000 && plan.graph.release_equivalent_within_scope === true, 'five-minute TriWiki blackbox must produce release-equivalent certificate', plan);
8
- emitGate('pipeline:five-minute-triwiki-blackbox', { gates: plan.graph.gates.length, ok: plan.ok });
9
- //# sourceMappingURL=sks-400-five-minute-blackbox.js.map
@@ -1,8 +0,0 @@
1
- // @ts-nocheck
2
- import { assertGate, emitGate, readText } from './sks-1-18-gate-lib.js';
3
- const registry = readText('src/cli/command-registry.ts');
4
- const migration = readText('docs/sks-4-migration.md');
5
- assertGate(!registry.includes('LEGACY_COMMAND_ALIASES = {\\n auth'), 'legacy alias block must be destructive-purged');
6
- assertGate(migration.includes('No silent legacy fallback'), 'migration doc must explain no silent fallback');
7
- emitGate('legacy:purge-blackbox');
8
- //# sourceMappingURL=sks-400-legacy-purge-blackbox.js.map
@@ -1,46 +0,0 @@
1
- import { assertGate, emitGate, importDist, root } from './sks-1-18-gate-lib.js';
2
- import { REQUIRED_4001_RELEASE_IDS } from './release-4001-required-gates.js';
3
- import { REQUIRED_4002_RELEASE_IDS } from './release-4002-required-gates.js';
4
- import fs from 'node:fs';
5
- import path from 'node:path';
6
- const pkg = JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8'));
7
- const manifest = JSON.parse(fs.readFileSync(path.join(root, 'release-gates.v2.json'), 'utf8'));
8
- const ids = new Set(manifest.gates.map((gate) => gate.id));
9
- const required = [...REQUIRED_4001_RELEASE_IDS, ...REQUIRED_4002_RELEASE_IDS];
10
- const missing = required.filter((id) => !pkg.scripts?.[id] || !ids.has(id));
11
- assertGate(compareSemver(pkg.version || '0.0.0', '4.0.2') >= 0, 'package version must be at least 4.0.2 after production completion bump', pkg.version);
12
- assertGate(missing.length === 0, '4.0.1/4.0.2 required scripts/gates missing', missing);
13
- const graphMod = await importDist('core/triwiki/triwiki-affected-graph.js');
14
- const schedulerMod = await importDist('core/release/extreme-parallel-scheduler.js');
15
- const dirtyMod = await importDist('core/doctor/doctor-dirty-planner.js');
16
- const certificateMod = await importDist('core/triwiki/triwiki-sla-certificate.js');
17
- const graph = graphMod.computeTriWikiAffectedGraph({ root, changedFiles: ['src/core/triwiki/triwiki-proof-card.ts'], tier: 'confidence' });
18
- const plan = schedulerMod.planExtremeParallelSchedule(root, graph);
19
- const dirty = dirtyMod.planDoctorDirtyRepair(root, ['context7']);
20
- const certificate = certificateMod.buildTriWikiSlaCertificate({
21
- graph,
22
- mode: 'actual',
23
- slaMs: 300_000,
24
- estimatedCriticalPathMs: Math.max(1, plan.critical_path_ms || 1),
25
- estimatedSequentialMs: Math.max(1, plan.sequential_ms || plan.critical_path_ms || 1),
26
- actualDurationMs: 1,
27
- executedPacks: Math.max(1, graph.gate_packs.length),
28
- reusedProofs: graph.reused_proofs.length,
29
- invalidatedProofs: graph.invalidated_proofs.length
30
- });
31
- assertGate(graph.gate_packs.length > 0, 'regression must compute affected graph gate packs', graph);
32
- assertGate(plan.schema === 'sks.extreme-parallel-scheduler.v1', 'regression must exercise scheduler planning', plan);
33
- assertGate(dirty.schema === 'sks.doctor-dirty-plan.v2', 'regression must exercise semantic dirty doctor', dirty);
34
- assertGate(certificate.mode === 'actual' && certificate.sla_met === true, 'regression must create actual SLA certificate', certificate);
35
- emitGate('sks:401-all-feature-regression', { required: required.length, packs: graph.gate_packs.length });
36
- function compareSemver(left, right) {
37
- const a = left.split('.').map((part) => Number.parseInt(part, 10) || 0);
38
- const b = right.split('.').map((part) => Number.parseInt(part, 10) || 0);
39
- for (let i = 0; i < 3; i += 1) {
40
- const diff = (a[i] || 0) - (b[i] || 0);
41
- if (diff !== 0)
42
- return diff;
43
- }
44
- return 0;
45
- }
46
- //# sourceMappingURL=sks-401-all-feature-regression-blackbox.js.map
@@ -1,23 +0,0 @@
1
- import { assertGate, emitGate, importDist, root } from './sks-1-18-gate-lib.js';
2
- const graphMod = await importDist('core/triwiki/triwiki-affected-graph.js');
3
- const certMod = await importDist('core/triwiki/triwiki-sla-certificate.js');
4
- const graph = graphMod.computeTriWikiAffectedGraph({ root, changedFiles: ['src/core/triwiki/triwiki-sla-certificate.ts'], tier: 'confidence' });
5
- const cert = certMod.buildTriWikiSlaCertificate({
6
- graph,
7
- slaMs: 300000,
8
- estimatedCriticalPathMs: 1000,
9
- estimatedSequentialMs: 2000,
10
- mode: 'actual',
11
- actualDurationMs: 1000,
12
- executedGates: 1,
13
- executedPacks: 1,
14
- reusedProofs: 0,
15
- invalidatedProofs: graph.invalidated_proofs.length,
16
- newProofs: 1,
17
- skippedAsValidCache: 0,
18
- skippedAsUnaffected: 0,
19
- backgroundFullRelease: true
20
- });
21
- assertGate(cert.mode === 'actual' && cert.ok === true && cert.actual_duration_ms === 1000, 'actual SLA certificate must include execution stats', cert);
22
- emitGate('sks:401-five-minute-actual-blackbox', { mode: cert.mode, actual_duration_ms: cert.actual_duration_ms });
23
- //# sourceMappingURL=sks-401-five-minute-actual-blackbox.js.map
@@ -1,9 +0,0 @@
1
- import { assertGate, emitGate, packageScripts, readJson } from './sks-1-18-gate-lib.js';
2
- import { REQUIRED_4002_RELEASE_IDS } from './release-4002-required-gates.js';
3
- const scripts = packageScripts();
4
- const manifest = readJson('release-gates.v2.json');
5
- const gateIds = new Set(manifest.gates.map((gate) => gate.id));
6
- const missing = REQUIRED_4002_RELEASE_IDS.filter((id) => !scripts[id] || !gateIds.has(id));
7
- assertGate(missing.length === 0, '4.0.2 required scripts/gates missing', missing);
8
- emitGate('sks:402-all-feature-regression', { required: REQUIRED_4002_RELEASE_IDS.length });
9
- //# sourceMappingURL=sks-402-all-feature-regression-blackbox.js.map
@@ -1,22 +0,0 @@
1
- import { assertGate, emitGate, importDist, root } from './sks-1-18-gate-lib.js';
2
- const graphMod = await importDist('core/triwiki/triwiki-affected-graph.js');
3
- const schedulerMod = await importDist('core/release/extreme-parallel-scheduler.js');
4
- const certificateMod = await importDist('core/triwiki/triwiki-sla-certificate.js');
5
- const graph = graphMod.computeTriWikiAffectedGraph({ root, changedFiles: ['src/core/triwiki/triwiki-proof-card.ts'], tier: 'confidence' });
6
- const plan = schedulerMod.planExtremeParallelSchedule(root, graph);
7
- const certificate = certificateMod.buildTriWikiSlaCertificate({
8
- graph,
9
- mode: 'actual',
10
- slaMs: 300_000,
11
- estimatedCriticalPathMs: Math.max(1, plan.critical_path_ms || 1),
12
- estimatedSequentialMs: Math.max(1, plan.sequential_ms || plan.critical_path_ms || 1),
13
- actualDurationMs: Math.max(1, Math.min(299_000, plan.critical_path_ms || 1)),
14
- executedPacks: Math.max(1, graph.gate_packs.length),
15
- reusedProofs: graph.reused_proofs.length,
16
- invalidatedProofs: graph.invalidated_proofs.length,
17
- skippedAsUnaffected: Math.max(1, plan.batches.length)
18
- });
19
- assertGate(certificate.mode === 'actual' && certificate.sla_met === true, '4.0.2 five-minute blackbox must create actual SLA certificate', certificate);
20
- assertGate(graph.gate_packs.length > 0 && graph.required_new_proofs.length >= 0, '4.0.2 five-minute blackbox must compute affected packs', graph);
21
- emitGate('sks:402-five-minute-real-blackbox', { packs: graph.gate_packs.length, sla_met: certificate.sla_met });
22
- //# sourceMappingURL=sks-402-five-minute-real-blackbox.js.map
@@ -1,12 +0,0 @@
1
- // @ts-nocheck
2
- import { assertGate, emitGate, makeTempRoot } from './sks-3-1-8-check-lib.js';
3
- import { importDist } from './sks-1-18-gate-lib.js';
4
- const tmp = await makeTempRoot('sksd-warm-');
5
- const mod = await importDist('core/daemon/sksd-client.js');
6
- const warm = mod.runSksdClient(tmp, 'warm');
7
- const status = mod.runSksdClient(tmp, 'status');
8
- const proofBank = mod.handleSksdRequest(tmp, { type: 'proof-bank-status', root: tmp });
9
- assertGate(warm.status === 'warm' && status.status === 'warm' && status.proof_bank_ready === true && status.protocol_ok === true, 'sksd warm cache must persist protocol state', { warm, status });
10
- assertGate(proofBank.schema === 'sks.triwiki-proof-bank.v1', 'sksd proof-bank-status request must roundtrip', proofBank);
11
- emitGate('sksd:warm-cache-blackbox', { status: status.status });
12
- //# sourceMappingURL=sksd-warm-cache-blackbox.js.map
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env node
2
- import fs from 'node:fs/promises';
3
- import path from 'node:path';
4
- import { assertGate, emitGate, makeTempRoot, writeText } from './sks-3-1-8-check-lib.js';
5
- import { captureSecretPreservationSnapshot, withSecretPreservationGuard } from '../core/config/secret-preservation.js';
6
- const root = await makeTempRoot('sks-supabase-blackbox-');
7
- const envFile = path.join(root, '.env.local');
8
- await writeText(envFile, 'NEXT_PUBLIC_SUPABASE_URL=https://example.supabase.co\nNEXT_PUBLIC_SUPABASE_ANON_KEY=super-secret-anon\n');
9
- const before = await captureSecretPreservationSnapshot({ root });
10
- await withSecretPreservationGuard(root, 'blackbox-preserve', async () => {
11
- await fs.appendFile(envFile, 'SKS_MANAGED=true\n', 'utf8');
12
- });
13
- const after = await captureSecretPreservationSnapshot({ root });
14
- assertGate(JSON.stringify(before.fingerprints.map((fp) => fp.value_sha256).sort()) === JSON.stringify(after.fingerprints.map((fp) => fp.value_sha256).sort()), 'Supabase secret fingerprints must remain stable across guarded update', { before, after });
15
- assertGate(!JSON.stringify(after).includes('super-secret-anon'), 'reports must not include raw Supabase values', after);
16
- let blocked = false;
17
- try {
18
- await withSecretPreservationGuard(root, 'blackbox-change', async () => {
19
- await fs.writeFile(envFile, 'NEXT_PUBLIC_SUPABASE_URL=https://example.supabase.co\nNEXT_PUBLIC_SUPABASE_ANON_KEY=mutated-secret\n', 'utf8');
20
- });
21
- }
22
- catch {
23
- blocked = true;
24
- }
25
- const restored = await fs.readFile(envFile, 'utf8');
26
- assertGate(blocked, 'Supabase value mutation must be blocked after rollback');
27
- assertGate(restored.includes('super-secret-anon') && !restored.includes('mutated-secret'), 'Supabase value mutation must be rolled back');
28
- emitGate('secret:supabase-preservation-blackbox');
29
- //# sourceMappingURL=supabase-secret-preservation-blackbox.js.map
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import { runRouteBackfillBlackbox } from './agent-route-blackbox-lib.js';
4
- runRouteBackfillBlackbox('$Team', 'team:backfill-route-blackbox');
5
- //# sourceMappingURL=team-backfill-route-blackbox.js.map
@@ -1,55 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import fs from 'node:fs';
4
- import os from 'node:os';
5
- import path from 'node:path';
6
- import { spawnSync } from 'node:child_process';
7
- import { assertGate, emitGate, importDist, root } from './sks-1-18-gate-lib.js';
8
- const mergeMod = await importDist('core/agents/agent-merge-coordinator.js');
9
- const applyMod = await importDist('core/agents/agent-patch-apply-worker.js');
10
- const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-team-patch-'));
11
- fs.writeFileSync(path.join(tmp, 'team-a.txt'), 'lane-a\n');
12
- fs.writeFileSync(path.join(tmp, 'team-b.txt'), 'lane-b\n');
13
- const envelopes = [
14
- { schema: 'sks.agent-patch-envelope.v1', agent_id: 'reviewer-a', session_id: 'team-session-a', slot_id: 'team-slot-a', generation_index: 1, lease_id: 'lease:reviewer-a:team-a.txt', operations: [{ op: 'replace', path: 'team-a.txt', search: 'lane-a', replace: 'lane-a-done' }] },
15
- { schema: 'sks.agent-patch-envelope.v1', agent_id: 'reviewer-b', session_id: 'team-session-b', slot_id: 'team-slot-b', generation_index: 1, lease_id: 'lease:reviewer-b:team-b.txt', operations: [{ op: 'replace', path: 'team-b.txt', search: 'lane-b', replace: 'lane-b-done' }] }
16
- ];
17
- const merge = mergeMod.coordinateAgentPatchMerge(envelopes);
18
- const applyResults = [];
19
- for (const envelope of envelopes)
20
- applyResults.push(await applyMod.applyAgentPatchEnvelope(tmp, envelope));
21
- const teamRun = spawnSync(process.execPath, [
22
- 'dist/bin/sks.js',
23
- 'team',
24
- 'team parallel write blackbox route fixture',
25
- 'executor:1',
26
- 'reviewer:5',
27
- '--mock',
28
- '--write-mode',
29
- 'parallel',
30
- '--apply-patches',
31
- '--dry-run-patches',
32
- '--max-write-agents',
33
- '1',
34
- '--json'
35
- ], { cwd: root, encoding: 'utf8', maxBuffer: 2 * 1024 * 1024 });
36
- const teamJson = parseJson(teamRun.stdout);
37
- const routePolicy = teamJson?.parallel_write_policy || teamJson?.run?.parallel_write_policy || teamJson?.native_agent_run?.parallel_write_policy || null;
38
- const report = { schema: 'sks.team-parallel-write-blackbox.v1', ok: merge.ok && applyResults.every((item) => item.ok) && teamRun.status === 0 && routePolicy?.route_level_flags_wired === true, merge, applyResults, route_command: { status: teamRun.status, stderr_tail: teamRun.stderr.slice(-2000), mission_id: teamJson?.mission_id || null, route_policy: routePolicy } };
39
- const out = path.join(root, '.sneakoscope', 'reports', 'team-parallel-write-blackbox.json');
40
- fs.mkdirSync(path.dirname(out), { recursive: true });
41
- fs.writeFileSync(out, `${JSON.stringify(report, null, 2)}\n`);
42
- assertGate(report.ok === true, 'Team parallel write blackbox must pass', report);
43
- assertGate(routePolicy?.write_mode === 'parallel', 'Team route must carry --write-mode parallel into native agent policy', report);
44
- assertGate(routePolicy?.apply_patches === true, 'Team route must carry --apply-patches into native agent policy', report);
45
- assertGate(routePolicy?.dry_run_patches === true, 'Team route must carry --dry-run-patches into native agent policy', report);
46
- emitGate('team:parallel-write-blackbox', { changed_files: applyResults.flatMap((item) => item.changed_files).length });
47
- function parseJson(text) {
48
- try {
49
- return JSON.parse(text);
50
- }
51
- catch {
52
- return null;
53
- }
54
- }
55
- //# sourceMappingURL=team-parallel-write-blackbox.js.map
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import { runPatchSwarmRouteBlackbox } from './agent-patch-swarm-gate-lib.js';
4
- await runPatchSwarmRouteBlackbox({
5
- gate: 'team:patch-swarm-route-blackbox',
6
- route: '$Team',
7
- routeCommand: 'sks team',
8
- reportName: 'team-patch-swarm-route-blackbox'
9
- });
10
- //# sourceMappingURL=team-patch-swarm-route-blackbox.js.map
@@ -1,28 +0,0 @@
1
- // @ts-nocheck
2
- import fs from 'node:fs/promises';
3
- import path from 'node:path';
4
- import { assertGate, emitGate, makeTempRoot } from './sks-3-1-8-check-lib.js';
5
- import { importDist } from './sks-1-18-gate-lib.js';
6
- const tmp = await makeTempRoot('sks-triwiki-affected-');
7
- await fs.writeFile(path.join(tmp, 'package.json'), JSON.stringify({ scripts: { 'triwiki:affected-graph': 'node fixture.js' } }));
8
- await fs.writeFile(path.join(tmp, 'release-gates.v2.json'), JSON.stringify({
9
- schema: 'sks.release-gates.v2',
10
- gates: [{
11
- id: 'triwiki:affected-graph',
12
- command: 'npm run triwiki:affected-graph --silent',
13
- deps: [],
14
- resource: ['cpu-light'],
15
- side_effect: 'hermetic',
16
- timeout_ms: 1000,
17
- cache: { enabled: true, inputs: ['src/core/triwiki/**'] },
18
- isolation: { home: 'temp', codex_home: 'temp', report_dir: 'per-gate' },
19
- preset: ['release']
20
- }]
21
- }, null, 2));
22
- await fs.mkdir(path.join(tmp, 'src/core/triwiki'), { recursive: true });
23
- await fs.writeFile(path.join(tmp, 'src/core/triwiki/a.ts'), 'export const a = 1;\n');
24
- const mod = await importDist('core/triwiki/triwiki-affected-graph.js');
25
- const graph = mod.computeTriWikiAffectedGraph({ root: tmp, changedFiles: ['src/core/triwiki/a.ts'], tier: 'affected' });
26
- assertGate(graph.gates.includes('triwiki:affected-graph'), 'blackbox affected graph must select changed gate', graph);
27
- emitGate('triwiki:affected-graph-blackbox', { gates: graph.gates });
28
- //# sourceMappingURL=triwiki-affected-graph-blackbox.js.map
@@ -1,30 +0,0 @@
1
- // @ts-nocheck
2
- import fs from 'node:fs/promises';
3
- import path from 'node:path';
4
- import { assertGate, emitGate, makeTempRoot } from './sks-3-1-8-check-lib.js';
5
- import { importDist } from './sks-1-18-gate-lib.js';
6
- const tmp = await makeTempRoot('sks-triwiki-proof-bank-');
7
- await fs.writeFile(path.join(tmp, 'package.json'), JSON.stringify({ version: '4.0.0' }));
8
- await fs.writeFile(path.join(tmp, 'package-lock.json'), JSON.stringify({ lockfileVersion: 3 }));
9
- const cardMod = await importDist('core/triwiki/triwiki-proof-card.js');
10
- const bank = await importDist('core/triwiki/triwiki-proof-bank.js');
11
- const card = cardMod.createTriWikiProofCard({
12
- subject_type: 'gate',
13
- subject_id: 'fixture:gate',
14
- cache_key: 'fixture-cache',
15
- input_hash: 'input',
16
- implementation_hash: 'impl',
17
- tool_version: '4.0.0',
18
- fixture_version: 'sks-4.0.0',
19
- result: 'passed',
20
- reusable: true,
21
- evidence: { blackbox: true }
22
- });
23
- bank.writeTriWikiProofCard(tmp, card);
24
- const hit = bank.readReusableTriWikiProofCard({ root: tmp, subjectId: 'fixture:gate', cacheKey: 'fixture-cache' });
25
- assertGate(hit.hit === true && hit.card?.proof_id === card.proof_id, 'proof bank must reuse matching passed card', hit);
26
- bank.markTriWikiProofInvalidated(tmp, 'fixture:gate', card.proof_id, 'fixture_invalidated');
27
- const miss = bank.readReusableTriWikiProofCard({ root: tmp, subjectId: 'fixture:gate', cacheKey: 'fixture-cache' });
28
- assertGate(miss.hit === false, 'invalidated proof card must not be reused', miss);
29
- emitGate('triwiki:proof-bank-blackbox', { hit: true, invalidation_blocked_reuse: true });
30
- //# sourceMappingURL=triwiki-proof-bank-blackbox.js.map
@@ -1,7 +0,0 @@
1
- import { assertGate, emitGate, readText } from './sks-1-18-gate-lib.js';
2
- const source = readText('src/core/triwiki/triwiki-proof-bank.ts');
3
- assertGate(source.includes('function pidAlive(pid: number): boolean'), 'proof bank lock must use a pidAlive helper');
4
- assertGate(!source.includes('process.kill(raw.pid, 0) !== undefined'), 'proof bank lock must not compare process.kill(pid, 0) to undefined');
5
- assertGate(source.includes("code === 'EPERM'"), 'proof bank lock must treat EPERM as alive');
6
- emitGate('triwiki:proof-bank-lock-blackbox');
7
- //# sourceMappingURL=triwiki-proof-bank-lock-blackbox.js.map
@@ -1,27 +0,0 @@
1
- #!/usr/bin/env node
2
- import fs from 'node:fs/promises';
3
- import path from 'node:path';
4
- import { assertGate, emitGate, makeTempRoot, writeText } from './sks-3-1-8-check-lib.js';
5
- import { withSecretPreservationGuard } from '../core/config/config-migration-journal.js';
6
- const root = await makeTempRoot('sks-update-supabase-');
7
- const envFile = path.join(root, '.env.local');
8
- await writeText(envFile, 'NEXT_PUBLIC_SUPABASE_URL=https://example.supabase.co\nNEXT_PUBLIC_SUPABASE_ANON_KEY=update-secret\n');
9
- await withSecretPreservationGuard(root, 'update-fixture', async () => {
10
- await fs.appendFile(envFile, 'SKS_UPDATE_MARKER=1\n', 'utf8');
11
- });
12
- const text = await fs.readFile(envFile, 'utf8');
13
- assertGate(text.includes('update-secret'), 'update fixture must preserve Supabase key value in source file');
14
- let blocked = false;
15
- try {
16
- await withSecretPreservationGuard(root, 'update-fixture-mutates-secret', async () => {
17
- await fs.writeFile(envFile, 'NEXT_PUBLIC_SUPABASE_URL=https://example.supabase.co\nNEXT_PUBLIC_SUPABASE_ANON_KEY=mutated-update-secret\n', 'utf8');
18
- });
19
- }
20
- catch {
21
- blocked = true;
22
- }
23
- const restored = await fs.readFile(envFile, 'utf8');
24
- assertGate(blocked, 'update guard must block Supabase key value mutation');
25
- assertGate(restored.includes('update-secret') && !restored.includes('mutated-update-secret'), 'update guard must restore Supabase key value after mutation');
26
- emitGate('update:preserves-supabase-keys');
27
- //# sourceMappingURL=update-preserves-supabase-keys-blackbox.js.map
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import { runPatchSwarmRouteBlackbox } from './agent-patch-swarm-gate-lib.js';
4
- await runPatchSwarmRouteBlackbox({
5
- gate: 'ux:patch-swarm-route-blackbox',
6
- route: '$UX-Review',
7
- routeCommand: 'sks ux-review',
8
- reportName: 'ux-patch-swarm-route-blackbox'
9
- });
10
- //# sourceMappingURL=ux-patch-swarm-route-blackbox.js.map