sneakoscope 10.5.1 → 10.5.3
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.
- package/README.md +112 -161
- package/config/skills-hash-ledger.v1.json +4 -6
- package/crates/sks-core/Cargo.lock +1 -1
- package/crates/sks-core/Cargo.toml +1 -1
- package/dist/bin/sks-dispatch.js +4 -0
- package/dist/cli/command-loaders.js +75 -0
- package/dist/cli/command-manifest-lite.js +311 -99
- package/dist/cli/command-registry.js +89 -353
- package/dist/cli/feature-commands.js +2 -2
- package/dist/cli/help-fast.js +2 -2
- package/dist/cli/install-helpers-menubar.js +2 -2
- package/dist/cli/router.js +11 -13
- package/dist/commands/codex-native.js +1 -1
- package/dist/commands/conflicts.js +1 -1
- package/dist/commands/proof.js +17 -2
- package/dist/config/skills-manifest.json +9 -5
- package/dist/core/agent-bridge/agent-mode.js +0 -8
- package/dist/core/agents/agent-central-ledger.js +0 -54
- package/dist/core/agents/agent-cleanup-executor.js +618 -0
- package/dist/core/agents/agent-recursion-guard.js +0 -3
- package/dist/core/agents/agent-worker-pipeline.js +0 -14
- package/dist/core/agents/runtime-proof-summary.js +0 -4
- package/dist/core/agents/scout-policy.js +0 -42
- package/dist/core/architecture-map-review.js +3 -2
- package/dist/core/clarification-gate-state.js +9 -0
- package/dist/core/codex/context-management.js +14 -1
- package/dist/core/codex-app/codex-app-restart-policy.js +4 -0
- package/dist/core/codex-app/codex-app-restart.js +0 -83
- package/dist/core/codex-app/codex-app-ui-clobber-guard.js +0 -42
- package/dist/core/codex-app/codex-context-window.js +1 -0
- package/dist/core/codex-app/codex-init-deep.js +1 -61
- package/dist/core/codex-control/codex-reliability-shield.js +0 -7
- package/dist/core/codex-hooks/codex-hook-config-writer.js +0 -21
- package/dist/core/codex-lb/desktop-bridge/compaction-adapter.js +229 -0
- package/dist/core/codex-lb/desktop-bridge/http-forward.js +178 -2
- package/dist/core/codex-lb/desktop-bridge/responses-websocket.js +56 -3
- package/dist/core/codex-lb/desktop-bridge/security.js +6 -1
- package/dist/core/codex-lb/desktop-controller-v3/catalog.js +15 -1
- package/dist/core/codex-lb/desktop-controller-v3/lifecycle-commands.js +2 -1
- package/dist/core/codex-lb/desktop-controller-v3/openrouter-only-commands.js +1 -5
- package/dist/core/codex-lb/desktop-service.js +25 -5
- package/dist/core/codex-runtime/resolve-codex-runtime.js +24 -2
- package/dist/core/commands/align-command.js +38 -9
- package/dist/core/commands/basic-cli.js +1 -2
- package/dist/core/commands/command-utils.js +1 -1
- package/dist/core/commands/gc-command.js +8 -12
- package/dist/core/commands/hproof-command.js +1 -1
- package/dist/core/commands/image-ux-review-command.js +1 -1
- package/dist/core/commands/naruto-command.js +44 -0
- package/dist/core/commands/naruto-config-command.js +23 -0
- package/dist/core/commands/pipeline-command.js +66 -5
- package/dist/core/commands/ppt-command.js +1 -1
- package/dist/core/commands/proof-field-command.js +2 -2
- package/dist/core/commands/status-command.js +2 -2
- package/dist/core/commands/stop-gate-command.js +1 -1
- package/dist/core/commands/triwiki-graph-command.js +3 -3
- package/dist/core/commands/trust-command.js +1 -1
- package/dist/core/commands/wiki-command.js +28 -466
- package/dist/core/config/supabase-secret-preservation.js +0 -4
- package/dist/core/config-adopt/config-adopt.js +0 -6
- package/dist/core/daemon/sksd-hook-daemon-entrypoint.js +5 -0
- package/dist/core/daemon/sksd-hook-daemon.js +11 -3
- package/dist/core/daemon/sksd-hook-dispatch.js +7 -4
- package/dist/core/daemon/sksd-hook-env.js +29 -0
- package/dist/core/decision-contract.js +3 -2
- package/dist/core/decisions/config.js +3 -2
- package/dist/core/decisions/openrouter.js +30 -24
- package/dist/core/decisions/recovery.js +0 -26
- package/dist/core/decisions/types.js +0 -2
- package/dist/core/doctor/current-project-guidance.js +3 -2
- package/dist/core/evaluation.js +1 -1
- package/dist/core/feature-fixtures.js +4 -32
- package/dist/core/feature-registry.js +4 -16
- package/dist/core/git-hygiene/git-policy.js +1 -1
- package/dist/core/git-simple.js +27 -1
- package/dist/core/hooks-runtime/exclusive-gui-surface-gate.js +1 -1
- package/dist/core/hooks-runtime/hook-context.js +2 -11
- package/dist/core/hooks-runtime/hook-io.js +12 -4
- package/dist/core/hooks-runtime/jev-spawn-routing.js +3 -0
- package/dist/core/hooks-runtime/naruto-decision-gate.js +3 -3
- package/dist/core/hooks-runtime/official-subagent-lifecycle.js +2 -8
- package/dist/core/hooks-runtime/subagent-artifact-dir.js +12 -0
- package/dist/core/hooks-runtime/subagent-spawn-policy.js +2 -0
- package/dist/core/hooks-runtime/tool-output-quarantine.js +4 -31
- package/dist/core/hooks-runtime.js +47 -84
- package/dist/core/image/reference-evidence/reference-registry.js +0 -66
- package/dist/core/init/skills.js +4 -4
- package/dist/core/init.js +13 -7
- package/dist/core/install/installed-package-smoke.js +7 -1
- package/dist/core/language-preference.js +2 -2
- package/dist/core/lean-engineering-policy.js +0 -90
- package/dist/core/mad-sks/immutable-harness-guard.js +0 -3
- package/dist/core/managed-assets/managed-assets-manifest.js +0 -14
- package/dist/core/managed-paths.js +1 -24
- package/dist/core/mcp/mcp-tool-policy.js +0 -74
- package/dist/core/naruto/naruto-task-hints.js +1 -26
- package/dist/core/naruto/naruto-work-item.js +0 -17
- package/dist/core/perf-bench.js +1 -1
- package/dist/core/performance-budgets.json +10 -15
- package/dist/core/pipeline-internals/pipeline-stage-builder.js +13 -2
- package/dist/core/pipeline-internals/runtime-core.js +116 -79
- package/dist/core/pipeline-internals/runtime-gates.js +3 -40
- package/dist/core/pipeline.js +1 -1
- package/dist/core/proof/route-adapter.js +1 -1
- package/dist/core/proof-field.js +1 -1
- package/dist/core/provider/provider-self-heal.js +0 -18
- package/dist/core/questions.js +1 -9
- package/dist/core/route-question-schema.js +9 -0
- package/dist/core/routes/constants.js +1 -1
- package/dist/core/routes/diagnostic-allowlist.js +1 -2
- package/dist/core/routes/dollar-manifest-lite.js +2 -2
- package/dist/core/routes.js +12 -102
- package/dist/core/runtime/task-profile.js +15 -1
- package/dist/core/safety/command-contract/contracts.js +60 -126
- package/dist/core/safety/command-contract/types.js +1 -1
- package/dist/core/safety/intent-contract/intent-contract.js +0 -28
- package/dist/core/safety/ssot-authority-inventory.js +1 -1
- package/dist/core/search/context-graph-seeds.js +0 -183
- package/dist/core/security/high-risk-contracts.js +1 -20
- package/dist/core/skill-forge.js +2 -30
- package/dist/core/subagents/naruto-command-args.js +48 -7
- package/dist/core/subagents/naruto-command-input-contract.js +40 -4
- package/dist/core/subagents/naruto-execution-mode.js +62 -0
- package/dist/core/subagents/naruto-help-contract.js +9 -0
- package/dist/core/subagents/naruto-host-credentials.js +0 -18
- package/dist/core/subagents/official-subagent-preparation.js +4 -0
- package/dist/core/subagents/official-subagent-prompt.js +9 -9
- package/dist/core/subagents/official-subagent-runner.js +2 -5
- package/dist/core/triwiki/agents-md-projector.js +0 -3
- package/dist/core/triwiki/context-graph/architecture/policy.js +14 -0
- package/dist/core/triwiki/context-graph/compiler/cache-key.js +6 -0
- package/dist/core/triwiki/context-graph/compiler/fragment-manifest.js +0 -6
- package/dist/core/triwiki/context-graph/paths.js +0 -3
- package/dist/core/triwiki/context-graph/query/index.js +0 -22
- package/dist/core/triwiki/context-graph/store/architecture-map-store.js +3 -2
- package/dist/core/triwiki/context-graph/store/fragment-cache.js +0 -24
- package/dist/core/triwiki/context-graph/store/operation-journal-schema.js +0 -15
- package/dist/core/triwiki/triwiki-module-card.js +3 -3
- package/dist/core/triwiki/triwiki-proof-bank-index-store.js +0 -3
- package/dist/core/triwiki/triwiki-proof-bank-index.js +1 -41
- package/dist/core/triwiki-runtime.js +4 -16
- package/dist/core/triwiki-wrongness/wrongness-ledger.js +1 -1
- package/dist/core/update/update-migration-state/fast-mode-config.js +0 -13
- package/dist/core/update/update-migration-state.js +10 -0
- package/dist/core/verification-profile.js +4 -4
- package/dist/core/version.js +1 -1
- package/dist/native/sks-menubar/Sources/ProvidersModelExposure.swift +15 -4
- package/dist/native/sks-menubar/Sources/SettingsViewController.swift +105 -1
- package/dist/scripts/sks-cli-gate-lib.js +3 -1
- package/package.json +26 -24
- package/runtime-required-scripts.json +64 -19
- package/config/competitor-scorecard-baseline.json +0 -76
- package/config/installed-public-surface-closure.v1.json +0 -13
- package/dist/commands/all-features.js +0 -5
- package/dist/commands/bench.js +0 -4
- package/dist/commands/code-structure.js +0 -5
- package/dist/commands/commands.js +0 -4
- package/dist/commands/dfix.js +0 -4
- package/dist/commands/features.js +0 -5
- package/dist/commands/harness.js +0 -5
- package/dist/commands/hproof.js +0 -5
- package/dist/commands/image-ux-review.js +0 -4
- package/dist/commands/init.js +0 -2
- package/dist/commands/paths.js +0 -4
- package/dist/commands/perf.js +0 -128
- package/dist/commands/ppt.js +0 -4
- package/dist/commands/profile.js +0 -5
- package/dist/commands/proof-field.js +0 -5
- package/dist/commands/qa-loop.js +0 -5
- package/dist/commands/research.js +0 -5
- package/dist/commands/rollback.js +0 -4
- package/dist/commands/rust.js +0 -4
- package/dist/commands/status.js +0 -4
- package/dist/commands/update-check.js +0 -2
- package/dist/commands/versioning.js +0 -26
- package/dist/core/bench.js +0 -389
- package/dist/core/commands/bench-command.js +0 -67
- package/dist/core/commands/check-command.js +0 -156
- package/dist/core/commands/daemon-command.js +0 -13
- package/dist/core/commands/gates-command.js +0 -62
- package/dist/core/commands/harness-command.js +0 -17
- package/dist/core/commands/loop-command.js +0 -22
- package/dist/core/commands/perf-command.js +0 -34
- package/dist/core/commands/profile-command.js +0 -26
- package/dist/core/commands/release-command.js +0 -176
- package/dist/core/commands/rollback-command.js +0 -45
- package/dist/core/commands/run-command.js +0 -655
- package/dist/core/commands/rust-command.js +0 -80
- package/dist/core/commands/task-command.js +0 -14
- package/dist/core/git-hygiene/shared-memory-manifest.js +0 -1
- package/dist/core/image-ux-review/reference-policy/reference-policy.js +0 -9
- package/dist/core/loops/loop-artifacts.js +0 -29
- package/dist/core/loops/loop-continuation-enforcer.js +0 -95
- package/dist/core/loops/loop-observability.js +0 -18
- package/dist/core/loops/loop-proof-validation.js +0 -38
- package/dist/core/loops/loop-schema.js +0 -1
- package/dist/core/ops/ops-maturity-scorecard.js +0 -75
- package/dist/core/release-parallel-full-coverage.js +0 -44
- package/dist/core/triwiki/context-graph/architecture/index.js +0 -15
- package/dist/core/triwiki/context-graph/compiler/fragment-manifest-store.js +0 -35
- package/dist/core/triwiki/context-graph/compiler/fragment-merge.js +0 -195
- package/dist/core/triwiki/context-graph/compiler/fragment-plan.js +0 -137
- package/dist/core/triwiki/context-graph/compiler/fragment-store.js +0 -82
- package/dist/core/triwiki/context-graph/compiler/incremental-build.js +0 -161
- package/dist/core/triwiki/context-graph/compiler/incremental-extract.js +0 -94
- package/dist/core/triwiki/context-graph/compiler/k-way-merge.js +0 -92
- package/dist/core/triwiki/context-graph/compiler/source-fragment.js +0 -74
- package/dist/core/triwiki/context-graph/projections/index.js +0 -12
- package/dist/core/triwiki/context-graph/store/graph-status.js +0 -93
- package/dist/core/triwiki-wrongness/validators.js +0 -3
- package/dist/core/trust-kernel/evidence-router.js +0 -1
- package/dist/core/wiki-image/computer-use-evidence.js +0 -1
- package/dist/scripts/agent-guidance-dedup-check.js +0 -23
- package/dist/scripts/agent-message-bus-reader-check.js +0 -17
- package/dist/scripts/all-feature-deep-completion-check.js +0 -42
- package/dist/scripts/appshots-thread-attachment-discovery-check.js +0 -85
- package/dist/scripts/architecture-guard-check.js +0 -80
- package/dist/scripts/architecture-map-check.js +0 -299
- package/dist/scripts/certificate-sla-check.js +0 -7
- package/dist/scripts/check-runtime-schemas.js +0 -130
- package/dist/scripts/cli-output-consistency-check.js +0 -54
- package/dist/scripts/codex-agent-role-rich-content-check.js +0 -3
- package/dist/scripts/codex-agent-role-sync-check.js +0 -3
- package/dist/scripts/codex-app-execution-profile-check.js +0 -3
- package/dist/scripts/codex-app-fast-ui-preservation-check.js +0 -31
- package/dist/scripts/codex-app-handoff-check.js +0 -22
- package/dist/scripts/codex-app-handoff-launch-check.js +0 -22
- package/dist/scripts/codex-control-all-pipelines-check.js +0 -29
- package/dist/scripts/codex-control-event-stream-ledger-check.js +0 -8
- package/dist/scripts/codex-control-tool-output-continuity-audit-check.js +0 -25
- package/dist/scripts/codex-current-app-server-v2-check.js +0 -55
- package/dist/scripts/codex-current-binary-identity-check.js +0 -22
- package/dist/scripts/codex-current-capability-check.js +0 -17
- package/dist/scripts/codex-current-dependency-check.js +0 -21
- package/dist/scripts/codex-current-policy-check.js +0 -35
- package/dist/scripts/codex-current-thread-store-check.js +0 -53
- package/dist/scripts/codex-native-agent-role-content-check.js +0 -53
- package/dist/scripts/codex-native-feature-broker-blackbox.js +0 -3
- package/dist/scripts/codex-native-feature-broker-check.js +0 -3
- package/dist/scripts/codex-native-gate-lib.js +0 -400
- package/dist/scripts/codex-native-harness-compat-check.js +0 -3
- package/dist/scripts/codex-native-hook-lifecycle-proof-check.js +0 -3
- package/dist/scripts/codex-native-runtime-e2e-fixture.js +0 -61
- package/dist/scripts/codex-plugin-app-template-policy-check.js +0 -8
- package/dist/scripts/codex-sdk-all-pipelines-check.js +0 -26
- package/dist/scripts/codex-sdk-backend-router-check.js +0 -73
- package/dist/scripts/codex-sdk-capability-check.js +0 -9
- package/dist/scripts/codex-sdk-event-stream-ledger-check.js +0 -7
- package/dist/scripts/codex-sdk-real-smoke-check.js +0 -57
- package/dist/scripts/concurrent-session-collision-check.js +0 -75
- package/dist/scripts/context-graph-check.js +0 -191
- package/dist/scripts/context-graph-v2-check.js +0 -327
- package/dist/scripts/context7-evidence-dedupe-check.js +0 -52
- package/dist/scripts/core-skill-card-schema-check.js +0 -49
- package/dist/scripts/core-skill-deployment-snapshot-check.js +0 -43
- package/dist/scripts/core-skill-route-runtime-integration-check.js +0 -37
- package/dist/scripts/current-command-surface-check.js +0 -80
- package/dist/scripts/current-surface-update-e2e-check.js +0 -511
- package/dist/scripts/current-upgrade-matrix-check.js +0 -229
- package/dist/scripts/dfix-patch-handoff-check.js +0 -11
- package/dist/scripts/dfix-verification-recommendation-check.js +0 -13
- package/dist/scripts/docs-truthfulness-check.js +0 -80
- package/dist/scripts/doctor-codex-app-harness-check.js +0 -3
- package/dist/scripts/doctor-fix-proves-codex-read-check.js +0 -90
- package/dist/scripts/doctor-fixes-codex-app-fast-ui-check.js +0 -83
- package/dist/scripts/fast-codex-service-tier-proof-check.js +0 -39
- package/dist/scripts/fixtures/fake-codex-config-loader.js +0 -45
- package/dist/scripts/gate-policy-audit-check.js +0 -281
- package/dist/scripts/geo-claim-evidence-check.js +0 -16
- package/dist/scripts/geo-cli-blackbox-check.js +0 -16
- package/dist/scripts/geo-crawler-policy-check.js +0 -14
- package/dist/scripts/git-worktree-checkpoint-check.js +0 -19
- package/dist/scripts/git-worktree-cross-rebase-check.js +0 -40
- package/dist/scripts/git-worktree-diff-envelope-check.js +0 -15
- package/dist/scripts/git-worktree-dirty-lock-check.js +0 -15
- package/dist/scripts/git-worktree-dirty-main-detection-check.js +0 -12
- package/dist/scripts/git-worktree-integration-primary-check.js +0 -22
- package/dist/scripts/git-worktree-manifest-append-check.js +0 -16
- package/dist/scripts/git-worktree-untracked-diff-check.js +0 -16
- package/dist/scripts/goal-artifact-compat-check.js +0 -7
- package/dist/scripts/gpt-final-all-pipelines-check.js +0 -18
- package/dist/scripts/harness-benchmark-check.js +0 -75
- package/dist/scripts/helper-dedup-check.js +0 -60
- package/dist/scripts/hook-latency-budget-check.js +0 -43
- package/dist/scripts/image-artifact-path-contract-check.js +0 -12
- package/dist/scripts/imagegen-real-smoke-check.js +0 -149
- package/dist/scripts/init-deep-backup-retention-check.js +0 -36
- package/dist/scripts/install-surface-ssot-check.js +0 -96
- package/dist/scripts/installed-package-smoke-check.js +0 -25
- package/dist/scripts/latest-version-guidance-check.js +0 -74
- package/dist/scripts/lib/codex-sdk-gate-lib.js +0 -74
- package/dist/scripts/lib/git-worktree-fixture.js +0 -27
- package/dist/scripts/lib/valid-png-fixture.js +0 -16
- package/dist/scripts/mad-preflight-blocks-unreadable-config-check.js +0 -55
- package/dist/scripts/mad-sks-app-ui-no-mutation-check.js +0 -81
- package/dist/scripts/mad-sks-launch-sql-plane-boundary-check.js +0 -92
- package/dist/scripts/mad-sks-sql-plane-capability-check.js +0 -25
- package/dist/scripts/mad-sks-sql-plane-lifecycle-hook-decision-check.js +0 -16
- package/dist/scripts/mad-sks-sql-plane-result-lifecycle-check.js +0 -29
- package/dist/scripts/mcp-plugin-inventory-check.js +0 -9
- package/dist/scripts/model-call-concurrency-check.js +0 -13
- package/dist/scripts/mutation-callsite-analysis.js +0 -387
- package/dist/scripts/mutation-callsite-coverage-check.js +0 -242
- package/dist/scripts/naruto-ssot-gate-aliases-check.js +0 -9
- package/dist/scripts/naruto-ssot-pipeline-default-check.js +0 -10
- package/dist/scripts/naruto-ssot-route-normalization-check.js +0 -8
- package/dist/scripts/naruto-ssot-routing-check.js +0 -14
- package/dist/scripts/naruto-worktree-coding-blackbox.js +0 -27
- package/dist/scripts/native-capability-repair-matrix-check.js +0 -11
- package/dist/scripts/native-image-generation-repair-check.js +0 -8
- package/dist/scripts/official-subagent-workflow-check.js +0 -150
- package/dist/scripts/package-published-contract-check.js +0 -71
- package/dist/scripts/packlist-performance-check.js +0 -164
- package/dist/scripts/pipeline-codex-native-doctor-mad-routing-check.js +0 -3
- package/dist/scripts/pipeline-codex-native-doctor-mad-routing-real-blackbox.js +0 -72
- package/dist/scripts/pipeline-codex-native-image-routing-check.js +0 -3
- package/dist/scripts/pipeline-codex-native-image-routing-real-blackbox.js +0 -48
- package/dist/scripts/pipeline-codex-native-qa-routing-check.js +0 -3
- package/dist/scripts/pipeline-codex-native-qa-routing-real-blackbox.js +0 -49
- package/dist/scripts/pipeline-codex-native-research-routing-check.js +0 -3
- package/dist/scripts/pipeline-codex-native-research-routing-real-blackbox.js +0 -43
- package/dist/scripts/ppt-full-e2e-blackbox-check.js +0 -146
- package/dist/scripts/ppt-real-export-adapter-check.js +0 -11
- package/dist/scripts/ppt-real-imagegen-smoke-check.js +0 -40
- package/dist/scripts/ppt-real-imagegen-wiring-check.js +0 -18
- package/dist/scripts/ppt-reexport-rereview-check.js +0 -17
- package/dist/scripts/probe-memoization-check.js +0 -9
- package/dist/scripts/product-design-plugin-routing-check.js +0 -99
- package/dist/scripts/prompt-placeholder-guard-check.js +0 -31
- package/dist/scripts/proof-root-cause-policy-check.js +0 -71
- package/dist/scripts/provider-badge-context-check.js +0 -68
- package/dist/scripts/python-codex-sdk-all-pipelines-check.js +0 -51
- package/dist/scripts/qa-loop-app-handoff-capability-check.js +0 -7
- package/dist/scripts/qa-loop-app-handoff-check.js +0 -7
- package/dist/scripts/qa-loop-app-handoff-cli-check.js +0 -6
- package/dist/scripts/qa-loop-app-handoff-confirmation-check.js +0 -22
- package/dist/scripts/qa-loop-app-handoff-gate-lifecycle-check.js +0 -42
- package/dist/scripts/qa-loop-app-handoff-launch-check.js +0 -5
- package/dist/scripts/qa-loop-app-handoff-status-lifecycle-check.js +0 -5
- package/dist/scripts/qa-loop-budget-policy-check.js +0 -6
- package/dist/scripts/qa-loop-effort-escalation-check.js +0 -11
- package/dist/scripts/qa-loop-execution-profile-routing-check.js +0 -3
- package/dist/scripts/qa-loop-image-path-exposure-check.js +0 -7
- package/dist/scripts/qa-loop-image-path-prompt-injection-check.js +0 -6
- package/dist/scripts/real-execution-check-lib.js +0 -20
- package/dist/scripts/release-affected-selector-check.js +0 -118
- package/dist/scripts/release-aggressive-resource-governor-check.js +0 -24
- package/dist/scripts/release-cache-glob-hashing-check.js +0 -42
- package/dist/scripts/release-cache-input-classifier-check.js +0 -11
- package/dist/scripts/release-cache-neutralization-report-check.js +0 -11
- package/dist/scripts/release-cache-version-neutral-fixture-check.js +0 -64
- package/dist/scripts/release-dynamic-presets-check.js +0 -32
- package/dist/scripts/release-full-parallelism-blackbox.js +0 -41
- package/dist/scripts/release-gate-batch-runner-check.js +0 -73
- package/dist/scripts/release-gate-dag-runner-check.js +0 -124
- package/dist/scripts/release-gate-dag-runner.js +0 -120
- package/dist/scripts/release-latency-slo-check.js +0 -26
- package/dist/scripts/release-metadata-check.js +0 -282
- package/dist/scripts/release-parallel-speed-budget-check.js +0 -101
- package/dist/scripts/release-proof-truth-check.js +0 -12
- package/dist/scripts/release-provenance-check.js +0 -146
- package/dist/scripts/release-real-check.js +0 -542
- package/dist/scripts/release-runtime-truth-matrix-check.js +0 -20
- package/dist/scripts/release-speed-summary.js +0 -66
- package/dist/scripts/research-blueprint-densifier-check.js +0 -19
- package/dist/scripts/research-claim-builder-check.js +0 -17
- package/dist/scripts/research-complete-package-fixture-check.js +0 -27
- package/dist/scripts/research-execution-profile-routing-check.js +0 -3
- package/dist/scripts/research-final-reviewer-blackbox.js +0 -68
- package/dist/scripts/responses-retry-policy-centralized-check.js +0 -17
- package/dist/scripts/runtime-domain-gate-lib.js +0 -97
- package/dist/scripts/runtime-proof-summary-check.js +0 -52
- package/dist/scripts/runtime-script-pack-closure-check.js +0 -95
- package/dist/scripts/scheduler-batch-dispatch-check.js +0 -15
- package/dist/scripts/scheduler-parallel-proof-consistency-check.js +0 -63
- package/dist/scripts/scheduler-utilization-integral-check.js +0 -103
- package/dist/scripts/search-visibility-gate-lib.js +0 -120
- package/dist/scripts/secret-preservation-check.js +0 -10
- package/dist/scripts/seo-audit-fixture-check.js +0 -14
- package/dist/scripts/seo-cli-blackbox-check.js +0 -16
- package/dist/scripts/seo-geo-geo-disambiguation-check.js +0 -10
- package/dist/scripts/seo-geo-route-identity-check.js +0 -36
- package/dist/scripts/seo-geo-skill-rich-content-check.js +0 -36
- package/dist/scripts/seo-no-mutation-by-default-check.js +0 -15
- package/dist/scripts/shared-memory-fixture-check.js +0 -25
- package/dist/scripts/side-effect-runtime-report-check.js +0 -17
- package/dist/scripts/skill-fixture-check-lib.js +0 -29
- package/dist/scripts/skill-name-canonicalizer-check.js +0 -8
- package/dist/scripts/skill-surface-modernization-check.js +0 -541
- package/dist/scripts/skills-manifest-continuity-check.js +0 -64
- package/dist/scripts/sks-uninstall-regression-check.js +0 -53
- package/dist/scripts/sksd-daemon-check.js +0 -17
- package/dist/scripts/super-search-provider-interface-check.js +0 -38
- package/dist/scripts/triwiki-cache-key-check.js +0 -7
- package/dist/scripts/triwiki-proof-bank-blackbox.js +0 -28
- package/dist/scripts/triwiki-proof-bank-check.js +0 -5
- package/dist/scripts/triwiki-proof-card-check.js +0 -21
- package/dist/scripts/trust-fixture-check.js +0 -66
- package/dist/scripts/type-surface-codex-app-check.js +0 -3
- package/dist/scripts/typed-routing-gate-lib.js +0 -233
- package/dist/scripts/ultra-router-auto-router-check.js +0 -31
- package/dist/scripts/uninstall-inventory-check.js +0 -2
- package/dist/scripts/ux-review-extract-wires-real-extractor-check.js +0 -13
- package/dist/scripts/ux-review-imagegen-blackbox-check.js +0 -94
- package/dist/scripts/ux-review-patch-diff-recheck-check.js +0 -18
- package/dist/scripts/ux-review-real-imagegen-smoke-check.js +0 -29
- package/dist/scripts/ux-review-run-wires-imagegen-check.js +0 -28
- 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
|
-
**
|
|
7
|
+
**Make Codex work explainable, bounded, and test-backed.**
|
|
8
8
|
|
|
9
|
+
[](https://github.com/mandarange/Sneakoscope-Codex/actions/workflows/ci.yml)
|
|
9
10
|
[](https://www.npmjs.com/package/sneakoscope)
|
|
10
|
-
[](LICENSE)
|
|
11
|
+
[](#quick-start)
|
|
12
|
+
[](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.
|
|
20
|
+
Current package: **SKS 10.5.3**. Install the latest stable release from npm.
|
|
20
21
|
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
37
|
+
sks bootstrap
|
|
38
|
+
sks doctor --json
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
Then open the project in Codex. Start with the smallest useful loop:
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
52
|
-
adds stronger completion requirements. See [Essential Trust](docs/essential-trust.md).
|
|
49
|
+
Use the terminal to inspect the same state:
|
|
53
50
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
```sh
|
|
52
|
+
sks status --json
|
|
53
|
+
sks review --staged
|
|
54
|
+
sks update-check
|
|
55
|
+
```
|
|
59
56
|
|
|
60
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
71
|
+
Inside a Codex conversation:
|
|
72
|
+
|
|
73
|
+
| Command | Use it for |
|
|
72
74
|
| --- | --- |
|
|
73
|
-
| `$sks-plan "task"` |
|
|
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
|
-
|
|
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
|
|
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
|
-
##
|
|
93
|
+
## How the trust loop works
|
|
96
94
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
|
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
|
-
|
|
126
|
+
### Image generation
|
|
153
127
|
|
|
154
|
-
SKS
|
|
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
|
|
169
|
-
sidecars, and the Jev choices.
|
|
136
|
+
See [Image generation](docs/image-generation.md) for provider boundaries and evidence sidecars.
|
|
170
137
|
|
|
171
|
-
##
|
|
138
|
+
## Documentation
|
|
172
139
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
207
|
-
trust boundaries, and completion evidence.
|
|
161
|
+
### How do I turn off experimental context management?
|
|
208
162
|
|
|
209
|
-
|
|
163
|
+
In SKS Center, open **Settings → Context management**, or run:
|
|
210
164
|
|
|
211
165
|
```sh
|
|
212
|
-
sks
|
|
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
|
-
|
|
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
|
-
|
|
171
|
+
### Why is the menu bar app missing?
|
|
223
172
|
|
|
224
|
-
|
|
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
|
-
|
|
175
|
+
### Does SKS guarantee better AI output or search visibility?
|
|
230
176
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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"
|
package/dist/bin/sks-dispatch.js
CHANGED
|
@@ -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
|
+
}
|