sneakoscope 6.0.3 → 6.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -12
- package/config/codex-releases/{rust-v0.142.0.json → rust-v0.144.1.json} +6 -6
- package/crates/sks-core/Cargo.lock +1 -1
- package/crates/sks-core/Cargo.toml +1 -1
- package/dist/bin/fast-inline.js +18 -14
- package/dist/bin/sks-dispatch.js +2 -4
- package/dist/cli/args.js +2 -0
- package/dist/cli/command-manifest-lite.js +2 -3
- package/dist/cli/command-registry.js +3 -4
- package/dist/cli/help-fast.js +1 -1
- package/dist/cli/install-helpers.js +348 -763
- package/dist/cli/install-tool-helpers.js +287 -0
- package/dist/cli/router.js +91 -6
- package/dist/commands/codex-lb.js +188 -53
- package/dist/commands/codex.js +44 -5
- package/dist/commands/doctor.js +302 -46
- package/dist/commands/tmux.js +5 -1
- package/dist/commands/versioning.js +7 -0
- package/dist/commands/zellij-monitor-pane.js +2 -0
- package/dist/commands/zellij-viewport-pane.js +3 -1
- package/dist/commands/zellij.js +1 -1
- package/dist/config/skills-manifest.json +59 -59
- package/dist/core/agent-bridge/agent-manifest.js +48 -0
- package/dist/core/agents/agent-central-ledger.js +9 -0
- package/dist/core/agents/agent-cleanup-executor.js +334 -41
- package/dist/core/agents/agent-cleanup.js +20 -1
- package/dist/core/agents/agent-command-surface.js +3 -1
- package/dist/core/agents/agent-effort-policy.js +30 -38
- package/dist/core/agents/agent-janitor.js +9 -10
- package/dist/core/agents/agent-namespace-safety.js +56 -0
- package/dist/core/agents/agent-orchestrator.js +25 -3
- package/dist/core/agents/agent-output-validator.js +1 -1
- package/dist/core/agents/agent-plan.js +100 -21
- package/dist/core/agents/agent-role-config.js +43 -49
- package/dist/core/agents/agent-runner-codex-exec.js +18 -3
- package/dist/core/agents/agent-runner-process.js +1 -0
- package/dist/core/agents/agent-schema.js +3 -2
- package/dist/core/agents/fast-mode-policy.js +3 -5
- package/dist/core/agents/native-cli-session-swarm.js +1 -1
- package/dist/core/agents/native-worker-backend-router.js +2 -1
- package/dist/core/agents/work-partition/repo-inventory.js +68 -7
- package/dist/core/agents/zellij-right-lane-cockpit.js +2 -2
- package/dist/core/code-structure.js +5 -4
- package/dist/core/codex/agent-config-file-repair.js +94 -193
- package/dist/core/codex/codex-cli-update.js +723 -0
- package/dist/core/codex/codex-config-guard.js +38 -11
- package/dist/core/codex/codex-project-config-policy.js +3 -6
- package/dist/core/codex/codex-startup-config-postcheck.js +52 -42
- package/dist/core/codex-adapter.js +35 -22
- package/dist/core/codex-app/codex-agent-role-sync.js +13 -54
- package/dist/core/codex-app/codex-app-fast-ui-repair.js +51 -20
- package/dist/core/codex-app/codex-app-launcher.js +48 -17
- package/dist/core/codex-app/codex-app-restart.js +23 -2
- package/dist/core/codex-app/codex-app-ui-state-snapshot.js +11 -3
- package/dist/core/codex-app/sks-menubar.js +136 -5
- package/dist/core/codex-app.js +35 -14
- package/dist/core/codex-compat/codex-hook-warning-detector.js +10 -1
- package/dist/core/codex-compat/codex-release-manifest.js +6 -6
- package/dist/core/codex-control/codex-0139-doctor-real-probe.js +7 -1
- package/dist/core/codex-control/codex-0139-image-path-real-probe.js +29 -12
- package/dist/core/codex-control/codex-0139-probe-runner.js +103 -28
- package/dist/core/codex-control/codex-0139-real-probe-summary.js +7 -3
- package/dist/core/codex-control/codex-0139-real-probes.js +21 -6
- package/dist/core/codex-control/codex-0139-sandbox-real-probe.js +39 -13
- package/dist/core/codex-control/codex-0139-web-search-probe.js +28 -14
- package/dist/core/codex-control/{codex-0142-capability.js → codex-0144-capability.js} +22 -22
- package/dist/core/codex-control/codex-0144-collab-agent-real-probe.js +63 -0
- package/dist/core/codex-control/codex-lb-launch-recovery.js +278 -0
- package/dist/core/codex-control/codex-multi-agent-event-normalizer.js +5 -1
- package/dist/core/codex-control/codex-reliability-shield.js +93 -30
- package/dist/core/codex-control/codex-sdk-adapter.js +96 -13
- package/dist/core/codex-control/codex-sdk-config-policy.js +2 -1
- package/dist/core/codex-control/codex-sdk-sandbox-policy.js +6 -3
- package/dist/core/codex-control/codex-task-runner.js +62 -9
- package/dist/core/codex-control/python-codex-sdk-adapter.js +30 -3
- package/dist/core/codex-exec-output-schema.js +35 -6
- package/dist/core/codex-lb/codex-lb-env.js +30 -1
- package/dist/core/codex-lb/codex-lb-tool-catalog.js +478 -0
- package/dist/core/codex-lb/codex-lb-tool-output-recovery.js +291 -0
- package/dist/core/codex-native/codex-native-feature-broker.js +31 -38
- package/dist/core/codex-native/codex-native-feature-matrix.js +2 -2
- package/dist/core/codex-native/codex-native-repair-transaction.js +1 -1
- package/dist/core/codex-native/core-skill-manifest.js +8 -4
- package/dist/core/codex-native/native-capability-postcheck.js +16 -8
- package/dist/core/codex-native/native-capability-repair-matrix.js +76 -27
- package/dist/core/codex-plugins/codex-plugin-json.js +67 -21
- package/dist/core/codex-plugins/codex-plugin-repair.js +118 -0
- package/dist/core/codex-runtime/codex-desktop-config-policy.js +305 -0
- package/dist/core/commands/agent-bridge-command.js +23 -2
- package/dist/core/commands/agent-command.js +38 -5
- package/dist/core/commands/basic-cli.js +77 -30
- package/dist/core/commands/command-utils.js +1 -1
- package/dist/core/commands/gc-command.js +27 -4
- package/dist/core/commands/image-ux-review-command.js +55 -24
- package/dist/core/commands/mad-sks-command.js +182 -137
- package/dist/core/commands/naruto-command.js +643 -1153
- package/dist/core/commands/pipeline-command.js +1 -0
- package/dist/core/commands/research-command.js +293 -231
- package/dist/core/commands/run-command.js +100 -23
- package/dist/core/commands/team-command.js +2 -3
- package/dist/core/commands/team-legacy-observe-command.js +94 -359
- package/dist/core/commands/wiki-command.js +179 -83
- package/dist/core/computer-use-live-evidence.js +166 -3
- package/dist/core/computer-use-status.js +5 -2
- package/dist/core/daemon/sksd-hook-daemon-entrypoint.js +2 -2
- package/dist/core/daemon/sksd-hook-daemon.js +171 -28
- package/dist/core/daemon/sksd-hook-dispatch.js +2 -2
- package/dist/core/db-safety.js +2 -2
- package/dist/core/decision-lattice.js +6 -6
- package/dist/core/dfix/verification-selector.js +6 -4
- package/dist/core/doctor/browser-use-repair.js +54 -13
- package/dist/core/doctor/codex-0139-doctor.js +3 -2
- package/dist/core/doctor/codex-startup-config-repair.js +8 -3
- package/dist/core/doctor/computer-use-repair.js +28 -39
- package/dist/core/doctor/doctor-codex-startup-repair.js +24 -149
- package/dist/core/doctor/doctor-context7-repair.js +1 -1
- package/dist/core/doctor/doctor-dirty-planner.js +1 -1
- package/dist/core/doctor/doctor-native-capability-repair.js +74 -3
- package/dist/core/doctor/imagegen-repair.js +47 -12
- package/dist/core/doctor/legacy-global-hook-cleanup.js +179 -0
- package/dist/core/feature-fixture-executor.js +71 -7
- package/dist/core/feature-fixture-runner.js +53 -12
- package/dist/core/feature-fixtures.js +47 -14
- package/dist/core/feature-registry.js +53 -58
- package/dist/core/fsx.js +54 -6
- package/dist/core/harness-conflicts.js +19 -10
- package/dist/core/hooks-runtime/code-pack-freshness-preflight.js +5 -4
- package/dist/core/hooks-runtime/hook-invocation-dedupe.js +147 -0
- package/dist/core/hooks-runtime/hook-io.js +14 -4
- package/dist/core/hooks-runtime/light-turn.js +70 -0
- package/dist/core/hooks-runtime/payload-signals.js +270 -0
- package/dist/core/hooks-runtime/team-digest.js +0 -1
- package/dist/core/hooks-runtime/tool-output-quarantine.js +93 -0
- package/dist/core/hooks-runtime.js +418 -250
- package/dist/core/image/image-artifact-path-contract.js +8 -6
- package/dist/core/image/image-artifact-registry.js +5 -1
- package/dist/core/image-ux-review/imagegen-adapter.js +5 -2
- package/dist/core/imagegen/imagegen-capability.js +10 -13
- package/dist/core/imagegen/require-imagegen.js +37 -11
- package/dist/core/init/skills.js +16 -30
- package/dist/core/init.js +144 -36
- package/dist/core/managed-assets/managed-assets-manifest.js +417 -14
- package/dist/core/mission.js +24 -1
- package/dist/core/naruto/naruto-work-graph.js +70 -4
- package/dist/core/ops/reporting.js +3 -0
- package/dist/core/pipeline-internals/runtime-core.js +578 -180
- package/dist/core/pipeline-internals/runtime-gates.js +191 -49
- package/dist/core/ppt/style-tokens.js +1 -1
- package/dist/core/ppt-review/index.js +1 -1
- package/dist/core/ppt-review/slide-exporter.js +23 -17
- package/dist/core/ppt-review/slide-imagegen-review.js +1 -1
- package/dist/core/ppt-review/slide-issue-extraction.js +4 -2
- package/dist/core/preflight/parallel-preflight-engine.js +50 -1
- package/dist/core/product-design-plugin.js +2 -2
- package/dist/core/proof/route-finalizer.js +1 -1
- package/dist/core/proof/route-proof-gate.js +7 -2
- package/dist/core/proof-field.js +3 -3
- package/dist/core/provider/model-router.js +38 -32
- package/dist/core/recallpulse/policy.js +12 -28
- package/dist/core/recallpulse.js +11 -6
- package/dist/core/release/gate-manifest.js +18 -12
- package/dist/core/release/gate-pack-manifest.js +1 -1
- package/dist/core/release/npm-pack-proof.js +247 -0
- package/dist/core/release/package-dist-snapshot.js +151 -0
- package/dist/core/release/package-size-budget.js +5 -0
- package/dist/core/release/release-authorization-snapshot.js +115 -0
- package/dist/core/release/release-gate-affected-selector.js +15 -3
- package/dist/core/release/release-gate-cache-v2.js +30 -0
- package/dist/core/release/release-gate-contract.js +161 -0
- package/dist/core/release/release-gate-dag.js +44 -3
- package/dist/core/release/release-gate-hermetic-env.js +28 -17
- package/dist/core/release/release-real-contract.js +496 -0
- package/dist/core/release-parallel-full-coverage.js +31 -143
- package/dist/core/research/claim-evidence-matrix.js +41 -6
- package/dist/core/research/experiment-plan.js +14 -10
- package/dist/core/research/falsification.js +9 -2
- package/dist/core/research/implementation-blueprint-densifier.js +82 -60
- package/dist/core/research/implementation-blueprint.js +32 -26
- package/dist/core/research/mock-result.js +122 -11
- package/dist/core/research/replication-pack.js +15 -8
- package/dist/core/research/research-adversarial-review.js +1068 -0
- package/dist/core/research/research-claim-builder.js +69 -17
- package/dist/core/research/research-claim-synthesizer.js +343 -0
- package/dist/core/research/research-cycle-runner.js +53 -3
- package/dist/core/research/research-falsification-runner.js +176 -0
- package/dist/core/research/research-final-reviewer.js +44 -125
- package/dist/core/research/research-realistic-report.js +14 -6
- package/dist/core/research/research-review-artifact-digest.js +66 -0
- package/dist/core/research/research-source-evidence.js +144 -0
- package/dist/core/research/research-source-layer-catalog.js +68 -0
- package/dist/core/research/research-source-ledger-merge.js +250 -12
- package/dist/core/research/research-source-shards.js +26 -70
- package/dist/core/research/research-stage-runner.js +237 -247
- package/dist/core/research/research-super-search.js +184 -0
- package/dist/core/research/research-synthesis-prompt.js +20 -1
- package/dist/core/research/research-synthesis-writer.js +86 -5
- package/dist/core/research/research-work-graph.js +25 -18
- package/dist/core/research/source-quality-report.js +21 -0
- package/dist/core/research.js +429 -280
- package/dist/core/retention/retention-budget.js +25 -6
- package/dist/core/retention.js +980 -101
- package/dist/core/routes/constants.js +1 -1
- package/dist/core/routes/dollar-manifest-lite.js +11 -11
- package/dist/core/routes/evidence.js +4 -4
- package/dist/core/routes/ppt-policy.js +1 -1
- package/dist/core/routes.js +92 -64
- package/dist/core/runtime/task-profile.js +66 -0
- package/dist/core/runtime/verification-budget.js +12 -0
- package/dist/core/secret-redaction.js +4 -0
- package/dist/core/security/high-risk-contracts.js +6 -6
- package/dist/core/stop-gate/stop-gate-check.js +49 -12
- package/dist/core/subagents/agent-catalog.js +215 -0
- package/dist/core/subagents/model-policy.js +118 -0
- package/dist/core/subagents/naruto-help-contract.js +40 -0
- package/dist/core/subagents/official-subagent-config.js +488 -0
- package/dist/core/subagents/official-subagent-preparation.js +251 -0
- package/dist/core/subagents/official-subagent-prompt.js +137 -0
- package/dist/core/subagents/official-subagent-runner.js +129 -0
- package/dist/core/subagents/subagent-evidence.js +663 -0
- package/dist/core/subagents/terminology.js +16 -0
- package/dist/core/subagents/thread-budget.js +21 -0
- package/dist/core/subagents/triwiki-attention.js +65 -0
- package/dist/core/super-search/runtime-helpers.js +173 -19
- package/dist/core/super-search/runtime.js +140 -15
- package/dist/core/super-search/source-records.js +49 -8
- package/dist/core/team-review-policy.js +15 -0
- package/dist/core/triwiki/code-pack.js +8 -2
- package/dist/core/triwiki/triwiki-cache-key.js +108 -29
- package/dist/core/triwiki/triwiki-module-card.js +1 -1
- package/dist/core/triwiki-attention.js +13 -6
- package/dist/core/triwiki-provenance.js +274 -0
- package/dist/core/triwiki-runtime.js +21 -7
- package/dist/core/triwiki-wrongness/wrongness-ledger.js +187 -61
- package/dist/core/triwiki-wrongness/wrongness-retrieval.js +11 -2
- package/dist/core/triwiki-wrongness/wrongness-trust-policy.js +2 -0
- package/dist/core/update-check.js +23 -15
- package/dist/core/version-manager.js +51 -1
- package/dist/core/version.js +1 -1
- package/dist/core/wiki-coordinate.js +128 -12
- package/dist/core/work-order-ledger.js +208 -10
- package/dist/core/zellij/zellij-command.js +12 -1
- package/dist/core/zellij/zellij-dashboard-pane.js +3 -3
- package/dist/core/zellij/zellij-fake-adapter.js +3 -1
- package/dist/core/zellij/zellij-launcher.js +51 -21
- package/dist/core/zellij/zellij-layout-builder.js +14 -5
- package/dist/core/zellij/zellij-official-subagent-activity.js +477 -0
- package/dist/core/zellij/zellij-official-subagent-telemetry.js +264 -0
- package/dist/core/zellij/zellij-pane-proof.js +32 -6
- package/dist/core/zellij/zellij-slot-pane-renderer.js +17 -5
- package/dist/core/zellij/zellij-slot-telemetry.js +15 -3
- package/dist/core/zellij/zellij-ui-mode.js +1 -1
- package/dist/core/zellij/zellij-viewport-binder.js +3 -0
- package/dist/core/zellij/zellij-worker-pane-manager.js +5 -3
- package/dist/scripts/agent-fast-mode-default-check.js +48 -29
- package/dist/scripts/agent-role-config-repair-check.js +34 -15
- package/dist/scripts/agent-wiki-context-proof-check.js +16 -2
- package/dist/scripts/all-feature-deep-completion-check.js +14 -4
- package/dist/scripts/architecture-guard-check.js +8 -1
- package/dist/scripts/build-dist.js +17 -5
- package/dist/scripts/canonical-test-runner.js +188 -0
- package/dist/scripts/check-command-module-budget.js +38 -16
- package/dist/scripts/check-legacy-free.js +1 -1
- package/dist/scripts/check-route-modularity.js +0 -1
- package/dist/scripts/check-ts-contracts.js +1 -1
- package/dist/scripts/codex-0139-interrupt-agent-check.js +5 -1
- package/dist/scripts/{codex-0142-app-server-v2-check.js → codex-0144-app-server-v2-check.js} +11 -10
- package/dist/scripts/{codex-0142-binary-identity-check.js → codex-0144-binary-identity-check.js} +4 -4
- package/dist/scripts/codex-0144-capability-check.js +21 -0
- package/dist/scripts/{codex-0139-real-probes-check.js → codex-0144-core-real-probes-check.js} +19 -5
- package/dist/scripts/{codex-0142-doctor-wiring-check.js → codex-0144-doctor-wiring-check.js} +6 -6
- package/dist/scripts/{codex-0142-manifest-check.js → codex-0144-manifest-check.js} +11 -3
- package/dist/scripts/{codex-0142-policy-check.js → codex-0144-policy-check.js} +2 -2
- package/dist/scripts/{codex-0142-thread-store-check.js → codex-0144-thread-store-check.js} +3 -3
- package/dist/scripts/codex-app-provider-model-ui-check.js +53 -19
- package/dist/scripts/codex-app-ui-preservation-check.js +35 -4
- package/dist/scripts/codex-control-all-pipelines-check.js +7 -3
- package/dist/scripts/codex-control-side-effect-scope-check.js +2 -2
- package/dist/scripts/codex-control-tool-output-continuity-audit-check.js +27 -0
- package/dist/scripts/codex-effort-auto-discovery-check.js +1 -1
- package/dist/scripts/codex-lb-fast-mode-truth-check.js +1 -0
- package/dist/scripts/{codex-lb-gpt55-fast-profile-check.js → codex-lb-gpt56-fast-profile-check.js} +56 -5
- package/dist/scripts/codex-model-metadata-check.js +1 -1
- package/dist/scripts/codex-native-agent-role-content-check.js +15 -7
- package/dist/scripts/codex-native-repair-transaction-check.js +3 -1
- package/dist/scripts/codex-sdk-all-pipelines-check.js +7 -4
- package/dist/scripts/codex-sdk-research-pipeline-check.js +30 -8
- package/dist/scripts/codex-sdk-sandbox-policy-check.js +5 -1
- package/dist/scripts/codex-sdk-version-compat-check.js +2 -1
- package/dist/scripts/db-route-materialization-check.js +33 -0
- package/dist/scripts/dfix-fixture-check.js +1 -1
- package/dist/scripts/docs-truthfulness-check.js +4 -2
- package/dist/scripts/doctor-codex-startup-repair-check.js +47 -25
- package/dist/scripts/doctor-context7-repair-check.js +2 -1
- package/dist/scripts/doctor-fix-production-blackbox.js +12 -2
- package/dist/scripts/doctor-fixes-codex-app-fast-ui-check.js +34 -7
- package/dist/scripts/doctor-imagegen-repair-check.js +14 -4
- package/dist/scripts/doctor-startup-config-repair-blackbox.js +9 -3
- package/dist/scripts/doctor-startup-config-repair-check.js +13 -3
- package/dist/scripts/install-update-preserves-config-check.js +7 -2
- package/dist/scripts/legacy-gate-inventory-check.js +7 -5
- package/dist/scripts/legacy-strong-inventory-check.js +7 -5
- package/dist/scripts/legacy-upgrade-matrix-check.js +4 -4
- package/dist/scripts/lib/native-cli-session-swarm-check-lib.js +173 -13
- package/dist/scripts/mad-sks-app-ui-no-mutation-check.js +165 -6
- package/dist/scripts/managed-role-manifest-parity-check.js +5 -4
- package/dist/scripts/mutation-callsite-coverage-check.js +0 -11
- package/dist/scripts/naruto-codex-e2e-check.js +14 -7
- package/dist/scripts/naruto-shadow-clone-swarm-check.js +4 -201
- package/dist/scripts/npm-publish-performance-check.js +20 -12
- package/dist/scripts/official-subagent-workflow-check.js +145 -0
- package/dist/scripts/package-published-contract-check.js +6 -20
- package/dist/scripts/packlist-performance-check.js +17 -3
- package/dist/scripts/parallel-verification-engine-check.js +2 -2
- package/dist/scripts/postinstall-safe-side-effects-check.js +8 -3
- package/dist/scripts/ppt-no-mock-as-real-check.js +3 -1
- package/dist/scripts/prepublish-release-check-or-fast.js +23 -86
- package/dist/scripts/product-design-plugin-routing-check.js +1 -1
- package/dist/scripts/release-affected-selector-check.js +74 -1
- package/dist/scripts/release-check-stamp.js +324 -239
- package/dist/scripts/release-dag-full-coverage-check.js +7 -15
- package/dist/scripts/release-dynamic-presets-check.js +10 -1
- package/dist/scripts/release-gate-dag-runner-check.js +3 -3
- package/dist/scripts/release-gate-dag-runner.js +35 -11
- package/dist/scripts/release-gate-existence-audit.js +1 -2
- package/dist/scripts/release-gate-script-parity-check.js +1 -1
- package/dist/scripts/release-parallel-full-coverage-check.js +12 -6
- package/dist/scripts/release-parallel-speed-budget-check.js +18 -2
- package/dist/scripts/release-real-check.js +390 -157
- package/dist/scripts/release-registry-check.js +61 -16
- package/dist/scripts/release-runtime-truth-matrix-check.js +22 -0
- package/dist/scripts/research-blueprint-densifier-check.js +2 -2
- package/dist/scripts/research-real-cycle-no-legacy-final-md-check.js +11 -7
- package/dist/scripts/route-proof-artifact-structure-check.js +1 -0
- package/dist/scripts/search-visibility-gate-lib.js +1 -1
- package/dist/scripts/seo-geo-route-identity-check.js +30 -4
- package/dist/scripts/sizecheck.js +4 -4
- package/dist/scripts/sks-1-11-gate-lib.js +53 -6
- package/dist/scripts/sks-3-1-4-directive-check-lib.js +8 -2
- package/dist/scripts/sks-3-1-5-directive-check-lib.js +3 -2
- package/dist/scripts/sks-3-1-6-directive-check-lib.js +5 -3
- package/dist/scripts/sks-menubar-install-check.js +8 -0
- package/dist/scripts/sks-uninstall-regression-check.js +1 -1
- package/dist/scripts/sksd-daemon-check.js +16 -6
- package/dist/scripts/trust-fixture-check.js +32 -10
- package/dist/scripts/write-build-manifest.js +2 -1
- package/dist/scripts/wrongness-fixture-check.js +1 -1
- package/dist/scripts/zellij-layout-valid-check.js +36 -11
- package/dist/scripts/zellij-pane-proof-check.js +33 -2
- package/dist/scripts/zellij-real-session-cleanup-check.js +122 -2
- package/dist/scripts/zellij-real-session-launch-check.js +76 -5
- package/dist/scripts/zellij-slot-pane-renderer-check.js +4 -4
- package/dist/scripts/zellij-spawn-on-demand-layout-check.js +3 -3
- package/docs/demo.tape +1 -1
- package/infra-harness-gates.json +1486 -0
- package/package.json +32 -19
- package/release-gates.v2.json +4060 -0
- package/runtime-required-scripts.json +9 -0
- package/schemas/codex/{app-server-0.142 → app-server-0.144}/codex_app_server_protocol.v2.schemas.json +1146 -781
- package/schemas/codex/codex-0139-real-probe-result.schema.json +39 -5
- package/schemas/codex/ppt-slide-issue-ledger.schema.json +2 -1
- package/dist/commands/db.js +0 -6
- package/dist/core/codex-control/codex-0139-multi-agent-real-probe.js +0 -107
- package/dist/core/commands/db-command.js +0 -146
- package/dist/core/research/prompt.js +0 -15
- package/dist/scripts/agent-native-release-gate.js +0 -274
- package/dist/scripts/codex-0142-capability-check.js +0 -21
- package/dist/scripts/codex-control-tool-call-sequence-repair-check.js +0 -14
- package/dist/scripts/command-performance-scorecard-check.js +0 -204
- package/dist/scripts/config-managed-merge-callsite-coverage-check.js +0 -212
- package/dist/scripts/dollar-performance-scorecard-check.js +0 -257
- package/dist/scripts/gate-timing-check.js +0 -16
- package/dist/scripts/ops-maturity-scorecard-check.js +0 -12
- package/dist/scripts/performance-baseline-check.js +0 -12
- package/dist/scripts/performance-improvement-report-check.js +0 -58
- package/dist/scripts/release-parallel-check.js +0 -389
- package/dist/scripts/release-runner-efficiency-check.js +0 -15
- package/dist/scripts/retention-long-run-smoke-check.js +0 -299
- package/docs/assets/sneakoscope-architecture-pipeline.jpg +0 -0
package/dist/commands/doctor.js
CHANGED
|
@@ -8,6 +8,8 @@ import { getCodexInfo } from '../core/codex-adapter.js';
|
|
|
8
8
|
import { rustInfo } from '../core/rust-accelerator.js';
|
|
9
9
|
import { codexAppIntegrationStatus } from '../core/codex-app.js';
|
|
10
10
|
import { codexLbMetrics, readCodexLbCircuit } from '../core/codex-lb-circuit.js';
|
|
11
|
+
import { codexLbStatus } from '../cli/install-helpers.js';
|
|
12
|
+
import { codexLbToolOutputRecoveryOverrideAcknowledged } from '../core/codex-lb/codex-lb-tool-output-recovery.js';
|
|
11
13
|
import { normalizeInstallScope } from '../core/init.js';
|
|
12
14
|
import { inspectCodexConfigReadability } from '../core/codex/codex-config-readability.js';
|
|
13
15
|
import { checkZellijCapability } from '../core/zellij/zellij-capability.js';
|
|
@@ -25,9 +27,36 @@ import { isUpdateMigrationReceiptCurrent, projectUpdateMigrationReceiptPath, wri
|
|
|
25
27
|
import { inspectSksMenuBarStatus, installSksMenuBar } from '../core/codex-app/sks-menubar.js';
|
|
26
28
|
import { sweepSksTempDirs } from '../core/retention.js';
|
|
27
29
|
import { detectImagegenCapability } from '../core/imagegen/imagegen-capability.js';
|
|
28
|
-
|
|
30
|
+
import { CURRENT_CODEX_RELEASE_MANIFEST } from '../core/codex-compat/codex-release-manifest.js';
|
|
31
|
+
import { formatHarnessConflictReport, scanHarnessConflicts } from '../core/harness-conflicts.js';
|
|
32
|
+
export async function run(_command, args = [], deps = {}) {
|
|
29
33
|
const root = await projectRoot();
|
|
30
34
|
const doctorFix = flag(args, '--fix');
|
|
35
|
+
const globalOnly = doctorFix && flag(args, '--global-only');
|
|
36
|
+
if (doctorFix) {
|
|
37
|
+
const conflictScan = await scanHarnessConflicts(root);
|
|
38
|
+
if (conflictScan.hard_block) {
|
|
39
|
+
const blocked = {
|
|
40
|
+
schema: 'sks.doctor-status.v3',
|
|
41
|
+
ok: false,
|
|
42
|
+
status: 'blocked_harness_conflict',
|
|
43
|
+
diagnostic_depth: 'fix',
|
|
44
|
+
root,
|
|
45
|
+
blockers: conflictScan.hard.map((item) => `${item.name || 'harness'}:${item.path}`),
|
|
46
|
+
conflicts: conflictScan.conflicts,
|
|
47
|
+
cleanup_prompt_command: 'sks conflicts prompt',
|
|
48
|
+
no_fix_writes_performed: true
|
|
49
|
+
};
|
|
50
|
+
process.exitCode = 1;
|
|
51
|
+
if (flag(args, '--json')) {
|
|
52
|
+
printJson(blocked);
|
|
53
|
+
return blocked;
|
|
54
|
+
}
|
|
55
|
+
console.error(formatHarnessConflictReport(conflictScan, { includePrompt: false }));
|
|
56
|
+
console.error('Run `sks conflicts prompt` and obtain explicit human approval before cleanup.');
|
|
57
|
+
return blocked;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
31
60
|
const doctorProfile = doctorProfileFromArgs(args, doctorFix);
|
|
32
61
|
if (!flag(args, '--json')) {
|
|
33
62
|
cliUi.banner('doctor');
|
|
@@ -35,10 +64,153 @@ export async function run(_command, args = []) {
|
|
|
35
64
|
}
|
|
36
65
|
if (!doctorFix && flag(args, '--json') && doctorProfile === 'fast')
|
|
37
66
|
return runDoctorJsonFastPath(args, root);
|
|
38
|
-
if (doctorFix)
|
|
39
|
-
|
|
67
|
+
if (doctorFix) {
|
|
68
|
+
const guardRoot = globalOnly
|
|
69
|
+
? path.resolve(deps.home || process.env.HOME || os.homedir())
|
|
70
|
+
: root;
|
|
71
|
+
return withSecretPreservationGuard(guardRoot, 'doctor-fix', async () => (globalOnly
|
|
72
|
+
? runDoctorGlobalOnlyFix(args, root, deps)
|
|
73
|
+
: runDoctor(args, root, doctorFix)));
|
|
74
|
+
}
|
|
40
75
|
return runDoctor(args, root, doctorFix);
|
|
41
76
|
}
|
|
77
|
+
export async function executeDoctorGlobalOnlyFix(args = [], root, deps = {}) {
|
|
78
|
+
const startedAtMs = Date.now();
|
|
79
|
+
const home = path.resolve(deps.home || process.env.HOME || os.homedir());
|
|
80
|
+
const reconcileSkillsImpl = deps.reconcileSkillsImpl
|
|
81
|
+
|| (await import('../core/init/skills.js')).reconcileSkills;
|
|
82
|
+
const ensureGlobalFastModeImpl = deps.ensureGlobalCodexFastModeDuringInstallImpl
|
|
83
|
+
|| (await import('../cli/install-helpers.js')).ensureGlobalCodexFastModeDuringInstall;
|
|
84
|
+
const installMenuBarImpl = deps.installSksMenuBarImpl || installSksMenuBar;
|
|
85
|
+
const codexLbStatusImpl = deps.codexLbStatusImpl || codexLbStatus;
|
|
86
|
+
const providerStatus = await codexLbStatusImpl({
|
|
87
|
+
probeToolOutputRecovery: true,
|
|
88
|
+
allowUnverifiedToolOutputRecovery: codexLbToolOutputRecoveryOverrideAcknowledged({ args })
|
|
89
|
+
}).catch((err) => ({
|
|
90
|
+
selected: null,
|
|
91
|
+
provider_ready: false,
|
|
92
|
+
recovery_probe_failed: true,
|
|
93
|
+
tool_output_recovery: {
|
|
94
|
+
ok: false,
|
|
95
|
+
status: 'probe_failed',
|
|
96
|
+
blockers: ['codex_lb_tool_output_recovery_status_probe_failed'],
|
|
97
|
+
operator_actions: []
|
|
98
|
+
},
|
|
99
|
+
error: err?.message || String(err)
|
|
100
|
+
}));
|
|
101
|
+
const globalSkills = await reconcileSkillsImpl({
|
|
102
|
+
targetDir: path.join(home, '.agents', 'skills'),
|
|
103
|
+
scope: 'global',
|
|
104
|
+
fix: true
|
|
105
|
+
}).catch((err) => ({
|
|
106
|
+
schema: 'sks.skill-reconcile.v1',
|
|
107
|
+
scope: 'global',
|
|
108
|
+
target_dir: path.join(home, '.agents', 'skills'),
|
|
109
|
+
fix: true,
|
|
110
|
+
error: err?.message || String(err),
|
|
111
|
+
core_skill_integrity: { ok: false, installed_count: 0, restored_count: 0 }
|
|
112
|
+
}));
|
|
113
|
+
const globalFastMode = await ensureGlobalFastModeImpl().catch((err) => ({
|
|
114
|
+
status: 'failed',
|
|
115
|
+
error: err?.message || String(err)
|
|
116
|
+
}));
|
|
117
|
+
const menuBar = await installMenuBarImpl({
|
|
118
|
+
home,
|
|
119
|
+
root: home,
|
|
120
|
+
apply: true,
|
|
121
|
+
launch: true,
|
|
122
|
+
quiet: flag(args, '--json') || flag(args, '--machine-only')
|
|
123
|
+
}).catch((err) => ({
|
|
124
|
+
schema: 'sks.codex-app-sks-menubar.v1',
|
|
125
|
+
ok: false,
|
|
126
|
+
status: 'blocked',
|
|
127
|
+
blockers: [err?.message || String(err)],
|
|
128
|
+
warnings: []
|
|
129
|
+
}));
|
|
130
|
+
const recoveryReady = codexLbRecoveryStatusReady(providerStatus, true);
|
|
131
|
+
const globalSkillsReady = !globalSkills?.error
|
|
132
|
+
&& globalSkills?.core_skill_integrity?.ok !== false;
|
|
133
|
+
const globalFastModeReady = globalFastMode?.status !== 'failed'
|
|
134
|
+
&& globalFastMode?.ok !== false;
|
|
135
|
+
const menuBarReady = menuBar?.ok !== false;
|
|
136
|
+
const blockers = [...new Set([
|
|
137
|
+
...(!globalSkillsReady ? [`global_skills_reconcile_failed:${globalSkills?.error || 'core_skill_integrity'}`] : []),
|
|
138
|
+
...(!globalFastModeReady ? [`global_fast_mode_repair_failed:${globalFastMode?.error || globalFastMode?.status || 'unknown'}`] : []),
|
|
139
|
+
...(!menuBarReady ? (menuBar?.blockers || ['sks_menubar_repair_failed']) : []),
|
|
140
|
+
...(!recoveryReady ? (providerStatus?.tool_output_recovery?.blockers || ['codex_lb_tool_output_recovery_unverified']) : [])
|
|
141
|
+
].map(String).filter(Boolean))];
|
|
142
|
+
const ok = blockers.length === 0;
|
|
143
|
+
return {
|
|
144
|
+
schema: 'sks.doctor-status.v3',
|
|
145
|
+
elapsed_ms: Date.now() - startedAtMs,
|
|
146
|
+
ok,
|
|
147
|
+
status: ok ? 'global_fix_ok' : 'blocked',
|
|
148
|
+
diagnostic_depth: 'global-only',
|
|
149
|
+
global_only: true,
|
|
150
|
+
install_scope: 'global',
|
|
151
|
+
root,
|
|
152
|
+
home,
|
|
153
|
+
project_root_alias_detected: path.resolve(root) === home,
|
|
154
|
+
no_project_writes_performed: true,
|
|
155
|
+
project_phases_skipped: [
|
|
156
|
+
'project_skills_reconcile',
|
|
157
|
+
'project_codex_config_repair',
|
|
158
|
+
'project_context7_mcp_repair',
|
|
159
|
+
'project_supabase_mcp_repair',
|
|
160
|
+
'project_hook_trust_repair',
|
|
161
|
+
'project_command_alias_cleanup',
|
|
162
|
+
'project_migration_receipt'
|
|
163
|
+
],
|
|
164
|
+
skills: { global: globalSkills, project: { skipped: true, reason: 'global_only_doctor' } },
|
|
165
|
+
codex_app_fast_mode: globalFastMode,
|
|
166
|
+
sks_menubar: menuBar,
|
|
167
|
+
codex_lb: {
|
|
168
|
+
provider_status: providerStatus,
|
|
169
|
+
tool_output_recovery: providerStatus?.tool_output_recovery || null,
|
|
170
|
+
recovery_ok: recoveryReady
|
|
171
|
+
},
|
|
172
|
+
blockers,
|
|
173
|
+
next_actions: [
|
|
174
|
+
...(recoveryReady ? [] : (providerStatus?.tool_output_recovery?.operator_actions || [])),
|
|
175
|
+
'Run `sks doctor --fix --json` from a specific project directory when project-scoped repair is required.'
|
|
176
|
+
]
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
async function runDoctorGlobalOnlyFix(args = [], root, deps = {}) {
|
|
180
|
+
const result = await executeDoctorGlobalOnlyFix(args, root, deps);
|
|
181
|
+
const reportFile = readOption(args, '--report-file', null);
|
|
182
|
+
if (reportFile)
|
|
183
|
+
await writeJsonReportFile(reportFile, result);
|
|
184
|
+
if (flag(args, '--machine-only') && !flag(args, '--json')) {
|
|
185
|
+
if (!result.ok)
|
|
186
|
+
process.exitCode = 1;
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
if (flag(args, '--json')) {
|
|
190
|
+
printJson(result);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
console.log(`SKS Doctor global repair: ${result.ok ? 'ok' : 'blocked'}`);
|
|
194
|
+
console.log(`Global skills: ${result.skills.global?.error ? 'blocked' : 'reconciled'}`);
|
|
195
|
+
console.log(`SKS menu bar: ${result.sks_menubar?.status || (result.sks_menubar?.ok ? 'ok' : 'blocked')}`);
|
|
196
|
+
for (const blocker of result.blockers)
|
|
197
|
+
console.log(`- blocker: ${blocker}`);
|
|
198
|
+
for (const action of result.next_actions)
|
|
199
|
+
console.log(`- ${action}`);
|
|
200
|
+
}
|
|
201
|
+
if (!result.ok)
|
|
202
|
+
process.exitCode = 1;
|
|
203
|
+
return result;
|
|
204
|
+
}
|
|
205
|
+
function codexLbRecoveryStatusReady(status, probeRequired = false) {
|
|
206
|
+
if (status == null)
|
|
207
|
+
return !probeRequired;
|
|
208
|
+
if (status.recovery_probe_failed === true || status.error)
|
|
209
|
+
return false;
|
|
210
|
+
if (status.selected === false)
|
|
211
|
+
return true;
|
|
212
|
+
return status.selected === true && status.tool_output_recovery?.ok === true;
|
|
213
|
+
}
|
|
42
214
|
async function runDoctorJsonFastPath(args = [], root) {
|
|
43
215
|
const startedAtMs = Date.now();
|
|
44
216
|
const codexBin = readOption(args, '--codex-bin', process.env.SKS_DOCTOR_CODEX_BIN || '');
|
|
@@ -358,7 +530,31 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
358
530
|
const codexApp = deepDiagnostics
|
|
359
531
|
? await codexAppIntegrationStatus({ codex }).catch((err) => ({ ok: false, error: err.message }))
|
|
360
532
|
: { ok: false, skipped: true, warnings: ['codex_app_optional_diagnostic_skipped'] };
|
|
361
|
-
const
|
|
533
|
+
const codexLbCircuit = codexLbMetrics(await readCodexLbCircuit(root).catch(() => ({})));
|
|
534
|
+
const codexLbProviderStatus = deepDiagnostics || doctorFix
|
|
535
|
+
? await codexLbStatus({
|
|
536
|
+
probeToolOutputRecovery: true,
|
|
537
|
+
allowUnverifiedToolOutputRecovery: codexLbToolOutputRecoveryOverrideAcknowledged({ args })
|
|
538
|
+
}).catch((err) => ({
|
|
539
|
+
selected: null,
|
|
540
|
+
provider_ready: false,
|
|
541
|
+
recovery_probe_failed: true,
|
|
542
|
+
tool_output_recovery: {
|
|
543
|
+
ok: false,
|
|
544
|
+
status: 'probe_failed',
|
|
545
|
+
blockers: ['codex_lb_tool_output_recovery_status_probe_failed'],
|
|
546
|
+
operator_actions: []
|
|
547
|
+
},
|
|
548
|
+
error: err?.message || String(err)
|
|
549
|
+
}))
|
|
550
|
+
: null;
|
|
551
|
+
const codexLbRecoveryReady = codexLbRecoveryStatusReady(codexLbProviderStatus, deepDiagnostics || doctorFix);
|
|
552
|
+
const codexLb = {
|
|
553
|
+
...codexLbCircuit,
|
|
554
|
+
provider_status: codexLbProviderStatus,
|
|
555
|
+
tool_output_recovery: codexLbProviderStatus?.tool_output_recovery || null,
|
|
556
|
+
recovery_ok: codexLbRecoveryReady
|
|
557
|
+
};
|
|
362
558
|
const providerContext = deepDiagnostics
|
|
363
559
|
? await resolveProviderContext({ root, route: '$Doctor', serviceTier: process.env.SKS_SERVICE_TIER || 'fast' }).catch((err) => ({
|
|
364
560
|
schema: 'sks.provider-context.v1',
|
|
@@ -754,49 +950,78 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
754
950
|
const zellij = await checkZellijCapability({ root, require: process.env.SKS_REQUIRE_ZELLIJ === '1' });
|
|
755
951
|
const localModel = await readLocalModelConfig().catch(() => null);
|
|
756
952
|
const permissionProfiles = await inventoryCodexPermissionProfiles(root, { writeReport: true });
|
|
757
|
-
const
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
953
|
+
const startupRoleRepair = startupConfigRepair?.role_repair;
|
|
954
|
+
const agentRoleConfigRepair = doctorFix && startupRoleRepair
|
|
955
|
+
? startupRoleRepair
|
|
956
|
+
: await repairAgentRoleConfigs({
|
|
957
|
+
root,
|
|
958
|
+
apply: false,
|
|
959
|
+
reportPath: `${root}/.sneakoscope/reports/agent-role-config-repair.json`
|
|
960
|
+
}).catch((err) => ({
|
|
961
|
+
schema: 'sks.agent-role-config-repair.v1',
|
|
962
|
+
ok: false,
|
|
963
|
+
apply: false,
|
|
964
|
+
missing: [],
|
|
965
|
+
existing: [],
|
|
966
|
+
created: [],
|
|
967
|
+
warnings_suppressed: false,
|
|
968
|
+
blockers: [err?.message || String(err)]
|
|
969
|
+
}));
|
|
970
|
+
const officialSubagentConfig = await (await import('../core/subagents/official-subagent-config.js'))
|
|
971
|
+
.readOfficialSubagentConfig(root)
|
|
972
|
+
.catch((err) => ({
|
|
973
|
+
maxThreads: null,
|
|
974
|
+
maxDepth: null,
|
|
975
|
+
blockers: [`official_subagent_config_read_failed:${err?.message || String(err)}`],
|
|
976
|
+
warnings: []
|
|
770
977
|
}));
|
|
771
978
|
const globalSksInstallCleanup = flag(args, '--fix') && !flag(args, '--local-only')
|
|
772
979
|
? await (await import('../core/doctor/global-sks-install-cleanup.js')).cleanDuplicateGlobalSksInstalls({ root, fix: true }).catch((err) => ({ schema: 'sks.global-sks-install-cleanup.v1', ok: false, fix: true, error: err?.message || String(err), blockers: ['global_sks_install_cleanup_exception'] }))
|
|
773
980
|
: null;
|
|
774
981
|
const shouldProbeNativeCapabilityRepairs = doctorFix || deepDiagnostics || nativeCapabilityDiagnosticsRequested;
|
|
775
982
|
const imagegen = await detectImagegenCapability({ codexBin: codexBin || undefined }).catch((err) => ({ ok: false, error: err.message, auth_readiness: null, core_ready: false, blockers: ['imagegen_detection_exception'] }));
|
|
776
|
-
const imagegenRepair =
|
|
777
|
-
? {
|
|
983
|
+
const imagegenRepair = shouldProbeNativeCapabilityRepairs
|
|
984
|
+
? await (await import('../core/doctor/imagegen-repair.js')).repairCodexImagegen({ root, apply: doctorFix, codexBin: codexBin || null }).catch((err) => ({
|
|
778
985
|
schema: 'sks.doctor-imagegen-repair.v1',
|
|
779
|
-
ok:
|
|
780
|
-
attempted:
|
|
986
|
+
ok: false,
|
|
987
|
+
attempted: true,
|
|
781
988
|
apply: doctorFix,
|
|
782
|
-
recovered:
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
blockers: [],
|
|
787
|
-
manual_actions: []
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
? await (await import('../core/doctor/imagegen-repair.js')).repairCodexImagegen({ root, apply: doctorFix, codexBin: codexBin || null }).catch((err) => ({
|
|
989
|
+
recovered: false,
|
|
990
|
+
capability_ready: false,
|
|
991
|
+
route_ready: false,
|
|
992
|
+
real_generation_verified: false,
|
|
993
|
+
blockers: [err?.message || String(err)],
|
|
994
|
+
manual_actions: ['Run `sks doctor --fix --json` after enabling Codex App image_generation.']
|
|
995
|
+
}))
|
|
996
|
+
: imagegen.core_ready === true
|
|
997
|
+
? {
|
|
792
998
|
schema: 'sks.doctor-imagegen-repair.v1',
|
|
793
999
|
ok: false,
|
|
794
|
-
attempted:
|
|
1000
|
+
attempted: false,
|
|
795
1001
|
apply: doctorFix,
|
|
796
1002
|
recovered: false,
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
1003
|
+
capability_ready: true,
|
|
1004
|
+
configuration_ready: true,
|
|
1005
|
+
route_ready: false,
|
|
1006
|
+
real_generation_verified: false,
|
|
1007
|
+
current_task_tool_manifest_verified: false,
|
|
1008
|
+
requires_new_task: true,
|
|
1009
|
+
before: imagegen,
|
|
1010
|
+
after: imagegen,
|
|
1011
|
+
steps: [],
|
|
1012
|
+
blockers: ['codex_imagegen_current_task_tool_manifest_unverified', 'codex_imagegen_real_output_unverified'],
|
|
1013
|
+
manual_actions: [
|
|
1014
|
+
'Start a fresh Codex/Work task so $imagegen is present in its tool manifest.',
|
|
1015
|
+
'Invoke $imagegen with gpt-image-2 and bind the selected raster output path to route evidence.'
|
|
1016
|
+
],
|
|
1017
|
+
communication_test: {
|
|
1018
|
+
level: 'flag_level',
|
|
1019
|
+
ok: false,
|
|
1020
|
+
checked: 'codex features list (feature-flag/plugin metadata only)',
|
|
1021
|
+
real_generation_round_trip_performed: false,
|
|
1022
|
+
blocker: 'codex_imagegen_real_output_unverified'
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
800
1025
|
: deferredNativeRepair('sks.doctor-imagegen-repair.v1', doctorFix, [
|
|
801
1026
|
'Run `sks doctor --fix --repair-native-capabilities --json` after enabling Codex App image_generation.'
|
|
802
1027
|
]);
|
|
@@ -843,12 +1068,23 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
843
1068
|
: null;
|
|
844
1069
|
const nativeCapabilityReadinessStatus = (repair) => repair?.skipped === true
|
|
845
1070
|
? (repair.status || 'deferred')
|
|
846
|
-
:
|
|
1071
|
+
: repair?.route_ready === true
|
|
1072
|
+
? 'ok'
|
|
1073
|
+
: repair?.capability_ready === true
|
|
1074
|
+
? 'available-unverified'
|
|
1075
|
+
: (repair?.recovered === true || repair?.ok === true ? 'ok' : repair?.attempted ? 'blocked' : 'not-needed');
|
|
847
1076
|
const nativeCapabilityReadiness = {
|
|
848
1077
|
schema: 'sks.native-capability-readiness.v1',
|
|
849
1078
|
generated_at: nowIso(),
|
|
850
1079
|
apply: doctorFix,
|
|
851
|
-
imagegen: {
|
|
1080
|
+
imagegen: {
|
|
1081
|
+
status: nativeCapabilityReadinessStatus(imagegenRepair),
|
|
1082
|
+
capability_ready: imagegenRepair?.capability_ready === true,
|
|
1083
|
+
route_ready: imagegenRepair?.route_ready === true,
|
|
1084
|
+
generated_output_verified: imagegenRepair?.real_generation_verified === true,
|
|
1085
|
+
communication_test: imagegenRepair?.communication_test || null,
|
|
1086
|
+
blockers: imagegenRepair?.blockers || []
|
|
1087
|
+
},
|
|
852
1088
|
computer_use: { status: nativeCapabilityReadinessStatus(computerUseRepair), blockers: computerUseRepair?.blockers || [], next_actions: computerUseRepair?.next_actions || [] },
|
|
853
1089
|
browser_use: { status: nativeCapabilityReadinessStatus(browserUseRepair), blockers: browserUseRepair?.blockers || [], next_actions: browserUseRepair?.next_actions || [] }
|
|
854
1090
|
};
|
|
@@ -1026,7 +1262,13 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
1026
1262
|
}
|
|
1027
1263
|
const zellijReadiness = buildZellijReadiness(root, zellij, ready);
|
|
1028
1264
|
const runtimeReadiness = buildRuntimeReadiness(zellijReadiness, codexNativeFeatureMatrix);
|
|
1029
|
-
const resultOk = ready.ready
|
|
1265
|
+
const resultOk = ready.ready
|
|
1266
|
+
&& (!sksUpdate || sksUpdate.ok !== false)
|
|
1267
|
+
&& commandAliasCleanup.ok !== false
|
|
1268
|
+
&& codexStartupRepair.ok !== false
|
|
1269
|
+
&& agentRoleConfigRepair.ok !== false
|
|
1270
|
+
&& (officialSubagentConfig.blockers || []).length === 0
|
|
1271
|
+
&& codexLbRecoveryReady;
|
|
1030
1272
|
const result = {
|
|
1031
1273
|
schema: 'sks.doctor-status.v3',
|
|
1032
1274
|
elapsed_ms: Date.now() - startedAtMs,
|
|
@@ -1034,7 +1276,7 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
1034
1276
|
status: resultOk ? (doctorFix ? 'fix_ok' : deepDiagnostics ? 'full_ok' : 'fast_ok') : 'blocked',
|
|
1035
1277
|
diagnostic_depth: deepDiagnostics ? 'full' : doctorFix ? 'fix' : 'fast',
|
|
1036
1278
|
deep_diagnostics_skipped: !deepDiagnostics,
|
|
1037
|
-
deep_ok: deepDiagnostics ?
|
|
1279
|
+
deep_ok: deepDiagnostics ? resultOk : null,
|
|
1038
1280
|
not_counted_as_full_doctor: !deepDiagnostics,
|
|
1039
1281
|
root,
|
|
1040
1282
|
arg_warnings: argWarnings,
|
|
@@ -1069,6 +1311,7 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
1069
1311
|
} : null,
|
|
1070
1312
|
local_model: localModel,
|
|
1071
1313
|
agent_role_config: agentRoleConfigRepair,
|
|
1314
|
+
official_subagent_config: officialSubagentConfig,
|
|
1072
1315
|
zellij_readiness: zellijReadiness,
|
|
1073
1316
|
codex_permission_profiles: permissionProfiles,
|
|
1074
1317
|
command_aliases: commandAliasCleanup,
|
|
@@ -1080,7 +1323,11 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
1080
1323
|
error: sksTempSweep.error || null
|
|
1081
1324
|
},
|
|
1082
1325
|
imagegen: {
|
|
1083
|
-
ok:
|
|
1326
|
+
ok: imagegenRepair?.route_ready === true,
|
|
1327
|
+
capability_ready: imagegen.codex_app?.available === true,
|
|
1328
|
+
route_ready: imagegenRepair?.route_ready === true,
|
|
1329
|
+
generated_output_verified: imagegenRepair?.real_generation_verified === true,
|
|
1330
|
+
auth_ready: imagegen.auth_readiness?.headless_auto_available === true,
|
|
1084
1331
|
auth_readiness: imagegen.auth_readiness || null,
|
|
1085
1332
|
codex_app_builtin_available: imagegen.codex_app?.available === true
|
|
1086
1333
|
},
|
|
@@ -1117,6 +1364,8 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
1117
1364
|
console.log('SKS Doctor');
|
|
1118
1365
|
for (const warning of argWarnings)
|
|
1119
1366
|
console.log(`Argument warning: ${warning}`);
|
|
1367
|
+
for (const warning of officialSubagentConfig.warnings || [])
|
|
1368
|
+
console.log(`Official subagent warning: ${warning}`);
|
|
1120
1369
|
console.log(`Root: ${root}`);
|
|
1121
1370
|
console.log(`Node: ${result.node.ok ? 'ok' : 'fail'} ${result.node.version}`);
|
|
1122
1371
|
console.log(`Codex: ${codex.bin ? 'ok' : 'missing'} ${codex.version || ''}`);
|
|
@@ -1252,7 +1501,7 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
1252
1501
|
console.log(` - ${action}`);
|
|
1253
1502
|
}
|
|
1254
1503
|
}
|
|
1255
|
-
console.log(`Image Gen repair: ${
|
|
1504
|
+
console.log(`Image Gen repair: ${nativeCapabilityReadiness.imagegen.status}`);
|
|
1256
1505
|
for (const action of imagegenRepair.manual_actions || [])
|
|
1257
1506
|
console.log(` - ${action}`);
|
|
1258
1507
|
console.log(`Computer Use repair: ${computerUseRepair.recovered ? 'ok' : computerUseRepair.attempted ? 'blocked' : 'not-needed'}`);
|
|
@@ -1272,7 +1521,7 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
1272
1521
|
}
|
|
1273
1522
|
const codex0138 = codex0138Capability.report || {};
|
|
1274
1523
|
console.log('Codex current compatibility:');
|
|
1275
|
-
console.log(` target:
|
|
1524
|
+
console.log(` target: ${CURRENT_CODEX_RELEASE_MANIFEST.targetTag}`);
|
|
1276
1525
|
console.log(` runtime: ${codex.version || 'unknown'}`);
|
|
1277
1526
|
console.log(` multi-agent mode: ${codexNativeFeatureMatrix.features?.multi_agent_mode?.ok ? 'verified' : 'unverified'}`);
|
|
1278
1527
|
console.log(` rollout budget: ${codexNativeFeatureMatrix.features?.rollout_budget?.ok ? 'verified' : 'unverified'}`);
|
|
@@ -1294,6 +1543,13 @@ async function runDoctor(args = [], root, doctorFix) {
|
|
|
1294
1543
|
if (codex0138Doctor?.fixed?.length)
|
|
1295
1544
|
console.log(` doctor --fix repaired: ${codex0138Doctor.fixed.join(', ')}`);
|
|
1296
1545
|
console.log(`codex-lb: ${codexLb.ok ? 'ok' : `warning ${codexLb.circuit?.state || 'unknown'}`}`);
|
|
1546
|
+
if (codexLb.tool_output_recovery) {
|
|
1547
|
+
const recovery = codexLb.tool_output_recovery;
|
|
1548
|
+
console.log(` interrupted tool-output recovery: ${recovery.ok ? 'ready' : 'blocked'} (${recovery.observed_version || recovery.status}; minimum ${recovery.minimum_version})`);
|
|
1549
|
+
if (!recovery.ok)
|
|
1550
|
+
for (const action of recovery.operator_actions || [])
|
|
1551
|
+
console.log(` action: ${action}`);
|
|
1552
|
+
}
|
|
1297
1553
|
if (localModel) {
|
|
1298
1554
|
console.log('Local LLM:');
|
|
1299
1555
|
console.log(` enabled: ${localModel.enabled ? 'yes' : 'no'}`);
|
|
@@ -1378,9 +1634,9 @@ function buildRuntimeReadiness(zellijReadiness, matrix) {
|
|
|
1378
1634
|
...(zellijStatus === 'headless_available' ? ['MAD can run with --headless; live panes require repair'] : []),
|
|
1379
1635
|
...(hookPolicy !== 'approved-only' ? ['hook-derived evidence will not count'] : []),
|
|
1380
1636
|
...(agentStrategy !== 'agent_type' ? ['message-role fallback active'] : []),
|
|
1381
|
-
...(multiAgentMode === 'proactive' ? [
|
|
1382
|
-
...(rolloutBudget === 'codex-
|
|
1383
|
-
...(researchSource === 'indexed-web-search' ? [
|
|
1637
|
+
...(multiAgentMode === 'proactive' ? [`Codex ${CURRENT_CODEX_RELEASE_MANIFEST.requiredCliVersion} multi-agent proactive mode available for Naruto-style routes`] : []),
|
|
1638
|
+
...(rolloutBudget === 'codex-0144-shared' ? [`Codex ${CURRENT_CODEX_RELEASE_MANIFEST.requiredCliVersion} rollout budget can be recorded in route proof`] : []),
|
|
1639
|
+
...(researchSource === 'indexed-web-search' ? [`Codex ${CURRENT_CODEX_RELEASE_MANIFEST.requiredCliVersion} indexed web search selected for source-intelligence routes`] : [])
|
|
1384
1640
|
],
|
|
1385
1641
|
repair_actions: [...new Set(repairActions)]
|
|
1386
1642
|
};
|
|
@@ -1447,7 +1703,7 @@ function unknownDoctorFlags(args = []) {
|
|
|
1447
1703
|
const knownBoolean = new Set([
|
|
1448
1704
|
'--fix', '--yes', '-y', '--machine-only', '--actual-codex', '--require-actual-codex',
|
|
1449
1705
|
'--full', '--capabilities', '--repair-codex-app-ui', '--repair-zellij', '--install-homebrew',
|
|
1450
|
-
'--repair-native-capabilities', '--repair-codex-native', '--local-only', '--project', '--global',
|
|
1706
|
+
'--repair-native-capabilities', '--repair-codex-native', '--local-only', '--global-only', '--project', '--global',
|
|
1451
1707
|
'--dry-run', '--json'
|
|
1452
1708
|
]);
|
|
1453
1709
|
const knownValue = new Set(['--profile', '--report-file', '--codex-bin', '--install-scope']);
|
package/dist/commands/tmux.js
CHANGED
|
@@ -6,7 +6,11 @@ export async function run(_command, args = []) {
|
|
|
6
6
|
runtime: 'tmux',
|
|
7
7
|
status: 'removed_runtime',
|
|
8
8
|
replacement: 'zellij',
|
|
9
|
-
operator_actions: [
|
|
9
|
+
operator_actions: [
|
|
10
|
+
'Use `sks --mad` for the supported SKS Zellij launcher.',
|
|
11
|
+
'Use `sks zellij status` or `npm run zellij:capability` for runtime diagnostics.',
|
|
12
|
+
'Use `sks naruto status|subagents|proof` for official subagent missions.'
|
|
13
|
+
]
|
|
10
14
|
};
|
|
11
15
|
if (json)
|
|
12
16
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -3,6 +3,13 @@ import { bumpProjectVersion, disableVersionGitHook, versioningStatus } from '../
|
|
|
3
3
|
import { flag } from '../cli/args.js';
|
|
4
4
|
import { printJson } from '../cli/output.js';
|
|
5
5
|
export async function run(_command, args = []) {
|
|
6
|
+
if (flag(args, '--help') || flag(args, '-h')) {
|
|
7
|
+
const usage = 'Usage: sks versioning status|bump [major|minor|patch]|disable [--json]';
|
|
8
|
+
if (flag(args, '--json'))
|
|
9
|
+
return printJson({ ok: true, command: 'versioning', usage, mutated: false });
|
|
10
|
+
console.log(usage);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
6
13
|
const root = await projectRoot();
|
|
7
14
|
const action = args[0] || 'status';
|
|
8
15
|
const bump = ['major', 'minor', 'patch'].includes(String(args[1] || '')) ? String(args[1]) : null;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { readZellijSlotTelemetrySnapshot } from '../core/zellij/zellij-slot-telemetry.js';
|
|
2
2
|
import { renderZellijMonitor } from '../core/zellij/zellij-monitor-renderer.js';
|
|
3
3
|
import { projectRoot } from '../core/fsx.js';
|
|
4
|
+
import { refreshOfficialSubagentZellijActivity } from '../core/zellij/zellij-official-subagent-activity.js';
|
|
4
5
|
export async function run(_cmd = 'zellij-monitor-pane', args = []) {
|
|
5
6
|
const mission = readOption(args, '--mission', 'latest') || 'latest';
|
|
6
7
|
const root = await projectRoot();
|
|
7
8
|
const intervalMs = Math.max(500, Number(readOption(args, '--interval-ms', String(process.env.SKS_ZELLIJ_REFRESH_MS || '1000')) || 1000));
|
|
8
9
|
const once = !flag(args, '--watch');
|
|
9
10
|
for (;;) {
|
|
11
|
+
await refreshOfficialSubagentZellijActivity({ root, missionId: mission }).catch(() => null);
|
|
10
12
|
const snapshot = await readZellijSlotTelemetrySnapshot(root, mission).catch(() => null);
|
|
11
13
|
const text = renderZellijMonitor({ snapshot, missionId: mission, root });
|
|
12
14
|
process.stdout.write(`\x1b[H${text}\n\x1b[0J`);
|
|
@@ -4,13 +4,14 @@ import { projectRoot, readJson } from '../core/fsx.js';
|
|
|
4
4
|
import { readZellijSlotTelemetrySnapshot } from '../core/zellij/zellij-slot-telemetry.js';
|
|
5
5
|
import { bindViewports } from '../core/zellij/zellij-viewport-binder.js';
|
|
6
6
|
import { renderZellijSlotPaneFromArtifacts } from '../core/zellij/zellij-slot-pane-renderer.js';
|
|
7
|
+
import { refreshOfficialSubagentZellijActivity } from '../core/zellij/zellij-official-subagent-activity.js';
|
|
7
8
|
import { ANSI_CODES, paint, resolveZellijTheme } from '../core/zellij/zellij-theme.js';
|
|
8
9
|
let previousBindings = [];
|
|
9
10
|
export async function run(_cmd = 'zellij-viewport-pane', args = []) {
|
|
10
11
|
const mission = String(readOption(args, '--mission', 'latest') || 'latest');
|
|
11
12
|
const index = Math.max(1, Number(readOption(args, '--index', '1')) || 1);
|
|
12
13
|
const of = Math.max(index, Number(readOption(args, '--of', '4')) || 4);
|
|
13
|
-
const intervalMs = Math.max(500, Number(process.env.SKS_ZELLIJ_REFRESH_MS || 1000));
|
|
14
|
+
const intervalMs = Math.max(500, Number(readOption(args, '--interval-ms', String(process.env.SKS_ZELLIJ_REFRESH_MS || '1000')) || 1000));
|
|
14
15
|
const root = await projectRoot();
|
|
15
16
|
previousBindings = Array.from({ length: of }, () => null);
|
|
16
17
|
const once = !flag(args, '--watch');
|
|
@@ -24,6 +25,7 @@ export async function run(_cmd = 'zellij-viewport-pane', args = []) {
|
|
|
24
25
|
}
|
|
25
26
|
async function renderViewportFrame(root, mission, index, of) {
|
|
26
27
|
const theme = resolveZellijTheme();
|
|
28
|
+
await refreshOfficialSubagentZellijActivity({ root, missionId: mission }).catch(() => null);
|
|
27
29
|
const snapshot = await readZellijSlotTelemetrySnapshot(root, mission).catch(() => null);
|
|
28
30
|
const missionId = snapshot?.mission_id || mission;
|
|
29
31
|
const pins = await readJson(pinsPath(root, missionId), { pins: [] });
|
package/dist/commands/zellij.js
CHANGED
|
@@ -53,7 +53,7 @@ async function zellijStatus(root, args, json) {
|
|
|
53
53
|
ok: ready || !requireReal,
|
|
54
54
|
status,
|
|
55
55
|
version: capability.version || null,
|
|
56
|
-
required_for: ['sks --mad', '
|
|
56
|
+
required_for: ['sks --mad', 'interactive MAD lane UI', 'standalone Zellij diagnostics'],
|
|
57
57
|
blockers: capability.blockers || [],
|
|
58
58
|
warnings: capability.warnings || [],
|
|
59
59
|
install_hint: ready ? null : installHint(),
|