sneakoscope 1.10.0 → 1.11.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 (78) hide show
  1. package/README.md +7 -231
  2. package/crates/sks-core/Cargo.lock +1 -1
  3. package/crates/sks-core/Cargo.toml +1 -1
  4. package/crates/sks-core/src/main.rs +1 -1
  5. package/dist/bin/sks.js +1 -1
  6. package/dist/build-manifest.json +25 -1
  7. package/dist/cli/command-registry.js +1 -1
  8. package/dist/cli/feature-commands.js +26 -3
  9. package/dist/commands/bench.d.ts +12 -10
  10. package/dist/commands/dfix.d.ts +117 -1
  11. package/dist/commands/dfix.js +4 -2
  12. package/dist/commands/image-ux-review.d.ts +1 -0
  13. package/dist/commands/ppt.d.ts +333 -1
  14. package/dist/commands/wiki.d.ts +1 -1
  15. package/dist/core/bench.d.ts +14 -11
  16. package/dist/core/bench.js +119 -20
  17. package/dist/core/codex-exec-output-schema.js +2 -17
  18. package/dist/core/commands/bench-command.d.ts +12 -10
  19. package/dist/core/commands/bench-command.js +4 -4
  20. package/dist/core/commands/dfix-command.d.ts +118 -0
  21. package/dist/core/commands/dfix-command.js +158 -0
  22. package/dist/core/commands/image-ux-review-command.d.ts +1 -0
  23. package/dist/core/commands/image-ux-review-command.js +6 -4
  24. package/dist/core/commands/ppt-command.d.ts +333 -1
  25. package/dist/core/commands/ppt-command.js +202 -19
  26. package/dist/core/commands/wiki-command.d.ts +2 -2
  27. package/dist/core/dfix.d.ts +96 -0
  28. package/dist/core/dfix.js +253 -0
  29. package/dist/core/evidence/evidence-router.js +18 -0
  30. package/dist/core/feature-fixtures.js +5 -5
  31. package/dist/core/feature-registry.d.ts +4 -0
  32. package/dist/core/feature-registry.js +177 -2
  33. package/dist/core/fsx.d.ts +1 -1
  34. package/dist/core/fsx.js +1 -1
  35. package/dist/core/json-schema-validator.d.ts +18 -0
  36. package/dist/core/json-schema-validator.js +222 -0
  37. package/dist/core/performance-budgets.json +5 -5
  38. package/dist/core/ppt-imagegen-review.d.ts +121 -0
  39. package/dist/core/ppt-imagegen-review.js +18 -0
  40. package/dist/core/ppt-review/deck-issue-ledger.d.ts +28 -0
  41. package/dist/core/ppt-review/deck-issue-ledger.js +50 -0
  42. package/dist/core/ppt-review/index.d.ts +119 -0
  43. package/dist/core/ppt-review/index.js +185 -0
  44. package/dist/core/ppt-review/ppt-fix-task-planner.d.ts +20 -0
  45. package/dist/core/ppt-review/ppt-fix-task-planner.js +72 -0
  46. package/dist/core/ppt-review/ppt-patch-handoff.d.ts +51 -0
  47. package/dist/core/ppt-review/ppt-patch-handoff.js +55 -0
  48. package/dist/core/ppt-review/reexport-rereview.d.ts +63 -0
  49. package/dist/core/ppt-review/reexport-rereview.js +85 -0
  50. package/dist/core/ppt-review/slide-exporter.d.ts +54 -0
  51. package/dist/core/ppt-review/slide-exporter.js +156 -0
  52. package/dist/core/ppt-review/slide-imagegen-review.d.ts +40 -0
  53. package/dist/core/ppt-review/slide-imagegen-review.js +152 -0
  54. package/dist/core/ppt-review/slide-issue-extraction.d.ts +65 -0
  55. package/dist/core/ppt-review/slide-issue-extraction.js +164 -0
  56. package/dist/core/proof/auto-finalize.d.ts +1 -1
  57. package/dist/core/proof/auto-finalize.js +2 -2
  58. package/dist/core/proof/evidence-collector.d.ts +1 -1
  59. package/dist/core/proof/route-adapter.d.ts +96 -0
  60. package/dist/core/proof/route-finalizer.d.ts +96 -0
  61. package/dist/core/proof/route-finalizer.js +2 -0
  62. package/dist/core/proof/selftest-proof-fixtures.d.ts +96 -0
  63. package/dist/core/triwiki-wrongness/wrongness-cli.d.ts +2 -2
  64. package/dist/core/triwiki-wrongness/wrongness-proof-linker.d.ts +1 -1
  65. package/dist/core/triwiki-wrongness/wrongness-retrieval.d.ts +1 -1
  66. package/dist/core/triwiki-wrongness/wrongness-schema.d.ts +1 -1
  67. package/dist/core/triwiki-wrongness/wrongness-schema.js +14 -0
  68. package/dist/core/trust-kernel/trust-report.d.ts +192 -0
  69. package/dist/core/trust-kernel/trust-report.js +77 -2
  70. package/dist/core/version.d.ts +1 -1
  71. package/dist/core/version.js +1 -1
  72. package/dist/core/wiki-image/validation.js +9 -1
  73. package/package.json +21 -4
  74. package/schemas/codex/all-feature-completion.schema.json +17 -0
  75. package/schemas/codex/dfix-diagnosis.schema.json +17 -0
  76. package/schemas/codex/dfix-patch-plan.schema.json +18 -0
  77. package/schemas/codex/dfix-verification.schema.json +16 -0
  78. package/schemas/codex/ppt-slide-issue-ledger.schema.json +28 -0
package/README.md CHANGED
@@ -4,248 +4,24 @@ Fast legacy-free proof-first Codex trust layer with image-based Voxel TriWiki.
4
4
 
5
5
  Sneakoscope Codex (`sks`) is a Codex CLI/App harness that makes repeatable Codex work auditable.
6
6
 
7
- SKS **1.10.0** is the Function-Only Update Check release: `sks update-check` and the pre-work update gate now share a lightweight npm freshness function that reports `route_required: false` and `pipeline_required: false`, so checking for a newer SKS package never starts Team, setup, doctor, or any execution pipeline.
8
-
9
- SKS **1.0.9** is the Official Docs Ultimate Kernel: Codex CLI `rust-v0.132.0` structured resume output is now an actual runner, `gpt-image-2` review generation uses Codex App `$imagegen` evidence or an optional OpenAI Images API fallback, Structured Outputs strict schemas are the extraction fallback, and `$UX-Review this screenshot with gpt-image-2 callouts, then fix the issues` blocks fake callouts until generated image pixels are schema-extracted, patched, recaptured, and re-reviewed.
10
-
11
- SKS **1.0.8** is the Codex 0.132 UX-Review Seal: Codex CLI `rust-v0.132.0` compatibility is explicit, `codex exec resume --output-schema` is the preferred structured-output path, and `$UX-Review this screenshot with gpt-image-2 callouts, then fix the issues` is a real visual trust loop from source screenshot fidelity to generated callout ingestion, issue ledger extraction, bounded safe fixes, recapture/re-review, Image Voxel relations, Wrongness, Completion Proof, and Trust Report gates.
12
-
13
- SKS **1.0.7** is the Ultimate Final Completion seal for the Codex trust harness: Computer Use live evidence is an opt-in, local-only macOS evidence path with explicit `probe_only`, `live_capture_attempted`, `live_capture_success`, and `live_capture_blocked` modes; `codex-lb setup` reports durable persistence versus `process_only_ephemeral` honestly; and docs/release readiness checks block mock/probe/live overclaims.
14
-
15
- SKS **1.0.6** is the final precision polish for the Codex trust harness: hook compatibility is classified as upstream schema plus an SKS zero-warning strict subset, `sks codex-lb setup` previews and applies the exact choices the user selected, and Computer Use has an optional live smoke surface for macOS capability/evidence status.
16
-
17
- SKS **1.0.5** sealed the prior trust harness: hook outputs were validated against both vendored OpenAI Codex CLI `rust-v0.131.0` schemas and runtime semantic parser rules, codex-lb setup survived macOS user-session launches through env-file/Keychain/launchctl-aware repair surfaces, and Computer Use became the preferred macOS visual evidence capability when available.
18
-
19
- SKS **1.0.4** introduced the `rust-v0.131.0` schema snapshot, guided codex-lb setup path, and Computer Use/MAD-SKS separation that 1.0.5 now hardens into release gates.
20
-
21
- SKS **1.0.3** adds git-collaboration hygiene for shared TriWiki memory: `sks git ...`, tracked shared shards under `.sneakoscope/wiki/**`, runtime-only ignores, shared wrongness publish/sync, and Codex App hook trust-state generation for current hook trust syntax.
22
-
23
- SKS **1.0.2** removed the last blanket TypeScript suppressions from runtime sources (`@ts-nocheck`/`@ts-ignore` are gated out by `npm run typecheck:suppressions`). The package remains `dist`-only, the typed command registry is still the genuine runtime registry, and release checks additionally block stray `.mjs` under `dist`, command-registry import drift (`blackbox:command-import-smoke`), typed contract probes, plus suppression + migration summaries.
24
-
25
- SKS **1.0.2** also adds TriWiki Wrongness Memory: `sks wrongness ...` records negative evidence for wrong claims, stale or missing proof, test failures, image anchor mistakes, DB safety mismatches, hook policy mismatches, mock-real confusion, and trust overclaims. Active wrongness is retrieved by TriWiki/scouts and lowers or blocks trust until corrected.
26
-
27
- Hybrid-free **`1.0.1`** already delivered the CLI entrypoint/router/registry/Trust Kernel/Evidence/Proof/Voxel/Scout TypeScript builds, packed installs that smoke-test every lazy import, and **`sks run --execute`** / **`--auto`** paths for safe/mock routes (destructive DB and missing visual proof stay blocked—these are mock/safe-heavy, not universally live executions).
28
-
29
7
  SKS does not try to clone every other harness. It focuses on one thing: making Codex work auditable, visual-evidence-bound, safety-gated, and reproducible through Completion Proof.
30
8
 
31
9
  ![Sneakoscope Codex Trust Layer](docs/assets/sneakoscope-architecture-pipeline.jpg)
32
10
 
11
+ ## Current Release
33
12
 
34
- ## 1.10.0 Function-Only Update Check
35
-
36
- 1.10.0 keeps the update freshness check out of the SKS mission pipeline. The shared `runSksUpdateCheck` function performs only an npm `view sneakoscope version` lookup, honors `SKS_NPM_VIEW_SNEAKOSCOPE_VERSION` for hermetic tests, and returns explicit `mode: "function"`, `route_required: false`, and `pipeline_required: false` evidence for CLI JSON output and hook-gate reuse.
13
+ SKS **1.11.0** focuses on release confidence: all-feature completion reporting, PPT imagegen review evidence, DFix diagnose/plan/patch/verify artifacts, recursive JSON schema checks, and stricter release metadata gates.
37
14
 
38
15
  ```bash
39
- sks update-check --json
16
+ sks features complete --json
17
+ sks ppt fixture --mock --json
18
+ sks dfix fixture --json
40
19
  ```
41
20
 
42
- Release checks now write `.sneakoscope/reports/official-docs-compat-1.10.0.json` plus `.sneakoscope/reports/release-readiness-1.10.0.json`.
43
-
44
- ## 1.0.9 Official Docs Ultimate Kernel
45
-
46
- 1.0.9 closes the remaining policy-vs-run-path gap. Attached generated images are recorded with `callout_extraction_status: pending` and empty callouts until `codex exec resume --output-schema` or the OpenAI Structured Outputs fallback returns a schema-valid issue ledger. Real `gpt-image-2` generation records request/response artifacts, source SHA-256, high-fidelity automatic input metadata, output hashes, local-only privacy, and blockers instead of substituting prose or generic callouts.
47
-
48
- ```bash
49
- sks ux-review run --image ./screenshot.png --generate-callouts --json
50
- sks ux-review attach-generated latest --image ./generated-callouts.png --json
51
- sks ux-review extract-issues --generated-image ./generated-callouts.png --json
52
- sks ux-review attach-after latest --image ./after.png --json
53
- sks ux-review proof latest --json
54
- sks ux-review explain latest
55
- npm run official-docs:compat
56
- ```
57
-
58
- Release checks now include `npm run official-docs:compat` and write `.sneakoscope/reports/official-docs-compat-1.0.9.json` plus `.sneakoscope/reports/release-readiness-1.0.9.json`.
59
-
60
- ## 1.0.8 Codex 0.132 UX-Review Seal
61
-
62
- 1.0.8 makes UX-Review the representative SKS visual trust harness rather than a policy-only fixture. The CLI/App route now records source screenshot original-resolution metadata, requires real `gpt-image-2` generated callout images before verified UX claims, extracts visible callouts into `schemas/codex/image-ux-issue-ledger.schema.json`, plans bounded P0/P1-first fixes, and requires recapture/re-review before visual fix verification.
63
-
64
- ```bash
65
- sks codex compatibility --json
66
- sks ux-review run --image ./screenshot.png --fix --json
67
- sks ux-review callouts --image ./screenshot.png --json
68
- sks ux-review extract-issues --generated-image ./generated-callouts.png --json
69
- sks ux-review fix latest --json
70
- sks ux-review recapture latest --json
71
- sks ux-review recheck latest --json
72
- sks ux-review status latest --json
73
- ```
74
-
75
- Release checks now include:
76
-
77
- - `npm run codex:0.132-compat`
78
- - `npm run codex:output-schema-fixture`
79
- - `npm run image-fidelity:check`
80
- - `npm run ux-review:real-loop-fixture`
81
- - `npm run ux-review:no-text-fallback`
82
- - `npm run ux-review:image-voxel-relations`
83
- - `npm run memory-summary:rebuild-check`
84
- - `npm run loop-blocker:check`
85
-
86
- `gpt-image-2` output is local-only by default. Text-only critique is blocked, mock fixtures stay `verified_partial` or lower, screenshot binaries are not automatically published to shared TriWiki, and unavailable Codex/App image-generation capability is recorded as a blocker instead of being faked.
87
-
88
- ## 1.0.7 Ultimate Final Completion
89
-
90
- 1.0.7 does not add a new route, skill, or competing harness. It closes the last trust gaps around live visual evidence, persistence truth, and release documentation.
91
-
92
- Computer Use live evidence stays optional and explicit:
93
-
94
- ```bash
95
- sks computer-use smoke --json
96
- sks computer-use smoke --real --capture-screenshot --json
97
- sks computer-use smoke --real --require-real --json
98
- npm run computer-use:live-evidence
99
- ```
100
-
101
- Default smoke is `probe_only` and never attempts screen capture. Real mode records `live_capture_attempted`, `live_capture_success`, or `live_capture_blocked`; if Codex App, macOS permission, or the official Computer Use capture surface is unavailable, SKS writes a structured blocker instead of fabricated evidence. Browser Use evidence and manual screenshots remain separate sources. Computer Use screenshots are local-only by default, carry SHA-256 metadata, and link to Image Voxel only when a mission-local anchor can be made.
102
-
103
- codex-lb setup now reports the exact persistence truth:
104
-
105
- ```bash
106
- sks codex-lb setup --host lb.example.com --api-key-stdin --plan --json
107
- sks codex-lb setup --host lb.example.com --api-key-stdin --yes --no-env-file --no-keychain --no-launchctl --shell-profile skip --json
108
- npm run codex-lb:persistence-truth
109
- ```
110
-
111
- Durable modes are `durable_env_file`, `durable_keychain`, `durable_launchctl`, and `shell_profile`. If all durable modes are disabled, setup is classified as `process_only_ephemeral`, emits `next_shell_requires_setup_or_env`, and warns that Codex App GUI launches may not see credentials. Use `sks codex-lb setup --write-env-file --keychain --launchctl` to recover durable persistence.
112
-
113
- Documentation truthfulness is now a release invariant:
114
-
115
- ```bash
116
- npm run docs:truthfulness
117
- npm run release:readiness
118
- ```
119
-
120
- The hook compatibility surface remains the upstream schema plus the SKS zero-warning strict subset; SKS does not claim to mirror every upstream runtime parser rule or guarantee universal Computer Use availability.
121
-
122
- ## 1.0.6 Final Precision Polish
123
-
124
- SKS validates Codex hooks against the OpenAI Codex `rust-v0.131.0` schema and enforces a stricter SKS zero-warning subset. Some fields may be accepted by upstream but are intentionally disallowed by SKS to avoid user-facing hook warnings and release drift. `sks hooks warning-check --json` now reports `schema_violation`, `upstream_semantic_unsupported`, `sks_zero_warning_disallowed`, `legacy_shape`, and `policy_disallowed` category counts.
125
-
126
- `sks codex-lb setup` is now a two-phase plan/apply wizard. Every question maps to an actual action: provider selection, env file writing, Keychain storage, launchctl sync, shell profile snippets, and health checks.
127
-
128
- ```bash
129
- sks codex-lb setup --host lb.example.com --api-key-stdin --plan --json
130
- sks codex-lb setup --host lb.example.com --api-key-stdin --yes --no-default-provider --no-env-file --json
131
- npm run codex-lb:setup-truthfulness
132
- ```
133
-
134
- Computer Use live validation is optional and opt-in. On macOS, `SKS_TEST_REAL_COMPUTER_USE=1 sks computer-use smoke --real --json` attempts a non-destructive capability/evidence check. If Codex App or macOS denies the capability, SKS records a structured blocker and does not fabricate visual evidence.
135
-
136
- ```bash
137
- sks computer-use smoke --json
138
- SKS_TEST_REAL_COMPUTER_USE=1 sks computer-use smoke --real --json
139
- npm run computer-use:live-optional
140
- ```
141
-
142
- ## 1.0.5 Ultimate Harness Seal
143
-
144
- SKS 1.0.5 treats Codex hook semantic compatibility as stricter than schema compatibility. `sks hooks warning-check --json` and `npm run hooks:semantic-check` fail if an output uses `permissionDecision:"ask"`, PreToolUse `allow` without `updatedInput`, Stop `continue:false`, `stopReason`, `suppressOutput`, snake_case keys, unknown fields, or legacy top-level hook decisions.
145
-
146
- codex-lb setup now has a durable setup/repair path:
147
-
148
- ```bash
149
- sks codex-lb setup --host lb.example.com --api-key-stdin --yes --json
150
- sks codex-lb status --json
151
- sks codex-lb doctor --deep --json
152
- npm run codex-lb:missing-env-regression
153
- ```
154
-
155
- The API key is written only to redacted status surfaces. The env file is `~/.codex/sks-codex-lb.env`, metadata is `~/.codex/sks-codex-lb.json`, and reports expose only a redacted presence state plus a fingerprint. Raw `CODEX_LB_API_KEY` missing-env errors are release failures.
156
-
157
- Computer Use is a Codex App/macOS capability, not a MAD-SKS or DB permission. Visual routes use:
158
-
159
- ```bash
160
- sks computer-use status --json
161
- sks computer-use require --route '$QA-LOOP' --json
162
- npm run computer-use:visual-route-fixture
163
- ```
164
-
165
- If Codex App or macOS blocks the capability, SKS records `external_capability_blocked`, `codex_app_missing`, `macos_permission_missing`, or the closest structured status and does not fabricate UI evidence.
166
-
167
- ## 1.0.4 Codex CLI Compatibility
168
-
169
- SKS 1.0.4 targets OpenAI Codex CLI `rust-v0.131.0`. Hook outputs are validated against vendored upstream schemas, so SKS fails release checks if it emits deprecated hook shapes or unknown fields. `sks codex-lb setup` now guides users through domain/base URL and API key setup, stores secrets securely, and prevents raw `CODEX_LB_API_KEY` missing messages. On macOS, Computer Use is treated as a first-class Codex App visual evidence capability and is never blocked by MAD-SKS or a generic SKS safety policy.
170
-
171
- If the Codex App or OS itself denies Computer Use capability, SKS records `external_capability_blocked` and does not fabricate UI evidence.
172
-
173
- New checks:
174
-
175
- - `sks codex compatibility --json`
176
- - `sks codex doctor --json`
177
- - `sks hooks codex-validate --json`
178
- - `sks hooks warning-check --json`
179
- - `sks codex-lb setup --host <domain> --api-key-stdin --yes --json`
180
- - `sks computer-use status --json`
181
-
182
- ## 1.0.3 Previous Release Notes
183
-
184
- SKS **1.0.3 makes TriWiki collaboration git-safe.** Shared claims, wrongness records, image voxels, and avoidance rules publish to one-record JSON shards; generated indexes are ignored and rebuilt. `.gitignore` no longer hides all of `.sneakoscope/`, so shared memory can be committed while missions, logs, reports, caches, and temporary packs stay local.
185
-
186
- New commands:
187
-
188
- - `sks git policy|install|status|doctor|precommit|publish-plan|summary`
189
- - `sks wiki publish latest --shared`
190
- - `sks wrongness publish latest --shared`
191
- - `sks wiki rebuild-index --json`
192
- - `sks wiki validate-shared --json`
193
-
194
- Codex App setup now writes hook trust-state hashes into `.codex/config.toml` for the managed `.codex/hooks.json`, matching the current Codex hook trust model.
195
-
196
- ## 1.0.2 Previous Release Notes
197
-
198
- SKS **1.0.2 removes the blanket `@ts-nocheck` / `@ts-ignore` layer from runtime TypeScript.** The shipped package stays `dist`-only, keeps the typed command registry as the real runtime dispatcher, runs `npm run typecheck:suppressions` ahead of builds in `release:check`, and records migration counters under `.sneakoscope/reports/typescript-migration.*`.
199
-
200
- `npm run dist:check` now pairs the existing filesystem `.mjs` hunt with **`sks.dist-build.v2`** metadata that records `mjs_runtime_files = 0` plus the semver captured at build time—guarding accidental hybrid drift.
201
-
202
- `npm run typecheck`, `npm run typecheck:suppressions`, `npm run typecheck:contracts`, `npm run test:types`, and `npm run release:check` are the release proof for the 1.0.2 strict TypeScript seal.
203
-
204
- ## 1.0.1 Previous Release
205
-
206
- 1.0.1 removes the package/runtime hybrid boundary. The TypeScript command registry is the actual CLI runtime registry, `npm run build` no longer copies `src/**/*.mjs` into `dist`, and `npm run dist:check` blocks `dist/**/*.mjs`, `.mjs` imports, and contract-only registry markers.
207
-
208
- Highlights:
209
-
210
- - `npm run build`, `npm run typecheck`, `npm run typecheck:contracts`, and `npm run schema:check` are release invariants.
211
- - `npm run dist:check` proves the built runtime is `dist`-only JavaScript generated from TypeScript.
212
- - `npm run package-boundary:check` and `npm run blackbox:command-import-smoke` verify the packed package, not just the source checkout.
213
- - `npm run blackbox:matrix` runs real pack install, npx one-shot, global shim, no-git, spaces, and Korean/Unicode path checks by default.
214
- - `sks run "task" --execute --json` and `sks run "task" --auto --json` execute safe routes; visual evidence gaps and destructive DB prompts block with explicit recovery.
215
- - `sks trust report latest --json`, `sks trust validate latest --json`, and `sks trust explain latest` expose the route trust kernel.
216
- - Route finalization writes mission-local `route-completion-contract.json`, `evidence-index.json`, `evidence.jsonl`, and `trust-report.json`.
217
- - Mock/static evidence stays `verified_partial` or lower; static contracts cannot satisfy runtime route contracts.
218
- - Visual route validation blocks stale image/voxel anchors.
219
- - `sks bench core --tier source-ci --json` writes `.sneakoscope/reports/performance/core-bench.json` and `.md` using tiered budgets.
220
- - `sks paths managed --json` and `sks rollback list --json` document SKS-owned project paths and explicit rollback actions.
221
-
222
- ## 0.9.19 Release
223
-
224
- 0.9.19 makes SKS Scout evidence parse-bound and package-install verified. Real Codex/tmux/Codex App subagent engines must write parseable scout output before consensus can use them as primary evidence. If an engine is unavailable or output cannot be parsed, SKS records a blocked or verified-partial result instead of substituting static evidence. Packed package checks now cover temp install, npx one-shot, and global shim behavior.
225
-
226
- Highlights:
227
-
228
- - Real Scout outputs are parsed from pure JSON, fenced JSON, `SCOUT_RESULT_JSON:` markdown, or final JSON blocks into `sks.scout-result.v1`.
229
- - `scout-consensus.json` records whether primary evidence came from parsed real outputs or local static fixtures.
230
- - `tmux-lanes` has an opt-in session/window/watcher/cleanup path; release gates skip or block honestly when live tmux/Codex is unavailable.
231
- - Codex App subagents require a local `sks.codex-app-subagents-capability.v1` descriptor; `SKS_CODEX_APP_SUBAGENTS=1` alone is not enough.
232
- - `npm run release:check` includes `pipeline-runtime:check`, `feature-quality:check`, `scouts:parser-check`, and `blackbox:check`.
233
- - Feature fixtures report `runtime_verified`, `runtime_mock_verified`, `integration_optional`, `static_contract`, and `missing` counts.
234
- - `sks rust status|smoke --json` reports optional Rust availability, detects stale native binaries, and proves JS fallback parity when native Rust is missing or version-mismatched.
235
- - `npm run release:check` includes `route-modularity:check`, `command-budget:check`, and `feature-fixtures:strict`.
236
-
237
- `0.9.14` turned SKS into a legacy-free proof-first trust layer for Codex work:
21
+ Detailed release history lives in [CHANGELOG.md](CHANGELOG.md). Current release gate status lives in [docs/release-readiness.md](docs/release-readiness.md).
238
22
 
239
- - Command registry entries load independent command modules without runtime fallback to archived 0.9.13 CLI bundles.
240
- - Serious routes write Completion Proof through the central route finalizer before completion is claimed.
241
- - Visual/UI routes require Image Voxel TriWiki anchors, with before/after relations for visual fix claims.
242
- - Executable feature fixtures validate expected artifact existence and schema contracts.
243
- - Hook replay strictly matches decision, reason, gate, issues, continuation, and redaction policy.
244
- - codex-lb launch failures feed both global and active-project circuit health; stateless `previous_response_not_found` stays a warning.
245
- - Rust `image-hash` and semantic `voxel-validate` commands match JS fallback behavior.
246
- - `$Commit` and `$Commit-And-Push` provide a simple git-only route for staging, committing, and optionally pushing without the full SKS pipeline.
23
+ ## Documentation
247
24
 
248
- Learn more:
249
25
  - Completion Proof: [docs/completion-proof.md](docs/completion-proof.md)
250
26
  - TypeScript architecture: [docs/typescript-architecture.md](docs/typescript-architecture.md)
251
27
  - Trust Kernel: [docs/trust-kernel.md](docs/trust-kernel.md)
@@ -76,7 +76,7 @@ dependencies = [
76
76
 
77
77
  [[package]]
78
78
  name = "sks-core"
79
- version = "1.10.0"
79
+ version = "1.11.0"
80
80
  dependencies = [
81
81
  "serde_json",
82
82
  ]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sks-core"
3
- version = "1.10.0"
3
+ version = "1.11.0"
4
4
  edition = "2021"
5
5
 
6
6
  [dependencies]
@@ -4,7 +4,7 @@ use std::io::{self, Read, Seek, SeekFrom};
4
4
  fn main() {
5
5
  let mut args = std::env::args().skip(1);
6
6
  match args.next().as_deref() {
7
- Some("--version") => println!("sks-rs 1.10.0"),
7
+ Some("--version") => println!("sks-rs 1.11.0"),
8
8
  Some("compact-info") => {
9
9
  let mut input = String::new();
10
10
  let _ = io::stdin().read_to_string(&mut input);
package/dist/bin/sks.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- const FAST_PACKAGE_VERSION = '1.10.0';
2
+ const FAST_PACKAGE_VERSION = '1.11.0';
3
3
  const args = process.argv.slice(2);
4
4
  try {
5
5
  if (args[0] === '--version' || args[0] === '-v' || args[0] === 'version') {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "sks.dist-build.v2",
3
- "version": "1.10.0",
3
+ "version": "1.11.0",
4
4
  "typescript": true,
5
5
  "mjs_runtime_files": 0,
6
6
  "files": [
@@ -232,6 +232,8 @@
232
232
  "core/commands/computer-use-command.js",
233
233
  "core/commands/db-command.d.ts",
234
234
  "core/commands/db-command.js",
235
+ "core/commands/dfix-command.d.ts",
236
+ "core/commands/dfix-command.js",
235
237
  "core/commands/eval-command.d.ts",
236
238
  "core/commands/eval-command.js",
237
239
  "core/commands/gc-command.d.ts",
@@ -302,6 +304,8 @@
302
304
  "core/decision-contract.js",
303
305
  "core/decision-lattice.d.ts",
304
306
  "core/decision-lattice.js",
307
+ "core/dfix.d.ts",
308
+ "core/dfix.js",
305
309
  "core/dogfood-loop.d.ts",
306
310
  "core/dogfood-loop.js",
307
311
  "core/effort-orchestrator.d.ts",
@@ -390,6 +394,8 @@
390
394
  "core/image-ux-review/recapture.js",
391
395
  "core/init.d.ts",
392
396
  "core/init.js",
397
+ "core/json-schema-validator.d.ts",
398
+ "core/json-schema-validator.js",
393
399
  "core/language-preference.d.ts",
394
400
  "core/language-preference.js",
395
401
  "core/loop-blocker.d.ts",
@@ -467,6 +473,24 @@
467
473
  "core/pipeline/stop-gate.js",
468
474
  "core/pipeline/validation.d.ts",
469
475
  "core/pipeline/validation.js",
476
+ "core/ppt-imagegen-review.d.ts",
477
+ "core/ppt-imagegen-review.js",
478
+ "core/ppt-review/deck-issue-ledger.d.ts",
479
+ "core/ppt-review/deck-issue-ledger.js",
480
+ "core/ppt-review/index.d.ts",
481
+ "core/ppt-review/index.js",
482
+ "core/ppt-review/ppt-fix-task-planner.d.ts",
483
+ "core/ppt-review/ppt-fix-task-planner.js",
484
+ "core/ppt-review/ppt-patch-handoff.d.ts",
485
+ "core/ppt-review/ppt-patch-handoff.js",
486
+ "core/ppt-review/reexport-rereview.d.ts",
487
+ "core/ppt-review/reexport-rereview.js",
488
+ "core/ppt-review/slide-exporter.d.ts",
489
+ "core/ppt-review/slide-exporter.js",
490
+ "core/ppt-review/slide-imagegen-review.d.ts",
491
+ "core/ppt-review/slide-imagegen-review.js",
492
+ "core/ppt-review/slide-issue-extraction.d.ts",
493
+ "core/ppt-review/slide-issue-extraction.js",
470
494
  "core/ppt.d.ts",
471
495
  "core/ppt.js",
472
496
  "core/prompt-context-builder.d.ts",
@@ -110,7 +110,7 @@ export const COMMANDS = {
110
110
  '$': entry('stable', 'Alias for dollar-commands', 'dist/core/commands/basic-cli.js', basicArgs('dollarCommandsCommand')),
111
111
  commit: entry('stable', 'Create a simple git commit', 'dist/commands/commit.js', directCommand(() => import('../commands/commit.js'), 'dist/commands/commit.js')),
112
112
  'commit-and-push': entry('stable', 'Create a simple git commit and push', 'dist/commands/commit-and-push.js', directCommand(() => import('../commands/commit-and-push.js'), 'dist/commands/commit-and-push.js')),
113
- dfix: entry('stable', 'Explain DFix route', 'dist/core/commands/basic-cli.js', basicNoArgs('dfixCommand')),
113
+ dfix: entry('stable', 'Run DFix diagnose/plan/patch/verify loop', 'dist/core/commands/dfix-command.js', commandArgsCommand(() => import('../core/commands/dfix-command.js'), 'dfixCommand', 'dist/core/commands/dfix-command.js')),
114
114
  team: entry('beta', 'Create and observe Team missions', 'dist/core/commands/team-command.js', argsCommand(() => import('../core/commands/team-command.js'), 'team', 'dist/core/commands/team-command.js')),
115
115
  'qa-loop': entry('beta', 'Run QA loop missions', 'dist/core/commands/qa-loop-command.js', subcommand(() => import('../core/commands/qa-loop-command.js'), 'qaLoopCommand', 'dist/core/commands/qa-loop-command.js')),
116
116
  research: entry('labs', 'Run research missions', 'dist/core/commands/research-command.js', subcommand(() => import('../core/commands/research-command.js'), 'researchCommand', 'dist/core/commands/research-command.js')),
@@ -5,7 +5,7 @@ import { exists, projectRoot, readJson, writeJsonAtomic } from '../core/fsx.js';
5
5
  import { CODEX_ACCESS_TOKENS_DOCS_URL } from '../core/codex-app.js';
6
6
  import { redactSecrets } from '../core/secret-redaction.js';
7
7
  import { evaluateHookPayload } from '../core/hooks-runtime.js';
8
- import { buildAllFeaturesSelftest, buildFeatureRegistry, validateFeatureRegistry, writeFeatureInventoryDocs } from '../core/feature-registry.js';
8
+ import { buildAllFeaturesSelftest, buildFeatureRegistry, validateFeatureRegistry, writeAllFeatureCompletionReport, writeFeatureInventoryDocs } from '../core/feature-registry.js';
9
9
  import { recordHookPolicyMismatchWrongness } from '../core/triwiki-wrongness/wrongness-ledger.js';
10
10
  import { codexSchemaSnapshotReport } from '../core/codex-compat/codex-schema-snapshot.js';
11
11
  import { validateCodexFixtureOutputs } from '../core/codex-compat/codex-hook-schema.js';
@@ -49,13 +49,36 @@ export async function featuresCommand(sub = 'list', args = []) {
49
49
  process.exitCode = 1;
50
50
  return;
51
51
  }
52
- console.error('Usage: sks features list|check|inventory [--json] [--write-docs]');
52
+ if (action === 'complete') {
53
+ const report = await writeAllFeatureCompletionReport({ root });
54
+ if (flag(args, '--json'))
55
+ console.log(JSON.stringify(report, null, 2));
56
+ else {
57
+ console.log(`All feature completion: ${report.status}`);
58
+ console.log(`Report: ${path.relative(root, report.files.json)}`);
59
+ }
60
+ if (!report.ok)
61
+ process.exitCode = 1;
62
+ return;
63
+ }
64
+ console.error('Usage: sks features list|check|inventory|complete [--json] [--write-docs]');
53
65
  process.exitCode = 1;
54
66
  }
55
67
  export async function allFeaturesCommand(sub = 'selftest', args = []) {
56
68
  const action = sub || 'selftest';
69
+ if (action === 'complete' || action === 'completion') {
70
+ const root = await projectRoot();
71
+ const report = await writeAllFeatureCompletionReport({ root });
72
+ if (flag(args, '--json'))
73
+ return console.log(JSON.stringify(report, null, 2));
74
+ console.log(`All feature completion: ${report.status}`);
75
+ console.log(`Report: ${path.relative(root, report.files.json)}`);
76
+ if (!report.ok)
77
+ process.exitCode = 1;
78
+ return;
79
+ }
57
80
  if (action !== 'selftest') {
58
- console.error('Usage: sks all-features selftest --mock [--execute-fixtures] [--json]');
81
+ console.error('Usage: sks all-features selftest|complete --mock [--execute-fixtures] [--json]');
59
82
  process.exitCode = 1;
60
83
  return;
61
84
  }
@@ -3,6 +3,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
3
3
  generated_at: string;
4
4
  tier: any;
5
5
  iterations: number;
6
+ warmup_iterations: number;
6
7
  budget_tiers: Readonly<{
7
8
  'source-local': {
8
9
  'sks --version': number;
@@ -10,7 +11,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
10
11
  'sks root --json': number;
11
12
  'sks commands --json': number;
12
13
  'sks proof validate --json': number;
13
- 'sks trust validate latest --json': number;
14
+ 'sks trust validate bench-fixture --json': number;
14
15
  'sks wiki image-validate --json': number;
15
16
  'sks features check --json': number;
16
17
  'sks scouts engines --json': number;
@@ -21,7 +22,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
21
22
  'sks root --json': number;
22
23
  'sks commands --json': number;
23
24
  'sks proof validate --json': number;
24
- 'sks trust validate latest --json': number;
25
+ 'sks trust validate bench-fixture --json': number;
25
26
  'sks wiki image-validate --json': number;
26
27
  'sks features check --json': number;
27
28
  'sks scouts engines --json': number;
@@ -32,7 +33,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
32
33
  'sks root --json': number;
33
34
  'sks commands --json': number;
34
35
  'sks proof validate --json': number;
35
- 'sks trust validate latest --json': number;
36
+ 'sks trust validate bench-fixture --json': number;
36
37
  'sks wiki image-validate --json': number;
37
38
  'sks features check --json': number;
38
39
  'sks scouts engines --json': number;
@@ -43,7 +44,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
43
44
  'sks root --json': number;
44
45
  'sks commands --json': number;
45
46
  'sks proof validate --json': number;
46
- 'sks trust validate latest --json': number;
47
+ 'sks trust validate bench-fixture --json': number;
47
48
  'sks wiki image-validate --json': number;
48
49
  'sks features check --json': number;
49
50
  'sks scouts engines --json': number;
@@ -54,7 +55,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
54
55
  'sks root --json': number;
55
56
  'sks commands --json': number;
56
57
  'sks proof validate --json': number;
57
- 'sks trust validate latest --json': number;
58
+ 'sks trust validate bench-fixture --json': number;
58
59
  'sks wiki image-validate --json': number;
59
60
  'sks features check --json': number;
60
61
  'sks scouts engines --json': number;
@@ -82,6 +83,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
82
83
  generated_at: string;
83
84
  tier: any;
84
85
  iterations: number;
86
+ warmup_iterations: number;
85
87
  budget_tiers: Readonly<{
86
88
  'source-local': {
87
89
  'sks --version': number;
@@ -89,7 +91,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
89
91
  'sks root --json': number;
90
92
  'sks commands --json': number;
91
93
  'sks proof validate --json': number;
92
- 'sks trust validate latest --json': number;
94
+ 'sks trust validate bench-fixture --json': number;
93
95
  'sks wiki image-validate --json': number;
94
96
  'sks features check --json': number;
95
97
  'sks scouts engines --json': number;
@@ -100,7 +102,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
100
102
  'sks root --json': number;
101
103
  'sks commands --json': number;
102
104
  'sks proof validate --json': number;
103
- 'sks trust validate latest --json': number;
105
+ 'sks trust validate bench-fixture --json': number;
104
106
  'sks wiki image-validate --json': number;
105
107
  'sks features check --json': number;
106
108
  'sks scouts engines --json': number;
@@ -111,7 +113,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
111
113
  'sks root --json': number;
112
114
  'sks commands --json': number;
113
115
  'sks proof validate --json': number;
114
- 'sks trust validate latest --json': number;
116
+ 'sks trust validate bench-fixture --json': number;
115
117
  'sks wiki image-validate --json': number;
116
118
  'sks features check --json': number;
117
119
  'sks scouts engines --json': number;
@@ -122,7 +124,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
122
124
  'sks root --json': number;
123
125
  'sks commands --json': number;
124
126
  'sks proof validate --json': number;
125
- 'sks trust validate latest --json': number;
127
+ 'sks trust validate bench-fixture --json': number;
126
128
  'sks wiki image-validate --json': number;
127
129
  'sks features check --json': number;
128
130
  'sks scouts engines --json': number;
@@ -133,7 +135,7 @@ export declare function run(_command: any, args?: any): Promise<void | {
133
135
  'sks root --json': number;
134
136
  'sks commands --json': number;
135
137
  'sks proof validate --json': number;
136
- 'sks trust validate latest --json': number;
138
+ 'sks trust validate bench-fixture --json': number;
137
139
  'sks wiki image-validate --json': number;
138
140
  'sks features check --json': number;
139
141
  'sks scouts engines --json': number;
@@ -1,2 +1,118 @@
1
- export declare function run(): Promise<void>;
1
+ export declare function run(command: any, args?: any): Promise<void | {
2
+ diagnosis: any;
3
+ root_cause: {
4
+ schema: string;
5
+ created_at: string;
6
+ root_cause_present: boolean;
7
+ root_cause: any;
8
+ evidence: string[];
9
+ confidence: number;
10
+ blockers: never[];
11
+ };
12
+ schema: string;
13
+ ok: boolean;
14
+ mission_id: any;
15
+ } | {
16
+ schema: string;
17
+ ok: boolean;
18
+ status: string;
19
+ } | {
20
+ schema: string;
21
+ ok: boolean;
22
+ mission_id: any;
23
+ patch_plan: {
24
+ schema: string;
25
+ created_at: string;
26
+ patch_plan_present: boolean;
27
+ mode: string;
28
+ target_file: any;
29
+ find_text_present: boolean;
30
+ replace_text_present: boolean;
31
+ root_cause: any;
32
+ safety: {
33
+ direct_fix_only: boolean;
34
+ destructive_operations_allowed: boolean;
35
+ unrequested_fallback_implementation_blocked: boolean;
36
+ rollback_required: boolean;
37
+ };
38
+ steps: string[];
39
+ blockers: string[];
40
+ passed: boolean;
41
+ };
42
+ } | {
43
+ schema: string;
44
+ ok: boolean;
45
+ mission_id: any;
46
+ patch_result: {
47
+ schema: string;
48
+ created_at: string;
49
+ explicit_apply_opt_in: boolean;
50
+ patch_result_present: boolean;
51
+ patch_applied: boolean;
52
+ changed_files: string[];
53
+ no_op_reason: string | null;
54
+ noop_patch_wrongness: boolean;
55
+ rollback_plan: {
56
+ file: string;
57
+ action: string;
58
+ }[];
59
+ blockers: string[];
60
+ passed: boolean;
61
+ };
62
+ } | {
63
+ schema: string;
64
+ ok: boolean;
65
+ mission_id: any;
66
+ rollback_plan: any;
67
+ } | {
68
+ schema: string;
69
+ ok: any;
70
+ mission_id: any;
71
+ gate: {
72
+ schema: string;
73
+ created_at: string;
74
+ diagnosis_present: boolean;
75
+ root_cause_present: boolean;
76
+ patch_plan_present: boolean;
77
+ patch_result_present: boolean;
78
+ verification_present: boolean;
79
+ rollback_plan_present: boolean;
80
+ noop_patch_wrongness: boolean;
81
+ mock_fixture: boolean;
82
+ blockers: any[];
83
+ passed: boolean;
84
+ };
85
+ proof: any;
86
+ } | {
87
+ schema: string;
88
+ ok: any;
89
+ mission_id: any;
90
+ artifacts: {
91
+ gate: {
92
+ schema: string;
93
+ created_at: string;
94
+ diagnosis_present: boolean;
95
+ root_cause_present: boolean;
96
+ patch_plan_present: boolean;
97
+ patch_result_present: boolean;
98
+ verification_present: boolean;
99
+ rollback_plan_present: boolean;
100
+ noop_patch_wrongness: boolean;
101
+ mock_fixture: boolean;
102
+ blockers: any[];
103
+ passed: boolean;
104
+ };
105
+ diagnosis: any;
106
+ root_cause: any;
107
+ patch_plan: any;
108
+ patch_result: any;
109
+ verification: any;
110
+ };
111
+ proof: any;
112
+ } | {
113
+ schema: string;
114
+ ok: boolean;
115
+ mission_id: any;
116
+ gate: any;
117
+ }>;
2
118
  //# sourceMappingURL=dfix.d.ts.map
@@ -1,3 +1,5 @@
1
- import { dfixCommand } from '../core/commands/basic-cli.js';
2
- export async function run() { return dfixCommand(); }
1
+ import { dfixCommand } from '../core/commands/dfix-command.js';
2
+ export async function run(command, args = []) {
3
+ return dfixCommand(args);
4
+ }
3
5
  //# sourceMappingURL=dfix.js.map