okstra 0.173.0 → 0.175.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 (402) hide show
  1. package/README.md +18 -9
  2. package/bin/okstra +8 -4
  3. package/dist/cli-registry.d.mts +16 -0
  4. package/dist/cli-registry.mjs +560 -0
  5. package/dist/cli-registry.mjs.map +1 -0
  6. package/dist/commands/execute/agent-prompt.d.mts +1 -0
  7. package/{src → dist}/commands/execute/agent-prompt.mjs +10 -11
  8. package/dist/commands/execute/agent-prompt.mjs.map +1 -0
  9. package/dist/commands/execute/codex-dispatch.d.mts +3 -0
  10. package/dist/commands/execute/codex-dispatch.mjs +6 -0
  11. package/dist/commands/execute/codex-dispatch.mjs.map +1 -0
  12. package/dist/commands/execute/codex-run.d.mts +3 -0
  13. package/{src → dist}/commands/execute/codex-run.mjs +30 -37
  14. package/dist/commands/execute/codex-run.mjs.map +1 -0
  15. package/dist/commands/execute/convergence.d.mts +1 -0
  16. package/{src → dist}/commands/execute/convergence.mjs +15 -16
  17. package/dist/commands/execute/convergence.mjs.map +1 -0
  18. package/dist/commands/execute/error-log.d.mts +1 -0
  19. package/{src → dist}/commands/execute/error-log.mjs +2 -3
  20. package/dist/commands/execute/error-log.mjs.map +1 -0
  21. package/dist/commands/execute/git-reconcile.d.mts +1 -0
  22. package/{src → dist}/commands/execute/git-reconcile.mjs +10 -11
  23. package/dist/commands/execute/git-reconcile.mjs.map +1 -0
  24. package/dist/commands/execute/handoff.d.mts +1 -0
  25. package/{src → dist}/commands/execute/handoff.mjs +10 -11
  26. package/dist/commands/execute/handoff.mjs.map +1 -0
  27. package/dist/commands/execute/incremental-carry.d.mts +1 -0
  28. package/{src → dist}/commands/execute/incremental-carry.mjs +2 -3
  29. package/dist/commands/execute/incremental-carry.mjs.map +1 -0
  30. package/dist/commands/execute/incremental-scope.d.mts +1 -0
  31. package/{src → dist}/commands/execute/incremental-scope.mjs +2 -3
  32. package/dist/commands/execute/incremental-scope.mjs.map +1 -0
  33. package/dist/commands/execute/integrate-stages.d.mts +1 -0
  34. package/{src → dist}/commands/execute/integrate-stages.mjs +10 -11
  35. package/dist/commands/execute/integrate-stages.mjs.map +1 -0
  36. package/dist/commands/execute/pane-title.d.mts +1 -0
  37. package/dist/commands/execute/pane-title.mjs +20 -0
  38. package/dist/commands/execute/pane-title.mjs.map +1 -0
  39. package/dist/commands/execute/plan-items.d.mts +1 -0
  40. package/dist/commands/execute/plan-items.mjs +9 -0
  41. package/dist/commands/execute/plan-items.mjs.map +1 -0
  42. package/dist/commands/execute/plan-validate.d.mts +1 -0
  43. package/dist/commands/execute/plan-validate.mjs +68 -0
  44. package/dist/commands/execute/plan-validate.mjs.map +1 -0
  45. package/dist/commands/execute/plan-verify.d.mts +1 -0
  46. package/{src → dist}/commands/execute/plan-verify.mjs +13 -16
  47. package/dist/commands/execute/plan-verify.mjs.map +1 -0
  48. package/dist/commands/execute/render-bundle.d.mts +3 -0
  49. package/{src → dist}/commands/execute/render-bundle.mjs +65 -61
  50. package/dist/commands/execute/render-bundle.mjs.map +1 -0
  51. package/dist/commands/execute/run.d.mts +24 -0
  52. package/dist/commands/execute/run.mjs +196 -0
  53. package/dist/commands/execute/run.mjs.map +1 -0
  54. package/dist/commands/execute/spawn-followups.d.mts +1 -0
  55. package/{src → dist}/commands/execute/spawn-followups.mjs +6 -7
  56. package/dist/commands/execute/spawn-followups.mjs.map +1 -0
  57. package/dist/commands/execute/team.d.mts +3 -0
  58. package/dist/commands/execute/team.mjs +56 -0
  59. package/dist/commands/execute/team.mjs.map +1 -0
  60. package/dist/commands/execute/token-usage.d.mts +1 -0
  61. package/{src → dist}/commands/execute/token-usage.mjs +2 -3
  62. package/dist/commands/execute/token-usage.mjs.map +1 -0
  63. package/dist/commands/execute/wizard.d.mts +8 -0
  64. package/dist/commands/execute/wizard.mjs +191 -0
  65. package/dist/commands/execute/wizard.mjs.map +1 -0
  66. package/dist/commands/execute/worker-audit-check.d.mts +1 -0
  67. package/{src → dist}/commands/execute/worker-audit-check.mjs +11 -12
  68. package/dist/commands/execute/worker-audit-check.mjs.map +1 -0
  69. package/dist/commands/execute/worker-dispatch.d.mts +7 -0
  70. package/{src → dist}/commands/execute/worker-dispatch.mjs +34 -46
  71. package/dist/commands/execute/worker-dispatch.mjs.map +1 -0
  72. package/dist/commands/execute/worker-state.d.mts +1 -0
  73. package/{src → dist}/commands/execute/worker-state.mjs +15 -16
  74. package/dist/commands/execute/worker-state.mjs.map +1 -0
  75. package/dist/commands/execute/worktree-lookup.d.mts +1 -0
  76. package/{src → dist}/commands/execute/worktree-lookup.mjs +38 -37
  77. package/dist/commands/execute/worktree-lookup.mjs.map +1 -0
  78. package/dist/commands/execute/worktree-status.d.mts +1 -0
  79. package/dist/commands/execute/worktree-status.mjs +115 -0
  80. package/dist/commands/execute/worktree-status.mjs.map +1 -0
  81. package/dist/commands/inspect/code-review.d.mts +1 -0
  82. package/{src → dist}/commands/inspect/code-review.mjs +16 -19
  83. package/dist/commands/inspect/code-review.mjs.map +1 -0
  84. package/dist/commands/inspect/container.d.mts +1 -0
  85. package/{src → dist}/commands/inspect/container.mjs +11 -13
  86. package/dist/commands/inspect/container.mjs.map +1 -0
  87. package/dist/commands/inspect/context-cost.d.mts +1 -0
  88. package/{src → dist}/commands/inspect/context-cost.mjs +11 -13
  89. package/dist/commands/inspect/context-cost.mjs.map +1 -0
  90. package/dist/commands/inspect/design-prep.d.mts +1 -0
  91. package/{src → dist}/commands/inspect/design-prep.mjs +10 -11
  92. package/dist/commands/inspect/design-prep.mjs.map +1 -0
  93. package/dist/commands/inspect/error-report.d.mts +1 -0
  94. package/{src → dist}/commands/inspect/error-report.mjs +11 -13
  95. package/dist/commands/inspect/error-report.mjs.map +1 -0
  96. package/dist/commands/inspect/error-zip.d.mts +1 -0
  97. package/{src → dist}/commands/inspect/error-zip.mjs +11 -12
  98. package/dist/commands/inspect/error-zip.mjs.map +1 -0
  99. package/dist/commands/inspect/log-report.d.mts +1 -0
  100. package/{src → dist}/commands/inspect/log-report.mjs +11 -13
  101. package/dist/commands/inspect/log-report.mjs.map +1 -0
  102. package/dist/commands/inspect/profile-show.d.mts +1 -0
  103. package/{src → dist}/commands/inspect/profile-show.mjs +10 -11
  104. package/dist/commands/inspect/profile-show.mjs.map +1 -0
  105. package/dist/commands/inspect/recap.d.mts +1 -0
  106. package/{src → dist}/commands/inspect/recap.mjs +11 -13
  107. package/dist/commands/inspect/recap.mjs.map +1 -0
  108. package/dist/commands/inspect/resolve-task-key.d.mts +1 -0
  109. package/{src → dist}/commands/inspect/resolve-task-key.mjs +11 -13
  110. package/dist/commands/inspect/resolve-task-key.mjs.map +1 -0
  111. package/dist/commands/inspect/rollup.d.mts +1 -0
  112. package/{src → dist}/commands/inspect/rollup.mjs +11 -13
  113. package/dist/commands/inspect/rollup.mjs.map +1 -0
  114. package/dist/commands/inspect/run-audit.d.mts +1 -0
  115. package/{src → dist}/commands/inspect/run-audit.mjs +11 -12
  116. package/dist/commands/inspect/run-audit.mjs.map +1 -0
  117. package/dist/commands/inspect/set-work-status.d.mts +1 -0
  118. package/{src → dist}/commands/inspect/set-work-status.mjs +11 -13
  119. package/dist/commands/inspect/set-work-status.mjs.map +1 -0
  120. package/dist/commands/inspect/stage-map.d.mts +1 -0
  121. package/dist/commands/inspect/stage-map.mjs +110 -0
  122. package/dist/commands/inspect/stage-map.mjs.map +1 -0
  123. package/dist/commands/inspect/task-list.d.mts +1 -0
  124. package/dist/commands/inspect/task-list.mjs +103 -0
  125. package/dist/commands/inspect/task-list.mjs.map +1 -0
  126. package/dist/commands/inspect/task-show.d.mts +1 -0
  127. package/dist/commands/inspect/task-show.mjs +108 -0
  128. package/dist/commands/inspect/task-show.mjs.map +1 -0
  129. package/dist/commands/inspect/time-report.d.mts +1 -0
  130. package/{src → dist}/commands/inspect/time-report.mjs +11 -13
  131. package/dist/commands/inspect/time-report.mjs.map +1 -0
  132. package/dist/commands/inspect/usage-report.d.mts +1 -0
  133. package/{src → dist}/commands/inspect/usage-report.mjs +11 -13
  134. package/dist/commands/inspect/usage-report.mjs.map +1 -0
  135. package/dist/commands/inspect/user-response.d.mts +1 -0
  136. package/{src → dist}/commands/inspect/user-response.mjs +10 -11
  137. package/dist/commands/inspect/user-response.mjs.map +1 -0
  138. package/dist/commands/inspect/worker-liveness.d.mts +1 -0
  139. package/{src → dist}/commands/inspect/worker-liveness.mjs +11 -13
  140. package/dist/commands/inspect/worker-liveness.mjs.map +1 -0
  141. package/dist/commands/lifecycle/check-project.d.mts +21 -0
  142. package/dist/commands/lifecycle/check-project.mjs +175 -0
  143. package/dist/commands/lifecycle/check-project.mjs.map +1 -0
  144. package/dist/commands/lifecycle/config.d.mts +1 -0
  145. package/dist/commands/lifecycle/config.mjs +369 -0
  146. package/dist/commands/lifecycle/config.mjs.map +1 -0
  147. package/dist/commands/lifecycle/doctor.d.mts +10 -0
  148. package/dist/commands/lifecycle/doctor.mjs +317 -0
  149. package/dist/commands/lifecycle/doctor.mjs.map +1 -0
  150. package/dist/commands/lifecycle/install.d.mts +17 -0
  151. package/dist/commands/lifecycle/install.mjs +1077 -0
  152. package/dist/commands/lifecycle/install.mjs.map +1 -0
  153. package/dist/commands/lifecycle/migrate.d.mts +1 -0
  154. package/{src → dist}/commands/lifecycle/migrate.mjs +10 -11
  155. package/dist/commands/lifecycle/migrate.mjs.map +1 -0
  156. package/dist/commands/lifecycle/model.d.mts +1 -0
  157. package/dist/commands/lifecycle/model.mjs +22 -0
  158. package/dist/commands/lifecycle/model.mjs.map +1 -0
  159. package/dist/commands/lifecycle/paths.d.mts +1 -0
  160. package/dist/commands/lifecycle/paths.mjs +102 -0
  161. package/dist/commands/lifecycle/paths.mjs.map +1 -0
  162. package/dist/commands/lifecycle/preflight.d.mts +1 -0
  163. package/dist/commands/lifecycle/preflight.mjs +124 -0
  164. package/dist/commands/lifecycle/preflight.mjs.map +1 -0
  165. package/dist/commands/lifecycle/setup.d.mts +1 -0
  166. package/dist/commands/lifecycle/setup.mjs +297 -0
  167. package/dist/commands/lifecycle/setup.mjs.map +1 -0
  168. package/dist/commands/lifecycle/uninstall.d.mts +4 -0
  169. package/dist/commands/lifecycle/uninstall.mjs +262 -0
  170. package/dist/commands/lifecycle/uninstall.mjs.map +1 -0
  171. package/dist/commands/manager.d.mts +3 -0
  172. package/{src → dist}/commands/manager.mjs +25 -32
  173. package/dist/commands/manager.mjs.map +1 -0
  174. package/dist/commands/memory/memory.d.mts +1 -0
  175. package/dist/commands/memory/memory.mjs +569 -0
  176. package/dist/commands/memory/memory.mjs.map +1 -0
  177. package/dist/commands/pr/pr.d.mts +33 -0
  178. package/dist/commands/pr/pr.mjs +296 -0
  179. package/dist/commands/pr/pr.mjs.map +1 -0
  180. package/dist/commands/report/agent-activity.d.mts +1 -0
  181. package/{src → dist}/commands/report/agent-activity.mjs +11 -12
  182. package/dist/commands/report/agent-activity.mjs.map +1 -0
  183. package/dist/commands/report/finalize.d.mts +4 -0
  184. package/dist/commands/report/finalize.mjs +64 -0
  185. package/dist/commands/report/finalize.mjs.map +1 -0
  186. package/dist/commands/report/inject-report-index.d.mts +1 -0
  187. package/{src → dist}/commands/report/inject-report-index.mjs +6 -7
  188. package/dist/commands/report/inject-report-index.mjs.map +1 -0
  189. package/dist/commands/report/render-final-report.d.mts +1 -0
  190. package/{src → dist}/commands/report/render-final-report.mjs +6 -7
  191. package/dist/commands/report/render-final-report.mjs.map +1 -0
  192. package/dist/commands/report/render-views.d.mts +1 -0
  193. package/{src → dist}/commands/report/render-views.mjs +6 -7
  194. package/dist/commands/report/render-views.mjs.map +1 -0
  195. package/dist/commands/report/translate.d.mts +1 -0
  196. package/{src → dist}/commands/report/translate.mjs +6 -7
  197. package/dist/commands/report/translate.mjs.map +1 -0
  198. package/dist/lib/helper-scripts.d.mts +3 -0
  199. package/{src → dist}/lib/helper-scripts.mjs +11 -14
  200. package/dist/lib/helper-scripts.mjs.map +1 -0
  201. package/dist/lib/host-registry-client.d.mts +25 -0
  202. package/dist/lib/host-registry-client.mjs +152 -0
  203. package/dist/lib/host-registry-client.mjs.map +1 -0
  204. package/dist/lib/install-assets.d.mts +8 -0
  205. package/{src → dist}/lib/install-assets.mjs +17 -20
  206. package/dist/lib/install-assets.mjs.map +1 -0
  207. package/dist/lib/okstra-dirs.d.mts +4 -0
  208. package/{src → dist}/lib/okstra-dirs.mjs +3 -6
  209. package/dist/lib/okstra-dirs.mjs.map +1 -0
  210. package/dist/lib/paths.d.mts +4 -0
  211. package/dist/lib/paths.mjs +78 -0
  212. package/dist/lib/paths.mjs.map +1 -0
  213. package/dist/lib/proc.d.mts +3 -0
  214. package/dist/lib/proc.mjs +31 -0
  215. package/dist/lib/proc.mjs.map +1 -0
  216. package/dist/lib/python-helper.d.mts +8 -0
  217. package/dist/lib/python-helper.mjs +123 -0
  218. package/dist/lib/python-helper.mjs.map +1 -0
  219. package/dist/lib/runtime-manifest.d.mts +7 -0
  220. package/dist/lib/runtime-manifest.mjs +73 -0
  221. package/dist/lib/runtime-manifest.mjs.map +1 -0
  222. package/dist/lib/skill-catalog.d.mts +4 -0
  223. package/dist/lib/skill-catalog.mjs +50 -0
  224. package/dist/lib/skill-catalog.mjs.map +1 -0
  225. package/dist/lib/types.d.mts +129 -0
  226. package/dist/lib/types.mjs +2 -0
  227. package/dist/lib/types.mjs.map +1 -0
  228. package/dist/lib/version.d.mts +2 -0
  229. package/dist/lib/version.mjs +27 -0
  230. package/dist/lib/version.mjs.map +1 -0
  231. package/docs/architecture/storage-model.md +17 -3
  232. package/docs/architecture.md +12 -22
  233. package/docs/cli.md +29 -8
  234. package/docs/container.md +1 -1
  235. package/docs/contributor-change-matrix.md +3 -3
  236. package/docs/project-structure-overview.md +29 -20
  237. package/docs/task-process/README.md +3 -1
  238. package/docs/task-process/implementation-planning.md +2 -2
  239. package/docs/task-process/implementation.md +1 -1
  240. package/package.json +11 -5
  241. package/runtime/BUILD.json +2 -2
  242. package/runtime/agents/workers/claude-worker.md +3 -2
  243. package/runtime/agents/workers/report-writer-worker.md +3 -1
  244. package/runtime/agents/workers/translator-worker.md +3 -1
  245. package/runtime/bin/lib/okstra/cli.sh +12 -0
  246. package/runtime/bin/lib/okstra/globals.sh +4 -1
  247. package/runtime/bin/lib/okstra/usage.sh +4 -4
  248. package/runtime/bin/okstra-error-log.py +27 -0
  249. package/runtime/bin/okstra-provider-exec.py +245 -16
  250. package/runtime/bin/okstra-trace-cleanup.sh +58 -129
  251. package/runtime/bin/okstra.sh +10 -0
  252. package/runtime/prompts/lead/adapters/cmux.md +2 -0
  253. package/runtime/prompts/lead/convergence.md +27 -18
  254. package/runtime/prompts/lead/okstra-lead-contract.md +4 -2
  255. package/runtime/prompts/lead/plan-body-verification.md +13 -6
  256. package/runtime/prompts/lead/report-writer.md +6 -6
  257. package/runtime/prompts/lead/team-contract.md +1 -1
  258. package/runtime/prompts/profiles/_common-contract.md +2 -2
  259. package/runtime/prompts/profiles/_implementation-executor.md +2 -0
  260. package/runtime/prompts/profiles/_implementation-verifier.md +2 -2
  261. package/runtime/prompts/profiles/change-impact-analysis.md +16 -0
  262. package/runtime/prompts/profiles/error-analysis.md +21 -1
  263. package/runtime/prompts/profiles/feature-analysis.md +16 -0
  264. package/runtime/prompts/profiles/final-verification.md +16 -0
  265. package/runtime/prompts/profiles/implementation-option-selection.md +16 -0
  266. package/runtime/prompts/profiles/implementation-planning.md +32 -9
  267. package/runtime/prompts/profiles/implementation.md +17 -1
  268. package/runtime/prompts/profiles/improvement-discovery.md +16 -0
  269. package/runtime/prompts/profiles/project-analysis.md +16 -0
  270. package/runtime/prompts/profiles/release-handoff.md +5 -1
  271. package/runtime/prompts/profiles/requirements-discovery.md +20 -0
  272. package/runtime/prompts/wizard/prompts.ko.json +18 -0
  273. package/runtime/python/okstra_ctl/adapters/dispatch/__init__.py +1 -6
  274. package/runtime/python/okstra_ctl/adapters/dispatch/cli_wrapper.py +8 -0
  275. package/runtime/python/okstra_ctl/adapters/dispatch/cmux.py +8 -0
  276. package/runtime/python/okstra_ctl/adapters/dispatch/native_team.py +13 -0
  277. package/runtime/python/okstra_ctl/adapters/hosts/antigravity/adapter.py +2 -2
  278. package/runtime/python/okstra_ctl/adapters/hosts/claude-code/adapter.py +25 -5
  279. package/runtime/python/okstra_ctl/adapters/hosts/codex/adapter.py +2 -2
  280. package/runtime/python/okstra_ctl/adapters/hosts/external/adapter.py +4 -1
  281. package/runtime/python/okstra_ctl/adapters/hosts/external/relay.md +4 -4
  282. package/runtime/python/okstra_ctl/adapters/hosts/grok/adapter.py +2 -2
  283. package/runtime/python/okstra_ctl/adapters/hosts/kimi/adapter.py +2 -2
  284. package/runtime/python/okstra_ctl/adapters/providers/antigravity/adapter.py +79 -11
  285. package/runtime/python/okstra_ctl/adapters/providers/claude/adapter.py +100 -25
  286. package/runtime/python/okstra_ctl/adapters/providers/codex/adapter.py +59 -14
  287. package/runtime/python/okstra_ctl/adapters/providers/grok/adapter.py +55 -9
  288. package/runtime/python/okstra_ctl/adapters/providers/kimi/adapter.py +51 -12
  289. package/runtime/python/okstra_ctl/agent_activity.py +5 -1
  290. package/runtime/python/okstra_ctl/agent_invocation.py +608 -14
  291. package/runtime/python/okstra_ctl/agent_prompt_cli.py +249 -50
  292. package/runtime/python/okstra_ctl/application/resolve_assignment.py +53 -12
  293. package/runtime/python/okstra_ctl/assignment_environment.py +102 -0
  294. package/runtime/python/okstra_ctl/assignment_resolver.py +790 -0
  295. package/runtime/python/okstra_ctl/attempt_evidence.py +342 -0
  296. package/runtime/python/okstra_ctl/conformance.py +68 -0
  297. package/runtime/python/okstra_ctl/convergence.py +409 -3
  298. package/runtime/python/okstra_ctl/convergence_engine.py +248 -15
  299. package/runtime/python/okstra_ctl/convergence_store.py +170 -1
  300. package/runtime/python/okstra_ctl/dispatch_core.py +1181 -102
  301. package/runtime/python/okstra_ctl/dispatch_state.py +835 -22
  302. package/runtime/python/okstra_ctl/doctor.py +16 -2
  303. package/runtime/python/okstra_ctl/domain/host.py +32 -1
  304. package/runtime/python/okstra_ctl/domain/provider.py +212 -6
  305. package/runtime/python/okstra_ctl/domain/role.py +125 -0
  306. package/runtime/python/okstra_ctl/domain/wizard/interaction.py +13 -0
  307. package/runtime/python/okstra_ctl/domain/worker_exec.py +39 -1
  308. package/runtime/python/okstra_ctl/domain/worker_role.py +13 -3
  309. package/runtime/python/okstra_ctl/domain/worker_stream.py +24 -0
  310. package/runtime/python/okstra_ctl/error_log_write.py +9 -0
  311. package/runtime/python/okstra_ctl/error_report.py +21 -1
  312. package/runtime/python/okstra_ctl/execution_identity.py +529 -0
  313. package/runtime/python/okstra_ctl/execution_manifest.py +1281 -0
  314. package/runtime/python/okstra_ctl/execution_mutation_audit.py +619 -0
  315. package/runtime/python/okstra_ctl/final_report_schema.py +5 -4
  316. package/runtime/python/okstra_ctl/index.py +6 -2
  317. package/runtime/python/okstra_ctl/initial_prompt_materialization.py +43 -3
  318. package/runtime/python/okstra_ctl/legacy_model_selection.py +490 -0
  319. package/runtime/python/okstra_ctl/model_cli.py +278 -0
  320. package/runtime/python/okstra_ctl/model_defaults.py +46 -0
  321. package/runtime/python/okstra_ctl/model_discovery.py +26 -7
  322. package/runtime/python/okstra_ctl/model_pool.py +501 -0
  323. package/runtime/python/okstra_ctl/models.py +47 -27
  324. package/runtime/python/okstra_ctl/mutation_recovery.py +293 -0
  325. package/runtime/python/okstra_ctl/pane_reclaim.py +13 -22
  326. package/runtime/python/okstra_ctl/pane_title.py +151 -0
  327. package/runtime/python/okstra_ctl/ports/host_model.py +48 -17
  328. package/runtime/python/okstra_ctl/ports/worker_dispatch.py +4 -0
  329. package/runtime/python/okstra_ctl/registry/provider_registry.py +8 -4
  330. package/runtime/python/okstra_ctl/render.py +78 -10
  331. package/runtime/python/okstra_ctl/render_final_report.py +34 -19
  332. package/runtime/python/okstra_ctl/report_contract.py +39 -1
  333. package/runtime/python/okstra_ctl/report_finalize.py +84 -9
  334. package/runtime/python/okstra_ctl/report_html/render.py +1 -0
  335. package/runtime/python/okstra_ctl/role_requirements.py +217 -0
  336. package/runtime/python/okstra_ctl/run.py +1250 -260
  337. package/runtime/python/okstra_ctl/run_index_row.py +7 -1
  338. package/runtime/python/okstra_ctl/schema_excerpt.py +1 -1
  339. package/runtime/python/okstra_ctl/scope_provenance.py +1 -1
  340. package/runtime/python/okstra_ctl/session.py +69 -12
  341. package/runtime/python/okstra_ctl/team.py +51 -25
  342. package/runtime/python/okstra_ctl/time_report.py +38 -4
  343. package/runtime/python/okstra_ctl/tmux.py +19 -149
  344. package/runtime/python/okstra_ctl/usage_identity.py +86 -0
  345. package/runtime/python/okstra_ctl/usage_report.py +15 -3
  346. package/runtime/python/okstra_ctl/wizard.py +1253 -62
  347. package/runtime/python/okstra_ctl/worker_audit_ledger.py +68 -65
  348. package/runtime/python/okstra_ctl/worker_request.py +9 -1
  349. package/runtime/python/okstra_ctl/worker_runner.py +130 -5
  350. package/runtime/python/okstra_ctl/workers.py +7 -5
  351. package/runtime/python/okstra_ctl/worktree.py +69 -3
  352. package/runtime/python/okstra_ctl/write_policy.py +571 -0
  353. package/runtime/python/okstra_token_usage/cli.py +1 -1
  354. package/runtime/python/okstra_token_usage/collect.py +66 -6
  355. package/runtime/schemas/convergence-groups-v2.0.schema.json +128 -0
  356. package/runtime/schemas/execution-manifest-v2.schema.json +340 -0
  357. package/runtime/schemas/final-report-v2.0.schema.json +25 -0
  358. package/runtime/skills/okstra-run/SKILL.md +9 -9
  359. package/runtime/skills/okstra-setup/references/project-config.md +11 -0
  360. package/runtime/templates/report-writer-prompt-preamble.md +2 -0
  361. package/runtime/templates/reports/final-report-v2.template.md +7 -1
  362. package/runtime/templates/reports/html/base.template.html +21 -0
  363. package/runtime/templates/reports/html/i18n/en.json +4 -0
  364. package/runtime/templates/reports/html/i18n/ko.json +4 -0
  365. package/runtime/templates/reports/settings.template.json +0 -24
  366. package/runtime/templates/worker-prompt-preamble.md +6 -2
  367. package/runtime/validators/lib/fixtures.sh +98 -33
  368. package/runtime/validators/validate-implementation-plan-stages.py +63 -3
  369. package/runtime/validators/validate-run.py +443 -508
  370. package/runtime/validators/validate_session_conformance.py +26 -8
  371. package/runtime/bin/okstra-subagent-reclaim.sh +0 -26
  372. package/runtime/schemas/final-report-v1.0.schema.json +0 -6366
  373. package/runtime/templates/reports/final-report.template.md +0 -1258
  374. package/src/cli-registry.mjs +0 -532
  375. package/src/commands/execute/codex-dispatch.mjs +0 -10
  376. package/src/commands/execute/plan-items.mjs +0 -9
  377. package/src/commands/execute/plan-validate.mjs +0 -68
  378. package/src/commands/execute/run.mjs +0 -208
  379. package/src/commands/execute/team.mjs +0 -63
  380. package/src/commands/execute/wizard.mjs +0 -167
  381. package/src/commands/inspect/stage-map.mjs +0 -98
  382. package/src/commands/inspect/task-list.mjs +0 -97
  383. package/src/commands/inspect/task-show.mjs +0 -100
  384. package/src/commands/lifecycle/check-project.mjs +0 -187
  385. package/src/commands/lifecycle/config.mjs +0 -385
  386. package/src/commands/lifecycle/doctor.mjs +0 -308
  387. package/src/commands/lifecycle/install.mjs +0 -1172
  388. package/src/commands/lifecycle/paths.mjs +0 -104
  389. package/src/commands/lifecycle/preflight.mjs +0 -125
  390. package/src/commands/lifecycle/setup.mjs +0 -333
  391. package/src/commands/lifecycle/uninstall.mjs +0 -279
  392. package/src/commands/memory/memory.mjs +0 -524
  393. package/src/commands/pr/pr.mjs +0 -261
  394. package/src/commands/report/finalize.mjs +0 -64
  395. package/src/lib/host-registry-client.mjs +0 -176
  396. package/src/lib/paths.mjs +0 -86
  397. package/src/lib/proc.mjs +0 -31
  398. package/src/lib/python-helper.mjs +0 -142
  399. package/src/lib/runtime-manifest.mjs +0 -70
  400. package/src/lib/skill-catalog.mjs +0 -53
  401. package/src/lib/version.mjs +0 -20
  402. /package/{src → dist}/commands/pr/default.md +0 -0
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra code-review — resolve a code review's diff range and result path
4
3
 
5
4
  Usage:
@@ -13,23 +12,21 @@ branch. An empty worktreePath means the review reads the branch ref
13
12
  instead of a checked-out tree. This is read-only — it never creates
14
13
  directories or files.
15
14
  `;
16
-
17
15
  export async function run(args) {
18
- if (args.includes("--help") || args.includes("-h")) {
19
- process.stdout.write(USAGE);
20
- return 0;
21
- }
22
- const [subcommand, ...rest] = args;
23
- if (subcommand !== "target") {
24
- process.stderr.write(
25
- `error: unknown subcommand '${subcommand ?? ""}'\n\n${USAGE}`,
26
- );
27
- return 2;
28
- }
29
- const result = await runPythonModule({
30
- module: "okstra_ctl.code_review_target",
31
- args: rest,
32
- stdio: "inherit-stdout",
33
- });
34
- return result.code;
16
+ if (args.includes("--help") || args.includes("-h")) {
17
+ process.stdout.write(USAGE);
18
+ return 0;
19
+ }
20
+ const [subcommand, ...rest] = args;
21
+ if (subcommand !== "target") {
22
+ process.stderr.write(`error: unknown subcommand '${subcommand ?? ""}'\n\n${USAGE}`);
23
+ return 2;
24
+ }
25
+ const result = await runPythonModule({
26
+ module: "okstra_ctl.code_review_target",
27
+ args: rest,
28
+ stdio: "inherit-stdout",
29
+ });
30
+ return result.code;
35
31
  }
32
+ //# sourceMappingURL=code-review.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-review.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/code-review.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;;;;CAYb,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,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8BAA8B,UAAU,IAAI,EAAE,QAAQ,KAAK,EAAE,CAC9D,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,+BAA+B;QACvC,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra container — manage the okstra container runtime
4
3
 
5
4
  Usage:
@@ -11,17 +10,16 @@ Usage:
11
10
 
12
11
  Each sub-command delegates to the okstra_ctl.container python entrypoint.
13
12
  `;
14
-
15
13
  export async function run(args) {
16
- if (args.includes("--help") || args.includes("-h")) {
17
- process.stdout.write(USAGE);
18
- return 0;
19
- }
20
-
21
- const result = await runPythonModule({
22
- module: "okstra_ctl.container",
23
- args,
24
- stdio: "inherit-stdout",
25
- });
26
- return result.code;
14
+ if (args.includes("--help") || args.includes("-h")) {
15
+ process.stdout.write(USAGE);
16
+ return 0;
17
+ }
18
+ const result = await runPythonModule({
19
+ module: "okstra_ctl.container",
20
+ args,
21
+ stdio: "inherit-stdout",
22
+ });
23
+ return result.code;
27
24
  }
25
+ //# sourceMappingURL=container.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/container.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;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,sBAAsB;QAC9B,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra context-cost — estimate context/read cost for a task bundle
4
3
 
5
4
  Usage:
@@ -11,17 +10,16 @@ Output: JSON with task file counts, current-run counts, lead Phase 1 read
11
10
  surface, analysis-worker initial read surface, and report-writer synthesis
12
11
  surface. This is read-only; it never mutates task artifacts.
13
12
  `;
14
-
15
13
  export async function run(args) {
16
- if (args.includes("--help") || args.includes("-h")) {
17
- process.stdout.write(USAGE);
18
- return 0;
19
- }
20
-
21
- const result = await runPythonModule({
22
- module: "okstra_ctl.context_cost",
23
- args,
24
- stdio: "inherit-stdout",
25
- });
26
- return result.code;
14
+ if (args.includes("--help") || args.includes("-h")) {
15
+ process.stdout.write(USAGE);
16
+ return 0;
17
+ }
18
+ const result = await runPythonModule({
19
+ module: "okstra_ctl.context_cost",
20
+ args,
21
+ stdio: "inherit-stdout",
22
+ });
23
+ return result.code;
27
24
  }
25
+ //# sourceMappingURL=context-cost.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-cost.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/context-cost.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;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,yBAAyB;QACjC,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra design-prep — review AI-prepared implementation design inputs
4
3
 
5
4
  Usage:
@@ -9,15 +8,15 @@ Usage:
9
8
  --decision <accept-draft|modify-draft|reject-draft|defer> \\
10
9
  [--overrides <json-object>] [--notes <text>] --confirmed
11
10
  `;
12
-
13
11
  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.design_prep",
20
- args,
21
- });
22
- return code ?? 1;
12
+ if (args.includes("--help") || args.includes("-h")) {
13
+ process.stdout.write(USAGE);
14
+ return 0;
15
+ }
16
+ const { code } = await runPythonModule({
17
+ module: "okstra_ctl.design_prep",
18
+ args,
19
+ });
20
+ return code ?? 1;
23
21
  }
22
+ //# sourceMappingURL=design-prep.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-prep.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/design-prep.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;CAQb,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,wBAAwB;QAChC,IAAI;KACL,CAAC,CAAC;IACH,OAAO,IAAI,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra error-report — aggregate okstra-run error logs into a task report
4
3
 
5
4
  Usage:
@@ -11,17 +10,16 @@ Writes a timestamped markdown report under <task-root>/error-reports/ and
11
10
  prints a JSON summary (counts by errorType / source / phase / agent) to stdout.
12
11
  This is read-only against task state; it never mutates task artifacts.
13
12
  `;
14
-
15
13
  export async function run(args) {
16
- if (args.includes("--help") || args.includes("-h")) {
17
- process.stdout.write(USAGE);
18
- return 0;
19
- }
20
-
21
- const result = await runPythonModule({
22
- module: "okstra_ctl.error_report",
23
- args,
24
- stdio: "inherit-stdout",
25
- });
26
- return result.code;
14
+ if (args.includes("--help") || args.includes("-h")) {
15
+ process.stdout.write(USAGE);
16
+ return 0;
17
+ }
18
+ const result = await runPythonModule({
19
+ module: "okstra_ctl.error_report",
20
+ args,
21
+ stdio: "inherit-stdout",
22
+ });
23
+ return result.code;
27
24
  }
25
+ //# sourceMappingURL=error-report.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-report.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/error-report.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;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,yBAAyB;QACjC,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra error-zip — bundle cross-project okstra error logs into a zip
4
3
 
5
4
  Usage:
@@ -10,16 +9,16 @@ every target project's runs/*/logs/errors-*.jsonl, anonymizes records, and
10
9
  writes a .zip (report.md + errors/anonymized.jsonl) to <path>. Read-only
11
10
  against every target's .okstra/. Prints a JSON summary to stdout.
12
11
  `;
13
-
14
12
  export async function run(args) {
15
- if (args.includes("--help") || args.includes("-h")) {
16
- process.stdout.write(USAGE);
17
- return 0;
18
- }
19
- const result = await runPythonModule({
20
- module: "okstra_ctl.error_zip",
21
- args,
22
- stdio: "inherit-stdout",
23
- });
24
- return result.code;
13
+ if (args.includes("--help") || args.includes("-h")) {
14
+ process.stdout.write(USAGE);
15
+ return 0;
16
+ }
17
+ const result = await runPythonModule({
18
+ module: "okstra_ctl.error_zip",
19
+ args,
20
+ stdio: "inherit-stdout",
21
+ });
22
+ return result.code;
25
23
  }
24
+ //# sourceMappingURL=error-zip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-zip.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/error-zip.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;CASb,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,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,sBAAsB;QAC9B,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra log-report — inventory wrapper sidecar logs by size and task
4
3
 
5
4
  Usage:
@@ -12,17 +11,16 @@ promptBytes; sizeBytes remains the transcript-size compatibility field. Sizes
12
11
  are raw bytes and mtimes are epoch seconds — the caller formats KB/MB and ages.
13
12
  Read-only: it never deletes logs (cleanup commands stay in the skill).
14
13
  `;
15
-
16
14
  export async function run(args) {
17
- if (args.includes("--help") || args.includes("-h")) {
18
- process.stdout.write(USAGE);
19
- return 0;
20
- }
21
-
22
- const result = await runPythonModule({
23
- module: "okstra_ctl.log_report",
24
- args,
25
- stdio: "inherit-stdout",
26
- });
27
- return result.code;
15
+ if (args.includes("--help") || args.includes("-h")) {
16
+ process.stdout.write(USAGE);
17
+ return 0;
18
+ }
19
+ const result = await runPythonModule({
20
+ module: "okstra_ctl.log_report",
21
+ args,
22
+ stdio: "inherit-stdout",
23
+ });
24
+ return result.code;
28
25
  }
26
+ //# sourceMappingURL=log-report.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-report.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/log-report.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;;;CAWb,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;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,uBAAuB;QAC/B,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra profile show — print a phase profile, fully resolved
4
3
 
5
4
  Usage:
@@ -15,15 +14,15 @@ answers "does this task-type cover X".
15
14
  Read-only: writes no manifest and registers no run. That is what separates it
16
15
  from 'okstra render-bundle', which answers the same question with side effects.
17
16
  `;
18
-
19
17
  export async function run(args) {
20
- if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
21
- process.stdout.write(USAGE);
22
- return args.length === 0 ? 2 : 0;
23
- }
24
- const { code } = await runPythonModule({
25
- module: "okstra_ctl.profile_show",
26
- args,
27
- });
28
- return code ?? 1;
18
+ if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
19
+ process.stdout.write(USAGE);
20
+ return args.length === 0 ? 2 : 0;
21
+ }
22
+ const { code } = await runPythonModule({
23
+ module: "okstra_ctl.profile_show",
24
+ args,
25
+ });
26
+ return code ?? 1;
29
27
  }
28
+ //# sourceMappingURL=profile-show.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-show.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/profile-show.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;;;;;;CAcb,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,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC;QACrC,MAAM,EAAE,yBAAyB;QACjC,IAAI;KACL,CAAC,CAAC;IACH,OAAO,IAAI,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra recap — assemble a task's run-to-run phase recap, append a recap log entry, or write an agent note
4
3
 
5
4
  Usage:
@@ -16,17 +15,16 @@ other task artifacts.
16
15
  \`note\` writes an agent-authored markdown note to <task-root>/notes/ and prints its
17
16
  path plus the \`--clarification-response\` argument for feeding it into a later run.
18
17
  `;
19
-
20
18
  export async function run(args) {
21
- if (args.includes("--help") || args.includes("-h")) {
22
- process.stdout.write(USAGE);
23
- return 0;
24
- }
25
-
26
- const result = await runPythonModule({
27
- module: "okstra_ctl.recap",
28
- args,
29
- stdio: "inherit-stdout",
30
- });
31
- return result.code;
19
+ if (args.includes("--help") || args.includes("-h")) {
20
+ process.stdout.write(USAGE);
21
+ return 0;
22
+ }
23
+ const result = await runPythonModule({
24
+ module: "okstra_ctl.recap",
25
+ args,
26
+ stdio: "inherit-stdout",
27
+ });
28
+ return result.code;
32
29
  }
30
+ //# sourceMappingURL=recap.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recap.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/recap.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;CAeb,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;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,kBAAkB;QAC1B,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra resolve-task-key — resolve a bare task-id to catalog task-keys
4
3
 
5
4
  Usage:
@@ -10,17 +9,16 @@ taskGroupPathSegment, taskIdPathSegment, taskManifestPath, ... } ] }.
10
9
  matches.length 0 = not found, 1 = unambiguous, N = ambiguous (caller asks).
11
10
  This is read-only; it never mutates task state.
12
11
  `;
13
-
14
12
  export async function run(args) {
15
- if (args.includes("--help") || args.includes("-h")) {
16
- process.stdout.write(USAGE);
17
- return 0;
18
- }
19
-
20
- const result = await runPythonModule({
21
- module: "okstra_ctl.resolve_task_key",
22
- args,
23
- stdio: "inherit-stdout",
24
- });
25
- return result.code;
13
+ if (args.includes("--help") || args.includes("-h")) {
14
+ process.stdout.write(USAGE);
15
+ return 0;
16
+ }
17
+ const result = await runPythonModule({
18
+ module: "okstra_ctl.resolve_task_key",
19
+ args,
20
+ stdio: "inherit-stdout",
21
+ });
22
+ return result.code;
26
23
  }
24
+ //# sourceMappingURL=resolve-task-key.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-task-key.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/resolve-task-key.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;CASb,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;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,6BAA6B;QACrC,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra rollup — roll up run results across a task-group's tasks
4
3
 
5
4
  Usage:
@@ -11,17 +10,16 @@ latest report path, plus group-level totals and status/category/phase tallies.
11
10
  With no --task-group it covers the whole project catalog. Time is raw ms; the
12
11
  caller formats HH:MM:SS and synthesizes the prose digest from the report files.
13
12
  `;
14
-
15
13
  export async function run(args) {
16
- if (args.includes("--help") || args.includes("-h")) {
17
- process.stdout.write(USAGE);
18
- return 0;
19
- }
20
-
21
- const result = await runPythonModule({
22
- module: "okstra_ctl.rollup",
23
- args,
24
- stdio: "inherit-stdout",
25
- });
26
- return result.code;
14
+ if (args.includes("--help") || args.includes("-h")) {
15
+ process.stdout.write(USAGE);
16
+ return 0;
17
+ }
18
+ const result = await runPythonModule({
19
+ module: "okstra_ctl.rollup",
20
+ args,
21
+ stdio: "inherit-stdout",
22
+ });
23
+ return result.code;
27
24
  }
25
+ //# sourceMappingURL=rollup.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollup.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/rollup.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;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,mBAAmB;QAC3B,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra run-audit — check okstra run artifacts against progress invariants
4
3
 
5
4
  Usage:
@@ -11,16 +10,16 @@ would catch: verification rounds that never ran, reports that never
11
10
  appeared, rosters that came up short, approvals waiting past the window.
12
11
  Read-only. Prints a JSON summary to stdout.
13
12
  `;
14
-
15
13
  export async function run(args) {
16
- if (args.includes("--help") || args.includes("-h")) {
17
- process.stdout.write(USAGE);
18
- return 0;
19
- }
20
- const result = await runPythonModule({
21
- module: "okstra_ctl.run_audit",
22
- args,
23
- stdio: "inherit-stdout",
24
- });
25
- return result.code;
14
+ if (args.includes("--help") || args.includes("-h")) {
15
+ process.stdout.write(USAGE);
16
+ return 0;
17
+ }
18
+ const result = await runPythonModule({
19
+ module: "okstra_ctl.run_audit",
20
+ args,
21
+ stdio: "inherit-stdout",
22
+ });
23
+ return result.code;
26
24
  }
25
+ //# sourceMappingURL=run-audit.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-audit.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/run-audit.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,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,sBAAsB;QAC9B,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;
@@ -1,5 +1,4 @@
1
1
  import { runPythonModule } from "../../lib/python-helper.mjs";
2
-
3
2
  const USAGE = `okstra set-work-status — set a task's user-managed workStatus
4
3
 
5
4
  Usage:
@@ -15,17 +14,16 @@ renderer. Output: JSON { ok, taskKey, previousWorkStatus, workStatus, ... };
15
14
  ok:false stages: resolve | catalog | not-found | ambiguous (pick from
16
15
  matches[]) | manifest-missing | manifest-invalid.
17
16
  `;
18
-
19
17
  export async function run(args) {
20
- if (args.includes("--help") || args.includes("-h")) {
21
- process.stdout.write(USAGE);
22
- return 0;
23
- }
24
-
25
- const result = await runPythonModule({
26
- module: "okstra_ctl.set_work_status",
27
- args,
28
- stdio: "inherit-stdout",
29
- });
30
- return result.code;
18
+ if (args.includes("--help") || args.includes("-h")) {
19
+ process.stdout.write(USAGE);
20
+ return 0;
21
+ }
22
+ const result = await runPythonModule({
23
+ module: "okstra_ctl.set_work_status",
24
+ args,
25
+ stdio: "inherit-stdout",
26
+ });
27
+ return result.code;
31
28
  }
29
+ //# sourceMappingURL=set-work-status.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-work-status.mjs","sourceRoot":"","sources":["../../../src/commands/inspect/set-work-status.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,KAAK,GAAG;;;;;;;;;;;;;;CAcb,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;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,MAAM,EAAE,4BAA4B;QACpC,IAAI;QACJ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function run(args: readonly string[]): Promise<number>;