sneakoscope 2.0.13 → 2.0.15
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 +6 -3
- package/crates/sks-core/Cargo.lock +1 -1
- package/crates/sks-core/Cargo.toml +1 -1
- package/crates/sks-core/src/main.rs +1 -1
- package/dist/.sks-build-stamp.json +4 -4
- package/dist/bin/sks.js +1 -1
- package/dist/cli/command-registry.js +1 -0
- package/dist/commands/mad-db.js +5 -0
- package/dist/commands/zellij-slot-pane.js +3 -1
- package/dist/core/agents/agent-orchestrator.js +11 -4
- package/dist/core/agents/agent-output-validator.js +1 -1
- package/dist/core/agents/agent-plan.js +3 -2
- package/dist/core/agents/native-cli-session-swarm.js +118 -0
- package/dist/core/agents/native-cli-worker.js +85 -0
- package/dist/core/codex-control/codex-fake-sdk-adapter.js +3 -3
- package/dist/core/codex-control/gpt-final-review-schema.js +61 -14
- package/dist/core/commands/basic-cli.js +1 -1
- package/dist/core/commands/command-suggestions.js +1 -1
- package/dist/core/commands/mad-db-command.js +106 -0
- package/dist/core/commands/mad-sks-command.js +50 -13
- package/dist/core/commands/naruto-command.js +82 -1
- package/dist/core/commands/research-command.js +83 -17
- package/dist/core/commands/team-command.js +25 -1
- package/dist/core/db-safety.js +26 -0
- package/dist/core/fsx.js +1 -1
- package/dist/core/mad-db/mad-db-capability.js +84 -0
- package/dist/core/mad-db/mad-db-ledger.js +17 -0
- package/dist/core/mad-db/mad-db-policy-resolver.js +46 -0
- package/dist/core/naruto/naruto-real-worker-child.js +11 -3
- package/dist/core/naruto/naruto-real-worker-runtime.js +4 -0
- package/dist/core/pipeline/final-gpt-patch-stage.js +20 -3
- package/dist/core/pipeline-internals/runtime-core.js +74 -8
- package/dist/core/pipeline-internals/runtime-gates.js +44 -0
- package/dist/core/proof/route-proof-gate.js +5 -3
- package/dist/core/proof/route-proof-policy.js +9 -1
- package/dist/core/release/release-gate-affected-selector.js +113 -0
- package/dist/core/release/release-gate-batch-runner.js +67 -0
- package/dist/core/release/release-gate-dag.js +22 -3
- package/dist/core/release/release-gate-resource-governor.js +23 -11
- package/dist/core/research/implementation-blueprint-densifier.js +124 -0
- package/dist/core/research/implementation-blueprint-markdown.js +1 -1
- package/dist/core/research/implementation-blueprint.js +68 -7
- package/dist/core/research/research-claim-builder.js +114 -0
- package/dist/core/research/research-cycle-runner.js +115 -11
- package/dist/core/research/research-final-reviewer.js +181 -1
- package/dist/core/research/research-handoff.js +69 -5
- package/dist/core/research/research-realistic-report.js +162 -0
- package/dist/core/research/research-repetition-detector.js +75 -0
- package/dist/core/research/research-report-quality.js +27 -5
- package/dist/core/research/research-source-ledger-merge.js +186 -0
- package/dist/core/research/research-source-shards.js +176 -0
- package/dist/core/research/research-stage-runner.js +537 -11
- package/dist/core/research/research-synthesis-prompt.js +52 -0
- package/dist/core/research/research-synthesis-writer.js +208 -0
- package/dist/core/research/research-work-graph.js +114 -23
- package/dist/core/research.js +72 -48
- package/dist/core/routes.js +23 -19
- package/dist/core/update/update-notice.js +120 -0
- package/dist/core/version.js +1 -1
- package/dist/core/zellij/zellij-dashboard-renderer.js +2 -0
- package/dist/core/zellij/zellij-slot-column-anchor.js +35 -1
- package/dist/core/zellij/zellij-slot-pane-renderer.js +57 -0
- package/dist/core/zellij/zellij-slot-telemetry.js +182 -0
- package/dist/scripts/release-gate-dag-runner.js +5 -0
- package/dist/scripts/release-speed-summary.js +25 -0
- package/package.json +67 -5
- package/schemas/codex/agent-result.schema.json +1 -1
- package/schemas/mad-db/mad-db-capability.schema.json +31 -0
- package/schemas/mad-db/mad-db-ledger.schema.json +14 -0
- package/schemas/research/implementation-blueprint.schema.json +6 -1
- package/schemas/research/research-final-review.schema.json +10 -0
- package/schemas/research/research-source-shard.schema.json +46 -0
- package/schemas/research/research-synthesis-output.schema.json +62 -0
- package/schemas/update/update-notice.schema.json +19 -0
- package/schemas/zellij/zellij-slot-telemetry.schema.json +89 -0
- package/dist/build-manifest.json +0 -1184
- package/dist/scripts/agent-ast-aware-work-graph-check.js +0 -25
- package/dist/scripts/agent-backfill-replenishment-check.js +0 -13
- package/dist/scripts/agent-backfill-route-blackbox.js +0 -5
- package/dist/scripts/agent-background-terminals-check.js +0 -16
- package/dist/scripts/agent-cleanup-command-ux-check.js +0 -12
- package/dist/scripts/agent-cleanup-executor-check.js +0 -53
- package/dist/scripts/agent-cleanup-executor-v2-check.js +0 -39
- package/dist/scripts/agent-cli-options-to-task-graph-check.js +0 -5
- package/dist/scripts/agent-codex-app-cockpit-check.js +0 -91
- package/dist/scripts/agent-codex-child-overlap-check.js +0 -21
- package/dist/scripts/agent-dynamic-cockpit-check.js +0 -10
- package/dist/scripts/agent-dynamic-pool-check.js +0 -13
- package/dist/scripts/agent-dynamic-pool-route-blackbox.js +0 -5
- package/dist/scripts/agent-fast-mode-default-check.js +0 -62
- package/dist/scripts/agent-fast-mode-worker-propagation-check.js +0 -7
- package/dist/scripts/agent-follow-up-work-schema-check.js +0 -80
- package/dist/scripts/agent-goal-mode-propagation-check.js +0 -9
- package/dist/scripts/agent-intelligent-work-graph-check.js +0 -25
- package/dist/scripts/agent-janitor-check.js +0 -76
- package/dist/scripts/agent-main-no-scout-check.js +0 -11
- package/dist/scripts/agent-model-authored-patch-envelope-check.js +0 -15
- package/dist/scripts/agent-multi-project-isolation-check.js +0 -86
- package/dist/scripts/agent-native-cli-session-proof-check.js +0 -7
- package/dist/scripts/agent-native-cli-session-swarm-10-check.js +0 -7
- package/dist/scripts/agent-native-cli-session-swarm-20-check.js +0 -7
- package/dist/scripts/agent-native-cli-session-swarm-check.js +0 -7
- package/dist/scripts/agent-no-subagent-scaling-check.js +0 -7
- package/dist/scripts/agent-parallel-write-blackbox.js +0 -56
- package/dist/scripts/agent-parallel-write-kernel-check.js +0 -103
- package/dist/scripts/agent-patch-conflict-rebase-check.js +0 -198
- package/dist/scripts/agent-patch-envelope-extraction-check.js +0 -17
- package/dist/scripts/agent-patch-proof-check.js +0 -41
- package/dist/scripts/agent-patch-proof-runtime-check.js +0 -63
- package/dist/scripts/agent-patch-queue-runtime-check.js +0 -36
- package/dist/scripts/agent-patch-rollback-check.js +0 -38
- package/dist/scripts/agent-patch-rollback-dag-check.js +0 -14
- package/dist/scripts/agent-patch-swarm-route-blackbox.js +0 -10
- package/dist/scripts/agent-patch-swarm-runtime-check.js +0 -10
- package/dist/scripts/agent-patch-swarm-runtime-truth-check.js +0 -76
- package/dist/scripts/agent-patch-transaction-journal-check.js +0 -57
- package/dist/scripts/agent-patch-verification-dag-check.js +0 -14
- package/dist/scripts/agent-proof-contract-reconciled-check.js +0 -5
- package/dist/scripts/agent-real-codex-dynamic-smoke-check.js +0 -166
- package/dist/scripts/agent-real-codex-dynamic-smoke-v2-check.js +0 -14
- package/dist/scripts/agent-real-codex-in-zellij-worker-pane-check.js +0 -229
- package/dist/scripts/agent-real-codex-parallel-workers-10-check.js +0 -5
- package/dist/scripts/agent-real-codex-parallel-workers-20-check.js +0 -5
- package/dist/scripts/agent-real-codex-parallel-workers-5-check.js +0 -5
- package/dist/scripts/agent-real-codex-parallel-workers-check.js +0 -5
- package/dist/scripts/agent-role-config-repair-check.js +0 -33
- package/dist/scripts/agent-rollback-command-check.js +0 -86
- package/dist/scripts/agent-route-truth-backfill-check.js +0 -5
- package/dist/scripts/agent-scheduler-proof-check.js +0 -13
- package/dist/scripts/agent-scheduler-proof-hardening-check.js +0 -22
- package/dist/scripts/agent-session-generation-check.js +0 -21
- package/dist/scripts/agent-slot-pane-binding-proof-check.js +0 -64
- package/dist/scripts/agent-source-intelligence-propagation-check.js +0 -9
- package/dist/scripts/agent-strategy-to-lease-wiring-check.js +0 -32
- package/dist/scripts/agent-strategy-to-patch-strict-check.js +0 -54
- package/dist/scripts/agent-task-graph-expansion-check.js +0 -14
- package/dist/scripts/agent-terminal-generations-check.js +0 -23
- package/dist/scripts/agent-visual-consistency-check.js +0 -9
- package/dist/scripts/agent-wiki-context-proof-check.js +0 -62
- package/dist/scripts/agent-worker-backend-router-check.js +0 -63
- package/dist/scripts/agent-worker-scout-limited-check.js +0 -17
- package/dist/scripts/agent-zellij-dynamic-backfill-panes-check.js +0 -34
- package/dist/scripts/agent-zellij-runtime-check.js +0 -84
- package/dist/scripts/all-feature-deep-completion-check.js +0 -31
- package/dist/scripts/appshots-capability-check.js +0 -18
- package/dist/scripts/appshots-evidence-check.js +0 -48
- package/dist/scripts/appshots-operator-policy-check.js +0 -25
- package/dist/scripts/appshots-privacy-safety-check.js +0 -48
- package/dist/scripts/appshots-source-intelligence-check.js +0 -53
- package/dist/scripts/appshots-thread-attachment-discovery-check.js +0 -87
- package/dist/scripts/appshots-triwiki-voxel-check.js +0 -46
- package/dist/scripts/architecture-guard-check.js +0 -55
- package/dist/scripts/changelog-check.js +0 -47
- package/dist/scripts/codex-0-133-official-compat-report.js +0 -53
- package/dist/scripts/codex-0-134-official-compat-report.js +0 -110
- package/dist/scripts/codex-0-134-runner-truth-check.js +0 -66
- package/dist/scripts/codex-0-135-compat-check.js +0 -57
- package/dist/scripts/codex-0-136-compat-check.js +0 -30
- package/dist/scripts/codex-0-137-compat-check.js +0 -27
- package/dist/scripts/codex-app-fast-ui-preservation-check.js +0 -32
- package/dist/scripts/codex-app-provider-badge-check.js +0 -37
- package/dist/scripts/codex-app-ui-clobber-guard-check.js +0 -22
- package/dist/scripts/codex-app-ui-preservation-check.js +0 -96
- package/dist/scripts/codex-control-all-pipelines-check.js +0 -36
- package/dist/scripts/codex-control-capability-check.js +0 -10
- package/dist/scripts/codex-control-empty-result-retry-check.js +0 -43
- package/dist/scripts/codex-control-event-stream-ledger-check.js +0 -10
- package/dist/scripts/codex-control-keepalive-no-cot-leak-check.js +0 -14
- package/dist/scripts/codex-control-no-legacy-fallback-check.js +0 -31
- package/dist/scripts/codex-control-side-effect-scope-check.js +0 -26
- package/dist/scripts/codex-control-stream-idle-watchdog-check.js +0 -18
- package/dist/scripts/codex-control-structured-output-check.js +0 -11
- package/dist/scripts/codex-control-thread-registry-check.js +0 -11
- package/dist/scripts/codex-control-tool-call-sequence-repair-check.js +0 -14
- package/dist/scripts/codex-environment-scoped-approvals-check.js +0 -10
- package/dist/scripts/codex-exec-output-schema-actual-syntax-check.js +0 -33
- package/dist/scripts/codex-fast-mode-profile-propagation-check.js +0 -12
- package/dist/scripts/codex-history-search-check.js +0 -19
- package/dist/scripts/codex-hook-semantic-check.js +0 -15
- package/dist/scripts/codex-hook-strict-subset-check.js +0 -61
- package/dist/scripts/codex-lb-config-toml-safety-check.js +0 -85
- package/dist/scripts/codex-lb-persistence-truth-check.js +0 -96
- package/dist/scripts/codex-lb-setup-fixture-check.js +0 -91
- package/dist/scripts/codex-lb-setup-truthfulness-check.js +0 -84
- package/dist/scripts/codex-legacy-profile-consumers-removed-check.js +0 -24
- package/dist/scripts/codex-managed-proxy-env-check.js +0 -17
- package/dist/scripts/codex-output-schema-fixture-check.js +0 -25
- package/dist/scripts/codex-permission-profiles-check.js +0 -36
- package/dist/scripts/codex-plugin-list-json-check.js +0 -8
- package/dist/scripts/codex-profile-primary-check.js +0 -13
- package/dist/scripts/codex-project-config-policy-splitter-check.js +0 -51
- package/dist/scripts/codex-resume-cwd-truth-check.js +0 -17
- package/dist/scripts/codex-sdk-all-pipelines-check.js +0 -32
- package/dist/scripts/codex-sdk-backend-router-check.js +0 -65
- package/dist/scripts/codex-sdk-capability-check.js +0 -11
- package/dist/scripts/codex-sdk-core-skill-pipeline-check.js +0 -9
- package/dist/scripts/codex-sdk-dfix-pipeline-check.js +0 -9
- package/dist/scripts/codex-sdk-event-stream-ledger-check.js +0 -9
- package/dist/scripts/codex-sdk-no-legacy-fallback-check.js +0 -33
- package/dist/scripts/codex-sdk-qa-pipeline-check.js +0 -8
- package/dist/scripts/codex-sdk-real-smoke-check.js +0 -39
- package/dist/scripts/codex-sdk-release-review-pipeline-check.js +0 -13
- package/dist/scripts/codex-sdk-research-pipeline-check.js +0 -15
- package/dist/scripts/codex-sdk-sandbox-policy-check.js +0 -21
- package/dist/scripts/codex-sdk-structured-output-check.js +0 -10
- package/dist/scripts/codex-sdk-team-naruto-agent-pipeline-check.js +0 -12
- package/dist/scripts/codex-sdk-thread-registry-check.js +0 -11
- package/dist/scripts/codex-sdk-ux-ppt-review-pipeline-check.js +0 -9
- package/dist/scripts/codex-sdk-zellij-pane-binding-check.js +0 -13
- package/dist/scripts/codex-thread-runtime-choice-check.js +0 -10
- package/dist/scripts/codex-web-adapter-check.js +0 -12
- package/dist/scripts/computer-use-live-evidence-check.js +0 -55
- package/dist/scripts/computer-use-live-optional-check.js +0 -32
- package/dist/scripts/computer-use-policy-check.js +0 -69
- package/dist/scripts/computer-use-visual-route-fixture-check.js +0 -37
- package/dist/scripts/core-skill-card-schema-check.js +0 -61
- package/dist/scripts/core-skill-deployment-snapshot-check.js +0 -54
- package/dist/scripts/core-skill-heldout-validation-check.js +0 -49
- package/dist/scripts/core-skill-no-inference-optimizer-check.js +0 -75
- package/dist/scripts/core-skill-patch-check.js +0 -79
- package/dist/scripts/core-skill-promotion-side-effect-ledger-check.js +0 -64
- package/dist/scripts/core-skill-rollout-scoring-check.js +0 -72
- package/dist/scripts/core-skill-route-runtime-integration-check.js +0 -49
- package/dist/scripts/dfix-fast-blackbox-check.js +0 -37
- package/dist/scripts/dfix-fast-kernel-check.js +0 -26
- package/dist/scripts/dfix-fixture-check.js +0 -6
- package/dist/scripts/dfix-parallel-write-blackbox.js +0 -48
- package/dist/scripts/dfix-patch-handoff-check.js +0 -13
- package/dist/scripts/dfix-patch-swarm-route-blackbox.js +0 -10
- package/dist/scripts/dfix-performance-check.js +0 -15
- package/dist/scripts/dfix-verification-check.js +0 -9
- package/dist/scripts/dfix-verification-recommendation-check.js +0 -15
- package/dist/scripts/docs-truthfulness-check.js +0 -61
- package/dist/scripts/doctor-codex-doctor-parity-check.js +0 -17
- package/dist/scripts/doctor-fix-proves-codex-read-check.js +0 -64
- package/dist/scripts/doctor-fix-recovers-corrupted-config-check.js +0 -122
- package/dist/scripts/doctor-fixes-codex-app-fast-ui-check.js +0 -39
- package/dist/scripts/evidence-fixture-check.js +0 -26
- package/dist/scripts/evidence-flagship-coverage-check.js +0 -55
- package/dist/scripts/fake-real-proof-policy-v2-check.js +0 -27
- package/dist/scripts/fake-vs-real-proof-policy-check.js +0 -14
- package/dist/scripts/fast-codex-service-tier-proof-check.js +0 -42
- package/dist/scripts/flagship-proof-graph-v2-check.js +0 -48
- package/dist/scripts/flagship-proof-graph-v3-check.js +0 -67
- package/dist/scripts/flagship-proof-graph-v4-check.js +0 -61
- package/dist/scripts/git-precommit-fixture-check.js +0 -41
- package/dist/scripts/git-worktree-cache-performance-check.js +0 -25
- package/dist/scripts/git-worktree-capability-check.js +0 -27
- package/dist/scripts/git-worktree-checkpoint-check.js +0 -20
- package/dist/scripts/git-worktree-cleanup-check.js +0 -27
- package/dist/scripts/git-worktree-cross-rebase-check.js +0 -39
- package/dist/scripts/git-worktree-diff-envelope-check.js +0 -17
- package/dist/scripts/git-worktree-diff-export-check.js +0 -43
- package/dist/scripts/git-worktree-dirty-lock-check.js +0 -17
- package/dist/scripts/git-worktree-dirty-main-detection-check.js +0 -14
- package/dist/scripts/git-worktree-integration-primary-check.js +0 -24
- package/dist/scripts/git-worktree-integration-primary-runtime-check.js +0 -20
- package/dist/scripts/git-worktree-manager-check.js +0 -37
- package/dist/scripts/git-worktree-manifest-append-check.js +0 -18
- package/dist/scripts/git-worktree-merge-queue-check.js +0 -31
- package/dist/scripts/git-worktree-pool-performance-check.js +0 -20
- package/dist/scripts/git-worktree-untracked-diff-check.js +0 -18
- package/dist/scripts/goal-mode-official-default-check.js +0 -12
- package/dist/scripts/gpt-final-arbiter-check.js +0 -63
- package/dist/scripts/gpt-final-arbiter-performance-check.js +0 -36
- package/dist/scripts/gpt-image-2-request-validator-check.js +0 -35
- package/dist/scripts/hooks-0.134-context-parity-check.js +0 -20
- package/dist/scripts/hooks-actual-parity-check.js +0 -17
- package/dist/scripts/hooks-actual-parity-v2-check.js +0 -21
- package/dist/scripts/hooks-latest-schema-check.js +0 -20
- package/dist/scripts/hooks-managed-install-fixture-check.js +0 -21
- package/dist/scripts/hooks-official-hash-oracle-check.js +0 -35
- package/dist/scripts/hooks-official-hash-parity-check.js +0 -17
- package/dist/scripts/hooks-subagent-events-check.js +0 -17
- package/dist/scripts/hooks-trust-state-check.js +0 -14
- package/dist/scripts/image-fidelity-fixture-check.js +0 -24
- package/dist/scripts/imagegen-capability-check.js +0 -30
- package/dist/scripts/imagegen-real-smoke-check.js +0 -155
- package/dist/scripts/install-update-preserves-config-check.js +0 -87
- package/dist/scripts/json-schema-recursive-check.js +0 -78
- package/dist/scripts/legacy-multiagent-removal-check.js +0 -85
- package/dist/scripts/legacy-upgrade-matrix-check.js +0 -300
- package/dist/scripts/local-collab-all-pipelines-final-gpt-check.js +0 -21
- package/dist/scripts/local-collab-gpt-final-availability-check.js +0 -58
- package/dist/scripts/local-collab-no-local-only-final-check.js +0 -27
- package/dist/scripts/local-collab-policy-check.js +0 -17
- package/dist/scripts/local-collab-worktree-gpt-final-apply-policy-check.js +0 -63
- package/dist/scripts/local-llm-all-pipelines-check.js +0 -11
- package/dist/scripts/local-llm-cache-performance-check.js +0 -10
- package/dist/scripts/local-llm-capability-check.js +0 -14
- package/dist/scripts/local-llm-smoke-check.js +0 -23
- package/dist/scripts/local-llm-structured-output-check.js +0 -11
- package/dist/scripts/local-llm-throughput-check.js +0 -10
- package/dist/scripts/local-llm-tool-call-repair-check.js +0 -10
- package/dist/scripts/local-llm-warmup-check.js +0 -11
- package/dist/scripts/loop-blocker-check.js +0 -15
- package/dist/scripts/mad-preflight-blocks-unreadable-config-check.js +0 -35
- package/dist/scripts/mad-sks-actual-executor-blackbox.js +0 -5
- package/dist/scripts/mad-sks-app-ui-no-mutation-check.js +0 -92
- package/dist/scripts/mad-sks-audit-proof-check.js +0 -34
- package/dist/scripts/mad-sks-db-executor-check.js +0 -5
- package/dist/scripts/mad-sks-executor-proof-graph-check.js +0 -5
- package/dist/scripts/mad-sks-fast-mode-propagation-check.js +0 -24
- package/dist/scripts/mad-sks-file-write-executor-check.js +0 -5
- package/dist/scripts/mad-sks-immutable-harness-check.js +0 -36
- package/dist/scripts/mad-sks-no-harness-modification-check.js +0 -25
- package/dist/scripts/mad-sks-package-executor-check.js +0 -5
- package/dist/scripts/mad-sks-permission-model-check.js +0 -22
- package/dist/scripts/mad-sks-rollback-apply-check.js +0 -5
- package/dist/scripts/mad-sks-service-executor-check.js +0 -5
- package/dist/scripts/mad-sks-shell-executor-check.js +0 -5
- package/dist/scripts/mad-sks-write-guard-check.js +0 -28
- package/dist/scripts/mad-sks-zellij-default-pane-worker-check.js +0 -37
- package/dist/scripts/mad-sks-zellij-launch-check.js +0 -102
- package/dist/scripts/mcp-0-134-modernization-check.js +0 -55
- package/dist/scripts/mcp-readonly-concurrency-check.js +0 -17
- package/dist/scripts/mcp-readonly-runtime-scheduler-check.js +0 -20
- package/dist/scripts/mcp-tool-naming-parity-check.js +0 -16
- package/dist/scripts/memory-summary-rebuild-check.js +0 -22
- package/dist/scripts/mutation-callsite-coverage-check.js +0 -180
- package/dist/scripts/naruto-active-pool-check.js +0 -39
- package/dist/scripts/naruto-actual-worker-control-plane-check.js +0 -56
- package/dist/scripts/naruto-allocation-policy-check.js +0 -33
- package/dist/scripts/naruto-allocation-runtime-wiring-check.js +0 -92
- package/dist/scripts/naruto-concurrency-governor-check.js +0 -53
- package/dist/scripts/naruto-extreme-parallelism-check.js +0 -22
- package/dist/scripts/naruto-extreme-parallelism-real-check.js +0 -43
- package/dist/scripts/naruto-gpt-final-pack-check.js +0 -34
- package/dist/scripts/naruto-orchestrator-runtime-source-check.js +0 -70
- package/dist/scripts/naruto-parallel-patch-apply-check.js +0 -41
- package/dist/scripts/naruto-readonly-routing-check.js +0 -116
- package/dist/scripts/naruto-real-active-pool-check.js +0 -39
- package/dist/scripts/naruto-real-active-pool-runtime-check.js +0 -55
- package/dist/scripts/naruto-rebalance-policy-check.js +0 -41
- package/dist/scripts/naruto-role-distribution-check.js +0 -23
- package/dist/scripts/naruto-shadow-clone-swarm-check.js +0 -153
- package/dist/scripts/naruto-verification-pool-check.js +0 -36
- package/dist/scripts/naruto-work-graph-check.js +0 -24
- package/dist/scripts/naruto-worktree-coding-blackbox.js +0 -29
- package/dist/scripts/naruto-worktree-coding-check.js +0 -44
- package/dist/scripts/naruto-worktree-gpt-final-check.js +0 -45
- package/dist/scripts/naruto-worktree-zellij-ui-check.js +0 -28
- package/dist/scripts/naruto-zellij-dynamic-right-column-check.js +0 -48
- package/dist/scripts/naruto-zellij-massive-ui-check.js +0 -23
- package/dist/scripts/non-recursive-pipeline-check.js +0 -68
- package/dist/scripts/npm-publish-performance-check.js +0 -65
- package/dist/scripts/official-docs-compat-report.js +0 -304
- package/dist/scripts/packlist-performance-check.js +0 -83
- package/dist/scripts/parallel-verification-engine-check.js +0 -85
- package/dist/scripts/postinstall-safe-side-effects-check.js +0 -65
- package/dist/scripts/ppt-full-e2e-artifact-graph-check.js +0 -40
- package/dist/scripts/ppt-full-e2e-blackbox-check.js +0 -109
- package/dist/scripts/ppt-image-voxel-relations-check.js +0 -9
- package/dist/scripts/ppt-imagegen-blackbox-check.js +0 -46
- package/dist/scripts/ppt-imagegen-review-fixture-check.js +0 -6
- package/dist/scripts/ppt-issue-extraction-fixture-check.js +0 -7
- package/dist/scripts/ppt-no-mock-as-real-check.js +0 -8
- package/dist/scripts/ppt-no-text-fallback-check.js +0 -7
- package/dist/scripts/ppt-proof-trust-fixture-check.js +0 -10
- package/dist/scripts/ppt-real-export-adapter-check.js +0 -13
- package/dist/scripts/ppt-real-imagegen-smoke-check.js +0 -42
- package/dist/scripts/ppt-real-imagegen-wiring-check.js +0 -16
- package/dist/scripts/ppt-reexport-rereview-check.js +0 -19
- package/dist/scripts/ppt-slide-export-fixture-check.js +0 -7
- package/dist/scripts/prepublish-fast-check.js +0 -128
- package/dist/scripts/priority-full-closure-check.js +0 -12
- package/dist/scripts/product-design-auto-install-check.js +0 -119
- package/dist/scripts/product-design-plugin-routing-check.js +0 -101
- package/dist/scripts/prompt-placeholder-guard-check.js +0 -33
- package/dist/scripts/provider-badge-context-check.js +0 -26
- package/dist/scripts/provider-context-config-toml-check.js +0 -63
- package/dist/scripts/python-codex-sdk-all-pipelines-check.js +0 -47
- package/dist/scripts/python-codex-sdk-capability-check.js +0 -75
- package/dist/scripts/python-codex-sdk-sandbox-policy-check.js +0 -10
- package/dist/scripts/python-codex-sdk-stream-bridge-check.js +0 -12
- package/dist/scripts/python-tools-smoke-check.js +0 -71
- package/dist/scripts/qa-actual-route-backfill-check.js +0 -5
- package/dist/scripts/qa-backfill-route-blackbox.js +0 -5
- package/dist/scripts/qa-patch-swarm-route-blackbox.js +0 -10
- package/dist/scripts/readme-architecture-imagegen-official-check.js +0 -448
- package/dist/scripts/release-cache-glob-hashing-check.js +0 -42
- package/dist/scripts/release-dag-full-coverage-check.js +0 -53
- package/dist/scripts/release-dist-freshness-check.js +0 -8
- package/dist/scripts/release-dynamic-performance-check.js +0 -103
- package/dist/scripts/release-gate-budget-check.js +0 -36
- package/dist/scripts/release-gate-dag-runner-check.js +0 -17
- package/dist/scripts/release-metadata-1-11-check.js +0 -37
- package/dist/scripts/release-metadata-1-12-check.js +0 -48
- package/dist/scripts/release-metadata-1-13-check.js +0 -53
- package/dist/scripts/release-metadata-1-14-check.js +0 -63
- package/dist/scripts/release-metadata-1-16-check.js +0 -81
- package/dist/scripts/release-metadata-1-17-check.js +0 -51
- package/dist/scripts/release-metadata-1-19-check.js +0 -371
- package/dist/scripts/release-metadata-check.js +0 -7
- package/dist/scripts/release-native-agent-fixture-check.js +0 -41
- package/dist/scripts/release-parallel-check.js +0 -374
- package/dist/scripts/release-parallel-full-coverage-check.js +0 -13
- package/dist/scripts/release-parallel-speed-budget-check.js +0 -79
- package/dist/scripts/release-provenance-check.js +0 -150
- package/dist/scripts/release-readiness-report.js +0 -1146
- package/dist/scripts/release-real-check.js +0 -330
- package/dist/scripts/release-registry-check.js +0 -344
- package/dist/scripts/release-runtime-truth-matrix-check.js +0 -47
- package/dist/scripts/release-stability-report-check.js +0 -99
- package/dist/scripts/release-version-truth-check.js +0 -134
- package/dist/scripts/research-actual-route-backfill-check.js +0 -5
- package/dist/scripts/research-backfill-route-blackbox.js +0 -5
- package/dist/scripts/research-quality-gate-check.js +0 -86
- package/dist/scripts/responses-retry-policy-centralized-check.js +0 -19
- package/dist/scripts/retention-cleanup-safety-check.js +0 -155
- package/dist/scripts/route-blackbox-realism-check.js +0 -21
- package/dist/scripts/route-proof-artifact-structure-check.js +0 -145
- package/dist/scripts/runtime-dist-parity-check.js +0 -78
- package/dist/scripts/runtime-no-mjs-scripts-check.js +0 -45
- package/dist/scripts/runtime-no-src-mjs-check.js +0 -32
- package/dist/scripts/runtime-no-tmux-check.js +0 -113
- package/dist/scripts/runtime-ts-python-boundary-check.js +0 -59
- package/dist/scripts/runtime-ts-rust-boundary-check.js +0 -74
- package/dist/scripts/runtime-ts-source-of-truth-check.js +0 -55
- package/dist/scripts/safety-check.js +0 -23
- package/dist/scripts/shared-memory-fixture-check.js +0 -27
- package/dist/scripts/side-effect-runtime-report-check.js +0 -19
- package/dist/scripts/side-effect-zero-gate-check.js +0 -226
- package/dist/scripts/sks-1-11-fixture-check.js +0 -130
- package/dist/scripts/source-intelligence-all-modes-check.js +0 -32
- package/dist/scripts/source-intelligence-policy-check.js +0 -13
- package/dist/scripts/strategy-adhd-orchestrating-gate-check.js +0 -22
- package/dist/scripts/strategy-file-ownership-plan-check.js +0 -18
- package/dist/scripts/strategy-parallel-modification-plan-check.js +0 -19
- package/dist/scripts/strategy-verification-rollback-dag-check.js +0 -19
- package/dist/scripts/team-actual-route-backfill-check.js +0 -5
- package/dist/scripts/team-backfill-route-blackbox.js +0 -5
- package/dist/scripts/team-parallel-write-blackbox.js +0 -55
- package/dist/scripts/team-patch-swarm-route-blackbox.js +0 -10
- package/dist/scripts/terminal-keyboard-enhancement-safety-check.js +0 -12
- package/dist/scripts/terminal-tui-output-stability-check.js +0 -35
- package/dist/scripts/test-no-orphan-dist-imports-check.js +0 -73
- package/dist/scripts/trust-fixture-check.js +0 -33
- package/dist/scripts/typescript-migration-report.js +0 -78
- package/dist/scripts/ultra-router-auto-router-check.js +0 -33
- package/dist/scripts/ultra-router-classification-check.js +0 -28
- package/dist/scripts/ux-patch-swarm-route-blackbox.js +0 -10
- package/dist/scripts/ux-ppt-structured-extraction-check.js +0 -21
- package/dist/scripts/ux-review-extract-real-callouts-fixture-check.js +0 -8
- package/dist/scripts/ux-review-extract-wires-real-extractor-check.js +0 -15
- package/dist/scripts/ux-review-generate-callouts-fixture-check.js +0 -9
- package/dist/scripts/ux-review-image-voxel-relations-check.js +0 -31
- package/dist/scripts/ux-review-imagegen-blackbox-check.js +0 -67
- package/dist/scripts/ux-review-no-fake-callouts-check.js +0 -8
- package/dist/scripts/ux-review-no-text-fallback-check.js +0 -25
- package/dist/scripts/ux-review-patch-diff-recheck-check.js +0 -20
- package/dist/scripts/ux-review-patch-handoff-fixture-check.js +0 -8
- package/dist/scripts/ux-review-real-imagegen-smoke-check.js +0 -31
- package/dist/scripts/ux-review-real-loop-fixture-check.js +0 -24
- package/dist/scripts/ux-review-recapture-recheck-fixture-check.js +0 -8
- package/dist/scripts/ux-review-run-wires-imagegen-check.js +0 -11
- package/dist/scripts/worker-pane-communication-contract-check.js +0 -54
- package/dist/scripts/wrongness-fixture-check.js +0 -65
- package/dist/scripts/xai-mcp-capability-check.js +0 -14
- package/dist/scripts/zellij-capability-check.js +0 -15
- package/dist/scripts/zellij-dashboard-pane-check.js +0 -70
- package/dist/scripts/zellij-developer-controls-check.js +0 -20
- package/dist/scripts/zellij-doctor-readiness-check.js +0 -63
- package/dist/scripts/zellij-dynamic-pane-lifecycle-check.js +0 -21
- package/dist/scripts/zellij-first-slot-down-stack-check.js +0 -20
- package/dist/scripts/zellij-first-slot-down-stack-real-check.js +0 -356
- package/dist/scripts/zellij-initial-main-only-blackbox.js +0 -28
- package/dist/scripts/zellij-lane-renderer-check.js +0 -65
- package/dist/scripts/zellij-launch-command-truth-check.js +0 -75
- package/dist/scripts/zellij-layout-valid-check.js +0 -90
- package/dist/scripts/zellij-pane-proof-check.js +0 -59
- package/dist/scripts/zellij-real-session-cleanup-check.js +0 -21
- package/dist/scripts/zellij-real-session-heartbeat-check.js +0 -49
- package/dist/scripts/zellij-real-session-launch-check.js +0 -57
- package/dist/scripts/zellij-right-column-headless-overflow-check.js +0 -22
- package/dist/scripts/zellij-right-column-manager-check.js +0 -27
- package/dist/scripts/zellij-screen-proof-check.js +0 -45
- package/dist/scripts/zellij-slot-column-anchor-check.js +0 -66
- package/dist/scripts/zellij-slot-only-ui-check.js +0 -26
- package/dist/scripts/zellij-slot-pane-renderer-check.js +0 -106
- package/dist/scripts/zellij-slot-renderer-proof-semantics-check.js +0 -59
- package/dist/scripts/zellij-spawn-on-demand-layout-check.js +0 -40
- package/dist/scripts/zellij-ui-design-check.js +0 -105
- package/dist/scripts/zellij-worker-pane-manager-check.js +0 -109
- package/dist/scripts/zellij-worker-pane-manager-single-owner-check.js +0 -47
- package/dist/scripts/zellij-worker-pane-real-ui-blackbox.js +0 -202
- package/dist/scripts/zellij-worker-pane-spawn-order-check.js +0 -35
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/permission-request.command.input.schema.json +0 -61
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/permission-request.command.output.schema.json +0 -103
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-compact.command.input.schema.json +0 -52
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-compact.command.output.schema.json +0 -24
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-tool-use.command.input.schema.json +0 -67
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-tool-use.command.output.schema.json +0 -84
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-compact.command.input.schema.json +0 -52
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-compact.command.output.schema.json +0 -24
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-tool-use.command.input.schema.json +0 -65
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-tool-use.command.output.schema.json +0 -105
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/session-start.command.input.schema.json +0 -59
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/session-start.command.output.schema.json +0 -63
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/snapshot-metadata.json +0 -31
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/stop.command.input.schema.json +0 -63
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/stop.command.output.schema.json +0 -45
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/user-prompt-submit.command.input.schema.json +0 -59
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/user-prompt-submit.command.output.schema.json +0 -81
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
// Gate: legacy:upgrade-zero-break
|
|
4
|
-
// Proves a 1.18.x -> 1.19 upgrade never breaks user Codex config across legacy
|
|
5
|
-
// states. Operates entirely on temp dirs (os.tmpdir + fs.mkdtemp); never touches
|
|
6
|
-
// the real ~/.codex. Always restores process.env.CODEX_HOME / HOME in finally.
|
|
7
|
-
import fs from 'node:fs';
|
|
8
|
-
import os from 'node:os';
|
|
9
|
-
import path from 'node:path';
|
|
10
|
-
import { spawnSync } from 'node:child_process';
|
|
11
|
-
import { root, assertGate, emitGate, importDist } from './sks-1-18-gate-lib.js';
|
|
12
|
-
const policy = await importDist('core/codex/codex-project-config-policy.js');
|
|
13
|
-
const install = await importDist('cli/install-helpers.js');
|
|
14
|
-
const journal = await importDist('core/migration/migration-transaction-journal.js');
|
|
15
|
-
const skillCard = await importDist('core/skills/core-skill-card.js');
|
|
16
|
-
const skillDeployment = await importDist('core/skills/core-skill-deployment.js');
|
|
17
|
-
const { createRequestedScopeContract } = await importDist('core/safety/requested-scope-contract.js');
|
|
18
|
-
function mkTmp(prefix) {
|
|
19
|
-
return fs.mkdtempSync(path.join(os.tmpdir(), prefix));
|
|
20
|
-
}
|
|
21
|
-
function rmTmp(dir) {
|
|
22
|
-
try {
|
|
23
|
-
fs.rmSync(dir, { recursive: true, force: true });
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
// best-effort cleanup; never fail the gate on teardown
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
const tmpDirs = [];
|
|
30
|
-
const savedCodexHome = process.env.CODEX_HOME;
|
|
31
|
-
const savedHome = process.env.HOME;
|
|
32
|
-
const summary = { states: {}, generated_at: new Date().toISOString() };
|
|
33
|
-
try {
|
|
34
|
-
// ---------------------------------------------------------------------------
|
|
35
|
-
// State 6 — corrupted config (machine-local key absorbed into a TOML table).
|
|
36
|
-
// The pre-fix mover appended top-level machine-local keys after the last
|
|
37
|
-
// [table], so TOML absorbed them into that table. repairCodexConfigStructure
|
|
38
|
-
// hoists them back above the first table header.
|
|
39
|
-
// ---------------------------------------------------------------------------
|
|
40
|
-
{
|
|
41
|
-
const dir = mkTmp('sks-legacy-corrupt-');
|
|
42
|
-
tmpDirs.push(dir);
|
|
43
|
-
const configPath = path.join(dir, 'config.toml');
|
|
44
|
-
const corrupted = 'model = "gpt-5.5"\nservice_tier = "fast"\n\n[mcp_servers.xai-grok.env]\nXAI_API_KEY = "x"\nmodel_provider = "codex-lb"\nnotify = ["a","b"]\n';
|
|
45
|
-
fs.writeFileSync(configPath, corrupted, 'utf8');
|
|
46
|
-
const result = await policy.repairCodexConfigStructure(configPath, { apply: true });
|
|
47
|
-
const okStatuses = ['structure_repaired', 'structure_repair_available', 'structure_ok'];
|
|
48
|
-
assertGate(okStatuses.includes(result.status), 'corrupted_config: repair status not recognized', { status: result.status, expected: okStatuses });
|
|
49
|
-
// If it hoisted, a backup must exist on disk.
|
|
50
|
-
if (result.status === 'structure_repaired') {
|
|
51
|
-
assertGate(Boolean(result.backup_path) && fs.existsSync(result.backup_path), 'corrupted_config: repaired but no backup file on disk', { backup_path: result.backup_path });
|
|
52
|
-
}
|
|
53
|
-
// Tolerant structural check: either the keys were hoisted ABOVE the first
|
|
54
|
-
// table header, or the structure was already ok.
|
|
55
|
-
const repaired = fs.readFileSync(configPath, 'utf8');
|
|
56
|
-
const firstTableIdx = repaired.indexOf('\n[');
|
|
57
|
-
const headRegion = firstTableIdx === -1 ? repaired : repaired.slice(0, firstTableIdx);
|
|
58
|
-
const hoisted = /^\s*model_provider\s*=/m.test(headRegion) && /^\s*notify\s*=/m.test(headRegion);
|
|
59
|
-
assertGate(hoisted || result.status === 'structure_ok', 'corrupted_config: machine-local keys were not hoisted above the first table', { status: result.status, head_region: headRegion });
|
|
60
|
-
summary.states.corrupted_config = {
|
|
61
|
-
status: result.status,
|
|
62
|
-
hoisted_keys: result.hoisted_keys || [],
|
|
63
|
-
backup_present: Boolean(result.backup_path)
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
// ---------------------------------------------------------------------------
|
|
67
|
-
// States 1-4 — user global config preserved + user-disabled flags not
|
|
68
|
-
// re-enabled. ensureGlobalCodexFastModeDuringInstall reads the Codex home
|
|
69
|
-
// config (HOME/.codex/config.toml; honors opts.home). It is set-if-absent and
|
|
70
|
-
// backs up the prior good config before any mutation.
|
|
71
|
-
// ---------------------------------------------------------------------------
|
|
72
|
-
{
|
|
73
|
-
const tmpHome = mkTmp('sks-legacy-home-');
|
|
74
|
-
tmpDirs.push(tmpHome);
|
|
75
|
-
const codexDir = path.join(tmpHome, '.codex');
|
|
76
|
-
fs.mkdirSync(codexDir, { recursive: true });
|
|
77
|
-
const configPath = path.join(codexDir, 'config.toml');
|
|
78
|
-
const userConfig = 'model = "o3"\nservice_tier = "flex"\nmodel_reasoning_effort = "high"\n\n[features]\nbrowser_use = false\n\n# user comment\n';
|
|
79
|
-
fs.writeFileSync(configPath, userConfig, 'utf8');
|
|
80
|
-
process.env.CODEX_HOME = tmpHome;
|
|
81
|
-
process.env.HOME = tmpHome;
|
|
82
|
-
const result = await install.ensureGlobalCodexFastModeDuringInstall({ home: tmpHome });
|
|
83
|
-
const after = fs.readFileSync(configPath, 'utf8');
|
|
84
|
-
assertGate(after.includes('model = "o3"'), 'user_config_preserved: user model was overwritten', { status: result.status });
|
|
85
|
-
assertGate(after.includes('service_tier = "flex"'), 'user_config_preserved: user service_tier was overwritten', { status: result.status });
|
|
86
|
-
assertGate(after.includes('model_reasoning_effort = "high"'), 'user_config_preserved: user model_reasoning_effort was overwritten', { status: result.status });
|
|
87
|
-
// User-disabled feature must NOT be re-enabled (set-if-absent only).
|
|
88
|
-
assertGate(after.includes('browser_use = false'), 'flags_not_reenabled: user-disabled browser_use was re-enabled', { status: result.status });
|
|
89
|
-
// When the managed defaults were applied, the prior good config must be
|
|
90
|
-
// backed up to a sibling config.toml.*bak file.
|
|
91
|
-
if (result.status === 'updated') {
|
|
92
|
-
const siblings = fs.readdirSync(codexDir);
|
|
93
|
-
const backup = siblings.find((name) => /config\.toml\..*bak/.test(name));
|
|
94
|
-
assertGate(Boolean(backup), 'user_config_preserved: status=updated but no backup file written', { siblings });
|
|
95
|
-
summary.states.user_config_preserved = { status: result.status, backup: backup };
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
summary.states.user_config_preserved = { status: result.status };
|
|
99
|
-
}
|
|
100
|
-
summary.states.flags_not_reenabled = { browser_use_preserved: true };
|
|
101
|
-
// Restore env immediately after this state to avoid leaking into spawns.
|
|
102
|
-
if (savedCodexHome === undefined)
|
|
103
|
-
delete process.env.CODEX_HOME;
|
|
104
|
-
else
|
|
105
|
-
process.env.CODEX_HOME = savedCodexHome;
|
|
106
|
-
if (savedHome === undefined)
|
|
107
|
-
delete process.env.HOME;
|
|
108
|
-
else
|
|
109
|
-
process.env.HOME = savedHome;
|
|
110
|
-
}
|
|
111
|
-
// ---------------------------------------------------------------------------
|
|
112
|
-
// State 6b — splitter preserves project keys. The project config keeps its
|
|
113
|
-
// own [profiles.*] table; only machine-local top-level keys are moved out.
|
|
114
|
-
// ---------------------------------------------------------------------------
|
|
115
|
-
{
|
|
116
|
-
const projectRoot = mkTmp('sks-legacy-project-');
|
|
117
|
-
const tmpHome2 = mkTmp('sks-legacy-home2-');
|
|
118
|
-
tmpDirs.push(projectRoot, tmpHome2);
|
|
119
|
-
const projectCodexDir = path.join(projectRoot, '.codex');
|
|
120
|
-
fs.mkdirSync(projectCodexDir, { recursive: true });
|
|
121
|
-
const projectConfigPath = path.join(projectCodexDir, 'config.toml');
|
|
122
|
-
// Machine-local keys/tables (model_provider, [profiles.*]) move out to CODEX_HOME;
|
|
123
|
-
// project-scoped settings (sandbox_mode, [features]) must be PRESERVED in place.
|
|
124
|
-
fs.writeFileSync(projectConfigPath, 'model_provider = "codex-lb"\nsandbox_mode = "workspace-write"\n\n[features]\nhooks = true\n', 'utf8');
|
|
125
|
-
const result = await policy.splitCodexProjectConfigPolicy(projectRoot, {
|
|
126
|
-
apply: true,
|
|
127
|
-
codexHome: tmpHome2,
|
|
128
|
-
writeReport: false
|
|
129
|
-
});
|
|
130
|
-
const projectAfter = fs.readFileSync(projectConfigPath, 'utf8');
|
|
131
|
-
assertGate(projectAfter.includes('sandbox_mode = "workspace-write"'), 'splitter_preserves_project: project-scoped sandbox_mode was removed', { status: result.status, project_after: projectAfter });
|
|
132
|
-
assertGate(projectAfter.includes('[features]'), 'splitter_preserves_project: project-scoped [features] table was removed', { status: result.status, project_after: projectAfter });
|
|
133
|
-
assertGate(!/^\s*model_provider\s*=/m.test(projectAfter), 'splitter_preserves_project: machine-local model_provider was not moved out of the project config', { status: result.status, project_after: projectAfter });
|
|
134
|
-
summary.states.splitter_preserves_project = {
|
|
135
|
-
status: result.status,
|
|
136
|
-
moved_keys: result.moved_keys || [],
|
|
137
|
-
moved_tables: result.moved_tables || []
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
// ---------------------------------------------------------------------------
|
|
141
|
-
// State 7/10 — tmux is a removed runtime; zellij status is informational.
|
|
142
|
-
// Spawn the built CLI from the repo root.
|
|
143
|
-
// ---------------------------------------------------------------------------
|
|
144
|
-
{
|
|
145
|
-
const tmux = spawnSync(process.execPath, ['dist/bin/sks.js', 'tmux', '--json'], {
|
|
146
|
-
cwd: root,
|
|
147
|
-
encoding: 'utf8'
|
|
148
|
-
});
|
|
149
|
-
let tmuxJson;
|
|
150
|
-
try {
|
|
151
|
-
tmuxJson = JSON.parse(tmux.stdout);
|
|
152
|
-
}
|
|
153
|
-
catch (err) {
|
|
154
|
-
assertGate(false, 'tmux_removed_runtime: stdout is not valid JSON', {
|
|
155
|
-
stdout: tmux.stdout,
|
|
156
|
-
stderr: tmux.stderr,
|
|
157
|
-
error: String(err)
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
assertGate(tmuxJson.status === 'removed_runtime' && tmuxJson.replacement === 'zellij', 'tmux_removed_runtime: tmux did not report removed_runtime -> zellij', { json: tmuxJson });
|
|
161
|
-
assertGate(tmux.status === 2, 'tmux_removed_runtime: tmux exit code must be 2', { exit: tmux.status });
|
|
162
|
-
summary.states.tmux_removed_runtime = {
|
|
163
|
-
status: tmuxJson.status,
|
|
164
|
-
replacement: tmuxJson.replacement,
|
|
165
|
-
exit: tmux.status
|
|
166
|
-
};
|
|
167
|
-
const zj = spawnSync(process.execPath, ['dist/bin/sks.js', 'zellij', 'status', '--json'], {
|
|
168
|
-
cwd: root,
|
|
169
|
-
encoding: 'utf8'
|
|
170
|
-
});
|
|
171
|
-
let zjJson;
|
|
172
|
-
try {
|
|
173
|
-
zjJson = JSON.parse(zj.stdout);
|
|
174
|
-
}
|
|
175
|
-
catch (err) {
|
|
176
|
-
assertGate(false, 'zellij_status_informational: stdout is not valid JSON', {
|
|
177
|
-
stdout: zj.stdout,
|
|
178
|
-
stderr: zj.stderr,
|
|
179
|
-
error: String(err)
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
assertGate(Object.prototype.hasOwnProperty.call(zjJson, 'status'), 'zellij_status_informational: missing status field', { json: zjJson });
|
|
183
|
-
// Informational status must not hard-fail when zellij is missing.
|
|
184
|
-
assertGate(zjJson.ok === true, 'zellij_status_informational: informational status hard-failed (ok !== true)', { json: zjJson });
|
|
185
|
-
summary.states.zellij_status_informational = { status: zjJson.status, ok: zjJson.ok };
|
|
186
|
-
}
|
|
187
|
-
// ---------------------------------------------------------------------------
|
|
188
|
-
// Migration journal contract — before/after hash, change + rollback flags.
|
|
189
|
-
// ---------------------------------------------------------------------------
|
|
190
|
-
{
|
|
191
|
-
const ev = journal.buildMigrationEvent({
|
|
192
|
-
step: 't',
|
|
193
|
-
target: '/x/config.toml',
|
|
194
|
-
before: 'a',
|
|
195
|
-
after: 'b',
|
|
196
|
-
backupPath: '/x/config.toml.bak'
|
|
197
|
-
});
|
|
198
|
-
assertGate(Boolean(ev.before_hash) &&
|
|
199
|
-
Boolean(ev.after_hash) &&
|
|
200
|
-
ev.before_hash !== ev.after_hash &&
|
|
201
|
-
ev.changed === true &&
|
|
202
|
-
ev.rollback_available === true &&
|
|
203
|
-
ev.backup_path === '/x/config.toml.bak', 'migration_journal: mutated event contract failed', { event: ev });
|
|
204
|
-
const ev2 = journal.buildMigrationEvent({ step: 't', target: '/x', before: 'a', after: 'a' });
|
|
205
|
-
assertGate(ev2.changed === false && ev2.rollback_available === false, 'migration_journal: no-op event contract failed', { event: ev2 });
|
|
206
|
-
summary.states.migration_journal = { mutated: true, noop: true };
|
|
207
|
-
}
|
|
208
|
-
// ---------------------------------------------------------------------------
|
|
209
|
-
// State 1.19.x_zellij_project_noop — a clean 1.19.x config (no machine-local
|
|
210
|
-
// issues) is a no-op for the upgrade. repairCodexConfigStructure returns
|
|
211
|
-
// 'structure_ok' and the file is byte-identical afterwards.
|
|
212
|
-
// ---------------------------------------------------------------------------
|
|
213
|
-
{
|
|
214
|
-
const dir = mkTmp('sks-legacy-noop-');
|
|
215
|
-
tmpDirs.push(dir);
|
|
216
|
-
const configPath = path.join(dir, 'config.toml');
|
|
217
|
-
const clean = 'model = "gpt-5.5"\nservice_tier = "fast"\n\n[features]\nhooks = true\n';
|
|
218
|
-
fs.writeFileSync(configPath, clean, 'utf8');
|
|
219
|
-
const before = fs.readFileSync(configPath, 'utf8');
|
|
220
|
-
const result = await policy.repairCodexConfigStructure(configPath, { apply: true });
|
|
221
|
-
assertGate(result.status === 'structure_ok', '1.19.x_zellij_project_noop: clean config did not report structure_ok', { status: result.status });
|
|
222
|
-
const after = fs.readFileSync(configPath, 'utf8');
|
|
223
|
-
assertGate(after === before, '1.19.x_zellij_project_noop: clean config was modified by a no-op upgrade', { before, after });
|
|
224
|
-
assertGate(result.changed === false && result.applied === false && !result.backup_path, '1.19.x_zellij_project_noop: no-op upgrade reported a change/backup', { changed: result.changed, applied: result.applied, backup_path: result.backup_path });
|
|
225
|
-
summary.states['1.19.x_zellij_project_noop'] = {
|
|
226
|
-
status: result.status,
|
|
227
|
-
changed: result.changed,
|
|
228
|
-
byte_identical: true
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
// ---------------------------------------------------------------------------
|
|
232
|
-
// State existing_skill_cards_preserved — an upgrade never clobbers existing
|
|
233
|
-
// deployed skill cards. Deploy an accepted card, then read it back twice and
|
|
234
|
-
// assert the deployed snapshot's body_hash is byte-preserved across the
|
|
235
|
-
// simulated "upgrade read".
|
|
236
|
-
// ---------------------------------------------------------------------------
|
|
237
|
-
{
|
|
238
|
-
const skillRootDir = mkTmp('sks-legacy-skill-');
|
|
239
|
-
tmpDirs.push(skillRootDir);
|
|
240
|
-
const candidate = skillCard.createCandidateCard({
|
|
241
|
-
skillId: 'legacy-skill',
|
|
242
|
-
route: 'DFix',
|
|
243
|
-
baseVersion: 0,
|
|
244
|
-
body: '## Goal\nx\n'
|
|
245
|
-
});
|
|
246
|
-
const accepted = { ...candidate, status: 'accepted' };
|
|
247
|
-
const promotionContract = createRequestedScopeContract({
|
|
248
|
-
route: 'legacy-upgrade-zero-break',
|
|
249
|
-
userRequest: 'release gate fixture skill promotion',
|
|
250
|
-
projectRoot: skillRootDir,
|
|
251
|
-
overrides: { skill_snapshot_promotion: true }
|
|
252
|
-
});
|
|
253
|
-
const promote = await skillDeployment.promoteToDeployedWithLedger(skillRootDir, accepted, { contract: promotionContract, context: 'release' });
|
|
254
|
-
assertGate(promote.ok === true && promote.snapshot, 'existing_skill_cards_preserved: accepted card failed to promote to a deployed snapshot', { blockers: promote.blockers });
|
|
255
|
-
const deployed = await skillCard.loadDeployedSnapshot(skillRootDir, 'DFix', 'legacy-skill');
|
|
256
|
-
assertGate(Boolean(deployed) && deployed.status === 'deployed' && deployed.deployment_snapshot === true, 'existing_skill_cards_preserved: deployed snapshot did not load back', { deployed });
|
|
257
|
-
// Simulate an "upgrade read": loading the snapshot again must not clobber it.
|
|
258
|
-
const reread = await skillCard.loadDeployedSnapshot(skillRootDir, 'DFix', 'legacy-skill');
|
|
259
|
-
assertGate(Boolean(reread) && reread.body_hash === deployed.body_hash, 'existing_skill_cards_preserved: skill card body_hash changed across an upgrade read', { before_hash: deployed.body_hash, after_hash: reread && reread.body_hash });
|
|
260
|
-
summary.states.existing_skill_cards_preserved = {
|
|
261
|
-
promoted: true,
|
|
262
|
-
body_hash: deployed.body_hash,
|
|
263
|
-
byte_preserved: true
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
// ---------------------------------------------------------------------------
|
|
267
|
-
// Write the report and emit the gate.
|
|
268
|
-
// ---------------------------------------------------------------------------
|
|
269
|
-
const reportDir = path.join(root, '.sneakoscope', 'reports');
|
|
270
|
-
fs.mkdirSync(reportDir, { recursive: true });
|
|
271
|
-
const reportPath = path.join(reportDir, 'legacy-upgrade-matrix.json');
|
|
272
|
-
fs.writeFileSync(reportPath, `${JSON.stringify({ schema: 'sks.legacy-upgrade-matrix.v1', ok: true, ...summary }, null, 2)}\n`, 'utf8');
|
|
273
|
-
emitGate('legacy:upgrade-zero-break', {
|
|
274
|
-
report_path: reportPath,
|
|
275
|
-
states_checked: [
|
|
276
|
-
'corrupted_config',
|
|
277
|
-
'user_config_preserved',
|
|
278
|
-
'flags_not_reenabled',
|
|
279
|
-
'splitter_preserves_project',
|
|
280
|
-
'tmux_removed_runtime',
|
|
281
|
-
'zellij_status_informational',
|
|
282
|
-
'migration_journal',
|
|
283
|
-
'1.19.x_zellij_project_noop',
|
|
284
|
-
'existing_skill_cards_preserved'
|
|
285
|
-
]
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
finally {
|
|
289
|
-
for (const dir of tmpDirs)
|
|
290
|
-
rmTmp(dir);
|
|
291
|
-
if (savedCodexHome === undefined)
|
|
292
|
-
delete process.env.CODEX_HOME;
|
|
293
|
-
else
|
|
294
|
-
process.env.CODEX_HOME = savedCodexHome;
|
|
295
|
-
if (savedHome === undefined)
|
|
296
|
-
delete process.env.HOME;
|
|
297
|
-
else
|
|
298
|
-
process.env.HOME = savedHome;
|
|
299
|
-
}
|
|
300
|
-
//# sourceMappingURL=legacy-upgrade-matrix-check.js.map
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, importDist } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const finalizer = await importDist('core/pipeline/finalize-pipeline-result.js');
|
|
5
|
-
const blocked = await finalizer.finalizePipelineResult({
|
|
6
|
-
route: '$Team',
|
|
7
|
-
missionId: 'M-local-final-gpt',
|
|
8
|
-
localParticipated: true,
|
|
9
|
-
candidateResults: [{ backend: 'local-llm', summary: 'draft' }],
|
|
10
|
-
candidatePatchEnvelopes: [],
|
|
11
|
-
verificationResults: [],
|
|
12
|
-
sideEffectReport: {},
|
|
13
|
-
mutationLedger: {},
|
|
14
|
-
rollbackPlan: {},
|
|
15
|
-
applyPatches: true,
|
|
16
|
-
forceGptFinalUnavailable: true
|
|
17
|
-
});
|
|
18
|
-
assertGate(blocked.ok === false, 'local participation without GPT final must block finalization');
|
|
19
|
-
assertGate(blocked.blockers.includes('gpt_final_arbiter_required_not_passed'), 'missing GPT final blocker required');
|
|
20
|
-
emitGate('local-collab:all-pipelines-final-gpt', { final_status: blocked.final_status, blockers: blocked.blockers.length });
|
|
21
|
-
//# sourceMappingURL=local-collab-all-pipelines-final-gpt-check.js.map
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import fs from 'node:fs/promises';
|
|
4
|
-
import os from 'node:os';
|
|
5
|
-
import path from 'node:path';
|
|
6
|
-
import { assertGate, emitGate, importDist, root } from './lib/codex-sdk-gate-lib.js';
|
|
7
|
-
const arbiterMod = await importDist('core/codex-control/gpt-final-arbiter.js');
|
|
8
|
-
const doctorMod = await importDist('core/doctor/doctor-readiness-matrix.js');
|
|
9
|
-
const old = snapshotEnv();
|
|
10
|
-
try {
|
|
11
|
-
process.env.SKS_GPT_FINAL_ARBITER_UNAVAILABLE = '1';
|
|
12
|
-
const unavailable = await arbiterMod.runGptFinalArbiter(input('unavailable'), { writeArtifact: false, forceUnavailable: true });
|
|
13
|
-
assertGate(unavailable.ok === false, 'GPT unavailable fixture must block final apply');
|
|
14
|
-
assertGate(unavailable.blockers.includes('gpt_final_arbiter_unavailable'), 'GPT unavailable blocker must be present');
|
|
15
|
-
const doctor = doctorMod.buildDoctorReadinessMatrix({
|
|
16
|
-
codex: { available: false },
|
|
17
|
-
codex_config: { ok: true, checks: [] },
|
|
18
|
-
local_collaboration: { mode: 'local-parallel-gpt-final', gpt_final_arbiter_available: false }
|
|
19
|
-
});
|
|
20
|
-
assertGate(doctor.blockers.includes('gpt_final_arbiter_unavailable'), 'doctor must report gpt_final_arbiter_unavailable');
|
|
21
|
-
delete process.env.SKS_GPT_FINAL_ARBITER_UNAVAILABLE;
|
|
22
|
-
process.env.NODE_ENV = 'test';
|
|
23
|
-
process.env.SKS_CODEX_SDK_FAKE = '1';
|
|
24
|
-
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-gpt-final-available-'));
|
|
25
|
-
const available = await arbiterMod.runGptFinalArbiter(input('available'), { cwd: root, mutationLedgerRoot: tmp });
|
|
26
|
-
assertGate(available.ok === true, 'GPT available fixture must pass final arbiter');
|
|
27
|
-
emitGate('local-collab:gpt-final-availability', { unavailable: unavailable.result.status, available: available.result.status });
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
restoreEnv(old);
|
|
31
|
-
}
|
|
32
|
-
function input(label) {
|
|
33
|
-
return {
|
|
34
|
-
schema: 'sks.gpt-final-arbiter-input.v1',
|
|
35
|
-
route: '$Team',
|
|
36
|
-
mission_id: `M-${label}`,
|
|
37
|
-
local_mode: 'local-parallel-gpt-final',
|
|
38
|
-
local_outputs: [{ worker_id: 'local', backend: 'local-llm', summary: 'candidate' }],
|
|
39
|
-
candidate_patch_envelopes: [],
|
|
40
|
-
verification_results: []
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
function snapshotEnv() {
|
|
44
|
-
return {
|
|
45
|
-
NODE_ENV: process.env.NODE_ENV,
|
|
46
|
-
SKS_CODEX_SDK_FAKE: process.env.SKS_CODEX_SDK_FAKE,
|
|
47
|
-
SKS_GPT_FINAL_ARBITER_UNAVAILABLE: process.env.SKS_GPT_FINAL_ARBITER_UNAVAILABLE
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
function restoreEnv(old) {
|
|
51
|
-
for (const [key, value] of Object.entries(old)) {
|
|
52
|
-
if (value === undefined)
|
|
53
|
-
delete process.env[key];
|
|
54
|
-
else
|
|
55
|
-
process.env[key] = value;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=local-collab-gpt-final-availability-check.js.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, importDist } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const policyMod = await importDist('core/local-llm/local-collaboration-policy.js');
|
|
5
|
-
const arbiterMod = await importDist('core/codex-control/gpt-final-arbiter.js');
|
|
6
|
-
const gate = policyMod.evaluateLocalCollaborationFinalGate({
|
|
7
|
-
mode: 'local-only-draft',
|
|
8
|
-
localParticipated: true,
|
|
9
|
-
gptFinalStatus: null,
|
|
10
|
-
gptFinalAvailable: false,
|
|
11
|
-
applyPatches: true
|
|
12
|
-
});
|
|
13
|
-
assertGate(gate.ok === false, 'local-only-draft must not be final accepted');
|
|
14
|
-
assertGate(gate.final_status === 'draft_only', 'local-only-draft must end as draft_only');
|
|
15
|
-
assertGate(gate.apply_allowed === false, 'local-only-draft must block apply');
|
|
16
|
-
const result = await arbiterMod.runGptFinalArbiter({
|
|
17
|
-
schema: 'sks.gpt-final-arbiter-input.v1',
|
|
18
|
-
route: '$DFix',
|
|
19
|
-
mission_id: 'M-local-only-draft',
|
|
20
|
-
local_mode: 'local-only-draft',
|
|
21
|
-
local_outputs: [{ worker_id: 'local', backend: 'local-llm', summary: 'draft only' }],
|
|
22
|
-
candidate_patch_envelopes: []
|
|
23
|
-
}, { writeArtifact: false });
|
|
24
|
-
assertGate(result.ok === false, 'local-only-draft arbiter result must not pass');
|
|
25
|
-
assertGate(result.blockers.includes('needs_gpt_final_review'), 'local-only-draft arbiter must include needs_gpt_final_review');
|
|
26
|
-
emitGate('local-collab:no-local-only-final', { final_status: gate.final_status, blockers: result.blockers.length });
|
|
27
|
-
//# sourceMappingURL=local-collab-no-local-only-final-check.js.map
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, importDist, readText } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const policyMod = await importDist('core/local-llm/local-collaboration-policy.js');
|
|
5
|
-
const schemaText = readText('schemas/local-llm/local-collaboration-policy.schema.json');
|
|
6
|
-
const policy = policyMod.resolveLocalCollaborationPolicy({ env: {} });
|
|
7
|
-
assertGate(policy.mode === 'local-parallel-gpt-final', 'default local collaboration mode must be local-parallel-gpt-final');
|
|
8
|
-
assertGate(policy.gpt_final_required === true, 'default local collaboration mode must require GPT final');
|
|
9
|
-
assertGate(policy.final_patch_source_when_enabled === 'gpt_final_arbiter', 'final patch source must be GPT final arbiter');
|
|
10
|
-
assertGate(schemaText.includes('local-only-draft'), 'policy schema must include local-only-draft mode');
|
|
11
|
-
const draft = policyMod.resolveLocalCollaborationPolicy({ mode: 'local-only-draft' });
|
|
12
|
-
const draftGate = policyMod.evaluateLocalCollaborationFinalGate({ policy: draft, localParticipated: true, applyPatches: true });
|
|
13
|
-
assertGate(draftGate.ok === false, 'local-only-draft must not pass final gate');
|
|
14
|
-
assertGate(draftGate.blockers.includes('needs_gpt_final_review'), 'local-only-draft must carry needs_gpt_final_review');
|
|
15
|
-
assertGate(draftGate.blockers.includes('local_only_draft_apply_blocked'), 'local-only-draft must block apply');
|
|
16
|
-
emitGate('local-collab:policy', { default_mode: policy.mode, draft_blockers: draftGate.blockers.length });
|
|
17
|
-
//# sourceMappingURL=local-collab-policy-check.js.map
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate } from './sks-1-18-gate-lib.js';
|
|
4
|
-
import { gptFinalRequiredForPipeline } from '../core/pipeline/gpt-final-required.js';
|
|
5
|
-
import { finalizePipelineResult } from '../core/pipeline/finalize-pipeline-result.js';
|
|
6
|
-
import { selectFinalGptPatchSource } from '../core/pipeline/final-gpt-patch-stage.js';
|
|
7
|
-
const worktreeEnvelope = {
|
|
8
|
-
schema: 'sks.agent-patch-envelope.v1',
|
|
9
|
-
source: 'git-worktree-diff',
|
|
10
|
-
git_worktree: {
|
|
11
|
-
worktree_path: '/tmp/sks-worker',
|
|
12
|
-
changed_files: ['src/core/example.ts']
|
|
13
|
-
},
|
|
14
|
-
operations: [{ op: 'git_apply_patch', path: '.', diff: 'diff --git a/src/core/example.ts b/src/core/example.ts\n' }]
|
|
15
|
-
};
|
|
16
|
-
const requirement = gptFinalRequiredForPipeline({
|
|
17
|
-
localParticipated: false,
|
|
18
|
-
candidateResults: [{ backend: 'codex-sdk', patch_envelopes: [worktreeEnvelope] }],
|
|
19
|
-
candidatePatchEnvelopes: [worktreeEnvelope]
|
|
20
|
-
});
|
|
21
|
-
const blocked = await finalizePipelineResult({
|
|
22
|
-
route: '$Naruto',
|
|
23
|
-
missionId: 'M-worktree-gpt-final-policy',
|
|
24
|
-
localParticipated: false,
|
|
25
|
-
candidateResults: [{ backend: 'codex-sdk', patch_envelopes: [worktreeEnvelope] }],
|
|
26
|
-
candidatePatchEnvelopes: [worktreeEnvelope],
|
|
27
|
-
verificationResults: [],
|
|
28
|
-
sideEffectReport: {},
|
|
29
|
-
mutationLedger: {},
|
|
30
|
-
rollbackPlan: {},
|
|
31
|
-
applyPatches: true,
|
|
32
|
-
forceGptFinalUnavailable: true
|
|
33
|
-
});
|
|
34
|
-
const modified = selectFinalGptPatchSource({
|
|
35
|
-
result: {
|
|
36
|
-
status: 'modified',
|
|
37
|
-
modified_patch_envelopes: [{ ...worktreeEnvelope, source: 'model_authored', operations: [{ op: 'replace', path: 'src/core/example.ts', search: 'old', replace: 'new' }] }]
|
|
38
|
-
}
|
|
39
|
-
}, [worktreeEnvelope]);
|
|
40
|
-
const rejected = selectFinalGptPatchSource({ result: { status: 'rejected' } }, [worktreeEnvelope]);
|
|
41
|
-
const ok = requirement.gpt_final_required === true
|
|
42
|
-
&& requirement.worktree_participated === true
|
|
43
|
-
&& blocked.ok === false
|
|
44
|
-
&& blocked.apply_allowed === false
|
|
45
|
-
&& blocked.blockers.includes('gpt_final_arbiter_required_not_passed')
|
|
46
|
-
&& modified.ok === true
|
|
47
|
-
&& modified.final_patch_source === 'gpt_final_arbiter'
|
|
48
|
-
&& modified.patch_envelopes[0]?.source === 'model_authored'
|
|
49
|
-
&& rejected.ok === false
|
|
50
|
-
&& rejected.final_patch_source === 'blocked';
|
|
51
|
-
assertGate(ok, 'Worktree/local candidate output must require GPT Final before apply, and GPT modified/rejected decisions must control final patch source', {
|
|
52
|
-
requirement,
|
|
53
|
-
blocked,
|
|
54
|
-
modified,
|
|
55
|
-
rejected
|
|
56
|
-
});
|
|
57
|
-
emitGate('local-collab:worktree-gpt-final-apply-policy', {
|
|
58
|
-
requirement,
|
|
59
|
-
blocked_apply_allowed: blocked.apply_allowed,
|
|
60
|
-
modified_source: modified.final_patch_source,
|
|
61
|
-
rejected_source: rejected.final_patch_source
|
|
62
|
-
});
|
|
63
|
-
//# sourceMappingURL=local-collab-worktree-gpt-final-apply-policy-check.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, readText } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const router = readText('src/core/agents/native-worker-backend-router.ts');
|
|
5
|
-
const control = readText('src/core/codex-control/codex-task-runner.ts');
|
|
6
|
-
const policy = readText('src/core/local-llm/local-worker-eligibility.ts');
|
|
7
|
-
assertGate(router.includes("backend === 'local-llm'"), 'native worker router must support local-llm backend');
|
|
8
|
-
assertGate(control.includes('runLocalLlmTask'), 'Codex Control Plane must call local LLM task adapter');
|
|
9
|
-
assertGate(policy.includes('requires_gpt_final'), 'local worker eligibility must require GPT final');
|
|
10
|
-
emitGate('local-llm:all-pipelines', { local_backend: 'local-llm', requires_gpt_final: true });
|
|
11
|
-
//# sourceMappingURL=local-llm-all-pipelines-check.js.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, importDist } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const cache = await importDist('core/local-llm/local-llm-prompt-cache.js');
|
|
5
|
-
const a = cache.buildLocalLlmPromptCacheRecord({ routeSystemEnvelopeHash: 'a', localWorkerPolicyHash: 'b', coreSkillSnapshotHash: 'c', triwikiContextPackHash: 'd', repoSummaryHash: 'e', capabilityCardHash: 'f' });
|
|
6
|
-
const b = cache.buildLocalLlmPromptCacheRecord({ routeSystemEnvelopeHash: 'a', localWorkerPolicyHash: 'b', coreSkillSnapshotHash: 'c', triwikiContextPackHash: 'd2', repoSummaryHash: 'e', capabilityCardHash: 'f' });
|
|
7
|
-
assertGate(a.cacheable === true, 'prompt cache record should be cacheable when hashes exist');
|
|
8
|
-
assertGate(a.cache_key !== b.cache_key, 'source hash change must invalidate cache');
|
|
9
|
-
emitGate('local-llm:cache-performance', { cacheable: a.cacheable, invalidates_on_hash_change: true });
|
|
10
|
-
//# sourceMappingURL=local-llm-cache-performance-check.js.map
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, importDist, readText } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const mod = await importDist('core/agents/ollama-worker-config.js');
|
|
5
|
-
const schemaText = readText('schemas/local-llm/local-model-config.schema.json');
|
|
6
|
-
const config = mod.normalizeLocalModelConfig({ enabled: true, status: 'enabled_unverified' });
|
|
7
|
-
const mlx = mod.normalizeLocalModelConfig({ enabled: true, provider: 'mlx-lm', model: 'mlx-community/Qwen3.6-35B-A3B-4bit', base_url: 'http://127.0.0.1:8080' });
|
|
8
|
-
assertGate(config.schema === 'sks.local-model-config.v2', 'local model config must use v2 schema');
|
|
9
|
-
assertGate(config.status === 'enabled_unverified', 'enabled without smoke must be enabled_unverified');
|
|
10
|
-
assertGate(mlx.provider === 'mlx-lm' && mlx.base_url === 'http://127.0.0.1:8080', 'local model config must preserve MLX LM provider settings');
|
|
11
|
-
assertGate(schemaText.includes('verified'), 'local model schema must include verified status');
|
|
12
|
-
assertGate(schemaText.includes('mlx-lm'), 'local model schema must allow MLX LM provider');
|
|
13
|
-
emitGate('local-llm:capability', { status: config.status, schema: config.schema, mlx_provider: mlx.provider });
|
|
14
|
-
//# sourceMappingURL=local-llm-capability-check.js.map
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, importDist, root } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const cfg = await importDist('core/agents/ollama-worker-config.js');
|
|
5
|
-
const smokeMod = await importDist('core/local-llm/local-llm-smoke.js');
|
|
6
|
-
const config = cfg.normalizeLocalModelConfig({ enabled: true, status: 'enabled_unverified' });
|
|
7
|
-
if (process.env.SKS_REQUIRE_LOCAL_LLM !== '1' && !process.argv.includes('--require-real')) {
|
|
8
|
-
const skipped = cfg.applyLocalLlmSmokeResult(config, { ok: false, skipped: true, status: 'enabled_unverified', reason: 'release_check_no_real_smoke', schema_valid: false });
|
|
9
|
-
assertGate(skipped.status === 'enabled_unverified', '--skip-smoke or hermetic mode must not verify local LLM');
|
|
10
|
-
emitGate('local-llm:smoke', { status: 'hermetic_skip', config_status: skipped.status });
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
const reportPath = `${root}/.sneakoscope/reports/local-llm-smoke-real.json`;
|
|
14
|
-
const realConfig = await cfg.readLocalModelConfig();
|
|
15
|
-
const first = await smokeMod.runLocalLlmGenerationSmoke(realConfig, { reportPath, timeoutMs: 60_000 });
|
|
16
|
-
const shouldRetry = first.ok !== true && String(first.blockers || []).match(/aborted|timeout|local_llm_generate_failed/i);
|
|
17
|
-
const smoke = shouldRetry
|
|
18
|
-
? await smokeMod.runLocalLlmGenerationSmoke(realConfig, { reportPath, timeoutMs: 90_000 })
|
|
19
|
-
: first;
|
|
20
|
-
assertGate(smoke.ok === true && smoke.schema_valid === true, 'real local LLM smoke failed', { smoke, retry_count: shouldRetry ? 1 : 0, first_failure_blockers: first.blockers || [] });
|
|
21
|
-
emitGate('local-llm:smoke', { status: 'real_verified', latency_ms: smoke.latency_ms, tokens_per_second: smoke.tokens_per_second, retry_count: shouldRetry ? 1 : 0 });
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=local-llm-smoke-check.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, importDist } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const mod = await importDist('core/local-llm/local-llm-schema-enforcer.js');
|
|
5
|
-
const schema = { type: 'object', required: ['status'], properties: { status: { type: 'string' } }, additionalProperties: false };
|
|
6
|
-
const good = mod.enforceLocalLlmJsonSchema('{"status":"ok"}', schema);
|
|
7
|
-
const bad = mod.enforceLocalLlmJsonSchema('plain words', schema);
|
|
8
|
-
assertGate(good.ok === true && good.schema_valid === true, 'valid local JSON should pass');
|
|
9
|
-
assertGate(bad.ok === false, 'natural language local output must not pass');
|
|
10
|
-
emitGate('local-llm:structured-output', { good: good.ok, bad: bad.ok });
|
|
11
|
-
//# sourceMappingURL=local-llm-structured-output-check.js.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, importDist } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const scheduler = await importDist('core/local-llm/local-llm-scheduler.js');
|
|
5
|
-
const plan = scheduler.planLocalLlmSchedule({ workItems: Array.from({ length: 20 }, (_, i) => ({ id: i })), maxParallelRequests: 4 });
|
|
6
|
-
assertGate(plan.ok === true, 'local scheduler must not exceed max parallel requests');
|
|
7
|
-
assertGate(plan.active_requests <= plan.max_parallel_requests, 'active requests exceeded max_parallel_requests');
|
|
8
|
-
assertGate(plan.queued_count === 16, '20 worker fixture should queue work beyond max parallel requests');
|
|
9
|
-
emitGate('local-llm:throughput', { active_requests: plan.active_requests, queued_count: plan.queued_count, backpressure: plan.backpressure });
|
|
10
|
-
//# sourceMappingURL=local-llm-throughput-check.js.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, importDist } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const mod = await importDist('core/local-llm/local-llm-json-repair.js');
|
|
5
|
-
const repaired = mod.parseOrRepairLocalLlmJson('Here is JSON: {"status":"ok","summary":"done"} thanks');
|
|
6
|
-
const failed = mod.parseOrRepairLocalLlmJson('not json at all');
|
|
7
|
-
assertGate(repaired.ok === true && repaired.repaired === true && repaired.attempts === 1, 'bounded JSON repair should recover one object');
|
|
8
|
-
assertGate(failed.ok === false && failed.attempts === 1, 'invalid local JSON must fail after one repair attempt');
|
|
9
|
-
emitGate('local-llm:tool-call-repair', { repaired: repaired.ok, failed: failed.ok });
|
|
10
|
-
//# sourceMappingURL=local-llm-tool-call-repair-check.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { assertGate, emitGate, importDist } from './lib/codex-sdk-gate-lib.js';
|
|
4
|
-
const cfg = await importDist('core/agents/ollama-worker-config.js');
|
|
5
|
-
const warmup = await importDist('core/local-llm/local-llm-warmup.js');
|
|
6
|
-
const state = warmup.buildLocalLlmWarmupState(cfg.normalizeLocalModelConfig({ enabled: true, status: 'enabled_unverified' }), { ok: true, ttlMs: 1000 });
|
|
7
|
-
assertGate(state.explicit_only === true, 'local warmup must be explicit only');
|
|
8
|
-
assertGate(state.postinstall_allowed === false, 'postinstall must not run local warmup');
|
|
9
|
-
assertGate(state.release_check_real_warmup_allowed === false, 'release:check must not run real warmup');
|
|
10
|
-
emitGate('local-llm:warmup', { explicit_only: state.explicit_only, expires_at: state.expires_at });
|
|
11
|
-
//# sourceMappingURL=local-llm-warmup-check.js.map
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import assert from 'node:assert/strict';
|
|
4
|
-
import path from 'node:path';
|
|
5
|
-
import { pathToFileURL } from 'node:url';
|
|
6
|
-
const root = process.cwd();
|
|
7
|
-
const mod = await import(pathToFileURL(path.join(root, 'dist/core/loop-blocker.js')));
|
|
8
|
-
const report = mod.detectRepeatedBlocker([
|
|
9
|
-
{ reason: 'imagegen_capability_missing', detail: 'Codex App tool unavailable' },
|
|
10
|
-
{ reason: 'imagegen_capability_missing', detail: 'Codex App tool unavailable' }
|
|
11
|
-
], 2);
|
|
12
|
-
assert.equal(report.stop_required, true);
|
|
13
|
-
assert.equal(report.repeated[0].count, 2);
|
|
14
|
-
console.log(JSON.stringify({ schema: 'sks.loop-blocker-check.v1', ok: true, report }, null, 2));
|
|
15
|
-
//# sourceMappingURL=loop-blocker-check.js.map
|