sneakoscope 1.18.2 → 1.18.4

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 (51) hide show
  1. package/README.md +14 -2
  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/build-manifest.json +17 -9
  8. package/dist/cli/feature-commands.js +16 -5
  9. package/dist/commands/image-ux-review.d.ts +67 -7
  10. package/dist/commands/ppt.d.ts +67 -7
  11. package/dist/core/agents/agent-cleanup-executor.d.ts +47 -0
  12. package/dist/core/agents/agent-cleanup-executor.js +211 -0
  13. package/dist/core/agents/agent-command-surface.d.ts +3 -0
  14. package/dist/core/agents/agent-command-surface.js +4 -1
  15. package/dist/core/agents/agent-orchestrator.d.ts +67 -7
  16. package/dist/core/agents/agent-orchestrator.js +72 -6
  17. package/dist/core/agents/agent-proof-evidence.d.ts +46 -1
  18. package/dist/core/agents/agent-proof-evidence.js +76 -1
  19. package/dist/core/agents/agent-runner-codex-exec.js +10 -0
  20. package/dist/core/agents/agent-runner-tmux.js +35 -1
  21. package/dist/core/agents/agent-schema.d.ts +2 -0
  22. package/dist/core/agents/agent-trust-report.d.ts +20 -0
  23. package/dist/core/agents/agent-trust-report.js +28 -2
  24. package/dist/core/agents/agent-work-partition.d.ts +3 -7
  25. package/dist/core/agents/agent-work-partition.js +11 -2
  26. package/dist/core/agents/intelligent-work-graph.d.ts +40 -0
  27. package/dist/core/agents/intelligent-work-graph.js +217 -0
  28. package/dist/core/agents/route-collaboration-ledger.d.ts +67 -7
  29. package/dist/core/agents/tmux-lane-supervisor.d.ts +3 -0
  30. package/dist/core/agents/tmux-lane-supervisor.js +58 -2
  31. package/dist/core/agents/tmux-physical-proof.d.ts +184 -0
  32. package/dist/core/agents/tmux-physical-proof.js +269 -0
  33. package/dist/core/agents/work-partition/repo-inventory.js +1 -1
  34. package/dist/core/codex-hooks/codex-hook-actual-discovery.d.ts +1 -0
  35. package/dist/core/codex-hooks/codex-hook-actual-discovery.js +6 -2
  36. package/dist/core/codex-hooks/codex-hook-trust-doctor.d.ts +29 -0
  37. package/dist/core/codex-hooks/codex-hook-trust-doctor.js +12 -2
  38. package/dist/core/commands/agent-command.js +13 -6
  39. package/dist/core/commands/image-ux-review-command.d.ts +67 -7
  40. package/dist/core/commands/ppt-command.d.ts +67 -7
  41. package/dist/core/commands/qa-loop-command.js +7 -3
  42. package/dist/core/commands/research-command.js +6 -3
  43. package/dist/core/commands/team-command.js +9 -1
  44. package/dist/core/fsx.d.ts +1 -1
  45. package/dist/core/fsx.js +1 -1
  46. package/dist/core/proof/fake-real-proof-policy.d.ts +15 -0
  47. package/dist/core/proof/fake-real-proof-policy.js +52 -0
  48. package/dist/core/routes.js +1 -1
  49. package/dist/core/version.d.ts +1 -1
  50. package/dist/core/version.js +1 -1
  51. package/package.json +18 -2
package/README.md CHANGED
@@ -10,7 +10,7 @@ SKS does not try to clone every other harness. It focuses on one thing: making C
10
10
 
11
11
  ## Current Release
12
12
 
13
- SKS **1.18.2** completes the Dynamic Worker Pool runtime: `agents=5` means five target active worker slots, while `--work-items N` controls the route work queue. Pending work backfills empty slots immediately, tmux lanes persist as worker-slot UI until scheduler drain, follow-up work items are schema-bound, and Agent/Team/Research/QA route blackboxes prove replenishment with generation, terminal, Source Intelligence, and Goal evidence.
13
+ SKS **1.18.4** closes the runtime-truth gap left after the route-truth Dynamic Worker Pool work: real tmux mode now requires physical pane evidence from `tmux list-panes`, `tmux capture-pane`, pane-id reconciliation, and drain-close checks; real Codex dynamic smoke is opt-in through `SKS_TEST_REAL_DYNAMIC_AGENTS=1`; `sks agent close/cleanup` now writes executor proof for stale process, tmux, temp, and lock cleanup; and the task graph carries an intelligent work graph score, test ownership, critical path, and integration bottleneck artifacts. Fake fixture evidence remains useful for hermetic release gates, but it is explicitly separated from real runtime proof.
14
14
 
15
15
  ```bash
16
16
  sks mad-sks plan --target-root <path> --json
@@ -23,7 +23,13 @@ sks agent run "release review" --agents 8 --work-items 16 --concurrency 4 --mock
23
23
  npm run source-intelligence:all-modes
24
24
  npm run agent:background-terminals
25
25
  npm run agent:tmux-lane-no-flicker
26
+ npm run agent:cleanup-executor
27
+ npm run agent:intelligent-work-graph
28
+ npm run proof:fake-vs-real-policy
29
+ npm run route:blackbox-realism
30
+ npm run release:real-check
26
31
  npm run agent:backfill-route-blackbox
32
+ npm run team:actual-route-backfill
27
33
  npm run release:readiness
28
34
  ```
29
35
 
@@ -57,6 +63,12 @@ Detailed release history lives in [CHANGELOG.md](CHANGELOG.md). Current release
57
63
  - Main no-Scout / worker Scout policy: [docs/main-no-scout-worker-scout-policy.md](docs/main-no-scout-worker-scout-policy.md)
58
64
  - Agent terminal lanes: [docs/agent-terminal-lanes.md](docs/agent-terminal-lanes.md)
59
65
  - tmux right-lane cockpit: [docs/tmux-right-lane-cockpit.md](docs/tmux-right-lane-cockpit.md)
66
+ - Real tmux pane proof: [docs/real-tmux-pane-proof.md](docs/real-tmux-pane-proof.md)
67
+ - Real Codex dynamic smoke: [docs/real-codex-dynamic-smoke.md](docs/real-codex-dynamic-smoke.md)
68
+ - Agent cleanup executor: [docs/agent-cleanup-executor.md](docs/agent-cleanup-executor.md)
69
+ - Intelligent work graph: [docs/intelligent-work-graph.md](docs/intelligent-work-graph.md)
70
+ - Fake vs real proof policy: [docs/fake-vs-real-proof-policy.md](docs/fake-vs-real-proof-policy.md)
71
+ - Migration 1.18.3 to 1.18.4: [docs/migration-1.18.3-to-1.18.4.md](docs/migration-1.18.3-to-1.18.4.md)
60
72
  - Codex official Goal mode: [docs/codex-official-goal-mode.md](docs/codex-official-goal-mode.md)
61
73
  - Release parallel full coverage: [docs/release-parallel-full-coverage.md](docs/release-parallel-full-coverage.md)
62
74
  - Priority closure P0-P4: [docs/priority-closure-p0-p4.md](docs/priority-closure-p0-p4.md)
@@ -613,7 +625,7 @@ npm run release:check
613
625
  npm run publish:dry
614
626
  ```
615
627
 
616
- `release:check` runs the 1.18.2 dynamic scheduler closure DAG, writes a source digest stamp under `.sneakoscope/reports/`, then refreshes release readiness so publish commands can verify the same stamp. The DAG preserves the 1.18 baseline gates and adds task graph expansion, schema-bound follow-up work, Agent/Team/Research/QA route backfill blackboxes, scheduler proof hardening, persistent tmux lane persistence, no-flicker lane proof, session generation, terminal generation, dynamic cockpit, Source Intelligence propagation, and Goal mode propagation checks. Broader live or historical gates remain explicit scripts such as `release:real-check`. Generate the human-readable registry with `sks features inventory --write-docs`. Plain `npm publish` uses the `latest` dist-tag. npm's `prepublishOnly` verifies the fresh release stamp instead of rerunning the full gate, and `prepack` only rebuilds `dist`; publish no longer repeats the expensive release suite during packaging. `npm run publish:dry` remains the explicit dry-run helper.
628
+ `release:check` runs the 1.18.3 route-truth dynamic scheduler closure DAG, writes a source digest stamp under `.sneakoscope/reports/`, then refreshes release readiness so publish commands can verify the same stamp. The DAG preserves the 1.18 baseline gates and adds task graph expansion, schema-bound follow-up work, actual Agent/Team/Research/QA route backfill blackboxes, scheduler proof hardening, persistent tmux lane supervisor integration, no-flicker lane proof, session generation, terminal generation, dynamic cockpit, Source Intelligence propagation, and Goal mode propagation checks. Broader live or historical gates remain explicit scripts such as `release:real-check`. Generate the human-readable registry with `sks features inventory --write-docs`. Plain `npm publish` uses the `latest` dist-tag. npm's `prepublishOnly` verifies the fresh release stamp instead of rerunning the full gate, and `prepack` only rebuilds `dist`; publish no longer repeats the expensive release suite during packaging. `npm run publish:dry` remains the explicit dry-run helper.
617
629
 
618
630
  Version bumps are manual. Run `sks versioning bump` only when preparing release metadata; SKS will not create `.git/hooks/pre-commit` or auto-bump during ordinary commits.
619
631
 
@@ -76,7 +76,7 @@ dependencies = [
76
76
 
77
77
  [[package]]
78
78
  name = "sks-core"
79
- version = "1.18.2"
79
+ version = "1.18.4"
80
80
  dependencies = [
81
81
  "serde_json",
82
82
  ]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sks-core"
3
- version = "1.18.2"
3
+ version = "1.18.4"
4
4
  edition = "2021"
5
5
 
6
6
  [dependencies]
@@ -4,7 +4,7 @@ use std::io::{self, Read, Seek, SeekFrom};
4
4
  fn main() {
5
5
  let mut args = std::env::args().skip(1);
6
6
  match args.next().as_deref() {
7
- Some("--version") => println!("sks-rs 1.18.2"),
7
+ Some("--version") => println!("sks-rs 1.18.4"),
8
8
  Some("compact-info") => {
9
9
  let mut input = String::new();
10
10
  let _ = io::stdin().read_to_string(&mut input);
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schema": "sks.dist-build-stamp.v1",
3
3
  "package_name": "sneakoscope",
4
- "package_version": "1.18.2",
5
- "source_digest": "83db107971a9e8bec6aaca8f43bf8b49d936e5fc778ebd62121dea9b7fc228f5",
6
- "source_file_count": 1349,
7
- "built_at_source_time": 1779732183819
4
+ "package_version": "1.18.4",
5
+ "source_digest": "33109bbaf2af23979db84be40e35c9d47e2b35618270ab31547bfda9b59f590f",
6
+ "source_file_count": 1405,
7
+ "built_at_source_time": 1779777408842
8
8
  }
package/dist/bin/sks.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- const FAST_PACKAGE_VERSION = '1.18.2';
2
+ const FAST_PACKAGE_VERSION = '1.18.3';
3
3
  const args = process.argv.slice(2);
4
4
  try {
5
5
  if (args[0] === '--version' || args[0] === '-v' || args[0] === 'version') {
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "schema": "sks.dist-build.v2",
3
- "version": "1.18.2",
4
- "package_version": "1.18.2",
3
+ "version": "1.18.4",
4
+ "package_version": "1.18.4",
5
5
  "typescript": true,
6
6
  "mjs_runtime_files": 0,
7
- "compiled_file_count": 864,
8
- "compiled_js_count": 432,
9
- "compiled_dts_count": 432,
10
- "source_digest": "83db107971a9e8bec6aaca8f43bf8b49d936e5fc778ebd62121dea9b7fc228f5",
11
- "source_file_count": 1349,
12
- "source_files_hash": "fb0fc5d3cacbb13d3231fcf9d0566e1bad998e7bc8aeea7c7e4f10049e433c11",
13
- "source_list_hash": "fb0fc5d3cacbb13d3231fcf9d0566e1bad998e7bc8aeea7c7e4f10049e433c11",
7
+ "compiled_file_count": 872,
8
+ "compiled_js_count": 436,
9
+ "compiled_dts_count": 436,
10
+ "source_digest": "33109bbaf2af23979db84be40e35c9d47e2b35618270ab31547bfda9b59f590f",
11
+ "source_file_count": 1405,
12
+ "source_files_hash": "eef20a281a31010636ae8b25a6e03acd3ac4564fb9870beed34653150250e3fe",
13
+ "source_list_hash": "eef20a281a31010636ae8b25a6e03acd3ac4564fb9870beed34653150250e3fe",
14
14
  "src_mjs_runtime_files": 0,
15
15
  "dist_stamp_schema": "sks.dist-build-stamp.v1",
16
16
  "files": [
@@ -186,6 +186,8 @@
186
186
  "commands/wiki.js",
187
187
  "core/agents/agent-central-ledger.d.ts",
188
188
  "core/agents/agent-central-ledger.js",
189
+ "core/agents/agent-cleanup-executor.d.ts",
190
+ "core/agents/agent-cleanup-executor.js",
189
191
  "core/agents/agent-cleanup.d.ts",
190
192
  "core/agents/agent-cleanup.js",
191
193
  "core/agents/agent-codex-cockpit.d.ts",
@@ -262,12 +264,16 @@
262
264
  "core/agents/agent-worker-slot.js",
263
265
  "core/agents/agent-wrongness.d.ts",
264
266
  "core/agents/agent-wrongness.js",
267
+ "core/agents/intelligent-work-graph.d.ts",
268
+ "core/agents/intelligent-work-graph.js",
265
269
  "core/agents/route-collaboration-ledger.d.ts",
266
270
  "core/agents/route-collaboration-ledger.js",
267
271
  "core/agents/scout-policy.d.ts",
268
272
  "core/agents/scout-policy.js",
269
273
  "core/agents/tmux-lane-supervisor.d.ts",
270
274
  "core/agents/tmux-lane-supervisor.js",
275
+ "core/agents/tmux-physical-proof.d.ts",
276
+ "core/agents/tmux-physical-proof.js",
271
277
  "core/agents/tmux-right-lane-cockpit.d.ts",
272
278
  "core/agents/tmux-right-lane-cockpit.js",
273
279
  "core/agents/work-partition/conflict-detector.d.ts",
@@ -713,6 +719,8 @@
713
719
  "core/proof/command-ledger.js",
714
720
  "core/proof/evidence-collector.d.ts",
715
721
  "core/proof/evidence-collector.js",
722
+ "core/proof/fake-real-proof-policy.d.ts",
723
+ "core/proof/fake-real-proof-policy.js",
716
724
  "core/proof/file-change-ledger.d.ts",
717
725
  "core/proof/file-change-ledger.js",
718
726
  "core/proof/proof-reader.d.ts",
@@ -171,18 +171,29 @@ export async function hooksCommand(sub = 'explain', args = []) {
171
171
  return;
172
172
  }
173
173
  }
174
- const report = await installManagedCodexHooks(root);
174
+ const projectReport = await installManagedCodexHooks(root);
175
+ const userReport = await installManagedCodexHooks(root, {
176
+ requirementsPath: path.join(os.homedir(), '.codex', 'requirements.toml'),
177
+ managedDir: path.join(os.homedir(), '.codex', 'managed-hooks')
178
+ });
179
+ const actual = await codexHookTrustDoctor(root, { actual: true });
175
180
  const result = {
176
- ...report,
177
181
  schema: 'sks.codex-hooks-repair.v1',
182
+ ok: Boolean(projectReport.ok && userReport.ok && actual.ok),
178
183
  mode: 'managed',
184
+ root,
185
+ project_install: projectReport,
186
+ user_install: userReport,
187
+ actual_trust: actual.trust,
188
+ managed_dirs: actual.managed_dirs || [],
189
+ blockers: actual.blockers || [],
179
190
  next_command: 'sks hooks trust-doctor --actual --json',
180
- actions: ['requirements_toml_managed_install_default']
191
+ actions: ['project_requirements_toml_managed_install', 'user_requirements_toml_managed_install']
181
192
  };
182
193
  if (flag(args, '--json'))
183
194
  return console.log(JSON.stringify(result, null, 2));
184
- console.log(`Hooks managed repair: ${report.ok ? 'ok' : 'blocked'}`);
185
- if (!report.ok)
195
+ console.log(`Hooks managed repair: ${result.ok ? 'ok' : 'blocked'}`);
196
+ if (!result.ok)
186
197
  process.exitCode = 1;
187
198
  return;
188
199
  }
@@ -385,6 +385,8 @@ export declare function run(command: any, args?: any): Promise<void | {
385
385
  ok: boolean;
386
386
  mission_id: any;
387
387
  route: string;
388
+ route_command: string;
389
+ route_blackbox_kind: string;
388
390
  backend: "tmux" | "fake" | "process" | "codex-exec";
389
391
  ledger_root: string;
390
392
  roster: {
@@ -436,12 +438,11 @@ export declare function run(command: any, args?: any): Promise<void | {
436
438
  lease_count: number;
437
439
  blockers: string[];
438
440
  };
439
- task_graph: {
440
- target_active_slots: number;
441
- total_work_items: number;
442
- generated_from_route: string;
443
- work_items_exceed_active_slots: boolean;
444
- };
441
+ task_graph: any;
442
+ requested_work_items: number;
443
+ actual_total_work_items: any;
444
+ target_active_slots: number;
445
+ minimum_work_items: number;
445
446
  scheduler: {
446
447
  schema: string;
447
448
  ok: boolean;
@@ -572,6 +573,26 @@ export declare function run(command: any, args?: any): Promise<void | {
572
573
  pane_survival_checked: boolean;
573
574
  unexpected_close_count: number;
574
575
  lane_count: number;
576
+ physical_tmux_verified: boolean;
577
+ physical_proof_status: any;
578
+ list_panes_artifact: any;
579
+ capture_pane_artifacts: any;
580
+ };
581
+ cleanup_executor: {
582
+ status: string;
583
+ proof: string | null;
584
+ stale_processes_killed: any;
585
+ stale_tmux_panes_closed: any;
586
+ orphan_temp_dirs_removed: any;
587
+ stale_locks_removed: any;
588
+ skipped_active_sessions: any;
589
+ };
590
+ intelligent_work_graph: {
591
+ status: string;
592
+ score: any;
593
+ test_ownership: string;
594
+ critical_path: string;
595
+ integration_bottlenecks: string;
575
596
  };
576
597
  output_schema_ok: boolean;
577
598
  output_tail_report: string;
@@ -600,6 +621,10 @@ export declare function run(command: any, args?: any): Promise<void | {
600
621
  generated_at: string;
601
622
  mission_id: string;
602
623
  backend: string;
624
+ route: string;
625
+ route_command: string;
626
+ route_blackbox_kind: string;
627
+ real_route_command_used: boolean;
603
628
  real_parallel_claim: boolean;
604
629
  fake_backend_disclaimer: string | null;
605
630
  agent_count: any;
@@ -615,26 +640,61 @@ export declare function run(command: any, args?: any): Promise<void | {
615
640
  session_generation_count: number;
616
641
  all_generations_closed: boolean;
617
642
  scheduler_state: string;
618
- target_active_slots: any;
643
+ target_active_slots: number;
644
+ requested_work_items: number;
645
+ actual_total_work_items: number;
646
+ minimum_work_items: number;
647
+ task_graph_total_work_items: number;
648
+ work_queue_total_work_items: number;
649
+ scheduler_total_work_items: number;
650
+ task_graph_matches_cli_options: boolean;
651
+ work_queue_matches_task_graph: boolean;
652
+ scheduler_matches_work_queue: boolean;
619
653
  max_observed_active_slots: any;
620
654
  pending_queue_drained: boolean;
621
655
  backfill_count: any;
622
656
  expected_backfill_count: any;
657
+ backfill_expected_for_route: boolean;
623
658
  slot_count: any;
624
659
  generation_count: number;
625
660
  all_slots_closed_after_drain: boolean;
626
661
  generated_work_item_count: any;
627
662
  source_intelligence_generation_refs_ok: boolean;
628
663
  goal_mode_generation_refs_ok: boolean;
664
+ task_graph_source_refs_ok: any;
665
+ task_graph_goal_refs_ok: any;
666
+ work_queue_source_refs_ok: any;
667
+ work_queue_goal_refs_ok: any;
629
668
  tmux_lane_manifest: string;
630
669
  tmux_lane_manifest_ok: boolean;
631
670
  tmux_lane_supervisor: string;
671
+ lane_supervisor_integrated: boolean;
632
672
  tmux_lane_no_flicker_verified: boolean;
633
673
  tmux_lane_survival_checked: boolean;
634
674
  tmux_lane_unexpected_close_count: number;
635
675
  tmux_lane_auto_reopen_count: number;
636
676
  tmux_pane_launch_ledger: string;
637
677
  tmux_pane_launch_count: number;
678
+ physical_tmux_verified: boolean;
679
+ tmux_physical_proof: string;
680
+ tmux_list_panes_artifact: any;
681
+ tmux_capture_pane_artifacts: any;
682
+ tmux_pane_id_reconciled: boolean;
683
+ real_truth_summary: {
684
+ fake_backend: boolean;
685
+ physical_tmux_verified: boolean;
686
+ real_tmux_status: any;
687
+ cleanup_executor_status: string;
688
+ work_graph_quality_score: number;
689
+ fake_vs_real_policy: string;
690
+ };
691
+ intelligent_work_graph: string;
692
+ test_ownership_map: string;
693
+ critical_path: string;
694
+ integration_bottlenecks: string;
695
+ work_graph_quality_score: number;
696
+ work_graph_quality_partial: boolean;
697
+ terminal_reports_match_generations: boolean;
638
698
  ledger_hash_chain_ok: boolean;
639
699
  no_overlap_ok: boolean;
640
700
  consensus_ok: boolean;
@@ -237,6 +237,8 @@ export declare function run(command: any, args?: any): Promise<void | {
237
237
  ok: boolean;
238
238
  mission_id: any;
239
239
  route: string;
240
+ route_command: string;
241
+ route_blackbox_kind: string;
240
242
  backend: "tmux" | "fake" | "process" | "codex-exec";
241
243
  ledger_root: string;
242
244
  roster: {
@@ -288,12 +290,11 @@ export declare function run(command: any, args?: any): Promise<void | {
288
290
  lease_count: number;
289
291
  blockers: string[];
290
292
  };
291
- task_graph: {
292
- target_active_slots: number;
293
- total_work_items: number;
294
- generated_from_route: string;
295
- work_items_exceed_active_slots: boolean;
296
- };
293
+ task_graph: any;
294
+ requested_work_items: number;
295
+ actual_total_work_items: any;
296
+ target_active_slots: number;
297
+ minimum_work_items: number;
297
298
  scheduler: {
298
299
  schema: string;
299
300
  ok: boolean;
@@ -424,6 +425,26 @@ export declare function run(command: any, args?: any): Promise<void | {
424
425
  pane_survival_checked: boolean;
425
426
  unexpected_close_count: number;
426
427
  lane_count: number;
428
+ physical_tmux_verified: boolean;
429
+ physical_proof_status: any;
430
+ list_panes_artifact: any;
431
+ capture_pane_artifacts: any;
432
+ };
433
+ cleanup_executor: {
434
+ status: string;
435
+ proof: string | null;
436
+ stale_processes_killed: any;
437
+ stale_tmux_panes_closed: any;
438
+ orphan_temp_dirs_removed: any;
439
+ stale_locks_removed: any;
440
+ skipped_active_sessions: any;
441
+ };
442
+ intelligent_work_graph: {
443
+ status: string;
444
+ score: any;
445
+ test_ownership: string;
446
+ critical_path: string;
447
+ integration_bottlenecks: string;
427
448
  };
428
449
  output_schema_ok: boolean;
429
450
  output_tail_report: string;
@@ -452,6 +473,10 @@ export declare function run(command: any, args?: any): Promise<void | {
452
473
  generated_at: string;
453
474
  mission_id: string;
454
475
  backend: string;
476
+ route: string;
477
+ route_command: string;
478
+ route_blackbox_kind: string;
479
+ real_route_command_used: boolean;
455
480
  real_parallel_claim: boolean;
456
481
  fake_backend_disclaimer: string | null;
457
482
  agent_count: any;
@@ -467,26 +492,61 @@ export declare function run(command: any, args?: any): Promise<void | {
467
492
  session_generation_count: number;
468
493
  all_generations_closed: boolean;
469
494
  scheduler_state: string;
470
- target_active_slots: any;
495
+ target_active_slots: number;
496
+ requested_work_items: number;
497
+ actual_total_work_items: number;
498
+ minimum_work_items: number;
499
+ task_graph_total_work_items: number;
500
+ work_queue_total_work_items: number;
501
+ scheduler_total_work_items: number;
502
+ task_graph_matches_cli_options: boolean;
503
+ work_queue_matches_task_graph: boolean;
504
+ scheduler_matches_work_queue: boolean;
471
505
  max_observed_active_slots: any;
472
506
  pending_queue_drained: boolean;
473
507
  backfill_count: any;
474
508
  expected_backfill_count: any;
509
+ backfill_expected_for_route: boolean;
475
510
  slot_count: any;
476
511
  generation_count: number;
477
512
  all_slots_closed_after_drain: boolean;
478
513
  generated_work_item_count: any;
479
514
  source_intelligence_generation_refs_ok: boolean;
480
515
  goal_mode_generation_refs_ok: boolean;
516
+ task_graph_source_refs_ok: any;
517
+ task_graph_goal_refs_ok: any;
518
+ work_queue_source_refs_ok: any;
519
+ work_queue_goal_refs_ok: any;
481
520
  tmux_lane_manifest: string;
482
521
  tmux_lane_manifest_ok: boolean;
483
522
  tmux_lane_supervisor: string;
523
+ lane_supervisor_integrated: boolean;
484
524
  tmux_lane_no_flicker_verified: boolean;
485
525
  tmux_lane_survival_checked: boolean;
486
526
  tmux_lane_unexpected_close_count: number;
487
527
  tmux_lane_auto_reopen_count: number;
488
528
  tmux_pane_launch_ledger: string;
489
529
  tmux_pane_launch_count: number;
530
+ physical_tmux_verified: boolean;
531
+ tmux_physical_proof: string;
532
+ tmux_list_panes_artifact: any;
533
+ tmux_capture_pane_artifacts: any;
534
+ tmux_pane_id_reconciled: boolean;
535
+ real_truth_summary: {
536
+ fake_backend: boolean;
537
+ physical_tmux_verified: boolean;
538
+ real_tmux_status: any;
539
+ cleanup_executor_status: string;
540
+ work_graph_quality_score: number;
541
+ fake_vs_real_policy: string;
542
+ };
543
+ intelligent_work_graph: string;
544
+ test_ownership_map: string;
545
+ critical_path: string;
546
+ integration_bottlenecks: string;
547
+ work_graph_quality_score: number;
548
+ work_graph_quality_partial: boolean;
549
+ terminal_reports_match_generations: boolean;
490
550
  ledger_hash_chain_ok: boolean;
491
551
  no_overlap_ok: boolean;
492
552
  consensus_ok: boolean;
@@ -0,0 +1,47 @@
1
+ export declare const AGENT_CLEANUP_PROOF_SCHEMA = "sks.agent-cleanup-proof.v1";
2
+ export declare const AGENT_CLEANUP_ACTION_LEDGER_SCHEMA = "sks.agent-cleanup-action-ledger.v1";
3
+ export interface AgentCleanupExecutorOptions {
4
+ missionDir: string;
5
+ missionId?: string | null;
6
+ action?: 'cleanup' | 'close';
7
+ apply?: boolean;
8
+ dryRun?: boolean;
9
+ drain?: boolean;
10
+ staleMs?: number;
11
+ }
12
+ type CleanupActionKind = 'terminate_process' | 'close_tmux_pane' | 'remove_temp_dir' | 'remove_lock' | 'skip_active_session' | 'skip_foreign_namespace' | 'archive_transcript_keep';
13
+ interface CleanupAction {
14
+ kind: CleanupActionKind;
15
+ target: string;
16
+ status: 'planned' | 'applied' | 'skipped' | 'failed';
17
+ reason: string;
18
+ error?: string;
19
+ }
20
+ export declare function runAgentCleanupExecutor(opts: AgentCleanupExecutorOptions): Promise<{
21
+ schema: string;
22
+ generated_at: string;
23
+ ok: boolean;
24
+ mission_id: string | null;
25
+ project_namespace: string | null;
26
+ action: string;
27
+ dry_run: boolean;
28
+ apply: boolean;
29
+ stale_processes_found: string[];
30
+ stale_processes_killed: string[];
31
+ stale_tmux_panes_found: string[];
32
+ stale_tmux_panes_closed: string[];
33
+ orphan_temp_dirs_found: string[];
34
+ orphan_temp_dirs_removed: string[];
35
+ stale_locks_found: string[];
36
+ stale_locks_removed: string[];
37
+ skipped_active_sessions: string[];
38
+ skipped_foreign_namespace: string[];
39
+ terminal_transcripts_preserved: string[];
40
+ action_count: number;
41
+ applied_count: number;
42
+ failed_count: number;
43
+ actions: CleanupAction[];
44
+ blockers: string[];
45
+ }>;
46
+ export {};
47
+ //# sourceMappingURL=agent-cleanup-executor.d.ts.map