sneakoscope 8.0.2 → 8.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/README.md +150 -37
  2. package/config/skills-hash-ledger.v1.json +1 -1
  3. package/crates/sks-core/Cargo.lock +1 -1
  4. package/crates/sks-core/Cargo.toml +1 -1
  5. package/dist/bin/fast-inline.js +55 -27
  6. package/dist/bin/install.js +6 -32
  7. package/dist/bin/sks-dispatch.js +1 -1
  8. package/dist/cli/args.js +0 -2
  9. package/dist/cli/cli-theme.js +18 -9
  10. package/dist/cli/command-manifest-lite.js +6 -6
  11. package/dist/cli/command-registry.js +6 -6
  12. package/dist/cli/feature-commands.js +9 -7
  13. package/dist/cli/install-helpers-codex-lb-chain.js +198 -7
  14. package/dist/cli/install-helpers-codex-lb-config.js +78 -10
  15. package/dist/cli/install-helpers-install-support.js +9 -6
  16. package/dist/cli/install-helpers.js +101 -49
  17. package/dist/cli/install-tool-helpers.js +2 -82
  18. package/dist/cli/output.js +6 -1
  19. package/dist/cli/router.js +101 -2
  20. package/dist/commands/codex-lb.js +119 -19
  21. package/dist/commands/doctor-profile.js +1 -1
  22. package/dist/commands/doctor.js +727 -144
  23. package/dist/commands/mad-sks.js +1 -5
  24. package/dist/config/skills-manifest.json +4 -2
  25. package/dist/core/agents/agent-codex-cockpit.js +0 -3
  26. package/dist/core/agents/agent-effort-policy.js +5 -5
  27. package/dist/core/agents/agent-janitor.js +0 -20
  28. package/dist/core/agents/agent-orchestrator.js +9 -56
  29. package/dist/core/agents/agent-output-validator.js +2 -3
  30. package/dist/core/agents/agent-patch-schema.js +2 -2
  31. package/dist/core/agents/agent-proof-evidence.js +0 -65
  32. package/dist/core/agents/agent-recursion-guard.js +1 -1
  33. package/dist/core/agents/agent-runner-codex-exec.js +5 -3
  34. package/dist/core/agents/agent-scheduler.js +327 -85
  35. package/dist/core/agents/agent-schema.js +1 -1
  36. package/dist/core/agents/agent-trust-report.js +0 -36
  37. package/dist/core/agents/agent-worker-pipeline.js +0 -1
  38. package/dist/core/agents/fast-mode-policy.js +1 -3
  39. package/dist/core/agents/native-cli-worker-runtime-proof.js +1 -1
  40. package/dist/core/agents/native-cli-worker-runtime.js +69 -647
  41. package/dist/core/agents/native-cli-worker.js +6 -7
  42. package/dist/core/agents/native-worker-backend-router.js +2 -32
  43. package/dist/core/agents/no-subagent-scaling-policy.js +1 -1
  44. package/dist/core/agents/parallel-runtime-proof.js +1 -6
  45. package/dist/core/agents/runtime-proof-summary.js +1 -35
  46. package/dist/core/architecture-hardening/contracts/contracts.js +193 -0
  47. package/dist/core/architecture-hardening/migration/migration.js +111 -0
  48. package/dist/core/architecture-hardening/state/state-service.js +155 -0
  49. package/dist/core/artifact-schemas.js +0 -3
  50. package/dist/core/codex/codex-config-guard.js +238 -52
  51. package/dist/core/codex-adapter.js +5 -3
  52. package/dist/core/codex-app/auxiliary-oauth-policy.js +36 -0
  53. package/dist/core/codex-app/catalog-compat/catalog-service.js +104 -0
  54. package/dist/core/codex-app/child-policy/child-policy.js +35 -0
  55. package/dist/core/codex-app/codex-app-handoff.js +0 -1
  56. package/dist/core/codex-app/codex-hook-lifecycle.js +1 -1
  57. package/dist/core/codex-app/codex-init-deep.js +1 -1
  58. package/dist/core/codex-app/menubar/app-bundle.js +2 -0
  59. package/dist/core/codex-app/menubar/constants.js +14 -1
  60. package/dist/core/codex-app/menubar/global-install.js +288 -0
  61. package/dist/core/codex-app/menubar/installer.js +79 -14
  62. package/dist/core/codex-app/menubar/launch-agent.js +267 -45
  63. package/dist/core/codex-app/menubar/paths.js +3 -0
  64. package/dist/core/codex-app/menubar/rollback.js +55 -7
  65. package/dist/core/codex-app/menubar/status.js +75 -4
  66. package/dist/core/codex-app/provider-child-policy.js +64 -0
  67. package/dist/core/codex-app/provider-mode.js +91 -0
  68. package/dist/core/codex-app/provider-operation-stages.js +20 -0
  69. package/dist/core/codex-app/provider-session-policy.js +85 -0
  70. package/dist/core/codex-app/session-policy/session-pinning.js +68 -0
  71. package/dist/core/codex-app.js +3 -2
  72. package/dist/core/codex-control/codex-0139-image-path-real-probe.js +3 -1
  73. package/dist/core/codex-control/codex-0139-web-search-probe.js +3 -1
  74. package/dist/core/codex-control/codex-app-server-runtime-env.js +13 -4
  75. package/dist/core/codex-control/codex-app-server-v2-client.js +3 -3
  76. package/dist/core/codex-control/codex-control-proof.js +0 -1
  77. package/dist/core/codex-control/codex-task-runner.js +1 -4
  78. package/dist/core/codex-exec-output-schema.js +4 -1
  79. package/dist/core/codex-lb/codex-lb-env.js +63 -72
  80. package/dist/core/codex-lb/codex-lb-setup.js +15 -2
  81. package/dist/core/codex-lb/desktop-bridge/header-policy.js +6 -0
  82. package/dist/core/codex-lb/desktop-bridge/http-forward.js +48 -6
  83. package/dist/core/codex-lb/desktop-bridge/security.js +134 -0
  84. package/dist/core/codex-lb/desktop-bridge/server.js +9 -3
  85. package/dist/core/codex-lb/desktop-bridge/state.js +26 -6
  86. package/dist/core/codex-lb/desktop-bridge/types.js +1 -0
  87. package/dist/core/codex-lb/desktop-center-credentials.js +517 -58
  88. package/dist/core/codex-lb/desktop-controller.js +177 -56
  89. package/dist/core/codex-lb/desktop-service.js +179 -40
  90. package/dist/core/codex-lb/legacy-migration.js +1 -3
  91. package/dist/core/codex-lb/native-openai-transport/transport.js +68 -0
  92. package/dist/core/codex-lb/probes/cli-image-tool-probe.js +1 -1
  93. package/dist/core/codex-lb/provider-routing/provider-router.js +58 -0
  94. package/dist/core/codex-lb/routing-truth.js +327 -0
  95. package/dist/core/codex-native/codex-native-feature-broker.js +4 -0
  96. package/dist/core/codex-native/codex-native-pattern-analysis.js +1 -2
  97. package/dist/core/codex-native/core-skill-manifest.js +1 -1
  98. package/dist/core/codex-plugins/codex-plugin-json.js +26 -6
  99. package/dist/core/codex-plugins/codex-plugin-repair.js +32 -6
  100. package/dist/core/commands/basic-cli.js +9 -7
  101. package/dist/core/commands/computer-use-command.js +1 -1
  102. package/dist/core/commands/image-ux-review-command.js +16 -9
  103. package/dist/core/commands/install-package-command.js +105 -0
  104. package/dist/core/commands/intent-normalization/normalizer.js +96 -0
  105. package/dist/core/commands/mad-sks-command.js +23 -274
  106. package/dist/core/commands/mad-sks-headless.js +11 -30
  107. package/dist/core/commands/naruto-command.js +0 -25
  108. package/dist/core/commands/qa-loop-command.js +104 -22
  109. package/dist/core/commands/remote-command.js +2 -2
  110. package/dist/core/commands/research-command.js +10 -5
  111. package/dist/core/commands/telegram-command.js +407 -0
  112. package/dist/core/config-adopt/config-adopt-command.js +35 -0
  113. package/dist/core/config-adopt/config-adopt.js +346 -0
  114. package/dist/core/config-adopt/index.js +3 -0
  115. package/dist/core/doctor/command-alias-cleanup.js +4 -1
  116. package/dist/core/doctor/current-project-guidance-nested.js +37 -6
  117. package/dist/core/doctor/current-project-guidance.js +15 -9
  118. package/dist/core/doctor/doctor-dirty-planner.js +1 -4
  119. package/dist/core/doctor/doctor-readiness-matrix.js +15 -18
  120. package/dist/core/doctor/retired-managed-residue-private.js +4 -3
  121. package/dist/core/doctor/retired-managed-residue-runtime.js +2 -2
  122. package/dist/core/doctor/skill-legacy-surface.js +11 -10
  123. package/dist/core/doctor/sks-menubar-doctor.js +4 -0
  124. package/dist/core/evaluation.js +0 -19
  125. package/dist/core/evidence/v2/evidence-key.js +105 -0
  126. package/dist/core/feature-fixtures.js +12 -7
  127. package/dist/core/feature-registry.js +52 -21
  128. package/dist/core/hooks-runtime/hook-context.js +9 -0
  129. package/dist/core/hooks-runtime/managed-skill-admission.js +54 -4
  130. package/dist/core/hooks-runtime/official-subagent-lifecycle.js +69 -52
  131. package/dist/core/hooks-runtime/stop-finalization.js +226 -0
  132. package/dist/core/hooks-runtime/stop-repeat-guard.js +21 -2
  133. package/dist/core/hooks-runtime/subagent-skill-availability-contract.js +2 -2
  134. package/dist/core/hooks-runtime/subagent-skill-availability-evidence.js +3 -3
  135. package/dist/core/hooks-runtime/subagent-skill-availability-guards.js +43 -5
  136. package/dist/core/hooks-runtime/subagent-skill-availability.js +64 -30
  137. package/dist/core/hooks-runtime/subagent-stop-hook.js +15 -2
  138. package/dist/core/hooks-runtime.js +179 -212
  139. package/dist/core/image/reference-evidence/reference-registry.js +145 -0
  140. package/dist/core/image-ux-review/imagegen-adapter.js +21 -9
  141. package/dist/core/image-ux-review/reference-policy/reference-policy.js +9 -0
  142. package/dist/core/imagegen/codex-lb-imagegen-target.js +8 -0
  143. package/dist/core/imagegen/imagegen-capability.js +59 -2
  144. package/dist/core/imagegen/require-imagegen.js +2 -2
  145. package/dist/core/init/skills.js +17 -3
  146. package/dist/core/init.js +3 -3
  147. package/dist/core/install/installed-package-smoke.js +23 -5
  148. package/dist/core/json/canonical.js +9 -0
  149. package/dist/core/locks/file-lock.js +0 -1
  150. package/dist/core/loops/loop-continuation-enforcer.js +65 -7
  151. package/dist/core/loops/loop-decomposer.js +0 -1
  152. package/dist/core/loops/loop-gate-runner.js +65 -4
  153. package/dist/core/loops/loop-gate-selector.js +0 -2
  154. package/dist/core/loops/loop-proof-validation.js +38 -0
  155. package/dist/core/loops/loop-risk-classifier.js +1 -1
  156. package/dist/core/loops/loop-runtime.js +14 -2
  157. package/dist/core/loops/loop-scheduler.js +7 -2
  158. package/dist/core/loops/loop-worker-runtime.js +0 -15
  159. package/dist/core/loops/loop-worktree-runtime.js +52 -4
  160. package/dist/core/managed-assets/managed-assets-manifest.js +14 -14
  161. package/dist/core/naruto/hardware-capacity-probe.js +9 -6
  162. package/dist/core/naruto/naruto-active-pool.js +2 -14
  163. package/dist/core/naruto/naruto-concurrency-governor.js +71 -31
  164. package/dist/core/naruto/naruto-loop-worker-router.js +0 -2
  165. package/dist/core/naruto/naruto-verification-dag.js +0 -1
  166. package/dist/core/naruto/naruto-write-e2e.js +1 -2
  167. package/dist/core/naruto/resource-pressure-monitor.js +0 -4
  168. package/dist/core/observability/architecture-hardening/safe-projection.js +65 -0
  169. package/dist/core/perf/import-graph-budget.js +0 -1
  170. package/dist/core/perf/release-latency-slo.js +3 -2
  171. package/dist/core/preflight/parallel-preflight-engine.js +2 -15
  172. package/dist/core/product-design-app-server.js +13 -1
  173. package/dist/core/proof/fake-real-proof-policy.js +2 -17
  174. package/dist/core/proof/route-proof-gate.js +2 -10
  175. package/dist/core/proof/route-proof-policy.js +1 -1
  176. package/dist/core/proof/runtime-evidence-policy.js +185 -0
  177. package/dist/core/proof/runtime-truth-matrix.js +64 -39
  178. package/dist/core/proof/validation.js +27 -11
  179. package/dist/core/provider/provider-context.js +18 -2
  180. package/dist/core/providers/openrouter/openrouter-account.js +3 -2
  181. package/dist/core/python-tools/python-tool-runner.js +1 -1
  182. package/dist/core/qa-loop/qa-execution-control.js +57 -0
  183. package/dist/core/questions.js +1 -1
  184. package/dist/core/release/extreme-parallel-scheduler.js +0 -3
  185. package/dist/core/release/gate-manifest.js +3 -7
  186. package/dist/core/release/gate-pack-manifest.js +3 -7
  187. package/dist/core/release/package-size-budget.js +2 -2
  188. package/dist/core/release/physical-release-gates.js +189 -0
  189. package/dist/core/release/publish-preflight.js +113 -0
  190. package/dist/core/release/release-gate-affected-selector.js +0 -2
  191. package/dist/core/release/release-gate-batch-runner.js +1 -1
  192. package/dist/core/release/release-gate-node.js +0 -1
  193. package/dist/core/release/release-gate-resource-governor.js +0 -1
  194. package/dist/core/release/release-pack-receipt.js +5 -8
  195. package/dist/core/release/release-real-contract.js +0 -6
  196. package/dist/core/release/resource-class-budget.js +0 -1
  197. package/dist/core/release/stage-publish.js +178 -36
  198. package/dist/core/research/research-adversarial-review.js +103 -9
  199. package/dist/core/research.js +1 -1
  200. package/dist/core/retention.js +0 -1
  201. package/dist/core/routes/constants.js +1 -1
  202. package/dist/core/routes/diagnostic-allowlist.js +0 -1
  203. package/dist/core/routes/dollar-manifest-lite.js +1 -1
  204. package/dist/core/routes.js +46 -15
  205. package/dist/core/runtime/execution-control.js +226 -0
  206. package/dist/core/runtime/progress-recovery/progress-recovery.js +89 -0
  207. package/dist/core/runtime/task-profile.js +10 -4
  208. package/dist/core/runtime/verification-budget.js +10 -1
  209. package/dist/core/safety/intent-contract/intent-contract.js +94 -0
  210. package/dist/core/safety/mutation-guard.js +0 -2
  211. package/dist/core/safety/mutation-ledger.js +0 -2
  212. package/dist/core/safety/requested-scope-contract.js +0 -0
  213. package/dist/core/search-visibility/discovery.js +1 -1
  214. package/dist/core/search-visibility/index.js +12 -0
  215. package/dist/core/search-visibility/verifier.js +112 -3
  216. package/dist/core/security/private-credential-file.js +209 -0
  217. package/dist/core/session/project-namespace.js +0 -5
  218. package/dist/core/skills/skill-agent-metadata.js +1 -3
  219. package/dist/core/strategy/adhd-orchestrating-gate.js +0 -1
  220. package/dist/core/subagents/agent-catalog.js +19 -34
  221. package/dist/core/subagents/model-policy.js +65 -24
  222. package/dist/core/subagents/naruto-help-contract.js +8 -8
  223. package/dist/core/subagents/naruto-host-credentials.js +13 -0
  224. package/dist/core/subagents/official-subagent-config.js +16 -6
  225. package/dist/core/subagents/official-subagent-preparation.js +35 -16
  226. package/dist/core/subagents/official-subagent-prompt.js +7 -7
  227. package/dist/core/subagents/official-subagent-runner.js +27 -4
  228. package/dist/core/subagents/role-model-preferences.js +1 -1
  229. package/dist/core/subagents/thread-budget.js +19 -12
  230. package/dist/core/subagents/wave-lifecycle.js +18 -6
  231. package/dist/core/telegram/access.js +58 -0
  232. package/dist/core/telegram/client.js +157 -0
  233. package/dist/core/telegram/confirmation.js +37 -0
  234. package/dist/core/telegram/doctor.js +154 -0
  235. package/dist/core/telegram/index.js +9 -0
  236. package/dist/core/telegram/keychain.js +317 -0
  237. package/dist/core/telegram/liveness.js +118 -0
  238. package/dist/core/telegram/poller.js +90 -0
  239. package/dist/core/telegram/redaction.js +15 -0
  240. package/dist/core/telegram/state-lock.js +416 -0
  241. package/dist/core/telegram/types.js +1 -0
  242. package/dist/core/text/strings.js +3 -0
  243. package/dist/core/triwiki/context-graph/store/evidence-write-lock.js +29 -0
  244. package/dist/core/triwiki/context-graph/store/fragment-cache.js +24 -0
  245. package/dist/core/triwiki/context-graph/store/snapshot-store.js +69 -21
  246. package/dist/core/triwiki/triwiki-gate-impact-map.js +2 -2
  247. package/dist/core/triwiki/triwiki-module-card.js +1 -2
  248. package/dist/core/update/installed-cli-resolution.js +170 -0
  249. package/dist/core/update/update-diagnostics.js +52 -0
  250. package/dist/core/update/update-migration-state.js +30 -12
  251. package/dist/core/update/update-operation.js +2 -1
  252. package/dist/core/update/update-stage-diagnostics.js +38 -0
  253. package/dist/core/update/update-status.js +2 -9
  254. package/dist/core/update-check.js +279 -91
  255. package/dist/core/version.js +1 -1
  256. package/dist/native/sks-menubar/Sources/AppDelegate.swift +19 -1
  257. package/dist/native/sks-menubar/Sources/AppIdentity.swift +7 -0
  258. package/dist/native/sks-menubar/Sources/ControlCenterWindowController.swift +6 -2
  259. package/dist/native/sks-menubar/Sources/OperationCoordinator.swift +159 -92
  260. package/dist/native/sks-menubar/Sources/OperationModels.swift +389 -0
  261. package/dist/native/sks-menubar/Sources/OverviewViewController.swift +57 -0
  262. package/dist/native/sks-menubar/Sources/ProcessClient.swift +3 -1
  263. package/dist/native/sks-menubar/Sources/ProvidersConnectTest.swift +115 -0
  264. package/dist/native/sks-menubar/Sources/ProvidersFastMode.swift +17 -0
  265. package/dist/native/sks-menubar/Sources/ProvidersMultiProvider.swift +3 -0
  266. package/dist/native/sks-menubar/Sources/ProvidersOpenRouter.swift +58 -17
  267. package/dist/native/sks-menubar/Sources/ProvidersReliability.swift +302 -0
  268. package/dist/native/sks-menubar/Sources/ProvidersRoleModels.swift +5 -0
  269. package/dist/native/sks-menubar/Sources/ProvidersRoutingTruth.swift +190 -0
  270. package/dist/native/sks-menubar/Sources/ProvidersViewController.swift +158 -126
  271. package/dist/native/sks-menubar/Sources/RemoteCodingViewController.swift +462 -26
  272. package/dist/native/sks-menubar/Sources/SKSKeychainStore.swift +344 -0
  273. package/dist/native/sks-menubar/Sources/SecureProcessEnvelope.swift +27 -0
  274. package/dist/native/sks-menubar/Sources/SingletonInstanceGuard.swift +328 -0
  275. package/dist/native/sks-menubar/Sources/StatusItemController.swift +10 -2
  276. package/dist/native/sks-menubar/Sources/TelegramPrivateFileStore.swift +498 -0
  277. package/dist/native/sks-menubar/Sources/TelegramPrivateFileSupport.swift +236 -0
  278. package/dist/native/sks-menubar/Sources/TelegramProcessGateway.swift +454 -0
  279. package/dist/native/sks-menubar/Sources/TelegramRuntimeSupport.swift +56 -0
  280. package/dist/native/sks-menubar/Sources/TelegramStateLock.swift +448 -0
  281. package/dist/native/sks-menubar/Sources/TelegramSupport.swift +187 -0
  282. package/dist/native/sks-menubar/Sources/TelegramTransport.swift +499 -0
  283. package/dist/native/sks-menubar/Sources/main.swift +15 -1
  284. package/dist/scripts/all-feature-deep-completion-check.js +5 -1
  285. package/dist/scripts/check-publish-tag.js +56 -0
  286. package/dist/scripts/codex-lb-fast-mode-truth-check.js +10 -3
  287. package/dist/scripts/codex-lb-fast-ui-preservation-check.js +12 -3
  288. package/dist/scripts/codex-lb-gpt56-fast-profile-check.js +4 -2
  289. package/dist/scripts/codex-native-agent-role-content-check.js +3 -3
  290. package/dist/scripts/codex-native-gate-lib.js +14 -7
  291. package/dist/scripts/current-command-surface-check.js +7 -7
  292. package/dist/scripts/current-surface-update-e2e-check.js +4 -3
  293. package/dist/scripts/current-upgrade-matrix-check.js +5 -24
  294. package/dist/scripts/docs-truthfulness-check.js +17 -13
  295. package/dist/scripts/gate-lib.js +0 -2
  296. package/dist/scripts/gate-policy-audit-check.js +3 -2
  297. package/dist/scripts/harness-benchmark-check.js +1 -1
  298. package/dist/scripts/init-deep-backup-retention-check.js +1 -1
  299. package/dist/scripts/lib/codex-sdk-gate-lib.js +1 -2
  300. package/dist/scripts/loop-directive-check-lib.js +28 -38
  301. package/dist/scripts/mad-sks-app-ui-no-mutation-check.js +14 -180
  302. package/dist/scripts/mad-sks-launch-sql-plane-boundary-check.js +2 -11
  303. package/dist/scripts/official-subagent-workflow-check.js +1 -1
  304. package/dist/scripts/packlist-performance-check.js +1 -2
  305. package/dist/scripts/prepublish-release-check-or-fast.js +32 -0
  306. package/dist/scripts/publish-preflight.js +12 -0
  307. package/dist/scripts/release-affected-selector-check.js +2 -2
  308. package/dist/scripts/release-gate-batch-runner-check.js +2 -2
  309. package/dist/scripts/release-metadata-check.js +8 -12
  310. package/dist/scripts/release-real-check.js +2 -54
  311. package/dist/scripts/runtime-domain-gate-lib.js +2 -96
  312. package/dist/scripts/runtime-proof-summary-check.js +2 -6
  313. package/dist/scripts/search-visibility-gate-lib.js +0 -1
  314. package/dist/scripts/sks-cli-gate-lib.js +1 -1
  315. package/dist/scripts/typed-routing-gate-lib.js +7 -59
  316. package/docs/demo.tape +1 -1
  317. package/infra-harness-gates.json +1 -1456
  318. package/package.json +10 -7
  319. package/release-gates.v2.json +0 -1
  320. package/schemas/agents/parallel-runtime-proof.schema.json +0 -2
  321. package/schemas/codex/agent-result.schema.json +0 -6
  322. package/schemas/naruto/naruto-concurrency-governor.schema.json +1 -3
  323. package/schemas/release/release-gate-node.schema.json +1 -1
  324. package/dist/commands/zellij-lane.js +0 -22
  325. package/dist/commands/zellij-monitor-pane.js +0 -26
  326. package/dist/commands/zellij-slot-column-anchor.js +0 -22
  327. package/dist/commands/zellij-slot-pane.js +0 -80
  328. package/dist/commands/zellij-viewport-pane.js +0 -57
  329. package/dist/commands/zellij.js +0 -422
  330. package/dist/core/agents/agent-runner-zellij.js +0 -164
  331. package/dist/core/agents/agent-slot-pane-binding-proof.js +0 -96
  332. package/dist/core/agents/parallel-write-fixture.js +0 -305
  333. package/dist/core/agents/worker-pane-communication-contract.js +0 -100
  334. package/dist/core/agents/zellij-lane-supervisor.js +0 -428
  335. package/dist/core/agents/zellij-right-lane-cockpit.js +0 -66
  336. package/dist/core/doctor/doctor-zellij-repair.js +0 -40
  337. package/dist/core/ops/upgrade-migration-fixtures.js +0 -119
  338. package/dist/core/proof/route-finalizer-fixtures.js +0 -21
  339. package/dist/core/zellij/homebrew-policy.js +0 -43
  340. package/dist/core/zellij/zellij-capability.js +0 -126
  341. package/dist/core/zellij/zellij-clipboard-config.js +0 -52
  342. package/dist/core/zellij/zellij-command.js +0 -149
  343. package/dist/core/zellij/zellij-fake-adapter.js +0 -186
  344. package/dist/core/zellij/zellij-lane-renderer.js +0 -706
  345. package/dist/core/zellij/zellij-lane-runtime.js +0 -189
  346. package/dist/core/zellij/zellij-launcher.js +0 -268
  347. package/dist/core/zellij/zellij-layout-builder.js +0 -191
  348. package/dist/core/zellij/zellij-monitor-renderer.js +0 -52
  349. package/dist/core/zellij/zellij-official-subagent-activity.js +0 -526
  350. package/dist/core/zellij/zellij-official-subagent-telemetry.js +0 -258
  351. package/dist/core/zellij/zellij-pane-proof.js +0 -226
  352. package/dist/core/zellij/zellij-right-column-manager.js +0 -308
  353. package/dist/core/zellij/zellij-screen-proof.js +0 -120
  354. package/dist/core/zellij/zellij-self-heal-types.js +0 -44
  355. package/dist/core/zellij/zellij-self-heal.js +0 -408
  356. package/dist/core/zellij/zellij-slot-column-anchor.js +0 -304
  357. package/dist/core/zellij/zellij-slot-pane-renderer.js +0 -521
  358. package/dist/core/zellij/zellij-slot-telemetry.js +0 -384
  359. package/dist/core/zellij/zellij-theme.js +0 -66
  360. package/dist/core/zellij/zellij-ui-mode.js +0 -34
  361. package/dist/core/zellij/zellij-update.js +0 -348
  362. package/dist/core/zellij/zellij-viewport-binder.js +0 -61
  363. package/dist/core/zellij/zellij-worker-pane-manager.js +0 -881
  364. package/dist/core/zellij/zellij-worker-pane-summary.js +0 -64
  365. package/dist/native/sks-menubar/Tests/AppRuntimeTestSupport.swift +0 -26
  366. package/dist/native/sks-menubar/Tests/OperationCoordinatorTests.swift +0 -174
  367. package/dist/native/sks-menubar/Tests/ProcessClientTests.swift +0 -20
  368. package/dist/native/sks-menubar/Tests/ProvidersViewControllerTests.swift +0 -142
  369. package/dist/scripts/zellij-pane-proof-check.js +0 -88
  370. package/dist/scripts/zellij-real-session-cleanup-check.js +0 -139
  371. package/dist/scripts/zellij-real-session-launch-check.js +0 -126
  372. package/dist/scripts/zellij-screen-proof-check.js +0 -43
  373. package/schemas/zellij/zellij-right-column-state.schema.json +0 -40
  374. package/schemas/zellij/zellij-slot-telemetry.schema.json +0 -89
  375. package/schemas/zellij/zellij-worker-pane.schema.json +0 -53
  376. package/scripts/build-clean-atomic.mjs +0 -323
@@ -5,6 +5,7 @@ import { projectRoot, readStdin, readText } from '../core/fsx.js';
5
5
  import { flag, readOption } from '../cli/args.js';
6
6
  import { printJson } from '../cli/output.js';
7
7
  import { printCodexLbSetupWarnings } from '../cli/codex-lb-setup-warning-output.js';
8
+ import { testCodexLbConnection } from '../cli/install-helpers-codex-lb-chain.js';
8
9
  import { codexLbMetrics, readCodexLbCircuit, recordCodexLbHealthEvent, resetCodexLbCircuit, codexLbProofEvidence } from '../core/codex-lb-circuit.js';
9
10
  import { checkCodexLbResponseChain, codexLbStatus, configureCodexLb, repairCodexLbAuth } from '../cli/install-helpers.js';
10
11
  import { buildCodexLbSetupPlan, renderCodexLbSetupPlan } from '../core/codex-lb/codex-lb-setup.js';
@@ -13,6 +14,7 @@ import { loadCodexLbEnv } from '../core/codex-lb/codex-lb-env.js';
13
14
  import { activateCodexLbDesktopMode, buildCodexLbDesktopCapabilities, codexLbDesktopStatusV2, configureCodexLbCliMode, disableCodexLbDesktopRouting, migrateLegacyCodexLbDesktopMode, readCodexLbDesktopDeepEvidence, readCodexLbDesktopDeepEvidenceTrustAnchors, rollbackCodexLbDesktopMode } from '../core/codex-lb/desktop-controller.js';
14
15
  import { serveDesktopBridge } from '../core/codex-lb/desktop-service.js';
15
16
  import { parseCodexLbGatewayAuthTransport } from '../core/codex-lb/desktop-mode.js';
17
+ import { codexLbRoutingTruthIsActive, measureAndWriteCodexLbRoutingTruth } from '../core/codex-lb/routing-truth.js';
16
18
  export async function run(command, args = []) {
17
19
  const root = await projectRoot();
18
20
  const action = args[0] || 'status';
@@ -26,7 +28,12 @@ export async function run(command, args = []) {
26
28
  return;
27
29
  }
28
30
  if (action === 'status' || action === 'check') {
29
- const result = await codexLbDesktopStatusV2(controllerOptions(args));
31
+ const options = controllerOptions(args);
32
+ options.networkProbes = action === 'check'
33
+ || flag(args, '--deep')
34
+ || flag(args, '--fix')
35
+ || flag(args, '--remeasure');
36
+ const result = await codexLbDesktopStatusV2(options);
30
37
  if (result.ok !== true)
31
38
  process.exitCode = 1;
32
39
  if (flag(args, '--json'))
@@ -45,6 +52,29 @@ export async function run(command, args = []) {
45
52
  process.exitCode = 1;
46
53
  return;
47
54
  }
55
+ if (action === 'connect-test') {
56
+ const status = await codexLbStatus();
57
+ const modelSelection = await resolveCodexLbHealthModel(status);
58
+ const loadedEnv = await loadCodexLbEnv({
59
+ home: path.dirname(path.dirname(status.env_path)),
60
+ envPath: status.env_path
61
+ });
62
+ const result = await testCodexLbConnection(status, {
63
+ requireSelected: true,
64
+ model: modelSelection.model,
65
+ baseUrl: loadedEnv.base_url,
66
+ apiKey: loadedEnv.secret_api_key,
67
+ credentialBindingBlockers: loadedEnv.credential_binding.blockers
68
+ });
69
+ if (!result.ok)
70
+ process.exitCode = 1;
71
+ if (flag(args, '--json'))
72
+ return printJson(result);
73
+ console.log(result.ok
74
+ ? `codex-lb connect test: ok (${result.model}, ${result.latency_ms}ms): ${result.result || ''}`
75
+ : `codex-lb connect test: failed (${result.status})`);
76
+ return;
77
+ }
48
78
  if (action === 'health' || action === 'verify-chain' || action === 'chain') {
49
79
  const allowUnverifiedToolOutputRecovery = codexLbToolOutputRecoveryOverrideAcknowledged({ args });
50
80
  const status = await codexLbStatus({ probeToolOutputRecovery: true, allowUnverifiedToolOutputRecovery });
@@ -73,7 +103,21 @@ export async function run(command, args = []) {
73
103
  apiKey: loadedEnv.secret_api_key
74
104
  })
75
105
  : { ok: false, status: blocker, codex_lb: status };
76
- const result = { ...chain, codex_lb: status, model_selection: modelSelection };
106
+ const routingTruth = await measureAndWriteCodexLbRoutingTruth({
107
+ selected: status.selected === true,
108
+ baseUrl: loadedEnv.base_url,
109
+ apiKey: loadedEnv.secret_api_key,
110
+ authTransport: 'x-codex-lb-api-key'
111
+ }, {
112
+ home: path.dirname(path.dirname(status.env_path))
113
+ });
114
+ const result = {
115
+ ...chain,
116
+ ok: chain.ok === true && routingTruth.ok,
117
+ codex_lb: status,
118
+ model_selection: modelSelection,
119
+ routing_truth: routingTruth
120
+ };
77
121
  if (!result.ok)
78
122
  process.exitCode = 1;
79
123
  if (flag(args, '--json'))
@@ -98,9 +142,17 @@ export async function run(command, args = []) {
98
142
  const evidence = await fastEvidenceFromChain(chain, readOption(args, '--request-log', readOption(args, '--request-log-json', null)));
99
143
  const providerReady = status.provider_contract_ok === true;
100
144
  const chainVerified = isCodexLbFastChainVerified(chain);
145
+ const routingTruth = await measureAndWriteCodexLbRoutingTruth({
146
+ selected: status.selected === true,
147
+ baseUrl: loadedEnv.base_url,
148
+ apiKey: loadedEnv.secret_api_key,
149
+ authTransport: 'x-codex-lb-api-key'
150
+ }, {
151
+ home: path.dirname(path.dirname(status.env_path))
152
+ });
101
153
  const result = {
102
154
  schema: 'sks.codex-lb-fast-check.v1',
103
- ok: Boolean(providerReady && chainVerified && evidence.fast_requested && evidence.fast_actual),
155
+ ok: Boolean(providerReady && chainVerified && routingTruth.ok && evidence.fast_requested && evidence.fast_actual),
104
156
  status: !providerReady
105
157
  ? 'provider_contract_drift'
106
158
  : chain.skipped === true
@@ -115,11 +167,13 @@ export async function run(command, args = []) {
115
167
  codex_lb: status,
116
168
  model_selection: modelSelection,
117
169
  chain,
170
+ routing_truth: routingTruth,
118
171
  evidence,
119
172
  degraded_models: Array.isArray(chain.degraded_models) ? chain.degraded_models : [],
120
173
  quota_low: Boolean(chain.quota_low),
121
174
  blockers: [
122
175
  ...(providerReady ? [] : ['codex_lb_provider_contract_drift']),
176
+ ...routingTruth.blockers,
123
177
  ...modelSelection.blockers,
124
178
  ...(chain.skipped === true
125
179
  ? ['codex_lb_fast_check_chain_skipped']
@@ -181,6 +235,7 @@ export async function run(command, args = []) {
181
235
  writeEnvFile: true,
182
236
  syncLaunchctl: true,
183
237
  desktopMode: 'cli-provider',
238
+ useDefaultProvider: current.mode === 'cli-provider' && current.routing_active === true,
184
239
  allowUnverifiedToolOutputRecovery: codexLbToolOutputRecoveryOverrideAcknowledged({ args })
185
240
  });
186
241
  let routing = null;
@@ -201,8 +256,8 @@ export async function run(command, args = []) {
201
256
  action: 'set-key',
202
257
  provider_ready: result.ok === true,
203
258
  routing_active: Boolean(result.ok
204
- && current.mode === 'desktop-native-bridge'
205
- && routing?.ok !== false),
259
+ && ((current.mode === 'desktop-native-bridge' && routing?.ok !== false)
260
+ || (current.mode === 'cli-provider' && result.codex_lb?.selected === true))),
206
261
  activation_required: Boolean(result.ok
207
262
  && current.mode !== 'desktop-native-bridge'
208
263
  && current.mode !== 'desktop-dual-auth-compat'),
@@ -247,7 +302,7 @@ export async function run(command, args = []) {
247
302
  if (flag(args, '--json'))
248
303
  return printJson(result);
249
304
  console.log(result.ok === true
250
- ? `codex-lb CLI provider ready. Run: ${String(result.command)}`
305
+ ? `codex-lb CLI provider active (${String(result.routing_truth?.actual_host || 'verified route')}).`
251
306
  : `codex-lb CLI provider setup failed: ${String(result.status || 'failed')}`);
252
307
  return;
253
308
  }
@@ -468,6 +523,7 @@ export async function run(command, args = []) {
468
523
  host: options.host,
469
524
  apiKey: options.apiKey,
470
525
  desktopMode: 'cli-provider',
526
+ useDefaultProvider: options.useDefaultProvider,
471
527
  gatewayAuthTransport: options.gatewayAuthTransport,
472
528
  keychain: options.keychain,
473
529
  storeKeychain: options.keychain,
@@ -502,6 +558,17 @@ export async function run(command, args = []) {
502
558
  })
503
559
  : null;
504
560
  const capabilityDiagnosticOk = codexLbSetupCapabilityDiagnosticOk(capabilities);
561
+ const setupRoutingTruth = result.ok && options.desktopMode === 'cli-provider'
562
+ ? await measureAndWriteCodexLbRoutingTruth({
563
+ selected: result.codex_lb?.selected === true,
564
+ baseUrl: result.base_url || null,
565
+ apiKey: options.apiKey,
566
+ authTransport: 'x-codex-lb-api-key'
567
+ }, {
568
+ home: path.dirname(path.dirname(result.env_path))
569
+ })
570
+ : desktopActivation?.post_activation_status?.routing_truth || null;
571
+ const cliRoutingActive = codexLbRoutingTruthIsActive(setupRoutingTruth);
505
572
  const shaped = {
506
573
  ...result,
507
574
  schema: 'sks.codex-lb-setup.v2',
@@ -516,9 +583,11 @@ export async function run(command, args = []) {
516
583
  desktop_auth_mutated: false,
517
584
  fast_mode_mutated: false,
518
585
  provider_ready: result.ok === true,
519
- routing_active: Boolean(result.ok && desktopActivation?.ok === true),
586
+ routing_active: Boolean(result.ok && (desktopActivation?.ok === true || cliRoutingActive)),
587
+ routing_truth: setupRoutingTruth,
520
588
  activation_required: Boolean(result.ok
521
589
  && options.desktopMode === 'cli-provider'
590
+ && !cliRoutingActive
522
591
  && desktopActivation === null),
523
592
  desktop_activation: desktopActivation,
524
593
  capabilities
@@ -617,12 +686,12 @@ export async function run(command, args = []) {
617
686
  console.log(`codex-lb proof evidence: ${result.status}`);
618
687
  return;
619
688
  }
620
- console.error('Usage: sks codex-lb status|setup|set-key|use-desktop-full|use-cli|disable|capabilities [--level shallow|transport|deep] [--evidence <file> --trust-anchors <file>]|migrate-legacy-desktop|rollback <receipt-id>|health|metrics|doctor|repair|circuit reset|circuit record-fixture|proof-evidence [--json]');
689
+ console.error('Usage: sks codex-lb status|setup|set-key|connect-test|use-desktop-full|use-cli|disable|capabilities [--level shallow|transport|deep] [--evidence <file> --trust-anchors <file>]|migrate-legacy-desktop|rollback <receipt-id>|health|metrics|doctor|repair|circuit reset|circuit record-fixture|proof-evidence [--json]');
621
690
  console.error(` ${CODEX_LB_TOOL_OUTPUT_RECOVERY_OVERRIDE_FLAG} explicitly acknowledge an old/unverified proxy for this command (unsafe)`);
622
691
  console.error(' set-key swap the codex-lb API key (reuses the stored host): sks codex-lb set-key --api-key-stdin');
623
692
  console.error(' --keychain fail-closed until a dedicated signed SKS Keychain helper is available; the default 0600 env file is used');
624
693
  console.error(' use-desktop-full keep ChatGPT OAuth/built-in OpenAI and route data through the local bridge');
625
- console.error(' use-cli configure an unselected CLI-only provider');
694
+ console.error(' use-cli verify, write, and atomically select the CLI codex-lb provider');
626
695
  console.error(' disable remove only SKS-managed Desktop routing; auth.json is untouched');
627
696
  process.exitCode = 1;
628
697
  }
@@ -668,25 +737,35 @@ async function resolveCodexLbModel(status = {}, env = process.env, opts = {}) {
668
737
  const configured = topLevelTomlString(config, 'model');
669
738
  if (configured)
670
739
  return { model: configured, source: 'global_config', blockers: [] };
740
+ const home = String(env.HOME || '').trim();
671
741
  const configuredCatalogPath = topLevelTomlString(config, 'model_catalog_json');
672
- if (!configuredCatalogPath)
742
+ const defaultCatalogPath = configPath
743
+ ? path.join(path.dirname(configPath), 'models_cache.json')
744
+ : home
745
+ ? path.join(home, '.codex', 'models_cache.json')
746
+ : '';
747
+ const requestedCatalogPath = configuredCatalogPath || defaultCatalogPath;
748
+ if (!requestedCatalogPath)
673
749
  return { model: null, source: null, blockers: [`${opts.blockerPrefix}_model_unselected`] };
674
- const home = String(env.HOME || '').trim();
675
- const expandedCatalogPath = configuredCatalogPath.startsWith('~/') && home
676
- ? path.join(home, configuredCatalogPath.slice(2))
677
- : configuredCatalogPath;
750
+ const expandedCatalogPath = requestedCatalogPath.startsWith('~/') && home
751
+ ? path.join(home, requestedCatalogPath.slice(2))
752
+ : requestedCatalogPath;
678
753
  const catalogPath = path.isAbsolute(expandedCatalogPath)
679
754
  ? expandedCatalogPath
680
755
  : path.resolve(path.dirname(configPath), expandedCatalogPath);
681
756
  try {
682
- const payload = JSON.parse(await readText(catalogPath, ''));
757
+ const catalogText = await readText(catalogPath, '');
758
+ if (!catalogText.trim()) {
759
+ return { model: null, source: null, blockers: [`${opts.blockerPrefix}_model_unselected`] };
760
+ }
761
+ const payload = JSON.parse(catalogText);
683
762
  const model = selectCatalogModel(payload, opts.requirePriority === true);
684
763
  return model
685
- ? { model, source: 'model_catalog_json', blockers: [] }
686
- : { model: null, source: 'model_catalog_json', blockers: [`${opts.blockerPrefix}_${opts.requirePriority === true ? 'priority_' : ''}model_unavailable`] };
764
+ ? { model, source: configuredCatalogPath ? 'model_catalog_json' : 'codex_models_cache', blockers: [] }
765
+ : { model: null, source: configuredCatalogPath ? 'model_catalog_json' : 'codex_models_cache', blockers: [`${opts.blockerPrefix}_${opts.requirePriority === true ? 'priority_' : ''}model_unavailable`] };
687
766
  }
688
767
  catch {
689
- return { model: null, source: 'model_catalog_json', blockers: [`${opts.blockerPrefix}_catalog_invalid`] };
768
+ return { model: null, source: configuredCatalogPath ? 'model_catalog_json' : 'codex_models_cache', blockers: [`${opts.blockerPrefix}_catalog_invalid`] };
690
769
  }
691
770
  }
692
771
  function topLevelTomlString(text, key) {
@@ -821,6 +900,7 @@ export function controllerOptions(args = []) {
821
900
  const envPath = readOption(args, '--env-file', readOption(args, '--env-path', null));
822
901
  const metadataPath = readOption(args, '--metadata', readOption(args, '--metadata-path', null));
823
902
  const receiptDir = readOption(args, '--receipt-dir', null);
903
+ const routingTruthReceiptPath = readOption(args, '--routing-truth-receipt', null);
824
904
  const listenHost = readOption(args, '--listen-host', null);
825
905
  const normalizedListenHost = listenHost === null
826
906
  ? null
@@ -841,6 +921,7 @@ export function controllerOptions(args = []) {
841
921
  ...(envPath ? { envPath: String(envPath) } : {}),
842
922
  ...(metadataPath ? { metadataPath: String(metadataPath) } : {}),
843
923
  ...(receiptDir ? { receiptDir: String(receiptDir) } : {}),
924
+ ...(routingTruthReceiptPath ? { routingTruthReceiptPath: String(routingTruthReceiptPath) } : {}),
844
925
  ...(capabilityTimeoutMs !== null && Number.isFinite(capabilityTimeoutMs) && capabilityTimeoutMs > 0
845
926
  ? { capabilityTimeoutMs }
846
927
  : {}),
@@ -855,11 +936,19 @@ export function controllerOptions(args = []) {
855
936
  : {})
856
937
  };
857
938
  }
858
- function formatCodexLbDesktopStatusText(status) {
939
+ export function formatCodexLbDesktopStatusText(status, opts = {}) {
859
940
  const oauth = asRecord(status.oauth);
860
941
  const provider = asRecord(status.provider);
861
942
  const bridge = asRecord(status.bridge);
862
943
  const capabilities = asRecord(status.capabilities);
944
+ const resolution = asRecord(status.secret_resolution);
945
+ const resolutionSource = String(resolution.source || 'missing');
946
+ const resolutionPath = resolution.path
947
+ ? displayHomePath(String(resolution.path), opts.home || process.env.HOME || '')
948
+ : '';
949
+ const resolutionLabel = resolutionPath
950
+ ? `${resolutionSource} (${resolutionPath})`
951
+ : resolutionSource;
863
952
  const blockers = stringArray(status.blockers);
864
953
  const guidance = stringArray(status.guidance);
865
954
  const lines = [
@@ -873,6 +962,7 @@ function formatCodexLbDesktopStatusText(status) {
873
962
  `Provider: ${String(provider.contract || 'missing')} (${provider.contract_ok === true ? 'ok' : 'blocked'})`,
874
963
  `Bridge: ${String(bridge.status || 'unknown')}${bridge.running === true ? ' (running)' : ''}`,
875
964
  `Gateway auth: ${String(status.gateway_auth_transport || 'inactive')}`,
965
+ `Key source: ${resolutionLabel} · keychain: not used · prompt risk: ${String(resolution.prompt_risk || 'none')}`,
876
966
  `Capabilities: ${String(status.overall || capabilities.state || 'unverified')}`,
877
967
  `Full capability: ${status.full_capability_verified === true ? 'verified' : 'unverified'}`
878
968
  ];
@@ -888,6 +978,13 @@ function formatCodexLbDesktopStatusText(status) {
888
978
  }
889
979
  return `${lines.join('\n')}\n`;
890
980
  }
981
+ function displayHomePath(file, home) {
982
+ const resolvedFile = path.resolve(file);
983
+ const resolvedHome = home ? path.resolve(home) : '';
984
+ return resolvedHome && (resolvedFile === resolvedHome || resolvedFile.startsWith(`${resolvedHome}${path.sep}`))
985
+ ? `~${resolvedFile.slice(resolvedHome.length)}`
986
+ : resolvedFile;
987
+ }
891
988
  function printDeprecationWarning(oldAction, replacement) {
892
989
  console.error(`warning: \`sks codex-lb ${oldAction}\` is deprecated; use \`${replacement}\`.`);
893
990
  }
@@ -1005,6 +1102,7 @@ async function codexLbSetupOptions(args = []) {
1005
1102
  syncLaunchctl = true;
1006
1103
  const shellProfile = normalizeShellProfile(readOption(args, '--shell-profile', 'skip'));
1007
1104
  const allowInsecureLocalhost = flag(args, '--allow-insecure-localhost') || flag(args, '--allow-insecure-http');
1105
+ const useDefaultProvider = !flag(args, '--no-default-provider');
1008
1106
  const interactive = (!host || !apiKey || canAskInteractive(args)) && canAskInteractive(args);
1009
1107
  if ((!host || !apiKey) && canAskInteractive(args)) {
1010
1108
  console.log('SKS codex-lb setup\n');
@@ -1039,6 +1137,7 @@ async function codexLbSetupOptions(args = []) {
1039
1137
  shellProfile: interactiveShellProfile,
1040
1138
  allowInsecureLocalhost,
1041
1139
  apiKeySource,
1140
+ useDefaultProvider,
1042
1141
  interactive: true,
1043
1142
  yes: flag(args, '--yes')
1044
1143
  };
@@ -1055,6 +1154,7 @@ async function codexLbSetupOptions(args = []) {
1055
1154
  shellProfile,
1056
1155
  allowInsecureLocalhost,
1057
1156
  apiKeySource,
1157
+ useDefaultProvider,
1058
1158
  interactive,
1059
1159
  yes: flag(args, '--yes')
1060
1160
  };
@@ -51,7 +51,7 @@ export function doctorPhaseIdsForProfile(profile) {
51
51
  function unknownDoctorFlags(args) {
52
52
  const knownBoolean = new Set([
53
53
  '--fix', '--yes', '-y', '--machine-only', '--actual-codex', '--require-actual-codex',
54
- '--full', '--capabilities', '--repair-codex-app-ui', '--repair-zellij', '--install-homebrew',
54
+ '--full', '--capabilities', '--repair-codex-app-ui',
55
55
  '--repair-native-capabilities', '--repair-codex-native', '--local-only', '--global-only', '--project', '--global',
56
56
  '--dry-run', '--json'
57
57
  ]);