sneakoscope 2.0.14 → 2.0.16
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 +6 -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/cli/command-registry.js +2 -1
- package/dist/commands/mad-db.js +5 -0
- package/dist/commands/zellij-slot-pane.js +3 -1
- package/dist/core/agents/agent-orchestrator.js +66 -3
- package/dist/core/agents/agent-plan.js +3 -2
- package/dist/core/agents/agent-scheduler.js +204 -86
- package/dist/core/agents/agent-schema.js +1 -1
- package/dist/core/agents/native-cli-session-swarm.js +199 -15
- package/dist/core/agents/native-cli-worker.js +85 -0
- package/dist/core/agents/parallel-runtime-proof.js +217 -0
- package/dist/core/codex-control/codex-task-runner.js +32 -4
- package/dist/core/codex-control/model-call-concurrency.js +106 -0
- package/dist/core/commands/basic-cli.js +1 -1
- package/dist/core/commands/command-suggestions.js +1 -1
- package/dist/core/commands/mad-db-command.js +106 -0
- package/dist/core/commands/mad-sks-command.js +50 -13
- package/dist/core/commands/naruto-command.js +128 -5
- package/dist/core/commands/research-command.js +13 -1
- package/dist/core/commands/team-command.js +23 -175
- package/dist/core/db-safety.js +55 -1
- package/dist/core/fsx.js +1 -1
- package/dist/core/git/git-worktree-capability.js +18 -0
- package/dist/core/git/git-worktree-manager.js +80 -0
- package/dist/core/git/git-worktree-pool.js +4 -0
- package/dist/core/mad-db/mad-db-capability.js +116 -0
- package/dist/core/mad-db/mad-db-ledger.js +31 -0
- package/dist/core/mad-db/mad-db-policy-resolver.js +48 -0
- package/dist/core/naruto/naruto-concurrency-governor.js +14 -1
- package/dist/core/pipeline-internals/runtime-core.js +74 -8
- package/dist/core/pipeline-internals/runtime-gates.js +44 -0
- package/dist/core/proof/route-proof-gate.js +5 -3
- package/dist/core/proof/route-proof-policy.js +9 -1
- package/dist/core/release/release-gate-affected-selector.js +113 -0
- package/dist/core/release/release-gate-batch-runner.js +67 -0
- package/dist/core/release/release-gate-dag.js +22 -3
- package/dist/core/release/release-gate-resource-governor.js +23 -11
- package/dist/core/research/implementation-blueprint-densifier.js +1 -1
- package/dist/core/research/implementation-blueprint-markdown.js +1 -1
- package/dist/core/research/implementation-blueprint.js +68 -7
- package/dist/core/research/research-final-reviewer.js +27 -1
- package/dist/core/research/research-handoff.js +69 -5
- package/dist/core/research/research-realistic-report.js +162 -0
- package/dist/core/research/research-repetition-detector.js +75 -0
- package/dist/core/research/research-report-quality.js +27 -5
- package/dist/core/research/research-stage-runner.js +40 -13
- package/dist/core/research/research-synthesis-prompt.js +52 -0
- package/dist/core/research/research-synthesis-writer.js +208 -0
- package/dist/core/research.js +60 -48
- package/dist/core/routes.js +23 -19
- package/dist/core/update/update-notice.js +120 -0
- package/dist/core/version.js +1 -1
- package/dist/core/zellij/zellij-dashboard-renderer.js +2 -0
- package/dist/core/zellij/zellij-slot-column-anchor.js +35 -1
- package/dist/core/zellij/zellij-slot-pane-renderer.js +57 -0
- package/dist/core/zellij/zellij-slot-telemetry.js +237 -0
- package/dist/scripts/release-gate-dag-runner.js +5 -0
- package/dist/scripts/release-speed-summary.js +27 -0
- package/package.json +76 -5
- package/schemas/agents/parallel-runtime-proof.schema.json +48 -0
- package/schemas/mad-db/mad-db-capability.schema.json +31 -0
- package/schemas/mad-db/mad-db-ledger.schema.json +14 -0
- package/schemas/research/implementation-blueprint.schema.json +6 -1
- package/schemas/research/research-final-review.schema.json +10 -0
- package/schemas/research/research-synthesis-output.schema.json +62 -0
- package/schemas/update/update-notice.schema.json +19 -0
- package/schemas/zellij/zellij-slot-telemetry.schema.json +89 -0
- package/dist/scripts/agent-ast-aware-work-graph-check.js +0 -25
- package/dist/scripts/agent-backfill-replenishment-check.js +0 -13
- package/dist/scripts/agent-backfill-route-blackbox.js +0 -5
- package/dist/scripts/agent-background-terminals-check.js +0 -16
- package/dist/scripts/agent-cleanup-command-ux-check.js +0 -12
- package/dist/scripts/agent-cleanup-executor-check.js +0 -53
- package/dist/scripts/agent-cleanup-executor-v2-check.js +0 -39
- package/dist/scripts/agent-cli-options-to-task-graph-check.js +0 -5
- package/dist/scripts/agent-codex-app-cockpit-check.js +0 -91
- package/dist/scripts/agent-codex-child-overlap-check.js +0 -21
- package/dist/scripts/agent-dynamic-cockpit-check.js +0 -10
- package/dist/scripts/agent-dynamic-pool-check.js +0 -13
- package/dist/scripts/agent-dynamic-pool-route-blackbox.js +0 -5
- package/dist/scripts/agent-fast-mode-default-check.js +0 -62
- package/dist/scripts/agent-fast-mode-worker-propagation-check.js +0 -7
- package/dist/scripts/agent-follow-up-work-schema-check.js +0 -80
- package/dist/scripts/agent-goal-mode-propagation-check.js +0 -9
- package/dist/scripts/agent-intelligent-work-graph-check.js +0 -25
- package/dist/scripts/agent-janitor-check.js +0 -76
- package/dist/scripts/agent-main-no-scout-check.js +0 -11
- package/dist/scripts/agent-model-authored-patch-envelope-check.js +0 -15
- package/dist/scripts/agent-multi-project-isolation-check.js +0 -86
- package/dist/scripts/agent-native-cli-session-proof-check.js +0 -7
- package/dist/scripts/agent-native-cli-session-swarm-10-check.js +0 -7
- package/dist/scripts/agent-native-cli-session-swarm-20-check.js +0 -7
- package/dist/scripts/agent-native-cli-session-swarm-check.js +0 -7
- package/dist/scripts/agent-no-subagent-scaling-check.js +0 -7
- package/dist/scripts/agent-parallel-write-blackbox.js +0 -56
- package/dist/scripts/agent-parallel-write-kernel-check.js +0 -103
- package/dist/scripts/agent-patch-conflict-rebase-check.js +0 -198
- package/dist/scripts/agent-patch-envelope-extraction-check.js +0 -17
- package/dist/scripts/agent-patch-proof-check.js +0 -41
- package/dist/scripts/agent-patch-proof-runtime-check.js +0 -63
- package/dist/scripts/agent-patch-queue-runtime-check.js +0 -36
- package/dist/scripts/agent-patch-rollback-check.js +0 -38
- package/dist/scripts/agent-patch-rollback-dag-check.js +0 -14
- package/dist/scripts/agent-patch-swarm-route-blackbox.js +0 -10
- package/dist/scripts/agent-patch-swarm-runtime-check.js +0 -10
- package/dist/scripts/agent-patch-swarm-runtime-truth-check.js +0 -76
- package/dist/scripts/agent-patch-transaction-journal-check.js +0 -57
- package/dist/scripts/agent-patch-verification-dag-check.js +0 -14
- package/dist/scripts/agent-proof-contract-reconciled-check.js +0 -5
- package/dist/scripts/agent-real-codex-dynamic-smoke-check.js +0 -166
- package/dist/scripts/agent-real-codex-dynamic-smoke-v2-check.js +0 -14
- package/dist/scripts/agent-real-codex-in-zellij-worker-pane-check.js +0 -229
- package/dist/scripts/agent-real-codex-parallel-workers-10-check.js +0 -5
- package/dist/scripts/agent-real-codex-parallel-workers-20-check.js +0 -5
- package/dist/scripts/agent-real-codex-parallel-workers-5-check.js +0 -5
- package/dist/scripts/agent-real-codex-parallel-workers-check.js +0 -5
- package/dist/scripts/agent-role-config-repair-check.js +0 -33
- package/dist/scripts/agent-rollback-command-check.js +0 -86
- package/dist/scripts/agent-route-truth-backfill-check.js +0 -5
- package/dist/scripts/agent-scheduler-proof-check.js +0 -13
- package/dist/scripts/agent-scheduler-proof-hardening-check.js +0 -22
- package/dist/scripts/agent-session-generation-check.js +0 -21
- package/dist/scripts/agent-slot-pane-binding-proof-check.js +0 -64
- package/dist/scripts/agent-source-intelligence-propagation-check.js +0 -9
- package/dist/scripts/agent-strategy-to-lease-wiring-check.js +0 -32
- package/dist/scripts/agent-strategy-to-patch-strict-check.js +0 -54
- package/dist/scripts/agent-task-graph-expansion-check.js +0 -14
- package/dist/scripts/agent-terminal-generations-check.js +0 -23
- package/dist/scripts/agent-visual-consistency-check.js +0 -9
- package/dist/scripts/agent-wiki-context-proof-check.js +0 -62
- package/dist/scripts/agent-worker-backend-router-check.js +0 -63
- package/dist/scripts/agent-worker-scout-limited-check.js +0 -17
- package/dist/scripts/agent-zellij-dynamic-backfill-panes-check.js +0 -34
- package/dist/scripts/agent-zellij-runtime-check.js +0 -84
- package/dist/scripts/all-feature-deep-completion-check.js +0 -31
- package/dist/scripts/appshots-capability-check.js +0 -18
- package/dist/scripts/appshots-evidence-check.js +0 -48
- package/dist/scripts/appshots-operator-policy-check.js +0 -25
- package/dist/scripts/appshots-privacy-safety-check.js +0 -48
- package/dist/scripts/appshots-source-intelligence-check.js +0 -53
- package/dist/scripts/appshots-thread-attachment-discovery-check.js +0 -87
- package/dist/scripts/appshots-triwiki-voxel-check.js +0 -46
- package/dist/scripts/architecture-guard-check.js +0 -55
- package/dist/scripts/changelog-check.js +0 -47
- package/dist/scripts/codex-0-133-official-compat-report.js +0 -53
- package/dist/scripts/codex-0-134-official-compat-report.js +0 -110
- package/dist/scripts/codex-0-134-runner-truth-check.js +0 -66
- package/dist/scripts/codex-0-135-compat-check.js +0 -57
- package/dist/scripts/codex-0-136-compat-check.js +0 -30
- package/dist/scripts/codex-0-137-compat-check.js +0 -27
- package/dist/scripts/codex-app-fast-ui-preservation-check.js +0 -32
- package/dist/scripts/codex-app-provider-badge-check.js +0 -37
- package/dist/scripts/codex-app-ui-clobber-guard-check.js +0 -22
- package/dist/scripts/codex-app-ui-preservation-check.js +0 -96
- package/dist/scripts/codex-control-all-pipelines-check.js +0 -36
- package/dist/scripts/codex-control-capability-check.js +0 -10
- package/dist/scripts/codex-control-empty-result-retry-check.js +0 -43
- package/dist/scripts/codex-control-event-stream-ledger-check.js +0 -10
- package/dist/scripts/codex-control-keepalive-no-cot-leak-check.js +0 -14
- package/dist/scripts/codex-control-no-legacy-fallback-check.js +0 -31
- package/dist/scripts/codex-control-side-effect-scope-check.js +0 -26
- package/dist/scripts/codex-control-stream-idle-watchdog-check.js +0 -18
- package/dist/scripts/codex-control-structured-output-check.js +0 -11
- package/dist/scripts/codex-control-thread-registry-check.js +0 -11
- package/dist/scripts/codex-control-tool-call-sequence-repair-check.js +0 -14
- package/dist/scripts/codex-environment-scoped-approvals-check.js +0 -10
- package/dist/scripts/codex-exec-output-schema-actual-syntax-check.js +0 -33
- package/dist/scripts/codex-fast-mode-profile-propagation-check.js +0 -12
- package/dist/scripts/codex-history-search-check.js +0 -19
- package/dist/scripts/codex-hook-semantic-check.js +0 -15
- package/dist/scripts/codex-hook-strict-subset-check.js +0 -61
- package/dist/scripts/codex-lb-config-toml-safety-check.js +0 -85
- package/dist/scripts/codex-lb-persistence-truth-check.js +0 -96
- package/dist/scripts/codex-lb-setup-fixture-check.js +0 -91
- package/dist/scripts/codex-lb-setup-truthfulness-check.js +0 -84
- package/dist/scripts/codex-legacy-profile-consumers-removed-check.js +0 -24
- package/dist/scripts/codex-managed-proxy-env-check.js +0 -17
- package/dist/scripts/codex-output-schema-fixture-check.js +0 -25
- package/dist/scripts/codex-permission-profiles-check.js +0 -36
- package/dist/scripts/codex-plugin-list-json-check.js +0 -8
- package/dist/scripts/codex-profile-primary-check.js +0 -13
- package/dist/scripts/codex-project-config-policy-splitter-check.js +0 -51
- package/dist/scripts/codex-resume-cwd-truth-check.js +0 -17
- package/dist/scripts/codex-sdk-all-pipelines-check.js +0 -32
- package/dist/scripts/codex-sdk-backend-router-check.js +0 -65
- package/dist/scripts/codex-sdk-capability-check.js +0 -11
- package/dist/scripts/codex-sdk-core-skill-pipeline-check.js +0 -9
- package/dist/scripts/codex-sdk-dfix-pipeline-check.js +0 -9
- package/dist/scripts/codex-sdk-event-stream-ledger-check.js +0 -9
- package/dist/scripts/codex-sdk-no-legacy-fallback-check.js +0 -33
- package/dist/scripts/codex-sdk-qa-pipeline-check.js +0 -8
- package/dist/scripts/codex-sdk-real-smoke-check.js +0 -39
- package/dist/scripts/codex-sdk-release-review-pipeline-check.js +0 -13
- package/dist/scripts/codex-sdk-research-pipeline-check.js +0 -47
- package/dist/scripts/codex-sdk-sandbox-policy-check.js +0 -21
- package/dist/scripts/codex-sdk-structured-output-check.js +0 -10
- package/dist/scripts/codex-sdk-team-naruto-agent-pipeline-check.js +0 -12
- package/dist/scripts/codex-sdk-thread-registry-check.js +0 -11
- package/dist/scripts/codex-sdk-ux-ppt-review-pipeline-check.js +0 -9
- package/dist/scripts/codex-sdk-zellij-pane-binding-check.js +0 -13
- package/dist/scripts/codex-thread-runtime-choice-check.js +0 -10
- package/dist/scripts/codex-web-adapter-check.js +0 -12
- package/dist/scripts/computer-use-live-evidence-check.js +0 -55
- package/dist/scripts/computer-use-live-optional-check.js +0 -32
- package/dist/scripts/computer-use-policy-check.js +0 -69
- package/dist/scripts/computer-use-visual-route-fixture-check.js +0 -37
- package/dist/scripts/core-skill-card-schema-check.js +0 -61
- package/dist/scripts/core-skill-deployment-snapshot-check.js +0 -54
- package/dist/scripts/core-skill-heldout-validation-check.js +0 -49
- package/dist/scripts/core-skill-no-inference-optimizer-check.js +0 -75
- package/dist/scripts/core-skill-patch-check.js +0 -79
- package/dist/scripts/core-skill-promotion-side-effect-ledger-check.js +0 -64
- package/dist/scripts/core-skill-rollout-scoring-check.js +0 -72
- package/dist/scripts/core-skill-route-runtime-integration-check.js +0 -49
- package/dist/scripts/dfix-fast-blackbox-check.js +0 -37
- package/dist/scripts/dfix-fast-kernel-check.js +0 -26
- package/dist/scripts/dfix-fixture-check.js +0 -6
- package/dist/scripts/dfix-parallel-write-blackbox.js +0 -48
- package/dist/scripts/dfix-patch-handoff-check.js +0 -13
- package/dist/scripts/dfix-patch-swarm-route-blackbox.js +0 -10
- package/dist/scripts/dfix-performance-check.js +0 -15
- package/dist/scripts/dfix-verification-check.js +0 -9
- package/dist/scripts/dfix-verification-recommendation-check.js +0 -15
- package/dist/scripts/docs-truthfulness-check.js +0 -61
- package/dist/scripts/doctor-codex-doctor-parity-check.js +0 -17
- package/dist/scripts/doctor-fix-proves-codex-read-check.js +0 -64
- package/dist/scripts/doctor-fix-recovers-corrupted-config-check.js +0 -122
- package/dist/scripts/doctor-fixes-codex-app-fast-ui-check.js +0 -39
- package/dist/scripts/evidence-fixture-check.js +0 -26
- package/dist/scripts/evidence-flagship-coverage-check.js +0 -55
- package/dist/scripts/fake-real-proof-policy-v2-check.js +0 -27
- package/dist/scripts/fake-vs-real-proof-policy-check.js +0 -14
- package/dist/scripts/fast-codex-service-tier-proof-check.js +0 -42
- package/dist/scripts/flagship-proof-graph-v2-check.js +0 -48
- package/dist/scripts/flagship-proof-graph-v3-check.js +0 -67
- package/dist/scripts/flagship-proof-graph-v4-check.js +0 -61
- package/dist/scripts/git-precommit-fixture-check.js +0 -41
- package/dist/scripts/git-worktree-cache-performance-check.js +0 -25
- package/dist/scripts/git-worktree-capability-check.js +0 -27
- package/dist/scripts/git-worktree-checkpoint-check.js +0 -20
- package/dist/scripts/git-worktree-cleanup-check.js +0 -27
- package/dist/scripts/git-worktree-cross-rebase-check.js +0 -39
- package/dist/scripts/git-worktree-diff-envelope-check.js +0 -17
- package/dist/scripts/git-worktree-diff-export-check.js +0 -43
- package/dist/scripts/git-worktree-dirty-lock-check.js +0 -17
- package/dist/scripts/git-worktree-dirty-main-detection-check.js +0 -14
- package/dist/scripts/git-worktree-integration-primary-check.js +0 -24
- package/dist/scripts/git-worktree-integration-primary-runtime-check.js +0 -20
- package/dist/scripts/git-worktree-manager-check.js +0 -37
- package/dist/scripts/git-worktree-manifest-append-check.js +0 -18
- package/dist/scripts/git-worktree-merge-queue-check.js +0 -31
- package/dist/scripts/git-worktree-pool-performance-check.js +0 -20
- package/dist/scripts/git-worktree-untracked-diff-check.js +0 -18
- package/dist/scripts/goal-mode-official-default-check.js +0 -12
- package/dist/scripts/gpt-final-arbiter-check.js +0 -63
- package/dist/scripts/gpt-final-arbiter-performance-check.js +0 -36
- package/dist/scripts/gpt-image-2-request-validator-check.js +0 -35
- package/dist/scripts/hooks-0.134-context-parity-check.js +0 -20
- package/dist/scripts/hooks-actual-parity-check.js +0 -17
- package/dist/scripts/hooks-actual-parity-v2-check.js +0 -21
- package/dist/scripts/hooks-latest-schema-check.js +0 -20
- package/dist/scripts/hooks-managed-install-fixture-check.js +0 -21
- package/dist/scripts/hooks-official-hash-oracle-check.js +0 -35
- package/dist/scripts/hooks-official-hash-parity-check.js +0 -17
- package/dist/scripts/hooks-subagent-events-check.js +0 -17
- package/dist/scripts/hooks-trust-state-check.js +0 -14
- package/dist/scripts/image-fidelity-fixture-check.js +0 -24
- package/dist/scripts/imagegen-capability-check.js +0 -30
- package/dist/scripts/imagegen-real-smoke-check.js +0 -155
- package/dist/scripts/install-update-preserves-config-check.js +0 -87
- package/dist/scripts/json-schema-recursive-check.js +0 -78
- package/dist/scripts/legacy-multiagent-removal-check.js +0 -85
- package/dist/scripts/legacy-upgrade-matrix-check.js +0 -300
- package/dist/scripts/local-collab-all-pipelines-final-gpt-check.js +0 -21
- package/dist/scripts/local-collab-gpt-final-availability-check.js +0 -58
- package/dist/scripts/local-collab-no-local-only-final-check.js +0 -27
- package/dist/scripts/local-collab-policy-check.js +0 -17
- package/dist/scripts/local-collab-worktree-gpt-final-apply-policy-check.js +0 -63
- package/dist/scripts/local-llm-all-pipelines-check.js +0 -11
- package/dist/scripts/local-llm-cache-performance-check.js +0 -10
- package/dist/scripts/local-llm-capability-check.js +0 -14
- package/dist/scripts/local-llm-smoke-check.js +0 -23
- package/dist/scripts/local-llm-structured-output-check.js +0 -11
- package/dist/scripts/local-llm-throughput-check.js +0 -10
- package/dist/scripts/local-llm-tool-call-repair-check.js +0 -10
- package/dist/scripts/local-llm-warmup-check.js +0 -11
- package/dist/scripts/loop-blocker-check.js +0 -15
- package/dist/scripts/mad-preflight-blocks-unreadable-config-check.js +0 -35
- package/dist/scripts/mad-sks-actual-executor-blackbox.js +0 -5
- package/dist/scripts/mad-sks-app-ui-no-mutation-check.js +0 -92
- package/dist/scripts/mad-sks-audit-proof-check.js +0 -34
- package/dist/scripts/mad-sks-db-executor-check.js +0 -5
- package/dist/scripts/mad-sks-executor-proof-graph-check.js +0 -5
- package/dist/scripts/mad-sks-fast-mode-propagation-check.js +0 -24
- package/dist/scripts/mad-sks-file-write-executor-check.js +0 -5
- package/dist/scripts/mad-sks-immutable-harness-check.js +0 -36
- package/dist/scripts/mad-sks-no-harness-modification-check.js +0 -25
- package/dist/scripts/mad-sks-package-executor-check.js +0 -5
- package/dist/scripts/mad-sks-permission-model-check.js +0 -22
- package/dist/scripts/mad-sks-rollback-apply-check.js +0 -5
- package/dist/scripts/mad-sks-service-executor-check.js +0 -5
- package/dist/scripts/mad-sks-shell-executor-check.js +0 -5
- package/dist/scripts/mad-sks-write-guard-check.js +0 -28
- package/dist/scripts/mad-sks-zellij-default-pane-worker-check.js +0 -37
- package/dist/scripts/mad-sks-zellij-launch-check.js +0 -102
- package/dist/scripts/mcp-0-134-modernization-check.js +0 -55
- package/dist/scripts/mcp-readonly-concurrency-check.js +0 -17
- package/dist/scripts/mcp-readonly-runtime-scheduler-check.js +0 -20
- package/dist/scripts/mcp-tool-naming-parity-check.js +0 -16
- package/dist/scripts/memory-summary-rebuild-check.js +0 -22
- package/dist/scripts/mutation-callsite-coverage-check.js +0 -180
- package/dist/scripts/naruto-active-pool-check.js +0 -39
- package/dist/scripts/naruto-actual-worker-control-plane-check.js +0 -56
- package/dist/scripts/naruto-allocation-policy-check.js +0 -33
- package/dist/scripts/naruto-allocation-runtime-wiring-check.js +0 -92
- package/dist/scripts/naruto-concurrency-governor-check.js +0 -53
- package/dist/scripts/naruto-extreme-parallelism-check.js +0 -22
- package/dist/scripts/naruto-extreme-parallelism-real-check.js +0 -43
- package/dist/scripts/naruto-gpt-final-pack-check.js +0 -34
- package/dist/scripts/naruto-orchestrator-runtime-source-check.js +0 -70
- package/dist/scripts/naruto-parallel-patch-apply-check.js +0 -41
- package/dist/scripts/naruto-readonly-routing-check.js +0 -116
- package/dist/scripts/naruto-real-active-pool-check.js +0 -39
- package/dist/scripts/naruto-real-active-pool-runtime-check.js +0 -55
- package/dist/scripts/naruto-rebalance-policy-check.js +0 -41
- package/dist/scripts/naruto-role-distribution-check.js +0 -23
- package/dist/scripts/naruto-shadow-clone-swarm-check.js +0 -153
- package/dist/scripts/naruto-verification-pool-check.js +0 -36
- package/dist/scripts/naruto-work-graph-check.js +0 -24
- package/dist/scripts/naruto-worktree-coding-blackbox.js +0 -29
- package/dist/scripts/naruto-worktree-coding-check.js +0 -44
- package/dist/scripts/naruto-worktree-gpt-final-check.js +0 -45
- package/dist/scripts/naruto-worktree-zellij-ui-check.js +0 -28
- package/dist/scripts/naruto-zellij-dynamic-right-column-check.js +0 -48
- package/dist/scripts/naruto-zellij-massive-ui-check.js +0 -23
- package/dist/scripts/non-recursive-pipeline-check.js +0 -68
- package/dist/scripts/npm-publish-performance-check.js +0 -65
- package/dist/scripts/official-docs-compat-report.js +0 -304
- package/dist/scripts/packlist-performance-check.js +0 -83
- package/dist/scripts/parallel-verification-engine-check.js +0 -85
- package/dist/scripts/postinstall-safe-side-effects-check.js +0 -65
- package/dist/scripts/ppt-full-e2e-artifact-graph-check.js +0 -40
- package/dist/scripts/ppt-full-e2e-blackbox-check.js +0 -109
- package/dist/scripts/ppt-image-voxel-relations-check.js +0 -9
- package/dist/scripts/ppt-imagegen-blackbox-check.js +0 -46
- package/dist/scripts/ppt-imagegen-review-fixture-check.js +0 -6
- package/dist/scripts/ppt-issue-extraction-fixture-check.js +0 -7
- package/dist/scripts/ppt-no-mock-as-real-check.js +0 -8
- package/dist/scripts/ppt-no-text-fallback-check.js +0 -7
- package/dist/scripts/ppt-proof-trust-fixture-check.js +0 -10
- package/dist/scripts/ppt-real-export-adapter-check.js +0 -13
- package/dist/scripts/ppt-real-imagegen-smoke-check.js +0 -42
- package/dist/scripts/ppt-real-imagegen-wiring-check.js +0 -16
- package/dist/scripts/ppt-reexport-rereview-check.js +0 -19
- package/dist/scripts/ppt-slide-export-fixture-check.js +0 -7
- package/dist/scripts/prepublish-fast-check.js +0 -128
- package/dist/scripts/priority-full-closure-check.js +0 -12
- package/dist/scripts/product-design-auto-install-check.js +0 -119
- package/dist/scripts/product-design-plugin-routing-check.js +0 -101
- package/dist/scripts/prompt-placeholder-guard-check.js +0 -33
- package/dist/scripts/provider-badge-context-check.js +0 -26
- package/dist/scripts/provider-context-config-toml-check.js +0 -63
- package/dist/scripts/python-codex-sdk-all-pipelines-check.js +0 -47
- package/dist/scripts/python-codex-sdk-capability-check.js +0 -75
- package/dist/scripts/python-codex-sdk-sandbox-policy-check.js +0 -10
- package/dist/scripts/python-codex-sdk-stream-bridge-check.js +0 -12
- package/dist/scripts/python-tools-smoke-check.js +0 -71
- package/dist/scripts/qa-actual-route-backfill-check.js +0 -5
- package/dist/scripts/qa-backfill-route-blackbox.js +0 -5
- package/dist/scripts/qa-patch-swarm-route-blackbox.js +0 -10
- package/dist/scripts/readme-architecture-imagegen-official-check.js +0 -448
- package/dist/scripts/release-cache-glob-hashing-check.js +0 -42
- package/dist/scripts/release-dag-full-coverage-check.js +0 -66
- package/dist/scripts/release-dist-freshness-check.js +0 -8
- package/dist/scripts/release-dynamic-performance-check.js +0 -103
- package/dist/scripts/release-gate-budget-check.js +0 -36
- package/dist/scripts/release-gate-dag-runner-check.js +0 -17
- package/dist/scripts/release-metadata-1-11-check.js +0 -37
- package/dist/scripts/release-metadata-1-12-check.js +0 -48
- package/dist/scripts/release-metadata-1-13-check.js +0 -53
- package/dist/scripts/release-metadata-1-14-check.js +0 -63
- package/dist/scripts/release-metadata-1-16-check.js +0 -81
- package/dist/scripts/release-metadata-1-17-check.js +0 -51
- package/dist/scripts/release-metadata-1-19-check.js +0 -371
- package/dist/scripts/release-metadata-check.js +0 -7
- package/dist/scripts/release-native-agent-fixture-check.js +0 -41
- package/dist/scripts/release-parallel-check.js +0 -374
- package/dist/scripts/release-parallel-full-coverage-check.js +0 -13
- package/dist/scripts/release-parallel-speed-budget-check.js +0 -84
- package/dist/scripts/release-provenance-check.js +0 -150
- package/dist/scripts/release-real-check.js +0 -330
- package/dist/scripts/release-registry-check.js +0 -344
- package/dist/scripts/release-runtime-truth-matrix-check.js +0 -47
- package/dist/scripts/release-stability-report-check.js +0 -99
- package/dist/scripts/release-version-truth-check.js +0 -134
- package/dist/scripts/research-actual-route-backfill-check.js +0 -5
- package/dist/scripts/research-backfill-route-blackbox.js +0 -5
- package/dist/scripts/research-blueprint-densifier-check.js +0 -21
- package/dist/scripts/research-claim-builder-check.js +0 -19
- package/dist/scripts/research-complete-package-fixture-check.js +0 -23
- package/dist/scripts/research-final-reviewer-blackbox.js +0 -22
- package/dist/scripts/research-parallel-source-shards-check.js +0 -22
- package/dist/scripts/research-quality-gate-check.js +0 -111
- package/dist/scripts/research-real-cycle-no-legacy-final-md-check.js +0 -14
- package/dist/scripts/research-short-report-rejection-check.js +0 -46
- package/dist/scripts/research-source-ledger-merge-check.js +0 -26
- package/dist/scripts/research-stage-cycle-runtime-blackbox.js +0 -24
- package/dist/scripts/responses-retry-policy-centralized-check.js +0 -19
- package/dist/scripts/retention-cleanup-safety-check.js +0 -155
- package/dist/scripts/route-blackbox-realism-check.js +0 -21
- package/dist/scripts/route-proof-artifact-structure-check.js +0 -145
- package/dist/scripts/runtime-dist-parity-check.js +0 -78
- package/dist/scripts/runtime-no-mjs-scripts-check.js +0 -45
- package/dist/scripts/runtime-no-src-mjs-check.js +0 -32
- package/dist/scripts/runtime-no-tmux-check.js +0 -113
- package/dist/scripts/runtime-ts-python-boundary-check.js +0 -59
- package/dist/scripts/runtime-ts-rust-boundary-check.js +0 -74
- package/dist/scripts/runtime-ts-source-of-truth-check.js +0 -55
- package/dist/scripts/safety-check.js +0 -23
- package/dist/scripts/shared-memory-fixture-check.js +0 -27
- package/dist/scripts/side-effect-runtime-report-check.js +0 -19
- package/dist/scripts/side-effect-zero-gate-check.js +0 -226
- package/dist/scripts/sks-1-11-fixture-check.js +0 -130
- package/dist/scripts/source-intelligence-all-modes-check.js +0 -32
- package/dist/scripts/source-intelligence-policy-check.js +0 -13
- package/dist/scripts/strategy-adhd-orchestrating-gate-check.js +0 -22
- package/dist/scripts/strategy-file-ownership-plan-check.js +0 -18
- package/dist/scripts/strategy-parallel-modification-plan-check.js +0 -19
- package/dist/scripts/strategy-verification-rollback-dag-check.js +0 -19
- package/dist/scripts/team-actual-route-backfill-check.js +0 -5
- package/dist/scripts/team-backfill-route-blackbox.js +0 -5
- package/dist/scripts/team-parallel-write-blackbox.js +0 -55
- package/dist/scripts/team-patch-swarm-route-blackbox.js +0 -10
- package/dist/scripts/terminal-keyboard-enhancement-safety-check.js +0 -12
- package/dist/scripts/terminal-tui-output-stability-check.js +0 -35
- package/dist/scripts/test-no-orphan-dist-imports-check.js +0 -73
- package/dist/scripts/trust-fixture-check.js +0 -33
- package/dist/scripts/typescript-migration-report.js +0 -78
- package/dist/scripts/ultra-router-auto-router-check.js +0 -33
- package/dist/scripts/ultra-router-classification-check.js +0 -28
- package/dist/scripts/ux-patch-swarm-route-blackbox.js +0 -10
- package/dist/scripts/ux-ppt-structured-extraction-check.js +0 -21
- package/dist/scripts/ux-review-extract-real-callouts-fixture-check.js +0 -8
- package/dist/scripts/ux-review-extract-wires-real-extractor-check.js +0 -15
- package/dist/scripts/ux-review-generate-callouts-fixture-check.js +0 -9
- package/dist/scripts/ux-review-image-voxel-relations-check.js +0 -31
- package/dist/scripts/ux-review-imagegen-blackbox-check.js +0 -67
- package/dist/scripts/ux-review-no-fake-callouts-check.js +0 -8
- package/dist/scripts/ux-review-no-text-fallback-check.js +0 -25
- package/dist/scripts/ux-review-patch-diff-recheck-check.js +0 -20
- package/dist/scripts/ux-review-patch-handoff-fixture-check.js +0 -8
- package/dist/scripts/ux-review-real-imagegen-smoke-check.js +0 -31
- package/dist/scripts/ux-review-real-loop-fixture-check.js +0 -24
- package/dist/scripts/ux-review-recapture-recheck-fixture-check.js +0 -8
- package/dist/scripts/ux-review-run-wires-imagegen-check.js +0 -11
- package/dist/scripts/worker-pane-communication-contract-check.js +0 -54
- package/dist/scripts/wrongness-fixture-check.js +0 -65
- package/dist/scripts/xai-mcp-capability-check.js +0 -14
- package/dist/scripts/zellij-capability-check.js +0 -15
- package/dist/scripts/zellij-dashboard-pane-check.js +0 -70
- package/dist/scripts/zellij-developer-controls-check.js +0 -20
- package/dist/scripts/zellij-doctor-readiness-check.js +0 -63
- package/dist/scripts/zellij-dynamic-pane-lifecycle-check.js +0 -21
- package/dist/scripts/zellij-first-slot-down-stack-check.js +0 -20
- package/dist/scripts/zellij-first-slot-down-stack-real-check.js +0 -356
- package/dist/scripts/zellij-initial-main-only-blackbox.js +0 -28
- package/dist/scripts/zellij-lane-renderer-check.js +0 -65
- package/dist/scripts/zellij-launch-command-truth-check.js +0 -75
- package/dist/scripts/zellij-layout-valid-check.js +0 -90
- package/dist/scripts/zellij-pane-proof-check.js +0 -59
- package/dist/scripts/zellij-real-session-cleanup-check.js +0 -21
- package/dist/scripts/zellij-real-session-heartbeat-check.js +0 -49
- package/dist/scripts/zellij-real-session-launch-check.js +0 -57
- package/dist/scripts/zellij-right-column-headless-overflow-check.js +0 -22
- package/dist/scripts/zellij-right-column-manager-check.js +0 -27
- package/dist/scripts/zellij-screen-proof-check.js +0 -45
- package/dist/scripts/zellij-slot-column-anchor-check.js +0 -66
- package/dist/scripts/zellij-slot-only-ui-check.js +0 -26
- package/dist/scripts/zellij-slot-pane-renderer-check.js +0 -106
- package/dist/scripts/zellij-slot-renderer-proof-semantics-check.js +0 -59
- package/dist/scripts/zellij-spawn-on-demand-layout-check.js +0 -40
- package/dist/scripts/zellij-ui-design-check.js +0 -105
- package/dist/scripts/zellij-worker-pane-manager-check.js +0 -109
- package/dist/scripts/zellij-worker-pane-manager-single-owner-check.js +0 -47
- package/dist/scripts/zellij-worker-pane-real-ui-blackbox.js +0 -202
- package/dist/scripts/zellij-worker-pane-spawn-order-check.js +0 -35
|
@@ -9,6 +9,8 @@ import { closeWorkerInRightColumn, recordHeadlessWorkerInRightColumn } from '../
|
|
|
9
9
|
import { resolveProviderContext } from '../provider/provider-context.js';
|
|
10
10
|
import { buildZellijSlotPaneCommand } from '../zellij/zellij-slot-pane-renderer.js';
|
|
11
11
|
import { resolveZellijUiMode } from '../zellij/zellij-ui-mode.js';
|
|
12
|
+
import { appendZellijSlotTelemetry } from '../zellij/zellij-slot-telemetry.js';
|
|
13
|
+
import { appendParallelRuntimeEvent } from './parallel-runtime-proof.js';
|
|
12
14
|
export const NATIVE_CLI_SESSION_SWARM_SCHEMA = 'sks.agent-native-cli-session-swarm.v1';
|
|
13
15
|
export function createNativeCliSessionSwarmRecorder(root, input) {
|
|
14
16
|
return new NativeCliSessionSwarmRecorder(root, input);
|
|
@@ -112,6 +114,12 @@ class NativeCliSessionSwarmRecorder {
|
|
|
112
114
|
? this.reserveVisibleZellijPane(ctx.opts, String(ctx.agent.session_id || ctx.agent.id || `${Date.now()}:${Math.random()}`))
|
|
113
115
|
: null;
|
|
114
116
|
const useZellijPane = Boolean(zellijReservation);
|
|
117
|
+
await this.telemetry(ctx, {
|
|
118
|
+
eventType: 'slot_reserved',
|
|
119
|
+
status: placement === 'zellij-pane' && !useZellijPane ? 'headless' : 'queued',
|
|
120
|
+
artifacts: [intakeRel, heartbeatRel, resultRel],
|
|
121
|
+
logTail: `placement=${placement}`
|
|
122
|
+
});
|
|
115
123
|
if (useZellijPane) {
|
|
116
124
|
stdout.end();
|
|
117
125
|
stderr.end();
|
|
@@ -130,6 +138,12 @@ class NativeCliSessionSwarmRecorder {
|
|
|
130
138
|
if (placement === 'zellij-pane' && ctx.opts.zellijPaneWorker !== false && !useZellijPane) {
|
|
131
139
|
record.worker_placement = 'headless';
|
|
132
140
|
record.headless_reason = `visible_pane_cap:${this.zellijVisiblePaneCap(ctx.opts)}`;
|
|
141
|
+
await this.telemetry(ctx, {
|
|
142
|
+
eventType: 'headless_overflow',
|
|
143
|
+
status: 'headless',
|
|
144
|
+
artifacts: [intakeRel, heartbeatRel, resultRel],
|
|
145
|
+
logTail: record.headless_reason
|
|
146
|
+
});
|
|
133
147
|
await recordHeadlessWorkerInRightColumn({
|
|
134
148
|
root: this.root,
|
|
135
149
|
projectRoot: ctx.opts.projectRoot || this.input.projectRoot || ctx.opts.cwd,
|
|
@@ -162,6 +176,22 @@ class NativeCliSessionSwarmRecorder {
|
|
|
162
176
|
record.pid = child.pid || null;
|
|
163
177
|
record.process_id = child.pid || null;
|
|
164
178
|
record.status = 'running';
|
|
179
|
+
await appendParallelRuntimeEvent(this.root, this.input.missionId, {
|
|
180
|
+
event_type: 'worker_process_spawned',
|
|
181
|
+
slot_id: ctx.agent.slot_id || ctx.agent.id || null,
|
|
182
|
+
generation_index: ctx.agent.generation_index || null,
|
|
183
|
+
session_id: ctx.agent.session_id || null,
|
|
184
|
+
pid: child.pid || null,
|
|
185
|
+
backend: this.input.backend,
|
|
186
|
+
placement: record.worker_placement === 'headless' ? 'headless' : 'process',
|
|
187
|
+
worktree_id: worktree?.id || null
|
|
188
|
+
}).catch(() => undefined);
|
|
189
|
+
await this.telemetry(ctx, {
|
|
190
|
+
eventType: 'worker_spawned',
|
|
191
|
+
status: 'launching',
|
|
192
|
+
artifacts: [intakeRel, heartbeatRel, resultRel, stdoutRel, stderrRel],
|
|
193
|
+
logTail: `pid=${child.pid || 'unknown'}`
|
|
194
|
+
});
|
|
165
195
|
if (child.pid)
|
|
166
196
|
this.active.add(child.pid);
|
|
167
197
|
this.maxObserved = Math.max(this.maxObserved, this.active.size);
|
|
@@ -194,6 +224,13 @@ class NativeCliSessionSwarmRecorder {
|
|
|
194
224
|
const parsed = await readJson(path.join(this.root, resultRel), null).catch(() => null);
|
|
195
225
|
if (!parsed) {
|
|
196
226
|
record.blockers = ['native_cli_worker_result_missing'];
|
|
227
|
+
await this.telemetry(ctx, {
|
|
228
|
+
eventType: 'worker_failed',
|
|
229
|
+
status: 'failed',
|
|
230
|
+
artifacts: [stdoutRel, stderrRel],
|
|
231
|
+
blockers: record.blockers,
|
|
232
|
+
logTail: 'Native CLI worker result missing.'
|
|
233
|
+
});
|
|
197
234
|
await this.record(record);
|
|
198
235
|
return validateAgentWorkerResult({
|
|
199
236
|
mission_id: this.input.missionId,
|
|
@@ -218,6 +255,13 @@ class NativeCliSessionSwarmRecorder {
|
|
|
218
255
|
});
|
|
219
256
|
record.status = result.status === 'done' ? 'closed' : result.status;
|
|
220
257
|
record.blockers = result.blockers || [];
|
|
258
|
+
await this.telemetry(ctx, {
|
|
259
|
+
eventType: result.status === 'done' ? 'worker_completed' : 'worker_failed',
|
|
260
|
+
status: result.status === 'done' ? 'completed' : 'failed',
|
|
261
|
+
artifacts: result.artifacts || [],
|
|
262
|
+
blockers: result.blockers || [],
|
|
263
|
+
logTail: result.summary || ''
|
|
264
|
+
});
|
|
221
265
|
await this.record(record);
|
|
222
266
|
return result;
|
|
223
267
|
}
|
|
@@ -250,6 +294,12 @@ class NativeCliSessionSwarmRecorder {
|
|
|
250
294
|
SKS_ZELLIJ_SESSION_NAME: sessionName
|
|
251
295
|
};
|
|
252
296
|
const role = String(input.ctx.agent.naruto_role || input.ctx.agent.role || input.ctx.agent.persona_id || 'worker');
|
|
297
|
+
await this.telemetry(input.ctx, {
|
|
298
|
+
eventType: 'slot_reserved',
|
|
299
|
+
status: 'queued',
|
|
300
|
+
artifacts: [path.join(input.workerDirRel, 'worker-intake.json'), input.heartbeatRel, input.resultRel],
|
|
301
|
+
logTail: `zellij=${sessionName}`
|
|
302
|
+
});
|
|
253
303
|
const workerCommand = uiMode === 'full-debug'
|
|
254
304
|
? buildPaneWorkerCommand({
|
|
255
305
|
args: input.args,
|
|
@@ -282,6 +332,30 @@ class NativeCliSessionSwarmRecorder {
|
|
|
282
332
|
mode: uiMode,
|
|
283
333
|
watch: true
|
|
284
334
|
});
|
|
335
|
+
const processRun = uiMode === 'full-debug'
|
|
336
|
+
? null
|
|
337
|
+
: await this.spawnCompactSlotWorkerProcess({
|
|
338
|
+
args: input.args,
|
|
339
|
+
cwd: workerCwd,
|
|
340
|
+
env: workerEnv,
|
|
341
|
+
stdoutRel: input.stdoutRel,
|
|
342
|
+
stderrRel: input.stderrRel
|
|
343
|
+
});
|
|
344
|
+
if (processRun?.pid) {
|
|
345
|
+
input.record.pid = processRun.pid;
|
|
346
|
+
input.record.process_id = processRun.pid;
|
|
347
|
+
await appendParallelRuntimeEvent(this.root, this.input.missionId, {
|
|
348
|
+
event_type: 'worker_process_spawned',
|
|
349
|
+
slot_id: slotId,
|
|
350
|
+
generation_index: Number(input.ctx.agent.generation_index || 1),
|
|
351
|
+
session_id: input.ctx.agent.session_id || null,
|
|
352
|
+
pid: processRun.pid,
|
|
353
|
+
backend: this.input.backend,
|
|
354
|
+
placement: 'zellij-pane',
|
|
355
|
+
worktree_id: worktree?.id || null
|
|
356
|
+
}).catch(() => undefined);
|
|
357
|
+
await this.record(input.record);
|
|
358
|
+
}
|
|
285
359
|
let paneRecord;
|
|
286
360
|
try {
|
|
287
361
|
paneRecord = await openWorkerPane({
|
|
@@ -328,7 +402,9 @@ class NativeCliSessionSwarmRecorder {
|
|
|
328
402
|
if (input.zellijReservation)
|
|
329
403
|
this.releaseVisibleZellijReservation(input.zellijReservation);
|
|
330
404
|
}
|
|
331
|
-
const
|
|
405
|
+
const zellijRequired = process.env.SKS_REQUIRE_ZELLIJ === '1';
|
|
406
|
+
const launchBlockers = zellijRequired ? paneRecord.blockers || [] : [];
|
|
407
|
+
const launchWarnings = zellijRequired ? [] : paneRecord.blockers || [];
|
|
332
408
|
input.record.command_line = ['zellij', '--session', sessionName, 'action', 'new-pane', '--direction', paneRecord.direction_applied, '--name', paneRecord.pane_name, '--', 'sh', '-lc', uiMode === 'full-debug' ? '<native-cli-worker-command>' : '<zellij-slot-pane-renderer-command>'];
|
|
333
409
|
input.record.zellij_session_name = sessionName;
|
|
334
410
|
input.record.zellij_pane_id = paneRecord.pane_id || null;
|
|
@@ -346,11 +422,26 @@ class NativeCliSessionSwarmRecorder {
|
|
|
346
422
|
input.record.slot_visualization = uiMode === 'full-debug' ? 'worker-command-pane' : 'zellij-slot-pane-renderer';
|
|
347
423
|
input.record.status = launchBlockers.length ? 'failed' : 'running';
|
|
348
424
|
input.record.blockers = launchBlockers;
|
|
425
|
+
input.record.warnings = [...(input.record.warnings || []), ...launchWarnings];
|
|
426
|
+
await this.telemetry(input.ctx, {
|
|
427
|
+
eventType: 'worker_spawned',
|
|
428
|
+
status: launchBlockers.length ? 'failed' : 'launching',
|
|
429
|
+
artifacts: [input.resultRel, input.heartbeatRel, input.stdoutRel, input.stderrRel, path.join(input.workerDirRel, 'zellij-worker-pane.json')],
|
|
430
|
+
blockers: launchBlockers,
|
|
431
|
+
logTail: paneRecord.pane_title || ''
|
|
432
|
+
});
|
|
349
433
|
await this.record(input.record);
|
|
350
434
|
if (launchBlockers.length) {
|
|
351
435
|
this.active.delete(activeToken);
|
|
352
436
|
input.record.closed_at = nowIso();
|
|
353
437
|
input.record.status = 'failed';
|
|
438
|
+
await this.telemetry(input.ctx, {
|
|
439
|
+
eventType: 'worker_failed',
|
|
440
|
+
status: 'failed',
|
|
441
|
+
artifacts: [input.stdoutRel, input.stderrRel, path.join(input.workerDirRel, 'zellij-worker-pane.json')],
|
|
442
|
+
blockers: launchBlockers,
|
|
443
|
+
logTail: 'Zellij worker pane launch failed.'
|
|
444
|
+
});
|
|
354
445
|
await this.record(input.record);
|
|
355
446
|
return validateAgentWorkerResult({
|
|
356
447
|
mission_id: this.input.missionId,
|
|
@@ -369,21 +460,18 @@ class NativeCliSessionSwarmRecorder {
|
|
|
369
460
|
goal_mode_ref: input.ctx.agent.goal_mode_ref || null
|
|
370
461
|
});
|
|
371
462
|
}
|
|
372
|
-
const
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
stderrRel: input.stderrRel
|
|
463
|
+
const heartbeatSeen = await waitForWorkerHeartbeat(path.join(this.root, input.heartbeatRel), Number(process.env.SKS_ZELLIJ_WORKER_HEARTBEAT_TIMEOUT_MS || 5000));
|
|
464
|
+
if (heartbeatSeen) {
|
|
465
|
+
await this.telemetry(input.ctx, {
|
|
466
|
+
eventType: 'heartbeat',
|
|
467
|
+
status: 'running',
|
|
468
|
+
artifacts: [input.heartbeatRel],
|
|
469
|
+
logTail: await tailFile(path.join(this.root, input.heartbeatRel), 600)
|
|
380
470
|
});
|
|
381
|
-
if (processRun?.pid) {
|
|
382
|
-
input.record.pid = processRun.pid;
|
|
383
|
-
input.record.process_id = processRun.pid;
|
|
384
|
-
await this.record(input.record);
|
|
385
471
|
}
|
|
386
|
-
|
|
472
|
+
else {
|
|
473
|
+
input.record.warnings = [...(input.record.warnings || []), 'zellij_worker_heartbeat_missing_launch_warning'];
|
|
474
|
+
}
|
|
387
475
|
await appendJsonl(path.join(this.root, input.workerDirRel, 'zellij-worker-pane-events.jsonl'), {
|
|
388
476
|
schema: 'sks.zellij-worker-pane-event.v1',
|
|
389
477
|
ts: nowIso(),
|
|
@@ -426,6 +514,12 @@ class NativeCliSessionSwarmRecorder {
|
|
|
426
514
|
session_id: input.ctx.agent.session_id,
|
|
427
515
|
result_path: input.resultRel
|
|
428
516
|
});
|
|
517
|
+
await this.telemetry(input.ctx, {
|
|
518
|
+
eventType: 'artifact_written',
|
|
519
|
+
status: 'verifying',
|
|
520
|
+
artifacts: [input.resultRel],
|
|
521
|
+
logTail: parsed.summary || 'worker result written'
|
|
522
|
+
});
|
|
429
523
|
}
|
|
430
524
|
input.record.pid = Number(workerProcessReport?.pid || processRun?.pid) || null;
|
|
431
525
|
input.record.process_id = input.record.pid;
|
|
@@ -440,8 +534,10 @@ class NativeCliSessionSwarmRecorder {
|
|
|
440
534
|
const heartbeatOk = await hasHeartbeat(path.join(this.root, input.heartbeatRel));
|
|
441
535
|
input.record.blockers = [
|
|
442
536
|
...(parsed ? parsed.blockers || [] : ['zellij_worker_result_timeout']),
|
|
443
|
-
...(heartbeatOk ? [] : [
|
|
537
|
+
...(heartbeatOk ? [] : [])
|
|
444
538
|
];
|
|
539
|
+
if (!heartbeatOk)
|
|
540
|
+
input.record.warnings = [...(input.record.warnings || []), 'zellij_worker_heartbeat_missing'];
|
|
445
541
|
paneRecord = await closeWorkerPane({
|
|
446
542
|
root: this.root,
|
|
447
543
|
paneRecord,
|
|
@@ -458,6 +554,13 @@ class NativeCliSessionSwarmRecorder {
|
|
|
458
554
|
input.record.zellij_worker_pane_closed_at = paneRecord.closed_at;
|
|
459
555
|
await this.record(input.record);
|
|
460
556
|
if (!parsed) {
|
|
557
|
+
await this.telemetry(input.ctx, {
|
|
558
|
+
eventType: 'worker_failed',
|
|
559
|
+
status: 'failed',
|
|
560
|
+
artifacts: [input.stdoutRel, input.stderrRel, path.join(input.workerDirRel, 'zellij-worker-pane.json')],
|
|
561
|
+
blockers: input.record.blockers,
|
|
562
|
+
logTail: 'Zellij pane worker result timed out.'
|
|
563
|
+
});
|
|
461
564
|
return validateAgentWorkerResult({
|
|
462
565
|
mission_id: this.input.missionId,
|
|
463
566
|
agent_id: input.ctx.agent.id,
|
|
@@ -475,6 +578,13 @@ class NativeCliSessionSwarmRecorder {
|
|
|
475
578
|
goal_mode_ref: input.ctx.agent.goal_mode_ref || null
|
|
476
579
|
});
|
|
477
580
|
}
|
|
581
|
+
await this.telemetry(input.ctx, {
|
|
582
|
+
eventType: parsed.status === 'done' ? 'worker_completed' : 'worker_failed',
|
|
583
|
+
status: parsed.status === 'done' ? 'completed' : 'failed',
|
|
584
|
+
artifacts: [...new Set([...(Array.isArray(parsed.artifacts) ? parsed.artifacts : []), input.stdoutRel, input.stderrRel, path.join(input.workerDirRel, 'zellij-worker-pane.json')])],
|
|
585
|
+
blockers: input.record.blockers,
|
|
586
|
+
logTail: parsed.summary || ''
|
|
587
|
+
});
|
|
478
588
|
return validateAgentWorkerResult({
|
|
479
589
|
...parsed,
|
|
480
590
|
blockers: input.record.blockers,
|
|
@@ -493,6 +603,46 @@ class NativeCliSessionSwarmRecorder {
|
|
|
493
603
|
this.records.push(record);
|
|
494
604
|
await this.persist();
|
|
495
605
|
}
|
|
606
|
+
async telemetry(ctx, input) {
|
|
607
|
+
await appendZellijSlotTelemetry(this.root, {
|
|
608
|
+
schema: 'sks.zellij-slot-telemetry-event.v1',
|
|
609
|
+
ts: nowIso(),
|
|
610
|
+
mission_id: this.input.missionId,
|
|
611
|
+
slot_id: String(ctx.agent?.slot_id || ctx.agent?.id || 'slot-001'),
|
|
612
|
+
generation_index: Number(ctx.agent?.generation_index || 1),
|
|
613
|
+
worker_id: String(ctx.agent?.id || ctx.agent?.slot_id || 'worker'),
|
|
614
|
+
event_type: input.eventType,
|
|
615
|
+
status: input.status,
|
|
616
|
+
role: String(ctx.agent?.naruto_role || ctx.agent?.role || ctx.agent?.persona_id || ctx.agent?.id || 'worker'),
|
|
617
|
+
backend: this.input.backend,
|
|
618
|
+
service_tier: this.input.fastModePolicy.service_tier,
|
|
619
|
+
worktree_id: ctx.agent?.worktree?.id || ctx.slice?.worktree?.id || null,
|
|
620
|
+
worktree_path: ctx.agent?.worktree?.path || ctx.slice?.worktree?.path || null,
|
|
621
|
+
task_title: String(ctx.slice?.description || ctx.slice?.title || ctx.slice?.id || 'worker task'),
|
|
622
|
+
current_file: firstString([ctx.slice?.write_paths?.[0], ctx.slice?.readonly_paths?.[0], ctx.slice?.input_files?.[0]]) || null,
|
|
623
|
+
artifact_paths: input.artifacts || [],
|
|
624
|
+
log_tail: input.logTail || '',
|
|
625
|
+
blockers: input.blockers || []
|
|
626
|
+
}).catch(() => undefined);
|
|
627
|
+
const parallelEvent = mapTelemetryToParallelEvent(input.eventType);
|
|
628
|
+
if (parallelEvent) {
|
|
629
|
+
await appendParallelRuntimeEvent(this.root, this.input.missionId, {
|
|
630
|
+
event_type: parallelEvent,
|
|
631
|
+
slot_id: String(ctx.agent?.slot_id || ctx.agent?.id || 'slot-001'),
|
|
632
|
+
generation_index: Number(ctx.agent?.generation_index || 1),
|
|
633
|
+
session_id: ctx.agent?.session_id == null ? null : String(ctx.agent.session_id),
|
|
634
|
+
pid: null,
|
|
635
|
+
backend: this.input.backend,
|
|
636
|
+
placement: normalizeParallelPlacement(ctx.opts?.workerPlacement || this.input.workerPlacement || (input.status === 'headless' ? 'headless' : 'unknown')),
|
|
637
|
+
worktree_id: ctx.agent?.worktree?.id || ctx.slice?.worktree?.id || null,
|
|
638
|
+
meta: {
|
|
639
|
+
status: input.status,
|
|
640
|
+
artifacts: input.artifacts || [],
|
|
641
|
+
blockers: input.blockers || []
|
|
642
|
+
}
|
|
643
|
+
}).catch(() => undefined);
|
|
644
|
+
}
|
|
645
|
+
}
|
|
496
646
|
async persist() {
|
|
497
647
|
this.writeLock = this.writeLock.catch(() => undefined).then(async () => {
|
|
498
648
|
await writeJsonAtomic(path.join(this.root, 'agent-native-cli-session-swarm.json'), this.summary());
|
|
@@ -656,6 +806,40 @@ function normalizeWorkerWorktree(value) {
|
|
|
656
806
|
main_repo_root: value?.main_repo_root == null ? null : String(value.main_repo_root)
|
|
657
807
|
};
|
|
658
808
|
}
|
|
809
|
+
function firstString(values) {
|
|
810
|
+
for (const value of values) {
|
|
811
|
+
const text = String(value || '').trim();
|
|
812
|
+
if (text)
|
|
813
|
+
return text;
|
|
814
|
+
}
|
|
815
|
+
return null;
|
|
816
|
+
}
|
|
817
|
+
function mapTelemetryToParallelEvent(eventType) {
|
|
818
|
+
if (eventType === 'slot_reserved')
|
|
819
|
+
return 'slot_reserved';
|
|
820
|
+
if (eventType === 'heartbeat')
|
|
821
|
+
return 'worker_heartbeat_seen';
|
|
822
|
+
if (eventType === 'worker_completed')
|
|
823
|
+
return 'worker_completed';
|
|
824
|
+
if (eventType === 'worker_failed')
|
|
825
|
+
return 'worker_failed';
|
|
826
|
+
return null;
|
|
827
|
+
}
|
|
828
|
+
function normalizeParallelPlacement(value) {
|
|
829
|
+
const text = String(value || '');
|
|
830
|
+
if (text === 'zellij-pane' || text === 'process' || text === 'headless')
|
|
831
|
+
return text;
|
|
832
|
+
return 'unknown';
|
|
833
|
+
}
|
|
834
|
+
async function tailFile(file, max) {
|
|
835
|
+
try {
|
|
836
|
+
const text = await fs.promises.readFile(file, 'utf8');
|
|
837
|
+
return text.length > max ? text.slice(-max) : text;
|
|
838
|
+
}
|
|
839
|
+
catch {
|
|
840
|
+
return '';
|
|
841
|
+
}
|
|
842
|
+
}
|
|
659
843
|
async function waitForChildExit(child, exitPromise, timeoutMs) {
|
|
660
844
|
let timer = null;
|
|
661
845
|
const timeout = new Promise((resolve) => {
|
|
@@ -4,6 +4,7 @@ import { scanAgentTextForRecursion } from './agent-recursion-guard.js';
|
|
|
4
4
|
import { validateAgentWorkerResult } from './agent-worker-pipeline.js';
|
|
5
5
|
import { resolveFastModePolicy } from './fast-mode-policy.js';
|
|
6
6
|
import { runNativeWorkerBackendRouter } from './native-worker-backend-router.js';
|
|
7
|
+
import { appendZellijSlotTelemetry } from '../zellij/zellij-slot-telemetry.js';
|
|
7
8
|
export const NATIVE_CLI_WORKER_SCHEMA = 'sks.native-cli-worker.v1';
|
|
8
9
|
export async function runNativeCliWorkerFromArgs(args = []) {
|
|
9
10
|
const parsed = parseNativeCliWorkerArgs(args);
|
|
@@ -85,6 +86,14 @@ export async function runNativeCliWorker(input = {}) {
|
|
|
85
86
|
strategy_refs: slice.strategy_refs || intake.strategy_refs || null,
|
|
86
87
|
no_recursive_orchestrator_guard: guard.ok
|
|
87
88
|
});
|
|
89
|
+
await workerTelemetry(agentRoot, intake, agent, slice, {
|
|
90
|
+
eventType: 'task_started',
|
|
91
|
+
status: 'running',
|
|
92
|
+
backend,
|
|
93
|
+
serviceTier: policy.service_tier,
|
|
94
|
+
artifacts: [path.join(workerDirRel, 'worker-intake.json'), heartbeatRel],
|
|
95
|
+
logTail: String(slice.description || slice.title || slice.id || 'worker task started')
|
|
96
|
+
});
|
|
88
97
|
await appendJsonl(path.resolve(agentRoot, heartbeatRel), {
|
|
89
98
|
schema: 'sks.native-cli-worker-heartbeat.v1',
|
|
90
99
|
ts: nowIso(),
|
|
@@ -96,6 +105,14 @@ export async function runNativeCliWorker(input = {}) {
|
|
|
96
105
|
fast_mode: policy.fast_mode,
|
|
97
106
|
service_tier: policy.service_tier
|
|
98
107
|
});
|
|
108
|
+
await workerTelemetry(agentRoot, intake, agent, slice, {
|
|
109
|
+
eventType: 'heartbeat',
|
|
110
|
+
status: 'running',
|
|
111
|
+
backend,
|
|
112
|
+
serviceTier: policy.service_tier,
|
|
113
|
+
artifacts: [heartbeatRel],
|
|
114
|
+
logTail: 'worker heartbeat started'
|
|
115
|
+
});
|
|
99
116
|
await writeJsonAtomic(path.join(workerDir, 'worker-fast-mode.json'), {
|
|
100
117
|
schema: 'sks.native-cli-worker-fast-mode.v1',
|
|
101
118
|
generated_at: nowIso(),
|
|
@@ -131,6 +148,14 @@ export async function runNativeCliWorker(input = {}) {
|
|
|
131
148
|
proof_level: routed.report.proof_level,
|
|
132
149
|
envelopes: patchEnvelopes
|
|
133
150
|
});
|
|
151
|
+
await workerTelemetry(agentRoot, intake, agent, slice, {
|
|
152
|
+
eventType: 'patch_candidate',
|
|
153
|
+
status: 'running',
|
|
154
|
+
backend,
|
|
155
|
+
serviceTier: policy.service_tier,
|
|
156
|
+
artifacts: [patchRel],
|
|
157
|
+
logTail: `patch envelopes ${patchEnvelopes.length}`
|
|
158
|
+
});
|
|
134
159
|
}
|
|
135
160
|
else {
|
|
136
161
|
noPatchReason = {
|
|
@@ -145,6 +170,15 @@ export async function runNativeCliWorker(input = {}) {
|
|
|
145
170
|
blockers: Array.isArray(slice.write_paths) && slice.write_paths.length && backend !== 'fake' ? ['write_capable_no_patch_envelope'] : []
|
|
146
171
|
};
|
|
147
172
|
await writeJsonAtomic(path.join(workerDir, 'worker-no-patch-reason.json'), noPatchReason);
|
|
173
|
+
await workerTelemetry(agentRoot, intake, agent, slice, {
|
|
174
|
+
eventType: 'artifact_written',
|
|
175
|
+
status: 'running',
|
|
176
|
+
backend,
|
|
177
|
+
serviceTier: policy.service_tier,
|
|
178
|
+
artifacts: [path.join(workerDirRel, 'worker-no-patch-reason.json')],
|
|
179
|
+
blockers: noPatchReason.blockers || [],
|
|
180
|
+
logTail: noPatchReason.reason
|
|
181
|
+
});
|
|
148
182
|
}
|
|
149
183
|
const minRuntimeMs = Number(intake.min_runtime_ms || input.minRuntimeMs || 0);
|
|
150
184
|
if (Number.isFinite(minRuntimeMs) && minRuntimeMs > 0)
|
|
@@ -226,6 +260,15 @@ export async function runNativeCliWorker(input = {}) {
|
|
|
226
260
|
recursion_guard: { ok: guard.ok, violations: guard.violations }
|
|
227
261
|
});
|
|
228
262
|
await writeJsonAtomic(path.resolve(agentRoot, resultRel), result);
|
|
263
|
+
await workerTelemetry(agentRoot, intake, agent, slice, {
|
|
264
|
+
eventType: result.status === 'done' ? 'worker_completed' : 'worker_failed',
|
|
265
|
+
status: result.status === 'done' ? 'completed' : 'failed',
|
|
266
|
+
backend,
|
|
267
|
+
serviceTier: policy.service_tier,
|
|
268
|
+
artifacts: result.artifacts || [],
|
|
269
|
+
blockers: result.blockers || [],
|
|
270
|
+
logTail: result.summary || ''
|
|
271
|
+
});
|
|
229
272
|
await writeJsonAtomic(path.join(workerDir, 'worker-session-proof.json'), {
|
|
230
273
|
schema: 'sks.native-cli-worker-session-proof.v1',
|
|
231
274
|
generated_at: nowIso(),
|
|
@@ -260,6 +303,15 @@ export async function runNativeCliWorker(input = {}) {
|
|
|
260
303
|
session_id: agent.session_id,
|
|
261
304
|
status: result.status
|
|
262
305
|
});
|
|
306
|
+
await workerTelemetry(agentRoot, intake, agent, slice, {
|
|
307
|
+
eventType: 'heartbeat',
|
|
308
|
+
status: result.status === 'done' ? 'completed' : 'failed',
|
|
309
|
+
backend,
|
|
310
|
+
serviceTier: policy.service_tier,
|
|
311
|
+
artifacts: [heartbeatRel, resultRel],
|
|
312
|
+
blockers: result.blockers || [],
|
|
313
|
+
logTail: 'worker heartbeat finished'
|
|
314
|
+
});
|
|
263
315
|
await writeJsonAtomic(path.join(workerDir, 'worker-terminal-close-report.json'), {
|
|
264
316
|
schema: 'sks.native-cli-worker-terminal-close-report.v1',
|
|
265
317
|
generated_at: nowIso(),
|
|
@@ -317,4 +369,37 @@ function normalizeWorkerWorktree(value) {
|
|
|
317
369
|
main_repo_root: value?.main_repo_root == null ? null : String(value.main_repo_root)
|
|
318
370
|
};
|
|
319
371
|
}
|
|
372
|
+
async function workerTelemetry(agentRoot, intake, agent, slice, input) {
|
|
373
|
+
const missionId = String(intake.mission_id || intake.parent_mission_id || '');
|
|
374
|
+
if (!missionId)
|
|
375
|
+
return;
|
|
376
|
+
await appendZellijSlotTelemetry(agentRoot, {
|
|
377
|
+
schema: 'sks.zellij-slot-telemetry-event.v1',
|
|
378
|
+
ts: nowIso(),
|
|
379
|
+
mission_id: missionId,
|
|
380
|
+
slot_id: String(agent.slot_id || agent.id || 'slot-001'),
|
|
381
|
+
generation_index: Number(agent.generation_index || 1),
|
|
382
|
+
worker_id: String(agent.id || agent.slot_id || 'worker'),
|
|
383
|
+
event_type: input.eventType,
|
|
384
|
+
status: input.status,
|
|
385
|
+
role: String(agent.naruto_role || agent.role || agent.persona_id || agent.id || 'worker'),
|
|
386
|
+
backend: input.backend,
|
|
387
|
+
service_tier: input.serviceTier,
|
|
388
|
+
worktree_id: agent.worktree?.id || slice.worktree?.id || intake.worktree?.id || null,
|
|
389
|
+
worktree_path: agent.worktree?.path || slice.worktree?.path || intake.worktree?.path || null,
|
|
390
|
+
task_title: String(slice.description || slice.title || slice.id || 'worker task'),
|
|
391
|
+
current_file: firstString([slice.write_paths?.[0], slice.readonly_paths?.[0], slice.input_files?.[0]]) || null,
|
|
392
|
+
artifact_paths: input.artifacts || [],
|
|
393
|
+
log_tail: input.logTail || '',
|
|
394
|
+
blockers: input.blockers || []
|
|
395
|
+
}).catch(() => undefined);
|
|
396
|
+
}
|
|
397
|
+
function firstString(values) {
|
|
398
|
+
for (const value of values) {
|
|
399
|
+
const text = String(value || '').trim();
|
|
400
|
+
if (text)
|
|
401
|
+
return text;
|
|
402
|
+
}
|
|
403
|
+
return null;
|
|
404
|
+
}
|
|
320
405
|
//# sourceMappingURL=native-cli-worker.js.map
|