sneakoscope 6.1.2 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2107) hide show
  1. package/README.md +18 -13
  2. package/config/architecture-budgets.v1.json +70 -0
  3. package/config/perf-budgets.v1.json +9 -1
  4. package/crates/sks-core/Cargo.lock +1 -1
  5. package/crates/sks-core/Cargo.toml +1 -1
  6. package/dist/bin/fast-inline.js +4 -5
  7. package/dist/bin/install.js +2 -3
  8. package/dist/bin/sks-dispatch.js +2 -7
  9. package/dist/bin/sks.js +1 -1
  10. package/dist/cli/args.js +0 -3
  11. package/dist/cli/cli-theme.js +0 -1
  12. package/dist/cli/codex-app-command.js +0 -1
  13. package/dist/cli/command-manifest-lite.js +10 -16
  14. package/dist/cli/command-registry.js +109 -19
  15. package/dist/cli/commands-fast.js +0 -1
  16. package/dist/cli/context7-command.js +0 -1
  17. package/dist/cli/feature-commands.js +0 -1
  18. package/dist/cli/global-mode-router.js +31 -1
  19. package/dist/cli/help-fast.js +2 -4
  20. package/dist/cli/install-helpers-codex-lb-chain.js +274 -0
  21. package/dist/cli/install-helpers-codex-lb-config.js +191 -0
  22. package/dist/cli/install-helpers-codex-lb-selftest-chain.js +115 -0
  23. package/dist/cli/install-helpers-codex-lb-selftest.js +501 -0
  24. package/dist/cli/install-helpers-codex-lb-shared.js +52 -0
  25. package/dist/cli/install-helpers-install-support.js +343 -0
  26. package/dist/cli/install-helpers.js +31 -1403
  27. package/dist/cli/install-tool-helpers.js +0 -1
  28. package/dist/cli/main.js +0 -1
  29. package/dist/cli/output.js +0 -1
  30. package/dist/cli/recallpulse-command.js +0 -1
  31. package/dist/cli/root-fast.js +0 -1
  32. package/dist/cli/router.js +2 -12
  33. package/dist/cli/super-search-command.js +0 -1
  34. package/dist/commands/aliases.js +0 -1
  35. package/dist/commands/all-features.js +0 -1
  36. package/dist/commands/auto-review.js +0 -1
  37. package/dist/commands/autoresearch.js +0 -1
  38. package/dist/commands/bench.js +0 -1
  39. package/dist/commands/bootstrap.js +0 -1
  40. package/dist/commands/code-structure.js +0 -1
  41. package/dist/commands/codex-app.js +0 -1
  42. package/dist/commands/codex-lb.js +9 -10
  43. package/dist/commands/codex-native.js +0 -1
  44. package/dist/commands/codex.js +0 -1
  45. package/dist/commands/commands.js +0 -1
  46. package/dist/commands/commit-and-push.js +0 -1
  47. package/dist/commands/commit.js +0 -1
  48. package/dist/commands/computer-use.js +0 -1
  49. package/dist/commands/conflicts.js +0 -1
  50. package/dist/commands/context7.js +0 -1
  51. package/dist/commands/deps.js +0 -1
  52. package/dist/commands/dfix.js +0 -1
  53. package/dist/commands/doctor.js +27 -32
  54. package/dist/commands/dollar-commands.js +0 -1
  55. package/dist/commands/eval.js +0 -1
  56. package/dist/commands/features.js +0 -1
  57. package/dist/commands/fix-path.js +0 -1
  58. package/dist/commands/gc.js +0 -1
  59. package/dist/commands/git.js +0 -1
  60. package/dist/commands/goal.js +0 -1
  61. package/dist/commands/guard.js +0 -1
  62. package/dist/commands/gx.js +0 -1
  63. package/dist/commands/harness.js +0 -1
  64. package/dist/commands/help.js +0 -1
  65. package/dist/commands/hook.js +0 -1
  66. package/dist/commands/hooks.js +0 -1
  67. package/dist/commands/hproof.js +0 -1
  68. package/dist/commands/image-ux-review.js +0 -1
  69. package/dist/commands/init.js +0 -1
  70. package/dist/commands/mad-sks.js +0 -1
  71. package/dist/commands/memory.js +0 -1
  72. package/dist/commands/paths.js +0 -1
  73. package/dist/commands/perf.js +0 -1
  74. package/dist/commands/pipeline.js +0 -1
  75. package/dist/commands/postinstall.js +0 -1
  76. package/dist/commands/ppt.js +0 -1
  77. package/dist/commands/profile.js +0 -1
  78. package/dist/commands/proof-field.js +0 -1
  79. package/dist/commands/proof.js +0 -1
  80. package/dist/commands/qa-loop.js +0 -1
  81. package/dist/commands/quickstart.js +0 -1
  82. package/dist/commands/reasoning.js +0 -1
  83. package/dist/commands/recallpulse.js +0 -1
  84. package/dist/commands/research.js +0 -1
  85. package/dist/commands/rollback.js +0 -1
  86. package/dist/commands/root.js +0 -1
  87. package/dist/commands/run.js +0 -1
  88. package/dist/commands/rust.js +0 -1
  89. package/dist/commands/selftest.js +0 -1
  90. package/dist/commands/setup.js +0 -1
  91. package/dist/commands/skill-dream.js +0 -1
  92. package/dist/commands/stats.js +0 -1
  93. package/dist/commands/status.js +0 -1
  94. package/dist/commands/trust.js +0 -1
  95. package/dist/commands/update-check.js +0 -1
  96. package/dist/commands/usage.js +0 -1
  97. package/dist/commands/validate-artifacts.js +0 -1
  98. package/dist/commands/version.js +0 -1
  99. package/dist/commands/versioning.js +0 -1
  100. package/dist/commands/wiki.js +0 -1
  101. package/dist/commands/zellij-lane.js +0 -1
  102. package/dist/commands/zellij-monitor-pane.js +0 -1
  103. package/dist/commands/zellij-slot-column-anchor.js +0 -1
  104. package/dist/commands/zellij-slot-pane.js +0 -1
  105. package/dist/commands/zellij-viewport-pane.js +0 -1
  106. package/dist/commands/zellij.js +2 -3
  107. package/dist/config/skills-manifest.json +130 -183
  108. package/dist/core/agent-bridge/agent-manifest.js +30 -45
  109. package/dist/core/agent-bridge/agent-mode.js +0 -1
  110. package/dist/core/agent-bridge/mcp-server.js +51 -20
  111. package/dist/core/agents/agent-central-ledger.js +0 -1
  112. package/dist/core/agents/agent-cleanup.js +0 -1
  113. package/dist/core/agents/agent-codex-cockpit.js +6 -7
  114. package/dist/core/agents/agent-conflict-graph.js +0 -1
  115. package/dist/core/agents/agent-consensus.js +0 -1
  116. package/dist/core/agents/agent-effort-policy.js +28 -21
  117. package/dist/core/agents/agent-follow-up-work-items.js +1 -2
  118. package/dist/core/agents/agent-heartbeat.js +0 -1
  119. package/dist/core/agents/agent-janitor.js +0 -1
  120. package/dist/core/agents/agent-lease.js +0 -1
  121. package/dist/core/agents/agent-lifecycle.js +0 -1
  122. package/dist/core/agents/agent-merge-coordinator.js +0 -1
  123. package/dist/core/agents/agent-message-bus.js +0 -1
  124. package/dist/core/agents/agent-namespace-safety.js +0 -1
  125. package/dist/core/agents/agent-orchestrator.js +54 -230
  126. package/dist/core/agents/agent-output-validator.js +1 -2
  127. package/dist/core/agents/agent-patch-apply-worker.js +0 -1
  128. package/dist/core/agents/agent-patch-conflict-rebase.js +0 -1
  129. package/dist/core/agents/agent-patch-proof.js +0 -1
  130. package/dist/core/agents/agent-patch-queue-store.js +0 -1
  131. package/dist/core/agents/agent-patch-queue.js +0 -1
  132. package/dist/core/agents/agent-patch-schema.js +0 -1
  133. package/dist/core/agents/agent-patch-transaction-journal.js +0 -1
  134. package/dist/core/agents/agent-persona.js +1 -2
  135. package/dist/core/agents/agent-plan.js +38 -28
  136. package/dist/core/agents/agent-proof-evidence.js +34 -37
  137. package/dist/core/agents/agent-recursion-guard.js +5 -8
  138. package/dist/core/agents/agent-role-config.js +168 -35
  139. package/dist/core/agents/agent-roster.js +2 -154
  140. package/dist/core/agents/agent-runner-codex-exec.js +0 -1
  141. package/dist/core/agents/agent-runner-fake.js +1 -2
  142. package/dist/core/agents/agent-runner-ollama.js +2 -3
  143. package/dist/core/agents/agent-runner-process.js +0 -1
  144. package/dist/core/agents/agent-runner-zellij.js +1 -2
  145. package/dist/core/agents/agent-scheduler.js +0 -1
  146. package/dist/core/agents/agent-schema.js +2 -7
  147. package/dist/core/agents/agent-session-generation.js +0 -1
  148. package/dist/core/agents/agent-session-rows.js +0 -1
  149. package/dist/core/agents/agent-slot-pane-binding-proof.js +1 -2
  150. package/dist/core/agents/agent-task-graph.js +3 -4
  151. package/dist/core/agents/agent-task-slicer.js +0 -1
  152. package/dist/core/agents/agent-terminal-session.js +0 -1
  153. package/dist/core/agents/agent-trust-report.js +23 -17
  154. package/dist/core/agents/agent-work-partition.js +2 -3
  155. package/dist/core/agents/agent-work-queue.js +0 -1
  156. package/dist/core/agents/agent-worker-pipeline.js +0 -1
  157. package/dist/core/agents/agent-worker-slot.js +0 -1
  158. package/dist/core/agents/agent-wrongness.js +2 -4
  159. package/dist/core/agents/fast-mode-policy.js +0 -1
  160. package/dist/core/agents/intelligent-work-graph.js +2 -3
  161. package/dist/core/agents/native-cli-worker-entry.js +6 -0
  162. package/dist/core/agents/{native-cli-session-proof.js → native-cli-worker-runtime-proof.js} +25 -26
  163. package/dist/core/agents/{native-cli-session-swarm.js → native-cli-worker-runtime.js} +62 -110
  164. package/dist/core/agents/native-cli-worker.js +0 -2
  165. package/dist/core/agents/native-worker-backend-router.js +5 -9
  166. package/dist/core/agents/no-subagent-scaling-policy.js +8 -9
  167. package/dist/core/agents/official-subagent-helper-policy.js +2 -3
  168. package/dist/core/agents/ollama-worker-config.js +0 -1
  169. package/dist/core/agents/parallel-runtime-proof.js +0 -1
  170. package/dist/core/agents/parallel-write-fixture.js +0 -1
  171. package/dist/core/agents/real-codex-parallel-proof.js +11 -7
  172. package/dist/core/agents/route-collaboration-ledger.js +9 -17
  173. package/dist/core/agents/runtime-proof-summary.js +5 -6
  174. package/dist/core/agents/scout-policy.js +0 -1
  175. package/dist/core/agents/work-partition/conflict-detector.js +0 -1
  176. package/dist/core/agents/work-partition/dependency-graph.js +0 -1
  177. package/dist/core/agents/work-partition/lease-planner.js +0 -1
  178. package/dist/core/agents/work-partition/no-overlap-proof.js +0 -1
  179. package/dist/core/agents/work-partition/repo-inventory.js +0 -1
  180. package/dist/core/agents/work-partition/semantic-domain-graph.js +1 -2
  181. package/dist/core/agents/work-partition/task-slicer.js +1 -2
  182. package/dist/core/agents/worker-pane-communication-contract.js +1 -2
  183. package/dist/core/agents/zellij-lane-supervisor.js +0 -1
  184. package/dist/core/agents/zellij-right-lane-cockpit.js +1 -2
  185. package/dist/core/artifact-schemas.js +27 -36
  186. package/dist/core/auto-review.js +94 -5
  187. package/dist/core/bench.js +7 -8
  188. package/dist/core/build/build-once-runner.js +0 -1
  189. package/dist/core/code-structure.js +1 -2
  190. package/dist/core/codex/agent-config-file-repair.js +0 -1
  191. package/dist/core/codex/app-mentions.js +0 -1
  192. package/dist/core/codex/appshots-detector.js +0 -1
  193. package/dist/core/codex/appshots-operator-policy.js +0 -1
  194. package/dist/core/codex/codex-0-134-compat.js +0 -1
  195. package/dist/core/codex/codex-0-135-compat.js +0 -1
  196. package/dist/core/codex/codex-0-136-compat.js +0 -1
  197. package/dist/core/codex/codex-0-137-compat.js +0 -1
  198. package/dist/core/codex/codex-cli-syntax-builder.js +0 -1
  199. package/dist/core/codex/codex-cli-update.js +0 -1
  200. package/dist/core/codex/codex-config-eperm-repair.js +0 -1
  201. package/dist/core/codex/codex-config-guard.js +178 -8
  202. package/dist/core/codex/codex-config-readability.js +21 -9
  203. package/dist/core/codex/codex-config-toml.js +14 -12
  204. package/dist/core/codex/codex-permission-profiles.js +0 -1
  205. package/dist/core/codex/codex-project-config-policy.js +0 -1
  206. package/dist/core/codex/codex-resume-inventory.js +0 -1
  207. package/dist/core/codex/codex-startup-config-postcheck.js +0 -1
  208. package/dist/core/codex/codex-web-search-adapter.js +0 -1
  209. package/dist/core/codex/managed-proxy-env.js +0 -1
  210. package/dist/core/codex/official-goal-mode.js +0 -1
  211. package/dist/core/codex-adapter.js +0 -1
  212. package/dist/core/codex-app/codex-agent-role-sync.js +0 -1
  213. package/dist/core/codex-app/codex-agent-type-probe.js +0 -1
  214. package/dist/core/codex-app/codex-app-execution-profile.js +0 -1
  215. package/dist/core/codex-app/codex-app-fast-ui-preservation.js +0 -1
  216. package/dist/core/codex-app/codex-app-fast-ui-repair.js +0 -1
  217. package/dist/core/codex-app/codex-app-handoff.js +0 -1
  218. package/dist/core/codex-app/codex-app-harness-matrix.js +0 -1
  219. package/dist/core/codex-app/codex-app-launcher.js +0 -1
  220. package/dist/core/codex-app/codex-app-provider-badge.js +0 -1
  221. package/dist/core/codex-app/codex-app-restart.js +0 -1
  222. package/dist/core/codex-app/codex-app-types.js +0 -1
  223. package/dist/core/codex-app/codex-app-ui-clobber-guard.js +0 -1
  224. package/dist/core/codex-app/codex-app-ui-state-snapshot.js +0 -1
  225. package/dist/core/codex-app/codex-hook-approval-probe.js +0 -1
  226. package/dist/core/codex-app/codex-hook-lifecycle.js +1 -2
  227. package/dist/core/codex-app/codex-init-deep.js +0 -1
  228. package/dist/core/codex-app/codex-skill-sync.js +0 -1
  229. package/dist/core/codex-app/glm-model-profile.js +0 -1
  230. package/dist/core/codex-app/glm-profile-installer.js +0 -1
  231. package/dist/core/codex-app/glm-profile-schema.js +0 -1
  232. package/dist/core/codex-app/mcp-manager.js +74 -0
  233. package/dist/core/codex-app/menubar/action-runner.js +68 -0
  234. package/dist/core/codex-app/menubar/app-bundle.js +55 -0
  235. package/dist/core/codex-app/menubar/build-stamp.js +25 -0
  236. package/dist/core/codex-app/menubar/config.js +52 -0
  237. package/dist/core/codex-app/menubar/constants.js +39 -0
  238. package/dist/core/codex-app/menubar/generation-transaction-journal.js +111 -0
  239. package/dist/core/codex-app/menubar/generation-transaction.js +258 -0
  240. package/dist/core/codex-app/menubar/index.js +10 -0
  241. package/dist/core/codex-app/menubar/installer.js +367 -0
  242. package/dist/core/codex-app/menubar/launch-agent.js +226 -0
  243. package/dist/core/codex-app/menubar/migration.js +32 -0
  244. package/dist/core/codex-app/menubar/paths.js +43 -0
  245. package/dist/core/codex-app/menubar/resources.js +112 -0
  246. package/dist/core/codex-app/menubar/rollback.js +341 -0
  247. package/dist/core/codex-app/menubar/signature.js +21 -0
  248. package/dist/core/codex-app/menubar/status.js +146 -0
  249. package/dist/core/codex-app/menubar/types.js +1 -0
  250. package/dist/core/codex-app/sks-menubar.js +2 -1889
  251. package/dist/core/codex-app.js +0 -1
  252. package/dist/core/codex-compat/codex-0-132.js +0 -1
  253. package/dist/core/codex-compat/codex-0-133.js +0 -1
  254. package/dist/core/codex-compat/codex-compat-report.js +0 -1
  255. package/dist/core/codex-compat/codex-config-policy.js +0 -1
  256. package/dist/core/codex-compat/codex-hook-events.js +0 -1
  257. package/dist/core/codex-compat/codex-hook-issues.js +0 -1
  258. package/dist/core/codex-compat/codex-hook-output-builders.js +0 -1
  259. package/dist/core/codex-compat/codex-hook-output-normalizer.js +0 -1
  260. package/dist/core/codex-compat/codex-hook-schema.js +0 -1
  261. package/dist/core/codex-compat/codex-hook-semantic-validator.js +0 -1
  262. package/dist/core/codex-compat/codex-hook-warning-detector.js +0 -1
  263. package/dist/core/codex-compat/codex-release-manifest.js +0 -1
  264. package/dist/core/codex-compat/codex-schema-snapshot.js +0 -1
  265. package/dist/core/codex-compat/codex-version-policy.js +0 -1
  266. package/dist/core/codex-compat/codex-version.js +0 -1
  267. package/dist/core/codex-control/codex-0138-capability.js +0 -1
  268. package/dist/core/codex-control/codex-0139-capability.js +0 -1
  269. package/dist/core/codex-control/codex-0139-doctor-real-probe.js +0 -1
  270. package/dist/core/codex-control/codex-0139-image-path-real-probe.js +0 -1
  271. package/dist/core/codex-control/codex-0139-plugin-real-probes.js +0 -1
  272. package/dist/core/codex-control/codex-0139-probe-runner.js +0 -1
  273. package/dist/core/codex-control/codex-0139-real-probe-summary.js +0 -1
  274. package/dist/core/codex-control/codex-0139-real-probes.js +0 -1
  275. package/dist/core/codex-control/codex-0139-rich-schema-real-probe.js +0 -1
  276. package/dist/core/codex-control/codex-0139-sandbox-real-probe.js +0 -1
  277. package/dist/core/codex-control/codex-0139-web-search-probe.js +0 -1
  278. package/dist/core/codex-control/codex-0140-capability.js +0 -1
  279. package/dist/core/codex-control/codex-0140-feature-probes.js +0 -1
  280. package/dist/core/codex-control/codex-0140-probe-runner.js +0 -1
  281. package/dist/core/codex-control/codex-0140-real-probe-summary.js +0 -1
  282. package/dist/core/codex-control/codex-0140-real-probes.js +0 -1
  283. package/dist/core/codex-control/codex-0140-usage-parser.js +0 -1
  284. package/dist/core/codex-control/codex-0141-capability.js +0 -1
  285. package/dist/core/codex-control/codex-0144-capability.js +0 -1
  286. package/dist/core/codex-control/codex-0144-collab-agent-real-probe.js +0 -1
  287. package/dist/core/codex-control/codex-app-server-v2-client.js +0 -1
  288. package/dist/core/codex-control/codex-control-plane.js +0 -1
  289. package/dist/core/codex-control/codex-control-proof.js +0 -1
  290. package/dist/core/codex-control/codex-event-translator.js +0 -1
  291. package/dist/core/codex-control/codex-fake-sdk-adapter.js +0 -1
  292. package/dist/core/codex-control/codex-lb-launch-recovery.js +15 -1
  293. package/dist/core/codex-control/codex-model-capabilities.js +0 -1
  294. package/dist/core/codex-control/codex-model-metadata.js +0 -1
  295. package/dist/core/codex-control/codex-multi-agent-event-normalizer.js +0 -1
  296. package/dist/core/codex-control/codex-output-schemas.js +0 -1
  297. package/dist/core/codex-control/codex-reliability-shield.js +0 -1
  298. package/dist/core/codex-control/codex-sdk-adapter.js +0 -1
  299. package/dist/core/codex-control/codex-sdk-capability.js +0 -1
  300. package/dist/core/codex-control/codex-sdk-config-policy.js +0 -1
  301. package/dist/core/codex-control/codex-sdk-env-policy.js +0 -1
  302. package/dist/core/codex-control/codex-sdk-sandbox-policy.js +0 -1
  303. package/dist/core/codex-control/codex-task-runner.js +0 -1
  304. package/dist/core/codex-control/codex-thread-registry.js +0 -1
  305. package/dist/core/codex-control/codex-tool-schema-fixtures.js +0 -1
  306. package/dist/core/codex-control/gpt-final-arbiter.js +0 -1
  307. package/dist/core/codex-control/gpt-final-context-compressor.js +0 -1
  308. package/dist/core/codex-control/gpt-final-proof-pack.js +0 -1
  309. package/dist/core/codex-control/gpt-final-review-schema.js +0 -1
  310. package/dist/core/codex-control/model-call-concurrency.js +0 -1
  311. package/dist/core/codex-control/python-codex-sdk-adapter.js +0 -1
  312. package/dist/core/codex-control/python-codex-sdk-event-translator.js +0 -1
  313. package/dist/core/codex-control/schemas/agent-worker-result.schema.js +0 -1
  314. package/dist/core/codex-exec-output-schema.js +0 -1
  315. package/dist/core/codex-hooks/codex-hook-actual-discovery.js +0 -1
  316. package/dist/core/codex-hooks/codex-hook-config-writer.js +0 -1
  317. package/dist/core/codex-hooks/codex-hook-hash.js +0 -1
  318. package/dist/core/codex-hooks/codex-hook-managed-install.js +0 -1
  319. package/dist/core/codex-hooks/codex-hook-official-hash-oracle.js +0 -1
  320. package/dist/core/codex-hooks/codex-hook-official-parity.js +0 -1
  321. package/dist/core/codex-hooks/codex-hook-state-writer.js +0 -1
  322. package/dist/core/codex-hooks/codex-hook-trust-doctor.js +0 -1
  323. package/dist/core/codex-hooks/codex-hook-trust-state.js +0 -1
  324. package/dist/core/codex-lb/codex-lb-env.js +16 -7
  325. package/dist/core/codex-lb/codex-lb-setup.js +1 -2
  326. package/dist/core/codex-lb/codex-lb-tool-catalog.js +0 -1
  327. package/dist/core/codex-lb/codex-lb-tool-output-recovery.js +0 -1
  328. package/dist/core/codex-lb-circuit.js +0 -1
  329. package/dist/core/codex-model-guard.js +0 -1
  330. package/dist/core/codex-native/codex-native-capability-cache.js +0 -1
  331. package/dist/core/codex-native/codex-native-feature-broker.js +0 -1
  332. package/dist/core/codex-native/codex-native-feature-matrix.js +0 -1
  333. package/dist/core/codex-native/codex-native-harness-compat.js +0 -1
  334. package/dist/core/codex-native/codex-native-interop-policy.js +0 -1
  335. package/dist/core/codex-native/codex-native-invocation-router.js +0 -1
  336. package/dist/core/codex-native/codex-native-pattern-analysis.js +0 -1
  337. package/dist/core/codex-native/codex-native-reference-cache.js +0 -1
  338. package/dist/core/codex-native/codex-native-reference-evidence.js +0 -1
  339. package/dist/core/codex-native/codex-native-reference-source.js +0 -1
  340. package/dist/core/codex-native/codex-native-rename-map.js +0 -1
  341. package/dist/core/codex-native/codex-native-repair-transaction.js +0 -1
  342. package/dist/core/codex-native/core-skill-integrity.js +2 -3
  343. package/dist/core/codex-native/core-skill-manifest.js +36 -9
  344. package/dist/core/codex-native/native-capability-postcheck.js +0 -1
  345. package/dist/core/codex-native/native-capability-repair-matrix.js +0 -1
  346. package/dist/core/codex-native/native-capability-repair.js +0 -1
  347. package/dist/core/codex-native/native-media-computer-repair.js +0 -1
  348. package/dist/core/codex-native/project-skill-dedupe.js +0 -1
  349. package/dist/core/codex-native/skill-name-canonicalizer.js +0 -1
  350. package/dist/core/codex-native/skill-registry-ledger.js +0 -1
  351. package/dist/core/codex-plugins/codex-plugin-cache.js +0 -1
  352. package/dist/core/codex-plugins/codex-plugin-diff.js +0 -1
  353. package/dist/core/codex-plugins/codex-plugin-json.js +0 -1
  354. package/dist/core/codex-plugins/codex-plugin-repair.js +0 -1
  355. package/dist/core/codex-runtime/codex-desktop-config-policy.js +0 -1
  356. package/dist/core/codex-runtime/resolve-codex-runtime.js +0 -1
  357. package/dist/core/commands/agent-bridge-command.js +0 -1
  358. package/dist/core/commands/autoresearch-command.js +0 -1
  359. package/dist/core/commands/basic-cli.js +105 -51
  360. package/dist/core/commands/bench-command.js +0 -1
  361. package/dist/core/commands/check-command.js +0 -1
  362. package/dist/core/commands/code-structure-command.js +0 -1
  363. package/dist/core/commands/command-suggestions.js +0 -1
  364. package/dist/core/commands/command-utils.js +3 -4
  365. package/dist/core/commands/computer-use-command.js +0 -1
  366. package/dist/core/commands/daemon-command.js +0 -1
  367. package/dist/core/commands/dfix-command.js +0 -1
  368. package/dist/core/commands/eval-command.js +0 -1
  369. package/dist/core/commands/fast-mode-command.js +0 -1
  370. package/dist/core/commands/gate-result-contract.js +0 -1
  371. package/dist/core/commands/gates-command.js +0 -1
  372. package/dist/core/commands/gc-command.js +0 -1
  373. package/dist/core/commands/git-command.js +3 -4
  374. package/dist/core/commands/glm-command.js +28 -4
  375. package/dist/core/commands/goal-command.js +0 -1
  376. package/dist/core/commands/gx-command.js +0 -1
  377. package/dist/core/commands/harness-command.js +0 -1
  378. package/dist/core/commands/hproof-command.js +0 -1
  379. package/dist/core/commands/image-ux-review-command.js +0 -1
  380. package/dist/core/commands/local-model-command.js +0 -1
  381. package/dist/core/commands/loop-command.js +0 -1
  382. package/dist/core/commands/mad-sks-command.js +91 -246
  383. package/dist/core/commands/mcp-config-command.js +212 -0
  384. package/dist/core/commands/mcp-server-command.js +0 -1
  385. package/dist/core/commands/menubar-command.js +60 -5
  386. package/dist/core/commands/naruto-command.js +42 -100
  387. package/dist/core/commands/paths-command.js +0 -1
  388. package/dist/core/commands/perf-command.js +0 -1
  389. package/dist/core/commands/pipeline-command.js +1 -2
  390. package/dist/core/commands/plan-command.js +0 -1
  391. package/dist/core/commands/ppt-command.js +0 -1
  392. package/dist/core/commands/profile-command.js +0 -1
  393. package/dist/core/commands/proof-field-command.js +0 -1
  394. package/dist/core/commands/qa-loop-command.js +0 -1
  395. package/dist/core/commands/recallpulse-command.js +0 -1
  396. package/dist/core/commands/release-command.js +0 -1
  397. package/dist/core/commands/remote-command.js +100 -0
  398. package/dist/core/commands/research-command.js +2 -3
  399. package/dist/core/commands/review-command.js +0 -1
  400. package/dist/core/commands/rollback-command.js +0 -1
  401. package/dist/core/commands/route-command.js +0 -1
  402. package/dist/core/commands/route-success-helpers.js +0 -1
  403. package/dist/core/commands/run-command.js +4 -24
  404. package/dist/core/commands/rust-command.js +0 -1
  405. package/dist/core/commands/seo-command.js +0 -1
  406. package/dist/core/commands/skill-dream-command.js +0 -1
  407. package/dist/core/commands/status-command.js +1 -2
  408. package/dist/core/commands/stop-gate-command.js +0 -1
  409. package/dist/core/commands/task-command.js +0 -1
  410. package/dist/core/commands/telegram-command.js +143 -0
  411. package/dist/core/commands/triwiki-command.js +0 -1
  412. package/dist/core/commands/trust-command.js +0 -1
  413. package/dist/core/commands/ui-command.js +1 -2
  414. package/dist/core/commands/uninstall-command.js +0 -1
  415. package/dist/core/commands/validate-artifacts-command.js +0 -1
  416. package/dist/core/commands/wiki-command.js +15 -10
  417. package/dist/core/commands/wrongness-command.js +0 -1
  418. package/dist/core/computer-use-live-evidence.js +0 -1
  419. package/dist/core/computer-use-status.js +0 -1
  420. package/dist/core/config/config-migration-journal.js +0 -1
  421. package/dist/core/config/managed-config-merge.js +0 -1
  422. package/dist/core/config/secret-preservation.js +0 -1
  423. package/dist/core/config/supabase-secret-preservation.js +0 -1
  424. package/dist/core/context7-client.js +0 -1
  425. package/dist/core/daemon/sksd-client.js +0 -1
  426. package/dist/core/daemon/sksd-hook-daemon-entrypoint.js +0 -1
  427. package/dist/core/daemon/sksd-hook-daemon.js +0 -1
  428. package/dist/core/daemon/sksd-hook-dispatch.js +0 -1
  429. package/dist/core/daemon/sksd-ipc.js +0 -1
  430. package/dist/core/daemon/sksd.js +0 -1
  431. package/dist/core/db-safety.js +32 -32
  432. package/dist/core/decision-contract.js +0 -1
  433. package/dist/core/decision-lattice.js +5 -6
  434. package/dist/core/dfix/codex-handoff.js +0 -1
  435. package/dist/core/dfix/dfix-cache.js +0 -1
  436. package/dist/core/dfix/error-signature.js +0 -1
  437. package/dist/core/dfix/patch-runner.js +0 -1
  438. package/dist/core/dfix/patch-templates.js +0 -1
  439. package/dist/core/dfix/path-decision.js +0 -1
  440. package/dist/core/dfix/performance.js +0 -1
  441. package/dist/core/dfix/root-cause-ranking.js +0 -1
  442. package/dist/core/dfix/verification-runner.js +0 -1
  443. package/dist/core/dfix/verification-selector.js +0 -1
  444. package/dist/core/dfix.js +0 -1
  445. package/dist/core/doctor/browser-use-repair.js +0 -1
  446. package/dist/core/doctor/codex-0138-doctor.js +0 -1
  447. package/dist/core/doctor/codex-0139-doctor.js +0 -1
  448. package/dist/core/doctor/codex-doctor-bridge.js +0 -1
  449. package/dist/core/doctor/codex-startup-config-repair.js +3 -2
  450. package/dist/core/doctor/command-alias-cleanup.js +157 -24
  451. package/dist/core/doctor/computer-use-repair.js +0 -1
  452. package/dist/core/doctor/confirm-repair.js +0 -1
  453. package/dist/core/doctor/context7-mcp-repair.js +1 -2
  454. package/dist/core/doctor/current-project-guidance-nested.js +76 -0
  455. package/dist/core/doctor/current-project-guidance.js +343 -0
  456. package/dist/core/doctor/doctor-codex-startup-repair.js +0 -1
  457. package/dist/core/doctor/doctor-context7-repair.js +0 -1
  458. package/dist/core/doctor/doctor-dirty-planner.js +0 -1
  459. package/dist/core/doctor/doctor-idempotence.js +0 -1
  460. package/dist/core/doctor/doctor-native-capability-repair.js +0 -1
  461. package/dist/core/doctor/doctor-readiness-matrix.js +0 -6
  462. package/dist/core/doctor/doctor-repair-postcheck.js +0 -1
  463. package/dist/core/doctor/doctor-transaction.js +0 -1
  464. package/dist/core/doctor/doctor-zellij-repair.js +0 -1
  465. package/dist/core/doctor/global-sks-install-cleanup.js +0 -1
  466. package/dist/core/doctor/imagegen-repair.js +0 -1
  467. package/dist/core/doctor/legacy-global-hook-cleanup.js +0 -1
  468. package/dist/core/doctor/macos-tcc-diagnostic.js +0 -1
  469. package/dist/core/doctor/mcp-transport-collision-repair.js +0 -1
  470. package/dist/core/doctor/retired-auto-review-config.js +5 -0
  471. package/dist/core/doctor/retired-managed-projection-residue.js +195 -0
  472. package/dist/core/doctor/retired-managed-residue-artifact-helpers.js +135 -0
  473. package/dist/core/doctor/retired-managed-residue-artifacts.js +33 -0
  474. package/dist/core/doctor/retired-managed-residue-missions.js +393 -0
  475. package/dist/core/doctor/retired-managed-residue-private.js +73 -0
  476. package/dist/core/doctor/retired-managed-residue-runtime.js +133 -0
  477. package/dist/core/doctor/retired-managed-residue-state.js +270 -0
  478. package/dist/core/doctor/retired-managed-residue.js +40 -0
  479. package/dist/core/doctor/supabase-mcp-repair.js +2 -3
  480. package/dist/core/dogfood-loop.js +0 -1
  481. package/dist/core/effort-orchestrator.js +0 -1
  482. package/dist/core/errors/blocker-humanizer.js +0 -1
  483. package/dist/core/errors/next-action-map.js +0 -1
  484. package/dist/core/evaluation.js +4 -5
  485. package/dist/core/evidence/evidence-dedupe.js +0 -1
  486. package/dist/core/evidence/evidence-freshness.js +0 -1
  487. package/dist/core/evidence/evidence-proof-linker.js +0 -1
  488. package/dist/core/evidence/evidence-redaction.js +0 -1
  489. package/dist/core/evidence/evidence-router.js +0 -1
  490. package/dist/core/evidence/evidence-schema.js +0 -1
  491. package/dist/core/evidence/evidence-store.js +0 -1
  492. package/dist/core/feature-fixture-executor.js +1 -2
  493. package/dist/core/feature-fixture-runner.js +0 -1
  494. package/dist/core/feature-fixtures.js +12 -30
  495. package/dist/core/feature-registry.js +66 -61
  496. package/dist/core/features/feature-completion.js +0 -1
  497. package/dist/core/features/feature-fixtures.js +0 -1
  498. package/dist/core/features/feature-registry.js +0 -1
  499. package/dist/core/from-chat-img-forensics.js +0 -1
  500. package/dist/core/fsx.js +6 -9
  501. package/dist/core/git/git-integration-worktree.js +0 -1
  502. package/dist/core/git/git-repo-detection.js +0 -1
  503. package/dist/core/git/git-worktree-cache-policy.js +0 -1
  504. package/dist/core/git/git-worktree-capability.js +0 -1
  505. package/dist/core/git/git-worktree-checkpoint.js +0 -1
  506. package/dist/core/git/git-worktree-cleanup.js +0 -1
  507. package/dist/core/git/git-worktree-conflict-resolver.js +0 -1
  508. package/dist/core/git/git-worktree-cross-rebase.js +0 -1
  509. package/dist/core/git/git-worktree-diff.js +0 -1
  510. package/dist/core/git/git-worktree-manager.js +0 -1
  511. package/dist/core/git/git-worktree-merge-queue.js +0 -1
  512. package/dist/core/git/git-worktree-patch-envelope.js +0 -1
  513. package/dist/core/git/git-worktree-pool.js +0 -1
  514. package/dist/core/git/git-worktree-root.js +0 -1
  515. package/dist/core/git/git-worktree-runner.js +0 -1
  516. package/dist/core/git-hygiene/collaboration-trust.js +0 -1
  517. package/dist/core/git-hygiene/git-doctor.js +1 -2
  518. package/dist/core/git-hygiene/git-policy.js +6 -7
  519. package/dist/core/git-hygiene/git-precommit.js +1 -2
  520. package/dist/core/git-hygiene/git-status.js +0 -1
  521. package/dist/core/git-hygiene/gitattributes-writer.js +0 -1
  522. package/dist/core/git-hygiene/gitignore-writer.js +0 -1
  523. package/dist/core/git-hygiene/shared-memory-manifest.js +0 -1
  524. package/dist/core/git-hygiene/shared-memory-publish.js +0 -1
  525. package/dist/core/git-hygiene/shared-memory-security.js +0 -1
  526. package/dist/core/git-hygiene/validators.js +1 -2
  527. package/dist/core/git-simple.js +0 -1
  528. package/dist/core/goal-workflow.js +0 -3
  529. package/dist/core/gx-renderer.js +0 -1
  530. package/dist/core/harness-conflicts.js +0 -1
  531. package/dist/core/harness-guard.js +0 -1
  532. package/dist/core/hooks-runtime/code-pack-freshness-preflight.js +11 -16
  533. package/dist/core/hooks-runtime/hook-invocation-dedupe.js +0 -1
  534. package/dist/core/hooks-runtime/hook-io.js +0 -3
  535. package/dist/core/hooks-runtime/light-turn.js +0 -1
  536. package/dist/core/hooks-runtime/naruto-decision-gate.js +184 -0
  537. package/dist/core/hooks-runtime/payload-signals.js +0 -1
  538. package/dist/core/hooks-runtime/skill-reconcile-preflight.js +2 -3
  539. package/dist/core/hooks-runtime/stop-repeat-guard.js +88 -0
  540. package/dist/core/hooks-runtime/tool-output-quarantine.js +0 -1
  541. package/dist/core/hooks-runtime.js +72 -180
  542. package/dist/core/hproof.js +0 -1
  543. package/dist/core/image/image-artifact-path-contract.js +0 -1
  544. package/dist/core/image/image-artifact-registry.js +0 -1
  545. package/dist/core/image-ux-review/callout-extraction.js +0 -1
  546. package/dist/core/image-ux-review/codex-app-generated-image-discovery.js +0 -1
  547. package/dist/core/image-ux-review/fix-loop.js +0 -1
  548. package/dist/core/image-ux-review/fix-task-planner.js +0 -1
  549. package/dist/core/image-ux-review/imagegen-adapter.js +0 -1
  550. package/dist/core/image-ux-review/patch-handoff.js +0 -1
  551. package/dist/core/image-ux-review/real-callout-extractor.js +0 -1
  552. package/dist/core/image-ux-review/recapture.js +0 -1
  553. package/dist/core/image-ux-review.js +0 -1
  554. package/dist/core/imagegen/gpt-image-2-request-validator.js +0 -1
  555. package/dist/core/imagegen/imagegen-auth-readiness.js +0 -1
  556. package/dist/core/imagegen/imagegen-capability.js +0 -1
  557. package/dist/core/imagegen/require-imagegen.js +0 -1
  558. package/dist/core/init/skills.js +664 -85
  559. package/dist/core/init.js +51 -34
  560. package/dist/core/install/installed-package-smoke.js +340 -34
  561. package/dist/core/json-schema-validator.js +0 -1
  562. package/dist/core/language-preference.js +0 -1
  563. package/dist/core/lean-engineering-policy.js +0 -1
  564. package/dist/core/local-llm/local-collaboration-policy.js +0 -1
  565. package/dist/core/local-llm/local-llm-backpressure.js +0 -1
  566. package/dist/core/local-llm/local-llm-capability.js +0 -1
  567. package/dist/core/local-llm/local-llm-client.js +0 -1
  568. package/dist/core/local-llm/local-llm-config.js +0 -1
  569. package/dist/core/local-llm/local-llm-context-cache.js +0 -1
  570. package/dist/core/local-llm/local-llm-control-adapter.js +0 -1
  571. package/dist/core/local-llm/local-llm-json-repair.js +0 -1
  572. package/dist/core/local-llm/local-llm-metrics.js +0 -1
  573. package/dist/core/local-llm/local-llm-ollama-client.js +0 -1
  574. package/dist/core/local-llm/local-llm-openai-compatible-client.js +0 -1
  575. package/dist/core/local-llm/local-llm-prompt-cache.js +0 -1
  576. package/dist/core/local-llm/local-llm-scheduler.js +0 -1
  577. package/dist/core/local-llm/local-llm-schema-enforcer.js +0 -1
  578. package/dist/core/local-llm/local-llm-smoke.js +0 -1
  579. package/dist/core/local-llm/local-llm-warmup.js +0 -1
  580. package/dist/core/local-llm/local-worker-eligibility.js +0 -1
  581. package/dist/core/locks/file-lock.js +0 -1
  582. package/dist/core/loop-blocker.js +0 -1
  583. package/dist/core/loops/goal-to-loop-compat.js +0 -1
  584. package/dist/core/loops/loop-artifacts.js +0 -1
  585. package/dist/core/loops/loop-checkpoint.js +0 -1
  586. package/dist/core/loops/loop-concurrency-budget.js +0 -1
  587. package/dist/core/loops/loop-continuation-enforcer.js +0 -1
  588. package/dist/core/loops/loop-decomposer.js +1 -2
  589. package/dist/core/loops/loop-final-arbiter-contract.js +0 -1
  590. package/dist/core/loops/loop-finalizer.js +0 -1
  591. package/dist/core/loops/loop-fixture-policy.js +0 -1
  592. package/dist/core/loops/loop-gate-ladder.js +0 -1
  593. package/dist/core/loops/loop-gate-registry.js +0 -1
  594. package/dist/core/loops/loop-gate-runner.js +0 -1
  595. package/dist/core/loops/loop-gate-selector.js +3 -4
  596. package/dist/core/loops/loop-gpt-final-arbiter.js +0 -1
  597. package/dist/core/loops/loop-integration-merge.js +0 -1
  598. package/dist/core/loops/loop-interrupt-registry.js +0 -1
  599. package/dist/core/loops/loop-iteration-runner.js +0 -1
  600. package/dist/core/loops/loop-lease.js +0 -1
  601. package/dist/core/loops/loop-merge-strategy.js +0 -1
  602. package/dist/core/loops/loop-mutation-ledger.js +0 -1
  603. package/dist/core/loops/loop-observability.js +0 -1
  604. package/dist/core/loops/loop-owner-inference.js +0 -1
  605. package/dist/core/loops/loop-owner-ledger.js +0 -1
  606. package/dist/core/loops/loop-planner.js +0 -1
  607. package/dist/core/loops/loop-proof-summary.js +0 -1
  608. package/dist/core/loops/loop-proof.js +0 -1
  609. package/dist/core/loops/loop-risk-classifier.js +2 -3
  610. package/dist/core/loops/loop-runtime-control.js +0 -1
  611. package/dist/core/loops/loop-runtime.js +0 -1
  612. package/dist/core/loops/loop-scheduler.js +0 -1
  613. package/dist/core/loops/loop-schema.js +0 -1
  614. package/dist/core/loops/loop-side-effect-scanner.js +0 -1
  615. package/dist/core/loops/loop-state.js +0 -1
  616. package/dist/core/loops/loop-worker-prompts.js +0 -1
  617. package/dist/core/loops/loop-worker-runtime.js +1 -3
  618. package/dist/core/loops/loop-worktree-runtime.js +0 -1
  619. package/dist/core/mad-sks/audit-ledger.js +0 -1
  620. package/dist/core/mad-sks/authorization-manifest.js +0 -1
  621. package/dist/core/mad-sks/executors/computer-use-executor.js +0 -1
  622. package/dist/core/mad-sks/executors/db-write-executor.js +1 -2
  623. package/dist/core/mad-sks/executors/executor-base.js +0 -1
  624. package/dist/core/mad-sks/executors/file-write-executor.js +0 -1
  625. package/dist/core/mad-sks/executors/index.js +0 -1
  626. package/dist/core/mad-sks/executors/package-install-executor.js +0 -1
  627. package/dist/core/mad-sks/executors/service-control-executor.js +0 -1
  628. package/dist/core/mad-sks/executors/shell-command-executor.js +0 -1
  629. package/dist/core/mad-sks/executors/sql-plane-executor.js +12 -13
  630. package/dist/core/mad-sks/guard-middleware.js +0 -1
  631. package/dist/core/mad-sks/immutable-harness-guard.js +0 -1
  632. package/dist/core/mad-sks/permission-model.js +0 -1
  633. package/dist/core/mad-sks/proof-evidence.js +0 -1
  634. package/dist/core/mad-sks/rollback-apply.js +0 -1
  635. package/dist/core/mad-sks/rollback-plan.js +0 -1
  636. package/dist/core/mad-sks/shell-argv-classifier.js +0 -1
  637. package/dist/core/mad-sks/sql-plane/capability.js +202 -0
  638. package/dist/core/{mad-db/mad-db-coordinator.js → mad-sks/sql-plane/coordinator.js} +88 -87
  639. package/dist/core/mad-sks/sql-plane/ledger.js +36 -0
  640. package/dist/core/{mad-db/mad-db-lock.js → mad-sks/sql-plane/lock.js} +5 -6
  641. package/dist/core/{mad-db/mad-db-executor.js → mad-sks/sql-plane/mcp-executor.js} +24 -25
  642. package/dist/core/{mad-db/mad-db-operation-store.js → mad-sks/sql-plane/operation-store.js} +18 -19
  643. package/dist/core/mad-sks/sql-plane/paths.js +16 -0
  644. package/dist/core/mad-sks/sql-plane/policy-resolver.js +127 -0
  645. package/dist/core/{mad-db/mad-db-policy.js → mad-sks/sql-plane/policy.js} +29 -32
  646. package/dist/core/{mad-db/mad-db-postconditions.js → mad-sks/sql-plane/postconditions.js} +4 -5
  647. package/dist/core/{mad-db/mad-db-recovery.js → mad-sks/sql-plane/recovery.js} +8 -8
  648. package/dist/core/{mad-db/mad-db-result-lifecycle.js → mad-sks/sql-plane/result-lifecycle.js} +13 -14
  649. package/dist/core/{mad-db/mad-db-runtime-profile.js → mad-sks/sql-plane/runtime-profile.js} +16 -16
  650. package/dist/core/{mad-db/mad-db-target.js → mad-sks/sql-plane/target.js} +12 -13
  651. package/dist/core/mad-sks/write-guard.js +0 -1
  652. package/dist/core/managed-assets/managed-assets-manifest.js +185 -36
  653. package/dist/core/managed-path-safety.js +287 -0
  654. package/dist/core/managed-paths.js +0 -1
  655. package/dist/core/mcp/mcp-0-134-policy.js +0 -1
  656. package/dist/core/mcp/mcp-config-preservation.js +0 -1
  657. package/dist/core/mcp/mcp-plugin-inventory.js +0 -1
  658. package/dist/core/mcp/mcp-server-policy.js +2 -3
  659. package/dist/core/mcp/mcp-tool-name-normalizer.js +0 -1
  660. package/dist/core/mcp-config/backup.js +102 -0
  661. package/dist/core/mcp-config/codex-cli-adapter.js +165 -0
  662. package/dist/core/mcp-config/config-reader.js +148 -0
  663. package/dist/core/mcp-config/effective-merge.js +24 -0
  664. package/dist/core/mcp-config/guarded-patch.js +259 -0
  665. package/dist/core/mcp-config/health-check.js +324 -0
  666. package/dist/core/mcp-config/index.js +14 -0
  667. package/dist/core/mcp-config/inventory.js +82 -0
  668. package/dist/core/mcp-config/mutation.js +366 -0
  669. package/dist/core/mcp-config/oauth.js +44 -0
  670. package/dist/core/mcp-config/redaction.js +84 -0
  671. package/dist/core/mcp-config/restore.js +106 -0
  672. package/dist/core/mcp-config/scope.js +69 -0
  673. package/dist/core/mcp-config/secret-policy.js +196 -0
  674. package/dist/core/mcp-config/types.js +8 -0
  675. package/dist/core/memory-governor.js +0 -1
  676. package/dist/core/memory-summary.js +0 -1
  677. package/dist/core/migration/migration-transaction-journal.js +0 -1
  678. package/dist/core/mission.js +0 -1
  679. package/dist/core/mistake-memory.js +0 -1
  680. package/dist/core/mistake-recall.js +0 -1
  681. package/dist/core/naruto/hardware-capacity-probe.js +0 -1
  682. package/dist/core/naruto/naruto-active-pool.js +0 -1
  683. package/dist/core/naruto/naruto-allocation-policy.js +0 -1
  684. package/dist/core/naruto/naruto-backpressure.js +0 -1
  685. package/dist/core/naruto/naruto-concurrency-governor.js +14 -15
  686. package/dist/core/naruto/naruto-finalizer.js +0 -1
  687. package/dist/core/naruto/naruto-generation-scheduler.js +0 -1
  688. package/dist/core/naruto/naruto-gpt-final-pack.js +0 -1
  689. package/dist/core/naruto/naruto-loop-mesh.js +0 -1
  690. package/dist/core/naruto/naruto-loop-worker-router.js +0 -1
  691. package/dist/core/naruto/naruto-parallel-patch-apply.js +0 -1
  692. package/dist/core/naruto/naruto-patch-transaction-batch.js +0 -1
  693. package/dist/core/naruto/naruto-real-worker-child.js +0 -1
  694. package/dist/core/naruto/naruto-real-worker-runtime.js +1 -2
  695. package/dist/core/naruto/naruto-real-write-proof.js +1 -2
  696. package/dist/core/naruto/naruto-rebalance-policy.js +0 -1
  697. package/dist/core/naruto/naruto-role-policy.js +0 -1
  698. package/dist/core/naruto/naruto-task-hints.js +0 -1
  699. package/dist/core/naruto/naruto-verification-dag.js +0 -1
  700. package/dist/core/naruto/naruto-verification-pool.js +0 -1
  701. package/dist/core/naruto/naruto-work-graph.js +6 -7
  702. package/dist/core/naruto/naruto-work-item.js +0 -1
  703. package/dist/core/naruto/naruto-write-e2e.js +1 -2
  704. package/dist/core/naruto/normalize-worker-prompt-text.js +0 -1
  705. package/dist/core/naruto/resource-pressure-monitor.js +0 -1
  706. package/dist/core/naruto/solution-tournament.js +0 -1
  707. package/dist/core/no-question-guard.js +0 -1
  708. package/dist/core/official-subagent-review-policy.js +17 -0
  709. package/dist/core/ops/diagnostics-bundle.js +0 -1
  710. package/dist/core/ops/ops-maturity-scorecard.js +0 -1
  711. package/dist/core/ops/reporting.js +0 -1
  712. package/dist/core/ops/upgrade-migration-fixtures.js +1 -2
  713. package/dist/core/perf/fsx-hotpath.js +0 -1
  714. package/dist/core/perf/import-graph-budget.js +0 -1
  715. package/dist/core/perf/lru-cache.js +0 -1
  716. package/dist/core/perf/perf-budget.js +0 -1
  717. package/dist/core/perf/performance-profiler.js +0 -1
  718. package/dist/core/perf/release-latency-slo.js +317 -0
  719. package/dist/core/perf-bench.js +1 -2
  720. package/dist/core/performance-budgets.json +6 -6
  721. package/dist/core/permission-gates.js +0 -1
  722. package/dist/core/pipeline/active-context.js +0 -1
  723. package/dist/core/pipeline/agent-stage-policy.js +0 -1
  724. package/dist/core/pipeline/final-gpt-patch-stage.js +0 -1
  725. package/dist/core/pipeline/final-gpt-review-stage.js +0 -1
  726. package/dist/core/pipeline/finalize-pipeline-result.js +0 -1
  727. package/dist/core/pipeline/gpt-final-required.js +0 -1
  728. package/dist/core/pipeline/pipeline-plan-writer.js +0 -1
  729. package/dist/core/pipeline/plan-schema.js +0 -1
  730. package/dist/core/pipeline/prompt-context-answer.js +0 -1
  731. package/dist/core/pipeline/prompt-context-computer-use.js +0 -1
  732. package/dist/core/pipeline/prompt-context-dfix.js +0 -1
  733. package/dist/core/pipeline/prompt-context.js +0 -1
  734. package/dist/core/pipeline/route-prep-db.js +0 -1
  735. package/dist/core/pipeline/route-prep-gx.js +0 -1
  736. package/dist/core/pipeline/route-prep-image-ux.js +0 -1
  737. package/dist/core/pipeline/route-prep-ppt.js +0 -1
  738. package/dist/core/pipeline/route-prep-qa.js +0 -1
  739. package/dist/core/pipeline/route-prep-research.js +0 -1
  740. package/dist/core/pipeline/route-prep.js +0 -1
  741. package/dist/core/pipeline/stage-policy.js +0 -1
  742. package/dist/core/pipeline/stop-gate-context7.js +0 -1
  743. package/dist/core/pipeline/stop-gate-proof.js +0 -1
  744. package/dist/core/pipeline/stop-gate-subagents.js +0 -1
  745. package/dist/core/pipeline/stop-gate.js +0 -1
  746. package/dist/core/pipeline/validation.js +0 -1
  747. package/dist/core/pipeline-internals/runtime-core.js +66 -144
  748. package/dist/core/pipeline-internals/runtime-gates.js +14 -139
  749. package/dist/core/pipeline.js +0 -1
  750. package/dist/core/ppt/artifacts.js +0 -1
  751. package/dist/core/ppt/html.js +0 -1
  752. package/dist/core/ppt/style-tokens.js +0 -1
  753. package/dist/core/ppt-imagegen-review.js +0 -1
  754. package/dist/core/ppt-review/deck-issue-ledger.js +0 -1
  755. package/dist/core/ppt-review/index.js +0 -1
  756. package/dist/core/ppt-review/ppt-fix-task-planner.js +0 -1
  757. package/dist/core/ppt-review/ppt-patch-handoff.js +0 -1
  758. package/dist/core/ppt-review/reexport-rereview.js +0 -1
  759. package/dist/core/ppt-review/slide-exporter.js +0 -1
  760. package/dist/core/ppt-review/slide-imagegen-review.js +0 -1
  761. package/dist/core/ppt-review/slide-issue-extraction.js +0 -1
  762. package/dist/core/ppt.js +2 -3
  763. package/dist/core/preflight/parallel-preflight-engine.js +16 -4
  764. package/dist/core/probes/probe-memoization.js +0 -1
  765. package/dist/core/product-design-app-server.js +0 -1
  766. package/dist/core/product-design-plugin.js +9 -10
  767. package/dist/core/prompt/prompt-placeholder-guard.js +0 -1
  768. package/dist/core/prompt-context-builder.js +0 -1
  769. package/dist/core/proof/auto-finalize.js +3 -74
  770. package/dist/core/proof/claim-ledger.js +0 -1
  771. package/dist/core/proof/command-ledger.js +0 -1
  772. package/dist/core/proof/evidence-collector.js +0 -1
  773. package/dist/core/proof/fake-real-proof-policy.js +208 -60
  774. package/dist/core/proof/file-change-ledger.js +0 -1
  775. package/dist/core/proof/proof-reader.js +0 -1
  776. package/dist/core/proof/proof-redaction.test-helper.js +0 -1
  777. package/dist/core/proof/proof-schema.js +0 -1
  778. package/dist/core/proof/proof-writer.js +0 -1
  779. package/dist/core/proof/root-cause-policy.js +0 -1
  780. package/dist/core/proof/route-adapter.js +9 -6
  781. package/dist/core/proof/route-finalizer-fixtures.js +1 -2
  782. package/dist/core/proof/route-finalizer-policy.js +0 -1
  783. package/dist/core/proof/route-finalizer.js +0 -1
  784. package/dist/core/proof/route-proof-gate.js +14 -31
  785. package/dist/core/proof/route-proof-policy.js +8 -10
  786. package/dist/core/proof/runtime-truth-matrix.js +44 -66
  787. package/dist/core/proof/selftest-proof-fixtures.js +12 -15
  788. package/dist/core/proof/validation.js +0 -1
  789. package/dist/core/proof-field.js +17 -18
  790. package/dist/core/provider/model-router.js +15 -7
  791. package/dist/core/provider/provider-badge.js +0 -1
  792. package/dist/core/provider/provider-context.js +1 -2
  793. package/dist/core/provider/provider-self-heal.js +0 -1
  794. package/dist/core/providers/glm/bench/glm-bench-comparison.js +0 -1
  795. package/dist/core/providers/glm/bench/glm-bench-fixture.js +0 -1
  796. package/dist/core/providers/glm/bench/glm-bench-model-lock-proof.js +0 -1
  797. package/dist/core/providers/glm/bench/glm-bench-report.js +0 -1
  798. package/dist/core/providers/glm/bench/glm-benchmark-runner.js +0 -1
  799. package/dist/core/providers/glm/bench/glm-benchmark-types.js +0 -1
  800. package/dist/core/providers/glm/bench/glm-direct-bench-runner.js +0 -1
  801. package/dist/core/providers/glm/glm-52-profile.js +0 -1
  802. package/dist/core/providers/glm/glm-52-request.js +0 -1
  803. package/dist/core/providers/glm/glm-52-response-guard.js +0 -1
  804. package/dist/core/providers/glm/glm-52-settings.js +0 -1
  805. package/dist/core/providers/glm/glm-context-budget.js +0 -1
  806. package/dist/core/providers/glm/glm-context-cache.js +0 -1
  807. package/dist/core/providers/glm/glm-direct-run.js +0 -1
  808. package/dist/core/providers/glm/glm-interactive-launch.js +1 -2
  809. package/dist/core/providers/glm/glm-latency-trace.js +0 -1
  810. package/dist/core/providers/glm/glm-loop-guard.js +0 -1
  811. package/dist/core/providers/glm/glm-mad-launch.js +0 -1
  812. package/dist/core/providers/glm/glm-mad-mode.js +0 -1
  813. package/dist/core/providers/glm/glm-model-meta-cache.js +0 -1
  814. package/dist/core/providers/glm/glm-patch-apply.js +16 -2
  815. package/dist/core/providers/glm/glm-patch-parser.js +0 -1
  816. package/dist/core/providers/glm/glm-profile-resolver.js +0 -1
  817. package/dist/core/providers/glm/glm-readiness.js +0 -1
  818. package/dist/core/providers/glm/glm-reasoning-policy.js +0 -1
  819. package/dist/core/providers/glm/glm-request-cache.js +0 -1
  820. package/dist/core/providers/glm/glm-run-controller.js +0 -1
  821. package/dist/core/providers/glm/glm-run-state.js +0 -1
  822. package/dist/core/providers/glm/glm-run-timeout.js +0 -1
  823. package/dist/core/providers/glm/glm-speed-context.js +0 -1
  824. package/dist/core/providers/glm/glm-speed-gate.js +0 -1
  825. package/dist/core/providers/glm/glm-speed-output-parser.js +0 -1
  826. package/dist/core/providers/glm/glm-tool-schema-cache.js +0 -1
  827. package/dist/core/providers/glm/naruto/glm-naruto-apply-transaction.js +0 -1
  828. package/dist/core/providers/glm/naruto/glm-naruto-artifacts.js +0 -1
  829. package/dist/core/providers/glm/naruto/glm-naruto-bench.js +0 -1
  830. package/dist/core/providers/glm/naruto/glm-naruto-budget.js +0 -1
  831. package/dist/core/providers/glm/naruto/glm-naruto-combined-patch.js +0 -1
  832. package/dist/core/providers/glm/naruto/glm-naruto-command.js +2 -3
  833. package/dist/core/providers/glm/naruto/glm-naruto-concurrency-governor.js +2 -3
  834. package/dist/core/providers/glm/naruto/glm-naruto-conflict-graph.js +0 -1
  835. package/dist/core/providers/glm/naruto/glm-naruto-critical-path.js +0 -1
  836. package/dist/core/providers/glm/naruto/glm-naruto-decomposer.js +0 -1
  837. package/dist/core/providers/glm/naruto/glm-naruto-file-lease.js +0 -1
  838. package/dist/core/providers/glm/naruto/glm-naruto-final-seal.js +0 -1
  839. package/dist/core/providers/glm/naruto/glm-naruto-finalizer.js +0 -1
  840. package/dist/core/providers/glm/naruto/glm-naruto-hunk-conflict.js +0 -1
  841. package/dist/core/providers/glm/naruto/glm-naruto-hunk-parser.js +0 -1
  842. package/dist/core/providers/glm/naruto/glm-naruto-isolation-policy.js +0 -1
  843. package/dist/core/providers/glm/naruto/glm-naruto-judge.js +0 -1
  844. package/dist/core/providers/glm/naruto/glm-naruto-merge-planner.js +0 -1
  845. package/dist/core/providers/glm/naruto/glm-naruto-metrics.js +0 -1
  846. package/dist/core/providers/glm/naruto/glm-naruto-orchestrator.js +0 -1
  847. package/dist/core/providers/glm/naruto/glm-naruto-parallelism-summary.js +0 -1
  848. package/dist/core/providers/glm/naruto/glm-naruto-patch-candidate-gate.js +0 -1
  849. package/dist/core/providers/glm/naruto/glm-naruto-patch-candidate-parser.js +0 -1
  850. package/dist/core/providers/glm/naruto/glm-naruto-patch-envelope.js +0 -1
  851. package/dist/core/providers/glm/naruto/glm-naruto-quorum.js +0 -1
  852. package/dist/core/providers/glm/naruto/glm-naruto-rate-limiter.js +0 -1
  853. package/dist/core/providers/glm/naruto/glm-naruto-repair-wave.js +0 -1
  854. package/dist/core/providers/glm/naruto/glm-naruto-requirement-coverage.js +0 -1
  855. package/dist/core/providers/glm/naruto/glm-naruto-requirement-ledger.js +0 -1
  856. package/dist/core/providers/glm/naruto/glm-naruto-scoreboard.js +0 -1
  857. package/dist/core/providers/glm/naruto/glm-naruto-secret-audit.js +0 -1
  858. package/dist/core/providers/glm/naruto/glm-naruto-session-id.js +0 -1
  859. package/dist/core/providers/glm/naruto/glm-naruto-shard-planner.js +0 -1
  860. package/dist/core/providers/glm/naruto/glm-naruto-stage-scheduler.js +0 -1
  861. package/dist/core/providers/glm/naruto/glm-naruto-targeted-checks.js +0 -1
  862. package/dist/core/providers/glm/naruto/glm-naruto-task-size-classifier.js +0 -1
  863. package/dist/core/providers/glm/naruto/glm-naruto-terminal.js +0 -1
  864. package/dist/core/providers/glm/naruto/glm-naruto-trace.js +0 -1
  865. package/dist/core/providers/glm/naruto/glm-naruto-types.js +2 -3
  866. package/dist/core/providers/glm/naruto/glm-naruto-usage-extractor.js +0 -1
  867. package/dist/core/providers/glm/naruto/glm-naruto-verifier-output.js +0 -1
  868. package/dist/core/providers/glm/naruto/glm-naruto-work-graph.js +0 -1
  869. package/dist/core/providers/glm/naruto/glm-naruto-worker-artifacts.js +0 -1
  870. package/dist/core/providers/glm/naruto/glm-naruto-worker-pool.js +1 -2
  871. package/dist/core/providers/glm/naruto/glm-naruto-worker-runtime.js +0 -1
  872. package/dist/core/providers/glm/naruto/glm-naruto-worker-scheduler.js +1 -2
  873. package/dist/core/providers/glm/naruto/glm-naruto-worker.js +0 -1
  874. package/dist/core/providers/glm/naruto/glm-naruto-worktree-cleanup.js +0 -1
  875. package/dist/core/providers/glm/naruto/glm-naruto-worktree-manager.js +16 -2
  876. package/dist/core/providers/glm/naruto/glm-naruto-worktree-worker.js +0 -1
  877. package/dist/core/providers/glm/naruto/glm-naruto-worktree.js +16 -2
  878. package/dist/core/providers/openrouter/openrouter-client.js +0 -1
  879. package/dist/core/providers/openrouter/openrouter-error.js +0 -1
  880. package/dist/core/providers/openrouter/openrouter-provider-health.js +0 -1
  881. package/dist/core/providers/openrouter/openrouter-secret-store.js +0 -1
  882. package/dist/core/providers/openrouter/openrouter-stream.js +0 -1
  883. package/dist/core/providers/openrouter/openrouter-types.js +0 -1
  884. package/dist/core/python-tools/python-tool-runner.js +0 -1
  885. package/dist/core/qa-loop/qa-app-server-driver.js +0 -1
  886. package/dist/core/qa-loop/qa-contract.js +0 -1
  887. package/dist/core/qa-loop/qa-gate.js +0 -1
  888. package/dist/core/qa-loop/qa-loop-app-handoff-confirmation.js +0 -1
  889. package/dist/core/qa-loop/qa-loop-budget-policy.js +0 -1
  890. package/dist/core/qa-loop/qa-runtime-artifacts.js +0 -1
  891. package/dist/core/qa-loop/qa-surface-router.js +0 -1
  892. package/dist/core/qa-loop/qa-types.js +0 -1
  893. package/dist/core/qa-loop.js +2 -3
  894. package/dist/core/quality/competitor-scorecard.js +0 -1
  895. package/dist/core/questions.js +3 -4
  896. package/dist/core/recallpulse/policy.js +1 -2
  897. package/dist/core/recallpulse.js +6 -7
  898. package/dist/core/release/critical-path-ledger.js +0 -1
  899. package/dist/core/release/extreme-parallel-scheduler.js +0 -1
  900. package/dist/core/release/file-ownership.js +153 -0
  901. package/dist/core/release/gate-cache.js +0 -1
  902. package/dist/core/release/gate-manifest.js +8 -8
  903. package/dist/core/release/gate-pack-assertion.js +0 -1
  904. package/dist/core/release/gate-pack-fixture-cache.js +0 -1
  905. package/dist/core/release/gate-pack-manifest.js +0 -1
  906. package/dist/core/release/gate-pack-runner.js +0 -1
  907. package/dist/core/release/gate-timing.js +0 -1
  908. package/dist/core/release/macos-menubar-proof.js +167 -0
  909. package/dist/core/release/main-push-guard.js +135 -0
  910. package/dist/core/release/main-push-receipt.js +147 -0
  911. package/dist/core/release/npm-pack-proof.js +41 -16
  912. package/dist/core/release/package-dist-snapshot.js +0 -1
  913. package/dist/core/release/package-size-budget.js +2 -7
  914. package/dist/core/release/release-authorization-snapshot.js +0 -1
  915. package/dist/core/release/release-cache-key.js +0 -1
  916. package/dist/core/release/release-closure-contract.js +29 -0
  917. package/dist/core/release/release-closure-helpers.js +293 -0
  918. package/dist/core/release/release-closure-validation.js +271 -0
  919. package/dist/core/release/release-closure.js +134 -0
  920. package/dist/core/release/release-gate-affected-selector.js +2 -3
  921. package/dist/core/release/release-gate-batch-runner.js +0 -1
  922. package/dist/core/release/release-gate-cache-v2.js +2 -12
  923. package/dist/core/release/release-gate-contract.js +9 -8
  924. package/dist/core/release/release-gate-dag.js +34 -10
  925. package/dist/core/release/release-gate-hermetic-env.js +1 -2
  926. package/dist/core/release/release-gate-node.js +0 -1
  927. package/dist/core/release/release-gate-report.js +0 -1
  928. package/dist/core/release/release-gate-resource-governor.js +0 -1
  929. package/dist/core/release/release-gate-scheduler.js +0 -1
  930. package/dist/core/release/release-origin.js +29 -0
  931. package/dist/core/release/release-pack-content-scanner.js +98 -0
  932. package/dist/core/release/release-pack-contract.js +2 -0
  933. package/dist/core/release/release-pack-receipt.js +330 -0
  934. package/dist/core/release/release-pack-tarball.js +64 -0
  935. package/dist/core/release/release-proof-truth.js +0 -1
  936. package/dist/core/release/release-real-contract.js +1 -3
  937. package/dist/core/release/release-stamp-proof.js +127 -0
  938. package/dist/core/release/resource-class-budget.js +0 -1
  939. package/dist/core/release/runtime-script-pack-closure.js +344 -0
  940. package/dist/core/release/sla-scheduler.js +0 -1
  941. package/dist/core/release-parallel-full-coverage.js +0 -1
  942. package/dist/core/remote/audit-idempotency.js +209 -0
  943. package/dist/core/remote/index.js +10 -0
  944. package/dist/core/remote/machine-registry.js +162 -0
  945. package/dist/core/remote/owner-proof.js +224 -0
  946. package/dist/core/remote/protocol.js +263 -0
  947. package/dist/core/remote/readiness.js +158 -0
  948. package/dist/core/remote/session-index.js +76 -0
  949. package/dist/core/remote/session-snapshot.js +197 -0
  950. package/dist/core/remote/ssh-worker-client.js +377 -0
  951. package/dist/core/remote/types.js +10 -0
  952. package/dist/core/remote/worker.js +343 -0
  953. package/dist/core/reporting/markdown-table.js +0 -1
  954. package/dist/core/research/claim-evidence-matrix.js +0 -1
  955. package/dist/core/research/experiment-plan.js +0 -1
  956. package/dist/core/research/falsification.js +0 -1
  957. package/dist/core/research/implementation-blueprint-densifier.js +0 -1
  958. package/dist/core/research/implementation-blueprint-markdown.js +0 -1
  959. package/dist/core/research/implementation-blueprint.js +0 -1
  960. package/dist/core/research/mock-result.js +0 -1
  961. package/dist/core/research/replication-pack.js +0 -1
  962. package/dist/core/research/research-adversarial-review.js +1 -3
  963. package/dist/core/research/research-claim-builder.js +0 -1
  964. package/dist/core/research/research-claim-synthesizer.js +0 -1
  965. package/dist/core/research/research-cycle-runner.js +0 -1
  966. package/dist/core/research/research-falsification-runner.js +0 -1
  967. package/dist/core/research/research-final-reviewer.js +0 -1
  968. package/dist/core/research/research-handoff.js +3 -4
  969. package/dist/core/research/research-plan-markdown.js +122 -0
  970. package/dist/core/research/research-prompt-contract.js +0 -1
  971. package/dist/core/research/research-quality-contract.js +0 -1
  972. package/dist/core/research/research-realistic-report.js +2 -3
  973. package/dist/core/research/research-repetition-detector.js +0 -1
  974. package/dist/core/research/research-report-quality.js +0 -1
  975. package/dist/core/research/research-review-artifact-digest.js +0 -1
  976. package/dist/core/research/research-source-evidence.js +0 -1
  977. package/dist/core/research/research-source-layer-catalog.js +0 -1
  978. package/dist/core/research/research-source-ledger-merge.js +0 -1
  979. package/dist/core/research/research-source-shards.js +0 -1
  980. package/dist/core/research/research-stage-runner.js +1 -2
  981. package/dist/core/research/research-super-search.js +8 -5
  982. package/dist/core/research/research-synthesis-prompt.js +0 -1
  983. package/dist/core/research/research-synthesis-writer.js +0 -1
  984. package/dist/core/research/research-work-graph.js +3 -5
  985. package/dist/core/research/source-quality-report.js +0 -1
  986. package/dist/core/research.js +5 -121
  987. package/dist/core/responses-retry-policy.js +0 -1
  988. package/dist/core/results.js +0 -1
  989. package/dist/core/retention/retention-budget.js +0 -1
  990. package/dist/core/retention.js +70 -3
  991. package/dist/core/router/capability-card.js +0 -1
  992. package/dist/core/router/route-cache.js +0 -1
  993. package/dist/core/router/router-proof.js +0 -1
  994. package/dist/core/router/task-classifier.js +0 -1
  995. package/dist/core/router/ultra-router.js +0 -1
  996. package/dist/core/routes/constants.js +18 -19
  997. package/dist/core/routes/design-policy.js +0 -1
  998. package/dist/core/routes/diagnostic-allowlist.js +0 -1
  999. package/dist/core/routes/dollar-manifest-lite.js +19 -13
  1000. package/dist/core/routes/dollar-prefix.js +25 -0
  1001. package/dist/core/routes/evidence.js +0 -1
  1002. package/dist/core/routes/model-mode-router.js +1 -2
  1003. package/dist/core/routes/ppt-policy.js +6 -8
  1004. package/dist/core/routes.js +152 -119
  1005. package/dist/core/runtime/task-profile.js +20 -3
  1006. package/dist/core/runtime/verification-budget.js +0 -1
  1007. package/dist/core/rust-accelerator.js +1 -2
  1008. package/dist/core/safety/command-contract/contracts.js +210 -0
  1009. package/dist/core/safety/command-contract/index.js +3 -0
  1010. package/dist/core/safety/command-contract/json-schema.js +91 -0
  1011. package/dist/core/safety/command-contract/types.js +1 -0
  1012. package/dist/core/safety/mutation-guard.js +0 -1
  1013. package/dist/core/safety/mutation-ledger.js +0 -1
  1014. package/dist/core/safety/requested-scope-contract.js +0 -0
  1015. package/dist/core/safety/side-effect-runtime-report.js +0 -1
  1016. package/dist/core/safety/ssot-guard.js +7 -8
  1017. package/dist/core/search-visibility/adapter-registry.js +0 -1
  1018. package/dist/core/search-visibility/adapters/next-app.js +0 -1
  1019. package/dist/core/search-visibility/adapters/next-pages.js +0 -1
  1020. package/dist/core/search-visibility/adapters/static-site.js +0 -1
  1021. package/dist/core/search-visibility/analyzers.js +0 -1
  1022. package/dist/core/search-visibility/artifacts.js +0 -1
  1023. package/dist/core/search-visibility/discovery.js +0 -1
  1024. package/dist/core/search-visibility/index.js +0 -1
  1025. package/dist/core/search-visibility/marketing-truthfulness.js +2 -3
  1026. package/dist/core/search-visibility/marketing.js +1 -2
  1027. package/dist/core/search-visibility/mission.js +0 -1
  1028. package/dist/core/search-visibility/mutation.js +0 -1
  1029. package/dist/core/search-visibility/types.js +0 -1
  1030. package/dist/core/search-visibility/verifier.js +0 -1
  1031. package/dist/core/secret-redaction.js +0 -1
  1032. package/dist/core/security/high-risk-contracts.js +0 -1
  1033. package/dist/core/security/redact-secrets.js +0 -1
  1034. package/dist/core/session/project-namespace.js +1 -2
  1035. package/dist/core/skill-forge.js +5 -6
  1036. package/dist/core/skills/core-rollout-trace.js +0 -1
  1037. package/dist/core/skills/core-skill-card.js +0 -0
  1038. package/dist/core/skills/core-skill-deployment.js +0 -1
  1039. package/dist/core/skills/core-skill-epoch.js +0 -1
  1040. package/dist/core/skills/core-skill-meta-update.js +0 -1
  1041. package/dist/core/skills/core-skill-patch-apply.js +0 -1
  1042. package/dist/core/skills/core-skill-patch.js +0 -1
  1043. package/dist/core/skills/core-skill-reflection.js +0 -1
  1044. package/dist/core/skills/core-skill-runtime.js +0 -1
  1045. package/dist/core/skills/core-skill-scorer.js +0 -1
  1046. package/dist/core/skills/core-skill-trainer.js +0 -1
  1047. package/dist/core/skills/core-skill-types.js +0 -1
  1048. package/dist/core/skills/core-skill-validation.js +0 -1
  1049. package/dist/core/skills/rejected-skill-patch-buffer.js +0 -1
  1050. package/dist/core/source-intelligence/appshots-evidence.js +0 -1
  1051. package/dist/core/source-intelligence/codex-history-search.js +0 -1
  1052. package/dist/core/source-intelligence/source-intelligence-policy.js +0 -1
  1053. package/dist/core/source-intelligence/source-intelligence-proof.js +0 -1
  1054. package/dist/core/source-intelligence/source-intelligence-runner.js +0 -1
  1055. package/dist/core/stop-gate/gate-evaluator.js +0 -1
  1056. package/dist/core/stop-gate/stop-gate-check.js +0 -1
  1057. package/dist/core/stop-gate/stop-gate-diagnostics.js +0 -1
  1058. package/dist/core/stop-gate/stop-gate-resolver.js +0 -1
  1059. package/dist/core/stop-gate/stop-gate-types.js +0 -1
  1060. package/dist/core/stop-gate/stop-gate-writer.js +0 -1
  1061. package/dist/core/strategy/adhd-orchestrating-gate.js +0 -1
  1062. package/dist/core/strategy/strategy-compiler.js +1 -2
  1063. package/dist/core/strategy/strategy-gate.js +0 -1
  1064. package/dist/core/structured-output-adapter.js +0 -1
  1065. package/dist/core/subagents/agent-catalog.js +148 -27
  1066. package/dist/core/subagents/model-policy.js +189 -49
  1067. package/dist/core/subagents/naruto-help-contract.js +14 -12
  1068. package/dist/core/subagents/official-subagent-config.js +43 -28
  1069. package/dist/core/subagents/official-subagent-preparation.js +131 -32
  1070. package/dist/core/subagents/official-subagent-prompt.js +178 -27
  1071. package/dist/core/subagents/official-subagent-runner.js +1 -3
  1072. package/dist/core/subagents/subagent-evidence.js +0 -1
  1073. package/dist/core/subagents/terminology.js +0 -1
  1074. package/dist/core/subagents/thread-budget.js +52 -5
  1075. package/dist/core/subagents/triwiki-attention.js +117 -15
  1076. package/dist/core/super-search/doctor.js +1 -2
  1077. package/dist/core/super-search/index.js +0 -1
  1078. package/dist/core/super-search/local-http-smoke.js +0 -1
  1079. package/dist/core/super-search/runtime-helpers.js +0 -1
  1080. package/dist/core/super-search/runtime.js +0 -1
  1081. package/dist/core/super-search/source-records.js +0 -1
  1082. package/dist/core/super-search/types.js +0 -1
  1083. package/dist/core/telegram/bot-api.js +99 -0
  1084. package/dist/core/telegram/config.js +88 -0
  1085. package/dist/core/telegram/hub.js +241 -0
  1086. package/dist/core/telegram/index.js +8 -0
  1087. package/dist/core/telegram/ledgers.js +207 -0
  1088. package/dist/core/telegram/messages.js +292 -0
  1089. package/dist/core/telegram/owner-lock.js +134 -0
  1090. package/dist/core/telegram/runtime-projection.js +88 -0
  1091. package/dist/core/telegram/runtime.js +369 -0
  1092. package/dist/core/telegram/types.js +1 -0
  1093. package/dist/core/triwiki/agents-md-projector.js +0 -1
  1094. package/dist/core/triwiki/code-index-scanner.js +0 -1
  1095. package/dist/core/triwiki/code-pack-head-freshness.js +290 -0
  1096. package/dist/core/triwiki/code-pack.js +0 -1
  1097. package/dist/core/triwiki/triwiki-affected-graph.js +0 -1
  1098. package/dist/core/triwiki/triwiki-cache-key.js +0 -1
  1099. package/dist/core/triwiki/triwiki-gate-impact-map.js +0 -1
  1100. package/dist/core/triwiki/triwiki-invalidation.js +0 -1
  1101. package/dist/core/triwiki/triwiki-module-card.js +1 -2
  1102. package/dist/core/triwiki/triwiki-proof-bank.js +0 -1
  1103. package/dist/core/triwiki/triwiki-proof-card.js +0 -1
  1104. package/dist/core/triwiki/triwiki-sla-certificate.js +0 -1
  1105. package/dist/core/triwiki-attention.js +20 -6
  1106. package/dist/core/triwiki-provenance.js +0 -1
  1107. package/dist/core/triwiki-runtime.js +0 -1
  1108. package/dist/core/triwiki-wrongness/avoidance-rules.js +0 -1
  1109. package/dist/core/triwiki-wrongness/image-wrongness.js +0 -1
  1110. package/dist/core/triwiki-wrongness/validators.js +0 -1
  1111. package/dist/core/triwiki-wrongness/wrongness-cli.js +0 -1
  1112. package/dist/core/triwiki-wrongness/wrongness-ledger.js +2 -3
  1113. package/dist/core/triwiki-wrongness/wrongness-proof-linker.js +0 -1
  1114. package/dist/core/triwiki-wrongness/wrongness-retrieval.js +0 -1
  1115. package/dist/core/triwiki-wrongness/wrongness-schema.js +0 -1
  1116. package/dist/core/triwiki-wrongness/wrongness-trust-policy.js +0 -1
  1117. package/dist/core/trust-kernel/completion-contract.js +1 -2
  1118. package/dist/core/trust-kernel/evidence-router.js +0 -1
  1119. package/dist/core/trust-kernel/route-contract.js +0 -1
  1120. package/dist/core/trust-kernel/route-state-machine.js +0 -1
  1121. package/dist/core/trust-kernel/trust-kernel-schema.js +0 -1
  1122. package/dist/core/trust-kernel/trust-report.js +0 -1
  1123. package/dist/core/trust-kernel/trust-status.js +0 -1
  1124. package/dist/core/ui/dashboard-html.js +0 -1
  1125. package/dist/core/update/semver.js +66 -0
  1126. package/dist/core/update/temporary-install-smoke.js +95 -0
  1127. package/dist/core/update/update-migration-state.js +136 -56
  1128. package/dist/core/update/update-notice.js +49 -132
  1129. package/dist/core/update/update-operation.js +220 -0
  1130. package/dist/core/update/update-status.js +299 -0
  1131. package/dist/core/update-check.js +569 -107
  1132. package/dist/core/usage/codex-account-usage.js +0 -1
  1133. package/dist/core/validators/completion-proof-validator.js +0 -1
  1134. package/dist/core/validators/evidence-validator.js +0 -1
  1135. package/dist/core/validators/feature-fixture-validator.js +0 -1
  1136. package/dist/core/validators/image-voxel-validator.js +0 -1
  1137. package/dist/core/validators/route-contract-validator.js +0 -1
  1138. package/dist/core/validators/trust-report-validator.js +0 -1
  1139. package/dist/core/validators/validation-error.js +0 -1
  1140. package/dist/core/verification/diff-quality.js +0 -1
  1141. package/dist/core/verification/impact-scan.js +0 -1
  1142. package/dist/core/verification/machine-feedback.js +0 -1
  1143. package/dist/core/verification/mistake-rule-compiler.js +0 -1
  1144. package/dist/core/verification/real-evidence-policy.js +0 -1
  1145. package/dist/core/verification/verification-artifact-lock.js +0 -1
  1146. package/dist/core/verification/verification-dag.js +0 -1
  1147. package/dist/core/verification/verification-proof.js +0 -1
  1148. package/dist/core/verification/verification-result.js +0 -1
  1149. package/dist/core/verification/verification-worker-pool.js +0 -1
  1150. package/dist/core/version-manager.js +0 -1
  1151. package/dist/core/version.js +1 -2
  1152. package/dist/core/wiki-coordinate.js +1 -2
  1153. package/dist/core/wiki-image/bbox.js +0 -1
  1154. package/dist/core/wiki-image/before-after-relation.js +0 -1
  1155. package/dist/core/wiki-image/callout-parser.js +0 -1
  1156. package/dist/core/wiki-image/computer-use-evidence.js +0 -1
  1157. package/dist/core/wiki-image/computer-use-ledger.js +0 -1
  1158. package/dist/core/wiki-image/generated-review-parser.js +0 -1
  1159. package/dist/core/wiki-image/image-hash.js +0 -1
  1160. package/dist/core/wiki-image/image-relation.js +0 -1
  1161. package/dist/core/wiki-image/image-ux-evidence.js +0 -1
  1162. package/dist/core/wiki-image/image-voxel-ledger.js +0 -1
  1163. package/dist/core/wiki-image/image-voxel-schema.js +0 -1
  1164. package/dist/core/wiki-image/ppt-image-evidence.js +0 -1
  1165. package/dist/core/wiki-image/proof-linker.js +0 -1
  1166. package/dist/core/wiki-image/route-image-evidence.js +0 -1
  1167. package/dist/core/wiki-image/validation.js +0 -1
  1168. package/dist/core/wiki-image/visual-anchor.js +0 -1
  1169. package/dist/core/work-order-ledger.js +32 -9
  1170. package/dist/core/zellij/homebrew-policy.js +0 -1
  1171. package/dist/core/zellij/zellij-capability.js +0 -1
  1172. package/dist/core/zellij/zellij-clipboard-config.js +0 -1
  1173. package/dist/core/zellij/zellij-command.js +0 -1
  1174. package/dist/core/zellij/zellij-dashboard-pane.js +0 -1
  1175. package/dist/core/zellij/zellij-dashboard-renderer.js +0 -1
  1176. package/dist/core/zellij/zellij-fake-adapter.js +0 -1
  1177. package/dist/core/zellij/zellij-lane-renderer.js +23 -24
  1178. package/dist/core/zellij/zellij-lane-runtime.js +0 -1
  1179. package/dist/core/zellij/zellij-launcher.js +15 -13
  1180. package/dist/core/zellij/zellij-layout-builder.js +3 -4
  1181. package/dist/core/zellij/zellij-monitor-renderer.js +0 -1
  1182. package/dist/core/zellij/zellij-naruto-dashboard.js +0 -1
  1183. package/dist/core/zellij/zellij-official-subagent-activity.js +0 -1
  1184. package/dist/core/zellij/zellij-official-subagent-telemetry.js +0 -1
  1185. package/dist/core/zellij/zellij-pane-proof.js +9 -2
  1186. package/dist/core/zellij/zellij-right-column-manager.js +0 -1
  1187. package/dist/core/zellij/zellij-screen-proof.js +0 -1
  1188. package/dist/core/zellij/zellij-self-heal-types.js +0 -1
  1189. package/dist/core/zellij/zellij-self-heal.js +0 -1
  1190. package/dist/core/zellij/zellij-slot-column-anchor.js +19 -20
  1191. package/dist/core/zellij/zellij-slot-pane-renderer.js +0 -1
  1192. package/dist/core/zellij/zellij-slot-telemetry.js +0 -1
  1193. package/dist/core/zellij/zellij-theme.js +0 -1
  1194. package/dist/core/zellij/zellij-ui-mode.js +0 -1
  1195. package/dist/core/zellij/zellij-update.js +14 -2
  1196. package/dist/core/zellij/zellij-viewport-binder.js +0 -1
  1197. package/dist/core/zellij/zellij-worker-pane-manager.js +3 -4
  1198. package/dist/core/zellij/zellij-worker-pane-summary.js +0 -1
  1199. package/dist/native/sks-menubar/Info.plist.template +24 -0
  1200. package/dist/native/sks-menubar/Resources/AppIcon.icns +0 -0
  1201. package/dist/native/sks-menubar/Resources/Localizable.strings +4 -0
  1202. package/dist/native/sks-menubar/Resources/SKSStatusAttentionTemplate.pdf +0 -0
  1203. package/dist/native/sks-menubar/Resources/SKSStatusTemplate.pdf +0 -0
  1204. package/dist/native/sks-menubar/Resources/SKSStatusUpdateTemplate.pdf +0 -0
  1205. package/dist/native/sks-menubar/Resources/SKSStatusWarningTemplate.pdf +0 -0
  1206. package/dist/native/sks-menubar/Sources/AlertFactory.swift +61 -0
  1207. package/dist/native/sks-menubar/Sources/AppDelegate.swift +47 -0
  1208. package/dist/native/sks-menubar/Sources/AppIdentity.swift +20 -0
  1209. package/dist/native/sks-menubar/Sources/ControlCenterWindowController.swift +108 -0
  1210. package/dist/native/sks-menubar/Sources/DiagnosticsViewController.swift +29 -0
  1211. package/dist/native/sks-menubar/Sources/MCPServersViewController.swift +418 -0
  1212. package/dist/native/sks-menubar/Sources/NotificationCoordinator.swift +119 -0
  1213. package/dist/native/sks-menubar/Sources/OperationCoordinator.swift +230 -0
  1214. package/dist/native/sks-menubar/Sources/OverviewViewController.swift +135 -0
  1215. package/dist/native/sks-menubar/Sources/ProcessClient.swift +110 -0
  1216. package/dist/native/sks-menubar/Sources/ProvidersViewController.swift +64 -0
  1217. package/dist/native/sks-menubar/Sources/RemoteTelegramViewController.swift +66 -0
  1218. package/dist/native/sks-menubar/Sources/SettingsViewController.swift +39 -0
  1219. package/dist/native/sks-menubar/Sources/SidebarItem.swift +11 -0
  1220. package/dist/native/sks-menubar/Sources/StatusItemController.swift +233 -0
  1221. package/dist/native/sks-menubar/Sources/UpdatesViewController.swift +237 -0
  1222. package/dist/native/sks-menubar/Sources/main.swift +18 -0
  1223. package/dist/scripts/agent-message-bus-reader-check.js +0 -1
  1224. package/dist/scripts/all-feature-deep-completion-check.js +0 -1
  1225. package/dist/scripts/appshots-thread-attachment-discovery-check.js +0 -1
  1226. package/dist/scripts/architecture-guard-check.js +31 -3
  1227. package/dist/scripts/build-dist.js +9 -2
  1228. package/dist/scripts/build-once-runner-check.js +0 -1
  1229. package/dist/scripts/canonical-test-runner.js +7 -2
  1230. package/dist/scripts/certificate-sla-check.js +0 -1
  1231. package/dist/scripts/changelog-check.js +0 -1
  1232. package/dist/scripts/check-architecture.js +209 -91
  1233. package/dist/scripts/check-cli-entrypoint.js +0 -1
  1234. package/dist/scripts/check-command-module-budget.js +0 -1
  1235. package/dist/scripts/check-feature-quality.js +0 -1
  1236. package/dist/scripts/check-legacy-free.js +0 -1
  1237. package/dist/scripts/check-pipeline-budget.js +0 -1
  1238. package/dist/scripts/check-pipeline-runtime.js +0 -1
  1239. package/dist/scripts/check-publish-tag.js +0 -1
  1240. package/dist/scripts/check-route-modularity.js +3 -4
  1241. package/dist/scripts/check-runtime-schemas.js +19 -2
  1242. package/dist/scripts/cli-output-consistency-check.js +0 -1
  1243. package/dist/scripts/codex-0-134-runner-truth-check.js +0 -1
  1244. package/dist/scripts/codex-0-137-compat-check.js +0 -1
  1245. package/dist/scripts/codex-0138-capability-artifact-check.js +0 -1
  1246. package/dist/scripts/codex-0138-capability-check.js +0 -1
  1247. package/dist/scripts/codex-0138-doctor-check.js +0 -1
  1248. package/dist/scripts/codex-0138-feature-probes-check.js +0 -1
  1249. package/dist/scripts/codex-0140-capability-check.js +0 -1
  1250. package/dist/scripts/codex-0140-feature-probes-check.js +0 -1
  1251. package/dist/scripts/codex-0144-app-server-v2-check.js +0 -1
  1252. package/dist/scripts/codex-0144-binary-identity-check.js +0 -1
  1253. package/dist/scripts/codex-0144-capability-check.js +0 -1
  1254. package/dist/scripts/codex-0144-core-real-probes-check.js +0 -1
  1255. package/dist/scripts/codex-0144-manifest-check.js +0 -1
  1256. package/dist/scripts/codex-0144-policy-check.js +0 -1
  1257. package/dist/scripts/codex-0144-thread-store-check.js +0 -1
  1258. package/dist/scripts/codex-agent-role-rich-content-check.js +0 -1
  1259. package/dist/scripts/codex-agent-role-sync-check.js +0 -1
  1260. package/dist/scripts/codex-agent-type-routing-check.js +0 -1
  1261. package/dist/scripts/codex-app-execution-profile-check.js +0 -1
  1262. package/dist/scripts/codex-app-fast-ui-preservation-check.js +0 -1
  1263. package/dist/scripts/codex-app-handoff-check.js +0 -1
  1264. package/dist/scripts/codex-app-handoff-launch-check.js +0 -1
  1265. package/dist/scripts/codex-config-load-probe.js +0 -1
  1266. package/dist/scripts/codex-control-all-pipelines-check.js +0 -4
  1267. package/dist/scripts/codex-control-event-stream-ledger-check.js +0 -1
  1268. package/dist/scripts/codex-control-tool-output-continuity-audit-check.js +0 -1
  1269. package/dist/scripts/codex-lb-fast-mode-truth-check.js +11 -2
  1270. package/dist/scripts/codex-lb-fast-ui-preservation-check.js +9 -3
  1271. package/dist/scripts/codex-lb-gpt56-fast-profile-check.js +14 -4
  1272. package/dist/scripts/codex-native-agent-role-content-check.js +13 -2
  1273. package/dist/scripts/codex-native-feature-broker-blackbox.js +3 -0
  1274. package/dist/scripts/codex-native-feature-broker-check.js +0 -1
  1275. package/dist/scripts/codex-native-harness-compat-check.js +0 -1
  1276. package/dist/scripts/codex-native-hook-lifecycle-proof-check.js +0 -1
  1277. package/dist/scripts/codex-native-runtime-e2e-fixture.js +0 -1
  1278. package/dist/scripts/codex-permission-profiles-check.js +0 -1
  1279. package/dist/scripts/codex-plugin-app-template-policy-check.js +0 -1
  1280. package/dist/scripts/codex-project-config-policy-splitter-check.js +0 -1
  1281. package/dist/scripts/codex-sdk-all-pipelines-check.js +0 -4
  1282. package/dist/scripts/codex-sdk-backend-router-check.js +13 -2
  1283. package/dist/scripts/codex-sdk-capability-check.js +0 -1
  1284. package/dist/scripts/codex-sdk-event-stream-ledger-check.js +0 -1
  1285. package/dist/scripts/codex-sdk-real-smoke-check.js +1 -2
  1286. package/dist/scripts/competitor-scorecard-check.js +0 -1
  1287. package/dist/scripts/concurrent-session-collision-check.js +0 -1
  1288. package/dist/scripts/context7-evidence-dedupe-check.js +0 -1
  1289. package/dist/scripts/core-skill-card-schema-check.js +0 -1
  1290. package/dist/scripts/core-skill-deployment-snapshot-check.js +0 -1
  1291. package/dist/scripts/core-skill-heldout-validation-check.js +0 -1
  1292. package/dist/scripts/core-skill-no-drift-check.js +2 -3
  1293. package/dist/scripts/core-skill-no-inference-optimizer-check.js +0 -1
  1294. package/dist/scripts/core-skill-patch-check.js +0 -1
  1295. package/dist/scripts/core-skill-route-runtime-integration-check.js +1 -2
  1296. package/dist/scripts/current-command-surface-check.js +76 -0
  1297. package/dist/scripts/current-surface-update-e2e-check.js +488 -0
  1298. package/dist/scripts/{legacy-upgrade-matrix-check.js → current-upgrade-matrix-check.js} +18 -69
  1299. package/dist/scripts/db-route-materialization-check.js +0 -1
  1300. package/dist/scripts/dfix-fixture-check.js +0 -1
  1301. package/dist/scripts/dfix-patch-handoff-check.js +0 -1
  1302. package/dist/scripts/dfix-verification-check.js +0 -1
  1303. package/dist/scripts/dfix-verification-recommendation-check.js +0 -1
  1304. package/dist/scripts/docs-truthfulness-check.js +52 -2
  1305. package/dist/scripts/doctor-codex-app-harness-check.js +0 -1
  1306. package/dist/scripts/doctor-context7-mcp-repair-blackbox.js +0 -1
  1307. package/dist/scripts/doctor-fastpath-check.js +0 -1
  1308. package/dist/scripts/doctor-fix-production-blackbox.js +0 -1
  1309. package/dist/scripts/doctor-fix-proves-codex-read-check.js +0 -1
  1310. package/dist/scripts/doctor-fixes-codex-app-fast-ui-check.js +0 -1
  1311. package/dist/scripts/doctor-idempotence-check.js +0 -1
  1312. package/dist/scripts/doctor-ops-semantics-check.js +0 -1
  1313. package/dist/scripts/doctor-startup-config-repair-blackbox.js +0 -1
  1314. package/dist/scripts/doctor-supabase-mcp-repair-blackbox.js +0 -1
  1315. package/dist/scripts/ensure-bin-executable.js +0 -1
  1316. package/dist/scripts/evidence-flagship-coverage-check.js +0 -1
  1317. package/dist/scripts/fast-codex-service-tier-proof-check.js +0 -1
  1318. package/dist/scripts/fixtures/fake-codex-config-loader.js +0 -1
  1319. package/dist/scripts/fsx-hotpath-check.js +0 -1
  1320. package/dist/scripts/gate-policy-audit-check.js +35 -8
  1321. package/dist/scripts/geo-claim-evidence-check.js +0 -1
  1322. package/dist/scripts/geo-cli-blackbox-check.js +17 -0
  1323. package/dist/scripts/geo-crawler-policy-check.js +0 -1
  1324. package/dist/scripts/git-worktree-checkpoint-check.js +0 -1
  1325. package/dist/scripts/git-worktree-cross-rebase-check.js +0 -1
  1326. package/dist/scripts/git-worktree-diff-envelope-check.js +0 -1
  1327. package/dist/scripts/git-worktree-dirty-lock-check.js +0 -1
  1328. package/dist/scripts/git-worktree-dirty-main-detection-check.js +0 -1
  1329. package/dist/scripts/git-worktree-integration-primary-check.js +0 -1
  1330. package/dist/scripts/git-worktree-manifest-append-check.js +0 -1
  1331. package/dist/scripts/git-worktree-untracked-diff-check.js +0 -1
  1332. package/dist/scripts/goal-artifact-compat-check.js +0 -1
  1333. package/dist/scripts/harness-benchmark-check.js +4 -5
  1334. package/dist/scripts/high-risk-contracts-check.js +0 -1
  1335. package/dist/scripts/hook-latency-budget-check.js +0 -1
  1336. package/dist/scripts/hook-latency-quantum-check.js +1 -2
  1337. package/dist/scripts/image-artifact-path-contract-check.js +0 -1
  1338. package/dist/scripts/imagegen-real-smoke-check.js +0 -1
  1339. package/dist/scripts/import-graph-budget-check.js +0 -1
  1340. package/dist/scripts/init-deep-backup-retention-check.js +0 -1
  1341. package/dist/scripts/installed-package-smoke-check.js +14 -3
  1342. package/dist/scripts/legacy-gate-inventory-check.js +0 -1
  1343. package/dist/scripts/legacy-gate-purge-check.js +36 -5
  1344. package/dist/scripts/legacy-strong-inventory-check.js +0 -1
  1345. package/dist/scripts/lib/codex-sdk-gate-lib.js +6 -3
  1346. package/dist/scripts/lib/ensure-dist-fresh.js +0 -1
  1347. package/dist/scripts/lib/git-worktree-fixture.js +0 -1
  1348. package/dist/scripts/lib/valid-png-fixture.js +0 -1
  1349. package/dist/scripts/local-collab-all-pipelines-final-gpt-check.js +1 -2
  1350. package/dist/scripts/loop-directive-check-lib.js +0 -1
  1351. package/dist/scripts/loop-integration-finalizer-check.js +2 -0
  1352. package/dist/scripts/loop-worker-fixture-child.js +0 -1
  1353. package/dist/scripts/mad-preflight-blocks-unreadable-config-check.js +0 -1
  1354. package/dist/scripts/mad-sks-app-ui-no-mutation-check.js +1 -5
  1355. package/dist/scripts/{mad-db-mad-command-check.js → mad-sks-launch-sql-plane-boundary-check.js} +13 -25
  1356. package/dist/scripts/mad-sks-sql-plane-capability-check.js +25 -0
  1357. package/dist/scripts/mad-sks-sql-plane-lifecycle-hook-decision-check.js +17 -0
  1358. package/dist/scripts/{mad-db-mcp-result-lifecycle-check.js → mad-sks-sql-plane-result-lifecycle-check.js} +11 -12
  1359. package/dist/scripts/managed-config-merge-check.js +0 -1
  1360. package/dist/scripts/mcp-plugin-inventory-check.js +0 -1
  1361. package/dist/scripts/mcp-tool-naming-parity-check.js +0 -1
  1362. package/dist/scripts/model-call-concurrency-check.js +0 -1
  1363. package/dist/scripts/mutation-callsite-coverage-check.js +0 -1
  1364. package/dist/scripts/naruto-codex-e2e-check.js +0 -1
  1365. package/dist/scripts/naruto-worktree-coding-blackbox.js +28 -0
  1366. package/dist/scripts/naruto-write-e2e-check.js +0 -1
  1367. package/dist/scripts/native-capability-postcheck-check.js +0 -1
  1368. package/dist/scripts/native-capability-repair-matrix-check.js +0 -1
  1369. package/dist/scripts/native-image-generation-repair-check.js +0 -1
  1370. package/dist/scripts/official-subagent-workflow-check.js +4 -4
  1371. package/dist/scripts/ops-diagnostics-bundle-check.js +0 -1
  1372. package/dist/scripts/package-published-contract-check.js +0 -1
  1373. package/dist/scripts/packlist-performance-check.js +34 -29
  1374. package/dist/scripts/parallel-production-smoke-check.js +0 -1
  1375. package/dist/scripts/perf-budget-check.js +0 -1
  1376. package/dist/scripts/pipeline-codex-native-doctor-mad-routing-check.js +0 -1
  1377. package/dist/scripts/pipeline-codex-native-doctor-mad-routing-real-blackbox.js +76 -0
  1378. package/dist/scripts/pipeline-codex-native-image-routing-check.js +0 -1
  1379. package/dist/scripts/pipeline-codex-native-image-routing-real-blackbox.js +49 -0
  1380. package/dist/scripts/pipeline-codex-native-loop-routing-check.js +0 -1
  1381. package/dist/scripts/pipeline-codex-native-loop-routing-real-blackbox.js +73 -0
  1382. package/dist/scripts/pipeline-codex-native-qa-routing-check.js +0 -1
  1383. package/dist/scripts/pipeline-codex-native-qa-routing-real-blackbox.js +50 -0
  1384. package/dist/scripts/pipeline-codex-native-research-routing-check.js +0 -1
  1385. package/dist/scripts/pipeline-codex-native-research-routing-real-blackbox.js +44 -0
  1386. package/dist/scripts/ppt-full-e2e-blackbox-check.js +147 -0
  1387. package/dist/scripts/ppt-real-export-adapter-check.js +0 -1
  1388. package/dist/scripts/ppt-real-imagegen-smoke-check.js +0 -1
  1389. package/dist/scripts/ppt-real-imagegen-wiring-check.js +0 -1
  1390. package/dist/scripts/ppt-reexport-rereview-check.js +0 -1
  1391. package/dist/scripts/prepublish-fast-check.js +0 -1
  1392. package/dist/scripts/prepublish-release-check-or-fast.js +25 -16
  1393. package/dist/scripts/probe-memoization-check.js +0 -1
  1394. package/dist/scripts/product-design-plugin-routing-check.js +0 -1
  1395. package/dist/scripts/project-skill-dedupe-blackbox.js +0 -1
  1396. package/dist/scripts/prompt-placeholder-guard-check.js +0 -1
  1397. package/dist/scripts/proof-root-cause-policy-check.js +0 -1
  1398. package/dist/scripts/provider-badge-context-check.js +2 -3
  1399. package/dist/scripts/python-codex-sdk-all-pipelines-check.js +9 -2
  1400. package/dist/scripts/qa-loop-app-handoff-capability-check.js +0 -1
  1401. package/dist/scripts/qa-loop-app-handoff-check.js +0 -1
  1402. package/dist/scripts/qa-loop-app-handoff-cli-check.js +0 -1
  1403. package/dist/scripts/qa-loop-app-handoff-confirmation-check.js +0 -1
  1404. package/dist/scripts/qa-loop-app-handoff-gate-lifecycle-check.js +0 -1
  1405. package/dist/scripts/qa-loop-app-handoff-launch-check.js +0 -1
  1406. package/dist/scripts/qa-loop-app-handoff-status-lifecycle-check.js +0 -1
  1407. package/dist/scripts/qa-loop-budget-policy-check.js +0 -1
  1408. package/dist/scripts/qa-loop-effort-escalation-check.js +0 -1
  1409. package/dist/scripts/qa-loop-execution-profile-routing-check.js +0 -1
  1410. package/dist/scripts/qa-loop-image-path-exposure-check.js +0 -1
  1411. package/dist/scripts/qa-loop-image-path-prompt-injection-check.js +0 -1
  1412. package/dist/scripts/release-affected-selector-check.js +1 -2
  1413. package/dist/scripts/release-aggressive-resource-governor-check.js +0 -1
  1414. package/dist/scripts/release-cache-glob-hashing-check.js +0 -1
  1415. package/dist/scripts/release-cache-input-classifier-check.js +0 -1
  1416. package/dist/scripts/release-cache-neutralization-report-check.js +0 -1
  1417. package/dist/scripts/release-cache-version-neutral-fixture-check.js +0 -1
  1418. package/dist/scripts/release-check-stamp.js +1 -2
  1419. package/dist/scripts/release-dag-full-coverage-check.js +0 -1
  1420. package/dist/scripts/release-dist-freshness-check.js +0 -1
  1421. package/dist/scripts/release-dynamic-presets-check.js +0 -1
  1422. package/dist/scripts/release-file-ownership-check.js +35 -0
  1423. package/dist/scripts/release-full-parallelism-blackbox.js +41 -0
  1424. package/dist/scripts/release-gate-batch-runner-check.js +0 -1
  1425. package/dist/scripts/release-gate-budget-check.js +0 -1
  1426. package/dist/scripts/release-gate-dag-runner-check.js +3 -2
  1427. package/dist/scripts/release-gate-dag-runner.js +0 -1
  1428. package/dist/scripts/release-gate-script-parity-check.js +8 -5
  1429. package/dist/scripts/release-latency-slo-check.js +23 -0
  1430. package/dist/scripts/release-macos-menubar-proof.js +167 -0
  1431. package/dist/scripts/release-main-push-guard.js +37 -0
  1432. package/dist/scripts/release-main-push-receipt.js +43 -0
  1433. package/dist/scripts/release-metadata-1-19-check.js +255 -0
  1434. package/dist/scripts/release-metadata-check.js +0 -1
  1435. package/dist/scripts/release-pack-receipt.js +144 -0
  1436. package/dist/scripts/release-parallel-speed-budget-check.js +0 -1
  1437. package/dist/scripts/release-proof-truth-check.js +0 -1
  1438. package/dist/scripts/release-provenance-check.js +0 -1
  1439. package/dist/scripts/release-real-check.js +1 -3
  1440. package/dist/scripts/release-runtime-truth-matrix-check.js +0 -1
  1441. package/dist/scripts/release-speed-summary.js +0 -1
  1442. package/dist/scripts/release-version-truth-check.js +0 -1
  1443. package/dist/scripts/research-blueprint-densifier-check.js +1 -2
  1444. package/dist/scripts/research-claim-builder-check.js +0 -1
  1445. package/dist/scripts/research-complete-package-fixture-check.js +0 -1
  1446. package/dist/scripts/research-execution-profile-routing-check.js +0 -1
  1447. package/dist/scripts/research-final-reviewer-blackbox.js +69 -0
  1448. package/dist/scripts/responses-retry-policy-centralized-check.js +0 -1
  1449. package/dist/scripts/retention-apply-smoke-check.js +0 -1
  1450. package/dist/scripts/retention-budget-check.js +0 -1
  1451. package/dist/scripts/retention-dry-run-check.js +0 -1
  1452. package/dist/scripts/rollback-recovery-smoke-check.js +0 -1
  1453. package/dist/scripts/route-intent-regression-check.js +0 -1
  1454. package/dist/scripts/{runtime-no-tmux-check.js → runtime-current-terminal-check.js} +6 -11
  1455. package/dist/scripts/runtime-dist-parity-check.js +0 -1
  1456. package/dist/scripts/runtime-no-src-mjs-check.js +0 -1
  1457. package/dist/scripts/runtime-proof-summary-check.js +1 -2
  1458. package/dist/scripts/runtime-script-pack-closure-check.js +89 -0
  1459. package/dist/scripts/runtime-ts-rust-boundary-check.js +1 -2
  1460. package/dist/scripts/runtime-ts-source-of-truth-check.js +0 -1
  1461. package/dist/scripts/scheduler-batch-dispatch-check.js +0 -1
  1462. package/dist/scripts/scheduler-parallel-proof-consistency-check.js +0 -1
  1463. package/dist/scripts/scheduler-utilization-integral-check.js +0 -1
  1464. package/dist/scripts/search-visibility-gate-lib.js +0 -1
  1465. package/dist/scripts/secret-preservation-check.js +0 -1
  1466. package/dist/scripts/secret-preservation-guard-check.js +0 -1
  1467. package/dist/scripts/seo-audit-fixture-check.js +1 -2
  1468. package/dist/scripts/seo-cli-blackbox-check.js +17 -0
  1469. package/dist/scripts/seo-geo-geo-disambiguation-check.js +0 -1
  1470. package/dist/scripts/seo-geo-route-identity-check.js +0 -1
  1471. package/dist/scripts/seo-geo-skill-rich-content-check.js +2 -3
  1472. package/dist/scripts/seo-marketing-truthfulness-check.js +0 -1
  1473. package/dist/scripts/seo-metadata-sync-check.js +1 -2
  1474. package/dist/scripts/seo-no-mutation-by-default-check.js +0 -1
  1475. package/dist/scripts/shared-memory-fixture-check.js +0 -1
  1476. package/dist/scripts/side-effect-runtime-report-check.js +0 -1
  1477. package/dist/scripts/sizecheck.js +0 -5
  1478. package/dist/scripts/skill-name-canonicalizer-check.js +0 -1
  1479. package/dist/scripts/skills-manifest-continuity-check.js +5 -5
  1480. package/dist/scripts/sks-1-11-gate-lib.js +0 -1
  1481. package/dist/scripts/sks-1-12-real-execution-check-lib.js +0 -1
  1482. package/dist/scripts/sks-1-18-gate-lib.js +0 -1
  1483. package/dist/scripts/sks-3-1-4-directive-check-lib.js +0 -1
  1484. package/dist/scripts/sks-3-1-5-directive-check-lib.js +1 -2
  1485. package/dist/scripts/sks-3-1-6-directive-check-lib.js +1 -2
  1486. package/dist/scripts/sks-3-1-8-check-lib.js +0 -1
  1487. package/dist/scripts/sks-menubar-install-check.js +306 -301
  1488. package/dist/scripts/sks-uninstall-regression-check.js +0 -1
  1489. package/dist/scripts/sksd-daemon-check.js +0 -1
  1490. package/dist/scripts/supabase-secret-preservation-blackbox.js +0 -1
  1491. package/dist/scripts/super-search-live-smoke-check.js +0 -1
  1492. package/dist/scripts/super-search-local-http-smoke-check.js +0 -1
  1493. package/dist/scripts/super-search-offline-contract-check.js +0 -1
  1494. package/dist/scripts/super-search-provider-interface-check.js +31 -19
  1495. package/dist/scripts/triwiki-cache-key-check.js +0 -1
  1496. package/dist/scripts/triwiki-proof-bank-blackbox.js +29 -0
  1497. package/dist/scripts/triwiki-proof-bank-check.js +0 -1
  1498. package/dist/scripts/triwiki-proof-card-check.js +0 -1
  1499. package/dist/scripts/trust-fixture-check.js +0 -1
  1500. package/dist/scripts/type-surface-codex-app-check.js +0 -1
  1501. package/dist/scripts/ultra-router-auto-router-check.js +1 -2
  1502. package/dist/scripts/uninstall-inventory-check.js +2 -0
  1503. package/dist/scripts/update-fastpath-check.js +0 -1
  1504. package/dist/scripts/update-preserves-supabase-keys-blackbox.js +0 -1
  1505. package/dist/scripts/upgrade-migration-matrix-check.js +0 -1
  1506. package/dist/scripts/ux-review-extract-wires-real-extractor-check.js +0 -1
  1507. package/dist/scripts/ux-review-imagegen-blackbox-check.js +71 -0
  1508. package/dist/scripts/ux-review-patch-diff-recheck-check.js +0 -1
  1509. package/dist/scripts/ux-review-real-imagegen-smoke-check.js +0 -1
  1510. package/dist/scripts/ux-review-run-wires-imagegen-check.js +0 -1
  1511. package/dist/scripts/write-build-manifest.js +0 -1
  1512. package/dist/scripts/wrongness-fixture-check.js +1 -2
  1513. package/dist/scripts/zellij-capability-check.js +0 -1
  1514. package/dist/scripts/zellij-dashboard-pane-check.js +0 -1
  1515. package/dist/scripts/zellij-dashboard-watch.js +0 -1
  1516. package/dist/scripts/zellij-developer-controls-check.js +2 -3
  1517. package/dist/scripts/zellij-doctor-readiness-check.js +3 -4
  1518. package/dist/scripts/zellij-dynamic-pane-lifecycle-check.js +2 -3
  1519. package/dist/scripts/zellij-fake-adapter-check.js +0 -1
  1520. package/dist/scripts/zellij-first-slot-down-stack-check.js +0 -1
  1521. package/dist/scripts/zellij-first-slot-down-stack-real-check.js +0 -1
  1522. package/dist/scripts/zellij-homebrew-policy-check.js +0 -1
  1523. package/dist/scripts/zellij-initial-main-only-blackbox.js +27 -0
  1524. package/dist/scripts/zellij-lane-renderer-check.js +2 -3
  1525. package/dist/scripts/zellij-launch-command-truth-check.js +0 -1
  1526. package/dist/scripts/zellij-layout-valid-check.js +1 -2
  1527. package/dist/scripts/zellij-pane-creation-lock-metrics-check.js +0 -1
  1528. package/dist/scripts/zellij-pane-lock-concurrency-blackbox.js +79 -0
  1529. package/dist/scripts/zellij-pane-lock-does-not-block-worker-check.js +4 -5
  1530. package/dist/scripts/zellij-pane-lock-open-worker-integration-blackbox.js +136 -0
  1531. package/dist/scripts/zellij-pane-proof-check.js +0 -1
  1532. package/dist/scripts/zellij-qa-app-handoff-status-check.js +0 -1
  1533. package/dist/scripts/zellij-real-session-cleanup-check.js +0 -1
  1534. package/dist/scripts/zellij-real-session-launch-check.js +0 -1
  1535. package/dist/scripts/zellij-right-column-geometry-proof.js +0 -1
  1536. package/dist/scripts/zellij-right-column-headless-overflow-check.js +3 -4
  1537. package/dist/scripts/zellij-right-column-manager-check.js +0 -1
  1538. package/dist/scripts/zellij-screen-proof-check.js +0 -1
  1539. package/dist/scripts/zellij-self-heal-check.js +0 -1
  1540. package/dist/scripts/zellij-self-heal-dry-run-check.js +0 -1
  1541. package/dist/scripts/zellij-self-heal-status-contract-check.js +0 -1
  1542. package/dist/scripts/zellij-self-heal-typed-blackbox.js +3 -0
  1543. package/dist/scripts/zellij-slot-column-anchor-check.js +0 -1
  1544. package/dist/scripts/zellij-slot-column-anchor-telemetry-check.js +1 -2
  1545. package/dist/scripts/zellij-slot-only-ui-check.js +4 -5
  1546. package/dist/scripts/zellij-slot-pane-renderer-check.js +0 -1
  1547. package/dist/scripts/zellij-slot-pane-stale-detection-check.js +0 -1
  1548. package/dist/scripts/zellij-slot-pane-telemetry-renderer-check.js +0 -1
  1549. package/dist/scripts/zellij-slot-renderer-proof-semantics-check.js +5 -6
  1550. package/dist/scripts/zellij-slot-telemetry-check.js +0 -1
  1551. package/dist/scripts/zellij-slot-telemetry-incremental-check.js +0 -1
  1552. package/dist/scripts/zellij-slot-telemetry-live-flush-check.js +0 -1
  1553. package/dist/scripts/zellij-slot-telemetry-performance-check.js +0 -1
  1554. package/dist/scripts/zellij-slot-telemetry-real-blackbox.js +19 -0
  1555. package/dist/scripts/zellij-slot-telemetry-renderer-check.js +1 -2
  1556. package/dist/scripts/zellij-slot-telemetry-runtime-check.js +3 -4
  1557. package/dist/scripts/zellij-spawn-on-demand-layout-check.js +1 -2
  1558. package/dist/scripts/zellij-stacked-capability-routing-check.js +0 -1
  1559. package/dist/scripts/zellij-stacked-fallback-integration-blackbox.js +80 -0
  1560. package/dist/scripts/zellij-stacked-version-matrix-check.js +0 -1
  1561. package/dist/scripts/zellij-stacked-version-parser-check.js +0 -1
  1562. package/dist/scripts/zellij-ui-design-check.js +2 -3
  1563. package/dist/scripts/zellij-update-missing-self-heal-check.js +0 -1
  1564. package/dist/scripts/zellij-update-prompt-matrix-check.js +0 -1
  1565. package/dist/scripts/zellij-update-prompt-mode-check.js +0 -1
  1566. package/dist/scripts/zellij-update-prompt-safety-check.js +0 -1
  1567. package/dist/scripts/zellij-worker-pane-manager-check.js +1 -2
  1568. package/dist/scripts/zellij-worker-pane-manager-single-owner-check.js +5 -5
  1569. package/dist/scripts/zellij-worker-pane-real-ui-blackbox.js +201 -0
  1570. package/infra-harness-gates.json +6 -6
  1571. package/package.json +25 -43
  1572. package/release-gates.v2.json +146 -60
  1573. package/runtime-required-scripts.json +38 -0
  1574. package/schemas/codex/agent-result.schema.json +473 -191
  1575. package/schemas/{mad-db/mad-db-capability.schema.json → mad-sks/sql-plane/capability.schema.json} +3 -3
  1576. package/schemas/{mad-db/mad-db-ledger.schema.json → mad-sks/sql-plane/ledger.schema.json} +2 -2
  1577. package/schemas/naruto/naruto-concurrency-governor.schema.json +2 -2
  1578. package/schemas/naruto/naruto-work-graph.schema.json +2 -2
  1579. package/dist/cli/xai-command.js +0 -35
  1580. package/dist/commands/mad-db.js +0 -5
  1581. package/dist/commands/team.js +0 -3
  1582. package/dist/commands/tmux.js +0 -25
  1583. package/dist/core/agents/agent-cleanup-executor.js +0 -733
  1584. package/dist/core/agents/agent-command-surface.js +0 -108
  1585. package/dist/core/agents/agent-gate.js +0 -70
  1586. package/dist/core/agents/agent-ledger-schemas.js +0 -194
  1587. package/dist/core/agents/codex-exec-worker-adapter.js +0 -147
  1588. package/dist/core/commands/agent-command.js +0 -250
  1589. package/dist/core/commands/mad-db-command.js +0 -110
  1590. package/dist/core/commands/team-command.js +0 -94
  1591. package/dist/core/commands/team-legacy-observe-command.js +0 -135
  1592. package/dist/core/evidence/flagship-proof-graph-validator.js +0 -320
  1593. package/dist/core/hooks-runtime/team-digest.js +0 -85
  1594. package/dist/core/mad-db/mad-db-capability.js +0 -253
  1595. package/dist/core/mad-db/mad-db-ledger.js +0 -37
  1596. package/dist/core/mad-db/mad-db-policy-resolver.js +0 -128
  1597. package/dist/core/pipeline/route-prep-team.js +0 -2
  1598. package/dist/core/team-dag.js +0 -58
  1599. package/dist/core/team-dashboard-renderer.js +0 -23
  1600. package/dist/core/team-live.js +0 -167
  1601. package/dist/core/team-review-policy.js +0 -62
  1602. package/dist/scripts/agent-ast-aware-work-graph-check.js +0 -25
  1603. package/dist/scripts/agent-backfill-replenishment-check.js +0 -13
  1604. package/dist/scripts/agent-background-terminals-check.js +0 -16
  1605. package/dist/scripts/agent-cleanup-command-ux-check.js +0 -12
  1606. package/dist/scripts/agent-cleanup-executor-check.js +0 -53
  1607. package/dist/scripts/agent-cleanup-executor-v2-check.js +0 -39
  1608. package/dist/scripts/agent-cli-options-to-task-graph-check.js +0 -5
  1609. package/dist/scripts/agent-codex-app-cockpit-check.js +0 -91
  1610. package/dist/scripts/agent-dynamic-cockpit-check.js +0 -10
  1611. package/dist/scripts/agent-dynamic-pool-check.js +0 -13
  1612. package/dist/scripts/agent-dynamic-pool-fixture.js +0 -80
  1613. package/dist/scripts/agent-fast-mode-default-check.js +0 -107
  1614. package/dist/scripts/agent-fast-mode-worker-propagation-check.js +0 -7
  1615. package/dist/scripts/agent-follow-up-work-schema-check.js +0 -80
  1616. package/dist/scripts/agent-goal-mode-propagation-check.js +0 -9
  1617. package/dist/scripts/agent-intelligent-work-graph-check.js +0 -29
  1618. package/dist/scripts/agent-janitor-check.js +0 -79
  1619. package/dist/scripts/agent-main-no-scout-check.js +0 -11
  1620. package/dist/scripts/agent-multi-project-isolation-check.js +0 -86
  1621. package/dist/scripts/agent-native-cli-session-swarm-10-check.js +0 -7
  1622. package/dist/scripts/agent-native-cli-session-swarm-20-check.js +0 -7
  1623. package/dist/scripts/agent-native-cli-session-swarm-check.js +0 -7
  1624. package/dist/scripts/agent-official-subagent-helper-policy-check.js +0 -71
  1625. package/dist/scripts/agent-parallel-write-kernel-check.js +0 -103
  1626. package/dist/scripts/agent-patch-conflict-rebase-check.js +0 -198
  1627. package/dist/scripts/agent-patch-envelope-extraction-check.js +0 -17
  1628. package/dist/scripts/agent-patch-proof-check.js +0 -41
  1629. package/dist/scripts/agent-patch-proof-runtime-check.js +0 -63
  1630. package/dist/scripts/agent-patch-queue-runtime-check.js +0 -36
  1631. package/dist/scripts/agent-patch-rollback-check.js +0 -38
  1632. package/dist/scripts/agent-patch-rollback-dag-check.js +0 -14
  1633. package/dist/scripts/agent-patch-swarm-gate-lib.js +0 -113
  1634. package/dist/scripts/agent-patch-swarm-runtime-check.js +0 -10
  1635. package/dist/scripts/agent-patch-swarm-runtime-truth-check.js +0 -76
  1636. package/dist/scripts/agent-patch-transaction-journal-check.js +0 -57
  1637. package/dist/scripts/agent-patch-verification-dag-check.js +0 -14
  1638. package/dist/scripts/agent-proof-contract-reconciled-check.js +0 -5
  1639. package/dist/scripts/agent-real-codex-dynamic-smoke-check.js +0 -166
  1640. package/dist/scripts/agent-real-codex-dynamic-smoke-v2-check.js +0 -14
  1641. package/dist/scripts/agent-real-codex-in-zellij-worker-pane-check.js +0 -227
  1642. package/dist/scripts/agent-real-codex-parallel-workers-10-check.js +0 -5
  1643. package/dist/scripts/agent-real-codex-parallel-workers-20-check.js +0 -5
  1644. package/dist/scripts/agent-real-codex-parallel-workers-5-check.js +0 -5
  1645. package/dist/scripts/agent-real-codex-parallel-workers-check.js +0 -5
  1646. package/dist/scripts/agent-real-codex-patch-envelope-smoke.js +0 -126
  1647. package/dist/scripts/agent-role-config-repair-check.js +0 -60
  1648. package/dist/scripts/agent-rollback-command-check.js +0 -86
  1649. package/dist/scripts/agent-route-truth-backfill-check.js +0 -5
  1650. package/dist/scripts/agent-scheduler-proof-check.js +0 -13
  1651. package/dist/scripts/agent-scheduler-proof-hardening-check.js +0 -22
  1652. package/dist/scripts/agent-session-generation-check.js +0 -21
  1653. package/dist/scripts/agent-slot-pane-binding-proof-check.js +0 -64
  1654. package/dist/scripts/agent-slot-telemetry-wiring-check.js +0 -11
  1655. package/dist/scripts/agent-source-intelligence-propagation-check.js +0 -9
  1656. package/dist/scripts/agent-strategy-to-lease-wiring-check.js +0 -32
  1657. package/dist/scripts/agent-strategy-to-patch-strict-check.js +0 -54
  1658. package/dist/scripts/agent-task-graph-expansion-check.js +0 -14
  1659. package/dist/scripts/agent-terminal-generations-check.js +0 -23
  1660. package/dist/scripts/agent-visual-consistency-check.js +0 -9
  1661. package/dist/scripts/agent-wiki-context-proof-check.js +0 -76
  1662. package/dist/scripts/agent-worker-backend-router-check.js +0 -63
  1663. package/dist/scripts/agent-worker-scout-limited-check.js +0 -17
  1664. package/dist/scripts/agent-zellij-dynamic-backfill-panes-check.js +0 -34
  1665. package/dist/scripts/agent-zellij-runtime-check.js +0 -85
  1666. package/dist/scripts/appshots-capability-check.js +0 -18
  1667. package/dist/scripts/appshots-evidence-check.js +0 -48
  1668. package/dist/scripts/appshots-operator-policy-check.js +0 -25
  1669. package/dist/scripts/appshots-privacy-safety-check.js +0 -48
  1670. package/dist/scripts/appshots-source-intelligence-check.js +0 -53
  1671. package/dist/scripts/appshots-triwiki-voxel-check.js +0 -46
  1672. package/dist/scripts/brand-neutrality-generated-artifacts-check.js +0 -161
  1673. package/dist/scripts/brand-neutrality-zero-leakage-check.js +0 -4
  1674. package/dist/scripts/check-dist-runtime.js +0 -101
  1675. package/dist/scripts/check-package-boundary.js +0 -108
  1676. package/dist/scripts/check-ts-contracts.js +0 -69
  1677. package/dist/scripts/check-ts-suppressions.js +0 -58
  1678. package/dist/scripts/clean-dist.js +0 -8
  1679. package/dist/scripts/cli-five-minute-task-check.js +0 -6
  1680. package/dist/scripts/codex-0-133-official-compat-report.js +0 -53
  1681. package/dist/scripts/codex-0-135-compat-check.js +0 -57
  1682. package/dist/scripts/codex-0-136-compat-check.js +0 -30
  1683. package/dist/scripts/codex-0139-capability-check.js +0 -26
  1684. package/dist/scripts/codex-0139-code-mode-web-search-real-check.js +0 -10
  1685. package/dist/scripts/codex-0139-doctor-env-real-check.js +0 -10
  1686. package/dist/scripts/codex-0139-doctor-env-redaction-check.js +0 -18
  1687. package/dist/scripts/codex-0139-feature-probes-check.js +0 -30
  1688. package/dist/scripts/codex-0139-image-path-real-check.js +0 -10
  1689. package/dist/scripts/codex-0139-interrupt-agent-check.js +0 -18
  1690. package/dist/scripts/codex-0139-interrupt-agent-real-check.js +0 -8
  1691. package/dist/scripts/codex-0139-marketplace-source-check.js +0 -13
  1692. package/dist/scripts/codex-0139-plugin-cache-real-check.js +0 -10
  1693. package/dist/scripts/codex-0139-plugin-marketplace-real-check.js +0 -10
  1694. package/dist/scripts/codex-0139-real-probe-summary-check.js +0 -14
  1695. package/dist/scripts/codex-0139-rich-tool-schema-check.js +0 -12
  1696. package/dist/scripts/codex-0139-rich-tool-schema-real-check.js +0 -10
  1697. package/dist/scripts/codex-0139-sandbox-profile-alias-check.js +0 -13
  1698. package/dist/scripts/codex-0139-sandbox-profile-alias-real-check.js +0 -10
  1699. package/dist/scripts/codex-0139-sandbox-proxy-real-check.js +0 -10
  1700. package/dist/scripts/codex-0140-bedrock-managed-auth-check.js +0 -4
  1701. package/dist/scripts/codex-0140-deep-probes-check.js +0 -40
  1702. package/dist/scripts/codex-0140-feature-gate-lib.js +0 -14
  1703. package/dist/scripts/codex-0140-goal-attachment-preservation-check.js +0 -8
  1704. package/dist/scripts/codex-0140-goal-attachment-roundtrip-check.js +0 -9
  1705. package/dist/scripts/codex-0140-import-check.js +0 -4
  1706. package/dist/scripts/codex-0140-large-repo-performance-check.js +0 -4
  1707. package/dist/scripts/codex-0140-mcp-reliability-check.js +0 -4
  1708. package/dist/scripts/codex-0140-non-tty-interrupt-check.js +0 -4
  1709. package/dist/scripts/codex-0140-real-probes-check.js +0 -9
  1710. package/dist/scripts/codex-0140-session-delete-check.js +0 -4
  1711. package/dist/scripts/codex-0140-sqlite-recovery-check.js +0 -4
  1712. package/dist/scripts/codex-0140-unified-mentions-check.js +0 -4
  1713. package/dist/scripts/codex-0140-usage-check.js +0 -4
  1714. package/dist/scripts/codex-0140-usage-real-parser-check.js +0 -17
  1715. package/dist/scripts/codex-0141-capability-check.js +0 -17
  1716. package/dist/scripts/codex-0144-doctor-wiring-check.js +0 -21
  1717. package/dist/scripts/codex-account-usage-autodiscovery-check.js +0 -22
  1718. package/dist/scripts/codex-account-usage-check.js +0 -9
  1719. package/dist/scripts/codex-app-harness-matrix-check.js +0 -4
  1720. package/dist/scripts/codex-app-launcher-check.js +0 -17
  1721. package/dist/scripts/codex-app-provider-badge-check.js +0 -37
  1722. package/dist/scripts/codex-app-provider-model-ui-check.js +0 -163
  1723. package/dist/scripts/codex-app-type-safety-check.js +0 -4
  1724. package/dist/scripts/codex-app-ui-clobber-guard-check.js +0 -22
  1725. package/dist/scripts/codex-app-ui-preservation-check.js +0 -137
  1726. package/dist/scripts/codex-config-eperm-fixture.js +0 -32
  1727. package/dist/scripts/codex-control-capability-check.js +0 -10
  1728. package/dist/scripts/codex-control-empty-result-retry-check.js +0 -43
  1729. package/dist/scripts/codex-control-keepalive-no-cot-leak-check.js +0 -14
  1730. package/dist/scripts/codex-control-model-capacity-fallback-check.js +0 -53
  1731. package/dist/scripts/codex-control-no-legacy-fallback-check.js +0 -31
  1732. package/dist/scripts/codex-control-side-effect-scope-check.js +0 -26
  1733. package/dist/scripts/codex-control-stream-idle-watchdog-check.js +0 -34
  1734. package/dist/scripts/codex-control-structured-output-check.js +0 -11
  1735. package/dist/scripts/codex-control-thread-registry-check.js +0 -11
  1736. package/dist/scripts/codex-effort-auto-discovery-check.js +0 -17
  1737. package/dist/scripts/codex-effort-order-check.js +0 -9
  1738. package/dist/scripts/codex-environment-scoped-approvals-check.js +0 -10
  1739. package/dist/scripts/codex-exec-output-schema-actual-syntax-check.js +0 -33
  1740. package/dist/scripts/codex-fast-mode-profile-propagation-check.js +0 -14
  1741. package/dist/scripts/codex-history-search-check.js +0 -19
  1742. package/dist/scripts/codex-hook-approval-matrix-check.js +0 -4
  1743. package/dist/scripts/codex-hook-approval-probe-check.js +0 -4
  1744. package/dist/scripts/codex-hook-lifecycle-check.js +0 -4
  1745. package/dist/scripts/codex-hook-semantic-check.js +0 -15
  1746. package/dist/scripts/codex-hook-strict-subset-check.js +0 -61
  1747. package/dist/scripts/codex-init-deep-check.js +0 -4
  1748. package/dist/scripts/codex-init-deep-managed-agents-check.js +0 -4
  1749. package/dist/scripts/codex-lb-config-toml-safety-check.js +0 -85
  1750. package/dist/scripts/codex-lb-missing-env-regression.js +0 -39
  1751. package/dist/scripts/codex-lb-persistence-truth-check.js +0 -96
  1752. package/dist/scripts/codex-lb-setup-fixture-check.js +0 -91
  1753. package/dist/scripts/codex-lb-setup-truthfulness-check.js +0 -89
  1754. package/dist/scripts/codex-legacy-profile-consumers-removed-check.js +0 -24
  1755. package/dist/scripts/codex-managed-proxy-env-check.js +0 -17
  1756. package/dist/scripts/codex-model-metadata-check.js +0 -10
  1757. package/dist/scripts/codex-native-broker-read-only-check.js +0 -44
  1758. package/dist/scripts/codex-native-invocation-defaults-check.js +0 -4
  1759. package/dist/scripts/codex-native-invocation-router-check.js +0 -4
  1760. package/dist/scripts/codex-native-pattern-analysis-check.js +0 -4
  1761. package/dist/scripts/codex-native-reference-cache-check.js +0 -30
  1762. package/dist/scripts/codex-native-reference-evidence-check.js +0 -4
  1763. package/dist/scripts/codex-native-repair-transaction-check.js +0 -47
  1764. package/dist/scripts/codex-native-route-map-check.js +0 -4
  1765. package/dist/scripts/codex-native-skill-content-check.js +0 -24
  1766. package/dist/scripts/codex-output-schema-fixture-check.js +0 -25
  1767. package/dist/scripts/codex-plugin-cache-check.js +0 -15
  1768. package/dist/scripts/codex-plugin-diff-check.js +0 -16
  1769. package/dist/scripts/codex-plugin-inventory-check.js +0 -15
  1770. package/dist/scripts/codex-plugin-json-check.js +0 -10
  1771. package/dist/scripts/codex-plugin-list-json-check.js +0 -8
  1772. package/dist/scripts/codex-plugin-parallel-detail-fetch-check.js +0 -12
  1773. package/dist/scripts/codex-profile-primary-check.js +0 -13
  1774. package/dist/scripts/codex-project-config-policy-merge-regression.js +0 -92
  1775. package/dist/scripts/codex-resume-cwd-truth-check.js +0 -17
  1776. package/dist/scripts/codex-sdk-no-legacy-fallback-check.js +0 -33
  1777. package/dist/scripts/codex-sdk-qa-pipeline-check.js +0 -8
  1778. package/dist/scripts/codex-sdk-release-review-pipeline-check.js +0 -13
  1779. package/dist/scripts/codex-sdk-research-pipeline-check.js +0 -69
  1780. package/dist/scripts/codex-sdk-sandbox-policy-check.js +0 -25
  1781. package/dist/scripts/codex-sdk-structured-output-check.js +0 -10
  1782. package/dist/scripts/codex-sdk-team-naruto-agent-pipeline-check.js +0 -12
  1783. package/dist/scripts/codex-sdk-thread-registry-check.js +0 -11
  1784. package/dist/scripts/codex-sdk-ux-ppt-review-pipeline-check.js +0 -9
  1785. package/dist/scripts/codex-sdk-version-compat-check.js +0 -11
  1786. package/dist/scripts/codex-sdk-zellij-pane-binding-check.js +0 -13
  1787. package/dist/scripts/codex-skill-rich-content-check.js +0 -4
  1788. package/dist/scripts/codex-skill-sync-check.js +0 -4
  1789. package/dist/scripts/codex-thread-runtime-choice-check.js +0 -10
  1790. package/dist/scripts/codex-web-adapter-check.js +0 -12
  1791. package/dist/scripts/coding-bench-check.js +0 -142
  1792. package/dist/scripts/computer-use-live-evidence-check.js +0 -55
  1793. package/dist/scripts/computer-use-live-optional-check.js +0 -32
  1794. package/dist/scripts/computer-use-policy-check.js +0 -69
  1795. package/dist/scripts/computer-use-visual-route-fixture-check.js +0 -37
  1796. package/dist/scripts/core-skill-immutable-sync-check.js +0 -19
  1797. package/dist/scripts/core-skill-manifest-check.js +0 -20
  1798. package/dist/scripts/core-skill-promotion-side-effect-ledger-check.js +0 -64
  1799. package/dist/scripts/core-skill-rollout-scoring-check.js +0 -72
  1800. package/dist/scripts/core-skill-trainer-check.js +0 -116
  1801. package/dist/scripts/dfix-fast-kernel-check.js +0 -26
  1802. package/dist/scripts/dfix-performance-check.js +0 -15
  1803. package/dist/scripts/docs-codex-0139-wording-check.js +0 -21
  1804. package/dist/scripts/docs-loop-productionization-check.js +0 -3
  1805. package/dist/scripts/docs-loop-runtime-check.js +0 -3
  1806. package/dist/scripts/doctor-codex-startup-repair-check.js +0 -146
  1807. package/dist/scripts/doctor-context7-mcp-repair-check.js +0 -11
  1808. package/dist/scripts/doctor-context7-repair-check.js +0 -48
  1809. package/dist/scripts/doctor-dirty-plan-check.js +0 -9
  1810. package/dist/scripts/doctor-dirty-repair-check.js +0 -8
  1811. package/dist/scripts/doctor-dirty-semantic-check.js +0 -7
  1812. package/dist/scripts/doctor-fix-recovers-corrupted-config-check.js +0 -122
  1813. package/dist/scripts/doctor-imagegen-repair-check.js +0 -77
  1814. package/dist/scripts/doctor-native-capability-repair-check.js +0 -10
  1815. package/dist/scripts/doctor-native-repair-output-check.js +0 -18
  1816. package/dist/scripts/doctor-plain-fix-native-assets-check.js +0 -12
  1817. package/dist/scripts/doctor-post-repair-authoritative-check.js +0 -39
  1818. package/dist/scripts/doctor-startup-config-repair-check.js +0 -20
  1819. package/dist/scripts/doctor-supabase-mcp-repair-check.js +0 -12
  1820. package/dist/scripts/doctor-transaction-engine-check.js +0 -32
  1821. package/dist/scripts/doctor-transaction-owns-mutations-check.js +0 -14
  1822. package/dist/scripts/doctor-warning-only-not-blocker-check.js +0 -56
  1823. package/dist/scripts/doctor-zellij-fix-output-check.js +0 -4
  1824. package/dist/scripts/doctor-zellij-repair-check.js +0 -4
  1825. package/dist/scripts/evidence-fixture-check.js +0 -26
  1826. package/dist/scripts/fake-real-proof-policy-v2-check.js +0 -27
  1827. package/dist/scripts/fake-vs-real-proof-policy-check.js +0 -14
  1828. package/dist/scripts/flagship-proof-graph-v2-check.js +0 -48
  1829. package/dist/scripts/flagship-proof-graph-v3-check.js +0 -67
  1830. package/dist/scripts/flagship-proof-graph-v4-check.js +0 -61
  1831. package/dist/scripts/gate-pack-fixture-cache-check.js +0 -9
  1832. package/dist/scripts/gate-pack-runner-check.js +0 -6
  1833. package/dist/scripts/geo-llms-txt-optional-check.js +0 -19
  1834. package/dist/scripts/git-precommit-fixture-check.js +0 -41
  1835. package/dist/scripts/git-worktree-cache-performance-check.js +0 -25
  1836. package/dist/scripts/git-worktree-capability-check.js +0 -27
  1837. package/dist/scripts/git-worktree-cleanup-check.js +0 -27
  1838. package/dist/scripts/git-worktree-diff-export-check.js +0 -43
  1839. package/dist/scripts/git-worktree-integration-primary-runtime-check.js +0 -20
  1840. package/dist/scripts/git-worktree-manager-check.js +0 -37
  1841. package/dist/scripts/git-worktree-merge-queue-check.js +0 -31
  1842. package/dist/scripts/git-worktree-pool-performance-check.js +0 -20
  1843. package/dist/scripts/git-worktree-prewarm-runtime-check.js +0 -7
  1844. package/dist/scripts/goal-legacy-runtime-escape-check.js +0 -3
  1845. package/dist/scripts/goal-loop-compat-check.js +0 -3
  1846. package/dist/scripts/goal-loop-runtime-default-check.js +0 -3
  1847. package/dist/scripts/goal-mode-official-default-check.js +0 -12
  1848. package/dist/scripts/gpt-final-arbiter-check.js +0 -66
  1849. package/dist/scripts/gpt-final-arbiter-performance-check.js +0 -36
  1850. package/dist/scripts/gpt-image-2-request-validator-check.js +0 -35
  1851. package/dist/scripts/hooks-0.134-context-parity-check.js +0 -20
  1852. package/dist/scripts/hooks-actual-parity-check.js +0 -17
  1853. package/dist/scripts/hooks-actual-parity-v2-check.js +0 -21
  1854. package/dist/scripts/hooks-latest-schema-check.js +0 -20
  1855. package/dist/scripts/hooks-managed-install-fixture-check.js +0 -21
  1856. package/dist/scripts/hooks-no-unsupported-handlers.js +0 -15
  1857. package/dist/scripts/hooks-official-hash-oracle-check.js +0 -35
  1858. package/dist/scripts/hooks-official-hash-parity-check.js +0 -17
  1859. package/dist/scripts/hooks-runtime-replay-warning-zero-v2.js +0 -26
  1860. package/dist/scripts/hooks-runtime-replay-warning-zero.js +0 -10
  1861. package/dist/scripts/hooks-subagent-events-check.js +0 -17
  1862. package/dist/scripts/hooks-trust-state-check.js +0 -14
  1863. package/dist/scripts/hooks-trust-warning-zero.js +0 -14
  1864. package/dist/scripts/image-artifact-registry-check.js +0 -14
  1865. package/dist/scripts/image-fidelity-fixture-check.js +0 -24
  1866. package/dist/scripts/image-followup-edit-path-check.js +0 -14
  1867. package/dist/scripts/image-generation-path-handoff-check.js +0 -8
  1868. package/dist/scripts/image-global-path-contract-check.js +0 -38
  1869. package/dist/scripts/imagegen-capability-check.js +0 -30
  1870. package/dist/scripts/init-deep-memory-scope-safety-check.js +0 -23
  1871. package/dist/scripts/install-update-preserves-config-check.js +0 -182
  1872. package/dist/scripts/json-schema-recursive-check.js +0 -78
  1873. package/dist/scripts/legacy-multiagent-removal-check.js +0 -85
  1874. package/dist/scripts/legacy-purge-final-check.js +0 -5
  1875. package/dist/scripts/legacy-update-e2e-check.js +0 -228
  1876. package/dist/scripts/lib/mad-sks-actual-executor-check-lib.js +0 -255
  1877. package/dist/scripts/lib/native-cli-session-swarm-check-lib.js +0 -242
  1878. package/dist/scripts/lib/real-codex-parallel-gate.js +0 -94
  1879. package/dist/scripts/lib/real-codex-parallel-proof-fixture.js +0 -55
  1880. package/dist/scripts/local-collab-gpt-final-availability-check.js +0 -58
  1881. package/dist/scripts/local-collab-no-local-only-final-check.js +0 -27
  1882. package/dist/scripts/local-collab-policy-check.js +0 -17
  1883. package/dist/scripts/local-collab-worktree-gpt-final-apply-policy-check.js +0 -63
  1884. package/dist/scripts/local-llm-cache-performance-check.js +0 -10
  1885. package/dist/scripts/local-llm-capability-check.js +0 -14
  1886. package/dist/scripts/local-llm-smoke-check.js +0 -32
  1887. package/dist/scripts/local-llm-structured-output-check.js +0 -11
  1888. package/dist/scripts/local-llm-throughput-check.js +0 -10
  1889. package/dist/scripts/local-llm-tool-call-repair-check.js +0 -10
  1890. package/dist/scripts/local-llm-warmup-check.js +0 -11
  1891. package/dist/scripts/loop-hardening-check-lib.js +0 -289
  1892. package/dist/scripts/machine-local-evidence-zero-check.js +0 -22
  1893. package/dist/scripts/mad-db-capability-check.js +0 -26
  1894. package/dist/scripts/mad-db-command-check.js +0 -18
  1895. package/dist/scripts/mad-db-direct-apply-migration-hook-check.js +0 -73
  1896. package/dist/scripts/mad-db-hook-idempotency-check.js +0 -21
  1897. package/dist/scripts/mad-db-lifecycle-hook-decision-check.js +0 -18
  1898. package/dist/scripts/mad-db-one-cycle-bounded-check.js +0 -24
  1899. package/dist/scripts/mad-db-one-cycle-consumption-check.js +0 -16
  1900. package/dist/scripts/mad-db-operation-lifecycle-ledger-check.js +0 -17
  1901. package/dist/scripts/mad-db-parallel-lifecycle-check.js +0 -24
  1902. package/dist/scripts/mad-db-policy-v2-check.js +0 -20
  1903. package/dist/scripts/mad-db-priority-resolver-check.js +0 -20
  1904. package/dist/scripts/mad-db-real-supabase-e2e.js +0 -166
  1905. package/dist/scripts/mad-db-route-identity-check.js +0 -30
  1906. package/dist/scripts/mad-db-runtime-profile-lifecycle-check.js +0 -24
  1907. package/dist/scripts/mad-db-safety-conflict-matrix-check.js +0 -45
  1908. package/dist/scripts/mad-db-skill-policy-snapshot-check.js +0 -18
  1909. package/dist/scripts/mad-db-supabase-transport-diagnostics-check.js +0 -47
  1910. package/dist/scripts/mad-sks-audit-proof-check.js +0 -34
  1911. package/dist/scripts/mad-sks-db-executor-check.js +0 -5
  1912. package/dist/scripts/mad-sks-executor-proof-graph-check.js +0 -5
  1913. package/dist/scripts/mad-sks-fast-mode-propagation-check.js +0 -24
  1914. package/dist/scripts/mad-sks-file-write-executor-check.js +0 -5
  1915. package/dist/scripts/mad-sks-immutable-harness-check.js +0 -36
  1916. package/dist/scripts/mad-sks-live-protected-core-smoke.js +0 -5
  1917. package/dist/scripts/mad-sks-no-harness-modification-check.js +0 -25
  1918. package/dist/scripts/mad-sks-package-executor-check.js +0 -5
  1919. package/dist/scripts/mad-sks-permission-model-check.js +0 -22
  1920. package/dist/scripts/mad-sks-rollback-apply-check.js +0 -5
  1921. package/dist/scripts/mad-sks-service-executor-check.js +0 -5
  1922. package/dist/scripts/mad-sks-shell-executor-check.js +0 -5
  1923. package/dist/scripts/mad-sks-write-guard-check.js +0 -28
  1924. package/dist/scripts/mad-sks-zellij-default-pane-worker-check.js +0 -38
  1925. package/dist/scripts/mad-sks-zellij-launch-check.js +0 -108
  1926. package/dist/scripts/mad-zellij-no-contradictory-output-check.js +0 -4
  1927. package/dist/scripts/mad-zellij-self-heal-check.js +0 -4
  1928. package/dist/scripts/managed-role-manifest-parity-check.js +0 -24
  1929. package/dist/scripts/mcp-0-134-modernization-check.js +0 -55
  1930. package/dist/scripts/mcp-readonly-concurrency-check.js +0 -17
  1931. package/dist/scripts/mcp-readonly-runtime-scheduler-check.js +0 -20
  1932. package/dist/scripts/memory-summary-rebuild-check.js +0 -22
  1933. package/dist/scripts/naruto-active-pool-check.js +0 -39
  1934. package/dist/scripts/naruto-actual-worker-control-plane-check.js +0 -56
  1935. package/dist/scripts/naruto-allocation-policy-check.js +0 -33
  1936. package/dist/scripts/naruto-allocation-runtime-wiring-check.js +0 -92
  1937. package/dist/scripts/naruto-concurrency-governor-check.js +0 -53
  1938. package/dist/scripts/naruto-extreme-parallelism-check.js +0 -22
  1939. package/dist/scripts/naruto-extreme-parallelism-real-check.js +0 -45
  1940. package/dist/scripts/naruto-gpt-final-pack-check.js +0 -34
  1941. package/dist/scripts/naruto-loop-maker-checker-check.js +0 -3
  1942. package/dist/scripts/naruto-loop-mesh-check.js +0 -3
  1943. package/dist/scripts/naruto-loop-worker-router-check.js +0 -3
  1944. package/dist/scripts/naruto-orchestrator-runtime-source-check.js +0 -70
  1945. package/dist/scripts/naruto-parallel-gate-consistency-check.js +0 -8
  1946. package/dist/scripts/naruto-parallel-patch-apply-check.js +0 -41
  1947. package/dist/scripts/naruto-parallel-runtime-proof-check.js +0 -9
  1948. package/dist/scripts/naruto-parallelism-mode-check.js +0 -13
  1949. package/dist/scripts/naruto-parallelism-ux-check.js +0 -8
  1950. package/dist/scripts/naruto-proof-message-summary-check.js +0 -9
  1951. package/dist/scripts/naruto-proof-zellij-stacked-summary-check.js +0 -47
  1952. package/dist/scripts/naruto-readonly-routing-check.js +0 -119
  1953. package/dist/scripts/naruto-real-active-pool-check.js +0 -39
  1954. package/dist/scripts/naruto-real-active-pool-runtime-check.js +0 -85
  1955. package/dist/scripts/naruto-real-local-gpt-final-smoke.js +0 -25
  1956. package/dist/scripts/naruto-rebalance-policy-check.js +0 -41
  1957. package/dist/scripts/naruto-role-distribution-check.js +0 -23
  1958. package/dist/scripts/naruto-shadow-clone-swarm-check.js +0 -6
  1959. package/dist/scripts/naruto-ssot-default-check.js +0 -9
  1960. package/dist/scripts/naruto-ssot-gate-aliases-check.js +0 -10
  1961. package/dist/scripts/naruto-ssot-pipeline-default-check.js +0 -11
  1962. package/dist/scripts/naruto-ssot-route-normalization-check.js +0 -9
  1963. package/dist/scripts/naruto-ssot-routing-check.js +0 -13
  1964. package/dist/scripts/naruto-verification-pool-check.js +0 -36
  1965. package/dist/scripts/naruto-visible-vs-active-workers-check.js +0 -10
  1966. package/dist/scripts/naruto-work-graph-check.js +0 -24
  1967. package/dist/scripts/naruto-worktree-coding-check.js +0 -44
  1968. package/dist/scripts/naruto-worktree-gpt-final-check.js +0 -45
  1969. package/dist/scripts/naruto-worktree-zellij-ui-check.js +0 -28
  1970. package/dist/scripts/naruto-zellij-dynamic-right-column-check.js +0 -48
  1971. package/dist/scripts/naruto-zellij-massive-ui-check.js +0 -23
  1972. package/dist/scripts/native-app-screenshot-repair-check.js +0 -11
  1973. package/dist/scripts/native-capability-repair-check.js +0 -15
  1974. package/dist/scripts/native-chrome-web-review-repair-check.js +0 -11
  1975. package/dist/scripts/native-computer-use-repair-check.js +0 -11
  1976. package/dist/scripts/native-swarm-process-spawn-proof-check.js +0 -7
  1977. package/dist/scripts/native-swarm-zellij-does-not-block-workers-check.js +0 -11
  1978. package/dist/scripts/no-ts-nocheck-release-scripts-check.js +0 -4
  1979. package/dist/scripts/non-recursive-pipeline-check.js +0 -68
  1980. package/dist/scripts/npm-publish-performance-check.js +0 -74
  1981. package/dist/scripts/orphan-strong-detection-check.js +0 -12
  1982. package/dist/scripts/parallel-missing-pid-rejection-check.js +0 -55
  1983. package/dist/scripts/parallel-runtime-proof-check.js +0 -23
  1984. package/dist/scripts/parallel-runtime-proof-events-check.js +0 -13
  1985. package/dist/scripts/parallel-strict-pid-proof-check.js +0 -54
  1986. package/dist/scripts/parallel-verification-engine-check.js +0 -85
  1987. package/dist/scripts/perf-gate.js +0 -39
  1988. package/dist/scripts/pipeline-codex-0140-integration-check.js +0 -30
  1989. package/dist/scripts/pipeline-five-minute-sla-check.js +0 -7
  1990. package/dist/scripts/postinstall-safe-side-effects-check.js +0 -71
  1991. package/dist/scripts/ppt-full-e2e-artifact-graph-check.js +0 -40
  1992. package/dist/scripts/ppt-image-voxel-relations-check.js +0 -9
  1993. package/dist/scripts/ppt-imagegen-review-fixture-check.js +0 -6
  1994. package/dist/scripts/ppt-issue-extraction-fixture-check.js +0 -7
  1995. package/dist/scripts/ppt-no-mock-as-real-check.js +0 -10
  1996. package/dist/scripts/ppt-no-text-fallback-check.js +0 -7
  1997. package/dist/scripts/ppt-proof-trust-fixture-check.js +0 -10
  1998. package/dist/scripts/ppt-slide-export-fixture-check.js +0 -7
  1999. package/dist/scripts/priority-full-closure-check.js +0 -12
  2000. package/dist/scripts/product-design-auto-install-check.js +0 -119
  2001. package/dist/scripts/project-skill-dedupe-check.js +0 -34
  2002. package/dist/scripts/provider-context-config-toml-check.js +0 -63
  2003. package/dist/scripts/python-codex-sdk-capability-check.js +0 -75
  2004. package/dist/scripts/python-codex-sdk-sandbox-policy-check.js +0 -10
  2005. package/dist/scripts/python-codex-sdk-stream-bridge-check.js +0 -12
  2006. package/dist/scripts/python-tools-smoke-check.js +0 -71
  2007. package/dist/scripts/qa-actual-route-backfill-check.js +0 -5
  2008. package/dist/scripts/qa-loop-app-server-driver-check.js +0 -74
  2009. package/dist/scripts/qa-loop-surface-router-check.js +0 -49
  2010. package/dist/scripts/quantum-baseline-report.js +0 -38
  2011. package/dist/scripts/release-3112-required-gates.js +0 -30
  2012. package/dist/scripts/release-3113-required-gates.js +0 -25
  2013. package/dist/scripts/release-4000-required-gates.js +0 -36
  2014. package/dist/scripts/release-4001-required-gates.js +0 -13
  2015. package/dist/scripts/release-4002-required-gates.js +0 -14
  2016. package/dist/scripts/release-cache-bridge-check.js +0 -23
  2017. package/dist/scripts/release-check-dynamic-execute.js +0 -256
  2018. package/dist/scripts/release-check-dynamic.js +0 -98
  2019. package/dist/scripts/release-dynamic-performance-check.js +0 -109
  2020. package/dist/scripts/release-gate-existence-audit.js +0 -78
  2021. package/dist/scripts/release-gate-worker.js +0 -10
  2022. package/dist/scripts/release-metadata-1-11-check.js +0 -37
  2023. package/dist/scripts/release-metadata-1-12-check.js +0 -48
  2024. package/dist/scripts/release-metadata-1-13-check.js +0 -53
  2025. package/dist/scripts/release-metadata-1-14-check.js +0 -63
  2026. package/dist/scripts/release-native-agent-fixture-check.js +0 -41
  2027. package/dist/scripts/release-parallel-full-coverage-check.js +0 -19
  2028. package/dist/scripts/release-registry-check.js +0 -417
  2029. package/dist/scripts/release-script-type-safety-check.js +0 -4
  2030. package/dist/scripts/release-speed-summary-check.js +0 -20
  2031. package/dist/scripts/release-stability-report-check.js +0 -103
  2032. package/dist/scripts/release-triwiki-first-runner-check.js +0 -9
  2033. package/dist/scripts/repo-audit.js +0 -83
  2034. package/dist/scripts/research-actual-route-backfill-check.js +0 -5
  2035. package/dist/scripts/research-handoff-consumability-check.js +0 -23
  2036. package/dist/scripts/research-parallel-source-shards-check.js +0 -22
  2037. package/dist/scripts/research-real-cycle-no-legacy-final-md-check.js +0 -18
  2038. package/dist/scripts/research-real-synthesis-no-deterministic-renderer-check.js +0 -14
  2039. package/dist/scripts/research-repetition-detector-check.js +0 -19
  2040. package/dist/scripts/research-short-report-rejection-check.js +0 -46
  2041. package/dist/scripts/research-source-ledger-merge-check.js +0 -26
  2042. package/dist/scripts/research-synthesis-prompt-contract-check.js +0 -36
  2043. package/dist/scripts/research-synthesis-writer-check.js +0 -26
  2044. package/dist/scripts/research-template-report-rejection-check.js +0 -56
  2045. package/dist/scripts/research-ultra-stability-report.js +0 -45
  2046. package/dist/scripts/retention-cleanup-safety-check.js +0 -174
  2047. package/dist/scripts/route-proof-artifact-structure-check.js +0 -146
  2048. package/dist/scripts/runtime-proof-summary-cli-check.js +0 -51
  2049. package/dist/scripts/runtime-proof-summary-messages-check.js +0 -37
  2050. package/dist/scripts/runtime-proof-zellij-stacked-summary-check.js +0 -58
  2051. package/dist/scripts/runtime-ts-python-boundary-check.js +0 -59
  2052. package/dist/scripts/rust-smoke.js +0 -5
  2053. package/dist/scripts/safety-check.js +0 -23
  2054. package/dist/scripts/scheduler-critical-path-check.js +0 -9
  2055. package/dist/scripts/scheduler-extreme-parallel-check.js +0 -7
  2056. package/dist/scripts/scheduler-resource-budget-check.js +0 -7
  2057. package/dist/scripts/scheduler-utilization-proof-check.js +0 -8
  2058. package/dist/scripts/secret-line-rollback-check.js +0 -35
  2059. package/dist/scripts/seo-canonical-locale-check.js +0 -19
  2060. package/dist/scripts/seo-geo-feature-fixture-quality-check.js +0 -18
  2061. package/dist/scripts/seo-geo-no-unsupported-ranking-claims-check.js +0 -18
  2062. package/dist/scripts/seo-mutation-rollback-check.js +0 -23
  2063. package/dist/scripts/seo-structured-data-visible-content-check.js +0 -19
  2064. package/dist/scripts/side-effect-zero-gate-check.js +0 -226
  2065. package/dist/scripts/skill-registry-ledger-check.js +0 -14
  2066. package/dist/scripts/skill-sync-atomic-check.js +0 -35
  2067. package/dist/scripts/sks-1-11-fixture-check.js +0 -130
  2068. package/dist/scripts/sks-3-1-7-directive-check-lib.js +0 -58
  2069. package/dist/scripts/source-intelligence-all-modes-check.js +0 -22
  2070. package/dist/scripts/source-intelligence-policy-check.js +0 -13
  2071. package/dist/scripts/strategy-adhd-orchestrating-gate-check.js +0 -22
  2072. package/dist/scripts/strategy-file-ownership-plan-check.js +0 -18
  2073. package/dist/scripts/strategy-parallel-modification-plan-check.js +0 -19
  2074. package/dist/scripts/strategy-verification-rollback-dag-check.js +0 -19
  2075. package/dist/scripts/super-search-name-guard-check.js +0 -98
  2076. package/dist/scripts/team-actual-route-backfill-check.js +0 -5
  2077. package/dist/scripts/team-legacy-create-removed-check.js +0 -12
  2078. package/dist/scripts/terminal-tui-output-stability-check.js +0 -35
  2079. package/dist/scripts/tmux-removal-inventory.js +0 -36
  2080. package/dist/scripts/triwiki-affected-graph-check.js +0 -10
  2081. package/dist/scripts/triwiki-gate-impact-map-check.js +0 -8
  2082. package/dist/scripts/triwiki-module-card-check.js +0 -7
  2083. package/dist/scripts/triwiki-stale-proof-rejection-check.js +0 -25
  2084. package/dist/scripts/typescript-migration-report.js +0 -78
  2085. package/dist/scripts/ultra-router-classification-check.js +0 -28
  2086. package/dist/scripts/update-concurrent-lock-check.js +0 -11
  2087. package/dist/scripts/update-default-command-check.js +0 -30
  2088. package/dist/scripts/update-doctor-lifecycle-check.js +0 -13
  2089. package/dist/scripts/update-first-command-migration-check.js +0 -15
  2090. package/dist/scripts/update-mad-zellij-notice-check.js +0 -9
  2091. package/dist/scripts/update-new-binary-reexec-check.js +0 -12
  2092. package/dist/scripts/update-notice-check.js +0 -10
  2093. package/dist/scripts/update-secret-migration-journal-check.js +0 -8
  2094. package/dist/scripts/update-secret-preservation-guard-check.js +0 -10
  2095. package/dist/scripts/ux-ppt-structured-extraction-check.js +0 -21
  2096. package/dist/scripts/ux-review-extract-real-callouts-fixture-check.js +0 -8
  2097. package/dist/scripts/ux-review-generate-callouts-fixture-check.js +0 -9
  2098. package/dist/scripts/ux-review-image-voxel-relations-check.js +0 -31
  2099. package/dist/scripts/ux-review-no-fake-callouts-check.js +0 -8
  2100. package/dist/scripts/ux-review-no-text-fallback-check.js +0 -25
  2101. package/dist/scripts/ux-review-patch-handoff-fixture-check.js +0 -8
  2102. package/dist/scripts/ux-review-real-loop-fixture-check.js +0 -29
  2103. package/dist/scripts/ux-review-recapture-recheck-fixture-check.js +0 -8
  2104. package/dist/scripts/worker-pane-communication-contract-check.js +0 -53
  2105. package/dist/scripts/zellij-real-session-heartbeat-check.js +0 -49
  2106. package/dist/scripts/zellij-viewport-binder-check.js +0 -9
  2107. package/dist/scripts/zellij-worker-pane-spawn-order-check.js +0 -35
@@ -1,1889 +1,2 @@
1
- import fs from 'node:fs/promises';
2
- import os from 'node:os';
3
- import path from 'node:path';
4
- import { fileURLToPath } from 'node:url';
5
- import { ensureDir, exists, PACKAGE_VERSION, readJson, readText, runProcess, sha256, which, writeJsonAtomic, writeTextAtomic } from '../fsx.js';
6
- import { findCodexApp } from '../codex-app.js';
7
- import { withHeartbeat } from '../../cli/cli-theme.js';
8
- export const SKS_MENUBAR_LABEL = 'com.sneakoscope.sks-menubar';
9
- const LABEL = SKS_MENUBAR_LABEL;
10
- const CONTROL_CENTER_DOMAIN = 'com.apple.controlcenter';
11
- const CONTROL_CENTER_PREFERRED_POSITION = 360;
12
- const SECRET_LAUNCH_ENV_KEYS = ['CODEX_LB_API_KEY', 'OPENROUTER_API_KEY'];
13
- const MENU_ITEMS = [
14
- 'Use codex-lb',
15
- 'Use ChatGPT OAuth',
16
- 'Set codex-lb Domain and Key',
17
- 'Set OpenRouter Key and GLM Profiles',
18
- 'Fast Mode On',
19
- 'Fast Mode Off',
20
- 'Fast Check',
21
- 'SKS Version Check',
22
- 'Update SKS Now',
23
- 'Codex CLI Version',
24
- 'Update Codex CLI Now',
25
- 'Run sks doctor --fix',
26
- 'Open Dashboard',
27
- 'Open Codex Settings',
28
- 'Restart Codex',
29
- 'View Last Log',
30
- 'Quit SKS Menu'
31
- ];
32
- export function sksMenuBarPaths(homeInput, rootInput) {
33
- const home = path.resolve(homeInput || process.env.HOME || os.homedir());
34
- const root = path.resolve(rootInput || process.cwd());
35
- const installDir = path.join(home, '.codex', 'sks-menubar');
36
- const appPath = path.join(installDir, 'SKSMenuBar.app');
37
- const contentsPath = path.join(appPath, 'Contents');
38
- const macosPath = path.join(contentsPath, 'MacOS');
39
- return {
40
- home,
41
- root,
42
- install_dir: installDir,
43
- app_path: appPath,
44
- staging_app_path: `${appPath}.staging`,
45
- backup_app_path: `${appPath}.previous`,
46
- contents_path: contentsPath,
47
- macos_path: macosPath,
48
- executable_path: path.join(macosPath, 'SKSMenuBar'),
49
- source_path: path.join(installDir, 'SKSMenuBar.swift'),
50
- info_plist_path: path.join(contentsPath, 'Info.plist'),
51
- action_script_path: path.join(installDir, 'sks-menubar-action.sh'),
52
- build_stamp_path: path.join(installDir, 'build-stamp.json'),
53
- config_path: path.join(installDir, 'config.json'),
54
- launch_agent_path: path.join(home, 'Library', 'LaunchAgents', `${LABEL}.plist`),
55
- report_path: path.join(root, '.sneakoscope', 'reports', 'sks-menubar.json'),
56
- stdout_log_path: path.join(installDir, 'menubar.out.log'),
57
- stderr_log_path: path.join(installDir, 'menubar.err.log'),
58
- logs_dir: path.join(installDir, 'logs'),
59
- last_action_log_path: path.join(installDir, 'logs', 'last-action.log')
60
- };
61
- }
62
- export async function installSksMenuBar(opts = {}) {
63
- const apply = opts.apply === true;
64
- const env = opts.env || process.env;
65
- const paths = sksMenuBarPaths(opts.home || env.HOME, opts.root);
66
- const actions = [];
67
- const warnings = [];
68
- const nextActions = defaultNextActions();
69
- let secretEnvCleanup;
70
- let codexBundleId = null;
71
- let lastTargetCheck;
72
- if (process.platform !== 'darwin') {
73
- const result = {
74
- schema: 'sks.codex-app-sks-menubar.v1',
75
- ok: true,
76
- apply,
77
- status: 'unsupported_platform',
78
- platform: process.platform,
79
- app_path: null,
80
- executable_path: null,
81
- launch_agent_path: null,
82
- action_script_path: null,
83
- build_stamp_path: null,
84
- config_path: null,
85
- report_path: apply ? paths.report_path : null,
86
- codex_bundle_id: null,
87
- menu_items: MENU_ITEMS,
88
- actions: [],
89
- launch: { requested: false, method: 'none', ok: true },
90
- tcc_automation_status: 'unknown',
91
- next_actions: [],
92
- blockers: [],
93
- warnings: ['sks_menubar_requires_macos']
94
- };
95
- if (apply)
96
- await writeReport(paths.report_path, result);
97
- return result;
98
- }
99
- if (!apply) {
100
- const installed = await exists(paths.executable_path);
101
- const launchAgent = await exists(paths.launch_agent_path);
102
- const status = await inspectSksMenuBarStatus({ home: paths.home, root: paths.root }).catch(() => null);
103
- const statusWarnings = [...(status?.warnings || []), ...(launchAgent ? [] : ['launch_agent_not_installed_yet'])];
104
- return {
105
- schema: 'sks.codex-app-sks-menubar.v1',
106
- ok: status ? status.ok === true : true,
107
- apply,
108
- status: 'planned',
109
- platform: process.platform,
110
- app_path: paths.app_path,
111
- executable_path: paths.executable_path,
112
- launch_agent_path: paths.launch_agent_path,
113
- action_script_path: paths.action_script_path,
114
- build_stamp_path: paths.build_stamp_path,
115
- config_path: paths.config_path,
116
- report_path: paths.report_path,
117
- codex_bundle_id: status?.codex_sync.bundle_id || null,
118
- menu_items: MENU_ITEMS,
119
- actions: installed ? ['menubar_app_present'] : ['menubar_app_install_available'],
120
- launch: {
121
- requested: false,
122
- method: 'skipped',
123
- ok: true
124
- },
125
- target_check: status ? {
126
- requested: null,
127
- resolved: status.action_target.sks_entry,
128
- packaged: packagedSksEntry(),
129
- exists: status.action_target.sks_entry_exists,
130
- project_local: status.action_target.sks_entry ? isSubpath(status.action_target.sks_entry, paths.root) : false,
131
- used_previous_script: false
132
- } : undefined,
133
- build_stamp: status?.build_stamp || null,
134
- tcc_automation_status: 'unknown',
135
- next_actions: launchAgent ? defaultNextActions() : ['Run: sks menubar install'],
136
- blockers: status?.blockers || [],
137
- warnings: statusWarnings
138
- };
139
- }
140
- await ensureDir(paths.install_dir);
141
- await ensureDir(paths.logs_dir);
142
- await ensureDir(path.dirname(paths.launch_agent_path));
143
- secretEnvCleanup = await cleanupMacLaunchSecretEnvironment({ env }).catch((err) => ({
144
- ok: false,
145
- status: 'partial',
146
- variables: SECRET_LAUNCH_ENV_KEYS,
147
- cleaned: [],
148
- failed: SECRET_LAUNCH_ENV_KEYS.map((key) => ({ key, error: err?.message || String(err) })),
149
- next_actions: ['Rotate CODEX_LB_API_KEY and OPENROUTER_API_KEY if they were previously exposed in launchd.']
150
- }));
151
- if (secretEnvCleanup.status === 'cleaned')
152
- actions.push('removed secret API keys from launchd user environment');
153
- if (!secretEnvCleanup.ok && !secretEnvCleanup.failed.every((row) => row.error === 'empty'))
154
- warnings.push('launch_secret_env_cleanup_incomplete');
155
- const swiftc = env.SKS_MENUBAR_SWIFTC || await which('swiftc').catch(() => null) || await fallbackTool('/usr/bin/swiftc');
156
- const launchctl = env.SKS_MENUBAR_LAUNCHCTL || await which('launchctl').catch(() => null) || await fallbackTool('/bin/launchctl');
157
- const open = env.SKS_MENUBAR_OPEN || await which('open').catch(() => null) || await fallbackTool('/usr/bin/open');
158
- const codesign = env.SKS_MENUBAR_CODESIGN || await which('codesign').catch(() => null) || await fallbackTool('/usr/bin/codesign');
159
- const xcodeSelect = env.SKS_MENUBAR_XCODE_SELECT || await which('xcode-select').catch(() => null) || await fallbackTool('/usr/bin/xcode-select');
160
- const clt = await xcodeCltStatus(xcodeSelect);
161
- if (!clt.ok)
162
- return await blockedResult('xcode_clt_missing', clt.error || 'Xcode Command Line Tools missing');
163
- if (!swiftc)
164
- return await blockedResult('swiftc_missing', 'swiftc not found');
165
- const swiftcVersion = await toolVersion(swiftc, ['--version']);
166
- codexBundleId = await resolveCodexBundleId({ home: paths.home, env, warnings });
167
- if (!codexBundleId)
168
- warnings.push('codex_app_bundle_id_unresolved');
169
- const config = await writeDefaultMenuBarConfig(paths.config_path, codexBundleId);
170
- actions.push(`wrote ${paths.config_path}`);
171
- const target = await resolveSksEntryForInstall({
172
- ...(opts.sksEntry ? { explicit: opts.sksEntry } : {}),
173
- root: paths.root,
174
- home: paths.home,
175
- env,
176
- actionScriptPath: paths.action_script_path,
177
- warnings
178
- });
179
- lastTargetCheck = target;
180
- if (!target.exists) {
181
- return await blockedResult('sks_entry_unresolved', `Resolved SKS entry does not exist: ${target.requested || target.resolved || target.packaged}`);
182
- }
183
- const actionScript = actionScriptSource({ nodeBin: process.execPath, sksEntry: target.resolved || target.packaged });
184
- const swiftSource = swiftMenuSource({
185
- actionScriptPath: paths.action_script_path,
186
- buildStampPath: paths.build_stamp_path,
187
- configPath: paths.config_path,
188
- lastActionLogPath: paths.last_action_log_path,
189
- codexBundleId: config.codex_bundle_id,
190
- packageVersion: PACKAGE_VERSION
191
- });
192
- const infoPlist = infoPlistSource(PACKAGE_VERSION);
193
- const launchAgent = launchAgentSource(paths.executable_path, paths.install_dir);
194
- const stamp = {
195
- schema: 'sks.sks-menubar-build-stamp.v1',
196
- package_version: PACKAGE_VERSION,
197
- source_sha256: sha256(swiftSource),
198
- action_script_sha256: sha256(actionScript),
199
- info_plist_sha256: sha256(infoPlist),
200
- launch_agent_sha256: sha256(launchAgent),
201
- swiftc_version: swiftcVersion,
202
- codesign_identifier: LABEL
203
- };
204
- const previousStamp = await readJson(paths.build_stamp_path, null);
205
- const appInstalled = await exists(paths.executable_path);
206
- const currentActionScript = await readText(paths.action_script_path, '');
207
- const actionScriptCurrent = currentActionScript === actionScript;
208
- const stampMatches = appInstalled && buildStampEquals(previousStamp, stamp) && actionScriptCurrent;
209
- const binaryStable = appInstalled
210
- && previousStamp?.schema === stamp.schema
211
- && previousStamp.package_version === stamp.package_version
212
- && previousStamp.source_sha256 === stamp.source_sha256
213
- && previousStamp.info_plist_sha256 === stamp.info_plist_sha256
214
- && previousStamp.swiftc_version === stamp.swiftc_version
215
- && previousStamp.codesign_identifier === stamp.codesign_identifier;
216
- if (stampMatches) {
217
- actions.push('menubar_up_to_date');
218
- }
219
- else {
220
- if (currentActionScript !== actionScript) {
221
- await writeTextAtomic(paths.action_script_path, actionScript);
222
- actions.push(`wrote ${paths.action_script_path}`);
223
- }
224
- }
225
- // The Swift app executes the action script DIRECTLY (Process.executableURL points at the
226
- // script itself), so a lost executable bit breaks every menu action even when the script
227
- // content is current. Re-assert the bit on every install run — including the up-to-date
228
- // fast path, which previously never touched permissions and therefore could never repair
229
- // a 0644 script — and surface chmod failures instead of swallowing them.
230
- if (await exists(paths.action_script_path)) {
231
- const previouslyExecutable = await fs.access(paths.action_script_path, fs.constants.X_OK).then(() => true).catch(() => false);
232
- const chmodError = await fs.chmod(paths.action_script_path, 0o755).then(() => null).catch((err) => (err?.message ? String(err.message) : String(err)));
233
- if (chmodError) {
234
- warnings.push(`action_script_chmod_failed:${chmodError}`);
235
- }
236
- else if (!previouslyExecutable) {
237
- actions.push('restored action script executable bit');
238
- }
239
- }
240
- if (!stampMatches && !binaryStable) {
241
- try {
242
- await buildMenuBarAppAtomically({
243
- paths,
244
- swiftc,
245
- codesign,
246
- swiftSource,
247
- infoPlist,
248
- actions,
249
- quiet: opts.quiet === true
250
- });
251
- }
252
- catch (err) {
253
- return await blockedResult(err?.blocker || 'swift_compile_failed', err?.message || String(err));
254
- }
255
- }
256
- else if (!stampMatches) {
257
- actions.push('kept existing signed menu bar binary');
258
- }
259
- if (!stampMatches || previousStamp?.launch_agent_sha256 !== stamp.launch_agent_sha256 || !(await exists(paths.launch_agent_path))) {
260
- await writeTextAtomic(paths.launch_agent_path, launchAgent);
261
- actions.push(`wrote ${paths.launch_agent_path}`);
262
- }
263
- await writeJsonAtomic(paths.build_stamp_path, stamp);
264
- actions.push(`wrote ${paths.build_stamp_path}`);
265
- const launchWanted = opts.launch !== false && env.SKS_SKIP_SKS_MENUBAR_LAUNCH !== '1';
266
- const launchAllowedForHome = path.resolve(paths.home) === realUserHome();
267
- const installUnderTempDir = isMenuBarInstallPathUnderTempDir(paths.executable_path, env);
268
- if (launchWanted && !launchAllowedForHome)
269
- warnings.push('launch_skipped_non_user_home');
270
- if (launchWanted && installUnderTempDir)
271
- warnings.push('launch_skipped_temp_install');
272
- const launchRequested = launchWanted && launchAllowedForHome && !installUnderTempDir;
273
- let runningBeforeLaunch = false;
274
- if (launchRequested)
275
- runningBeforeLaunch = await isMenuBarProcessRunning(paths.executable_path);
276
- if (launchRequested && stampMatches && runningBeforeLaunch)
277
- actions.push('launch_skipped_menubar_up_to_date_and_running');
278
- if (launchRequested && !stampMatches) {
279
- const preferredPosition = await seedMenuBarPreferredPosition(env);
280
- if (preferredPosition.ok)
281
- actions.push('seeded SKS menu bar preferred position');
282
- else
283
- warnings.push(preferredPosition.warning);
284
- }
285
- const launch = launchRequested && launchctl && !(stampMatches && runningBeforeLaunch)
286
- ? await launchWithLaunchctl({ launchctl, open, paths, skipIfRunning: stampMatches, quiet: opts.quiet === true })
287
- : {
288
- requested: launchRequested && !(stampMatches && runningBeforeLaunch),
289
- method: 'skipped',
290
- ok: !launchRequested || (stampMatches && runningBeforeLaunch),
291
- error: launchRequested && !launchctl ? 'launchctl_missing' : null
292
- };
293
- if (launchRequested && !launchctl)
294
- warnings.push('launchctl_missing');
295
- if (launch.method === 'open-fallback')
296
- warnings.push('launchctl_bootstrap_failed_open_fallback_used');
297
- const ok = launch.ok === true;
298
- const result = {
299
- schema: 'sks.codex-app-sks-menubar.v1',
300
- ok,
301
- apply,
302
- status: ok
303
- ? launch.requested === false || launch.method === 'skipped'
304
- ? 'installed_launch_skipped'
305
- : launch.method === 'open-fallback'
306
- ? 'installed_open_fallback'
307
- : 'installed'
308
- : 'blocked',
309
- platform: process.platform,
310
- app_path: paths.app_path,
311
- executable_path: paths.executable_path,
312
- launch_agent_path: paths.launch_agent_path,
313
- action_script_path: paths.action_script_path,
314
- build_stamp_path: paths.build_stamp_path,
315
- config_path: paths.config_path,
316
- report_path: paths.report_path,
317
- codex_bundle_id: codexBundleId,
318
- menu_items: MENU_ITEMS,
319
- actions,
320
- launch,
321
- target_check: target,
322
- build_stamp: stamp,
323
- tcc_automation_status: 'unknown',
324
- secret_env_cleanup: secretEnvCleanup,
325
- next_actions: nextActions,
326
- blockers: ok ? [] : [launch.error || 'sks_menubar_launch_failed'],
327
- warnings
328
- };
329
- await writeReport(paths.report_path, result);
330
- return result;
331
- async function blockedResult(reason, detail) {
332
- const result = {
333
- schema: 'sks.codex-app-sks-menubar.v1',
334
- ok: false,
335
- apply,
336
- status: 'blocked',
337
- platform: process.platform,
338
- app_path: paths.app_path,
339
- executable_path: paths.executable_path,
340
- launch_agent_path: paths.launch_agent_path,
341
- action_script_path: paths.action_script_path,
342
- build_stamp_path: paths.build_stamp_path,
343
- config_path: paths.config_path,
344
- report_path: paths.report_path,
345
- codex_bundle_id: typeof codexBundleId === 'string' ? codexBundleId : null,
346
- menu_items: MENU_ITEMS,
347
- actions,
348
- launch: { requested: false, method: 'none', ok: false, error: detail || reason },
349
- target_check: lastTargetCheck,
350
- build_stamp: null,
351
- tcc_automation_status: 'unknown',
352
- secret_env_cleanup: secretEnvCleanup,
353
- next_actions: reason === 'xcode_clt_missing'
354
- ? ['Run: xcode-select --install', ...defaultNextActions()]
355
- : defaultNextActions(),
356
- blockers: [reason],
357
- warnings: detail ? [...warnings, detail] : warnings
358
- };
359
- await writeReport(paths.report_path, result);
360
- return result;
361
- }
362
- }
363
- export async function cleanupMacLaunchSecretEnvironment(opts = {}) {
364
- if (process.platform !== 'darwin' && !opts.force) {
365
- return { ok: true, status: 'not_macos', variables: SECRET_LAUNCH_ENV_KEYS, cleaned: [], failed: [], next_actions: [] };
366
- }
367
- const env = opts.env || process.env;
368
- const launchctl = env.SKS_MENUBAR_LAUNCHCTL || await which('launchctl').catch(() => null) || await fallbackTool('/bin/launchctl');
369
- if (!launchctl) {
370
- return {
371
- ok: false,
372
- status: 'launchctl_missing',
373
- variables: SECRET_LAUNCH_ENV_KEYS,
374
- cleaned: [],
375
- failed: SECRET_LAUNCH_ENV_KEYS.map((key) => ({ key, error: 'launchctl_missing' })),
376
- next_actions: ['Run: launchctl unsetenv CODEX_LB_API_KEY', 'Run: launchctl unsetenv OPENROUTER_API_KEY']
377
- };
378
- }
379
- const cleaned = [];
380
- const failed = [];
381
- for (const key of SECRET_LAUNCH_ENV_KEYS) {
382
- const result = await runProcess(launchctl, ['unsetenv', key], { timeoutMs: 3_000, maxOutputBytes: 8 * 1024 })
383
- .catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
384
- if (result.code === 0)
385
- cleaned.push(key);
386
- else
387
- failed.push({ key, error: String(result.stderr || result.stdout || 'launchctl unsetenv failed').trim() });
388
- }
389
- return {
390
- ok: failed.length === 0,
391
- status: failed.length === 0 ? 'cleaned' : cleaned.length ? 'partial' : 'partial',
392
- variables: SECRET_LAUNCH_ENV_KEYS,
393
- cleaned,
394
- failed,
395
- next_actions: ['Rotate CODEX_LB_API_KEY and OPENROUTER_API_KEY if they were previously exposed in launchd.']
396
- };
397
- }
398
- async function writeDefaultMenuBarConfig(configPath, codexBundleId) {
399
- const previous = await readMenuBarConfig(configPath);
400
- const config = {
401
- schema: 'sks.sks-menubar-config.v1',
402
- codex_bundle_id: codexBundleId || previous.codex_bundle_id,
403
- quit_with_codex: previous.quit_with_codex === true
404
- };
405
- await writeJsonAtomic(configPath, config);
406
- return config;
407
- }
408
- async function readMenuBarConfig(configPath) {
409
- const config = await readJson(configPath, null);
410
- return {
411
- schema: 'sks.sks-menubar-config.v1',
412
- codex_bundle_id: typeof config?.codex_bundle_id === 'string' && config.codex_bundle_id.trim()
413
- ? config.codex_bundle_id.trim()
414
- : null,
415
- quit_with_codex: config?.quit_with_codex === true
416
- };
417
- }
418
- async function resolveCodexBundleId(input) {
419
- if (process.platform !== 'darwin')
420
- return null;
421
- const appPath = await findCodexApp({ home: input.home, env: input.env }).catch(() => null);
422
- if (!appPath) {
423
- input.warnings.push('codex_app_not_found_for_bundle_sync');
424
- return null;
425
- }
426
- const mdls = input.env.SKS_MENUBAR_MDLS || await which('mdls').catch(() => null) || await fallbackTool('/usr/bin/mdls');
427
- if (mdls) {
428
- const result = await runProcess(mdls, ['-name', 'kMDItemCFBundleIdentifier', '-raw', appPath], {
429
- timeoutMs: 3_000,
430
- maxOutputBytes: 8 * 1024
431
- }).catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
432
- const value = String(result.stdout || '').trim();
433
- if (result.code === 0 && value && value !== '(null)' && value !== 'null')
434
- return value;
435
- }
436
- const defaults = input.env.SKS_MENUBAR_DEFAULTS || await which('defaults').catch(() => null) || await fallbackTool('/usr/bin/defaults');
437
- if (defaults) {
438
- const result = await runProcess(defaults, ['read', path.join(appPath, 'Contents', 'Info'), 'CFBundleIdentifier'], {
439
- timeoutMs: 3_000,
440
- maxOutputBytes: 8 * 1024
441
- }).catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
442
- const value = String(result.stdout || '').trim();
443
- if (result.code === 0 && value)
444
- return value;
445
- }
446
- return null;
447
- }
448
- export async function smokeSksMenuBarAction(actionScriptPath) {
449
- if (!(await exists(actionScriptPath)))
450
- return { ok: false, code: null, output: null, versionDetected: false, detectedVersion: null, executable: false };
451
- // The Swift app runs the script directly (which requires the executable bit), so the smoke
452
- // check must invoke it the same way. Running it via `/bin/zsh <script>` — as this check used
453
- // to — succeeds even when +x is missing, which let doctor/status report a healthy action
454
- // target while the menu bar itself was showing "action script broken".
455
- const executable = await fs.access(actionScriptPath, fs.constants.X_OK).then(() => true).catch(() => false);
456
- if (!executable) {
457
- return {
458
- ok: false,
459
- code: null,
460
- output: 'action script is not executable (missing +x); the menu bar app cannot run it',
461
- versionDetected: false,
462
- detectedVersion: null,
463
- executable: false
464
- };
465
- }
466
- const result = await runProcess(actionScriptPath, ['version'], {
467
- timeoutMs: 5_000,
468
- maxOutputBytes: 16 * 1024
469
- }).catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
470
- const output = String(`${result.stdout || ''}\n${result.stderr || ''}`).trim();
471
- const detectedVersion = output.match(/\b(?:sks|sneakoscope)?\s*v?(\d+\.\d+\.\d+)\b/i)?.[1] || null;
472
- const versionDetected = Boolean(detectedVersion);
473
- return {
474
- ok: result.code === 0 && versionDetected,
475
- code: result.code,
476
- output: output ? output.slice(0, 700) : null,
477
- versionDetected,
478
- detectedVersion,
479
- executable: true
480
- };
481
- }
482
- async function isCodexAppRunningByBundleId(bundleId, env = process.env) {
483
- if (process.platform !== 'darwin' || !bundleId)
484
- return false;
485
- const osascript = env.SKS_MENUBAR_OSASCRIPT || await which('osascript').catch(() => null) || await fallbackTool('/usr/bin/osascript');
486
- if (!osascript)
487
- return false;
488
- const result = await runProcess(osascript, ['-e', `application id "${bundleId.replace(/"/g, '\\"')}" is running`], {
489
- timeoutMs: 2_000,
490
- maxOutputBytes: 8 * 1024
491
- }).catch(() => ({ code: 1, stdout: '', stderr: '' }));
492
- return result.code === 0 && String(result.stdout || '').trim().toLowerCase() === 'true';
493
- }
494
- export async function inspectSksMenuBarStatus(opts = {}) {
495
- const paths = sksMenuBarPaths(opts.home || opts.env?.HOME, opts.root);
496
- const installed = await exists(paths.executable_path);
497
- const running = installed ? await isMenuBarProcessRunning(paths.executable_path) : false;
498
- const actionText = await readText(paths.action_script_path, '');
499
- const nodeBin = shellAssignment(actionText, 'NODE_BIN');
500
- const sksEntry = shellAssignment(actionText, 'SKS_ENTRY');
501
- const nodeExists = nodeBin ? await isExecutable(nodeBin) : false;
502
- const sksEntryExists = sksEntry ? await exists(sksEntry) : false;
503
- const actionSmoke = await smokeSksMenuBarAction(paths.action_script_path);
504
- const config = await readMenuBarConfig(paths.config_path);
505
- const codexRunning = config.codex_bundle_id ? await isCodexAppRunningByBundleId(config.codex_bundle_id, opts.env) : null;
506
- const codexSync = {
507
- ok: Boolean(config.codex_bundle_id),
508
- bundle_id: config.codex_bundle_id,
509
- codex_running: codexRunning,
510
- icon_visible_expected: config.codex_bundle_id ? codexRunning === true : true,
511
- warning: config.codex_bundle_id ? null : 'codex_sync_disabled'
512
- };
513
- const buildStamp = await readJson(paths.build_stamp_path, null);
514
- const actionIntegrity = evaluateActionScriptIntegrity(actionText, buildStamp);
515
- const expectedActionVersion = buildStamp?.package_version || PACKAGE_VERSION;
516
- const actionVersionMatchesExpected = actionSmoke.detectedVersion === expectedActionVersion
517
- && actionSmoke.detectedVersion === PACKAGE_VERSION;
518
- const launchd = await inspectLaunchdService(opts.env);
519
- const signature = await inspectSignature(paths.app_path, opts.env);
520
- const blockers = [];
521
- const warnings = [];
522
- if (!installed)
523
- blockers.push('menubar_app_missing');
524
- if (installed && launchd.checked && !launchd.ok)
525
- blockers.push('launchd_not_running');
526
- if (installed && !actionSmoke.executable)
527
- blockers.push('action_script_not_executable');
528
- if (installed && !actionSmoke.ok)
529
- blockers.push('action_script_smoke_failed');
530
- if (installed && actionSmoke.ok && !actionVersionMatchesExpected)
531
- blockers.push('action_target_version_mismatch');
532
- if (installed && !buildStamp)
533
- blockers.push('build_stamp_missing');
534
- if (installed && buildStamp && !actionIntegrity.script_hash_matches_stamp)
535
- blockers.push('action_script_hash_mismatch');
536
- if (installed && signature.checked && !signature.ok)
537
- warnings.push('codesign_identifier_unexpected');
538
- if (!codexSync.ok)
539
- warnings.push('codex_sync_disabled');
540
- if (buildStamp?.package_version && buildStamp.package_version !== PACKAGE_VERSION)
541
- warnings.push('build_stamp_package_version_mismatch');
542
- return {
543
- schema: 'sks.menubar-status.v1',
544
- ok: blockers.length === 0,
545
- platform: process.platform,
546
- installed,
547
- running,
548
- paths,
549
- launchd,
550
- action_target: {
551
- node_bin: nodeBin,
552
- node_exists: nodeExists,
553
- sks_entry: sksEntry,
554
- sks_entry_exists: sksEntryExists,
555
- smoke_code: actionSmoke.code,
556
- smoke_output: actionSmoke.output,
557
- version_detected: actionSmoke.versionDetected,
558
- detected_version: actionSmoke.detectedVersion,
559
- expected_version: expectedActionVersion,
560
- version_matches_expected: actionVersionMatchesExpected,
561
- ...actionIntegrity,
562
- executable: actionSmoke.executable,
563
- ok: actionSmoke.ok && actionVersionMatchesExpected && actionIntegrity.script_hash_matches_stamp
564
- },
565
- codex_sync: codexSync,
566
- build_stamp: buildStamp,
567
- package_version: PACKAGE_VERSION,
568
- signature,
569
- blockers,
570
- warnings,
571
- next_actions: blockers.length || warnings.length ? defaultNextActions() : ['sks menubar status --json']
572
- };
573
- }
574
- export function evaluateActionScriptIntegrity(actionText, buildStamp) {
575
- const scriptSha256 = actionText ? sha256(actionText) : null;
576
- const expectedScriptSha256 = buildStamp?.action_script_sha256 || null;
577
- return {
578
- script_sha256: scriptSha256,
579
- expected_script_sha256: expectedScriptSha256,
580
- script_hash_matches_stamp: Boolean(scriptSha256 && expectedScriptSha256 && scriptSha256 === expectedScriptSha256)
581
- };
582
- }
583
- export async function restartSksMenuBar(opts = {}) {
584
- const env = opts.env || process.env;
585
- const paths = sksMenuBarPaths(opts.home || env.HOME, opts.root);
586
- if (process.platform !== 'darwin')
587
- return { schema: 'sks.menubar-restart.v1', ok: true, platform: process.platform, skipped: true, reason: 'not_macos' };
588
- const launchctl = env.SKS_MENUBAR_LAUNCHCTL || await which('launchctl').catch(() => null) || await fallbackTool('/bin/launchctl');
589
- if (!launchctl)
590
- return { schema: 'sks.menubar-restart.v1', ok: false, platform: process.platform, paths, blockers: ['launchctl_missing'] };
591
- const service = launchServiceName();
592
- const result = await runProcess(launchctl, ['kickstart', '-k', service], {
593
- timeoutMs: 3_000,
594
- maxOutputBytes: 16 * 1024,
595
- stdoutFile: path.join(paths.install_dir, 'launchctl.out.log'),
596
- stderrFile: path.join(paths.install_dir, 'launchctl.err.log')
597
- }).catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
598
- return {
599
- schema: 'sks.menubar-restart.v1',
600
- ok: result.code === 0,
601
- platform: process.platform,
602
- service,
603
- paths,
604
- code: result.code,
605
- error: result.code === 0 ? null : String(result.stderr || result.stdout || '').trim()
606
- };
607
- }
608
- export async function uninstallSksMenuBar(opts = {}) {
609
- const env = opts.env || process.env;
610
- const paths = sksMenuBarPaths(opts.home || env.HOME, opts.root);
611
- const actions = [];
612
- const warnings = [];
613
- const blockers = [];
614
- if (process.platform !== 'darwin') {
615
- return { schema: 'sks.menubar-uninstall.v1', ok: true, platform: process.platform, paths, actions: [], warnings: ['not_macos'], blockers: [] };
616
- }
617
- const launchctl = env.SKS_MENUBAR_LAUNCHCTL || await which('launchctl').catch(() => null) || await fallbackTool('/bin/launchctl');
618
- if (launchctl) {
619
- const service = launchServiceName();
620
- await runProcess(launchctl, ['bootout', service], { timeoutMs: 3_000, maxOutputBytes: 8 * 1024 }).catch(() => undefined);
621
- await runProcess(launchctl, ['bootout', launchDomain(), paths.launch_agent_path], { timeoutMs: 3_000, maxOutputBytes: 8 * 1024 }).catch(() => undefined);
622
- actions.push(`bootout ${LABEL}`);
623
- }
624
- else {
625
- warnings.push('launchctl_missing');
626
- }
627
- await terminateExistingMenuBarProcess(paths.executable_path);
628
- await fs.rm(paths.launch_agent_path, { force: true }).catch((err) => blockers.push(`remove_launch_agent_failed:${err?.message || err}`));
629
- await fs.rm(paths.install_dir, { recursive: true, force: true }).catch((err) => blockers.push(`remove_install_dir_failed:${err?.message || err}`));
630
- actions.push(`removed ${paths.launch_agent_path}`);
631
- actions.push(`removed ${paths.install_dir}`);
632
- const defaults = env.SKS_MENUBAR_DEFAULTS || await which('defaults').catch(() => null) || await fallbackTool('/usr/bin/defaults');
633
- if (defaults) {
634
- for (const key of [
635
- `NSStatusItem Preferred Position ${LABEL}`,
636
- `NSStatusItem Visible ${LABEL}`,
637
- `NSStatusItem VisibleCC ${LABEL}`
638
- ]) {
639
- await runProcess(defaults, ['delete', CONTROL_CENTER_DOMAIN, key], { timeoutMs: 3_000, maxOutputBytes: 8 * 1024 }).catch(() => undefined);
640
- }
641
- actions.push('removed Control Center status item defaults');
642
- }
643
- else {
644
- warnings.push('defaults_missing');
645
- }
646
- return { schema: 'sks.menubar-uninstall.v1', ok: blockers.length === 0, platform: process.platform, paths, actions, warnings, blockers };
647
- }
648
- async function fallbackTool(candidate) {
649
- return await exists(candidate).then((ok) => ok ? candidate : null).catch(() => null);
650
- }
651
- async function seedMenuBarPreferredPosition(env) {
652
- const defaults = env.SKS_MENUBAR_DEFAULTS || await which('defaults').catch(() => null) || await fallbackTool('/usr/bin/defaults');
653
- if (!defaults)
654
- return { ok: false, warning: 'defaults_missing_for_menubar_position_seed' };
655
- const writes = [
656
- ['write', CONTROL_CENTER_DOMAIN, `NSStatusItem Preferred Position ${LABEL}`, '-int', String(CONTROL_CENTER_PREFERRED_POSITION)],
657
- ['write', CONTROL_CENTER_DOMAIN, `NSStatusItem Visible ${LABEL}`, '-bool', 'true'],
658
- ['write', CONTROL_CENTER_DOMAIN, `NSStatusItem VisibleCC ${LABEL}`, '-bool', 'true']
659
- ];
660
- for (const args of writes) {
661
- const result = await runProcess(defaults, args, {
662
- timeoutMs: 10_000,
663
- maxOutputBytes: 16 * 1024
664
- }).catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
665
- if (result.code !== 0)
666
- return { ok: false, warning: 'menubar_position_seed_failed' };
667
- }
668
- return { ok: true };
669
- }
670
- /**
671
- * Refuse to auto-launch a menu bar app whose executable lives under a temp dir.
672
- * Release gates run in hermetic envs rooted at os.tmpdir()/SKS_TMP_DIR; without
673
- * this guard a gate could spawn a real GUI status item that leaks into the
674
- * user's live menu bar. This is defense-in-depth behind SKS_SKIP_SKS_MENUBAR_LAUNCH
675
- * and the home check.
676
- */
677
- export function isMenuBarInstallPathUnderTempDir(target, env = process.env) {
678
- const resolved = path.resolve(target);
679
- const roots = new Set();
680
- const addRoot = (value) => {
681
- if (!value)
682
- return;
683
- const abs = path.resolve(value);
684
- roots.add(abs);
685
- if (abs.startsWith('/var/'))
686
- roots.add(path.resolve('/private', abs.slice(1)));
687
- else if (abs.startsWith('/private/var/'))
688
- roots.add(abs.replace('/private', ''));
689
- };
690
- addRoot(os.tmpdir());
691
- addRoot(env.TMPDIR);
692
- addRoot(env.SKS_TMP_DIR);
693
- for (const root of roots) {
694
- if (resolved === root)
695
- return true;
696
- const prefix = root.endsWith(path.sep) ? root : root + path.sep;
697
- if (resolved.startsWith(prefix))
698
- return true;
699
- }
700
- return false;
701
- }
702
- function realUserHome() {
703
- try {
704
- const userHome = os.userInfo().homedir;
705
- if (userHome)
706
- return path.resolve(userHome);
707
- }
708
- catch {
709
- // Fall back below for platforms where userInfo is unavailable.
710
- }
711
- return path.resolve(os.homedir());
712
- }
713
- function packagedSksEntry() {
714
- const here = path.dirname(fileURLToPath(import.meta.url));
715
- return path.resolve(here, '..', '..', 'bin', 'sks.js');
716
- }
717
- async function resolveSksEntryForInstall(input) {
718
- const packaged = packagedSksEntry();
719
- let resolved = input.explicit ? path.resolve(input.explicit) : packaged;
720
- let existsResolved = await exists(resolved);
721
- let projectLocal = isSubpath(resolved, input.root);
722
- if (projectLocal) {
723
- input.warnings.push('sks_entry_project_local');
724
- }
725
- if (!existsResolved && await exists(input.actionScriptPath))
726
- input.warnings.push('sks_entry_unresolved_stale_action_script_not_reused');
727
- return {
728
- requested: input.explicit ? path.resolve(input.explicit) : null,
729
- resolved: existsResolved ? resolved : null,
730
- packaged,
731
- exists: existsResolved,
732
- project_local: projectLocal,
733
- used_previous_script: false
734
- };
735
- }
736
- export function actionScriptSource(input) {
737
- return `#!/bin/zsh
738
- set -e
739
- export PATH="/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH"
740
- # launchd starts this app with cwd=/. sks treats an unmarked cwd as the project
741
- # root fallback, and / is neither writable nor a workspace, so give every
742
- # menu-bar-spawned command a sane home-directory cwd instead.
743
- cd "$HOME" 2>/dev/null || true
744
- # Menu-bar actions operate on global state (~/.codex, keychain, launchd), never
745
- # on a project, so the per-project update-migration gate must not fire here —
746
- # it would otherwise treat $HOME as a project and run a migration doctor in it.
747
- export SKS_UPDATE_MIGRATION_GATE_DISABLED=1
748
- NODE_BIN=${shellQuote(input.nodeBin)}
749
- SKS_ENTRY=${shellQuote(input.sksEntry)}
750
-
751
- notify_sks_missing() {
752
- /usr/bin/osascript -e 'display notification "sks CLI를 찾을 수 없습니다. sks doctor --fix 또는 npm install -g sneakoscope 실행 후 다시 시도하세요." with title "SKS Menu Bar"' >/dev/null 2>&1 || true
753
- }
754
-
755
- resolve_node_bin() {
756
- if [ -x "$NODE_BIN" ]; then
757
- printf '%s\\n' "$NODE_BIN"
758
- return 0
759
- fi
760
- # launchd does not initialize NVM, and a login shell can resolve a different
761
- # global Node before the menu owner's current NVM install. Prefer the
762
- # HOME-scoped runtime; run_node_entry prepends its bin directory to PATH.
763
- for cand in "$HOME"/.nvm/versions/node/*/bin/node(Nn[-1]); do
764
- if [ -x "$cand" ]; then
765
- printf '%s\\n' "$cand"
766
- return 0
767
- fi
768
- done
769
- local login_node
770
- login_node="$(/bin/zsh -lc 'command -v node' 2>/dev/null | /usr/bin/head -n 1 || true)"
771
- if [ -n "$login_node" ] && [ -x "$login_node" ]; then
772
- printf '%s\\n' "$login_node"
773
- return 0
774
- fi
775
- for cand in /opt/homebrew/bin/node /usr/local/bin/node /usr/bin/node; do
776
- if [ -x "$cand" ]; then
777
- printf '%s\\n' "$cand"
778
- return 0
779
- fi
780
- done
781
- return 1
782
- }
783
-
784
- run_node_entry() {
785
- local entry="$1"
786
- shift
787
- if [ ! -f "$entry" ]; then
788
- return 1
789
- fi
790
- local node_bin
791
- node_bin="$(resolve_node_bin || true)"
792
- if [ -z "$node_bin" ]; then
793
- return 1
794
- fi
795
- local node_bin_dir
796
- node_bin_dir="$(/usr/bin/dirname "$node_bin")"
797
- if [ -d "$node_bin_dir" ]; then
798
- export PATH="$node_bin_dir:$PATH"
799
- fi
800
- exec "$node_bin" "$entry" "$@"
801
- }
802
-
803
- # The installer pins the entry that produced this menu build. Prefer it over
804
- # PATH/global copies so a newly updated 6.0.3 companion cannot execute stale
805
- # 6.0.2 auth/restart logic. Fall back only when the pinned file or Node runtime
806
- # is unavailable.
807
- if [ -f "$SKS_ENTRY" ]; then
808
- run_node_entry "$SKS_ENTRY" "$@" || true
809
- fi
810
-
811
- SKS_BIN="$(/bin/zsh -lc 'command -v sks' 2>/dev/null | /usr/bin/head -n 1 || true)"
812
- if [ -n "$SKS_BIN" ] && [ -x "$SKS_BIN" ]; then
813
- exec "$SKS_BIN" "$@"
814
- fi
815
-
816
- NPM_ROOT="$(/bin/zsh -lc 'npm root -g' 2>/dev/null | /usr/bin/head -n 1 || true)"
817
- if [ -n "$NPM_ROOT" ]; then
818
- run_node_entry "$NPM_ROOT/sneakoscope/dist/bin/sks.js" "$@" || true
819
- fi
820
-
821
- for entry in "$HOME"/.nvm/versions/node/*/lib/node_modules/sneakoscope/dist/bin/sks.js(Nn[-1]) /opt/homebrew/lib/node_modules/sneakoscope/dist/bin/sks.js /usr/local/lib/node_modules/sneakoscope/dist/bin/sks.js; do
822
- if [ -f "$entry" ]; then
823
- run_node_entry "$entry" "$@" || true
824
- fi
825
- done
826
- notify_sks_missing
827
- echo "SKS command not found. Run npm install -g sneakoscope or sks doctor --fix, then try again." >&2
828
- exit 127
829
- `;
830
- }
831
- export function swiftMenuSource(input) {
832
- const codexLifecycleSource = input.codexBundleId ? `
833
- func configureCodexLifecycleSync() {
834
- setIconVisible(isCodexRunning())
835
- let center = NSWorkspace.shared.notificationCenter
836
- center.addObserver(self, selector: #selector(workspaceAppLaunched(_:)), name: NSWorkspace.didLaunchApplicationNotification, object: nil)
837
- center.addObserver(self, selector: #selector(workspaceAppTerminated(_:)), name: NSWorkspace.didTerminateApplicationNotification, object: nil)
838
- }
839
-
840
- @objc func workspaceAppLaunched(_ notification: Notification) {
841
- guard let app = notification.userInfo?[NSWorkspace.applicationUserInfoKey] as? NSRunningApplication else { return }
842
- if app.bundleIdentifier == codexBundleId {
843
- setIconVisible(true)
844
- updateState()
845
- }
846
- }
847
-
848
- @objc func workspaceAppTerminated(_ notification: Notification) {
849
- guard let app = notification.userInfo?[NSWorkspace.applicationUserInfoKey] as? NSRunningApplication else { return }
850
- if app.bundleIdentifier == codexBundleId {
851
- if quitWithCodex {
852
- NSApplication.shared.terminate(nil)
853
- } else {
854
- setIconVisible(false)
855
- }
856
- }
857
- }
858
-
859
- func setIconVisible(_ visible: Bool) {
860
- statusItem.isVisible = visible
861
- if visible {
862
- reassertControlCenterVisibility()
863
- }
864
- }
865
-
866
- func isCodexRunning() -> Bool {
867
- guard let bundle = codexBundleId else { return true }
868
- return NSWorkspace.shared.runningApplications.contains { $0.bundleIdentifier == bundle }
869
- }
870
- ` : `
871
- func configureCodexLifecycleSync() {
872
- setIconVisible(true)
873
- statusLineItem.title = "Codex app not detected — sync disabled"
874
- }
875
-
876
- func setIconVisible(_ visible: Bool) {
877
- statusItem.isVisible = visible
878
- if visible {
879
- reassertControlCenterVisibility()
880
- }
881
- }
882
-
883
- func isCodexRunning() -> Bool {
884
- return true
885
- }
886
- `;
887
- return `import Cocoa
888
- import Foundation
889
-
890
- let actionScript = ${swiftString(input.actionScriptPath)}
891
- let buildStampPath = ${swiftString(input.buildStampPath)}
892
- let menubarConfigPath = ${swiftString(input.configPath)}
893
- let lastActionLogPath = ${swiftString(input.lastActionLogPath)}
894
- let codexBundleId: String? = ${input.codexBundleId ? swiftString(input.codexBundleId) : 'nil'}
895
- let packageVersion = ${swiftString(input.packageVersion)}
896
- let menuBarLabel = ${swiftString(SKS_MENUBAR_LABEL)}
897
- let controlCenterDomain = ${swiftString(CONTROL_CENTER_DOMAIN)}
898
-
899
- /// macOS persists status-item visibility hints per-label in Control Center's
900
- /// defaults domain (see installSksMenuBar's seedMenuBarPreferredPosition).
901
- /// Toggling NSStatusItem.isVisible back to true inside a resident process is
902
- /// not always sufficient to make Control Center re-render a previously
903
- /// hidden item, so re-show must reassert the same Control Center defaults
904
- /// the installer seeds, or the icon can stay invisible after a Codex
905
- /// quit/relaunch cycle even though isVisible is technically true again.
906
- func reassertControlCenterVisibility() {
907
- let defaultsBin = "/usr/bin/defaults"
908
- guard FileManager.default.isExecutableFile(atPath: defaultsBin) else { return }
909
- let writes: [[String]] = [
910
- ["write", controlCenterDomain, "NSStatusItem Visible \\(menuBarLabel)", "-bool", "true"],
911
- ["write", controlCenterDomain, "NSStatusItem VisibleCC \\(menuBarLabel)", "-bool", "true"]
912
- ]
913
- for args in writes {
914
- let process = Process()
915
- process.executableURL = URL(fileURLWithPath: defaultsBin)
916
- process.arguments = args
917
- process.standardOutput = FileHandle.nullDevice
918
- process.standardError = FileHandle.nullDevice
919
- try? process.run()
920
- }
921
- }
922
-
923
- func clipped(_ value: String, limit: Int = 700) -> String {
924
- return String(value.prefix(limit))
925
- }
926
-
927
- // sks commands report failures as JSON ({reason|status|error|blockers[]|guidance[]}
928
- // as short snake_case codes), which read as opaque "error codes" if dumped raw into
929
- // an alert. Extract the readable parts and translate known codes into plain English;
930
- // unknown codes fall back to "snake_case -> Words" rather than staying cryptic, and
931
- // genuinely non-JSON output (already plain text) passes through unchanged.
932
- func humanizeSksFailure(_ text: String) -> String {
933
- let trimmed = text.trimmingCharacters(in: .whitespacesAndNewlines)
934
- guard let data = trimmed.data(using: .utf8),
935
- let obj = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] else {
936
- return text
937
- }
938
- var lines: [String] = []
939
- if let reason = obj["reason"] as? String {
940
- lines.append(humanizeSksCode(reason))
941
- } else if let status = obj["status"] as? String, !["ok", "pass", "verified", "verified_partial"].contains(status) {
942
- lines.append(humanizeSksCode(status))
943
- }
944
- if let errorMessage = obj["error"] as? String, !errorMessage.isEmpty {
945
- lines.append(errorMessage)
946
- }
947
- if let blockers = obj["blockers"] as? [String], !blockers.isEmpty {
948
- lines.append(contentsOf: blockers.map { "- " + humanizeSksCode($0) })
949
- }
950
- if let guidance = obj["guidance"] as? [String], !guidance.isEmpty {
951
- lines.append("")
952
- lines.append(contentsOf: guidance)
953
- }
954
- return lines.isEmpty ? text : lines.joined(separator: "\\n")
955
- }
956
-
957
- func humanizeSksCode(_ code: String) -> String {
958
- let known: [String: String] = [
959
- "missing_host_or_base_url": "No domain or base URL was entered.",
960
- "missing_api_key": "No API key was entered.",
961
- "setup_needed": "codex-lb is not configured yet.",
962
- "cancelled": "Setup was cancelled.",
963
- "process_only_cancelled": "Setup was cancelled (process-only mode was not confirmed).",
964
- "process_only_requires_yes": "This setup would only be kept for the current session — nothing durable was saved."
965
- ]
966
- if let mapped = known[code] { return mapped }
967
- let words = code.split(separator: "_").joined(separator: " ")
968
- guard let first = words.first else { return code }
969
- return String(first).uppercased() + words.dropFirst()
970
- }
971
-
972
- func showAlert(_ message: String, informative: String = "") {
973
- DispatchQueue.main.async {
974
- NSApp.activate(ignoringOtherApps: true)
975
- let alert = NSAlert()
976
- alert.messageText = message
977
- alert.informativeText = clipped(informative)
978
- alert.alertStyle = .warning
979
- alert.runModal()
980
- }
981
- }
982
-
983
- func promptText(title: String, message: String, placeholder: String = "", secure: Bool = false) -> String? {
984
- NSApp.activate(ignoringOtherApps: true)
985
- let alert = NSAlert()
986
- alert.messageText = title
987
- alert.informativeText = message
988
- alert.addButton(withTitle: "OK")
989
- alert.addButton(withTitle: "Cancel")
990
- let field: NSTextField = secure ? NSSecureTextField(frame: NSRect(x: 0, y: 0, width: 320, height: 24)) : NSTextField(frame: NSRect(x: 0, y: 0, width: 320, height: 24))
991
- field.placeholderString = placeholder
992
- alert.accessoryView = field
993
- let response = alert.runModal()
994
- if response != .alertFirstButtonReturn { return nil }
995
- let value = field.stringValue.trimmingCharacters(in: .whitespacesAndNewlines)
996
- return value.isEmpty ? nil : value
997
- }
998
-
999
- func promptChoice(title: String, message: String, options: [String]) -> String? {
1000
- NSApp.activate(ignoringOtherApps: true)
1001
- let alert = NSAlert()
1002
- alert.messageText = title
1003
- alert.informativeText = message
1004
- alert.addButton(withTitle: "OK")
1005
- alert.addButton(withTitle: "Cancel")
1006
- let popup = NSPopUpButton(frame: NSRect(x: 0, y: 0, width: 320, height: 26), pullsDown: false)
1007
- popup.addItems(withTitles: options)
1008
- alert.accessoryView = popup
1009
- let response = alert.runModal()
1010
- if response != .alertFirstButtonReturn { return nil }
1011
- return popup.titleOfSelectedItem
1012
- }
1013
-
1014
- func parseJsonObject(_ text: String) -> [String: Any]? {
1015
- guard let data = text.data(using: .utf8) else { return nil }
1016
- return (try? JSONSerialization.jsonObject(with: data, options: [])) as? [String: Any]
1017
- }
1018
-
1019
- func runProcess(_ executable: String, _ args: [String] = [], stdinText: String? = nil, completion: ((Int32, String) -> Void)? = nil) {
1020
- let process = Process()
1021
- let output = Pipe()
1022
- process.executableURL = URL(fileURLWithPath: executable)
1023
- process.arguments = args
1024
- process.standardOutput = output
1025
- process.standardError = output
1026
- var inputPipe: Pipe?
1027
- if stdinText != nil {
1028
- let pipe = Pipe()
1029
- process.standardInput = pipe
1030
- inputPipe = pipe
1031
- }
1032
- process.terminationHandler = { proc in
1033
- let data = output.fileHandleForReading.readDataToEndOfFile()
1034
- let text = String(data: data, encoding: .utf8) ?? ""
1035
- completion?(proc.terminationStatus, text)
1036
- }
1037
- do {
1038
- try process.run()
1039
- if let stdinText = stdinText, let inputPipe = inputPipe {
1040
- inputPipe.fileHandleForWriting.write(Data(stdinText.utf8))
1041
- inputPipe.fileHandleForWriting.closeFile()
1042
- }
1043
- } catch {
1044
- completion?(-1, String(describing: error))
1045
- }
1046
- }
1047
-
1048
- func showNotification(_ title: String, _ body: String) {
1049
- // AppleScript string literals require double quotes and cannot contain raw
1050
- // newlines, so inlining arbitrary command output into the script text throws
1051
- // a -2741 syntax error. Keep the script a fixed literal and pass body/title
1052
- // as osascript argv instead — no escaping, no syntax error, any text is safe.
1053
- let script = "on run argv\\ndisplay notification (item 1 of argv) with title (item 2 of argv)\\nend run"
1054
- runProcess("/usr/bin/osascript", ["-e", script, clipped(body), title]) { code, output in
1055
- if code != 0 {
1056
- showAlert(title, informative: output)
1057
- }
1058
- }
1059
- }
1060
-
1061
- func redactSecrets(_ value: String, secrets: [String] = []) -> String {
1062
- var text = value
1063
- for secret in secrets where secret.count >= 4 {
1064
- text = text.replacingOccurrences(of: secret, with: "[redacted]")
1065
- }
1066
- let patterns = [
1067
- #"sk-proj-[A-Za-z0-9_-]{12,}"#,
1068
- #"sk-or-v1-[A-Za-z0-9_-]{12,}"#,
1069
- #"sk-or-[A-Za-z0-9_-]{12,}"#,
1070
- #"sk-clb-[A-Za-z0-9_-]{8,}"#,
1071
- #"sk-[A-Za-z0-9_-]{20,}"#,
1072
- #"(?i)(api[_-]?key|secret|token)\\s*[:=]\\s*[^\\s"',}]+"#
1073
- ]
1074
- for pattern in patterns {
1075
- if let regex = try? NSRegularExpression(pattern: pattern) {
1076
- let range = NSRange(text.startIndex..<text.endIndex, in: text)
1077
- text = regex.stringByReplacingMatches(in: text, range: range, withTemplate: "[redacted]")
1078
- }
1079
- }
1080
- return text
1081
- }
1082
-
1083
- func writeActionLog(_ text: String) {
1084
- let url = URL(fileURLWithPath: lastActionLogPath)
1085
- try? FileManager.default.createDirectory(at: url.deletingLastPathComponent(), withIntermediateDirectories: true)
1086
- if !FileManager.default.fileExists(atPath: lastActionLogPath) {
1087
- FileManager.default.createFile(atPath: lastActionLogPath, contents: Data(), attributes: [.posixPermissions: 0o600])
1088
- }
1089
- try? FileManager.default.setAttributes([.posixPermissions: 0o600], ofItemAtPath: lastActionLogPath)
1090
- if let handle = try? FileHandle(forWritingTo: url) {
1091
- try? handle.truncate(atOffset: 0)
1092
- handle.write(Data(text.utf8))
1093
- try? handle.close()
1094
- }
1095
- }
1096
-
1097
- struct MenuState {
1098
- let title: String
1099
- let line: String
1100
- }
1101
-
1102
- struct MenuBarConfig {
1103
- let quitWithCodex: Bool
1104
- }
1105
-
1106
- final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate {
1107
- var statusItem: NSStatusItem!
1108
- var statusLineItem: NSMenuItem!
1109
- var codexLbItem: NSMenuItem!
1110
- var oauthItem: NSMenuItem!
1111
- var fastModeOnItem: NSMenuItem!
1112
- var fastModeOffItem: NSMenuItem!
1113
- var codexCliVersionItem: NSMenuItem!
1114
- var codexCliUpdateItem: NSMenuItem!
1115
- var timer: Timer?
1116
- var busy = false
1117
- var lastFailure = false
1118
- var quitWithCodex = false
1119
- var codexCliCurrentVersion: String?
1120
- var codexCliLatestVersion: String?
1121
- var codexCliUpdateAvailable = false
1122
- var codexCliMissing = false
1123
- var codexCliStatusUnavailable = false
1124
- var codexCliStatusRequestGeneration = 0
1125
-
1126
- func applicationDidFinishLaunching(_ notification: Notification) {
1127
- NSApp.setActivationPolicy(.accessory)
1128
- quitWithCodex = readConfig().quitWithCodex
1129
- statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
1130
- statusItem.autosaveName = "com.sneakoscope.sks-menubar"
1131
- if let button = statusItem.button {
1132
- configureStatusButton(button, title: "SKS")
1133
- }
1134
-
1135
- let menu = NSMenu()
1136
- menu.delegate = self
1137
- statusLineItem = NSMenuItem(title: "SKS v\\(packageVersion) - starting", action: nil, keyEquivalent: "")
1138
- statusLineItem.isEnabled = false
1139
- menu.addItem(statusLineItem)
1140
- menu.addItem(NSMenuItem.separator())
1141
- codexLbItem = add(menu, "Use codex-lb", #selector(useCodexLb))
1142
- oauthItem = add(menu, "Use ChatGPT OAuth", #selector(useChatGptOAuth))
1143
- add(menu, "Set codex-lb Domain and Key", #selector(setCodexLbDomainAndKey))
1144
- menu.addItem(NSMenuItem.separator())
1145
- add(menu, "Set OpenRouter Key and GLM Profiles", #selector(setOpenRouterKey))
1146
- fastModeOnItem = add(menu, "Fast Mode On", #selector(fastModeOn))
1147
- fastModeOffItem = add(menu, "Fast Mode Off", #selector(fastModeOff))
1148
- add(menu, "Fast Check", #selector(fastCheck))
1149
- add(menu, "SKS Version Check", #selector(sksVersionCheck))
1150
- add(menu, "Update SKS Now", #selector(updateSksNow))
1151
- menu.addItem(NSMenuItem.separator())
1152
- codexCliVersionItem = NSMenuItem(title: "Codex CLI: checking…", action: nil, keyEquivalent: "")
1153
- codexCliVersionItem.isEnabled = false
1154
- menu.addItem(codexCliVersionItem)
1155
- codexCliUpdateItem = add(menu, "Update Codex CLI Now", #selector(updateCodexCliNow))
1156
- add(menu, "Run sks doctor --fix", #selector(runDoctorFix))
1157
- menu.addItem(NSMenuItem.separator())
1158
- add(menu, "Open Dashboard", #selector(openDashboard))
1159
- add(menu, "Open Codex Settings", #selector(openCodexSettings))
1160
- add(menu, "Restart Codex", #selector(restartCodex))
1161
- menu.addItem(NSMenuItem.separator())
1162
- add(menu, "View Last Log", #selector(viewLastLog))
1163
- add(menu, "Quit SKS Menu", #selector(quit))
1164
- statusItem.menu = menu
1165
- configureCodexLifecycleSync()
1166
- updateState()
1167
- updateCodexCliStatus()
1168
- timer = Timer.scheduledTimer(withTimeInterval: 30.0, repeats: true) { [weak self] _ in self?.updateState() }
1169
- }
1170
-
1171
- func menuWillOpen(_ menu: NSMenu) {
1172
- updateState()
1173
- updateAuthModeChecks()
1174
- updateFastModeChecks()
1175
- updateCodexCliStatus()
1176
- }
1177
-
1178
- func configureStatusButton(_ button: NSStatusBarButton, title: String) {
1179
- button.image = nil
1180
- button.title = title
1181
- let titleFont = NSFont.systemFont(ofSize: NSFont.systemFontSize, weight: .semibold)
1182
- let titleAttributes: [NSAttributedString.Key: Any] = [
1183
- .font: titleFont,
1184
- .foregroundColor: NSColor.labelColor
1185
- ]
1186
- button.font = titleFont
1187
- button.attributedTitle = NSAttributedString(string: title, attributes: titleAttributes)
1188
- button.toolTip = "SKS - Sneakoscope Codex settings"
1189
- button.setAccessibilityLabel(title)
1190
- button.setAccessibilityHelp("Open SKS menu")
1191
- }
1192
-
1193
- func add(_ menu: NSMenu, _ title: String, _ selector: Selector) -> NSMenuItem {
1194
- let item = NSMenuItem(title: title, action: selector, keyEquivalent: "")
1195
- item.target = self
1196
- menu.addItem(item)
1197
- return item
1198
- }
1199
-
1200
- ${codexLifecycleSource}
1201
-
1202
- func readConfig() -> MenuBarConfig {
1203
- guard let data = FileManager.default.contents(atPath: menubarConfigPath),
1204
- let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else {
1205
- return MenuBarConfig(quitWithCodex: false)
1206
- }
1207
- return MenuBarConfig(quitWithCodex: json["quit_with_codex"] as? Bool == true)
1208
- }
1209
-
1210
- func updateState() {
1211
- let state = readMenuState()
1212
- if let button = statusItem.button {
1213
- configureStatusButton(button, title: state.title)
1214
- }
1215
- statusLineItem.title = state.line
1216
- }
1217
-
1218
- func readMenuState() -> MenuState {
1219
- if codexBundleId == nil {
1220
- return MenuState(title: "SKS", line: "Codex app not detected — sync disabled")
1221
- }
1222
- if busy {
1223
- return MenuState(title: "SKS ⋯", line: "SKS v\\(packageVersion) - working")
1224
- }
1225
- if !actionScriptUsable() {
1226
- return MenuState(title: "SKS ⚠", line: "SKS v\\(packageVersion) - action script broken (run sks doctor --fix)")
1227
- }
1228
- if lastFailure {
1229
- return MenuState(title: "SKS ⚠", line: "SKS v\\(packageVersion) - last action failed")
1230
- }
1231
- if codexCliMissing {
1232
- return MenuState(title: "SKS ⚠", line: "SKS v\\(packageVersion) · Codex CLI not installed")
1233
- }
1234
- if codexCliStatusUnavailable {
1235
- let current = codexCliCurrentVersion.map { " " + $0 } ?? ""
1236
- return MenuState(title: "SKS ⚠", line: "SKS v\\(packageVersion) · Codex CLI\\(current) status unavailable")
1237
- }
1238
- if codexCliUpdateAvailable {
1239
- let current = codexCliCurrentVersion ?? "unknown"
1240
- let latest = codexCliLatestVersion ?? "latest"
1241
- return MenuState(title: "SKS ⬆", line: "SKS v\\(packageVersion) · Codex CLI \\(current) → \\(latest) update available")
1242
- }
1243
- if updateAvailable() {
1244
- return MenuState(title: "SKS ↑", line: "SKS v\\(packageVersion) - update available")
1245
- }
1246
- let codexVersion = codexCliCurrentVersion.map { " · Codex CLI " + $0 } ?? ""
1247
- return MenuState(title: "SKS", line: "SKS v\\(packageVersion)\\(codexVersion) · OK")
1248
- }
1249
-
1250
- func actionScriptUsable() -> Bool {
1251
- return FileManager.default.isExecutableFile(atPath: actionScript)
1252
- }
1253
-
1254
- func updateAvailable() -> Bool {
1255
- let cachePath = NSString(string: "~/.sneakoscope/cache/update-notice.json").expandingTildeInPath
1256
- guard let data = FileManager.default.contents(atPath: cachePath) else { return false }
1257
- guard let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else { return false }
1258
- if let latest = json["latest_version"] as? String, !latest.isEmpty {
1259
- return latest.compare(packageVersion, options: .numeric) == .orderedDescending
1260
- }
1261
- return json["update_available"] as? Bool == true
1262
- }
1263
-
1264
- func runSksCapture(_ args: [String], title: String, stdinText: String? = nil, notify: Bool = true, completion: ((Int32, String) -> Void)? = nil) {
1265
- busy = true
1266
- lastFailure = false
1267
- updateState()
1268
- runProcess(actionScript, args, stdinText: stdinText) { [weak self] code, output in
1269
- let redacted = redactSecrets(output, secrets: stdinText == nil ? [] : [stdinText ?? ""])
1270
- writeActionLog("$ sks \\(args.joined(separator: " "))\\n\\(redacted)\\n")
1271
- DispatchQueue.main.async {
1272
- self?.busy = false
1273
- self?.lastFailure = code != 0
1274
- self?.updateState()
1275
- if notify {
1276
- if code == 0 {
1277
- showNotification(title, "OK\\n" + redacted)
1278
- } else {
1279
- showAlert(title + " failed", informative: humanizeSksFailure(redacted))
1280
- }
1281
- }
1282
- completion?(code, redacted)
1283
- }
1284
- }
1285
- }
1286
-
1287
- func runSksBackground(_ args: [String], title: String, stdinText: String? = nil, completion: ((Int32, String) -> Void)? = nil) {
1288
- runSksCapture(args, title: title, stdinText: stdinText, notify: true, completion: completion)
1289
- }
1290
-
1291
- func runSksSilent(_ args: [String], completion: ((Int32, String) -> Void)? = nil) {
1292
- runProcess(actionScript, args) { code, output in
1293
- let redacted = redactSecrets(output)
1294
- DispatchQueue.main.async {
1295
- completion?(code, redacted)
1296
- }
1297
- }
1298
- }
1299
-
1300
- func startSksDetached(_ args: [String], title: String) {
1301
- let process = Process()
1302
- process.executableURL = URL(fileURLWithPath: actionScript)
1303
- process.arguments = args
1304
- writeActionLog("$ sks \\(args.joined(separator: " "))\\nstarted\\n")
1305
- if let handle = try? FileHandle(forWritingTo: URL(fileURLWithPath: lastActionLogPath)) {
1306
- process.standardOutput = handle
1307
- process.standardError = handle
1308
- }
1309
- do {
1310
- try process.run()
1311
- showNotification(title, "started")
1312
- } catch {
1313
- showAlert(title + " failed", informative: String(describing: error))
1314
- }
1315
- }
1316
-
1317
- func updateAuthModeChecks() {
1318
- runSksSilent(["codex-lb", "status", "--json"]) { [weak self] code, output in
1319
- guard let self = self else { return }
1320
- let json = parseJsonObject(output)
1321
- guard code == 0, let json = json else {
1322
- self.codexLbItem.state = .off
1323
- self.oauthItem.state = .off
1324
- return
1325
- }
1326
- let selected = json["selected"] as? Bool == true
1327
- let providerContract = json["provider_contract_ok"] as? Bool == true
1328
- let authMode = (json["auth_mode"] as? String)?.lowercased() ?? ""
1329
- let codexLbActive = selected && providerContract && authMode == "apikey"
1330
- let oauthActive = !selected && (authMode.contains("chatgpt") || authMode.contains("oauth") || authMode.contains("browser"))
1331
- self.codexLbItem.state = codexLbActive ? .on : .off
1332
- self.oauthItem.state = oauthActive ? .on : .off
1333
- }
1334
- }
1335
-
1336
- func updateFastModeChecks() {
1337
- runSksSilent(["fast-mode", "status", "--json"]) { [weak self] code, output in
1338
- guard let self = self else { return }
1339
- let json = parseJsonObject(output)
1340
- guard code == 0, let json = json else {
1341
- self.fastModeOnItem.state = .off
1342
- self.fastModeOffItem.state = .off
1343
- return
1344
- }
1345
- guard let global = json["global"] as? [String: Any], let desktopFast = global["on"] as? Bool else {
1346
- self.fastModeOnItem.state = .off
1347
- self.fastModeOffItem.state = .off
1348
- return
1349
- }
1350
- let fastMode = json["fast_mode"] as? Bool == true
1351
- let serviceTier = (json["service_tier"] as? String)?.lowercased()
1352
- let projectFast = fastMode || serviceTier == "fast" || serviceTier == "priority"
1353
- self.fastModeOnItem.state = projectFast && desktopFast ? .on : .off
1354
- self.fastModeOffItem.state = !projectFast && !desktopFast ? .on : .off
1355
- }
1356
- }
1357
-
1358
- func updateCodexCliStatus(refresh: Bool = false) {
1359
- codexCliStatusRequestGeneration += 1
1360
- let requestGeneration = codexCliStatusRequestGeneration
1361
- var args = ["codex", "update-status", "--json"]
1362
- if refresh { args.append("--refresh") }
1363
- runSksSilent(args) { [weak self] code, output in
1364
- guard let self = self else { return }
1365
- guard self.codexCliStatusRequestGeneration == requestGeneration else { return }
1366
- guard let json = parseJsonObject(output),
1367
- json["schema"] as? String == "sks.codex-cli-update-status.v1",
1368
- let ok = json["ok"] as? Bool,
1369
- let installed = json["installed"] as? Bool,
1370
- let status = json["status"] as? String,
1371
- ["current", "update_available", "missing", "update_check_unavailable"].contains(status),
1372
- code == 0 || (!ok && !installed && status == "missing") else {
1373
- self.markCodexCliStatusUnavailable()
1374
- return
1375
- }
1376
- let current = json["current_version"] as? String
1377
- let latest = json["latest_version"] as? String
1378
- let reportedUpdateAvailable = json["update_available"] as? Bool
1379
- let trusted = status == "missing"
1380
- ? !ok && !installed && current == nil
1381
- : ok && installed && current != nil
1382
- && (status == "update_check_unavailable"
1383
- || (status == "update_available" && reportedUpdateAvailable == true)
1384
- || (status == "current" && reportedUpdateAvailable == false))
1385
- guard trusted else {
1386
- self.markCodexCliStatusUnavailable()
1387
- return
1388
- }
1389
- let updateAvailable = reportedUpdateAvailable == true
1390
- self.codexCliCurrentVersion = current
1391
- self.codexCliLatestVersion = latest
1392
- self.codexCliUpdateAvailable = updateAvailable
1393
- self.codexCliMissing = !installed
1394
- self.codexCliStatusUnavailable = status == "update_check_unavailable"
1395
- if !installed {
1396
- self.codexCliVersionItem.title = "Codex CLI: not installed"
1397
- } else if status == "update_check_unavailable" {
1398
- self.codexCliVersionItem.title = "Codex CLI: \\(current ?? "unknown") (update check unavailable)"
1399
- } else if updateAvailable {
1400
- self.codexCliVersionItem.title = "Codex CLI: \\(current ?? "unknown") → \\(latest ?? "latest") ⬆"
1401
- } else if let current = current, let latest = latest {
1402
- self.codexCliVersionItem.title = current == latest ? "Codex CLI: \\(current) (current)" : "Codex CLI: \\(current) · latest \\(latest)"
1403
- } else {
1404
- self.codexCliVersionItem.title = "Codex CLI: \\(current ?? "unknown") (latest check unavailable)"
1405
- }
1406
- self.codexCliUpdateItem.title = updateAvailable ? "Update Codex CLI Now ⬆" : "Update Codex CLI Now"
1407
- self.updateState()
1408
- }
1409
- }
1410
-
1411
- func markCodexCliStatusUnavailable() {
1412
- codexCliVersionItem.title = "Codex CLI: status unavailable"
1413
- codexCliUpdateItem.title = "Update Codex CLI Now"
1414
- codexCliCurrentVersion = nil
1415
- codexCliLatestVersion = nil
1416
- codexCliUpdateAvailable = false
1417
- codexCliMissing = false
1418
- codexCliStatusUnavailable = true
1419
- updateState()
1420
- }
1421
-
1422
- @objc func useCodexLb() {
1423
- runSksBackground(["codex-lb", "use-codex-lb", "--restart-app", "--json"], title: "Use codex-lb") { [weak self] code, _ in
1424
- if code == 0 { self?.updateAuthModeChecks() }
1425
- }
1426
- }
1427
-
1428
- @objc func useChatGptOAuth() {
1429
- runSksBackground(["codex-lb", "use-oauth", "--restart-app", "--json"], title: "Use ChatGPT OAuth") { [weak self] code, _ in
1430
- if code == 0 { self?.updateAuthModeChecks() }
1431
- }
1432
- }
1433
-
1434
- @objc func setCodexLbDomainAndKey() {
1435
- guard let domain = promptText(title: "Set codex-lb Domain", message: "Enter just your codex-lb domain or base URL — the /backend-api/codex path is added automatically.", placeholder: "lb.example.com") else { return }
1436
- guard let key = promptText(title: "Set codex-lb Key", message: "Enter your codex-lb API key.", placeholder: "sk-clb-...", secure: true) else { return }
1437
- runSksBackground(["codex-lb", "setup", "--host", domain, "--api-key-stdin", "--yes", "--restart-app", "--json"], title: "Set codex-lb", stdinText: key + "\\n") { [weak self] code, _ in
1438
- if code == 0 { self?.updateAuthModeChecks() }
1439
- }
1440
- }
1441
-
1442
- @objc func setOpenRouterKey() {
1443
- guard let key = promptText(title: "Set OpenRouter Key", message: "Enter your OpenRouter API key.", placeholder: "sk-or-v1-...", secure: true) else { return }
1444
- runSksBackground(["codex-app", "set-openrouter-key", "--api-key-stdin", "--restart-app", "--json"], title: "Set OpenRouter Key", stdinText: key + "\\n")
1445
- }
1446
-
1447
- @objc func fastModeOn() {
1448
- runSksBackground(["fast-mode", "on", "--json"], title: "Fast Mode On") { [weak self] code, _ in
1449
- if code == 0 { self?.updateFastModeChecks() }
1450
- }
1451
- }
1452
-
1453
- @objc func fastModeOff() {
1454
- runSksBackground(["fast-mode", "off", "--json"], title: "Fast Mode Off") { [weak self] code, _ in
1455
- if code == 0 { self?.updateFastModeChecks() }
1456
- }
1457
- }
1458
-
1459
- @objc func fastCheck() {
1460
- runSksBackground(["codex-lb", "fast-check"], title: "SKS Fast Check")
1461
- }
1462
-
1463
- @objc func sksVersionCheck() {
1464
- runSksBackground(["update", "check"], title: "SKS Version Check")
1465
- }
1466
-
1467
- @objc func updateSksNow() {
1468
- runSksBackground(["update"], title: "Update SKS Now")
1469
- }
1470
-
1471
- @objc func updateCodexCliNow() {
1472
- runSksBackground(["codex", "update", "--json"], title: "Update Codex CLI Now") { [weak self] _, _ in
1473
- self?.updateCodexCliStatus(refresh: true)
1474
- }
1475
- }
1476
-
1477
- @objc func runDoctorFix() {
1478
- runSksBackground(["doctor", "--fix", "--global-only", "--json"], title: "Run sks doctor --fix") { [weak self] code, _ in
1479
- if code == 0 {
1480
- self?.updateAuthModeChecks()
1481
- self?.updateFastModeChecks()
1482
- self?.updateCodexCliStatus(refresh: true)
1483
- }
1484
- }
1485
- }
1486
-
1487
- @objc func openDashboard() {
1488
- let urlString = "http://127.0.0.1:4477"
1489
- runProcess("/usr/bin/curl", ["-fsS", "--max-time", "1", urlString]) { [weak self] code, _ in
1490
- DispatchQueue.main.async {
1491
- if code == 0 {
1492
- if let url = URL(string: urlString) { NSWorkspace.shared.open(url) }
1493
- } else {
1494
- self?.startSksDetached(["ui"], title: "SKS Dashboard")
1495
- self?.waitForDashboard(urlString, attempts: 20)
1496
- }
1497
- }
1498
- }
1499
- }
1500
-
1501
- func waitForDashboard(_ urlString: String, attempts: Int) {
1502
- runProcess("/usr/bin/curl", ["-fsS", "--max-time", "1", urlString]) { [weak self] code, _ in
1503
- if code == 0 {
1504
- DispatchQueue.main.async {
1505
- if let url = URL(string: urlString) { NSWorkspace.shared.open(url) }
1506
- }
1507
- } else if attempts > 1 {
1508
- DispatchQueue.global().asyncAfter(deadline: .now() + 0.25) {
1509
- self?.waitForDashboard(urlString, attempts: attempts - 1)
1510
- }
1511
- } else {
1512
- DispatchQueue.main.async {
1513
- showAlert("SKS Dashboard failed", informative: "Dashboard did not become ready at \(urlString). See View Last Log.")
1514
- }
1515
- }
1516
- }
1517
- }
1518
-
1519
- @objc func openCodexSettings() {
1520
- runProcess("/usr/bin/open", ["codex://settings"]) { code, output in
1521
- if code != 0 {
1522
- DispatchQueue.main.async {
1523
- showAlert("Open Codex Settings failed", informative: humanizeSksFailure(redactSecrets(output)))
1524
- }
1525
- }
1526
- }
1527
- }
1528
-
1529
- @objc func restartCodex() {
1530
- runSksBackground(["codex-app", "restart", "--json"], title: "Restart Codex")
1531
- }
1532
-
1533
- @objc func viewLastLog() {
1534
- if FileManager.default.fileExists(atPath: lastActionLogPath) {
1535
- NSWorkspace.shared.open(URL(fileURLWithPath: lastActionLogPath))
1536
- } else {
1537
- showAlert("No SKS menu log yet", informative: lastActionLogPath)
1538
- }
1539
- }
1540
-
1541
- @objc func quit() {
1542
- NSApplication.shared.terminate(nil)
1543
- }
1544
- }
1545
-
1546
- let app = NSApplication.shared
1547
- let delegate = AppDelegate()
1548
- app.delegate = delegate
1549
- app.run()
1550
- `;
1551
- }
1552
- function infoPlistSource(version) {
1553
- return `<?xml version="1.0" encoding="UTF-8"?>
1554
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
1555
- <plist version="1.0">
1556
- <dict>
1557
- <key>CFBundleExecutable</key>
1558
- <string>SKSMenuBar</string>
1559
- <key>CFBundleIdentifier</key>
1560
- <string>${LABEL}</string>
1561
- <key>CFBundleName</key>
1562
- <string>SKS Menu Bar</string>
1563
- <key>CFBundlePackageType</key>
1564
- <string>APPL</string>
1565
- <key>CFBundleShortVersionString</key>
1566
- <string>${escapeXml(version)}</string>
1567
- <key>CFBundleVersion</key>
1568
- <string>${escapeXml(version)}</string>
1569
- <key>LSUIElement</key>
1570
- <true/>
1571
- </dict>
1572
- </plist>
1573
- `;
1574
- }
1575
- function launchAgentSource(executablePath, installDir) {
1576
- return `<?xml version="1.0" encoding="UTF-8"?>
1577
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
1578
- <plist version="1.0">
1579
- <dict>
1580
- <key>Label</key>
1581
- <string>${LABEL}</string>
1582
- <key>ProgramArguments</key>
1583
- <array>
1584
- <string>${escapeXml(executablePath)}</string>
1585
- </array>
1586
- <key>RunAtLoad</key>
1587
- <true/>
1588
- <key>ProcessType</key>
1589
- <string>Interactive</string>
1590
- <key>StandardOutPath</key>
1591
- <string>${escapeXml(path.join(installDir, 'menubar.out.log'))}</string>
1592
- <key>StandardErrorPath</key>
1593
- <string>${escapeXml(path.join(installDir, 'menubar.err.log'))}</string>
1594
- </dict>
1595
- </plist>
1596
- `;
1597
- }
1598
- async function buildMenuBarAppAtomically(input) {
1599
- await fs.rm(input.paths.staging_app_path, { recursive: true, force: true });
1600
- await ensureDir(path.join(input.paths.staging_app_path, 'Contents', 'MacOS'));
1601
- await writeTextAtomic(input.paths.source_path, input.swiftSource);
1602
- input.actions.push(`wrote ${input.paths.source_path}`);
1603
- await writeTextAtomic(path.join(input.paths.staging_app_path, 'Contents', 'Info.plist'), input.infoPlist);
1604
- const stagingExecutable = path.join(input.paths.staging_app_path, 'Contents', 'MacOS', 'SKSMenuBar');
1605
- const compileWork = runProcess(input.swiftc, ['-framework', 'Cocoa', input.paths.source_path, '-o', stagingExecutable], {
1606
- timeoutMs: 60_000,
1607
- maxOutputBytes: 64 * 1024
1608
- }).catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
1609
- const compile = input.quiet === true ? await compileWork : await withHeartbeat('swiftc SKS menu bar', compileWork, { warnAfterMs: 30_000 });
1610
- if (compile.code !== 0) {
1611
- throw new MenuBarBuildError('swift_compile_failed', String(compile.stderr || compile.stdout || '').trim());
1612
- }
1613
- await fs.chmod(stagingExecutable, 0o755).catch(() => undefined);
1614
- input.actions.push(`compiled ${stagingExecutable}`);
1615
- if (input.codesign) {
1616
- const signed = await runProcess(input.codesign, ['--force', '--sign', '-', '--identifier', LABEL, input.paths.staging_app_path], {
1617
- timeoutMs: 20_000,
1618
- maxOutputBytes: 32 * 1024
1619
- }).catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
1620
- if (signed.code !== 0) {
1621
- throw new MenuBarBuildError('codesign_failed', String(signed.stderr || signed.stdout || '').trim());
1622
- }
1623
- input.actions.push(`codesigned ${input.paths.staging_app_path}`);
1624
- }
1625
- await fs.rm(input.paths.backup_app_path, { recursive: true, force: true }).catch(() => undefined);
1626
- if (await exists(input.paths.app_path))
1627
- await fs.rename(input.paths.app_path, input.paths.backup_app_path);
1628
- try {
1629
- await fs.rename(input.paths.staging_app_path, input.paths.app_path);
1630
- }
1631
- catch (err) {
1632
- if (await exists(input.paths.backup_app_path))
1633
- await fs.rename(input.paths.backup_app_path, input.paths.app_path).catch(() => undefined);
1634
- throw err;
1635
- }
1636
- await fs.rm(input.paths.backup_app_path, { recursive: true, force: true }).catch(() => undefined);
1637
- input.actions.push(`installed ${input.paths.app_path}`);
1638
- }
1639
- async function launchWithLaunchctl(input) {
1640
- const service = launchServiceName();
1641
- const domain = launchDomain();
1642
- const stdio = {
1643
- stdoutFile: path.join(input.paths.install_dir, 'launchctl.out.log'),
1644
- stderrFile: path.join(input.paths.install_dir, 'launchctl.err.log')
1645
- };
1646
- const alreadyWork = waitForLaunchctlRunning(input.launchctl, service);
1647
- const already = input.quiet === true ? await alreadyWork : await withHeartbeat('launchctl SKS menu bar wait', alreadyWork, { warnAfterMs: 10_000 });
1648
- if (input.skipIfRunning && already.running) {
1649
- return { requested: true, method: 'launchctl', ok: true, print_code: already.code, error: null };
1650
- }
1651
- await runProcess(input.launchctl, ['bootout', service], { timeoutMs: 3_000, maxOutputBytes: 8 * 1024, ...stdio }).catch(() => undefined);
1652
- await runProcess(input.launchctl, ['bootout', domain, input.paths.launch_agent_path], { timeoutMs: 3_000, maxOutputBytes: 8 * 1024, ...stdio }).catch(() => undefined);
1653
- await terminateExistingMenuBarProcess(input.paths.executable_path);
1654
- const bootstrap = await runProcess(input.launchctl, ['bootstrap', domain, input.paths.launch_agent_path], {
1655
- timeoutMs: 5_000,
1656
- maxOutputBytes: 16 * 1024,
1657
- ...stdio
1658
- }).catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
1659
- if (bootstrap.code === 0) {
1660
- const kickstart = await runProcess(input.launchctl, ['kickstart', '-k', service], {
1661
- timeoutMs: 3_000,
1662
- maxOutputBytes: 16 * 1024,
1663
- ...stdio
1664
- }).catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
1665
- if (kickstart.code !== 0) {
1666
- // A kickstart timeout does not mean the relaunch failed — under heavy
1667
- // system load (e.g. mid `npm install -g`) the app can take well past the
1668
- // kickstart timeout to reach running state, so give the recheck a much
1669
- // longer window before declaring the whole install blocked.
1670
- const printedWork = waitForLaunchctlRunning(input.launchctl, service, 20);
1671
- const printed = input.quiet === true ? await printedWork : await withHeartbeat('launchctl SKS menu bar wait', printedWork, { warnAfterMs: 10_000 });
1672
- if (printed.running) {
1673
- return {
1674
- requested: true,
1675
- method: 'launchctl',
1676
- ok: true,
1677
- bootstrap_code: bootstrap.code,
1678
- kickstart_code: kickstart.code,
1679
- print_code: printed.code,
1680
- error: null
1681
- };
1682
- }
1683
- }
1684
- return {
1685
- requested: true,
1686
- method: 'launchctl',
1687
- ok: kickstart.code === 0,
1688
- bootstrap_code: bootstrap.code,
1689
- kickstart_code: kickstart.code,
1690
- error: kickstart.code === 0 ? null : String(kickstart.stderr || kickstart.stdout || '').trim() || 'launchctl_kickstart_failed'
1691
- };
1692
- }
1693
- if (input.open) {
1694
- const opened = await runProcess(input.open, [input.paths.app_path], {
1695
- timeoutMs: 5_000,
1696
- maxOutputBytes: 16 * 1024,
1697
- ...stdio
1698
- }).catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
1699
- return {
1700
- requested: true,
1701
- method: 'open-fallback',
1702
- ok: opened.code === 0,
1703
- bootstrap_code: bootstrap.code,
1704
- open_code: opened.code,
1705
- error: opened.code === 0
1706
- ? null
1707
- : String(opened.stderr || opened.stdout || bootstrap.stderr || bootstrap.stdout || '').trim() || 'sks_menubar_launch_failed'
1708
- };
1709
- }
1710
- return {
1711
- requested: true,
1712
- method: 'launchctl',
1713
- ok: false,
1714
- bootstrap_code: bootstrap.code,
1715
- error: String(bootstrap.stderr || bootstrap.stdout || '').trim() || 'launchctl_bootstrap_failed'
1716
- };
1717
- }
1718
- async function waitForLaunchctlRunning(launchctl, service, attempts = 6) {
1719
- let lastCode = null;
1720
- for (let attempt = 0; attempt < attempts; attempt += 1) {
1721
- const printed = await runProcess(launchctl, ['print', service], {
1722
- timeoutMs: 1_000,
1723
- maxOutputBytes: 32 * 1024
1724
- }).catch(() => ({ code: 1, stdout: '', stderr: '' }));
1725
- lastCode = printed.code;
1726
- if (printed.code === 0 && /\bstate = running\b|\bpid = \d+\b/.test(`${printed.stdout || ''}\n${printed.stderr || ''}`)) {
1727
- return { code: printed.code, running: true };
1728
- }
1729
- await new Promise((resolve) => setTimeout(resolve, 500));
1730
- }
1731
- return { code: lastCode, running: false };
1732
- }
1733
- async function terminateExistingMenuBarProcess(executablePath) {
1734
- const pkill = await which('pkill').catch(() => null) || await fallbackTool('/usr/bin/pkill');
1735
- if (!pkill)
1736
- return;
1737
- await runProcess(pkill, ['-f', executablePath], { timeoutMs: 3_000, maxOutputBytes: 8 * 1024 }).catch(() => undefined);
1738
- await new Promise((resolve) => setTimeout(resolve, 150));
1739
- }
1740
- async function isMenuBarProcessRunning(executablePath) {
1741
- const pgrep = await which('pgrep').catch(() => null) || await fallbackTool('/usr/bin/pgrep');
1742
- if (!pgrep)
1743
- return false;
1744
- const result = await runProcess(pgrep, ['-f', executablePath], { timeoutMs: 2_000, maxOutputBytes: 8 * 1024 })
1745
- .catch(() => ({ code: 1, stdout: '', stderr: '' }));
1746
- return result.code === 0;
1747
- }
1748
- async function inspectLaunchdService(env = process.env) {
1749
- if (process.platform !== 'darwin')
1750
- return { checked: false, ok: true, service: null, state: null, pid: null, error: null };
1751
- const launchctl = env.SKS_MENUBAR_LAUNCHCTL || await which('launchctl').catch(() => null) || await fallbackTool('/bin/launchctl');
1752
- if (!launchctl)
1753
- return { checked: true, ok: false, service: launchServiceName(), state: null, pid: null, error: 'launchctl_missing' };
1754
- const service = launchServiceName();
1755
- const result = await runProcess(launchctl, ['print', service], { timeoutMs: 2_000, maxOutputBytes: 32 * 1024 })
1756
- .catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
1757
- const text = `${result.stdout || ''}\n${result.stderr || ''}`;
1758
- const state = text.match(/\bstate = ([^\n]+)/)?.[1]?.trim() || null;
1759
- const pidText = text.match(/\bpid = (\d+)/)?.[1] || null;
1760
- const running = result.code === 0 && (state === 'running' || Boolean(pidText));
1761
- return {
1762
- checked: true,
1763
- ok: running,
1764
- service,
1765
- state,
1766
- pid: pidText ? Number(pidText) : null,
1767
- error: running ? null : String(result.stderr || result.stdout || state || 'launchd_not_running').trim()
1768
- };
1769
- }
1770
- async function inspectSignature(appPath, env = process.env) {
1771
- if (process.platform !== 'darwin')
1772
- return { checked: false, identifier: null, ok: true, error: null };
1773
- const codesign = env.SKS_MENUBAR_CODESIGN || await which('codesign').catch(() => null) || await fallbackTool('/usr/bin/codesign');
1774
- if (!codesign)
1775
- return { checked: true, identifier: null, ok: false, error: 'codesign_missing' };
1776
- if (!(await exists(appPath)))
1777
- return { checked: true, identifier: null, ok: false, error: 'app_missing' };
1778
- const result = await runProcess(codesign, ['-dv', '--verbose=4', appPath], { timeoutMs: 5_000, maxOutputBytes: 32 * 1024 })
1779
- .catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
1780
- const text = `${result.stdout || ''}\n${result.stderr || ''}`;
1781
- const identifier = text.match(/\bIdentifier=([^\n]+)/)?.[1]?.trim() || null;
1782
- return {
1783
- checked: true,
1784
- identifier,
1785
- ok: result.code === 0 && identifier === LABEL,
1786
- error: result.code === 0 ? null : String(result.stderr || result.stdout || '').trim()
1787
- };
1788
- }
1789
- async function xcodeCltStatus(xcodeSelect) {
1790
- if (!xcodeSelect)
1791
- return { ok: false, error: 'xcode-select not found; run xcode-select --install' };
1792
- const result = await runProcess(xcodeSelect, ['-p'], { timeoutMs: 5_000, maxOutputBytes: 8 * 1024 })
1793
- .catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
1794
- return result.code === 0
1795
- ? { ok: true }
1796
- : { ok: false, error: String(result.stderr || result.stdout || 'Run: xcode-select --install').trim() };
1797
- }
1798
- async function toolVersion(tool, args) {
1799
- const result = await runProcess(tool, args, { timeoutMs: 5_000, maxOutputBytes: 16 * 1024 })
1800
- .catch((err) => ({ code: 1, stdout: '', stderr: err?.message || String(err) }));
1801
- return result.code === 0 ? String(result.stdout || result.stderr || '').trim().split(/\r?\n/)[0] || 'unknown' : 'unknown';
1802
- }
1803
- function buildStampEquals(left, right) {
1804
- return Boolean(left
1805
- && left.schema === right.schema
1806
- && left.package_version === right.package_version
1807
- && left.source_sha256 === right.source_sha256
1808
- && left.action_script_sha256 === right.action_script_sha256
1809
- && left.info_plist_sha256 === right.info_plist_sha256
1810
- && left.launch_agent_sha256 === right.launch_agent_sha256
1811
- && left.swiftc_version === right.swiftc_version
1812
- && left.codesign_identifier === right.codesign_identifier);
1813
- }
1814
- async function isExecutable(file) {
1815
- try {
1816
- await fs.access(file, 1);
1817
- return true;
1818
- }
1819
- catch {
1820
- return false;
1821
- }
1822
- }
1823
- function shellAssignment(text, key) {
1824
- const line = String(text || '').split(/\r?\n/).find((row) => row.startsWith(`${key}=`));
1825
- if (!line)
1826
- return null;
1827
- return shellUnquote(line.slice(key.length + 1));
1828
- }
1829
- function shellUnquote(value) {
1830
- const text = String(value || '').trim();
1831
- if (text.startsWith("'") && text.endsWith("'"))
1832
- return text.slice(1, -1).replace(/'\\''/g, "'");
1833
- if (text.startsWith('"') && text.endsWith('"'))
1834
- return text.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
1835
- return text;
1836
- }
1837
- function launchDomain() {
1838
- const uid = typeof process.getuid === 'function' ? process.getuid() : null;
1839
- return uid === null ? 'gui' : `gui/${uid}`;
1840
- }
1841
- function launchServiceName() {
1842
- return `${launchDomain()}/${LABEL}`;
1843
- }
1844
- function defaultNextActions() {
1845
- return [
1846
- 'Run: sks menubar status',
1847
- 'Run: sks menubar install',
1848
- 'Run: sks menubar restart',
1849
- 'Run: sks menubar uninstall',
1850
- 'Rotate CODEX_LB_API_KEY and OPENROUTER_API_KEY if they were previously exposed in launchd.'
1851
- ];
1852
- }
1853
- async function writeReport(reportPath, result) {
1854
- try {
1855
- await writeJsonAtomic(reportPath, result);
1856
- }
1857
- catch (err) {
1858
- result.report_write_failed = true;
1859
- if (!result.warnings.includes('menubar_report_write_failed'))
1860
- result.warnings.push('menubar_report_write_failed');
1861
- console.error(`warning: failed to write SKS menubar report ${reportPath}: ${err?.message || err}`);
1862
- }
1863
- }
1864
- function isSubpath(candidate, root) {
1865
- const rel = path.relative(path.resolve(root), path.resolve(candidate));
1866
- return rel === '' || (Boolean(rel) && !rel.startsWith('..') && !path.isAbsolute(rel));
1867
- }
1868
- function swiftString(value) {
1869
- return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
1870
- }
1871
- function shellQuote(value) {
1872
- return `'${value.replace(/'/g, `'\\''`)}'`;
1873
- }
1874
- function escapeXml(value) {
1875
- return value
1876
- .replace(/&/g, '&amp;')
1877
- .replace(/</g, '&lt;')
1878
- .replace(/>/g, '&gt;')
1879
- .replace(/"/g, '&quot;')
1880
- .replace(/'/g, '&apos;');
1881
- }
1882
- class MenuBarBuildError extends Error {
1883
- blocker;
1884
- constructor(blocker, message) {
1885
- super(message);
1886
- this.blocker = blocker;
1887
- }
1888
- }
1889
- //# sourceMappingURL=sks-menubar.js.map
1
+ /** Compatibility facade retained for the 6.3 release. */
2
+ export * from './menubar/index.js';