sneakoscope 2.0.9 → 2.0.11
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 +8 -4
- 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 +37 -8
- package/dist/cli/command-registry.js +2 -0
- package/dist/cli/install-helpers.js +8 -20
- package/dist/commands/doctor.js +23 -10
- package/dist/commands/zellij-slot-column-anchor.js +23 -0
- package/dist/commands/zellij-slot-pane.js +26 -0
- package/dist/core/agents/agent-orchestrator.js +255 -16
- package/dist/core/agents/agent-patch-schema.js +8 -1
- package/dist/core/agents/agent-role-config.js +92 -0
- package/dist/core/agents/native-cli-session-swarm.js +186 -71
- package/dist/core/commands/naruto-command.js +165 -11
- package/dist/core/doctor/doctor-readiness-matrix.js +6 -0
- package/dist/core/fsx.js +1 -1
- package/dist/core/git/git-worktree-checkpoint.js +52 -0
- package/dist/core/git/git-worktree-cross-rebase.js +54 -0
- package/dist/core/git/git-worktree-merge-queue.js +69 -0
- package/dist/core/git/git-worktree-patch-envelope.js +8 -1
- package/dist/core/hooks-runtime.js +4 -0
- package/dist/core/init.js +3 -2
- package/dist/core/naruto/naruto-active-pool.js +35 -2
- package/dist/core/naruto/naruto-allocation-policy.js +99 -0
- package/dist/core/naruto/naruto-concurrency-governor.js +1 -1
- package/dist/core/naruto/naruto-real-worker-child.js +134 -0
- package/dist/core/naruto/naruto-real-worker-runtime.js +121 -0
- package/dist/core/naruto/naruto-rebalance-policy.js +36 -0
- package/dist/core/naruto/naruto-task-hints.js +71 -0
- package/dist/core/pipeline/finalize-pipeline-result.js +3 -1
- package/dist/core/pipeline/gpt-final-required.js +22 -2
- package/dist/core/version.js +1 -1
- package/dist/core/zellij/zellij-right-column-manager.js +111 -9
- package/dist/core/zellij/zellij-slot-column-anchor.js +59 -0
- package/dist/core/zellij/zellij-slot-pane-renderer.js +82 -0
- package/dist/core/zellij/zellij-ui-mode.js +16 -0
- package/dist/core/zellij/zellij-worker-pane-manager.js +104 -13
- package/dist/scripts/agent-role-config-repair-check.js +33 -0
- package/dist/scripts/git-worktree-checkpoint-check.js +20 -0
- package/dist/scripts/git-worktree-cross-rebase-check.js +27 -0
- package/dist/scripts/git-worktree-integration-primary-check.js +4 -2
- package/dist/scripts/git-worktree-integration-primary-runtime-check.js +20 -0
- package/dist/scripts/mutation-callsite-coverage-check.js +2 -1
- package/dist/scripts/naruto-actual-worker-control-plane-check.js +29 -0
- package/dist/scripts/naruto-allocation-policy-check.js +33 -0
- package/dist/scripts/naruto-extreme-parallelism-check.js +1 -1
- package/dist/scripts/naruto-extreme-parallelism-real-check.js +43 -0
- package/dist/scripts/naruto-orchestrator-runtime-source-check.js +11 -0
- package/dist/scripts/naruto-real-active-pool-check.js +3 -2
- package/dist/scripts/naruto-real-active-pool-runtime-check.js +55 -0
- package/dist/scripts/naruto-rebalance-policy-check.js +28 -0
- package/dist/scripts/naruto-shadow-clone-swarm-check.js +7 -3
- package/dist/scripts/naruto-zellij-dynamic-right-column-check.js +29 -2
- package/dist/scripts/readme-architecture-imagegen-official-check.js +4 -3
- package/dist/scripts/release-check-dynamic-execute.js +27 -1
- package/dist/scripts/release-check-dynamic.js +38 -11
- package/dist/scripts/release-check-stamp.js +7 -2
- package/dist/scripts/release-dag-full-coverage-check.js +15 -1
- package/dist/scripts/release-dynamic-performance-check.js +31 -1
- package/dist/scripts/release-gate-existence-audit.js +29 -33
- package/dist/scripts/release-readiness-report.js +14 -3
- package/dist/scripts/zellij-first-slot-down-stack-check.js +20 -0
- package/dist/scripts/zellij-first-slot-down-stack-real-check.js +16 -0
- package/dist/scripts/zellij-right-column-geometry-proof.js +155 -22
- package/dist/scripts/zellij-right-column-headless-overflow-check.js +22 -0
- package/dist/scripts/zellij-right-column-manager-check.js +9 -4
- package/dist/scripts/zellij-slot-column-anchor-check.js +24 -0
- package/dist/scripts/zellij-slot-only-ui-check.js +24 -0
- package/dist/scripts/zellij-slot-pane-renderer-check.js +38 -0
- package/dist/scripts/zellij-worker-pane-manager-single-owner-check.js +11 -4
- package/package.json +22 -5
package/README.md
CHANGED
|
@@ -16,15 +16,19 @@ Set up this agent project with Sneakoscope Codex. Use [[mandarange/Sneakoscope-C
|
|
|
16
16
|
|
|
17
17
|
## Current Release
|
|
18
18
|
|
|
19
|
-
SKS **2.0.
|
|
19
|
+
SKS **2.0.11** is the slot-only Zellij and Naruto runtime stabilization release. Compact slot panes are now the default visual worker surface, the initial Zellij session stays main-only until the first visible worker is reserved, overflow workers continue headlessly with runtime evidence instead of opening excess panes, and dashboard panes stay opt-in. The release path remains manifest-backed through the v2 DAG runner, with real Zellij/Naruto/worktree proof gates split into `real-check`.
|
|
20
20
|
|
|
21
21
|
What changed:
|
|
22
22
|
|
|
23
|
+
- Zellij slot panes render compact worker slots without nested dashboard chrome, and right-column state records visible panes plus headless overflow lifecycle.
|
|
24
|
+
- Naruto active-pool checks now exercise real child-worker spawn/result collection paths, including high-fanout overflow and completed-worker collection order.
|
|
25
|
+
- Visible Zellij reservations are capped before pane launch so concurrent worker starts cannot over-open the right column.
|
|
26
|
+
- Git worktree integration now proves the primary repo receives validated worktree diffs, with rollback hash evidence recorded around the apply step.
|
|
27
|
+
- Agent role config repair detects stale generated role files and rewrites structured GPT-5.5-compatible configs atomically.
|
|
28
|
+
- Release gates now include slot-only UI, compact slot renderer, headless overflow, role-config repair, worktree primary-runtime, real active-pool, extreme real parallelism, and real right-column geometry checks.
|
|
29
|
+
- Release audit, dynamic selection, and stamp hashing use `release-gates.v2.json` as the manifest source of truth.
|
|
23
30
|
- Git capability checks detect repo roots, Git dirs, worktree support, and safe cache roots while blocking in-repo worktree roots unless `SKS_ALLOW_IN_REPO_WORKTREES=1` is explicit.
|
|
24
31
|
- Worker worktree allocation creates isolated branches/paths under `$SKS_WORKTREE_ROOT`, `$XDG_CACHE_HOME/sks/worktrees`, or `~/.cache/sks/worktrees`; main checkouts stay untouched until integration.
|
|
25
|
-
- Worktree diff export records status, changed files, full-index binary diffs, and `git-worktree-diff` patch envelopes for parent-owned integration.
|
|
26
|
-
- Integration worktrees apply worker diffs with `git apply --3way`, while cleanup removes only clean worktrees and retains dirty ones with a lock artifact.
|
|
27
|
-
- Naruto work graphs, active-pool artifacts, Zellij dashboard titles, native worker intake, and GPT Final packs now carry worktree policy and WT/branch context.
|
|
28
32
|
- Product Design plugin readiness now checks both local and remote Codex App catalogs, auto-installs the remote plugin when needed, and records the installed/enabled skill surface.
|
|
29
33
|
- UI/design/PPT runtime routes prefer Product Design for research, ideation, audit, design QA, prototype, URL-to-code, image-to-code, share, and user-context steps.
|
|
30
34
|
- Naruto read-only runs force write mode off, propagate no-patch reasons through worker proof, and skip changed-file lease checks when no write-capable patch envelope exists.
|
|
@@ -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 2.0.
|
|
7
|
+
Some("--version") => println!("sks-rs 2.0.11"),
|
|
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": "2.0.
|
|
5
|
-
"source_digest": "
|
|
6
|
-
"source_file_count":
|
|
7
|
-
"built_at_source_time":
|
|
4
|
+
"package_version": "2.0.11",
|
|
5
|
+
"source_digest": "7f7339938c95fb98e1fb072192115eb0ca8cbc8136800d007b85d51fe413de19",
|
|
6
|
+
"source_file_count": 2046,
|
|
7
|
+
"built_at_source_time": 1780821479881
|
|
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": "2.0.
|
|
4
|
-
"package_version": "2.0.
|
|
3
|
+
"version": "2.0.11",
|
|
4
|
+
"package_version": "2.0.11",
|
|
5
5
|
"typescript": true,
|
|
6
6
|
"mjs_runtime_files": 0,
|
|
7
|
-
"compiled_file_count":
|
|
8
|
-
"compiled_js_count":
|
|
7
|
+
"compiled_file_count": 1108,
|
|
8
|
+
"compiled_js_count": 1108,
|
|
9
9
|
"compiled_dts_count": 0,
|
|
10
|
-
"source_digest": "
|
|
11
|
-
"source_file_count":
|
|
12
|
-
"source_files_hash": "
|
|
13
|
-
"source_list_hash": "
|
|
10
|
+
"source_digest": "7f7339938c95fb98e1fb072192115eb0ca8cbc8136800d007b85d51fe413de19",
|
|
11
|
+
"source_file_count": 2046,
|
|
12
|
+
"source_files_hash": "b94b6d01c22138f134b831e0e793a981744316d3e78bf457e00d81cadd9d5c07",
|
|
13
|
+
"source_list_hash": "b94b6d01c22138f134b831e0e793a981744316d3e78bf457e00d81cadd9d5c07",
|
|
14
14
|
"src_mjs_runtime_files": 0,
|
|
15
15
|
"dist_stamp_schema": "sks.dist-build-stamp.v1",
|
|
16
16
|
"files": [
|
|
@@ -101,6 +101,8 @@
|
|
|
101
101
|
"commands/versioning.js",
|
|
102
102
|
"commands/wiki.js",
|
|
103
103
|
"commands/zellij-lane.js",
|
|
104
|
+
"commands/zellij-slot-column-anchor.js",
|
|
105
|
+
"commands/zellij-slot-pane.js",
|
|
104
106
|
"commands/zellij.js",
|
|
105
107
|
"core/agents/agent-central-ledger.js",
|
|
106
108
|
"core/agents/agent-cleanup-executor.js",
|
|
@@ -132,6 +134,7 @@
|
|
|
132
134
|
"core/agents/agent-plan.js",
|
|
133
135
|
"core/agents/agent-proof-evidence.js",
|
|
134
136
|
"core/agents/agent-recursion-guard.js",
|
|
137
|
+
"core/agents/agent-role-config.js",
|
|
135
138
|
"core/agents/agent-roster.js",
|
|
136
139
|
"core/agents/agent-runner-codex-exec.js",
|
|
137
140
|
"core/agents/agent-runner-fake.js",
|
|
@@ -346,8 +349,10 @@
|
|
|
346
349
|
"core/git/git-repo-detection.js",
|
|
347
350
|
"core/git/git-worktree-cache-policy.js",
|
|
348
351
|
"core/git/git-worktree-capability.js",
|
|
352
|
+
"core/git/git-worktree-checkpoint.js",
|
|
349
353
|
"core/git/git-worktree-cleanup.js",
|
|
350
354
|
"core/git/git-worktree-conflict-resolver.js",
|
|
355
|
+
"core/git/git-worktree-cross-rebase.js",
|
|
351
356
|
"core/git/git-worktree-diff.js",
|
|
352
357
|
"core/git/git-worktree-manager.js",
|
|
353
358
|
"core/git/git-worktree-merge-queue.js",
|
|
@@ -426,6 +431,7 @@
|
|
|
426
431
|
"core/mistake-recall.js",
|
|
427
432
|
"core/naruto/hardware-capacity-probe.js",
|
|
428
433
|
"core/naruto/naruto-active-pool.js",
|
|
434
|
+
"core/naruto/naruto-allocation-policy.js",
|
|
429
435
|
"core/naruto/naruto-backpressure.js",
|
|
430
436
|
"core/naruto/naruto-concurrency-governor.js",
|
|
431
437
|
"core/naruto/naruto-finalizer.js",
|
|
@@ -433,7 +439,11 @@
|
|
|
433
439
|
"core/naruto/naruto-gpt-final-pack.js",
|
|
434
440
|
"core/naruto/naruto-parallel-patch-apply.js",
|
|
435
441
|
"core/naruto/naruto-patch-transaction-batch.js",
|
|
442
|
+
"core/naruto/naruto-real-worker-child.js",
|
|
443
|
+
"core/naruto/naruto-real-worker-runtime.js",
|
|
444
|
+
"core/naruto/naruto-rebalance-policy.js",
|
|
436
445
|
"core/naruto/naruto-role-policy.js",
|
|
446
|
+
"core/naruto/naruto-task-hints.js",
|
|
437
447
|
"core/naruto/naruto-verification-dag.js",
|
|
438
448
|
"core/naruto/naruto-verification-pool.js",
|
|
439
449
|
"core/naruto/naruto-work-graph.js",
|
|
@@ -634,6 +644,9 @@
|
|
|
634
644
|
"core/zellij/zellij-right-column-layout-proof.js",
|
|
635
645
|
"core/zellij/zellij-right-column-manager.js",
|
|
636
646
|
"core/zellij/zellij-screen-proof.js",
|
|
647
|
+
"core/zellij/zellij-slot-column-anchor.js",
|
|
648
|
+
"core/zellij/zellij-slot-pane-renderer.js",
|
|
649
|
+
"core/zellij/zellij-ui-mode.js",
|
|
637
650
|
"core/zellij/zellij-worker-pane-manager.js",
|
|
638
651
|
"scripts/agent-ast-aware-work-graph-check.js",
|
|
639
652
|
"scripts/agent-backfill-replenishment-check.js",
|
|
@@ -688,6 +701,7 @@
|
|
|
688
701
|
"scripts/agent-real-codex-parallel-workers-5-check.js",
|
|
689
702
|
"scripts/agent-real-codex-parallel-workers-check.js",
|
|
690
703
|
"scripts/agent-real-codex-patch-envelope-smoke.js",
|
|
704
|
+
"scripts/agent-role-config-repair-check.js",
|
|
691
705
|
"scripts/agent-rollback-command-check.js",
|
|
692
706
|
"scripts/agent-route-blackbox-lib.js",
|
|
693
707
|
"scripts/agent-route-truth-backfill-check.js",
|
|
@@ -840,12 +854,15 @@
|
|
|
840
854
|
"scripts/git-precommit-fixture-check.js",
|
|
841
855
|
"scripts/git-worktree-cache-performance-check.js",
|
|
842
856
|
"scripts/git-worktree-capability-check.js",
|
|
857
|
+
"scripts/git-worktree-checkpoint-check.js",
|
|
843
858
|
"scripts/git-worktree-cleanup-check.js",
|
|
859
|
+
"scripts/git-worktree-cross-rebase-check.js",
|
|
844
860
|
"scripts/git-worktree-diff-envelope-check.js",
|
|
845
861
|
"scripts/git-worktree-diff-export-check.js",
|
|
846
862
|
"scripts/git-worktree-dirty-lock-check.js",
|
|
847
863
|
"scripts/git-worktree-dirty-main-detection-check.js",
|
|
848
864
|
"scripts/git-worktree-integration-primary-check.js",
|
|
865
|
+
"scripts/git-worktree-integration-primary-runtime-check.js",
|
|
849
866
|
"scripts/git-worktree-manager-check.js",
|
|
850
867
|
"scripts/git-worktree-manifest-append-check.js",
|
|
851
868
|
"scripts/git-worktree-merge-queue-check.js",
|
|
@@ -923,13 +940,19 @@
|
|
|
923
940
|
"scripts/memory-summary-rebuild-check.js",
|
|
924
941
|
"scripts/mutation-callsite-coverage-check.js",
|
|
925
942
|
"scripts/naruto-active-pool-check.js",
|
|
943
|
+
"scripts/naruto-actual-worker-control-plane-check.js",
|
|
944
|
+
"scripts/naruto-allocation-policy-check.js",
|
|
926
945
|
"scripts/naruto-concurrency-governor-check.js",
|
|
927
946
|
"scripts/naruto-extreme-parallelism-check.js",
|
|
947
|
+
"scripts/naruto-extreme-parallelism-real-check.js",
|
|
928
948
|
"scripts/naruto-gpt-final-pack-check.js",
|
|
949
|
+
"scripts/naruto-orchestrator-runtime-source-check.js",
|
|
929
950
|
"scripts/naruto-parallel-patch-apply-check.js",
|
|
930
951
|
"scripts/naruto-readonly-routing-check.js",
|
|
931
952
|
"scripts/naruto-real-active-pool-check.js",
|
|
953
|
+
"scripts/naruto-real-active-pool-runtime-check.js",
|
|
932
954
|
"scripts/naruto-real-local-gpt-final-smoke.js",
|
|
955
|
+
"scripts/naruto-rebalance-policy-check.js",
|
|
933
956
|
"scripts/naruto-role-distribution-check.js",
|
|
934
957
|
"scripts/naruto-shadow-clone-swarm-check.js",
|
|
935
958
|
"scripts/naruto-verification-pool-check.js",
|
|
@@ -1077,6 +1100,8 @@
|
|
|
1077
1100
|
"scripts/zellij-developer-controls-check.js",
|
|
1078
1101
|
"scripts/zellij-doctor-readiness-check.js",
|
|
1079
1102
|
"scripts/zellij-dynamic-pane-lifecycle-check.js",
|
|
1103
|
+
"scripts/zellij-first-slot-down-stack-check.js",
|
|
1104
|
+
"scripts/zellij-first-slot-down-stack-real-check.js",
|
|
1080
1105
|
"scripts/zellij-initial-main-only-blackbox.js",
|
|
1081
1106
|
"scripts/zellij-lane-renderer-check.js",
|
|
1082
1107
|
"scripts/zellij-launch-command-truth-check.js",
|
|
@@ -1086,8 +1111,12 @@
|
|
|
1086
1111
|
"scripts/zellij-real-session-heartbeat-check.js",
|
|
1087
1112
|
"scripts/zellij-real-session-launch-check.js",
|
|
1088
1113
|
"scripts/zellij-right-column-geometry-proof.js",
|
|
1114
|
+
"scripts/zellij-right-column-headless-overflow-check.js",
|
|
1089
1115
|
"scripts/zellij-right-column-manager-check.js",
|
|
1090
1116
|
"scripts/zellij-screen-proof-check.js",
|
|
1117
|
+
"scripts/zellij-slot-column-anchor-check.js",
|
|
1118
|
+
"scripts/zellij-slot-only-ui-check.js",
|
|
1119
|
+
"scripts/zellij-slot-pane-renderer-check.js",
|
|
1091
1120
|
"scripts/zellij-spawn-on-demand-layout-check.js",
|
|
1092
1121
|
"scripts/zellij-ui-design-check.js",
|
|
1093
1122
|
"scripts/zellij-worker-pane-manager-check.js",
|
|
@@ -104,6 +104,8 @@ export const COMMANDS = {
|
|
|
104
104
|
hermes: entry('labs', 'Create Hermes Agent skill package', 'dist/commands/hermes.js', directCommand(() => import('../commands/hermes.js'), 'dist/commands/hermes.js')),
|
|
105
105
|
tmux: entry('beta', 'Show removed-runtime migration notice', 'dist/commands/tmux.js', directCommand(() => import('../commands/tmux.js'), 'dist/commands/tmux.js')),
|
|
106
106
|
'zellij-lane': entry('beta', 'Render a Zellij lane frame for SKS sessions', 'dist/commands/zellij-lane.js', directCommand(() => import('../commands/zellij-lane.js'), 'dist/commands/zellij-lane.js')),
|
|
107
|
+
'zellij-slot-pane': entry('beta', 'Render a compact Zellij worker slot pane', 'dist/commands/zellij-slot-pane.js', directCommand(() => import('../commands/zellij-slot-pane.js'), 'dist/commands/zellij-slot-pane.js')),
|
|
108
|
+
'zellij-slot-column-anchor': entry('beta', 'Render the compact SLOTS anchor pane for first-slot-down Zellij stacks', 'dist/commands/zellij-slot-column-anchor.js', directCommand(() => import('../commands/zellij-slot-column-anchor.js'), 'dist/commands/zellij-slot-column-anchor.js')),
|
|
107
109
|
zellij: entry('beta', 'Inspect Zellij runtime status and explain repair (no auto-install)', 'dist/commands/zellij.js', directCommand(() => import('../commands/zellij.js'), 'dist/commands/zellij.js')),
|
|
108
110
|
mad: entry('beta', 'MAD-SKS Zellij permission launcher', 'dist/commands/mad-sks.js', directCommand(() => import('../commands/mad-sks.js'), 'dist/commands/mad-sks.js')),
|
|
109
111
|
'mad-sks': entry('beta', 'MAD-SKS scoped permission modifier', 'dist/commands/mad-sks.js', directCommand(() => import('../commands/mad-sks.js'), 'dist/commands/mad-sks.js')),
|
|
@@ -13,7 +13,6 @@ import { context7ConfigToml, DOLLAR_SKILL_NAMES, GETDESIGN_REFERENCE, hasContext
|
|
|
13
13
|
import { checkZellijCapability } from '../core/zellij/zellij-capability.js';
|
|
14
14
|
import { reconcileCodexAppUpgradeProcesses } from '../core/codex-app.js';
|
|
15
15
|
import { recordCodexLbHealthEvent } from '../core/codex-lb-circuit.js';
|
|
16
|
-
import { runSksUpdateCheck, runSksUpdateNow } from '../core/update-check.js';
|
|
17
16
|
import { loadCodexLbEnv, writeCodexLbKeychain, codexLbMetadataPath } from '../core/codex-lb/codex-lb-env.js';
|
|
18
17
|
import { buildCodexLbSetupPlan, codexLbPersistenceSummary, installCodexLbShellProfileSnippet, selectedCodexLbPersistenceModes } from '../core/codex-lb/codex-lb-setup.js';
|
|
19
18
|
const DEFAULT_CODEX_APP_PLUGINS = [
|
|
@@ -2233,26 +2232,15 @@ export async function maybePromptCodexUpdateForLaunch(args = [], opts = {}) {
|
|
|
2233
2232
|
return installCodexLatest(command, latest.version, current);
|
|
2234
2233
|
}
|
|
2235
2234
|
export async function maybePromptSksUpdateForLaunch(args = [], opts = {}) {
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
update_available: false,
|
|
2242
|
-
latest: null,
|
|
2235
|
+
void args;
|
|
2236
|
+
void opts;
|
|
2237
|
+
return {
|
|
2238
|
+
status: 'skipped',
|
|
2239
|
+
reason: 'manual_update_commands_only',
|
|
2243
2240
|
current: PACKAGE_VERSION,
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
}
|
|
2247
|
-
if (!check.update_available) {
|
|
2248
|
-
return { status: check.error ? 'unavailable' : 'current', latest: check.latest || null, current: check.current || PACKAGE_VERSION, error: check.error || null };
|
|
2249
|
-
}
|
|
2250
|
-
const command = check.command || `sks update now --version ${check.latest}`;
|
|
2251
|
-
if (shouldAutoApproveInstall(args)) {
|
|
2252
|
-
return runSksUpdateNow({ version: check.latest, timeoutMs: 10 * 60 * 1000, maxOutputBytes: 128 * 1024 });
|
|
2253
|
-
}
|
|
2254
|
-
console.log(`SKS update available before ${label}: ${check.current} -> ${check.latest}. Run when ready: ${command}`);
|
|
2255
|
-
return { status: 'available', latest: check.latest || null, current: check.current || PACKAGE_VERSION, command };
|
|
2241
|
+
latest: null,
|
|
2242
|
+
command: null
|
|
2243
|
+
};
|
|
2256
2244
|
}
|
|
2257
2245
|
export function shouldAutoApproveInstall(args = [], env = process.env) {
|
|
2258
2246
|
if (hasFlag(args, '--from-postinstall') && env.SKS_POSTINSTALL_AUTO_INSTALL_CLI_TOOLS !== '1')
|
package/dist/commands/doctor.js
CHANGED
|
@@ -18,20 +18,17 @@ import { appendMigrationEvents, hashConfigText } from '../core/migration/migrati
|
|
|
18
18
|
import { repairCodexAppFastUi } from '../core/codex-app/codex-app-fast-ui-repair.js';
|
|
19
19
|
import { resolveProviderContext } from '../core/provider/provider-context.js';
|
|
20
20
|
import { readLocalModelConfig } from '../core/agents/ollama-worker-config.js';
|
|
21
|
-
import {
|
|
21
|
+
import { repairAgentRoleConfigs } from '../core/agents/agent-role-config.js';
|
|
22
22
|
export async function run(_command, args = []) {
|
|
23
23
|
const doctorFix = flag(args, '--fix');
|
|
24
24
|
let setupRepair = null;
|
|
25
25
|
const sksUpdate = doctorFix
|
|
26
|
-
?
|
|
27
|
-
timeoutMs: 10 * 60 * 1000,
|
|
28
|
-
maxOutputBytes: 128 * 1024
|
|
29
|
-
}).catch((err) => ({
|
|
26
|
+
? {
|
|
30
27
|
schema: 'sks.update-now.v1',
|
|
31
|
-
ok:
|
|
32
|
-
status: '
|
|
33
|
-
|
|
34
|
-
}
|
|
28
|
+
ok: true,
|
|
29
|
+
status: 'skipped',
|
|
30
|
+
reason: 'manual_update_commands_only'
|
|
31
|
+
}
|
|
35
32
|
: null;
|
|
36
33
|
let migrationPreFix = null;
|
|
37
34
|
if (doctorFix) {
|
|
@@ -151,6 +148,20 @@ export async function run(_command, args = []) {
|
|
|
151
148
|
const zellij = await checkZellijCapability({ root, require: process.env.SKS_REQUIRE_ZELLIJ === '1' });
|
|
152
149
|
const localModel = await readLocalModelConfig().catch(() => null);
|
|
153
150
|
const permissionProfiles = await inventoryCodexPermissionProfiles(root, { writeReport: true });
|
|
151
|
+
const agentRoleConfigRepair = await repairAgentRoleConfigs({
|
|
152
|
+
root,
|
|
153
|
+
apply: doctorFix,
|
|
154
|
+
reportPath: `${root}/.sneakoscope/reports/agent-role-config-repair.json`
|
|
155
|
+
}).catch((err) => ({
|
|
156
|
+
schema: 'sks.agent-role-config-repair.v1',
|
|
157
|
+
ok: false,
|
|
158
|
+
apply: doctorFix,
|
|
159
|
+
missing: [],
|
|
160
|
+
existing: [],
|
|
161
|
+
created: [],
|
|
162
|
+
warnings_suppressed: false,
|
|
163
|
+
blockers: [err?.message || String(err)]
|
|
164
|
+
}));
|
|
154
165
|
const globalSksInstallCleanup = flag(args, '--fix') && !flag(args, '--local-only')
|
|
155
166
|
? 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'] }))
|
|
156
167
|
: null;
|
|
@@ -166,6 +177,7 @@ export async function run(_command, args = []) {
|
|
|
166
177
|
require_codex_doctor: flag(args, '--fix') || flag(args, '--require-actual-codex'),
|
|
167
178
|
zellij,
|
|
168
179
|
local_model: localModel,
|
|
180
|
+
agent_role_config: agentRoleConfigRepair,
|
|
169
181
|
repair: configRepair,
|
|
170
182
|
codex_app_ui: codexAppUi,
|
|
171
183
|
require_codex_cli_config_load: flag(args, '--fix') || flag(args, '--require-actual-codex'),
|
|
@@ -191,6 +203,7 @@ export async function run(_command, args = []) {
|
|
|
191
203
|
codex_doctor_diff: codexDoctorDiff,
|
|
192
204
|
zellij,
|
|
193
205
|
local_model: localModel,
|
|
206
|
+
agent_role_config: agentRoleConfigRepair,
|
|
194
207
|
zellij_readiness: zellijReadiness,
|
|
195
208
|
codex_permission_profiles: permissionProfiles,
|
|
196
209
|
imagegen: {
|
|
@@ -201,7 +214,7 @@ export async function run(_command, args = []) {
|
|
|
201
214
|
ready,
|
|
202
215
|
sneakoscope: { ok: await exists(`${root}/.sneakoscope`) },
|
|
203
216
|
package: { bytes: pkgBytes, human: formatBytes(pkgBytes) },
|
|
204
|
-
repair: { sks_update: sksUpdate, setup: setupRepair, codex_config: configRepair, migration_journal: migrationJournal, global_sks_installs: globalSksInstallCleanup }
|
|
217
|
+
repair: { sks_update: sksUpdate, setup: setupRepair, codex_config: configRepair, migration_journal: migrationJournal, global_sks_installs: globalSksInstallCleanup, agent_role_config: agentRoleConfigRepair }
|
|
205
218
|
};
|
|
206
219
|
if (flag(args, '--json')) {
|
|
207
220
|
printJson(result);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { renderZellijSlotColumnAnchorFromArtifacts } from '../core/zellij/zellij-slot-column-anchor.js';
|
|
2
|
+
export async function run(_command = 'zellij-slot-column-anchor', args = []) {
|
|
3
|
+
const missionId = readOption(args, '--mission', 'latest') || 'latest';
|
|
4
|
+
const artifactRoot = readOption(args, '--artifact-root', process.cwd()) || process.cwd();
|
|
5
|
+
const mode = readOption(args, '--mode', 'compact-slots') || 'compact-slots';
|
|
6
|
+
const watch = hasFlag(args, '--watch');
|
|
7
|
+
const intervalMs = Math.max(250, Number(readOption(args, '--interval-ms', '1000') || 1000));
|
|
8
|
+
for (;;) {
|
|
9
|
+
const text = await renderZellijSlotColumnAnchorFromArtifacts({ artifactRoot, missionId, mode });
|
|
10
|
+
process.stdout.write('\x1Bc' + text + '\n');
|
|
11
|
+
if (!watch)
|
|
12
|
+
break;
|
|
13
|
+
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function readOption(args, name, fallback) {
|
|
17
|
+
const index = args.indexOf(name);
|
|
18
|
+
return index >= 0 && args[index + 1] ? String(args[index + 1]) : fallback;
|
|
19
|
+
}
|
|
20
|
+
function hasFlag(args, flag) {
|
|
21
|
+
return args.includes(flag);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=zellij-slot-column-anchor.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { renderZellijSlotPaneFromArtifacts } from '../core/zellij/zellij-slot-pane-renderer.js';
|
|
2
|
+
export async function run(_command = 'zellij-slot-pane', args = []) {
|
|
3
|
+
const artifactDir = readOption(args, '--artifact-dir', process.cwd()) || process.cwd();
|
|
4
|
+
const slotId = readOption(args, '--slot', 'slot-001') || 'slot-001';
|
|
5
|
+
const generationIndex = Number(readOption(args, '--generation', '1') || 1);
|
|
6
|
+
const backend = readOption(args, '--backend', null);
|
|
7
|
+
const role = readOption(args, '--role', null);
|
|
8
|
+
const mode = readOption(args, '--mode', 'compact-slots');
|
|
9
|
+
const watch = hasFlag(args, '--watch');
|
|
10
|
+
const intervalMs = Math.max(250, Number(readOption(args, '--interval-ms', '1000') || 1000));
|
|
11
|
+
for (;;) {
|
|
12
|
+
const text = await renderZellijSlotPaneFromArtifacts({ artifactDir, slotId, generationIndex, backend, role, mode });
|
|
13
|
+
process.stdout.write('\x1Bc' + text + '\n');
|
|
14
|
+
if (!watch)
|
|
15
|
+
break;
|
|
16
|
+
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function readOption(args, name, fallback) {
|
|
20
|
+
const index = args.indexOf(name);
|
|
21
|
+
return index >= 0 && args[index + 1] ? String(args[index + 1]) : fallback;
|
|
22
|
+
}
|
|
23
|
+
function hasFlag(args, flag) {
|
|
24
|
+
return args.includes(flag);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=zellij-slot-pane.js.map
|