sneakoscope 2.0.10 → 2.0.12
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 +5 -3
- 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 +27 -8
- package/dist/cli/command-registry.js +1 -0
- package/dist/cli/install-helpers.js +8 -20
- package/dist/commands/doctor.js +5 -9
- package/dist/commands/zellij-slot-column-anchor.js +23 -0
- package/dist/core/agents/agent-orchestrator.js +338 -12
- package/dist/core/agents/agent-patch-schema.js +8 -1
- package/dist/core/agents/agent-scheduler.js +12 -1
- package/dist/core/agents/agent-slot-pane-binding-proof.js +3 -3
- package/dist/core/agents/agent-work-queue.js +26 -2
- package/dist/core/agents/agent-worker-pipeline.js +2 -0
- package/dist/core/agents/native-cli-session-swarm.js +2 -2
- package/dist/core/commands/naruto-command.js +191 -39
- 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 +92 -3
- package/dist/core/git/git-worktree-patch-envelope.js +8 -1
- package/dist/core/init.js +2 -2
- package/dist/core/naruto/naruto-allocation-policy.js +99 -0
- package/dist/core/naruto/naruto-real-worker-child.js +110 -11
- package/dist/core/naruto/naruto-rebalance-policy.js +48 -0
- package/dist/core/naruto/naruto-task-hints.js +71 -0
- package/dist/core/naruto/naruto-work-graph.js +13 -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 +45 -2
- package/dist/core/zellij/zellij-slot-column-anchor.js +218 -0
- package/dist/core/zellij/zellij-worker-pane-manager.js +81 -14
- package/dist/scripts/agent-real-codex-in-zellij-worker-pane-check.js +8 -2
- package/dist/scripts/agent-slot-pane-binding-proof-check.js +4 -4
- package/dist/scripts/codex-sdk-release-review-pipeline-check.js +2 -1
- package/dist/scripts/codex-sdk-zellij-pane-binding-check.js +2 -2
- package/dist/scripts/git-worktree-checkpoint-check.js +20 -0
- package/dist/scripts/git-worktree-cross-rebase-check.js +39 -0
- package/dist/scripts/git-worktree-merge-queue-check.js +1 -0
- package/dist/scripts/local-collab-worktree-gpt-final-apply-policy-check.js +63 -0
- package/dist/scripts/naruto-actual-worker-control-plane-check.js +56 -0
- package/dist/scripts/naruto-allocation-policy-check.js +33 -0
- package/dist/scripts/naruto-allocation-runtime-wiring-check.js +92 -0
- package/dist/scripts/naruto-extreme-parallelism-real-check.js +5 -4
- package/dist/scripts/naruto-orchestrator-runtime-source-check.js +70 -0
- package/dist/scripts/naruto-real-active-pool-runtime-check.js +4 -2
- package/dist/scripts/naruto-rebalance-policy-check.js +41 -0
- package/dist/scripts/naruto-shadow-clone-swarm-check.js +8 -4
- package/dist/scripts/release-dag-full-coverage-check.js +19 -1
- package/dist/scripts/release-readiness-report.js +1 -1
- package/dist/scripts/release-real-check.js +258 -77
- package/dist/scripts/zellij-first-slot-down-stack-check.js +20 -0
- package/dist/scripts/zellij-first-slot-down-stack-real-check.js +356 -0
- package/dist/scripts/zellij-right-column-manager-check.js +7 -2
- package/dist/scripts/zellij-slot-column-anchor-check.js +45 -0
- package/dist/scripts/zellij-slot-only-ui-check.js +6 -2
- package/dist/scripts/zellij-slot-renderer-proof-semantics-check.js +59 -0
- package/dist/scripts/zellij-worker-pane-manager-check.js +23 -1
- package/dist/scripts/zellij-worker-pane-manager-single-owner-check.js +11 -4
- package/dist/scripts/zellij-worker-pane-real-ui-blackbox.js +21 -4
- package/package.json +15 -3
package/README.md
CHANGED
|
@@ -16,12 +16,14 @@ 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.12** is the public-ready parallel runtime stabilization release. It closes release DAG coverage around Zellij slot renderer proof semantics, wires Naruto allocation/rebalance into the production scheduler, keeps pre-run worker smoke opt-in, and requires GPT Final approval before local/worktree candidate output can apply.
|
|
20
20
|
|
|
21
21
|
What changed:
|
|
22
22
|
|
|
23
|
-
- Zellij slot panes
|
|
24
|
-
- Naruto
|
|
23
|
+
- Zellij slot panes distinguish `slot_status_renderer` panes from Codex worker panes, and the first visible worker now stacks downward below the `SLOTS` anchor with real geometry proof available under `real-check`.
|
|
24
|
+
- Naruto allocation owners now flow into work graph items, scheduler slices, queue ownership, and worker runtime proof; inactive owners are rebalanced and active write conflicts stay out of concurrent execution.
|
|
25
|
+
- Naruto active-pool checks now exercise actual child-worker spawn/result collection paths while production source-of-truth stays with the agent orchestrator scheduler.
|
|
26
|
+
- Worktree candidate output requires GPT Final approval before apply; GPT `modified` output replaces candidate patches and GPT `rejected` blocks apply.
|
|
25
27
|
- Visible Zellij reservations are capped before pane launch so concurrent worker starts cannot over-open the right column.
|
|
26
28
|
- Git worktree integration now proves the primary repo receives validated worktree diffs, with rollback hash evidence recorded around the apply step.
|
|
27
29
|
- Agent role config repair detects stale generated role files and rewrites structured GPT-5.5-compatible configs atomically.
|
|
@@ -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.12"),
|
|
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.12",
|
|
5
|
+
"source_digest": "6f9f20ed184ebe714b41b9176d8414b7fded251a30591ada3c3bac53e49fcf61",
|
|
6
|
+
"source_file_count": 2053,
|
|
7
|
+
"built_at_source_time": 1780833723608
|
|
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.12",
|
|
4
|
+
"package_version": "2.0.12",
|
|
5
5
|
"typescript": true,
|
|
6
6
|
"mjs_runtime_files": 0,
|
|
7
|
-
"compiled_file_count":
|
|
8
|
-
"compiled_js_count":
|
|
7
|
+
"compiled_file_count": 1111,
|
|
8
|
+
"compiled_js_count": 1111,
|
|
9
9
|
"compiled_dts_count": 0,
|
|
10
|
-
"source_digest": "
|
|
11
|
-
"source_file_count":
|
|
12
|
-
"source_files_hash": "
|
|
13
|
-
"source_list_hash": "
|
|
10
|
+
"source_digest": "6f9f20ed184ebe714b41b9176d8414b7fded251a30591ada3c3bac53e49fcf61",
|
|
11
|
+
"source_file_count": 2053,
|
|
12
|
+
"source_files_hash": "cf94f337fb28d923dd91214e01c2b80794f0d24659e7aaac0baf5c3110f1eb7a",
|
|
13
|
+
"source_list_hash": "cf94f337fb28d923dd91214e01c2b80794f0d24659e7aaac0baf5c3110f1eb7a",
|
|
14
14
|
"src_mjs_runtime_files": 0,
|
|
15
15
|
"dist_stamp_schema": "sks.dist-build-stamp.v1",
|
|
16
16
|
"files": [
|
|
@@ -101,6 +101,7 @@
|
|
|
101
101
|
"commands/versioning.js",
|
|
102
102
|
"commands/wiki.js",
|
|
103
103
|
"commands/zellij-lane.js",
|
|
104
|
+
"commands/zellij-slot-column-anchor.js",
|
|
104
105
|
"commands/zellij-slot-pane.js",
|
|
105
106
|
"commands/zellij.js",
|
|
106
107
|
"core/agents/agent-central-ledger.js",
|
|
@@ -348,8 +349,10 @@
|
|
|
348
349
|
"core/git/git-repo-detection.js",
|
|
349
350
|
"core/git/git-worktree-cache-policy.js",
|
|
350
351
|
"core/git/git-worktree-capability.js",
|
|
352
|
+
"core/git/git-worktree-checkpoint.js",
|
|
351
353
|
"core/git/git-worktree-cleanup.js",
|
|
352
354
|
"core/git/git-worktree-conflict-resolver.js",
|
|
355
|
+
"core/git/git-worktree-cross-rebase.js",
|
|
353
356
|
"core/git/git-worktree-diff.js",
|
|
354
357
|
"core/git/git-worktree-manager.js",
|
|
355
358
|
"core/git/git-worktree-merge-queue.js",
|
|
@@ -428,6 +431,7 @@
|
|
|
428
431
|
"core/mistake-recall.js",
|
|
429
432
|
"core/naruto/hardware-capacity-probe.js",
|
|
430
433
|
"core/naruto/naruto-active-pool.js",
|
|
434
|
+
"core/naruto/naruto-allocation-policy.js",
|
|
431
435
|
"core/naruto/naruto-backpressure.js",
|
|
432
436
|
"core/naruto/naruto-concurrency-governor.js",
|
|
433
437
|
"core/naruto/naruto-finalizer.js",
|
|
@@ -437,7 +441,9 @@
|
|
|
437
441
|
"core/naruto/naruto-patch-transaction-batch.js",
|
|
438
442
|
"core/naruto/naruto-real-worker-child.js",
|
|
439
443
|
"core/naruto/naruto-real-worker-runtime.js",
|
|
444
|
+
"core/naruto/naruto-rebalance-policy.js",
|
|
440
445
|
"core/naruto/naruto-role-policy.js",
|
|
446
|
+
"core/naruto/naruto-task-hints.js",
|
|
441
447
|
"core/naruto/naruto-verification-dag.js",
|
|
442
448
|
"core/naruto/naruto-verification-pool.js",
|
|
443
449
|
"core/naruto/naruto-work-graph.js",
|
|
@@ -638,6 +644,7 @@
|
|
|
638
644
|
"core/zellij/zellij-right-column-layout-proof.js",
|
|
639
645
|
"core/zellij/zellij-right-column-manager.js",
|
|
640
646
|
"core/zellij/zellij-screen-proof.js",
|
|
647
|
+
"core/zellij/zellij-slot-column-anchor.js",
|
|
641
648
|
"core/zellij/zellij-slot-pane-renderer.js",
|
|
642
649
|
"core/zellij/zellij-ui-mode.js",
|
|
643
650
|
"core/zellij/zellij-worker-pane-manager.js",
|
|
@@ -847,7 +854,9 @@
|
|
|
847
854
|
"scripts/git-precommit-fixture-check.js",
|
|
848
855
|
"scripts/git-worktree-cache-performance-check.js",
|
|
849
856
|
"scripts/git-worktree-capability-check.js",
|
|
857
|
+
"scripts/git-worktree-checkpoint-check.js",
|
|
850
858
|
"scripts/git-worktree-cleanup-check.js",
|
|
859
|
+
"scripts/git-worktree-cross-rebase-check.js",
|
|
851
860
|
"scripts/git-worktree-diff-envelope-check.js",
|
|
852
861
|
"scripts/git-worktree-diff-export-check.js",
|
|
853
862
|
"scripts/git-worktree-dirty-lock-check.js",
|
|
@@ -896,6 +905,7 @@
|
|
|
896
905
|
"scripts/local-collab-gpt-final-availability-check.js",
|
|
897
906
|
"scripts/local-collab-no-local-only-final-check.js",
|
|
898
907
|
"scripts/local-collab-policy-check.js",
|
|
908
|
+
"scripts/local-collab-worktree-gpt-final-apply-policy-check.js",
|
|
899
909
|
"scripts/local-llm-all-pipelines-check.js",
|
|
900
910
|
"scripts/local-llm-cache-performance-check.js",
|
|
901
911
|
"scripts/local-llm-capability-check.js",
|
|
@@ -931,15 +941,20 @@
|
|
|
931
941
|
"scripts/memory-summary-rebuild-check.js",
|
|
932
942
|
"scripts/mutation-callsite-coverage-check.js",
|
|
933
943
|
"scripts/naruto-active-pool-check.js",
|
|
944
|
+
"scripts/naruto-actual-worker-control-plane-check.js",
|
|
945
|
+
"scripts/naruto-allocation-policy-check.js",
|
|
946
|
+
"scripts/naruto-allocation-runtime-wiring-check.js",
|
|
934
947
|
"scripts/naruto-concurrency-governor-check.js",
|
|
935
948
|
"scripts/naruto-extreme-parallelism-check.js",
|
|
936
949
|
"scripts/naruto-extreme-parallelism-real-check.js",
|
|
937
950
|
"scripts/naruto-gpt-final-pack-check.js",
|
|
951
|
+
"scripts/naruto-orchestrator-runtime-source-check.js",
|
|
938
952
|
"scripts/naruto-parallel-patch-apply-check.js",
|
|
939
953
|
"scripts/naruto-readonly-routing-check.js",
|
|
940
954
|
"scripts/naruto-real-active-pool-check.js",
|
|
941
955
|
"scripts/naruto-real-active-pool-runtime-check.js",
|
|
942
956
|
"scripts/naruto-real-local-gpt-final-smoke.js",
|
|
957
|
+
"scripts/naruto-rebalance-policy-check.js",
|
|
943
958
|
"scripts/naruto-role-distribution-check.js",
|
|
944
959
|
"scripts/naruto-shadow-clone-swarm-check.js",
|
|
945
960
|
"scripts/naruto-verification-pool-check.js",
|
|
@@ -1087,6 +1102,8 @@
|
|
|
1087
1102
|
"scripts/zellij-developer-controls-check.js",
|
|
1088
1103
|
"scripts/zellij-doctor-readiness-check.js",
|
|
1089
1104
|
"scripts/zellij-dynamic-pane-lifecycle-check.js",
|
|
1105
|
+
"scripts/zellij-first-slot-down-stack-check.js",
|
|
1106
|
+
"scripts/zellij-first-slot-down-stack-real-check.js",
|
|
1090
1107
|
"scripts/zellij-initial-main-only-blackbox.js",
|
|
1091
1108
|
"scripts/zellij-lane-renderer-check.js",
|
|
1092
1109
|
"scripts/zellij-launch-command-truth-check.js",
|
|
@@ -1099,8 +1116,10 @@
|
|
|
1099
1116
|
"scripts/zellij-right-column-headless-overflow-check.js",
|
|
1100
1117
|
"scripts/zellij-right-column-manager-check.js",
|
|
1101
1118
|
"scripts/zellij-screen-proof-check.js",
|
|
1119
|
+
"scripts/zellij-slot-column-anchor-check.js",
|
|
1102
1120
|
"scripts/zellij-slot-only-ui-check.js",
|
|
1103
1121
|
"scripts/zellij-slot-pane-renderer-check.js",
|
|
1122
|
+
"scripts/zellij-slot-renderer-proof-semantics-check.js",
|
|
1104
1123
|
"scripts/zellij-spawn-on-demand-layout-check.js",
|
|
1105
1124
|
"scripts/zellij-ui-design-check.js",
|
|
1106
1125
|
"scripts/zellij-worker-pane-manager-check.js",
|
|
@@ -105,6 +105,7 @@ export const COMMANDS = {
|
|
|
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
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')),
|
|
108
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')),
|
|
109
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')),
|
|
110
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,21 +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 { runSksUpdateNow } from '../core/update-check.js';
|
|
22
21
|
import { repairAgentRoleConfigs } from '../core/agents/agent-role-config.js';
|
|
23
22
|
export async function run(_command, args = []) {
|
|
24
23
|
const doctorFix = flag(args, '--fix');
|
|
25
24
|
let setupRepair = null;
|
|
26
25
|
const sksUpdate = doctorFix
|
|
27
|
-
?
|
|
28
|
-
timeoutMs: 10 * 60 * 1000,
|
|
29
|
-
maxOutputBytes: 128 * 1024
|
|
30
|
-
}).catch((err) => ({
|
|
26
|
+
? {
|
|
31
27
|
schema: 'sks.update-now.v1',
|
|
32
|
-
ok:
|
|
33
|
-
status: '
|
|
34
|
-
|
|
35
|
-
}
|
|
28
|
+
ok: true,
|
|
29
|
+
status: 'skipped',
|
|
30
|
+
reason: 'manual_update_commands_only'
|
|
31
|
+
}
|
|
36
32
|
: null;
|
|
37
33
|
let migrationPreFix = null;
|
|
38
34
|
if (doctorFix) {
|
|
@@ -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
|