sneakoscope 8.2.0 → 8.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +46 -110
  2. package/crates/sks-core/Cargo.lock +1 -1
  3. package/crates/sks-core/Cargo.toml +1 -1
  4. package/dist/cli/command-manifest-lite.js +0 -2
  5. package/dist/cli/command-registry.js +0 -2
  6. package/dist/commands/codex.js +3 -3
  7. package/dist/commands/doctor.js +5 -157
  8. package/dist/config/skills-manifest.json +1 -1
  9. package/dist/core/codex/codex-cli-syntax-builder.js +0 -8
  10. package/dist/core/codex-app/codex-models-cache.js +2 -1
  11. package/dist/core/codex-app/menubar/constants.js +0 -7
  12. package/dist/core/codex-compat/codex-capability-matrix.js +7 -7
  13. package/dist/core/codex-compat/codex-compat-report.js +8 -12
  14. package/dist/core/codex-compat/codex-runtime-contract.js +62 -0
  15. package/dist/core/codex-compat/codex-version-policy.js +7 -7
  16. package/dist/core/codex-control/codex-current-app-capability.js +3 -3
  17. package/dist/core/codex-control/codex-current-capability.js +67 -94
  18. package/dist/core/codex-control/codex-current-core-capability.js +3 -3
  19. package/dist/core/codex-control/codex-current-core-probe-runner.js +4 -4
  20. package/dist/core/codex-control/codex-current-core-real-probes.js +2 -2
  21. package/dist/core/codex-control/codex-current-feature-capability.js +4 -4
  22. package/dist/core/codex-control/codex-current-image-path-real-probe.js +1 -1
  23. package/dist/core/codex-control/codex-current-web-search-probe.js +1 -1
  24. package/dist/core/codex-control/codex-sdk-capability.js +2 -2
  25. package/dist/core/commands/remote-command.js +2 -2
  26. package/dist/core/context7-client.js +5 -2
  27. package/dist/core/doctor/codex-current-core-probe-doctor.js +2 -2
  28. package/dist/core/doctor/doctor-dirty-planner.js +1 -1
  29. package/dist/core/doctor/doctor-readiness-matrix.js +0 -7
  30. package/dist/core/feature-fixtures.js +0 -4
  31. package/dist/core/feature-registry.js +0 -1
  32. package/dist/core/image-ux-review.js +3 -3
  33. package/dist/core/install/installed-package-smoke.js +2 -3
  34. package/dist/core/mad-sks/sql-plane/mcp-executor.js +4 -3
  35. package/dist/core/mcp/modern-protocol.js +36 -0
  36. package/dist/core/mcp-config/health-check.js +45 -30
  37. package/dist/core/perf/release-latency-slo.js +1 -2
  38. package/dist/core/proof/runtime-truth-matrix.js +1 -1
  39. package/dist/core/release/canonical-test-proof.js +1 -2
  40. package/dist/core/release/gate-manifest.js +5 -2
  41. package/dist/core/release/physical-release-gates.js +0 -26
  42. package/dist/core/release/release-gate-affected-selector.js +2 -1
  43. package/dist/core/release/release-gate-contract.js +3 -1
  44. package/dist/core/release/release-pack-receipt.js +0 -1
  45. package/dist/core/release/stage-publish.js +1 -1
  46. package/dist/core/version-manager.js +4 -0
  47. package/dist/core/version.js +1 -1
  48. package/dist/native/sks-menubar/Sources/AppDelegate.swift +1 -12
  49. package/dist/native/sks-menubar/Sources/ControlCenterWindowController.swift +2 -6
  50. package/dist/native/sks-menubar/Sources/RemoteCodingViewController.swift +28 -471
  51. package/dist/native/sks-menubar/Sources/SecureProcessEnvelope.swift +1 -43
  52. package/dist/scripts/codex-current-app-server-v2-check.js +9 -8
  53. package/dist/scripts/codex-current-binary-identity-check.js +2 -2
  54. package/dist/scripts/codex-current-capability-check.js +9 -7
  55. package/dist/scripts/codex-current-dependency-check.js +21 -0
  56. package/dist/scripts/docs-truthfulness-check.js +4 -19
  57. package/dist/scripts/fast-codex-service-tier-proof-check.js +0 -1
  58. package/dist/scripts/install-surface-ssot-check.js +2 -2
  59. package/dist/scripts/latest-version-guidance-check.js +1 -1
  60. package/dist/scripts/packlist-performance-check.js +0 -1
  61. package/dist/scripts/release-metadata-check.js +4 -1
  62. package/dist/scripts/release-version-truth-check.js +149 -0
  63. package/dist/vendor/openai-codex/latest/hooks/permission-request.command.input.schema.json +6 -0
  64. package/dist/vendor/openai-codex/latest/hooks/permission-request.command.output.schema.json +2 -16
  65. package/dist/vendor/openai-codex/latest/hooks/post-compact.command.input.schema.json +6 -0
  66. package/dist/vendor/openai-codex/latest/hooks/post-tool-use.command.input.schema.json +6 -0
  67. package/dist/vendor/openai-codex/latest/hooks/post-tool-use.command.output.schema.json +2 -16
  68. package/dist/vendor/openai-codex/latest/hooks/pre-compact.command.input.schema.json +6 -0
  69. package/dist/vendor/openai-codex/latest/hooks/pre-tool-use.command.input.schema.json +6 -0
  70. package/dist/vendor/openai-codex/latest/hooks/pre-tool-use.command.output.schema.json +2 -16
  71. package/dist/vendor/openai-codex/latest/hooks/session-start.command.output.schema.json +2 -16
  72. package/dist/vendor/openai-codex/latest/hooks/snapshot-metadata.json +7 -5
  73. package/dist/vendor/openai-codex/latest/hooks/subagent-start.command.output.schema.json +4 -18
  74. package/dist/vendor/openai-codex/latest/hooks/user-prompt-submit.command.input.schema.json +6 -0
  75. package/dist/vendor/openai-codex/latest/hooks/user-prompt-submit.command.output.schema.json +2 -16
  76. package/package.json +4 -7
  77. package/release-gates.v2.json +49 -19
  78. package/config/codex-releases/rust-v0.146.0.json +0 -45
  79. package/dist/core/agents/agent-runner-codex-exec.js +0 -177
  80. package/dist/core/codex-compat/codex-release-manifest.js +0 -72
  81. package/dist/core/commands/telegram-command.js +0 -447
  82. package/dist/core/telegram/access.js +0 -58
  83. package/dist/core/telegram/client.js +0 -157
  84. package/dist/core/telegram/confirmation.js +0 -37
  85. package/dist/core/telegram/doctor.js +0 -154
  86. package/dist/core/telegram/index.js +0 -9
  87. package/dist/core/telegram/keychain.js +0 -317
  88. package/dist/core/telegram/liveness.js +0 -124
  89. package/dist/core/telegram/poller.js +0 -90
  90. package/dist/core/telegram/redaction.js +0 -15
  91. package/dist/core/telegram/state-lock.js +0 -416
  92. package/dist/core/telegram/types.js +0 -1
  93. package/dist/native/sks-menubar/Sources/TelegramPrivateFileStore.swift +0 -498
  94. package/dist/native/sks-menubar/Sources/TelegramPrivateFileSupport.swift +0 -236
  95. package/dist/native/sks-menubar/Sources/TelegramProcessGateway.swift +0 -454
  96. package/dist/native/sks-menubar/Sources/TelegramRuntimeSupport.swift +0 -56
  97. package/dist/native/sks-menubar/Sources/TelegramStateLock.swift +0 -448
  98. package/dist/native/sks-menubar/Sources/TelegramSupport.swift +0 -243
  99. package/dist/native/sks-menubar/Sources/TelegramTransport.swift +0 -499
  100. package/dist/scripts/codex-current-manifest-check.js +0 -29
  101. package/schemas/codex/app-server-0.146/codex_app_server_protocol.v2.schemas.json +0 -19858
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sneakoscope",
3
3
  "displayName": "ㅅㅋㅅ",
4
- "version": "8.2.0",
4
+ "version": "8.3.0",
5
5
  "description": "Sneakoscope Codex (`sks`) is an open-source trust layer for Codex CLI and ChatGPT Desktop. It coordinates bounded AI coding agents, records machine-verifiable evidence, preserves project memory, and blocks release claims that are not supported by current tests or artifacts. Search visibility outcomes are measured separately; SKS does not promise rankings or traffic.",
6
6
  "type": "module",
7
7
  "homepage": "https://github.com/mandarange/Sneakoscope-Codex#readme",
@@ -40,7 +40,8 @@
40
40
  "!dist/scripts/**",
41
41
  "dist/scripts/canonical-test-runner.js",
42
42
  "dist/scripts/desktop-bridge-transport-client.js",
43
- "dist/scripts/{agent-guidance-dedup-check.js,agent-message-bus-reader-check.js,all-feature-deep-completion-check.js,appshots-thread-attachment-discovery-check.js,architecture-guard-check.js,certificate-sla-check.js,check-runtime-schemas.js,cli-output-consistency-check.js,codex-current-app-server-v2-check.js,codex-current-binary-identity-check.js,codex-current-capability-check.js,codex-current-core-real-probes-check.js,codex-current-manifest-check.js,codex-current-policy-check.js,codex-current-thread-store-check.js,codex-agent-role-rich-content-check.js,codex-agent-role-sync-check.js,codex-agent-type-routing-check.js,codex-app-execution-profile-check.js,codex-app-fast-ui-preservation-check.js,codex-app-handoff-check.js,codex-app-handoff-launch-check.js,codex-config-load-probe.js,context-graph-check.js,codex-control-all-pipelines-check.js,codex-control-event-stream-ledger-check.js,codex-control-tool-output-continuity-audit-check.js,desktop-bridge-transport-check.js,desktop-bridge-latency-check.js,desktop-bridge-capabilities-check.js,desktop-bridge-real-evidence-check.js,codex-native-agent-role-content-check.js,codex-native-feature-broker-blackbox.js,codex-native-feature-broker-check.js,codex-native-harness-compat-check.js,codex-native-hook-lifecycle-proof-check.js,codex-native-runtime-e2e-fixture.js,codex-plugin-app-template-policy-check.js,codex-sdk-all-pipelines-check.js,codex-sdk-backend-router-check.js,codex-sdk-capability-check.js,codex-sdk-event-stream-ledger-check.js,codex-sdk-real-smoke-check.js,concurrent-session-collision-check.js,context7-evidence-dedupe-check.js,core-skill-card-schema-check.js,core-skill-deployment-snapshot-check.js,core-skill-heldout-validation-check.js,core-skill-no-inference-optimizer-check.js,core-skill-patch-check.js,core-skill-route-runtime-integration-check.js,current-command-surface-check.js,current-surface-update-e2e-check.js,current-upgrade-matrix-check.js,desktop-bridge-unification-check.js,dfix-fixture-check.js,dfix-patch-handoff-check.js,dfix-verification-check.js,dfix-verification-recommendation-check.js,docs-truthfulness-check.js,doctor-codex-app-harness-check.js,doctor-fix-proves-codex-read-check.js,doctor-fixes-codex-app-fast-ui-check.js,evidence-flagship-coverage-check.js,fast-codex-service-tier-proof-check.js,fixtures/fake-codex-config-loader.js,gate-policy-audit-check.js,geo-claim-evidence-check.js,geo-cli-blackbox-check.js,geo-crawler-policy-check.js,git-worktree-checkpoint-check.js,git-worktree-cross-rebase-check.js,git-worktree-diff-envelope-check.js,git-worktree-dirty-lock-check.js,git-worktree-dirty-main-detection-check.js,git-worktree-integration-primary-check.js,git-worktree-manifest-append-check.js,git-worktree-untracked-diff-check.js,goal-artifact-compat-check.js,harness-benchmark-check.js,helper-dedup-check.js,hook-latency-budget-check.js,image-artifact-path-contract-check.js,imagegen-real-smoke-check.js,init-deep-backup-retention-check.js,installed-package-smoke-check.js,lib/codex-sdk-gate-lib.js,lib/ensure-dist-fresh.js,lib/git-worktree-fixture.js,lib/valid-png-fixture.js,local-collab-all-pipelines-final-gpt-check.js,loop-directive-check-lib.js,loop-integration-finalizer-check.js,loop-worker-fixture-child.js,mad-preflight-blocks-unreadable-config-check.js,mad-sks-app-ui-no-mutation-check.js}",
43
+ "dist/scripts/release-version-truth-check.js",
44
+ "dist/scripts/{agent-guidance-dedup-check.js,agent-message-bus-reader-check.js,all-feature-deep-completion-check.js,appshots-thread-attachment-discovery-check.js,architecture-guard-check.js,certificate-sla-check.js,check-runtime-schemas.js,cli-output-consistency-check.js,codex-current-app-server-v2-check.js,codex-current-binary-identity-check.js,codex-current-capability-check.js,codex-current-core-real-probes-check.js,codex-current-dependency-check.js,codex-current-policy-check.js,codex-current-thread-store-check.js,codex-agent-role-rich-content-check.js,codex-agent-role-sync-check.js,codex-agent-type-routing-check.js,codex-app-execution-profile-check.js,codex-app-fast-ui-preservation-check.js,codex-app-handoff-check.js,codex-app-handoff-launch-check.js,codex-config-load-probe.js,context-graph-check.js,codex-control-all-pipelines-check.js,codex-control-event-stream-ledger-check.js,codex-control-tool-output-continuity-audit-check.js,desktop-bridge-transport-check.js,desktop-bridge-latency-check.js,desktop-bridge-capabilities-check.js,desktop-bridge-real-evidence-check.js,codex-native-agent-role-content-check.js,codex-native-feature-broker-blackbox.js,codex-native-feature-broker-check.js,codex-native-harness-compat-check.js,codex-native-hook-lifecycle-proof-check.js,codex-native-runtime-e2e-fixture.js,codex-plugin-app-template-policy-check.js,codex-sdk-all-pipelines-check.js,codex-sdk-backend-router-check.js,codex-sdk-capability-check.js,codex-sdk-event-stream-ledger-check.js,codex-sdk-real-smoke-check.js,concurrent-session-collision-check.js,context7-evidence-dedupe-check.js,core-skill-card-schema-check.js,core-skill-deployment-snapshot-check.js,core-skill-heldout-validation-check.js,core-skill-no-inference-optimizer-check.js,core-skill-patch-check.js,core-skill-route-runtime-integration-check.js,current-command-surface-check.js,current-surface-update-e2e-check.js,current-upgrade-matrix-check.js,desktop-bridge-unification-check.js,dfix-fixture-check.js,dfix-patch-handoff-check.js,dfix-verification-check.js,dfix-verification-recommendation-check.js,docs-truthfulness-check.js,doctor-codex-app-harness-check.js,doctor-fix-proves-codex-read-check.js,doctor-fixes-codex-app-fast-ui-check.js,evidence-flagship-coverage-check.js,fast-codex-service-tier-proof-check.js,fixtures/fake-codex-config-loader.js,gate-policy-audit-check.js,geo-claim-evidence-check.js,geo-cli-blackbox-check.js,geo-crawler-policy-check.js,git-worktree-checkpoint-check.js,git-worktree-cross-rebase-check.js,git-worktree-diff-envelope-check.js,git-worktree-dirty-lock-check.js,git-worktree-dirty-main-detection-check.js,git-worktree-integration-primary-check.js,git-worktree-manifest-append-check.js,git-worktree-untracked-diff-check.js,goal-artifact-compat-check.js,harness-benchmark-check.js,helper-dedup-check.js,hook-latency-budget-check.js,image-artifact-path-contract-check.js,imagegen-real-smoke-check.js,init-deep-backup-retention-check.js,installed-package-smoke-check.js,lib/codex-sdk-gate-lib.js,lib/ensure-dist-fresh.js,lib/git-worktree-fixture.js,lib/valid-png-fixture.js,local-collab-all-pipelines-final-gpt-check.js,loop-directive-check-lib.js,loop-integration-finalizer-check.js,loop-worker-fixture-child.js,mad-preflight-blocks-unreadable-config-check.js,mad-sks-app-ui-no-mutation-check.js}",
44
45
  "dist/scripts/{latest-version-guidance-check.js,mad-sks-launch-sql-plane-boundary-check.js,mad-sks-sql-plane-capability-check.js,mad-sks-sql-plane-lifecycle-hook-decision-check.js,mad-sks-sql-plane-result-lifecycle-check.js,managed-config-merge-check.js,mcp-plugin-inventory-check.js,model-call-concurrency-check.js,mutation-callsite-analysis.js,mutation-callsite-coverage-check.js,naruto-ssot-gate-aliases-check.js,naruto-ssot-pipeline-default-check.js,naruto-ssot-route-normalization-check.js,naruto-ssot-routing-check.js,naruto-worktree-coding-blackbox.js,native-capability-repair-matrix-check.js,native-image-generation-repair-check.js,official-subagent-workflow-check.js,package-published-contract-check.js,packlist-performance-check.js,pipeline-codex-native-doctor-mad-routing-check.js,pipeline-codex-native-doctor-mad-routing-real-blackbox.js,pipeline-codex-native-image-routing-check.js,pipeline-codex-native-image-routing-real-blackbox.js,pipeline-codex-native-loop-routing-check.js,pipeline-codex-native-loop-routing-real-blackbox.js,pipeline-codex-native-qa-routing-check.js,pipeline-codex-native-qa-routing-real-blackbox.js,pipeline-codex-native-research-routing-check.js,pipeline-codex-native-research-routing-real-blackbox.js,ppt-full-e2e-blackbox-check.js,ppt-real-export-adapter-check.js,ppt-real-imagegen-smoke-check.js,ppt-real-imagegen-wiring-check.js,ppt-reexport-rereview-check.js,prepublish-fast-check.js,publish-preflight.js,prepublish-release-check-or-fast.js,probe-memoization-check.js,product-design-plugin-routing-check.js,prompt-placeholder-guard-check.js,proof-root-cause-policy-check.js,provider-badge-context-check.js,python-codex-sdk-all-pipelines-check.js,qa-loop-app-handoff-capability-check.js,qa-loop-app-handoff-check.js,qa-loop-app-handoff-cli-check.js,qa-loop-app-handoff-confirmation-check.js,qa-loop-app-handoff-gate-lifecycle-check.js,qa-loop-app-handoff-launch-check.js,qa-loop-app-handoff-status-lifecycle-check.js,qa-loop-budget-policy-check.js,qa-loop-effort-escalation-check.js,qa-loop-execution-profile-routing-check.js,qa-loop-image-path-exposure-check.js,qa-loop-image-path-prompt-injection-check.js,release-affected-selector-check.js,release-aggressive-resource-governor-check.js,release-cache-glob-hashing-check.js,release-cache-input-classifier-check.js,release-cache-neutralization-report-check.js,release-cache-version-neutral-fixture-check.js,release-check-stamp.js,release-dynamic-presets-check.js,release-full-parallelism-blackbox.js,release-gate-batch-runner-check.js,release-gate-budget-check.js,release-gate-dag-runner-check.js,release-gate-dag-runner.js,release-latency-slo-check.js,release-metadata-check.js,release-pack-receipt.js,release-parallel-speed-budget-check.js,release-physical-gates-check.js,release-proof-truth-check.js,release-provenance-check.js,release-real-check.js,release-runtime-truth-matrix-check.js,release-speed-summary.js,research-blueprint-densifier-check.js,research-claim-builder-check.js,research-complete-package-fixture-check.js,research-execution-profile-routing-check.js,research-final-reviewer-blackbox.js,responses-retry-policy-centralized-check.js,runtime-proof-summary-check.js,runtime-script-pack-closure-check.js,scheduler-batch-dispatch-check.js,scheduler-parallel-proof-consistency-check.js,scheduler-utilization-integral-check.js,search-visibility-gate-lib.js,secret-preservation-check.js,seo-audit-fixture-check.js,seo-cli-blackbox-check.js,seo-geo-geo-disambiguation-check.js,seo-geo-route-identity-check.js,seo-geo-skill-rich-content-check.js,seo-no-mutation-by-default-check.js,shared-memory-fixture-check.js,side-effect-runtime-report-check.js,skill-name-canonicalizer-check.js,skill-surface-modernization-check.js,skills-manifest-continuity-check.js,sks-cli-gate-lib.js}",
45
46
  "dist/scripts/{real-execution-check-lib.js,gate-lib.js,runtime-domain-gate-lib.js,typed-routing-gate-lib.js,codex-native-gate-lib.js,skill-fixture-check-lib.js,sks-uninstall-regression-check.js,sksd-daemon-check.js,super-search-provider-interface-check.js,triwiki-cache-key-check.js,triwiki-proof-bank-blackbox.js,triwiki-proof-bank-check.js,triwiki-proof-card-check.js,trust-fixture-check.js,type-surface-codex-app-check.js,ultra-router-auto-router-check.js,uninstall-inventory-check.js,install-surface-ssot-check.js,ux-review-extract-wires-real-extractor-check.js,ux-review-imagegen-blackbox-check.js,ux-review-patch-diff-recheck-check.js,ux-review-real-imagegen-smoke-check.js,ux-review-run-wires-imagegen-check.js,wrongness-fixture-check.js}",
46
47
  "dist/scripts/check-publish-tag.js",
@@ -54,8 +55,6 @@
54
55
  "!dist/core/proof/route-finalizer-fixtures.js",
55
56
  "!dist/core/release/npm-stage-tarball-verifier.js",
56
57
  "!dist/core/release/npm-stage-tarball-verifier-support.js",
57
- "!dist/vendor/openai-codex/rust-v0.131.0",
58
- "config/codex-releases/rust-v0.146.0.json",
59
58
  "config/installed-public-surface-closure.v1.json",
60
59
  "config/competitor-scorecard-baseline.json",
61
60
  "config/architecture-budgets.v1.json",
@@ -65,8 +64,6 @@
65
64
  "infra-harness-gates.json",
66
65
  "runtime-required-scripts.json",
67
66
  "schemas",
68
- "!schemas/codex/app-server-*/**",
69
- "schemas/codex/app-server-0.146/codex_app_server_protocol.v2.schemas.json",
70
67
  "crates/sks-core/Cargo.lock",
71
68
  "crates/sks-core/Cargo.toml",
72
69
  "crates/sks-core/src",
@@ -202,7 +199,7 @@
202
199
  "dependencies": {
203
200
  "@modelcontextprotocol/client": "2.0.0",
204
201
  "@modelcontextprotocol/server": "2.0.0",
205
- "@openai/codex-sdk": "0.146.0",
202
+ "@openai/codex-sdk": "0.147.0",
206
203
  "smol-toml": "^1.7.0",
207
204
  "typescript": "^5.9.3"
208
205
  },
@@ -703,6 +703,43 @@
703
703
  ],
704
704
  "output_contract": "sks.gate-result.v2"
705
705
  },
706
+ {
707
+ "id": "release:version-truth",
708
+ "command": "node ./dist/scripts/release-version-truth-check.js",
709
+ "deps": [],
710
+ "resource": [
711
+ "cpu-light",
712
+ "fs-read"
713
+ ],
714
+ "side_effect": "hermetic",
715
+ "timeout_ms": 60000,
716
+ "cache": {
717
+ "enabled": false,
718
+ "inputs": [
719
+ "package.json",
720
+ "package-lock.json",
721
+ "plugins/sks/.codex-plugin/plugin.json",
722
+ "src/core/version.ts",
723
+ "src/core/fsx.ts",
724
+ "src/bin/sks.ts",
725
+ "crates/sks-core/Cargo.toml",
726
+ "crates/sks-core/Cargo.lock",
727
+ "dist/build-manifest.json",
728
+ "CHANGELOG.md",
729
+ "README.md",
730
+ "src/scripts/release-version-truth-check.ts"
731
+ ]
732
+ },
733
+ "isolation": {
734
+ "home": "temp",
735
+ "codex_home": "temp",
736
+ "report_dir": "per-gate"
737
+ },
738
+ "preset": [
739
+ "release"
740
+ ],
741
+ "output_contract": "sks.gate-result.v2"
742
+ },
706
743
  {
707
744
  "id": "install-surface:ssot",
708
745
  "command": "node ./dist/scripts/install-surface-ssot-check.js",
@@ -714,7 +751,7 @@
714
751
  "side_effect": "hermetic",
715
752
  "timeout_ms": 60000,
716
753
  "cache": {
717
- "enabled": true,
754
+ "enabled": false,
718
755
  "inputs": [
719
756
  "package.json",
720
757
  "plugins/sks/.codex-plugin/plugin.json",
@@ -727,7 +764,7 @@
727
764
  "report_dir": "per-gate"
728
765
  },
729
766
  "preset": [
730
- "confidence"
767
+ "release"
731
768
  ],
732
769
  "output_contract": "sks.gate-result.v2"
733
770
  },
@@ -1800,9 +1837,7 @@
1800
1837
  "src/core/codex-compat/**",
1801
1838
  "src/core/codex-runtime/**",
1802
1839
  "src/core/codex-app-server/**",
1803
- "config/codex-releases/**",
1804
- "schemas/codex-*.json",
1805
- "schemas/codex/**"
1840
+ "schemas/codex-*.json"
1806
1841
  ]
1807
1842
  },
1808
1843
  "isolation": {
@@ -3768,8 +3803,8 @@
3768
3803
  "output_contract": "sks.gate-result.v2"
3769
3804
  },
3770
3805
  {
3771
- "id": "codex:current:manifest",
3772
- "command": "node ./dist/scripts/codex-current-manifest-check.js",
3806
+ "id": "codex:current:dependency-graph",
3807
+ "command": "node ./dist/scripts/codex-current-dependency-check.js",
3773
3808
  "deps": [],
3774
3809
  "resource": [
3775
3810
  "cpu-light",
@@ -3785,9 +3820,7 @@
3785
3820
  "release-gates.v2.json",
3786
3821
  "src/core/codex-control/**",
3787
3822
  "src/core/codex-compat/**",
3788
- "src/core/codex-runtime/**",
3789
- "config/codex-releases/**",
3790
- "schemas/codex/**"
3823
+ "src/core/codex-runtime/**"
3791
3824
  ]
3792
3825
  },
3793
3826
  "isolation": {
@@ -3804,7 +3837,7 @@
3804
3837
  "id": "codex:current:binary-identity",
3805
3838
  "command": "node ./dist/scripts/codex-current-binary-identity-check.js",
3806
3839
  "deps": [
3807
- "codex:current:manifest"
3840
+ "codex:current:dependency-graph"
3808
3841
  ],
3809
3842
  "resource": [
3810
3843
  "cpu-light",
@@ -3837,7 +3870,7 @@
3837
3870
  "id": "codex:current:policy",
3838
3871
  "command": "node ./dist/scripts/codex-current-policy-check.js",
3839
3872
  "deps": [
3840
- "codex:current:manifest"
3873
+ "codex:current:dependency-graph"
3841
3874
  ],
3842
3875
  "resource": [
3843
3876
  "cpu-light",
@@ -3868,7 +3901,7 @@
3868
3901
  "id": "codex:current:app-server-v2",
3869
3902
  "command": "node ./dist/scripts/codex-current-app-server-v2-check.js",
3870
3903
  "deps": [
3871
- "codex:current:manifest"
3904
+ "codex:current:dependency-graph"
3872
3905
  ],
3873
3906
  "resource": [
3874
3907
  "cpu-light",
@@ -3883,7 +3916,6 @@
3883
3916
  "release-gates.v2.json",
3884
3917
  "src/core/codex-control/**",
3885
3918
  "src/core/codex-compat/**",
3886
- "schemas/codex/app-server-0.146/**",
3887
3919
  "src/scripts/codex-current-app-server-v2-check.ts"
3888
3920
  ]
3889
3921
  },
@@ -3901,7 +3933,7 @@
3901
3933
  "id": "codex:current:thread-store",
3902
3934
  "command": "node ./dist/scripts/codex-current-thread-store-check.js",
3903
3935
  "deps": [
3904
- "codex:current:manifest"
3936
+ "codex:current:dependency-graph"
3905
3937
  ],
3906
3938
  "resource": [
3907
3939
  "cpu-light",
@@ -3932,7 +3964,7 @@
3932
3964
  "id": "codex:current:capability",
3933
3965
  "command": "node ./dist/scripts/codex-current-capability-check.js",
3934
3966
  "deps": [
3935
- "codex:current:manifest",
3967
+ "codex:current:dependency-graph",
3936
3968
  "codex:current:binary-identity",
3937
3969
  "codex:current:app-server-v2"
3938
3970
  ],
@@ -3950,9 +3982,7 @@
3950
3982
  "release-gates.v2.json",
3951
3983
  "src/core/codex-control/**",
3952
3984
  "src/core/codex-compat/**",
3953
- "src/core/codex-runtime/**",
3954
- "config/codex-releases/**",
3955
- "schemas/codex/app-server-0.146/**"
3985
+ "src/core/codex-runtime/**"
3956
3986
  ]
3957
3987
  },
3958
3988
  "isolation": {
@@ -1,45 +0,0 @@
1
- {
2
- "schema": "sks.codex-release-manifest.v1",
3
- "targetTag": "rust-v0.146.0",
4
- "requiredCliVersion": "0.146.0",
5
- "preferredCliVersion": "0.146.0",
6
- "sdkVersion": "0.146.0",
7
- "minimumSupportedVersion": "0.146.0",
8
- "narutoCapabilityFloorVersion": "0.146.0",
9
- "protocolMode": "app-server-v2",
10
- "generatedSchemaSha256": "2be4fd32103409b5b4864daaf429f6b61a5e55eb98ca5f63cd43569556b009c8",
11
- "upstreamCommit": "rust-v0.146.0",
12
- "featurePolicies": {
13
- "multiAgentMode": "delegate",
14
- "multiAgentV2": "delegate",
15
- "agentsMaxConcurrentThreads": "delegate",
16
- "indexedWebSearch": "probe",
17
- "currentTimeRead": "wrap",
18
- "threadListSearchRead": "probe",
19
- "pluginCatalogRefresh": "probe",
20
- "terminalSubagentErrorPropagation": "probe",
21
- "execMcpTransientRecovery": "probe",
22
- "remoteNativeEnvironment": "probe",
23
- "rolloutTokenBudget": "probe",
24
- "mcpStartupToolTimeouts": "wrap",
25
- "gpt56TerraLunaSolRouting": "delegate"
26
- },
27
- "requiredRealProbes": [
28
- "runtime_identity",
29
- "protocol_schema_generation",
30
- "multi_agent_mode_schema",
31
- "indexed_web_search_schema",
32
- "current_time_read_schema",
33
- "thread_list_search_schema",
34
- "terminal_error_schema",
35
- "rollout_budget_schema"
36
- ],
37
- "supportedPlatforms": [
38
- "darwin-arm64",
39
- "darwin-x64",
40
- "linux-arm64",
41
- "linux-x64",
42
- "win32-arm64",
43
- "win32-x64"
44
- ]
45
- }
@@ -1,177 +0,0 @@
1
- import path from 'node:path';
2
- import { packageRoot, readJson, runProcess, writeJsonAtomic } from '../fsx.js';
3
- import { managedProxyEnvForChild } from '../codex/managed-proxy-env.js';
4
- import { agentWorkerEnv, validateAgentWorkerResult } from './agent-worker-pipeline.js';
5
- import { fastModeEnv, resolveFastModePolicy } from './fast-mode-policy.js';
6
- import { buildCodexExecArgs } from '../codex/codex-cli-syntax-builder.js';
7
- import { desktopBridgeLaunchBlockedProcessResult, withDesktopBridgeCliLaunchGuard } from '../codex-control/desktop-bridge-launch-guard.js';
8
- import { prepareCodexAppServerRuntimeEnv } from '../codex-control/codex-app-server-runtime-env.js';
9
- export function buildCodexExecAgentArgs(agent, prompt, opts = {}) {
10
- const resultFile = opts.resultFile || defaultCodexResultFile(agent, opts);
11
- const sandbox = opts.workspaceWrite ? 'workspace-write' : 'read-only';
12
- const noMcp = workerNoMcpDefault(agent, opts, sandbox);
13
- const args = buildCodexExecArgs({
14
- json: true,
15
- outputSchema: opts.schemaFile || path.join(packageRoot(), 'schemas/codex/agent-result.schema.json'),
16
- outputLastMessage: resultFile,
17
- ephemeral: true,
18
- skipGitRepoCheck: opts.skipGitRepoCheck !== false,
19
- profile: opts.profile ? String(opts.profile) : null,
20
- ignoreUserConfig: !opts.profile,
21
- noMcp,
22
- ignoreRules: true,
23
- sandbox,
24
- serviceTier: opts.serviceTier || (opts.fastMode === false ? 'standard' : 'fast'),
25
- prompt
26
- });
27
- return {
28
- resultFile,
29
- args
30
- };
31
- }
32
- function codexArgsIncludeServiceTier(args, serviceTier) {
33
- return args.includes('-c') && args.includes(`service_tier=${serviceTier}`);
34
- }
35
- function defaultCodexResultFile(agent, opts = {}) {
36
- const root = opts.agentRoot || opts.cwd || process.cwd();
37
- const artifactDir = agent.session_artifact_dir || path.join('sessions', agent.id || agent.session_id || 'agent');
38
- return path.join(root, artifactDir, 'agent-result.json');
39
- }
40
- export async function runCodexExecAgent(agent, slice, opts = {}) {
41
- const fastPolicy = resolveFastModePolicy({ fastMode: opts.fastMode ?? agent.fast_mode, serviceTier: opts.serviceTier ?? agent.service_tier });
42
- if (opts.outputSchemaSupported === false) {
43
- return validateAgentWorkerResult({ mission_id: opts.missionId || opts.mission_id || '', agent_id: agent.id, session_id: agent.session_id, persona_id: agent.persona_id || agent.id, task_slice_id: slice?.id || '', status: 'blocked', backend: 'codex-exec', summary: 'Codex exec output schema support was not verified.', artifacts: [], blockers: ['codex_exec_output_schema_unsupported'], unverified: [], writes: [], source_intelligence_refs: agent.source_intelligence_refs || null, goal_mode_ref: agent.goal_mode_ref || null });
44
- }
45
- if (opts.dryRun !== false) {
46
- const command = buildCodexExecAgentArgs(agent, opts.prompt || slice?.description || '', opts);
47
- const proxyEnv = managedProxyEnvForChild({ ...process.env, ...(opts.env || {}) });
48
- const report = await writeCodexProcessReport(opts.agentRoot || opts.cwd || process.cwd(), agent, {
49
- project_hash: opts.projectHash || agent.project_hash || agent.root_hash || null,
50
- command: [opts.codexBin || 'codex', ...command.args],
51
- profile: opts.profile || null,
52
- result_file: command.resultFile,
53
- service_tier: fastPolicy.service_tier,
54
- fast_mode: fastPolicy.fast_mode,
55
- service_tier_passed_to_codex: codexArgsIncludeServiceTier(command.args, fastPolicy.service_tier),
56
- service_tier_cli_override_present: codexArgsIncludeServiceTier(command.args, fastPolicy.service_tier),
57
- no_mcp: command.args.includes('--no-mcp'),
58
- output_schema_used: command.args.includes('--output-schema'),
59
- output_last_message_path: command.resultFile,
60
- agent_worker_env_injected: false,
61
- recursion_guard_env: false,
62
- managed_proxy_env_keys: Object.keys(proxyEnv).sort(),
63
- pid: null,
64
- exit_code: null,
65
- stdout_log: null,
66
- stderr_log: null,
67
- dry_run: true
68
- });
69
- return validateAgentWorkerResult({ mission_id: opts.missionId || opts.mission_id || '', agent_id: agent.id, session_id: agent.session_id, persona_id: agent.persona_id || agent.id, task_slice_id: slice?.id || '', status: 'done', backend: 'codex-exec', summary: 'Codex exec command prepared for ' + agent.id + '.', findings: ['codex exec command prepared'], proposed_changes: [], changed_files: [], lease_compliance: { ok: true, violations: [] }, artifacts: [command.resultFile, report], blockers: [], confidence: 'verified_partial', handoff_notes: 'Dry-run did not launch Codex exec.', unverified: ['codex-exec dry-run command was not launched'], writes: [], source_intelligence_refs: agent.source_intelligence_refs || null, goal_mode_ref: agent.goal_mode_ref || null, verification: { status: 'dry_run', checks: ['codex-exec-args-built'] } });
70
- }
71
- const command = buildCodexExecAgentArgs(agent, opts.prompt || slice?.description || '', opts);
72
- const logRoot = path.join(opts.agentRoot || opts.cwd || process.cwd(), agent.session_artifact_dir || path.join('sessions', agent.id));
73
- const stdoutFile = path.join(logRoot, 'codex-exec.stdout.log');
74
- const stderrFile = path.join(logRoot, 'codex-exec.stderr.log');
75
- const allowedCommandsFile = path.join(opts.agentRoot || opts.cwd || process.cwd(), 'agent-allowed-commands.json');
76
- const workerEnv = agentWorkerEnv(agent, allowedCommandsFile);
77
- const effectiveEnv = { ...process.env, ...(opts.env || {}) };
78
- const runtimeEnv = await prepareCodexAppServerRuntimeEnv({ env: effectiveEnv });
79
- const proxyEnv = managedProxyEnvForChild(runtimeEnv);
80
- const execute = opts.runProcessImpl || runProcess;
81
- const guarded = await withDesktopBridgeCliLaunchGuard({
82
- root: opts.cwd || process.cwd(),
83
- env: runtimeEnv,
84
- cliArgs: command.args.slice(0, -1)
85
- }, (sanitizedEnv) => execute(opts.codexBin || 'codex', command.args, { cwd: opts.cwd || process.cwd(), env: { ...sanitizedEnv, ...proxyEnv, ...fastModeEnv(fastPolicy), ...workerEnv }, timeoutMs: opts.timeoutMs || 30 * 60 * 1000, maxOutputBytes: 256 * 1024, stdoutFile, stderrFile }));
86
- const result = guarded.launched
87
- ? guarded.value
88
- : desktopBridgeLaunchBlockedProcessResult(guarded.desktopBridgeLaunchGuard);
89
- const report = await writeCodexProcessReport(opts.agentRoot || opts.cwd || process.cwd(), agent, {
90
- project_hash: opts.projectHash || agent.project_hash || agent.root_hash || null,
91
- command: [opts.codexBin || 'codex', ...command.args],
92
- profile: opts.profile || null,
93
- result_file: command.resultFile,
94
- service_tier: fastPolicy.service_tier,
95
- fast_mode: fastPolicy.fast_mode,
96
- service_tier_passed_to_codex: codexArgsIncludeServiceTier(command.args, fastPolicy.service_tier),
97
- service_tier_cli_override_present: codexArgsIncludeServiceTier(command.args, fastPolicy.service_tier),
98
- no_mcp: command.args.includes('--no-mcp'),
99
- output_schema_used: command.args.includes('--output-schema'),
100
- output_last_message_path: command.resultFile,
101
- agent_worker_env_injected: Object.keys(workerEnv).length > 0,
102
- recursion_guard_env: Boolean(workerEnv.SKS_AGENT_SESSION_ID),
103
- managed_proxy_env_keys: Object.keys(proxyEnv).sort(),
104
- pid: result.pid || null,
105
- exit_code: result.code,
106
- stdout_log: path.relative(opts.agentRoot || opts.cwd || process.cwd(), stdoutFile),
107
- stderr_log: path.relative(opts.agentRoot || opts.cwd || process.cwd(), stderrFile),
108
- stdout_tail: result.stdout,
109
- stderr_tail: result.stderr,
110
- stdout_bytes: result.stdoutBytes,
111
- stderr_bytes: result.stderrBytes,
112
- truncated: result.truncated,
113
- timed_out: result.timedOut,
114
- desktop_bridge_launch_guard: guarded.desktopBridgeLaunchGuard,
115
- dry_run: false
116
- });
117
- if (result.code === 0) {
118
- const parsed = await readJson(command.resultFile, null).catch(() => null);
119
- if (parsed) {
120
- const validated = validateAgentWorkerResult({
121
- ...parsed,
122
- mission_id: parsed.mission_id || opts.missionId || opts.mission_id || '',
123
- agent_id: parsed.agent_id || agent.id,
124
- session_id: parsed.session_id || agent.session_id,
125
- persona_id: parsed.persona_id || agent.persona_id || agent.id,
126
- task_slice_id: parsed.task_slice_id || slice?.id || '',
127
- backend: 'codex-exec',
128
- patch_envelopes: normalizeCodexRuntimePatchEnvelopes(parsed.patch_envelopes, { childPid: Number.isFinite(Number(result.pid)) ? Number(result.pid) : null, workerPid: process.pid, fastPolicy }),
129
- source_intelligence_refs: parsed.source_intelligence_refs || agent.source_intelligence_refs || null,
130
- goal_mode_ref: parsed.goal_mode_ref || agent.goal_mode_ref || null,
131
- artifacts: [...(Array.isArray(parsed.artifacts) ? parsed.artifacts : []), command.resultFile, report],
132
- verification: { status: parsed.verification?.status || 'passed', checks: [...(Array.isArray(parsed.verification?.checks) ? parsed.verification.checks : []), 'codex-exec-output-last-message', 'agent-result-schema'] }
133
- });
134
- if (!validated.blockers.some((blocker) => blocker.startsWith('schema_invalid:')))
135
- return validated;
136
- return { ...validated, status: 'blocked', blockers: [...validated.blockers, 'codex_exec_result_schema_invalid'] };
137
- }
138
- }
139
- return validateAgentWorkerResult({ mission_id: opts.missionId || opts.mission_id || '', agent_id: agent.id, session_id: agent.session_id, persona_id: agent.persona_id || agent.id, task_slice_id: slice?.id || '', status: result.code === 0 ? 'done' : 'failed', backend: 'codex-exec', summary: result.stdout.slice(-1000) || result.stderr.slice(-1000), artifacts: [command.resultFile, report], blockers: result.code === 0 ? ['codex_exec_output_last_message_missing_or_invalid'] : [...(guarded.launched ? [] : guarded.desktopBridgeLaunchGuard.blockers), 'codex_exec_exit_' + result.code], confidence: 'verified_partial', unverified: result.code === 0 ? ['codex-exec stdout fallback; resultFile JSON missing or invalid'] : [], writes: [], source_intelligence_refs: agent.source_intelligence_refs || null, goal_mode_ref: agent.goal_mode_ref || null, codex_child_report: { desktop_bridge_launch_guard: guarded.desktopBridgeLaunchGuard }, verification: { status: result.code === 0 ? 'partial' : 'failed', checks: ['codex-exec-exit-code', 'codex-exec-process-report', 'codex-exec-output-last-message'] } });
140
- }
141
- function workerNoMcpDefault(agent, opts = {}, sandbox = 'read-only') {
142
- if (opts.noMcp !== undefined)
143
- return opts.noMcp !== false;
144
- if (sandbox === 'read-only')
145
- return true;
146
- const roleText = [
147
- agent?.role,
148
- agent?.persona_id,
149
- agent?.required_role,
150
- agent?.kind,
151
- opts.role,
152
- opts.kind
153
- ].map((value) => String(value || '')).join(' ');
154
- if (/\b(?:verify|verifier|verification|review|reviewer|qa|audit|read[-_ ]?only)\b/i.test(roleText))
155
- return true;
156
- const safeList = Array.isArray(opts.workerSafeMcpServers)
157
- ? opts.workerSafeMcpServers
158
- : String(process.env.SKS_WORKER_SAFE_MCP_SERVERS || '').split(',').map((item) => item.trim()).filter(Boolean);
159
- return !(opts.allowWorkerMcp === true && safeList.length > 0);
160
- }
161
- async function writeCodexProcessReport(root, agent, report) {
162
- const rel = path.join(agent.session_artifact_dir || path.join('sessions', agent.id), 'agent-process-report.json');
163
- await writeJsonAtomic(path.join(root, rel), { schema: 'sks.agent-process-report.v1', backend: 'codex-exec', agent_id: agent.id, session_id: agent.session_id, service_tier: report.service_tier || agent.service_tier || 'fast', fast_mode: report.fast_mode !== false, ...report });
164
- return rel;
165
- }
166
- function normalizeCodexRuntimePatchEnvelopes(envelopes, input) {
167
- if (!Array.isArray(envelopes))
168
- return envelopes;
169
- return envelopes.map((envelope) => ({
170
- ...envelope,
171
- source: 'model_authored',
172
- ...(Number.isFinite(Number(input.childPid)) ? { backend_child_process_id: Number(input.childPid) } : {}),
173
- ...(Number.isFinite(Number(input.workerPid)) ? { worker_process_id: Number(input.workerPid), native_cli_process_id: Number(input.workerPid) } : {}),
174
- fast_mode: input.fastPolicy.fast_mode,
175
- service_tier: input.fastPolicy.service_tier
176
- }));
177
- }
@@ -1,72 +0,0 @@
1
- import path from 'node:path';
2
- import { packageRoot, readJson, readText, sha256 } from '../fsx.js';
3
- export const CODEX_RELEASE_MANIFEST_SCHEMA = 'sks.codex-release-manifest.v1';
4
- export const CURRENT_CODEX_RELEASE_MANIFEST = {
5
- schema: CODEX_RELEASE_MANIFEST_SCHEMA,
6
- targetTag: 'rust-v0.146.0',
7
- requiredCliVersion: '0.146.0',
8
- preferredCliVersion: '0.146.0',
9
- sdkVersion: '0.146.0',
10
- minimumSupportedVersion: '0.146.0',
11
- narutoCapabilityFloorVersion: '0.146.0',
12
- protocolMode: 'app-server-v2',
13
- generatedSchemaSha256: '2be4fd32103409b5b4864daaf429f6b61a5e55eb98ca5f63cd43569556b009c8',
14
- upstreamCommit: 'rust-v0.146.0',
15
- featurePolicies: {
16
- multiAgentMode: 'delegate',
17
- multiAgentV2: 'delegate',
18
- agentsMaxConcurrentThreads: 'delegate',
19
- indexedWebSearch: 'probe',
20
- currentTimeRead: 'wrap',
21
- threadListSearchRead: 'probe',
22
- pluginCatalogRefresh: 'probe',
23
- terminalSubagentErrorPropagation: 'probe',
24
- execMcpTransientRecovery: 'probe',
25
- remoteNativeEnvironment: 'probe',
26
- rolloutTokenBudget: 'probe',
27
- mcpStartupToolTimeouts: 'wrap',
28
- gpt56TerraLunaSolRouting: 'delegate'
29
- },
30
- requiredRealProbes: [
31
- 'runtime_identity',
32
- 'protocol_schema_generation',
33
- 'multi_agent_mode_schema',
34
- 'indexed_web_search_schema',
35
- 'current_time_read_schema',
36
- 'thread_list_search_schema',
37
- 'terminal_error_schema',
38
- 'rollout_budget_schema'
39
- ],
40
- supportedPlatforms: [
41
- 'darwin-arm64',
42
- 'darwin-x64',
43
- 'linux-arm64',
44
- 'linux-x64',
45
- 'win32-arm64',
46
- 'win32-x64'
47
- ]
48
- };
49
- export const NARUTO_REQUIRED_CODEX_VERSION = CURRENT_CODEX_RELEASE_MANIFEST.narutoCapabilityFloorVersion;
50
- export function currentCodexReleaseManifestPath(root = packageRoot()) {
51
- return path.join(root, 'config', 'codex-releases', `${CURRENT_CODEX_RELEASE_MANIFEST.targetTag}.json`);
52
- }
53
- export async function loadCurrentCodexReleaseManifest(root = packageRoot()) {
54
- return await readJson(currentCodexReleaseManifestPath(root));
55
- }
56
- export async function codexReleaseManifestParity(root = packageRoot()) {
57
- const file = await loadCurrentCodexReleaseManifest(root);
58
- const mismatches = [];
59
- for (const key of Object.keys(CURRENT_CODEX_RELEASE_MANIFEST)) {
60
- if (JSON.stringify(file[key]) !== JSON.stringify(CURRENT_CODEX_RELEASE_MANIFEST[key])) {
61
- mismatches.push(String(key));
62
- }
63
- }
64
- const text = await readText(currentCodexReleaseManifestPath(root));
65
- return {
66
- ok: mismatches.length === 0,
67
- mismatches,
68
- manifest: file,
69
- manifest_path: currentCodexReleaseManifestPath(root),
70
- manifest_sha256: sha256(text)
71
- };
72
- }