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
|
@@ -9,7 +9,7 @@ export const FROM_CHAT_IMG_CHECKLIST_ARTIFACT = 'from-chat-img-checklist.md';
|
|
|
9
9
|
export const FROM_CHAT_IMG_TEMP_TRIWIKI_ARTIFACT = 'from-chat-img-temp-triwiki.json';
|
|
10
10
|
export const FROM_CHAT_IMG_QA_LOOP_ARTIFACT = 'from-chat-img-qa-loop.json';
|
|
11
11
|
export const FROM_CHAT_IMG_TEMP_TRIWIKI_SESSIONS = 5;
|
|
12
|
-
export const USAGE_TOPICS = 'install|setup|bootstrap|root|deps|zellij|tmux|auto-review|team|qa-loop|ppt|image-ux-review|computer-use|goal|fast-mode|review|ui|research|seo-geo-optimizer|
|
|
12
|
+
export const USAGE_TOPICS = 'install|setup|bootstrap|root|deps|zellij|tmux|auto-review|naruto|team|qa-loop|ppt|image-ux-review|computer-use|goal|fast-mode|review|ui|research|seo-geo-optimizer|git|codex|codex-app|codex-native|hooks|features|all-features|dfix|commit|commit-and-push|design|imagegen|dollar|context7|super-search|xai|pipeline|reasoning|guard|conflicts|versioning|eval|harness|hproof|gx|wiki|memory|wrongness|code-structure|proof-field|skill-dream|rust';
|
|
13
13
|
export const RECOMMENDED_MCP_SERVERS = [
|
|
14
14
|
{
|
|
15
15
|
id: 'context7',
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
const NARUTO_DESCRIPTION = '$Naruto
|
|
1
|
+
const NARUTO_DESCRIPTION = '$Naruto is the lightweight Codex official subagent workflow. The Sol Max parent uses one child by default, two for explicit parallel work or independent risk domains, and at most three for critical multi-domain risk; explicit --agents remains authoritative. It delegates only defensible independent slices, reuses bounded TriWiki attention anchors, and requires official lifecycle events plus a trustworthy structured parent summary.';
|
|
2
2
|
const COMPUTER_USE_DESCRIPTION = 'Maximum-speed Codex Computer Use lane for native macOS, desktop-app, OS-settings, and non-web visual tasks only. Browser, localhost, website, webapp, and web-based app verification must route through Codex Chrome Extension readiness first.';
|
|
3
3
|
export const DOLLAR_COMMANDS_LITE = [
|
|
4
4
|
{ command: '$DFix', route: 'fast direct fix', description: 'Tiny simple direct edits such as copy, labels, typos, wording, spacing, colors, or clearly scoped one-line changes. Bypasses the general SKS pipeline and runs an ultralight, no-record task-list path.' },
|
|
5
5
|
{ command: '$Answer', route: 'answer-only research', description: 'Answer questions without starting implementation. Uses TriWiki, web, Context7 when relevant, and Honest Mode fact-checking.' },
|
|
6
6
|
{ command: '$SKS', route: 'general SKS workflow', description: 'General Sneakoscope setup, help, status, and workflow routing.' },
|
|
7
|
-
{ command: '$Plan', route: 'planning-only frontdoor', description: 'Plan scaffold only: writes a fixed-template .sneakoscope/plans/<slug>.md (goal/scope/steps headings to fill in), not project-specific decision-complete planning. Keeps implementation disallowed until $Work runs the plan.' },
|
|
7
|
+
{ command: '$Plan', route: 'planning-only frontdoor', description: 'Plan scaffold only: writes a fixed-template .sneakoscope/plans/<slug>.md (goal/scope/steps headings to fill in), not project-specific decision-complete planning. Keeps implementation disallowed until an explicit $Work alias or $Naruto runs the plan.' },
|
|
8
8
|
{ command: '$Review', route: 'machine-first diff review', description: 'Review staged or selected diffs with machine evidence sorted above LLM opinion.' },
|
|
9
|
-
{ command: '$Fast-Mode', route: 'fast-mode toggle', description: 'Turn the SKS Fast mode default on or off for project-local dollar-command and
|
|
10
|
-
{ command: '$Fast-On', route: 'fast-mode toggle', description: 'Turn the SKS Fast mode default on or off for project-local dollar-command and
|
|
11
|
-
{ command: '$Fast-Off', route: 'fast-mode toggle', description: 'Turn the SKS Fast mode default on or off for project-local dollar-command and
|
|
9
|
+
{ command: '$Fast-Mode', route: 'fast-mode toggle', description: 'Turn the SKS Fast mode default on or off for project-local dollar-command and routed workflows. Explicit --fast, --no-fast, and --service-tier flags still override it.' },
|
|
10
|
+
{ command: '$Fast-On', route: 'fast-mode toggle', description: 'Turn the SKS Fast mode default on or off for project-local dollar-command and routed workflows. Explicit --fast, --no-fast, and --service-tier flags still override it.' },
|
|
11
|
+
{ command: '$Fast-Off', route: 'fast-mode toggle', description: 'Turn the SKS Fast mode default on or off for project-local dollar-command and routed workflows. Explicit --fast, --no-fast, and --service-tier flags still override it.' },
|
|
12
12
|
{ command: '$with-local-llm-on', route: 'local Ollama worker toggle', description: 'Turn the optional local Ollama worker backend on or off. Default off keeps SKS GPT-only; enabled mode lets eligible simple code/collection worker slices use Ollama while GPT/Codex owns strategy, design, review, verification, and integration.' },
|
|
13
13
|
{ command: '$with-local-llm-off', route: 'local Ollama worker toggle', description: 'Turn the optional local Ollama worker backend on or off. Default off keeps SKS GPT-only; enabled mode lets eligible simple code/collection worker slices use Ollama while GPT/Codex owns strategy, design, review, verification, and integration.' },
|
|
14
|
-
{ command: '$Naruto', route: '
|
|
15
|
-
{ command: '$ShadowClone', route: '
|
|
16
|
-
{ command: '$Kagebunshin', route: '
|
|
17
|
-
{ command: '$Work', route: '
|
|
18
|
-
{ command: '$Swarm', route: '
|
|
19
|
-
{ command: '$Release-Review', route: '
|
|
14
|
+
{ command: '$Naruto', route: 'Codex official subagent workflow', description: NARUTO_DESCRIPTION },
|
|
15
|
+
{ command: '$ShadowClone', route: 'deprecated alias to the Codex official subagent workflow', description: NARUTO_DESCRIPTION },
|
|
16
|
+
{ command: '$Kagebunshin', route: 'deprecated alias to the Codex official subagent workflow', description: NARUTO_DESCRIPTION },
|
|
17
|
+
{ command: '$Work', route: 'compatibility alias to the Codex official subagent workflow', description: NARUTO_DESCRIPTION },
|
|
18
|
+
{ command: '$Swarm', route: 'compatibility alias to the Codex official subagent workflow', description: NARUTO_DESCRIPTION },
|
|
19
|
+
{ command: '$Release-Review', route: 'official subagent release review', description: 'Run release-readiness collaboration through Codex official subagent threads with explicit review lanes, bounded thread budgets, structured parent outcomes, evidence, and cleanup artifacts.' },
|
|
20
20
|
{ command: '$QA-LOOP', route: 'QA loop', description: 'Dogfood UI/API as human proxy with safety gates, Codex Chrome Extension-first web UI evidence, safe fixes, rechecks, Honest Mode.' },
|
|
21
21
|
{ command: '$PPT', route: 'HTML/PDF presentation pipeline', description: 'Create restrained, information-first HTML/PDF presentation artifacts after delivery context, audience profile, STP, decision context, pain-point, research, design-system, and verification questions are sealed.' },
|
|
22
22
|
{ command: '$Image-UX-Review', route: 'image-generation UI/UX review loop', description: 'Review UI/UX through the imagegen/gpt-image-2 visual critique loop: source screenshots become generated annotated review images, those images become issue ledgers, then fixes are rechecked.' },
|
|
@@ -3,12 +3,12 @@ export const CODEX_IN_APP_BROWSER_EVIDENCE_SOURCE = 'codex_in_app_browser';
|
|
|
3
3
|
export const CODEX_CHROME_EXTENSION_EVIDENCE_SOURCE = 'codex_chrome_extension';
|
|
4
4
|
export const CODEX_WEB_VERIFICATION_EVIDENCE_SOURCE = CODEX_IN_APP_BROWSER_EVIDENCE_SOURCE;
|
|
5
5
|
export const CODEX_IMAGEGEN_EVIDENCE_SOURCE = 'codex_app_imagegen_gpt_image_2';
|
|
6
|
-
export const CODEX_IN_APP_BROWSER_DOC_URL = 'https://
|
|
7
|
-
export const CODEX_CHROME_EXTENSION_DOC_URL = 'https://
|
|
8
|
-
export const CODEX_COMPUTER_USE_DOC_URL = 'https://
|
|
6
|
+
export const CODEX_IN_APP_BROWSER_DOC_URL = 'https://learn.chatgpt.com/docs/browser';
|
|
7
|
+
export const CODEX_CHROME_EXTENSION_DOC_URL = 'https://learn.chatgpt.com/docs/chrome-extension';
|
|
8
|
+
export const CODEX_COMPUTER_USE_DOC_URL = 'https://learn.chatgpt.com/docs/computer-use';
|
|
9
9
|
export const CODEX_RECORD_REPLAY_DOC_URL = 'https://developers.openai.com/codex/record-and-replay';
|
|
10
10
|
export const CODEX_APP_SERVER_DOC_URL = 'https://developers.openai.com/codex/app-server';
|
|
11
|
-
export const CODEX_APP_IMAGE_GENERATION_DOC_URL = 'https://
|
|
11
|
+
export const CODEX_APP_IMAGE_GENERATION_DOC_URL = 'https://learn.chatgpt.com/docs/image-generation';
|
|
12
12
|
export const OPENAI_IMAGE_GENERATION_DOC_URL = 'https://developers.openai.com/api/docs/guides/image-generation';
|
|
13
13
|
export const OPENAI_CHATGPT_IMAGES_2_DOC_URL = 'https://openai.com/index/introducing-chatgpt-images-2-0/';
|
|
14
14
|
export const OPENAI_GPT_IMAGE_2_MODEL_DOC_URL = 'https://developers.openai.com/api/docs/models/gpt-image-2';
|
|
@@ -21,6 +21,6 @@ export function pptPipelineAllowlistPolicyText() {
|
|
|
21
21
|
const conditionalSkills = PPT_CONDITIONAL_SKILL_ALLOWLIST.length
|
|
22
22
|
? PPT_CONDITIONAL_SKILL_ALLOWLIST.map((entry) => `${entry.skill}=${entry.condition}`).join('; ')
|
|
23
23
|
: 'none';
|
|
24
|
-
return `PPT pipeline allowlist: during $PPT design/render work, ignore installed skills and MCPs that are not explicitly part of the $PPT pipeline. The purpose is to prevent AI-like generic presentation design: decorative gradients, nested cards, vague SaaS visuals, and style choices not grounded in the audience, source material, Product Design plugin evidence, getdesign fallback reference, or the project design cache. Required SKS skills are ${PPT_PIPELINE_SKILL_ALLOWLIST.join(', ')}. Product Design plugin tools are allowed and preferred for design work: ${PRODUCT_DESIGN_PLUGIN_TOOL_ALLOWLIST.join(', ')}. Use ${PRODUCT_DESIGN_PLUGIN.id} first for get-context/user-context intake, research/ideate exploration,
|
|
24
|
+
return `PPT pipeline allowlist: during $PPT design/render work, ignore installed skills and MCPs that are not explicitly part of the $PPT pipeline. The purpose is to prevent AI-like generic presentation design: decorative gradients, nested cards, vague SaaS visuals, and style choices not grounded in the audience, source material, Product Design plugin evidence, getdesign fallback reference, or the project design cache. Required SKS skills are ${PPT_PIPELINE_SKILL_ALLOWLIST.join(', ')}. Product Design plugin tools are allowed and preferred for design work: ${PRODUCT_DESIGN_PLUGIN_TOOL_ALLOWLIST.join(', ')}. Use ${PRODUCT_DESIGN_PLUGIN.id} first for get-context/user-context intake, research/ideate exploration, index/image-to-code/url-to-code artifact direction, audit/design-qa review, and share handoff when available. The imagegen skill is required for $PPT so Codex App can invoke official built-in $imagegen/gpt-image-2 for every generated raster asset or generated visual-review image; do not route PPT imagery through direct API fallback. Do not use generic design skills such as ${PRODUCT_DESIGN_LEGACY_DESIGN_FALLBACK_SKILLS.join(', ')} for $PPT just because they are installed. $PPT design must use Product Design plugin first; if unavailable, use getdesign-reference plus the built-in PPT design implementation pipeline: existing ${DESIGN_SYSTEM_SSOT.authority_file} when present, ${DESIGN_SYSTEM_SSOT.builder_prompt} as fallback builder prompt when missing, and route-local ppt-style-tokens.json as the fused design projection. Conditional skills/MCPs are allowed only when their condition is sealed in the contract: ${conditionalSkills}; ${PPT_PIPELINE_MCP_ALLOWLIST.map((entry) => `${entry.mcp}=${entry.condition}`).join('; ')}. Fact, image, and review evidence are first-class artifacts: gather user-provided context and required web/Context7 evidence into ppt-fact-ledger.json, block unsupported critical claims, plan required image resources through ppt-image-asset-ledger.json, then run a bounded review loop recorded in ppt-review-policy.json, ppt-review-ledger.json, and ppt-iteration-report.json. Required raster asset or generated visual-review evidence must come from Codex App $imagegen/gpt-image-2; direct API fallback, placeholder files, and prose-only substitutes do not satisfy the route gate. The review loop caps full-deck passes at 2, slide retries at 2, requires P0/P1 issue count to be zero, targets score >= 0.88, and stops when improvement delta is below 0.03 or evidence is missing. For Codex App visual critique, invoke $imagegen/gpt-image-2 (${CODEX_APP_IMAGE_GENERATION_DOC_URL}) when required; never simulate missing gpt-image-2 output. If required image-review evidence is unavailable, record the blocker instead of passing the gate. ${productDesignPluginPolicyText()} ${CODEX_IMAGEGEN_REQUIRED_POLICY}`;
|
|
25
25
|
}
|
|
26
26
|
//# sourceMappingURL=ppt-policy.js.map
|
package/dist/core/routes.js
CHANGED
|
@@ -4,6 +4,7 @@ import { ALLOWED_REASONING_EFFORTS, FROM_CHAT_IMG_CHECKLIST_ARTIFACT, FROM_CHAT_
|
|
|
4
4
|
import { CODEX_APP_IMAGE_GENERATION_DOC_URL, CODEX_COMPUTER_USE_ONLY_POLICY, CODEX_IMAGEGEN_REQUIRED_POLICY, CODEX_WEB_VERIFICATION_POLICY, RESERVED_CODEX_PLUGIN_SKILL_NAMES } from './routes/evidence.js';
|
|
5
5
|
import { getdesignReferencePolicyText, imageUxReviewPipelinePolicyText } from './routes/design-policy.js';
|
|
6
6
|
import { PPT_PIPELINE_SKILL_ALLOWLIST, pptPipelineAllowlistPolicyText } from './routes/ppt-policy.js';
|
|
7
|
+
import { classifyTaskProfile, looksLikeDatabaseWorkRequest } from './runtime/task-profile.js';
|
|
7
8
|
export * from './routes/constants.js';
|
|
8
9
|
export * from './routes/design-policy.js';
|
|
9
10
|
export * from './routes/evidence.js';
|
|
@@ -217,7 +218,7 @@ export const ROUTES = [
|
|
|
217
218
|
command: '$Fast-Mode',
|
|
218
219
|
mode: 'FAST_MODE',
|
|
219
220
|
route: 'fast-mode toggle',
|
|
220
|
-
description: 'Turn the SKS Fast mode default on or off for project-local dollar-command and
|
|
221
|
+
description: 'Turn the SKS Fast mode default on or off for project-local dollar-command and routed workflows. Explicit --fast, --no-fast, and --service-tier flags still override it.',
|
|
221
222
|
requiredSkills: ['fast-mode', 'honest-mode'],
|
|
222
223
|
dollarAliases: ['$Fast-On', '$Fast-Off'],
|
|
223
224
|
appSkillAliases: ['fast-on', 'fast-off'],
|
|
@@ -251,52 +252,52 @@ export const ROUTES = [
|
|
|
251
252
|
command: '$Team',
|
|
252
253
|
mode: 'TEAM',
|
|
253
254
|
route: 'deprecated alias to Naruto',
|
|
254
|
-
description: 'Deprecated compatibility alias. New substantial work is routed to $Naruto, the
|
|
255
|
+
description: 'Deprecated compatibility alias. New substantial work is routed to $Naruto, the Codex official subagent workflow SSOT.',
|
|
255
256
|
requiredSkills: ['team', 'pipeline-runner', 'context7-docs', 'prompt-pipeline', REFLECTION_SKILL_NAME, 'honest-mode'],
|
|
256
257
|
dollarAliases: ['$From-Chat-IMG'],
|
|
257
258
|
appSkillAliases: ['from-chat-img'],
|
|
258
259
|
deprecated: true,
|
|
259
260
|
hidden: true,
|
|
260
261
|
aliasTo: '$Naruto',
|
|
261
|
-
deprecationMessage: '$Team is deprecated and redirects new execution missions to $Naruto.
|
|
262
|
+
deprecationMessage: '$Team is deprecated and redirects new execution missions to $Naruto. Only read-only Team log/tail/watch/lane/status commands remain for old missions.',
|
|
262
263
|
lifecycle: ['deprecated_alias_redirect', 'naruto_gate', 'honest_mode'],
|
|
263
264
|
context7Policy: 'optional',
|
|
264
265
|
reasoningPolicy: 'high',
|
|
265
266
|
stopGate: 'naruto-gate.json',
|
|
266
267
|
coverage_required: true,
|
|
267
|
-
cliEntrypoint: 'sks team "task"
|
|
268
|
+
cliEntrypoint: 'sks team "task" | sks team log|tail|watch|lane|status',
|
|
268
269
|
examples: ['$Team executor:5 agree on the best plan and implement it', '$From-Chat-IMG 채팅+첨부 이미지 작업 지시서']
|
|
269
270
|
},
|
|
270
271
|
{
|
|
271
272
|
id: 'Naruto',
|
|
272
273
|
command: '$Naruto',
|
|
273
274
|
mode: 'NARUTO',
|
|
274
|
-
route: '
|
|
275
|
-
description: '$Naruto
|
|
275
|
+
route: 'Codex official subagent workflow',
|
|
276
|
+
description: '$Naruto prepares a lightweight Codex official subagent workflow. The Sol Max parent owns decomposition, delegates only defensible direct-child slices, reuses bounded TriWiki attention anchors, waits for every requested thread, integrates the results, and reports scoped verification. Automatic fan-out is one by default, two for explicit parallel work or independent risk domains, and at most three for critical multi-domain risk; explicit --agents remains authoritative.',
|
|
276
277
|
requiredSkills: ['naruto', 'pipeline-runner', 'prompt-pipeline', 'honest-mode'],
|
|
277
278
|
dollarAliases: ['$ShadowClone', '$Kagebunshin', '$Work', '$Swarm'],
|
|
278
279
|
appSkillAliases: ['shadow-clone', 'kage-bunshin', 'work', 'swarm'],
|
|
279
|
-
lifecycle: ['
|
|
280
|
+
lifecycle: ['task_profile', 'subagent_plan', 'official_delegation_context', 'subagent_events', 'parent_integration', 'scoped_verification', 'honest_mode'],
|
|
280
281
|
context7Policy: 'optional',
|
|
281
282
|
reasoningPolicy: 'high',
|
|
282
283
|
stopGate: 'naruto-gate.json',
|
|
283
284
|
coverage_required: true,
|
|
284
|
-
cliEntrypoint: 'sks naruto run "task" [--
|
|
285
|
-
examples: ['$Naruto run
|
|
285
|
+
cliEntrypoint: 'sks naruto run "task" [--agents N] [--max-threads N] | sks naruto status|subagents|proof',
|
|
286
|
+
examples: ['$Naruto run review twelve independent packages with --agents 12', '$Work', '$Swarm "fix all lint errors"']
|
|
286
287
|
},
|
|
287
288
|
{
|
|
288
289
|
id: 'ReleaseReview',
|
|
289
290
|
command: '$Release-Review',
|
|
290
291
|
mode: 'RELEASE_REVIEW',
|
|
291
|
-
route: '
|
|
292
|
-
description: 'Run release-readiness collaboration through
|
|
293
|
-
requiredSkills: ['
|
|
294
|
-
lifecycle: ['
|
|
292
|
+
route: 'official subagent release review',
|
|
293
|
+
description: 'Run release-readiness collaboration through official Codex subagents with explicit thread budget, disjoint ownership, parent integration, scoped verification, and cleanup evidence.',
|
|
294
|
+
requiredSkills: ['naruto', 'pipeline-runner', REFLECTION_SKILL_NAME, 'honest-mode'],
|
|
295
|
+
lifecycle: ['subagent_plan', 'release_fixture_matrix', 'risk_scoped_review', 'parent_integration', 'session_cleanup', 'honest_mode'],
|
|
295
296
|
context7Policy: 'optional',
|
|
296
297
|
reasoningPolicy: 'high',
|
|
297
298
|
stopGate: 'release-readiness-report.json',
|
|
298
|
-
cliEntrypoint: 'sks
|
|
299
|
-
examples: ['$Release-Review agents:10
|
|
299
|
+
cliEntrypoint: 'sks naruto run "$Release-Review release audit" --agents <n> --read-only --json',
|
|
300
|
+
examples: ['$Release-Review agents:10 release audit', 'sks naruto run "$Release-Review wide release audit" --agents 10 --read-only --json']
|
|
300
301
|
},
|
|
301
302
|
{
|
|
302
303
|
id: 'QALoop',
|
|
@@ -471,7 +472,9 @@ export const ROUTES = [
|
|
|
471
472
|
context7Policy: 'required',
|
|
472
473
|
reasoningPolicy: 'high',
|
|
473
474
|
stopGate: 'db-review.json',
|
|
474
|
-
cliEntrypoint: 'sks db
|
|
475
|
+
cliEntrypoint: 'Codex App prompt route only; the legacy `sks db` CLI is removed',
|
|
476
|
+
codexAppOnly: true,
|
|
477
|
+
codexAppOnlyReason: '$DB remains a route-level safety policy. The legacy `sks db` CLI is removed from public dispatch and returns unknown_command.',
|
|
475
478
|
examples: ['$DB check this migration safely']
|
|
476
479
|
},
|
|
477
480
|
{
|
|
@@ -601,9 +604,9 @@ export const COMMAND_CATALOG = [
|
|
|
601
604
|
{ name: 'daemon', usage: 'sks daemon status|warm|stop [--json]', description: 'Inspect or warm the local SKS daemon cache state for build/proof reuse.' },
|
|
602
605
|
{ name: 'run', usage: 'sks run "task" [--visual|--research|--db] [--json]', description: 'Classify a plain-language task, materialize a mission, and route it through the SKS trust kernel.' },
|
|
603
606
|
{ name: 'plan', usage: 'sks plan "task" [--json]', description: 'Write a planning-only artifact under .sneakoscope/plans without editing code.' },
|
|
604
|
-
{ name: 'status', usage: 'sks status [--json]', description: 'Show the active mission, route, phase, proof, trust,
|
|
607
|
+
{ name: 'status', usage: 'sks status [--json]', description: 'Show the active mission, route, phase, proof, trust, subagent or legacy-agent evidence, image voxel, DB safety, and next action.' },
|
|
605
608
|
{ name: 'review', usage: 'sks review [--staged|--diff <ref>] [--fix] [--json]', description: 'Review a diff with machine-evidence findings sorted above LLM review notes.' },
|
|
606
|
-
{ name: 'ui', usage: 'sks ui [--port 4477] [--mission latest] [--once] [--json]', description: 'Open the localhost SKS dashboard with live
|
|
609
|
+
{ name: 'ui', usage: 'sks ui [--port 4477] [--mission latest] [--once] [--json]', description: 'Open the localhost SKS dashboard with live agent-thread slots, events, and gate status.' },
|
|
607
610
|
{ name: 'usage', usage: `sks usage [${USAGE_TOPICS}]`, description: 'Print copy-ready workflows for common tasks.' },
|
|
608
611
|
{ name: 'quickstart', usage: 'sks quickstart', description: 'Show the shortest safe setup and verification flow.' },
|
|
609
612
|
{ name: 'bootstrap', usage: 'sks bootstrap [--install-scope global|project] [--local-only] [--json]', description: 'Initialize the current project, install SKS Codex App files/skills, check Context7/Codex App/Zellij, and print ready true/false.' },
|
|
@@ -611,12 +614,12 @@ export const COMMAND_CATALOG = [
|
|
|
611
614
|
{ name: 'update', usage: 'sks update [check|now] [--version <version>] [--json] [--dry-run]', description: 'Check npm for the latest SKS release and update the global package by default; use `check` for status-only.' },
|
|
612
615
|
{ name: 'uninstall', usage: 'sks uninstall [--dry-run] [--yes] [--keep-config] [--keep-data] [--purge-projects] [--json]', description: 'Remove SKS global skills, hooks, menu bar, state, temp files, and optional project residue while preserving user-owned content by default.' },
|
|
613
616
|
{ name: 'deps', usage: 'sks deps check [--json] [--yes]', description: 'Check Node/npm, Codex CLI, and Zellij readiness; pass --yes to repair missing Codex CLI/Zellij tooling when supported.' },
|
|
614
|
-
{ name: 'codex', usage: 'sks codex compatibility|version|doctor|schema|0.
|
|
617
|
+
{ name: 'codex', usage: 'sks codex compatibility|version|update-status [--refresh]|update|doctor|schema|0.144 [--json]', description: 'Check Codex CLI compatibility/version/update status, run the official `codex update`, and inspect current manifest, capability, and hook-schema evidence.' },
|
|
615
618
|
{ name: 'codex-app', usage: 'sks codex-app [check|glm-profile install|set-openrouter-key --api-key-stdin|product-design|chrome-extension|pat status|remote-control]', description: 'Check Codex App install, GLM/OpenRouter model profile visibility, codex-lb key-entry guidance, Product Design plugin readiness, Codex Chrome Extension web verification readiness, PAT-safe status, first-party MCP/plugin readiness, and Codex CLI 0.130.0+ remote-control availability.' },
|
|
616
619
|
{ name: 'codex-native', usage: 'sks codex-native status|feature-broker|invocation-plan|init-deep [--json]', description: 'Inspect Codex Native feature broker readiness, invocation routing, pattern evidence, and managed memory setup.' },
|
|
617
620
|
{ name: 'hooks', usage: 'sks hooks explain|status|trust-report|replay|codex-validate|warning-check ... [--json]', description: 'Explain Codex hook events, validate vendored latest 10-event output schemas, replay fixtures, and enforce warning-zero SKS hook policies under the 0.134 compatibility matrix.' },
|
|
618
621
|
{ name: 'codex-lb', usage: 'sks codex-lb status|health|metrics|doctor|circuit|repair|setup ...', description: 'Configure, health-check, repair, and record circuit evidence for codex-lb provider auth without confusing ChatGPT OAuth and proxy keys.' },
|
|
619
|
-
{ name: 'zellij', usage: 'sks zellij status|repair [--json] | sks
|
|
622
|
+
{ name: 'zellij', usage: 'sks zellij status|repair [--json] | sks --mad', description: 'Inspect Zellij runtime status, explain repair (no auto-install), and open the SKS Zellij runtime used by MAD. Zellij panes are not official Naruto subagent evidence.' },
|
|
620
623
|
{ name: 'tmux', usage: 'removed-runtime migration notice (replacement: zellij)', description: 'Show the removed-runtime migration notice and point operators to Zellij.' },
|
|
621
624
|
{ name: 'mad-sks', usage: 'sks mad-sks plan|run|apply|sql|apply-migration|status|close|rollback-apply ... | sks --mad [--high]', description: 'Open or inspect MAD-SKS scoped permission workflows, merged SQL-plane execution, and the Zellij permission launcher.' },
|
|
622
625
|
{ name: 'auto-review', usage: 'sks auto-review status|enable|start [--high] | sks --Auto-review --high', description: 'Enable Codex automatic approval review and launch SKS Zellij with the auto-review profile.' },
|
|
@@ -636,7 +639,7 @@ export const COMMAND_CATALOG = [
|
|
|
636
639
|
{ name: 'recallpulse', usage: 'sks recallpulse run|status|eval|governance|checklist <mission-id|latest>', description: 'Run report-only RecallPulse active recall, durable status, proof capsule, evidence envelope, and governance checks.' },
|
|
637
640
|
{ name: 'pipeline', usage: 'sks pipeline status|resume|plan|answer ...', description: 'Inspect the active skill-first route, materialized execution plan, ambiguity gates, and completion gates.' },
|
|
638
641
|
{ name: 'guard', usage: 'sks guard check [--json]', description: 'Check SKS harness self-protection lock, fingerprints, and source-repo exception state.' },
|
|
639
|
-
{ name: 'conflicts', usage: 'sks conflicts check|prompt [--json]', description: 'Detect other Codex harnesses such as OMX/DCodex and print the GPT-5.
|
|
642
|
+
{ name: 'conflicts', usage: 'sks conflicts check|prompt [--json]', description: 'Detect other Codex harnesses such as OMX/DCodex and print the GPT-5.6 high cleanup prompt.' },
|
|
640
643
|
{ name: 'versioning', usage: 'sks versioning status|bump|disable [--json]', description: 'Manage explicit project version syncs; SKS does not install Git pre-commit hooks.' },
|
|
641
644
|
{ name: 'features', usage: 'sks features list|check|inventory [--json] [--write-docs]', description: 'Build and validate the feature registry that maps CLI commands, hidden handlers, dollar routes, app skill aliases, and skills.' },
|
|
642
645
|
{ name: 'all-features', usage: 'sks all-features selftest --mock [--json]', description: 'Run the mock all-features contract selftest for feature registry, proof, Voxel TriWiki, and failure-contract coverage.' },
|
|
@@ -652,10 +655,9 @@ export const COMMAND_CATALOG = [
|
|
|
652
655
|
{ name: 'goal', usage: 'sks goal create|pause|resume|clear|status ...', description: 'Prepare and control the fast SKS bridge overlay for Codex native persisted /goal workflows.' },
|
|
653
656
|
{ name: 'seo-geo-optimizer', usage: 'sks seo-geo-optimizer [seo|geo] doctor|audit|research|strategy|plan|apply|verify|status|rollback|fixture [mission|latest] [--mode seo|geo] [--target auto|website|docs|package] [--include-marketing] [--json]', description: 'Run the unified SEO/GEO optimizer on the shared search-visibility kernel with mode-specific gates, marketing research/strategy, safe apply, and proof.' },
|
|
654
657
|
{ name: 'research', usage: 'sks research prepare|run|status ...', description: 'Run long-form real research missions with xhigh agent Eureka ideas, debate, layered sources, paper, novelty, and falsification gates.' },
|
|
655
|
-
{ name: 'db', usage: 'sks db policy|scan|mcp-config|classify|check ...', description: 'Inspect and enforce database/Supabase safety policy.' },
|
|
656
658
|
{ name: 'eval', usage: 'sks eval run|compare|thresholds ...', description: 'Run deterministic context-quality and performance evidence checks.' },
|
|
657
659
|
{ name: 'harness', usage: 'sks harness fixture|review [--json]', description: 'Run Harness Growth Factory fixtures for forgetting, skills, experiments, tool taxonomy, permissions, MultiAgentV2, and Zellij views.' },
|
|
658
|
-
{ name: 'perf', usage: 'sks perf run|workflow|cold-start [--json] [--iterations N]', description: 'Measure structured GPT-5.
|
|
660
|
+
{ name: 'perf', usage: 'sks perf run|workflow|cold-start [--json] [--iterations N]', description: 'Measure structured GPT-5.6/SKS performance budgets, including cold-start, Proof Field workflow decisions, and fast-lane evidence.' },
|
|
659
661
|
{ name: 'bench', usage: 'sks bench core|route-fixtures|blackbox|trust-kernel [--json]', description: 'Measure core trust-kernel hot paths and write performance budget artifacts.' },
|
|
660
662
|
{ name: 'proof', usage: 'sks proof show|latest|validate|export|smoke [--json|--md]', description: 'Show, validate, export, or smoke-write the unified Completion Proof Engine surface.' },
|
|
661
663
|
{ name: 'trust', usage: 'sks trust report|validate|status|explain [latest|mission-id] [--json]', description: 'Validate route contracts, evidence indexes, stale/mock evidence, and trust report blockers.' },
|
|
@@ -668,8 +670,9 @@ export const COMMAND_CATALOG = [
|
|
|
668
670
|
{ name: 'wiki', usage: 'sks wiki coords|pack|refresh|publish|rebuild-index|validate|validate-shared|wrongness ...', description: 'Build, refresh, publish shared shards, rebuild ignored indexes, validate, and attach wrongness-memory context to RGBA/trig LLM Wiki packs with attention.use_first and attention.hydrate_first for compact recall plus source hydration.' },
|
|
669
671
|
{ name: 'memory', usage: 'sks memory build [--json] | sks memory gc [--dry-run]', description: 'Project TriWiki context-pack memory into managed AGENTS.md blocks or run bounded memory cleanup.' },
|
|
670
672
|
{ name: 'hproof', usage: 'sks hproof check [mission-id|latest]', description: 'Evaluate the H-Proof done gate for a mission.' },
|
|
671
|
-
{ name: 'agent', usage: 'sks agent run|status|close|cleanup <mission-id|latest> [--agents N] [--work-items N] [--target-active-slots N] [--mock] [--apply|--dry-run] [--drain] [--stale-ms N] [--json] | sks agent rollback-patches [mission-id|latest] [--patch-entry-id id] [--dry-run|--apply] [--json]', description: 'Run, inspect, close, clean, or
|
|
672
|
-
{ name: '
|
|
673
|
+
{ name: 'agent', usage: 'sks agent run|status|close|cleanup <mission-id|latest> [--agents N] [--work-items N] [--target-active-slots N] [--mock] [--apply|--dry-run] [--drain] [--stale-ms N] [--json] | sks agent rollback-patches [mission-id|latest] [--patch-entry-id id] [--dry-run|--apply] [--json]', description: 'Run, inspect, close, clean, or roll back Codex subagent missions with an explicit requested-agent/thread budget, disjoint work ownership, official event evidence, and parent-owned integration.' },
|
|
674
|
+
{ name: 'naruto', usage: 'sks naruto run \"task\" [--agents N] [--max-threads N] [--json] | sks naruto status|subagents|proof [latest|M-...] [--json]', description: 'Run or inspect the Codex official subagent workflow with a Sol Max parent, Luna Max bounded workers, Sol Max experts, max_depth=1, and structured parent-thread completion evidence.' },
|
|
675
|
+
{ name: 'team', usage: 'sks team \"task\" | sks team log|tail|watch|lane|status ...', description: 'Deprecated compatibility command: new tasks redirect to Naruto; only read-only observation subcommands remain for old Team missions.' },
|
|
673
676
|
{ name: 'reasoning', usage: 'sks reasoning ["prompt"] [--json]', description: 'Show SKS temporary reasoning-effort routing: medium for simple tasks, high for logic, xhigh for research.' },
|
|
674
677
|
{ name: 'gx', usage: 'sks gx init|render|validate|drift|snapshot [name]', description: 'Create and verify deterministic SVG/HTML visual context cartridges.' },
|
|
675
678
|
{ name: 'profile', usage: 'sks profile show|set <model>', description: 'Inspect or set the current SKS model profile metadata.' },
|
|
@@ -804,10 +807,14 @@ export function looksLikeSuperSearchRequest(prompt = '') {
|
|
|
804
807
|
export function routePrompt(prompt) {
|
|
805
808
|
const text = stripVisibleDecisionAnswerBlocks(prompt);
|
|
806
809
|
const intentScores = scorePromptIntent(text);
|
|
807
|
-
const
|
|
810
|
+
const taskProfile = classifyTaskProfile(text);
|
|
811
|
+
const explicitCommand = Boolean(dollarCommand(text)) || /^\$?(?:plan|swarm)\b/i.test(text);
|
|
812
|
+
const select = (route) => withTaskProfile(withPromptIntentScores(route, intentScores), taskProfile, explicitCommand);
|
|
813
|
+
if (!explicitCommand && taskProfile === 'passthrough')
|
|
814
|
+
return null;
|
|
808
815
|
if (/^\$?plan\b/i.test(text))
|
|
809
816
|
return select(routeById('Planner'));
|
|
810
|
-
if (
|
|
817
|
+
if (/^\$work\b/i.test(text))
|
|
811
818
|
return select(routeById('Naruto'));
|
|
812
819
|
if (/^\$?swarm\b/i.test(text))
|
|
813
820
|
return select(routeById('Naruto'));
|
|
@@ -844,10 +851,18 @@ export function routePrompt(prompt) {
|
|
|
844
851
|
return select(routeById('ComputerUse'));
|
|
845
852
|
if (looksLikeTinyDirectFix(text))
|
|
846
853
|
return select(routeById('DFix'));
|
|
847
|
-
if (
|
|
854
|
+
if (looksLikeDatabaseWorkRequest(text))
|
|
848
855
|
return select(routeById('DB'));
|
|
849
856
|
if (looksLikeSuperSearchRequest(text) && !looksLikeCodeChangingWork(text))
|
|
850
857
|
return select(routeById('SuperSearch'));
|
|
858
|
+
if (taskProfile === 'answer' && !looksLikeSpecializedAnswerRouteSignal(text) && !looksLikeDirectWorkRequest(text))
|
|
859
|
+
return select(routeById('Answer'));
|
|
860
|
+
if (/\bautoresearch\b/i.test(text) && !looksLikeCodeChangingWork(text))
|
|
861
|
+
return select(routeById('AutoResearch'));
|
|
862
|
+
if (/\b(research|hypothesis|falsify|novelty|frontier)\b|조사|연구/i.test(text) && !looksLikeCodeChangingWork(text))
|
|
863
|
+
return select(routeById('Research'));
|
|
864
|
+
if (taskProfile === 'parallel-read' || taskProfile === 'parallel-write')
|
|
865
|
+
return select(routeById('Naruto'));
|
|
851
866
|
if (looksLikeQuestionShapedDirective(text))
|
|
852
867
|
return select(routeById('Naruto'));
|
|
853
868
|
if (looksLikeDirectWorkRequest(text))
|
|
@@ -876,8 +891,14 @@ export function routePrompt(prompt) {
|
|
|
876
891
|
return select(routeById('GX'));
|
|
877
892
|
if (looksLikeTeamDefaultWork(text))
|
|
878
893
|
return select(routeById('Naruto'));
|
|
894
|
+
if (taskProfile === 'answer')
|
|
895
|
+
return select(routeById('Answer'));
|
|
879
896
|
return select(routeById('SKS'));
|
|
880
897
|
}
|
|
898
|
+
function looksLikeSpecializedAnswerRouteSignal(prompt = '') {
|
|
899
|
+
const text = String(prompt || '');
|
|
900
|
+
return /\b(qa[-\s]?loop|qaloop|autoresearch|research|hypothesis|falsify|novelty|frontier|wiki|triwiki|GX|vgraph|visual context|render cartridge|wiki coordinate|rgba|trig|llm wiki|SEO|GEO|generative engine optimization)\b|조사|연구|위키|트라이위키|검색\s*엔진\s*최적화|생성형\s*엔진\s*최적화/i.test(text);
|
|
901
|
+
}
|
|
881
902
|
export function scorePromptIntent(prompt = '') {
|
|
882
903
|
const text = String(prompt || '').trim();
|
|
883
904
|
const reasons = new Set();
|
|
@@ -929,7 +950,7 @@ export function scorePromptIntent(prompt = '') {
|
|
|
929
950
|
researchScore += 2;
|
|
930
951
|
reasons.add('research');
|
|
931
952
|
}
|
|
932
|
-
if (
|
|
953
|
+
if (looksLikeDatabaseWorkRequest(text)) {
|
|
933
954
|
dbScore += 3;
|
|
934
955
|
reasons.add('db');
|
|
935
956
|
}
|
|
@@ -952,6 +973,11 @@ function withPromptIntentScores(route, intentScores) {
|
|
|
952
973
|
return route;
|
|
953
974
|
return { ...route, intent_scores: intentScores };
|
|
954
975
|
}
|
|
976
|
+
function withTaskProfile(route, taskProfile, explicitInvocation = false) {
|
|
977
|
+
if (!route)
|
|
978
|
+
return route;
|
|
979
|
+
return { ...route, task_profile: taskProfile, explicit_invocation: explicitInvocation };
|
|
980
|
+
}
|
|
955
981
|
export function looksLikeComputerUseFastLane(prompt = '') {
|
|
956
982
|
const text = String(prompt || '');
|
|
957
983
|
const computerUseCue = /\b(computer\s*use|codex\s+computer\s+use|computer-use)\b|컴퓨터\s*유즈|컴퓨터\s*사용|컴퓨터유즈/i.test(text);
|
|
@@ -1000,6 +1026,8 @@ export function looksLikeDirectWorkRequest(prompt = '') {
|
|
|
1000
1026
|
const text = String(prompt || '');
|
|
1001
1027
|
if (/(?:설명만|설명\s*만|just\s+explain|explain\s+only|only\s+explain)/i.test(text))
|
|
1002
1028
|
return false;
|
|
1029
|
+
if (looksLikePureExplanationRequest(text))
|
|
1030
|
+
return false;
|
|
1003
1031
|
const explicitDirective = looksLikeExplicitDirectWorkDirective(text);
|
|
1004
1032
|
if (looksLikeDirectFixQuestion(text) && !explicitDirective)
|
|
1005
1033
|
return false;
|
|
@@ -1013,6 +1041,14 @@ export function looksLikeDirectWorkRequest(prompt = '') {
|
|
|
1013
1041
|
|| /(작업|파이프라인|구현|수정|변경|추가|적용|반영|처리|수행|검수|설치|해결|리드미|README).*(해줘|해달|해라|해야|되게|줘야|줘야지|달라)/i.test(text)
|
|
1014
1042
|
|| /(진행해|수행해|작업해|처리해|적용해|반영해|검수해|고쳐줘|바꿔줘|해결해줘|만들어줘|해줘야|해줘야지|해달라|해야지|되게 해|install|run|execute|test|deploy|commit|push)/i.test(text);
|
|
1015
1043
|
}
|
|
1044
|
+
function looksLikePureExplanationRequest(prompt = '') {
|
|
1045
|
+
const text = String(prompt || '').trim();
|
|
1046
|
+
const explanationEnding = /(?:설명|알려)\s*(?:해\s*줘|해\s*주세요|해달라|줘)\s*[.!?]*$/i.test(text)
|
|
1047
|
+
|| /^(?:can|could|would) you explain\b/i.test(text);
|
|
1048
|
+
if (!explanationEnding)
|
|
1049
|
+
return false;
|
|
1050
|
+
return !/\b(fix|implement|change|edit|add|remove|delete|modify|refactor|build|create|write|update|rename|rewrite|patch|apply|execute|repair|resolve|publish|release|deploy|migrate)\b|고쳐|수정|변경|추가|삭제|구현|리팩터|작성|생성|업데이트|적용|실행|해결|배포|출시|마이그레이션/i.test(text);
|
|
1051
|
+
}
|
|
1016
1052
|
function looksLikeConditionalWorkRequest(prompt = '') {
|
|
1017
1053
|
const text = String(prompt || '').trim();
|
|
1018
1054
|
if (!text)
|
|
@@ -1034,6 +1070,7 @@ function looksLikeExplicitDirectWorkDirective(prompt = '') {
|
|
|
1034
1070
|
return false;
|
|
1035
1071
|
const koreanDirective = /(해\s*줘|해\s*주세요|해달|달라|진행해|수행해|작업해|처리해|적용해|반영해|검수해|고쳐줘|수정해줘|변경해줘|바꿔줘|해결해줘|만들어줘|준비해줘|완료해줘|배포\s*준비|릴리즈\s*준비|다음\s*버전)/i.test(text);
|
|
1036
1072
|
const englishDirective = /\b(?:please\s+)?(?:fix|repair|resolve|solve|implement|patch|update|change|modify|prepare|ship|release|publish|deploy)\b[\s\S]{0,180}\b(?:for\s+me|now|release|deployment|publish|next\s+version|ship|deploy|prepare)\b/i.test(text)
|
|
1073
|
+
|| /^(?:please\s+)?work\s+on\b/i.test(text)
|
|
1037
1074
|
|| /\b(?:prepare|make)\b[\s\S]{0,120}\b(?:next\s+version|release|deployment|publish|ship)\b/i.test(text)
|
|
1038
1075
|
|| /\b(?:fix|repair|resolve|solve|implement|patch|update|change|modify)\b[\s\S]{0,180}\b(?:prepare|ship|release|publish|deploy)\b/i.test(text);
|
|
1039
1076
|
return koreanDirective || englishDirective;
|
|
@@ -1047,34 +1084,27 @@ export function routeNeedsContext7(route, prompt = '') {
|
|
|
1047
1084
|
return false;
|
|
1048
1085
|
return /\b(package|library|framework|SDK|API|MCP|Supabase|React|Next|Vue|Svelte|Vite|Prisma|Drizzle|Knex|Postgres|npm|node_modules|docs?|documentation)\b/i.test(String(prompt || ''));
|
|
1049
1086
|
}
|
|
1050
|
-
export function routeRequiresSubagents(route, prompt = '') {
|
|
1087
|
+
export function routeRequiresSubagents(route, prompt = '', profile = classifyTaskProfile(prompt)) {
|
|
1051
1088
|
if (!route)
|
|
1052
1089
|
return false;
|
|
1053
|
-
if (
|
|
1054
|
-
return true;
|
|
1055
|
-
if (route.id === 'SKS')
|
|
1056
|
-
return looksLikeTeamDefaultWork(prompt);
|
|
1057
|
-
if (route.id === 'Help' || route.id === 'Answer' || route.id === 'Wiki' || route.id === 'ComputerUse' || route.id === 'Commit' || route.id === 'CommitAndPush')
|
|
1058
|
-
return false;
|
|
1059
|
-
if (route.id === 'PPT')
|
|
1090
|
+
if (['Answer', 'DFix', 'Help', 'Wiki', 'ComputerUse'].includes(String(route.id || '')))
|
|
1060
1091
|
return false;
|
|
1061
|
-
|
|
1092
|
+
// QA-Loop retains one route-owned native execution engine. Do not also
|
|
1093
|
+
// materialize an official-subagent overlay for the same mission.
|
|
1094
|
+
if (route.id === 'QALoop')
|
|
1062
1095
|
return false;
|
|
1063
|
-
if (route.id === '
|
|
1064
|
-
return
|
|
1065
|
-
if (
|
|
1066
|
-
return
|
|
1067
|
-
if (
|
|
1096
|
+
if ((route.id === 'Team' || route.id === 'Naruto') && route.explicit_invocation !== false)
|
|
1097
|
+
return true;
|
|
1098
|
+
if (/(?:^|\s)--(?:agents|clones)(?:=|\s+)\d+\b/i.test(String(prompt || '')))
|
|
1099
|
+
return true;
|
|
1100
|
+
if (profile === 'passthrough' || profile === 'answer' || profile === 'tiny-change' || profile === 'bounded-work')
|
|
1068
1101
|
return false;
|
|
1069
|
-
if (
|
|
1102
|
+
if (profile === 'parallel-read' || profile === 'parallel-write')
|
|
1070
1103
|
return true;
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
if (route.id === 'DFix')
|
|
1076
|
-
return looksLikeCodeChangingWork(prompt) && !looksLikeTinyDirectFix(prompt);
|
|
1077
|
-
return looksLikeExecutionWork(prompt);
|
|
1104
|
+
return profile === 'high-risk' && explicitlyParallelizable(prompt);
|
|
1105
|
+
}
|
|
1106
|
+
function explicitlyParallelizable(prompt = '') {
|
|
1107
|
+
return /(?:^|\s)--(?:agents|clones)(?:=|\s+)\d+\b|\b(parallel|subagents?|one agent per|fan out|independent slices?|multiple files|audit all)\b|병렬|하위\s*에이전트|서브\s*에이전트|독립\s*(?:작업|범위)|분담|여러\s*파일|전체\s*검토/i.test(String(prompt || ''));
|
|
1078
1108
|
}
|
|
1079
1109
|
export function simpleGitOnlyRouteId(prompt = '') {
|
|
1080
1110
|
const text = stripVisibleDecisionAnswerBlocks(String(prompt || '')).trim();
|
|
@@ -1115,22 +1145,22 @@ export function subagentExecutionPolicyText(route, prompt = '') {
|
|
|
1115
1145
|
const required = routeRequiresSubagents(route, prompt);
|
|
1116
1146
|
if (route?.id === 'Goal') {
|
|
1117
1147
|
if (!required)
|
|
1118
|
-
return '
|
|
1148
|
+
return 'Subagent policy: Goal is a lightweight native /goal persistence overlay; a subagent workflow is not required for bridge creation or control.';
|
|
1119
1149
|
return [
|
|
1120
|
-
'
|
|
1121
|
-
'Because the prompt also
|
|
1150
|
+
'Subagent policy: Goal remains a lightweight native /goal persistence overlay.',
|
|
1151
|
+
'Because the prompt also requests explicitly parallel execution, continue through the selected SKS execution route and use that route\'s Codex subagent workflow.',
|
|
1122
1152
|
noUnrequestedFallbackCodePolicyText()
|
|
1123
1153
|
].join(' ');
|
|
1124
1154
|
}
|
|
1125
1155
|
if (!required) {
|
|
1126
|
-
return '
|
|
1156
|
+
return 'Subagent policy: not required for this task profile. Keep the work parent-owned unless a later, concrete decomposition reveals independent slices.';
|
|
1127
1157
|
}
|
|
1128
1158
|
return [
|
|
1129
|
-
'
|
|
1130
|
-
'The
|
|
1131
|
-
'
|
|
1132
|
-
'
|
|
1133
|
-
'
|
|
1159
|
+
'Codex subagent workflow: required for this explicit Naruto or parallel task.',
|
|
1160
|
+
'The parent agent owns decomposition, integration, scoped verification, and the final answer.',
|
|
1161
|
+
'Delegate only genuinely independent slices. Use worker for clear bounded work and expert for review, debugging, planning, architecture, integration, or risk-sensitive judgment.',
|
|
1162
|
+
'Parallel writes require disjoint paths; serialize overlapping paths, prohibit nested delegation, avoid duplicate work, wait for all requested agent threads, and close completed threads after collecting results.',
|
|
1163
|
+
'Completion evidence comes from official SubagentStart/SubagentStop events plus the parent integration summary, not process counts or PID evidence.',
|
|
1134
1164
|
noUnrequestedFallbackCodePolicyText()
|
|
1135
1165
|
].join(' ');
|
|
1136
1166
|
}
|
|
@@ -1161,10 +1191,8 @@ export function routeReasoning(route, prompt = '') {
|
|
|
1161
1191
|
return reasoning('low', 'route_policy_low');
|
|
1162
1192
|
return reasoning('medium', 'simple_fulfillment');
|
|
1163
1193
|
}
|
|
1164
|
-
function narutoRouteReasoning(
|
|
1165
|
-
|
|
1166
|
-
return reasoning('max', 'naruto_complex_or_high_risk_signal');
|
|
1167
|
-
return reasoning('xhigh', 'naruto_gpt56_baseline');
|
|
1194
|
+
function narutoRouteReasoning(_text = '') {
|
|
1195
|
+
return reasoning('max', 'naruto_parent_sol_max');
|
|
1168
1196
|
}
|
|
1169
1197
|
export function reasoningProfileName(effort) {
|
|
1170
1198
|
if (effort === 'low')
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export const TASK_PROFILE_GATE_PROFILES = Object.freeze({
|
|
2
|
+
passthrough: 'none',
|
|
3
|
+
answer: 'none',
|
|
4
|
+
'tiny-change': 'minimal',
|
|
5
|
+
'bounded-work': 'scoped',
|
|
6
|
+
'parallel-read': 'scoped',
|
|
7
|
+
'parallel-write': 'scoped',
|
|
8
|
+
'high-risk': 'full'
|
|
9
|
+
});
|
|
10
|
+
const TASK_PROFILES = new Set(Object.keys(TASK_PROFILE_GATE_PROFILES));
|
|
11
|
+
const GREETING_RE = /^(hi|hello|hey|thanks|thank you|good morning|good evening|안녕|안녕하세요|고마워|고마워요|감사해|감사합니다|잘 지내\??)[!.?\s]*$/i;
|
|
12
|
+
const NON_DATABASE_HIGH_RISK_RE = /\b(security|permission|publish|release|deploy|auth|payment|production)\b|보안|권한|배포|릴리즈|출시|인증|결제|운영/i;
|
|
13
|
+
const DATABASE_DOMAIN_RE = /\b(?:SQL|Supabase|Postgres|PostgreSQL|RLS|Prisma|Drizzle|Knex|database|DB|execute_sql|migrate|migration|migrations)\b|데이터베이스|디비|마이그레이션/i;
|
|
14
|
+
const DATABASE_WORK_RE = /\b(?:apply|execute|run|fix|change|modify|migrate|audit|review|inspect|analy[sz]e|query|seed|backfill|optimi[sz]e|create|alter|drop|truncate|update|delete|repair)\b|적용|실행|수정|변경|검수|검토|점검|분석|조회|쿼리|시드|백필|최적화|생성|추가|삭제|복구|만들어/i;
|
|
15
|
+
const DATABASE_CONTROL_SURFACE_META_RE = /\bsks\s+db\b|\b(?:db|database|migrate|migrations?)\b[\s\S]{0,48}\b(?:command|cli|route|routing|parser|classifier|regex|help|usage|topic|docs?|documentation|constant|keyword|alias)\b|\b(?:command|cli|route|routing|parser|classifier|regex|help|usage|topic|docs?|documentation|constant|keyword|alias)\b[\s\S]{0,48}\b(?:db|database|migrate|migrations?)\b|(?:db|디비|데이터베이스|migration|migrate|마이그레이션)\s*(?:커맨드|명령|명령어|CLI|라우트|라우팅|파서|분류기|정규식|도움말|헬프|사용법|토픽|문서|상수|키워드|별칭)|(?:커맨드|명령|명령어|CLI|라우트|라우팅|파서|분류기|정규식|도움말|헬프|사용법|토픽|문서|상수|키워드|별칭)[\s\S]{0,32}(?:db|디비|데이터베이스|migration|migrate|마이그레이션)/i;
|
|
16
|
+
const PARALLEL_CUE_RE = /\b(parallel|subagents?|one agent per|fan out|multiple files|audit all|all files|independent slices?|naruto|shadow\s*clone|kagebunshin|swarm)\b|병렬|하위\s*에이전트|서브\s*에이전트|여러\s*파일|모든\s*파일|전체\s*검토|나루토|분담/i;
|
|
17
|
+
const CHANGE_RE = /\b(fix|implement|implementation|change|edit|add|remove|delete|drop|modify|refactor|build|create|write|update|rename|rewrite|patch|apply|execute|repair|resolve|solve|publish|release|deploy|migrate)\b|\bwork\s+on\b|고쳐|고치|수정|변경|추가|삭제|구현|리팩터|작성|생성|만들어|업데이트|적용|실행|해결|이름\s*변경|배포|출시|마이그레이션/i;
|
|
18
|
+
const TINY_CHANGE_RE = /\b(typo|copy|wording|label|spacing|whitespace|punctuation|spelling|one[-\s]?line|single[-\s]?(?:line|word)|rename only)\b|오타|문구|라벨|띄어쓰기|공백|맞춤법|구두점|한\s*줄|단어\s*하나|이름만\s*변경/i;
|
|
19
|
+
const EXPLANATION_QUESTION_RE = /^(how\s+(?:do|can|should|would)\s+(?:i|we|you)\b|what\b|why\b|when\b|where\b|which\b|explain\b|tell me how\b)|(?:어떻게|무엇|뭐가|왜|언제|어디|방법|설명)(?:.*(?:인가요|일까요|하나요|해요|할까|\?))?$/i;
|
|
20
|
+
const DIRECT_REQUEST_RE = /^(please\s+|can you\s+|could you\s+|would you\s+)|(?:해줘|해주세요|해\s*주세요|바꿔줘|고쳐줘|수정해줘|구현해줘)/i;
|
|
21
|
+
const EXPLANATION_REQUEST_RE = /^(?:can|could|would) you explain\b|(?:설명|알려)\s*(?:해\s*줘|해\s*주세요|해달라|줘)\s*[.!?]*$/i;
|
|
22
|
+
export function classifyTaskProfile(prompt) {
|
|
23
|
+
const text = String(prompt ?? '').trim();
|
|
24
|
+
if (!text || GREETING_RE.test(text))
|
|
25
|
+
return 'passthrough';
|
|
26
|
+
if (looksLikeExplanationQuestion(text))
|
|
27
|
+
return 'answer';
|
|
28
|
+
if (looksLikeDatabaseWorkRequest(text) || (CHANGE_RE.test(text) && NON_DATABASE_HIGH_RISK_RE.test(text)))
|
|
29
|
+
return 'high-risk';
|
|
30
|
+
if (PARALLEL_CUE_RE.test(text) && CHANGE_RE.test(text))
|
|
31
|
+
return 'parallel-write';
|
|
32
|
+
if (PARALLEL_CUE_RE.test(text))
|
|
33
|
+
return 'parallel-read';
|
|
34
|
+
if (DATABASE_CONTROL_SURFACE_META_RE.test(text) && DATABASE_WORK_RE.test(text))
|
|
35
|
+
return 'bounded-work';
|
|
36
|
+
if (looksLikeTinyChange(text))
|
|
37
|
+
return 'tiny-change';
|
|
38
|
+
if (CHANGE_RE.test(text))
|
|
39
|
+
return 'bounded-work';
|
|
40
|
+
return 'answer';
|
|
41
|
+
}
|
|
42
|
+
export function gateProfileForTask(profileOrPrompt) {
|
|
43
|
+
const profile = isTaskProfile(profileOrPrompt)
|
|
44
|
+
? profileOrPrompt
|
|
45
|
+
: classifyTaskProfile(profileOrPrompt);
|
|
46
|
+
return TASK_PROFILE_GATE_PROFILES[profile];
|
|
47
|
+
}
|
|
48
|
+
export function isTaskProfile(value) {
|
|
49
|
+
return TASK_PROFILES.has(String(value || ''));
|
|
50
|
+
}
|
|
51
|
+
export function looksLikeDatabaseWorkRequest(prompt) {
|
|
52
|
+
const text = String(prompt ?? '').trim();
|
|
53
|
+
if (!text || !DATABASE_DOMAIN_RE.test(text))
|
|
54
|
+
return false;
|
|
55
|
+
if (DATABASE_CONTROL_SURFACE_META_RE.test(text))
|
|
56
|
+
return false;
|
|
57
|
+
return DATABASE_WORK_RE.test(text);
|
|
58
|
+
}
|
|
59
|
+
function looksLikeTinyChange(text) {
|
|
60
|
+
return CHANGE_RE.test(text) && TINY_CHANGE_RE.test(text);
|
|
61
|
+
}
|
|
62
|
+
function looksLikeExplanationQuestion(text) {
|
|
63
|
+
return (EXPLANATION_QUESTION_RE.test(text) || EXPLANATION_REQUEST_RE.test(text))
|
|
64
|
+
&& (EXPLANATION_REQUEST_RE.test(text) || !DIRECT_REQUEST_RE.test(text));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=task-profile.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function chooseVerificationBudget(input) {
|
|
2
|
+
if (input.taskProfile === 'passthrough')
|
|
3
|
+
return 'none';
|
|
4
|
+
if (input.taskProfile === 'answer')
|
|
5
|
+
return 'none';
|
|
6
|
+
if (input.taskProfile === 'tiny-change')
|
|
7
|
+
return 'single-check';
|
|
8
|
+
if (input.taskProfile === 'high-risk')
|
|
9
|
+
return 'confidence';
|
|
10
|
+
return 'affected';
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=verification-budget.js.map
|
|
@@ -17,6 +17,9 @@ const SECRET_PATTERNS = [
|
|
|
17
17
|
/\bgithub_pat_[A-Za-z0-9_]{20,}\b/g,
|
|
18
18
|
/\bghp_[A-Za-z0-9_]{20,}\b/g,
|
|
19
19
|
/\bBearer\s+[A-Za-z0-9._~+/=-]{16,}\b/gi,
|
|
20
|
+
/\bAuthorization\s*:\s*[^\r\n,}]+/gi,
|
|
21
|
+
/\b(?:Cookie|Set-Cookie)\s*:\s*[^\r\n,}]+/gi,
|
|
22
|
+
/\b[A-Za-z0-9-]+-Auth\s*:\s*[^\r\n,}]+/gi,
|
|
20
23
|
/\b(?:access[_-]?token|api[_-]?key|secret|password|token)\s*[:=]\s*["']?[A-Za-z0-9._~+/=-]{12,}["']?/gi
|
|
21
24
|
];
|
|
22
25
|
export const REDACTION_MARKER = '[redacted]';
|
|
@@ -62,6 +65,7 @@ export function containsPlaintextSecret(value, env = process.env) {
|
|
|
62
65
|
}
|
|
63
66
|
function secretKeyName(key = '') {
|
|
64
67
|
return /(?:access[_-]?token|api[_-]?key|secret|password|token)$/i.test(String(key || ''))
|
|
68
|
+
|| /(?:^|[_-])(?:auth|authorization|headers?|cookies?|bearer|credentials?|env)$/i.test(String(key || ''))
|
|
65
69
|
|| SECRET_ENV_NAMES.includes(String(key || '').toUpperCase());
|
|
66
70
|
}
|
|
67
71
|
function redactKeyValue(match) {
|