sneakoscope 1.18.7 → 1.18.8

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 (70) hide show
  1. package/README.md +28 -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 +21 -9
  8. package/dist/commands/image-ux-review.d.ts +143 -0
  9. package/dist/commands/ppt.d.ts +143 -0
  10. package/dist/core/agents/agent-merge-coordinator.d.ts +9 -0
  11. package/dist/core/agents/agent-merge-coordinator.js +5 -0
  12. package/dist/core/agents/agent-orchestrator.d.ts +143 -0
  13. package/dist/core/agents/agent-orchestrator.js +90 -3
  14. package/dist/core/agents/agent-patch-apply-worker.d.ts +5 -0
  15. package/dist/core/agents/agent-patch-apply-worker.js +130 -13
  16. package/dist/core/agents/agent-patch-proof.d.ts +8 -1
  17. package/dist/core/agents/agent-patch-proof.js +28 -2
  18. package/dist/core/agents/agent-patch-queue.d.ts +24 -0
  19. package/dist/core/agents/agent-patch-queue.js +37 -14
  20. package/dist/core/agents/agent-patch-schema.d.ts +7 -1
  21. package/dist/core/agents/agent-patch-schema.js +13 -2
  22. package/dist/core/agents/agent-proof-evidence.d.ts +6 -0
  23. package/dist/core/agents/agent-proof-evidence.js +13 -1
  24. package/dist/core/agents/agent-schema.d.ts +4 -0
  25. package/dist/core/agents/agent-task-graph.d.ts +16 -0
  26. package/dist/core/agents/agent-task-graph.js +23 -9
  27. package/dist/core/agents/agent-work-partition.d.ts +12 -0
  28. package/dist/core/agents/agent-work-partition.js +3 -1
  29. package/dist/core/agents/route-collaboration-ledger.d.ts +143 -0
  30. package/dist/core/auto-review.d.ts +2 -0
  31. package/dist/core/auto-review.js +71 -24
  32. package/dist/core/codex/appshots-detector.d.ts +20 -0
  33. package/dist/core/codex/appshots-detector.js +29 -0
  34. package/dist/core/codex/appshots-operator-policy.d.ts +23 -0
  35. package/dist/core/codex/appshots-operator-policy.js +24 -0
  36. package/dist/core/commands/gc-command.js +2 -1
  37. package/dist/core/commands/image-ux-review-command.d.ts +143 -0
  38. package/dist/core/commands/ppt-command.d.ts +143 -0
  39. package/dist/core/fsx.d.ts +1 -1
  40. package/dist/core/fsx.js +1 -1
  41. package/dist/core/ppt.js +1 -1
  42. package/dist/core/proof/route-adapter.d.ts +13 -0
  43. package/dist/core/proof/route-adapter.js +25 -1
  44. package/dist/core/proof/route-finalizer.d.ts +13 -0
  45. package/dist/core/proof/runtime-truth-matrix.d.ts +1 -1
  46. package/dist/core/proof/runtime-truth-matrix.js +27 -1
  47. package/dist/core/proof/selftest-proof-fixtures.d.ts +13 -0
  48. package/dist/core/retention.d.ts +18 -1
  49. package/dist/core/retention.js +306 -15
  50. package/dist/core/source-intelligence/appshots-evidence.d.ts +54 -0
  51. package/dist/core/source-intelligence/appshots-evidence.js +108 -0
  52. package/dist/core/source-intelligence/source-intelligence-proof.d.ts +4 -0
  53. package/dist/core/source-intelligence/source-intelligence-proof.js +9 -1
  54. package/dist/core/source-intelligence/source-intelligence-runner.d.ts +18 -0
  55. package/dist/core/source-intelligence/source-intelligence-runner.js +16 -3
  56. package/dist/core/strategy/adhd-orchestrating-gate.d.ts +179 -0
  57. package/dist/core/strategy/adhd-orchestrating-gate.js +234 -0
  58. package/dist/core/strategy/strategy-compiler.d.ts +59 -0
  59. package/dist/core/strategy/strategy-compiler.js +123 -0
  60. package/dist/core/strategy/strategy-gate.d.ts +26 -0
  61. package/dist/core/strategy/strategy-gate.js +38 -0
  62. package/dist/core/tmux-ui.d.ts +1 -1
  63. package/dist/core/tmux-ui.js +36 -4
  64. package/dist/core/trust-kernel/trust-status.d.ts +1 -1
  65. package/dist/core/verification/verification-proof.js +1 -1
  66. package/dist/core/verification/verification-result.d.ts +6 -0
  67. package/dist/core/version.d.ts +1 -1
  68. package/dist/core/version.js +1 -1
  69. package/dist/scripts/release-parallel-check.js +66 -1
  70. package/package.json +15 -2
package/README.md CHANGED
@@ -16,7 +16,7 @@ Set up this agent project with Sneakoscope Codex. Use [[mandarange/Sneakoscope-C
16
16
 
17
17
  ## Current Release
18
18
 
19
- SKS **1.18.7** closes the Codex 0.134 ultra-stability loop: the release matrix now covers `--profile` as the primary selector, bounded local Codex history search, managed proxy propagation, MCP 0.134 environment/OAuth/schema/readOnlyHint policy, proof-safe parallel agent patches, runtime truth P6 rows, the 1.18.7 release gate audit, MAD-SKS as general scoped permission widening, and gpt-image-2 imagegen as a core evidence capability.
19
+ SKS **1.18.8** closes the Codex 0.134 ultra-stability loop: the release matrix now covers `--profile` as the primary selector, bounded local Codex history search, managed proxy propagation, MCP 0.134 environment/OAuth/schema/readOnlyHint policy, proof-safe parallel agent patches, runtime truth P6 rows, the 1.18.8 release gate audit, MAD-SKS as general scoped permission widening, gpt-image-2 imagegen as a core evidence capability, and retention cleanup that preserves durable learning while removing finished route scratch.
20
20
 
21
21
  ```bash
22
22
  sks mad-sks plan --target-root <path> --json
@@ -31,6 +31,7 @@ npm run agent:background-terminals
31
31
  npm run agent:tmux-lane-no-flicker
32
32
  npm run agent:cleanup-executor
33
33
  npm run agent:cleanup-executor-v2
34
+ npm run retention:cleanup-safety
34
35
  npm run agent:intelligent-work-graph
35
36
  npm run agent:ast-aware-work-graph
36
37
  npm run proof:fake-vs-real-policy
@@ -39,7 +40,12 @@ npm run release:runtime-truth-matrix
39
40
  npm run codex:0.134-official-compat
40
41
  npm run codex:profile-primary
41
42
  npm run codex:managed-proxy-env
43
+ npm run strategy:adhd-orchestrating-gate
44
+ npm run strategy:parallel-modification-plan
45
+ npm run appshots:evidence
46
+ npm run appshots:source-intelligence
42
47
  npm run mcp:0.134-modernization
48
+ npm run mcp:readonly-concurrency
43
49
  npm run source-intelligence:codex-history-search
44
50
  npm run agent:parallel-write-kernel
45
51
  npm run release:gate-existence-audit
@@ -52,6 +58,21 @@ npm run release:readiness
52
58
 
53
59
  Detailed release history lives in [CHANGELOG.md](CHANGELOG.md); every version-facing change should be recorded there before release. Current release gate status lives in [docs/release-readiness.md](docs/release-readiness.md).
54
60
 
61
+ ## Retention And Cleanup
62
+
63
+ SKS keeps durable learning context separate from disposable route work files. Durable context includes `.sneakoscope/memory/**`, shared TriWiki records, `.sneakoscope/wiki/context-pack.json`, wrongness memory, image voxels, avoidance rules, route Completion Proof, trust reports, evidence indexes, reflections, and agent proof summaries. These files are treated as the long-term learning and audit chain.
64
+
65
+ Temporary route files are cleaned after a route is closed enough to preserve its proof chain and by `sks gc`: `.sneakoscope/tmp/*`, closed mission `team-inbox/`, `bus/`, `cycles/`, `arenas/`, agent lane/worktree scratch, mission `*.stdout.log` / `*.stderr.log`, and release-parallel raw logs after their inline summaries are written into the JSON/MD report. Post-route cleanup is bounded to the completed route so large mission stores do not stall normal commands; full old/excess mission sweeping remains an explicit `sks gc` operation. Active missions, blocked-route diagnostics, and terminal transcripts stay in place so live debugging and the current route are not disrupted. Old/excess missions that contain proof or learning artifacts are compacted rather than deleted wholesale.
66
+
67
+ ```bash
68
+ sks gc --dry-run --json
69
+ sks gc --json
70
+ sks stats --json
71
+ npm run retention:cleanup-safety
72
+ ```
73
+
74
+ The cleanup contract is policy-backed in `.sneakoscope/policy.json`, but the default posture is now immediate cleanup for short-lived temp files while preserving long-term SKS learning and proof artifacts.
75
+
55
76
  ## Documentation
56
77
 
57
78
  - Completion Proof: [docs/completion-proof.md](docs/completion-proof.md)
@@ -87,7 +108,12 @@ Detailed release history lives in [CHANGELOG.md](CHANGELOG.md); every version-fa
87
108
  - Fake vs real proof policy: [docs/fake-vs-real-proof-policy.md](docs/fake-vs-real-proof-policy.md)
88
109
  - Runtime truth matrix: [docs/runtime-truth-matrix.md](docs/runtime-truth-matrix.md)
89
110
  - Warp MAD tmux lanes: [docs/warp-mad-tmux-lanes.md](docs/warp-mad-tmux-lanes.md)
90
- - Migration 1.18.6 to 1.18.7: [docs/migration-1.18.6-to-1.18.7.md](docs/migration-1.18.6-to-1.18.7.md)
111
+ - ADHD orchestration gate: [docs/adhd-orchestrating-gate.md](docs/adhd-orchestrating-gate.md)
112
+ - Strategy-first parallel write: [docs/strategy-first-parallel-write.md](docs/strategy-first-parallel-write.md)
113
+ - Appshots pipeline: [docs/appshots-pipeline.md](docs/appshots-pipeline.md)
114
+ - Parallel write agents: [docs/parallel-write-agents.md](docs/parallel-write-agents.md)
115
+ - Agent patch queue: [docs/agent-patch-queue.md](docs/agent-patch-queue.md)
116
+ - Migration 1.18.7 to 1.18.8: [docs/migration-1.18.7-to-1.18.8.md](docs/migration-1.18.7-to-1.18.8.md)
91
117
  - Codex official Goal mode: [docs/codex-official-goal-mode.md](docs/codex-official-goal-mode.md)
92
118
  - Release parallel full coverage: [docs/release-parallel-full-coverage.md](docs/release-parallel-full-coverage.md)
93
119
  - Priority closure P0-P4: [docs/priority-closure-p0-p4.md](docs/priority-closure-p0-p4.md)
@@ -76,7 +76,7 @@ dependencies = [
76
76
 
77
77
  [[package]]
78
78
  name = "sks-core"
79
- version = "1.18.7"
79
+ version = "1.18.8"
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.7"
3
+ version = "1.18.8"
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.7"),
7
+ Some("--version") => println!("sks-rs 1.18.8"),
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.7",
5
- "source_digest": "49e153f303c7d5abf79e2f2fe77ecfd9215172f34b2fb944fd34095aa9bf638c",
6
- "source_file_count": 1466,
7
- "built_at_source_time": 1779875860601
4
+ "package_version": "1.18.8",
5
+ "source_digest": "f00f42e2af3a45681da126c20bfcd5d3345fd2ace666c76010660d39ca88cdc6",
6
+ "source_file_count": 1514,
7
+ "built_at_source_time": 1779887241763
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.7';
2
+ const FAST_PACKAGE_VERSION = '1.18.8';
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.7",
4
- "package_version": "1.18.7",
3
+ "version": "1.18.8",
4
+ "package_version": "1.18.8",
5
5
  "typescript": true,
6
6
  "mjs_runtime_files": 0,
7
- "compiled_file_count": 896,
8
- "compiled_js_count": 448,
9
- "compiled_dts_count": 448,
10
- "source_digest": "49e153f303c7d5abf79e2f2fe77ecfd9215172f34b2fb944fd34095aa9bf638c",
11
- "source_file_count": 1466,
12
- "source_files_hash": "743d83c31ee39e65ac8d73c42993b5baffed6474210ec913259194ca1e58900f",
13
- "source_list_hash": "743d83c31ee39e65ac8d73c42993b5baffed6474210ec913259194ca1e58900f",
7
+ "compiled_file_count": 908,
8
+ "compiled_js_count": 454,
9
+ "compiled_dts_count": 454,
10
+ "source_digest": "f00f42e2af3a45681da126c20bfcd5d3345fd2ace666c76010660d39ca88cdc6",
11
+ "source_file_count": 1514,
12
+ "source_files_hash": "617adc02ea5a7a6cf0ad7cfac691a817e9fb26380d5f21a249eaea89c0a7b8ea",
13
+ "source_list_hash": "617adc02ea5a7a6cf0ad7cfac691a817e9fb26380d5f21a249eaea89c0a7b8ea",
14
14
  "src_mjs_runtime_files": 0,
15
15
  "dist_stamp_schema": "sks.dist-build-stamp.v1",
16
16
  "files": [
@@ -368,6 +368,10 @@
368
368
  "core/codex-lb/codex-lb-setup.js",
369
369
  "core/codex-model-guard.d.ts",
370
370
  "core/codex-model-guard.js",
371
+ "core/codex/appshots-detector.d.ts",
372
+ "core/codex/appshots-detector.js",
373
+ "core/codex/appshots-operator-policy.d.ts",
374
+ "core/codex/appshots-operator-policy.js",
371
375
  "core/codex/codex-0-134-compat.d.ts",
372
376
  "core/codex/codex-0-134-compat.js",
373
377
  "core/codex/codex-web-search-adapter.d.ts",
@@ -789,6 +793,8 @@
789
793
  "core/session/project-namespace.js",
790
794
  "core/skill-forge.d.ts",
791
795
  "core/skill-forge.js",
796
+ "core/source-intelligence/appshots-evidence.d.ts",
797
+ "core/source-intelligence/appshots-evidence.js",
792
798
  "core/source-intelligence/codex-history-search.d.ts",
793
799
  "core/source-intelligence/codex-history-search.js",
794
800
  "core/source-intelligence/source-intelligence-policy.d.ts",
@@ -797,6 +803,12 @@
797
803
  "core/source-intelligence/source-intelligence-proof.js",
798
804
  "core/source-intelligence/source-intelligence-runner.d.ts",
799
805
  "core/source-intelligence/source-intelligence-runner.js",
806
+ "core/strategy/adhd-orchestrating-gate.d.ts",
807
+ "core/strategy/adhd-orchestrating-gate.js",
808
+ "core/strategy/strategy-compiler.d.ts",
809
+ "core/strategy/strategy-compiler.js",
810
+ "core/strategy/strategy-gate.d.ts",
811
+ "core/strategy/strategy-gate.js",
800
812
  "core/structured-output-adapter.d.ts",
801
813
  "core/structured-output-adapter.js",
802
814
  "core/team-dag.d.ts",
@@ -384,6 +384,134 @@ export declare function run(command: any, args?: any): Promise<void | {
384
384
  };
385
385
  };
386
386
  agent_run: {
387
+ schema: string;
388
+ ok: boolean;
389
+ status: string;
390
+ mission_id: any;
391
+ route: string;
392
+ route_command: string;
393
+ route_blackbox_kind: string;
394
+ backend: "tmux" | "fake" | "process" | "codex-exec";
395
+ ledger_root: string;
396
+ roster: {
397
+ schema: string;
398
+ default_agents: any;
399
+ max_agents: number;
400
+ agent_count: any;
401
+ concurrency: number;
402
+ batch_count: number;
403
+ personas: any;
404
+ persona_uniqueness: {
405
+ ok: boolean;
406
+ duplicate_ids: never[];
407
+ };
408
+ roster: any;
409
+ effort_policy: any;
410
+ } | {
411
+ effort_policy: {
412
+ schema: string;
413
+ policy_version: number;
414
+ dynamic: boolean;
415
+ service_tier: string;
416
+ allowed_efforts: string[];
417
+ max_agents: any;
418
+ agent_count: any;
419
+ concurrency: any;
420
+ decisions: any;
421
+ rule: string;
422
+ };
423
+ schema: string;
424
+ default_agents: number;
425
+ max_agents: number;
426
+ agent_count: number;
427
+ concurrency: number;
428
+ batch_count: number;
429
+ personas: import("../core/agents/agent-schema.js").AgentPersona[];
430
+ persona_uniqueness: {
431
+ ok: boolean;
432
+ duplicates: string[];
433
+ duplicate_stable_ids: string[];
434
+ recursive_personas: string[];
435
+ incomplete_personas: string[];
436
+ };
437
+ roster: import("../core/agents/agent-schema.js").AgentRosterEntry[];
438
+ };
439
+ partition: {
440
+ ok: boolean;
441
+ slice_count: number;
442
+ lease_count: number;
443
+ blockers: string[];
444
+ };
445
+ task_graph: null;
446
+ requested_work_items: number;
447
+ actual_total_work_items: number;
448
+ target_active_slots: number;
449
+ minimum_work_items: number;
450
+ source_intelligence: {
451
+ artifact: string;
452
+ ok: boolean;
453
+ mode: import("../core/source-intelligence/source-intelligence-policy.js").SourceIntelligenceMode;
454
+ cache_key: string;
455
+ proof_ok: boolean;
456
+ };
457
+ goal_mode: {
458
+ artifact: string;
459
+ ok: boolean;
460
+ mode: "official_goal_default" | "sks_goal_fallback";
461
+ official_goal_available: boolean;
462
+ default_enabled: boolean;
463
+ };
464
+ strategy_gate: import("../core/strategy/strategy-gate.js").StrategyGateResult;
465
+ scheduler: {
466
+ ok: boolean;
467
+ status: string;
468
+ scheduler_allowed: boolean;
469
+ blockers: string[];
470
+ };
471
+ results: never[];
472
+ consensus: {
473
+ ok: boolean;
474
+ blockers: string[];
475
+ };
476
+ output_validation: {
477
+ ok: boolean;
478
+ blockers: string[];
479
+ };
480
+ backend_report: {
481
+ ok: boolean;
482
+ blockers: string[];
483
+ };
484
+ recursion: {
485
+ ok: boolean;
486
+ violations: never[];
487
+ };
488
+ timeout_kill: {
489
+ killed_sessions: never[];
490
+ };
491
+ output_tails: {
492
+ ok: boolean;
493
+ records: never[];
494
+ };
495
+ cleanup: {
496
+ ok: boolean;
497
+ all_sessions_closed: boolean;
498
+ blockers: never[];
499
+ };
500
+ trust: {
501
+ ok: boolean;
502
+ blockers: string[];
503
+ };
504
+ wrongness: {
505
+ ok: boolean;
506
+ blockers: string[];
507
+ };
508
+ parallel_write_policy: null;
509
+ proof: {
510
+ ok: boolean;
511
+ status: string;
512
+ blockers: string[];
513
+ };
514
+ } | {
387
515
  schema: string;
388
516
  ok: boolean;
389
517
  mission_id: any;
@@ -468,6 +596,7 @@ export declare function run(command: any, args?: any): Promise<void | {
468
596
  official_goal_available: boolean;
469
597
  default_enabled: boolean;
470
598
  };
599
+ strategy_gate: import("../core/strategy/strategy-gate.js").StrategyGateResult;
471
600
  results: any[];
472
601
  consensus: {
473
602
  schema: string;
@@ -643,6 +772,14 @@ export declare function run(command: any, args?: any): Promise<void | {
643
772
  patch_queue_required: boolean;
644
773
  patch_apply_mode: string;
645
774
  route_level_flags_wired: boolean;
775
+ strategy_gate: {
776
+ artifact: string;
777
+ ok: boolean;
778
+ scheduler_allowed: boolean;
779
+ strategy_first_required: boolean;
780
+ micro_win_count: number;
781
+ appshots_operator_action_required: boolean;
782
+ };
646
783
  };
647
784
  proof: {
648
785
  schema: string;
@@ -656,6 +793,9 @@ export declare function run(command: any, args?: any): Promise<void | {
656
793
  route_blackbox_kind: string;
657
794
  real_route_command_used: boolean;
658
795
  parallel_write_policy: string;
796
+ strategy_gate: string;
797
+ strategy_gate_ok: boolean;
798
+ strategy_scheduler_allowed: boolean;
659
799
  parallel_write_route_flags_wired: boolean;
660
800
  parallel_write_mode: any;
661
801
  parallel_write_apply_patches: boolean;
@@ -701,6 +841,8 @@ export declare function run(command: any, args?: any): Promise<void | {
701
841
  task_graph_goal_refs_ok: any;
702
842
  work_queue_source_refs_ok: any;
703
843
  work_queue_goal_refs_ok: any;
844
+ task_graph_strategy_refs_ok: any;
845
+ work_queue_strategy_refs_ok: any;
704
846
  tmux_lane_manifest: string;
705
847
  tmux_lane_manifest_ok: boolean;
706
848
  tmux_lane_supervisor: string;
@@ -754,6 +896,7 @@ export declare function run(command: any, args?: any): Promise<void | {
754
896
  dependency_collision_risk: any;
755
897
  blockers: any[];
756
898
  };
899
+ status?: never;
757
900
  };
758
901
  artifacts: {
759
902
  plan: string;
@@ -233,6 +233,134 @@ export declare function run(command: any, args?: any): Promise<void | {
233
233
  };
234
234
  };
235
235
  agent_run: {
236
+ schema: string;
237
+ ok: boolean;
238
+ status: string;
239
+ mission_id: any;
240
+ route: string;
241
+ route_command: string;
242
+ route_blackbox_kind: string;
243
+ backend: "tmux" | "fake" | "process" | "codex-exec";
244
+ ledger_root: string;
245
+ roster: {
246
+ schema: string;
247
+ default_agents: any;
248
+ max_agents: number;
249
+ agent_count: any;
250
+ concurrency: number;
251
+ batch_count: number;
252
+ personas: any;
253
+ persona_uniqueness: {
254
+ ok: boolean;
255
+ duplicate_ids: never[];
256
+ };
257
+ roster: any;
258
+ effort_policy: any;
259
+ } | {
260
+ effort_policy: {
261
+ schema: string;
262
+ policy_version: number;
263
+ dynamic: boolean;
264
+ service_tier: string;
265
+ allowed_efforts: string[];
266
+ max_agents: any;
267
+ agent_count: any;
268
+ concurrency: any;
269
+ decisions: any;
270
+ rule: string;
271
+ };
272
+ schema: string;
273
+ default_agents: number;
274
+ max_agents: number;
275
+ agent_count: number;
276
+ concurrency: number;
277
+ batch_count: number;
278
+ personas: import("../core/agents/agent-schema.js").AgentPersona[];
279
+ persona_uniqueness: {
280
+ ok: boolean;
281
+ duplicates: string[];
282
+ duplicate_stable_ids: string[];
283
+ recursive_personas: string[];
284
+ incomplete_personas: string[];
285
+ };
286
+ roster: import("../core/agents/agent-schema.js").AgentRosterEntry[];
287
+ };
288
+ partition: {
289
+ ok: boolean;
290
+ slice_count: number;
291
+ lease_count: number;
292
+ blockers: string[];
293
+ };
294
+ task_graph: null;
295
+ requested_work_items: number;
296
+ actual_total_work_items: number;
297
+ target_active_slots: number;
298
+ minimum_work_items: number;
299
+ source_intelligence: {
300
+ artifact: string;
301
+ ok: boolean;
302
+ mode: import("../core/source-intelligence/source-intelligence-policy.js").SourceIntelligenceMode;
303
+ cache_key: string;
304
+ proof_ok: boolean;
305
+ };
306
+ goal_mode: {
307
+ artifact: string;
308
+ ok: boolean;
309
+ mode: "official_goal_default" | "sks_goal_fallback";
310
+ official_goal_available: boolean;
311
+ default_enabled: boolean;
312
+ };
313
+ strategy_gate: import("../core/strategy/strategy-gate.js").StrategyGateResult;
314
+ scheduler: {
315
+ ok: boolean;
316
+ status: string;
317
+ scheduler_allowed: boolean;
318
+ blockers: string[];
319
+ };
320
+ results: never[];
321
+ consensus: {
322
+ ok: boolean;
323
+ blockers: string[];
324
+ };
325
+ output_validation: {
326
+ ok: boolean;
327
+ blockers: string[];
328
+ };
329
+ backend_report: {
330
+ ok: boolean;
331
+ blockers: string[];
332
+ };
333
+ recursion: {
334
+ ok: boolean;
335
+ violations: never[];
336
+ };
337
+ timeout_kill: {
338
+ killed_sessions: never[];
339
+ };
340
+ output_tails: {
341
+ ok: boolean;
342
+ records: never[];
343
+ };
344
+ cleanup: {
345
+ ok: boolean;
346
+ all_sessions_closed: boolean;
347
+ blockers: never[];
348
+ };
349
+ trust: {
350
+ ok: boolean;
351
+ blockers: string[];
352
+ };
353
+ wrongness: {
354
+ ok: boolean;
355
+ blockers: string[];
356
+ };
357
+ parallel_write_policy: null;
358
+ proof: {
359
+ ok: boolean;
360
+ status: string;
361
+ blockers: string[];
362
+ };
363
+ } | {
236
364
  schema: string;
237
365
  ok: boolean;
238
366
  mission_id: any;
@@ -317,6 +445,7 @@ export declare function run(command: any, args?: any): Promise<void | {
317
445
  official_goal_available: boolean;
318
446
  default_enabled: boolean;
319
447
  };
448
+ strategy_gate: import("../core/strategy/strategy-gate.js").StrategyGateResult;
320
449
  results: any[];
321
450
  consensus: {
322
451
  schema: string;
@@ -492,6 +621,14 @@ export declare function run(command: any, args?: any): Promise<void | {
492
621
  patch_queue_required: boolean;
493
622
  patch_apply_mode: string;
494
623
  route_level_flags_wired: boolean;
624
+ strategy_gate: {
625
+ artifact: string;
626
+ ok: boolean;
627
+ scheduler_allowed: boolean;
628
+ strategy_first_required: boolean;
629
+ micro_win_count: number;
630
+ appshots_operator_action_required: boolean;
631
+ };
495
632
  };
496
633
  proof: {
497
634
  schema: string;
@@ -505,6 +642,9 @@ export declare function run(command: any, args?: any): Promise<void | {
505
642
  route_blackbox_kind: string;
506
643
  real_route_command_used: boolean;
507
644
  parallel_write_policy: string;
645
+ strategy_gate: string;
646
+ strategy_gate_ok: boolean;
647
+ strategy_scheduler_allowed: boolean;
508
648
  parallel_write_route_flags_wired: boolean;
509
649
  parallel_write_mode: any;
510
650
  parallel_write_apply_patches: boolean;
@@ -550,6 +690,8 @@ export declare function run(command: any, args?: any): Promise<void | {
550
690
  task_graph_goal_refs_ok: any;
551
691
  work_queue_source_refs_ok: any;
552
692
  work_queue_goal_refs_ok: any;
693
+ task_graph_strategy_refs_ok: any;
694
+ work_queue_strategy_refs_ok: any;
553
695
  tmux_lane_manifest: string;
554
696
  tmux_lane_manifest_ok: boolean;
555
697
  tmux_lane_supervisor: string;
@@ -603,6 +745,7 @@ export declare function run(command: any, args?: any): Promise<void | {
603
745
  dependency_collision_risk: any;
604
746
  blockers: any[];
605
747
  };
748
+ status?: never;
606
749
  };
607
750
  artifacts: {
608
751
  plan: string;
@@ -9,6 +9,15 @@ export declare function coordinateAgentPatchMerge(envelopes: AgentPatchEnvelope[
9
9
  file: string;
10
10
  agents: string[];
11
11
  }[];
12
+ parallel_batches: {
13
+ batch_id: string;
14
+ agents: string[];
15
+ }[];
16
+ serial_conflicts: {
17
+ file: string;
18
+ agents: string[];
19
+ }[];
20
+ wall_clock_parallel_evidence: string[];
12
21
  blockers: string[];
13
22
  };
14
23
  //# sourceMappingURL=agent-merge-coordinator.d.ts.map
@@ -10,12 +10,17 @@ export function coordinateAgentPatchMerge(envelopes) {
10
10
  }
11
11
  }
12
12
  const conflicts = mergeConflicts(writers);
13
+ const serialConflictAgents = new Set(conflicts.flatMap((conflict) => conflict.agents));
14
+ const parallelBatch = envelopes.filter((envelope) => !serialConflictAgents.has(envelope.agent_id)).map((envelope) => envelope.agent_id);
13
15
  return {
14
16
  schema: AGENT_MERGE_COORDINATOR_SCHEMA,
15
17
  ok: conflicts.length === 0,
16
18
  merge_order: envelopes.map((envelope) => envelope.agent_id),
17
19
  touched_files: [...writers.keys()].sort(),
18
20
  conflicts,
21
+ parallel_batches: parallelBatch.length ? [{ batch_id: 'batch-001', agents: parallelBatch }] : [],
22
+ serial_conflicts: conflicts,
23
+ wall_clock_parallel_evidence: parallelBatch.length ? [`batch-001:${parallelBatch.length}_agents_can_apply_without_overlapping_paths`] : [],
19
24
  blockers: conflicts.map((conflict) => `parallel_write_conflict:${conflict.file}`)
20
25
  };
21
26
  }