okstra 0.178.0 → 0.179.1

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 (114) hide show
  1. package/README.md +2 -2
  2. package/dist/commands/execute/plan-verify.mjs +1 -1
  3. package/dist/commands/execute/worktree-status.mjs +8 -2
  4. package/dist/commands/execute/worktree-status.mjs.map +1 -1
  5. package/dist/commands/lifecycle/install.mjs +1 -1
  6. package/dist/commands/lifecycle/install.mjs.map +1 -1
  7. package/dist/commands/report/render-final-report.mjs +3 -3
  8. package/docs/architecture/storage-model.md +3 -3
  9. package/docs/architecture.md +10 -9
  10. package/docs/cli.md +11 -13
  11. package/docs/for-ai/skills/okstra-inspect.md +3 -3
  12. package/docs/for-ai/skills/okstra-schedule-gen.md +2 -2
  13. package/docs/for-ai/skills/okstra-user-response.md +2 -2
  14. package/docs/project-structure-overview.md +10 -11
  15. package/docs/task-process/implementation-planning.md +1 -1
  16. package/docs/task-process/implementation.md +1 -1
  17. package/package.json +1 -1
  18. package/runtime/BUILD.json +2 -2
  19. package/runtime/agents/workers/report-writer-worker.md +11 -12
  20. package/runtime/bin/lib/okstra/globals.sh +2 -2
  21. package/runtime/bin/lib/okstra/interactive.sh +1 -1
  22. package/runtime/bin/lib/okstra/usage.sh +11 -9
  23. package/runtime/bin/lib/okstra-ctl/cmd-rerun.sh +1 -1
  24. package/runtime/bin/okstra-central.sh +2 -2
  25. package/runtime/bin/okstra-render-final-report.py +1 -1
  26. package/runtime/bin/okstra-token-usage.py +1 -1
  27. package/runtime/prompts/launch.template.md +1 -1
  28. package/runtime/prompts/lead/adapters/cmux.md +6 -1
  29. package/runtime/prompts/lead/context-loader.md +3 -2
  30. package/runtime/prompts/lead/convergence.md +3 -3
  31. package/runtime/prompts/lead/okstra-lead-contract.md +5 -5
  32. package/runtime/prompts/lead/plan-body-verification.md +3 -3
  33. package/runtime/prompts/lead/report-writer.md +21 -20
  34. package/runtime/prompts/lead/team-contract.md +1 -1
  35. package/runtime/prompts/profiles/_common-contract.md +5 -4
  36. package/runtime/prompts/profiles/_implementation-deliverable.md +1 -0
  37. package/runtime/prompts/profiles/_implementation-executor.md +2 -1
  38. package/runtime/prompts/profiles/_implementation-verifier.md +1 -1
  39. package/runtime/prompts/profiles/implementation-planning.md +9 -5
  40. package/runtime/prompts/profiles/implementation.md +4 -4
  41. package/runtime/prompts/profiles/improvement-discovery.md +2 -2
  42. package/runtime/prompts/wizard/prompts.ko.json +1 -0
  43. package/runtime/python/okstra_ctl/adapters/providers/antigravity/adapter.py +5 -4
  44. package/runtime/python/okstra_ctl/adapters/providers/claude/adapter.py +5 -4
  45. package/runtime/python/okstra_ctl/adapters/providers/codex/adapter.py +2 -2
  46. package/runtime/python/okstra_ctl/adapters/providers/grok/adapter.py +71 -9
  47. package/runtime/python/okstra_ctl/adapters/providers/kimi/adapter.py +5 -4
  48. package/runtime/python/okstra_ctl/agent_prompt_cli.py +77 -6
  49. package/runtime/python/okstra_ctl/analysis_inputs.py +5 -3
  50. package/runtime/python/okstra_ctl/analysis_packet.py +21 -0
  51. package/runtime/python/okstra_ctl/backfill.py +12 -5
  52. package/runtime/python/okstra_ctl/consumers.py +70 -3
  53. package/runtime/python/okstra_ctl/convergence_engine.py +43 -17
  54. package/runtime/python/okstra_ctl/convergence_store.py +13 -2
  55. package/runtime/python/okstra_ctl/dispatch_core.py +85 -14
  56. package/runtime/python/okstra_ctl/dispatch_state.py +34 -20
  57. package/runtime/python/okstra_ctl/domain/worker_exec.py +13 -34
  58. package/runtime/python/okstra_ctl/domain/worker_presentation.py +128 -0
  59. package/runtime/python/okstra_ctl/execution_manifest.py +22 -3
  60. package/runtime/python/okstra_ctl/execution_mutation_audit.py +35 -1
  61. package/runtime/python/okstra_ctl/final_report_paths.py +77 -1
  62. package/runtime/python/okstra_ctl/handoff.py +1 -2
  63. package/runtime/python/okstra_ctl/implementation_outcome.py +1 -1
  64. package/runtime/python/okstra_ctl/index.py +4 -4
  65. package/runtime/python/okstra_ctl/initial_prompt_materialization.py +26 -12
  66. package/runtime/python/okstra_ctl/listing.py +4 -2
  67. package/runtime/python/okstra_ctl/manager_launch.py +1 -1
  68. package/runtime/python/okstra_ctl/manager_sync.py +1 -1
  69. package/runtime/python/okstra_ctl/path_hints.py +2 -2
  70. package/runtime/python/okstra_ctl/paths.py +24 -15
  71. package/runtime/python/okstra_ctl/plan_run_root.py +9 -5
  72. package/runtime/python/okstra_ctl/recap.py +3 -2
  73. package/runtime/python/okstra_ctl/reconcile.py +3 -1
  74. package/runtime/python/okstra_ctl/render.py +22 -22
  75. package/runtime/python/okstra_ctl/report_finalize.py +4 -4
  76. package/runtime/python/okstra_ctl/rollup.py +1 -1
  77. package/runtime/python/okstra_ctl/run.py +170 -294
  78. package/runtime/python/okstra_ctl/run_audit.py +5 -5
  79. package/runtime/python/okstra_ctl/run_index_row.py +2 -2
  80. package/runtime/python/okstra_ctl/session_transcript.py +89 -0
  81. package/runtime/python/okstra_ctl/stage_ledger.py +72 -0
  82. package/runtime/python/okstra_ctl/stage_map.py +28 -29
  83. package/runtime/python/okstra_ctl/stage_targets.py +61 -0
  84. package/runtime/python/okstra_ctl/user_response.py +97 -12
  85. package/runtime/python/okstra_ctl/wizard.py +102 -78
  86. package/runtime/python/okstra_ctl/worker_prompt_body.py +6 -7
  87. package/runtime/python/okstra_ctl/worker_runner.py +76 -213
  88. package/runtime/python/okstra_ctl/workflow.py +1 -1
  89. package/runtime/python/okstra_ctl/wrapper_status.py +23 -0
  90. package/runtime/python/okstra_ctl/write_policy.py +51 -9
  91. package/runtime/python/okstra_project/state.py +2 -2
  92. package/runtime/python/okstra_token_usage/__init__.py +1 -1
  93. package/runtime/python/okstra_token_usage/cli.py +3 -3
  94. package/runtime/python/okstra_token_usage/report.py +7 -24
  95. package/runtime/schemas/convergence-groups-v1.0.schema.json +1 -1
  96. package/runtime/schemas/convergence-groups-v2.0.schema.json +1 -1
  97. package/runtime/schemas/final-report-v2.0.schema.json +11 -1
  98. package/runtime/skills/okstra-inspect/facets/history.md +3 -3
  99. package/runtime/skills/okstra-inspect/facets/recap.md +1 -1
  100. package/runtime/skills/okstra-inspect/facets/report.md +5 -5
  101. package/runtime/skills/okstra-inspect/facets/status.md +2 -2
  102. package/runtime/skills/okstra-pr-gen/SKILL.md +1 -1
  103. package/runtime/skills/okstra-run/SKILL.md +1 -1
  104. package/runtime/skills/okstra-schedule-gen/SKILL.md +1 -1
  105. package/runtime/skills/okstra-user-response/SKILL.md +3 -3
  106. package/runtime/templates/project-docs/task-index.template.md +1 -1
  107. package/runtime/templates/report-writer-prompt-preamble.md +1 -1
  108. package/runtime/validators/forbidden_actions.py +76 -5
  109. package/runtime/validators/lib/fixtures.sh +14 -10
  110. package/runtime/validators/lib/runners.sh +1 -1
  111. package/runtime/validators/validate-implementation-plan-stages.py +3 -0
  112. package/runtime/validators/validate-report-views.py +1 -1
  113. package/runtime/validators/validate-run.py +95 -37
  114. package/runtime/validators/validate_session_conformance.py +44 -8
@@ -338,7 +338,7 @@ def build_commands(ctx: FinalizeContext) -> list[tuple[str, list[str]]]:
338
338
  ctx.task_key,
339
339
  ],
340
340
  ),
341
- (STEP_VALIDATE_RUN, _validate_run_command(ctx, markdown_path)),
341
+ (STEP_VALIDATE_RUN, _validate_run_command(ctx, ctx.data_path)),
342
342
  (
343
343
  STEP_TEARDOWN_STAGES,
344
344
  ["<in-process>", "teardown-stages", str(ctx.data_path)],
@@ -382,14 +382,14 @@ def _teardown_stage_worktrees(
382
382
  return _done(result)
383
383
 
384
384
 
385
- def _validate_run_command(ctx: FinalizeContext, markdown_path: Path) -> list[str]:
385
+ def _validate_run_command(ctx: FinalizeContext, report_record_path: Path) -> list[str]:
386
386
  command = [
387
387
  sys.executable,
388
388
  str(resolve_workspace_validator(ctx.workspace_root, "validate-run.py")),
389
389
  "--team-state",
390
390
  str(ctx.team_state_path),
391
391
  "--report",
392
- str(markdown_path),
392
+ str(report_record_path),
393
393
  "--run-manifest",
394
394
  str(ctx.manifest_path),
395
395
  "--task-manifest",
@@ -611,7 +611,7 @@ def _parser() -> argparse.ArgumentParser:
611
611
  parser.add_argument(
612
612
  "--report",
613
613
  required=True,
614
- help="final-report markdown path (its .data.json sibling is derived)",
614
+ help="final-report record (.data.json); a leftover markdown path still locates the sibling record",
615
615
  )
616
616
  parser.add_argument("--workspace-root", required=True)
617
617
  parser.add_argument(
@@ -86,7 +86,7 @@ def _collect_task(entry: dict, project_root: Path) -> dict:
86
86
  ),
87
87
  "latestRunStatus": entry.get("latestRunStatus", ""),
88
88
  "updatedAt": entry.get("updatedAt", ""),
89
- "reportPath": entry.get("latestReportPath", ""),
89
+ "reportPath": entry.get("latestReportRecordPath", ""),
90
90
  "runCount": len(runs),
91
91
  "cpuSumMs": time_agg["grandTotal"]["cpuSumMs"],
92
92
  "wallClockMs": sum(r["wallClockMs"] for r in time_agg["perRunWallClock"]),