okstra 0.186.7 → 0.187.0

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 (541) hide show
  1. package/README.md +1 -1
  2. package/dist/cli-registry.d.mts +88 -1
  3. package/dist/cli-registry.mjs +68 -111
  4. package/dist/cli-registry.mjs.map +1 -1
  5. package/dist/commands/execute/render-bundle.mjs +0 -1
  6. package/dist/commands/execute/render-bundle.mjs.map +1 -1
  7. package/dist/commands/execute/run.mjs +8 -3
  8. package/dist/commands/execute/run.mjs.map +1 -1
  9. package/dist/commands/lifecycle/check-project.mjs +1 -14
  10. package/dist/commands/lifecycle/check-project.mjs.map +1 -1
  11. package/dist/commands/lifecycle/config.mjs +38 -40
  12. package/dist/commands/lifecycle/config.mjs.map +1 -1
  13. package/dist/commands/lifecycle/doctor.d.mts +22 -7
  14. package/dist/commands/lifecycle/doctor.mjs +77 -49
  15. package/dist/commands/lifecycle/doctor.mjs.map +1 -1
  16. package/dist/commands/lifecycle/install.d.mts +12 -10
  17. package/dist/commands/lifecycle/install.mjs +104 -39
  18. package/dist/commands/lifecycle/install.mjs.map +1 -1
  19. package/dist/commands/lifecycle/paths.mjs +8 -3
  20. package/dist/commands/lifecycle/paths.mjs.map +1 -1
  21. package/dist/commands/lifecycle/preflight.mjs +2 -1
  22. package/dist/commands/lifecycle/preflight.mjs.map +1 -1
  23. package/dist/commands/lifecycle/setup.mjs +22 -36
  24. package/dist/commands/lifecycle/setup.mjs.map +1 -1
  25. package/dist/commands/lifecycle/uninstall.d.mts +4 -2
  26. package/dist/commands/lifecycle/uninstall.mjs +59 -15
  27. package/dist/commands/lifecycle/uninstall.mjs.map +1 -1
  28. package/dist/commands/memory/memory.mjs +7 -1
  29. package/dist/commands/memory/memory.mjs.map +1 -1
  30. package/dist/lib/helper-scripts.d.mts +1 -1
  31. package/dist/lib/helper-scripts.mjs +10 -18
  32. package/dist/lib/helper-scripts.mjs.map +1 -1
  33. package/dist/lib/host-config.d.mts +72 -0
  34. package/dist/lib/host-config.mjs +404 -0
  35. package/dist/lib/host-config.mjs.map +1 -0
  36. package/dist/lib/host-registry-client.d.mts +2 -2
  37. package/dist/lib/host-registry-client.mjs +0 -3
  38. package/dist/lib/host-registry-client.mjs.map +1 -1
  39. package/dist/lib/install-assets.d.mts +1 -0
  40. package/dist/lib/install-assets.mjs +4 -0
  41. package/dist/lib/install-assets.mjs.map +1 -1
  42. package/dist/lib/proc.d.mts +2 -0
  43. package/dist/lib/proc.mjs +12 -0
  44. package/dist/lib/proc.mjs.map +1 -1
  45. package/dist/lib/python-command.d.mts +2 -0
  46. package/dist/lib/python-command.mjs +52 -0
  47. package/dist/lib/python-command.mjs.map +1 -0
  48. package/dist/lib/python-helper.d.mts +2 -5
  49. package/dist/lib/python-helper.mjs +3 -52
  50. package/dist/lib/python-helper.mjs.map +1 -1
  51. package/dist/lib/runtime-payload.d.mts +23 -0
  52. package/dist/lib/runtime-payload.mjs +57 -0
  53. package/dist/lib/runtime-payload.mjs.map +1 -0
  54. package/dist/lib/types.d.mts +24 -13
  55. package/docs/architecture/storage-model.md +21 -5
  56. package/docs/architecture.md +37 -36
  57. package/docs/cli.md +55 -76
  58. package/docs/coding-rules.md +295 -0
  59. package/docs/container.md +10 -36
  60. package/docs/contributor-change-matrix.md +1 -1
  61. package/docs/for-ai/skills/okstra-code-review.md +0 -1
  62. package/docs/for-ai/skills/okstra-container-build.md +8 -41
  63. package/docs/for-ai/skills/okstra-inspect.md +4 -4
  64. package/docs/for-ai/skills/okstra-manager.md +2 -2
  65. package/docs/for-ai/skills/okstra-rollup.md +0 -1
  66. package/docs/for-ai/skills/okstra-run.md +3 -3
  67. package/docs/for-ai/skills/okstra-user-response.md +0 -1
  68. package/docs/performance-improvement-plan-v2.md +1 -1
  69. package/docs/project-structure-overview.md +62 -62
  70. package/docs/task-process/README.md +3 -3
  71. package/docs/task-process/common-flow.md +1 -1
  72. package/docs/task-process/error-analysis.md +3 -3
  73. package/docs/task-process/implementation-planning.md +3 -1
  74. package/docs/task-process/release-handoff.md +1 -1
  75. package/package.json +3 -2
  76. package/runtime/BUILD.json +2 -2
  77. package/runtime/agents/workers/claude-worker.md +6 -11
  78. package/runtime/agents/workers/report-writer-worker.md +1 -1
  79. package/runtime/bin/lib/okstra/cli.sh +4 -0
  80. package/runtime/bin/lib/okstra/globals.sh +2 -0
  81. package/runtime/bin/lib/okstra/interactive.sh +26 -173
  82. package/runtime/bin/lib/okstra/project-resolver.sh +23 -61
  83. package/runtime/bin/lib/okstra/usage.sh +3 -3
  84. package/runtime/bin/okstra-compact-reminder.sh +1 -5
  85. package/runtime/bin/okstra-error-log.py +19 -2
  86. package/runtime/bin/okstra-import-check.py +26 -0
  87. package/runtime/bin/okstra-inject-report-index.py +5 -4
  88. package/runtime/bin/okstra-provider-exec.py +22 -17
  89. package/runtime/bin/okstra-render-final-report.py +16 -6
  90. package/runtime/bin/okstra-render-report-views.py +25 -18
  91. package/runtime/bin/okstra-report-translate.py +30 -18
  92. package/runtime/bin/okstra-spawn-followups.py +4 -0
  93. package/runtime/bin/okstra-token-usage.py +3 -0
  94. package/runtime/bin/okstra.sh +4 -2
  95. package/runtime/bin/okstra_bootstrap.py +58 -0
  96. package/runtime/prompts/coding-preflight/overview.md +1 -1
  97. package/runtime/prompts/duties/planning-worker.md +1 -1
  98. package/runtime/prompts/launch.template.md +35 -9
  99. package/runtime/prompts/lead/convergence.md +96 -87
  100. package/runtime/prompts/lead/okstra-lead-contract.md +63 -12
  101. package/runtime/prompts/lead/plan-body-verification.md +65 -46
  102. package/runtime/prompts/lead/report-writer.md +34 -4
  103. package/runtime/prompts/lead/team-contract.md +4 -1
  104. package/runtime/prompts/profiles/_clarification-recommendation.md +2 -1
  105. package/runtime/prompts/profiles/_coding-conventions-preflight.md +1 -1
  106. package/runtime/prompts/profiles/_common-contract.md +3 -3
  107. package/runtime/prompts/profiles/_coverage-critic.md +1 -1
  108. package/runtime/prompts/profiles/_implementation-deliverable.md +2 -2
  109. package/runtime/prompts/profiles/_implementation-executor.md +3 -1
  110. package/runtime/prompts/profiles/_implementation-verifier.md +16 -2
  111. package/runtime/prompts/profiles/error-analysis.md +4 -3
  112. package/runtime/prompts/profiles/final-verification.md +2 -2
  113. package/runtime/prompts/profiles/implementation-planning.md +22 -17
  114. package/runtime/prompts/profiles/implementation.md +3 -2
  115. package/runtime/prompts/profiles/requirements-discovery.md +2 -1
  116. package/runtime/prompts/wizard/prompts.ko.json +29 -8
  117. package/runtime/python/okstra_ctl/__init__.py +6 -27
  118. package/runtime/python/okstra_ctl/adapters/hosts/claude-code/relay.md +4 -5
  119. package/runtime/python/okstra_ctl/adapters/hosts/codex/adapter.py +21 -2
  120. package/runtime/python/okstra_ctl/adapters/hosts/external/adapter.py +3 -12
  121. package/runtime/python/okstra_ctl/adapters/providers/antigravity/adapter.py +40 -22
  122. package/runtime/python/okstra_ctl/adapters/providers/claude/adapter.py +14 -21
  123. package/runtime/python/okstra_ctl/adapters/providers/codex/adapter.py +37 -20
  124. package/runtime/python/okstra_ctl/adapters/providers/grok/adapter.py +86 -14
  125. package/runtime/python/okstra_ctl/adapters/providers/kimi/adapter.py +12 -12
  126. package/runtime/python/okstra_ctl/adapters/runtime/cmux.py +4 -7
  127. package/runtime/python/okstra_ctl/agent/__init__.py +1 -0
  128. package/runtime/python/okstra_ctl/{agent_activity.py → agent/activity.py} +12 -1
  129. package/runtime/python/okstra_ctl/{agent_invocation.py → agent/invocation.py} +34 -5
  130. package/runtime/python/okstra_ctl/agent/prompt_cli/__init__.py +19 -0
  131. package/runtime/python/okstra_ctl/agent/prompt_cli/__main__.py +11 -0
  132. package/runtime/python/okstra_ctl/agent/prompt_cli/cli.py +215 -0
  133. package/runtime/python/okstra_ctl/agent/prompt_cli/dynamic_verifier.py +155 -0
  134. package/runtime/python/okstra_ctl/agent/prompt_cli/emit.py +66 -0
  135. package/runtime/python/okstra_ctl/agent/prompt_cli/inputs.py +138 -0
  136. package/runtime/python/okstra_ctl/agent/prompt_cli/materialize.py +408 -0
  137. package/runtime/python/okstra_ctl/agent/prompt_cli/results.py +197 -0
  138. package/runtime/python/okstra_ctl/agent/prompt_cli/run_identity.py +107 -0
  139. package/runtime/python/okstra_ctl/analysis_packet.py +47 -4
  140. package/runtime/python/okstra_ctl/approval_decisions.py +260 -8
  141. package/runtime/python/okstra_ctl/assignment_resolver.py +0 -12
  142. package/runtime/python/okstra_ctl/attempt_evidence.py +12 -24
  143. package/runtime/python/okstra_ctl/blocking_checks.py +251 -0
  144. package/runtime/python/okstra_ctl/brief_frontmatter.py +0 -7
  145. package/runtime/python/okstra_ctl/clarification_items/__init__.py +102 -0
  146. package/runtime/python/okstra_ctl/clarification_items/carry.py +224 -0
  147. package/runtime/python/okstra_ctl/clarification_items/dispositions.py +135 -0
  148. package/runtime/python/okstra_ctl/clarification_items/parsing.py +253 -0
  149. package/runtime/python/okstra_ctl/clarification_items/rows.py +115 -0
  150. package/runtime/python/okstra_ctl/clarification_items/scan.py +215 -0
  151. package/runtime/python/okstra_ctl/clarification_items/sidecars.py +211 -0
  152. package/runtime/python/okstra_ctl/cmux.py +38 -31
  153. package/runtime/python/okstra_ctl/code_review_target.py +163 -1
  154. package/runtime/python/okstra_ctl/conformance.py +23 -0
  155. package/runtime/python/okstra_ctl/container.py +38 -421
  156. package/runtime/python/okstra_ctl/context_cost.py +16 -2
  157. package/runtime/python/okstra_ctl/contract_graph_cli.py +7 -0
  158. package/runtime/python/okstra_ctl/convergence.py +101 -15
  159. package/runtime/python/okstra_ctl/convergence_critic_prompt.py +345 -0
  160. package/runtime/python/okstra_ctl/convergence_engine.py +382 -70
  161. package/runtime/python/okstra_ctl/convergence_store.py +5 -29
  162. package/runtime/python/okstra_ctl/design_prep.py +108 -12
  163. package/runtime/python/okstra_ctl/design_snapshot.py +11 -1
  164. package/runtime/python/okstra_ctl/design_surfaces.py +29 -2
  165. package/runtime/python/okstra_ctl/dispatch_core.py +102 -25
  166. package/runtime/python/okstra_ctl/dispatch_state.py +268 -39
  167. package/runtime/python/okstra_ctl/doctor_cli.py +48 -0
  168. package/runtime/python/okstra_ctl/domain/worker_exec.py +10 -5
  169. package/runtime/python/okstra_ctl/domain/worker_presentation.py +21 -1
  170. package/runtime/python/okstra_ctl/domain/worker_stream.py +52 -21
  171. package/runtime/python/okstra_ctl/domain/write_policy.py +219 -0
  172. package/runtime/python/okstra_ctl/entrypoints/hosts.py +9 -2
  173. package/runtime/python/okstra_ctl/error_log_core.py +1 -1
  174. package/runtime/python/okstra_ctl/error_report.py +14 -0
  175. package/runtime/python/okstra_ctl/error_zip.py +18 -2
  176. package/runtime/python/okstra_ctl/execution_identity.py +100 -7
  177. package/runtime/python/okstra_ctl/execution_manifest.py +67 -20
  178. package/runtime/python/okstra_ctl/execution_mutation_audit.py +90 -8
  179. package/runtime/python/okstra_ctl/final_report_paths.py +17 -0
  180. package/runtime/python/okstra_ctl/final_report_schema.py +90 -16
  181. package/runtime/python/okstra_ctl/git_reconcile.py +22 -2
  182. package/runtime/python/okstra_ctl/handoff.py +24 -1
  183. package/runtime/python/okstra_ctl/ids.py +6 -16
  184. package/runtime/python/okstra_ctl/implementation_direction.py +142 -33
  185. package/runtime/python/okstra_ctl/implementation_options.py +25 -11
  186. package/runtime/python/okstra_ctl/implementation_outcome.py +5 -2
  187. package/runtime/python/okstra_ctl/improvement_lenses.py +0 -14
  188. package/runtime/python/okstra_ctl/incremental_carry.py +69 -8
  189. package/runtime/python/okstra_ctl/incremental_scope.py +173 -12
  190. package/runtime/python/okstra_ctl/index.py +2 -2
  191. package/runtime/python/okstra_ctl/initial_prompt_materialization.py +48 -8
  192. package/runtime/python/okstra_ctl/interactive_cli.py +223 -0
  193. package/runtime/python/okstra_ctl/json_boundary.py +10 -0
  194. package/runtime/python/okstra_ctl/listing.py +0 -91
  195. package/runtime/python/okstra_ctl/locks.py +5 -19
  196. package/runtime/python/okstra_ctl/log_report.py +14 -0
  197. package/runtime/python/okstra_ctl/manager_cli.py +22 -3
  198. package/runtime/python/okstra_ctl/manager_launch.py +4 -8
  199. package/runtime/python/okstra_ctl/material.py +2 -2
  200. package/runtime/python/okstra_ctl/migrate.py +23 -1
  201. package/runtime/python/okstra_ctl/model_cli.py +19 -5
  202. package/runtime/python/okstra_ctl/model_discovery.py +46 -47
  203. package/runtime/python/okstra_ctl/model_io/__init__.py +1 -0
  204. package/runtime/python/okstra_ctl/model_io/lines.py +163 -0
  205. package/runtime/python/okstra_ctl/model_io/references.py +370 -0
  206. package/runtime/python/okstra_ctl/model_io/renderers.py +498 -0
  207. package/runtime/python/okstra_ctl/model_io_cli.py +30 -945
  208. package/runtime/python/okstra_ctl/model_pool.py +10 -6
  209. package/runtime/python/okstra_ctl/models.py +8 -8
  210. package/runtime/python/okstra_ctl/mutation_recovery.py +5 -63
  211. package/runtime/python/okstra_ctl/next_phase.py +121 -69
  212. package/runtime/python/okstra_ctl/pane_reclaim.py +23 -0
  213. package/runtime/python/okstra_ctl/pane_title.py +11 -8
  214. package/runtime/python/okstra_ctl/path_hints.py +36 -11
  215. package/runtime/python/okstra_ctl/paths.py +76 -8
  216. package/runtime/python/okstra_ctl/plan_items.py +132 -16
  217. package/runtime/python/okstra_ctl/plan_items_cli.py +486 -36
  218. package/runtime/python/okstra_ctl/plan_run_root.py +1 -1
  219. package/runtime/python/okstra_ctl/plan_validate_cli.py +51 -0
  220. package/runtime/python/okstra_ctl/plan_verify_cli.py +80 -0
  221. package/runtime/python/okstra_ctl/prepare_error.py +20 -0
  222. package/runtime/python/okstra_ctl/prior_planning.py +157 -0
  223. package/runtime/python/okstra_ctl/profile_show.py +18 -1
  224. package/runtime/python/okstra_ctl/project_setup_cli.py +140 -0
  225. package/runtime/python/okstra_ctl/recap.py +22 -1
  226. package/runtime/python/okstra_ctl/reconcile.py +84 -0
  227. package/runtime/python/okstra_ctl/registry/host_registry.py +18 -1
  228. package/runtime/python/okstra_ctl/render.py +98 -32
  229. package/runtime/python/okstra_ctl/render_final_report.py +3 -7
  230. package/runtime/python/okstra_ctl/report_assembly.py +297 -7
  231. package/runtime/python/okstra_ctl/report_contract.py +30 -7
  232. package/runtime/python/okstra_ctl/report_finalize.py +206 -15
  233. package/runtime/python/okstra_ctl/report_html/common.py +2 -2
  234. package/runtime/python/okstra_ctl/report_html/render.py +8 -12
  235. package/runtime/python/okstra_ctl/report_language.py +8 -4
  236. package/runtime/python/okstra_ctl/report_narrative.py +90 -3
  237. package/runtime/python/okstra_ctl/report_projections.py +8 -2
  238. package/runtime/python/okstra_ctl/report_synthesis_packet.py +258 -1
  239. package/runtime/python/okstra_ctl/report_translation.py +2 -35
  240. package/runtime/python/okstra_ctl/report_views.py +4 -22
  241. package/runtime/python/okstra_ctl/resolve_task_key.py +13 -0
  242. package/runtime/python/okstra_ctl/rollup.py +13 -0
  243. package/runtime/python/okstra_ctl/run.py +639 -138
  244. package/runtime/python/okstra_ctl/run_audit.py +13 -0
  245. package/runtime/python/okstra_ctl/run_index_row.py +0 -12
  246. package/runtime/python/okstra_ctl/seeding.py +21 -11
  247. package/runtime/python/okstra_ctl/sequence.py +1 -1
  248. package/runtime/python/okstra_ctl/session.py +64 -14
  249. package/runtime/python/okstra_ctl/set_work_status.py +18 -0
  250. package/runtime/python/okstra_ctl/stage_integrate.py +15 -1
  251. package/runtime/python/okstra_ctl/stage_ledger.py +1 -1
  252. package/runtime/python/okstra_ctl/stage_map.py +57 -11
  253. package/runtime/python/okstra_ctl/stage_map_cli.py +83 -0
  254. package/runtime/python/okstra_ctl/stage_map_view.py +65 -0
  255. package/runtime/python/okstra_ctl/stage_targets.py +3 -12
  256. package/runtime/python/okstra_ctl/task_list_cli.py +138 -0
  257. package/runtime/python/okstra_ctl/task_show_cli.py +66 -0
  258. package/runtime/python/okstra_ctl/task_target.py +4 -16
  259. package/runtime/python/okstra_ctl/team.py +49 -2
  260. package/runtime/python/okstra_ctl/time_report.py +17 -2
  261. package/runtime/python/okstra_ctl/usage_report.py +11 -0
  262. package/runtime/python/okstra_ctl/user_response.py +55 -218
  263. package/runtime/python/okstra_ctl/user_response_values.py +242 -0
  264. package/runtime/python/okstra_ctl/validation_contract.py +3 -0
  265. package/runtime/python/okstra_ctl/verification_target.py +68 -0
  266. package/runtime/python/okstra_ctl/wizard.py +457 -92
  267. package/runtime/python/okstra_ctl/worker_artifacts.py +75 -16
  268. package/runtime/python/okstra_ctl/worker_audit_check.py +22 -0
  269. package/runtime/python/okstra_ctl/worker_dispatch.py +21 -0
  270. package/runtime/python/okstra_ctl/worker_liveness.py +33 -0
  271. package/runtime/python/okstra_ctl/worker_prompt_body.py +15 -2
  272. package/runtime/python/okstra_ctl/worker_prompt_contract.py +98 -7
  273. package/runtime/python/okstra_ctl/worker_prompt_headers.py +24 -2
  274. package/runtime/python/okstra_ctl/worker_prompt_policy.py +18 -3
  275. package/runtime/python/okstra_ctl/worker_request.py +2 -1
  276. package/runtime/python/okstra_ctl/worker_runner.py +16 -9
  277. package/runtime/python/okstra_ctl/worker_state.py +16 -1
  278. package/runtime/python/okstra_ctl/workflow.py +18 -1
  279. package/runtime/python/okstra_ctl/worktree/__init__.py +92 -0
  280. package/runtime/python/okstra_ctl/worktree/cleanliness.py +89 -0
  281. package/runtime/python/okstra_ctl/worktree/decisions.py +127 -0
  282. package/runtime/python/okstra_ctl/worktree/git_ops.py +165 -0
  283. package/runtime/python/okstra_ctl/worktree/linking.py +249 -0
  284. package/runtime/python/okstra_ctl/worktree/naming.py +91 -0
  285. package/runtime/python/okstra_ctl/worktree/provision.py +385 -0
  286. package/runtime/python/okstra_ctl/worktree/sync_config.py +181 -0
  287. package/runtime/python/okstra_ctl/worktree_cli.py +75 -0
  288. package/runtime/python/okstra_ctl/worktree_lookup_cli.py +39 -0
  289. package/runtime/python/okstra_ctl/worktree_registry.py +7 -0
  290. package/runtime/python/okstra_ctl/worktree_status_cli.py +53 -0
  291. package/runtime/python/okstra_ctl/write_policy.py +90 -213
  292. package/runtime/python/okstra_project/__init__.py +0 -4
  293. package/runtime/python/okstra_project/dirs.py +2 -2
  294. package/runtime/python/okstra_project/phase_pointer.py +84 -0
  295. package/runtime/python/okstra_project/slug.py +24 -0
  296. package/runtime/python/okstra_project/state.py +22 -230
  297. package/runtime/python/okstra_token_usage/claude.py +9 -1
  298. package/runtime/python/okstra_token_usage/cli.py +3 -1
  299. package/runtime/python/okstra_token_usage/collect.py +71 -10
  300. package/runtime/python/okstra_token_usage/cursor.py +2 -0
  301. package/runtime/python/okstra_token_usage/grok.py +1 -5
  302. package/runtime/python/okstra_token_usage/paths.py +26 -0
  303. package/runtime/python/okstra_token_usage/pricing.py +19 -7
  304. package/runtime/schemas/convergence-critic-results-v1.0.schema.json +5 -0
  305. package/runtime/schemas/execution-manifest-v2.schema.json +10 -10
  306. package/runtime/schemas/final-report-v2.0.schema.json +9 -26
  307. package/runtime/schemas/final-report-v3.0.schema.json +173 -41
  308. package/runtime/schemas/report-narrative-v3.0.schema.json +3 -2
  309. package/runtime/skills/okstra-brief-gen/SKILL.md +35 -2
  310. package/runtime/skills/okstra-container-build/SKILL.md +16 -47
  311. package/runtime/skills/okstra-inspect/facets/history.md +1 -1
  312. package/runtime/skills/okstra-inspect/facets/status.md +7 -6
  313. package/runtime/skills/okstra-pr-gen/SKILL.md +1 -1
  314. package/runtime/skills/okstra-run/SKILL.md +7 -5
  315. package/runtime/templates/report-writer-prompt-preamble.md +1 -1
  316. package/runtime/templates/reports/brief.template.md +6 -2
  317. package/runtime/templates/reports/error-analysis-input.template.md +2 -0
  318. package/runtime/templates/reports/final-verification-input.template.md +2 -0
  319. package/runtime/templates/reports/implementation-input.template.md +7 -1
  320. package/runtime/templates/reports/implementation-planning-input.template.md +4 -0
  321. package/runtime/templates/reports/quick-input.template.md +2 -0
  322. package/runtime/templates/reports/release-handoff-input.template.md +6 -1
  323. package/runtime/templates/reports/report.js +20 -3
  324. package/runtime/templates/reports/schedule.template.md +2 -0
  325. package/runtime/templates/reports/settings.template.json +0 -10
  326. package/runtime/templates/reports/task-brief.template.md +3 -0
  327. package/runtime/templates/reports/user-response.template.md +7 -3
  328. package/runtime/validators/checks/fixtures-01.py +57 -0
  329. package/runtime/validators/checks/fixtures-02.py +565 -0
  330. package/runtime/validators/checks/runners-01.py +108 -0
  331. package/runtime/validators/checks/validate-assets-01.py +60 -0
  332. package/runtime/validators/checks/validate-prompt-metadata-01.py +261 -0
  333. package/runtime/validators/checks/validate-tasks-01.py +46 -0
  334. package/runtime/validators/checks/validate-tasks-02.py +85 -0
  335. package/runtime/validators/checks/validate-tasks-03.py +61 -0
  336. package/runtime/validators/checks/validate-tasks-04.py +118 -0
  337. package/runtime/validators/forbidden_actions.py +73 -3
  338. package/runtime/validators/lib/common.sh +5 -0
  339. package/runtime/validators/lib/fixtures.sh +7 -591
  340. package/runtime/validators/lib/paths.sh +13 -0
  341. package/runtime/validators/lib/runners.sh +6 -104
  342. package/runtime/validators/lib/summary.sh +1 -1
  343. package/runtime/validators/lib/validate-assets.sh +6 -56
  344. package/runtime/validators/lib/validate-prompt-metadata.sh +6 -257
  345. package/runtime/validators/lib/validate-tasks.sh +9 -294
  346. package/runtime/validators/validate-implementation-plan-stages.py +4 -4
  347. package/runtime/validators/validate-run.py +1369 -2654
  348. package/runtime/validators/validate-workflow.sh +56 -16
  349. package/runtime/validators/validate_improvement_report.py +2 -1
  350. package/runtime/validators/validate_session_conformance.py +295 -49
  351. package/dist/commands/execute/agent-prompt.d.mts +0 -1
  352. package/dist/commands/execute/agent-prompt.mjs +0 -24
  353. package/dist/commands/execute/agent-prompt.mjs.map +0 -1
  354. package/dist/commands/execute/codex-dispatch.d.mts +0 -3
  355. package/dist/commands/execute/codex-dispatch.mjs +0 -6
  356. package/dist/commands/execute/codex-dispatch.mjs.map +0 -1
  357. package/dist/commands/execute/codex-run.d.mts +0 -3
  358. package/dist/commands/execute/codex-run.mjs +0 -62
  359. package/dist/commands/execute/codex-run.mjs.map +0 -1
  360. package/dist/commands/execute/convergence.d.mts +0 -1
  361. package/dist/commands/execute/convergence.mjs +0 -38
  362. package/dist/commands/execute/convergence.mjs.map +0 -1
  363. package/dist/commands/execute/error-log.d.mts +0 -1
  364. package/dist/commands/execute/error-log.mjs +0 -18
  365. package/dist/commands/execute/error-log.mjs.map +0 -1
  366. package/dist/commands/execute/git-reconcile.d.mts +0 -1
  367. package/dist/commands/execute/git-reconcile.mjs +0 -30
  368. package/dist/commands/execute/git-reconcile.mjs.map +0 -1
  369. package/dist/commands/execute/handoff.d.mts +0 -1
  370. package/dist/commands/execute/handoff.mjs +0 -31
  371. package/dist/commands/execute/handoff.mjs.map +0 -1
  372. package/dist/commands/execute/incremental-carry.d.mts +0 -1
  373. package/dist/commands/execute/incremental-carry.mjs +0 -20
  374. package/dist/commands/execute/incremental-carry.mjs.map +0 -1
  375. package/dist/commands/execute/incremental-scope.d.mts +0 -1
  376. package/dist/commands/execute/incremental-scope.mjs +0 -29
  377. package/dist/commands/execute/incremental-scope.mjs.map +0 -1
  378. package/dist/commands/execute/integrate-stages.d.mts +0 -1
  379. package/dist/commands/execute/integrate-stages.mjs +0 -24
  380. package/dist/commands/execute/integrate-stages.mjs.map +0 -1
  381. package/dist/commands/execute/pane-title.d.mts +0 -1
  382. package/dist/commands/execute/pane-title.mjs +0 -20
  383. package/dist/commands/execute/pane-title.mjs.map +0 -1
  384. package/dist/commands/execute/plan-items.d.mts +0 -1
  385. package/dist/commands/execute/plan-items.mjs +0 -9
  386. package/dist/commands/execute/plan-items.mjs.map +0 -1
  387. package/dist/commands/execute/plan-validate.d.mts +0 -1
  388. package/dist/commands/execute/plan-validate.mjs +0 -68
  389. package/dist/commands/execute/plan-validate.mjs.map +0 -1
  390. package/dist/commands/execute/plan-verify.d.mts +0 -1
  391. package/dist/commands/execute/plan-verify.mjs +0 -43
  392. package/dist/commands/execute/plan-verify.mjs.map +0 -1
  393. package/dist/commands/execute/spawn-followups.d.mts +0 -1
  394. package/dist/commands/execute/spawn-followups.mjs +0 -22
  395. package/dist/commands/execute/spawn-followups.mjs.map +0 -1
  396. package/dist/commands/execute/team.d.mts +0 -3
  397. package/dist/commands/execute/team.mjs +0 -66
  398. package/dist/commands/execute/team.mjs.map +0 -1
  399. package/dist/commands/execute/token-usage.d.mts +0 -1
  400. package/dist/commands/execute/token-usage.mjs +0 -19
  401. package/dist/commands/execute/token-usage.mjs.map +0 -1
  402. package/dist/commands/execute/worker-audit-check.d.mts +0 -1
  403. package/dist/commands/execute/worker-audit-check.mjs +0 -34
  404. package/dist/commands/execute/worker-audit-check.mjs.map +0 -1
  405. package/dist/commands/execute/worker-dispatch.d.mts +0 -7
  406. package/dist/commands/execute/worker-dispatch.mjs +0 -64
  407. package/dist/commands/execute/worker-dispatch.mjs.map +0 -1
  408. package/dist/commands/execute/worker-state.d.mts +0 -1
  409. package/dist/commands/execute/worker-state.mjs +0 -28
  410. package/dist/commands/execute/worker-state.mjs.map +0 -1
  411. package/dist/commands/execute/worktree-lookup.d.mts +0 -1
  412. package/dist/commands/execute/worktree-lookup.mjs +0 -92
  413. package/dist/commands/execute/worktree-lookup.mjs.map +0 -1
  414. package/dist/commands/execute/worktree-status.d.mts +0 -1
  415. package/dist/commands/execute/worktree-status.mjs +0 -121
  416. package/dist/commands/execute/worktree-status.mjs.map +0 -1
  417. package/dist/commands/inspect/code-review.d.mts +0 -1
  418. package/dist/commands/inspect/code-review.mjs +0 -32
  419. package/dist/commands/inspect/code-review.mjs.map +0 -1
  420. package/dist/commands/inspect/container.d.mts +0 -1
  421. package/dist/commands/inspect/container.mjs +0 -25
  422. package/dist/commands/inspect/container.mjs.map +0 -1
  423. package/dist/commands/inspect/context-cost.d.mts +0 -1
  424. package/dist/commands/inspect/context-cost.mjs +0 -25
  425. package/dist/commands/inspect/context-cost.mjs.map +0 -1
  426. package/dist/commands/inspect/design-prep.d.mts +0 -1
  427. package/dist/commands/inspect/design-prep.mjs +0 -22
  428. package/dist/commands/inspect/design-prep.mjs.map +0 -1
  429. package/dist/commands/inspect/error-report.d.mts +0 -1
  430. package/dist/commands/inspect/error-report.mjs +0 -25
  431. package/dist/commands/inspect/error-report.mjs.map +0 -1
  432. package/dist/commands/inspect/error-zip.d.mts +0 -1
  433. package/dist/commands/inspect/error-zip.mjs +0 -24
  434. package/dist/commands/inspect/error-zip.mjs.map +0 -1
  435. package/dist/commands/inspect/log-report.d.mts +0 -1
  436. package/dist/commands/inspect/log-report.mjs +0 -26
  437. package/dist/commands/inspect/log-report.mjs.map +0 -1
  438. package/dist/commands/inspect/model-io.d.mts +0 -1
  439. package/dist/commands/inspect/model-io.mjs +0 -25
  440. package/dist/commands/inspect/model-io.mjs.map +0 -1
  441. package/dist/commands/inspect/profile-show.d.mts +0 -1
  442. package/dist/commands/inspect/profile-show.mjs +0 -28
  443. package/dist/commands/inspect/profile-show.mjs.map +0 -1
  444. package/dist/commands/inspect/recap.d.mts +0 -1
  445. package/dist/commands/inspect/recap.mjs +0 -30
  446. package/dist/commands/inspect/recap.mjs.map +0 -1
  447. package/dist/commands/inspect/resolve-task-key.d.mts +0 -1
  448. package/dist/commands/inspect/resolve-task-key.mjs +0 -24
  449. package/dist/commands/inspect/resolve-task-key.mjs.map +0 -1
  450. package/dist/commands/inspect/rollup.d.mts +0 -1
  451. package/dist/commands/inspect/rollup.mjs +0 -25
  452. package/dist/commands/inspect/rollup.mjs.map +0 -1
  453. package/dist/commands/inspect/run-audit.d.mts +0 -1
  454. package/dist/commands/inspect/run-audit.mjs +0 -25
  455. package/dist/commands/inspect/run-audit.mjs.map +0 -1
  456. package/dist/commands/inspect/set-work-status.d.mts +0 -1
  457. package/dist/commands/inspect/set-work-status.mjs +0 -29
  458. package/dist/commands/inspect/set-work-status.mjs.map +0 -1
  459. package/dist/commands/inspect/stage-map.d.mts +0 -1
  460. package/dist/commands/inspect/stage-map.mjs +0 -131
  461. package/dist/commands/inspect/stage-map.mjs.map +0 -1
  462. package/dist/commands/inspect/task-list.d.mts +0 -1
  463. package/dist/commands/inspect/task-list.mjs +0 -149
  464. package/dist/commands/inspect/task-list.mjs.map +0 -1
  465. package/dist/commands/inspect/task-show.d.mts +0 -1
  466. package/dist/commands/inspect/task-show.mjs +0 -108
  467. package/dist/commands/inspect/task-show.mjs.map +0 -1
  468. package/dist/commands/inspect/time-report.d.mts +0 -1
  469. package/dist/commands/inspect/time-report.mjs +0 -24
  470. package/dist/commands/inspect/time-report.mjs.map +0 -1
  471. package/dist/commands/inspect/usage-report.d.mts +0 -1
  472. package/dist/commands/inspect/usage-report.mjs +0 -23
  473. package/dist/commands/inspect/usage-report.mjs.map +0 -1
  474. package/dist/commands/inspect/user-response.d.mts +0 -1
  475. package/dist/commands/inspect/user-response.mjs +0 -35
  476. package/dist/commands/inspect/user-response.mjs.map +0 -1
  477. package/dist/commands/inspect/worker-liveness.d.mts +0 -1
  478. package/dist/commands/inspect/worker-liveness.mjs +0 -45
  479. package/dist/commands/inspect/worker-liveness.mjs.map +0 -1
  480. package/dist/commands/lifecycle/contract-check.d.mts +0 -1
  481. package/dist/commands/lifecycle/contract-check.mjs +0 -18
  482. package/dist/commands/lifecycle/contract-check.mjs.map +0 -1
  483. package/dist/commands/lifecycle/migrate.d.mts +0 -1
  484. package/dist/commands/lifecycle/migrate.mjs +0 -30
  485. package/dist/commands/lifecycle/migrate.mjs.map +0 -1
  486. package/dist/commands/lifecycle/model.d.mts +0 -1
  487. package/dist/commands/lifecycle/model.mjs +0 -22
  488. package/dist/commands/lifecycle/model.mjs.map +0 -1
  489. package/dist/commands/manager.d.mts +0 -3
  490. package/dist/commands/manager.mjs +0 -50
  491. package/dist/commands/manager.mjs.map +0 -1
  492. package/dist/commands/report/agent-activity.d.mts +0 -1
  493. package/dist/commands/report/agent-activity.mjs +0 -20
  494. package/dist/commands/report/agent-activity.mjs.map +0 -1
  495. package/dist/commands/report/approval-decision.d.mts +0 -1
  496. package/dist/commands/report/approval-decision.mjs +0 -21
  497. package/dist/commands/report/approval-decision.mjs.map +0 -1
  498. package/dist/commands/report/design-snapshot.d.mts +0 -1
  499. package/dist/commands/report/design-snapshot.mjs +0 -19
  500. package/dist/commands/report/design-snapshot.mjs.map +0 -1
  501. package/dist/commands/report/finalize.d.mts +0 -4
  502. package/dist/commands/report/finalize.mjs +0 -64
  503. package/dist/commands/report/finalize.mjs.map +0 -1
  504. package/dist/commands/report/inject-report-index.d.mts +0 -1
  505. package/dist/commands/report/inject-report-index.mjs +0 -21
  506. package/dist/commands/report/inject-report-index.mjs.map +0 -1
  507. package/dist/commands/report/render-final-report.d.mts +0 -1
  508. package/dist/commands/report/render-final-report.mjs +0 -23
  509. package/dist/commands/report/render-final-report.mjs.map +0 -1
  510. package/dist/commands/report/render-views.d.mts +0 -1
  511. package/dist/commands/report/render-views.mjs +0 -27
  512. package/dist/commands/report/render-views.mjs.map +0 -1
  513. package/dist/commands/report/translate.d.mts +0 -1
  514. package/dist/commands/report/translate.mjs +0 -33
  515. package/dist/commands/report/translate.mjs.map +0 -1
  516. package/runtime/bin/lib/okstra/tmux-pane.sh +0 -40
  517. package/runtime/bin/lib/okstra-ctl/cmd-batch.sh +0 -59
  518. package/runtime/bin/lib/okstra-ctl/cmd-list.sh +0 -35
  519. package/runtime/bin/lib/okstra-ctl/cmd-open.sh +0 -36
  520. package/runtime/bin/lib/okstra-ctl/cmd-projects.sh +0 -26
  521. package/runtime/bin/lib/okstra-ctl/cmd-reconcile.sh +0 -29
  522. package/runtime/bin/lib/okstra-ctl/cmd-reindex.sh +0 -38
  523. package/runtime/bin/lib/okstra-ctl/cmd-rerun.sh +0 -345
  524. package/runtime/bin/lib/okstra-ctl/cmd-show.sh +0 -27
  525. package/runtime/bin/lib/okstra-ctl/cmd-tail.sh +0 -92
  526. package/runtime/bin/lib/okstra-ctl/main.sh +0 -41
  527. package/runtime/bin/lib/okstra-ctl/prepare.sh +0 -31
  528. package/runtime/bin/lib/okstra-ctl/usage.sh +0 -23
  529. package/runtime/bin/okstra-central.sh +0 -152
  530. package/runtime/bin/okstra-incremental-carry.py +0 -10
  531. package/runtime/bin/okstra-incremental-scope.py +0 -10
  532. package/runtime/bin/okstra-team-reconcile.sh +0 -36
  533. package/runtime/python/okstra_ctl/agent_prompt_cli.py +0 -1156
  534. package/runtime/python/okstra_ctl/batch.py +0 -60
  535. package/runtime/python/okstra_ctl/clarification_items.py +0 -1050
  536. package/runtime/python/okstra_ctl/container_registry.py +0 -72
  537. package/runtime/python/okstra_ctl/improvement_assignment.py +0 -61
  538. package/runtime/python/okstra_ctl/resolver.py +0 -54
  539. package/runtime/python/okstra_ctl/team_reconcile.py +0 -275
  540. package/runtime/python/okstra_ctl/tmux.py +0 -134
  541. package/runtime/python/okstra_ctl/worktree.py +0 -1099
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,24 +0,0 @@
1
- import { runPythonModule } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra agent-prompt — materialize and verify auditable agent invocations
3
-
4
- Usage:
5
- okstra agent-prompt materialize [options]
6
- okstra agent-prompt verify [options]
7
- okstra agent-prompt materialize-result [options]
8
- okstra agent-prompt complete [options]
9
- okstra agent-prompt verify-completion [options]
10
- okstra agent-prompt record-dispatch [options]
11
- okstra agent-prompt link-result [options]
12
- `;
13
- export async function run(args) {
14
- if (args.length === 1 && (args[0] === "--help" || args[0] === "-h")) {
15
- process.stdout.write(USAGE);
16
- return 0;
17
- }
18
- const { code } = await runPythonModule({
19
- module: "okstra_ctl.agent_prompt_cli",
20
- args,
21
- });
22
- return code ?? 1;
23
- }
24
- //# sourceMappingURL=agent-prompt.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-prompt.mjs","sourceRoot":"","sources":["../../../src/commands/execute/agent-prompt.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;;CAUb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC;QACrC,MAAM,EAAE,6BAA6B;QACrC,IAAI;KACL,CAAC,CAAC;IACH,OAAO,IAAI,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -1,3 +0,0 @@
1
- import { buildWorkerDispatchArgs } from "./worker-dispatch.mjs";
2
- export declare const buildCodexDispatchArgs: typeof buildWorkerDispatchArgs;
3
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,6 +0,0 @@
1
- import { buildWorkerDispatchArgs, runWorkerDispatch, } from "./worker-dispatch.mjs";
2
- export const buildCodexDispatchArgs = buildWorkerDispatchArgs;
3
- export async function run(args) {
4
- return runWorkerDispatch(args, { commandName: "codex-dispatch" });
5
- }
6
- //# sourceMappingURL=codex-dispatch.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex-dispatch.mjs","sourceRoot":"","sources":["../../../src/commands/execute/codex-dispatch.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,OAAO,iBAAiB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACpE,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { CliArgs } from "../../lib/types.mjs";
2
- export declare function buildCodexRunArgs(args: CliArgs, workspaceRoot: string): string[];
3
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,62 +0,0 @@
1
- import { runPythonModule } from "../../lib/python-helper.mjs";
2
- import { resolvePaths } from "../../lib/paths.mjs";
3
- const USAGE = `okstra codex-run — prepare a render-only Codex lead task bundle
4
-
5
- This is the dry-run entry point for the Codex lead adapter. It forwards to
6
- \`python3 -m okstra_ctl.run --render-only --lead-runtime codex\`, materializes
7
- the normal okstra task bundle, and prints the rendered lead prompt without
8
- dispatching workers.
9
-
10
- Usage:
11
- okstra codex-run --project-root <dir> --project-id <id> \\
12
- --task-group <tg> --task-id <tid> --task-type <type> \\
13
- --task-brief <path-or-rel> [--workers <list>] [--directive <text>] \\
14
- [--lead-model <m>] [--claude-model <m>] [--codex-model <m>] \\
15
- [--antigravity-model <m>] [--report-writer-model <m>] \\
16
- [--related-tasks <list>] [--base-ref <ref>] \\
17
- [--clarification-response <path>] [--work-category <cat>] \\
18
- [--selected-direction <selection-final-report.md>] \\
19
- [--stage <auto|N>] [--stages <csv>] [--pr-template-path <path>] \\
20
- [--fix-cycle <yes|no>]
21
-
22
- --render-only and --lead-runtime are owned by this command.
23
- Worker dispatch is intentionally disabled here; use 'okstra codex-dispatch'
24
- with the rendered run manifest for CLI-backed codex/antigravity workers.
25
- `;
26
- const OWNED_FLAGS = new Set(["--workspace-root", "--render-only", "--lead-runtime"]);
27
- function isOwnedFlag(arg) {
28
- if (OWNED_FLAGS.has(arg))
29
- return true;
30
- return [...OWNED_FLAGS].some((flag) => arg.startsWith(`${flag}=`));
31
- }
32
- export function buildCodexRunArgs(args, workspaceRoot) {
33
- return [
34
- "--workspace-root", workspaceRoot,
35
- "--render-only",
36
- "--lead-runtime", "codex",
37
- ...args,
38
- ];
39
- }
40
- export async function run(args) {
41
- if (args.includes("--help") || args.includes("-h")) {
42
- process.stdout.write(USAGE);
43
- return 0;
44
- }
45
- if (args.length === 0) {
46
- process.stdout.write(USAGE);
47
- return 2;
48
- }
49
- const forbidden = args.find(isOwnedFlag);
50
- if (forbidden) {
51
- process.stderr.write(`error: ${forbidden} is set by 'okstra codex-run' itself — remove it from your args\n`);
52
- return 2;
53
- }
54
- const paths = await resolvePaths();
55
- const result = await runPythonModule({
56
- module: "okstra_ctl.run",
57
- args: buildCodexRunArgs(args, paths.workspace),
58
- stdio: "inherit-stdout",
59
- });
60
- return result.code;
61
- }
62
- //# sourceMappingURL=codex-run.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codex-run.mjs","sourceRoot":"","sources":["../../../src/commands/execute/codex-run.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBb,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAErF,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAa,EAAE,aAAqB;IACpE,OAAO;QACL,kBAAkB,EAAE,aAAa;QACjC,eAAe;QACf,gBAAgB,EAAE,OAAO;QACzB,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU,SAAS,mEAAmE,CACvF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,YAAY,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;QAC9C,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,38 +0,0 @@
1
- import { runPythonModule } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra convergence — advance deterministic re-verification state
3
-
4
- Usage:
5
- okstra convergence seed --groups <path> --work-state <path> \\
6
- --final-state <path> --migration-dir <path> [--restart-from-round0]
7
- okstra convergence plan-round --work-state <path> --plan <path>
8
- okstra convergence apply-round --work-state <path> --plan <path> \\
9
- --results <path>
10
- okstra convergence apply-critic-gaps --work-state <path> --results <path>
11
- okstra convergence finalize --work-state <path> --output <path>
12
- okstra convergence validate --state <path> --kind <working|final>
13
- okstra convergence example --kind <groups|round-results|critic-results>
14
-
15
- Working lifecycle:
16
- groups v1.0 → work v1.0 → round-plan/results v1.0 → final v1.3
17
- historical final readers: v1.0, v1.1, v1.2
18
-
19
- This internal admin command is consumed by the Phase 5.5 lead contract. It
20
- does not install or revive the obsolete okstra-convergence skill.
21
- `;
22
- export async function run(args) {
23
- if (args.includes("--help") || args.includes("-h")) {
24
- process.stdout.write(USAGE);
25
- return 0;
26
- }
27
- if (args.length === 0) {
28
- process.stdout.write(USAGE);
29
- return 2;
30
- }
31
- const result = await runPythonModule({
32
- module: "okstra_ctl.convergence",
33
- args,
34
- stdio: "inherit-stdout",
35
- });
36
- return result.code;
37
- }
38
- //# sourceMappingURL=convergence.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convergence.mjs","sourceRoot":"","sources":["../../../src/commands/execute/convergence.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;CAmBb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,wBAAwB;QAChC,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,18 +0,0 @@
1
- import { runInstalledScript } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra error-log — append okstra run error events to the run error log
3
-
4
- Wraps the python helper (\`okstra-error-log.py\`) installed under
5
- \`~/.okstra/bin/\` so skills and worker wrappers call \`okstra error-log\`
6
- instead of emitting a \`python3 "$HOME/..."\` invocation (which breaks
7
- \`Bash(okstra:*)\` permission matching and prompts on every call).
8
-
9
- Usage:
10
- okstra error-log <subcommand> [...] # e.g. append-observed / append-from-worker
11
-
12
- All arguments are forwarded verbatim to the python helper. See
13
- \`okstra error-log append-observed --help\` for the full option list.
14
- `;
15
- export async function run(args) {
16
- return runInstalledScript({ scriptName: "okstra-error-log.py", args, usage: USAGE });
17
- }
18
- //# sourceMappingURL=error-log.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-log.mjs","sourceRoot":"","sources":["../../../src/commands/execute/error-log.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,KAAK,GAAG;;;;;;;;;;;;CAYb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,OAAO,kBAAkB,CAAC,EAAE,UAAU,EAAE,qBAAqB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACvF,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,30 +0,0 @@
1
- import { runPythonModule } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra git-reconcile — okstra 밖 git 히스토리 변경 후 기록 화해
3
-
4
- A thin shim over \`python3 -m okstra_ctl.git_reconcile\`. 기본은 검사:
5
- stale 항목을 JSON 으로 출력하고, confirm 항목이 남으면 exit 2.
6
- patch-id 로 내용 동일성이 증명되는 항목(auto)은 --apply 로 일괄 보정되고,
7
- 내용이 바뀐 항목(confirm)은 --stage/--use-ref 로만 보정된다.
8
-
9
- Usage:
10
- okstra git-reconcile --plan-run-root <dir> --project-id <id> \\
11
- --task-group <g> --task-id <t> --work-category <c> \\
12
- [--apply] [--stage <N> --use-ref <ref>] [--reset-anchor <ref>] [--json]
13
-
14
- Exit codes:
15
- 0 stale 없음 또는 보정 완료
16
- 2 confirm 항목 잔존 (check: 확인 필요 / apply: 일부 미보정)
17
- 1 error (resolve 실패 등)
18
- `;
19
- export async function run(args) {
20
- if (args.includes("--help") || args.includes("-h")) {
21
- process.stdout.write(USAGE);
22
- return 0;
23
- }
24
- const { code } = await runPythonModule({
25
- module: "okstra_ctl.git_reconcile",
26
- args,
27
- });
28
- return code ?? 1;
29
- }
30
- //# sourceMappingURL=git-reconcile.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-reconcile.mjs","sourceRoot":"","sources":["../../../src/commands/execute/git-reconcile.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;CAgBb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC;QACrC,MAAM,EAAE,0BAA0B;QAClC,IAAI;KACL,CAAC,CAAC;IACH,OAAO,IAAI,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,31 +0,0 @@
1
- import { runPythonModule } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra handoff — release-handoff stage-group 보조 (자격/수집/기록)
3
-
4
- A thin shim over \`python3 -m okstra_ctl.handoff\`. JSON 출력.
5
-
6
- Usage:
7
- okstra handoff eligible --plan-run-root <dir> --approved-plan <md>
8
- okstra handoff assemble --plan-run-root <dir> --approved-plan <md> \\
9
- --project-root <dir> --project-id <id> --task-group <g> --task-id <t> \\
10
- --work-category <c> --stages 2,3 --base <branch>
11
- okstra handoff record-verified --plan-run-root <dir> --stage <N> \\
12
- --report-path <md> --data-json <json>
13
- okstra handoff record-pr --plan-run-root <dir> --stages 2,3 \\
14
- --branch <b> --url <u>
15
- okstra handoff local-checkout --project-root <dir> --project-id <id> \\
16
- --task-group <g> --task-id <t> [--stage <N>]
17
-
18
- Exit codes: 0 ok / 1 자격·전제 위반 / 2 stage 간 merge 충돌(conflicts 동봉)
19
- `;
20
- export async function run(args) {
21
- if (args.includes("--help") || args.includes("-h")) {
22
- process.stdout.write(USAGE);
23
- return 0;
24
- }
25
- const { code } = await runPythonModule({
26
- module: "okstra_ctl.handoff",
27
- args,
28
- });
29
- return code ?? 1;
30
- }
31
- //# sourceMappingURL=handoff.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handoff.mjs","sourceRoot":"","sources":["../../../src/commands/execute/handoff.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;CAiBb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC;QACrC,MAAM,EAAE,oBAAoB;QAC5B,IAAI;KACL,CAAC,CAAC;IACH,OAAO,IAAI,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,20 +0,0 @@
1
- import { runInstalledScript } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra incremental-carry — merge carried-forward plan-item verdicts
3
-
4
- Wraps the installed helper. Contract v3 writes only the convergence-owned plan
5
- state; the historical v2 form still updates a report record.
6
-
7
- Usage:
8
- okstra incremental-carry --prev-data <path> --cur-narrative <path> \\
9
- --state <path> --prev-seq <str> --carry-stages <csv> \\
10
- --reverify-stages <csv> --out-state <path>
11
- okstra incremental-carry --prev-data <path> --cur-data <path> \\
12
- --prev-seq <str> [--carry-stages <csv> --reverify-stages <csv>] --out <path>
13
-
14
- Exits non-zero on ownership, scope, or schema drift so the caller can fall back
15
- to a full re-run.
16
- `;
17
- export async function run(args) {
18
- return runInstalledScript({ scriptName: "okstra-incremental-carry.py", args, usage: USAGE });
19
- }
20
- //# sourceMappingURL=incremental-carry.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"incremental-carry.mjs","sourceRoot":"","sources":["../../../src/commands/execute/incremental-carry.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,KAAK,GAAG;;;;;;;;;;;;;;CAcb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,OAAO,kBAAkB,CAAC,EAAE,UAAU,EAAE,6BAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/F,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,29 +0,0 @@
1
- import { runInstalledScript } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra incremental-scope — decide the re-verify vs carry-forward scope for a clarification re-run
3
-
4
- Wraps the python helper (\`okstra-incremental-scope.py\`) installed under
5
- \`~/.okstra/bin/\` so the lead prompt calls \`okstra incremental-scope\`
6
- instead of emitting a \`python3 "$HOME/..."\` invocation (which breaks
7
- \`Bash(okstra:*)\` permission matching and prompts on every call).
8
-
9
- Usage:
10
- okstra incremental-scope --prev-data <path> --cur-base-sha <sha> \\
11
- --prev-base-sha <sha> [--impacted <csv>] [--option <name>]
12
- okstra incremental-scope --preview --prev-data <path> \\
13
- --answered-clarifications <csv>
14
-
15
- Prints a JSON decision {mode, reverify_stages, carry_stages, reason} to stdout.
16
-
17
- \`--preview\` prints {wouldForceFull, unlinkedIds, reason} instead and needs no
18
- base SHA. It answers only the link half — whether the answered ids trace to a
19
- stage in the prior report — so it can run before \`render-bundle\` fixes a
20
- worktree base commit, while the decision to start is still reversible.
21
- \`wouldForceFull: false\` is not a promise of \`incremental\`: the base-ref check
22
- still runs at decision time.
23
-
24
- All arguments are forwarded verbatim to the python helper.
25
- `;
26
- export async function run(args) {
27
- return runInstalledScript({ scriptName: "okstra-incremental-scope.py", args, usage: USAGE });
28
- }
29
- //# sourceMappingURL=incremental-scope.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"incremental-scope.mjs","sourceRoot":"","sources":["../../../src/commands/execute/incremental-scope.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,OAAO,kBAAkB,CAAC,EAAE,UAAU,EAAE,6BAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/F,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,24 +0,0 @@
1
- import { runPythonModule } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra integrate-stages — stage 들을 task 브랜치에 통합 머지 + worktree 정리
3
-
4
- A thin shim over \`python3 -m okstra_ctl.stage_integrate\`.
5
-
6
- Usage:
7
- okstra integrate-stages --project-id <id> \\
8
- --task-group <g> --task-id <t> --plan-run-root <dir> \\
9
- --task-worktree-path <dir> [--stage-map-json '<json>']
10
-
11
- Exit codes: 0 ok / 2 stage 간 merge 충돌 / 1 python 프로세스 비정상 종료(폴백)
12
- `;
13
- export async function run(args) {
14
- if (args.includes("--help") || args.includes("-h")) {
15
- process.stdout.write(USAGE);
16
- return 0;
17
- }
18
- const { code } = await runPythonModule({
19
- module: "okstra_ctl.stage_integrate",
20
- args,
21
- });
22
- return code ?? 1;
23
- }
24
- //# sourceMappingURL=integrate-stages.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integrate-stages.mjs","sourceRoot":"","sources":["../../../src/commands/execute/integrate-stages.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;;CAUb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC;QACrC,MAAM,EAAE,4BAA4B;QACpC,IAAI;KACL,CAAC,CAAC;IACH,OAAO,IAAI,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,20 +0,0 @@
1
- import { runPythonModule } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra pane-title — lease pane titles from stored execution labels
3
-
4
- Usage:
5
- okstra pane-title acquire --execution-label <label> [--pane-id <id>]
6
- okstra pane-title release
7
- okstra pane-title cleanup
8
- `;
9
- export async function run(args) {
10
- if (args.length === 1 && (args[0] === "--help" || args[0] === "-h")) {
11
- process.stdout.write(USAGE);
12
- return 0;
13
- }
14
- const { code } = await runPythonModule({
15
- module: "okstra_ctl.pane_title",
16
- args,
17
- });
18
- return code ?? 1;
19
- }
20
- //# sourceMappingURL=pane-title.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pane-title.mjs","sourceRoot":"","sources":["../../../src/commands/execute/pane-title.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;CAMb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC;QACrC,MAAM,EAAE,uBAAuB;QAC/B,IAAI;KACL,CAAC,CAAC;IACH,OAAO,IAAI,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,9 +0,0 @@
1
- import { runPythonModule } from "../../lib/python-helper.mjs";
2
- export async function run(args) {
3
- const { code } = await runPythonModule({
4
- module: "okstra_ctl.plan_items_cli",
5
- args,
6
- });
7
- return code ?? 1;
8
- }
9
- //# sourceMappingURL=plan-items.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-items.mjs","sourceRoot":"","sources":["../../../src/commands/execute/plan-items.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC;QACrC,MAAM,EAAE,2BAA2B;QACnC,IAAI;KACL,CAAC,CAAC;IACH,OAAO,IAAI,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,68 +0,0 @@
1
- import { runPythonSnippet, emitJsonError } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra plan-validate — verify an approved-plan file has a recognised approval marker
3
-
4
- Usage:
5
- okstra plan-validate <plan-path>
6
-
7
- Output: JSON { ok: true, planPath } on success.
8
- On failure: { ok: false, reason } with non-zero exit code.
9
-
10
- Replaces the \`from okstra_ctl.run import _validate_approved_plan\` heredoc
11
- pattern. Use this in flows that need to confirm a plan was approved
12
- without invoking the full prepare_task_bundle pipeline.
13
- `;
14
- function parseArgs(args) {
15
- const positional = args.filter((a) => !a.startsWith("--"));
16
- const unknown = args.filter((a) => a.startsWith("--"));
17
- if (unknown.length)
18
- throw new Error(`unknown argument '${unknown[0]}'`);
19
- if (positional.length !== 1) {
20
- throw new Error("expected exactly one positional argument: <plan-path>");
21
- }
22
- const planPath = positional[0];
23
- if (planPath === undefined)
24
- throw new Error("expected exactly one positional argument: <plan-path>");
25
- return { planPath };
26
- }
27
- const SCRIPT = `
28
- import json, sys
29
- from okstra_ctl.run import _validate_approved_plan, PrepareError
30
-
31
- path = sys.argv[1]
32
- try:
33
- _validate_approved_plan(path)
34
- except PrepareError as e:
35
- print(json.dumps({"ok": False, "stage": "validation", "reason": str(e), "planPath": path}))
36
- sys.exit(1)
37
-
38
- print(json.dumps({"ok": True, "planPath": path}))
39
- `;
40
- export async function run(args) {
41
- if (args.includes("--help") || args.includes("-h")) {
42
- process.stdout.write(USAGE);
43
- return 0;
44
- }
45
- let opts;
46
- try {
47
- opts = parseArgs(args);
48
- }
49
- catch (err) {
50
- const message = err instanceof Error ? err.message : String(err);
51
- process.stderr.write(`error: ${message}\n\n${USAGE}`);
52
- return 2;
53
- }
54
- const result = await runPythonSnippet({
55
- script: SCRIPT,
56
- args: [opts.planPath],
57
- });
58
- if (result.code !== 0 && !result.stdout.trim()) {
59
- emitJsonError({
60
- stage: "python",
61
- reason: `python invocation failed: ${result.stderr.trim() || "no output"}`,
62
- });
63
- return 1;
64
- }
65
- process.stdout.write(result.stdout);
66
- return result.code === 0 ? 0 : result.code;
67
- }
68
- //# sourceMappingURL=plan-validate.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-validate.mjs","sourceRoot":"","sources":["../../../src/commands/execute/plan-validate.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG9E,MAAM,KAAK,GAAG;;;;;;;;;;;CAWb,CAAC;AAEF,SAAS,SAAS,CAAC,IAAa;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACrG,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,MAAM,GAAG;;;;;;;;;;;;CAYd,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;QACpC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;KACtB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,aAAa,CAAC;YACZ,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,6BAA6B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,WAAW,EAAE;SAC3E,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,43 +0,0 @@
1
- import { runInstalledValidator } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra plan-verify — score the §5.5.9 plan-body gate for one self-fix round
3
-
4
- Usage:
5
- okstra plan-verify --narrative <report-writer-narrative.md> --state <plan-body-verification.json>
6
- okstra plan-verify --report <final-report-implementation-planning-<seq>.data.json>
7
-
8
- Recomputes the gate from the convergence-owned state's \`planItems[].verdicts\`
9
- before publication. The \`--report\` form reads historical v2 reports. It runs
10
- every plan-body contract check that a round can be judged on its own — verdict
11
- provenance, fixability, subject substance, self-fix grouping, round recording,
12
- clarification matching, and the state-file round history.
13
-
14
- Emits one JSON object:
15
-
16
- gate.recomputed the gate value this round's votes actually support
17
- gate.blockedBy the \`gateBlockedBy\` causes, recomputed
18
- gate.blockingItems the plan items classified \`majority-disagree\`
19
- gate.items[] per-item classification
20
- failures[] contract violations — exit code 2 when non-empty
21
- warnings[] advisory signals (self-fix recurrence, uniform verifier)
22
-
23
- Run this at every round boundary and record what it returns. The single-vote
24
- blocking kinds, the advisory-only kinds and the P-Var / P-Rb exemptions live in
25
- this one implementation — a lead that tallies the verdicts by hand instead is
26
- re-deriving them per round, and a round scored wrong spends its self-fix budget
27
- on the wrong items.
28
- `;
29
- export async function run(args) {
30
- if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
31
- process.stdout.write(USAGE);
32
- return args.length === 0 ? 2 : 0;
33
- }
34
- if (args.includes("--section")) {
35
- process.stderr.write("error: --section is set by 'okstra plan-verify' itself — remove it from your args\n");
36
- return 2;
37
- }
38
- return await runInstalledValidator({
39
- validatorName: "validate-run.py",
40
- args: ["--section", "plan-body", ...args],
41
- });
42
- }
43
- //# sourceMappingURL=plan-verify.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-verify.mjs","sourceRoot":"","sources":["../../../src/commands/execute/plan-verify.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Bb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qFAAqF,CACtF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,MAAM,qBAAqB,CAAC;QACjC,aAAa,EAAE,iBAAiB;QAChC,IAAI,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC"}
@@ -1 +0,0 @@
1
- export declare function run(args: readonly string[]): Promise<number>;
@@ -1,22 +0,0 @@
1
- import { runInstalledScript } from "../../lib/python-helper.mjs";
2
- const USAGE = `okstra spawn-followups — create follow-up task bundles from a final report
3
-
4
- Wraps the python helper (\`okstra-spawn-followups.py\`) installed under
5
- \`~/.okstra/bin/\` so skills call \`okstra spawn-followups\` instead of
6
- emitting a \`python3 "$HOME/..."\` invocation (which breaks \`Bash(okstra:*)\`
7
- permission matching and prompts on every call).
8
-
9
- Usage:
10
- okstra spawn-followups <args...>
11
-
12
- All arguments are forwarded verbatim to the python helper. See
13
- \`okstra spawn-followups --help\` for the full option list.
14
- `;
15
- export async function run(args) {
16
- return runInstalledScript({
17
- scriptName: "okstra-spawn-followups.py",
18
- args,
19
- usage: USAGE,
20
- });
21
- }
22
- //# sourceMappingURL=spawn-followups.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spawn-followups.mjs","sourceRoot":"","sources":["../../../src/commands/execute/spawn-followups.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,KAAK,GAAG;;;;;;;;;;;;CAYb,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAuB;IAC/C,OAAO,kBAAkB,CAAC;QACxB,UAAU,EAAE,2BAA2B;QACvC,IAAI;QACJ,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { CliArgs, RuntimePaths } from "../../lib/types.mjs";
2
- export declare function buildTeamArgs(args: CliArgs, paths: RuntimePaths): string[];
3
- export declare function run(args: readonly string[]): Promise<number>;