sneakoscope 1.21.5 → 1.21.7
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 +57 -124
- 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/.sks-build-stamp.json +4 -4
- package/dist/bin/sks.js +1 -1
- package/dist/build-manifest.json +13 -9
- package/dist/commands/doctor.js +8 -1
- package/dist/core/agents/native-cli-session-swarm.d.ts +10 -0
- package/dist/core/agents/native-cli-session-swarm.js +238 -1
- package/dist/core/agents/zellij-lane-supervisor.js +1 -1
- package/dist/core/codex/codex-0-136-compat.d.ts +83 -0
- package/dist/core/codex/codex-0-136-compat.js +230 -0
- package/dist/core/codex-compat/codex-compat-report.d.ts +162 -2
- package/dist/core/codex-compat/codex-compat-report.js +73 -5
- package/dist/core/codex-compat/codex-version-policy.d.ts +3 -3
- package/dist/core/codex-compat/codex-version-policy.js +3 -3
- package/dist/core/commands/team-command.js +6 -4
- package/dist/core/doctor/global-sks-install-cleanup.d.ts +46 -0
- package/dist/core/doctor/global-sks-install-cleanup.js +251 -0
- package/dist/core/fsx.d.ts +1 -1
- package/dist/core/fsx.js +3 -2
- package/dist/core/hooks-runtime.js +13 -8
- package/dist/core/proof/runtime-truth-matrix.d.ts +1 -1
- package/dist/core/proof/runtime-truth-matrix.js +4 -1
- package/dist/core/routes.js +1 -1
- package/dist/core/safety/mutation-guard.d.ts +2 -0
- package/dist/core/safety/mutation-guard.js +6 -1
- package/dist/core/update-check.d.ts +18 -0
- package/dist/core/update-check.js +111 -4
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/dist/core/zellij/zellij-clipboard-config.js +11 -14
- package/dist/core/zellij/zellij-lane-renderer.d.ts +20 -0
- package/dist/core/zellij/zellij-lane-renderer.js +222 -32
- package/dist/scripts/release-parallel-check.js +1 -0
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -16,78 +16,26 @@ Set up this agent project with Sneakoscope Codex. Use [[mandarange/Sneakoscope-C
|
|
|
16
16
|
|
|
17
17
|
## Current Release
|
|
18
18
|
|
|
19
|
-
SKS **1.21.
|
|
19
|
+
SKS **1.21.7** is a Zellij/Naruto runtime patch. Real Zellij workers now run as pane-bound native CLI sessions: SKS creates or targets the Zellij session, splits a named slot pane, launches the worker inside that pane, and reads `worker-result.json` plus heartbeat/log artifacts back in the parent scheduler.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
What changed:
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
- `--backend zellij --real` now uses real slot panes for worker sessions instead of only recording synthetic lane artifacts.
|
|
24
|
+
- Pane ids are reconciled from `zellij --session <name> action list-panes --json --all` when `new-pane` does not print one.
|
|
25
|
+
- The parent/worker transport is explicit: `worker-result.json`, `worker-heartbeat.jsonl`, `worker.stdout.log`, and `worker.stderr.log`.
|
|
26
|
+
- Zellij lane supervisor actions target the intended session with `--session`, so pane creation no longer depends on ambient terminal state.
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
SKS **1.20.1** introduces the **SKS Core Skill Engine** — a SkillOpt-style self-evolving skill layer — while locking the harness into a deploy-ready stable build. Skills are the agent's *external, versioned state* (Core Skill Cards): an optimizer proposes **bounded** add/delete/replace edits to a single skill document under a **textual edit budget**, edits are accepted **only on strict held-out improvement**, rejected edits are buffered so they are never retried, and the **deployed snapshot is immutable**. Critically, the optimizer runs only in training/evaluation — the **deployment/inference path reads the deployed snapshot and never makes an extra model call**, and a skill patch can never mutate code/config/package/global files.
|
|
28
|
-
|
|
29
|
-
1.20.1 also adds a **Requested-Scope Contract + Mutation Ledger** so SKS performs **no side effect the user did not request** (deny-by-default; global/destructive mutations require explicit `--yes`/env opt-in and a backup or no-op reason), and a **dynamic, risk-based release pipeline** (`release:gate-planner` builds `release-gates.json`; `release:check:dynamic` runs only P0 always-on gates plus gates whose files changed; `release:gate-budget` reports the slowest gates) so unrelated heavy gates are skipped during incremental checks while publish never skips a required gate.
|
|
30
|
-
|
|
31
|
-
It carries forward the 1.19.x hardening unchanged: legacy 1.18.x/1.19.x→1.20.1 **zero-break upgrade** (user `model`/`service_tier`/`model_reasoning_effort` and user-disabled Codex App flags never overwritten; existing skill cards preserved), the **migration transaction journal** (`.sneakoscope/reports/migration-1.20.1-journal.jsonl`), **Zellij launch-command truth** + real-session **heartbeat-timeout blocker** + the redesigned **Zellij lane UI**, **packlist/publish-performance** gates, a **postinstall safe-side-effects** gate, and the **TS source-of-truth / Rust optional-accelerator** boundary (publish never compiles Rust). `sks zellij status`/`repair` inspects the Zellij runtime without auto-installing anything.
|
|
28
|
+
Quick checks:
|
|
32
29
|
|
|
33
30
|
```bash
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
sks features complete --json
|
|
39
|
-
sks agent status latest --json
|
|
40
|
-
sks agent run "release review" --agents 8 --work-items 16 --concurrency 4 --mock --json
|
|
41
|
-
npm run source-intelligence:all-modes
|
|
42
|
-
npm run agent:background-terminals
|
|
31
|
+
npm run typecheck
|
|
32
|
+
npm run build
|
|
33
|
+
npm run agent:zellij-runtime
|
|
34
|
+
npm run zellij:layout-valid
|
|
43
35
|
npm run zellij:lane-renderer
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
npm run
|
|
47
|
-
npm run agent:cleanup-executor-v2
|
|
48
|
-
npm run retention:cleanup-safety
|
|
49
|
-
npm run agent:intelligent-work-graph
|
|
50
|
-
npm run agent:ast-aware-work-graph
|
|
51
|
-
npm run proof:fake-vs-real-policy
|
|
52
|
-
npm run proof:fake-real-policy-v2
|
|
53
|
-
npm run release:runtime-truth-matrix
|
|
54
|
-
npm run codex:0.134-official-compat
|
|
55
|
-
npm run codex:profile-primary
|
|
56
|
-
npm run codex:managed-proxy-env
|
|
57
|
-
npm run strategy:adhd-orchestrating-gate
|
|
58
|
-
npm run strategy:parallel-modification-plan
|
|
59
|
-
npm run appshots:evidence
|
|
60
|
-
npm run appshots:source-intelligence
|
|
61
|
-
npm run appshots:thread-attachment-discovery
|
|
62
|
-
npm run mcp:0.134-modernization
|
|
63
|
-
npm run mcp:readonly-runtime-scheduler
|
|
64
|
-
npm run codex:0.134-runner-truth
|
|
65
|
-
npm run source-intelligence:codex-history-search
|
|
66
|
-
npm run agent:parallel-write-kernel
|
|
67
|
-
npm run agent:patch-swarm-runtime-truth
|
|
68
|
-
npm run agent:patch-transaction-journal
|
|
69
|
-
npm run agent:patch-conflict-rebase
|
|
70
|
-
npm run agent:strategy-to-patch-strict
|
|
71
|
-
npm run agent:rollback-command
|
|
72
|
-
npm run agent:native-cli-session-swarm
|
|
73
|
-
npm run agent:native-cli-session-swarm-10
|
|
74
|
-
npm run agent:native-cli-session-swarm-20
|
|
75
|
-
npm run agent:no-subagent-scaling
|
|
76
|
-
npm run agent:native-cli-session-proof
|
|
77
|
-
npm run agent:fast-mode-default
|
|
78
|
-
npm run agent:fast-mode-worker-propagation
|
|
79
|
-
npm run codex:fast-mode-profile-propagation
|
|
80
|
-
npm run mad-sks:fast-mode-propagation
|
|
81
|
-
SKS_TEST_REAL_CODEX_PATCHES=1 npm run agent:real-codex-patch-envelope-smoke
|
|
82
|
-
npm run release:gate-existence-audit
|
|
83
|
-
npm run route:blackbox-realism
|
|
84
|
-
npm run release:real-check
|
|
85
|
-
npm run agent:backfill-route-blackbox
|
|
86
|
-
npm run team:actual-route-backfill
|
|
87
|
-
npm run release:readiness
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Detailed release history lives in [CHANGELOG.md](CHANGELOG.md); every version-facing change should be recorded there before release. Current release gate status lives in [docs/release-readiness.md](docs/release-readiness.md).
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Broader release checks still live behind `npm run release:check`. Detailed release history is in [CHANGELOG.md](CHANGELOG.md), and release readiness is tracked in [docs/release-readiness.md](docs/release-readiness.md).
|
|
91
39
|
|
|
92
40
|
## Parallelism, UX, And Integrations
|
|
93
41
|
|
|
@@ -98,9 +46,9 @@ Detailed release history lives in [CHANGELOG.md](CHANGELOG.md); every version-fa
|
|
|
98
46
|
SKS_NARUTO_MAX_CONCURRENCY=48 sks naruto run "sweep the test suite" --clones 48
|
|
99
47
|
```
|
|
100
48
|
|
|
101
|
-
- **Zellij
|
|
49
|
+
- **Zellij scrollback and copy.** SKS launches Codex panes with `--no-alt-screen`, so the terminal keeps the conversation transcript in scrollback. Zellij `mouse_mode` is off by default so normal mouse-drag text selection works for copy. Set `SKS_ZELLIJ_MOUSE_MODE=1` only when you prefer Zellij hover-pane wheel routing; in that mode some terminals require Shift-drag for native selection.
|
|
102
50
|
|
|
103
|
-
- **Live MAD / Naruto cockpit lanes.** `sks --mad` starts a same-mission native agent swarm and opens the right-pane cockpit against that ledger
|
|
51
|
+
- **Live MAD / Naruto cockpit lanes.** `sks --mad` starts a same-mission native agent swarm and opens the right-pane cockpit against that ledger. Lane panes follow per-slot worker artifacts such as `worker.stdout.log`, `worker.stderr.log`, and `worker-heartbeat.jsonl`, so fan-out work shows as live worker status instead of a static "Workers idle" panel. Tune MAD fan-out with `--mad-agents`, `--mad-swarm-work-items`, and `--mad-swarm-backend`; use `--no-mad-swarm` only when you intentionally want the old UI-only launch. Each Zellij lane has per-slot SKS state, a nonblocking JSONL command bus, dynamic pane-id reconciliation from `zellij action list-panes --json --all`, and `nice`/dispatch-throttle metadata. If a lane's own mission ledger is idle, the renderer can mirror the most-recent active agent mission; disable that follow behavior with `SKS_LANE_FOLLOW_ACTIVE_MISSION=0`.
|
|
104
52
|
|
|
105
53
|
- **Image generation under codex-lb.** `gpt-image-2` routes through the same Codex `/responses` backend the load balancer already proxies, so `$imagegen` works when you are authenticated only through codex-lb (no direct `OPENAI_API_KEY`). The official Codex App `$imagegen` surface stays primary; the codex-lb/OpenAI API path is the fallback. Opt out with `SKS_IMAGEGEN_ALLOW_CODEX_LB_API_FALLBACK=0`.
|
|
106
54
|
|
|
@@ -113,7 +61,7 @@ Detailed release history lives in [CHANGELOG.md](CHANGELOG.md); every version-fa
|
|
|
113
61
|
sks xai docs
|
|
114
62
|
```
|
|
115
63
|
|
|
116
|
-
- **Quieter update prompts.** The "update available" choice is shown once per conversation and then stays quiet for a short window (default 8 min, `SKS_UPDATE_OFFER_THROTTLE_MS`) instead of repeating on every prompt.
|
|
64
|
+
- **Quieter update prompts.** The "update available" choice is shown once per conversation and then stays quiet for a short window (default 8 min, `SKS_UPDATE_OFFER_THROTTLE_MS`) instead of repeating on every prompt. The check compares npm latest against source metadata, PATH `sks --version`, and the global npm package, so a completed `npm i -g sneakoscope` clears stale pending/accepted offers.
|
|
117
65
|
|
|
118
66
|
## Retention And Cleanup
|
|
119
67
|
|
|
@@ -216,9 +164,9 @@ sks rust smoke --json
|
|
|
216
164
|
2. Image Voxel TriWiki anchors and relations for every visual route
|
|
217
165
|
3. Route contracts, evidence indexes, wrongness memory, trust reports, Codex App, codex-lb, hooks, Rust fallback parity, DB, route modularity, and generated fixtures verified by release gates
|
|
218
166
|
|
|
219
|
-
## Install
|
|
167
|
+
## Install
|
|
220
168
|
|
|
221
|
-
Recommended
|
|
169
|
+
Recommended path:
|
|
222
170
|
|
|
223
171
|
```sh
|
|
224
172
|
npm i -g sneakoscope
|
|
@@ -226,22 +174,32 @@ sks root
|
|
|
226
174
|
sks doctor
|
|
227
175
|
```
|
|
228
176
|
|
|
229
|
-
|
|
177
|
+
The global npm install refreshes the `sks` command shim, generated Codex App `$` skills, and the SKS bootstrap surface together. If a project marker is present, postinstall bootstraps that project; otherwise SKS uses the per-user global runtime root. `sks root` shows the active root.
|
|
230
178
|
|
|
231
|
-
|
|
179
|
+
One-shot run without keeping a global install:
|
|
232
180
|
|
|
233
181
|
```sh
|
|
234
182
|
npx -y -p sneakoscope sks root
|
|
235
183
|
```
|
|
236
184
|
|
|
237
|
-
|
|
185
|
+
Project-pinned install:
|
|
238
186
|
|
|
239
187
|
```sh
|
|
240
188
|
npm i -D sneakoscope
|
|
241
189
|
npx sks setup --install-scope project
|
|
242
190
|
```
|
|
243
191
|
|
|
244
|
-
|
|
192
|
+
Source checkout for developing Sneakoscope itself:
|
|
193
|
+
|
|
194
|
+
```sh
|
|
195
|
+
git clone https://github.com/mandarange/Sneakoscope-Codex.git
|
|
196
|
+
cd Sneakoscope-Codex
|
|
197
|
+
npm install
|
|
198
|
+
npm install -g .
|
|
199
|
+
sks --version
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Install health checks:
|
|
245
203
|
|
|
246
204
|
```sh
|
|
247
205
|
sks deps check
|
|
@@ -283,56 +241,10 @@ brew install zellij
|
|
|
283
241
|
|
|
284
242
|
The default `sks` runtime checks npm for newer `sneakoscope` and `@openai/codex` versions before opening the interactive runtime. `npm i -g sneakoscope` runs a safe bootstrap/readiness pass; use `sks bootstrap --yes`, `sks deps check --yes`, or `sks --mad --yes` to install or repair Codex CLI/Zellij when Homebrew is available. `sks --mad` requires Zellij for interactive MAD/lane UI and prints the session, gate, attach command, blockers, and labeled Zellij stderr/stdout details needed to act.
|
|
285
243
|
|
|
286
|
-
## Installation
|
|
287
|
-
|
|
288
|
-
### Global Install
|
|
289
|
-
|
|
290
|
-
Use this recommended path when you want `sks` available from any repo:
|
|
291
|
-
|
|
292
|
-
```sh
|
|
293
|
-
npm i -g sneakoscope
|
|
294
|
-
sks root
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
`sks` commands work even when no project root is present. Project-aware commands use the nearest `.sneakoscope`, `.dcodex`, or `.git` root; if none exists, SKS uses a per-user global runtime root. Global npm install/upgrade automatically bootstraps the current project when a project marker is present, otherwise it bootstraps the global runtime root. Run `sks bootstrap` manually only when you intentionally want to initialize or repair the current project after install.
|
|
298
|
-
|
|
299
244
|
Project setup writes shared `.gitignore` entries for generated SKS files: `.sneakoscope/`, `.codex/`, `.agents/`, and managed `AGENTS.md`. Setup, doctor repair, and npm postinstall refreshes also compare the previous SKS generated-file manifest with the current package templates and prune stale SKS-generated legacy skills or agent files while preserving user-owned custom skills. Use `sks setup --local-only` when you want those excludes kept only in `.git/info/exclude`.
|
|
300
245
|
|
|
301
246
|
During npm postinstall, SKS installs generated Codex App skills and tries `skills add MohtashamMurshid/getdesign` when the `skills` CLI is available. Design work still flows through one authority: `design.md`.
|
|
302
247
|
|
|
303
|
-
### One-Shot Install
|
|
304
|
-
|
|
305
|
-
Use this when you do not want to keep a global install:
|
|
306
|
-
|
|
307
|
-
```sh
|
|
308
|
-
npx -y -p sneakoscope sks bootstrap
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
`npx` fetches the package into npm's cache and runs the binary for that command. This is useful for first-time setup or CI-style verification.
|
|
312
|
-
|
|
313
|
-
### Project Install
|
|
314
|
-
|
|
315
|
-
Use this when a repo should pin Sneakoscope as a development dependency:
|
|
316
|
-
|
|
317
|
-
```sh
|
|
318
|
-
npm i -D sneakoscope
|
|
319
|
-
npx sks setup --install-scope project
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
Project installs are useful when a team wants a repeatable harness version checked through `package-lock.json`.
|
|
323
|
-
|
|
324
|
-
### Source Checkout
|
|
325
|
-
|
|
326
|
-
Use this when developing Sneakoscope itself:
|
|
327
|
-
|
|
328
|
-
```sh
|
|
329
|
-
git clone https://github.com/mandarange/Sneakoscope-Codex.git
|
|
330
|
-
cd Sneakoscope-Codex
|
|
331
|
-
npm install
|
|
332
|
-
npm install -g .
|
|
333
|
-
sks --version
|
|
334
|
-
```
|
|
335
|
-
|
|
336
248
|
## Terminal CLI Usage
|
|
337
249
|
|
|
338
250
|
Use terminal commands when you want to inspect, set up, verify, or start a CLI-first workspace.
|
|
@@ -687,13 +599,25 @@ By default, SKS favors inspection, local files, branch-safe changes, explicit co
|
|
|
687
599
|
### `sks` points to an old version
|
|
688
600
|
|
|
689
601
|
```sh
|
|
690
|
-
which sks
|
|
602
|
+
which -a sks
|
|
691
603
|
sks --version
|
|
692
604
|
node ./dist/bin/sks.js --version
|
|
605
|
+
npm ls -g sneakoscope --depth=0
|
|
693
606
|
npm install -g .
|
|
607
|
+
sks doctor --fix
|
|
694
608
|
```
|
|
695
609
|
|
|
696
|
-
If
|
|
610
|
+
If PATH or npm has duplicate global installs, `sks doctor --fix` keeps one global npm install and removes duplicate global `sneakoscope` installs. The Sneakoscope source checkout is exempt so local development files are not removed.
|
|
611
|
+
|
|
612
|
+
### SKS keeps asking to update after a global update
|
|
613
|
+
|
|
614
|
+
```sh
|
|
615
|
+
sks update-check --json
|
|
616
|
+
npm ls -g sneakoscope --depth=0
|
|
617
|
+
sks doctor --fix
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
Update prompts compare npm latest against the effective installed version from source metadata, PATH `sks --version`, and global npm package metadata. If a global update succeeded but an old shim remains earlier on PATH, `sks doctor --fix` can remove duplicate global installs and refresh the managed setup.
|
|
697
621
|
|
|
698
622
|
### Zellij is missing
|
|
699
623
|
|
|
@@ -704,6 +628,15 @@ npm run zellij:capability
|
|
|
704
628
|
|
|
705
629
|
Install Zellij from [zellij.dev](https://zellij.dev/documentation/installation.html), then run `npm run zellij:capability` or `sks doctor --json`. Without Zellij, non-interactive checks can continue, but `sks --mad` and interactive lane UI report `mad_ready: false`.
|
|
706
630
|
|
|
631
|
+
### Zellij copy or right lanes feel wrong
|
|
632
|
+
|
|
633
|
+
```sh
|
|
634
|
+
sks team open-zellij latest
|
|
635
|
+
sks zellij status
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
Normal mouse-drag copy is the default because SKS launches Zellij with `mouse_mode=false`. Conversation scrollback is still preserved by Codex `--no-alt-screen`. If you prefer Zellij hover-pane wheel routing, launch with `SKS_ZELLIJ_MOUSE_MODE=1`; use Shift-drag if your terminal then captures selection differently. Right lanes are renderer panes that follow SKS worker artifacts, so live native-agent output is shown from per-slot `worker.stdout.log`, `worker.stderr.log`, and `worker-heartbeat.jsonl`.
|
|
639
|
+
|
|
707
640
|
### Codex App tools are missing
|
|
708
641
|
|
|
709
642
|
```sh
|
|
@@ -763,7 +696,7 @@ npm run release:check
|
|
|
763
696
|
npm run publish:dry
|
|
764
697
|
```
|
|
765
698
|
|
|
766
|
-
`release:check` runs the current 1.
|
|
699
|
+
`release:check` runs the current 1.21.x release-closure DAG, writes a source digest stamp under `.sneakoscope/reports/`, then refreshes release readiness so publish commands can verify the same stamp. The DAG preserves the 1.18 baseline gates and adds Codex 0.136 compatibility, inherited Codex 0.135/0.134 runner truth, patch swarm runtime truth, transaction journaling, serial conflict rebase, strict strategy-to-patch proof, rollback command proof, Native CLI Session Swarm 5/10/20-process proof, Real Worker Backend Router proof, Codex child overlap proof, model-authored patch-envelope separation, Zellij layout/pane/screen/socket-dir proof, no-subagent-scaling proof, Fast mode default/worker/Codex/MAD propagation proof, Appshots attachment provenance, MCP runtime overlap evidence, task graph expansion, schema-bound follow-up work, actual Agent/Team/Research/QA route blackboxes, scheduler proof hardening, Source Intelligence propagation, and Goal mode propagation checks. Broader live gates remain explicit scripts such as `release:real-check`; real Codex patch smoke, real Codex parallel worker proof, and real Zellij proof are optional unless their `SKS_REQUIRE_REAL_*` or `SKS_REQUIRE_ZELLIJ=1` environment variables are set. Generate the human-readable registry with `sks features inventory --write-docs`. Plain `npm publish` uses the `latest` dist-tag. npm's `prepublishOnly` verifies the fresh release stamp instead of rerunning the full gate, and `prepack` only rebuilds `dist`; publish no longer repeats the expensive release suite during packaging. `npm run publish:dry` remains the explicit dry-run helper.
|
|
767
700
|
|
|
768
701
|
Version bumps are manual. Run `sks versioning bump` only when preparing release metadata; SKS will not create `.git/hooks/pre-commit` or auto-bump during ordinary commits.
|
|
769
702
|
|
|
@@ -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.21.
|
|
7
|
+
Some("--version") => println!("sks-rs 1.21.7"),
|
|
8
8
|
Some("compact-info") => {
|
|
9
9
|
let mut input = String::new();
|
|
10
10
|
let _ = io::stdin().read_to_string(&mut input);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "sks.dist-build-stamp.v1",
|
|
3
3
|
"package_name": "sneakoscope",
|
|
4
|
-
"package_version": "1.21.
|
|
5
|
-
"source_digest": "
|
|
6
|
-
"source_file_count":
|
|
7
|
-
"built_at_source_time":
|
|
4
|
+
"package_version": "1.21.7",
|
|
5
|
+
"source_digest": "2c5c05c578c385f3e186f4e94b7387c6122093fbba7235ad2c009d4803e1d6b4",
|
|
6
|
+
"source_file_count": 1771,
|
|
7
|
+
"built_at_source_time": 1780395828537
|
|
8
8
|
}
|
package/dist/bin/sks.js
CHANGED
package/dist/build-manifest.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "sks.dist-build.v2",
|
|
3
|
-
"version": "1.21.
|
|
4
|
-
"package_version": "1.21.
|
|
3
|
+
"version": "1.21.7",
|
|
4
|
+
"package_version": "1.21.7",
|
|
5
5
|
"typescript": true,
|
|
6
6
|
"mjs_runtime_files": 0,
|
|
7
|
-
"compiled_file_count":
|
|
8
|
-
"compiled_js_count":
|
|
9
|
-
"compiled_dts_count":
|
|
10
|
-
"source_digest": "
|
|
11
|
-
"source_file_count":
|
|
12
|
-
"source_files_hash": "
|
|
13
|
-
"source_list_hash": "
|
|
7
|
+
"compiled_file_count": 1032,
|
|
8
|
+
"compiled_js_count": 516,
|
|
9
|
+
"compiled_dts_count": 516,
|
|
10
|
+
"source_digest": "2c5c05c578c385f3e186f4e94b7387c6122093fbba7235ad2c009d4803e1d6b4",
|
|
11
|
+
"source_file_count": 1771,
|
|
12
|
+
"source_files_hash": "1f79c92a7165654f5ae190c1719e7e8ec89337ed8f265c7a68242ef613848f19",
|
|
13
|
+
"source_list_hash": "1f79c92a7165654f5ae190c1719e7e8ec89337ed8f265c7a68242ef613848f19",
|
|
14
14
|
"src_mjs_runtime_files": 0,
|
|
15
15
|
"dist_stamp_schema": "sks.dist-build-stamp.v1",
|
|
16
16
|
"files": [
|
|
@@ -404,6 +404,8 @@
|
|
|
404
404
|
"core/codex/codex-0-134-compat.js",
|
|
405
405
|
"core/codex/codex-0-135-compat.d.ts",
|
|
406
406
|
"core/codex/codex-0-135-compat.js",
|
|
407
|
+
"core/codex/codex-0-136-compat.d.ts",
|
|
408
|
+
"core/codex/codex-0-136-compat.js",
|
|
407
409
|
"core/codex/codex-cli-syntax-builder.d.ts",
|
|
408
410
|
"core/codex/codex-cli-syntax-builder.js",
|
|
409
411
|
"core/codex/codex-config-eperm-repair.d.ts",
|
|
@@ -540,6 +542,8 @@
|
|
|
540
542
|
"core/doctor/codex-doctor-bridge.js",
|
|
541
543
|
"core/doctor/doctor-readiness-matrix.d.ts",
|
|
542
544
|
"core/doctor/doctor-readiness-matrix.js",
|
|
545
|
+
"core/doctor/global-sks-install-cleanup.d.ts",
|
|
546
|
+
"core/doctor/global-sks-install-cleanup.js",
|
|
543
547
|
"core/doctor/macos-tcc-diagnostic.d.ts",
|
|
544
548
|
"core/doctor/macos-tcc-diagnostic.js",
|
|
545
549
|
"core/dogfood-loop.d.ts",
|
package/dist/commands/doctor.js
CHANGED
|
@@ -11,6 +11,7 @@ import { inspectCodexConfigReadability } from '../core/codex/codex-config-readab
|
|
|
11
11
|
import { repairCodexConfigEperm } from '../core/codex/codex-config-eperm-repair.js';
|
|
12
12
|
import { writeDoctorReadinessMatrix } from '../core/doctor/doctor-readiness-matrix.js';
|
|
13
13
|
import { runCodexDoctorBridge, compareCodexDoctorBridge } from '../core/doctor/codex-doctor-bridge.js';
|
|
14
|
+
import { cleanDuplicateGlobalSksInstalls } from '../core/doctor/global-sks-install-cleanup.js';
|
|
14
15
|
import { checkZellijCapability } from '../core/zellij/zellij-capability.js';
|
|
15
16
|
import { inventoryCodexPermissionProfiles } from '../core/codex/codex-permission-profiles.js';
|
|
16
17
|
import { appendMigrationEvents, hashConfigText } from '../core/migration/migration-transaction-journal.js';
|
|
@@ -76,6 +77,9 @@ export async function run(_command, args = []) {
|
|
|
76
77
|
const codexLb = codexLbMetrics(await readCodexLbCircuit(root).catch(() => ({})));
|
|
77
78
|
const zellij = await checkZellijCapability({ root, require: process.env.SKS_REQUIRE_ZELLIJ === '1' });
|
|
78
79
|
const permissionProfiles = await inventoryCodexPermissionProfiles(root, { writeReport: true });
|
|
80
|
+
const globalSksInstallCleanup = flag(args, '--fix') && !flag(args, '--local-only')
|
|
81
|
+
? await cleanDuplicateGlobalSksInstalls({ root, fix: true }).catch((err) => ({ schema: 'sks.global-sks-install-cleanup.v1', ok: false, fix: true, error: err?.message || String(err), blockers: ['global_sks_install_cleanup_exception'] }))
|
|
82
|
+
: null;
|
|
79
83
|
const { detectImagegenCapability } = await import('../core/imagegen/imagegen-capability.js');
|
|
80
84
|
const imagegen = await detectImagegenCapability({ codexBin: codexBin || undefined }).catch((err) => ({ ok: false, error: err.message, auth_readiness: null }));
|
|
81
85
|
const pkgBytes = await dirSize(root).catch(() => 0);
|
|
@@ -118,7 +122,7 @@ export async function run(_command, args = []) {
|
|
|
118
122
|
ready,
|
|
119
123
|
sneakoscope: { ok: await exists(`${root}/.sneakoscope`) },
|
|
120
124
|
package: { bytes: pkgBytes, human: formatBytes(pkgBytes) },
|
|
121
|
-
repair: { setup: setupRepair, codex_config: configRepair, migration_journal: migrationJournal }
|
|
125
|
+
repair: { setup: setupRepair, codex_config: configRepair, migration_journal: migrationJournal, global_sks_installs: globalSksInstallCleanup }
|
|
122
126
|
};
|
|
123
127
|
if (flag(args, '--json')) {
|
|
124
128
|
printJson(result);
|
|
@@ -172,6 +176,9 @@ export async function run(_command, args = []) {
|
|
|
172
176
|
if (migrationJournal?.journal_path) {
|
|
173
177
|
console.log(`Migration journal: ${migrationJournal.journal_path} (${migrationJournal.event_count} events, ${migrationJournal.mutations_without_rollback} without rollback)`);
|
|
174
178
|
}
|
|
179
|
+
if (globalSksInstallCleanup) {
|
|
180
|
+
console.log(`Global SKS installs: kept ${globalSksInstallCleanup.kept?.length ?? 0}, removed ${globalSksInstallCleanup.removed?.filter((entry) => entry.ok).length ?? 0}, source repo exempt ${globalSksInstallCleanup.candidates?.filter((entry) => entry.source_repo_exempt).length ?? 0}`);
|
|
181
|
+
}
|
|
175
182
|
if (!ready.ready && ready.next_actions?.length) {
|
|
176
183
|
console.log('What still needs you:');
|
|
177
184
|
for (const action of ready.next_actions)
|
|
@@ -15,6 +15,7 @@ declare class NativeCliSessionSwarmRecorder {
|
|
|
15
15
|
private active;
|
|
16
16
|
private maxObserved;
|
|
17
17
|
private writeLock;
|
|
18
|
+
private nextPaneToken;
|
|
18
19
|
constructor(root: string, input: {
|
|
19
20
|
missionId: string;
|
|
20
21
|
requestedAgents: number;
|
|
@@ -29,6 +30,7 @@ declare class NativeCliSessionSwarmRecorder {
|
|
|
29
30
|
slice: any;
|
|
30
31
|
opts: any;
|
|
31
32
|
}): Promise<import("./agent-schema.js").AgentRunnerResult>;
|
|
33
|
+
private launchWorkerInZellijPane;
|
|
32
34
|
finalize(): Promise<{
|
|
33
35
|
schema: string;
|
|
34
36
|
generated_at: string;
|
|
@@ -37,6 +39,7 @@ declare class NativeCliSessionSwarmRecorder {
|
|
|
37
39
|
route: string;
|
|
38
40
|
backend: string;
|
|
39
41
|
scaling_primitive: string;
|
|
42
|
+
zellij_pane_worker_sessions: number;
|
|
40
43
|
requested_agents: number;
|
|
41
44
|
target_active_slots: number;
|
|
42
45
|
spawned_worker_process_count: number;
|
|
@@ -60,5 +63,12 @@ declare class NativeCliSessionSwarmRecorder {
|
|
|
60
63
|
private persist;
|
|
61
64
|
private summary;
|
|
62
65
|
}
|
|
66
|
+
export declare function buildPaneWorkerCommand(input: {
|
|
67
|
+
args: string[];
|
|
68
|
+
stdoutPath: string;
|
|
69
|
+
stderrPath: string;
|
|
70
|
+
heartbeatPath: string;
|
|
71
|
+
env: Record<string, unknown>;
|
|
72
|
+
}): string;
|
|
63
73
|
export {};
|
|
64
74
|
//# sourceMappingURL=native-cli-session-swarm.d.ts.map
|