sneakoscope 2.0.13 → 2.0.15

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 (504) hide show
  1. package/README.md +6 -3
  2. package/crates/sks-core/Cargo.lock +1 -1
  3. package/crates/sks-core/Cargo.toml +1 -1
  4. package/crates/sks-core/src/main.rs +1 -1
  5. package/dist/.sks-build-stamp.json +4 -4
  6. package/dist/bin/sks.js +1 -1
  7. package/dist/cli/command-registry.js +1 -0
  8. package/dist/commands/mad-db.js +5 -0
  9. package/dist/commands/zellij-slot-pane.js +3 -1
  10. package/dist/core/agents/agent-orchestrator.js +11 -4
  11. package/dist/core/agents/agent-output-validator.js +1 -1
  12. package/dist/core/agents/agent-plan.js +3 -2
  13. package/dist/core/agents/native-cli-session-swarm.js +118 -0
  14. package/dist/core/agents/native-cli-worker.js +85 -0
  15. package/dist/core/codex-control/codex-fake-sdk-adapter.js +3 -3
  16. package/dist/core/codex-control/gpt-final-review-schema.js +61 -14
  17. package/dist/core/commands/basic-cli.js +1 -1
  18. package/dist/core/commands/command-suggestions.js +1 -1
  19. package/dist/core/commands/mad-db-command.js +106 -0
  20. package/dist/core/commands/mad-sks-command.js +50 -13
  21. package/dist/core/commands/naruto-command.js +82 -1
  22. package/dist/core/commands/research-command.js +83 -17
  23. package/dist/core/commands/team-command.js +25 -1
  24. package/dist/core/db-safety.js +26 -0
  25. package/dist/core/fsx.js +1 -1
  26. package/dist/core/mad-db/mad-db-capability.js +84 -0
  27. package/dist/core/mad-db/mad-db-ledger.js +17 -0
  28. package/dist/core/mad-db/mad-db-policy-resolver.js +46 -0
  29. package/dist/core/naruto/naruto-real-worker-child.js +11 -3
  30. package/dist/core/naruto/naruto-real-worker-runtime.js +4 -0
  31. package/dist/core/pipeline/final-gpt-patch-stage.js +20 -3
  32. package/dist/core/pipeline-internals/runtime-core.js +74 -8
  33. package/dist/core/pipeline-internals/runtime-gates.js +44 -0
  34. package/dist/core/proof/route-proof-gate.js +5 -3
  35. package/dist/core/proof/route-proof-policy.js +9 -1
  36. package/dist/core/release/release-gate-affected-selector.js +113 -0
  37. package/dist/core/release/release-gate-batch-runner.js +67 -0
  38. package/dist/core/release/release-gate-dag.js +22 -3
  39. package/dist/core/release/release-gate-resource-governor.js +23 -11
  40. package/dist/core/research/implementation-blueprint-densifier.js +124 -0
  41. package/dist/core/research/implementation-blueprint-markdown.js +1 -1
  42. package/dist/core/research/implementation-blueprint.js +68 -7
  43. package/dist/core/research/research-claim-builder.js +114 -0
  44. package/dist/core/research/research-cycle-runner.js +115 -11
  45. package/dist/core/research/research-final-reviewer.js +181 -1
  46. package/dist/core/research/research-handoff.js +69 -5
  47. package/dist/core/research/research-realistic-report.js +162 -0
  48. package/dist/core/research/research-repetition-detector.js +75 -0
  49. package/dist/core/research/research-report-quality.js +27 -5
  50. package/dist/core/research/research-source-ledger-merge.js +186 -0
  51. package/dist/core/research/research-source-shards.js +176 -0
  52. package/dist/core/research/research-stage-runner.js +537 -11
  53. package/dist/core/research/research-synthesis-prompt.js +52 -0
  54. package/dist/core/research/research-synthesis-writer.js +208 -0
  55. package/dist/core/research/research-work-graph.js +114 -23
  56. package/dist/core/research.js +72 -48
  57. package/dist/core/routes.js +23 -19
  58. package/dist/core/update/update-notice.js +120 -0
  59. package/dist/core/version.js +1 -1
  60. package/dist/core/zellij/zellij-dashboard-renderer.js +2 -0
  61. package/dist/core/zellij/zellij-slot-column-anchor.js +35 -1
  62. package/dist/core/zellij/zellij-slot-pane-renderer.js +57 -0
  63. package/dist/core/zellij/zellij-slot-telemetry.js +182 -0
  64. package/dist/scripts/release-gate-dag-runner.js +5 -0
  65. package/dist/scripts/release-speed-summary.js +25 -0
  66. package/package.json +67 -5
  67. package/schemas/codex/agent-result.schema.json +1 -1
  68. package/schemas/mad-db/mad-db-capability.schema.json +31 -0
  69. package/schemas/mad-db/mad-db-ledger.schema.json +14 -0
  70. package/schemas/research/implementation-blueprint.schema.json +6 -1
  71. package/schemas/research/research-final-review.schema.json +10 -0
  72. package/schemas/research/research-source-shard.schema.json +46 -0
  73. package/schemas/research/research-synthesis-output.schema.json +62 -0
  74. package/schemas/update/update-notice.schema.json +19 -0
  75. package/schemas/zellij/zellij-slot-telemetry.schema.json +89 -0
  76. package/dist/build-manifest.json +0 -1184
  77. package/dist/scripts/agent-ast-aware-work-graph-check.js +0 -25
  78. package/dist/scripts/agent-backfill-replenishment-check.js +0 -13
  79. package/dist/scripts/agent-backfill-route-blackbox.js +0 -5
  80. package/dist/scripts/agent-background-terminals-check.js +0 -16
  81. package/dist/scripts/agent-cleanup-command-ux-check.js +0 -12
  82. package/dist/scripts/agent-cleanup-executor-check.js +0 -53
  83. package/dist/scripts/agent-cleanup-executor-v2-check.js +0 -39
  84. package/dist/scripts/agent-cli-options-to-task-graph-check.js +0 -5
  85. package/dist/scripts/agent-codex-app-cockpit-check.js +0 -91
  86. package/dist/scripts/agent-codex-child-overlap-check.js +0 -21
  87. package/dist/scripts/agent-dynamic-cockpit-check.js +0 -10
  88. package/dist/scripts/agent-dynamic-pool-check.js +0 -13
  89. package/dist/scripts/agent-dynamic-pool-route-blackbox.js +0 -5
  90. package/dist/scripts/agent-fast-mode-default-check.js +0 -62
  91. package/dist/scripts/agent-fast-mode-worker-propagation-check.js +0 -7
  92. package/dist/scripts/agent-follow-up-work-schema-check.js +0 -80
  93. package/dist/scripts/agent-goal-mode-propagation-check.js +0 -9
  94. package/dist/scripts/agent-intelligent-work-graph-check.js +0 -25
  95. package/dist/scripts/agent-janitor-check.js +0 -76
  96. package/dist/scripts/agent-main-no-scout-check.js +0 -11
  97. package/dist/scripts/agent-model-authored-patch-envelope-check.js +0 -15
  98. package/dist/scripts/agent-multi-project-isolation-check.js +0 -86
  99. package/dist/scripts/agent-native-cli-session-proof-check.js +0 -7
  100. package/dist/scripts/agent-native-cli-session-swarm-10-check.js +0 -7
  101. package/dist/scripts/agent-native-cli-session-swarm-20-check.js +0 -7
  102. package/dist/scripts/agent-native-cli-session-swarm-check.js +0 -7
  103. package/dist/scripts/agent-no-subagent-scaling-check.js +0 -7
  104. package/dist/scripts/agent-parallel-write-blackbox.js +0 -56
  105. package/dist/scripts/agent-parallel-write-kernel-check.js +0 -103
  106. package/dist/scripts/agent-patch-conflict-rebase-check.js +0 -198
  107. package/dist/scripts/agent-patch-envelope-extraction-check.js +0 -17
  108. package/dist/scripts/agent-patch-proof-check.js +0 -41
  109. package/dist/scripts/agent-patch-proof-runtime-check.js +0 -63
  110. package/dist/scripts/agent-patch-queue-runtime-check.js +0 -36
  111. package/dist/scripts/agent-patch-rollback-check.js +0 -38
  112. package/dist/scripts/agent-patch-rollback-dag-check.js +0 -14
  113. package/dist/scripts/agent-patch-swarm-route-blackbox.js +0 -10
  114. package/dist/scripts/agent-patch-swarm-runtime-check.js +0 -10
  115. package/dist/scripts/agent-patch-swarm-runtime-truth-check.js +0 -76
  116. package/dist/scripts/agent-patch-transaction-journal-check.js +0 -57
  117. package/dist/scripts/agent-patch-verification-dag-check.js +0 -14
  118. package/dist/scripts/agent-proof-contract-reconciled-check.js +0 -5
  119. package/dist/scripts/agent-real-codex-dynamic-smoke-check.js +0 -166
  120. package/dist/scripts/agent-real-codex-dynamic-smoke-v2-check.js +0 -14
  121. package/dist/scripts/agent-real-codex-in-zellij-worker-pane-check.js +0 -229
  122. package/dist/scripts/agent-real-codex-parallel-workers-10-check.js +0 -5
  123. package/dist/scripts/agent-real-codex-parallel-workers-20-check.js +0 -5
  124. package/dist/scripts/agent-real-codex-parallel-workers-5-check.js +0 -5
  125. package/dist/scripts/agent-real-codex-parallel-workers-check.js +0 -5
  126. package/dist/scripts/agent-role-config-repair-check.js +0 -33
  127. package/dist/scripts/agent-rollback-command-check.js +0 -86
  128. package/dist/scripts/agent-route-truth-backfill-check.js +0 -5
  129. package/dist/scripts/agent-scheduler-proof-check.js +0 -13
  130. package/dist/scripts/agent-scheduler-proof-hardening-check.js +0 -22
  131. package/dist/scripts/agent-session-generation-check.js +0 -21
  132. package/dist/scripts/agent-slot-pane-binding-proof-check.js +0 -64
  133. package/dist/scripts/agent-source-intelligence-propagation-check.js +0 -9
  134. package/dist/scripts/agent-strategy-to-lease-wiring-check.js +0 -32
  135. package/dist/scripts/agent-strategy-to-patch-strict-check.js +0 -54
  136. package/dist/scripts/agent-task-graph-expansion-check.js +0 -14
  137. package/dist/scripts/agent-terminal-generations-check.js +0 -23
  138. package/dist/scripts/agent-visual-consistency-check.js +0 -9
  139. package/dist/scripts/agent-wiki-context-proof-check.js +0 -62
  140. package/dist/scripts/agent-worker-backend-router-check.js +0 -63
  141. package/dist/scripts/agent-worker-scout-limited-check.js +0 -17
  142. package/dist/scripts/agent-zellij-dynamic-backfill-panes-check.js +0 -34
  143. package/dist/scripts/agent-zellij-runtime-check.js +0 -84
  144. package/dist/scripts/all-feature-deep-completion-check.js +0 -31
  145. package/dist/scripts/appshots-capability-check.js +0 -18
  146. package/dist/scripts/appshots-evidence-check.js +0 -48
  147. package/dist/scripts/appshots-operator-policy-check.js +0 -25
  148. package/dist/scripts/appshots-privacy-safety-check.js +0 -48
  149. package/dist/scripts/appshots-source-intelligence-check.js +0 -53
  150. package/dist/scripts/appshots-thread-attachment-discovery-check.js +0 -87
  151. package/dist/scripts/appshots-triwiki-voxel-check.js +0 -46
  152. package/dist/scripts/architecture-guard-check.js +0 -55
  153. package/dist/scripts/changelog-check.js +0 -47
  154. package/dist/scripts/codex-0-133-official-compat-report.js +0 -53
  155. package/dist/scripts/codex-0-134-official-compat-report.js +0 -110
  156. package/dist/scripts/codex-0-134-runner-truth-check.js +0 -66
  157. package/dist/scripts/codex-0-135-compat-check.js +0 -57
  158. package/dist/scripts/codex-0-136-compat-check.js +0 -30
  159. package/dist/scripts/codex-0-137-compat-check.js +0 -27
  160. package/dist/scripts/codex-app-fast-ui-preservation-check.js +0 -32
  161. package/dist/scripts/codex-app-provider-badge-check.js +0 -37
  162. package/dist/scripts/codex-app-ui-clobber-guard-check.js +0 -22
  163. package/dist/scripts/codex-app-ui-preservation-check.js +0 -96
  164. package/dist/scripts/codex-control-all-pipelines-check.js +0 -36
  165. package/dist/scripts/codex-control-capability-check.js +0 -10
  166. package/dist/scripts/codex-control-empty-result-retry-check.js +0 -43
  167. package/dist/scripts/codex-control-event-stream-ledger-check.js +0 -10
  168. package/dist/scripts/codex-control-keepalive-no-cot-leak-check.js +0 -14
  169. package/dist/scripts/codex-control-no-legacy-fallback-check.js +0 -31
  170. package/dist/scripts/codex-control-side-effect-scope-check.js +0 -26
  171. package/dist/scripts/codex-control-stream-idle-watchdog-check.js +0 -18
  172. package/dist/scripts/codex-control-structured-output-check.js +0 -11
  173. package/dist/scripts/codex-control-thread-registry-check.js +0 -11
  174. package/dist/scripts/codex-control-tool-call-sequence-repair-check.js +0 -14
  175. package/dist/scripts/codex-environment-scoped-approvals-check.js +0 -10
  176. package/dist/scripts/codex-exec-output-schema-actual-syntax-check.js +0 -33
  177. package/dist/scripts/codex-fast-mode-profile-propagation-check.js +0 -12
  178. package/dist/scripts/codex-history-search-check.js +0 -19
  179. package/dist/scripts/codex-hook-semantic-check.js +0 -15
  180. package/dist/scripts/codex-hook-strict-subset-check.js +0 -61
  181. package/dist/scripts/codex-lb-config-toml-safety-check.js +0 -85
  182. package/dist/scripts/codex-lb-persistence-truth-check.js +0 -96
  183. package/dist/scripts/codex-lb-setup-fixture-check.js +0 -91
  184. package/dist/scripts/codex-lb-setup-truthfulness-check.js +0 -84
  185. package/dist/scripts/codex-legacy-profile-consumers-removed-check.js +0 -24
  186. package/dist/scripts/codex-managed-proxy-env-check.js +0 -17
  187. package/dist/scripts/codex-output-schema-fixture-check.js +0 -25
  188. package/dist/scripts/codex-permission-profiles-check.js +0 -36
  189. package/dist/scripts/codex-plugin-list-json-check.js +0 -8
  190. package/dist/scripts/codex-profile-primary-check.js +0 -13
  191. package/dist/scripts/codex-project-config-policy-splitter-check.js +0 -51
  192. package/dist/scripts/codex-resume-cwd-truth-check.js +0 -17
  193. package/dist/scripts/codex-sdk-all-pipelines-check.js +0 -32
  194. package/dist/scripts/codex-sdk-backend-router-check.js +0 -65
  195. package/dist/scripts/codex-sdk-capability-check.js +0 -11
  196. package/dist/scripts/codex-sdk-core-skill-pipeline-check.js +0 -9
  197. package/dist/scripts/codex-sdk-dfix-pipeline-check.js +0 -9
  198. package/dist/scripts/codex-sdk-event-stream-ledger-check.js +0 -9
  199. package/dist/scripts/codex-sdk-no-legacy-fallback-check.js +0 -33
  200. package/dist/scripts/codex-sdk-qa-pipeline-check.js +0 -8
  201. package/dist/scripts/codex-sdk-real-smoke-check.js +0 -39
  202. package/dist/scripts/codex-sdk-release-review-pipeline-check.js +0 -13
  203. package/dist/scripts/codex-sdk-research-pipeline-check.js +0 -15
  204. package/dist/scripts/codex-sdk-sandbox-policy-check.js +0 -21
  205. package/dist/scripts/codex-sdk-structured-output-check.js +0 -10
  206. package/dist/scripts/codex-sdk-team-naruto-agent-pipeline-check.js +0 -12
  207. package/dist/scripts/codex-sdk-thread-registry-check.js +0 -11
  208. package/dist/scripts/codex-sdk-ux-ppt-review-pipeline-check.js +0 -9
  209. package/dist/scripts/codex-sdk-zellij-pane-binding-check.js +0 -13
  210. package/dist/scripts/codex-thread-runtime-choice-check.js +0 -10
  211. package/dist/scripts/codex-web-adapter-check.js +0 -12
  212. package/dist/scripts/computer-use-live-evidence-check.js +0 -55
  213. package/dist/scripts/computer-use-live-optional-check.js +0 -32
  214. package/dist/scripts/computer-use-policy-check.js +0 -69
  215. package/dist/scripts/computer-use-visual-route-fixture-check.js +0 -37
  216. package/dist/scripts/core-skill-card-schema-check.js +0 -61
  217. package/dist/scripts/core-skill-deployment-snapshot-check.js +0 -54
  218. package/dist/scripts/core-skill-heldout-validation-check.js +0 -49
  219. package/dist/scripts/core-skill-no-inference-optimizer-check.js +0 -75
  220. package/dist/scripts/core-skill-patch-check.js +0 -79
  221. package/dist/scripts/core-skill-promotion-side-effect-ledger-check.js +0 -64
  222. package/dist/scripts/core-skill-rollout-scoring-check.js +0 -72
  223. package/dist/scripts/core-skill-route-runtime-integration-check.js +0 -49
  224. package/dist/scripts/dfix-fast-blackbox-check.js +0 -37
  225. package/dist/scripts/dfix-fast-kernel-check.js +0 -26
  226. package/dist/scripts/dfix-fixture-check.js +0 -6
  227. package/dist/scripts/dfix-parallel-write-blackbox.js +0 -48
  228. package/dist/scripts/dfix-patch-handoff-check.js +0 -13
  229. package/dist/scripts/dfix-patch-swarm-route-blackbox.js +0 -10
  230. package/dist/scripts/dfix-performance-check.js +0 -15
  231. package/dist/scripts/dfix-verification-check.js +0 -9
  232. package/dist/scripts/dfix-verification-recommendation-check.js +0 -15
  233. package/dist/scripts/docs-truthfulness-check.js +0 -61
  234. package/dist/scripts/doctor-codex-doctor-parity-check.js +0 -17
  235. package/dist/scripts/doctor-fix-proves-codex-read-check.js +0 -64
  236. package/dist/scripts/doctor-fix-recovers-corrupted-config-check.js +0 -122
  237. package/dist/scripts/doctor-fixes-codex-app-fast-ui-check.js +0 -39
  238. package/dist/scripts/evidence-fixture-check.js +0 -26
  239. package/dist/scripts/evidence-flagship-coverage-check.js +0 -55
  240. package/dist/scripts/fake-real-proof-policy-v2-check.js +0 -27
  241. package/dist/scripts/fake-vs-real-proof-policy-check.js +0 -14
  242. package/dist/scripts/fast-codex-service-tier-proof-check.js +0 -42
  243. package/dist/scripts/flagship-proof-graph-v2-check.js +0 -48
  244. package/dist/scripts/flagship-proof-graph-v3-check.js +0 -67
  245. package/dist/scripts/flagship-proof-graph-v4-check.js +0 -61
  246. package/dist/scripts/git-precommit-fixture-check.js +0 -41
  247. package/dist/scripts/git-worktree-cache-performance-check.js +0 -25
  248. package/dist/scripts/git-worktree-capability-check.js +0 -27
  249. package/dist/scripts/git-worktree-checkpoint-check.js +0 -20
  250. package/dist/scripts/git-worktree-cleanup-check.js +0 -27
  251. package/dist/scripts/git-worktree-cross-rebase-check.js +0 -39
  252. package/dist/scripts/git-worktree-diff-envelope-check.js +0 -17
  253. package/dist/scripts/git-worktree-diff-export-check.js +0 -43
  254. package/dist/scripts/git-worktree-dirty-lock-check.js +0 -17
  255. package/dist/scripts/git-worktree-dirty-main-detection-check.js +0 -14
  256. package/dist/scripts/git-worktree-integration-primary-check.js +0 -24
  257. package/dist/scripts/git-worktree-integration-primary-runtime-check.js +0 -20
  258. package/dist/scripts/git-worktree-manager-check.js +0 -37
  259. package/dist/scripts/git-worktree-manifest-append-check.js +0 -18
  260. package/dist/scripts/git-worktree-merge-queue-check.js +0 -31
  261. package/dist/scripts/git-worktree-pool-performance-check.js +0 -20
  262. package/dist/scripts/git-worktree-untracked-diff-check.js +0 -18
  263. package/dist/scripts/goal-mode-official-default-check.js +0 -12
  264. package/dist/scripts/gpt-final-arbiter-check.js +0 -63
  265. package/dist/scripts/gpt-final-arbiter-performance-check.js +0 -36
  266. package/dist/scripts/gpt-image-2-request-validator-check.js +0 -35
  267. package/dist/scripts/hooks-0.134-context-parity-check.js +0 -20
  268. package/dist/scripts/hooks-actual-parity-check.js +0 -17
  269. package/dist/scripts/hooks-actual-parity-v2-check.js +0 -21
  270. package/dist/scripts/hooks-latest-schema-check.js +0 -20
  271. package/dist/scripts/hooks-managed-install-fixture-check.js +0 -21
  272. package/dist/scripts/hooks-official-hash-oracle-check.js +0 -35
  273. package/dist/scripts/hooks-official-hash-parity-check.js +0 -17
  274. package/dist/scripts/hooks-subagent-events-check.js +0 -17
  275. package/dist/scripts/hooks-trust-state-check.js +0 -14
  276. package/dist/scripts/image-fidelity-fixture-check.js +0 -24
  277. package/dist/scripts/imagegen-capability-check.js +0 -30
  278. package/dist/scripts/imagegen-real-smoke-check.js +0 -155
  279. package/dist/scripts/install-update-preserves-config-check.js +0 -87
  280. package/dist/scripts/json-schema-recursive-check.js +0 -78
  281. package/dist/scripts/legacy-multiagent-removal-check.js +0 -85
  282. package/dist/scripts/legacy-upgrade-matrix-check.js +0 -300
  283. package/dist/scripts/local-collab-all-pipelines-final-gpt-check.js +0 -21
  284. package/dist/scripts/local-collab-gpt-final-availability-check.js +0 -58
  285. package/dist/scripts/local-collab-no-local-only-final-check.js +0 -27
  286. package/dist/scripts/local-collab-policy-check.js +0 -17
  287. package/dist/scripts/local-collab-worktree-gpt-final-apply-policy-check.js +0 -63
  288. package/dist/scripts/local-llm-all-pipelines-check.js +0 -11
  289. package/dist/scripts/local-llm-cache-performance-check.js +0 -10
  290. package/dist/scripts/local-llm-capability-check.js +0 -14
  291. package/dist/scripts/local-llm-smoke-check.js +0 -23
  292. package/dist/scripts/local-llm-structured-output-check.js +0 -11
  293. package/dist/scripts/local-llm-throughput-check.js +0 -10
  294. package/dist/scripts/local-llm-tool-call-repair-check.js +0 -10
  295. package/dist/scripts/local-llm-warmup-check.js +0 -11
  296. package/dist/scripts/loop-blocker-check.js +0 -15
  297. package/dist/scripts/mad-preflight-blocks-unreadable-config-check.js +0 -35
  298. package/dist/scripts/mad-sks-actual-executor-blackbox.js +0 -5
  299. package/dist/scripts/mad-sks-app-ui-no-mutation-check.js +0 -92
  300. package/dist/scripts/mad-sks-audit-proof-check.js +0 -34
  301. package/dist/scripts/mad-sks-db-executor-check.js +0 -5
  302. package/dist/scripts/mad-sks-executor-proof-graph-check.js +0 -5
  303. package/dist/scripts/mad-sks-fast-mode-propagation-check.js +0 -24
  304. package/dist/scripts/mad-sks-file-write-executor-check.js +0 -5
  305. package/dist/scripts/mad-sks-immutable-harness-check.js +0 -36
  306. package/dist/scripts/mad-sks-no-harness-modification-check.js +0 -25
  307. package/dist/scripts/mad-sks-package-executor-check.js +0 -5
  308. package/dist/scripts/mad-sks-permission-model-check.js +0 -22
  309. package/dist/scripts/mad-sks-rollback-apply-check.js +0 -5
  310. package/dist/scripts/mad-sks-service-executor-check.js +0 -5
  311. package/dist/scripts/mad-sks-shell-executor-check.js +0 -5
  312. package/dist/scripts/mad-sks-write-guard-check.js +0 -28
  313. package/dist/scripts/mad-sks-zellij-default-pane-worker-check.js +0 -37
  314. package/dist/scripts/mad-sks-zellij-launch-check.js +0 -102
  315. package/dist/scripts/mcp-0-134-modernization-check.js +0 -55
  316. package/dist/scripts/mcp-readonly-concurrency-check.js +0 -17
  317. package/dist/scripts/mcp-readonly-runtime-scheduler-check.js +0 -20
  318. package/dist/scripts/mcp-tool-naming-parity-check.js +0 -16
  319. package/dist/scripts/memory-summary-rebuild-check.js +0 -22
  320. package/dist/scripts/mutation-callsite-coverage-check.js +0 -180
  321. package/dist/scripts/naruto-active-pool-check.js +0 -39
  322. package/dist/scripts/naruto-actual-worker-control-plane-check.js +0 -56
  323. package/dist/scripts/naruto-allocation-policy-check.js +0 -33
  324. package/dist/scripts/naruto-allocation-runtime-wiring-check.js +0 -92
  325. package/dist/scripts/naruto-concurrency-governor-check.js +0 -53
  326. package/dist/scripts/naruto-extreme-parallelism-check.js +0 -22
  327. package/dist/scripts/naruto-extreme-parallelism-real-check.js +0 -43
  328. package/dist/scripts/naruto-gpt-final-pack-check.js +0 -34
  329. package/dist/scripts/naruto-orchestrator-runtime-source-check.js +0 -70
  330. package/dist/scripts/naruto-parallel-patch-apply-check.js +0 -41
  331. package/dist/scripts/naruto-readonly-routing-check.js +0 -116
  332. package/dist/scripts/naruto-real-active-pool-check.js +0 -39
  333. package/dist/scripts/naruto-real-active-pool-runtime-check.js +0 -55
  334. package/dist/scripts/naruto-rebalance-policy-check.js +0 -41
  335. package/dist/scripts/naruto-role-distribution-check.js +0 -23
  336. package/dist/scripts/naruto-shadow-clone-swarm-check.js +0 -153
  337. package/dist/scripts/naruto-verification-pool-check.js +0 -36
  338. package/dist/scripts/naruto-work-graph-check.js +0 -24
  339. package/dist/scripts/naruto-worktree-coding-blackbox.js +0 -29
  340. package/dist/scripts/naruto-worktree-coding-check.js +0 -44
  341. package/dist/scripts/naruto-worktree-gpt-final-check.js +0 -45
  342. package/dist/scripts/naruto-worktree-zellij-ui-check.js +0 -28
  343. package/dist/scripts/naruto-zellij-dynamic-right-column-check.js +0 -48
  344. package/dist/scripts/naruto-zellij-massive-ui-check.js +0 -23
  345. package/dist/scripts/non-recursive-pipeline-check.js +0 -68
  346. package/dist/scripts/npm-publish-performance-check.js +0 -65
  347. package/dist/scripts/official-docs-compat-report.js +0 -304
  348. package/dist/scripts/packlist-performance-check.js +0 -83
  349. package/dist/scripts/parallel-verification-engine-check.js +0 -85
  350. package/dist/scripts/postinstall-safe-side-effects-check.js +0 -65
  351. package/dist/scripts/ppt-full-e2e-artifact-graph-check.js +0 -40
  352. package/dist/scripts/ppt-full-e2e-blackbox-check.js +0 -109
  353. package/dist/scripts/ppt-image-voxel-relations-check.js +0 -9
  354. package/dist/scripts/ppt-imagegen-blackbox-check.js +0 -46
  355. package/dist/scripts/ppt-imagegen-review-fixture-check.js +0 -6
  356. package/dist/scripts/ppt-issue-extraction-fixture-check.js +0 -7
  357. package/dist/scripts/ppt-no-mock-as-real-check.js +0 -8
  358. package/dist/scripts/ppt-no-text-fallback-check.js +0 -7
  359. package/dist/scripts/ppt-proof-trust-fixture-check.js +0 -10
  360. package/dist/scripts/ppt-real-export-adapter-check.js +0 -13
  361. package/dist/scripts/ppt-real-imagegen-smoke-check.js +0 -42
  362. package/dist/scripts/ppt-real-imagegen-wiring-check.js +0 -16
  363. package/dist/scripts/ppt-reexport-rereview-check.js +0 -19
  364. package/dist/scripts/ppt-slide-export-fixture-check.js +0 -7
  365. package/dist/scripts/prepublish-fast-check.js +0 -128
  366. package/dist/scripts/priority-full-closure-check.js +0 -12
  367. package/dist/scripts/product-design-auto-install-check.js +0 -119
  368. package/dist/scripts/product-design-plugin-routing-check.js +0 -101
  369. package/dist/scripts/prompt-placeholder-guard-check.js +0 -33
  370. package/dist/scripts/provider-badge-context-check.js +0 -26
  371. package/dist/scripts/provider-context-config-toml-check.js +0 -63
  372. package/dist/scripts/python-codex-sdk-all-pipelines-check.js +0 -47
  373. package/dist/scripts/python-codex-sdk-capability-check.js +0 -75
  374. package/dist/scripts/python-codex-sdk-sandbox-policy-check.js +0 -10
  375. package/dist/scripts/python-codex-sdk-stream-bridge-check.js +0 -12
  376. package/dist/scripts/python-tools-smoke-check.js +0 -71
  377. package/dist/scripts/qa-actual-route-backfill-check.js +0 -5
  378. package/dist/scripts/qa-backfill-route-blackbox.js +0 -5
  379. package/dist/scripts/qa-patch-swarm-route-blackbox.js +0 -10
  380. package/dist/scripts/readme-architecture-imagegen-official-check.js +0 -448
  381. package/dist/scripts/release-cache-glob-hashing-check.js +0 -42
  382. package/dist/scripts/release-dag-full-coverage-check.js +0 -53
  383. package/dist/scripts/release-dist-freshness-check.js +0 -8
  384. package/dist/scripts/release-dynamic-performance-check.js +0 -103
  385. package/dist/scripts/release-gate-budget-check.js +0 -36
  386. package/dist/scripts/release-gate-dag-runner-check.js +0 -17
  387. package/dist/scripts/release-metadata-1-11-check.js +0 -37
  388. package/dist/scripts/release-metadata-1-12-check.js +0 -48
  389. package/dist/scripts/release-metadata-1-13-check.js +0 -53
  390. package/dist/scripts/release-metadata-1-14-check.js +0 -63
  391. package/dist/scripts/release-metadata-1-16-check.js +0 -81
  392. package/dist/scripts/release-metadata-1-17-check.js +0 -51
  393. package/dist/scripts/release-metadata-1-19-check.js +0 -371
  394. package/dist/scripts/release-metadata-check.js +0 -7
  395. package/dist/scripts/release-native-agent-fixture-check.js +0 -41
  396. package/dist/scripts/release-parallel-check.js +0 -374
  397. package/dist/scripts/release-parallel-full-coverage-check.js +0 -13
  398. package/dist/scripts/release-parallel-speed-budget-check.js +0 -79
  399. package/dist/scripts/release-provenance-check.js +0 -150
  400. package/dist/scripts/release-readiness-report.js +0 -1146
  401. package/dist/scripts/release-real-check.js +0 -330
  402. package/dist/scripts/release-registry-check.js +0 -344
  403. package/dist/scripts/release-runtime-truth-matrix-check.js +0 -47
  404. package/dist/scripts/release-stability-report-check.js +0 -99
  405. package/dist/scripts/release-version-truth-check.js +0 -134
  406. package/dist/scripts/research-actual-route-backfill-check.js +0 -5
  407. package/dist/scripts/research-backfill-route-blackbox.js +0 -5
  408. package/dist/scripts/research-quality-gate-check.js +0 -86
  409. package/dist/scripts/responses-retry-policy-centralized-check.js +0 -19
  410. package/dist/scripts/retention-cleanup-safety-check.js +0 -155
  411. package/dist/scripts/route-blackbox-realism-check.js +0 -21
  412. package/dist/scripts/route-proof-artifact-structure-check.js +0 -145
  413. package/dist/scripts/runtime-dist-parity-check.js +0 -78
  414. package/dist/scripts/runtime-no-mjs-scripts-check.js +0 -45
  415. package/dist/scripts/runtime-no-src-mjs-check.js +0 -32
  416. package/dist/scripts/runtime-no-tmux-check.js +0 -113
  417. package/dist/scripts/runtime-ts-python-boundary-check.js +0 -59
  418. package/dist/scripts/runtime-ts-rust-boundary-check.js +0 -74
  419. package/dist/scripts/runtime-ts-source-of-truth-check.js +0 -55
  420. package/dist/scripts/safety-check.js +0 -23
  421. package/dist/scripts/shared-memory-fixture-check.js +0 -27
  422. package/dist/scripts/side-effect-runtime-report-check.js +0 -19
  423. package/dist/scripts/side-effect-zero-gate-check.js +0 -226
  424. package/dist/scripts/sks-1-11-fixture-check.js +0 -130
  425. package/dist/scripts/source-intelligence-all-modes-check.js +0 -32
  426. package/dist/scripts/source-intelligence-policy-check.js +0 -13
  427. package/dist/scripts/strategy-adhd-orchestrating-gate-check.js +0 -22
  428. package/dist/scripts/strategy-file-ownership-plan-check.js +0 -18
  429. package/dist/scripts/strategy-parallel-modification-plan-check.js +0 -19
  430. package/dist/scripts/strategy-verification-rollback-dag-check.js +0 -19
  431. package/dist/scripts/team-actual-route-backfill-check.js +0 -5
  432. package/dist/scripts/team-backfill-route-blackbox.js +0 -5
  433. package/dist/scripts/team-parallel-write-blackbox.js +0 -55
  434. package/dist/scripts/team-patch-swarm-route-blackbox.js +0 -10
  435. package/dist/scripts/terminal-keyboard-enhancement-safety-check.js +0 -12
  436. package/dist/scripts/terminal-tui-output-stability-check.js +0 -35
  437. package/dist/scripts/test-no-orphan-dist-imports-check.js +0 -73
  438. package/dist/scripts/trust-fixture-check.js +0 -33
  439. package/dist/scripts/typescript-migration-report.js +0 -78
  440. package/dist/scripts/ultra-router-auto-router-check.js +0 -33
  441. package/dist/scripts/ultra-router-classification-check.js +0 -28
  442. package/dist/scripts/ux-patch-swarm-route-blackbox.js +0 -10
  443. package/dist/scripts/ux-ppt-structured-extraction-check.js +0 -21
  444. package/dist/scripts/ux-review-extract-real-callouts-fixture-check.js +0 -8
  445. package/dist/scripts/ux-review-extract-wires-real-extractor-check.js +0 -15
  446. package/dist/scripts/ux-review-generate-callouts-fixture-check.js +0 -9
  447. package/dist/scripts/ux-review-image-voxel-relations-check.js +0 -31
  448. package/dist/scripts/ux-review-imagegen-blackbox-check.js +0 -67
  449. package/dist/scripts/ux-review-no-fake-callouts-check.js +0 -8
  450. package/dist/scripts/ux-review-no-text-fallback-check.js +0 -25
  451. package/dist/scripts/ux-review-patch-diff-recheck-check.js +0 -20
  452. package/dist/scripts/ux-review-patch-handoff-fixture-check.js +0 -8
  453. package/dist/scripts/ux-review-real-imagegen-smoke-check.js +0 -31
  454. package/dist/scripts/ux-review-real-loop-fixture-check.js +0 -24
  455. package/dist/scripts/ux-review-recapture-recheck-fixture-check.js +0 -8
  456. package/dist/scripts/ux-review-run-wires-imagegen-check.js +0 -11
  457. package/dist/scripts/worker-pane-communication-contract-check.js +0 -54
  458. package/dist/scripts/wrongness-fixture-check.js +0 -65
  459. package/dist/scripts/xai-mcp-capability-check.js +0 -14
  460. package/dist/scripts/zellij-capability-check.js +0 -15
  461. package/dist/scripts/zellij-dashboard-pane-check.js +0 -70
  462. package/dist/scripts/zellij-developer-controls-check.js +0 -20
  463. package/dist/scripts/zellij-doctor-readiness-check.js +0 -63
  464. package/dist/scripts/zellij-dynamic-pane-lifecycle-check.js +0 -21
  465. package/dist/scripts/zellij-first-slot-down-stack-check.js +0 -20
  466. package/dist/scripts/zellij-first-slot-down-stack-real-check.js +0 -356
  467. package/dist/scripts/zellij-initial-main-only-blackbox.js +0 -28
  468. package/dist/scripts/zellij-lane-renderer-check.js +0 -65
  469. package/dist/scripts/zellij-launch-command-truth-check.js +0 -75
  470. package/dist/scripts/zellij-layout-valid-check.js +0 -90
  471. package/dist/scripts/zellij-pane-proof-check.js +0 -59
  472. package/dist/scripts/zellij-real-session-cleanup-check.js +0 -21
  473. package/dist/scripts/zellij-real-session-heartbeat-check.js +0 -49
  474. package/dist/scripts/zellij-real-session-launch-check.js +0 -57
  475. package/dist/scripts/zellij-right-column-headless-overflow-check.js +0 -22
  476. package/dist/scripts/zellij-right-column-manager-check.js +0 -27
  477. package/dist/scripts/zellij-screen-proof-check.js +0 -45
  478. package/dist/scripts/zellij-slot-column-anchor-check.js +0 -66
  479. package/dist/scripts/zellij-slot-only-ui-check.js +0 -26
  480. package/dist/scripts/zellij-slot-pane-renderer-check.js +0 -106
  481. package/dist/scripts/zellij-slot-renderer-proof-semantics-check.js +0 -59
  482. package/dist/scripts/zellij-spawn-on-demand-layout-check.js +0 -40
  483. package/dist/scripts/zellij-ui-design-check.js +0 -105
  484. package/dist/scripts/zellij-worker-pane-manager-check.js +0 -109
  485. package/dist/scripts/zellij-worker-pane-manager-single-owner-check.js +0 -47
  486. package/dist/scripts/zellij-worker-pane-real-ui-blackbox.js +0 -202
  487. package/dist/scripts/zellij-worker-pane-spawn-order-check.js +0 -35
  488. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/permission-request.command.input.schema.json +0 -61
  489. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/permission-request.command.output.schema.json +0 -103
  490. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-compact.command.input.schema.json +0 -52
  491. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-compact.command.output.schema.json +0 -24
  492. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-tool-use.command.input.schema.json +0 -67
  493. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-tool-use.command.output.schema.json +0 -84
  494. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-compact.command.input.schema.json +0 -52
  495. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-compact.command.output.schema.json +0 -24
  496. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-tool-use.command.input.schema.json +0 -65
  497. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-tool-use.command.output.schema.json +0 -105
  498. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/session-start.command.input.schema.json +0 -59
  499. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/session-start.command.output.schema.json +0 -63
  500. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/snapshot-metadata.json +0 -31
  501. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/stop.command.input.schema.json +0 -63
  502. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/stop.command.output.schema.json +0 -45
  503. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/user-prompt-submit.command.input.schema.json +0 -59
  504. package/dist/vendor/openai-codex/rust-v0.131.0/hooks/user-prompt-submit.command.output.schema.json +0 -81
@@ -1,65 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import os from 'node:os';
4
- import path from 'node:path';
5
- import fsp from 'node:fs/promises';
6
- import { fileURLToPath } from 'node:url';
7
- const repo = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..');
8
- const root = await fsp.mkdtemp(path.join(os.tmpdir(), 'sks-wrongness-fixture-'));
9
- const [ledger, imageWrongness, proofLinker] = await Promise.all([
10
- import(path.join(repo, 'dist/core/triwiki-wrongness/wrongness-ledger.js')),
11
- import(path.join(repo, 'dist/core/triwiki-wrongness/image-wrongness.js')),
12
- import(path.join(repo, 'dist/core/triwiki-wrongness/wrongness-proof-linker.js'))
13
- ]);
14
- await fsp.mkdir(path.join(root, '.sneakoscope', 'missions', 'M-fixture'), { recursive: true });
15
- await ledger.recordTestFailureWrongness(root, {
16
- mission_id: 'M-fixture',
17
- route: '$Team',
18
- command: 'node --test failing-fixture.test.mjs',
19
- failure: 'fixture assertion failed',
20
- artifact: '.sneakoscope/missions/M-fixture/test-report.json'
21
- });
22
- await ledger.recordDbSafetyMismatchWrongness(root, {
23
- mission_id: 'M-fixture',
24
- expected: 'blocked',
25
- actual: 'safe',
26
- command: 'sks db check --sql "DROP TABLE users"',
27
- sql: 'DROP TABLE users'
28
- });
29
- await ledger.recordHookPolicyMismatchWrongness(root, {
30
- mission_id: 'M-fixture',
31
- expected: 'block',
32
- actual: 'continue',
33
- artifact: 'test/fixtures/hooks/mismatch.json'
34
- });
35
- await ledger.recordAgentMismatchWrongness(root, {
36
- mission_id: 'M-fixture',
37
- agent_id: 'agent-2-verification',
38
- issues: ['parse_failed'],
39
- artifact: '.sneakoscope/missions/M-fixture/agent-2-verification.json'
40
- });
41
- await imageWrongness.recordImageWrongnessFromValidation(root, {
42
- missionId: 'M-fixture',
43
- route: '$Wiki',
44
- artifact: '.sneakoscope/missions/M-fixture/image-voxel-ledger.json',
45
- validation: {
46
- ok: false,
47
- issues: ['missing_anchors:$Wiki', 'bbox_out_of_bounds:anchor-001']
48
- }
49
- });
50
- const validation = await ledger.validateWrongnessScope(root, 'latest');
51
- const evidence = await proofLinker.wrongnessProofEvidence(root, 'M-fixture');
52
- const ok = validation.ok
53
- && validation.checked >= 5
54
- && evidence.active_count >= 5
55
- && evidence.high_severity_active >= 2;
56
- console.log(JSON.stringify({
57
- schema: 'sks.wrongness-fixture-check.v1',
58
- ok,
59
- root,
60
- validation,
61
- evidence
62
- }, null, 2));
63
- if (!ok)
64
- process.exitCode = 1;
65
- //# sourceMappingURL=wrongness-fixture-check.js.map
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import { assertGate, emitGate, importDist } from './sks-1-18-gate-lib.js';
4
- const detector = await importDist('core/mcp/xai-mcp-detector.js');
5
- const detection = detector.detectXaiMcpFromConfig([
6
- { path: 'fixture.toml', source: 'provided', text: '[mcp_servers.grok]\ntools = ["search", "query"]\n' }
7
- ]);
8
- assertGate(detection.ok === true, 'X AI detector must not fail');
9
- assertGate(detection.configured === true, 'X AI detector must detect configured Grok MCP');
10
- assertGate(detection.search_capable === true, 'X AI detector must detect search-capable tools');
11
- const missing = detector.detectXaiMcpFromConfig([]);
12
- assertGate(missing.ok === true && missing.status === 'missing', 'missing X AI MCP must be ok fallback');
13
- emitGate('xai-mcp:capability', { configured_status: detection.status, missing_status: missing.status });
14
- //# sourceMappingURL=xai-mcp-capability-check.js.map
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import path from 'node:path';
4
- import { pathToFileURL } from 'node:url';
5
- import { ensureDistFresh, root } from './lib/ensure-dist-fresh.js';
6
- const freshness = ensureDistFresh({ rebuild: true });
7
- if (!freshness.ok)
8
- fail('dist_not_fresh', { freshness });
9
- const mod = await import(pathToFileURL(path.join(root, 'dist', 'core', 'zellij', 'zellij-capability.js')).href);
10
- const report = await mod.checkZellijCapability({ root, require: process.argv.includes('--require-real') || process.env.SKS_REQUIRE_ZELLIJ === '1' });
11
- emit(report);
12
- function emit(report) { console.log(JSON.stringify(report, null, 2)); if (!report.ok)
13
- process.exitCode = 1; }
14
- function fail(blocker, detail) { emit({ schema: 'sks.zellij-capability-check.v1', ok: false, blockers: [blocker], detail }); process.exit(1); }
15
- //# sourceMappingURL=zellij-capability-check.js.map
@@ -1,70 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import path from 'node:path';
4
- import { pathToFileURL } from 'node:url';
5
- import { assertGate, emitGate, root } from './sks-1-18-gate-lib.js';
6
- import { ensureDistFresh } from './lib/ensure-dist-fresh.js';
7
- import fs from 'node:fs';
8
- const requireReal = process.env.SKS_REQUIRE_ZELLIJ === '1' || process.argv.includes('--require-real');
9
- const freshness = ensureDistFresh({ rebuild: false });
10
- assertGate(freshness.ok === true, 'dist must be fresh for zellij dashboard pane check', freshness);
11
- const managerSource = fs.readFileSync(path.join(root, 'src', 'core', 'zellij', 'zellij-right-column-manager.ts'), 'utf8');
12
- const narutoSource = fs.readFileSync(path.join(root, 'src', 'core', 'commands', 'naruto-command.ts'), 'utf8');
13
- const madSource = fs.readFileSync(path.join(root, 'src', 'core', 'commands', 'mad-sks-command.ts'), 'utf8');
14
- assertGate(managerSource.includes('openZellijDashboardPane') && narutoSource.includes("dashboard_created: false") && madSource.includes("dashboard_created: false"), 'Dashboard pane must be created by right-column manager after first worker spawn, not at launch', {
15
- manager: managerSource.includes('openZellijDashboardPane'),
16
- naruto_initial_dashboard_false: narutoSource.includes("dashboard_created: false"),
17
- mad_initial_dashboard_false: madSource.includes("dashboard_created: false")
18
- });
19
- const dashboard = await import(pathToFileURL(path.join(root, 'dist', 'core', 'zellij', 'zellij-dashboard-pane.js')).href);
20
- const command = await import(pathToFileURL(path.join(root, 'dist', 'core', 'zellij', 'zellij-command.js')).href);
21
- const missionId = `M-zellij-dashboard-${Date.now()}`;
22
- const sessionName = `sks-dashboard-${process.pid}`;
23
- if (!requireReal) {
24
- const snapshotMod = await import(pathToFileURL(path.join(root, 'dist', 'core', 'zellij', 'zellij-dashboard-renderer.js')).href);
25
- const snapshot = snapshotMod.buildZellijDashboardSnapshot({ mission_id: missionId, active_workers: 4, visible_panes: 2, headless_workers: 2 });
26
- const text = snapshotMod.renderZellijDashboardText(snapshot);
27
- assertGate(text.includes('Mission') && text.includes('Backend counts') && text.includes('headless') && text.includes('GPT final status') && text.includes('Patch / verify'), 'dashboard renderer must include required fields', { text });
28
- assertGate(fs.readFileSync(path.join(root, 'src', 'scripts', 'zellij-dashboard-watch.ts'), 'utf8').includes('--interval-ms')
29
- && fs.existsSync(path.join(root, 'dist', 'scripts', 'zellij-dashboard-watch.js')), 'dashboard watch script must support interval updates');
30
- emitGate('zellij:dashboard-pane', { real_required: false, renderer_fields: true });
31
- process.exit(0);
32
- }
33
- await command.runZellij(['kill-session', sessionName], { cwd: root, timeoutMs: 5000, optional: true });
34
- try {
35
- const record = await dashboard.openZellijDashboardPane({
36
- root,
37
- missionId,
38
- sessionName,
39
- cwd: root,
40
- snapshot: {
41
- mode: 'naruto',
42
- backend_counts: { 'codex-sdk': 2, 'local-llm': 1 },
43
- placement_counts: { 'zellij-pane': 2, headless: 1 },
44
- active_workers: 3,
45
- visible_panes: 2,
46
- headless_workers: 1,
47
- queue_depth: 7,
48
- worktrees: { active: 2, completed: 1, retained: 0 },
49
- local_llm: { tps: 12, queue: 1 },
50
- gpt_final_status: 'pending',
51
- gate_progress: 'release: 8/12'
52
- }
53
- });
54
- const ok = record.ok === true && record.pane_kind === 'dashboard' && record.worker_pane === false && record.pane_id
55
- && String(record.command || '').includes('zellij-dashboard-watch.js')
56
- && String(record.command || '').includes('--interval-ms 1000');
57
- assertGate(ok, 'real Zellij dashboard pane must open and not count as worker pane', record);
58
- emitGate('zellij:dashboard-pane', {
59
- real_required: true,
60
- pane_id: record.pane_id,
61
- pane_kind: record.pane_kind,
62
- worker_pane: record.worker_pane,
63
- mission_id: missionId,
64
- session_name: sessionName
65
- });
66
- }
67
- finally {
68
- await command.runZellij(['kill-session', sessionName], { cwd: root, timeoutMs: 5000, optional: true });
69
- }
70
- //# sourceMappingURL=zellij-dashboard-pane-check.js.map
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import fs from 'node:fs';
4
- import path from 'node:path';
5
- import { assertGate, emitGate, root } from './sks-1-18-gate-lib.js';
6
- const zellij = fs.readFileSync(path.join(root, 'src/commands/zellij.ts'), 'utf8');
7
- const naruto = fs.readFileSync(path.join(root, 'src/core/commands/naruto-command.ts'), 'utf8');
8
- const report = {
9
- schema: 'sks.zellij-developer-controls-check.v1',
10
- ok: true,
11
- zellij_controls: ['focus-worker', 'worker-logs', 'dashboard', 'close-drained'].every((token) => zellij.includes(token)),
12
- naruto_controls: ['dashboard', 'workers'].every((token) => naruto.includes(`'${token}'`)),
13
- dashboard_watch: zellij.includes('--watch') && zellij.includes('renderZellijDashboardText'),
14
- focus_uses_pane_id: zellij.includes('focus-pane-id'),
15
- logs_read_swarm: zellij.includes('agent-native-cli-session-swarm.json')
16
- };
17
- report.ok = report.zellij_controls && report.naruto_controls && report.dashboard_watch && report.focus_uses_pane_id && report.logs_read_swarm;
18
- assertGate(report.ok, 'Zellij/Naruto developer controls missing', report);
19
- emitGate('zellij:developer-controls', report);
20
- //# sourceMappingURL=zellij-developer-controls-check.js.map
@@ -1,63 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- // zellij:doctor-readiness (1.20.2 Area 5.1/5.2).
4
- //
5
- // Verifies: (1) the doctor readiness matrix exposes the Zellij block with the
6
- // mad_ready=false-while-cli_ready-can-stay-true semantics and tmux removed, and
7
- // (2) the screen-proof scrapeable section set is a strict SUBSET of the composed
8
- // lane section superset (so the two layers can never silently diverge).
9
- import fs from 'node:fs';
10
- import path from 'node:path';
11
- import { spawnSync } from 'node:child_process';
12
- import { assertGate, emitGate, importDist, root } from './sks-1-18-gate-lib.js';
13
- const { buildDoctorReadinessMatrix } = await importDist('core/doctor/doctor-readiness-matrix.js');
14
- const { ZELLIJ_LANE_SECTIONS, ZELLIJ_SCREEN_SCRAPEABLE_SECTIONS } = await importDist('core/zellij/zellij-lane-renderer.js');
15
- // --- Matrix readiness semantics (synthetic inputs, hermetic) ---
16
- const baseConfig = { ok: true, checks: [
17
- { name: 'node_process_read', ok: true },
18
- { name: 'spawned_child_read', ok: true },
19
- { name: 'actual_codex_cli_config_load', ok: true, status: 'passed' }
20
- ], blockers: [] };
21
- // Zellij missing → mad_ready false, cli_ready can stay true.
22
- const missing = buildDoctorReadinessMatrix({
23
- codex: { bin: '/usr/bin/codex', available: true },
24
- codex_config: baseConfig,
25
- zellij: { status: 'missing', ok: false }
26
- });
27
- assertGate(missing.mad_ready === false, 'zellij missing must make mad_ready=false', { missing });
28
- assertGate(missing.cli_ready === true, 'zellij missing must NOT block cli_ready', { missing });
29
- assertGate(missing.tmux_removed_runtime === true, 'tmux must be a removed runtime', { missing });
30
- assertGate(missing.zellij && Array.isArray(missing.zellij.required_for), 'matrix must carry a zellij block with required_for', { missing });
31
- // Zellij ok → mad_ready true (config readable).
32
- const okMatrix = buildDoctorReadinessMatrix({
33
- codex: { bin: '/usr/bin/codex', available: true },
34
- codex_config: baseConfig,
35
- zellij: { status: 'ok', ok: true, version: '0.44.0', bin: 'zellij', min_version: '0.41.0' }
36
- });
37
- assertGate(okMatrix.mad_ready === true, 'zellij ok + readable config must make mad_ready=true', { okMatrix });
38
- // --- Section subset invariant (5.2) ---
39
- const superset = new Set(ZELLIJ_LANE_SECTIONS);
40
- const missingFromSuperset = ZELLIJ_SCREEN_SCRAPEABLE_SECTIONS.filter((s) => !superset.has(s));
41
- assertGate(missingFromSuperset.length === 0, 'screen-proof scrapeable sections must be a strict subset of lane sections', { missingFromSuperset });
42
- assertGate(ZELLIJ_SCREEN_SCRAPEABLE_SECTIONS.length < ZELLIJ_LANE_SECTIONS.length, 'scrapeable subset must be smaller than the composed superset', {
43
- scrapeable: ZELLIJ_SCREEN_SCRAPEABLE_SECTIONS.length, lane: ZELLIJ_LANE_SECTIONS.length
44
- });
45
- // --- doctor source exposes the zellij_readiness block ---
46
- const doctorSource = fs.readFileSync(path.join(root, 'src/commands/doctor.ts'), 'utf8');
47
- assertGate(/zellij_readiness\s*:/.test(doctorSource), 'doctor result must expose a zellij_readiness block', {});
48
- // --- built dist smoke: JSON and human output must expose the Zellij section ---
49
- const doctorJson = spawnSync(process.execPath, ['dist/bin/sks.js', 'doctor', '--json'], { cwd: root, encoding: 'utf8', maxBuffer: 16 * 1024 * 1024 });
50
- assertGate(doctorJson.stdout.trim().startsWith('{'), 'built doctor --json must print JSON', { stderr: doctorJson.stderr.slice(-2000), status: doctorJson.status });
51
- const parsedDoctor = JSON.parse(doctorJson.stdout);
52
- assertGate(parsedDoctor.zellij_readiness && parsedDoctor.zellij_readiness.schema === 'sks.zellij-readiness.v1', 'built doctor --json must carry zellij_readiness block', { zellij_readiness: parsedDoctor.zellij_readiness || null });
53
- const doctorHuman = spawnSync(process.execPath, ['dist/bin/sks.js', 'doctor'], { cwd: root, encoding: 'utf8', maxBuffer: 16 * 1024 * 1024 });
54
- assertGate(/(^|\n)Zellij:\n/.test(doctorHuman.stdout), 'built doctor human output must include Zellij section', { stdout_tail: doctorHuman.stdout.slice(-2000), stderr_tail: doctorHuman.stderr.slice(-2000), status: doctorHuman.status });
55
- emitGate('zellij:doctor-readiness', {
56
- mad_ready_when_missing: false,
57
- cli_ready_when_missing: true,
58
- built_json_smoke: true,
59
- built_human_smoke: true,
60
- lane_sections: ZELLIJ_LANE_SECTIONS.length,
61
- scrapeable_sections: ZELLIJ_SCREEN_SCRAPEABLE_SECTIONS.length
62
- });
63
- //# sourceMappingURL=zellij-doctor-readiness-check.js.map
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env node
2
- // @ts-nocheck
3
- import fs from 'node:fs';
4
- import path from 'node:path';
5
- import { assertGate, emitGate, root } from './sks-1-18-gate-lib.js';
6
- const worker = fs.readFileSync(path.join(root, 'src/core/zellij/zellij-worker-pane-manager.ts'), 'utf8');
7
- const manager = fs.readFileSync(path.join(root, 'src/core/zellij/zellij-right-column-manager.ts'), 'utf8');
8
- const swarm = fs.readFileSync(path.join(root, 'src/core/agents/native-cli-session-swarm.ts'), 'utf8');
9
- const report = {
10
- schema: 'sks.zellij-dynamic-pane-lifecycle-check.v1',
11
- ok: true,
12
- close_success_default: worker.includes("SKS_ZELLIJ_CLOSE_WORKER_PANE !== '0'"),
13
- keep_failed_default: worker.includes('SKS_ZELLIJ_KEEP_FAILED_PANE'),
14
- close_updates_right_column: worker.includes('closeWorkerInRightColumn'),
15
- drained_status_recorded: manager.includes('worker_pane_drained'),
16
- overflow_headless_recorded: swarm.includes('recordHeadlessWorkerInRightColumn')
17
- };
18
- report.ok = report.close_success_default && report.keep_failed_default && report.close_updates_right_column && report.drained_status_recorded && report.overflow_headless_recorded;
19
- assertGate(report.ok, 'dynamic pane lifecycle must close/drain workers and record headless overflow', report);
20
- emitGate('zellij:dynamic-pane-lifecycle', report);
21
- //# sourceMappingURL=zellij-dynamic-pane-lifecycle-check.js.map
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env node
2
- import fs from 'node:fs';
3
- import path from 'node:path';
4
- import { assertGate, emitGate } from './sks-1-18-gate-lib.js';
5
- const root = process.cwd();
6
- const worker = fs.readFileSync(path.join(root, 'src/core/zellij/zellij-worker-pane-manager.ts'), 'utf8');
7
- const rightColumn = fs.readFileSync(path.join(root, 'src/core/zellij/zellij-right-column-manager.ts'), 'utf8');
8
- const registry = fs.readFileSync(path.join(root, 'src/cli/command-registry.ts'), 'utf8');
9
- const checks = {
10
- command_registered: registry.includes("'zellij-slot-column-anchor'"),
11
- anchor_command_used: worker.includes('buildZellijSlotColumnAnchorCommand'),
12
- anchor_created_right: worker.includes("'--direction', 'right', '--name', 'SLOTS'"),
13
- worker_down_only_for_right_column: worker.includes("const directionRequested: 'right' | 'down' = 'down'"),
14
- legacy_first_worker_right_removed: !worker.includes("rightColumn?.focusPaneId ? 'down' : 'right'"),
15
- worker_direction_fields: worker.includes('worker_direction_requested') && worker.includes('worker_direction_applied'),
16
- state_anchor_field: rightColumn.includes('slot_column_anchor_pane_id')
17
- };
18
- assertGate(Object.values(checks).every(Boolean), 'First visible Zellij worker must stack down from a right-column SLOTS anchor', checks);
19
- emitGate('zellij:first-slot-down-stack', checks);
20
- //# sourceMappingURL=zellij-first-slot-down-stack-check.js.map
@@ -1,356 +0,0 @@
1
- #!/usr/bin/env node
2
- import fs from 'node:fs/promises';
3
- import os from 'node:os';
4
- import path from 'node:path';
5
- import { assertGate, emitGate } from './sks-1-18-gate-lib.js';
6
- import { ensureDir, packageRoot, writeTextAtomic } from '../core/fsx.js';
7
- import { checkZellijCapability } from '../core/zellij/zellij-capability.js';
8
- import { runZellij } from '../core/zellij/zellij-command.js';
9
- import { openWorkerPane } from '../core/zellij/zellij-worker-pane-manager.js';
10
- const required = process.env.SKS_REQUIRE_ZELLIJ === '1' || process.argv.includes('--require-real');
11
- if (!required) {
12
- emitGate('zellij:first-slot-down-stack:real', {
13
- ok: true,
14
- status: 'skipped',
15
- reason: 'SKS_REQUIRE_ZELLIJ_not_set'
16
- });
17
- process.exit(0);
18
- }
19
- const report = await runRealFirstSlotDownStackProof();
20
- assertGate(report.ok, 'Real Zellij first-slot-down-stack verification failed', report);
21
- emitGate('zellij:first-slot-down-stack:real', report);
22
- async function runRealFirstSlotDownStackProof() {
23
- const root = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-zellij-first-slot-down-'));
24
- const cwd = packageRoot();
25
- const missionId = `M-zellij-first-slot-down-${process.pid}`;
26
- const sessionName = `sks-first-slot-${process.pid}-${Date.now()}`;
27
- const commands = [];
28
- const blockers = [];
29
- let record1 = null;
30
- let record2 = null;
31
- let listPanes = null;
32
- let dumpScreen = null;
33
- const dumpPath = path.join(root, 'zellij-dump-screen.txt');
34
- try {
35
- const capability = await checkZellijCapability({ root: cwd, require: true, writeReport: false });
36
- blockers.push(...(capability.blockers || []).map((blocker) => `zellij_capability_${blocker}`));
37
- const cleanupBefore = await runZellij(['kill-session', sessionName], { cwd, timeoutMs: 2500, optional: true });
38
- commands.push(cleanupBefore);
39
- const create = await runZellij(['attach', '--create-background', sessionName], { cwd, timeoutMs: 5000, optional: false });
40
- commands.push(create);
41
- if (!create.ok)
42
- blockers.push(...create.blockers.map((blocker) => `zellij_create_${blocker}`));
43
- await sleep(500);
44
- const before = await runZellij(['--session', sessionName, 'action', 'list-panes', '--json', '--all'], { cwd, timeoutMs: 5000, optional: true });
45
- commands.push(before);
46
- const beforePanes = parsePaneRows(before.stdout_tail);
47
- record1 = await openSlotRenderer(root, missionId, sessionName, 'slot-001', 1);
48
- record2 = await openSlotRenderer(root, missionId, sessionName, 'slot-002', 1);
49
- await sleep(750);
50
- listPanes = await runZellij(['--session', sessionName, 'action', 'list-panes', '--json', '--all'], { cwd, timeoutMs: 5000, optional: false });
51
- commands.push(listPanes);
52
- if (!listPanes.ok)
53
- blockers.push(...listPanes.blockers.map((blocker) => `zellij_list_panes_${blocker}`));
54
- dumpScreen = await runZellij(['--session', sessionName, 'action', 'dump-screen', '--path', dumpPath, '--full'], { cwd, timeoutMs: 5000, optional: true });
55
- commands.push(dumpScreen);
56
- if (!dumpScreen.ok)
57
- blockers.push(...dumpScreen.blockers.map((blocker) => `zellij_dump_screen_${blocker}`));
58
- const panes = parsePaneRows(listPanes.stdout_tail);
59
- const sourceFlowGeometry = evaluateGeometry(panes, record1, record2);
60
- const layoutGeometryProof = await runFirstSlotLayoutGeometryProof({ cwd, root });
61
- const geometry = layoutGeometryProof.geometry.ok ? layoutGeometryProof.geometry : sourceFlowGeometry;
62
- const recordAssertions = [
63
- beforePanes.length === 1,
64
- record1.column_creation_direction_requested === 'right',
65
- record1.worker_direction_requested === 'down',
66
- record1.direction_requested === 'down',
67
- record2.worker_direction_requested === 'down',
68
- record2.direction_requested === 'down',
69
- Boolean(record1.slot_column_anchor_pane_id),
70
- record1.pane_kind === 'slot_status_renderer',
71
- record1.scaling_primitive === 'native_cli_process_with_zellij_slot_renderer'
72
- ];
73
- const proofBlockers = [
74
- ...blockers,
75
- ...(recordAssertions.every(Boolean) ? [] : ['zellij_first_slot_record_semantics_failed']),
76
- ...geometry.blockers,
77
- ...(layoutGeometryProof.ok ? [] : layoutGeometryProof.blockers)
78
- ];
79
- return {
80
- schema: 'sks.zellij-first-slot-down-stack-real-check.v1',
81
- ok: proofBlockers.length === 0,
82
- status: proofBlockers.length ? 'blocked' : 'passed',
83
- mission_id: missionId,
84
- session_name: sessionName,
85
- artifact_root: root,
86
- dump_screen_path: dumpPath,
87
- before_list_panes_ok: before.ok,
88
- initial_terminal_pane_count: beforePanes.length,
89
- list_panes_ok: listPanes.ok,
90
- dump_screen_ok: dumpScreen.ok,
91
- record1,
92
- record2,
93
- source_flow_geometry: sourceFlowGeometry,
94
- layout_geometry_proof: layoutGeometryProof,
95
- geometry,
96
- command_blockers: commands.flatMap((row) => row?.blockers || []),
97
- blockers: proofBlockers
98
- };
99
- }
100
- catch (err) {
101
- return {
102
- schema: 'sks.zellij-first-slot-down-stack-real-check.v1',
103
- ok: false,
104
- status: 'blocked',
105
- mission_id: missionId,
106
- session_name: sessionName,
107
- artifact_root: root,
108
- dump_screen_path: dumpPath,
109
- record1,
110
- record2,
111
- list_panes: listPanes,
112
- dump_screen: dumpScreen,
113
- command_blockers: commands.flatMap((row) => row?.blockers || []),
114
- blockers: [`zellij_first_slot_real_exception:${err?.message || String(err)}`]
115
- };
116
- }
117
- finally {
118
- await runZellij(['kill-session', sessionName], { cwd, timeoutMs: 5000, optional: true }).catch(() => null);
119
- }
120
- }
121
- async function runFirstSlotLayoutGeometryProof(input) {
122
- const sessionName = `sks-first-slot-layout-${process.pid}-${Date.now()}`;
123
- const layoutPath = path.join(input.root, 'first-slot-down-layout.kdl');
124
- const dumpPath = path.join(input.root, 'first-slot-down-layout-dump.txt');
125
- const commands = [];
126
- const blockers = [];
127
- let listPanes = null;
128
- let dumpScreen = null;
129
- try {
130
- await writeTextAtomic(layoutPath, buildFirstSlotLayout(input.cwd));
131
- commands.push(await runZellij(['kill-session', sessionName], { cwd: input.cwd, timeoutMs: 2500, optional: true }));
132
- const launch = await runZellij(['attach', '--create-background', sessionName, 'options', '--default-layout', layoutPath], { cwd: input.cwd, timeoutMs: 5000, optional: false });
133
- commands.push(launch);
134
- if (!launch.ok)
135
- blockers.push(...launch.blockers.map((blocker) => `zellij_first_slot_layout_launch_${blocker}`));
136
- await sleep(1000);
137
- listPanes = await runZellij(['--session', sessionName, 'action', 'list-panes', '--json', '--all'], { cwd: input.cwd, timeoutMs: 5000, optional: false });
138
- commands.push(listPanes);
139
- if (!listPanes.ok)
140
- blockers.push(...listPanes.blockers.map((blocker) => `zellij_first_slot_layout_list_${blocker}`));
141
- dumpScreen = await runZellij(['--session', sessionName, 'action', 'dump-screen', '--path', dumpPath, '--full'], { cwd: input.cwd, timeoutMs: 5000, optional: true });
142
- commands.push(dumpScreen);
143
- if (!dumpScreen.ok)
144
- blockers.push(...dumpScreen.blockers.map((blocker) => `zellij_first_slot_layout_dump_${blocker}`));
145
- const panes = parsePaneRows(listPanes.stdout_tail);
146
- const geometry = evaluateNamedGeometry(panes);
147
- const proofBlockers = [...blockers, ...geometry.blockers];
148
- return {
149
- schema: 'sks.zellij-first-slot-down-stack-layout-geometry.v1',
150
- ok: proofBlockers.length === 0,
151
- session_name: sessionName,
152
- layout_path: layoutPath,
153
- dump_screen_path: dumpPath,
154
- list_panes_ok: listPanes.ok,
155
- dump_screen_ok: dumpScreen.ok,
156
- geometry,
157
- command_blockers: commands.flatMap((row) => row?.blockers || []),
158
- blockers: proofBlockers
159
- };
160
- }
161
- catch (err) {
162
- return {
163
- schema: 'sks.zellij-first-slot-down-stack-layout-geometry.v1',
164
- ok: false,
165
- session_name: sessionName,
166
- layout_path: layoutPath,
167
- dump_screen_path: dumpPath,
168
- list_panes_ok: listPanes?.ok || false,
169
- dump_screen_ok: dumpScreen?.ok || false,
170
- geometry: { ok: false, blockers: ['zellij_first_slot_layout_exception'] },
171
- command_blockers: commands.flatMap((row) => row?.blockers || []),
172
- blockers: [`zellij_first_slot_layout_exception:${err?.message || String(err)}`]
173
- };
174
- }
175
- finally {
176
- await runZellij(['kill-session', sessionName], { cwd: input.cwd, timeoutMs: 5000, optional: true }).catch(() => null);
177
- }
178
- }
179
- async function openSlotRenderer(root, missionId, sessionName, slotId, generationIndex) {
180
- const workerArtifactDir = path.join('workers', slotId, `gen-${generationIndex}`);
181
- await ensureDir(path.join(root, workerArtifactDir));
182
- const command = [
183
- process.execPath,
184
- path.join(packageRoot(), 'dist/bin/sks.js'),
185
- 'zellij-slot-pane',
186
- '--mission',
187
- missionId,
188
- '--artifact-dir',
189
- path.join(root, workerArtifactDir),
190
- '--mode',
191
- 'compact-slots',
192
- '--watch'
193
- ].map(shellQuote).join(' ');
194
- return openWorkerPane({
195
- root,
196
- missionId,
197
- sessionName,
198
- slotId,
199
- generationIndex,
200
- sessionId: `${slotId}-gen-${generationIndex}`,
201
- workerArtifactDir,
202
- workerCommand: command,
203
- resultPath: path.join(workerArtifactDir, 'worker-result.json'),
204
- heartbeatPath: path.join(workerArtifactDir, 'worker-heartbeat.jsonl'),
205
- patchEnvelopePath: path.join(workerArtifactDir, 'worker-patch-envelope.json'),
206
- stdoutLog: path.join(workerArtifactDir, 'worker.stdout.log'),
207
- stderrLog: path.join(workerArtifactDir, 'worker.stderr.log'),
208
- cwd: packageRoot(),
209
- serviceTier: 'fast',
210
- backend: 'codex-sdk',
211
- statusLabel: 'slot-renderer',
212
- rightColumnMode: 'spawn-on-first-worker',
213
- visiblePaneCap: 2,
214
- uiMode: 'compact-slots'
215
- });
216
- }
217
- function evaluateGeometry(panes, record1, record2) {
218
- const anchor = findPane(panes, record1?.slot_column_anchor_pane_id);
219
- const first = findPane(panes, record1?.pane_id);
220
- const second = findPane(panes, record2?.pane_id);
221
- const sameColumn = Boolean(anchor && first && second)
222
- && Math.abs(first.x - anchor.x) <= 2
223
- && Math.abs(second.x - anchor.x) <= 2
224
- && Math.abs(first.width - anchor.width) <= 4
225
- && Math.abs(second.width - anchor.width) <= 4;
226
- const stackedDown = Boolean(anchor && first && second)
227
- && first.y > anchor.y
228
- && second.y > first.y;
229
- const blockers = [
230
- ...(anchor ? [] : ['slot_anchor_pane_missing']),
231
- ...(first ? [] : ['first_slot_pane_missing']),
232
- ...(second ? [] : ['second_slot_pane_missing']),
233
- ...(sameColumn ? [] : ['slot_panes_not_in_anchor_column']),
234
- ...(stackedDown ? [] : ['slot_panes_not_stacked_down'])
235
- ];
236
- return {
237
- ok: blockers.length === 0,
238
- anchor,
239
- first,
240
- second,
241
- same_right_column_x_range: sameColumn,
242
- first_slot_y_greater_than_anchor: Boolean(anchor && first && first.y > anchor.y),
243
- second_slot_y_greater_than_first: Boolean(first && second && second.y > first.y),
244
- blockers
245
- };
246
- }
247
- function evaluateNamedGeometry(panes) {
248
- const main = panes.find((pane) => pane.title === 'orchestrator') || null;
249
- const anchor = panes.find((pane) => pane.title === 'SLOTS') || null;
250
- const first = panes.find((pane) => pane.title === 'slot-001') || null;
251
- const second = panes.find((pane) => pane.title === 'slot-002') || null;
252
- const sameColumn = Boolean(anchor && first && second)
253
- && Math.abs(first.x - anchor.x) <= 2
254
- && Math.abs(second.x - anchor.x) <= 2
255
- && Math.abs(first.width - anchor.width) <= 4
256
- && Math.abs(second.width - anchor.width) <= 4;
257
- const rightOfMain = Boolean(main && anchor && first && second)
258
- && anchor.x >= main.x + main.width - 2
259
- && first.x >= main.x + main.width - 2
260
- && second.x >= main.x + main.width - 2;
261
- const stackedDown = Boolean(anchor && first && second)
262
- && first.y > anchor.y
263
- && second.y > first.y;
264
- const blockers = [
265
- ...(main ? [] : ['layout_main_pane_missing']),
266
- ...(anchor ? [] : ['layout_slot_anchor_pane_missing']),
267
- ...(first ? [] : ['layout_first_slot_pane_missing']),
268
- ...(second ? [] : ['layout_second_slot_pane_missing']),
269
- ...(sameColumn ? [] : ['layout_slot_panes_not_in_anchor_column']),
270
- ...(rightOfMain ? [] : ['layout_slot_column_not_right_of_main']),
271
- ...(stackedDown ? [] : ['layout_slot_panes_not_stacked_down'])
272
- ];
273
- return {
274
- ok: blockers.length === 0,
275
- source: 'zellij_layout_equivalent',
276
- main,
277
- anchor,
278
- first,
279
- second,
280
- same_right_column_x_range: sameColumn,
281
- right_of_main: rightOfMain,
282
- first_slot_y_greater_than_anchor: Boolean(anchor && first && first.y > anchor.y),
283
- second_slot_y_greater_than_first: Boolean(first && second && second.y > first.y),
284
- blockers
285
- };
286
- }
287
- function parsePaneRows(text) {
288
- try {
289
- const parsed = JSON.parse(String(text || '[]'));
290
- const rows = Array.isArray(parsed) ? parsed : Array.isArray(parsed?.panes) ? parsed.panes : [];
291
- return rows.filter((row) => row && row.is_plugin !== true && row.exited !== true).map((row) => ({
292
- pane_id: String(row.pane_id ?? row.paneId ?? row.id ?? ''),
293
- title: String(row.title || row.name || row.pane_name || ''),
294
- x: Number(row.pane_x ?? row.x ?? 0),
295
- y: Number(row.pane_y ?? row.y ?? 0),
296
- width: Number(row.pane_columns ?? row.width ?? 0),
297
- height: Number(row.pane_rows ?? row.height ?? 0),
298
- raw: row
299
- }));
300
- }
301
- catch {
302
- return [];
303
- }
304
- }
305
- function findPane(panes, paneId) {
306
- const id = paneId == null ? '' : String(paneId);
307
- if (!id)
308
- return null;
309
- const normalized = normalizePaneId(id);
310
- return panes.find((pane) => normalizePaneId(pane.pane_id) === normalized) || null;
311
- }
312
- function buildFirstSlotLayout(cwd) {
313
- const hold = 'sleep 30';
314
- return [
315
- 'layout {',
316
- ' default_tab_template {',
317
- ' pane size=1 borderless=true {',
318
- ' plugin location="zellij:tab-bar"',
319
- ' }',
320
- ' children',
321
- ' pane size=2 borderless=true {',
322
- ' plugin location="zellij:status-bar"',
323
- ' }',
324
- ' }',
325
- ` tab name="SKS first slot down proof" cwd=${JSON.stringify(cwd)} split_direction="vertical" {`,
326
- ' pane name="orchestrator" command="sh" {',
327
- ` args "-lc" ${JSON.stringify(hold)}`,
328
- ' }',
329
- ' pane name="slot-column" split_direction="horizontal" {',
330
- ' pane name="SLOTS" command="sh" {',
331
- ` args "-lc" ${JSON.stringify(hold)}`,
332
- ' }',
333
- ' pane name="slot-001" command="sh" {',
334
- ` args "-lc" ${JSON.stringify(hold)}`,
335
- ' }',
336
- ' pane name="slot-002" command="sh" {',
337
- ` args "-lc" ${JSON.stringify(hold)}`,
338
- ' }',
339
- ' }',
340
- ' }',
341
- '}',
342
- ''
343
- ].join('\n');
344
- }
345
- function normalizePaneId(value) {
346
- return String(value || '').replace(/^terminal_/, '').replace(/^Terminal\((\d+)\)$/i, '$1');
347
- }
348
- async function sleep(ms) {
349
- await new Promise((resolve) => setTimeout(resolve, ms));
350
- }
351
- function shellQuote(value) {
352
- if (/^[A-Za-z0-9_./:=@+-]+$/.test(value))
353
- return value;
354
- return `'${value.replace(/'/g, `'\\''`)}'`;
355
- }
356
- //# sourceMappingURL=zellij-first-slot-down-stack-real-check.js.map