sneakoscope 7.0.2 → 7.0.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 +7 -5
- package/crates/sks-core/Cargo.lock +1 -1
- package/crates/sks-core/Cargo.toml +1 -1
- package/dist/bin/sks-dispatch.js +0 -3
- package/dist/cli/command-registry.js +0 -2
- package/dist/cli/install-helpers-codex-lb-chain.js +24 -2
- package/dist/cli/install-helpers-codex-lb-config.js +0 -7
- package/dist/cli/install-helpers-codex-lb-selftest-chain.js +0 -3
- package/dist/cli/install-helpers-codex-lb-selftest.js +0 -17
- package/dist/cli/install-helpers.js +81 -96
- package/dist/cli/router.js +0 -22
- package/dist/commands/codex-lb.js +176 -22
- package/dist/commands/codex.js +3 -8
- package/dist/commands/doctor.js +4 -14
- package/dist/commands/perf.js +5 -1
- package/dist/commands/zellij-slot-column-anchor.js +0 -2
- package/dist/commands/zellij-slot-pane.js +0 -7
- package/dist/commands/zellij.js +0 -2
- package/dist/config/skills-manifest.json +52 -52
- package/dist/core/agent-bridge/agent-manifest.js +192 -1
- package/dist/core/agent-bridge/agent-mode.js +0 -5
- package/dist/core/agent-bridge/host-capability-policy.js +189 -0
- package/dist/core/agent-bridge/host-capability-runtime.js +1395 -0
- package/dist/core/agent-bridge/mcp-server.js +1 -11
- package/dist/core/agents/agent-effort-policy.js +0 -3
- package/dist/core/agents/agent-orchestrator.js +0 -4
- package/dist/core/agents/agent-proof-evidence.js +0 -2
- package/dist/core/agents/agent-runner-ollama.js +0 -3
- package/dist/core/agents/agent-scheduler.js +0 -5
- package/dist/core/agents/native-cli-worker-runtime.js +5 -17
- package/dist/core/agents/work-partition/repo-inventory.js +0 -2
- package/dist/core/auto-review.js +0 -13
- package/dist/core/bench.js +0 -14
- package/dist/core/code-structure.js +0 -3
- package/dist/core/codex/agent-config-file-repair.js +0 -8
- package/dist/core/codex/codex-cli-update.js +122 -20
- package/dist/core/codex/codex-config-eperm-repair.js +0 -4
- package/dist/core/codex/codex-config-guard.js +0 -3
- package/dist/core/codex/codex-config-readability.js +0 -13
- package/dist/core/codex/codex-project-config-policy.js +0 -33
- package/dist/core/codex/official-goal-mode.js +0 -2
- package/dist/core/codex-app/codex-app-fast-ui-repair.js +5 -7
- package/dist/core/codex-app/codex-app-ui-state-snapshot.js +44 -7
- package/dist/core/codex-app/sks-menubar.js +0 -1
- package/dist/core/codex-app.js +0 -9
- package/dist/core/codex-compat/codex-hook-output-builders.js +9 -1
- package/dist/core/codex-compat/codex-hook-output-normalizer.js +1 -1
- package/dist/core/codex-compat/codex-hook-semantic-validator.js +3 -2
- package/dist/core/codex-compat/codex-hook-warning-detector.js +10 -2
- package/dist/core/codex-control/codex-lb-launch-recovery.js +0 -3
- package/dist/core/codex-control/codex-reliability-shield.js +0 -8
- package/dist/core/codex-control/codex-sdk-adapter.js +0 -3
- package/dist/core/codex-control/codex-sdk-config-policy.js +0 -2
- package/dist/core/codex-control/codex-sdk-env-policy.js +61 -16
- package/dist/core/codex-control/codex-task-runner.js +0 -7
- package/dist/core/codex-control/codex-thread-registry.js +0 -4
- package/dist/core/codex-lb/codex-lb-env.js +118 -20
- package/dist/core/codex-lb/codex-lb-tool-catalog.js +0 -4
- package/dist/core/codex-lb/codex-lb-tool-output-recovery.js +1 -1
- package/dist/core/codex-model-guard.js +0 -14
- package/dist/core/codex-native/codex-native-feature-broker.js +67 -22
- package/dist/core/codex-native/codex-native-interop-policy.js +81 -9
- package/dist/core/codex-native/confined-report-writer.js +21 -0
- package/dist/core/codex-native/core-skill-integrity.js +169 -20
- package/dist/core/codex-native/project-skill-dedupe.js +55 -13
- package/dist/core/codex-native/skill-registry-ledger.js +137 -16
- package/dist/core/codex-native/sks-skill-paths.js +185 -0
- package/dist/core/codex-runtime/codex-desktop-config-policy.js +0 -2
- package/dist/core/commands/agent-bridge-command.js +28 -8
- package/dist/core/commands/basic-cli.js +67 -26
- package/dist/core/commands/bench-command.js +5 -1
- package/dist/core/commands/command-utils.js +0 -5
- package/dist/core/commands/image-ux-review-command.js +0 -9
- package/dist/core/commands/mad-sks-command.js +0 -38
- package/dist/core/commands/naruto-command.js +46 -12
- package/dist/core/commands/ppt-command.js +0 -9
- package/dist/core/commands/run-command.js +8 -2
- package/dist/core/commands/seo-command.js +0 -6
- package/dist/core/commands/wiki-command.js +0 -14
- package/dist/core/computer-use-live-evidence.js +0 -5
- package/dist/core/config/secret-preservation.js +0 -11
- package/dist/core/daemon/sksd-hook-daemon-entrypoint.js +0 -2
- package/dist/core/daemon/sksd-hook-daemon.js +1 -29
- package/dist/core/daemon/sksd-hook-dispatch.js +0 -17
- package/dist/core/db-safety.js +0 -7
- package/dist/core/doctor/browser-use-repair.js +0 -2
- package/dist/core/doctor/doctor-codex-startup-repair.js +0 -3
- package/dist/core/doctor/doctor-readiness-matrix.js +12 -0
- package/dist/core/doctor/doctor-skill-reconcile.js +32 -0
- package/dist/core/doctor/imagegen-repair.js +0 -2
- package/dist/core/doctor/mcp-transport-collision-repair.js +0 -3
- package/dist/core/doctor/retired-managed-residue-private.js +0 -1
- package/dist/core/doctor/supabase-mcp-repair.js +0 -11
- package/dist/core/feature-fixture-executor.js +0 -48
- package/dist/core/feature-fixtures.js +0 -5
- package/dist/core/fsx.js +11 -12
- package/dist/core/hooks-runtime/code-pack-freshness-preflight.js +0 -5
- package/dist/core/hooks-runtime/hook-context.js +202 -0
- package/dist/core/hooks-runtime/hook-io.js +1 -12
- package/dist/core/hooks-runtime/light-turn.js +0 -2
- package/dist/core/hooks-runtime/naruto-decision-gate.js +4 -1
- package/dist/core/hooks-runtime/naruto-terminal-finalization.js +91 -0
- package/dist/core/hooks-runtime/official-subagent-lifecycle.js +370 -0
- package/dist/core/hooks-runtime/standalone-parent-host-capability.js +98 -0
- package/dist/core/hooks-runtime/subagent-context.js +59 -0
- package/dist/core/hooks-runtime/subagent-skill-availability-contract.js +29 -0
- package/dist/core/hooks-runtime/subagent-skill-availability-evidence.js +195 -0
- package/dist/core/hooks-runtime/subagent-skill-availability-guards.js +316 -0
- package/dist/core/hooks-runtime/subagent-skill-availability.js +217 -0
- package/dist/core/hooks-runtime.js +259 -535
- package/dist/core/image-ux-review/codex-app-generated-image-discovery.js +0 -17
- package/dist/core/image-ux-review/imagegen-adapter.js +0 -14
- package/dist/core/imagegen/imagegen-auth-readiness.js +0 -9
- package/dist/core/imagegen/imagegen-capability.js +0 -3
- package/dist/core/init/managed-skill-install.js +42 -0
- package/dist/core/init/skills.js +247 -74
- package/dist/core/init.js +15 -40
- package/dist/core/lean-engineering-policy.js +0 -2
- package/dist/core/locks/file-lock.js +0 -21
- package/dist/core/loops/loop-planner.js +0 -6
- package/dist/core/loops/loop-runtime.js +0 -1
- package/dist/core/loops/loop-worker-runtime.js +0 -19
- package/dist/core/mad-sks/executors/db-write-executor.js +0 -4
- package/dist/core/mad-sks/executors/executor-base.js +0 -10
- package/dist/core/mad-sks/immutable-harness-guard.js +0 -5
- package/dist/core/mad-sks/sql-plane/coordinator.js +0 -5
- package/dist/core/mad-sks/sql-plane/ledger.js +0 -4
- package/dist/core/mad-sks/sql-plane/lock.js +0 -4
- package/dist/core/mad-sks/sql-plane/mcp-executor.js +0 -9
- package/dist/core/mad-sks/sql-plane/policy-resolver.js +0 -2
- package/dist/core/mad-sks/sql-plane/postconditions.js +0 -4
- package/dist/core/mad-sks/sql-plane/recovery.js +0 -2
- package/dist/core/mad-sks/sql-plane/runtime-profile.js +0 -8
- package/dist/core/managed-assets/managed-assets-manifest.js +1 -7
- package/dist/core/mcp-config/health-check.js +10 -3
- package/dist/core/migration/migration-transaction-journal.js +0 -8
- package/dist/core/mission.js +0 -2
- package/dist/core/naruto/naruto-active-pool.js +0 -2
- package/dist/core/naruto/naruto-concurrency-governor.js +0 -1
- package/dist/core/naruto/naruto-real-write-proof.js +0 -4
- package/dist/core/naruto/naruto-write-e2e.js +0 -1
- package/dist/core/perf/perf-budget.js +0 -5
- package/dist/core/permission-gates.js +0 -2
- package/dist/core/pipeline-internals/runtime-core.js +15 -5
- package/dist/core/pipeline-internals/runtime-gates.js +0 -12
- package/dist/core/preflight/parallel-preflight-engine.js +0 -11
- package/dist/core/proof/evidence-collector.js +0 -2
- package/dist/core/proof/route-finalizer.js +0 -1
- package/dist/core/proof/selftest-proof-fixtures.js +0 -5
- package/dist/core/providers/glm/bench/glm-benchmark-runner.js +0 -2
- package/dist/core/providers/glm/glm-request-cache.js +0 -3
- package/dist/core/providers/glm/naruto/glm-naruto-command.js +0 -1
- package/dist/core/providers/glm/naruto/glm-naruto-decomposer.js +0 -1
- package/dist/core/providers/glm/naruto/glm-naruto-orchestrator.js +0 -6
- package/dist/core/providers/glm/naruto/glm-naruto-trace.js +0 -1
- package/dist/core/providers/glm/naruto/glm-naruto-worker-pool.js +0 -1
- package/dist/core/providers/glm/naruto/glm-naruto-worktree.js +0 -1
- package/dist/core/providers/openrouter/openrouter-secret-store.js +0 -1
- package/dist/core/providers/openrouter/openrouter-stream.js +0 -2
- package/dist/core/questions.js +3 -3
- package/dist/core/release/gate-manifest.js +0 -5
- package/dist/core/release/package-size-budget.js +1 -1
- package/dist/core/release/release-gate-batch-runner.js +11 -2
- package/dist/core/release/release-gate-cache-v2.js +0 -4
- package/dist/core/release/release-gate-hermetic-env.js +0 -5
- package/dist/core/release-parallel-full-coverage.js +0 -2
- package/dist/core/remote/ssh-worker-client.js +0 -3
- package/dist/core/research/research-adversarial-review.js +6 -2
- package/dist/core/responses-retry-policy.js +0 -10
- package/dist/core/retention.js +0 -7
- package/dist/core/routes/constants.js +0 -3
- package/dist/core/routes.js +89 -15
- package/dist/core/safety/command-contract/contracts.js +2 -0
- package/dist/core/safety/mutation-guard.js +0 -25
- package/dist/core/safety/mutation-ledger.js +0 -9
- package/dist/core/safety/requested-scope-contract.js +0 -0
- package/dist/core/security/high-risk-contracts.js +0 -1
- package/dist/core/skills/core-skill-card.js +0 -0
- package/dist/core/skills/core-skill-deployment.js +0 -13
- package/dist/core/skills/core-skill-epoch.js +0 -11
- package/dist/core/skills/core-skill-meta-update.js +0 -6
- package/dist/core/skills/core-skill-patch-apply.js +0 -7
- package/dist/core/skills/core-skill-patch.js +0 -8
- package/dist/core/skills/core-skill-reflection.js +0 -16
- package/dist/core/skills/core-skill-runtime.js +0 -6
- package/dist/core/skills/core-skill-scorer.js +0 -7
- package/dist/core/skills/core-skill-trainer.js +0 -11
- package/dist/core/skills/core-skill-types.js +0 -9
- package/dist/core/skills/core-skill-validation.js +0 -5
- package/dist/core/skills/rejected-skill-patch-buffer.js +0 -2
- package/dist/core/stop-gate/stop-gate-check.js +0 -8
- package/dist/core/stop-gate/stop-gate-resolver.js +0 -7
- package/dist/core/stop-gate/stop-gate-writer.js +0 -5
- package/dist/core/subagents/model-policy.js +0 -7
- package/dist/core/subagents/naruto-help-contract.js +1 -1
- package/dist/core/subagents/naruto-proof-projection.js +580 -12
- package/dist/core/subagents/official-subagent-config.js +0 -8
- package/dist/core/subagents/official-subagent-preparation.js +6 -5
- package/dist/core/subagents/official-subagent-prompt.js +29 -0
- package/dist/core/subagents/official-subagent-runner.js +343 -37
- package/dist/core/subagents/subagent-evidence.js +378 -9
- package/dist/core/subagents/thread-budget.js +5 -2
- package/dist/core/subagents/triwiki-attention.js +0 -4
- package/dist/core/subagents/wave-parent-guidance.js +54 -9
- package/dist/core/telegram/runtime.js +0 -1
- package/dist/core/triwiki/code-index-scanner.js +0 -3
- package/dist/core/triwiki/code-pack-head-freshness.js +0 -10
- package/dist/core/triwiki/code-pack.js +0 -2
- package/dist/core/triwiki/triwiki-cache-key.js +0 -1
- package/dist/core/triwiki/triwiki-proof-bank.js +0 -1
- package/dist/core/triwiki-attention.js +0 -10
- package/dist/core/triwiki-provenance.js +0 -5
- package/dist/core/triwiki-runtime.js +0 -12
- package/dist/core/triwiki-wrongness/wrongness-ledger.js +0 -7
- package/dist/core/triwiki-wrongness/wrongness-schema.js +0 -3
- package/dist/core/trust-kernel/trust-report.js +0 -7
- package/dist/core/update/update-migration-state.js +21 -39
- package/dist/core/update-check.js +2 -14
- package/dist/core/version-manager.js +2 -0
- package/dist/core/version.js +1 -1
- package/dist/core/work-order-ledger.js +0 -17
- package/dist/core/zellij/zellij-clipboard-config.js +0 -18
- package/dist/core/zellij/zellij-lane-renderer.js +5 -46
- package/dist/core/zellij/zellij-lane-runtime.js +0 -1
- package/dist/core/zellij/zellij-launcher.js +0 -26
- package/dist/core/zellij/zellij-official-subagent-activity.js +0 -5
- package/dist/core/zellij/zellij-official-subagent-telemetry.js +0 -5
- package/dist/core/zellij/zellij-screen-proof.js +0 -7
- package/dist/core/zellij/zellij-slot-column-anchor.js +0 -1
- package/dist/core/zellij/zellij-slot-pane-renderer.js +0 -9
- package/dist/core/zellij/zellij-slot-telemetry.js +0 -12
- package/dist/core/zellij/zellij-ui-mode.js +0 -7
- package/dist/core/zellij/zellij-update.js +0 -29
- package/dist/core/zellij/zellij-worker-pane-manager.js +0 -39
- package/dist/native/sks-menubar/Sources/ProvidersViewController.swift +213 -27
- package/dist/native/sks-menubar/Sources/UpdatesViewController.swift +95 -12
- package/dist/scripts/agent-message-bus-reader-check.js +0 -1
- package/dist/scripts/all-feature-deep-completion-check.js +0 -1
- package/dist/scripts/appshots-thread-attachment-discovery-check.js +0 -1
- package/dist/scripts/architecture-guard-check.js +0 -1
- package/dist/scripts/build-dist.js +0 -1
- package/dist/scripts/build-once-runner-check.js +0 -1
- package/dist/scripts/canonical-test-runner.js +0 -2
- package/dist/scripts/certificate-sla-check.js +0 -1
- package/dist/scripts/changelog-check.js +0 -1
- package/dist/scripts/check-cli-entrypoint.js +0 -1
- package/dist/scripts/check-command-module-budget.js +0 -7
- package/dist/scripts/check-feature-quality.js +0 -1
- package/dist/scripts/check-legacy-free.js +0 -1
- package/dist/scripts/check-pipeline-runtime.js +0 -1
- package/dist/scripts/check-runtime-schemas.js +0 -1
- package/dist/scripts/codex-0-134-runner-truth-check.js +0 -1
- package/dist/scripts/codex-0-137-compat-check.js +0 -1
- package/dist/scripts/codex-0138-capability-artifact-check.js +0 -1
- package/dist/scripts/codex-0138-capability-check.js +0 -1
- package/dist/scripts/codex-0138-doctor-check.js +0 -1
- package/dist/scripts/codex-0138-feature-probes-check.js +0 -1
- package/dist/scripts/codex-0144-core-real-probes-check.js +0 -1
- package/dist/scripts/codex-app-handoff-check.js +0 -1
- package/dist/scripts/codex-app-handoff-launch-check.js +0 -1
- package/dist/scripts/codex-config-load-probe.js +0 -5
- package/dist/scripts/codex-control-all-pipelines-check.js +0 -1
- package/dist/scripts/codex-control-event-stream-ledger-check.js +0 -1
- package/dist/scripts/codex-control-tool-output-continuity-audit-check.js +0 -1
- package/dist/scripts/codex-permission-profiles-check.js +0 -1
- package/dist/scripts/codex-plugin-app-template-policy-check.js +0 -1
- package/dist/scripts/codex-project-config-policy-splitter-check.js +0 -1
- package/dist/scripts/codex-sdk-all-pipelines-check.js +0 -1
- package/dist/scripts/codex-sdk-backend-router-check.js +0 -1
- package/dist/scripts/codex-sdk-capability-check.js +0 -1
- package/dist/scripts/codex-sdk-event-stream-ledger-check.js +0 -1
- package/dist/scripts/codex-sdk-real-smoke-check.js +0 -1
- package/dist/scripts/concurrent-session-collision-check.js +9 -0
- package/dist/scripts/context7-evidence-dedupe-check.js +0 -1
- package/dist/scripts/core-skill-card-schema-check.js +0 -11
- package/dist/scripts/core-skill-deployment-snapshot-check.js +0 -10
- package/dist/scripts/core-skill-heldout-validation-check.js +0 -11
- package/dist/scripts/core-skill-no-inference-optimizer-check.js +0 -11
- package/dist/scripts/core-skill-patch-check.js +0 -11
- package/dist/scripts/core-skill-route-runtime-integration-check.js +0 -11
- package/dist/scripts/current-surface-update-e2e-check.js +0 -4
- package/dist/scripts/current-upgrade-matrix-check.js +0 -1
- package/dist/scripts/dfix-fixture-check.js +0 -1
- package/dist/scripts/dfix-patch-handoff-check.js +0 -1
- package/dist/scripts/dfix-verification-check.js +0 -1
- package/dist/scripts/dfix-verification-recommendation-check.js +0 -1
- package/dist/scripts/docs-truthfulness-check.js +3 -3
- package/dist/scripts/doctor-fastpath-check.js +0 -1
- package/dist/scripts/doctor-fix-proves-codex-read-check.js +0 -11
- package/dist/scripts/doctor-fixes-codex-app-fast-ui-check.js +0 -4
- package/dist/scripts/doctor-idempotence-check.js +0 -1
- package/dist/scripts/doctor-ops-semantics-check.js +0 -1
- package/dist/scripts/ensure-bin-executable.js +0 -1
- package/dist/scripts/evidence-flagship-coverage-check.js +0 -1
- package/dist/scripts/fast-codex-service-tier-proof-check.js +0 -1
- package/dist/scripts/fixtures/fake-codex-config-loader.js +0 -5
- package/dist/scripts/fsx-hotpath-check.js +0 -1
- package/dist/scripts/gate-policy-audit-check.js +1 -1
- package/dist/scripts/geo-claim-evidence-check.js +0 -1
- package/dist/scripts/geo-cli-blackbox-check.js +0 -1
- package/dist/scripts/geo-crawler-policy-check.js +0 -1
- package/dist/scripts/git-worktree-diff-envelope-check.js +0 -1
- package/dist/scripts/git-worktree-dirty-lock-check.js +0 -1
- package/dist/scripts/git-worktree-dirty-main-detection-check.js +0 -1
- package/dist/scripts/git-worktree-integration-primary-check.js +0 -1
- package/dist/scripts/git-worktree-manifest-append-check.js +0 -1
- package/dist/scripts/git-worktree-untracked-diff-check.js +0 -1
- package/dist/scripts/high-risk-contracts-check.js +0 -1
- package/dist/scripts/hook-latency-budget-check.js +0 -1
- package/dist/scripts/hook-latency-quantum-check.js +0 -1
- package/dist/scripts/image-artifact-path-contract-check.js +0 -1
- package/dist/scripts/imagegen-real-smoke-check.js +0 -1
- package/dist/scripts/import-graph-budget-check.js +0 -1
- package/dist/scripts/installed-package-smoke-check.js +0 -1
- package/dist/scripts/legacy-gate-purge-check.js +0 -1
- package/dist/scripts/lib/codex-sdk-gate-lib.js +0 -3
- package/dist/scripts/lib/ensure-dist-fresh.js +0 -1
- package/dist/scripts/lib/valid-png-fixture.js +0 -1
- package/dist/scripts/local-collab-all-pipelines-final-gpt-check.js +0 -1
- package/dist/scripts/loop-directive-check-lib.js +0 -1
- package/dist/scripts/loop-worker-fixture-child.js +0 -1
- package/dist/scripts/mad-preflight-blocks-unreadable-config-check.js +0 -10
- package/dist/scripts/mad-sks-sql-plane-lifecycle-hook-decision-check.js +0 -1
- package/dist/scripts/mad-sks-sql-plane-result-lifecycle-check.js +0 -1
- package/dist/scripts/mcp-plugin-inventory-check.js +0 -1
- package/dist/scripts/mcp-tool-naming-parity-check.js +0 -1
- package/dist/scripts/model-call-concurrency-check.js +0 -1
- package/dist/scripts/mutation-callsite-coverage-check.js +0 -5
- package/dist/scripts/naruto-codex-e2e-check.js +0 -1
- package/dist/scripts/naruto-worktree-coding-blackbox.js +0 -1
- package/dist/scripts/official-subagent-workflow-check.js +3 -1
- package/dist/scripts/ops-diagnostics-bundle-check.js +0 -1
- package/dist/scripts/packlist-performance-check.js +1 -3
- package/dist/scripts/perf-budget-check.js +0 -1
- package/dist/scripts/ppt-full-e2e-blackbox-check.js +0 -1
- package/dist/scripts/ppt-real-export-adapter-check.js +0 -1
- package/dist/scripts/ppt-real-imagegen-smoke-check.js +0 -1
- package/dist/scripts/ppt-real-imagegen-wiring-check.js +0 -1
- package/dist/scripts/ppt-reexport-rereview-check.js +0 -1
- package/dist/scripts/prepublish-fast-check.js +0 -23
- package/dist/scripts/prepublish-release-check-or-fast.js +0 -7
- package/dist/scripts/probe-memoization-check.js +0 -1
- package/dist/scripts/product-design-plugin-routing-check.js +0 -1
- package/dist/scripts/project-skill-dedupe-blackbox.js +36 -9
- package/dist/scripts/prompt-placeholder-guard-check.js +0 -1
- package/dist/scripts/python-codex-sdk-all-pipelines-check.js +0 -3
- package/dist/scripts/qa-loop-app-handoff-capability-check.js +0 -1
- package/dist/scripts/qa-loop-app-handoff-check.js +0 -1
- package/dist/scripts/qa-loop-app-handoff-cli-check.js +0 -1
- package/dist/scripts/qa-loop-app-handoff-confirmation-check.js +0 -1
- package/dist/scripts/qa-loop-app-handoff-gate-lifecycle-check.js +0 -1
- package/dist/scripts/qa-loop-app-handoff-launch-check.js +0 -1
- package/dist/scripts/qa-loop-app-handoff-status-lifecycle-check.js +0 -1
- package/dist/scripts/qa-loop-budget-policy-check.js +0 -1
- package/dist/scripts/qa-loop-effort-escalation-check.js +0 -1
- package/dist/scripts/qa-loop-image-path-exposure-check.js +0 -1
- package/dist/scripts/qa-loop-image-path-prompt-injection-check.js +0 -1
- package/dist/scripts/release-cache-glob-hashing-check.js +0 -1
- package/dist/scripts/release-cache-input-classifier-check.js +0 -1
- package/dist/scripts/release-cache-neutralization-report-check.js +0 -1
- package/dist/scripts/release-cache-version-neutral-fixture-check.js +0 -1
- package/dist/scripts/release-check-stamp.js +0 -4
- package/dist/scripts/release-dist-freshness-check.js +0 -1
- package/dist/scripts/release-full-parallelism-blackbox.js +3 -3
- package/dist/scripts/release-gate-batch-runner-check.js +22 -0
- package/dist/scripts/release-gate-budget-check.js +0 -6
- package/dist/scripts/release-gate-dag-runner-check.js +0 -1
- package/dist/scripts/release-latency-slo-check.js +0 -1
- package/dist/scripts/release-metadata-1-19-check.js +0 -1
- package/dist/scripts/release-metadata-check.js +0 -3
- package/dist/scripts/release-parallel-speed-budget-check.js +0 -5
- package/dist/scripts/release-proof-truth-check.js +0 -1
- package/dist/scripts/release-provenance-check.js +0 -1
- package/dist/scripts/release-real-check.js +0 -1
- package/dist/scripts/release-runtime-truth-matrix-check.js +0 -1
- package/dist/scripts/release-version-truth-check.js +0 -1
- package/dist/scripts/research-blueprint-densifier-check.js +0 -1
- package/dist/scripts/research-claim-builder-check.js +0 -1
- package/dist/scripts/research-complete-package-fixture-check.js +0 -1
- package/dist/scripts/research-final-reviewer-blackbox.js +0 -1
- package/dist/scripts/responses-retry-policy-centralized-check.js +0 -1
- package/dist/scripts/retention-apply-smoke-check.js +0 -1
- package/dist/scripts/retention-budget-check.js +0 -1
- package/dist/scripts/retention-dry-run-check.js +0 -1
- package/dist/scripts/rollback-recovery-smoke-check.js +0 -1
- package/dist/scripts/route-intent-regression-check.js +0 -1
- package/dist/scripts/runtime-current-terminal-check.js +0 -1
- package/dist/scripts/runtime-dist-parity-check.js +0 -1
- package/dist/scripts/runtime-no-src-mjs-check.js +0 -1
- package/dist/scripts/runtime-proof-summary-check.js +0 -1
- package/dist/scripts/runtime-ts-rust-boundary-check.js +0 -15
- package/dist/scripts/runtime-ts-source-of-truth-check.js +0 -1
- package/dist/scripts/scheduler-batch-dispatch-check.js +0 -1
- package/dist/scripts/scheduler-parallel-proof-consistency-check.js +0 -1
- package/dist/scripts/scheduler-utilization-integral-check.js +0 -1
- package/dist/scripts/search-visibility-gate-lib.js +0 -1
- package/dist/scripts/seo-audit-fixture-check.js +0 -1
- package/dist/scripts/seo-cli-blackbox-check.js +0 -1
- package/dist/scripts/seo-geo-geo-disambiguation-check.js +0 -1
- package/dist/scripts/seo-geo-route-identity-check.js +0 -1
- package/dist/scripts/seo-geo-skill-rich-content-check.js +0 -1
- package/dist/scripts/seo-marketing-truthfulness-check.js +0 -1
- package/dist/scripts/seo-metadata-sync-check.js +0 -1
- package/dist/scripts/seo-no-mutation-by-default-check.js +0 -1
- package/dist/scripts/shared-memory-fixture-check.js +0 -1
- package/dist/scripts/side-effect-runtime-report-check.js +0 -1
- package/dist/scripts/sizecheck.js +0 -1
- package/dist/scripts/sks-1-11-gate-lib.js +0 -1
- package/dist/scripts/sks-1-12-real-execution-check-lib.js +0 -1
- package/dist/scripts/sks-1-18-gate-lib.js +0 -1
- package/dist/scripts/sks-menubar-install-check.js +0 -3
- package/dist/scripts/sksd-daemon-check.js +0 -1
- package/dist/scripts/super-search-live-smoke-check.js +0 -1
- package/dist/scripts/super-search-local-http-smoke-check.js +0 -1
- package/dist/scripts/super-search-offline-contract-check.js +0 -1
- package/dist/scripts/super-search-provider-interface-check.js +0 -1
- package/dist/scripts/triwiki-cache-key-check.js +0 -1
- package/dist/scripts/triwiki-proof-bank-blackbox.js +0 -1
- package/dist/scripts/triwiki-proof-bank-check.js +0 -1
- package/dist/scripts/triwiki-proof-card-check.js +0 -1
- package/dist/scripts/trust-fixture-check.js +0 -1
- package/dist/scripts/ultra-router-auto-router-check.js +0 -1
- package/dist/scripts/update-fastpath-check.js +0 -1
- package/dist/scripts/upgrade-migration-matrix-check.js +0 -1
- package/dist/scripts/ux-review-extract-wires-real-extractor-check.js +0 -1
- package/dist/scripts/ux-review-imagegen-blackbox-check.js +0 -1
- package/dist/scripts/ux-review-patch-diff-recheck-check.js +0 -1
- package/dist/scripts/ux-review-real-imagegen-smoke-check.js +0 -1
- package/dist/scripts/ux-review-run-wires-imagegen-check.js +0 -1
- package/dist/scripts/write-build-manifest.js +0 -1
- package/dist/scripts/wrongness-fixture-check.js +0 -1
- package/dist/scripts/zellij-capability-check.js +0 -1
- package/dist/scripts/zellij-developer-controls-check.js +0 -1
- package/dist/scripts/zellij-doctor-readiness-check.js +0 -13
- package/dist/scripts/zellij-dynamic-pane-lifecycle-check.js +0 -1
- package/dist/scripts/zellij-fake-adapter-check.js +0 -1
- package/dist/scripts/zellij-initial-main-only-blackbox.js +0 -1
- package/dist/scripts/zellij-lane-renderer-check.js +0 -1
- package/dist/scripts/zellij-launch-command-truth-check.js +0 -12
- package/dist/scripts/zellij-layout-valid-check.js +0 -1
- package/dist/scripts/zellij-pane-creation-lock-metrics-check.js +0 -1
- package/dist/scripts/zellij-pane-lock-concurrency-blackbox.js +0 -1
- package/dist/scripts/zellij-pane-lock-does-not-block-worker-check.js +0 -1
- package/dist/scripts/zellij-pane-lock-open-worker-integration-blackbox.js +0 -1
- package/dist/scripts/zellij-pane-proof-check.js +0 -1
- package/dist/scripts/zellij-qa-app-handoff-status-check.js +0 -1
- package/dist/scripts/zellij-real-session-cleanup-check.js +0 -1
- package/dist/scripts/zellij-real-session-launch-check.js +0 -1
- package/dist/scripts/zellij-right-column-geometry-proof.js +0 -1
- package/dist/scripts/zellij-right-column-headless-overflow-check.js +0 -1
- package/dist/scripts/zellij-right-column-manager-check.js +0 -1
- package/dist/scripts/zellij-screen-proof-check.js +0 -1
- package/dist/scripts/zellij-slot-only-ui-check.js +0 -1
- package/dist/scripts/zellij-slot-pane-renderer-check.js +0 -1
- package/dist/scripts/zellij-slot-pane-stale-detection-check.js +0 -7
- package/dist/scripts/zellij-slot-telemetry-incremental-check.js +0 -1
- package/dist/scripts/zellij-slot-telemetry-live-flush-check.js +0 -1
- package/dist/scripts/zellij-slot-telemetry-performance-check.js +0 -1
- package/dist/scripts/zellij-stacked-capability-routing-check.js +0 -1
- package/dist/scripts/zellij-stacked-fallback-integration-blackbox.js +0 -1
- package/dist/scripts/zellij-stacked-version-matrix-check.js +0 -1
- package/dist/scripts/zellij-stacked-version-parser-check.js +0 -1
- package/dist/scripts/zellij-ui-design-check.js +0 -12
- package/dist/scripts/zellij-update-prompt-matrix-check.js +0 -1
- package/dist/scripts/zellij-update-prompt-mode-check.js +0 -1
- package/dist/scripts/zellij-update-prompt-safety-check.js +0 -1
- package/dist/scripts/zellij-worker-pane-real-ui-blackbox.js +0 -2
- package/package.json +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
2
|
import fs from 'node:fs/promises';
|
|
4
3
|
import path from 'node:path';
|
|
5
4
|
import { spawnSync } from 'node:child_process';
|
|
@@ -165,9 +164,6 @@ function classifyText(textInput, opts = {}) {
|
|
|
165
164
|
operation_not_permitted: /Operation not permitted|os error 1|EPERM/i.test(text),
|
|
166
165
|
permission_denied: /Permission denied|EACCES/i.test(text),
|
|
167
166
|
toml_parse: /TOML parse|toml.*parse|parse.*toml|invalid.*toml|duplicate key/i.test(text),
|
|
168
|
-
// serde/toml deserialize failures from a structurally-broken config, e.g.
|
|
169
|
-
// `invalid type: sequence, expected a string` when `notify` was absorbed into
|
|
170
|
-
// an env table. These carry no literal "toml" token so the patterns above miss them.
|
|
171
167
|
toml_type_error: /invalid type:|invalid value:|expected (a |an )?(string|sequence|array|table|map|integer|boolean|float)|missing field|unknown field|unknown variant/i.test(text),
|
|
172
168
|
untrusted_project: /untrusted project/i.test(text),
|
|
173
169
|
ignored_project_local_config_key: /ignored project-local config key|ignored.*project.*config/i.test(text)
|
|
@@ -178,7 +174,6 @@ function classifyText(textInput, opts = {}) {
|
|
|
178
174
|
blockers.push('codex_cli_config_eperm');
|
|
179
175
|
else if (flags.permission_denied)
|
|
180
176
|
blockers.push('codex_cli_config_permission_denied');
|
|
181
|
-
// A config-load failure that is not a permission problem is a parse/structure error.
|
|
182
177
|
const tomlLoadFailure = flags.toml_parse
|
|
183
178
|
|| (!opts.configLoaded && flags.toml_type_error)
|
|
184
179
|
|| (!opts.configLoaded && flags.error_loading_config_toml && !flags.operation_not_permitted && !flags.permission_denied);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
2
|
import { assertGate, emitGate, runFakeCodexSdkTaskFixture } from './lib/codex-sdk-gate-lib.js';
|
|
4
3
|
const fixture = await runFakeCodexSdkTaskFixture('control-event-stream');
|
|
5
4
|
assertGate(fixture.events.length >= 1, 'Control Plane event ledger must contain translated events', fixture.events);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
2
|
import { assertGate, emitGate, runFakeCodexSdkTaskFixture } from './lib/codex-sdk-gate-lib.js';
|
|
4
3
|
const fixture = await runFakeCodexSdkTaskFixture('event-stream');
|
|
5
4
|
assertGate(fixture.events.length >= 1, 'SDK event ledger must contain events', fixture.events);
|
|
@@ -3,8 +3,17 @@ import fs from 'node:fs/promises';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { evaluateHookPayload } from '../core/hooks-runtime.js';
|
|
6
|
+
import { installGlobalSkills } from '../core/init/skills.js';
|
|
6
7
|
import { loadStateForSession, listSessionStates, stateFile } from '../core/mission.js';
|
|
7
8
|
const root = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-concurrent-session-'));
|
|
9
|
+
const fixtureHome = path.join(root, '.fixture-home');
|
|
10
|
+
process.env.HOME = fixtureHome;
|
|
11
|
+
process.env.CODEX_HOME = path.join(fixtureHome, '.codex');
|
|
12
|
+
process.env.SKS_GLOBAL_ROOT = path.join(fixtureHome, '.sneakoscope-global');
|
|
13
|
+
await fs.mkdir(fixtureHome, { recursive: true });
|
|
14
|
+
const skillInstall = await installGlobalSkills(fixtureHome);
|
|
15
|
+
if (!skillInstall.ok)
|
|
16
|
+
throw new Error('concurrent_session_skill_install_failed');
|
|
8
17
|
await fs.mkdir(path.join(root, '.sneakoscope', 'state'), { recursive: true });
|
|
9
18
|
const aPrompt = await evaluateHookPayload('user-prompt-submit', {
|
|
10
19
|
cwd: root,
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
// GATE: core-skill:card-schema
|
|
4
|
-
// Proves the Core Skill Card is read-only external state, that the checked-in
|
|
5
|
-
// schema matches the runtime contract, and that an optimizer candidate can never
|
|
6
|
-
// overwrite a deployed snapshot in place.
|
|
7
2
|
import fs from 'node:fs';
|
|
8
3
|
import os from 'node:os';
|
|
9
4
|
import path from 'node:path';
|
|
@@ -20,7 +15,6 @@ const promotionContract = createRequestedScopeContract({
|
|
|
20
15
|
projectRoot: tempRoot,
|
|
21
16
|
overrides: { skill_snapshot_promotion: true }
|
|
22
17
|
});
|
|
23
|
-
// 1) A fresh candidate is structurally valid and read-only.
|
|
24
18
|
const candidate = cardMod.createCandidateCard({ skillId: 'demo-skill', route: 'DFix', baseVersion: 0, body: BODY });
|
|
25
19
|
const shape = cardMod.validateCardShape(candidate);
|
|
26
20
|
assertGate(shape.ok, 'candidate card must pass validateCardShape', shape);
|
|
@@ -28,10 +22,8 @@ assertGate(candidate.status === 'candidate', 'fresh card status must be candidat
|
|
|
28
22
|
assertGate(candidate.deployment_snapshot === false, 'candidate must not be a deployment snapshot', candidate);
|
|
29
23
|
assertGate(candidate.side_effect_scope.read_only === true, 'candidate card must be read_only', candidate.side_effect_scope);
|
|
30
24
|
assertGate(candidate.side_effect_scope.allowed_mutations.length === 0, 'candidate card must grant zero mutations', candidate.side_effect_scope);
|
|
31
|
-
// 2) The checked-in schema parses and its const matches the runtime schema id.
|
|
32
25
|
const cardSchema = readJson('schemas/skills/core-skill-card.schema.json');
|
|
33
26
|
assertGate(cardSchema.properties?.schema?.const === typesMod.CORE_SKILL_CARD_SCHEMA, 'card schema const must match CORE_SKILL_CARD_SCHEMA', { const: cardSchema.properties?.schema?.const, expected: typesMod.CORE_SKILL_CARD_SCHEMA });
|
|
34
|
-
// 3) Negative invariants.
|
|
35
27
|
const notReadOnly = { ...candidate, side_effect_scope: { allowed_mutations: [], read_only: false } };
|
|
36
28
|
const notReadOnlyShape = cardMod.validateCardShape(notReadOnly);
|
|
37
29
|
assertGate(notReadOnlyShape.ok === false && notReadOnlyShape.blockers.includes('card_not_read_only'), 'read_only=false card must be blocked by card_not_read_only', notReadOnlyShape);
|
|
@@ -41,14 +33,11 @@ assertGate(grantsShape.ok === false && grantsShape.blockers.includes('card_grant
|
|
|
41
33
|
const badDeployed = { ...candidate, status: 'deployed', deployment_snapshot: false };
|
|
42
34
|
const badDeployedShape = cardMod.validateCardShape(badDeployed);
|
|
43
35
|
assertGate(badDeployedShape.ok === false && badDeployedShape.blockers.includes('deployed_card_not_snapshot'), 'deployed card without snapshot flag must be blocked', badDeployedShape);
|
|
44
|
-
// 4) A deployed snapshot cannot be overwritten by an optimizer candidate.
|
|
45
|
-
// The deployed snapshot lives in deployed.json; a candidate is a SEPARATE file.
|
|
46
36
|
const accepted = { ...candidate, status: 'accepted' };
|
|
47
37
|
const promotion = await deployMod.promoteToDeployedWithLedger(tempRoot, accepted, { contract: promotionContract, context: 'release' });
|
|
48
38
|
assertGate(promotion.ok === true, 'ledger promotion must succeed for an accepted card', promotion);
|
|
49
39
|
const deployedBefore = await cardMod.loadDeployedSnapshot(tempRoot, 'DFix', 'demo-skill');
|
|
50
40
|
assertGate(deployedBefore && deployedBefore.status === 'deployed' && deployedBefore.deployment_snapshot === true, 'loadDeployedSnapshot must return a deployed snapshot', deployedBefore);
|
|
51
|
-
// Saving a candidate with the same skill_id must NOT touch deployed.json.
|
|
52
41
|
const sneakyCandidate = cardMod.createCandidateCard({ skillId: 'demo-skill', route: 'DFix', baseVersion: 9, body: '## Goal\nOverwrite me.\n' });
|
|
53
42
|
await cardMod.saveCard(tempRoot, sneakyCandidate);
|
|
54
43
|
const deployedAfter = await cardMod.loadDeployedSnapshot(tempRoot, 'DFix', 'demo-skill');
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
// GATE: core-skill:deployment-snapshot
|
|
4
|
-
// Proves deployed snapshots are immutable (a changed body needs a higher version),
|
|
5
|
-
// the previous snapshot is archived for rollback, rollback restores it, and only an
|
|
6
|
-
// accepted card may be promoted.
|
|
7
2
|
import fs from 'node:fs';
|
|
8
3
|
import os from 'node:os';
|
|
9
4
|
import path from 'node:path';
|
|
@@ -22,17 +17,14 @@ const promotionContract = createRequestedScopeContract({
|
|
|
22
17
|
projectRoot: tempRoot,
|
|
23
18
|
overrides: { skill_snapshot_promotion: true }
|
|
24
19
|
});
|
|
25
|
-
// 1) Promote an accepted card to a deployed snapshot.
|
|
26
20
|
const acceptedV1 = { ...cardMod.createCandidateCard({ skillId: SKILL, route: ROUTE, baseVersion: 0, body: BODY_V1 }), status: 'accepted' };
|
|
27
21
|
const promoteV1 = await deployMod.promoteToDeployedWithLedger(tempRoot, acceptedV1, { contract: promotionContract, context: 'release' });
|
|
28
22
|
assertGate(promoteV1.ok === true, 'promoting an accepted card must succeed', promoteV1);
|
|
29
23
|
assertGate(promoteV1.snapshot && promoteV1.snapshot.status === 'deployed' && promoteV1.snapshot.deployment_snapshot === true, 'snapshot must be deployed + flagged', promoteV1.snapshot);
|
|
30
|
-
// 2) Immutability: a changed body at version <= existing must be rejected.
|
|
31
24
|
const changedSameVersion = { ...cardMod.createCandidateCard({ skillId: SKILL, route: ROUTE, baseVersion: 0, body: BODY_V2 }), status: 'accepted' };
|
|
32
25
|
assertGate(changedSameVersion.version === acceptedV1.version, 'changed-body card must share the existing version for this check', { changed: changedSameVersion.version, existing: acceptedV1.version });
|
|
33
26
|
const promoteSame = await deployMod.promoteToDeployedWithLedger(tempRoot, changedSameVersion, { contract: promotionContract, context: 'release' });
|
|
34
27
|
assertGate(promoteSame.ok === false && promoteSame.blockers.includes('snapshot_changed_without_version_increment'), 'changed body without version bump must be rejected', promoteSame);
|
|
35
|
-
// 3) A changed body at a HIGHER version succeeds, archives the previous snapshot.
|
|
36
28
|
const acceptedV2 = { ...cardMod.createCandidateCard({ skillId: SKILL, route: ROUTE, baseVersion: 1, body: BODY_V2 }), status: 'accepted' };
|
|
37
29
|
assertGate(acceptedV2.version > acceptedV1.version, 'v2 must have a higher version than v1', { v2: acceptedV2.version, v1: acceptedV1.version });
|
|
38
30
|
const promoteV2 = await deployMod.promoteToDeployedWithLedger(tempRoot, acceptedV2, { contract: promotionContract, context: 'release' });
|
|
@@ -40,10 +32,8 @@ assertGate(promoteV2.ok === true, 'higher-version changed snapshot must promote'
|
|
|
40
32
|
assertGate(typeof promoteV2.archived_path === 'string' && promoteV2.archived_path.length > 0, 'previous snapshot must be archived', promoteV2);
|
|
41
33
|
const hasRollback = await deployMod.hasRollbackSnapshot(tempRoot, ROUTE, SKILL);
|
|
42
34
|
assertGate(hasRollback === true, 'a rollback snapshot must exist after a version bump', { hasRollback });
|
|
43
|
-
// 4) Rollback restores the previous (v1) snapshot.
|
|
44
35
|
const rolled = await deployMod.rollbackDeployment(tempRoot, ROUTE, SKILL);
|
|
45
36
|
assertGate(rolled.ok === true && rolled.restored_version === acceptedV1.version, 'rollback must restore the previous version', rolled);
|
|
46
|
-
// 5) Promotion requires accepted status.
|
|
47
37
|
const candidate = cardMod.createCandidateCard({ skillId: 'other-skill', route: ROUTE, baseVersion: 0, body: BODY_V1 });
|
|
48
38
|
const promoteCandidate = await deployMod.promoteToDeployedWithLedger(tempRoot, candidate, { contract: promotionContract, context: 'release' });
|
|
49
39
|
assertGate(promoteCandidate.ok === false && promoteCandidate.blockers.includes('promote_requires_accepted_status'), 'a candidate card must not be promotable', promoteCandidate);
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
// GATE: core-skill:heldout-validation
|
|
4
|
-
// Proves strict held-out acceptance: a candidate is accepted ONLY on strict
|
|
5
|
-
// held-out improvement with no safety regression, train-only gains are rejected,
|
|
6
|
-
// and rejected patches are buffered so the same failed edit is not retried.
|
|
7
2
|
import fs from 'node:fs';
|
|
8
3
|
import os from 'node:os';
|
|
9
4
|
import path from 'node:path';
|
|
@@ -22,20 +17,14 @@ const baseInput = {
|
|
|
22
17
|
latencyBaselineMs: 1000,
|
|
23
18
|
latencyCandidateMs: 1100
|
|
24
19
|
};
|
|
25
|
-
// 1) Accept on strict improvement with no regression.
|
|
26
20
|
const acceptRes = validationMod.validateHeldout(baseInput);
|
|
27
21
|
assertGate(acceptRes.accept === true && acceptRes.reason === 'strict_improvement', 'strict improvement must be accepted', acceptRes);
|
|
28
|
-
// 2) Held-out not improved -> reject.
|
|
29
22
|
const notImproved = validationMod.validateHeldout({ ...baseInput, candidateHeldout: 0.74 });
|
|
30
23
|
assertGate(notImproved.accept === false && notImproved.reason === 'heldout_not_improved', 'non-improving held-out must be rejected', notImproved);
|
|
31
|
-
// 3) Train-improves-but-held-out-worse maps to heldout_not_improved.
|
|
32
|
-
// (Held-out is the only acceptance signal; a worse held-out is rejected regardless of train gains.)
|
|
33
24
|
const trainGainHeldoutWorse = validationMod.validateHeldout({ ...baseInput, candidateHeldout: 0.70 });
|
|
34
25
|
assertGate(trainGainHeldoutWorse.accept === false && trainGainHeldoutWorse.reason === 'heldout_not_improved', 'train-gain/held-out-worse must reject as heldout_not_improved', trainGainHeldoutWorse);
|
|
35
|
-
// 4) Side-effect violation with improved held-out -> reject.
|
|
36
26
|
const sideEffect = validationMod.validateHeldout({ ...baseInput, sideEffectZero: false });
|
|
37
27
|
assertGate(sideEffect.accept === false && sideEffect.reason === 'side_effect_zero_failed', 'side-effect failure must reject as side_effect_zero_failed', sideEffect);
|
|
38
|
-
// 5) Rejected-patch buffer dedupes by hash.
|
|
39
28
|
const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-heldout-'));
|
|
40
29
|
await bufferMod.recordRejectedPatch(tempRoot, { skill_id: 's', base_version: 3, patch_hash: 'abc', reason: 'heldout_not_improved', score_delta: -0.03 });
|
|
41
30
|
const knownRejected = await bufferMod.isPatchRejected(tempRoot, 'abc');
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
// GATE: core-skill:no-inference-optimizer
|
|
4
|
-
// Proves the optimizer NEVER runs in deployment/inference context: deployed-snapshot
|
|
5
|
-
// reads are allowed and carry route proof (skill id/version/hash), while any
|
|
6
|
-
// optimizer/epoch call throws a SkillDeploymentViolationError. Out of context the
|
|
7
|
-
// optimizer works normally.
|
|
8
2
|
import fs from 'node:fs';
|
|
9
3
|
import os from 'node:os';
|
|
10
4
|
import path from 'node:path';
|
|
@@ -18,11 +12,9 @@ const BODY = '## Goal\nDo the task.\n\n## Verification\nCheck output.\n\n## Roll
|
|
|
18
12
|
const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-no-opt-'));
|
|
19
13
|
const card = cardMod.createCandidateCard({ skillId: 'x', route: 'DFix', baseVersion: 0, body: BODY });
|
|
20
14
|
const trace = traceMod.createRolloutTrace({ route: 'DFix', backend: 'fake', proof_artifacts: [], rollback_ready: false, requested_scope_compliant: true, latency_ms: 1000, failure_reason: null });
|
|
21
|
-
// Enter deployment / inference context.
|
|
22
15
|
deployMod.setDeploymentContext(true);
|
|
23
16
|
process.env.SKS_SKILL_DEPLOYMENT_CONTEXT = '1';
|
|
24
17
|
assertGate(deployMod.isDeploymentContext() === true, 'deployment context must be active', { active: deployMod.isDeploymentContext() });
|
|
25
|
-
// 1) Deployment reads are allowed and never throw.
|
|
26
18
|
let selection = null;
|
|
27
19
|
let readThrew = false;
|
|
28
20
|
try {
|
|
@@ -35,11 +27,9 @@ catch {
|
|
|
35
27
|
assertGate(readThrew === false, 'deployment-path reads must not throw in deployment context', { readThrew });
|
|
36
28
|
assertGate(selection !== null, 'selectRouteSkill must return a selection', { selection });
|
|
37
29
|
assertGate(selection.source === 'fallback' || selection.source === 'deployed', 'selection source must be fallback or deployed', selection);
|
|
38
|
-
// 2) Route proof record: no optimizer invocation, and skill id/version/hash keys present (Task 4.7).
|
|
39
30
|
const proof = runtimeMod.skillProofRecord(selection);
|
|
40
31
|
assertGate(proof.optimizer_invoked === false, 'route proof must show optimizer was not invoked', proof);
|
|
41
32
|
assertGate('skill_id' in proof && 'version' in proof && 'hash' in proof, 'route proof must include skill_id/version/hash keys', proof);
|
|
42
|
-
// 3) Optimizer calls are forbidden in deployment context.
|
|
43
33
|
let proposeThrew = null;
|
|
44
34
|
try {
|
|
45
35
|
epochMod.proposeSkillPatch(card, [trace]);
|
|
@@ -56,7 +46,6 @@ catch (err) {
|
|
|
56
46
|
epochThrew = err;
|
|
57
47
|
}
|
|
58
48
|
assertGate(epochThrew !== null && epochThrew.name === 'SkillDeploymentViolationError', 'runSkillEpoch must throw SkillDeploymentViolationError in deployment context', { name: epochThrew?.name });
|
|
59
|
-
// 4) Reset: out of deployment context the optimizer works (does not throw).
|
|
60
49
|
deployMod.setDeploymentContext(false);
|
|
61
50
|
delete process.env.SKS_SKILL_DEPLOYMENT_CONTEXT;
|
|
62
51
|
assertGate(deployMod.isDeploymentContext() === false, 'deployment context must be cleared', { active: deployMod.isDeploymentContext() });
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
// GATE: core-skill:patch
|
|
4
|
-
// Proves a SkillPatch edits ONLY the single skill document within the textual
|
|
5
|
-
// learning-rate budget, and rejects budget overruns, external/code targets, and
|
|
6
|
-
// cross-skill (multi-doc) edits.
|
|
7
2
|
import fs from 'node:fs';
|
|
8
3
|
import path from 'node:path';
|
|
9
4
|
import { assertGate, emitGate, importDist, root, readJson } from './sks-1-18-gate-lib.js';
|
|
@@ -12,10 +7,8 @@ const patchMod = await importDist('core/skills/core-skill-patch.js');
|
|
|
12
7
|
const applyMod = await importDist('core/skills/core-skill-patch-apply.js');
|
|
13
8
|
const typesMod = await importDist('core/skills/core-skill-types.js');
|
|
14
9
|
const BODY = '## Goal\nDo the task.\n\n## Verification\nCheck output.\n\n## Rollback\nRevert on failure.\n';
|
|
15
|
-
// Base card at version N (createCandidateCard from baseVersion 2 -> version 3).
|
|
16
10
|
const baseCard = cardMod.createCandidateCard({ skillId: 'demo-skill', route: 'DFix', baseVersion: 2, body: BODY });
|
|
17
11
|
const N = baseCard.version;
|
|
18
|
-
// 1) Valid patch within budget: one small add to the verification section.
|
|
19
12
|
const validPatch = {
|
|
20
13
|
schema: typesMod.CORE_SKILL_PATCH_SCHEMA,
|
|
21
14
|
skill_id: 'demo-skill',
|
|
@@ -29,7 +22,6 @@ const applied = applyMod.applyPatch(baseCard, validPatch);
|
|
|
29
22
|
assertGate(applied.ok === true, 'valid patch must apply', applied);
|
|
30
23
|
assertGate(applied.candidate && applied.candidate.body !== baseCard.body, 'applied patch must change the candidate body', { changed: applied.candidate?.body !== baseCard.body });
|
|
31
24
|
assertGate(applied.before_hash !== applied.after_hash, 'applied patch must change the body hash', { before: applied.before_hash, after: applied.after_hash });
|
|
32
|
-
// 2) Budget overrun: add text longer than max_added_chars.
|
|
33
25
|
const overPatch = {
|
|
34
26
|
schema: typesMod.CORE_SKILL_PATCH_SCHEMA,
|
|
35
27
|
skill_id: 'demo-skill',
|
|
@@ -39,7 +31,6 @@ const overPatch = {
|
|
|
39
31
|
};
|
|
40
32
|
const overRes = patchMod.validatePatch(overPatch, baseCard);
|
|
41
33
|
assertGate(overRes.ok === false && overRes.blockers.includes('budget_added_chars_exceeded'), 'over-budget add must be blocked by budget_added_chars_exceeded', overRes);
|
|
42
|
-
// 3) Code/external target reject.
|
|
43
34
|
const externalPatch = {
|
|
44
35
|
schema: typesMod.CORE_SKILL_PATCH_SCHEMA,
|
|
45
36
|
skill_id: 'demo-skill',
|
|
@@ -60,7 +51,6 @@ const filePatch = {
|
|
|
60
51
|
const fileRes = patchMod.validatePatch(filePatch, baseCard);
|
|
61
52
|
const fileBlocked = fileRes.ok === false && fileRes.blockers.some((b) => b.startsWith('patch_target_is_external') || b.startsWith('patch_target_invalid'));
|
|
62
53
|
assertGate(fileBlocked, 'file:-targeted patch must be rejected', fileRes);
|
|
63
|
-
// 4) Multi-doc / other-skill reject (same base_version so the only difference is skill_id).
|
|
64
54
|
const otherSkillPatch = {
|
|
65
55
|
schema: typesMod.CORE_SKILL_PATCH_SCHEMA,
|
|
66
56
|
skill_id: 'a-different-skill',
|
|
@@ -70,7 +60,6 @@ const otherSkillPatch = {
|
|
|
70
60
|
};
|
|
71
61
|
const otherRes = patchMod.validatePatch(otherSkillPatch, baseCard);
|
|
72
62
|
assertGate(otherRes.ok === false && otherRes.blockers.includes('patch_targets_other_skill'), 'patch for another skill must be blocked by patch_targets_other_skill', otherRes);
|
|
73
|
-
// 5) Checked-in patch schema parses and const matches the runtime contract.
|
|
74
63
|
const patchSchema = readJson('schemas/skills/core-skill-patch.schema.json');
|
|
75
64
|
assertGate(patchSchema.properties?.schema?.const === typesMod.CORE_SKILL_PATCH_SCHEMA, 'patch schema const must match CORE_SKILL_PATCH_SCHEMA', { const: patchSchema.properties?.schema?.const, expected: typesMod.CORE_SKILL_PATCH_SCHEMA });
|
|
76
65
|
fs.mkdirSync(path.join(root, '.sneakoscope', 'reports'), { recursive: true });
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
// core-skill:route-runtime-integration (1.20.2 Area 3.1).
|
|
4
|
-
//
|
|
5
|
-
// Proves the route runtime reads the deployed Core Skill snapshot and records it
|
|
6
|
-
// in proof: (1) selectRouteSkill returns source:'deployed' + optimizer_invoked:false
|
|
7
|
-
// for a deployed snapshot, (2) a missing snapshot is a graceful 'fallback' with a
|
|
8
|
-
// warning (route still runs), and (3) the agent-proof-evidence builder emits the
|
|
9
|
-
// selected_core_skill field.
|
|
10
2
|
import fs from 'node:fs';
|
|
11
3
|
import os from 'node:os';
|
|
12
4
|
import path from 'node:path';
|
|
@@ -24,11 +16,9 @@ const promotionContract = createRequestedScopeContract({
|
|
|
24
16
|
projectRoot: root,
|
|
25
17
|
overrides: { skill_snapshot_promotion: true }
|
|
26
18
|
});
|
|
27
|
-
// Missing snapshot → graceful fallback.
|
|
28
19
|
const missing = await selectRouteSkill(root, route, skillId);
|
|
29
20
|
assertGate(missing.source === 'fallback', 'missing snapshot must be a graceful fallback', { missing });
|
|
30
21
|
assertGate(typeof missing.warning === 'string' && missing.warning.length > 0, 'missing snapshot must carry a warning', { missing });
|
|
31
|
-
// Deploy a snapshot, then select it.
|
|
32
22
|
const candidate = createCandidateCard({ skillId, route, baseVersion: 0, body: 'Route skill body.' });
|
|
33
23
|
const accepted = { ...candidate, status: 'accepted' };
|
|
34
24
|
const promoted = await promoteToDeployedWithLedger(root, accepted, { contract: promotionContract, context: 'release' });
|
|
@@ -39,7 +29,6 @@ assertGate(typeof selection.instruction === 'string', 'deployed selection must c
|
|
|
39
29
|
const proof = skillProofRecord(selection);
|
|
40
30
|
assertGate(proof.optimizer_invoked === false, 'route skill selection must never invoke the optimizer', { proof });
|
|
41
31
|
assertGate(proof.skill_id === skillId && typeof proof.hash === 'string', 'proof record must carry skill_id + hash', { proof });
|
|
42
|
-
// The agent-proof-evidence builder must surface a selected_core_skill field.
|
|
43
32
|
const evidenceSource = fs.readFileSync(path.join(process.cwd(), 'src/core/agents/agent-proof-evidence.ts'), 'utf8');
|
|
44
33
|
assertGate(/selected_core_skill\s*:/.test(evidenceSource), 'agent-proof-evidence must emit selected_core_skill', {});
|
|
45
34
|
const orchestratorSource = fs.readFileSync(path.join(process.cwd(), 'src/core/agents/agent-orchestrator.ts'), 'utf8');
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// Current-surface update and migration receipt end-to-end gate.
|
|
3
2
|
import fs from 'node:fs';
|
|
4
3
|
import fsp from 'node:fs/promises';
|
|
5
4
|
import os from 'node:os';
|
|
@@ -49,9 +48,6 @@ try {
|
|
|
49
48
|
SKS_REQUIRE_ZELLIJ: '0',
|
|
50
49
|
SKS_POSTINSTALL_GLOBAL_DOCTOR: '0',
|
|
51
50
|
SKS_MIGRATION_DOCTOR_TIMEOUT_MS: '30000',
|
|
52
|
-
// The updated-package doctor and receipt writer repeat the expensive
|
|
53
|
-
// migration passes. Keep their dedicated budget above parallel CI load
|
|
54
|
-
// without weakening the 30-second migration-timeout retry fixture below.
|
|
55
51
|
SKS_UPDATE_NEW_DOCTOR_TIMEOUT_MS: '90000'
|
|
56
52
|
}
|
|
57
53
|
}));
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
2
|
import fs from 'node:fs';
|
|
4
3
|
import path from 'node:path';
|
|
5
4
|
import { fileURLToPath } from 'node:url';
|
|
6
5
|
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
6
|
+
const packageVersion = String(JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8')).version || '').trim();
|
|
7
7
|
const files = [
|
|
8
8
|
'README.md',
|
|
9
9
|
'CHANGELOG.md',
|
|
@@ -33,7 +33,7 @@ const required = {
|
|
|
33
33
|
'docs/goal-to-loop-migration.md': ['only persisted goal owner', 'creates no SKS mission', '--legacy-goal-runtime', 'fail with an instruction'],
|
|
34
34
|
'docs/known-gaps.md': ['No P0', 'P1'],
|
|
35
35
|
'docs/release-readiness.md': [
|
|
36
|
-
|
|
36
|
+
`SKS ${packageVersion} Release Readiness`,
|
|
37
37
|
'$sks-naruto',
|
|
38
38
|
'$sks-work',
|
|
39
39
|
'sks doctor --fix',
|
|
@@ -46,7 +46,7 @@ const required = {
|
|
|
46
46
|
'proof-aware fleet control',
|
|
47
47
|
'npm stage publish',
|
|
48
48
|
'npm stage approve <stage-id>',
|
|
49
|
-
|
|
49
|
+
`6.2.0 to ${packageVersion} upgrade smoke`
|
|
50
50
|
]
|
|
51
51
|
};
|
|
52
52
|
const forbidden = [
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
2
|
import { spawnSync } from 'node:child_process';
|
|
4
3
|
import fs from 'node:fs/promises';
|
|
5
4
|
import os from 'node:os';
|
|
@@ -27,9 +26,6 @@ function runDoctorFix(fixture, home, extraEnv) {
|
|
|
27
26
|
timeout: 180000
|
|
28
27
|
});
|
|
29
28
|
}
|
|
30
|
-
// Scenario 1: an EPERM config-load failure the repairs cannot fix MUST stay a blocker
|
|
31
|
-
// (the re-probe of a genuinely-unreadable config still reports failure — Fix B does not
|
|
32
|
-
// paper over real problems).
|
|
33
29
|
const epermFixture = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-doctor-fix-eperm-'));
|
|
34
30
|
const epermHome = path.join(epermFixture, 'home');
|
|
35
31
|
await fs.mkdir(epermHome, { recursive: true });
|
|
@@ -39,12 +35,6 @@ const epermOk = epermRun.status !== 0
|
|
|
39
35
|
&& epermParsed.ready?.ready === false
|
|
40
36
|
&& epermParsed.ready?.blockers?.includes('codex_cli_config_eperm')
|
|
41
37
|
&& epermParsed.ready?.next_actions?.length > 0;
|
|
42
|
-
// Scenario 2 (regression for the endless `sks doctor --fix` loop): the project config
|
|
43
|
-
// seeds Context7 as a LOCAL STDIO server, which the fake loader treats as the Codex 0.140
|
|
44
|
-
// stdio/url merge conflict (`url is not supported for stdio`). `sks doctor --fix` migrates
|
|
45
|
-
// Context7 to the remote `url` transport; the post-repair re-probe must then observe a
|
|
46
|
-
// loadable config and clear `codex_cli_config_toml_parse_error` — instead of reporting the
|
|
47
|
-
// stale pre-migration failure that previously trapped users in a rerun loop.
|
|
48
38
|
const c7Fixture = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-doctor-fix-c7-'));
|
|
49
39
|
const c7Home = path.join(c7Fixture, 'home');
|
|
50
40
|
await fs.mkdir(path.join(c7Fixture, '.codex'), { recursive: true });
|
|
@@ -94,7 +84,6 @@ function parseLastJson(text) {
|
|
|
94
84
|
return JSON.parse(source.slice(starts[i]));
|
|
95
85
|
}
|
|
96
86
|
catch {
|
|
97
|
-
// Continue searching for the outer JSON object; pretty JSON may contain nested objects.
|
|
98
87
|
}
|
|
99
88
|
}
|
|
100
89
|
return {};
|
|
@@ -13,8 +13,6 @@ await fs.mkdir(path.join(root, '.codex'), { recursive: true });
|
|
|
13
13
|
await fs.mkdir(codexHome, { recursive: true });
|
|
14
14
|
await fs.writeFile(path.join(root, '.codex', 'config.toml'), 'model = "future-codex-model"\nmodel_reasoning_effort = "medium"\nmodel_provider = "codex-lb"\n');
|
|
15
15
|
await fs.writeFile(path.join(codexHome, 'config.toml'), '# SKS forced fast UI during legacy install\nmodel = "legacy-sks-model"\nmodel_reasoning_effort = "xhigh"\nmodel_provider = "codex-lb"\nservice_tier = "fast"\n[features]\nfast_mode = false # user disabled, must remain untouched\n\n[profiles.sks-fast-high]\nmodel = "legacy-profile-model"\nservice_tier = "fast"\n\n[model_providers.codex-lb]\nname = "openai"\nbase_url = "https://lb.example.test/backend-api/codex"\nwire_api = "responses"\nenv_key = "CODEX_LB_API_KEY"\nsupports_websockets = true\nrequires_openai_auth = true\n');
|
|
16
|
-
// Keep this hermetic: selected codex-lb readiness must not inherit the release
|
|
17
|
-
// runner's machine credentials or perform a real model-catalog lookup.
|
|
18
16
|
const fixtureEnv = {};
|
|
19
17
|
const plan = await repairCodexAppFastUi(root, { codexHome, apply: false, env: fixtureEnv });
|
|
20
18
|
const repaired = await repairCodexAppFastUi(root, { codexHome, apply: true, env: fixtureEnv });
|
|
@@ -38,8 +36,6 @@ const ok = plan.fast_selector === 'manual_action_required'
|
|
|
38
36
|
&& plan.provider_actions.includes('sks codex-lb setup --host <domain> --api-key-stdin --yes')
|
|
39
37
|
&& plan.safe_auto_apply === true
|
|
40
38
|
&& repaired.fast_selector === 'repaired'
|
|
41
|
-
// Contract-valid codex-lb selection is preserved through Fast UI repair; without
|
|
42
|
-
// hermetic credentials/catalog the selected provider stays setup-required.
|
|
43
39
|
&& repaired.provider_selector === 'manual_action_required'
|
|
44
40
|
&& repaired.selected_provider_blockers.includes('codex_lb_api_key_missing')
|
|
45
41
|
&& repaired.selected_provider_blockers.includes('codex_lb_base_url_missing')
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
2
|
import fs from 'node:fs';
|
|
4
3
|
import path from 'node:path';
|
|
5
4
|
const args = process.argv.slice(2);
|
|
@@ -15,10 +14,6 @@ catch (err) {
|
|
|
15
14
|
if (process.env.SKS_FAKE_CODEX_CONFIG_EPERM === '1') {
|
|
16
15
|
emitConfigError(`Failed to read project config file ${configPath}: Operation not permitted (os error 1)`);
|
|
17
16
|
}
|
|
18
|
-
// Simulate the Codex 0.140 stdio/url merge conflict: when the project config still
|
|
19
|
-
// defines Context7 as a local stdio server (a `command`), Codex merges it with the
|
|
20
|
-
// remote `url` in the global config and rejects the result. Once the doctor migrates
|
|
21
|
-
// Context7 to the remote `url` transport (no `command`), the load succeeds.
|
|
22
17
|
if (process.env.SKS_FAKE_CODEX_CONFIG_CONTEXT7_STDIO_CONFLICT === '1') {
|
|
23
18
|
const context7 = configText.match(/\[mcp_servers\.context7\][^[]*/)?.[0] || '';
|
|
24
19
|
if (/^\s*command\s*=/m.test(context7) || /@upstash\/context7-mcp/.test(context7)) {
|