sneakoscope 10.5.0 → 10.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/README.md +112 -161
  2. package/config/skills-hash-ledger.v1.json +4 -6
  3. package/crates/sks-core/Cargo.lock +1 -1
  4. package/crates/sks-core/Cargo.toml +1 -1
  5. package/dist/bin/sks-dispatch.js +4 -0
  6. package/dist/cli/command-loaders.js +75 -0
  7. package/dist/cli/command-manifest-lite.js +311 -99
  8. package/dist/cli/command-registry.js +89 -353
  9. package/dist/cli/feature-commands.js +2 -2
  10. package/dist/cli/help-fast.js +2 -2
  11. package/dist/cli/install-helpers-menubar.js +2 -2
  12. package/dist/cli/router.js +2 -10
  13. package/dist/commands/codex-native.js +1 -1
  14. package/dist/commands/conflicts.js +1 -1
  15. package/dist/commands/proof.js +17 -2
  16. package/dist/config/skills-manifest.json +9 -5
  17. package/dist/core/agent-bridge/agent-mode.js +0 -8
  18. package/dist/core/agents/agent-central-ledger.js +0 -54
  19. package/dist/core/agents/agent-cleanup-executor.js +618 -0
  20. package/dist/core/agents/agent-recursion-guard.js +0 -3
  21. package/dist/core/agents/agent-worker-pipeline.js +0 -14
  22. package/dist/core/agents/runtime-proof-summary.js +0 -4
  23. package/dist/core/agents/scout-policy.js +0 -42
  24. package/dist/core/architecture-map-review.js +3 -2
  25. package/dist/core/clarification-gate-state.js +9 -0
  26. package/dist/core/codex/context-management.js +14 -1
  27. package/dist/core/codex-app/codex-app-restart.js +0 -83
  28. package/dist/core/codex-app/codex-app-ui-clobber-guard.js +0 -42
  29. package/dist/core/codex-app/codex-context-window.js +1 -0
  30. package/dist/core/codex-app/codex-init-deep.js +1 -61
  31. package/dist/core/codex-control/codex-reliability-shield.js +0 -7
  32. package/dist/core/codex-hooks/codex-hook-config-writer.js +0 -21
  33. package/dist/core/codex-lb/desktop-bridge/compaction-adapter.js +229 -0
  34. package/dist/core/codex-lb/desktop-bridge/http-forward.js +178 -2
  35. package/dist/core/codex-lb/desktop-bridge/responses-websocket.js +56 -3
  36. package/dist/core/codex-lb/desktop-bridge/security.js +6 -1
  37. package/dist/core/codex-lb/desktop-service.js +76 -10
  38. package/dist/core/codex-runtime/resolve-codex-runtime.js +24 -2
  39. package/dist/core/commands/align-command.js +37 -9
  40. package/dist/core/commands/basic-cli.js +1 -2
  41. package/dist/core/commands/command-utils.js +1 -1
  42. package/dist/core/commands/gc-command.js +8 -12
  43. package/dist/core/commands/hproof-command.js +1 -1
  44. package/dist/core/commands/image-ux-review-command.js +1 -1
  45. package/dist/core/commands/pipeline-command.js +64 -4
  46. package/dist/core/commands/ppt-command.js +1 -1
  47. package/dist/core/commands/proof-field-command.js +2 -2
  48. package/dist/core/commands/status-command.js +2 -2
  49. package/dist/core/commands/stop-gate-command.js +1 -1
  50. package/dist/core/commands/triwiki-graph-command.js +3 -3
  51. package/dist/core/commands/trust-command.js +1 -1
  52. package/dist/core/commands/wiki-command.js +28 -466
  53. package/dist/core/config/supabase-secret-preservation.js +0 -4
  54. package/dist/core/config-adopt/config-adopt.js +0 -6
  55. package/dist/core/daemon/sksd-hook-daemon-entrypoint.js +5 -0
  56. package/dist/core/daemon/sksd-hook-daemon.js +11 -3
  57. package/dist/core/daemon/sksd-hook-dispatch.js +7 -4
  58. package/dist/core/daemon/sksd-hook-env.js +29 -0
  59. package/dist/core/decision-contract.js +3 -2
  60. package/dist/core/decisions/config.js +3 -2
  61. package/dist/core/decisions/openrouter.js +30 -24
  62. package/dist/core/decisions/recovery.js +0 -26
  63. package/dist/core/decisions/types.js +0 -2
  64. package/dist/core/doctor/current-project-guidance.js +3 -2
  65. package/dist/core/evaluation.js +1 -1
  66. package/dist/core/feature-fixtures.js +4 -32
  67. package/dist/core/feature-registry.js +4 -16
  68. package/dist/core/git-hygiene/git-policy.js +1 -1
  69. package/dist/core/git-simple.js +27 -1
  70. package/dist/core/hooks-runtime/exclusive-gui-surface-gate.js +1 -1
  71. package/dist/core/hooks-runtime/hook-context.js +2 -11
  72. package/dist/core/hooks-runtime/hook-io.js +12 -4
  73. package/dist/core/hooks-runtime/jev-spawn-routing.js +3 -0
  74. package/dist/core/hooks-runtime/naruto-decision-gate.js +3 -3
  75. package/dist/core/hooks-runtime/official-subagent-lifecycle.js +2 -8
  76. package/dist/core/hooks-runtime/subagent-artifact-dir.js +12 -0
  77. package/dist/core/hooks-runtime/subagent-spawn-policy.js +2 -0
  78. package/dist/core/hooks-runtime/tool-output-quarantine.js +4 -31
  79. package/dist/core/hooks-runtime.js +47 -84
  80. package/dist/core/image/reference-evidence/reference-registry.js +0 -66
  81. package/dist/core/init/skills.js +4 -4
  82. package/dist/core/init.js +13 -7
  83. package/dist/core/install/installed-package-smoke.js +7 -1
  84. package/dist/core/language-preference.js +2 -2
  85. package/dist/core/lean-engineering-policy.js +0 -90
  86. package/dist/core/mad-sks/immutable-harness-guard.js +0 -3
  87. package/dist/core/managed-assets/managed-assets-manifest.js +0 -14
  88. package/dist/core/managed-paths.js +1 -24
  89. package/dist/core/mcp/mcp-tool-policy.js +0 -74
  90. package/dist/core/naruto/naruto-task-hints.js +1 -26
  91. package/dist/core/naruto/naruto-work-item.js +0 -17
  92. package/dist/core/perf-bench.js +1 -1
  93. package/dist/core/performance-budgets.json +10 -15
  94. package/dist/core/pipeline-internals/pipeline-stage-builder.js +13 -2
  95. package/dist/core/pipeline-internals/runtime-core.js +114 -78
  96. package/dist/core/pipeline-internals/runtime-gates.js +3 -40
  97. package/dist/core/pipeline.js +1 -1
  98. package/dist/core/proof/route-adapter.js +1 -1
  99. package/dist/core/proof-field.js +1 -1
  100. package/dist/core/provider/provider-self-heal.js +0 -18
  101. package/dist/core/questions.js +1 -9
  102. package/dist/core/route-question-schema.js +9 -0
  103. package/dist/core/routes/constants.js +1 -1
  104. package/dist/core/routes/diagnostic-allowlist.js +1 -2
  105. package/dist/core/routes/dollar-manifest-lite.js +2 -2
  106. package/dist/core/routes.js +11 -101
  107. package/dist/core/runtime/task-profile.js +15 -1
  108. package/dist/core/safety/command-contract/contracts.js +53 -129
  109. package/dist/core/safety/intent-contract/intent-contract.js +0 -28
  110. package/dist/core/safety/ssot-authority-inventory.js +1 -1
  111. package/dist/core/search/context-graph-seeds.js +0 -183
  112. package/dist/core/security/high-risk-contracts.js +1 -20
  113. package/dist/core/skill-forge.js +2 -30
  114. package/dist/core/subagents/naruto-host-credentials.js +0 -18
  115. package/dist/core/subagents/official-subagent-preparation.js +4 -0
  116. package/dist/core/subagents/official-subagent-prompt.js +9 -9
  117. package/dist/core/triwiki/agents-md-projector.js +0 -3
  118. package/dist/core/triwiki/context-graph/architecture/policy.js +14 -0
  119. package/dist/core/triwiki/context-graph/compiler/cache-key.js +6 -0
  120. package/dist/core/triwiki/context-graph/compiler/fragment-manifest.js +0 -6
  121. package/dist/core/triwiki/context-graph/paths.js +0 -3
  122. package/dist/core/triwiki/context-graph/query/index.js +0 -22
  123. package/dist/core/triwiki/context-graph/store/architecture-map-store.js +3 -2
  124. package/dist/core/triwiki/context-graph/store/fragment-cache.js +0 -24
  125. package/dist/core/triwiki/context-graph/store/operation-journal-schema.js +0 -15
  126. package/dist/core/triwiki/triwiki-module-card.js +3 -3
  127. package/dist/core/triwiki/triwiki-proof-bank-index-store.js +0 -3
  128. package/dist/core/triwiki/triwiki-proof-bank-index.js +1 -41
  129. package/dist/core/triwiki-runtime.js +4 -16
  130. package/dist/core/triwiki-wrongness/wrongness-ledger.js +1 -1
  131. package/dist/core/update/update-migration-state/fast-mode-config.js +0 -13
  132. package/dist/core/verification-profile.js +4 -4
  133. package/dist/core/version.js +1 -1
  134. package/dist/scripts/sks-cli-gate-lib.js +3 -1
  135. package/package.json +26 -24
  136. package/runtime-required-scripts.json +64 -19
  137. package/config/competitor-scorecard-baseline.json +0 -76
  138. package/config/installed-public-surface-closure.v1.json +0 -13
  139. package/dist/commands/all-features.js +0 -5
  140. package/dist/commands/bench.js +0 -4
  141. package/dist/commands/code-structure.js +0 -5
  142. package/dist/commands/commands.js +0 -4
  143. package/dist/commands/dfix.js +0 -4
  144. package/dist/commands/features.js +0 -5
  145. package/dist/commands/harness.js +0 -5
  146. package/dist/commands/hproof.js +0 -5
  147. package/dist/commands/image-ux-review.js +0 -4
  148. package/dist/commands/init.js +0 -2
  149. package/dist/commands/paths.js +0 -4
  150. package/dist/commands/perf.js +0 -128
  151. package/dist/commands/ppt.js +0 -4
  152. package/dist/commands/profile.js +0 -5
  153. package/dist/commands/proof-field.js +0 -5
  154. package/dist/commands/qa-loop.js +0 -5
  155. package/dist/commands/research.js +0 -5
  156. package/dist/commands/rollback.js +0 -4
  157. package/dist/commands/rust.js +0 -4
  158. package/dist/commands/status.js +0 -4
  159. package/dist/commands/update-check.js +0 -2
  160. package/dist/commands/versioning.js +0 -26
  161. package/dist/core/bench.js +0 -389
  162. package/dist/core/commands/bench-command.js +0 -67
  163. package/dist/core/commands/check-command.js +0 -156
  164. package/dist/core/commands/daemon-command.js +0 -13
  165. package/dist/core/commands/gates-command.js +0 -62
  166. package/dist/core/commands/harness-command.js +0 -17
  167. package/dist/core/commands/loop-command.js +0 -22
  168. package/dist/core/commands/perf-command.js +0 -34
  169. package/dist/core/commands/profile-command.js +0 -26
  170. package/dist/core/commands/release-command.js +0 -176
  171. package/dist/core/commands/rollback-command.js +0 -45
  172. package/dist/core/commands/run-command.js +0 -655
  173. package/dist/core/commands/rust-command.js +0 -80
  174. package/dist/core/commands/task-command.js +0 -14
  175. package/dist/core/git-hygiene/shared-memory-manifest.js +0 -1
  176. package/dist/core/image-ux-review/reference-policy/reference-policy.js +0 -9
  177. package/dist/core/loops/loop-artifacts.js +0 -29
  178. package/dist/core/loops/loop-continuation-enforcer.js +0 -95
  179. package/dist/core/loops/loop-observability.js +0 -18
  180. package/dist/core/loops/loop-proof-validation.js +0 -38
  181. package/dist/core/loops/loop-schema.js +0 -1
  182. package/dist/core/ops/ops-maturity-scorecard.js +0 -75
  183. package/dist/core/release-parallel-full-coverage.js +0 -44
  184. package/dist/core/triwiki/context-graph/architecture/index.js +0 -15
  185. package/dist/core/triwiki/context-graph/compiler/fragment-manifest-store.js +0 -35
  186. package/dist/core/triwiki/context-graph/compiler/fragment-merge.js +0 -195
  187. package/dist/core/triwiki/context-graph/compiler/fragment-plan.js +0 -137
  188. package/dist/core/triwiki/context-graph/compiler/fragment-store.js +0 -82
  189. package/dist/core/triwiki/context-graph/compiler/incremental-build.js +0 -161
  190. package/dist/core/triwiki/context-graph/compiler/incremental-extract.js +0 -94
  191. package/dist/core/triwiki/context-graph/compiler/k-way-merge.js +0 -92
  192. package/dist/core/triwiki/context-graph/compiler/source-fragment.js +0 -74
  193. package/dist/core/triwiki/context-graph/projections/index.js +0 -12
  194. package/dist/core/triwiki/context-graph/store/graph-status.js +0 -93
  195. package/dist/core/triwiki-wrongness/validators.js +0 -3
  196. package/dist/core/trust-kernel/evidence-router.js +0 -1
  197. package/dist/core/wiki-image/computer-use-evidence.js +0 -1
  198. package/dist/scripts/agent-guidance-dedup-check.js +0 -23
  199. package/dist/scripts/agent-message-bus-reader-check.js +0 -17
  200. package/dist/scripts/all-feature-deep-completion-check.js +0 -42
  201. package/dist/scripts/appshots-thread-attachment-discovery-check.js +0 -85
  202. package/dist/scripts/architecture-guard-check.js +0 -80
  203. package/dist/scripts/architecture-map-check.js +0 -299
  204. package/dist/scripts/certificate-sla-check.js +0 -7
  205. package/dist/scripts/check-runtime-schemas.js +0 -130
  206. package/dist/scripts/cli-output-consistency-check.js +0 -54
  207. package/dist/scripts/codex-agent-role-rich-content-check.js +0 -3
  208. package/dist/scripts/codex-agent-role-sync-check.js +0 -3
  209. package/dist/scripts/codex-app-execution-profile-check.js +0 -3
  210. package/dist/scripts/codex-app-fast-ui-preservation-check.js +0 -31
  211. package/dist/scripts/codex-app-handoff-check.js +0 -22
  212. package/dist/scripts/codex-app-handoff-launch-check.js +0 -22
  213. package/dist/scripts/codex-control-all-pipelines-check.js +0 -29
  214. package/dist/scripts/codex-control-event-stream-ledger-check.js +0 -8
  215. package/dist/scripts/codex-control-tool-output-continuity-audit-check.js +0 -25
  216. package/dist/scripts/codex-current-app-server-v2-check.js +0 -55
  217. package/dist/scripts/codex-current-binary-identity-check.js +0 -22
  218. package/dist/scripts/codex-current-capability-check.js +0 -17
  219. package/dist/scripts/codex-current-dependency-check.js +0 -21
  220. package/dist/scripts/codex-current-policy-check.js +0 -35
  221. package/dist/scripts/codex-current-thread-store-check.js +0 -53
  222. package/dist/scripts/codex-native-agent-role-content-check.js +0 -53
  223. package/dist/scripts/codex-native-feature-broker-blackbox.js +0 -3
  224. package/dist/scripts/codex-native-feature-broker-check.js +0 -3
  225. package/dist/scripts/codex-native-gate-lib.js +0 -400
  226. package/dist/scripts/codex-native-harness-compat-check.js +0 -3
  227. package/dist/scripts/codex-native-hook-lifecycle-proof-check.js +0 -3
  228. package/dist/scripts/codex-native-runtime-e2e-fixture.js +0 -61
  229. package/dist/scripts/codex-plugin-app-template-policy-check.js +0 -8
  230. package/dist/scripts/codex-sdk-all-pipelines-check.js +0 -26
  231. package/dist/scripts/codex-sdk-backend-router-check.js +0 -73
  232. package/dist/scripts/codex-sdk-capability-check.js +0 -9
  233. package/dist/scripts/codex-sdk-event-stream-ledger-check.js +0 -7
  234. package/dist/scripts/codex-sdk-real-smoke-check.js +0 -57
  235. package/dist/scripts/concurrent-session-collision-check.js +0 -75
  236. package/dist/scripts/context-graph-check.js +0 -191
  237. package/dist/scripts/context-graph-v2-check.js +0 -327
  238. package/dist/scripts/context7-evidence-dedupe-check.js +0 -52
  239. package/dist/scripts/core-skill-card-schema-check.js +0 -49
  240. package/dist/scripts/core-skill-deployment-snapshot-check.js +0 -43
  241. package/dist/scripts/core-skill-route-runtime-integration-check.js +0 -37
  242. package/dist/scripts/current-command-surface-check.js +0 -80
  243. package/dist/scripts/current-surface-update-e2e-check.js +0 -511
  244. package/dist/scripts/current-upgrade-matrix-check.js +0 -229
  245. package/dist/scripts/dfix-patch-handoff-check.js +0 -11
  246. package/dist/scripts/dfix-verification-recommendation-check.js +0 -13
  247. package/dist/scripts/docs-truthfulness-check.js +0 -80
  248. package/dist/scripts/doctor-codex-app-harness-check.js +0 -3
  249. package/dist/scripts/doctor-fix-proves-codex-read-check.js +0 -90
  250. package/dist/scripts/doctor-fixes-codex-app-fast-ui-check.js +0 -83
  251. package/dist/scripts/fast-codex-service-tier-proof-check.js +0 -39
  252. package/dist/scripts/fixtures/fake-codex-config-loader.js +0 -45
  253. package/dist/scripts/gate-policy-audit-check.js +0 -281
  254. package/dist/scripts/geo-claim-evidence-check.js +0 -16
  255. package/dist/scripts/geo-cli-blackbox-check.js +0 -16
  256. package/dist/scripts/geo-crawler-policy-check.js +0 -14
  257. package/dist/scripts/git-worktree-checkpoint-check.js +0 -19
  258. package/dist/scripts/git-worktree-cross-rebase-check.js +0 -40
  259. package/dist/scripts/git-worktree-diff-envelope-check.js +0 -15
  260. package/dist/scripts/git-worktree-dirty-lock-check.js +0 -15
  261. package/dist/scripts/git-worktree-dirty-main-detection-check.js +0 -12
  262. package/dist/scripts/git-worktree-integration-primary-check.js +0 -22
  263. package/dist/scripts/git-worktree-manifest-append-check.js +0 -16
  264. package/dist/scripts/git-worktree-untracked-diff-check.js +0 -16
  265. package/dist/scripts/goal-artifact-compat-check.js +0 -7
  266. package/dist/scripts/gpt-final-all-pipelines-check.js +0 -18
  267. package/dist/scripts/harness-benchmark-check.js +0 -75
  268. package/dist/scripts/helper-dedup-check.js +0 -60
  269. package/dist/scripts/hook-latency-budget-check.js +0 -43
  270. package/dist/scripts/image-artifact-path-contract-check.js +0 -12
  271. package/dist/scripts/imagegen-real-smoke-check.js +0 -149
  272. package/dist/scripts/init-deep-backup-retention-check.js +0 -36
  273. package/dist/scripts/install-surface-ssot-check.js +0 -96
  274. package/dist/scripts/installed-package-smoke-check.js +0 -25
  275. package/dist/scripts/latest-version-guidance-check.js +0 -74
  276. package/dist/scripts/lib/codex-sdk-gate-lib.js +0 -74
  277. package/dist/scripts/lib/git-worktree-fixture.js +0 -27
  278. package/dist/scripts/lib/valid-png-fixture.js +0 -16
  279. package/dist/scripts/mad-preflight-blocks-unreadable-config-check.js +0 -55
  280. package/dist/scripts/mad-sks-app-ui-no-mutation-check.js +0 -81
  281. package/dist/scripts/mad-sks-launch-sql-plane-boundary-check.js +0 -92
  282. package/dist/scripts/mad-sks-sql-plane-capability-check.js +0 -25
  283. package/dist/scripts/mad-sks-sql-plane-lifecycle-hook-decision-check.js +0 -16
  284. package/dist/scripts/mad-sks-sql-plane-result-lifecycle-check.js +0 -29
  285. package/dist/scripts/mcp-plugin-inventory-check.js +0 -9
  286. package/dist/scripts/model-call-concurrency-check.js +0 -13
  287. package/dist/scripts/mutation-callsite-analysis.js +0 -387
  288. package/dist/scripts/mutation-callsite-coverage-check.js +0 -242
  289. package/dist/scripts/naruto-ssot-gate-aliases-check.js +0 -9
  290. package/dist/scripts/naruto-ssot-pipeline-default-check.js +0 -10
  291. package/dist/scripts/naruto-ssot-route-normalization-check.js +0 -8
  292. package/dist/scripts/naruto-ssot-routing-check.js +0 -14
  293. package/dist/scripts/naruto-worktree-coding-blackbox.js +0 -27
  294. package/dist/scripts/native-capability-repair-matrix-check.js +0 -11
  295. package/dist/scripts/native-image-generation-repair-check.js +0 -8
  296. package/dist/scripts/official-subagent-workflow-check.js +0 -150
  297. package/dist/scripts/package-published-contract-check.js +0 -71
  298. package/dist/scripts/packlist-performance-check.js +0 -164
  299. package/dist/scripts/pipeline-codex-native-doctor-mad-routing-check.js +0 -3
  300. package/dist/scripts/pipeline-codex-native-doctor-mad-routing-real-blackbox.js +0 -72
  301. package/dist/scripts/pipeline-codex-native-image-routing-check.js +0 -3
  302. package/dist/scripts/pipeline-codex-native-image-routing-real-blackbox.js +0 -48
  303. package/dist/scripts/pipeline-codex-native-qa-routing-check.js +0 -3
  304. package/dist/scripts/pipeline-codex-native-qa-routing-real-blackbox.js +0 -49
  305. package/dist/scripts/pipeline-codex-native-research-routing-check.js +0 -3
  306. package/dist/scripts/pipeline-codex-native-research-routing-real-blackbox.js +0 -43
  307. package/dist/scripts/ppt-full-e2e-blackbox-check.js +0 -146
  308. package/dist/scripts/ppt-real-export-adapter-check.js +0 -11
  309. package/dist/scripts/ppt-real-imagegen-smoke-check.js +0 -40
  310. package/dist/scripts/ppt-real-imagegen-wiring-check.js +0 -18
  311. package/dist/scripts/ppt-reexport-rereview-check.js +0 -17
  312. package/dist/scripts/probe-memoization-check.js +0 -9
  313. package/dist/scripts/product-design-plugin-routing-check.js +0 -99
  314. package/dist/scripts/prompt-placeholder-guard-check.js +0 -31
  315. package/dist/scripts/proof-root-cause-policy-check.js +0 -71
  316. package/dist/scripts/provider-badge-context-check.js +0 -68
  317. package/dist/scripts/python-codex-sdk-all-pipelines-check.js +0 -51
  318. package/dist/scripts/qa-loop-app-handoff-capability-check.js +0 -7
  319. package/dist/scripts/qa-loop-app-handoff-check.js +0 -7
  320. package/dist/scripts/qa-loop-app-handoff-cli-check.js +0 -6
  321. package/dist/scripts/qa-loop-app-handoff-confirmation-check.js +0 -22
  322. package/dist/scripts/qa-loop-app-handoff-gate-lifecycle-check.js +0 -42
  323. package/dist/scripts/qa-loop-app-handoff-launch-check.js +0 -5
  324. package/dist/scripts/qa-loop-app-handoff-status-lifecycle-check.js +0 -5
  325. package/dist/scripts/qa-loop-budget-policy-check.js +0 -6
  326. package/dist/scripts/qa-loop-effort-escalation-check.js +0 -11
  327. package/dist/scripts/qa-loop-execution-profile-routing-check.js +0 -3
  328. package/dist/scripts/qa-loop-image-path-exposure-check.js +0 -7
  329. package/dist/scripts/qa-loop-image-path-prompt-injection-check.js +0 -6
  330. package/dist/scripts/real-execution-check-lib.js +0 -20
  331. package/dist/scripts/release-affected-selector-check.js +0 -118
  332. package/dist/scripts/release-aggressive-resource-governor-check.js +0 -24
  333. package/dist/scripts/release-cache-glob-hashing-check.js +0 -42
  334. package/dist/scripts/release-cache-input-classifier-check.js +0 -11
  335. package/dist/scripts/release-cache-neutralization-report-check.js +0 -11
  336. package/dist/scripts/release-cache-version-neutral-fixture-check.js +0 -64
  337. package/dist/scripts/release-dynamic-presets-check.js +0 -32
  338. package/dist/scripts/release-full-parallelism-blackbox.js +0 -41
  339. package/dist/scripts/release-gate-batch-runner-check.js +0 -73
  340. package/dist/scripts/release-gate-dag-runner-check.js +0 -124
  341. package/dist/scripts/release-gate-dag-runner.js +0 -120
  342. package/dist/scripts/release-latency-slo-check.js +0 -26
  343. package/dist/scripts/release-metadata-check.js +0 -282
  344. package/dist/scripts/release-parallel-speed-budget-check.js +0 -101
  345. package/dist/scripts/release-proof-truth-check.js +0 -12
  346. package/dist/scripts/release-provenance-check.js +0 -146
  347. package/dist/scripts/release-real-check.js +0 -542
  348. package/dist/scripts/release-runtime-truth-matrix-check.js +0 -20
  349. package/dist/scripts/release-speed-summary.js +0 -66
  350. package/dist/scripts/research-blueprint-densifier-check.js +0 -19
  351. package/dist/scripts/research-claim-builder-check.js +0 -17
  352. package/dist/scripts/research-complete-package-fixture-check.js +0 -27
  353. package/dist/scripts/research-execution-profile-routing-check.js +0 -3
  354. package/dist/scripts/research-final-reviewer-blackbox.js +0 -68
  355. package/dist/scripts/responses-retry-policy-centralized-check.js +0 -17
  356. package/dist/scripts/runtime-domain-gate-lib.js +0 -97
  357. package/dist/scripts/runtime-proof-summary-check.js +0 -52
  358. package/dist/scripts/runtime-script-pack-closure-check.js +0 -95
  359. package/dist/scripts/scheduler-batch-dispatch-check.js +0 -15
  360. package/dist/scripts/scheduler-parallel-proof-consistency-check.js +0 -63
  361. package/dist/scripts/scheduler-utilization-integral-check.js +0 -103
  362. package/dist/scripts/search-visibility-gate-lib.js +0 -120
  363. package/dist/scripts/secret-preservation-check.js +0 -10
  364. package/dist/scripts/seo-audit-fixture-check.js +0 -14
  365. package/dist/scripts/seo-cli-blackbox-check.js +0 -16
  366. package/dist/scripts/seo-geo-geo-disambiguation-check.js +0 -10
  367. package/dist/scripts/seo-geo-route-identity-check.js +0 -36
  368. package/dist/scripts/seo-geo-skill-rich-content-check.js +0 -36
  369. package/dist/scripts/seo-no-mutation-by-default-check.js +0 -15
  370. package/dist/scripts/shared-memory-fixture-check.js +0 -25
  371. package/dist/scripts/side-effect-runtime-report-check.js +0 -17
  372. package/dist/scripts/skill-fixture-check-lib.js +0 -29
  373. package/dist/scripts/skill-name-canonicalizer-check.js +0 -8
  374. package/dist/scripts/skill-surface-modernization-check.js +0 -541
  375. package/dist/scripts/skills-manifest-continuity-check.js +0 -64
  376. package/dist/scripts/sks-uninstall-regression-check.js +0 -53
  377. package/dist/scripts/sksd-daemon-check.js +0 -17
  378. package/dist/scripts/super-search-provider-interface-check.js +0 -38
  379. package/dist/scripts/triwiki-cache-key-check.js +0 -7
  380. package/dist/scripts/triwiki-proof-bank-blackbox.js +0 -28
  381. package/dist/scripts/triwiki-proof-bank-check.js +0 -5
  382. package/dist/scripts/triwiki-proof-card-check.js +0 -21
  383. package/dist/scripts/trust-fixture-check.js +0 -66
  384. package/dist/scripts/type-surface-codex-app-check.js +0 -3
  385. package/dist/scripts/typed-routing-gate-lib.js +0 -233
  386. package/dist/scripts/ultra-router-auto-router-check.js +0 -31
  387. package/dist/scripts/uninstall-inventory-check.js +0 -2
  388. package/dist/scripts/ux-review-extract-wires-real-extractor-check.js +0 -13
  389. package/dist/scripts/ux-review-imagegen-blackbox-check.js +0 -94
  390. package/dist/scripts/ux-review-patch-diff-recheck-check.js +0 -18
  391. package/dist/scripts/ux-review-real-imagegen-smoke-check.js +0 -29
  392. package/dist/scripts/ux-review-run-wires-imagegen-check.js +0 -28
  393. package/dist/scripts/wrongness-fixture-check.js +0 -63
package/README.md CHANGED
@@ -4,11 +4,12 @@
4
4
 
5
5
  # Sneakoscope Codex
6
6
 
7
- **Plan, build, and verify with Codex.**
7
+ **Make Codex work explainable, bounded, and test-backed.**
8
8
 
9
+ [![CI](https://github.com/mandarange/Sneakoscope-Codex/actions/workflows/ci.yml/badge.svg)](https://github.com/mandarange/Sneakoscope-Codex/actions/workflows/ci.yml)
9
10
  [![npm version](https://img.shields.io/npm/v/sneakoscope?color=cb3837&logo=npm)](https://www.npmjs.com/package/sneakoscope)
10
- [![node](https://img.shields.io/badge/node-%3E%3D20.11-339933?logo=node.js&logoColor=white)](#requirements)
11
- [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
11
+ [![Node.js >=20.11](https://img.shields.io/badge/node-%3E%3D20.11-339933?logo=node.js&logoColor=white)](#quick-start)
12
+ [![MIT license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
12
13
 
13
14
  </div>
14
15
 
@@ -16,233 +17,183 @@
16
17
  Sneakoscope Codex (`sks`) is an open-source trust layer for Codex CLI and ChatGPT Desktop. It coordinates bounded AI coding agents, records machine-verifiable evidence, preserves project memory, and blocks release claims that are not supported by current tests or artifacts. Search visibility outcomes are measured separately; SKS does not promise rankings or traffic.
17
18
  <!-- END SKS SEARCH VISIBILITY MARKETING -->
18
19
 
19
- Current package: **SKS 10.5.0**. Install the latest stable release from npm.
20
+ Current package: **SKS 10.5.2**. Install the latest stable release from npm.
20
21
 
21
- [Quick start](#install-in-one-command) · [Commands](#everyday-commands) · [SKS Center](#sks-center-macos) · [Documentation](#documentation) · [Changelog](CHANGELOG.md)
22
+ Sneakoscope Codex (`sks`) is a local trust layer for Codex CLI and ChatGPT Desktop. It keeps agent work bounded, preserves project context, records machine-verifiable evidence, and prevents release claims that current tests or artifacts cannot support.
22
23
 
23
- ## Install in one command
24
+ Use SKS when you want an AI coding session to end with something you can inspect: the change, the checks that ran, and the evidence behind the result. SKS is local-first and deterministic. It does not promise model quality, search rankings, or traffic.
25
+
26
+ ## Quick start
27
+
28
+ Requirements: Node.js **20.11+**, npm, Git, and a current Codex CLI or supported Codex desktop host.
24
29
 
25
30
  ```sh
26
31
  npm exec --yes --package=sneakoscope@latest -- sneakoscope install --yes
27
32
  ```
28
33
 
29
- The installer resolves the latest release, installs it globally, runs setup and
30
- Doctor, and checks that `sks` on your PATH points to the installed version.
31
-
32
- SKS turns on in every project you open in Codex. Its hooks live in the
33
- user-level `~/.codex/hooks.json`, and `sks update` keeps them installed and
34
- trusted. To add a project's own SKS files (TriWiki context, ignore rules), run
35
- this from its root:
34
+ From the root of a project you want SKS to understand:
36
35
 
37
36
  ```sh
38
- sks bootstrap --yes
37
+ sks bootstrap
38
+ sks doctor --json
39
39
  ```
40
40
 
41
- ## What SKS adds
41
+ Then open the project in Codex. Start with the smallest useful loop:
42
42
 
43
- | Capability | What you get |
44
- | --- | --- |
45
- | Focused execution | Answers and tiny edits stay lightweight; implementation work runs through official Codex subagents while the parent orchestrates and integrates. |
46
- | Project context | TriWiki indexes repository code and supplies bounded context that can be checked against source. |
47
- | Verification | Tests, diagnostics, and release evidence support completion claims. Security and data-integrity checks stay in place. |
48
- | Native controls | SKS Center brings connections, updates, MCP servers, and diagnostics together on macOS. |
49
- | Consistent setup | `sks update` installs the latest release, runs Doctor, turns SKS hooks on for every Codex project, and reconciles SKS-managed files and legacy assets. |
43
+ ```text
44
+ $sks-plan "Describe the change and the checks it needs"
45
+ $sks-work
46
+ $sks-review
47
+ ```
50
48
 
51
- The default `essential` profile avoids repetitive completion rituals. `strict`
52
- adds stronger completion requirements. See [Essential Trust](docs/essential-trust.md).
49
+ Use the terminal to inspect the same state:
53
50
 
54
- With Codex-LB connected, `sks agent-bridge async --prompt "Check SKS status while
55
- explaining what the check covers" --tools status --json` runs native Astra Async
56
- tool calling with selected read-only SKS tools, using WebSocket first and safe
57
- HTTP fallback. See [Astra guidance](docs/astra-guidance.md)
58
- for setup boundaries and reported execution evidence.
51
+ ```sh
52
+ sks status --json
53
+ sks review --staged
54
+ sks update-check
55
+ ```
59
56
 
60
- ## Everyday commands
57
+ The installer resolves the latest npm release, installs `sks`, runs setup and Doctor, and verifies that the command on your `PATH` is the version it installed. `sks bootstrap` adds the project-local SKS context and ignore rules; it does not replace your source of truth.
61
58
 
62
- SKS enables experimental Codex context management by default during setup and
63
- repair. Turn it off in **SKS Center → Settings → Context management**, or
64
- use `sks codex-app context-management off`. Updates preserve an explicit opt-out.
65
- Start a new task after changing the setting. Availability depends on a supported
66
- Codex client and eligible ChatGPT sign-in; API-key and custom-provider sessions
67
- may not activate it. See [OpenAI's context management guidance](https://learn.chatgpt.com/docs/models#experimental-context-management).
59
+ ## What you get
68
60
 
69
- Use these inside a Codex conversation:
61
+ | Need | SKS provides |
62
+ | --- | --- |
63
+ | Keep work focused | Answers, tiny edits, ordinary implementation, reviews, and DB work run directly in the main agent, the way Codex works by default. Naruto splits work across official Codex subagents only when you ask for it. |
64
+ | Keep context bounded | TriWiki indexes repository code into context that can be checked against source. |
65
+ | Know what actually ran | Tests, diagnostics, and release evidence are recorded for completion claims. |
66
+ | Recover safely | Doctor and update flows report a concrete recovery action when a check needs attention. |
67
+ | Operate locally | The CLI works without a hosted control plane; macOS users can also use SKS Center. |
68
+
69
+ ## Everyday commands
70
70
 
71
- | Command | Purpose |
71
+ Inside a Codex conversation:
72
+
73
+ | Command | Use it for |
72
74
  | --- | --- |
73
- | `$sks-plan "task"` | Create a plan without editing product code. |
74
- | `$sks-work` | Execute the latest plan. |
75
- | `$sks-naruto "task"` | Run an official subagent workflow. |
75
+ | `$sks-plan "task"` | Write a plan without editing product code. |
76
+ | `$sks-work` | Execute the latest plan with Naruto child agents. |
76
77
  | `$sks-review` | Review the current changes. |
78
+ | `$sks-naruto "task"` | Explicitly split independent work across official subagents. |
77
79
  | `$sks-help` | Explore available SKS workflows. |
78
80
 
79
- Use these in your terminal:
81
+ In a terminal:
80
82
 
81
83
  ```sh
82
84
  sks --help
83
85
  sks status --json
84
- sks review --staged
85
86
  sks doctor --json
86
87
  sks update-check
87
88
  sks update
88
89
  ```
89
90
 
90
- `sks update` runs setup reconciliation even when the package is already current.
91
- It preserves user-authored configuration and cleans up recognized SKS-owned
92
- legacy assets. If a check needs attention, follow its reported recovery action
93
- in your terminal.
91
+ Naruto runs only when you invoke `$sks-naruto` or `$sks-work`, pass `--agents N`, or ask for subagents or parallel work in so many words (a word like "parallel" in a file name is not a request); with Jev mode on, Jev may also judge that a task splits into independent parts. Ordinary fixes, tests, refactors, reviews, and DB work stay with the main agent by default. See the [Naruto guide](docs/naruto.md).
94
92
 
95
- ## SKS Center (macOS)
93
+ ## How the trust loop works
96
94
 
97
- Open **SKS Control Center** from the SKS menu bar.
98
- The Menu Bar app (with the Control Center) is built from source on macOS when you run
99
- `npm i -g sneakoscope` interactively in a terminal, and by `sks install`, `sks doctor --fix`,
100
- `sks update`, or `sks menubar install`. Dependency, CI, and piped installs never touch your
101
- home directory; set `SKS_POSTINSTALL_MENUBAR=1` to force the build in a script, or
102
- `SKS_POSTINSTALL_NO_MENUBAR=1` to skip it.
95
+ 1. **Plan** — describe the outcome and the evidence it needs.
96
+ 2. **Build** — make the smallest change that satisfies the plan.
97
+ 3. **Verify** — run the project checks and SKS diagnostics.
98
+ 4. **Review** — inspect the diff and the evidence before claiming completion.
103
99
 
104
- | Page | Use it to |
105
- | --- | --- |
106
- | Overview | Check local health and find the next action. |
107
- | Connections | Connect Codex-LB or OpenRouter, choose Prefer Codex-LB or OpenRouter Only, and manage exposed models. |
108
- | Subagent Models | Keep the OpenRouter models subagents may use in OpenRouter Only Mode, with the criteria Jev routes by. |
109
- | Updates | Check and update SKS and Codex CLI, with operation progress and recovery details. |
110
- | MCP Servers | Manage server configuration, health checks, and authentication. |
111
- | Image Generation | Keep Codex's default image generation, or route it through the Desktop Bridge to an OpenRouter image model you pick. |
112
- | Diagnostics | Inspect issues and run targeted checks. |
113
- | Settings | Configure lifecycle behavior, notifications, and advanced options. |
114
- | Remote Coding | Find the independent [Paseo companion](https://paseo.sh/docs) and its setup guidance. |
115
-
116
- Connection controls appear first. Model catalogs, bridge diagnostics, and
117
- advanced settings expand when you need them.
118
-
119
- ## Desktop Bridge
120
-
121
- One local bridge manages routing for independent **Codex-LB** and **OpenRouter**
122
- profiles. ChatGPT sign-in remains owned by Codex. Provider choices and existing
123
- session pins remain authoritative; unavailable routes are reported explicitly.
124
-
125
- In **Connections**, turn on **Prefer Codex-LB** to use the saved Codex-LB
126
- connection first for eligible models. The switch distinguishes a saved preference
127
- from connection readiness: **on but unavailable** means setup needs attention.
128
- Turning it off restores the configured official-model routing preference.
129
-
130
- Turn on **OpenRouter Only** instead to run the main thread and every subagent on
131
- OpenRouter models. The two switches are mutually exclusive: turning one on turns
132
- the other off. Subagents may use only the models on the **Subagent Models** page,
133
- and with Jev mode on, Jev picks one for each child from the criteria you wrote.
134
- See [OpenRouter Only Mode](docs/openrouter-only-mode.md).
135
-
136
- The same controls are available from the CLI:
100
+ SKS keeps these steps observable. It does not turn a failed check into a success, invent test output, or silently substitute a provider.
101
+
102
+ ## Optional integrations
103
+
104
+ ### SKS Center on macOS
105
+
106
+ The menu bar app exposes connections, updates, MCP servers, image generation, and diagnostics in one place. Build it from an interactive macOS install or run:
107
+
108
+ ```sh
109
+ sks menubar install
110
+ ```
111
+
112
+ Dependency, CI, and piped installs do not touch your home directory. Set `SKS_POSTINSTALL_MENUBAR=1` to force the build in a script, or `SKS_POSTINSTALL_NO_MENUBAR=1` to skip it.
113
+
114
+ ### Desktop Bridge
115
+
116
+ The Desktop Bridge can route eligible models through Codex-LB or OpenRouter while keeping provider choice and session pins explicit:
137
117
 
138
118
  ```sh
139
119
  sks bridge auth-priority status --json
140
120
  sks bridge auth-priority on --json
141
- sks bridge auth-priority off --json
142
- sks bridge openrouter-only on --json
143
- sks bridge subagent-models list --json
144
121
  sks bridge status --json
145
- sks bridge route explain gpt-6-astra --json
146
122
  ```
147
123
 
148
- Enter credentials through the native connection dialog or the CLI's
149
- `--api-key-stdin` option. See the [provider guide](docs/codex-lb.md) for
150
- configuration, transport checks, and recovery commands.
124
+ Enter credentials only through the native connection dialog or an explicit `--api-key-stdin` flow. See [Codex-LB guidance](docs/codex-lb.md) and [OpenRouter Only Mode](docs/openrouter-only-mode.md).
151
125
 
152
- ## Image generation
126
+ ### Image generation
153
127
 
154
- SKS image routes (image generation, UX-Review callouts, PPT assets, slide
155
- reviews) follow one image mode. By default they use Codex's own image
156
- generation. Turn on a custom image model on the **Image Generation** page to
157
- send every SKS image through the Desktop Bridge to an OpenRouter image model
158
- you pick. SKS pins no image model and records which model made each image.
128
+ SKS records which image mode produced an artifact and keeps the default Codex image route available:
159
129
 
160
130
  ```sh
161
131
  sks imagegen status --json
162
132
  sks imagegen models --json
163
- sks imagegen enable --model black-forest-labs/flux.2-klein-4b
164
133
  sks imagegen generate --prompt "App icon, flat, blue" --out icon.png
165
- sks imagegen disable
166
134
  ```
167
135
 
168
- See [Image generation](docs/image-generation.md) for both modes, evidence
169
- sidecars, and the Jev choices.
136
+ See [Image generation](docs/image-generation.md) for provider boundaries and evidence sidecars.
170
137
 
171
- ## Naruto workflow
138
+ ## Documentation
172
139
 
173
- Naruto is for work you ask to split, not the default for implementation. A bug
174
- fix, a test, a refactor or config change, or a review is the main agent's own
175
- job, the way Codex works by default: no mission, no subagent plan, no parent edit
176
- gate. Naruto runs when you invoke `$sks-naruto`, pass `--agents N`, or ask for
177
- subagents or parallel work in so many words, and, with Jev mode on, when Jev
178
- judges that the task splits into independent parts (single is its default).
140
+ - [Product contract](docs/PRODUCT-CONTRACT.md) — supported surfaces and ownership.
141
+ - [Essential Trust](docs/essential-trust.md) — verification profiles and safety boundaries.
142
+ - [Astra guidance](docs/astra-guidance.md) — how SKS applies official model recommendations.
143
+ - [Agent Bridge](docs/AGENT-BRIDGE.md) — integrate through the CLI or MCP interface.
144
+ - [Context Graph](docs/architecture/context-graph.md) — bounded source lookup and freshness.
145
+ - [Release readiness](docs/release-readiness.md) — build, verify, and publish a release.
146
+ - [Release evidence](docs/release-proof-truth.md) — what each verification result proves.
147
+ - [FAQ](docs/faq.md) — common setup questions.
148
+ - [Troubleshooting](docs/troubleshooting.md) — concrete recovery paths.
149
+ - [Changelog](CHANGELOG.md) — changes by version.
179
150
 
180
- Inside Naruto the parent orchestrates: it decomposes the task, spawns a child for
181
- each disjoint slice, waits, and owns integration and final verification. It does
182
- not implement slices itself. The SKS PreToolUse hook denies parent source edits
183
- until the first child starts and while children are still running. Children
184
- receive bounded tasks and do not spawn children.
151
+ ## FAQ and troubleshooting
185
152
 
186
- No model family is pinned. Every child runs the newest model of the tier its
187
- work needs, read from the Codex models cache, so a new model family is used as
188
- soon as Codex lists it:
153
+ ### Does SKS send my source code to a hosted service?
189
154
 
190
- | Work | Tier | Effort | Today |
191
- | --- | --- | --- | --- |
192
- | Tiny mechanical tasks | fast | low | `gpt-6-luna` |
193
- | Instructed implementation | balanced | low | `gpt-6.1-sol` |
194
- | Exploration, large-context reads, and direct tool operation | context | medium | `gpt-6.1-sol` |
195
- | Planning, review, debugging, and focused judgment | deep | max | `gpt-6-astra` |
155
+ SKS is local-first. Provider integrations are explicit opt-in routes; inspect the provider and bridge status before using them. Do not paste credentials or private source into an issue.
196
156
 
197
- With Jev mode on, Jev picks the tier for every spawn that names no managed role (a managed role runs the tier pinned in its role file), every gated parent edit,
198
- the plan, and the context, so the parent spends no time on those choices. It
199
- also picks the pipeline for each prompt; an explicit SKS dollar command always
200
- wins. A stored role-model preference on a current model wins in both modes.
157
+ ### Why does `sks doctor` report a problem after an update?
201
158
 
202
- An active Codex task keeps the user's selected main model, effort, and service
203
- tier. Codex native `/goal` remains the persisted goal owner. Parallelism depends
204
- on useful independent work and the host's available capacity.
159
+ Run `sks doctor --json`, read the reported recovery action, and run that action exactly. If the issue remains, capture the command, operating system, Node.js version, and redacted JSON in a bug report.
205
160
 
206
- See the [Naruto guide](docs/naruto.md) for explicit agent counts, role preferences,
207
- trust boundaries, and completion evidence.
161
+ ### How do I turn off experimental context management?
208
162
 
209
- ## Project context
163
+ In SKS Center, open **Settings → Context management**, or run:
210
164
 
211
165
  ```sh
212
- sks align run
213
- sks search context "How does authentication routing work?" --json
214
- sks wiki validate .sneakoscope/wiki/context-pack.json --json
166
+ sks codex-app context-management off
215
167
  ```
216
168
 
217
- `align` rebuilds the repository navigation graph and its context projections.
218
- These are generated local caches; refresh them after material changes. See the
219
- [Context Graph guide](docs/architecture/context-graph.md) for source lookup and
220
- freshness semantics.
169
+ Start a new Codex task after changing the setting. Availability depends on the Codex client and account session.
221
170
 
222
- ## Requirements
171
+ ### Why is the menu bar app missing?
223
172
 
224
- - Node.js **20.11 or newer** and npm.
225
- - Git for repository workflows and reviews.
226
- - The latest stable Codex CLI or supported desktop host; capabilities are checked at runtime.
227
- - macOS for the native menu bar and Center. Linux and Windows CLI support is best-effort.
173
+ The native Center is macOS-only. Run `sks menubar install` from an interactive terminal, then run `sks doctor --json`. Linux and Windows CLI support is best-effort.
228
174
 
229
- ## Documentation
175
+ ### Does SKS guarantee better AI output or search visibility?
230
176
 
231
- - [Product contract](docs/PRODUCT-CONTRACT.md) — supported surfaces and ownership.
232
- - [Essential Trust](docs/essential-trust.md) — verification profiles and safety boundaries.
233
- - [Astra guidance](docs/astra-guidance.md) — how SKS applies the official model recommendations.
234
- - [Agent Bridge](docs/AGENT-BRIDGE.md) — integrate through the CLI or MCP interface.
235
- - [Codex-LB priority](docs/codex-lb-priority.md) — how Codex App WebSockets follow the Center priority setting.
236
- - [OpenRouter Only Mode](docs/openrouter-only-mode.md) — run everything on OpenRouter with a subagent model list Jev routes by.
237
- - [Release readiness](docs/release-readiness.md) — build, verify, and publish a release.
238
- - [Release evidence](docs/release-proof-truth.md) — what each verification result proves.
239
- - [Changelog](CHANGELOG.md) — changes by version.
177
+ No. SKS verifies process evidence and release claims. Model behavior and search outcomes remain separate measurements.
178
+
179
+ For a reproducible issue, use the [bug report form](https://github.com/mandarange/Sneakoscope-Codex/issues/new?template=bug_report.yml). For a question, start a discussion or open an issue with the smallest redacted reproduction.
180
+
181
+ ## Development
182
+
183
+ ```sh
184
+ npm ci --ignore-scripts
185
+ npm run build
186
+ npm run typecheck
187
+ npm test
188
+ ```
189
+
190
+ Read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request. Release work follows [release readiness](docs/release-readiness.md); do not publish a package from an unverified working tree.
240
191
 
241
- For development: `npm ci --ignore-scripts`, then `npm run build`.
242
- Use `npm run typecheck` and `npm test` to verify changes; follow the release guide
243
- before publication.
192
+ ## Support and security
244
193
 
245
- Questions or bugs? [Open an issue](https://github.com/mandarange/Sneakoscope-Codex/issues).
194
+ - Bug reports: [issue form](https://github.com/mandarange/Sneakoscope-Codex/issues/new?template=bug_report.yml)
195
+ - Feature ideas: [feature form](https://github.com/mandarange/Sneakoscope-Codex/issues/new?template=feature_request.yml)
196
+ - Security reports: see [SECURITY.md](SECURITY.md)
246
197
 
247
198
  ## License
248
199
 
@@ -4,6 +4,7 @@
4
4
  {
5
5
  "canonical_name": "sks",
6
6
  "trusted_sha256": [
7
+ "d5adbf63047d4882258d70bb46017e4aa7b6d5804154c68ef4204d0e0e5916d6",
7
8
  "8aa34586ba331f0447668c2ce863fe6c9ec4f881828ebed26ca5ecc754d66840",
8
9
  "d0288d27c8bc1c89decb258c6805ed4286cd0d65371ef0eec453be233b39a2a1",
9
10
  "905fc5472d36f0780b56f0e09404f42ea20293b1a4615d2050b7db3043231dbd",
@@ -318,12 +319,6 @@
318
319
  "a679fa4ba36e070de5753994f58595c4352302cc98d868ba70ff98305d15f451"
319
320
  ]
320
321
  },
321
- {
322
- "canonical_name": "sks-loop",
323
- "trusted_sha256": [
324
- "e56f9c4d0f7227961779daf6806943f1926bb588ce21a965a813e8ad91cfd5c8"
325
- ]
326
- },
327
322
  {
328
323
  "canonical_name": "sks-mad-sks",
329
324
  "trusted_sha256": [
@@ -422,6 +417,7 @@
422
417
  {
423
418
  "canonical_name": "sks-reflection",
424
419
  "trusted_sha256": [
420
+ "712f148432811ad359a9ea23266e904ecf9ae39fa43584c831676a7233aa9c68",
425
421
  "bcea113ad0988f579aa3fd18c0f6c32eda220127b2c05331a8e4573dc2d25621",
426
422
  "d5b6e80644a55a50b60961fe3aa5ae342fd035b39605a07d13dcc82fb0f0149c",
427
423
  "5013cefe58746a23e998bd83dedf2c4de9270010297be6fc0c0f0ae2aae73fb8",
@@ -495,6 +491,7 @@
495
491
  {
496
492
  "canonical_name": "sks-wiki",
497
493
  "trusted_sha256": [
494
+ "62829492fa621da5f8c94566c30c1947ecfbcd9ddd509a9e5e1408db15222a76",
498
495
  "56b94d1e84cf2dd024033919b08bc5b55f5e02f7b68dff9704aed09e04022b28",
499
496
  "a6b3cf12e88b413073525c146aa27287557536b5a48eade83b87a11d8f371c72",
500
497
  "460a7dd5498fbf68697da64d6a56122ca088607edea8f815eea54aca580895fe",
@@ -505,6 +502,7 @@
505
502
  {
506
503
  "canonical_name": "sks-work",
507
504
  "trusted_sha256": [
505
+ "55d8708b5b02e3ad5ec44407872fcbcd99a5b73b5c4ad6ab2cb4b58f185b5a8f",
508
506
  "44bafa26bb2b042efb149a37ff3b84045a52e8278024140e1081fd6e54be47e6",
509
507
  "9619bcbe29fe84853500dbcac169d81915388144cbe677ef4f5831220e3a02d3",
510
508
  "7b4893af053caba27eab1b1d73ff375856522e433fb85dfabde50ea844c75639"
@@ -259,7 +259,7 @@ dependencies = [
259
259
 
260
260
  [[package]]
261
261
  name = "sks-core"
262
- version = "10.5.0"
262
+ version = "10.5.2"
263
263
  dependencies = [
264
264
  "globset",
265
265
  "grep-matcher",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sks-core"
3
- version = "10.5.0"
3
+ version = "10.5.2"
4
4
  edition = "2021"
5
5
 
6
6
  [dependencies]
@@ -31,6 +31,10 @@ async function runSks(args) {
31
31
  const { hookDaemonInline } = await import('../core/daemon/sksd-hook-dispatch.js');
32
32
  await hookDaemonInline(args[1], args.slice(2));
33
33
  }
34
+ else if (args[0] === 'hook' && args[1] && !args[1].startsWith('-')) {
35
+ const { run } = await import('../commands/hook.js');
36
+ await run('hook', args.slice(1));
37
+ }
34
38
  else if (args.length === 3 && args[0] === 'naruto' && args[1] === 'help' && args[2] === '--json') {
35
39
  const { narutoHelpJsonFastInline } = await import('./fast-inline.js');
36
40
  await narutoHelpJsonFastInline();
@@ -0,0 +1,75 @@
1
+ function hasFunctionExport(mod, exportName) {
2
+ if (!mod || typeof mod !== 'object')
3
+ return false;
4
+ const v = mod[exportName];
5
+ return typeof v === 'function';
6
+ }
7
+ function functionExport(mod, exportName) {
8
+ if (!hasFunctionExport(mod, exportName))
9
+ throw new Error(`Missing export ${exportName}`);
10
+ return mod[exportName];
11
+ }
12
+ function pickRunner(mod) {
13
+ for (const k of ['run', 'main', 'default']) {
14
+ const v = mod[k];
15
+ if (typeof v === 'function')
16
+ return v;
17
+ }
18
+ return null;
19
+ }
20
+ function usageOf(mod) {
21
+ const candidate = mod?.usage;
22
+ return typeof candidate === 'function' ? { usage: candidate } : {};
23
+ }
24
+ function normalizeCommandModule(moduleValue) {
25
+ if (!moduleValue || typeof moduleValue !== 'object')
26
+ throw new Error('Invalid command module');
27
+ const rec = moduleValue;
28
+ const runner = pickRunner(rec);
29
+ if (!runner)
30
+ throw new Error('Command module must export run/main/default callable');
31
+ return {
32
+ run: async (command, args) => runner(command, args),
33
+ ...usageOf(rec),
34
+ };
35
+ }
36
+ export function directCommand(loader) {
37
+ return async () => normalizeCommandModule(await loader());
38
+ }
39
+ export function argsCommand(loader, exportName) {
40
+ return async () => {
41
+ const mod = await loader();
42
+ const fn = functionExport(mod, exportName);
43
+ return { run: (_command, args) => fn(args), ...usageOf(mod) };
44
+ };
45
+ }
46
+ export function noArgsCommand(loader, exportName) {
47
+ return async () => {
48
+ const mod = await loader();
49
+ const fn = functionExport(mod, exportName);
50
+ return { run: () => fn(), ...usageOf(mod) };
51
+ };
52
+ }
53
+ export function commandArgsCommand(loader, exportName) {
54
+ return async () => {
55
+ const mod = await loader();
56
+ const fn = functionExport(mod, exportName);
57
+ return { run: (command, args) => fn(command, args), ...usageOf(mod) };
58
+ };
59
+ }
60
+ export function subcommand(loader, exportName, fallbackSubcommand) {
61
+ return async () => {
62
+ const mod = await loader();
63
+ const fn = functionExport(mod, exportName);
64
+ return {
65
+ run: (_command, args) => {
66
+ const [subcommandName = fallbackSubcommand, ...rest] = args;
67
+ return fn(subcommandName ?? '', rest);
68
+ },
69
+ ...usageOf(mod),
70
+ };
71
+ };
72
+ }
73
+ export function command(packageRequiredFile, lazy) {
74
+ return { lazy, packageRequiredFiles: [packageRequiredFile] };
75
+ }