sneakoscope 1.0.2 → 1.0.4
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 +45 -2
- package/crates/sks-core/Cargo.lock +1 -1
- package/crates/sks-core/Cargo.toml +1 -1
- package/crates/sks-core/src/main.rs +1 -1
- package/dist/bin/sks.js +1 -1
- package/dist/build-manifest.json +64 -587
- package/dist/cli/command-registry.d.ts +4 -0
- package/dist/cli/command-registry.js +2 -0
- package/dist/cli/feature-commands.js +42 -1
- package/dist/commands/codex-lb.js +107 -18
- package/dist/commands/codex.d.ts +2 -0
- package/dist/commands/codex.js +47 -0
- package/dist/commands/git.d.ts +2 -0
- package/dist/commands/git.js +5 -0
- package/dist/commands/wiki.d.ts +1 -1
- package/dist/core/bench.js +1 -1
- package/dist/core/codex-compat/codex-compat-report.d.ts +58 -0
- package/dist/core/codex-compat/codex-compat-report.js +38 -0
- package/dist/core/codex-compat/codex-config-policy.d.ts +18 -0
- package/dist/core/codex-compat/codex-config-policy.js +85 -0
- package/dist/core/codex-compat/codex-hook-output-normalizer.d.ts +2 -0
- package/dist/core/codex-compat/codex-hook-output-normalizer.js +69 -0
- package/dist/core/codex-compat/codex-hook-schema.d.ts +20 -0
- package/dist/core/codex-compat/codex-hook-schema.js +109 -0
- package/dist/core/codex-compat/codex-hook-warning-detector.d.ts +32 -0
- package/dist/core/codex-compat/codex-hook-warning-detector.js +90 -0
- package/dist/core/codex-compat/codex-schema-snapshot.d.ts +20 -0
- package/dist/core/codex-compat/codex-schema-snapshot.js +96 -0
- package/dist/core/codex-compat/codex-version-policy.d.ts +15 -0
- package/dist/core/codex-compat/codex-version-policy.js +44 -0
- package/dist/core/codex-compat/codex-version.d.ts +16 -0
- package/dist/core/codex-compat/codex-version.js +87 -0
- package/dist/core/commands/computer-use-command.js +44 -0
- package/dist/core/commands/git-command.d.ts +2 -0
- package/dist/core/commands/git-command.js +159 -0
- package/dist/core/commands/paths-command.js +16 -2
- package/dist/core/commands/wiki-command.d.ts +1 -1
- package/dist/core/commands/wiki-command.js +47 -2
- package/dist/core/computer-use-status.d.ts +11 -0
- package/dist/core/computer-use-status.js +65 -0
- package/dist/core/evidence/evidence-router.js +7 -7
- package/dist/core/feature-fixtures.js +2 -0
- package/dist/core/feature-registry.js +4 -2
- package/dist/core/fsx.d.ts +1 -1
- package/dist/core/fsx.js +1 -1
- package/dist/core/git-hygiene/collaboration-trust.d.ts +11 -0
- package/dist/core/git-hygiene/collaboration-trust.js +23 -0
- package/dist/core/git-hygiene/git-doctor.d.ts +24 -0
- package/dist/core/git-hygiene/git-doctor.js +148 -0
- package/dist/core/git-hygiene/git-policy.d.ts +78 -0
- package/dist/core/git-hygiene/git-policy.js +273 -0
- package/dist/core/git-hygiene/git-precommit.d.ts +15 -0
- package/dist/core/git-hygiene/git-precommit.js +77 -0
- package/dist/core/git-hygiene/git-status.d.ts +29 -0
- package/dist/core/git-hygiene/git-status.js +128 -0
- package/dist/core/git-hygiene/gitattributes-writer.d.ts +8 -0
- package/dist/core/git-hygiene/gitattributes-writer.js +27 -0
- package/dist/core/git-hygiene/gitignore-writer.d.ts +18 -0
- package/dist/core/git-hygiene/gitignore-writer.js +107 -0
- package/dist/core/git-hygiene/shared-memory-manifest.d.ts +2 -0
- package/dist/core/git-hygiene/shared-memory-manifest.js +2 -0
- package/dist/core/git-hygiene/shared-memory-publish.d.ts +38 -0
- package/dist/core/git-hygiene/shared-memory-publish.js +371 -0
- package/dist/core/git-hygiene/shared-memory-security.d.ts +5 -0
- package/dist/core/git-hygiene/shared-memory-security.js +37 -0
- package/dist/core/git-hygiene/validators.d.ts +11 -0
- package/dist/core/git-hygiene/validators.js +62 -0
- package/dist/core/hooks-runtime.js +16 -0
- package/dist/core/init.d.ts +3 -0
- package/dist/core/init.js +113 -2
- package/dist/core/managed-paths.d.ts +4 -1
- package/dist/core/managed-paths.js +23 -7
- package/dist/core/routes.d.ts +1 -1
- package/dist/core/routes.js +5 -3
- package/dist/core/triwiki-wrongness/wrongness-cli.d.ts +2 -2
- package/dist/core/triwiki-wrongness/wrongness-cli.js +25 -2
- package/dist/core/triwiki-wrongness/wrongness-ledger.js +33 -1
- package/dist/core/trust-kernel/trust-report.js +8 -0
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/permission-request.command.input.schema.json +61 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/permission-request.command.output.schema.json +103 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-compact.command.input.schema.json +52 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-compact.command.output.schema.json +24 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-tool-use.command.input.schema.json +67 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/post-tool-use.command.output.schema.json +84 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-compact.command.input.schema.json +52 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-compact.command.output.schema.json +24 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-tool-use.command.input.schema.json +65 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/pre-tool-use.command.output.schema.json +105 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/session-start.command.input.schema.json +59 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/session-start.command.output.schema.json +63 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/snapshot-metadata.json +29 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/stop.command.input.schema.json +63 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/stop.command.output.schema.json +45 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/user-prompt-submit.command.input.schema.json +59 -0
- package/dist/vendor/openai-codex/rust-v0.131.0/hooks/user-prompt-submit.command.output.schema.json +81 -0
- package/package.json +11 -2
- package/dist/bin/sks.d.ts.map +0 -1
- package/dist/bin/sks.js.map +0 -1
- package/dist/cli/args.d.ts.map +0 -1
- package/dist/cli/args.js.map +0 -1
- package/dist/cli/codex-app-command.d.ts.map +0 -1
- package/dist/cli/codex-app-command.js.map +0 -1
- package/dist/cli/command-registry.d.ts.map +0 -1
- package/dist/cli/command-registry.js.map +0 -1
- package/dist/cli/context7-command.d.ts.map +0 -1
- package/dist/cli/context7-command.js.map +0 -1
- package/dist/cli/feature-commands.d.ts.map +0 -1
- package/dist/cli/feature-commands.js.map +0 -1
- package/dist/cli/help-fast.d.ts.map +0 -1
- package/dist/cli/help-fast.js.map +0 -1
- package/dist/cli/install-helpers.d.ts.map +0 -1
- package/dist/cli/install-helpers.js.map +0 -1
- package/dist/cli/main.d.ts.map +0 -1
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/openclaw-command.d.ts.map +0 -1
- package/dist/cli/openclaw-command.js.map +0 -1
- package/dist/cli/output.d.ts.map +0 -1
- package/dist/cli/output.js.map +0 -1
- package/dist/cli/recallpulse-command.d.ts.map +0 -1
- package/dist/cli/recallpulse-command.js.map +0 -1
- package/dist/cli/router.d.ts.map +0 -1
- package/dist/cli/router.js.map +0 -1
- package/dist/commands/aliases.d.ts.map +0 -1
- package/dist/commands/aliases.js.map +0 -1
- package/dist/commands/all-features.d.ts.map +0 -1
- package/dist/commands/all-features.js.map +0 -1
- package/dist/commands/auto-review.d.ts.map +0 -1
- package/dist/commands/auto-review.js.map +0 -1
- package/dist/commands/autoresearch.d.ts.map +0 -1
- package/dist/commands/autoresearch.js.map +0 -1
- package/dist/commands/bench.d.ts.map +0 -1
- package/dist/commands/bench.js.map +0 -1
- package/dist/commands/bootstrap.d.ts.map +0 -1
- package/dist/commands/bootstrap.js.map +0 -1
- package/dist/commands/code-structure.d.ts.map +0 -1
- package/dist/commands/code-structure.js.map +0 -1
- package/dist/commands/codex-app.d.ts.map +0 -1
- package/dist/commands/codex-app.js.map +0 -1
- package/dist/commands/codex-lb.d.ts.map +0 -1
- package/dist/commands/codex-lb.js.map +0 -1
- package/dist/commands/commands.d.ts.map +0 -1
- package/dist/commands/commands.js.map +0 -1
- package/dist/commands/commit-and-push.d.ts.map +0 -1
- package/dist/commands/commit-and-push.js.map +0 -1
- package/dist/commands/commit.d.ts.map +0 -1
- package/dist/commands/commit.js.map +0 -1
- package/dist/commands/computer-use.d.ts.map +0 -1
- package/dist/commands/computer-use.js.map +0 -1
- package/dist/commands/conflicts.d.ts.map +0 -1
- package/dist/commands/conflicts.js.map +0 -1
- package/dist/commands/context7.d.ts.map +0 -1
- package/dist/commands/context7.js.map +0 -1
- package/dist/commands/db.d.ts.map +0 -1
- package/dist/commands/db.js.map +0 -1
- package/dist/commands/deps.d.ts.map +0 -1
- package/dist/commands/deps.js.map +0 -1
- package/dist/commands/dfix.d.ts.map +0 -1
- package/dist/commands/dfix.js.map +0 -1
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/dollar-commands.d.ts.map +0 -1
- package/dist/commands/dollar-commands.js.map +0 -1
- package/dist/commands/eval.d.ts.map +0 -1
- package/dist/commands/eval.js.map +0 -1
- package/dist/commands/features.d.ts.map +0 -1
- package/dist/commands/features.js.map +0 -1
- package/dist/commands/fix-path.d.ts.map +0 -1
- package/dist/commands/fix-path.js.map +0 -1
- package/dist/commands/gc.d.ts.map +0 -1
- package/dist/commands/gc.js.map +0 -1
- package/dist/commands/goal.d.ts.map +0 -1
- package/dist/commands/goal.js.map +0 -1
- package/dist/commands/guard.d.ts.map +0 -1
- package/dist/commands/guard.js.map +0 -1
- package/dist/commands/gx.d.ts.map +0 -1
- package/dist/commands/gx.js.map +0 -1
- package/dist/commands/harness.d.ts.map +0 -1
- package/dist/commands/harness.js.map +0 -1
- package/dist/commands/help.d.ts.map +0 -1
- package/dist/commands/help.js.map +0 -1
- package/dist/commands/hook.d.ts.map +0 -1
- package/dist/commands/hook.js.map +0 -1
- package/dist/commands/hooks.d.ts.map +0 -1
- package/dist/commands/hooks.js.map +0 -1
- package/dist/commands/hproof.d.ts.map +0 -1
- package/dist/commands/hproof.js.map +0 -1
- package/dist/commands/image-ux-review.d.ts.map +0 -1
- package/dist/commands/image-ux-review.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/mad-sks.d.ts.map +0 -1
- package/dist/commands/mad-sks.js.map +0 -1
- package/dist/commands/memory.d.ts.map +0 -1
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/openclaw.d.ts.map +0 -1
- package/dist/commands/openclaw.js.map +0 -1
- package/dist/commands/paths.d.ts.map +0 -1
- package/dist/commands/paths.js.map +0 -1
- package/dist/commands/perf.d.ts.map +0 -1
- package/dist/commands/perf.js.map +0 -1
- package/dist/commands/pipeline.d.ts.map +0 -1
- package/dist/commands/pipeline.js.map +0 -1
- package/dist/commands/postinstall.d.ts.map +0 -1
- package/dist/commands/postinstall.js.map +0 -1
- package/dist/commands/ppt.d.ts.map +0 -1
- package/dist/commands/ppt.js.map +0 -1
- package/dist/commands/profile.d.ts.map +0 -1
- package/dist/commands/profile.js.map +0 -1
- package/dist/commands/proof-field.d.ts.map +0 -1
- package/dist/commands/proof-field.js.map +0 -1
- package/dist/commands/proof.d.ts.map +0 -1
- package/dist/commands/proof.js.map +0 -1
- package/dist/commands/qa-loop.d.ts.map +0 -1
- package/dist/commands/qa-loop.js.map +0 -1
- package/dist/commands/quickstart.d.ts.map +0 -1
- package/dist/commands/quickstart.js.map +0 -1
- package/dist/commands/reasoning.d.ts.map +0 -1
- package/dist/commands/reasoning.js.map +0 -1
- package/dist/commands/recallpulse.d.ts.map +0 -1
- package/dist/commands/recallpulse.js.map +0 -1
- package/dist/commands/research.d.ts.map +0 -1
- package/dist/commands/research.js.map +0 -1
- package/dist/commands/rollback.d.ts.map +0 -1
- package/dist/commands/rollback.js.map +0 -1
- package/dist/commands/root.d.ts.map +0 -1
- package/dist/commands/root.js.map +0 -1
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/rust.d.ts.map +0 -1
- package/dist/commands/rust.js.map +0 -1
- package/dist/commands/scouts.d.ts.map +0 -1
- package/dist/commands/scouts.js.map +0 -1
- package/dist/commands/selftest.d.ts.map +0 -1
- package/dist/commands/selftest.js.map +0 -1
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/skill-dream.d.ts.map +0 -1
- package/dist/commands/skill-dream.js.map +0 -1
- package/dist/commands/stats.d.ts.map +0 -1
- package/dist/commands/stats.js.map +0 -1
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/team.d.ts.map +0 -1
- package/dist/commands/team.js.map +0 -1
- package/dist/commands/tmux.d.ts.map +0 -1
- package/dist/commands/tmux.js.map +0 -1
- package/dist/commands/trust.d.ts.map +0 -1
- package/dist/commands/trust.js.map +0 -1
- package/dist/commands/update-check.d.ts.map +0 -1
- package/dist/commands/update-check.js.map +0 -1
- package/dist/commands/usage.d.ts.map +0 -1
- package/dist/commands/usage.js.map +0 -1
- package/dist/commands/validate-artifacts.d.ts.map +0 -1
- package/dist/commands/validate-artifacts.js.map +0 -1
- package/dist/commands/version.d.ts.map +0 -1
- package/dist/commands/version.js.map +0 -1
- package/dist/commands/versioning.d.ts.map +0 -1
- package/dist/commands/versioning.js.map +0 -1
- package/dist/commands/wiki.d.ts.map +0 -1
- package/dist/commands/wiki.js.map +0 -1
- package/dist/core/artifact-schemas.d.ts.map +0 -1
- package/dist/core/artifact-schemas.js.map +0 -1
- package/dist/core/auto-review.d.ts.map +0 -1
- package/dist/core/auto-review.js.map +0 -1
- package/dist/core/bench.d.ts.map +0 -1
- package/dist/core/bench.js.map +0 -1
- package/dist/core/code-structure.d.ts.map +0 -1
- package/dist/core/code-structure.js.map +0 -1
- package/dist/core/codex-adapter.d.ts.map +0 -1
- package/dist/core/codex-adapter.js.map +0 -1
- package/dist/core/codex-app.d.ts.map +0 -1
- package/dist/core/codex-app.js.map +0 -1
- package/dist/core/codex-lb-circuit.d.ts.map +0 -1
- package/dist/core/codex-lb-circuit.js.map +0 -1
- package/dist/core/codex-model-guard.d.ts.map +0 -1
- package/dist/core/codex-model-guard.js.map +0 -1
- package/dist/core/commands/autoresearch-command.d.ts.map +0 -1
- package/dist/core/commands/autoresearch-command.js.map +0 -1
- package/dist/core/commands/basic-cli.d.ts.map +0 -1
- package/dist/core/commands/basic-cli.js.map +0 -1
- package/dist/core/commands/bench-command.d.ts.map +0 -1
- package/dist/core/commands/bench-command.js.map +0 -1
- package/dist/core/commands/code-structure-command.d.ts.map +0 -1
- package/dist/core/commands/code-structure-command.js.map +0 -1
- package/dist/core/commands/command-utils.d.ts.map +0 -1
- package/dist/core/commands/command-utils.js.map +0 -1
- package/dist/core/commands/computer-use-command.d.ts.map +0 -1
- package/dist/core/commands/computer-use-command.js.map +0 -1
- package/dist/core/commands/db-command.d.ts.map +0 -1
- package/dist/core/commands/db-command.js.map +0 -1
- package/dist/core/commands/eval-command.d.ts.map +0 -1
- package/dist/core/commands/eval-command.js.map +0 -1
- package/dist/core/commands/gc-command.d.ts.map +0 -1
- package/dist/core/commands/gc-command.js.map +0 -1
- package/dist/core/commands/goal-command.d.ts.map +0 -1
- package/dist/core/commands/goal-command.js.map +0 -1
- package/dist/core/commands/gx-command.d.ts.map +0 -1
- package/dist/core/commands/gx-command.js.map +0 -1
- package/dist/core/commands/harness-command.d.ts.map +0 -1
- package/dist/core/commands/harness-command.js.map +0 -1
- package/dist/core/commands/hproof-command.d.ts.map +0 -1
- package/dist/core/commands/hproof-command.js.map +0 -1
- package/dist/core/commands/image-ux-review-command.d.ts.map +0 -1
- package/dist/core/commands/image-ux-review-command.js.map +0 -1
- package/dist/core/commands/mad-sks-command.d.ts.map +0 -1
- package/dist/core/commands/mad-sks-command.js.map +0 -1
- package/dist/core/commands/paths-command.d.ts.map +0 -1
- package/dist/core/commands/paths-command.js.map +0 -1
- package/dist/core/commands/perf-command.d.ts.map +0 -1
- package/dist/core/commands/perf-command.js.map +0 -1
- package/dist/core/commands/pipeline-command.d.ts.map +0 -1
- package/dist/core/commands/pipeline-command.js.map +0 -1
- package/dist/core/commands/ppt-command.d.ts.map +0 -1
- package/dist/core/commands/ppt-command.js.map +0 -1
- package/dist/core/commands/profile-command.d.ts.map +0 -1
- package/dist/core/commands/profile-command.js.map +0 -1
- package/dist/core/commands/proof-field-command.d.ts.map +0 -1
- package/dist/core/commands/proof-field-command.js.map +0 -1
- package/dist/core/commands/qa-loop-command.d.ts.map +0 -1
- package/dist/core/commands/qa-loop-command.js.map +0 -1
- package/dist/core/commands/recallpulse-command.d.ts.map +0 -1
- package/dist/core/commands/recallpulse-command.js.map +0 -1
- package/dist/core/commands/research-command.d.ts.map +0 -1
- package/dist/core/commands/research-command.js.map +0 -1
- package/dist/core/commands/rollback-command.d.ts.map +0 -1
- package/dist/core/commands/rollback-command.js.map +0 -1
- package/dist/core/commands/run-command.d.ts.map +0 -1
- package/dist/core/commands/run-command.js.map +0 -1
- package/dist/core/commands/rust-command.d.ts.map +0 -1
- package/dist/core/commands/rust-command.js.map +0 -1
- package/dist/core/commands/scouts-command.d.ts.map +0 -1
- package/dist/core/commands/scouts-command.js.map +0 -1
- package/dist/core/commands/skill-dream-command.d.ts.map +0 -1
- package/dist/core/commands/skill-dream-command.js.map +0 -1
- package/dist/core/commands/status-command.d.ts.map +0 -1
- package/dist/core/commands/status-command.js.map +0 -1
- package/dist/core/commands/team-command.d.ts.map +0 -1
- package/dist/core/commands/team-command.js.map +0 -1
- package/dist/core/commands/trust-command.d.ts.map +0 -1
- package/dist/core/commands/trust-command.js.map +0 -1
- package/dist/core/commands/validate-artifacts-command.d.ts.map +0 -1
- package/dist/core/commands/validate-artifacts-command.js.map +0 -1
- package/dist/core/commands/wiki-command.d.ts.map +0 -1
- package/dist/core/commands/wiki-command.js.map +0 -1
- package/dist/core/commands/wrongness-command.d.ts.map +0 -1
- package/dist/core/commands/wrongness-command.js.map +0 -1
- package/dist/core/context7-client.d.ts.map +0 -1
- package/dist/core/context7-client.js.map +0 -1
- package/dist/core/db-safety.d.ts.map +0 -1
- package/dist/core/db-safety.js.map +0 -1
- package/dist/core/decision-contract.d.ts.map +0 -1
- package/dist/core/decision-contract.js.map +0 -1
- package/dist/core/decision-lattice.d.ts.map +0 -1
- package/dist/core/decision-lattice.js.map +0 -1
- package/dist/core/dogfood-loop.d.ts.map +0 -1
- package/dist/core/dogfood-loop.js.map +0 -1
- package/dist/core/effort-orchestrator.d.ts.map +0 -1
- package/dist/core/effort-orchestrator.js.map +0 -1
- package/dist/core/evaluation.d.ts.map +0 -1
- package/dist/core/evaluation.js.map +0 -1
- package/dist/core/evidence/evidence-dedupe.d.ts.map +0 -1
- package/dist/core/evidence/evidence-dedupe.js.map +0 -1
- package/dist/core/evidence/evidence-freshness.d.ts.map +0 -1
- package/dist/core/evidence/evidence-freshness.js.map +0 -1
- package/dist/core/evidence/evidence-proof-linker.d.ts.map +0 -1
- package/dist/core/evidence/evidence-proof-linker.js.map +0 -1
- package/dist/core/evidence/evidence-redaction.d.ts.map +0 -1
- package/dist/core/evidence/evidence-redaction.js.map +0 -1
- package/dist/core/evidence/evidence-router.d.ts.map +0 -1
- package/dist/core/evidence/evidence-router.js.map +0 -1
- package/dist/core/evidence/evidence-schema.d.ts.map +0 -1
- package/dist/core/evidence/evidence-schema.js.map +0 -1
- package/dist/core/evidence/evidence-store.d.ts.map +0 -1
- package/dist/core/evidence/evidence-store.js.map +0 -1
- package/dist/core/feature-fixture-runner.d.ts.map +0 -1
- package/dist/core/feature-fixture-runner.js.map +0 -1
- package/dist/core/feature-fixtures.d.ts.map +0 -1
- package/dist/core/feature-fixtures.js.map +0 -1
- package/dist/core/feature-registry.d.ts.map +0 -1
- package/dist/core/feature-registry.js.map +0 -1
- package/dist/core/features/feature-fixtures.d.ts.map +0 -1
- package/dist/core/features/feature-fixtures.js.map +0 -1
- package/dist/core/features/feature-registry.d.ts.map +0 -1
- package/dist/core/features/feature-registry.js.map +0 -1
- package/dist/core/from-chat-img-forensics.d.ts.map +0 -1
- package/dist/core/from-chat-img-forensics.js.map +0 -1
- package/dist/core/fsx.d.ts.map +0 -1
- package/dist/core/fsx.js.map +0 -1
- package/dist/core/git-simple.d.ts.map +0 -1
- package/dist/core/git-simple.js.map +0 -1
- package/dist/core/goal-workflow.d.ts.map +0 -1
- package/dist/core/goal-workflow.js.map +0 -1
- package/dist/core/gx-renderer.d.ts.map +0 -1
- package/dist/core/gx-renderer.js.map +0 -1
- package/dist/core/harness-conflicts.d.ts.map +0 -1
- package/dist/core/harness-conflicts.js.map +0 -1
- package/dist/core/harness-guard.d.ts.map +0 -1
- package/dist/core/harness-guard.js.map +0 -1
- package/dist/core/hooks-runtime.d.ts.map +0 -1
- package/dist/core/hooks-runtime.js.map +0 -1
- package/dist/core/hproof.d.ts.map +0 -1
- package/dist/core/hproof.js.map +0 -1
- package/dist/core/image-ux-review.d.ts.map +0 -1
- package/dist/core/image-ux-review.js.map +0 -1
- package/dist/core/init.d.ts.map +0 -1
- package/dist/core/init.js.map +0 -1
- package/dist/core/language-preference.d.ts.map +0 -1
- package/dist/core/language-preference.js.map +0 -1
- package/dist/core/managed-paths.d.ts.map +0 -1
- package/dist/core/managed-paths.js.map +0 -1
- package/dist/core/memory-governor.d.ts.map +0 -1
- package/dist/core/memory-governor.js.map +0 -1
- package/dist/core/mission.d.ts.map +0 -1
- package/dist/core/mission.js.map +0 -1
- package/dist/core/mistake-memory.d.ts.map +0 -1
- package/dist/core/mistake-memory.js.map +0 -1
- package/dist/core/mistake-recall.d.ts.map +0 -1
- package/dist/core/mistake-recall.js.map +0 -1
- package/dist/core/no-question-guard.d.ts.map +0 -1
- package/dist/core/no-question-guard.js.map +0 -1
- package/dist/core/openclaw.d.ts.map +0 -1
- package/dist/core/openclaw.js.map +0 -1
- package/dist/core/perf-bench.d.ts.map +0 -1
- package/dist/core/perf-bench.js.map +0 -1
- package/dist/core/permission-gates.d.ts.map +0 -1
- package/dist/core/permission-gates.js.map +0 -1
- package/dist/core/pipeline/active-context.d.ts.map +0 -1
- package/dist/core/pipeline/active-context.js.map +0 -1
- package/dist/core/pipeline/pipeline-plan-writer.d.ts.map +0 -1
- package/dist/core/pipeline/pipeline-plan-writer.js.map +0 -1
- package/dist/core/pipeline/plan-schema.d.ts.map +0 -1
- package/dist/core/pipeline/plan-schema.js.map +0 -1
- package/dist/core/pipeline/prompt-context-answer.d.ts.map +0 -1
- package/dist/core/pipeline/prompt-context-answer.js.map +0 -1
- package/dist/core/pipeline/prompt-context-computer-use.d.ts.map +0 -1
- package/dist/core/pipeline/prompt-context-computer-use.js.map +0 -1
- package/dist/core/pipeline/prompt-context-dfix.d.ts.map +0 -1
- package/dist/core/pipeline/prompt-context-dfix.js.map +0 -1
- package/dist/core/pipeline/prompt-context.d.ts.map +0 -1
- package/dist/core/pipeline/prompt-context.js.map +0 -1
- package/dist/core/pipeline/route-prep-db.d.ts.map +0 -1
- package/dist/core/pipeline/route-prep-db.js.map +0 -1
- package/dist/core/pipeline/route-prep-gx.d.ts.map +0 -1
- package/dist/core/pipeline/route-prep-gx.js.map +0 -1
- package/dist/core/pipeline/route-prep-image-ux.d.ts.map +0 -1
- package/dist/core/pipeline/route-prep-image-ux.js.map +0 -1
- package/dist/core/pipeline/route-prep-ppt.d.ts.map +0 -1
- package/dist/core/pipeline/route-prep-ppt.js.map +0 -1
- package/dist/core/pipeline/route-prep-qa.d.ts.map +0 -1
- package/dist/core/pipeline/route-prep-qa.js.map +0 -1
- package/dist/core/pipeline/route-prep-research.d.ts.map +0 -1
- package/dist/core/pipeline/route-prep-research.js.map +0 -1
- package/dist/core/pipeline/route-prep-team.d.ts.map +0 -1
- package/dist/core/pipeline/route-prep-team.js.map +0 -1
- package/dist/core/pipeline/route-prep.d.ts.map +0 -1
- package/dist/core/pipeline/route-prep.js.map +0 -1
- package/dist/core/pipeline/scout-stage-policy.d.ts.map +0 -1
- package/dist/core/pipeline/scout-stage-policy.js.map +0 -1
- package/dist/core/pipeline/stage-policy.d.ts.map +0 -1
- package/dist/core/pipeline/stage-policy.js.map +0 -1
- package/dist/core/pipeline/stop-gate-context7.d.ts.map +0 -1
- package/dist/core/pipeline/stop-gate-context7.js.map +0 -1
- package/dist/core/pipeline/stop-gate-proof.d.ts.map +0 -1
- package/dist/core/pipeline/stop-gate-proof.js.map +0 -1
- package/dist/core/pipeline/stop-gate-subagents.d.ts.map +0 -1
- package/dist/core/pipeline/stop-gate-subagents.js.map +0 -1
- package/dist/core/pipeline/stop-gate.d.ts.map +0 -1
- package/dist/core/pipeline/stop-gate.js.map +0 -1
- package/dist/core/pipeline/validation.d.ts.map +0 -1
- package/dist/core/pipeline/validation.js.map +0 -1
- package/dist/core/pipeline-internals/runtime-core.d.ts.map +0 -1
- package/dist/core/pipeline-internals/runtime-core.js.map +0 -1
- package/dist/core/pipeline-internals/runtime-gates.d.ts.map +0 -1
- package/dist/core/pipeline-internals/runtime-gates.js.map +0 -1
- package/dist/core/pipeline-runtime.d.ts.map +0 -1
- package/dist/core/pipeline-runtime.js.map +0 -1
- package/dist/core/pipeline.d.ts.map +0 -1
- package/dist/core/pipeline.js.map +0 -1
- package/dist/core/ppt.d.ts.map +0 -1
- package/dist/core/ppt.js.map +0 -1
- package/dist/core/prompt-context-builder.d.ts.map +0 -1
- package/dist/core/prompt-context-builder.js.map +0 -1
- package/dist/core/proof/auto-finalize.d.ts.map +0 -1
- package/dist/core/proof/auto-finalize.js.map +0 -1
- package/dist/core/proof/claim-ledger.d.ts.map +0 -1
- package/dist/core/proof/claim-ledger.js.map +0 -1
- package/dist/core/proof/command-ledger.d.ts.map +0 -1
- package/dist/core/proof/command-ledger.js.map +0 -1
- package/dist/core/proof/evidence-collector.d.ts.map +0 -1
- package/dist/core/proof/evidence-collector.js.map +0 -1
- package/dist/core/proof/file-change-ledger.d.ts.map +0 -1
- package/dist/core/proof/file-change-ledger.js.map +0 -1
- package/dist/core/proof/proof-reader.d.ts.map +0 -1
- package/dist/core/proof/proof-reader.js.map +0 -1
- package/dist/core/proof/proof-redaction.test-helper.d.ts.map +0 -1
- package/dist/core/proof/proof-redaction.test-helper.js.map +0 -1
- package/dist/core/proof/proof-schema.d.ts.map +0 -1
- package/dist/core/proof/proof-schema.js.map +0 -1
- package/dist/core/proof/proof-writer.d.ts.map +0 -1
- package/dist/core/proof/proof-writer.js.map +0 -1
- package/dist/core/proof/route-adapter.d.ts.map +0 -1
- package/dist/core/proof/route-adapter.js.map +0 -1
- package/dist/core/proof/route-finalizer-fixtures.d.ts.map +0 -1
- package/dist/core/proof/route-finalizer-fixtures.js.map +0 -1
- package/dist/core/proof/route-finalizer-policy.d.ts.map +0 -1
- package/dist/core/proof/route-finalizer-policy.js.map +0 -1
- package/dist/core/proof/route-finalizer.d.ts.map +0 -1
- package/dist/core/proof/route-finalizer.js.map +0 -1
- package/dist/core/proof/route-proof-gate.d.ts.map +0 -1
- package/dist/core/proof/route-proof-gate.js.map +0 -1
- package/dist/core/proof/route-proof-policy.d.ts.map +0 -1
- package/dist/core/proof/route-proof-policy.js.map +0 -1
- package/dist/core/proof/selftest-proof-fixtures.d.ts.map +0 -1
- package/dist/core/proof/selftest-proof-fixtures.js.map +0 -1
- package/dist/core/proof/validation.d.ts.map +0 -1
- package/dist/core/proof/validation.js.map +0 -1
- package/dist/core/proof-field.d.ts.map +0 -1
- package/dist/core/proof-field.js.map +0 -1
- package/dist/core/qa-loop.d.ts.map +0 -1
- package/dist/core/qa-loop.js.map +0 -1
- package/dist/core/questions.d.ts.map +0 -1
- package/dist/core/questions.js.map +0 -1
- package/dist/core/recallpulse.d.ts.map +0 -1
- package/dist/core/recallpulse.js.map +0 -1
- package/dist/core/research.d.ts.map +0 -1
- package/dist/core/research.js.map +0 -1
- package/dist/core/retention.d.ts.map +0 -1
- package/dist/core/retention.js.map +0 -1
- package/dist/core/routes.d.ts.map +0 -1
- package/dist/core/routes.js.map +0 -1
- package/dist/core/rust-accelerator.d.ts.map +0 -1
- package/dist/core/rust-accelerator.js.map +0 -1
- package/dist/core/scouts/engines/codex-app-subagent-engine.d.ts.map +0 -1
- package/dist/core/scouts/engines/codex-app-subagent-engine.js.map +0 -1
- package/dist/core/scouts/engines/codex-exec-parallel-engine.d.ts.map +0 -1
- package/dist/core/scouts/engines/codex-exec-parallel-engine.js.map +0 -1
- package/dist/core/scouts/engines/local-static-engine.d.ts.map +0 -1
- package/dist/core/scouts/engines/local-static-engine.js.map +0 -1
- package/dist/core/scouts/engines/scout-engine-base.d.ts.map +0 -1
- package/dist/core/scouts/engines/scout-engine-base.js.map +0 -1
- package/dist/core/scouts/engines/scout-engine-detect.d.ts.map +0 -1
- package/dist/core/scouts/engines/scout-engine-detect.js.map +0 -1
- package/dist/core/scouts/engines/scout-engine-policy.d.ts.map +0 -1
- package/dist/core/scouts/engines/scout-engine-policy.js.map +0 -1
- package/dist/core/scouts/engines/sequential-fallback-engine.d.ts.map +0 -1
- package/dist/core/scouts/engines/sequential-fallback-engine.js.map +0 -1
- package/dist/core/scouts/engines/tmux-lane-cleanup.d.ts.map +0 -1
- package/dist/core/scouts/engines/tmux-lane-cleanup.js.map +0 -1
- package/dist/core/scouts/engines/tmux-lane-engine.d.ts.map +0 -1
- package/dist/core/scouts/engines/tmux-lane-engine.js.map +0 -1
- package/dist/core/scouts/engines/tmux-lane-watcher.d.ts.map +0 -1
- package/dist/core/scouts/engines/tmux-lane-watcher.js.map +0 -1
- package/dist/core/scouts/scout-artifacts.d.ts.map +0 -1
- package/dist/core/scouts/scout-artifacts.js.map +0 -1
- package/dist/core/scouts/scout-consensus.d.ts.map +0 -1
- package/dist/core/scouts/scout-consensus.js.map +0 -1
- package/dist/core/scouts/scout-gate.d.ts.map +0 -1
- package/dist/core/scouts/scout-gate.js.map +0 -1
- package/dist/core/scouts/scout-output-fixtures.d.ts.map +0 -1
- package/dist/core/scouts/scout-output-fixtures.js.map +0 -1
- package/dist/core/scouts/scout-output-normalizer.d.ts.map +0 -1
- package/dist/core/scouts/scout-output-normalizer.js.map +0 -1
- package/dist/core/scouts/scout-output-parser.d.ts.map +0 -1
- package/dist/core/scouts/scout-output-parser.js.map +0 -1
- package/dist/core/scouts/scout-output-validator.d.ts.map +0 -1
- package/dist/core/scouts/scout-output-validator.js.map +0 -1
- package/dist/core/scouts/scout-plan.d.ts.map +0 -1
- package/dist/core/scouts/scout-plan.js.map +0 -1
- package/dist/core/scouts/scout-proof-evidence.d.ts.map +0 -1
- package/dist/core/scouts/scout-proof-evidence.js.map +0 -1
- package/dist/core/scouts/scout-readonly-guard.d.ts.map +0 -1
- package/dist/core/scouts/scout-readonly-guard.js.map +0 -1
- package/dist/core/scouts/scout-runner.d.ts.map +0 -1
- package/dist/core/scouts/scout-runner.js.map +0 -1
- package/dist/core/scouts/scout-schema.d.ts.map +0 -1
- package/dist/core/scouts/scout-schema.js.map +0 -1
- package/dist/core/scouts/scout-triwiki.d.ts.map +0 -1
- package/dist/core/scouts/scout-triwiki.js.map +0 -1
- package/dist/core/secret-redaction.d.ts.map +0 -1
- package/dist/core/secret-redaction.js.map +0 -1
- package/dist/core/skill-forge.d.ts.map +0 -1
- package/dist/core/skill-forge.js.map +0 -1
- package/dist/core/team-dag.d.ts.map +0 -1
- package/dist/core/team-dag.js.map +0 -1
- package/dist/core/team-dashboard-renderer.d.ts.map +0 -1
- package/dist/core/team-dashboard-renderer.js.map +0 -1
- package/dist/core/team-live.d.ts.map +0 -1
- package/dist/core/team-live.js.map +0 -1
- package/dist/core/team-review-policy.d.ts.map +0 -1
- package/dist/core/team-review-policy.js.map +0 -1
- package/dist/core/tmux-ui.d.ts.map +0 -1
- package/dist/core/tmux-ui.js.map +0 -1
- package/dist/core/triwiki-attention.d.ts.map +0 -1
- package/dist/core/triwiki-attention.js.map +0 -1
- package/dist/core/triwiki-wrongness/avoidance-rules.d.ts.map +0 -1
- package/dist/core/triwiki-wrongness/avoidance-rules.js.map +0 -1
- package/dist/core/triwiki-wrongness/image-wrongness.d.ts.map +0 -1
- package/dist/core/triwiki-wrongness/image-wrongness.js.map +0 -1
- package/dist/core/triwiki-wrongness/validators.d.ts.map +0 -1
- package/dist/core/triwiki-wrongness/validators.js.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-cli.d.ts.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-cli.js.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-ledger.d.ts.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-ledger.js.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-proof-linker.d.ts.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-proof-linker.js.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-retrieval.d.ts.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-retrieval.js.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-schema.d.ts.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-schema.js.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-trust-policy.d.ts.map +0 -1
- package/dist/core/triwiki-wrongness/wrongness-trust-policy.js.map +0 -1
- package/dist/core/trust-kernel/completion-contract.d.ts.map +0 -1
- package/dist/core/trust-kernel/completion-contract.js.map +0 -1
- package/dist/core/trust-kernel/evidence-router.d.ts.map +0 -1
- package/dist/core/trust-kernel/evidence-router.js.map +0 -1
- package/dist/core/trust-kernel/route-contract.d.ts.map +0 -1
- package/dist/core/trust-kernel/route-contract.js.map +0 -1
- package/dist/core/trust-kernel/route-state-machine.d.ts.map +0 -1
- package/dist/core/trust-kernel/route-state-machine.js.map +0 -1
- package/dist/core/trust-kernel/trust-kernel-schema.d.ts.map +0 -1
- package/dist/core/trust-kernel/trust-kernel-schema.js.map +0 -1
- package/dist/core/trust-kernel/trust-report.d.ts.map +0 -1
- package/dist/core/trust-kernel/trust-report.js.map +0 -1
- package/dist/core/trust-kernel/trust-status.d.ts.map +0 -1
- package/dist/core/trust-kernel/trust-status.js.map +0 -1
- package/dist/core/validators/completion-proof-validator.d.ts.map +0 -1
- package/dist/core/validators/completion-proof-validator.js.map +0 -1
- package/dist/core/validators/evidence-validator.d.ts.map +0 -1
- package/dist/core/validators/evidence-validator.js.map +0 -1
- package/dist/core/validators/feature-fixture-validator.d.ts.map +0 -1
- package/dist/core/validators/feature-fixture-validator.js.map +0 -1
- package/dist/core/validators/image-voxel-validator.d.ts.map +0 -1
- package/dist/core/validators/image-voxel-validator.js.map +0 -1
- package/dist/core/validators/route-contract-validator.d.ts.map +0 -1
- package/dist/core/validators/route-contract-validator.js.map +0 -1
- package/dist/core/validators/scout-result-validator.d.ts.map +0 -1
- package/dist/core/validators/scout-result-validator.js.map +0 -1
- package/dist/core/validators/trust-report-validator.d.ts.map +0 -1
- package/dist/core/validators/trust-report-validator.js.map +0 -1
- package/dist/core/validators/validation-error.d.ts.map +0 -1
- package/dist/core/validators/validation-error.js.map +0 -1
- package/dist/core/version-manager.d.ts.map +0 -1
- package/dist/core/version-manager.js.map +0 -1
- package/dist/core/version.d.ts.map +0 -1
- package/dist/core/version.js.map +0 -1
- package/dist/core/wiki-coordinate.d.ts.map +0 -1
- package/dist/core/wiki-coordinate.js.map +0 -1
- package/dist/core/wiki-image/bbox.d.ts.map +0 -1
- package/dist/core/wiki-image/bbox.js.map +0 -1
- package/dist/core/wiki-image/before-after-relation.d.ts.map +0 -1
- package/dist/core/wiki-image/before-after-relation.js.map +0 -1
- package/dist/core/wiki-image/callout-parser.d.ts.map +0 -1
- package/dist/core/wiki-image/callout-parser.js.map +0 -1
- package/dist/core/wiki-image/computer-use-evidence.d.ts.map +0 -1
- package/dist/core/wiki-image/computer-use-evidence.js.map +0 -1
- package/dist/core/wiki-image/computer-use-ledger.d.ts.map +0 -1
- package/dist/core/wiki-image/computer-use-ledger.js.map +0 -1
- package/dist/core/wiki-image/generated-review-parser.d.ts.map +0 -1
- package/dist/core/wiki-image/generated-review-parser.js.map +0 -1
- package/dist/core/wiki-image/image-hash.d.ts.map +0 -1
- package/dist/core/wiki-image/image-hash.js.map +0 -1
- package/dist/core/wiki-image/image-relation.d.ts.map +0 -1
- package/dist/core/wiki-image/image-relation.js.map +0 -1
- package/dist/core/wiki-image/image-ux-evidence.d.ts.map +0 -1
- package/dist/core/wiki-image/image-ux-evidence.js.map +0 -1
- package/dist/core/wiki-image/image-voxel-ledger.d.ts.map +0 -1
- package/dist/core/wiki-image/image-voxel-ledger.js.map +0 -1
- package/dist/core/wiki-image/image-voxel-schema.d.ts.map +0 -1
- package/dist/core/wiki-image/image-voxel-schema.js.map +0 -1
- package/dist/core/wiki-image/ppt-image-evidence.d.ts.map +0 -1
- package/dist/core/wiki-image/ppt-image-evidence.js.map +0 -1
- package/dist/core/wiki-image/proof-linker.d.ts.map +0 -1
- package/dist/core/wiki-image/proof-linker.js.map +0 -1
- package/dist/core/wiki-image/route-image-evidence.d.ts.map +0 -1
- package/dist/core/wiki-image/route-image-evidence.js.map +0 -1
- package/dist/core/wiki-image/validation.d.ts.map +0 -1
- package/dist/core/wiki-image/validation.js.map +0 -1
- package/dist/core/wiki-image/visual-anchor.d.ts.map +0 -1
- package/dist/core/wiki-image/visual-anchor.js.map +0 -1
- package/dist/core/work-order-ledger.d.ts.map +0 -1
- package/dist/core/work-order-ledger.js.map +0 -1
|
@@ -37,9 +37,11 @@ export declare const COMMANDS: {
|
|
|
37
37
|
deps: CommandEntry;
|
|
38
38
|
'fix-path': CommandEntry;
|
|
39
39
|
doctor: CommandEntry;
|
|
40
|
+
git: CommandEntry;
|
|
40
41
|
paths: CommandEntry;
|
|
41
42
|
rollback: CommandEntry;
|
|
42
43
|
postinstall: CommandEntry;
|
|
44
|
+
codex: CommandEntry;
|
|
43
45
|
'codex-app': CommandEntry;
|
|
44
46
|
'codex-lb': CommandEntry;
|
|
45
47
|
auth: CommandEntry;
|
|
@@ -120,9 +122,11 @@ export declare const TYPED_COMMANDS: {
|
|
|
120
122
|
deps: CommandEntry;
|
|
121
123
|
'fix-path': CommandEntry;
|
|
122
124
|
doctor: CommandEntry;
|
|
125
|
+
git: CommandEntry;
|
|
123
126
|
paths: CommandEntry;
|
|
124
127
|
rollback: CommandEntry;
|
|
125
128
|
postinstall: CommandEntry;
|
|
129
|
+
codex: CommandEntry;
|
|
126
130
|
'codex-app': CommandEntry;
|
|
127
131
|
'codex-lb': CommandEntry;
|
|
128
132
|
auth: CommandEntry;
|
|
@@ -90,9 +90,11 @@ export const COMMANDS = {
|
|
|
90
90
|
deps: entry('stable', 'Check local dependencies', 'dist/core/commands/basic-cli.js', subcommand(() => import(basicModule), 'depsCommand', 'dist/core/commands/basic-cli.js', 'check')),
|
|
91
91
|
'fix-path': entry('stable', 'Repair hook command paths', 'dist/core/commands/basic-cli.js', basicArgs('fixPathCommand')),
|
|
92
92
|
doctor: entry('stable', 'Check and repair SKS install', 'dist/commands/doctor.js', directCommand(() => import('../commands/doctor.js'), 'dist/commands/doctor.js')),
|
|
93
|
+
git: entry('beta', 'Inspect and enforce SKS git collaboration hygiene', 'dist/commands/git.js', directCommand(() => import('../commands/git.js'), 'dist/commands/git.js')),
|
|
93
94
|
paths: entry('beta', 'Inspect SKS managed paths', 'dist/core/commands/paths-command.js', argsCommand(() => import('../core/commands/paths-command.js'), 'pathsCommand', 'dist/core/commands/paths-command.js')),
|
|
94
95
|
rollback: entry('beta', 'List or apply managed-path rollback actions', 'dist/core/commands/rollback-command.js', argsCommand(() => import('../core/commands/rollback-command.js'), 'rollbackCommand', 'dist/core/commands/rollback-command.js')),
|
|
95
96
|
postinstall: entry('stable', 'Run postinstall bootstrap', 'dist/core/commands/basic-cli.js', basicArgs('postinstallCommand')),
|
|
97
|
+
codex: entry('beta', 'Check Codex CLI compatibility and vendored hook schemas', 'dist/commands/codex.js', directCommand(() => import('../commands/codex.js'), 'dist/commands/codex.js')),
|
|
96
98
|
'codex-app': entry('beta', 'Check Codex App readiness', 'dist/commands/codex-app.js', directCommand(() => import('../commands/codex-app.js'), 'dist/commands/codex-app.js')),
|
|
97
99
|
'codex-lb': entry('beta', 'Inspect codex-lb status and circuit health', 'dist/commands/codex-lb.js', directCommand(() => import('../commands/codex-lb.js'), 'dist/commands/codex-lb.js')),
|
|
98
100
|
auth: entry('beta', 'Alias for codex-lb auth commands', 'dist/commands/codex-lb.js', directCommand(() => import('../commands/codex-lb.js'), 'dist/commands/codex-lb.js')),
|
|
@@ -7,6 +7,9 @@ import { redactSecrets } from '../core/secret-redaction.js';
|
|
|
7
7
|
import { evaluateHookPayload } from '../core/hooks-runtime.js';
|
|
8
8
|
import { buildAllFeaturesSelftest, buildFeatureRegistry, validateFeatureRegistry, writeFeatureInventoryDocs } from '../core/feature-registry.js';
|
|
9
9
|
import { recordHookPolicyMismatchWrongness } from '../core/triwiki-wrongness/wrongness-ledger.js';
|
|
10
|
+
import { codexSchemaSnapshotReport } from '../core/codex-compat/codex-schema-snapshot.js';
|
|
11
|
+
import { validateCodexFixtureOutputs } from '../core/codex-compat/codex-hook-schema.js';
|
|
12
|
+
import { codexHookWarningCheck } from '../core/codex-compat/codex-hook-warning-detector.js';
|
|
10
13
|
const flag = (args, name) => args.includes(name);
|
|
11
14
|
export async function featuresCommand(sub = 'list', args = []) {
|
|
12
15
|
const action = sub || 'list';
|
|
@@ -103,8 +106,46 @@ export async function hooksCommand(sub = 'explain', args = []) {
|
|
|
103
106
|
console.log(`Decision: ${report.decision}`);
|
|
104
107
|
return;
|
|
105
108
|
}
|
|
109
|
+
if (action === 'codex-schema') {
|
|
110
|
+
const report = await codexSchemaSnapshotReport();
|
|
111
|
+
if (flag(args, '--json'))
|
|
112
|
+
return console.log(JSON.stringify(report, null, 2));
|
|
113
|
+
console.log(`Codex hook schema snapshot: ${report.ok ? 'ok' : 'blocked'} (${report.baseline})`);
|
|
114
|
+
if (!report.ok)
|
|
115
|
+
process.exitCode = 1;
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (action === 'codex-validate') {
|
|
119
|
+
const report = await validateCodexFixtureOutputs(root);
|
|
120
|
+
if (flag(args, '--json'))
|
|
121
|
+
return console.log(JSON.stringify(report, null, 2));
|
|
122
|
+
console.log(`Codex hook output validation: ${report.ok ? 'ok' : 'blocked'} (${report.checked} fixture outputs)`);
|
|
123
|
+
if (!report.ok)
|
|
124
|
+
process.exitCode = 1;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (action === 'warning-check') {
|
|
128
|
+
const report = await codexHookWarningCheck(root);
|
|
129
|
+
if (flag(args, '--json'))
|
|
130
|
+
return console.log(JSON.stringify(report, null, 2));
|
|
131
|
+
console.log(`Codex hook warning check: ${report.ok ? 'ok' : 'blocked'} (${report.warnings_count} warnings)`);
|
|
132
|
+
for (const warning of report.warnings)
|
|
133
|
+
console.log(`- ${warning}`);
|
|
134
|
+
if (!report.ok)
|
|
135
|
+
process.exitCode = 1;
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (action === 'replay-codex-fixtures') {
|
|
139
|
+
const report = await codexHookWarningCheck(root);
|
|
140
|
+
if (flag(args, '--json'))
|
|
141
|
+
return console.log(JSON.stringify(report, null, 2));
|
|
142
|
+
console.log(`Codex hook fixture replay: ${report.ok ? 'ok' : 'blocked'} (${report.warnings_count} warnings)`);
|
|
143
|
+
if (!report.ok)
|
|
144
|
+
process.exitCode = 1;
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
106
147
|
if (action !== 'explain') {
|
|
107
|
-
console.error('Usage: sks hooks explain|status|trust-report|replay <fixture.json
|
|
148
|
+
console.error('Usage: sks hooks explain|status|trust-report|replay <fixture.json>|codex-schema|codex-validate|warning-check|replay-codex-fixtures [--json]');
|
|
108
149
|
process.exitCode = 1;
|
|
109
150
|
return;
|
|
110
151
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import
|
|
2
|
+
import readline from 'node:readline/promises';
|
|
3
|
+
import { stdin as input, stdout as output } from 'node:process';
|
|
4
|
+
import { projectRoot, readStdin } from '../core/fsx.js';
|
|
3
5
|
import { flag, readOption } from '../cli/args.js';
|
|
4
6
|
import { printJson } from '../cli/output.js';
|
|
5
7
|
import { codexLbMetrics, readCodexLbCircuit, recordCodexLbHealthEvent, resetCodexLbCircuit, codexLbProofEvidence } from '../core/codex-lb-circuit.js';
|
|
@@ -18,11 +20,23 @@ export async function run(command, args = []) {
|
|
|
18
20
|
}
|
|
19
21
|
if (action === 'status' || action === 'check') {
|
|
20
22
|
const result = await codexLbStatus();
|
|
23
|
+
const shaped = shapeCodexLbStatus(result);
|
|
21
24
|
if (flag(args, '--json'))
|
|
22
|
-
return printJson(
|
|
25
|
+
return printJson(shaped);
|
|
23
26
|
process.stdout.write(formatCodexLbStatusText(result));
|
|
24
27
|
return;
|
|
25
28
|
}
|
|
29
|
+
if (action === 'doctor') {
|
|
30
|
+
const status = shapeCodexLbStatus(await codexLbStatus());
|
|
31
|
+
const metrics = codexLbMetrics(await readCodexLbCircuit(root));
|
|
32
|
+
const result = { schema: 'sks.codex-lb-doctor.v1', ok: Boolean(status.ok && metrics.ok), deep: flag(args, '--deep'), status, metrics };
|
|
33
|
+
if (flag(args, '--json'))
|
|
34
|
+
return printJson(result);
|
|
35
|
+
console.log(`codex-lb doctor: ${result.ok ? 'ok' : status.setup_needed ? 'setup_needed' : 'blocked'}`);
|
|
36
|
+
if (!result.ok)
|
|
37
|
+
process.exitCode = status.setup_needed ? 0 : 1;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
26
40
|
if (action === 'health' || action === 'verify-chain' || action === 'chain') {
|
|
27
41
|
const status = await codexLbStatus();
|
|
28
42
|
const result = status.ok ? await checkCodexLbResponseChain(status, { force: true, root }) : { ok: false, status: 'not_configured', codex_lb: status };
|
|
@@ -61,33 +75,39 @@ export async function run(command, args = []) {
|
|
|
61
75
|
return;
|
|
62
76
|
}
|
|
63
77
|
if (action === 'setup' || action === 'reconfigure') {
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
78
|
+
const options = await codexLbSetupOptions(args);
|
|
79
|
+
if (!options.host || !options.apiKey) {
|
|
80
|
+
const result = {
|
|
81
|
+
schema: 'sks.codex-lb-setup.v1',
|
|
82
|
+
ok: false,
|
|
83
|
+
status: 'setup_needed',
|
|
84
|
+
reason: !options.host ? 'missing_host_or_base_url' : 'missing_api_key',
|
|
85
|
+
guidance: [
|
|
86
|
+
'Run: sks codex-lb setup',
|
|
87
|
+
'Or: sks codex-lb setup --host <domain> --api-key-stdin --yes'
|
|
88
|
+
]
|
|
89
|
+
};
|
|
68
90
|
if (flag(args, '--json'))
|
|
69
91
|
return printJson(result);
|
|
70
|
-
console.error('
|
|
92
|
+
console.error('codex-lb API key is not configured.');
|
|
93
|
+
console.error('Run:');
|
|
94
|
+
console.error(' sks codex-lb setup');
|
|
95
|
+
console.error('or:');
|
|
96
|
+
console.error(' sks codex-lb setup --host <domain> --api-key-stdin --yes');
|
|
71
97
|
process.exitCode = 1;
|
|
72
98
|
return;
|
|
73
99
|
}
|
|
74
|
-
const result = await configureCodexLb({ host, apiKey });
|
|
100
|
+
const result = await configureCodexLb({ host: options.host, apiKey: options.apiKey });
|
|
101
|
+
const shaped = { schema: 'sks.codex-lb-setup.v1', ...result, api_key: { present: Boolean(options.apiKey), redacted: true }, env_file_chmod: '0600' };
|
|
102
|
+
if (options.health)
|
|
103
|
+
shaped.chain_health = result.ok ? await checkCodexLbResponseChain(result, { force: true, root }) : null;
|
|
75
104
|
if (flag(args, '--json'))
|
|
76
|
-
return printJson(
|
|
105
|
+
return printJson(shaped);
|
|
77
106
|
console.log(`codex-lb configured: ${result.base_url || result.status}`);
|
|
78
107
|
if (!result.ok)
|
|
79
108
|
process.exitCode = 1;
|
|
80
109
|
return;
|
|
81
110
|
}
|
|
82
|
-
if (action === 'doctor' && flag(args, '--deep')) {
|
|
83
|
-
const result = { ...codexLbMetrics(await readCodexLbCircuit(root)), schema: 'sks.codex-lb-doctor.v1', deep: true };
|
|
84
|
-
if (flag(args, '--json'))
|
|
85
|
-
return printJson(result);
|
|
86
|
-
console.log(`codex-lb deep doctor: ${result.ok ? 'ok' : 'blocked'} (${result.circuit.state})`);
|
|
87
|
-
if (!result.ok)
|
|
88
|
-
process.exitCode = 1;
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
111
|
if (action === 'circuit' && args[1] === 'reset') {
|
|
92
112
|
const result = await resetCodexLbCircuit(root);
|
|
93
113
|
if (flag(args, '--json'))
|
|
@@ -121,4 +141,73 @@ export async function run(command, args = []) {
|
|
|
121
141
|
console.error('Usage: sks codex-lb status|metrics|doctor --deep|health|repair|release|unselect|setup|circuit reset|circuit record-fixture|proof-evidence [--json]');
|
|
122
142
|
process.exitCode = 1;
|
|
123
143
|
}
|
|
144
|
+
function shapeCodexLbStatus(status = {}) {
|
|
145
|
+
return {
|
|
146
|
+
schema: 'sks.codex-lb-status.v1',
|
|
147
|
+
...status,
|
|
148
|
+
configured: Boolean(status.ok),
|
|
149
|
+
setup_needed: !status.ok,
|
|
150
|
+
api_key: {
|
|
151
|
+
present: Boolean(status.env_key_configured),
|
|
152
|
+
source: status.env_key_configured ? 'env-file' : null,
|
|
153
|
+
redacted: true
|
|
154
|
+
},
|
|
155
|
+
env_auto_load: Boolean(status.env_file && status.env_key_configured),
|
|
156
|
+
guidance: status.ok ? [] : [
|
|
157
|
+
'codex-lb API key is not configured.',
|
|
158
|
+
'Run: sks codex-lb setup',
|
|
159
|
+
'Or: sks codex-lb setup --host <domain> --api-key-stdin --yes'
|
|
160
|
+
]
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
async function codexLbSetupOptions(args = []) {
|
|
164
|
+
const baseUrl = readOption(args, '--base-url', null);
|
|
165
|
+
let host = baseUrl || readOption(args, '--host', readOption(args, '--domain', null));
|
|
166
|
+
let apiKey = readOption(args, '--api-key', readOption(args, '--key', null));
|
|
167
|
+
if (flag(args, '--api-key-stdin'))
|
|
168
|
+
apiKey = (await readStdin()).trim();
|
|
169
|
+
let health = flag(args, '--health') || flag(args, '--check');
|
|
170
|
+
if ((!host || !apiKey) && canAskInteractive(args)) {
|
|
171
|
+
console.log('SKS codex-lb setup\n');
|
|
172
|
+
host ||= (await ask('1. codex-lb domain or base URL?\n Example: lb.example.com or https://lb.example.com/backend-api/codex\n> ')).trim();
|
|
173
|
+
apiKey ||= (await askHidden('2. API key?\n Input hidden. Value will be stored securely and never printed.\n> ')).trim();
|
|
174
|
+
await ask('3. Use this codex-lb as default for Codex launches? [Y/n] ');
|
|
175
|
+
await ask('4. Write shell env loader to ~/.codex/sks-codex-lb.env? [Y/n] ');
|
|
176
|
+
const runHealth = (await ask('5. Run health check now? [Y/n] ')).trim();
|
|
177
|
+
health = !/^(n|no|아니|아니요|ㄴ)$/i.test(runHealth || 'y');
|
|
178
|
+
}
|
|
179
|
+
return { host, apiKey, health };
|
|
180
|
+
}
|
|
181
|
+
function canAskInteractive(args = []) {
|
|
182
|
+
return !flag(args, '--json') && !flag(args, '--yes') && Boolean(input.isTTY && output.isTTY && process.env.CI !== 'true');
|
|
183
|
+
}
|
|
184
|
+
async function ask(question) {
|
|
185
|
+
const rl = readline.createInterface({ input, output });
|
|
186
|
+
try {
|
|
187
|
+
return await rl.question(question);
|
|
188
|
+
}
|
|
189
|
+
finally {
|
|
190
|
+
rl.close();
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
async function askHidden(question) {
|
|
194
|
+
if (!input.isTTY || !output.isTTY)
|
|
195
|
+
return ask(question);
|
|
196
|
+
const rl = readline.createInterface({ input, output, terminal: true });
|
|
197
|
+
rl.stdoutMuted = true;
|
|
198
|
+
const original = rl._writeToOutput;
|
|
199
|
+
rl._writeToOutput = function writeToOutput(value) {
|
|
200
|
+
if (rl.stdoutMuted && !/\n|\r/.test(value))
|
|
201
|
+
return;
|
|
202
|
+
return original.call(rl, value);
|
|
203
|
+
};
|
|
204
|
+
try {
|
|
205
|
+
const answer = await rl.question(question);
|
|
206
|
+
output.write('\n');
|
|
207
|
+
return answer;
|
|
208
|
+
}
|
|
209
|
+
finally {
|
|
210
|
+
rl.close();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
124
213
|
//# sourceMappingURL=codex-lb.js.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { flag } from '../cli/args.js';
|
|
2
|
+
import { printJson } from '../cli/output.js';
|
|
3
|
+
import { codexCompatibilityReport, codexDoctorReport } from '../core/codex-compat/codex-compat-report.js';
|
|
4
|
+
import { codexVersionReport } from '../core/codex-compat/codex-version.js';
|
|
5
|
+
import { codexSchemaSnapshotReport } from '../core/codex-compat/codex-schema-snapshot.js';
|
|
6
|
+
export async function run(_command, args = []) {
|
|
7
|
+
const action = args[0] || 'compatibility';
|
|
8
|
+
if (action === 'compatibility' || action === 'compat') {
|
|
9
|
+
const result = await codexCompatibilityReport();
|
|
10
|
+
if (flag(args, '--json'))
|
|
11
|
+
return printJson(result);
|
|
12
|
+
console.log(`Codex compatibility: ${result.ok ? result.status : 'blocked'} (${result.required_baseline})`);
|
|
13
|
+
for (const warning of result.warnings || [])
|
|
14
|
+
console.log(`- ${warning}`);
|
|
15
|
+
if (!result.ok)
|
|
16
|
+
process.exitCode = 1;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (action === 'version') {
|
|
20
|
+
const result = await codexVersionReport();
|
|
21
|
+
if (flag(args, '--json'))
|
|
22
|
+
return printJson(result);
|
|
23
|
+
console.log(`Codex detected: ${result.detected.version || 'not installed'} (${result.policy.status})`);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (action === 'doctor') {
|
|
27
|
+
const result = await codexDoctorReport();
|
|
28
|
+
if (flag(args, '--json'))
|
|
29
|
+
return printJson(result);
|
|
30
|
+
console.log(`Codex doctor: ${result.ok ? 'ok' : 'blocked'}`);
|
|
31
|
+
if (!result.ok)
|
|
32
|
+
process.exitCode = 1;
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (action === 'schema' || action === 'snapshot') {
|
|
36
|
+
const result = await codexSchemaSnapshotReport();
|
|
37
|
+
if (flag(args, '--json'))
|
|
38
|
+
return printJson(result);
|
|
39
|
+
console.log(`Codex hook schema snapshot: ${result.ok ? 'ok' : 'blocked'} (${result.baseline})`);
|
|
40
|
+
if (!result.ok)
|
|
41
|
+
process.exitCode = 1;
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
console.error('Usage: sks codex compatibility|version|doctor|schema [--json]');
|
|
45
|
+
process.exitCode = 1;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=codex.js.map
|
package/dist/commands/wiki.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
|
|
|
25
25
|
}[];
|
|
26
26
|
active_avoidance_rules: import("../core/triwiki-wrongness/wrongness-schema.js").WrongnessAvoidanceRule[];
|
|
27
27
|
retrieval_policy: string;
|
|
28
|
-
} | {
|
|
28
|
+
} | import("../core/git-hygiene/shared-memory-publish.js").SharedPublishResult | {
|
|
29
29
|
schema: string;
|
|
30
30
|
target: any;
|
|
31
31
|
mission_id: string | null;
|
package/dist/core/bench.js
CHANGED
|
@@ -114,7 +114,7 @@ export async function runCoreBench(root = process.cwd(), { iterations = 3, tier
|
|
|
114
114
|
return report;
|
|
115
115
|
}
|
|
116
116
|
async function ensureBenchTrustMission(root, script) {
|
|
117
|
-
await runProcess(process.execPath, [script, 'run', '
|
|
117
|
+
await runProcess(process.execPath, [script, 'run', 'fixture', '--mock', '--json'], {
|
|
118
118
|
cwd: root,
|
|
119
119
|
timeoutMs: 60_000,
|
|
120
120
|
maxOutputBytes: 256 * 1024,
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export declare function codexCompatibilityReport(opts?: any): Promise<{
|
|
2
|
+
schema: string;
|
|
3
|
+
required_baseline: string;
|
|
4
|
+
detected: import("./codex-version.js").CodexDetectedVersion;
|
|
5
|
+
hooks_schema: {
|
|
6
|
+
snapshot: string;
|
|
7
|
+
ok: boolean;
|
|
8
|
+
files: number;
|
|
9
|
+
};
|
|
10
|
+
ok: boolean;
|
|
11
|
+
status: string;
|
|
12
|
+
warnings: string[];
|
|
13
|
+
root: any;
|
|
14
|
+
}>;
|
|
15
|
+
export declare function codexDoctorReport(opts?: any): Promise<{
|
|
16
|
+
schema: string;
|
|
17
|
+
ok: boolean;
|
|
18
|
+
compatibility: {
|
|
19
|
+
schema: string;
|
|
20
|
+
required_baseline: string;
|
|
21
|
+
detected: import("./codex-version.js").CodexDetectedVersion;
|
|
22
|
+
hooks_schema: {
|
|
23
|
+
snapshot: string;
|
|
24
|
+
ok: boolean;
|
|
25
|
+
files: number;
|
|
26
|
+
};
|
|
27
|
+
ok: boolean;
|
|
28
|
+
status: string;
|
|
29
|
+
warnings: string[];
|
|
30
|
+
root: any;
|
|
31
|
+
};
|
|
32
|
+
hooks: {
|
|
33
|
+
schema: string;
|
|
34
|
+
ok: boolean;
|
|
35
|
+
baseline: string;
|
|
36
|
+
warnings_count: number;
|
|
37
|
+
warnings: string[];
|
|
38
|
+
events: {
|
|
39
|
+
event: "UserPromptSubmit" | "PreToolUse" | "PostToolUse" | "PermissionRequest" | "Stop" | "PreCompact" | "PostCompact" | "SessionStart";
|
|
40
|
+
checked: number;
|
|
41
|
+
ok: boolean;
|
|
42
|
+
warnings: string[];
|
|
43
|
+
}[];
|
|
44
|
+
config: {
|
|
45
|
+
schema: string;
|
|
46
|
+
ok: boolean;
|
|
47
|
+
files: {
|
|
48
|
+
path: string;
|
|
49
|
+
exists: boolean;
|
|
50
|
+
ok: boolean;
|
|
51
|
+
issues: string[];
|
|
52
|
+
}[];
|
|
53
|
+
issues: string[];
|
|
54
|
+
};
|
|
55
|
+
wrongness: import("../triwiki-wrongness/wrongness-schema.js").WrongnessRecord | null;
|
|
56
|
+
};
|
|
57
|
+
}>;
|
|
58
|
+
//# sourceMappingURL=codex-compat-report.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { projectRoot } from '../fsx.js';
|
|
2
|
+
import { codexVersionReport } from './codex-version.js';
|
|
3
|
+
import { CODEX_COMPAT_SCHEMA, CODEX_REQUIRED_BASELINE_TAG } from './codex-version-policy.js';
|
|
4
|
+
import { codexSchemaSnapshotReport } from './codex-schema-snapshot.js';
|
|
5
|
+
import { codexHookWarningCheck } from './codex-hook-warning-detector.js';
|
|
6
|
+
export async function codexCompatibilityReport(opts = {}) {
|
|
7
|
+
const root = opts.root || await projectRoot();
|
|
8
|
+
const version = await codexVersionReport(opts);
|
|
9
|
+
const snapshot = await codexSchemaSnapshotReport();
|
|
10
|
+
const ok = Boolean(version.policy.ok && snapshot.ok);
|
|
11
|
+
return {
|
|
12
|
+
schema: CODEX_COMPAT_SCHEMA,
|
|
13
|
+
required_baseline: CODEX_REQUIRED_BASELINE_TAG,
|
|
14
|
+
detected: version.detected,
|
|
15
|
+
hooks_schema: {
|
|
16
|
+
snapshot: CODEX_REQUIRED_BASELINE_TAG,
|
|
17
|
+
ok: snapshot.ok,
|
|
18
|
+
files: snapshot.files.length
|
|
19
|
+
},
|
|
20
|
+
ok,
|
|
21
|
+
status: ok ? version.policy.status : 'blocked',
|
|
22
|
+
warnings: version.policy.warnings,
|
|
23
|
+
root
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export async function codexDoctorReport(opts = {}) {
|
|
27
|
+
const root = opts.root || await projectRoot();
|
|
28
|
+
const compatibility = await codexCompatibilityReport({ ...opts, root });
|
|
29
|
+
const hooks = await codexHookWarningCheck(root, { recordWrongness: false });
|
|
30
|
+
const ok = compatibility.ok && hooks.ok;
|
|
31
|
+
return {
|
|
32
|
+
schema: 'sks.codex-doctor.v1',
|
|
33
|
+
ok,
|
|
34
|
+
compatibility,
|
|
35
|
+
hooks
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=codex-compat-report.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare function validateCodexHookConfigText(text: unknown, opts?: any): {
|
|
2
|
+
schema: string;
|
|
3
|
+
ok: boolean;
|
|
4
|
+
source: any;
|
|
5
|
+
issues: string[];
|
|
6
|
+
};
|
|
7
|
+
export declare function validateCodexHookConfigFiles(root: string): Promise<{
|
|
8
|
+
schema: string;
|
|
9
|
+
ok: boolean;
|
|
10
|
+
files: {
|
|
11
|
+
path: string;
|
|
12
|
+
exists: boolean;
|
|
13
|
+
ok: boolean;
|
|
14
|
+
issues: string[];
|
|
15
|
+
}[];
|
|
16
|
+
issues: string[];
|
|
17
|
+
}>;
|
|
18
|
+
//# sourceMappingURL=codex-config-policy.d.ts.map
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import { exists, readText } from '../fsx.js';
|
|
4
|
+
import { CODEX_HOOK_EVENTS } from './codex-schema-snapshot.js';
|
|
5
|
+
const SUPPORTED_HANDLER_FIELDS = new Set(['type', 'command', 'commandWindows', 'command_windows', 'timeout', 'async', 'statusMessage']);
|
|
6
|
+
export function validateCodexHookConfigText(text, opts = {}) {
|
|
7
|
+
const issues = [];
|
|
8
|
+
const source = opts.source || 'config';
|
|
9
|
+
const value = String(text || '');
|
|
10
|
+
if (/allow_managed_hooks_only\s*=/.test(value) && /config\.toml$/.test(source)) {
|
|
11
|
+
issues.push(`${source}:allow_managed_hooks_only_in_config_toml`);
|
|
12
|
+
}
|
|
13
|
+
for (const match of value.matchAll(/\[\[hooks\.([^\]]+)\]\]/g)) {
|
|
14
|
+
const event = match[1] || '';
|
|
15
|
+
if (!CODEX_HOOK_EVENTS.includes(event))
|
|
16
|
+
issues.push(`${source}:unsupported_hook_event:${event}`);
|
|
17
|
+
}
|
|
18
|
+
for (const block of commandHookBlocks(value)) {
|
|
19
|
+
for (const key of block.keys) {
|
|
20
|
+
if (!SUPPORTED_HANDLER_FIELDS.has(key))
|
|
21
|
+
issues.push(`${source}:unsupported_hook_field:${key}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
schema: 'sks.codex-hook-config-policy.v1',
|
|
26
|
+
ok: issues.length === 0,
|
|
27
|
+
source,
|
|
28
|
+
issues
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export async function validateCodexHookConfigFiles(root) {
|
|
32
|
+
const candidates = [
|
|
33
|
+
path.join(os.homedir(), '.codex', 'config.toml'),
|
|
34
|
+
path.join(root, '.codex', 'config.toml'),
|
|
35
|
+
path.join(os.homedir(), '.codex', 'requirements.toml'),
|
|
36
|
+
path.join(root, '.codex', 'requirements.toml')
|
|
37
|
+
];
|
|
38
|
+
const files = [];
|
|
39
|
+
for (const file of candidates) {
|
|
40
|
+
if (!(await exists(file))) {
|
|
41
|
+
files.push({ path: file, exists: false, ok: true, issues: [] });
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const report = validateCodexHookConfigText(await readText(file, ''), { source: file });
|
|
45
|
+
files.push({ path: file, exists: true, ok: report.ok, issues: report.issues });
|
|
46
|
+
}
|
|
47
|
+
const issues = files.flatMap((file) => file.issues);
|
|
48
|
+
return {
|
|
49
|
+
schema: 'sks.codex-hook-config-files.v1',
|
|
50
|
+
ok: issues.length === 0,
|
|
51
|
+
files,
|
|
52
|
+
issues
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function commandHookBlocks(text) {
|
|
56
|
+
const lines = text.split(/\r?\n/);
|
|
57
|
+
const blocks = [];
|
|
58
|
+
let inCommand = false;
|
|
59
|
+
let keys = [];
|
|
60
|
+
for (const line of lines) {
|
|
61
|
+
if (/^\s*\[\[hooks\.[^.]+\.(?:hooks)\]\]\s*$/.test(line)) {
|
|
62
|
+
if (inCommand)
|
|
63
|
+
blocks.push({ keys });
|
|
64
|
+
inCommand = true;
|
|
65
|
+
keys = [];
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (/^\s*\[/.test(line)) {
|
|
69
|
+
if (inCommand)
|
|
70
|
+
blocks.push({ keys });
|
|
71
|
+
inCommand = false;
|
|
72
|
+
keys = [];
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (!inCommand)
|
|
76
|
+
continue;
|
|
77
|
+
const match = line.match(/^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=/);
|
|
78
|
+
if (match?.[1])
|
|
79
|
+
keys.push(match[1]);
|
|
80
|
+
}
|
|
81
|
+
if (inCommand)
|
|
82
|
+
blocks.push({ keys });
|
|
83
|
+
return blocks;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=codex-config-policy.js.map
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { codexHookEventName } from './codex-schema-snapshot.js';
|
|
2
|
+
export function normalizeCodexHookOutput(name, result = {}) {
|
|
3
|
+
const eventName = codexHookEventName(name) || 'UserPromptSubmit';
|
|
4
|
+
const out = { ...result };
|
|
5
|
+
const normalized = { continue: out.continue !== false };
|
|
6
|
+
if (out.stopReason)
|
|
7
|
+
normalized.stopReason = out.stopReason;
|
|
8
|
+
if (out.suppressOutput === true)
|
|
9
|
+
normalized.suppressOutput = true;
|
|
10
|
+
if (out.systemMessage)
|
|
11
|
+
normalized.systemMessage = out.systemMessage;
|
|
12
|
+
const reason = out.reason || out.permissionDecisionReason || 'SKS guard denied this action.';
|
|
13
|
+
if (eventName === 'UserPromptSubmit' || eventName === 'PostToolUse' || eventName === 'SessionStart') {
|
|
14
|
+
if (out.decision === 'block') {
|
|
15
|
+
normalized.decision = 'block';
|
|
16
|
+
normalized.reason = reason;
|
|
17
|
+
}
|
|
18
|
+
if (out.additionalContext) {
|
|
19
|
+
normalized.hookSpecificOutput = { hookEventName: eventName, additionalContext: out.additionalContext };
|
|
20
|
+
}
|
|
21
|
+
return normalized;
|
|
22
|
+
}
|
|
23
|
+
if (eventName === 'PreToolUse') {
|
|
24
|
+
const decision = out.permissionDecision || (out.decision === 'allow' ? 'allow' : null);
|
|
25
|
+
if (out.decision === 'block' || out.decision === 'deny' || decision === 'deny') {
|
|
26
|
+
normalized.hookSpecificOutput = {
|
|
27
|
+
hookEventName: 'PreToolUse',
|
|
28
|
+
permissionDecision: 'deny',
|
|
29
|
+
permissionDecisionReason: reason
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
else if (decision === 'allow' || decision === 'ask') {
|
|
33
|
+
normalized.hookSpecificOutput = {
|
|
34
|
+
hookEventName: 'PreToolUse',
|
|
35
|
+
permissionDecision: decision
|
|
36
|
+
};
|
|
37
|
+
if (decision === 'ask' || out.permissionDecisionReason)
|
|
38
|
+
normalized.hookSpecificOutput.permissionDecisionReason = reason;
|
|
39
|
+
}
|
|
40
|
+
return normalized;
|
|
41
|
+
}
|
|
42
|
+
if (eventName === 'PermissionRequest') {
|
|
43
|
+
if (out.decision === 'deny' || out.permissionDecision === 'deny') {
|
|
44
|
+
normalized.hookSpecificOutput = {
|
|
45
|
+
hookEventName: 'PermissionRequest',
|
|
46
|
+
decision: { behavior: 'deny', message: reason }
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
else if (out.decision === 'allow' || out.permissionDecision === 'allow') {
|
|
50
|
+
normalized.hookSpecificOutput = {
|
|
51
|
+
hookEventName: 'PermissionRequest',
|
|
52
|
+
decision: { behavior: 'allow', ...(out.message ? { message: out.message } : {}) }
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return normalized;
|
|
56
|
+
}
|
|
57
|
+
if (eventName === 'Stop') {
|
|
58
|
+
if (out.decision === 'block') {
|
|
59
|
+
normalized.continue = out.continue === false ? false : normalized.continue;
|
|
60
|
+
normalized.decision = 'block';
|
|
61
|
+
normalized.reason = reason;
|
|
62
|
+
if (!normalized.stopReason && out.continue === false)
|
|
63
|
+
normalized.stopReason = reason;
|
|
64
|
+
}
|
|
65
|
+
return normalized;
|
|
66
|
+
}
|
|
67
|
+
return normalized;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=codex-hook-output-normalizer.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type CodexHookEventName } from './codex-schema-snapshot.js';
|
|
2
|
+
export type CodexSchemaValidation = {
|
|
3
|
+
ok: boolean;
|
|
4
|
+
event: CodexHookEventName;
|
|
5
|
+
issues: string[];
|
|
6
|
+
};
|
|
7
|
+
export declare function validateCodexHookOutput(eventLike: unknown, output: unknown): Promise<CodexSchemaValidation>;
|
|
8
|
+
export declare function validateCodexFixtureOutputs(root?: string): Promise<{
|
|
9
|
+
schema: string;
|
|
10
|
+
ok: boolean;
|
|
11
|
+
fixture_root: string;
|
|
12
|
+
checked: number;
|
|
13
|
+
outputs: {
|
|
14
|
+
ok: boolean;
|
|
15
|
+
event: CodexHookEventName;
|
|
16
|
+
issues: string[];
|
|
17
|
+
file: string;
|
|
18
|
+
}[];
|
|
19
|
+
}>;
|
|
20
|
+
//# sourceMappingURL=codex-hook-schema.d.ts.map
|