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.
Files changed (491) hide show
  1. package/README.md +6 -3
  2. package/crates/sks-core/Cargo.lock +1 -1
  3. package/crates/sks-core/Cargo.toml +1 -1
  4. package/crates/sks-core/src/main.rs +1 -1
  5. package/dist/.sks-build-stamp.json +4 -4
  6. package/dist/bin/sks.js +1 -1
  7. package/dist/cli/command-registry.js +2 -1
  8. package/dist/commands/mad-db.js +5 -0
  9. package/dist/commands/zellij-slot-pane.js +3 -1
  10. package/dist/core/agents/agent-orchestrator.js +66 -3
  11. package/dist/core/agents/agent-plan.js +3 -2
  12. package/dist/core/agents/agent-scheduler.js +204 -86
  13. package/dist/core/agents/agent-schema.js +1 -1
  14. package/dist/core/agents/native-cli-session-swarm.js +199 -15
  15. package/dist/core/agents/native-cli-worker.js +85 -0
  16. package/dist/core/agents/parallel-runtime-proof.js +217 -0
  17. package/dist/core/codex-control/codex-task-runner.js +32 -4
  18. package/dist/core/codex-control/model-call-concurrency.js +106 -0
  19. package/dist/core/commands/basic-cli.js +1 -1
  20. package/dist/core/commands/command-suggestions.js +1 -1
  21. package/dist/core/commands/mad-db-command.js +106 -0
  22. package/dist/core/commands/mad-sks-command.js +50 -13
  23. package/dist/core/commands/naruto-command.js +128 -5
  24. package/dist/core/commands/research-command.js +13 -1
  25. package/dist/core/commands/team-command.js +23 -175
  26. package/dist/core/db-safety.js +55 -1
  27. package/dist/core/fsx.js +1 -1
  28. package/dist/core/git/git-worktree-capability.js +18 -0
  29. package/dist/core/git/git-worktree-manager.js +80 -0
  30. package/dist/core/git/git-worktree-pool.js +4 -0
  31. package/dist/core/mad-db/mad-db-capability.js +116 -0
  32. package/dist/core/mad-db/mad-db-ledger.js +31 -0
  33. package/dist/core/mad-db/mad-db-policy-resolver.js +48 -0
  34. package/dist/core/naruto/naruto-concurrency-governor.js +14 -1
  35. package/dist/core/pipeline-internals/runtime-core.js +74 -8
  36. package/dist/core/pipeline-internals/runtime-gates.js +44 -0
  37. package/dist/core/proof/route-proof-gate.js +5 -3
  38. package/dist/core/proof/route-proof-policy.js +9 -1
  39. package/dist/core/release/release-gate-affected-selector.js +113 -0
  40. package/dist/core/release/release-gate-batch-runner.js +67 -0
  41. package/dist/core/release/release-gate-dag.js +22 -3
  42. package/dist/core/release/release-gate-resource-governor.js +23 -11
  43. package/dist/core/research/implementation-blueprint-densifier.js +1 -1
  44. package/dist/core/research/implementation-blueprint-markdown.js +1 -1
  45. package/dist/core/research/implementation-blueprint.js +68 -7
  46. package/dist/core/research/research-final-reviewer.js +27 -1
  47. package/dist/core/research/research-handoff.js +69 -5
  48. package/dist/core/research/research-realistic-report.js +162 -0
  49. package/dist/core/research/research-repetition-detector.js +75 -0
  50. package/dist/core/research/research-report-quality.js +27 -5
  51. package/dist/core/research/research-stage-runner.js +40 -13
  52. package/dist/core/research/research-synthesis-prompt.js +52 -0
  53. package/dist/core/research/research-synthesis-writer.js +208 -0
  54. package/dist/core/research.js +60 -48
  55. package/dist/core/routes.js +23 -19
  56. package/dist/core/update/update-notice.js +120 -0
  57. package/dist/core/version.js +1 -1
  58. package/dist/core/zellij/zellij-dashboard-renderer.js +2 -0
  59. package/dist/core/zellij/zellij-slot-column-anchor.js +35 -1
  60. package/dist/core/zellij/zellij-slot-pane-renderer.js +57 -0
  61. package/dist/core/zellij/zellij-slot-telemetry.js +237 -0
  62. package/dist/scripts/release-gate-dag-runner.js +5 -0
  63. package/dist/scripts/release-speed-summary.js +27 -0
  64. package/package.json +76 -5
  65. package/schemas/agents/parallel-runtime-proof.schema.json +48 -0
  66. package/schemas/mad-db/mad-db-capability.schema.json +31 -0
  67. package/schemas/mad-db/mad-db-ledger.schema.json +14 -0
  68. package/schemas/research/implementation-blueprint.schema.json +6 -1
  69. package/schemas/research/research-final-review.schema.json +10 -0
  70. package/schemas/research/research-synthesis-output.schema.json +62 -0
  71. package/schemas/update/update-notice.schema.json +19 -0
  72. package/schemas/zellij/zellij-slot-telemetry.schema.json +89 -0
  73. package/dist/scripts/agent-ast-aware-work-graph-check.js +0 -25
  74. package/dist/scripts/agent-backfill-replenishment-check.js +0 -13
  75. package/dist/scripts/agent-backfill-route-blackbox.js +0 -5
  76. package/dist/scripts/agent-background-terminals-check.js +0 -16
  77. package/dist/scripts/agent-cleanup-command-ux-check.js +0 -12
  78. package/dist/scripts/agent-cleanup-executor-check.js +0 -53
  79. package/dist/scripts/agent-cleanup-executor-v2-check.js +0 -39
  80. package/dist/scripts/agent-cli-options-to-task-graph-check.js +0 -5
  81. package/dist/scripts/agent-codex-app-cockpit-check.js +0 -91
  82. package/dist/scripts/agent-codex-child-overlap-check.js +0 -21
  83. package/dist/scripts/agent-dynamic-cockpit-check.js +0 -10
  84. package/dist/scripts/agent-dynamic-pool-check.js +0 -13
  85. package/dist/scripts/agent-dynamic-pool-route-blackbox.js +0 -5
  86. package/dist/scripts/agent-fast-mode-default-check.js +0 -62
  87. package/dist/scripts/agent-fast-mode-worker-propagation-check.js +0 -7
  88. package/dist/scripts/agent-follow-up-work-schema-check.js +0 -80
  89. package/dist/scripts/agent-goal-mode-propagation-check.js +0 -9
  90. package/dist/scripts/agent-intelligent-work-graph-check.js +0 -25
  91. package/dist/scripts/agent-janitor-check.js +0 -76
  92. package/dist/scripts/agent-main-no-scout-check.js +0 -11
  93. package/dist/scripts/agent-model-authored-patch-envelope-check.js +0 -15
  94. package/dist/scripts/agent-multi-project-isolation-check.js +0 -86
  95. package/dist/scripts/agent-native-cli-session-proof-check.js +0 -7
  96. package/dist/scripts/agent-native-cli-session-swarm-10-check.js +0 -7
  97. package/dist/scripts/agent-native-cli-session-swarm-20-check.js +0 -7
  98. package/dist/scripts/agent-native-cli-session-swarm-check.js +0 -7
  99. package/dist/scripts/agent-no-subagent-scaling-check.js +0 -7
  100. package/dist/scripts/agent-parallel-write-blackbox.js +0 -56
  101. package/dist/scripts/agent-parallel-write-kernel-check.js +0 -103
  102. package/dist/scripts/agent-patch-conflict-rebase-check.js +0 -198
  103. package/dist/scripts/agent-patch-envelope-extraction-check.js +0 -17
  104. package/dist/scripts/agent-patch-proof-check.js +0 -41
  105. package/dist/scripts/agent-patch-proof-runtime-check.js +0 -63
  106. package/dist/scripts/agent-patch-queue-runtime-check.js +0 -36
  107. package/dist/scripts/agent-patch-rollback-check.js +0 -38
  108. package/dist/scripts/agent-patch-rollback-dag-check.js +0 -14
  109. package/dist/scripts/agent-patch-swarm-route-blackbox.js +0 -10
  110. package/dist/scripts/agent-patch-swarm-runtime-check.js +0 -10
  111. package/dist/scripts/agent-patch-swarm-runtime-truth-check.js +0 -76
  112. package/dist/scripts/agent-patch-transaction-journal-check.js +0 -57
  113. package/dist/scripts/agent-patch-verification-dag-check.js +0 -14
  114. package/dist/scripts/agent-proof-contract-reconciled-check.js +0 -5
  115. package/dist/scripts/agent-real-codex-dynamic-smoke-check.js +0 -166
  116. package/dist/scripts/agent-real-codex-dynamic-smoke-v2-check.js +0 -14
  117. package/dist/scripts/agent-real-codex-in-zellij-worker-pane-check.js +0 -229
  118. package/dist/scripts/agent-real-codex-parallel-workers-10-check.js +0 -5
  119. package/dist/scripts/agent-real-codex-parallel-workers-20-check.js +0 -5
  120. package/dist/scripts/agent-real-codex-parallel-workers-5-check.js +0 -5
  121. package/dist/scripts/agent-real-codex-parallel-workers-check.js +0 -5
  122. package/dist/scripts/agent-role-config-repair-check.js +0 -33
  123. package/dist/scripts/agent-rollback-command-check.js +0 -86
  124. package/dist/scripts/agent-route-truth-backfill-check.js +0 -5
  125. package/dist/scripts/agent-scheduler-proof-check.js +0 -13
  126. package/dist/scripts/agent-scheduler-proof-hardening-check.js +0 -22
  127. package/dist/scripts/agent-session-generation-check.js +0 -21
  128. package/dist/scripts/agent-slot-pane-binding-proof-check.js +0 -64
  129. package/dist/scripts/agent-source-intelligence-propagation-check.js +0 -9
  130. package/dist/scripts/agent-strategy-to-lease-wiring-check.js +0 -32
  131. package/dist/scripts/agent-strategy-to-patch-strict-check.js +0 -54
  132. package/dist/scripts/agent-task-graph-expansion-check.js +0 -14
  133. package/dist/scripts/agent-terminal-generations-check.js +0 -23
  134. package/dist/scripts/agent-visual-consistency-check.js +0 -9
  135. package/dist/scripts/agent-wiki-context-proof-check.js +0 -62
  136. package/dist/scripts/agent-worker-backend-router-check.js +0 -63
  137. package/dist/scripts/agent-worker-scout-limited-check.js +0 -17
  138. package/dist/scripts/agent-zellij-dynamic-backfill-panes-check.js +0 -34
  139. package/dist/scripts/agent-zellij-runtime-check.js +0 -84
  140. package/dist/scripts/all-feature-deep-completion-check.js +0 -31
  141. package/dist/scripts/appshots-capability-check.js +0 -18
  142. package/dist/scripts/appshots-evidence-check.js +0 -48
  143. package/dist/scripts/appshots-operator-policy-check.js +0 -25
  144. package/dist/scripts/appshots-privacy-safety-check.js +0 -48
  145. package/dist/scripts/appshots-source-intelligence-check.js +0 -53
  146. package/dist/scripts/appshots-thread-attachment-discovery-check.js +0 -87
  147. package/dist/scripts/appshots-triwiki-voxel-check.js +0 -46
  148. package/dist/scripts/architecture-guard-check.js +0 -55
  149. package/dist/scripts/changelog-check.js +0 -47
  150. package/dist/scripts/codex-0-133-official-compat-report.js +0 -53
  151. package/dist/scripts/codex-0-134-official-compat-report.js +0 -110
  152. package/dist/scripts/codex-0-134-runner-truth-check.js +0 -66
  153. package/dist/scripts/codex-0-135-compat-check.js +0 -57
  154. package/dist/scripts/codex-0-136-compat-check.js +0 -30
  155. package/dist/scripts/codex-0-137-compat-check.js +0 -27
  156. package/dist/scripts/codex-app-fast-ui-preservation-check.js +0 -32
  157. package/dist/scripts/codex-app-provider-badge-check.js +0 -37
  158. package/dist/scripts/codex-app-ui-clobber-guard-check.js +0 -22
  159. package/dist/scripts/codex-app-ui-preservation-check.js +0 -96
  160. package/dist/scripts/codex-control-all-pipelines-check.js +0 -36
  161. package/dist/scripts/codex-control-capability-check.js +0 -10
  162. package/dist/scripts/codex-control-empty-result-retry-check.js +0 -43
  163. package/dist/scripts/codex-control-event-stream-ledger-check.js +0 -10
  164. package/dist/scripts/codex-control-keepalive-no-cot-leak-check.js +0 -14
  165. package/dist/scripts/codex-control-no-legacy-fallback-check.js +0 -31
  166. package/dist/scripts/codex-control-side-effect-scope-check.js +0 -26
  167. package/dist/scripts/codex-control-stream-idle-watchdog-check.js +0 -18
  168. package/dist/scripts/codex-control-structured-output-check.js +0 -11
  169. package/dist/scripts/codex-control-thread-registry-check.js +0 -11
  170. package/dist/scripts/codex-control-tool-call-sequence-repair-check.js +0 -14
  171. package/dist/scripts/codex-environment-scoped-approvals-check.js +0 -10
  172. package/dist/scripts/codex-exec-output-schema-actual-syntax-check.js +0 -33
  173. package/dist/scripts/codex-fast-mode-profile-propagation-check.js +0 -12
  174. package/dist/scripts/codex-history-search-check.js +0 -19
  175. package/dist/scripts/codex-hook-semantic-check.js +0 -15
  176. package/dist/scripts/codex-hook-strict-subset-check.js +0 -61
  177. package/dist/scripts/codex-lb-config-toml-safety-check.js +0 -85
  178. package/dist/scripts/codex-lb-persistence-truth-check.js +0 -96
  179. package/dist/scripts/codex-lb-setup-fixture-check.js +0 -91
  180. package/dist/scripts/codex-lb-setup-truthfulness-check.js +0 -84
  181. package/dist/scripts/codex-legacy-profile-consumers-removed-check.js +0 -24
  182. package/dist/scripts/codex-managed-proxy-env-check.js +0 -17
  183. package/dist/scripts/codex-output-schema-fixture-check.js +0 -25
  184. package/dist/scripts/codex-permission-profiles-check.js +0 -36
  185. package/dist/scripts/codex-plugin-list-json-check.js +0 -8
  186. package/dist/scripts/codex-profile-primary-check.js +0 -13
  187. package/dist/scripts/codex-project-config-policy-splitter-check.js +0 -51
  188. package/dist/scripts/codex-resume-cwd-truth-check.js +0 -17
  189. package/dist/scripts/codex-sdk-all-pipelines-check.js +0 -32
  190. package/dist/scripts/codex-sdk-backend-router-check.js +0 -65
  191. package/dist/scripts/codex-sdk-capability-check.js +0 -11
  192. package/dist/scripts/codex-sdk-core-skill-pipeline-check.js +0 -9
  193. package/dist/scripts/codex-sdk-dfix-pipeline-check.js +0 -9
  194. package/dist/scripts/codex-sdk-event-stream-ledger-check.js +0 -9
  195. package/dist/scripts/codex-sdk-no-legacy-fallback-check.js +0 -33
  196. package/dist/scripts/codex-sdk-qa-pipeline-check.js +0 -8
  197. package/dist/scripts/codex-sdk-real-smoke-check.js +0 -39
  198. package/dist/scripts/codex-sdk-release-review-pipeline-check.js +0 -13
  199. package/dist/scripts/codex-sdk-research-pipeline-check.js +0 -47
  200. package/dist/scripts/codex-sdk-sandbox-policy-check.js +0 -21
  201. package/dist/scripts/codex-sdk-structured-output-check.js +0 -10
  202. package/dist/scripts/codex-sdk-team-naruto-agent-pipeline-check.js +0 -12
  203. package/dist/scripts/codex-sdk-thread-registry-check.js +0 -11
  204. package/dist/scripts/codex-sdk-ux-ppt-review-pipeline-check.js +0 -9
  205. package/dist/scripts/codex-sdk-zellij-pane-binding-check.js +0 -13
  206. package/dist/scripts/codex-thread-runtime-choice-check.js +0 -10
  207. package/dist/scripts/codex-web-adapter-check.js +0 -12
  208. package/dist/scripts/computer-use-live-evidence-check.js +0 -55
  209. package/dist/scripts/computer-use-live-optional-check.js +0 -32
  210. package/dist/scripts/computer-use-policy-check.js +0 -69
  211. package/dist/scripts/computer-use-visual-route-fixture-check.js +0 -37
  212. package/dist/scripts/core-skill-card-schema-check.js +0 -61
  213. package/dist/scripts/core-skill-deployment-snapshot-check.js +0 -54
  214. package/dist/scripts/core-skill-heldout-validation-check.js +0 -49
  215. package/dist/scripts/core-skill-no-inference-optimizer-check.js +0 -75
  216. package/dist/scripts/core-skill-patch-check.js +0 -79
  217. package/dist/scripts/core-skill-promotion-side-effect-ledger-check.js +0 -64
  218. package/dist/scripts/core-skill-rollout-scoring-check.js +0 -72
  219. package/dist/scripts/core-skill-route-runtime-integration-check.js +0 -49
  220. package/dist/scripts/dfix-fast-blackbox-check.js +0 -37
  221. package/dist/scripts/dfix-fast-kernel-check.js +0 -26
  222. package/dist/scripts/dfix-fixture-check.js +0 -6
  223. package/dist/scripts/dfix-parallel-write-blackbox.js +0 -48
  224. package/dist/scripts/dfix-patch-handoff-check.js +0 -13
  225. package/dist/scripts/dfix-patch-swarm-route-blackbox.js +0 -10
  226. package/dist/scripts/dfix-performance-check.js +0 -15
  227. package/dist/scripts/dfix-verification-check.js +0 -9
  228. package/dist/scripts/dfix-verification-recommendation-check.js +0 -15
  229. package/dist/scripts/docs-truthfulness-check.js +0 -61
  230. package/dist/scripts/doctor-codex-doctor-parity-check.js +0 -17
  231. package/dist/scripts/doctor-fix-proves-codex-read-check.js +0 -64
  232. package/dist/scripts/doctor-fix-recovers-corrupted-config-check.js +0 -122
  233. package/dist/scripts/doctor-fixes-codex-app-fast-ui-check.js +0 -39
  234. package/dist/scripts/evidence-fixture-check.js +0 -26
  235. package/dist/scripts/evidence-flagship-coverage-check.js +0 -55
  236. package/dist/scripts/fake-real-proof-policy-v2-check.js +0 -27
  237. package/dist/scripts/fake-vs-real-proof-policy-check.js +0 -14
  238. package/dist/scripts/fast-codex-service-tier-proof-check.js +0 -42
  239. package/dist/scripts/flagship-proof-graph-v2-check.js +0 -48
  240. package/dist/scripts/flagship-proof-graph-v3-check.js +0 -67
  241. package/dist/scripts/flagship-proof-graph-v4-check.js +0 -61
  242. package/dist/scripts/git-precommit-fixture-check.js +0 -41
  243. package/dist/scripts/git-worktree-cache-performance-check.js +0 -25
  244. package/dist/scripts/git-worktree-capability-check.js +0 -27
  245. package/dist/scripts/git-worktree-checkpoint-check.js +0 -20
  246. package/dist/scripts/git-worktree-cleanup-check.js +0 -27
  247. package/dist/scripts/git-worktree-cross-rebase-check.js +0 -39
  248. package/dist/scripts/git-worktree-diff-envelope-check.js +0 -17
  249. package/dist/scripts/git-worktree-diff-export-check.js +0 -43
  250. package/dist/scripts/git-worktree-dirty-lock-check.js +0 -17
  251. package/dist/scripts/git-worktree-dirty-main-detection-check.js +0 -14
  252. package/dist/scripts/git-worktree-integration-primary-check.js +0 -24
  253. package/dist/scripts/git-worktree-integration-primary-runtime-check.js +0 -20
  254. package/dist/scripts/git-worktree-manager-check.js +0 -37
  255. package/dist/scripts/git-worktree-manifest-append-check.js +0 -18
  256. package/dist/scripts/git-worktree-merge-queue-check.js +0 -31
  257. package/dist/scripts/git-worktree-pool-performance-check.js +0 -20
  258. package/dist/scripts/git-worktree-untracked-diff-check.js +0 -18
  259. package/dist/scripts/goal-mode-official-default-check.js +0 -12
  260. package/dist/scripts/gpt-final-arbiter-check.js +0 -63
  261. package/dist/scripts/gpt-final-arbiter-performance-check.js +0 -36
  262. package/dist/scripts/gpt-image-2-request-validator-check.js +0 -35
  263. package/dist/scripts/hooks-0.134-context-parity-check.js +0 -20
  264. package/dist/scripts/hooks-actual-parity-check.js +0 -17
  265. package/dist/scripts/hooks-actual-parity-v2-check.js +0 -21
  266. package/dist/scripts/hooks-latest-schema-check.js +0 -20
  267. package/dist/scripts/hooks-managed-install-fixture-check.js +0 -21
  268. package/dist/scripts/hooks-official-hash-oracle-check.js +0 -35
  269. package/dist/scripts/hooks-official-hash-parity-check.js +0 -17
  270. package/dist/scripts/hooks-subagent-events-check.js +0 -17
  271. package/dist/scripts/hooks-trust-state-check.js +0 -14
  272. package/dist/scripts/image-fidelity-fixture-check.js +0 -24
  273. package/dist/scripts/imagegen-capability-check.js +0 -30
  274. package/dist/scripts/imagegen-real-smoke-check.js +0 -155
  275. package/dist/scripts/install-update-preserves-config-check.js +0 -87
  276. package/dist/scripts/json-schema-recursive-check.js +0 -78
  277. package/dist/scripts/legacy-multiagent-removal-check.js +0 -85
  278. package/dist/scripts/legacy-upgrade-matrix-check.js +0 -300
  279. package/dist/scripts/local-collab-all-pipelines-final-gpt-check.js +0 -21
  280. package/dist/scripts/local-collab-gpt-final-availability-check.js +0 -58
  281. package/dist/scripts/local-collab-no-local-only-final-check.js +0 -27
  282. package/dist/scripts/local-collab-policy-check.js +0 -17
  283. package/dist/scripts/local-collab-worktree-gpt-final-apply-policy-check.js +0 -63
  284. package/dist/scripts/local-llm-all-pipelines-check.js +0 -11
  285. package/dist/scripts/local-llm-cache-performance-check.js +0 -10
  286. package/dist/scripts/local-llm-capability-check.js +0 -14
  287. package/dist/scripts/local-llm-smoke-check.js +0 -23
  288. package/dist/scripts/local-llm-structured-output-check.js +0 -11
  289. package/dist/scripts/local-llm-throughput-check.js +0 -10
  290. package/dist/scripts/local-llm-tool-call-repair-check.js +0 -10
  291. package/dist/scripts/local-llm-warmup-check.js +0 -11
  292. package/dist/scripts/loop-blocker-check.js +0 -15
  293. package/dist/scripts/mad-preflight-blocks-unreadable-config-check.js +0 -35
  294. package/dist/scripts/mad-sks-actual-executor-blackbox.js +0 -5
  295. package/dist/scripts/mad-sks-app-ui-no-mutation-check.js +0 -92
  296. package/dist/scripts/mad-sks-audit-proof-check.js +0 -34
  297. package/dist/scripts/mad-sks-db-executor-check.js +0 -5
  298. package/dist/scripts/mad-sks-executor-proof-graph-check.js +0 -5
  299. package/dist/scripts/mad-sks-fast-mode-propagation-check.js +0 -24
  300. package/dist/scripts/mad-sks-file-write-executor-check.js +0 -5
  301. package/dist/scripts/mad-sks-immutable-harness-check.js +0 -36
  302. package/dist/scripts/mad-sks-no-harness-modification-check.js +0 -25
  303. package/dist/scripts/mad-sks-package-executor-check.js +0 -5
  304. package/dist/scripts/mad-sks-permission-model-check.js +0 -22
  305. package/dist/scripts/mad-sks-rollback-apply-check.js +0 -5
  306. package/dist/scripts/mad-sks-service-executor-check.js +0 -5
  307. package/dist/scripts/mad-sks-shell-executor-check.js +0 -5
  308. package/dist/scripts/mad-sks-write-guard-check.js +0 -28
  309. package/dist/scripts/mad-sks-zellij-default-pane-worker-check.js +0 -37
  310. package/dist/scripts/mad-sks-zellij-launch-check.js +0 -102
  311. package/dist/scripts/mcp-0-134-modernization-check.js +0 -55
  312. package/dist/scripts/mcp-readonly-concurrency-check.js +0 -17
  313. package/dist/scripts/mcp-readonly-runtime-scheduler-check.js +0 -20
  314. package/dist/scripts/mcp-tool-naming-parity-check.js +0 -16
  315. package/dist/scripts/memory-summary-rebuild-check.js +0 -22
  316. package/dist/scripts/mutation-callsite-coverage-check.js +0 -180
  317. package/dist/scripts/naruto-active-pool-check.js +0 -39
  318. package/dist/scripts/naruto-actual-worker-control-plane-check.js +0 -56
  319. package/dist/scripts/naruto-allocation-policy-check.js +0 -33
  320. package/dist/scripts/naruto-allocation-runtime-wiring-check.js +0 -92
  321. package/dist/scripts/naruto-concurrency-governor-check.js +0 -53
  322. package/dist/scripts/naruto-extreme-parallelism-check.js +0 -22
  323. package/dist/scripts/naruto-extreme-parallelism-real-check.js +0 -43
  324. package/dist/scripts/naruto-gpt-final-pack-check.js +0 -34
  325. package/dist/scripts/naruto-orchestrator-runtime-source-check.js +0 -70
  326. package/dist/scripts/naruto-parallel-patch-apply-check.js +0 -41
  327. package/dist/scripts/naruto-readonly-routing-check.js +0 -116
  328. package/dist/scripts/naruto-real-active-pool-check.js +0 -39
  329. package/dist/scripts/naruto-real-active-pool-runtime-check.js +0 -55
  330. package/dist/scripts/naruto-rebalance-policy-check.js +0 -41
  331. package/dist/scripts/naruto-role-distribution-check.js +0 -23
  332. package/dist/scripts/naruto-shadow-clone-swarm-check.js +0 -153
  333. package/dist/scripts/naruto-verification-pool-check.js +0 -36
  334. package/dist/scripts/naruto-work-graph-check.js +0 -24
  335. package/dist/scripts/naruto-worktree-coding-blackbox.js +0 -29
  336. package/dist/scripts/naruto-worktree-coding-check.js +0 -44
  337. package/dist/scripts/naruto-worktree-gpt-final-check.js +0 -45
  338. package/dist/scripts/naruto-worktree-zellij-ui-check.js +0 -28
  339. package/dist/scripts/naruto-zellij-dynamic-right-column-check.js +0 -48
  340. package/dist/scripts/naruto-zellij-massive-ui-check.js +0 -23
  341. package/dist/scripts/non-recursive-pipeline-check.js +0 -68
  342. package/dist/scripts/npm-publish-performance-check.js +0 -65
  343. package/dist/scripts/official-docs-compat-report.js +0 -304
  344. package/dist/scripts/packlist-performance-check.js +0 -83
  345. package/dist/scripts/parallel-verification-engine-check.js +0 -85
  346. package/dist/scripts/postinstall-safe-side-effects-check.js +0 -65
  347. package/dist/scripts/ppt-full-e2e-artifact-graph-check.js +0 -40
  348. package/dist/scripts/ppt-full-e2e-blackbox-check.js +0 -109
  349. package/dist/scripts/ppt-image-voxel-relations-check.js +0 -9
  350. package/dist/scripts/ppt-imagegen-blackbox-check.js +0 -46
  351. package/dist/scripts/ppt-imagegen-review-fixture-check.js +0 -6
  352. package/dist/scripts/ppt-issue-extraction-fixture-check.js +0 -7
  353. package/dist/scripts/ppt-no-mock-as-real-check.js +0 -8
  354. package/dist/scripts/ppt-no-text-fallback-check.js +0 -7
  355. package/dist/scripts/ppt-proof-trust-fixture-check.js +0 -10
  356. package/dist/scripts/ppt-real-export-adapter-check.js +0 -13
  357. package/dist/scripts/ppt-real-imagegen-smoke-check.js +0 -42
  358. package/dist/scripts/ppt-real-imagegen-wiring-check.js +0 -16
  359. package/dist/scripts/ppt-reexport-rereview-check.js +0 -19
  360. package/dist/scripts/ppt-slide-export-fixture-check.js +0 -7
  361. package/dist/scripts/prepublish-fast-check.js +0 -128
  362. package/dist/scripts/priority-full-closure-check.js +0 -12
  363. package/dist/scripts/product-design-auto-install-check.js +0 -119
  364. package/dist/scripts/product-design-plugin-routing-check.js +0 -101
  365. package/dist/scripts/prompt-placeholder-guard-check.js +0 -33
  366. package/dist/scripts/provider-badge-context-check.js +0 -26
  367. package/dist/scripts/provider-context-config-toml-check.js +0 -63
  368. package/dist/scripts/python-codex-sdk-all-pipelines-check.js +0 -47
  369. package/dist/scripts/python-codex-sdk-capability-check.js +0 -75
  370. package/dist/scripts/python-codex-sdk-sandbox-policy-check.js +0 -10
  371. package/dist/scripts/python-codex-sdk-stream-bridge-check.js +0 -12
  372. package/dist/scripts/python-tools-smoke-check.js +0 -71
  373. package/dist/scripts/qa-actual-route-backfill-check.js +0 -5
  374. package/dist/scripts/qa-backfill-route-blackbox.js +0 -5
  375. package/dist/scripts/qa-patch-swarm-route-blackbox.js +0 -10
  376. package/dist/scripts/readme-architecture-imagegen-official-check.js +0 -448
  377. package/dist/scripts/release-cache-glob-hashing-check.js +0 -42
  378. package/dist/scripts/release-dag-full-coverage-check.js +0 -66
  379. package/dist/scripts/release-dist-freshness-check.js +0 -8
  380. package/dist/scripts/release-dynamic-performance-check.js +0 -103
  381. package/dist/scripts/release-gate-budget-check.js +0 -36
  382. package/dist/scripts/release-gate-dag-runner-check.js +0 -17
  383. package/dist/scripts/release-metadata-1-11-check.js +0 -37
  384. package/dist/scripts/release-metadata-1-12-check.js +0 -48
  385. package/dist/scripts/release-metadata-1-13-check.js +0 -53
  386. package/dist/scripts/release-metadata-1-14-check.js +0 -63
  387. package/dist/scripts/release-metadata-1-16-check.js +0 -81
  388. package/dist/scripts/release-metadata-1-17-check.js +0 -51
  389. package/dist/scripts/release-metadata-1-19-check.js +0 -371
  390. package/dist/scripts/release-metadata-check.js +0 -7
  391. package/dist/scripts/release-native-agent-fixture-check.js +0 -41
  392. package/dist/scripts/release-parallel-check.js +0 -374
  393. package/dist/scripts/release-parallel-full-coverage-check.js +0 -13
  394. package/dist/scripts/release-parallel-speed-budget-check.js +0 -84
  395. package/dist/scripts/release-provenance-check.js +0 -150
  396. package/dist/scripts/release-real-check.js +0 -330
  397. package/dist/scripts/release-registry-check.js +0 -344
  398. package/dist/scripts/release-runtime-truth-matrix-check.js +0 -47
  399. package/dist/scripts/release-stability-report-check.js +0 -99
  400. package/dist/scripts/release-version-truth-check.js +0 -134
  401. package/dist/scripts/research-actual-route-backfill-check.js +0 -5
  402. package/dist/scripts/research-backfill-route-blackbox.js +0 -5
  403. package/dist/scripts/research-blueprint-densifier-check.js +0 -21
  404. package/dist/scripts/research-claim-builder-check.js +0 -19
  405. package/dist/scripts/research-complete-package-fixture-check.js +0 -23
  406. package/dist/scripts/research-final-reviewer-blackbox.js +0 -22
  407. package/dist/scripts/research-parallel-source-shards-check.js +0 -22
  408. package/dist/scripts/research-quality-gate-check.js +0 -111
  409. package/dist/scripts/research-real-cycle-no-legacy-final-md-check.js +0 -14
  410. package/dist/scripts/research-short-report-rejection-check.js +0 -46
  411. package/dist/scripts/research-source-ledger-merge-check.js +0 -26
  412. package/dist/scripts/research-stage-cycle-runtime-blackbox.js +0 -24
  413. package/dist/scripts/responses-retry-policy-centralized-check.js +0 -19
  414. package/dist/scripts/retention-cleanup-safety-check.js +0 -155
  415. package/dist/scripts/route-blackbox-realism-check.js +0 -21
  416. package/dist/scripts/route-proof-artifact-structure-check.js +0 -145
  417. package/dist/scripts/runtime-dist-parity-check.js +0 -78
  418. package/dist/scripts/runtime-no-mjs-scripts-check.js +0 -45
  419. package/dist/scripts/runtime-no-src-mjs-check.js +0 -32
  420. package/dist/scripts/runtime-no-tmux-check.js +0 -113
  421. package/dist/scripts/runtime-ts-python-boundary-check.js +0 -59
  422. package/dist/scripts/runtime-ts-rust-boundary-check.js +0 -74
  423. package/dist/scripts/runtime-ts-source-of-truth-check.js +0 -55
  424. package/dist/scripts/safety-check.js +0 -23
  425. package/dist/scripts/shared-memory-fixture-check.js +0 -27
  426. package/dist/scripts/side-effect-runtime-report-check.js +0 -19
  427. package/dist/scripts/side-effect-zero-gate-check.js +0 -226
  428. package/dist/scripts/sks-1-11-fixture-check.js +0 -130
  429. package/dist/scripts/source-intelligence-all-modes-check.js +0 -32
  430. package/dist/scripts/source-intelligence-policy-check.js +0 -13
  431. package/dist/scripts/strategy-adhd-orchestrating-gate-check.js +0 -22
  432. package/dist/scripts/strategy-file-ownership-plan-check.js +0 -18
  433. package/dist/scripts/strategy-parallel-modification-plan-check.js +0 -19
  434. package/dist/scripts/strategy-verification-rollback-dag-check.js +0 -19
  435. package/dist/scripts/team-actual-route-backfill-check.js +0 -5
  436. package/dist/scripts/team-backfill-route-blackbox.js +0 -5
  437. package/dist/scripts/team-parallel-write-blackbox.js +0 -55
  438. package/dist/scripts/team-patch-swarm-route-blackbox.js +0 -10
  439. package/dist/scripts/terminal-keyboard-enhancement-safety-check.js +0 -12
  440. package/dist/scripts/terminal-tui-output-stability-check.js +0 -35
  441. package/dist/scripts/test-no-orphan-dist-imports-check.js +0 -73
  442. package/dist/scripts/trust-fixture-check.js +0 -33
  443. package/dist/scripts/typescript-migration-report.js +0 -78
  444. package/dist/scripts/ultra-router-auto-router-check.js +0 -33
  445. package/dist/scripts/ultra-router-classification-check.js +0 -28
  446. package/dist/scripts/ux-patch-swarm-route-blackbox.js +0 -10
  447. package/dist/scripts/ux-ppt-structured-extraction-check.js +0 -21
  448. package/dist/scripts/ux-review-extract-real-callouts-fixture-check.js +0 -8
  449. package/dist/scripts/ux-review-extract-wires-real-extractor-check.js +0 -15
  450. package/dist/scripts/ux-review-generate-callouts-fixture-check.js +0 -9
  451. package/dist/scripts/ux-review-image-voxel-relations-check.js +0 -31
  452. package/dist/scripts/ux-review-imagegen-blackbox-check.js +0 -67
  453. package/dist/scripts/ux-review-no-fake-callouts-check.js +0 -8
  454. package/dist/scripts/ux-review-no-text-fallback-check.js +0 -25
  455. package/dist/scripts/ux-review-patch-diff-recheck-check.js +0 -20
  456. package/dist/scripts/ux-review-patch-handoff-fixture-check.js +0 -8
  457. package/dist/scripts/ux-review-real-imagegen-smoke-check.js +0 -31
  458. package/dist/scripts/ux-review-real-loop-fixture-check.js +0 -24
  459. package/dist/scripts/ux-review-recapture-recheck-fixture-check.js +0 -8
  460. package/dist/scripts/ux-review-run-wires-imagegen-check.js +0 -11
  461. package/dist/scripts/worker-pane-communication-contract-check.js +0 -54
  462. package/dist/scripts/wrongness-fixture-check.js +0 -65
  463. package/dist/scripts/xai-mcp-capability-check.js +0 -14
  464. package/dist/scripts/zellij-capability-check.js +0 -15
  465. package/dist/scripts/zellij-dashboard-pane-check.js +0 -70
  466. package/dist/scripts/zellij-developer-controls-check.js +0 -20
  467. package/dist/scripts/zellij-doctor-readiness-check.js +0 -63
  468. package/dist/scripts/zellij-dynamic-pane-lifecycle-check.js +0 -21
  469. package/dist/scripts/zellij-first-slot-down-stack-check.js +0 -20
  470. package/dist/scripts/zellij-first-slot-down-stack-real-check.js +0 -356
  471. package/dist/scripts/zellij-initial-main-only-blackbox.js +0 -28
  472. package/dist/scripts/zellij-lane-renderer-check.js +0 -65
  473. package/dist/scripts/zellij-launch-command-truth-check.js +0 -75
  474. package/dist/scripts/zellij-layout-valid-check.js +0 -90
  475. package/dist/scripts/zellij-pane-proof-check.js +0 -59
  476. package/dist/scripts/zellij-real-session-cleanup-check.js +0 -21
  477. package/dist/scripts/zellij-real-session-heartbeat-check.js +0 -49
  478. package/dist/scripts/zellij-real-session-launch-check.js +0 -57
  479. package/dist/scripts/zellij-right-column-headless-overflow-check.js +0 -22
  480. package/dist/scripts/zellij-right-column-manager-check.js +0 -27
  481. package/dist/scripts/zellij-screen-proof-check.js +0 -45
  482. package/dist/scripts/zellij-slot-column-anchor-check.js +0 -66
  483. package/dist/scripts/zellij-slot-only-ui-check.js +0 -26
  484. package/dist/scripts/zellij-slot-pane-renderer-check.js +0 -106
  485. package/dist/scripts/zellij-slot-renderer-proof-semantics-check.js +0 -59
  486. package/dist/scripts/zellij-spawn-on-demand-layout-check.js +0 -40
  487. package/dist/scripts/zellij-ui-design-check.js +0 -105
  488. package/dist/scripts/zellij-worker-pane-manager-check.js +0 -109
  489. package/dist/scripts/zellij-worker-pane-manager-single-owner-check.js +0 -47
  490. package/dist/scripts/zellij-worker-pane-real-ui-blackbox.js +0 -202
  491. 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 launchBlockers = paneRecord.blockers || [];
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 processRun = uiMode === 'full-debug'
373
- ? null
374
- : await this.spawnCompactSlotWorkerProcess({
375
- args: input.args,
376
- cwd: workerCwd,
377
- env: workerEnv,
378
- stdoutRel: input.stdoutRel,
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
- await waitForWorkerHeartbeat(path.join(this.root, input.heartbeatRel), Number(process.env.SKS_ZELLIJ_WORKER_HEARTBEAT_TIMEOUT_MS || 30000));
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 ? [] : ['zellij_worker_heartbeat_missing'])
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