sneakoscope 7.1.0 → 7.3.0
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 +9 -1
- package/config/architecture-budgets.v1.json +1 -8
- package/crates/sks-core/Cargo.lock +225 -1
- package/crates/sks-core/Cargo.toml +8 -1
- package/crates/sks-core/src/main.rs +7 -1
- package/crates/sks-core/src/search/files.rs +114 -0
- package/crates/sks-core/src/search/mod.rs +274 -0
- package/crates/sks-core/src/search/text.rs +175 -0
- package/dist/bin/sks-dispatch.js +4 -3
- package/dist/cli/command-manifest-lite.js +177 -6
- package/dist/cli/command-registry.js +42 -8
- package/dist/cli/help.js +30 -0
- package/dist/cli/install-helpers-codex-lb-config.js +9 -6
- package/dist/cli/install-helpers-codex-lb-selftest-chain.js +1 -1
- package/dist/cli/install-helpers-install-support.js +1 -1
- package/dist/cli/install-helpers.js +19 -9
- package/dist/cli/router.js +16 -3
- package/dist/commands/codex-app.js +40 -5
- package/dist/commands/doctor-profile.js +78 -0
- package/dist/commands/doctor.js +29 -69
- package/dist/commands/search.js +4 -0
- package/dist/config/skills-manifest.json +53 -60
- package/dist/core/agent-bridge/agent-manifest.js +22 -26
- package/dist/core/agent-bridge/host-capability-policy.js +109 -8
- package/dist/core/agent-bridge/host-capability-runtime.js +178 -50
- package/dist/core/agent-guidance/directive-registry.js +123 -0
- package/dist/core/agents/agent-effort-policy.js +45 -6
- package/dist/core/agents/agent-worker-pipeline.js +1 -3
- package/dist/core/agents/native-worker-backend-router.js +43 -19
- package/dist/core/auto-review.js +1 -3
- package/dist/core/code-structure.js +282 -19
- package/dist/core/codex/codex-config-guard.js +14 -4
- package/dist/core/codex/codex-config-toml.js +1 -3
- package/dist/core/codex-app/codex-agent-role-sync.js +1 -3
- package/dist/core/codex-app/codex-app-fast-ui-repair.js +14 -1
- package/dist/core/codex-app/codex-app-types.js +2 -3
- package/dist/core/codex-app/codex-desktop-routing-ownership.js +91 -0
- package/dist/core/codex-app/codex-hook-approval-probe.js +1 -3
- package/dist/core/codex-app/codex-hook-lifecycle.js +1 -3
- package/dist/core/codex-app/codex-init-deep.js +22 -10
- package/dist/core/codex-app/codex-model-catalog.js +384 -0
- package/dist/core/codex-app/codex-models-cache.js +160 -0
- package/dist/core/codex-app/desktop-routing-snapshot.js +233 -0
- package/dist/core/codex-app/glm-profile-installer.js +1 -3
- package/dist/core/codex-app/mcp-manager.js +1 -3
- package/dist/core/codex-app/menubar/constants.js +3 -0
- package/dist/core/codex-app/menubar/installer.js +11 -1
- package/dist/core/codex-app/multi-provider-router-support.js +202 -0
- package/dist/core/codex-app/multi-provider-router.js +379 -0
- package/dist/core/codex-app/openrouter-activate.js +189 -26
- package/dist/core/codex-app/openrouter-base-instructions.js +1 -0
- package/dist/core/codex-app/openrouter-model-catalog.js +217 -0
- package/dist/core/codex-app/role-model-catalog-priority.js +61 -0
- package/dist/core/codex-app.js +30 -6
- package/dist/core/codex-compat/codex-hook-semantic-validator.js +1 -3
- package/dist/core/codex-control/codex-app-server-v2-client.js +39 -2
- package/dist/core/codex-lb/codex-lb-env.js +1 -3
- package/dist/core/codex-lb/codex-lb-tool-catalog.js +6 -1
- package/dist/core/codex-native/codex-native-feature-broker.js +2 -6
- package/dist/core/codex-native/codex-native-interop-policy.js +1 -3
- package/dist/core/codex-native/codex-native-reference-cache.js +1 -3
- package/dist/core/codex-native/codex-native-reference-source.js +1 -3
- package/dist/core/codex-native/codex-native-repair-transaction.js +1 -3
- package/dist/core/codex-native/core-skill-manifest.js +3 -2
- package/dist/core/codex-native/native-capability-repair-matrix.js +1 -3
- package/dist/core/codex-plugins/codex-plugin-repair.js +1 -3
- package/dist/core/codex-runtime/codex-desktop-config-policy.js +4 -4
- package/dist/core/commands/agent-bridge-command.js +24 -3
- package/dist/core/commands/image-ux-review-command.js +5 -11
- package/dist/core/commands/menubar-command.js +1 -1
- package/dist/core/commands/naruto-command.js +40 -13
- package/dist/core/commands/pipeline-command.js +5 -2
- package/dist/core/commands/release-command.js +63 -1
- package/dist/core/commands/remote-command.js +18 -0
- package/dist/core/commands/search-command.js +151 -0
- package/dist/core/commands/telegram-command.js +251 -108
- package/dist/core/commands/uninstall-command.js +1 -1
- package/dist/core/config/secret-preservation.js +1 -3
- package/dist/core/context7-client.js +2 -1
- package/dist/core/db-review.js +704 -0
- package/dist/core/db-safety.js +17 -23
- package/dist/core/doctor/browser-use-repair.js +1 -3
- package/dist/core/doctor/codex-startup-config-repair.js +1 -3
- package/dist/core/doctor/computer-use-repair.js +1 -3
- package/dist/core/doctor/context7-mcp-repair.js +1 -3
- package/dist/core/doctor/current-project-guidance.js +1 -3
- package/dist/core/doctor/doctor-codex-startup-repair.js +1 -3
- package/dist/core/doctor/doctor-dirty-planner.js +2 -2
- package/dist/core/doctor/doctor-native-capability-repair.js +1 -3
- package/dist/core/doctor/doctor-transaction.js +1 -3
- package/dist/core/doctor/imagegen-repair.js +1 -3
- package/dist/core/doctor/legacy-global-hook-cleanup.js +1 -3
- package/dist/core/doctor/mcp-transport-collision-repair.js +1 -3
- package/dist/core/doctor/retired-managed-residue-private.js +1 -3
- package/dist/core/doctor/supabase-mcp-repair.js +1 -3
- package/dist/core/engineering-sanity-review.js +186 -0
- package/dist/core/errors/message.js +3 -0
- package/dist/core/evidence/evidence-schema.js +1 -3
- package/dist/core/feature-fixtures.js +1 -0
- package/dist/core/feature-registry.js +1 -3
- package/dist/core/fsx.js +13 -0
- package/dist/core/git-hygiene/shared-memory-publish.js +1 -3
- package/dist/core/git-hygiene/validators.js +1 -3
- package/dist/core/harness-guard.js +21 -3
- package/dist/core/hooks-runtime/hook-context.js +2 -2
- package/dist/core/image-ux-review/imagegen-adapter.js +52 -56
- package/dist/core/image-ux-review/real-callout-extractor.js +6 -1
- package/dist/core/image-ux-review.js +3 -5
- package/dist/core/imagegen/codex-lb-imagegen-target.js +70 -0
- package/dist/core/imagegen/imagegen-capability.js +11 -11
- package/dist/core/imagegen/imagegen-evidence.js +32 -0
- package/dist/core/init/skills.js +9 -11
- package/dist/core/init.js +4 -6
- package/dist/core/json/records.js +9 -0
- package/dist/core/json-schema-validator.js +1 -3
- package/dist/core/lean-engineering-policy.js +54 -0
- package/dist/core/loops/loop-continuation-enforcer.js +1 -3
- package/dist/core/mad-sks/sql-plane/mcp-executor.js +2 -1
- package/dist/core/mad-sks/sql-plane/policy.js +2 -1
- package/dist/core/managed-assets/managed-assets-manifest.js +4 -3
- package/dist/core/mcp-config/codex-cli-adapter.js +1 -3
- package/dist/core/mcp-config/config-reader.js +2 -3
- package/dist/core/mcp-config/guarded-patch.js +1 -1
- package/dist/core/mcp-config/health-check.js +2 -1
- package/dist/core/mcp-config/mutation.js +1 -1
- package/dist/core/mcp-config/restore.js +1 -1
- package/dist/core/mcp-config/secret-policy.js +1 -3
- package/dist/core/migration/migration-transaction-journal.js +3 -3
- package/dist/core/naruto/naruto-concurrency-governor.js +2 -2
- package/dist/core/perf/import-graph-budget.js +91 -1
- package/dist/core/pipeline/pipeline-plan-writer.js +1 -1
- package/dist/core/pipeline-internals/runtime-core.js +121 -23
- package/dist/core/pipeline-internals/runtime-gates.js +193 -4
- package/dist/core/pipeline.js +1 -1
- package/dist/core/ppt-review/slide-imagegen-review.js +7 -7
- package/dist/core/ppt.js +3 -3
- package/dist/core/product-design-app-server.js +2 -1
- package/dist/core/proof/fake-real-proof-policy.js +1 -3
- package/dist/core/proof/root-cause-policy.js +1 -3
- package/dist/core/proof/validation.js +1 -3
- package/dist/core/provider/model-router.js +4 -0
- package/dist/core/provider/provider-context.js +1 -3
- package/dist/core/providers/openrouter/openrouter-account.js +1 -3
- package/dist/core/quality/helper-dedup.js +0 -0
- package/dist/core/recallpulse.js +1 -1
- package/dist/core/release/file-ownership.js +26 -17
- package/dist/core/release/macos-menubar-proof.js +59 -1
- package/dist/core/release/main-push-guard.js +288 -24
- package/dist/core/release/main-push-receipt.js +10 -45
- package/dist/core/release/package-size-budget.js +1 -1
- package/dist/core/release/release-gate-contract.js +2 -0
- package/dist/core/release/release-pack-receipt.js +1 -1
- package/dist/core/release/release-proof-io.js +33 -0
- package/dist/core/release/release-upgrade-baseline.js +9 -0
- package/dist/core/release/runtime-script-pack-closure.js +153 -4
- package/dist/core/release/stage-publish.js +194 -0
- package/dist/core/remote/index.js +2 -0
- package/dist/core/remote/local-worker-client.js +35 -0
- package/dist/core/remote/machine-registry.js +18 -13
- package/dist/core/remote/owner-proof.js +1 -3
- package/dist/core/remote/protocol.js +1 -3
- package/dist/core/remote/readiness.js +1 -3
- package/dist/core/remote/session-binding.js +153 -0
- package/dist/core/remote/session-index.js +1 -3
- package/dist/core/remote/types.js +1 -0
- package/dist/core/remote/worker.js +228 -14
- package/dist/core/responses-stream.js +151 -0
- package/dist/core/routes/dollar-manifest-lite.js +1 -1
- package/dist/core/routes.js +8 -8
- package/dist/core/rust-accelerator.js +12 -2
- package/dist/core/safety/ssot-guard.js +1 -3
- package/dist/core/search/benchmark.js +358 -0
- package/dist/core/search/cache.js +65 -0
- package/dist/core/search/context.js +144 -0
- package/dist/core/search/doctor.js +74 -0
- package/dist/core/search/files.js +192 -0
- package/dist/core/search/index.js +5 -0
- package/dist/core/search/ipc.js +64 -0
- package/dist/core/search/provider.js +142 -0
- package/dist/core/search/rust-bridge.js +24 -0
- package/dist/core/search/structure.js +230 -0
- package/dist/core/search/symbol.js +272 -0
- package/dist/core/search/text.js +146 -0
- package/dist/core/search/types.js +22 -0
- package/dist/core/search/typescript-ls.js +215 -0
- package/dist/core/search-visibility/discovery.js +1 -3
- package/dist/core/skill-forge.js +1 -1
- package/dist/core/stop-gate/gate-evaluator.js +3 -3
- package/dist/core/stop-gate/stop-gate-check.js +1 -3
- package/dist/core/structured-output-adapter.js +62 -2
- package/dist/core/subagents/agent-catalog.js +56 -43
- package/dist/core/subagents/model-policy.js +17 -7
- package/dist/core/subagents/naruto-proof-projection.js +2 -6
- package/dist/core/subagents/official-subagent-config.js +1 -3
- package/dist/core/subagents/official-subagent-preparation.js +73 -10
- package/dist/core/subagents/official-subagent-prompt.js +85 -18
- package/dist/core/subagents/official-subagent-runner.js +10 -5
- package/dist/core/subagents/role-model-preferences.js +202 -44
- package/dist/core/subagents/subagent-evidence.js +1 -3
- package/dist/core/subagents/thread-budget.js +1 -1
- package/dist/core/subagents/triwiki-attention.js +1 -5
- package/dist/core/telegram/config.js +29 -12
- package/dist/core/telegram/hub.js +8 -2
- package/dist/core/telegram/index.js +2 -0
- package/dist/core/telegram/messages.js +8 -2
- package/dist/core/telegram/runtime-projection.js +8 -5
- package/dist/core/telegram/runtime.js +19 -9
- package/dist/core/telegram/service.js +181 -0
- package/dist/core/telegram/setup.js +220 -0
- package/dist/core/text/regex.js +3 -0
- package/dist/core/text/strings.js +6 -0
- package/dist/core/triwiki-wrongness/image-wrongness.js +1 -3
- package/dist/core/triwiki-wrongness/wrongness-ledger.js +1 -3
- package/dist/core/triwiki-wrongness/wrongness-proof-linker.js +1 -3
- package/dist/core/triwiki-wrongness/wrongness-retrieval.js +1 -3
- package/dist/core/triwiki-wrongness/wrongness-schema.js +1 -3
- package/dist/core/triwiki-wrongness/wrongness-trust-policy.js +1 -3
- package/dist/core/trust-kernel/completion-contract.js +1 -3
- package/dist/core/trust-kernel/route-contract.js +1 -3
- package/dist/core/update/update-migration-state.js +1 -3
- package/dist/core/update-check.js +20 -6
- package/dist/core/verification/diff-quality.js +3 -4
- package/dist/core/verification/impact-scan.js +36 -89
- package/dist/core/verification/mistake-rule-compiler.js +17 -4
- package/dist/core/version-manager.js +3 -20
- package/dist/core/version.js +1 -1
- package/dist/native/sks-menubar/Sources/ControlCenterWindowController.swift +23 -3
- package/dist/native/sks-menubar/Sources/ControlKit.swift +102 -0
- package/dist/native/sks-menubar/Sources/DiagnosticsViewController.swift +23 -11
- package/dist/native/sks-menubar/Sources/MCPServersViewController.swift +7 -3
- package/dist/native/sks-menubar/Sources/OperationCoordinator.swift +17 -1
- package/dist/native/sks-menubar/Sources/OverviewViewController.swift +22 -15
- package/dist/native/sks-menubar/Sources/ProcessClient.swift +15 -5
- package/dist/native/sks-menubar/Sources/ProvidersMultiProvider.swift +324 -0
- package/dist/native/sks-menubar/Sources/ProvidersOpenRouter.swift +154 -214
- package/dist/native/sks-menubar/Sources/ProvidersRoleModels.swift +252 -0
- package/dist/native/sks-menubar/Sources/ProvidersViewController.swift +77 -71
- package/dist/native/sks-menubar/Sources/RemoteTelegramViewController.swift +167 -51
- package/dist/native/sks-menubar/Sources/SettingsViewController.swift +14 -5
- package/dist/native/sks-menubar/Sources/SidebarItem.swift +15 -1
- package/dist/native/sks-menubar/Sources/StatusItemController.swift +2 -2
- package/dist/native/sks-menubar/Sources/UpdatesViewController.swift +16 -12
- package/dist/scripts/agent-guidance-dedup-check.js +23 -0
- package/dist/scripts/agent-message-bus-reader-check.js +1 -1
- package/dist/scripts/all-feature-deep-completion-check.js +1 -1
- package/dist/scripts/appshots-thread-attachment-discovery-check.js +1 -1
- package/dist/scripts/architecture-guard-check.js +1 -2
- package/dist/scripts/certificate-sla-check.js +1 -1
- package/dist/scripts/cli-output-consistency-check.js +1 -1
- package/dist/scripts/codex-0-134-runner-truth-check.js +1 -1
- package/dist/scripts/codex-0138-capability-artifact-check.js +1 -1
- package/dist/scripts/codex-0138-capability-check.js +1 -1
- package/dist/scripts/codex-0138-doctor-check.js +1 -1
- package/dist/scripts/codex-0138-feature-probes-check.js +1 -1
- package/dist/scripts/codex-0144-app-server-v2-check.js +1 -1
- package/dist/scripts/codex-0144-binary-identity-check.js +1 -1
- package/dist/scripts/codex-0144-capability-check.js +1 -1
- package/dist/scripts/codex-0144-core-real-probes-check.js +1 -1
- package/dist/scripts/codex-0144-manifest-check.js +1 -1
- package/dist/scripts/codex-0144-policy-check.js +1 -1
- package/dist/scripts/codex-0144-thread-store-check.js +1 -1
- package/dist/scripts/codex-agent-role-rich-content-check.js +2 -2
- package/dist/scripts/codex-agent-role-sync-check.js +2 -2
- package/dist/scripts/codex-agent-type-routing-check.js +2 -2
- package/dist/scripts/codex-app-execution-profile-check.js +2 -2
- package/dist/scripts/codex-app-handoff-check.js +1 -1
- package/dist/scripts/codex-app-handoff-launch-check.js +1 -1
- package/dist/scripts/codex-control-tool-output-continuity-audit-check.js +1 -1
- package/dist/scripts/codex-lb-fast-ui-preservation-check.js +1 -3
- package/dist/scripts/codex-native-feature-broker-blackbox.js +2 -2
- package/dist/scripts/codex-native-feature-broker-check.js +2 -2
- package/dist/scripts/{sks-3-1-6-directive-check-lib.js → codex-native-gate-lib.js} +5 -5
- package/dist/scripts/codex-native-harness-compat-check.js +2 -2
- package/dist/scripts/codex-native-hook-lifecycle-proof-check.js +2 -2
- package/dist/scripts/codex-plugin-app-template-policy-check.js +1 -1
- package/dist/scripts/codex-sdk-backend-router-check.js +1 -1
- package/dist/scripts/codex-sdk-capability-check.js +1 -1
- package/dist/scripts/context7-evidence-dedupe-check.js +1 -1
- package/dist/scripts/core-skill-card-schema-check.js +1 -1
- package/dist/scripts/core-skill-deployment-snapshot-check.js +1 -1
- package/dist/scripts/core-skill-heldout-validation-check.js +1 -1
- package/dist/scripts/core-skill-no-inference-optimizer-check.js +1 -1
- package/dist/scripts/core-skill-patch-check.js +1 -1
- package/dist/scripts/core-skill-route-runtime-integration-check.js +1 -1
- package/dist/scripts/current-command-surface-check.js +1 -1
- package/dist/scripts/current-surface-update-e2e-check.js +4 -1
- package/dist/scripts/current-upgrade-matrix-check.js +1 -1
- package/dist/scripts/dfix-fixture-check.js +1 -1
- package/dist/scripts/dfix-patch-handoff-check.js +1 -1
- package/dist/scripts/dfix-verification-check.js +1 -1
- package/dist/scripts/dfix-verification-recommendation-check.js +1 -1
- package/dist/scripts/docs-truthfulness-check.js +16 -3
- package/dist/scripts/doctor-codex-app-harness-check.js +2 -2
- package/dist/scripts/evidence-flagship-coverage-check.js +1 -1
- package/dist/scripts/{sks-1-18-gate-lib.js → gate-lib.js} +1 -1
- package/dist/scripts/gate-policy-audit-check.js +4 -1
- package/dist/scripts/git-worktree-checkpoint-check.js +1 -1
- package/dist/scripts/git-worktree-cross-rebase-check.js +1 -1
- package/dist/scripts/git-worktree-diff-envelope-check.js +1 -1
- package/dist/scripts/git-worktree-dirty-lock-check.js +1 -1
- package/dist/scripts/git-worktree-dirty-main-detection-check.js +1 -1
- package/dist/scripts/git-worktree-integration-primary-check.js +1 -1
- package/dist/scripts/git-worktree-manifest-append-check.js +1 -1
- package/dist/scripts/git-worktree-untracked-diff-check.js +1 -1
- package/dist/scripts/harness-benchmark-check.js +1 -1
- package/dist/scripts/helper-dedup-check.js +62 -0
- package/dist/scripts/hook-latency-budget-check.js +1 -1
- package/dist/scripts/image-artifact-path-contract-check.js +1 -1
- package/dist/scripts/imagegen-real-smoke-check.js +2 -5
- package/dist/scripts/installed-package-smoke-check.js +1 -1
- package/dist/scripts/legacy-gate-inventory-check.js +1 -1
- package/dist/scripts/legacy-gate-purge-check.js +1 -1
- package/dist/scripts/legacy-strong-inventory-check.js +1 -1
- package/dist/scripts/lib/codex-sdk-gate-lib.js +1 -1
- package/dist/scripts/mad-sks-launch-sql-plane-boundary-check.js +1 -1
- package/dist/scripts/mad-sks-sql-plane-capability-check.js +1 -1
- package/dist/scripts/mad-sks-sql-plane-lifecycle-hook-decision-check.js +1 -1
- package/dist/scripts/mad-sks-sql-plane-result-lifecycle-check.js +1 -1
- package/dist/scripts/managed-config-merge-check.js +1 -1
- package/dist/scripts/mcp-plugin-inventory-check.js +1 -1
- package/dist/scripts/model-call-concurrency-check.js +1 -1
- package/dist/scripts/mutation-callsite-coverage-check.js +1 -1
- package/dist/scripts/naruto-ssot-gate-aliases-check.js +1 -1
- package/dist/scripts/naruto-ssot-pipeline-default-check.js +1 -1
- package/dist/scripts/naruto-ssot-route-normalization-check.js +1 -1
- package/dist/scripts/naruto-ssot-routing-check.js +1 -1
- package/dist/scripts/naruto-worktree-coding-blackbox.js +1 -1
- package/dist/scripts/native-capability-repair-matrix-check.js +1 -1
- package/dist/scripts/native-image-generation-repair-check.js +1 -1
- package/dist/scripts/official-subagent-workflow-check.js +3 -3
- package/dist/scripts/package-published-contract-check.js +37 -4
- package/dist/scripts/packlist-performance-check.js +17 -1
- package/dist/scripts/pipeline-codex-native-doctor-mad-routing-real-blackbox.js +1 -3
- package/dist/scripts/ppt-real-export-adapter-check.js +1 -1
- package/dist/scripts/ppt-real-imagegen-wiring-check.js +1 -1
- package/dist/scripts/ppt-reexport-rereview-check.js +1 -1
- package/dist/scripts/prepublish-fast-check.js +1 -1
- package/dist/scripts/probe-memoization-check.js +2 -2
- package/dist/scripts/prompt-placeholder-guard-check.js +1 -1
- package/dist/scripts/qa-loop-app-handoff-capability-check.js +1 -1
- package/dist/scripts/qa-loop-app-handoff-check.js +1 -1
- package/dist/scripts/qa-loop-app-handoff-cli-check.js +1 -1
- package/dist/scripts/qa-loop-app-handoff-confirmation-check.js +1 -1
- package/dist/scripts/qa-loop-app-handoff-gate-lifecycle-check.js +1 -1
- package/dist/scripts/qa-loop-app-handoff-launch-check.js +1 -1
- package/dist/scripts/qa-loop-app-handoff-status-lifecycle-check.js +1 -1
- package/dist/scripts/qa-loop-budget-policy-check.js +1 -1
- package/dist/scripts/qa-loop-effort-escalation-check.js +1 -1
- package/dist/scripts/qa-loop-execution-profile-routing-check.js +2 -2
- package/dist/scripts/qa-loop-image-path-exposure-check.js +1 -1
- package/dist/scripts/qa-loop-image-path-prompt-injection-check.js +1 -1
- package/dist/scripts/{sks-1-12-real-execution-check-lib.js → real-execution-check-lib.js} +1 -1
- package/dist/scripts/release-affected-selector-check.js +1 -1
- package/dist/scripts/release-aggressive-resource-governor-check.js +1 -1
- package/dist/scripts/release-cache-glob-hashing-check.js +1 -1
- package/dist/scripts/release-cache-input-classifier-check.js +1 -1
- package/dist/scripts/release-cache-neutralization-report-check.js +1 -1
- package/dist/scripts/release-cache-version-neutral-fixture-check.js +1 -1
- package/dist/scripts/release-dynamic-presets-check.js +2 -2
- package/dist/scripts/release-full-parallelism-blackbox.js +1 -1
- package/dist/scripts/release-gate-batch-runner-check.js +1 -1
- package/dist/scripts/release-gate-budget-check.js +1 -1
- package/dist/scripts/release-gate-dag-runner-check.js +1 -1
- package/dist/scripts/release-latency-slo-check.js +1 -1
- package/dist/scripts/release-metadata-check.js +256 -2
- package/dist/scripts/release-parallel-speed-budget-check.js +1 -1
- package/dist/scripts/release-proof-truth-check.js +1 -1
- package/dist/scripts/release-provenance-check.js +4 -2
- package/dist/scripts/release-runtime-truth-matrix-check.js +1 -1
- package/dist/scripts/research-blueprint-densifier-check.js +1 -1
- package/dist/scripts/research-claim-builder-check.js +1 -1
- package/dist/scripts/research-complete-package-fixture-check.js +1 -1
- package/dist/scripts/research-execution-profile-routing-check.js +2 -2
- package/dist/scripts/research-final-reviewer-blackbox.js +1 -1
- package/dist/scripts/{sks-3-1-4-directive-check-lib.js → runtime-domain-gate-lib.js} +2 -2
- package/dist/scripts/runtime-proof-summary-check.js +1 -1
- package/dist/scripts/runtime-script-pack-closure-check.js +7 -1
- package/dist/scripts/scheduler-batch-dispatch-check.js +1 -1
- package/dist/scripts/scheduler-parallel-proof-consistency-check.js +1 -1
- package/dist/scripts/scheduler-utilization-integral-check.js +1 -1
- package/dist/scripts/search-visibility-gate-lib.js +1 -1
- package/dist/scripts/secret-preservation-check.js +1 -1
- package/dist/scripts/seo-geo-geo-disambiguation-check.js +1 -1
- package/dist/scripts/seo-geo-skill-rich-content-check.js +1 -1
- package/dist/scripts/side-effect-runtime-report-check.js +1 -1
- package/dist/scripts/{sks-3-1-8-check-lib.js → skill-fixture-check-lib.js} +1 -1
- package/dist/scripts/skill-name-canonicalizer-check.js +1 -1
- package/dist/scripts/skills-manifest-continuity-check.js +1 -1
- package/dist/scripts/sks-uninstall-regression-check.js +1 -1
- package/dist/scripts/sksd-daemon-check.js +1 -1
- package/dist/scripts/super-search-provider-interface-check.js +1 -1
- package/dist/scripts/triwiki-cache-key-check.js +1 -1
- package/dist/scripts/triwiki-proof-bank-blackbox.js +2 -2
- package/dist/scripts/triwiki-proof-bank-check.js +1 -1
- package/dist/scripts/triwiki-proof-card-check.js +1 -1
- package/dist/scripts/type-surface-codex-app-check.js +2 -2
- package/dist/scripts/{sks-3-1-5-directive-check-lib.js → typed-routing-gate-lib.js} +2 -2
- package/dist/scripts/ultra-router-auto-router-check.js +1 -1
- package/dist/scripts/ux-review-extract-wires-real-extractor-check.js +1 -1
- package/dist/scripts/ux-review-patch-diff-recheck-check.js +1 -1
- package/dist/scripts/ux-review-run-wires-imagegen-check.js +9 -2
- package/package.json +5 -7
- package/release-gates.v2.json +66 -11
- package/runtime-required-scripts.json +138 -14
- package/config/bench-baseline.json +0 -7
- package/dist/core/codex-app/sks-menubar.js +0 -1
- package/dist/core/release/release-closure-contract.js +0 -30
- package/dist/core/release/release-closure-helpers.js +0 -293
- package/dist/core/release/release-closure-validation.js +0 -284
- package/dist/core/release/release-closure.js +0 -163
- package/dist/scripts/build-dist.js +0 -124
- package/dist/scripts/build-once-runner-check.js +0 -6
- package/dist/scripts/canonical-test-runner.js +0 -234
- package/dist/scripts/changelog-check.js +0 -45
- package/dist/scripts/check-architecture.js +0 -295
- package/dist/scripts/check-cli-entrypoint.js +0 -41
- package/dist/scripts/check-command-module-budget.js +0 -77
- package/dist/scripts/check-feature-quality.js +0 -51
- package/dist/scripts/check-legacy-free.js +0 -64
- package/dist/scripts/check-pipeline-budget.js +0 -49
- package/dist/scripts/check-pipeline-runtime.js +0 -16
- package/dist/scripts/check-publish-tag.js +0 -56
- package/dist/scripts/check-route-modularity.js +0 -72
- package/dist/scripts/codex-0140-capability-check.js +0 -14
- package/dist/scripts/codex-0140-feature-probes-check.js +0 -23
- package/dist/scripts/codex-permission-profiles-check.js +0 -34
- package/dist/scripts/codex-project-config-policy-splitter-check.js +0 -49
- package/dist/scripts/competitor-scorecard-check.js +0 -24
- package/dist/scripts/core-skill-no-drift-check.js +0 -23
- package/dist/scripts/db-route-materialization-check.js +0 -32
- package/dist/scripts/doctor-context7-mcp-repair-blackbox.js +0 -15
- package/dist/scripts/doctor-fastpath-check.js +0 -25
- package/dist/scripts/doctor-fix-production-blackbox.js +0 -35
- package/dist/scripts/doctor-idempotence-check.js +0 -6
- package/dist/scripts/doctor-ops-semantics-check.js +0 -83
- package/dist/scripts/doctor-startup-config-repair-blackbox.js +0 -18
- package/dist/scripts/doctor-supabase-mcp-repair-blackbox.js +0 -13
- package/dist/scripts/ensure-bin-executable.js +0 -16
- package/dist/scripts/fsx-hotpath-check.js +0 -9
- package/dist/scripts/high-risk-contracts-check.js +0 -183
- package/dist/scripts/hook-latency-quantum-check.js +0 -120
- package/dist/scripts/import-graph-budget-check.js +0 -9
- package/dist/scripts/mcp-tool-naming-parity-check.js +0 -14
- package/dist/scripts/naruto-codex-e2e-check.js +0 -105
- package/dist/scripts/naruto-write-e2e-check.js +0 -31
- package/dist/scripts/native-capability-postcheck-check.js +0 -16
- package/dist/scripts/ops-diagnostics-bundle-check.js +0 -11
- package/dist/scripts/parallel-production-smoke-check.js +0 -20
- package/dist/scripts/perf-budget-check.js +0 -12
- package/dist/scripts/project-skill-dedupe-blackbox.js +0 -62
- package/dist/scripts/release-dag-full-coverage-check.js +0 -98
- package/dist/scripts/release-dist-freshness-check.js +0 -6
- package/dist/scripts/release-file-ownership-check.js +0 -35
- package/dist/scripts/release-gate-script-parity-check.js +0 -148
- package/dist/scripts/release-macos-menubar-proof.js +0 -167
- package/dist/scripts/release-main-push-guard.js +0 -37
- package/dist/scripts/release-main-push-receipt.js +0 -43
- package/dist/scripts/release-metadata-1-19-check.js +0 -257
- package/dist/scripts/release-version-truth-check.js +0 -138
- package/dist/scripts/retention-apply-smoke-check.js +0 -19
- package/dist/scripts/retention-budget-check.js +0 -6
- package/dist/scripts/retention-dry-run-check.js +0 -8
- package/dist/scripts/rollback-recovery-smoke-check.js +0 -70
- package/dist/scripts/route-intent-regression-check.js +0 -42
- package/dist/scripts/runtime-current-terminal-check.js +0 -108
- package/dist/scripts/runtime-dist-parity-check.js +0 -76
- package/dist/scripts/runtime-no-src-mjs-check.js +0 -30
- package/dist/scripts/runtime-ts-rust-boundary-check.js +0 -58
- package/dist/scripts/runtime-ts-source-of-truth-check.js +0 -53
- package/dist/scripts/secret-preservation-guard-check.js +0 -36
- package/dist/scripts/seo-marketing-truthfulness-check.js +0 -98
- package/dist/scripts/seo-metadata-sync-check.js +0 -60
- package/dist/scripts/sizecheck.js +0 -148
- package/dist/scripts/sks-menubar-install-check.js +0 -333
- package/dist/scripts/supabase-secret-preservation-blackbox.js +0 -28
- package/dist/scripts/super-search-live-smoke-check.js +0 -115
- package/dist/scripts/super-search-local-http-smoke-check.js +0 -16
- package/dist/scripts/super-search-offline-contract-check.js +0 -43
- package/dist/scripts/update-fastpath-check.js +0 -28
- package/dist/scripts/update-preserves-supabase-keys-blackbox.js +0 -26
- package/dist/scripts/upgrade-migration-matrix-check.js +0 -351
- package/dist/scripts/write-build-manifest.js +0 -70
- package/dist/scripts/zellij-capability-check.js +0 -13
- package/dist/scripts/zellij-developer-controls-check.js +0 -16
- package/dist/scripts/zellij-doctor-readiness-check.js +0 -49
- package/dist/scripts/zellij-dynamic-pane-lifecycle-check.js +0 -19
- package/dist/scripts/zellij-fake-adapter-check.js +0 -31
- package/dist/scripts/zellij-first-slot-down-stack-check.js +0 -20
- package/dist/scripts/zellij-first-slot-down-stack-real-check.js +0 -348
- package/dist/scripts/zellij-homebrew-policy-check.js +0 -3
- package/dist/scripts/zellij-initial-main-only-blackbox.js +0 -21
- package/dist/scripts/zellij-lane-renderer-check.js +0 -78
- package/dist/scripts/zellij-launch-command-truth-check.js +0 -62
- package/dist/scripts/zellij-layout-valid-check.js +0 -120
- package/dist/scripts/zellij-pane-creation-lock-metrics-check.js +0 -10
- package/dist/scripts/zellij-pane-lock-concurrency-blackbox.js +0 -78
- package/dist/scripts/zellij-pane-lock-does-not-block-worker-check.js +0 -12
- package/dist/scripts/zellij-pane-lock-open-worker-integration-blackbox.js +0 -134
- package/dist/scripts/zellij-qa-app-handoff-status-check.js +0 -7
- package/dist/scripts/zellij-right-column-geometry-proof.js +0 -158
- package/dist/scripts/zellij-right-column-headless-overflow-check.js +0 -20
- package/dist/scripts/zellij-right-column-manager-check.js +0 -24
- package/dist/scripts/zellij-self-heal-check.js +0 -3
- package/dist/scripts/zellij-self-heal-dry-run-check.js +0 -3
- package/dist/scripts/zellij-self-heal-status-contract-check.js +0 -3
- package/dist/scripts/zellij-self-heal-typed-blackbox.js +0 -3
- package/dist/scripts/zellij-slot-column-anchor-check.js +0 -65
- package/dist/scripts/zellij-slot-column-anchor-telemetry-check.js +0 -8
- package/dist/scripts/zellij-slot-only-ui-check.js +0 -29
- package/dist/scripts/zellij-slot-pane-renderer-check.js +0 -149
- package/dist/scripts/zellij-slot-pane-stale-detection-check.js +0 -65
- package/dist/scripts/zellij-slot-pane-telemetry-renderer-check.js +0 -11
- package/dist/scripts/zellij-slot-renderer-proof-semantics-check.js +0 -58
- package/dist/scripts/zellij-slot-telemetry-check.js +0 -38
- package/dist/scripts/zellij-slot-telemetry-incremental-check.js +0 -46
- package/dist/scripts/zellij-slot-telemetry-live-flush-check.js +0 -55
- package/dist/scripts/zellij-slot-telemetry-performance-check.js +0 -32
- package/dist/scripts/zellij-slot-telemetry-real-blackbox.js +0 -19
- package/dist/scripts/zellij-slot-telemetry-renderer-check.js +0 -11
- package/dist/scripts/zellij-slot-telemetry-runtime-check.js +0 -23
- package/dist/scripts/zellij-spawn-on-demand-layout-check.js +0 -45
- package/dist/scripts/zellij-stacked-capability-routing-check.js +0 -9
- package/dist/scripts/zellij-stacked-fallback-integration-blackbox.js +0 -78
- package/dist/scripts/zellij-stacked-version-matrix-check.js +0 -29
- package/dist/scripts/zellij-stacked-version-parser-check.js +0 -19
- package/dist/scripts/zellij-ui-design-check.js +0 -92
- package/dist/scripts/zellij-update-missing-self-heal-check.js +0 -3
- package/dist/scripts/zellij-update-prompt-matrix-check.js +0 -16
- package/dist/scripts/zellij-update-prompt-mode-check.js +0 -18
- package/dist/scripts/zellij-update-prompt-safety-check.js +0 -8
- package/dist/scripts/zellij-worker-pane-manager-check.js +0 -108
- package/dist/scripts/zellij-worker-pane-manager-single-owner-check.js +0 -47
- package/dist/scripts/zellij-worker-pane-real-ui-blackbox.js +0 -199
- /package/dist/scripts/{sks-1-11-gate-lib.js → sks-cli-gate-lib.js} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
await
|
|
2
|
+
import { runTypedRoutingGate } from './typed-routing-gate-lib.js';
|
|
3
|
+
await runTypedRoutingGate('codex-app:agent-role-rich-content');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
await
|
|
2
|
+
import { runRuntimeDomainGate } from './runtime-domain-gate-lib.js';
|
|
3
|
+
await runRuntimeDomainGate('codex-app:agent-role-sync');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
await
|
|
2
|
+
import { runTypedRoutingGate } from './typed-routing-gate-lib.js';
|
|
3
|
+
await runTypedRoutingGate('codex-app:agent-type-routing');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
await
|
|
2
|
+
import { runRuntimeDomainGate } from './runtime-domain-gate-lib.js';
|
|
3
|
+
await runRuntimeDomainGate('codex-app:execution-profile');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs/promises';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist } from './
|
|
5
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
6
6
|
process.env.SKS_CODEX_0138_FAKE = '1';
|
|
7
7
|
const mod = await importDist('core/codex-app/codex-app-handoff.js');
|
|
8
8
|
const root = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-app-handoff-'));
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs/promises';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist } from './
|
|
5
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
6
6
|
process.env.SKS_CODEX_0138_FAKE = '1';
|
|
7
7
|
process.env.SKS_CODEX_APP_LAUNCH_FAKE = '1';
|
|
8
8
|
const mod = await importDist('core/codex-app/codex-app-handoff.js');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { assertGate, emitGate, importDist } from './
|
|
2
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
3
3
|
const mod = await importDist('core/codex-control/codex-reliability-shield.js');
|
|
4
4
|
const audit = mod.auditToolOutputContinuity([
|
|
5
5
|
{ type: 'thread.started' },
|
|
@@ -3,6 +3,7 @@ import fs from 'node:fs/promises';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { codexLbConfigPath, codexLbEnvPath, ensureGlobalCodexFastModeDuringInstall, releaseCodexLbAuthHold, repairCodexLbAuth } from '../cli/install-helpers.js';
|
|
6
|
+
import { escapeRegExp } from '../core/text/regex.js';
|
|
6
7
|
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-codex-lb-fast-ui-'));
|
|
7
8
|
const home = path.join(tmp, 'home');
|
|
8
9
|
const codexHome = path.join(home, '.codex');
|
|
@@ -106,6 +107,3 @@ function topLevelKey(text, key) {
|
|
|
106
107
|
const top = text.split(/\n\s*\[/)[0] || '';
|
|
107
108
|
return top.match(new RegExp(`(^|\\n)\\s*${escapeRegExp(key)}\\s*=\\s*([^\\n#]+)`))?.[2]?.trim().replace(/^"|"$/g, '') || '';
|
|
108
109
|
}
|
|
109
|
-
function escapeRegExp(value) {
|
|
110
|
-
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
111
|
-
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
await
|
|
2
|
+
import { runCodexNativeGate } from './codex-native-gate-lib.js';
|
|
3
|
+
await runCodexNativeGate('codex-native:feature-broker-blackbox');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
await
|
|
2
|
+
import { runCodexNativeGate } from './codex-native-gate-lib.js';
|
|
3
|
+
await runCodexNativeGate('codex-native:feature-broker');
|
|
@@ -38,7 +38,7 @@ const REQUIRED_SCRIPT_IDS = [
|
|
|
38
38
|
'codex-native:feature-broker-blackbox',
|
|
39
39
|
'pipeline:codex-native-e2e-blackbox'
|
|
40
40
|
];
|
|
41
|
-
export async function
|
|
41
|
+
export async function runCodexNativeGate(id) {
|
|
42
42
|
if (id === 'brand-neutrality:rename-map')
|
|
43
43
|
return brandRenameMap(id);
|
|
44
44
|
if (id === 'brand-neutrality:zero-leakage')
|
|
@@ -334,12 +334,12 @@ async function initDeepMemoryScopeSafety(id) {
|
|
|
334
334
|
emitGate(id);
|
|
335
335
|
}
|
|
336
336
|
async function releaseScriptsTypeSafe(id) {
|
|
337
|
-
for (const rel of ['src/scripts/release-dag-full-coverage-check.ts', 'src/scripts/
|
|
337
|
+
for (const rel of ['src/scripts/release-dag-full-coverage-check.ts', 'src/scripts/typed-routing-gate-lib.ts', 'src/scripts/codex-native-gate-lib.ts', 'src/scripts/release-script-lint-gate-lib.ts']) {
|
|
338
338
|
const text = readText(rel);
|
|
339
339
|
assertGate(!/^\s*\/\/\s*@ts-nocheck\b/m.test(text), `release helper still has ts-nocheck:${rel}`);
|
|
340
340
|
}
|
|
341
341
|
assertGate(readText('src/scripts/release-dag-full-coverage-check.ts').includes('interface ReleaseGate'), 'release DAG helper missing typed interfaces');
|
|
342
|
-
assertGate(readText('src/scripts/
|
|
342
|
+
assertGate(readText('src/scripts/codex-native-gate-lib.ts').includes('interface PackageJsonShape'), '3.1.6 helper missing typed package shape');
|
|
343
343
|
emitGate(id);
|
|
344
344
|
}
|
|
345
345
|
async function noTsNoCheckReleaseScripts(id) {
|
|
@@ -347,7 +347,7 @@ async function noTsNoCheckReleaseScripts(id) {
|
|
|
347
347
|
const checked = listFiles(path.join(root, 'src/scripts')).filter((file) => {
|
|
348
348
|
const rel = path.relative(root, file).split(path.sep).join('/');
|
|
349
349
|
return /^src\/scripts\/release-dag-full-coverage-check\.ts$/.test(rel)
|
|
350
|
-
|| /^src\/scripts\/
|
|
350
|
+
|| /^src\/scripts\/(?:typed-routing|codex-native|release-script-lint)-gate-lib\.ts$/.test(rel)
|
|
351
351
|
|| /^src\/scripts\/no-ts-nocheck-release-scripts-check\.ts$/.test(rel)
|
|
352
352
|
|| /^src\/scripts\/release-script-type-safety-check\.ts$/.test(rel);
|
|
353
353
|
});
|
|
@@ -525,7 +525,7 @@ export function packageJson() {
|
|
|
525
525
|
export function gateManifest() {
|
|
526
526
|
return readJson('release-gates.v2.json');
|
|
527
527
|
}
|
|
528
|
-
export function
|
|
528
|
+
export function requiredReleaseScriptIds() {
|
|
529
529
|
return [...REQUIRED_SCRIPT_IDS];
|
|
530
530
|
}
|
|
531
531
|
export function checkCommand(command, args) {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
await
|
|
2
|
+
import { runCodexNativeGate } from './codex-native-gate-lib.js';
|
|
3
|
+
await runCodexNativeGate('codex-native:harness-compat');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
await
|
|
2
|
+
import { runCodexNativeGate } from './codex-native-gate-lib.js';
|
|
3
|
+
await runCodexNativeGate('codex-native:hook-lifecycle-proof');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { assertGate, emitGate, importDist } from './
|
|
2
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
3
3
|
process.env.SKS_CODEX_0138_FAKE = '1';
|
|
4
4
|
process.env.SKS_CODEX_PLUGIN_JSON_FAKE = '1';
|
|
5
5
|
const mod = await importDist('core/codex-plugins/codex-plugin-json.js');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs/promises';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist } from './
|
|
5
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
6
6
|
const mod = await importDist('core/agents/native-cli-worker.js');
|
|
7
7
|
const root = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-codex-sdk-router-'));
|
|
8
8
|
const old = snapshotEnv();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { assertGate, emitGate, importDist } from './
|
|
2
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
3
3
|
const mod = await importDist('core/codex-control/codex-sdk-capability.js');
|
|
4
4
|
const capability = await mod.detectCodexSdkCapability();
|
|
5
5
|
assertGate(capability.ok, 'Codex SDK capability must be available', capability);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs/promises';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist } from './
|
|
5
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
6
6
|
const mod = await importDist('core/pipeline-internals/runtime-core.js');
|
|
7
7
|
const root = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-context7-evidence-'));
|
|
8
8
|
const missionId = 'M-context7-dedupe';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist, root, readJson } from './
|
|
5
|
+
import { assertGate, emitGate, importDist, root, readJson } from './gate-lib.js';
|
|
6
6
|
const cardMod = await importDist('core/skills/core-skill-card.js');
|
|
7
7
|
const typesMod = await importDist('core/skills/core-skill-types.js');
|
|
8
8
|
const deployMod = await importDist('core/skills/core-skill-deployment.js');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist, root } from './
|
|
5
|
+
import { assertGate, emitGate, importDist, root } from './gate-lib.js';
|
|
6
6
|
const cardMod = await importDist('core/skills/core-skill-card.js');
|
|
7
7
|
const deployMod = await importDist('core/skills/core-skill-deployment.js');
|
|
8
8
|
const { createRequestedScopeContract } = await importDist('core/safety/requested-scope-contract.js');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist, root } from './
|
|
5
|
+
import { assertGate, emitGate, importDist, root } from './gate-lib.js';
|
|
6
6
|
const validationMod = await importDist('core/skills/core-skill-validation.js');
|
|
7
7
|
const bufferMod = await importDist('core/skills/rejected-skill-patch-buffer.js');
|
|
8
8
|
const baseInput = {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist, root } from './
|
|
5
|
+
import { assertGate, emitGate, importDist, root } from './gate-lib.js';
|
|
6
6
|
const cardMod = await importDist('core/skills/core-skill-card.js');
|
|
7
7
|
const runtimeMod = await importDist('core/skills/core-skill-runtime.js');
|
|
8
8
|
const deployMod = await importDist('core/skills/core-skill-deployment.js');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import { assertGate, emitGate, importDist, root, readJson } from './
|
|
4
|
+
import { assertGate, emitGate, importDist, root, readJson } from './gate-lib.js';
|
|
5
5
|
const cardMod = await importDist('core/skills/core-skill-card.js');
|
|
6
6
|
const patchMod = await importDist('core/skills/core-skill-patch.js');
|
|
7
7
|
const applyMod = await importDist('core/skills/core-skill-patch-apply.js');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist } from './
|
|
5
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
6
6
|
const { createCandidateCard, routeSkillId } = await importDist('core/skills/core-skill-card.js');
|
|
7
7
|
const { promoteToDeployedWithLedger } = await importDist('core/skills/core-skill-deployment.js');
|
|
8
8
|
const { selectRouteSkill, skillProofRecord } = await importDist('core/skills/core-skill-runtime.js');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import fs from 'node:fs';
|
|
3
|
-
import { assertGate, emitGate, importDist, readText, root } from './
|
|
3
|
+
import { assertGate, emitGate, importDist, readText, root } from './gate-lib.js';
|
|
4
4
|
const removed = ['team', 'mad-db', 'tmux', 'xai', 'swarm', 'agent', 'ralph', 'ui', 'glm'];
|
|
5
5
|
const removedDollar = ['$Agent', '$Team', '$MAD-DB', '$Swarm', '$ShadowClone', '$Kagebunshin', '$Ralph'];
|
|
6
6
|
const removedHandlers = [
|
|
@@ -80,6 +80,7 @@ try {
|
|
|
80
80
|
path.join(home, '.agents', 'skills', 'team'),
|
|
81
81
|
path.join(home, '.agents', 'skills', 'agent'),
|
|
82
82
|
path.join(home, '.agents', 'skills', 'ralph'),
|
|
83
|
+
path.join(home, '.agents', 'skills', 'sks-research-discovery'),
|
|
83
84
|
path.join(home, '.codex', 'skills', 'mad-db'),
|
|
84
85
|
path.join(home, '.codex', 'sks-team.config.toml'),
|
|
85
86
|
path.join(home, '.sneakoscope-global', '.codex', 'sks-team.config.toml'),
|
|
@@ -104,9 +105,10 @@ try {
|
|
|
104
105
|
]) {
|
|
105
106
|
assertGate(!fs.existsSync(target), 'simulated update must remove every managed legacy unprefixed SKS skill', { target });
|
|
106
107
|
}
|
|
107
|
-
for (const name of ['sks-naruto', 'sks-research
|
|
108
|
+
for (const name of ['sks-naruto', 'sks-research', 'sks-answer', 'sks-imagegen', 'sks-qa-loop', 'sks-dfix']) {
|
|
108
109
|
assertGate(fs.existsSync(path.join(home, '.agents', 'skills', name, 'SKILL.md')), 'simulated update must install the namespaced global picker skill', { name });
|
|
109
110
|
}
|
|
111
|
+
assertGate(!fs.existsSync(path.join(home, '.agents', 'skills', 'sks-research-discovery')), 'simulated update must remove the duplicate namespaced research-discovery picker skill', {});
|
|
110
112
|
assertGate(!fs.existsSync(path.join(project, '.agents', 'skills', 'research')), 'simulated update must remove a user-authored legacy-name collision from the active picker surface', {});
|
|
111
113
|
const quarantinedLegacySkills = await findFiles(path.join(project, '.sneakoscope', 'quarantine', 'skills'), 'SKILL.md');
|
|
112
114
|
assertGate(quarantinedLegacySkills.length >= 1, 'simulated update must quarantine user-authored legacy-name collisions', { quarantinedLegacySkills });
|
|
@@ -421,6 +423,7 @@ async function seedUpgradeFixture(home, project) {
|
|
|
421
423
|
await writeManagedSkill(path.join(home, '.agents', 'skills', 'agent'), 'agent');
|
|
422
424
|
await writeManagedSkill(path.join(home, '.agents', 'skills', 'ralph'), 'ralph');
|
|
423
425
|
await writeManagedSkill(path.join(home, '.agents', 'skills', 'naruto'), 'naruto');
|
|
426
|
+
await writeManagedSkill(path.join(home, '.agents', 'skills', 'sks-research-discovery'), 'sks-research-discovery');
|
|
424
427
|
await writeManagedSkill(path.join(home, '.codex', 'skills', 'mad-db'), 'mad-db');
|
|
425
428
|
await writeManagedSkill(path.join(home, '.codex', 'skills', 'research-discovery'), 'research-discovery');
|
|
426
429
|
await writeManagedSkill(path.join(globalRuntimeRoot, '.agents', 'skills', 'answer'), 'answer');
|
|
@@ -3,7 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { spawnSync } from 'node:child_process';
|
|
6
|
-
import { root, assertGate, emitGate, importDist } from './
|
|
6
|
+
import { root, assertGate, emitGate, importDist } from './gate-lib.js';
|
|
7
7
|
const policy = await importDist('core/codex/codex-project-config-policy.js');
|
|
8
8
|
const install = await importDist('cli/install-helpers.js');
|
|
9
9
|
const journal = await importDist('core/migration/migration-transaction-journal.js');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { emitGate, runDfixFixture } from './sks-
|
|
2
|
+
import { emitGate, runDfixFixture } from './sks-cli-gate-lib.js';
|
|
3
3
|
const result = runDfixFixture();
|
|
4
4
|
emitGate('dfix:fixture', { mission_id: result.mission_id, fixture_root: result.fixture_root });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { emitGate, requireContains } from './
|
|
2
|
+
import { emitGate, requireContains } from './real-execution-check-lib.js';
|
|
3
3
|
requireContains('dfix:patch-handoff', 'src/core/dfix.ts', [
|
|
4
4
|
'codex_patch_handoff',
|
|
5
5
|
'buildDfixCodexPatchPrompt',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { assertGate, emitGate, readMissionJson, runDfixFixture } from './sks-
|
|
2
|
+
import { assertGate, emitGate, readMissionJson, runDfixFixture } from './sks-cli-gate-lib.js';
|
|
3
3
|
const result = runDfixFixture();
|
|
4
4
|
const verification = readMissionJson(result.mission_id, 'dfix-verification.json');
|
|
5
5
|
const proof = readMissionJson(result.mission_id, 'completion-proof.json');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { emitGate, requireContains } from './
|
|
2
|
+
import { emitGate, requireContains } from './real-execution-check-lib.js';
|
|
3
3
|
requireContains('dfix:verification-recommendation', 'src/core/dfix.ts', [
|
|
4
4
|
'DFIX_VERIFICATION_SUGGESTION_ARTIFACT',
|
|
5
5
|
'writeDfixVerificationSuggestion',
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { RELEASE_UPGRADE_BASELINE_VERSION } from '../core/release/release-upgrade-baseline.js';
|
|
5
6
|
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
6
7
|
const packageVersion = String(JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8')).version || '').trim();
|
|
7
8
|
const files = [
|
|
@@ -17,10 +18,22 @@ const files = [
|
|
|
17
18
|
'docs/hooks-pat.md',
|
|
18
19
|
'docs/goal-to-loop-migration.md',
|
|
19
20
|
'docs/known-gaps.md',
|
|
20
|
-
'docs/release-readiness.md'
|
|
21
|
+
'docs/release-readiness.md',
|
|
22
|
+
'docs/telegram-and-center.md'
|
|
21
23
|
];
|
|
22
24
|
const required = {
|
|
23
|
-
'README.md': ['CHANGELOG.md', 'docs/release-readiness.md', 'gpt-image-2'],
|
|
25
|
+
'README.md': ['CHANGELOG.md', 'docs/release-readiness.md', 'gpt-image-2', 'docs/telegram-and-center.md'],
|
|
26
|
+
'docs/telegram-and-center.md': [
|
|
27
|
+
'sks menubar install',
|
|
28
|
+
'Open SKS Control Center',
|
|
29
|
+
'Remote & Telegram',
|
|
30
|
+
'--bot-token-stdin',
|
|
31
|
+
'com.sneakoscope.telegram.bot',
|
|
32
|
+
'com.sneakoscope.telegram-hub',
|
|
33
|
+
'telegram_pairing_start_not_found',
|
|
34
|
+
'telegram_hub_not_running',
|
|
35
|
+
'sks telegram hub start'
|
|
36
|
+
],
|
|
24
37
|
'CHANGELOG.md': ['1.14.0', 'DFix Extreme Speed Kernel', 'hook trust doctor', 'warning-zero'],
|
|
25
38
|
'docs/computer-use-evidence.md': ['sks.computer-use-live-evidence.v1', 'probe_only', 'live_capture_blocked', 'local-only', 'Codex Chrome Extension'],
|
|
26
39
|
'docs/codex-lb.md': ['durable_env_file', 'durable_keychain', 'shell_profile', 'process_only_ephemeral', 'base URL only'],
|
|
@@ -46,7 +59,7 @@ const required = {
|
|
|
46
59
|
'proof-aware fleet control',
|
|
47
60
|
'npm stage publish',
|
|
48
61
|
'npm stage approve <stage-id>',
|
|
49
|
-
|
|
62
|
+
`${RELEASE_UPGRADE_BASELINE_VERSION} to ${packageVersion} upgrade smoke`
|
|
50
63
|
]
|
|
51
64
|
};
|
|
52
65
|
const forbidden = [
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
await
|
|
2
|
+
import { runRuntimeDomainGate } from './runtime-domain-gate-lib.js';
|
|
3
|
+
await runRuntimeDomainGate('doctor:codex-app-harness');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import { emitGate, requireContains, root } from './
|
|
4
|
+
import { emitGate, requireContains, root } from './real-execution-check-lib.js';
|
|
5
5
|
requireContains('evidence:flagship-coverage', 'src/core/commands/image-ux-review-command.ts', [
|
|
6
6
|
'visualEvidence: { image_ux_review',
|
|
7
7
|
'IMAGE_UX_REVIEW_CALLOUT_EXTRACTION_REPORT_ARTIFACT'
|
|
@@ -44,7 +44,7 @@ export const SOURCE_INTELLIGENCE_FILES = [
|
|
|
44
44
|
'src/core/super-search/runtime.ts',
|
|
45
45
|
'src/core/codex/codex-web-search-adapter.ts'
|
|
46
46
|
];
|
|
47
|
-
export const
|
|
47
|
+
export const AGENT_RUNTIME_FILES = [
|
|
48
48
|
'src/core/agents/scout-policy.ts',
|
|
49
49
|
'src/core/agents/agent-terminal-session.ts',
|
|
50
50
|
'src/core/agents/zellij-right-lane-cockpit.ts',
|
|
@@ -25,7 +25,10 @@ const policyCallsiteAllowlist = new Map([
|
|
|
25
25
|
['mkdtemp|src/core/perf/release-latency-slo.ts|runReleaseLatencySlo|mkdtemp', 'run-local latency fixture root'],
|
|
26
26
|
['mkdtemp|src/core/release/npm-stage-tarball-verifier.ts|verifyNpmStageTarball|mkdtempSync', 'private stage-review transaction root'],
|
|
27
27
|
['mkdtemp|src/core/release/release-pack-content-scanner.ts|scanTarballTextContents|mkdtempSync', 'finally-cleaned tar scan root'],
|
|
28
|
-
['mkdtemp|src/core/release/release-pack-tarball.ts|tarUnpackedBytes|mkdtempSync', 'finally-cleaned tar inventory root']
|
|
28
|
+
['mkdtemp|src/core/release/release-pack-tarball.ts|tarUnpackedBytes|mkdtempSync', 'finally-cleaned tar inventory root'],
|
|
29
|
+
['mkdtemp|src/scripts/codex-native-gate-lib.ts|tempRoot|mkdtemp', 'per-gate isolated OS-temp fixture root'],
|
|
30
|
+
['mkdtemp|src/scripts/runtime-domain-gate-lib.ts|tempRoot|mkdtemp', 'per-gate isolated OS-temp fixture root'],
|
|
31
|
+
['mkdtemp|src/scripts/typed-routing-gate-lib.ts|tempRoot|mkdtemp', 'per-gate isolated OS-temp fixture root']
|
|
29
32
|
]);
|
|
30
33
|
const policyCallsiteAllowlistHits = new Set();
|
|
31
34
|
const splitReviewLineCounts = splitReviewFiles.map((file) => ({
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate } from './
|
|
5
|
+
import { assertGate, emitGate } from './gate-lib.js';
|
|
6
6
|
import { checkpointWorkerWorktree } from '../core/git/git-worktree-checkpoint.js';
|
|
7
7
|
import { runGitCommand } from '../core/git/git-worktree-runner.js';
|
|
8
8
|
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-worktree-checkpoint-'));
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate } from './
|
|
5
|
+
import { assertGate, emitGate } from './gate-lib.js';
|
|
6
6
|
import { crossRebaseIdleWorktrees } from '../core/git/git-worktree-cross-rebase.js';
|
|
7
7
|
import { runGitCommand, gitOutputLine } from '../core/git/git-worktree-runner.js';
|
|
8
8
|
const suiteRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-worktree-cross-rebase-'));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { assertGate, emitGate, importDist } from './
|
|
2
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
3
3
|
const envelopeMod = await importDist('core/git/git-worktree-patch-envelope.js');
|
|
4
4
|
const schemaMod = await importDist('core/agents/agent-patch-schema.js');
|
|
5
5
|
const envelope = envelopeMod.buildGitWorktreePatchEnvelope({
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist } from './
|
|
5
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
6
6
|
import { makeGitFixture } from './lib/git-worktree-fixture.js';
|
|
7
7
|
const managerMod = await importDist('core/git/git-worktree-manager.js');
|
|
8
8
|
const cleanupMod = await importDist('core/git/git-worktree-cleanup.js');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import { assertGate, emitGate, importDist } from './
|
|
4
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
5
5
|
import { makeGitFixture } from './lib/git-worktree-fixture.js';
|
|
6
6
|
const detectionMod = await importDist('core/git/git-repo-detection.js');
|
|
7
7
|
const repo = makeGitFixture('dirty-main-detection');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist } from './
|
|
5
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
6
6
|
import { makeGitFixture } from './lib/git-worktree-fixture.js';
|
|
7
7
|
const managerMod = await importDist('core/git/git-worktree-manager.js');
|
|
8
8
|
const diffMod = await importDist('core/git/git-worktree-diff.js');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist } from './
|
|
5
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
6
6
|
import { makeGitFixture } from './lib/git-worktree-fixture.js';
|
|
7
7
|
const managerMod = await importDist('core/git/git-worktree-manager.js');
|
|
8
8
|
const repo = makeGitFixture('worktree-manifest-append');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist } from './
|
|
5
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
6
6
|
import { makeGitFixture } from './lib/git-worktree-fixture.js';
|
|
7
7
|
const managerMod = await importDist('core/git/git-worktree-manager.js');
|
|
8
8
|
const diffMod = await importDist('core/git/git-worktree-diff.js');
|
|
@@ -3,7 +3,7 @@ import fs from 'node:fs/promises';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { performance } from 'node:perf_hooks';
|
|
6
|
-
import { assertGate, emitGate, root } from './
|
|
6
|
+
import { assertGate, emitGate, root } from './gate-lib.js';
|
|
7
7
|
import { COMMAND_MANIFEST_LITE } from '../cli/command-manifest-lite.js';
|
|
8
8
|
import { ensureDir, nowIso, runProcess, writeJsonAtomic } from '../core/fsx.js';
|
|
9
9
|
import { reviewCommand } from '../core/commands/review-command.js';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { assertGate, emitGate, importDist, root } from './gate-lib.js';
|
|
5
|
+
const { analyzeHelperDuplication, DEFAULT_MAX_COPIES } = await importDist('core/quality/helper-dedup.js');
|
|
6
|
+
const BASELINE = {
|
|
7
|
+
emit: 22,
|
|
8
|
+
assertGate: 12,
|
|
9
|
+
emitGate: 10,
|
|
10
|
+
sleep: 9,
|
|
11
|
+
delay: 8,
|
|
12
|
+
unique: 7,
|
|
13
|
+
readJson: 6,
|
|
14
|
+
errorCode: 5,
|
|
15
|
+
restoreEnv: 5,
|
|
16
|
+
asList: 4,
|
|
17
|
+
escapeRegex: 4,
|
|
18
|
+
exists: 4,
|
|
19
|
+
nonEmpty: 4,
|
|
20
|
+
normalizePath: 4,
|
|
21
|
+
normalizeStringList: 4,
|
|
22
|
+
parseJson: 4,
|
|
23
|
+
processIsAlive: 4,
|
|
24
|
+
read: 4,
|
|
25
|
+
readArg: 4,
|
|
26
|
+
readOption: 4,
|
|
27
|
+
rel: 4,
|
|
28
|
+
sha256: 4,
|
|
29
|
+
shellQuote: 4,
|
|
30
|
+
tail: 4,
|
|
31
|
+
walk: 4
|
|
32
|
+
};
|
|
33
|
+
function collect(dir, out) {
|
|
34
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
35
|
+
const full = path.join(dir, entry.name);
|
|
36
|
+
if (entry.isDirectory())
|
|
37
|
+
collect(full, out);
|
|
38
|
+
else if (entry.name.endsWith('.ts')) {
|
|
39
|
+
out.push({ path: path.relative(root, full).split(path.sep).join('/'), text: fs.readFileSync(full, 'utf8') });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
const sources = collect(path.join(root, 'src'), []);
|
|
45
|
+
const report = analyzeHelperDuplication(sources, { maxCopies: DEFAULT_MAX_COPIES, baseline: BASELINE });
|
|
46
|
+
const shrunk = Object.entries(BASELINE)
|
|
47
|
+
.filter(([name, allowed]) => {
|
|
48
|
+
const current = report.waived.find((group) => group.name === name)?.count ?? 0;
|
|
49
|
+
return current < allowed;
|
|
50
|
+
})
|
|
51
|
+
.map(([name]) => name);
|
|
52
|
+
console.log(JSON.stringify({ ...report, baseline_entries: Object.keys(BASELINE).length, shrunk }, null, 2));
|
|
53
|
+
if (shrunk.length > 0) {
|
|
54
|
+
console.log(`Baseline can be tightened for: ${shrunk.join(', ')}`);
|
|
55
|
+
}
|
|
56
|
+
assertGate(report.ok, 'a pure helper is defined identically in more modules than the ceiling allows — export it once and import it', report);
|
|
57
|
+
emitGate('quality:helper-dedup', {
|
|
58
|
+
max_copies: report.max_copies,
|
|
59
|
+
scanned_files: report.scanned_files,
|
|
60
|
+
scanned_helpers: report.scanned_helpers,
|
|
61
|
+
baselined: report.waived.length
|
|
62
|
+
});
|
|
@@ -4,7 +4,7 @@ import fsp from 'node:fs/promises';
|
|
|
4
4
|
import os from 'node:os';
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import { performance } from 'node:perf_hooks';
|
|
7
|
-
import { assertGate, emitGate, importDist } from './
|
|
7
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
8
8
|
const budgetMs = Number(process.env.SKS_HOOK_LATENCY_BUDGET_MS || 25);
|
|
9
9
|
const readBudget = Number(process.env.SKS_HOOK_LATENCY_READ_BUDGET || 3);
|
|
10
10
|
const root = await fsp.mkdtemp(path.join(os.tmpdir(), 'sks-hook-latency-'));
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'node:fs/promises';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { assertGate, emitGate, importDist } from './
|
|
5
|
+
import { assertGate, emitGate, importDist } from './gate-lib.js';
|
|
6
6
|
const mod = await importDist('core/image/image-artifact-path-contract.js');
|
|
7
7
|
const root = await fs.mkdtemp(path.join(os.tmpdir(), 'sks-image-contract-'));
|
|
8
8
|
const png = path.join(root, 'fixture.png');
|
|
@@ -5,13 +5,10 @@ import { spawnSync } from 'node:child_process';
|
|
|
5
5
|
import { osTempPngFixtureArg } from './lib/valid-png-fixture.js';
|
|
6
6
|
const enabled = process.env.SKS_TEST_REAL_IMAGEGEN === '1' || process.env.SKS_REAL_IMAGEGEN === '1';
|
|
7
7
|
const reportDir = path.join(process.cwd(), '.sneakoscope', 'reports');
|
|
8
|
-
const out = path.join(reportDir, 'real-imagegen-smoke
|
|
9
|
-
const stableOut = path.join(reportDir, 'real-imagegen-smoke.json');
|
|
8
|
+
const out = path.join(reportDir, 'real-imagegen-smoke.json');
|
|
10
9
|
fs.mkdirSync(reportDir, { recursive: true });
|
|
11
10
|
function writeReport(report) {
|
|
12
|
-
|
|
13
|
-
fs.writeFileSync(out, text);
|
|
14
|
-
fs.writeFileSync(stableOut, text);
|
|
11
|
+
fs.writeFileSync(out, `${JSON.stringify(report, null, 2)}\n`);
|
|
15
12
|
}
|
|
16
13
|
function parseUxReviewJson(stdout) {
|
|
17
14
|
const text = String(stdout || '').trim();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { assertGate, emitGate, importDist, root } from './
|
|
2
|
+
import { assertGate, emitGate, importDist, root } from './gate-lib.js';
|
|
3
3
|
const { runInstalledPackageSmoke } = await importDist('core/install/installed-package-smoke.js');
|
|
4
4
|
const report = await runInstalledPackageSmoke(root, {
|
|
5
5
|
...(option('--tarball') ? { tarball: option('--tarball') } : {}),
|